超異構(gòu)芯片最近是比較火的一個(gè)名詞,其集中特性是將各類不同的芯片內(nèi)核進(jìn)行融合,這種集成式芯片設(shè)計(jì)可以充分整合芯片資源,進(jìn)一步提升數(shù)據(jù)計(jì)算效率。并且由于芯片在設(shè)計(jì)之初就打通了相互之間互通兼容性,其內(nèi)部功能劃分和交互統(tǒng)一構(gòu)建的邏輯優(yōu)化,相比單芯片功能方案而言,可以顯著降低彼此功能和交互的各種掣肘;并且很多設(shè)計(jì)原理圖上可以在芯片之間通過共享某些資源,融合型單芯片可以進(jìn)一步降低成本。
另外,對(duì)于自動(dòng)駕駛系統(tǒng)設(shè)計(jì)而言,(80%-90%)的輕量級(jí)場(chǎng)景+10%左右的挑戰(zhàn)場(chǎng)景+10%左右的極端場(chǎng)景需要提供高性能以行業(yè)領(lǐng)先的功率/性能比計(jì)算傳統(tǒng)和深度學(xué)習(xí)算法,這些完全可以通過超異構(gòu)的不同芯片核進(jìn)行覆蓋,充分降低復(fù)雜度和系統(tǒng)規(guī)模。
超異構(gòu)芯片是具有高水平的系統(tǒng)集成,以實(shí)現(xiàn)先進(jìn)汽車的可擴(kuò)展性和更低成本的支持集中式 ECU。關(guān)鍵核心包括具有標(biāo)量和矢量?jī)?nèi)核的下一代 DSP,專用深度學(xué)習(xí)的NN計(jì)算核和傳統(tǒng)算法加速器,用于通用計(jì)算的最新 ARM 和 GPU 處理器,集成的下一代生成成像子系統(tǒng) (ISP),視頻編解碼器,以太網(wǎng)集線器和隔離的 MCU 功能安全島,所有受保護(hù)汽車級(jí)安全和安保硬件加速器等。
?
一般情況下,除了芯片選型外,設(shè)計(jì)超異構(gòu)芯片時(shí)需還要滿足如下設(shè)計(jì)規(guī)則:
片上存儲(chǔ)器應(yīng)設(shè)計(jì) ECC 保護(hù)并互連
內(nèi)置自檢 (BIST) 、故障注入CPU 和片上RAM
對(duì)于引腳錯(cuò)誤設(shè)置故障信號(hào)模式
運(yùn)行時(shí)安全診斷、電壓、溫度和時(shí)鐘監(jiān)控,窗口化看門狗定時(shí)器,用于存儲(chǔ)器的 CRC 引擎完整性檢查
可用于應(yīng)用的功能安全需要滿足 ISO26262 要求的ASIL D
啟用需要大量數(shù)據(jù)的系統(tǒng)帶寬、PCIe 集線器和千兆以太網(wǎng)交換機(jī)以及 CSI-2 端口以支持許多傳感器輸入的吞吐量。
1.超異構(gòu)芯片內(nèi)核解析
對(duì)于超異構(gòu)芯片而言,一般是基于異構(gòu)、可擴(kuò)展的架構(gòu)開發(fā),多核異構(gòu)的優(yōu)點(diǎn)是各核充分發(fā)揮其處理效能的優(yōu)點(diǎn),再加上專用硬件加速器也可處理特定任務(wù),從而在性能、功耗和成本上達(dá)到最佳平衡。 當(dāng)前被各廠家廣泛使用比較成熟的超異構(gòu)芯片當(dāng)屬TI的Jacinto 7 家族的處理器了,當(dāng)然這也只是初級(jí)超異構(gòu)芯片。
不同廠家對(duì)其使用方式不完全一致,有將其完全作為SOC芯片使用的,充分使用了其上的AI算力,有些廠家在不太考慮其安全等級(jí)要求的情況下也可能將其當(dāng)做MCU來使用。 本文將以TI的這塊TDA4的芯片為例進(jìn)行詳細(xì)介紹,說明相應(yīng)的內(nèi)部架構(gòu)。
?
其中主要的幾個(gè)異構(gòu)模塊包括如下:
1)處理器及加速器
①M(fèi)CU域:
相當(dāng)于異構(gòu)芯片域控的MCU芯片單元所起的作用,用于啟動(dòng)底層硬件驅(qū)動(dòng)、同步時(shí)間,啟動(dòng)操作系統(tǒng)及頂層應(yīng)用軟件中控制執(zhí)行類部分邏輯運(yùn)算。
這里MCU域主要是指MCU Island中用于鎖步功能的Arm Cortex-R5F充當(dāng);TI這類超異構(gòu)芯片而言,CPU模塊(Cortex R5F)用于對(duì)SOC域核周邊對(duì)應(yīng)的模塊需要單獨(dú)進(jìn)行電壓和時(shí)鐘設(shè)計(jì),同時(shí),采用專用內(nèi)存和接口確保其能夠與更大的 SoC 隔離。
②SOC域:
此類模塊通常使用高度定制化的NN加速器來實(shí)現(xiàn)。在環(huán)境感知模塊中都會(huì)涉及大量的典型神經(jīng)網(wǎng)絡(luò)(NN)的運(yùn)算,過程中深度學(xué)習(xí)算力主要被消耗掉。包括常見的各類圖像、激光點(diǎn)云檢測(cè)算法,比如物體檢測(cè)、車道線檢測(cè)、紅綠燈識(shí)別等。
以TI為例設(shè)計(jì)的異構(gòu)芯片中,微處理器系統(tǒng)端包括:Arm Cortex-A72和Arm Cortex-R5F、C71、C66幾大模塊。
其中,在各家域控Tier1開發(fā)過程中一般會(huì)考慮在A72上運(yùn)行HLOS(如Linux或QNX),其余核則運(yùn)行RTOS,整個(gè)運(yùn)行核均可支持AutoSar。使用A72獨(dú)立雙核集群配置有助于多操作系統(tǒng)應(yīng)用對(duì)軟件管理程序的最低需求。
R5F子系統(tǒng)支持低級(jí)時(shí)序關(guān)鍵處理任務(wù),用于實(shí)時(shí)性要求比較高的硬件驅(qū)動(dòng)。使用C71(MMA)進(jìn)行深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)NN和模型運(yùn)算,所以說MMA主要計(jì)算單位主要是以Tops為計(jì)算單位。
DSP處理器(C66)功能包含前端和后端視覺處理兩方面。前端視覺主要是NV12轉(zhuǎn)BGR、環(huán)視拼圖,后端進(jìn)行浮點(diǎn)運(yùn)算用以充當(dāng)AI加速器的CNN后處理。
如上這種結(jié)構(gòu)是一種典型的AI運(yùn)算模塊(又稱為AI-DSA),適用于對(duì)AI運(yùn)算性能要求高,算法相對(duì)穩(wěn)定的情況。由于AI-DSA模塊在整個(gè)智能駕駛場(chǎng)景運(yùn)算上使用更為普遍,性能更加敏感,對(duì)于云端、邊緣計(jì)算及自動(dòng)駕駛幾段場(chǎng)景的工程化落地更加具有可使用性。
③GPU域:
用于圖像處理加速單元,包含大量浮點(diǎn)運(yùn)算和實(shí)現(xiàn)動(dòng)態(tài) 3D 渲染以增強(qiáng)觀看效果應(yīng)用程序。同時(shí)GPU域也可以認(rèn)為是高效率的AI運(yùn)算平臺(tái),對(duì)于異形場(chǎng)景CornerCase的適配計(jì)算效率是最高的。
如上如果兼顧執(zhí)行效率和執(zhí)行性能上,可以做自適應(yīng)的AI算力分配,普通場(chǎng)景的AI運(yùn)算可以采用常規(guī)CPU+DSA方式進(jìn)行,而特殊邊緣場(chǎng)景可以采用GPU加速核方式進(jìn)行高效能計(jì)算。
④其他處理模塊:
VENC/ VDEC用于視頻編解碼單元,通常高性能的超異構(gòu)芯片需要適配H.265/HEVC這類高清視頻編碼器。對(duì)于下一代自動(dòng)駕駛系統(tǒng)來說可以提供更高清的視頻編碼能力,實(shí)現(xiàn)高清視頻壓縮傳輸。
VPAC(VisionProcessing Accelerator)用于對(duì)圖像進(jìn)行去畸變、下裁剪(Crop)、重整型(Resides)。其目的是確保輸入給神經(jīng)網(wǎng)絡(luò)單元進(jìn)行處理的圖像已經(jīng)被初步處理過了,這樣可以提升圖像網(wǎng)絡(luò)處理速度和性能。
如下圖是以簡(jiǎn)單的圖像傳輸和處理可以講清楚在這一類超異構(gòu)芯片上如何進(jìn)行數(shù)據(jù)鏈路的傳輸和處理。
?
2)存儲(chǔ)單元
下圖是大多數(shù)開發(fā)板所有的一個(gè)存儲(chǔ)單元框架,接下來以此圖為基礎(chǔ)描述ARM芯片的上電啟動(dòng)流程。
?
ROM:芯片內(nèi)部固化存儲(chǔ)代碼的存儲(chǔ)器,其中固化在芯片iROM中的啟動(dòng)代碼為BL0。
RAM:在ROM啟動(dòng)運(yùn)行的時(shí)候,只有RAM是可用的,因此必須要自動(dòng)從外擴(kuò)存儲(chǔ)器(nand/sd/usb)中拷貝的uboot.bin二進(jìn)制文件的頭最大16K(一般是4K或8K)代碼(BL1)。
SDROM:芯片外部的運(yùn)行內(nèi)存,由運(yùn)行在RAM上的BL1進(jìn)行初始化,用于運(yùn)行BL2與應(yīng)用程序。
Nand Flash :芯片外部非易失閃存技術(shù)的存儲(chǔ)器,沒有地址總線,不能直接運(yùn)行代碼,需要將代碼加載到RAM上面才能運(yùn)行。
就舉例的TDA4芯片而言,BL1 和 BL2 沒有被集成(Jacinto7集成 了 DMSC&MCU R5 取代了 BL1 和BL2 的功能), BL31 執(zhí)行 ATF,BL32 執(zhí)行 OP-TEE,BL33 是SPL/U-boot。
相應(yīng)的存儲(chǔ)單元涉及Main域和MCU域的管理,且兩域分別單獨(dú)用于片上共享存儲(chǔ)單元,他們分別通過多核共享存儲(chǔ)控制器MSMC實(shí)現(xiàn)相應(yīng)的存儲(chǔ)管理。TDA4內(nèi)部還存在LPDDR4 w/ECC模塊,即使未使用 DDR 接口,其VDDS_DDR均需要使用 LPDDR4 電壓范圍進(jìn)行供電。
2.超異構(gòu)芯片的啟動(dòng)說明
對(duì)于超異構(gòu)芯片而言,由于采用了多核異構(gòu)的架構(gòu),因系統(tǒng)需求的差異,其相應(yīng)的啟動(dòng)流程也有一定的差異性,并且由于集成多核制會(huì)導(dǎo)致其啟動(dòng)流程比單核和多核同構(gòu)的處理器會(huì)復(fù)雜些。
Bootloader 是在操作系統(tǒng)運(yùn)行之前執(zhí)行的一段小程序。通過這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間的映射表,從而建立適當(dāng)?shù)南到y(tǒng)軟硬件環(huán)境,為最終調(diào)用操作系統(tǒng)內(nèi)核做好準(zhǔn)備。
兩種bootloader 可以選擇 SPL(Secondary Program Loader)或 SBL(Secondary bootloader)兩種驅(qū)動(dòng)加載。
SPL表示程序加載,分為兩級(jí)加載程序過程。第一級(jí)Bootloader是指從ROM 里面的程序中根據(jù)啟動(dòng)方式的選擇引導(dǎo)并加載 SPL。第二級(jí)Bootloader是指對(duì)硬件的初始化過程,引導(dǎo)下一級(jí)的 bootloader 核或加載并運(yùn)行應(yīng)用程序。
SBL表示驅(qū)動(dòng)加載。可以實(shí)現(xiàn)對(duì)外圍設(shè)備進(jìn)行配置,比如 DDR,可以加載并啟動(dòng)其它核。為了滿足快速啟動(dòng) MCU 執(zhí)行相關(guān)的應(yīng)用,MCU可以先啟動(dòng),然后使用BOOT APP 進(jìn)而引導(dǎo)其它應(yīng)用程序。在 SBL 啟動(dòng)流程中,SBL 可以直接加載 Linux內(nèi)核和 DTB。
如下圖顯示了完整的異構(gòu)芯片TDA4的程序加載過程。
?
對(duì)于如上超異構(gòu)芯片而言,用的最廣的要數(shù)ARM Cortex-A72核了,因?yàn)槠湓谡麛?shù)、浮點(diǎn)、內(nèi)存等性能皆有不同程度的提升,雖然還缺少一些細(xì)節(jié),不過IPC性能上相對(duì)于之前的產(chǎn)品提升了16-30%左右。如下圖表示了芯片A72的具體啟動(dòng)原理。
?
整個(gè)代碼啟動(dòng)運(yùn)行過程包括首先把BL1加載到RAM中運(yùn)行,然后由BL1對(duì)SDRAM進(jìn)行初始化。最后,代碼重定向完成后在內(nèi)存中執(zhí)行的uboot的完整代碼BL2。
從應(yīng)用層面的系統(tǒng)需求來講,不同的應(yīng)用可以部署在不同的核,不同核的啟動(dòng)時(shí)序影響著系統(tǒng)需求是否能實(shí)現(xiàn)。總體來講,針對(duì)系統(tǒng)的應(yīng)用需求,可能有如下的額外要求:提前Can信息響應(yīng)、提前啟動(dòng)畫面、提前啟動(dòng)攝像頭、提前分配Linux使用空間、提前顯示視頻動(dòng)畫等。我們應(yīng)設(shè)計(jì)合理的 Soc 啟動(dòng)流程來滿足系統(tǒng)的需求。
3.總結(jié)
超異構(gòu)芯片Super SOC作為ADAS系統(tǒng)普遍應(yīng)用的處理器,在面向 ADAS 和自動(dòng)駕駛車輛 (AV) 應(yīng)用過程中起著舉足輕重的作用。
智駕領(lǐng)域中,SOC需要深度學(xué)習(xí)算法中會(huì)比傳統(tǒng)芯片提供提供高性能計(jì)算能力,同時(shí)可以有效優(yōu)化其功耗和系統(tǒng)集成度。最終實(shí)現(xiàn)支持集中式ECU 或多種傳感器的高級(jí)汽車平臺(tái)實(shí)現(xiàn)可擴(kuò)展性和更低的成本。
審核編輯:劉清
-
加速器
+關(guān)注
關(guān)注
2文章
795瀏覽量
37770 -
編解碼器
+關(guān)注
關(guān)注
0文章
253瀏覽量
24209 -
ecu
+關(guān)注
關(guān)注
14文章
881瀏覽量
54408 -
adas
+關(guān)注
關(guān)注
309文章
2169瀏覽量
208529 -
異構(gòu)芯片
+關(guān)注
關(guān)注
0文章
9瀏覽量
2105
原文標(biāo)題:聊聊TDA4芯片異構(gòu)芯片設(shè)計(jì)、啟動(dòng)及工作原理
文章出處:【微信號(hào):eng2mot,微信公眾號(hào):汽車ECU開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論