Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March...

100
Memory Subsystem Design Jason Mars Monday, March 11, 13

Transcript of Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March...

Page 1: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Memory Subsystem Design

Jason Mars

Monday, March 11, 13

Page 2: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

The Memory Subsystem

Computer

Memory

Datapath

Control

Output

Input

Monday, March 11, 13

Page 3: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Memory Locality

Monday, March 11, 13

Page 4: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Memory Locality

• Memory hierarchies take advantage of memory locality.

Monday, March 11, 13

Page 5: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Memory Locality

• Memory hierarchies take advantage of memory locality.

• Memory locality is the principle that future memory accesses are near past accesses.

Monday, March 11, 13

Page 6: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Memory Locality

• Memory hierarchies take advantage of memory locality.

• Memory locality is the principle that future memory accesses are near past accesses.

• Memories take advantage of two types of locality

• -- near in time => we will often access the same data again very soon

• -- near in space/distance => our next access is often very close to our last access (or recent accesses).

Monday, March 11, 13

Page 7: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Memory Locality

• Memory hierarchies take advantage of memory locality.

• Memory locality is the principle that future memory accesses are near past accesses.

• Memories take advantage of two types of locality

• -- near in time => we will often access the same data again very soon

• -- near in space/distance => our next access is often very close to our last access (or recent accesses).

Temporal Locality

Monday, March 11, 13

Page 8: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Memory Locality

• Memory hierarchies take advantage of memory locality.

• Memory locality is the principle that future memory accesses are near past accesses.

• Memories take advantage of two types of locality

• -- near in time => we will often access the same data again very soon

• -- near in space/distance => our next access is often very close to our last access (or recent accesses).

Temporal Locality

Spacial Locality

Monday, March 11, 13

Page 9: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Memory Locality

• Memory hierarchies take advantage of memory locality.

• Memory locality is the principle that future memory accesses are near past accesses.

• Memories take advantage of two types of locality

• -- near in time => we will often access the same data again very soon

• -- near in space/distance => our next access is often very close to our last access (or recent accesses).

Temporal Locality

Spacial Locality

(this sequence of addresses exhibits both temporal and spatial locality)1,2,3,1,2,3,8,8,47,9,10,8,8...

Monday, March 11, 13

Page 10: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Memory Locality

• Memory hierarchies take advantage of memory locality.

• Memory locality is the principle that future memory accesses are near past accesses.

• Memories take advantage of two types of locality

• -- near in time => we will often access the same data again very soon

• -- near in space/distance => our next access is often very close to our last access (or recent accesses).

Temporal Locality

Spacial Locality

(this sequence of addresses exhibits both temporal and spatial locality)1,2,3,1,2,3,8,8,47,9,10,8,8...

Monday, March 11, 13

Page 11: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Memory Locality

• Memory hierarchies take advantage of memory locality.

• Memory locality is the principle that future memory accesses are near past accesses.

• Memories take advantage of two types of locality

• -- near in time => we will often access the same data again very soon

• -- near in space/distance => our next access is often very close to our last access (or recent accesses).

Temporal Locality

Spacial Locality

(this sequence of addresses exhibits both temporal and spatial locality)1,2,3,1,2,3,8,8,47,9,10,8,8...

Monday, March 11, 13

Page 12: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Memory Locality

• Memory hierarchies take advantage of memory locality.

• Memory locality is the principle that future memory accesses are near past accesses.

• Memories take advantage of two types of locality

• -- near in time => we will often access the same data again very soon

• -- near in space/distance => our next access is often very close to our last access (or recent accesses).

Temporal Locality

Spacial Locality

(this sequence of addresses exhibits both temporal and spatial locality)1,2,3,1,2,3,8,8,47,9,10,8,8...

Monday, March 11, 13

Page 13: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Locality and Cacheing

• Memory hierarchies exploit locality by cacheing (keeping close to the processor) data likely to be used again.

• This is done because we can build large, slow memories and small, fast memories, but we can’t build large, fast memories.

• If it works, we get the illusion of SRAM access time with disk capacity

SRAM access times are ~1ns at cost of $2000 to $5000 per Gbyte.DRAM access times are ~70ns at cost of $20 to $75 per Gbyte.Disk access times are 5 to 20 million ns at cost of $.20 to $2 per Gbyte.

Monday, March 11, 13

Page 14: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Typical Memory Hierarchy

CPU memory

memory

memory

memory

on-chip cache

off-chip cache

