لینک پرداخت و دانلود *پایین مطلب*
فرمت فایل:Word (قابل ویرایش و آماده پرینت)
تعداد صفحه:110
فهرست مطالب
فهرست مطالب
- مقدمه 3
- تاریخچه 4
- مفهوم پیکربندی مجدد 7
3-1.محاسبات قابل پیکربندی مجدد 7
3-2. سیستم بدون پیکربندی 10
3-3. پیکربندی مجدد منطقی 11
3-4. پیکربندی مجدد دستورات 12
3-5. پیکربندی مجدد ایستا و پویا 12
- مروری بر معماریها و طراحی سیستمهای قابل پیکربندی مجدد 21
4-1. دیدگاه اول 21
4-2. دیدگاه دوم 33
- فناوریهای سختافزار قابل پیکربندی مجدد 45
5-1. FPGAها 45
5-2. قطعات مدارات مجتمع با منابع قابل پیکربندی مجدد تعبیه شده 53
5-3. هستههای قابل پیکربندی مجدد تعبیه شده 68
- روند طراحی برای سیستمهای قابل پیکربندی مجدد بر روی تراشه 75
6-1. مقدمه 75
6-2. ملزومات روند طراحی SoC 76
6-3. رویکرد طراحی پیشنهاد شده برای SoC قابل پیکربندی مجدد 81
6-4. مسائل پیکربندی مجدد در روند پیشنهادی 84
6-5. نتیجه گیری 88
- رویکرد بر مبنای SystemC 89
7-1. مقدمه 89
7-2. مروری بر SystemC 2.0 90
7-3. مروری بر گسترشهای بر مبنای SystemC 92
7-4. رویکرد تخمین زنی برای تحلیل سیستم 93
7-5. مدل کردن سربار پیکربندی مجدد 96
7-6. استفاده از مدلهای بار کاری برای پویش فضای طراحی 104
7-7. نتیجه گیری 105
- چکیده 107
- منابع 108
- مقدمه
دو روش در محاسبات سنتی برای اجرای یک الگوریتم وجود دارد. روش اول بکار بردن ASIC ها میباشد تا الگوریتم مورد نظر را در سختافزار پیادهسازی کند. چون این قطعات برای هر الگوریتم خاص ساخته میشوند، سریع و کارا میباشند. اما مدارات آنها پس از ساخت تغییر نمیکند. ریزپردازندهها راه حل بسیار با انعطافتری هستند. آنها مجموعهای از دستورات را اجرا میکنند. و کارایی سیستم بدون تغییر سختافزار تغییر میکند. ام همانند یک ASIC دارای قابلیت انعطاف نمیباشد. یک سیستم قابل پیکربندی مجدد توسعه یافتهاست تا فاصله را میان سختافزار و نرمافزار را کم کند. و به یک کارایی بسیار بالاتر از نرمافزار و قابلیت انعطاف بیشتر سختافزار برسد.
در این پایان نامه ابتدا تاریخچهای مختصر از توسعهی سیستمهای قابل پیکربندی مجدد ارائه شده است.سپس مفهوم قابلیت پیکربندی مجدد و انواع آن بیان شده است.پس از آن نگاهی کلی به دو طبقه بندی مختلف معماریهای این سیستمها شده است و همچنین مروری بر روشهای طراحی و ملزومات آن کردهایم. در فصل پنجم انواع تکنولوژیهای سخت افزار قابل پیکربندی مجدد بحث شده است. در فصل ششم روند طراحی سیستم قابل پیکربندی مجدد بر روی تراشه ( SoC ) آورده شده است. و نهایتا در فصل هفت ویژگیهای طراحی سیستم با یک زبان برنامه نویسی بر مبنای C به نام SystemC بیان شده است.
- تاریخچه محاسبات قابل پیکر بندی مجدد
مفهوم محاسبات قابل پیکربندی مجدد از دهه 1960 پدیدار شد . موقعی که مقاله جرالد استرین(Gerald Estrin) مفهوم یک کامپیوتر ساخته شده از یک پردازنده ی استاندارد و آرایه ای از سخت افزار قابل پیکربندی مجدد را پیشنهاد کرد . پردازنده اصلی باید رفتار سخت افزار قابل پیکربندی مجدد را کنترل کند . در نتیجه این سخت افزار قابل پیکربندی مجدد برای انجام کاری خاص مناسب خواهد بود برای مثال می توان کارهایی نظیر پردازش تصویر و تطبیق الگو را با سرعت بالایی انجام داد . به محض اتمام کار ، سخت افزار می تواند برای انجام کار جدید پیکربندی مجدد شود. چنین خاصیتی با ترکیب انعطاف پذیری یک نرم افزار و سرعت یک سخت افزار در یک ساختار کامپیوتری ترکیبی میسر شده است . متاسفانه چنین ایده ای در زمان پیدایش بسیار جلوتر از تکنولوژی ساخت سخت افزار مورد نیازش بود.
در دهه ی اخیر یک رنسانس در عرصه ی تحقیقات درباره ی معماری های قابل پیکربندی مجدد بوجود آمد . این معماری ها هم در دانشگاهها و هم در صنعت توسعه می یافتند معماری هایی نظیر : Matrix , Gorp , Elixent , XPP , Silicon Hive , Montium , Pleiades , Morphosys , PiCOGA چنین طرحهایی عملی بودند . و این مرهون پیشرفت مداوم فناوری سیلیکونی بود که پیاده سازی طرح های پیچیده را روی یک تراشه میسر میساخت .
اولین مدل تجاری کامپیوتر قابل پیکربندی مجدد در جهان به نام Algotronix CHS 2*4 در سال 1991 تکمیل شد این یک موفقیت تجاری نبود اما آنقدر امیدبخش بود که شرکت Xilinx (مخترع FPGA) تکنولوژی را خرید و محققان Algotronix را به خدمت گرفت .
هم اکنون تعدادی فروشنده ی کامپیوترهای قابل پیکربندی مجدد وجود دارند که بازار کامپیوترهای با کارایی بالا را مورد توجه قرار داده اند . این شرکت ها شامل SRC Computers , SGL , Cray می شوند . شرکت ابر رایانه ای Cray (که به SRC ارتباطی پیدا نمی کند ) Octigabay و بستر محاسبات قابل پیکربندی مجدد آنرا به دست آورد که Cray آنرا به عنوان XD1 تا کنون به فروش رسانده است . SGI رایانه ی RASC را همراه با سری ابر رایانه های Altix به فروش می رساند . شرکت SRC Computers یک خانواده از رایانه های قابل پیکربندی مجدد را توسعه داده است . این خانواده بر اساس معماری ضمنی + صریح خود شرکت و پردازنده MAP می باشد .
تمام آنچه که گفته شد رایانه های هیبرید Estrin هستندکه این رایانه ها با ریزپردازنده های سنتی که FPGA ها همراه شده اند ساخته می شوند . FPGA ها توسط کاربر برنامه ریزی می شوند این سیستم ها می توانند به عنوان رایانه های دسته ای سنتی بدون استفاده از FPGA ها به کاربرده شوند ( در حقیقت FPGA ها گزینه ای در XD1 و SGIRASC هستند ) پیکربندی XD1 و SGIFPGA از طریق زبانهای توصیف سخت افزار (HDL ) سنتی تکمیل شده است . و یا با به کارگیری زبانهای سطح بالایی نظیر ابزار گرافیکی Star bridge viva یا زبانهایی مانند C مثل Handel-C از Celoxica و Lmpulse-C از Impulse Accelerated technologies یا Mitrpn-C از Mitrionics کامل شده اند . به قول راهنمای برنامه نویسی XD1 «توسعه ی فایل منطقی یک FPGA خام یک فرآیند پیچیده است که نیازمند دانش و ابزار تخصصی است ».
SRC کامپایلری را توسعه داده است که زبان سطح بالایی مثل C یا Fortran را گرفته و با اندکی تغییرات آنها را برای اجرا روی FPGA در ریزپردازنده کامپایل می کند . به نقل از مستندات SRC « ... الگوریتم های کاربردی با زبانهای سطح بالا همانند C و Fortran نوشته می شوند . Carte (همان کامپایلر) حداکثر موازی سازی را از کد استخراج می کند و منطق سخت افزار خط لوله ای را تولید می کند که در MAP مقدار دهی شده اند . همچنین این کامپایلر تمام کدهای واسطی که برای مدیریت انتقال داده به داخل و خارج MAP نیاز است را تولید می کند . این کدهای واسط وظیفه ی هماهنگ سازی ریزپردازنده ی با منطق در حال اجرا در MAP را دارند » ( توجه شود که SRC همچنین اجازه استفاده از یک HDL سنتی را داده است ).
XD1 بین ریزپردازنده و FPGA بوسیله ی شبکه ی اتصال داخلی Rapid Array اش ارتباط برقرار میکند . سیستم های SRC از طریق واسط حافظه SNAP و یا سویچ اختیاری Hi-Bear ارتباط برقرار می کند . واضح است که دسته بندی معماری های قابل پیکربندی مجدد هنوز توسعه می یابند و این بدلیل عرضه شدن معماری های جدید است . هیچ طبقه بندی واحدی تا کنون پیشنهاد نشده است . به هر حال چندین پارامتر دوری میتوانند برای دسته بندی چنین سیستم هایی استفاده شوند .
هنگامی که مفاهیم پایه ی محاسبات قابل پیکربندی مجدد در دهه ی 1960 شکل گرفت . RC در شکل جدی و عملی خود با پدیدار شدن FPGA ها در اواخردههی 1980 آغاز شد . FPGA ها IC هایی بودندکه شکل سختافزاری آنها می توانست از نو به راحتی تعریف شود . یعنی با بارگذاری یک پیکربندی جدید درست همانند نرمافزار جدیدی که می تواند بر روی یک ریزپردازنده یا DSP بارگذاری شود نگاشت داده و سپس پردازش آن و الگوریتم های فشرده ی FPGA ها می توانست IC های متمایز شده به وسیله کاربرد ( Application Specific (ASIC) IC ) را حاصل سازد . محققان در ایالات متحده و فرانسه به دنبال پایه های اولیه ی با بازدهی بالا و انعطاف پذیری مطلوب ابر رایانه ای را در سر می پروراندند که متشکل بود از اجزا سخت افزاری قابل برنامه ریزی مجدد که برای هر کاربرد می توانست بهینه شود . که در نتیجه یک تا دو برابر کارایی را در پردازنده هایی با طول دستور ثابت و قراردادی افزایش می داد . اولین رایانه های قابل پیکربندی مجدد بوسیله IDA Supercomputing Research Center ( SRC که در سال 1994 به Center for Computing Sciences تغییر نام داد ) در آمریکا ساخته شد . در فرانسه به وسیله DEC Paris Research Lab که پس از فروش Digital Equipment Co بسته شد ساخته شد .
دو نسخه آرایه انقباضی Spalsh در SRC ساخته شدند . مدار اصلی Spalsh در سال 1989 با قیمت تقریبی 13000 دلار ساخته شد که می توانست از ابر رایانه ی موجود در آن زمان به نام Cray 2 برای کاربردهای تطبیق الگوی بیتی پیشی گیرد .این سیستم حاوی 32عدد FPGA از سری 3090 شرکت Xilinx بود که بصورت یک ارایه ی خطی متصل شده بودند . FPGA ها ی مجاور از یک بافر حافظه ای اشتراکی بهره مند بودند .
RC در ایستگاه کاری SUN از طریق ارتباط داخلی VME معرفی شد . Splash 1 می توانست مقایسه ی یک رشته ی DNA را 45 برابر سرعت یک ایستگاه کاری با کارایی بالا را در دهه ی 1990 انجام دهد . سه سال بعد Splash 2 ساخته شد که تعداد FPGA های خود را به 16 کاهش داده بود . با این وجود به خاطر رشد سریع تراکم در FPGA ، Splash 2 با شانزده عدد FPGA مدل 4010 از شرکت Xilinx حاوی 5/1 برابر منطق بیشتر از Splash 1 بود . برای بهبود انعطاف ارتباطات داخلی Splash 2 ارتباط داخلی خطی را به وسیله یک میله عرضی تقویت کرد که اجازه می داد که هر FPGA با هر FPGA دیگر ارتباط برقرار کند .
در سالهای بین 1987 تا 1990 رایانه ی قابل پیکربندی مجدد Splash توسط مرکز تحقیقات ابر رایانه ای SRC توسعه یافت . از خصوصیات این طراحیمی توان به این نکات اشاره کرد :
این رایانه در LDG یا در طرح شماتیک برنامه نویسی شده بود . سخت افزار فوق العاده و تسریع قابل توجهی داشت. اما با وجود تمام این مزایا برنامه نویسی اش مشکل بود در نتیجه تعداد برنامه های کاربردی آن محدود بود . همین شرکت یعنی SRC در سالهای 1992 تا 1994 مشغول توسعه و تکمیل Splashبود و سرانجام موفق شد تا Splash 2 را طراحی کند . زبان شبیه سازی این رایانه VHDL بود همانند مدل پیشین دارای سخت افزار بسیار خوبی بود . برنامه ریزی اش غیر استاندارد بود اما دارای قابلیت برنامه نویسی خوبی بود . از 1986 تا 1995 حافظههای فعال قابل برنامه ریزی (PAMETTe , PAM) توسط شرکت فرانسوی DEC Paris معرفی شدند . برنامه نویسی این نوع حافظه ها در زبان C++ بود اما همان عیب Splash از SRC را داشتند یعنی سخت افزار خوبی داشتند اما برنامه های کاربردی پشتیبانی شده توسط آنان محدود بود .
شکل 2-1 : روند کلی تکامل سیستمهای قابل پیکربندی مجدد
- مفهوم پیکربندی مجدد
3-1. محاسبات قابل پیکربندی مجدد وسخت افزار قابل پیکربندی مجدد
محاسبات قابل پیکربندی مجدد به سیستم هایی اشاره می کند که شکلی از قابلیت برنامه ریزی سخت افزار با سفارشی کردن اینکه چگونه این سخت افزار استفاده می شود بوسیله کاربرد نقاط کنترلی ، پیاده سازی می کنند . این نقاط کنترلی سپس میتوانند به طور متناوب برای اجرای کاربردهای متفاوت در سخت افزار یکسان ، تغییر میکنند . سختافزار قابل پیکربندی مجدد تعادل خوبی میان کارایی پیاده سازی و انعطاف پذیر همان طور که در شکل 3-1 نشان داده شده است ، ایجاد میکند . این بدان خاطر است که سخت افزار قابل پیکربندی مجدد قابلیت برنامه ریزی پس از تولید را با نوع محاسبات فضایی(موازی) IC های با کاربرد خاص ( ASIC ) ترکیب کرده است که در مقایسه با نوع محاسبات زمانی (ترتیبی) پردازنده های مجموعه دستورات ، کارایی بالاتری دارد .
محاسبات قابل پیکربندی مجدد سرعت در حال تثبیت کردن خود بعنوان یکی از زمینه های اصلی که موضوعات مختلفی را از یادگیری شامل علوم کامپیوتر و مهندسی الکترونیک پوشش می دهد . محاسبات قابل پیکربندی مجدد شامل استفاده از وسایل قابل پیکربندی مجدد همانند FPGA ها برای اهداف پردازشی می شود . محاسبات قابل پیکربندی مجدد همچنین به نام محاسبات قابل پیکربندی یا محاسبات سفارشی(Custom) شناخته شده است . بطوری که بسیاری از روشهای طراحی می توانند برای سفارشی کردن یک محصول محاسباتی برای کاربردهای خاص استفاده شوند .
بخاطر نیازهای فزاینده ی قابلیت انعطاف (برای مثال برای سازگای با استانداردهای مختلف و وضعیت های عملیاتی ) که به وسیله ی کاربردهایی با محاسبات فراوان همچون ارتباطات بی سیم ، دستگاههایی که نیازمند سازگاری بالایی با کاربردهایی در حال اجرا دارند ، تحلیل می شوند . در سوی دیگر درک خوب از چنین کاربردهای مورد نیاز است خصوصا در مورد منابعی که آنها درخلال پیاده سازی استفاده میکنند جایی که مصرف توان بایستی در مقابل کیفیت دیده شده از کاربرد موازنه شود . نیازهای متناقض برای قابلیت انعطاف و کارایی پیاده سازی نمی توانند بوسیله ی پردازنده های مجموعه دستورات معمولی و ASIC ها ارضا شوند . سخت افزار قابل پیکربندی مجدد یک پیاده سازی مطلوب را در چنین مواردی شکل می دهد .
شکل 3-1 : مکان یابی سختافزار قابل پیکربندی مجدد
دلایل دیگری نیز برای استفاده از منابع قابل پیکربندی مجدد در طراحی سیستم بر روی تراشه (SOC ) نیز وجود دارد . هزینه های در حال افزایش مهندسی غیربرگشتی (NRE) طراحان را بسمت استفاده از SOC یکسان در چندین کاربرد و محصول برای دستیابی به قیمت تمام شده پایین تر به ازای هر تراشه سوق می دهد . حضور منابع قابل پیکربندی مجدد یک تنظیم مناسب تراشه برای محصولات یا تغییرات محصولات را ممکن می سازد . همچنین پیچیدگی در حال افزایش در طرح های آینده امکان اضافه کردن شارهای طراحی را افزایش می دهد . عناصر قابل پیکربندی مجدد اغلب آرایه های متجانس هستند که می توانند پیش بررسی شوند تا احتمال خطاهای طراحی به حداقل برسد . همچنین قابلیت برنامه ریزی پس از تولید اجازه ی تصحیح یا پیداکردن راه حل برای مشکلات را برای بعد در مقایسه با سختافزار ثابت می دهد.
سیستم های محاسباتی قابل پیکربندی مجدد اغلب دارای کارایی بالایی هستند . یک مثال در این باره عملیات ضرب نقطه ای در رمزنگاری یک منحنی بیضی است . برای اندازه کلیه 270 بیت گزارش شده است که یک ضرب نقطه ای میتواند در ms36/0 پردازش شود که بوسیله یک طراحی قابل پیکربندی مجدد در یک FPGA مدل xc2v6000 در فرکانس MHZ 66 صورت گرفته است . اما یک پیادهسازی بهینه شده ی نرم افزاری نیازمند ms 71/196 بر روی یک کامپیوتر eon × dul در فرکانس Hz 6/2 می باشد . بنابراین طراحی قابل پیکربندی مجدد بیش از 540 مرتبه سریعتر است . در حالیکه نرخ ساعت آن 40 بار آهسته تر از پردازنده های Xeon می باشد این مثال یک طراحی سخت افزاری را که بر روی یک بستر قابل پیکربندی مجدد پیاده سازی شده است را نشان می دهد . ما چنین پیاده سازی هایی را بعنوان زیرمجموعه ای از محاسبات قابل پیکربندی مجدد به حساب می آوریم که به طور کلی می توانند شامل استفاده از پیکربندی مجدد زمان اجرا و پردازنده های نرم باشند .
آیا مزیت سرعت محاسبات قابل پیکربندی مجدد بر پردازنده های سنتی مقطعی است یا یک روند ثابت می باشد ؟
تحقیقات اخیر نشان می دهد که این برای بسیاری از سیستم ها یک روند ثابت می باشد از پردازش تصویر گرفته تا عملیات ممیز شناور .
سرعت محض تنها قدرت محاسبات قابل پیکربندی مجدد نیست . مزیت الزام آور دیگر انرژی کاهش یافته و مصرف توان می باشد .
در یک سیستم قابل پیکربندی مجدد مدارات برای آن کاربرد خاص بهینه می شوند بطوری که مصرف تون بسیار کم تر از یک پردازنده ی همه منظوره می باشد . مطالعات اخیر نشان می دهد که انتقال حلقه های نرم افزاری بحرانی به سخت افزار قابل پیکربندی مجدد ، صرفه جویی انرژی 35 تا 70 درصدی همراه با میانگین تسریع 3 تا 7 مرتبه ای را بسته به آن قطعه خاص به کاربرده شده ، نتیجه می دهد .
دیگر مزایای محاسبات قابل پیکربندی مجدد شامل کاهش اندازه و تعداد اجزا ( و به همین ترتیب کاهش هزینه ها ) و قابلیت انعطاف بالا و قابلیت به روز شدن می باشد . این مزایا خصوصا برای سیستم های تعبیه شده (Embedded Systems ) مهم می باشند . در واقع مدارکی موجود است که توسعه دهندگان سیستم های تعبیه شده یک اشتیاق در حال رشد را به سیستم های قابل پیکربندی مجدد نشان می دهد . مخصوصا با معرفی هسته های نرم (Soft Core ) که می تواند شامل یک یا تعداد بیشتری از پردازنده های دستور باشد.
3-1-1. پیش زمینه