اولین کنفرانس مهندسی کامپیوتر لاهیجان گیلان
روشهای بهبود معماری فوق مکعبی سيستم چند پردازنده ای
فرامرز نعمتي
گروه مهندسی برق الکترونيك دانشگاه آزاد اسلامی لاهيجان
E-mail:fnemati_iau@yahoo.com
برای دانلود مقاله به آدرس http://www.irpdf.com مراجعه کنید
چكيده
در اين مقاله سعي برآن شده است تا ضمن بررسي اجمالی ساختار معماری چند پردازنده ای فوق مکعبی نقات ضعف و قوت جديد ترين تکنيکهای مدرن مورد استفاده شده در اين سری از پردازنده های جديد مقايسه گردد به واسطه اين تحقيق به منظور دسترسی به چند پردازنده ای فوق مدرن نتايج بدست آمده نشان می دهد که برای ارتباط بين پردازشگر ها معماری فوق مکعبی به دليل ويژگيهای منحصر به فرد آن مناسب می باشد از طرفی برای بهبود ارتبا طات بين پردازنده ها از تکنيک سيستم همبندی پيشرفته استفاده شده است. البته الگوريتمهای مختلف ارتباطات حافظه ای در اين بين می تواند بسته به موارد استفاده تغيير کند و جهت بالا بردن دقت هر پردازنده در اين معماری از سيستم پايپ لاين بهينه شده با کارايی مناسب بهره گرفته می شود.
كلمات كليدي
فوق مكعبي, همبندي بهينه, دسترسي به حافظه, حافظه نهان, پايپ لاين
1- مقدمه
اولين نمونه تجاري سيستم فوق مكعبي توسط شركت اينتل وارد بازار گرديده است و گونه ها ی مختلف آن دارای 32 , 64 و يا 128ريز پردازنده 80286 در گره های خود می باشند. گره ها به صورت نقطه به نقطه مستقيما به همديگر متصل مي شوند هريک از گره ها مستقيما به يک پردازنده که مدير مکعب گفته می شود ارتباط داده می شود. واحد مدير مکعب محيط برنامه نويسی و ساير پشتيبانيهای لازم را در سيستم فراهم می آورد. سيستم فوق مکعبی اينتل در واقع يک سيستم توزيع شده می باشد تا يک سيستم موازی به همين دليل در حال حاضر سعی بر آن است تا با تبديل و گذر از يک سيستم توزيع شده به پردازش موازی به نحوی که ويژگيهای مطلوب سيستم توزيع شده حفظ گردد هم از سرعت عمل و هم دقت بالاتر جهت پردازنده های جديد که سيستم چند پردازنده ای می باشند معماری کامپيوتر های جديد را به اين عرصه وارد نمود
شکل (1): سيستم چند پردازنده
2- ساختارهاي اتصالات متقابل
اجزاي يك سيستم چند پردازنده اي :
- cpu ها
-IOP كه به وسايل ورودي ـ خروجي متصلند
- و يك واحد حافظه كه ممكن است به چند ماژول جداگانه تقسيم شده باشند.
اتصالات في مابين اين اجزاء بسته به تعداد مسير هاي موجود بين پردازنده ها و حافظه در يك سيستم حافظه مشترك يا ميان عناصر پردازش در سيستم هاي با كوبل سست، مي تواند آرايش هاي مختلف فيزيكي داشته ياشند . براي ايجاد شبكه في مابين آنها چند شكل فيزيكي وجود دارد . بعضي از اين انواع عبارتند از:
1. گذرگاه اشتراكي زمان مشترك
2. حافظه چند پورتي
3. سويج هاي تقاطعي
4. شبكه سوئيچنگ چند طبقه
5. سيستم فوق مكعبي
3- سيستم فوق مكعبي
ساختار چندپردازنده فوق مکعبي يا چند پردازنده n بعدي ، يک سيستم کوپل سست متشکل ازپردازنده است که به شکل يک مکعب دودويي nبعدي بهم متصل شده اند هر پردازنده يک گره را براي مکعب تشکيل مي دهند.
شکل (2): معماری فوق مکعبی
از آنجاييکه کامپيوترهای واقع شده در هر گوشه تشکيلات فوق مکعبی بايد قادر باشد کليه عمليات محاسباتی و اجرايی را به تنهايی انجام دهد بنابراين بايد دارای اندازه و قدرت کافی باشد.
بهمبندی ارتباط اين نوع معماری متمايل به سخت و متوسط می باشد و به دليل استقلال کاری و عمليات کامپيوتر ها عامل همزمانی و سنکرونيزاسيون گرهها در سطح پايينی است اکثر اين گونه معماری از سيستم عامل توزيع شده استفاده می نمايد و بر اين پايه واساس درجه کنترل پذيری اين سيستم ها در حد متوسطی خواهد بود ارتباط بين کامپيوتر ها در سيستم های مکعبی و فوق مکعبی می تواند به صورت سريال و يا موازی انجام گيرد. براساس نحوه و تعداد کانال های ارتباطی سيستم های مکعبی , اين نوع تشکيلات دارای امکانات فوق العاده خوب و عالی هستند و هيچگونه مشکل ارتباطی در اين سيستم های پردازش موازی وجود ندارد و درصورتی که يک و يا چند مسير ارتباطی در سيستمهای فوق مکعبی دچار مشکل و يا خرابی شوند پردازشگرها هنوز می توانند از مسير های موجود ديگر با ساير واحد ها مبادله اطلاعاتی نمايند
3- 1- ويژگيهای سيستم های کامپيوتری هم پيوند بهينه استفاده شده در سيستمهای فوق مکعبی پيشرفته
سيستمی هم پيوند است که علاوه بر حافظه معمولی دارای حافظه ويژه ديگری است که مندرجات داخلی آن قابل آدرس بندی است و از آن برای نگهداری داده ها مورد استفاده قرار میدهند. خاصيت اين حافظه اين است كه می توان محتواي ذخيره شده در آن با داده های خارجی به صورت سخت افزاری در مدت زمان کوتاهی مقايسه نمود واين نحوه مقايسه به صورت بيتی و بايتی صورت می پذيرد قالب بندي اين بيتها توسط ثبات مخصوصی به نام ماسک با استفاده از تابع منطقی AND انجام می شود. دانه بندی پردازنده های سيستم هم پيوندی در محدوده ريز و حتی فوق العاده ريز است زيرا عمل مقايسه و پردازش داده ها از يک تاچند بيت قابل ارتقا است بنابراين کنترل و همبندی اين سيستمها فوق العاده مستحکم است
شکل (3): شماي تشكيلاتي هم پيوندی
شكل (4): فضای تشکيلاتی هم پيوندی
4– چند پردازنده ای با دسترسي يكنواخت به
حافظه (UMA)
- در سيستم هاي پردازش موازي كه در آنها امكان دسترسي يكنواخت به همه حافظه ها فراهم گرديده است و همه پردازنده ها توان استفاده از همه منابع مشترك را بطور يكسان دارند
- هر پردازنده مي توانند داراي حافظه نهان اختصاصي باشند اينگونه سيستمها بايد داراي ارتباط محكم باشند و از گذرگاه مشترك براي تبادل اطلاعات و داده ها استفاده مي كنند
5- چند پردازنده ای با دسترسي غير يكنواخت به حافظه (NUMA)
- در سيستم هاي پردازش موازي كه حافظه اصلي آنهابه صورت حافظه هاي محلي بين پروسسورها تقسيم شده است امكان دسترسي يكسان و مساوي به همه آدرسها را براي همه پروسسورها مهيا وفراهم نمي سازند زيرا دسترسي به يك حافظه محلي خودش ساده و آسان تر است و زمان كمتري را جهت دسترسي به حافظه محلي ديگر لازم دارد در اين سيستم حافظه محلي همه پردازندها توسط هر پردازنده قابل دسترسي خواهد بود و تفاوت تنها در زمان دسترسي خواهد بود. اين سيستم می تواند حد وسطی در ارتباط بين پردازنده های فوق مکعبی باشد
6- چند پردازنده ای بر اساس معماري فقط حافظه نهان (COMA)
اين سيستم بر اساس حافظه مشترك وحافظه نهان مي باشد حافظه هاي نهان هر پردازنده توسط تمام پردازنده هاي موجود در سيستم قابل دسترسي مي باشد پس حافظه نهان هر پردازنده قسمتي از حافظه نهان سيستم است كه در داخل پردازندهها گسترش يافته است
7- استفاده از سيستمهای پايپ لاين روشی کارا در بهبود سرعت پردازش
Pipelining يك نكنيك پياده سازي است كه در آن چند دستوالعمل در زمان اجرا بر روي هم قرار مي گيرند ( با هم همپوشاني دارند ) . امروزه pipelinig در سريع كردن پردازه ها نقش كليدي دارد . چرخه دستورلعمل در پردازنده ها به قرار زير است:
l واكشي دستورالعملها از حافظه
l خواندن ثباتها همزمان با كدگشائي دستورالعمل
l اجرا دستورالعمل يا محاسبه يك آدرس
l دسترسي به يك عملوند در حافظه داده ها
l نوشتن نتايج در ثباتها
شكل (5): كارايي پايپ لاين در برابر غير پايپ لاين
7-1- طراحي مجموعه دستورالعملها براي پايپ لاين
نکات زير می بايست در اين خصوص رعايت شود:
داراي طول يكساني هستند MIPS الف- همه دستورالعملهاي
فقط داراي تعداد كمي قالب دستورالعمل است MIPS ب-
ج- عملوندهاي حافظه فقط در بارگذاري ها و ذخيره سازي ها ظاهر ميشوند
د- عملوندها بايد در حافظه بطور مرتب چيده شده باشند.
كامپيوترها در حقيقت براي هندل كردن انشعابها از پيش بيني استفاده مي كنند . يك راه حل ساده اين است كه هميشه فرض كنيم انشعاب روي نمي دهد . در زماني كه شما درست حدس زده باشيد پايپ لاين با حداكثر سرعت عمل خواهد كرد . فقط زماني كه انشعاب موفق باشدآنگاه پايپ لاين توقف خواهد داشت . شكل زير يك مثال را بيان مي كند.
شكل (6): مثا لي از پيش بينی انشعاب در پايپ لاين
پايپ لاين كردن تعداد دستورالعملهاي اجرا شده و سرعت شروع تا كامل شدن دستورالعملها را افزايش ميدهد . پايپ لاين زمان لازم براي كامل شدن يك دستورالعمل منفرد را كاهش نمي دهد : پايپ لاين پنج مرحله اي براي كامل كردن يك دستورالعمل نياز به پنج سيكل ساعت دارد . پايپ لاين عملكرد و توان عملياتي دستورالعملها را نسبت به زمان اجراي يك دستورالعمل منفرد بهبود مي بخشد
7-2- كنترل پايپ لاين
مي توانيم خطوط كنترل را به پنج گروه بر اساس مراحل پايپ لاين تقسيم كنيم
l برداشت دستورالعمل
l ديكد كردن دستورالعمل / خواندن فايلهاي ثبات
l اجرا/ محاسبه آدرس
l دسترسي به حافظه
l نوشتن به عقب
7-3- كاهش تاخير در انشعاب
يك راه براي بهبود كارائي انشعابها آن است كه هزينه رخ دادن انشعاب را كاهش دهيم . اگر ما اجراي انشعاب را در پايپ لاين زودتر و عقبتر انجام دهيم , دستورالعملهاي كمتري نياز به خالي شدن خواهند داشت.
7-4- پيشگوئي ديناميك انشعاب
يك روش آن است كه به آدرس دستورالعمل نگاه كنيم كه آيا يك انشعاب دفعه قبل رخ داده است يا نه و دستورالعمل بعدي را از محل قبلي واكشي نمائيم .
يك روش استفاده از branch prediction buffer يا branch history table است . يك بافر پيشگوئي انشعاب , حافظه كوچكي است كه توسط قسمت پائين آدرس دستورالعملهاي انشعاب شاخص بندي شده است . حافظه شامل يك بيت است كه ميگويد انشعاب اخيرا رخ داده است يا خير
براي پروسسورهاي سريعتر سه روش عمده براي توسعه پا يپ لاين ساده وجوددارد.
l اولين روش :سوپر پايپ لاين ناميده ميشود كه اين يك پايپ لاين بزرگتررامعني ميدهد.سرعت ماكزيمم ايده ال از پايپ لاين
l روش بعدي تقسيم قسمتهاي داخل كامپيوتر بطوريكه درهرمرحله چندين دستورالعمل انجام شود.كه به اين تكنيك سوپراسكالرگويند.
l روش سوم: زمانبندي پايپ لاين ديناميك يا پايپ لاين ديناميك ميباشدكه بوسيلهءسخت افزار براي اجتناب ازمخاطره هاي پايپ لاين استفاده ميشود
در روش سوپر پايپ لاين انتشار دو دستورالعمل درهر ثانيه نياز به برداشت وديكدكردن 64بيت دستورالعمل خواهد داشت. براي سادگي ديكدمانيازمندجفت شدن دستورات از طريق يك باند64بيتي هستيم كه عملياتALUياپرش درابتدامي آيند
|
Alu or branch instruction
|
|
IF
|
|
ID
|
|
EX
|
|
MEM
|
|
WB
|
|
|
|
|
|
|
|
Load or store instruction
|
|
IF
|
|
ID
|
|
EX
|
|
MEM
|
|
WB
|
|
|
|
|
|
|
|
Alu or store instruction
|
|
|
|
IF
|
|
ID
|
|
EX
|
|
MEM
|
|
WB
|
|
|
|
|
|
Load or store instruction
|
|
|
|
IF
|
|
ID
|
|
EX
|
|
MEM
|
|
WB
|
|
|
|
|
|
Alu or branch instruction
|
|
|
|
|
|
IF
|
|
ID
|
|
EX
|
|
MEM
|
|
WB
|
|
|
|
Load or store instruction
|
|
|
|
|
|
IF
|
|
ID
|
|
EX
|
|
MEM
|
|
WB
|
|
|
|
Alu or branch instruction
|
|
|
|
|
|
|
|
IF
|
|
ID
|
|
EX
|
|
MEM
|
|
WB
|
|
Load or store instruction
|
|
|
|
|
|
|
|
IF
|
|
ID
|
|
EX
|
|
MEM
|
|
WB
|
شکل (7): پايپ لاين سوپر اسكالر در اجرا
7-5-پايپ لاين پويا
زمانبندي پايپ لاين ديناميك توقفهاي قبلي را مي برد تا دستورات بعدي براي اجرا را پيدا كند وقتي كه براي حل توقف منتظرند پايپ لاين معمولا به سه گروه عمده زير تقسيم مي شود:
برداشت دستور العمل و واحد انتشار ؛ واحد اجرا و واحد اختتاميه. شكل زير اين مدلها را نشان مي دهد:
شکل (8): زمانبندي پايپ لاين پويا
از اينرو با بهبود کارايی سيستم پايپ لاين پويا می توان قدرت و سرعت پردازش را در معماری فوق مکعبی بالا برد.
8- نتيجه
با بررسي هاي مذکور چند پردازنده ای فوق مکعبی به لحاظ ارتباطات چند بعدی بين پردازنده ها معماری مناسبی برای سيستمهای امروزی تشخيص داده شده است در ارتباط بين پردازنده ها سيستم همبندی با ويزگی غير يکنواخت به حافظه(NUMA) مناسب می باشد البته اگرچند پردازنده ای متمرکز روی يک پردازشگر باشد معماری های UMA و COMA نيز مطلوب است. ازطرفی به منظور کارايی بيشتر به لحاظ سرعت پردازش به نحوی که عبوری از سيستمهای منحصرا توزيع شده به تکنيک های جديد تر پردازش موازی داشته باشيم استفاده از الگوريتم پايپ لاين با ويژگيهای جديد در طراحی پردازنده های مورد استفاده در اين نوع معماری شايسته است.
سپاسگزاری
از هم فکری تمام اعضای کميته علمی کنفرانس مهندسی کامپيوتر لاهيجان کمال سپاسگزاری را دارم.
مراجع
[1] 1- نادري, مجيد ، معماري و طراحي سيستمهاي پيشرفته كامپيوتري و پردازش موازي ، مركز انتشارات دانشگاه علم و صنعت ايران ، 1378 .
[2] استالينگ, ويليام, سازمان و معماری کامپيوتر (طراحی برای کارايی بهتر), ويراست ششم , ترجمة سپيدنام , انتشارات علوم رايانه, 1383
[3] جلال زاده , آرش ، سيستم پردازش موازي با استفاده از پردازنده هاي پنتيوم ، مجله IEEEدانشجويان دانشگاه صنعتي اميركبير ، 1381
[4] اكبري , بهزاد , ريز پردازنده های پيشرفته , انتشارات ناقوس , 1379
[5] David HM Spector, “Building Linux Clusters” , O’Reilly & Associates, 2000.
[6] www.mpi-forum.org
[7] Peter S. Pacheco, “Parallel , Programming with MPI”, Morgan Kauffmann publishers, 1997
[8] Serlin, Omri, “MPIS,Dhrystones and OtherTales”, Datamation,23,June,1986.
[9] http://en.wikipedia.org/un ki/super-computer
[10] G Holzmann, D Bosnacki -Multi-Core Model Checking with SPIN Proceedings of HIPS-TOPMoDRS, Long Beach, CA, 2007