
Philips Semiconductors
Cache Architecture
PRODUCT SPECIFICATION
5-3
5.3
DATA CACHE
The data cache serves only the DSPCPU and is con-
trolled by two memory units that execute the load and
store operations issued by the DSPCPU. The following
sections describe the data cache and its operation;
Table 5-3 summarizes the important characteristics for
easy reference.
5.3.1
General Cache Parameters
The TM1300 data cache is 16 KB in size with a 64-byte
block size. Thus, it contains 256 blocks each with its own
address tag. The cache is 8-way set-associative, so
there are 32 sets, each containing 8 tags. A single valid
bit is associated with a block, so each block and associ-
ated address tag is either entirely valid in the cache or in-
valid. On a cache miss, 64 bytes are read from SDRAM
to make the entire block valid.
Each block also contains a dirty bit, which is set whenev-
er a write to the block occurs. Each set contains 10 bits
to support the hierarchical LRU replacement policy.
The geometry of the data cache is available to software
by reading the MMIO register DC_PARAMS. Figure 5-3
shows
the
format
of
the
DC_PARAMS
register;
Table 5-4 lists its field values. The product of block size,
associativity, and number of sets gives the total cache
size (16 KB in this case).
5.3.2
Address Mapping
TM1300 data addresses are mapped onto the data
cache storage structure as shown in Figure 5-4. A data
address is partitioned into four fields as described in
Table 5-5.
Table 5-3. Summary of data cache characteristics
Characteristic
TM1300 Implementation
Cache size
16 KB
Cache associativity
8-way set-associative
Block size
64 bytes
Valid bits
One valid bit per 64-byte block
Dirty bits
One dirty bit per 64-byte block
Miss transfer order
Miss transfers begin with the critical
word rst
Replacement poli-
cies
Copyback, allocate on write, hierarchical
LRU
Endianness
Either little- or big-endian, determined
by PCSW bit
Ports
The cache is quasi dual ported; two
accesses can proceed concurrently if
they reference different banks (deter-
mined by bits [4:2] of the computed
addresses)
Alignment
Access must be naturally aligned (32-bit
words on 32-bit boundaries, 16-bit half-
words on 16-bit boundaries); the appro-
priate number of LSBs of un-naturally
aligned addresses are set to zero.
For misaligned stores, PCSW.MSE is
asserted to generate an exception
Partial word opera-
tions
The cache implements 8-bit and 16-bit
accesses with the same performance as
32-bit accesses
Operation latency
Three cycles for both load and store
operations
Coherency enforce-
ment
Software uses special operations to
enforce cache coherency
Cache locking
Up to 1/2 (four out of 8 blocks of each
set) of the cache contents can be
locked; granularity is 64-byte
Non-cacheable
region
One non-cacheable aperture in the
DRAM address space is supported.
Table 5-4. DC_PARAMS eld values
Field Name
Value
BLOCK SIZE
64
ASSOCIATIVITY
8
NUMBER_OF_SETS
32
Table 5-5. Data address eld partitioning
Field
Address
Bits
Purpose
Byte
1..0
Byte offset within a word for byte or half-
word accesses
Word
5..2
Selects one of the words in a set (one of
16 words in the case of TM1300)
Set
10..6
Selects one of the sets in the cache (one
of 32 in the case of TM1300)
Tag
31..11
Compared against address tags of set
members
31
0
3
7
11
15
19
23
27
DC_PARAMS (r/o)
0x10 001C
ASSOCIATIVITY
NUMBER_OF_SETS
MMIO_BASE
offset:
BLOCKSIZE
Figure 5-3. Format of the DC_PARAMS register.
0
Word
Byte
Set
Tag
31
1
2
5
6
10
11
Data Cache Address
Figure 5-4. Data cache address partitioning.