
RISC-V؛ از هستهٔ بدون مجوز تا شتابدهندهٔ سفارشی شما
چرا RISC-V دیگر یک پروژهٔ دانشگاهی نیست
تا چند سال پیش وقتی نام RISC-V میآمد، بحث روی یک هستهٔ آموزشی بود که روی FPGA بالا میآمد و کسی آن را به محصول نمیرساند. امروز همان معماری در کنترلرهای صنعتی، مبدلهای توان، SSDها و حتی حلقههای کنترل موتور حضور دارد. دلیل اصلی اقتصادی است: وقتی تراشهای با میلیونها واحد تولید میکنید، حذف حق امتیاز معماری مستقیماً روی قیمت تمامشده اثر میگذارد؛ اما دلیل فنی مهمتر است و آن آزادی در افزودن دستورالعمل است.
در معماریهای اختصاصی، افزودن یک دستور سفارشی یعنی مذاکره با صاحب مجوز، انتظار برای نسخهٔ بعدی ابزار و معمولاً ناامیدی. در RISC-V فضای کدگذاری برای دستورالعملهای غیراستاندارد از روز اول کنار گذاشته شده است. نتیجه اینکه تیم سختافزار میتواند دستوری متناسب با الگوریتم خودش بسازد؛ مثلاً یک ضربانباشتِ مختص تبدیل فوریه یا یک دستور جمع تراکمی برای شبکهٔ عصبی.
انتخاب هسته: مشخصاتی که واقعاً مهماند
نامهای بازاری را کنار بگذارید و روی این موارد تصمیم بگیرید:
- پروفایل و نسخه: پروفایل RVA23 پایهٔ خوبی برای سیستمعاملهای لینوکسی است؛ برای میکروکنترلر سراغ RV32IMC با افزونهٔ Zba/Zbb بروید که کد فشردهتر و بیتفیلدی سریعتری میدهد.
- خط لوله و فرکانس: هستهٔ سهمرحلهای برای چند صد مگاهرتز کافی است؛ اگر هدف بالای یک گیگاهرتز است، باید ابردادهها و پیشبینی انشعاب جدی داشته باشید.
- حافظه و گذرگاه: بسیاری از مشکلات «کندی هسته» در واقع تأخیر حافظه و تداخل گذرگاه است، نه معماری پردازنده.
- ابزار و اکوسیستم: وجود کامپایلر پایدار، دیباگر و سیستمعامل پورتشده را پیش از تعهد بررسی کنید.
- تأییدپذیری: هستهای که مجموعهٔ تست سازگاری را گذرانده باشد، ماهها از زمان شما را نجات میدهد.
یک انتخاب محافظهکارانه
برای محصول اول، هستهٔ اثباتشده با مجوز تجاری و مستندات کامل را بردارید و نوآوری را در واحد سختافزاری سفارشیتان متمرکز کنید؛ نه در هسته.
افزودن دستورالعمل اختصاصی، گامبهگام
- الگوریتم را در C مرجع بنویسید و نمایهٔ زمانی بگیرید تا حلقهٔ داغ مشخص شود.
- آن حلقه را به یک دستور ذاتی (intrinsic) نگاشت کنید؛ هنوز بدون تغییر RTL.
- در فضای کدگذاری اختصاصی، واحد عملیاتی و مرحلهٔ دستورالعمل را به خط لوله اضافه کنید.
- کامپایلر را با یک پسوند سفارشی بهروز کنید یا از مکانیزم intrinsics نگهدارنده استفاده کنید.
- شبیهسازی، سنتز روی FPGA، سپس تیپاوت؛ در هر مرحله مصرف و تأخیر را ثبت کنید.
تجربهٔ عملی نشان میدهد یک دستور خوب طراحیشده برای یک تبدیل ماتریسی ۴×۴ میتواند حلقهٔ پردازش تصویر را بین ۴ تا ۸ برابر سریعتر کند، در حالی که مساحت هسته کمتر از ۵ درصد افزایش مییابد.
کجا هنوز ARM جلوتر است
- پشتیبانی نرمافزاری بالغ برای درایورهای گرافیک، مودم و اکوسیستم موبایل
- زنجیرهٔ ابزار تأییدشده برای استانداردهای ایمنی عملکردی مانند ISO 26262 در سطح بالا
- کتابخانههای بهینهشدهٔ تجاری DSP و رمزنگاری
- در دسترس بودن فوری سیلیکون آماده در بازارهای کمحجم
قاعدهٔ سرانگشتی: اگر نرمافزار شما محصول است، اکوسیستم مهمتر از معماری است؛ اگر سختافزار شما محصول است، آزادی معماری مهمتر است.

میثم پورجعفری
مهندس برق - الکترونیک؛ طراح و مجری پروژههای میکروکنترلری، برد الکترونیکی و سیستمهای کنترل صنعتی. در U97 تجربههای عملی، آموزشهای کاربردی و ابزارهای مهندسی را در اختیار…
درباره نویسنده