天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當(dāng)前位置:主頁 > 科技論文 > 計算機(jī)論文 >

高可移植性x86模擬器的指令翻譯和系統(tǒng)態(tài)實(shí)現(xiàn)框架

發(fā)布時間:2020-05-15 16:32
【摘要】:過去的三十多年來,無論是在商用領(lǐng)域還是個人家用領(lǐng)域,基于Intelx86[7]架構(gòu)的服務(wù)器和個人主機(jī)都具有很高的市場份額[8]。不過近些年來,隨著消費(fèi)者對智能手機(jī)和平板電腦等移動計算設(shè)備的需求越來越大,以ARM[4]為領(lǐng)頭羊的RISC[1]芯片因?yàn)槠涫‰�、開發(fā)周期短、芯片尺寸小等優(yōu)勢,對x86芯片發(fā)起了挑戰(zhàn)。另一方面,出于對國家安全和科技發(fā)展的戰(zhàn)略角度考慮,中國也自主研發(fā)出了“龍芯”[26]和“眾志Unicore-2"[27]等一批RISC處理器。倘若ARM、“龍芯”和“眾志Unicore-2"等RISC處理器能夠兼容流行架構(gòu)x86的操作系統(tǒng)和應(yīng)用程序的話,則能夠更容易地獲得終端用戶的接受。 為了使得異體系架構(gòu)處理器對x86上運(yùn)行的軟件可兼容,x86模擬器是個理想的解決方案。它可以運(yùn)行在非x86體系架構(gòu)的平臺上,模擬出符合x86標(biāo)準(zhǔn)的虛擬硬件環(huán)境,使得專門針對x86架構(gòu)編寫的軟件可以通過模擬器建立的虛擬x86環(huán)境,運(yùn)行在異體系架構(gòu)的處理器上。 口前,支持多種微處理器架構(gòu)宿主硬件平臺的x86模擬器都是運(yùn)行在用戶態(tài)的,而可運(yùn)行在系統(tǒng)態(tài)的x86模擬器都是專門針對特定宿主硬件平臺開發(fā)的。因此,針對中國自主研發(fā)的微處理器架構(gòu)的系統(tǒng)態(tài)x86模擬器需要專門研發(fā)。 本文章要介紹一個高可移植性的x86模擬器PEX86 (Portable Emulator for x86)的動態(tài)二進(jìn)制指令翻譯方法和該模擬器在系統(tǒng)態(tài)實(shí)現(xiàn)的軟件框架。PEX86的解釋型動態(tài)二進(jìn)制指令翻譯技術(shù)具有較好的可移植性。它運(yùn)行在計算機(jī)的系統(tǒng)態(tài),即PEX86無需操作系統(tǒng)的支持,直接管理所有的系統(tǒng)硬件資源。由于要模擬整個x86硬件平臺的工作量較大,PEX86現(xiàn)階段僅支持x86硬件平臺工作在實(shí)模式下的模擬。不過,這為今后進(jìn)一步支持x86硬件平臺工作在保護(hù)模式下的模擬打下了堅實(shí)基礎(chǔ)。 本文的主要貢獻(xiàn)如下: 1、探索了針對中國自主研發(fā)的微處理器面向x86操作系統(tǒng)和應(yīng)用程序的可兼容問題的解決方法。 2、使用了具有較好可移植性的動態(tài)二進(jìn)制指令翻譯技術(shù)和模擬器在系統(tǒng)態(tài)的實(shí)現(xiàn)框架,令運(yùn)行在系統(tǒng)態(tài)的模擬器可較容易地支持不同微處理器架構(gòu)的宿主硬件平臺。 3、使用按功能分層和抽象化、模塊化的系統(tǒng)態(tài)實(shí)現(xiàn)框架,使得虛擬外設(shè)和宿主平臺外設(shè)之間的映射關(guān)系靈活、可配置,也使得在模擬器中增加和修改一個虛擬外設(shè)的工作變得簡單。
【圖文】:

未對齊,字節(jié)數(shù)據(jù),地址


