?

基于Simics的系統級故障注入平臺

2015-01-06 08:20王海霞汪東升
計算機工程 2015年2期
關鍵詞:故障注入間歇寄存器

胡 倩,王 超,王海霞,汪東升

(清華大學信息科學與技術國家實驗室,北京100084)

基于Simics的系統級故障注入平臺

胡 倩,王 超,王海霞,汪東升

(清華大學信息科學與技術國家實驗室,北京100084)

故障注入技術是評價系統可靠性的有效方法?,F有基于仿真的故障注入平臺大多基于現場可編程門陣列或超高速集成電路硬件描述語言實現,對故障模型的支持非常有限。為此,基于Simics結構級模擬器,設計并實現系統級硬件故障注入平臺。該平臺上層支持不同固件、操作系統以及應用程序,底層支持對處理器典型流水部件的故障注入,同時實現瞬時故障、永久故障和間歇故障模型以及其他較全面的故障類型,并將一組系統級故障檢測機制集成入平臺中。實驗通過監測硬件故障在系統級的傳播,對比分析了故障對不同部件造成的系統級影響,結果表明,瞬時故障對系統影響較小,永久故障容易引起系統失效,間歇故障對各部件有不同程度的干擾作用。

故障注入;系統可靠性;故障模型;故障檢測;結構級模擬器

1 概述

隨著集成電路工藝的提高和處理器技術在多核領域的發展,處理器性能有了很大提高。與此同時,硬件故障不斷增加,計算機系統的可靠性受到嚴峻挑戰。特別是在航空、航天等領域,系統可靠性成為第一要素。系統可靠性的評價是一個非常關鍵的技術環節。常見方法如測量、解析模型,都不能很好地解決評估可靠性的問題。理想方法是將系統置于實際環境中進行測試,但通常會受到場景、可測性、可監視性等因素限制。而故障注入類方法靈活有效,具有高可控性和可測性,是非常有效的可靠性評估手段。

故障注入由IBM實驗室于20世紀70年代提出[1],經過不斷的研究和應用逐漸走向成熟。通過加速系統中故障的產生來觀察和驗證故障對系統的影響,進而指導容錯系統的設計。目前已經有許多成熟的故障注入技術,已被廣泛應用到工業領域。本文基于Simics模擬器,設計并實現系統級故障注入平臺。在大量實驗的基礎上,總結故障在系統中的行為表現,分析不同類型的故障對系統造成的影響。

2 故障注入技術研究現狀

為研究實際場景中的故障,首先必須建立理論模型。故障模型包括瞬時故障、永久故障和間歇故障。瞬時故障是由電磁干擾、粒子輻射等原因引起的短暫功能失效,并且是一次有效性[2]。永久故障通常是硬件的永久性損傷引起的,故障一直持續到部件被替換或者隔離。間歇故障是由硬件不穩定引起的多次重復爆發的瞬時故障,但爆發時間不具有周期性。由于間歇故障爆發的不確定性,其時間模型支持均勻分布、指數分布和Weibull分布。故障類型具體可以分為單比特翻轉、多比特翻轉、恒0或恒1、橋接以及延遲等。

目前,國內外有許多有關故障注入工具的研究。根據實現方法,故障注入可以分為3類[3]:基于硬件實現的故障注入,基于軟件實現的故障注入和基于仿真的故障注入。

2.1 基于硬件實現的故障注入

基于硬件實現的故障注入是指直接將故障引入到硬件電路中,一般要修改硬件邏輯來實現。硬件故障注入技術可以將故障注入到系統任意位置,比較精確,但由于是硬件實現的原因,不容易控制,缺乏靈活性,而且容易因為額外硬件損壞系統。

代表性的系統包括AFIT[4],通過硬件實現的管腳級故障注入平臺,支持多種故障模型,故障部件、時間均可控;MESSALINE[5],由法國圖盧茲LAASCNRS大學開發的管腳級故障注入工具,支持stuckat、斷路、橋接等復雜模型;RIFLE[6],故障從處理器管腳注入,支持不同特性故障,適用范圍廣,故障注入可重現,并且可以檢測成功與否;FIST[7],實現接觸式和非接觸式故障注入,直接將故障注入到芯片中,主要支持瞬時故障模型;MARS[8],由奧地利維也納大學開發,非接觸式故障注入,分布式容錯系統,采用多個fail-silent節點結成,具有硬件和軟件冗余能力。

