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