تنفيذ الرسم البياني للبيانات الصريح

يُعدّ تنفيذ الرسم البياني للبيانات الصريح ، أو EDGE ، نوعًا من بنية مجموعة التعليمات (ISA) التي تهدف إلى تحسين أداء الحوسبة مقارنةً بالمعالجات الشائعة مثل معالجات Intel x86 . يجمع EDGE العديد من التعليمات الفردية في مجموعة أكبر تُعرف باسم "الكتلة الفائقة". صُممت الكتل الفائقة بحيث يمكن تشغيلها بسهولة بالتوازي.

عادةً ما يبدأ التوازي في تصميمات وحدات المعالجة المركزية الحديثة بالاستقرار عند حوالي ثماني وحدات داخلية، ومن نواة واحدة إلى أربع نوى. تهدف تصميمات EDGE إلى دعم مئات الوحدات الداخلية، وتقديم سرعات معالجة تفوق التصميمات الحالية بمئات المرات. قادت جامعة تكساس في أوستن التطوير الرئيسي لمفهوم EDGE ضمن برنامج بنى الحوسبة متعددة الأشكال التابع لوكالة مشاريع البحوث الدفاعية المتقدمة (DARPA) ، بهدف معلن يتمثل في إنتاج تصميم وحدة معالجة مركزية أحادية الشريحة بأداء 1 تيرافلوب بحلول عام 2012، وهو هدف لم يتحقق حتى عام 2018. [ 1 ]

تصاميم تقليدية

CISC إلى RISC

في ستينيات القرن العشرين، كانت الذاكرة باهظة الثمن نسبيًا، لذا قام مصممو وحدات المعالجة المركزية (CPU) بإنتاج مجموعات تعليمات تُشفّر التعليمات والبيانات بكثافة عالية لتحسين استغلال هذا المورد. على سبيل المثال، add A to B to produce Cكانت التعليمات تُقدّم بأشكال مختلفة تجمع القيمتين A وB من أماكن متعددة؛ كالذاكرة الرئيسية، أو الفهارس، أو المسجلات. وقد أتاح توفير هذه التعليمات المختلفة للمبرمج اختيار التعليمات التي تشغل أقل مساحة ممكنة في الذاكرة، مما قلل من احتياجات البرنامج ووفر مساحة أكبر للبيانات. فعلى سبيل المثال، يحتوي معالج MOS 6502 على ثماني تعليمات ( رموز العمليات ) لإجراء عملية الجمع، تختلف فقط في مكان جمع المعاملات. [ 2 ]

في الواقع، تطلّب تنفيذ هذه التعليمات دوائر إلكترونية في وحدة المعالجة المركزية، وهو ما شكّل قيدًا كبيرًا في التصاميم المبكرة، ما أجبر المصممين على اختيار التعليمات الضرورية فقط. في عام 1964، قدّمت شركة IBM سلسلة System/360 التي استخدمت الشفرة المصغّرة لتمكين بنية مجموعة تعليمات واحدة واسعة النطاق (ISA) من العمل على مجموعة متنوعة من الأجهزة، وذلك بتنفيذ عدد متفاوت من التعليمات في الأجهزة حسب الحاجة. [ 3 ]

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

أدى عملهم، المعروف آنذاك باسم IBM 801 ، في نهاية المطاف إلى ظهور مفهوم RISC (الحوسبة ذات مجموعة التعليمات المختصرة). تم حذف الشفرة المصغرة، واقتصرت معالجة وحدة المعالجة المركزية على أبسط نسخ التعليمات. أما أي شفرة أكثر تعقيدًا، فقد تُركت للمترجم. سمح حذف هذا الكم الكبير من الدوائر، حوالي ثلث الترانزستورات في معالج موتورولا 68000 على سبيل المثال، لوحدة المعالجة المركزية بتضمين المزيد من المسجلات، مما كان له أثر مباشر على الأداء. بحلول منتصف الثمانينيات، كانت النسخ المطورة من هذه المفاهيم الأساسية تُحقق أداءً يصل إلى عشرة أضعاف أداء أسرع تصميمات CISC، على الرغم من استخدامها تقنيات تصنيع أقل تطورًا. [ 4 ]

التوازي الداخلي

على الرغم من الجهود الحثيثة، فقد وصلت تصاميم وحدات المعالجة المركزية التي تستخدم بنى RISC أو CISC الكلاسيكية إلى مرحلة الركود بحلول أواخر العقد الأول من الألفية الثانية. تحتوي تصاميم Haswell من إنتل لعام 2013 على ثماني وحدات إرسال، [ 5 ] وإضافة المزيد منها يؤدي إلى تعقيد التصميم بشكل كبير وزيادة متطلبات الطاقة. [ 6 ]

اتفاقية تقاسم الادخار الجديدة؟

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

حافة

نظرية

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

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

تتمثل الفكرة الأساسية لـ EDGE في دعم هذه الكتل الأساسية والتعامل معها مباشرةً على مستوى مجموعة تعليمات المعالج (ISA). وبما أن الكتل الأساسية تصل إلى الذاكرة بطرق محددة جيدًا، يستطيع المعالج تحميل الكتل ذات الصلة وجدولة عملها بحيث يُغذي ناتج إحدى الكتل الكتلة التي ستستهلك بياناتها مباشرةً. هذا يُلغي الحاجة إلى ملف سجلات عام، ويُبسط مهمة المُترجم في جدولة وصول البرنامج ككل إلى السجلات ؛ فبدلاً من ذلك، تُمنح كل كتلة أساسية سجلاتها المحلية الخاصة، ويُحسّن المُترجم الوصول داخل الكتلة، وهي مهمة أبسط بكثير. 

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

