
5-8
MPC603e & EC603e RISC Microprocessors User's Manual
MOTOROLA
5.1.3 Address Translation Mechanisms
PowerPC processors support the following four types of address translation:
Page address translation—translates the page frame address for a 4-Kbyte page size
Block address translation—translates the block number for blocks that range in size
from 128 Kbyte to 256 Mbyte
Direct-store interface address translation—used to generate direct-store interface
accesses on the external bus; not implemented in the 603e.
Real addressing mode translation—when address translation is disabled, the
physical address is identical to the effective address.
Figure 5-4 shows the three implemented address translation mechanisms provided by the
603e MMUs. The segment descriptors shown in the figure control the page address
translation mechanism. When an access uses page address translation, the appropriate
segment descriptor is required. In 32-bit implementations, one of the 16 on-chip segment
registers (which contain segment descriptors) is selected by the four highest-order effective
address bits.
A control bit in the corresponding segment descriptor then determines if the access is to
memory (memory-mapped) or to the direct-store interface space (selected when the direct-
store translation control bit (T bit) in the corresponding segment descriptor is set). Note that
the direct-store interface is present only for compatibility with existing I/O devices that use
this interface. When an access is determined to be to the direct-store interface space, the
603e takes a DSI exception as described in Section 4.5.3, “DSI Exception (0x00300)” if it
is a data access, and takes an ISI exception as described in Section 4.5.4, “ISI Exception
(0x00400)” if it is an instruction access.
For memory accesses translated by a segment descriptor, the interim virtual address is
generated using the information in the segment descriptor. Page address translation
corresponds to the conversion of this virtual address into the 32-bit physical address used
by the memory subsystem. In most cases, the physical address for the page resides in an on-
chip TLB and is available for quick access. However, if the page address translation misses
in an on-chip TLB, the MMU causes a search of the page tables in memory (using the
virtual address information and a hashing function) to locate the required physical address.
When this occurs, the 603e vectors to exception handlers that search the page tables with
software.
Block address translation occurs in parallel with page address translation and is similar to
page address translation; however, fewer higher-order effective address bits are translated
into physical address bits (more lower-order address bits (at least 17) are untranslated to
form the offset into a block). Also, instead of segment descriptors and a TLB, block address
translations use the on-chip BAT registers as a BAT array. If an effective address matches
the corresponding field of a BAT register, the information in the BAT register is used to
generate the physical address; in this case, the results of the page translation (occurring in
parallel) are ignored (even if the segment corresponds to the direct-store interface space).