ما هو Superscalar؟

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

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

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

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

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

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