亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的32位MIPS-CPU平臺開發(fā)

        2010-02-26 09:40:04孫建輝王春棟
        電子與封裝 2010年4期
        關(guān)鍵詞:流水線存儲器冒險

        孫建輝,王春棟

        (中國電子科技集團(tuán)公司第58研究所,江蘇 無錫 214035)

        1 介紹

        本文設(shè)計的OPS1-CPU是RISC的一種,其只將最常用的指令在RISC處理器中實現(xiàn),其他指令由編譯器綜合實現(xiàn)。這樣RISC的硬件結(jié)構(gòu)相對CISC比較簡單,通過解決流水線引入的競爭與冒險,將CPI(Cycles Per Instruction)推到最大。通過研究與改善其編譯系統(tǒng),可以用編譯器對整個CPU系統(tǒng)進(jìn)行優(yōu)化。本文的編譯系統(tǒng)可以實現(xiàn)對設(shè)計的OPS1-CPU進(jìn)行編譯及優(yōu)化。

        MIPS[1]是RISC處理器中的一種。MIPS即無內(nèi)部互鎖流水級的微處理器(Microprocessor without interlocked piped stages),其機制是盡量避免流水線中的各種相關(guān)問題,使流水線得以順暢地實現(xiàn)??梢酝ㄟ^研究指令的具體執(zhí)行情況以及根據(jù)流水線的具體執(zhí)行情況,增加競爭與冒險檢測模塊,使設(shè)計的流水線得以順暢實現(xiàn)。

        2 OPS1-CPU5級流水線與對應(yīng)指令處理

        MIPS-CPU包含5級流水線,如圖1所示,分別是:

        (1)IF/ID(Istruction Fetch&Instruction Decode),指令取指,根據(jù)程序存儲器尋址計數(shù)器PC來對應(yīng)讀取程序數(shù)據(jù),PC指向下一條指令,并且對取出的指令進(jìn)行解碼,解碼后的信號為控制信號,這些控制信號被送到EX級以及其他級,指令在執(zhí)行級需要來自寄存器堆的兩個操作數(shù),這兩個操作數(shù)在譯碼級被送到ALU的a和b入口,同時譯碼級還把ALU運算操作信號送到ALU;譯碼器一旦識別出非條件跳轉(zhuǎn)后,立即通知取指級IF。識別條件跳轉(zhuǎn)后,根據(jù)標(biāo)志位判別跳轉(zhuǎn)結(jié)果并決定是否立即通知取指令級IF。

        (2)RF(Register Fetch /generate next pc(branch included)),進(jìn)行寄存器文件獲取以及下一條PC地址的獲取或產(chǎn)生,其中包括分支跳轉(zhuǎn)情況。

        (3)EX(Execution),指令執(zhí)行,主要通過ALU運算。

        (4)MA(Memory Access),存儲器與外部設(shè)備訪問級:數(shù)據(jù)存儲器或外設(shè)的讀寫(僅load/store指令)。

        (5)WB(Write-Back),寫回寄存器堆。

        第4級流水線是專門為load/store指令設(shè)計的,如圖2、3所示,指令load/stotre執(zhí)行過程中的數(shù)據(jù)通道仍然要經(jīng)過:(1)取指令&譯碼模塊;(2)計算下一條指令的程序存儲器的地址;(3)寄存器堆中的寄存器rs到ALU的輸入數(shù)據(jù)A,指令中的立即數(shù)到ALU的輸入數(shù)據(jù)B;(4)ALU執(zhí)行加運算,計算數(shù)據(jù)存儲器的訪問地址;(5)ALU的運算結(jié)果R到通往數(shù)據(jù)存儲器的地址總線;(6)來自數(shù)據(jù)存儲器的數(shù)據(jù)總線通往寄存器堆的寄存器rt。

        可見,load/store指令也會像非存儲器訪問指令(比如add指令)一樣經(jīng)過相同的流水線數(shù)據(jù)通道,因而本文設(shè)計的MIPS-CPU將存儲器訪問指令與非存儲器訪問指令統(tǒng)一于5級流水線來實現(xiàn)。

        同時需要考慮“冒險”檢測電路以及前饋電路設(shè)計。由于每個時鐘周期獲取的指令數(shù)量為1條,因而本文設(shè)計的MIPS-CPU是單發(fā)射極的MIPS-CPU。

        圖4是本文設(shè)計的MIPS-CPU的整體架構(gòu)圖[2],在本圖中標(biāo)明了各個模塊的名字。采用此種架構(gòu)的原因是為了配合5級流水線結(jié)構(gòu)以及冒險檢測、數(shù)據(jù)前饋模塊而設(shè)計的。主要由Device_Ctrl(控制模塊)、Hazard_Detection_Unit(競爭檢測模塊)、P C_G E N(程序存儲器地址產(chǎn)生模塊)、Instruct_Memory(指令存儲器模塊)、Decode(譯碼模塊)、CMPR&FWD(比較跳轉(zhuǎn)與前饋檢測模塊)、Data_Memory_ctrl(數(shù)據(jù)存儲器控制模塊)、ALU(算術(shù)運算單元)、Forwarding_Unit(前饋模塊)、Ext(執(zhí)行模塊)以及其他MUX模塊、門級模塊、數(shù)據(jù)總線、地址總線、控制總線等組成。

        3 OPS1-CPU5級流水線及控制冒險處理

        流水線程序轉(zhuǎn)移將會產(chǎn)生一個很嚴(yán)重的問題,即程序必須在解碼后才知道是轉(zhuǎn)移指令,而程序的執(zhí)行是在第3個級的執(zhí)行周期才跳轉(zhuǎn)到所要轉(zhuǎn)移到的地址。若不加以判斷處理而繼續(xù)處理下去,會將原本要轉(zhuǎn)移而不執(zhí)行的指令繼續(xù)執(zhí)行下去,這種現(xiàn)象稱為“冒險”。本文設(shè)計的MIPS-CPU的轉(zhuǎn)移執(zhí)行采用的處理方式是:把下面兩個程序沖刷掉(FLUSH)。也就是說將轉(zhuǎn)移指令后的指令改為00H指令的NOP不處理運算,而所有的控制信號都要被禁止。

        流水線對應(yīng)于數(shù)據(jù)序列執(zhí)行的數(shù)據(jù)冒險(HAZARD)處理,由于流水線的級數(shù)引起的數(shù)據(jù)寫回或者數(shù)據(jù)存儲器內(nèi)容的讀取或者存取的延遲使得后續(xù)指令在譯碼級所獲取的數(shù)據(jù)操作數(shù)內(nèi)容不是立即更新的,因而造成了數(shù)據(jù)冒險。為了解決數(shù)據(jù)冒險,可以把數(shù)據(jù)寫回或者數(shù)據(jù)存儲器內(nèi)容的寫回在第三流水線級EXT級執(zhí)行,而不經(jīng)過流水線的底級存儲器讀取、寫回或者流水線的第5級數(shù)據(jù)寫回級,而不是等其將數(shù)據(jù)寫入寄存器的MEM/WB管線處理后才予以讀取,而改在程序執(zhí)行到EXT級就將數(shù)據(jù)前饋給下面才程序的正在讀取寄存器的ID/EXT流水線路徑。

        4 OPS1-CPU的編譯與仿真模擬

        本文設(shè)計的MIPS-CPU硬件系統(tǒng)完全被GNU所兼容,所以完全可以適用(并且本文設(shè)計的MIPSCPU的軟件編譯與調(diào)試系統(tǒng)符合GNU標(biāo)準(zhǔn))用已經(jīng)存在的基于GNU的編譯系統(tǒng)進(jìn)行高級或中級編程語言的編寫,比如C與C++語言,來完成應(yīng)用程序的開發(fā),然后通過gccmips_elf仿真器來進(jìn)行高層架構(gòu)分析、程序編譯、軟件調(diào)試、程序運行結(jié)果以及代碼效率分析[3]。利用該平臺提供的C語言庫文件,可以實現(xiàn)基于OPS1-CPU應(yīng)用程序的開發(fā)。比如,對于計算∏的應(yīng)用程序cal_PI.c,使用基于Windows-x86-DOS的gccmips_elf仿真器進(jìn)行編譯與執(zhí)行,并且通過COM1口傳輸?shù)浇K端顯示,如圖5所示。

        圖5 cal_PI-2函數(shù)的批處理過程

        該仿真器要編譯并且產(chǎn)生向量文件,即16進(jìn)制的機器碼,并且產(chǎn)生Modelsim下載的存儲器RTL級的向量模型文件。并且同時產(chǎn)生QUARTUS II下載驗證的QU2_RAM0~3.MIF文件。

        再比如,通過使用編譯器對中斷函數(shù)執(zhí)行批處理文件得到的RTL(sim_ram.v)文件進(jìn)行Modelsim仿真,得到結(jié)果如圖7所示。

        圖6 Pi的精確計算結(jié)果

        圖7 中斷函數(shù)的仿真結(jié)果

        通過仿真器的驗證,表明本文設(shè)計的MIPS-CPU可以實現(xiàn)正常的功能,對其指令集中的絕大部分指令進(jìn)行了驗證,并且提供了一個編譯、執(zhí)行、優(yōu)化與評估的平臺,可以用來指導(dǎo)MIPS-CPU硬件架構(gòu)的優(yōu)化設(shè)計與實現(xiàn)。

        5 MIPS-CPU的FPGA實現(xiàn)結(jié)果

        本文設(shè)計的MIPS-CPU耗盡了3 457個LE,3 457/5 980×150 000=89 589,因而該MIPS-CPU大約為9萬門的設(shè)計[4]。時鐘頻率設(shè)定為50MHz,建立時間余量為2.503ns,保持時間余量為0.662ns,均滿足時序要求。由于編譯時建立時間考慮的是最壞情況,而保持時間考慮的是最好的情況,也就是說采用的是保守編譯,并且建立時間與保持時間的時序余量均為大于0的數(shù)值,因而本文時序滿足要求。

        整個OPS1-CPU占FPGA芯片面積為34.6×34.6mm2,本文設(shè)計的MIPS-CPU占整個芯片面積的70%~80%,即CPU面積約為831~957mm2。把輸入的所有信號翻轉(zhuǎn)率設(shè)置為12.5%,并且將不用的I/O設(shè)置為高阻態(tài)輸入,其總理論功耗為261.68mW,動態(tài)理論功耗為194.13mW,靜態(tài)理論功耗為67.55mW,符合預(yù)期的功耗要求。

        6 結(jié)論

        設(shè)計的OPS1-CPU可以實現(xiàn)5級流水線高效率運轉(zhuǎn),解決了競爭與冒險。gccmips_elf編譯系統(tǒng)可以實現(xiàn)指令編譯與優(yōu)化。最終實現(xiàn)FPGA的電路映射,并且借助配合該編譯系統(tǒng)的C庫文件,開發(fā)基于C語言的運算等應(yīng)用程序,最終板級指令調(diào)試成功,驗證了該32位MIPS-CPU軟硬件平臺的正確性。

        [1]MIPS Technologies, Inc. MIPS32? Architecture For Programmers Volume II[M].The MIPS32? Instruction Set,2003,7(9).

        [2]http://www.opencores.org[EB/OL].

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

        [4]林容益編. CPU/SOC及外圍電路應(yīng)用設(shè)計:基于FPGA/CPLD[M].北京:北京航空航天大學(xué)出版社,2004.

        猜你喜歡
        流水線存儲器冒險
        Gen Z Migrant Workers Are Leaving the Assembly Line
        靜態(tài)隨機存儲器在軌自檢算法
        流水線
        在冒險中成長——《壁櫥里的冒險》
        狡猾是一種冒險
        報廢汽車拆解半自動流水線研究
        等一下,冒險還沒結(jié)束哦!
        存儲器——安格爾(墨西哥)▲
        SIMATIC IPC3000 SMART在汽車流水線領(lǐng)域的應(yīng)用
        自動化博覽(2014年6期)2014-02-28 22:32:05
        基于Nand Flash的高速存儲器結(jié)構(gòu)設(shè)計
        久久久久夜夜夜精品国产| 日本一区二区三深夜不卡| 国产目拍亚洲精品一区二区| 国产亚洲曝欧美不卡精品| 亚洲一区二区三区在线| 日本一区二区视频在线| 成年美女黄的视频网站| 狠狠躁天天躁中文字幕| 精品欧美一区二区在线观看| Y111111国产精品久久久| 日本老年人精品久久中文字幕| 久久精品人妻中文av| 插入日本少妇一区二区三区| 99999久久久久久亚洲| 性色av无码中文av有码vr| 国产成人www免费人成看片| A阿V天堂免费无码专区| 特级黄色大片性久久久| 亚洲精品色午夜无码专区日韩| 粗了大了 整进去好爽视频| 国产成人综合久久三区北岛玲| 国产三级国产精品国产专区50 | 伊人久久大香线蕉av色婷婷色| 国产精品免费久久久久影院仙踪林 | 日本另类αv欧美另类aⅴ| 熟妇五十路六十路息与子| 国产免费一区二区av| 亚洲一区二区日韩专区| 亚洲熟女乱色综合亚洲av| 91亚洲国产三上悠亚在线播放| 久青青草视频手机在线免费观看| 蜜桃臀av一区二区三区| 成人午夜福利视频镇东影视| 亚洲精品国产一二三无码AV| 日本免费三片在线视频| 国产色系视频在线观看| 亚洲最大中文字幕无码网站| 亚洲乱码中文字幕综合| 极品美女调教喷水网站| 男人扒开女人双腿猛进视频| 欧美成人一区二区三区在线观看|