AIA - IMSIC之二(附IMSIC处理流程图)
本文属于《 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内部实际寄存器的访问。
相关文章:
AIA - IMSIC之二(附IMSIC处理流程图)
本文属于《 RISC-V指令集基础系列教程》之一,欢迎查看其它文章。 1 通过IMSIC接收外部中断的CSR 软件通过《AIA - 新增的CSR》描述的CSR来访问IMSIC。 machine level 的 CSR 与 IMSIC 的 machine level interrupt file 可相互互动;而 supervisor level 的 CSR…...
数据处理之数据规约
数据处理之数据规约 1. 数据规约概述 数据规约是数据处理中的重要方法,旨在让数据处理更简便、高效,以满足业务需求。当从数据仓库获取的数据量庞大时,直接在海量数据上进行分析和挖掘成本颇高。数据规约可得到数据集的归约表示,…...
爬虫代理服务要怎么挑选?
在数据采集的世界里,爬虫代理服务不仅帮助我们高效地收集信息,还能在保护数据安全方面发挥重要作用。但面对市场上琳琅满目的代理服务,我们该如何挑选呢?本文将为你提供一些实用的建议,帮助你找到最适合你的爬虫代理服…...
vue3组件调用解决奇怪问题的详细记录
左边是父组件,右边是子组件,运行正常: 父组件中的子组件加上class属性,运行报错:Extraneous non-props attributes (class) were passed to component but could not be automatically inherited because component re…...
【物联网技术与应用】实验16:模拟霍尔传感器实验
实验16 模拟霍尔传感器实验 【实验介绍】 基于霍尔效应,霍尔传感器是响应于磁场而改变其输出电压的传感器。霍尔传感器用于接近开关,定位,速度检测和电流检测应用。 霍尔传感器可以分为模拟霍尔传感器和开关霍尔传感器由电压调节器&#x…...
【机器学习案列】车牌自动识别系统:基于YOLO11的高效实现
🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...
高精度问题
目录 算法实现基础 高精度加法AB 测试链接 源代码 代码重点 高精度减法A-B 测试链接 源代码 代码重点 高精度乘法A*b和A*B 测试链接 源代码 代码重点 高精度除法A/b和A/B 测试链接 源代码 代码重点 高精度求和差积商余 算法实现基础 本算法调用STL…...
kong网关使用pre-function插件,改写接口的返回数据
一、背景 kong作为api网关,除了反向代理后端服务外,还可对接口进行预处理。 比如本文提及的一个小功能,根据http header某个字段的值,等于多少的时候,返回一个固定的报文。 使用到的kong插件是pre-function。 除了上…...
【QT开发自制小工具】PDF/图片转excel---调用百度OCR API接口
前言 前几年WPS还可以免费处理5页以内的PDF转excel,现在必须付费了,而且百度其他在线的PDF转excel都是要收费的,刚好前几年调研过百度OCR的高精度含位置接口,依然是每天可以免费调用50次,本篇是基于此接口,…...
vue2 elementui if导致的rules判断失效
优化目标 和 目标转化出价必填的 切换的时候还会隐藏掉 这时候的if语句会导致rules判断失效 我的办法是把判断拉到外面 别放在el-form-item里 <section v-if"unitForm.baseTarget OCPM && unitForm.cpaTargetOptions ! undefined && unitForm.cpaTa…...
DevOps实战:用Kubernetes和Argo打造自动化CI/CD流程(2)
DevOps实战:用Kubernetes和Argo打造自动化CI/CD流程(2) 背景 架构图 正片开始之前,请一定先熟悉上面的架构图,跟着我的步骤,一步一步执行成功,相信后续根据自己特定的需求定制CI/CD。 需求 …...
嵌入式科普(25)Home Assistant米家集成意味着IOT的核心是智能设备
目录 一、概述 二、一张图说尽HA 三、HA的相关资料 四、米家集成划重点 五、总结 一、概述 小米Home Assistant 米家集成开源一周star近15k,迭代4个版本,12个贡献者 本文科普一下Home Assistant(简称HA)、米家集成ÿ…...
spring cloud gateway 3
**Spring Cloud Gateway 3** 是 Spring Cloud 生态系统中的一个重要组件,用于构建 API 网关,提供路由、监控、安全等关键功能。以下是关于 Spring Cloud Gateway 3 的详细介绍: ## 1. 什么是 Spring Cloud Gateway? **Spring Clou…...
html + css 淘宝网实战
之前有小伙伴说,淘宝那么牛逼你会写代码,能帮我做一个一样的淘宝网站吗,好呀,看我接下来如何给你做一个淘宝首页。hahh,开个玩笑。。。学习而已。 在进行html css编写之前 先了解下网页的组成和网页元素的尺寸吧 1.网页的组成 …...
游戏引擎学习第62天
回顾 我们目前正在开发一把虚拟剑,目的是让角色可以用这把剑进行攻击。最初的工作中,我们使用了一个摇滚位图作为虚拟剑的模型,并且实现了一个基本的功能:角色可以丢下剑。但这个功能并没有达到预期的效果,因为我们想…...
LeetCode - Google 校招100题 第6天 回溯法(Backtracking) (8题)
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/144743505 LeetCode 合计最常见的 112 题: 校招100题 第1天 链表(List) (19题)校招100题 第2天 树(Tree) (21题)校招100题 第3天 动态规划(DP) (20题)...
C项目 天天酷跑(下篇)
上篇再博客里面有,接下来我们实现我们剩下要实现的功能 文章目录 碰撞检测 血条的实现 积分计数器 前言 我们现在要继续优化我们的程序才可以使这个程序更加的全面 碰撞的检测 定义全局变量 实现全局变量 void checkHit() {for (int i 0; i < OBSTACLE_C…...
达梦数据守护搭建
主备库初始化 ./dminit path/dmdata/data db_nameDM01 instance_nameDMSVR01 port_num5236 page_size16 extent_size32 log_size500 case_sensitive1 SYSDBA_PWDDM01SYSDBA ./dminit path/dmdata/data db_nameDM02 instance_nameDMSVR02 port_num5236 page_size16 extent_size3…...
记录一次前端绘画海报的过程及遇到的几个问题
先看效果 使用工具 html2canvas import html2canvas from html2canvas// 绘画前的内容 我就不过多写了<div class"content" ref"contentRef" v-show"!imgShow"><img :src"getReplaceImg(friendObj.coverUrl)" alt"&qu…...
24.12.26 SpringMVCDay01
SpringMVC 也被称为SpringWeb Spring提供的Web框架,是在Servlet基础上,构建的框架 SpringMVC看成是一个特殊的Servlet,由Spring来编写的Servlet 搭建 引入依赖 <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc<…...
如何在Windows系统搭建高效Perl开发环境:Strawberry Perl全攻略
如何在Windows系统搭建高效Perl开发环境:Strawberry Perl全攻略 【免费下载链接】Perl-Dist-Strawberry Tooling to build and package releases for Perl on Windows. 项目地址: https://gitcode.com/gh_mirrors/pe/Perl-Dist-Strawberry 在Windows平台进行…...
如何快速批量下载Webtoon漫画:Python命令行工具终极指南
如何快速批量下载Webtoon漫画:Python命令行工具终极指南 【免费下载链接】Webtoon-Downloader A fast CLI for downloading chapters of Webtoons 项目地址: https://gitcode.com/gh_mirrors/we/Webtoon-Downloader Webtoon Downloader是一款基于Python开发…...
不止会写脚本,更要会设计系统:从 Python 基础到 Pydantic v2,谈一套真正可靠的工程实践
不止会写脚本,更要会设计系统:从 Python 基础到 Pydantic v2,谈一套真正可靠的工程实践 很多人第一次喜欢上 Python,往往是因为它“好写”。 几行代码就能跑通一个脚本,一个下午就能拼出一个小工具,一周就能…...
别再手动翻GitHub了!用Crawl4AI自动抓取AI开源项目(附Python配置避坑指南)
用Crawl4AI打造你的AI开源情报系统:从零配置到自动化实战 每次在GitHub上手动搜索AI项目时,你是否也经历过这样的困境?输入"machine learning"得到的结果里混杂着十年前的教学代码,筛选"deep learning"标签后…...
OpenClaw硬件配置指南:千问3.5-35B-A3B-FP8本地运行最佳实践
OpenClaw硬件配置指南:千问3.5-35B-A3B-FP8本地运行最佳实践 1. 为什么需要硬件优化? 当我第一次尝试在MacBook Pro M1 Max上运行千问3.5-35B-A3B-FP8模型时,系统几乎立即触发了内存压力警告。风扇开始狂转,而模型响应速度慢得令…...
OpenClaw技能扩展实战:用百川2-13B-4bits自动生成技术博客草稿
OpenClaw技能扩展实战:用百川2-13B-4bits自动生成技术博客草稿 1. 为什么需要自动化技术写作 作为技术团队的文档负责人,我每周需要产出3-5篇技术博客。传统写作流程要经历选题会、资料收集、大纲确认、初稿撰写、格式调整等环节,平均每篇文…...
Ubuntu 20.04下快速搭建KMS激活服务器(附Windows客户端一键脚本)
Ubuntu 20.04下企业级KMS服务器部署与自动化管理指南 在IT基础设施管理中,批量授权管理一直是企业级环境中的痛点。传统KMS(密钥管理服务)解决方案往往需要复杂的配置流程,而开源工具vlmcsd的出现为中小型企业提供了轻量级选择。…...
网站推广seo优化公司如何提高网站转化率
网站推广seo优化公司如何提高网站转化率 在当今数字化时代,网站的转化率直接关系到一个企业的成功与否。高转化率意味着更多的访客将成为潜在客户,进而成为实际的客户。对于网站推广seo优化公司而言,如何有效提高网站转化率是其核心业务之一…...
FFmpeg 新手必学:5个实用命令搞定视频转码、剪辑与音频提取
FFmpeg 新手必学:5个实用命令搞定视频转码、剪辑与音频提取 第一次接触FFmpeg时,我被这个开源工具的强大功能震撼到了——它几乎能处理所有常见的多媒体格式转换和编辑需求,而且完全免费。作为一款跨平台的命令行工具,FFmpeg在专业…...
PHP中内存溢出问题的分析与解决详解
HP作为一种广泛使用的服务器端脚本语言,在处理大量数据或复杂任务时,常常会遇到内存溢出的问题。内存溢出不仅会导致程序崩溃,还可能影响服务器的稳定性。本文将探讨解决PHP内存溢出问题的最佳实践,并通过代码示例进行详细说明。1…...
