999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于雙核鎖步的多核處理器SEU加固方法

2024-04-01 02:38:30伍攀峰許振龍
計算機測量與控制 2024年3期
關(guān)鍵詞:設(shè)置系統(tǒng)

郭 強,伍攀峰,2,許振龍

(1.山東航天電子科學(xué)技術(shù)研究所,山東 煙臺 264006;2.哈爾濱工業(yè)大學(xué) 航天學(xué)院,哈爾濱 150001)

0 引言

近年來,隨著國內(nèi)外航天產(chǎn)業(yè)和新興技術(shù)的蓬勃發(fā)展,衛(wèi)星功能密度和星上實時性要求日益增長,基于傳統(tǒng)單核處理器設(shè)計的星載計算機系統(tǒng)已無法滿足航天器任務(wù)需求,多核處理器應(yīng)用于航天任務(wù)已成為了發(fā)展的必然[1]。

航天應(yīng)用的電子產(chǎn)品要考慮空間輻射效應(yīng)的影響。空間輻射環(huán)境中的高能質(zhì)子、粒子等都有可能使高集成衛(wèi)星電子系統(tǒng)中的半導(dǎo)體器件在敏感區(qū)域產(chǎn)生瞬態(tài)脈沖,進一步觸發(fā)單粒子翻轉(zhuǎn)(SEU,single event upsets)事件,導(dǎo)致系統(tǒng)得到錯誤的運行結(jié)果以及系統(tǒng)中的其他故障,如掛起和崩潰等[2]。當(dāng)輻射足夠高時,可能致使存儲器單元、寄存器、鎖存器和觸發(fā)器的數(shù)據(jù)位發(fā)生翻轉(zhuǎn),從而引起系統(tǒng)錯誤[3]。單粒子效應(yīng)引發(fā)的錯誤類型包括硬錯誤和軟錯誤兩種不同類型的錯誤。隨著集成電路工藝尺寸的持續(xù)優(yōu)化,軟錯誤出現(xiàn)的幾率大幅度提高,已成為航天器設(shè)計中的重點研究對象[4]。

就目前的技術(shù)而言,傳統(tǒng)的星載計算機一般采用由專門定制的宇航級器件設(shè)計而成,宇航級的器件考慮了真空、輻射、原子氧等空間環(huán)境適應(yīng)性和長期工作可靠性,但在性能上普遍落后于同期商用貨架產(chǎn)品(COTS,commercial off-the-shelf),而且價格成本遠遠高于后者。相比于高等級抗輻射加固宇航器件,COTS器件因性能優(yōu)異、成熟度高、采購成本低廉的特性在國際上已得到充分認可[5]。但COTS器件在芯片設(shè)計時沒有進行抗輻射加固設(shè)計,應(yīng)用于空間任務(wù)易發(fā)生單粒子翻轉(zhuǎn),進而對星上電子系統(tǒng)產(chǎn)生影響,需要進行相應(yīng)的抗SEU容錯[6]。

星上電子系統(tǒng)常用的抗單粒子加固措施有雙機切換、多模冗余、錯誤檢測與糾正(EDAC,error detection and correction)檢驗等方式。文獻[7]針對PowerPC460處理器核原有存儲機制以及糾檢錯加固算法展開研究,實現(xiàn)了對PowerPC460兩種不同糾錯能力的EDAC加固設(shè)計;文獻[8]中采用軟硬件結(jié)合的方式,設(shè)計了一種低成本容錯方法。針對星載計算機硬件采用雙機冷備方案,同時通過現(xiàn)場可編程門陣列(FPGA,field programmable gate array)仲裁處理器狀態(tài),在檢測到異常時進行切機;文獻[9]提出了一種三模冗余設(shè)計,采用部組件級冗余,3個CPU進行熱冗余備份,通過FPGA完成仲裁,信息通過高速串行外設(shè)接口(SPI,serial peripheral interface)實現(xiàn)信息交互;文獻[10]中在可重構(gòu)FPGA內(nèi)部設(shè)置獨立工作的三核處理器,通過反熔絲FPGA可對任一處理器進行重構(gòu),構(gòu)成了可修復(fù)的三模冗余系統(tǒng)。

