سياسات وضع ذاكرة التخزين المؤقت

سياسات وضع الذاكرة المؤقتة هي سياسات تحدد مكان وضع كتلة ذاكرة معينة عند إدخالها إلى ذاكرة التخزين المؤقت لوحدة المعالجة المركزية . لا يمكن بالضرورة وضع كتلة الذاكرة في موقع عشوائي داخل الذاكرة المؤقتة؛ فقد تكون مقيدة بسطر ذاكرة مؤقتة معين أو مجموعة من أسطر الذاكرة المؤقتة [ 1 ] وفقًا لسياسة وضع الذاكرة المؤقتة. [ 2 ] [ 3 ]

تتوفر ثلاث سياسات مختلفة لوضع كتلة ذاكرة في الذاكرة المؤقتة: التعيين المباشر، والتعيين الترابطي الكامل، والتعيين الترابطي للمجموعات. في الأصل، وُصفت هذه المساحة من تنظيمات الذاكرة المؤقتة باستخدام مصطلح "تعيين التطابق". [ 4 ]

ذاكرة تخزين مؤقتة ذات تعيين مباشر

في بنية ذاكرة التخزين المؤقت ذات التعيين المباشر، تُنظَّم ذاكرة التخزين المؤقت في مجموعات متعددة [ 1 ] ، حيث تحتوي كل مجموعة على سطر تخزين مؤقت واحد. وبناءً على عنوان كتلة الذاكرة، لا يمكنها شغل سوى سطر تخزين مؤقت واحد. ويمكن تمثيل ذاكرة التخزين المؤقت كمصفوفة عمودية n × 1. [ 5 ]

لوضع كتلة في الذاكرة المؤقتة

  • يتم تحديد المجموعة بواسطة الفهرس [ 1 ] بتات المشتقة من عنوان كتلة الذاكرة.
  • يتم وضع كتلة الذاكرة في المجموعة المحددة ويتم تخزين الوسم [ 1 ] في حقل الوسم المرتبط بالمجموعة.
  • إذا كان سطر التخزين المؤقت مشغولاً مسبقاً، فإن البيانات الجديدة تحل محل كتلة الذاكرة في ذاكرة التخزين المؤقت.

للبحث عن كلمة في ذاكرة التخزين المؤقت

المزايا

  • تتميز سياسة التوزيع هذه بكفاءة استهلاك الطاقة لأنها تتجنب البحث في جميع أسطر ذاكرة التخزين المؤقت.
  • سياسة التوظيف وسياسة الاستبدال بسيطة.
  • يمكن استخدام أجهزة بسيطة ومنخفضة التكلفة، حيث لا يلزم فحص سوى علامة واحدة في كل مرة.

العيوب

  • يتميز هذا النظام بانخفاض معدل الوصول إلى الذاكرة المؤقتة، حيث لا يتوفر سوى سطر واحد في المجموعة. في كل مرة تتم فيها الإشارة إلى نفس المجموعة في الذاكرة، يتم استبدال سطر الذاكرة المؤقتة، مما يؤدي إلى حدوث تعارض في الوصول. [ 6 ]

مثال

ذاكرة التخزين المؤقت ذات التعيين المباشر

لنفترض وجود ذاكرة رئيسية سعتها 16 كيلوبايت، مُنظمة على شكل كتل بحجم 4 بايت، وذاكرة تخزين مؤقتة ذات تعيين مباشر سعتها 256 بايت بحجم كتلة 4 بايت. ولأن الذاكرة الرئيسية سعتها 16 كيلوبايت، فنحن نحتاج إلى 14 بت على الأقل لتمثيل عنوان الذاكرة بشكل فريد .

بما أن كل كتلة ذاكرة تخزين مؤقت بحجم 4 بايت، فإن العدد الإجمالي للمجموعات في ذاكرة التخزين المؤقت هو 256/4، وهو ما يساوي 64 مجموعة.

يتم تقسيم العنوان الوارد إلى ذاكرة التخزين المؤقت إلى بتات للإزاحة والفهرس والعلامة .

  • يمثل الإزاحة عدد البتات المستخدمة لتحديد البايت المراد الوصول إليه من سطر ذاكرة التخزين المؤقت. ولأن طول أسطر ذاكرة التخزين المؤقت يبلغ 4 بايتات، فهناك بتان للإزاحة .
  • يشير الفهرس إلى البتات المستخدمة لتحديد مجموعة الذاكرة المؤقتة. يوجد 64 مجموعة في الذاكرة المؤقتة، ولأن 2^6 = 64، فإن عدد بتات الفهرس هو 6.
  • يمثل الوسم البتات المتبقية. وهذا يعني أن هناك 14 - (6+2) = 6 بتات للوسم ، يتم تخزينها في حقل الوسم لمطابقة العنوان عند طلب ذاكرة التخزين المؤقت.

