افزونگی سخت افزاری متداول ترین نوع افزونگی است که با تکرار و تکمیل سخت افزار اضافه تر در سیستم برای پشتیبانی از تحملپذیری خطا انجام می گیرد، به گونه ای که سخت افزارهای اضافه شده همانند یکدیگر هستند و هیچ عملیات اضافه تری را انجام نمی دهند.
مفهوم افزونگی نرمافزاری از افزونگی سخت افزاری اقتباس شده و از برنامه ها، واحد ها،توابع و یا اشیاء اضافه تری برای تحملپذیری خطا استفاده می کند. نقص های سخت افزاری عموما تصادفی بوده و وابسته به سن قطعه و تاثیرهای محیط است. اما نقص های نرمافزاری به طور کلی از خطای در مشخصات و طراحی یا اشتباهات کدنویسی نشاتً می گیرد.
افزونگی اطلاعات عبارت است از استفاده از اطلاعات اضافه در داده و استفاده ازشکل های دیگر داده برای تحمل خطا. اضافه کردن اطلاعات به داده معمولا در تحملپذیری خطای سخت افزاری استفاده می شود. یک نمونه از افزونگی اطلاعات ،کدهای شناسایی و تصحیح خطا میباشد.
در افزونگی زمانی از زمان اضافه تر برای انجام وظایف تحمل خطا استفاده میشود. این نوع افزونگی هم برای تحمل خطاهای نرمافزاری و هم سخت افزاری استفاده می شود و مبتنی بر تکرار یک عمل با همان نرم افزار وسخت افزاری است که در اجرای اولیه دچار نقص شده است مانند عملیات سعی مجدد در اجرای نرم افزار پس از بروز خطا.
چون در پیشنهاد نهایی تمرکز برروی استفاده از افزونگی سختافزاری و نرمافزاری میباشد به اجمال آنها را بررسی میکنیم.
افزونگی سختافزاری
همانطور که گفته شد افزونگی سخت افزاری متداول ترین نوع افزونگی است که با تکرار و تکمیل سخت افزار اضافه تر در سیستم برای پشتیبانی از تحملپذیری خطا انجام می گیرد، به گونه ای که سخت افزارهای اضافه شده همانند یکدیگر هستند و هیچ عملیات اضافه تری را انجام نمی دهند.
میتوان تمامی روشهای افزونگی سختافزاری را که با تکنیکهای مختلف انجام میباشند در درختواره ذیل نشان داد.
شکل ۱۰ درختواره روشهای افزونگی سختافزاری
افزونگی سختافزاری ایستا
این روش مبتنی بر رای گیری[۷۳] میباشد ،بگذارید با یک مثال این روش را توضیح دهیم فرض کنید در یک سیستم به جای آنکه یک پردازنده داشته باشیم، سه پردازنده بگذاریم که همه آنها یک کار را انجام می دهند. حال نتیجه این سه پردازنده را به یک رای دهنده می دهیم. رای دهنده نتیجه هر سه را نگاه می کند و راى اکثریت را به عنوان خروجى تولید می کند. در نتیجه اگر یکی از این سه پردازنده خراب شده باشد، نتیجه آن در خروجى سیستم تاثیری نمی گذارد. شکل ذیل نمای کلی از روش فوق را نشان میدهد.
شکل ۱۱ افزونگی سختافزاری ایستا با سه ماژول TMR
در واقع روش غیرفعال (ایستا) مدلی است که در آن تمامی ماژول ها از ابتدا استفاده می شود و در حین کار و یا بروز خرابی هیچ نوع تغییری در ترکیب بندی آنها ایجاد نمی شود. در این روش جلوى خرابی سیستم بصورت بیدرنگ گرفته می شود، زیرا نیاز به پیکربندی مجدد پس از بروز خرابی (که موجب تاخیر در کارکرد سیستم می شود) ندارد.
بطور کلی افزونگی غیرفعال گونه های زیادی ندارد. اصلی ترین گونه این افزونگی NMR [۷۴] است که در آن از یک ماژول، N تا کپی یکسان وجود دارد که همه پردازش یکسانی را روی ورودی سیستم انجام می دهند و نتایج آنها به یک رای دهنده اکثریت می رود. اگر حداقل M تا از آنها در حال کار درست باشند، رای دهنده نتیجه درست را تولید خواهد کرد. معمولا M برابر N/2+1 انتخاب می شود، اما برای بالا بردن درجه اعتماد به خروجی رای دهنده می توان مقدار M را بیشتر نیز در نظر گرفت. یکی از حالت های خاص NMR که بسیار زیاد استفاده می شود، [۷۵]TMR است. در این حالت باید حداقل ۲ ماژول از ۳ ماژول موجود در حال کار درست باشند تا سیستم درست کار کند. مثال بالا که در آن سه پردازنده وجود داشت یک TMR است.
به راحتی می توان قابلیت اطمینان یک سیستم TMR را محاسبه کرد. اگر قابلیت اطمینان هر ماژول را R فرض کنیم، یک سیستم TMR زمانی درست کار می کند که یا هر سه ماژول درست کار کنند و یا فقط یکی از ماژولها نادرست کار کند و دو ماژول دیگر درست کار کنند.
احتمال حالت اول برابر است با : RxRxR=R3
احتمال حالت دوم برابر است با : ۳*[R2 *(۱-R)]
قابلیت اطمینان سیستم جمع احتمال دو حالت فوق است:
RTMR=(3R2-2R3 )*Rv
که با توجه به اینکه رای دهنده در اینجا خود تبدیل به یک نقطه شکست میشود برای حل این مشکل باز از افزونگی برای رای دهنده استفاده میشود که به آن TMR with Triplicate Voters گفته میشود که شکل آن بصورت ذیل میباشد.
شکل ۱۲ TMR with Triplicate Voters
نکته قابل توجه در افزونگی هایکه از ماژول رای دهنده استفاده میکنند این است که با توجه به وجود رای دهنده های سختافزاری و نرمافزاری معیارهایی همچون در دسترس بودن فرایند اجرا،سرعت تصمیمگیری رای دهنده،محدودیتهایی همچون وزن،فضا و مصرف انرژی و در نهایت انعطاف مورد انتظار از رای دهنده میتواند نقش بسزایی در تصمیمگیری برای انتخاب نوع سختافزاری یا نرمافزاری رای دهنده داشته باشد. البته باید به این ویژگی رای دهنده سختافزاری که از سرعت بالا و هزینه بالایی نسبت به رای دهنده نرمافزاری برخوردار هستند نیز توجه کرد.
ما در انتهای بحث نشان خواهیم داد که با بهره گرفتن از ماژول افزونه پیشنهادی و افزودن بخشی دیگر به آن قابل تبدیل به یک رای دهنده نرمافزاری خواهد شد.
افزونگی سختافزاری فعال
در این روش غیر از ماژول اصلی که در حال کار است، تعدادی ماژول هم وجود دارند که اصطلاحا به آنها پشتیبان [۷۶] گفته می شود. این ماژول ها نقش یدک را بازی می کنند. یعنی اگر یکی از ماژول های اصلی خراب شود، یک ماژول پشتیبان جای آن را می گیرد. ماژول های پشتیبان در حالت عادی (عاری از خرابی) در کار سیستم تاثیری ندارند.
یک ماژول پشتیبان می تواند به یکی از سه حالت زیر وجود داشته باشد:
۱٫داغ[۷۷] : در این حالت ماژول پشتیبان بطور دائمی در حال کار است (همیشه روشن است) و برای سیستمهای استفاده میشود که نیاز به کمترین زمان پیکربندی[۷۸] مجدد دارند.
۲٫گرم [۷۹] : در این حالت ماژول پشتیبان هر از چند گاهی اطلاعات خود را از طریق ماژول اصلی بروز می کند.
۳٫سرد[۸۰] : در این حالت ماژول پشتیبان (در حالت عاری از خرابی سیستم) همواره خاموش است و زمانى که نیاز باشد (بروز خرابی در ماژول اصلی) روشن می شود و بیشتر برای حالتی که مصرف انرژی اهمیت دارد استفاده میشود.
معمولا در روش فعال ماژول اصلی شامل یک قسمت اضافی به نام کشف کننده اشتباه[۸۱] است که تشخیص میدهد آیا ماژول اصلی خراب شده است یا نه و در صورتی که خرابی را تشخیص دهد، یکی از پشتیبان ها جانشین آن خواهد شد. اگر قسمت E.D وجود نداشته باشد. معمولا خروجی دو تا از ماژول ها با هم مقایسه می شود و اگر نتایج آنها متفاوت باشد، یا یک پشتیبان جایگزین یکی از آنها می شود یا اینکه هر دو از مدار خارج می شوند و یک پیام خود تشخیصی به آنها وارد می شود. در ادامه تکنیکهای متفاوت افزونگی سختافزاری فعال به همراه شرحی کوتاه از هر کدام می آید.
تکنیک Duplication with Comparison
در این ساختار دو ماژول یکسان عملیات یکسانی را به صورت موازی روی یک ورودی انجام می دهند و خروجی آن را محاسبه می کنندودر صورت عدم یکسانی سیگنال خطا صادر میشود.
عیب این روش این است که خطا را تشخیص می دهد ولی شناسایی محل وقوع خطا را انجام نمیدهد . خود این روش دارای نقطه شکست خطا [۸۲] است . چون اگر ورودی یا مقایسه کننده دچار مشکل شود سیستم نیز دچار مشکل می شود.
شکل ۱۳ افزونگی سختافزاری فعال(Duplication with Comparison)
تکنینک Standby Sparing
در این ساختار هرماژولی که فعال است خروجی می دهد. نتیجه حاصل از هرماژول و مدار شناسایی خطا مقایسه می شوند در صورت شناسایی خطا ، ماژول مفروض از مدار خارج و به ماژول دیگر سوئیچ می شود.. واضح است که در این حالت زمانی برای سوئیچینگ و مقدار دهی اولیه تلف می شود.
در این روش وضعیت یدکها با توجه به شرایط سیستم مورد استفاده میتواند سرد،داغ و گرم باشد.
شکل ۱۴ Standby Sparing
همچنین در ادامه خواهیم دید در تکنیک Standby Spairing که یک ماژول شناسایی خطا نقش تشخیص سالم یا ناسالمی یک مازول را میدهد میتواند در سیستمهای هوشمند کسبوکار و در زمان ساخت انبار داده با بهره گرفتن از روش پیشنهادی بعنوان یک تشخیص دهنده خطا استفاده نمود.همین امر در تکنیک بعدی Pair and a Spare قابلاستفاده خواهد بود.
تکنیک Pair-and-a-Spare
این روش هم مانند روش قبل است ولی سوئیچ به جای این که هر بار یکی را به خروجی وصل کند ۲ تا را به خروجی وصل می کند. بنابراین سوئیچ ، n × ۲ است. پس خروجی دو ماژول را با هم مقایسه می کنیم اگر یکسان بودند که درست است در غیر این صورت هر دو خروجی را کنار می گذارد به جای آن ها دو ماژول سالم را جایگزین می کند
شکل ۱۵ Pair-and-a-Spare Technique
Watchdog Timers
روشی است برای آشکار سازی عیوب سیستم یعنی شناسایی خطا و ایده ی اساسی آن این است که عدم انجام یک کار نشان دهنده ی وقوع یک خطا در سیستم است.
افزونگی سختافزاری ترکیبی
پژوهش های کارشناسی ارشد درباره ارائه یک مدل بهینه تشخیص خطا در فرایند ETL- فایل ...