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

一種基于FPGA的流水線8051IP核的設計與實現

2014-03-12 18:28:19王發棟杜慧玲史翔
現代電子技術 2014年5期
關鍵詞:流水指令結構

王發棟 杜慧玲 史翔

摘 要: 給出一種基于FPGA的8051MCU的IP核設計方案,指令集與標準8051系列處理器完全兼容。采用譯碼——執行兩級流水結構,并通過了仿真與綜合,理論速度較傳統8051MCU有6~10倍的提升。針對CISC流水線設計的復雜性,提出了一種高效的實現方案,可以使執行結構近滿狀態運行,且簡便有效地解決了傳統流水線所必須面對的三種沖突。設計采用Verilog HDL語言描述,并采用ModelsimSE 6.2進行功能和時序驗證,將代碼下載到Xilinx公司的FPGA上進行物理驗證,測試了一個LED流水燈程序,結果表明軟核達到了預期的效果。

關鍵字: 8051微處理器; 流水線; FPGA; 控制冒險

中圖分類號: TN710?34 文獻標識碼: A 文章編號: 1004?373X(2014)05?0080?03

0 引 言

自51單片機應用以來,對其進行功能改進和性能提升的芯片設計層出不窮。但由于其CISC的架構,對其流水線化始終局限于將CISC指令轉換為可以在一周期內完成的類RISC指令,然后使用RISC指令流水作業的方式,這雖然可以讓多條指令同時執行,但增加了譯碼結構的復雜程度,而且需要復雜的控制邏輯解決指令同時執行帶來的傳統流水線所必須面對的三種沖突。本文原創性地提出一種新的實現方案,該方案解決了這三種沖突,且在FPGA的平臺下最大限度地做到填充執行結構,使得指令可以流暢運行。

1 MCU結構與FPGA平臺

本文設計的8051 IP核是與傳統8051指令集兼容的MCU內核,不包含定時器等模塊但通過總線預留接口。其結構如圖1所示。

(1)譯碼器。負責將讀入的指令譯成可供流水線執行結構執行的控制碼,同時向其發送執行所需的地址和數據。它包含4個控制碼隊列,在譯碼過程中循環地向四個隊列中寫入當前指令的控制碼,因此可以不必等待指令執行完畢再繼續下一條指令的譯碼。

(2)流水線執行結構。讀取譯碼器發出的控制碼并進行相應的操作。主要完成對地址單元的讀寫,數據總線的操作和PC的控制。

(3)ALU算術邏輯運算單元。完成8位整數的四則運算和邏輯運算,同時內置了位尋址單元,具有位運算的功能。

(4)256 B的RAM單元。其中低128 B是連續的RAM空間,高128 B是特殊功能寄存器SFR,被分散在各模塊中。

(5) 216 B的ROM單元。指令存儲空間,存儲指令和表格。

設計采用Xilinx XCV300芯片,可以使用Xilinx公司提供的BlockRam。它不消耗邏輯資源,且可以實現雙通道讀寫,增大了內部總線的帶寬。同時,該型可以使用Xilinx提供的乘法器和除法器,有效地縮短了乘法和除法操作的時間。

2 流水線設計及性能分析

2.1 CISC指令流水化的控制碼方案

51單片機采用的是CISC架構,其指令長度從1~3 B不等,指令執行周期也不固定,對其直接進行流水化控制邏輯復雜,難度較大。吸收傳統CISC流水化實現方案的積極因素,針對FPGA平臺的特定結構,對其進行改進。總體思路是將其轉換為可單周期執行的指令,稱其為控制碼,將它發送給流水執行部件,但不像傳統流水線的方式去流水,而是進行單指令流水,即對指令A轉換的指令[a(0)-a(n)]進行流水,在A指令的全部次級指令執行完畢前,不允許其他指令進入流水線。這樣避免了流水線的結構沖突和數據沖突,對于控制沖突,由于PC在執行轉移指令前不會改變,譯碼仍然是順序譯碼,即相當于默認跳轉不成功。若預測失敗,則流水線暫停跳轉后第一條指令的字節數個周期。在中斷到來時,自動生成保存當前PC的控制碼,同時清空控制碼隊列并跳轉到中斷執行程序。

2.2 與傳統流水線方案的對比

流水線思想的最終目的,實質上是盡量并行化地使用MCU的全部資源。因此這里提出兩條觀點:

(1) 不完全流水線化的執行結構若能保證資源的充分使用,因其指令周期較流水化的指令周期短,故其整體效率與流暢的流水線相近。

(2) 盡力避免流水線沖突使得指令運行流暢,不能流暢運行的流水線其效率可能低于無流水的執行結構。

