340 likes | 548 Views
Platform Technology หน่วยความจำแคช Cache memory. เนื้อหา. Introduction to cache memory Hit rate/Miss rate Write Policy Replacement algorithm Mapping function. What is Cache memory. A high speed memory closely connected to the processor. Multilevel cache. ทำไมต้อง cache memory?.
E N D
Platform Technologyหน่วยความจำแคชCache memory
เนื้อหา Introduction to cache memory Hit rate/Miss rate Write Policy Replacement algorithm Mapping function
What is Cache memory • A high speed memory closely connected to the processor
ทำไมต้อง cache memory? • หน่วยความจำหลักทำงานได้ช้ามากเมื่อเทียบกับซีพียู • ก๊อปปี้ค่าในหน่วยความจำหลักมาใส่ในแคชก่อนแล้วค่อยให้ซีพียูอ้างถึงหน่วยความจำแคชด้วยความเร็วสูง • โปรแกรมส่วนใหญ่เมื่อใช้หน่วยความจำตำแหน่งหนึ่งแล้ว มักจะอ่านค่าหน่วยความจำตำแหน่งนั้นๆ อีกหลายๆ ครั้ง (locality of reference)
Locality of reference :Example void main (void) { int table[1024]; for (i= 0; i<100000; i++) k = i % 26; c = table[k] printf(“%d”,c); }
นิยามต่างๆ ของ Cache • Hit : โพรเซสเซอร์พบข้อมูลในแคช • Miss : โพรเซสเซอร์ไม่พบข้อมูลในแคช • Hit rate จำนวนครั้งที่พบข้อมูลในแคช จำนวนการแอกเซสหน่วยความจำแคชทั้งหมด
Write policy • Write back • เขียนข้อมูลลงในแคชเท่านั้น แล้วค่อยไปเขียนลงหน่วยความจำหลักหลังยกเลิกการใช้แคชบล๊อกนั้นๆ • ประสิทธิภาพสูง - ไม่เหมาะกับระบบมัลติโพรเซสเซอร์ • Write through • ทุกครั้งที่เขียนข้อมูลในแคช ให้เขียนข้อมูลลงในหน่วยความจำหลักด้วย • ประสิทธิภาพต่ำกว่า แต่สามารถใช้กับระบบมัลติโพรเซสเซอร์ได้
Unified VS Separated cache • Unified cache • Keeping both program and data • More simple and higher hit rate • Separate cache • Keeps program in code cache • Keeps data in data cache • Suitable for Von-Neuman architecture
Replacement algorithm • แคชมีขนาดเล็ก เมื่อเทียบกับหน่วยความจำหลัก • ต้องเอาของเก่าออกจากแคชเพื่อใส่ข้อมูลที่ต้องการ • Least Recently used (LRU) • Least Frequently Used (LFU) • First-in-First-Out (FIFO)
Cache mapping • Direct mapping • Fully associative mapping • Set associative mapping
Direct mapping • ง่ายต่อการสร้าง • ใช้จำนวนบิตของ tag field น้อย • บล๊อก 0, 128, 256, … , 3968 ไม่สามารถอยู่ในหน่วยความจำพร้อมๆ กันได้
Fully associative mapping • หน่วยความจำบล๊อกใดๆ ก็ตามสามารถอยู่ในแคชตำแหน่งใดก็ได้ • สิ้นเปลืองจำนวนเกทในการสร้างสูงมาก • จำนวนบิตที่ต้องการใน tag field มีจำนวนมาก
Set-associative mapping • จับข้อดีของ Fully-associative และ Direct mapped มารวมกัน • สามารถออกแบบให้มีหลาย way ที่สามารถเก็บข้อมูล
Homework • จงออกแบบหน่วยความจำแคชของโพรเซสเซอร์ที่สามารถอ้างหน่วยความจำได้ 64 กิโลไบต์ โดยกำหนดให้หน่วยความจำแคชมีขนาด 512 ไบต์ • จงออกแบบหน่วยความจำแคชในรูปแบบต่อไปนี้ • Direct mapped • Fully associative • 2-way set associative • 4-way set associative