تنفيذ تخميني

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

الهدف هو توفير المزيد من التزامن في حالة توفر موارد إضافية. يتم استخدام هذا النهج في مجموعة متنوعة من المجالات ، بما في ذلك التنبؤ بالفروع في المعالجات الموصلة بالأنابيب ، والتنبؤ بالقيمة لاستغلال مكان القيمة ، [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، مؤرشف من الأصل في 22 نوفمبر 2020، اطلع عليه بتاريخ 18 يناير 2011.
  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، مؤرشف من الأصل في 22 نوفمبر 2020، اطلع عليه بتاريخ 18 يناير 2011.
  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، اطلع عليه بتاريخ 26 يناير 2018.
  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، اطلع عليه بتاريخ 21 يناير 2011.
  7. Mark D., Hill؛ Norman P., Jouppi؛ Gourindar S., Sohi (2000)، Readings in Computer Architecture، Morgan Kaufman، ISBN 9781558605398، مؤرشف من الأصل في 22 نوفمبر 2020، اطلع عليه بتاريخ 05 يناير 2018.
  8. Jones, Simon Peyton؛ Ennals, Robert (01 أغسطس 2003)، "Optimistic Evaluation: a fast evaluation strategy for non-strict programs"، مؤرشف من الأصل في 22 نوفمبر 2020، اطلع عليه بتاريخ 15 مايو 2019. {{استشهاد بدورية محكمة}}: Cite journal requires |journal= (مساعدة)
  9. "[Haskell] Optimistic Evaluation?"، مؤرشف من الأصل في 22 نوفمبر 2020، اطلع عليه بتاريخ 22 نوفمبر 2020.
  • بوابة علم الحاسوب
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.