تقنيتي Speculative Execution و Branch Prediction متمتات لبعض وتستخدم حتى من أيام معالجات MMX لكن أصبحت الآن أكثر ذكاءاً وتقدما
حتى يتم تنفيذ تعليمة داخل المعالج (بعد جلبها من الذاكرة الداخلية) تتم لها عملية إعادة تشفير DECODING لتحويلها إلى لغة الآلة ثم تنفيذ التعليمة ، تتم هاتين العمليتين في خط المعالجة pipeline processing ، في المعالجات الحديثة يتم إعادة تشفير التعليمة ويتم تنفيذ العملية السابقة في نفس الوقت حتى يمكن اختصار فترة المعالجة لسيل من التعليمات ، لذا خط المعالجة سيكون منشغل بالكامل مثل خط الإنتاج مثلا خط الانتاج لتعبئة صناديق البسكوت جزء يقوم بتكوين الويفر وجزء يقوم بتغليف القطعة وجزء يقوم بالتغليف الكلي للمنتج في مجموعات ، نعود ونقول إنه داخل خط المعالجة يتم تنفيذ العملية وإعادة تشفير للعملية السابقة في نفس الوقت ، لكن هذا غير متاح إذا كانت التعليمة تؤدي إلى تفريع المعالجة (branch instruction) إلى جزء من البرنامج المراد تنفيذه مثل تعليمة if .. then ..else ، في هذه الحالة لابد من إتمام تنفيذ المعالجة حتى يعرف ما هي التعليمة التالية حتى تتم ترجمتها إلى لغة الآلة وهذا إهدار للوقت خاصة إن البرنامج مكون من مئات الأسطر بل م الآلاف ، لذا تأتي تقنية branch prediction حيث تتنبأ وحدة الحساب المنطقي ALU بما ستؤل إليه نتيجة branch instruction قبل تنفيذها وتقول بتنفيذ التعليمة التي يتوقع أن يتم تنفيذها وهذا التنفيذ يسمى speculative execution بمعنى تنفيذ عملية يتوقع أن هي التالية في خط المعالجة قبل إنتهاء تنفيذ تعليمة branch insrtructon فإن كانت هي نفس التعليمة المفترض تنفيذها كان بها وتم إختصار وقت المعالجة وإن لم يكن لابد من إعادة تنفيذ التعليمة المفترض تنفيذها نتيجة تفرع البرنامج ، التنبأ بالتعليمة يتم وفق نتيجة branch instruction في المرات السابقة ، العملية اعقد من كذا بكثير لكن هذه الفكرة العامة لها وسبب هاتين التقنيتين هو وجود branch instructions هذا الذي أخذته وفهمته بالجامعة
أما التقنية الثالثة ، فياليت الإخوان يفيدونا
المفضلات