吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

設計安全關鍵型嵌入式系統:在運行時檢測SRAM故障的挑戰

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Henrik Nyholm,Jacob ? 2022-10-24 10:01 ? 次閱讀

作者:Henrik Nyholm,Jacob Lunn Lassen

在設計安全關鍵系統時,國際安全標準對我們選擇適當的流程和適當的技術來檢測和避免最終產品中的危險故障至關重要。這些標準確保我們不會像我們之前的安全工程師一樣陷入同樣的困境。

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

本文介紹了SRAM的邏輯和物理布局之間未記錄的差異如何導致我們無意中錯誤地實現內存測試,例如棋盤算法。標準微控制器的數據表中通常沒有必要的信息,但幸運的是,有些內存測試算法不受SRAM邏輯和物理布局差異的影響。

在運行時測試 SRAM 是否存在缺陷

SRAM存儲器顯然由IC供應商在生產中進行測試,并且有缺陷的產品不會運送給消費者。盡管如此,隨機的硬件缺陷在IC的使用壽命期間可能會并且將會出現,這是在安全關鍵應用中需要在運行時在微控制器中測試硬件的原因之一。

棋盤記憶測試

IEC 60730 (H.2.19.6.1) 等安全標準表明,對于必須符合 B 類安全級別的應用,可以使用棋盤算法來識別 SRAM 中的某些缺陷(直流故障)。通常選擇棋盤測試,因為它涵蓋了SRAM中最可能的故障,并且相對較快,這便于最大限度地減少對應用本身的性能影響。除了直流故障(位永久卡在高處或低位)之外,棋盤算法還可以檢測相鄰位相互影響的缺陷。

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

pYYBAGNV8kqAJbcNAADW-1NsJEo214.png

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

如果故障影響單個位,使該位卡在高位或低位,則可以通過寫入值 1,通過回讀來驗證值 1,然后寫入值 0 并通過回讀來驗證零,如圖 1 所示。另一方面,如果缺陷是兩個相鄰位之間的耦合故障,例如第2行中的位列9和10,則某些模式(例如所有1或全部0)不會顯示耦合故障,因為單元格在測試期間具有相同的值。

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

SRAM 的物理與邏輯布局

要使棋盤算法正常工作,需要知道哪些位是相鄰位。事實證明,這是一個問題,因為數據手冊通常只描述SRAM的邏輯布局,而不是SRAM的物理組織方式。

要了解SRAM的物理布局,必須區分面向位的存儲器(BOM)和面向字的存儲器(WOM),前者當時可以訪問一個位,后者在當時讀取和寫入n位字。雖然大多數現實世界的內存都是以口碑形式實現的,但科學文獻中的經典內存測試算法通常采用BOM實現。

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

pYYBAGNV8lOAFzI7AACW13Bc_UM973.png

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

棋盤測試的性能和缺點

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

pYYBAGNV8luAVcMWAAE3Hx4nZtU963.png

圖3 - 邏輯與物理SRAM的數據模式。

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

既然您已經意識到棋盤測試的潛在缺點,您可以做出明智的決定。

用于 SRAM 運行時測試的替代算法

IEC 60730中針對C類安全級別提出的存儲器測試技術具有更高的故障檢測覆蓋率,但這些算法屬于可以被認為是生產測試算法的算法:它們需要更長的時間來運行,也可以檢測更罕見的故障類型,但通常會破壞存儲在SRAM中的數據,因為它們在整個SRAM上運行,而不是在子塊中運行。

一般來說,對于我們的嵌入式設計,我們不能很好地容忍這一點。因此,我們建議您考慮從生產測試 March 算法改編的混合 March 算法:這些算法可用于 WOM 優化實現,并提供高測試覆蓋率。此外,可以實現這些混合 March 算法,使其在 SRAM 的較小重疊部分上運行,以避免一次擦除 SRAM 中的所有數據,這意味著可以避免嵌入式系統的重新啟動。March算法的缺點是它們比傳統的棋盤算法計算量更大,但這是安全關鍵系統可能需要的費用。

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

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5092

    文章

    19178

    瀏覽量

    307691
  • 存儲器
    +關注

    關注

    38

    文章

    7528

    瀏覽量

    164345
  • sram
    +關注

    關注

    6

    文章

    768

    瀏覽量

    114886
收藏 人收藏

    評論

    相關推薦

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

    我知道嵌入式軟件構建工具報告程序閃存使用情況。我認為他們也報告了 RAM 使用情況,但他們是否報告了最大 RAM 使用率? 生成工具可能不知道在運行時將使用多少堆。是否還有其他構建工具不知道的 RAM 使用情況? 如何準確找出運行時
    發表于 01-31 07:48

    如何在運行時禁用IWDG

    如何在運行時禁用IWDG以上來自于谷歌翻譯以下為原文 how to disable IWDG during run time
    發表于 01-15 15:15

    如何在運行時更新RAM?

    你好我想在我的設計中使用一個16位RAM,它包含N個數字系數。我想在運行時更新RAM。所以要做到這一點我應該使用哪種類型的RAM以及如何在運行時更新RAM。我正在使用ZC706板。
    發表于 10-23 09:03

    嵌入式系統能耗怎么實現動態管理?

    追溯歷史,嵌入式處理器的低功耗是通過使用一些低功耗的空閑或睡眠模式來實現的。現在,嵌入式處理器要承擔更復雜的工作,需要更高的性能。新的應用程序(如音頻和視頻播放以及游戲等)一般運行時間都相當長
    發表于 03-24 07:00

    Touchgfx在運行時如何更改整個屏幕?

    您好,我在我的項目中使用了 Touchgfx。我想在下面實現。1)在運行時,我想關閉整個屏幕。2)在運行時,我想改變整個屏幕。3)我想動態生成二維碼,有時也想在運行時清除它。我得到了 github
    發表于 02-08 06:46

    運行時軟件故障注入器的設計與實現

    針對實際故障診斷中難以有效獲得故障現場信息的問題,提出通過在軟件運行時注入故障的方式獲取故障現場信息,設計并實現一種
    發表于 04-06 08:40 ?19次下載

    嵌入式系統安全處理器的解決方案與設計

    隨著嵌入式系統日益受到重視并得到了廣泛的應用,如何為嵌入式系統提供一個安全運行時
    發表于 06-24 15:42 ?20次下載

    嵌入式零功耗系統設計研究

    嵌入式應用系統中,普遍存在功耗浪費現象。 1 零功耗系統設計的基本概念1.1 系統中的理想功耗一個電子系統
    發表于 07-05 10:57 ?472次閱讀
    <b class='flag-5'>嵌入式</b>零功耗<b class='flag-5'>系統</b>設計研究

    紫金橋組態軟件新的功能_運行時組態

    運行時組態是組態軟件新近提出的新的概念。運行時組態是在運行環境下對已有工程進行修改,添加新的功能。它不同于在線組態,在線組態是在工程運行的同時,進入組態環境,在組態環境中對工程進行修改
    發表于 10-13 16:17 ?2次下載
    紫金橋組態軟件新的功能_<b class='flag-5'>運行時</b>組態

    多核對嵌入式設計原則造成哪些影響

      與通用計算系統不同,許多嵌入式系統不易進行檢查和維護。同時,大多數嵌入式系統對正常運行時間的
    的頭像 發表于 06-14 14:39 ?910次閱讀

    在運行時檢測SRAM故障挑戰

      在設計安全關鍵系統時,國際安全標準對我們選擇適當的流程和適當的技術來檢測和避免最終產品中的危險故障
    的頭像 發表于 10-25 09:36 ?1682次閱讀

    設計安全關鍵嵌入式系統在運行時檢測SRAM故障挑戰

    在設計安全關鍵系統時,國際安全標準對我們選擇適當的工藝和適當的技術來檢測和避免最終產品中的危險故障
    的頭像 發表于 11-17 16:16 ?855次閱讀
    設計<b class='flag-5'>安全</b><b class='flag-5'>關鍵</b><b class='flag-5'>型</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>:<b class='flag-5'>在運行時</b><b class='flag-5'>檢測</b><b class='flag-5'>SRAM</b><b class='flag-5'>故障</b>的<b class='flag-5'>挑戰</b>

    嵌入式系統中函數如何調用

    嵌入式系統中,一個函數調用時,它的內部機理是什么,執行了哪些步驟?如圖1所示,先看 看 一個程序在運行時,它的內存分布狀況。
    的頭像 發表于 02-13 14:15 ?1140次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>中函數如何調用

    如何在AUTOSAR OS系統運行時使用事件Event呢?

    在AUTOSAR OS系統中,事件用于向任務發送信號信息。本節解釋事件是什么,如何配置它們以及如何在運行時使用它們。
    發表于 05-22 10:04 ?2809次閱讀
    如何在AUTOSAR OS<b class='flag-5'>系統</b><b class='flag-5'>運行時</b>使用事件Event呢?

    如何保證它們容器運行時安全

    緊密耦合的容器運行時繼承了主機操作系統安全態勢和攻擊面。運行時或主機內核中的任何漏洞及其利用都會成為攻擊者的潛在切入點。
    的頭像 發表于 11-03 15:24 ?716次閱讀
    网上百家乐官网哪家最好| 威尼斯人娱乐城提款| 百家乐官网计划策略| 博野县| 大发888注册送58| 678百家乐博彩娱乐网| 百家乐官网那个平好| 合肥百家乐官网赌博游戏机| 游艇会娱乐城| 大发888娱乐城下载电脑怎么上乐讯新足球今日比分 | bet365百家乐| 五星百家乐的玩法技巧和规则| 百家乐官网怎么玩会| 澳门百家乐官网的公式| 霍城县| 七匹狼娱乐城开户| 大发888娱乐场开户注册| 在线百家乐博彩| 百家乐有破解的吗| 百家乐官网凯时娱乐网| 百家乐官网singapore| 习水县| 易发娱乐城| 大发888真钱账户注册| 百家乐追号工具| 百家乐是片人的吗| 易胜博| 打牌网| 利博亚洲| 娱乐城送白菜| 环球代理| 泗水县| 线上百家乐官网可靠吗| 方山县| 百家乐官网投注技巧| 百家乐官网百家乐官网视频| 百家乐官网赌博是否违法| 百家乐官网保单破解方法| 百家乐官网怎么打啊| 百家乐官网路的看法| 赌场百家乐官网规则|