2.2 基于軟件實現的故障注入

軟件實現的故障注入是指在編譯或者運行時修改程序或者現場某些值來引入故障。軟件故障注入的方法比較靈活、易于控制、成本較低,也可以用于應用程序和操作系統,但不能將故障注入到軟件訪問不到的位置,同時軟件故障注入的精度只能達到指令級。

比較有代表性的系統包括:Ftap[9],由美國UIUC開發的軟件故障注入平臺,支持故障注入部件包括寄存器、內存和磁盤,故障類型包括位翻轉、置位或者復位,其中磁盤故障是由驅動程序實現的因此沒有額外開銷;FERRARI[10],由德克薩奧斯丁分校開發,通過計數器或計時器觸發軟件陷阱,由陷阱處理程序注入故障,支持部件包括CPU、內存和總線,故障類型有瞬時故障和永久故障;DOCTOR[11],由美國Michigan大學開發,相比于僅修改內存的故障注入辦法,它使用復雜機制(內存重寫、軟件陷阱和編譯時修改)模擬對CPU、內存和網絡通信的故障注入;XCEPTION[12],利用處理器提供的調試功能進行故障注入,故障注入功能由中斷處理程序完成,中斷由訪問特殊地址觸發,系統不需要對應用程序作任何修改。

2.3 基于仿真實現的故障注入

基于仿真的故障注入主要是通過修改仿真器來達到故障注入的效果。由于仿真器的高度可控,仿真實現的故障注入更加靈活、易于控制、模擬精度較高。

比較有代表性的工作包括FuSE[13],基于FPGA的可靠性評估平臺,仿真速度較快;VFIT[14],基于VHDL的故障注入平臺,支持瞬時、間歇和永久故障,故障時間支持多種分布函數;INJECT[15],基于Verilog模型的故障注入平臺,支持開關級、門級、RTL級和結構級故障模型;VERIFY[16],擴展了VHDL語言,允許最大化的利用硬件故障知識,使用了多線程故障注入來加速仿真過程;HEARTLESS[17], C++開發的針對瞬時故障和永久故障的模擬器,故障類型有stuck-at、翻轉和延遲,支持以結構化VHDL和ISCAS作為輸入。文獻[18]提供了一種ISA級別的故障注入思路,使用Bus Resolution Function來破壞信號賦值,提升仿真性能,但僅限于處理器故障注入。

基于硬件或者軟件實現的故障注入,或者在使用上容易干擾原系統,或者不能很好地從系統層模擬故障場景?;诜抡娴墓收献⑷肫脚_多數由VHDL或FPGA實現。在多核場景下,由于內核增多以及片上網絡的影響,故障發生場景更加復雜。本文基于體系結構研究中廣泛使用的Simics模擬器,實現了一個結構級多核故障注入系統,支持瞬時故障、永久故障和間歇故障的模擬,并實現了單比特翻轉、stuck-at-0/1、橋接及延遲等多種故障類型,為后續故障診斷、故障恢復研究建立基礎。

3 基于Simics的故障注入平臺

3.1 Simics系統

Simics是一款高性能的系統級模擬器,支持模擬計算機系統各個部件。Simics模擬的最小粒度是指令,其高效性體現在模擬指令的同時,還具有較高的性能。Simics可以模擬整個目標機器,包括多核系統、存儲系統、網絡等。

在計算機體系結構研究中,可以很方便地模擬系統中的某個部件并觀察和統計系統內部狀態。此外,Simics可以跨平臺運行,并且支持模擬多個平臺。正因為這些特點,Simics廣泛用于系統研究中。

Simics提供了一整套開放的API實現用戶對系統狀態的訪問,同時,用戶可以添加自己的功能模塊,實現特定需求。通過這些API,用戶不僅可以訪問到系統運行時的各個內部狀態,還可以對系統部件、結構和功能等進行修改。

3.2 平臺設計

