99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

RISC-V特權架構和通用寄存器

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-10-08 14:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

RISC-V特權架構

ARM有7種工作模式,而RISC-V也有不同的模式,這些模式在RISC-V中也被稱為特權架構。

RISC-V總共有四種模式,分別是U、S、H和M模式:
圖片

U模式被編碼為00,S模式編碼為01,H模式編碼為10,M模式編碼為11。Level越高,等級越高。等級越高,擁有的訪問權限也更高。按照特權等級,由高到低依次為M、H、S、U。

上圖中編碼為10的模式是保留的,這個模式實際上就是H模式,H模式是用作虛擬化,但是目前RISC-V對虛擬化還不太完善,基本不支持。因此上圖并沒有將H模式標出來,而是作為保留。也正是因此,有人經(jīng)常將RISC-V的模式說成三種U、S和M。

  • U模式:User,用戶模式
  • S模式:Supervisor,監(jiān)管者模式
  • M模式:Machine,機器模式

以RISC-V Linux為例,Linux應用程序處于U模式,Linux內(nèi)核/uboot處于S模式,M模式則是OpenSBI。M模式擁有最高訪問權限,Linux內(nèi)核如果要訪問CSR寄存器,則必須由S模式切換到M模式,由OpenSBI讀取CSR寄存器,然后將數(shù)據(jù)返回給內(nèi)核。

M模式是必須要選擇的,RISC-V的裸機代碼都運行在M模式下。

RISC-V通用寄存器

寄存器ABI名稱說明
x0zero0值寄存器,硬編碼為0,寫入數(shù)據(jù)忽略,讀取數(shù)據(jù)為0
x1ra用于返回地址(return address)
x2sp用于棧指針(stack pointer)
x3gp用于通用指針(global pointer)
x4tp用于線程指針
x5t0用于存放臨時數(shù)據(jù)或者備用鏈接寄存器
x6~x7t1~t2用于存放臨時數(shù)據(jù)寄存器
x8s0/fp需要保存的寄存器或者幀指針寄存器
x9s1需要保存寄存器
x10~x11a0~a1函數(shù)參數(shù)或者返回值寄存器
x12~x17a2-a7函數(shù)傳遞參數(shù)寄存器
x18~x27s2-s11需要保存的寄存器
x28~x31t3~t6用于存放臨時數(shù)據(jù)寄存器

RISC-V有x0 x31共32個通用寄存器,每個通用寄存器都有各自的用途,例如x2是作為sp棧指針、a0~a1用來保存函數(shù)參數(shù)或返回值。x0寄存器被硬編碼為了0,就是個0值寄存器。

