اکثریت پردازشگر های امروزی را به درستی نمی توان کاملاً RICE یا CISC نامید. دو درسنامد معماری به حدی به یکدیگر نزدیک شده اند. که دیگر فرق آشکاری بین مباحث مربوط به افزایش عملکرد و کارآیی وجود ندارد. واضح تر بگوییم، چیپ هایی که به شکل x86CLSC ISA عمل می کنند بسیار شبیه به چیپ های مختلف RISC ISA می باشد؛ از نظر شکل و ساختار شبیه به یکدگیرند اما در زیر در پوشها کاملاً با هم متفاوتند. اما این یک خبر یک طرفه نیست. در واقع چنین موضوعی برای CPU های RISC امروزی نیز مطرح است. اختارهایی به آنها افزوده شده که امروز اندک چیزی به پیچیدگی CLSC وجود دارد. بنابراین بحث بین RISC ضد CLSC تنها در بخش های بازاریابی و فروش مطرح است که این اختلافات جزئی را بهانه معرفی و فروش قرار می دهند. در اینجا، لازم می دانم به گفته دیوید دینزل، رئیس ساخت خانواده سانزاسپارک (Sun,s SPARK) و CEO of Transmeta، اشاره ای داشته باشم : «امروزه (در RISC ) تیم های بزرگ طراحی و چرخه های بزرگ طراحی وجود دارند.»
او می گوید : «داستان عملکرد بسیار واضح است. اندازه های کمکی دیگر کوچک نیستند. فقط به نظر نمی رسد که حساسیت زیاد داشته باشد.» نتیجه محصول جدید چیپ های پیچیده RISC است. در بزرگترین زمینه های مشکل عملکرد خارج از نظرم است. دینزل می گوید : به نظر من می رسد که MIP,S R10/000 و HP PA-8000 بسیار پیشرفته تر و پیچیده تر از معماری CLSC های استاندارد امروزی است که پنتیوم II می باشند. پس فایده RISC، اگر چیپ ها چندان ساده نیستند، چیست؟
این بیابند مهم است و احساس و نظر بین محققین را بیان می کند. بجای CPU های یا CLSC در بخش های قدیمی تر دیگر چیزی نداریم. به عصر پس از RISC خوش آمدید. چیزی که به دنبال می آید یک تز بازبینی شده کامل است که چند سال قبل توسط Ars قبل از اظهار نظر دینزل در این مورد و قبل از اینکه من فرصت تبادل ایمیل با افراد متفکر را داشته باشم، بیان شده است. در این مقاله من درباره نکات زیر صحبت خواهم نمود :
RISC به همان اندازه که یک استراتژی طراحی برای عکس العمل به تدریس در یک طرح کامپیوتری در یک مدرسه است یک تکنولوژی مشخص نیست. در واقع یک طغیان علیه نرم (هنجارهای) رایج بود، نرم هایی که دیگر وجود ندارند و من راجع به آنها صحبت خواهم نمود. CLSC را بعنوان یک Catch - all (نوعی جعبه) برای دسته فکر کننده در مقابل RISC زندگی می کنیم. جائیکه کلمات RISC CLSC, بجز در مارکتینگ، اهمیت خود را از دست داده اند. در دنیای پس از RISC هر طرحی و عملی با محسنات خودش مورد بررسی قرار می گیرد، و نه با کلماتی مثل باریک، دو قطبی نظرات جهانی را که سعی می کنندآن را در تاریکی از دو کمپ قرار دهند. دسته بندی می کند.
پس از طبقه بندی پیشرفت تاریخچه ای استراتژی های طراحی و قرار دادن فلسفه آنها در یک بافت تکنولوژیکی مناسب، من به شرح ایده پردازشگرهای پس از RISC می پردازم و نشان می دهم که چگونه این پردازشگرها به دقت بر گروههای RISC، CLSCجا نمی گیرند.
تاریخچه اقدام به شروع کار
احتمالاً رایج ترین شیوه مقایسه RISC، CLSC لیست کردن ویژگی های هر کدام و کنار هم قرار دادن آنها جهت مقایسه سپس بحث در این باره است که کدام ویژگی به عملکرد کمک می کند یا عامل بازدارنده است. این شیوه چنانچه در مورد دو تکنولوژی موقت رقیب اعمال شود بسیار خوب است مثل مقایسه کارت های ویدیوئی OS،CPU های مشخص و ... اما در مورد CLSCو RISCموفق نیست. زیرا، این دو فقط استراتژی های طراحی هستند و نه تکنولوژی در نتیجه مقایسه آنها جهت دستیابی به یکسری اهداف موجب بروز مشکل می شود. در واقع خلاصه تر، می توان آنها را فلسفه های طراحی یا راههایی برای فکر درباره یک سری مسائل و راه حل های آنها نامید.
اکنون دیدن این دو استراتژی که از میان شرایط تکنولوژیکی مشخصی پیشرفت کرده اند مهم است و اینکه در زمان نکته و نقطه مشخصی دارند. هر کدام روشی برای طراحی ماشین هایی بود که طراحان از کارآیی منابع تکنولوژیکی استفاده کرده بودند. در فرموله نمودن این استراتژی ها، محققان نظری هم به محدودیت های تکنولوژی روز داشته اند محدودیت هایی که امروزه الزاماً وجود ندارند. کلید فهم RISC، CLSCفهمیدن این محدودیت ها و شرایط سازندگان کامپیوتر در این محدودیت ها می باشد. بنابراین مقایسه صحیح RISC، CLSCاز آن بیرون آمده و گسترش یافته اند، گفتن این نکته ضروری است که ابتدا بایستی ؟؟؟ VLST حافظه / ذخیره سازی و کامپایلر (همگردان) در اواخر دهه 70 و اوایل دهه 80 آشنا شد. این سه تکنولوژی، محیط تکنولوژیکی را که محققان در آن تلاش می کردند سریعترین ماشین را بسازند مشخص توصیف می کند.
ذخیره سازی و حافظه
تجسم و تصور تاثیرات تکنولوژی ذخیره سازی در کامپیوتر های طراحی شده دهه های 70 و 80 بسیار سخت است. در سال 1970، کامپیوترها برای ذخیره کد برنامه از حافظه هسته مغناطیسی استفاده می کردند؛ هسته های حافظه مغناطیسی نه تنها گران قیمت بودند بلکه بسیار هم کند عمل می کردند. پس از معرفی اقلام RAM از جنبه سرعت بهبود یافتند، اما درباره قیمت کاری نکردند، برای فهم بهتر این واقعیت را در نظر بگیرید که در سال 1977، یک DRAM، 1 مگابایتی حدود 5000 دلار قیمت داشت. در سال 1994 این قیمت تا حدود 6 دلار کاهش یافت. علاوه بر قیمت بالای RAM، ذخیره سازی ثانویه نیز گران قیمت و کند بود، بنابراین حجم زیادی از کد برای اعلام به RAM از ذخیره سازی ثانویه بسیار از عملکرد می کاست.
قیمت بالای حافظه اصلی و کندی ذخیره سازی ثانویه دست به دست هم می داد تا کار را کسل کننده و طولانی کند. بهترین کد، کد فشرده بود؛ شما را قادر می ساخت تا همه را در مقدار اندکی حافظه قرار دهید. از آنجایی که قیمت RAM بخش مهمی از کل هزینه را تشکیل می داد، کاهش قیمت آن مستقیماً منجر به کاهش هزینه کل سیستم می شود. (در ابتدای دهه 90، قیمت RAM تنها 36% قیمت کل سیستم را شامل می شد و پس از آن بسیار ارزانتر شد.) بعداً درباره اندازه کد و هزینه سیستم، پس از در نظر گرفتن جزئیات عقلی مربوط به محاسبه CISC، صحبت خواهیم نمود.
کامپایلر (همگردان)
دیوید تپرسون در یک مقاله که به تازگی منتشر کرده است و قبلاً بعنوان paper در بر کلی بیان نموده است، می نویسد : چیزی را حین خواندن یک کاغذ به خاطر سپردن دلیل انزجار از کامپایلر های آن نسل بود. برنامه نویسان C مجبور بودن کلمه «register» را نزدیک هر متغیر بنویسند تا کامپایلر از ریجسترها (ثبت کننده ها) بتوانند استفاده کند. وی بعنوان پروفسور سابق برکلی که یک شرکت کامپیوتری کوچک براه انداخته بود ادامه می دهد : «تا زمانیکه که کار کند، هر تکه آهن پاره را که به مردم بدهی، آنها قبول خواهند کرد.» عمده دلیل این حرف وی بسیار ساده است. پردازشگرها سرعت بالاتر و حجم حافظه بیشتر است و مردمی را که در هنگام کار از انتظار طولانی مدت خسته می شوند را راضی می کند.
کار کامپایلر در آن زمان نسبتاً ساده بود : ترجمه جملاتی که به یک زبان سطح بالا (HLL) نوشته شده بود، مثل زبان C یا پاسکال به زبان اسمبلی، سپس زبان اسمبلی تبدیل به کد ماشین توسط اسمبلر، می شد. مرحله مجموعه سازی زمان زیادی صدف می شد و خروجی به سختی قابل ارزش بود. تا زمانی که ترجمه HLL به اسمبلی درست انجام می گرفت، بهترین انتظار را برآورده می ساخت. چنانچه از کدها بهینه و فشرده استفاده می کردید تنها مورد انتخاب شما که به اسمبلر بود.
VLSI : استفاده از هنر ترکیب اشل بسیار بزرگ (Very lange Scale Integration) منجر به ایجاد ترانزیستورهای با دانسیته پائین در مقایسه با استانداردهای امروزی، شد. نمی توانید کارکردهای بسیاری را در یک چیپ قرار دهید. در سال 1981 زمانیکه تپرسن و سکوئین برای نخستین بار پروژه RISC را مطرح نمودند، قرارگیری یک میلیون ترانزیستور روی چیپ بسیار زیاد بود. بعلت قلت منابع در دسترس ترانزیستور، ماشین های CISC آن روز مثل VAX واحدهای عملکردی مختلفی روی چیپ های چندتایی داشتند. این یک مشکل بود زیرا خطای تاخیر زمان انتقال داده ها بین چیپ ها باعث محدود کردن عملکرد و اجرا می شد. کار یک چیپ به تنهایی ایده آل بود اما بنا به دلایلی بودن بازاندیشی اساسی عملی نبود.
راه حل RISC
بنا به دلایلی که ذکر آنها در اینجا لازم نیست، نقطه عطف نرم افزاری دهه 60 و 70 هرگز کاملاً موفق نبود. در سال 1981 تکنولوژی تغییر کرد اما سازندگان هنوز از روشهای قدیمی بهره می گرفتند : پیچیدگی را از نرم افزار به سخت افزار هدایت می کردند. همانگونه که قبلاً گفتم، بسیاری از اجراهای CISC بقدری پیچیده بودند که چندین چیپ را در بر می گرفتند. واضح است که این وضعیت ایده آل نمی باشد. چیزی که مورد نیاز بود یک راه حل تک چیپی بود چیزی که استفاده بهینه از منابع در دسترس نادر ترانزیستور را فراهم کند. چنانچه تمام CPU را روی یک چیپ سوار می کردید بایستی یکسری قطعات را از آن خارج کنید. در این رابطه تحقیقاتی نیز انجام شد که به پروفایل کردن کدها حقیقی متقاضی در حال اجرا و مشاهده انواع موقعیت هایی که اتفاق می افتاد می پرداخت. ایده، درک این موضوع بود که بیشترین زمان را کامپیوتر صرف چه کاری می کند تا بتوانند برای بهینه سازی این وظیفه ساختار مناسب بسازند. در واقع حاضر بودند تا سرعت کامپیوتر را در بخشی که بیشترین وقت را صرف می کند بالا ببرند حتی اگر این امر منجر به کاهش سرعت در بخشهای دیگر بشود. این شیوه کمیتی طراحی کامپیوتر در اظهار نظر معروف پترسون خلاصه شده است : سرعت بخشی به مورد معمول و رایج.