29 September 1997 – Subject To Change
Clocks, Cache, and External Interface
4–13
Cache Coherency
The 21164PC partitions physical address (addr_h<32:4>) into an index field and a
tag field. The 21164PC presents index_ h<21:4> and tag_data_h<32:19> to the
Bcache interface. The tag size required is Bcache_size/block_size.
The system designer uses the signal lines needed for a particular size Bcache. For
example, the 1MB Bcache needs index_h<19:4> to address the cache block while
the tag field would be tag_data_h<32:20>.
The 21164PC uses only the relevant tag address bits during the tag compare for the
selected Bcache size. A larger Bcache has more index bits and fewer unused tag
address bits, while a smaller Bcache has fewer index bits and more unused tag
address bits. Unused index bits are driven to 0.
All private Bcache transactions operate on 32-byte subblocks. All system Bcache
transactions (memory fill, Bcache victim, system commands that require data move-
ment) operate on the 64-byte Bcache block size. The CPU data bus is 16 bytes wide
(128 bits), thus private Bcache transactions require two data cycles and system
Bcache transactions require four data cycles.
Longword write enables are provided to the data store for Bcache write operations.
To support byte and word write transactions, the 21164PC performs a read-modify-
write sequence at the Bcache interface.
4.4.1 Bcache Victim Buffers
A Bcache victim is generated when the 21164PC deallocates a dirty block from the
Bcache. Each time a Bcache victim is produced, the 21164PC asserts
victim_pending_h and stops reading the Bcache until the system takes the current
victim. Then Bcache transactions resume.
External logic is required to maintain at least one victim buffer that acts as temporary
storage that can be written faster and with lower latency than system memory. The
victim buffer(s) hold Bcache victims and enable the Bcache location to be filled with
data from the desired address. Data in the victim buffer(s) will be written to memory
at a later time. This action reduces the time that the 21164PC is waiting for data.
4.5 Cache Coherency
Cache coherency rules must be followed when designing 21164PC-based uniproces-
sor systems as there are two levels of caches on a processor module that may be
snooped for data by I/O devices.