Cache Basics Adapted from a presentation by Beth Richardson [email protected]

26
CS 524 (Au 2005-06) - Asim Karim @ L UMS 1 Cache Basics Adapted from a presentation by Beth Richardson [email protected]

description

Cache Basics Adapted from a presentation by Beth Richardson [email protected]. Cache Historical Note. Cache hardware first appeared on production computers in the late 1960’s. Before that processor/memory communication looked like:. CPU. Memory. Processors designed without cache were - PowerPoint PPT Presentation

Transcript of Cache Basics Adapted from a presentation by Beth Richardson [email protected]

Page 1: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS1

Cache Basics

Adapted from a presentation by

Beth Richardson

[email protected]

Page 2: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS2

Cache Historical NoteCache Historical Note

Cache hardware first appeared on production computers in the late 1960’s.

Before that processor/memory communication looked like:

CPU Memory

Processors designed without cache were simpler because every memory access took the same amount of time.

Page 3: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS3

Main Memory Improvements (1)Main Memory Improvements (1)

A hardware improvement named interleaving reduces main memory access time.

Interleaving DefinedMain memory is divided into partitions or segments

named memory banks.

Consecutive data elements are spread across the banks.

Each bank supplies one data element per bank cycle.

Multiple data elements are read in parallel, one from each bank.

Page 4: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS4

Main Memory Improvements (2)Main Memory Improvements (2)

Interleaving ProblemThe memory interleaving improvement assumes

that memory is accessed sequentially.

If we have 2-way memory interleaving, but the code accesses every other location, there is no benefit.

Regardless of the above problem the bank cycle time is 4-8 times the CPU clock cycle time. The main memory can’t keep up with the fast CPU and keep it busy with data.

Large main memory with a cycle time comparable to the processor is not affordable.

Page 5: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS5

Purpose of CachePurpose of Cache

The purpose of cache is to improve the memory access time to the processor.

There is an overhead associated with cache, but the benefits outweigh the costs.

Main Memory

Cache

CPU

logic

Page 6: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS6

Today’s ComputersToday’s Computers

Today almost every computer, large or small, has a cache. The CPU must be able to handle variable memory access times.

Disk

Main Memory

Cache

Registers

CPU

Page 7: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS7

RegistersRegisters

Purpose of RegistersRegisters are the sources and destinations of CPU

operations.

Description of RegistersThey hold one data element and are 32 bits or 64

bits wide.

They are on-chip and built from SRAM.

Speed of RegistersRegister access speeds are comparable to

processor speeds.

Page 8: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS8

Memory HierarchyMemory Hierarchy

The different memory subsystems in the memory hierarchy have different speeds, sizes, and costs.

Memory technology:Smaller memory is faster

Slower memory is cheaper

The memory hierarchy is built so that the fastest memory is closest to the CPU, and the slower memories are further away from the CPU.

Page 9: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS9

Memory Hierarchy (2)Memory Hierarchy (2)

CPU

Registers

Cache

Memory

Disk

Tape

Shorter Access TimeHigher Cost

Longer Access TimeLower Cost

Page 10: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS10

Memory Hierarchy (3)Memory Hierarchy (3)

It’s called a hierarchy because every level is a subset of a level further away.

All data in one level is found in the level below.

Performance is the reason for having a memory hierarchy.

Analogy for Memory HierarchyThe library books on your desk are a subset of the

books in the LUMS library, which in turn is a subset of the books in the Library of Congress.

Page 11: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS11

Principle of LocalityPrinciple of Locality

Temporal LocalityWhen an item is referenced, it will be referenced

again soon.

Spatial LocalityWhen an item is referenced, items whose

addresses are nearby will tend to be referenced soon (library analogy).

Page 12: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS12

Cache Line or BlockCache Line or Block

The overhead of the cache can be reduced by fetching a chunk or block of data elements.

When a main memory access is made, a cache line (or block) of data is brought into the cache instead of a single data element.

A cache line is defined in terms of a number of bytes. For example, we say that the cache line is 32 bytes, or 128 bytes.

This takes advantage of spatial locality.

The additional elements in the cache line will most likely be needed soon.

Page 13: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS13

Cache Line SizeCache Line Size

How large should computer designers make the cache line?The cache miss rate falls as the size of the cache

line increases.

But there is a point of negative returns on cache line size.

When the cache line size becomes too large, the transfer time increases.

Page 14: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS14

Cache Hit/MissCache Hit/MissA cache hit occurs when the data element requested by the

processor IS in the cache.You want to maximize cache hits.Cache Hit Rate

It’s the fraction of time that the requested data IS found in the cache.

