
D-Cache
Copyright 2000–2001 by LSI Logic Corporation. All rights reserved.
4-9
4.3.2.2 Cd and Bd Bits - Cache Stores
The Bd and Cd bits affect writes that both hit and miss in the D-cache.
If the Bd and Cd bits are both 1, the area of memory is marked as write
back, and stores that hit in the D-cache only update the cache, not
external memory. If the Bd bit is 0 and the Cd bit is 1, the area of
memory is marked as write through, and stores that hit in the D-cache
update both the cache and external memory.
4.3.2.3 Load and Store Multiples
Load and store multiples are divided at 4 Kbyte boundaries (the minimum
protection region size), allowing a protection check to be performed in
case the
Load Multiple
(LDM) or
Store Multiple
(STM) crosses into a
region with different protection properties.
4.3.3 D-Cache Validity
The ARM946E-S does not support memory translation, so you can
always consider the data in the D-cache as valid within the context of the
ARM946E-S. However, if you use external memory translation and the
mappings are changed, the D-cache is no longer consistent with external
memory, and you must flush it.
The ARM946E-S does not support external memory snooping. Any
shared data memory space, therefore, must not be cacheable.
Additionally, if you reprogram the data protection regions, data already in
the cache might now be in a noncacheable region, and you must flush it.
4.3.4 D-Cache Clean and Flush
The D-cache has flexible cleaning and flushing utilities that allow the
following operations:
You can invalidate the whole D-cache (
flush D-cache
) in one
operation without writing back dirty data.
You can invalidate individual lines without writing back any dirty data
(
flush D-cache single entry
).
You can perform cleaning on a line-by-line basis. The data is only
written back through the write buffer when a dirty line is encountered,
and the cleaned line remains in the cache (
clean D-cache single