999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

虛擬X86處理器的研究與實現(xiàn)

2013-04-12 00:00:00楊冠男何菁袁杰
現(xiàn)代電子技術(shù) 2013年16期

摘 要: 傳統(tǒng)ISA處理器由于其內(nèi)部有限的邏輯資源和外部固定的引腳封裝,大大地限制了它的應(yīng)用范圍,但可以充分利用FPGA豐富的邏輯資源來實現(xiàn)傳統(tǒng)MCU中的各個組成部分,即Virtual MCU,在此以8086為例說明。它的可配置引腳將會幫助降低硬件設(shè)計復(fù)雜度。使用該方式構(gòu)建系統(tǒng),對于上層軟件工程師而言其編程操作與標(biāo)準(zhǔn)MCU相一致,而對于底層可以自由配置I/O引腳,獲得最大的硬件自由度。可以依據(jù)自己的需求,定制自己的系統(tǒng),如增加各種外設(shè),以達(dá)到傳統(tǒng)MCU所無法完成的要求。板級驗證結(jié)果,表明該研究實現(xiàn)了既定目標(biāo),與標(biāo)準(zhǔn)MCU?8086兼容,系統(tǒng)運行穩(wěn)定。

關(guān)鍵詞: ISA處理器; FPGA; Virtual MCU; MCU?8086

中圖分類號: TN911?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2013)16?0120?03

1 研究背景及8086簡介

隨著時代的推進(jìn),對控制要求及功能逐漸增多,但傳統(tǒng)ISA處理器由于其內(nèi)部有限的邏輯資源和外部固定的引腳封裝,限制了它的應(yīng)用范圍。其在產(chǎn)品升級會遇到資源受限等問題,對產(chǎn)品的推廣和維護(hù)方面存在限制;再如目前大部分高校的電子專業(yè)開設(shè)微處理器等相關(guān)課程實驗時,需針對各種不同架構(gòu)的MCU采購不同的學(xué)習(xí)平臺,這樣造成了資源的大量浪費。

為了克服上述諸多問題,可以充分利用FPGA豐富的邏輯資源來虛擬出MCU平臺[1?2],本文以Virtual 8086 為例進(jìn)行說明。

Intel 8086是由Intel于1978年設(shè)計的16位微處理器芯片,它是X86的鼻祖。Intel 8086擁有4個16位通用寄存器,也能夠當(dāng)作8個8位寄存器來存取,以及8個16 位索引寄存器(包含了堆棧指標(biāo)),Intel 8086有8個內(nèi)存區(qū)段(segment)寄存器。

2 Virtual 8086 Core

Virtual 8086 Core是依據(jù)INTEL的8086處理器設(shè)計的,擁有16位寄存器和8位外部數(shù)據(jù)總線[3?4]。雖然8086結(jié)構(gòu)較為簡單,但是可以認(rèn)為是X86系統(tǒng)中的基礎(chǔ),對于了解X86系統(tǒng)的指令集有較好的作用。在Virtual 8086 Core中是以HT?LAB所推出的開源8086核?CPU86為基礎(chǔ),針對自身環(huán)境進(jìn)行移植。Virtual 8086 Core的結(jié)構(gòu)圖如圖1所示[5?6]。

2.1 存儲器管理

Virtual 8086 Core是參照Intel 8086微處理器設(shè)計,是馮諾依曼結(jié)構(gòu)。采用邏輯連續(xù),物理分離的總線結(jié)構(gòu)見圖2。主要分為如下幾部分:

(1)int Vectors(中斷向量表)。用于存放中斷跳轉(zhuǎn)地址,可以使用ROM來固定中斷函數(shù)地址也可以使用RAM,初始化后,可以動態(tài)的調(diào)整中斷處理函數(shù)地址。

(2)MON883。用于引導(dǎo)和加載應(yīng)用程序至RAM中,該空間一般使用BRAM來配置為ROM類型。

(3)RAM。用于存放應(yīng)用程序,并且為應(yīng)用程序提供必要的內(nèi)存空間。

(4)Bootstrap。啟動引導(dǎo)區(qū),用于RESET后跳轉(zhuǎn)至MON88程序入口,啟動MON88,該空間一般使用BRAM來配置為ROM類型[7?8]。

