Integrated Memories
MOTOROLA
ColdFire2/2M User’s Manual
For More Information On This Product,
Go to: www.freescale.com
5-7
Depending on the runtime characteristics of the application and the memory response
speed, overall performance may be increased by programming the CLNF bits to values {00,
01}.
For all cases of a line-sized fetch, the critical longword defined by bits [3:2] of the miss
address is accessed first, followed by the remaining three longwords which are accessed by
incrementing the longword address in a modulo-16 fashion as shown below:
if miss address[3:2] = 00
fetch sequence = {$0, $4, $8, $C}
if miss address[3:2] = 01
fetch sequence = {$4, $8, $C, $0}
if miss address[3:2] = 10
fetch sequence = {$8, $C, $0, $4}
if miss address[3:2] = 11
fetch sequence = {$C, $0, $4, $8}
Once an external fetch has been initiated and the data loaded into the line-fill buffer, the
instruction cache maintains a special most-recently-used indicator which tracks the contents
of the fill buffer versus its corresponding cache location. At the time of the miss, the
hardware indicator is set, marking the fill buffer as “most recently used”. If a subsequent
access to the cache location defined by bits [X:4] of the fill buffer address occurs, the data
in the cache memory array is now most-recently-used, so the hardware indicator is cleared.
In all cases, the indicator defines whether the contents of the line-fill buffer or the memory
data array are most-recently-used. At the time of the next cache miss, the contents of the
line-fill buffer are written into the memory array if the entire line is present, and the fill buffer
data is still most-recently-used compared to the memory array. Only a complete line can be
transferred to the icache array (the array only has one valid bit while the line-fill buffer has a
valid bit per longword). This transfer can only occur if the icache is not locked or frozen. This
write takes four cycles with ICH_ADDR[3:2] incrementing each cycle. Generally, when a
fetch misses the cache, the previously fetched instruction line in the line-fill buffer is written
to the cache while the master bus is running a fetch cycle.
The fill buffer can also be utilized as temporary storage for line-sized bursts of non-
cacheable references under control of CACR [10]. With this bit set, a non-cacheable
instruction fetch is processed as defined by
Table 5-3
. For this condition, the fill buffer is
loaded and subsequent references can “hit” in the buffer, but the data is never loaded into
the memory array.
Table 5-3. Initial Fetch Size Based on Miss Address & CLNF
CLNF[1:0]
MISS ADDRESS [3:2] (LONGWORD ADDRESS BITS)
00
Line
Line
Line
01
Line
Line
Line
10
Line
11
00
01
1X
Longword
Longword
Line
Longword
Line
F
Freescale Semiconductor, Inc.
n
.