NVIDIA DRIVE AGX 是一個可擴展的開放式自動駕駛汽車計算平臺,充當(dāng)自動駕駛汽車的 大腦。作為同類產(chǎn)品中硬件平臺的佼佼者,NVIDIA DRIVE AGX 為功能安全的人工智能自動駕 駛提供高性能、高能效的計算。硬件方面,NVIDIA DRIVE 嵌入式超級計算平臺處理來自攝像頭、普通雷達和激光雷達傳 感器的數(shù)據(jù),以感知周圍環(huán)境、在地圖上確定汽車的位置,然后規(guī)劃并執(zhí)行安全的行車路線。軟件方面,NVIDIA DRIVE AGX 具備可擴展和軟件定義特性,平臺能夠提供先進的性能, 助力自動駕駛汽車處理大量傳感器數(shù)據(jù),并做出實時駕駛決策。
開放式 NVIDIA DRIVE 軟件 棧還可幫助開發(fā)者使用冗余和多樣化的深度神經(jīng)網(wǎng)絡(luò) (DNN),構(gòu)建感知、建圖、規(guī)劃和駕駛 員監(jiān)控功能。通過持續(xù)迭代和無線更新,該平臺變得日益強大。同時,開放式 NVIDIA DRIVE SDK 為開發(fā)者提供了自動駕駛所需的所有構(gòu)建塊和算法堆棧。該軟件有助于開發(fā)者更高效地 構(gòu)建和部署各種先進的自動駕駛應(yīng)用程序,包括感知、定位和地圖繪制、計劃和控制、駕駛 員監(jiān)控和自然語言處理。本文將分幾個章節(jié)以當(dāng)前應(yīng)用最為廣泛的主流英偉達芯片 Orin x 為例,分別從硬件和軟 件兩個方向來說明如何進行從軟到硬件級別的開發(fā)和應(yīng)用。
英偉達內(nèi)部架構(gòu)設(shè)計
以 Orin-x 為例,其中的 CPU 包括基于 Arm Cortex-A78AE 的主CPU 復(fù)合體,它提供通用高速計算能力;以及基于 Arm Cortex-R52 的功能安全島(FSI),它提供了隔離的片上計算資源, 減少了對外部 ASIL D 功能安全 CPU 處理的需求。
GPU 則是 NVIDIAAmpere GPU,為 CUDA 語言提供高級并行處理計算能力,并支持多種工具, 如 TensorRT,一種深度學(xué)習(xí)推理優(yōu)化器和運行時,可提供低延遲和高吞吐量。Ampere 還提供最先進的圖形功能,包括實時光線跟蹤。域特定硬件加速器(DSA)是一組專用硬件引擎,旨在從計算引擎中卸載各種計算任務(wù),并以高吞吐量和高能效執(zhí)行這些任務(wù)。
下圖顯示了 SoC 的高級架構(gòu),分為三個主要處理復(fù)合體:CPU、GPU 和硬件加速器。
整個芯片內(nèi)部架構(gòu)設(shè)計主要是按分塊進行功能設(shè)計區(qū)分。包括操作系統(tǒng)底層軟件QNX BSP(時鐘Clock源&系統(tǒng)重啟、CAN/SPI/I2C/GPIO/UART控制器、配置寄存器、系統(tǒng)配置)、實時運行系統(tǒng)QNX RTOS、Nv多媒體處理模塊(傳感器處理模塊MCU(R5)、PVA、DLA、Audio Processor、MCU R5配置實時相機輸入)、經(jīng)典Autosar處理模塊(用于Safety Island Lock-Step R52s)、安全服務(wù)Safety Service(ARM Cotex-A78AE CPU Complex、CPU Switch fabric Coherent、信息安全PSC)、神經(jīng)網(wǎng)絡(luò)處理模塊(CUDA & TensorRT)。
基于英偉達芯片的自動駕駛典型架構(gòu)設(shè)計
常規(guī)的 SOC 系統(tǒng)架構(gòu)通常是包含有常規(guī)的 SOC+MCU 雙芯片甚至三芯片的方式進行設(shè)計的。SOC 由于計算性能上的優(yōu)勢,一般在前端感知、規(guī)劃中的計算應(yīng)用場景比 MCU 更好。
MCU 由于具備較高的功能安全等級,可以作為控制執(zhí)行的校驗輸出。業(yè)界對于英偉達芯片是否可以單純作為類似 TDA4 一樣的超異構(gòu)芯片而獨立承擔(dān)任務(wù), 一直都是褒貶不一的。原則上,從無論 Xavier 還是 Orin 系列,英偉達系列芯片設(shè)計都兼具 豐富的 AI 和 CPU 算力能力。考慮 L2+級別以上的自動駕駛系統(tǒng)開發(fā)而言,這種能力都是可 以完全適配整個方案設(shè)計的。
那么,行業(yè)內(nèi)是否這樣主推相應(yīng)的設(shè)計方案了呢?答案是沒有。
在英偉達 Datasheet 中關(guān)于最新安全需求中,針對 Orin 系列芯片的架構(gòu)設(shè)計推薦方案中, 仍然需要使用特定的 MCU 用于失效分析和風(fēng)險評估,這樣就可以及時的定位到系統(tǒng)的嚴(yán)重 故障,從而確保滿足由 ISO26262 標(biāo)準(zhǔn)所定義自動駕駛安全完整性能力要求(這塊后續(xù)會單 獨講解)。同時,考慮到整個域控的電源管理,接入外置 MCU 也可以很好的提升其電源管 理能力,包括對進入睡眠模式的進入退出等等。
如上所設(shè)置的 MCU 在一定程度上也可以被稱之為 Safe MCU(SMCU),開發(fā)系統(tǒng)過程 中需要使用一些安全等級較高的 MCU(一般需要達到 ASIL D 等級),如英飛凌 Aurix TC 系 列,瑞薩的 RH850 系列都可以充當(dāng) MCU 實現(xiàn)對 Orin 的 SMCU 接入。這樣的 SMCU 實際是可 以充當(dāng)整個系統(tǒng)開發(fā)的電源控制和嚴(yán)重失效故障規(guī)避的。
如上圖所示表示了基于英偉達芯片設(shè)計系統(tǒng)架構(gòu)的三層失效安全框架。整體上講,該架 構(gòu)從 SOC 層的基礎(chǔ)服務(wù)、操作系統(tǒng)、虛擬機、實施運行環(huán)境再到 MCU 的實時運行環(huán)境幾個 方面分別實現(xiàn)三層級失效安全保護。SOC 層和 MCU 層分別在 NvIVC、NvIPC、SPI/Error Pin 層 級上進行健康和獨立的看門狗監(jiān)控。其中,SOC 內(nèi)部本身會承載一部分鎖步安全校驗 Lockstep FSI , 并 在 核 心 CPU 復(fù) 合 體 CCPLEX ( Carmel CPU complex running the capture stack and applications.表示運行捕獲堆棧和應(yīng)用程序的 Carmel CPU 復(fù)合體)上運行虛擬機 Hypervisor,CPU 核上采用具備高功能安全等級的 QNX 操作系統(tǒng),完成應(yīng)用軟件看門狗、中間件、應(yīng)用 層軟件以及驅(qū)動軟件的資源調(diào)度。當(dāng)然,對于實時運行系統(tǒng)而言,還是運行在標(biāo)準(zhǔn)的 Autosar 上。
如下圖所示的安全架構(gòu)表示了外置 MCU 如何支持在 SOC 上的啟動數(shù)據(jù)流,并通過一個 標(biāo)準(zhǔn)錯誤報告/傳播數(shù)據(jù)流來進行有效的安全啟動。其中,整個程序與數(shù)據(jù)引導(dǎo)加載過程包 括三個層面:Boot L1 級 CCPLEX、Boot L2 級 FSI、Boot L3 級 External MCU。
在 L1 級程序啟動過程中,底層啟動包括利用“引導(dǎo)和電源管理處理器(BPMP)”終端 (一個較小的 ARM 內(nèi)核位于系統(tǒng)的核心位置)加載底層啟動程序到 BPMP 服務(wù)器,由虛擬機Hypervisor 或操作系統(tǒng) Safety OS 對相應(yīng)的啟動程序文件進行調(diào)用。總體上,BPMP 的 Cortex-R5 可以實現(xiàn):
1、鎖步核配對
2、Arm 7-R ISA
3、向量中斷支持:基于菊花鏈 Arm PL192 矢量中斷控制器(AVIC)
5、完備指令和數(shù)據(jù)緩存(其中涉及 32KB 指令緩存 I-Cache 和 32KB 數(shù)據(jù)緩存 D-Cache)
6、Arm 處理器修正
同時,底層 iGPU 核也會由 RM 集成式服務(wù)器驅(qū)動起來。最終在第一層加載啟動程序 L1 CCPLEX(在 NVIDIA 中稱為 CPU Complex 即高性能 64 位 Arm 內(nèi)核)中完成操作系統(tǒng)任務(wù) 調(diào)度、引導(dǎo)管理程序加載、RM 服務(wù)器驅(qū)動 GPU 核等各項專業(yè)任務(wù)。
此外,L2 級主要還涉及前序文章中提到的功能安全島校驗 FSI。文章后續(xù)會單獨進行說 明。
最后,外掛的 SMCU 可以另外在做一層安全保護和啟動管理配置。這樣就可以從安全的 角度完整的驅(qū)動整個芯片工作。
功能安全島設(shè)計原理
如圖2顯示了如何在英偉達系列芯片中加載 FSI 及底層相關(guān)模塊驅(qū)動引導(dǎo)程序。英偉達系列芯片在功能安全設(shè)計上,Orin 系列通過制定目標(biāo)實現(xiàn) ASIL D 系統(tǒng)能力設(shè)計和ASIL B/D 隨機錯誤管理能力設(shè)計。包括基于 SOC 芯片硬件的 ASIL 分解需求到各個核,確保核間設(shè)計一致性可以滿足 ASIL D 需求,并應(yīng)用標(biāo)準(zhǔn)的 ASIL D 開發(fā)流程到整個功能安全設(shè)計中,從底之上分別對安全流程、Drive AGX、操作系統(tǒng) Drive OS、Drive Work、傳感器、冗 余架構(gòu)設(shè)計、安全策略幾個方面分別進行相應(yīng)的安全設(shè)計。
英偉達系列芯片的功能安全島(FSI)是一個包含 Cortex-R52 和 Cortex-R5F real 的處理器集群,并具有專用 I/O 控制器的時間處理器的核心。例如,Orin-X 中的 FSI 模塊具有自己的電壓軌、振蕩器和PLL、SRAM,以確保與 SOC 內(nèi)部的其他模塊相互作用最小,并實現(xiàn)如上模塊相互之間無干擾。
Orin-x 系列 FSI 功能包括:
Cortex-R52 處理器,也稱為安全 CPU,具有 DCLS(雙核鎖步)模式下的 4 個內(nèi)核(共 8 個物理內(nèi)核),可運行經(jīng)典 AUTOSAR 操作系統(tǒng),實現(xiàn)錯誤處理、系統(tǒng)故障處理和其他客戶工作負(fù)載,綜合性能約為 10KDMIPs。
Cortex-R5F 處理器,也稱為加密硬件安全模塊(CHSM),用于通過 CAN 接口運行加密 和安全用例,如安全車載通信(SecOC)。
整個FSI機制上總體包含有如下的一些安全指令和控制接口信息:
1、安全和 CHSM CPU 每個核心的緊密耦合內(nèi)存、指令和數(shù)據(jù)緩存。
2、安全島上總共有 5MB 的片上專用 RAM,以確保代碼執(zhí)行和數(shù)據(jù)存儲可以保持在 FSI 內(nèi)。
3、島上有專門用于與外部組件通信的專用 I/O 接口。包含1個 UART,4 個 GPIO 口。
4、硬件安全機制,如 FSI 內(nèi)所有 IP 的 DLS、CRC、ECC、奇偶校驗、超時等。
專用熱、電壓和頻率監(jiān)測器。
5、邏輯隔離,確保與 SoC 的其他部分有足夠的錯誤恢復(fù)時間FFI。
FSI的實例解析1:
這里本文將通過一個例子說明設(shè)計 FSI 為目的描述相應(yīng)的錯誤處理機制,其中包括對如下過程的處理模式:
1、在基于 Xavier 的平臺上調(diào)試 CSI 捕獲錯誤的各種方法。
2、如何確定使用哪種方法進行調(diào)試。
3、如何識別錯誤。
4、錯誤的可能根本原因。
相機捕獲過程中可能發(fā)生錯誤的圖層如下:
每當(dāng)解碼在 SoC CSI 接口接收到的 CSI 數(shù)據(jù)包并將原始幀數(shù)據(jù)寫入內(nèi)存遇到錯誤時,VI 硬件引擎就會將這些錯誤通知給RCE。在 CCPLEX 上運行的捕獲堆棧可以從 RCE 查詢捕獲狀態(tài)并顯示:CSI 數(shù)據(jù)流的 ID、發(fā)生錯誤的 VC ID、錯誤類型、每個錯誤類型的詳細(xì)錯誤。錯誤狀態(tài)為確定根本原因和確定后續(xù)步驟提供了一個很好的起點。如果 VI 引擎沒有成功捕獲幀,也沒有遇到錯誤并向 RCE 報告錯誤,則會顯示幀啟動或結(jié)束超時錯誤消息提示。 這可能是由于以下兩個原因之一:
1、解串器不是流數(shù)據(jù)。
2、VI 通道未配置為捕獲正確的數(shù)據(jù)類型/VC id。
英偉達系列芯片如何考慮信息安全
對于英偉達芯片來說,有效的保證信息安全主要是通過兩個層面:其一是信息安全芯片內(nèi)核模塊Tegra。盡管這一芯片曾經(jīng)在2018年也出現(xiàn)過安全漏洞。有極端黑客利用NVIDIA Tegra X1芯片中的漏洞破解了Switch主機,此漏洞允許任何人在其上運行任意代碼,這意味著自制系統(tǒng)和盜版軟件可以隨意運行。然而,通過不斷地內(nèi)部優(yōu)化,英偉達已經(jīng)在很大程度上完成了漏洞修補。
比如,在使用相同 Tegra X1 CPU 的初始 Nintendo Switch 控制臺上,在 ROM 引導(dǎo)加載程序中發(fā)現(xiàn)了一個漏洞,就通過恢復(fù)模式和緩沖區(qū)溢出實現(xiàn)修復(fù)。NVIDIA 可以使用內(nèi)置可編程保險絲將補丁存儲到內(nèi)部 ROM 中解決這類修復(fù)問題。這樣既考慮了薄弱環(huán)節(jié)又兼顧了安全性,減少代碼 bug。
又如,硬件設(shè)計的性質(zhì)意味著某些內(nèi)部硬件模塊無法被 CCPLEX 訪問,只有 BPMP 能夠操縱它們。包括 u-boot 在內(nèi)的所有低級引導(dǎo)步驟都可以通過簽名的二進制文件來確保安全。它們的密鑰可以存儲在 CPU 中的一次性可編程保險絲中。U-boot 本身可以配置為使用簽名的FIT 映像,從而提供一個安全的引導(dǎo)鏈,一直到 Linux 內(nèi)核。初始 ROM 引導(dǎo)加載程序和 TegraBoot 也都支持完全冗余的引導(dǎo)路徑。
Tegra是英偉達芯片中特有的信息安全芯片內(nèi)核,Tegra Security Controller(TESC)是一種信息安全子系統(tǒng),他有自己的可信任根ROM、IMEM、DMEM,Crypto 加速器(AES、SHA、RNG、PKA),關(guān)鍵鏈路和關(guān)鍵存儲。TSEC 提供了一個片上TEE(可信任執(zhí)行環(huán)境)可以運行NVIDIA-標(biāo)記的為處理代碼。TSEC是一種典型的安全視頻回放解決方案,下載信息安全運行所需的HDCP1.x 和2.x連接授權(quán)和完整的線端連接檢測。
整體來說,TSEC可以支持:
1)線端HDMI 1.4上的HDCP 1.4和 線端HDMI 2.3上的HDCP 2.0 2.1;
HDCP連接管理沒有暴露受保護的內(nèi)容,也無需運行在CPU上的軟件鑰匙。用于 HDCP 鏈路管理的兩個軟件可編程獨立指令隊列(最多可容納 16 條指令);整個芯片能夠獨立于播放器在 HDCP 狀態(tài)檢查失敗時禁用 HDMI 輸出。
2)平臺安全控制器;
他是一個高安全子系統(tǒng),他可以保護和管理SOC中的資產(chǎn)(鑰匙、保險絲、功能、特性),并提供可信任的服務(wù),提升自由的抵御對 SOC 的攻擊,并可以提高對子系統(tǒng)本身的軟件和硬件攻擊的保護水平。
3)鑰匙管理和保護;
PSC 將是唯一可以訪問芯片中最關(guān)鍵秘鑰的機制。該子系統(tǒng)代表了 Orin-x 中最高級別的保護,并且該子系統(tǒng)本身對各種軟件和硬件攻擊具有高度的彈性。
4)授信服務(wù);
例如,在 SOC 安全啟動期間,主要的 PSC 服務(wù)可以完成有效的安全身份驗證、提供額外的密鑰/ID/數(shù)據(jù)、密鑰訪問和管理、隨機數(shù)生成和授信的時間報告。
5)信息安全監(jiān)控。
PSC 將負(fù)責(zé)定期的安全管理任務(wù),包括持續(xù)評估 SOC 的安全狀態(tài),主動監(jiān)控已知或潛在的攻擊模式(例如,電壓故障或熱攻擊),降低硬件攻擊風(fēng)險,并在檢測到有攻擊的情況下采取有效的措施。PSC 將能夠接受各種軟件更新來作為解決方法,以提高現(xiàn)場系統(tǒng)的穩(wěn)健性。
其二,是安全引擎(SE)的應(yīng)用。他可以為加密算法提供硬件加速。
安全引擎SE中有兩種情況針對軟件使用是有用的。其一,TZ-SE只能被可信任區(qū)域軟件所訪問。其二,NS/TZ-SE可配置用來被可信任的軟件區(qū)域或非安全軟件所訪問。安全引擎SE可以為各種加密算法提供硬件加速以及硬件支撐密鑰保護。SE提供的加密算法可以被軟件用來建立加密協(xié)議和安全特性。所有加密運算都是基于國際標(biāo)準(zhǔn)技術(shù)協(xié)會NIST批準(zhǔn)的加密算法。
英偉達的安全引擎SE可支持包含如下的所有信息安全保障能力:
NIST合規(guī)的對稱以及非對稱加密和哈希算法、側(cè)信道對策(AES/RSA/ECC)、獨立并行信道、硬件鑰匙訪問控制(KAC)(基于規(guī)則,增強硬件訪問控制的對稱鑰匙)、16xAES,4xRSA/ECC鑰匙孔、硬件密鑰隔離(僅針對AES鑰匙孔)、讀保護(僅針對AES鑰匙孔)、硬件鑰匙孔函數(shù)、密鑰包裝/解包功能(AES->AES鑰匙孔)、鑰匙從鑰匙孔分離(KDF->AES鑰匙孔)、隨機鑰匙生成(RNG->AES鑰匙孔)。
總結(jié)
本文從整個英偉達芯片的核心架構(gòu)、功能安全、信息安全等角度完整的剖析了其在應(yīng)用過程中的主要特性和策略優(yōu)勢。對于如何利用英偉達系列芯片進行開發(fā)而言,充分的考慮其內(nèi)部架構(gòu)并結(jié)合其功能安全和信息安全能力對于整個開發(fā)調(diào)優(yōu)都顯得尤為重要。后續(xù)文章將分別從硬件開發(fā)和軟件開發(fā)的角度分別進行詳細(xì)的策略剖析。
審核編輯:劉清
-
傳感器
+關(guān)注
關(guān)注
2551文章
51125瀏覽量
753760 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4772瀏覽量
100792 -
激光雷達
+關(guān)注
關(guān)注
968文章
3975瀏覽量
189945 -
自動駕駛汽車
+關(guān)注
關(guān)注
4文章
376瀏覽量
40834
原文標(biāo)題:英偉達系列芯片如何用于自動駕駛研發(fā)之架構(gòu)及安全設(shè)計(一)
文章出處:【微信號:阿寶1990,微信公眾號:阿寶1990】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論