Virtual 8086 Core啟動過程:復(fù)位后首先進(jìn)入的是Bootstrap空間,Bootstrap并不進(jìn)行其他的操作,至負(fù)責(zé)將程序指針跳轉(zhuǎn)至MON88區(qū);MON88程序首先初始化標(biāo)準(zhǔn)輸入/輸出、內(nèi)部堆棧等寄存器,初始化完成后,允許用戶通過命令來加載應(yīng)用程序;加載結(jié)束后,跳轉(zhuǎn)至應(yīng)用程序,開始執(zhí)行程序。Virtual 8086 Core的存儲器管理機構(gòu)為單總線結(jié)構(gòu),對于實現(xiàn)上較為簡單,按正確的時序產(chǎn)生時序即可,這里不再贅述[9]。

2.2 外設(shè)接口

Virtual 8086 Core只有單一總線模式,因此對于外設(shè)的尋址采用地址映射方式,該方式實現(xiàn)簡單,但是可能會造成地址空間的浪費[10]。

2.3 CPU86

HT?LAB的開源核CPU86兼容8086/8088指令集,其內(nèi)部結(jié)構(gòu)與標(biāo)準(zhǔn)8086一致。CPU86的外圍接口圖如圖3所示,主要由數(shù)據(jù)線、時鐘線和基本的控制線構(gòu)成,對于移植也較為簡便。

3 Virtual 8086 測試

Virtual 8086 Core所執(zhí)行的程序都是固化在ROM中,為了的測試要求,需要多次更新ROM中的內(nèi)容,為此,需要使用EDK來開發(fā)一個測試工具。

3.1 測試工具

為了能夠很好的更新ROM中的數(shù)據(jù),首先要做的是將BRAM配置為雙端口RAM,一端口給Virtual 8086 Core來進(jìn)行讀取操作,一端口提供給EDK,用來更新程序存儲器;同時EDK也可以提供簡單的控制任務(wù),如重啟Virtual 8086 Core等,EDK使用UART來和計算機進(jìn)行操作。EDK操作流程如圖4所示。

為了方便控制,設(shè)計了一個較為簡易的PC端串口程序,用于將EDK與PC交互。其工作過程較為簡單,主要是將用戶的命令或者文件經(jīng)串口發(fā)送至EDK,其截屏如圖5所示。

3.2 測試結(jié)果

搭建一個簡單系統(tǒng),使用串口作為8086的標(biāo)準(zhǔn)輸入輸出,使用ISE綜合布線布局,其資源消耗如圖6所示。編寫一段簡易測試程序,功能為輸出hello world,并等待輸入q,獲得q輸入后退出程序,其代碼如下:

; Hello World using int21 display string routine

ORG 0100h ; result in .com start IP=0100

MOV DX,OFFSET MESS ; String offset in DX, Segment in DS

MOV AX,0900h ; Call print string bios service

INT 21h ; in mon88

waitk: MOV AH,01 ; Get char

INT 21h

CMP AL,’q’; ’q’ pressed?

JNE waitk ; No, then wait

MOV AX,04C00h ; exit with code 0 (in AL)

INT 021h ; back to bootloader/monitor

MESS DB 0Ah,0Dh,\"*** Hello World ***\"

DB 0Ah,0Dh,\"Press q to return to MON88......\",0

使用A86.com編譯工具,生成HEX文件后,直接通過MON88引導(dǎo)程序更新代碼段,并執(zhí)行其程序,其結(jié)果如圖7所示。使用PC終端將代碼下載至片內(nèi)RAM中,由MON88負(fù)責(zé)引導(dǎo)運行。

4 結(jié) 語

使用FPGA中的豐富資源來虛擬MUC?8086是完全可行的。在工業(yè)上使用該方法可以幫助設(shè)計中不必特別在意底層硬件設(shè)計的困難,而且還可以幫助設(shè)計者裁剪出理想的系統(tǒng),由于采用了較為成熟的MCU內(nèi)核,其設(shè)計資源眾多,有助于產(chǎn)品快速的上市,甚至可將以往程序不做任何修改而移植到新系統(tǒng)中,來發(fā)揮更加強大的作用。對電子產(chǎn)品的開發(fā)有著很大的推進(jìn)作用,可做到真正的模塊化開發(fā),定制自己的系統(tǒng)。

Virtual MUC應(yīng)用在教育上也有廣泛的意義,可節(jié)省資源開銷,對于改善相關(guān)學(xué)科的實驗也有著重要的影響,可以使用Virtual 8086微處理器,開展如下實驗:

(1)匯編實驗,從了解最簡單的8086匯編指令開始,學(xué)習(xí)編寫匯編指令,編譯環(huán)境等;

(2) 8086實驗,將匯編程序加載后,調(diào)試運行,觀察指令運行過程,并觀察寄存器值的變化。

通過讓學(xué)生編寫匯編程序在板級調(diào)試,讓學(xué)生能夠明白匯編語言的原理和構(gòu)成,對于學(xué)生掌握計算機原理有著很好的幫助,尤其是今后有志從事X86平臺開發(fā)的同學(xué),可以從底層了解每一條匯編語言的執(zhí)行過程和對硬件操作的方法。

參考文獻(xiàn)

[1] 姚遠(yuǎn),李辰.FPGA應(yīng)用開發(fā)入門與典型實例[M].北京:人民郵電出版社,2010.

[2] 郭書軍,王玉花.流水線技術(shù)在FPGA 設(shè)計中的應(yīng)用[J].北方工業(yè)大學(xué)學(xué)報,2004,16(1):62?64.

[3] 雒雄,曹建.基于FPGA的簡易MCU設(shè)計[J].現(xiàn)代電子技術(shù),2007,30(14):44?47.

[4] 向敏.微控制器原理及應(yīng)用[M].北京:人民郵電出版社,2012.

[5] 宋澤明,陳文楷.基于FPGA的算術(shù)邏輯單元設(shè)計[J].現(xiàn)代電子技術(shù),2003,26(10):90?92.

[6] 馬一梅,王巍,苗長云,等.基于FPGA的片上嵌入式系統(tǒng)設(shè)計 [J].儀器儀表用戶,2009,16(2):45?46.

[7] 王焱龍.基于MCU+FPGA的驗證平臺技術(shù)研究[D].西安:西安電子科技大學(xué),2010.

[8] 劉麗,劉第.16位微控制器的設(shè)計與實現(xiàn)[J].電子設(shè)計工程, 2010(6):84?86.

[9] 顧暉.微機原理與接口技術(shù):基于8086和Proteus仿真[M].北京:電子工業(yè)出版社,2011.

[10] 胡啟道,張福洪,戴紹港.基于MCU的FPGA在線配置[J].電子器件,2007,30(3):323?325.

主站蜘蛛池模板: 成人另类稀缺在线观看| 国产在线观看99| 在线观看国产精品第一区免费 | 国模极品一区二区三区| 久久综合AV免费观看| 亚洲国产理论片在线播放| 女人18毛片水真多国产| 91精品日韩人妻无码久久| 国产成人精品优优av| 她的性爱视频| 国产91在线免费视频| 五月六月伊人狠狠丁香网| 亚洲熟女中文字幕男人总站| 亚洲精品另类| 国产成人盗摄精品| 九九香蕉视频| 91在线精品免费免费播放| 成人福利视频网| 国产精品性| 日韩毛片在线播放| 欧洲在线免费视频| 狂欢视频在线观看不卡| 午夜人性色福利无码视频在线观看| 亚洲男人的天堂在线| 在线无码九区| 成年人免费国产视频| 午夜日b视频| 亚洲国产欧美国产综合久久 | 亚洲青涩在线| 制服丝袜在线视频香蕉| 日韩免费成人| 国产一区二区三区夜色| 91亚洲精品第一| 国产视频资源在线观看| 高清不卡一区二区三区香蕉| 欧美日本视频在线观看| 国产成人在线无码免费视频| 久久免费视频6| 国产一在线| 在线观看国产一区二区三区99| 国内精品小视频在线| 亚洲AⅤ波多系列中文字幕 | av在线人妻熟妇| 久久综合色视频| 狠狠色丁香婷婷综合| 精品国产www| 五月天久久综合国产一区二区| 最新国产成人剧情在线播放| 亚洲高清中文字幕在线看不卡| 国产三级国产精品国产普男人| 国产激情无码一区二区APP| 黄色免费在线网址| 国产成人综合久久精品尤物| 五月婷婷激情四射| 亚洲无码37.| 2021国产乱人伦在线播放| 亚洲中文精品人人永久免费| 国产亚洲高清视频| 国产在线一二三区| 88av在线看| 五月天福利视频| 99久久99视频| 国产亚洲精品自在久久不卡 | 国产精品深爱在线| 伦精品一区二区三区视频| 中文字幕久久亚洲一区| 亚洲人视频在线观看| 激情综合网激情综合| 欧洲欧美人成免费全部视频| 激情综合网激情综合| 高清无码一本到东京热| 欧美日韩国产在线观看一区二区三区| 中文字幕欧美成人免费| 色偷偷男人的天堂亚洲av| 亚洲码在线中文在线观看| 成人亚洲视频| 老司国产精品视频91| 波多野结衣中文字幕一区二区| 久无码久无码av无码| 亚洲国产亚洲综合在线尤物| 高清码无在线看| 香港一级毛片免费看|