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

        ?

        RISC-V架構(gòu)的開(kāi)源處理器及SoC研究綜述

        2017-04-19 11:00:26雷思磊
        關(guān)鍵詞:指令集標(biāo)量流水線

        雷思磊

        (酒泉衛(wèi)星發(fā)射中心,酒泉 735000)

        RISC-V架構(gòu)的開(kāi)源處理器及SoC研究綜述

        雷思磊

        (酒泉衛(wèi)星發(fā)射中心,酒泉 735000)

        RISC-V是一種新的指令集架構(gòu),發(fā)布以來(lái)得到了大量關(guān)注,在描述了RISC-V的產(chǎn)生背景、基本設(shè)計(jì)的基礎(chǔ)上,簡(jiǎn)單比較了其與現(xiàn)有的開(kāi)源指令集架構(gòu)、商業(yè)指令集架構(gòu)的優(yōu)劣,然后詳細(xì)介紹了現(xiàn)有的采用RISC-V架構(gòu)的開(kāi)源處理器、開(kāi)源SoC,并展望了RISC-V的未來(lái)發(fā)展。

        RISC-V;Rocket;BOOM;SoC

        引 言

        RISC-V是加州大學(xué)伯克利分校(University of California at Berkeley,以下簡(jiǎn)稱UCB)設(shè)計(jì)并發(fā)布的一種開(kāi)源指令集架構(gòu),其目標(biāo)是成為指令集架構(gòu)領(lǐng)域的Linux,應(yīng)用覆蓋IoT(Internet of Things)設(shè)備、桌面計(jì)算機(jī)、高性能計(jì)算機(jī)等眾多領(lǐng)域。其產(chǎn)生是因?yàn)閁CB的研究人員在研究指令集架構(gòu)的過(guò)程中,發(fā)現(xiàn)當(dāng)前指令集架構(gòu)存在如下問(wèn)題[1]:

        ① 絕大多數(shù)指令集架構(gòu)都是受專利保護(hù)的,比如:x86、MIPS、Alpha,使用這些架構(gòu)需要授權(quán),限制了競(jìng)爭(zhēng)的同時(shí)也扼制了創(chuàng)新。

        ② 當(dāng)前的指令集架構(gòu)都比較復(fù)雜,不適合學(xué)術(shù)研究,而且很多復(fù)雜性是因?yàn)橐恍┰愀獾脑O(shè)計(jì)或者背負(fù)歷史包袱所帶來(lái)的。

        ③ 當(dāng)前的指令集架構(gòu)都是針對(duì)某一領(lǐng)域的,比如:x86主要是面向服務(wù)器、ARM主要是面向移動(dòng)終端,為此對(duì)應(yīng)的指令集架構(gòu)針對(duì)該領(lǐng)域做了大量的領(lǐng)域特定優(yōu)化,缺乏一個(gè)統(tǒng)一的架構(gòu)可以適用多個(gè)領(lǐng)域。

        ④ 商業(yè)的指令集架構(gòu)容易受企業(yè)發(fā)展?fàn)顩r的影響,比如:Alpha架構(gòu)就隨著DEC公司的被收購(gòu)而幾近消失。

        ⑤ 當(dāng)前已有的各種指令集架構(gòu)不便于針對(duì)特定的應(yīng)用進(jìn)行自定義擴(kuò)展。

        為此,UCB的研究人員Krste Asanovic、Andrew Waterman、Yunsup Lee決定設(shè)計(jì)一種新的指令級(jí)架構(gòu),并決定以BSD授權(quán)的方式開(kāi)源,希望借此可以有更多創(chuàng)新的處理器產(chǎn)生,有更多的處理器開(kāi)源,并以此降低電子產(chǎn)品成本[2]。RISC-V自2014年正式發(fā)布以來(lái),受到了包括谷歌、IBM、Oracle等在內(nèi)的眾多企業(yè),以及包括劍橋大學(xué)、蘇黎世聯(lián)邦理工大學(xué)、印度理工學(xué)院、中國(guó)科學(xué)院在內(nèi)的眾多知名學(xué)府與研究機(jī)構(gòu)的關(guān)注和參與,圍繞RISC-V的生態(tài)環(huán)境逐漸完善,并涌現(xiàn)了眾多開(kāi)源處理器及SoC采用RISC-V架構(gòu),這些處理器既有標(biāo)量處理器,也有超標(biāo)量處理器,既有單核處理器,也有多核處理器。本文簡(jiǎn)單介紹RISC-V架構(gòu)的基本設(shè)計(jì),并詳細(xì)描述目前采用RISC-V架構(gòu)的開(kāi)源處理器與SoC。

        1 RISC-V簡(jiǎn)介

        1.1 RISC-V的基本設(shè)計(jì)

        RISC-V是一個(gè)典型三操作數(shù)、加載-存儲(chǔ)形式的RISC架構(gòu),包括3個(gè)基本指令集和6個(gè)擴(kuò)展指令集,如表1所列,其中RV32E是RV32I的子集,不單獨(dú)計(jì)算。

        表1 RISC-V的指令集組成

        基本指令集的名稱后綴都是I,表示Integer,任何一款采用RISC-V架構(gòu)的處理器都要實(shí)現(xiàn)一個(gè)基本指令集,根據(jù)需要,可以實(shí)現(xiàn)多種擴(kuò)展指令集,例如:如果實(shí)現(xiàn)了RV32IM,表示實(shí)現(xiàn)了32位基本指令集和乘法除法擴(kuò)展指令集。如果實(shí)現(xiàn)了RV32IMAFD,那么可以使用RV32G來(lái)表示,表示實(shí)現(xiàn)了通用標(biāo)量處理器指令集。本文只介紹RV32I的基本情況。

        RV32I指令集有47條指令,能夠滿足現(xiàn)代操作系統(tǒng)運(yùn)行的基本要求,47條指令按照功能可以分為如下幾類:

        ① 整數(shù)運(yùn)算指令,實(shí)現(xiàn)算術(shù)、邏輯、比較等運(yùn)算。

        ② 分支轉(zhuǎn)移指令,實(shí)現(xiàn)條件轉(zhuǎn)移、無(wú)條件轉(zhuǎn)移等運(yùn)算,并且沒(méi)有延遲槽。

        ③ 加載存儲(chǔ)指令,實(shí)現(xiàn)字節(jié)、半字、字的加載和存儲(chǔ)操作,采用的都是寄存器相對(duì)尋址方式。

        ④ 控制與狀態(tài)寄存器訪問(wèn)指令,實(shí)現(xiàn)對(duì)系統(tǒng)控制與狀態(tài)寄存器的原子讀-寫(xiě)、原子讀-修改、原子讀-清零等操作。

        ⑤ 系統(tǒng)調(diào)用指令,實(shí)現(xiàn)系統(tǒng)調(diào)用、調(diào)試等功能。

        1.2 RISC-V的優(yōu)勢(shì)

        1.2.1 與開(kāi)源指令集架構(gòu)比較

        在RISC-V發(fā)布之前,實(shí)際上已經(jīng)有幾種開(kāi)源指令級(jí)架構(gòu),包括SPARC V8、OpenRISC,其中SUN發(fā)布的開(kāi)源多核多線程處理器OpenSparcT1、OpenSparcT2,以及歐空局的LEON3采用的就是SPARC V8,OpenRISC也有同名的開(kāi)源處理器,RISC-V與前兩者的比較如表2所列。此外,OpenRISC的許可證為GPL,這意味著所有的指令集改動(dòng)都必須開(kāi)源,而RISC-V的許可證是較為寬松的BSD License授權(quán)。

        表2 RISC-V與SPARC V8、OpenRISC的比較[2]

        1.2.2 與商業(yè)指令集架構(gòu)比較

        UCB的研究人員設(shè)計(jì)了一款采用RISC-V指令集架構(gòu)的開(kāi)源處理器Rocket,并且成功流片了11次,其中采用臺(tái)積電40 nm工藝時(shí)的性能,與采用同樣工藝的、都是標(biāo)量處理器的ARM Cortex-A5的性能對(duì)比如表3所列,可見(jiàn)Rocket占用面積更小,且功耗更低,性能更優(yōu)。

        表3 ARM Cortex-A5與采用RISC-V指令集架構(gòu)的Rocket比較[2]

        2 基于RISC-V的開(kāi)源處理器研究現(xiàn)狀

        2.1 標(biāo)量處理器——Rocket

        Rocket是UCB設(shè)計(jì)的一款64位、5級(jí)流水線、單發(fā)射順序執(zhí)行處理器,主要特點(diǎn)有:支持MMU,支持分頁(yè)虛擬內(nèi)存,所以可以移植Linux操作系統(tǒng);具有兼容IEEE 754-2008標(biāo)準(zhǔn)的FPU;具有分支預(yù)測(cè)功能,具有BTB(Branch Prediction Buff)、BHT(Branch History Table)、RAS(Return Address Stack)。

        Rocket是采用Chisel(Constructing Hardware in an Scala Embedded Language)編寫(xiě)的,這也是UCB設(shè)計(jì)的一種開(kāi)源的硬件編程語(yǔ)言,是Scala語(yǔ)言的領(lǐng)域特定應(yīng)用,可以充分利用Scala的優(yōu)勢(shì),將面向?qū)ο?object orientation)、函數(shù)式編程(functional programming)、類型參數(shù)化(parameterized types)、類型推斷(type inference)等概念引入硬件編程語(yǔ)言,從而提供更加強(qiáng)大的硬件開(kāi)發(fā)能力。Chisel除了開(kāi)源之外,還有一個(gè)優(yōu)勢(shì)就是使用Chisel編寫(xiě)的硬件電路,可以通過(guò)編譯得到對(duì)應(yīng)的Verilog設(shè)計(jì),還可以得到對(duì)應(yīng)的C++模擬器。Rocket使用Chisel編寫(xiě),就可以很容易得到對(duì)應(yīng)的軟件模擬器。同時(shí),因?yàn)镃hisel是面向?qū)ο蟮模訰ocket的很多類可以被其他開(kāi)源處理器、開(kāi)源SoC直接使用。

        2.2 超標(biāo)量亂序執(zhí)行處理器——BOOM

        BOOM(Berkeley Out-of-Order Machine)是UCB設(shè)計(jì)的一款64位超標(biāo)量、亂序執(zhí)行處理器,支持RV64G,也是采用Chisel編寫(xiě),利用Chisel的優(yōu)勢(shì),只使用了9 000行代碼,流水線可以劃分為6個(gè)階段:取指、譯碼/重命名/指令分配、發(fā)射/讀寄存器、執(zhí)行、訪存、回寫(xiě)。

        借助于Chisel,BOOM是可參數(shù)化配置的超標(biāo)量處理器,可配置的參數(shù)包括:

        ① 取指、譯碼、提交、指令發(fā)射的寬度。

        ② 重排序緩存ROB(Re-Order Buffer)、物理寄存器的大小。

        ③ 取指令緩存、RAS、BTB、加載、存儲(chǔ)隊(duì)列的深度。

        ④ 有序發(fā)射還是無(wú)序發(fā)射。

        ⑤ L1 Cache的路數(shù)。

        ⑥ MSHRs(Miss Status Handling Registers)的大小。

        ⑦ 是否使能L2 Cache。

        UCB已經(jīng)在40 nm工藝上對(duì)BOOM進(jìn)行了流片,測(cè)試結(jié)果如表4所列??梢?jiàn)BOOM與商業(yè)產(chǎn)品ARM Cortex-A9的性能要略優(yōu),體現(xiàn)在面積小、功耗低。

        表4 BOOM與ARM Cortex-A9的性能對(duì)比[3]

        2.3 處理器家族——SHAKTI

        SHAKTI[4]是印度理工學(xué)院的一個(gè)計(jì)劃,目標(biāo)是設(shè)計(jì)一系列適合不同應(yīng)用環(huán)境的、基于RISC-V的開(kāi)源處理器,以及一些IP核,以便搭建SoC。這些處理器是E-Class、C-Class、I-Class、M-Class、S-Class、H-Class、T-Class、N-Class,目前已經(jīng)開(kāi)源的是前三個(gè),使用Bluespec System Verilog編寫(xiě)。

        E-Class:32位標(biāo)量處理器,3級(jí)流水線,支持RISC-V的C(Compress)擴(kuò)展,目標(biāo)是超低功耗處理器。

        I-Class:64位、1~8核,亂序執(zhí)行處理器,共享L2 Cache、支持雙線程、SIMD/VPU,目標(biāo)是通用處理器。

        M-Class:I-Class的增強(qiáng)版,增加了指令發(fā)射大小、支持四線程、最高支持16核,目標(biāo)是通用處理器、低端服務(wù)器和移動(dòng)應(yīng)用。

        S-Class:64位、超標(biāo)量多線程處理器,支持L3 Cache、RapidIO、HMC(Hybrid Memory Cube)、向量處理單元,還有協(xié)處理器用于數(shù)據(jù)庫(kù)訪問(wèn)、加密算法、機(jī)器學(xué)習(xí),最高支持64核,目標(biāo)是通用處理器、服務(wù)器。

        H-Class:64位、32~128核、支持多線程、順序或者亂序執(zhí)行處理器,具有向量處理單元,目標(biāo)是高性能計(jì)算。

        T-Class:64或者128位處理器,其中通過(guò)為存儲(chǔ)器引入Tag,從而增強(qiáng)其安全性。

        N-Class:目標(biāo)是通過(guò)自定義的擴(kuò)展進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)處理。

        2.4 嵌入式應(yīng)用處理器——ORCA

        PicoRV32是由VectorBlox公司設(shè)計(jì)的一款32位標(biāo)量處理器,目標(biāo)是應(yīng)用于嵌入式領(lǐng)域,采用VHDL編寫(xiě),實(shí)現(xiàn)了RV32IM,也可以移除其中的M擴(kuò)展,也就是移除乘法除法擴(kuò)展,從而減少芯片占用資源,甚至可以移除與定時(shí)器有關(guān)的指令,從而僅僅實(shí)現(xiàn)RV32E。當(dāng)ORCA作為一個(gè)軟核下載到FPGA上的時(shí)候,其資源占用與主頻如表5所列。

        盡管PPP項(xiàng)目有其獨(dú)特的優(yōu)勢(shì),但其在智慧城市領(lǐng)域的實(shí)際應(yīng)用中實(shí)現(xiàn)建設(shè)落地的并不多,依舊處于起步建設(shè)階段。PPP模式的運(yùn)營(yíng)周期主要分為識(shí)別認(rèn)證、準(zhǔn)備材料、采購(gòu)落實(shí)、執(zhí)行方針和移交五個(gè)階段。而目前根據(jù)政府和社會(huì)資本合作(PPP)綜合信息平臺(tái)了解,智慧城市PPP項(xiàng)目有累計(jì)86個(gè)依舊處于識(shí)別認(rèn)證時(shí)期,占總比例的53.4%。而在歷經(jīng)三個(gè)階段考驗(yàn)后,停滯于執(zhí)行方針階段的項(xiàng)目累計(jì)達(dá)到24個(gè),占比14.9%。其很大一部分原因是由于國(guó)內(nèi)尚未出臺(tái)針對(duì)PPP模式的專項(xiàng)稅收政策,因此在智慧城市的PPP項(xiàng)目推進(jìn)過(guò)程中面臨諸多稅收不確定性,例如財(cái)政不同的重復(fù)征稅、優(yōu)惠政策覆蓋面有限等。

        表5 ORCA不同配置時(shí)的資源占用與主頻[5](以Altera's Cyclone IV為目標(biāo)FPGA)

        2.5 其他開(kāi)源處理器

        (1) RI5CY

        RI5CY是由蘇黎世聯(lián)邦理工大學(xué)和波羅尼亞大學(xué)聯(lián)合設(shè)計(jì)的一款小巧的4級(jí)流水線開(kāi)源處理器,實(shí)現(xiàn)了RV32IC以及RV32M中乘法指令mul,其目標(biāo)是作為并行超低功耗處理器項(xiàng)目PULP(Parallel Ultra Low Power)的處理器核,所以RI5CY在RISC-V的基礎(chǔ)上增加了許多擴(kuò)展,包括硬件循環(huán)、乘累加、高級(jí)算術(shù)指令等。采用UMC的65 nm工藝進(jìn)行流片,RI5CY主頻達(dá)到654 MHz,動(dòng)態(tài)功耗是17.5 μW/MHz[6],采用SystemVerilog編寫(xiě)。

        (2) RIDECORE

        RIDECORE (RIsc-v Dynamic Execution CORE)是由東京工業(yè)大學(xué)設(shè)計(jì)發(fā)布的一款超標(biāo)量亂序執(zhí)行處理器,實(shí)現(xiàn)了RV32IM,6級(jí)流水線分別是取指、譯碼、指令分配、發(fā)射、執(zhí)行、提交,可以同時(shí)取兩條指令、對(duì)兩條指令譯碼、提交兩條指令,采用的是Gshare分支預(yù)測(cè)機(jī)制。

        (3) Hwacha

        Hwacha是由UCB開(kāi)發(fā)的一款向量處理器,UCB將Hwacha作為RISC-V的一個(gè)非標(biāo)準(zhǔn)擴(kuò)展Xhwacha,已經(jīng)以28 nm和45 nm的工藝流片多次,主頻在1.5 GHz以上,目前還在研發(fā)中,正在修改OpenCL的編譯器,以適合Hwacha,UCB計(jì)劃以開(kāi)源的形式發(fā)布其代碼。

        (4) f32c

        f32c是由薩格勒布大學(xué)設(shè)計(jì)發(fā)布的32位、5級(jí)流水線、標(biāo)量處理器,原本實(shí)現(xiàn)的是MIPS指令集,后來(lái)添加實(shí)現(xiàn)了RISC-V指令集,處理器包括分支預(yù)測(cè)、直接映射緩存,同時(shí)發(fā)布的還有SDRAM控制器、SRAM控制器、視頻FrameBuffer、SPI控制器、UART、GPIO等IP,使用VHDL編寫(xiě)代碼。使用f32c處理器核,薩格勒布大學(xué)發(fā)布了FPGArduino項(xiàng)目,該項(xiàng)目將一塊FPGA開(kāi)發(fā)板變?yōu)橐粋€(gè)Arduino板,并且可以使用Arduino IDE進(jìn)行程序編譯下載。

        (5) Z-scale/V-scale

        Z-scale是UCB發(fā)布的針對(duì)嵌入式環(huán)境的32位、3級(jí)流水線、單發(fā)射標(biāo)量處理器,實(shí)現(xiàn)了RV32IM,指令總線和數(shù)據(jù)總線都是AHB-Lite。Z-scale采用是Chisel編寫(xiě)代碼,利用Rocket中的代碼,僅增加了604行代碼就實(shí)現(xiàn)了Z-scale。V-scale是Z-scale對(duì)應(yīng)的Verilog版本。

        (6) sodor

        sodor是UCB發(fā)布的針對(duì)教學(xué)的32位開(kāi)源處理器系列,采用Chisel編碼實(shí)現(xiàn),可以很容易的得到對(duì)應(yīng)的C++模擬器。sodor系列有5種處理器,分別是單周期處理器、2級(jí)流水線處理器、3級(jí)流水線處理器、5級(jí)流水線處理器、可執(zhí)行微碼的處理器。

        (7) PicoRV32

        PicoRV32是由RISC-V開(kāi)發(fā)者Clifford Wolf設(shè)計(jì)發(fā)布的一款大小經(jīng)過(guò)優(yōu)化的開(kāi)源處理器,實(shí)現(xiàn)了RV32IMC,并且根據(jù)不同環(huán)境可配置為實(shí)現(xiàn)RV32E、RV32I、RV32IC、RV32IM、RV32IMC。內(nèi)置一個(gè)可選擇的中斷控制器,其特點(diǎn)是小巧,在Xilinx7系列芯片上占用750~2 000個(gè)LUT,速度可以達(dá)到250~400 MHz。PicoRV32采用Verilog編寫(xiě)代碼。

        (8) Tom Thumb

        Tom Thumb是由RISC-V開(kāi)發(fā)者M(jìn)aikmerten設(shè)計(jì)發(fā)布的一款32位、6級(jí)流水線開(kāi)源處理器,實(shí)現(xiàn)了RV32I,目標(biāo)是盡量減少FPGA的資源占用,在Cyclone IV系列FPGA上大約占用資源1200 LEs,采用VHDL編寫(xiě)代碼。

        (9) FlexPRET

        FlexPRET[7]是由UCB設(shè)計(jì)發(fā)布的5級(jí)流水線、多線程處理器,目標(biāo)是使用在實(shí)時(shí)嵌入式應(yīng)用中,線程數(shù)量可配置為1~8。為了提高嵌入式處理器的資源利用率,每個(gè)硬件線程被標(biāo)記為硬實(shí)時(shí)(hard real-time thread)或者軟實(shí)時(shí)(soft real-time thread),硬實(shí)時(shí)線程按照固定的頻率被調(diào)度,如果當(dāng)前沒(méi)有硬實(shí)時(shí)線程可調(diào)度,再調(diào)度軟實(shí)時(shí)線程。使用Chisel編寫(xiě)代碼。

        (10) YARVI

        YARVI(Yet Another RISC-V Implementation)是由RISC-V開(kāi)發(fā)者Tommy Thorn設(shè)計(jì)發(fā)布的一款簡(jiǎn)單的、32位開(kāi)源處理器,實(shí)現(xiàn)了RV32I,使用Verilog作為開(kāi)發(fā)語(yǔ)言。其出發(fā)點(diǎn)不在于性能,而是要能夠清晰、準(zhǔn)確地實(shí)現(xiàn)RV32I。

        3 基于RISC-V的開(kāi)源SoC研究現(xiàn)狀

        3.1 Rocket-Chip

        UCB為了方便用戶學(xué)習(xí),同時(shí)也為了便于重復(fù)使用已設(shè)計(jì)好的硬件模塊,在GitHub上建立了Rocket-Chip Generator的項(xiàng)目,其中包括了Chisel、GCC、Rocket處理器,以及圍繞Rocket的一系列總線單元、外設(shè)、緩存等,并且采用了參數(shù)化的配置方法,從而可以方便地創(chuàng)建不同性能要求的基于Rocket處理器的SoC。采用Chisel編寫(xiě),主要的子模塊如下:

        ① Chisel:UCB設(shè)計(jì)的開(kāi)源硬件編程語(yǔ)言。

        ② Hardfloat:參數(shù)可配置的、兼容IEEE 754-2008標(biāo)準(zhǔn)的浮點(diǎn)單元。

        ③ Riscv-tools:開(kāi)發(fā)工具,包括GCC、Newlib,以及移植的Linux。

        ④ Rocket:Rocket處理器,包括L1 Cache。

        ⑤ Uncore:實(shí)現(xiàn)了需要與Rocket緊密連接的功能單元,比如L2 Cache、L1 Coherence Hub等。

        ⑥ Juntions:實(shí)現(xiàn)了不同協(xié)議的接口之間的轉(zhuǎn)換。

        ⑦ Rocketchip:頂層模塊,同時(shí)也實(shí)現(xiàn)了內(nèi)部總線TileLink向外部總線AXI或者AHB的轉(zhuǎn)換。

        前文介紹的BOOM、Z-scale都可以通過(guò)配置Rocket-Chip的不同參數(shù)得到。

        3.2 LowRISC

        LowRISC是由劍橋大學(xué)為主的一些研發(fā)人員成立的非營(yíng)利性組織,主要是設(shè)計(jì)發(fā)布基于RISC-V指令集的64位開(kāi)源SoC,其成員有樹(shù)莓派的合作者,目標(biāo)是希望將設(shè)計(jì)的SoC做成像樹(shù)莓派那樣價(jià)格便宜、功能豐富、擁有大量用戶的開(kāi)源硬件。LowRISC發(fā)布的SoC的名稱也是LowRISC,是在Rocket-Chip的基礎(chǔ)上改進(jìn)開(kāi)發(fā)的,采用System Verilog編寫(xiě)改進(jìn)部分的代碼。主要特點(diǎn)是:

        ① Tagged Memory。給每一個(gè)存儲(chǔ)位置都增加了一個(gè)Tag,目前是雙字(64位)對(duì)應(yīng)一個(gè)Tag(4位),目的是防止控制流劫持攻擊,同時(shí)也有其他的一些用處,比如:垃圾回收、設(shè)置watchpoint等。為了實(shí)現(xiàn)Tagged Memory,LowRISC為RISC-V增加了兩條指令用來(lái)讀寫(xiě)Tag。2015年4月發(fā)布的0.1版本中具有該功能。

        ② Untethered。早期的Rocket-Chip需要依賴于一個(gè)通用處理器的協(xié)助才能夠啟動(dòng),才能夠訪問(wèn)串口、網(wǎng)口、SD卡等外設(shè),Untethered LowRISC通過(guò)實(shí)現(xiàn)(Memory mapping I/O)、片上NASTI interconnect等功能,解決了上述問(wèn)題。2015年11月發(fā)布的0.2版本中具有該功能。

        ③ Trace Debugging。引入了Open SoC Debug,支持Trace Debugging,可以收集指令執(zhí)行記錄,便于離線或者在線分析。2016年7月發(fā)布的0.3版本中具有該功能。

        3.3 PULPino

        PULPino是蘇黎世聯(lián)邦理工大學(xué)和波羅尼亞大學(xué)聯(lián)合發(fā)布的基于RISC-V的開(kāi)源處理器,其處理器核RI5CY在前文已述,蘇黎世聯(lián)邦理工大學(xué)和波羅尼亞大學(xué)本來(lái)設(shè)計(jì)的項(xiàng)目是PULP,這是一個(gè)多核SoC項(xiàng)目,考慮到這個(gè)項(xiàng)目太復(fù)雜,有許多IP、自定義工具集,不方便開(kāi)源,所以開(kāi)發(fā)者決定先開(kāi)源一個(gè)單核SoC項(xiàng)目,即PULPino。PULPino直接使用了PULP項(xiàng)目的許多IP。

        PULPino具有一個(gè)AXI互連總線,另外還有一個(gè)APB總線,用來(lái)連接低速外設(shè),比如:GPIO、UART、I2C控制器、SPI Master控制器等。調(diào)試模塊支持Advanced Debug Unit。PULPino包括一個(gè)Boot ROM,其中可以寫(xiě)入BootLoader,從而實(shí)現(xiàn)在啟動(dòng)的時(shí)候從外部Flash讀入程序并執(zhí)行。

        3.4 RISC-V VHDL

        RISC-V VHDL是俄羅斯的GNSS Sensor公司發(fā)布的基于Rocket的開(kāi)源SoC,其前身是莫斯科物理技術(shù)學(xué)院的一個(gè)項(xiàng)目。該項(xiàng)目的處理器核直接用的是Rocket,可以配置為只有L1 Cache,也可以配置為包括L2 Cache,在此基礎(chǔ)上,提供了大量的IP核,采用類似LEON3的GRLIB庫(kù)的方式,所有的IP核都是即插即用,RISC-V VHDL提供了一個(gè)AXI總線,IP核都掛載在該總線上。IP核包括:UART、GPIO、中斷控制器、以太網(wǎng)控制器,此外還支持DSU(Debug Support Unit),均采用VHDL編寫(xiě)代碼。RISC-V VHDL中大多數(shù)IP核都是開(kāi)源的,唯一商業(yè)的是GNSSLIB,這是一個(gè)與定位導(dǎo)航有關(guān)的庫(kù),也是RISC-V VHDL的特色。

        結(jié) 語(yǔ)

        RISC-V的發(fā)展十分迅速,除了前文已述的基于RISC-V的開(kāi)源處理器、開(kāi)源SoC大量涌現(xiàn),還有很多的商用處理器也計(jì)劃采用RISC-V指令集架構(gòu),比如PulSAR[8],采用的是一個(gè)異構(gòu)多處理器結(jié)構(gòu),其中包括2個(gè)標(biāo)量處理器Rocket,還包括兩個(gè)超標(biāo)量亂序執(zhí)行處理器BOOM。RISC-V的發(fā)展一方面得益于自身設(shè)計(jì)吸取了RISC接近40年的經(jīng)驗(yàn)教訓(xùn),使得架構(gòu)設(shè)計(jì)更加合理;另一方面得益于日漸成熟的軟件生態(tài),UCB提供了針對(duì)RISC-V的開(kāi)源編譯器GCC、LLVM,還提供了開(kāi)源仿真器Spike、QEMU,社區(qū)還移植了FreeBSD、Debian、Gentoo、Yocto、Genode等操作系統(tǒng)。

        [1] A Waterman,Y Lee,DA Patterson, et al.The RISC-V Instruction Set Manual, Volume I: User-Level ISA[J].Eecs Department,2011, 7(9):475.

        [2] Krste Asanovic, David Patterson.The Case for Open Instruction Sets[J].MICROPROCESSOR report, 2014(8): 1-7.

        [3] Celio, Christopher and Patterson, David A.and Asanovic, Krste, The Berkeley Out-of-Order Machine (BOOM): An Industry-Competitive, Synthesizable, Parameterized RISC-V Processor[R].EECS Department, University of California, Berkeley, June 2015.

        Research on Open Source Processor and SoC Based on RISC-V

        Lei Silei

        (Jiuquan Satellite Launch Center,Jiuquan 735000,China)

        RISC-V is a new instruction set architecture(ISA),and it gets a lot of attention since the release.On the basis of describing the background and the basic design of RISC-V,the advantages and disadvantages with the existing open-source instruction set architecture and commercial instruction set architecture are compared.Then the existing open source processor and SoC using RISC-V architecture are described.Finally,the future development of RISC-V is prospected.

        RISC-V;Rocket;BOOM;SoC

        TP368.1

        A

        猜你喜歡
        指令集標(biāo)量流水線
        Gen Z Migrant Workers Are Leaving the Assembly Line
        3DNow指令集被Linux淘汰
        流水線
        一種高效的橢圓曲線密碼標(biāo)量乘算法及其實(shí)現(xiàn)
        一種靈活的橢圓曲線密碼并行化方法
        實(shí)時(shí)微測(cè)量系統(tǒng)指令集及解析算法
        報(bào)廢汽車(chē)拆解半自動(dòng)流水線研究
        什么是AMD64
        單調(diào)Minkowski泛函與Henig真有效性的標(biāo)量化
        SIMATIC IPC3000 SMART在汽車(chē)流水線領(lǐng)域的應(yīng)用
        久久久久99精品成人片试看| 国产黄污网站在线观看| 久久亚洲精品国产精品婷婷| 白白色视频这里只有精品| 欧美日韩精品乱国产| 欧美人与动人物姣配xxxx| 91精品国产91久久久久久青草| 国产午夜福利av在线麻豆| 国产精品视频亚洲二区| 国产精品亚洲一区二区三区在线| 提供最新的在線欧美综合一区| 亚洲一区sm无码| 精品自拍偷拍一区二区三区| 中文字幕亚洲五月综合婷久狠狠| 摸丰满大乳奶水www免费| 成人精品综合免费视频| 最新亚洲无码网站| 中文字幕人妻精品一区| 国产乱子轮xxx农村| 中国亚洲女人69内射少妇| 中文字幕日韩人妻高清在线| 天堂网日韩av在线播放一区| 亚洲国产精品无码久久98| 中文字幕第一页亚洲| 亚洲中文字幕久爱亚洲伊人| av在线一区二区三区不卡| 久爱www人成免费网站 | 精品含羞草免费视频观看| a级毛片无码免费真人| 精品91亚洲高清在线观看| 99视频一区二区日本| av国产传媒精品免费| 亚洲精品成人网久久久久久| 欧美中文字幕在线看| 日本国产精品高清在线| 色欲av伊人久久大香线蕉影院 | 日本免费大片一区二区| 国产精品免费看久久久8| 骚片av蜜桃精品一区| 天堂av在线播放观看| 黄片大全视频在线播放|