محاسبات با قابلیت پيکربندی مجدد، به سيستمهايی اشاره میکند که شکلی از قابليت برنامهريزی سخت افزار را به وسيله کاربرد نقاط کنترلی، پياده سازی میکنند (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 ها
پیکر بندی مجدد جزئی پویا[1] در FPGA ها فضای طراحی جدیدی رابامزایای زیادی نظیر کاهش زمان پیکربندی و ذخیره حافظه به عنوان فایل پیکربندی دوباره با تعداد بیتهای کمتر ارائه میدهد.
پیکر بندی مجدد جزئی[2] توانایی پیکربندی مجدد هر منطقه مشخص از یک FPGA را پس از پیکربندی اولیه دارد. بر اساس نوع طراحی، پیکر بندی مجدد را میتوان به دو گروه تقسیم کرد: پیکر بندی مجدد پویا و پیکر بندی مجدد ایستا ((Wang and Feng-yan 2009, 445-449). پیکر بندی مجدد جزئی پویا که در شکل 2-1 نشان داده شده است، به عنوان پیکر بندی مجدد فعال شناخته شده و اجازه تغییر برای بخشی از برد را میدهد در حالی که بقیه بخشهای FPGA همچنان در حال اجرا میباشند (Krill and Ahmad 2010, 377–387).
شکل 2-1. پیکر بندی مجدد جزئی پویا
در پیکر بندی دوباره جزئی ایستا[3] دستگاه در طول فرآیند پیکربندی مجدد فعال نیست. به عبارت دیگر، در حالی که دادههای جزئی که به FPGA ارسال میشوند، بقیه بخشها متوقف میشوند، همانطور که در شکل 2-22 نشان داده شده است.
شکل 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) فایلهای چند بیتی بر اساس نوع برنامه تولید میشوند. تابع اجرا شده در پیکر بندی مجدد بخشی است که با دانلود یکی از فایلهای بیتی جزئی اصلاح شده به دست میآید.
[1] Dynamic Reconfiguration
[2] Partial Reconfiguration
[3] Static Reconfiguration