期刊VIP學術指導 符合學術規范和道德
保障品質 保證專業,沒有后顧之憂
摘 要:當今社會,航空航天行業以及汽車行業,需要減小嵌入式電子設備的尺寸、重量和功率。此外,這兩個行業都需要增加嵌入式電子設備的運算能力并降低數據傳輸延遲。多核處理器的出現允許在高性能計算機的同一片上系統(SoC)中集成多個應用程序。在飛行控制計算機和自動駕駛等應用場景,多核處理器健壯性使用取決于解決與處理器資源爭用處理方式。若出現一個內核中的資源會影響其他內核,從而影響算法的運行,可能導致災難性事件。本文對可能的干擾路徑進行了分析,并提出了一種使用頁面著色技術減輕低級緩存爭用的方法。
關鍵詞:多核處理器;L2 緩存
引言
關鍵軟件的開發通常采用容錯設計來實現系統目標。一般情況下,若使用單核計算機(SCP),每個處理器都有其高速緩存存儲器、主存儲器和與其他計算機隔離的I/O。但由于半導體電子設備的物理限制,散熱問題阻止了SCP計算能力的提高。多核架構提供了一種通過向片上系統(SOC)添加更多內核來實現擴展處理能力的方法。一個應用程序可以拆分為多個線程,在不同的內核中執行每個線程,或者兩個不同的應用程序可以并行運行。
算法的并行執行并不意味著內核是獨立運行的,因為在多核處理器架構中,一些處理器資源是共享的。但是,處理器資源的共享就可能導致資源爭用,從而導致關鍵任務時序異常。多核處理器的提供了一種使用高性能計算機開發集成架構的方法。在一個SoC中,兩個不同的應用程序并行運行,減少了線路可更換單元(LRU)或電子控制單元(ECU)的數量,從而減少了布線和功耗。目前已有機構向該行業提供文件和指導,明確多核處理器使用的配置、列出內核之間共享的資源、確定防止總線爭用的方法、可能的緩解措施以及最關鍵需要保護的任務[1]。本文介紹了四核處理器中的干擾路徑分析和低級緩存(LLC)的分區方案。緩存著色技術使用ARMv8-A53處理器實現。
1 干擾路徑分析
干擾路徑分析是解決緩存干擾的常用方法之一。此分析通過對所有處理器共享資源的識別,將干擾分類為可接受、可容忍或不可接受。可接受和可容忍的爭用不會導致可能影響系統確定性的延遲。不可接受的情況需要制定緩解計劃以防止災難性事件發生[2]。
在某些架構中,由于內核和資源(如共享LLC緩存)之間的物理連接,可能無法避免干擾路徑。在這種情況下,緩解措施應使用時間劃分或其他機制來減少爭用,以最小化相互訪問的影響。
高速緩存是現代處理器的重要組成部分,介于處理器和主存儲器之間。然而,高速緩沖存儲器也增加了時序方面的不確定性。當微處理器需要使用緩存中的指令或數據時,稱為緩存命中,可以最大限度地減少讀取時間。另一方面,當微處理器需要訪問的數據或指令不在緩存中時,稱為緩存未命中,從主內存中讀取數據會增加執行時間。緩存狀態對WCET工具和方法來說是一個挑戰,因為它需要對下一個處理階段和緩存狀態進行預測。程序切換或中斷可能導致緩存未命中,并額外的執行時間來更新主內存將新數據塊加載到內存中[3]。
2 緩存著色技術
大量的多核處理器架構不僅提供L1緩存,而且還提供所有互連內核的共享緩存L2。必須將第二級緩存列為干擾路徑,并最小化內核干擾。排除或最小化相鄰內核引發的緩存未命中,創建緩存分區。在安全關鍵系統中,盡量不使用共享緩存。緩存著色技術使用集合關聯緩存,并控制內核僅訪問為它們保留的緩存。著色技術旨在使共享緩存表現得像私有緩存,通過區分在不同內核上運行的軟件使用的數據和指令,將緩存分成各個互不干擾的區域來減少緩存中的干擾[4]。頁面著色創建一組可以隔離的內存區域,防止相同的LLC索引被不同的內核重用。內存管理單元(MMU)用于將虛擬地址映射到與特定顏色相關的物理地址中。
為驗證緩存著色技術,設計了一個應用場景。構建四核處理器A53,核心零中執行算法來測量干擾和WCET改進,并使剩余三個核心使用中斷訪問內存,強制競爭二級緩存。我們使用緩存著色技術,將二級緩存分為八種顏色,核心零的執行五個應用程序,重點是數學運算、自主飛行和尋路算法,占用五中顏色,另外三個核心占用剩余三種顏色。在核心零中創建基線來測量時序干擾。試驗證明,使用緩存著色技術后,系統在核心零中的運行效率提升了55%。
3 試驗結果分析
本試驗展示了四核處理器中的干擾路徑分析,明確了共享緩存是一種需要確保確定性的資源。從共享緩存的角度來看,使用頁面著色技術創建L2緩存的分區后提供了系統確定性。試驗突出了WCET中緩存爭用的影響以及如何使用頁面著色提高系統確定性。
通過對比使用頁面著色技術前后其他三個核心對核心零的干擾,證明頁面著色技術適用于安全關鍵系統中緩存競爭場景。從程序設計的角度來看,內存的分段是透明的,可以使用MMU進行內存保護,限制應用程序的訪問。
當系統內存容量較小時,不適合使用頁面著色技術,該技術會使原本并不充裕的內存空間變得更加緊張。另外,用于IO空間尋址或執行核間通訊的共享內存時也存在問題,緩存分區可能會占用IO內存區域,或者導致只有一個內核負責管理對外圍設備的訪問。
參考文獻:
[1] Agirre I, Abella J, Azkarate-askasua M. On the tailoring of CAST-32A certification guidance to real COTS multi-core architectures[D]. IEEE international symposium on industrial embedded systems,2017 12th:1-8.
[2] Boniol F, Pagetti C. Identification of multi-core interference[D]. IEEE 19th international symposium on high assurancesystems engineering,2019:98-106.
[2] Sheikh SZ.Energy-efficient realtime scheduling on multicores: a novel approach to model cache contention[J]. ACM Trans. Embed. Comput. Syst,19:4.
[4] Domingues RP, Bezerra JDM, Hirata CM.Design recommendations for the development of airborne multi-core systems[D].IEEE/AIAA 34th digital avionics systems conference,2015:1–32.
推薦閱讀:科技館場館智慧化建設的探討