盡管硬件層面的加固方式可以有效提高電子系統(tǒng)的可靠性,但也帶來了額外的硬件開銷和資源占用問題。從軟件層面通過犧牲處理器部分性能來提高系統(tǒng)可靠性是另一種行之有效的方法。車輛、航空電子系統(tǒng)中常用鎖步技術(shù)來實現(xiàn)雙核處理器抗軟錯誤軟件加固[11-14]。文獻[15]提出了一種擴展的雙核鎖步方法,將執(zhí)行周期和鎖步周期分離,并引入了"寫歷史表"的概念,降低了系統(tǒng)性能開銷,但需要額外引入監(jiān)測模塊對兩核計算結(jié)果作判斷;文獻[16]發(fā)明了一種基于Zynq-7000的雙核ARM處理器抗軟錯誤防護方法,結(jié)合基于復(fù)算域的雙核互檢方法和基于檢查點的回卷恢復(fù)方法,可在雙核處理器核間實現(xiàn)軟錯誤的檢測和恢復(fù),但檢查點設(shè)置在每段程序末尾,回卷帶來的系統(tǒng)性能開銷過大。

本文基于雙核鎖步機制,提出了一種多核處理器核間互檢機制,在不引入額外硬件的前提下,將寫命令作為CPU間的同步點,檢查點在寫同步點中選取,僅對系統(tǒng)關(guān)鍵數(shù)據(jù)的改動做記錄,以較小的性能開銷實現(xiàn)了軟錯誤檢測和系統(tǒng)恢復(fù)。最后采用軟件故障注入方式對加固前后的處理器抗單粒子翻轉(zhuǎn)能力進行評估,驗證了該機制抗軟錯誤能力滿足應(yīng)用的需要。

1 雙核鎖步機制

鎖步技術(shù)是一種錯誤檢測機制,常應(yīng)用于車輛、航空電子系統(tǒng)中,是雙核處理器抗軟錯誤加固設(shè)計的重要技術(shù)手段。

雙核鎖步系統(tǒng)通常被稱為主從鎖步處理器。冗余處理器稱為從屬,在開機復(fù)位(POR,power on reset)時以與主處理器相同的狀態(tài)開始,運行相同的指令,接收相同的輸入,并在沒有發(fā)生錯誤時在每個時鐘周期中生成相同的輸出。如果主核和從核輸出結(jié)果不同,系統(tǒng)會自動丟棄錯誤并重新執(zhí)行指令。如果嘗試糾正錯誤的次數(shù)超過了允許的閾值,則會觸發(fā)系統(tǒng)重置。雙核鎖步技術(shù)的原理如圖1所示。

圖1 雙核鎖步原理

檢查點(CP,check point)技術(shù)是在應(yīng)用程序的執(zhí)行過程中,每間隔一段時間將處理器當(dāng)前正確的狀態(tài)以檢查點文件的形式存儲到存儲器中;回卷恢復(fù)(RR,rollback recovery)技術(shù)是在檢測到系統(tǒng)發(fā)生故障后,由處理器從存儲器中讀取最近一次保存的檢查點文件,使處理器恢復(fù)至上一個正確狀態(tài)并重新執(zhí)行故障程序,避免在發(fā)生故障后,處理器重新開始執(zhí)行應(yīng)用程序,從而減少了因故障帶來的計算損失,有效地提高系統(tǒng)的可用性和容錯能力,檢查點和回卷恢復(fù)技術(shù)的原理如圖2所示[17]。

圖2 檢查點和回卷恢復(fù)技術(shù)

2 雙核互鎖加固設(shè)計

2.1 硬件架構(gòu)

本文提出的雙核互鎖加固設(shè)計是在PowerPC架構(gòu)中Qorlq系列的一款雙核處理器P2020上設(shè)計和實現(xiàn)的,該方法僅需要一些調(diào)整就可適用于其他系列處理器,是面向通用型多核處理器的抗軟錯誤加固設(shè)計。硬件架構(gòu)如圖3所示。

圖3 雙核互鎖硬件架構(gòu)

兩核有各自的cache存儲互鎖機制產(chǎn)生的過程信息,通過共享的L2 cache及ddr3存儲器存儲程序及運行過程中的寄存器、內(nèi)存數(shù)據(jù)。本文雙核互鎖機制基于寫操作進行同步,每次寫同步都會進行兩核交互,若彼此計算結(jié)果一致則繼續(xù)執(zhí)行程序,否則將系統(tǒng)狀態(tài)恢復(fù)到最近的檢查點,重新執(zhí)行部分指令。

