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

基于MIPS架構(gòu)的多周期CPU設(shè)計

2018-09-17 03:28:22成,榮
軟件 2018年8期
關(guān)鍵詞:指令設(shè)計

柳 成,榮 靜

?

基于MIPS架構(gòu)的多周期CPU設(shè)計

柳 成,榮 靜

(揚州大學(xué)廣陵學(xué)院,江蘇 揚州 225000)

為了提高多周期CPU流水線的效率,在指令存儲器和數(shù)據(jù)存儲器的數(shù)據(jù)讀取中設(shè)計發(fā)送地址在上升沿、讀取數(shù)據(jù)在下降沿,從而實現(xiàn)譯碼和訪存在一個周期內(nèi)完成。在取指級不再單獨設(shè)置加法器,把PC+4放在ALU中完成。通過大量的多路選擇器與數(shù)據(jù)交互總線來進(jìn)行數(shù)據(jù)聯(lián)通。采用Verilog HDL語言設(shè)計出CPU,并在VIVADO平臺上實現(xiàn)仿真,最后通過龍芯公司的LS-CPU-EXB-002試驗箱來進(jìn)行驗證,結(jié)果表明所設(shè)計的多周期CPU的有效性。

流水線;Verilog HDL;多周期CPU;LS-CPU-EXB-002試驗箱

0 引言

MIPS架構(gòu)是為流水線而生,每條MIPS指令的執(zhí)行分為五個部分,每一個部分為一個流水級。MIPS是最簡單且內(nèi)核開源的微處理器之一,相對于其它架構(gòu)微處理器,相同位數(shù)的MIPS架構(gòu)的時鐘頻率較低,其運行速度也較慢。高效的CPU要求流水線的每一個階段都占用固定的時間,再通過縮短流水線各個階段的執(zhí)行時間來提高時鐘頻率,在此我們通過改進(jìn)取地址和讀數(shù)據(jù)時鐘控制來實現(xiàn)。

傳統(tǒng)的MIPS架構(gòu)多周期CPU的設(shè)計中,在發(fā)送地址的下一拍才能獲得相應(yīng)的數(shù)據(jù),從指令和數(shù)據(jù)存儲器中讀取數(shù)據(jù)就需要等待一個周期,這樣往往會造成資源浪費。為了消除這個閑置時間,將發(fā)送地址設(shè)計在時鐘的上升沿,讀取數(shù)據(jù)放在下降沿,最終實現(xiàn)32位MIPS架構(gòu)多周期CPU。

1 多周期流水線技術(shù)和MIPS指令系統(tǒng)

1.1 流水線設(shè)計

MIPS體系結(jié)構(gòu)主要采用了流水線技術(shù)[1],它把一條指令的執(zhí)行分為幾個周期來完成。這樣每個周期處理器只做一件事,大大的減輕了處理器的任務(wù),使處理器的頻率更快,處理器也更高效。通過改進(jìn)文獻(xiàn)[2]中的五級流水線得到如圖1所示的多周期CPU流水線設(shè)計。

1.2 MIPS指令系統(tǒng)

32位MIPS架構(gòu)的匯編指令長度為32位,都是三操作數(shù)指令,在此直接采用MIPS32指令系統(tǒng)中的20條指令[2,3]。分為五種類型,具體如表1所示。

圖1 多周期CPU流水線示意圖

表1 指令格式

其中rs和rt是源操作數(shù)的寄存器號;rd是目的寄存器號,有時也可以做源寄存器號;immediate表示立即數(shù),offset是偏移量,address是地址,sa是移位量。

2 MIPS架構(gòu)的多周期CPU設(shè)計

本文將分為取指、譯碼、執(zhí)行、訪存、寫回五個階段[4]來設(shè)計。

2.1 取指令階段

在此階段CPU主要完成兩個任務(wù),一是PC+4,二是根據(jù)PC值從指令存儲器[5]中取出指令。當(dāng)IF級運行時,執(zhí)行級處于閑置狀態(tài),設(shè)計 PC+4在ALU中完成,不再單獨設(shè)置加法器。通常CPU讀取地址后,需要等待一個周期,再讀取數(shù)據(jù)。但事實上,這一個周期里只有上升沿有效,下降沿是空閑,而對于多周期CPU來說又不存在數(shù)據(jù)相關(guān)問題,所以使讀取地址放在上升沿,獲取數(shù)據(jù)放在下降沿,這樣只需一拍時間就能完成取指。

