0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

設(shè)計(jì)安全關(guān)鍵型嵌入式系統(tǒng):在運(yùn)行時(shí)檢測(cè)SRAM故障的挑戰(zhàn)

星星科技指導(dǎo)員 ? 來(lái)源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Henrik Nyholm,Jacob ? 2022-10-24 10:01 ? 次閱讀

作者:Henrik Nyholm,Jacob Lunn Lassen

在設(shè)計(jì)安全關(guān)鍵系統(tǒng)時(shí),國(guó)際安全標(biāo)準(zhǔn)對(duì)我們選擇適當(dāng)?shù)牧鞒毯瓦m當(dāng)?shù)募夹g(shù)來(lái)檢測(cè)和避免最終產(chǎn)品中的危險(xiǎn)故障至關(guān)重要。這些標(biāo)準(zhǔn)確保我們不會(huì)像我們之前的安全工程師一樣陷入同樣的困境。

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

本文介紹了SRAM的邏輯和物理布局之間未記錄的差異如何導(dǎo)致我們無(wú)意中錯(cuò)誤地實(shí)現(xiàn)內(nèi)存測(cè)試,例如棋盤(pán)算法。標(biāo)準(zhǔn)微控制器的數(shù)據(jù)表中通常沒(méi)有必要的信息,但幸運(yùn)的是,有些內(nèi)存測(cè)試算法不受SRAM邏輯和物理布局差異的影響。

在運(yùn)行時(shí)測(cè)試 SRAM 是否存在缺陷

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

棋盤(pán)記憶測(cè)試

IEC 60730 (H.2.19.6.1) 等安全標(biāo)準(zhǔn)表明,對(duì)于必須符合 B 類安全級(jí)別的應(yīng)用,可以使用棋盤(pán)算法來(lái)識(shí)別 SRAM 中的某些缺陷(直流故障)。通常選擇棋盤(pán)測(cè)試,因?yàn)樗w了SRAM中最可能的故障,并且相對(duì)較快,這便于最大限度地減少對(duì)應(yīng)用本身的性能影響。除了直流故障(位永久卡在高處或低位)之外,棋盤(pán)算法還可以檢測(cè)相鄰位相互影響的缺陷。

SRAM在邏輯上由以單詞組織的許多位組成。這些字通常為 8 位、16 位或 32 位寬,但也可能更長(zhǎng)。在物理上,這些位被組織在數(shù)組中,其中每個(gè)位通常有八個(gè)相鄰位(參見(jiàn)圖1)。位中的物理缺陷會(huì)影響單個(gè)位,使其卡在高處或低位(直流故障),或者缺陷可能處于兩個(gè)位的分離中,在這種情況下,相鄰的侵略者單元(在圖1中標(biāo)記為紫色)可能會(huì)影響受害單元(在圖1中標(biāo)記為黃色)。攻擊者-受害者的情況通常被稱為耦合故障。從統(tǒng)計(jì)學(xué)上看,直流故障更容易發(fā)生,但檢測(cè)最可能的耦合故障仍然相關(guān)。

pYYBAGNV8kqAJbcNAADW-1NsJEo214.png

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

如果故障影響單個(gè)位,使該位卡在高位或低位,則可以通過(guò)寫(xiě)入值 1,通過(guò)回讀來(lái)驗(yàn)證值 1,然后寫(xiě)入值 0 并通過(guò)回讀來(lái)驗(yàn)證零,如圖 1 所示。另一方面,如果缺陷是兩個(gè)相鄰位之間的耦合故障,例如第2行中的位列9和10,則某些模式(例如所有1或全部0)不會(huì)顯示耦合故障,因?yàn)閱卧裨跍y(cè)試期間具有相同的值。

諸如相鄰單元(側(cè)面,上方和下方)之類的耦合故障具有相反的二進(jìn)制值。圖 1(右下角)說(shuō)明了位 10 中的位污染了位 9,并且由于位 9 不保持預(yù)期值 0,因此揭示了耦合故障。

SRAM 的物理與邏輯布局

要使棋盤(pán)算法正常工作,需要知道哪些位是相鄰位。事實(shí)證明,這是一個(gè)問(wèn)題,因?yàn)閿?shù)據(jù)手冊(cè)通常只描述SRAM的邏輯布局,而不是SRAM的物理組織方式。

