شکل ۱-۱۰ نرخ خطای SEU را برای یک حافظه نشان میدهد. انرژی دستگاه شتاب دهنده MeV 800 بوده و از یونهای سنگین برای تابش استفاده شده است.
شکل ۱-۱۰: نرخ خطای تک بیتی تا پنج بیتی مجاور]۱۹[.
همانطور که در شکل فوق مشاهده میکنید ابتدا نرخ خطاهای تک بیتی و سپس دو بیتی مجاور و به ترتیب تا پنج بیتی مجاور اندازه گیری شده است.
در شکل ۱-۱۱ الگوهای مختلف از خانههای حافظه، برای یک خطای دوبیتی نشان داده شده است. در شکل ۱-۱۲ نرخ خطاهای دوتایی برای الگوهای نشان داده شده در شکل ۱-۱۱ به دست آمده است، که نشان میدهد نرخ خطا تقریبا یک رابطه خطی با فاصله بین خانههای حافظه دارد. از این امر میتوان به اهمیت مقابله با خطا در خانههای مجاور پی برد، زیرا که نزدیکترین فاصله بیشترین نرخ خطا را دارد.
شکل ۱-۱۱: الگوهای متفاوت از خطاهای دوتائی در حافظه]۱۹[.
شکل ۱-۱۲: نرخ خطای دوتائی برای الگوهای مختلف]۱۹[.
۱-۵ تعریف مساله و بیان ضرورتها
زمین و محیط اطراف آن توسط اتمسفر از تشعشعات فضایی محافظت می شود. وجود اتمسفر باعث جلوگیری از اثرات مخرب این تشعشعات بر روی دستگاههای الکترونیکی است، اما در فضا تجهیزات الکترونیکی از این تشعشعات در امان نیستند. یکی از این اثرات مخرب در FPGA های مبتنی بر SRAM، SEUاست که عبارت است از تغییر حالت (از صفر به یک و بر عکس) بیتهای حافظه]۳[. نتایج آزمونهای به دست آمده بر روی FPGA های مبتنی بر SRAM نشان میدهد که این قطعات فوق العاده به تشعشعات فضایی حساس هستند]۱۶[. اما استفاده از آنها در کاربردهای فضایی مانند عملیات اکتشاف دور به دلیل قابلیت باز پیکربندی که در این قطعات قرار داده شده است بسیار ضروری است]۲۴[. بیتهای پیکره بندی در FPGA برای مشخص کردن توابع مدار و چگونگی اتصالات آنها استفاده میشوند. SEU در بیتهای پیکره بندی موجب تغییر تابع اجرایی مدار و تغییر اتصالات و در نهایت خرابی سیستم فضایی می شود]۲۸[.
در FPGA های مدل Virtex قابلیت باز خوانی و بار کردن اطلاعات[۲۸] حافظه پیکره بندی به صورت درون سیستمی توسط پورت هشت بیتی و دوطرفه SelectMAP قرار داده شده است که می توان از این تکنیک برای جلوگیری از انباشتگی SEU در حافظه استفاده کرد. البته باید توجه داشت که برای استفاده از این تکنیک باید اطلاعات حافظه پیکره بندی در حافظههای مقاوم در برابر تشعشعات در خارج از FPGA ذخیره شده باشد. اما از مشکلات این روش باید به این امر اشاره نمود که افزایش روز افزون تعداد بیتها در یک FPGA، موجب افزایش حجم حافظه خارجی و افزایش هزینه می شود، همچنین افزایش تعداد بیتها، موجب افزایش زمان انجام این فرایند می شود، که احتمال وقوع خطا در این بازه زمانی و اختلال در کار سیستم را افزایش میدهد. برای کم کردن این زمان از تکنیک Partial Reconfiguration استفاده شده است، که با توجه به این قابلیت میتوان به جای تمام حافظه، ابتدا خطا را در یک فریم از اطلاعات که در آن خطا رخ داده است تشخیص داد و سپس فقط اطلاعات مربوط به آن فریم را دوباره بار کرد، در نتیجه زمان مورد نیاز کاهش مییابد]۲۰[.
در نهایت برای مقابله با SEU تنها نمی توان به روش فوق اکتفا کرد و باید از تکنیکهایی برای کاهش تاثیر[۲۹] این خطا در بین زمان باز خوانی و بار کردن اطلاعات استفاده شود. این روشها به دو دسته کلی تقسیم میشوند که عبارتند از: ۱- روش های مبتنی بر افزونگی سخت افزاری. ۲- روش های مبتنی بر افزونگی اطلاعات. در روش های سخت افزاری با افزایش و طراحی امکانات سخت افزاری به تشخیص و تصحیح خطا پرداخته می شود. به عنوان مثال از روش های افزونگی سخت افزاری میتوان TMR[30] را نام برد. در این روش هر ماژول سه بار تکرار شده و خروجی نهایی از رای گیری بین ماژول ها استخراج می شود. زمانی که SEU موجب خرابی یکی از ماژولها شود، مدار رای گیر مقدار صحیح را با بهره گرفتن از دو ماژول دیگر عبور میدهد. این روش درصد سرباری بیشتر از ۲۰۰% را برای توان و مساحت مدار به همراه دارد و اگر دو ماژول به طور هم زمان دچار SEU شوند، مدار رای گیر مقدار غلط را به خروجی عبور خواهد داد.
این قبیل روشها حجم سخت افزاری زیادی را به مدار تحمیل می کنند، از این رو به روش های افزونگی اطلاعات مانند کد همینگ با قابلیت تصحیح خطاهای تک بیتی رو آورده شده است. اما با افزایش چگالی حافظهها و کوچکتر شدن طول کانال در سالهای اخیر، هر ذره از تشعشعات فضایی می تواند چند بیت حافظه را به طور هم زمان واژگون گرداند]۱۷،۱۸[، که این بیتها در اکثر موارد مجاور هستند]۱۹[. در نتیجه تشخیص وتصحیح خطا در بیتهای مجاور اهمیت مییابد. بر این اساس هدف این پایان نامه ارائه روشی برای مقابله با خطاهای مجاور در بیتهای پیکره بندی FPGA های مبتنی بر SRAM است.
ادامه این پایان نامه به صورت زیر تنظیم شده است: در فصل دوم روش های مقابله با SEU در FPGA های مبتنی بر SRAM بررسی می شود. در فصل سوم در مورد روش پیشنهادی و نتایج روش پیشنهادی بطور کامل بحث می شود و در نهایت در فصل چهارم نتیجه گیری و پیشنهادات برای کارهای آتی مطرح خواهد شد.
فصل دوم:
مروری بر روش های مقابله با SEU در FPGA های مبتنی بر SRAM
۲-۱ بررسی روش های مبتنی بر افزونگی سخت افزاری
۲-۱-۱ TMR
یکی از روش های مشهور در زمینه مقابله با SEU روش TMR است. در این روش، به جای یک مدار، ورودی به سه مدار مشابه به طور همزمان اعمال می شود و نتیجه خروجی از رای گیری بین خروجی آنها به دست میآید. این روش از روش های پایه و کلاسیک در زمینه تحمل پذیری خطا و از روش های ابداعی برای ASIC[31] ها است، که با معرفی شدن FPGA ، برای این قطعات نیز استفاده شد. در شکل ۲-۱ چگونگی پیاده سازی این روش را مشاهده میکنید.
شکل۲-۱: استفاده از TMR در حافظه ها.
این روش درصد سرباری بیشتر از ۲۰۰% را برای توان و مساحت مدار به همراه دارد و اگر دو ماژول به طور هم زمان دچار خطا شوند، مدار رای گیر مقدار غلط را به خروجی عبور خواهد داد. همچنین با ایجاد خطا در مدار رای گیر نتیجه خروجی اشتباه خواهد شد.
برای کاهش درصد سرباری، روش های بهبود یافتهتر، از خانواده TMR ارائه شده است، که در بخش بعدی مطرح می شود. همچنین برای مقابله با خطاهای چندگانه و همچنین کاهش درصد سرباری نیز به روش های افزونگی اطلاعات روی آورده شده است. برای مقابله با خطای مدار رای گیر نیز، از بافرهای سه حالته موجود در FPGA به عنوان مدار رای گیر استفاده می شود که این بافرها در مقابل SEU مقاوم هستند]۲۰[. در نهایت باید بیان نمود که این روش با تمام مشکلاتی که دارد، اما به دلیل داشتن یک سیستم ساده، سریع و کارآمد دارای قدرت زیادی در مقابله با خطا است]۲۱[.
۲-۱-۲ TMR انتخابی
در این روش که در مرجع ]۲۲[ ارائه شده است، با توجه به احتمال وقوع SEU در گرههای حساس مدار، فقط این گرهها با بهره گرفتن از TMR مقاوم میشوند، در نتیجه مساحت نسبت به TMR کامل کاهش خواهد یافت. به عبارت دیگر با تعیین آستانه حساس بودن، مصالحهای بین تحمل پذیری خطا و مساحت ایجاد می شود.
در این روش ابتدا با بهره گرفتن از احتمال SEU در ورودیها، احتمال SEU در خروجی هر گیت را با بهره گرفتن از روابط نشان داده شده در جدول ۲-۱ به دست می آوریم (این روابط برای هرگیت با توجه به جدول صحت آن به دست آمده است).
جدول ۲-۱: روابط احتمال انتشار خطا در گیتهای منطقی]۲۲[.
باید به این نکته توجه داشت که گیتهای XOR و XNOR همیشه به عنوان نود حساس در نظر گرفته میشوند، زیرا هر گونه تغییر در ورودی آنها موجب تغییر در خروجی و در نتیجه انتشار خطا خواهد شد. اما برای گیتهای دیگر، ابتدا مقدار غالب (۰ یا ۱) را از خروجی جدول صحت آن تعیین میکنیم. به عنوان مثال برای گیت AND این مقدار ۰ است.
به عنوان مثالی از چگونگی محاسبه انتشار خطا، شکل ۲-۲ را در نظر بگیرید. احتمالهای نشان داده شده در ورودی، احتمال یک بودن آن ورودی را نشان میدهد.
شکل ۲-۲: گیتهای AND با احتمال یک بودن هر ورودی]۲۲[.
احتمال اینکه برای گیت a مقدار خروجی ۱ باشد برابر است با ۱۹۲/۰= ۸/۰ × ۶/۰ × ۴/۰ و احتمال اینکه یکی از ورودیها ۰ با شد و بقیه ۱ باشند، برابر است با ۴۶۴/۰= ۲/۰ × ۶/۰ × ۴/۰ + ۸/۰ × ۴/۰ × ۴/۰ + ۸/۰ × ۶/۰ × ۶/۰ و در نهایت مقدار حساسیت به SEU برابر است با ۶۵۶/۰= ۴۶۴/۰ + ۱۹۲/۰، که اگر مقدار آستانه برابر با ۶/۰ (این مقدار با توجه به محیط تشعشعات، توسط طراح انتخاب می شود) باشد، این گیت به عنوان یک گیت حساس انتخاب می شود. روند فوق برای گیت b نیز انجام شده و مقدار به دست آمده برابر است با ۵۴۴/۰، که کمتر از حد آستانه است. در نتیجه این گیت به عنوان یک گیت حساس در نظر گرفته نمی شود. روش TMR انتخابی در شکل ۲-۳ بر روی یک مدار کوچک اجرا شده است.
شکل ۲-۳: اجرای روش TMR انتخابی]۲۲[.
برای ارزیابی این روش، ۱۰۰۰ SEU به مدارهای محک MCNC91 ]23[ که با روش TMR کامل و TMR انتخابی مقاوم شده بودند تزریق شده است، که نتاج آن را میتوانید در جدول ۲-۲ مشاهده کنید. در این جدول به ازای سه آستانه مختلف، مدارها مقاوم سازی شده است. در این جدول E نشان دهنده تعداد SEU هایی است که موجب خطا در مدار شده است، L نشان دهنده تعداد LUT های استفاده شده است و S میزان مساحتی که نسبت به TMR کامل ذخیره می شود را به درصد نشان میدهد.
جدول ۲-۲: نتایج حاصل از TMR انتخابی]۲۲[.
همانطور که نتایج آزمایش در جدول فوق نشان میدهد، با افزایش مقدار آستانه، حجم سخت افزار کاهش مییابد، اما در عوض میزان تحمل پذیری خطا نیز کاهش مییابد، این امر نشان دهنده مصالحه بین کارایی و حجم سخت افزار در طراحی، توسط تغییر در این پارامتر آزاد است. البته همانطور که در جدول فوق نشان داده شده است با مقدار آستانه ۳۵/۰ تعداد خطاها در هر دو روش TMR کامل و TMR انتخابی صفر است، اما در روش TMR انتخابی در کمترین حالت، ۱۷ درصد از حجم سخت افزار کاسته شده است.
از مشکلات این روش میتوان به این امر اشاره کرد که پروسه محاسبه وتعیین گرههای حساس، یک پروسه سخت در مدارهای بزرگ است و کاهش مساحت بیان شده به دلیل نیاز به یک مدار رای گیر برای هر گره حساس، ممکن است با افزایش پیچیدگی مدار دیگر اعتبار نداشته باشد.
۲-۱-۳ QFDR [۳۲]
مکانیزم کلی این روش که در مرجع ]۲۴[ ارائه شده است، به این صورت است، که ورودی به چهار مدار یکسان اعمال می شود و خطای احتمالی ایجاد شده به مراحل جلوتر انتشار مییابد، سپس در مراحل جلوتر خطا تشخیص داده شده و تصحیح می شود. در نهایت نتیجه صحیح آن با یک فیدبک موجب تصحیح مراحل قبلی می شود. در این روش طراحی در سطح Fine Grain است که اشاره به طراحی در سطحLUT به عنوان قسمتی که باید چهار برابر شود دارد. در ادامه به بیان مکانیزم این روش به صورت دقیق تر پرداخته شده است.
در این روش ابتدا هر تابع را چهار بار کپی میکنیم و سپس هر ورودی را دو برابر میکنیم. این کار در شکل ۲-۴ نشان داده شده است.
شکل ۲-۴: اجرای QFDR در مدارهای ترکیبی]۲۴[.
حال با در نظر گرفتن شکل فوق فرض کنید در i1 خطا رخ دهد در نتیجه بین دو ورودی i1 و i3 اختلاف ایجاد می شود و این اختلاف توسط f1 با توجه به رابطه ۲-۱ قابل تشخیص است.
(۲-۱)
همانطور که در رابطه فوق میبینید پس از تشخیص خطا، خروجیها به اجبار (اشاره به Force در اسم این روش دارد) صفر میشوند و سپس در مرحله بعد خروجی k1 با k2 مقایسه می شود و در نهایت با توجه به رابطه ۲-۲ خطا تشخیص داده شده (اشاره به Decide در اسم این روش دارد) و تصحیح خواهد شد.
(۲-۲)
زمانی که از این روش برای FPGA استفاده میکنیم، باید از خروجی تصحیح شده، یک فیدبک به ورودی فلیپ فلاپهای مرحله قبل و مرحله تشخیص خطا، برای تصحیح این مراحل اعمال شود. در شکل ۲-۵ اعمال این روش در FPGA نشان داده شده است.
شکل ۲-۵: اعمال QFDR در FPGA ]24[.
برای ارزیابی این روش از FPGA مدل XC5VLX110T از خانواده Virtex-5 استفاده شده است. در جداول ۲-۳ نتایج این روش از نظر حجم سخت افزاری با TMR مقایسه شده است و در جدول ۲-۴ نیز نتایج این روش از نظر کارآیی با TMR مقایسه شده است.
جدول ۲-۳: مقایسه TMR و QFDR از نظر مساحت] ۲۴[.
جدول ۲-۴: مقایسه TMR و QFDR از نظر کارآیی] ۲۴[.
همانطور که در جدول ۲-۳ مشاهده میکنید حجم سخت افزاری این روش از TMR بیشتر است و این یکی از معایب بزرگ این روش است، اما در این روش حساسیتی که نسبت به مدار رای گیر در TMR وجود دارد از بین میرود. در جدول ۲-۴ تعداد بیتهایی که با تزریق خطا دچار واژگونی میشوند نسبت به کل بیتهای مدار را مشاهده میکنید.
تا کنون به روش های مبتنی بر سخت افزار پرداخته شد، این روشها دارای حجم سخت افزاری بالایی هستند و انعطاف پذیری و قابلیت بهبود در آنها پایین است. از این رو به روش های مبتنی بر افزونگی اطلاعات روی آورده شده است. در ادامه به بیان این گونه روشها پرداخته می شود که بحث اصلی در نظر گرفته شده در این پایان نامه است.
۲-۲ بررسی روش های مبتنی بر افزونگی اطلاعات
۲-۲-۱ کد همینگ
کد همینگ اولین بار توسط همینگ در سال ۱۹۵۰ ارائه شده است]۲۵[. این کد قابلیت تصحیح خطاهای تک بیتی و تشخیص خطاهای دو بیتی را فراهم می کند. در این کد به ازای هر عدد صحیح مثبت (m) با در نظر گرفتن شرط m≥۳ پارامترهای زیر وجود دارد]۲۶[.
(۲-۳) n=2m – ۱ , k= n-m , dmin=3
در روابط فوق n تعداد تمام بیتها، m تعداد چک بیتها، k تعداد بیتهای اطلاعات و dmin مقدار کمترین فاصله در کد است. چند نمونه از مقادیر ممکن برای پارامترهای k و n در جدول ۲-۵ نشان داده شده است.
جدول ۲-۵: مقادیر ممکن برای پارامترهای کد همینگ.
در این کد، چک بیتها به گونه ای سازمان دهی میشوند که خطا در بیتهای مختلف موجب تولید نتایج مختلف پس از دیکد کردن می شود. به عنوان نمونه الگوریتم تولید کد همینگ (۷،۴) در جدول ۲-۶ نشان داده شده است. در این کد k=4 ، n=7 و m=3 است.
جدول ۲-۶: الگوریتم تولید کد همینگ.
در این جدول مکان هایی که توانی از ۲ هستند (c1، c2 و c4) مربوط به بیتهای توازن است و با توجه به اعداد پر رنگ شده در جدول ۲-۶ از روابط زیر محاسبه میشوند.
منابع تحقیقاتی برای مقاله و پایان نامه : کاهش نرخSEU برای FPGA های مبتنی بر SRAM ...