PDA

نسخه کامل مشاهده نسخه کامل : سوپركامپيوتر بر روی يك چيپ



Babak_King
07-12-2005, 00:31
دانشمندان كامپيوتر در دانشگاه تگزاس در حال ابداع يك معماري ريزپردازنده هستند كه هدف آن برطرف نمودن برخي از موانع اساسي كنوني پيش روي طراحان چيپ است. در صورت كسب موفقيت، اين تلاش به ساخت پردازنده‌هايي منتهي خواهد شد كه داراي كارآيي و انعطاف‌پذيري بي‌نظير خواهند بود.

طي چند دهه گذشته، تراكم ترانزيستورها بر روي يك چيپ حداقل به ازاي هر دو سال دو برابر شده است و طراحان ريزپردازنده اين ترانزيستورها را مورد استفاده قرار داده‌اند. مدارهاي پيشرفته از تكنيك‌هايي مانند پيش‌بيني انشعاب برنامه و اجراي متفكرانه براي ساخت pipelineهاي دستورالعمل عميقي كه كارآيي پردازنده را با فراهم آوردن امكان اجراي چندين دستورالعمل به صورت همزمان براي آن افزايش مي‌دهند استفاده مي‌كنند. اما پيچيدگي رو به رشد چنين مدارهايي، و گرمايي كه آنها توليد مي‌كنند، نشانه‌اي از به پايان رسيدن اين رويكرد محسوب مي‌گردد. سازندگان چيپ به جاي تلاش در جهت ساخت هسته‌هاي سريع‌تر پردازنده، تلاشي را در جهت قرار دادن تعداد بيشتري از آنها بر روي يك چيپ آغاز كرده‌اند.

Doug Burger، يك استاد علوم كامپيوتر در دانشگاه تگزاس، مي‌گويد مشكلي كه در اين مورد وجود دارد اين است كه براي آنكه نرم‌افزارهاي كاربردي از اين هسته‌هاي چندگانه بهره ببرند، برنامه‌نويسان بايد كدهاي خود را براي پردازش موازي سازماندهي نمايند، و اين امر در مورد برخي برنامه‌ها دشوار يا غير ممكن است. او مي‌گويد: "صنعت در حال حركت به سوي يك مانع برنامه‌نويسي است، مسئوليت را بر دوش نرم‌افزار مي‌گذارد و انتظار دارد كه برنامه‌نويس بتواند كدهايي را براي سيستم‌هاي آنها بنويسد."

Burger و همكارانش اميدوارند اين مسائل را به كمك يك معماري جديد ريزپردازنده‌ و مجموعه دستورالمعل بنام Trips (Tera-op Reliable Intelligently Adaptive Processing System) حل نمايند. او مي‌گويد: "هدف ما انجام اعمال پردازشي به صورت همزمان است، چه اين امكان از سوي برنامه‌نويس براي شما فراهم گردد و چه از راهي غير از اين باشد".

Trips از تكنيك‌هاي متعددي براي محقق نمودن اين امر استفاده مي‌كند. اول، كامپايلر Trips كد قابل اجرا را در بلاك‌هايي كه حداكثر حاوي 128 دستورالعمل هستند به سخت‌افزار مي‌فرستد. پردازنده كل يك بلاك را يكباره در نظر مي‌گيرد و اجرا مي‌نمايد، انگار كه آن يك دستورالعمل واحد است، كه اين امر به ميزان قابل توجهي باعث كاهش سربار ناشي از اداره و زمانبندي دستورالعمل مي‌گردد.

دوم، به جاي اين كه ترتيب اجرا از سوي كامپايلر يا برنامه‌نويس تعيين گردد، دستورالعمل‌هاي درون يك بلاك به صورت "جريان داده" اجرا مي‌شوند، به اين معني كه هر دستورالعمل به محض اينكه ورودي‌هاي آن وارد گرديدند اجرا مي‌شود. Steve Keckler، يك استاد علوم كامپيوتر و يكي از همكاران ارشد Burger در پروژه Trips، مي‌گويد: "داده خود در ميان دستورالعمل‌ها جريان مي‌يابد."



افزايش كارآيي

يك ترفند ديگر: درون يك بلاك، كامپايلر Trips مي‌تواند دو دستورالعمل را كه در دو مسير مختلف قرار دارند در صورتي كه مقصد و عمليات آنها يكسان باشد درون يك دستورالعمل واحد ادغام نمايد. پروفسور Kathryn McKinley، كه بخش كامپايلر پروژه Trips را راهبري مي‌نمايد، مي‌گويد: "مدل جريان داده ما در مقايسه با طراحي‌هاي قبلي مبتني بر مفاهيم جريان داده، اين فرصت را در اختيار كامپايلر قرار مي‌دهد كه كد كارآتر و كارآمدتري را توليد نمايد."

در نهايت، اجراي جريان داده داراي ويژگي "رمزنگاري مستقيم مقصد" است كه باعث مي‌شود نتايج يك دستورالعمل مستقيما به دستورالعمل مصرف‌كننده بعدي برود بدون اينكه موقتا در يك فايل رجيستر مركزي ذخيره گردد. اين ويژگي سربار پردازش را بيش از پيش كاهش مي‌دهد و سرعت محاسبه را افزايش مي‌دهد.

و در مقايسه با روش‌هاي سنتي بهبود كارآيي – افزايش سرعت كلاك پردازنده و ساخت pipeline هاي عميق‌تر – بهبودهاي ايجاد شده در كارآيي از سوي اين تكنيك‌ها به قيمت يك افزايش اندك در توان مصرفي حاصل مي‌گردند.

چالش مواجهه با مصرف توان، سازندگان چيپ را وادار به حركت به سوي چيپ‌هاي چند هسته‌اي مي‌نمايد. Mark McDermott كه قبلا مهندس شركت اينتل بوده و در حال حاضر قائم‌مقام مديرعامل Coherent Logix است مي‌گويد: "شما به چيزي همچون Pentium دقت كنيد، در آنجا حجم عظيمي از منطق كنترل وجود دارد، ترانزيستورهاي كنترلي كه هيچ كاري انجام نمي‌دهند – آنها صرفا انرژي مصرف مي‌نمايند. Trips در حال تلاش براي منتقل ساختن بخشي از اين پيچيدگي به كامپايلر است".

او مي‌گويد: "جايي كه Trips در آن واقعا خواهد درخشيد، كارآيي بسيار بسيار بالاي محاسبه‌گري تعبيه شده‌ي جريان داده است، همچون SDR (software-defined radio)".

اما، McDermott مي‌افزايد، "من هنوز نمي‌دانم آيا آن يك اكسير معجزه‌آسا است يا خير. هنوز تحقيقات بيشتري بايد صورت گيرد."

بر طبق اعلام توسعه‌دهندگان اين پروژه، تكنيك‌هاي جريان داده Trips با سه نوع همزماني ايجاد شده در نرم‌افزار به خوبي كار مي‌كنند – موازي‌گري سطح دستورالعمل، سطح thread و سطح داده. به همين دليل، Trips به عنوان polymorphous شناخته مي‌شود، به اين معني كه آن مي‌تواند بر روي انواع بسيار متفاوتي از برنامه‌هاي كاربردي به خوبي عمل نمايد – علمي، تجاري و تعبيه شده.

و اين دقيقا همان كيفيتي است كه از سوي آژانس پروژه‌هاي تحقيقاتي پيشرفته دفاعي (Defense Advanced Research Projects Agency) در پروژه معماري‌هاي محاسبه‌گري Polymorphous (Polymorphous Computing Architectures) دنبال مي‌شود. DARPA، كه با پرداخت مبلغ 15/4 ميليون دلار در حال همكاري با پروژه Trips است، به دنبال چيپي است كه بر روي بسياري از برنامه‌هاي كاربردي قادر به انجام يك تريليون عمليات (tera-op) در هر ثانيه باشد.

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

بنا بر گفته Keckler، چيپ‌ها كه با سرعت 500 مگاهرتز كار مي‌كنند 16 ميليارد عمليات را در هر ثانيه انجام خواهند داد. او مي‌گويد، دانشگاه براي تجاري شدن اين تكنولوژي به صنعت چشم خواهد دوخت و هدف DARPA را كه عرضه چيپ‌هاي 10 گيگاهرتزي با توانايي 1 tera-op است تا سال 2012 محقق خواهد نمود.

Burger مي‌گويد: "ما علاقه‌ي زيادي به تجاري‌سازي اين تكنولوژي داريم، و به دنبال شركاي تجاري هستيم". دسترس‌پذيري تجاري وسيع چيزي است كه DARPA نيز به دنبال آن است. آن با ويژگي polymorphism خود اين امكان را براي پنتاگون فراهم مي‌سازد كه به جاي خريداري پردازنده‌هاي سفارشي براي سيستم‌هاي خاص اقدام به خريداري چيپ‌هاي ارزان قيمت نمايد.

Chuck Moore، يكي از كاركنان ارشد شركت Advanced Micro Devices، مي‌گويد Trips وعده‌هاي فراواني داده است. او مي‌گويد: "ايده‌ها به خوبي با رفتار واقعي كد سازگار هستند. جنبه‌هاي polymorphous تكنولوژي Trips مي‌تواند آن را قادر به انجام كار موفقيت‌آميز بر روي انواع متفاوت و گسترده‌اي از برنامه‌ها و محاسبه‌گري‌ها نمايد".

از نظر Moore، يكي از بزرگترين چالش‌هاي پيش روي تبديل شدن به يك پردازنده تجاري عمده، سازگاري با نرم‌افزارها و سيستم‌هاي موجود است، به خصوص سازگاري x86. او مي‌گويد، اما يك راه براي حفظ سازگاري استفاده از Trips به عنوان كمك-‌پردازنده (co-processor) است. "پردازنده همه منظوره x86 مي‌تواند "كارهاي سنگين را به كمك-‌پردازنده محول نمايد ضمن اين كه سازگاري با نسل قبل را بر روي خود حفظ مي‌نمايد".

Moore خاطرنشان مي‌كند كه علي‌رغم وعده تكنولوژي Trips، در سطح بازار، معرفي و ارائه چيزهاي كاملا جديد كار دشواري است. اين گونه به نظر مي‌رسد كه آن بايد از يك موقعيت خاص شروع كند و در آنجا مزاياي خود را نشان دهد. هنگامي كه آن توانست مفيد بودن خود را در بخش‌هاي كليدي بازار به اثبات برساند، به احتمال قريب به يقين مي‌تواند به شكلي وسيع‌تر گسترش يابد.