本發(fā)明涉及到實(shí)時(shí)嵌入式系統(tǒng)應(yīng)用,尤其涉及一種模擬置換指令的單核命中率提取方法。
背景技術(shù):
1、wcet,即最壞情況執(zhí)行時(shí)間,是系統(tǒng)性能和可靠性評估的關(guān)鍵參數(shù)之一。它表示在考慮了所有可能出現(xiàn)的情況后,目標(biāo)程序在特定硬件平臺(tái)上執(zhí)行所需的最長時(shí)間。在如今的嵌入式系統(tǒng)中使用多核層級(jí)架構(gòu)的cpu架構(gòu)可以大大提高計(jì)算效能,然而在性能提升的同時(shí),對于wcet的分析難度也大大提升。對于實(shí)時(shí)系統(tǒng)中,對于系統(tǒng)的響應(yīng)時(shí)間尤為關(guān)注,例如機(jī)載、車載情況都需要程序在規(guī)定時(shí)間內(nèi)及時(shí)響應(yīng),若任務(wù)未在規(guī)定時(shí)間內(nèi)響應(yīng)可能導(dǎo)致嚴(yán)重的后果,故wcet的分析需要可靠并接近真實(shí)值。
2、計(jì)算wcet的方法通常分為靜態(tài)分析和動(dòng)態(tài)分析兩種。
3、靜態(tài)分析方法是一種基于程序代碼的技術(shù),通過分析程序中的指令、循環(huán)、條件分支等元素,來計(jì)算程序在最不利的情況下的執(zhí)行時(shí)間。一些常見的靜態(tài)分析方法包括流分析、底層分析、估值與計(jì)算。
4、與此不同,動(dòng)態(tài)分析方法則在程序?qū)嶋H運(yùn)行時(shí)進(jìn)行分析,通過監(jiān)測程序的執(zhí)行情況和性能指標(biāo)來計(jì)算程序的最壞情況執(zhí)行時(shí)間wcet。動(dòng)態(tài)分析方法的常見示例包括時(shí)間片計(jì)時(shí)、硬件性能計(jì)數(shù)器及模擬器。
5、這兩種方法提供了不同的角度來評估程序的性能特征,靜態(tài)分析主要基于程序代碼的結(jié)構(gòu)和屬性,而動(dòng)態(tài)分析則關(guān)注程序的實(shí)際運(yùn)行行為和性能指標(biāo)。
6、在目前的多核wcet分析方法中存在以下問題:
7、共享緩存的命中率分析難:在多核系統(tǒng)中,可能會(huì)存在共享緩存,通常是二級(jí)緩存或三級(jí)緩存,多個(gè)核心共享。在wcet分析中,需要考慮共享緩存中的指令命中率,因?yàn)樗鼤?huì)影響到多個(gè)核心的性能。如果多個(gè)核心同時(shí)競爭相同的緩存資源,可能會(huì)導(dǎo)致性能下降。
8、多核系統(tǒng)每個(gè)核心的訪存流獲取難度大:多核系統(tǒng)中,每個(gè)核心的訪存流程復(fù)雜,因?yàn)樾枰紤]并行性、層次化的緩存結(jié)構(gòu)、共享資源、緩存一致性和性能優(yōu)化多方面因素。在靜態(tài)分析中計(jì)算wcet時(shí),針對多核處理器核心,時(shí)序信息分析至關(guān)重要。特別是在處理器的緩存建模過程中,詳細(xì)建模程序中的緩存訪問行為以確定緩存命中和緩存不命中情況,以及估算與緩存訪問相關(guān)的額外延遲是關(guān)鍵。緩存對程序執(zhí)行時(shí)間的影響在現(xiàn)代計(jì)算機(jī)系統(tǒng)中尤為顯著,因此這個(gè)階段的任務(wù)是確保精準(zhǔn)的確定指令的緩存命中情況。
9、然而,實(shí)際情況中,某些程序可能在單個(gè)核心上運(yùn)行,而其他核心上的具體運(yùn)行情況則是未知的。這種情況下,對多核層級(jí)架構(gòu)中共享緩存區(qū)域的指令命中情況進(jìn)行分析變得非常復(fù)雜,增加了分析的不確定性和難度,有時(shí)甚至可能導(dǎo)致該程序的wcet分析無法進(jìn)行下去。
10、公開號(hào)為cn115658344a,公開日為2023年01月31日的中國專利文獻(xiàn)公開了一種面向嵌入式系統(tǒng)實(shí)時(shí)任務(wù)的cpu共享緩存劃分方法,其特征在于,所述cpu共享緩存劃分方法應(yīng)用于多核多線程實(shí)時(shí)任務(wù)緩存行為預(yù)測,以制定嵌入式實(shí)時(shí)系統(tǒng)共享緩存動(dòng)態(tài)劃分策略,具體包括以下步驟:
11、針對多核多線程實(shí)時(shí)緩存任務(wù),構(gòu)建緩存行為預(yù)測模型,以執(zhí)行緩存行為預(yù)測過程;
12、確定所述緩存行為預(yù)測模型的輸入?yún)?shù),所述輸入?yún)?shù)包括緩存服務(wù)狀態(tài)遷移矩陣、初始緩存狀態(tài)參數(shù);其中,所述緩存服務(wù)狀態(tài)遷移矩陣由mn×mn個(gè)遷移概率元素構(gòu)成;所述初始緩存狀態(tài)參數(shù)為嵌入式系統(tǒng)處于初始狀態(tài)時(shí),正常執(zhí)行任務(wù)時(shí)各共享緩存狀態(tài)參數(shù);
13、確定模型輸出參數(shù),所述模型輸出參數(shù)包括緩存使用率、緩存丟失率、進(jìn)程沖突概率;其中,所述緩存使用率為各實(shí)時(shí)任務(wù)平均占用緩存容量的百分比;所述緩存丟失率為平均每次緩存訪問失效的概率;所述進(jìn)程沖突概率包括實(shí)時(shí)任務(wù)進(jìn)程執(zhí)行過程中,由于實(shí)時(shí)任務(wù)自身失效而導(dǎo)致任務(wù)進(jìn)程間共享緩存訪問沖突概率,以及系統(tǒng)任務(wù)執(zhí)行過程中進(jìn)程訪問共享緩存引起的任務(wù)沖突概率;
14、基于所述模型輸出參數(shù)制定嵌入式實(shí)時(shí)系統(tǒng)共享緩存動(dòng)態(tài)劃分策略。
15、該專利文獻(xiàn)公開的面向嵌入式系統(tǒng)實(shí)時(shí)任務(wù)的cpu共享緩存劃分方法,提出的緩存行為預(yù)測模型,實(shí)現(xiàn)對緩存丟失率、使用率以及進(jìn)程間緩存沖突等多種緩存行為進(jìn)行預(yù)測,引入實(shí)時(shí)任務(wù)線程權(quán)重向量的共享緩存劃分方法,可改善在多核多線程環(huán)境中嵌入式系統(tǒng)的cpu緩存資源利用率。但是,不能模擬多核處理器中的緩存干擾,無法分析共享緩存層級(jí)的指令命中率,因而不能為實(shí)時(shí)系統(tǒng)提供精確和可靠的性能評估。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明為了克服上述現(xiàn)有技術(shù)的缺陷,提供一種模擬置換指令的單核命中率提取方法,本發(fā)明通過模擬處理器中的緩存干擾并模擬lru置換,精確的分析共享緩存層級(jí)的指令命中率,從而能夠?yàn)閷?shí)時(shí)系統(tǒng)提供精確和可靠的性能評估。
2、本發(fā)明通過下述技術(shù)方案實(shí)現(xiàn):
3、一種模擬置換指令的單核命中率提取方法,其特征在于,包括以下步驟:
4、s1、對處理器緩存進(jìn)行建模,得到緩存模型;
5、s2、對待分析程序進(jìn)行流分析,以確定指令流,并按類型分類每條指令,并預(yù)測每條指令在緩存模型中的位置;
6、s3、確定核心訪存頻率用于lru替換模擬,通過預(yù)設(shè)的頻率插入空指令模擬其他核心訪問共享緩存時(shí)的干擾,得到單核命中率模擬結(jié)果。
7、所述步驟s1中,對處理器緩存進(jìn)行建模具體包括:
8、s11、確定處理器的緩存層級(jí)結(jié)構(gòu);
9、s12、確定緩存的數(shù)據(jù)存放方式為全相聯(lián)、組相聯(lián)或直接映射;
10、s13、確定各層級(jí)緩存的大小。
11、所述步驟s11中,確定處理器的緩存層級(jí)結(jié)構(gòu)具體是指通過硬件特性查詢工具或處理器的技術(shù)手冊獲取緩存層級(jí)數(shù)據(jù),用數(shù)據(jù)結(jié)構(gòu)描述共享緩存和每個(gè)核心的私有緩存。
12、所述數(shù)據(jù)結(jié)構(gòu)具體是指圖或樹。
13、所述步驟s12中,全相聯(lián)具體是指主存中的一個(gè)地址被映射進(jìn)任意緩存行中。
14、所述步驟s12中,組相聯(lián)具體是指主存和緩存都分組,主存中一個(gè)組內(nèi)的塊數(shù)與緩存中的分組數(shù)相同,組間采用直接映射,組內(nèi)采用全相聯(lián)映射。
15、所述步驟s12中,直接映射具體是指內(nèi)存地址被映射到的緩存行是固定的。
16、所述步驟s13中,確定各層級(jí)緩存的大小是指通過處理器的技術(shù)手冊或硬件特性查詢工具獲得。
17、所述步驟s2中,確定指令流具體是指通過性能分析工具獲取指令流。
18、所述步驟s3中,插入空指令具體是指在指令流中,根據(jù)預(yù)設(shè)的頻率,加入模擬其他核心訪問共享緩存的空指令以模擬干擾。
19、所述步驟s3中,其他核心訪問共享緩存的模式和頻率通過應(yīng)用場景或工作負(fù)載特性確定。
20、本發(fā)明所述lru是指緩存替換策略,用于確定在緩存已滿的情況下哪些數(shù)據(jù)塊被替換掉,以為新的數(shù)據(jù)塊騰出空間;是將最近最少被訪問的數(shù)據(jù)塊視為最有可能被替換的候選。
21、本發(fā)明所述共享緩存是指計(jì)算機(jī)體系結(jié)構(gòu)設(shè)計(jì)中的緩存類型,用于多核處理器系統(tǒng)中,在這種架構(gòu)中,多個(gè)處理器核心共享同一級(jí)別的緩存,通常是二級(jí)緩存或三級(jí)緩存。
22、本發(fā)明所述控制流圖是指表示程序控制流的圖,其中每個(gè)節(jié)點(diǎn)代表一個(gè)基本塊,即一組連續(xù)的指令,沒有進(jìn)入或離開的分支,每個(gè)邊代表可能的流程轉(zhuǎn)移。
23、本發(fā)明所述硬件特性查詢工具是指cpu檢測軟件。
24、本發(fā)明所述性能分析工具是指動(dòng)態(tài)內(nèi)存檢測工具。
25、本發(fā)明的基本原理如下:
26、處理器緩存的層級(jí)方式建模:
27、確定處理器的緩存層級(jí)結(jié)構(gòu)與緩存大小,在傳統(tǒng)的多核處理器中通常為多層級(jí)結(jié)構(gòu),即針對每一個(gè)核心有自己的私有緩存,針對所有核心有一個(gè)共享緩存,其中對于私有緩存的訪問只有與其綁定的核心能夠訪問,而共享緩存則作為共享資源可由所有核心訪問。得到以上信息后便可建立抽象緩存的模型,用于模擬每條指令在緩存上面的生命活動(dòng)情況。
28、緩存的數(shù)據(jù)存放方式建模:
29、確定數(shù)據(jù)存放方式,在后續(xù)的程序流分析得到指令流后,可通過地址映射規(guī)則將每一條指令映射到對應(yīng)的緩存條目中,用于在新指令到來時(shí)執(zhí)行存入緩存、替換緩存或判別是否存在于緩存的操作。
30、待分析程序流分析
31、確定待分析程序的指令流,獲取到達(dá)緩存的指令順序用于后續(xù)的指令命中率分析。
32、指令解碼,將代碼解碼為對應(yīng)的指令序列;
33、構(gòu)建控制流圖,通過靜態(tài)代碼分析構(gòu)建程序的控制流圖,控制流圖表示程序中的各個(gè)控制流程、條件語句和循環(huán)結(jié)構(gòu)。
34、確定其他核心訪存頻率用于lru替換模擬
35、假定其他核心以穩(wěn)定持續(xù)的頻率訪問共享緩存,通過任務(wù)類型假定其他核心的訪存頻率,通過在得到指令流中按照頻率插入空指令搶占共享緩存的方式來模擬其他核心訪問共享緩存時(shí)對待分析核的干擾。
36、在二級(jí)緩存層級(jí)上使用lru算法,在其他核心運(yùn)行情況未知的情況下,通過維護(hù)一個(gè)抽象的二級(jí)緩存表,假設(shè)其他核心對二級(jí)緩存的訪存行為在程序運(yùn)行時(shí)間內(nèi)是均勻穩(wěn)定的,并且其運(yùn)行的指令對于被分析核心上運(yùn)行是互斥的,以時(shí)鐘脈沖的形式持續(xù)輸出,以模擬訪問二級(jí)緩存的情況,這樣的空指令可通過lru算法替換出原緩存上所存指令,達(dá)到其他核心對待分析核心的影響。通過對抽象的二級(jí)緩存表執(zhí)行l(wèi)ru算法,獲得被分析核上運(yùn)行指令的命中情況,從而完成指令的命中分類。
37、本發(fā)明的有益效果主要表現(xiàn)在以下方面:
38、1、本發(fā)明,s1、對處理器緩存進(jìn)行建模,得到緩存模型;s2、對待分析程序進(jìn)行流分析,以確定指令流,并按類型分類每條指令,并預(yù)測每條指令在緩存模型中的位置;s3、確定核心訪存頻率用于lru替換模擬,通過預(yù)設(shè)的頻率插入空指令模擬其他核心訪問共享緩存時(shí)的干擾,得到單核命中率模擬結(jié)果,較現(xiàn)有技術(shù)而言,通過模擬處理器中的緩存干擾并模擬lru置換,精確的分析共享緩存層級(jí)的指令命中率,從而能夠?yàn)閷?shí)時(shí)系統(tǒng)提供精確和可靠的性能評估。
39、2、本發(fā)明,通過抽象多核處理器核心,模擬其他核心對待分析核心的干擾情況,并采用脈沖模擬lru置換算法的方式,針對共享緩存層級(jí)進(jìn)行操作,能夠精確的分析共享緩存層級(jí)的指令命中率。
40、3、本發(fā)明,適用于多核層級(jí)緩存架構(gòu)下的lru策略的脈沖模擬置換指令命中率提取,能夠解決多核架構(gòu)下單核命中率分析困難的問題。
41、4、本發(fā)明,通過模擬處理器中的緩存干擾并模擬lru置換,能夠有效分析單核在多核環(huán)境中的執(zhí)行情況,從而為實(shí)時(shí)系統(tǒng)提供更精確的性能評估。
42、5、本發(fā)明,通過在多核環(huán)境中對單核執(zhí)行情況進(jìn)行深入的理解和分析,從而為wcet分析提供更準(zhǔn)確的數(shù)據(jù)支持。
43、6、本發(fā)明,能夠準(zhǔn)確捕捉在多核環(huán)境下的單核命中率,并對不同核心間的干擾進(jìn)行模擬,為性能優(yōu)化提供有力的支持。