日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

首頁 > 汽車技術 > 正文

如何考慮芯片的功能安全設計

2024-12-18 09:59:21·  來源:sasetech  作者:楊寧  
 

如何考慮芯片功能安全設計

芯片功能安全設計是一個很細分的門類,一般只有在設計和應用符合功能安全要求的車規(guī)芯片時才會有相關的技術要求。以往有相關產(chǎn)品和設計經(jīng)驗的工程師都集中在傳統(tǒng)的車規(guī)芯片五巨頭(Infineon,NXP,ST,TI,Renesas)里,技術經(jīng)驗很少外流。在國內(nèi)最早成長起來的汽車行業(yè)的功能安全工程師都集中在整車廠和TIER1零配件供應商,其經(jīng)驗偏重于整車和零配件行業(yè),對于芯片領域了解甚少,而國內(nèi)的芯片設計工程師又大都不了解功能安全知識,不具備相關的經(jīng)驗背景,所以目前在國內(nèi)有相關經(jīng)驗的技術人員不算多。今天的文章結合筆者的工作經(jīng)驗對芯片功能安全設計的思路簡單做一些探討和總結,不涉及具體安全機制的實現(xiàn),算是拋磚引玉。

01.安全機制的劃分

目前業(yè)界主流的功能安全機制設計,按照其技術原理可以分為三類:冗余,診斷和監(jiān)控,隔離。冗余技術最早源自于航天領域,通過對單一的功能單元增加備份,以達到增強其安全性的目的。在車載芯片的功能安全設計中,冗余也是一個重要的技術手段。把冗余技術按照空間維,時間維和信息維三個維度來劃分,就可以對相關的安全機制做一個歸納。

空間維度的冗余就是通過復制功能單元來比對輸出結果,以增加電路面積的代價獲得安全性的提升,常見的冗余機制包括有:DCLS雙核鎖步,DMR雙模冗余,TMR三模冗余。四模冗余在車載芯片領域極為罕見,這里不進行討論。

時間維度的冗余可以理解為增加操作時間窗口,在時間窗口內(nèi)重復同樣的操作,并通過反饋機制來確認操作是否正確。對于時間維度的冗余機制,26262標準中列出的安全機制包括了TR重發(fā)和RB回讀。

信息維度的冗余就是發(fā)送端在傳輸信息時,除了本身需要傳輸?shù)男畔?,還增加了相應的冗余位,冗余位與信息位同時傳輸,接收端可以通過雙方約定的機制,對信息位和冗余位進行計算并校驗,從而得知接收到的信息位是否出現(xiàn)錯誤。對于信息維度的冗余機制:26262標準中列出了ECC錯誤探測糾錯碼,PC奇偶校驗碼,以及改進的CheckSum校驗和(通常會使用CRC來實現(xiàn))。

除了冗余機制以外,診斷和監(jiān)控機制也大面積應用在車載芯片的功能安全設計中。通常的,對一個功能單元,要應用診斷和監(jiān)控機制,考量的維度一個是功能單元內(nèi)部的自測試和自診斷,另一個是從功能單元外部進行的診斷和監(jiān)控,也就是對它的輸入輸出進行診斷和監(jiān)控。

常見的自測試和自診斷機制包括了MBIST存儲自測試,LBIST邏輯自測試,EIT注錯測試。有些公司會把PBIST上電自測試單獨列出。對于模擬模塊則需要支持ABIST模擬自測試,還有我們在設計中增加的test pattern測試模式也可以歸在這個范疇里。在26262標準里這部分機制被籠統(tǒng)的寫成了“硬件支持的自檢”和“通過軟件實現(xiàn)的自檢”以及“使用測試模式進行檢查”。

常見的 外部診斷機制可以是TO超時機制,也可以是模塊的狀態(tài)監(jiān)測和對輸入輸出數(shù)據(jù)的正確性進行檢查等等。

除了 冗余、診斷和監(jiān)控以外,隔離也是一個重要的考量維度。隔離是為了隔絕CCF共因失效,CMF共模失效以及CF級聯(lián)失效的影響,避免由于一個小的故障引發(fā)更大的故障。那么在設計的時候通常就需要考慮供電隔離,時鐘隔離,干擾源的隔離等手段,此外重要的功能單元在設計中也需要考慮相應的隔離措施。鎖步器件在后端設計中需要有間距的考量和旋轉90度的要求,其本質(zhì)也是一種隔離。除了硬隔離以外,權限控制也是一種隔離的形式。常見的權限控制通常是指對重要的存儲單元/目標模塊限制指定模塊的訪問權限,這種控制既可以是在空間維度也可以是在時間維度,此外還可以對權限的層級進行控制。除此之外,在大型芯片中通過虛擬化設計管控軟件對硬件資源的請求是很普遍的做法,這其實也是一種隔離。