要了解SRAM的物理布局,必須區(qū)分面向位的存儲(chǔ)器(BOM)和面向字的存儲(chǔ)器(WOM),前者當(dāng)時(shí)可以訪問(wèn)一個(gè)位,后者在當(dāng)時(shí)讀取和寫(xiě)入n位字。雖然大多數(shù)現(xiàn)實(shí)世界的內(nèi)存都是以口碑形式實(shí)現(xiàn)的,但科學(xué)文獻(xiàn)中的經(jīng)典內(nèi)存測(cè)試算法通常采用BOM實(shí)現(xiàn)。

對(duì)于口碑存儲(chǔ)器,構(gòu)成單詞的位的物理組織有三個(gè)主要類別:相鄰、交錯(cuò)和子數(shù)組。邏輯布局將每個(gè)單詞放在同一列中前一個(gè)單詞的下面(類似地址空格),但相鄰的記憶將每個(gè)單詞放在同一行中,如圖 2 所示。交錯(cuò)架構(gòu)將單詞的每個(gè)位分隔到SRAM陣列的不同列和行中。最后,子陣列組織將單詞的每個(gè)位放在SRAM的不同物理上獨(dú)立的塊中?,F(xiàn)實(shí)情況是,您不知道正確實(shí)施棋盤(pán)測(cè)試所需的物理布局。

pYYBAGNV8lOAFzI7AACW13Bc_UM973.png

圖 2 - 面向單詞的記憶的物理布局示例。

棋盤(pán)測(cè)試的性能和缺點(diǎn)

實(shí)現(xiàn)棋盤(pán)算法的簡(jiǎn)單方法是交替地將值0xAA(假設(shè)是8位數(shù)據(jù)字)寫(xiě)入第一個(gè)地址,并在下一個(gè)地址中0x55,直到所有被測(cè)地址都用1和0的棋盤(pán)模式填充。然后驗(yàn)證該模式以檢測(cè)相鄰單元之間的任何直流或耦合故障。然后使用反向模式重復(fù)該過(guò)程。如前所述,有一個(gè)問(wèn)題:內(nèi)存邏輯布局中的棋盤(pán)模式可能不是底層物理布局中的棋盤(pán)模式,如圖 3 所示。

pYYBAGNV8luAVcMWAAE3Hx4nZtU963.png

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

補(bǔ)償邏輯和物理布局之間的差異似乎是顯而易見(jiàn)的,但在器件的數(shù)據(jù)表中很少提供必要的信息。那么,你該怎么辦?接受較低的覆蓋范圍,畢竟診斷仍然會(huì)覆蓋直流故障和相鄰位之間的一些耦合故障嗎?向IC供應(yīng)商請(qǐng)求布局,并為每個(gè)器件定制棋盤(pán)測(cè)試的實(shí)現(xiàn)?或者選擇其他算法?

既然您已經(jīng)意識(shí)到棋盤(pán)測(cè)試的潛在缺點(diǎn),您可以做出明智的決定。

用于 SRAM 運(yùn)行時(shí)測(cè)試的替代算法

IEC 60730中針對(duì)C類安全級(jí)別提出的存儲(chǔ)器測(cè)試技術(shù)具有更高的故障檢測(cè)覆蓋率,但這些算法屬于可以被認(rèn)為是生產(chǎn)測(cè)試算法的算法:它們需要更長(zhǎng)的時(shí)間來(lái)運(yùn)行,也可以檢測(cè)更罕見(jiàn)的故障類型,但通常會(huì)破壞存儲(chǔ)在SRAM中的數(shù)據(jù),因?yàn)樗鼈冊(cè)谡麄€(gè)SRAM上運(yùn)行,而不是在子塊中運(yùn)行。

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

