《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種超低功耗的RISC-V處理器流水線結(jié)構(gòu)
一種超低功耗的RISC-V處理器流水線結(jié)構(gòu)
2019年電子技術(shù)應(yīng)用第6期
鄧天傳1,2,胡振波2
1.武漢大學(xué) 物理科學(xué)與技術(shù)學(xué)院,湖北 武漢430071;2.芯來科技有限公司,湖北 武漢430072
摘要: 隨著通信、芯片技術(shù)的高速發(fā)展,物聯(lián)網(wǎng)將會(huì)是未來新一代信息技術(shù)的重要組成部分,也是促進(jìn)生活智能化過程的強(qiáng)大動(dòng)力。在IoT的終端設(shè)備應(yīng)用中,超低功耗的微控制器扮演著不可或缺的角色。基于超低功耗嵌入式應(yīng)用的設(shè)計(jì)目標(biāo),提出了一種基于RISC-V指令集架構(gòu)的處理器流水線結(jié)構(gòu),考慮到功耗和性能的折中要求,采用了以兩級(jí)按序流水線為主體,輔以其他組件流水線長度可變的流水線結(jié)構(gòu)。并在VCS環(huán)境下驗(yàn)證了微控制器的邏輯功能,同時(shí)通過SMIC180工藝庫在DC環(huán)境下完成了綜合仿真,得到了微控制器的面積占比報(bào)告。最后通過運(yùn)行跑分程序測試,并與ARM Cortex-M微控制器比較,比較結(jié)果表明本作品同樣可應(yīng)用于IoT的低功耗場景。
中圖分類號(hào): TN47;TP332.3
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.182563
中文引用格式: 鄧天傳,胡振波. 一種超低功耗的RISC-V處理器流水線結(jié)構(gòu)[J].電子技術(shù)應(yīng)用,2019,45(6):50-53.
英文引用格式: Deng Tianchuan,Hu Zhenbo. An ultra-low-power processor pipeline-structure[J]. Application of Electronic Technique,2019,45(6):50-53.
An ultra-low-power processor pipeline-structure
Deng Tianchuan1,2,Hu Zhenbo2
1.School of Physics and Technology,Wuhan University,Wuhan 430072,China; 2.Nuclei System Technology Co.,Ltd.,Wuhan 430072,China
Abstract: With the rapid development of communication and chip technology, IoT will be an important part of the next generation of information technology, a powerful driving force to promote the intelligent process of our lives. Among the IoT terminal applications, ultra-low-power microcontroller plays an indispensable role. Based on the design goal of ultra-low-power embedded applications, this paper proposes a pipeline structure of a processor based on RISC-V instruction set architecture. Taking into account the compromise between power consumption and performance, the main body uses a two-stage pipeline, and was supplemented by a pipeline structure with variable length of other components. The logic function of the microcontroller is verified in the VCS environment. At the same time, the area ratio report of the microcontroller is obtained by using the SMIC180 process library to complete the simulation in the DC environment. Finally, by running the running subroutine test and comparing it with the ARM Cortex-M microcontroller, the comparison results show that this work can also be applied to the low-power scene of IoT.
Key words : pipeline-structure;ultra-low-power;RISC-V architecture;RISC-V processor

0 引言

    經(jīng)過幾十年的處理器設(shè)計(jì)技術(shù)的演變和大規(guī)模集成電路設(shè)計(jì)技術(shù)的發(fā)展,高性能處理器的硬件調(diào)度能力已經(jīng)非常強(qiáng),主頻率已經(jīng)非常高,所以硬件設(shè)計(jì)師希望指令集能夠結(jié)構(gòu)化和簡單化,以便來設(shè)計(jì)更高頻率和更低功耗的處理器。另一方面,對(duì)于應(yīng)用于可穿戴系統(tǒng)和醫(yī)療保健[1-2]等IoT(Internet of Thing)應(yīng)用和其他IoT應(yīng)用如智能城市[3]、智能交通[4]的處理器對(duì)低功耗和小面積的要求更高。然而,由于商業(yè)原因以及知識(shí)產(chǎn)權(quán)保護(hù),傳統(tǒng)的指令集架構(gòu)如ARM和X86架構(gòu)需要高昂的授權(quán)費(fèi)。開源的指令集架構(gòu)RISC-V[5]架構(gòu)是一種新的指令集架構(gòu),是活的、無專利的、無歷史的指令集架構(gòu),并且是在BSD許可下發(fā)布的。RISC-V指令集架構(gòu)具備極簡、模塊化和可定制擴(kuò)展等優(yōu)點(diǎn)。這也使得RISC-V指令集架構(gòu)可以通過組合或擴(kuò)展指令集在幾乎所有領(lǐng)域都可以構(gòu)建微處理器,比如云計(jì)算、存儲(chǔ)、并行計(jì)算、虛擬化/容器、MCUs、應(yīng)用處理器和DSP處理器。

