يرجى مراجعة هذه المقالة وإزالة وسم المقالات غير المراجعة، ووسمها بوسوم الصيانة المناسبة.

تنفيذ تخميني

من أرابيكا، الموسوعة الحرة

هذه هي النسخة الحالية من هذه الصفحة، وقام بتعديلها عبود السكاف (نقاش | مساهمات) في 07:07، 6 أبريل 2023 (بوت:إضافة بوابة (بوابة:تقانة المعلومات)). العنوان الحالي (URL) هو وصلة دائمة لهذه النسخة.

(فرق) → نسخة أقدم | نسخة حالية (فرق) | نسخة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

ا هو أسلوب تحسين حيث يقوم نظام الكمبيوتر ببعض المهام التي قد لا تكون مطلوبة. يتم العمل قبل معرفة الحاجة إليه فعلا ، وذلك لتلافي التأخير الذي قد يترتب على القيام بالعمل بعد معرفة الحاجة إليه. إذا اتضح أن العمل لم يكن مطلوبًا بعد كل شيء ، فسيتم إرجاع معظم التغييرات التي أجراها العمل ويتم تجاهل النتائج.

الهدف هو توفير المزيد من التزامن في حالة توفر موارد إضافية. يتم استخدام هذا النهج في مجموعة متنوعة من المجالات ، بما في ذلك التنبؤ بالفروع في المعالجات الموصلة بالأنابيب ، والتنبؤ بالقيمة لاستغلال مكان القيمة ، [1] الجلب المسبق للذاكرة والملفات ، والتحكم في التزامن في أنظمة قواعد البيانات . [2] [3]

تعد عملية تعدد مؤشرات الترابط المضاربة حالة خاصة للتنفيذ التخميني.

نظرة عامة

تستخدم المعالجات الدقيقة الحديثة الموصلة بالأنابيب التنفيذ التخميني لتقليل تكلفة تعليمات الفرع الشرطي باستخدام المخططات التي تتنبأ بمسار تنفيذ البرنامج استنادا إلى تاريخ عمليات تنفيذ الفروع. [3] من أجل تحسين الأداء والاستفادة من موارد الكمبيوتر ، يمكن جدولة التعليمات في وقت لم يتم تحديد أنه يجب تنفيذ التعليمات قبل أي فرع . [4]

المتغيرات

كان الحساب التخميني مفهوما سابقًا ذا صلة. [5]

تنفيذ حريص

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

التنفيذ التنبئي

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

المفاهيم ذات الصلة

إعدام كسول

التنفيذ الكسول هو عكس التنفيذ المتهور ولا ينطوي على تكهنات. يعد دمج التنفيذ التخميني في تطبيقات لغة برمجة هاسكل ، وهي لغة كسولة ، موضوعًا بحثيًا حاليًا. تم تصميم Eager Haskell ، وهو نوع مختلف من اللغة ، حول فكرة التنفيذ التأملي. جعلت أطروحة الدكتوراه لعام 2003 شركة GHC تدعم نوعًا من التنفيذ التخميني مع آلية إجهاض للتراجع في حالة وجود خيار سيء يسمى التنفيذ المتفائل . [8] كان يعتبر معقدًا للغاية. [9]

الثغرات الأمنية

بدءًا من عام 2017 ، تم العثور على سلسلة من الثغرات الأمنية في عمليات التنفيذ التخميني على بنيات المعالجات الشائعة والتي مكنت بشكل فعال من رفع الامتيازات .

وتشمل هذه:

  • شبح
  • الانهيار
  • المفسد
  • ينذر
  • أخذ عينات البيانات المعمارية الدقيقة
  • توقع الفرع
  • تنفيذ خارج النظام
  • تيار المروحة (علوم الكمبيوتر)
  • multithreading المضاربة
  • خطأ في أمان الأجهزة
  • نقاط الضعف في وحدة المعالجة المركزية للتنفيذ العابر

المراجع

  1. ^ أ ب "A Survey of Value Prediction Techniques for Leveraging Value Locality", S. Mittal, Concurrency and Computation, 2017 نسخة محفوظة 22 نوفمبر 2020 على موقع واي باك مشين.
  2. ^ Lazy and Speculative Execution بتلر لامبسون معهد أبحاث مايكروسوفت OPODIS, Bordeaux, France 12 December 2006 نسخة محفوظة 4 مارس 2016 على موقع واي باك مشين.
  3. ^ أ ب International Business Machines Corporation. Research Division؛ Prabhakar Raghavan؛ Hadas Schachnai؛ Mira Yaniv (1998). Dynamic schemes for speculative execution of code. IBM. مؤرشف من الأصل في 2020-11-22. اطلع عليه بتاريخ 2011-01-18. {{استشهاد بكتاب}}: |مؤلف1= باسم عام (مساعدة)
  4. ^ Bernd Krieg-Brückner (1992). ESOP '92: 4th European Symposium on Programming, Rennes, France, February 26-28, 1992: proceedings. Springer. ص. 56–57. ISBN:978-3-540-55253-6. مؤرشف من الأصل في 2020-11-22. اطلع عليه بتاريخ 2011-01-18.
  5. ^ Randy B. Osborne (21 مارس 1990). "Speculative Computation in Multilisp". Parallel Lisp: Languages and Systems (PS). Lecture Notes in Computer Science. ديجيتال إكوبمينت. ج. 441. ص. 103–137. DOI:10.1007/BFb0024152. ISBN:3-540-52782-6. مؤرشف من الأصل في 2017-02-07. اطلع عليه بتاريخ 2018-01-26.
  6. ^ Jurij Šilc؛ Borut Robič؛ Theo Ungerer (1999). Processor architecture: from dataflow to superscalar and beyond. Springer. ص. 148–150. ISBN:978-3-540-64798-0. اطلع عليه بتاريخ 2011-01-21.
  7. ^ Mark D.، Hill؛ Norman P.، Jouppi؛ Gourindar S.، Sohi (2000). Readings in Computer Architecture. Morgan Kaufman. ISBN:9781558605398. مؤرشف من الأصل في 2020-11-22. اطلع عليه بتاريخ 2018-01-05.
  8. ^ Jones، Simon Peyton؛ Ennals، Robert (1 أغسطس 2003). "Optimistic Evaluation: a fast evaluation strategy for non-strict programs". مؤرشف من الأصل في 2020-11-22. اطلع عليه بتاريخ 2019-05-15. {{استشهاد بدورية محكمة}}: الاستشهاد بدورية محكمة يطلب |دورية محكمة= (مساعدة) والوسيط غير المعروف |بواسطة= تم تجاهله يقترح استخدام |via= (مساعدة)
  9. ^ "[Haskell] Optimistic Evaluation?". مؤرشف من الأصل في 2020-11-22. اطلع عليه بتاريخ 2020-11-22.