نویسندگی در بایت گیت

طراحی پردازنده CISC چیست؟

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 هم توضیح داده شده است:

RISC example

یک عمل ضرب ساده (تفکیک شده دستور MUL)

 

به دلیل همین تفاوت‌هاست که برنامه‌های ساخته شده برای یک طراحی خاص، در طراحی دیگری اجرا نخواهند شد. به هرحال، CISC طراحی‌ای است که زبان‌های سطح بالا را بوجود می‌آورد. البته نباید از معایب آن نیز گذشت. برای مثال، بسیاری از دستورات پیچیده در طراحی سیسک اغلب استفاده نمی‌شوند و از طرفی، هزینه تولید پردازنده‌هایی که برپایه طراحی سیسک هستند، بسیار بیشتر است و تعداد رجیسترهای عمومی آن نیز کم هستند.

در طراحی سیسک امکان استفاده از قابلیت پردازشی لوله‌ای (Pipe-line) وجود ندارد؛ چون دستورات به دلیل پیچیدگی‌هایی که دارند اندازه‌ها و فرم داده‌هایی که خواهند خواند مشخص نیست. به علاوه، دستورات در طراحی CISC در چرخه‌های متفاوتی پردازش می‌شوند. برای مثال ممکن است دستوری در یک چرخه و دستور دیگری در 6 چرخه تکمیل شود. به این ترتیب استفاده از پایپ لاین در طراحی سیسک بر خلاف طراحی رسیک، عملاً غیر ممکن خواهد بود.

با وجود نداشتن قابلیت پایپ لاین، سرعت در پردازنده‌های طراحی شده برپایه سیسک بیش از پیش اهمیت خود را نشان خواهد داد. برای مقایسه سرعت پردازنده‌های سیسک می‌توان از فرمول زیر استفاده کرد که در سه حالت مختلف بیان می‌شود. در این فرمول، نتیجه همان زمان لازم برای اجرای کامل برنامه است. البته به دلیل اینکه ممکن است برخی از دستورات در چرخه‌های متفاوتی اجرا شوند، از این فرمول نمی‌توان به صورت دقیق برای محاسبات استفاده کرد:

CPU Time Formula

پارامتر اول ("تعداد دستورات در برنامه") تنها از طریق خود برنامه قابل تغییر است. ممکن است برنامه‌ای نوشته شود که دارای 100 دستور یا 100000 دستور باشد. در طراحی سیسک، تلاش بر این است که این پارامتر کمتر شود. یعنی تعداد دستوراتی که در برنامه وجود دارند، کمتر شوند. البته می‌دانیم که در مقابل، CPI آن بیشتر خواهد شد.

پارامتر دوم ("تعداد چرخه در هر دستور") نشان دهنده تعداد چرخه‌ای (Cycle) است که برای اجرا کردن یک دستور استفاده می‌شود. در طراحی سیسک، سعی بر این می‌شود که روند افزایشی این پارامتر را در مقابل پارامتر اول، کندتر کند.

پارامتر سوم ("تعداد چرخه در یک ثانیه") اغلب به معماری و طراحی فیزیکی پردازنده بستگی دارد و همان فرکانسی است که هنگام خرید یک پردازنده ذکر می‌شود؛ مثلاً پردازنده 2.4 گیگاهرتزی (GHz).

Intel Core i7 4770k CISC Design

پردازنده Core i7 4770k اینتل با طراحی CISC و معماری x64
منبع عکس: bit-tech.net

 

چرا CISC مورد نیاز بسیاری از کاربران است؟

پردازنده‌هایی که بر پایه CISC طراحی می‌شوند معمولاً در اغلب کامپیوترهای شخصی، لپتاپ‌ها وسرورها یافت می‌شوند دلیل آن هم کارایی بهتر و بهینه تر بودن آن برای برنامه نویسان است. با استفاده از طراحی سیسک که از دستورات پیچیده تری استفاده می‌کند، برنامه نویسان می‌توانند برنامه‌ها و اپلیکیشن‌های کوچکتری ساخته و از قدرت پردازشی بیشتر سیسک استفاده کنند.علاوه بر قدرت پردازشی بیشتری که پردازنده‌های سیسک دارند، به دلیل همین طراحی پیچیده، سیستم‌هایی که برپایه آن کار می‌کنند، نیاز به حافظه RAM کمتری دارند.

درمقابل، سیسک دارای دستورات زیادی است که این حجم از دستورات باعث گستردگی اندازه فیزیکی این طراحی نسبت به RISC شده است و همین امر باعث افزایش بسیار زیاد تعداد ترانزیستورهایی می‌شود که برای پردازش منطقی مورد استفاده قرار می‌گیرند و در نتیجه هزینه تولید آن نیز به مراتب افزایش می‌یابد. همچنین این تعداد از ترانزیستورها و کنترل کننده‌ها نیازمند انرژی زیادی هستند که انرژی مصرف شده و در نهایت گرمای حاصل را زیاد می‌کند.

به دلیل این که بسیاری از برنامه‌ها و سیستم عامل‌ها برای معماری x86 ساخته می‌شوند که از طراحی CISC استفاده می‌کند، همچنین به دلیل کارکرد بهتر CISC نسبت به RISC، طراحی RISC نمی‌تواند جایگزین طراحی CISC در سیستم‌های شخصی، لپتاپ‌ها و سیستم‌های پیشرفته که نیاز به پردازش مجموعه بزرگی از داده‌ها و دستورات را دارند، شود. از طرفی به خاطر همه این دلایل، سیسک نیز نمی‌تواند جایگزین طراحی ریسک شود. به عبارت دیگر، RISC در ابزارهای کوچک که نیاز به پردازش و مصرف انرژی کم دارند و CISC در ابزارهایی که نیاز به پردازش زیاد و سریع دارند، کاربرد بهتری دارد.

AMD CISC Design

پردازنده AMD از خانواده FX که از طراحی CISC و معماری x64 استفاده می‌کنند
منبع عکس: bit-tech.net

 

معماری‌ها مهمی که از CISC استفاده می‌کنند:

سیسک به خاطر مزایایی که دارد در اغلب پردازنده‌های PC و سایر پردازنده‌هایی که نیاز به پردازش سنگینی دارند، استفاده می‌شود. از جمله معماری‌هایی که از طراحی سیسک استفاده می‌کنند عبارت اند از:

  • x86 (و x64)
  • Motorola 68000
  • z/Architecture
  • IBM System/360
حمایت مالی از سایت

مبلغ مورد نظر:
نام:
ایمیل:
دلیل حمایت:
* فیلدهای نام، ایمیل و دلیل حمایت اختیاری اند.
* پرداخت با کمک پورتال زرین پال و با کارت‌های عضو شتاب انجام می‌پذیرد.

دیدگاه ها بسته شده است.