• 沒有找到結果。

錯誤注入實驗前置作業

在文檔中 中 華 大 學 (頁 41-47)

本章節將會介紹三項錯誤注入實驗前的前置作業,第一項錯誤注入的地點選 擇與錯誤發生機率的決定,第二項錯誤注入工具使用說明,第三項錯誤注入實驗 流程。這三項前置作業非常的重要。

6-1. 錯誤注入的地點選擇與錯誤發生機率的決定

為了更加真實的模擬錯誤在實際的硬體上會發生的狀況,我們需要選擇錯誤 注入的地點以及決定錯誤的發生機率。為什麼要選擇錯誤注入的地點呢?原因在 於選擇了有效的錯誤注入地點可以有效的提升有效性錯誤的發生機率,以增加實 驗的成功率。那為什麼需要知道錯誤的發生機率?原因在於每一個元件的出錯機 率並不一樣,如果錯誤注入產生器(6-2 節)產生出來錯誤的機率都一樣,則無法 真實的模擬出系統在現實環境會遇到的狀況,因此藉由錯誤的發生機率更加真實 的模擬系統在現實狀態中的情形。

先介紹如何選擇錯誤注入的地點,由於本實驗主要的目的在保護系統中的資 料流(data flow),從圖 5-3 當中將指令執行時所經過各個元件的關係分析如圖 6-1、6-2。結果發現可以將把算術邏輯運算器(ALU)的錯誤注入地點分成兩個部 份 : 1.算術邏輯運算器的輸入部分;2.算術邏輯運算器的輸出部分,透過這兩部 分即可對應到指令執行時經過的元件中發生的錯誤,其中算術邏輯運算器的輸入 部分還包括了運算指令(圖 6-1)與運算資料(圖 6-2)這兩部份。而經過了上述的分 析之後,可知把錯誤注入在這兩個地方就可以對應出大部分系統會出錯的可能 性。

ALU (op,func,shamt) partition (op,func,shamt)

Instruction Dispatch

Instruction memory

ALU (data) ALU Control

Forwarding

Register File wb mux Data Memory partition (rs,rt,rd)

Instruction Dispatch Instruction memory

圖 6-2 算術邏輯運算器資料的部份

接下來是決定錯誤的發生機率,在[4]中表示錯誤大多發生在組合邏輯電 路,因此我們利用元件面積大小做為錯誤機率評估的考量,面積越大錯誤發生的 機率也相對的越高。透過累計上一步驟所得到的元件面積如圖 6-1、6-2,結果得 到了算術邏輯運算器輸入(指令部分):算術邏輯運算器輸入(資料部分):算術邏 輯運算器輸出 = 10:60:1。

6-2. 錯誤注入工具使用說明

當我們硬體電路設計完成後,必須進行錯誤注入實驗來驗證容錯能力,要進 行實驗之前,我們必需先要產生錯誤注入檔案,錯誤注入檔案的產生是採用本實 驗室使用 Borland C++ Builder 5.0(BCB)開發出錯誤注入工具。

錯誤注入檔案所需要的基本參數:

1、target:決定錯誤注入的地點。

2、產生錯誤個數:當輸入錯誤注入的地點後,還需要決定注入錯誤(fault) 的總 個數,與每個區域(section)的錯誤個數,為了讓我們模擬更接近真實,錯誤個 數的分佈,會依面積大小隨機分佈在我們決定的錯誤注入地點如 6-1 節所述。

3、錯誤發生時間:我們必需決定錯誤發生的時間,錯誤發生的時間是採用

Weibull 分佈函式,它比較接近一般晶片成品到報廢為止所呈現出來的分布情 形,成品剛出來時會經過 burn in 的方式,加速成品老化,將不穩定或有瑕疵 的成品淘汰,剛開始會有比較多的成品被淘汰,經過 burn in 一段時間後,被 淘汰的數量會漸漸下降,最後趨於平緩,到達消費者手中經過長時間的使用 後,到達成品老化時間時,成品被淘汰的機率又會提高,我們可以依據這種 方式作為我們注入錯誤時間分布狀況。

