fa26-cs759 cs759
Chapter 6: The Memory Hierarchy Chapter 6: The Memory Hierarchy
Content locked
The catalog is public. Reading this content requires approved access.
Sign in to readChapter 6: The Memory Hierarchy
The Memory Hierarchy
6.1 Storage Technologies
6.1.1 Random Access Memory
Static RAM
Dynamic RAM
Conventional DRAMs
Aside A note on terminology
Memory Modules
Practice Problem 6.1 (solution page 696)
Enhanced DRAMs
Nonvolatile Memory
Aside Historical popularity of DRAM technologies
Accessing Main Memory
Aside A note on bus designs
6.1.2 Disk Storage
Disk Geometry
Disk Capacity
Aside How much is a gigabyte?
Practice Problem 6.2 (solution page 697)
Disk Operation
Practice Problem 6.3 (solution page 697)
Logical Disk Blocks
Practice Problem 6.4 (solution page 697)
Aside Formatted disk capacity
Connecting I/O Devices
Accessing Disks
Aside Advances in I/O bus designs
Aside Characteristics of a commercial disk drive
6.1.3 Solid State Disks
Practice Problem 6.5 (solution page 698)
6.1.4 Storage Technology Trends
(d) CPU trends
Practice Problem 6.6 (solution page 698)
6.2 Locality
Aside When cycle time stood still: The advent of multi-core processors
6.2.1 Locality of References to Program Data
6.2.2 Locality of Instruction Fetches
6.2.3 Summary of Locality
Practice Problem 6.7 (solution page 698)
Practice Problem 6.8 (solution page 699)
6.3 The Memory Hierarchy
6.3.1 Caching in the Memory Hierarchy
Aside Other memory hierarchies
Cache Hits
Cache Misses
Kinds of Cache Misses
Cache Management
6.3.2 Summary of Memory Hierarchy Concepts
6.4 Cache Memories
6.4.1 Generic Cache Memory Organization
Practice Problem 6.9 (solution page 699)
6.4.2 Direct-Mapped Caches
Set Selection in Direct-Mapped Caches
Line Matching in Direct-Mapped Caches
Word Selection in Direct-Mapped Caches
Line Replacement on Misses in Direct-Mapped Caches
Putting It Together: A Direct-Mapped Cache in Action
Conflict Misses in Direct-Mapped Caches
Aside Why index with the middle bits?
Practice Problem 6.10 (solution page 699)
Practice Problem 6.11 (solution page 699)
6.4.3 Set Associative Caches
Set Selection in Set Associative Caches
Line Matching and Word Selection in Set Associative Caches
Line Replacement on Misses in Set Associative Caches
6.4.4 Fully Associative Caches
Set Selection in Fully Associative Caches
Line Matching and Word Selection in Fully Associative Caches
Practice Problem 6.12 (solution page 699)
Practice Problem 6.13 (solution page 700)
Practice Problem 6.14 (solution page 700)
Practice Problem 6.15 (solution page 700)
Practice Problem 6.16 (solution page 701)
6.4.5 Issues with Writes
6.4.6 Anatomy of a Real Cache Hierarchy
6.4.7 Performance Impact of Cache Parameters
Impact of Cache Size
Impact of Block Size
Impact of Associativity
Impact of Write Strategy
6.5 Writing Cache-Friendly Code
Aside Cache lines, sets, and blocks: What’s the difference?
Practice Problem 6.17 (solution page 701)
Practice Problem 6.18 (solution page 702)
Practice Problem 6.19 (solution page 702)
Practice Problem 6.20 (solution page 702)
6.6 Putting It Together: The Impact of Caches on Program Performance
6.6.1 The Memory Mountain
Practice Problem 6.21 (solution page 702)
6.6.2 Rearranging Loops to Increase Spatial Locality
Web Aside MEM:BLOCKING Using blocking to increase temporal locality
6.6.3 Exploiting Locality in Your Programs
6.7 Summary
Bibliographic Notes
Homework Problems
6.22 ◆◆
6.23 ◆
6.24 ◆◆
6.25 ◆
6.26 ◆
6.27 ◆
6.28 ◆
6.29
6.31 ◆◆
6.32
6.33
6.34
6.35 ◆◆
6.36 ◆◆
6.37 ◆◆
6.38 ◆
Assume the following:
6.39 ◆
6.40 ◆
6.41 ◆◆
6.42 ◆◆
6.43 ◆◆
6.44 ◆◆◆
6.45 ◆◆◆◆
6.46 ◆◆◆◆
Solutions to Practice Problems
Solution to Problem 6.1 (page 620)
Solution to Problem 6.2 (page 628)
Solution to Problem 6.3 (page 631)
Solution to Problem 6.4 (page 631)
Solution to Problem 6.5 (page 637)
Solution to Problem 6.6 (page 640)
Solution to Problem 6.7 (page 644)
Solution to Problem 6.8 (page 645)
Solution to Problem 6.9 (page 652)
Solution to Problem 6.10 (page 660)
Solution to Problem 6.11 (page 660)
Solution to Problem 6.12 (page 664)
Solution to Problem 6.13 (page 664)
Solution to Problem 6.14 (page 665)
Solution to Problem 6.15 (page 665)
Solution to Problem 6.16 (page 666)
Solution to Problem 6.17 (page 672)
Solution to Problem 6.18 (page 673)
Solution to Problem 6.19 (page 674)
Solution to Problem 6.20 (page 674)
Solution to Problem 6.21 (page 679)
Part II
Running Programs on a System
Source footnotes