logo

logo

logo

logo

logo

المعالج السلمي الفائق

معالج سلمي فايق

Superscalar processor - Processeur superscalaire

المعالج السلّمي الفائق

 

مفهوم المعالج السلّمي الفائق

تُعدّ المعالجات الصغرية التي ظهرت في بداية السبعينيات معالجات سُلَّمية scalar لأنها تعالج كلمة معطيات واحدة في لحظة معينة. ثم ظهرت المعالجات المتجهية vector التي تنفِّذ تعليمة بسيطة على عدة كلمات معطيات في آنٍ واحد. وفي الثمانينيات نشأت فكرة المعالجات السلّمية الفائقة superscalar processors   التي تستطيع تنفيذ عدة تعليمات على كلمات معطيات متعددة في وقت واحد باستخدام وحدات تنفيذ متنوعة، وهي لذلك تعدّ مزيجاً من نوعي المعالجات السابقة.

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

وإذا استُخدم المؤشر Cycles Per Instruction CPI دليلاً على أداء المعالج ـ الذي يدل على عدد دورات الميقاتية اللازم لتنفيذ التعليمة الواحدة ـ فإن المعالج السلمي الفائق يسعى إلى تحقيق قيمة أصغر من الواحد لاعتماده على عدة قنوات توارد pipelines داخلية، والتي تمكن من جلب عدة تعليمات من الذاكرة معاً، ثم تحليلها وتنفيذها، وكتابة نتائجها في الوقت نفسه. ويُعدّ جلّ المعالجات التي صُنِّعت بعد العام 1998 معالجات سلمية فائقة.

بنيان المعالج السلّمي الفائق

يبيِّن (الشكل 1) مراحل التنفيذ لبنيان سلمي فائق. ونظراً إلى استخدام المعالج عدة وحدات تنفيذ، منها وحدات مخصصة للأعداد الصحيحة ALU وأخرى للأعداد العائمة FPU، فإن بإمكانه تنفيذ عدة تعليمات في آن واحد. ويُقال عن المعالج إن له n ممراً (n- Way Processor) إذا كان قادراً على تنفيذ n تعليمة معاً. وتسمى تقنية البدء بتنفيذ عدة تعليمات بعد جلبها من الذاكرة بالإصدار المتعدد multi-issue. ولتحديد التعليمات الممكن تنفيذها على المعالج وتوزيعها على وحداته الوظيفية يُستخدم مسنِد للمهمات dispatcher. وقد يُنجَّز هذا المسنِد برمجياً بوساطة المترجم compiler، ويسمى المعالج عندئذٍ بالبنيان السلمي الفائق السكوني أو بالبنيان ذي كلمات التعليمات الطويلة جداً VLIW. وإذا تضمَّن المعالج عتاداً لتنفيذ المسنِد بداخله سمي بالمعالج السلمي الفائق الديناميكي. ويُسمح في هذه الحالة بتنفيذ البرنامج وفق ترتيب يختلف عن تسلسل كتابة المبرمج له، ويسمى ذلك بالتنفيذ بلا ترتيب out-of-order execution. وقد يتضمن المعالج أيضاً تقنيات الاستباق speculation، التي تتيح التنبؤ بقرار التفريع قبل تنفيذ تعليمات القفز المشروط، وهذا من شأنه رفع أداء المعالج وتقليص حالات إفراغ flush قنوات التوارد.

الشكل (1)مراحل التنفيذ لمعالج سلمي فائق

قد تتبع المعالجات السلمية الفائقة إحدى سياسات الإصدار المتعدد الآتية:

- الإصدار المرتَّب والإنجاز المرتَّب: وهي السياسة الأبسط، يبدأ فيها تنفيذ التعليمات ويكتمل وفق تسلسل البرنامج.

- الإصدار المرتَّب والإنجاز غير المرتَّب: يبدأ فيها تنفيذ التعليمات وفق ترتيب المبرمِج، ولكن إنجاز التنفيذ قد يختلف عن التسلسل الأصلي.

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

- الإصدار غير المرتَّب والإنجاز غير المرتَّب: وهي الحالة الأعم والأعلى أداءً. تصدر فيها التعليمات ويكتمل تنفيذها وفق ترتيب يختلف عن ترتيب المبرمِج. وتعاني هذه الطريقة تعقيد العتاد اللازم لتحقيقها. وللسماح بالإصدار غير المرتَّب ينبغي الفصل بين مرحلتي فك الترميز والتنفيذ لقناة التوارد. ويجري ذلك بوساطة صوان يسمى نافذة التعليمات، إذ توضع التعليمة في النافذة بعد فك ترميزها، ويمكن أن يتابع المعالج جلب تعليمات جديدة وفك ترميزها ما دام هذا الصوان غير ممتلئ. وتصدر التعليمة من النافذة إلى مرحلة التنفيذ عندما تتاح الوحدة الوظيفية المناسبة. يستطيع المعالج بفضل هذه السياسة تحديد التعليمات المستقبلية التي يمكن جلبها ثم تنفيذها. وفي هذه الحالة، لا يُقيَّد المعالج إلا بتنفيذ البرنامج تنفيذاً صحيحاً.

