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.mzph.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…