مفهوم محاسبات با قابلیت پیکربندی مجدد از اوایل دهه 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 را به عنوان ورودی میگیرد و با تغییراتی اندک، آنها را برای اجرا و پیادهسازی روی [5]FPGA در ریزپردازنده، کامپایل میکند. بعضی از الگوریتمهای کاربردی با زبانهای سطح بالا همانند 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 و X30xx | 1989 تا 1991 |
SPLASH و X40xx | 1991 تا 1993 |
PRISM و DISC | 1993 تا 1995 |
MATRIX و X6200 | 1995 تا 1997 |
CVH، RAW و FPGA | 1997 تا 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).
فرم در حال بارگذاری ...