۵pt

چکيده
يک سيستم چندپردازنده، کامپيوترى است که در آن چند پردازنده حضور دارند و اين پردازندهها براى حل يک مسئله در سطوح مختلفى با هم همکارى مىکنند. به دليل لزوم برقرارى ارتباط بين پردازندههاى مختلف در يک چندپردازنده، مسائل مختلفى از قبيل شبکههاى ارتباطى، حافظهى مشترک، و انسجام حافظههاى نهانى در مبحث معمارى اين سيستمها مطرح مىشود. در اين مقاله سعى داريم معمارى چندپردازندهها را به طور اجمالى مورد بررسى قرار دهيم.واژههاى کليدى: چندپردازنده، روشهاى اتصال، حافظهى مشترک، گذرگاه، حافظهى نهانى.

در اين مقاله سعى داريم مسائل اصلى معمارى چندپردازندهها را مورد بررسى قرار دهيم. براى اين منظور ابتدا در بخش Parallel در مورد روشهاى پردازش موازى و جايگاه و اهميت چندپردازندهها صحبت خواهيم کرد. سپس در بخش Struct انواع مختلف معمارىهاى چندپردازندهها و و قسمتهاى اصلى آنها را مورد بررسى قرار مىدهيم. در بخش Symm سيستمهاى چندپردازنده را به دو دستهى متقارن و نامتقارن تقسيمبندى کرده و در مورد خصوصيات کلى اين دو دسته بجث مىکنيم. در بخش Interconn به بررسى انواع مختلف معمارى شبکهى اتصالى پردازندهها که مهمترين قسمت يک سيستم چندپردازنده است مىپردازيم. در پايان، در بخش Cache ، يکى از مسائل مهمى که در طراحى چندپردازندهها به آن برخورد مىکنيم، يعنى مسئلهى انسجام حافظههاى نهانى ۵ را مطرح کرده و راهحلهايى براى آن ارائه مىدهيم.
Parallel جايگاه چندپردازندهها در پردازش موازى
در مقدمه گفتيم که طراحان سيستمهاى کامپيوترى براى دستيابى به سرعتهاى پردازشى بالاتر، ايدهى پردازش موازى يعنى انجام همزمان کارها را مطرح کردند. براى پيادهسازى اين ايده، روشهاى متفاوتى وجود دارد از قبيل استفاده از خط لوله ۶ ، پردازندههاى بردارى ۷ ، چندپردازندهها، و پردازش توزيع شده ۸ در يک شبکهى کامپيوترى.منظور از استفاده از خط لوله در يک پردازنده اين است که پردازنده بتواند اجراى قسمتهايى از هر دستور را همزمان با اجراى قسمتهايى از دستور ديگر انجام دهد. براى مثال در زمانى که يک دستور اجرا مىشود، دستور بعدى را واکشى ۹ کند. اين روش امروزه در اغلب پردازندهها مورد استفاده قرار مىگيرد.
پردازندههاى بردارى يا آرايهاى ۰۱ ، پردازندههايى هستند که در آنها يک واحد کنترل وجود دارد که چندين واحد محاسبات عددى و منطقى (ALU) که به آنها عنصر پردازشگر ۱۱ نيز گفته مىشود، را کنترل مىکنند. عناصر پردازشگر به صورت همگام شده ۲۱ عمل مىکنند و با يک شبکه به هم متصل هستند که مىتوانند از طريق آن اطلاعاتى را به هم منتقل کنند. ساختارهاى مختلفى براى اين شبکهى اتصالى وجود دارد که بسيارى از آنها مانند ساختار فوقمکعب، در چندپردازندهها نيز به کار مىروند. هر يک از عناصر پردازشگر، مىتوانند حافظهى محلى نيز براى خود داشته باشند. چنين پردازندههايى مىتوانند يک عمل را در يک لحظه روى حجم زيادى از دادهها انجام دهند. براى مثال مىتوانند دو بردار را با هم جمع کنند و يا دو ماتريس را در هم ضرب کنند. کامپيوترهاى MPP (پردازندههاى موازى انبوه ۳۱ ) از پردازندههاى بردارى با تعداد زيادى عنصر پردازشگر استفاده مىکنند و امروزه به عنوان قدرتمندترين کامپيوترهاى جهان براى انجام کارهايى که نياز به حجم محاسبات بالا دارد استفاده مىشوند.
منظور از يک چندپردازنده، سيستمى است که در آن چند پردازنده وجود دارند که مىتوانند به طور همزمان عمل کنند. اين پردازندهها مىتوانند با هم ارتباط داشته باشند و به منظور حل يک مسئله با هم همکارى کنند. کل يک سيستم چندپردازنده توسط يک سيستم عامل کنترل مىشود.
تفاوت اصلى چندپردازنده با پردازندهى بردارى در اين است که در يک پردازندهى بردارى يک پردازنده وجود دارد که در هر لحظه مىتواند تنها يک دستور را روى چند داده انجام دهد ولى چندپردازنده در هر لحظه چند دستورالعمل را انجام مىدهد. به همين دليل است که بنا به تقسيم بندىفلين ۴۱ ، به پردازندههاى بردارى، کامپيوترهاى يک دستور-چند داده ۵۱ (SIMD)، و به چندپردازندهها، کامپيوترهاى چند دستور-چند داده ۶۱ (MIMD) گفته مىشود.
علاوه بر اين در پردازندههاى بردارى عناصر پردازشگر به صورت همگام شده عمل مىکنند، در حالى که در چندپردازندهها هر يک از پردازندهها کار خودشان را انجام مىدهند و فقط در صورتى که لازم باشد، مىتوانيم با برقرارى ارتباط بين آنها، آنها را هماهنگ کنيم. مشکل بزرگ استفاده از پردازندههاى بردارى اين است که براى دستيابى به سرعتهاى بالا روى اين کامپيوترها، بايد الگوريتمهاى جديدى براى مسائل پيدا کنيم که به صورت موازى عمل کنند. بنابراين بسيارى از نرمافزارها، بايد در مورد اين کامپيوترها از ابتدا طراحى شوند. در حالى که در سيستمهاى چندپردازنده، مىتوانيم با استفاده از روشهاى چندبرنامگى ۷۱ از پردازندههاى سيستم استفاده کنيم. بنابراين تنها به يک سيستمعامل نياز داريم که بتواند کارهاى مختلف را براى اجرا به پردازندههاى مختلف بسپارد. Hwang۴۸
شباهت زيادى بين يک چندپردازنده و يک شبکهى کامپيوترى وجود دارد، و چنانچه در فصل بعد خواهيم ديد، معمارى يک چندپردازنده با اتصال سست، بسيار شبيه به معمارى يک شبکهى کامپيوترى است. ولى تفاوت اساسىاى که بين آنها وجود دارد، در اين است که يک چندپردازنده يک کامپيوتر با چند پردازنده است، در حالى که در يک شبکه تعدادى کامپيوتر وجود دارد که مىتوانند از نظر فيزيکى از هم دور باشند و هر کدام سيستم عامل خود را داشته باشند.
به طور کلى از طراحى سيستمهاى چندپردازنده اهداف زير دنبال مىشود:
هزينهى کمتر چندپردازندهها، انگيزهى مهمى در گرايش به سمت چندپردازندهها به جاى کامپيوترهاى تکپردازندهى سريع است. مسئلهى مهم ديگر اين است که پردازندههاى با سرعت بالا بيشتر در انحصار کشورهاى امريکا و ژاپن هستند و بنابراين استفاده از چندپردازندهها به جاى تکپردازندههاى سريع راهى براى رهايى از وابستگى به اين کشورهاست و بنابراين از نظر سياسى و اقتصادى حائز اهميت است.
Struct ساختار چندپردازندهها
به طور کلى سيستمهاى چندپردازنده را بر اساس معمارىشان مىتوان به دو دسته تقسيم کرد: سيستمهاى با اتصال سست ۸۱ ، و سيستمهاى با اتصال سخت ۹۱ .البته اين تقسيمبندى در واقع دو حالت افراطى در اتصال پردازندههاى يک سيستم را نشان مىدهد. هر سيستم واقعى، ممکن است در بعضى جهات به يک سيستم با اتصال سست و در جهات ديگر به يک سيستم با اتصال سخت شباهت داشته باشد. در اين بخش هر دوى اين مدلها را براى شناخت قسمتهاى مختلف يک سيستم چندپردازنده، مورد بررسى قرار مىدهيم. Mano۳۹, Hwang۴۸
سيستمهاى با اتصال سست
در اين ساختار، هر پردازنده داراى مقدار زيادى حافظهى محلى و دستگاه ورودى/خروجى مربوط به خود مىباشد، به طورى که غالب دستورات و دادههاى مورد نياز را در حافظهى خود مىيابد. به مجموعهى پردازنده، حافظهى محلى، و واسطهاى ورودى/خروجى ۰۲ ، يک واحد کامپيوترى ۱۲ مىگويند. (شکل LC ) ارتباط بين واحدهاى مختلف از طريق سيستم انتقال پيام ۲۲ انجام مىشود. درجهى اتصال در اين ساختار بسيار پايين است. بنابراين معمولا به چنين سيستمى، سيستم توزيع شده ۳۲ نيز مىگويند.

