• 沒有找到結果。

系統匯流排脆弱模型

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

4-1 系統匯流排脆弱模型

通 常 在 系 統 匯 流 排 上 主 要 有 四 種 傳 輸 資 料 的 模 式: 單 一 筆 讀 取 資 料 (single-read)、單一筆寫入資料(single-write)、爆發式讀取資料(burst-read)和爆發 式寫入資料(burst-write)。很顯然的如果在系統匯流排上發生錯誤,不管是資料發 生錯誤或是傳輸模式發生錯誤都會有可能影響到最後系統發生故障、失敗…等。

因此在系統匯流排中的脆弱度研究中,本篇論文主要針對下列三個觀點:

1. 在不同系統匯流排訊號中注入錯誤後來探討系統匯流排的失敗敏感度。

2. 在不同系統匯流排傳輸模式中注入錯誤後來探討系統匯流排的失敗敏感 度。

3. 探討不同的測試程式(benchmarks)對系統匯流排和系統的可靠度的影響力。

系統匯流排脆弱度模型中使用的參數定義如下:

z x: 在系統匯流排上有可能會發生錯誤的訊號種類個數,如:Haddr、Hdata、

Hsize;

z y: 在系統匯流排中可能的傳輸模式種類個數,如: single-read、single-write、

burst-read 和 burst-write;

z z: 在系統中可能產生的失敗類型個數,如: fatal failure (FF)、silent data corruption (SDC)、correct data/incorrect time (CD/IT)和 deadlock (DL);

z SC(i): ith是在指定系統匯流排其中一個訊號且 1 i x,如在匯流排上有Haddr、

Hdata、Hsize 三種訊號類型可能發生錯誤,因此 x=3則 SC(1)= Haddr、SC(2)=

Hdata、SC(3)= Hsize;

z W(SC(i)): 訊 號 SC(i) 的 bit 數 , 如 :SC(1) 為 Haddr 則 HADDR[31:0] 表 示 W(SC(1))=32SC(2)為 Hdata 則 HDATA[31:0]表示 W(SC(2))=32SC(3)為 HsizeHSIZE[2:0]表示 W(SC(2))=3;

z TW: 所有訊號的總 bit 數,如: W(SC(1))+ W(SC(2))+ W(SC(3))=32+32+3=67;

single-read、single-write、burst-read 和 burst-write 四種傳輸模式,因此 y=4,

則 TM(1)= single-read、TM(2)= single-writeTM(3)= burst-readTM(4)=

burst-write;

z N(TM(j)): 在第 TM(j)傳輸模式下所會發生的傳輸次數;

z TN: 在此系統匯流排中全部傳輸模式下的傳輸次數總合;

z FM(k): kth是指系統匯流排會發生的某種失敗類型且 1 i z,如: 如在匯流排 上有fatal failure、silent data corruption、correct data/incorrect time 和 deadlock 四種失敗類型,因此 z=4,則 FM(1)= fatal failureFM(2)= silent data corruptionFM(3)= correct data/incorrect timeFM(4)= deadlock;

z NE: 沒有影響(No effect),表示當錯誤發生在系統匯流中卻不會影響到此系統 整體運作;

z P (SC(i)): 當如果有錯誤發生在系統匯流排中,此錯誤發生在第 ith個訊號上的 機率,如:在 SC(1)Haddr 匯流排訊號的錯誤發生機率是 80.6%;

z P (TM(j)): 在系統匯流排中使用第 ith種傳輸模式的機率;

z P (FM(K)): FM(K)的發生機率,如: FM(1)fatal failure 錯誤發生機率是 28.87%;

z Pf (i, j) | SC(i), TM(j): 在系統匯流排中錯誤發生在第 ith個訊號上且是在第 j th 種 傳 輸 模 式 下 會 造 成 系 統 發 生 失 敗 的 機 率 , 如: 在 系 統 中 發 生 錯 誤 在 SC(1)Haddr 的訊號線上且是在 TM(1) single-read 的傳輸模式下會造成系統發 生失敗機率是94.4%;

