ما هو Superscalar؟

click fraud protection

كانت أجهزة الكمبيوتر القديمة متسلسلة بالكامل. يجب إكمال كل تعليمات تلقاها المعالج بالكامل بالترتيب قبل البدء في التعليمات التالية. هناك خمس مراحل لمعظم التعليمات: جلب التعليمات ، فك تشفير التعليمات ، التنفيذ ، الوصول إلى الذاكرة ، والكتابة. على التوالي ، تحصل هذه المراحل على التعليمات التي يجب إكمالها ، وفصل العملية عن القيم تم التشغيل ، وتنفيذ العملية ، وفتح السجل الذي ستُكتب النتيجة عليه ، واكتب النتيجة في الملف المفتوح تسجيل.

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

في معالج subcalar بدون خط أنابيب ، يتم تنفيذ كل جزء من كل تعليمات بالترتيب. يمكن لهذا التصميم أن يحقق فقط أقل من تعليمات واحدة مكتملة في كل دورة.

خطوط الأنابيب إلى العددية

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

يمكن تنفيذ كل مرحلة من مراحل تنفيذ التعليمات مرة واحدة في كل دورة ساعة. هذا يسمح بحد أقصى من الإنتاجية لتعليمات مكتملة واحدة لكل دورة.

في الواقع ، البرامج معقدة وتقلل من الإنتاجية. على سبيل المثال ، إذا كان لديك تعليمتان للإضافة "a = b + c" و "d = e + f" فيمكن تشغيلهما في خط أنابيب بدون أي مشكلة. ومع ذلك ، إذا كان لديك "a = b + c" متبوعًا بـ "d = a + e" لديك مشكلة. بافتراض أن هذين التعبيرين متلاحمان مباشرة ، فإن عملية حساب القيمة الجديدة لـ "a" لن تكتمل ، ناهيك عن إعادتها إلى الذاكرة قبل أن تقرأ التعليمة الثانية القيمة القديمة لـ "a" ثم تعطي إجابة خاطئة عن "د".

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

توسيع خط الأنابيب إلى superscalar

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

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

زيادة الأداء من زيادة خطوط الأنابيب فقط بكفاءة حتى الآن. القيود الحرارية والحجم تضع بعض القيود. هناك أيضًا تعقيدات كبيرة في الجدولة. أصبح المرسل الفعال الآن أكثر أهمية لأنه يجب عليه التأكد من عدم اعتماد أي من مجموعتي التعليمات على نتيجة أي من التعليمات الأخرى التي تتم معالجتها.

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

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

استنتاج

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

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

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