国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

RISC-V架構(gòu)開(kāi)源CPU的設(shè)計(jì)與實(shí)現(xiàn)

2019-06-15 11:06劉森態(tài)劉娟秀賴(lài)祥軍
關(guān)鍵詞:指令集譯碼流水線

郭 勇 羅 樂(lè) 劉森態(tài) 付 強(qiáng) 馬 超 劉娟秀 賴(lài)祥軍

1.成都工業(yè)學(xué)院電子工程學(xué)院 四川 成都 611730

2.重慶郵電大學(xué)光電工程學(xué)院 重慶 400065

一、引言

集成電路是一個(gè)國(guó)家安全大門(mén)的鑰匙,是整個(gè)電子信息產(chǎn)業(yè)皇冠上的寶石[1-2]。中央處理器(CPU)代表了集成電路的核心技術(shù),我國(guó)在集成電路上的進(jìn)口總金額已超過(guò)石油進(jìn)口的總金額,近年我國(guó)已將發(fā)展集成電路產(chǎn)業(yè),尤其是發(fā)展擁有自主知識(shí)產(chǎn)權(quán)的通用CPU芯片產(chǎn)業(yè)上升到國(guó)家戰(zhàn)略高度,促使龐大的資本和人力涌入到集成電路設(shè)計(jì)領(lǐng)域。國(guó)內(nèi)缺乏通用處理器的根本原因主要是指令集架構(gòu)(ISA)的缺乏,目前廣泛使用的x86架構(gòu)、ARM架構(gòu)、MIPS架構(gòu)和PowerPC架構(gòu)都被國(guó)外公司所壟斷,需要支付高昂的授權(quán)使用費(fèi),而RISC-V架構(gòu)對(duì)指令集完全開(kāi)源,RISC-V基金會(huì)僅收取少量的授權(quán)費(fèi),使得RISC-V處理器越來(lái)越受到研究機(jī)構(gòu)、學(xué)者和芯片設(shè)計(jì)領(lǐng)域的重視[3-6]。

二、RISC-V指令集架構(gòu)的基本構(gòu)成

本論文使用Verilog HDL語(yǔ)言實(shí)現(xiàn)了一個(gè)常用的47條指令二級(jí)可變流水線RV32I、重點(diǎn)分析了取值模塊IFU、執(zhí)行模塊EXU,簡(jiǎn)要分析了異常和中斷以及調(diào)試模塊的E203 CPU系統(tǒng)。

RV32I指令集是RISC-V指令集架構(gòu)下的基本的32位指令集,它規(guī)定了47條基本指令,包括了32位地址空間與整數(shù)指令,定義了32個(gè)32位通用整數(shù)寄存器。RV32I支持4種基本類(lèi)型指令,格式非常規(guī)范,所有的指令都是固定32位,并且在存儲(chǔ)器中以4字節(jié)對(duì)齊[7-8]。

三、基于RISC-V指令集的蜂鳥(niǎo)E203 CPU設(shè)計(jì)

本課題基于RISC-V指令集設(shè)計(jì)了蜂鳥(niǎo)E203 CPU,其具體設(shè)計(jì)內(nèi)容主要包括:(1)E203頂層設(shè)計(jì)。采用典型的Top-Down設(shè)計(jì)方法將CPU劃分成多個(gè)模塊,包括時(shí)鐘門(mén)控(CLK_CTRL)、中斷控制(IRQ_CTRL)、復(fù)位控制(RESET_CTRL)、ITCM訪問(wèn)控制(ITCM_CTRL)、DTCM訪問(wèn)控制(DTCR_CTRL)、取指單元(IFU)、執(zhí)行單元(EXU)、存儲(chǔ)器訪問(wèn)(LSU)、總線接口(BIU)。其頂層結(jié)構(gòu)如圖1所示。

圖1 模塊頂層設(shè)計(jì)結(jié)構(gòu)圖

圖2 IFU微架構(gòu)圖

(2)取值單元微架構(gòu)。取指是流水線第一步,它要求以最快的速度且連續(xù)不斷地從存儲(chǔ)器取出指令供處理器核執(zhí)行。在E203 CPU中利用Mini-Decode模塊對(duì)取回的地址進(jìn)行簡(jiǎn)單譯碼,使用Simple-BPU進(jìn)行簡(jiǎn)單的分支預(yù)測(cè),利用PC生成模塊產(chǎn)生新取值PC地址,借助地址判斷和ICB總線控制模塊來(lái)訪問(wèn)PC地址所對(duì)應(yīng)的ITCM或BIU。其微架構(gòu)如圖2所示。

