RISC-V AIA SPEC學習(四)

第五章 Interrupts for Machine andSupervisor Levels

核心內容??

1.主要中斷類型與默認優先級:??

    • 定義了機器級別(M-level)和監管者級別(S-level)的標準中斷類型(如MEI、SEI、MTI等)。
    • 默認優先級規則:本地中斷(如軟件/定時器)優先級高于外部中斷,RAS事件(如低/高優先級錯誤)具有可配置優先級。

2.機器級別中斷處理:??

    • ??mtopi CSR??:報告當前最高優先級的中斷(包含身份和優先級),用于中斷處理流程。
    • 優先級配置:通過間接寄存器(miselect/mireg)設置每個主要中斷的優先級(0x30-0x3F范圍)。

3.監管者級別中斷過濾與虛擬中斷:??

    • ??mvien/mvip CSR??:過濾S-level中斷,允許機器模式注入虛擬中斷到監管者模式。
    • 例如,當mvien的某位設為1時,對應虛擬中斷將出現在S-level的sip寄存器中。

4.WFI指令行為:??

    • WFI在存在待處理且啟用的中斷時喚醒,優先級由中斷控制器決定,支持嵌套中斷。

概述

RISC-V特權架構為硬件線程(hart)上的中斷定義了0 - 15范圍內若干主要標識,包括機器級和監管級外部中斷(編號分別為11和9)、機器級和監管級定時器中斷(編號分別為7和5)以及機器級和監管級軟件中斷(編號分別為3和1)。除了這些主要標識外,每個特權級別的外部中斷還會由外部中斷控制器(如高級平臺級中斷控制器(APLIC)或入站消息支持中斷控制器(IMSIC))賦予次要、次級標識,以區分來自不同設備或原因的中斷。

高級中斷架構為hart內部或緊鄰hart處產生的額外本地中斷預留了另外24個主要中斷標識,這些中斷通常用于上報錯誤。該架構還定義了一種機制,允許軟件有選擇地將本地中斷和自定義中斷下放(delegate)到下一個較低的特權級別,在某些情況下,還能向較低特權級別注入完全虛擬的中斷。

最后,有一項可選功能允許軟件為主要中斷(如定時器中斷、軟件中斷以及任何本地中斷)分配優先級,使其能夠與平臺級中斷控制器(PLIC)、APLIC或IMSIC為外部中斷設定的優先級混合使用。

5.1. Defined major interrupts and default priorities

表8列出了當前為符合此高級中斷架構(AIA)的RISC-V硬件線程(hart)定義的所有主要中斷。除RISC-V特權架構所規定的主要中斷外,AIA還添加了中斷編號35和43,分別作為低優先級和高優先級的RAS(可靠性、可用性和可服務性)事件的本地中斷。

表8. 按默認優先級順序排列的標準主要中斷代碼

默認優先級順序

主要中斷編號

描述

最高

43

本地中斷:高優先級RAS事件

11, 3, 7

機器中斷:外部、軟件、定時器

9, 1, 5

監管級中斷:外部、軟件、定時器

12

監管級客戶外部中斷

10, 2, 6

VS中斷:外部、軟件、定時器

13

本地中斷:計數器溢出

最低

35

本地中斷:低優先級RAS事件

表9. 當前及未來主要中斷的分類

主要中斷編號

類別

0-12

非本地中斷(由特權架構分配)

13-15

本地中斷

16-23

本地中斷(預留供未來標準本地中斷使用)

24-31

自定義用途的本地中斷

32-47

本地中斷(預留供未來標準本地中斷使用)

≥48

自定義用途的本地中斷

在特權架構(編號0-15)控制的主要中斷中,AIA將計數器溢出中斷(代碼13)歸類為本地中斷。此外,還假定未來對預留中斷編號14和15的任何定義也將是本地中斷。除兩個RAS中斷外,AIA還額外為其他RISC-V擴展可能定義的標準本地中斷預留了16-23和32-47范圍內的主要中斷編號。分配給特權架構的其余主要中斷(編號0-12)則歸類為非本地中斷。總體而言,表9總結了AIA對所有主要中斷標識的分類。

RAS是可靠性、可用性和可服務性的縮寫。通常,RAS事件對應于檢測到損壞的數據(例如,由于軟錯誤或硬錯誤導致)和/或此類數據的使用。例如,高優先級RAS事件本地中斷可能表示發生了需要RAS錯誤處理程序采取行動以遏制錯誤并在可能的情況下恢復的緊急未糾正錯誤。低優先級RAS事件本地中斷可能由非緊急的延遲或已糾正錯誤觸發。

AIA本身并不要求檢測到的RAS事件觸發為此目的定義的兩個本地中斷之一。系統可以自由地通過其他方式報告任何或所有RAS事件,例如通過由APLIC或IMSIC路由的外部中斷,或通過自定義中斷。