main memory

disk

small expensive $/bit

cheap $/bit

big

fast

slow

Monday, March 11, 13

Page 15: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Cache Fundamentals

cpu

lowest-level cache

next-level memory/cache

Monday, March 11, 13

Page 16: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Cache Fundamentals

cache hit -- an access where the data is found in the cache.

cpu

lowest-level cache

next-level memory/cache

Monday, March 11, 13

Page 17: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Cache Fundamentals

cache hit -- an access where the data is found in the cache.cache miss -- an access which isn’t

cpu

lowest-level cache

next-level memory/cache

Monday, March 11, 13

Page 18: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Cache Fundamentals

cache hit -- an access where the data is found in the cache.cache miss -- an access which isn’t

hit time -- time to access the cache

cpu

lowest-level cache

next-level memory/cache

Monday, March 11, 13

Page 19: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Cache Fundamentals

cache hit -- an access where the data is found in the cache.cache miss -- an access which isn’t

hit time -- time to access the cache

hit ratio -- percentage of time the data is found in the cache

cpu

lowest-level cache

next-level memory/cache

Monday, March 11, 13

Page 20: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Cache Fundamentals

cache hit -- an access where the data is found in the cache.cache miss -- an access which isn’t

hit time -- time to access the cache

miss penalty -- time to move data from further level to closer, then to cpu

hit ratio -- percentage of time the data is found in the cache

cpu

lowest-level cache

next-level memory/cache

Monday, March 11, 13

Page 21: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Cache Fundamentals

cache hit -- an access where the data is found in the cache.cache miss -- an access which isn’t

hit time -- time to access the cache

miss penalty -- time to move data from further level to closer, then to cpu

hit ratio -- percentage of time the data is found in the cache

miss ratio -- (1 - hit ratio)

cpu

lowest-level cache

next-level memory/cache

Monday, March 11, 13

Page 22: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

More Fundamentals

cpu

lowest-level cache

next-level memory/cache

Monday, March 11, 13

Page 23: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

More Fundamentals

• cache block size or cache line size -- the amount of data that gets transferred on a cache miss.

cpu

lowest-level cache

next-level memory/cache

Monday, March 11, 13

Page 24: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

More Fundamentals

• cache block size or cache line size -- the amount of data that gets transferred on a cache miss.

• instruction cache -- cache that only holds instructions.

cpu

lowest-level cache

next-level memory/cache

Monday, March 11, 13

Page 25: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

More Fundamentals

• cache block size or cache line size -- the amount of data that gets transferred on a cache miss.

• instruction cache -- cache that only holds instructions.

• data cache -- cache that only caches data.

cpu

lowest-level cache

next-level memory/cache

Monday, March 11, 13

Page 26: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

More Fundamentals

• cache block size or cache line size -- the amount of data that gets transferred on a cache miss.

• instruction cache -- cache that only holds instructions.

• data cache -- cache that only caches data.

• unified cache -- cache that holds both.

cpu

lowest-level cache

next-level memory/cache

Monday, March 11, 13

Page 27: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Caching Issues

• On a memory access -

• How do I know if this is a hit or miss?

• On a cache miss -

• where to put the new data?

• what data to throw out?

• how to remember what data this is?

cpu

lowest-level cache

next-level memory/cache

access

miss

Monday, March 11, 13

Page 28: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Simple Cache

tag data

the tag identifies the address of the cached data

4 entries, each block holds one word, any block can hold any word.

• A cache that can put a line of data anywhere is called ______________

• The most popular replacement strategy is LRU ( ).

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Monday, March 11, 13

Page 29: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Simple Cache

tag data

the tag identifies the address of the cached data

4 entries, each block holds one word, any block can hold any word.

• A cache that can put a line of data anywhere is called ______________

• The most popular replacement strategy is LRU ( ).

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Fully Associative

Monday, March 11, 13

Page 30: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Simple Cache

tag data

the tag identifies the address of the cached data

4 entries, each block holds one word, any block can hold any word.

• A cache that can put a line of data anywhere is called ______________

• The most popular replacement strategy is LRU ( ).

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Fully Associative

Monday, March 11, 13

Page 31: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Simple Cache

tag data

the tag identifies the address of the cached data

4 entries, each block holds one word, any block can hold any word.

• A cache that can put a line of data anywhere is called ______________

• The most popular replacement strategy is LRU ( ).

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Fully Associative

000001

Monday, March 11, 13

Page 32: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Simple Cache

