• 沒有找到結果。

實驗環境與實驗結果

在文檔中 中  華  大  學 (頁 49-81)

5-1 實驗環境

本篇論文挑選了一個較為明顯反映出錯誤且架構完整性較高的系統作 為實驗的例子,本論文挑選了 JPEG 平台架構為基準範例如圖 5-1,是以 ARM926EJS 為 CPU 核心元件、內部分別有 AHB、APB 兩種系統匯流排和 ROM、

RAM、DMA、Interrupt 基本周邊元件和擴充外部記憶體 extMem、存放圖片資訊 的frameBuffer、載入讀取圖片的 Input、顯示出圖片的 lcdWrapped 等元件,因有 ARM926EJS 為 CPU 核心因此可以在上面執行其他測試程式,可以做為程式不同 的互相比較分析,但是其他測試程式中主要只會運用到ARM926EJS、ROM、RAM、

AHB…等主要元件。

此平台是以無 OS 作業系統下的平台,是以載入 AXF 映像檔案方式,因此 ARM 會去 ROM 讀取指令後去 Input 元件抓取圖片資訊,並放到暫存 RAM 做壓 縮解壓縮運算,運算完畢後把每一個點(pixels)的 RGB 資料儲存到 frameBufferr 內,當frameBuffer 儲存到一個資料量時再由 DMA 把 frameBuffer 內的資料搬移 到lcdWrapped,顯現出圖片。

為了使圖片的處理更加多元,增加測試樣本的多樣性,除了將圖片進行解壓 縮以外此系統晶片另外會將圖片進行反白與再反白的動作,因此同一張圖像會經 過圖5- 1 正常的解壓縮並顯示圖片、圖 5-2 將圖片作反白的動作並顯示出圖片與 圖5-3 把第二次反白的圖片再作一次反白的動作還原成原本正常圖片共三次的處 理。lcdWrapped 則是最後顯示出圖片的元件,因此我們在此元件做收集最後系統 處理結束後的圖片資料動作,當作日後錯誤注入後資料結果是否正確的比較依據。

其在CoWare Platform Architect 上執行的過程將由以下幾張圖片來做展示:

圖5- 1 正常圖片解壓縮 圖5- 2 圖片反白中

圖5- 3 反白後圖片 圖 5- 4 反白圖片還原中

圖5- 5 還原後圖片

圖5- 6 以 CoWare 為平台建立 JPEG 的架構連接圖

當 要 模 擬 AHB 匯 流 排 上 的 錯 誤 時 , 錯 誤 注 入 模 組 (fault injection module ,FIM)放在 AHB 和 Slave 元件端中間如圖 5-6,把 slave 端的元件改為 PV protocol 並且接上 PV BUS,如此一來只要任何一個 master 要讀寫任一個 salve 端的元件都會經過 AHB 再經過錯誤注入模組後再去讀寫 slave 端,因此在經過 錯誤注入模組時發生錯誤,即可以藉由此方式模擬AHB 上的錯誤並分別模擬不 同fault model 的注入結果,之後可分析每一種訊號線與傳輸模式在 AHB 上發生 錯誤的分析、錯誤的反應現象等。

圖5- 7 模擬 AHB BUS 上的錯誤架構圖

如果需在單一個slave 端分析此元件的錯誤的反應現象與錯誤的脆弱度,則 只需把此slave 元件改為 PV protocol 並且在元件與 AHB 中間加入錯誤注入模組 如圖5-7,因此只要各個 master 端要對此單一 slave 元件做讀取寫入的動作都會 經過此錯誤注入模組,master 對此 slave 做讀取資料的動作時錯誤注入模組執行 錯誤注入,可以藉由此方式模擬此slave 被輻射汙染後再被讀取資料的錯誤情形;

當 master 對此 slave 做寫入的動作時執行錯誤注入即可以模擬讀寫資料後 slave 被輻射汙染造成資料發生錯誤情形,如果此slave 只是記憶體性質在寫入時做錯 誤注入的動作可能須要等待到下一次有讀取到此筆被汙染到的資料才能反映出 此次的錯誤,或是需要等待到下一次被汙染到的位址做寫入的動作才會把錯誤清 除、修正成為正確的資料。

圖5- 8 模擬單一 slave 上的錯誤架構圖

5-2 AMBA AHB 脆弱度分析

本實驗主要是在 CoWare Platform Architect 平台上的 ARM-base 做 AMBA 中的 AHB 匯流排訊號傳輸的脆弱度分析,在這個平台中是用 Timed Functional Transaction-Level Modeling 為主要實驗模型。並且使用第四章(1) (7)的脆弱分 析 模 型 來 分 析 AMBA 的 AHB 匯 流 排 。 本 實 驗 主 要 是 分 析 AHB 中 的 HADDR[31:0]、HSIZE[2:0]、HDATA[31:0]三種訊號。在此系統上做錯誤注入後 可以分為下列的失敗模型:

z Fatal failure (FF):此失敗類型指受到錯誤的注入後,系統無法繼續正常運作 且關閉程式的情形。

z Silent data corruption (SDC):此失敗類型是指受到錯誤注入後,資料上與沒 有錯誤注入的資料不相同的情形。