1 蜂鳥E203的總體結(jié)構(gòu)設(shè)計(jì)

    E203處理器核的結(jié)構(gòu)示意圖如圖1所示,流水線的第一級(jí)為“取指”(由IFU完成)?!白g碼”(由EXU完成)、“執(zhí)行”(由EXU完成)和“寫回”(由WB完成)均處于同一個(gè)時(shí)鐘周期,位于流水線的第二級(jí)。而“訪問”(由LSU完成)階段處于EXU之后的第三級(jí)流水線,但是LSU寫回的結(jié)果仍然需要通過WB模塊寫回通用寄存器組(Register File,Regfile)。因此,嚴(yán)格來說,蜂鳥E203是一個(gè)變長的流水線結(jié)構(gòu)。但是蜂鳥E203處理器核的按序主體是位于第一級(jí)的“取指”和位于第二級(jí)的“執(zhí)行”及“寫回”,因此本文非嚴(yán)謹(jǐn)?shù)囟x蜂鳥E203處理器核的流水線長度為二級(jí)。

wdz1-t1.gif

2 蜂鳥E203的單元設(shè)計(jì)

2.1 取指(IFU)單元的設(shè)計(jì)思路

    IFU微架構(gòu)如圖2所示,Mini-Decode模塊主要用于對(duì)取回的指令進(jìn)行譯碼。Simple-BPU模塊主要用于對(duì)取回的指令通過Mini-Decode模塊進(jìn)行譯碼后發(fā)現(xiàn)的分支跳轉(zhuǎn)指令進(jìn)行分支預(yù)測。PC生成邏輯用于產(chǎn)生下一個(gè)待取指令的PC。地址判斷和ICB總線控制會(huì)根據(jù)PC的地址訪問ITCM或BIU。ITCM作為指令存儲(chǔ),而如果取指令的地址不落在ITCM所在的區(qū)間,IFU則會(huì)通過BIU訪問外部的存儲(chǔ)器。

wdz1-t2.gif

    IFU在取出指令后,會(huì)將其放置于和EXU單元接口的IR(Instruction Register)寄存器中。該指令的PC值也會(huì)被放置于和EXU單元接口的PC寄存器中,EXU單元將使用此IR和PC進(jìn)行后續(xù)的執(zhí)行操作。

2.2 執(zhí)行(EXU)單元的設(shè)計(jì)思路

    EXU微架構(gòu)如圖3所示,EXU單元的功能主要有:將IFU通過寄存器發(fā)送給EXU的指令進(jìn)行譯碼和派遣;通過譯碼出的操作數(shù)寄存器索引讀取Regfile;維護(hù)指令的數(shù)據(jù)相關(guān)性;將指令派遣給不同的運(yùn)算單元;將指令交付;將指令運(yùn)算的結(jié)果寫回Regfile。

wdz1-t3.gif

2.2.1 譯碼與派遣模塊

    譯碼(Decode)模塊主要用于將IFU通過IR寄存器發(fā)送給EXU的指令進(jìn)行譯碼。譯碼模塊完全由組合邏輯組成,其主要邏輯即根據(jù)RISC-V指令的編碼規(guī)則進(jìn)行譯碼,產(chǎn)生不同的指令類型信息、操作數(shù)寄存器索引等。

    蜂鳥E203是簡單的兩級(jí)流水線架構(gòu),派遣(Dispatch)發(fā)生在流水線的執(zhí)行階段,表示指令經(jīng)過譯碼且從寄存器組中讀取了操作數(shù)之后被派遣到不同的運(yùn)算單元(ALU、Long Pipes、LSU和EAI)執(zhí)行的過程。

