【畢業(yè)學位論文】(Word原稿)MIPS到 IBM POWER 的動態(tài)二進制翻譯-計算機軟件工程_第1頁
【畢業(yè)學位論文】(Word原稿)MIPS到 IBM POWER 的動態(tài)二進制翻譯-計算機軟件工程_第2頁
【畢業(yè)學位論文】(Word原稿)MIPS到 IBM POWER 的動態(tài)二進制翻譯-計算機軟件工程_第3頁
【畢業(yè)學位論文】(Word原稿)MIPS到 IBM POWER 的動態(tài)二進制翻譯-計算機軟件工程_第4頁
【畢業(yè)學位論文】(Word原稿)MIPS到 IBM POWER 的動態(tài)二進制翻譯-計算機軟件工程_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

動態(tài)二進制翻譯 第 1 頁 /共 43 頁 動態(tài)二進制翻譯 摘要 現(xiàn)代計算機系統(tǒng)在設計上采用了分層架構,整個系統(tǒng)可以劃分為若干個軟件和硬件層,上下兩層之間具有嚴格定義的接口,從而保證各層可以緊密協(xié)同工作。這些軟硬件接口組合起來,構成了上層軟件的運行平臺。一般地, 傳統(tǒng)的計算機軟件與下層的機器平臺有著強烈的依賴關系, 一個軟件總是針對某種特定的運行平臺編寫的,必須在這種平臺上才能正常工作。 可是 這 大大 影響了軟件的可移植性及可移動性 ,也使機器平臺的進一步發(fā)展受制于大量業(yè)已存在的軟件 , 為了保證向前兼容性不能在軟硬件接口上進 行革新 。而虛擬機的出現(xiàn)解決了這一難題,其作為軟硬件之間的中間層解除了兩者間的耦合關系,使得軟件的二進制代碼具有了平臺的獨立性。 虛擬機 能夠通過模擬的方法,為上層軟件提供一個虛擬的運行平臺。在虛擬機的支持下,原本運行于一種軟硬件平臺上的軟件,可以不經(jīng)改動運行于另一種平臺。這種簡單的思想,有著廣闊的應用價值和研究意義。 展望未來,計算機系統(tǒng)必將朝著并行化、網(wǎng)絡化的方向發(fā)展,針對這樣分布的、孤立的計算機系統(tǒng)編寫軟件將較難充分利用各節(jié)點計算機資源。通過虛擬機技術,則將可以分布于網(wǎng)絡上的計算機運算、存儲等資源抽象化為一個 統(tǒng)一的運行平臺,大大提高了對網(wǎng)絡資源的利用。 根據(jù)在計算機系統(tǒng)架構中實現(xiàn)虛擬化的層次不同,可以將虛擬機分為系統(tǒng)級虛擬機和進程級虛擬機。 二進制翻譯( 實現(xiàn)高性能虛擬機的關鍵技術,它對源機器的二進制機器代碼進行轉(zhuǎn)換后使其運行在目標機器上。 本文所涉及二進制翻譯為進程級動態(tài)二進制翻譯 ,能夠完全模擬源平臺的 該系統(tǒng)必須在目標平臺上完成源平臺軟硬件資源的邏輯抽象、源平臺操作系統(tǒng)中各種系統(tǒng)調(diào)用的模擬、軟硬件結合的系統(tǒng)異常機制的模擬。 本文基于上海交通大學研制的動態(tài)二進制翻譯基礎平 臺 項目基 于多源多目標 的架構, 研 究 如何使用一般的中間表示 來 支持云端的 主流平臺 ,如何翻譯不同的 應用程序二 進制接口( 括系統(tǒng)調(diào)用和 及如何支持大規(guī)模的分布式翻譯系統(tǒng) , 并 使用中間語言 支持多語言的前端和后端翻譯。其在工作中一般涉及兩個主要過程, 二進制代碼翻譯過程及翻譯后的目標代碼執(zhí)行過程,通常把這樣兩個過程簡稱為 “翻譯 ”與 “執(zhí)行 ”。在整個系統(tǒng)運行時,翻譯與執(zhí)行一般以基本塊為單位,翻譯過程將源二進制代碼翻譯為目標二進制代碼,并緩存起來,之后執(zhí)行過程則從緩存中得到目標代碼 塊,并在本地系統(tǒng)上執(zhí)行。一般翻譯器的執(zhí)行方式是代碼經(jīng)翻譯后立即執(zhí)行,直到遇見未翻譯過的基本塊才再次啟動翻譯過程。 現(xiàn)在它已經(jīng)有 前端和后端。本項目的目標是向架構中添加一個新的平臺 即構建整套由中間語言 的 二進制 翻譯,以 實現(xiàn) 臺 前端 到 端 的轉(zhuǎn)換。 本文系統(tǒng)介紹了本項目所依賴的關鍵技術 括其系統(tǒng)架構、中間指令 邏輯上可以大體分為前端( 中端( 后端( 大部分。前端將源機器代碼轉(zhuǎn)換為中間指令,中端對中間指令進行進一步轉(zhuǎn)換,后端將中間指令轉(zhuǎn)換為可運行的目標平臺機器代碼。中間指令有效地解除了了源機器與目標機器的耦 動態(tài)二進制翻譯 第 2 頁 /共 43 頁 合,是實現(xiàn)可重定向性的關鍵。中間指令集 通過對不同處理器指令集進行總結與研究后高度概括的一套指令集系統(tǒng)。構建一個基于中間指令的模擬器,將不同機器平臺的指令翻譯成中間指令,便可以實現(xiàn)基于中間 指令的可重用平臺。中間指令集 現(xiàn)可重定向性的核心。 本文對 個關鍵模塊進行了深入分析,包括內(nèi)存映像的加載、源機器指令的解釋、中間指令的構造和優(yōu)化,以及目標代碼的生成。內(nèi)存映像的加載是指 端讀取的源平臺的可執(zhí)行文件,然后通過解釋器翻譯成中間語言,該方法必然會產(chǎn)生過高的代碼膨脹率,導致生成的指令數(shù)過多,性能下降,所以本文探討了基本塊內(nèi)優(yōu)化如 式轉(zhuǎn)換和冗余指令刪除,代碼塊鏈接和熱路徑或超級塊的生成等優(yōu)化措施的運用。最后將中間代碼組成基本 塊 后,由執(zhí)行 引擎執(zhí)行。其中牽涉到諸如相同代碼的緩存機制 及目標平臺寄存器的分配問題,由于 存器數(shù)目很大,所以無需考慮寄存器分配策略。 本文不但詳細介紹了 深入源碼,模塊化分析了 件的結構的解析,到源平臺 中間指令 如何優(yōu)化包含 指令塊 具體中間指令 令的翻譯,到目標指令塊 構建,最后到 執(zhí)行。 關鍵詞: 虛擬機,動態(tài)二進制翻譯, 動態(tài)二進制翻譯 第 3 頁 /共 43 頁 O he of is on up of In is on is It to to of of as as up of of of is of of as an in so as to of is on a by on of or to of is is so of of we in to a of to in of be is to on to on on a or in or in in is 動態(tài)二進制翻譯 第 4 頁 /共 43 頁 of of it to of on of of of of of is to do on of ab In is a of to on is on on to a to as as to to a to of it to of of is to of is in is as a is on of is to is By of is to a to as a to to to of ab is is to be of is to of so as to it to on of is to is a by It is to a by a on as as of 動態(tài)二進制翻譯 第 5 頁 /共 43 頁 is to in of of of of of of in of of as as of or of of by to of of in by so we t to of of in of to by as of LF to to of of 動態(tài)二進制翻譯 第 6 頁 /共 43 頁 目錄 第一章 . 緒論8 究背景 . 8 擬機分類 . 8 進制翻譯 . 10 于本文 . 10 究目標 . 10 文結構 . 10 第二章 動態(tài)二進制翻譯基礎平臺 述 . 12 計目標 . 12 重定向 . 12 擴展 . 13 統(tǒng)架構 . 13 間指令集 . 15 述 . 15 間指令集的設計 . 16 間指令的實現(xiàn) . 17 結 . 22 第三章 模塊深入分析 . 23 端平臺二進制文件的加載 . 23 譯為中間語言表示 . 23 化 . 24 本塊內(nèi)優(yōu)化 . 24 碼塊的鏈接 . 25 路徑或超級塊的生成 . 25 譯為后端可執(zhí)行代碼 . 25 存器分配 . 25 動態(tài)二進制翻譯 第 7 頁 /共 43 頁 標代碼緩存( 現(xiàn)方法 . 26 行流程 . 26 結 . 27 第四章 基于 實現(xiàn)與分析 . 28 . 28 指令結構 . 29 寄存器使用規(guī)則 . 29 . 29 寄存器使用規(guī)則 . 30 存映像加載 . 30 載 執(zhí)行文件 . 31 間語言翻譯 . 32 令到 . 33 入到 . 33 間指令的優(yōu)化 . 35 式 . 35 余刪除優(yōu)化 . 36 標機器指令翻譯 . 37 間指令到 令 . 37 行 . 39 試分析 . 40 結 . 40 第五章 結論 . 41 參考文獻 . 42 謝辭 . 43 動態(tài)二進制翻譯 第 8 頁 /共 43 頁 第一章 緒論 現(xiàn)代計算機系統(tǒng)在設計上采用了分層架構,整個系統(tǒng)可以劃分為若干個軟件和硬件層,上下兩層之間具有嚴格定義的接口,從而保證各層可以緊密協(xié) 同工作。這些軟硬件接口組合起來,構成了上層軟件的運行平臺。一般地, 傳統(tǒng)的計算機軟件與下層的機器平臺有著強烈的依賴關系, 一個軟件總是針對某種特定的運行平臺編寫的,必須在這種平臺上才能正常工作??墒沁@大大影響了軟件的可移植性及可移動性,也使機器平臺的進一步發(fā)展受制于大量業(yè)已存在的軟件 , 為了保證向前兼容性不能在軟硬件接口上進行革新 。 隨著移動計算時代的到來,一方面計算機系統(tǒng)越來越呈現(xiàn)出多樣性,新的體系結構和操作系統(tǒng)不斷涌現(xiàn),尤其在消費電子市場,各種面向不同應用的計算設備具有明顯的平臺差異性;另一方面卻對計算機系統(tǒng) 間的互操作性要求越來越高,軟件被要求能夠在不同的機器間移動和運行。這對于傳統(tǒng)的計算機系統(tǒng)是一個挑戰(zhàn)。本文基于上海交通大學研制的動態(tài)二進制翻譯基礎平臺 實質(zhì)為二進制翻譯技術的進程虛擬機,嘗試對二進制軟件程序與機器平臺的依賴關系進行探索,使來自 臺的軟件能夠脫離限制運行在 機器平臺上。本章的剩余部分詳細描述了本文的研究背景,研究目標,研究過程與研究意義。 究背景 為了解除抽象與接口之間的依賴關系,我們可以用一個中間層置于抽象層次之間,以模糊上下 兩個抽象層之間的接口。這個間接的中間層被稱形象地稱為虛擬機( 虛擬機能夠通過模擬的方法,為上層軟件提供一個虛擬的運行平臺。 擬機分類 按照所提供的虛擬環(huán)境的不同,可以將虛擬機分為系統(tǒng)級虛擬機和進程級虛擬機。系統(tǒng)級虛擬機支持完整的一套 括用戶指令和特權指令),進程級虛擬機支持一套 戶指令加上系統(tǒng)調(diào)用)。系統(tǒng)級虛擬機之上可以運行操作系統(tǒng)、 系統(tǒng)級軟件,著名的 C 以及 M 系列軟件等都屬于這一類。進程級虛擬機面向的則是用戶程序和應用軟件,前面提到的 2、開源軟件 個能夠讓 32 位 序運行在 作系統(tǒng)上的軟件包)以及 擬機等都屬于進程級虛擬機。 (1) 系統(tǒng)級虛擬機 劃分軟硬件的邊界,由用戶級 系統(tǒng)級 成。用戶級 非特權指令,包括常見的計算指令、訪存指令、控制轉(zhuǎn) 移指令等;系統(tǒng)級 特權指令,比如訪問系統(tǒng)寄存器、 此, 于 它能夠支持上層的操作系統(tǒng)及其進程, 動態(tài)二進制翻譯 第 9 頁 /共 43 頁 使其在一個虛擬系統(tǒng)環(huán)境中運行。 如圖 1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論