روشی برای بهبود تشخیص نرم‌افزاری خطاهای کنترلیِ مبتنی بر خطا‌های گذرا در پردازنده‌ها حین اجرای برنامه‌ها

نوع مقاله : مقاله پژوهشی فارسی

نویسندگان

گروه کامپیوتر، دانشکده مهندسی برق و کامپیوتر، دانشگاه صنعتی نوشیروانی بابل، بابل، ایران.

چکیده

سیستم‌های پردازشی در کاربردهایی مانند ماهواره‌ها، فضاپیماها و رآکتورهای هسته‌ای به علت وجود انواع اشعه، بسیار مستعد تولید خروجی‌های نادرست هستند. در این کاربردها استفاده از تجهیزات الکترونیکی مقاوم هزینه زیادی را تحمیل می‌کند. یک راه برای کاهش هزینه، استفاده از نرم‌افزارهای مقاوم یا بهبودیافته بر روی تجهیزات رایج مانند پردازنده‌های عام است. در این مقاله، روشی جدید برای بهبود اجرای انواع کدها بر روی پردازنده‌ها به منظور تشخیص خطاهای گذرا که در بستر سخت‌افزاری رخ می‌دهد، ارائه می‌گردد. این روش جزء روش‌هایی است که با شناسایی خطاهای کنترلی یا همان تغییر در روند اجرای کد برنامه، خطاهای گذرا را تشخیص می‌دهند. روش پیشنهادی مبتنی بر تخصیص امضاها و استفاده از متغیرهای محاسبه شونده حین اجرا بوده و با افزودن دو امضا و حداکثر سه دستورالعمل کنترلی به هر بلوک پایه بسیاری از خطاهای کنترلی را تشخیص می‌دهد. نتایج شبیه‌سازی و پیاده‌سازی روش پیشنهادی به همراه روش‌های پیشین نشان می‌دهد که روش پیشنهادی با توجه به سه پارامتر میزان پوشش خطا، سربار کارایی و سربار حافظه، بهتر از روش‌های قبلی شناسایی خطاهای کنترلی را انجام می‌دهد.

کلیدواژه‌ها


[1]     P. Shirvani, N. Saxena, and E. McCluskey, “Software-implemented EDAC protection against SEUs”, IEEE Trans. on Reliability, vol. 49, no. 3, pp. 273–284, 2000.
[2]     A. Shrivastava, A. Rhisheekesan, R. Jeyapaul, and C.-J. Wu, “Quantitative Analysis of Control Flow Checking Mechanisms for Soft Errors”, 51th ACM/EDAC/IEEE Design Automation Conf. (DAC), pp. 1–6, 2014.
[3]     D. Zhu and H. Aydin, “Reliability Effects of Process and Thread Redundancy on Chip Multiprocessors”, Proc. 36th Annu. IEEE/IFIP Int. Conf. Dependable Systems and Networks, pp. 212–213, 2006.
[4]      طاهره برومند نژاد، محمد عبداللهی ازگمی، شاهرخ جلیلیان، ”بررسی فنون نرم­افزاری تحمل­پذیری خطای گذرا در نرم­افزار­های ماهواره“، فصل­نامه علمی پژوهشی علوم و فناوری فضایی، جلد 5، شماره 4، ص 9-18، زمستان 1391.
[5]     J.R. Azambuja, F. Kastensmidt, and J. Becker, “Hybrid Fault Tolerance Techniques to Detect Transient Faults in Embedded Processors”, Springer International Publishing Switzerland, 2014.
[6]     M. Duricek and T. Krajcovic, “Hybrid Control-Flow Checking with On-Line Statistics”, 4th Eastern European Regional Conf. on the Engineering of Computer Based Systems, pp. 122–125, 2015.
[7]     S.A. Asghari, A. Abdi, H. Taheri, S. Pourmozaffari, and H. Pedram, “SEDSR: Soft error detection using software redundancy,” Journal of Software Engineering and Applications, vol. 5, pp. 664–670, 2012.
[8]     N. Oh, P.P. Shirvani, and E.J. McCluskey, “Control-Flow Checking by Software Signatures”, IEEE Trans. on Reliability, vol. 51, no. 2, pp. 111–122, March 2002.
[9]     A. Li and B. Hong, “Software implemented transient fault detection in space computer”, Elsevier, Aerospace Science and Technology, vol. 11, no. 2–3, pp. 245–252, 2007.
[10]  Z. Alkhalifa, V.S.S. Nair, N. Krishnamurthy, and J.A. Abraham, “Design and Evaluation of System-Level Checks for On-Line Control Flow Error Detection”, IEEE Trans. on Parallel and Distributed Systems, vol. 10, no. 6, pp. 627–641, June 1999.
[11]  S.A. Asghari, H. Taheri, H. Pedram, and O. Kaynak, “Software-Based Control Flow Checking Against Transient Fault in Industrial Environments”, IEEE Trans. on Industrial Informatics, pp. 481–490, 2014.
[12]  A. Li and B. Hong, “On-line control flow error detection using relationship signatures among basic blocks,” Computers and Electrical Eng., vol. 36, pp. 132–141, 2010.
[13]  Boroomandnezhad, T., Azgomi, M. A., “An efficient control-flow checking technique for the detection of soft-errors in embedded software”, Computers & Electrical Engineering, vol. 39, no. 4, pp. 1320–1332, 2013.
[14]  Jianli, L., Qingping, T., Jianjun, X., “A Software-Implemented Configurable Control Flow Checking Method”, 3rd Int. Symp. on Parallel Architectures, Algorithms and Programming, pp. 199–205, 2010.
[15]  Asghari, S.A., Abdi, A., Taheri, H., Pedram, H., Pourmozaffari, S., “I2BCFC: An Effective Intra-Inter Block Control Flow Checking Method Against Single Event Upsets”, Research Journal of Applied Sciences, Engineering and Technology, vol. 4, no. 21, pp. 4367–4379, 2012.
[16]  L. Terras, Y. Teglia, M. Agoyan, R. Leveugle, “Taking into account indirect jumps or calls in continuous control-flow checking”, 11th Int. Design & Test Symp. (IDT), pp. 125–130, 2016.
[17]  L. Liu, L. Ci, W. Liu, C. Bin, “Control-Flow Checking Using Branch Sequence Signatures”, IEEE Int. Conf. on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData), pp. 839–845, 2016.
[18]  Z., Zhu, J. Callenes-Sloan, “Towards Low Overhead Control Flow Checking Using Regular Structured Control”, 20th Design Automation and Test in Europe Conf. and Exhibition (DATE), pp. 826–829, 2016.
[19]  J. Vankeirsbilck, N. Penneman, H. Hallez, J. Boydens, “Random Additive Signature Monitoring for Control Flow Error Detection”, IEEE Trans. on Reliasbility, vol. 66, no. 4, Dec. 2017.
[20]  S. Das, W. Zhang, Y. Liu, “A Fine-Grained Control Flow Integrity Approach Against Runtime Memory Attacks for Embedded Systems”, IEEE Trans. on VLSI Systems, vol. 24, no. 11, pp. 3193–3207, Nov. 2016.