符合安全標(biāo)準(zhǔn)的汽車器件冗余設(shè)計(jì)
一般來說,可以通過對(duì)系統(tǒng)質(zhì)量、可維護(hù)性、可靠性、可用性及安全性等指標(biāo)做出評(píng)測,來衡量系統(tǒng)在環(huán)境中的性能。功能安全是系統(tǒng)相對(duì)于可能出現(xiàn)的操作錯(cuò)誤、硬件故障及環(huán)境變化的整體安全性。這取決于系統(tǒng)或設(shè)備能否響應(yīng)輸入正確地運(yùn)行,包括安全地管理操作錯(cuò)誤、硬件故障和環(huán)境變化。功能安全的目標(biāo)是避免不可接受的身體傷害,或?qū)】抵苯踊蜷g接造成的損害風(fēng)險(xiǎn)。
為了確保安全功能能夠符合設(shè)計(jì)初衷,包括在操作員輸入不正確和故障模式等情況下,人們一直不斷改進(jìn)各種標(biāo)準(zhǔn)。IEC61508是適用于各個(gè)行業(yè)的國際功能安全標(biāo)準(zhǔn)之一,名稱是“電氣/電子/可編程電子安全相關(guān)系統(tǒng)的功能安全(E/E/PE或E/E/PES)”。ISO 26262是從IEC 61508衍生而來的功能安全標(biāo)準(zhǔn),名稱為“道路車輛-功能安全”,適用于汽車行業(yè)。ISO 26262定義了汽車設(shè)備的功能安全,適用于所有汽車電子電氣安全相關(guān)系統(tǒng)的整個(gè)生命周期。
SoC系統(tǒng)級(jí)芯片遵循多種設(shè)計(jì)技術(shù),以符合安全標(biāo)準(zhǔn),這些在ISO-26262標(biāo)準(zhǔn)中都有所介紹。冗余、自檢機(jī)制、信號(hào)監(jiān)測、電壓電源監(jiān)測和“看門狗”是在符合安全標(biāo)準(zhǔn)的設(shè)備中所使用的幾種技術(shù)。冗余是這些設(shè)備的主要組成部分。冗余在汽車設(shè)備中的使用有多種方式,許多符合安全標(biāo)準(zhǔn)的設(shè)備將鎖步、ECC、CRC及校驗(yàn)等用作冗余技術(shù)。本文將主要介紹SoC中使用到的冗余技術(shù),包括硬件、軟件、信息和時(shí)間冗余等。
汽車硬件冗余機(jī)制
冗余是指除了在關(guān)鍵功能中使用的組件外,還包含額外的組件,旨在提高系統(tǒng)的可靠性和可用性。冗余的添加方式有很多,如硬件(例如雙核鎖步)冗余、軟件冗余、信息冗余(例如將ECC添加到存儲(chǔ)器)和時(shí)間冗余。一般情況下,冗余依據(jù)MooN概念工作。
N分之M(M-out-of-N,MooN)系統(tǒng)包含N個(gè)相同的組件,工作原理是:如果N個(gè)組件中的至少M(fèi)個(gè)組件正常工作,那么該系統(tǒng)沒有錯(cuò)誤。一個(gè)示例是三重模塊化冗余(TMR),這實(shí)際上是一個(gè)三分之二(2oo3)系統(tǒng)。如果3個(gè)組件中至少有兩個(gè)組件(大部分)正常運(yùn)行,那么該系統(tǒng)則被視為正常運(yùn)行。
MooN系統(tǒng)在硬件和軟件中使用。在硬件中,關(guān)鍵組件被復(fù)制,根據(jù)多數(shù)投票原則做出決策。而在軟件中,一個(gè)任務(wù)被重復(fù)多次,然后比較任務(wù)執(zhí)行結(jié)果,生成最后結(jié)果。在SoC中,硬件冗余可以采用多種形式:復(fù)制執(zhí)行安全關(guān)鍵任務(wù)的內(nèi)核(也稱為鎖步)、延遲鎖步(1oo1系統(tǒng))、非對(duì)稱鎖步、三次投票(2oo3系統(tǒng))。
在符合安全標(biāo)準(zhǔn)的高級(jí)設(shè)備中,執(zhí)行安全關(guān)鍵任務(wù)的內(nèi)核被復(fù)制,應(yīng)用在鎖步模式下運(yùn)行這兩個(gè)內(nèi)核,比較結(jié)果,確保冗余處理產(chǎn)生完全相同的結(jié)果。如未獲得完全相同的結(jié)果,則視為發(fā)生了故障。
在鎖步模式下,同時(shí)將同一組輸入發(fā)送到這兩個(gè)內(nèi)核,然后這兩個(gè)內(nèi)核在相同的時(shí)鐘周期內(nèi)執(zhí)行相同的計(jì)算,定期比較結(jié)果,檢測是否發(fā)生了故障(無論是瞬時(shí)故障、間歇性還是永久性故障)。一旦輸出不匹配,通常會(huì)標(biāo)記故障并執(zhí)行重啟。圖1顯示了鎖步中的內(nèi)核(雙核鎖步)。
圖1:鎖步中的內(nèi)核(雙核鎖步)工作原理
延遲鎖步是鎖步的一種,其中一個(gè)內(nèi)核的輸入延遲了N個(gè)時(shí)鐘周期,另一個(gè)內(nèi)核的輸出也延遲了相同的時(shí)間,然后比較結(jié)果。用這種方法,可獲得時(shí)間分集。由于一個(gè)內(nèi)核在N個(gè)時(shí)鐘周期后將執(zhí)行相同的運(yùn)算,沖擊這兩個(gè)內(nèi)核并以相同的方式影響其功能的噪聲脈沖的概率將大大減少。圖2顯示了延遲鎖步的工作配置。饋送給內(nèi)核2的數(shù)據(jù)被延遲了兩個(gè)時(shí)鐘周期。內(nèi)核2的重置也延遲了兩個(gè)周期。內(nèi)核1的輸出延遲了兩個(gè)時(shí)鐘周期,然后由校驗(yàn)器電路進(jìn)行比較。如發(fā)現(xiàn)故障,則標(biāo)記錯(cuò)誤。
圖2:延遲鎖步的工作配置
在非對(duì)稱冗余中,不復(fù)制相同的內(nèi)核,而是使用不同的內(nèi)核。不同的專用內(nèi)核通過一個(gè)接口與主內(nèi)核緊密耦合,實(shí)現(xiàn)內(nèi)部和外部結(jié)果的逐步比較。該接口降低了復(fù)雜性,縮短了錯(cuò)誤檢測延遲。主核執(zhí)行關(guān)鍵的任務(wù),而專用的多樣化內(nèi)核則復(fù)制足夠多的主核執(zhí)行,確保能夠檢測故障,或確保主核的安全運(yùn)行。由于硬件的多樣性,可以有效覆蓋共因故障和系統(tǒng)故障。內(nèi)核的不同結(jié)構(gòu)將導(dǎo)致不同的內(nèi)核反應(yīng)方法,改善共因故障的診斷覆蓋。因此這兩個(gè)內(nèi)核發(fā)生的同類故障的情況將減少。并行通道無需單獨(dú)的代碼,專用內(nèi)核比主核小。有時(shí),主核的面積差異可高達(dá)50%及以上。這種方法的缺點(diǎn)是,可能需要詳細(xì)的分析來證明診斷覆蓋。
此類冗余在位級(jí)實(shí)施,安全關(guān)鍵任務(wù)中所使用的寄存器位被復(fù)制兩次,根據(jù)多數(shù)投票邏輯生成輸出。這是2oo3多數(shù)投票系統(tǒng)的一個(gè)示例,如果這三個(gè)觸發(fā)器中的任何一個(gè)發(fā)生故障,那么其余的兩個(gè)觸發(fā)器將掩蓋故障。假設(shè)很難同時(shí)損壞這三個(gè)觸發(fā)器中的兩個(gè),那么這種技術(shù)可保持系統(tǒng)運(yùn)行。由于在這種情況下,面積補(bǔ)償是雙倍的,因此需要徹底檢驗(yàn)設(shè)計(jì)配置位,確定安全關(guān)鍵的配置信息,避免任何不必要的面積開銷。
軟件多樣化冗余
在軟件冗余中,將在軟件中執(zhí)行該任務(wù)多次??墒褂貌煌能浖?zhí)行該任務(wù)多次(不同的算法用于同一個(gè)任務(wù)),然后比較結(jié)果, 這將改善診斷覆蓋。
設(shè)計(jì)中使用兩種完全不同的軟件實(shí)現(xiàn),即在一個(gè)處理單元中使用不同的算法來執(zhí)行相同的任務(wù)。圖3說明了實(shí)現(xiàn)情況。主用通道負(fù)責(zé)計(jì)算,如果計(jì)算錯(cuò)誤,可能導(dǎo)致危險(xiǎn)。冗余通道負(fù)責(zé)檢驗(yàn)主用通道的計(jì)算,如果發(fā)現(xiàn)故障則采取行動(dòng)。冗余通道采用單獨(dú)的算法設(shè)計(jì)和代碼實(shí)現(xiàn),以提供軟件多樣化。一旦兩條通道都完成后,則比較這兩種冗余軟件實(shí)現(xiàn)的輸出數(shù)據(jù)。如發(fā)現(xiàn)差異,則生成故障消息。
圖3:單一硬件通道軟件冗余工作原理[!--empirenews.page--]
算法多樣化示例包括:A+B=C與C-B=A。一個(gè)通道使用正常的計(jì)算,另一個(gè)通道使用二進(jìn)制補(bǔ)碼數(shù)學(xué)。
兩個(gè)處理單元相互交換數(shù)據(jù)(包括結(jié)果、中間結(jié)果和測試數(shù)據(jù)),在每個(gè)單元中使用軟件比較數(shù)據(jù),如檢測到差異則生成故障消息。圖4說明了實(shí)現(xiàn)情況。在這種情況下,主用通道和冗余通道在不同的處理單元中使用不同的軟件算法來執(zhí)行。如果使用不同的處理器類型以及單獨(dú)的算法設(shè)計(jì)、代碼和編譯器,那么這種方法允許硬件和軟件多樣性。另外,外設(shè)復(fù)制與內(nèi)核復(fù)制不同。外設(shè)共享外部世界的相同輸入,外設(shè)的輸出在軟件中進(jìn)行比較。例如,在SoC中使用多個(gè)ADC,輸入信道被復(fù)制到大多數(shù)ADC,它們的輸出可在軟件中進(jìn)行比較。
圖4:多處理單元軟件冗余工作原理
信息冗余和時(shí)間冗余
信息冗余是指在通過嘈雜的信道傳輸信息時(shí)添加到實(shí)際數(shù)據(jù)中的冗余數(shù)據(jù),目的是檢測故障或修復(fù)故障。 下面介紹了幾種信息冗余方案,如:奇偶校驗(yàn)位、校驗(yàn)和、糾錯(cuò)碼。
奇偶校驗(yàn)位是指被添加到二進(jìn)制數(shù)據(jù)結(jié)尾的位,指示數(shù)據(jù)中“1”的數(shù)量是奇數(shù)還是偶數(shù)。偶校驗(yàn)方案是指如果數(shù)據(jù)中“1”的數(shù)量為奇數(shù),則向數(shù)據(jù)添加一個(gè)“1”。奇校驗(yàn)方案是指,如果數(shù)據(jù)中“1”的數(shù)量為偶數(shù),則向數(shù)據(jù)添加一個(gè)“1”。例如,如果實(shí)際數(shù)據(jù)為“11110000 0000”,并且在其后添加了一個(gè)偶校驗(yàn)位,那么“111100000 0000 0”將通過通信信道傳輸。在接收器端,如果收到單個(gè)的位觸發(fā)數(shù)據(jù),那么接收器將檢測到數(shù)據(jù)在傳輸過程中被破壞,可請求發(fā)射器重新發(fā)送數(shù)據(jù)。
校驗(yàn)和是使用某些函數(shù)通過信息數(shù)據(jù)計(jì)算的數(shù)據(jù)。它與信息數(shù)據(jù)一起通過噪聲信道傳輸。在接收器端,使用收到的數(shù)據(jù)計(jì)算校驗(yàn)和。計(jì)算的校驗(yàn)和應(yīng)匹配所收到的校驗(yàn)和。錯(cuò)誤檢測功能取決于冗余比特?cái)?shù)量、數(shù)據(jù)大小,以及生成校驗(yàn)和所用的多項(xiàng)式。奇偶性、模塊化和和與位置相關(guān)的校驗(yàn)和是幾種可用于錯(cuò)誤檢測的校驗(yàn)和示例。在檢測到錯(cuò)誤的情況下,可通過信號(hào)通知發(fā)射器,重新傳輸數(shù)據(jù)。
某些校驗(yàn)函數(shù)不僅能夠檢測錯(cuò)誤,還能指出數(shù)據(jù)中可能引入的某些類型的錯(cuò)誤,從而在不重新發(fā)送數(shù)據(jù)的情況下讓接收器能夠獲得正確的數(shù)據(jù),這些函數(shù)被稱為糾錯(cuò)碼。能夠被校正的錯(cuò)誤也有限制。例如,漢明碼是糾錯(cuò)碼。盡管漢明碼能夠檢測到雙位錯(cuò)誤,但只能校正數(shù)據(jù)中的單位錯(cuò)誤。格雷碼能夠檢測四位錯(cuò)誤,但只能校正三位錯(cuò)誤。BCH 碼、Goppa碼、Reed-Solomon 碼、Reed-Muller碼和Hadamard碼是以其發(fā)明人命名的其他代碼。此類編碼技術(shù)可作為信息和編碼理論的一部分進(jìn)行研究,是應(yīng)用數(shù)學(xué)、電子工程和計(jì)算機(jī)科學(xué)的一個(gè)有趣和廣泛的分支。
時(shí)間冗余是指以冗余的方式執(zhí)行安全關(guān)鍵的任務(wù),隨時(shí)間而變化。由于這些冗余任務(wù)隨時(shí)間而變化,因此有助于消除瞬時(shí)故障。其中,單個(gè)硬件信道上的時(shí)間冗余是使用同一款軟件在一個(gè)硬件上執(zhí)行多次安全關(guān)鍵的任務(wù),然后再比較多次運(yùn)算的結(jié)果。如果發(fā)現(xiàn)差異,則執(zhí)行相關(guān)的糾正操作。上述“軟件冗余”部分中描述的“軟件多樣化冗余”(一個(gè)硬件通道)是此類冗余的擴(kuò)展版本。
并行硬件信道上的時(shí)間冗余是在并行信道上執(zhí)行、但不同時(shí)執(zhí)行所有安全關(guān)鍵的任務(wù),它有助于隨著時(shí)間的推移創(chuàng)建冗余。 瞬時(shí)故障不會(huì)以相同的方式影響操作,即使并行信道是對(duì)稱的硬件。上述“硬件冗余”部分中描述的“延遲鎖步”是此類時(shí)間冗余的一個(gè)示例。
結(jié)語
汽車行業(yè)使用到多種設(shè)計(jì)技術(shù),以實(shí)現(xiàn)安全性,各種冗余技術(shù)是實(shí)現(xiàn)安全性所必不可少的,目的是確保設(shè)備在發(fā)生故障時(shí)更加可靠和穩(wěn)定。硬件冗余的優(yōu)勢是能夠盡早檢測到故障,但代價(jià)是需要增加硬件數(shù)量。另一方面,如果系統(tǒng)成本有限,那么軟件冗余可能用處更大??傊哂嗍菍?shí)現(xiàn)提高汽車安全性能的關(guān)鍵所在,可以利用硬件和軟件冗余,以及信息冗余、時(shí)間冗余等,使得系統(tǒng)更加穩(wěn)定而可靠。