ScholarGate
ผู้ช่วย

การจัดระเบียบและนโยบายแคช

การจัดระเบียบแคชเกี่ยวข้องกับวิธีการที่แคชแมปบล็อกหน่วยความจำไปยังที่เก็บข้อมูล — การจัดวางและการเชื่อมโยง — และนโยบายที่ควบคุมการแทนที่และการเขียน ซึ่งทั้งหมดนี้ร่วมกันกำหนดความถี่ที่แคชจะพบข้อมูล (cache hit) และวิธีการโต้ตอบกับหน่วยความจำหลัก

ค้นหาหัวข้อด้วย PaperMindเร็ว ๆ นี้Find papers & topics
Tools & resources
ดาวน์โหลดสไลด์
Learn & explore
วิดีโอเร็ว ๆ นี้

Definition

การจัดระเบียบและนโยบายแคชคือทางเลือกเชิงโครงสร้างและการจัดการของแคช — ตำแหน่งที่สามารถวางบล็อกได้ บล็อกใดจะถูกนำออกเมื่อเกิด miss และวิธีการส่งผ่านข้อมูลการเขียนไปยังระดับที่ต่ำกว่า — ซึ่งควบคุมอัตราการพบข้อมูล (hit rate) และพฤติกรรมของแคช

Scope

หัวข้อนี้ครอบคลุมการออกแบบภายในของแคชเดี่ยว: การจัดวางแบบ direct-mapped, set-associative และ fully associative; นโยบายการแทนที่ เช่น LRU และการประมาณค่า; นโยบายการเขียน (write-through เทียบกับ write-back) และ write-allocation; ขนาดบล็อก; และการจำแนกประเภทของ miss ออกเป็น compulsory, capacity และ conflict ไม่รวมถึงความสอดคล้องกันของแคชหลายตัว (cache coherence protocols) และการแปลที่อยู่ (หน่วยความจำเสมือนและการแบ่งหน้า)

Core questions

  • การจัดวางแบบ direct-mapped, set-associative และ fully associative แตกต่างกันอย่างไรในด้านต้นทุนและพฤติกรรมความขัดแย้ง?
  • นโยบายการแทนที่ใดที่ควรนำบล็อกออกเมื่อเกิด miss และจะประมาณค่าได้อย่างไรโดยมีต้นทุนต่ำ?
  • นโยบาย write-through และ write-back แตกต่างกันอย่างไรในด้านปริมาณการรับส่งข้อมูลและความซับซ้อน?
  • miss ถูกจำแนกอย่างไร และการเปลี่ยนแปลงการออกแบบใดที่ช่วยลดแต่ละประเภท?

Key concepts

  • แคชแบบ direct-mapped
  • แคชแบบ set-associative
  • แคชแบบ fully associative
  • การแทนที่แบบ least-recently-used (LRU)
  • write-through เทียบกับ write-back
  • write-allocate
  • ขนาดบล็อก (line)
  • compulsory, capacity และ conflict misses

Key theories

โมเดล Three Cs miss
Cache misses สามารถจัดหมวดหมู่ได้เป็น compulsory (การเข้าถึงครั้งแรก), capacity (แคชมีขนาดเล็กเกินไปสำหรับชุดการทำงาน) และ conflict (associativity น้อยเกินไป) ซึ่งเป็นกรอบการทำงานที่เชื่อมโยงพารามิเตอร์การออกแบบแต่ละตัว — ขนาด, ขนาดบล็อก, associativity — กับ miss ที่ลดลง

Mechanisms

ที่อยู่หน่วยความจำจะถูกแบ่งออกเป็นฟิลด์ tag, index และ offset โดย index จะเลือกชุดข้อมูล (set) ส่วน tag จะระบุบล็อกภายในชุดนั้น และ associativity จะกำหนดจำนวนบล็อกที่ใช้ชุดข้อมูลร่วมกัน เมื่อเกิด miss แคชจะดึงบล็อกและนำบล็อกอื่นออกตามนโยบายการแทนที่ที่เลือกไว้ (มักจะเป็นการประมาณค่าของ least-recently-used) การเขียนจะอัปเดตหน่วยความจำหลักทันที (write-through) หรือทำเครื่องหมายบล็อกว่าสกปรก (dirty) และเลื่อนการอัปเดตออกไป (write-back)

Clinical relevance

การจัดระเบียบแคชควบคุมประสิทธิภาพที่มีประสิทธิผล เนื่องจากค่าปรับเมื่อเกิด miss นั้นมีขนาดใหญ่เมื่อเทียบกับการพบข้อมูล (hit) โปรแกรมเมอร์ปรับปรุงพฤติกรรมของแคชผ่านการจัดวางข้อมูล การบล็อก และรูปแบบการเข้าถึงที่เพิ่มความเป็นท้องถิ่น (locality) ในขณะที่สถาปนิกปรับแต่ง associativity, ขนาดบล็อก และนโยบายการเขียนเพื่อรักษาสมดุลระหว่างอัตราการพบข้อมูลกับพื้นที่ พลังงาน และแบนด์วิดท์

History

วิลค์สเสนอหน่วยความจำรอง (แคช) ในปี 1965 และแคชก็ถูกนำมาใช้ในเชิงพาณิชย์ในไม่ช้า การสำรวจของอลัน เจย์ สมิธในปี 1982 ได้สังเคราะห์การวัดผลอย่างกว้างขวางเกี่ยวกับการจัดวาง การแทนที่ และนโยบายการเขียน ซึ่งสร้างคำศัพท์ในการออกแบบที่ยังคงใช้มาจนถึงปัจจุบัน โมเดล Three-Cs ในภายหลังได้ให้วิธีการที่มีโครงสร้างในการให้เหตุผลเกี่ยวกับสาเหตุและการแก้ไขปัญหา miss

Key figures

  • Maurice Wilkes
  • Alan Jay Smith
  • John L. Hennessy
  • David A. Patterson

Related topics

Seminal works

  • smith1982cache
  • hennessy2019

Frequently asked questions

แคชแบบ write-through และ write-back แตกต่างกันอย่างไร?
แคชแบบ write-through จะอัปเดตทั้งแคชและหน่วยความจำหลักในการเขียนทุกครั้ง ทำให้หน่วยความจำเป็นปัจจุบันอยู่เสมอ แต่สร้างปริมาณการรับส่งข้อมูลมากขึ้น แคชแบบ write-back จะอัปเดตเฉพาะแคช โดยทำเครื่องหมายบล็อกว่าสกปรก (dirty) และเขียนลงหน่วยความจำเมื่อถูกนำออกเท่านั้น ซึ่งช่วยลดปริมาณการรับส่งข้อมูล แต่ต้องแลกมาด้วยการจัดการข้อมูลเพิ่มเติม
ทำไมจึงใช้แคชแบบ set-associative แทนที่จะเป็น direct-mapped?
แคชแบบ direct-mapped อนุญาตให้แต่ละบล็อกมีตำแหน่งเดียวเท่านั้น ดังนั้นบล็อกที่แมปไปยังช่องเดียวกันจะเกิดความขัดแย้ง การเชื่อมโยงแบบ set-associativity ทำให้แต่ละบล็อกมีตำแหน่งที่เป็นไปได้หลายตำแหน่งภายในชุดข้อมูล ซึ่งช่วยลด conflict misses แต่ต้องแลกมาด้วยฮาร์ดแวร์เปรียบเทียบที่มากขึ้นและ hit ที่ช้าลงเล็กน้อย

Methods for this concept

Related concepts