مقدمه
پردازش موازي، به عنوان وسيله يا ابزاري ضروري براي حل مـسائل در بيشتر حوزه هاي علمي در طول ٢٠ ال گذشته پديدار شد. روش هـاي دستيابي به کارايي لازم در پردازنده هاي موازي، نسبت به آنچـه کـه در تـک پردازنـده ايهـا وجـود دارد، وسـيع تـر و بيـشتر اسـت .از آنجاييکـه پردازنده ها در ابتداي امر تک هسته اي بودند و به صورت سري کار مـي- کردند، و با وجود اينکه هدف بالا بردن کارايي و سرعت در سيستم هاي کامپيوتري بود، پردازند ها به سمت موازيسازي سـوق داده شـدند. بـا پيدايش تکنيک Pipeline، عمليات سـري بـه چنـد ريـزعمـل مـوازي تقسيم ميشوند، بطوريکه هريک از اين ريزعمليات ، در يک قسمت خط لوله ، همزمان با ساير ريزعمليات هايي که در قسمت هاي ديگـر در حـال اجرا هستند، اجرا ميشوند، سپس با معرفي تکنيک SMT، موازيسازي در پردازنده هاي تک هسته اي پديدار شد و اين روند با ظهور چندهسته – اي ها و چندپردازنده ايها سير تکاملي بهتري داشت [٥-٢٣،١١،٩،٣].
براي اولين بار شرکت اينتل در اوايل سال ٢٠٠٥، اولـين پردازشـگرهاي دوهسته اي خود را به بازار عرضه کرد. پس از آن شرکت AMD اقـدام به عرضه پردازشگرهاي چندهسته اي خود نمود[١٥]. پيش از آنکـه بـه شرح و معرفي چندهسته ايها و چندپردازنده ايها بپردازيم ، لازم اسـت به اين نکته اشاره کنيم که اصولاً و اساساً چرا ما بـه چنـين محـصولي نياز داريم ؟ اصولاً، پردازشگرهاي چندهسته اي، از چند هسته پـردازش کننده در يک پکيج يا بسته واحد تشکيل ميشوند که درواقع قابليـت – هاي يک کامپيوتر مجهز به چند پردازشگر را با هزينه کمتر فراهم مي- سـازد، از طرفــي امکــان انجـام چنــدين فعاليــت همزمـان بــه کمــک پردازشگرهاي دو يا چند هسته اي ميسر ميشود، البته اين بـدان معنـا نيست که پردازشگرهاي چندهسته اي قدرت اجرايي برنامه هاي واحد را افزايش ميدهند [٢٢،٢١،١٣،٩،٢ . ما در اين مقاله ، به ارزيابي کـارايي موازيسازي در پردازنده ها ميپردازيم . سپس تکنيک هايي که پردازنده – ها را به سمت موازيسازي سوق ميدهند، بررسي مي نماييم . در ادامـه ، چالش هايي که ممکن است اين تکنيک ها را تهديد کنند، مطرح نمـوده و راه حلهايي براي رفع اين چالش ها بيان مي نماييم .

٢ – مفاهيم و مباني تحقيق
٢- ١- پردازنده هاي تک هسته اي و چندهسته اي
CPU، واحد پردازشگر مرکزي است که وظيفه اصلي آن انجام محاسبات مي باشد. پردازنده ها، شامل بخش هاي مختلفي مي باشند که مهمترين بخش آنها، واحد محاسبه و منطق (ALU) مي باشد. پردازنده – ها را ميتوان به دو دسته تک هسته اي و چندهسته اي تقسيم بندي نمود. پردازنده هاي تک هسته اي، شامل يک هسته در داخل يک بسته مي باشند که درآن واحد فقط يک عمل را مي توانند انجام دهند، درحاليکه پردازنده هاي چندهسته اي ، از ٢ يا چند هسته در داخل يک بسته يا پکيج تشکيل ميشوند که درآن واحد، ميتوانند ٢ يا چند عمل را بطور همزمان انجام دهند. شکل ١، نمونه اي از پردازنده هاي تک – هسته اي و چندهسته اي ميباشد [١٣،٩،٨،٢].

٢-٢ مفهوم همروندي
اين مفهوم ، در CPU هاي تک هسته اي وجود دار همروندي به اين معناست که در هر لحظه از زمان ، پردازنده فقط قادر به انجام يک کار مي باشد [١٣،٢١].

٢-٣- مفهوم همزماني
همزماني در پردازنده ها، بدين معناست که پردازنده چندين کار را مي – تواند به طور همزمان و با هم انجام دهد. اين ، همان مفهوم موازي سازي در پردازنده هاست که افزايش سرعت پردازش اطلاعات را به ارمغان مي آورد [٢١،١٣،٦].

٢-٤- پردازش موازي
اصولاً پردازش موازي به روش هايي اتلاق ميشود که امکان پردازش چندين کار يا وظيفه به طور همزمان فراهم شود، که درنتيجه آن ، سرعت اجراي محاسبات در يک سيستم کامپيوتري افزايش مي يابد .
پردازش موازي، بکارگيري تکنيک هايي براي پردازش همزمان داده ها به منظور افزايش سرعت محاسبات سيستمي ميباشد، به عنوان مثال ، زماني که يک دستورالعمل در حال اجراست ، دستور بعدي مي تواند از حافظه خوانده شود. البته يک سيستم کامپيوتري ميتواند داراي چندين دستگاه رياضي و منطقي باشد که بطور موازي با هم کار کنند.
هدف پردازش موازي، بالا بردن سرعت عملياتي کامپيوتر، يا به عبارت ديگر، بالابردن حجم عمليات انجام شده در يک واحد زمان ميباشد.
بديهي است که سيستم ، براي رسيدن به اين هدف ، متحمل افزونگي – هاي سخت افزاري و نرم افزاري مي شود و درنتيجه هزينه سخت افزاري و نرم افزاري سيستم افزايش مييابد، ولي با توسعه تکنولوژي، امروزه پردازش موازي از نظر اقتصادي قابل توجيه است [١٠-١٩،٢٠،٢٢،١٣].
براي درک بهتر مفهوم سري و موازي ، اين مثال را درنظر ميگيريم : اطلاعات يک کلمه مي توانند بصورت سري(يک بيت ، يک بيت ) وارد يک ثبات شيفت دهنده شوند، و يا اينکه بطور موازي و يکباره همه بيت هاي يک کلمه داخل ثبات ، بار شوند. در سطوح بالاتر، پردازش موازي ، داشتن چند واحد عملياتي است که بطور همزمان و موازي، يک کار واحد يا چند عمليات مختلف را انجام مي دهند. به عنوان مثال ، عمليات محاسباتي، منطقي و شيفت مي توانند در سه سيکل مجزا انجام شوند و عملوندها تحت نظارت يک واحد کنترل به آنها داده شوند. سيستمهاي پردازش موازي به روشهاي گوناگوني دسته بندي ميشوند، به عنوان مثال ، ميتوان اين سيستم ها را از نظر تشکيلات داخلي پروسسورها، يا از طريق اتصال پروسسورها و يا درنهايت از نظر نحوه جريان اطلاعات ، دسته بندي نمود. سري دستوراتي که از حافظه خوانده مي شوند، رشته دستورات ناميده مي شوند. پردازش موازي، ممکن است روي رشته دستورات ، يا داده ها و يا بر روي هر دو آنها انجام شود. بر اساس دسته بندي Flayyn کامپيوترها به چهار گروه تقسيم ميشوند:
١- يک دستوري و يک داده اي (SISD)
– يک دستوري و چندين داده اي (SIMD)
٣- چندين دستوري و يک داده اي (MISD)
٤- چندين دستوري و چندين داده اي (MIMD)
در حقيقـت ، سيـستم SISD ، يـک کـامپيوتر معمـولي بـا يـک واحـد محاسباتي، حافظه و کنترل است ، که در آن ، دسـتورات بطـور سـري و يک به يک ، اجرا ميشوند و سيستم ممکن است امکانات داخلي پردازش موازي را نيز داشته باشد. در اين حالت ، پردازش موازي ممکن است بـا خط لوله و يا چند واحد عملياتي انجام شود. سيـستم هـاي کـامپيوتري يک دستوري و چندين داده اي SIMD ، شامل تـشکيلاتي مـيباشـند که داراي چندين واحد عملياتي است که تحت نظارت يک واحد کنترل کار ميکنند. تمام اين واحدها يک دسـتور يکـسان را از واحـد کنتـرل دريافت ميکنند و روي داده هاي مختلف ، اين دستور را اجرا مـيکننـد.
روش چندين دستوري و چنـدين داده اي MIMD، در کامپيوترهـايي اجرا ميشود که قادر به اجراي چندين برنامه بطور همزمان باشند. اکثر سيستم هاي چند پردازنده اي يا چندکامپيوتري ، جزء اين دسـته مـي- باشند. سيستم هايMISD ، فقط از نظر تئوري حـائـز اهميـت بـود و نمونه عملي براي آنها وجود ندارد [٢٢،١٩،١٦،١١،٥].
در ادامه ، انواع پردازنده ها را معرفي مينماييم و به بررسـي جنبـه هـاي اصلي ارزيابي و کارايي در پردازنده ها مي پردازيم .

٢-٥- جنبه هاي اصلي ارزيابي
ارزيابي بدين معناست که سيستم عملکرد خود را به چه صـورت انجـام مي ارزيابي يک سيستم [٢٣،١٣،١]، داراي جنبـه هـاي مختلفـي دهد .
است که به معرفي اين جنبه ها مي پردازيم :
– وظيفه مندي: يعني، سيستم مطابق با وظيفه اش رفتار کند.
– کارايي: کارايي يعني اينکه سيستم چقدر منابع را به صورت کمينه استفاده مي کند.
– اتکاپذيري: به مطالعه جنبه هايي از سيستم ميپردازد که صرفاً به رخداد و تصحيح خطا در سيستم باز مي گردد.
– کاراپذيري : ارزيابي کارايي سيستم در حضور رخداد خطا را کارا- پذيري مي نامند .
– کاهش پذيري: اگر براي سيستم خطايي بوجود آيد، ولي از کار نيفتد.
در اين حالت ، کارايي کاهش مي يابد .دراين حالت ، سيستم را کاهش – پذير مي گويند.

٢-٦- جنبه هاي کارايي
کارايي به دو عامل تخصيص منابع و زمان پاسخ ، بستگي دارد. هرچه اين دو عامل افزايش يابند، کارايي کاهش مي يابد[١٣،٤،٣].

٢-٧- تکنيک SMT
تکنيک SMT يا Simultaneous Multi Threading، اجازه ميدهد تا threadهاي مستقل چندگانه ، بطور همزمان در يک هسته انجام شوند، براي مثال ، اگر يک thread در انتظار تکميل عمليات اعشاري است ، فرآيند ديگر ميتواند واحدهاي صحيح را بکار ببرد. اما اجازه اجراي همزمان دو عمل مشابه و از يک نوع را در يک هسته نمي دهد.
با وجود اينکه SMT يک پردازنده موازي واقعي نيست ، ميتوان گفت که SMT، موازيسازي را در تک پردازنده ايها به ارمغان مي آورد.
شکل ٢ نمونه اي از تکنيک SMT ميباشد[١٣،٤،٣].

٣ – ارزيابي کارايي موازيسازي در پردازنده ها
٣-١- ارزيابي کارايي پردازنده هاي تک هسته اي بدون تکنيک SMT