根據ISO26262,功能安全是指不存在因電氣和電子系統故障行為引起的危害而導致的不合理風險。
無論垂直市場如何,這個定義都意味著對任何安全相關系統有很多非常具體的要求。
各種安全標準還定義了不同級別的安全完整性,即特定系統需要有多“安全”。例如,控制車輛制動器的系統將具有最高級別的安全性,因為這種系統的故障可能是災難性的。
然而,控制駕駛員座椅電機的系統雖然仍具有安全要求,但相對沒有那么高的要求。在ISO26262中,這被定義為“汽車安全完整性等級”或“ASIL”。ASIL目前被定義為四個不同的級別,從“A”(最低)到“D”(最高)。這些級別與系統必須達到的診斷覆蓋率直接相關,換句話說,與給定系統預期檢測到的故障數量直接相關。
根本挑戰
隨著汽車行業向完全自主實施邁進,人們期望這場革命將帶來一個更安全的世界。超過90%的車輛事故是由人為錯誤引起的,新一代車輛最終可以極大地降低死亡數字。然而,在車輛上實現功能安全,仍有幾個基本挑戰需要解決。自動化的系統需要消耗大量的計算性能,并且,由于它們能夠控制車輛的方向和速度,因此它們需要具備最高水平的安全完整性。
那么,實現這一目標的技術選擇是什么?
1. 鎖步(lock-step)
在“鎖步”中配置兩個 CPU 內核是實現高級別診斷覆蓋率的傳統方法 - 能夠檢測錯誤情況的發生。原理很簡單,每個內核執行完全相同的代碼,每個內核都將輸出反饋給一個比較邏輯模塊。
比較邏輯模塊逐周期比較輸出,只要結果相等,一切正常。如果結果之間存在差異,則可能表明需要做更多檢查或處理故障情況。
需要進行的操作由系統開發人員定義,并取決于相關系統。它既可以直接重新啟動,或者在給定一段時間后重新檢查錯誤條件是否仍然存在。鎖步設計固定在芯片中,因此沒有靈活性,因此,雖然擁有兩個內核,但實際只能運用到單個內核的性能。
這種方法運用的非常普遍,多年來一直適用于微控制器和不太復雜的確定性微處理器。
2. 冗余執行(Redundant execution)
提供更高性能功能的 CPU 通常更復雜,確定性更低,因此對鎖步更具挑戰性。這導致了解決上述挑戰還需要考慮更多方案,軟件冗余或冗余執行就是一種選擇。
此方法假定兩個獨立的應用程序,運行在不同的 CPU 內核上,甚至在不同的虛擬機中(如果實施了虛擬化)。當應用的輸出可用時,它們與額外的高安全完整性內核進行比較,以確保正確性,由于其獨立的時鐘和電源,通常被稱為“安全島”。這個安全島將負責最后的“決定和啟動”階段。此方法可以降低高計算群集上的診斷覆蓋率要求,還可以在實現中引入更大程度的靈活性,同時提高效率。
然而,它也大大增加了系統的復雜性,再加上交叉檢查的顆粒度較低。由于軟件靈活性的優勢,這種方法可能會在未來幾年更廣泛地用于某些需要安全性和高計算性能的應用程序。
3. 分核鎖(Split-Lock):兩全其美
最終的解決方案必須是將兩種方法的優勢(靈活性、性能、簡單性和經過驗證)結合在一起的解決方案。通過引入“分核鎖”功能,高計算性能與高安全完整性支持相結合。
分核鎖與鎖步有何不同?從本質上講,它增加了鎖步 CPU 實現中不可用的靈活性。它允許系統在啟動時配置為“拆分模式”(兩個獨立的CPU,可用于不同的任務和應用程序)或“鎖定模式”(CPU的鎖定步進,用于高安全性完整性應用)。這種靈活性甚至可以擴展到支持潛在的故障操作模式 - 繼續在降級模式下運行而不是完全關閉系統的能力。例如,在鎖定模式下運行時,如果一個內核開始出現故障情況,系統可能會被靜默,故障內核可能會下線(拆分),從而允許在降級的操作模式下繼續運行。這種“拆分可用”功能對于部署自主功能的系統都至關重要。
-
cpu
+關注
關注
68文章
10854瀏覽量
211578 -
故障
+關注
關注
6文章
386瀏覽量
29386
原文標題:鎖步,冗余執行,以及分核鎖
文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論