中斷
U54內(nèi)核支持M模式和S模式中斷。默認(rèn)情況下,所有中斷都在M模式下處理。對(duì)于支持S模式的 hart,可以有選擇地將中斷委托給S模式。
U54中斷架構(gòu)如下:
U54內(nèi)核還支持兩種類型的 RISC-V 中斷:本地和全局。
本地中斷:U54內(nèi)核的本地中斷只有2種,軟件中斷和定時(shí)器中斷,這兩個(gè)中斷都由本地中斷器(CLINT)生成。本地中斷通過專用中斷異常代碼和固定優(yōu)先級(jí)直接發(fā)送給單個(gè)hart。因此,本地中斷沒有仲裁,也不需要額外的內(nèi)存訪問來確定中斷的原因。
全局中斷:通過平臺(tái)級(jí)中斷控制器 (PLIC) 路由,該控制器可以通過外部中斷將中斷定向到系統(tǒng)中的任何 hart。所有的外設(shè)都屬于全局中斷。
中斷優(yōu)先級(jí)
全局中斷的各個(gè)優(yōu)先級(jí)由 PLIC 確定。
U54內(nèi)核的優(yōu)先級(jí)如下,按優(yōu)先級(jí)降序排列:
機(jī)器外部中斷
機(jī)器軟件中斷
機(jī)器定時(shí)器中斷
主管外部中斷
主管軟件中斷
主管定時(shí)器中斷
異常
如果一個(gè) hart 在S模式下運(yùn)行并嘗試訪問一個(gè)僅M模式的控制和狀態(tài)寄存器 (CSR),這會(huì)立即進(jìn)入異常處理程序并確定下一步行動(dòng)。mstatus寄存器中的異常代碼將保持值 0x2,表明發(fā)生了非法指令異常。根據(jù)系統(tǒng)的要求,監(jiān)督模式應(yīng)用程序可能會(huì)報(bào)告錯(cuò)誤和/或完全終止程序。
沒有特定的啟用位來允許發(fā)生異常,因?yàn)槟J(rèn)情況下它們總是啟用的。然而,在引導(dǎo)流程的早期,軟件應(yīng)該將 mtvec.BASE設(shè)置為一個(gè)定義的值,其中包含默認(rèn)異常處理程序的基地址。所有異常都會(huì)捕獲 tomtvec.BASE。軟件必須讀取 mcause CSR以確定異常的來源,并采取適當(dāng)?shù)拇胧?/p>
在中斷處理程序中發(fā)生的同步異常將立即導(dǎo)致程序執(zhí)行中止中斷處理程序并進(jìn)入異常處理程序。中斷處理程序中的異常通常是軟件錯(cuò)誤的結(jié)果,通常應(yīng)該避免,因?yàn)閙epc 和 mcause CSR 將被原始中斷上下文中捕獲的值覆蓋。
RISC-V 定義的同步異常具有優(yōu)先級(jí)順序,當(dāng)單個(gè)指令同時(shí)發(fā)生多個(gè)異常時(shí),可能需要考慮優(yōu)先級(jí)順序。下表描述了同步異常優(yōu)先級(jí)順序。
數(shù)據(jù)地址斷點(diǎn)(watchpoints)、指令地址斷點(diǎn)、環(huán)境斷點(diǎn)異常(EBREAK)都具有相同的異常碼(3),但優(yōu)先級(jí)不同,如上表所示。
指令地址未對(duì)齊異常 (0x0) 的優(yōu)先級(jí)低于其他指令地址異常,因?yàn)樗鼈兪悄繕?biāo)未對(duì)齊的控制流指令的結(jié)果,而不是取指的結(jié)果。
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1416瀏覽量
41447 -
RISC
+關(guān)注
關(guān)注
6文章
482瀏覽量
85008 -
架構(gòu)
+關(guān)注
關(guān)注
1文章
528瀏覽量
25995 -
sifive
+關(guān)注
關(guān)注
0文章
37瀏覽量
9609
發(fā)布評(píng)論請(qǐng)先 登錄
三星將SiFive RISC-V內(nèi)核用于SoC,汽車,5G應(yīng)用
SiFive發(fā)布P870和X390,RISC-V架構(gòu)內(nèi)核性能暴漲
全球首款基于 RISC-V “HiFive Unleashed” 單板計(jì)算機(jī)(SBC)
可擴(kuò)展的高性能RISC-V 內(nèi)核IP
帶有SiFive開發(fā)板和高性能CPU的RISC-V邁向主流
RISC-V是什么?有哪些優(yōu)勢(shì)
SiFive及晶心科技共同推展RISC-V_擴(kuò)大RISC-V市占率
Sifive Learn Inventor基礎(chǔ)之GPIO 按鍵中斷 RISC-V

RISC-V掀開源風(fēng)暴SiFive王者再臨

U54內(nèi)核PLIC中斷處理例子

U54內(nèi)核上CLINT的內(nèi)存映射

U54內(nèi)核中斷控制和狀態(tài)寄存器

U54內(nèi)核特權(quán)模式中斷介紹

RISC-V發(fā)展及FPGA廠商為什么選擇RISC-V

評(píng)論