Jameco Electronics 3000 Manuel D’Utilisation
118
Rabbit 3000 Microprocessor
Figure 8-4. Memory Segments
The memory management unit accepts a 16-bit address from the processor and translates
it into a 20-bit address. The procedure to do this works as follows.
it into a 20-bit address. The procedure to do this works as follows.
1. It is determined which segment the 16-bit address belongs to by inspecting the upper 4
bits of the address. Every address must belong to one of the possible 4 segments.
2. Each segment has an 8-bit segment register. The 8-bit segment register is added to the
upper 4 bits of the 16-bit address to create a 20-bit address. Wraparound occurs if the
addition would result in an address that does not fit in 20 bits.
addition would result in an address that does not fit in 20 bits.
Table 8-1. Segment Registers
Segment Register
Function
XPC
Locates extended code segment in physical memory. Read and written by
processor instructions: ld a,xpc, ld xpc,a, lcall, lret, ljp
processor instructions: ld a,xpc, ld xpc,a, lcall, lret, ljp
STACKSEG = 0x11
Locates stack segment in physical memory.
DATASEG = 0x12
Locates data segment in physical memory.
Table 8-2. Segment Size Register
Bits 7..4
Bits 3..0
SEGSIZE = 0x13
Boundary address stack segment.
Boundary address data segment.
Extended code
XPC segment
(8K)
XPC segment
(8K)
Stack segment
(4K typ)
(4K typ)
Root segment
Data segment
64K
0K
Boundary SEGSIZE[4..7]
Boundary SEGSIZE[0..3]
XPC
STACKSEG
DATASEG
00
+
16-bit address
20-bit address