4、錯誤維持時間:我們有兩種模式可以選擇維持錯誤時間,第一種是採用固定 模式,全部的錯誤維持時間都是相同,第二種是隨機模式,在我們設定的錯 誤維持時間內,每個錯誤隨機產生一個維持時間。

第一步:先決定要產生錯誤注入檔案的數量,如圖 6-3。

圖 6-3 產生錯誤注入檔案案個數示意圖

第二步:在這個視窗當中總共提供九個錯誤注入地點給使用者注入錯誤,透過 6-1 節選出來的地點建立錯誤注入目標檔(target),將我們所要注入錯誤的元件目 標路徑建成一個文字檔,然後在圖 6-4 這個視窗內載入目標檔,載入後視窗會顯 示目標路徑。接下來再輸入我們錯誤注入目標元件的元件面積(Gate Count),這 裡所輸入的元件面積用來決定錯誤的發生機率,可輸入 6-1 節中決定的錯誤發生

圖 6-4 錯誤注入目標與元件面積(Gate Count)

第三步:決定錯誤產生個數與地點的細部參數: 1.α與λ的設定和圖 6-5 一樣不 變; 2.section (區域)是指把測試程式的執行時間切割成幾個區域; 3.F_numb 為 每個區域要產生幾個錯誤; 4.CLKs 是指測試程式的執行時間週期; 5.Clk cycle 是指執行每道長指令需要幾個時間單位; 6.time unit 為 Clk cycle 單位。假設我 們想要產生有 500 個錯誤且執行時間為 15400ns 的錯誤注入檔案,其設定如圖 6-5,而 section 與 F_numb 的比例可以任意調整。

圖 6-5 錯誤環境參數設定

第四步:決定錯誤維持時間(Fault duration),如圖 6-6。在這我們有兩組選單,第 一組是設定的錯誤維持時間型態,包括了 1.Range:錯誤的維持時間在我們設定

的範圍中隨機產生一個錯誤維持時間、2.Fix:每個錯誤的維持時間皆固定以及 3.Forever:錯誤從程式一開始就產生直到程式執行結束。第二組是設定錯誤持續 時間(單位為 ns)、永久性錯誤發生的機率以及永久性錯誤的個數。其中永久性錯 誤發生的機率*總錯誤個數=永久性錯誤的個數。

圖 6-6 錯誤維持時間設定

第五步:圖 6-7 顯示錯誤 Weibull 分布折線圖,表示這一個錯誤注入檔案裡錯誤 的分佈情形,最後按下 Continue 開始產生我們錯誤注入實驗所需要的檔案。

6-3. 錯誤注入實驗流程

圖 6-8 顯示容錯處理器的錯誤注入流程,透過 6-1 與 6-2 節決定好錯誤注入 地點以及產生錯誤注入檔案以後,分別交給兩個容錯處理器利用 Modelsim 軟體 進行模擬,其中有一個需要錯誤注入的容錯處理器稱為實驗組,另一個則為對照 組。模擬時透過錯誤分析器(Error Analysis)收集資料產生波形圖,再將實驗組與 對照組收集好的波形互相比較,最後把比較的結果利用統計分析軟體進行統計分 析。其中值得注意的是,模擬時我們先透過硬體過濾不需要分析的資料才進行統 計,而非模擬完後才把所有的波形圖儲存下來後再進行統計,透過硬體過濾的好 處為:1.統計分析軟體容易撰寫; 2.硬體收集速度快; 3.簡化分析複雜度。但相 對的模擬時間會有一定的下降,不過整體來說還是比靠純軟體分析要快的多。

Fault Injection tool  Automatic fault producer

Irom generator  Test bench producer

Fault Tolerant VLIW

Simulation With Modelsim

Fault Tolerant VLIW

Simulation With Modelsim

Experimental Waveform Error-free Waveform

Generate Comparison Results With Modelsim

Statistic Simulation Results To Derive Fault Tolerant Capability

圖 6-8 驗證流程圖

設定完錯誤注入實驗後,接下來開始進行錯誤注入實驗並且將分析比較實驗 結果。

在文檔中 中 華 大 學 (頁 41-47)

相關文件