[發(fā)明專(zhuān)利]在動(dòng)態(tài)二進(jìn)制翻譯系統(tǒng)中處理間接轉(zhuǎn)移指令的方法和裝置在審
| 申請(qǐng)?zhí)枺?/td> | 201611209017.3 | 申請(qǐng)日: | 2016-12-23 |
| 公開(kāi)(公告)號(hào): | CN106873944A | 公開(kāi)(公告)日: | 2017-06-20 |
| 發(fā)明(設(shè)計(jì))人: | 程旭;賈寧;楊春 | 申請(qǐng)(專(zhuān)利權(quán))人: | 北京北大眾志微系統(tǒng)科技有限責(zé)任公司 |
| 主分類(lèi)號(hào): | G06F9/30 | 分類(lèi)號(hào): | G06F9/30;G06F9/32 |
| 代理公司: | 北京安信方達(dá)知識(shí)產(chǎn)權(quán)代理有限公司11262 | 代理人: | 李紅爽,栗若木 |
| 地址: | 100080 北京市海淀*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 動(dòng)態(tài) 二進(jìn)制 翻譯 系統(tǒng) 處理 間接 轉(zhuǎn)移 指令 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,尤其涉及一種在動(dòng)態(tài)二進(jìn)制翻譯系統(tǒng)中處理間接轉(zhuǎn)移指令的方法和裝置。
背景技術(shù)
動(dòng)態(tài)二進(jìn)制翻譯技術(shù)(dynamic translation)廣泛應(yīng)用于指令系統(tǒng)模擬,二進(jìn)制插樁,動(dòng)態(tài)優(yōu)化,程序行為分析等領(lǐng)域。在大多數(shù)應(yīng)用場(chǎng)景下,性能是翻譯系統(tǒng)需考慮的重要指標(biāo)。其中,控制轉(zhuǎn)移指令的處理方法是影響動(dòng)態(tài)翻譯系統(tǒng)性能的重要因素。控制轉(zhuǎn)移指令一般可分為條件轉(zhuǎn)移,直接跳轉(zhuǎn)與間接轉(zhuǎn)移。對(duì)于轉(zhuǎn)移目標(biāo)固定的條件轉(zhuǎn)移指令與直接跳轉(zhuǎn)指令,翻譯系統(tǒng)可使用代碼塊鏈接技術(shù)來(lái)降低開(kāi)銷(xiāo)。
而間接轉(zhuǎn)移指令(IB:Indirect Branch)的轉(zhuǎn)移目標(biāo)在運(yùn)行時(shí)才可以確定,且轉(zhuǎn)移目標(biāo)不固定,因此每次執(zhí)行時(shí)均需進(jìn)行一次源程序計(jì)數(shù)器地址(SPC:Source Program Counter address,簡(jiǎn)稱(chēng)源地址)到目標(biāo)程序計(jì)數(shù)器地址(TPC:Target Program Counter address,簡(jiǎn)稱(chēng)目標(biāo)地址)的地址轉(zhuǎn)換操作,導(dǎo)致了巨大的性能開(kāi)銷(xiāo),使得間接轉(zhuǎn)移指令的處理過(guò)程成為系統(tǒng)性能開(kāi)銷(xiāo)的主要來(lái)源。
圖1為現(xiàn)有技術(shù)中動(dòng)態(tài)翻譯系統(tǒng)處理間接轉(zhuǎn)移指令的流程示意圖。在獲取到轉(zhuǎn)移目標(biāo)的源地址(SPC)時(shí),翻譯系統(tǒng)會(huì)進(jìn)入一個(gè)PC分發(fā)器(Dispatcher),將源地址轉(zhuǎn)換為目標(biāo)地址(TPC)。翻譯系統(tǒng)一般會(huì)維護(hù)一個(gè)SPC-TPC的映射表,在源地址產(chǎn)生后,運(yùn)行一個(gè)Hash查表例程來(lái)進(jìn)行地址轉(zhuǎn)換,然后再跳轉(zhuǎn)至相應(yīng)的目標(biāo)地址。但進(jìn)行一次Hash查表需要10條以上指令,導(dǎo)致較大的開(kāi)銷(xiāo)。軟件預(yù)測(cè)法可以一定程度上避免Hash查表開(kāi)銷(xiāo),即在轉(zhuǎn)移目標(biāo)的SPC產(chǎn)生后,進(jìn)行若干次的比較-跳轉(zhuǎn)的預(yù)測(cè)操作,若預(yù)測(cè)成功則直接跳轉(zhuǎn)。但軟件預(yù)測(cè)法的預(yù)測(cè)準(zhǔn)確率一般較低,制約了其對(duì)整體性能的提升。
此外,還出現(xiàn)了一些軟硬件協(xié)同的優(yōu)化方案,如在CPU流水線中新增一個(gè)跳轉(zhuǎn)地址查找表,或者新增一個(gè)按內(nèi)容訪問(wèn)的相聯(lián)存儲(chǔ)器(CAM:content-associated memory),但這些方案均需改動(dòng)硬件或指令系統(tǒng),通用性較差,無(wú)法在已有平臺(tái)上實(shí)現(xiàn)。
在動(dòng)態(tài)二進(jìn)制翻譯系統(tǒng)中,當(dāng)間接轉(zhuǎn)移指令的轉(zhuǎn)移目標(biāo)產(chǎn)生時(shí),如何實(shí)時(shí)進(jìn)行一次源地址到目標(biāo)地址的轉(zhuǎn)換需要提供一種新的技術(shù)方案。。
發(fā)明內(nèi)容
本發(fā)明提供一種在動(dòng)態(tài)二進(jìn)制翻譯系統(tǒng)中處理間接轉(zhuǎn)移指令的方法和系統(tǒng),要解決的技術(shù)問(wèn)題是如何提升動(dòng)態(tài)二進(jìn)制翻譯系統(tǒng)的性能。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種在動(dòng)態(tài)二進(jìn)制翻譯系統(tǒng)中處理間接轉(zhuǎn)移指令的方法,包括:
保存用于在動(dòng)態(tài)二進(jìn)制翻譯系統(tǒng)中處理間接轉(zhuǎn)移指令的重定向表;
當(dāng)接收到間接轉(zhuǎn)移指令時(shí),根據(jù)間接轉(zhuǎn)移指令中的源地址在所保存的重定向表中查找該源地址對(duì)應(yīng)的表項(xiàng);所述重定向表以源地址為索引建立;
如果查找到的表項(xiàng)為空,則在該表項(xiàng)中填入將程序控制流重定向至所述源地址對(duì)應(yīng)的目標(biāo)地址處的重定向信息;
如果查找到的表項(xiàng)中包含重定向信息,則執(zhí)行所述重定向信息,將程序控制流重定向至相應(yīng)的目標(biāo)地址處。
可選地,所述重定向表復(fù)用源二進(jìn)制代碼空間存儲(chǔ),或單獨(dú)存儲(chǔ)在一塊與源二進(jìn)制代碼空間具有一個(gè)固定偏移量的影子空間中;
所述在重定向表中查找該源地址對(duì)應(yīng)的表項(xiàng)的步驟包括:
若重定向表存儲(chǔ)在源二進(jìn)制代碼空間中,則直接查找所述源地址所代表的存儲(chǔ)位置中的表項(xiàng);
若重定向表存儲(chǔ)在影子空間中,則在所述影子空間中,查找所述源地址加上所述的固定偏移量的結(jié)果所代表的存儲(chǔ)位置中的表項(xiàng)。
可選地,如果所述動(dòng)態(tài)二進(jìn)制翻譯系統(tǒng)的源平臺(tái)是變長(zhǎng)指令系統(tǒng)平臺(tái),則所述重定向表中的表項(xiàng)為鏈?zhǔn)奖眄?xiàng),所述重定向信息為短跳轉(zhuǎn)指令;
如果所述動(dòng)態(tài)二進(jìn)制翻譯系統(tǒng)的源平臺(tái)是定長(zhǎng)指令系統(tǒng)平臺(tái),則所述重定向信息包括源地址相對(duì)應(yīng)的目標(biāo)地址。
可選地,所述的方法還包括:
當(dāng)所述動(dòng)態(tài)二進(jìn)制翻譯系統(tǒng)啟動(dòng)后,將源二進(jìn)制代碼空間或影子空間的頁(yè)面標(biāo)記為不可運(yùn)行;當(dāng)在頁(yè)面填入一個(gè)表項(xiàng)后,在該頁(yè)面其他位置填入軟件中斷指令;
所述如果查找到的表項(xiàng)為空,則在該表項(xiàng)中填入將程序控制流重定向至所述源地址對(duì)應(yīng)的目標(biāo)地址處的重定向信息的步驟包括:
當(dāng)頁(yè)面中不包含表項(xiàng)且空白表項(xiàng)被執(zhí)行時(shí),觸發(fā)頁(yè)面權(quán)限異常,調(diào)用頁(yè)面異常處理函數(shù)在表項(xiàng)中填入將程序控制流重定向至所述源地址對(duì)應(yīng)的目標(biāo)地址處的重定向信息;
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于北京北大眾志微系統(tǒng)科技有限責(zé)任公司,未經(jīng)北京北大眾志微系統(tǒng)科技有限責(zé)任公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611209017.3/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
- 動(dòng)態(tài)矢量譯碼方法和動(dòng)態(tài)矢量譯碼裝置
- 動(dòng)態(tài)口令的顯示方法及動(dòng)態(tài)令牌
- 動(dòng)態(tài)庫(kù)管理方法和裝置
- 動(dòng)態(tài)令牌的身份認(rèn)證方法及裝置
- 令牌、動(dòng)態(tài)口令生成方法、動(dòng)態(tài)口令認(rèn)證方法及系統(tǒng)
- 一種動(dòng)態(tài)模糊控制系統(tǒng)
- 一種基于動(dòng)態(tài)信號(hào)的POS機(jī)和安全保護(hù)方法
- 圖像動(dòng)態(tài)展示的方法、裝置、系統(tǒng)及介質(zhì)
- 一種基于POS機(jī)聚合碼功能分離顯示動(dòng)態(tài)聚合碼的系統(tǒng)
- 基于動(dòng)態(tài)口令的身份認(rèn)證方法、裝置和動(dòng)態(tài)令牌
- 打印控制裝置和打印控制方法
- 用于軟件加密的計(jì)算機(jī)系統(tǒng)及方法
- 二進(jìn)制碼驗(yàn)證服務(wù)
- 計(jì)算機(jī)二進(jìn)制教學(xué)工具
- 一種數(shù)據(jù)刪除方法、設(shè)備及平臺(tái)
- 長(zhǎng)度為八位二進(jìn)制的一維碼制
- 圖像量化參數(shù)解碼方法
- 通過(guò)二進(jìn)制和存儲(chǔ)器多樣性進(jìn)行混淆的系統(tǒng)和方法
- 通過(guò)參數(shù)化概率估計(jì)有限狀態(tài)機(jī)進(jìn)行二進(jìn)制算術(shù)譯碼
- 二進(jìn)制至格雷轉(zhuǎn)換電路和FIFO存儲(chǔ)器
- 一種構(gòu)建多語(yǔ)言網(wǎng)站實(shí)時(shí)翻譯的方法
- 一種待翻譯軟件的翻譯方法及裝置
- 一種待翻譯軟件的翻譯方法及裝置
- 一種CAT系統(tǒng)中翻譯記憶庫(kù)和MT結(jié)合的方法及系統(tǒng)
- 翻譯方法、系統(tǒng)、終端以及存儲(chǔ)介質(zhì)
- 一種文本展示方法及裝置
- 機(jī)器翻譯方法及裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 基于機(jī)器翻譯引擎的翻譯方法及裝置
- 翻譯系統(tǒng)、翻譯方法、翻譯機(jī)及存儲(chǔ)介質(zhì)
- 文字翻譯方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)