DDR3中設(shè)置兩級歷史表(WHT,write history table)文件,分別存儲第N個和第N-1個鎖步周期內(nèi)產(chǎn)生的寫命令,寫同步處更新歷史表0,檢查點處更新歷史表1。當(dāng)系統(tǒng)檢測到錯誤時,調(diào)用回卷中斷,從歷史表中獲取自上一個檢查點起被更改的數(shù)據(jù),并進行恢復(fù)。

表1 CPU0寫同步應(yīng)用簽名計算過程

2.2 軟件平臺

本文雙核互鎖設(shè)計基于Vxworks操作系統(tǒng)實現(xiàn)。Vxworks操作系統(tǒng)是美國風(fēng)河(WindRiver)公司于1983年開發(fā)的一種高性能、可裁剪的嵌入式實時操作系統(tǒng),具有較強的時性和可靠性,廣泛應(yīng)用在航空、航天、軍事等實時性要求極高的高精尖技術(shù)領(lǐng)域中[18-19]。

本文使用Vxworks操作系統(tǒng)搭建非對稱多處理(AMP,asymmetric multiprocessing)工作環(huán)境,在兩核中運行相同的程序,通過消息隊列進行兩核交互,使用PowerPC處理器自帶的核間中斷進行檢查點和回卷恢復(fù)操作。

3 雙核互鎖加固實現(xiàn)

在雙核互鎖機制中,兩處理器運行相同的應(yīng)用程序,基于寫指令進行同步,每N個寫同步設(shè)置一個驗證點(VP,verification point)。根據(jù)應(yīng)用程序功能和可靠性要求等因素,合理設(shè)置VP的數(shù)量和間隔。圖4詳細介紹了CPU0、CPU1的執(zhí)行概況及互鎖加固流程。

圖4 雙核互鎖加固流程

1)寫同步:CPU0、CPU1執(zhí)行相同的應(yīng)用程序,在寫命令處進行同步,交換數(shù)據(jù);

2)一致性判斷:CPU寫同步后,將自身數(shù)據(jù)與來自另一處理器的數(shù)據(jù)進行比較,比較結(jié)果有一致和不一致兩種;

3)WHT0:CPU0的一級寫歷史表,負責(zé)存儲第N個檢查點(最近的一次檢查點)后CPU0對關(guān)鍵數(shù)據(jù)的寫命令;

4)WHT0*:CPU1的一級寫歷史表,負責(zé)存儲第N個檢查點(最近的一次檢查點)后CPU1對關(guān)鍵數(shù)據(jù)的寫命令;

5)VP:檢查點;

6)WHT1:二級寫歷史表,負責(zé)存儲第N-1個檢查點到第N個檢查點(最近的一次檢查點)間處理器對關(guān)鍵數(shù)據(jù)的寫命令,在檢查點處更新。

數(shù)據(jù)初始化后,兩核并行執(zhí)行相同應(yīng)用程序,在執(zhí)行到寫命令時進行同步。在寫同步處,兩核通過消息隊列進行寫指令交互,然后比較二者的差異,如果對比結(jié)果一致,則認為系統(tǒng)中沒有發(fā)生故障,更新WHT0、WHT0*;若對比結(jié)果不一致,則認為當(dāng)前系統(tǒng)中發(fā)生故障,生成回卷恢復(fù)中斷信號,CPU0、CPU1分別響應(yīng)中斷信號,使系統(tǒng)恢復(fù)到上一個驗證點狀態(tài)。

執(zhí)行到驗證點時,若CPU寫同步均判斷一致,則代表連續(xù)通過了N個同步點,此時應(yīng)用程序暫停執(zhí)行,對比WHT0和WHT0*,若表決一致,兩核生成檢查點中斷信號,調(diào)用中斷服務(wù)例程獲取WHT0內(nèi)容,覆蓋WHT1,并清空WHT0、WHT0*,然后繼續(xù)執(zhí)行應(yīng)用程序。同一時刻,DDR3存儲器中保留有恢復(fù)至系統(tǒng)第N個檢查點的WHT0和恢復(fù)至第N-1個檢查點的WHT1文件。