أداء المعالج السلّمي الفائق

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

الشكل (2) مقارنة عمل المعالج المتوارد بالمعالج السلمي الفائق

لا يستطيع المعالج تنفيذ التعليمات على التوازي دوماً. ويعود ذلك إلى المشكلات الآتية:

- عدم استقلال (ترابط) المعطيات الحقيقي true data dependency: والذي يعني حاجة تعليمة تالية إلى نتيجة التعليمة السابقة.

- عدم استقلال التحكم control dependency: قد تظهر تعليمات قفز وتفريع في سياق البرنامج، وهذا يدفع المعالج إلى إفراغ محتوى قناة التوارد، وإعادة شحنها بتعليمات من وجهة القفز.

- تنازع الموارد resource conflict: عند تنفيذ عدة تعليمات دفعةً واحدة قد يحدث عوز في الموارد إذا احتاجت كلها إلى موارد المعالج ذاتها.

- عدم استقلال الخرج output dependency: إذا تطلبت تعليمتان تخزين نتيجتهما في الموقع ذاته حال ذلك دون تنفيذهما بلا ترتيب. ويسمى ذلك أيضاً بترابط الكتابة بعد الكتابة Write-After-Write، ويُرمز له اختصاراً WAW.

- الترابط المضاد anti-dependency: وهي حالة معاكسة لترابط المعطيات الحقيقي. إذ تقوم التعليمة الأولى بالقراءة من سجل معين، في حين تكتب التعليمة التالية قيمة جديدة فيه. لا يمكن عندئذٍ تنفيذهما بلا ترتيب. ويسمى ذلك بترابط الكتابة بعد القراءة Write-After-Read، ويُرمز له اختصاراً WAR.

تقنيات رفع أداء المعالج السلّمي الفائق

تعتمد المعالجات السلمية الفائقة على تقنيات متعددة لتسريع عملها والحدّ من الترابطات بين التعليمات، ومن هذه التقنيات:

- إعادة تسمية السجلات register renaming: تنص هذه التقنية على إسناد السجلات الوافرة في المعالج السلمي الفائق ديناميكياً إلى أسماء السجلات القابلة للاستخدام في البرنامج. ويسمح ذلك بتقليص الترابطات بين التعليمات. وقد تُنفَّذ هذه التقنية بوساطة صوان إعادة الترتيب re-order buffer، وهو رتل بطول مناسب يُضاف إلى ملف السجلات. يُحجز للتعليمات التي جرى إصدارها في آن واحد مواقع متتالية من الرتل. تتقدم التعليمات في الرتل مع تقدم تنفيذها، حتى إذا اكتمل تنفيذها خرجت من الرتل وكُتبت النتائج في الوجهة.

- لوحة العلامات scoreboard: طوّر هذه الطريقة أساساً العالم ثورنتون Thornton في العام 1960 للحاسوب CDC6600. وهي تفيد في متابعة تنفيذ التعليمات وحل ترابطاتها اعتماداً على جدول عتادي يحوي معلومات عن انشغالية وحدات التنفيذ ومتاحية سجلات المصدر والوجهة وحالة التعليمات الواقعة في قنوات التوارد. ولا تسمح هذه الخوارزمية بإصدار التعليمات إلا إذا كانت وحدة التنفيذ جاهزة وسجل الوجهة متاحاً، وتقرأ التعليمةُ المعاملات إذا لم تكن أي تعليمة أخرى تكتب فيها. وتُكتب نتائج التنفيذ إذا لم يؤدِ ذلك إلى الكتابة فوق أي معاملات لتعليمات سابقة.

- خوارزمية توماسولو Tomasulo: وهي أكثر تعقيداً من الخوارزمية السابقة. تعتمد على محطات الحجز reservation stations لحذف الترابطات من النوع WAR وWAW. ومحطة الحجز هي صوان إعادة ترتيب مرتبط بمدخل وحدة وظيفية معينة، تفيد في تخزين التعليمات التي ستُنفذ في الوحدة الوظيفية، إضافة إلى حفظ المعاملات اللازمة. وتنتقل التعليمة إلى طور التنفيذ عند اكتمال المعاملات. ولا تُكتب النتائج في السجل الوجهة مباشرةً بل تُكتب في محطة حجز أخرى تفادياً لأي ترابط.

