日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RISC-V基本介绍

發(fā)布時間:2024/3/12 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RISC-V基本介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、命名規(guī)范
  • 二、模塊化ISA
  • 三、一些概念
    • 1. 指令格式
    • 2. 寄存器
    • 3. 特權(quán)級別
    • 4. CSR(控制和狀態(tài)寄存器)
  • 四、學習資料
    • 1. 官方資料
    • 2. 開發(fā)參考
  • 總結(jié)


前言

RISC-V作為目前大火的開源指令集架構(gòu)有著自己的獨特魅力,本文將對其基本情況進行介紹,給大家留一個初步印象。


關(guān)于指令集的概念大家可以參看:什么是指令集架構(gòu)ISA【從處理器談起】

RISC-V念作 “risk-five”,代表著 Berkeley 所研發(fā)的第五代精簡指令集。它是一款高質(zhì)量、免許可證、開放的RISC ISA(指令集架構(gòu)),是一套由RISC-V基金會維護的標準,適用于所有類型的計算系統(tǒng)。開源的RISC-V打破了ARM、x86架構(gòu)的技術(shù)壁壘,便于開發(fā)者進行開發(fā),目前國內(nèi)外都在流行該架構(gòu)。

一、命名規(guī)范

我們在實現(xiàn)基于RISCV架構(gòu)的處理器時,根據(jù)應用場景的需要我們可以選擇只實現(xiàn)架構(gòu)中的部分指令,或者對于處理器的位寬有不同的選擇。我們需要根據(jù)一些命名規(guī)范來對選擇的RISCV子架構(gòu)進行命名。以方便讓用戶馬上了解這款處理器是基于怎樣的子架構(gòu)開發(fā)的。

