集成電路的功能安全

集成電路(IC)是所有現代安全系統的根本 。 集成電路提供邏輯,控制傳感器,從很大程度上看,其本身就是傳感器 。 集成電路驅動最終元件以實現安全狀態,它們是軟件運行的平臺 。 半導體內部的高集成度可以簡化系統級實現,其代價是IC內部復雜性增加 。 這種集成會減少器件數量,改善系統可靠性,并為提高診斷覆蓋率和縮短診斷測試間隔創造機會——所有這些都是以安全性適中為代價的[NK1]  。 有人可能會認為,由于復雜性增加,這種高集成度是一件壞事 。 然而,雖然集成電路復雜性提高,但在模塊和系統層面上可以大大簡化 。 令人吃驚的是,過程控制、機械、電梯、變速驅動器和有毒氣體傳感器都有相應的功能安全標準,但關于集成電路卻沒有專門的功能安全標準 。 相反,相關要求和知識是零散地分布在IEC 61508和其他B級、C級標準中 。 本文為解讀現有半導體功能安全標準提供指導 。
 
 
簡介 
 
通常,集成電路按照IEC 61508或ISO 26262標準進行開發 。 另外,二級和三級標準中有時還會有其他要求 。 只有按照功能安全標準進行開發和評估,才能讓人放心這些復雜的集成電路足夠安全 。 當編寫IEC 61508時,其針對的是定制系統,而不是開放市場批量生產的集成電路 。 本文將回顧并評論集成電路的已知功能安全要求 。 雖然本文集中討論IEC 61508及其在工業領域的應用,但很多內容都與汽車、航空電子和醫療等應用有關 。
 
功能安全 
 
功能安全是安全性的一部分,與系統在需要的時候是否有把握執行安全相關任務有關[NK2]  。 功能安全不同于其他被動形式的安全,如電氣安全、機械安全或本質安全 。
 
 
功能安全是一種主動形式的安全 。 例如,它能確保馬達以足夠快的速度關閉,防止對打開防護門的操作員造成傷害,或者當有人在附近時,機器人會降低運行的速度和力度 。
 
標準 
主要功能安全標準是IEC 61508 1 。 該標準的第一版于1998年出版,第二版于2010年出版,并于2017年開始更新至第三版的工作,可能的完成日期是在2022年 。 自從1998年公布IEC 61508第一版以來,基本IEC 61508標準已針對不同領域進行適應性修改,例如汽車(ISO 26262)、過程控制(IEC 61511)、PLC (IEC 61131-6)、IEC 62061(機械)、變速驅動器(IEC 61800-5-2)以及其他許多領域 。 此類標準有助于對非常寬泛的IEC 61508進行解釋以便用于這些受到更大限制的領域 。
 
一些功能安全標準,例如ISO 13849和D0-178/D0-254,并非衍生自IEC 61508 。 盡管如此,任何熟悉IEC 61508并閱讀這些標準的人都不會對其內容感到過于吃驚 。
 
在安全系統內,當系統運行時,執行關鍵功能安全活動的是安全功能 。 安全功能定義了實現或保持安全所必須執行的操作 。 典型的安全功能包含輸入子系統、邏輯子系統和輸出子系統 。 通常,這意味著對潛在的不安全狀態進行檢測,并且基于檢測到的值做出決定,如果認為有潛在危險[NK3] ,則指示輸出子系統將系統置于已定義的安全狀態 。
 

集成電路的功能安全

文章插圖

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