العودة
RISC-V: نقد مفصل من مهندس لتصميم المعمارية
SiTech AI Team3 წთ. საკითხავი

RISC-V: نقد مفصل من مهندس لتصميم المعمارية

نشر المهندس دميتري غرينبرغ مقالاً مطوّلاً يرى فيه أن RISC-V لا يمكن أن تكون الأفضل لكل من المتحكمات الدقيقة والخوادم، وأن السمات الاختيارية تجعل الامتثال للمعيار شبه بلا معنى.

نشر المهندس دميتري غرينبرغ على مدونته dmitry.gr مقالاً مطوّلاً بعنوان RISC-V: They Should Have Known Better، جمع فيه في مكان واحد كل الحجج التي تقف وراء تشككه في معمارية مجموعة التعليمات المفتوحة. ويقول إنه كتب النص ليجيب برابط واحد في المرة القادمة التي يُطلب منه فيها شرح موقفه.

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

لا يمكن لأي مجموعة تعليمات أن تكون الأفضل في كل حالات الاستخدام؛ فمتطلبات نواة عالية الأداء تتعارض تماماً مع متطلبات متحكم دقيق رخيص. ويتوقع غرينبرغ أن تستولي RISC-V في النهاية على مساحة المتحكمات الدقيقة الرخيصة لمرة واحدة التي يحتلها اليوم المعالج 8051، لكن ذلك سيحدث رغم تصميم مجموعتها لا بفضله. وتوضيح ذلك هو التعامل مع المقاطعات: فالمسار المتوافق مع المواصفة يتطلب امتداد Zicsr وسجلّي mscratch أو sscratch، ووفق حساب الكاتب يكلّف 44 دورة على الأقل قبل أن ينفّذ معالج مكتوب بلغة C أي عمل. أما Cortex-M0 فيدخل المقاطعة في 15 دورة ويخرج منها في 12، أي 27 دورة، لأنه يحفظ السجلات في العتاد. وحتى نسخة RV32E الأقل سجلات تصل إلى 38 دورة. ووجود CLIC وامتدادات «IRQ السريع» الخاصة بالمصنّعين اتهام إضافي: فالمجموعة الأساسية تدفع المصنّعين إلى بناء سيليكون غير قياسي للوصول إلى مستوى نواة عمرها عقد.

التعليمات المضغوطة والوصول إلى المصفوفات

يرى الكاتب أن تصميم التعليمات المضغوطة ضعيف بشكل خاص: تعليمة كتابة بايت بطول 16 بت ترمّز إزاحات من صفر إلى ثلاثة فقط، وكتابة نصف كلمة تتيح صفراً أو اثنين، وكتابة كلمة تتيح من صفر إلى 124. أما Cortex-M0 فيسمح بإزاحات من صفر إلى 31 للبايتات ومن صفر إلى 62 لأنصاف الكلمات. وأكثر من ذلك، تعليمتا كتابة البايت ونصف الكلمة ليستا ضمن امتداد C بل ضمن امتداد منفصل اسمه Zcb. والمشكلة الثانية هي العنونة المفهرسة: في x86 توجد [ebx + esi * 4] وفي ARM توجد [R0, R1, LSL #2]، بينما يحتاج الوصول الواحد إلى عنصر مصفوفة في RISC-V إلى ثلاث تعليمات. والحجة المعتادة بأن النوى السريعة ستدمجها في تعليمة واحدة ضعيفة: فلا نواة معروفة تدمج أكثر من تعليمتين متتاليتين. أما امتداد Zba بتعليمات SHxADD فلم يُصادَق عليه إلا في عام 2021، أي بعد أكثر من عامين على المواصفة الأساسية.

كل شيء اختياري

يشبّه غرينبرغ RISC-V بمعياري USB-C وRCS: فالإعلان عن الامتثال للمعيار لا يعني شيئاً تقريباً، لأن كل شيء تقريباً اختياري. الضرب اختياري، والقسمة اختيارية، ووضعا المستخدم والمشرف وسجلات CSR والتعليمات المضغوطة كذلك. وقد نُقلت سجلات CSR التي كانت أصلاً جزءاً من المجموعة الأساسية إلى امتداد Zicsr المنفصل، فلم تعد المجموعة الأساسية اليوم قادرة على معالجة المقاطعات بطريقة قياسية ولا على الفصل بين مستويات الامتياز. والسجل الذي يُفترض أن يجيب عن سؤال ما إذا كانت ميزة ما منفّذة هو misa، وهو نفسه سجل CSR دعمه اختياري ويُسمح بأن يُقرأ كله أصفاراً. وينطبق الأمر نفسه على مؤقّت النظام المرتبط بالذاكرة عند عنوان تحدده طريقة التنفيذ، وعلى نمطي توجيه المقاطعات ولا واحد منهما إلزامي.

اختيرت من أجل السعر لا الجودة

لا يعني ذلك أن RISC-V محكوم عليها بالفناء، كما يكتب المؤلف، بل يتوقع أن تفوز بمساحة الأنظمة المدمجة الرخيصة وأن تظهر كنواة تحكم ملحقة بمسرّعات تعلّم الآلة، حيث يحسم السعر لا أداء النواة الواحدة: فشركة ARM تتقاضى رسوم ترخيص، في حين أن مواصفة RISC-V مجانية وتوجد نوى قابلة للترخيص مجاناً. والمهم في رأيه أن لا تفهم RISC-V ذلك كحكم على تصميمها: فالمستخدمون يختارونها لأنها رخيصة، والحد الذي عليها تجاوزه هو أن تكون جيدة بما يكفي.

SSiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.