面向IoT終端設(shè)備的RISC_第1頁
面向IoT終端設(shè)備的RISC_第2頁
面向IoT終端設(shè)備的RISC_第3頁
面向IoT終端設(shè)備的RISC_第4頁
面向IoT終端設(shè)備的RISC_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

面向IoT終端設(shè)備的RISC-V微控制器設(shè)計(jì)與分析李其高【摘要】隨著通信、芯片等技術(shù)的不斷發(fā)展,以及現(xiàn)在提出的萬物互聯(lián)的概念,物聯(lián)網(wǎng)將迎來一個(gè)大的發(fā)展;其中IoT終端設(shè)備的研究是重中之重.應(yīng)用于IoT的終端設(shè)備不僅需要在幾mW的功率范圍內(nèi)工作,而且需要靈活的計(jì)算能力.這就要求應(yīng)用于IoT終端設(shè)備的處理器能實(shí)現(xiàn)更高的能效比.本文設(shè)計(jì)了一款基于RISC-V指令集的微控制器,首先詳細(xì)介紹了該RISC-V微控制器的微結(jié)構(gòu)、存儲子系統(tǒng)和RISC-V指令集架構(gòu);最后在VCS驗(yàn)證環(huán)境中驗(yàn)證了該微控制器的邏輯功能.%Withthedevelopmentoftechnologiessuchascommunications,chipsandtheconceptofinternetofthings,theinternetofthingswillusherinabigdevelopment.TheresearchonIoTterminalequipmentisthemostimportant.TheterminaldevicesforIoTnotonlyworkwithintherangeofafewmilliwattsofpower,butalsoneedflexiblecomputingcapabilities.ThisrequirestheprocessorappliedtotheIoTterminaldeviceachievehigherenergyefficiency.Inthispaper,amicrocontrollerbasedonRISC-Vinstructionsetisdesigned.Atfirstthemicrostructure,storagesubsystemandRISC-VinstructionsetarchitectureofRISC-Vmicrocontrollerareintroducedindetail.Finally,thelogicfunctionofthemicrocontrollerisverified.【期刊名稱】《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》【年(卷),期】2018(018)003【總頁數(shù)】4頁(P64-66,69)【關(guān)鍵詞】IoT;RISC-V指令集;能效比【作者】李其高【作者單位】重慶郵電大學(xué)通信與信息工程學(xué)院,重慶400065【正文語種】中文【中圖分類】TP332引言在過去的幾年中,市場對物聯(lián)網(wǎng)領(lǐng)域終端設(shè)備的需求越來越高,這種終端設(shè)備由微控制器控制,并與環(huán)境相互作用,各個(gè)終端設(shè)備之間可以通過一個(gè)低功耗的無線信道通信。據(jù)預(yù)測,未來幾年市場對于傳感器和處理平臺的需求將會急巨上升[1]。目前IoT終端設(shè)備集成了大量的傳感器以及微控制器,其中微控制器主要用于控制和輕量級的運(yùn)算。另外,由于不同應(yīng)用場景對于設(shè)備處理能力的要求不同,這就需要終端設(shè)備的性能具有可擴(kuò)展性、高能效等特點(diǎn)。在物聯(lián)網(wǎng)中,從終端設(shè)備到更高層次的結(jié)點(diǎn)的無線通信功率消耗了總功率預(yù)算的一大部分,一般情況我們可以通過降低傳輸?shù)臄?shù)據(jù)量和選用低功耗的物聯(lián)網(wǎng)通信技術(shù)這兩種方法降低通信功耗。這就要求MCU對于復(fù)雜通信算法有一定的處理能力。RISC-V指令集是加州大學(xué)伯克利分校于2014正式發(fā)布的一款開源的指令集架構(gòu);其有一個(gè)基本的整數(shù)指令集RV321,包含47條指令,可以實(shí)現(xiàn)一個(gè)合理的目標(biāo)機(jī)功能[2]。RISC-V指令架構(gòu)支持豐富的定制化和特殊化,RISC-V可以通過標(biāo)準(zhǔn)擴(kuò)展和非標(biāo)準(zhǔn)擴(kuò)展對基本整數(shù)指令進(jìn)行增強(qiáng)。由于RISC-V指令架構(gòu)和相關(guān)處理器的源碼是開源的,這就提高了數(shù)據(jù)的安全性;基于以上考慮,本設(shè)計(jì)采用了RISC-V指令架構(gòu)。目前,基于RISC-V指令集開源處理器越來越多,本次設(shè)計(jì)也參考了部分開源處理器;RISC-V微控制器實(shí)現(xiàn)了RISC-V指令集、擴(kuò)展指令,優(yōu)化了微結(jié)構(gòu)。1相關(guān)工作現(xiàn)如今大多數(shù)的物聯(lián)網(wǎng)終端設(shè)備采用單核的MCU,其中商業(yè)產(chǎn)品里面使用最多是ARMCortex-M系列的處理器。MCU加上一些智能外設(shè)控制、電源管理和非易失性存儲器在正常工作下僅幾十mW的功耗,而在睡眠模式下僅需要幾pW的功耗。在物聯(lián)網(wǎng)中,來自傳感器的數(shù)據(jù)可能是16位的寬度或者更低,所以在可編程的內(nèi)核中支持SIMD操作已經(jīng)成為一種主要的趨勢;其中的典型代表有ARMCortex-M4處理器[3],它支持DSP的功能同時(shí)維持了較好的能源效率,其在90nm低功耗制程下的功耗為32.8pW/MHz;并且指令集中擴(kuò)展了DSP指令,這樣為系統(tǒng)提供了更高的吞吐量;ARM甚至提供了一個(gè)ARMCortex-M軟件接口標(biāo)準(zhǔn)庫,其中標(biāo)準(zhǔn)庫里面包含優(yōu)化的內(nèi)置函數(shù)[3]。本次工作是基于RISC-V指令集架構(gòu)設(shè)計(jì)微控制器;基于RISC-V指令集開發(fā)的處理器和SoC有很多,其中大部分都是開源的,比較典型的處理器有Rocket處理器、Boom處理器、RI5CY處理器、Z-scale處理器等;典型的SoC有RocketChip、PULPino、LowRISC、SiFiveE300等。Rocket是加州大學(xué)伯克利分校開發(fā)的一款64位處理器,具有分支預(yù)測、基于頁的虛擬存儲的MMU、非閉塞的數(shù)據(jù)緩存和指令緩存等特點(diǎn);Rocket處理器支持DSP指令擴(kuò)展,其與ARMCortex-A5比較,性能幾乎相等,但面積、功耗降低了50%左右。RI5CY是SoCPULPino中的內(nèi)核,它主要針對低功耗場景設(shè)計(jì)的,具體特點(diǎn)有:4級按序流水、支持?jǐn)U展指令(硬件循環(huán)、SIMD、后增量加載和存儲指令等);RI5CY采用4級流水有效降低了功耗,并支持針對復(fù)雜算法的擴(kuò)展指令,提高了處理器的性能;其與ARMCortex-M4相比,性能幾乎相等,但面積和功耗下降20%左右。在本次工作中,借鑒了Rocket處理器和RI5CY處理器的相關(guān)做法;微控制器微結(jié)構(gòu)采用5級流水線、動(dòng)態(tài)分支預(yù)測、增加用于復(fù)雜算法的指令等技術(shù)。2RISC-V微控制器微結(jié)構(gòu)設(shè)計(jì)2.1指令集架構(gòu)以及擴(kuò)展指令RISC-V指令集包含一個(gè)基本的整數(shù)指令集RV32I和幾個(gè)標(biāo)準(zhǔn)的擴(kuò)展RV32M、RV32A、RV32F、RV32D;本次我們實(shí)現(xiàn)了RV31I、RV32M指令集,這樣可以保證在最少指令的情況下,設(shè)計(jì)的處理器面積盡可能小、功耗盡可能低。指令集支持用戶和機(jī)器兩個(gè)特權(quán)級,其中機(jī)器級用來存儲本終端設(shè)備的關(guān)鍵信息,防止非機(jī)器級的指令篡改,增加了處理器的安全性。RISC-V支持通用的32個(gè)通用整數(shù)寄存器,本次設(shè)計(jì)通用寄存器的位寬為32位;其中R0寄存器是硬連線的常數(shù)零。RISC-V指令集指令編碼的位寬為32位,其中指令編碼的0~6位為存儲操作碼,指令編碼的12~14位為存儲功能碼。我們將依據(jù)功能碼和操作碼對指令集進(jìn)行分類,如表1所列。表1指令分組分類目錄操作碼指令A(yù)LUI指令0010011ADDI,STLLSTLULXORIQRLAN-DLSLLI,SRLLSRAIALUR指令0110011ADD,SUB,SLL,SLT,SLTU,XOR,SRL,SRAQR,AND,MUL,MULH,MULHSU,MULHU,DIV,DIVU,REM,REMUBRANCH指令1100011BEQ,BNE,BLT,BGE,BLTU,BGEUJAL指令1101111JALJALR指令1100111JALRLOAD指令0000011LB,LH,LW,LBU,LHUSTORE指令0100011SB,SH,SWMISC-MEM指令0001111FENCE,FENCE.ISYSTEM指令1110011ECALL,EBREAK,CSRRW,CSRRS,CSRRC,CSRRWI,CSRRSLCSRRCILUI指令0110111LUIAUIPC指令0010111AUIPCCUSTOM指令0001011VSHUFFLE,VMACL,VMACH,VADD,VSUB,VSRADD,VSRSUB,VSRMUL,LWP,SWP通過操作碼,將RISC-V指令集分成了12個(gè)子組,每個(gè)子組通過功能碼劃分各個(gè)指令,其中擴(kuò)展指令被劃分到CUSTOM指令組。CUSTOM指令組包括SIMD指令、乘累加指令、帶有飽和操作和舍入操作的指令、帶有后增量的加載和存儲指令等。針對數(shù)字信號處理類的應(yīng)用,增加了加強(qiáng)數(shù)據(jù)運(yùn)算能力的指令;在定點(diǎn)的運(yùn)算中,加入了舍入操作和飽和操作,其可以降低運(yùn)算結(jié)果的溢出帶來的影響。SIMD指令加快數(shù)據(jù)的運(yùn)算效率,可以在一個(gè)周期內(nèi)同時(shí)處理多條操作,最大化了寄存器的使用。2.2RISC-V微控制器流水線結(jié)構(gòu)我們使用的RISC-V微控制器采用了典型按序執(zhí)行、單發(fā)射的微結(jié)構(gòu),采用5級流水線,分別是:取指、譯碼、執(zhí)行、訪存(二級執(zhí)行)、寫回。處理器核微結(jié)構(gòu)如圖1所示。在取指階段,通知地址選擇單元給出了的地址,從指令存儲器中取出指令;譯碼階段,譯碼器從指令中提取出操作碼、功能碼、寄存器等信息;執(zhí)行階段,根據(jù)譯碼信息選擇執(zhí)行單元,執(zhí)行單元進(jìn)行運(yùn)算;在訪存階段,依據(jù)執(zhí)行單元計(jì)算數(shù)據(jù)地址,從數(shù)據(jù)存儲器中取出數(shù)據(jù)存到寄存器中;寫回階段,將運(yùn)算得到的結(jié)構(gòu)寫入寄存器文件。圖1處理器核微結(jié)構(gòu)取指單元包括取指模塊和分支預(yù)測模塊,取指部分需要計(jì)算當(dāng)前PC值和下一條指令的PC值;針對分支指令增加了分支預(yù)測單元,分支預(yù)測器采用的動(dòng)態(tài)分支預(yù)測,分支預(yù)測器實(shí)現(xiàn)了(分支預(yù)測緩存)BTB、BHT(分支預(yù)測歷史表)、RAS(返回地址棧)。對于一條指令,分支預(yù)測模塊首先查詢BTB,查看是否命中,如果命中,再查詢BHT;查看對應(yīng)的分支歷史表中分支是否發(fā)生,如果發(fā)生,就返回分支發(fā)生的信號和分支目標(biāo)地址。Gshare算法如圖2所示。圖2Gshare算法本次工作中采用Gshare算法,使用GR全局分支歷史寄存器,將當(dāng)前指令的PC值的n位與GR的n位相異或,運(yùn)算結(jié)果作為PHT表的索引值;PHT采用兩位飽和計(jì)數(shù)器,有4種狀態(tài),如果查詢到PHT的結(jié)果是01或者11,那么預(yù)測分支發(fā)生。指令譯碼器接收來自取指階段的指令和PC值,依據(jù)指令編碼的低7位,將指令劃分為表1中的12個(gè)子組,依據(jù)功能碼將指令劃分到各個(gè)指令。在指令編碼中,源寄存器和目的寄存器的地址占5位,位置固定,與指令類型無關(guān),對于含立即數(shù)的指令,立即數(shù)需要符號擴(kuò)展到32位??紤]程序執(zhí)行中會出現(xiàn)數(shù)據(jù)相關(guān),在譯碼層增加了一個(gè)bypass控制模塊,比較譯碼層的源寄存器是否引用執(zhí)行層、訪存層指令的目的寄存器,如果引用了,bypass控制模塊將執(zhí)行層和訪存層的結(jié)果前遞到譯碼層。2.3存儲子系統(tǒng)平臺如果RISC-V微控制器要達(dá)到低功耗、低面積的要求,這就對存儲子系統(tǒng)提出了要求。存儲子系統(tǒng)支持緊耦合存儲器(TCM)端口,用于對本地RAM的低延時(shí)和確定性訪問。眾所周知,對于指令和數(shù)據(jù)存儲器的訪問是微控制器的關(guān)鍵操作,其功耗和性能的影響比較大。許多MCU數(shù)據(jù)和指令直接在存儲器上進(jìn)行操作,而不使用高速緩存,故本次RISC-V微控制器支持?jǐn)?shù)據(jù)緩存和指令緩存?;趹?yīng)用程序的代碼和數(shù)據(jù)量的考慮,采用了16KB指令緩存和24KB數(shù)據(jù)緩存,并且存儲子系統(tǒng)也支持物理內(nèi)存保護(hù),防止微控制器基本的、關(guān)鍵的信息被修改。RISC-V控制器微結(jié)構(gòu)框圖如圖3所示。圖3RISC-V控制器微結(jié)構(gòu)框圖3驗(yàn)證RISC-V微控制器已經(jīng)用Verilog實(shí)現(xiàn),通過SynopsysVCS的驗(yàn)證環(huán)境,驗(yàn)證了RISC微控制器指令集的邏輯功能正常實(shí)現(xiàn),滿足設(shè)計(jì)要求。在VCS的環(huán)境中,對RTL代碼的各個(gè)模塊進(jìn)行驗(yàn)證,RISC-V微控制器需要驗(yàn)證的模塊包括:基本指令集模塊、乘除指令模塊、擴(kuò)展指令模塊、AXI、APB總線以及外設(shè)等。通過對以上模塊的驗(yàn)證,RISC-V微控制器邏輯功能完全實(shí)現(xiàn)。下面以ADD這條指令為例,操作數(shù)1和操作數(shù)2的值均為1,其輸出的結(jié)果out是2,從圖4的波形中,可以看出ADD功能完全正確。應(yīng)用層的處理,比如通過Mesh接收的原始數(shù)據(jù)和網(wǎng)絡(luò)入網(wǎng)關(guān)聯(lián)數(shù)據(jù)的解析以及設(shè)備配置信息處理等工作。圖4輸出波形結(jié)語本文闡述了一種基于最新BLEv4.2二代藍(lán)牙Mesh自組網(wǎng)芯片CSR1024的智能門鎖設(shè)計(jì)方案,分別從硬件設(shè)計(jì)、電池功耗和壽命估計(jì)、智能公寓藍(lán)牙Mesh物聯(lián)網(wǎng)系統(tǒng)的架構(gòu)設(shè)計(jì)和智能門鎖軟件設(shè)計(jì)方面,論述了整個(gè)方案的設(shè)計(jì)過程和相關(guān)重要問題。目前,藍(lán)牙Mesh主要應(yīng)用在智能燈光和開關(guān)中,本案例的應(yīng)用為藍(lán)牙Mesh拓展了應(yīng)用范圍,是一個(gè)藍(lán)牙Mesh自組網(wǎng)技術(shù)在類工業(yè)領(lǐng)域的典型應(yīng)用案例。由于CSR1024的硬件外圍端口能力和軟件開發(fā)平臺的合理性,使得其在智能門鎖開發(fā)上得以應(yīng)用,削減了智能門鎖的開發(fā)成本和開發(fā)周期,降低了系統(tǒng)功耗,是一個(gè)不錯(cuò)的智能門鎖方案。參考文獻(xiàn)QUALCOMMTechnologies,In

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論