處理器調(diào)用回卷中斷程序,即寫同步判斷不一致時,CPU0、CPU1從WHT0中獲取第N個檢查點后的所有寫命令,執(zhí)行回卷恢復(fù)操作,從第N個檢查點重新執(zhí)行該段程序,直到應(yīng)用程序執(zhí)行結(jié)束。

在本文中,寫操作范圍被定義為:

1)通用寄存器:GPR0-GPR31;

2)特殊寄存器:條件寄存器(CR,condition register)、鏈接寄存器(LR,link register)和計數(shù)寄存器(CTR,count register)等;

3)DDR3存儲器。

同時,在設(shè)計時要考慮以下問題:

1)CPU0、CPU1連接到外部DDR3存儲器,并將應(yīng)用程序和檢查點文件存儲在不同地址中;

2)CPU0、CPU1共享DDR3內(nèi)存,對于不可同時訪問的資源需要設(shè)置互斥信號量等進行保護;

3)驗證點在所有寫同步中選取,但二者并不等同,大部分寫同步不對WHT1作改動。

3.1 互鎖判斷

在雙核互鎖機制中,由CPU本身擔(dān)任監(jiān)測模塊,任一CPU判斷兩核寫命令不一致,則認為系統(tǒng)中出現(xiàn)了軟錯誤,需要采取相應(yīng)措施。監(jiān)測機制基于Vxworks操作系統(tǒng)編寫,采用C語言進行設(shè)計,它負責(zé)驗證CPU0和CPU1的一致性并通過輸出的中斷信號控制鎖步。監(jiān)測模塊通過比較CPU0、CPU1的寫命令來判斷二者是否一致,比較方式有以下兩種。

1)第一種方法:將CPU0、CPU1同步時的寫地址和寫數(shù)據(jù)分別發(fā)送給對方,然后二者對各自數(shù)據(jù)的每一位進行比較;

2)第二種方法:在CPU0、CPU1寫同步的數(shù)據(jù)中應(yīng)用簽名,兩CPU僅對比簽名來判斷是否一致,簽名方式有數(shù)據(jù)總和、異或掩碼等。

在第一種方法中,不需要對應(yīng)用程序做額外修改,優(yōu)點是監(jiān)測覆蓋率較大,但會增大系統(tǒng)開銷。在第二種方法中,需要在同步前計算簽名,即在應(yīng)用程序上附加代碼,但降低了監(jiān)測模塊對比數(shù)據(jù)量,有效降低了系統(tǒng)消耗時間。

綜合考慮上述兩種方法的優(yōu)缺點,采用第二種方法在CPU0、CPU1的寫同步數(shù)據(jù)中應(yīng)用簽名,而后再由CPU0、CPU1進行對比,簽名的實現(xiàn)方式是:將寫地址和寫數(shù)據(jù)相與,然后計算總和中二進制數(shù)據(jù)“1”的個數(shù),如表1所示。

以CPU0為例,寫同步流程如圖5所示。首先CPU0計算自身寫地址和寫數(shù)據(jù)的簽名,然后通過消息隊列將簽名發(fā)送至CPU1,等待來自CPU1的簽名,超時則觸發(fā)回卷。

圖5 雙核互鎖CPU0寫同步過程

接收到來自CPU1的簽名后,CPU0進行二者對比,不一致觸發(fā)回卷。若一致性判斷通過,則記錄寫命令,繼續(xù)執(zhí)行程序。

3.2 檢查點與回卷恢復(fù)技術(shù)

3.2.1 檢查點技術(shù)

檢查點的設(shè)置基于CPU0、CPU1的寫同步,設(shè)置檢查點間隔為N,每連續(xù)N個寫同步檢驗通過,就向CPU0、CPU1發(fā)送一個檢查點中斷請求,CPU0、CPU1響應(yīng)中斷信號后執(zhí)行檢查點中斷操作。處理器響應(yīng)中斷流程如圖6所示。

圖6 處理器響應(yīng)中斷流程

在檢查點執(zhí)行過程中,發(fā)送中斷請求,調(diào)用中斷服務(wù)函數(shù),初始化相關(guān)信號量和共享變量,獲取WHT0中數(shù)據(jù)形成檢查點文件,覆蓋歷史表1,并清空歷史表0。

3.2.2 回卷恢復(fù)技術(shù)

