1.ECU整合趨勢(shì)和虛擬化的力量
隨著信息娛樂(lè)和 ADAS 等新功能被添加到汽車(chē)中,每輛車(chē)中安裝的 ECU 數(shù)量也在增長(zhǎng)。越來(lái)越多的 ECU 會(huì)產(chǎn)生一些不良副作用:設(shè)備管理復(fù)雜、重量和功耗只是其中的一部分。
為了阻止這種趨勢(shì),汽車(chē)行業(yè)正在尋求從獨(dú)立的面向功能的方法轉(zhuǎn)變?yōu)榧煞椒ǎ渲袉蝹€(gè) ECU 提供多種功能。
圖 1:ECU 整合旨在從單功能 ECU 方法(左)轉(zhuǎn)向多功能 ECU(右)
在嘗試向多功能 ECU 遷移時(shí),會(huì)出現(xiàn)新的挑戰(zhàn):每個(gè)功能可能需要在不同的操作系統(tǒng)上運(yùn)行,并且 CPU、內(nèi)存和外圍設(shè)備等硬件資源必須在它們之間共享。此外,需要確保功能之間的隔離和“不受干擾”。
幸運(yùn)的是,這正是虛擬化技術(shù)幫助提供基礎(chǔ)架構(gòu)的地方,該基礎(chǔ)架構(gòu)允許多個(gè)“客戶(hù)”操作系統(tǒng)(也稱(chēng)為虛擬機(jī)或 VM)以安全、獨(dú)立和隔離的方式執(zhí)行。
2. 汽車(chē)以太網(wǎng)
ECU 中實(shí)現(xiàn)的功能變得越來(lái)越復(fù)雜,需要靈活的互連和更高的數(shù)據(jù)傳輸速率。汽車(chē)以太網(wǎng)正在成為車(chē)載網(wǎng)絡(luò)解決方案的首選。以太網(wǎng)具有巨大的未來(lái)潛力,因?yàn)樗峁┝藥挕⑤p型布線(xiàn)(例如非屏蔽單雙絞線(xiàn))、龐大的生態(tài)系統(tǒng)和可靠的軟件基礎(chǔ)設(shè)施。此外,交換式以太網(wǎng)提供了極大的可擴(kuò)展性,時(shí)間敏感網(wǎng)絡(luò) (TSN) 擴(kuò)展提供了改進(jìn)的同步、低延遲和可靠性。
當(dāng)多功能 ECU 使用虛擬化來(lái)運(yùn)行多個(gè)操作系統(tǒng)時(shí),一種常見(jiàn)的解決方案是處理各種 VM,就好像它們連接到同一個(gè)物理以太網(wǎng)網(wǎng)絡(luò)一樣。
如果只有一個(gè)以太網(wǎng)接口,則管理程序提供了在 VM 之間共享接口的機(jī)制,并且通常在軟件中實(shí)現(xiàn)虛擬網(wǎng)絡(luò)交換機(jī)。由于這種軟件實(shí)現(xiàn)會(huì)產(chǎn)生開(kāi)銷(xiāo),因此硬件制造商正在為其設(shè)備添加硬件輔助虛擬化功能,以便在無(wú)需管理程序干預(yù)的情況下實(shí)現(xiàn)共享。
在這篇博客中,我們描述了一個(gè)概念驗(yàn)證 (POC),我們?cè)谄渲斜容^了讓兩個(gè) VM 共享一個(gè)集成硬件交換機(jī)和一個(gè)軟件交換機(jī)的好處。
三、硬件說(shuō)明
此 POC 基于車(chē)載計(jì)算機(jī) 3 板 (VC3),配備 Renesas R-Car H3 SoC 和 TSN 以太網(wǎng)交換機(jī) (R-Switch2)。以太網(wǎng)交換機(jī)在通過(guò) PCIe 連接到 R-Car 的 FPGA 上實(shí)現(xiàn)。
R-Switch2 有四個(gè)外部端口(1G-T1 連接器)和一個(gè)內(nèi)部端口(命名為 CPU 端口或 tsngw)暴露給 R-Car SoC 中的 CPU。R-Switch2 和 CPU 之間的接口允許在 R-Car 上運(yùn)行的操作系統(tǒng)成為以太網(wǎng)幀的來(lái)源或目的地。
R-Switch2 和 CPU 之間的數(shù)據(jù)通過(guò)多個(gè)隊(duì)列進(jìn)行交換。每個(gè)隊(duì)列由一個(gè)描述符列表表示,這些描述符駐留在主內(nèi)存中,由運(yùn)行在 CPU 上的軟件設(shè)置:
RX 隊(duì)列中的描述符告訴 R-Switch2 硬件應(yīng)將 CPU 的傳入以太網(wǎng)幀復(fù)制到主存儲(chǔ)器的哪個(gè)位置
TX 隊(duì)列中的描述符告訴 R-Switch2 硬件 CPU 將其希望發(fā)送的幀放置在何處,以便硬件知道應(yīng)該從主存儲(chǔ)器中的哪個(gè)位置獲取數(shù)據(jù)
如果在 CPU 上運(yùn)行管理程序,則可以將隊(duì)列分配給特定的客戶(hù)操作系統(tǒng)以進(jìn)行獨(dú)立的數(shù)據(jù)處理。
四、軟件說(shuō)明
對(duì)于這個(gè)概念證明,選擇 Xen v4.14 作為管理程序。開(kāi)發(fā)了額外的前端和后端驅(qū)動(dòng)程序來(lái)共享 R-Switch2 硬件,作為典型 Xen 橋接網(wǎng)絡(luò)的替代方案(更多信息在這里)。Xen(也稱(chēng)為域)上運(yùn)行著兩個(gè)客戶(hù)操作系統(tǒng):
dom0:一個(gè)特權(quán)域,可以直接訪(fǎng)問(wèn)大多數(shù) R-Car 外圍設(shè)備和 R-Switch
domU:無(wú)特權(quán)的域,不能直接訪(fǎng)問(wèn)任何特定的硬件設(shè)備。但是,domU 可以訪(fǎng)問(wèn)兩個(gè) R-Switch2 隊(duì)列(一個(gè) RX 和一個(gè) TX)
下面的圖 2 顯示了這種配置。
圖 2 此 POC 的軟件配置
前端和后端驅(qū)動(dòng)程序之間的通信僅用于以下情況:
在初始化時(shí),前端發(fā)送請(qǐng)求以保留兩個(gè) R-Switch2 隊(duì)列(1 TX 和 1 RX)
在運(yùn)行時(shí),前端使用此通信通道通過(guò)后端通知 R-Switch2 硬件 TX 隊(duì)列已準(zhǔn)備好進(jìn)行處理。每當(dāng) domU 的 RX 隊(duì)列中有新數(shù)據(jù)可用時(shí),后端也使用它來(lái)通知前端
請(qǐng)注意,在為 domU 設(shè)置隊(duì)列所需的初始握手之后,前端驅(qū)動(dòng)程序只需直接訪(fǎng)問(wèn)由 R-Switch2 硬件處理的相同隊(duì)列即可傳輸和接收幀,而來(lái)自 dom0 端的干預(yù)最少。與其他用于虛擬機(jī)的 SW 網(wǎng)絡(luò)解決方案相比,這是一個(gè)優(yōu)勢(shì),其中 domU 的幀通常與后端驅(qū)動(dòng)程序共享,并由 dom0 中的網(wǎng)絡(luò)堆棧重新路由。
例如,當(dāng) domU 想要通過(guò)網(wǎng)絡(luò)傳輸一些幀時(shí),使用共享 R-Switch2 解決方案所涉及的步驟如下(如圖 3 所示):
domU 將數(shù)據(jù)寫(xiě)入自己的 TX 隊(duì)列
domU 通知 R-Switch2 硬件(通過(guò)后端)隊(duì)列已準(zhǔn)備好進(jìn)行處理
R-Switch2 硬件直接從 domU 隊(duì)列中獲取數(shù)據(jù)
圖 3 來(lái)自 domU 的數(shù)據(jù)包傳輸示例(R-Switch2 共享)
另一方面,當(dāng)使用 Xen 橋接網(wǎng)絡(luò)時(shí),從 domU 傳輸幀所涉及的步驟是(參見(jiàn)圖 4):
domU 將要傳輸?shù)臄?shù)據(jù)寫(xiě)入內(nèi)存
內(nèi)存與 dom0 中的后端共享
后端將數(shù)據(jù)包轉(zhuǎn)發(fā)到 Xen Bridge
數(shù)據(jù)包通過(guò) dom0 網(wǎng)絡(luò)堆棧路由,最終到達(dá)網(wǎng)絡(luò)接口驅(qū)動(dòng)程序
驅(qū)動(dòng)程序?qū)?shù)據(jù)包的數(shù)據(jù)復(fù)制到 NIC 隊(duì)列中
網(wǎng)卡從內(nèi)存中訪(fǎng)問(wèn)數(shù)據(jù)
圖 4 來(lái)自 domU(Xen 橋接網(wǎng)絡(luò))的數(shù)據(jù)包傳輸示例
5.性能與比較
系統(tǒng)的性能是通過(guò)生成來(lái)自/到 domU 的恒定比特率 UDP 流并同時(shí)測(cè)量 dom0 和 domU 上的 CPU 負(fù)載來(lái)測(cè)量的。
即使網(wǎng)絡(luò)幀是從 domU 傳輸/接收的,我們也測(cè)量 dom0 的 CPU 使用率的原因是,我們希望在軟件中實(shí)現(xiàn)虛擬交換機(jī)的情況下看到更高的負(fù)載,因?yàn)?domU 數(shù)據(jù)包需要重新路由通過(guò) dom0 的網(wǎng)絡(luò)堆棧。
然后將此 POC 中實(shí)施的解決方案與 Xen 橋接網(wǎng)絡(luò)進(jìn)行比較,這是一種常見(jiàn)的軟件解決方案,可實(shí)現(xiàn)虛擬交換機(jī)并允許在同一網(wǎng)絡(luò)上連接多個(gè)虛擬機(jī)。
結(jié)果如圖 5 和圖 6 所示,證實(shí)了我們的假設(shè)。使用 R-Switch2 共享方案時(shí),dom0 CPU 負(fù)載比 Xen Bridged 網(wǎng)絡(luò)低約 50%,而 domU CPU 負(fù)載幾乎相同。
圖 5 domU 接收測(cè)試期間的 CPU 負(fù)載(1 Gbps 的恒定數(shù)據(jù)速率)
圖 6 domU 傳輸測(cè)試期間的 CPU 負(fù)載(600 Mbps 的恒定數(shù)據(jù)速率)
R-Switch2 情況下的剩余 dom0 CPU 負(fù)載是由來(lái)自/到 domU 的事件通知引起的,即當(dāng)有新的傳入數(shù)據(jù)可用時(shí),dom0 通知 domU,或者 dom0 將來(lái)自 domU 的請(qǐng)求轉(zhuǎn)發(fā)給 R-Switch2 HW 以開(kāi)始處理 TX隊(duì)列。
對(duì)于像 Xen Bridge 這樣的基于軟件的交換機(jī),dom0 有額外的任務(wù)來(lái)路由 domU 數(shù)據(jù)包,這可能成為系統(tǒng)的瓶頸。在我們的解決方案中,domU 數(shù)據(jù)包的路由由集成網(wǎng)絡(luò)交換機(jī)在硬件中完成,從而釋放 CPU 資源并提高兩個(gè)域之間的隔離度。
六,結(jié)論
集成的硬件交換機(jī)可以簡(jiǎn)化軟件交換機(jī)甚至是冗余的,從而為應(yīng)用程序處理而不是內(nèi)務(wù)管理任務(wù)釋放資源。評(píng)估表明,使用硬件輔助虛擬化可節(jié)省超過(guò) 50% 的寶貴 CPU 資源。事實(shí)證明,瑞薩 R-Switch2 支持多個(gè)接收和傳輸隊(duì)列在通過(guò)虛擬化整合 ECU 的環(huán)境中具有明顯優(yōu)勢(shì)。此功能與對(duì) L2 和 L3 路由和 TSN 擴(kuò)展的硬件支持一起,使其成為實(shí)現(xiàn)未來(lái) ECU 的完美選擇。
審核編輯:郭婷
-
cpu
+關(guān)注
關(guān)注
68文章
10890瀏覽量
212429 -
交換機(jī)
+關(guān)注
關(guān)注
21文章
2648瀏覽量
99889 -
應(yīng)用程序
+關(guān)注
關(guān)注
37文章
3286瀏覽量
57787
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論