功能安全是相對於可能出現的操作人員失誤、硬體故障及環境變化的整體系統安全性。其取決於系統或設備能否根據輸入並正確地運行,包括安全地管理作業人員錯誤、硬體故障和環境變化,以避免過當的身體傷害,或對健康直接甚至間接造成損害風險。
為確保安全功能能夠符合設計初衷,人們一直不斷改進各種標準,甚至規範作業人員輸入不正確和故障模式等情況的因應措施,其中,IEC 61508是適用於各個行業的國際功能安全標準之一,其名稱是「電氣電子可編程電子安全相關系統的功能安全(Functional Safety of Electrical/Electronic/Programmable Electronic Safety-related Systems, EEPE或EEPES)」。
另外,ISO 26262是從IEC 61508衍生而來的功能安全標準,其名稱為「道路車輛功能安全(Road Vehicles--Functional Safety)」,定義了汽車設備的功能安全,適用於所有汽車電子電氣安全相關系統的整個生命週期(表1)。
|
表1 IEC 61508與ISO 26262功能安全標準細部規範 |
冗餘、自檢機制、訊號監測、電壓電源監測和看門狗(Watchdog)都是符合安全標準的設備中所使用的幾種技術。冗餘是這些設備的主要組成部分,在汽車設備中的使用有多種方式,舉例來說,許多符合安全標準的設備將鎖步、錯誤碼修正(ECC)、循環冗餘校驗碼(CRC)及校驗等做為冗餘技術。在系統單晶片(SoC)中使用的冗餘技術(表2),包括硬體、軟體、資訊和時間冗餘。
|
表2 各類晶片實作功能安全之方法 |
確保汽車設備安全性 冗餘技術實現多元化
冗餘是指除了在關鍵功能中使用的元件外,還包含額外的元件,旨在提高系統的可靠性和可用性。冗餘的添加方式有很多,如硬體(例如雙核鎖步)冗餘、軟體冗餘、資訊冗餘(例如將ECC添加到記憶體)和時間冗餘。一般情況下,冗餘依據N分之M(M-out-of-N, MooN)概念工作。
MooN系統包含N個相同的元件,工作原理是,如果N個元件中的至少M個元件正常工作,那麼該系統就沒有錯誤。舉例來說,三重模組化冗餘(TMR)(圖1),這實際上是一個三分之二(2oo3)系統,如果三個元件中至少有兩個元件(大部分)正常運行,那麼該系統則被視為正常運行。
|
圖1 三重模組化冗餘架構圖 |
MooN系統在硬體和軟體中使用。在硬體中,關鍵元件被複製,根據多數投票原則做出決策;在軟體中,一個任務被重複多次,然後比較任務執行結果,生成最後結果。
硬體冗餘
在SoC中,硬體冗餘可以採用多種形式,如複製執行安全關鍵任務的內核(也稱為鎖步)、延遲鎖步(1oo1系統)、非對稱鎖步及三重投票(2oo3系統)。
‧ |
|
|
在符合安全標準的高級設備中,執行安全關鍵任務的內核被複製,在鎖步模式下運行的這兩個內核會藉由比較結果,確保冗餘處理產生完全相同的結果,如未獲得完全相同的結果,則視為發生故障。
|
在鎖步模式下,同一組輸入會被發送到這兩個內核,然後這兩個內核在相同的時鐘週期內執行相同的計算,並定期比較結果,檢測是否發生故障(無論是暫態故障、間歇性還是永久性故障),一旦輸出不匹配,通常會標記故障並執行重啟。
圖2顯示鎖步中的內核(雙核鎖步)。
|
圖2 雙核鎖步示意圖 |
‧ |
|
|
延遲鎖步是鎖步的一種。該模式為其中一個內核的輸入延遲了N個時鐘週期,另一個內核的輸出也延遲了相同時間,然後進行比較結果,透過這種方法,能獲得時間分集。
|
由於一個內核在N個時鐘週期後將執行相同的運算,衝擊這兩個內核並以相同的方式影響其功能的雜訊脈衝的概率將大大減少。
圖3顯示的為延遲鎖步配置,饋送給內核2的資料被延遲了兩個時鐘週期,其重置也延遲了兩個週期;內核1的輸出延遲了兩個時鐘週期,然後由校驗器電路進行比較,如發現故障,則標記錯誤。
|
圖3 延遲鎖步配置圖 |
‧ |
|
|
非對稱冗餘技術不複製相同的內核,而是使用不同的內核。不同的專用內核通過一個介面與主內核緊密耦合,實現內部和外部結果的逐步比較。該介面大幅降低了複雜性,縮短錯誤檢測延遲。 |
主核執行關鍵的任務,而專用的多樣化內核則複製足夠多的主核執行,確保能檢測故障,或主核安全運行。此外,硬體的多樣性可以有效覆蓋共因故障和系統故障。內核的不同結構將導致不同的內核反應方法,可改善共因故障的診斷覆蓋,因此這兩個內核發生的同類故障的情況將能有效減少,不過這種方法可能需要詳細的分析來證明診斷覆蓋。
‧ |
|
|
此類冗餘在位級實施。安全關鍵任務中所使用的暫存器位被複製兩次,並根據多數投票邏輯生成輸出。以2oo3多數投票系統的例子來看,如果這三個觸發器中的任何一個發生故障,那麼其餘的兩個觸發器將掩蓋故障,且在假設這三個觸發器中的兩個很難被同時損壞的前提下,那麼這種技術可保持系統運行。由於在這種情況下,面積補償是雙倍的,因此須要徹底檢驗設計配置位元,確定安全關鍵的配置資訊,避免任何不必要的面積開銷。 |
軟體冗餘
軟體冗餘意即在軟體中執行該任務多次。透過使用不同的軟體執行該任務多次(不同的演算法用於同一個任務),然後比較結果。值得注意的是,這種方式可有效改善診斷覆蓋。
‧ |
|
|
設計中使用兩種完全不同的軟體實現,即在一個處理單元中使用不同的演算法來執行相同的任務(圖4)。演算法多樣化示例包括A+B=C與C-B=A,一個通道使用正常的計算,另一個通道使用二進位補數數學。 |
主用通道負責計算,若計算錯誤恐會導致危險;冗餘通道則負責檢驗主用通道的計算,如果發現故障將會採取行動;此外其採用單獨的演算法設計和代碼實現,以提供軟體多樣化。一旦兩條通道都完成後,則比較這兩種冗餘軟體實現的輸出資料,如發現差異,則生成故障消息。
|
圖4 軟體多樣化冗餘設計圖 |
‧ |
|
|
兩個處理單元相互交換資料(包括結果、中間結果和測試資料),並在每個單元中使用軟體比較資料,如檢測到差異則生成故障消息,如圖5。在這種情況下,主用通道和冗餘通道在不同的處理單元中使用不同的軟體演算法來執行,如果是使用不同的處理器類型及單獨演算法設計、代碼和編譯器,那麼這種方法便允許硬體和軟體多樣性。 |
‧ |
|
|
周邊複製與內核複製不同,周邊共用外部世界的相同輸入,周邊的輸出在軟體中進行比較。例如,在SoC中使用多個類比數位轉換器(ADC)。當輸入通道被複製到大多數ADC,它們的輸出可在軟體中進行比較。 |
|
圖5 在單獨的處理單元藉由軟體進行互反判斷,為一種軟體冗餘技術。 |
資訊冗餘
資訊冗餘是指在通過嘈雜的通道傳輸資訊時,添加到實際資料中的冗餘數據,目的是檢測故障或修復故障。
‧ |
|
|
奇偶校驗位是指被添加到二進位資料結尾的位元,指示資料中「1」的數量是奇數還是偶數。偶校驗方案是指,如果資料中「1」的數量為奇數,則向資料添加一個「1」;奇校驗方案是指,如果資料中「1」的數量為偶數,則向資料添加一個「1」。舉例來說,如果實際資料為1111 0000」,並且在其後添加一個偶校驗位,那麼「1111 0000 0」將通過通訊通道傳輸。 |
在接收器端,如果收到單個位元觸發資料,那麼接收器將檢測到資料在傳輸過程中被破壞,可請求發射器重新發送資料。
‧ |
|
|
校驗和是使用某些函數通過資訊資料計算的資料,並與資訊資料一起通過雜訊通道傳輸。在接收器端,使用收到的資料計算校驗和,且應當匹配所收到的校驗和。 |
錯誤檢測功能取決於冗餘比特數量、資料大小,以及生成校驗和所用的多項式;奇偶性、模組化和與位置相關的校驗和是幾種可用於錯誤檢測的校驗和示例,在檢測到錯誤的情況下,可通過訊號通知發射器重新傳輸資料。
‧ |
|
|
某些校驗函數不僅能夠檢測錯誤,還能指出資料中可能引入的某些類型的錯誤,從而在不重新發送資料的情況下讓接收器能夠獲得正確的資料,這些函數被稱為改錯碼。 |
但是,利用這種方式,能夠被校正的錯誤也有限制。例如,漢明碼是改錯碼,雖能夠檢測到雙位元錯誤,但只能校正資料中的單位錯誤;格雷碼能夠檢測四位元錯誤,但只能校正三位元錯誤。
BCH碼(Bose Chaudhuri Hocquengham Code)、Goppa碼、Reed-Solomon碼、Reed-Muller碼和Hadamard碼是以其發明人命名的其他代碼。此類編碼技術可作為資訊和編碼理論的一部分進行研究,是應用數學、電子工程和電腦科學的一個有趣和廣泛的分支。
時間冗餘
時間冗餘是指以冗餘的方式執行安全關鍵的任務,隨時間而變化,由於這些冗餘任務隨時間而變化,因此有助於消除暫態故障。
‧ |
|
|
該技術使用同一款軟體在一個硬體上執行多次安全關鍵的任務,然後再比較多次運算的結果,如果發現差異,則執行相關的糾正作業。 |
上述「軟體冗餘」部分中描述的「軟體多樣化冗餘」(一個硬體通道)是此類冗餘的擴展版本。
‧ |
|
|
這種技術係在並行通道上執行,但不同時執行所有安全關鍵的任務有助於隨著時間的推移創建冗餘。暫態故障不會以相同的方式影響作業,即使並行通道是對稱的硬體。前述的「延遲鎖步」即是此類時間冗餘的一個範例。 |
目前,汽車行業藉由多種設計技術以實現安全性,這是實現安全性所必不可少的,目的是確保設備在發生故障時更加可靠和穩定。
硬體冗餘的優勢是能夠盡早檢測到故障,但代價是須要增加硬體數量;另一方面,如果系統成本有限,那麼軟體冗餘可能用處更大,而不管是硬體和軟體冗餘及時間冗餘,都能使系統更加穩定可靠。
(本文作者皆任職於飛思卡爾)