Architecture

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.

0x7FFF FFFF

0x0000 0000

User mode

2GB kuseg

0xFFFF FFFF

0xC000 0000

0xA000 0000

0x8000 0000 0x7FFF FFFF

0x0000 0000

Kernel mode

1GB

kseg2

0.5GB

kseg1

0.5GB

kseg0

2GB kuseg

Figure 5-2. Internal MMU virtual address space

(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.

44

Page 53
Image 53
Toshiba TX39 user manual Direct Segment Mapping, Internal MMU virtual address space