摘要
集成電路 (IC) 是所有現(xiàn)代安全系統(tǒng)的根本。集成電路提供邏輯,控制傳感器,從很大程度上看,其本身就是傳感器。集成電路驅(qū)動最終元件以實現(xiàn)安全狀態(tài),它們是軟件運行的平臺。半導體內(nèi)部的高集成度可以簡化系統(tǒng)級實現(xiàn),其代價是IC內(nèi)部復雜性增加。這種集成會減少器件數(shù)量,改善系統(tǒng)可靠性,并為提高診斷覆蓋率和縮短診斷測試間隔創(chuàng)造機會——所有這些都是以安全性適中為代價的 [NK1] 。有人可能會認為,由于復雜性增加,這種高集成度是一件壞事。然而,雖然集成電路復雜性提高,但在模塊和系統(tǒng)層面上可以大大簡化。令人吃驚的是,過程控制、機械、電梯、變速驅(qū)動器和有毒氣體傳感器都有相應的功能安全標準,但關于集成電路卻沒有專門的功能安全標準。相反,相關要求和知識是零散地分布在IEC 61508和其他B級、C級標準中。本文為解讀現(xiàn)有半導體功能安全標準提供指導。
簡介
通常,集成電路按照 IEC 61508 或 ISO 26262 標準進行開發(fā)。另外,二級和三級標準中有時還會有其他要求。只有按照功能安全標準進行開發(fā)和評估,才能讓人放心這些復雜的集成電路足夠安全。當編寫 IEC 61508 時,其針對的是定制系統(tǒng),而不是開放市場批量生產(chǎn)的集成電路。本文將回顧并評論集成電路的已知功能安全要求。雖然本文集中討論 IEC 61508 及其在工業(yè)領域的應用,但很多內(nèi)容都與汽車、航空電子和醫(yī)療等應用有關。
功能安全
功能安全是安全性的一部分,與系統(tǒng)在需要的時候是否有把握執(zhí)行安全相關任務有關 [NK2] 。功能安全不同于其他被動形式的安全,如電氣安全、機械安全或本質(zhì)安全。
功能安全是一種主動形式的安全。例如,它能確保馬達以足夠快的速度關閉,防止對打開防護門的操作員造成傷害,或者當有人在附近時,機器人會降低運行的速度和力度。
標準
主要功能安全標準是 IEC 61508 1。該標準的第一版于 1998 年出版,第二版于 2010 年出版,并于 2017 年開始更新至第三版的工作,可能的完成日期是在 2022 年。自從 1998 年公布 IEC 61508 第一版以來,基本 IEC 61508 標準已針對不同領域進行適應性修改,例如汽車 (ISO 26262)、過程控制 (IEC 61511)、PLC (IEC 61131-6)、IEC 62061 (機械)、變速驅(qū)動器 (IEC 61800-5-2) 以及其他許多領域。此類標準有助于對非常寬泛的 IEC 61508 進行解釋以便用于這些受到更大限制的領域。
一些功能安全標準,例如 ISO 13849 和 D0-178/D0-254,并非衍生自 IEC 61508。盡管如此,任何熟悉 IEC 61508 并閱讀這些標準的人都不會對其內(nèi)容感到過于吃驚。
在安全系統(tǒng)內(nèi),當系統(tǒng)運行時,執(zhí)行關鍵功能安全活動的是安全功能。安全功能定義了實現(xiàn)或保持安全所必須執(zhí)行的操作。典型的安全功能包含輸入子系統(tǒng)、邏輯子系統(tǒng)和輸出子系統(tǒng)。通常,這意味著對潛在的不安全狀態(tài)進行檢測,并且基于檢測到的值做出決定,如果認為有潛在危險 [NK3] ,則指示輸出子系統(tǒng)將系統(tǒng)置于已定義的安全狀態(tài)。
圖 1.功能安全標準示例。
不安全狀態(tài)存在到實現(xiàn)安全狀態(tài)的時間至關重要 [NK4] 。例如,安全功能可能包括如下器件:一個傳感器用來檢測機器上的防護裝置是否打開,一個 PLC 用來處理數(shù)據(jù),以及一個具有安全扭矩關閉輸入的變速驅(qū)動器,它在 [NK5] 插入機器中的手可能接近運動部件之前關閉電機。
安全完整性等級
SIL 代表安全完整性等級,是表示需要將風險降至何種程度才能達到可接受水平的手段。根據(jù) IEC 61508 標準,安全等級有 1、2、3、4 四級,從一個級別到下一個級別,安全性會提高一個數(shù)量級。機器和工廠自動化場景中不會看到 SIL 4,因為一般情況下,這種場合中遭受危險的人員通常不會超過一個。SIL 4 針對的是數(shù)百甚至數(shù)千人可能受到傷害的核能和鐵路等應用。還有其他功能安全標準,例如汽車使用 ASIL(汽車安全完整性等級) A、B、C 和 D,以及 ISO 13849 標準。其性能等級 a、b、c、d 和 e 可以對應到 SIL 1 至 SIL 3 尺度。
表 1.各應用領域安全等級的粗略對應
筆者不相信單個 IC 可能有超過 SIL 3 的安全水平。但值得注意的是,IEC 61508-2:2010 附錄 F 中的表格顯示了一個 SIL 4 列。
三項關鍵要求
功能安全對 IC 開發(fā)提出了三項關鍵要求。下面研究這些要求。
要求 1—遵循嚴格的開發(fā)流程
IEC 61508 是一個全生命周期模型,涵蓋了從安全概念到需求采集、維護,直至最終物料處理 [NK6] 的所有階段。不是所有這些階段都與集成電路相關,甄別哪些階段有關需要培訓和經(jīng)驗。IEC 61508 為 ASIC 提供了一個V模型,另外還有審查、審核及其他要求,它代表了一個體系,雖然不能保證安全,但過去已證明它能產(chǎn)生 [NK7] 安全的系統(tǒng)和 IC。
由于更改故障 [NK8] 集成電路的成本很高,所以大多數(shù) IC 制造商已經(jīng)建立嚴格的新產(chǎn)品開發(fā)標準。對于小幾何尺寸工藝,僅僅一套掩膜的成本就可能超過 50 萬美元。這種情況加上長交貨期,迫使集成電路設計商不得不實施嚴格的開發(fā)流程和優(yōu)良 [NK9] 的檢查與驗證階段 [NK10] 。功能安全的一大區(qū)別在于,不僅必須實現(xiàn)安全性,還要證明安全性,即使是最好的IC制造商也需要在其正常開發(fā)流程之上添加安全流程,以確保合規(guī)性的適當證據(jù)得以創(chuàng)建并存檔 [NK11] 。
開發(fā)流程引入的故障稱為系統(tǒng)故障。這些故障只能通過設計變更來解決。與需求采集相關的故障、EMC魯棒性不足和測試不充分就是此類故障。
IEC 61508-2:2010 的附錄 F 列出了一系列專門測量,IEC 委員會專家認為這些測量適合用于集成電路開發(fā)。表 F.2 適用于 FPGA 和 CPLD,表 F.1 適用于數(shù)字 ASIC。這些測量分為 R (推薦)或 HR (強烈推薦)兩類,具體取決于 SII,某些情況下還提供了備選技術。對于擁有良好開發(fā)流程的 IC 供應商來說,其中的要求很少會讓人感到意外,但 SIL 3 的 99% 故障覆蓋率要求是有挑戰(zhàn)性的,尤其是對于小型數(shù)字或混合信號器件,其中很多電路位于模塊的外圍。該標準第二版中的要求僅適用于數(shù)字 IC,但許多要求也可應用于模擬或混合信號 IC(ISO 26262 的下一版本將包含類似表格,并有針對模擬和混合信號集成電路的版本)。
除表 F.1 和表 F.2 外,還有一些介紹性文字也提供了一些見解。例如,這個介紹性文字說允許使用經(jīng)過實際驗證的工具,在復雜度相似的項目中使用 18 個月是合理的時間長度。這意味著并不需要應用 IEC 61508-3 關于工具的全部要求。
如果模塊/系統(tǒng)設計者過去曾成功使用某一 IC,并且了解其應用和現(xiàn)場故障率,那么他可以宣稱其“經(jīng)過實際驗證”。對于集成電路設計者或制造商來說,作出這種宣稱要困難得多,因為他們一般不太了解最終應用或?qū)F(xiàn)場故障單元返回給他們進行分析的百分率的含義 [NK12] 。
軟件
所有軟件錯誤都是系統(tǒng)性的,因為軟件不會老化。任何片內(nèi)軟件都應考慮 IEC 61508-3 的要求。通常,片內(nèi)軟件可能包括微控制器/ DSP 的內(nèi)核/引導程序。但在某些情況下,微控制器/DSP 可能包含一個由IC制造商預編程的小型微控制器來實現(xiàn)一個邏輯塊,而不是使用狀態(tài)機。該預編程的微控制器軟件還需要符合 IEC 61508-3 的要求。應用級軟件通常是模塊/系統(tǒng)設計者的責任,而不是 IC 制造商的責任,但 IC 供應商可能需要提供編譯器或低級驅(qū)動程序等工具。如果這些工具用于安全相關應用軟件的開發(fā),那么IC制造商需要為最終用戶提供足夠的信息,以滿足 IEC 61508-3:2010 第 7.4.4 條中的工具要求。
筆者也使用 C 語言和其他很多編程語言做過編程。筆者還做過少量 Verilog 編程。Verilog 及其姊妹語言VHDL是用于設計數(shù)字集成電路的兩種代表性硬件定義語言 (HDL)。一個有趣的問題是 HDL 是否是軟件,但現(xiàn)在遵循 IEC 61508-2:2010 附錄 F 就足夠了。在實踐中,筆者發(fā)現(xiàn)如果遵循附錄 F,那么結(jié)合 IEC 61508 的其他要求(生命周期階段等),HDL 是否是軟件的問題并不重要,因為開發(fā)者最終仍要完成所有必需的任務。一個值得注意的相關標準是 IEC 62566 2,它處理的是利用 HDL 開發(fā)的核工業(yè)安全功能。
要求 2—固有可靠性
IEC 61508 以 PFH (每小時危險故障平均頻率)或 PFD (需要時發(fā)生故障的概率)的形式提出了可靠性要求。這些限制與成年人因自然原因而死亡的風險,以及人們認為工作或處理日常業(yè)務不應顯著增加這一風險的想法有關。SIL 3 安全功能的最大 PFH 為 10–7/h,或者每 1000 年約有一次的危險故障率。表示為 FIT (故障次數(shù)/每運行十億小時的故障率)的話,即為 100 FIT。
鑒于典型的安全功能有一個輸入模塊、一個邏輯模塊和一個執(zhí)行器模塊,并且 PFH 預算必須分配給所有三個模塊,所以某一 IC 的 PFH 完全可能是個位數(shù) (《10 FIT)??梢允褂萌哂嗉軜?gòu)來提高這些數(shù)字,若有兩個 100 FIT 結(jié)構(gòu),則每個可以提供相同的置信度,使模塊可靠性達到 10 FIT (受常見原因故障 (CCF) 限制)。然而,冗余會消耗大量空間和能量,并增加成本。
ADI 公司之類的 IC 制造商在網(wǎng)站上提供其所有已發(fā)布 IC 的基于加速壽命測試的可靠性信息。此信息有時會不被重視,因為這種可靠性評估是在人為條件下于實驗室中完成的。推薦使用行業(yè)標準,如 SN 295003 或 IEC 623804,但這些標準有一些問題:
?它們預測 99% 置信度下的可靠性,IEC 61508 僅要求 70% 置信度下的數(shù)據(jù),因此標準偏悲觀。
?它們將隨機故障模式和系統(tǒng)故障模式混為一談。根據(jù) IEC 61508 的規(guī)定,應以不同方式處理這些故障模式。
?它們不是經(jīng)常更新。
?它們未考慮不同供應商之間的質(zhì)量差異。
SN 29500 之類的標準說明的是片內(nèi)晶體管的可靠性。如果使用兩個 IC (每個有 50 萬個晶體管)來實現(xiàn)安全功能,每個 IC 的 FIT 為 70,那么整個系統(tǒng)的 FIT 為 140。但是,如果用一個含 100 萬個晶體管的 IC 來替代這兩個 IC,那么這一個 IC 的 FIT 只有 80,減少了 40% 以上。
IC 內(nèi)部的軟錯誤往往被忽略。軟錯誤不同于傳統(tǒng)的可靠性預測,因為一旦斷電再通電,軟錯誤就會消失。引起軟錯誤的原因是空間中的中子或封裝材料中的α粒子,它們撞擊片內(nèi)RAM單元或觸發(fā)器 (FF),改變其中存儲的值。ECC (雙比特錯誤檢測和單比特錯誤校正 [NK13] )可用來檢測并無縫糾正 RAM 中的錯誤,但代價是速度降低和片內(nèi)錯誤增多。奇偶校驗增加的開銷更少,但系統(tǒng)設計人員需要解決錯誤恢復問題。如果不使用奇偶校驗或 ECC 技術,則軟錯誤率可能會比傳統(tǒng)硬錯誤率高出多達 1000 倍 (IEC 61508 提供的RAM數(shù)值為 1000 FIT/MB)。用于解決實現(xiàn)邏輯電路的 FF (觸發(fā)器)中軟錯誤的技術不那么令人滿意,但看門狗定時器、計算中的時間冗余以及其他技術可提供幫助。
要求 3—容錯性
無論產(chǎn)品有多可靠,有時候還是會出事。容錯性承認這一現(xiàn)實并予以解決。容錯性主要包含兩方面。一個是使用冗余,另一個是使用診斷。這兩方面都承認 [NK14] ,無論 IC 的可靠性或 IC 開發(fā)流程有多好,故障難免會發(fā)生。
冗余可以是相同的或不同的,可以在片內(nèi)或片外。IEC 61508-2:2010 的附錄 E 提供了一組技術來證明,已經(jīng)采取了充分的措施來支持關于數(shù)字電路使用相同冗余的片內(nèi)冗余性聲明。附錄E似乎是針對雙鎖步微控制器的,針對以下方面的片內(nèi)獨立性沒有給出任何指導:
?模擬和混頻信號集成電路
?模塊與其片內(nèi)診斷之間
?采用不同冗余的數(shù)字電路
但在某些情況下,可以針對這些情況對附錄E加以靈活解釋。附錄 E 中有一個有意思的內(nèi)容是 βIC 計算,其衡量片內(nèi)常見原因故障。通過它可以判斷間隔是否足夠,前提是常見原因故障的來源所代表的 β 小于 25%,這與 IEC 61508-6:2010 的表格中的 1%、5% 或 10% 相比是較高的。
診斷是集成電路真正可以大放異彩的領域。片內(nèi)診斷可以:
?通過設計來適應片內(nèi)模塊的預期故障 [NK15] 模式
?不增加 PCB 空間,因為外部引腳需求有限
?以高速率運行(診斷測試間隔極小 [NK16] )
?無需冗余器件來通過比較進行診斷
這意味著片內(nèi)診斷可以最大限度地減少系統(tǒng)成本和面積。一般而言,診斷是多種多樣的(有不同實施方式),取決于其監(jiān)控的片內(nèi)項目[NK17] ,因此它們不太可能以與被監(jiān)控項目[NK18] 相同的方式和同時發(fā)生故障。當故障確實發(fā)生時[NK19] ,它們遇到的很可能是同樣的問題(常常與EMC、電源問題和溫度過高有關),哪怕診斷功能是在單獨的芯片上實現(xiàn)。雖然該標準不包含此要求,但存在與使用片內(nèi)電源監(jiān)視器和看門狗電路有關的問題,而這些是最后的診斷手段。[NK20] 某些外部評估人員會堅持將此類診斷放在片外。
一般來說,對較簡單集成電路的診斷將由遠程微控制器/DSP 控制,測量在片內(nèi)完成,但結(jié)果發(fā)送到芯片外進行處理。
IEC 61508 要求最低級別的診斷覆蓋率[NK21] ,用 SFF (安全失效系數(shù)[NK22] )給出,其考慮安全故障和危險故障,與忽略安全故障的 DC (診斷覆蓋率)相關但不同。已實施診斷的成功程度可以使用量化 FMEA 或 FMEDA 來衡量。但是,在 IC 中實施的診斷也可以覆蓋 IC 外部的器件,IC 內(nèi)的項目 [NK23] 可以通過系統(tǒng)級診斷來覆蓋。當 IC 開發(fā)人員執(zhí)行 FMEDA 時,必須假定 IC 開發(fā)人員一般不知道最終應用的細節(jié)[NK24] 。在 ISO 26262 術語中,這被稱為 SEooC (脫離背景的安全要素[NK25] )。對于要利用 IC 級 FMEDA 的最終用戶,他們必須確信上述假設對其系統(tǒng)仍然成立。
雖然 IEC 61508-2:2010 的表 A.1 (實際上是表 A.2 至 A.14)就 IC 失效提供了很好的指導,分析 IC 時應予以考慮,但 IEC 60730:2010 5 的附錄 H 就該主題提供了更好的論述。
集成電路的開發(fā)方案
開發(fā)用于功能安全系統(tǒng)的集成電路有幾種方案。標準中沒有要求只能使用符合標準的集成電路,而是要求模塊或系統(tǒng)設計人員確信所選的集成電路適用于目標系統(tǒng)。
可用方案包括:
?方案 1:完全依照 IEC 61508 標準進行開發(fā),使用外部評估和安全手冊
?方案 2:依照 IEC 61508 標準進行開發(fā),無外部評估,但有安全手冊
?方案 3:依照半導體公司的標準開發(fā)流程進行開發(fā),但會發(fā)布安全數(shù)據(jù)手冊
?方案 4:依照半導體公司的標準流程進行開發(fā) [NK26]
注意:未依照 IEC 61508 開發(fā)的器件,其安全手冊可能被稱為安全數(shù)據(jù)手冊或類似名稱,以避免與遵照安全手冊開發(fā)的器件發(fā)生混淆。
對于半導體制造商來說,方案1成本最高,但對模塊或系統(tǒng)設計商來說可能最有利。擁有這樣一個器件,其中集成電路安全概念中顯示的應用與系統(tǒng)的應用相匹配,可以降低模塊或系統(tǒng)進行外部評估時遇到問題的風險。SIL 2 安全功能的額外設計工作量可能在 20% 或更多。即使沒有功能安全,半導體制造商通常也已經(jīng)實施了嚴格的開發(fā)流程,而且額外工作量可能會更多。
方案 2 節(jié)省了外部評估的成本,但其他方面的影響相同。如果客戶無論如何都要讓模塊/系統(tǒng)進行外部認證,并且集成電路是該系統(tǒng)的重要組成部分,那么此方案是合適的。
方案 3 最適合于已經(jīng)發(fā)布的集成電路,提供安全數(shù)據(jù)手冊可以讓模塊或系統(tǒng)設計人員獲得其在更高級別上進行安全設計所需的額外信息。這包括如下信息:所用實際開發(fā)流程的詳細信息,集成電路的 FIT 數(shù)據(jù),任何診斷的詳細信息,以及制造現(xiàn)場的 ISO 9001 認證證據(jù)等。
然而,方案 4 仍然是開發(fā)集成電路最常用的方法。使用此類器件開發(fā)安全模塊或系統(tǒng),將需要額外的器件和開支用于模塊/系統(tǒng)設計,因為這些器件沒有充分的診斷能力,需要雙通道架構(gòu)以資比較,而不是單通道架構(gòu)。若沒有安全數(shù)據(jù)手冊,模塊/系統(tǒng)設計人員還需要做出保守的假設,并將集成電路視為黑盒子。
此外,半導體公司需要制定自己對標準的解釋,筆者自己的公司為此開發(fā)了內(nèi)部文件 ADI61508 和 ADI26262。ADI61508 采用了 IEC 61508:2010 的七個部分,并根據(jù)集成電路開發(fā)解釋了相關要求。
SIL 2/3 開發(fā)
有時候,集成電路可以依照 SIL 3 的所有系統(tǒng)要求進行開發(fā)。這意味著 IEC 61508-2:2010 表 F.1 針對 SIL 3 的所有相關項目都得到遵守,并且所有設計評審和其他分析都按照 SIL 3 級要求完成。但是,硬件度量標準可能只對 SIL 2 來說是夠好的。這種電路可以被標識為 SIL 2/3 或更典型的 SIL M/N,其中M表示根據(jù)硬件度量標準可以聲明的最高 SIL 級別,N表示根據(jù)系統(tǒng)要求可以聲明的最高SIL級別。兩個 SIL 2/3 集成電路可用來實現(xiàn) SIL 3 模塊或系統(tǒng),因為根據(jù)硬件度量標準,兩個 SIL 2 項目并聯(lián)就會將該組合升級到 SIL 3,但就系統(tǒng)要求而言,各項目已經(jīng)是 SIL 3。如果集成電路僅是 SIL 2/2,那么將兩個這樣的集成電路并聯(lián)不會使其成為 SIL 3,因為其充其量不過是 SIL 3/2。
將硬件度量標準應用于集成電路
除了幾乎全部安全功能都由集成電路實現(xiàn)的情況之外,很難為半導體指定 SFF、DC 或 PFH 限值。以 SFF 為例,SIL 3 要求 SFF 大于 99%,這適用于完整安全功能,而不只是集成電路。如果集成電路為 98%,仍然可以利用它來實現(xiàn) SIL 3 安全功能,但系統(tǒng)的其他部分需要實現(xiàn)更高的覆蓋率以進行補償。集成電路的安全手冊或安全數(shù)據(jù)手冊需要公布 λDD、λDU 和 λ 以用于系統(tǒng)級 FMEDA。
理想情況下,IC要求是在系統(tǒng)級分析中導出的,但通常情況并非如此,開發(fā)實際上是一個 SEooC (參見 ISO 26262,脫離背景的安全要素[NK27] )。在 SEooC 的情況下,IC 開發(fā)者需要假設 IC 在系統(tǒng)中將會如何使用。然后,系統(tǒng)或模塊設計者必須將這些假設與實際系統(tǒng)進行比較,以確定 IC 的功能安全性對系統(tǒng)是否足夠。這些假設可以決定診斷是在IC上實施,還是在系統(tǒng)級實施,并因此影響IC級特性和功能。
保密性 (Security)
系統(tǒng)的安全性與保密性密不可分。目前,IEC 61508 或 ISO 26262 中與保密性有關的唯一指導是讓讀者參考 IEC 62443 系列 6。但是,IEC 62443 似乎更多地是針對較大的組件,例如整個 PLC 組件,而不是單個 IC。好消息是,功能安全標準中消除系統(tǒng)故障的大部分要求也適用于保密性。沒有任何參照是很有趣的,因為在某些情況下,硬件可以提供硬件信任根和類似 PUF (物理上不可克隆的功能)的功能,這對于安全性和保密性十分重要。
結(jié)論
現(xiàn)有 IEC 61508 涵蓋了從集成電路開發(fā)到煉油廠的一切。雖然針對機械和過程控制等領域有專門的行業(yè)專用標準,并且 IEC 61508 第二版中有關于集成電路的一些指導,但針對集成電路并無專用標準。缺乏具體要求導致要求被任意解釋,因此不同客戶和外部評估人員的期望之間可能出現(xiàn)沖突。
這意味著,各行業(yè)將傾向于按照更高層次的標準對集成電路提出行業(yè)特定的要求。這樣的要求已經(jīng)可以在 EN 50402 7 等標準中看到,但最特別的是 ISO 26262的2016 版草案 8 中,其中新增的第 11 部分專門處理集成電路。
評論
查看更多