自動駕駛域控芯片內部架構與性能影響
近年來,汽車新四化的腳步已勢不可擋,也給汽車電子帶來了深刻的變革,逐漸過渡到軟件定義汽車的時代,汽車的軟件代碼量和復雜度都在快速增長。毫無疑問穩定可靠的軟件運行必須依靠足夠強大的整車硬件作為支撐,而硬件的核心就是汽車芯片。智能汽車產業的發展越來越需要性能強勁的芯片來推進。自動駕駛芯片,本質上是一種包含處理器和控制器的高算力功能芯片,目前已量產商用的自動駕駛芯片基本處于高級駕駛輔助系統階段,可實現L1-L2級輔助駕駛,通常這類自動駕駛域控制器所采用的芯片不需要太高的AI算力,更多的是應用邏輯算力進行相應的邏輯運算。為了滿足當前和未來的系統架構發展和整車功能需求的爆發式增長,IT技術的滲透結合逐漸加快了多核大算力處理器的發展,本文將對有關智能駕駛芯片內部結構做較為詳細的剖析,旨在為智能駕駛中央域控制器設計過程中需要考慮的問題提供支撐。
CPU邏輯運算核未來智能汽車電子電器架構和整車功能越來越復雜,需要計算能力更強大的硬件來支持越來越復雜的軟件功能,這些軟件功能需要更多并行計算能力,相同時間片內支持運行多個任務的串行計算,系統優化響應能力,協調資源調配。這一系列功能性能需求就越來越需要多核處理器的支持,多核處理器從內核架構上主要分為:同構和異構處理器兩類。在對功耗要求很嚴格的車載域控制器中,通常采用的多核SoC是由CPU內核和其它內核集成的異構多核架構。
一般地,對于未來智能汽車域控單元的芯片SoC而言,要求適配下一代智能網聯汽車架構設計,需要更多適用于生成多個線程的應用,或是執行流媒體數據處理的應用。并且由于在處理流媒體數據時,必須實現流水線的并行處理,處理獨立數據時,必須利用多個線程執行。以上這些需求就必然發展為集成多個同類型CPU內核和其它加速器內核的架構。由于GPU內核擅長浮點運算,可以用于圖形渲染處理,不僅可用作的矢量處理器,也可以采用GPU內核來彌補CPU內核的缺陷,用它來處理CPU內核所不擅長的那些工作。但GPU的缺陷也很明顯,即無法單獨工作,必須由CPU進行控制調用才能工作。嚴格意義上說,GPU是一種高性能的CPU運算單元。對于車載芯片選型而言,需要重點關注與CPU邏輯運算相關的幾個指標。
1、邏輯算力CPU的邏輯算力與CPU的核心的個數,核心的頻率,核心單時鐘周期的能力三個因素有直接關系。對于多核異構CPU而言,其整體算力可看成是多個核算力的總和。CPU的邏輯算力將直接影響SOC芯片的感知處理能力,總體表現為對于前端感知的原始目標(圖像、激光點云等)的前融合處理(這里不包含AI感知運算)。而整體來講,前融合所消耗的邏輯算力可以占據整個邏輯算力的50%以上。因此,確保前端AI芯片有具備足夠算力的CPU內核是極為重要的。因為對于后端MCU進行的規控來說,基本上都是采用的比較少的邏輯算力的芯片進行規劃控制、決策執行的處理過程。這里需要指出一點,很多tier1提供的解決方案是針對邏輯或AI算力不充足的情況下是不斷增加同類型的AI芯片來實現算力擴充,實則完全沒有必要,這里不僅成本增加,且功耗也會隨著增加的芯片而增大。因此,我們在進行域控制器設計中不僅需要考慮到前端SOC的AI算力是否足夠,也需要充分考慮其邏輯算力是否滿足需求,判定在當前架構下AI算力已滿足性能需求,但是邏輯算力不夠,可通過單獨擴展相應的邏輯算力加速芯片作為補充。
2、主頻也叫時鐘頻率,單位是MHz(或GHz),用來表示CPU的運算、處理數據的速度。基本上可以認為主頻就很大程度上決定著CPU的運行速度,進一步地決定著對于邏輯運算單元的處理效率。在芯片選型中,我們需要充分考慮到對于CPU運算效率的需求,盡量選擇主頻較高的CPU。
3、緩存(CACHE)大小及速度緩存是用來存儲一些常用或即將用到的數據或指令,其結構和大小對CPU速度的影響非常大,就當需要這些數據或指令的時候直接從緩存中讀取,這樣比到內存甚至硬盤中讀取要快得多,能夠大幅度提升CPU的處理速度。
4、工作電壓CPU的工作電壓直接影響著其運行時的功耗大小,CPU所分擔的功耗直接影響著整個SOC的功耗大小。TPU/NPU/BPU AI運算核對于域控制器AI運算而言,實際更多的涉及計算機視覺中的神經網絡、深度學習等相關的運算機制。這里我們需要指出的是AI運算核是沒有統一叫法的,不同的公司開發的AI運算單元名字叫法是不一致的。大體上可以分為如下三種主流的叫法。
BPU算法訓練一旦形成,就不支持在線編程,且必須由CPU進行調用和控制下才能高效運行。
下面將以其中一種AI運算核BPU進行詳細的原理說明。
地平線的BPU內承載了進行神經網絡運算的積累加運算(英語:Multiply Accumulate, MAC)單元。通過應用MAC 指令,可以使 的乘加運算用一個指令完成。而許多運算(例如卷積運算、點積運算、矩陣運算、數字濾波器運算、乃至多項式的求值運算)都可以分解為數個MAC 指令,因此可以提高上述運算的效率。同時,地平線的BPU采用雙核的結構,同時在其控制單元里跑兩套相同的程序,并對對方運算結果進行相互校驗,由檢查器模塊對比兩個BPU應用程序的執行輸出,在輸出結果一致的情況下,由檢查器模塊產生中斷,將兩個BPU當前狀態以檢查點文件的形式保存到存儲器上,在輸出結果不一致的情況下,由檢查器模塊產生中斷,兩個CPU處理器調取最近一次保存的檢查點文件實施回卷以恢復系統進行重新計算。這一過程類似于實現了BPU內的鎖步功能,這樣可以很大程度上提升其運算結果的準確性,確保其SOC的功能安全性能。功能安全島高性能自動駕駛芯片需要在多核架構上承載功能安全拆解的功能目標值,其中包括在軟錯誤發生后,可以及時的進行錯誤糾正,將系統恢復到安全狀態。這就要求在多核系統上實現一定的軟硬件的功能安全設計目標。通常情況下,各個芯片廠家會傾向于納入功能安全島來作為實現芯片功能安全的機制。從原理上分析,功能安全島可劃分為硬件鎖步,軟件分區的方式來進行功能安全目標提升。如下將分別進行介紹。
所謂硬件鎖步,就是在芯片設計中同時搭載兩套硬件內核,每個內核分別承載兩套相同的軟件模型,當輸入源相同時,則實現了兩個硬件內核的相同運算機制,同時該過程需要保持兩個運算核的獨立性,其運算的結果將會在每個周期都進行一次比較,當出現差異時,生成一個trap,該trap觸發一個中斷,將兩個鎖步核中運行狀態以文件行駛保存在存儲器上,并調用最近一次保存的文件回卷以恢復系統重新進行計算。整個過程相當于不斷進行自檢與互檢的過程。
所謂軟件分區,其目的是確保程序的并行運行和安全計算能力。其過程是根據軟件的可并行性核相關安全架構,將上層軟件模塊分配給AUTOSAR中定義的操作系統應用程序執行相應的作業Task,且該過程需要確保ECU在運行時不會引起內部區域之間的相互干擾。片上網絡由于SOC中的處理器采用了多MIPS 處理核心,每個核心擁有私有的指令緩存(I-Cache)和數據緩存(D-Cache)。片上網絡,本質上是為了解決片上多核系統中不同的核心之間,核心與非核心(Un-Core)硬件單元之間數據傳輸問題的一種“片上通信”方案。
圖像/視頻處理單元SOC芯片上的圖像處理單元主要包括幾個部分功能:數字圖像信號處理、圖像分割(Pyramid)、圖像拼接(Stitch)、圖像渲染(GDC)以及視頻編解碼功能。ISP模塊接收感光元件(Sensor)的原始信號數據,并處理圖像傳感器輸出的圖像信號,對圖像質量起著非常重要的作用。ISP內部包含多個圖像算法處理模塊,其中主要包含如下幾種:- 通過扣暗電流去掉底電流噪聲;- 通過線性化解決數據非線性問題;- 解決鏡頭帶來的亮度衰減與顏色變化;- 通過去壞點,剔除sensor中壞點數據);- 通過數字圖像濾波進行圖像去噪;- 通過感光半導體處理將原始環境光源數據轉為RGB數據;- 自動白平衡,自動對焦,自動曝光;- 亮度映射曲線,優化局部與整體對比度;
此外,ISP的處理過程還包括如下幾個部分:即旋轉(角度變化),銳化(調整銳度),縮放(放大縮小),色彩空間轉換(轉換到不同色彩空間進處理),顏色增強(可選,調整顏色),膚色增強(可選,優化膚色表現)等。
圖像分割實在神經網絡處理邏輯之前進行簡單的場景分割,將環境中明顯可表達的語義進行分別輸出。圖像拼接是針對有一定overlap的圖像進行全場景范圍拼接,拼接的結果主要用于流媒體顯示。
此外,圖像處理單元一版還會額外搭載一些視頻編解碼核,一般可應用HEVC的方式進行編解碼。更為強大的圖像/視頻處理單元會有能力進行3D圖像渲染。這一部分可能會用到GPU的相關計算能力。這里需要說明一下的是,在我們設計域控制器的時候,很多情況下,我們選擇的SOC芯片是不具備足夠的3D渲染能力的,這時,從整個先進的顯示方案需求出發,我們就需要采用額外的處理器進行渲染。這里有兩種方案:其一,是采用駕駛域控制器的芯片擴充方案,即在自動駕駛域控制器AI芯片外圍在增加相應的GPU芯片進行集成,兩者可通過PCIe進行圖像傳輸。其二,是采用座艙域控制器芯片擴充方案,即在智能座艙控制器芯片中集成GPU處理能力的芯片直接做渲染和顯示。
總結自動駕駛芯片除了如上一些關鍵設計要素會影響域控制器的設計選型外,還包括了如下一些非關建要素,但是卻還是比較重要的方面。其一,是接口外設。對于自動駕駛芯片來講,足夠多且有效的接口外設是必不可少的,因為對于下一代智能網聯域控制器來說,其架構所帶來的傳感器數據量的變化是成指數級增加,因此,芯片內部預設足夠的接口是非常必要的。基本上,我們需要SOC具備多路CANFD、PCIe、ethernet、GPIO、MIPI、UART、I2C、I2S等接口。具體情況需要根據架構來指定選用哪幾路。其二,是附加存儲控制。選擇合適的存儲器解決方案是滿足目標系統對車載控制器芯片的功能和性能要求的關鍵,幫助設計人員解決其目標片上系統 (SoC) 的功耗、性能和面積要求。同時,附加存儲控制主要可以擴充SOC芯片由于內部存儲資源不充足所產生的存儲數據溢出。通常附件存儲可作為臨時作為操作系統、數據驅動的資源池,大大降低了程序調用的難度,提升了運行效率。其三,是信息安全監控。主要包含數字身份認證、看門狗程序、底層安全驅動、加密引擎等幾個方面。其目的是在系統運行期間實現系統的安全、認證啟動或主機監測。