tag data

the tag identifies the address of the cached data

4 entries, each block holds one word, any block can hold any word.

• A cache that can put a line of data anywhere is called ______________

• The most popular replacement strategy is LRU ( ).

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Fully Associative

000001 Mem(000001)

Monday, March 11, 13

Page 33: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Simple Cache

tag data

the tag identifies the address of the cached data

4 entries, each block holds one word, any block can hold any word.

• A cache that can put a line of data anywhere is called ______________

• The most popular replacement strategy is LRU ( ).

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Fully Associative

000001 Mem(000001)

000010 Mem(000010)

Monday, March 11, 13

Page 34: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Simple Cache

tag data

the tag identifies the address of the cached data

4 entries, each block holds one word, any block can hold any word.

• A cache that can put a line of data anywhere is called ______________

• The most popular replacement strategy is LRU ( ).

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Fully Associative

000001 Mem(000001)

000010 Mem(000010)

000011 Mem(000011)

Monday, March 11, 13

Page 35: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Simple Cache

tag data

the tag identifies the address of the cached data

4 entries, each block holds one word, any block can hold any word.

• A cache that can put a line of data anywhere is called ______________

• The most popular replacement strategy is LRU ( ).

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Fully Associative

000001 Mem(000001)

000010 Mem(000010)

000011 Mem(000011)

Monday, March 11, 13

Page 36: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Simple Cache

tag data

the tag identifies the address of the cached data

4 entries, each block holds one word, any block can hold any word.

• A cache that can put a line of data anywhere is called ______________

• The most popular replacement strategy is LRU ( ).

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Fully Associative

000001 Mem(000001)

000010 Mem(000010)

000011 Mem(000011)

Monday, March 11, 13

Page 37: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Simple Cache

tag data

the tag identifies the address of the cached data

4 entries, each block holds one word, any block can hold any word.

• A cache that can put a line of data anywhere is called ______________

• The most popular replacement strategy is LRU ( ).

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Fully Associative

000001 Mem(000001)

000010 Mem(000010)

000011 Mem(000011)

Monday, March 11, 13

Page 38: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Simple Cache

tag data

the tag identifies the address of the cached data

4 entries, each block holds one word, any block can hold any word.

• A cache that can put a line of data anywhere is called ______________

• The most popular replacement strategy is LRU ( ).

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Fully Associative

000001 Mem(000001)

000010 Mem(000010)

000011 Mem(000011)

000101 Mem(000101)

Monday, March 11, 13

Page 39: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Simple Cache

tag data

the tag identifies the address of the cached data

4 entries, each block holds one word, any block can hold any word.

• A cache that can put a line of data anywhere is called ______________

• The most popular replacement strategy is LRU ( ).

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Fully Associative

000001 Mem(000001)

000010 Mem(000010)

000011 Mem(000011)

000101 Mem(000101)

Monday, March 11, 13

Page 40: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Simple Cache

tag data

the tag identifies the address of the cached data

4 entries, each block holds one word, any block can hold any word.

• A cache that can put a line of data anywhere is called ______________

• The most popular replacement strategy is LRU ( ).

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Fully Associative

000001 Mem(000001)

000010 Mem(000010)

000011 Mem(000011)

000101 Mem(000101)

Monday, March 11, 13

Page 41: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Simple Cache

tag data

the tag identifies the address of the cached data

4 entries, each block holds one word, any block can hold any word.

• A cache that can put a line of data anywhere is called ______________

• The most popular replacement strategy is LRU ( ).

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Fully Associative

Least Recently Used

000001 Mem(000001)

000010 Mem(000010)

000011 Mem(000011)

000101 Mem(000101)

Monday, March 11, 13

Page 42: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Simple Cache

tag data

the tag identifies the address of the cached data

4 entries, each block holds one word, any block can hold any word.

• A cache that can put a line of data anywhere is called ______________

• The most popular replacement strategy is LRU ( ).

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Fully Associative

Least Recently Used

000001 Mem(000001)

000010 Mem(000010)

000011 Mem(000011)

000101 Mem(000101)

Monday, March 11, 13

Page 43: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Simple Cache

tag data

the tag identifies the address of the cached data

4 entries, each block holds one word, any block can hold any word.

• A cache that can put a line of data anywhere is called ______________

• The most popular replacement strategy is LRU ( ).

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Fully Associative

Least Recently Used

000001 Mem(000001)

000010 Mem(000010)

000011 Mem(000011)

