眾所周知,隨著自動駕駛和智能網(wǎng)聯(lián)技術(shù)的飛速發(fā)展,傳統(tǒng)的汽車開放系統(tǒng)架構(gòu)CP Autosar已經(jīng)無法滿足日益復(fù)雜的汽車電子系統(tǒng)的功能需求。尤其底層軟件中,針對面向服務(wù)架構(gòu)SOA開發(fā)需要使用高性能的處理器,自適應(yīng)汽車開放系統(tǒng)架構(gòu)AP Autosar有著不可比擬的優(yōu)勢。
而應(yīng)用軟件中,自動駕駛整體架構(gòu)主要涉及感知、規(guī)劃、決策、控制等節(jié)點。通過數(shù)據(jù)或信息的存儲、傳遞及有效及時處理,可以完成感知算法、決策算法、控制算法的整體遞進式集成。數(shù)據(jù)在采集單元與算法單元之間、每兩個算法節(jié)點之間進行傳遞時,都需要經(jīng)過“數(shù)據(jù)緩存”和“數(shù)據(jù)發(fā)布”兩個步驟。這一過程就涉及多項自動駕駛底層軟件技術(shù),如內(nèi)存動態(tài)分配、芯片運算能力、芯片實時監(jiān)控策略。本文將針對這三方面內(nèi)容進行詳細說明。
1.功能安全攔路虎:內(nèi)存分配與訪問
在汽車電子系統(tǒng)的軟件開發(fā)標(biāo)準(zhǔn)中,強調(diào)需要保證軟件架構(gòu)要素之間的獨立性,相互之間不能存在干擾。而這類干擾軟件要素的可能原因分為三部分:運算、內(nèi)存、通信。其中,運算能力涉及運算時序和執(zhí)行策略。這對開發(fā)符合功能安全要求的軟件提出了具體的要求,而這一分析過程無論從難度系數(shù)還是工作量上都很大,而“內(nèi)存分配”和“內(nèi)存訪問”是非常重要的一個原因。
1)內(nèi)存分配
內(nèi)存分配主要存在于自動駕駛底層軟件領(lǐng)域。通常的做法是,數(shù)據(jù)發(fā)布單元向底層操作系統(tǒng)申請適當(dāng)?shù)膬?nèi)存,數(shù)據(jù)發(fā)布之后釋放內(nèi)存。在申請內(nèi)存和釋放內(nèi)存的過程中,主要有如下三種內(nèi)存分配方式存在:
如上圖所示,“靜態(tài)內(nèi)存分配”和“堆上內(nèi)存分配”兩種方式中,其相關(guān)技術(shù)需要在分配內(nèi)存空間時,都需要搜索連續(xù)且空閑的最小內(nèi)存分配單元,導(dǎo)致存在時間開銷大、內(nèi)存碎片化嚴(yán)重等問題。這對于在靈活且受限的內(nèi)存資源(SRAM、LDDR、FLash)中,將可能由于頻繁的進行動態(tài)內(nèi)存分配產(chǎn)生的內(nèi)存碎片,可能影響自動駕駛系統(tǒng)運行性能。
從對于系統(tǒng)功能安全設(shè)計上講這類內(nèi)存分配所帶來的影響將是不能被容忍的。所以在不同的自動駕駛底層軟件系統(tǒng)中,對于當(dāng)前先進的自動駕駛系統(tǒng)程序不管是應(yīng)用程序,還是平臺模塊,都是直接調(diào)用可移植操作系統(tǒng)接口或編程語言c++的接口進行內(nèi)存的動態(tài)申請/釋放。然而,汽車電子系統(tǒng)的軟件開發(fā)標(biāo)準(zhǔn)ISO26262要求盡可能不要動態(tài)申請/釋放內(nèi)存,甚至在某些高等級的自動駕駛安全等級,如ASIL D中考慮到動態(tài)申請/釋放內(nèi)存,頻繁的動態(tài)申請/釋放,會產(chǎn)生大量的內(nèi)存碎片,不但會增加申請結(jié)果和時間的不確定性,甚至還會影響性能,通常又是禁止動態(tài)申請/釋放內(nèi)存的,實際上這兩類需求卻又是相互矛盾的。
因此,對于動態(tài)內(nèi)存管理,需要開發(fā)許多不同種類的算法。不同的操作系統(tǒng)有不同的實現(xiàn)方式,為了程序的可移植性,一般在開發(fā)語言的庫中都提供了統(tǒng)一接口。在系統(tǒng)真正需要內(nèi)存時,才通過操作系統(tǒng)調(diào)用接口API來獲取實際的物理內(nèi)存。
此外,很多適配底軟開發(fā)的供應(yīng)商當(dāng)前在進行自適應(yīng)汽車開放系統(tǒng)架構(gòu)設(shè)計中,還重點傾注更多精力用于內(nèi)存保護和提高內(nèi)存利用率。例如,設(shè)置可用內(nèi)存池,在有需求時獲取內(nèi)存大小需求,從目標(biāo)交換模塊對應(yīng)的內(nèi)存集合中確定目標(biāo)內(nèi)存,在有需要時,申請合適大小的目標(biāo)尺寸,通過以上方法,可以有效減小運行時的資源瓶頸,減少內(nèi)存碎片化。
2)內(nèi)存訪問
隨著汽車電子系統(tǒng)復(fù)雜性的不斷提高、越來越多的軟件和機電設(shè)備的應(yīng)用,來自電子系統(tǒng)失效和隨機硬件失效的風(fēng)險日益增加。在功能安全中,相關(guān)失效分析是一項非常重要的工作。在ISO26262中要求,如果嵌入式軟件包含不同ASIL等級的軟件組件設(shè)計SWC,要么整個軟件工程都需要基于最高安全等級的要求進行開發(fā),這就需要保證擁有更高安全等級的SWC的操作不會受到其他SWC的干擾。
總結(jié)起來,SWC相關(guān)的內(nèi)存故障主要包含如下幾方面:
在基于面向服務(wù)的架構(gòu)中需要基于更低安全等級要求開發(fā)的SWC,可能會出現(xiàn)錯誤地訪問到更高安全等級SWC的內(nèi)存區(qū)域,產(chǎn)生干擾。為此,SWC需要運行在不同的內(nèi)存區(qū)域,或者不同的內(nèi)存分區(qū),來防止類似的內(nèi)存訪問違例。
由于每個可編程核心(總線主機)都有一個內(nèi)存保護單元MPU(如果沒有MPU,則可以通過DMA守衛(wèi)來控制總線主設(shè)備的訪問),它定義了軟件訪問保護措施,當(dāng)MPU嵌入很多異構(gòu)芯中時也同時具有內(nèi)存保護功能,可以保護當(dāng)前執(zhí)行的代碼不被一些“無關(guān)聯(lián)”的數(shù)據(jù)所侵害,防止對內(nèi)存數(shù)據(jù)的錯誤訪問,并控制外圍模塊的寄存器。這類保護措施主要是限制相關(guān)內(nèi)存地址權(quán)限,這類權(quán)限限制將確保其程序訪問內(nèi)存地址的范圍與其無關(guān),組織關(guān)鍵數(shù)據(jù)不被破壞,整個系統(tǒng)更加健壯、安全。
2.自動駕駛異構(gòu)計算能力提升:
超異構(gòu)計算芯片集成
高階自動駕駛系統(tǒng)需要在AI單元的選型上采用了并行計算架構(gòu)的AI芯片進行硬件加速、資源分配、調(diào)度、圖像識別、深度學(xué)習(xí)等。使用多核車規(guī)級CPU配置進行任務(wù)調(diào)度、執(zhí)行自動駕駛相關(guān)的大部分核心算法,同時整合多源數(shù)據(jù)完成路徑規(guī)劃、決策控制等邏輯運算處理。
AI芯片處理功能包含如下:
a)圖像感知:對攝像頭輸出的數(shù)字圖像進行包含ISP處理、編解碼、視頻圖像分割、目標(biāo)識別、跟蹤處理等,同時,生成BEV鳥瞰圖、視覺定位建圖等;
b)激光點云處理:對激光雷達輸出的點云進行聚類、目標(biāo)識別、跟蹤處理等;
c)融合處理:包括基于圖像識別得前融合,圖像、毫米波/激光雷達、高精定位目標(biāo)后融合等;
d)軌跡規(guī)劃:利用檢測到的圖像目標(biāo)信息,規(guī)劃自車行駛軌跡。
對于諸如如上各種功能的整體融合,當(dāng)前的架構(gòu)策略通常是采用多芯片融合技術(shù)進行相應(yīng)的分片分模塊處理。但是,從整體執(zhí)行效率、執(zhí)行效果、開發(fā)周期上看,這種多芯片異構(gòu)方式都不見得是最佳選擇。首先,為了集中達到對不同運算能力的需求,通常需要從不同芯片廠家拿貨進行接口及軟件適配,這將是一個比較長期且大量的開發(fā)工作。另外,各芯片適配過程中是否能夠完全兼容也并非能夠在開發(fā)初期能夠完全解釋清楚。因此,如果能夠搭建一種“超異構(gòu)計算芯片”融合包含xPU的所有功能子項,那將是智駕系統(tǒng)架構(gòu)的福音。
這里我們將對這類新型芯片進行詳細介紹。
“超異構(gòu)處理器”,顧名思義可以認為是由CPU、GPU、各類DSA以及其他各類處理器引擎共同組成的,CPU、GPU和DPU整合重構(gòu)的一種全系統(tǒng)功能融合的單芯片解決方案。
那么這類超異構(gòu)處理器到底能對自動駕駛系統(tǒng)底層軟件帶來哪些好處呢?
首先,超異構(gòu)處理器的融合策略有利于計算資源的充分整合,進一步提升數(shù)據(jù)計算效率。因為相比于需要三芯片實現(xiàn)異構(gòu)計算的方案,這種超異構(gòu)融合系統(tǒng),將內(nèi)部功能劃分和交互統(tǒng)一構(gòu)建,可以顯著降低彼此功能和交互的各種掣肘。
其次,對于自動駕駛系統(tǒng)來說,其計算過程中的大部分場景(80%-90%)都是相對輕量級場景,通過超異構(gòu)實現(xiàn)的單個芯片計算策略通過Chiplet加持以及多DIE單芯片的方式,實現(xiàn)重量級場景的覆蓋,完全可以cover住幾乎全部的通用場景。因此,在其復(fù)雜度和系統(tǒng)規(guī)模中均實現(xiàn)較好的反饋。
最后,超異構(gòu)計算單元實際是一個整合多類芯片的大的芯片集合,同時在電路設(shè)計中最大程度的簡化其外圍邊緣件設(shè)計,實際是最大程度的減少了BOM表的數(shù)量。因此,對于芯片成本可以得到大幅降低。
實際上,當(dāng)前已有部分芯片供應(yīng)商已經(jīng)在這類芯片設(shè)計中,實現(xiàn)了類超異構(gòu)芯片的設(shè)計能力。這家供應(yīng)商就是TI的TDA4 系列芯片。
如下圖所示表示了當(dāng)前被各家自動駕駛玩家鐘愛的TDA4 VM芯片,實際的內(nèi)部架構(gòu)可以看出,其設(shè)計上,已經(jīng)將包含CPU(A72、R5F)、DPU(C7x)、GPU、主MCU等。這種雜糅式集成實際可看成簡單的超異構(gòu)芯片。里面既能實現(xiàn)高實時性運算的R核(外置接攝像頭I/O連接模塊,直接控制攝像頭的開閉及數(shù)據(jù)實時傳輸),也有可提升運算量的A核(實現(xiàn)深度學(xué)習(xí)、卷及計算、MAC計算等大量感知端需要的運算能力)。最后還有為了滿足功能安全要求,設(shè)置了雙核MCU實現(xiàn)功能安全島需要的鎖步校驗功能。這樣一個高集成度低成本的芯片怎能不受各玩家的鐘愛呢?
3.自動車輛有效執(zhí)行的重中之重:實時性設(shè)計
在自動駕駛技術(shù)中,對功能模塊的實時性要求非常高,尤其是自動駕駛算法的復(fù)雜性造成數(shù)據(jù)分發(fā)節(jié)點非常多,內(nèi)存操作的時間開銷更大,影響到在突發(fā)事件的場景下(例如,有行人突然闖入)自動駕駛系統(tǒng)對實時響應(yīng)性的要求,很可能會影響自動駕駛系統(tǒng)的安全。
由于高階自動駕駛系統(tǒng)一般都采用異構(gòu)芯片進行不同數(shù)據(jù)信息源信息處理。需要嚴(yán)格限定硬件ECU在規(guī)定的時間內(nèi)完成任務(wù),否則就可能導(dǎo)致系統(tǒng)功能的失效。例如對于線控轉(zhuǎn)向,如果駕駛員發(fā)出轉(zhuǎn)向操作后100ms內(nèi)車輪沒有執(zhí)行轉(zhuǎn)向,則可能導(dǎo)致碰撞事故,嚴(yán)重的甚至造成車毀人亡。橫縱向執(zhí)行域的系統(tǒng)(ESP、EPS)往往屬于這一領(lǐng)域。當(dāng)然,如果硬件達標(biāo)而軟件執(zhí)行期間出現(xiàn)一定的時間偏差,在設(shè)定的線性范圍之內(nèi)也是被允許的,例如有的應(yīng)用要求系統(tǒng)在90%的情況下能夠確保在規(guī)定時間內(nèi)完成任務(wù)即可。車輛信息娛樂域(IVI)或動力域(VCU)的系統(tǒng)大多都屬于這類系統(tǒng)。
那么這種實時性到底指的是哪塊呢?這方面實時性又需要重點關(guān)注哪些要素呢?
總體而言,影響系統(tǒng)實時性的因素從軟件架構(gòu)上可以分為通信、調(diào)度和代碼三個層面。從系統(tǒng)架構(gòu)上,實時性實際又需要從整個傳感端、控制端到執(zhí)行端進行區(qū)分。
1、系統(tǒng)架構(gòu)實時性解讀
1)傳感端:
對于集中式方案來說,傳感端的實時性處理有兩種情況需要區(qū)分。其一,如果傳感器能夠作為單獨小的ECU,那么整個環(huán)境數(shù)據(jù)采集工作則可以認為是由傳感自身自行控制和執(zhí)行的。如攝像頭曝光時間、雷達微波發(fā)生頻率、激光掃描頻率等。對于輸入域控的數(shù)據(jù)而言,域控只需要給出傳感器對應(yīng)的同步時間戳即可。其二,如果傳感器不存在單獨控制的ECU端,那么整個傳感采集過程都將受制于域控制器。這個過程可以看成域控制器需要通過一定的控制線(如攝像頭的IIC線)對傳感器的采集速率、采集頻率、控制電壓、采集輸入時間點都要進行控制。那么整個實時性控制將完全交由域控來進行控制。
當(dāng)前很多情況下,域控對傳感數(shù)據(jù)的控制只是部分實時性控制。如只對攝像頭數(shù)據(jù)采集的實時性進行直接控制,如控制曝光、傳輸速率等。而對于毫米波、激光雷達等則是分布式方式,其實時性控制只是簡單地全局時間注入及打時間戳等方式。
另外,如果是域控底層驅(qū)動傳感器I/O口的方式,還包括域控能夠?qū)崟r的將傳感器原始數(shù)據(jù)進行實時性處理,如底層ISP/白平衡、中間層AI深度學(xué)習(xí)感知聚類、頂層與其他傳感器數(shù)據(jù)的后融合等。
2)控制端:
對于控制端來講,其實時性則是相對復(fù)雜些,他包括底層軟件驅(qū)動的實時性,中間件資源整合調(diào)用的實時性以及頂層應(yīng)用軟件的實時性。實際應(yīng)用中,不同系統(tǒng)對于實時性的滿足程度并不相同。比如AEB這一對系統(tǒng)處理實時性要求極高的功能就需要系統(tǒng)能夠在異常場景中能夠?qū)?shù)據(jù)及時的采集到,并在內(nèi)部進行有效處理。這一處理過程實際是要求系統(tǒng)是一種處理實時性極高的系統(tǒng)。
以實時性滿足的不同需求可以分為實時性計算任務(wù)和實時性監(jiān)控任務(wù)。實時性計算任務(wù)主要是指規(guī)定時間內(nèi)完成的不同敏感性任務(wù),如“硬實時系統(tǒng)”和“軟實時系統(tǒng)”。實時監(jiān)控任務(wù)則是針對運行的軟硬實時系統(tǒng)實施包含運行效率、運行安全度、執(zhí)行結(jié)果反饋等方面的信息監(jiān)控。以AUTOSAR標(biāo)準(zhǔn)為例,CP通常用于硬實時系統(tǒng)中,而AP多用于對實時性要求較低、但又比用于車機的Android實時性要求高的系統(tǒng)。
總之,自動駕駛車內(nèi)的各種系統(tǒng)對實時性有不同的要求。實時性是一個相對的概念,針對不同功能安全、信息安全,需要設(shè)計不同等級的實時運算和監(jiān)控系統(tǒng),以滿足系統(tǒng)的功能要求,綜合平衡系統(tǒng)升級的靈活性、成本等不同因素,設(shè)計滿足需求的實時性系統(tǒng)。
3)執(zhí)行端:
執(zhí)行端的實時性很容易理解,即是域控發(fā)送的執(zhí)行信息能夠得到執(zhí)行器的及時處理和反饋。這塊在當(dāng)前也是簡單地通過對執(zhí)行器的接口需求進行規(guī)范。比如縱向執(zhí)行加速度會規(guī)范加速響應(yīng)延遲、加速穩(wěn)態(tài)時間、穩(wěn)態(tài)波動最大最小值等。橫向執(zhí)行轉(zhuǎn)向角會規(guī)范轉(zhuǎn)角響應(yīng)延遲、最大最小響應(yīng)轉(zhuǎn)角、最大最小手力矩等。
從整車功能域角度出發(fā),自動駕駛是收集外部傳感器數(shù)據(jù)量最大的模塊,為了持續(xù)探測到車身四周各種復(fù)雜環(huán)境信息,需要毫米波、攝像頭和激光雷達配合以達到360度無死角感知。并且為了保證安全,所有數(shù)據(jù)都需要接近實時的速度處理,為了保證大量數(shù)據(jù)的實時處理,較低的數(shù)據(jù)延遲需要由高性能的計算單元和高帶寬的網(wǎng)絡(luò)通信,數(shù)據(jù)可輕易在不同內(nèi)核中共享。
2、軟件架構(gòu)實時性解讀
這里主要是指運行于硬件SOC、MCU上的軟件架構(gòu)平臺。從底之上主要包括底層驅(qū)動軟件實時性(I/O代碼驅(qū)動層面),涉及I/O函數(shù)層級、基本代碼塊、機器指令碼、操作狀態(tài)碼等。中間層軟件實時性(中間件調(diào)度)包括SOC層級、CPU層級、GPU層級、MCU層級的系統(tǒng)管理、算法接口、AI處理等。頂層通信層面則是針對環(huán)域控的整個車內(nèi)外網(wǎng)絡(luò)、云端服務(wù)等。
除開如上運算單元外,配置軟件實時性監(jiān)控、檢測和刪除錯誤的互連事務(wù)也是必不可少的環(huán)節(jié)。如總線監(jiān)控器、內(nèi)存訪問結(jié)果監(jiān)控、虛擬控制臺實時性監(jiān)測、系統(tǒng)CPU入侵檢測等。
5.總結(jié)
本文對自動駕駛系統(tǒng)中的內(nèi)存分配、多異構(gòu)芯片、實時性進行全面較準(zhǔn)確地分析,這將有助于大家更準(zhǔn)確地理解車輛控制系統(tǒng)中的各項性能指標(biāo)進行完整的解讀,并能夠?qū)隙鞔嬖趩栴}進行系統(tǒng)、全面的分析。其目的是使得開發(fā)出的智能駕駛產(chǎn)品功能更可靠,性能表現(xiàn)更優(yōu),真正降低交通事故的概率和產(chǎn)生的危害。
審核編輯 :李倩
-
汽車電子
+關(guān)注
關(guān)注
3027文章
7990瀏覽量
167411 -
編程語言
+關(guān)注
關(guān)注
10文章
1947瀏覽量
34845 -
自動駕駛
+關(guān)注
關(guān)注
784文章
13892瀏覽量
166687
原文標(biāo)題:自動駕駛系統(tǒng)設(shè)計的那些底層軟件開發(fā)中的重點解讀
文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論