RISC-V特權(quán)架構(gòu)
ARM有7種工作模式,而RISC-V也有不同的模式,這些模式在RISC-V中也被稱為特權(quán)架構(gòu)。
RISC-V總共有四種模式,分別是U、S、H和M模式:
U模式被編碼為00,S模式編碼為01,H模式編碼為10,M模式編碼為11。Level越高,等級(jí)越高。等級(jí)越高,擁有的訪問(wèn)權(quán)限也更高。按照特權(quán)等級(jí),由高到低依次為M、H、S、U。
上圖中編碼為10的模式是保留的,這個(gè)模式實(shí)際上就是H模式,H模式是用作虛擬化,但是目前RISC-V對(duì)虛擬化還不太完善,基本不支持。因此上圖并沒(méi)有將H模式標(biāo)出來(lái),而是作為保留。也正是因此,有人經(jīng)常將RISC-V的模式說(shuō)成三種U、S和M。
- U模式:User,用戶模式
- S模式:Supervisor,監(jiān)管者模式
- M模式:Machine,機(jī)器模式
以RISC-V Linux為例,Linux應(yīng)用程序處于U模式,Linux內(nèi)核/uboot處于S模式,M模式則是OpenSBI。M模式擁有最高訪問(wèn)權(quán)限,Linux內(nèi)核如果要訪問(wèn)CSR寄存器,則必須由S模式切換到M模式,由OpenSBI讀取CSR寄存器,然后將數(shù)據(jù)返回給內(nèi)核。
M模式是必須要選擇的,RISC-V的裸機(jī)代碼都運(yùn)行在M模式下。
RISC-V通用寄存器
寄存器 | ABI名稱 | 說(shuō)明 |
---|---|---|
x0 | zero | 0值寄存器,硬編碼為0,寫(xiě)入數(shù)據(jù)忽略,讀取數(shù)據(jù)為0 |
x1 | ra | 用于返回地址(return address) |
x2 | sp | 用于棧指針(stack pointer) |
x3 | gp | 用于通用指針(global pointer) |
x4 | tp | 用于線程指針 |
x5 | t0 | 用于存放臨時(shí)數(shù)據(jù)或者備用鏈接寄存器 |
x6~x7 | t1~t2 | 用于存放臨時(shí)數(shù)據(jù)寄存器 |
x8 | s0/fp | 需要保存的寄存器或者幀指針寄存器 |
x9 | s1 | 需要保存寄存器 |
x10~x11 | a0~a1 | 函數(shù)參數(shù)或者返回值寄存器 |
x12~x17 | a2-a7 | 函數(shù)傳遞參數(shù)寄存器 |
x18~x27 | s2-s11 | 需要保存的寄存器 |
x28~x31 | t3~t6 | 用于存放臨時(shí)數(shù)據(jù)寄存器 |
RISC-V有x0 x31共32個(gè)通用寄存器,每個(gè)通用寄存器都有各自的用途,例如x2是作為sp棧指針、a0~a1用來(lái)保存函數(shù)參數(shù)或返回值。x0寄存器被硬編碼為了0,就是個(gè)0值寄存器。
ABI名稱相當(dāng)于這些通用寄存器的別名,在RISC-V匯編當(dāng)中,都使用ABI名稱來(lái)代表這些寄存器。
-
寄存器
+關(guān)注
關(guān)注
31文章
5430瀏覽量
123917 -
內(nèi)核
+關(guān)注
關(guān)注
3文章
1414瀏覽量
41239 -
Linux
+關(guān)注
關(guān)注
87文章
11496瀏覽量
213225 -
RISC
+關(guān)注
關(guān)注
6文章
480瀏覽量
84829 -
架構(gòu)
+關(guān)注
關(guān)注
1文章
528瀏覽量
25919
發(fā)布評(píng)論請(qǐng)先 登錄
正式的RISC-V基礎(chǔ)指令集架構(gòu)與特權(quán)架構(gòu)規(guī)范來(lái)了,RISC-V基金會(huì)已正式批準(zhǔn)
RISC-V 基礎(chǔ)學(xué)習(xí):RISC-V 基礎(chǔ)介紹
RISC-V工作模式及寄存器基本知識(shí)
RISC-V架構(gòu)及MRS開(kāi)發(fā)環(huán)境回顧
RISC-V 生態(tài)架構(gòu)淺析
簡(jiǎn)單就是美——RISC-V架構(gòu)的設(shè)計(jì)哲學(xué)
科普RISC-V生態(tài)架構(gòu)(認(rèn)識(shí)RISC-V)
ARM與RISC-V架構(gòu)的區(qū)別是什么?
玄鐵VirtualZone:基于RISC-V架構(gòu)的安全擴(kuò)展
優(yōu)化的關(guān)鍵,RISC-V中的性能監(jiān)控
適合新手的RISC-V入門基礎(chǔ)知識(shí)
【轉(zhuǎn)載】第1章 初識(shí)RISC-V
RISC-V架構(gòu)
RISC-V 發(fā)展
RISC-V CSR寄存器介紹

評(píng)論