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? หน่วยความจำหลักทำงานได้ช้ามากเมื่อเทียบกับซีพียู ก๊อปปี้ค่าในหน่วยความจำหลักมาใส่ในแคชก่อนแล้วค่อยให้ซีพียูอ้างถึงหน่วยความจำ แคชด้วยความเร็วสูง โปรแกรมส่วนใหญ่เมื่อใช้หน่วยความจำตำแหน่งหนึ่งแล้ว มักจะอ่านค่าหน่วยความจำ ตำแหน่งนั้นๆ อีกหลายๆ ครั้ง (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 back Write through Write policy Write back เขียนข้อมูลลงในแคชเท่านั้น แล้วค่อยไปเขียนลงหน่วยความจำหลักหลังยกเลิกการใช้แคชบล๊อกนั้นๆ ประสิทธิภาพสูง - ไม่เหมาะกับระบบมัลติโพรเซสเซอร์ Write through ทุกครั้งที่เขียนข้อมูลในแคช ให้เขียนข้อมูลลงในหน่วยความจำหลักด้วย ประสิทธิภาพต่ำกว่า แต่สามารถใช้กับระบบมัลติโพรเซสเซอร์ได้
Multiprocessor
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
Unified cache
Separated cache
Von-Neumann architecture and Cache
Pentium Pro cache
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 ไม่สามารถอยู่ในหน่วยความจำพร้อมๆ กัน ได้
Direct mapping
Direct mapping
Direct mapping
Fully associative mapping หน่วยความจำบล๊อกใดๆ ก็ตามสามารถอยู่ในแคชตำแหน่งใดก็ได้ สิ้นเปลืองจำนวนเกทในการสร้างสูงมาก จำนวนบิตที่ต้องการใน tag field มีจำนวนมาก
Fully associative mapping
Fully associative mapping
Set-associative mapping จับข้อดีของ Fully-associative และ Direct mapped มารวมกัน สามารถออกแบบให้มีหลาย way ที่สามารถเก็บข้อมูล
2-way Set associative mapped
2-way Set associative mapped
4-way set associative mapped
4-way set associative mapped
Processor cache comparison
Cache of Intel Celeron
Cache of Intel Celeron
Cache of AMD Athlon
Cache of AMD Athlon
Homework จงออกแบบหน่วยความจำแคชของโพรเซสเซอร์ที่สามารถอ้างหน่วยความจำได้ 64 กิโลไบต์ โดยกำหนดให้หน่วยความจำแคชมีขนาด 512 ไบต์ จงออกแบบหน่วยความจำแคชในรูปแบบต่อไปนี้ Direct mapped Fully associative 2-way set associative 4-way set associative