A cache miss occurs when the data element requested by the processor IS NOT in the cache.

You want to minimize cache misses.Cache Miss Rate

Defined as 1.0 - Hit RateMiss Penalty (miss time)

The time needed to retrieve the data from a lower level (downstream) of the memory hierarchy.

Page 15: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS15

Two Levels of CacheTwo Levels of Cache

An on-chip cache performs the fastestBut the computer designer makes a trade-off

between die size and cache size.

Hence on-chip cache has a small size.

When the on-chip cache has a cache miss, the time to access the slower main memory is very large. A cache miss is very costly.

To solve this problem, computer designers have implemented a larger, slower off-chip cache. It speeds up the on-chip cache miss time.

Page 16: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS16

Two Levels of Cache (2)Two Levels of Cache (2)

The on-chip cache is namedFirst level, or L1, or primary cache

The off-chip cache is namedSecond level, or L2, or secondary cache

L1 cache misses are handled quickly.L2 cache misses have a larger performance

penalty.

Caches closer to the CPU are namedUpstream

Caches further from the CPU are namedDownstream

Page 17: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS17

Memory HierarchyMemory Hierarchy

Registers

L2 Cache

Main Memory

Disk

L1 Cache

CPU

Page 18: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS18

Split or Unified CacheSplit or Unified Cache

Unified CacheThe cache is a combined instruction-data cache.

Split CacheThe cache is split into 2 parts.

One for the instructions, the instruction cache.

Another for the data, named the data cache

The 2 caches are independent of each other, and they can have independent properties.

Disadvantage of a Unified CacheWhen the data access and instruction access

conflict with each other, the cache may thrash.

Page 19: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS19

Cache MappingCache Mapping

Cache Mapping DefinedCache mapping determines which cache location

should be used to store a copy of a data element from main memory.

There are 2 mapping strategies - direct mapped cache, and set associative cache.

Direct Mapped CacheThere is a one to one correspondence between

main memory addresses and cache addresses.

cache address = main memory address MOD (size of cache)

Cache lines are mapped to unique addresses.

Page 20: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS20

Direct Mapped Cache DiagramDirect Mapped Cache Diagram

1 2 3

128

...

...

1 ...2 128 129 ...

...

256

CACHE

MEMORY

5632

126

Page 21: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS21

Set Associative CacheSet Associative Cache

N-way Set Associative CacheCan think of cache as being divided into N vertical

strips (usually N is 2 or 4).

A cache line is assigned to just one of the strips.

1 1 1 1

128 128 128 128

CACHE

Page 22: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS22

Cache Block ReplacementCache Block Replacement

With Direct Mapped CacheA cache line can only be mapped to one unique

place in cache. The new cache line replaces the cache block at that address.

With Set Associative Cache There is a choice. We’ll look at 3 strategies named

Random, LRU, and FIFO.

RandomThere is a uniform random replacement within the

set of cache blocks.The advantage of random replacement is that it’s

simple and inexpensive to implement.

Page 23: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS23

Cache Block Replacement (2)Cache Block Replacement (2)

LRU (Least Recently Used)The block that gets replaced is the one that hasn’t

been used for the longest time.The principle of temporal locality tells us that

recently used data are likely to be used again soon.

An advantage of LRU is that it preserves temporal locality.

A disadvantage of LRU is that it’s expensive to keep track of cache access patterns.

In empirical studies there was little performance difference between LRU and Random.

Page 24: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS24

Cache Block Replacement (3)Cache Block Replacement (3)

FIFO (First In First Out)Replace the block that was used N accesses ago,

regardless of the access pattern.In empirical studies Random replacement generally

outperformed FIFO.

Page 25: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS25

Cache ThrashingCache Thrashing

Thrashing DefinitionCache thrashing is a problem that happens when a

frequently used cache line gets displaced by another frequently used cache line.

Cache thrashing can happen for both instruction and data caches.

The CPU can’t find the data element it wants in the cache and must make another main memory cache line access.

The same data elements are repeatedly fetched into and displaced from the cache.

Page 26: Cache Basics Adapted from a presentation by Beth Richardson bethr@ncsa.uiuc

CS 524 (Au 2005-06) - Asim Karim @ LUMS26

Cache Thrashing (2)Cache Thrashing (2)

Why does thrashing happen?The computational code statements have too many

variables and arrays for the needed data elements to fit in cache. Cache lines are discarded and later retrieved.

The arrays are dimensioned too large to fit in cache.

The arrays are accessed with indirect addressing, e.g. a(k(j)).

How to Reduce ThrashingThe computer designer can reduce cache thrashing

by increasing the cache’s set associativity.