軟性錯誤

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