معاونت پژوهش و فناوري
به نام خدا
منشور اخلاق پژوهش
با ياري از خداوند سبحان و اعتقاد به اينکه عالم محضر خداست و همواره ناظر بر اعمال انسان و به منظور پاس داشت مقام بلند دانش و پژوهش و نظر به اهميت جايگاه دانشگاه در اعتلاي فرهنگ و تمدن بشري، ما دانشجويان و اعضاءهيات علمي واحدهاي دانشگاه آزاد اسلامي متعهد مي گرديم اصول زير را در انجام فعاليت هاي پژوهشي مد نظر قرار داده و از آن تخطي نکنيم :
1-اصل برائت : التزام به برائت جويي از هر گونه رفتار غير حرفه اي و اعلام موضع نسبت به کساني که حوزه علم و پژوهش را به شائبه هاي غير علمي مي آلايند.
2-اصل رعايت انصاف و امانت :تعهد به اجتناب از هر گونه جانب داري غير علمي و حفاظت از اموال، تجهيزات و منابع در اختيار.
3-اصل ترويج :تعهد به رواج دانش و اشاعه نتايج تحقيقات و انتقال آن به همکاران علمي و دانشجويان به غير از مواردي که منع قانوني دارد.
4-اصل احترام :تعهد به رعايت حريم ها و حرمت ها در انجام تحقيقات و رعايت جانب نقد و خودداري از هر گونه حرمت شکني.
5-اصل رعايت حقوق :التزام به رعايت کامل حقوق پژوهشگران و پژوهيدگان (انسان، حيوان و نبات )و ساير صاحبان حق.
6-اصل رازداري :تعهد به صيانت از اسرار و اطلاعات محرمانه افراد، سازمان ها و کشور و کليه افراد و نهادهاي مرتبط با تحقيق.
7-اصل حقيقت جويي :تلاش در راستاي پي جويي حقيقت و وفاداري به آن و دوري از هرگونه پنهان سازي حقيقت.
8-اصل مالکيت مادي و معنوي :تعهد به رعايت کامل حقوق مادي و معنوي دانشگاه و کليه همکاران پژوهش.
9-اصل منافع ملي :تعهد به رعايت مصالح ملي و در نظرداشتن پيشبرد و توسعه کشور در کليه مراحل پژوهش.
دانشگاه آزاد اسلامي
واحد علوم و تحقيقات کرمان
تعهدنامه اصالت پاياننامه
اينجانب اصغر حافظي زاده دانشآموخته مقطع کارشناسي ارشد ناپيوسته در رشته مهندسي برق که در تاريخ 21/03/1393 از پاياننامه خود تحت عنوان: “طراحي و پياده سازي يک ريزپردازنده قابل پيکربندي مجدد” با کسب نمره 75/17 (از18) و درجه عالي دفاع نموده ام، بدينوسيله متعهد مي شوم:
1- اين پاياننامه حاصل تحقيق وپژوهش انجام شده توسط اينجانب بوده و در مواردي که از دستاوردهاي علمي و پژوهشي ديگران (اعم ازپايان نامه، کتاب، مقاله و…) استفاده نموده ام، مطابق ضوابط و رويه موجود، نام منبع مورد استفاده وساير مشخصات آن را درفهرست مربوطه ذکر و درج کرده ام.
2- اين پايان نامه قبلا براي دريافت هيچ مدرک تحصيلي (هم سطح، پايين تر يا بالاتر) در ساير دانشگاهها وموسسات آموزش عالي ارايه نشده است.
3- اگر بعد از فراغت ازتحصيل، قصد استفاده وهرگونه بهرهبرداري اعم ازچاپ کتاب، ثبت اختراع و… ازاين پايان نامه داشته باشم، ازحوزه معاونت پژوهشي واحد مجوز هاي مربوطه را اخذ نمايم.
4- اگر در هر مقطعي زماني برخلاف موارد فوق ثابت شود، عواقب ناشي از آن را مي پذيرم و واحد دانشگاهي مجاز است با اينجانب مطابق ضوابط ومقررات رفتار نموده و در صورت ابطال مدرک تحصيلي ام هيچگونه ادعايي نخواهم داشت.
نام ونام خانوادگي:
اصغر حافظي زاده
تاريخ و امضاء:
دانشگاه آزاد اسلامي
واحد علوم و تحقيقات کرمان
دانشکده فني و مهندسي، گروه مهندسي برق
پايان نامه براي دريافت درجه کارشناسي ارشد در رشته مهندسي برق (M.Sc)
گرايش: الکترونيک
عنوان:
طراحي و پياده سازي يک ريزپردازنده قابل پيکربندي مجدد
استاد راهنما:
دکتر مهدي جعفري
استاد مشاور:
دکتر مهران ابدالي
نگارش:
اصغر حافظي زاده
بهار 1393
سپاسگزاري
زنده بودن حرکتي افقي است از گهواره تا گور…
و زندگي کردن حرکتي عمودي است از زمين تا آسمان!
آدمي به خودي خود نمي افتد…
اگر بيفتد از همان سمتي مي افتد که به خدا تکيه نکرده است…
با تشکر از اساتيد گرانقدر جناب آقاي دکتر مهدي جعفري ،جناب آقاي دکترمهران ابدالي و تمام کساني که مرا در اين راه ياري رساندند.
تقديم به
مقدسترين واژه ها در لغت نامه دلم، پدر بزرگوارم
که در سختي‌ها و دشواري‌هاي زندگي همواره ياوري دلسوز و فداکار و پشتيباني محکم و مطمئن براي من بوده است
مادر مهربانم
آنکه آفتاب مهرش در آستانه قلبم همچنان پابرجاست و هرگز غروب نمي‌کند و زندگيم را مديوم مهر و عطوفت او مي‌دانم
فهرست مطالب
عنوان شماره صفحه
چکيده1
فصل اول:تاريخچه محاسبات با قابليت پيکربندي مجدد
1-1- مقدمه3
فصل دوم: مفهوم، معماري‌ها و روش‌هاي طراحي سيستم‌هاي قابل‌ پيكربندي مجدد
2-1- محاسبات و سخت افزار با قابليت پيکربندي مجدد8
2-2- پيکربندي مجدد جزئي پويا و ايستا در FPGA ها10
2-3- معرفي مرجع اول در پيکر بندي مجدد FPGA11
2-4- معرفي مرجع دوم در پيکر بندي مجدد FPGA12
2-5- معرفي مرجع سوم در پيکر بندي مجدد FPGA14
2-6- معرفي مرجع چهارم در پيکر بندي مجدد FPGA14
2-7- معرفي مرجع پنجم در پيکر بندي مجدد FPGA15
فصل سوم: پياده سازي نرم افزاري و سخت افزاري پيکربندي مجدد پيشنهادي
3-1- مقدمه19
3-2- پياده سازي جمع کننده CARRY_LOOK_AHEAD به صورت N بيتي20
3-3- پياده سازي ضرب کننده به صورت N بيتي24
3-3-1 ضرب کننده براي دو عدد قدر مطلق علامت24
3-3-2 ضرب دو عددمتمم 2 يا 2’S25
3-4- پياده سازي تقسيم کننده به صورت N بيتي26
3-5- طراحي سخت افزار و ALU براي پياده سازي کدها با قابليت پيکر بندي مجدد28
3-5-1 طراحي واحد کنترل28
3-5-2 به کارگيري کنترل هاي FPGA در طراحي سخت افزاري با سرعت بالا31
فصل چهارم: نتايج شيبه سازي
4-1- نتايج شيبه سازي در نرم افزار MODELSIM37
4-2- نتايج شيبه سازي در نرم افزار ISE39
4-3- مقايسه با مراجع51
فصل پنجم: نتيجه گيري
5-1- نتيجه گيري54
فصل ششم: کارهاي آينده
6-1- کارهاي آينده56
منابع و مآخذ57
فهرست منابع انگليسي57
پيوست: کدهاي نوشته شده VHDL59
چکيده انگليسي 68
فهرست جداول
عنوان شماره صفحه
جدول 1-1. روند كلي تكامل سيستم‌هاي قابل پيكربندي مجدد6
جدول 3-1. 4 حالت ممکن براي جمع کننده ADDER_CARRY_LOOK_AHEAD21
فهرست شکل ها
عنوان شماره صفحه
شکل 2-1. پيکر بندي مجدد جزئي پويا10
شکل 2-2. پيکر بندي دوباره جزئي ايستا11
شکل 2-3. سيستم پيشنهادي مرجع 1 در پيکر بندي مجدد FPGA11
شکل 2-4. فلو چارت مربوط به مرجع ا12
شکل 2-5. طراحي در سطح RTL در برد FPGA13
شکل 2-6. نمونه هايي از پياده سازي در نرم افزار MODELSIM13
شکل 2-7. جريان طراحي سنتي براي مفهوم سيستم پيکر بندي مجدد به صورت پويا14
شکل 2-8. الگوريتم پيکر بندي مجدد جزئي پويا مرجع 415
شکل 2-9. بلوک DCM16
شکل 2-10. طراحي در سطح RTL بلوک DCM16
شکل 2-11. طراحي سلسله مراتبي مرجع پنجم17
شکل 2-12. نتايج شبيه سازي DRP بلوک هاي منطقي17
شکل 3-1. جمع کننده کامل يا FULL ADDER21
شکل 3-2. شکل مداري الگوريتم جمع کننده ADDER_CARRY_LOOK_AHEAD23
شکل 3-3. مدار ضرب کننده براي ضرب دو عدد قدر مطلق علامت24
شکل 3-4. مراحل ضرب دو عدد 3- و 4- را بيتي به روش قدر مطلق علامت25
شکل 3-5. عمل تقسيم به روش مقايسه اي26
شکل 3-6. مثالي از مراحل تقسيم27
شکل 3-7. واحد کنترل28
شکل 3-8. نشان دهنده مفهوم روش ريزبرنامه سازي29
شکل 3-9. فعال شدن هر دستور بر اساس ورودي متناظر در روش سيم بندي شده30
شکل 3-10. فعال شدن هر دستور بر اساس ورودي متناظر در روش ريز برنامه سازي30
شکل 3-11. دياگرام يک بلوک عمومي براي يک سيستم کامل کنترل سرعت بالا31
شکل 3-12. نمودار بلوکي واحد پردازشي کنترلر طراحي شده بر مبناي FPGA33
شکل 3-13. نحوه پياده سازي طرح پيشنهادي در FPGA34
شکل 4-1. شبيه سازي جمع کننده در نرم افزار MODELSIM37
شکل 4-2. شبيه سازي ضرب کننده در نرم افزار MODELSIM38
شکل 4-3. شبيه سازي تقسيم کننده در نرم افزار MODELSIM38
شکل 4-4. شبيه سازي ALU در نرم افزار MODELSIM39
شکل 4-5. بلوگ دياگرام يا شماتيک RTL جمع کننده41
شکل 4-6. مدار داخلي يا پيکر بندي داخلي مربوط به جمع کننده41
شکل 4-7. بلوگ دياگرام يا شماتيک RTL ضرب کننده43
شکل 4-8. مدار داخلي يا پيکر بندي داخلي مربوط به ضرب کننده44
شکل 4-9. مدار داخلي يا پيکر بندي داخلي مربوط به ضرب کننده47
شکل 4-10. بلوگ دياگرام يا شماتيک RTL تقسيم کننده48
شکل 4-11. بلوگ دياگرام يا شماتيک RTL مربوط به ALU50
شکل 4-12. نماي کلي مدار داخلي يا پيکر بندي داخلي مربوط به ALU50
شکل 4-13. مدار داخلي يا پيکر بندي داخلي مربوط به ALU51
شکل 4-14. فلوچارت سيستم پيشنهادي52
چکيده
دو روش کلي در محاسبات براي اجراي الگوريتمهاي مختلف وجود دارد. روش اول، استفاده از ASIC ها مي‌باشد تا بتوانيم الگوريتم مورد نظر را در سخت‌افزار اجرا و پياده‌سازي کنيم. چون اين تجهيزات براي هر الگوريتم خاص ساخته مي‌شوند، سريع و كارا مي‌باشند. اما مدارات آن‌ها پس از ساخته شدن، تغيير نمي‌كنند. راه دوم، استفاده از ريزپردازنده‌ها است که بسيار انعطاف‌ پذيرتر ميباشند. آنها مجموعه‌اي از دستورات را اجرا مي‌كنند و كارايي سيستم را بدون تغيير سخت‌افزار، تغيير ميدهند. اما، همانند يك ASIC به اين دليل که براي يک کاربرد خاص طراحي نشدهاند، داراي قابليت انعطاف نمي‌باشد. سيستمهاي با قابليت پيكربندي مجدد به گونهاي توسعه يافته‌ است تا فاصله ميان سخت‌افزار و نرم‌افزار را كم كند و همچنين، به يك كارايي بسيار بالاتر از نرم‌افزار و قابليت انعطاف بيشتر سخت‌افزار برسد. به همين منظور، در اين پايان نامه ابتدا تاريخچه‌اي مختصر از توسعه‌ سيستمهاي با قابليت پيكربندي مجدد بيان شده است. پس از آن، مفهوم قابليت پيكربندي مجدد و انواع طراحي آن ارائه شده است. روند طراحي سيستم با قابليت پيكربندي مجدد بر روي تراشه FPGA آورده شده است. ويژگي‌هاي طراحي سيستم با يك زبان برنامه نويسي بر مبناي VHDL بيان شده است. در نهايت سيستمي به صورت سخت افزاري و نرم افزاري ارائه شده است که قابليت پيکر بندي مجدد را دارد و با استفاده از پردازش موازي سرعت پيکر بندي مجدد سيستم را افزايش ميدهد. در ضمن، ايده کار به اين صورت است که باسهاي حجيم از سيستم حذف شده و جاي خود را به بلوکهاي منطقي دهد. در نهايت، تمامي قسمتهاي پويا و ايستا با هم به طور موازي کار ميکنند که باعث افزايش سرعت مدار ميشود.
کلمات کليدي: پياده سازي، پيکربندي مجدد جزئي پويا، پيکربندي مجدد جزئي ايستا
فصل اول:
تاريخچه محاسبات با قابليت پيکربندي مجدد
1-1- مقدمه
مفهوم محاسبات با قابليت پيکربندي مجدد از اوايل دهه 60 ميلادي پديدار شد. موقعي که مقاله جرالد استرين مفهوم يک کامپيوتر ساخته شده از يک پردازنده استاندارد و آرايهاي از سخت افزار قابل پيکربندي مجدد را پيشنهاد کرد. پردازنده اصلي، عملکرد سخت افزار قابل پيکربندي مجدد را کنترل ميکند. در نتيجه، اين سخت افزار با قابليت پيکربندي مجدد، براي انجام هر کاري مناسب خواهد بود. براي مثال ميتوان کارهايي نظير پردازش تصوير، الگوريتم عصبي و تطبيق الگو را با سرعت بالايي انجام داد. به محض اتمام يک کار، سخت افزار1 ميتواند براي انجام کار جديد پيکربندي مجدد2 شود. چنين خاصيتي با ترکيب انعطاف پذيري يک نرم افزار3 و سرعت يک سخت افزار، در يک ساختار ترکيبي امکان پذير شده است. در ضمن، چنين ايدهاي در زمان پيدايش، بسيار جلوتر از تکنولوژي ساخت سخت افزار مورد نيازش بود.
در دهه اخير، تحقيقات زيادي درباره معماريهاي با قابليت پيکربندي مجدد بوجود آمده است. اين معماريها هم در دانشگاهها و هم در صنعت توسعه يافتهاند. اين معماريها در دستههاي زير قرار ميگيرند:
* Matrix
* Gorp
* Elixent
* XPP
* Silicon Hive
* Montium
* Pleiades Morphosys
* PiCOGA
علت عملي بودن چنين طرحهايي، پيشرفت مداوم فنآوري سيليکوني بوده که پياده سازي4 طرحهاي پيچيده را روي يک تراشه امکان پذير ساخته است.
اولين مدل تجاري کامپيوتر با قابليت پيکربندي مجدد در جهان به نام Algotronix CHS 2*4 در سال 1991 ارائه شد. اين طرح به هيچ عنوان موفقيت تجاري نداشت، اما آنقدر اميدبخش بود که شرکت Xilinx (مخترع FPGA) تکنولوژي را خريد و محققان Algotronix را به خدمت گرفت.
هم اکنون تعدادي شرکت فروشنده کامپيوترهاي با قابليت پيکربندي مجدد وجود دارند که بازار کامپيوترهاي با کارايي بالا را در بر گرفتهاند. مهمترين اين شرکتهاSRC Computers ، SGL و Cray ميباشند. شرکت ابر رايانهاي Cray بستر محاسبات قابل پيکربندي مجدد SRC را به دست آورد و آن را به عنوان XD1 به فروش ميرساند. SGI رايانه RASC را همراه با سري ابر رايانههاي Altix به فروش ميرساند. شرکتSRC Computers يک خانواده از رايانههاي قابل پيکربندي مجدد را توسعه داده است. اين خانواده بر اساس معماري ضمني و پردازنده MAP ميباشد.
تمام آنچه که گفته شد رايانههاي هيبريدي هستند، که اين رايانهها با ريزپردازندههاي FPGA همراه شدهاند و با آن ساخته ميشوند. FPGA ها توسط کاربر برنامهريزي ميشوند. اين سيستمها ميتوانند به عنوان ابر رايانههايي با سرعت بالا با استفاده از FPGA ها به کاربرده شوند. (در حقيقت FPGA ها گزينه اي در XD1 و SGIRASC هستند). پيکربندي XD1 و SGIFPGA از طريق زبانهاي توصيف سخت افزار (HDL) صورت ميگيرد. با به کارگيري زبانهاي سطح بالايي نظير ابزار گرافيکي Star Bridge Viva يا زبانهايي مانند C مثل Handel-C از Celoxica و Lmpulse-C از Impulse Accelerated technologies ياMitrpn-C از Mitrionics و همچنين VHDL و Verilog نيز ميتوان پيکربندي را انجام داد. توسعه کد نويسي منطقي يک FPGA خام، يک فرآيند پيچيده است که نيازمند دانش و ابزار تخصصي است.
SRC کامپايلري را ساخته است که زبان سطح بالايي مثل C يا Fortran را به عنوان ورودي ميگيرد و با تغييراتي اندک، آنها را براي اجرا و پيادهسازي روي 5FPGA در ريزپردازنده، کامپايل ميکند. بعضي از الگوريتمهاي کاربردي با زبانهاي سطح بالا همانند C و Fortran نوشته ميشوند. کامپايلر (Carte)، حداکثر موازي سازي را در کد انجام ميدهد و منطق سخت افزار خط لولهاي را توليد ميکند که در MAP ها مقداردهي شدهاند. همچنين اين کامپايلر تمام کدهاي واسطي که براي مديريت انتقال داده در داخل و خارج MAP نياز است را توليد ميکنند. اين کدهاي واسط، وظيفه هماهنگ سازي ريزپردازنده با منطق در حال اجرا در MAP را دارند.
XD1 بين ريزپردازنده و FPGA به وسيله شبکه اتصال داخلي Rapid Array اش ارتباط برقرار ميکند. سيستمهاي SRC از طريق حافظه واسط SNAP و يا سويچ اختياري Hi-Bear ارتباط برقرار ميکنند. دستهبندي معماريهاي با قابليت پيکربندي مجدد روز به روز بيشتر توسعه مييابند. اين به دليل عرضه شدن معماريهاي جديد و به روز ميباشد (Azambuja 2011, 161-166).
FPGA ها آيسيهايي هستند که شکل سخت‌افزاري آنها ميتواند به راحتي، به شکل جديدي تعريف شود. يعني با بارگذاري يک پيکربندي جديد درست همانند نرم‌افزار جديدي که ميتواند بر روي يک ريزپردازنده يا DSP بارگذاري شود، نگاشت داده ميشود. پردازش و الگوريتمهاي فشرده FPGA ها ميتواند آيسيهاي متمايز شده به وسيله کاربرد ASIC را حاصل سازد. محققان در سراسر دنيا، به دنبال داشتن ابر رايانه و آي سيهايي با بازدهي بالا و انعطاف پذير هستند، که از اجزا سخت افزاري قابل برنامهريزي مجدد براي هر کاربرد تشکيل ميشوند. در نتيجه، چندين برابر، کارآيي را در پردازندههايي که با طول دستور ثابت کار ميکنند، افزايش ميدهد (Boyer and strother moore 2012, 181-189).
دو نسخه آرايه انقباضي Spalsh در SRC ساخته شدند. مدار اصلي Spalsh در سال 1989 با قيمت 13000 دلار ساخته شد که ميتوانست از ابر رايانه موجود در آن زمان به نامCray 2 براي کاربردهاي تطبيق الگوي بيتي پيشي بگيرد. اين سيستم حاوي 32 عدد FPGA از سري 3090 شرکت Xilinx بود که به صورت يک آرايه خطي متصل شده بودند. FPGA هاي مجاور از يک بافر حافظهاي اشتراکي استفاده ميکردند.
بعد از آن، Splash 1 معرفي شد که ميتوانست مقايسه يک رشته ي DNA را 45 برابر سرعت يک ايستگاه کاري با کارآيي بالا را در دهه 1990 انجام دهد. سه سال بعد Splash 2 ساخته شد که تعداد FPGA هاي خود را به 16 عدد کاهش داده بود. با اين وجود به خاطر رشد سريع تراکم در FPGA، Splash 2 با 16 عدد FPGA مدل 4010 از شرکت Xilinx، دو برابر عمليات منطقي بيشتر از Splash 1 داشت. براي بهبود انعطاف ارتباطات داخلي Splash 2، ارتباط داخلي خطي را به وسيله يک ميله عرضي تقويت کردند که اجازه ميداد که هر FPGA با FPGA ديگري ارتباط برقرار کند.
در سالهاي بين 1987 تا 1990 رايانه قابل پيکربندي مجدد Splash توسط مرکز تحقيقات ابر رايانهاي SRC توسعه يافت. اين رايانه در طرح شماتيکي برنامهنويسي شده بود. سخت افزار فوقالعاده و سرعت بالايي داشت. اما با وجود تمام اين مزايا برنامه نويسي آن بسيار مشکل بود. در نتيجه، تعداد برنامههاي کاربردي آن محدود بود.
Splash 2 داراي زبان شبيه سازي VHDL بود و همانند مدل پيشين داراي سخت افزار بسيار خوبي بود، برنامهريزي آن غير استاندارد بود اما داراي قابليت برنامه نويسي خوبي بود. از 1986 تا 1995 حافظه‌هاي فعال قابل برنامه ريزي (PAMETTe , PAM) توسط شرکت فرانسوي DEC Paris معرفي شدند. برنامه نويسي اين نوع حافظه ها در زبان C++ بود اما همان عيب Splash را داشتند يعني سخت افزار خوبي داشتند اما برنامههاي کاربردي پشتيباني شده توسط آنان محدود بود. در شکل 1-1 روند كلي تكامل سيستم‌هاي قابل پيكربندي مجدد را مشاهده ميکنيد.
جدول 1-1. روند كلي تكامل سيستم‌هاي قابل پيكربندي مجدد
PAM و X30xx1989 تا 1991SPLASH و X40xx1991 تا 1993PRISM و DISC1993 تا 1995MATRIX و X62001995 تا 1997CVH، RAW و FPGA1997 تا 2014
فصل دوم:
مفهوم، معماري‌ها و روش‌هاي طراحي
سيستم‌هاي قابل‌ پيكربندي مجدد
2-1- محاسبات و سخت افزار با قابليت پيکربندي مجدد
در اين فصل، به بررسي مفهوم پيکر بندي مجدد ميپردازيم و چندين مرجع مهم در اين زمينه را مورد بررسي قرار ميدهيم.
محاسبات با قابليت پيکربندي مجدد، به سيستمهايي اشاره ميکند که شکلي از قابليت برنامهريزي سخت افزار را به وسيله کاربرد نقاط کنترلي، پياده سازي ميکنند (Wang and Feng-yan 2009, 445-449). اين نقاط کنترلي مي‌توانند به طور متناوب براي اجراي کاربردهاي متفاوت در سخت افزار تغيير ‌کنند. سخت‌افزار با قابليت پيکربندي مجدد تعادل خوبي ميان کارآيي پياده سازي و انعطاف پذيري ايجاد مي‌کند. اين به دليل اين است که سختافزار با قابليت پيکربندي مجدد، قابليت برنامهريزي پس از طراحي را با نوع محاسبات موازي ترکيب کرده است، که در مقايسه با نوع محاسبات زماني ترتيبي پردازندههاي ديگر، کارآيي بالاتري دارد (Trailokya Nath Sasamal and Mohan 2011, 244-253; gaspar 2012, 1-13 ).
سرعت تثبيت کردن در محاسبات با قابليت پيکربندي مجدد، به عنوان يکي از زمينههاي اصلي که موضوعات مختلفي از علوم کامپيوتر و مهندسي الکترونيک را پوشش ميدهد، ميباشد. محاسبات با قابليت پيکربندي مجدد را با تجهيزات با قابليت پيکربندي مجدد مانند FPGA براي اهداف پردازشي استفاده ميکنند. محاسبات قابل پيکربندي مجدد همچنين به نام محاسبات قابل پيکربندي يا محاسبات سفارشي (Custom) شناخته شده است. به طوري که بسياري از روشهاي طراحي ميتوانند براي سفارشي کردن يک محصول محاسباتي براي کاربردهاي خاص استفاده شوند (Touiza and Ochoa-Ruiz 2012, 1-15).
به خاطر نيازهاي فزاينده قابليت انعطاف که به وسيله کاربردهايي با محاسبات فراوان مانند ارتباطات بيسيم مطرح ميشوند، دستگاههايي که نيازمند سازگاري بالا با کاربردهاي در حال اجرا هستند، براي اين منظور تحليل ميشوند. از سوي ديگر، درکي خوب از چنين کاربردهايي مورد نياز است، خصوصأ در مورد منابعي که از آنها در خلال پياده سازي استفاده ميشود و جايي که مصرف توان بايستي در مقابل کيفيت و کاربرد، موازنه شود. نيازهاي چالش برانگيز براي قابليت انعطاف و کارآيي پياده سازي نميتوانند به وسيله پردازندههاي ASIC برآورده شوند. سخت افزار قابل پيکربندي مجدد يک پياده سازي مطلوب را در چنين مواردي شکل ميدهد (Llamocca 2013, 488-502).
دلايل ديگري نيز براي استفاده از تجهيزات قابل پيکربندي مجدد در طراحي سيستم بر روي تراشه نيز وجود دارد. هزينههاي در حال افزايش مهندسي غيربرگشتي طراحان را به سمت استفاده از سيستم بر روي تراشه يکسان در چندين کاربرد و محصول براي دستيابي به قيمت تمام شده پايينتر به ازاي هر تراشه سوق ميدهد. تجهيزات قابل پيکربندي مجدد، يک تنظيم مناسب تراشه را براي محصولات يا تغييرات محصولات را ممکن ميسازد. همچنين براي پيچيدگيهاي بيشتر طرحهاي آينده، امکان اضافه کردن طرحهاي وفق پذيرتر را افزايش ميدهد.
يک سيستم محاسباتي با قابليت پيکربندي مجدد، شامل يک يا تعداد بيشتري از پردازندهها و يک ساختار با قابليت پيکربندي مجدد ميباشد که واحدهاي عملياتي سفارشي ميتوانند به وسيله اين ساختار ساخته شوند. پردازنده يا پردازندهها، دستورات ترتيبي را اجرا ميکنند. در حالي که دستورات ميتوانند به طور موثري به سخت افزار نگاشته شوند و بعد از آن ميتوانند به وسيله واحدهاي پردازشي که به ساختار قابل پيکربندي مجدد نگاشت يافتهاند، اجرا شوند. همانند يک مدار مجتمع سفارشي، توابعي که به ساختار قابل پيکربندي مجدد نگاشت يافتهاند، ميتوانند از موازي سازي در يک پياده‌سازي سخت افزاري بهره برند. همچنين، همانند يک ASIC، طراح سيستم تعبيه شده ميتواند ترکيب صحيحي از واحدهاي ذخيره و عملياتي را در ساختار قابل پيکربندي مجدد توليد کند، که ساختار محاسبهاي ارائه ميشود تا با کاربردهاي خاص هماهنگ ميباشد(Yang 2013, 508-537).
برخلاف ASIC لازم نيست براي هر کاربردي يک ساختار جديد طراحي شود. يک ساختار داده شده ميتواند تعداد زيادي از واحدهاي عملياتي را پياده سازي کند. اين بدان معناست که يک سيستم محاسباتي قابل پيکربندي مجدد ميتواند به صورت توليد انبوه ساخته شود که زمان طراحي طولاني که ASIC براي ساخته شدن نياز داشت را کاهش ميدهد. همچنين، بر خلاف يک ASIC واحدهاي عملياتي که در ساختار قابل پيکربندي مجدد پياده سازي شده‌اند ميتوانند در طول زمان تغيير کنند. يعني اينکه همگام با تغيير محيط يا استفاده از سيستم تعبيه شده، واحدهاي عملياتي ميتوانند براي بهتر هماهنگ شدن با محيط جديد تغيير يابند. ساختار قابل پيکربندي مجدد براي مثال ممکن است در عمليات ضرب ماتريسهاي بزرگ در يک حالت خاص پياده سازي شود و در حالت ديگري توابع پردازش سيگنال بزرگي را استفاده کند.
به طور معمول، تمامي کاراييهاي يک سيستم تعبيه شده لازم نيست که به وسيله ساختار قابل پيکربندي مجدد، پياده سازي شود. فقط آن قسمتهايي از محاسبات که از لحاظ زماني، بحراني هستند و حاوي درجات بالايي از موازي سازي مي‌باشند، لازم است که به ساختار قابل پيکربندي مجدد نگاشت يابند. در حالي که باقيمانده محاسبات ميتوانند به وسيله يک پردازنده با دستورات استاندارد پياده سازي شوند. واسط ميان ساختار و پردازنده، همانند واسط ميان حافظه و ساختار داراي حداکثر اهميت ميباشد. قطعات قابل پيکربندي مجدد مدرن به اندازه کافي وسيع هستند که پردازندههاي دستوري به وسيله ساختار قابل برنامه ريزي پياده سازي شوند. پردازندههاي نرم ميتوانند همه منظوره باشند يا براي کاربردي خاص ساخته شوند.
پردازندههاي دستور با کاربرد خاص و پردازندههايي با دستورات انعطاف پذير، دو نمونه از چنين ساختارهايي ميباشند. بقيه تجهيزات، مانند پردازنده‌ گرافيکي و پردازندههاي با کاربرد خاص آرايهاي، مقداري از قابليت انعطاف رايانههاي قابل پيکربندي مجدد را نشان ميدهند. اين تجهيزات، دستورات را به خوبي انجام مي‌دهند، اما بر خلاف رايانههاي قابل پيکربندي مجدد و ريزپردازندهها، نميتوانند محاسبات کليتر را اجرا کنند(Gonzalez 2012, 247-256).
2-2- پيکربندي مجدد جزئي پويا و ايستا در FPGA ها
پيکر بندي مجدد جزئي پويا6 در FPGA ها فضاي طراحي جديدي رابامزاياي زيادي نظير کاهش زمان پيکربندي و ذخيره حافظه به عنوان فايل پيکربندي دوباره با تعداد بيتهاي کمتر ارائه ميدهد.
پيکر بندي مجدد جزئي7 توانايي پيکربندي مجدد هر منطقه مشخص از يک FPGA را پس از پيکربندي اوليه دارد. بر اساس نوع طراحي، پيکر بندي مجدد را ميتوان به دو گروه تقسيم کرد: پيکر بندي مجدد پويا و پيکر بندي مجدد ايستا (Wang and Feng-yan 2009, 445-449). پيکر بندي مجدد جزئي پويا که در شکل 2-1 نشان داده شده است، به عنوان پيکر بندي مجدد فعال شناخته شده و اجازه تغيير براي بخشي از برد را ميدهد در حالي که بقيه بخشهاي FPGA همچنان در حال اجرا ميباشند (Krill and Ahmad 2010, 377-387).
شکل 2-1. پيکر بندي مجدد جزئي پويا
در پيکر بندي دوباره جزئي ايستا8 دستگاه در طول فرآيند پيکربندي مجدد فعال نيست. به عبارت ديگر، در حالي که دادههاي جزئي که به FPGA ارسال ميشوند، بقيه بخشها متوقف ميشوند، همانطور که در شکل 2-2 نشان داده شده است.
شکل 2-2. پيکر بندي دوباره جزئي ايستا
پيکر بندي مجدد جزئي پويا است که اجازه مي دهد FPGA براي انطباق با تغيير الگوريتم هاي سخت افزاري، قابليت تحمل خطا و بهره برداري از منابع، به منظور افزايش کارايي و يا به کاهش مصرف برق انجام شده است.
2-3- معرفي مرجع اول در پيکر بندي مجدد FPGA
در مرجع 1 يک سيستم تنظيم مجدد ساده معرفي شده و بر مزاياي استفاده از جديدترين طراحي پيکر بندي دوباره جزئي پويا تمرکز ميکند. سيستم پيشنهادي را در شکل 2-3 ملاحظه ميکنيد.
شکل 2-3. سيستم پيشنهادي مرجع (Wang and Feng-yan 2009, 445-449) در پيکر بندي مجدد FPGA
در اين سيستم، يک قسمت ايستا وجود دارد که وروديهاي FPGA وارد اين قسمت ميشوند و پردازشهاي لازم بر روي آنها ايجاد ميشود. اين بخش به وسيله باسهايي با بخشي که عمليات پيکربندي مجدد را انجام ميدهد ارتباط دارد. در واقع، عملياتي که بايد مرتبأ پيکربندي مجدد شوند، توسط اين بخش به صورت موازي با هم انجام ميشوند و سپس نتيجه به خروجي ارسال ميگردد (Christopher and Rathgeb 2009, 13-15 ).
در شکل 2-4 فلو چارت مربوط به مرجع 1 را ملاحظه ميکنيد.
شکل 2-4. فلو چارت مربوط به مرجع (Wang and Feng-yan 2009, 445-449)
در واقع، عملکرد به اين صورت است که با کد VHDL عمليات مربوط به قسمتهايي که بايد پيکر بندي مجدد بشوند و همچنين عمليات مربوط به قسمتهايي که نبايد پيکر بندي مجدد بشوند به صورت جدا انجام شده و در نهايت با هم ترکيب ميشوند و به خروجي ارسال ميشوند.
2-4- معرفي مرجع دوم در پيکر بندي مجدد FPGA
اين مرجع يک روش را براي بهبود طراحيها در سطح VHDL معرفي کرده است تا بتوان به کمک آن کدها را بدون خطا نوشته و آن را به صورت پيکر بندي مجدد بر روي FPGA پياده سازي کرد.
ابتدا طراحيها در سطح RTL را در شکل 2-5 ملاحظه ميکنيد که چگونگي پياده سازي کدها را در برد FPGA نمايش ميدهد.
شکل 2-5. طراحي در سطح RTL در برد FPGA
براي طراحي در سطح RTL از نرم افزار ISE Xilinx استفاده ميشود. نکته مهم در طراحي در سطح RTL اين است که بايد قبل از پياده سازي کدها را در نرم افزار Modelsim نوشت و از نحوه پياده سازي زياضي آن اطمينان حاصل کرد. به همين منظور دو نمونه از پياده سازي در نرم افزار Modelsim را که در همين مرجع براي پياده سازي کدها از آنها استفاده شده است را در شکل 2-6 نمايش ميدهيم.
شکل 2-6. نمونههايي از پياده سازي در نرم افزار Modelsim
2-5- معرفي مرجع سوم در پيکر بندي مجدد FPGA
جريان طراحي جديد که در بالا به آن اشاره شده است همچنين به عنوان پيکر بندي مجدد جزيي است و بر اساس روش هاي سنتز کلي سيستم پياده سازي ميشود. اين روش مستلزم آن است که کدهاي مربوط به هر بخش (يا ماژول پيکر بندي مجدد PRM) به طور مستقل و بدون بهينه سازي در سراسر مرزهاي بخشها، توليد شود. به صورت موازي، هر ماژول طراحي شده به طور مستقل و با جعبههاي سياه براي هر پارتيشن سنتز ميشود. اين روند در شکل 2-7 نشان داده شده است که در آن کدها براي PRM ها از طريق سنتز با استفاده از Xilinx ISE به دست آمده است. در پارتيشن جديد طراحي، همه فعاليتهاي مربوط به پيکر بندي مجدد جزئي در اطراف اين ابزار قادر است تا به صورت خودکار و دقيق سيم بندي بين ماژولها را برقرار کند (Koch, Beckhoff and Torresen 2010, 103-108).
شکل 2-7. جريان طراحي سنتي براي مفهوم سيستم پيکر بندي مجدد به صورت پويا
2-6- معرفي مرجع چهارم در پيکر بندي مجدد FPGA
در مرجع چهارم يک طراحي موثر مبتني بر پيکر بندي مجدد جزئي پويا ارائه شده است که يک محيط مناسب براي پردازش تصوير و سيگنال و همچنين هستههاي محاسباتي IP-Core آماده ميکند که نمودار مربوط به اين الگوريتم را در شکل 2-8 ملاحظه ميکنيد.
شکل 2-8. الگوريتم پيکر بندي مجدد جزئي پويا مرجع (Krill and Ahmad 2010, 377-387)
روند طراحي به اين گونه است که ابتدا کدهاي مربوط به هستههاي محاسباتي را نوشته و در مرحله دوم آنها را سنتز ميکنيم. در اين مرحله و مرحله سوم سايز و منطقه مربوط به هر کدام را مشخص ميکنيم. در مرحله چهارم، عمليات مربوط به سيمبنديها انجام ميشود و در نهايت سيستم را تکميل ميکنيم.
2-7- معرفي مرجع پنجم در پيکر بندي مجدد FPGA
در مرجع پنجم، به منظور به دست آوردن کلاک مورد نياز براي سرعت بالا، طراحي با چگالي بالا، مديريت کلاکFPGA اختصاص داده شده که در حال تبديل شدن به يک ضرورت بسيار مهم است، طراحيهاي مناسبي انجام گرفته است. انعطاف پذيري و برنامه ريزي در محدوده برنامههاي کاربردي داراي نقشي حياتي است. معماريهاي جديدFPGA ، از جمله سريXilinx Virtex ، اجازه پيکر بندي مجدد زمان اجرا و پويا را ميدهد. يک FPGA ميتواند داده هاي پيکربندي خود را در زمان اجرا تغيير دهد و امکان جايگزيني بخشهاي خاصي از طراحي سخت افزاري را بر اساس نيازهاي برنامه فراهم کند.
مرجع پنجم به تشريح يک رويکرد جديد از سنتز فرکانسهاي ديجيتال در رابطه با مديريت کلاک FPGA ميپردازد. اجراي الگوريتم بر اساس انجام سنتز فرکانسي با استفاده از پيکربندي مجدد پويا(DRP) يک مديريت کلاک ديجيتاليDCM اوليه از طريق ماژول تنظيم مجدد است.
طراحي بر اساس روشهاي طراحي مجدد جزئي است که به صورت پويا فرکانس کلاک DCM را با توجه به نيازهاي برنامههاي در حال اجرا، تعيين ميکند. هر فرکانس خروجي را مي توان با دقت و به سرعت تصحيح کرد.
به طور کلي FPGA ها با DCM هاي تعبيه شده خود به حل مشکلات مديريت کلاک در طراحي با سرعت بالا ميپردازند. بنابراين، DCM ها طراحيها را ساده تر ميکنند و توسعه و هزينه طراحيها را بهبود ميبخشند. اين مي تواند يک کلاک تاخير داده شده در حلقه، يک سنتز کننده فرکانسي ديجيتال، فاز ديجيتال، و طيف گستردهاي از سيگنالهاي ديجيتال را همانطور که در شکل 2-9 نشان داده شده است، پياده سازي کند.
شکل 2-9. بلوک DCM
در شکل 2-10 طراحي در سطح RTL بلوک DCM نشان داده شده است.
شکل 2-10. طراحي در سطح RTL بلوک DCM
شکل 2-11 يک نمودار از کدهاي سلسله مراتبي را براي بلوک DCM نشان ميدهد. ماژولهاي TOP و DCM در منطقه ايستا از طراحي هستند، به اين معني اين بلوکهاي منطقي مختص به کارهاي مشخص شدهاي هستند در حالي که ماژولهاي ديگر را ميتوان به صورت پويا پيکربندي مجدد کرد.
ماژول پيکر بندي مجدد DCM_Cntrl پيکر بندي مجدد مولفه DCM قرار داده شده در منطقه استاتيک را با استفاده از پورت DRP کنترل ميکند. هر بلوک متشکل از طراحي بالا به طور جداگانه ساخته شده و سپس با استفاده از نرم افزار ISE Xilinx سنتز ميشود.
اين ابزار داراي خصوصياتي است که به طراح اجازه ميدهد تا مفهوم ماژولار را درک کند و به آن اجازه مي دهد تا فايلهاي پيکر بندي مجدد جزئي را پياده سازي کند.
شکل 2-11. طراحي سلسله مراتبي مرجع پنجم
براي پياده سازي اوليه در نرم افزار Modelsim مرجع پنجم شکل 2-12 را به دست آورده است.

