• 沒有找到結果。

整合不同環境下的工具操作流程

在文檔中 中 華 大 學 (頁 53-66)

工具操作流程的步驟如下:

(一) 開啟script 產生器,其操作介面如圖 5-2 所示。輸入要進行錯誤注入的 系統名稱以及scripts 產生後的名稱。

圖5- 2 Script Generator 操作介面

(二) 選擇設計層級,並依序選擇 script 產生器中的各項 commands,產生 CoWare Platform Architect 可以執行的 tcl scripts 以及 Linux 可以執行的 shall script。

(三) 設定CoWare Platform Architect,執行上一步所產生出來的 shall script,

並收集執行後的結果。

(四) 開啟錯誤注入工具,其操作介面如圖5-3 所示。選擇要產生 OPM 還是 FIM,並設定設計層級及選擇錯誤注入目標。若選擇的是 FIM,要再決 定系統是要進行容錯能力驗證還是FMEA 的分析。

圖5- 3 驗證及錯誤注入工具操作介面

(五) 若設計層級為 Timed Functional Level,設定模組要接在哪一種的 Bus 上。

(六) 使用者若是選擇產生OPM,輸入連接在 Bus 上的 master 個數。

(七) 使用者若是選擇產生FIM,根據設計層級的不同,BCA 使用時間驅動;

而untimed 和 timed functional level 則是使用事件驅動。

(八) 若是選擇時間驅動,使用者必須根據OPM 所收集到的資訊,輸入總模 擬時間,並要決定將模擬時間切成幾個區段、每一個區段內部會激發的 錯誤個數以及每一個錯誤的錯誤持續時間。

(九) 若是選擇事件驅動,其輸入介面如下圖5-4 所示。使用者必須根據 OPM 所收集到的資訊,輸入總錯誤個數以及錯誤的持續時間,並從圖5-4 樹 狀圖所列出來的事件類型中,挑選出一個或多個事件,當作激發錯誤注 入的事件。而每一種事件都有其可以選擇或填入的參數,以圖5-4 為例,

在BurstLength 的事件中,就有長度為 4, 8, 16 可以當作錯誤注入激發的 事件。

圖5- 4 事件驅動輸入介面

(十) 設定完上述提到的相關參數之後,根據在執行錯誤注入工具時,所選擇 產生的模組種類,產生使用者需求的模組。

(十一) 開啟 script 產生器,輸入系統名稱、scripts 產生後的名稱以及錯誤注入 工具所產生出來的OPM 或 FIM 的名稱。並選擇產生自動連線的命令,

產生其scripts 以及 shall script。

(十二) 設定CoWare Platform Architect,執行 script 產生器所產生出來的 shall script,將 OPM or FIM 自動加入系統中,執行系統模擬並收集模擬後的 結果。

在介紹完操作流程之後,接下來將繼續針對timed functional level 提出其操 作實例,並使用事件驅動中的address 事件驅動錯誤注入,示範如何使用本篇論 文中所開發的工具跟CoWare Platform Architect 共同完成錯誤注入及資料收集的 工作。

圖 5-5 為 script 產生器的操作介面,遵循此圖所標示的步驟,產生 CoWare

Platform Archietct 可以執行的 script,並利用這些 script 擷取系統中的重要參數。

如instance name, port name, port parameters。

Step1:

輸入

system name and file name

Step2:

選擇設計層級

Step3:

依序執行下列命令

Step4:

產生

tcl scripts & Shall script

圖5- 5 Script 產生器操作步驟

圖5-6 為錯誤注入工具在選擇事件及輸入事件參數的操作介面,遵循下列的 操作步驟,將可以產生對應的錯誤注入模組。在圖5-6 的樹狀選擇介面中,可以 將事件類型區分為三個層級,分別是:”Read”和”Write”的第一層級;”Burst”

和”Single”的第二層級;以及第三層級的”Address”、“Data”、“BurstLength”…等。

在本範例中是採取事件組合的方式驅動錯誤注入,將第一層級的”Write”、第二 層級的”Burst”、以及第三層級的”Address”組合,產生錯誤注入模組。當 Bus 使 用 Write 傳輸型態、Burst 資料傳遞以及特定位址的情況下,將此筆資料進行錯 誤注入。

Step1:

選擇錯誤注入驅動的方式

Step2:

輸入總錯誤個數

及錯誤持續時間

Step3:

選擇事件類型

Step4:

選擇操作方式

Step5:

輸入錯誤注入的情況

圖5- 6 錯誤注入工具之事件驅動操作步驟