圖一給出了依照上述討論畫的思維導圖,可以作為比較形象化的體現(xiàn)。實際工作中可以依照這個圖分門別類繼續(xù)增加新的安全機制,但大體上不會超出這三類。當然,診斷和監(jiān)控機制也可以視為一種冗余。那么是否可以把一個診斷和監(jiān)控機制也劃分在冗余分類下呢?個人覺得可以這樣來劃分,冗余本質(zhì)上是對功能單元自體功能和屬性的復制,而診斷和監(jiān)控則是增加了新的功能來對原有功能單元進行探測,這部分增加的邏輯不屬于功能單元自體功能的復制,依據(jù)這樣的標準就可以比較清晰的把這兩者分開。

圖片

好了,現(xiàn)在我們討論完了安全機制的劃分,可以開始討論如何考慮芯片的功能安全設計了。掌握了每個具體的安全機制,就像練好了拳法套路的一招一式,但是具體到實際工作中,還需要見招拆招靈活運用,針對每個具體的設計模塊考慮相匹配的安全機制。

02.從安全目標(Safety Goal)考慮功能安全設計

從安全目標來劃分,可以把功能安全設計分為Fail Operational 失效可運行和Fail Safe 失效安全兩類。這兩類的架構設計重點是完全不同的。

對安全目標為失效可運行的功能安全設計,需要確保當目標功能單元發(fā)生故障時可以有備份功能單元立即接管任務。通常的,在實現(xiàn)時會選擇雙冗余帶診斷的架構,更進一步的可以采用帶EGAS三層監(jiān)控的2oo2D架構。在失效可運行的功能安全設計中,主功能單元和備份功能單元完全相同,處于相同的工作狀態(tài),并且彼此都可以通過診斷接口探測到對方的狀態(tài)。如果主功能單元發(fā)生失效,在檢測到失效的第一時間就會切換到備份功能單元繼續(xù)實現(xiàn)功能,同時發(fā)出降級警報。

對安全目標為失效安全的功能安全設計,其基本原則則是當發(fā)生故障時,系統(tǒng)將關閉功能單元以進入安全狀態(tài)。對應的功能安全設計,基于成本的考量,往往會采用1oo1D架構。在架構設計時需要針對設計的功能路徑進行安全分析,識別并定位對于路徑上發(fā)生失效會影響安全目標的功能單元,然后基于相關功能單元進行失效模式分析,并增加相應的安全機制,來確保系統(tǒng)失效后可以進入安全狀態(tài)。通常的,對于滿足失效安全的設計,定義的安全狀態(tài)包括有恢復正確狀態(tài),報錯(包括中斷或者錯誤指示),復位和下電等。對于復雜大芯片,需要綜合考量芯片各個功能單元進入不同安全狀態(tài)后的反應策略,合理規(guī)劃各種反應策略的分布,以達到芯片在滿足功能安全要求的同時盡可能的滿足可用性以改善用戶體驗。

02.

從芯片類型和功能劃分(Chip Type & Function Division)考慮功能安全設計

通常的,我們可以把芯片按照SOC系統(tǒng)級芯片和ASIC專用芯片來劃分。

在SOC芯片中,AMBA協(xié)議是工程師們最熟悉最常用的總線協(xié)議,協(xié)議本身提供了一些安全機制來應對總線通信發(fā)生錯誤的情況,但是對于車規(guī)芯片來說這是遠遠不夠的。幸運的是協(xié)議為用戶提供了擴展的總線邊帶接口,利用這些邊帶接口定制相應的安全機制是常用的手段。工程師們在設計時需要根據(jù)目標達到的診斷覆蓋率仔細計算能否滿足要求。

對于ASIC芯片來說,這又是另外一個敘事了。由于芯片模塊之間通過信號推送的機制直接傳遞數(shù)據(jù),通??梢圆捎脙煞N方式來增加安全機制:一種是直接在模塊端口上增加相應的糾錯檢錯信號接口,比如ECC糾錯檢錯碼或者奇偶校驗碼,這種做法需要仔細的評估完整的數(shù)據(jù)通路,并且確保安全機制能夠有效覆蓋到從數(shù)據(jù)發(fā)送端到接收端的完整路徑,這么做在為信號提供有效保護的同時,帶來的副作用就是相應的硬件電路成本增加以及信號時序的劣化,小心的選擇對應安全機制的實現(xiàn)電路可以改善這種劣化。如果糾錯檢錯機制不能覆蓋信號傳輸全路徑的話,就需要考慮在無法覆蓋的路徑上以空間冗余的方式增加相應的安全機制,通??梢允擎i步或者雙模冗余的形式。另外一種做法,在不能改變底層通信協(xié)議的情況下,我們可以考慮以增加時間冗余的形式來提高安全性。通過在信號傳輸協(xié)議的上層增加一層安全協(xié)議來實現(xiàn)錯誤重傳機制,接收端在接收到數(shù)據(jù)后進行解碼并校驗數(shù)據(jù)的正確性,并通過返回信道把校驗結果回傳給發(fā)送端,如果校驗結果錯誤,發(fā)送端會重發(fā)數(shù)據(jù),并繼續(xù)等待返回的校驗結果,只有在校驗結果為正確才會發(fā)送下一筆數(shù)據(jù),若超時則報錯。這種做法的缺陷是底層傳輸協(xié)議的誤碼率不變,如果是在傳輸信道高干擾的背景下有可能出現(xiàn)數(shù)據(jù)無法傳輸成功的情況。

