新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于X86平臺(tái)的ARM指令集模擬器的設(shè)計(jì)

基于X86平臺(tái)的ARM指令集模擬器的設(shè)計(jì)

作者: 時(shí)間:2016-10-10 來(lái)源:網(wǎng)絡(luò) 收藏

2.4 指令集的內(nèi)核設(shè)計(jì)
內(nèi)核結(jié)構(gòu)如圖5所示。

本文引用地址:http://www.butianyuan.cn/article/201610/306034.htm

e.JPG


2.4.1 內(nèi)核解碼模塊設(shè)計(jì)
指令內(nèi)核中的解碼模塊包括取指令模型和指令轉(zhuǎn)換模型兩部分內(nèi)容,取指令模型介紹了內(nèi)核程序如何從加載的目標(biāo)代碼中取出逐條指令,指令轉(zhuǎn)換模型介紹了取出的逐條指令是如何轉(zhuǎn)換成中間語(yǔ)言指令來(lái)實(shí)現(xiàn)的。
1)取指令模型
本文設(shè)計(jì)的模擬器中取指令模型結(jié)構(gòu)如圖6所示,包括指令計(jì)數(shù)器、指令格式解析器、指令格式解析器、取指令邏輯控制器和指令地址更新邏輯。指令計(jì)數(shù)器是處理器都會(huì)有的一個(gè)寄存器。不同的處理器有不同的表現(xiàn)形式。

f.JPG


2)指令的轉(zhuǎn)換模型
指令譯碼就是根據(jù)指令集編碼,將要執(zhí)行的指令譯成操作碼、操作數(shù)、條件碼等指令仿真需要的信息。譯碼的重點(diǎn)在于獲取不同尋址方式下的操作數(shù),通過(guò)分析指令字助記符和指令碼,可以很方便地得到不同尋址方式的操作數(shù)。由于本文設(shè)計(jì)的指令集虛擬模擬的指令集,所以加入指令轉(zhuǎn)換模型,指令轉(zhuǎn)換是將一條目標(biāo)機(jī)器指令轉(zhuǎn)換為一條或幾條中間可執(zhí)行指令集的過(guò)程。轉(zhuǎn)換工作由指令轉(zhuǎn)換器完成。其工作模型如圖7所示,一條源指令經(jīng)過(guò)指令譯碼模塊翻譯,生成一系列的中間語(yǔ)言隊(duì)列,在本模擬器中,中間語(yǔ)言就是能在平臺(tái)上運(yùn)行的匯編語(yǔ)言。

g.JPG


2.4.2 內(nèi)核指令模擬與調(diào)度模塊
指令調(diào)度就是把指令字與完成相應(yīng)操作的功能函數(shù)對(duì)應(yīng)起來(lái),使得仿真時(shí)取到該指令后能知道該調(diào)用哪個(gè)執(zhí)行過(guò)程。本文是基于傳統(tǒng)的解釋型仿真策略,其主體是一個(gè)大的switch結(jié)構(gòu),并使用case語(yǔ)句。這種設(shè)計(jì)模型會(huì)影響模擬速度,由于case語(yǔ)句的種類非常多,所以在今后的工作中,這里將會(huì)是一個(gè)重點(diǎn)的研究對(duì)象,可以采用hash結(jié)構(gòu)、壓縮算法或者指令緩存來(lái)提高指令譯碼的執(zhí)行效率,這也將會(huì)是模擬器的整體執(zhí)行效率得到一個(gè)很大的提高。
指令模擬執(zhí)行模塊把指令分類處理并采用數(shù)據(jù)獲取和數(shù)據(jù)操作相分離的方法,使得執(zhí)行函數(shù)更具有通用性,當(dāng)新的指令系統(tǒng)添加時(shí),只需要添加相應(yīng)的尋址方式和原系統(tǒng)中沒(méi)有的指令執(zhí)行過(guò)程,就能完成添加指令集的操作,提高了系統(tǒng)設(shè)計(jì)的可擴(kuò)展性。

3 結(jié)束語(yǔ)
本文是針對(duì)嵌入式開發(fā)現(xiàn)階段的主要存在的問(wèn)題,即傳統(tǒng)低下的開發(fā)效率和當(dāng)下對(duì)較短市場(chǎng)開發(fā)周期的要求之間的矛盾,提出了ARM指令集模擬器的設(shè)計(jì)和實(shí)現(xiàn)方法。以及對(duì)指令集模擬技術(shù)的介紹和掌握。目前,與嵌入式系統(tǒng)相關(guān)的軟件開發(fā)復(fù)雜度越來(lái)越高,因此指令集模擬器的發(fā)展前景十分樂(lè)觀。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: X86 ARM 模擬器

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