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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論