周永忠,洪晟,姜義初,顧爽,李雷,劉亮,高欣妍,陰宏偉,岳天羽
(1.北京智芯微電子科技有限公司 數(shù)字芯片設(shè)計(jì)中心,北京 100192;2.北京航空航天大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,北京 100191;3.北京航空航天大學(xué) 未來空天技術(shù)學(xué)院/高等理工學(xué)院,北京 100191)
CPU(中央處理器)系統(tǒng)通常由板載集成電路驅(qū)動(dòng),具有微型化、標(biāo)準(zhǔn)化、通用化等一系列特點(diǎn)。隨著工業(yè)控制對設(shè)備精密度、復(fù)雜度、安全度以及功能密度要求的日益提高,中央處理器安全技術(shù)成為工業(yè)控制芯片可靠的重要保障,因此研究其安全測試和自修復(fù)技術(shù)具有重要意義。
當(dāng)前中央處理器安全測試以及測試前的故障注入成為國內(nèi)外研究的重點(diǎn),研究系統(tǒng)面對突發(fā)情況時(shí)的自修復(fù)技術(shù)有利于更好提高工控芯片的安全性。當(dāng)前技術(shù)主要是致力于學(xué)科融合,應(yīng)用生物等各領(lǐng)域的知識硬軟件結(jié)合進(jìn)行,但各方法都有所偏重,單獨(dú)的故障處理技術(shù)無法很好地滿足工業(yè)控制的安全需求。因此,有必要建立協(xié)同各方面故障處理技術(shù)的模型來指導(dǎo)中央處理器的安全發(fā)展方向。
本文研究中央處理器安全測試與自修復(fù)技術(shù)的整個(gè)流程,對不同技術(shù)進(jìn)行優(yōu)劣對比,最終提出了一種融合各個(gè)技術(shù)的安全協(xié)同模型,對中央處理器發(fā)展的趨勢作出了總結(jié)與展望,得到有意義的結(jié)論。
對中央處理器系統(tǒng)進(jìn)行安全測試,首先需要故障注入。故障注入從本質(zhì)上來說屬于一種模擬,是將錯(cuò)誤或者錯(cuò)誤效果注入目標(biāo)系統(tǒng),對系統(tǒng)進(jìn)行模擬干預(yù)來造成故障,從而為后續(xù)的測試操作作為條件和準(zhǔn)備;安全測試是監(jiān)測系統(tǒng)在故障到來時(shí)采取的應(yīng)對措施,用于得到系統(tǒng)對于故障的內(nèi)部處理機(jī)制來評估系統(tǒng)的容錯(cuò)能力;自修復(fù)技術(shù)是指中央處理器在面對某些故障時(shí)所采取的調(diào)度替代、容錯(cuò)、重構(gòu)、冗余等一系列自我保護(hù)機(jī)制,目的是排除故障對系統(tǒng)運(yùn)行帶來的不良影響。
1.2.1 故障注入
故障注入[1]技術(shù)是判斷系統(tǒng)可靠性和識別敏感區(qū)域的必要條件[2],實(shí)際應(yīng)用中,可以通過硬軟件配合同時(shí)實(shí)現(xiàn)兩者的優(yōu)點(diǎn)[3]。優(yōu)缺點(diǎn)對比如表1 所示。故障注入尚存在功能引腳限制導(dǎo)致的指示器激活缺陷,還需要在管腳上作進(jìn)一步的技術(shù)突破[4]。
表1 傳統(tǒng)硬軟件注入技術(shù)優(yōu)缺點(diǎn)對比
1.2.2 安全測試
傳統(tǒng)安全測試采用增加測試點(diǎn)的方法,效率低、成本高、可實(shí)現(xiàn)性低[5]。目前主要有基于掃描鏈的測試、TSV 非接觸測試和內(nèi)建自測試,超大規(guī)模的集成電路多實(shí)施內(nèi)建自測試電路[6]。
Stratigopoulos[7]、Roy S[8]等提到利用ML(機(jī)器學(xué)習(xí))故障測試,通過輸入原始數(shù)據(jù)來訓(xùn)練機(jī)器處理和測量大量數(shù)據(jù)。電路時(shí)序復(fù)雜度、模擬電路的非離散性和參數(shù)缺失性帶來的計(jì)算復(fù)雜性問題可以交給ML 解決;S Jayanthy[10]、Di Natale G[11]、Dalpasso[12]等提出延遲測試技術(shù),隱藏延遲故障傳感器在上升和下降的時(shí)鐘邊緣采集數(shù)據(jù),還可利用納米技術(shù)設(shè)計(jì)開關(guān)雙極器件的布爾模型,可捕捉復(fù)雜器件中邏輯的瞬時(shí)切換。
1.2.3 自修復(fù)技術(shù)
傳統(tǒng)修復(fù)技術(shù)采用可替代CLB 塊(可配置邏輯模塊),空間開銷較大?,F(xiàn)有方法包括替代修復(fù)技術(shù),實(shí)時(shí)容錯(cuò)自修復(fù)技術(shù)、AES、ASIC、BISR、基于細(xì)胞陣列的自修復(fù)技術(shù)、電壓對比成像技術(shù)、貝葉斯技術(shù)、NOC 容錯(cuò)機(jī)制和基于Mesh 的路由器級容錯(cuò)體系等。
2.1.1 硬件故障注入技術(shù)
傳統(tǒng)的硬件注入需要附加硬件設(shè)備的幫助,安全性低,不方便試驗(yàn)[13]。
插入法截取輸入輸出信號,對高速系統(tǒng)時(shí)序影響大,準(zhǔn)確度較低;探針法將探針和芯片管腳捆綁改變管腳的電流,但對BGA 封裝芯片無效;JTAG 調(diào)試技術(shù)中,BSC(邊界掃描寄存器單元)正常不參與運(yùn)行,但調(diào)試模式下其各單元相接,分離內(nèi)部芯片和外部管腳,在三種方法中占優(yōu)[13]。
2.1.2 軟件故障注入技術(shù)
傳統(tǒng)軟件測試需要目標(biāo)系統(tǒng)對于實(shí)驗(yàn)者處于開放狀態(tài),與某些保密領(lǐng)域的工作要求是矛盾的[14]。Doctor集成軟件開發(fā)環(huán)境[15]使主機(jī)和目標(biāo)系統(tǒng)依托于不同結(jié)構(gòu),用定時(shí)器隨機(jī)規(guī)定時(shí)間后注入錯(cuò)誤效應(yīng);Pin 法隨機(jī)插入可執(zhí)行程序,隨機(jī)選取內(nèi)存區(qū)域或通過超時(shí)、軟件陷阱、硬件異常等方法,注入錯(cuò)誤源代碼;SFIS[16]基于單粒子事件,改變原有程序,但之后代碼可恢復(fù)原狀。對中央處理器系統(tǒng)進(jìn)行安全測試,首先需要故障注入。故障注入從本質(zhì)上來說屬于一種模擬,是將錯(cuò)誤或者錯(cuò)誤效果注入目標(biāo)系統(tǒng),對系統(tǒng)進(jìn)行模擬干預(yù)來造成故障,從而為后續(xù)的測試操作作為條件和準(zhǔn)備;安全測試是監(jiān)測系統(tǒng)在故障到來時(shí)采取的應(yīng)對措施,用于得到系統(tǒng)對于故障的內(nèi)部處理機(jī)制來評估系統(tǒng)的容錯(cuò)能力;自修復(fù)技術(shù)是指中央處理器在面對某些故障時(shí)所采取的調(diào)度替代、容錯(cuò)、重構(gòu)、冗余等一系列自我保護(hù)機(jī)制,目的是排除故障對系統(tǒng)運(yùn)行帶來的不良影響。
2.2.1 基于掃描鏈的測試方法
陸云云[17]等提到掃描鏈大體可以分為兩種,一種存在于芯片內(nèi)部獨(dú)立化元件,另一種存在于芯片的I/O 端口顯示板級制造缺陷,原理如圖1 所示。Bhavani G[18]等提到,有自修復(fù)能力的掃描結(jié)構(gòu)可提高故障測試的定位范圍,采用延遲測試電路等技術(shù)可減小故障測試所需的功耗。
圖1 邊界掃描鏈測試方法原理
2.2.2 內(nèi)建自測試電路
BIST(內(nèi)建自測試方法)的核心是構(gòu)建最小功能單元鏈以及迭代的方法,結(jié)構(gòu)內(nèi)部由開關(guān)、CLB 以及局部連線部分組成[19]。石超[20]等提到BIST 可以直接得到測試結(jié)果,核心部件由ORA(輸出響應(yīng)分析)、BUT(被測單元)以及TPG(測試激勵(lì)生成器)三部分構(gòu)成,結(jié)構(gòu)流程如圖2 所示。成本茂[21]等還提到了CUT (Circuit Under Test),若將TPG 對應(yīng)的電路更換成適配于CUT 的電路,會(huì)使結(jié)果輸出更加便捷。
圖2 內(nèi)建自測試流程
2.2.3 基于群時(shí)延的TSV(透硅通道)故障非接觸測試方法
TSV 屬于密度高,間距小的復(fù)雜高速互連結(jié)構(gòu)。無探針信號可進(jìn)行多音混合測試設(shè)計(jì),通過檢測器得到輸入輸出信號的CF值,分辨率較高[22]。Shang Yuling[23]等提出基于電特性的TSV 多音混合信號模型,所用金屬線功耗小,覆蓋范圍包括歐姆級至百萬歐姆級。測試時(shí)提取并合并子測試向量,利用單卡故障模型有助于減少測試向量,從而降低VLSI 測試成本[24]。不同測試技術(shù)優(yōu)缺點(diǎn)比較如表2 所示。
表2 測試技術(shù)優(yōu)缺點(diǎn)比較
替代修復(fù)技術(shù)的起源于生物系統(tǒng)自修復(fù)[25],原理如圖3 所示,通過劃分小單元來減少故障出現(xiàn)時(shí)所隔離的正常單元的范圍來重定位,實(shí)現(xiàn)了低成本,高效率[25],但硬件資源消耗大。
圖3 實(shí)時(shí)調(diào)度自修復(fù)技術(shù)原理
基于FPGA 的重構(gòu)修復(fù)技術(shù)將粗粒度與細(xì)粒度劃分相結(jié)合:只有低優(yōu)先級故障時(shí),盡可能減小隔離范圍;只有高優(yōu)先級故障時(shí),使用備用模塊解決;當(dāng)高低優(yōu)先級同時(shí)出現(xiàn)時(shí),先刪除部分低優(yōu)先級騰出空間,再解決高優(yōu)先級。
徐偉杰[26]等提到基于SRAM 型的FPGA 技術(shù),采用表決器三選二技術(shù),只要有兩個(gè)正常便不會(huì)報(bào)錯(cuò),但錯(cuò)誤逐步積累并爆發(fā)會(huì)使系統(tǒng)崩潰。Pe?a-Fernández M[27]等提到DCLS(雙核鎖步)進(jìn)行冗余多線程支持和控制流錯(cuò)誤檢測,將兩個(gè)處理器分別執(zhí)行的操作步驟逐一對比,一旦出現(xiàn)不同步的情況便會(huì)觸發(fā)報(bào)警機(jī)制。優(yōu)缺點(diǎn)對比如表3 所示。
表3 替代修復(fù)與容錯(cuò)自修復(fù)優(yōu)缺點(diǎn)比較
Sheikhpour S等[28]提到AES(高級加密標(biāo)準(zhǔn))法,包括循環(huán)碼、時(shí)間、奇偶校驗(yàn)冗余等。Zandevakili H等[29]提到ASIC(專用集成電路結(jié)構(gòu))和BISR(內(nèi)置自修復(fù)技術(shù))。ASIC在最小延遲下,可重構(gòu)基本單元自我修復(fù)后將新的路由網(wǎng)絡(luò)替換故障部位;BISR 處理永久故障,分為故障檢測、故障診斷、故障隔離和冗余分配。
袁霄亮[30]等提到基于細(xì)胞陣列的自修復(fù)技術(shù)(見圖4)。一個(gè)小分子工作時(shí),其他分子處于休眠狀態(tài),總體呈動(dòng)態(tài)重構(gòu),自由度、自主性提高[27]。Rahiminejad E[31]等提到基于神經(jīng)形態(tài)的模擬集成電路,在寬頻率內(nèi)補(bǔ)償受損突觸。
圖4 基于細(xì)胞陣列的自修復(fù)技術(shù)
Carroll R[32]等提到IC 修復(fù),細(xì)化識別節(jié)點(diǎn)后同電壓對比成像結(jié)合貼合各個(gè)面;Fu W[33]等提到貝葉斯技術(shù),以集成數(shù)據(jù)為驅(qū)動(dòng)探測探針卡故障,文本轉(zhuǎn)換為數(shù)字后以網(wǎng)絡(luò)圖的形式可視化;Fan W[34]等提到NOC 內(nèi)部容錯(cuò)機(jī)制,環(huán)面布局利用循環(huán)嵌入不完整節(jié)點(diǎn);Khera V K[35]等提到基于Mesh 的具有路由器級冗余的容錯(cuò)NOC,結(jié)合重構(gòu)算法和備用路由器法,每個(gè)路由器集合中可容忍一個(gè)故障路由器。
綜合上文對安全測試和自修復(fù)技術(shù)的研究分析,將故障注入與測試在自修復(fù)前進(jìn)行來提高中央處理器安全性能,總結(jié)出如圖5 所示的安全協(xié)同結(jié)構(gòu)模型。將故障注入結(jié)合JATG 調(diào)試技術(shù)、Doctor、Pin、SFIS 可更好地提升中央處理器的安全性能??蓽y試設(shè)計(jì)以TAP 為核心,根據(jù)具體情況選擇芯片內(nèi)部或端口的方法。對于特殊結(jié)構(gòu)的封裝集成電路,基本采用內(nèi)建自測試電路,單粒子翻轉(zhuǎn)則可用TSV 法解決。故障修復(fù)以實(shí)時(shí)調(diào)度和實(shí)時(shí)容錯(cuò)自修復(fù)技術(shù)為主,結(jié)合其他領(lǐng)域技術(shù)進(jìn)行修復(fù)也是提高性能的關(guān)鍵一步。
圖5 中央處理器安全協(xié)同模型
隨著工業(yè)控制領(lǐng)域競爭日益激烈,工業(yè)控制芯片中央處理器的安全性得到廣泛關(guān)注。科研工作者們發(fā)掘各種可靠測試與自修復(fù)技術(shù)模型,旨在最終提高中央處理器的安全性。現(xiàn)做三個(gè)方面總結(jié):
(1)軟件和硬件結(jié)合、物理建設(shè)與模擬實(shí)驗(yàn)結(jié)合、設(shè)計(jì)與評價(jià)階段結(jié)合是未來技術(shù)發(fā)展趨勢。
(2)由于硬件的物理性接觸與處理器結(jié)構(gòu)中微小部件的高靈敏度產(chǎn)生矛盾,新技術(shù)開發(fā)應(yīng)以算法設(shè)計(jì)為主體。
(3)系統(tǒng)容錯(cuò)機(jī)制的整體控制模糊性帶來錯(cuò)誤崩潰等安全隱患,采用分布式自控、精準(zhǔn)對點(diǎn)、分塊隔離可有效解決。