不可屏蔽中斷
rnmi(可恢復(fù)不可屏蔽中斷)中斷信號(hào)是 hart 的電平敏感輸入。不可屏蔽中斷比 hart上的任何其他中斷或異常具有更高的優(yōu)先級(jí),并且不能被軟件禁用。具體來(lái)說(shuō),它們不會(huì)通過(guò)清除mstatus.mie 寄存器來(lái)禁用。
Handler Addresses
NMI 有一個(gè)關(guān)聯(lián)的異常陷阱處理程序地址。該地址由外部輸入信號(hào)設(shè)置。
RNMI CSRs
這些 M 模式 CSR 啟用可恢復(fù)非屏蔽中斷 (RNMI)。
mnscratch CSR 擁有一個(gè) 64 位讀寫(xiě)寄存器,它使 NMI 陷阱處理程序能夠保存和恢復(fù)被中斷的上下文。
mnepc CSR 是一個(gè) 64 位讀寫(xiě)寄存器,在進(jìn)入 NMI 陷阱處理程序時(shí),它保存接受中斷的指令的 PC。mnepc 的最低位硬連線為零。
mncause CSR 包含 NMI 的原因,第 63 位設(shè)置為 1,并且 NMI 原因編碼在最低有效位中,如果不支持 NMI原因,則為零。mncause 的低位,定義為 exception_code,如下:
mnstatus CSR 包含一個(gè)兩位字段,在進(jìn)入陷阱處理程序時(shí),它包含以與 mstatus.mpp 相同的方式編碼的中斷上下文的特權(quán)模式
MNRET Instruction
此僅 M 模式指令使用 mnepc 和 mnstatus 中的值分別返回中斷上下文的程序計(jì)數(shù)器和特權(quán)模式。該指令還設(shè)置內(nèi)部 rnmie狀態(tài)位。
編碼與 MRET 相同,除了第 30 位設(shè)置(即 funct7=0111000)。例如:
.word 0x70200073 // opcode for MNRET (return from RNMI)
RNMI Operation
當(dāng)檢測(cè)到RNMI中斷時(shí),將中斷的PC寫(xiě)入mnepc CSR,RNMI的類(lèi)型寫(xiě)入mncause CSR,中斷上下文的特權(quán)模式寫(xiě)入mnstatusCSR。內(nèi)部微體系結(jié)構(gòu)狀態(tài)位 rnmie 被清除以指示處理器處于 RNMI 處理程序中并且不能接受新的 RNMI 中斷。清除時(shí),內(nèi)部 rnmie位還會(huì)禁用所有其他中斷。
這些中斷被稱(chēng)為不可屏蔽的,因?yàn)檐浖o(wú)法屏蔽中斷。但是,為了正確操作,必須推遲同一中斷的其他實(shí)例,直到處理程序完成,因此內(nèi)部狀態(tài)位
RNMI 處理程序可以使用 MNRET 指令(在第 7.11.3 節(jié)中描述)恢復(fù)原始執(zhí)行,該指令從 mnepc 恢復(fù) PC,從 mnstatus恢復(fù)特權(quán)模式,并設(shè)置內(nèi)部 rnmie 狀態(tài)位,重新啟用其他中斷。
如果hart在rnmie位清零時(shí)遇到異常,則將異常狀態(tài)寫(xiě)入mepc和mcause,mstatus.mpp設(shè)置為M-mode,hart跳轉(zhuǎn)到RNMI異常處理程序地址。
RNMI 處理程序中的陷阱只有在處理程序正在服務(wù)發(fā)生在機(jī)器模式之外的中斷時(shí)發(fā)生時(shí)才能恢復(fù)。
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1416瀏覽量
41407 -
RISC
+關(guān)注
關(guān)注
6文章
481瀏覽量
84962 -
sifive
+關(guān)注
關(guān)注
0文章
37瀏覽量
9604
發(fā)布評(píng)論請(qǐng)先 登錄
Linux內(nèi)核中斷屏蔽的實(shí)現(xiàn)
stm32上的中斷掛起和屏蔽與ARM內(nèi)核中的掛起屏蔽是相同的嗎?
轉(zhuǎn):IAR編譯環(huán)境禁用NMI(不可屏蔽中斷)
Arm A-profile架構(gòu)對(duì)不可屏蔽中斷 (NMI) 的支持
ARM7內(nèi)核的中斷屏蔽方法

怎么設(shè)置中斷屏蔽字

深入了解ARMv9對(duì)不可屏蔽中斷的支持

PLIC平臺(tái)級(jí)中斷控制器介紹

LIC內(nèi)核中斷掛起位和中斷使能

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

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

RISC-V SiFive U54內(nèi)核的中斷介紹

U54內(nèi)核中斷進(jìn)入和退出

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

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

評(píng)論