Memory Hierarchy
ลำดับชั้นของหน่วยความจำในระบบคอมพิวเตอร์
Memory Hierarchy (สรุปด่วน)
การออกแบบระบบคอมพิวเตอร์ต้องรักษาสมดุลระหว่าง "ความเร็ว", "ความจุ", และ "ราคา" จึงเกิดเป็นแนวคิดลำดับชั้นหน่วยความจำแบบปิรามิด
1. ลำดับชั้น (จากเร็วที่สุดไปช้าที่สุด)
- Registers: อยู่ใน CPU โดยตรง เร็วที่สุด (ความจุน้อยระดับ Bytes)
- Cache Memory (SRAM): อยู่ในหรือใกล้ CPU มากๆ เพื่อลดเวลาที่ CPU ต้องไปรอข้อมูลจาก RAM
L1 Cache: เร็วสุด เล็กสุด (แยก Core)L2 Cache: ช้ากว่า L1 (แยก Core)L3 Cache: ใหญ่สุดในกลุ่ม Cache (แชร์กันทุก Core)
- Main Memory (RAM / DRAM): พื้นที่ทำงานหลักของระบบ (ความจุระดับ GB)
- Secondary Storage (SSD / HDD): เก็บข้อมูลถาวร ช้าที่สุด แต่ความจุมากและราคาถูกสุด (ระดับ TB)
2. Principle of Locality
เหตุผลที่ Cache Memory ทำงานได้ผลดีเยี่ยม มาจากพฤติกรรมการเข้าถึงข้อมูลของ Program:
- Spatial Locality: ถ้า CPU เข้าถึงข้อมูลตรง Address หนึ่ง มีโอกาสสูงมากที่เร็วๆ นี้ CPU จะเข้าถึงข้อมูลที่อยู่ "ใกล้เคียงกัน" (เช่น การวนลูป Array)
- Temporal Locality: ถ้า CPU เข้าถึงข้อมูลตัวใดตัวหนึ่ง มีโอกาสสูงมากที่เร็วๆ นี้ CPU จะกลับมาเรียกใช้ข้อมูล "ตัวเดิมซ้ำอีก" (เช่น ตัวแปร Counter ใน Loop)