أمثلة عن بعض المعالجات السلّمية الفائقة

يُستخدم المعالج السلمي الفائق في العديد من التطبيقات التي تتطلب قدرة حسابية مرتفعة، كالتطبيقات البيانية والڤيديوية والحسابية. ففي العام 1996 صُنِّع المعالج PA-8000 من شركة HP، وهو معالج سلمي فائق رباعي الممرات يستخدم صوان إعادة الترتيب مع إمكانية إعادة تسمية السجلات، وهو يعمل بتردد 250 ميغاهرتز، ويحوي وحدتي حساب للأعداد الصحيحة ووحدتي حساب للأعداد ذات الفاصلة العائمة ووحدتي قسمة للأعداد العائمة.

واستُخدم البنيان السلمي الفائق في المعالجات Pentium II التي تحوي 3 قنوات توارد، لكل منها 12 مرحلة فرعية. ويضمّ المعالج PowerPC970  ن6وحدات وظيفية و4 قنوات توارد، ولكن معدل التنفيذ الفعلي لا يتجاوز 1.25 تعليمة في الدورة الواحدة.

ويستطيع المعالج MIPS-R10000، وهو معالج سلمي فائق، جلب 4 تعليمات دفعة واحدة، ويفك ترميزها ثم ينفِّذها ويخزِّن النتائج. يطبِّق هذا المعالج إعادة تسمية السجلات، ويضم 3 أرتال تفيد كمحطات حجز للوحدات الوظيفية. يحوي المعالج 5 وحدا ت وظيفية : وحدتان للأعداد الصحيحة ووحدتان للأعداد ذات الفاصلة العائمة ووحدة حساب العنوانات.

ويعتمد المعالج PowerPC G5 على البنيان السلمي الفائق، ويحوي بداخله 12 وحدة وظيفية ، ونواة تنفيذ للأعداد الصحيحة ذات 128 بت، ووحدتين حسابيتين للأعداد ذات الفاصلة العائمة، ووحدتين حسابيتين للأعداد الصحيحة ووحدتين للقراءة والكتابة من الذاكرة، ووحدة تنبؤ بالتفريع، وبنيان SIMD. ويتميز هذا المعالج بمسرى سرعته c1 GHz، وعرض حزمته  c8 Gbytes/s.

يُعتقد أن للبنيان السلمي الفائق دوراً أساسياً في المعالجات الصغرية المستقبلية، إذ يتيح البنيان تحقيق تقانة المعالجة على مستوى الرقاقة CMP التي تعتمد نوى متعددة متكاملة في دارة واحدة. ويمكن في هذه التقانة تخصيص نوى محدَّدة للبيانيات وتعرّف الكلام والاتصالات. ويُتوقع أن يتجاوز عدد الترانزستورات المستخدمة فيها عشرات المليارات.

محمد نوار العوا

 

الموضوعات ذات الصلة:

المعالج الصغري ـ المعالجة المتوازية.

مراجع للاستزادة:

ـ وليام ستولينغ، تنظيم الحاسوب وبنيانه: التصميم من أجل الأداء، ترجمة: فيصل العباس، نوار العوا (المركز العربي للترجمة والتعريب، دمشق 2003).

- .L. HENNESSY & D. A. PATTERSON, Computer Organization and Design ).Morgan-Kaufmann Publisher2002).


التصنيف : التقنيات (التكنولوجية)
النوع : تقانة
المجلد: المجلد التاسع عشر
رقم الصفحة ضمن المجلد : 15
مشاركة :

اترك تعليقك



آخر أخبار الهيئة :

البحوث الأكثر قراءة

هل تعلم ؟؟

عدد الزوار حاليا : 550
الكل : 29657482
اليوم : 37492

العجيب

العجيب   العجيب marvellous مصطلح نقدي يتعلق بالسرد الحكائي. يعد النص (العجيب) نصاً يقع، كلياً، خارج إطار قوانين الواقع المألوف، تبدو الأحداث الخارقة فيه مقبولة، ولكن بعدّها مفسَّرة خلف حدود الواقع، أي إن لها عالمها الخاص، ويمكن أن نمثل للعجيب بالخرافات الشعبية التي تقع أحداثها بعيداً عن قوانين المألوف، ويقبلها المتلقي كما هي، على أن تقع في عالمٍ مغايرٍ لعالمه.
المزيد »