P
t− det− f −s:從偵測到錯誤的狀態進到安全性失敗(fail-safe)狀態的機率。包 括 了 在 正 常 狀 態 的
P
t−det− f −s−nor 以 及 在 隔 離 狀 態 的recon s f det
P
t− − − − 。
P
t−det− f −uns :從偵測到錯誤的狀態進到不安全性失敗(fail-unsafe)狀態的 機 率 。 包 括 了 在 正 常 狀 態 的P
t−det− f −uns−nor 以 及 在 隔 離 狀 態 的recon uns f det
P
t− − − − 。
P
f − uns−det:系統沒有偵測到錯誤而進入不安全性失敗(fail-unsafe)狀態的機率。包括了在正常狀態的
P
f −uns−det−nor以及在隔離狀態的P
f −uns−det−recon。
P
f −uns−rec:系統因復原失敗而進入不安全性失敗(fail-unsafe)狀態的機率。包括了在正常狀態的
P
f −uns−rec−norr以及在隔離狀態的P
f −uns−rec−recon。
P
nor−recon:系統從正常狀態進入隔離狀態的機率。7-2. 實驗環境設定
本實驗利用硬體描述語言(VHDL)完成此模擬實驗,模擬環境為 Windows XP SP2,模擬軟體為 Modelsim 6.1b。此外在算術邏輯運算器方面採用邏輯閘層級 (Gate-Level)的寫法,因此我們可以將錯誤(Fault)注入到算術邏輯運算器的內部。
我們想要探討系統在面對不同的環境、不同的錯誤回復次數(r_no)以及不同 的測試程式,其設計參數如圖 7-2 的表現為何?在圖 7-2 中探討不同的環境方面 提供了三組不同的實驗:第一組實驗(Experiment1),在系統正常時注入一個錯誤 稱之為實驗 1,第二組實驗(Experiment2),在系統隔離時注入一個錯誤稱之為實 驗 2,第三組實驗(Experiment3),在系統正常時注入兩個錯誤稱之為實驗 3。注 意這些錯誤的持續時間都包括兩種:1.持續時間短(SD),2.持續時間長(LD),並 且第三組實驗當中的兩個錯誤持續時間並不會重複。在不同的錯誤回復次數方 面,正常狀態與隔離狀態各提供了 2 次、4 次與 8 次三種回復次數。另外利用三 種不同的測試程式(workload)來增加實驗結果的可信度,這三種是挑選表 5-3 中
的七個測試程式並且混合組成,測試程式一(workload1)將快速排序(Quick Sort)、
複利葉轉換(FFT)、五乘五矩陣相乘(Matrix 5x5)以及堆積排序(Heap Sort)這四個 測試程式複製三次,再把這 12 個測試程式混合組成; 測試程式二(workload2)混 合了五乘五矩陣相乘(Matrix 5x5)、堆積排序(Heap Sort)與複製三次的
∑
= 5
1
* 2
i
bi ai
迴圈; 測試程式三(workload3)混合了複製兩次的反離散餘弦函數轉換(IDCT)以 及一組階乘(Factorial)迴圈。
從圖 7-2 可以看出每一組實驗 1、2 和 3,都包含了 18 個錯誤注入小實驗,
圖中的每一條路徑皆為一個錯誤注入小實驗。例如:在實驗一中的測試程式一使 用兩次錯誤回復次數,且錯誤持續時間介於 1 到 40 個執行時間週期,這樣的路 徑算一個小實驗。此外每一個小實驗都做了 5000 次的錯誤注入模擬,每次都依 照其組別注入 1 到 2 個不同的錯誤。獲得的實驗結果可以達到 99%的信賴水準以 及 1%的信賴區間。特別強調的是,我們固定了每一個小實驗的錯誤注入地點以 及錯誤發生時間以求公平。也就是說我們將測試程式一,且錯誤持續時間短的錯 誤注入檔案(5000 組),給其他相同錯誤持續時間,但是不同的測試程式以及 r_no 執行。
Experiment
x
Workload 1
Workload 2
Workload 3
r_no = 2
r_no = 4
r_no = 8
r_no = 2
r_no = 4
r_no = 8
r_no = 2
r_no = 4
r_no = 8
SD LD
SD LD SD LD SD LD SD LD SD LD SD LD SD LD SD LD
SD : Short Duration = 1~40 clock cycles LD : Long Duration = 1~80 clock cycles
7-3. 分析與比較結果
接下來的實驗結果是藉由 7-2 節的實驗方法所得到的數據,在此分成六個表 格表示。表格 7-1 到 7-6 是第一組實驗(Experiment1)與第二組實驗(Experiment2) 的比較結果,利用下列七項參數:1.錯誤的偵測涵蓋率(Ce−det); 2.沒有偵測到錯 誤且進入不安全性失敗狀態的機率(
P
f − uns−det); 3.回復涵蓋率(C
e−rec); 4.偵 測到錯誤且進入不安全失敗狀態的機率(P
t−det − f −uns); 5.偵測到錯誤且進入安 全失敗狀態的機率(P
t −det− f −s ); 6.系統從正常狀態進入隔離狀態的機率(
P
nor−recon);7.錯誤回復時造成的效能下降程度(Performance Degradation:PD
)。來分析此兩組實驗的比較結果,探討系統在不同可用資源下對錯誤的容忍度。
表 7-1 的數據呈現出這兩組實驗的錯誤偵測涵蓋率,從此表可以得到一些結 果: 1.
C
e−det−nor>C
e−det−recon從此可以明顯得知正常狀態下的錯誤偵測涵蓋 率比隔離狀態高。這是因為正常狀態的錯誤檢查頻率比隔離狀態高,系統在正常 狀態下使用 4-1-1 節的混合方法檢查錯誤,而隔離狀態卻只有 CMP 在檢查。 2.錯誤偵測涵蓋率會因為不同的測試程式而有所影響,並且隔離後系統的影響比正 常狀態高很多。 3.錯誤的持續時間對正常狀態的系統影響較小。
W1 W2 W3
r_no
2 4 8 2 4 8 2 4 8 Short Duration
nor det
C
e− − (%) 99.18 99.18 99.18 97.93 97.93 97.93 99.27 99.27 99.27 recondet
C
e− − (%) 96.26 96.26 96.26 88.45 88.45 88.45 85.81 85.81 85.81 Long Durationnor det
C
e− − (%) 99.33 99.33 99.33 97.62 97.62 97.62 99.47 99.47 99.47 recondet
C
e− − (%) 97.21 97.21 97.21 91.31 91.31 91.31 89.47 89.47 89.47 表 7-1 錯誤偵測涵蓋率(C
e−det)表 7-2 的數據呈現出這兩組實驗中沒有偵測到錯誤且進入不安全性失敗狀態 的機率,從此表可以得到一些結果: 1.
P
f −uns−det−recon>P
f −uns−det−nor從此可 以得知隔離狀態下的錯誤容易沒有被檢查到而進入不安全失敗狀態。得到這樣的 結果其原因為隔離狀態的可用資源已經變少,並且只有用 CMP 來檢查錯誤導致 錯誤檢查頻率降低。 2.此機率會因為不同的測試程式而有所影響,並且隔離後 的系統影響比正常狀態的系統高很多。 3.錯誤的持續時間對正常狀態的系統影 響較小。W1 W2 W3
r_no
2 4 8 2 4 8 2 4 8 Short Duration
nor det uns
P
f − − − (%) 0.82 0.82 0.82 2.07 2.07 2.07 0.73 0.73 0.73recon uns
P
f − −det− (%) 3.74 3.74 3.74 11.55 11.55 11.55 14.19 14.19 14.19 Long Durationnor uns
P
f − −det− (%) 0.67 0.67 0.67 2.38 2.38 2.38 0.53 0.53 0.53recon uns
P
f − −det− (%) 2.79 2.79 2.79 8.69 8.69 8.69 10.53 10.53 10.53 表 7-2 沒有偵測到錯誤且進入不安全性失敗狀態的機率(P
f − uns−det)表 7-3 紀錄這兩組實驗的錯誤回復涵蓋率,從此表可以得到一些結果: 1.
nor rec
C
e− − >C
e−rec−recon造成這樣的原因與錯誤偵測涵蓋率的第一點相同。 2.錯誤回復涵蓋率會因為不同的測試程式而有所影響,並且隔離後的系統影響比正常 狀態的系統高很多。 3.錯誤回復涵蓋率會隨著 r_no 的增加而增加。
W1 W2 W3
r_no
2 4 8 2 4 8 2 4 8 Short Duration
nor rec
C
e− − (%) 59.76 96.09 97.21 62.57 92.89 94.82 63.2 93.39 95.07recon rec
C
e− − (%) 50.45 84.81 91.61 39.64 66.13 73.01 38.69 66.85 74.56 Long Durationnor rec
C
e− − (%) 31.66 57.75 95 37.17 56.38 87.53 45.23 61.17 91.45表 7-4 紀錄這兩組實驗中錯誤被偵測到且進入不安全失敗狀態的機率,可以 得到下列的結論: 1.
P
t−det− f−uns−nor幾乎小於P
t−det− f −uns−recon,表示在正常狀 態 下 使 用 提 升 偵 錯 頻 率 技 術 大 大 降 低 了P
t−det− f −uns 的 發 生 機 率 。 2.P
t−det− f −uns會因為不同的測試程式而有所影響,而隔離後的系統影響比正常 狀態的系統高很多。 3.系統在隔離狀態下的錯誤容易在回復過程中消失,如圖 7-3。因為隔離狀態下系統的可用資源變少,使得檢查頻率變小且元件再次被檢 查的時間拉長,而讓錯誤容易在再次被檢查之前消失了,而錯誤消失前的這段時 間當中,錯誤依然被激發,只是沒有被檢查到因而感染資料。 4.隔離狀態下 r_no 越高會對系統越不利,且在錯誤維持時間長的狀況下更為明顯。造成這樣的原因 為:維持時間長的錯誤在 r_no 少的狀況中容易進入安全性失敗(fail-safe),而同 樣維持時間長的錯誤隨著 r_no 的增加,也增加了第三點中錯誤在再次被檢查之 前消失的機率,而使得P
t−det− f −uns−recon隨著 r_no 的增加而增加。W1 W2 W3
r_no
2 4 8 2 4 8 2 4 8 Short Duration
nor uns f det
P
t− − − − (%) 1.96 1.96 1.96 3.1 3.1 3.1 4.19 4.19 4.19recon uns f det
P
t− − − − (%) 3.07 4.43 4.65 11.55 15.4 15.44 8.85 11.24 11.24 Long Durationnor uns f det
P
t− − − − (%) 1.9 1.9 1.9 2.94 2.94 2.94 4.31 4.31 4.31recon uns f det
P
t− − − − (%) 1.34 2.34 12.61 6.41 10.71 25.23 5.12 9.64 21.51 表 7-4 錯誤被偵測到且進入不安全失敗狀態的機率(P
t−det− f −uns)表 7-5 提供了這兩組實驗中錯誤被偵測到且進入安全失敗狀態的結果,由此 表可以得到下列的結論: 1.
P
t−det− f −s−nor 與P
t−det− f −s−recon相較之下小很 多。 2.P
t−det − f −s會因為不同的測試程式而有所影響。 3.P
t−det− f −s−recon會 隨著 r_no 的增加而減少。 4.錯誤的持續時間對P
t−det− f −s−recon的影響大於nor s f det
P
t− − − − 。 5.P
t−det− f −s−nor在錯誤持續時間短為 0,其原因為錯誤持 續時間過短以及提升偵錯頻率後的影響。 6.P
t−det− f −s−nor在錯誤持續時間長 會有發生的機率,是因為我們使用了 4-2 節的補強技術,降低P
t−det − f −uns−nor並 且將該錯誤轉移到P
t−det− f −s−nor,增加了系統的可靠度。W1 W2 W3
r_no
2 4 8 2 4 8 2 4 8 Short Duration
nor s f det
P
t− − − − (%) 0 0 0 0 0 0 0 0 0recon s f det
P
t− − − − (%) 42.73 7.02 0 37.27 6.91 0 38.26 7.7 0 Long Durationnor s f det
P
t− − − − (%) 0.47 0.47 0.47 2.79 2.79 2.79 0.51 0.51 0.51recon s f det
P
t− − − − (%) 72.41 48.32 0 62.27 42 0 66.06 43.09 0 表 7-5 錯誤被偵測到且進入安全失敗狀態的機率(P
t −det− f −s)
表 7-6 提供了系統從正常狀態進入隔離狀態的機率以及第一組實驗的錯誤回 復時造成的效能下降程度。可以很明顯的看出
P
nor−recon隨著 r_no 的增加而降低,而從這個結果得知足夠的 r_no 可以有效克服暫時性錯誤(Transient Fault)。在錯誤 持續時間短當中,r_no=2 無法有效率的對付錯誤,因此會有 30%幾的錯誤視為 永久性錯誤而造成系統進入隔離模式。表中顯示 r_no=4 能大大的減少元件隔離 的機會增加元件的可用度,然而這些結果都是我們利用效能的下降換取來的。
W1 W2 W3
r_no
2 4 8 2 4 8 2 4 8 Short Duration
recon
P
nor− (%) 37.44 1.11 0 32.25 1.93 0 31.87 1.68 0PD
(%) 0.178 0.19 0.191 0.179 0.192 0.193 0.165 0.178 0.178 Long Durationrecon
P
nor− (%) 65.3 39.22 1.97 54.77 35.55 4.43 49.42 33.48 3.2PD
(%) 0.222 0.297 0.337 0.232 0.295 0.34 0.226 0.284 0.324 表 7-6 系統從正常狀態進入隔離狀態的機率(P
nor−recon)與錯誤回復時造成的效能下降程度(
PD
)在這裡我們先做實驗一與實驗二的總結從表格 7-1 到 7-6 可以看出系統在正 常狀態下的容錯能力都比隔離狀態來的好。另外可以知道錯誤回復次數(r_no)對 錯 誤 回 復 涵 蓋 率 (
C
e−rec) 、 偵 測 到 錯 誤 且 進 入 不 安 全 失 敗 狀 態 的 機 率 (P
t−det − f −uns)、系統從正常狀態進入隔離狀態的機率(P
nor−recon)、錯誤回復時 造成的效能下降程度(PD
)以及資源的可用度影響很大。雖然錯誤回復次數對大 部分的參數而言都是越大越好,但都是利用效能換取來的。另外值得注意的是當 系統進入隔離狀態後,錯誤回復次數越高反而會提高系統進入不安全性失敗的機 率,因此最好的解決方式就是這兩種回復次數分開計算,正常狀態的回復次數可 以比較多,但隔離狀態的回復次數就不要那麼多。另外第二組實驗的主要目的在 觀察一個永久性錯誤並把元件隔離後的系統對額外的錯誤其容忍度為何。而從表 7-1 到 7-6 可以得知,造成系統在隔離狀態中的容錯能力降低在於 1.可用的元件 變少,2.只能使用比較器(CMP)檢查錯誤。此外我們還在表 7-2 與 7-4 之間發現了造成系統不安全失敗的原因有以下四 點: 1.錯誤激發持續時間過短造成錯誤沒被偵測到就感染了資料。 2.錯誤雖經 由 4-1-1 節技術增加偵測頻率,但還是會有漏掉檢查的機率而導致運算出來的結 果大於資料記憶體(Data Memory)的位址,或回饋(forward)後運算沒有被激發。 3.
系統在回復之前已經先將錯誤的資料寫回檔案暫存器或經由存取指令(SW)存回
資料記憶體。 4.資料記憶體沒有保護機制,例如錯誤回復發生在存取指令(SW) 之後,由於資料記憶體沒有捲回錯誤回復機制(Rollback Error Recovery),當系統 回到上一個檢查點時資料記憶體內原為正確的資料可能變成錯誤的。
第三組實驗與前兩組最大的不同是在於錯誤環境,此實驗包含兩個錯誤,也 就是說這個實驗分析將會比較複雜。我們將這兩個錯誤發生的狀況歸類為以下四 種: 1.兩個暫時性錯誤; 2.第一個為暫時性錯誤再加上一個永久性錯誤; 3.
第一個為永久性錯誤再加上一個暫時性錯誤; 4.兩個永久性錯誤。其中第一點 與第二點會發生的狀況會和第一組實驗相似,都是在健全的系統下注入錯誤。第 三點與第四點會和第二組實驗相似,在隔離的狀態下再注入一個錯誤。因此我們 只會對效能來做分析比較,將三組實驗的效能下降程度記錄在表格 7-7 當中,這 三組數據分別代表了系統在一個錯誤(第一組實驗:
PD _ 1
)、兩個錯誤並且第一 個錯誤為永久性錯誤(第二組實驗:PD _ 2
)、兩個錯誤(第三組實驗:PD _ 3
) 的 環 境 下 效 能 下 降 的 程 度 。 由 此 表 可 以 得 知 下 列 幾 項 結 論 : 1.PD _ 2
>PD _ 3
>PD _ 1
代表了越糟糕的環境對系統效能的影響越大。 2.錯誤 回復次數越高造成的效能下降也越多。W1 W2 W3
r_no
2 4 8 2 4 8 2 4 8 Short Duration
1 _
PD
(%) 0.178 0.19 0.191 0.179 0.192 0.193 0.165 0.178 0.1782 _
PD
(%) 0.379 0.594 0.891 0.398 0.592 0.851 0.342 0.549 0.8533 _
PD
(%) 0.322 0.374 0.375 0.345 0.394 0.395 0.308 0.358 0.359 Long Duration1 _
PD
(%) 0.222 0.297 0.337 0.232 0.295 0.34 0.226 0.284 0.3242 _
PD
(%) 0.396 0.62 1.022 0.451 0.637 0.978 0.362 0.558 0.9753
PD _
(%) 0.380 0.539 0.675 0.454 0.561 0.682 0.448 0.538 0.658 表 7-7 三組實驗的效能下降程度(第一組PD _ 1
、第二組PD _ 2
、第三組