精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

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模式標出來,而是作為保留。也正是因此,有人經常將RISC-V的模式說成三種U、S和M。

  • U模式:User,用戶模式
  • S模式:Supervisor,監管者模式
  • M模式:Machine,機器模式

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

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

RISC-V通用寄存器

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

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

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

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

    關注

    31

    文章

    5318

    瀏覽量

    120015
  • 內核
    +關注

    關注

    3

    文章

    1363

    瀏覽量

    40228
  • Linux
    +關注

    關注

    87

    文章

    11230

    瀏覽量

    208931
  • RISC
    +關注

    關注

    6

    文章

    461

    瀏覽量

    83655
  • 架構
    +關注

    關注

    1

    文章

    510

    瀏覽量

    25447
收藏 人收藏

    評論

    相關推薦

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

    根據RISC-V基金會官網發布的公告,RISC-V 基金會宣布了批準RISC-V 基礎指令集架構特權
    的頭像 發表于 07-11 10:46 ?9835次閱讀

    RISC-V開放架構設計之道|閱讀體驗】 RISC-V設計必備之案頭小冊

    。在書中,特別提到了匯編對于RISC-V中的作用,包括當講寄存器硬連線為0時,可以使用偽指令來簡化常規操作,如跳轉、返回和等于零時分支等。 浮點運算和壓縮指令數據集的知識則是放在下一次的帖子中說。
    發表于 01-22 16:24

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

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

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

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

    RISC-V 生態架構淺析

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

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

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

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

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

    ARM與RISC-V架構的區別是什么?

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

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

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

    優化的關鍵,RISC-V中的性能監控

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

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

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

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

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

    RISC-V架構

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

    RISC-V 發展

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

    RISC-V CSR寄存器介紹

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