[發明專利]利用中間指令集的二進制翻譯方法有效
| 申請號: | 200710047697.8 | 申請日: | 2007-11-01 |
| 公開(公告)號: | CN101145109A | 公開(公告)日: | 2008-03-19 |
| 發明(設計)人: | 管海兵;梁阿磊;包云程 | 申請(專利權)人: | 上海交通大學 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 上海交達專利事務所 | 代理人: | 毛翠瑩 |
| 地址: | 200240*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 利用 中間 指令 二進制 翻譯 方法 | ||
技術領域
本發明涉及一種利用中間指令集的二進制翻譯方法,利用一套用于二進制翻譯的中間指令集,可以將一種物理機器指令翻譯為另一種物理機器指令。本發明屬于二進制翻譯技術領域。
背景技術
二進制翻譯是一種仿真技術,涉及“源”(Source)與“目標”(Target)兩個機器平臺,因此二進制翻譯器與機器平臺有強烈的依賴關系,這對基礎平臺的可移植性提出了更高的要求,可重定向性就是其中要求之一。可重定向性是指基礎平臺對多種源機器與目標機器的支持,并且能夠很容易地移植到新的機器平臺,中間指令有效地隔開了源機器與目標機器,是實現可重定性的關鍵。在二進制翻譯器中,如果要在x86,ARM,MIPS三種機器代碼之間進行翻譯,需要實現3×3=9種翻譯過程,如果在“源”與“目標”兩個機器平臺放入一種中間指令作為中間層次,只需要實現3+3=6種翻譯過程,因此中間指令大大減小了二進制翻譯器支持多種源與目標機器平臺的復雜性。
中間指令是一種中間語言,中間語言最初來自于編譯器,編譯器一般首先將程序源代碼轉換成一種更適合于優化分析的形式,即在生成目標機器代碼前的中間步驟。在傳統的靜態編譯器中,編譯器一般采用一種或多種與機器無關的中間語言作為中間層次,大部分的代碼轉化與優化工作都針對該中間語言,從而使編譯器的大部分模塊能夠與機器無關,在編譯過程中從一種中間語言轉換至另一種形式,以在不同的階段適合于不同的需求,但增加中間步驟的級數也意味著增加額外的編譯開銷。在動態二進制翻譯器或動態編譯器等動態的運行時系統中,運行時的編譯開銷直接影響了程序的運行時性能,因此動態二進制翻譯器一般不值得采用多重的中間形式。
如果在二進制翻譯中使用現有的中間語言,則需要考慮它對新的使用環境的適應性問題——既包括前端語言也包括后端語言;要考慮實現它所產生的移植代價與重用現有設計和代碼所固有的開銷之間的權衡;現有的中間語言都針對編譯器設計,其源語言為一種高級程序設計語言,目標語言為機器語言,而在二進制翻譯中,源程序和目標語言均為機器語言,因此中間語言應該是機器級語言,因此現有中間語言并不完全適合于二進制翻譯的應用環境。
因此需要發明一套全新的二進制中間指令集,用中間指令集準確表達各種體系結構機器的指令,使之可以應用于各種二進制翻譯器。
發明內容
本發明的目的在于針對現有技術的不足,提供一種利用中間指令集的二進制翻譯方法,解決二進制翻譯器對各種新的應用環境的適應性問題,減小二進制翻譯器支持多源與多目標機器平臺的復雜性,實現二進制翻譯器可重定向性。
為實現這一目的,本發明針對二進制翻譯器的特點設計了一套中間指令集,作為從一種機器指令翻譯到另一種機器指令時的中間層,有效隔開源機器與目標機器。所述中間指令集是一種低層次的虛擬精簡機器指令系統,它具有無窮多個32位寄存器、Load-Store風格體系結構、單一的偏移尋址模式。中間指令的設計遵循計算機系統設計中的一條基本原則:使執行頻繁的部分保持高效,使其他的部分保持正確。中間指令集包含了各種機器指令集中一些最常用的指令,剩下相對不常用的源機器指令可以用多種中間指令模擬,也可以利用CALL中間指令,即C函數模擬。
本發明的中間指令集包含與主流機器指令集(包括RISC與CISC)相匹配的基本指令,可分為寄存器狀態映射指令、內存訪問指令、數據移動指令、運算指令、控制轉移、和特殊指令共六類指令。在將機器指令翻譯為中間指令時,將一些最常用的源機器指令直接映射到某條中間指令,而對于一些不常用源機器指令可以翻譯成多條中間指令或者用C函數模擬。
本發明采用中間指令集進行二進制翻譯的方法具體步驟如下:
1.映射源機器寄存器到虛擬寄存器
定義中間指令集具有無窮多個32位寄存器,稱虛擬寄存器,記作vn,其中v0永遠代表零值。首先分析源機器指令中將要使用的源機器寄存器,然后通過寄存器狀態映射指令GET?s,v、FGETS?s,v和FGETD?s,v,將源機器寄存器映射至虛擬寄存器,將源機器指令對源機器寄存器的狀態改變對應到中間指令對虛擬寄存器的改變,從而建立源機器寄存器到虛擬寄存器的映射關系。
2.將源機器指令翻譯為中間指令
將最常用源機器指令直接映射到某條中間指令,而對于不常用源機器指令則翻譯成多條中間指令或者用C函數模擬。其中,
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海交通大學,未經上海交通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200710047697.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:蠕動式微小管道機器人
- 下一篇:一種數據顯示方法及數據顯示系統以及相關設備