3.2.1 故障注入系統

圖1是給出多核處理器中單個核的流水線結構。故障注入系統中支持的流水線部件有譯碼單元、地址生成單元、算術邏輯單元(Arithmetic Logical Unit,ALU)和寄存器堆。由于Simics對部件的模擬粒度的限制,系統采用功能上的近似來模擬4種部件。除了寄存器堆是直接注入到對應寄存器中外,其他均有不同程度的近似(見圖1中灰色部件)。地址生成單元故障是通過注入到PC寄存器實現,而譯碼單元是通過指令寄存器實現,類似地,ALU故障注入也是通過其結果寄存器實現。

圖1 故障注入系統

系統硬件平臺是由Simics仿真出來的,在底層添加了故障注入單元和故障檢測單元。故障注入單元定義了故障模型和故障參數,并注入到相應部件中。故障檢測單元負責收集操作系統癥狀,并檢測系統是否遇到異常。為控制系統運行,在Simics外還添加了控制單元和分析單元。仿真平臺也可以支持不同的操作系統。最上層是應用程序層,用來測試不同應用場景,觀察故障注入后效果。

3.2.2 控制單元

控制單元負責整個實驗系統的執行,根據給定的故障模型、部件、類型,配置系統運行一定次數的實驗。實驗完成后,實驗數據的分析也由控制單元完成。

3.2.3 分析單元

分析單元負責數據分析功能,即根據程序運行結果、監測單元收集到的癥狀信息來分析故障注入的影響。同時,給故障檢測及故障診斷提供信息。

3.2.4 故障注入單元

故障注入單元負責在結構級完成對部件的故障注入。針對流水線中的4個重要部件,即譯碼單元、地址生成單元、ALU和寄存器堆,從功能上模擬了故障發生的情形。譯碼單元關系到指令解碼的正常與否,地址生成單元決定了下一條指令位置,ALU和寄存器堆都是和運算結果相關的部件。

Simics是功能級的模擬器,最小粒度是指令。在執行每條指令前,可以觸發一次自定義事件。在該事件中,可以根據Simics提供的API修改系統數據,進而實現故障注入的功能。

對譯碼單元的故障注入體現在指令寄存器中,每次取指完成后,給指令寄存器注入一個故障,從功能上模擬譯碼出現問題。

對ALU單元的故障體現在其結果寄存器上, ALU完成后,給結果寄存器注入一個故障,功能上模擬了運算過程出錯。

類似地,對地址生成單元的故障則體現在PC寄存器上。寄存器堆的注入工作是通過直接在隨機選擇的通用寄存器中注入故障實現。

對瞬時故障,其持續時間僅為一個時鐘;對永久故障,程序從開始運行到結束過程中一直保持;而對間歇故障,故障爆發次數服從一定的分布規律,且每次爆發持續時間、2次爆發之間相隔時間,支持不同的分布函數。

為模擬故障發生的隨機性,故障注入的起始點是隨機的。此外,無論是單比特還是多比特,故障位也是隨機選擇。故障位的翻轉、stuck-at及橋接均通過位操作實現,延遲類型的實現略微復雜,需要在模擬過程中以歷史變量值有規律地替換當前變量值。

3.2.5 監測單元

監測單元功能主要是收集系統癥狀。為觀測故障注入后的系統狀態,添加了該模塊來實時監測系統各指標。目前,監測指標包括關鍵陷入、掛起和高發活動,這些癥狀信息是反映系統狀態的關鍵指標。SWAT項目[19]利用這些高層級癥狀實現了永久故障的檢測。

關鍵陷入一般是非功能性陷入,在系統遇到除零、非法指令等緊急情況時發生,可以用來作為判斷系統異常的一個條件。在正常情況下,應用程序運行在用戶態,只有在系統調用及中斷處理等情況下才需要運行在特權模式。如果系統持續處于特權模式的指令數超過一定閾值,可以認為系統出現問題,該問題稱為高發活動[20]。掛起[20]是指系統陷入死循環,程序不能結束而且又沒有結果。

與故障注入單元類似,監測單元是通過自定義的時鐘事件來完成系統狀態收集的功能。