2.2.2 整數(shù)通用寄存器模塊

    整數(shù)通用寄存器組(Integer Register File,簡稱Integer-Regfile)模塊主要用于實(shí)現(xiàn)RISC-V架構(gòu)定義的整數(shù)通用寄存器組,其微架構(gòu)如圖4所示。RISC-V的整數(shù)指令都是單操作數(shù)或兩操作數(shù)指令,且蜂鳥E203屬于單發(fā)射(一次發(fā)射派遣一條指令)的微架構(gòu),因此Integer-Regfile模塊只需要支持最多兩個(gè)讀端口。同時(shí),蜂鳥E203的寫回策略是按順序每次寫回一條指令的微架構(gòu),因此Integer-Regfile模塊只用支持一個(gè)端口。

wdz1-t4.gif

2.2.3 ALU模塊

    如圖5所示,蜂鳥E203的ALU單元包括5個(gè)功能子單元。普通ALU運(yùn)算主要負(fù)責(zé)普通的ALU指令(邏輯運(yùn)算、加減法移位等指令)的執(zhí)行;訪問地址生成主要負(fù)責(zé)Load、Store和“A”擴(kuò)展指令的地址生成;分支預(yù)測解析主要負(fù)責(zé)Branch和Jump指令的結(jié)果解析和執(zhí)行;CSR讀寫控制主要負(fù)責(zé)CSR指令的執(zhí)行;多周期乘除法器主要負(fù)責(zé)乘法和除法指令的執(zhí)行。以上5個(gè)功能子單元只負(fù)責(zé)具體指令執(zhí)行的控制,它們均共享一份實(shí)際的運(yùn)算數(shù)據(jù)通路,因此主要數(shù)據(jù)通路的面積開銷只有一份,這也是蜂鳥E203追求低功耗和小面積的一大亮點(diǎn)。

wdz1-t5.gif

2.2.4 狀態(tài)寄存器(CSR)模塊

    RISC-V架構(gòu)中定義了一些控制和狀態(tài)寄存器(Control and Status Register,CSR),用于配置或記錄一些運(yùn)行的狀態(tài)。CSR寄存器是處理器核的內(nèi)部寄存器,使用其自己的地址編碼空間,與存儲(chǔ)器尋址的地址區(qū)間完全無關(guān)系。蜂鳥E203的EXU單元中的CSR寄存器模塊主要用于實(shí)現(xiàn)蜂鳥E203所支持的寄存器功能。如在ALU模塊中的CSR讀寫寄存器模塊會(huì)產(chǎn)生CSR讀寫控制信號(hào)。

2.2.5 OITF模塊

    OITF本身只是一個(gè)先進(jìn)先出的FIFO,F(xiàn)IFO的默認(rèn)深度是2個(gè)表項(xiàng)。如圖6所示,每條指令在派遣時(shí),都會(huì)將本指令的源操作數(shù)寄存器索引和結(jié)果寄存器索引與OITF中的各個(gè)表項(xiàng)進(jìn)行對(duì)比,從而判斷本指令是否已經(jīng)派遣出以及檢查其是否與尚未寫回的長指令產(chǎn)生RAW和WAW相關(guān)性。在整個(gè)過程中,由于蜂鳥E203主要側(cè)重于低功耗和小面積,因此只采用了阻塞流水線而未使用快速旁路的方法。

wdz1-t6.gif

2.2.6 交付(Commit)模塊

    RISC-V指令集架構(gòu)具有指令沒有條件碼和所有的運(yùn)算指令都不會(huì)產(chǎn)生異常這兩個(gè)顯著的特點(diǎn),因此可以大幅度簡化“交付”的硬件實(shí)現(xiàn)。無論是單周期指令還是多周期指令,在蜂鳥E203處理器中都將“交付”安排在“執(zhí)行”階段。

