التسلسل الهرمي للذاكرة والذاكرات المخبئية
ينظم التسلسل الهرمي للذاكرة التخزين في مستويات — السجلات، والذاكرات المخبئية، والذاكرة الرئيسية، وذاكرة التخزين الاحتياطية — بحيث تحتفظ المستويات الصغيرة والسريعة بالبيانات الأكثر احتمالاً للاستخدام، مما يمنح البرامج وهم ذاكرة كبيرة وسريعة في آن واحد.
Definition
التسلسل الهرمي للذاكرة هو ترتيب طبقي لتقنيات التخزين تختلف في السرعة والتكلفة والسعة، وتُدار بحيث توجد البيانات التي يتم الوصول إليها بشكل متكرر وحديثًا في المستويات الأسرع والأصغر — والأهم من ذلك الذاكرة المخبئية — لتقليل متوسط وقت الوصول.
Scope
يغطي هذا المجال سبب وكيفية تنظيم الذاكرة كتسلسل هرمي يستغل مبدأ المرجعية المحلية (locality of reference). ويشمل بنية الذاكرة المخبئية (سياسات التوضع، والاستبدال، والكتابة)، والذاكرات المخبئية متعددة المستويات، وتماسك الذاكرة المخبئية عبر المعالجات، والذاكرة الافتراضية وترجمة العناوين، وتقنيات DRAM الأساسية والذاكرات الناشئة. يستثني هذا المجال تنفيذ المعالج نفسه (البنية الدقيقة للمعالج) وتخزين الملفات والأجهزة على نطاق واسع (أنظمة التخزين والإدخال/الإخراج)، على الرغم من أنه يلامس كلا المجالين.
Sub-topics
Core questions
- لماذا تجعل المرجعية المحلية التسلسل الهرمي للذاكرة الطبقي فعالاً؟
- كيف تُنظم الذاكرات المخبئية من حيث التوضع، والترابطية، والاستبدال، وسياسة الكتابة؟
- كيف يتم الحفاظ على التماسك عندما تحتفظ ذاكرات مخبئية متعددة بنسخ من نفس الذاكرة؟
- كيف تترجم الذاكرة الافتراضية العناوين وتوفر الحماية ووهم الذاكرة الكبيرة؟
- كيف تشكل خصائص DRAM والذاكرات الناشئة أداء النظام؟
Key concepts
- المرجعية المحلية الزمانية والمكانية
- إصابة الذاكرة المخبئية وعدم الإصابة
- الترابطية وسياسة الاستبدال
- الكتابة المباشرة والكتابة المؤجلة
- الذاكرات المخبئية متعددة المستويات
- تماسك الذاكرة المخبئية
- الذاكرة الافتراضية والتقسيم إلى صفحات
- مخزن الترجمة المؤقت
- DRAM وعرض نطاق الذاكرة
- متوسط وقت الوصول إلى الذاكرة
Key theories
- المرجعية المحلية
- تميل البرامج إلى إعادة استخدام البيانات التي تم الوصول إليها مؤخرًا (المرجعية المحلية الزمانية) والوصول إلى العناوين المجاورة (المرجعية المحلية المكانية)؛ يستغل التسلسل الهرمي للذاكرة كلاهما عن طريق تخزين الكتل المستخدمة مؤخرًا وجلب الجيران معًا.
- مفاضلات تصميم الذاكرة المخبئية
- يُحكم أداء الذاكرة المخبئية بمعدل عدم الإصابة، وعقوبة عدم الإصابة، ووقت الإصابة، ويتم ضبطه من خلال الحجم، وحجم الكتلة، والترابطية، وسياسات الاستبدال والكتابة؛ تحدد التحليلات الكلاسيكية حالات عدم الإصابة الإلزامية، والسعة، والتضارب كأهداف لهذه الخيارات.
Mechanisms
عندما يطلب المعالج البيانات، يتم فحص الذاكرة المخبئية أولاً؛ فإذا كانت هناك إصابة (hit) تُرجع البيانات بسرعة، بينما في حالة عدم الإصابة (miss) يتم جلب كتلة من مستوى أدنى وقد يتم إخراج كتلة أخرى بواسطة سياسة الاستبدال. تنتشر عمليات الكتابة بواسطة مخططات الكتابة المباشرة (write-through) أو الكتابة المؤجلة (write-back)، وتحافظ بروتوكولات التماسك على اتساق الذاكرات المخبئية المتعددة. تضيف الذاكرة الافتراضية خطوة ترجمة — عبر جداول الصفحات ومخزن الترجمة المؤقت (translation lookaside buffer) — لربط عناوين البرنامج بذاكرة DRAM الفعلية مع فرض الحماية.
Clinical relevance
يهيمن التسلسل الهرمي للذاكرة غالبًا على الأداء الفعلي: نظرًا لأن المعالجات أسرع بكثير من الذاكرة الرئيسية، فإن سلوك الذاكرة المخبئية والمحلية غالبًا ما يكونان أكثر أهمية من سرعة التعليمات الخام. تعد تخطيطات البيانات الواعية بالذاكرة المخبئية، والتكتيل (blocking)، والجلب المسبق (prefetching) محورية للحوسبة عالية الأداء، وقواعد البيانات، ونواة التعلم الآلي، وقد أصبح توقيت الذاكرة المخبئية مصدرًا لقنوات جانبية أمنية.
History
اقترح موريس ويلكس الذاكرة المخبئية ('ذاكرة تابعة') في عام 1965، ودخلت الذاكرات المخبئية الآلات التجارية مثل IBM System/360 Model 85. نشأت الذاكرة الافتراضية مع حاسوب أطلس في أوائل الستينيات، وتم إضفاء الطابع الرسمي عليها بواسطة نموذج مجموعة العمل لدينينغ. عزز مسح آلان جاي سميث عام 1982 المعرفة بتصميم الذاكرة المخبئية، وأصبحت الذاكرات المخبئية متعددة المستويات وبروتوكولات التماسك المتطورة معيارًا مع اتساع الفجوات في سرعة المعالج والذاكرة.
Debates
- إدارة المرجعية المحلية بواسطة الأجهزة مقابل البرمجيات
- يوجد توتر مستمر بين التخزين المؤقت الشفاف بواسطة الأجهزة والذاكرات المُدارة صراحةً (scratchpads، الجلب المسبق المتحكم به بواسطة البرمجيات): التخزين المؤقت بواسطة الأجهزة عام وسهل البرمجة، بينما الإدارة الصريحة يمكن أن تكون أكثر قابلية للتنبؤ وفعالية لأعباء العمل المتخصصة.
Key figures
- Maurice Wilkes
- Alan Jay Smith
- Peter J. Denning
- John L. Hennessy
- David A. Patterson
Related topics
Seminal works
- hennessy2019
- smith1982cache
- patterson2020
Frequently asked questions
- لماذا تكون الذاكرات المخبئية فعالة إذا كانت صغيرة جدًا مقارنة بالذاكرة الرئيسية؟
- لأن البرامج تُظهر مرجعية محلية: في أي لحظة، تلمس مجموعة عمل صغيرة فقط من البيانات بشكل متكرر، وتتجمع عمليات الوصول في العناوين المجاورة. وبالتالي، فإن ذاكرة مخبئية صغيرة تحتوي على مجموعة العمل هذه تلبي الغالبية العظمى من الطلبات.
- ما الفرق بين الذاكرة المخبئية والذاكرة الافتراضية؟
- كلاهما ينقل البيانات بين مستوى أسرع وأصغر ومستوى أبطأ وأكبر. الذاكرة المخبئية (التي تُدار في الأجهزة) تحتفظ بكتل من الذاكرة الرئيسية؛ الذاكرة الافتراضية (التي تُدار مع نظام التشغيل) تربط عناوين البرنامج بالذاكرة الفعلية وتقوم بترحيل البيانات من وإلى القرص، كما توفر الحماية ومساحة عنوان أكبر من ذاكرة الوصول العشوائي الفعلية.