第六章 實驗環境設定及實驗結果

為了驗證本篇論文中所開發出來的工具,其正確性以及應用性,在此章節,

我們設計了以下幾個實驗:

一、 單一事件以及組合事件驅動錯誤注入之模擬實驗。

二、 時間驅動及事件驅動之錯誤注入命中率比較。

三、 透過錯誤注入工具輔助FMEA 進行時的資料收集。

在本篇論文中,所使用的實驗平台是建立在CoWare Platform Architect 上,其系 統架構圖如圖6-1 所示。

圖6- 1 實驗平台架構圖

在此實驗平台上,擁有一個 ARM926 的處理器、ROM、RAM、AHB 匯流 排、APB 匯流排、PV 匯流排、數個 bridge 及模組。各元件的記憶體對應位置如 表6-1 所示,disp 元件的功能是將讀到的資料印出來的 PV slave 元件,此元件的 加入是為了方便驗證實驗結果是否正確。

元件名稱 記憶體位置

ROM 0x00000000 RAM 0x40000000 disp_1 0x80000000 disp_2 0xC0000000 disp_3 0x70000000

表6- 1 元件記憶體對照表

6-1 單一事件以及組合事件驅動錯誤注入之模擬實驗

本實驗的目的是對錯誤注入工具進行功能性的驗證,利用錯誤注入工具產生 出來的模組,加入實際的系統上進行模擬,藉以測試錯誤注入工具產生出來的模 組功能是否正確。在這次的實驗中,我們主要是針對timed functional level 進行 錯誤注入模擬實驗,並使用事件驅動錯誤注入。

實驗主要分成兩大類:

第一類:單一事件驅動錯誤注入

我們利用 OPM 收集到的資訊,將裡面的 address 訊號設定為錯誤注入 的啟動條件,當 bus 上出現特定 address 為 “0x80000000”時,FIM 就會啟 動錯誤注入將address 更改為”0x70000000”,導致原本應該要進行動作的模 組由disp_1 被改成 disp_3,如圖 6.2 所示,左半邊為 fault free simulation 的 實驗結果;右半邊為fault injection simulation 實驗結果。

圖6- 2 單一事件驅動錯誤注入之實驗結果 第二類:組合事件驅動錯誤注入

我們利用 OPM 收集到的資訊,從裡面挑選出四條控制訊號線:write, burst transfer, burst_length and group 進行事件組合。Write 是指 master 對 slave 執行寫入的動作;Burst transfer 是指 AMBA bus 使用 burst 的型態傳輸;

Burst_length 是指當 AMBA bus 使用 burst 型態傳輸時,傳輸資料的長度;

group 是指現在傳輸資料的型態。錯誤注入的啟動條件設定為:當系統現在 執行寫入的動作,使用burst 型態傳輸,burst_length = 8 而且 group = 1 時,

進行錯誤注入。啟動條件對應到實際AMBA bus 的意思是:當系統在執行 寫入的動作,傳輸的型態為burst 而且一次連續傳輸 8 筆資料中的第一筆資 料,即進行錯誤的注入。錯誤注入的值,是擷取原來的數值然後對第一個 位元進行bit-flip,之後再將更改過後的數值送出。實驗結果如圖 6.3 所示,

左半邊為fault free simulation 的實驗結果;右半邊為 fault injection simulation 實驗結果。

圖6- 3 組合事件驅動錯誤注入之實驗結果 6-2 時間驅動及事件驅動錯誤注入命中率之比較

傳統使用 VHDL 或是 Verilog 這些硬體描述語言所設計的錯誤注入方法,大 部份是以時間驅動(timing trigger)當作錯誤注入的觸發條件,並透過不同的錯誤 注入時間分佈模組像是:Weibull 或 Uniform,進行錯誤注入的模擬實驗。但是隨 著設計層級提高到具有Bus 架構的層級,時間驅動是否仍然適用?

在[21]的研究中,針對事件驅動以及時間驅動在錯誤注入的效率上,進行了 實驗並分析比較。本次的實驗是依照[21]的實驗規劃,並利用本篇論文中開發出 出來的錯誤注入工具及script 產生器,完成事件驅動及時間驅動的錯誤注入實驗 並收集實驗結果。

本實驗是針對Bus 中的 burst read 訊號當作錯誤注入的啟動條件,藉此比較兩 種不同錯誤注入驅動方式的命中率,實驗中使用的測試程式分別是50x50 的矩陣

Benchmark

Parameters Matrix(50x50) QuickSort(99 numbers) Clock cycle 4,370,925 42,703

