AIA - IMSIC之二(附IMSIC处理流程图)

news2025/2/8 21:37:57

本文属于《 RISC-V指令集基础系列教程》之一,欢迎查看其它文章。

1 ​​​​​​​通过IMSIC接收外部中断的CSR

软件通过《AIA - 新增的CSR》描述的CSR来访问IMSIC。

  • machine level 的 CSR 与 IMSIC 的 machine level interrupt file 可相互互动;
  • 而 supervisor level 的 CSR 也能与 IMSIC 的 supervisor level interrupt file 可相互互动;
  • 同样地当 IMSIC 有 guest interrupt file,VS CSR 可与 guest interrupt file 相互互动。

machine level 相关的CSR有以下:miselect、mireg、mtopei。
supervisor level 相关的 CSR 有以下:siselect、sireg、stopei。
当 hypervisor extension 实现时,与 VS CSR 相关的有以下:vsiselect、vsireg、vstopei。

miselect 和 mireg通过间接的方式,访问machine level的附带寄存器。
同样的,supervispr level的siselect 和 sireg,以及 VS level 的 vsiselect 和 vsireg,也可以间接访问各自 level 的附带寄存器。
需要注意的是:

这些附带寄存器既不是CSR,也不是memory-mapped的寄存器,它们在interrupt file中。

不同level的interrupt file的寄存器组相同,*iselect表示这些寄存器的地址,它的范围在 0x70~0xFF ,会选择相对应在 IMSIC 中 interrupt file的寄存器,interrupt file结构如下:
在这里插入图片描述

寄存器0x71 和 0x73~0x7F 目前被保留。
当 *iselect CSR 具有这些值之一(0x71和0x73~0x7f)时:

  • 从匹配的 *ireg CSR读取,会返回0;
  • 并且会忽略向 *ireg CSR 的写入行为。

eip0 到 eip63 对应所有实现 interrupt ID 的 pending bit,统称之为 eip array;
同样的 eie0 到 eie63 所对应 enabled bit 统称之为 eie array。
每个寄存器32bit,eip0/eie0的bit0无效,因此interrupt ID的有效范围为1-2047,对应这些寄存器组的bit位置。

1.1 interrupt file交互示意图

根据前面章节描述,我们可以得到machine level的CSR 与 IMSIC 的 machine level interrupt file交互,其结构如下所示:
在这里插入图片描述

  • seteipnum_le与seteipnum_be位于内存映射空间中,基址为4KB对齐,这2个寄存器在映射空间中的偏移为0x000和0x004。
  • 向seteipnum_le或seteipnum_be写入Interrupt ID,可将Interrupt ID对应的eip array中某bit置位。
  • 向miselect中写入0x70~0xff任一地址,然后读写mireg,可实现对Interrupt File内部实际寄存器的访问。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2266937.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python爬虫实战(保姆级登网页信息爬取教程)

此blog为爬虫实战教学,代码已附上,可以复制运行。若要直接看实战代码翻到博客后半部分。 本文使用selenium库进行爬虫,实现爬取数据操作,此库是通过模仿用户的操作进行对页面的处理。了解了这个思维模式,可以对代码进…

国产三维CAD正强势崛起

CAD软件作为现代工业设计和制造领域不可或缺的核心工具,其重要性不言而喻。它极大地提升了设计效率与精度,缩短了产品开发周期,为企业的创新与发展注入了强大动力。随着全球市场竞争的日益激烈,以及当前国际局势的复杂多变&#x…

编码滤波技术-SAO

1. AVS中的SAO样值偏移自适应补偿技术,首先将正在处理的块往左上移动了四行四列,超过图像边界的部分丢弃,右、下图像边界部分补齐。 也就是偏移前在图像边缘的块,进行去除和扩展得到偏移后的块。图像内部的块,正常往左…

Leetcode打卡:查询数组中元素出现的位置

执行结果:通过 题目 3159 查询数组中元素出现的位置 给你一个整数数组 nums ,一个整数数组 queries 和一个整数 x 。 对于每个查询 queries[i] ,你需要找到 nums 中第 queries[i] 个 x 的位置,并返回它的下标。如果数组中 x 的出…

【游戏设计原理】32 - 消费者剩余

1. 如何理解消费者剩余原理? 消费者剩余是一种经济学概念,表示消费者愿意为商品支付的最大金额与实际支付金额之间的差额。 简单来说,消费者剩余衡量了消费者从交易中获得的“额外价值”或“剩余利益”。 在传统商业模式下,由于…

肝功能不正常可以过教师入职体检吗?

如何看肝功能报告单 转氨酶正常等于肝功能正常吗?要想看懂肝功能报告单就要看懂各指标含义。 1、总胆红素TbiL正常值是 1.7-17.1μmol/L 急性黄疸型肝炎活动性肝炎肝坏死、肝癌、胰头癌都异常偏高。 2、直接胆红素 DbiL正常值是 0-6.84μmol/L 结石病、肝癌、胰头癌与这项…

