ISO 26262-9:2018的第6章節對系統設計(ISO 26262-4)、硬件設計(ISO 26262-5)和軟件架構設計(ISO 26262-6)提出了“要素共存(Coexistence of Elements)"的要求。本文針對該概念進行詳細講述,探討“要素共存"的內在涵義,以及設計開發中針對其需要注意的地方。
級聯失效在討論“要素共存(Coexistence of Elements)"之前,先理解“級聯失效(Cascading Failure)"這個概念,ISO 26262-1:2018的3.17給出了“級聯失效(Cascading Failure)"的定義如下:
圖1:ISO 26262中對級聯失效的定義
(該截圖來源于ISO 26262-1:2018)
級聯失效(Cascading Failure):在相關項里的一個要素的內部或外部的一個原因,導致了一個失效,然后該失效又引起了另一個要素(在相同、或不同相關項里)產生了一個失效。簡單理解地說:要素A產生了一個故障,該故障導致要素B產生了一個故障,這種情況就是級聯失效。
在產品開發過程中(以MCU為例子),其內部包括了多個不同功能和用途的IP(例如CUP、ADC、ROM、RAM、DMA、CAN、CLOCK等),盡管MCU內部要素分配的最高ASIL等級是D,但基于假設開發時某些非安全相關的QM功能也都按照ASIL D開發只會導致開發難度急劇上升、成本上漲。理想的結果是,上層安全需求是什么ASIL等級,分配到的IP/模塊就按各自分配的安全需求最高ASIL等級開發,如下圖所示。
圖2:安全需求分配給不同的要素
但是在開發過程中,由于某一個安全功能可能是由不同的IP組合來實現的,而且一個IP可能也需要承擔多個安全功能一部分,這就導致了IP跟IP之間存在了一些耦合的因素,例如IP之間共享內存、IP之間的通信,而且這種現象在開發過程中是幾乎無法避免的。例如圖2中IP_001和IP_002存在“交互",在這里暫時先不關心“交互"的方式,先思考一個問題:這種“交互"會帶來什么問題?
結合第二節提及的“級聯失效(Cascading Failure)",這里假設IP_002的存在某一個失效模式(開路、短路或卡滯),該失效可能會導致IP_001獲取到一個錯誤的輸入,從而違背了某一個安全需求,因此IP_001和IP_002之間存在級聯失效。
為了避免出現上述問題,ISO 26262提出了“要素共存(Coexistence of Elements)"的概念,目的就是為了防止較低ASIL等級要素或QM要素的失效,導致較高ASIL等級要素失效,若滿足這條原則,我們就叫滿足要素共存準則(Criteria for Coexistence of Elements)。
有了第三節的知識背景,理解“免于干擾(Freedom From Interference)"的概念就比較簡單了,先看ISO 26262對其的定義:
圖3:ISO 26262中對免于干擾的定義
(該截圖來源于ISO 26262-1:2018)
免于干擾(Freedom From Interference):兩個及以上的要素之間不存在導致違背安全需求的級聯失效。例如,若經過分析,圖2中的IP_002不會導致IP_001產生違背安全需求的失效,則IP_001免于IP_002干擾。
因此,免于干擾(Freedom From Interference)和級聯失效(Cascading Failure),其實就是一回事。非要分出個所以然的話,我們可以這樣來理解兩者之間的關系:免于干擾(Freedom From Interference)表征的是不同要素之間的一種關系屬性,而級聯失效(Cascading Failure)表征的是一個要素受到另一個要素的影響結果。有時候,針對免于干擾的分析我們也叫FFI(Freedom From Interference的縮寫)分析,目的就是為了找出架構設計中的要素之間是否級聯失效(Cascading Failure)。
在進行FFI分析時,分析團隊應確定以下內容已經完成:
1) 考慮需要分析的安全需求;
2) 考慮需要分析的架構;
3) 已分配安全需求的架構要素及其子要素。
下面基于第3節的例子繼續討論,將不同ASIL等級的架構要素(IP或模塊)按相應等級分類,然后找到FFI的分析路徑,如圖4所示,圖中共顯示有三個分析路徑,即針對該要素中的子要素(IP_001~IP_003)進行FFI分析時,應考慮以下:
1) 分析路徑1:IP_002(ASIL B)對IP_001(ASIL D)的干擾;
2) 分析路徑2:IP_003(QM)對IP_002(ASIL B)的干擾;
3) 分析路徑3:IP_003(QM)對IP_001(ASIL D)的干擾。
圖4:識別FFI分析路徑
針對上述的分析路徑1,我們在第3節中已經假設IP_002會引起IP_001級聯失效。對此,在產品架構設計時,需要考慮從以下方面進行優化:
1) 源頭杜絕。例如,切斷IP_001和IP_002之間的傳播路徑;
2) 持續檢查。若上述傳播路徑是不可避免的,則需要對IP_002或傳播路徑進行周期性檢查,以確保IP_001正常執行安全功能;
3) 事后補救。最差的情況,如果“級聯失效(Cascading Failure)"無法避免,即上面兩種情況都不能實現,則應制定針對IP_001失效以后的處理機制,例如檢測到IP_001失效后進入安全狀態。
針對其他的分析路徑,若分析得出存在級聯失效(Cascading Failure)的可能,則同樣可按照上述方式進行設計優化。針對上述分析路徑1~分析路徑3中的“干擾",將在下期內容《ISO 26262中的相關失效分析》進一步講述,如果得出這些干擾源。
廣電計量在汽車、鐵路系統產品檢測方面擁有豐富的技術經驗和成功案例,能為主機廠、零部件供應商、芯片設計企業提供整機、零部件、半導體、原材料等全面的檢測、認證服務,保障產品的可靠性、可用性、可維護性和安全性。
廣電計量擁有技術先進的功能安全團隊,專注于功能安全(包括工業、軌道、汽車、集成電路等領域)、信息安全和預期功能安全領域的專家,具有豐富的集成電路、零部件和整機功能安全實施經驗,可根據相應行業的安全標準為不同行業的客戶提供培訓、檢測、審核和認證一站式服務。
圖5:功能安全項目實施流程