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