另一種做法是把芯片的功能單元按照控制通路和數(shù)據(jù)通路的屬性來劃分。

對于控制通路,如果控制信號是通過總線傳輸,那么其分析類似于前述對SOC芯片AMBA協(xié)議的分析,在協(xié)議擴展的總線邊帶接口增加相應的安全機制。如果控制信號是專門邏輯根據(jù)當前電路狀態(tài)和時序產(chǎn)生的固定時序,那么其安全分析類似于對ASIC芯片的分析,需要注意的是對應安全機制的電路時序和控制信號時序的匹配。實際工作中通過完備的仿真測試來達到這個要求。

對于芯片中的數(shù)據(jù)通路,可能會遇到各種各樣的情況,包括各種低速外設通路比如I2c,UART,SPI,CAN,F(xiàn)lexRay,各種高速外設通路比如USB,MIPI,LVDS, PCIE,DisplayPort,SATA等等。進行安全分析時需要根據(jù)相應的通信協(xié)議是否支持功能安全特性,是否支持用戶擴展接口等等進行功能拆解,在通路上增加相應的安全機制。對數(shù)據(jù)通路進行功能安全設計的核心是控制殘余差錯率,而殘余差錯率一般取決于傳輸過程的錯誤率和差錯控制機制的設計。影響傳輸錯誤率的因素包括有傳輸介質(zhì),干擾等,設計時可以通過隔離干擾源等手段來改善。差錯控制機制通常包括有數(shù)據(jù)傳輸時攜帶Sequence Number序列號,Time Stamp時間戳,Message Feedback信號回傳,Data Integrity Assurance數(shù)據(jù)完整性保證,Redundancy with Cross Checking冗余與交叉檢查,Connection Authentication連接認證等等,IEC61784-3標準對此提供了很好的指引。另外就是對同樣的機制,不同的實現(xiàn)算法能夠達到的錯誤探測能力也有差異。最典型的例子就是CRC,不同的CRC多項式漢明距離不同,對錯誤碼字漏檢的可能性不同,最終達到的診斷覆蓋率不同。實際工作中可以綜合加以考量并實施。

03.從失效模式分析(Failure Mode Analysis)考慮功能安全設計

從失效模式分析的維度來考慮功能安全設計,我們首先要把芯片做分解,分成一個個獨立的功能單元。一個粗略的劃分方法是分為供電模塊,時鐘模塊,輸入輸出模塊,主處理模塊和存儲模塊。對于供電模塊,26262標準里給出的失效模式有欠壓,過壓,尖峰,漂移,振蕩,啟動時間錯誤等等。外部供電的故障會導致芯片以不可預測的方式運行,并直接導致違反安全目標。因此,與電源電壓相關的故障被視為單點故障。在設計中必須實施專門的安全機制用于在運行時監(jiān)測電壓水平,并在發(fā)生欠壓、過壓或其他失效模式的情況下發(fā)出警報。在設計時我們需要仔細的選擇供電模塊,確保其可以支持診斷出相應的失效模式并及時報警。對于復雜的芯片設計,內(nèi)部往往會有多個電源軌,需要根據(jù)安全目標確保每條電源軌都被有效監(jiān)控,并在發(fā)生故障時及時報告和應對。

對于時鐘模塊,26262標準里給出的失效模式有輸出卡滯,浮空,頻率錯誤,占空比錯誤,信號抖動,失鎖,缺少脈沖,出現(xiàn)多余脈沖等等。業(yè)內(nèi)通行的做法是用一個參考時鐘去監(jiān)控目標時鐘,并確保兩個時鐘之間不存在共因失效。這個模塊通常叫做時鐘監(jiān)控模塊。

對于輸入輸出模塊,主處理模塊和存儲模塊,也可以按照標準中給出的參考失效模式進行分析,并進行相應的功能安全設計。

