ديلوكس

DLX (تنطق "ديلوكس") هي بنية معالج RISC صممها جون إل. هينيسي وديفيد أ. باترسون ، المصممان الرئيسيان لتصميمات ستانفورد MIPS وبيركلي RISC (على التوالي )، وهما المثالان المرجعيان لتصميم RISC (سمي على اسم تصميم بيركلي).

يُعدّ معالج DLX في جوهره نسخة مُحسّنة (ومُطوّرة) من معالج MIPS من جامعة ستانفورد. يتميز DLX ببنية تحميل/تخزين بسيطة 32 بت ، تختلف نوعًا ما عن معالجات MIPS الحديثة . ولأنّ DLX صُمّم أساسًا لأغراض تعليمية، يُستخدم تصميمه على نطاق واسع في مقررات هندسة الحاسوب الجامعية .

يوجد تطبيقان معروفان للمعالجات البرمجية : ASPIDA وVAMP. نتج عن مشروع ASPIDA معالجٌ ذو ميزاتٍ عديدةٍ رائعة: فهو مفتوح المصدر، ويدعم Wishbone ، ويتميز بتصميمٍ غير متزامن، ويدعم مجموعات تعليماتٍ متعددة ، وقد أثبت كفاءته على الدوائر المتكاملة الخاصة بالتطبيقات (ASIC ). أما VAMP فهو نسخةٌ معدلةٌ من DLX، تم التحقق من صحتها رياضيًا كجزءٍ من مشروع Verisoft. وقد تم تحديد مواصفاته باستخدام PVS ، وتنفيذه بلغة Verilog ، ويعمل على معالج Xilinx FPGA . وقد بُنيت عليه بنيةٌ كاملةٌ من المُترجم إلى النواة إلى بروتوكول TCP/IP .

تاريخ

في معمارية ستانفورد MIPS، كانت إحدى طرق تحسين الأداء هي إجبار جميع التعليمات على الإكمال في دورة ساعة واحدة. أجبر هذا المترجمات على إدراج تعليمات " لا تفعل شيئًا" (no-ops ) في الحالات التي تستغرق فيها التعليمات أكثر من دورة ساعة واحدة. وبالتالي، فرضت عمليات الإدخال والإخراج (مثل الوصول إلى الذاكرة) هذا السلوك تحديدًا، مما أدى إلى تضخم البرنامج بشكل مصطنع. عمومًا، كانت برامج MIPS تُجبر على احتواء الكثير من تعليمات NOP غير الضرورية، وهو سلوك كان نتيجة غير مقصودة. أما معمارية DLX فلا تُجبر على التنفيذ في دورة ساعة واحدة، وبالتالي فهي محصنة ضد هذه المشكلة.

في تصميم DLX، استُخدم نهجٌ أكثر حداثةً للتعامل مع التعليمات الطويلة: إعادة توجيه البيانات وإعادة ترتيب التعليمات. في هذه الحالة، تُعلّق التعليمات الطويلة في وحداتها الوظيفية، ثم تُعاد إلى مسار التعليمات عند اكتمالها. ظاهريًا، يُوحي هذا السلوك التصميمي بأن التنفيذ قد تم بشكل خطي.

فك تشفير التعليمات

يمكن تقسيم تعليمات DLX إلى ثلاثة أنواع: النوع R ، والنوع I ، والنوع J. تعليمات النوع R هي تعليمات سجلات بحتة ، حيث تحتوي الكلمة المكونة من 32 بت على ثلاثة مراجع سجلات. أما تعليمات النوع I فتحدد سجلين، وتستخدم 16 بت لتخزين قيمة فورية . وأخيرًا، تعليمات النوع J هي قفزات ، وتحتوي على عنوان مكون من 26 بت.

يبلغ طول رموز العمليات 6 بتات، ليصبح المجموع 64 تعليمة أساسية ممكنة. ويلزم 5 بتات لاختيار أحد السجلات الـ 32.

  • في حالة تعليمات النوع R، هذا يعني أنه يتم استخدام 21 بت فقط من الكلمة المكونة من 32 بت، مما يسمح باستخدام البتات الستة السفلية كـ "تعليمات موسعة".
  • يدعم معالج DLX أكثر من 64 تعليمة، طالما أن هذه التعليمات تعمل حصراً على المسجلات. هذه الميزة مفيدة لأمور مثل دعم وحدة الفاصلة العائمة (FPU) .

خط الأنابيب

يعتمد تصميم DLX، مثل تصميم MIPS، في أدائه على استخدام خط أنابيب التعليمات . في تصميم DLX، يكون هذا الخط بسيطًا نسبيًا، وهو تصميم "كلاسيكي" من نوع RISC. يتكون خط الأنابيب من خمس مراحل:

IF – تعليمات جلب الوحدة/الدورة
IR<-Mem(PC)
NPC<-PC+4
العملية: إرسال عداد البرنامج (PC) وجلب التعليمات من الذاكرة إلى سجل التعليمات (IR) ؛ ثم زيادة عداد البرنامج بمقدار 4 للوصول إلى التعليمات التالية. يُستخدم سجل التعليمات لتخزين التعليمات التالية المطلوبة في دورات الساعة اللاحقة؛ وبالمثل، يُستخدم سجل NPC لتخزين عداد البرنامج التالي.
وحدة فك تشفير التعليمات (ID)
العملية: فك تشفير التعليمات والوصول إلى ملف السجلات لقراءة السجلات. تستقبل هذه الوحدة التعليمات من دالة IF، وتستخرج رمز العملية والمعامل منها. كما تسترجع قيم السجلات إذا طلبت العملية ذلك.
مثال - وحدة التنفيذ / دورة العنوان الفعالة
العملية: تعمل وحدة الحساب والمنطق على المعاملات المُعدة في الدورة السابقة، وتؤدي إحدى الوظائف الأربع اعتمادًا على نوع تعليمات DLX.
مرجع الذاكرة: تعليمات وحدة الحساب والمنطق (ALU) من المسجل إلى المسجل، تعليمات وحدة الحساب والمنطق (ALU) الفورية من المسجل إلى المسجل
فرع
وحدة الوصول إلى الذاكرة (MEM)
تتضمن تعليمات DLX النشطة في هذه الوحدة عمليات التحميل والتخزين والفروع.
مرجع الذاكرة: الوصول إلى الذاكرة عند الحاجة. إذا كانت التعليمة هي تحميل، فإن البيانات تعود من الذاكرة وتُوضع في سجل LMD (تحميل بيانات الذاكرة).
فرع
وحدة الكتابة العكسية (WB)
يُشار إليها عادةً باسم "وحدة التخزين" في المصطلحات الحديثة. تكتب النتيجة في ملف السجل، سواءً كانت قادمة من نظام الذاكرة أو من وحدة الحساب والمنطق.

انظر أيضاً

مراجع