ABI名稱相當于這些通用寄存器的別名,在RISC-V匯編當中,都使用ABI名稱來代表這些寄存器。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5433

    瀏覽量

    124335
  • 內(nèi)核
    +關注

    關注

    3

    文章

    1416

    瀏覽量

    41395
  • Linux
    +關注

    關注

    87

    文章

    11508

    瀏覽量

    213646
  • RISC
    +關注

    關注

    6

    文章

    481

    瀏覽量

    84947
  • 架構
    +關注

    關注

    1

    文章

    528

    瀏覽量

    25968
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    正式的RISC-V基礎指令集架構特權架構規(guī)范來了,RISC-V基金會已正式批準

    根據(jù)RISC-V基金會官網(wǎng)發(fā)布的公告,RISC-V 基金會宣布了批準RISC-V 基礎指令集架構特權
    的頭像 發(fā)表于 07-11 10:46 ?1w次閱讀

    RISC-V 基礎學習:RISC-V 基礎介紹

    ,精簡指令架構的CPU,都會提供大量的寄存器。 RISC-V 的規(guī)范定義了32個通用寄存器以及一個PC
    發(fā)表于 03-12 10:25

    RISC-V工作模式及寄存器基本知識

    到M模式,由OpenSBI讀取CSR寄存器,然后將數(shù)據(jù)返回給內(nèi)核。 M模式是必須要選擇的,RISC-V的裸機代碼都運行在M模式下。 RISC-V通用
    發(fā)表于 04-12 14:06

    RISC-V架構及MRS開發(fā)環(huán)境回顧

    添加到基礎指令集 (RV32I)中。(2)規(guī)整的指令編碼 RISC-V的指令集編碼非常的規(guī)整,指令所需的通用 寄存器的索引(Index)都被放在固定的位。因此指令譯碼(Instruc
    發(fā)表于 12-16 23:08

    RISC-V 生態(tài)架構淺析

    優(yōu)勢和總結了多年來處理發(fā)展的教訓,RISC-V的指令集編碼非常的規(guī)整,指令所需的通用寄存器的索引(Index)都被放在固定的位置,如圖2所示。因此指令譯碼
    發(fā)表于 06-22 16:51

    簡單就是美——RISC-V架構的設計哲學

    寄存器RISC-V架構支持32位或者64位的架構,32位架構由RV32表示,其每個通用
    發(fā)表于 07-27 17:47

    科普RISC-V生態(tài)架構(認識RISC-V)

    優(yōu)勢和總結了多年來處理發(fā)展的教訓,RISC-V的指令集編碼非常的規(guī)整,指令所需的通用寄存器的索引(Index)都被放在固定的位置,如圖2所示。因此指令譯碼
    發(fā)表于 08-02 11:50

    ARM與RISC-V架構的區(qū)別是什么?

    邏輯、算術等運算,CPU只處理寄存器中的數(shù)據(jù)。同時由于這個原因,包括ARM在內(nèi)的很多RISC架構處理都有很多寄存器來存放指令及數(shù)據(jù)。為了方
    發(fā)表于 04-25 09:13

    玄鐵VirtualZone:基于RISC-V架構的安全擴展

    (PMP)RISC-V架構提供了一種PMP物理內(nèi)存保護機制,用于隔離M模式與S/U模式下的內(nèi)存訪問。只有M模式才有權限配置PMP。PMP包含幾組(通常是8到16個)地址寄存器以及相應的配置寄存
    發(fā)表于 09-01 14:38

    優(yōu)化的關鍵,RISC-V中的性能監(jiān)控

    看到,PMU擴展已經(jīng)成了該規(guī)范的一部分。接著是sscofpmf擴展,ss代表的是特權架構和管理員級的擴展,cofpmf代表的是溢出計數(shù)和特權模式篩選。該擴展新增了一個32位的scountovf只讀
    發(fā)表于 12-27 08:00

    適合新手的RISC-V入門基礎知識

    適用于不同的應用場景,可以降低 CPU 實現(xiàn)成本。 9.4 RISC-V 寄存器 指令的操作數(shù)來源于寄存器,精簡指令架構的CPU,都會提供大量的
    發(fā)表于 02-23 20:25

    【轉載】第1章 初識RISC-V

    位。如果支持浮點指令,則需額外支持32個浮點(Float Point)寄存器不同于ARM,RISC-V中PC指針不占用通過寄存器,而是獨立的,程序執(zhí)行中自動變化,無法通過通用
    發(fā)表于 03-28 16:57

    RISC-V架構

    的設計考慮了小型、快速、低功耗的現(xiàn)實情況來實做,但并沒有對特定的微架構做過度的設計。  截至2017年5月,RISC-V已經(jīng)確立了版本2.22的用戶空間的指令集(userspace ISA),而特權指令集
    發(fā)表于 04-03 15:29

    RISC-V 發(fā)展

    通用寄存器,每個通用寄存器都有各自的用途。例如x2是作為sp棧指針、a0-a1用來保存函數(shù)參數(shù)或返回值。x0寄存器被硬編碼為了0,就是個0值
    發(fā)表于 04-14 10:18

    RISC-V CSR寄存器介紹

    RISC-V CSR寄存器 CSR是控制狀態(tài)寄存器RISC-V中CSR寄存器,需要使用csrr、csrw、csrrw等特定指令進行訪問。
    的頭像 發(fā)表于 10-08 14:53 ?6827次閱讀
    <b class='flag-5'>RISC-V</b> CSR<b class='flag-5'>寄存器</b>介紹