RISC-V相关概念整理
目錄
1.RISC-V的概念
2.RISC-V的易錯點(diǎn)
3.SoC(片上系統(tǒng))
4.內(nèi)核
5.協(xié)處理器
6.敏捷開發(fā)
6.1 敏捷開發(fā)的概念
6.2 敏捷開發(fā)模式的分類
7.MMIO
7.1 MMIO的概念
7.2 Port I/O和MMIO的主要區(qū)別
8.Verilog HDL
9.Chisel
10.RTL生成器
10.1 RTL生成器的概念
10.2 RTL級的基本要素和設(shè)計步驟
11.Chipyard框架
12.Gemmini
13.Rocket Core
1.RISC-V的概念
? ? ? ? RISC-V(讀作“RISC-FIVE”)是基于精簡指令集計算(RISC)原理(原則)建立的開放(開源)指令集架構(gòu)(ISA),V表示為第五代RISC(精簡指令集計算機(jī)),表示此前已經(jīng)四代RISC處理器原型芯片。每一代RISC處理器都是在同一人帶領(lǐng)下完成,那就是加州大學(xué)伯克利分校的David A. Patterson教授。與大多數(shù)ISA相反,RISC-V ISA可以免費(fèi)地用于所有希望的設(shè)備中,允許任何人設(shè)計、制造和銷售RISC-V芯片和軟件。它雖然不是第一個開源的的指令集(ISA),但它很重要,因?yàn)樗谝粋€被設(shè)計成可以根據(jù)具體場景可以選擇適合的指令集的指令集架構(gòu)。基于RISC-V指令集架構(gòu)可以設(shè)計服務(wù)器CPU,家用電器cpu,工控cpu和用在比指頭小的傳感器中的cpu。
? ? ? ? RISC-V指令集的設(shè)計考慮了小型、快速、低功耗的現(xiàn)實(shí)情況來實(shí)做,但并沒有對特定的微架構(gòu)做過度的設(shè)計。最主要的特點(diǎn)是其ISA通過支持自定義指令的方式,支持自定義硬件加速器,用于專用領(lǐng)域的計算加速設(shè)計。
2.RISC-V的易錯點(diǎn)
? ? ? ? RISC-V是一種開放的指令集架構(gòu)《精簡指令集架構(gòu)》,而不是一款具體的處理器。任何組織與個人都可以根據(jù)RISC-V架構(gòu)設(shè)計實(shí)現(xiàn)自己的處理器/高性能處理器/低功耗處理器。只要是根據(jù)RISC-V架構(gòu)而設(shè)計的處理器都可以成為RISC-V架構(gòu)處理器。
3.SoC(片上系統(tǒng))
? ? ? ? 片上系統(tǒng)(SoC:System-on-a-chip)指的是在單個芯片上集成一個完整的系統(tǒng),對所有或部分必要的電子電路進(jìn)行包分組的技術(shù)。所謂完整的系統(tǒng)一般包括中央處理器(CPU)、存儲器、以及外圍電路等。 SoC是與其它技術(shù)并行發(fā)展的,如絕緣硅(SOI),它可以提供增強(qiáng)的時鐘頻率,從而降低微芯片的功耗。
? ? ? ? 片上系統(tǒng)技術(shù)通常應(yīng)用于小型的,日益復(fù)雜的客戶電子設(shè)備。例如,聲音檢測設(shè)備的片上系統(tǒng)是在單個芯片上為所有用戶提供包括音頻接收端、模數(shù)轉(zhuǎn)換器(ADC)、微處理器、必要的存儲器以及輸入輸出邏輯控制等設(shè)備。此外系統(tǒng)芯片還應(yīng)用于單芯片無線產(chǎn)品,諸如藍(lán)牙設(shè)備,支持單芯片WLAN和蜂窩電話解決方案。
? ? ? ? 由于空前的高效集成性能,片上系統(tǒng)是替代集成電路的主要解決方案。SoC 已經(jīng)成為當(dāng)前微電子芯片發(fā)展的必然趨勢。Player Station 即采用的SoC。
4.內(nèi)核
? ? ? ? 內(nèi)核是操作系統(tǒng)最基本的部分。它是為眾多應(yīng)用程序提供對計算機(jī)硬件的安全訪問的一部分軟件,這種訪問是有限的,并且內(nèi)核決定一個程序在什么時候?qū)δ巢糠钟布僮鞫嚅L時間。內(nèi)核的分類可分為單內(nèi)核和雙內(nèi)核以及微內(nèi)核。嚴(yán)格地說,內(nèi)核并不是計算機(jī)系統(tǒng)中必要的組成部分。
5.協(xié)處理器
? ? ? ? 協(xié)處理器(Co-processor),一種芯片,用于減輕系統(tǒng)微處理器的特定處理任務(wù)。
? ? ? ? 協(xié)處理器是一種協(xié)助中央處理器完成其無法執(zhí)行或執(zhí)行效率、效果低下的處理工作而開發(fā)和應(yīng)用的處理器。這種中央處理器無法執(zhí)行的工作有很多,比如設(shè)備間的信號傳輸、接入設(shè)備的管理等;而執(zhí)行效率、效果低下的有圖形處理、聲頻處理等。為了進(jìn)行這些處理,各種輔助處理器就誕生了。需要說明的是,由于現(xiàn)在的計算機(jī)中,整數(shù)運(yùn)算器與浮點(diǎn)運(yùn)算器已經(jīng)集成在一起,因此浮點(diǎn)處理器已經(jīng)不算是輔助處理器。而內(nèi)建于CPU中的協(xié)處理器,同樣不算是輔助處理器,除非它是獨(dú)立存在。
? ? ? ? RoCC 加速器是一款自定義協(xié)處理器。
6.敏捷開發(fā)
6.1 敏捷開發(fā)的概念
? ? ? ? 敏捷開發(fā)(Agile)是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。在敏捷開發(fā)中,軟件項(xiàng)目的構(gòu)建被切分成多個子項(xiàng)目,各個子項(xiàng)目的成果都經(jīng)過測試,具備集成和可運(yùn)行的特征。簡單地來說,敏捷開發(fā)并不追求前期完美的設(shè)計、完美編碼,而是力求在很短的周期內(nèi)開發(fā)出產(chǎn)品的核心功能,盡早發(fā)布出可用的版本。然后在后續(xù)的生產(chǎn)周期內(nèi),按照新需求不斷迭代升級,完善產(chǎn)品。
6.2 敏捷開發(fā)模式的分類
? ? ? ? 敏捷開發(fā)的實(shí)現(xiàn)主要包括 SCRUM、XP(極限編程)、Crystal Methods、FDD(特性驅(qū)動開發(fā))等等。其中 SCRUM 與 XP 最為流行。同樣是敏捷開發(fā),XP 極限編程 更側(cè)重于實(shí)踐,并力求把實(shí)踐做到極限。這一實(shí)踐可以是測試先行,也可以是結(jié)對編程等,關(guān)鍵要看具體的應(yīng)用場景。
7.MMIO
7.1 MMIO的概念
? ? ? ? MMIO(Memory mapping?I/O)即內(nèi)存映射I/O,它是PCI規(guī)范的一部分,I/O設(shè)備被放置在內(nèi)存空間而不是I/O空間。從處理器的角度看,內(nèi)存映射I/O后系統(tǒng)設(shè)備訪問起來和內(nèi)存一樣。這樣訪問AGP/PCI-E顯卡上的幀緩存,BIOS,PCI設(shè)備就可以使用讀寫內(nèi)存一樣的匯編指令完成,簡化了程序設(shè)計的難度和接口的復(fù)雜性。I/O作為CPU和外設(shè)交流的一個渠道,主要分為兩種,一種是Port I/O,一種是MMIO(Memory mapping I/O)。
7.2 Port I/O和MMIO的主要區(qū)別
1)前者就是我們常說的I/O端口,它實(shí)際上的應(yīng)該被稱為I/O地址空間。前者不占用CPU的物理地址空間,后者占有(這是對x86架構(gòu)說的,一些架構(gòu),如IA64,port?I/O占用物理地址空間)。
2)前者是順序訪問。也就是說在一條I/O指令完成前,下一條指令不會執(zhí)行。例如通過Port I/O對設(shè)備發(fā)起了操作,造成了設(shè)備寄存器狀態(tài)變化,這個變化在下一條指令執(zhí)行前生效。uncache的MMIO通過uncahce memory的特性保證順序性。
3)使用方式不同
由于port I/O有獨(dú)立的64K?I/O地址空間,但CPU的地址線只有一套,所以必須區(qū)分地址屬于物理地址空間還是I/O地址空間。
8.Verilog HDL
? ? ? ? Verilog HDL(簡稱 Verilog )是一種硬件描述語言,用于數(shù)字電路的系統(tǒng)設(shè)計。可對算法級、門級、開關(guān)級等多種抽象設(shè)計層次進(jìn)行建模。
? ? ? ? Verilog 繼承了 C 語言的多種操作符和結(jié)構(gòu),與另一種硬件描述語言 VHDL 相比,語法不是很嚴(yán)格,代碼更加簡潔,更容易上手。Verilog 不僅定義了語法,還對語法結(jié)構(gòu)都定義了清晰的仿真語義。因此,Verilog 編寫的數(shù)字模型就能夠使用 Verilog 仿真器進(jìn)行驗(yàn)證。
9.Chisel
? ? ? ? Chisel(Constructing Hardware In a Scala Embedded Language)是一種嵌入在高級編程語言Scala的硬件構(gòu)建語言。?Chisel是由伯克利大學(xué)發(fā)布的一種開源硬件構(gòu)建語言,建立在Scala語言之上,是Scala特定領(lǐng)域語言的一個應(yīng)用,具有高度參數(shù)化的生成器(highly parameterized generators),可以支持高級硬件設(shè)計。?Chisel實(shí)際上只是一些特殊的類定義,預(yù)定義對象的集合,使用Scala的用法,所以在寫Chisel程序時實(shí)際上是在寫Scala程序。
10.RTL生成器
10.1 RTL生成器的概念
? ? ? ? RTL主要描述的是寄存器到寄存器之間邏輯功能的實(shí)現(xiàn),它不具體關(guān)心到底使用了多少邏輯門,因而比門級更為簡單和高效。
? ? ? ? RTL描述是可以表示為一個有限狀態(tài)機(jī),或是一個可以在一個預(yù)定的時鐘周期邊界上進(jìn)行寄存器傳輸?shù)母话愕臅r序狀態(tài)機(jī)。RTL code:Register-Transfer-Level code,通常由VHDL/verilog兩種語言進(jìn)行描述。
? ? ? ? 可以將RTL生成器視為通用 RTL 設(shè)計,使用元編程和標(biāo)準(zhǔn) RTL 混合編寫。這種類型的元編程由 Chisel 硬件描述語言啟用。標(biāo)準(zhǔn) RTL 設(shè)計本質(zhì)上只是來自生成器的設(shè)計的單個實(shí)例。然而,通過使用元編程和參數(shù)系統(tǒng),生成器可以允許以自動化方式集成復(fù)雜的硬件設(shè)計。
10.2 RTL級的基本要素和設(shè)計步驟
? ? ? ? 典型的RTL級的設(shè)計包含三個部分:時鐘域描述,時序邏輯描述,組合邏輯描述。
? ? ? ? 較為推薦的設(shè)計步驟如下:
1.?功能定義與模塊拆分
2.?定義所有模塊接口
3.?設(shè)計時鐘域:注意全局時鐘資源幾乎沒有時鐘偏斜(Clock Skew)但時延(Clock Delay)大,驅(qū)動能力強(qiáng);第二全局時鐘偏斜小,但時延小,驅(qū)動能力次之。
4.?考慮設(shè)計中的關(guān)鍵路徑:關(guān)鍵路徑即時序要求最緊張的路徑,主要由頻率、建立時間(Tsetup)、保持時間(Thold)等制約,同時可以用pipeline或者邏輯復(fù)用等方法緩解。
5.?頂層設(shè)計:推薦使用自頂向下的設(shè)計,這同模塊規(guī)劃是一致的。
6.?FSM狀態(tài)機(jī):后續(xù)有專門介紹
7.?時序邏輯設(shè)計
8.?組合邏輯設(shè)計
11.Chipyard框架
? ? ? ? Chipyard是用于敏捷開發(fā)基于Chisel的SoC的開源框架。 它讓用戶能夠利用Chisel HDL,Rocket-Chip SoC生成器和其他Berkeley項(xiàng)目來生產(chǎn)RISC-V SoC,它具有從MMIO映射的外設(shè)到定制加速器的所有功能。 Chipyard項(xiàng)目包含處理器內(nèi)核(Rocket,BOOM,Ariane),加速器(Hwacha),存儲器系統(tǒng)以及其他外圍設(shè)備和工具,以幫助用戶快速創(chuàng)建功能齊全的SoC。 Chipyard支持多種敏捷硬件開發(fā)流程,包括軟件RTL仿真,FPGA加速仿真(FireSim),自動化VLSI流程(Hammer)以及針對裸機(jī)和基于Linux的系統(tǒng)的軟件開發(fā)。
12.Gemmini
? ? ? ? Gemmini,基于脈動陣列的矩陣乘法單元生成器/針對神經(jīng)網(wǎng)絡(luò)的矩陣乘法加速器,主要用于研究此類集成 SoC 加速器的軟件/硬件影響。它的靈感來自于邊緣端和移動 SoC端機(jī)器學(xué)習(xí)加速器的最新趨勢。?Gemmini 也可以看作是一個具有非標(biāo)準(zhǔn) RISC-V 自定義指令的 RoCC 加速器。
? ? ? ? Gemmini 以非標(biāo)準(zhǔn) RISC-V 自定義指令(RISC-V custom instructions)的 RoCC 加速器的方式而實(shí)現(xiàn)。Gemmini 單元使用 Rocket 或 BOOM?tile的 RoCC 端口,默認(rèn)情況下通過系統(tǒng)總線連接到內(nèi)存系統(tǒng)(即直接連接到 L2 緩存)。
13.Rocket Core
? ? ? ? Rocket Core是伯克利開發(fā)的一款開源RISC-V處理器核,可以由伯克利開發(fā)的SoC生成器Rocket-Chip生成。
【區(qū)分】Rocket Core是一款處理器核;Rocket-Chip是一款SoC生成器,可以生成若干伯克利開發(fā)的處理器核,包括Rocket Core和BOOM Core。
總結(jié)
以上是生活随笔為你收集整理的RISC-V相关概念整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity之创建文件报错
- 下一篇: 使用unity时VS无报错