از زمان بهوجودآمدن کامپیوترها هر روزه تلاش شده تا کامپیوترهای بهتری بسازند که مشکلات قبل رو نداشته باشد، اگر به تاریخ کامپیوترها نگاهی بیندازید متوجه خواهید شد که هیچوقت توسعهدادن کامپیوتر متوقف نشده و همیشه سعی بر بهتر کردن کامپیوترها کردن، این تلاشها برای بهتر کردن کامپیوترها همیشه فقط در بعد سایز ترانسیستور یا جریان مصرفی و یا هزاران مؤلفه دیگر نبودند، گاهی تلاشها برای بهتر کردن ساختار داخلی پردازنده بوده است اگر یک سرچ ساده در اینترنت بکنید لیست کاملی از همه معماریهایی که تا به امروز ساخته شدن رو میبینید.
از بین همه این معماریها موضوع این سری آموزشها و مقالهها با RISC_V هست، این معماری تقریباً معماری جدیدی است و دوستان در سیسوگ قبلاً در مورد آن صحبت کردهاند، ما هم کمی در اول راه مقاله به آن میپردازیم.
پردازندههای RISC سبکی از معماری پردازندهها هستند که از مجموعهای محدود و ساده از دستورالعملها استفاده میکنند. در این معماری، تمرکز بر روی سرعت اجرای دستورات و بهرهوری بالاست. برخلاف معماری CISC (Complex Instruction Set Computer) که دستورات پیچیده و گستردهتری دارد،RISC بهجای آن از دستورات سادهتر و معماری سادهتر استفاده میکند.
ویژگی های معماری RISK
بعضی از ویژگیهای معماری RISC شامل موارد زیر است:
- استفاده از دستورات ساده و معمولاً یکانی: دستورات در RISC معمولاً سادهتر و کوتاهتر هستند و بهصورت یکانی (بدون ترکیب دستورات) عمل میکنند.
- تعداد محدودی دستورات: معماری RISC با مجموعهای محدود از دستورات عمل میکند که به افزایش سرعت و کاهش پیچیدگی معماری کمک میکند.
- اجرای سریع دستورات: با استفاده از دستورات ساده، اجرای دستورات در پردازندههای RISC به طور معمول سریعتر از CISC است.
- باریکه ساختاری: معماری RISC معمولاً دارای ساختارهای سادهتر و باریکهتری است که به بهرهوری و کارایی بالاتر کمک میکند.
تفاوت RISC و RISC_V
(Reduced Instruction Set Computer) RISC
RISC یک رویکرد در طراحی معماری پردازنده است که بر این اصل استوار است که با استفاده از مجموعهای کوچک و ساده از دستورات، عملکرد پردازندهها را بهبود بخشیده و پیچیدگی آنها را کاهش دهد.
مثالهای از معماریهای RISC شامل MIPS،ARM و SPARC هستند.
RISC-V
- RISC-V نیز یک نوع از معماری RISC است، اما بهعنوان یک استاندارد آزاد و متنباز برای معماری پردازندهها مطرح است. بهعبارتدیگر، RISC-V یک مجموعه از دستورات و رابطهای برنامهنویسی است که توسط پردازندهها باید پشتیبانی شود.
- RISC-V متنباز بوده و اجازه میدهد که آن را باتوجهبه نیازهای خود توسعه دهند و تصحیحات لازم را اعمال کند.
این استاندارد ابزار قدرتمندی برای توسعهدهندگان است و بهویژه برای افراد و شرکتهایی که میخواهند پردازندههای خود را طراحی کنند.
ازاینرو، اصطلاح RISC به معماری کلی اشاره دارد، درحالیکه RISC-V یک استاندارد خاص در این معماری است که باز و آزاد است.
مقایسه RISC_V با ARM محبوب ما
همانطور که بالاتر نیز اشاره شد ARM هم از معماری RISC استفاده میکند، اما اپنسورس نیست و به مالکیت شرکت ARM هست که این خود باعث میشوند که شخصیسازی کمتری بتوان روی آن انجام داد، اما خب این مباحث زیاد به ما طراحان مربوط نیست، ما که نمیخوابم یک پردازنده بسازیم یا شخصیسازی کنیم، چیزی که برای ما مهمه طریقه برنامهنویسی، قیمت و سرعت آن است، در میان دو پردازنده ARM و RISC_V نمیشود آنچنان تفاوت سرعت پردازشی رو دید و بیشتر به پارامترهایی مثل فرکانس پردازنده، بهینگی معماری، اندازه کشهای حافظه، و پیادهسازی فیزیکی بستگی دارد.
تاریخچه پردازندههای RISC_V چرا بهش میگیم معماری جوان؟
ایده و منشأ معماری RISC-V در دانشگاه کالیفرنیای برکلی (UC Berkeley) در دهه 2000 مطرح شد و این پروژه به عنوان بخشی از طرح “بهبود معماریهای پردازنده” آغاز شد.
نیازی که به یک معماری آزاد حس میشد چرخهای توسعه این معماری با سرعت هرچهتمامتر هل داد و باعث شد که اولین نسخه عمومی این تراشه در سال 2010 به عنوان RISC_V (Public Release 1.0) به همراه مجموعهای از دستورالعملها، رابطهای برنامهنویسی، و ساختارهای پایه برای پردازنده.
این معماری آزاد بهسرعت جای پای خودش رو در مراکز تحقیقات یارانهای باز کرد و طولی نکشید که استفاده از این معماری بین مهندسان و طراحان افزایش یافت.
ولی خب همانطور که بالاتر مطرح شد، هیچ ویژگی چشمگیری که باعث شود معماری RISC_V را بهتر از بقیه بدانیم ندارد. اما به علت آزاد بودن آن شرکتهای سازنده چیپ، میتوانند چیپهای ارزانتری با ویژگیهای بسیار خوب روانه بازار کنند.
ساختار داخلی یک میکروکنترلر بر اساس پردازندهای با معماری RISC_V
در عکس زیر دیاگرام داخلی یک میکرو رو میبینید که از شرکت WCH هست و میخواهیم در این آموزشها با آنها کار کنیم
در پس از بررسی دیاگرام متوجه خواهیم شد که بسیار شبیه به میکروکنترلرهایی بر اساس هستههای ARM هستند، این دیاگرام داخلی میکرو کنترلی هست که میخواهیم در آینده با آن کار کنیم. برخی از قابلیتهای آن نیز در زیر آمده است که خدایی کم نذاشتن:
- Qingke V4F processor, up to 144MHz system clock frequency.
- Single-cycle multiplication and hardware division. Hardware float point unit (FPU).
- 64KB SRAM, 256KB Flash.
- Supply voltage: 2.5V/3.3V. GPIO unit is supplied independently.
- Low-power modes: sleep/stop/standby.
- Power-on/power-down reset (POR/PDR), programmable voltage detector (PVD).
- 2 general DMA controllers, 18 channels in total.
- 4 amplifiers.
- One true random number generator (TRNG).
- 2 x 12-bit DAC.
- 2-unit 16-channel 12-bit ADC, 16-channel TouchKey.
- 10 timers.
- USB2.0 full-speed OTG interface.
- USB2.0 high-speed host/device interface (built-in 480Mbps PHY).
- 3 USARTs, 5 UARTs.
- 2 CAN interfaces (2.0B active).
- SDIO interface, FSMC interface, DVP.
- 2 IIC interfaces, 3 SPI interfaces, 2 IIS interfaces.
- Gigabit Ethernet controller ETH (built-in 10M PHY).
- 80 I/O ports, can be mapped to 16 external interrupts;
- CRC calculation unit, 96-bit unique ID.
- Serial 2-wire debug interface.
- Packages: LQFP64M, LQFP100.
معرفی و آموزش کارکردن با پردازندههایی بر اساس این معماری از شرکت WCH
بههرحال مشابه این مقالات در سیسوگ موجود بود و این صحبتها برای شروع راه پیش روی ماست، میتوان اسم این جلسه رو گذاشت پیش گفتار.
شرکتهای بزرگ و کوچکی وجود دارند که بر اساس معماری RISC_V پردازنده ساختهاند و عرضهکردن که با یک سرچ ساده میتوانید اسامی آنها را ببینید، ما در اینجا با یک شرکتی که شاید آنچنان برایتان ناآشنا نباشد میخواهیم کار کنیم.
ما میخواهیم در ادامه آموزشها طریقه کارکردن و برنامهنویسی به میکروهای شرکت WCH که بر اساس معماری RISC_V هستند را شروع کنیم.
در جلسه بعدی آموزشها با میکروکنترلرهای این شرکت و نرمافزارها و سختافزارهای موردنیاز آشنا میشویم.