前面提到,與傳統流水線不同,這里采取的方案是單指令流水,其實質是將譯碼和執行分開,讓兩者并行運行。當指令周期與所執行指令的平均字節數即譯碼周期相等時,流水線恰好可以無中斷地運行。在FPGA平臺下,通過對控制碼的優化設計,將指令的平均周期控制在兩個時鐘周期,與51指令集的平均字節數相同,符合提出的理論。同時,在譯碼器中設置了4個控制碼隊列,保證了在字節?周期數不匹配時能夠有足夠的空間進行自動的調節。

3 流水線體系結構

(1) 控制碼定義

對其指令行為進行分析,給出譯碼器發送給流水線執行結構的控制碼定義。控制碼共19位,其中前3位是控制流水線執行器讀取源地址、目的地址及操作數的。第4~9位控制A通道的尋址和數據讀寫,第10~15位控制B通道的尋址和數據讀寫。第16、17位控制將立即數發送到A或B通道上,第18、19位控制ALU模塊讀取A或B通道上的數據。

(2) 地址、立即數與其他信息

指令執行需要的地址、立即數信息由譯碼器發送給流水線執行器,流水線執行器根據控制碼決定是否讀入信息。其中立即數和目的地址兩個字節也可以存放控制轉移類指令所需的PC地址和偏移地址。

(3) ALU控制碼

定義了一組控制碼,發送到ALU控制其執行相關的運算操作。由于ALU運算通常在指令執行的后期,為縮短指令執行周期,采用了提前發送,內部緩存的延遲方式達到同步。

(4) 雙通道下的指令時序設計特點

前面已經提到,設計所采用的FPGA有雙通道的Blockram,將兩個通道分別稱為A通道和B通道,雙通道增加了系統內部總線的帶寬,也給數據通路的設計帶來了很大的方便。例如對于數據傳送類指令,可以在上升沿從A通道讀出數據,在下降沿向B通道中寫入,使得指令在一個時鐘周期內完成。這也是除指令流水化執行以外,提高設計性能的一個重要因素。

4 流水線的實現與沖突的解決

流水線結構存在著三種冒險,即結構冒險、控制冒險和數據冒險。結構冒險指不同的指令在同一時間對同一硬件資源提出了使用的申請,從而產生了沖突;控制冒險發生在控制轉移類指令所需的條件是流水線中尚未得到的結果,因此必須等待該結果得出后才能執行;數據冒險則主要指“未寫先讀”,即后面的指令所需的源操作數是前面指令的目的操作數,因此產生了錯誤。

在本設計中,由于采用單指令流水方案,因此避免了結構冒險和數據冒險。對于控制冒險,譯碼器的預測策略是總是認為跳轉不成功,即不改變PC,繼續譯碼。若預測成功,則流水線無停滯地執行;若預測失敗,則譯碼器首先清空全部控制碼隊列,然后再進行新的譯碼,流水線將阻塞新的程序段第一條指令的字節數個周期。

5 設計仿真與綜合結果

6 結 語

本文針對8051的CISC指令集和FPGA平臺的特點,提出了一種新的CISC流水化執行方案,實現了51指令的流水化執行并解決了流水化所要面對的三種冒險。設計代碼采用Verilog?HDL編寫,仿真測試和綜合的結果表明,該設計邏輯正確,系統參數達到了要求。

參考文獻

[1] Atmel. AT89C51 8?bit microcontroller with 2K bytes flash [M]. USA: Atmel, 2008.

[2] 尚笠,葛元慶,周潤德.80C51微處理器嵌入式內核的設計研究[J].微電子學,2000,30(1):28?30.

[3] PATTERSON D A, HENNESSY J L.計算機組成與設計?軟件硬件接口[M].鄭緯民,譯.2版.北京:機械工業出版社,2012.

[4] Xilinx. Dual?port block memory core v6.3 [EB/OL]. [2005?08?31]. http://www.xilinx.com/support/documentation/ip_documentation/dp_block_mem.pdf.

[5] THIMMANNAGARI C M R. CPU design: answers to frequently asked questions [M]. USA: Springer, 2005.

[6] 李亞民.計算機組成原理與系統結構[M].北京:清華大學出版社,1999.

[7] 周寧寧,劉勝.基于FPGA技術的CPU的設計與實現[J].南京郵電學院學報,2003,23(1):77?79.

[8] 孟現元,錢偉康.FPGA嵌入式系統設計[M].北京:電子工業出版社,2007.

[9] 倪繼利,陳曦,李輝.CPU源代碼分析與芯片設計及Linux移植[M].北京:電子工業出版社,2007.

[10] SIMIC J, TERAN S. 8051 core specification [DB/OL].(2001?09?25)[2013?01?21]. http: //www.opencores.org.

