پردازندههای کامپیوتر و گوشی از معماریهای متفاوتی استفاده میکنند، اما تفاوت واقعی آنها پیچیدهتر از چیزی است که معمولاً تصور میشود. پردازندههای اینتل و AMD عمدتاً از معماری x86 استفاده میکنند که با مفهوم CISC شناخته میشود؛ در مقابل، پردازندههای ARM که در بسیاری از گوشیها و مکهای اپل به کار میروند، بر پایه فلسفه RISC طراحی شدهاند.
بااینحال، این تصور که پردازندههای RISC همیشه کممصرفتر و پردازندههای CISC همیشه قدرتمندتر هستند، درست نیست. پردازندههای مدرن از هر دو خانواده، تکنیکهای طراحی مشترک زیادی دارند و تفاوت عملکرد و مصرف انرژی آنها بیشتر به معماری داخلی هستهها، فناوری ساخت و مدیریت توان مربوط میشود.
تفاوت معماری RISC و CISC در پردازنده چیست؟
دو اصطلاح RISC و CISC به شیوه طراحی مجموعه دستورالعملهای پردازنده یا ISA اشاره دارند. مجموعه دستورالعمل مشخص میکند نرمافزار چه فرمانهایی میتواند به پردازنده بدهد و این فرمانها چه رفتاری دارند.
RISC مخفف Reduced Instruction Set Computer است و به فلسفه طراحی مجموعه دستورالعمل سادهتر اشاره میکند. در این رویکرد، معمولاً دستورهای محاسباتی از عملیات دسترسی به حافظه جدا هستند و طراحی دستورالعملها برای رمزگشایی و اجرای کارآمدتر انجام میشود.
CISC مخفف Complex Instruction Set Computer است و به مجموعه دستورالعملهایی گفته میشود که میتوانند عملیات پیچیدهتری را در قالب یک دستور انجام دهند. معماری x86 یکی از شناختهشدهترین نمونههای آن است.
|
ویژگی |
RISC |
|
|---|---|---|
|
فلسفه طراحی |
دستورالعملهای سادهتر و منظمتر |
دستورالعملهای متنوعتر و پیچیدهتر |
|
نمونه شناختهشده |
ARM و RISC-V |
x86 |
|
طول دستورالعمل |
معمولاً منظمتر |
در x86 متغیر |
|
دسترسی به حافظه |
غالباً با دستورهای جداگانه |
امکان ترکیب با بعضی عملیات محاسباتی |
|
پیچیدگی رمزگشایی |
معمولاً کمتر |
معمولاً بیشتر |
|
مصرف انرژی |
وابسته به طراحی تراشه |
وابسته به طراحی تراشه |
به عنوان مثال، در معماری x86 یک دستور میتواند مقداری را از حافظه بخواند و در یک عملیات محاسباتی استفاده کند. در بسیاری از معماریهای RISC، این کار به دستورهای جداگانه بارگذاری داده و انجام محاسبه نیاز دارد.
البته تعداد کمتر دستورالعملها لزوماً به معنای اجرای سریعتر برنامه نیست. تعداد سیکلهای پردازنده، توانایی اجرای همزمان عملیات و کارایی حافظه کش نیز نقش مهمی دارند.

چگونه پردازندههای اینتل و AMD از تکنیکهای RISC استفاده میکنند؟
پردازندههای قدیمی x86 برای اجرای بسیاری از دستورهای پیچیده از ریزکد یا Microcode استفاده میکردند. ریزکد مجموعهای از عملیات داخلی است که اجرای یک دستور پیچیده را در سختافزار کنترل میکند.
پردازنده Intel 8086 که در سال ۱۹۷۸ معرفی شد، برای بخشی از دستورهای خود از همین روش استفاده میکرد. با افزایش پیچیدگی پردازندهها، اجرای مستقیم دستورهای پیچیده میتوانست طراحی واحدهای اجرایی را دشوارتر کند.
یکی از تغییرات مهم در پردازندههای x86، تبدیل دستورهای پیچیده به عملیات داخلی کوچکتر بود. این عملیات با نام Micro-ops یا ریزعملیات شناخته میشوند.

پردازنده Pentium Pro اینتل که در سال ۱۹۹۵ معرفی شد، از این رویکرد برای اجرای کارآمدتر دستورهای x86 استفاده میکرد. به عنوان مثال، یک دستور محاسباتی که با داده موجود در حافظه کار میکند، میتواند در داخل پردازنده به چند عملیات سادهتر تقسیم شود.
این طراحی چند مزیت مهم دارد:
- اجرای خارج از ترتیب: پردازنده میتواند عملیات آماده را بدون انتظار برای تکمیل تمام عملیات قبلی اجرا کند.
- استفاده بهتر از واحدهای پردازشی: چند عملیات مستقل میتوانند بهصورت همزمان در بخشهای مختلف هسته اجرا شوند.
- حفظ سازگاری: نرمافزار همچنان دستورهای x86 را اجرا میکند، حتی اگر پردازنده در داخل از عملیات سادهتر استفاده کند.
- بهبود عملکرد: زمان انتظار بعضی عملیات کاهش مییابد و استفاده از منابع پردازنده بهینهتر میشود.
پردازندههای مدرن اینتل و AMD همچنان از این تکنیکها استفاده میکنند. بااینحال، این موضوع به معنای تبدیل شدن معماری x86 به RISC نیست؛ زیرا مجموعه دستورالعملی که نرمافزار مشاهده میکند همچنان x86 است.

چرا پردازندههای ARM نیز از ریزعملیات و حافظه کش استفاده میکنند؟
پردازندههای ARM معمولاً بهعنوان نمونهای از معماری RISC شناخته میشوند. این معماری در گوشیهای اندرویدی، آیفون و کامپیوترهای مجهز به تراشههای اپل کاربرد گستردهای دارد.
بااینحال، پردازندههای ARM مدرن نیز برای دستیابی به عملکرد بالا از روشهایی استفاده میکنند که زمانی بیشتر با پردازندههای x86 شناخته میشدند.
به عنوان مثال، بعضی هستههای قدرتمند ARM دستورالعملها را به چند ریزعملیات داخلی تقسیم میکنند. بنابراین حتی اگر یک دستورالعمل در سطح نرمافزار ساده به نظر برسد، اجرای آن در داخل پردازنده لزوماً یک عملیات ساده نیست.
این موضوع بهخصوص در دستورهای برداری و عملیات اتمیک اهمیت دارد. چنین دستورهایی ممکن است چندین محاسبه یا دسترسی به حافظه را در قالب یک دستورالعمل انجام دهند.
یکی دیگر از تکنیکهای مشترک، استفاده از حافظه کش برای نگهداری عملیات رمزگشاییشده است. در بعضی پردازندههای ARM، مانند Cortex-A77، حافظهای برای ذخیره عملیات رمزگشاییشده وجود دارد تا هنگام اجرای مجدد کد، نیازی به رمزگشایی دوباره تمام دستورها نباشد.
البته همه هستههای ARM از این روش استفاده نمیکنند. به عنوان مثال، طراحی Cortex-A715 با حذف پشتیبانی از اجرای مستقیم دستورهای ۳۲ بیتی AArch32 و سادهسازی بخش رمزگشایی، رویکرد متفاوتی را در پیش گرفت.

این تفاوتها نشان میدهند که معماری ARM الزاماً به معنای طراحی داخلی ساده نیست. طراحان تراشه با توجه به هدف محصول، میان مصرف انرژی، پیچیدگی سختافزار و عملکرد تعادل برقرار میکنند.
آیا معماری ARM از x86 سریعتر و کممصرفتر است؟
یکی از رایجترین پرسشها هنگام مقایسه پردازندهها این است که چرا بسیاری از گوشیها و لپتاپهای کممصرف از ARM استفاده میکنند، درحالیکه پردازندههای x86 همچنان سهم بزرگی از بازار کامپیوترهای شخصی را در اختیار دارند.
بخشی از تفاوت به مجموعه دستورالعملها مربوط میشود. در معماری x86، طول دستورها متغیر است و رمزگشایی آنها معمولاً پیچیدگی بیشتری دارد. در مقابل، دستورالعملهای رایج AArch64 طول ثابت ۳۲ بیتی دارند و این ویژگی میتواند طراحی بخش رمزگشایی را سادهتر کند.
بااینحال، پیچیدگی رمزگشایی تنها یکی از عوامل مصرف انرژی است. بخشهای دیگری مانند حافظه کش، واحدهای محاسباتی، پیشبینی انشعاب و انتقال داده نیز انرژی مصرف میکنند.
پردازندههای جدید x86 برای کاهش هزینه رمزگشایی از حافظه کش ریزعملیات استفاده میکنند. به عنوان مثال، در معماری Zen 5 شرکت AMD، نگهداری ریزعملیات رمزگشاییشده به پردازنده کمک میکند هنگام اجرای مجدد بخشهایی از برنامه، کار کمتری انجام دهد.
از سوی دیگر، موفقیت تراشههای سری M اپل فقط نتیجه استفاده از ARM نیست. طراحی یکپارچه تراشه، مدیریت توان، حافظه و هماهنگی سختافزار با سیستمعامل مکاواس نیز در عملکرد و بهرهوری انرژی آنها نقش دارند.
برای مقایسه واقعی دو پردازنده باید به موارد زیر توجه کرد:
- عملکرد تکهستهای: سرعت اجرای برنامههایی که به یک هسته قدرتمند وابستهاند.
- عملکرد چندهستهای: توان پردازش همزمان کارهای سنگین.
- مصرف انرژی: میزان برق مصرفی برای انجام حجم مشخصی از کار.
- فناوری ساخت: نسل فرایند تولید تراشه و ویژگیهای فیزیکی آن.
- سیستم خنککننده: توانایی حفظ عملکرد در پردازشهای طولانی.
- سازگاری نرمافزار: اجرای مستقیم برنامهها یا نیاز به لایههای ترجمه دستورالعمل.
بنابراین نمیتوان گفت هر پردازنده ARM از یک پردازنده اینتل یا AMD کممصرفتر است. همچنین استفاده از معماری x86 بهتنهایی به معنای عملکرد بالاتر در بازی یا نرمافزارهای حرفهای نیست.
نتیجه مهم این است که RISC و CISC بیشتر فلسفه طراحی مجموعه دستورالعملها را توصیف میکنند، نه تمام ویژگیهای سختافزاری پردازنده. برای انتخاب میان لپتاپ ARM و کامپیوتر x86 بهتر است عملکرد واقعی دستگاه، شارژدهی باتری و سازگاری برنامههای موردنیاز را بررسی کنید.
اینتوتک