CHAPTER 4 MEMORY MANAGEMENT SYSTEM
61
(2) Supervisor-mode virtual addressing
Supervisor mode is designed for layered operating systems in which a true kernel runs in Kernel mode,
and the rest of the operating system runs in Supervisor mode.
The processor operates in Supervisor mode when the Status register contains the following bit-values:
"
KSU = 01
"
EXL = 0
"
ERL = 0
In conjunction with these bits, the SX bit in the Status register selects 32- or 64-bit Supervisor mode
addressing:
"
When SX = 0, 32-bit supervisor space is selected.
"
When SX = 1, 64-bit supervisor space is selected.
Figure 4-6 shows Supervisor mode address mapping. Table 4-2 lists the characteristics of the
Supervisor mode segments; descriptions of the address spaces follow.
Figure 4-6. Supervisor Mode Address Space
64-bit mode
32-bit mode
Note
0xDFFF FFFF
0xE000 0000
0xC000 0000
0xBFFF FFFF
0xFFFF FFFF
Address error
0x0000 000F FFFF FFFF
0xFFFF FFFF FFFF FFFF
suseg
sseg
0x7FFF FFFF
0x0000 0000
0x8000 0000
xsuseg
xsseg
csseg
0x4000 00FF FFFF FFFF
0x4000 0100 0000 0000
0.5 Gbyte with
TLB mapping
Address error
2 Gbytes with
TLB mapping
Address error
0.5 Gbyte with
TLB mapping
Address error
1 Tbyte with
TLB mapping
Address error
1 Tbyte with
TLB mapping
0xFFFF FFFF E000 0000
0xFFFF FFFF DFFF FFFF
0x0000 0010 0000 0000
0x3FFF FFFF FFFF FFFF
0x4000 0000 0000 0000
0x0000 0000 0000 0000
0x0000 00FF FFFF FFFF
0x0000 0100 0000 0000
Note
The V
R
4101 uses 64-bit addresses within it. For 32-bit mode addressing, bit 31 is sign-extended
to bits 32 to 63, and the resulting 32 bits are used for addressing. Usually, it is impossible for 32-
bit mode programs to generate invalid addresses. In an operation of base register + offset for
addressing, however, a two's complement overflow may occur, causing an invalid address. Note
that the result becomes undefined. Two factors that can cause a two's complement follow:
"
When offset bit 15 is 0, base register bit 31 is 0, and bit 31 of the operation “base register +
offset” is 1
"
When offset bit 15 is 1, base register bit 31 is 1, and bit 31 of the operation “base register +
offset” is 0