التنفيذ التخميني
التنفيذ التخميني هو أسلوب تحسين يقوم فيه نظام الحاسوب بتنفيذ مهمة قد لا تكون ضرورية. يُنفذ العمل قبل التأكد من الحاجة إليه، وذلك لتجنب التأخير الذي قد ينتج عن تنفيذه بعد التأكد من الحاجة إليه. إذا تبين لاحقًا أن العمل غير ضروري، تُستعاد معظم التغييرات التي أُجريت عليه وتُتجاهل النتائج.
الهدف هو توفير المزيد من التزامن في حال توفر موارد إضافية . يُستخدم هذا النهج في مجالات متنوعة، منها التنبؤ بالتفرعات في المعالجات ذات البنية المتوازية ، والتنبؤ بالقيم لاستغلال موضعية القيم، وجلب البيانات مسبقًا من الذاكرة والملفات ، والتحكم التفاؤلي في التزامن في أنظمة قواعد البيانات . [ 1 ] [ 2 ] [ 3 ]
تعد المعالجة المتعددة التخمينية حالة خاصة من التنفيذ التخميني.
ملخص
تستخدم المعالجات الدقيقة الحديثة ذات البنية الأنبوبية التنفيذ التخميني لتقليل تكلفة تعليمات التفرع الشرطي، وذلك باستخدام آليات تتنبأ بمسار تنفيذ البرنامج بناءً على سجل عمليات التفرع. [ 2 ] ولتحسين الأداء واستغلال موارد الحاسوب، يمكن جدولة التعليمات في وقت لم يُحدد بعد ما إذا كانت ستُنفذ أم لا، أي قبل التفرع . [ 4 ]
المتغيرات
كان الحساب التخميني مفهومًا سابقًا ذا صلة. [ 5 ]
تنفيذ متلهف
التنفيذ الفوري هو شكل من أشكال التنفيذ التخميني حيث يتم تنفيذ كلا جانبي الفرع الشرطي؛ ومع ذلك، لا تُعتمد النتائج إلا إذا كان الشرط صحيحًا. في ظل موارد غير محدودة، من الناحية النظرية، يوفر التنفيذ الفوري (المعروف أيضًا باسم تنفيذ أوراكل ) نفس أداء التنبؤ المثالي بالفروع . أما في ظل موارد محدودة، فينبغي استخدام التنفيذ الفوري بحذر، نظرًا لأن عدد الموارد المطلوبة يزداد بشكل كبير مع كل مستوى من مستويات الفروع التي يتم تنفيذها بشكل فوري. [ 6 ]
التنفيذ التنبؤي
التنفيذ التنبؤي هو شكل من أشكال التنفيذ التخميني، حيث يتم التنبؤ بنتيجة معينة، ويستمر التنفيذ على طول المسار المتوقع حتى معرفة النتيجة الفعلية. إذا كان التنبؤ صحيحًا، يُسمح للتنفيذ المتوقع بالاستمرار؛ أما إذا كان التنبؤ خاطئًا، فيجب إعادة التنفيذ. تشمل الأشكال الشائعة لهذا النوع من التنفيذ مُتنبئات التفرع وتنبؤات تبعية الذاكرة . ويُشار أحيانًا إلى شكل مُعمم منه باسم تنبؤ القيمة. [ 7 ]
اركض للأمام
في علوم الحاسوب وتصميم المعالجات ، تُعدّ تقنية "التنفيذ المسبق " (Runahead) أسلوبًا يسمح لمعالج الحاسوب بمعالجة التعليمات مسبقًا بشكل استباقي أثناء دورات عدم وجود البيانات في الذاكرة المخبئية . تُستخدم التعليمات المُعالجة مسبقًا لتوليد جلب مسبق للتعليمات وتدفقات البيانات عن طريق تنفيذ التعليمات التي تؤدي إلى عدم وجود البيانات في الذاكرة المخبئية (والتي تُسمى عادةً عمليات التحميل ذات زمن الوصول الطويل ) قبل حدوثها في الوضع الطبيعي، مما يُخفي زمن وصول الذاكرة بشكل فعال. في تقنية "التنفيذ المسبق"، يستخدم المعالج موارد التنفيذ الخاملة لحساب عناوين التعليمات وتدفقات البيانات باستخدام المعلومات المتاحة بشكل مستقل عن عدم وجود البيانات في الذاكرة المخبئية. بمجرد أن يحل المعالج مشكلة عدم وجود البيانات في الذاكرة المخبئية الأولية، يتم تجاهل جميع نتائج "التنفيذ المسبق"، ويستأنف المعالج التنفيذ بشكل طبيعي. يتمثل الاستخدام الأساسي لهذه التقنية في التخفيف من آثار " جدار الذاكرة" . يمكن أيضًا استخدام هذه التقنية لأغراض أخرى، مثل الحساب المسبق لنتائج التفرعات لتحقيق تنبؤ دقيق للغاية بالتفرعات . [ 8 ]
مفاهيم ذات صلة
تنفيذ متكاسل
التنفيذ الكسول هو عكس التنفيذ الفوري، ولا يتضمن أي تكهنات. يُعدّ دمج التنفيذ التخميني في تطبيقات لغة البرمجة هاسكل ، وهي لغة كسولة، موضوعًا بحثيًا راهنًا. صُممت لغة إيجر هاسكل ، وهي إحدى مشتقات اللغة، حول فكرة التنفيذ التخميني. في أطروحة دكتوراه نُشرت عام ٢٠٠٣، طُوّرت لغة GHC لدعم نوع من التنفيذ التخميني مع آلية إجهاض للتراجع في حالة اختيار خاطئ، تُسمى التنفيذ التفاؤلي . [ ٩ ] وقد اعتُبرت هذه الآلية معقدة للغاية. [ ١٠ ]
الثغرات الأمنية
ابتداءً من عام 2017، تم اكتشاف سلسلة من الثغرات الأمنية في تطبيقات التنفيذ التخميني على بنى المعالجات الشائعة والتي مكنت بشكل فعال من رفع الامتيازات .
وتشمل هذه:
انظر أيضاً
مراجع
- ↑ لامبسون، بتلر (2006). "التنفيذ الكسول والتخميني في أنظمة الحاسوب" . في: مومن زاده، مريم؛ شفارتسمان، ألكسندر أ. (محرران). مبادئ الأنظمة الموزعة . المؤتمر الدولي العاشر حول مبادئ الأنظمة الموزعة. سلسلة محاضرات في علوم الحاسوب. المجلد 4305. بوردو، فرنسا: سبرينغر. الصفحات 1-2 . doi : 10.1007/11945529_1 . ISBN 978-3-540-49991-6.
- 1 2 راغافان، برابهاكار؛ شاتشناي، هاداس؛ يانيف، ميرا (1998). "مخططات ديناميكية للتنفيذ التخميني للتعليمات البرمجية". وقائع الندوة الدولية السادسة حول نمذجة وتحليل ومحاكاة أنظمة الحاسوب والاتصالات . معهد مهندسي الكهرباء والإلكترونيات. ص 309-314 . doi : 10.1109/MASCOT.1998.693711 .
- ↑ كونغ، إتش تي ؛ جون تي. روبنسون (يونيو 1981). "حول الأساليب التفاؤلية للتحكم في التزامن" (ملف PDF) . مجلة ACM لأنظمة قواعد البيانات ، المجلد 6. مؤرشف (ملف PDF) من الأصل في 31 أغسطس 2019.
- ^ بيرند كريج بروكنر (1992). ESOP '92: الندوة الأوروبية الرابعة حول البرمجة، رين، فرنسا، 26-28 فبراير 1992: الإجراءات . سبرينغر. ص 56 – 57. ISBN 978-3-540-55253-6تم الاطلاع عليه بتاريخ 18 يناير 2011 .
- ↑ راندي ب. أوزبورن (21 مارس 1990). "الحوسبة التخمينية في لغة مولتي ليسب" . لغة ليسب المتوازية: اللغات والأنظمة ( PS ). سلسلة محاضرات في علوم الحاسوب. المجلد 441. مختبر أبحاث شركة ديجيتال إكويبمنت . الصفحات 103-137 . doi : 10.1007/BFb0024152 . ISBN 3-540-52782-6أُرشف من المصدر الأصلي بتاريخ 7 فبراير 2017. تم الاطلاع عليه بتاريخ 26 يناير 2018 .
- ^ جوريج شيلك. بوروت روبيتش؛ ثيو أنجيرر (1999). بنية المعالج: من تدفق البيانات إلى المستوى الفائق وما بعده سبرينغر. ص 148 – 150. رقم ISBN 978-3-540-64798-0تم الاطلاع عليه بتاريخ 21 يناير 2011 .
- ↑ مارك د. هيل؛ نورمان ب. جوبي ؛ جوريندار س. سوهي (2000). قراءات في هندسة الحاسوب . مورغان كوفمان. ISBN 9781558605398تم الاطلاع عليه بتاريخ 5 يناير 2018 .
- ↑ برويت، ستيفن؛ بات، ييل (أكتوبر 2021). "التنبؤ المسبق بالفروع: بديل للتنبؤ بالفروع التي يستحيل التنبؤ بها" . MICRO-54: الندوة الدولية السنوية الرابعة والخمسون لمعهد مهندسي الكهرباء والإلكترونيات/رابطة آلات الحوسبة حول الهندسة المعمارية الدقيقة . MICRO '21. نيويورك، نيويورك، الولايات المتحدة الأمريكية: رابطة آلات الحوسبة. الصفحات 804-815 . doi : 10.1145/3466752.3480053 . ISBN 978-1-4503-8557-2. S2CID 239011545 .
- ↑ جونز، سيمون بيتون؛ إينالز، روبرت (1 أغسطس 2003). "التقييم التفاؤلي: استراتيجية تقييم سريعة للبرامج غير الصارمة" . تم الاطلاع عليه بتاريخ 15 مايو 2019 – عبر www.microsoft.com.
{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal= - ↑ " التقييم التفاؤلي [ هاسكل ] ؟" . 31 أغسطس 2006.
- التنفيذ التخميني
- معالجة التعليمات
- التزامن (علوم الحاسوب)
