嵌入式系統(tǒng)受益于多核處理器的使用,具有更高的吞吐量和更好的尺寸、重量和功耗(SWaP)。具有異構(gòu)處理器內(nèi)核的處理器增加了將應(yīng)用程序與每種內(nèi)核類(lèi)型的功能相匹配的能力,從而進(jìn)一步提高了吞吐量和 SWaP。多核處理器的優(yōu)勢(shì)伴隨著軟件架構(gòu)復(fù)雜性的增加,以最大限度地提高處理器內(nèi)核的利用率。對(duì)于實(shí)時(shí)系統(tǒng),尤其是安全關(guān)鍵型系統(tǒng),由于處理器內(nèi)核之間共享的資源爭(zhēng)用,多核處理器對(duì)嚴(yán)格的確定性提出了重大挑戰(zhàn)。這種挑戰(zhàn)隨著異構(gòu)內(nèi)核的增加而增加,因?yàn)樽顗那闆r的執(zhí)行時(shí)間可能因應(yīng)用程序執(zhí)行的內(nèi)核而異。
為了更詳細(xì)地探討這種權(quán)衡,請(qǐng)考慮恩智浦? i.MX 8QuadMax應(yīng)用處理器中的異構(gòu)內(nèi)核。i.MX 8QuadMax 具有四個(gè) Arm? Cortex-A53 內(nèi)核和兩個(gè) Cortex-A72? 內(nèi)核,通過(guò)將每個(gè)應(yīng)用任務(wù)的性能要求與不同內(nèi)核的性能容量相匹配,實(shí)現(xiàn)功耗優(yōu)化。與 A53 內(nèi)核相比,A72 內(nèi)核提供大約兩倍的性能,但功耗更高。
為了實(shí)現(xiàn)多核解決方案的吞吐量和 SWaP 優(yōu)勢(shì),軟件架構(gòu)需要支持可用處理器內(nèi)核的高利用率。必須支持所有多核功能,從啟用內(nèi)核的并發(fā)操作(相對(duì)于可用內(nèi)核在啟動(dòng)時(shí)被迫進(jìn)入空閑狀態(tài)或保持重置狀態(tài))到提供確定性負(fù)載平衡機(jī)制。軟件多處理架構(gòu)越靈活,系統(tǒng)架構(gòu)師實(shí)現(xiàn)高利用率的工具就越多。
軟件多處理架構(gòu)
與多處理器系統(tǒng)一樣,多核處理器上的軟件架構(gòu)可以根據(jù)內(nèi)核之間的共享和協(xié)調(diào)量進(jìn)行分類(lèi)。對(duì)于基于多核的系統(tǒng),最簡(jiǎn)單的軟件架構(gòu)是非對(duì)稱(chēng)多處理 (AMP),其中每個(gè)內(nèi)核獨(dú)立運(yùn)行,每個(gè)內(nèi)核都有自己的操作系統(tǒng)或虛擬機(jī)管理程序/來(lái)賓操作系統(tǒng)對(duì)。每個(gè)內(nèi)核運(yùn)行不同的應(yīng)用程序,在調(diào)度方面內(nèi)核之間很少或根本沒(méi)有有意義的協(xié)調(diào)。由于缺乏負(fù)載均衡、難以緩解共享資源爭(zhēng)用以及無(wú)法跨內(nèi)核執(zhí)行協(xié)調(diào)活動(dòng)(如全面內(nèi)置測(cè)試所需的活動(dòng)),這種解耦可能會(huì)導(dǎo)致利用率不足。
AMP的現(xiàn)代替代方案是對(duì)稱(chēng)多處理(SMP),其中單個(gè)操作系統(tǒng)控制所有資源,包括哪些應(yīng)用程序線程在哪些內(nèi)核上運(yùn)行。這種架構(gòu)易于編程,因?yàn)樗袃?nèi)核都“對(duì)稱(chēng)”訪問(wèn)資源,從而使操作系統(tǒng)能夠?qū)⑷魏尉€程分配給任何內(nèi)核。對(duì)于具有異構(gòu)內(nèi)核的處理器(如 8QuadMax i.MX),不知道應(yīng)用程序?qū)⒃谀姆N類(lèi)型的內(nèi)核上運(yùn)行可能會(huì)導(dǎo)致執(zhí)行時(shí)間范圍很長(zhǎng),從而顯著影響確定性性能。
直接解決了這個(gè)問(wèn)題,綁定多處理 (BMP) 是一種增強(qiáng)且受限的 SMP 形式,它將應(yīng)用程序的任務(wù)/線程靜態(tài)綁定到特定內(nèi)核。這種靜態(tài)綁定允許系統(tǒng)架構(gòu)師嚴(yán)格控制多個(gè)內(nèi)核的并發(fā)操作。
確保確定性行為
除了實(shí)現(xiàn)多核處理器的吞吐量和SWaP目標(biāo)外,安全關(guān)鍵型系統(tǒng)還需要為每個(gè)應(yīng)用保持可預(yù)測(cè)的最壞情況執(zhí)行時(shí)間(WCET)。使用 BMP 限制與應(yīng)用程序配對(duì)的內(nèi)核類(lèi)型是確保異構(gòu)系統(tǒng)中確定性行為的重要組成部分。確保確定性的其他技術(shù)是時(shí)間和空間分區(qū)以及管理共享資源的爭(zhēng)用。
在單核處理器中,通過(guò)在托管應(yīng)用程序之間對(duì)內(nèi)存空間進(jìn)行可靠分區(qū),可以在同一處理器上執(zhí)行多個(gè)安全關(guān)鍵型應(yīng)用程序。內(nèi)存空間分區(qū)將內(nèi)存的非重疊部分專(zhuān)用于在給定時(shí)間運(yùn)行的每個(gè)應(yīng)用程序,由處理器的內(nèi)存管理單元 (MMU) 強(qiáng)制執(zhí)行。通過(guò)使用時(shí)間分區(qū)可以進(jìn)一步增強(qiáng)確定性,時(shí)間分區(qū)將固定時(shí)間間隔(稱(chēng)為主幀)劃分為一系列固定的子間隔,稱(chēng)為分區(qū)時(shí)間窗口。為每個(gè)應(yīng)用程序分配一個(gè)或多個(gè)分區(qū)時(shí)間窗口,窗口的長(zhǎng)度和數(shù)量由應(yīng)用程序的 WCET 和所需的重復(fù)率驅(qū)動(dòng)。
多核干擾挑戰(zhàn)確定性
在多核環(huán)境中,可以有多個(gè)應(yīng)用程序跨不同內(nèi)核同時(shí)運(yùn)行。這些并發(fā)應(yīng)用程序都需要訪問(wèn)處理器的資源。每個(gè)處理內(nèi)核都有一些專(zhuān)用資源,但大多數(shù)資源在處理器內(nèi)核之間共享,包括內(nèi)存控制器、I/O、共享緩存和連接它們的內(nèi)部結(jié)構(gòu)。當(dāng)多個(gè)處理器內(nèi)核嘗試同時(shí)訪問(wèn)同一資源時(shí),會(huì)導(dǎo)致對(duì)這些共享資源的爭(zhēng)用。在安全關(guān)鍵型應(yīng)用(如航空電子設(shè)備)中,主要關(guān)注點(diǎn)是這種共享資源爭(zhēng)用如何導(dǎo)致在一個(gè)內(nèi)核上運(yùn)行的應(yīng)用程序干擾在另一個(gè)內(nèi)核上運(yùn)行的應(yīng)用程序,從而對(duì)確定性、服務(wù)質(zhì)量以及最終的安全性產(chǎn)生負(fù)面影響。
如果不加以緩解,共享資源爭(zhēng)用的影響可能會(huì)很大。僅檢查其中一個(gè)共享資源(DDR 內(nèi)存),人們可能會(huì)猜測(cè),當(dāng)另一個(gè)內(nèi)核嘗試訪問(wèn)同一內(nèi)存并且兩個(gè)內(nèi)核都運(yùn)行內(nèi)存受限的應(yīng)用程序時(shí),WCET 可能會(huì)加倍。實(shí)際上,由于共享資源仲裁和調(diào)度算法中的非線性行為,WCET 可以增加 8 倍,而不僅僅是 2 倍。嘗試訪問(wèn) DDR 內(nèi)存或爭(zhēng)用其他資源(如片上互連)的其他內(nèi)核可能會(huì)導(dǎo)致 WCET 增長(zhǎng)更顯著(圖 2)。
(圖 2:多核干擾的增長(zhǎng)速度快于內(nèi)核數(shù)量的增加速度。
多核干擾緩解
緩解多核干擾的一種方法是手動(dòng)計(jì)劃應(yīng)用程序,以最大程度地減少資源爭(zhēng)用。這種方法不會(huì)消除所有干擾,并且每當(dāng)修改任何單個(gè)應(yīng)用程序或添加新應(yīng)用程序時(shí),都需要重新測(cè)試和驗(yàn)證所有應(yīng)用程序。另一種方法是一次只安排一個(gè)多任務(wù)應(yīng)用程序運(yùn)行。任務(wù)之間仍會(huì)發(fā)生干擾,但不會(huì)干擾其他應(yīng)用程序。這種方法在具有異構(gòu)內(nèi)核的處理器上特別無(wú)效,因?yàn)椴煌瑑?nèi)核類(lèi)型的執(zhí)行時(shí)間會(huì)有所不同。
更通用的方法是讓 OS 管理共享資源爭(zhēng)用。與操作系統(tǒng)使用硬件 MMU 通過(guò)將不同的內(nèi)存區(qū)域分配給不同的應(yīng)用程序來(lái)實(shí)現(xiàn)空間分區(qū)的方式相同,操作系統(tǒng)可以基于每個(gè)核心為共享資源分配帶寬。解決操作系統(tǒng)中的多核干擾可為系統(tǒng)集成商提供有效、靈活且敏捷的解決方案。它還簡(jiǎn)化了新應(yīng)用程序的添加,而無(wú)需對(duì)系統(tǒng)架構(gòu)進(jìn)行重大更改,并減少了重新驗(yàn)證活動(dòng)。
航空電子設(shè)備中異構(gòu)內(nèi)核的解決方案示例
恩智浦 i.MX 8QuadMax應(yīng)用處理器包括四個(gè)共享1MB二級(jí)緩存的Arm Cortex-A53內(nèi)核和兩個(gè)共享另一個(gè)1MB二級(jí)緩存的Arm Cortex-A72內(nèi)核。該處理器還包括兩個(gè)用于卸載系統(tǒng)功能的Cortex-M4F內(nèi)核和兩個(gè)能夠運(yùn)行OpenCL,Vulkan和OpenVX視覺(jué)加速的GPU。i.MX 8的一個(gè)獨(dú)特功能是硬件資源分區(qū),其中系統(tǒng)控制器將外設(shè)和內(nèi)存區(qū)域提交到特定的客戶(hù)定義域中。域之間的任何通信都強(qiáng)制使用通過(guò)硬件消息傳遞單元運(yùn)行的消息傳遞協(xié)議。i.MX8QuadMax面向廣泛的應(yīng)用,包括工業(yè)HMI(人機(jī)界面)和控制、電子駕駛艙(eCockpit)、平視顯示器、樓宇自動(dòng)化和單板計(jì)算機(jī)。
Green Hill 的 INTEGRITY-178 tuMP? 多核 RTOS 是一個(gè)統(tǒng)一的操作系統(tǒng),可在 i.MX 8 中的所有 64 位處理器內(nèi)核上運(yùn)行,并支持 AMP、SMP 和 BMP 的同時(shí)組合。RTOS 的時(shí)變統(tǒng)一多處理 (tuMP) 方法為將安全關(guān)鍵型和安全關(guān)鍵型應(yīng)用移植、擴(kuò)展和優(yōu)化到多核架構(gòu)提供了最大的靈活性。INTEGRITY-178 tuMP 使用跨所有內(nèi)核運(yùn)行的時(shí)間分區(qū)內(nèi)核,該內(nèi)核允許應(yīng)用程序綁定到稱(chēng)為關(guān)聯(lián)組的一個(gè)或多個(gè)內(nèi)核組。如果需要,可以進(jìn)一步限制地緣組中應(yīng)用程序的每個(gè)任務(wù),使其在特定核心上運(yùn)行。對(duì)于 i.MX 8QuadMax 處理器,系統(tǒng)架構(gòu)師可以使用關(guān)聯(lián)組來(lái)確保給定應(yīng)用程序的任務(wù)僅在 Cortex-A72 內(nèi)核上執(zhí)行或僅在 Coretex-A53 內(nèi)核上執(zhí)行(圖 3)。?
(圖 3:使用關(guān)聯(lián)組,一個(gè)應(yīng)用程序綁定到兩個(gè) Cortex-A72 內(nèi)核,
而另外兩個(gè)應(yīng)用程序綁定到 Cortex-A53 內(nèi)核集。
INTEGRITY-178 tuMP直接解決多核干擾,包括帶寬分配和監(jiān)控(BAM)功能,已開(kāi)發(fā)到最嚴(yán)格的安全級(jí)別。BAM 功能監(jiān)視并強(qiáng)制實(shí)施從每個(gè)處理器核心到共享資源的帶寬分配。BAM 模擬基于硬件的高速率方法,以確保持續(xù)分配強(qiáng)制實(shí)施每個(gè)核心對(duì)共享資源的使用。BAM 在整個(gè)應(yīng)用程序的執(zhí)行時(shí)間窗口中平穩(wěn)地調(diào)節(jié)帶寬,從而允許同一執(zhí)行時(shí)間窗口中的其他應(yīng)用程序獲取其分配的共享資源部分。使用前面的內(nèi)存訪問(wèn)干擾示例,將 50% 的內(nèi)存帶寬分配給高關(guān)鍵性應(yīng)用程序會(huì)導(dǎo)致近乎恒定的 WCET,即使干擾內(nèi)核的數(shù)量增加,當(dāng)有多個(gè)干擾內(nèi)核時(shí),WCET 也會(huì)降低 8 倍(圖 4)。此功能可有效緩解多核干擾,大大降低集成和認(rèn)證風(fēng)險(xiǎn),同時(shí)還使集成商能夠獲得多核處理器的最大性能優(yōu)勢(shì)。
(圖 4:使用 BAM 將 50% 的共享資源
帶寬分配給關(guān)鍵應(yīng)用程序后,WCET 幾乎保持不變,
并且大大減少。
恩智浦 i.MX 8QuadMax為優(yōu)化航空電子設(shè)備和其他嵌入式實(shí)時(shí)系統(tǒng)中的SWaP提供了重要機(jī)會(huì)。Cortex-A72 和 Cortex-A53 內(nèi)核的組合使系統(tǒng)架構(gòu)師能夠強(qiáng)調(diào)性能或能效,以創(chuàng)建最佳的系統(tǒng)級(jí)解決方案。相應(yīng)的軟件架構(gòu)需要具有靈活性和控制力,以充分利用這些異構(gòu)應(yīng)用程序內(nèi)核,同時(shí)保持嚴(yán)格的確定性。結(jié)合使用親和組或其他形式的 BMP 的能力以及多核干擾緩解解決方案(如 BAM)相結(jié)合,8QuadMax i.MX 可在安全關(guān)鍵型應(yīng)用中有效使用。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19384瀏覽量
230494 -
嵌入式
+關(guān)注
關(guān)注
5087文章
19158瀏覽量
306446 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6861瀏覽量
123502
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論