當(dāng)任何一次寫同步檢測到兩核寫命令不同時,系統(tǒng)進入回卷恢復(fù)操作。為了盡可能降低系統(tǒng)回卷引入的性能資源消耗,本文設(shè)置了四級回卷,如圖7所示。

圖7 回卷恢復(fù)流程

一級回卷中斷:一次表決不一致時,回卷計數(shù)值加1,重新執(zhí)行該指令;

二級回卷中斷:連續(xù)兩次表決不一致,按照WHT0內(nèi)容修改DDR3中內(nèi)存數(shù)據(jù)段與CPU寄存器的值,使它們恢復(fù)到第N個檢查點狀態(tài),回卷計數(shù)值加1,其余信號清零,退出中斷;

三級回卷中斷:按照WHT0、WHT1內(nèi)容修改DDR3中內(nèi)存數(shù)據(jù)段與堆棧數(shù)據(jù)段的值,使它們恢復(fù)到第N-1個檢查點狀態(tài),回卷計數(shù)值加1,其余信號清零,退出中斷;

四級回卷中斷:中斷服務(wù)程序用DDR3中的備份數(shù)據(jù)覆蓋內(nèi)存數(shù)據(jù)段、CPU寄存器值,清空WHT0和WHT1,清零所有信號,重新執(zhí)行該程序。

當(dāng)連續(xù)回卷計數(shù)為5時,代表四級回卷恢復(fù)機制仍未解決當(dāng)前系統(tǒng)中出現(xiàn)的錯誤,控制系統(tǒng)復(fù)位。此外,對雙核鎖步過程中的數(shù)據(jù)傳輸進行信息冗余加固,提高系統(tǒng)可靠性。

3.3 核間交互

雙核互鎖設(shè)計以較小的性能和資源代價來換取系統(tǒng)可靠性的提升,兩核互為檢查模塊,任一核認為數(shù)據(jù)異常則默認系統(tǒng)受到軟錯誤影響,可見兩核的交互是雙核互鎖設(shè)計的關(guān)鍵,包括兩核交互、交互方式、交互頻率等,兩核交互設(shè)計的好壞決定了系統(tǒng)性能開銷大小。

3.3.1 交互內(nèi)容

交互內(nèi)容是指系統(tǒng)在檢查點操作時具體保存的某些狀態(tài)。交互內(nèi)容設(shè)置詳細,那么通過回卷技術(shù)可以有效地使系統(tǒng)回到上一個檢查點時的正確狀態(tài),重新執(zhí)行程序段,得到正確的結(jié)果。相應(yīng)的,也會帶來系統(tǒng)檢查點操作和回卷操作時間的增加;上下文內(nèi)容缺失,會導(dǎo)致無法通過回卷技術(shù)得到正確的系統(tǒng)狀態(tài),進而不能夠產(chǎn)生正確的計算結(jié)果,使整個鎖步機制失效。

在本文中,交互內(nèi)容包括寫命令對內(nèi)存數(shù)據(jù)段的改變以及CPU各寄存器值,考慮到DDR3存儲器受錯誤檢查和糾正(ECC,error checking and correcting)技術(shù)加固,認為內(nèi)存數(shù)據(jù)可靠性較高,并在每個程序開始執(zhí)行時進行一次內(nèi)存數(shù)據(jù)段備份,程序運行到檢查點時僅更新交互內(nèi)容不對內(nèi)存數(shù)據(jù)段進行額外操作。

3.3.2 交互方式

通常情況下,鎖步系統(tǒng)通過一致性檢驗進行兩處理器的同步。目前主要的設(shè)置方式有寫操作同步和劃分程序塊同步兩種。前者是在處理器運行到寫操作時,通過等待的方式進行同步,當(dāng)完成一致性檢驗后,兩個處理器同時開始后續(xù)指令執(zhí)行;劃分程序塊是指將應(yīng)用程序劃分為多個塊,在兩塊之間設(shè)置驗證點,當(dāng)?shù)竭_驗證點時,通過等待的方式實現(xiàn)同步。

