IDT MIPS32 4Kc Processor Core
Memory Management
79RC32438 User Reference Manual
2 - 25
November 4, 2002
Notes
Kernel Mode, User Space (kuseg)
In Kernel mode, when the most-significant bit of the virtual address (A31) is cleared, the 32-bit kuseg
virtual address space is selected and covers the full 231 bytes (2 GByte) of the current user address space
mapped to addresses 0x0000_0000 - 0x7FFF_FFFF. The virtual address is extended with the contents of
the 8-bit ASID field to form a unique virtual address.
When ERL = 1 in the Status register, the user address region becomes a 231-byte unmapped and
uncached address space. While in this setting, the kuseg virtual address maps directly to the same physical
address, and does not include the ASID field.
Kernel Mode, Kernel Space 0 (kseg0)
In Kernel mode, when the most-significant three bits of the virtual address are 1002, 32-bit kseg0 virtual
address space is selected; it is the 229-byte (512-MByte) kernel virtual space located at addresses
0x8000_0000 - 0x9FFF_FFFF. References to kseg0 are unmapped; the physical address selected is
defined by subtracting 0x8000_0000 from the virtual address. The K0 field of the Config register controls
cacheability.
Kernel Mode, Kernel Space 1 (kseg1)
In Kernel mode, when the most-significant three bits of the 32-bit virtual address are 1012, 32-bit kseg1
virtual address space is selected. kseg1 is the 229-byte (512-MByte) kernel virtual space located at
addresses 0xA000_0000 - 0xBFFF_FFFF. References to kseg1 are unmapped; the physical address
selected is defined by subtracting 0xA000_0000 from the virtual address. Caches are disabled for accesses
to these addresses, and physical memory (or memory-mapped I/O device registers) are accessed directly.
Kernel Mode, Kernel Space 2 (kseg2)
In Kernel mode, when UM = 0, ERL = 1, or EXL = 1 in the Status register, and DM = 0 in the Debug
register, and the most-significant three bits of the 32-bit virtual address are 1102, 32-bit kseg2 virtual
address space is selected. This 229-byte (512-MByte) kernel virtual space is mapped through the TLB in
the 4Kc processor core.
Kernel Mode, Kernel Space 3 (kseg3)
In Kernel mode, when the most-significant three bits of the 32-bit virtual address are 1112, the kseg3
virtual address space is selected. This 229-byte (512-MByte) kernel virtual space is mapped through the
TLB in the 4Kc processor core.
Address
Bit Values
Status Register Is
One Of These
Values
Segment
Name
Address
Range
Segment
Size
UM
EXL
ERL
A(31)=0
(UM = 0 or EXL = 1 or
ERL = 1) and DM = 0
kuseg
0x0000_0000
0x7FFF_FFFF
2 GBytes
(2
31
bytes)
A(31:29)=100
2
kseg0
0x8000_0000
0x9FFF_FFFF
512 MBytes
(2
29
bytes)
A(31:29)=101
2
kseg1
0xA000_0000
0xBFFF_FFFF
512 MBytes
(2
29
bytes)
A(31:29)=110
2
kseg2
0xC000_0000
0xDFFF_FFFF
512 MBytes
(2
29
bytes)
A(31:29)=111
2
kseg3
0xE000_0000
0xFFFF_FFFF
512 MBytes
(2
29
bytes)
Table 2.7 Kernel Mode Segments