以RISC-V架构的CLIC中断机制讲解:中断咬尾、中断抢占、中断晚到

1、中断的相关属性

  • 中断所属特权模式(M模式 > S模式 > U模式)
  • 中断等级:决定是否能够抢占当前的中断
  • 中断优先级:影响中断的仲裁,优先级高时优先被响应
  • 中断编号:区分中断,影响中断的仲裁

2、中断仲裁:同时发生多个中断

在这里插入图片描述

  • 首先比较中断所属特权模式,高特权模式的中断比低特权模式的中断先响应
  • 特权特权模式相同再比较中断等级,高中断等级的中断比低中断等级的中断先响应
  • 中断等级相同再比较中断优先级,高中断优先级的中断比低中断优先级的中断先响应
  • 中断优先级相同再比较中断编号,中断编号较大的中断先响应

3、中断晚到

  • 中断晚到:当处理器对某一中断的响应还在早期,即入栈阶段,此时收到了高优先级中断的请求
  • 普通处理流程:
    • 先处理完当前中断,然后在处理高优先级的中断
    • 中断处理逻辑简单,但是实时性不高
  • 中断抢占:
    • 如果晚到的高优先级中断十分紧急,则安装中断抢占策略处理
    • 系统实时性高,但是中断处理逻辑负责
  • 中断咬尾:
    • 如果晚到的中断不算很紧急,不足以打断当前中断的处理,但是可以在本次进入中断后,把晚到的中断一起处理
    • 节省了保护现场、恢复现场的步骤,提供中断处理效率

4、中断抢占

4.1、中断抢占概念介绍

  • 中断抢占的条件
    • 高特权模式的中断可以抢占低特权模式的中断,不管低特权模式的全局中断是否使能
    • 同特权模式的中断,高中断等级的中断要抢占低特权等级的中断,前提是特权模式的全局中断必须要使能
  • 中断抢占:
    • 前一个中断还在执行时发生了更高等级的中断,立马去执行高等级的中断处理程序,等高等级的中断处理程序执行完毕,再回来执行前一个中断出来程序的剩余部分

4.2、中断抢占的时序图分析

在这里插入图片描述

  • interrupt_1可以抢占interrupt_0

4.3、中断抢占的优缺点

  • 优点:
    • 支持中断抢占(中断嵌套),可以保证紧急的中断被优先处理,提供系统的响应实时性
  • 缺点:
    • 中断嵌套会让中断响应的过程变得复杂,出现问题更难分析
    • 中断嵌套会同时保存多个现场,需要开辟更大空间的栈

5、中断咬尾

5.1、中断咬尾概念

在这里插入图片描述

  • CLIC中断机制的中断咬尾处理伪代码(以M特权模式为例)
//中断入口
interrupt_1:
	//保存现场
	
	//执行中断1的处理程序
	
	//判断当前是否还有处于挂起态的中断,这条命令会打开特权模式的全局中断
	csrrs rd, mnxti, rs1
	
	//判断rd是否为零,如果rd不为零则rd中保存的是下一个要响应中断的中断处理程序入口地址,执行ISR
	//然后再返回上一条指令继续判断,知道rd为零,表示已经没有中断要响应

	//关闭当前特权模式的全局中断使能,保证恢复现场时不会被打断
	
	//恢复现场
	
	//中断返回
	mret

5.2、中断咬尾时序图分析

在这里插入图片描述

  • 上面的时序图,处理了三个中断,但是只有一次保存现场、恢复现场的操作
  • 这个时序图,在进入中断后,保存完现场后就立马查询当前处于挂起态的中断,选择最高优先级的中断进行处理

6、中断抢占和中断咬尾的对比

  • 共同点:
    • 中断咬尾和中断抢占都是在已经响应某个中断之后才发生
  • 不同点:
    • 中断抢占:发生的中断的特权模式或者中断等级比当前响应的中断高,可以打断当前中断的执行
    • 中断咬尾: 发生的新中断不能够打断当前响应中断的执行
  • 补充:中断抢占和中断咬尾时可以同时存在的。比如:在中断咬尾时过程中,发生了中断抢占

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

操作系统面经-什么是操作系统?

通过以下四点可以概括操作系统到底是什么: 操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石。操作系统本质上是一个运行在计算机上的软件程序 ,主要用于管理计算机硬…

视频素材库哪家好?我给大家来分享

视频素材库哪家好?这是很多短视频创作者都会遇到的问题。别着急,今天我就来给大家介绍几个视频素材库哪家好的推荐,让你的视频创作更加轻松有趣! 视频素材库哪家好的首选当然是蛙学网啦!这里有大量的高质量视频素材&am…

成都百洲文化传媒有限公司电商新浪潮的领航者

在当今电商行业风起云涌的时代,成都百洲文化传媒有限公司以其独特的视角和专业的服务,成为了众多商家争相合作的伙伴。今天,就让我们一起走进百洲文化的世界,探索其背后的成功密码。 一、百洲文化的崛起之路 成都百洲文化传媒有限…

python共享单车信息系统的设计与实现flask-django-php-nodejs

课题主要分为二大模块:即管理员模块和用户模块,主要功能包括:用户、区域、共享单车、单车租赁、租赁归还、报修信息、检修信息等; 语言:Python 框架:django/flask 软件版本:python3.7.7 数据库…

从内存巷弄到指针大道(一)

