Cache Memory: A Safe Place For Hiding or Storing Things
Cache Memory: A Safe Place For Hiding or Storing Things
● Types of locality
○ Temporal locality
○ Spatial locality
■ items whose addresses are near one another tend to be referenced close
together in time.
Parameters of Cache memory
● Cache Hit
○ A referenced item is found in the cache by the
processor
● Cache Miss
○ A referenced item is not present in the cache
● Hit ratio
○ Ratio of number of hits to total number of
references => number of hits/(number of hits +
number of Miss)
● Miss penalty
○ Additional cycles required to serve the miss
Parameters of Cache Memory
● Time required for the cache miss depends on both the latency and
bandwidth
● Latency – time to retrieve the first word of the block
● Bandwidth – time to retrieve the rest of this block
Start
Yes
Select the cache line to receive
the block from Main Memory
Deliver Block To CPU
Done
Direct Mapping
Fully Associative
Tag
Offset
Cache Memory Management
Techniques
FCFS
Random
Write Through
Write back
Update Policies
Write around
Write allocate
Example
Main Memory
Associative Mapping
● Fastest, most flexible but very expensive
● Any block location in cache can store any block
in memory
● Stores both the address and the content of the
memory word
● CPU address of 15 bits is placed in the argument
register and the associative memory is searched
for a matching address
● If found data is read and sent to the CPU else
main memory is accessed.
● CAM – content addressable memory
● Write-Around
○ correspond to items not currently in the cache (i.e. write misses) the item
could be updated in main memory only without affecting the cache.
● Write-Allocate
○ update the item in main memory and bring the block containing the updated
item into the cache.
Performance analysis
● Look through: The cache is checked first for a hit, and if a miss
occurs then the access to main memory is started.
● Look aside: access to main memory in parallel with the cache
lookup;
•Look through
TA = TC + (1-h)*TM
TC is the average cache access time
TM is the average access time
(Mean memory access time)
•Look aside
TA = h*TC + (1-h)*TM
● Compulsory Misses
● Capacity Misses
● Cold Misses
● Conflict Misses
Sources of Cache Misses
○ Compulsory Misses: These are misses that are caused by the cache being empty initially.
○ Cold Misses : The very first access to a block will result in a miss because the block is not brought into cache
until it is referenced.
○ Capacity Misses : If the cache cannot contain all the blocks needed during the execution of a program, capacity
misses will occur due to blocks being discarded and later retrieved.
○ Conflict Misses: If the cache mapping is such that multiple blocks are mapped to the same cache entry
Cache organization
● Split cache
○ Separate caches for instructions and data
○ I-cache (Instruction) – mostly accessed sequentially
○ D-cache (data) – mostly random access
● Unified cache
○ Same cache for instruction and data
● Higher hit rate for unified cache as it balances
between instruction and data
● Split caches eliminate contention for cache
between the instruction processor and the
execution unit – used for pipelining processes
Multilevel caches
● The penalty for a cache miss is the extra time
that it takes to obtain the requested item from
central memory.
● One way in which this penalty can be reduced is
to provide another cache, the secondary cache,
which is accessed in response to a miss in the
primary cache.
● The primary cache is referred to as the L1 (level
1) cache and the secondary cache is called the
L2 (level 2) cache.
● Most high-performance microprocessors include
an L2 cache which is often located off-chip,
whereas the L1 cache is located on the same
chip as the CPU.
● With a two-level cache, central memory has to
be accessed only if a miss occurs in both caches.
Example:
● A computer system employs a write-back cache with a
70% hit ratio for writes. The cache operates in look-aside
mode and has a 90% read hit ratio. Reads account for 80%
of all memory references and writes account for 20%. If
the main memory cycle time is 200ns and the cache
access time is 20ns, what would be the average access
time for all references (reads as well as writes)?
The average access time for reads = 0.9*20ns + 0.1*200ns =
38ns.
The average write time = 0.7*20ns + 0.3*200ns = 74ns
Hence the overall average access time for combined reads
and writes is
0.8*38ns + 0.2*74ns = 45.2ns
Total Reference
100%