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