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