يک سيستم با اتصال سست وقتى کاراست که ميزان محاوره بين کارهايى که روى پردازندههاى مختلف هستند، کم باشد. براى کارهايى که به محاورهى زياد در بين خودشان نياز دارند از سيستمهاى با اتصال سخت استفاده مىشود.
در سيستمهاى با اتصال سست، سيستم انتقال پيام مهمترين عامل تعيين کنندهى کارايى سيستم است. در چنين سيستمى، سيستم انتقال پيام ممکن است يک گذرگاه ۴۲ مشترک (مثل کامپيوتر PDP-۱۱) يا يک سيستم حافظهى مشترک باشد. در سيستمهايى که از گذرگاه مشترک استفاده مىکنند، کارايى به تعداد پيامهايى که روى گذرگاه فرستاده مىشوند، طول پيامها، و ظرفيت گذرگاه بستگى دارد. وقتى که تعداد واحدهاى کامپيوتر افزايش يابد، درگيرى ۵۲ در دسترسى به گذرگاه نيز بيشتر مىشود. براى پيادهسازى سيستم انتقال پيام به صورت حافظهى مشترک، حافظهى ارتباطى را مىتوان به صورت يک دسته درگاه ۶۲ منطقى که هر کدام از آنها به يک پردازنده اختصاص يافته است و همهى پردازندهها به آنها دسترسى دارند، تصور کرد. براى هر پروسسى که روى يک پردازنده در حال اجراست نيز يک درگاه ورودى در حافظهى محلى آن پردازنده در نظر گرفته مىشود. هر پردازش مىتواند با هر کدام از پردازشهاى ديگر ارتباط برقرار کند. اگر يک پردازش بخواهد با پردازش ديگرى که روى پردازندهى خودش اجرا مىشود ارتباط داشته باشد، پيغام خود را در درگاه ورودىاى که براى آن پردازش در حافظهى محلى پردازنده اختصاص يافته است قرار مىدهد و اگر بخواهد با پردازشى که روى پردازندهى ديگرى اجرا مىشود ارتباط برقرار کند، پيغام خود را در درگاه مربوط به پردازندهى آن پردازش در حافظهى ارتباطى قرار مىدهد.
در مورد يک سيستم انتقال پيام که به صورت حافظهى مشترک پيادهسازى شده است، عامل محدود کننده، مسئلهى درخواست يک واحد حافظه ۷۲ به صورت همزمان از سوى چند پردازنده است. Hwang۴۸
در مورد روشهاى مختلف اتصال پردازندهها، در بخش Interconn به طور مفصل صحبت خواهيم کرد.
سيستمهاى با اتصال سخت
در اين ساختار، يک حافظهى اصلى مشترک بين پردازندهها وجود دارد. يک حافظهى کوچک محلى و يک حافظهى نهانى ۸۲ نيز ممکن است در هر پردازنده وجود داشته باشد.براى ارتباط پردازندهها با يکديگر و همچنين با واحدهاى حافظه و دستگاههاى ورودى/خروجى سه شبکهى اتصالى وجود دارد. اين شبکهها عبارتند از:

