软件定义汽车:本质并行化的有效平台
軟件定義汽車:本質(zhì)并行化的有效平臺(tái)
Software-defined automobiles: An efficient platform for essential parallelization
我們是否正處在一個(gè)關(guān)鍵的關(guān)頭,在這個(gè)行業(yè)如何推進(jìn)軟件定義的汽車?隨著汽車功能的增加,認(rèn)證和合規(guī)變得越來越困難,一種方法是繼續(xù)在車輛的嵌入式系統(tǒng)中添加多個(gè)CPU以獲得更多的功能,并依靠更強(qiáng)大的CPU和多核處理的優(yōu)點(diǎn)。
另一方面,有些人會(huì)說,是時(shí)候把多個(gè)CPU壓縮成一個(gè)單板的超級(jí)計(jì)算機(jī)了。單臺(tái)計(jì)算機(jī)的進(jìn)步是否允許我們消除所有這些發(fā)動(dòng)機(jī)控制單元(ecu)的多重性并合并到一臺(tái)計(jì)算機(jī)中?
可以肯定地說,今天的車輛是多種計(jì)算機(jī)。
蘋果聯(lián)合創(chuàng)始人史蒂夫·喬布斯曾經(jīng)說過:“處理器行業(yè)的發(fā)展方向是增加越來越多的核心,但沒有人知道如何編程這些東西。我是說兩個(gè),是的。四,不是真的。通過構(gòu)建問題并理解它,我們可以很好地利用多核系統(tǒng)。這不是問題。問題是使用多核來解決單個(gè)問題,單個(gè)進(jìn)程。這就是史蒂夫·喬布斯所暗示的。
所以答案是多核處理是肯定的——如果我們對(duì)此很聰明的話。
今天對(duì)更多的多核用例有著強(qiáng)烈的需求。我們現(xiàn)在有了自主連接的電氣共享(ACES)運(yùn)動(dòng),驅(qū)動(dòng)著更復(fù)雜的電氣/電子(E/E)架構(gòu)。有了ACES,我們可以看到ecu功能的進(jìn)一步電氣化和整合。即使對(duì)添加多個(gè)核心和更高的計(jì)算能力(如高CPU頻率)有了更高的理解,工程師仍然不容易實(shí)現(xiàn)這樣的功能。正如史蒂夫·喬布斯所說,你不能只是把更多的CPU投入其中。你需要有結(jié)構(gòu)。
汽車工業(yè)要解決的問題是并行執(zhí)行一個(gè)并行應(yīng)用程序。也就是說,有多少應(yīng)用程序可以本地化到同一個(gè)ECU上,這樣獨(dú)立的車輛功能可以并行執(zhí)行?
The era of software-defined vehicles
軟件定義車輛的時(shí)代
軟件定義的車輛是什么?它包含什么?我們可以談?wù)勲娮?電子功能,這些功能曾經(jīng)是純機(jī)械的,現(xiàn)在更機(jī)電一體化。所有這些功能都依賴于定位和通信以及所需的控制算法。
當(dāng)我們說本地化時(shí),我們指的是傳感器和執(zhí)行器在各自的物理位置。通信是關(guān)于多路復(fù)用和優(yōu)先共享資源,如CAN或以太網(wǎng)。來自傳感器的通信被發(fā)送到ECU,ECU執(zhí)行控制算法,然后將命令發(fā)送給執(zhí)行器。通過將傳感器和執(zhí)行器與計(jì)算能力相結(jié)合,工程師可以在不增加硬件的情況下增加軟件定義車輛的特征集。并聯(lián)功能的例子包括動(dòng)力轉(zhuǎn)向、電動(dòng)車窗和助力制動(dòng)——所有這些都可以同時(shí)完成。
適當(dāng)劃分的優(yōu)點(diǎn)
對(duì)應(yīng)用程序進(jìn)行分區(qū)的價(jià)值是什么?有兩個(gè)主要優(yōu)點(diǎn)。一個(gè)是性能,它通常基于計(jì)算包的并行化和識(shí)別最小的數(shù)據(jù)集來高效地通信和同時(shí)執(zhí)行計(jì)算任務(wù)。第二個(gè)好處是由于功能安全或網(wǎng)絡(luò)安全原因而分離。這種分離是在不影響、影響或訪問軟件的其他部分的情況下完成的。
理解分區(qū)對(duì)軟件執(zhí)行的影響是很重要的。并行進(jìn)程可以通過在單個(gè)內(nèi)核上進(jìn)行時(shí)間切片來實(shí)現(xiàn),但這不是本文的重點(diǎn)。在不同的內(nèi)核上并行運(yùn)行多個(gè)分區(qū)的應(yīng)用程序可以減少CPU時(shí)間的阻塞。其他引起隱藏延遲的資源,如內(nèi)存訪問(總線等待狀態(tài)),或可能導(dǎo)致干擾的資源,如MCU外圍設(shè)備和通信總線訪問,則主張?jiān)诜蛛x/本地化內(nèi)存中工作數(shù)據(jù)集。
AUTOSAR–首選的ECU平臺(tái)
對(duì)于現(xiàn)代ECU的開發(fā),AUTOSAR方法是顯而易見的選擇。汽車原始設(shè)備制造商和他們的一級(jí)合作伙伴已經(jīng)使用它超過10年了,它已經(jīng)成功地應(yīng)用于所有類型的車輛。AUTOSAR方法是系統(tǒng)車輛開發(fā)的一部分(圖1)。
Figure 1: The AUTOSAR methodology is part of the systematic vehicle development.
系統(tǒng)開發(fā)工具以鏈的形式連接,從高級(jí)需求到實(shí)現(xiàn)細(xì)節(jié),再到系統(tǒng)一致性的驗(yàn)證規(guī)則。通過這種方式,當(dāng)系統(tǒng)接近最終實(shí)現(xiàn)時(shí),用戶可以生成和生成更精細(xì)的系統(tǒng)視圖。AUTOSAR定義的數(shù)據(jù)交換格式、ECU提取和ECU診斷提取將ECU系統(tǒng)設(shè)計(jì)與ECU設(shè)計(jì)連接起來。
AUTOSAR交換格式攜帶有關(guān)ECU通信和應(yīng)用程序的精確信息,稱為軟件組件(SWC),具有執(zhí)行需求和數(shù)據(jù)交換細(xì)節(jié)。AUTOSAR方法描述了將系統(tǒng)定義轉(zhuǎn)換為ECU配置的過程。生成過程接受所提供的輸入,將其與配置的ECU硬件的資源相結(jié)合,生成滿足軟件組件需求的定制配置。現(xiàn)在配置的嵌入式軟件平臺(tái)(稱為基本軟件,或BSW)支撐軟件組件,提供操作系統(tǒng)(OS)和必要的資源管理,從而實(shí)現(xiàn)ECU應(yīng)用程序的高效部署。
到目前為止所描述的平臺(tái)是AUTOSAR經(jīng)典平臺(tái),建立于近15年前。整個(gè)嵌入式操作系統(tǒng)在整個(gè)嵌入式操作系統(tǒng)的基礎(chǔ)上得到了有效的規(guī)范和運(yùn)行。AUTOSAR classic平臺(tái)可用于更高的ASIL,并針對(duì)深度嵌入式系統(tǒng),這是本文的重點(diǎn)。
適用于現(xiàn)代互聯(lián)汽車的AUTOSAR自適應(yīng)
AUTOSAR自適應(yīng)平臺(tái)是為了滿足ACES不斷增長的需求而引入的。它是為信息娛樂系統(tǒng)、ADAS系統(tǒng)和其他高要求的計(jì)算應(yīng)用程序而定義的。實(shí)施AUTOSAR方法(經(jīng)典或自適應(yīng)平臺(tái))本質(zhì)上是可互操作的,以簡化車輛系統(tǒng)開發(fā)并確保一致性。
多年來不斷增加的多分區(qū)支持
隨著汽車工業(yè)將多核MCU設(shè)計(jì)的進(jìn)步用于嵌入式應(yīng)用,AUTOSAR增加了在異構(gòu)和同質(zhì)環(huán)境下將計(jì)算負(fù)載分配到多核上的機(jī)制。
AUTOSAR經(jīng)典平臺(tái)已經(jīng)發(fā)展了它的多分區(qū)支持,并且可以從AUTOSAR 4.0開始支持多處理。通過這個(gè)版本,SWCs可以分布在多核上,主要由支持內(nèi)核間通信的操作系統(tǒng)和運(yùn)行時(shí)環(huán)境(RTE)支持。在autosar4.2中,引入了并行化模式,使BSW組件能夠分布在不同的內(nèi)核上,并支持模式管理來同步內(nèi)核的啟動(dòng)和關(guān)閉。autosar4.4中的MCAL多核分發(fā)允許有效地訪問核心的硬件資源。AUTOSAR 4.5包括多核上的BSW分布,主要集中在通信模塊及其特性上。
AUTOSAR capability highlights
Application distribution
AUTOSAR功能亮點(diǎn)
應(yīng)用程序分發(fā)
應(yīng)用程序分發(fā)(圖2)最初是在AUTOSAR 4.0中支持的,經(jīng)過多年的逐步改進(jìn)。這一部分已在生產(chǎn)和道路使用中得到證明。使用AUTOSAR指定的核心間通信允許用戶創(chuàng)建混合關(guān)鍵性系統(tǒng),其中不同關(guān)鍵性的swc可以被放置到不同的分區(qū)或核心中。操作系統(tǒng)支持通過RTE進(jìn)行通信,該操作系統(tǒng)要求分散在不同核心上的SWC之間的通信作為跨核通信充分最小化;如果用戶發(fā)送過多的小消息,則會(huì)使系統(tǒng)過載。在一個(gè)分區(qū)中使用BSW是一個(gè)障礙,因此必須解決這個(gè)問題。
Figure 2. Application distribution: This pattern offers limited cross-core communication but is required for ASIL mixed-criticality applications.
唯一訪問資源的核心
在這個(gè)場景中,核心只能訪問一個(gè)資源(圖3)。它可以是單個(gè)核心,也可以是對(duì)資源進(jìn)行獨(dú)占訪問的BSW分區(qū),這使得它類似于單個(gè)核心用例。不需要額外的同步。通信的完整性和對(duì)資源的訪問是安全的。
Figure 3: Core with sole access to a resource: This is a single-core use case, no additional synchronization is required.
使用主衛(wèi)星進(jìn)行虛擬化訪問
另一種模式是使用主衛(wèi)星實(shí)現(xiàn)的虛擬化訪問(圖4)。這里,BSW引入了一個(gè)靜態(tài)代理,為每個(gè)核心上的SWCs提供了一個(gè)復(fù)制的API。衛(wèi)星上的API可能會(huì)比master減少,然后用戶必須恢復(fù)到這些API在RTE上的初始通信,這仍然是完全受支持的。
Figure 4: Virtualized access with a master satellite:Direct API access removes cross-core latency and cross-core synchronization is available in the background.
直接訪問本地核心/分區(qū)上的API提供了調(diào)用的快速返回,并消除了由跨核心RTE表示引起的跨核心/分區(qū)延遲。這對(duì)于類型控制循環(huán)是很好的,因?yàn)橛脩舨幌朐诘却龑?duì)遠(yuǎn)程核心的調(diào)用返回時(shí)鎖定應(yīng)用程序。BSW主站與衛(wèi)星之間的跨核數(shù)據(jù)同步將在后臺(tái)進(jìn)行。后臺(tái)同步在主站和衛(wèi)星之間的數(shù)據(jù)一致性中引入了延遲,因此通信頻率和定義的數(shù)據(jù)集部分可以在工程中分布。
只讀模式的內(nèi)存訪問
最后,當(dāng)用戶擁有軟件組件時(shí),依賴于相同的數(shù)據(jù)但運(yùn)行在不同的核心上,他們需要解決這兩個(gè)不同組件之間的同步需求(圖5)。通過讓一個(gè)消費(fèi)者通過單一數(shù)據(jù)訪問從發(fā)布服務(wù)器讀取數(shù)據(jù),工程師就可以保證一致性。使用跨核心分區(qū)讀取時(shí),必須確保用戶不會(huì)修改數(shù)據(jù)。
Figure 5: Memory access with read only pattern: The consumer reads data from the published memory. With the cross-partition read, no modification to the data is needed.
把它們放在一起
我們?nèi)绾卧贏UTOSAR系統(tǒng)和開發(fā)流程中應(yīng)用這一點(diǎn)呢?這就是AUTOSAR和工具提供明顯好處的地方。應(yīng)用ECU設(shè)置,將其視為單個(gè)核心工作流,然后導(dǎo)入以生成支持所需服務(wù)的配置。
然后用戶定義分布在MCU核心上的分區(qū)。基于在應(yīng)用程序級(jí)別進(jìn)行的通信分區(qū),swc被明智地分配到分區(qū)上。在評(píng)估配置之后,工具將生成基本系統(tǒng),以確保正確訪問資源。
實(shí)際上,應(yīng)用BSW分區(qū)可以提供哪些改進(jìn)?在一個(gè)客戶示例中,一個(gè)多核MCU在單個(gè)核心上執(zhí)行BSW,SWCs分布在多個(gè)核心上,BSW MCU的核心負(fù)載大約為98%。為了減輕過載,對(duì)BSW進(jìn)行了分區(qū),并將模塊移動(dòng)以支持FlexRay通信總線到具有可用容量的核心。與FlexRay總線上的通信緊密相關(guān)的swc也被移到了同一個(gè)核心。
移動(dòng)FlexRay BSW模塊和相關(guān)的SWC提供了必要和正確的分區(qū)。這使得BSW堆芯負(fù)載下降到45%。改進(jìn)后的BSW和SWC分布使MCU的組合處理器負(fù)載總體上降低了2%。因此,帶有西門子特定增強(qiáng)功能的AUTOSAR架構(gòu)為核心負(fù)載平衡提供了支持。
結(jié)論
汽車工業(yè)正朝著一個(gè)集中計(jì)算體系結(jié)構(gòu)的方向發(fā)展,以滿足客戶和新法規(guī)的要求。這些體系結(jié)構(gòu)很大程度上依賴于最新的多核mcu來實(shí)現(xiàn)必要的計(jì)算能力。
有效利用可用硬件資源的軟件需求是軟件設(shè)計(jì)車輛的一個(gè)組成部分。西門子等AUTOSAR解決方案為運(yùn)行在多核MCU上的嵌入式系統(tǒng)提供了一個(gè)自然的選擇,用于部署需要不同資源依賴性的功率過程,同時(shí)保持對(duì)應(yīng)用和集成的關(guān)注。
對(duì)于分配并行化資源的應(yīng)用程序和正確分配共享資源所需的活動(dòng),采用知識(shí)淵博的工程實(shí)踐是很重要的。盡管使用有效且功能強(qiáng)大的軟件進(jìn)行并行化,用戶仍需要保持其嵌入式系統(tǒng)工程能力。為了獲得成功,工程師必須為其特定的應(yīng)用程序維護(hù)高效的分區(qū)和智能開發(fā)過程。
總結(jié)
以上是生活随笔為你收集整理的软件定义汽车:本质并行化的有效平台的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 外部NORFlash是第一个以硬件为基础
- 下一篇: 如何在小型pcb的移动设备上获得更好的无