5-2
MPC7400 RISC Microprocessor Users Manual
MMU Overview
MMU (conceptually), the MPC7400 hardware maintains separate TLBs and table search
resources for instruction and data accesses that can be performed independently (and
simultaneously). Therefore, the MPC7400 is described as having two MMUs, one for
instruction accesses (IMMU) and one for data accesses (DMMU).
The block address translation (BAT) mechanism is a software-controlled array that stores
the available block address translations on-chip. BAT array entries are implemented as pairs
of BAT registers that are accessible as supervisor special-purpose registers (SPRs). There
are separate instruction and data BAT mechanisms, and in the MPC7400, they reside in the
instruction and data MMUs, respectively.
The MMUs, together with the exception processing mechanism, provide the necessary
support for the operating system to implement a paged virtual memory environment and for
enforcing protection of designated memory areas. Exception processing is described in
Chapter 4, òExceptions.ó Section 4.3, òException Processing,ó describes the MSR, which
controls some of the critical functionality of the MMUs.
5.1 MMU Overview
The MPC7400 implements the memory management speciTcation of the PowerPC OEA
for 32-bit implementations. Thus, it provides 4 Gbytes of effective address space accessible
to supervisor and user programs, with a 4-Kbyte page size and 256-Mbyte segment size. In
addition, the MMUs of 32-bit PowerPC processors use an interim virtual address (52 bits)
and hashed page tables in the generation of 32-bit physical addresses. PowerPC processors
also have a BAT mechanism for mapping large blocks of memory. Block sizes range from
128 Kbyte to 256 Mbyte and are software-programmable.
Basic features of the MPC7400 MMU implementation deTned by the OEA are as follows:
¥
Support for real addressing modeEffective-to-physical address translation can be
disabled separately for data and instruction accesses.
¥
Block address translationEach of the BAT array entries (four IBAT entries and
four DBAT entries) provides a mechanism for translating blocks as large as
256 Mbytes from the 32-bit effective address space into the physical memory space.
This can be used for translating large address ranges whose mappings do not change
frequently.
¥
Segmented address translationThe 32-bit effective address is extended to a 52-bit
virtual address by substituting 24 bits of upper address bits from the segment
register, for the 4 upper bits of the EA, which are used as an index into the segment
register Tle. This 52-bit virtual address space is divided into 4-Kbyte pages, each of
which can be mapped to a physical page.