• 招生咨詢熱線:4008-569-579 
  • 手機版
    用手機掃描二維碼直達商品手機版
招生咨詢熱線
4008-569-579
機構(gòu)主頁 > 培訓資料 > 嵌入式開發(fā):設(shè)計安全關(guān)鍵嵌入式系統(tǒng) — 在運行時檢測SRAM故障的挑戰(zhàn)
機構(gòu)主頁 > 培訓資料>嵌入式開發(fā):設(shè)計安全關(guān)鍵嵌入式系統(tǒng) — 在運行時檢測SRAM故障的挑戰(zhàn)

嵌入式開發(fā):設(shè)計安全關(guān)鍵嵌入式系統(tǒng) — 在運行時檢測SRAM故障的挑戰(zhàn)

來源:廣州達內(nèi)教育        時間:2023-05-30        熱度:52℃        返回列表

在設(shè)計安全關(guān)鍵系統(tǒng)時,國際安全標準對于我們選擇合適的流程和適當?shù)募夹g(shù)來檢測和避免最終產(chǎn)品中的危險故障至關(guān)重要,這些標準確保我們不會像之前的嵌入式開發(fā)工程師一樣陷入同樣的困境。

 

然而,這些標準的危險在于,它們假設(shè)你對底層硬件(如微控制器)有詳細的了解,這可能會導致經(jīng)驗不足的安全工程師實施不安全的設(shè)計。例如,IEC(國際電工委員會)60730標準建議使用棋盤式存儲器測試來檢測B類軟件的可變存儲器中的DC故障,這比看起來更具挑戰(zhàn)性。

 

本文描述了SRAM的邏輯布局和物理布局之間未記錄的差異如何導致我們無意中錯誤地實現(xiàn)了諸如棋盤算法之類的內(nèi)存測試。標準微控制器的數(shù)據(jù)表中通常沒有必要的信息,但幸運的是,內(nèi)存測試算法不受SRAM邏輯和物理布局之間差異的影響。

 

在運行時測試SRAM的缺陷

SRAM存儲器顯然是由IC供應(yīng)商在生產(chǎn)中進行測試的,有缺陷的產(chǎn)品不會運送給消費者。盡管如此,在IC的使用壽命期間,隨機硬件缺陷可能會出現(xiàn),這也是在嵌入式開發(fā)安全關(guān)鍵應(yīng)用中需要在運行時測試微控制器中硬件的原因之一。

 

棋盤式記憶測驗

IEC 60730H.2.19.6.1)等安全標準建議,對于必須符合B級安全等級的應(yīng)用,可以使用棋盤算法來識別SRAM中的某些缺陷(DC故障)。通常選擇棋盤測試,因為它覆蓋了SRAM中最可能的故障,而且速度相對較快,便于將對應(yīng)用程序本身的性能影響降至最低。除了DC故障(一個比特永久地處于高位或低位)外,棋盤算法還可以檢測相鄰比特相互影響的缺陷。

 

SRAM在邏輯上由多個按字組織的位組成。這些字通常為8位、16位或32位寬,但也可以更長。物理上,這些位被組織成陣列,其中每個位通常有八個相鄰的位(見圖1)。位中的物理缺陷可能會影響單個位,使其處于高位或低位(DC故障),或者缺陷可能是兩位分離,在這種情況下,相鄰的侵略單元(圖1中用紫色標記)可能會影響受害單元(圖2中用黃色標記)。攻擊者受害者場景通常被稱為耦合故障。從統(tǒng)計上看,DC故障更可能發(fā)生,但它仍然與檢測最可能的耦合故障相關(guān)。

1-相鄰位之間的潛在耦合故障

 

如果故障正在影響單個位,因此該位一直處于高位或低位,則可以通過寫入值1,通過讀回驗證1,然后寫入值0并讀回驗證0來揭示故障,如圖1所示。另一方面,嵌入式開發(fā)如果缺陷是兩個相鄰位之間的耦合故障,例如第2行中的位列910,則某些模式(例如全1或全0)將不會顯示耦合故障,因為在測試期間單元具有相同的值。

 