2.2.7 寫回仲裁(WB-Arb)模塊

    蜂鳥E203處理器的寫回策略是一種因地制宜的混合策略。其核心思想是將指令劃分為單周期指令和長指令兩大類;以及將長指令的“交付”和“寫回”分開,使得即便執(zhí)行了多周期指令,仍然不會(huì)阻塞流水線,讓后續(xù)的單周期指令仍然能夠順利地寫回和交付。

    如圖3所示,蜂鳥E203處理器有兩級(jí)寫回仲裁模塊,其一是最終寫回仲裁,主要用于仲裁所有單周期指令的寫回(來自ALU模塊)和所有長指令的寫回(來自長指令寫回仲裁模塊),仲裁采用優(yōu)先級(jí)仲裁的方式。在沒有長指令寫回的空閑周期,單周期指令可以隨便寫回。而對(duì)于長指令的寫回,則由OITF和長指令寫回仲裁模塊協(xié)同完成所有長指令的寫回操作。

3 綜合仿真分析與跑分測試

    表1為蜂鳥E203 CPU的面積分布占比報(bào)告,其中CPU核的面積為233 329.695 5 μm2,占整個(gè)CPU面積的93.5%,CPU的其他部分的面積為16 334.17 μm2,占整個(gè)CPU的6.5%。

wdz1-b1.gif

    表2為CPU核的面積分布占比報(bào)告,BIU單元、EXU單元、IFU單元和LSU單元的面積占比分別為6.2%、73.2%、9.8%和4.3%,合計(jì)為CPU核的面積占比即93.5%。

wdz1-b2.gif

    表3為EXU單元的面積占比報(bào)告,譯碼、整數(shù)通用寄存器組、狀態(tài)寄存器、派遣、ALU、交付、OITF、長指令寫會(huì)仲裁、最終寫回仲裁模塊的面積占比分別為1.5%、36.5%、11.8%、0.6%、16.6%、2.5%、2.9%、0.4%和0.3%,合計(jì)為EXU單元的面積占比即73.2%。

wdz1-b3.gif

    對(duì)表1、2、3中的數(shù)據(jù)分析可以得出,蜂鳥E203在滿足一定性能的情況下達(dá)到了小面積的設(shè)計(jì)目的。

    另外,為了衡量蜂鳥E203處理器的性能,本文通過跑分程序(Benchmarks)對(duì)其進(jìn)行了跑分測試,并與ARM Cotex-M0+處理器進(jìn)行比較。從表4可以看出,蜂鳥E203性能均不遜色于ARM的Cotex-M0+處理器(M0+是ARM面積最小的處理器核)。

wdz1-b4.gif

4 結(jié)論

    本文介紹了一種RISC-V處理器流水線架構(gòu),綜合仿真和跑分測試結(jié)果表明蜂鳥E203可面向極低功耗與極小面積的場景,非常適合于替代傳統(tǒng)的8051內(nèi)核或者Cortex-M系列內(nèi)核應(yīng)用于IoT或其他低功耗場景。

參考文獻(xiàn)

[1] ISLAM S M R,KWAK D,KABIR M H,et al.The Internet of Things for health care: a comprehensive survey[J].IEEE Access,2017,3:678-708.

[2] LAPLANTE P A,LAPLANTE N.The Internet of Things in healthcare: potential applications and challenges[J].IT Professional,2016,18(3):2-4.

[3] ZANELLA A,BUI N,CASTELLANI A,et al.Internet of Things for smart cities[J].IEEE Internet of Things Journal,2014,1(1):22-32.

[4] LU N,CHENG N,ZHANG N,et al.Connected vehicles:solutions and challenges[J].IEEE Internet of Things Journal,2014,1(4):289-299.

[5] WATERMAN A,LEE Y,PATTERSON D A,et al.The RISC-V instruction set manual, volume I:base user-level ISA[J].Eecs Department,2011,7(9):475.



作者信息:

鄧天傳1,2,胡振波2

(1.武漢大學(xué) 物理科學(xué)與技術(shù)學(xué)院,湖北 武漢430071;2.芯來科技有限公司,湖北 武漢430072)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。