 |
Cache Effects
|
Another common technique used to improve execution speed is
instruction and/or data caching. The instruction cache is high
speed memory internal or external to the processor which is used
to hold copies of instructions as they are fetched from memory.
The data cache is high speed memory internal or external to the
processor which is used to buffer data on its way to or from
external memory.
The entire address space maps to the cache in some processor
dependent fashion. The cache includes control information which
identifies whether each instruction or data element in the cache
is valid. When the processor fetches an instruction or data
element that is already marked as valid in the cache, the cache
copy is used with no time penalty and no external memory interference.
The instruction cache is usually internal to the processor and
hence fixed in size. Some processors also include an internal data cache.
When an external cache is used, the size of the cache is usually
determined by the manner in which it is interfaced to the processor.
Some processors allow the sizes of the internal instruction and
data caches to be adjusted to meet the needs of specific applications.
Some processors also allow specific blocks of instructions to be copied
to the cache and locked in place for guaranteed fast access to
particular pieces of code.
Finally, most processors allow the application to dynamically
enable or disable the instruction and/or data caches.
It is also usually possible to invalidate all or portions of the
instruction and/or data caches.
|