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

鉗形電流表的使用方法和注意事項
電阻測試儀的使用方法和注意事項
DC電源模塊的使用注意事項和安全規范

評論