陷入信息和系統架構密切相關。例如在Sparc架構下,共有5個陷入寄存器。對于每個時鐘,癥狀收集單元均訪問一次寄存器,并保存陷入信息、地址及指令。Solaris下還有一個關鍵陷入列表,通過比對,可以找到所有的關鍵陷入,檢測系統是否正常運行。

高發活動的檢測是通過統計系統連續處于特權模式或超特權模式的時鐘數來實現。類似地,掛起的檢測需要統計系統在每次跳轉指令處的地址并進行計數。

當系統遇到關鍵陷入、高發活動及掛起時,即認為系統出現異常。此時,系統應該啟動故障診斷、故障恢復等過程。

此外,在系統執行過程中,監測單元還需要收集應用程序執行成功與否,系統是否異常退出等信息。這些數據除了反映故障注入的結果外,還可以用于后續的故障檢測、故障診斷等。

4 故障注入實驗

4.1 實驗環境

本文實驗模擬了Sun Fire 6800機器,單核150 MHz,內存256 MB,Solaris10系統,測試程序是Splash2。由于Splash2是用于性能測試的程序集,在本文實驗中,為了比較程序運行結果,只選擇了其中一部分。針對多個流水部件、不同故障模型及不同故障類型下故障傳播和影響進行實驗研究。

4.2 實驗過程

實驗針對4種部件、3種故障模型及多種故障類型均進行了研究。每種配置進行1000次注入實驗,收集癥狀和程序運行結果。

瞬時故障分別采用單比特翻轉、stuck-at-0/1、橋接及延遲的故障類型,從故障注入點開始收集2×106個時鐘信息,最后運行到程序結束,檢測程序運行結果。

永久故障采用stuck-at-0/1、橋接及延遲的故障類型,從故障注入點開始持續注入2×106個時鐘,最后運行至程序結束,判斷執行結果。

間歇故障的故障類型包括stuck-at-0/1、橋接及延遲,每次注入實驗的爆發次數分別服從均勻分布。每次爆發持續時間和2次爆發之間的時間間隔分別服從均勻分布、指數分布和Weibull分布。故障注入完成后,同樣有一段時間的癥狀收集過程,最后檢測運行結果。

3種故障模型的參數配置見表1,對于間歇故障3種分布函數的參數配置[21]見表2,Splash2測試程序的運行參數見表3。

表1 3種故障模型的參數配置

表2 間歇故障的3種分布函數參數配置

表3 Splash2測試程序及執行參數

4.3 實驗結果

根據實驗統計,故障注入的結果有以下6種: (1)程序執行正常,即故障注入后在執行過程中被系統屏蔽,沒有對程序結果造成影響。(2)程序運行結束,但結果不對。(3)程序陷入死循環或者遇到高發活動。(4)程序因為非法指令、段錯誤等原因導致核丟棄(core dump)。(5)程序因為非法訪問地址空間、地址不對齊、MMU缺失等原因進入調試模式(debugger)。(6)程序進入RED(Recover Error and Debug)STATE模式,導致Simics直接崩潰。

圖2描述了不同部件在不同故障模型下的歸一化實驗結果,對不同故障類型(單比特翻轉、stuck-at-0/1、橋接和延遲)下的結果取了平均值,對于間歇故障的3種分布(均勻分布、指數分布和Weibull分布)、Splash2的不同測試集也作了類似處理。其中, T表示瞬時故障;P表示永久故障;I表示間歇故障。

圖2 故障注入實驗結果

4.3.1 部件分析

譯碼單元對永久故障和間歇故障比較敏感,其中,Simics崩潰、程序進入調試狀態占到80%以上;永久故障和間歇故障下實驗結果正確的比例分別占到14%和9%,相對地,瞬時故障這一比例達到70%。

地址生成單元3種故障注入后的程序結果仍然正確的比例分別為63%,30%和19%。地址生成單元對瞬時故障屏蔽能力較強,永久故障次之,間歇故障最差。

譯碼單元和地址生成單元對瞬時故障都有很好的屏蔽能力,永久故障次之,間歇故障最差。從故障持續時間上看,瞬時故障最短,永久故障最長,間歇故障處于兩者之間。但這2個部件對間歇故障是最敏感的,主要體現為間歇故障導致系統進入調試模式,最終程序均以失敗結束。