z Pf (i) | SC(i): 不管在何種傳輸模式下系統匯流排中錯誤發生在第 ith個訊號上 且會造成系統發生失敗的機率,如: 在系統中發生錯誤在 SC(1)Hadd 包含四 種傳輸模式下會造成系統發生失敗的機率是93.36%;

z Pf (j) | TM(j):不管在哪一條訊號線上系統匯流排中錯誤發生在第 j th的傳輸模 式 下 且 會 造 成 系 統 發 生 失 敗 的 機 率 , 如: 在 系 統 中 發 生 錯 誤 在 TM(1) single-read 包含所以有的訊號線上會造成系統發生失敗的機率是 73.99%;

z P (FM(K)) | SC(i): 在 SC(i)中會發生 FM(K)的機率,如:在 SC(1)Haddr 中會發 生 FM(1)fatal failure 的機率是 38.87%;

z P (FM(K)) | SC(i), TM(j): 在系統匯流排中發生在第 ith種訊號上且是在第 j th

傳輸模式下會造成系統發生 FM(K)的失敗機率,如: 在系統匯流排中發生在 SC(1)Haddr 訊號上且是在 TM(1) single-read 傳輸模式下會造成系統發生 FM(1)fatal failure 失敗機率是 34.67%;

z P (NE): 錯誤不會對系統造成任何影響的機率;

z P (NE) | SC(i): 當錯誤發生在 SC(i)訊號上卻不會對系統造成影響的機率,如:

SC(1)Haddr 訊號線上 發生錯誤卻不會造成系統失敗機率是 6.64%;

z P (NE) | SC(i), TM(j):當錯誤發生在 SC(i)訊號上且是在 TM(j)的傳輸模式下卻 不會對系統造成影響的機率,如: 當錯誤發生在 SC(1)Haddr 訊號上且是在 TM(1) single-read 的傳輸模式下卻不會造成影響的機率是 24.83%;

本篇論文推導出下列式子來計算系統匯流排的脆弱度:

=

= x

i

i SC W TW

1

)) (

( ;

=

= y

j

j TM N TN

1

)) (

( ……….….……(1)

P (SC(i)) = TW

i SC W( ( ))

; P (TM(j)) =

TN j TM N( ( ))

……… …………..…...(2)

Pf (i, j) | SC(i), TM(j) =

= z |

k

TM(j) i

SC P (FM(K))

1

, )

( ………....….………(3)

Pf (i) | SC(i) = ( ( )) (, ) ( ), ( )

1

j TM i SC j i P j TM P

y

j

f |

×

=

……….……..………….(4)

Pf (j) | TM(j) = ( ( )) (, ) ( ), ( )

1

j TM i SC j i P i SC P

x

i

f |

×

=

………..….……..…..(5)

P (FM(K))|SC(i) =

=

|

y ×

j

TM(j) i

SC P (FM(K)) j

TM P

1

, ) ( ))