z Correct data/incorrect time (CD/IT): 此失敗類型指是受到錯誤注入後,資料 上還是與沒有錯誤注入的資料相同,但系統執行時間提早或是延後結束的 情形。

z Deadlock (DL): 此失敗類型是指受到錯誤注入後,導致系統無法結束進入

無窮迴圈的情形。(本論文在此設定如果執行時間超過原本正常結束時間的 1.5 倍,即判斷此失敗類型為 Deadlock。)

在 address 上會有一種需要注意的現象 Address Alignment,舉例來說:如果 master 透過 AHB 跟 slave 讀取或寫入資料都會送出 address 告知要讀取或寫入的 位址,因此如果位址是0x0,size 為 8 則會抓 0~7 bit、位址在 0x4,size 為 16 則 會從位址0x4~0x5 抓 0~15 bit、位址在 0x8,size 為 32 則會從位址 0x8~0x11 抓 0~31 bit(如圖 5-9)。

0x9 0x0

0x4

0x1 0x2 0x3

0x5 0x6 0x7

0x8 0xA 0xB

0 8 16 24 31

圖5- 9 address 與 Hsize 讀取資料圖

但是如圖5-10 如果位址在 0x3,size 為 16 則會從位址 0x3~0x4 抓 0~15 bit,

但是會跳到下一行,此時就發生了Address Alignment,因此 slave 端 HRESP[1:0]

就會發送出Error 的訊號,導致系統發生 FF 失敗類型。

0x9 0xA

0x0

0x4

0x1 0x2 0x3

0x5 0x6 0x7

0x8 0xB

0 8 16 24 31

圖5- 10 位址在 0x3 則 Hsize 為 16 讀取狀況圖

如果位址在0x2,size 為 32 則會從位址 0x2~0x5 抓 0~31 bit 如下頁圖 5-11 所示,但是會跳到下一行,此時就發生了 Address Alignment,因此 slave 端 HREAP[1:0]就會發送出 Error 的訊號,導致系統發生 FF 失敗類型。

0x9 0x0

0x4

0x1 0x2 0x3

0x5 0x6 0x7

0x8 0xA 0xB

0 8 16 24 31

圖5- 11 位址在 0x2 則 Hsize 為 32 讀取狀況圖

另外如果在HADDR 上執行錯誤注入後卻發生失敗的情況有:

z Address 被錯誤注入後還是落在原本的 Slave 的 address 範圍中。

(如:圖 5-12 原本此 ARM 是在對 ROM 的 address 0x8 作讀取動作,但是經過 address 錯誤注入後卻跳到 ROM 的 address 0xA 作讀取動作,還是落在原 本的ROM 的 address 範圍中)

因此有兩種可能性發生確還不會造成失敗的原因有:有可能會發生 Address Alignment,造成系統發生 FF 的失敗類型,另外是可能沒有發生 Address Alignment,因此只是讀寫到錯誤的資料。

圖5- 12 位址發生錯誤後還落在原本的 Slave 的 address 範圍中  

         

ROM

RAM

lcdWrapped ARM

0x0

0x40000 0x4000000

0x4080000 0xa000000

0xa001000

z Address 被錯誤注入後落在非原本的 Slave 的 address 範圍中。

(如:圖 5-13、5-14 原本此 ARM 是在對 ROM 作讀取動作,但是經過 address 錯誤注入後卻跳到RAM 或是未預先設定的 Address 合法範圍中作讀取動作)

„ 可能落到了其他 Slave 的 address 範圍中,可能會發生 Address Alignment,

造成系統發生FF 的失敗類型;另外可能沒有發生 Address Alignment,

因此只是讀寫到錯誤的資料;在無法寫入的slave 中作寫入的動作造成 系統發生FF 的失敗類型。

„ 可能落到了沒有預先設定的 Address 合法範圍中造成系統發生 FF 的失 敗類型,此類型佔為大多數。

圖5- 13 位址發生錯誤後卻落在其他 Slave 的 address 範圍中

圖5- 14 位址發生錯誤後卻落在沒有定義的範圍位址中

ROM

RAM

lcdWrapped ARM

0x0

0x40000 0x4000000

0x4080000 0xa000000

0xa001000

ROM

RAM

lcdWrapped ARM

0x0

0x40000 0x4000000 0x4080000 0xa000000

0xa001000

未定義範圍

HADDR 錯誤注入後但結果還是正確的情況:

z Address 被錯誤注入後還是落在原本的 Slave 的 address 範圍中:可能沒有發 生Address Alignment,資料雖不相同,但是 Size 上的關係讀寫到的有效資 料卻相同,如圖5-15;可能讀寫到相同的資料,如指令或是資料有些有重複 性;錯誤注入的位址的資料還沒被讀取且又對同一位址執行寫入更新資料,

之後就會讀取到被更新過的資料。或是此筆資料不影響程式結果的運算結 果。

圖5- 15 資料雖不相同,但 Size 上的關係讀寫到的有效資料卻相同

