基本介紹
定義,分類,相關條目,
定義
軟性錯誤是電子學及電腦運算中的錯誤,是因為一個信號或數據不正確造成的錯誤。軟性錯誤可能是因為缺陷而造成,多半認為是因為設計或是架構上的錯誤,或者是因零件損壞而產生。軟性錯誤也是指信號或數據有錯,但沒有造成系統的異常動作。在確認軟性錯誤及其影響後,無法得到有軟性錯誤後的系統比原系統來的不可靠的結論。在航太領域中,這類錯誤稱為單粒子翻轉。
在電腦的存儲器中,軟性錯誤會造成程式一個指令或是一個數據的改變。若將電腦冷啟動後,軟性錯誤造成的影響就會消失。軟性錯誤不會破壞系統的硬體,唯一破壞的是當時正在處理的數據。
分類
軟性錯誤有兩種:積體電路層級的軟性錯誤,以及系統層級的軟性錯誤。積體電路層級的軟性錯誤一般是因為有高能粒子撞擊到積體電路,例如積體電路本身材料中放射性原子的衰變,會放出α粒子撞擊積體電路,因為α粒子帶有正電荷以及能量,因此若撞擊到某個存儲器單元,存儲器單元中的數值就可能會變化。上述例子中的原子反應非常小,不會影響到積體電路的硬體結構。系統層級的軟性錯誤多半是在要處理的數據被噪聲所影響,多半是在數據在匯流排時發生此情形,電腦會將噪聲解讀為數據比特,因此會造成程式定址或是處理代碼的錯誤。而有錯的數據也可能會存到存儲器中,因此造成後續的問題。
若軟性錯誤立刻就偵測到,可以直接重寫正確的數據即可消除軟性錯誤的影響。高可靠度的系統會用錯誤修正機制,直接在運作中修正錯誤。不過在大部分系統中,無法確定哪一個數據是正確的,甚至完全無法偵測軟性錯誤。而且在修正軟性錯誤前,系統可能已經當機,因此撤消程式需包括重新啟動。軟性錯誤包括存儲電路中數據的變化(例如存儲電路中的電子),但沒有影響到實際電路(原子)。只要重寫正確的數據,電路就會恢復正常工作。軟性錯誤可能發生在傳輸線、數字邏輯、類比電路、磁性存儲媒介等,不過最常見的還是在積體電路中的軟性錯誤。