BOOM
Awesome RISC-V

BOOM

منظومة RISC-V

BOOM هو نواة RISC-V خارج الترتيب مكتوبة بلغة Chisel. يمكنه تنفيذ التعليمات بترتيب مختلف عن الترتيب الذي يسردها به البرنامج، مما يُبقي المزيد من وحدات التنفيذ مشغولة. صدر SonicBOOM، وهو إصداره الثالث، في عام 2020.

نظرة عامة

BOOM، وهو Berkeley Out-of-Order Machine، نواة RISC-V بعرض 64 بت مكتوبة بلغة Chisel، وهي لغة لبناء العتاد مبنية على Scala. النواة هي الجزء من الشريحة الذي ينفذ التعليمات. يمكن للنواة غير المتسلسلة تنفيذ التعليمات بترتيب مختلف عن الترتيب الذي يسردها به البرنامج. عندما تنتظر تعليمة ما بيانات من الذاكرة، تمضي التعليمات اللاحقة التي لا تعتمد عليها قدماً، ويبقى مزيد من وحدات التنفيذ في النواة مشغولاً.

تنفذ BOOM مجموعة RV64GC، وهي مجموعة التعليمات العامة بعرض 64 بت مع التعليمات المضغوطة، وتدعم الذاكرة الافتراضية وتقلع Linux. وتسجل نسختها الثالثة، SonicBOOM، 6.2 CoreMark لكل ميغاهرتز. وCoreMark برنامج قياس أداء معياري، وقسمة نتيجته على تردد الساعة تقيس مقدار العمل الذي تؤديه النواة في كل دورة ساعة.

السجل

بدأ Christopher Celio مشروع BOOM في مجموعة Berkeley Architecture Research في UC Berkeley ووصف تصميمه في تقرير تقني عام 2015. تبعت ذلك نسخة ثانية في عام 2017. قدّم Jerry Zhao وBen Korpan وAbraham Gonzalez وKrste Asanović نسخة SonicBOOM، وهي النسخة الثالثة، في عام 2020.

أين يُستخدم

BOOM هو نواة بحثية. تحدد معاملاته عرض خط الأنابيب وعدد وحدات التنفيذ وحجم الطوابير الداخلية، مما يتيح للباحثين قياس كيفية تأثير كل خيار على الأداء. يبني المستخدمون أنظمة BOOM عبر Chipyard لأن المستودع يحتوي على النواة فقط.

المصادر

  1. riscv-boom README
  2. The Berkeley Out-of-Order Machine, UCB/EECS-2015-167
  3. BOOM v2, UCB/EECS-2017-157
  4. SonicBOOM, CARRV 2020