特定RAS事件的報告方法很可能取決于在系統何處檢測到該事件。AIA為RAS事件定義了本地中斷編號,以便系統在hart本地檢測到此類事件時,有一種標準方式來報告這些事件,而不完全依賴外部或自定義中斷。

與往常一樣,平臺標準可能會進一步限制系統報告事件(無論是RAS事件還是其他事件)的方式。

對于RISC-V特權架構未定義的標準本地中斷(編號16-23和32-47),目前的計劃是按照表中所列順序分配默認優先級:

默認優先級順序

主要中斷編號

描述

最高

47, 23, 46, 45, 22, 44, 43, 21, 42, 41, 20, 40

11, 3, 7

機器中斷:外部、軟件、定時器

9, 1, 5

監管級中斷:外部、軟件、定時器

12

監管級客戶外部中斷

10, 2, 6

VS中斷:外部、軟件、定時器

13

本地中斷:計數器溢出

39, 19, 38, 37, 18, 36, 35, 17, 34, 33, 16, 32

最低

在16-23范圍內的中斷中,較高的中斷編號表示較高的默認優先級,32-47范圍內的中斷亦如此。這兩組中斷在整個順序中相互交錯,特權架構的標準中斷(0-15)則插入到序列中間。此建議的默認優先級順序安排,使得中斷0-31有可能成為32位RISC-V系統自身足夠使用的子集。

實際上,未來的RISC-V擴展可能會也可能不會遵循為其定義的中斷的默認優先級順序的這一計劃。

除表8中已有的主要中斷外,還暫定提出了以下本地中斷,按默認優先級從高到低排列:

  • 23:總線或系統錯誤
  • 45:每核心高功耗

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/81321.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/81321.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/81321.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

WSGI(Web Server Gateway Interface)服務器

0、什么是 WSGI WSGI (Web Server Gateway Interface) 是一種Python規范,它定義了 Web 服務器 和 Python Web 應用程序之間的通信接口。 即,能夠讓各種 Web 服務器(如 Nginx、Apache 等)和 Python Web 框架…

博客打卡-人類基因序列功能問題動態規劃

題目如下: 眾所周知,人類基因可以被認為是由4個核苷酸組成的序列,它們簡單的由四個字母A、C、G和T表示。生物學家一直對識別人類基因和確定其功能感興趣,因為這些可以用于診斷人類疾病和設計新藥物。 生物學家確定新基因序列功能…

基本功能學習

一.enum枚舉使用 E_SENSOR_REQ_NONE 的定義及用途 在傳感器驅動開發或者電源管理模塊中,E_SENSOR_REQ_NONE通常被用來表示一種特殊的狀態或請求模式。這種狀態可能用于指示當前沒有活動的傳感器請求,或者是默認初始化狀態下的一種占位符。 可能的定義…

vitest | 測試框架vitest | 總結筆記

目錄 測試框架 vitest 介紹 測試文件的寫法 文件取名:文件名中要有 test,即 xxx.test.ts 引入庫: test 測試: 測試運行: npx test 文件名 ,每次保存后會重新運行。 ★ expect 方法: v…

ESP32開發-作為TCP客戶端發送數據到網絡調試助手

??代碼&#xff08;作為TCP客戶端&#xff09;?? #include <SPI.h> #include <EthernetENC.h> // 使用EthernetENC庫// 網絡配置 byte mac[] {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // MAC地址 IPAddress ip(192, 168, 1, 100); // ESP32的IP IPAddr…

HTML5 WebSocket:實現高效實時通訊

一、引言 在當今的 Web 開發領域,實時通訊功能變得越來越重要。例如在線聊天、實時數據更新等場景都需要客戶端與服務器之間能夠進行高效的雙向數據傳輸。HTML5 引入的 WebSocket 協議為我們提供了一種強大的解決方案,它在單個 TCP 連接上實現了全雙工通訊,極大地改善了傳統…

速通Ollama本地部署DeepSeek-r1

下載 Ollama 前往 Ollama官網 下載客戶端&#xff0c;下載完成后點擊Install安裝即可。 完成后會自動安裝在C:盤的AppData文件夾下&#xff0c;命令行輸入ollama后&#xff0c;顯示下圖中的信息表明安裝成功。 下載模型 在官網界面點擊 DeepSeek-R1 超鏈接 跳轉到DeepSeek安裝…

總結C++中的STL

1.STL 概述 STL 即標準模板庫&#xff0c;是 C 標準程序庫的重要組成部分&#xff0c;包含常用數據結構和算法&#xff0c;體現了泛型化程序設計思想&#xff0c;基于模板實現&#xff0c;提高了代碼的可復用性 2.容器 2.1 序列容器&#xff1a; 1. vector 特性&#xff…

自動駕駛-一位從業兩年的獨特視角

時間簡介 2023.03 作為一名大三學生&#xff0c;加入到某量產車企&#xff0c;從事地圖匹配研發 2023.07 地圖匹配項目交付&#xff0c;參與離線云端建圖研發 2023.10 拿到24屆校招offer 2024.07 正式入職 2025.01 離線云端建圖穩定&#xff0c;開始接觸在線車端融圖研發 自動…

