Architecture
44
5.2 Direct Segment Mapping
The R3900 Processor Core has a direct segment mapping MMU.
Figure 5-2 shows the virtual address space of the internal MMU.
(1) User mode
One 2 Gbyte virtual address space (kuseg) is available in user mode. In this mode, the most
significant bit of each kuseg address is 0. The virtual address range of kuseg is 0x0000 0000 to
0x7FFF FFFF. Attempting to access an address outside of this range, that is, with the MSB is 1,
while in user mode will raise an Address Error exception. Virtual addresses 0x0000 0000 to 0x7FFF
FFFF are translated to physical addresses 0x4000 0000 to 0xBFFF FFFF, respectively.
The upper 16-Mbyte area of kuseg (0x7F00 0000 to 0x7FFF FFFF) is reserved for on-chip resources
and is not cacheable.
(2) Kernel mode
The kernel mode address space is treated as four virtual address segments. One of these, kuseg, is
the same as the kuseg space in user mode; the remaining three are kernel segments kseg0, kseg1 and
kseg2.
Figure 5-2. Internal MMU virtual address space
1GB
kseg2
0.5GB
kseg1
0.5GB
kseg0
2GB
kuseg
2GB
kuseg
0xFFFF FFFF
0xC000 0000
0xA000 0000
0x8000 0000
0x7FFF FFFF
0x0000 0000
0x7FFF FFFF
0x0000 0000
Kernel mode
User mode