Jameco Electronics 2000 Network Card User Manual


 
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
Var ia bl e
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