000101 Mem(000101)

Monday, March 11, 13

Page 44: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

An Even Simpler Cache

• A cache that can put a line of data in exactly one place is called __________________.

• Advantages/disadvantages vs. fully-associative?

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

an index is used to determine

which line an address might be found in

4 entries, each block holds one word, each word in memory maps to exactly one cache location.

00000100 tag data

Monday, March 11, 13

Page 45: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

An Even Simpler Cache

• A cache that can put a line of data in exactly one place is called __________________.

• Advantages/disadvantages vs. fully-associative?

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Direct Mapped

an index is used to determine

which line an address might be found in

4 entries, each block holds one word, each word in memory maps to exactly one cache location.

00000100 tag data

Monday, March 11, 13

Page 46: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

An Even Simpler Cache

• A cache that can put a line of data in exactly one place is called __________________.

• Advantages/disadvantages vs. fully-associative?

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Direct Mapped

an index is used to determine

which line an address might be found in

4 entries, each block holds one word, each word in memory maps to exactly one cache location.

00000100 tag data

01 0000 Mem(000001)

Monday, March 11, 13

Page 47: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

An Even Simpler Cache

• A cache that can put a line of data in exactly one place is called __________________.

• Advantages/disadvantages vs. fully-associative?

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Direct Mapped

an index is used to determine

which line an address might be found in

4 entries, each block holds one word, each word in memory maps to exactly one cache location.

00000100 tag data

01 0000 Mem(000001)

Monday, March 11, 13

Page 48: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

An Even Simpler Cache

• A cache that can put a line of data in exactly one place is called __________________.

• Advantages/disadvantages vs. fully-associative?

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Direct Mapped

an index is used to determine

which line an address might be found in

4 entries, each block holds one word, each word in memory maps to exactly one cache location.

00000100 tag data

01 0000 Mem(000001)

10 0000 Mem(000010)

Monday, March 11, 13

Page 49: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

An Even Simpler Cache

• A cache that can put a line of data in exactly one place is called __________________.

• Advantages/disadvantages vs. fully-associative?

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Direct Mapped

an index is used to determine

which line an address might be found in

4 entries, each block holds one word, each word in memory maps to exactly one cache location.

00000100 tag data

01 0000 Mem(000001)

10 0000 Mem(000010)

Monday, March 11, 13

Page 50: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

An Even Simpler Cache

• A cache that can put a line of data in exactly one place is called __________________.

• Advantages/disadvantages vs. fully-associative?

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Direct Mapped

an index is used to determine

which line an address might be found in

4 entries, each block holds one word, each word in memory maps to exactly one cache location.

00000100 tag data

01 0000 Mem(000001)

10 0000 Mem(000010)

11 0000 Mem(000011)

Monday, March 11, 13

Page 51: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

An Even Simpler Cache

• A cache that can put a line of data in exactly one place is called __________________.

• Advantages/disadvantages vs. fully-associative?

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Direct Mapped

an index is used to determine

which line an address might be found in

4 entries, each block holds one word, each word in memory maps to exactly one cache location.

00000100 tag data

01 0000 Mem(000001)

10 0000 Mem(000010)

11 0000 Mem(000011)

Monday, March 11, 13

Page 52: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

An Even Simpler Cache

• A cache that can put a line of data in exactly one place is called __________________.

• Advantages/disadvantages vs. fully-associative?

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Direct Mapped

an index is used to determine

which line an address might be found in

4 entries, each block holds one word, each word in memory maps to exactly one cache location.

00000100 tag data

01 0000 Mem(000001)

10 0000 Mem(000010)

11 0000 Mem(000011)

Monday, March 11, 13

Page 53: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

An Even Simpler Cache

• A cache that can put a line of data in exactly one place is called __________________.

• Advantages/disadvantages vs. fully-associative?

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Direct Mapped

an index is used to determine

which line an address might be found in

4 entries, each block holds one word, each word in memory maps to exactly one cache location.

00000100 tag data

01 0000 Mem(000001)

10 0000 Mem(000010)

11 0000 Mem(000011)

Monday, March 11, 13

Page 54: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

An Even Simpler Cache

• A cache that can put a line of data in exactly one place is called __________________.

• Advantages/disadvantages vs. fully-associative?

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Direct Mapped

an index is used to determine

which line an address might be found in

4 entries, each block holds one word, each word in memory maps to exactly one cache location.

00000100 tag data

10 0000 Mem(000010)