前面已經提到,設計所采用的FPGA有雙通道的Blockram,將兩個通道分別稱為A通道和B通道,雙通道增加了系統內部總線的帶寬,也給數據通路的設計帶來了很大的方便。例如對于數據傳送類指令,可以在上升沿從A通道讀出數據,在下降沿向B通道中寫入,使得指令在一個時鐘周期內完成。這也是除指令流水化執行以外,提高設計性能的一個重要因素。

4 流水線的實現與沖突的解決

流水線結構存在著三種冒險,即結構冒險、控制冒險和數據冒險。結構冒險指不同的指令在同一時間對同一硬件資源提出了使用的申請,從而產生了沖突;控制冒險發生在控制轉移類指令所需的條件是流水線中尚未得到的結果,因此必須等待該結果得出后才能執行;數據冒險則主要指“未寫先讀”,即后面的指令所需的源操作數是前面指令的目的操作數,因此產生了錯誤。

在本設計中,由于采用單指令流水方案,因此避免了結構冒險和數據冒險。對于控制冒險,譯碼器的預測策略是總是認為跳轉不成功,即不改變PC,繼續譯碼。若預測成功,則流水線無停滯地執行;若預測失敗,則譯碼器首先清空全部控制碼隊列,然后再進行新的譯碼,流水線將阻塞新的程序段第一條指令的字節數個周期。

5 設計仿真與綜合結果

6 結 語

本文針對8051的CISC指令集和FPGA平臺的特點,提出了一種新的CISC流水化執行方案,實現了51指令的流水化執行并解決了流水化所要面對的三種冒險。設計代碼采用Verilog?HDL編寫,仿真測試和綜合的結果表明,該設計邏輯正確,系統參數達到了要求。

參考文獻

[1] Atmel. AT89C51 8?bit microcontroller with 2K bytes flash [M]. USA: Atmel, 2008.

[2] 尚笠,葛元慶,周潤德.80C51微處理器嵌入式內核的設計研究[J].微電子學,2000,30(1):28?30.

[3] PATTERSON D A, HENNESSY J L.計算機組成與設計?軟件硬件接口[M].鄭緯民,譯.2版.北京:機械工業出版社,2012.

[4] Xilinx. Dual?port block memory core v6.3 [EB/OL]. [2005?08?31]. http://www.xilinx.com/support/documentation/ip_documentation/dp_block_mem.pdf.

[5] THIMMANNAGARI C M R. CPU design: answers to frequently asked questions [M]. USA: Springer, 2005.

[6] 李亞民.計算機組成原理與系統結構[M].北京:清華大學出版社,1999.

[7] 周寧寧,劉勝.基于FPGA技術的CPU的設計與實現[J].南京郵電學院學報,2003,23(1):77?79.

[8] 孟現元,錢偉康.FPGA嵌入式系統設計[M].北京:電子工業出版社,2007.

[9] 倪繼利,陳曦,李輝.CPU源代碼分析與芯片設計及Linux移植[M].北京:電子工業出版社,2007.

[10] SIMIC J, TERAN S. 8051 core specification [DB/OL].(2001?09?25)[2013?01?21]. http: //www.opencores.org.

前面已經提到,設計所采用的FPGA有雙通道的Blockram,將兩個通道分別稱為A通道和B通道,雙通道增加了系統內部總線的帶寬,也給數據通路的設計帶來了很大的方便。例如對于數據傳送類指令,可以在上升沿從A通道讀出數據,在下降沿向B通道中寫入,使得指令在一個時鐘周期內完成。這也是除指令流水化執行以外,提高設計性能的一個重要因素。

4 流水線的實現與沖突的解決

流水線結構存在著三種冒險,即結構冒險、控制冒險和數據冒險。結構冒險指不同的指令在同一時間對同一硬件資源提出了使用的申請,從而產生了沖突;控制冒險發生在控制轉移類指令所需的條件是流水線中尚未得到的結果,因此必須等待該結果得出后才能執行;數據冒險則主要指“未寫先讀”,即后面的指令所需的源操作數是前面指令的目的操作數,因此產生了錯誤。

在本設計中,由于采用單指令流水方案,因此避免了結構冒險和數據冒險。對于控制冒險,譯碼器的預測策略是總是認為跳轉不成功,即不改變PC,繼續譯碼。若預測成功,則流水線無停滯地執行;若預測失敗,則譯碼器首先清空全部控制碼隊列,然后再進行新的譯碼,流水線將阻塞新的程序段第一條指令的字節數個周期。

5 設計仿真與綜合結果

6 結 語

本文針對8051的CISC指令集和FPGA平臺的特點,提出了一種新的CISC流水化執行方案,實現了51指令的流水化執行并解決了流水化所要面對的三種冒險。設計代碼采用Verilog?HDL編寫,仿真測試和綜合的結果表明,該設計邏輯正確,系統參數達到了要求。

