وقتی صحبت از معماری کامپیوتر به میان میآید، معماری x86 یا ARM در ذهنمان تداعی میشود. آیا درباره معماری Open source نوظهور که روزبهروز محبوبتر میشود، یعنی RISC-V (یا همانطور که خوانده میشود Risc-Five) شنیدهاید؟ اگر پاسختان خیر است، حتما باید دامنه اطلاعات خود را در این باره بیشتر کنید! زیرا در آینده نزدیک شاهد استفاده گسترده از این تکنولوژی خواهیم بود.
با سیسوگ همراه باشید.
ISA چیست؟
پیش از ادامه صحبت درباره RISC-V بد نیست معرفی مختصری از ISA داشته باشیم. ISA یا معماری مجموعه دستورات کامپیوتر، یک مدل انتزاعی از معماری یک کامپیوتر است که جزییاتی مثل مدل رجیسترها، دستورات ماشین و … را مشخص میکند. مثالی از محقق سازی این طرح انتزاعی ساخت یک واحد پردازنده مرکزی (CPU) است، به این عمل پیادهسازی گفته میشود. ISA هایی که در حال حاضر بهطور گسترده استفاده میشوند x86 (از شرکت Intel) و ARM هستند. از معماریهای قدیمیتر نیز میتوان SPARC و VAX و از ریزپردازندههای اولیه میتوان Z80 و 6502 را نام برد.
نکتهای درباره ISA ها که معمولاً به آن توجه نمیشود این است که ISA ها داراییهای فکری هستند که توسط سازنده آنها به ثبت رسیده است و حقوق آنها محفوظ است. این یعنی اگر یک تولیدکننده مثل Freescale یا Broadcom بخواهد در طرح خود از یک پردازنده منطبق بر ARM استفاده کند، باید از شرکت ARM (مالک این معماری)، مجوز دریافت کند.
شما میتوانید معماری موردنظر و مختص خودتان را طراحی و استفاده کنید اما باید در نظر داشته باشید که کار سادهای نخواهد بود. طراحی یک ISA شامل مشخص کردن ریزترین جزییات یک سیستم پردازشی است. بهعنوانمثال معماری x86، برای اولین بار در سال 1978 و در چیپ 8086 ساخت شرکت Intel استفاده شد. شروع کار معماری Arm نیز سال 1981 در کامپیوتر BBC Micro، ساخته شرکت Acorn بود. هردوی این معماریها از آن زمان درحالتوسعه و گسترش بودهاند.
RISC-V چیست؟
RISC-V یک ISA طراحیشده بر اساس قواعد “کامپیوتر با مجموعه دستورات کاهشیافته” یا RISC است. نکته مهم درباره این معماری این است که برخلاف بیشتر معماریهای موجود، RISC-V بهصورت Open-source به ثبت رسیده است و برای استفاده از آن نیاز به پرداخت هیچ هزینهای نیست! به همین دلیل چون شرکتهای تولیدکننده میکروکنترلر و soc برای پردازنده نیاز به پرداخت لایسنس ندارد انتظار میرود که هزینه تمامشده چیپ ها کمتر از نمونه مشابه arm باشد.
تاریخچه RISC-V
این پروژه در سال 2010 و در دانشگاه برکلی کالیفرنیا به همراه جمعی از مشارکتکنندگان داوطلب دیگر بهعنوان زیرمجموعهای از پروژه آزمایشگاه پردازش موازی (Par Lab) شروع شد. پروژه Par Lab در جهت پیشرفت پردازش موازی، در سال 2008 شکل گرفت و شرکتهای مهمی ازجمله Intel با سرمایه 10 میلیون دلاری از این پروژه پشتیبانی کردند و در سال 2013 پایان یافت. پسازآن، پروژه Par Lab از پشتیبانیهای مالی دیگری برخوردار شد، اما بودجه آنها صرف توسعه معماری RISC-V نمیشد.
نکته قابلتوجه این بود که همه پروژههای Par Lab (ازجمله RISC-V و Chisel) بهصورت Open source و تحت لیسانس BSD (Berkeley Software Distribution) به ثبت رسیدند.بعد از انتشار طرحهای اولیهی RISC-V، اولین چیپ بر اساس این معماری در سال 2011 با تکنولوژی 28nm FDSOI و با حمایت شرکت ST Microelectronics تولید شد. بعدازآن در سال 2014 مقالهای در رابطه با مزایای معماری Open source منتشر گردید.
در سال 2015 اولین کارگاه RISC-V برگزار شد و کمی بعد بهمنظور پایدار کردن پروژه و همچنین ایجاد جذابیت برای استفادهکنندههای تجاری، یک موسسه رسمی RISC-V برای مالکیت، پشتیبانی و انتشار این معماری تشکیل شد. این موسسه که اخیراً به RISC-V International تغییر نام داده، در کشور سوییس مستقرشده است.
دلیل اهمیت RISC-V
ازنظر فنی، RISC-V ویژگی خلاقانه جدیدی ندارد. این معماری از اصول ثابت RISC پیروی کرده و از یک معماری load-store بهره میگیرد. مزیت این امر، سازگاری با معماری شناختهشده است.
RISC-V مثل معماریهای دیگر، جزییات کامل مربوط به سطوح مختلف مجموعه دستورات را شرح میدهد. این جزییات شامل مواردی مثل دستورات نوع 32 و 64 بیتی و همچنین امکان گسترش و پشتیبانی از دستورات floating point میشود. همین امر موجب میشود که امکان تنوع در طراحی سختافزار برای کاربردهای مختلف به وجود آید. از میکروکنترلرهای کوچک گرفته تا کامپیوترهای شخصی و حتی ابرکامپیوترهای دارای vector processor.
رجیسترها در RISC-V
در این معماری 32 (یا 16 رجیستر) رجیستر integer دارد. در حالتی که ماژول نیز پیادهسازی شده باشد، 32 رجیستر floating-point را هم شامل میشود. علاوهبر اینها رجیسترهای دستورات دسترسی به حافظه و آدرس دستورات نیز وجود دارند. رجیسترهای status و کنترلی نیز وجود دارند اما برنامهها در حالت user-mode تنها به رجیسترهای عمومی و مدیریت floating-point دسترسی دارند. قابلذکر است که دستوری برای ذخیره و بازیابی چند رجیستر تعبیه نشده است. دلیل این امر احتمالاً عدم نیاز، پیچیدگی زیاد یا شاید سرعت کم چنین دستوری در نظر گرفتهشده است.
جدول مربوط به رجیسترهای integer و floating-point در شکل زیر دیده میشود:
دسترسی به حافظه
همانطور که گفته شد، RISC-V مثل بسیاری از معماریهای دیگری که بر پایه RISC هستند، یک معماری load-store است. یعنی اینکه رجیسترهای instruction address only، عمل خواندن دستورات در حافظه و یا ذخیره آنها در حافظه را انجام میدهند. اکثر دستورات load و store شامل یک آفست 12 بیتی و دو میدان مشخصکننده رجیستر هستند. یک رجیستر base register و رجیستر دیگر، رجیستر منبع (برای عملیات store) و رجیستر مقصد (برای عملیات load) است. برای پیدا کردن آدرس، آفست 12 بیتی به مقدار base register اضافه میشود.
حافظه در RISC-V با بایتهای آن آدرسدهی میشود و ترتیب دستورات نیز little-endian در نظر گرفتهشده است. ترتیب بایتهای دادهها نیز توسط Interface محیط اجرای کد تعریف میشود. طراحی RISC-V از ابتدا برای کاهش پیچیدگی و هزینه و همچنین انطباق با طرحهای شناختهشده (مثل x86) بهصورت little endian بوده است. بااینحال نمونههای Big-endian و bi-endian نیز تعریفشدهاند.
پشتیبانی نرمافزاری
یک مشکل معمول که معماریهای نوظهور به آن دچار میشوند، کمبود طراحیهای CPU و همچنین پشتیبانی نرمافزاری است. در حال حاضر تعداد بسیار زیادی طرح CPU برای RISC-V وجود دارد. ازنظر نرمافزاری نیز RISC-V توسط تعدادی از کامپایلرها ازجمله GCC، پشتیبانی میشود. علاوه بر آن ابزار LLVM، شبیهسازهای OVPSim و SPike و همچنین یک شبیهساز در QEMU برای این معماری وجود دارند. معماری RISC-V از سیستم عامل های کرنل لینوکس، FreeBSD، NetBSD و همچنین OpenBSD پشتیبانی میکند.
پشتیبانی سختافزاری
شرکتهایی که سختافزار RISC-V تولید میکنند یا چنین محصولی را اعلام کردهاند شامل Qualcomm ،Samsung ،Alibaba و حتی Nvidia میشوند. استارتآّپهایی مثل SiFive نیز هستند که در تلاشاند پردازندههایی بر اساس این معماری، برای رقابت با پردازندههای Arm تولید کنند. طیف این سختافزارها از میکروکنترلرها تا SOM و SOC های باقابلیت اجرای لینوکس و حتی FPGA های دارای هسته RISC-V را شامل میشود.
شاید برای شما مفید باشد: آموزش FPGA
برخی محصولات قابل توجه که از RISC-V استفاده میکنند:
- پردازنده XuanTie C906 ساخته شرکت Allwinner Technology
- پردازنده کمکی RISC-V که شرکت Espressif به میکروکنترلر ESP32-S2 خود اضافه کرده است. برخی مشخصات میکروکنترلر ESP32-C3 که براساس RISC-V طراحی شده :
- پردازنده تک هستهای 32 بیتی
- میکروکنترلر بر پایه RISC-V با 400KB حافظه SRAM
- فرکانس کاری 160MHz
- میکروچیپ Mi-V ecosystem که شامل CPU های soft-core RISC-V میشود.
- Seeed Studio Perf-V بر پایه یک Xilinx Artix-7 RISC-V FPGA
- BeagleV که یک کامپیوتر تک بوردی ارزان قیمت با قابلیت اجرای لینوکس است.
- میکروکنترلر HiFive1 Rev B
- SparkFun RED-V RedBoard که یک میکروکنترلر در فرم Arduino است.
- LoFive RISC-V SoC evaluation kit
- ماژول امنیتی Titan M2 شرکت گوگل که برای گوشی موبایل Pixel 6 توسعه داده شده است.
علاوه بر اینها، معماری RISC-V در محصولات درحالتوسعه قابل توجهی استفاده میشود که ازجمله آنها میشود بهکارت گرافیکهای شرکت Nvidia اشاره کرد. این شرکت قصد دارد که پردازندههای Falcon خود را با RISC-V جایگزین کند.
یک مورد با اهمیت دیگر از پیادهسازی RISC-V شتابدهندهی هوش مصنوعی شرکت Esperanto با بیش از هزار هسته RISC-V است.
نتیجه
RISC-V از این نظر اهمیت زیادی دارد که سازندگان کوچکتر سختافزار را قادر میسازد بدون نیاز به پرداخت هزینهی معماری، دست به تولید بزنند. همچنین توسعهدهندگان و محققین میتوانند از یک معماری مجموعه دستورات رایگان و قدرتمند برای آزمایشها و طراحیهای خود استفاده کنند. علاوه بر همه اینها این موضوع سبب قوت گرفتن نوآوری و رقابت در دورهای شده است که تولیدکنندگان بزرگ، شرکتهای رقیب را خریداری میکنند. یک مصداق اخیر از این موضوع، تلاش Nvidia برای خریداری ARM بود، که البته با شکست مواجه شد. در آخر لازم به ذکر است که کامیونیتی RISC-V و منابع مهم این معماری از طریق صفحه رسمی RISC-V قابلدسترسی است.
ضمن عرض سلام و تشکر از زحمات مجموعه سیسوگ، چند سوال برایم پیش آمده که امیدوارم بتوانم با راهنماییهای شما و کاربران، به پاسخ مناسب برسم.
۱- معماری و ریز معماری یک پردازنده اگر به صورت منبع باز ارائه بشه، به چه صورت میتونه برای “کاربر” مفید باشه، به تفسیر بهتر، یک مهندس کامپیوتر چه بهرهبرداری از این طرح میتونه داشته باشه؟
۲- مفهوم از «منبع باز بودن معماری پردازنده» چیست؟ یعنی شخص میتونه پردازنده رو به صورت کامل سفارشیسازی کنه؟ اونوقت پردازنده سفارشیسازی شدهی جدید نیاز به کامپایلر، سیستم عامل و زبان برنامهنویسی جدید خواهد داشت، که عملاً غیر ممکن و یا بسیار هزینه بردار خواهد بود، تا در نتیجه آن یک سیستم کامپیوتری به وجود بیاد که کاربری بجز سازنده نداره.
۳- در صورت سازگاری با سیستم عاملها، کامپایرها و زبانهای برنامهنویسی موجود، چه تفاوتی بین معماریهای تجاری با نوع منبعباز وجود خواهد داشت بجز وجود خطرات بالقوه همچون باگها و تهدیدات امنیتی در مدل منبع باز.
۴- برای کاربر که قصد طراحی یک محصول بر پایهی اینترنت اشیاء را دارد، معماری RISC-V یا ARM بودن هسته ESP32 چه تفاوتی خواهد داشت؟ آیا کاربر میتواند بر اساس نیاز محاسباتی یا منطقی خود، در هسته ESP32 را که RISC-V است، تغییراتی ایجاد کند که باعث افزایش بهرهوری طرح شود؟ اگر آری، به چه صورت و با صرف چه مقدار هزینه مالی و زمانی؟
۵- آیا به منظور افزایش بهرهوری در طرح، استفاده از FPGA برای سفارشیسازی یک سیستم کامپیوتری در کنار یک پردازنده ARM نتیجهی بسیار چشمگیرتری نخواهد داشت؟ در نتیجه معماری RISC-V چه دستاوردی خواهد داشت؟ آیا برای سنتز یک پردازنده سفارشی با هسته RISC-V که زمان و بودجهی مالی زیادی برای طراحی ریز-معماری، کتابخانههای استاندارد زبان برنامهنویسی و… و ساخت ASIC، و آزمونهای متعدد و… نیاز نیست!؟ پس چه کاربرد مفیدی میتواند داشته باشد برای من نوعی که مالک Qualcomm یا Huawei نیستم تا هزینه توسعه در برابر سود حاصله از بابت ارائه و فروش محصولات مرتبط با آن پردازنده، ناچیز باشد؟
۶- لطفاً چند نمونه عملی که حاصل تجربهی کاربر باشد را مثال بزنید، آیا کسی تا کنون ESP32 با هسته RISC-V را به جای هسته ARM Cortex(M,A,R) استفاده کرده است؟ چه مزایایی از نظر سرعتی، مصرف انرژی و افزایش قابلیتهای پردازشی دارد؟
سوالات بسیار دیگری هم هستند که تایپ بیش از این، از حد حوصله اینجانب خارج است.
لطفاً اگر مطابی مناسب و مفید یافتید، لطفاً ارائه نمایید.
تشکر.
” شرکتهای مهمی ازجمله Intel و Microsoft با سرمایه 10 میلیون دلاری از این پروژه پشتیبانی کردند”
آیا مدرکی در این باره وجود داره که مایکروسافت تو این پروژه سرمایه گذاری کرده ؟ میتونین رو کنین مدرک رو ؟
چطور میشه مایکروسافت از این پروژه حمایت بکنه اما هیچ نام و نشانی ازش تو بخش عضویتش وجود نداشته باشه ؟
https://riscv.org/members
برای موفقیت جلوه دادن ریسک فایو واقعا نیازی نبود حداقل تو این بخش اسمی از مایکروسافت نام ببرین .
بیش از حد دارین شرکت های تکنولوژی آمریکایی مخصوصا مایکروسافت رو گنده میکنین ، از طریق تبلیغات طوری وانمود میکنین که انکار یک پروژه برای اینکه به موفقیت برسه نیاز هست تا مایکروسافت بهش دستدرازی کنه و برعکس دارین یک پروژه متن باز رو گدا نشون میدین که همیشه باید به مایکروسافت متکی باشه تا موفق بشه این فقط تبلیغات بیش از حد شماست که مردم رو به این دیدگاه میکشونید.
سلام دوست عزیز
ممنونم برای تذکر شما، من هم حدود نیم ساعت در حال جستجو برای پیدا کردن ردپای ماکروسافت بودم که عملا به هیچ ردپایی نرسیدم، در مقالات منبع هم نبود،
مطلب رو اصلاح میکنیم
متشکرم برای بازخورد شما
دوست عزیز حکمرانی pc ها دست مایکروسافت هست چه فایده شما سخت افزار بسازی نتونه با ویندوز و یا داس کار کنه ویا با بقیه چیزایی که به مایکرو سافت مربوطه رو اجرا کنه سی پی یو درست نمیکنن که بخندن دور هم یا پردازش کنه کی یه لامپ روشن یا خاموش بشه نکته : ریسک فایو معماری کاملا موفق و به سرعت رو به رشدی هست و خیلی از شرکت ها بدون سرو صدا تبلیغاتی دارن روش کار میکنن
بیش از حد دارین شرکت های تکنولوژی آمریکایی مخصوصا مایکروسافت رو گنده میکنین !!! جواب : یک سیستم عامل غیر امریکایی رو نمیتونیم پیدا کنیم یک کرنل سیستم عامل غیر امریکایی نمیتونیم پیدا کنیم یک ریز معماری غیر امریکایی نمیتونیم پیدا کنیم . شما فک کردین این risk v از کدوم کشور شروع شده ؟این پروژه در سال 2010 و در دانشگاه برکلی کالیفرنیا ….
سلام ممنون . خیلی زحمت کشیدید و اطلاعات خوبی قرار دادید . امیدوارم روزی برسه بتونیم در ایران طراحی و تولید تراشه های الکترونیک رو خودمون انجام بدیم . موفق و پیروز باشید .منتظر مقاله های بعدی در این راستا هستم .
سلام دوست عزیز، خیلی خوشحالم که این مطلب مورد توجه شما قرار گرفته و استفاده کردین.
شما هم موفق باشید.