MIPS64動態(tài)模擬器的研究與開發(fā)
發(fā)布時間:2020-10-15 09:39
指令集模擬器用來在宿主機(jī)上模擬目標(biāo)機(jī)上程序運(yùn)行過程的軟件工具。經(jīng)過長久以來的發(fā)展之后,在現(xiàn)在嵌入式系統(tǒng)開發(fā)中,指令集模擬器已經(jīng)成為了十分重要的組成部分。按照實(shí)現(xiàn)方法指令集仿真器可分為兩大類:解釋型指令集模擬器和編譯型指令集模擬器。 編譯型指令集模擬器的原理是把目標(biāo)機(jī)的指令直接翻譯為能實(shí)現(xiàn)相應(yīng)功能的宿主機(jī)上的指令,編譯型指令集模擬器包含靜態(tài)編譯和動態(tài)編譯兩類,其中動態(tài)編譯又可以分為兩種模式:未細(xì)化的動態(tài)編譯模式和可細(xì)化的動態(tài)編譯模式。未細(xì)化的動態(tài)編譯模式和可細(xì)化的動態(tài)編譯模式都是把指令翻譯成高級語言的函數(shù),區(qū)別就在于一旦指令的執(zhí)行條件發(fā)生了變化,未細(xì)化的動態(tài)編譯模式就需要重新翻譯,而后者就通過細(xì)化不同的執(zhí)行條件,不用重新翻譯。 本論文的主要工作有四部分:第一部分,實(shí)現(xiàn)了MIPS64(兼容MIPS32)除浮點(diǎn)指令以外的所有MIPS指令的語義函數(shù),這些指令主要包括算術(shù)運(yùn)算、分支指令、加載存儲指令、協(xié)處理器0的相關(guān)指令。由于MIPS指令可細(xì)化的條件不多,就把指令格式相同的指令進(jìn)行組合,從而實(shí)現(xiàn)相應(yīng)的語義函數(shù)。第二部分,實(shí)現(xiàn)了可細(xì)化的動態(tài)模式的流程,主要用到的是取指函數(shù)和執(zhí)行函數(shù)。第三部分,對可細(xì)化的動態(tài)模式進(jìn)行了改進(jìn),可以清楚了解緩存中代碼被調(diào)用的次數(shù),以便于更高級的優(yōu)化。第四部分,通過使用嵌入式匯編語言語言來編寫每條指令的驗(yàn)證程序,從而檢驗(yàn)指令集的精確性,同時通過運(yùn)行一些通用的測試程序來檢驗(yàn)可細(xì)化動態(tài)模擬指令集的性能。 本文采用基于偽指令的動態(tài)翻譯技術(shù),基本思路是在編譯階段把指令翻譯成偽指令,偽指令有指向語義函數(shù)的指針和語義函數(shù)所用到的參數(shù)共同組成。改進(jìn)的動態(tài)翻譯技術(shù)的思路是以是否出現(xiàn)分支指令為依據(jù),把分支指令本身以及之前的所有代碼存儲到vector容器內(nèi),然后把vector容器存放到Cache中。這樣,雖然在編譯階段花費(fèi)時間較多一些,但使得譯碼階段消耗的時間大量減少,從而提高了實(shí)際運(yùn)行的模擬速度。采用這種技術(shù),無論是機(jī)器結(jié)構(gòu)還是操作系統(tǒng)都不依賴于宿主機(jī)器,只要宿主機(jī)器支持C++語言即可。最后通過實(shí)驗(yàn)證明,本論文所提出的基于可細(xì)化的編譯型指令集模擬技術(shù)所實(shí)現(xiàn)的MIPS64的指令集模擬器,不僅能夠精確實(shí)現(xiàn)所有指令的功能,并且跟采用未細(xì)化的編譯型指令集模擬技術(shù)相比,性能大大提高。
【學(xué)位單位】:廣西工學(xué)院
【學(xué)位級別】:碩士
【學(xué)位年份】:2011
【中圖分類】:TP368.1
【部分圖文】:
從而降低了模擬速度,另外這種模擬器由于沒有對指令執(zhí)行的求,就使得這種直接把硬件行為映射到軟件的方法使得模擬性能言,解釋型模擬器靈活簡單,并能很好的控制應(yīng)用程序的執(zhí)行,方解釋型模擬技術(shù)的典型代表有 Simplescalar[10]模擬器,它有獨(dú)特所能生成的代碼也是符合這個體系結(jié)構(gòu)的,Simplescalar 之間的SystemC 的,能夠支持軟硬件的多核協(xié)調(diào)模擬。解釋釋型模擬的運(yùn)行1 所示[15]
圖 2-1 解釋型模擬流程Figure 2-1 Interpreted Simulation Procedure2. 靜態(tài)編譯型模擬器為了改善解釋型模擬器模擬速度低的這一問題,就出現(xiàn)了靜態(tài)編譯型模擬,它最大特點(diǎn)是將耗時的操作從模擬器的運(yùn)行時移至模擬之前,即在編譯階段。種技術(shù)的模擬速度有很明顯的提高,但缺點(diǎn)是在運(yùn)行程序不能被修改,從而不模擬自修改代碼。另外,靜態(tài)編譯模擬器在譯碼過程中要保存譯碼后的代碼,而會消耗不少存儲空間,這也是它的一大缺點(diǎn)。采用該靜態(tài)編譯方法的典型代有:PSIM,靜態(tài)編譯模擬的過程如圖 2.2 所示[20]。
圖 2-5 LLVM 編譯過程Figure 2-5 LLVM Compile Procedure2.2.2 常用的指令集模擬技術(shù)目前,市場中的模擬器品種繁多,不同的模擬器分別采用不同的指令集模擬技術(shù),來提高模擬的速度以及完善模擬的性能,以便更好的滿足市場的需求。QEMU[16]是比較常見的代表之一,它能夠在 x86 等宿主機(jī)上運(yùn)行,它采用的是動態(tài)翻譯技術(shù),可以模擬 MIPS 等體系結(jié)構(gòu)。動態(tài)翻譯方面,QEMU 把執(zhí)行路徑上的目標(biāo)指令化以一個個基本塊,并通過按需方式進(jìn)行翻譯。另外 QEMU 的另一特點(diǎn)是將動態(tài)翻譯器是和主體分開的,以便在不同體系結(jié)構(gòu)間容易的進(jìn)行移植。SimIt的翻譯思想是把 C 代碼作為中間的橋梁把目標(biāo)二進(jìn)制代碼和宿主機(jī)二進(jìn)制代碼聯(lián)系起來,SimIt 采用多處理器把翻譯操作和執(zhí)行操作分別在不同的處理器上運(yùn)行,以便提高性能。在當(dāng)今較為廣泛應(yīng)用的模擬技術(shù)方面,JIT-CCS 和 IS-CS 是兩個較突出的代表。JIT-CCS 想把解釋型模擬器和編譯型模擬器各自的優(yōu)點(diǎn)結(jié)合到一起,既具有
【參考文獻(xiàn)】
本文編號:2842007
【學(xué)位單位】:廣西工學(xué)院
【學(xué)位級別】:碩士
【學(xué)位年份】:2011
【中圖分類】:TP368.1
【部分圖文】:
從而降低了模擬速度,另外這種模擬器由于沒有對指令執(zhí)行的求,就使得這種直接把硬件行為映射到軟件的方法使得模擬性能言,解釋型模擬器靈活簡單,并能很好的控制應(yīng)用程序的執(zhí)行,方解釋型模擬技術(shù)的典型代表有 Simplescalar[10]模擬器,它有獨(dú)特所能生成的代碼也是符合這個體系結(jié)構(gòu)的,Simplescalar 之間的SystemC 的,能夠支持軟硬件的多核協(xié)調(diào)模擬。解釋釋型模擬的運(yùn)行1 所示[15]
圖 2-1 解釋型模擬流程Figure 2-1 Interpreted Simulation Procedure2. 靜態(tài)編譯型模擬器為了改善解釋型模擬器模擬速度低的這一問題,就出現(xiàn)了靜態(tài)編譯型模擬,它最大特點(diǎn)是將耗時的操作從模擬器的運(yùn)行時移至模擬之前,即在編譯階段。種技術(shù)的模擬速度有很明顯的提高,但缺點(diǎn)是在運(yùn)行程序不能被修改,從而不模擬自修改代碼。另外,靜態(tài)編譯模擬器在譯碼過程中要保存譯碼后的代碼,而會消耗不少存儲空間,這也是它的一大缺點(diǎn)。采用該靜態(tài)編譯方法的典型代有:PSIM,靜態(tài)編譯模擬的過程如圖 2.2 所示[20]。
圖 2-5 LLVM 編譯過程Figure 2-5 LLVM Compile Procedure2.2.2 常用的指令集模擬技術(shù)目前,市場中的模擬器品種繁多,不同的模擬器分別采用不同的指令集模擬技術(shù),來提高模擬的速度以及完善模擬的性能,以便更好的滿足市場的需求。QEMU[16]是比較常見的代表之一,它能夠在 x86 等宿主機(jī)上運(yùn)行,它采用的是動態(tài)翻譯技術(shù),可以模擬 MIPS 等體系結(jié)構(gòu)。動態(tài)翻譯方面,QEMU 把執(zhí)行路徑上的目標(biāo)指令化以一個個基本塊,并通過按需方式進(jìn)行翻譯。另外 QEMU 的另一特點(diǎn)是將動態(tài)翻譯器是和主體分開的,以便在不同體系結(jié)構(gòu)間容易的進(jìn)行移植。SimIt的翻譯思想是把 C 代碼作為中間的橋梁把目標(biāo)二進(jìn)制代碼和宿主機(jī)二進(jìn)制代碼聯(lián)系起來,SimIt 采用多處理器把翻譯操作和執(zhí)行操作分別在不同的處理器上運(yùn)行,以便提高性能。在當(dāng)今較為廣泛應(yīng)用的模擬技術(shù)方面,JIT-CCS 和 IS-CS 是兩個較突出的代表。JIT-CCS 想把解釋型模擬器和編譯型模擬器各自的優(yōu)點(diǎn)結(jié)合到一起,既具有
【參考文獻(xiàn)】
相關(guān)期刊論文 前6條
1 蔡啟先;劉明;余祖峰;;MIPS64指令集模擬器的建模與實(shí)現(xiàn)方法[J];計(jì)算機(jī)工程;2010年18期
2 吳清平,劉明業(yè);VHDL編譯型事件驅(qū)動模擬算法[J];計(jì)算機(jī)學(xué)報(bào);2002年01期
3 張福新;章隆兵;胡偉武;;基于SimpleScalar的龍芯CPU模擬器Sim-Godson[J];計(jì)算機(jī)學(xué)報(bào);2007年01期
4 潘新祥;胡習(xí)霜;韓立宏;;軟硬件協(xié)同設(shè)計(jì)分析[J];指揮控制與仿真;2008年03期
5 邵作之;曹曉龍;劉莉娟;;在SystemC中用ISS構(gòu)造處理器模型方法分析[J];微處理機(jī);2006年03期
6 武杰,喬崇,張俊杰,杜學(xué)峰,唐世悅,張萬生,王硯方;MIPS系統(tǒng)中北橋的FPGA設(shè)計(jì)[J];小型微型計(jì)算機(jī)系統(tǒng);2004年11期
相關(guān)碩士學(xué)位論文 前1條
1 劉明;基于64位MIPS嵌入式系統(tǒng)的動態(tài)模擬與仿真技術(shù)的研究[D];廣西工學(xué)院;2010年
本文編號:2842007
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2842007.html
最近更新
教材專著