9.3 CPU Addressing

CPU virtual address translation takes place in one of two ways: via direct mapping or through the translation lookaside buffer (TLB). Virtual address translation is explained in the table below. When running in kernel mode (as applications do on the Nintendo 64 platform) the address ranges have the behavior described in Table 9-1.

Table 9-1 32 Bit Kernel Mode Addressing
BeginningEndingNameBehavior
0x000000000x7fffffffKUSEGTLB mapped
0x800000000x9fffffffKSEG0Direct mapped, cached
0xa00000000xbfffffffKSEG1Direct mapped, uncached
0xc00000000xdfffffffKSSEGTLB mapped
0xe00000000xffffffffKSEG3TLB mapped

The KSEG0 address space is expected to be the most widely used, if not only, address space used. In this address space, the physical memory locations corresponding to be KSEG0 address can be determined by stripping off the upper three bits of the virtual address. For example, virtual address 0x80000000 corresponds to physical address 0x0000000, and so on.

UP