2.2 譯碼階段

此階段主要完成的任務(wù)是把操作碼op、功能碼sa送入控制器中,得出控制信號,由控制信號來決定CPU接下來的任務(wù)[6]。主要控制信號有指令操作、存儲操作、執(zhí)行操作、寫回操作任務(wù)和PC值變化形式。

為了使資源利用最大化,我們將跳轉(zhuǎn)指令的高位加載也放在ALU中進(jìn)行,立即數(shù)的擴(kuò)展設(shè)置專門的擴(kuò)展電路來完成,由控制信號EXTOP來決定是零擴(kuò)展還是符號擴(kuò)展。

2.3 執(zhí)行階段

跳轉(zhuǎn)指令在譯碼階段已經(jīng)完成了,其他四種類型指令將進(jìn)入執(zhí)行階段,不同類型指令在執(zhí)行階段的情況也不同[7]。我們在執(zhí)行階段設(shè)置一個新的判決電路模塊[8],把在存儲器、寄存器堆中取出的數(shù)據(jù)和控制器發(fā)出的相關(guān)控制信號送進(jìn)去經(jīng)過判決生成兩個信號,作為ALU操作數(shù)端口前的數(shù)據(jù)選擇器的選擇信號。

2.4 訪存階段

在此階段讀取高速緩存中的數(shù)據(jù)變量。在MIPS架構(gòu)中只有兩條指令用到它,lw(讀數(shù)據(jù))和sw(寫數(shù)據(jù)),在執(zhí)行級中已計算出存儲器的地址

為了在執(zhí)行寫字節(jié)時,依據(jù)地址的低兩位,移動store的字節(jié)到對應(yīng)的位置,我們在數(shù)據(jù)存儲器前后各設(shè)置一個四選一數(shù)據(jù)選擇器。在此階段設(shè)置時鐘上升沿從EX_MEM總線中取出數(shù)據(jù),向存儲器中發(fā)出地址,在時鐘下降沿中讀出數(shù)據(jù),然后鎖存在MEM_WB總線中。

2.5 寫回階段

此階段就是為了把ALU計算的數(shù)據(jù)或者是在存儲器中取出的數(shù)據(jù)寫回到寄存器堆中,其中寫回的目的寄存器號有rt和rd。

2.6 狀態(tài)機(jī)和多周期的總體電路

設(shè)計六個狀態(tài),分別是空閑、取指、譯碼、執(zhí)行、訪存和寫回。令I(lǐng)DLE表示為空閑狀態(tài)、FETCH表示為取指階段、DECODE表示為譯碼階段、EXE表示為執(zhí)行階段、MEM表示為訪存階段、WB表示為寫回階段。在譯碼階段要判斷跳轉(zhuǎn)指令有效值和譯碼完成有效值的“與”運算是否為1,為1則跳回取值級,否則進(jìn)入下一階段。多周期CPU狀態(tài)機(jī)[9]示意圖如圖2所示,整個多周期CPU的結(jié)構(gòu)設(shè)計如圖3所示。

圖2 多周期CPU狀態(tài)機(jī)示意圖

圖3 多周期CPU結(jié)構(gòu)圖

3 仿真與驗證

(1)仿真圖

我們采用Verilog HDL語言來實現(xiàn)整個CPU功能[10],在VIVADO上編譯仿真。圖4是多周期CPU對預(yù)設(shè)指令執(zhí)行的部分仿真[11]圖,其中紅色的高阻狀態(tài)總線表示的是寄存器堆取數(shù)據(jù),此時CPU在執(zhí)行指令的過程中從交互總線鎖存器中取數(shù)據(jù),所以寄存器堆處于高阻,在寫回階段完成后,數(shù)據(jù)將會寫回到寄存器堆中。

(2)實驗箱驗證

