ذاكرة التتبع

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

في هندسة الحاسوب ، تُعدّ ذاكرة التتبع أو ذاكرة تتبع التنفيذ ذاكرة تخزين مؤقتة متخصصة للتعليمات ، تُخزّن التدفق الديناميكي للتعليمات المعروف باسم التتبع . تُسهم هذه الذاكرة في زيادة عرض نطاق جلب التعليمات وتقليل استهلاك الطاقة (كما في معالج Intel Pentium 4 ) من خلال تخزين آثار التعليمات التي تم جلبها وفك تشفيرها مسبقًا. [ 1 ] معالج التتبع [ 2 ] هو بنية مصممة حول ذاكرة التتبع، ويعالج التعليمات بدقة على مستوى التتبع. تُوصف النظرية الرياضية الرسمية للتتبعات بواسطة أحاديات التتبع .

خلفية

كان أول منشور أكاديمي حول ذاكرة التخزين المؤقت للتتبع بعنوان "ذاكرة التخزين المؤقت للتتبع: نهج منخفض زمن الوصول لجلب التعليمات عالي النطاق الترددي". [ 1 ] وقد قُدِّمت هذه الورقة البحثية، التي حظيت باعتراف واسع، من قِبَل إريك روتنبرغ وستيف بينيت وجيم سميث في مؤتمر الندوة الدولية حول الهندسة المعمارية الدقيقة (MICRO) عام 1996. ومن المنشورات السابقة براءة الاختراع الأمريكية رقم 5381533، [ 3 ] لأليكس بيليغ وأوري وايزر من شركة إنتل، بعنوان "ذاكرة تخزين مؤقت للتعليمات ذات التدفق الديناميكي مُنظَّمة حول مقاطع التتبع بشكل مستقل عن خط العنوان الظاهري"، وهي استكمال لطلب براءة اختراع قُدِّم عام 1992، ثم تم التخلي عنه لاحقًا.

ضرورة

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

المكونات الأساسية لحلقة if-else بسيطة

لنفترض وجود هذه الكتل الأساسية الأربع ( A, B, C, D) كما هو موضح في الشكل، والتي تُمثل حلقة if-else بسيطة . تُخزن هذه الكتل بشكل متجاور في ABCDالذاكرة. إذا Dكان من المتوقع عدم تنفيذ الفرع، يمكن لوحدة الجلب جلب الكتل الأساسية A, B، Cالمُخزنة بشكل متجاور. أما إذا Dكان من المتوقع تنفيذ الفرع ، فيجب على وحدة الجلب جلب A, B، Dالمُخزنة بشكل غير متجاور. وبالتالي، سيكون جلب هذه الكتل غير المتجاورة في دورة واحدة أمرًا بالغ الصعوبة. لذا، في مثل هذه الحالات، تُساعد ذاكرة التتبع المُخبأة المعالج.

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

بنية التتبع

التتبع، أو ما يُسمى أيضًا بتسلسل التعليمات الديناميكي، هو مدخل في ذاكرة التتبع المؤقتة. يتميز التتبع بأقصى عدد من التعليمات وأقصى عدد من الكتل الأساسية . يمكن أن يبدأ التتبع من أي تعليمة ديناميكية. قد تشترك عدة تتبعات في نفس تعليمة البداية، أي نفس عداد البرنامج (PC)، ولكن بتعليمات من كتل أساسية مختلفة وفقًا لنتائج التفرع. في الشكل أعلاه، يُعد كل من ABC وABD تتبعين صحيحين. يبدآن من نفس عداد البرنامج (عنوان A) ويختلفان في الكتل الأساسية وفقًا لتوقع D.

عادةً ما تنتهي عمليات التتبع عند حدوث أحد الأمور التالية:

  1. تم ملء سجل التتبع بالحد الأقصى المسموح به من التعليمات
  2. يحتوي برنامج Trace على الحد الأقصى المسموح به من الكتل الأساسية
  3. تعليمات الإرجاع
  4. الفروع غير المباشرة
  5. استدعاءات النظام

معلومات التحكم في التتبع

ستحتوي كل عملية تتبع على المعلومات التالية:

  • بدء تشغيل عداد البرنامج - عداد البرنامج للتعليمة الأولى في التتبع
  • علامة التفرع - ( الحد الأقصى للكتل الأساسية - 1 ) تنبؤات التفرع
  • قناع التفرع - عدد التفرعات في التتبع وما إذا كان التتبع ينتهي بفرع أم لا
  • تتبع مسار التنفيذ - انتقل إلى عداد البرنامج التالي إذا لم يتم تنفيذ التعليمات الأخيرة، أو إذا لم يكن هناك تفرع.
  • هدف التتبع - عنوان الهدف الذي تم تنفيذه في الفرع الأخير

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

فيما يلي العوامل التي يجب مراعاتها عند تصميم ذاكرة التخزين المؤقت للتتبع.

  • سياسات اختيار التتبع - الحد الأقصى لعدد التعليمات والحد الأقصى للكتل الأساسية في التتبع
  • الترابطية - عدد الطرق التي يمكن أن تحتوي بها ذاكرة التخزين المؤقت
  • طريقة فهرسة ذاكرة التخزين المؤقت - الربط أو XOR مع بتات عداد البرنامج
  • خاصية ترابط المسارات - يمكن ربط المسارات التي لها نفس عداد البرنامج الابتدائي ولكن بكتل أساسية مختلفة بمجموعات مختلفة
  • خيارات ملء ذاكرة التخزين المؤقت للتتبع -
    1. بعد مرحلة فك التشفير (تخميني)
    2. بعد مرحلة التقاعد

لا تقع ذاكرة التتبع المؤقتة على المسار الحرج لجلب التعليمات [ 4 ]