RISCV ISA 命名格式:RV[###][abc……xyz]

  • RV:用于標識 RISC-V 體系架構(gòu)的前綴,即 RISC-V的縮寫。
  • [###]:{32, 64, 128} 用于標識處理器的位寬,也就是處理器的寄存器的寬度(單位為 bit)
  • [abc…xyz]:標識該處理器支持的指令集模塊集合。(指令模塊的含義在下面會介紹)

如RV32IMA,RV64GC。

二、模塊化ISA

RISC-V采用模塊化的指令集,易于擴展、組裝。

RISCV ISA = 1 個基本整數(shù)指令集(I) + 多個可選的擴展指令集

其中唯一強制要求實現(xiàn)的基礎(chǔ)指令集,其他指令集都是可選的擴展模塊。RISC-V 允許在實現(xiàn)中以可選的形式實現(xiàn)其他標準化和非標準化的指令集擴展。
RISC-V指令集模塊包括

【注:特定組合“IMAFD”被稱為 “通用(General)”組合,用英文字母 G 表示】

其他的擴展指令集還包括“B”標準擴展:位操作、“E”標準擴展:嵌入式、“H”特權(quán)態(tài)架構(gòu)擴展:支持管理程序(Hypervisor)、“J”標準擴展:動態(tài)翻譯語言、“L”標準擴展:十進制浮點、“N”標準擴展:用戶態(tài)中斷、“P”標準擴展:封裝的單指令多數(shù)據(jù)(Packed-SIMD)指令、“Q”標準擴展:四精度浮點。

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

  • 整數(shù)運算指令:實現(xiàn)算術(shù)、邏輯、比較等運算。
  • 分支轉(zhuǎn)移指令:實現(xiàn)條件轉(zhuǎn)移、無條件轉(zhuǎn)移等運算,并且沒有延遲槽。
  • 加載存儲指令:實現(xiàn)字節(jié)、半字、字的加載、存儲操作,采用的都是寄存器相對尋址方式。
  • 控制與狀態(tài)寄存器訪問指令:實現(xiàn)對系統(tǒng)控制與狀態(tài)寄存器的原子讀-寫、原子讀-修改、原子讀-清零等操作。
  • 系統(tǒng)調(diào)用指令:實現(xiàn)系統(tǒng)調(diào)用、調(diào)試等功能。

三、一些概念

1. 指令格式

RISC-V具有非常工整的指令格式,所有基礎(chǔ)指令的格式可以分為以下四種,指令長度為32位,在“C”標準擴展中,指令長度被壓縮到16位:

規(guī)整的指令格式有利于處理器中的控制器對于二進制指令的解碼。符合“越規(guī)整,越簡單”的設(shè)計理念。

還有兩種特殊的指令格式:SB型和UJ型,兩種格式都只包含一條指令。

具體基本的RISCV的匯編語言和機器語言的對應表如下所示:

2. 寄存器

RISC-V 的 Unprivileged Specification 定義了 32 個通用寄存器以及一個 PC

  • 對RV32I/RV64I/RV128I都一樣

  • 如果實現(xiàn)支持 F/D 擴展則需要額外支持 32個浮點(Float
    Point)寄存器。

  • RV32E(E表示嵌入式系統(tǒng))將32個通用寄存器縮減為16個。

每個寄存器具體編程時有特定的用途以及各自的別名,如下表:

3. 特權(quán)級別

RISC-V 的 Privileged Specification 定義了四個特權(quán)級別(privilege level),以下特權(quán)等級由高到低排列。

  • 機器級別(M):RISC-V中hart(hardware thread,硬件線程,hart相當于核)可以執(zhí)行的最高權(quán)限模式。在M模式下運行的hart對內(nèi)存,I/O和一些對于啟動和配置系統(tǒng)來說必要的底層功能有著完全的使用權(quán)。因此它是唯一所有標準RISC-V
    處理器都必須實現(xiàn)的權(quán)限模式。實際上普通的RISC-V微控制器僅支持M模式。

  • 超級監(jiān)管者級別(H):為了支持虛擬機監(jiān)視器。

  • 監(jiān)管者級別(S):旨在支持現(xiàn)代類Unix操作系統(tǒng),如Linux,FreeBSD和Windows。

  • 用戶級別(U):用于運行應用程序,適用于安全嵌入式系統(tǒng)。

  • 任何時候,一個RISC-V硬件線程(hart)是運行在某個特權(quán)級上的,這個特權(quán)級由CSR(control and status register,控制和狀態(tài)寄存器)配置。

    4. CSR(控制和狀態(tài)寄存器)

    不同的特權(quán)級別下時分別對應各自的一套Registers(CSR),用于控制和獲取相應特權(quán)級別下的處理器工作狀態(tài)。在高級別的特權(quán)級別下,可以訪問低級別的CSR,譬如Machine Level下可以訪問Supervisor/User Level的CSR;但反之不可以。

    標準RISC-V ISA設(shè)置了一個12位的編碼空間(csr[11:0])作為CSR地址,可用于4096個CSR。根據(jù)約定,CSR地址的高4位(csr[11:8])用于編碼CSR根據(jù)特權(quán)級讀寫的可訪問性。其中最高2位(csr[11:10])指示這個寄存器是否是可以讀/寫(如只讀是11)。后面2位(csr[9:8])指示了能夠訪問這個CSR所需要的最低特權(quán)級(如上表中,監(jiān)管者模式是01)。

    RISC-V定義了專門用于操作CSR的指令,且定義了特定的指令可以用于在不同特權(quán)級別之間進行切換(稱為trap)

    一個hart(硬件線程)通常在U-mode下運行應用程序,直到某些自陷(trap,例如一個管理員調(diào)用或者一個定時器中斷)強制切換到一個自陷處理函數(shù)(trap handler)。提升特權(quán)級別的自陷稱為垂直自陷(vertical trap),而保持在同樣特權(quán)級別的自陷稱為水平自陷(horizontal trap)。

    例如,下表是已被分配的用戶級別(U)的CSR地址:

    特權(quán)級別的切換對應于操作系統(tǒng)中用戶態(tài)到內(nèi)核態(tài)的切換,在內(nèi)核態(tài)中才可以進行系統(tǒng)調(diào)用。

    四、學習資料

    1. 官方資料

    在RISC-V官網(wǎng)上可以下載基礎(chǔ)的ISA手冊及特權(quán)手冊:https://riscv.org/technical/specifications/

    開發(fā)者在開發(fā)前需要閱讀架構(gòu)規(guī)范。官方的github主頁是:https://github.com/riscv。

    2. 開發(fā)參考

    RISC-V只是定義了一套指令集架構(gòu)規(guī)范,沒有具體實現(xiàn)的代碼,需要開發(fā)者根據(jù)該架構(gòu)手冊,通過使用硬件描述語言如VHDL編程來具體實現(xiàn)基于RISC-V的處理器,再移植到滿足RISC-V需求的硬件平臺(處理器芯片或開發(fā)板)上去。
    使用RISC-V架構(gòu)的同時,還要配套開發(fā)相應的編譯器gcc以及調(diào)試器如openOCD。

    同時RISC-V官方提供了兼容性測試代碼,可以測試每一條指令的運行結(jié)果,驗證開發(fā)者的核是否實現(xiàn)了RISC-V規(guī)范。

    目前基于RISC-V架構(gòu)的開源處理器有很多,既有標量處理器Rocket,也有超標量處理器BOOM,還有面向嵌入式領(lǐng)域的Z-scale、PicoRV32等。具體有哪些開源處理器項目可以參見:RISC-V架構(gòu)總結(jié)1,開源代碼在github上也有很多。

    可供學習的一個簡單RISC-V核是tinyrisc。該項目實現(xiàn)的是一個單核32位的小型RISC-V處理器核,采用verilog語言編寫


    總結(jié)

    RISCV由于其開源性,被大家廣泛使用,我們在需要特定的處理器時也可以采用RISCV架構(gòu)自行開發(fā)。同時RISCV具有低功耗的特點,適合嵌入式開發(fā)。

    總結(jié)

    以上是生活随笔為你收集整理的RISC-V基本介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产精品666 | 午夜剧场免费在线观看 | 黄色在线观看网址 | 狠狠干免费视频 | 插骚| 麻豆精品久久 | 一级黄大片 | 日本人和亚洲人zjzjhd | 亚洲视频在线观看一区二区 | 草草影院最新地址 | 午夜日韩| 91播放在线 | 久久激情网站 | 国产思思99re99在线观看 | 一线毛片 | 麻豆专区 | 久久久久久九九九九 | 午夜影视在线观看 | 日韩成人欧美 | 视频在线观看免费 | 国产视频一区二区三区在线观看 | 少女国产免费观看 | 黄色片子一级 | 精品美女久久 | 国产一区二区网站 | 99视频一区二区 | 揄拍成人国产精品视频 | 99久久精品无免国产免费 | 精品国产69 | 亚洲天堂毛片 | 欧美亚洲天堂 | 九草在线观看 | 亚洲爱情岛论坛永久 | 扩阴视频 | 欧美日韩a√ | 猛男被粗大男男1069 | www.欧美一区二区三区 | 爱情岛论坛亚洲品质自拍 | 色屁屁一区二区 | 中文字幕在线看人 | 小视频免费在线观看 | 星空无限mv国产剧入选 | 大尺度叫床戏做爰视频 | 在线免费观看国产精品 | 免费国产精品视频 | av看片网站 | 日韩在线第二页 | 嫩草视频国产 | 欧洲美女毛片 | 亚洲激情免费视频 | 国产一区麻豆 | 日韩性生活大片 | 成年女人毛片 | 色老汉av一区二区三区 | 久久精品无码一区二区三区免费 | 免费a网 | 成人丁香婷婷 | 国产精品色综合 | 国产精品视频久久久久 | av大帝在线观看 | 九九九九九精品 | 亚洲精品久久久久久久久久吃药 | 欧美人与zoxxxx另类 | 大波大乳videos巨大 | 黄色一级大片在线观看 | 欧美大波大乳巨大乳 | 神秘马戏团在线观看免费高清中文 | 欧美性做爰免费观看 | 亚洲美女屁股眼交8 | 亚洲视频色 | 久草视频免费在线 | 久久精品免费在线 | 欧美性猛交xxxx黑人交 | 国产日韩一区二区在线观看 | 欧洲性猛交 | 国产成人欧美一区二区三区的 | 91小视频在线 | 国产精品免 | 黄色一级一片免费播放 | 国内精品视频在线 | 欧洲一区在线 | 三级久久久 | 四虎影院永久地址 | 曰韩精品 | 在线看黄免费 | 美女视频黄频视频大全 | 日本美女全裸 | 欧美日韩五月天 | 无码人妻丰满熟妇啪啪 | 国产一区二区三区在线 | 午夜视频在线网站 | 图片区 小说区 区 亚洲五月 | 日本黄色一区 | 热99视频 | 在线免费观看国产精品 | 亚洲一区二区三区免费 | 国产精品毛片一区二区 | 欧美老女人性视频 | av中文字幕在线播放 |