2 memory mapping overview, 3 memory-mapping unit – Jameco Electronics Rabbit 3000 User Manual

Page 126

Advertising
background image

User’s Manual

117

8.2 Memory Mapping Overview

See Section 3.2, “Memory Mapping,” for a discussion of Rabbit memory mapping.

Figure 8-3 shows an overview of the Rabbit memory mapping. The task of the memory
mapping unit is to accept 16-bit addresses and translate them to 20-bit addresses. The
memory interface unit accepts the 20-bit addresses and generates control signals applied
directly to the memory chips.

Figure 8-3. Overview of Rabbit Memory Mapping

8.3 Memory-Mapping Unit

The 64K 16-bit address space accessed by processor instructions is divided into segments.
Each segment has a length that is a multiple of 4K. Except for the extended code segment,
the segments have adjustable sizes and some segments can be reduced to zero size and
thus vanish from the memory map.

The four segments are shown in the example in Figure 8-4. The segment size register
(SEGSIZE) determines the boundaries marked in the diagram. The extended code seg-
ment always occupies the addresses 0x0E000–0x0FFFF. The stack segment stretches from
the address specified by the upper 4 bits of the SEGSIZE register to 0x0DFFF. For exam-
ple, if the upper 4 bits of SEGSIZE are 0x0D, then the stack segment will occupy
0x0D000–0x0DFFF, or 4K. If the upper 4 bits of SEGSIZE are greater than or equal to
0x0E, the stack segment vanishes. If these bits are set to zero, the two segments below the
stack segment will vanish.

The lower 4 bits of SEGSIZE determine the lower boundary shown in the figure. If this
boundary is equal to the upper boundary or greater than 0x0E, the data segment will van-
ish. If this segment is placed at zero the code segment will vanish.

Memory

Chips

Processor

Memory

Mapping

Unit

Memory

Interface

Unit

Advertising
This manual is related to the following products: