Download ppt - Chapter 4 Cache Memory

Transcript
Page 1: Chapter 4   Cache Memory

Chapter 4

Cache Memory

- Computer Memory System Overview- Cache Memory Principles- Elements of Cache Design

Page 2: Chapter 4   Cache Memory

āļ›āļĢāļ°āđ€āļ”āđ‡āļ™āļŠāļģāļ„āļąāļâ€Ē āđƒāļ™āļĢāļ°āļ”āļąāļšāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāđ‰āļ‡āļĨāļģāļēāļ”āļąāļšāļŠāļąāļ™āđ‰āļ‚āļ­āļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļē āļ–āđ‰āļēāļĄāļ­āļ‡āļĨāļ‡āļĄāļēāļŠāļđāļĢāđˆāļ°āļ”āļąāļš

āļĨāđˆāļēāļ‡āļžāļš āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāļ—āđˆāļĩāļĄāļĄāļđāļĩāļĨāļ„āđˆāļēāļĢāļēāļ„āļēāļ•āđˆāļ­āļšāļ•āļīāļ•āļģāđˆāļēāļĨāļ‡āļĄāļēāđ€āļĢāļ·āđˆāļ­āļĒāđ† āļĄāļ‚āļĩāļ™āļēāļ” āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāđ€āļžāļīāļĄāđˆāļ‚āļķāđ‰āļ™ āđāļ•āđˆāđƒāļŠāļĢāđ‰āļ°āļĒāļ°āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļ­āđˆāļēāļ™āļŦāļĢāļ­āļ·āļšāļ™āļąāļ—āļķāļāļ‚āļ­āđ‰āļĄāļđāļĨ

āļŠāļ‡āļđāļ‚āļķāđ‰āļ™â€Ē āđƒāļ™āļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļˆāļĢāļ‡āļīāđ€āļĢāļēāđ„āļĄāļŠāđˆāļēāļĄāļēāļĢāļ–āđƒāļŠāļŦāđ‰āļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāļĢāļ°āļ”āļąāļšāļšāļ™āđ„āļ”āđ‰āļ­āļĒāļēāđˆāļ‡

āđ€āļ”āļĩāļĒāļ§āđ€āļžāļĢāļēāļ°āļĄāļĢāļĩāļēāļ„āļēāļŠāļ‡āļđāļŠāļ§āđˆāļ™āđƒāļŦāļāđˆāļˆāļ‡āļķāđƒāļŠāļ§āđ‰āļ˜āļīāļāļĩāļēāļĢāļĢāļ­āļĄāļŠāļ­āļĄ āļ”āđ‰āļ§āļĒāļāļēāļĢāđƒāļŠāđ‰ āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāļĢāļ°āļ”āļąāļšāļšāļ™āļ™āđ‰āļ­āļĒ āđāļĨāļ°āđƒāļŠāļŦāđ‰āļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāļĢāļ°āļ”āļąāļšāļĨāđˆāļēāļ‡āļĄāļēāļāļ‚āļķāđ‰āļ™

āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđ€āļāļīāļ”āļ„āļ§āļĄāļŠāļĄāļ”āļĨāļļāļĢāļ°āļŦāļ§āđˆāļ‡āļ›āļĢāļ°āļŠāļ—āļīāļ˜āļ āļīāļžāđāļĨāļ°āļĢāļ„â€Ē āđ‚āļ”āļĒāļ—āļąāļ§āđˆāđ„āļ›āļ•āļģāļēāđāļŦāļ™āđˆāļ‡āļāļēāļĢāļ­āđ‰āļēāļ‡āļ­āļīāļ‡āļ‚āļ­āđ‰āļĄāļđāļĨāđƒāļ™āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāļŦāļĨāļąāļāđ‚āļ”āļĒ

āđ‚āļ›āļĢāđ€āļ‹āļŠāđ€āļ‹āļ­āļĢāļ™āļąāđŒāļ™āđ‰āļĄāļāļąāļˆāļ°āđ€āļ›āđ‡āļ™āļ•āļģāļēāđāļŦāļ™āđˆāļ‡āđ€āļ”āļīāļĄ āļ”āļąāļ‡āļ™āļąāļ™āđ‰āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēcache āļĄāļāļąāļˆāļ°āļ„āļąāļ”āļĨāļ­āļāļ‚āļ­āđ‰āļĄāļđāļĨāđƒāļ™āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāļŦāļĨāļąāļ āļ‹āļķāđˆāļ‡āļ–āđ‰āļē Cache āđ„āļ”āđ‰āļĢāļšāļąāļāļēāļĢāļ­āļ­āļāđāļšāļšāđ€āļ›āđ‡āļ™āļ­āļĒāļēāđˆāļ‡āļ”āļĩāđāļĨāđ‰āļ§āđ€āļ§āļĨāļēāļŠāļ§āđˆāļ™āđƒāļŦāļāđˆāđ‚āļ›āļĢāđ€āļ‹āļŠāđ€āļ‹āļ­āļĢāļāđŒāđ‡āļˆāļ°

āđ€āļĢāļĒāļĩāļāđƒāļŠāļ‚āđ‰āļ­āđ‰āļĄāļđāļĨāļ—āđˆāļĩāļ­āļĒāļđāđƒāđˆāļ™ Cache āđ€āļ›āđ‡āļ™āļŠāļ§āđˆāļ™āļĄāļēāļ

Page 3: Chapter 4   Cache Memory

Characteristics āļ—āđˆāļĩāđ€āļāđˆāļĩāļĒāļ§āļāļąāļš Computer Memory Systemâ€Ē Location (āļŠāļ–āļēāļ™āļ—āļĩāđˆāļ—āđˆāļĩāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāļ­āļĒāļđ)āđˆ- Internal (main) (āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāļ āļēāļĒāđƒāļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļ„āļ­āļĄāļžāļ§āļīāđ€āļ•āļ­āļĢ)āđŒ āđ€āļŠāļ™āđˆāļˆāļģāļēāļžāļ§āļ

Register , Main Memory,Cache- External(secondary) ( āļ•āļīāļ”āļ•āđˆāļ­āđ‚āļ”āļĒāļœāđˆāļēāļ™āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļ„āļĄāļļ I/O) āđ€āļŠāļ™āđˆāļˆāļģāļēāļžāļ§āļ

Harddisk, FFD

â€Ē Capacity ( āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāļ āļēāļĒāđƒāļ™āļĄāļāļąāđƒāļŠāļŦāđ‰āļ™āđˆāļ§āļĒāđ€āļ›āđ‡āļ™ Bit āļŦāļĢāļ­āļ· Word)- Word size āđ€āļ›āđ‡āļ™āļ‚āļ™āļēāļ”āļ‚āļ­āļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļē āđ‚āļ”āļĒāļ—āļąāļ§āđˆāđ„āļ›āļ–āđ‰āļēāļ āļēāļĒāđƒāļ™āđ€āļ›āđ‡āļ™ bit āļ–āđ‰āļē

āļ āļēāļĒāļ™āļ­āļāđ€āļ›āđ‡āļ™ byte āđ‚āļ”āļĒāļ›āļāļ•āļī 1 word āļĄāļ‚āļĩāļ™āļēāļ” 8 ,16 āļŦāļĢāļ­āļ·32- Number of words

â€Ē Unit of transfer āļˆāļģāļēāļ™āļ§āļ™āļ‚āļ­āļ‡ bit āļ—āđˆāļĩ āļ­āđˆāļēāļ™āļŦāļĢāļ­āļ·āđ€āļ‚āļĒāļĩāļ™āđƒāļ™ memory āļ“āļŦāļ™āļķāđˆāļ‡āļŦāļ™āđˆāļ§āļĒāđ€āļ§āļĨāļē

Page 4: Chapter 4   Cache Memory

Characteristics āļ—āđˆāļĩāđ€āļāđˆāļĩāļĒāļ§āļāļąāļš Computer Memory Systemâ€Ē Access method āđ€āļ›āđ‡āļ™āļ§āļ˜āļīāļāļĩāļēāļĢāđ€āļ‚āļēāđ‰āļ–āļķāļ‡ Memory āļ”āđ‰āļ§āļĒāļ§āļ˜āļīāļ•āđˆāļĩāļēāļ‡āđ†

āđ€āļŠāļ™āđˆ- Sequential access(āļ§āļ˜āļīāļāļĩāļēāļĢāđ€āļ‚āļēāđ‰āļ–āļķāļ‡ Mem āđāļšāļšāđ€āļĢāļĒāļĩāļ‡āļĨāļģāļēāļ”āļąāļš) āđ€āļŠāļ™āđˆ

āļŦāļ™āđˆāļ§āļĒāļšāļ™āļąāļ—āļķāļāļ‚āļ­āđ‰āļĄāļđāļĨāđāļšāļšāđ€āļ—āļ›āđāļĄāđ€āđˆāļŦāļĨāđ‡āļ- Direct access( āđ€āļ‚āļēāđ‰āļ–āļķāļ‡āđāļšāļšāļ•āļĢāļ‡ āļˆāļ°āđ€āļ›āļĨāđˆāļĩāļĒāļ™āļ•āļģāļēāđāļŦāļ™āđˆāļ‡āļˆāļēāļāļ•āļģāļēāđāļŦāļ™āđˆāļ‡

āļ›āļąāļˆāļˆāļļāļšāļ™āļąāđ„āļ›āđ€āļ›āđ‡āļ™āļ•āļģāļēāđāļŦāļ™āđˆāļ‡āļ—āđˆāļĩāļ•āđ‰āļ­āļ‡āļāļēāļĢ āļ—āļģāļēāđƒāļŦāļĢāđ‰āļ°āļĒāļ°āđ€āļ§āļĨāļēāļ—āđˆāļĩāđƒāļŠāđƒāđ‰āļ™āļāļēāļĢāđ€āļ‚āļēāđ‰āļ–āļķāļ‡ āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāđāļ•āđˆāļĨāļ°āļ„āļĢāļąāļ‡āđ‰āļ­āļēāļˆāļˆāļ°āđāļ•āļāļ•āđˆāļēāļ‡āļāļąāļ™ āđ€āļŠāļ™āđˆ disk)

- Random access āļāļēāļĢāđ€āļ‚āļēāđ‰āļ–āļķāļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāđāļšāļšāđ„āļĄāļĄāđˆāļĨāļĩāļģāļēāļ”āļąāļš āļĢāļ°āļĒāļ° āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāđ€āļ‚āļēāđ‰āļ–āļķāļ‡āđ€āļ›āđ‡āļ™āļ­āļīāļŠāļĢāļ° āļ”āļąāļ‡āļ™āļąāļ™āđ‰āļˆāļ‡āļķāļŠāļēāļĄāļēāļĢāļ–āđ€āļĨāļ·āļ­āļāļ•āļģāļēāđāļŦāļ™āđˆāļ‡āđƒāļ”āđ† āđƒāļ™

āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāđ‚āļ”āļĒāđ„āļĄāļ•āđ‰āđˆāļ­āļ‡āđ€āļĢāļĒāļĩāļ‡āļĨāļģāļēāļ”āļąāļšāđƒāļ” āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āļēāđ‰āļ–āļķāļ‡āļ•āļģāļēāđāļŦāļ™āđˆāļ‡ āļ™āļąāļ™āđ‰āđ„āļ”āđ‰āđ‚āļ”āļĒāļ•āļĢāļ‡āđ€āļŠāļ™āđˆ Main Memory

- Associative āļŦāļĢāļ­āļ·āļ„āļ§āļēāļĄāđ€āļāļĩāđˆāļĒāļ§āļ‚āļ­āđ‰āļ‡ āļˆāļ”āļąāļ§āļēāđˆāđ€āļ›āđ‡āļ™āļāļēāļĢāđ€āļ‚āļēāđ‰āļ–āļķāļ‡āļŦāļ™āđˆāļ§āļĒ āļ„āļ§āļēāļĄāļˆāļģāļēāđāļšāļš random access āļ­āļĒāļēāđˆāļ‡āļŦāļ™āļķāđˆāļ‡āļ—āđˆāļĩāļĄāļāļĩāļēāļĢāđ€āļ›āļĢāļĒāļĩāļšāđ€āļ—āļĩāļĒāļš

āļ‚āļ­āđ‰āļĄāļđāļĨāļšāļ•āļīāļˆāļģāļēāļ™āļ§āļ™āļŦāļ™āļĩāđˆāļ‡ āđ€āļŠāļ™āđˆ Cache Memory

Page 5: Chapter 4   Cache Memory

Characteristics āļ—āđˆāļĩāđ€āļāđˆāļĩāļĒāļ§āļāļąāļš Computer Memory System

â€Ē Performance āļ§āļ˜āļīāļāļĩāļēāļĢāļ§āļ”āļąāļ›āļĢāļ°āļŠāļ—āļīāļ˜āļ āļīāļēāļž- Access time āļĢāļ°āļĒāļ°āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāđ€āļ‚āļēāđ‰āļ–āļķāļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļē- Memory cycle time āļĢāļ°āļĒāļ°āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāđ€āļ‚āļēāđ‰āļ–āļķāļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄ

āļˆāļģāļēāļĢāļ§āļĄāļāļąāļšāļĢāļ°āļĒāļ°āđ€āļ§āļĨāļēāļ­āđˆāļ·āļ™āđ† āļ—āđˆāļĩāļˆāļģāļēāđ€āļ›āđ‡āļ™āļ•āđ‰āļ­āļ‡āđƒāļŠāđ‰- Transfer rate āļ­āļąāļ•āļĢāļēāļāļēāļĢāļ–āđˆāļēāļĒāđ€āļ—āļ‚āļ­āđ‰āļĄāļđāļĨāđ€āļ‚āļēāđ‰āļŦāļĢāļ­āļ·āļ­āļ­āļāļˆāļēāļāļŦāļ™āđˆāļ§āļĒ

āļ„āļ§āļēāļĄāļˆāļģāļē

Page 6: Chapter 4   Cache Memory

â€Ē Physical type āđāļšāļ‡āđˆāļ­āļ­āļāļ•āļēāļĄāļĨāļąāļāļĐāļĢāļ°āļ—āļēāļ‡āļāļēāļĒāļ āļēāļž- Semiconductor āđ€āļŠāļ™āđˆ RAM- Magnetic āđ€āļŠāļ™āđˆ Disk & Tape- Optical āđ€āļŠāļ™āđˆ CD & DVD

Characteristics āļ—āđˆāļĩāđ€āļāđˆāļĩāļĒāļ§āļāļąāļš Computer Memory System

Page 7: Chapter 4   Cache Memory

Memory Hierarchy (āļĨāļģāļ”āļąāļšāļ‚āļ­āļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļĄāļˆāļģ)â€Ē Registers

—In CPUâ€Ē Internal or Main memory

—May include one or more levels of cache—“RAM”

â€Ē External memory—Backing store

Page 8: Chapter 4   Cache Memory

āļ›āļąāļˆāļˆāļĒāļąāļ—āđˆāļĩāđ€āļāđˆāļĩāļĒāļ§āļ‚āļ­āđ‰āļ‡āļāļąāļšāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļĄāļˆāļģâ€Ē How much? (Size)

—Capacityâ€Ē How fast? (Speed)

—Time is moneyâ€Ē How expensive? (Prize)

āļ­āļ‡āļ„āđŒāļ›āļĢāļ°āļāļ­āļšāļ—āđˆāļĩāļŠāļģāļ„āļąāļāļ—āļąāđ‰āļ‡ 3 āļ›āļĢāļ°āļāļĢāļ„āļ·āļ­ āļĢāļ„ āļ›āļĢāļĄāļīāļ“ āđāļĨāļ° āļ„āļ§āļĄāđ€āļĢāļ§āđ‡ āļĄāļ„āļĩāļ§āļĄāļŠāļĄāļąāļžāļ™āļąāļ˜āļāļąāđŒāļ™āļ”āļąāļ‡āļ™āļĩāđ‰

- āļāļēāļĢāđ€āļžāļīāļĄāđˆāļ„āļ§āļēāļĄāđ€āļĢāļ§āđ‡āđƒāļ™āļāļēāļĢāđ€āļ‚āļēāđ‰āļ–āļķāļ‡āļ‚āļ­āđ‰āļĄāļđāļĨ āļˆāļ°āļ—āļģāļēāđƒāļŦāļŦāđ‰āļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāļĢāļēāļ„āļēāļŠāļ‡āļđāļ‚āļķāđ‰āļ™- āļ›āļĢāļĄāļīāļēāļ“āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāđ€āļžāļīāļĄāđˆāļ‚āļķāđ‰āļ™ āļˆāļ°āļ—āļģāļēāđƒāļŦāļĢāđ‰āļēāļ„āļēāļ•āđˆāļ­āļŦāļ™āđˆāļ§āļĒāļĨāļ”āļĨāļ‡

- āļ›āļĢāļĄāļīāļēāļ“āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāđ€āļžāļīāļĄāđˆāļ‚āļķāđ‰āļ™ āļˆāļ°āļ—āļģāļēāđƒāļŦāđ€āđ‰āļŠāļĒāļĩāđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāđ€āļ‚āļēāđ‰āļ–āļķāļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāļĄāļēāļāļ‚āļķāđ‰āļ™

Page 9: Chapter 4   Cache Memory

Memory Hierarchy - Diagram

Page 10: Chapter 4   Cache Memory

āļĨāļģāļ”āļąāļšāļŠāļąāļ™āđ‰āļ‚āļ­āļ‡ Memory (āđ€āļĢāļĒāļĩāļ‡āļˆāļāđ€āļĢāļ§āđ‡āļ—āđˆāļĩāļŠāļ”āļļāđ„āļ›āļŠāđ‰āļ—āđˆāļĩāļŠāļ”āļļ)â€Ē Registersâ€Ē L1 Cacheâ€Ē L2 Cache

â€Ē Main memory āļˆāļģāļēāļžāļ§āļ Ram , Rom

â€Ē Disk cache - āļĢāļ°āļŦāļ§āļēāđˆāļ‡ main memory āļāļąāļš Megnetic disk āļ„āļ§āļĢāļĄāļĩ Disk cache āđ€āļžāļ·āđˆāļ­āļ—āđˆāļĩāļˆāļ°āļ—āļģāļēāļ‡āļēāļ™āđ€āļĢāļ§āđ‡āļ‚āļķāđ‰āļ™

â€Ē Diskâ€Ē Opticalâ€Ē Tape

Page 11: Chapter 4   Cache Memory

Cacheâ€Ē āđ€āļ™āđˆāļ·āļ­āļ‡āļˆāļēāļ Main memory āļŦāļĢāļ­āļ· RAM (Random

Access Memory) āļ™āļąāļ™āđ‰āļ•āļēāļĄāļ›āļāļ•āļīāļˆāļ°āļĄāļ„āļĩāļ§āļēāļĄāđ€āļĢāļ§āđ‡āļ•āļģāđˆāļēāļāļ§āļēāđˆCPU āļ­āļĒāļđāļĄāđˆāļēāļ āļ”āļąāļ‡āļ™āļąāļ™āđ‰āļ–āđ‰āļēāđƒāļŠāđ€āđ‰āļ‰āļžāļēāļ° Register āļāļąāļš RAM āļāđ‡

āļˆāļ°āļĄāļœāļĩāļĨāļ—āļģāļēāđƒāļŦāļ„āđ‰āļ­āļĄāļžāļ§āļīāđ€āļ•āļ­āļĢāļ—āđŒāļģāļēāļ‡āļēāļ™āđ„āļ”āđ‰āļŠāļēāđ‰ āļˆāļ‡āļķāļĄāļāļĩāļēāļĢāļ§āļēāļ‡āļŦāļ™āđˆāļ§āļĒ āļ„āļ§āļēāļĄāļˆāļģāļē Cache āļ‹āļķāđˆāļ‡āļĄāļ„āļĩāļ§āļēāļĄāđ€āļĢāļ§āđ‡āļāļ§āļēāđˆ RAM āđāļ•āđˆāļĢāļēāļ„āļēāđāļžāļ‡ āļāļ§āļēāđˆ āļ„āļąāļ™āđˆāļĢāļ°āļŦāļ§āļēāđˆāļ‡ CPU āļāļąāļš Main memory

CPU

C ache

M ain m em ory

W ord transfer

B lock transfer

Page 12: Chapter 4   Cache Memory

Cacheâ€Ē āļĄ āļĩāļ„āļ§āļēāļĄāļˆāļļāļ•āļģāđˆāļēāđāļ•āđˆāļ„āļ§āļēāļĄāđ€āļĢāļ§āđ‡āļŠāļ‡āļđâ€Ē āļ—āļģāļēāļ‡āļēāļ™āļ­āļĒāļđāļĢāđˆāļ°āļŦāļ§āļēāđˆāļ‡ normal main memory and

CPUâ€Ē āļ­āļēāļˆāļˆāļ°āļŠāļĢāļēāđ‰āļ‡āļ āļēāļĒāđƒāļ™āļ•āļąāļ§ CPU āđ€āļ­āļ‡āļŦāļĢāļ­āļ·āļ­āļļāļ›āļāļĢāļ“āđŒāļ āļēāļĒāļ™āļ­āļāļ—āđˆāļĩāļĄāļĩ

āļ„āļ§āļēāļĄāđ€āļĢāļ§āđ‡āļŠāļ‡āļđ

Page 13: Chapter 4   Cache Memory

āļ•āļąāļ§āļ­āļĒāļēāđˆāļ‡āļ‚āļ­āļ‡āļāļēāļĢāļĄāļĩ cacheâ€Ē āļ„āļ§āļēāļĄāđ€āļĢāļ§āđ‡ cache = 10 nsâ€Ē āļ„āļ§āļēāļĄāđ€āļĢāļ§āđ‡ memory = 100 ns

- āļ–āđ‰āļēāđ„āļĄāļĄāđˆāļĩ Cache āļ–āđ‰āļē 1 āļ„āļģāļēāļŠāļąāļ‡āđˆāđƒāļŠāđ€āđ‰āļ§āļĨāļē100ns āļŠāļĄāļĄāļļāļ•āļīāļĄāļĩ 100 āļ„āļģāļēāļŠāļąāļ‡āđˆāļˆāļ°āđƒāļŠāđ€āđ‰āļ§āļĨāļē100 * 100ns

= 10000ns

- āļ–āđ‰āļēāļĄāļĩ Cache āļˆāļ°āđ„āļ”āđ‰ (10 * 10ns( āļ„āļ§āļēāļĄāđ€āļĢāļ§āđ‡ cache)) + (10 * 100ns( āļ„āļ§āļēāļĄāđ€āļĢāļ§āđ‡āļ‚āļ­āļ‡ Memory)) = 1100

āļ‹āļķāđˆāļ‡āļˆāļ°āđ€āļŦāļ™āđ‡āļ§āļēāđˆāđ€āļĢāļ§āđ‡āļāļ§āļēāđˆāļāļąāļ™āļ›āļĢāļ°āļĄāļēāļ“ 10 āđ€āļ—āđˆāļē

Page 14: Chapter 4   Cache Memory

Cache operation (āļ‚āļąāļ™āđ‰āļ•āļ­āļ™āļāļĢāļ—āļģāļ‡āļ™)- overviewâ€Ē CPU āļ•āđ‰āļ­āļ‡āļāļēāļĢāļ‚āļ­āđ‰āļĄāļđāļĨāđƒāļ™ Main Memory

â€Ē Check āļ—āđˆāļĩ cache āļ§āļēāđˆāļ‚āļ­āđ‰āļĄāļđāļĨāļ—āđˆāļĩāļ•āđ‰āļ­āļ‡āļāļēāļĢāļ­āļĒāļđāđƒāđˆāļ™ cache āļŦāļĢāļ­āļ·āđ„āļĄāđˆ

â€Ē If āļĄāļĩ āļāđ‡āļŠāļ‡āđˆāļ‚āļ­āđ‰āļĄāļđāļĨāđƒāļŦāđ‰ CPU

â€Ē If āđ„āļĄāļĄāđˆ,āļĩ āļāđ‡āļ—āļģāļēāļāļēāļĢāļ­āđˆāļēāļ™āļ‚āļ­āđ‰āļĄāļđāļĨ āļˆāļēāļ main memory āđ„āļ›āļĒāļ‡āļą cache ( āļ­āđˆāļēāļ™āđ€āļ›āđ‡āļ™ block)

â€Ē Then deliver from cache to CPU

Page 15: Chapter 4   Cache Memory

Cache operation (āļ‚āļąāļ™āđ‰āļ•āļ­āļ™āļāļĢāļ—āļģāļ‡āļ™)- āļŠāļĢāļļāļ›â€Ē āđ‚āļ”āļĒāđƒāļ™āļĢāļ°āļŦāļ§āļēāđˆāļ‡āļāļēāļĢāļ—āļģāļēāļ‡āļēāļ™āļ‚āļ­āļ‡āļ„āļ­āļĄāļžāļ§āļīāđ€āļ•āļ­āļĢāļˆāđŒāļ°āļĄāļāļĩāļēāļĢāļ­āđˆāļēāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđāļĨāļ°āļ‚āļ­āđ‰āļĄāļđāļĨāļšāļēāļ‡āļŠāļ§āđˆāļ™āļˆāļēāļ Main memory āļĄāļēāđ€āļāđ‡āļšāđ„āļ§āđ‰āđƒāļ™ Cache āđ€āļĄāļ·āđˆāļ­ CPU āļ­āđˆāļēāļ™āļšāļēāļ‡ word āļˆāļēāļ Memory āļāđ‡āļˆāļ°āļĄāļĩāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ§āļēāđˆ word āļ—āđˆāļĩāļ•āđ‰āļ­āļ‡āļāļēāļĢāļ™āļąāļ™āđ‰āļ­āļĒāļđāđƒāđˆāļ™ Cache āļŦāļĢāļ­āļ·āđ„āļĄ āđˆ

āļ–āđ‰āļēāļ­āļĒāļđāļāđ‡āđˆāļŠāļēāļĄāļēāļĢāļ–āļ­āđˆāļēāļ™āđ„āļ›āđ„āļ”āđ‰āļ­āļĒāļēāđˆāļ‡āļĢāļ§āļ”āđ€āļĢāļ§āđ‡ āđāļ•āđˆāļ–āđ‰āļēāđ„āļĄāļĄāđˆāļāđ‡āļĩāļˆāļ°āļĄāļāļĩāļēāļĢāļ­āđˆāļēāļ™āļ—āļąāļ‡āđ‰ Block āļ—āđˆāļĩāļĄ āļĩword āļ—āđˆāļĩāļ•āđ‰āļ­āļ‡āļāļēāļĢāļ™āļąāļ™āđ‰āļˆāļēāļ Main memory āđ€āļ‚āļēāđ‰āļĄāļēāļ§āļēāļ‡āđ„āļ§āđƒāđ‰āļ™ Cache āđāļĨāļ°āļŠāļ‡āđˆ Word āļ™āļąāļ™āđ‰āđƒāļŦ āđ‰CPU āđ‚āļ”āļĒāļ„āļēāļ”

āļ§āļēāđˆāļ•āđˆāļ­āđ„āļ› CPU āļ™āđˆāļēāļˆāļ°āļ­āđˆāļēāļ™ word āļ­āđˆāļ·āļ™ āđ† āđƒāļ™ Block āđ€āļ”āļĩāļĒāļ§āļāļąāļ™āļ™āļąāļ™āđ‰ â€Ē āļ­āļąāļ•āļĢāļāļĢāļ—āđˆāļĩ CPU āļŠāļĄāļĢāļ–āļžāļš word āļ—āđˆāļĩāļ•āđ‰āļ­āļ‡āļāļĢāļžāļšāđƒāļ™

Cache āđ€āļĢāļĒāļĩāļāļ§āđˆ Hit Rate āļŦāļĢāļ­āļ· Cache Hit â€Ē āļ­āļąāļ•āļĢāļāļĢāļ—āđˆāļĩ CPU āđ„āļĄāļŠāđˆāļĄāļĢāļ–āļžāļšāđ€āļĢāļĒāļĩāļāļ§āđˆ Miss Rate

āļŦāļĢāļ­āļ· Cache Miss â€Ē āļ”āļąāļ‡āļ™āļąāļ™āđ‰āļ„āļ­āļĄāļžāļ§āļīāđ€āļ•āļ­āļĢāļ—āđˆāļĩāđŒāļ­āļ­āļāđāļšāļšāļĢāļ°āļšāļš Cache āļ”āļĩāļāđ‡āļˆāļ°āļ—āļģāļēāđƒāļŦāļĄāđ‰ āļĩHit

Rate āļŠāļ‡āļđ āļĄāļœāļĩāļĨāļ—āļģāļēāđƒāļŦāļ„āđ‰āļ­āļĄāļžāļ§āļīāđ€āļ•āļ­āļĢāļŠāđŒāļēāļĄāļēāļĢāļ–āļ—āļģāļēāļ‡āļēāļ™āđ„āļ”āđ‰āđ€āļĢāļ§āđ‡āļ‚āļķāđ‰āļ™

Page 16: Chapter 4   Cache Memory

Sizeâ€Ē Cost āļĢāļēāļ„āļē

—More cache is expensiveâ€Ē Speed āļ„āļ§āļēāļĄāđ€āļĢāļ§āđ‡

—More cache is faster (up to a point)—Checking cache for data takes time

- āļ–āđ‰āđƒāļŠ āđ‰Cache āļ‚āļ™āļ”āđ€āļĨāđ‡āļ āļĢāļ„āļāđ‡āļˆāļ°āļ–āļāļđāđāļĨāļ°āļ„āļ§āļĄāđ€āļĢāļ§āđ‡āļŠāļ‡āļđāļāļ§āđˆ āđāļ•āđˆāļˆāļ°āđ„āļ”āđ‰āļ­āļąāļ•āļĢ Cache

hit āļ•āļģāđˆ - āļ–āđ‰āđƒāļŠ āđ‰Cache āļ‚āļ™āļ”āđƒāļŦāļāđˆāļˆāļ°āđ„āļ”āđ‰āļ­āļąāļ•āļĢ

Cache hit āļŠāļ‡āļđāđāļ•āđˆāļ§āļ‡āļˆāļĢāļˆāļ°āļŠāđ‰āđāļĨāļ°āļĢāļ„āđāļžāļ‡ - āđ‚āļ”āļĒāļ—āđˆāļąāļ§āđ„āļ›āļ–āļ·āļ­āļ§āđˆāļ‚āļ™āļ”āļ—āđˆāļĩāļžāļ­āļ”āļĩāļ­āļĒāļđāļĢāđˆāļ°āļŦāļ§āđˆāļ‡

1 K – 512 KWords

Page 17: Chapter 4   Cache Memory

Cache Design (āļ›āļąāļˆāļˆāļĒāļąāđƒāļ™āļāļĢāļŠāļĢāđ‰āļ‡ Cache)

â€Ē Size ( āļ‚āļ™āļēāļ”āļ‚āļ­āļ‡ cache)â€Ē Mapping Functionâ€Ē Replacement Algorithmâ€Ē Write Policyâ€Ē Block Sizeâ€Ē Number of Caches

Page 18: Chapter 4   Cache Memory

Size (āļ‚āļ™āļēāļ”āļ‚āļ­āļ‡ cache)â€Ē āđ‚āļ”āļĒāļ—āļąāļ§āđˆāđ„āļ›āļ™āļąāļāļ­āļ­āļāđāļšāļšāļ•āđ‰āļ­āļ‡āļāļēāļĢāđƒāļŦāđ‰ cache āļĄāļ‚āļĩāļ™āļēāļ”āđ€āļžāļĒāļĩāļ‡

āļžāļ­āļ—āđˆāļĩāļˆāļ°āļ—āļģāļēāđƒāļŦāļĢāđ‰āļēāļ„āļēāđ€āļ‰āļĨāđˆāļĩāļĒāļ•āđˆāļ­āļšāļ•āļīāļ™āļąāļ™āđ‰āđƒāļāļĨāđ‰āđ€āļ„āļĩāļĒāļ‡āļāļąāļšāļĢāļēāļ„āļēāļ‚āļ­āļ‡ āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāļŦāļĨāļąāļ

â€Ē āđāļĨāļ°āļ•āđ‰āļ­āļ‡āļāļēāļĢāđƒāļŦāļĄāđ‰āļ‚āļĩāļ™āļēāļ”āđƒāļŦāļāđˆāđ€āļžāļĒāļĩāļ‡āļžāļ­ āđ€āļžāļ·āđˆāļ­āđƒāļŦāļ„āđˆāđ‰āļēāđ€āļ‰āļĨāđˆāļĩāļĒāļ‚āļ­āļ‡āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāđ€āļ‚āļēāđ‰āļ–āļķāļ‡āļ‚āļ­āđ‰āļĄāļđāļĨāđƒāļāļĨāđ‰āđ€āļ„āļĩāļĒāļ‡āļāļąāļšāļĢāļ°āļĒāļ°āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāđ€āļ‚āļēāđ‰

āļ–āļķāļ‡āļ‚āļ­āđ‰āļĄāļđāļĨāļ‚āļ­āļ‡ cacheâ€Ē āļ—āļģāļēāđ„āļĄāļ–āļķāļ‡āđ„āļĄāļŠāđˆāļĢāļēāđ‰āļ‡ cache āļ‚āļ™āļēāļ”āđƒāļŦāļāđˆ āđ€āļžāļ·āđˆāļ­āļ„āļ§āļēāļĄāļĢāļ§āļ”āđ€āļĢāļ§āđ‡?

āļ„āļ·āļ­āļ‚āļ™āļēāļ”āļ—āđˆāļĩāđƒāļŦāļāđˆāļ‚āļķāđ‰āļ™āļ‚āļ­āļ‡ Cache āļˆāļ°āđ„āļ›āđ€āļžāļīāļĄāđˆāļˆāļģāļēāļ™āļ§āļ™āļ‚āļ­āļ‡gate āļ—āđˆāļĩāđ€āļāđˆāļĩāļĒāļ§āļ‚āļ­āđ‰āļ‡āļāļąāļšāļāļēāļĢāļ„āđ‰āļ™āļŦāļēāļ•āļģāļēāđāļŦāļ™āđˆāļ‡āļ‚āļ­āđ‰āļĄāļđāļĨāđƒāļ™

Cache āļ—āļģāļēāđƒāļŦāđ‰ Cache āļ—āļģāļēāļ‡āļēāļ™āđ„āļ”āđ‰āļŠāļēāđ‰āļĨāļ‡â€Ē āđ€āļ™āļ·āđ‰āļ­āļ—āđˆāļĩāļšāļ™āđāļœāļ‡āļ§āļ‡āļˆāļĢāļāđ‡āđ€āļ›āđ‡āļ™āļŠāļ§āđˆāļ™āļŦāļ™āļķāđˆāļ‡āļ—āđˆāļĩāļšāļ‡āļąāļ„āļąāļšāļ‚āļ™āļēāļ”āļ‚āļ­āļ‡

Cache āđƒāļŦāļĄāđ‰āļ‚āļĩāļ™āļēāļ”āļˆāļģāļēāļāļąāļ”

Page 19: Chapter 4   Cache Memory

Mapping Function - Cache āļˆāļ°āļĄāļ‚āļĩāļ™āļ”āđ€āļĨāđ‡āļāļ§āđˆ main memory āļ”āļąāļ‡āļ™āļąāļ™āđ‰āļˆāļ°āļ•āđ‰āļ­āļ‡āļĄāļ­āļąāļĩāļĨāļāļ­āļĢāļ—āļķāļīāļĄ āļ—āđˆāļĩāļ•āđ‰āļ­āļ‡ map āļ‚āļ­āđ‰āļĄāļđāļĨ āļˆāļ main memory āđ„āļ›āļĒāļ‡āļą

cache - āļāļĢ Mapping āļ„āļ·āļ­ āļāļĢāļāļģāļŦāļ™āļ”

āļ•āļģāđāļŦāļ™āđˆāļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļĄāļˆāļģāļ‚āļ­āļ‡āļ‚āļ­āļ‡ Main Memory āđ„āļ›āļĒāļ‡āļą Cache

- āļ‹āļķāļ‡āđˆāļĄāļ§āļĩāļ˜āļīāļāļĩāļĢāļ­āļĒāļđāļŠāđˆāļĄāđāļšāļš Direct, Associative āđāļĨāļ° Set Associative āļ”āļąāļ‡

āļ•āļąāļ§āļ­āļĒāđˆāļ‡āļ•āđˆāļ­āđ„āļ›āļ™āđ‰āļĩ āļŠāļģāļŦāļĢāļšāļąāļ„āļ­āļĄāļžāļ§āļīāđ€āļ•āļ­āļĢāļ•āļąāđŒāļ§āļ­āļĒāđˆāļ‡āļ—āđˆāļĩāđƒāļŠāđ‰āļĄ āļĩ

āļŠāļĢāļļāļ› āļžāļđāļ”āļ‡āđˆāļĒāđ† āļ„āļ·āļ­āđ€āļ›āđ‡āļ™āļāļĢāļāļģāļŦāļ™āļ”āļ•āļģāđāļŦāļ™āđˆāļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļĄāļˆāļģāđ„āļ›āļĒāļ‡āļą Cache Memory āļ™āļąāļ™āđˆāđ€āļ­āļ‡

āđ€āļžāļĢāļ°āļ–āđ‰āļāļģāļŦāļ™āļ”āļ”āļĩ āļ›āļĢāļ°āļŠāļ—āļīāļ˜āļ āļīāļžāļāđ‡āļˆāļ°āļ”āļĩāđ„āļ›āļ”āđ‰āļ§āļĒ

Page 20: Chapter 4   Cache Memory

āļ•āļąāļ§āļ­āļĒāđˆāļ‡āļˆāļāđ‚āļˆāļ—āļĒāļĄāđŒāļĩ

â€Ē Cache āļĄāļ‚āļĩāļ™āļēāļ” 64kByte

â€Ē Cache block āļĄāļ‚āļĩāļ™āļēāļ” 4 bytes

â€Ē Main memory āļĄāļ‚āļĩāļ™āļēāļ” 16MBytes

Page 21: Chapter 4   Cache Memory

āļ‚āļąāļ™āđ‰āļ•āļ­āļ™ Direct Mappingâ€Ē āļŦāļē tag ( āđ€āļ›āđ‡āļ™āļ•āļąāļ§āļšāļ­āļāļ•āļģāļēāđāļŦāļ™āđˆāļ‡āļ§āļēāđˆāđ€āļ›āđ‡āļ™āļāļĨāļļāđˆāļĄāđ„āļŦāļ™āļ‚āļ­āļ‡ Main

Memory) āļŦāļēāđ„āļ”āđ‰āļˆāļēāļ āđ€āļ­āļēāļ‚āļ™āļēāļ”āļ‚āļ­āļ‡ main memory/ āļ‚āļ™āļēāļ”āļ‚āļ­āļ‡ cache memory āļ‹āļķāđˆāļ‡āļˆāļ°āđ„āļ”āđ‰- 16Mb/64Kb = 250 āļ•āļģāļēāđāļŦāļ™āđˆāļ‡āđƒāļ™ memory- āļˆāļ°āđ„āļ”āđ‰ tag = 8 āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļ 28 āļ­āđ‰āļēāļ‡āđ„āļ”āđ‰ 256āļ•āļģāļēāđāļŦāļ™āđˆāļ‡

â€Ē āļŦāļē āļˆāļģāļēāļ™āļ§āļ™āļŠāļēāļĒāļŦāļĢāļ­āļ· bit āļ—āđˆāļĩāđƒāļŠāđƒāđ‰āļ™āļāļēāļĢāļ­āđ‰āļēāļ‡āļ–āļķāļ‡ āļ‹āļķāđˆāļ‡āļˆāļ°āđ„āļ”āđ‰ = 24 āđ€āļŠāļ™āđ‰āļŦāļĢāļ­āļ· bit āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļ Main memory āļĄāļĩ

āļ‚āļ™āļēāļ”16Mb āđ€āļžāļĢāļēāļ°āļ‰āļ°āļ™āļąāļ™āđ‰āļˆāļ°āđ„āļ”āđ‰224 = 16Mb

Page 22: Chapter 4   Cache Memory

â€Ē āļˆāļēāļāļ™āļąāļ™āđ‰āļ™āļģāļēāļĄāļēāđ€āļ‚āļĒāļĩāļ™ Main Memory Address

â€Ē āļŦāļē Word āļˆāļēāļāđ‚āļˆāļ—āļĒāļšāđŒāļ­āļāļ§āļēāđˆāđāļ•āđˆāļĨāļ° line āđƒāļ™ cache āļĄāļĩ āļ‚āļ™āļēāļ” 4 byte āđ€āļžāļĢāļēāļ°āļ‰āļ°āļ™āļąāļ™āđ‰ āđƒāļ™āļāļēāļĢāļ­āđ‰āļēāļ‡āļ§āļēāđˆāļ­āļĒāļđāđˆ byte āđ„āļŦāļ™

āļˆāļ°āđƒāļŠāđ€āđ‰āļžāļĒāļĩāļ‡ 2 bit āļ„āļ·āļ­ 00011011

Tag Line or Slot Word

8 14 2

Page 23: Chapter 4   Cache Memory

â€Ē āļŠāļ”āļļāļ—āđ‰āļēāļĒ āļŦāļē line āļŦāļĢāļ­āļ· slot āđ‚āļ”āļĒāļŦāļēāđ„āļ”āđ‰ 2 āļ§āļ˜āļīāļ„āļ·āļĩāļ­1. āđ‚āļ”āļĒāđ€āļ­āļē - - 2482 = 14 bit2. āđ‚āļ”āļĒāđ€āļ­āļē64k/4byte = 16k āđāļĨāđ‰āļ§āļ”āļ§āļđāļēāđˆ 2 āļĒāļ

āļāļģāļēāļĨāļąāļ‡āļ­āļ°āđ„āļĢāđ„āļ”āđ‰16k āļ„āļ·āļ­ = 14 āļ™āļąāļ™āđˆāđ€āļ­āļ‡ āļāđ‡āļˆāļ°āđ„āļ”āđ‰ 14bit

214 = 16 k āļ”āļąāļ‡āļ™āļąāļ™āđ‰āļŠāļēāļĄāļēāļĢāļ–āļ­āđ‰āļēāļ‡āđ„āļ”āđ‰16k āļ‚āļ­āļ‡ cache āļŦāļĢāļ­āļ·āļžāļđāļ”āļ‡āđˆāļēāļĒāđ† āļ§āļēāđˆ cache āļˆāļ°āļĄāļ•āļĩāļģāļēāđāļŦāļ™āđˆāļ‡āļ­āļĒāļđāđˆ

16k āđƒāļ™āđāļ•āđˆāļĨāļ° line āļĄāļ‚āļĩāļ™āļēāļ” 4 byte āļĨāļ­āļ‡āđ€āļ­āļē16 k * 4 = 64 kb āļ„āļ·āļ­āļ‚āļ™āļēāļ”āļ‚āļ­āļ‡ Cache āļˆāļĢāļ‡āļīāđ† (āļ­āđ‰āļē

āļ‡āđ„āļ”āđ‰āļ„āļ·āļ­ -00003fff)

Page 24: Chapter 4   Cache Memory

â€Ē āļŠāļĄāļĄāļļāļ•āļīāļ§āļēāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāļ‚āļ­āđ‰āļĄāļđāļĨāļĄāļēāđ€āļāđ‡āļšāļ—āđˆāļĩ Cache āđ‚āļ”āļĒāļ‚āļ­āđ‰āļĄāļđāļĨāļ—āđˆāļĩāđ€āļĢāļēāļ•āđ‰āļ­āļ‡āļāļēāļĢ āļ„āļ·āļ­ āđ€āļ­āļē Block āļ—āđˆāļĩ 3 āđ€āļ­āļē Line āļ—āđˆāļĩ 15 Byte āļ—āđˆāļĩ 2 āđ€āļĢāļēāļˆāļ°āļĄāļ§āļĩāļ˜āļīāļĩ

āļāļēāļĢāļ­āđ‰āļēāļ‡ Main Memory Address āđ€āļ›āđ‡āļ™āđ€āļĨāļ‚āļ­āļ°āđ„āļĢ

00000011 00000000001111 10

āļˆāļ°āđ„āļ”āđ‰āđ€āļ›āđ‡āļ™ 03003Eh āđ€āļ§āļĨāļēāļ•āđ‰āļ­āļ‡āļāļēāļĢāđƒāļŠāļ‡āđ‰āļēāļ™āļāđ‡āļ­āļēāļˆāļˆāļ°āđ€āļĢāļĒāļĩāļ Ld A,03003Eh āļ‹āļķāđˆāļ‡āļāđ‡āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āļēāđˆāđ€āļ›āđ‡āļ™āļāļēāļĢāđ€āļ­āļēāļ‚āļ­āđ‰āļĄāļđāļĨāļ—āļĩāđˆāļ­āļĒāļđāđƒāđˆāļ™ Main

Memory āđƒāļ™ Block āļ—āđˆāļĩ 3 āļ‚āļ­āļ‡ Main Memory āđƒāļ™āļŠāļ­āđˆāļ‡āļ—āļĩāđˆ 15 āđāļĨāļ° Byte āļ—āđˆāļĩ 2 āļ™āļąāļ™āđˆāđ€āļ­āļ‡

Tag Line or Slot Word

8 14 2

Page 25: Chapter 4   Cache Memory

â€Ē āđƒāļ™āļšāļēāļ‡āļ„āļĢāļąāļ‡āđ‰ āļ•āļģāļēāđāļŦāļ™āđˆāļ‡āļ‚āļ­āļ‡ Cache āļāļąāļš Main Memory āļ­āļēāļˆ āļˆāļ°āļĄāļāļĩāļēāļĢāđ€āļĨāđˆāļ·āļ­āļ™ Bit āđ€āļĨāđ‡āļāļ™āđ‰āļ­āļĒ āđ€āļŠāļ™āđˆāļˆāļēāļāļ•āļąāļ§āļ­āļĒāļēāđˆāļ‡āļˆāļ°āđ€āļ›āđ‡āļ™āļāļēāļĢāđ€āļĨāđˆāļ·āļ­āļ™

2 Bit (āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āđ€āļŦāļ•āļœāļļāļĨāļ‚āļ­āļ‡āļ—āļēāļ‡āļšāļĢāļĐāļąāļīāļ—)Cache Memory

0000

3FFF

4 byte

āļŠāļĄāļĄāļļāļ•āļīāļĄāļŠāļļāļĩāļ”āļ„āļģāļēāļŠāļąāļ‡āđˆ Load AC,8FFFC āļˆāļ°āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āļēāđˆ āđƒāļŦāđ€āđ‰āļ­āļēāļ‚āļ­āđ‰āļĄāļđāļĨāļ—āđˆāļĩāļ­āļĒāļđāđƒāđˆāļ™ Cache

memory āļ“ āļ•āļģāļēāđāļŦāļ™āđˆāļ‡ 3 FFF

Page 26: Chapter 4   Cache Memory

Direct MappingAddress Structure

Tag s-r Line or Slot r Word w

8 14 2

â€Ē 24 bit addressâ€Ē 2 bit word identifier (4 byte block)â€Ē 22 bit block identifier

—8 bit tag (=22-14)—14 bit slot or line

Page 27: Chapter 4   Cache Memory

Direct Mapping Cache Organization

Page 28: Chapter 4   Cache Memory

Direct Mapping Example

Page 29: Chapter 4   Cache Memory

Direct Mapping Summaryâ€Ē Address length = (s + w) bitsâ€Ē Number of addressable units = 2s+w words or

bytesâ€Ē Block size = line size = 2w words or bytesâ€Ē Number of blocks in main memory = 2s+ w/2w = 2s

â€Ē Number of lines in cache = m = 2r

â€Ē Size of tag = (s – r) bits

Page 30: Chapter 4   Cache Memory

Direct Mapping Summaryâ€Ē Simpleâ€Ē Inexpensiveâ€Ē Fixed location for given block

—If a program accesses 2 blocks that map to the same line repeatedly, cache misses are very high

āļ§āļ˜āļīāļāļĩāļĢ Direct mapping āļĄāļĢāļĩāļ„āļ–āļāļđāđāļĨāļ°āļ§āļ‡āļˆāļĢāļ‡āđˆāļĒ āđāļ•āđˆāļāđ‡āļĄāļ‚āļĩāļ­āđ‰āđ€āļŠāļĒāļĩāļ„āļ·āļ­āđ€āļ›āđ‡āļ™āļāļĢ fix cache location āļŠāļģāļŦāļĢāļšāļąāđāļ•āđˆāļ°āļĨāļ°

block āļ”āļąāļ‡āļ™āļąāļ™āđ‰āļ–āđ‰āđ€āļāļīāļ”āļĄāļāļĩāļĢāļ­āđˆāļ™āļ‚āļ­āđ‰āļĄāļđāļĨāļˆāļ 2 block āļ—āđˆāļĩāļšāļ‡āļąāđ€āļ­āļīāļ map āļĄāļ—āđˆāļĩ slot

āđ€āļ”āļĩāļĒāļ§āļāļąāļ™āļāđ‡āļˆāļ°āļĄāļāļĩāļĢāđ€āļ›āļĨāđˆāļĩāļĒāļ™āļ‚āļ­āđ‰āļĄāļđāļĨāđƒāļ™ slot āļ™āļąāļ™āđ‰āļ­āļĒāļđāļ•āđˆāļĨāļ­āļ”āđ€āļ§āļĨ āļĄāļœāļĩāļĨāļ—āļģāđƒāļŦāđ‰āđƒāļŦāđ‰āļ„āđˆ Hit Rate

āļ•āļģāđˆ

Page 31: Chapter 4   Cache Memory

Associative Mappingâ€Ē āļ§āļ˜āļīāļ™āļĩāļĩāđ‰ Memory āļˆāļ°āđ„āļĄāđāđˆāļšāļ‡āđˆāđ€āļ›āđ‡āļ™ block āļ”āļąāļ‡āđ€āļŠāļ™āđˆāļ§āļ˜āļīāļĩ direct

āļ‹āļķāđˆāļ‡āļ§āļ˜āļīāļ™āļĩāļĩāđ‰ cache memory āļˆāļ°āđƒāļŠāļŦāđ‰āļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāļŠāļ§āđˆāļ™āđ„āļŦāļ™ āļ‚āļ­āļ‡ main memory āļāđ‡āđ„āļ”āđ‰

- āļ•āļąāļ§āļ­āļĒāđˆāļ‡â€Ē Cache āļĄāļ‚āļĩāļ™āļēāļ” 64 kByte

â€Ē Cache block āļĄāļ‚āļĩāļ™āļēāļ” 4 bytes

â€Ē Main memory āļĄāļ‚āļĩāļ™āļēāļ” 16MBytes

Page 32: Chapter 4   Cache Memory

āļ§āļ˜āļīāļāļĩāļĢāļŦâ€Ē āļŦāļē tag ( āđ€āļ›āđ‡āļ™āļ•āļąāļ§āļšāļ­āļāļ•āļģāļēāđāļŦāļ™āđˆāļ‡āļ§āļēāđˆāļ­āļĒāļđāļ•āđˆāļģāļēāđāļŦāļ™āđˆāļ‡āđ„āļŦāļ™āļ‚āļ­āļ‡ Main

Memory) āļŦāļēāđ„āļ”āđ‰āļˆāļēāļāļ‚āļ™āļēāļ”āļ‚āļ­āļ‡ Memory āļ„āļ·āļ­ 16Mbyte = 224 āļ‹āļķāđˆāļ‡āļˆāļ°āđ„āļ”āđ‰ main memory address āļ„āļ·āļ­

24 bit āļˆāļēāļāļ™āļąāļ™āđ‰āđ„āļ”āđ‰āļ„āļ·āļ­ āļ„āļ·āļ­ 2 242 bit word = 22 bit

â€Ē āļˆāļēāļ 22 bit āļ„āļ·āļ­ 11111111 1111111111111100 => FFFFFC āļ”āļąāļ‡āļ™āļąāļ™āđ‰ cache memory āļĄāļ•āļĩāļģāļēāđāļŦāļ™āđˆāļ‡āļ—āļąāļ‡āđ‰āļŦāļĄāļ” 000000 FFFFFC āļŦāļĢāļ­āļ· 000000 3 FFFFF

â€Ē āļˆāļēāļāļ™āļąāļ™āđ‰āļ™āļģāļēāļĄāļēāđ€āļ‚āļĒāļĩāļ™ Main Memory AddressTag 22 bitWord2 bit

Page 33: Chapter 4   Cache Memory

Fully Associative Cache Organization

Page 34: Chapter 4   Cache Memory

Associative Mapping Example

Page 35: Chapter 4   Cache Memory

Associative Mapping Summaryâ€Ē Address length = (s + w) bitsâ€Ē Number of addressable units = 2s+w words or

bytesâ€Ē Block size = line size = 2w words or bytesâ€Ē Number of blocks in main memory = 2s+ w/2w = 2s

â€Ē Number of lines in cache = undeterminedâ€Ē Size of tag = s bitsāļ§āļ˜āļīāļ™āļĩāļĩāđ‰āļˆāļ°āđƒāļŠāļŠāđ‰āļ§āđˆāļ™āđ„āļŦāļ™āļāđ‡āđ„āļ”āđ‰āđƒāļ™ memory āļˆāļ™ cache āļˆāļ°āđ€āļ•āđ‡āļĄāļŦāļĄāļ”āļ‹āļķāđˆāļ‡āļāđ‡āļĄāļ‚āļĩāļ­āđ‰āļ”āļĩāđƒāļ™āļāļēāļĢāļ­āđˆāļēāļ™ block āđƒāļŦāļĄāđ€āđˆāļ‚āļēāđ‰āļĄāļēāđ„āļ§āđƒāđ‰āļ™ cache āđāļ•āđˆāļˆāļ°āđƒāļŠāļ§āđ‰āļ‡āļˆāļĢāļĄāļēāļāļāļ§āļēāđˆ

Page 36: Chapter 4   Cache Memory

Set Associative Mapping

â€Ē āđ€āļ›āđ‡āļ™āļāļēāļĢāļ™āļģāļēāđ€āļ­āļēāļ‚āļ­āđ‰āļ”āļĩāļ‚āļ­āļ‡āļ—āļąāļ‡āđ‰āđāļšāļš Direct āđāļĨāļ° Associative Mapping āļĄāļēāļĢāļ§āļĄāļāļąāļ™āđ„āļ§āđƒāđ‰āļ™āļ§āļ˜āļīāļ™āļĩāļĩāđ‰

- āđāļšāļ‡āđˆāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļē Cache āļ­āļ­āļāđ€āļ›āđ‡āļ™ r sets- āđāļ•āđˆāļ°āļĨāļ° set āļĄāļĩ k slots (lines)

āļ•āļąāļ§āļ­āļĒāļēāđˆāļ‡

- Cache āļĄāļ‚āļĩāļ™āļēāļ” 64 kByteCache block āļĄāļ‚āļĩāļ™āļēāļ” 4 bytes

Main memory āļĄāļ‚āļĩāļ™āļēāļ” 16MBytes āđƒāļŦāđ€āđ‰āļ›āđ‡āļ™āđāļšāļš - Two way Set Associative

Mapping

Page 37: Chapter 4   Cache Memory

Two Way Set Associative Cache Organization ( āđāļšāļ‡āđˆāđ€āļ›āđ‡āļ™ 2 āļāļĨāļļāđˆāļĄ)

Page 38: Chapter 4   Cache Memory

āļ§āļ˜āļīāļāļĩāļĢāļŦ- āļ”āđ‚āļđāļˆāļ—āļĒāļ§āđŒāļēāđˆāđ€āļ›āđ‡āļ™āđāļšāļšāđ„āļŦāļ™ āļˆāļēāļāđ‚āļˆāļ—āļĒāļšāđŒāļ­āļāļ§āļēāđˆāđ€āļ›āđ‡āļ™

āđāļšāļš 2-way set associative mapping āđāļŠāļ”āļ‡āļ§āļēāđˆāļˆāļ°āļĄ āļĩcache āļˆāļģāļēāļ™āļ§āļ™ 2 āļāļĨāļļāđˆāļĄ āļ‹āļķāđˆāļ‡āļˆāļ°āđ„āļ”āđ‰ 8 k + 8 k (āļāļĨāļļāđˆāļĄāļĨāļ° 8 k āļŠāļ­āđˆāļ‡)

- āļŦāļē set āļˆāļēāļ āļ‚āļ™āļēāļ”āļ‚āļ­āļ‡āđāļ•āđˆāļĨāļ°āļāļĨāļļāđˆāļĄāļ‚āļ­āļ‡ cache āļ„āļ·āļ­ 213 = 8 k āđ€āļžāļĢāļēāļ°āļ‰āļ°āļ™āļąāļ™āđ‰ set āļˆāļ°āļĄāļ‚āļĩāļ™āļēāļ”

13 bit (Set āđƒāļ™āļ—āđˆāļĩāļ™āļĩāđ‰āļ„āļ·āļ­ Line āļ™āļąāļ™āđˆāđ€āļ­āļ‡)- āļŦāļē word āļˆāļēāļ cache block size āļ„āļ·āļ­ 4

byte āļ”āļąāļ‡āļ™āļąāļ™āđ‰ word āļˆāļ°āļĄāļ‚āļĩāļ™āļēāļ” 2 bit

Page 39: Chapter 4   Cache Memory

āļ§āļ˜āļīāļāļĩāļĢāļŦ- āļŦāļē tag āđ„āļ”āđ‰ 2 āļ§āļ˜āļī āļĩāļ„āļ·āļ­ ( Tag āđƒāļ™āļ—āđˆāļĩāļ™āļĩāđ‰āļ„āļ·āļ­ āļˆāļģāļēāļ™āļ§āļ™āļāļĨāļļāđˆāļĄāđƒāļ™

Memory)1. āļˆāļēāļ āļ‚āļ™āļēāļ” main memory āļ„āļ·āļ­ 16M āđ€āļžāļĢāļēāļ°

āļ‰āļ°āļ™āļąāļ™āđ‰āļˆāļģāļēāļ™āļ§āļ™ bit āļ—āļąāļ‡āđ‰āļŦāļĄāļ” āļ„āļ·āļ­ 224 āļ‹āļķāđˆāļ‡āļˆāļ°āļŠāļēāļĄāļēāļĢāļ–āļŦāļē tag = āļˆāļģāļēāļ™āļ§āļ™ bit āļ—āļąāļ‡āđ‰āļŦāļĄāļ” - set – word āļ„āļ·āļ­

- - 24132 = 9 bit

2. āļˆāļēāļāļ‚āļ™āļēāļ” main memory āļ„āļ·āļ­ 16M āđāļĨāļ°āļ‚āļ™āļēāļ”āļ‚āļ­āļ‡ Cache āļĄāļ‚āļĩāļ™āļēāļ” 64k āđāļ•āđˆāđ‚āļˆāļ—āļĒāļšāđŒāļ­āļāļ§āļēāđˆāđ€āļ›āđ‡āļ™āđāļšāļš -2 way āļˆāļ°āļ•āđ‰āļ­āļ‡āđ€āļ­āļē 64k/2 = 32k āļˆāļēāļāļ™āļąāļ™āđ‰ āđ€āļ­āļē

āļ‚āļ™āļēāļ”āļ‚āļ­āļ‡ Memory/āļ‚āļ™āļēāļ”āļ‚āļ­āļ‡ Cache = 16M/32k = 500 āļˆāļēāļāļ™āļąāļ™āđ‰ 2 āļĒāļāļāļģāļēāļĨāļąāļ‡āļ­āļ°āđ„āļĢāđ„āļ”āđ‰āđƒāļāļĨāđ‰āđ€āļ„āļĩāļĒāļ‡āļāļąāļš 50

0 āļ„āļ·āļ­ 29 āđāļŠāļ”āļ‡āļ§āļēāđˆāļˆāļ°āđƒāļŠāļ—āļąāđ‰āļ‡āđ‰āļŦāļĄāļ” 9 Bit

Page 40: Chapter 4   Cache Memory

Set Associative MappingAddress Structure

Tag 9 bit Set 13 bitWord2 bit

āļˆāļ°āđ„āļ”āđ‰ Main Memory Address āļ”āļąāļ‡āļ™āļĩāđ‰

Page 41: Chapter 4   Cache Memory

Two Way Set Associative Mapping Example

Page 42: Chapter 4   Cache Memory

Set Associative Mapping Summaryâ€Ē Address length = (s + w) bitsâ€Ē Number of addressable units = 2s+w words or

bytesâ€Ē Block size = line size = 2w words or bytesâ€Ē Number of blocks in main memory = 2d

â€Ē Number of lines in set = kâ€Ē Number of sets = v = 2d

â€Ē Number of lines in cache = kv = k * 2d

â€Ē Size of tag = (s – d) bits

Page 43: Chapter 4   Cache Memory

Replacement Algorithmsâ€Ē āđ€āļĄāļ·āđˆāļ­āļĄāļāļĩāļēāļĢāļ­āđˆāļēāļ™āļ‚āļ­āđ‰āļĄāļđāļĨ Block āđƒāļŦāļĄāļĄāđˆāļēāļˆāļēāļ Memory āđ€āļ‚āļēāđ‰

āļĄāļēāļ§āļēāļ‡āđ„āļ§āđƒāđ‰āļ™ Cache āļāđ‡āļˆāļ°āļ•āđ‰āļ­āļ‡āļĄāļāļĩāļēāļĢāļĨāļš Block āđ€āļ”āļīāļĄāļ—āđ‰āļīāļ‡āđ„āļ› āļ§āļ˜āļīāļāļĩāļēāļĢāđ€āļĨāļ·āļ­āļāļ—āđˆāļĩāļˆāļ°āļĨāļš block āđ€āļ”āļīāļĄāļĄāļŦāļĩāļĨāļēāļĒāļ§āļ˜āļīāđ„āļĩāļ”āđ‰āđāļāđˆ

- - Least recently used (LRU) āļĨāļšāļ‚āļ­āđ‰āļĄāļđāļĨāļ—āđˆāļĩāļ–āļāļđāđƒāļŠāļ‡āđ‰āļēāļ™āļĨāđˆāļēāļŠāļ”āļļāļ­āļ­āļāđ„āļ›

- - - - First in first out (FIFO) āļĨāļšāļ‚āļ­āđ‰āļĄāļđāļĨāļ—āđˆāļĩāđ€āļ‚āļēāđ‰āļĄāļēāļāđˆāļ­āļ™āļ­āļ­āļāđ„āļ›āļāđˆāļ­āļ™

- - - Least frequency used (LFU) āļĨāļšāļ‚āļ­āđ‰āļĄāļđāļĨāļ—āđˆāļĩāļĄāļāļĩāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ™āđ‰āļ­āļĒāļ—āđˆāļĩāļŠāļ”āļļāļ­āļ­āļāđ„āļ›

- Random āļŠāļļāļĄāđˆāđ€āļ­āļē

Page 44: Chapter 4   Cache Memory

Write Policy āļ™āđ‚āļĒāļšāļēāļĒāļāļēāļĢāļšāļ™āļąāļ—āļķāļāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāļŦāļĨāļąāļâ€Ē āļāđˆāļ­āļ™āļˆāļ°āļ—āļģāļēāļāļēāļĢāļĨāļšāļ‚āļ­āđ‰āļĄāļđāļĨāđƒāļ™ block āļŦāļĢāļ­āļ·āļāđˆāļ­āļ™āļ—āđˆāļĩāļˆāļ°āļ–āļāļđāđāļ—āļ™āļ—āđˆāļĩāļ”āđ‰āļ§āļĒ

āļ‚āļ­āđ‰āļĄāļđāļĨāļšāļĨāđ‡āļ­āļāđƒāļŦāļĄāđˆ āļˆāļģāļēāđ€āļ›āđ‡āļ™āļ•āđ‰āļ­āļ‡āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ§āļēāđˆāļ‚āļ­āđ‰āļĄāļđāļĨāļšāļĨāđ‡āļ­āļāļ™āļąāļ™āđ‰ āđ€āļ›āļĨāđˆāļĩāļĒāļ™āđāļ›āļĨāļ‡āđ„āļ›āđāļĨāđ‰āļ§āļŦāļĢāļ­āļ·āđ„āļĄāđˆ āļ–āđ‰āļēāļĄāļˆāļĩāļ°āļ•āđ‰āļ­āļ‡āļĄāļāļĩāļēāļĢāļ›āļĢāļšāļąāļ›āļĢāļļāļ‡āļ‚āļ­āđ‰āļĄāļđāļĨāļˆāļēāļ

Cache āđ„āļ›āļĒāļ‡āļą Main Memory āļāđˆāļ­āļ™â€Ē āļ§āļ˜āļīāļāļĩāļēāļĢāļ—āđˆāļĩāļ‡āđˆāļēāļĒāļ—āđˆāļĩāļŠāļ”āļļāđ€āļ›āđ‡āļ™āļāļēāļĢāļšāļ™āļąāļ—āļķāļāļ‚āļ­āđ‰āļĄāļđāļĨāļĨāļ‡āđƒāļ™āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāđƒāļ™āļ—āļąāļ™āļ—āļĩ

āļŦāļĢāļ­āļ· Write Through āļ—āļāļļāļ„āļĢāļąāļ‡āđ‰āļ—āđˆāļĩāļĄāļāļĩāļēāļĢāļšāļ™āļąāļ—āļķāļāļ‚āļ­āđ‰āļĄāļđāļĨāļĨāļ‡āđƒāļ™ cache āļāđ‡āļˆāļ°āļ–āļāļđāļšāļ‡āļąāļ„āļąāļšāđƒāļŦāđ€āđ‰āļāļīāļ”āļāļēāļĢāļšāļ™āļąāļ—āļķāļāļĨāļ‡āđƒāļ™āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļēāļ—āļąāļ™āļ—āļĩāđ€āļžāļ·āđˆāļ­āđ€āļ›āđ‡āļ™āļāļēāļĢ

āļĢāļšāļąāļĢāļ­āļ‡āļ§āļēāđˆāļ‚āļ­āđ‰āļĄāļđāļĨāđƒāļ™ cache āđāļĨāļ° Main Memory āđ€āļ—āđˆāļēāļāļąāļ™āđ€āļŠāļĄāļ­āļ‚āļ­āđ‰āđ€āļŠāļĒāļĩāļ„āļ·āļ­āļ—āļģāļēāđƒāļŦāđ€āđ‰āļāļīāļ”āļāļēāļĢāļŠāļ‡āđˆāļ‚āļ­āđ‰āļĄāļđāļĨāļšāļ­āđˆāļĒāļ„āļĢāļąāļ‡āđ‰āļ—āļģāļēāđƒāļŦāđ€āđ‰āļāļīāļ”āļ›āļąāļāļŦāļēāļ„āļ­āļ‚āļ§āļ”

â€Ē āļ­āļĩāļāļ§āļ˜āļīāļ„āļ·āļĩāļ­ Write Back āđ€āļ›āđ‡āļ™āļ§āļ˜āļīāļāļĩāļēāļĢāļšāļ™āļąāļ—āļķāļāļ‚āļ­āđ‰āļĄāļđāļĨāđƒāļ™āļ āļēāļĒāļŦāļĨāļąāļ‡āļŠāļ§āđˆāļĒāļĨāļ”āļˆāļģāļēāļ™āļ§āļ™āļ„āļĢāļąāļ‡āđ‰āđƒāļ™āļāļēāļĢāļšāļ™āļąāļ—āļķāļāļ‚āļ­āđ‰āļĄāļđāļĨāļĨāļ‡āđƒāļ™ Main Memory āđƒāļŦāđ€āđ‰āļŦāļĨāļ·āļ­

āļ™āđ‰āļ­āļĒāļ—āđˆāļĩāļŠāļ”āļļ

Page 45: Chapter 4   Cache Memory

Pentium 4 Cacheâ€Ē 80386 – no on chip cacheâ€Ē 80486 – 8k using 16 byte lines and four way set

associative organizationâ€Ē Pentium (all versions) – two on chip L1 caches

—Data & instructionsâ€Ē Pentium 4 – L1 caches

—8k bytes—64 byte lines—four way set associative

â€Ē L2 cache —Feeding both L1 caches—256k—128 byte lines—8 way set associative


Recommended