11 0000 Mem(000011)

Monday, March 11, 13

Page 55: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

An Even Simpler Cache

• A cache that can put a line of data in exactly one place is called __________________.

• Advantages/disadvantages vs. fully-associative?

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

Direct Mapped

an index is used to determine

which line an address might be found in

4 entries, each block holds one word, each word in memory maps to exactly one cache location.

00000100 tag data

10 0000 Mem(000010)

11 0000 Mem(000011)

01 0001 Mem(000101)

Monday, March 11, 13

Page 56: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Set Associative Cache

• A cache that can put a line of data in exactly n places is called ________________.

• The cache lines/blocks that share the same index are a cache ____________.

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

tag data

4 entries, each block holds one word, each word in memory maps to one of a set of n cache lines

00000100 tag data

01

Monday, March 11, 13

Page 57: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Set Associative Cache

• A cache that can put a line of data in exactly n places is called ________________.

• The cache lines/blocks that share the same index are a cache ____________.

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

n-way set-associative

tag data

4 entries, each block holds one word, each word in memory maps to one of a set of n cache lines

00000100 tag data

01

Monday, March 11, 13

Page 58: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Set Associative Cache

• A cache that can put a line of data in exactly n places is called ________________.

• The cache lines/blocks that share the same index are a cache ____________.

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

n-way set-associative

tag data

4 entries, each block holds one word, each word in memory maps to one of a set of n cache lines

00000100 tag data

set

01

Monday, March 11, 13

Page 59: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Set Associative Cache

• A cache that can put a line of data in exactly n places is called ________________.

• The cache lines/blocks that share the same index are a cache ____________.

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

n-way set-associative

tag data

4 entries, each block holds one word, each word in memory maps to one of a set of n cache lines

00000100 tag data

set

01

Monday, March 11, 13

Page 60: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Set Associative Cache

• A cache that can put a line of data in exactly n places is called ________________.

• The cache lines/blocks that share the same index are a cache ____________.

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

n-way set-associative

tag data

4 entries, each block holds one word, each word in memory maps to one of a set of n cache lines

00000100 tag data

set

00000 Mem(000001)01

Monday, March 11, 13

Page 61: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Set Associative Cache

• A cache that can put a line of data in exactly n places is called ________________.

• The cache lines/blocks that share the same index are a cache ____________.

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

n-way set-associative

tag data

4 entries, each block holds one word, each word in memory maps to one of a set of n cache lines

00000100 tag data

set

00000 Mem(000001)01

Monday, March 11, 13

Page 62: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Set Associative Cache

• A cache that can put a line of data in exactly n places is called ________________.

• The cache lines/blocks that share the same index are a cache ____________.

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

n-way set-associative

tag data

4 entries, each block holds one word, each word in memory maps to one of a set of n cache lines

00000100 tag data

set

00000 Mem(000001)01

00001 Mem(000010)

Monday, March 11, 13

Page 63: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Set Associative Cache

• A cache that can put a line of data in exactly n places is called ________________.

• The cache lines/blocks that share the same index are a cache ____________.

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

n-way set-associative

tag data

4 entries, each block holds one word, each word in memory maps to one of a set of n cache lines

00000100 tag data

set

00000 Mem(000001)01

00001 Mem(000010)

Monday, March 11, 13

Page 64: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Set Associative Cache

• A cache that can put a line of data in exactly n places is called ________________.

• The cache lines/blocks that share the same index are a cache ____________.

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

n-way set-associative

tag data

4 entries, each block holds one word, each word in memory maps to one of a set of n cache lines

00000100 tag data

set

00000 Mem(000001)01

00001 Mem(000010)00001 Mem(000011)

Monday, March 11, 13

Page 65: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Set Associative Cache

• A cache that can put a line of data in exactly n places is called ________________.

• The cache lines/blocks that share the same index are a cache ____________.

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

n-way set-associative

tag data

4 entries, each block holds one word, each word in memory maps to one of a set of n cache lines

00000100 tag data

set

00000 Mem(000001)01

00001 Mem(000010)00001 Mem(000011)

Monday, March 11, 13

Page 66: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Set Associative Cache

• A cache that can put a line of data in exactly n places is called ________________.

• The cache lines/blocks that share the same index are a cache ____________.

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

n-way set-associative

tag data

4 entries, each block holds one word, each word in memory maps to one of a set of n cache lines

00000100 tag data

set

00000 Mem(000001)01

