
Integrated Memories
5-2
ColdFire2/2M User’s Manual
For More Information On This Product,
Go to: www.freescale.com
MOTOROLA
1 for a given cache size) from the local bus to determine if a cache hit in the memory array
has occurred. If the desired address is mapped into the cache memory, the output of the
data array is driven onto the processor’s local data bus completing the access in a single
cycle.
The tag array maintains a single valid bit per line entry. Accordingly, only entire 16-byte lines
are loaded into the instruction cache.
The instruction cache also contains a 16-byte fill buffer which provides temporary storage
for the last line fetched in response to a cache miss. With each instruction fetch, the contents
of the line fill buffer are examined. Thus, each instruction fetch address examines both the
tag memory array and the line fill buffer to see if the desired address is mapped into either
hardware resource, with the line fill buffer having priority over the instruction cache. A “cache
hit” in either the memory array or the line fill buffer is serviced in a single cycle. Since the
line fill buffer maintains valid bits on a longword basis, hits in the buffer can be serviced
immediately without waiting for the entire line to be fetched.
If the referenced address is not contained in the memory array nor the line fill buffer, the
instruction cache initiates the required external fetch operation. In most situations, this is a
16-byte line-sized burst reference. An external bus cycle is always started simultaneously
with the fetch cycle to the instruction cache. If a “hit” occurs in the instruction cache, the
MKILLB signal is asserted late in the cycle to “kill” the external bus cycle. Thus an asserted
MTSB and MKILLB direct the external bus controller to ignore the MTSB. If no “hit” occurred
in the instruction cache (or other K-Bus memory), the M-Bus cycle uses the normal number
of clock cycles beginning with the MTSB issued for the instruction fetch. See
Section 5.5,
Interactions Between K-Bus Memories
for more details.
The hardware implementation is a non-blocking design, meaning the processor’s local bus
is released after the initial access of a miss. Thus, the cache, RAM, or ROM module can
service subsequent requests while the remainder of the line is being fetched and loaded into
the fill buffer.
5.1.2 Instruction Cache Operation
The instruction cache is physically connected to the processor’s local bus allowing it to
service all instruction fetches from the ColdFire CPU and certain memory fetches initiated
by the debug module. Typically, the debug modules’s memory references appear as
supervisor data accesses, but the unit may be programmed to generate user mode
accesses and/or instruction fetches. Any instruction fetch access is processed by the
instruction cache in the normal manner.
5.1.3 Instruction Cache Signal Description
The following signals interface the ColdFire2/2M to an integrated instruction cache. The
cache is comprised of two compiled RAMs: tag and data.
Figure 5-1
illustrates an 8 Kbyte
configuration. All ColdFire2/2M signals are unidirectional and synchronous. Instruction
cache outputs are registered and the Instruction cache data is latched into the ColdFire2/2M
on the falling edge of the clock.
F
Freescale Semiconductor, Inc.
n
.