3.6
Coprocessor 15 (CP15)
3.6.1 Addresses in an ARM926EJ-S System
www.ti.com
Coprocessor 15 (CP15)
a 16-bit architecture is its ability to manipulate 32-bit integers with single instructions, and to address a
large address space efficiently. When processing 32-bit data, a 16-bit architecture takes at least two
instructions to perform the same task as a single 32-bit instruction. However, not all of the code in a
program processes 32-bit data (e.g., code that performs character string handling), and some instructions
(like branches) do not process any data at all. If a 16-bit architecture only has 16-bit instructions, and a
32-bit architecture only has 32-bit instructions, then the 16-bit architecture has better code density overall,
and has better than one half of the performance of the 32-bit architecture. Clearly, 32-bit performance
comes at the cost of code density. The 16-bit instruction breaks this constraint by implementing a 16-bit
instruction length on a 32-bit architecture, making the processing of 32-bit data efficient with compact
instruction coding. This provides far better performance than a 16-bit architecture, with better code density
than a 32-bit architecture. The 16-BIS also has a major advantage over other 32-bit architectures with
16-bit instructions. The advantage is the ability to switch back to full 32-bit code and execute at full speed.
Thus, critical loops for applications such as fast interrupts and DSP algorithms can be coded using the full
32-BIS and linked with 16-BIS code. The overhead of switching from 16-bit code to 32-bit code is folded
into sub-routine entry time. Various portions of a system can be optimized for speed or for code density by
switching between 16-BIS and 32-BIS execution, as appropriate.
Note:
See the ARM926EJ-S TRM, downloadable from
for more detailed
information.
The system control coprocessor (CP15) is used to configure and control instruction and data caches,
Tightly-Coupled Memories (TCMs), Memory Management Units (MMUs), and many system functions. The
CP15 registers are only accessible with MRC and MCR instructions by the ARM in a privileged mode like
supervisor mode or system mode.
Three different types of addresses exist in an ARM926EJ-S system. They are as follows:
Table 3-2. Different Address Types in ARM System
Domain
ARM9EJ-S
Caches and MMU
TCM and AMBA Bus
Address type
Virtual Address (VA)
Modified Virtual Address (MVA)
Physical Address (PA)
An example of the address manipulation that occurs when the ARM9EJ-S core requests an instruction is
shown in
Example 3-1. Address Manipulation
The VA of the instruction is issued by the ARM9EJ-S core.
The VA is translated to the MVA. The Instruction Cache (Icache) and Memory Management Unit (MMU)
detect the MVA.
If the protection check carried out by the MMU on the MVA does not abort and the MVA tag is in the
Icache, the instruction data is returned to the ARM9EJ-S core.
If the protection check carried out by the MMU on the MVA does not abort, and the MVA tag is not in
the cache, then the MMU translates the MVA to produce the PA.
Note:
See
of the Programmers Model of the ARM926EJ-S TRM, downloadable from
for more detailed information.
SPRUFX7 – July 2008
ARM Core
23