CH340系列芯片驱动电路·CH340系列芯片驱动!!!

目录 CH340基础知识 CH340常见类型 CH340引脚功能讲解 CH340驱动电路 CH340系列芯片数据手册 编写不易,仅供学习,请勿搬运,感谢理解 常见元器件驱动电路文章专栏连接 LM7805系列降压芯片驱动电路降压芯片驱动电路详解-CSDN博客 ME62…

(公开源码)基于springboot+vue的在线课程教学管理系统 计算机毕业设计P10046

项目说明 本号所发布的项目均由我部署运行验证,可保证项目系统正常运行,以及提供完整源码。 如需要远程部署/定制/讲解系统,可以联系我。定制项目未经同意不会上传! 项目源码获取方式放在文章末尾处 注:项目仅供学…

UE5 把场景转成HDR图

目录 使用影片渲染队列 使用影片渲染队列 以下方法实测 UE5.4 有效 1.打开影片渲染队列窗口。依次打开:窗口—过场动画—影片渲染队列 2.添加Sequence动画。点击“渲染”按钮,选择要渲染的Sequence。 3.设置输出配置。 点击“Unsaved Config”打开配置…

使用RKNN进行YOLOv8人体姿态估计的实战教程:yolov8-pose.onnx转yolov8-pose.rknn+推理全流程

之前文章有提到“YOLOv8的原生模型包含了后处理步骤,其中一些形状超出了RK3588的矩阵计算限制,因此需要对输出层进行一些裁剪”,通过裁剪后得到的onnx能够顺利的进行rknn转换,本文将对转rnkk过程,以及相应的后处理进行阐述。并在文末附上全部源码、数据、模型的百度云盘链…

嵌入式硬件杂谈(八)电源的“纹波”到底是什么?

纹波的引入:在我们嵌入式设备中,很多时候电路电源的纹波很敏感,纹波太大会导致系统不工作,因此设计一个纹波很小的电路就是我们的需求了。 电路的纹波是什么? 纹波(Ripple)是指电源输出中叠加在…

水电站视频智能监控系统方案设计与技术应用方案

一、背景需求 水电站作为国家重要的能源基地,其安全运行对于保障能源供应和社会稳定具有重要意义。然而,传统的人工监控方式存在着诸多问题,如人力成本高、监控范围有限、反应不及时等。因此,水电站急需引进一种先进的视频智能监控…

MAC M4安装QT使用国内镜像源在线安装

MAC M4安装QT使用国内镜像源在线安装 一、下载安装包1. 访问[https://www.qt.io/](https://www.qt.io/)下载在线安装包2. 下载结果 二、创建QT账户,安装的时候需要三、安装1. 终端打开安装包2. 指定安装源3. 运行安装完的QT 一、下载安装包 1. 访问https://www.qt.…

实现类似gpt 打字效果

1. css的动画(animation) css中实现动画有两种方式:transition过渡动画、 animation自定义动画。 具体的可以看MDN链接:https://developer.mozilla.org/zh-CN/docs/Web/CSS/animation 使用keyframes自定义关键帧动画并未其命名使用自定义动…

CV(7)--神经网络训练

前言 仅记录学习过程,有问题欢迎讨论 什么是神经网络: 神经网络是一种模拟人脑神经元工作原理的算法,它由多个神经元组成,每个神经元都接受输入,通过计算产生输出,并将输出传递给其他神经元。神经网络的…

python实战案例笔记:统计出数据中路劲下没有文件的文件夹

数据样例:👇有如下excel数据 需求:有如下excel,a.xls,统计出路劲下没有文件的路劲 详细实现代码: import os from openpyxl import Workbook from datetime import datetimedef get_empty_dirs(paths):# …

API安全学习笔记

必要性 前后端分离已经成为web的一大趋势,通过TomcatNgnix(也可以中间有个Node.js),有效地进行解耦。并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器&#x…

金仓数据库对象访问权限的管理

基础知识 对象的分类 数据库的表、索引、视图、缺省值、规则、触发器等等,都称为数据库对象,对象分为如下两类: 模式(SCHEMA)对象:可以理解为一个存储目录,包含视图、索引、数据类型、函数和操作符等。非模式对象:其他的数据库对象&#x…

【连续学习之ResCL算法】2020年AAAI会议论文:Residual continual learning

1 介绍 年份:2020 会议: AAAI Lee J, Joo D, Hong H G, et al. Residual continual learning[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2020, 34(04): 4553-4560. 本文提出的算法是Residual Continual Learning (ResC…

超时空跑跑新手池抽什么比较好 超时空跑跑风火水雷配队搭配

在超时空跑跑这款游戏中,各种角色分为风、火、水、雷四类,我们可以根据新手池抽出的角色进行搭配,今天就给大家推荐一下四种属性分别适合的队伍。 一、风系队 阵容搭配:关偃月方源少阳 1.关偃月的弹指次数可以持续很长的时间&am…