بخشی از مقاله
*** این فایل شامل تعدادی فرمول می باشد و در سایت قابل نمایش نیست ***
بررسي تحمل پذيري خطا و تکنيک هاي افزونگي سخت افزاري
خلاصه : افزايش قابليت اطمينان عمليات سيستم هاي کامپيوتري بوسيله پياده سازي تحمل پذيري خطا، امکان پذير است . تحمل پذيري خطا در يک سيستم ديجيتالي از طريق افزونگي در سخت افزار، نرم افزار، اطلاعات يا محاسبات بدست مي آيد. اين قبيل افزونگي مي توانـد در پيکربنـدي ايستا، پويا يا ترکيبي پياده سازي شود. افزونگي سخت افزاري بوسيله فراهم کردن دو يا تعداد بيشتري نمونه هـاي فيزيکـي از يـک مولفـه سـخت افزاري بدست مي آيد. به عنوان نمونه ، يک سيستم مي تواند شامل پردازنده ها، حافظه ها يا گذرگاه هاي اضافي باشد.
در اين مقاله به بررسي اهداف طراحي تحمل پذيري خطـا، کاربردهـاي آن خـواهيم پرداخت . همچنين انواع تکنيک هاي افزونگي سخت افزاري را بررسي کرده و آنها را از نظر کارايي و مشکلاتشان مقايسه خواهيم کرد.
کلمات کليدي: تحمل پذيري خطا، افزونگي سخت افزار، معماري TMR، قابليت اطمينان، قابليت دسترس پذيري.
١- مقدمه
ص سيستمي به عنوان تحمل پذير خطا در نظـر گرفتـه مـي شـود کـه نت توانايي اجراي عملکرد درست تحت شرايط رخداد نقص ١ در سـخت ٢ افزار با رخداد نقص در نرم افزار را داشته باشد[١] . ش سيستم هاي ديجيتالي وظايف بحراني ٢ تري را بر عهده دارنـد بنـابر س
اين نيازمند قابليت اطمينان بالايي مي باشـند. غالبـاً بـه کـارگيري مولفه ها و تکنيک هاي طراحي با کيفيت بالا به اندازه کافي و قابـل قبول احتمال شکست ٣را کاهش نمي دهند و ايـن بـه معنـاي ايـن است که بايد سيستم ها تحمل پذيرخطا باشند[٢].
درادامه تعريفي از شکست ، نقص و خطا ارائه خواهيم کرد. همچنين اي در رابطه با نقص هاي سخت افزاري و انواع آن، تحمل پذيري خطا اهداف طراحي تحمل پذيري خطا، کاربردهاي تحمل پذيري خطا اجزاي استراتژي هاي تحمل پذيري خطا، رابطه با تحمل پذيري خطا و افزونگي ، افزونگي سخت افزاري و انواع تکنيک هاي آن
حبت خواهيم کرد. و در نهايت از مطالب ارائه شده در اين مقاله نتيجه گيري خواهيم کرد.
- شکست ها، نقص ها و خطاها
4
کست ، نقص و خطا معاني متفاوتي دارند. در ادامه به توصيف ايـن ه واژه خواهيم پرداخت .
کست : شکست نشان دهنده عدم توانايي يـک جـزء بـراي انجـام ملکردي که به آن تخصيص داده شده است ، مي باشد[٢].
طا: يک خطا، نشانه اي از يک نقص در سيستم مـي باشـد کـه در ن حالت وضعيت منطقي يک عمل با مقدار مورد انتظـار، متفـاوت. الزاماً يک نقص در يک سيستم يک خطا را نتيجه نمـي دهـد.
خطا تنها هنگامي اتفاق مـي افتـد کـه يـک نقـص حسـاس در يستم اتفاق بيافتد. به عبارت ديگر براي يک وضعيت خاص از يک سيستم که ورودي، خروجـي و وضـعيت بعـدي غيرصـحيح نتيجـه ود[٢].
نقص : يک نقص ، يک حالت فيزيکي غيرعادي اسـت کـه بـه دليـل طاي طراحي از قبيل اشـتباهاتي در مشخصـات يـا پيـاده سـازي سيستم و يا مشکلات صنعتي بوجود مي آيد. مدلسازي و محافظـت در مقابل نقص هايي که از خطاهـاي طراحـي و فاکتورهـاي داخلـي نتيجه مي شوند، سخت و دشوار است به دليـل اينکـه پـيش بينـي اثرات و رخداد آنها، مشکل است [٢].
٣- ويژگي هاي نقص
يک نقص مي تواند بوسيله طول مدت ، طبيعـت و وسـعت و انـدازه اش، طبقه بندي شود. طول مدت يک نقص مي تواند گذرا١، متناوب يا ثابت باشد. يک نقص گذرا، اغلب نتيجه آشوب هاي داخلي است و براي يک مدت محدود وجود خواهد داشـت و غيربرگشـت اسـت .
نقص هاي ثابت يا سـخت ، وضـعيت هـاي دسـتگاه هسـتند کـه بـا گذشت زمان تصحيح نمي شوند. اين نوع خطاهـا از شکسـت مولفـه ها، خراب شدن فيزيکي مولفه ها يا خطاهـاي طراحـي نتيجـه مـي شوند. يک سيستم با يک نقص متناوب، بين عملکرد بانقص و بدون نقص نوسان مي کند[١].
طبيعت يک نقص بوسيله رفتارش در يک سيستم ، تعيين مي شـود. يک نقص منطقي خطاهايي را توليد مي کند که مي تواند به صورت مقادير منطقي نمايش داده شود، در حاليکه خطاهـايي کـه از نقـص هاي غيرمعين نتيجه مي شوند معادل منطقي ندارند.
اندازه و وسعت يک نقص بوسيله نواحي که تحت تاثير آن نقص قرار گرفته اند تعيين مي شود. نقص هاي محلي روي مولفه هاي منفـرد تاثير مي گذارند و نقص هاي سراسري روي چندين مولفه تاثير مـي گذارند. به دليل محدوديت هزينه ، بسياري از استراتژي هاي تحمـل پذيري خطا و تست دسـتگاه، صـرفا جوابگـوي نقـص هـاي منفـرد هستند. نقص هاي چندگانه نيازمند مدل هاي نقص گران قيمت تـر و روش هاي سراسري براي تحمل پذيري خطا مي باشند[٢].
٤- نقص هاي سخت افزاري
نقص هاي سخت افزاري با درنظر گرفتن مدت زمان نقص ، به نقـص هاي ثابت ، گذرا و متناوب، طبقه بندي مي شوند[٣ ، ٥].
نقص هاي ثابت : يک نقص ثابت تا زمانيکـه يـک فعاليـت تصـحيح انجام نشود، به صورت فعال باقي مـي مانـد. ايـن نقـص هـا معمـولاً بوسيله برخي از نقص هاي فيزيکي در سخت افزار، سبب مي شـوند.
نقص هاي ثابت مـي تواننـد بوسـيله روش هـاي تسـت آنلايـن کـه همزمان با عملکرد نرمال سيستم کار مي کنند، کشف شـوند[٣ ، .[5
نقص هاي گذرا: يک نقص گذرا براي يک مدت کوتاه ، فعـال بـاقي مي ماند. يک نقص گذرا که متناوباً فعال مـي شـود، نقـص متنـاوب ناميده مي شود. به دليل مدت کوتاه آنها، نقص هاي گـذرا اغلـب از طريق خطاهايي که از انتشار آنها نتيجه مي شود، کشف مـي شـوند. نقص هاي گذرا، غالباً soft fault يا glitches هم ناميده مي شوند.[٣
٥- تعريف تحمل پذيري خطا
تحمل پذيري خطا توانايي يک سيستم در ادامه انجام عمليات مورد نظرش با وجود نقص ها مي باشد. تحمـل پـذيري خطـا، بـا قابليـت اطمينــان، عملکــرد موفقيــت آميــز و عــدم حضــور فروريختگــي و شکستگي ، مرتبط است . يک سيستم تحمل پذيرخطا بايـد قـادر بـه مديريت نقص ها در مولفه هاي سخت افزاري يا نرم افزاري، قطعـي برق، يا انواع ديگر خرابي هاي غيرقابل انتظار باشد
مشکل اصلي اين است که به همان اندازه که پيچيدگي يک سيستم افزايش پيدا مي کند، قابليت اطمينان آن پايين تـر مـي آي د، مگـر اينکه معيارهاي تصحيح کننده در نظر گرفته شـده باشـند. مشـکل ديگر اين است که ، اگر چه طراحان تمام تلاش خود را مي کننـد تـا سيستم را از خطاهاي نرم افزاري و نقص هاي سخت افزاري قبـل از اينکه سيستم مورد استفاده قرار بگيرد پاک کنند ولي چنين هـدفي دستيافتني نيست زيرا برخي از فاکتورهاي محيطي غيرقابل انتظـار، اجتناب ناپذير هستند و يا برخي از اشتباهات کاربر قابل پيش بيني نمي باشد. بنابراين احتمال اينکه نقص ها تحـت شـرايطي خـارج از کنترل طراحان باشد، در زمـاني کـه يـک سيسـتم بـه طـور کامـل طراحي و پياده سازي شده است وجود دارد[٥].
٦- کاربردهاي تحمل پذيري خطا
تحمل پـذيري خطـا در بسـياري از برنامـه هـاي کـاربردي بحرانـي امنيتي ، تجاري و جاسوسي ضـروري اسـت . برنامـه هـاي کـاربردي بحراني امنيتي ، مانند جايي که بايد از دست دادن زنـدگي يـا خطـر محيطي جلوگيري شود، ماننـد سيسـتم هـاي کنتـرل هواپيمـايي ، مکانيزم هاي درمان پرتو کنترل شده توسط کـامپيوتر، يـا سيسـتم هاي راهنماهاي قلب و رادار نظامي . برنامـه هـاي کـاربردي بحرانـي تجاري آنهايي هستند که يک عمل تجاري را انجام مي دهند ماننـد سيستم بازرگاني تبادل خودکار موجودي و بانکي [١].
٧ هدف طراحي تحمل پذيري خطا
هدف طراحي تحمل پذيري خطا، افـزايش قابليـت اعتمـاد بوسـيله ايجاد شرايطي براي يک سيستم در ادامـه دادن انجـام عمليـات در حال اجرا با وجود تعدادي از نقص هاي وارد شده، مـي باشـد. بايـد توجه داشت که يک سيستم تحمل پذير خطا الزاماً قابليت اطمينان بالايي را تامين نمي کند و يا اينکه قابليت اطمينان بالا الزاماً تحمل پذيرخطا نيست . يک هدف قطعي براي يـک سيسـتم تحمـل پـذير خطا ممکن است اين باشد که هيچ نقص منفردي نمي توانـد سـبب شکست سيستم شود[٢].
٨- اجزاي استراتژي هاي تحمل پذيرخطا
تحمل پذيري خطا در يک سيستم ديجيتالي از طريـق افزونگـي در سخت افزار، نرم افزار، اطلاعات يا محاسبات بدسـت مـي آيـد. ايـن قبيل افزونگي مي تواند در پيکربندي ايستا، پويا يـا ترکيبـي پيـاده سازي شود. يک استراتژي تحمل پذير خطـا شـامل يـک يـا بيشـتر ازموارد زير مي باشد:
Masking : تصحيح پوياي خطاي توليد شده
Detection : کشف يک خطا- يک علامت از يک نقص
Containment : جلوگيري از انتشار خطا در محدوده هـاي تعريـف شده
Diagnosis : تشخيص ماژول نقـص دار کـه مسـئول يـک خطـاي کشف شده است .
Repair.Reconfiguration : حذف يا جايگزين کردن يـک مولفـه ناقص ، يا يک مکانيزم براي ناديده گرفتن آن.
Recovery : تصحيح سيستم به يک وضعيت قابل قبول براي ادامـه دادن به عملياتش .
براي عملکرد فوق العـاده قابـل امـن جـايي کـه هـيچ زمـاني بـراي تشـخيص و تـرميم نقـص off-line در دسـترس نمـي باشـد يـک پيکربندي ايستا يا غيرفعال از اجزاء طراحي شده است تا يک تعـداد ماکزيمم از نقص ها را پنهان کند. از طـرف ديگـر افزونگـي پويـا بـا سوئيچ کردن ماژول ها يا مسيريابي مجدد ارتباطات به هنگام رخداد نقص ، درگير مي باشد. در يک روش ترکيبي يک پيکربنـدي ايسـتا تعدادي از نقص ها را پوشش مي دهد در حاليکه ماژول هاي نـاقص کشف و جايگزين مي شـوند. افزونگـي ترکيبـي بـراي برنامـه هـاي کاربردي با قابليت اطمينان فوق العاده بالا، مطلوب است کـه در آن احتمال بروز چندين نقص زياد باشد[٢].
٩- تحمل پذيري خطا و افزونگي
روش هاي مختلفي براي رسيدن به تحمل پذيري خطا وجـود دارد. معمول ترين اين روش ها وجود مقدار معيني از افزونگي مـي باشـد افزونگي ، پيش بيني توانايي هاي عملياتي مي باشد. دو نوع افزونگي امکان پذير اسـت : افزونگـي فضـا و افزونگـي زمـان .
افزونگي فضا، مولفه ها، توابع يا اقلام داده اضـافي را کـه بـراي يـک عملکرد بدون نقص مورد نياز نيست را فراهم مي کند افزونگي فضـا نيز خود به افزونگي سخت افزار، نرم افزار و اطلاعـات طبقـه بنـدي شده است که بستگي به نوع منابع افزونه اضـافه شـده بـه سيسـتم دارد. در افزونگي زمان، محاسبات يا انتقـال داده تکـرار مـي شـود و نتيجه با نتيجه کپي قبلي ذخيره شده، مقايسه مي شود[١].
١٠- افزونگي سخت افزاري
افزونگي سخت افزاري بوسيله ايجاد دو يا تعداد بيشتري نمونه هـاي فيزيکي از يک مولفه سخت افزاري بدست مي آيد. به عنوان نمونـه ، يک سيستم مي تواند شـامل پردازنـده هـاي اضـافي ، حافظـه هـاي اضافي ، گذرگاه ها يا توان اضافي باشد. افزونگي سخت افـزاري غالبـاً تنها روش دردسترس براي بهبود قابليت اعتمـاد يـک سيسـتم مـي باشد، براي اينکه تکنيک هاي ديگر، از قبيل استفاده از مولفه هـاي بهتر،کنار گذاشته شده يا نسبت به افزونگـي ، هزينـه بيشـتري نيـاز دارند[٥].
سه نـوع از افزونگـي سـخت افـزاري وجـود دارد: غيرفعـال، فعـال و ترکيبي ١. افزونگي غيرفعال به عنوان پنهان کردن نقـص عمـل مـي کند در حاليکه افزونگي فعال براي کشف و ترميم نقـص عمـل مـي کند. که در ادامه به توصيف آنها خواهيم پرداخت [٤].
١١- افزونگي غيرفعال
افزونگي غيرفعال، پنهان سازي نقص را روي راي گيري پايـه انجـام مي دهد. روش افزونگي غيرفعال، به جاي اينکه نقـص هـا را کشـف کند، آنها را پوشـش مـي دهـد و پنهـان مـي کنـد. پنهـان سـازي، اطمينان مي دهد که علي رغم وجود يک نقص تنها مقـادير صـحيح به خروجي سيستم فرستاده مي شوند[٥].
يک مزيت افزونگي غيرفعال اين است که عمليات پيوسـته تضـمين مي شود، چون هر نقصي در ماژول هاي افزونه بلافاصـله خـودش را نشان مي دهد مگر اينکه تعداد ماژول هاي ناقص بيش از تحمل راي گير باشد[٤].
در ادامه به توصيف برخي از تکنيک هاي افزونگي غير فعال خواهيم پرداخت .
الف - تکنيک TMR
يک ساختار TMR يک معماري تحمل پذير خطا است که بر اساس سه ماژول يکسان که دقيقا عمل يکساني را انجـام مـي دهنـد، مـي باشد. ورودي هاي آنها داده هاي يکسـاني را کـه کـاملاً بـه يکـديگر کاملا نزديک هستند را دريافت مي کنند و خروجي هـاي آنهـا يـک مدار راي گير اکثريت (v) را تغذيه مي کنند[١].
در نتيجه معماري TMR ميزان احتمال خطـا را در خروجـي هـاي اوليه سيستم کاهش مي دهد. يک ماژول ناقص يـک مقـدار غلـط و اشتباه را منتشر مي کند که مي تواند بواسطه وجود دو ماژول بدون خطاي ديگر پوشيده و پنهان شود. در ساده ترين ساختار از TMR ، راي گير يک نقطه ضعف است . اگر يک مشـکل در راي گيـر ظـاهر شود آن گاه ساختار TMR ممکـن اسـت دچـار نقـص شـود. بـراي جلوگيري از اين نوع مشکل ، راي گير مي تواند توسط نـرم افـزار يـا تکنيک هاي طراحي قوي تري تشخيص داده شود. [٣].
معمول ترين فرم افزونگي سخت افزاري غيرفعال، TMR مي باشـ . پيکربندي پايه آن در شکل ١ نشان داده شده است [٥].
مولفه ها سه تايي شده اند تا محاسبات يکسان را به صـورت مـوازي انجام دهند. راي گير براي تعيين نتيجه صحيح ، استفاده شده است .
اگر يکي از ماژول ها شکست بخورد، راي گيراکثريت بوسـيله نتـايج
دو ماژول بدون خطاي ديگر، نقص را پنهان خواهد کرد.
شکل (١) : افزونگي ماژول سه تايي
سيستم TMR مي توانـد فقـط يـک نقـص مـاژول را پنهـان کنـد.شکست در ماژول هاي باقي مانده ديگر سبب خواهـد شـد کـه راي گير نتيجه اشتباه را توليد کند. يک سيستم TMR تا زماني کـه دو ماژول ديگر به درستي عمـل مـي کننـد، مـي توانـد درسـت عمـل کند[٥]. فرض کنيد که راي گير کامل است ، و اينکه شکست هـاي مولفه متقابلا مستقل است ، قابليـت اطمينـان يـک سيسـتم TMR بوسيله فرمول (١) محاسبه مي شود:
عبارت R1R2R3 احتمال اين را که هر سه مـاژول بدرسـتي عمـل کنند و عبارتR2R3(R1-1) احتمال اين که اولين ماژول شکسـت بخورد و ماژول دوم و سوم بدرستي عمـل کننـد و عبـارت -1)R1
R3(R2 احتمال اينکه ماژول اول و سوم بدرستي کار کنند و ماژول دوم شکست خورده باشد و عبـارت (R٣-١)RR١٢ احتمـال اينکـه ماژول هاي اول و دوم بدرستي کـار کننـد و مـاژول سـوم شکسـت خورده باشد را نشان مي دهد.
يک تخمين دقيق براي قابليـت اطمينـان يـک سيسـتم TMR بـه طوريکه ، قابليت اطمينان راي گير نيز در نظر گرفته شود به صـورت فرمول (٢) است :