Burst Read Count 421,990 5,443 Hitting rate of fault injection

(Event-driven)

100% 100%

Hitting rate of fault injection (Timing-driven)

5.25% 6.75%

表6- 2 時間驅動和事件驅動錯誤注入命中率之比較表

在表6-2 的參數中,Clock cycle 代表的是測試程式在執行時所使用的時間週 期總數;Burst Read Count 代表的是測試程式在執行時 Bus 中總共出現的 burst read 傳輸次數;Hitting rate of fault injection 代表的分別是時間驅動及事件驅動在 burst read 傳輸時,將錯誤注入的機率。

從表 6-2 的實驗結果可以發現,在不同的測試程式中,事件驅動的錯誤注入 命中率都高達100%;而時間驅動的錯誤注入命中率卻不到 10%。其結果也證明 在Bus 架構的環境下,事件驅動是比較適合用來當作錯誤注入的觸發條件,尤其 是在要進行大量的模擬實驗時,可以節省大量的時間。

6-3 透過錯誤注入工具輔助 FMEA 進行時的資料收集

第三個實驗,根據[21]在研究中所提出的 FMEA 實驗規劃,並利用本篇論文 開發出來的錯誤注入工具及script 產生器,協助收集系統在進行 FMEA 實驗時所 產生的資料,藉此展現出此錯誤注入工具之能力。

本實驗採用的測試程式分別是50x50 的矩陣相乘及快速排序法(排序 99 個數 字),並選擇 Bus 訊號中的 burst read 作為要分析的失敗模型(failure mode)。選擇 Address、Data 及 Access Size 這三種錯誤類型作為錯誤注入目標,接著從測試程

式執行時出現的burst read 總數中挑選出 100 筆執行錯誤注入,並根據這 100 筆 各自的burst length 自動決定要注入錯誤的傳輸次數值(transaction count)。在每次 錯誤注入驅動條件發生時,會從原來的 32 位元訊號中隨機挑選一個位元進行單 一位元翻轉(single bit-flip)的動作,最後將這 100 次 50x50 矩陣相乘及快速排序法 的錯誤注入實驗結果分別統整至表6-3 及 6-4 中,實驗結果如下表 6-3 及 6-4 所 示。系統失敗類型共分為五類分別是:造成系統當機或是執行程序停止的 Fatal Error(FE)、執行時間正確但結果錯誤的 Silent Data Corruption(SDC)、執行結果正 確但時間錯誤的 Correct Data/Incorrect Time(CD/IT)、程式執行進入無窮迴圈的 Deadlock(DL)及沒有對系統造成影響的 No Effect(NE)。

表6-3 為 50x50 矩陣相乘在 burst read 傳輸時發生錯誤,會導致各種失敗類 型的機率。以Address 為例,各失敗類型的機率分別是:21% FE、44% SDC、6%

CD/IT、1% DL 及 28% NE。Data 及 Access Size 以此類推;表 6-4 為快速排序法 在burst read 傳輸時發生錯誤,會導致各種失敗類型的機率。以 Address 為例,

各失敗類型的機率分別是:19% FE、12% SDC、12% CD/IT、1% DL 及 56% NE。

Data 及 Access Size 以此類推;表 6-5 列出不同的測試程式在 burst read 傳輸發生 錯誤時,導致各種失敗類型的機率。

從下列的實驗結果中,可以看到系統在執行矩陣相乘時的錯誤敏感度是較高 的。而且根據初步的實驗結果可以推論出,FMEA 的結果會因為不同測試程式的 特性而受到影響。

Failure type

Fault types FE SDC CD/IT DL NE

Address 21% 44% 6% 1% 28%

Data 3% 45% 0% 1% 51%

Access Size 3% 43% 28% 1% 25%

表6- 3 50x50 矩陣相乘之 FMEA 分析結果

Failure type

Fault types FE SDC CD/IT DL NE

Address 19% 12% 12% 1% 56%

Data 7% 17% 13% 2% 61%

Access Size 7% 21% 69% 0% 3%

表6- 4 快速排序法之 FMEA 分析結果

FE SDC CD/IT DL NE

Matrix(50x50) 9% 44% 11.3% 1% 34.7%

QuickSort 11% 16.7% 31.3% 1% 40%

Matrix + QuickSort 10% 30.4% 21.3% 1% 37.3%

表6- 5 不同測試程式之 FE、SDC、CD/IT、DL 及 NE 機率

在文檔中 中 華 大 學 (頁 53-66)

相關文件