
I-Cache
Copyright 2000–2001 by LSI Logic Corporation. All rights reserved.
4-5
Note: Data can be marked as dirty only if it resides in a write back
protection region.
4.2 I-Cache
The ARM946E-S has a direct-mapped, 2-way, or 4-way set-associative
I-cache. You can choose the size of the I-cache from any of the
supported cache sizes. The I-cache uses the physical address generated
by the processor core. It uses a policy of
allocate on read-miss
, and is
always reloaded one cache line (eight words) at a time, through the
external interface.
4.2.1 Enabling and Disabling the I-Cache
To enable the I-cache, set bit 12 of the CP15 Control register. The cache
is only enabled if the protection unit is already enabled, or if they are
enabled simultaneously. When the I-cache is enabled, a cacheable read-
miss places lines in the I-cache.
You can enable the I-cache and protection unit simultaneously with a
single write to the CP15 control register, although you must program at
least one protection region before you enable the protection unit.
You can lock critical or frequently accessed instructions into the I-cache.
4.2.2 I-Cache Operation
When enabled, the I-cache operation is also controlled by the Cacheable
instruction (Ci) bit, which is stored in the Protection unit. This bit
selectively enables or disables caching for different memory regions. The
Ci bit affects I-cache operation as follows:
Successful Cache Read –
Data is returned to the core only if the Ci bit
is 1.
Unsuccessful Cache Read –
If the Ci bit is 1, a line fetch of eight
words is performed. The line fetch starts with the requested address
aligned to an eight-word boundary (that is, the line fetch starts with
word 0). If the Ci bit is 0, a single-word external access is performed to
fetch the requested instruction. The cache is not updated.