ALU單元對瞬時故障有很好的屏蔽能力,屏蔽比例達到99%;對間歇故障的屏蔽能力稍差,比例降至53%。對永久故障最敏感,屏蔽比例僅為16%。在程序實際執行過程中,ALU指令只占所有指令的一部分。根據統計,測試程序在故障注入點碰到ALU指令的平均比例僅為53.8%,有大量的故障注入因為非ALU指令的原因沒有產生效果,所以,ALU表現出了較好的容錯能力。

寄存器對3種故障注入的屏蔽比例分別為93%,9%和33%。與ALU類似,寄存器對永久故障最敏感,對瞬時故障容忍能力最好,間歇故障則處于兩者之間。這同3種故障持續時間相對應。

從上述部件分析可以發現,所有部件對瞬時故障均有最好的屏蔽能力,對永久故障和間歇故障容忍能力較差。瞬時故障只是暫時性的功能故障,影響局限在一定時間和空間范圍內。永久故障是功能部件永久失效,對系統有致命影響。間歇故障持續時間處于兩者之間,但由于多次重復爆發的特點,仍然對系統功能造成不同程度的損壞。

4.3.2 故障模型分析

從故障模型來看,瞬時故障對系統影響最小。譯碼器和地址生成單元的屏蔽比例不超過70%,而ALU和寄存器的屏蔽比例均超過90%。前者有很大一部分是核丟棄或者系統進入調試狀態。這是因為譯碼器故障容易造成指令解碼異常,地址生成單元容易破壞下一條指令地址,造成非法指令、非法地址訪問、段錯誤、地址不對齊等異常,進而引起核丟棄或者系統進入調試狀態。相對地,ALU和通用寄存器的數據是計算結果,一般不會引起系統資源類異常。此外,Sparc架構有32個通用寄存器,注入故障的寄存器結果容易被其他指令結果所覆蓋,并不會將故障傳播到程序中。

永久故障對系統影響比較嚴重,4種部件均出現了大量的Simics崩潰癥狀,也有部分系統進入調試模式出現。ALU和寄存器還出現了超時運行及程序陷入死循環的狀態。

間歇故障對不同部件表現出不同的影響。與瞬時故障相比,4種部件的屏蔽比例均有較大幅度的下降。譯碼單元和地址生成單元屏蔽比例要低于永久故障,而ALU和寄存器堆屏蔽故障的比例則高于永久故障。從圖2還可以看出,永久故障引起系統崩潰的比例要高于(或不低于)間歇故障,只是間歇故障引起了部分程序進入調試狀態,提高了系統失效的比例。間歇故障的重復性對系統可靠性造成了一定影響,使得系統故障可能性明顯高于瞬時故障。

4.3.3 程序行為分析

從癥狀上分析,程序結果是Error的實驗占很少的比例,大多數結果是程序崩潰、系統進入調試狀態、死循環或者Simics直接崩潰。其中,程序崩潰是由于段錯誤、非法指令等原因造成的,這一部分的比例較低;程序進入調試狀態是由于非法地址訪問、地址不對齊、MMU缺失等異常造成的,當上述故障更嚴重時,則直接演變為Simics崩潰或死循環。從4個部件的效果上可以看出,在瞬時故障時,有部分或較少的調試模式出現;在間歇故障時,譯碼器和地址生成單元出現較多的調試模式,并伴有大量的Simics崩潰癥狀出現;永久故障時,譯碼器和地址生成單元癥狀主要表現為Simics崩潰,ALU和寄存器也出現了較多的Simics崩潰癥狀,同時伴有較多的超時及死循環癥狀出現。

5 結束語

