Introduction to Cache Memory Systems โดย นายอธิกร สิงห์เอี่ยม รหัส 4422070
Memory Hierarchies Cache เป็นระบบหน่วยความจำความเร็วสูง ที่เก็บข้อมูลบางส่วนของ Main Memory ในทางกายภาพแล้ว Cache จะอยู่ตรงกลางระหว่าง Main Memory กับ CPU เพราะว่า Cache มีความเร็วสูงกว่า Main Memory ทำให้เป็นการเพิ่มประสิทธิภาพในการทำงานของระบบ ถ้าใช้ Cache ในการเก็บคำสั่ง (Instruction) และ ข้อมูล (Data) ที่มีการใช้อยู่บ่อยใน Cache ซึ่งทำให้ CPU เข้ามาเรียกใช้งานได้เร็วขึ้น Cache จะเป็นการเพิ่มประสิทธิภาพของการทำงานของระบบ โดยใช้หลักการที่เรียกว่า Locality of reference
หลักการ Locality of reference จะมีอยู่ด้วยกัน 2 ประเภทได้แก่ Temporal และ Spatial Cache ที่มีความเร็วสูงจะเป็นตัวที่ทำให้ความแตกต่างระหว่างความเร็วของ CPU และ Main Memory ลดลง และหลักการของ Locality of reference จะถูกนำมาประยุกต์ใช้กับส่วนต่างๆ ในระบบ Memory
Cache Fundamentals อาจจะถูกรวมไว้กับ Microprocessor และ Memory Management Unit (MMU) ก็ได้ในปัจจุบัน หรือตัว Cache ก็จะถูกวางไว้บน CPU Board เราเรียก Cache ประเภทนี้ว่า External Cache ในบางระบบอาจจะมีการแยกใช้ Cache กันระหว่าง คำสั่ง และ ข้อมูล การที่ใช้แบบนี้จะเป็นการเพิ่มประสิทธิภาพในการทำงาน เพราะตอนที่ CPU กำลังดึงคำสั่งที่อยู่ใน Cache คำสั่ง (Instruction Cache) ก็จำทำการเรียกใช้หรือบันทึกข้อมูลลงใน Cache ข้อมูล (Data Cache)
How a Cache Is Accessed (1) Cache จะทำการเก็บส่วนเล็กๆของ Main Memory ส่วนของ Memory ที่อยู่ใน Cache จะเรียกว่า Cached โดยใช้ป้ายหรือสัญลักษณ์ (Tag) ที่บอกว่า ข้อมูลใน Cache นั้น มีเลขที่หน่วยความจำใดใน Main Memory หากพบข้อมูลใน Cache จะเรียกว่า Cache hit แต่หากไม่พบก็จะเรียกว่า Cache miss อัตราในการที่จะเกิด Cache hit กับ Cache miss นั้นเราจะเรียกว่า Hit ratio การที่มี Hit Ratio สูงนั้น จะแสดงให้เห็นว่าระบบมีประสิทธิภาพในการทำงานสูง
How a Cache Is Accessed (2) หากไม่เจอข้อมูลใน Cache เลขที่หน่วยความจำนั้นก็จะถูกส่งต่อไปใน Main Memory เพื่อทำการหาข้อมูลที่อยู่ที่เลขที่หน่วยความจำนั้น ข้อมูลนั้นก็จะถูกเก็บต่อใน Cache เพื่อให้สะดวกในกรณีที่เกิด Temporal locality สำหรับข้อมูลที่อยู่รอบๆ ข้อมูล ที่ CPU ทำการดึงมานั้นก็จะถูกเก็บไว้ใน Cache เพื่อให้เกิดความสะดวกในกรณีที่เกิด Spatial locality ใน Tag จะมีข้อมูลข่าวสารที่ใช้ในการควบคุม Valid bit จะเป็นตัวบอกว่าใน Cache Block นั้นเก็บข้อมูลที่ถูกเรียกใช้ข้อมูล และเก็บข้อมูลที่ถูกต้อง เรียกว่า Modify bit จะถูก Set ค่าเมื่อ CPU เก็บข้อมูลลงใน Cache ด้วยใช้วิธีการ Write-Back
Virtual or Physical Address Cache สามารถถูกออกแบบในเรื่องการเข้าถึงด้วยการใช้ Virtual หรือ Physical Address ของข้อมูล หรือคำสั่ง Tag จะถูกออกแบบมาให้เก็บทั้ง Virtual หรือ Physical address กับข้อมูลอื่นๆ การที่จะเลือกว่าจะใช้ Virtual หรือ Physical นั้นจะถูกกำหนดเมื่อ Hardware ได้ถูกออกแบบ และมีการเลือกว่าใช้เทคโนโลยี Cache แบบไหน
Searching the Cache การค้นหาข้อมูลใน Cache จะต้องรวดเร็ว เพราะวัตถุประสงค์ในการใช้ Cache คือมีการส่งข้อมูลคืนมาที่รวดเร็วกว่า Main Memory เลขที่หน่วยความจำที่ได้มานั้นเมื่อถูก Hash แล้วจะได้เป็น Index สำหรับ 1 หรือหลายที่ใน Cache ในการใช้อัลกอริทึมของ Hash ต่างๆ อาจให้ Index ที่เหมือนกันได้ในหลาย เลขที่หน่วยความจำ ดังนั้นต้องใช้ Tag ในการเปรียบเทียบว่า ที่ Block นั้นเก็บข้อมูลเลขที่เดียวกับที่ CPU ต้องการหรือเปล่า หากเหมือนกันก็แสดงว่าเกิด Hit แต่หากไม่เหมือนกันก็จะเกิด Miss