[發明專利]使用監控線程對二進制翻譯程序執行流程動態監控的方法有效
| 申請號: | 200910054325.7 | 申請日: | 2009-07-02 |
| 公開(公告)號: | CN101593125A | 公開(公告)日: | 2009-12-02 |
| 發明(設計)人: | 管海兵;梁阿磊;李曉龍;倪志晨;鄧海鵬 | 申請(專利權)人: | 上海交通大學 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45;G06F9/46 |
| 代理公司: | 上海交達專利事務所 | 代理人: | 毛翠瑩 |
| 地址: | 200240*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 使用 監控 線程 二進制 翻譯 程序 執行 流程 動態 方法 | ||
技術領域
本發明涉及一種使用監控線程對二進制翻譯程序執行流程動態監控的方法, 用于獲得二進制程序執行時的各種動態剖分信息,為分析二進制可執行代碼程 序的執行流程和優化二進制翻譯系統工作提供有效的支持。本發明屬于并行化 計算和二進制翻譯領域。
背景技術
動態二進制翻譯技術作為進程級虛擬機領域中重要的組成部分,在近年來的 計算機學術交流活動中,頻頻被提及和討論。通常,動態二進制翻譯技術采用 “兩次翻譯過程”和“緩存翻譯后代碼”的技術來提高性能。所謂兩次翻譯, 是指先從由源機器指令組成的源基本塊,翻譯為由系統自行描述的中間語言組 成的中間基本塊,再由中間基本塊翻譯為目標機器上的可執行基本塊。這種技 術的優點在于:在不需要任何高級語言源代碼信息的條件下,可以通過直接加 載源機器端的二進制可執行程序,并利用自身對不同機器指令集架構(ISA)的 翻譯功能,得到目標機器端的可執行二進制程序。更重要的是,這種技術將翻 譯和執行工作合并在一次程序過程中全部完成,有別于傳統靜態編譯方法的先 編譯后執行的二次過程。但是,動態二進制翻譯系統的這種優勢也為其獲取程 序剖分信息(profile)帶了很大的困難,即很難在動態執行的過程中保證獲取完 備的剖分信息。而剖分信息正是用于程序執行流程監控的數據依據。
剖分信息(profile)是指那些在程序執行過程中,對程序性能起著重要影響 作用的信息。這些信息的獲取,不僅可以用來判別程序編寫的優劣,還能夠為 優化工作提供量化的依據。在二進制程序中,程序是用以跳轉指令或系統調用 結束的基本塊(Basic?Block)為度量和劃分的原子單位的,故完備的剖分信息就 包括每個基本塊的執行次數;基本塊間的跳轉次數;分支預測的錯誤預測率; 指令緩存、數據緩存的缺失命中率等。這些信息可以用來確定代碼翻譯的質量 和指導各種優化策略的有效實施。現有的統計這些剖分信息的方法包括插樁 (Instrumentation)和采樣(Sampling)兩種技術。
●插樁(Instrumentation)這種方式通過在代碼中插入探針指令來采集和程 序執行行為、特性有關的數據信息。這種方法借助軟件實現,雖然硬件 成本較低,但是會引入額外的開銷。
●采樣(Sampling)這種方式以一定的時間間隔對程序運行的相關數據進 行數據收集,而不需要對程序進行修改,但是這種方法獲得的剖分信息 具有一定的誤差,而且需要借助硬件實現,成本較高。
在傳統的動態二進制翻譯系統中,為了節省硬件成本和降低系統對特定硬件 的依賴程度,通常選用插樁的方法進行剖分信息的收集,但是考慮到系統的性 能,僅插入了開銷較小的、只能用來統計基本塊執行次數的探針指令來完成熱 路徑的構建工作。所謂熱路徑,即當二進制程序中的某些基本塊按照一定的順 序頻繁的被執行時,這樣的程序路徑被稱為熱路徑。當這樣的基本塊或者路徑 被檢測出來時,通過將這條路徑上的各個基本塊整合在一起就可以加快程序的 執行速度,原因就在于減少了跳轉指令執行的次數,這樣不僅提高了指令緩存 的命中率,也提高了處理器流水工作機制的效率。為了獲取更多的剖分信息使 超級塊的構造更加有依據性,傳統方法只能通過頻繁的回調統計函數實現,而 該策略會使系統的執行效率變慢數十倍以上。(請參見文獻:Valgrind:A framework?for?heavyweight?dynamic?binary?instrumentation,PLDI?conference, 2007)。
隨著多核處理器的不斷發展,并行計算由于其更高的性能被越來越多的應用 在各種場景中,這主要歸結于硬件級線程的概念,即不同的線程可以工作在不 同的CPU處理器核心上。在動態二進制翻譯系統中,由于二進制程序收集剖分 信息的工作并不與原有動態二進制翻譯系統“兩次翻譯”與執行的流程存在過 多的依賴,因此,可以嘗試使用硬件級線程的方法來更高效地完成剖分信息獲 取的工作。但是,這種思路在已有的國內外研究和實踐工作領域中并未有類似 的實現案例。
發明內容
本發明的目的在于針對現有技術的不足,提供一種使用監控線程對二進制翻 譯程序執行流程動態監控的方法,具有軟件開銷小,硬件成本低的優良特性, 能完整準確的獲取監控信息,進一步提升動態二進制翻譯系統的運行時性能。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海交通大學,未經上海交通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910054325.7/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:多種存儲器的管理方法、系統及控制器
- 下一篇:指套式操作設備