(

( ……….(6)

P (FM(K)) = ( ()) ( ( )) ()

1

i SC k FM P i SC P

x

i

|

×

=

………(7)

P (NE)|SC(i),TM(j)=1-

= z |

k

TM(j) i

SC P (FM(K))

1

, )

( ………..(8)

P (NE) =

=

z

k

k FM P

1

)) ( (

1 ………...(9)

W(SC(i))累加起來即可得;TN 代表在此系統匯流排中所有傳輸模式的傳輸次數總 合,因此把全部 TM(j)傳輸模式下所會發生的傳輸次數累加起來即可。

式子(2)中 P (SC(i))是用來求出在系統中如果發生錯誤,會出錯在其中一個訊 號上的機率;P (TM(j))是用來求出其中一個傳輸模式下的傳輸數量佔了全部系統 匯流排的百分比。

式子(3) Pf (i, j) | SC(i), TM(j) 是用來求出系統匯流排中發生在 SC(i)訊號上且 是在 TM(j)的傳輸模式下會造成系統發生失敗機率,因此把 SC(i)訊號上且是在 TM(j)的傳輸模式下所有會發生失敗的機率累加起來,如:在 SC(i), TM(j)下的 fatal failure 的失敗機率加上 SC(i), TM(j)下的 silent data corruption 的失敗機率加上 SC(i), TM(j)下的 correct data/incorrect time 的失敗機率加上 SC(i), TM(j)下的 deadlock (DL) 的失敗機率即為 Pf (i, j) | SC(i), TM(j)

式子(4) Pf (i) | SC(i)是用來求出系統匯流排中同一個 SC(i)訊號中且全部傳輸 模式下發生錯誤會造成系統失敗的機率,因此先求出每一個傳輸模式下在系統匯 流排所佔的百分比後再分別乘上每一個傳輸模式下同一個 SC(i)訊號錯誤後會造 成系統失敗的機率。

式子(5) Pf (j) | TM(j) 是用來求出系統匯流排中同一個 TM(j)傳輸模式中會造 成系統失敗的機率,因此先求出每一個訊號下在系統匯流排所佔的百分比後再分 別乘上每一個傳輸模式下同一個 TM(j)傳輸模式錯誤後會造成系統失敗的機率。

式子(6) P (FM(K))|SC(i) 是用來求出 SC(i)中會發生 FM(K)的機率且不管那 個傳輸模式下,因此先求出每一個傳輸模式下在系統匯流排所佔的百分比再分別 乘上每一個傳輸模式下同一個 SC(i)訊號且相同 FM(K)的失敗機率。

式子(7) P (FM(K))是要求出在系統中 FM(K)失敗總機率,因此先求出每一個 訊號下在系統匯流排所佔的百分比後再分別乘上在 SC(i)中會發生 FM(K)的機 率。

式子(8) P (NE)|SC(i),TM(j) 是用來求出當錯誤發生在 SC(i)訊號上且是在 TM(j)的傳輸模式下卻不會對系統造成影響的機率。

式子(9)P (NE) 則是用來求出整體系統中發生錯誤後不會影響系統失敗的機 率。

式子(4)、(5)反映在系統匯流排中的訊號或是傳輸模式中發生錯誤的失敗敏 感度與脆弱度,而 N(TM(j))、TN、P (TM(j)、Pf (i) | SC(i)、P (FM(K)) | SC(i)和 P (FM(K))都是與測試程式(benchmark)比較有直接相關的參數,因此系統匯流排的 失敗敏感度、脆弱度都與benchmark 都有相關的關係。

4-2 SoC 層級風險評估

系統晶片運用的越來越廣泛,但是當系統晶片運用在需要高安全性上的運用 上時,對於錯誤的強韌度設計和可靠度的認證就是非常必要的,因此國際安全標 準就有訂定出安全的規範,如IEC61508[23][24],若符合其規範則較能保證此 SoC 在運作當中能有相當可靠度與安全性。

對於使用IP-based 所組合成複雜度高的 SoC 或是嵌入式系統,保護整個 SoC 或是嵌入式系統比較沒有效率而且也不符合成本。分析 SoC 或系統的弱點能幫 助設計者不只在與安全性最有關連的區域上投資有限制軟硬體的資源也能了解 在此區域上做投資保護的效益。

舉例來說現今 SoC 運用越來越廣泛且運用在需要高可靠度的產品也愈來越 多如: 汽車電子、航太運用、智慧型機器人…等,所以如果這些產品被宇宙射線 (cosmic rays)照射到 memory,可能會衝擊 memory 中的每一個電容器,因而改變 它們的電荷狀態,或是晶片組在內部的各種各樣干擾源造成資料的不正確,又因 在SoC 中的 IP 越來越多元化,並且 IP 元件中會共同運用同一資料作處理運算的 讀取機率越來越高,或是對同一個memory 作寫入備份的動作的頻率也越來越高,

因此 memory 的資料錯誤會造成整體系統錯誤的影響會有加乘的影響,所以 memory 的資料正確性也值得實驗觀察。

雖然memory 可以使用 ECC (Error Correcting Code)除錯技術,來檢查儲存在 記憶體中的資料是否正確。但因為多了一重除錯步驟,因此ECC RAM 運行速度 會比Non-ECC memory 稍慢。另外由於 ECC memory 加入了同位檢查編碼,故其 運作位元長度會增加,ECC memory 本身也需要多用一顆晶片作為除錯之用。因

此帶有ECC 功能的 memory,會多出一顆晶片作 Registered ECC RAM,目的是 確保資料存取時的穩定性與完整性,所以加入ECC 會減慢讀寫的速度並且會增 加memory bit 數和增加一顆晶片的面積,因此以上的缺點對 SoC 中都是非常不 利的缺點。

因此隨意在 memory 直接加入 ECC 技術並不是最好的防護方法,必須透過 failure mode and effects analysis (FMEA)的步驟來確定系統上的脆弱度和實際上 提供的錯誤容忍度和錯誤改善可靠度。

Memory 受到輻射粒子發生錯誤在某個位址上的字元(word)造成錯誤後,系 統卻可能不會馬上讀取並使用到此位址的內部資料,因此不會馬上造成系統的錯 誤,系統之後也有可能不會再次讀取到此位址因此不會影響系統,另一種則是系 統對之前造成錯誤的位址再次做一次重新寫入新資料的動作,因此下一次系統再 次讀取此位址資料就不會讀取到錯誤的資料。

因此在模擬錯誤注入時需要確認此錯誤注入後系統是否會再次直接讀取使 用到錯誤注入的位址,還是系統會再對此錯誤注入的位址寫入新的資料或是之後 系統沒有再次讀取使用,來確認錯誤注入是否有效,且可以分析出每種不同的 benchmark 對錯誤注入的敏感的程度。

在這個部分中,本篇論文提出在SystemC TLM 層級中可以快速評估 SoC 風 險模型。本篇論文的風險模型是使用 FMEA 的方法並加上模擬錯誤注入的實驗 來測量 SoC 的強韌度。從評估的結果可以得知引起系統失敗的風險度與元件弱 點的排名是有相當密切的關係。

本篇論文將使用以下的參數與式子來建立風險模型:

z n:在 SoC 中需要分析的元件數量;

z z:在 SoC 中會發生的失敗模型數量;

z C(i): ith是指系統其中某個元件且 1 i n;如:在系統上有 ROM、RAM、fream buffer 等多個不同的元件所組成,因此 n=3則 C(1)= ROMC(2)= RAMC(3)= fream buffer;

z FR_C(i):第 ith 元件的失敗機率;

z SFR: SoC 的失敗機率總值;

z SFR_C(i): 由於第 ith元件出錯所導致的 SoC 失敗機率,佔 SoC 失敗機率總 值的百分比;

z R(t): SoC 的可靠度;

z FM(k):在 SoC 中會發生的第 kth種失敗模型,且 1 k z;

z NE: 沒有影響(No effect),表示當錯誤發生在SoC 中卻不會影響到此系統整 體運作;

z P (i, FM(K)):在系統中第 ith元件錯誤導致第 FM(K)的失敗模型發生的機率;

z P (i, NE):在系統中第 ith元件受到錯誤注入後卻不會有影響的機率;

z P(i, SF):在 ith 元件中發生錯誤造成 SoC 失敗的機率;

z S_FM(k):第 kth個失敗模型的嚴重度且 1 k z;

z RPN_C(i):第 ith元件的風險度數值;

z RPN_FM(k):第 kth失敗模型的風險度數值;

可以用錯誤注入的方式來發現隱藏潛在的失敗模型並做分析,因此可以把錯 誤注入到特定一個元件內,導致此元件發生失敗故障後來分析調查此元件失敗會 造成SoC 的整體行為影響。在每個元件都執行錯誤注入後,即可知道 SoC 最容 易發生哪一種失敗模型,並且哪一個元件最容易造成錯誤。參數 z 和 P (i, FM(K)) 可由錯誤注入的實驗得到。

z S_FM:紀錄在錯誤注入實驗中可能發生的失敗模型;

z counter(i, k): 紀錄在 ith個元件注入錯誤發生 kth 失敗模型的數量,且 1 i n;

z no_fi(i): 在 ith個元件執行錯誤注入後卻不會有影響的數量,且 1 i n;

z = 0; S_FM = Φ;

for i = 1 to n //在 ith 元件中執行錯誤注入實驗;//

for j = 1 to no_fi(i)

{將錯誤注入到 ith 元件,並且分析調查此錯誤注入後是否會造成 SoC 系統失敗;

並且確認此次失敗是這次錯誤注入所造成。

if (這次錯誤注入引起的 SoC 失敗類型是新的,因此在之前失敗類型沒有發 現過 S_FM;換句話說,這類失敗類型不在以前的錯誤注入裡發生過) then

{

z = z + 1; 增加失敗類型 S_FM; k = z;

counter(i, k) = counter(i, k) + 1 }

else {

找到相同 k 的失敗類型並且在此 S_FM 類型發生次數上加 1;

then counter(i, k) = counter(i, k) + 1 }

}

在上述的錯誤注入流程中即可得到 S_FM則 P(i, FM(K))可由下列方程式求

得: _ ( )

) , )) (

( ,

( no fi i

k i counter K

FM i

P =

當 1 i n 和 1 k z 可以推導出:

=

= z

k

k FM i P SF

i P

1

)) ( , ( )

,

( ,

P ( i , NE ) = 1 − P ( i , SF )

) , ( ) ( _ )

(

_ C i FR C i P i SF

SFR = ×

很顯然的SoC 的失敗機率和可靠度也可以求得,如下所示:

=

= n

i

i C SFR SFR

1

) (

_

R ( t ) = e

SFR×t

S_FM(k)參數的定義和解釋在 FMEA[25]有詳細的說明解釋,FMEA 的方法 可以找出 SoC 的可能的失敗模型並且分析的失敗模型的影響。本篇論文會假設 在不同的元件中注入錯誤後可能會造成同樣的 SoC 的失敗模型結果影響,但由 於各種不同的失敗模型對SoC 的整體影響嚴重度都不相同。故 S_FM(k)這個參數 就是來表示第kth個失敗模型的嚴重度,且1 k z

本篇論文提出一個利用FMEA 的概念來預估風險度的方法,舉例來說:有一 個ECU 負責來執行運算引擎的控制軟體,其輸出是用來控制引擎。其 ECU 可能 遇到幾種不同種類型的失敗模型,不管是在硬體或是軟體都有可能發生。各種不 同的失敗類型會造成ECU 的輸出對引擎控制產生不同的風險。風險評估是要預 估ECU 可能造成的所有潛在失敗模型與失敗發生的機率,並且評估 ECU 失效對 引擎控制的風險。

接 下 來 本 論 文 提 出 一 個 在 SoC 層 級 中 使 用 使 用 風 險 值 (risk-priority number ,RPN)來評估 SoC 中的元件失效和潛在失敗模型的風險度。換句話說也就 是元件失敗的風險度高低會間接的影響到整體系統的安全度。一旦找出了關鍵的 元件且風險模型也已經確定了,就能運用其他方法來降低風險度,如:加入容錯 設計來改進系統的可靠度。RPN 可以提供分析出需要優先保護的元件。因此可 以降低風險度與有效的保護需要保護的元件和提高系統的強韌度與安全性。

計算:

=

×

×

= z

k

k FM S k FM i P i

C FR i C RPN

1

) ( _ )) ( , ( )

( _ )

(

_ 且 1 i n。RPN_C(i)

是由三個參數所組成,ith元件的錯誤發生機率乘上在 ith元件發生錯誤導致不同 每個的失敗模型的機率再乘上每個失敗模型的嚴重度即可求出 RPN_C(i)。在同 一個元件下可能會產生出不同的失敗模型,所以 RPN_C(i)需要總合 FR_C(i) × P (i, FM(K)) × S_FM(k),且 1 k z。

RPN_FM(k)參數是指 kth 失敗模型的風險度數值,可以使用下列式子計算:

= ×

×

= n

i

k FM i P i C FR k

FM S k FM RPN

1

)) ( , ( ) ( _ )

( _ ) (

_ 且 1 k z 。

=n ×

i

k FM i P i C FR

1

)) ( , ( ) (

_ 是說明在 SoC 中第 kth失敗模型的發生機率。可以預估 每個失敗模型的風險度,即可在需要保護的失敗模型中加入保護,因此可以減少 系統的失敗率。

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

相關文件