00001 Mem(000010)00001 Mem(000011)

Monday, March 11, 13

Page 67: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Set Associative Cache

• A cache that can put a line of data in exactly n places is called ________________.

• The cache lines/blocks that share the same index are a cache ____________.

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

n-way set-associative

tag data

4 entries, each block holds one word, each word in memory maps to one of a set of n cache lines

00000100 tag data

set

00000 Mem(000001)01

00001 Mem(000010)00001 Mem(000011)

Monday, March 11, 13

Page 68: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Set Associative Cache

• A cache that can put a line of data in exactly n places is called ________________.

• The cache lines/blocks that share the same index are a cache ____________.

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

n-way set-associative

tag data

4 entries, each block holds one word, each word in memory maps to one of a set of n cache lines

00000100 tag data

set

01

00001 Mem(000010)00001 Mem(000011)

Monday, March 11, 13

Page 69: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Set Associative Cache

• A cache that can put a line of data in exactly n places is called ________________.

• The cache lines/blocks that share the same index are a cache ____________.

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

n-way set-associative

tag data

4 entries, each block holds one word, each word in memory maps to one of a set of n cache lines

00000100 tag data

set

01

00001 Mem(000010)00001 Mem(000011)00010 Mem(000101)

Monday, March 11, 13

Page 70: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Longer/Larger Cache Blocks

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

• Large cache blocks take advantage of ________________.• Too large of a block size can waste cache space.• Longer cache blocks require less tag space

tag data

4 entries, each block holds two words, each word in memory maps to exactly one cache location (this cache is twice the total size of the prior caches).

00000100

Monday, March 11, 13

Page 71: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Longer/Larger Cache Blocks

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

• Large cache blocks take advantage of ________________.• Too large of a block size can waste cache space.• Longer cache blocks require less tag space

Spacial Locality

tag data

4 entries, each block holds two words, each word in memory maps to exactly one cache location (this cache is twice the total size of the prior caches).

00000100

Monday, March 11, 13

Page 72: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Longer/Larger Cache Blocks

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

• Large cache blocks take advantage of ________________.• Too large of a block size can waste cache space.• Longer cache blocks require less tag space

Spacial Locality

tag data

4 entries, each block holds two words, each word in memory maps to exactly one cache location (this cache is twice the total size of the prior caches).

00000100

00

0110

11

Monday, March 11, 13

Page 73: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Longer/Larger Cache Blocks

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

• Large cache blocks take advantage of ________________.• Too large of a block size can waste cache space.• Longer cache blocks require less tag space

Spacial Locality

tag data

4 entries, each block holds two words, each word in memory maps to exactly one cache location (this cache is twice the total size of the prior caches).

00000100

00

0110

11

0

Monday, March 11, 13

Page 74: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Longer/Larger Cache Blocks

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

• Large cache blocks take advantage of ________________.• Too large of a block size can waste cache space.• Longer cache blocks require less tag space

Spacial Locality

tag data

4 entries, each block holds two words, each word in memory maps to exactly one cache location (this cache is twice the total size of the prior caches).

00000100

00

0110

11

0 1

Monday, March 11, 13

Page 75: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Longer/Larger Cache Blocks

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

• Large cache blocks take advantage of ________________.• Too large of a block size can waste cache space.• Longer cache blocks require less tag space

Spacial Locality

tag data

4 entries, each block holds two words, each word in memory maps to exactly one cache location (this cache is twice the total size of the prior caches).

00000100

00

0110

11

0 1

Monday, March 11, 13

Page 76: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Longer/Larger Cache Blocks

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

• Large cache blocks take advantage of ________________.• Too large of a block size can waste cache space.• Longer cache blocks require less tag space

Spacial Locality

tag data

4 entries, each block holds two words, each word in memory maps to exactly one cache location (this cache is twice the total size of the prior caches).

00000100

00

0110

11

0 1000

Monday, March 11, 13

Page 77: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Longer/Larger Cache Blocks

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

• Large cache blocks take advantage of ________________.• Too large of a block size can waste cache space.• Longer cache blocks require less tag space

Spacial Locality

tag data

4 entries, each block holds two words, each word in memory maps to exactly one cache location (this cache is twice the total size of the prior caches).

00000100

00

0110

11

0 1Mem(000001)Mem(000000)000

Monday, March 11, 13

Page 78: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Longer/Larger Cache Blocks

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

• Large cache blocks take advantage of ________________.• Too large of a block size can waste cache space.• Longer cache blocks require less tag space

