RISC نوعی از طراحی پردازنده (CPU Design) است که گاهاً معماری آن نیز نامیده میشود. در این طراحی دستورالعملهای پیچیده بجای دستورهای ساده استفاده میشود.
طراحی CISC چیست؟
کلمه CISC (سیسک) ساده شده و مخفف عبارت Complex instruction set computing به معنای “مجموعه دستورات محاسباتی پیچیده” یا “مجموعه دستورات پیچیده” است.
CISC یکی از طراحیهای پردازنده است که اغلب به نام “معماری CISC” نیز شناخته میشود. CISC بر اساس جمع کردن مجموعهای از دستورات سطح پایین (Low-level) به عنوان تنها یک دستور ساخته شده است و در مقابل طراحی RISC قرار دارد. در این طراحی مجموعهای از دستورات ساده و ابتدایی مثل خواندن از حافظه، انجام عملیات محاسباتی و ذخیره کردن در حافظه، در یک دستور جمع میشوند یعنی بجای نوشتن تک تک این دستورات، میتوانیم از یک دستور استفاده کنیم. x86 و x64 از مهمترین معماریهایی هستند که با این طراحی در بسیاری از پردازندههای اینتل و AMD مورد استفاده قرار گرفته و بخش بزرگی از کامپیوترهای شخصی را پوشش میدهند.
منظور از مجموعه دستورات پیچیده این است که هر دستور سطح بالاتری، از مجموعهای از دستورات سطح پایین تر ساخته شده است. برای مثال، فرض کنید که قصد ضرب کردن دو عدد را داریم توجه کنید که برای درک بهتر، همه چیز به صورت ساده بیان شده است. در حافظه RAM و در آدرسهای a50 و a51 به ترتیب اعداد ۳ و ۲ ذخیره شده اند. با استفاده از دستورهای زیر در زبان اسمبلی و در طراحی CISC، میتوانیم این دو عدد را در یکدیگر ضرب کنیم:
MUL a50, a51
دستور MUL یک دستور پیچیده است که در طراحی RISC وجود نداشته و در طراحی مقابل، یعنی CISC تعبیه شده است. همانطور که قبلاً گفته شد، این دستور نیز مجموعهای از دستورات سطح پایین تر و ابتدایی تر است. یعنی دستور بالا همان کار کدهای زیر را انجام میدهد:
LOAD r1, a50
LOAD r2, a51
PROD r1, r2
STORE a50, r1
نه تنها CISC کار برنامه نویس را بسیار آسان تر میکند، بلکه باعث کاهش حجم کدهای برنامه نیز میشود. درصورت تفکیک دستور MUL a50, a51، به دیاگرام زیر خواهیم رسید که در پست مربوط به طراحی RISC هم توضیح داده شده است:
به دلیل همین تفاوتهاست که برنامههای ساخته شده برای یک طراحی خاص، در طراحی دیگری اجرا نخواهند شد. به هرحال، CISC طراحیای است که زبانهای سطح بالا را بوجود میآورد. البته نباید از معایب آن نیز گذشت. برای مثال، بسیاری از دستورات پیچیده در طراحی سیسک اغلب استفاده نمیشوند و از طرفی، هزینه تولید پردازندههایی که برپایه طراحی سیسک هستند، بسیار بیشتر است و تعداد رجیسترهای عمومی آن نیز کم هستند.
در طراحی سیسک امکان استفاده از قابلیت پردازشی لولهای (Pipe-line) وجود ندارد؛ چون دستورات به دلیل پیچیدگیهایی که دارند اندازهها و فرم دادههایی که خواهند خواند مشخص نیست. به علاوه، دستورات در طراحی CISC در چرخههای متفاوتی پردازش میشوند. برای مثال ممکن است دستوری در یک چرخه و دستور دیگری در ۶ چرخه تکمیل شود. به این ترتیب استفاده از پایپ لاین در طراحی سیسک بر خلاف طراحی رسیک، عملاً غیر ممکن خواهد بود.
با وجود نداشتن قابلیت پایپ لاین، سرعت در پردازندههای طراحی شده برپایه سیسک بیش از پیش اهمیت خود را نشان خواهد داد. برای مقایسه سرعت پردازندههای سیسک میتوان از فرمول زیر استفاده کرد که در سه حالت مختلف بیان میشود. در این فرمول، نتیجه همان زمان لازم برای اجرای کامل برنامه است. البته به دلیل اینکه ممکن است برخی از دستورات در چرخههای متفاوتی اجرا شوند، از این فرمول نمیتوان به صورت دقیق برای محاسبات استفاده کرد:
پارامتر اول (“تعداد دستورات در برنامه”) تنها از طریق خود برنامه قابل تغییر است. ممکن است برنامهای نوشته شود که دارای ۱۰۰ دستور یا ۱۰۰۰۰۰ دستور باشد. در طراحی سیسک، تلاش بر این است که این پارامتر کمتر شود. یعنی تعداد دستوراتی که در برنامه وجود دارند، کمتر شوند. البته میدانیم که در مقابل، CPI آن بیشتر خواهد شد.
پارامتر دوم (“تعداد چرخه در هر دستور”) نشان دهنده تعداد چرخهای (Cycle) است که برای اجرا کردن یک دستور استفاده میشود. در طراحی سیسک، سعی بر این میشود که روند افزایشی این پارامتر را در مقابل پارامتر اول، کندتر کند.
پارامتر سوم (“تعداد چرخه در یک ثانیه”) اغلب به معماری و طراحی فیزیکی پردازنده بستگی دارد و همان فرکانسی است که هنگام خرید یک پردازنده ذکر میشود؛ مثلاً پردازنده ۲.۴ گیگاهرتزی (GHz).
چرا CISC مورد نیاز بسیاری از کاربران است؟
پردازندههایی که بر پایه CISC طراحی میشوند معمولاً در اغلب کامپیوترهای شخصی، لپتاپها وسرورها یافت میشوند دلیل آن هم کارایی بهتر و بهینه تر بودن آن برای برنامه نویسان است. با استفاده از طراحی سیسک که از دستورات پیچیده تری استفاده میکند، برنامه نویسان میتوانند برنامهها و اپلیکیشنهای کوچکتری ساخته و از قدرت پردازشی بیشتر سیسک استفاده کنند.علاوه بر قدرت پردازشی بیشتری که پردازندههای سیسک دارند، به دلیل همین طراحی پیچیده، سیستمهایی که برپایه آن کار میکنند، نیاز به حافظه RAM کمتری دارند.
درمقابل، سیسک دارای دستورات زیادی است که این حجم از دستورات باعث گستردگی اندازه فیزیکی این طراحی نسبت به RISC شده است و همین امر باعث افزایش بسیار زیاد تعداد ترانزیستورهایی میشود که برای پردازش منطقی مورد استفاده قرار میگیرند و در نتیجه هزینه تولید آن نیز به مراتب افزایش مییابد. همچنین این تعداد از ترانزیستورها و کنترل کنندهها نیازمند انرژی زیادی هستند که انرژی مصرف شده و در نهایت گرمای حاصل را زیاد میکند.
به دلیل این که بسیاری از برنامهها و سیستم عاملها برای معماری x86 ساخته میشوند که از طراحی CISC استفاده میکند، همچنین به دلیل کارکرد بهتر CISC نسبت به RISC، طراحی RISC نمیتواند جایگزین طراحی CISC در سیستمهای شخصی، لپتاپها و سیستمهای پیشرفته که نیاز به پردازش مجموعه بزرگی از دادهها و دستورات را دارند، شود. از طرفی به خاطر همه این دلایل، سیسک نیز نمیتواند جایگزین طراحی ریسک شود. به عبارت دیگر، RISC در ابزارهای کوچک که نیاز به پردازش و مصرف انرژی کم دارند و CISC در ابزارهایی که نیاز به پردازش زیاد و سریع دارند، کاربرد بهتری دارد.
معماریها مهمی که از CISC استفاده میکنند:
سیسک به خاطر مزایایی که دارد در اغلب پردازندههای PC و سایر پردازندههایی که نیاز به پردازش سنگینی دارند، استفاده میشود. از جمله معماریهایی که از طراحی سیسک استفاده میکنند عبارت اند از:
- x86 (و x64)
- Motorola 68000
- z/Architecture
- IBM System/360
سلام
این سیسک وریسک خودمستقل یک نوع سی پی یو است ویاجز ء سی پی یو .
سلام. سی پی یو میتونه ریسک باشه یا سیسک یا طراحی های دیگه. یعنی اینا طراحی های پردازنده هستند و نه جزء ای از پردازنده.
تشكر اقاي نصيري
سلام امیر رضا خوشحال میشم مطالبی را که یاد مگیری را برای منم ایمیل کنی . من رشته ام کامپیوتر تولید چند رسانه ایی . خیلی به رشتم علاقه مندم . ممون از اطلاعاتی که در اختیارمان قرار دادی
سلام. خیلی ممنونم کوثر جان نظر لطفتونه. سعی دارم در آینده قابلیت خبرنامه رو به سایت اضافه کنم ولی فعلا یک سری مشکلات وجود داره که اهمیت برطرف کردنشون بیشتر از اونه.
سلام
یه سوال مهم:دانشگاهی هست تو ایران که معماری پردازنده یاد بده. ( سیسک ) .
اگر هست ، آینده شغلی چطور هست؟ امیدی به کار در شرکتی مثل AMD یا اینتل میشه داشت؟ یا مدرکشون به درد خودشان می خوره
سلام. بله اگه رشته مهندسی کامپیوتر گرایش سخت افزار رو بخونید، همه اینا توضیح داده میشن توش. ولی درباره آینده شغلی، متاسفانه تو ایران درباره این موضوعات فرصت های شغلی چندانی وجود نداره مگر این که در تولیدات قطعات الکتریکی و … کار کنید که فکر کنم علاقه شما به پردازنده هاست! مدرکشون معتبره اگه از سراسری بخونید ولی واسه رفتن به اینتل یا ای ام دی [به نظرم] باید تحصیلاتتون خیلی بالاتر باشه.
سلام …
تشکر از شریک ساختن ملومات مفید تان … سوال داشتم .. میشه درمورد حاظه های هردوcpu معلومات بشترارایه کید.
سلام. خواهش میکنم. منظورتون از حافظه هاشون چیه؟ چون حافظه هر دوتاشون از یه نوعه و تفاوت اصلیشون تو ساختار و مجموعه دستورالعمل هاشونه.