z Address 被錯誤注入後落在非原本的 Slave 的 address 範圍中:可能落到了其 他Slave 的 address 範圍中且沒有發生 Address Alignment,資料雖不相同,

但是 Size 上的關係讀寫到的有效資料卻相同;可能讀寫到相同的資料;錯 誤注入的位址的資料還沒被讀取使用且又對同一位址執行寫入更新資料,之 後就會讀取到被更新過的資料;或是此筆資料不影響程式結果的運算結果。

HSIZE 發生錯誤的情況:

z Hsize 被錯誤注入後,被更改為比原本的 Hsize 還要小:如原本 Hsiz 資料長 度為32bit,卻被更改為 8 bit,因此只有擷取到後面 8bit 的資料,導致資料 錯誤如圖表 5-16;可能造成 Address Alignment 造成系統發生 FF 的失敗類 型。

z Hsize 被錯誤注入後,被更改為比原本的 Hsize 還要大: 如原本 Hsiz 資料長 度為8bit,卻被更改為 32 bit,可能造成 Address Alignment 造成系統發生 FF 的失敗類型;可能沒有發生Address Alignment,讀寫到錯誤的資料。

圖5- 16 原本資料長度為 32bit,卻被更改為 8 bit

HSIZE 錯誤注入但結果還是正確的情況:

z Hsize 被錯誤注入後,被更改為比原本的 Hsize 還要小:如原本 Hsize 資料長 度為32bit,卻被更改為 8 bit,因此只有擷取到後面 8bit 的資料,又因原本 資料只有使用到8 bit,因此不受影響,如圖 5-17;錯誤注入的位址的資料 還沒被讀取使用且又對同一位址執行寫入更新資料,之後就會讀取到被更新 過的資料;此筆資料不影響程式結果的運算結果。

圖5- 17 原本資料長度為 32bit,卻被更改為 8 bit

z Hsize 被錯誤注入後,被更改為比原本的 Hsize 還要大:如原本資料長度為 8bit,卻被更改為 16、32bit, 但是有效資料還是只有 8 bit 部分,因此不會 改變到原始的資料,如圖5-18;錯誤注入的位址的資料還沒被讀取使用且又 對同一位址執行寫入更新資料,之後就會讀取到被更新過的資料;此筆資料 不影響程式結果的運算結果。

圖5- 18 原本資料長度為 8bit,卻被更改為 16、32bit)

HDATA 發生錯誤的情況:

z 錯誤注入後資料與原始資料不同。

HDATA 錯誤注入但結果還是正確的情況:

z 因 HDATA 總共為 32bit,因此 32bit 都有可能受到輻射感染,但當下傳輸的 資料只有使用到8 或是 16 bit 時錯誤注入到沒有使用到的 bit 資料線上就不 會受到影響,如圖5-19;錯誤注入的位址的資料還沒被讀取使用且又對同一 位址執行寫入更新資料,則就之後就會讀取到被更新過的資料;此筆資料不 影響程式結果的運算結果。

圖5- 19 當下再傳輸的資料只有使用到 8bit

下列將會說明本篇論文將會做分析AHB 匯流排使用到的參數:

z x = 3, {SC(1), SC(2), SC(3)} = {HADDR[31:0], HSIZE[2:0], HDATA[31:0]};

{W(SC(1)), W(SC(2)), W(SC(3))} = {32, 3, 32}

z y = 4, {TM(1), TM(2), TM(3), TM(4)} = {Burst-Read (BR)、Burst-Write (BW),、

Single-Read (SR)、Single-Write (SW)}; N(TM(j)), j = 1 to 4 z z = 4, {FM(1), FM(2), FM(3), FM(4)} = {FF, SDC, CD/IT, DL}.

本篇論文會使用下列測試程式做為錯誤注入實驗的分析比較:

z JPEG :主是要由 255x154 像素的圖片做壓縮解壓縮的運算及顯示圖片。

z Matrix multiplication:主要是 50x50 的數字矩陣相乘。

z Quicksort :主要是由 3000 筆的資料使用 Quicksort 方式做排列 z FFT:主要是由 256 的筆資料做快速傅立葉轉換的運算

可由表5-1 得知四個不同的測試程式中四種傳輸模式的筆數、執行的 Cycles 數及四個測試程式各個平均值。

Cycles BR BW SR SW Total

QS 3887348 470416 5 251677 30007 752105 M-M 4689502 403083 2 265196 10102 678383

FFT 8060732 1059811 29365 441430 118058 1648664 JPEG 21115374 18584 19632 1457996 325063 1821275

Avg. 9438239 487974 12251 604075 120808 1225108 表5- 1 測試程式的資料傳輸與平均統計表

在表5- 2 到表 5-5 中展現出不同測試程式、不同傳輸模式、不同訊號線上執 行500 次錯誤注入後的結果,P (FM(K)) | SC(i), TM(j),且 i = 1 到 3, j = 1 到 4 和 k = 1 和 4。則 500 次的錯誤注入是為了即使錯誤注入的次數增加也不會造成不同 的失效模式的機率有太大的影響,則圖 5-20 是以在 JPEG 的測試程式中

在文檔中 中  華  大  學 (頁 49-81)

相關文件