鄧 丁,郭 陽
(國防科技大學 計算機學院, 湖南 長沙 410073)
據統計, 1971—1986年的16年期間,國外發射的39顆同步衛星總共出現故障1589次,其中1129次與空間輻射有關[1]。空間輻射對電子器件的影響可分為總劑量(Total Ionizing Dose,TID)效應和單粒子效應(Single Event Effect,SEE)。具體而言,單粒子效應又可細分為單粒子翻轉(Single Event Upset,SEU)、單粒子閂鎖(Single Event Latch,SEL)和單粒子燒毀(Single Event Burnout,SEB)三種子類。其中:后兩者均會導致載體器件發生不可逆轉的永久故障。而單粒子翻轉僅是由于晶體管在外界帶電粒子的轟擊下瞬時充放電,從而造成的邏輯狀態翻轉。一旦粒子轟擊結束,便可以自動恢復正常功能。也即,單粒子翻轉所引發的是一種瞬時故障。事實上,瞬時故障在所有引起計算機系統失效的故障中所占比重接近90%[2],是永久故障的100倍以上[3]。文獻[4]指出,單粒子翻轉是輻射效應的主要形式,在全部由宇宙輻射引發的故障中,55%是單粒子翻轉故障。
由計算機硬件故障所導致的錯誤可分為控制流錯誤和數據流錯誤??刂屏麇e誤主要發生在執行轉移指令時,而數據流錯誤主要是由于存儲或傳輸中的數據因干擾耦合等因素發生錯誤進而引起的系統異常。
針對控制流錯誤,2002年Standford大學CRC實驗室提出了基于軟件簽名的控制流檢查(Control Flow Checking by Software Signature, CFCSS)算法,有效地將分支故障導致系統錯誤的概率從33.7%降低為3.1%[5]。但是,CFCSS算法仍不能檢測到偽分支錯誤、基本塊內部控制流轉移錯誤。文獻[6]通過添加硬件看門狗來檢查程序的控制流錯誤。文獻[7]通過采用市場上常見的調試接口模塊能夠有效及時地檢測到控制流錯誤。……