فيما يلي عناوين الذاكرة وشرح لخط التخزين المؤقت الذي تُشير إليه:

  1. العنوان 0x0000(العلامة - 0b00_0000، الفهرس - 0b00_0000، الإزاحة - 0b00) يتوافق مع الكتلة 0 من الذاكرة ويتم تعيينه إلى المجموعة 0 من ذاكرة التخزين المؤقت.
  2. العنوان 0x0004(العلامة - 0b00_0000، الفهرس - 0b00_0001، الإزاحة - 0b00) يتوافق مع الكتلة 1 من الذاكرة ويرتبط بالمجموعة 1 من ذاكرة التخزين المؤقت.
  3. العنوان 0x00FF(العلامة - 0b00_0000، الفهرس - 0b11_1111، الإزاحة - 0b11) يتوافق مع الكتلة 63 من الذاكرة ويرتبط بالمجموعة 63 من ذاكرة التخزين المؤقت.
  4. العنوان 0x0100(العلامة - 0b00_0001، الفهرس - 0b00_0000، الإزاحة - 0b00) يتوافق مع الكتلة 64 من الذاكرة ويتم تعيينه إلى المجموعة 0 من ذاكرة التخزين المؤقت.

ذاكرة تخزين مؤقتة ترابطية بالكامل

في ذاكرة التخزين المؤقت الترابطية بالكامل، تُنظَّم ذاكرة التخزين المؤقت في مجموعة واحدة تحتوي على عدة خطوط تخزين مؤقت. يمكن أن تشغل كتلة الذاكرة أيًا من خطوط التخزين المؤقت. ويمكن تمثيل تنظيم ذاكرة التخزين المؤقت كمصفوفة صفوف 1 × m . [ 5 ]

لوضع كتلة في الذاكرة المؤقتة

  • يتم اختيار سطر التخزين المؤقت بناءً على بت الصلاحية [ 1 ] المرتبط به. إذا كان بت الصلاحية 0، يمكن وضع كتلة الذاكرة الجديدة في سطر التخزين المؤقت، وإلا فيجب وضعها في سطر تخزين مؤقت آخر ببت صلاحية 0.
  • إذا كانت ذاكرة التخزين المؤقت ممتلئة تمامًا، فسيتم إخراج كتلة من الذاكرة ووضع كتلة الذاكرة في سطر ذاكرة التخزين المؤقت هذا.
  • يتم تحديد إخراج كتلة الذاكرة من ذاكرة التخزين المؤقت بواسطة سياسة الاستبدال . [ 7 ]

للبحث عن كلمة في ذاكرة التخزين المؤقت

  • تتم مقارنة حقل "الوسم" في عنوان الذاكرة مع بتات الوسم المرتبطة بجميع أسطر التخزين المؤقت. إذا تطابقت، فهذا يعني أن الكتلة موجودة في التخزين المؤقت، ويُعتبر ذلك نجاحًا. أما إذا لم تتطابق، فهذا يعني فشلًا في التخزين المؤقت، ويجب جلبها من الذاكرة السفلية.
  • بناءً على الإزاحة، يتم تحديد بايت وإعادته إلى المعالج.
ذاكرة تخزين مؤقتة ترابطية بالكامل

المزايا

  • يوفر لنا هيكل ذاكرة التخزين المؤقت الترابطي بالكامل مرونة وضع كتلة الذاكرة في أي من خطوط ذاكرة التخزين المؤقت، وبالتالي الاستخدام الكامل لذاكرة التخزين المؤقت.
  • توفر سياسة التوزيع معدل نجاح أفضل في الوصول إلى ذاكرة التخزين المؤقت.
  • يوفر هذا النظام مرونة استخدام مجموعة واسعة من خوارزميات الاستبدال في حالة حدوث خطأ في ذاكرة التخزين المؤقت.

العيوب

  • تستهلك سياسة وضع البيانات طاقة كبيرة لأن دوائر المقارنة يجب أن تعمل على كامل ذاكرة التخزين المؤقت لتحديد موقع كتلة.
  • وهي أغلى الطرق على الإطلاق، وذلك بسبب التكلفة العالية لأجهزة المقارنة الترابطية.

مثال

