التنبؤ بالاعتماد على الذاكرة
يُعدّ التنبؤ بتبعية الذاكرة تقنيةً تستخدمها المعالجات الدقيقة عالية الأداء التي تُنفّذ عمليات الوصول إلى الذاكرة (التحميل والتخزين) خارج ترتيب البرنامج، وذلك للتنبؤ بالتبعيات الحقيقية بين عمليات التحميل والتخزين أثناء تنفيذ التعليمات . وبناءً على معلومات التبعية المتوقعة، يُمكن للمعالج حينها أن يُقرر تنفيذ بعض عمليات التحميل والتخزين بشكل استباقي خارج الترتيب، مع منع تنفيذ عمليات أخرى خارج الترتيب (الحفاظ على ترتيبها). وفي مراحل لاحقة من مسار المعالجة ، تُستخدم تقنيات إزالة الغموض عن الذاكرة لتحديد ما إذا كانت عمليات التحميل والتخزين قد نُفّذت بشكل صحيح، وفي حال عدم تنفيذها، لاستعادة النظام.
باستخدام مُتنبئ تبعية الذاكرة للحفاظ على ترتيب معظم عمليات التحميل والتخزين المترابطة، يستفيد المعالج من مزايا التنفيذ السريع لعمليات التحميل والتخزين خارج الترتيب، مع تجنب العديد من انتهاكات تبعية الذاكرة التي تحدث عند تنفيذ عمليات التحميل والتخزين بشكل غير صحيح. يُحسّن هذا الأداء لأنه يُقلل عدد عمليات تفريغ خط الأنابيب اللازمة للتعافي من هذه الانتهاكات. راجع مقالة توضيح الذاكرة لمزيد من المعلومات حول تبعيات الذاكرة، وانتهاكات تبعية الذاكرة، والتعافي منها.
بشكل عام، يتنبأ التنبؤ بتبعية الذاكرة بما إذا كانت عمليتان في الذاكرة مترابطتين، أي ما إذا كانتا تتفاعلان من خلال الوصول إلى نفس موقع الذاكرة. بالإضافة إلى استخدام التنبؤ بتبعية الذاكرة من التخزين إلى التحميل (RAW أو true) لجدولة عمليات التحميل والتخزين خارج الترتيب، فقد تم اقتراح تطبيقات أخرى للتنبؤ بتبعية الذاكرة. انظر على سبيل المثال [ 1 ] .
يُعدّ التنبؤ بتبعية الذاكرة تحسينًا قائمًا على التكهن بتبعية الذاكرة . تشير دلالات التنفيذ التسلسلي إلى أن عمليات التخزين والتحميل تُنفّذ بالترتيب الذي يحدده البرنامج. مع ذلك، وكما هو الحال مع التنفيذ خارج الترتيب للتعليمات الأخرى، قد يكون من الممكن تنفيذ عمليتين في الذاكرة بترتيب مختلف عن الترتيب الذي يشير إليه البرنامج. هذا ممكن عندما تكون العمليتان مستقلتين. في التكهن بتبعية الذاكرة، يُسمح بتنفيذ عملية تحميل قبل عملية تخزين تسبقها. ينجح التكهن عندما تكون عملية التحميل مستقلة عن عملية التخزين، أي عندما تصل العمليتان إلى مواقع ذاكرة مختلفة. يفشل التكهن عندما تكون عملية التحميل معتمدة على عملية التخزين، أي عندما تتداخل العمليتان في الذاكرة. في التصاميم الحديثة الأولى للتنفيذ خارج الترتيب، لم يُستخدم التكهن بتبعية الذاكرة نظرًا لمحدودية فوائده. مع ازدياد نطاق التنفيذ خارج الترتيب ليشمل عشرات التعليمات، استُخدم التكهن البسيط بتبعية الذاكرة. في التكهن البسيط بتبعية الذاكرة ، [ 2 ] يُسمح لعملية التحميل بتجاوز أي عملية تخزين سابقة. كما هو الحال مع أي نوع من أنواع التكهنات، من المهم موازنة فوائد التكهن الصحيح مقابل عواقب التكهن الخاطئ. ومع ازدياد نطاق تنفيذ التعليمات خارج الترتيب ليصل إلى عشرات التعليمات، تتضاءل فوائد الأداء الناتجة عن التكهن البسيط. وللحفاظ على فوائد التكهن القوي بالاعتماد على الذاكرة مع تجنب تكاليف التكهن الخاطئ، تم اقتراح العديد من المؤشرات.
يُؤخّر التنبؤ الانتقائي بتبعيات الذاكرة [ 2 ] [ 3 ] عمليات تحميل مُحددة حتى يتم التأكد من عدم حدوث أي انتهاك. ولا يتنبأ هذا الأسلوب بالتبعيات بشكل صريح. قد يُؤخّر هذا الأسلوب عمليات التحميل لفترة أطول من اللازم، مما يُؤدي إلى أداء دون المستوى الأمثل. في الواقع، في بعض الحالات، يكون أداؤه أسوأ من التنبؤ الساذج بجميع عمليات التحميل في أقرب وقت ممكن. وذلك لأنه غالبًا ما يكون التنبؤ الخاطئ والتعافي منه أسرع من انتظار تنفيذ جميع عمليات التخزين السابقة. طُوّر التنبؤ الدقيق بتبعيات الذاكرة في جامعة ويسكونسن-ماديسون. تحديدًا، يُؤخّر أسلوب التخمين الديناميكي والتزامن [ 2 ] [ 3 ] عمليات التحميل فقط بالقدر اللازم من خلال التنبؤ بعملية التخزين الدقيقة التي يجب أن تنتظرها عملية التحميل. يتنبأ هذا الأسلوب بالتبعيات الدقيقة (زوج التخزين والتحميل). يُجمّع مُتنبئ المرادفات [ 1 ] جميع التبعيات التي تشترك في تعليمة تحميل أو تخزين مشتركة. يُمثّل مُتنبئ مجموعات التخزين [ 4 ] التبعيات المُحتملة المُتعددة بكفاءة من خلال تجميع جميع عمليات التخزين المُمكنة التي قد تعتمد عليها عملية التحميل. يعامل مُتنبئ حاجز التخزين [ 5 ] بعض تعليمات التخزين كحواجز. أي أنه لا يُسمح لأي عمليات تحميل أو تخزين لاحقة بتجاوز عملية التخزين المحددة. لا يتنبأ مُتنبئ حاجز التخزين بالتبعيات بشكل صريح. قد يؤدي هذا المُتنبئ إلى تأخير غير ضروري لعمليات التحميل اللاحقة، حتى وإن كانت مستقلة. للتنبؤ بتبعيات الذاكرة تطبيقات أخرى تتجاوز جدولة عمليات التحميل والتخزين. على سبيل المثال، يستخدم كل من إخفاء الذاكرة التخميني [ 1 ] وتجاوز الذاكرة التخميني [ 1 ] التنبؤ بتبعيات الذاكرة لتبسيط عملية نقل القيم عبر الذاكرة.
تشبيه بتوقع التفرع
يُشابه التنبؤ باعتماد الذاكرة لعمليات التحميل والتخزين التنبؤ بالتفرع في تعليمات التفرع الشرطي . في التنبؤ بالتفرع، يتنبأ المتنبئ بالاتجاه الذي سيسلكه التفرع قبل معرفته. عندئذٍ، يستطيع المعالج جلب التعليمات وتنفيذها بشكل استباقي على أحد مسارات التفرع. لاحقًا، عند تنفيذ تعليمة التفرع، يُمكن تحديد ما إذا كان التنبؤ بها صحيحًا. إذا لم يكن كذلك، فهذا يُعد تنبؤًا خاطئًا بالتفرع ، ويتطلب الأمر مسح خط الأنابيب للتخلص من التعليمات التي تم جلبها وتنفيذها بشكل استباقي.
يمكن اعتبار التنبؤ بالتفرع عملية من خطوتين. أولاً، يحدد المتنبئ اتجاه التفرع (سواء تم تنفيذه أم لا). وهذا قرار ثنائي. ثم يحدد المتنبئ عنوان الهدف الفعلي. وبالمثل، يمكن اعتبار التنبؤ بتبعية الذاكرة عملية من خطوتين. أولاً، يحدد المتنبئ ما إذا كانت هناك تبعية أم لا. ثم يحدد نوع هذه التبعية.
انظر أيضاً
مراجع
- 1 2 3 4 موشوفوس، أ.؛ سوهي، ج.س. (1997). "تبسيط اتصال الذاكرة بين العمليات عبر التنبؤ بتبعية البيانات". وقائع الندوة الدولية السنوية الثلاثين حول الهندسة المعمارية الدقيقة . MICRO '97. ص 235-245 . doi : 10.1109/MICRO.1997.645814 .
- 1 2 3 موشوفوس، أندرياس؛ بريتش، سكوت إي؛ فيجاي كومار، تي إن؛ سوهي، جوريندار إس. (1997). "التكهن الديناميكي ومزامنة تبعيات البيانات". وقائع الندوة الدولية السنوية الرابعة والعشرين حول هندسة الحاسوب . ISCA '97. ص 181-193 . doi : 10.1145/264107.264189 . كما نُشر كتقرير فني، قسم علوم الحاسوب، جامعة ويسكونسن-ماديسون، مارس 1996.
- 1 2 التنبؤ بالاعتماد على الذاكرة، موشوفوس، أطروحة دكتوراه، قسم علوم الحاسوب، جامعة ويسكونسن-ماديسون، ديسمبر 1998.
- ↑ كريسوس، جي زد؛ إيمر، جي إس (1998). "التنبؤ بالاعتماد على الذاكرة باستخدام مجموعات التخزين". وقائع الندوة الدولية السنوية الخامسة والعشرين حول هندسة الحاسوب . ISCA '98. ص 142-153 . doi : 10.1109/ISCA.1998.694770 .
- ↑ جهاز للتحكم الديناميكي في تنفيذ تعليمات التحميل والتخزين خارج الترتيب في معالج قادر على إرسال وإصدار وتنفيذ تعليمات متعددة في دورة معالج واحدة، هيسون، لوبلانك وسيافاليا، آي بي إم، براءة اختراع أمريكية رقم 5,615,350، مارس 1997.
- هندسة الحاسوب