如果您考慮將傳統(tǒng)的棋盤(pán)測(cè)試與March測(cè)試交換,則可以從一些微控制器供應(yīng)商處找到此類實(shí)現(xiàn)。Microchip是提供March C-算法的性能優(yōu)化實(shí)現(xiàn)的公司之一,作為其軟件診斷庫(kù)的一部分。Microchip實(shí)現(xiàn)支持整個(gè)SRAM的測(cè)試,通常在啟動(dòng)時(shí)完成,以獲得最大的測(cè)試覆蓋率,以及更小的內(nèi)存塊的測(cè)試,旨在減少對(duì)應(yīng)用的實(shí)時(shí)影響。該實(shí)現(xiàn)可以從微芯片的網(wǎng)站免費(fèi)下載,作為IEC 60730 B類庫(kù)的一部分。該實(shí)現(xiàn)適用于PIC?和AVR?微控制器,但可以移植到其他微芯片MCU。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5105

    文章

    19288

    瀏覽量

    310189
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7557

    瀏覽量

    164946
  • sram
    +關(guān)注

    關(guān)注

    6

    文章

    777

    瀏覽量

    115127
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式電子控制單元(ECU)中如何準(zhǔn)確找出運(yùn)行時(shí)使用的RAM量?

    我知道嵌入式軟件構(gòu)建工具報(bào)告程序閃存使用情況。我認(rèn)為他們也報(bào)告了 RAM 使用情況,但他們是否報(bào)告了最大 RAM 使用率? 生成工具可能不知道在運(yùn)行時(shí)將使用多少堆。是否還有其他構(gòu)建工具不知道的 RAM 使用情況? 如何準(zhǔn)確找出運(yùn)行時(shí)
    發(fā)表于 01-31 07:48

    如何在運(yùn)行時(shí)禁用IWDG

    如何在運(yùn)行時(shí)禁用IWDG以上來(lái)自于谷歌翻譯以下為原文 how to disable IWDG during run time
    發(fā)表于 01-15 15:15

    如何在運(yùn)行時(shí)更新RAM?

    你好我想在我的設(shè)計(jì)中使用一個(gè)16位RAM,它包含N個(gè)數(shù)字系數(shù)。我想在運(yùn)行時(shí)更新RAM。所以要做到這一點(diǎn)我應(yīng)該使用哪種類型的RAM以及如何在運(yùn)行時(shí)更新RAM。我正在使用ZC706板。
    發(fā)表于 10-23 09:03

    嵌入式系統(tǒng)能耗怎么實(shí)現(xiàn)動(dòng)態(tài)管理?

    追溯歷史,嵌入式處理器的低功耗是通過(guò)使用一些低功耗的空閑或睡眠模式來(lái)實(shí)現(xiàn)的?,F(xiàn)在,嵌入式處理器要承擔(dān)更復(fù)雜的工作,需要更高的性能。新的應(yīng)用程序(如音頻和視頻播放以及游戲等)一般運(yùn)行時(shí)間都相當(dāng)長(zhǎng)
    發(fā)表于 03-24 07:00

    Touchgfx在運(yùn)行時(shí)如何更改整個(gè)屏幕?

    您好,我在我的項(xiàng)目中使用了 Touchgfx。我想在下面實(shí)現(xiàn)。1)在運(yùn)行時(shí),我想關(guān)閉整個(gè)屏幕。2)在運(yùn)行時(shí),我想改變整個(gè)屏幕。3)我想動(dòng)態(tài)生成二維碼,有時(shí)也想在運(yùn)行時(shí)清除它。我得到了 github
    發(fā)表于 02-08 06:46

    運(yùn)行時(shí)軟件故障注入器的設(shè)計(jì)與實(shí)現(xiàn)

    針對(duì)實(shí)際故障診斷中難以有效獲得故障現(xiàn)場(chǎng)信息的問(wèn)題,提出通過(guò)在軟件運(yùn)行時(shí)注入故障的方式獲取故障現(xiàn)場(chǎng)信息,設(shè)計(jì)并實(shí)現(xiàn)一種
    發(fā)表于 04-06 08:40 ?19次下載

    嵌入式系統(tǒng)安全處理器的解決方案與設(shè)計(jì)

    隨著嵌入式系統(tǒng)日益受到重視并得到了廣泛的應(yīng)用,如何為嵌入式系統(tǒng)提供一個(gè)安全運(yùn)行時(shí)
    發(fā)表于 06-24 15:42 ?20次下載

    嵌入式零功耗系統(tǒng)設(shè)計(jì)研究

    嵌入式應(yīng)用系統(tǒng)中,普遍存在功耗浪費(fèi)現(xiàn)象。 1 零功耗系統(tǒng)設(shè)計(jì)的基本概念1.1 系統(tǒng)中的理想功耗一個(gè)電子系統(tǒng)
    發(fā)表于 07-05 10:57 ?478次閱讀
    <b class='flag-5'>嵌入式</b>零功耗<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)研究

    紫金橋組態(tài)軟件新的功能_運(yùn)行時(shí)組態(tài)

    運(yùn)行時(shí)組態(tài)是組態(tài)軟件新近提出的新的概念。運(yùn)行時(shí)組態(tài)是在運(yùn)行環(huán)境下對(duì)已有工程進(jìn)行修改,添加新的功能。它不同于在線組態(tài),在線組態(tài)是在工程運(yùn)行的同時(shí),進(jìn)入組態(tài)環(huán)境,在組態(tài)環(huán)境中對(duì)工程進(jìn)行修改
    發(fā)表于 10-13 16:17 ?2次下載
    紫金橋組態(tài)軟件新的功能_<b class='flag-5'>運(yùn)行時(shí)</b>組態(tài)

    多核對(duì)嵌入式設(shè)計(jì)原則造成哪些影響

      與通用計(jì)算系統(tǒng)不同,許多嵌入式系統(tǒng)不易進(jìn)行檢查和維護(hù)。同時(shí),大多數(shù)嵌入式系統(tǒng)對(duì)正常運(yùn)行時(shí)間的
    的頭像 發(fā)表于 06-14 14:39 ?945次閱讀

    在運(yùn)行時(shí)檢測(cè)SRAM故障挑戰(zhàn)

      在設(shè)計(jì)安全關(guān)鍵系統(tǒng)時(shí),國(guó)際安全標(biāo)準(zhǔn)對(duì)我們選擇適當(dāng)?shù)牧鞒毯瓦m當(dāng)?shù)募夹g(shù)來(lái)檢測(cè)和避免最終產(chǎn)品中的危險(xiǎn)故障
    的頭像 發(fā)表于 10-25 09:36 ?1736次閱讀

    設(shè)計(jì)安全關(guān)鍵嵌入式系統(tǒng)在運(yùn)行時(shí)檢測(cè)SRAM故障挑戰(zhàn)

    在設(shè)計(jì)安全關(guān)鍵系統(tǒng)時(shí),國(guó)際安全標(biāo)準(zhǔn)對(duì)我們選擇適當(dāng)?shù)墓に嚭瓦m當(dāng)?shù)募夹g(shù)來(lái)檢測(cè)和避免最終產(chǎn)品中的危險(xiǎn)故障
    的頭像 發(fā)表于 11-17 16:16 ?902次閱讀
    設(shè)計(jì)<b class='flag-5'>安全</b><b class='flag-5'>關(guān)鍵</b><b class='flag-5'>型</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>:<b class='flag-5'>在運(yùn)行時(shí)</b><b class='flag-5'>檢測(cè)</b><b class='flag-5'>SRAM</b><b class='flag-5'>故障</b>的<b class='flag-5'>挑戰(zhàn)</b>

    嵌入式系統(tǒng)中函數(shù)如何調(diào)用

    嵌入式系統(tǒng)中,一個(gè)函數(shù)調(diào)用時(shí),它的內(nèi)部機(jī)理是什么,執(zhí)行了哪些步驟?如圖1所示,先看 看 一個(gè)程序在運(yùn)行時(shí),它的內(nèi)存分布狀況。
    的頭像 發(fā)表于 02-13 14:15 ?1178次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>中函數(shù)如何調(diào)用

    如何在AUTOSAR OS系統(tǒng)運(yùn)行時(shí)使用事件Event呢?

    在AUTOSAR OS系統(tǒng)中,事件用于向任務(wù)發(fā)送信號(hào)信息。本節(jié)解釋事件是什么,如何配置它們以及如何在運(yùn)行時(shí)使用它們。
    發(fā)表于 05-22 10:04 ?2940次閱讀
    如何在AUTOSAR OS<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>運(yùn)行時(shí)</b>使用事件Event呢?

    如何保證它們?nèi)萜?b class='flag-5'>運(yùn)行時(shí)安全?

    緊密耦合的容器運(yùn)行時(shí)繼承了主機(jī)操作系統(tǒng)安全態(tài)勢(shì)和攻擊面。運(yùn)行時(shí)或主機(jī)內(nèi)核中的任何漏洞及其利用都會(huì)成為攻擊者的潛在切入點(diǎn)。
    的頭像 發(fā)表于 11-03 15:24 ?764次閱讀