在本文中,考慮到劃分程序塊可能使錯誤數(shù)據(jù)污染內(nèi)存,甚至對其他系統(tǒng)造成嚴重影響的情況,選擇基于寫操作同步的設(shè)置方式。但由于寫操作頻率在不同程序間的不確定性,本文選擇將檢查點設(shè)置與一致性檢驗設(shè)置進行區(qū)分,每次寫操作都進行一致性檢驗,多次寫操作后進行一次檢查點操作。同時設(shè)置四級回卷,針對潛在單粒子影響有一定的抵抗能力。

3.3.3 交互頻率

檢查點間隔的選取對系統(tǒng)性能影響很大。檢查點設(shè)置密集,意味著需要頻繁進行檢查點操作,且易產(chǎn)生潛在單粒子影響無法消除的現(xiàn)象;檢查點設(shè)置稀疏,兩個處理器計算結(jié)果不一致,觸發(fā)回卷后需要重新執(zhí)行很長一段程序。致使系統(tǒng)產(chǎn)生不必要的性能開銷。

在本文中,將檢查點設(shè)置與一致性檢驗設(shè)置進行區(qū)分,每次寫同步都進行一致性檢驗,多次寫同步后進行一次檢查點操作。通過寫請求先到等后到的方式進行CPU0、CPU1的同步。檢查點數(shù)量和回卷數(shù)量設(shè)置不一致,當(dāng)寫同步一致性表決不通過時,根據(jù)連續(xù)回卷次數(shù),產(chǎn)生相應(yīng)的回卷中斷信號。

4 故障注入基本原理與方案設(shè)計

4.1 軟件故障注入技術(shù)

軟件故障注入技術(shù)(SWIFI,software implemented fault injection)是在軟件層次來實現(xiàn)處理器的故障注入方法,該技術(shù)不需要任何硬件設(shè)備就可以實現(xiàn)故障的模擬注入,而是在處理器程序編譯或者運行時動態(tài)的修改執(zhí)行程序,或者人為設(shè)置寄存器值來改變處理器的運行狀態(tài),這種注入方法不需要任何額外的開銷,屬于一種低成本的故障注入技術(shù),且故障注入位置靈活可控,具有相當(dāng)高的自由性。另一方面,通過腳本或者程序可以實現(xiàn)批量的故障注入操作,完成故障注入的全自動化設(shè)置。

故障注入會因?qū)崿F(xiàn)方式的不同或者注入對象的不同而略有差異,但是基本設(shè)計思想是一致的[20],其原理如圖8所示。

圖8 故障注入原理圖

主要通過定時器超時、代碼插入和異常/陷阱等技術(shù)手段[21],對雙核鎖步機制及個容錯技術(shù)進行故障注入實驗,模擬系統(tǒng)中上至雙核處理器、下至處理器的寄存器、存儲單元等多個層次可能發(fā)生的故障,驗證雙核互鎖機制是否能夠有效工作,提高系統(tǒng)可靠性。

4.2 故障注入設(shè)計方案

為驗證本文提出的雙核互鎖機制的抗軟錯誤的有效性,在兩核寫同步、檢查點兩處注入故障來模擬系統(tǒng)中出現(xiàn)的單粒子翻轉(zhuǎn)現(xiàn)象,觀察CPU0、CPU1是否能正確識別軟錯誤,并通過回卷恢復(fù)技術(shù)得出正確的結(jié)果。

4.2.1 同步點故障注入

在雙核互鎖機制中,CPU0和CPU1執(zhí)行相同的程序,在寫同步處進行數(shù)據(jù)交互,從而進行一致性判斷,產(chǎn)生相應(yīng)的檢查點中斷信號或回卷中斷信號。因此,為了模擬處理器在執(zhí)行任務(wù)過程中數(shù)據(jù)位翻轉(zhuǎn)的情況,可以通過故障注入的方法直接對處理器寫命令的計算簽名進行修改,故障注入位置如圖9所示。

圖9 同步點故障注入

故障注入步驟如下:

1)設(shè)置信號量sig0,核1每次寫命令時sig0信號自增;

2)核1寫同步計算簽名后讀取sig0信號,若大于預(yù)設(shè)值,則進入故障注入函數(shù);

3)同步點故障注入函數(shù)獲取核1計算后的簽名,與0x55555555做與運算,將運算結(jié)果重新賦值給簽名;

4)核1得到故障注入后的簽名,通過消息隊列與核0交換數(shù)據(jù),兩核進行一致性判斷。

