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

مقایسه دو معماری کامپیوتری


پیش از سال های 1980 میلادی توجه فراوانی در کاهش معنایی بین زبان های مورد استفاده برای برنامه ریزی کامپیوترها و زبان های ماشین متمرکز بود. باور این بود که اگر زبان های ماشین بیشتر به زبان های برنامه نویسی سطح بالا شباهت یابند، به دلیل کاهش تعداد دستورالعمل های مورد نیاز جهت پیاده سازی یک برنامه، به کارایی به تری منجر خواهد شد و کامپایل زبان های برنامه نویسی سطح بالا به زبان ماشین آسان تر می شود. نتیجه نهایی این موضوع، طراحی مجموعه دستورالعمل هایی بود که شامل دستورالعمل های بسیار پیچیده بودند.

مقایسه دو معماری کامپیوتری

هر قدر که فن آوری کامپایلر پیشرفت کرد، پژوهش گران شروع به بررسی این نظریه کردند که آیا سیستم هایی با دستور العمل های پیچیده  که تحت عنوان کامپیوترهایی با مجموعه دستور العمل های پیچیده ( CISC) شناخته می شدند، در قیاس با سیستم هایی که بر مبنای مجموعه دستورالعمل های ساده تر هستند، کارایی بهتری را به دست می دهند یا نه. دسته دوم از این سیستم ها تحت عنوان کامپیوترهایی با مجموعه دستورالعمل های کاهش یافته (RISC) شناخته می شوند.

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

در طی سال های 1980 میلادی و اوایل 1990 میلادی، بحث و مجادله ی فراوانی در جامعه ی معماری کامپیوتر بر سر این که کدام یک از دو رهیافت بهتر است وجود داشت و بسته به اینکه چگونه به موضوع نگاه کنید، می توان گفت که هر دوی این رهیافت ها برنده شده اند. اکثر ISA هایی که از سال 1980 میلادی معرفی شدند، معماری های RISC بوده اند که دلالت بر برتری RISC دارد. از سویی، معماری اینتل x-86 ( IA-32 ) که از مجموعه دستورالعمل های CISC استفاده می کند، با توجه به تعداد پردازنده هایی که به فروش رسانده است، معماری غالب و حاکم کامپیوترهای شخصی/ایستگاه های کاری است و دلالت دارد که معماری های CISC برنده شده اند.

مقایسه دو معماری کامپیوتری

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

توضیح واضحی بین معماری های RISC و CISC این است که معماری های RISC، معماری های بارگذاری-ذخیره سازی ( Load-Store ) هستند، یعنی این که تنها دستور العمل های بارگذاری و ذخیره سازی می توانند به حافظه دسترسی داشته باشند. برای مثال، معماری GPR نیز یک معماری باگذاری/ذخیره است.

در بسیاری از معماری های CISC، دستور العمل های محاسبانی و سایر دستور العمل ها ممکن است به جای فایل ثبات، ورودی های خود را از حافظه سیستم بخوانند و خروجی های خود را در آن بنویسند. برای مثال، معماری CISC ممکن است اجازه دهد که عمل ADD به صورت ADD      (r1) , (r2) , (r3) باشد که در آن پرانتزهای دور نام ثبات بیان گر این است که ثبات شامل آدرسی در حافظه است که عملوندهای می توانند در آن جا یافت شوند و یا این که نتیجه بایستی در آن جا قرار گیرد.  با ایتفاده از این نشان گذاری، دستور العمل ADD      (r1) , (r2) , (r3) به پردازنده دستور می دهد تا مقدار واقع در مکانی از حافظه را که آدرس آن در r2 ذخیره شده، با مقدار واقع در مکانی از حافظه که آدرس آن در r3 ذخیره شده است، جمع کرده و نتیجه را در آدرسی از حافظه که در r1 قرار دارد، ذخیره کند.

تفاوت بین معماری های بارگذاری-ذخیره سازی و معماری هایی که می توانند ارجاع های حافظه را با سایر ذستورالعمل ها ادغام کنند، مثال بسیار خوبی از مصلحت سنجی ها بین معماری CISC و RISC است. به دلیل اینکه معماری های RISC با استفاده از مدل بارگذاری-ذخیره سازی پیاده سازی شده اند، هر پردازنده ی RISC برای پیاده سازی تک عمل ADD در CISC (که در بالا توضیح داده شد) نیازمند چندین دستور العمل است. با این حال، سخت افزار مورد نیاز جهت پیاده سازی پردازنده ی CISC بسیار پیچیده خواهد بود زیرا مجبور است عملوندها را از حافظه واکشی کند، بدین ترتیب محتملا پردازنده ی CISC نسبت به RISC دارای زمان سیکل طولانی تری خواهد بود.

فاطمه مجدآبادی

بخش دانش و زندگی تبیان


برگرفته از:

Computer Architecture

Nicholas Carter

H.daneshvar