هازارد (هندسة الحاسوب)
في مجال تصميم وحدات المعالجة المركزية (CPU) ، تُعرف المخاطر بأنها مشاكل في مسار تنفيذ التعليمات في البنى الدقيقة لوحدات المعالجة المركزية ، حيث لا يمكن تنفيذ التعليمات التالية في دورة الساعة التالية، [ 1 ] وقد تؤدي إلى نتائج حسابية غير صحيحة. ثلاثة أنواع شائعة من المخاطر هي: مخاطر البيانات، والمخاطر الهيكلية، ومخاطر التحكم (مخاطر التفرع). [ 2 ]
هناك عدة طرق تستخدم للتعامل مع المخاطر، بما في ذلك توقفات خط الأنابيب / فقاعات خط الأنابيب، وتوجيه المعاملات ، وفي حالة التنفيذ خارج الترتيب ، طريقة لوحة النتائج وخوارزمية توماسولو .
خلفية
تُنفَّذ التعليمات في المعالج ذي البنية الأنبوبية على عدة مراحل، بحيث تتم معالجة عدة تعليمات في أي وقت ضمن مراحل مختلفة من الأنبوب، مثل جلب البيانات وتنفيذها. توجد العديد من البنى الدقيقة المختلفة للأنابيب ، وقد تُنفَّذ التعليمات بترتيب غير متسلسل . ويحدث خطر عند تعارض اثنتين أو أكثر من هذه التعليمات المتزامنة (وربما بترتيب غير متسلسل).
الأنواع
المخاطر الهيكلية
يحدث خطر هيكلي عندما تحتاج تعليمتان (أو أكثر) موجودتان بالفعل في مسار المعالجة إلى نفس المورد. ونتيجة لذلك، يجب تنفيذ التعليمات بالتسلسل بدلاً من التوازي لجزء من مسار المعالجة. ويُشار أحيانًا إلى المخاطر الهيكلية بمخاطر الموارد.
مثال: حالة تكون فيها عدة تعليمات جاهزة للدخول إلى مرحلة التنفيذ، ولكن يوجد وحدة حساب ومنطق واحدة فقط. أحد حلول هذه المشكلة المتعلقة بالموارد هو زيادة الموارد المتاحة، وذلك من خلال وجود منافذ متعددة للذاكرة الرئيسية ووحدات حساب ومنطق متعددة.
التحكم في المخاطر (مخاطر الفروع أو مخاطر التعليمات)
يحدث خطر التحكم عندما تتنبأ منطق التحكم بشكل خاطئ بفرع البرنامج الذي سيتم تنفيذه، مما يؤدي إلى إدخال سلسلة من التعليمات إلى خط المعالجة يتم تجاهلها لاحقًا. ويُطلق مصطلح خطر التفرع أيضًا على خطر التحكم.
خط الأنابيب يغلي
يُعدّ "تأجيل مسار البيانات" ، والذي يُطلق عليه أيضًا " انقطاع مسار البيانات" أو "توقف مسار البيانات" ، أسلوبًا لمنع مخاطر البيانات والبنية والتفرعات. عند جلب التعليمات، تحدد وحدة التحكم المنطقية ما إذا كان من المحتمل حدوث خطر. إذا كان هذا صحيحًا، فإن وحدة التحكم المنطقية تُدخل أوامر " لا عملية " ( NOP ) في مسار البيانات. وبالتالي، قبل تنفيذ التعليمات التالية (التي قد تُسبب الخطر)، تكون التعليمات السابقة قد أُتيحت لها فرصة كافية للانتهاء ومنع حدوث الخطر. إذا كان عدد أوامر "لا عملية" (NOP ) مساويًا لعدد مراحل مسار البيانات، يكون المعالج قد أُفرغ من جميع التعليمات ويمكنه المتابعة دون أي مخاطر. تُسبب جميع أشكال التوقف تأخيرًا قبل أن يتمكن المعالج من استئناف التنفيذ.
يحدث مسح خط الأنابيب عندما تنتقل تعليمة التفرع إلى موقع ذاكرة جديد، مما يُبطل جميع المراحل السابقة في خط الأنابيب. تُمسح هذه المراحل السابقة، مما يسمح لخط الأنابيب بالاستمرار عند التعليمة الجديدة التي يشير إليها التفرع. [ 3 ] [ 4 ]
مخاطر البيانات
توجد عدة حلول وخوارزميات رئيسية تُستخدم لمعالجة مخاطر البيانات:
- قم بإدراج فقاعة خط الأنابيب كلما تمت مواجهة تبعية القراءة بعد الكتابة (RAW)، مما يضمن زيادة زمن الاستجابة، أو
- استخدم التنفيذ خارج الترتيب لتجنب الحاجة إلى فقاعات خط الأنابيب
- استخدم توجيه المعاملات لاستخدام البيانات من المراحل اللاحقة في خط الأنابيب
في حالة التنفيذ خارج الترتيب ، يمكن أن تكون الخوارزمية المستخدمة كالتالي:
- في نظام لوحة النتائج ، لا تكون هناك حاجة إلى فقاعة خط الأنابيب إلا عندما لا تتوفر وحدة وظيفية.
- خوارزمية توماسولو ، التي تستخدم إعادة تسمية السجلات ، مما يسمح بإصدار التعليمات بشكل مستمر
يمكن تفويض مهمة إزالة تبعيات البيانات إلى المترجم، الذي يمكنه ملء عدد مناسب من تعليمات NOP بين التعليمات التابعة لضمان التشغيل الصحيح، أو إعادة ترتيب التعليمات حيثما أمكن ذلك.
توجيه المعاملات
أمثلة
- في الأمثلة التالية، تظهر القيم المحسوبة بخط غامق ، بينما لا تظهر أرقام السجلات كذلك.
على سبيل المثال، لكتابة القيمة 3 في السجل 1 (الذي يحتوي بالفعل على 6)، ثم إضافة 7 إلى السجل 1 وتخزين النتيجة في السجل 2، أي:
i0: R1 = 6 i1: R1 = 3 i2: R2 = R1 + 7 = 10
بعد التنفيذ، يجب أن يحتوي السجل 2 على القيمة 10. مع ذلك، إذا لم يخرج الأمر i1 (كتابة 3 إلى السجل 1) من مسار المعالجة بالكامل قبل بدء تنفيذ الأمر i2، فهذا يعني أن السجل 1 لا يحتوي على القيمة 3 عند قيام الأمر i2 بعملية الجمع. في هذه الحالة، يضيف الأمر i2 القيمة 7 إلى القيمة السابقة للسجل 1 ( 6 )، وبالتالي يحتوي السجل 2 على القيمة 13 بدلاً من ذلك.
i0: R1 = 6 i2: R2 = R1 + 7 = 13 i1: R1 = 3
يحدث هذا الخطأ لأن i2 يقرأ السجل 1 قبل أن يقوم i1 بتثبيت/تخزين نتيجة عملية الكتابة الخاصة به في السجل 1. لذلك عندما يقرأ i2 محتويات السجل 1، لا يزال السجل 1 يحتوي على 6 ، وليس 3 .
تساعد عملية إعادة التوجيه (الموصوفة أدناه) في تصحيح هذه الأخطاء بالاعتماد على حقيقة أن مخرجات i1 (وهي 3 ) يمكن استخدامها بواسطة التعليمات اللاحقة قبل أن يتم تثبيت القيمة 3 في السجل 1.
يعني تطبيق التوجيه في هذا المثال عدم وجود انتظار لتثبيت/تخزين مخرجات التعليمة i1 في السجل 1 (في هذا المثال، المخرجات هي 3 ) قبل إتاحة هذه المخرجات للتعليمة اللاحقة (في هذه الحالة، i2). والنتيجة هي أن i2 تستخدم القيمة الصحيحة (الأحدث) للسجل 1: تم التثبيت/التخزين فورًا دون استخدام تقنية التوازي.
مع تفعيل خاصية إعادة التوجيه، تحتوي مرحلة فك تشفير/تنفيذ التعليمات (ID/EX) في خط الأنابيب الآن على مدخلين: القيمة المقروءة من السجل المحدد (في هذا المثال، القيمة 6 من السجل 1)، والقيمة الجديدة للسجل 1 (في هذا المثال، هذه القيمة هي 3 ) والتي يتم إرسالها من المرحلة التالية، وهي مرحلة تنفيذ التعليمات/الوصول إلى الذاكرة (EX/MEM). ويتم استخدام منطق تحكم إضافي لتحديد المدخل المراد استخدامه.
السيطرة على المخاطر (مخاطر الفروع)
لتجنب مخاطر التحكم، يمكن للبنى الدقيقة ما يلي:
- قم بإدخال فقاعة خط الأنابيب (كما نوقش أعلاه)، مما يضمن زيادة زمن الاستجابة ، أو
- استخدم التنبؤ بالتفرع وقم بشكل أساسي بتخمينات مدروسة حول التعليمات التي يجب إدراجها، وفي هذه الحالة لن تكون هناك حاجة إلى فقاعة خط الأنابيب إلا في حالة التنبؤ غير الصحيح.
في حالة تسبب أحد الفروع في حدوث فقاعة في خط الأنابيب بعد دخول تعليمات غير صحيحة إلى خط الأنابيب، يجب توخي الحذر لمنع أي من التعليمات المحملة بشكل خاطئ من أن يكون لها أي تأثير على حالة المعالج باستثناء الطاقة المهدرة في معالجتها قبل اكتشاف أنها محملة بشكل غير صحيح.
تقنيات أخرى
يُعدّ زمن استجابة الذاكرة عاملاً آخر يجب على المصممين مراعاته، لأنّ التأخير قد يُقلّل من الأداء. وتختلف أنواع الذاكرة في زمن الوصول إليها. لذا، باختيار نوع الذاكرة المناسب، يُمكن للمصممين تحسين أداء مسار البيانات المُجزّأ. [ 5 ]
انظر أيضاً
مراجع
- ↑ باترسون وهينيسي 2009 ، ص 335.
- ↑ باترسون وهينيسي 2009 ، ص 335-343.
- ↑ "مخططات التنبؤ بالفروع" . cs.iastate.edu . 2001-04-06 . تم الاطلاع عليه بتاريخ 2014-07-19 .
- ↑ "مخاطر البيانات والتحكم" . classes.soe.ucsc.edu . 2004-02-23 . تم الاطلاع عليه بتاريخ 2014-07-19 .
- ↑ تشنغ، تشينغ-هوا (27-12-2012). "مثال تصميمي لزمن استجابة الذاكرة المفيد لتطوير معالج دقيق مضمن عالي الأداء ذي خط أنابيب وقائي من المخاطر" . تصميم الدوائر المتكاملة واسعة النطاق . 2013 : 1-10 . doi : 10.1155/2013/425105 .
عام
- باترسون، ديفيد ؛ هينيسي، جون (2009). تنظيم وتصميم الحاسوب ( الطبعة الرابعة). مورغان كوفمان . ISBN 978-0-12-374493-7.
- باترسون، ديفيد؛ هينيسي، جون (2011). هندسة الحاسوب: منهج كمي ( الطبعة الخامسة). مورغان كوفمان . ISBN 978-0-12-383872-8.
- شين، جون ب.؛ ليباستي، ميكو هـ. (2013) [2004]. "2.2.3.2 تحديد مخاطر خطوط الأنابيب" . تصميم المعالجات الحديثة: أساسيات المعالجات فائقة القياس . دار نشر ويفلاند. الصفحات 73-78 . ISBN 9781478610762.
روابط خارجية
- "التنفيذ التلقائي لخطوط الأنابيب من مواصفات مسار البيانات للمعاملات" (ملف PDF) . تم الاطلاع عليه بتاريخ 23 يوليو 2014 .
- تولسن، دين (18 يناير 2005). "مخاطر خطوط الأنابيب" (ملف PDF) .
- معالجة التعليمات