內(nèi)存訪問地址對齊(ByteAl19恤ent)所有處理器能處理的數(shù)據(jù)長度都是2的n次方(n為大于等于O的整數(shù))字節(jié)。比如一個典型的x8632位處理器能處理的數(shù)據(jù)類型有Byte類型(l個節(jié)),WORD類型(2個字節(jié))和Dw0RD類型(4個字節(jié)),若是64位處理器的還能處理長度是8個字節(jié)或者16個字節(jié)的數(shù)據(jù)。因此有些處理器會要求存放個x個字節(jié)長度的數(shù)據(jù)時,其內(nèi)存地址必須也是x個字節(jié)對齊的。例如當(dāng)程序求存放一個占據(jù)4字節(jié)的整型時,該整型一定要存放在4字節(jié)對齊的地址(即內(nèi)存地址必須能被4整除)。為什么會有上述的限制呢?理解了內(nèi)存組織,就會清楚了。CPU通過地址線來存取內(nèi)存中的數(shù)據(jù),32位的CPU的地址總線寬度為32位,標(biāo)為A【O:31〕。一個總線周期內(nèi),CPU從內(nèi)存讀/寫32位。但是每次CPU只能在能夠被4整除地址進(jìn)行內(nèi)存訪問,這是因?yàn)?2位CPu不使用地址總線的A1和A2。比如ARM,的A[O:l]用于字節(jié)選擇,用于邏輯控制,而不和存儲器相連,存儲器連接A〔2:31〕。當(dāng)一個32位的CPU從內(nèi)存中要取出一個char類型的數(shù)據(jù)(占1個

工作流程圖,動態(tài)指令,工作流程,翻譯指令


接下來我們研究一下一個在ARM上運(yùn)行的x86模擬器動態(tài)地翻澤一條MOVEAX,〔EBX〕指令(將EBX寄存器內(nèi)所指的內(nèi)存地址的32位數(shù)據(jù)讀取到EAX寄存器,卜,【23])的流程,如圖2.3所示。盡叩code盡mod-翻翻譯指令令 XXX86RAMMM寫寫操作數(shù)數(shù) 數(shù)模擬計算 算 MMMOVEAX,[EBXIII尸一一一少\}{月ov‘一,/!’“r 11llOVr7,r2r6,,X86--RAM一BASE+r7 f1.r6圖2.3動態(tài)指令翻譯的工作流程一個二進(jìn)制指令翻譯模塊一般都會被設(shè)計成一個包含了取指令、翻譯指令、取出操作數(shù)(從被模擬的X86內(nèi)存中)、模擬計算、寫回操作數(shù)(向被模擬的x86內(nèi)存)這5個階段的無限循環(huán)。除非遇到一些特殊情況,比如產(chǎn)生了x86的硬件或者軟件中斷等,否則這個無限循環(huán)會一直進(jìn)行下去。為了模擬 x86CPU取指令的行為,x86模擬器中也會有一個EIP寄存器
【學(xué)位授予單位】:復(fù)旦大學(xué)
【學(xué)位級別】:碩士
【學(xué)位授予年份】:2011
【分類號】:TP332

【相似文獻(xiàn)】

相關(guān)期刊論文 前10條

1 馬平濤;;淺析公司服務(wù)器虛擬化[J];中國新技術(shù)新產(chǎn)品;2009年21期

2 安建峰;樊曉椏;;x86指令集兼容處理器中微指令的設(shè)計與驗(yàn)證[J];西北工業(yè)大學(xué)學(xué)報;2010年02期

3 張倫;;X86虛擬機(jī)的實(shí)現(xiàn)[J];計算機(jī)與網(wǎng)絡(luò);2007年10期

4 俞建新;PowerPC發(fā)展綜述[J];工業(yè)控制計算機(jī);2000年02期

5 王愛榮;;防火墻三大硬件體系市場未來分析[J];信息安全與通信保密;2006年02期

6 陳q

本文編號:2665324


資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2665324.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶c250e***提供,本站僅收錄摘要或目錄,作者需要刪除請E-mail郵箱bigeng88@qq.com