محاسبات و سخت افزار با قابلیت پيکربندی مجدد

محاسبات با قابلیت پيکربندی مجدد، به سيستم­هايی اشاره می­کند که شکلی از قابليت برنامه­ريزی سخت افزار را به وسيله کاربرد نقاط کنترلی، پياده سازی می­کنند (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

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *