Chapter 8. Local Memory
For More Information On This Product,
Go to: www.freescale.com
8-43
Cache Overview
memory. After the bus transfer for the new line completes, the modified cache line is written
back to memory and the push buffer is invalidated.
8.7.8.2.1 Push and Store Buffers
The 16-byte push buffer reduces latency for requested new data on a cache miss by holding
a displaced modified data cache line while the new data is read from memory.
If a cache miss displaces a modified line, a miss read reference is immediately generated.
While waiting for the response, the current contents of the cache location load into the push
buffer. When the burst-read bus transaction completes, the cache controller can generate the
appropriate line-write bus transaction to write the push buffer contents into memory. Note
that this is not programmable and is always on if the cache is used.
In imprecise mode, the FIFO store buffer can defer pending writes to maximize
performance. The store buffer can support as many as four entries (16 bytes maximum) for
this purpose.
Data writes destined for the store buffer cannot stall the core. The store buffer effectively
provides a measure of decoupling between the pipeline’s ability to generate writes (one per
cycle maximum) and the external bus’s ability to retire those writes. In imprecise mode,
writes stall the core only if the store buffer is full and a write operation is on the internal
bus. The internal write cycle is held, stalling the data execution pipeline.
If the store buffer is not used (that is, store buffer disabled or cache-inhibited precise mode),
external bus cycles are generated directly for each pipeline write operation. The instruction
is held in the pipeline until external bus transfer termination is received.
The data store buffer enable bit, CACR[DESB], controls the enabling of the data store
buffer. This bit can be set and cleared by the MOVEC instruction. DESB is zero at reset and
all writes are performed in order (precise mode). ACR
n
[CM] or CACR[DDCM] generates
the mode used when DESB is set. Cacheable write-through and cache-inhibited imprecise
modes use the store buffer.
The store buffer can queue data as much as 4 bytes wide per entry. Each entry matches the
corresponding bus cycle it generates; therefore, a misaligned longword write to a
write-through region creates two entries if the address is to an odd-word boundary. It
creates three entries if it is to an odd-byte boundary—one per bus cycle.
8.7.8.2.2 Push and Store Buffer Bus Operation
As soon as the push or store buffer has valid data, the internal bus controller uses the next
available external bus cycle to generate the appropriate write cycles. In the event that
another cache fill is required (for example, cache miss to process) during the continued
instruction execution by the processor pipeline, the pipeline stalls until the push and store
buffers are empty, then generates the required external bus transaction.
Exception processing and the cpushl, intouch, halt, move-to-SR, movec, nop, rte, stop,
wdebug instructions synchronize the processor core and guarantee the push and store
F
Freescale Semiconductor, Inc.
n
.