
MOTOROLA
Instruction Cache
5-1
Section 5
Instruction Cache
5.1
INSTRUCTION CACHE FEATURES
8KByte Direct-Mapped Cache
Single-Cycle Access on Cache Hits
Physically Located on the ColdFire Core High-Speed Local Bus
Nonblocking Design to Maximize Performance
16 Byte Line-Fill Buffer
Configurable Cache Miss-Fetch Algorithm
5.2
INSTRUCTION CACHE PHYSICAL ORGANIZATION
The instruction cache is a direct-mapped single-cycle memory, organized as 512 lines, each containing 16
Bytes. The memory storage consists of a 512-entry tag array (containing addresses and a valid bit), and
the data array containing 8KBytes of instruction data, organized as 2048 x 32 bits.
The two memory arrays are accessed in parallel: bits [12:4] of the instruction fetch address provide the
index into the tag array, and bits [12:2] addressing the data array. The tag array outputs the address
mapped to the given cache location along with the valid bit for the line. This address field is compared to
bits [31:12] of the instruction fetch address 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 ColdFire core'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 that 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. A cache hit in either the memory
array or the line-fill buffer is serviced in a single cycle. Because 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 or 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.
The hardware implementation is a nonblocking design, meaning the ColdFire core's local bus is released
after the initial access of a miss. Thus, the cache or the SRAM module can service subsequent requests
while the remainder of the line is being fetched and loaded into the fill buffer.
F
re
e
sc
a
le
S
e
m
ic
o
n
d
u
c
to
r,
I
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
n
c
..
.