تنفيذ تخميني
هذه مقالة غير مراجعة.(نوفمبر 2020) |
ا هو أسلوب تحسين حيث يقوم نظام الكمبيوتر ببعض المهام التي قد لا تكون مطلوبة. يتم العمل قبل معرفة الحاجة إليه فعلا ، وذلك لتلافي التأخير الذي قد يترتب على القيام بالعمل بعد معرفة الحاجة إليه. إذا اتضح أن العمل لم يكن مطلوبًا بعد كل شيء ، فسيتم إرجاع معظم التغييرات التي أجراها العمل ويتم تجاهل النتائج.
الهدف هو توفير المزيد من التزامن في حالة توفر موارد إضافية. يتم استخدام هذا النهج في مجموعة متنوعة من المجالات ، بما في ذلك التنبؤ بالفروع في المعالجات الموصلة بالأنابيب ، والتنبؤ بالقيمة لاستغلال مكان القيمة ، [1] الجلب المسبق للذاكرة والملفات ، والتحكم في التزامن في أنظمة قواعد البيانات . [2] [3]
تعد عملية تعدد مؤشرات الترابط المضاربة حالة خاصة للتنفيذ التخميني.
نظرة عامة
[عدل]تستخدم المعالجات الدقيقة الحديثة الموصلة بالأنابيب التنفيذ التخميني لتقليل تكلفة تعليمات الفرع الشرطي باستخدام المخططات التي تتنبأ بمسار تنفيذ البرنامج استنادا إلى تاريخ عمليات تنفيذ الفروع. [3] من أجل تحسين الأداء والاستفادة من موارد الكمبيوتر ، يمكن جدولة التعليمات في وقت لم يتم تحديد أنه يجب تنفيذ التعليمات قبل أي فرع . [4]
المتغيرات
[عدل]كان الحساب التخميني مفهوما سابقًا ذا صلة. [5]
تنفيذ حريص
[عدل]التنفيذ الحريص هو شكل من أشكال التنفيذ التخميني حيث يتم تنفيذ كلا جانبي الفرع الشرطي ؛ ومع ذلك ، يتم الالتزام النتائج فقط إذا كان المسند صحيحًا. باستخدام موارد غير محدودة ، فإن التنفيذ المتلهف (المعروف أيضًا باسم تنفيذ أوراكل ) من شأنه أن يوفر نظريًا نفس أداء تنبؤ الفرع المثالي. مع الموارد المحدودة ، يجب استخدام التنفيذ بحرص ، حيث أن عدد الموارد اللازمة ينمو بشكل كبير مع كل مستوى من مستويات الفرع المنفذ بشغف. [6]
التنفيذ التنبئي
[عدل]التنفيذ التنبئي هو شكل من أشكال التنفيذ التخميني حيث يتم توقع بعض النتائج ويستمر التنفيذ على طول المسار المتوقع حتى يتم معرفة النتيجة الفعلية. إذا كان التنبؤ صحيحًا ، يُسمح بالتنفيذ المتوقع ؛ ومع ذلك ، إذا كان هناك خطأ في التنبؤ ، يجب أن يكون التنفيذ غير مراقب وإعادة تنفيذه. تشمل الأشكال الشائعة لهذا تنبؤات الفروع والتنبؤ بالاعتماد على الذاكرة . يشار أحيانًا إلى النموذج المعمم على أنه توقع القيمة. [1] [7]
المفاهيم ذات الصلة
[عدل]إعدام كسول
[عدل]التنفيذ الكسول هو عكس التنفيذ المتهور ولا ينطوي على تكهنات. يعد دمج التنفيذ التخميني في تطبيقات لغة برمجة هاسكل ، وهي لغة كسولة ، موضوعًا بحثيًا حاليًا. تم تصميم Eager Haskell ، وهو نوع مختلف من اللغة ، حول فكرة التنفيذ التأملي. جعلت أطروحة الدكتوراه لعام 2003 شركة GHC تدعم نوعًا من التنفيذ التخميني مع آلية إجهاض للتراجع في حالة وجود خيار سيء يسمى التنفيذ المتفائل . [8] كان يعتبر معقدًا للغاية. [9]
الثغرات الأمنية
[عدل]بدءًا من عام 2017 ، تم العثور على سلسلة من الثغرات الأمنية في عمليات التنفيذ التخميني على بنيات المعالجات الشائعة والتي مكنت بشكل فعال من رفع الامتيازات .
وتشمل هذه:
- توقع الفرع
- تنفيذ خارج النظام
- تيار المروحة (علوم الكمبيوتر)
- multithreading المضاربة
- خطأ في أمان الأجهزة
- نقاط الضعف في وحدة المعالجة المركزية للتنفيذ العابر
المراجع
[عدل]- ^ ا ب "A Survey of Value Prediction Techniques for Leveraging Value Locality", S. Mittal, Concurrency and Computation, 2017 نسخة محفوظة 22 نوفمبر 2020 على موقع واي باك مشين.
- ^ Lazy and Speculative Execution بتلر لامبسون معهد أبحاث مايكروسوفت OPODIS, Bordeaux, France 12 December 2006 نسخة محفوظة 4 مارس 2016 على موقع واي باك مشين.
- ^ ا ب 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=
باسم عام (مساعدة) - ^ 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.
- ^ 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.
- ^ 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.
- ^ Mark D.، Hill؛ Norman P.، Jouppi؛ Gourindar S.، Sohi (2000). Readings in Computer Architecture. Morgan Kaufman. ISBN:9781558605398. مؤرشف من الأصل في 2020-11-22. اطلع عليه بتاريخ 2018-01-05.
- ^ Jones، Simon Peyton؛ Ennals، Robert (1 أغسطس 2003). "Optimistic Evaluation: a fast evaluation strategy for non-strict programs". مؤرشف من الأصل في 2020-11-22. اطلع عليه بتاريخ 2019-05-15 – عبر www.microsoft.com.
{{استشهاد بدورية محكمة}}
: الاستشهاد بدورية محكمة يطلب|دورية محكمة=
(مساعدة) - ^ "[Haskell] Optimistic Evaluation?". مؤرشف من الأصل في 2020-11-22. اطلع عليه بتاريخ 2020-11-22.