نقطه عطف پست RISC : RISC vs . CISC

اكثريت پردازشگرهاي امروزي را به درستي نمي توان كاملاً 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 حافظه / ذخيره سازي و كامپايلر (همگردان) در اواخر دهة ۷۰ و اوايل دهة ۸۰ آشنا شد. اين سه تكنولوژي، محيط تكنولوژيكي را كه محققان در آن تلاش مي كردند سريعترين ماشين را بسازند مشخص توصيف مي كند.

ذخيره سازي و حافظه
تجسم و تصور تاثيرات تكنولوژي ذخيره سازي در كامپيوترهاي طراحي شده دهه هاي ۷۰ و ۸۰ بسيار سخت است. در سال ۱۹۷۰، كامپيوترها براي ذخيره كد برنامه از حافظه هسته مغناطيسي استفاده مي كردند؛ هسته هاي حافظه مغناطيسي نه تنها گران قيمت بودند بلكه بسيار هم كند عمل مي كردند. پس از معرفي اقلام RAM از جنبه سرعت بهبود يافتند، اما دربارة قيمت كاري نكردند، براي فهم بهتر اين واقعيت را در نظر بگيريد كه در سال ۱۹۷۷، يك DRAM، ۱ مگابايتي حدود ۵۰۰۰ دلار قيمت داشت. در سال ۱۹۹۴ اين قيمت تا حدود ۶ دلار كاهش يافت. علاوه بر قيمت بالاي RAM، ذخيره سازي ثانويه نيز گران قيمت و كند بود، بنابراين حجم زيادي از كد براي اعلام به RAM از ذخيره سازي ثانويه بسيار از عملكرد مي كاست.

قيمت بالاي حافظه اصلي و كندي ذخيره سازي ثانويه دست به دست هم مي داد تا كار را كسل كننده و طولاني كند. بهترين كد، كد فشرده بود؛ شما را قادر مي ساخت تا همه را در مقدار اندكي حافظه قرار دهيد. از آنجايي كه قيمت RAM بخش مهمي از كل هزينه را تشكيل مي داد، كاهش قيمت آن مستقيماً منجر به كاهش هزينه كل سيستم مي شود. (در ابتداي دهه ۹۰، قيمت RAM تنها ۳۶% قيمت كل سيستم را شامل مي شد و پس از آن بسيار ارزانتر شد.) بعداً دربارة اندازه كد و هزينه سيستم، پس از در نظر گرفتن جزئيات عقلي مربوط به محاسبه CISC، صحبت خواهيم نمود.

كامپايلر (همگردان)
ديويد تپرسون در يك مقاله كه به تازگي منتشر كرده است و قبلاً بعنوان paper در بر كلي بيان نموده است، مي نويسد : چيزي را حين خواندن يك كاغذ به خاطر سپردن دليل انزجار از كامپايلر هاي آن نسل بود. برنامه نويسان C مجبور بودن كلمه «register» را نزديك هر متغير بنويسند تا كامپايلر از ريجسترها (ثبت كننده ها) بتوانند استفاده كند. وي بعنوان پروفسور سابق بركلي كه يك شركت كامپيوتري كوچك براه انداخته بود ادامه مي دهد : «تا زمانيكه كه كار كند، هر تكه آهن پاره را كه به مردم بدهي، آنها قبول خواهند كرد.» عمده دليل اين حرف وي بسيار ساده است. پردازشگرها سرعت بالاتر و حجم حافظه بيشتر است و مردمي را كه در هنگام كار از انتظار طولاني مدت خسته مي شوند را راضي مي كند.

كار كامپايلر در آن زمان نسبتاً ساده بود : ترجمه جملاتي كه به يك زبان سطح بالا (HLL) نوشته شده بود، مثل زبان C يا پاسكال به زبان اسمبلي، سپس زبان اسمبلي تبديل به كد ماشين توسط اسمبلر، مي شد. مرحلة مجموعه سازي زمان زيادي صدف مي شد و خروجي به سختي قابل ارزش بود. تا زماني كه ترجمه HLL به اسمبلي درست انجام مي گرفت، بهترين انتظار را برآورده مي ساخت. چنانچه از كدها بهينه و فشرده استفاده مي كرديد تنها مورد انتخاب شما كه به اسمبلر بود.

VLSI : استفاده از هنر تركيب اشل بسيار بزرگ (Very lange Scale Integration) منجر به ايجاد ترانزيستورهاي با دانسيته پائين در مقايسه با استانداردهاي امروزي، شد. نمي توانيد كاركردهاي بسياري را در يك چيپ قرار دهيد. در سال ۱۹۸۱ زمانيكه تپرسن و سكوئين براي نخستين بار پروژه RISC را مطرح نمودند، قرارگيري يك ميليون ترانزيستور روي چيپ بسيار زياد بود. بعلت قلت منابع در دسترس ترانزيستور، ماشين هاي CISC آن روز مثل VAX واحدهاي عملكردي مختلفي روي چيپ هاي چندتايي داشتند. اين يك مشكل بود زيرا خطاي تاخير زمان انتقال داده ها بين چيپ ها باعث محدود كردن عملكرد و اجرا مي شد. كار يك چيپ به تنهايي ايده آل بود اما بنا به دلايلي بودن بازانديشي اساسي عملي نبود.

راه حل RISC
بنا به دلايلي كه ذكر آنها در اينجا لازم نيست، نقطه عطف نرم افزاري دهة ۶۰ و ۷۰ هرگز كاملاً موفق نبود. در سال ۱۹۸۱ تكنولوژي تغيير كرد اما سازندگان هنوز از روشهاي قديمي بهره مي گرفتند : پيچيدگي را از نرم افزار به سخت افزار هدايت مي كردند. همانگونه كه قبلاً گفتم، بسياري از اجراهاي CISC بقدري پيچيده بودند كه چندين چيپ را در بر مي گرفتند. واضح است كه اين وضعيت ايده آل نمي باشد.

چيزي كه مورد نياز بود يك راه حل تك چيپي بود ـ چيزي كه استفاده بهينه از منابع در دسترس نادر ترانزيستور را فراهم كند. چنانچه تمام CPU را روي يك چيپ سوار مي كرديد بايستي يكسري قطعات را از آن خارج كنيد. در اين رابطه تحقيقاتي نيز انجام شد كه به پروفايل كردن كدها حقيقي متقاضي در حال اجرا و مشاهده انواع موقعيت هايي كه اتفاق مي افتاد مي پرداخت.

ايده، درك اين موضوع بود كه بيشترين زمان را كامپيوتر صرف چه كاري مي كند تا بتوانند براي بهينه سازي اين وظيفه ساختار مناسب بسازند. در واقع حاضر بودند تا سرعت كامپيوتر را در بخشي كه بيشترين وقت را صرف مي كند بالا ببرند حتي اگر اين امر منجر به كاهش سرعت در بخشهاي ديگر بشود. اين شيوه كميتي طراحي كامپيوتر در اظهار نظر معروف پترسون خلاصه شده است : سرعت بخشي به مورد معمول و رايج.