ریسک پنج

مجموعه دستور العمل متن باز برای پردازنده کامپیوتر

ریسک پنج (به انگلیسی: RISC-V) یک معماری مجموعه دستورالعمل استاندارد باز (ISA) است که بر اساس اصول رایانه تنظیم شده دستورالعمل کاهش یافته (RISC) تنظیم شده‌است. برخلاف بیشتر طرحهای ISA دیگر، ISA ریسک پنج تحت مجوزهای منبع باز (Open-hardware) ارائه می‌شود که استفاده از آنها نیازی به هزینه ندارد. تعدادی از شرکت‌ها سخت‌افزار بر پایه ریسک پنج ارائه می‌دهند، سیستم عامل‌های آزاد با پشتیبانی ریسک پنج در دسترس هستند و مجموعه دستورالعمل‌ها در چندین ابزار نرم‌افزار معروف پشتیبانی می‌شوند.

ریسک پنج (RISC-V)
طراحدانشگاه_کالیفرنیا،_برکلی
بیت‌ها
  • ۳۲
  • ۶۴
  • ۱۲۸
تاریخ معرفی۲۰۱۰
نسخه
  • unprivileged ISA 20191213,[۱]
  • privileged ISA 20190608[۲]
طرحRISC
گونهذخیره-بار
کدگذاریمتغیر
اندیانکوچک[۱][۳]
اندازه صفحه4 KiB
افزونه‌ها
  • M: Multiplication
  • A: Atomic
  • F: Floating point (32-bit)
  • D: FP Double (64-bit)
  • Q: FP Quad (128-bit)
آزاد بودنبله
ثبّات‌ها
هدف اصلی
  • ۱۶
  • ۳۲
(شامل یک رجیستر همواره صفر)
ممیز شناور۳۲ (اختیاری)

از ویژگی‌های قابل توجه ISA ریسک پنج می‌توان به الگوهای بیت برای ساده‌سازی مالتی پلکسرها در پردازنده، نقطه شناور IEEE 754، طرحی که از نظر معماری خنثی است و قرار دادن مهمترین بیت‌ها در یک مکان ثابت برای سرعت دادن به افزونه علامت اشاره کرد. این مجموعه دستورالعمل برای طیف وسیعی از کاربردها طراحی شده‌است. دستورهای ریسک پنج طول متغیری دارند و همواره می‌توان با افزونه‌ها کدگذاری جدیدی اضافه کرد. ریسک پنج در سه استاندارد ۳۲، ۶۴ و ۱۲۸ بیتی ارائه می‌شود که از آن در سیستم‌های کوچک جاسازی شده، رایانه‌های شخصی، ابر رایانه‌هایی با پردازنده‌های برداری و رایانه‌های موازی نصب شده در رک ۱۹ اینچی استفاده می‌شود.

این پروژه در سال ۲۰۱۰ در دانشگاه کالیفرنیا، برکلی همراه با بسیاری از مشارکت کنندگان داوطلب که به دانشگاه وابسته نبودند، آغاز شد. برخلاف سایر طرح‌های دانشگاهی که معمولاً فقط برای سادگی در ارائه و آموزش بهینه می‌شوند، طراحان قصد داشتند که مجموعه دستورالعمل‌های ریسک پنج برای رایانه‌های کاربردی قابل استفاده باشد.

از ژوئن ۲۰۱۹، نسخه 2.2 ISA فضای کاربر و نسخه 1.11 ISA ممتاز منجمد شده و اجازه توسعه نرم‌افزار و سخت‌افزار را می‌دهد. فضای کاربر ISA که اکنون به ISA غیرمجاز تغییر نام داده‌است، به عنوان نسخه ۲۰۱۹۱۲۱۳ به روزرسانی، تصویب و منجمد شد. مشخصات اشکال زدایی به عنوان پیش نویس، نسخه ۰٫۱۳٫۲ موجود است.[۲]

ریشه

نمونه اولیه یک پردازنده ریسک پنج، ژانویه ۲۰۱۳

طراحی پردازنده به مهارت طراحی در چندین تخصص نیاز دارد: منطق الکترونیکی دیجیتال، کامپایلرها و سیستم عامل‌ها. برای تأمین هزینه‌های چنین تیمی، فروشندگان تجاری طراحی‌های رایانه ای، مانند ARM Holdings و MIPS Technologies هزینه ای بابت حق استفاده از طرح‌ها، حق ثبت اختراع و حق تکثیر می‌گیرند.[۴][۵][۶]آنها همچنین اغلب قبل از انتشار اسنادی که مزایای دقیق طرحهای آنها را شرح می‌دهد، به توافق‌نامه عدم افشای اطلاعات احتیاج دارند. در بسیاری از موارد، آنها هرگز دلایل انتخاب خود را توضیح نمی‌دهند.

ریسک پنج با هدف ساخت یک ISA عملی آغاز شد که دارای منابع آزاد باشد، از نظر علمی و در هر طراحی سخت‌افزاری یا نرم‌افزاری بدون حق امتیاز قابل استفاده باشد.[۱][۷] همچنین، منطق هر قسمت از پروژه، حداقل به‌طور کلی توضیح داده شده‌است. طراحان ریسک پنج دانشگاهی هستند اما در طراحی کامپیوتر تجربه قابل توجهی دارند. ریسک پنج پروژه ای از مجموعه پروژه‌های دانشگاه برکلی در حوزه طراحی رایانه است. بخشی از آن برای کمک به چنین پروژه‌هایی ایجاد شده‌است.[۱][۷]

به منظور ایجاد یک جامعه گسترده و مداوم از کاربران و در نتیجه جمع‌آوری طرح‌ها و نرم‌افزارها، طراحان ریسک پنج قصد داشتند از طیف گسترده‌ای از کاربردهای عملی پشتیبانی کنند: پیاده‌سازی‌های کوچک، سریع و کم مصرف.[۱][۸]

طراحان می‌گویند که مجموعه دستورالعمل‌ها رابط اصلی رایانه است زیرا بین سخت‌افزار و نرم‌افزار قرار دارد. اگر یک مجموعه دستورالعمل خوب باز باشد، همه برای استفاده در دسترس باشند، باید با اجازه استفاده مجدد بیشتر هزینه نرم‌افزار را به طرز چشمگیری کاهش دهد. همچنین باید رقابت بین ارائه دهندگان سخت‌افزار، که می‌توانند از منابع بیشتری برای طراحی استفاده کنند و هزینه کمتری برای فراهم کردن پشتیبانی نرم‌افزار بپردازند، افزایش یابد.[۷]

طراحان ادعا می‌کنند که اصول جدید در طراحی مجموعه دستورالعمل‌ها به مرور نادر شده‌اند، زیرا موفق‌ترین طراحی‌های چهل سال گذشته به‌طور فزاینده ای شبیه به هم شده‌اند. افرادی که شکست خوردند، بیشتر به دلیل این بوده‌است که شرکت‌های حامی مالی آنها از نظر تجاری شکست خوردند، نه به این دلیل که مجموعه دستورالعمل‌ها از نظر فنی ضعیف بودند؛ بنابراین، یک مجموعه دستورالعمل باز کاملاً طراحی شده با استفاده از اصول کاملاً ثابت باید پشتیبانی طولانی مدت بسیاری از فروشندگان را جلب کند.[۷]

ریسک پنج همچنین برای کاربردهای علمی و دانشگاهی مناسب است. سادگی زیرمجموعه عدد صحیح اجازه تمرینات پایه دانشجویی را می‌دهد. زیرمجموعه عدد صحیح یک ISA ساده است که قادر است ماشین‌های تحقیق را کنترل کند. ISA با طول متغیر برنامه‌های افزودنی را برای تمرین دانشجویی و تحقیق امکان‌پذیر می‌کند. مجموعه دستورالعمل‌های ممتاز لوازم تحقیق در مورد پشتیبانی سیستم عامل، بدون طراحی مجدد کامپایلرها را فراهم می‌کند.[۹] مالکیت معنوی باز ریسک پنج اجازه می‌دهد تا طرح‌های آن منتشر، استفاده مجدد و اصلاح شود.

طراحی

ISA پایه و افزونه‌ها

ریسک پنج دارای یک طراحی مدولار، متشکل از قطعات پایه متنوع، با افزونه‌های اختیاری اضافه شده‌است. ISA پایه و افزونه‌های آن در یک تلاش جمعی بین صنعت، جامعه تحقیقاتی و موسسات آموزشی توسعه یافته‌است. دستورالعمل‌های پایه (و کدگذاری آنها)، جریان کنترل، رجیسترها (و اندازه آنها)، حافظه و آدرس دهی، منطق (یعنی عدد صحیح) را دستکاری می‌کند و سایر موارد جانبی را مشخص می‌کند. این پایگاه به تنهایی می‌تواند یک رایانه ساده با اهداف عمومی را با پشتیبانی کامل از نرم‌افزار، از جمله یک کامپایلر عمومی، پیاده‌سازی کند.

افزونه‌های استاندارد برای کار با همه پایه‌های استاندارد و بدون تعارض با یکدیگر مشخص شده‌اند.

بسیاری از رایانه‌های ریسک پنج ممکن است افزونه فشرده سازی را برای کاهش مصرف برق، اندازه کد و استفاده از حافظه اجرا کنند. همچنین برنامه‌هایی در آینده برای پشتیبانی از hypervisors و مجازی سازی وجود دارد.[۹]

پایه‌ها و افزونه‌های استاندارد (۲۰۱۹۱۲۱۳)
نامشرحنسخهوضعیت [الف]
پایه
RVWMOسفارش حافظه ضعیف۲٫۰تصویب شده
RV32Iمجموعه دستورالعمل پایه، ۳۲ بیتی۲٫۱تصویب شده
RV32Eمجموعه دستورالعمل Base Integer (تعبیه شده)، ۳۲ بیتی، ۱۶ رجیستری۱٫۹Open
RV64Iمجموعه دستورالعمل پایه، ۶۴ بیتی۲٫۱تصویب شده
RV128Iمجموعه دستورالعمل پایه، ۱۲۸ بیتی۱٫۷باز
افزونه
Mافزونه استاندارد برای ضرب و تقسیم عدد صحیح۲٫۰تصویب شده
Aافزونه استاندارد برای دستورالعمل‌های اتمی۲٫۱تصویب شده
Fافزونه استاندارد برای یک شناور با دقت دقیق۲٫۲تصویب شده
Dافزونه استاندارد برای نقطه شناور دو دقیق۲٫۲تصویب شده
Gخلاصه ای برای مجموعه عدد پایه (I) و افزونه‌های بالا (MAFD)
Sافزونه استاندارد برای نقطه شناور چهار دقیق۲٫۲تصویب شده
Lافزونه استاندارد برای نقطه شناور اعشاری۰٫۰باز
Cافزونه استاندارد برای دستورالعملهای فشرده شده۲٫۰تصویب شده
Bافزونه استاندارد برای عملیات‌های بیتی۰٫۹۲باز
Jافزونه استاندارد برای زبانهای ترجمه شده به صورت پویا۰٫۰باز
Tافزونه استاندارد برای حافظه تراکنشی۰٫۰باز
Pافزونه استاندارد برای دستورالعمل‌های بسته‌بندی شده SIMD۰٫۲باز
Vافزونه استاندارد برای عملیات برداری۰٫۹باز
Nافزونه استاندارد برای وقفه‌های سطح کاربر۱٫۱باز
Hافزونه استاندارد برای Hypervisor۰٫۴باز
ZiCSRثبت کنترل و وضعیت (CSR)۲٫۰تصویب شده
ZifenciInstruction-Fetch Fence۲٫۰تصویب شده
ZamMisaligned Atomics۰٫۱باز
ZtsoTotal Store Ordering۰٫۱یخ زده

جستارهای وابسته

منابع

مطالعه بیشتر

پیوند به بیرون