一種精確計算任務高速緩存wcet的分析方法
【技術領域】
[0001] 本發明涉及一種實時系統任務最差情況執行時間(WCET:Worst_CaseExecution Time)的分析方法,尤其涉及一種精確計算任務高速緩存WCET的分析方法。
【背景技術】
[0002] 與通用計算機系統不同,實時系統的結果只有在規定的時間范圍內完成時才是有 效的,如果沒有在規定的時間范圍內完成時,輕則降低系統的性能,重則引起災難性的后 果,比如飛機投彈、核泄漏。因此,對于實時系統,事先獲取系統中每個任務的最差情況的執 行時間WCET有著特別重要的意義。事實上,WCET分析是實時系統任務調度及可調度性檢 測的前提,也為分析系統性能的瓶頸提供支撐。
[0003] 實時任務的WCET估值決定了為每個任務分配的CPU時間。WCET分析結果越是高 估,需要為每個任務分配保留的CPU時間就越多,從而使本來是夠用的計算資源因為高估 而導致資源不夠用這樣的誤判。所以,精確地估算任務的WCET具有非常重要的意義。
[0004] 高速緩存是CPU和內存之間的一個高速數據緩存區域,是提高處理器執行速度的 一種常用手段。為提高高速緩存的調換效率,在高速緩存和內存之間按照"塊"進行調換, 一個塊是一個固定大小的數據單元,比如64個字節,通常包括多個數據或者多條指令。以 直接映射方式為例,其CPU的訪主存地址可以表示為:
【主權項】
1. 一種精確計算任務高速緩存WCET的分析方法,其特征在于:包括以下步驟: 步驟一:產生基本塊的迭代范圍; 步驟二:計算高速緩存的丟失次數: 程序指令以塊的形式連續存放在內存中,以塊為單位從內存調入到高速緩存,當CPU 訪問一條指令時,如果該指令不在高速緩存,CPU將該指令調入高速緩存,然后執行該指 令; 對任一高速緩存塊,為該高速緩存塊建立一個隊列,該隊列成員為循環體中所有映射 到該高速緩存塊的指令塊; 步驟2. 1 :計算循環體高速緩存塊的最大丟失次數:對對應于一個高速緩存塊的所有 指令塊,按照從小到大順序進行排隊,指令塊X比指令塊y小,其定義為:如果指令塊X的最 小迭代范圍區間下限B1不大于指令塊y的最小迭代范圍區間下限a 2,同時,如果X. a1=y. a2, 則指令塊x的最小迭代范圍區間上限不大于指令塊y的最小迭代范圍區間上限; 其中指令塊的迭代范圍為該指令塊所涉及的基本塊迭代范圍的集合;一個指令塊中的 最小迭代范圍[a,b]是指:a為該指令塊中所有迭代范圍的下限的最小值;如果有一個迭代 范圍[c, d]滿足c=a,那么一定有b彡d ; 對高速緩存隊列中的指令塊的迭代范圍進行遍歷處理,直至隊列中的指令塊為空,處 理方法為:形成一個最小迭代范圍[e,f];其中最小迭代范圍[e,f]的產生方法為:下限e 為高速緩存隊列第一個指令塊迭代范圍的最小范圍區間的下限,上限f取①和②中的最小 值:①為高速緩存隊列中所有指令塊迭代范圍區間上限的最小值;②為高速緩存隊列中所 有指令塊迭代范圍區間中大于e的下限最小值-1 ;隊列每遍歷一次之后,需要將該高速緩 存隊列的指令塊按照從小到大的順序重新進行排隊; 按照從小到大的順序,對高速緩存隊列中的所有指令塊的迭代范圍進行處理,如果該 指令塊的迭代范圍包括最小迭代范圍[e,f],那么將該指令塊迭代范圍減去范圍[e,f],同 時對這樣的指令塊進行計數;如果這樣的指令塊只有一個,那么,在[e,f]的迭代范圍里, 只有這個指令塊執行,因而其引起的丟失次數為1 ;如果在[e,f]的迭代范圍里,有count 個指令塊(count>l)執行,那么,這些指令塊在[e,f]范圍的每一次迭代都將發生丟失,從 而對應于指令塊的迭代范圍[e,f]的丟失次數為:(f-e+l)* C〇unt ; 步驟2. 2 :對于非循環體指令,所有執行的指令塊的丟失次數均為1 ; 計算高速緩存的丟失次數:一個高速緩存塊的丟失次數為所有這些丟失次數的累加; 當針對一個高速緩存塊的指令塊的丟失次數計算完成之后,就可以計算整個高速緩存的丟 失次數;整個高速緩存的丟失次數等于其中所有高速緩存塊丟失次數的累加; 步驟三:計算高速緩存的WCET:即一個運行在高速緩存處理器上實時任務的WCET,就 是按照高速緩存全部命中計算出的WCET值加上高速緩存的丟失次數與時間懲罰的乘積。
2. 根據權利要求1所述的一種精確計算任務高速緩存WCET的分析方法,其特征在于: 所述步驟一包括以下步驟: 步驟I. 1 :構建程序的控制流圖CFG ; 步驟1. 2 :依據控制流圖CFG,對賦值節點、匯聚節點和分支節點分別進行不同的操作, 產生三種節點分別對應的變量的值范圍; 步驟1. 3 :依據步驟1. 2中變量的值范圍,根據公式
產生基本塊的迭代范圍; 其中,表示基本塊B在其相對應歸納變量j的值范圍[m,η]的迭代 范圍,表示該迭代范圍的下限,siip(i:ocpto^e(5^:;;..))表示該迭代 范圍的上限,stride (j)表示歸納變量j的跨度,其跨度為每次循環迭代歸納變量j的增量。
【專利摘要】一種精確計算任務高速緩存WCET的分析方法,包括以下步驟:首先產生基本塊的迭代范圍,其次根據基本塊的迭代范圍計算出指令塊的迭代范圍,從計算出的指令塊的迭代范圍中找出所有指令塊的最小迭代范圍,依據指令塊的最小迭代范圍計算其丟失次數并去除此最小迭代范圍,最后根據一個個最小迭代范圍計算出高速緩存總的最大丟失次數從而計算出任務高速緩存的WECT。本發明方法能夠明顯提高針對高速緩存的WCET估算精度。
【IPC分類】G06F9-44
【公開號】CN104679521
【申請號】CN201510109979
【發明人】姬孟洛, 高翔, 舒云星, 秦杰, 刁文廣, 陶榮, 李雅萍
【申請人】洛陽理工學院
【公開日】2015年6月3日
【申請日】2015年3月13日