最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

一文解析RISC-V SiFive U54內(nèi)核——中斷和異常

2023-03-29 16:12 作者:補(bǔ)給站Linux內(nèi)核  | 我要投稿

上篇一文解析RISC-V SiFive U54內(nèi)核——中斷和異常??說到,SiFive U54內(nèi)核有兩個中斷控制器:CLINT和PLIC。CLINT用于本地中斷(軟件中斷和定時器中斷),PLIC用于全局中斷。

下面對CLINT進(jìn)行詳細(xì)說明。

內(nèi)核本地中斷(CLINT)

下圖為CLINT示意圖,CLINT通過固定的中斷號和優(yōu)先級,可將軟件中斷或定時器中斷直接發(fā)送給指定的hart,該過程沒有仲裁。

CLINT 占地面積小,可直接向 hart 提供軟件、定時器和外部中斷。CLINT 塊還保存與軟件和定時器中斷相關(guān)的內(nèi)存映射控制和狀態(tài)寄存器。

CLINT 優(yōu)先級和搶占

CLINT?具有固定的優(yōu)先級方案,但不支持給定特權(quán)級別內(nèi)的嵌套中斷(搶占)。然而,較高的特權(quán)級別可能會搶占較低的特權(quán)級別。CLINT?提供兩種操作模式,直接模式向量模式。

直接模式下,所有中斷和異常都會捕獲到?mtvec.BASE。

向量模式下,異常trap到?mtvec.BASE,但中斷將直接跳轉(zhuǎn)到它們的向量表索引。

CLINT向量表

CLINT向量表如下:

CLINT 向量表填充有跳轉(zhuǎn)指令,因?yàn)橛布紫忍D(zhuǎn)到向量表中的索引,然后再跳轉(zhuǎn)到處理程序。所有異常類型都trap到表中的第一個條目是?mtvec.BASE。

下面是CLINT 向量表的示例:

【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【749907784】整理了一些個人覺得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦!?。。ê曨l教程、電子書、實(shí)戰(zhàn)項(xiàng)目及代碼)? ? ?


CLINT 中斷源

下圖是CLINT 中斷 ID:

CLINT中斷屬性

為了幫助提高保存和恢復(fù)上下文的效率,可以將中斷屬性應(yīng)用于用于中斷處理的函數(shù)。

此屬性將保存和恢復(fù)處理程序中使用的寄存器,并在處理程序的末尾插入一條?mret?指令。

CLINT內(nèi)存映射

下圖是U54 內(nèi)核上 CLINT 的內(nèi)存映射:

注意,在 CLINT 內(nèi)存映射中沒有用于特定中斷的啟用位,因?yàn)檫@些中斷的啟用位于每個中斷的?mie CSR?和?mstatus.mie?CSR 位中,它全局啟用所有機(jī)器中斷.

相關(guān)寄存器

MSIP Registers

機(jī)器模式軟件中斷是通過寫入內(nèi)存映射控制寄存器?msip?來生成的。

msip?寄存器是一個 32 位寬的 WARL 寄存器,其中高 31 位綁定為 0。最低有效位反映在 mip CSR 的?MSIP?位中。msip?寄存器中的其他位被硬連線為零。復(fù)位時,每個?msip?寄存器都清零。

軟件中斷對于多 hart 系統(tǒng)中的處理器間通信最有用,因?yàn)?harts 可能會寫入彼此的 msip 位以影響處理器間中斷。

軟件中斷其實(shí)更多的用于多核之間,也就是所謂的核間通信。

Timer Registers

與timer有關(guān)的寄存器主要是兩個:mtimemtimecmp

mtime?是一個 64 位讀寫寄存器,包含從?rtc_toggle?信號計數(shù)的周期數(shù)。

只要?mtime?大于或等于?mtimecmp?寄存器中的值,定時器中斷就會掛起。定時器中斷反映在 mip 寄存器的 mtip 位中。

復(fù)位時,mtime?清零。mtimecmp?不會重置。

特權(quán)模式委托

默認(rèn)情況下,所有中斷都會陷入機(jī)器模式,包括定時器和軟件中斷。

為了讓定時器和軟件中斷直接進(jìn)入管理員模式,定時器中斷和軟件中斷必須首先委托給管理員模式

原文作者:嵌入式Linux充電站



一文解析RISC-V SiFive U54內(nèi)核——中斷和異常的評論 (共 條)

分享到微博請遵守國家法律
洮南市| 呼玛县| 吉木萨尔县| 沧州市| 湘阴县| 松阳县| 丹东市| 元氏县| 汕头市| 凤凰县| 沂南县| 青冈县| 喜德县| 曲松县| 漳州市| 常宁市| 昭平县| 武邑县| 石台县| 彩票| 古浪县| 罗江县| 石首市| 辽阳市| 察哈| 龙游县| 西充县| 通化县| 澄城县| 分宜县| 娱乐| 伽师县| 浮梁县| 永靖县| 庆安县| 抚顺市| 连城县| 新安县| 安西县| 拉孜县| 时尚|