User`s manual

Rabbit 4000 Designer’s Handbook rabbit.com 23
5. Rabbit Memory Organization
The architecture of earlier Rabbit processors was derived from the original Z80 microprocessor. The origi-
nal Z80 instruction set used 16-bit addresses to address a 64 KB memory space. All code and data had to
fit in this 64 KB space. To expand the available memory space, the Rabbit 4000 adopts a scheme similar to
that used by the Z180.
The 64 KB space is divided into segments and the Rabbit’s Memory Mapping Unit (MMU) maps each
segment to a block in a larger memory. The larger memory is 1 MB by default, although the Rabbit 4000
allows this larger address space to be resized. The segments are effectively windows to the larger memory.
The view from the window can be adjusted so that the window looks at different blocks in the larger mem-
ory. Note also that the Rabbit 4000 has many new instructions that allow direct access to the larger mem-
ory space. Figure 5-1 shows the memory mapping schematically.
NOTE: Please see Technical Note 202, “Rabbit Memory Management in a Nutshell,” for more
details on how memory mapping works on the Rabbit 2000 and 3000. This document is avail-
able at:
www.rabbit.com/support/techNotes_whitePapers.shtml
5.1 Physical Memory
The Rabbit 4000 has a configurable physical address space. The default addressable space on the 4000 is
1 MB, the same as that used on the Rabbit 2000 and 3000. However, on the Rabbit 4000, the physical
address space can be reconfigured to use additional address lines to resize the physical memory from
512 K to 16 MB. The physical memory can be increased to 4 MB without the use of additional address
lines by mapping in 1 MB memory devices into the four available physical memory banks. In special cir-
cumstances more than 16 MB of memory can be installed and accessed using auxiliary memory mapping
schemes. Typical Rabbit 4000 systems have two types of directly addressable physical memory: flash
memory and static RAM.
5.1.1 Flash Memory
Flash memory in a Rabbit 4000-based system may be small-sector or large-sector type. Small-sector mem-
ory typically has sectors of 128 to 4096 bytes. Individual sectors may be separately erased and written. In
large-sector memory the sectors are often 16 KB to 64 KB or more. Large-sector memory is less expensive
and has faster access time. The best solution will usually be to lay out a design to accept several different
types of flash memory, including the flexible small-sector memories and the fast large-sector memories.
Flash memory follows a write-once-in-a-while and read-frequently model. Depending on the particular
type of flash used, the flash memory may wear out after it has been written approximately 10,000 to
100,000 times.