許多系統(tǒng)設(shè)計,包括工業(yè)機械、醫(yī)療設(shè)備和汽車,都對安全至關(guān)重要,需要能夠?qū)崟r檢測自身的操作故障,并以一種避免傷害使用它們的人的方式做出反應(yīng)。因此,創(chuàng)建一個基于處理器的系統(tǒng)來提供這種功能安全需要結(jié)合使用硬件錯誤檢查、硬件自檢和系統(tǒng)冗余來提供這些系統(tǒng)所需的獨立于軟件的故障檢測和安全解決方案。幸運的是,有可用的處理器可以處理安全關(guān)鍵系統(tǒng)所需的大部分硬件繁重工作。
基于處理器的系統(tǒng)對功能安全的需求正在上升,尤其是在汽車應(yīng)用中。即使拋開自動駕駛汽車的整個發(fā)展趨勢,汽車也越來越依賴微處理器來實現(xiàn)關(guān)鍵功能。防抱死制動系統(tǒng)、發(fā)動機控制和轉(zhuǎn)向只是現(xiàn)在在處理器控制下具有重大安全意義的少數(shù)車輛功能。如果這些處理器中的任何一個犯了一個錯誤而沒有被抓住,結(jié)果可能是致命的。
不幸的是,在基于處理器的設(shè)計中出現(xiàn)問題的機會很多。如下圖所示,正確的代碼執(zhí)行需要許多系統(tǒng)元素才能正常工作。處理器及其所有內(nèi)部寄存器、程序和高速緩存存儲器、RAM 和它們之間的總線接口,以及系統(tǒng)電源和時鐘,都必須以精確的時序完美運行。但正如任何無緣無故鎖定計算機的人都知道的那樣,系統(tǒng)中任何地方的任何一點變化都可能使整個操作脫軌。總線上任何線路上的噪聲故障、雜散的阿爾法粒子或宇宙射線撞擊(是的,它們確實發(fā)生,而且比人們想象的更頻繁)改變內(nèi)存或寄存器中的位、低電壓、時鐘漂移和許多其他來源可能會導(dǎo)致系統(tǒng)崩潰。
基于處理器的系統(tǒng)的核心為噪聲毛刺和其他單一事件擾亂提供了許多機會,以完全破壞正確的軟件執(zhí)行。
通過精心設(shè)計,此類錯誤不太可能發(fā)生,但無法消除。因此,要使系統(tǒng)被認(rèn)為是安全的,它必須能夠?qū)崟r檢測到此類錯誤并做出適當(dāng)?shù)捻憫?yīng)以減輕其影響。構(gòu)成適當(dāng)緩解的因素高度依賴于應(yīng)用程序,但檢測錯誤的方法已經(jīng)成熟,并且在安全關(guān)鍵設(shè)計中很常見。例如,可以通過在每個事務(wù)中包含糾錯編碼 (ECC) 或循環(huán)冗余校驗(CRC) 數(shù)據(jù)來監(jiān)控系統(tǒng)總線上的事務(wù)。電壓監(jiān)視器可以監(jiān)視電源,看門狗定時器可以幫助監(jiān)視時鐘信號。
看門狗定時器還可以通過讓處理器定期重置定時器來提供正確的處理器操作的總體指示。如果處理器在該任務(wù)中出現(xiàn)故障,則一旦計時器用完,看門狗就會發(fā)送信號以提醒系統(tǒng)出現(xiàn)故障。然而,這涉及在頻繁的定時器復(fù)位的軟件開銷和信號處理器故障的延遲之間進(jìn)行權(quán)衡。
然而,檢測故障只是功能安全的一部分。另一部分是以保持系統(tǒng)安全運行的方式對故障做出響應(yīng)。此響應(yīng)不能完全基于軟件。您不能指望能夠使用無法緩解自身問題甚至無法對警報做出反應(yīng)的處理器。必須有一個獨立的硬件機制。
多年來,各種體系結(jié)構(gòu)已經(jīng)發(fā)展,以在基于處理器的系統(tǒng)中提供這種獨立的機制。這些架構(gòu)包括使用帶有硬件檢查器的單個處理器,以及使用具有相同或不同類型的第二個處理器作為主單元的兩個處理器。第二個處理器可以獨立運行,運行相同或獨立的軟件,作為逐周期驗證主處理器行為的試金石。不過,更流行的替代方案是讓第二個處理器與主單元同步運行,使用相同的代碼和數(shù)據(jù)。但是,輔助處理器通常會在主處理器稍有延遲的情況下工作,以避免兩個處理器都受到系統(tǒng)總線上的瞬態(tài)錯誤的影響。
已經(jīng)開發(fā)了多種支持檢測和緩解隨機處理錯誤的架構(gòu)。
這些架構(gòu)的共同點是需要對基本處理器設(shè)計進(jìn)行大量添加,包括比較硬件和可能的完整輔助處理器。多核處理器的出現(xiàn)為芯片供應(yīng)商提供了一個機會,可以從系統(tǒng)開發(fā)人員那里卸下大部分硬件設(shè)計負(fù)擔(dān),許多人已經(jīng)通過推出專為安全關(guān)鍵型應(yīng)用設(shè)計的處理器來加緊努力。其中許多安全處理器主要面向根據(jù)ISO 26262標(biāo)準(zhǔn)進(jìn)行 ASIL(汽車安全完整性等級)認(rèn)證的汽車設(shè)計人員銷售,但同樣適用于工業(yè)控制、醫(yī)療、軍事和航空航天領(lǐng)域的其他安全關(guān)鍵應(yīng)用。
這些提供商不僅僅是提供硬件功能。他們還為設(shè)計人員提供實施安全設(shè)計、可追溯性和驗證文檔以及支持獲得安全認(rèn)證的開發(fā)工具和診斷軟件庫方面的幫助。
以下是目前市場上一些具有代表性的安全處理器系列:
ARMCortex R52:作為 ARM v8-R 架構(gòu)的一部分,R52 內(nèi)核為 ARM 被許可方提供了實現(xiàn)安全處理器所需的基礎(chǔ)功能。雙核器件可以在鎖步模式下運行以進(jìn)行故障檢測,并可選擇額外的分離配置,允許兩個內(nèi)核在需要時獨立運行。核心設(shè)計還包括所有總線和內(nèi)存接口上的 ECC,能夠進(jìn)行雙位錯誤檢測和單位錯誤糾正。此外,該內(nèi)核還提供高覆蓋率的內(nèi)置自測試 (BIST) 功能和可許可的安全包,以簡化產(chǎn)品安全實施。
InfineonAurix:Aurix 系列器件包含多達(dá)三個獨立的內(nèi)核,提供雙鎖步處理器,實現(xiàn)了額外的架構(gòu)多樣性。這兩個內(nèi)核運行相同的代碼,但具有旨在減少出現(xiàn)常見原因錯誤的機會的硬件設(shè)計差異。設(shè)計差異有助于確保在主處理器上產(chǎn)生錯誤的事件不會在比較處理器上導(dǎo)致相同的錯誤。
英飛凌的 Aurix 鎖步處理器設(shè)計使用延遲執(zhí)行通用指令和數(shù)據(jù)流來避免未檢測到單事件擾動。
英特爾至強 D-1529:英特爾的 D-1529 不是針對汽車應(yīng)用,而是旨在滿足IEC 61508安全集成級別 (SIL) 認(rèn)證標(biāo)準(zhǔn)下的工業(yè)需求。該設(shè)計包括冗余鎖步處理器對、窗口看門狗定時器、時鐘和電源監(jiān)視器以及處理器溫度監(jiān)控。這些處理器可以支持混合的安全關(guān)鍵和非關(guān)鍵任務(wù)執(zhí)行,并在其 PCI 和 SATA 接口上提供診斷和錯誤檢測邏輯。
MIPSi6500-F 內(nèi)核:這種內(nèi)核設(shè)計允許 MIPS 被許可人基于 64 位 CPU 的可配置集群創(chuàng)建安全處理器。它包括所有總線上的奇偶校驗、RAM 上的 ECC 和邏輯 BIST 支持。它已被認(rèn)證為 ASIL B 級的脫離環(huán)境 (SEooC) 安全元件,支持旨在獲得 ASIL D 級認(rèn)證的設(shè)計。
NXPS32S24:針對 ASIL-D 設(shè)計,S32S247 使用四個帶有硬件管理程序的 ARM R-52 鎖步內(nèi)核來保持應(yīng)用程序執(zhí)行獨立。大型(至 64 MB)集成閃存允許處理器保存多組應(yīng)用程序代碼以支持無線軟件更新,并且所有存儲器接口都包括 ECC。
STMicroSPC5:SPC5 產(chǎn)品線包括多種變體,包括鎖步、延遲鎖步和解耦并行處理選項。處理器包括帶有 SPC57S 系列的 BIST 硬件,另外還提供內(nèi)存上的 ECC。
Texas InstrumentsHercules:Hercules 系列安全處理器已通過使用鎖步 Cortex-R 處理器的 IEC-61508 SIL 3 級和 ISO-26262 ASIL D 級認(rèn)證。此外,它們還提供系統(tǒng)存儲器上的 ECC、選定外設(shè)和 DMA 接口上的 ECC 或奇偶校驗、串行和網(wǎng)絡(luò)通信外設(shè)上的 CRC 或奇偶校驗、片上時鐘和電壓監(jiān)控、IO 環(huán)回和 ADC 自檢以及存儲器 BIST。錯誤信號模塊提供了一個外部信號引腳,以促進(jìn)對處理器內(nèi)檢測到的錯誤作出額外的系統(tǒng)響應(yīng)。
XilinxZynq 7000:雖然它實際上不是處理器,但 Zynq FPGA 可以配置為在單個設(shè)備中提供兩個獨立的安全通道,使用經(jīng)過認(rèn)證可用于功能安全應(yīng)用的設(shè)計包、方法和工具。這些工具包括對隔離設(shè)計流程的支持,這些流程在物理上分離冗余元件以防止使用 FPGA 資源,以及軟錯誤緩解 IP 的可用性。
然而,選擇安全處理器僅僅是開始。安全關(guān)鍵系統(tǒng)的開發(fā)人員仍需要對硬件和軟件采用設(shè)計和評估方法,嚴(yán)格評估發(fā)生錯誤的可能性,并驗證系統(tǒng)設(shè)計對此類錯誤的恢復(fù)能力。不過,以安全為目標(biāo)的處理器及其供應(yīng)商提供的支持在很大程度上減輕了開發(fā)人員的負(fù)擔(dān)。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19165瀏覽量
229131 -
芯片
+關(guān)注
關(guān)注
453文章
50406瀏覽量
421843 -
cpu
+關(guān)注
關(guān)注
68文章
10825瀏覽量
211151
發(fā)布評論請先 登錄
相關(guān)推薦
評論