Jameco Electronics Rabbit 3000 User Manual

Page 37

Advertising
background image

28

Rabbit 3000 Microprocessor

fetching an instruction from memory and fetching or storing data in memory. When
enabled separate I and D space make available the combined root and data segment, typi-
cally 52k bytes for root code in the I space. In the D space, the root code segment part of
the D space is typically used for constant data mapped to flash memory while the data seg-
ment part of the D space is used for variable data mapped to RAM. Separate I and D space
increases the amount of both root code and root data because they no longer have to share
the same memory, even though they share the same addresses.

Figure 3-6. Separate I and D Space

Normally separate I and D space is implemented as shown in Figure 3-6. In the I space the
root segment and the data segment are combined into a single root code segment. In the D
space the segments are separately mapped to flash and RAM to provide storage for con-
stant data and variable data. The hardware method to achieve separate 20 bit addresses for
the D space is to invert either A16 or A19 for data accesses. The inversion may be speci-
fied separately for the root segment and the data segment. Normally A16 is inverted for
data accesses in the root segment. This causes data accesses to the root segment to be
moved 64k higher to a section of flash starting at 20 bit address 64k that is reserved for
constant data. A19 is normally inverted for data accesses to the data segment, causing the
data accesses in the data segment to be moved to an address 512k higher in the 20 bit
space, an address normally mapped to RAM. The stack segment and the XPC segment do

Constant
D Space

Variable
D Space

Root
Code

stack

xpc
window

512k

64k

RAM

Flash

128k

52k

56k

64k

20 Bit Memory Space

D Space

Root
Segment

Data
Segment

I space

Advertising
This manual is related to the following products: