RISC نوعی از طراحی پردازنده (CPU Design) است که گاهاً معماری آن نیز نامیده میشود. در این طراحی دستورالعملهایی که باید پردازش شوند، به شدت بهینه میشوند.
طراحی RISC چیست؟
کلمه RISC (ریسک) ساده شده یا مخفف عبارت Reduced instruction set computing به معنای “مجموعه دستورات محاسباتی ساده شده” یا “مجموعه دستورات بهینه شده” است.
RISC یکی از طراحیهای پردازنده است که اغلب به نام معماری RISC نیز شناخته میشود. RISC بر اساس ساده سازی و بهینه کردن مجموعه دستورات طراحی شده و به عبارت بهتر، بجای پردازش مجموعهای از دستورالعملهای پیچیده، از دستورات بسیار ساده تر و بهینه تری برای پردازش استفاده میکند که باعث کارایی و عملکرد بسیار بهینه تر آن میشود. ریسک از روش لولهای (Pipe-line) برای پردازش استفاده میکند. ARM از مهمترین معماریهایی است که همراه با این طراحی در بسیاری از پردازندههای از پیش نصب شده مورد استفاده قرار میگیرد.
طراحی RISC از آن جایی شروع شد که طبق محاسبات مختلف شرکت Berkeley RISC، مشخص شد که کل دستورات موجود در سیستم عامل یونیکس (Unix)، تنها از ۳۰% دستورات قابل استفاده در ریزپردازنده Motorola 68000 که طبق طراحی CISC (سیسک – در مقابل طراحی RISC که از مجموعه دستورات پیچیده تری استفاده میکنند؛ مثل معماری x86 اینتل) ساخته شده بود، استفاده میکرد. به این ترتیب ۷۰% از دستورات پیچیده تر این ریزپردازنده اصلاً مورد استفاده قرار نمیگرفت و در نهایت قسمتی از ریزپردازنده بلااستفاده باقی مانده و هستههای آن فضای بی موردی را اشغال میکنند چون بدیعی است که با افزایش امکانات پردازنده، فضای فیزیکی مورد استفاده نیز بیشتر میشود. همچنین مقداری از توان مصرفی آن نیز بیهوده بوده و باعث گرم شدن آن میشود.
البته منظور از دستورات ساده این است که اکثر آنها در یک سیکل پردازش میشوند بنابراین طراحی RISC بسیار ساده تر از طراحیهای دیگری مانند CISC است. در ساختار RISC به دلیل همین سادگی، معمولاً فرکانس کاری پردازنده بیشتر از طراحیهایی مثل CISC ثبت میشود درحالی که در RISC دستورات به صورت ابتدایی، بهینه و کوتاه پردازش میشوند؛ بنابراین در فرکانس کلاک مشخص، معمولاً کارایی کمتری نسبت به طراحی CISC دارند. یکی دیگر از خصوصیات مهم طراحی ریسک دسترسی به حافظه RAM است. در RISC دسترسی به دادههای موجود در آدرسهای مشخص از رم تنها به تعدادی دستور ویژه (Load/Store) محدود شده که امکان دسترسی به دادههای رم را از طریق سایر دستورات غیرممکن میکند.
برای مثال، فرض کنید که قصد ضرب کردن دو عدد را داریم توجه کنید که برای درک بهتر، همه چیز به صورت ساده بیان شده است. در حافظه RAM و در آدرسهای a50 و a51 به ترتیب اعداد ۳ و ۲ ذخیره شده اند. با استفاده از دستورهای زیر در زبان اسمبلی و در طراحی RISC، میتوانیم این دو عدد را در یکدیگر ضرب کنیم:
LOAD r1, a50
LOAD r2, a51
PROD r1, r2
STORE a50, r1
در دستور اول و دوم، به ترتیب دادههای موجود در آدرس a50 و a51 را در ثباتهای r1 و r2 ذخیره میکنیم. در خط سوم، این دو عدد را در یکدیگر ضرب کرده و در خط آخر هم این مقدار را در آدرس a50 مینویسیم. توجه کنید که کل این فرایند را در طراحی CISC میتوانیم با استفاده از دستور MUL a50, a51 انجام دهیم. دستور MUL هم مجموعهای از همین کدهاست.
به خاطر همه این دلایل، برنامههایی که برای طراحی ریسک ساخته میشوند اغلب طولانی تر نسبت به همان برنامه در طراحی سیسک بوده و امکان اجرا شدن برنامهای که برای یک طراحی خاص ساخته شده، بر روی طراحی دیگر، قابل اجرا نیست. البته ممکن است برنامه از طریق کامپایلرهای چندمنظوره طوری ساخته شود که بر روی هر دو طراحی قابل اجرا باشد. مثل برنامههای اندروید (که از هسته لینوکس بر روی پردازندههای مبتنی بر ARM و طراحی RISC یا مبتنی بر x86 و طراحی CISC ساخته شده اند) که قابل اجرا بر روی پردازندههای متفاوتی هستند.
طراحی ریسک معایب خودش را نیز دارد از جمله؛ زیاد بودن رجیسترها، با این که سریع ترین حافظههای پردازنده هستند، باعث تاخیر در انتقال دادهها میشود. از طرفی به دلیل ساده بودن دستورات ریسک، این طراحی معمولاً نیاز به RAM بیشتری نیز دارد.
چرا استفاده از طراحی RISC بسیار رایج است؟
ترانزیستورهای موجود در هر هسته RISC که برای پردازش منطقی مورد استفاده قرار میگیرد، بسیار کمتر از تعداد ترانزیستورهایی است که بر روی طراحی CISC استفاده میشوند. که سبب کاهش اندازه کامل شده پردازنده شده و در نتیجه به صورت قطعات کوچکتر میتوانند در اغلب ابزارهای الکتریکی مورد استفاده قرار گیرند. همچنین ترانزیستور کمتر به معنای کاهش مصرف انرژی شده و باعث میشود پردازنده به نسبت، کمتر گرم شود.البته طراحی ریسک، ثباتهای بیشتری در اختیار کاربران و برنامه نویسان قرار میدهد اگر چه از انواع مهم دادهها (مثلاً اعداد اعشاری) پشتیبانی نمیکند.
همه این دلایل باعث میشوند که پردازندههای ساخته شده توسط طراحی RISC (به خصوص همراه با معماری ARM) هزینه تمام شده بسیار کمتری نسبت به پردازندههای CISC داشته باشند. به این ترتیب میتوان از آنها در اغلب دستگاهها از تلفنهای ثابت گرفته تا سوپرکامپیوترها استفاده کرد. البته بیشترین کاربرد این پردازندهها در دستگاههایی هستند که به نسبت، نیاز به پردازش و توان مصرفی کمتری دارند مانند تلفنهای هوشمند، تبلتها، ساعتهای هوشمند و … .
به دلیل این که بسیاری از برنامهها و سیستم عاملها برای معماری x86 ساخته میشوند که از طراحی CISC استفاده میکند، همچنین به دلیل کارکرد بهتر CISC نسبت به RISC، طراحی RISC نمیتواند جایگزین طراحی CISC در سیستمهای شخصی، لپتاپها و سیستمهای پیشرفته که نیاز به پردازش مجموعه بزرگی از دادهها و دستورات را دارند، شود. به عبارت دیگر، RISC در ابزارهای کوچک که نیاز به پردازش و مصرف انرژی کم دارند و CISC در ابزارهایی که نیاز به پردازش زیاد و سریع دارند، کاربرد بهتری دارد.
معماریها مهمی که از RISC استفاده میکنند:
ریسک به خاطر مزایایی که دارد در اغلب پردازندههای کم هزینه استفاده میشود. از جمله معماریهایی که از طراحی ریسک استفاده میکنند عبارت اند از:
- ARM
- Atmel AVR
- AMD 29k
- Intel i860
- ARC
- Blackfin
عالی بود 😀
بسیار عالی…
سیکل چیه؟؟؟
سلام. هر پردازنده با یک فرکانس کاری مشخص کار میکنه. مثلا 3000 مگاهرتز یعنی در هر ثانیه 3000 نوسان (همون cycle) انجام میده و به هر کدوم از اونا یه سیکل (یا سایکل) گفته میشه.
خیلی مفید و پر محتوا بود
🙂 خوبه که مورد استفادتون قرار گرفته.
واقعا که بی نظیر و عالی بود.یه سوال از محضر شما بزرگوار بپرسم اینه که یک پردازنده ساده که عمل جمع و تفریق انجام میده می تونیمبگیم که یک پردازنده ریسک هست؟؟؟؟ضمن اینکه فرمودید پردازنده ریسک کارهای محاسباتی ساده رو انجام میده؟؟
با تشکر
سلام. بستگی داره به پردازنده! مثلا پردازنده های CISC مگه عمل جمع و تفریق رو انجام نمیدن؟ اگه منظورتون انواع ریزپردازنده هاس، بله اکثرشون بر اساس طراحی ریسک ساخته میشن. در ضمن توی ریسک کارهای محاسباتی پیچیده هم انجام میگیره ولی با دستورات ساده تر نسبت به سیسک.
سلام امیرجان… اگه ممکنه من تلفنی باشماصحبت کنم.. مواردی هست که بایدعرض کنم. اینم شماره منه ۰۹۱۹۴۷۵۰۰۴۶
البته اگه خواستید خودم تماس میگیرم
سلام. لطفا از طریق قسمت تماس با ما در ارتباط باشید.
سلام کلا ریزپردازنده ها علاوه RISC and CISC and DSP به چند دسته دیگه طراحی می شن.توی اینترنت که گشتم فقط همین ۳ تا رو دیدم البته توی منابع خارجی ،منابع داخلی هم که کلا تعطیله …ممنون از مطالب مفیدتون.لطف میکنید جواب رو به ایمیلم بفرستید
سلام. بله، متاسفانه وضعیت منابع داخلی بد که نه، خیلی خیلی بده و چیزی نمیشه پیدا کرد ازشون.
انواع دیگه ای از طراحی پردازنده ها وجود داره که طبق مجموعه دستورات خاصی کار میکنن مثل ASIP CISC RISC EDGE EPIC MISC OISC VLIW NISC ZISC TRIPS.