文章目录 1.内存和地址1.1理解内存地址酒店大堂:内存的入口房间号:内存地址的意义酒店的楼层划分:内存的结构酒店的房间单位:计算机中的常见单位 1.2如何理解编址 2.指针变量和地址2.1取地址操作符(&)2.2 指针变量…

windows系统下python进程管理系统

两年来,我们项目的爬虫代码大部分都是放在公司的windows机器上运行的,原因是服务器太贵,没有那么多资源,而windows主机却有很多用不上。为了合理利用公司资源,降低数据采集成本,我在所以任务机器上使用anac…

力扣热门算法题 59. 螺旋矩阵 II,60. 排列序列,61. 旋转链表

59. 螺旋矩阵 II,60. 排列序列,61. 旋转链表,每题做详细思路梳理,配套Python&Java双语代码, 2024.03.21 可通过leetcode所有测试用例。 目录 59. 螺旋矩阵 II 解题思路 完整代码 Java Python 60. 排列序列 …

Linux基础命令[20]-useradd

文章目录 1. useradd 命令说明2. useradd 命令语法3. useradd 命令示例3.1 不加参数3.2 -d(指定家目录)3.3 -g(指定用户组)3.4 -G(指定附属组)3.5 -p(加密密码)3.6 -e(指…

东方博宜 1449. 求满足条件的数的和

东方博宜 1449. 求满足条件的数的和 这道题我苦想了很久&#xff0c;觉得2个及2个以上很难解决&#xff0c;但是后面发现&#xff0c;可以用一个变量记录次数&#xff0c;次数大于等于2就好了。 #include<iostream> using namespace std; int main() {int n ;cin >…

JetPack之DataBinding基础使用

目录 一、简介二、使用2.1 使用环境2.2 xml文件绑定数据2.3 数据绑定的对象2.3.1 object2.3.2 ObseravbleField2.3.3 ObseravbleCollection 2.4 绑定数据 三、应用场景 一、简介 DataBinding是谷歌15年推出的library,DataBinding支持双向绑定&#xff0c;能大大减少绑定app逻辑…

防火墙在解决方案及典型项目中的应用

防火墙在解决方案及典型项目中的应用 防火墙作为基础安全防护产品&#xff0c;在各种解决方案、业务场景中配套应用&#xff0c;本节给出各类方案资料链接方便查阅。 防火墙在华为网络解决方案中的应用 解决方案 文档 主要应用 CloudFabric云数据中心网解决方案 资料专区…

游戏引擎开发公司 Unity 调查:超六成游戏工作室采纳AI助力开发,效率与质量双提升

Unity是一家专注于游戏引擎开发的公司&#xff0c;其开发的Unity引擎被广泛应用于游戏开发领域&#xff0c;为开发者提供了强大的工具来创建高质量的游戏。Unity引擎不仅支持多种平台&#xff0c;而且具有易用性和灵活性&#xff0c;使得开发者能够高效地进行游戏开发。近年来&…

一文速通自监督学习(Self-supervised Learning):教机器自我探索的艺术

一文速通自监督学习&#xff08;Self-supervised Learning&#xff09;&#xff1a;教机器自我探索的艺术 前言自监督学习是什么&#xff1f;自监督学习的魔力常见的自监督学习方法1. 对比学习2. 预测缺失部分3. 旋转识别4. 时间顺序预测 结语 &#x1f308;你好呀&#xff01;…

Springboot 博客_002 项目环境配置

引入相关依赖 mysqlmybatis <dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-…

数据库关系运算理论:专门的关系运算概念解析

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

德邦物流、京东重货、跨越速运、百世快运同台比价,寄哪个物流最便宜?一目了然

快递物流上门取件综合版的上线确实为许多用户提供了极大的便利。 德邦物流、京东重货、跨越速运、百世快运等作为业内知名的物流公司&#xff0c;其服务质量和运输效率都得到了广大用户的认可。 一键下单的功能更是简化了操作流程&#xff0c;提高了用户体验。 德邦物流&…

【半导体存储】关于NANDFlash的一些小知识

前言 作为一名电子专业的学生&#xff0c;半导体存储显然是绕不过去的一个坎&#xff0c;今天聊一聊关于NandFlash的一些小知识。 这里十分感谢深圳雷龙发展有限公司为博主提供的两片SD NAND的存储芯片&#xff0c;同时也给大家推荐该品牌的相关产品。 一、定义 存储芯…

漫谈微服务网关

一、什么是服务网关 服务网关 路由转发 过滤器 1、路由转发&#xff1a;接收一切外界请求&#xff0c;转发到后端的微服务上去&#xff1b; 2、过滤器&#xff1a;在服务网关中可以完成一系列的横切功能&#xff0c;例如权限校验、限流以及监控等&#xff0c;这些都可以通过…

(Linux 学习十二)文件查找和文件压缩

一.文件查找 which 命令查找 也可以用 whereis find 文件查找&#xff0c;针对文件名 locate 文件查找&#xff0c;依赖数据库alias 别名 alias yyy ls --colorauto -l yyy //相当于别名 查看文件which ls //查找ls 命令位置 whereis vim //也是查找命令locate …

Gitlab介绍

1.什么是Gitlab GitLab是一个流行的版本控制系统平台&#xff0c;主要用于代码托管、测试和部署。 GitLab是基于Git的一个开源项目&#xff0c;它提供了一个用于仓库管理的Web服务。GitLab使用Ruby on Rails构建&#xff0c;并提供了诸如wiki和issue跟踪等功能。它允许用户通…