動態(tài)二進制翻譯后端代碼熱路徑的重組優(yōu)化.pdf_第1頁
已閱讀1頁,還剩78頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、二進制翻譯(Binary Translation)是指在沒有二進制文件的源代碼的情況下,將一個平臺的二進制程序翻譯到另外一個平臺上運行的方法。動態(tài)二進制翻譯就在翻譯的同時并且執(zhí)行代碼。而動態(tài)二進制翻譯器可以做很多優(yōu)化和探測,所以動態(tài)二進制翻譯為解決代碼遺留,代碼移植以及構建分布式虛擬計算環(huán)境等問題提供了一個良好的解決方法,因此在近年來得到了越來越廣泛的關注和研究。
  本文主要研究在動態(tài)二進制翻譯中研究程序的后端代碼在內(nèi)存布局上跟

2、程序的特性(超級塊,跳轉(zhuǎn)等方面)之間的關系,以及對程序的性能的影響。有效地收集運行時的profiling信息,利用這些信息對程序進行優(yōu)化,以及檢測內(nèi)存布局是如何影響程序超級塊的質(zhì)量以及其他特性的,研究內(nèi)容主要包括:利用profiling對熱路徑進行識別與監(jiān)測,利用動靜結合框架對內(nèi)存布局進行重組,以及在動態(tài)執(zhí)行中的代碼復制(Code Replication)對超級塊生成質(zhì)量進行優(yōu)化,并通過實驗數(shù)據(jù)分析上述方法對系統(tǒng)所帶來的特性變化。

3、>  Profiling是指對程序運行時信息的統(tǒng)計和收集。傳統(tǒng)的動態(tài)二進制翻譯器采用的profiling方法分為三種:基于基本塊、基于跳轉(zhuǎn)邊、基于路徑。不同的方法有不同的特性,基于基本塊的方法實現(xiàn)復雜度最低,但是收集的信息是最少的,而基于路徑的方法實現(xiàn)的復雜度最高,但是收集的信息卻是最多的。
  熱路徑是指程序中頻繁執(zhí)行的代碼塊序列。熱路徑需要通過一定的預測算法來識別。動態(tài)二進制翻譯器通常采用基本塊或邊的執(zhí)行信息來預測熱路徑。本文

4、在CrossBit平臺上利用基于基本塊的執(zhí)行信息預測熱路徑的方法來預測熱路徑,并基于此算法得出的熱路徑進行分析。
  超級塊是指將熱路徑上的基本塊合并成具有單一入口和多個出口的指令序列。熱路徑的構造實際操作來說就是超級塊的構造。超級塊可以減少因基本塊的結束而帶來的上下文切換,也可以給代碼優(yōu)化帶來更廣闊的優(yōu)化空間。程序在運行過程中從超級塊內(nèi)部跳出的概率越小意味著超級塊的性能越好。所以超級塊的長度越長越好,而數(shù)量越少越好。代碼復制是超

5、級塊的構造過程中利用復制共享基本塊以生成質(zhì)量更好的超級塊的方法。它可以很好的提高超級塊的質(zhì)量和數(shù)量等指標。
  動靜結合的動態(tài)二進制翻譯器是指運行完程序一次記錄下來程序的運行信息,然后離線的對內(nèi)存布局進行整理優(yōu)化,再重新加載到內(nèi)存中運行優(yōu)化后的代碼。這樣可以充分利用profiling信息進行離線的優(yōu)化,在重新加載階段獲取性能的大幅提升。本文中的動靜結合框架是首先利用邊的profiling信息來檢測熱路徑,并執(zhí)行完程序然后按照熱度在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論