الموازاة على مستوى التعليمات
الموازاة على مستوى التعليمات (ILP) هي الإمكانية لتنفيذ تعليمات متعددة من برنامج واحد في وقت واحد، وتستغلها المعالجات فائقة التدرج (superscalar) ومعالجات الكلمات التعليمية الطويلة جدًا (VLIW) التي تصدر وتكمل عدة تعليمات في الدورة الواحدة.
Definition
الموازاة على مستوى التعليمات هي الدرجة التي يمكن بها تنفيذ تعليمات برنامج واحد بالتوازي؛ تستغلها المعالجات عن طريق إصدار وتنفيذ وإكمال أكثر من تعليمة واحدة لكل دورة ساعة، مع مراعاة تبعيات البيانات والتحكم.
Scope
يغطي هذا الموضوع الموازاة المتاحة ضمن تدفق تعليمات واحد وكيفية استخلاصها بواسطة الأجهزة والمترجمات البرمجية: إصدار التعليمات المتعددة في الدورة الواحدة بواسطة المعالجات فائقة التدرج، وتصميمات الكلمات التعليمية الطويلة جدًا (VLIW)، وتحليل التبعيات، وإعادة تسمية السجلات، والتكهن. كما يغطي حدود الموازاة المتاحة على مستوى التعليمات. ويستثني هذا الموضوع الموازاة على مستوى الخيوط والبيانات عبر النوى والمسارات (هندسة المعالجات المتوازية ومتعددة النوى) وخط الأنابيب الأساسي ذي الإصدار الواحد (خطوط الأنابيب والمخاطر).
Core questions
- ما مقدار الموازاة المتاحة بطبيعتها بين تعليمات برنامج نموذجي؟
- كيف تقرر المعالجات فائقة التدرج أي التعليمات يمكن إصدارها معًا؟
- كيف تحول تصميمات VLIW عبء إيجاد الموازاة إلى المترجم البرمجي؟
- ما هي التبعيات والمخاطر التي تحد من مقدار الموازاة على مستوى التعليمات التي يمكن تحقيقها؟
Key concepts
- إصدار فائق التدرج
- كلمة تعليمات طويلة جدًا (VLIW)
- تبعيات البيانات والأسماء
- إعادة تسمية السجلات
- وحدات وظيفية متعددة
- التكهن
- حدود الموازاة على مستوى التعليمات
- التعليمات لكل دورة (IPC)
Key theories
- الجدولة الديناميكية للتعليمات
- يمكن للأجهزة اكتشاف واستغلال الموازاة على مستوى التعليمات في وقت التشغيل عن طريق تتبع التبعيات وجدولة التعليمات الجاهزة على وحدات وظيفية متعددة؛ وتعد خوارزمية توماسولو، مع محطات الحجز وإعادة تسمية السجلات، الآلية الأساسية التي تمكن من الإصدار غير المرتب، والمتوازي.
Mechanisms
تقوم المعالجات فائقة التدرج بجلب وفك تشفير عدة تعليمات في الدورة الواحدة، والتحقق من تبعياتها، وإعادة تسمية السجلات لإزالة التبعيات الزائفة، وإصدار تعليمات مستقلة إلى وحدات وظيفية متعددة. تعتمد تصميمات VLIW بدلاً من ذلك على المترجم البرمجي لتجميع العمليات المستقلة في كلمات تعليمية عريضة. تحد تبعيات البيانات الحقيقية وتدفق التحكم من الحد الأعلى للموازاة القابلة للتحقيق، والتي تحاول تقنيات التكهن ونوافذ التعليمات الأكبر توسيعها.
Clinical relevance
دفعت تقنيات الموازاة على مستوى التعليمات عقودًا من نمو أداء الخيط الواحد وظلت محورية في نوى وحدة المعالجة المركزية عالية الأداء. كانت عوائدها المتناقصة — مع الوصول إلى حدود الموازاة المتاحة والتعقيد — سببًا رئيسيًا في تحول الصناعة إلى المعالجات متعددة النوى والموازاة الصريحة لمزيد من التوسع.
History
ظهرت الوحدات الوظيفية المتعددة والجدولة الديناميكية في CDC 6600 و IBM System/360 Model 91 في الستينيات. أصبحت تصميمات المعالجات فائقة التدرج سائدة في التسعينيات، وسعت معماريات VLIW مثل Intel Itanium إلى الموازاة الموجهة بالمترجم البرمجي. أوضحت دراسات حدود الموازاة على مستوى التعليمات في أوائل التسعينيات سبب محدودية الموازاة ضمن خيط واحد.
Debates
- الموازاة على مستوى التعليمات الموجهة بالأجهزة مقابل الموجهة بالمترجم البرمجي
- تجد الأجهزة فائقة التدرج غير المرتبة الموازاة ديناميكيًا على حساب التعقيد والطاقة، بينما تعتمد VLIW على المترجم البرمجي لجدولة الموازاة بشكل ثابت؛ وقد أظهرت التجربة أن الأساليب الديناميكية أكثر قوة عبر أعباء العمل، بينما تظل الأساليب الثابتة جذابة للتصميمات القابلة للتنبؤ ومنخفضة الطاقة.
Key figures
- Robert Tomasulo
- Yale Patt
- John L. Hennessy
- Joseph A. Fisher
- James E. Smith
Related topics
Seminal works
- hennessy2019
- tomasulo1967
Frequently asked questions
- ما الفرق بين المعالجات فائقة التدرج و VLIW؟
- كلاهما ينفذ عمليات متعددة في الدورة الواحدة. يقرر المعالج فائق التدرج في الأجهزة، في وقت التشغيل، أي التعليمات يمكن إصدارها معًا؛ بينما يعتمد معالج VLIW على المترجم البرمجي لتجميع العمليات المستقلة في تعليمات عريضة مسبقًا، مما يبسط الأجهزة ولكنه يتطلب المزيد من المترجم البرمجي.
- لماذا يوجد حد للموازاة على مستوى التعليمات؟
- تحتوي البرامج الحقيقية على تبعيات بيانات حقيقية وتفرعات متكررة تحد من عدد التعليمات التي يمكن تشغيلها بالتوازي. بعد نافذة معينة، تتشبع الموازاة القابلة للتحقيق، لذا فإن استخلاص المزيد من الموازاة على مستوى التعليمات يؤدي إلى عوائد متناقصة مقارنة بالتعقيد والطاقة الإضافيين للأجهزة.