(3)執(zhí)行單元微架構(gòu)。蜂鳥(niǎo)E203 CPU的譯碼、執(zhí)行、交付和寫(xiě)回均在EXU模塊中運(yùn)行。從IFU模塊取出指令后,執(zhí)行單元首先通過(guò)譯碼和派遣模塊完成指令譯碼和派遣,接著將譯碼出的操作數(shù),借助RD-Regfile模塊讀取Regfile,同時(shí)將指令派遣給不同的運(yùn)算單元,例如算術(shù)模塊ALU、長(zhǎng)指令模塊Long-Pipes、寄存器訪問(wèn)模塊LSU、以及擴(kuò)展協(xié)處理器EAI。如果在程序執(zhí)行過(guò)程中有中斷、異常以及帶條件跳轉(zhuǎn)指令,則通過(guò)交付模塊判斷是否進(jìn)行流水線沖刷。在長(zhǎng)指令執(zhí)行過(guò)程中,使用OITF模塊維護(hù)長(zhǎng)指令的數(shù)據(jù)相關(guān)性。最后,通過(guò)WB-Regfile模塊完成指令運(yùn)算結(jié)果的寫(xiě)回。EXU微架構(gòu)如圖3所示。

圖3 EXU微架構(gòu)圖

(4)總線接口單元微架構(gòu)。BIU使用標(biāo)準(zhǔn)的ICB總線接口,主要負(fù)責(zé)接收IFU和LSU單元的存儲(chǔ)器訪問(wèn)請(qǐng)求并判斷出訪問(wèn)地址區(qū)間從而訪問(wèn)不同的外部接口。BIU有兩組輸入ICB總線接口,兩組輸入ICB總線經(jīng)過(guò)ICB匯合模塊仲裁優(yōu)先級(jí)匯合成一組。通過(guò)使用Ping-Pong Buffer模塊解決流水線反壓時(shí)序問(wèn)題。接著通過(guò)地址判斷模塊來(lái)產(chǎn)生分發(fā)信息,訪問(wèn)不同的模塊,例如私有外設(shè)、系統(tǒng)存儲(chǔ)等。BIU微架構(gòu)如圖4所示。

圖4 SoC總線微架構(gòu)圖

四、RISC-VE203CPU的設(shè)計(jì)驗(yàn)證

圖5 串口打印“CDTU”字符串

圖6 流水燈程序控制

本課題最終設(shè)計(jì)的蜂鳥(niǎo)E203 CPU在Xilinx XC7A100T芯 片F(xiàn)PGA開(kāi)發(fā)平臺(tái)上完成了驗(yàn)證工作,驗(yàn)證的結(jié)果分別如圖5和圖6所示。圖5是將E203內(nèi)核配置在FPGA上,利用編譯器完成串口的調(diào)試,打印出成都工業(yè)學(xué)院簡(jiǎn)稱(chēng)“CDTU”;圖6是在E203片上系統(tǒng)中燒寫(xiě)流水燈程序,每個(gè)0.5秒循環(huán)點(diǎn)亮一個(gè)LED;上述實(shí)驗(yàn)結(jié)果驗(yàn)證了設(shè)計(jì)的正確性。

五、結(jié)論

本論文設(shè)計(jì)實(shí)現(xiàn)了RISC-V32位流水線架構(gòu)E203 CPU,限于文章篇幅還是盡可能完整地展現(xiàn)了該CPU的整體結(jié)構(gòu)和模塊功能,著重分析了頂層架構(gòu)、IFU微架構(gòu)、EXU微架構(gòu)以及BIU微架構(gòu),編寫(xiě)了可運(yùn)行于RISCV架構(gòu)CPU的應(yīng)用程序,并最終在Xilinx Artix-7FPGA開(kāi)發(fā)板上驗(yàn)證了設(shè)計(jì)的正確性。

猜你喜歡
指令集譯碼流水線
基于Kubernetes的RISC-V異構(gòu)集群云任務(wù)調(diào)度系統(tǒng)①
基于對(duì)數(shù)似然比與極化信道可靠度的SCF 譯碼算法
基于擴(kuò)大候選碼元范圍的非二元LDPC加權(quán)迭代硬可靠度譯碼算法
分段CRC 輔助極化碼SCL 比特翻轉(zhuǎn)譯碼算法
基于校正搜索寬度的極化碼譯碼算法研究
3DNow指令集被Linux淘汰
流水線
基于PLC的飲料灌裝流水線設(shè)計(jì)
基于Dais—CMX模型機(jī)的斐波那契數(shù)列指令集設(shè)計(jì)
流水線
江川县| 文水县| 阳朔县| 永寿县| 炎陵县| 开鲁县| 阿克| 富川| 九寨沟县| 江永县| 榆社县| 泾源县| 孝感市| 油尖旺区| 沂源县| 佛坪县| 牡丹江市| 衡阳县| 高州市| 齐河县| 从化市| 德格县| 昭觉县| 海口市| 汝州市| 闵行区| 新民市| 玛曲县| 湟中县| 隆昌县| 襄城县| 司法| 横峰县| 台南市| 开原市| 临邑县| 台江县| 霍林郭勒市| 墨竹工卡县| 卢氏县| 紫金县|