在實際工作中還有可能會遇到有的功能單元在26262標準中沒有給出參考的失效模式。對這些非標的功能單元如何進行失效模式分析呢?這種情況下通??梢钥紤]兩種做法,一種是根據(jù)模塊端口按照功能進行分組,然后針對每個分組的端口信號進行失效模式分析。另一種是根據(jù)模塊功能進行拆分,對每個子模塊發(fā)生功能失效時對整個功能單元的影響進行分析,并給出相應的失效模式。比如NPU神經(jīng)網(wǎng)絡處理器中有大量的乘加結構的矩陣運算單元,在做功能安全分析時就可以對每個運算單元的端口信號進行分析,也可以把運算單元拆分成更小的模塊進行分析。當然,需要掌握好分析的顆粒度以避免陷入無限拆分下去的困境。

04.從安全完整性等級劃分(Auto Safety Inte-grity Level  Division)考慮功能安全設計

在26262標準中給出了ASILB到ASILD不同安全完整性等級下單點故障和潛伏故障覆蓋率的劃分,如表一所示。

圖片

表一 單點故障和潛伏故障覆蓋率列表

以ASILB和ASILD對比為例,如果一個設計需要分別按照ASILB和ASILD的要求進行設計有什么不同?

如果是按照ASILB的要求進行功能安全設計的話,基于成本的考量,首先應當盡量平衡安全機制實現(xiàn)中軟件部分和硬件部分的比例,在CPU負載能力能夠支持的前提下盡可能采用軟件實現(xiàn)安全機制,只有對于需要通過硬件實現(xiàn)以優(yōu)化時序的部分才采用硬件。其次,由于ASILB對潛伏故障的診斷覆蓋率要求只有60%,那么在設計對于安全機制的安全機制時,可以考慮設計一些外部監(jiān)控機制即可滿足要求。

對一個ASILD設計而言,首要目標是滿足單點故障覆蓋率99%的嚴苛要求,必須首先考慮在不需要軟件介入的前提下,依靠硬件設計來達到診斷覆蓋率的要求。只有在硬件設計無法滿足要求的情況下,再想辦法通過軟件手段進行補充。其次,由于潛伏故障覆蓋率要求達到90%以上,單純通過外部監(jiān)控機制已經(jīng)無法滿足對安全機制本身的故障進行探測和監(jiān)控的要求,所以必須增加各種安全機制內(nèi)部的自測試和自診斷機制,也可以考慮通過冗余的方式去提高其診斷覆蓋率。

05.從成本效益平衡(Cost Effectiveness Trade-Off)考慮功能安全設計

鎖步設計在大多數(shù)情況下都可以滿足功能安全設計對診斷覆蓋率的要求。但鎖步設計也是雙刃劍,在提供高診斷覆蓋率的同時帶來面積的倍增,這意味著芯片成本的增加。為了避免芯片由于過設計導致成本增加不可控,需要謹慎使用相應的安全機制設計。因此在功能安全機制設計達到所要求的診斷覆蓋率后,還需要基于成本考量盡可能的進行優(yōu)化設計以減少面積。

舉個例子講解下,芯片中通常都會使用到超時計數(shù)器。本身這個超時計數(shù)器作為一個安全機制,如果要滿足潛伏故障的診斷覆蓋率,我們需要對計數(shù)器這個安全機制設計相應的安全機制。如果考慮用軟件安全機制可以采用程序流監(jiān)控。如果是采用硬件安全機制,那么最容易想到的就是用兩個超時計數(shù)器來做鎖步設計或者是DMR,但是這么做就有些“大而無當”,造成面積浪費。要進一步優(yōu)化這個硬件安全機制,就可以首先對計數(shù)器做失效模式分析,通常根據(jù)標準可以把失效模式分為四類:1.指令未執(zhí)行;2.指令誤啟動;3.指令延遲;4.指令結果錯誤。經(jīng)過簡單的電路分析可以得到大部分失效原因可以歸結到計數(shù)器發(fā)生卡滯錯誤和由于瞬態(tài)或永久故障造成的計數(shù)器狀態(tài)跳轉錯誤,那么只要適當?shù)脑O計相應的檢測電路對這兩類錯誤進行監(jiān)測并在錯誤發(fā)生時把錯誤報出來,就可以達到相應的診斷覆蓋率要求,并且檢測電路的面積遠遠小于整個計數(shù)器的面積。

06.總結

最后做下總結,本文首先基于功能安全機制實現(xiàn)的技術原理,把目前業(yè)內(nèi)通行的安全機制按照冗余,診斷和監(jiān)控,隔離三類進行分類,并從安全目標,芯片類型和功能劃分,失效模式分析,安全完整性等級劃分,成本效益平衡等角度對芯片功能安全設計需要考慮的各方面因素做了一些探討,可以在實際工作中作為參考。

楊寧| 作者

周奕 | 審核

分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25