LS-CPU-EXB-002實驗箱[12,13]采用了簡單化的輸入輸出控制接口,它的觸摸屏實現(xiàn)的是硬件驅(qū)動,可以隨時進(jìn)行輸入輸出,通過該實驗箱來驗證所設(shè)計的多周期CPU的有效性。如圖5所示,其中IF_PC表示IF模塊PC值,ID_PC、EXEPC、MEMPC、WB_PC表示當(dāng)前模塊的PC值,IF_IN表示從IF級中取出的指令,MADDR表示存儲器地址,MDATA表示從存儲器中讀出的數(shù)據(jù),REG表示32位寄存器測試標(biāo)識符,隨著PC值的變化,不斷的有結(jié)果寫入。在試驗箱上通過撥碼可以控制PC值的變化,從指令存儲器中取出指令并進(jìn)行數(shù)據(jù)裝載,實驗表明,此CPU可以高效地完成測試的指令,并能把計算的結(jié)果寫入寄存器堆中。

圖4 仿真圖

圖5 CPU驗證圖

4 結(jié)論

經(jīng)過對取指級的改進(jìn),使PC+4在ALU中實現(xiàn),這樣最大化地利用CPU中EXE模塊資源。同時通過對時鐘上下沿控制,將指令存儲器與數(shù)據(jù)存儲器發(fā)送地址與讀取地址在一個周期內(nèi)完成,那么譯碼級與訪存級就只需一個周期,這樣能大大提高CPU的時鐘頻率。特別是在執(zhí)行級中我們設(shè)計了一個判決電路,加快數(shù)據(jù)的交互與傳輸。最后通過軟件仿真和硬件仿真驗證,來證實所設(shè)計的CPU的正確性,由硬件仿真可以看到所設(shè)計的CPU具有實用性。

[1] 劉秋菊, 張光照, 王仲英. 基于MIPS指令集的流水線CPU設(shè)計與實現(xiàn)[J]. 實驗室研究與探索, 2017, 36(8): 148-152.

[2] D.Sweetman. 看MIPS跑linux——MIPS體系結(jié)構(gòu)剖析(中文版)[M]. 北京: 機(jī)械工業(yè)出版社, 2008.

[3] M View. MIPS32 Architecture for programmers volume II: the MIPS32 Introduction set[S]. MIPS Technologies Inc, 2005: 10-300.

[4] M View. MIPS32 Architecture for programmers volume I: Introduction to the MIPS32 Architecture[S]. MIPS Technologies Inc, 2005: 7-65.

[5] 閻石. 數(shù)字電子技術(shù)基礎(chǔ)[M]. 北京: 高等教育出版社, 2005.

[6] 秘海曉. 基于FPGA的32位五級流水線CPU的研究與設(shè)計[D]. 河北: 河北工業(yè)大學(xué), 2012.

[7] 李亞民. 計算機(jī)原理與設(shè)計[M]. 北京: 清華大學(xué)出版社, 2011.

[8] 張震. 基于FPGA的通用型FIR數(shù)字濾波器的研究與設(shè)計[J]. 軟件, 2015, 36(6): 125-128.

[9] 馮建文. 基于有限狀態(tài)機(jī)的多周期CPU實驗設(shè)計[J]. 實驗技術(shù)與管理, 2017, 34(7): 127-131.

[10] 焦華. 基礎(chǔ)編程的思考方法[J]. 軟件, 2018, 39(3): 57-62.

[11] 張玲, 晏伯武. 時序仿真和驅(qū)動編寫在數(shù)字電路實踐教學(xué)中的應(yīng)用研究[J]. 軟件, 2016, 37(3): 107-109.

[12] 夏宇聞. Verilog數(shù)字系統(tǒng)設(shè)計教程[M]. 北京: 北京航空航天大學(xué)出版社, 2003.

[13] 龍芯中科技術(shù)有限公司.LS-CPU-EXB-002CPU設(shè)計與體系結(jié)構(gòu)實驗指導(dǎo)手冊[Z]. 2016.

Design of Multi-cycle CPU Based on MIPS Architecture

LIU Cheng, RONG Jing

(Guangling College of Yangzhou University, Yangzhou 225000)

