• 沒有找到結果。

實驗結果

在文檔中 摘要 本 (頁 58-70)

實驗統計數據如表格5-6 所示。

AFR EER EDC

100 0.52 0.29 1 200 0.49 0.29 1 300 0.52 0.32 1 400 0.52 0.31 1 500 0.52 0.31 1 表格5-1:即時性自我檢測算數功能元件量化結果(錯誤維持時間 5 Clks)

AFR EER EDC

100 0.52 0.79 1 200 0.56 0.75 1

300 0.54 0.75 0.99173

400 0.55 0.73 0.99378

500 0.55 0.74 0.99504

600 0.56 0.74 0.99578

表格5-2:即時性自我檢測算數功能元件量化結果(錯誤維持時間 30 Clks)

AFR EER EDC 100 0.59 0.76 1 200 0.59 0.78 1 300 0.6 0.84 1 400 0.58 0.80 1 500 0.57 0.79 1 600 0.57 0.79 1 700 0.57 0.78 1 800 0.56 0.78 1 表格5-3:即時性自我檢測算數功能元件量化結果(錯誤維持時間 60 Clks)

AFR EER EDC

100 0.52 0.94 1 200 0.52 0.91 1 300 0.54 0.89 1 400 0.57 0.90 1 500 0.56 0.89 1 600 0.56 0.86 1 700 0.57 0.88 1 800 0.56 0.89 1 表格5-4:即時性自我檢測算數功能元件量化結果(錯誤維持時間 200 Clks)

AFR EER EDC 100 0.56 0.95 1 200 0.57 0.91 1 300 0.58 0.90 1 400 0.60 0.90 1 500 0.62 0.88 1 600 0.61 0.88 1 700 0.61 0.89 1 800 0.61 0.89 1 900 0.60 0.89 1 表格5-5:即時性自我檢測算數功能元件量化結果(錯誤維持時間 500 Clks)

5 30 60 200 500

AFR 0.31 0.55 0.57 0.56 0.61 EER 0.52 0.74 0.78 0.88 0.89 EDC 1 0.995 1 1 1

表格5-6:即時性自我檢測算數功能元件實驗結果

