Page 27 - สถาปัตยกรรมคอมพิวเตอร์และระบบปฏิบัติการ
P. 27

โครงสร้างและการทำ�งานของหน่วยความจำ� 3-17

แก้ไขหรอื ไม่ ตั้งแต่มีการดงึ ข้อมลู นั้นเข้าสู่แคช ขนาดความยาวแต่ละไลน์ จะไมร่ วมความยาวของแท็กและบิตควบคุม
อาจทำ�ให้ไลน์มีขนาดเล็กเพียง 32 บิต โดยที่ถ้าแต่ละคำ�มี 2 ไบต์ (16 บิต) ดังนั้น ไลน์จะมีขนาด 4 ไบต์ จะเห็นว่า
จำ�นวนไลน์ในแคชจะมีน้อยกว่าบล็อกในหน่วยความจำ�หลักมาก ทุกครั้งที่บล็อกในหน่วยความจำ�หลักถูกอ่านขึ้นมา
ใช้งานก็จะถูกเก็บลงไลน์ในแคชทุกครั้ง เป็นเพราะว่าจำ�นวนบล็อกในหน่วยความจำ�หลักมีมากกว่าไลน์ในแคชมาก
ดงั นัน้ แตล่ ะไลนใ์ นแคชขอ้ มลู จะเปลีย่ นแปลงตลอดเวลาตามการใชง้ านของขอ้ มลู ในหนว่ ยความจำ�หลกั โดยแตล่ ะไลน์
จะมีแท็ก (tag) ที่จะระบุได้ว่ากำ�ลังบรรจุบล็อกไหนของหน่วยความจำ�หลักอยู่ ซึ่งสามารถแสดงผังงาน (flowchart)
ขั้นตอนการอ่านข้อมูลของซีพียูจากแคชและดึงข้อมูลจากหน่วยความจำ�หลักดังภาพที่ 3.8

                       เริ่มต้น

 ได้รับแอดเดรสที่       ค้นหาบล็อกที่ต้องการ
ต้องการอ่านจากซีพียู    ในหน่วยความจำ�หลัก

               ไม่อยู่  จัดสรร (Allocate) ไลน์
                         ในแคชสำ�หรับบล็อก
  แอดเดรสที่ต้องการ
อ่านอยู่ในแคชหรือไม่ ?        ต้องการ

         อยู่
 ดึงข้อมูลที่ต้องการ
 อ่านและส่งให้ซีพียู

                        ดึงบล็อกต้องการจากหน่วย    ส่งข้อมูลให้ซีพียู
                        ความจำ�หลักลงสู่ไลน์ในแคช

                   จบการทำ�งาน

                      CPU

         ภาพที่ 3.8 ผังงาน (flowchart) แสดงขน้ั ตอนการอ่านข้อมูลของซพี ียูจากแคชและหนว่ ยความจ�ำ หลัก

       จากภาพที่ 3.8 แสดงขั้นตอนการอ่านข้อมูลของซีพียูจากแคชและหน่วยความจำ�หลักเริ่มต้นซีพียูจะ
ส่งแอดเดรสบล็อกของข้อมูลที่ต้องการไปค้นหาในแคชก่อนถ้าพบก็จะดึงข้อมูลในบล็อกนั้นส่งไปให้ซีพียูประมวลผล
แต่ถ้าไม่พบก็จะส่งแอดเดรสไปค้นหาบล็อกที่ต้องการในหน่วยความจำ�หลักเมื่อพบแล้วจะจัดสรร (allocate) ไลน์ใน
แคชส�ำ หรบั เกบ็ บลอ็ กทตี่ อ้ งการ และดงึ ขอ้ มลู บลอ็ กนัน้ จากหนว่ ยความจ�ำ หลกั ลงสูไ่ ลนใ์ นแคชพรอ้ มกบั สง่ ขอ้ มลู บลอ็ ก
นั้นให้ซีพียูประมวลผล ซึ่งสามารถแสดงให้เห็นการทำ�งานแบบคู่ขนานของโครงสร้างแคชดังภาพที่ 3.9
   22   23   24   25   26   27   28   29   30   31   32