[發明專利]基于執行樹深度的二進制翻譯方法和裝置在審
| 申請號: | 201410688378.5 | 申請日: | 2014-11-26 |
| 公開(公告)號: | CN104375879A | 公開(公告)日: | 2015-02-25 |
| 發明(設計)人: | 康爍 | 申請(專利權)人: | 康爍 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06F9/32 |
| 代理公司: | 北京恒都律師事務所 11395 | 代理人: | 李向東 |
| 地址: | 100084 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 執行 深度 二進制 翻譯 方法 裝置 | ||
1.一種基于執行樹深度的二進制翻譯方法,其特征在于,包括:
步驟S0:開始構造超級塊,將執行樹深度初始化為0,并獲取預設的執行樹深度閾值,從預設的起始地址所在的基本塊開始翻譯;
步驟S1:翻譯獲取到的基本塊;
步驟S2:若翻譯的基本塊的當前指令為直接跳轉指令,則獲取所述直接跳轉指令進入的基本塊,并返回至步驟S1;
步驟S3:若翻譯的基本塊的當前指令為條件跳轉指令,則獲取所述條件跳轉指令跳轉后的基本塊和所述條件跳轉指令的下一個基本塊,并且將執行樹深度加1,返回至步驟S1;?
步驟S4:若翻譯的基本塊的當前指令為函數調用指令,則獲取所述函數調用指令對應的函數作為基本塊,并且將執行樹深度加1,返回至步驟S1,
其中,在每次執行樹深度加1之后,判斷當前的執行樹深度是否達到所述執行樹深度閾值,若所述執行樹深度達到所述執行樹深度閾值,則翻譯結束,翻譯的所有基本塊構成一個超級塊。
2.根據權利要求1所述的基于執行樹深度的二進制翻譯方法,其特征在于,還包括:
步驟S5:在執行步驟S1之后,存儲所述基本塊的第一條指令的地址。
3.根據權利要求1或2所述的基于執行樹深度的二進制翻譯方法,其特征在于,還包括:
步驟S6:在獲取預設的執行樹深度閾值的同時,獲取預設的翻譯時間閾值,并且在開始翻譯時計時,
其中,在每次執行樹深度加1之后,判斷當前計時的翻譯時間是否達到所述翻譯時間閾值,若所述當前計時的翻譯時間達到所述翻譯時間閾值,則翻譯結束。
4.一種基于執行樹深度的二進制翻譯裝置,其特征在于,包括:
初始化模塊,用于開始構造超級塊時,將執行樹深度初始化為0,并獲取預設的執行樹深度閾值,從預設的起始地址所在的基本塊開始翻譯;
翻譯模塊,用于翻譯獲取到的基本塊;
第一獲取模塊,用于當翻譯的基本塊的當前指令為直接跳轉指令,獲取所述直接跳轉指令進入的新基本塊,并由所述翻譯模塊進行翻譯;
第二獲取模塊,用于當翻譯的基本塊的當前指令為條件跳轉指令,獲取所述條件跳轉指令跳轉后的基本塊和所述條件跳轉指令的下一個基本塊,由所述翻譯模塊進行翻譯,并且將執行樹深度加1;?
第三獲取模塊,當翻譯的基本塊的當前指令為函數調用指令,則獲取所述函數調用指令對應的函數作為基本塊,由所述翻譯模塊進行翻譯,并且將執行樹深度加1;
判斷模塊,用于在每次執行樹深度加1之后,判斷當前的執行樹深度是否達到所述執行樹深度閾值,若所述執行樹深度達到所述執行樹深度閾值,則翻譯結束,翻譯的所有基本塊構成一個超級塊。
5.根據權利要求4所述的基于執行樹深度的二進制翻譯裝置,其特征在于,還包括:
存儲模塊,用于在所述翻譯模塊翻譯一個基本塊之后,存儲該基本塊的第一條指令的地址。
6.根據權利要求4或5所述的基于執行樹深度的二進制翻譯裝置,其特征在于,
所述初始化模塊還用于在獲取預設的執行樹深度閾值的同時,獲取預設的翻譯時間閾值,并且在開始翻譯時計時;
所述判斷模塊還用于在每次執行樹深度加1之后,判斷當前計時的翻譯時間是否達到所述翻譯時間閾值,若所述當前計時的翻譯時間達到所述翻譯時間閾值,則翻譯結束。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于康爍,未經康爍許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410688378.5/1.html,轉載請聲明來源鉆瓜專利網。