شکل 2-12. نتايج شبيه سازي DRP بلوک هاي منطقي
شکل 2-13 سيستم را که به بخشهاي استاتيک و پيکر بندي مجدد جزيي تقسيم شده است را نشان مي دهد. براي هر بخش تنظيم مجدد (RP) فايلهاي چند بيتي بر اساس نوع برنامه توليد ميشوند. تابع اجرا شده در پيکر بندي مجدد بخشي است که با دانلود يکي از فايلهاي بيتي جزئي اصلاح شده به دست ميآيد.
فصل سوم:
پياده سازي نرم افزاري و سخت افزاري
پيکربندي مجدد پيشنهادي
3-1- مقدمه
بر خلاف پياده سازيهاي بر مبناي ريزپردازنده که طول کلمه به وسيله سيم بندي معماري پردازنده تعريف شده است، محاسبات قابل پيکربندي مجدد بر مبناي FPGA ها به هر متغير اين اجازه را ميدهد که هر طولي براي توليد بهترين موازنهها در دقت عددي اندازه، طرح، سرعت و مصرف توان، داشته باشد. کاربرد چنين نمايش داده سفارشي براي بهينه سازي طراحيها يکي از نقاط قوت اصلي محاسبات قابل پيکربندي مجدد ميباشد.
با اين قابليت انعطاف، خودکار سازي فرآيند، پيدا کردن يک نمايش داده خوب، مطلوب ميباشد. مهمترين تصميم پياده سازي براي خودکارسازي، انتخابي از يک طول کلمه مناسب و مقياس گذاري براي هر سيگنال در يک سيستم DSP است.
مسأله مورد بحث اغلب اين است که کاراترين پياده سازي سخت افزاري يک الگوريتم آن است که تعداد زيادي از نمايش‌هايي با دقت نهايي از اندازههاي گوناگون براي متغيرهاي داخلي مختلف باشند که دقت قابل مشاهده در خروجي يک سيستم DSP تابعي از طول کلمه براي نمايش تمام متغيرهاي مياني در الگوريتم باشد. با وجود اين، دقت برخي از متغيرها نسبت به بقيه کمتر حساس است. ثابت شده است که با در نظرگرفتن خطا و اطلاعات سطح در يک روش ساخت يافته با استفاده از مدلهاي نويز تحليلي و نيمه تحليلي اين امکان وجود دارد که به پياده سازيهاي DSP با کارآيي بالاتر دست يافت.
نشان داده شده است که مسأله بهينه سازي طول کلمه کاري بسيار مشکل است ولي در سيستمهايي با ويژگي‌هاي محاسباتي خاص که مسأله را از يک ديدگاه کاربردي، ساده ميکنند. به هر حال چندين رويکرد براي حل اين مسأله منتشر شده است. يکي از اين راهحلها، رويکردهاي بهينهاي هستند که ميتوانند در الگوريتمهاي همراه با خواص رياضياتي خاص به کار گرفته شوند.
بهترين راه براي پيکربندي مجدد به صورت نرم افزاري و با استفاده از روش طول کلمه، نوشتن کدها در نرم افزار VHDL به صورت n بيتي ميباشد. دليل اين است که در برد FPGA ميليونها محاسبات رياضي در ثانيه انجام ميگردد. هر کدام از اين محاسبات با يک طول کلمه خاص (بين 2 تا 4096 بيت) است. به عنوان مثال، عمل ضرب همزمان بين دو عدد 8 بيتي و 128 بيتي انجام ميگيرد. اگر بخواهيم براي هر کدام يک ضرب کننده جدا طراحي کنيم (که عملأ غير ممکن است)، سريعأ فضاي FPGA پر ميشود و سرعت به شدت پايين ميآيد. بنابراين، بهترين راه براي آن، پيکربندي مجدد به صورت نرم افزاري و با استفاده از روش طول کلمه است. يعني، کدهاي عمليات رياضي را به صورت n بيتي مينويسيم و با تکنيک فراخواني بلادرنگ، هر گاه نياز به هر يک از توابع جمع کننده، تفريق کننده، ضرب کننده و تقسيم کننده و با هر تعداد بيت دلخواه داشتيم، بلافاصله از اين کدها استفاده ميکنيم.
بنابراين، اگر در يک ثانيه نياز به صدها عمل ضرب کردن داشتيم، ميتوانيم از اين کد ضرب کننده n بيتي استفاده کنيم که علاوه بر افزايش سرعت، استفاده از فضاي داخلي FPGA را کاهش دادهايم.
در اين پاين نامه، توابع جمع کننده، تفريق کننده، ضرب کننده و تقسيم کننده را به صورت n بيتي به وسيله نرم افزار VHDL طراحي کردهايم. نکته بسيار مهم اين است که حتي بهترين نرم افزار دنيا در زمينه سنتز کدهاي VHDL که ISE ميباشد، اين اختيار را براي کاربر فراهم نکرده است و تنها به کاربر اجازه ميدهد تا از هستههاي محاسباتي خود به صورت 4، 8، 16، 32 و 64 بيتي استفاده کند. بنابراين، اگر کاربر بخواهد که از ضرب کننده 65 بيتي به بالا استفاده کند، کاملأ ناتوان خواهد بود. اما توابعي که براي پياده سازي توابع جمع کننده، تفريق کننده، ضرب کننده و تقسيم کننده که در اين پايان نامه به روش پيکربندي مجدد طراحي شده است، براي تمامي نيازهاي کاربر را به خوبي فراهم ميکند. استفاده از اين کدها ميتواند براي کاربردهاي زير باشد:
* تمامي مراکز دانشگاهي و علمي.
* استفاده در مراکز نظامي که از بردهاي FPGA در تجهيزات خود استفاده ميکنند.
* استفاده در مراکز پزشکي که از بردهاي FPGA در تجهيزات خود استفاده ميکنند.
* استفاده در ابر کامپيوترهايي که از بردهاي FPGA در تجهيزات آن استفاده شده است.
3-2- پياده سازي جمع کننده Carry_Look_Ahead به صورت n بيتي
براي پياده سازي جمع کننده n بيتي، از جمع کننده Adder_Carry_Look_Ahead استفاده ميکنيم که يک الگوريتم بسيار پرسرعت در اين زمينه ميباشد(Verma 2011, 146-151).
در طراحي مدار جمع کننده کامپيوتر معمولاً از روش متمم دو استفاده ميشود و بايد مدار طراحي شده داراي سرعت کافي و بالايي باشد .زيرا تمامي عمليات جمع، تفريق، ضرب و تقسيم توسط اين مدار انجام خواهد گرفت .جمع کننده يک مدار ترکيبي است و هر مدار ترکيبي را ميتوان در دو سطح پياده سازي نمود. هر چه تعداد سطوح کمتر گردد عمل جمع سريعتر صورت مي گيرد. اگر چه ميتوان از لحاظ تئوري براي طراحي جمع کننده n بيتي آن را در دو سطح (سريعترين حالت ممکن)



قیمت: تومان


پاسخ دهید