منطق النجاح/الفشل

تُخزَّن مسارات التتبع في ذاكرة التخزين المؤقت للتتبع بناءً على عداد البرنامج (PC) للتعليمات الأولى في المسار ومجموعة من تنبؤات التفرع. يتيح ذلك تخزين مسارات تتبع مختلفة تبدأ من نفس العنوان، حيث يُمثل كل مسار نتيجة تفرع مختلفة. تُساعد هذه الطريقة في الوسم على توفير ترابط المسارات لذاكرة التخزين المؤقت للتتبع. من الطرق الأخرى استخدام عداد البرنامج (PC) البادئ فقط كعلامة في ذاكرة التخزين المؤقت للتتبع. في مرحلة جلب التعليمات من خط الأنابيب ، يتم فحص عداد البرنامج (PC) الحالي مع مجموعة من تنبؤات التفرع في ذاكرة التخزين المؤقت للتتبع بحثًا عن تطابق . في حال التطابق، يتم تزويد وحدة الجلب بمسار تتبع لا يتطلب الوصول إلى ذاكرة التخزين المؤقت العادية أو الذاكرة الرئيسية لهذه التعليمات. تستمر ذاكرة التخزين المؤقت للتتبع في تزويد وحدة الجلب حتى ينتهي مسار التتبع أو حتى يحدث خطأ في التنبؤ في خط الأنابيب. في حال عدم التطابق، يبدأ إنشاء مسار تتبع جديد.

تُخزّن ذاكرة التخزين المؤقت لتتبع التنفيذ في معالج بنتيوم 4 العمليات الدقيقة الناتجة عن فك تشفير تعليمات x86 ، مما يوفر أيضًا وظيفة ذاكرة التخزين المؤقت للعمليات الدقيقة. وبفضل ذلك، لا يلزم فك تشفير التعليمات إلى عمليات دقيقة مرة أخرى عند الحاجة إليها. [ 5 ]

العيوب

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

  1. تخزين التعليمات الزائدة بين ذاكرة التتبع وذاكرة التعليمات، وكذلك داخل ذاكرة التتبع نفسها. [ 6 ]
  2. عدم كفاءة الطاقة وتعقيد الأجهزة [ 4 ]

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

أدمجت إنتل ذاكرة التخزين المؤقت لتتبع التنفيذ ضمن ذاكرة التخزين المؤقت من المستوى الأول (L1) لوحدات المعالجة المركزية NetBurst . [ 7 ] [ 8 ] تخزن هذه الذاكرة العمليات الدقيقة المُفكَّكة ، بحيث عند تنفيذ تعليمة جديدة، بدلاً من جلب التعليمة وفك تشفيرها مرة أخرى، تصل وحدة المعالجة المركزية مباشرةً إلى العمليات الدقيقة المُفكَّكة من ذاكرة التخزين المؤقت للتتبع، مما يوفر وقتًا كبيرًا. علاوة على ذلك، تُخزَّن العمليات الدقيقة مؤقتًا في مسار تنفيذها المتوقع، مما يعني أنه عند جلب التعليمات بواسطة وحدة المعالجة المركزية من ذاكرة التخزين المؤقت، تكون موجودة بالفعل بالترتيب الصحيح للتنفيذ. لاحقًا، قدمت إنتل مفهومًا مشابهًا ولكن أبسط مع معالجات Sandy Bridge يُسمى ذاكرة التخزين المؤقت للعمليات الدقيقة (UOP cache).

انظر أيضاً

مراجع

  1. 1 2 روتنبرغ، إريك؛ بينيت، ستيف؛ سميث، جيمس إي؛ روتنبرغ، إريك (1996-01-01). "ذاكرة التتبع: نهج منخفض زمن الوصول لجلب التعليمات عالي النطاق الترددي" . في وقائع الندوة الدولية التاسعة والعشرين حول الهندسة المعمارية الدقيقة : 24-34 .
  2. إريك روتنبرغ، كوين جاكوبسون، ياناكيس سازيدس، وجيمس إي. سميث. معالجات التتبع . وقائع الندوة الدولية الثلاثين لمعهد مهندسي الكهرباء والإلكترونيات/رابطة مكائن ​​الحوسبة حول الهندسة المعمارية الدقيقة (MICRO-30) ، الصفحات 138-148، ديسمبر 1997
  3. بيليغ، ألكسندر؛ فايزر، أوري (10 يناير 1995)، ذاكرة تخزين مؤقتة لتعليمات التدفق الديناميكي مُنظمة حول مقاطع التتبع بشكل مستقل عن خط العنوان الظاهري ، تم استرجاعها في 18 أكتوبر 2016
  4. 1 2 ليون جو؛ ديبتي موتياني (أكتوبر 2003). “تتبع ذاكرة التخزين المؤقت” (PDF). تم الاسترجاع 2013/10/06.
  5. أغنر فوغ (19 فبراير 2014). "البنية الدقيقة لوحدات المعالجة المركزية من إنتل، وإيه إم دي، وفيا: دليل تحسين لمبرمجي لغة التجميع ومصممي المترجمات" (ملف PDF). agner.org . تاريخ الاطلاع: 21 مارس 2014.
  6. كو، ميشيل. "ذاكرة التتبع" . www.cs.virginia.edu . تم الاطلاع عليه بتاريخ 21-10-2016 .
  7. كارمين، دوغ (ربيع 2002). "معالج إنتل® بنتيوم® 4" (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 19 أبريل 2018.
  8. "مختبرات إكس-بت - النسخة المطبوعة" . www.xbitlabs.com . مؤرشف من الأصل بتاريخ 6 مارس 2016. تم الاطلاع عليه بتاريخ 12 يناير 2022 .