連續(xù)修改一次到五次寫同步后形成的核0的計算簽名,每次翻轉(zhuǎn)簽名中的一個bit位,模擬執(zhí)行應(yīng)用過程中數(shù)據(jù)位發(fā)生翻轉(zhuǎn)的情況,致使系統(tǒng)產(chǎn)生回卷恢復(fù)中斷信號,并觀察系統(tǒng)回卷級數(shù),后續(xù)是否能恢復(fù)到正確的系統(tǒng)狀態(tài),產(chǎn)生正確輸出。

4.2.2 檢查點文件故障注入

檢查點文件是雙核鎖步機制的核心,是系統(tǒng)能恢復(fù)到上一個正確狀態(tài)的依據(jù)。CPU執(zhí)行到檢查點處時,分別從WHT0、WHT0*獲取數(shù)據(jù),生成檢查點文件。因此,為了模擬處理器在檢查點處數(shù)據(jù)位翻轉(zhuǎn)情況,可以在檢查點文件生成時進行故障注入,故障注入位置如圖10所示。

圖10 檢查點文件故障注入

故障注入步驟如下:

1)設(shè)置信號量sig1,核1每次進入檢查點時sig1信號自增;

2)核1在計算檢查點文件簽名前讀取sig1信號,若大于預(yù)設(shè)值,則進入檢查點故障注入函數(shù);

3)在檢查點故障注入函數(shù)中,手動設(shè)置不同的故障注入位置,分別將檢查點文件中各寄存器的值與0x55555555做與運算,運算結(jié)果保存到檢查點文件中;

4)核1計算檢查點文件簽名,通過消息隊列與核0交換數(shù)據(jù),進行一致性判斷。

通過修改CPU1生成檢查點文件中各寄存器值,翻轉(zhuǎn)其中的1 bit位,模擬從堆棧地址中讀取各寄存器值時發(fā)生數(shù)據(jù)位翻轉(zhuǎn)的情況,致使CPU0、CPU1在對比檢查點文件的簽名時產(chǎn)生回卷恢復(fù)中斷信號,從而達到故障注入的目的。同樣通過連續(xù)注入一次到四次錯誤,觀察系統(tǒng)回卷級數(shù),是否能恢復(fù)到正確的系統(tǒng)狀態(tài)。

5 故障注入試驗結(jié)果分析

根據(jù)4.2所述的軟件故障注入方案,分別進行相應(yīng)的故障注入設(shè)計,其實驗結(jié)果如表2所示。

表2 雙核互鎖故障注入實驗結(jié)果

其中,W1點是該應(yīng)用程序的非首個寫同步點,W2點是程序的非首個檢查點,r1是通用寄存器,CR是條件寄存器,LR是鏈接寄存器。

在寫同步計算簽名過程中,選取了W1、W2兩個程序運行位置進行了故障注入,每個注入點進行了1次注入到連續(xù)5次注入實驗,雙核互檢機制可以穩(wěn)定檢查到兩核運行過程中出現(xiàn)不一致,以及連續(xù)注入錯誤的數(shù)量,準(zhǔn)確率為100%。根據(jù)連續(xù)出錯次數(shù),雙核互檢機制選取不同的恢復(fù)策略:1次錯誤時調(diào)用一級回卷中斷函數(shù),重新執(zhí)行指令;連續(xù)2次到3次錯誤時,系統(tǒng)調(diào)用二級、三級回卷中斷函數(shù),分別回卷至第N次、第N-1次檢查點的系統(tǒng)狀態(tài);連續(xù)4次出現(xiàn)錯誤,系統(tǒng)調(diào)用四級回卷中斷,將應(yīng)用程序初始化時備份的程序段傳入內(nèi)存,重新執(zhí)行該程序;當(dāng)連續(xù)超過4次錯誤時,處理器復(fù)位。

在檢查點文件中,選取通用寄存器r1、特殊寄存器CR、LR三個故障注入點,同樣各個注入點分別進行1至5次手動造錯。多次實驗下,CPU0、CPU1進行一致性表決時,均可得到“fail”的表決結(jié)果,并且根據(jù)連續(xù)回卷計數(shù)觸發(fā)正確的回卷中斷信號。連續(xù)注入故障不超過4次時,CPU0、CPU1能通過回卷恢復(fù)能到正確的輸出結(jié)果,避免了類似的單粒子翻轉(zhuǎn)對系統(tǒng)可靠性的影響。當(dāng)連續(xù)回卷計數(shù)值達到5時,認為該系統(tǒng)已無法通過回卷恢復(fù)技術(shù)糾正錯誤,進行復(fù)位操作。