基于系統模擬器設計的故障注入平臺,不僅可以模擬各部件的故障場景,同時也有利于進一步研究容錯系統。本文從Simics模擬器出發,設計并開發一套支持流水線部件、多種故障模型、故障類型及參數的故障注入平臺。從功能上模擬處理器流水線級別的故障情形,并提供故障檢測工具收集系統信息,用于下一步的故障診斷和恢復工作。實驗結果表明,瞬時故障對系統的影響較小,永久故障影響較大,而間歇故障在不同部件上表現出不同效果,對系統也有較嚴重影響。譯碼器、地址生成單元對故障更敏感,較容易造成程序或系統崩潰,ALU和寄存器對故障的屏蔽能力稍強。在發生永久故障時,4種部件均出現大量的失效情形。下一步研究內容包括將故障注入部件擴展到存儲、總線及網絡,搭建一個功能全面的故障注入平臺,并且使故障注入平臺為容錯系統服務進行故障診斷及恢復。

[1] 李 娟.基于故障注入的軟件安全測試技術研究[D].合肥:中國科學技術大學,2009.

[2] Gil D,Gracia J,Baraza J C,et al.A Study of the Effects of Transient Fault Injection into the VHDL Model of a Fault-tolerant Microcomputer System[C]//Proceedings of the 6th IEEE International On-line Testing Workshop. Palma de Mallorca,Spain:IEEE Press,2000:73-79.

[3] Amendola A M,Benso A,Corno F,et al.Fault Behavior Observation on a Microprocessor System Through a VHDLSimulation-basedFaultInjectionExperiment[C]//Proceedings of EuroDAC’96.[S.l.]: ACM Press,1996:536-539.

[4] Martínez J R,Gil P J,Martín G,et al.Experimental Validation of High-speed Fault-tolerant Systems Using PhysicalFaultInjection[C]//Proceedingsof InternationalWorkingConferenceonDependable Computing for Critical Applications.Washington D.C., USA:IEEE Computer Society,1999:233-249.

[5] Arlat J,Crouzet Y,Laprie J C.Fault Injection for Dependability ValidationofFault-tolerantComputer Systems[C]//Proceedingsofthe19thAnnual International Symposium.Los Alamitos,USA:IEEE Press,1989:348-355.

[6] Madeira H,Rela M,Moreira F,et al.RIFLE:A General Purpose Pin-level Fault Injector[C]//Proceedings of the 1stEuropeanDependableComputingConference. Berlin,Germany:Springer-Verlag,1994:199-216.

[7] Gunnetlo O,Karlsson J,Tonn J.Evaluation of Error Detection Schemes Using Fault Injection by Heavy-ion Radiation[C]//Proceedings of the19th International SymposiumonFault-tolerantComputing.Chicago, USA:IEEE Press,1989:340-347.

[8] Karlsson J,Arlat J,Leber G.Application of Three Physical Fault Injection Techniques to the Experimental AssessmentoftheMARSArchitecture[C]// Proceedings of DCCA’95.Los Alamitos,USA:IEEE Press,1995:150-161.

[9] Tsai T K,Iyer R K.An Approach to Benchmarking of Fault-tolerant Commercial Systems[C]//Proceedings of International Symposium on Fault-tolerant Computing. Sendai,Japan:IEEE Press,1996:314-323.

[10] Kanawati G A,KanawatiNA,AbrahamJA. FERRARI:AToolfortheValidationofSystem Dependability Properties[C]//Proceedings of the 22nd AnnualInternationalSymposiumFault-tolerant Computing.Los Alamitos,USA:IEEE Press,1992: 336-344.

[11] Han S,Rosenberg H,Shin K.DOCTOR:An Integrated Software Fault Injection Environment[R].University of Michigan,Technical Report:CSE-TR-192-93,1993.

[12] Carreira J,Madeira H,Silva J.Xception:A Technique for the Experimental Evaluation of Dependability in Modern Computers[J].IEEE Transactions on Software Engineering,1998,24(2):125-136.

[13] Jeitler M,Delvai M,Reich S.FuSE——A Hardware Accelerated HDL Fault Injection Tool[C]//Proceedings ofSouthernConferenceonProgrammableLogic. Sao Carlos,Brazil:IEEE Press,2009:89-94.

[14] Baraza J C,Gracia J,Gil D,et al.A Prototype of a VHDL-basedFaultInjectionTool:Descriptionand Application[J].Journal of Systems Architecture,2002, 47(10):847-867.