لنفترض ذاكرة رئيسية سعتها 16 كيلوبايت، مُقسّمة إلى كتل حجم كل منها 4 بايت، وذاكرة تخزين مؤقتة ترابطية كاملة سعتها 256 بايت، وحجم كتلتها 4 بايت. بما أن سعة الذاكرة الرئيسية 16 كيلوبايت، فنحن نحتاج إلى 14 بت على الأقل لتمثيل عنوان الذاكرة بشكل فريد.

يبلغ إجمالي عدد المجموعات في ذاكرة التخزين المؤقت 1، وتحتوي المجموعة على 256/4=64 سطرًا من ذاكرة التخزين المؤقت، حيث أن كتلة ذاكرة التخزين المؤقت بحجم 4 بايت.

يتم تقسيم العنوان الوارد إلى ذاكرة التخزين المؤقت إلى بتات للإزاحة والعلامة.

  • يشير الإزاحة إلى البتات المستخدمة لتحديد البايت المراد الوصول إليه من سطر ذاكرة التخزين المؤقت. في المثال، يوجد بتّان للإزاحة، يُستخدمان لعنونة البايتات الأربعة لسطر ذاكرة التخزين المؤقت.
  • يمثل الوسم البتات المتبقية. وهذا يعني أن هناك 14 - (2) = 12 بتًا للوسم ، يتم تخزينها في حقل الوسم لمطابقة العنوان في طلب ذاكرة التخزين المؤقت.

بما أنه يمكن ربط أي كتلة من الذاكرة بأي سطر من أسطر التخزين المؤقت، فإن كتلة الذاكرة يمكن أن تشغل أحد أسطر التخزين المؤقت بناءً على سياسة الاستبدال.

ذاكرة تخزين مؤقتة ترابطية

ذاكرة التخزين المؤقت ذات الترابط المحدد هي حل وسط بين ذاكرة التخزين المؤقت ذات التعيين المباشر وذاكرة التخزين المؤقت ذات الترابط الكامل.

يمكن تصور ذاكرة التخزين المؤقت ذات التجميعات على أنها مصفوفة n × m . تُقسّم ذاكرة التخزين المؤقت إلى 'n' مجموعة، وتحتوي كل مجموعة على 'm' سطر تخزين مؤقت. تُربط كتلة الذاكرة أولاً بمجموعة، ثم توضع في أي سطر تخزين مؤقت من تلك المجموعة.

يتراوح نطاق الذاكرة المؤقتة من الذاكرة ذات التعيين المباشر إلى الذاكرة الترابطية الكاملة، وهو عبارة عن سلسلة متصلة من مستويات ترابط المجموعات. (الذاكرة المؤقتة ذات التعيين المباشر هي ذاكرة ترابطية أحادية الاتجاه، والذاكرة الترابطية الكاملة التي تحتوي على m خط ذاكرة مؤقتة هي ذاكرة ترابطية متعددة الاتجاهات).

تعتمد العديد من ذاكرات التخزين المؤقت للمعالجات في التصميمات الحالية إما على التعيين المباشر، أو التجميع الثنائي، أو التجميع الرباعي. [ 5 ]

لوضع كتلة في الذاكرة المؤقتة

  • يتم تحديد المجموعة بواسطة بتات الفهرس المشتقة من عنوان كتلة الذاكرة.
  • تُوضع كتلة الذاكرة في سطر ذاكرة تخزين مؤقت متاح ضمن المجموعة المحددة، ويُخزّن الوسم في حقل الوسم المرتبط بالسطر. إذا كانت جميع أسطر ذاكرة التخزين المؤقت في المجموعة مشغولة، فإن البيانات الجديدة تحل محل الكتلة المحددة من خلال سياسة الاستبدال .

للعثور على كلمة في الذاكرة المؤقتة

  • يتم تحديد المجموعة بواسطة بتات الفهرس المشتقة من عنوان كتلة الذاكرة.
  • تُقارن بتات الوسم مع وسوم جميع أسطر التخزين المؤقت الموجودة في المجموعة المُختارة. إذا تطابق الوسم مع أي من أسطر التخزين المؤقت، فهذا يعني وجود البيانات في ذاكرة التخزين المؤقت، ويتم إرجاع السطر المناسب. أما إذا لم يتطابق الوسم مع أي من الأسطر، فهذا يعني عدم وجود البيانات في ذاكرة التخزين المؤقت، ويتم طلب البيانات من المستوى التالي في التسلسل الهرمي للذاكرة.