《軟件設計師》復習筆記(11.1)——生命周期、CMM、開發模型

目錄 一、信息系統生命周期 系統規劃階段 系統分析階段&#xff08;邏輯設計&#xff09; 系統設計階段&#xff08;物理設計&#xff09; 系統實施階段 系統運行與維護階段 二、能力成熟度模型&#xff08;CMM/CMMI&#xff09; CMM 五級模型 CMMI 兩種表示方法 真題…

1.67g 雨晨 22635.5305 Windows 11 企業版 23H2 極速增強版

五一特別制作 &#xff08;主要更新簡述&#xff09; 全程由最新YCDISM2025裝載制作 1、可選功能&#xff1a; 添加&#xff1a; Microsoft-Windows-LanguageFeatures-Basic-en-us-Package Microsoft-Windows-LanguageFeatures-OCR-en-us-Package 2、功能增強&a…

爬蟲逆向思維

爬蟲逆向思維是指從目標網站的反爬機制入手&#xff0c;通過分析其防護邏輯來突破限制&#xff0c;獲取數據的思路。以下是核心要點&#xff1a; 核心方向 - 分析反爬手段&#xff1a;如請求頭校驗、IP封禁、驗證碼、動態數據加密等。 - 模擬真實行為&#xff1a;偽造瀏覽器指…

手撕哈希表

引入&#xff1a;unordered_set /map是什么&#xff1f; 庫里面除開set和map&#xff0c;還有unordered_set 和 unordered_map&#xff0c;區別在于&#xff1a; ①&#xff1a;set和map的底層結構是紅黑樹&#xff0c;而unordered_set和unordered_map的底層是哈希表 ②&…

基于Docker的內網穿透實戰:frp 0.68 + Nginx最佳實踐

在實際應用中&#xff0c;我們常常遇到這樣的需求&#xff1a; 家里的NAS服務器、開發環境、測試服務&#xff0c;需要暴露到公網訪問 企業內部系統&#xff0c;僅允許在特定域名或端口暴露&#xff0c;但沒有公網IP 多個內網應用&#xff0c;希望通過一個統一的外網入口訪問…

完美中國制度流程體系建設(70頁PPT)(文末有下載方式)

資料解讀&#xff1a;《完美中國制度流程體系建設》 詳細資料請看本解讀文章的最后內容。 該文檔圍繞完美中國制度流程體系建設展開&#xff0c;從風險管理流程等前期工作切入&#xff0c;全面剖析企業制度流程體系框架&#xff0c;結合案例指出常見問題&#xff0c;評估完美公…

計算機組成原理實驗(5) 堆棧寄存器實驗

實驗五 堆棧寄存器實驗 一、實驗目的 1、熟悉堆棧概念 2、熟悉堆棧寄存器的組成和硬件電路 二、實驗要求 按照實驗步驟完成實驗項目&#xff0c;對4個堆棧寄存器進行讀出、寫入數據操作。 三、實驗說明 3.1 堆棧寄存器組實驗構成&#xff08;圖3-1&#xff09; 本系統…

RAGFlow報錯:ESConnection.sql got exception

環境&#xff1a; Ragflowv0.17.2 問題描述&#xff1a; RAGFlow報錯&#xff1a;ESConnection.sql got exception _ming_cheng_tks, 浙江, operatorOR;minimum_should_match30%) 2025-04-25 15:55:06,862 INFO 244867 POST http://localhost:1200/_sql?formatjson […

鼠標滾動字體縮放

在VsCode中編輯文件時&#xff0c;有時候發現Ctrl鼠標滾輪并不能縮放字體&#xff0c;下面是啟用這個功能的方法。 第一步&#xff1a; 進入設置&#xff0c;可以從左下角按鈕菜單進入&#xff0c;也可以使用【Ctrl,】。 第二步&#xff1a; 啟用鼠標滾輪縮放功能 第三步&…

深度學習·經典模型·VisionTransformer

VIT embedding處理與標準的Transformer不同&#xff0c;其他基本一致 E&#xff4d;bedding Graph: ( H , W , C ) (H,W,C) (H,W,C) Patch: ( N , P 2 C ) (N,P^2C) (N,P2C),其中 N H ? W P 2 N\frac{H*W}{P^2} NP2H?W?, P P P是patch的大小 注意的是,論文了保留與Bert的…

Python Selenium 完全指南:從入門到精通

Python Selenium 完全指南&#xff1a;從入門到精通 &#x1f4da; 目錄 環境準備與基礎入門元素定位與交互操作等待機制與異常處理面向對象封裝與框架設計進階技巧與最佳實踐性能優化與調試技巧實戰案例分析 環境準備與基礎入門 1. 安裝 Selenium 與瀏覽器驅動 安裝 Selen…