• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    在動態二進制翻譯系統中處理間接轉移指令的方法和裝置制造方法及圖紙

    技術編號:15690537 閱讀:105 留言:0更新日期:2017-06-24 03:00
    本發明專利技術提供了一種在動態二進制翻譯系統中處理間接轉移指令的方法和系統;方法包括:保存用于在動態二進制翻譯系統中處理間接轉移指令的重定向表;當接收到間接轉移指令時,根據間接轉移指令中的源地址在所保存的重定向表中查找該源地址對應的表項;所述重定向表以源地址為索引建立;如果查找到的表項為空,則在該表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息;如果查找到的表項中包含重定向信息,則執行所述重定向信息,將程序控制流重定向至相應的目標地址處。本發明專利技術能夠提升動態二進制翻譯系統的性能。

    Method and apparatus for processing indirect transfer instructions in a dynamic binary translation system

    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查表開銷,即在轉移目標的SPC產生后,進行若干次的比較-跳轉的預測操作,若預測成功則直接跳轉。但軟件預測法的預測準確率一般較低,制約了其對整體性能的提升。此外,還出現了一些軟硬件協同的優化方案,如在CPU流水線中新增一個跳轉地址查找表,或者新增一個按內容訪問的相聯存儲器(CAM:content-associatedmemory),但這些方案均需改動硬件或指令系統,通用性較差,無法在已有平臺上實現。在動態二進制翻譯系統中,當間接轉移指令的轉移目標產生時,如何實時進行一次源地址到目標地址的轉換需要提供一種新的技術方案。。
    技術實現思路
    本專利技術提供一種在動態二進制翻譯系統中處理間接轉移指令的方法和系統,要解決的技術問題是如何提升動態二進制翻譯系統的性能。為解決上述技術問題,本專利技術提供了一種在動態二進制翻譯系統中處理間接轉移指令的方法,包括:保存用于在動態二進制翻譯系統中處理間接轉移指令的重定向表;當接收到間接轉移指令時,根據間接轉移指令中的源地址在所保存的重定向表中查找該源地址對應的表項;所述重定向表以源地址為索引建立;如果查找到的表項為空,則在該表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息;如果查找到的表項中包含重定向信息,則執行所述重定向信息,將程序控制流重定向至相應的目標地址處??蛇x地,所述重定向表復用源二進制代碼空間存儲,或單獨存儲在一塊與源二進制代碼空間具有一個固定偏移量的影子空間中;所述在重定向表中查找該源地址對應的表項的步驟包括:若重定向表存儲在源二進制代碼空間中,則直接查找所述源地址所代表的存儲位置中的表項;若重定向表存儲在影子空間中,則在所述影子空間中,查找所述源地址加上所述的固定偏移量的結果所代表的存儲位置中的表項??蛇x地,如果所述動態二進制翻譯系統的源平臺是變長指令系統平臺,則所述重定向表中的表項為鏈式表項,所述重定向信息為短跳轉指令;如果所述動態二進制翻譯系統的源平臺是定長指令系統平臺,則所述重定向信息包括源地址相對應的目標地址。可選地,所述的方法還包括:當所述動態二進制翻譯系統啟動后,將源二進制代碼空間或影子空間的頁面標記為不可運行;當在頁面填入一個表項后,在該頁面其他位置填入軟件中斷指令;所述如果查找到的表項為空,則在該表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息的步驟包括:當頁面中不包含表項且空白表項被執行時,觸發頁面權限異常,調用頁面異常處理函數在表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息;當頁面已包含一個表項且空白表項被執行時,觸發軟件中斷異常,調用軟件中斷異常處理函數在表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息。本專利技術還提供了一種在動態二進制翻譯系統中處理間接轉移指令的裝置,包括:存儲單元,用于保存用于在動態二進制翻譯系統中處理間接轉移指令的重定向表;查找單元,用于當接收到間接轉移指令時,根據間接轉移指令中的源地址在所述存儲單元所保存的重定向表中查找該源地址對應的表項;所述重定向表以源地址為索引建立;寫入單元,用于當查找到的表項為空時,在該表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息;執行單元,用于當查找到的表項中包含重定向信息時,執行所述重定向信息,將程序控制流重定向至相應的目標地址處??蛇x地,所述存儲單元復用源二進制代碼空間保存所述重定向表,或將所述重定向表單獨存儲在一塊與源二進制代碼空間具有一個固定偏移量的影子空間中;所述查找單元在重定向表中查找該源地址對應的表項是指:若重定向表存儲在源二進制代碼空間中,所述查找單元直接查找所述源地址所代表的存儲位置中的表項;若重定向表存儲在影子空間中,所述查找單元在所述影子空間中查找所述源地址加上所述固定偏移量的結果所代表的存儲位置中的表項??蛇x地,如果所述動態二進制翻譯系統的源平臺是變長指令系統平臺,則所述重定向表中的表項為鏈式表項,所述重定向信息為短跳轉指令;如果所述動態二進制翻譯系統的源平臺是定長指令系統平臺,則所述重定向信息包括源地址相對應的目標地址??蛇x地,所述的裝置還包括:按需構造單元,用于當所述動態二進制翻譯系統啟動后,將源二進制代碼空間或影子空間的頁面標記為不可運行;當在頁面填入一個表項后,在該頁面其他位置填入軟件中斷指令;所述寫入單元當查找到的表項為空時,在該表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息是指:所述寫入單元當頁面中不包含表項且空白表項被執行時,觸發頁面權限異常,調用頁面異常處理函數在表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息;當頁面已包含一個表項且空白表項被執行時,觸發軟件中斷異常,調用軟件中斷異常處理函數在表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息。與現有技術相比,本專利技術的至少一個實施例通過在動態二進制翻譯系統運行過程中實時建立一個重定向表來處理間接轉移指令,在處理間接轉移指令時無需對轉移目標進行地址轉換,可直接跳轉至源地址,再由該源地址對應的重定向信息將控制流定向至相應的目標地址,無需進行任何計算便可直接跳轉,避免了在處理該類指令時進行地址轉換操作;而且不需要新增硬件或改動指令系統,可用于絕大部分動態二進制翻譯系統中,以少量內存冗余為代價優化了間接轉移指令的處理過程,可大幅提升翻譯系統的整體性能。本專利技術的又一個實施例采用兩層粒度的基于異常的按需構造方法建立所述重定向表,系統啟動時整個表為空白表,各個表項第一次被使用時填入重定向信息,采用基于異常機制的方法來保證空白表本文檔來自技高網
    ...
    在動態二進制翻譯系統中處理間接轉移指令的方法和裝置

    【技術保護點】
    一種在動態二進制翻譯系統中處理間接轉移指令的方法,其特征在于,包括:保存用于在動態二進制翻譯系統中處理間接轉移指令的重定向表;當接收到間接轉移指令時,根據間接轉移指令中的源地址在所保存的重定向表中查找該源地址對應的表項;所述重定向表以源地址為索引建立;如果查找到的表項為空,則在該表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息;如果查找到的表項中包含重定向信息,則執行所述重定向信息,將程序控制流重定向至相應的目標地址處。

    【技術特征摘要】
    1.一種在動態二進制翻譯系統中處理間接轉移指令的方法,其特征在于,包括:保存用于在動態二進制翻譯系統中處理間接轉移指令的重定向表;當接收到間接轉移指令時,根據間接轉移指令中的源地址在所保存的重定向表中查找該源地址對應的表項;所述重定向表以源地址為索引建立;如果查找到的表項為空,則在該表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息;如果查找到的表項中包含重定向信息,則執行所述重定向信息,將程序控制流重定向至相應的目標地址處。2.根據權利要求1所述的方法,其特征在于:所述重定向表復用源二進制代碼空間存儲,或單獨存儲在一塊與源二進制代碼空間具有一個固定偏移量的影子空間中;所述在重定向表中查找該源地址對應的表項的步驟包括:若重定向表存儲在源二進制代碼空間中,則直接查找所述源地址所代表的存儲位置中的表項;若重定向表存儲在影子空間中,則在所述影子空間中,查找所述源地址加上所述的固定偏移量的結果所代表的存儲位置中的表項。3.根據權利要求1所述的方法,其特征在于:如果所述動態二進制翻譯系統的源平臺是變長指令系統平臺,則所述重定向表中的表項為鏈式表項,所述重定向信息為短跳轉指令;如果所述動態二進制翻譯系統的源平臺是定長指令系統平臺,則所述重定向信息包括源地址相對應的目標地址。4.根據權利要求1~3中任一項所述的方法,其特征在于,還包括:當所述動態二進制翻譯系統啟動后,將源二進制代碼空間或影子空間的頁面標記為不可運行;當在頁面填入一個表項后,在該頁面其他位置填入軟件中斷指令;所述如果查找到的表項為空,則在該表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息的步驟包括:當頁面中不包含表項且空白表項被執行時,觸發頁面權限異常,調用頁面異常處理函數在表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息;當頁面已包含一個表項且空白表項被執行時,觸發軟件中斷異常,調用軟件中斷異常處理函數在表項中填入將程序控制流重定向至所述源地址對應的目標地址處的重定向信息。5.一種在動態二進制翻譯系統中處理間接轉移指令的裝置,其特征在于,包...

    【專利技術屬性】
    技術研發人員:程旭,賈寧楊春,
    申請(專利權)人:北京北大眾志微系統科技有限責任公司,
    類型:發明
    國別省市:北京,11

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 无码毛片一区二区三区中文字幕| 国产高新无码在线观看| 无码国产精品一区二区免费16| 永久无码精品三区在线4 | 无码国模国产在线无码精品国产自在久国产 | H无码精品3D动漫在线观看| 国模无码视频一区| 国产成人无码a区在线视频| 亚洲精品无码久久一线| 亚洲日韩精品无码AV海量| 日韩人妻无码精品无码中文字幕| 中文字幕丰满乱孑伦无码专区| 无码av免费一区二区三区| 精品少妇人妻AV无码专区不卡| 成年无码av片完整版| 亚洲av无码一区二区三区天堂 | 精品久久久无码中字| 亚洲大尺度无码无码专区| 亚洲色在线无码国产精品不卡| av无码精品一区二区三区四区| 日韩精品无码一区二区三区| 国产精品无码一区二区三区免费| 亚洲中久无码永久在线观看同| 丰满亚洲大尺度无码无码专线| 亚洲AV无码一区东京热久久| 国产精品爆乳奶水无码视频 | 无码av免费一区二区三区| 国模无码视频一区| 无码丰满熟妇juliaann与黑人 | 乱人伦人妻中文字幕无码| 国产aⅴ无码专区亚洲av麻豆| 无码人妻精品一区二区蜜桃网站 | 国产精品成人无码久久久| 无码精品视频一区二区三区| 日韩精品人妻系列无码av东京| 无码中文字幕av免费放dvd| 一本大道东京热无码一区| 亚洲AV中文无码乱人伦| av中文无码乱人伦在线观看| 曰韩人妻无码一区二区三区综合部| 亚洲AV无码一区二区三区DV|