240-208 Fundamental of Computer Architecture November 01, 2003 By Panyayot Chaikan [email protected] Chapter 8 หน่ วยความจาแคช Cache memory 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 2 เนื้อหา Introduction to cache memory Hit rate/Miss rate Write Policy Replacement algorithm Mapping function 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 3 What is Cache memory A high speed memory closely connected to the processor Processor Cache 240-208 Fundamental of Computer Architecture Main memory Chapter 8 – Cache memory 4 Multilevel cache Processor Cache L1 240-208 Fundamental of Computer Architecture Cache L2 Main memory Chapter 8 – Cache memory 5 ทาไมต้ อง cache memory? หน่ วยความจาหลักทางานได้ ช้ามากเมื่อเทียบกับซี พย ีู ก๊ อปปี้ ค่ าในหน่ วยความจาหลักมาใส่ ในแคชก่ อนแล้ ว ค่ อยให้ ซีพยี ูอ้างถึงหน่ วยความจาแคชด้ วยความเร็วสู ง โปรแกรมส่ วนใหญ่ เมื่อใช้ หน่ วยความจาตาแหน่ งหนึ่ง แล้ ว มักจะอ่ านค่ าหน่ วยความจาตาแหน่ งนั้นๆ อีก หลายๆ ครั้ง (locality of reference) 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 6 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); } 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 7 นิยามต่ างๆ ของ Cache Hit : โพรเซสเซอร์ พบข้ อมูลในแคช Miss : โพรเซสเซอร์ ไม่ พบข้ อมูลในแคช Hit rate จานวนครั้งทีพ่ บข้ อมูลในแคช จานวนการแอกเซสหน่ วยความจาแคชทั้งหมด 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 8 Write policy Write back เขียนข้ อมูลลงในแคชเท่ านั้น แล้ วค่ อยไปเขียนลงหน่ วยความจา หลักหลังยกเลิกการใช้ แคชบล๊อกนั้นๆ ประสิ ทธิภาพสู ง - ไม่ เหมาะกับระบบมัลติโพรเซสเซอร์ Write through ทุกครั้ งทีเ่ ขียนข้ อมูลในแคช ให้ เขียนข้ อมูลลงในหน่ วยความจาหลัก ด้ วย ประสิ ทธิภาพต่ากว่ า แต่ สามารถใช้ กบ ั ระบบมัลติโพรเซสเซอร์ ได้ 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 9 Multiprocessor Processor1 Processor1 Cache Cache 240-208 Fundamental of Computer Architecture Main memory Chapter 8 – Cache memory 10 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 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 11 Unified cache Processor Cache 240-208 Fundamental of Computer Architecture Main memory Chapter 8 – Cache memory 12 Separated cache Processor code cache Main memory data cache 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 13 Von-Neumann architecture and Cache 1 clock Fetch 1 clock 1 clock Decode Execute Fetch 1 clock 1 clock 1 clock Write Decode Execute Fetch Write Decode Execute Fetch 240-208 Fundamental of Computer Architecture 1 clock Write Decode Execute Fetch 1 clock Write Decode Execute Write Chapter 8 – Cache memory 14 Pentium Pro cache 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 15 Replacement algorithm แคชมีขนาดเล็ก เมื่อเทียบกับหน่ วยความจาหลัก ต้ องเอาของเก่ าออกจากแคชเพื่อใส่ ข้อมูลทีต ่ ้ องการ Least Recently used (LRU) Least Frequently Used (LFU) First-in-First-Out (FIFO) 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 16 Cache mapping Direct mapping Fully associative mapping Set associative mapping 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 17 Direct mapping ง่ ายต่ อการสร้ าง ใช้ จานวนบิตของ tag field น้ อย บล๊ อก 0, 128, 256, … , 3968 ไม่ สามารถอยู่ใน หน่ วยความจาพร้ อมๆ กันได้ 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 18 block 1 block 127 tag 240-208 Fundamental of Computer Architecture Group2 tag 5 block 7 block4095 block3968 block3969 Group1 block383 block257 block255 block256 block129 Group0 tag cache tag block 0 block127 block128 block1 block0 Main memory Direct mapping Group31 word 4 Chapter 8 – Cache memory 19 cache block 128 block 3969 block 258 block 383 1 31 2 2 240-208 Fundamental of Computer Architecture Group2 block4095 block3968 block3969 block383 Group1 block258 Group0 block255 block256 block257 block129 block127 block128 block126 block1 Main memory block0 Direct mapping Group31 tag block word 5 7 4 Chapter 8 – Cache memory 20 cache block 128 block 3969 block 258 block 4095 1 31 2 31 240-208 Fundamental of Computer Architecture Group2 block4095 block3968 block3969 block383 Group1 block258 Group0 block255 block256 block257 block129 block127 block128 block126 block1 Main memory block0 Direct mapping Group31 tag block word 5 7 4 Chapter 8 – Cache memory 21 Fully associative mapping หน่ วยความจาบล๊ อกใดๆ ก็ตามสามารถอยู่ในแคช ตาแหน่ งใดก็ได้ สิ้ นเปลืองจานวนเกทในการสร้ างสู งมาก จานวนบิตที่ต้องการใน tag field มีจานวนมาก 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 22 block i block 127 tag tag cache tag block 0 240-208 Fundamental of Computer Architecture tag 12 block4095 block4094 block4093 block i block2 block3 block1 block0 Main memory Fully associative mapping word 4 Chapter 8 – Cache memory 23 block 4093 4093 240-208 Fundamental of Computer Architecture tag 12 block4095 block4094 block4093 block i block i i cache 2 block 2 block2 block3 block1 block0 Main memory Fully associative mapping word 4 Chapter 8 – Cache memory 24 Set-associative mapping จับข้ อดีของ Fully-associative และ Direct mapped มารวมกัน สามารถออกแบบให้ มห ี ลาย way ทีส่ ามารถเก็บข้ อมูล 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 25 2-way Set associative mapped block255 block4095 Group63 block4032 block4033 Group2 block127 block128 block129 block65 block64 Group1 block63 block1 Main memory block0 Group0 cache tag block 0 tag block 1 set0 tag block 2 tag block 3 set1 tag block 126 tag block 127 set63 240-208 Fundamental of Computer Architecture tag set 6 word 6 Chapter 8 – Cache memory 4 26 2-way Set associative mapped block255 block4095 Group63 block4032 block4033 Group2 block127 block128 block129 block65 block64 Group1 block63 block1 Main memory block0 Group0 cache 1 block 64 63 block 4032 set0 1 block 65 2 block 129 set1 0 block 63 1 block 127 set63 240-208 Fundamental of Computer Architecture tag set 6 word 6 Chapter 8 – Cache memory 4 27 4-way set associative mapped tag tag tag cache block 0 tag block 4 tag block 124 tag block 1 block 5 tag tag block 125 tag tag set 7 240-208 Fundamental of Computer Architecture 5 cache block 2 tag block 6 tag block 126 tag block 3 block 7 set0 set1 block 127 set31 block4095 block4064 block4065 Group128 block95 block65 Group2 block63 block64 block33 Group1 block31 block32 block1 block0 Main memory Group0 word 4 Chapter 8 – Cache memory 28 4-way set associative mapped 0 cache block 0 1 block 32 2 0 block 1 1 block 33 127 block 4065 1 block 63 0 block 31 127 block 4095 tag cache block 64 127 set 7 240-208 Fundamental of Computer Architecture block 4064 set0 tag block i set1 2 block 95 set31 block4095 block4064 block4065 Group127 block95 block63 block64 block65 Group2 block33 Group1 block31 block32 block1 Main memory block0 Group0 word 5 4 Chapter 8 – Cache memory 29 Processor cache comparison 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 30 Cache of Intel Celeron 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 31 Cache of Intel Celeron 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 32 Cache of AMD Athlon 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 33 Cache of AMD Athlon 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 34 Homework จงออกแบบหน่ วยความจาแคชของโพรเซสเซอร์ ที่ สามารถอ้ างหน่ วยความจาได้ 64 กิโลไบต์ โดย กาหนดให้ หน่ วยความจาแคชมีขนาด 512 ไบต์ จงออกแบบหน่ วยความจาแคชในรู ปแบบต่ อไปนี้ Direct mapped Fully associative 2-way set associative 4-way set associative 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 35 จบ บทที่ 8 240-208 Fundamental of Computer Architecture Chapter 8 – Cache memory 36
© Copyright 2025 Paperzz