[15] Zarandi H R,Miremadi G,Ejlali A R.Fault Injection into Verilog Models for Dependability Evaluation of Digital Systems[C]//Proceedings of the International Symposium on Parallel and Distributed Computing. [S.l.]:IEEE Press,2003:281-287.

[16] Sieh V,Tschche O,Balbach F.VERIFY:Evaluation of Reliability Using VHDL——Models with Embedded FaultDescriptions[C]//Proceedingsofthe27th International Symposium on Fault-tolerant Computing. Seattle,USA:IEEE Press,1997:32-36.

[17] Rousselle C,Pflanz M,Behling A,et al.A Registertransfer-levelFaultSimulatorforPermanentand TransientFaultsinEmbeddedProcessors[C]// Proceedings of DATE’01.Munich,Germany:IEEE Press,2001:1530-1591.

[18] Delong T A,Johnson B W,Profetan J A.A Fault InjectionTechniqueforVHDLBehavioral-level Models[J].IEEE Design&Test of Computers,1996, 5(3):24-33.

[19] Li M L.SWAT:DesigningResilientHardwareby Treating Software Anomalies[M].Chicago,USA:UMI Dissertation Publishing,2009.

[20] Li M L.Understanding the Propagation of Hard Errors to SoftwareandImplicationsforResilientSystems Design[C]//Proceedingsofthe13thInternational Conference on Architectural Support for Programming Languages and Operating Systems.New York,USA: ACM Press,2008.

[21] Siewiorek D P,Swarz R S.Reliable Computer Systems: Design and Evaluation[M].New York,USA:Digital Press,1992.

編輯 陸燕菲

Simics-based System Level Fault Injection Platform

HU Qian,WANG Chao,WANG Haixia,WANG Dongsheng
(National Laboratory for Information Science and Technology,Tsinghua University,Beijing100084,China)

Fault injection provides an effective method to evaluate the reliability of system,which is a complex topic in multicore situation.There are many simulation-based fault injection tools now,most of which are implemented by Field Programmable Gate Array(FPGA)and Very High Speed Integrated Circuits Hardware Description Language(VHDL), with limited fault models.Based on the widely used system simulator Simics in computer architecture,this paper designs and implements a system level fault injection platform,supporting different firmware,OS and applications.It can inject faults into several components,with different fault models(including transient faults,permanent and intermittent faults) and most fault types.Further more,it integrates fault detection module into the system.After observing of the propagation of hardware faults in system,it analyzes the effect of different components,fault models on system level,inspiring fault detection,and finds that transient faults have a little impact on system,while permanent faults seriously interrupt the running and intermittent faults performs differently on different components.

fault injection;system reliability;fault model;fault detection;structure level simulator

胡 倩,王 超,王海霞,等.基于Simics的系統級故障注入平臺[J].計算機工程,2015,41(2):57-62,75.

英文引用格式:Hu Qian,Wang Chao,Wang Haixia,et al.Simics-based System Level Fault Injection Platform[J]. Computer Engineering,2015,41(2):57-62,75.

1000-3428(2015)02-0057-06

:A

:TP302.8

10.3969/j.issn.1000-3428.2015.02.012

國家自然科學基金資助項目(61373025,61303002);國家“863”計劃基金資助項目(2012AA0100905);高等學校博士學科點專項科研基金資助項目(20120002110032)。

胡 倩(1988-),男,碩士研究生,主研方向:多核體系結構,系統容錯技術;王 超,助理研究員、博士后;王海霞,副教授;汪東升,教授、博士生導師。

2014-03-28

:2014-05-04E-mail:qianhu2011@gmail.com

猜你喜歡
故障注入間歇寄存器
模擬訓練裝備故障注入系統研究
間歇供暖在散熱器供暖房間的應用
Lite寄存器模型的設計與實現
SM4算法前四輪約減輪故障注入分析
采用修改-回放原理的1553B故障注入方法
分簇結構向量寄存器分配策略研究*
管群間歇散熱的土壤溫度響應與恢復特性
列車MVB總線故障注入研究
間歇精餾分離喹啉和異喹啉的模擬
間歇導尿配合溫和灸治療脊髓損傷后尿潴留30例
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合