從表格 5-6 可以發現當錯誤維持時間逐漸增長,活動性錯誤比例(AFR)以及 有效性故障比例(EER)也會隨之提升,而活動性錯誤比例在到達 50%-60%之後就 趨於穩定,這是因為測試程式的運算大都是低位元的運算,有較多的位元在運算 過程中的值一直為’0’,而錯誤注入的值是採用’0’與’1’隨機產生,因此大多數注 入值為’0’的錯誤都為非活動性錯誤(Inactive fault)。而有效性故障比例隨著錯誤 維持時間增加而升高的原因相當的顯而易見,這是因為錯誤在執行過程中存在的 時間越久,它就越容易對系統運算結果產生影響。而故障偵測覆蓋率(Error

(Escape)的狀況只有在錯誤注入於兩個運算值其中之ㄧ且又恰好另一個運算值為 3 的倍數,此時該技術才會發生遺漏的狀況,但是這種錯誤發生的機率相當的低,

而整體的故障偵測覆蓋率高達99.5%~100%。

5-1.2看門狗即時性程式指令監督處理器

看門狗即時性程式指令監督處理器實驗錯誤環境參數如下所述:

錯誤注入目標(Fault target list):與控制流程相關的訊號線(永久性錯 誤)、指令記憶體的輸出(暫時性錯誤)錯誤;維持時間:1Clk~3Clk,模 擬時間:3889(Clks)×60(Clk/ns);永久性錯誤機率:如果錯誤注入目標 為與控制流程相關的訊號線則該錯誤為永久性錯誤;Weibull 錯誤發生 頻率階段參數α<1 且α=1(Burn-in+Useful-life);錯誤發生頻率參數λ

=0.001。

在本實驗中為了要模擬記憶體內部所發生的錯誤型態,我們利用 VHDL 硬 體描述語言中的”Resolution Function”,針對指令記憶體(Instruction memory)的輸 出訊號線,重複針對同一條訊號線(錯誤注入目標)於不同的時間點個別注入錯 誤,因此該訊號線有可能在某一個時間點內被多的錯誤注入指令所驅動(Drive),

此時Resolution Function 會依據訊號值產生的先後順序,將最新產生的值分派給 該訊號,換句話說,錯誤的值可能會隨著時間的變化而有所變動。同時為了模擬 記憶體在發生錯誤時周圍的位元有也可能遭受污染,因此在錯誤注入目標產生之 後,如果錯誤注入目標是指令記憶體的輸出訊號線,此時該錯誤可能會影響左右 鄰近1~3 個位元,詳細的錯誤注入描述如圖 5-1 所示:

FreezSignal< output of instruction memory ><fault value><fault duration>

FreezSignal< adjacent bits or oneself ><fault value><fault duration>

. . .

FreezSignal< adjacent bits or oneself ><fault value><fault duration>

圖5-1:模擬記憶體錯誤型態的錯誤描述指令

在本實驗中,先針對兩種不同的測試程式(Benchmark)做錯誤注入量化實 驗,兩組測試程式分別為測試程式一:N 階層、快速排序、5×5 矩陣相乘,以及 測試程式二:離散餘弦反轉換(IDCT),以求得穩定的實驗結果,兩組測試程式的 量化實驗結果如表格5-7:

Benchmark1 Benchmark2 EDC EDL EDC EDL 100 1 2.47 1 4.10 200 1 2.50 0.9950 4.10 300 1 2.50 0.9967 4.09 400 0.9975 2.45 0.9975 4.07 500 0.9960 2.49 0.9940 4.12 600 0.9967 2.51 0.9919 4.11 700 0.9957 2.47 0.9929 4.08 800 0.9962 2.52 0.9925 4.16 900 0.9967 2.45 0.9933 412 1000 0.9960 2.43 0.9940 4.11 1100 0.9955 2.44 0.9945 4.08 1200 0.9950 2.46 0.9942 4.13 1300 0.9954 2.45 0.9938 4.10 1400 0.9957 2.43 0.9943 4.12 1500 0.9960 2.44 0.9947 4.08

表格5-7:看門狗即時性程式指令監督處理器量化實驗結果

在求得穩定的實驗數據之後,由實驗結果分析不同的錯誤注入目標下,看門 狗即時性程式指令監督處理器對於指令記憶體匯流排(Instruction memory bus)以

試程式對於此一錯誤偵測技術有何影響,詳細的分析結果如表格5-8、表格 5-9、

所示:

Benchmark1 (Qsort+N!+5x5)

Benchmark2 (IDCT) Error Detection Coverage 0.9960 0.9947 Error Detection Latency(Clk) 2.44 4.08

表格5-8:測試程式一以及測試程式二實驗結果

表格5-9:指令記憶體匯流排以及控制流程訊號線分析結果

由表格5-9 可以發現測試程式一的故障偵測遺漏大都是出現在控制訊號線,

而測試程式二則是出現在指令記憶體匯流排,這是因為兩個測試程式的特性不同 所導致的結果,因為測試程式一大都是屬於短的程式區塊分布,而測試程式二則 是長的程式區塊居多,詳細的程式區塊分析如表格5-10 所示:

Benchmark1 (Qsort+N!+5x5)

Benchmark2 (IDCT) Fault Number 713 710 Instruction

Memory

Bus Escape Number 1 8 Fault Number 787 790 Control

Flow

Signal Escape Number 5 0

Block≦8 8<Block≦16 16<Block≦32

Quick sort 19 3 1

N! 5 0 0 5x5 6 3 4 IDCT 3 4 20

表格5-10:測試程式程式區塊分析

因為在此一看門狗即時性程式指令監督技術當中,會出現故障偵測遺漏的狀 況有兩種,第一種是發生混疊(Aliasing),這是表示發生故障時所產生的即時簽名 (Run time signature)恰巧與參考簽名(Reference signature)相同,所以看門狗即時性 程式指令監督技術無法偵測到此一故障。第二種則是恰巧跳到錯誤的程式區塊開 頭,這也是此一故障偵測技術沒有辦發偵測到的狀況,而此一故障偵測技術的詳 細介紹請參考[18]。

在此一實驗當中,指令記憶體匯流排發生的故障遺漏大都是出現在程式區塊 大於16 且正在執行的指令順序又恰巧大於 16 的狀況之下,這種狀況是屬於該故 障偵測技術較為薄弱的地方,因為此一看門狗即時性程式指令監督技術是採用混 合式的簽名監督技術(Signature monitor),它包含了垂直簽名監督技術以及水平簽 名監督技術,其中垂直簽名監督技術可以監督整個程式區塊之中的指令執行順序 是否有錯誤發生,但是它的故障偵測延遲時間(Error detection latency)會較長,這 是因為垂直簽名監督技術只會在程式區塊結束時才比較是否有錯誤發生,而水平 簽名監督技術則會在每一道指令執行時便檢查該指令是否為正確的指令順序,但 是此一水平簽名監督技術僅能監督程式區塊小於17 的程式區塊,若程式區塊大 於17(包含 17),則 17 後面的指令都不在水平監督技術的保護之下。因此在分析 測試程式一中所發生的6 個故障遺漏,可以發現大部份的故障遺漏都是出現在控 制流程訊號線,而唯一一個出現在指令記憶體匯流排上的故障遺漏是發生在程式

Fault number Escape number Execution

Time(ns) Inst Control Inst Control

EDC EDL(clk)

Quick sort 97980 291 314 0 2 0.9967 2.68

N! 14350 34 55 0 2 0.9775 2.25 5x5 121010 388 418 1 1 0.9975 2.78

表格5-11:測試程式一中所包含的三個子程式分析結果

在測試看門狗即時性程式指令監督技術後可以發現,此一故障偵測技術在遇 不同的程式區塊分佈時會有不同的弱點出現,如果測試程式是屬於較短的程式區 塊則弱點是出現在控制流程訊號線,若是測試程式是屬於較長的程式區塊則弱點 是出現在指令記憶體匯流排,所以該技術可以針對這兩個弱點再做修正,以求得 更佳的故障偵測覆蓋率。

5-2具容錯能力的超長指令處理器之錯誤注入模擬實驗

此一實驗的目的是藉由錯誤入注模擬實驗測試具容錯能力的超長指令處理 器之容錯能力優略,並且利用錯誤度分析(Fault density analysis)功能測試不同錯 誤環境下具容錯能力的超長指令處理器的表現狀況。

本實驗測試程為一包含

= n ×

i

i

i

B

A

1

、5x5 矩陣相乘、N 階層的混合程式,錯誤 環境設定為,注入錯誤數目:100、500、1000、1500、2000;錯誤維持時間:5、

9、10、11、12、16;模擬時間:4384(Clks)×30(Clk/ns);永久性錯誤機率:0%;

Weibull 錯誤發生頻率階段參數α=1(Useful-life);錯誤發生頻率參數λ=0.001;

錯誤注入目標(Fault target list):執行階段(Execution stage)的四颗算數邏輯運算單 元。

表格5-12 表示在不同的注入錯誤數目但是其餘實驗環境設定皆相同的錯誤 密度分析結果,表格5-13 表示在不同的錯誤維持時間下但是其餘實驗環境設定 皆相同的錯誤密度分析結果。

Fault number

Pi

0.003 0.06 0.72 5.43 19.28 37.47 37.04 1500

0.003

P

8

0.04

P

7

0.32 0.001

P

6

2.76 0.13

00.04 P

5

12.44 1.77

00.15 P

4

28 9.95

2.85 0.22

P

3

34.23 32.69

20.08 3.02

P

2

22.19 55.46

76.88 96.77

P

1

2000 1000

500 100

0.003 0.06 0.72 5.43 19.28 37.47 37.04 1500

0.003

P

8

0.04

P

7

0.32 0.001

P

6

2.76 0.13

00.04 P

5

12.44 1.77

00.15 P

4

28 9.95

2.85 0.22

P

3

34.23 32.69

20.08 3.02

P

2

22.19 55.46

76.88 96.77

P

1

2000 1000

500 100

表格5-12:不同錯誤注入數目的錯誤密度分析

0.001 0.29 3.1 15.9 36.68 43.94 16

0.05 1.12 8.09 30.54 60.29

11

0.02 0.04 1.41 9.01 31.82

57.7 12

- 0.1

P6 -

0.95 0.02

0.04 P5 -

6.65 0.67

0.69 P4 0.11

21.28 6.51

5.22 1.63

P3

37.31 28.32

26.47 16.79

P2

33.72 64.49

67.58 81.47

P1

20 10

9 5

0.001 0.29 3.1 15.9 36.68 43.94 16

0.05 1.12 8.09 30.54 60.29

11

0.02 0.04 1.41 9.01 31.82

57.7 12

- 0.1

P6 -

0.95 0.02

0.04 P5 -

6.65 0.67

0.69 P4 0.11

21.28 6.51

5.22 1.63

P3

37.31 28.32

26.47 16.79

P2

33.72 64.49

67.58 81.47

P1

20 10

9

Fault

5

duration

Pi

表格5-13:不同錯誤維持時間的錯誤密度分析

由此二表格可以發現,當其餘實驗環境參數固定,注入錯誤數目或錯誤維持 時間若增加,則表示錯誤在模擬時間的分佈狀況,較高的比例分部為同一時間存 在多的錯誤,換句話說就是待測物是處於較惡劣的錯誤模擬環境,而錯誤模擬分 析的結果可以幫助設定實驗參數,避免錯誤模擬實驗狀況的重複,可以讓實驗的 結果更為精確以及全面,錯誤實驗結果分別如圖5-2、圖 5-3 所示:

Pmiss

0 0.001 0.002 0.003 0.004 0.005 0.006

100 500 1000 1500 2000

fault occurring frequency

Pmiss

Pmiss

ERC

0.95 0.96 0.97 0.98 0.99 1

100 500 1000 1500 2000

Fault number

ERC

ERC

(a) (b)

圖5-2:(a)不同的錯誤注入數目的故障偵測遺漏機率 (b)不同的錯誤注入數目 的故障恢復覆蓋率

Pmiss

0 0.001 0.002 0.003 0.004 0.005

5 9 10 12 16 20

Fault duration

Pmiss

Pmiss

ERC

0.97 0.975 0.98 0.985 0.99 0.995 1

5 9 10 12 16 20

Fault duration

ERC

ERC

(a) (b)

圖5-3:(a)不同的錯誤維持時間的故障偵測遺漏機率 (b)不同的錯誤維持時間 的故障恢復覆蓋率

錯誤模擬實驗結果表示在不同錯誤環境下故障偵測遺漏機率以及錯誤恢復 覆蓋率的結果,如果當錯誤密度逐漸升高時,表示容錯系統楚瑜一個較差錯誤環 境,此時同一時間發生錯誤的個數較多,所以容錯系統也遭受較為嚴厲的考驗,

這樣的實驗結果也完全符合錯誤密度分析的結果。

在文檔中 摘要 本 (頁 58-70)

相關文件