語句在所述反 匯編文件F中對應的地址;否則,繼續(xù)讀取分析下一行直至文件F結(jié)束; 2. 2)判斷基本塊集合B中各基本塊的出口語句:從反匯編文件F第一行開始讀取一行 匯編代碼,判斷其是否為基本塊的出口語句,如果是,記錄該基本塊出口語句在所述反匯編 文件F中對應的地址;否則,繼續(xù)讀取分析下一行直至文件F結(jié)束; 2. 3)確定各基本塊范圍: 所述基本塊由所述入口語句到所述出口語句之間的匯編語句序列組成,確定各基本塊 的范圍之后,并對各基本塊依次標號為1、2、3......n,n多1 ;至此,獲得基本塊集合B。
3. 如權(quán)利要求1所述的基于分布函數(shù)的WCET快速估計方法,其特征在于:所述步驟3) 的具體過程是:根據(jù)劃分得到的基本塊、基本塊標號、基本塊入口語句對應的地址和出口語 句對應的地址,獲得各基本塊之間的關(guān)系,從而獲得匯編代碼的程序流圖; 確定各基本塊之間的關(guān)系主要是判斷各個基本塊之間是否可達,若可達則該基本塊之 間存在關(guān)系,否則不存在關(guān)系,其具體判斷方法如下: 3. 1)若基本塊i的出口語句為轉(zhuǎn)移語句,并且該轉(zhuǎn)移語句的目標地址等于基本塊j的 入口語句對應的地址,則i可以到達j; 3. 2)若基本塊i的出口語句為條件轉(zhuǎn)移語句,并且該出口語句對應的地址加4等于基 本塊k的入口語句對應的地址,則i可以到達k; 3. 3)若基本塊i的出口語句為無條件轉(zhuǎn)移語句,并且該出口語句對應的地址加4等于 基本塊k的入口語句對應的地址,則i可以到達k,但此時基本塊k在基本塊i、基本塊j之 后執(zhí)行; 3. 4)若基本塊i的出口語句不為轉(zhuǎn)移語句,并且該基本塊的出口語句對應的地址加4 等于基本塊m的入口語句對應的地址,則i可以到達m; 由此,便可確定各個基本塊之間的關(guān)系,并用數(shù)據(jù)結(jié)構(gòu)中基于鄰接表的有向圖進行描 述存儲,將各個基本塊作為有向圖中的各個節(jié)點,便得到程序流圖C。
4.如權(quán)利要求1所述的基于分布函數(shù)的WCET快速估計方法,其特征在于:所述步驟4) 的具體過程是: 4. 1)計算每條指令運行時間的期望值h和方差〇 / 根據(jù)計劃評審技術(shù)PERT,對每條DSP匯編指令運行時間用改進的計劃評審技術(shù)PERT模 擬得到其期望值和方差,即采用Perry-Greig期望值近似公式計算每條DSP指令運行時間 的期望值Ui,采用Person-Turkry方差近似公式計算每條DSP指令運行時間的方差〇/, 具體計算公式分別為: yi= 0. 630mj+0. 185 (bj+aj), 〇 0? 630(m廠屮)2+0. 185 [ 〇3廠1〇 2+ (&廠1〇2],
式中,h表示每條指令運行時間峰值,a,表示每條指令運行時間谷值,m,表示每條指令 運行時間的最可能值,根據(jù)實驗分析取 i取取值范圍為[1-N],N為基本塊指令 t 條數(shù); 4. 2)篩選并行指令 在所述基本塊中可能存在并行執(zhí)行的指令,需要對指令并行性進行分析,從而使得估 算的基本塊執(zhí)行時間更加準確,根據(jù)步驟4. 1)獲得的每條指令運行時間的期望值^和方 差〇 /,并結(jié)合指令并行情況,篩選得到最終參加指令疊加運算的指令信息,具體為: Fj=max(t" …,tk,…,t8), 其中,tk表示基本塊中每個并行執(zhí)行塊中第k條指令的執(zhí)行時間,k取值范圍為[1-8],因為在TIDSP中最多只能有8條指令并行執(zhí)行,max為取最大值操作,tk=Ak+2Sk,Ak為并 行執(zhí)行塊中第k條指令對應基本塊中指令的執(zhí)行時間的期望值,Sk為并行執(zhí)行塊中第k條 指令對應基本塊中指令的執(zhí)行時間的方差,F(xiàn)j表示基本塊中每個并行執(zhí)行塊的執(zhí)行時間,j 的取值范圍為[1-M],M表示基本塊中包含的并行執(zhí)行塊個數(shù); 4.3)計算基本塊執(zhí)行時間均值y和方差〇2,具體的計算公式分別為:
其中y」表示對應指令運行時間的期望值,。'表示對SFj的指令運行時間的方 差; 4. 4)獲得基本塊執(zhí)行時間T 求得基本塊執(zhí)行時間的均值和方差后,給定時間t,就可以計算P(T'<t),即基本塊執(zhí) 行時間不大于某一給定值的概率; 對于正態(tài)分布X:N(y,〇2),有如下事實: P(t^y+ 〇 ) =84. 15%, P(t彡y+2 〇 ) = 97. 7%, P(t彡y+3 〇 ) = 99. 85%〇 本實例取T=y+2 〇作為基本塊的執(zhí)行時間。
5. 如權(quán)利要求1所述的基于分布函數(shù)的WCET快速估計方法,其特征在于:所述步驟5) 的具體過程是,以基本塊執(zhí)行時間和執(zhí)行次數(shù)為權(quán)值的加權(quán)程序流圖Cw,其中基本塊執(zhí)行 次數(shù)需要事先人為估計確定,具體實現(xiàn)方法為:在程序流圖C的各個基本塊存儲結(jié)構(gòu)中添 加基本塊執(zhí)行時間和執(zhí)行次數(shù)信息,從而得到加權(quán)程序流圖Cw。
6.如權(quán)利要求1所述的基于分布函數(shù)的WCET快速估計方法,其特征在于:所述步驟6) 的具體過程是: 6. 1)利用深度優(yōu)先算法獲得加權(quán)程序流圖Cw的各條路徑,具體方法為: 6. 1. 1)確定程序流圖的起始點和終止點,具體判斷方法為:起始點為程序流圖的第一 個基本塊,即標號為1的基本塊;終止點為程序流圖的整個基本塊鄰接表中出度為0的基本 塊; 6. 1. 2)將起始點入棧,并設置為已訪問; 6. 1.3)判斷棧頂節(jié)點是否為終止點,若是則執(zhí)行步驟6. 1.4),否則執(zhí)行步驟6. 1.5); 6. 1.4)保存棧中元素,即為路徑包含的節(jié)點,執(zhí)行步驟6. 1.6); 6. 1. 5)查看棧頂節(jié)點有沒有后繼且未訪問的節(jié)點,若有則選擇其中一個并將其入棧, 并設置為已訪問,執(zhí)行步驟6. 1. 3),否則執(zhí)行步驟6. 1. 6); 6. 1.6)查看棧中元素是否為空,若是,則結(jié)束執(zhí)行,否則,將棧頂節(jié)點出棧,并設置為未 訪問,執(zhí)行步驟6. 1. 5); 6.2)計算每條路徑上的執(zhí)行時間,具體計算方法為:首先用每條路徑上各個基本塊的 執(zhí)行時間乘以其對應基本塊執(zhí)行次數(shù),然后累加求和,即得到該條路徑上的執(zhí)行時間; 6. 3)尋找所有路徑上執(zhí)行時間的最大值,即為程序的WCET。
7. 如權(quán)利要求1所述的基于分布函數(shù)的WCET快速估計方法,其特征在于:所述基本塊 的入口語句的判斷準則是:①程序的第一條語句;②條件轉(zhuǎn)移語句或者無條件轉(zhuǎn)移語句能 夠轉(zhuǎn)移到的語句;③緊跟在條件轉(zhuǎn)移語句后面的語句;④緊跟在無條件轉(zhuǎn)移語句后面的語 句; 若滿足上述條件之一,則判定為基本塊入口語句。
8. 如權(quán)利要求1所述的基于分布函數(shù)的WCET快速估計方法,其特征在于:所述基本塊 的出口語句的判斷準則是:①下一個基本塊入口語句之前的那條語句;②匯編代碼的終止 語句,即如果掃描分析的反匯編文件F中各行符合該兩個條件中的任一個,則認為其為基 本塊的出口語句。
【專利摘要】本發(fā)明提供了一種基于分布函數(shù)的WCET快速估計方法,通過對DSP工程目標代碼(out文件)進行反匯編獲得反匯編文件F;分析反匯編文件F,獲取劃分的各個基本塊,得到程序的基本塊集合B;辨識基本塊集合B中各基本塊之間的關(guān)系,構(gòu)建程序流圖C;計算每個基本塊的執(zhí)行時間T;將基本塊執(zhí)行時間T和基本塊執(zhí)行次數(shù)Ts作為權(quán)值得到加權(quán)的程序流圖Cw;分析加權(quán)的程序流圖Cw,獲得總權(quán)值最大的路徑,將最大的總權(quán)值作為程序最壞執(zhí)行時間WCET。解決了現(xiàn)有技術(shù)中需運行程序得到測試樣本的弊端和人工干預過多的問題以及傳統(tǒng)PERT技術(shù)中貝塔分布參數(shù)估計方法的不合理性問題。
【IPC分類】G06F9-44, G06F11-36
【公開號】CN104572103
【申請?zhí)枴緾N201510009091
【發(fā)明人】賴曉玲, 郭寶龍, 高翔, 閆允一, 王健, 張西南
【申請人】西安空間無線電技術(shù)研究所, 西安電子科技大學
【公開日】2015年4月29日
【申請日】2015年1月8日