Chapter 4. Local Memory
4-11
Instruction Cache Overview
In this case, a fetched line is stored in the fill buffer and remains valid there; the cache can
service additional read accesses from this buffer until another fill occurs or a
cache-invalidate-all operation occurs.
If ACRn[CM] indicates cache-inhibited, the controller bypasses the cache and performs an
external transfer. To ensure the consistency of cached data, execute a CPUSHL instruction
or set CACR[CINVA] to invalidate the entire cache before switching cache modes.
CPU space-register accesses, such as MOVEC, are treated as cache-inhibited.
4.5.2.4 Reset
A hardware reset clears the CACR disabling the instruction cache.
NOTE:
Tag array contents are not affected by reset. Accordingly,
system startup code must explicitly invalidate the cache by
setting CACR[CINVA] before the cache can be enabled.
4.5.2.5 Cache Miss Fetch Algorithm/Line Fills
As discussed in Section 4.5.1, “Instruction Cache Physical Organization,” the instruction
cache hardware includes a 16-byte line-fill buffer for providing temporary storage for the
last fetched instruction.
With the cache enabled as defined by CACR[CENB], a cacheable instruction fetch that
misses in both the tag memory and the line-fill buffer generates an external fetch. The size
of the external fetch is determined by the value contained in CACR[CLNF] and the miss
address. Table 4-8 shows the relationships between the CLNF bits, the miss address, and
the size of the external fetch.
Depending on the run-time characteristics of the application and the memory response
speed, overall performance may be increased by programming CLNF to values {00, 01}.
For all cases of a line-sized fetch, the critical longword defined by miss address bits 3–2 is
accessed first followed by the remaining three longwords that are accessed by incrementing
the longword address in 0-modulo-16 increments, as shown below:
if miss address[3:2] = 00
fetch sequence = {0x0, 0x4, 0x8, 0xC}
if miss address[3:2] = 01
fetch sequence = {0x4, 0x8, 0xC, 0x0}
if miss address[3:2] = 10
fetch sequence = {0x8, 0xC, 0x0, 0x4}
if miss address[3:2] = 11
fetch sequence = {0xC, 0x0, 0x4, 0x0x8}
When an external fetch is initiated and data is loaded into the line-fill buffer, the instruction
cache maintains a special most-recently-used indicator that 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 occurs
Содержание DigitalDNA ColdFire MCF5272
Страница 1: ...MCF5272UM D Rev 0 02 2001 MCF5272 ColdFire Integrated Microprocessor User s Manual ...
Страница 38: ...xxxviii MCF5272 User s Manual TABLES Table Number Title Page Number ...
Страница 58: ...1 10 MCF5272 User s Manual MCF5272 Specific Features ...
Страница 90: ...2 42 MCF5272 User s Manual Exception Processing Overview ...
Страница 96: ...3 6 MCF5272 User s Manual MAC Instruction Execution Timings ...
Страница 158: ...5 46 MCF5272 User s Manual Motorola Recommended BDM Pinout ...
Страница 184: ...7 12 MCF5272 User s Manual Interrupt Controller Registers ...
Страница 338: ...13 44 MCF5272 User s Manual Application Examples ...
Страница 414: ...18 6 MCF5272 User s Manual PWM Programming Model ...
Страница 452: ...19 38 MCF5272 User s Manual Power Supply Pins ...
Страница 482: ...20 30 MCF5272 User s Manual Reset Operation ...
Страница 492: ...21 10 MCF5272 User s Manual Non IEEE 1149 1 Operation ...
Страница 548: ...INDEX Index 12 MCF5272 User s Manual ...