Spacial Locality

tag data

4 entries, each block holds two words, each word in memory maps to exactly one cache location (this cache is twice the total size of the prior caches).

00000100

00

0110

11

0 1Mem(000001)Mem(000000)000

Monday, March 11, 13

Page 79: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Longer/Larger Cache Blocks

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

• Large cache blocks take advantage of ________________.• Too large of a block size can waste cache space.• Longer cache blocks require less tag space

Spacial Locality

tag data

4 entries, each block holds two words, each word in memory maps to exactly one cache location (this cache is twice the total size of the prior caches).

00000100

00

0110

11

0 1Mem(000001)Mem(000000)000

000

Monday, March 11, 13

Page 80: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Longer/Larger Cache Blocks

address string: 4 00000100 8 00001000 12 00001100 4 00000100 8 00001000 20 00010100 4 00000100 8 00001000 20 00010100 24 00011000 12 00001100 8 00001000 4 00000100

• Large cache blocks take advantage of ________________.• Too large of a block size can waste cache space.• Longer cache blocks require less tag space

Spacial Locality

tag data

4 entries, each block holds two words, each word in memory maps to exactly one cache location (this cache is twice the total size of the prior caches).

00000100

00

0110

11

0 1Mem(000001)Mem(000000)000Mem(000011)Mem(000010)000

Monday, March 11, 13

Page 81: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Block Size and Miss Rate

Monday, March 11, 13

Page 82: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Cache Parameters

Cache size = Number of sets * block size * associativity

-128 blocks, 32-byte block size, direct mapped, size =

-128 KB cache, 64-byte blocks, 512 sets, associativity = ?

Monday, March 11, 13

Page 83: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Cache Parameters

Cache size = Number of sets * block size * associativity

-128 blocks, 32-byte block size, direct mapped, size =

-128 KB cache, 64-byte blocks, 512 sets, associativity = ?

128 x 32 = 4096 bytes = 4mb

Monday, March 11, 13

Page 84: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Cache Parameters

Cache size = Number of sets * block size * associativity

-128 blocks, 32-byte block size, direct mapped, size =

-128 KB cache, 64-byte blocks, 512 sets, associativity = ?

128 x 32 = 4096 bytes = 4mb

131072 bytes / 512 = 256 bytes/set

Monday, March 11, 13

Page 85: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Cache Parameters

Cache size = Number of sets * block size * associativity

-128 blocks, 32-byte block size, direct mapped, size =

-128 KB cache, 64-byte blocks, 512 sets, associativity = ?

128 x 32 = 4096 bytes = 4mb

131072 bytes / 512 = 256 bytes/set256 bytes / 64 byte = 4 blocks/set = 4-way

Monday, March 11, 13

Page 86: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

A Cache Access

• 1. Use index and tag to access cache and determine hit/miss.

• 2. If hit, return requested data.

• 3. If miss, select a cache block to be replaced, and access memory or next lower cache (possibly stalling the processor).

• load entire missed cache line into cache

• return requested data to CPU (or higher cache)

• 4. If next lower memory is a cache, goto step 1 for that cache.

ICache Reg

ALU

Dcache Reg

IF ID EX MEM WB

Monday, March 11, 13

Page 87: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Accessing a Sample Cache

• 16 KB cache, direct-mapped, 64-byte cache block size

486 Chapter 7 Large and Fast: Exploiting Memory Hierarchy

one. A block index field is used to control the multiplexor (shown at thebottom of the figure), which selects the requested word from the 16 wordsin the indexed block.

3. If the cache signals miss, we send the address to the main memory. Whenthe memory returns with the data, we write it into the cache and then readit to fulfill the request.

For writes, the Intrinsity FastMATH offers both write-through and write-back,leaving it up to the operating system to decide which strategy to use for an appli-cation. It has a one-entry write buffer.

FIGURE 7.9 The 16 KB caches in the Intrinsity FastMATH each contain 256 blocks with 16 words per block. The tag field is 18 bitswide and the index field is 8 bits wide, while a 4-bit field (bits 5–2) is used to index the block and select the word from the block using a 16-to-1 multi-plexor. In practice, to eliminate the multiplexor, caches use a separate large RAM for the data and a smaller RAM for the tags, with the block offset supply-ing the extra address bits for the large data RAM. In this case, the large RAM is 32 bits wide and must have 16 times as many words as blocks in the cache.

Address (showing bit positions)

