[發(fā)明專利]基于快速模擬器QEMU的分支指令抓取方法和裝置有效
| 申請?zhí)枺?/td> | 201611144953.0 | 申請日: | 2016-12-13 |
| 公開(公告)號: | CN108228239B | 公開(公告)日: | 2021-04-20 |
| 發(fā)明(設(shè)計)人: | 張立志;李策;高新博;汪文祥 | 申請(專利權(quán))人: | 龍芯中科技術(shù)股份有限公司 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38;G06F9/455 |
| 代理公司: | 北京同立鈞成知識產(chǎn)權(quán)代理有限公司 11205 | 代理人: | 楊澤;劉芳 |
| 地址: | 100095 北京市海淀*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 快速 模擬器 qemu 分支 指令 抓取 方法 裝置 | ||
本發(fā)明提供一種基于快速模擬器QEMU的分支指令抓取方法和裝置。本發(fā)明提供的基于快速模擬器QEMU的分支指令抓取方法,包括:在QEMU執(zhí)行獲取待翻譯指令時,判斷當(dāng)前所獲取的待翻譯指令是否為分支指令,若是,則根據(jù)目標(biāo)程序架構(gòu)對當(dāng)前的分支指令執(zhí)行翻譯操作,得到翻譯分支指令,并將上述分支指令的屬性信息進(jìn)行存儲;其中,上述分支指令的屬性信息包括上述分支指令的操作碼、上述分支指令的指令地址和上述分支指令的跳轉(zhuǎn)地址。本發(fā)明提供的基于快速模擬器QEMU的分支指令抓取方法和裝置,可抓取不同處理器架構(gòu)的執(zhí)行程序中的分支指令,兼容性高,成本低。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)技術(shù),尤其涉及一種基于快速模擬器QEMU的分支指令抓取方法和裝置。
背景技術(shù)
分支預(yù)測器是中央處理器(Central Processing Unit,簡稱CPU)的一個關(guān)鍵部件,其可以幫助CPU更快的獲取指令,加快CPU的運(yùn)行速度,而分支指令集可以在流片前對分支指令預(yù)測器進(jìn)行驗(yàn)證與測試,從而確定分支預(yù)測器的性能,進(jìn)而決定是否需要對分支預(yù)測器做出改進(jìn)。因此,為有效預(yù)測分支預(yù)測器的性能,抓取執(zhí)行程序中的分支指令顯得尤為重要。
現(xiàn)有技術(shù)一中,通過在CPU主板上添加監(jiān)控電路,并將該監(jiān)控電路與存儲器連接,以通過監(jiān)控電路抓取執(zhí)行程序分支指令,并將抓取到的分支指令存儲到存儲器中。現(xiàn)有技術(shù)二中,通過在執(zhí)行程序中加入一段監(jiān)控程序,采用該監(jiān)控程序來抓取執(zhí)行程序分支指令。現(xiàn)有技術(shù)一及現(xiàn)有技術(shù)二提供的分支指令抓取方法均只能抓取一種處理器架構(gòu)執(zhí)行程序中的分支指令,無法適用于抓取其他處理器架構(gòu)的執(zhí)行程序中的分支指令。
發(fā)明內(nèi)容
本發(fā)明提供一種基于快速模擬器QEMU的分支指令抓取方法和裝置,以解決現(xiàn)有技術(shù)中的分支指令抓取方法只能抓取一種處理器架構(gòu)的執(zhí)行程序中的分支指令,無法抓取其他處理器架構(gòu)的執(zhí)行程序中的分支指令的問題。
本發(fā)明第一方面提供一種基于快速模擬器QEMU的分支指令抓取方法,包括:
在QEMU執(zhí)行獲取待翻譯指令時,判斷當(dāng)前所獲取的待翻譯指令是否為分支指令;
若是,則根據(jù)目標(biāo)程序架構(gòu)對當(dāng)前的分支指令執(zhí)行翻譯操作,得到翻譯分支指令,并將所述分支指令的屬性信息進(jìn)行存儲;其中,所述分支指令的屬性信息包括所述分支指令的操作碼、所述分支指令的指令地址和所述分支指令的跳轉(zhuǎn)地址。
進(jìn)一步地,所述根據(jù)目標(biāo)程序架構(gòu)對當(dāng)前的分支指令執(zhí)行翻譯操作,并將所述分支指令的屬性信息進(jìn)行存儲,具體包括:
根據(jù)目標(biāo)程序架構(gòu)對當(dāng)前的分支指令執(zhí)行翻譯操作,得到翻譯分支指令;
根據(jù)所述翻譯分支指令所屬的基本塊中其他的翻譯指令、所述翻譯分支指令、所述當(dāng)前的分支指令的屬性信息得到翻譯塊,并將所述翻譯塊存儲至緩存塊表中;其中,所述緩存塊表中包括至少一個翻譯塊,每個翻譯塊包括一條翻譯分支指令;
將所述分支指令的屬性信息存儲至分支指令抓取文件中。
進(jìn)一步地,所述判斷當(dāng)前所獲取的待翻譯指令是否為分支指令之前,所述方法還包括:
根據(jù)當(dāng)前所獲取的待翻譯指令的地址,判斷所述緩存塊表中是否存在第一翻譯塊,所述第一翻譯塊為包含所述待翻譯指令對應(yīng)的翻譯指令的翻譯塊;
若所述緩存塊表中不存在所述第一翻譯塊,則判斷當(dāng)前所獲取的待翻譯指令是否為分支指令。
進(jìn)一步地,所述方法還包括:
若所述緩存塊表中存在所述第一翻譯塊,則獲取所述第一翻譯塊中的分支指令的屬性信息;
將所述第一翻譯塊中的分支指令的屬性信息存儲至所述分支指令抓取文件中。
進(jìn)一步地,所述將所述分支指令的屬性信息存儲至分支指令抓取文件中之后,所述方法還包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于龍芯中科技術(shù)股份有限公司,未經(jīng)龍芯中科技術(shù)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611144953.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 基于QEMU和SystemC的多核仿真器
- 基于Qemu模擬器的惡意程序行為捕獲方法
- 一種使qemu-kvm虛擬機(jī)執(zhí)行任意命令的方法及存儲介質(zhì)
- 一種Qemu虛擬設(shè)備磁盤文件保護(hù)方法及系統(tǒng)
- 一種Qemu Secret對象運(yùn)行隱匿方法及裝置
- 一種虛擬化系統(tǒng)及其數(shù)據(jù)交換方法
- 多操作系統(tǒng)渲染處理方法及裝置
- 一種Qemu虛擬機(jī)遠(yuǎn)程音頻傳輸方法及裝置
- 一種基于模擬處理器QEMU的分布式加速存儲方法及系統(tǒng)
- 一種虛擬設(shè)備的加載方法、裝置、設(shè)備及存儲介質(zhì)





