RISC و CISC
RISC و CISC نام دو فلسفه متضاد در مجموعه دستورالعملها هستند: کامپیوترهای با مجموعه دستورالعملهای کاهشیافته (RISC) از مجموعههای کوچکی از دستورالعملهای ساده، یکنواخت و رجیستر-به-رجیستر حمایت میکنند، در حالی که کامپیوترهای با مجموعه دستورالعملهای پیچیده (CISC) دستورالعملهای قدرتمند و با طول متغیر زیادی را ارائه میدهند که در هر دستورالعمل کار بیشتری انجام میدهند.
Definition
RISC (کامپیوتر با مجموعه دستورالعملهای کاهشیافته) یک فلسفه طراحی است که بر مجموعهای کوچک از دستورالعملهای ساده و با فرمت ثابت که در یک مدل بارگذاری-ذخیرهسازی (load-store) اجرا میشوند، تأکید دارد؛ CISC (کامپیوتر با مجموعه دستورالعملهای پیچیده) بر مجموعهای بزرگتر از دستورالعملهای قدرتمندتر و اغلب با طول متغیر، از جمله عملیات حافظه-به-حافظه، تأکید میکند.
Scope
این موضوع دو فلسفه طراحی و مبادلات آنها را پوشش میدهد: سادگی و نظم دستورالعمل در مقابل غنا و چگالی کد، نظم بارگذاری-ذخیرهسازی (load-store) در RISC، مزایای خط لوله (pipelining) دستورالعملهای ساده، و اینکه چگونه پیادهسازیهای مدرن CISC با کارایی بالا، دستورالعملهای پیچیده را به ریزعملیاتهای (micro-operations) شبیه به RISC در داخل ترجمه میکنند. این موضوع شامل رمزگذاریهای سطح بیت (فرمتها و رمزگذاری دستورالعمل) و جزئیات پیادهسازی خط لوله (خط لوله و خطرات) نمیشود.
Core questions
- چه اهداف طراحی، کاهش مجموعه دستورالعملها به عملیات ساده و یکنواخت را توجیه میکنند؟
- نظم بارگذاری-ذخیرهسازی (load-store) چگونه RISC را از CISC متمایز میکند؟
- چرا دستورالعملهای ساده و منظم راحتتر خط لوله میشوند؟
- پردازندههای مدرن x86 چگونه مجموعه دستورالعمل CISC را با اجرای داخلی شبیه به RISC تطبیق میدهند؟
Key concepts
- مجموعه دستورالعمل کاهشیافته
- مجموعه دستورالعمل پیچیده
- معماری بارگذاری-ذخیرهسازی
- دستورالعملهای با طول ثابت در مقابل متغیر
- ریزعملیاتها
- طراحی مشترک کامپایلر-سختافزار
- چگالی کد
Key theories
- استدلال RISC
- پترسون و دیتزل استدلال کردند که مجموعهای کوچک از دستورالعملهای ساده، که به سرعت اجرا میشوند و به طور کارآمد با پشتیبانی خوب کامپایلر خط لوله میشوند، میتوانند از مجموعههای دستورالعمل پیچیده که دستورالعملهای پرجزئیات آنها به ندرت استفاده میشوند و پیادهسازی سریع آنها دشوار است، بهتر عمل کنند.
Mechanisms
طراحیهای RISC دستورالعملها را ساده، با طول ثابت و رجیستر-به-رجیستر نگه میدارند، با دستورالعملهای بارگذاری و ذخیرهسازی جداگانه برای حافظه؛ این نظم، رمزگشایی و خط لوله را ساده میکند. طراحیهای CISC دستورالعملهای پیچیده و با طول متغیر را ارائه میدهند که میتوانند مستقیماً به حافظه دسترسی پیدا کرده و عملیات چند مرحلهای را انجام دهند. پیادهسازیهای مدرن CISC دستورالعملهای پیچیده را به دنبالهای از ریزعملیاتهای داخلی سادهتر رمزگشایی میکنند که سپس توسط یک هسته شبیه به RISC اجرا میشوند.
Clinical relevance
تمایز RISC/CISC پلتفرمهای محاسباتی غالب را شکل داد: ARM و RISC-V اصول RISC را تجسم میبخشند و در بازارهای موبایل، سیستمهای توکار (embedded) و به طور فزایندهای در سرورها و لپتاپها پیشرو هستند، در حالی که x86 (یک ISA از نوع CISC با ساختار داخلی شبیه به RISC) مدتها بر رایانههای شخصی و سرورها تسلط داشت. این بحث به انتخابهای جاری در مورد بهرهوری انرژی، عملکرد و اکوسیستمهای نرمافزاری کمک میکند.
History
مفهوم RISC از تحقیقات IBM 801 و پروژههای Berkeley RISC و Stanford MIPS در اوایل دهه 1980 نشأت گرفت که در مقاله پترسون و دیتزل در سال 1980 بیان شد. ایدههای RISC از طریق طراحیهای تجاری مانند SPARC، MIPS، PowerPC و ARM گسترش یافت. در همین حال، x86 با اتخاذ ریزعملیاتهای داخلی شبیه به RISC بقا یافت، و ISA متنباز RISC-V شتاب جدیدی به طراحی پاک RISC بخشید.
Debates
- آیا تمایز RISC در مقابل CISC هنوز اهمیت دارد؟
- از آنجا که تراشههای مدرن CISC به صورت داخلی به عنوان ریزعملیاتهای شبیه به RISC اجرا میشوند و هر دو گروه از خط لوله و حافظه نهان (caching) استفاده میکنند، برخی استدلال میکنند که تمایز اصلی از بین رفته است؛ برخی دیگر معتقدند که نظم مجموعه دستورالعملها همچنان بر کارایی رمزگشایی، مصرف انرژی و تأیید (verification) تأثیر میگذارد.
Key figures
- David A. Patterson
- David R. Ditzel
- John L. Hennessy
- John Cocke
Related topics
Seminal works
- patterson1980risc
- hennessy2019
- patterson2020
Frequently asked questions
- آیا RISC همیشه سریعتر از CISC است؟
- ذاتاً خیر. سادگی RISC خط لوله و نرخ کلاک بالا را تسهیل میکند، اما یک دستورالعمل CISC میتواند کار بیشتری را در هر دستورالعمل انجام دهد. در عمل، پردازندههای CISC با کارایی بالا دستورالعملها را به عملیات شبیه به RISC ترجمه میکنند، بنابراین عملکرد واقعی به کل ریزمعماری بستگی دارد، نه فقط به برچسب ISA.
- چرا ARM و RISC-V معماریهای RISC نامیده میشوند؟
- هر دو از مجموعههای کوچکی از دستورالعملهای ساده و عمدتاً با طول ثابت با مدل حافظه بارگذاری-ذخیرهسازی و تعداد کمی حالت آدرسدهی استفاده میکنند — ویژگیهای تعیینکننده فلسفه RISC — که پیادهسازی آنها را کارآمد و برای طراحیهای با محدودیت انرژی و توان عملیاتی بالا مناسب میسازد.