相鄰單元(側(cè)面、上方和下方)的這種耦合故障具有相反的二進制值。圖1(右下)說明了第10位中的一位污染了第9位,由于第9位未保持預期值零,因此顯示了耦合故障。

 

SRAM的物理布局與邏輯布局

 

為了使棋盤算法工作,需要知道哪些位是相鄰位。這是一個問題,因為數(shù)據(jù)表通常只描述SRAM的邏輯布局,而不描述SRAM是如何物理組織的。

 

為了理解SRAM的物理布局,必須區(qū)分一次可以訪問一個位的面向位存儲器(BOM)和一次讀寫n位字的面向字存儲器(WOM)。雖然大多數(shù)真實世界的內(nèi)存都是以WOM的形式實現(xiàn)的,但科學文獻中的經(jīng)典內(nèi)存測試算法通常采用BOM實現(xiàn)。

 

對于WOM存儲器,構(gòu)成字的位的物理組織有三大類:相鄰、交錯和子陣列。雖然邏輯布局將每個單詞放在同一列中的前一個單詞下面(類似于地址空間),但相鄰的內(nèi)存將每個單詞放置在同一行中,如圖2所示。交錯結(jié)構(gòu)將字的每個位分離到SRAM陣列的不同列和行中。最后,子陣列組織將一個字的每個位放置在SRAM的不同物理分離塊中?,F(xiàn)實情況是,在嵌入式開發(fā)中,你不知道正確執(zhí)行棋盤測試所需的物理布局。

2-面向單詞的存儲器的物理布局示例

 

棋盤測試的特點和缺點

 

用于實現(xiàn)棋盤式算法的簡單方法是交替地將值0xAA(假設(shè)為8位數(shù)據(jù)字)寫入第一個地址,并將0x55寫入下一個地址。然后驗證該模式以檢測相鄰小區(qū)之間的任何DC或耦合故障。然后使用逆模式重復該過程。如前所述,有一個陷阱:內(nèi)存邏輯布局中的棋盤圖案可能不是底層物理布局中的一個棋盤圖案,如圖3所示。

3-邏輯與物理SRAM的數(shù)據(jù)模式。

 

補償邏輯布局和物理布局之間的差異似乎很明顯,但設(shè)備數(shù)據(jù)表中很少提供必要的信息。那么,你是做什么的?接受較低的覆蓋范圍,畢竟,診斷仍將覆蓋DC故障和相鄰位之間的一些耦合故障?向IC供應(yīng)商請求布局,并為每個設(shè)備定制棋盤測試?或者選擇其他算法?

 

既然你已經(jīng)意識到棋盤測試的潛在缺點,你就可以做出明智的決定了。

 

SRAM運行時測試的替代算法

IEC 60730中針對C級安全級別提出的內(nèi)存測試技術(shù)具有更高的故障檢測覆蓋率,但這些算法屬于可被視為生產(chǎn)測試算法的算法:它們運行時間更長,也檢測到更罕見的故障類型,但通常會破壞存儲在SRAM中的數(shù)據(jù),因為它們在整個SRAM上運行,而不是在子塊中運行。

 

一般來說,對于我們的嵌入式開發(fā)設(shè)計,我們不能很好地容忍這種情況。因此,我們建議你考慮改編自生產(chǎn)測試March算法的混合March算法:這些算法在WOM優(yōu)化實現(xiàn)中可用,并提供高測試覆蓋率。此外,這些混合March算法可以實現(xiàn)為在SRAM的較小重疊部分上運行,以避免一次擦除SRAM中的所有數(shù)據(jù),這意味著可以避免嵌入式系統(tǒng)的重新啟動。March算法的缺點是,它們比傳統(tǒng)的棋盤算法計算量更大,但這是安全關(guān)鍵系統(tǒng)中可能需要的開銷。

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部