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