بنية TRIPS

يتعطل المعالج.

كانت TRIPS بنية معالج دقيق صممها فريق من جامعة تكساس في أوستن بالتعاون مع شركات IBM و Intel و Sun Microsystems . تستخدم TRIPS بنية مجموعة تعليمات مصممة بحيث يمكن تقسيمها بسهولة إلى مجموعات كبيرة من التعليمات (رسوم بيانية) يمكن تشغيلها على عناصر معالجة مستقلة. يجمع التصميم البيانات ذات الصلة في الرسوم البيانية، محاولًا تجنب عمليات قراءة وكتابة البيانات المكلفة، مع الاحتفاظ بالبيانات في ذاكرة عالية السرعة بالقرب من عناصر المعالجة. يحتوي معالج TRIPS الأولي على 16 عنصرًا من هذا النوع. كان الهدف من TRIPS هو الوصول إلى 1 تيرافلوب على معالج واحد لكل ورقة بحثية نُشرت بين عامي 2003 و2006. [ 1 ]

حافة

TRIPS هو معالج يعتمد على مفهوم تنفيذ الرسم البياني للبيانات الصريح (EDGE). يحاول EDGE تجاوز بعض اختناقات الأداء التي أصبحت سائدة في الأنظمة الحديثة. [ 2 ]

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

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

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

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

رحلات

يُعد معالج TRIPS ، وهو نظام معالجة ذكي تكيفي موثوق به ذو قدرة فائقة على معالجة البيانات، تطبيقًا لمفهوم EDGE في جامعة تكساس في أوستن . يُبنى معالج TRIPS بتكرار وحدة وظيفية أساسية واحدة حسب الحاجة. يُتيح استخدام كتل فائقة مُحمّلة دفعة واحدة في تصميم TRIPS تحسينات هائلة في التنفيذ التخميني . فبينما قد يحتوي التصميم التقليدي على بضع مئات من التعليمات لفحص إمكانية جدولتها في الوحدات الوظيفية، يحتوي تصميم TRIPS على آلاف، بل مئات التعليمات لكل كتلة فائقة، ومئات الكتل الفائقة قيد الفحص. يؤدي هذا إلى تحسين كبير في استخدام الوحدات الوظيفية؛ فعند توسيع نطاق أدائه ليُصبح مماثلاً لتصميم فائق القياس رباعي الإصدارات، يستطيع TRIPS معالجة ما يقارب ثلاثة أضعاف عدد التعليمات في الدورة الواحدة.

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

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

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

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

يؤدي الجمع بين هذين التغييرين في التصميم إلى تحسين أداء النظام بشكل كبير. مع ذلك، وبحلول عام 2008، تجاوزت وحدات معالجة الرسومات من ATI و NVIDIA حاجز 1 تيرافلوب (وإن كان ذلك لتطبيقات متخصصة). أما بالنسبة لوحدات المعالجة المركزية التقليدية، فإن جهاز Mac Pro الحديث (2007) المزود بمعالج Intel Xeon ثنائي النواة لا يستطيع سوى أداء حوالي 5 جيجا فلوب في التطبيقات الفردية. [ 4 ]

في عام 2003، بدأ فريق TRIPS بتنفيذ شريحة نموذجية. تحتوي كل شريحة على نواتين كاملتين، كل منهما تضم ​​16 وحدة وظيفية مرتبة في أربعة صفوف وأربعة أعماق. في التنفيذ الحالي، يقوم المترجم بإنشاء "كتل فائقة" تتكون كل منها من 128 تعليمة، ويسمح للنظام بمعالجة ثماني كتل في الوقت نفسه، ليصبح المجموع 1024 تعليمة لكل نواة. يمكن أن يشمل التصميم الأساسي ما يصل إلى 32 شريحة مترابطة، ما يقارب 500 جيجا فلوبس. [ 5 ]

مراجع