電腦硬體故障的自動檢測和自動定位的技術。故障檢測是為瞭測試並確定電腦有無故障;故障定位是為瞭進一步把故障孤立或隔離到系統中的一個最小可替換的部位,如電腦的一塊插件,插件的一個元件等。診斷是這兩個過程的結合,而且是借助電腦自動實現的。

  系統組成和診斷模式 為實現故障自動診斷,通常需要兩個系統:一是資料生成系統,即預先在宿主機上按被診斷的數位網路建立故障模型,計計算測試數據,編制故障字典;二是診斷控制系統,又稱測試系統,由掃入掃出部件、診斷計算機或診斷處理部件和診斷程序組成。掃入部件用於向被測網絡加載測試碼,掃出部件用於回收被測網絡的輸出響應;診斷計算機或處理部件存放診斷數據和診斷程序,並通過執行診斷程序控制數據的掃入掃出,按故障字典分析和定位故障,最後給出診斷報告。

  用一臺計算機(一般是高可靠的小型機或微型機)作為診斷機對另一臺計算機實施故障診斷,稱作他診斷。應用通信技術,從一地對另一地的計算機實施他診斷稱為遠程診斷。在被診斷的計算機內設置叫作“硬核”的相當獨立的診斷處理部件實施故障診斷,稱為自診斷。診斷處理部件一般有較強的容錯能力。在微程序控制的計算機中,以原有的微指令和微操作為基礎,添加少量硬件,使用特殊的微程序來實施故障診斷,稱為微診斷。在多機系統的系統級診斷中,多臺計算機(好機和壞機)之間用互診斷模式實施診斷。

  數據生成技術 計算機診斷離不開測試數據和故障定位數據。隨著數字網絡的規模越來越大,要求數據生成技術既能使診斷數據有較高的測試效率,又能盡量減少生成方法的計算復雜性。

  測試生成算法 按故障模型對給定網絡生成測試碼的方法。佈爾差分法和D算法是最著名的方法,它們都屬確定性算法,即針對固定型故障模型中某一特定故障產生測試碼。

  佈爾差分法是一種代數方法。實現佈爾函數f(X)=f(x1,…,xn)的數字網絡,記為

為檢測xi固定0的故障,網絡的正常輸出值應與相應故障下的輸出值存在差異,即佈爾式

應取值1。式中⊕表示邏輯異或。展開f(X),得

因子fi(1)⊕fi(0)稱為f關於xi的佈爾差分,記作df/dxi,它是xi的變化傳播到網絡輸出的佈爾表示。於是,xi固定0的測試集是如下方程的解

同樣可導出xi固定1的測試方程。這一原理可以推廣到時序電路和多故障模型。

  D算法是一種試探法。網絡的引線值除0,1和表示任意值的x 外,還引進dd 兩個出錯信號值。d 表示引線在正常網絡中取1,故障網絡中取0,而d 反之。D算法的實質是從故障引線出發,先沿著能反映出錯情況的各條單通路或多通路途徑試探,把出錯信號值逐級傳播到網絡的某一輸出線(稱為D驅趕);再從網絡輸出向輸入逐級檢驗D驅趕時所確定的值能否與元件功能一致(稱為一致性操作),直到最終得到一組與D驅趕時的賦值相容的網絡輸入值。D算法采用“立方”運算,特別適用於計算機,是應用最廣泛的測試生成算法,並被推廣到時序電路和多故障模型。

  在D算法基礎上發展起來的九值算法,是把引線值擴充到九個值,每個值都包含正常網絡和故障網絡的引線狀態(0,1或x),它更適於時序電路的測試生成。當扇出線數為n時,向前驅趕的最大試探次數由D算法的2n-1次減少到n次。為提高試探的成功率,還有許多改進的D算法,如加權法、代價分析法和智能試探法等。

  除確定性算法外,還有覆蓋全部故障的全電路測試生成法和選用某些隨機數作測試碼的蒙特卡洛法。

  在整機和部件的測試生成中,除改進確定性算法以適應元件高級化的網絡模型外,還有基於硬件描述語言,借助圖論工具的功能性測試生成法。在系統級診斷中,用好機和壞機之間互診斷的測試響應模型來代替故障模型,從系統圖生成測試。

  故障模擬技術 故障模擬的主要作用是按給定的測試碼對給定的網絡模型計算各種故障的輸出響應,以生成故障定位用的故障字典。

  平行故障模擬是應用較廣泛的一種門級故障模擬方法。若故障模型含m種故障,則對每個測試碼需要模擬的網絡有正常網絡和各種故障網絡共m+1個。針對各網絡的不同點僅在故障元件,且引線值通常隻用計算機的1~2位表示的特點,平行法以計算機單元的某一位對應一個網絡,在字長為w的計算機上,一次便可平行地模擬w個網絡。

  演繹模擬一遍可以模擬全部故障。基本思想是先算出各引線的正常值,再從網絡輸入開始,根據各元件的功能和正常的輸入輸出值,逐級遞推出各元件的故障表。通常,演繹模擬速度很快,但容量較大。

  同時模擬是從演繹模擬發展而來的。元件故障表加進故障響應等內容而成為超級故障表,使多個測試碼模擬節省很多重復操作。這種方法還適用於功能級故障模擬。

  可測性設計 從易於測試出發,增設必要的控制點(輸入)和觀察點(輸出),把大型系統的診斷化為若幹小系統的診斷;把時序網絡的診斷化為若幹組合網絡的診斷。

  增加最少的控制點和觀察點,使網絡分成k個同規模的子網絡,這屬於測試點佈局問題,是可測性設計的重要研究課題。

  在時序網絡的診斷中,對存儲元件進行控制和觀察具有重要意義,但不能為此而增加大量外部引線。較為通用的重要設計方法是使用附加的移位寄存器,即把所有按規則設計的存儲元件連成移位寄存器鏈,隻需兩條外部引線就能實現鏈中所有內部狀態的控制和觀察。