المزايا

  • تُعد سياسة التوزيع بمثابة حل وسط بين ذاكرة التخزين المؤقت ذات التعيين المباشر وذاكرة التخزين المؤقت الترابطية بالكامل.
  • يوفر هذا النظام مرونة استخدام خوارزميات الاستبدال في حالة حدوث خطأ في ذاكرة التخزين المؤقت.

العيوب

  • لن تستخدم سياسة التوزيع جميع أسطر التخزين المؤقت المتاحة في ذاكرة التخزين المؤقت بشكل فعال، وستعاني من مشكلة عدم وجود تعارض .

مثال

لنفترض وجود ذاكرة رئيسية سعتها 16 كيلوبايت، مُقسّمة إلى كتل حجم كل منها 4 بايت، وذاكرة تخزين مؤقتة ثنائية الاتجاه سعتها 256 بايت، حجم كل كتلة منها 4 بايت. بما أن سعة الذاكرة الرئيسية 16 كيلوبايت، فنحن نحتاج إلى 14 بت على الأقل لتمثيل عنوان الذاكرة بشكل فريد.

بما أن كل كتلة ذاكرة تخزين مؤقت بحجم 4 بايت وهي ذات مجموعة ارتباطية ثنائية الاتجاه، فإن العدد الإجمالي للمجموعات في ذاكرة التخزين المؤقت هو 256/(4 * 2)، وهو ما يساوي 32 مجموعة.

ذاكرة التخزين المؤقت الترابطية

يتم تقسيم العنوان الوارد إلى ذاكرة التخزين المؤقت إلى بتات للإزاحة والفهرس والوسم.

  • يمثل الإزاحة عدد البتات المستخدمة لتحديد البايت المراد الوصول إليه من سطر ذاكرة التخزين المؤقت. ولأن طول أسطر ذاكرة التخزين المؤقت يبلغ 4 بايتات، فهناك بتان للإزاحة .
  • يشير الفهرس إلى البتات المستخدمة لتحديد مجموعة الذاكرة المؤقتة. يوجد 32 مجموعة في الذاكرة المؤقتة، ولأن 2^5 = 32، فإن عدد بتات الفهرس هو 5.
  • يمثل الوسم البتات المتبقية. وهذا يعني أن هناك 14 - (5+2) = 7 بتات ، يتم تخزينها في حقل الوسم لمطابقة العنوان في طلب ذاكرة التخزين المؤقت.

فيما يلي عناوين الذاكرة وشرح لأي سطر من سطور ذاكرة التخزين المؤقت في أي مجموعة يتم ربطها:

  1. العنوان 0x0000(الوسم - 0b000_0000، الفهرس - 0b0_0000، الإزاحة - 0b00) يُطابق الكتلة 0 من الذاكرة ويُشير إلى المجموعة 0 من ذاكرة التخزين المؤقت. تشغل الكتلة سطرًا في المجموعة 0 من ذاكرة التخزين المؤقت، ويتم تحديد ذلك بناءً على سياسة الاستبدال الخاصة بذاكرة التخزين المؤقت.
  2. العنوان 0x0004(الوسم - 0b000_0000، الفهرس - 0b0_0001، الإزاحة - 0b00) يُطابق الكتلة رقم 1 في الذاكرة ويُشير إلى المجموعة رقم 1 في ذاكرة التخزين المؤقت. تشغل الكتلة سطرًا في المجموعة رقم 1 من ذاكرة التخزين المؤقت، ويتم تحديد ذلك بناءً على سياسة الاستبدال الخاصة بذاكرة التخزين المؤقت.
  3. العنوان 0x00FF(الوسم – 0b000_0001، الفهرس – 0b1_1111، الإزاحة – 0b11) يُطابق الكتلة رقم 63 من الذاكرة ويُشير إلى المجموعة رقم 31 من ذاكرة التخزين المؤقت. تشغل الكتلة سطرًا في المجموعة رقم 31 من ذاكرة التخزين المؤقت، ويتم تحديد ذلك بناءً على سياسة الاستبدال الخاصة بذاكرة التخزين المؤقت.
  4. العنوان 0x0100(الوسم – 0b000_0010، الفهرس – 0b0_0000، الإزاحة – 0b00) يُطابق الكتلة رقم 64 من الذاكرة ويُشير إلى المجموعة 0 من ذاكرة التخزين المؤقت. تشغل الكتلة سطرًا في المجموعة 0 من ذاكرة التخزين المؤقت، ويتم تحديد ذلك بناءً على سياسة الاستبدال الخاصة بذاكرة التخزين المؤقت.

ذاكرة تخزين مؤقتة ترابطية منحرفة ثنائية الاتجاه

تم اقتراح مخططات أخرى، مثل ذاكرة التخزين المؤقت المائلة [ 8 ] ، حيث يكون فهرس المسار 0 مباشرًا، كما ذُكر أعلاه، بينما يُشكّل فهرس المسار 1 باستخدام دالة تجزئة . تتميز دالة التجزئة الجيدة بخاصية أن العناوين التي تتعارض مع التعيين المباشر لا تتعارض عادةً عند تعيينها باستخدام دالة التجزئة، وبالتالي يقل احتمال تعرض البرنامج لعدد كبير غير متوقع من حالات عدم الوصول بسبب نمط وصول غير طبيعي. أما الجانب السلبي فهو زيادة زمن الاستجابة الناتج عن حساب دالة التجزئة [ 9 ] . بالإضافة إلى ذلك، عند تحميل سطر جديد وإخراج سطر قديم، قد يصعب تحديد أي سطر موجود هو الأقل استخدامًا مؤخرًا، لأن السطر الجديد يتعارض مع البيانات في فهارس مختلفة في كل مسار؛ وعادةً ما يتم تتبع LRU لذاكرات التخزين المؤقت غير المائلة على أساس كل مجموعة. ومع ذلك، تتمتع ذاكرات التخزين المؤقت المائلة بمزايا كبيرة على ذاكرات التخزين المؤقت التقليدية القائمة على المجموعات [ 10 ] .

ذاكرة تخزين مؤقتة شبه ترابطية

تختبر ذاكرة التخزين المؤقت ذات التجميع الحقيقي جميع الطرق الممكنة في آنٍ واحد، باستخدام ما يشبه ذاكرة الوصول العشوائي للمحتوى . أما ذاكرة التخزين المؤقت ذات التجميع الزائف فتختبر كل طريقة ممكنة على حدة. وتُعد ذاكرة التخزين المؤقت ذات التجزئة وإعادة التجزئة وذاكرة التخزين المؤقت ذات التجميع العمودي مثالين على ذاكرة التخزين المؤقت ذات التجميع الزائف.

في الحالة الشائعة المتمثلة في العثور على تطابق في الطريقة الأولى المختبرة، تكون ذاكرة التخزين المؤقت شبه الترابطية بنفس سرعة ذاكرة التخزين المؤقت ذات التعيين المباشر، ولكنها تتميز بمعدل خطأ تعارض أقل بكثير من ذاكرة التخزين المؤقت ذات التعيين المباشر، وأقرب إلى معدل الخطأ لذاكرة التخزين المؤقت الترابطية الكاملة. [ 9 ]

انظر أيضاً

مراجع

  1. 1 2 3 4 5 "أساسيات التخزين المؤقت" (PDF) .
  2. "سياسات وضع المخابئ" . مؤرشف من الأصل في 21 فبراير 2020.
  3. "سياسات التوظيف" . مؤرشف من الأصل في 14 أغسطس 2020.
  4. ماتسون، آر إل ؛ جيكسي، جيه؛ سلوتز، دي آر؛ ترايجر، آي (1970). "تقنيات تقييم التسلسلات الهرمية للتخزين". مجلة أنظمة آي بي إم . 9 (2): 78-117 . doi : 10.1147/sj.92.0078 .
  5. 1 2 3 سوليهين، يان (2015). أساسيات العمارة المتوازية متعددة النواة . تايلور وفرانسيس. ص 136 – 141. ISBN  978-1482211184.
  6. "أنواع أخطاء ذاكرة التخزين المؤقت" (ملف PDF) . مؤرشف من الأصل (ملف PDF) بتاريخ 30 نوفمبر 2016. تم الاطلاع عليه بتاريخ 24 أكتوبر 2016 .
  7. "ذاكرة التخزين المؤقت الترابطية بالكامل" . مؤرشف من الأصل في 24 ديسمبر 2017.
  8. أندريه سيزنيك (1993). "حالة لصالح ذاكرة التخزين المؤقت ثنائية الاتجاه ذات الترابط المائل" . أخبار هندسة الحاسوب ACM SIGARCH . 21 (2): 169-178 . doi : 10.1145/173682.165152 .
  9. 1 2 سي. كوزيراكيس . "المحاضرة 3: تقنيات التخزين المؤقت المتقدمة" (ملف PDF) . مؤرشف من الأصل (ملف PDF) في 7 سبتمبر 2012.
  10. البنية الدقيقة "تتمتع ذاكرة التخزين المؤقت ذات الارتباطات المنحرفة ... بمزايا رئيسية مقارنة بذاكرة التخزين المؤقت التقليدية ذات الارتباطات المحددة."