綜上,本文雙核互鎖機制可以在不額外增加硬件的前提下,犧牲小部分處理器性能,使系統(tǒng)具備較好的軟錯誤檢測和系統(tǒng)恢復(fù)能力。

6 結(jié)束語

本文提出了一種面向通用處理器的雙核互檢抗軟錯誤加固方法,該方法基于寫命令進行CPU0、CPU1同步,結(jié)合檢查點、回卷恢復(fù)技術(shù)實現(xiàn)正確狀態(tài)的保存和恢復(fù)。通過簡化檢查點存儲數(shù)據(jù)和四級回卷恢復(fù)機制,降低處理器資源開銷的同時有效保障了系統(tǒng)可靠性。

軟件層面改進的雙核互檢算法面向通用型多核處理器,具有良好的可移植性。根據(jù)軟件故障注入仿真結(jié)果可知,雙核互檢方法可以100%檢測到程序運行關(guān)鍵數(shù)據(jù)發(fā)生的翻轉(zhuǎn),并通過多級回卷技術(shù)得到正確的結(jié)果,具備較強的工程實用價值。雙核互檢加固方法對處理器性能影響的評估將是未來工作的重心。

猜你喜歡
設(shè)置系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
中隊崗位該如何設(shè)置
少先隊活動(2021年4期)2021-07-23 01:46:22
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
7招教你手動設(shè)置參數(shù)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
本刊欄目設(shè)置說明
中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
主站蜘蛛池模板: 成人免费一区二区三区| 四虎精品国产AV二区| 91精品国产丝袜| 美女无遮挡免费视频网站| 成人免费黄色小视频| 久草视频精品| 四虎永久在线| 88国产经典欧美一区二区三区| 免费看av在线网站网址| 国产香蕉97碰碰视频VA碰碰看| 亚洲成a人片77777在线播放| 国产精品视频久| 中文字幕在线观看日本| 亚洲成人网在线播放| av一区二区无码在线| 97国产在线播放| AV不卡国产在线观看| 日本精品视频| 激情午夜婷婷| 欧美国产精品拍自| 国产喷水视频| 亚洲一本大道在线| 久久a毛片| 麻豆精品在线视频| 国产菊爆视频在线观看| 亚洲三级a| 国产日本一区二区三区| 国产老女人精品免费视频| 亚洲VA中文字幕| 国产成人高清精品免费5388| 91成人在线观看视频| 色精品视频| av无码久久精品| 91区国产福利在线观看午夜| 色婷婷国产精品视频| 自偷自拍三级全三级视频| 中文字幕在线看视频一区二区三区| 91美女视频在线| 久热re国产手机在线观看| 国产超碰一区二区三区| 亚洲精品无码不卡在线播放| 午夜少妇精品视频小电影| 亚洲人妖在线| 国产成人乱无码视频| 日本91视频| 亚洲天堂视频在线播放| 奇米精品一区二区三区在线观看| 亚洲午夜福利精品无码| 久草视频福利在线观看| 亚洲AV无码久久天堂| 欧美午夜精品| 久久人体视频| 中国国产高清免费AV片| 狠狠久久综合伊人不卡| 国产一级毛片yw| 色综合久久久久8天国| 无码国产偷倩在线播放老年人| 日韩黄色在线| 精品国产香蕉在线播出| 日本午夜影院| 色网站免费在线观看| 99re精彩视频| 亚洲国产成人无码AV在线影院L | 婷婷亚洲最大| 色丁丁毛片在线观看| 天天躁狠狠躁| 日本一区二区不卡视频| 毛片网站在线播放| 亚洲精品无码高潮喷水A| 福利一区在线| 黄色网站不卡无码| 国产美女视频黄a视频全免费网站| 亚洲欧美日韩中文字幕在线一区| 国产99精品久久| 99re在线观看视频| AV网站中文| 免费99精品国产自在现线| 日韩国产亚洲一区二区在线观看| 亚洲精品视频在线观看视频| 露脸国产精品自产在线播| 国产极品粉嫩小泬免费看| 91精品小视频|