من الأسباب الأخرى التي حالت دون انتشار أنظمة تدفق البيانات صعوبةُ عمل مُترجمات ذلك العصر مع لغات البرمجة الإجرائية الشائعة مثل C++ . لذا، اعتمدت معظم أنظمة تدفق البيانات على لغات مُخصصة مثل Prograph ، مما حدّ من جدواها التجارية. وقد ساهم عقدٌ من أبحاث المُترجمات في التغلب على العديد من هذه المشاكل، ويكمن أحد الفروق الرئيسية بين أنظمة تدفق البيانات وأنظمة EDGE في أن تصميمات EDGE مصممة للعمل مع اللغات الشائعة الاستخدام.

وحدات المعالجة المركزية

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

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

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

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

التطبيقات

رحلات

كانت جامعة تكساس في أوستن تعمل على تطوير بنية مجموعة تعليمات EDGE تُعرف باسم TRIPS . ولتبسيط البنية الدقيقة لوحدة المعالجة المركزية المصممة لتشغيلها، تفرض بنية TRIPS عدة قيود محددة جيدًا على كل وحدة TRIPS فائقة، وهي:

  • يحتوي على 128 تعليمات كحد أقصى،
  • إصدار ما يصل إلى 32 عملية تحميل و/أو تخزين،
  • إصدار ما يصل إلى 32 سجلًا لقراءة و/أو كتابة البيانات المصرفية،
  • يحتوي على قرار فرعي واحد، يستخدم للإشارة إلى نهاية الكتلة.

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

في عام ٢٠٠٣، أنتجوا نموذجًا أوليًا لجهاز TRIPS مزودًا بستة عشر محركًا للمعالجة في شبكة ٤×٤، بالإضافة إلى ميغابايت من ذاكرة التخزين المؤقت المحلية وذاكرة النقل. يحتوي إصدار شريحة واحدة من TRIPS، تم تصنيعه بواسطة IBM في كندا باستخدام  تقنية ١٣٠ نانومتر، على محركين من هذا النوع، بالإضافة إلى ذاكرة تخزين مؤقت مشتركة من المستوى الثاني وأنظمة دعم متنوعة. يتم وضع أربع شرائح من هذا النوع وغيغابايت من ذاكرة الوصول العشوائي معًا على بطاقة فرعية لأغراض التجربة.

وضع فريق TRIPS هدفًا نهائيًا يتمثل في إنتاج تطبيق أحادي الشريحة قادر على العمل بأداء مستدام يبلغ 1 تيرافلوب، أي حوالي 50 ضعف أداء وحدات المعالجة المركزية التجارية عالية الأداء المتوفرة في عام 2008 (يوفر معالج Xeon 5160 ثنائي النواة حوالي 17 جيجا فلوبس).

نقدي

يُعدّ CASH من جامعة كارنيجي ميلون مُترجمًا يُنتج رمزًا وسيطًا يُسمى "بيغاسوس". [ 8 ] يتشابه CASH وTRIPS في المفهوم، لكن CASH غير مُصمم لإنتاج مُخرجات لبنية معمارية مُحددة، وبالتالي لا توجد قيود صارمة على تخطيط الكتل.

الموجة القياسية

تتشابه بنية WaveScalar الخاصة بجامعة واشنطن إلى حد كبير مع بنية EDGE، لكنها لا تضع التعليمات بشكل ثابت داخل "موجاتها". بدلاً من ذلك، تحدد تعليمات خاصة ( phi و rho ) حدود الموجات وتسمح بجدولة العمليات. [ 9 ]

مراجع

الاقتباسات

  1. جامعة تكساس في أوستن، "TRIPS  : تريليون عملية حسابية في الثانية بحلول عام 2012"
  2. بيكنز، جون (17 أكتوبر 2020). "رموز العمليات NMOS 6502" .
  3. شريف، كين. "محاكاة الحاسوب المركزي IBM 360/50 من خلال الكود البرمجي الصغير الخاص به" .
  4. 1 2 كوك، جون؛ ماركشتاين، فيكتوريا (يناير 1990). "تطور تقنية RISC في شركة IBM" (ملف PDF) . مجلة IBM للبحوث والتطوير . 34 (1): 4-11 . doi : 10.1147/rd.341.0004 .
  5. شيمبي، أناند لال (5 أكتوبر 2012). "تحليل معمارية هاسويل من إنتل: بناء حاسوب شخصي جديد وشركة إنتل جديدة" . أناند تك .{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  6. تسينغ، فرانسيس؛ بات، ييل (يونيو 2008). "تحقيق أداء خارج الترتيب بتعقيد يكاد يكون ضمن الترتيب". أخبار هندسة الحاسوب ACM SIGARCH . 36 (3): 3-12 . doi : 10.1145/1394608.1382169 .
  7. دبليو. هافانكي، إس. بانيرجيا، وتي. كونتي. "جدولة المناطق الشجرية للمعالجات ذات الإصدار الواسع"، في وقائع الندوة الدولية الرابعة حول هندسة الحواسيب عالية الأداء ، يناير 1998، الصفحات 266-276
  8. "مشروع فينيكس"
  9. "مجموعة أدوات WaveScalar"

فهرس