شبکهى اتصال پردازنده - حافظه (PMIN)
وظيفهى PMIN اين است که وقتى يک پردازندهى P بخواهد با واحدPL ايجاد مىکند و در اين موقع P مىتواند به حافظهى L دسترسى داشته باشد. اگر چند پردازنده بخواهند به يک واحد حافظه دسترسى همزمان داشته باشند، درگيرى پيش مىآيد. کار PMIN در اين موقع اين است که براساس يک روش اولويت بندى به يکى از پردازندهها اجازه مىدهد که از آن واحد استفاده کند. براى اين که تعداد درگيرىهابراى دسترسى به حافظه کم شود، عموما تعداد پردازندهها را با تعداد واحدهاى حافظه برابر مىگيرند. همچنين يک حافظهى محلى براى هر پردازنده در نظر مىگيرند که اين، ترافيک روى PMIN را کم مىکند. وجود اين حافظهى محلى خصوصا وقتى موثر است که بخواهيم از مکانيزم چندبرنامگى در هر پردازنده استفاده کنيم. در اين حالت مطلوب است که وضعيت پردازش متوقف شده ۲۳ در درون حافظهى محلى نگهدارى شود، نه در داخل حافظهى اصلى مشترک. علاوه بر اين معمولا کد هسته ۳۳ و جدولهاى سيستم عامل نيز در حافظهى محلى قرار داده مىشوند. کامپيوتر چندپردازندهى C. mmp که در دانشگاه کارنگىملون ۴۳ ساخته شده است، ۱۶ پردازنده دارد و از اين معمارى استفاده مىکند. Hwang۴۸
در چند پردازندهها رجوع به حافظهى اصلى از طريق PMIN
است که اين يک تاخير در راهگزينى بين پردازنده و حافظه
ايجاد مىکند و سيکل اجراى دستور افزايش مىيابد و در
نتيجه، کارايى پايين مىآيد. براى حل اين مشکل، براى
هر پردازنده يک حافظهى نهانى اختصاصى قرار مىدهند که
آن پردازنده بيشتر اطلاعات مورد نياز خود را مىتواند
در حافظهى نهانى خود پيدا کند. وجود حافظهى محلى و حافظهى نهانى
کارايى را به نحو چشمگيرى افزايش مىدهد،
چون از يک طرف حتا اگر تنها يکى از پردازندهها مشغول
به کار باشند، زمان دسترسى به حافظهى مشترک بيشتر از
زمان دسترسى به حافظهى محلى و نهانى است، و از طرف ديگر
اگر حافظهى محلى و نهانى وجود نداشته باشند، ميزان درگيرى
در دسترسى به حافظه خيلى بالا مىرود که اين کارايى را پايين مىآورد.
البته وجود حافظهى نهانى اختصاصى براى هر پردازنده،
مسئلهى انسجام حافظههاى نهانى را
ايجاد مىکند، به اين مفهوم که هر گاه اطلاعات يک محل حافظه در
حافظهى نهانى پردازندهى
، تغيير
کرد، بايد توجه داشته باشيم که اگر يکى
ديگر از پردازندهها مثل
خواست اطلاعات موجود در آن محل از
حافظه را بخواند، بايد
اطلاعات تغيير
يافته را به پردازندهى
بدهيم.
اين باعث مىشود که حافظهى نهانى، بازده کامل نداشته باشد.
براى مثال در يک سيستم تکپردازنده که در آن مقدار حافظهى نهانى به
اندازهاى است که نسبت خطا
۵۳
در آن به ۱ درصد کاهش
پيدا کرده است، انتظار داريم که ترافيک روى گذرگاه نيز
به حدود ۱ درصد مقدار اوليهى خود کاهش يابد، در حالى
که در يک سيستم چندپردازنده به خاطر ايجاد انسجام
در حافظههاى نهانى، ترافيک گذرگاه تنها به ۱۰ تا ۲۰ درصد مقدار
اوليهى خود مىرسد. البته با وجود اين معمولا استفاده
از حافظهى نهانى به صرفه است
Stone۳۹
.
در مورد مسئلهى انسجام حافظههاى نهانى، بعدا بيشتر صحبت خواهيم کرد.
شبکهى اتصال سيگنال وقفه (ISIN)
ISIN اجازه مىدهد که هر پردازنده، به هر يک از پردازندههاى ديگر وقفه ۶۳ بفرستد. اين مکانيزم براى هماهنگ کردن ۷۳ پردازندهها به کار مىآيد. همچنين با استفاده از اين مکانيزم يک پردازنده که خراب شده است، مىتواند به پردازندههاى ديگر سيستم خبر دهد تا آنها بتوانند جاى او را بگيرند.ISIN مىتواند به صورت يک گذرگاه مشترک ساده و يا يک کليد متقاطع ۸۳ پيچيده باشد. سيستم C. mmp از نوع اول و کامپيوترهاى Univac ۰۰۱۱/۰۸ و Honeywell ۰۶/۶۶ از نوع دوم استفاده مىکنند. گذرگاه مشترک ارزانتر است، ولى ميزان درگيرى و همچنين تاخير به دليل مدارات منطقى که به منظور داورى گذرگاه ۹۳ در آن قرار داده شده است، زياد است. اما عموما تقاضا براى دسترسى به گذرگاه به اندازهاى است که روش گذرگاه مشترک کارايى مطلوبى دارد. Hwang۴۸
شبکهى اتصال ورودى/خروجى - پردازنده (IOPIN)
در صورتى که واحدهاى ورودى/خروجى بين پردازندههاى مختلف مشترک باشد، براى ارتباط بين پردازندهها و دستگاههاى ورودى/خروجى به يک شبکهى ارتباطى نياز داريم. اگر چند پردازنده تقاضاى همزمان براى دسترسى به يک واحد ورودى/خروجى کنند، اين شبکهى اتصال وظيفه دارد که به اين پردازندهها براساس يک روش اولويت بندى اجازهى دستيابى به آن واحد را بدهد. Hwang۴۸Symm سيستمهاى متقارن و نامتقارن
سيستمهاى چندپردازنده از نظر کارى که پردازندههاى مختلف انجام مىدهند، به دو دستهى متقارن و نامتقارن تقسيم مىشوند.منظور از يک سيستم متقارن، سيستمى است که همهى پردازندهها در آن کار يکسانى را انجام مىدهند. يعنى براى مثال هستهى سيستم عامل را نيز همهى پرازدندهها با هم اجرا مىکنند. چنين سيستمى لزوما بايد همگن ۰۴ نيز باشد، يعنى همهى پردازندهها بايد از توانايىهاى يکسانى برخوردار باشند. همچنين همهى پردازندهها بايد بتوانند به همهى دستگاههاى ورودى/خروجى دسترسى پيدا کنند.
برعکس، در يک سيستم غير متقارن، به پردازندههاى مختلف کارهاى متفاوتى داده مىشود. يعنى مثلا ممکن است که يک پردازنده مسئول انجام عمليات ورودى/خروجى شود، پردازندهى ديگر هستهى سيستم عامل را اجرا کند، و هر کدام از پردازندههاى ديگر يکى از پردازشها را اجرا کنند.
مزيت سيستم متقارن در اين است که قابليت اعتماد آن بالاست و توانايى ترميم خطا ۱۴ دارد؛ يعنى اگر يکى از پردازندهها خراب شود، بقيهى پردازندهها مىتوانند جاى آن را پر کنند. در حالى که در سيستم نامتقارن اين طور نيست؛ يعنى اگر براى مثال يک پردازنده مسئول ورودى/خروجى باشد و اين پردازنده خراب شود، ديگر نمىتوان به دستگاههاى ورودى/خروجى دسترسى پيدا کرد. ولى در مقابل اشکال سيستم متقارن در اين است که سيستم عامل کنترل کنندهى آن خيلى پيچيدهتر از سيستم عامل کنترل کنندهى يک سيستم نامتقارن است. براى سيستمهاى نامتقارن حتا مىتوان از سيستم عاملهاى معمولى شبکه نيز استفاده کرد. Pountain۳۹, Hwang۴۸
روشهاى اتصال پردازندهها Interconn
همان گونه که در بخشهاى پيش اشاره شد، روشهاى گوناگونى براى اتصال پردازندهها و واحدهاى حافظه در يک سيستم چندپردازنده وجود دارد. معمولترين اين روشها عبارتند از:ساختارهاى ديگرى نيز مانند تورىهاى دو بعدى و سه بعدى ۵۴ وجود دارند که از نظر منطق کار، مشابه با فوقمکعبها هستند و تنها از نظر توپولوژى اتصال با آنها متفاوتند.
در اين بخش هر يک از ساختارهاى فوق را به تفصيل مورد بررسى قرار مىدهيم.
اتصال از طريق گذرگاه مشترک
در اين روش همهى پردازندهها و واحدهاى حافظهى مشترک از طريق يک گذرگاه مشترک به هم متصل هستند (شکل Bus ). همان طور که در شکل ديده مىشود، هر يک از پردازندهها داراى يک حافظهى محلى و يک حافظهى نهانى اختصاصى نيز هست.
مشکل اصلى در استفاده از گذرگاه براى ارتباط بين پردازندهها، محدوديت سرعت گذرگاه است. به همين دليل است که تعداد کامپيوترهايى که مىتوانند از طريق يک گذرگاه به هم متصل شوند، محدود است. در گذشته کامپيوترهاى تجارى ساخته شده بر اساس سيستم گذرگاه مىتوانستند در حدود ۳۲ پردازنده را به هم متصل کنند، ولى در حال حاضر با پيشرفت تکنولوژى پردازندهها، اين تعداد کاهش پيدا کرده است. دليل اين مسئله اين است که در يک سيستم
پهناى باند گذرگاه در يک سيستم تکپردازنده باشد. بنابراين تعداد کامپيوترهايى که با استفاده از يک گذرگاه مىتوانند به هم متصل شوند، به دليل محدوديت پهناى باند گذرگاه، محدود است. در گذشته چون سرعت پردازندهها پايين بود، اين محدوديت مشکل چندانى ايجاد نمىکرد، ولى با پيشرفت تکنولوژى در حال حاضر سرعت پردازندهها خيلى افزايش پيدا کرده است، در حالى که محدوديت سرعت گذرگاه هنوز پابرجاست. به خاطر اين محدوديت و با توجه به اين که معمولا نسبت سرعت به قيمت پردازندهها، هر چه سرعت بالاتر رود، بيشتر مىشود، گاهى براى ساختن سيستم چندپردازنده، از يک تکنولوژى جديد براى گذرگاه و از تکنولوژىهاى معمول براى پردازندهها استفاده مىکنند. به اين صورت مىتوان تعداد بيشترى (تا حدود ۱۰۰۰ تا) پردازندهى ارزان قيمت را در يک سيستم چندپردازنده به هم متصل کرد و يک سيستم چند پردازندهى سريع به وجود آورد که گاهى اوقات از نظر اقتصادى بهصرفهتر از يک سيستم چندپردازنده با تعداد کمترى پردازندهى سريع و گرانقيمت است.
يکى از عواملى که در پهناى باند گذرگاه تاثير زيادى دارد، طول گذرگاه است. محدوديتهاى پهناى باند گذرگاه، به طور کلى از سه عامل زير ناشى مىشوند:
علاوه بر گذرگاههاى فلزى، در حال حاضر سعى مىشود که از تکنولوژى نورى براى اتصال پردازندهها به هم استفاده شود. در آينده انتظار داريم که با استفاده از اتصالات نورى، بتوانيم با سرعتى در حدود ۱ تا ۱۰ گيگا هرتز پردازندهها را به هم متصل کنيم.
البته بايد توجه داشته باشيم که گذرگاه، تنها گلوگاه ۸۴ يک سيستم چندپردازنده بر اساس گذرگاه نيست. يک گلوگاه مهم ديگر، حافظهى مشترک است. چون ارتباط پردازندهها از طريق حافظهى مشترک است، وقتى که تعداد پردازندهها افزايش يابد، ميزان تقاضاى خواندن و نوشتن در محلهاى مشخصى از حافظه مثلا محلهايى که برنامهها متغيرهاى کنترلى مشترکشان را نگهدارى مىکنند زياد مىشود و در نتيجه چون خواندن و نوشتن به طور همزمان ممکن نيست، پردازندهها مجبور مىشوند که براى دسترسى به حافظه صبر کنند.
براى از بين بردن اين گلوگاه روشهاى مختلفى
وجود دارد. براى مثال مىتوانيم
از حافظههاى مشترک خيلى سريع يا
تکنولوژىها