In order to improve the efficiency of the multi-cycle CPU pipeline, the designation of the sending address is on the rising edge and the reading data is on the falling edge in the data reading of the instruction memory and the data memory, so that the decoding and the access are completed in one cycle. The adder is no longer set separately at the fetch level, and PC+4 is placed in the ALU. Data communication is performed through a large number of multiplexers and data exchange buses. The CPU was designed using Verilog HDL language, and the simulation was implemented on the VIVADO platform. Finally, the verification was performed by the company's LS-CPU-EXB-002 test box. The results showed the effectiveness of the designed multi-cycle CPU.

Pipeline; Verilog HDL; Multi-cycle CPU; LS-CPU-EXB-002 test box

TP332

A

10.3969/j.issn.1003-6970.2018.08.009

揚州大學(xué)廣陵學(xué)院資助項目(JGYB17012)

柳成(1994-),本科生,研究方向為計算機(jī)體系結(jié)構(gòu);榮靜(1990-),研究生,揚州大學(xué)廣陵學(xué)院助教,研究方向為信息安全。

本文著錄格式:柳成,榮靜. 基于MIPS架構(gòu)的多周期CPU設(shè)計[J]. 軟件,2018,39(8):40-44

猜你喜歡
指令設(shè)計
聽我指令:大催眠術(shù)
何為設(shè)計的守護(hù)之道?
《豐收的喜悅展示設(shè)計》
流行色(2020年1期)2020-04-28 11:16:38
ARINC661顯控指令快速驗證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
瞞天過海——仿生設(shè)計萌到家
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
殺毒軟件中指令虛擬機(jī)的脆弱性分析
一種基于滑窗的余度指令判別算法
主站蜘蛛池模板: 国产在线精品人成导航| 欧洲成人免费视频| 亚洲人成网站在线观看播放不卡| 黄片在线永久| 91综合色区亚洲熟妇p| 老司国产精品视频91| 真实国产乱子伦高清| 免费无码网站| 国产成人亚洲综合A∨在线播放| 国产精品夜夜嗨视频免费视频| 亚洲色偷偷偷鲁综合| 日本人妻丰满熟妇区| 精品91视频| 久久国语对白| 国产欧美日本在线观看| 欧美中文字幕一区| 怡红院美国分院一区二区| 久久黄色免费电影| 一级看片免费视频| 91精品久久久无码中文字幕vr| 精品91自产拍在线| 在线精品欧美日韩| 美女视频黄又黄又免费高清| 亚洲无码免费黄色网址| 啦啦啦网站在线观看a毛片| 人妻无码一区二区视频| 亚洲视频二| 欧美丝袜高跟鞋一区二区| 亚洲综合日韩精品| 亚洲人成人伊人成综合网无码| 欧洲av毛片| 青青青国产视频| 在线免费无码视频| 67194亚洲无码| 一级一级一片免费| 91精品小视频| 国产欧美精品一区二区| 国产理论最新国产精品视频| 国产成人免费手机在线观看视频| 67194成是人免费无码| 中文字幕久久波多野结衣 | 青青青草国产| 久久精品国产亚洲AV忘忧草18| 欧美精品亚洲二区| 欧美综合区自拍亚洲综合绿色| 亚洲V日韩V无码一区二区 | 91在线中文| 亚洲综合经典在线一区二区| 中国国产A一级毛片| 国产美女丝袜高潮| 欧美日韩精品在线播放| 中文字幕亚洲综久久2021| 人妻少妇久久久久久97人妻| 国产乱子伦视频在线播放| 国产美女无遮挡免费视频网站| 国产成人久视频免费| 美女毛片在线| 精品少妇人妻一区二区| 亚洲91在线精品| 视频二区亚洲精品| 中文字幕va| 久热re国产手机在线观看| 色噜噜狠狠狠综合曰曰曰| 亚洲香蕉在线| 99免费视频观看| 激情综合网址| 欧美日韩v| 国产日韩欧美黄色片免费观看| 激情综合网址| 国产爽爽视频| 国产亚洲精品91| 天天做天天爱夜夜爽毛片毛片| 成人午夜天| 全部毛片免费看| 亚洲床戏一区| 在线欧美一区| 在线视频亚洲色图| 色爽网免费视频| 一区二区三区国产| 伊人激情久久综合中文字幕| 91午夜福利在线观看| 91久久大香线蕉|