ความสัมพันธ์ระหว่างสายแคชและหน้าหน่วยความจำ


9
  1. หากฉันถูกต้องหน้าในหน่วยความจำหลักเป็นหน่วยที่เล็กที่สุดสำหรับการถ่ายโอนข้อมูลระหว่างหน่วยความจำหลักและอุปกรณ์เก็บข้อมูลภายนอกเช่นฮาร์ดดิสก์ บรรทัดแคชของหน่วยความจำหลักเป็นหน่วยที่เล็กที่สุดสำหรับการถ่ายโอนข้อมูลระหว่างหน่วยความจำหลักและ cpu แคช

  2. ฉันสงสัยว่าขนาดหน้ากระดาษอยู่เสมอหรือดีที่สุดที่จะเป็นขนาดแคชของจำนวนบรรทัดปกติหรือไม่ หากขนาดบรรทัดแคชคือ 64 ไบต์และขนาดหน้าหน่วยความจำคือ 4KB ดังนั้นแต่ละหน้าจะมี 4KB / 64 ไบต์ == 64 บรรทัดแคชในนั้น

  3. หน้าและบรรทัดแคชทั้งวัตถุคงที่ในหน่วยความจำหรือไม่? หรือพวกเขาเป็นเพียงบล็อกที่ต่อเนื่องกันของหน่วยความจำขนาดหนึ่งซึ่งสามารถเริ่มต้นและลอยได้ทุกที่ภายในหน่วยความจำ

  4. เป็นเสมอหรือไม่ที่บรรทัดแคชไม่สามารถขยายได้มากกว่าหนึ่งหน้านั่นคือส่วนหนึ่งของบรรทัดแคชอยู่ในหน้าหนึ่งและอีกส่วนหนึ่งของบรรทัดแคชอยู่ในหน้าอื่นหรือไม่

ขอบคุณ


2
คำตอบสำหรับคำถามของคุณนั้นขึ้นอยู่กับสถาปัตยกรรม CPU สูง
TMN

คำตอบ:


8
  1. บรรทัดแคชเป็นหน่วยที่เล็กที่สุดที่คุณสามารถสัมผัสกับหน่วยความจำกายภาพ ความหมายเมื่อคุณอ่าน / เขียน 1 ไบต์บรรทัดแคชแบบเต็มจะถูกอ่านลงในแคช cpu และเขียนกลับมา โปรดทราบว่าแม้กระทั่งคำแนะนำที่เลี่ยงผ่านแคชเพื่อเขียน (คำแนะนำในการสตรีมชั่วคราว) เขียนในขนาดบรรทัดแคช ขึ้นอยู่กับ CPU ขนาดบรรทัดแคชโดยทั่วไปคือ 32/64/128 ไบต์ เมื่อหน้าหน่วยความจำถูกเขียนลงดิสก์พวกเขาทั้งหมดจะถูกเขียน สิ่งนี้จะเกิดขึ้นเมื่อแรงดันหน่วยความจำสูงเกินไปหรือกระบวนการไฮเบอร์เนต (และอาจเป็นไปได้สำหรับการใช้งานอื่น) พวกเขาจะถูกอ่านทั้งหมดเมื่อจำเป็นอีกครั้ง นี่เป็นสาเหตุหลักเนื่องจากเคอร์เนลไม่มีทางรู้ว่าหน้านั้นมีการใช้งานบางส่วนหรือทั้งหมด การดำเนินการอ่าน / เขียนที่จัดเก็บข้อมูลภายนอกอื่น ๆ อาจมีความละเอียดตามอำเภอใจ (เช่น: fwrite (.. ))

  2. ขนาดหน้าขึ้นอยู่กับ CPU / GPU สำหรับซีพียูส่วนใหญ่ขนาดหน้าจะเป็นอย่างน้อย 4KB และโดยทั่วไปจะสนับสนุนการผสมผสานของ 4KB / 64KB / 2MB / 4MB / 16MB / 1GB (ไม่จำเป็นต้องรองรับทั้งหมดในเวลาเดียวกัน) ขนาดจะเป็นพลังของสองเสมอ

  3. ทั้งหน้าและบรรทัดแคชมีความต่อเนื่องกันและจำเป็นต้องปรับให้สอดคล้องกับขนาดของมัน บรรทัดแคช 64 ไบต์จัดเรียงเสมอ 64 ไบต์และหน้า 2MB อยู่ในแนว 2MB เสมอ

  4. เนื่องจาก # 3 บรรทัดแคชไม่สามารถขยายได้ 2 หน้าเนื่องจากขนาดหน้าจะใหญ่กว่าเส้นแคชเสมอและจะมีขนาดหลายเท่าของบรรทัดแคชเสมอ

ดูแหล่งข้อมูลที่ยอดเยี่ยมสำหรับข้อมูลมากมายเกี่ยวกับหน่วยความจำ: http://lwn.net/Articles/250967/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.