ARM戰略信息技術專家 Andrew Hopkins
通過IP設計實現汽車功能安全
ARM戰略信息技術專家 Andrew Hopkins
功能安全的最終目的是確保產品安全運行,即便出現問題也可以繼續保駕護航。基于這一理念,ARM將保證安全視為頭等大事,而非單純依照市場導向隨波逐流,不斷加強研發,推出更多功能安全相關產品。各行各業都會制定標準,指導未來發展并限定最低準入門檻。在汽車電子行業,這一標準就是ISO 26262,它將功能安全定義為:避免因電氣/電子系統故障而導致的不合理風險。
芯片IP的功能安全曾是非常小眾的領域,只有少數汽車、工業、航空航天和其他類似市場的芯片與系統開發商感興趣。然而,隨著過去幾年各類汽車應用的興起,情況已經發生巨大變化。除了汽車外,還有很多其他行業也能從電子器件的增加受益,當然保障功能安全是大前提。醫療電子和航空就是兩個典型例子。
如今,隨著高級駕駛輔助系統(ADAS)及富媒體車載信息娛樂系統(IVI)的普及,盡管高度自動化駕駛的時代依然遙遠,但自動駕駛汽車的前景已變得愈發清晰。尺寸形狀各異的無人機和日益普及的物聯網也是亟需功能安全的領域,ARM的技術將成為一大助力。
與其他技術市場一樣,新興的功能安全應用也需要半導體的驅動;這并不是紙上談兵,日新月異的產品創新已經引起了ARM合作伙伴的濃厚興趣。多數功能安全嵌入式系統都需要具備安全防護及實時處理兩大核心要素,ARM Cortex-R系列處理器為此需求量身定制,為嵌入式系統提供高性能運算解決方案,確保產品的高可靠性、高可用性、容錯,以及/或強大實時自主判斷能力。這些特性為實現ADAS和IVI系統的高安全完整性打下基礎,不僅可以執行關鍵行為處理,應對安全相關的中斷事件,與其他系統通訊,還可以對集成度較低的復雜功能進行監管。
故障可能是系統性的(如規范制定和設計過程中的人為因素),也有可能與使用的工具有關。減少故障的一種方法是執行嚴苛的質量管控流程,必須包括詳細的規劃、審查和量化評估。合理的規劃使用工具認證非常重要,管理與追蹤需求變更的能力也同樣關鍵。ARM的Compiler 5編譯器已經通過南德集團(TüV SüD)認證,助力安全研發,客戶無需對編譯器進行額外認證。還有一種故障類型被稱為隨機硬件故障。它們可能是永久性故障,比如短路;也有可能是由于天然輻射而造成的軟性故障。這類故障可以利用集成在軟硬件的方案進行處理,因此系統級的技術也同樣重要。舉例來說,邏輯內建自測試(BIST)可以應用于系統啟動和關閉,區分軟性和永久性故障。
故障檢測和控制措施的選擇和設計是流程設計師最喜歡的環節,因為他們可以同時用系統級和微架構級的技術大展手腳。建立故障模式概念和效果分析(FMEA)是個不錯的開始,列舉出所有可能出現的故障模式及其后果的嚴重程度。有了這些信息,加上設計師對復雜系統的深入理解,即可鑒別出最嚴重的故障模式,并設計出應對措施。應對潛在故障的方法較多,下面列出了一些最常用的技術:
①多樣化檢查器:使用另一條電路檢查主電路是否發生故障。舉個例子,檢查器可以為中斷控制器計數,持續記錄人為及系統引起的中斷總數。
②完整鎖步復制:該技術主要用于Cortex-R5處理器,對一個IP元件(如一個處理器)進行多次實例化,利用循環產生操作延遲,生成時間和空間冗余。大容量存儲通常由多個實例共享,以降低所需面積。盡管這一技術非常可靠,但也極為昂貴。
③選擇性硬件冗余:這個方案里,只有硬件的關鍵部分可以復制,如仲裁器。
④軟件冗余:硬件冗余通常非常復雜,而且會產生間接成本,是對資源的不合理使用。硬件運算的替代方法就是,在多個處理器內核上運行同一次計算,檢查結果是否匹配。
⑤錯誤檢測和校正碼是另一種為人熟知的技術,通常被用于保護存儲器和總線。代碼類型多種多樣,但目標只有一個,既通過少量附加位獲得更高冗余,無需復制所有底層數據。汽車系統中,這一尖端技術可以利用足夠多的冗余檢測出一個存儲字的2位錯誤;并支持錯誤修正。
檢測出故障后就必須進行記錄,以幫助監管軟件判斷系統的健康和安全狀況。安全故障(如存儲器修正)和危險故障(如不能挽回的硬件故障)必須分別記錄。
故障記錄通常從故障計數開始,可以由系統級架構記錄有信號事件(類似于中斷)的數量;或者由IP計數器記錄。為了解這些事件發生的原因,最好還能將過去的事件作為參考,判斷當前時間的發生原因。為支持這一需求并進行調試糾錯,可以允許一些IP捕捉額外信息,如被偵查的存儲地址。因為該地址通常會由軟復位保存,所以可以在系統啟動和系統自檢過程中被讀取。
有一點需要牢記,故障也可能發生在安全架構本身。與硬件故障不同的地方是,后者通常可以在使用過程中被很快發現,但安全檢查器中的故障可能是潛伏的,它已經無法偵測危險故障,但故障卻已經悄悄地蔓延開了。這樣的故障被稱為潛伏故障,定期測試檢查器是個不錯的方法。
不同的標準體系反應安全等級的方法也各不相同,但其主要目的是直觀地反映功能的關鍵性。比如說,控制擋風玻璃雨刮、安全氣囊或制動器的ECU,完整性必須高于控制車速表或泊車傳感器的ECU,因為前方視野至關重要,突然剎車或氣囊充氣可能造成致命后果,駕駛員也會兇多吉少;而車速表或泊車傳感器對安全停車的重要性就低得多了。換句話說,安全完整性等級是與人避免危險情況的必要性和能力相關的;而各項標準的作用就是指導人們如何定義安全完整性等級,并提供相關參數,幫助其對系統完整性進行量化。
IEC 61508將安全完整性等級(SIL)分成4級,第4級為最高完整性。與之相似,ISO 26262提出了汽車安全完整性等級(ASIL),最低為ASIL A,最高為ASIL D。此外,針對ASIL B到ASIL D,ISO 26262分別就單點故障、潛伏故障和硬件故障概率指標(PMHF,業內也稱及時故障)提出了建議參數。可檢測故障的比例被稱為診斷覆蓋率。
盡管這些指標通常被視為標準要求,但在實際應用中,它們一般只被視為建議,供應商可以自行制定目標參數。最重要的目標是打造安全的產品,而不是在產品參數表上多加幾個數字。讓我們再次借用前面提到過的例子——擋風玻璃雨刮、制動器和安全氣囊,這些元件的安全級別可能達到ASIL D,而車速表和泊車傳感器可能是ASIL B或更低,具體級別取決于整體系統安全設計。
無論診斷覆蓋率多高,打造功能安全應用的時候都必須遵循合適的流程——這也是標準體系最大的益處。此外,無論采用何種功能安全措施,嚴格的質量流程都可以提升任何應用的整體質量。
開發功能安全應用IP時,“循規蹈矩”非常重要。這個過程必須從一開始就將安全納入考慮,而且還必須營造支持安全的文化。完整的開發流程必須包含以下重要方面:
①安全管理:包括團隊組織架構,具體內容如明確不同職位的定義和職責、打造安全文化、定義安全生命周期、定義功能安全支持級別。安全生命周期的設定包括制定一份成功計劃、選擇合適的開發工具、確保團隊接受充分的培訓。
②需求管理和故障檢測及控制措施(應對措施)的可追溯性。為精確實現需求追溯,需求本身定義必須要明確、精準,且具備唯一性。追溯等級取決于完整性的要求,文件可以高等級;產品則需要從故障檢測到驗證等各個環節面面俱到,計劃過程不得空穴來風,必須經過詳細驗證。
③質量管理是需求追溯的拓展和延伸。勘誤表必須得到妥善管理和使用。ARM在這一領域擁有豐富的經驗。此外,流程的記錄和傳達也同樣重要。
IP開發是ARM支持合作伙伴的一種途徑,我們的合作關系并不會止于客戶收到IP的那一刻。針對功能安全相關的IP開發,ARM定義了2個安全文件包等級:最高至ASIL B的標準支持;最高至ASIL D的延伸支持。每個安全文件包都包含一份安全手冊,詳細說明遵循的流程、故障檢測及控制功能、適用場景和其他信息。我們同時提供“故障模式及效果分析報告”,并提供案例分析,闡述如何用IP實現更高的診斷覆蓋率;我們也為客戶的獨立分析提供芯片級的更多支持。此外,文件包也就ARM和被授權方的開發接口做出了明確定義。
安全狀況報告的建立和使用需要步步遞進。該報告由芯片開發商提供信息,所有廠商的信息都必須綜合考慮,最后交付客戶使用,層層遞進。獲許可最多的芯片IP被稱為“獨立安全單元”(SEooC),其設計師們無需了解該芯片后續的使用方式。因此,安全手冊必須說明IP開發商對芯片使用建議和說明,避免誤用。同樣,OEM的1級控制器供應商也可以使用SEooC模型開發安全功能。因此,IP級的安全文件包可用于整個價值鏈,是IP開發的重要部分。
從汽車到醫療再到工業設備,依賴電子器件的應用越來越多,功能安全正變得更加重要,并將成為常規要求。功能安全是IP廠商必須達成的要求,也是讓基于該IP建造的模型順利運行的必要條件,因此IP廠商必須將每項研究成果授予盡可能多的芯片合作伙伴,反之亦然。有了堅實的質量和可靠性,功能安全才能帶來更廣泛的好處,進而推動全行業的質量和可靠性提升。