DataHit

Data

Tag

V Tag

32

16

=

Index

18 8 Byteoffset

31 14 13 2 1 06 5

4

Block offset

256entries

512 bits18 bits

Mux

3232 32

Monday, March 11, 13

Page 88: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Accessing a Sample Cache

• 32 KB cache, 2-way set-associative, 16-byte block size31 30 29 28 27 ........... 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

tag index

valid tag data

32 KB

/ 16 bytes / 2 = 1 K

cache sets

10

=

18

hit/miss

0 1 2 ... ... ...

... 1021 1022 1023

block offset

tag data valid

=

Monday, March 11, 13

Page 89: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Associative Caches

• Higher hit rates, but...

• longer access time (longer to determine hit/miss, more muxing of outputs)

• more space (longer tags compared to DM)

• 2-way extra 1 bit

• 4-way extra 2 bits

Monday, March 11, 13

Page 90: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Handling Stores

• Keep memory and cache identical?

• => all writes go to both cache and main memory

• => writes go only to cache. Modified cache lines are written back to memory when the line is replaced.

• Make room in cache for store miss?

• => on a store miss, bring written line into the cache

• => on a store miss, ignore cache

Monday, March 11, 13

Page 91: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Handling Stores

• Keep memory and cache identical?

• => all writes go to both cache and main memory

• => writes go only to cache. Modified cache lines are written back to memory when the line is replaced.

• Make room in cache for store miss?

• => on a store miss, bring written line into the cache

• => on a store miss, ignore cache

Write-through

Monday, March 11, 13

Page 92: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Handling Stores

• Keep memory and cache identical?

• => all writes go to both cache and main memory

• => writes go only to cache. Modified cache lines are written back to memory when the line is replaced.

• Make room in cache for store miss?

• => on a store miss, bring written line into the cache

• => on a store miss, ignore cache

Write-through

Write-back

Monday, March 11, 13

Page 93: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Handling Stores

• Keep memory and cache identical?

• => all writes go to both cache and main memory

• => writes go only to cache. Modified cache lines are written back to memory when the line is replaced.

• Make room in cache for store miss?

• => on a store miss, bring written line into the cache

• => on a store miss, ignore cache

Write-through

Write-back

Write-allocate

Monday, March 11, 13

Page 94: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Handling Stores

• Keep memory and cache identical?

• => all writes go to both cache and main memory

• => writes go only to cache. Modified cache lines are written back to memory when the line is replaced.

• Make room in cache for store miss?

• => on a store miss, bring written line into the cache

• => on a store miss, ignore cache

Write-through

Write-back

Write-allocate

Write-around

Monday, March 11, 13

Page 95: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

The Three C’s

• Compulsory (or cold-start) misses

• first access to the data.

• Capacity misses

• we missed only because the cache isn’t big enough.

• Conflict misses

• we missed because the data maps to the same line as other data that forced it out of the cache.

Monday, March 11, 13

Page 96: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Modern Caches

CPU

I$

D$

L2 cache

CPU

I$

D$

L2 cache

CPU

I$

D$

L2 cache

CPU

I$

D$

L2 cache

L3 cache

Instruction Cache -32 KB, 4-way -64-byte line -write-back, write-allocate

Data Cache -32 KB, 8-way -64-byte line -write-back, write-allocate

Unified L2 Cache -256 KB, 8-way -64-byte line -write-back, write-allocate

Shared, unified L3 Cache -8 MB, 16-way -64-byte line -write-back, write-allocate

Monday, March 11, 13

Page 97: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Key Points

Monday, March 11, 13

Page 98: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Key Points

• Caches give illusion of a large, cheap memory with the access time of a fast, expensive memory.

Monday, March 11, 13

Page 99: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Key Points

• Caches give illusion of a large, cheap memory with the access time of a fast, expensive memory.

• Caches take advantage of memory locality, specifically temporal locality and spatial locality.

Monday, March 11, 13

Page 100: Memory Subsystem Design - Computer Science€¦ · Memory Subsystem Design Jason Mars Monday, March 11, 13. The Memory Subsystem Computer Memory Datapath Control Output Input Monday,

Key Points

• Caches give illusion of a large, cheap memory with the access time of a fast, expensive memory.

• Caches take advantage of memory locality, specifically temporal locality and spatial locality.

• Cache design presents many options (block size, cache size, associativity, write policy) that an architect must combine to minimize miss rate and access time to maximize performance

Monday, March 11, 13