The present invention provides a method and system for processing the indirect transfer instruction in dynamic binary translation system; method includes: save for indirect transfer instruction redirection table in dynamic binary translation system; when receiving the indirect transfer instruction, according to the indirect transfer instruction address source in the table stored in the redirection table to find the corresponding source address; the redirection table to the source address for indexing; if find the table is empty, the table is filled with the redirection information destination address program control flow redirection to the source address; if you include the redirection information to find the table in executing the program control flow redirection information, will be redirected to the corresponding destination address. The invention can improve the performance of a dynamic binary translation system.
【技術實現步驟摘要】
在動態二進制翻譯系統中處理間接轉移指令的方法和裝置
本專利技術涉及計算機應用領域,尤其涉及一種在動態二進制翻譯系統中處理間接轉移指令的方法和裝置。
技術介紹
動態二進制翻譯技術(dynamictranslation)廣泛應用于指令系統模擬,二進制插樁,動態優化,程序行為分析等領域。在大多數應用場景下,性能是翻譯系統需考慮的重要指標。其中,控制轉移指令的處理方法是影響動態翻譯系統性能的重要因素。控制轉移指令一般可分為條件轉移,直接跳轉與間接轉移。對于轉移目標固定的條件轉移指令與直接跳轉指令,翻譯系統可使用代碼塊鏈接技術來降低開銷。而間接轉移指令(IB:IndirectBranch)的轉移目標在運行時才可以確定,且轉移目標不固定,因此每次執行時均需進行一次源程序計數器地址(SPC:SourceProgramCounteraddress,簡稱源地址)到目標程序計數器地址(TPC:TargetProgramCounteraddress,簡稱目標地址)的地址轉換操作,導致了巨大的性能開銷,使得間接轉移指令的處理過程成為系統性能開銷的主要來源。圖1為現有技術中動態翻譯系統處理間接轉移指令的流程示意圖。在獲取到轉移目標的源地址(SPC)時,翻譯系統會進入一個PC分發器(Dispatcher),將源地址轉換為目標地址(TPC)。翻譯系統一般會維護一個SPC-TPC的映射表,在源地址產生后,運行一個Hash查表例程來進行地址轉換,然后再跳轉至相應的目標地址。但進行一次Hash查表需要10條以上指令,導致較大的開銷。軟件預測法可以一定程度上避免Hash查表開銷,即在轉移目標的 ...
【技術保護點】
一種在動態二進制翻譯系統中處理間接轉移指令的方法,其特征在于,包括:保存用于在動態二進制翻譯系統中處理間接轉移指令的重定向表;當接收到間接轉移指令時,根據間接轉移指令中的源地址在所保存的重定向表中查找該源地址對應的表項;所述重定向表以源地址為索引建立;如果查找到的表項為空,則在該表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息;如果查找到的表項中包含重定向信息,則執行所述重定向信息,將程序控制流重定向至相應的目標地址處。
【技術特征摘要】
1.一種在動態二進制翻譯系統中處理間接轉移指令的方法,其特征在于,包括:保存用于在動態二進制翻譯系統中處理間接轉移指令的重定向表;當接收到間接轉移指令時,根據間接轉移指令中的源地址在所保存的重定向表中查找該源地址對應的表項;所述重定向表以源地址為索引建立;如果查找到的表項為空,則在該表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息;如果查找到的表項中包含重定向信息,則執行所述重定向信息,將程序控制流重定向至相應的目標地址處。2.根據權利要求1所述的方法,其特征在于:所述重定向表復用源二進制代碼空間存儲,或單獨存儲在一塊與源二進制代碼空間具有一個固定偏移量的影子空間中;所述在重定向表中查找該源地址對應的表項的步驟包括:若重定向表存儲在源二進制代碼空間中,則直接查找所述源地址所代表的存儲位置中的表項;若重定向表存儲在影子空間中,則在所述影子空間中,查找所述源地址加上所述的固定偏移量的結果所代表的存儲位置中的表項。3.根據權利要求1所述的方法,其特征在于:如果所述動態二進制翻譯系統的源平臺是變長指令系統平臺,則所述重定向表中的表項為鏈式表項,所述重定向信息為短跳轉指令;如果所述動態二進制翻譯系統的源平臺是定長指令系統平臺,則所述重定向信息包括源地址相對應的目標地址。4.根據權利要求1~3中任一項所述的方法,其特征在于,還包括:當所述動態二進制翻譯系統啟動后,將源二進制代碼空間或影子空間的頁面標記為不可運行;當在頁面填入一個表項后,在該頁面其他位置填入軟件中斷指令;所述如果查找到的表項為空,則在該表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息的步驟包括:當頁面中不包含表項且空白表項被執行時,觸發頁面權限異常,調用頁面異常處理函數在表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息;當頁面已包含一個表項且空白表項被執行時,觸發軟件中斷異常,調用軟件中斷異常處理函數在表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息。5.一種在動態二進制翻譯系統中處理間接轉移指令的裝置,其特征在于,包...
【專利技術屬性】
技術研發人員:程旭,賈寧,楊春,
申請(專利權)人:北京北大眾志微系統科技有限責任公司,
類型:發明
國別省市:北京,11
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。