Specifications
17 January 1997 – Subject to Change
System Address Mapping A–9
21164 Address Space
The reasons for using the 21164 I/O space address map are as follows:
•
Provides 4GB of dense space to completely map the 32-bit PCI memory space.
•
Provides abundant PCI sparse memory space because sparse memory space has
byte granularity and is the safest memory space to use (no prefetching).
Furthermore, the larger the space, the less likely software will need to
dynamically relocate the sparse space segments. The main problem with sparse
space is that it is wasteful of 21164 address space. For instance, 16GB of 21164
address space maps to only 512MB of PCI sparse space.
The CIA supports three PCI sparse space memory regions, allowing 704MB of
total sparse memory space. The three regions can be relocated by using the
HAE_MEM CSR, and the simplest configuration allows for 704MB of
contiguous memory space:
– 512MB region, which may be located on any NATURALLY ALIGNED
512MB segment of the PCI memory space. Software developers may find
this region sufficient for their needs and can ignore the remaining two
regions.
– 128MB region, which may be located on any NATURALLY ALIGNED
128MB segment of the PCI memory space.
– 64MB region, which may be located on any NATURALLY ALIGNED
64MB segment of the PCI memory space.
•
Limits the PCI I/O space to sparse space. Although the PCI I/O space can handle
4GB, some chips can access only 64KB. So most, if not all, PCI devices will not
exceed 64KB for the foreseeable future. Therefore, the CIA supports 64MB of
sparse I/O space.
•
Supports two CIA PCI sparse space I/O regions. Region A contains 32MB and is
fixed in PCI segment 0-32 MB. Region B also contains 32MB, but can be
relocated using the HAE_IO register.