PNX1300/01/02/11 Data Book
Philips Semiconductors
5-8
PRELIMINARY SPECIFICATION
5.3.12
Operation Latency
Load and store operations have an operation latency of
three cycles, regardless of the size of the data transfer.
5.3.13
MMIO Register References
Memory operations that reference MMIO registers are
not cached, and the CPU is stalled until the MMIO refer-
ence completes. A MMIO register reference occurs when
an address is in the range:
[MMIO_BASE]
≤
address < ([MMIO_BASE] + 0x200000)
The size of the MMIO aperture is hardwired at 2 MB.
5.3.14
PCI Bus References
Any CPU memory operation that references an address
outside the SDRAM and MMIO address apertures is as-
sumed to reference a device or memory on the PCI bus.
PCI-bus data transfers are not cached, and the CPU is
stalled until the PCI transfer completes.
5.3.15
CPU Stall Conditions
The data cache causes the CPU to stall when:
1. Any cache miss occurs.
2. Two simultaneously issued, cacheable memory oper-
ations need to access the same cache bank (bank
conflict).
3. An access that references an address in the MMIO
aperture is issued.
4. An access to the PCI bus is issued.
5. A non-trivial copyback or invalidate operation is is-
sued.
6. An access to the non-cacheable region in the DRAM
aperture is issued.
5.3.16
Data Cache Initialization
When PNX1300 is reset, the data cache executes an ini-
tialization sequence. The cache asserts the CPU stall
signal while it sequentially resets all valid and dirty bits.
The cache de-asserts the stall signal after completing the
initialization sequence.
5.4
INSTRUCTION CACHE
The instruction cache stores compressed CPU instruc-
tions; instructions are decompressed before being deliv-
ered to the CPU. The following sections describe the in-
struction
cache
and
its
summarizes instruction-cache characteristics.
operation;
Table 5-11
5.4.1
General Cache Parameters
The PNX1300 instruction cache is 32 KB in size with a
64-byte block size. Thus, the cache contains 512 blocks
each with its own address tag. The cache is 8-way set-
associative, so there are 64 sets, each containing 8 tags.
A single valid bit is associated with a block, so each block
and associated address tag is either entirely valid or in-
valid; on a cache miss, 64 bytes are read from SDRAM
to make the entire block valid.
The geometry of the instruction cache is available to soft-
ware by reading the MMIO register IC_PARAMS.
Figure 5-8
shows the format of the IC_PARAMS register;
Table 5-12
lists its field values.
The product of the block size, associativity, and number
of sets gives the total cache size (32 KB in this case).
5.4.2
Address Mapping
PNX1300 instruction addresses are mapped onto the
data cache storage structure as shown in
Figure 5-9
. An
instruction address is partitioned into three fields as de-
scribed in
Table 5-13
Table 5-11. Instruction cache characteristics
Characteristic
PNX1300 Implementation
Cache size
Cache associativity
Block size
Valid bits
Replacement policy
32 KB
8-way set-associative
64 bytes
One valid bit per 64-byte block
Hierarchical LRU (least-recently used)
among the eight blocks in a set
Branch delay is three cycles
Software uses a special operation to
enforce cache coherency
Up to 1/2 (four out of eight blocks of
each set) of the cache contents can be
locked; granularity is 64 bytes
Operation latency
Coherency enforce-
ment
Cache locking
Table 5-12. IC_PARAMS field values
Field Name
Value
BLOCKSIZE
ASSOCIATIVITY
NUMBER_OF_SETS
64
8
64
31
0
3
7
11
15
ASSOCIATIVITY
19
23
27
IC_PARAMS (r/o)
0x10 0020
NUMBER_OF_SETS
MMIO_BASE
offset:
BLOCKSIZE
Figure 5-8. Format of the instruction-cache parameters register.