參考文獻

[1] Atmel. AT89C51 8?bit microcontroller with 2K bytes flash [M]. USA: Atmel, 2008.

[2] 尚笠,葛元慶,周潤德.80C51微處理器嵌入式內核的設計研究[J].微電子學,2000,30(1):28?30.

[3] PATTERSON D A, HENNESSY J L.計算機組成與設計?軟件硬件接口[M].鄭緯民,譯.2版.北京:機械工業出版社,2012.

[4] Xilinx. Dual?port block memory core v6.3 [EB/OL]. [2005?08?31]. http://www.xilinx.com/support/documentation/ip_documentation/dp_block_mem.pdf.

[5] THIMMANNAGARI C M R. CPU design: answers to frequently asked questions [M]. USA: Springer, 2005.

[6] 李亞民.計算機組成原理與系統結構[M].北京:清華大學出版社,1999.

[7] 周寧寧,劉勝.基于FPGA技術的CPU的設計與實現[J].南京郵電學院學報,2003,23(1):77?79.

[8] 孟現元,錢偉康.FPGA嵌入式系統設計[M].北京:電子工業出版社,2007.

[9] 倪繼利,陳曦,李輝.CPU源代碼分析與芯片設計及Linux移植[M].北京:電子工業出版社,2007.

[10] SIMIC J, TERAN S. 8051 core specification [DB/OL].(2001?09?25)[2013?01?21]. http: //www.opencores.org.

猜你喜歡
流水指令結構
聽我指令:大催眠術
《形而上學》△卷的結構和位置
哲學評論(2021年2期)2021-08-22 01:53:34
流水
文苑(2020年10期)2020-11-07 03:15:26
論結構
中華詩詞(2019年7期)2019-11-25 01:43:04
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
流水有心
天津詩人(2017年2期)2017-11-29 01:24:12
論《日出》的結構
前身寄予流水,幾世修到蓮花?
視野(2015年6期)2015-10-13 00:43:11
創新治理結構促進中小企業持續成長
現代企業(2015年9期)2015-02-28 18:56:50
主站蜘蛛池模板: 欧美日韩中文字幕在线| 日本午夜三级| 国产在线98福利播放视频免费| 国产成人免费高清AⅤ| 人人看人人鲁狠狠高清| 亚洲a免费| 一本色道久久88综合日韩精品| 日本人又色又爽的视频| 日韩免费成人| 亚洲午夜国产片在线观看| 香蕉网久久| 亚洲,国产,日韩,综合一区| 欧美一区二区精品久久久| 欧美在线黄| 欧美日一级片| 在线免费观看a视频| 国产最爽的乱婬视频国语对白| av大片在线无码免费| 激情视频综合网| 国产毛片高清一级国语| www.亚洲天堂| 国产综合另类小说色区色噜噜| 午夜不卡福利| 国产在线观看一区精品| 国产青榴视频在线观看网站| 播五月综合| 久久天天躁夜夜躁狠狠| 99r在线精品视频在线播放 | 亚洲av无码片一区二区三区| 亚洲第一黄片大全| 欧美亚洲国产精品第一页| 美女一级毛片无遮挡内谢| 亚洲欧洲免费视频| 亚洲高清国产拍精品26u| 日韩欧美中文字幕在线精品| 久久这里只精品国产99热8| 亚洲欧美一区二区三区蜜芽| 青青操视频在线| 久久国语对白| 青草精品视频| 国产欧美精品一区aⅴ影院| 久久这里只有精品23| 伊人久综合| 久久精品66| 国产精品无码久久久久久| 自拍亚洲欧美精品| 亚洲综合网在线观看| 无码一区中文字幕| 国产精品va免费视频| 欧美一级色视频| 极品国产一区二区三区| 国产男女免费视频| 亚卅精品无码久久毛片乌克兰| 亚洲最大福利网站| 日韩在线视频网站| 国产精品99久久久| 丝袜亚洲综合| 无码日韩人妻精品久久蜜桃| 亚洲欧美不卡中文字幕| 乱系列中文字幕在线视频| 无码 在线 在线| 四虎国产成人免费观看| 久久精品这里只有精99品| 国产毛片久久国产| 欧美精品成人| 成人欧美在线观看| 久久无码av三级| 黄色在线不卡| 精品无码视频在线观看| 国产电话自拍伊人| 婷婷开心中文字幕| 99re热精品视频国产免费| 国产精品免费电影| 国产免费观看av大片的网站| 国产成人a毛片在线| 国产精品免费入口视频| 国产男女XX00免费观看| 91成人免费观看| 国产精品视频导航| 熟女日韩精品2区| 亚洲中久无码永久在线观看软件 | 日本高清免费一本在线观看|