یکی از مهمترین تفاوتهای پردازندهها در معماری مجموعه دستورالعمل آنهاست که در پردازندههای امروز در دو خانواده اصلی RISC و CISC دستهبندی میشوند. اما این دو معماری مجموعه دستورالعمل چه هستند و چه ویژگیهایی دارند؟ در ادامه این مقاله ابتدا به توضیح ساده ISA پرداخته و در ادامه انواع آن و تفاوت CISC و RISC را با هم بررسی خواهیم کرد.
فهرست مطالب این مقاله:
- مقدمه
- تاریخچه پردازندهها و اهمیت معماری پردازنده در عملکرد کامپیوتر
- معماری CISC چیست؟
- پردازنده RISC چیست؟
- مقایسه معماری CISC و RISC
- جمعبندی
مقدمه
در دنیای پرشتاب تکنولوژی، پردازندهها به عنوان قلب تپنده سیستمهای کامپیوتری، نقشی حیاتی ایفا میکنند. از آغازین روزهای ساخت کامپیوترهای به اندازه اتاق، تا دستگاههای جیبی امروزی، پیشرفتهای چشمگیری در روش ساخت و معماری پردازندهها صورت گرفته است.
تاریخچه پردازندهها، از اولین خطکش محاسبه ساخته شده در قرن هفدهم توسط ویلیام اوترد تا مدارهای مجتمع امروزی، داستانی از نوآوری و تطبیق است. این تکامل، نه تنها در افزایش سرعت و کارایی، بلکه در کاهش اندازه و مصرف انرژی نیز نمود یافته است. یکی از مهمترین فاکتورها برای یک پردازنده آن است که بدانیم باید آن را برای چه هدفی ساخت و برای این هدف چه رویکردی مناسب است. در این میان مفهوم مجموعه دستورالعمل پردازنده یا ISA تعریف میشود که به ما میگوید برای ارتباط برقرار کردن و استفاده از این پردازنده باید چطور آن را طراحی کرد و چه انتظاراتی از آن داشت.
دو معماری مجموعه دستورالعمل اصلی که در این مسیر تکاملی نقش داشتهاند، CISC (Complex Instruction Set Computing) و RISC (Reduced Instruction Set Computing) هستند. هر کدام از این معماریها با ویژگیها، مزایا و معایب منحصر به فرد خود، به شکلگیری نسلهای مختلف پردازندهها کمک کردهاند. در معماری مجموعه دستورالعمل پردازندهها، به ویژه تفاوتهای بین CISC و RISC، تأثیر مستقیمی بر عملکرد کامپیوترها دارد و انتخاب معماری مناسب میتواند بر اساس کاربرد و نیازهای خاص سیستمها متفاوت باشد.
در همین رابطه بخوانید:
- تاریخچه پردازنده های کامپیوتر و معرفی تاثیرگذارترین CPU های تاریخ
در این مقاله، با نگاهی دقیق به این دو معماری و تفاوت CISC و RISC و بررسی چگونگی تأثیرگذاری آنها بر طراحی و کارایی سیستمهای کامپیوتری خواهیم پرداخت. همچنین، به کاوش در آینده پردازندهها و نقش احتمالی معماریهای نوظهور چون RISC-V در شکلگیری نسلهای بعدی خواهیم پرداخت.
تاریخچه پردازندهها و اهمیت معماری پردازنده در عملکرد کامپیوتر
از زمانی که کامپیوترهای اولیه با لامپهای خلا و ترانزیستورهای بزرگ ساخته میشدند، تا دوران حاضر که شاهد پردازندههای در ابعاد چند نانومتری هستیم، پیشرفتهای بنیادینی در معماری پردازندهها رخ داده است. تاریخچه پردازندهها، مملو از نوآوریهایی است که هر کدام به نوبه خود، مرزهای فناوری را جابجا کردهاند. از اولین میکروپروسسور 4 بیتی Intel 4004 در سال 1971، که انقلابی در صنعت کامپیوتر ایجاد کرد، تا پردازندههای چند هستهای امروزی که قادر به اجرای میلیاردها دستورالعمل در هر ثانیه هستند، هر نسل جدیدی از پردازندهها، دستاوردهایی را به ارمغان آورده که پیش از آن غیرقابل تصور بود.
این تحولات، نه تنها به کاهش اندازه و افزایش سرعت عملکرد آنها کمک کردهاند، بلکه امکان پردازش پیچیدهترین دادهها را در کسری از ثانیه فراهم آوردهاند.
در علوم کامپیوتر و مهندسی کامپیوتر، معماری کامپیوتر توصیفی از ساختار یک سیستم کامپیوتری است که از اجزای سازنده ساخته شده است. گاهی اوقات ممکن است یک توصیف سطح بالا باشد که جزئیات پیاده سازی را نادیده میگیرد. در سطح دقیقتر، توضیحات ممکن است شامل طراحی معماری مجموعه دستورالعمل، طراحی ریزمعماری، طراحی منطقی و پیاده سازی باشد.
معماری مجموعه دستورالعمل یا ISA چیست؟
در علوم کامپیوتر، معماری مجموعه دستورالعمل (ISA) بخشی از مدل انتزاعی یک کامپیوتر است که به طور کلی نحوه کنترل CPU توسط نرمافزار را تعریف میکند. دستگاهی مانند واحد پردازش مرکزی (CPU) که دستورالعملهای توصیفشده توسط ISA را اجرا میکند، پیادهسازی یا implementation نامیده میشود.
به طور کلی یک ISA، دستورالعملهای پشتیبانیشده، انواع دادهها، ثباتها، پشتیبانی سختافزاری برای مدیریت حافظه اصلی، ویژگیهای اساسی (مانند ثبات حافظه، حالتهای آدرسدهی، حافظه مجازی) و مدل ورودی/خروجی یک خانواده از پیادهسازیهای یک مدل ISA را تعریف میکند.
بیش از 50 سال است که پردازندهها با الگوهای معماری مجموعه دستورالعملهای RISC و CISC ساخته میشوند
چرایی تفاوت انواع معماری مجموعه دستورالعمل پردازندهها
قبل از هر توضیحی باید بگوییم که اصطلاح معماری مجموعه دستورالعمل پردازنده را نباید با اصطلاح ریزمعماری پردازنده اشتباه گرفت. در حالیکه معماری مجموعه دستورالعمل پردازنده توصیف نحوه استفاده نرمافزار از CPU است، ریزمعماری ساخت پردازنده، مجموعهای از تکنیکهای ساخت و طراحی پردازنده است که در یک مدل پردازنده خاص، برای پیادهسازی مجموعه دستورالعمل آن مورد استفاده قرار میگیرد.
در همین رابطه بخوانید:
- رشته در پردازنده چیست؟ چرا تعداد رشته ها در CPU مهم است؟
- مقایسه i7 ،Core i9 و i5 ؛ کدام پردازنده اینتل برای شما مناسب است؟
معماری مجموعه دستورالعمل پردازندهها تأثیر مستقیمی بر عملکرد کامپیوترها دارد. انتخاب معماری مناسب برای کاربرد مورد نظر، میتواند تفاوت بین یک سیستم کارآمد و یک سیستم کند را رقم بزند. به عنوان مثال، سرورهای دادهکاوی که نیاز به پردازش حجم عظیمی از دادهها دارند، ممکن است از معماری RISC بهره ببرند تا سرعت پردازش را به حداکثر برسانند، در حالیکه کامپیوترهای شخصی که برنامههای متنوعی را اجرا میکنند، ممکن است از معماری CISC استفاده کنند تا از پشتیبانی گستردهتری از دستورالعملها بهرهمند شوند. پس این میتوانید اولین دلیلی باشد که به واسطه آن تفاوت CISC و RISC را درک کنیم.
در مورد ساختار پردازنده های CISC و RISC میتوان به این نکته اشاره کرد که دو نوع مختلف معماری مجموعه دستورالعمل هستند که برای طراحی ریزپردازندههای موجود در کامپیوترها استفاده میشوند. به طور کلی معماری CISC (کامپیوتر مجموعه دستورات پیچیده) با هدف کاهش تعداد دستورالعملهای مورد نیاز برای اجرای برنامهها طراحی شده، در حالی که پردازنده RISC (رایانه مجموعه دستورات کاهش یافته) با تمرکز بر سادگی و سرعت اجرای دستورالعملها، بهینهسازیهای قابل توجهی را در عملکرد به ارمغان آورد.
یک تفاوت CISC و RISC در این است که RISC شامل دستورالعملهای ساده است که برای اجرای آنها نیاز به طی یک سیکل کامل داریم، در حالی که CISC شامل دستورالعملهای پیچیده است و ممکن است هر دستورالعمل به بیش از یک سیکل برای اجرا نیاز داشته باشند.
با پیشرفتهای اخیر در فناوریهای نیمههادی و طراحی مدارها، معماریهای جدیدی مانند RISC-V، که به دنبال ارائه یک معماری باز و قابل توسعه هستند، در حال ظهور هستند. این معماریها تضمین میکنند که انعطافپذیری و کارایی بیشتری را در اختیار طراحان سیستم قرار دهند و امکان سفارشیسازی پردازندهها را برای نیازهای خاص فراهم آورند.
معماری CISC چیست؟
معماری CISC یک معماری کامپیوتری است که در آن دستورالعملهای منفرد میتوانند چندین عملیات سطح پایین (مانند بارگیری از حافظه، انجام یک عملیات حسابی روی آن و یک ذخیرهسازی حافظه) را اجرا کنند یا میتوانند عملیات چند مرحلهای یا حالتهای آدرس دهی را در دستورالعملهای واحد انجام دهند. یک پردازنده CISC دارای فرمت دستورالعمل با طول متغیر است. در این معماری پردازنده، دستورالعملهایی که به عملوندهای ثبت نیاز دارند، میتوانند تنها دو بایت طول بکشند.
در همین رابطه بخوانید:
- مقایسه پردازنده های پنتیوم (Pentium) و سلرون (Celeron)؛ کدامیک برای من بهتر است؟
- سوکت CPU چیست؟ آشنایی با انواع سوکت پردازنده کامپیوتر و لپ تاپ
در معماری پردازنده CISC، دستورالعملهایی که به دو آدرس حافظه نیاز دارند، میتوانند پنج بایت طول بکشد تا کد دستورالعمل کامل را تشکیل دهند. بنابراین، در یک پردازنده CISC، اجرای دستورالعملها ممکن است تعداد سیکل ساعت متفاوتی را به خود اختصاص دهد. پردازنده CISC همچنین دستکاری مستقیم عملوندهایی که در حافظه ذخیره میشوند را فراهم میکند.
هدف اصلی معماری CISC پشتیبانی از یک دستورالعمل ماشین واحد برای هر عبارتی است که در یک زبان برنامهنویسی سطح بالا نوشته شده است.
پردازندههای ساخته شده CISC شامل رایانههای مرکزی پیچیده تا میکروکنترلرهای ساده است که در آنها بارگذاری حافظه و عملیات ذخیرهسازی از دستورالعملهای حسابی جدا نیستند. ریزپردازندهها و میکروکنترلرهای معروفی که در بسیاری از نشریات دانشگاهی نیز با الگوی CISC نامگذاری شده اند عبارتند از خانواده موتورولا 6800، 6809 و 68000. خانواده Intel 8080، iAPX 432 و x86؛ خانواده های Zilog Z80، Z8 و Z8000. خانواده National Instruments NS320xx؛ خانواده MOS Technology 6502; خانواده 8051 اینتل؛ و بسیاری موارد دیگر.
جالب است بدانید به دلیل ویژگیهای برخی پردازندههای خاص که هر دو الگوی RISC و CISC را نیز پیاده سازی کردهاند، در منابع مختلف، نام آنها در هر دو گروه یا بر پایه استنباط آن مجموعه، در یکی از این خانواده جای گرفته است. به عنوان مثال، میکروکنترلرهای معروف MicrochipPIC در برخی موارد در خانواده پردازنده RISC و در برخی دیگر CISC نامگذاری شده است.
فارغ از موارد فوق، در زیر ویژگیهای مهم معماری CISC آمده است:
- CISC میتواند فرمتهای دستورالعمل با طول متغیر داشته باشد
- مجموعهای از تعداد زیادی دستورالعمل، معمولاً از 100 تا 250 دستورالعمل را پشتیبانی میکند
- دارای تنوع زیادی از حالتهای آدرسدهی است، معمولاً از 5 تا 20 حالت مختلف
- CISC دستورالعملهایی دارد که وظایف تخصصی را انجام میدهند و به ندرت استفاده میشوند
معماریهای CISC دارای مجموعه دستورالعملهای بزرگ و پیچیده و خط اجرایی کمتری هستند. این به پردازندههای CISC اجازه میدهد تا طیف وسیعتری از وظایف را انجام دهند، اما در هنگام اجرای دستورالعملها به سرعت پردازندههای RISC نیستند.
پردازنده RISC چیست؟
همانطور که عنوان شد، در معماری مجموعه دستورالعمل RISC، مجموعه دستورات سیستم کامپیوتری برای کاهش زمان اجرا ساده شده است. معماری RISC دارای مجموعه کوچکی از دستورالعملها است که به طور کلی شامل عملیات ثبت به ثبت میشود.
معماری RISC نسبتاً از یک فرمت دستورالعمل ساده استفاده میکند که به راحتی رمزگشایی میشود. طول دستورالعمل را میتوان ثابت کرد و با مرزهای کلمه تراز کرد. پردازندههای RISC میتوانند تنها یک دستور را در هر سیکل ساعت اجرا کنند.
مایکل جی فلین (نویسنده کتاب مرجع مشهور Computer Architecture: Pipelined and Parallel Processor Design در سال 1995) اولین سیستم RISC را طراحی پردازنده IBM 801 میداند که در سال 1975 توسط جان کوک آغاز و در سال 1980 تکمیل شد. پردازنده 801 در واقع خروجی از یک پروژه تحقیقاتی برای ساخت یک پردازنده پرسرعت 24 بیتی جهت استفاده به عنوان الگویی پایه به منظور طراحی یک تراشه سوئیچ تلفن دیجیتال است که بعدها انقلابی بزرگ در حوزه پردازش ایجاد کرد.
در همین رابطه بخوانید:
- تفاوت پردازنده های تری (Tray) و پردازنده های باکس (Boxed) اینتل
- معرفی بهترین پردازنده ها (CPU) برای برنامه نویسی
این پردازنده قرار بود برای رسیدن به هدف خود مبنی بر جابجایی 1 میلیون تماس در ساعت (300 در ثانیه) طراحی شود و به همین منظور مهندسان IBM با محاسبات خود به این نکته رسیدند که CPU مورد نیاز آنها در مقایسه با سریعترین دستگاه رده مصرفی موجود در آن زمان یعنی پنلهای تلفنی IBM 370 یا IBM 168 (با قدرت محاسبه 3.5 میلیون دستورالعمل در ثانیه) به عملکردی برای اجرای حدود 12 میلیون دستورالعمل در ثانیه (MIPS) نیاز دارد. همین ایده باعث شد که در نهایت مهندسان سراغ ساخت یک پردازنده متفاوت با دستورالعملهای سادهتر و کاهشیافته رفته و بتوانند پس از 5 سال، اولین پردازنده با الگوی RISC را تولید کنند.
جالب است بدانید که در اواخر دهه 1970، 801 به عنوان یک پروژه جذاب در حوزه ساخت پردازندهها مدنظر قرار گرفت. این دوره با تکنیکهای ساخت جدید همزمان شد که به تراشههای پیچیدهتر اجازه میداد تا به بازار بیایند. برای مثال ریزپردازنده موتورولا 68000 یا 68K با 68000 ترانزیستور ساخته میشد. در این سالها طرحهای جدیدتر معمولاً از پیچیدگی جدید خود برای گسترش مجموعه دستورالعملها برای متعامدتر کردن آن استفاده میکنند. بیشتر آنها، مانند 68000 موتورولا، از میکروکد برای انجام این کار استفاده میکردند، دستورالعملها را میخواندند و آنها را به عنوان دنبالهای از دستورالعملهای داخلی سادهتر پیادهسازی میکردند.
در این پردازنده نزدیک به یک سوم از کل ترانزیستورها برای این میکروکدینگ استفاده شد و همین موجب افزایش ابعاد، هزینه و پیچیدگی ساخت پردازنده میشد. اما مهندسان توانستند با کاهش مجموعه دستورالعمل و سادهسازی الگوها، در نهایت بسیاری از این مسیرها را حذف کرده و شرایطی ایجاد کنند که بتوان پردازنده را با الگوی رمزگشایی سادهتری ساخت.
در همین رابطه بخوانید:
- تراشه اسنپدراگون چیست؟ بررسی انواع پردازنده های اسنپدراگون و قابلیت های آنها
- مقایسه تعداد هسته با سرعت کلاک پردازنده ؛ کدام یک برای کامپیوتر شما مهمتر است؟
فلسفه کلی مفهوم RISC در نیمه دوم دهه 1980 بهطور گستردهای درک و باعث شد که طراحان MIPS-X در سال 1987 آن را به این صورت بیان کنند:
هدف هر فرمت دستورالعمل باید این باشد: 1. رمزگشایی ساده، 2. رمزگشایی ساده و 3. رمزگشایی ساده. هر گونه تلاش برای بهبود تراکم کدها ولو به قیمت کاهش عملکرد CPU باید در هر فرصتی مورد استفاده قرار گیرد.
اما فارغ از این تاریخچه، اصولی که به عنوان ویژگیهای مهم یک پردازنده RISC مطرح شده را میتوان به شکل موارد زیر خلاصه کرد:
- یک پردازنده RISC چند دستورالعمل مشخص و محدودتر از معماری CISC است
- پردازنده RISC دارای چند حالت آدرسدهی است
- در پردازنده RISC تمام عملیات در رجیسترهای CPU انجام میشود
- پردازنده RISC دارای فرمت دستورالعمل با طول ثابت است
- RISC برای اجرای دستورات تک چرخه استفاده میشود
- پردازنده RISC دارای فرمت دستورالعمل به راحتی قابل رمزگشایی است
- RISC را میتوان در هر ساختاری از سیستمهای رده پایین و دستگاههای قابلحمل گرفته تا سرورها و ابرکامپیوترها مورد استفاده قرار داد
معماری RISC با یک مجموعه دستورالعمل کوچک و ساده و یک پایپ لاین اجرایی بسیار کارآمد مشخص میشود. این ویژگی به پردازندههای RISC اجازه میدهد تا دستورالعملها را به سرعت اجرا کنند، اما به این معنی نیز هست که آنها فقط میتوانند تعداد محدودی کار را در حالت عادی انجام دهند.
RISC-V
تاریخچه RISC-V (بخوانید ریسک فایو) به سال 2010 بازمیگردد؛ زمانی که این پروژه به عنوان بخشی از پروژه آزمایشگاه پردازش موازی (Par Lab) در دانشگاه برکلی کالیفرنیا آغاز شد. هدف از این پروژه، پیشبرد پردازش موازی بود و شرکتهای بزرگی مانند Intel با سرمایهگذاریهای قابل توجهی از آن حمایت کردند. پس از پایان پروژه Par Lab در سال 2013، تمرکز بیشتری بر توسعه RISC-V گذاشته شد.
معماری RISC-V یک مجموعه دستورالعمل استاندارد باز (ISA) است که بر اساس اصول رایانههای دستورالعمل کاهش یافته (RISC) طراحی شده است. این معماری به دلیل سادگی و کارایی بالا در طراحی پردازندهها مورد توجه قرار گرفته است. RISC-V از دستورالعملهایی با طول ثابت استفاده میکند، به این معنی که هر دستورالعمل تعداد بیت معینی دارد که نوع آن دستورالعمل را تعریف میکند.
یکی از ویژگیهای بارز RISC-V، ماژولار بودن آن است. این به معنای آن است که میتوانید مجموعه دستورالعملهای خود را با انتخاب از میان ماژولهای مختلف، متناسب با نیازهای خاص خود سفارشیسازی کنید. این امر به تولیدکنندگان اجازه میدهد تا بدون پرداخت حق مجوز یا بهره مالکانه، تراشههای خود را بسازند.
در همین رابطه بخوانید:
- مقایسه پردازنده موبایل و دسکتاپ ؛ تشریح تفاوت ها به زبان ساده
- آموزش روش های چک کردن دمای CPU؛ دمای استاندارد پردازنده چقدر است؟
معماری RISC-V همچنین به دلیل استفاده از تعداد زیادی رجیستر و دستورالعمل بسیار منظم، که باعث میشود تا تعداد کمی سیکل ساعت به ازای هر دستورالعمل داشته باشیم، مشهور است. این ویژگیها به کاهش تأخیر و افزایش کارایی کلی پردازنده کمک میکنند.
در نهایت، RISC-V به عنوان یک معماری متنباز، امکان همکاری و نوآوری جامعهای وسیع از محققان، طراحان و تولیدکنندگان را فراهم میآورد. این امر به پیشرفت سریعتر و انطباقپذیری بیشتر در برابر نیازهای متغیر بازار کمک میکند. با توجه به این ویژگیها، RISC-V میتواند نقش مهمی در آینده طراحی سیستمهای محاسباتی ایفا کند.
RISC-V به عنوان یک معماری متنباز و بدون نیاز به پرداخت حق امتیاز، به سرعت مورد توجه توسعهدهندگان مستقل و حتی شرکتهای مختلف قرار گرفت. اولین چیپ بر اساس این معماری در سال 2011 با تکنولوژی 28 نانومتری FDSOI و با حمایت شرکت ST Microelectronics تولید شد. این معماری به دلیل انعطافپذیری و قابلیت سفارشیسازی بالا، به سرعت در صنعت میکروکنترلر و SoC محبوب شد.
در سال 2015، بنیاد RISC-V تأسیس شد تا به عنوان یک جامعه باز از نوآوران نرمافزاری و سختافزاری بر اساس معماری RISC-V پشتیبانی کند. این بنیاد به عنوان یک سازمان غیرانتفاعی توسط اعضای خود کنترل میشود و روند توسعه این الگو را به منظور ترویج استفاده از RISC-V هدایت میکند.
با توجه به این تاریخچه، RISC-V به عنوان یک معماری نوآورانه و متن باز، نقش مهمی در آینده طراحی سیستمهای محاسباتی ایفا کرده و انتظار میرود که تأثیر آن در صنعت همچنان افزایش یابد. این معماری به دلیل ساختار باز و بدون هزینههای لایسنس، فرصتهای جدیدی را برای تولیدکنندگان و طراحان فراهم آورده است. با ادامه مقایسه و تفاوت پردازنده ریسک و سیسک همراه باشید.
مقایسه معماری CISC و RISC
همانطور که صحبت کردیم، در دنیای معماری پردازندهها، دو رویکرد اصلی، RISC و CISC، به عنوان دو مدل متفاوت برای طراحی مجموعه دستورالعملهای پردازندهها شناخته میشوند. هر کدام از این معماریها دارای ویژگیها، مزایا و معایب خاص خود هستند که آنها را برای کاربردهای مختلف مناسب یا نامناسب میسازند.
تفاوت CISC و RISC در عملکرد و کارایی
معماری RISC، بر اساس اصل سادگی و کارایی بالا طراحی شده است. در مقابل معماری CISC، با هدف کاهش تعداد دستورالعملهای نوشته شده توسط برنامهنویسان، پیچیدگی بیشتری دارد. RISC با داشتن دستورالعملهای سادهتر و یکنواختتر، به طور معمول سرعت بالاتری در اجرای برنامهها دارد، در حالی که CISC میتواند با دستورالعملهای پیچیدهتر، کارهای بیشتری را در هر دستور انجام دهد.
مقایسه در سطح دستورالعملها
در سطح دستورالعملها، پردازنده RISC به دلیل داشتن تعداد کمتری دستورالعمل و فرمت یکنواختتر، بهینهسازیهای سختافزاری بیشتری را امکانپذیر میسازد. این در حالی است که CISC با داشتن دستورالعملهای متنوعتر، انعطافپذیری بیشتری در برنامهنویسی ارائه میدهد، اما این امر میتواند به قیمت پیچیدگی و کاهش سرعت تمام شود.
در همین رابطه بخوانید:
- حافظه کش پردازنده چیست؟ چرا Cache در سی پی یو مهم است؟
تأثیر معماری بر طراحی سیستمهای نرمافزاری
انتخاب معماری پردازنده تأثیر قابل توجهی بر طراحی سیستمهای نرمافزاری دارد. توسعه برنامهها برای معماری CISC ممکن است به دلیل پیچیدگی دستورالعملها، نیاز به تجربه بیشتری در برنامهنویسی داشته باشند، در حالی که برنامههای RISC میتوانند از کدنویسی سادهتر و بهینهسازیهای کامپایلر بهره ببرند.
چالشهای پیادهسازی و مقایسه عملی معماریهای RISC و CISC
پردازندههای RISC به دلیل سادگی طراحی، ممکن است در پیادهسازی سختافزاری سادهتر باشند، اما ممکن است در برخی کاربردها کمبود دستورالعملهای پیچیدهتر را احساس کنند. از سوی دیگر، پردازندههای CISC ممکن است در پیادهسازی پیچیدهتر باشند، اما قابلیتهای بیشتری را برای اجرای برنامههای متنوع ارائه میدهند.
جدول زیر مقایسه RISC و CISC را نشان میدهد:
ویژگی |
RISC |
CISC |
---|---|---|
تعریف کلی | کامپیوتر با مجموعه دستورالعمل کاهش یافته | کامپیوتر با مجموعه دستورالعمل پیچیده |
رویکرد کلی | بهینه سازی مجموعه دستورالعمل روی نرم افزار | بهینه سازی مجموعه دستورالعمل روی سخت افزار |
نحوه ثبت دستورالعملها | نیاز به مجموعههای ثبت چندگانه جهت ذخیره دستورالعمل | نیاز به یک مجموعه ثبات واحد برای ذخیره دستورالعمل |
سطح رمزگشایی | رمزگشایی ساده دستورات | رمزگشایی پیچیده دستورالعمل |
مدیریت و استفاده از پایپ لاین | ساده | دشوار و پیچیده |
زمان اجرای دستورالعملها | کم به دلیل تعداد محدود دستورالعملها | زیاد به دلیل تعداد گسترده دستورالعملها |
نحوه انجام عملیات بارگذاری و ذخیره | از LOAD و STORE استفاده میکند که دستورالعملهای مستقلی در رجیستر برای ثبت تعامل برنامه هستند. | از دستورات LOAD و STORE در تعامل حافظه به حافظه یک برنامه استفاده میکند. |
تفاوت بخشهای حافظه و دستورات | تعداد ترانزیستورهای بیشتر در رجیسترهای حافظه | تعداد ترانزیستورهای بیشتر در رجیسترهای ذخیره دستورالعمل |
زمان اجرای دستورات | بسیار کوتاه | طولانیتر از RISC |
کاربرد | برنامههای پیشرفته مانند مخابرات، پردازش تصویر، پردازش ویدئو و ... | برنامههای سادهتر مانند اتوماسیون خانگی، سیستم امنیتی و ... |
فرمت دستورالعمل | دارای دستورالعمل فرمت ثابت است. | دارای دستورالعمل فرمت متغیر است. |
فضای اشغال شده برنامههای کاربردی | زیاد | کم |
نمونه پردازندهها | ARM، PA-RISC، Power Architecture، Alpha، AVR، ARC و SPARC | VAX، خانواده موتورولا 68000، System/360، AMD و پردازندههای Intel x86 |
جمعبندی
در این مطلب تلاش کردیم با نگاهی ساده به فلسفه و دلایل استفاده از هر دو معماری مجموعه دستورالعمل RISC و CISC بپردازیم. به بیان ساده RISC برای پردازندههایی استفاده میشود که میخواهیم سادهتر ساخته شده و بیشتر بار پردازشی را در برنامههای آنها، کامپایلر با شکستن کدها، به دستورالعملهای موجود بر دوش بکشند.
در معماری CISC داستان متفاوت است و هدف این است که برای بیشتر نیازها، دستورالعمل ویژه داشته باشیم. از سوی دیگر CISC برای بهینهسازی بر سختافزار تمرکز دارد ولی در پردازنده RISC نرمافزار برای بهینهسازی مجموعه دستورالعمل تاکید دارد. همچنین معماری RISC در مقابل CISC از تعداد محدودی دستورالعمل استفاده میکند که به زمان کمتری برای اجرای دستورالعملها نیاز دارد. این موارد سادهترین تفاوت CISC و RISC هستند که در این مقاله به بررسی آنها پرداختیم.
پاسخ به سوالات پرتکرار
RISC و CISC چه هستند؟
دو معماری RISC و CISC، معماریهای ساخت پردازنده بر اساس مجموعه دستورالعملهای آنها هستند که هر یک توسط شرکتها و سازمانهای مختلف مورد استفاده قرار میگیرند.
تفاوت اصلی بین RISC و CISC چیست؟
فرق RISC و CISC علاوه بر الگوهای توسعه، به مجموعه دستورالعملهایی که آنها برای ساخت پردازندهها استفاده میکنند مرتبط است. RISC از مجموعه دستورالعملهای سادهتر و عمومیتری استفاده میکند ولی در CISC از مجموعه دستورالعملهای بیشتر، پیچیدهتر و تخصصیتر استفاده میکنیم. با توجه به این تفاوت، پردازندههای ساخته شده با یک دستورالعمل قادر به اجرای دستورالعملهای معماری دیگر نیستند.
معماری های کدام یک از پردازنده های RISC و CISC بهتر است؟
نمیتوان از صفات بهتر و بدتر برای بیان تفاوت RISC و CISC و پردازندههای ساخته شده بر اساس آنها استفاده کرد. این روزها تفاوت این دو معماری مجموعه دستورالعمل در لایه ساخت و بهینهسازی به حداقل رسیده ولی همچنان کاربردهای خاصی برای هر یک وجود دارد که دیگری با آن متفاوت است.