孫越 伍攀峰 馬宗峰 李杰
摘 ? 要:商業(yè)衛(wèi)星的迅速發(fā)展,具備靈活性和可配置性的商用APSoC(All Programmable System-on-Chip)器件成為提高衛(wèi)星性能、降低成本的重要途徑之一。具備多種優(yōu)點的APSoC器件受到國內(nèi)外商業(yè)衛(wèi)星領(lǐng)域廣泛關(guān)注。但APSoC器件抗輻照能力較低。因此,針對單粒子翻轉(zhuǎn)引發(fā)的軟錯誤,本文提出面向商用APSoC器件的雙核鎖步機制,能夠檢測單粒子效應導致的軟錯誤并糾正,提高APSoC應對單粒子翻轉(zhuǎn)引發(fā)的軟錯誤能力。
關(guān)鍵詞:APSoC ?雙核鎖步機制 ?Checker模塊 ?檢查點 ?回卷恢復
中圖分類號:TN47 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A ? ? ? ? ? ? ? ? ? ? ? 文章編號:1674-098X(2019)09(b)-0009-02
近年來,已開發(fā)出基于多核架構(gòu)的新嵌入式片上系統(tǒng)來滿足高性能處理器要求,將FPGA與嵌入式處理器相結(jié)合架構(gòu)稱為APSoC[1]。APSoC是工業(yè)級或商業(yè)級器件,與宇航級器件相比,其抗輻照能力較低。其中對于低軌空間輻射效應中的總劑量效應,在文獻[2]中經(jīng)試驗證明APSoC中的Zynq 7000 XC7Z020和Zynq UltraScale+ XCZU9EG在105MeV下的總劑量分別為110.4×109p/cm2、120.0×109p/cm2,相當于10.0krad(Si)、10.9krad(Si),該總劑量能夠適用于許多低軌衛(wèi)星任務。另外,隨著集成電路工藝尺寸的不斷縮減,由單粒子效應引起的軟錯誤所需的能量閾值在不斷降低,因此發(fā)生軟錯誤的幾率也在不斷提高,軟錯誤已成為小衛(wèi)星技術(shù)甚至空間技術(shù)領(lǐng)域亟待解決的關(guān)鍵問題。
面向商業(yè)航天對APSoC器件的應用需求,本文主要從雙核處理器的抗軟錯誤防護入手,研究一種適合APSoC的雙核鎖步容錯機制,該機制可以防止系統(tǒng)發(fā)生功能中斷以及檢測單粒子效應導致的軟錯誤并糾正。
1 ?雙核鎖步機制
雙核鎖步(簡稱DCLS)機制是在兩個相同的處理器中同時運行相同的應用程序,由檢查器模塊對比兩個CPU應用程序的執(zhí)行輸出,在輸出結(jié)果一致的情況下,由檢查器模塊產(chǎn)生中斷,將兩個CPU當前狀態(tài)以檢查點文件的形式保存到存儲器上。在輸出結(jié)果不一致的情況下,由檢查器模塊產(chǎn)生中斷,兩個CPU處理器調(diào)取最近一次保存的檢查點文件實施回卷以恢復系統(tǒng)。由此可以看出,在軟錯誤發(fā)生后,雙核鎖步機制能夠用于錯誤糾正,將系統(tǒng)恢復到安全狀態(tài)。
1.1 架構(gòu)
本文提出雙核鎖步機制是在APSoC器件中的一款Zynq UltraScale+上設(shè)計和實現(xiàn)的,該方法通過一些調(diào)整,便可以擴展到不同的APSoC器件中使用。雙核鎖步機制架構(gòu)設(shè)計圖1所示,每個CPU都連接到其專用BRAM存儲器,所有應用程序數(shù)據(jù)和處理器的檢查點文件都存儲在BRAM中。處理器與外部共享DDR存儲器連接,該存儲器存儲兩個CPU的程序指令,此外,DDR還作為檢查點的備用存儲器。Checker模塊是一個負責驗證處理器一致性的模塊,它與兩個BRAM存儲器連接以訪問兩個CPU的輸出,并產(chǎn)生中斷信號以控制CPU執(zhí)行檢查點或者回卷恢復操作。
1.2 Checker模塊
在雙核鎖步機制中,Checker模塊用IP核實現(xiàn),采用Verilog語言設(shè)計,它負責驗證處理器一致性。在本設(shè)計中采用應用程序輸出應用簽名的方法進行比較,該方法在應用程序上附加代碼,在驗證點之前在應用程序上計算簽名,雖然提高了應用程序復雜度,但能夠降低Checker模塊進行數(shù)據(jù)對比的時間。這個簽名可以是所有元素的總和、XOR掩碼、校驗等方法來實現(xiàn)。
關(guān)于處理器寄存器的驗證,要考慮以下問題:(1)本文主要使用通用寄存器R0~R12、堆棧指針(SP)、鏈接寄存器(LR); 和程序計數(shù)器(PC)。(2)在程序執(zhí)行開始時,寄存器必須執(zhí)行初始化程序,使兩個處理器的寄存器狀態(tài)保持一致。
2.3 檢查點和回卷操作
檢查點是一種將處理器一致狀態(tài)保存在內(nèi)存中的操作,回卷操作是通過恢復先前的狀態(tài)從錯誤中恢復系統(tǒng)。在雙核鎖步機制中,執(zhí)行檢查點操作時將寄存器狀態(tài)存儲在BRAM和DDR存儲器中。在回卷操作中,從存儲器讀取檢查點文件。執(zhí)行回卷并且系統(tǒng)仍然出現(xiàn)錯誤,則執(zhí)行序列下一個回卷級別?;鼐砑墑e如下:
1、第一級回卷從BRAM存儲器讀取檢查點文件以恢復系統(tǒng)。
2、第二級回卷從DDR內(nèi)存讀取檢查點文件以恢復系統(tǒng)。
3、如果上述兩個級別回卷都沒有效果,則重新啟動應用程序以恢復系統(tǒng)。
如果在應用所有回卷級別后,仍無法成功恢復系統(tǒng),則硬件系統(tǒng)看門狗會由于長時間沒有“喂狗”產(chǎn)生看門狗復位信號,系統(tǒng)重新運行。
3 ?總結(jié)
鎖步技術(shù)是一種錯誤檢測機制,可以保持多個CPU,在相同時鐘周期內(nèi)執(zhí)行相同的指令。在APSoC器件上使用雙核鎖步機制(DCLS)作為容錯解決方案,系統(tǒng)能在不間斷處理和不損失數(shù)據(jù)的情況下恢復正常運行,以提高嵌入APSoC的硬核處理器的可靠性,而且本文提出的雙核鎖步機制可以通過簡單調(diào)整擴展到不同的APSoC器件中使用。該機制的提出為商用航天選用高性能、低成本的處理器提供了一種方案思路。
參考文獻
[1] ?dria Barros de Oliveira, Lucas Antunes Tambara, Fernanda Lima Kastensmidt. Exploring Performance Overhead Versus Soft Error Detection in Lockstep Dual-Core ARM Cortex-A9 Processor Embedded into Xilinx Zynq APSoC. Lecture Notes in Computer Science, p.189-201, 2017.
[2] David M. Hiemstra, Valeri Kirischian and Jakub Brelski. Single Event Upset Characteriza- tion of the Zynq-7000 ARM CortexTM-A9 Processor Unit Using Proton Irradiation. 2015.