云服务器搭建网站教程苏州做外贸网站
news/
2025/9/23 9:20:09/
文章来源:
云服务器搭建网站教程,苏州做外贸网站,线下推广引流渠道,怎么做网站添加二维码【README】
本文转自bilibili《计算机组成原理#xff08;哈工大刘宏伟#xff09;》的视频讲解#xff0c;非常棒#xff0c;墙裂推荐#xff1b; 【1】中断介绍
1#xff09;作用#xff1a;用中断系统实现了外设数据的输入输出#xff1b; 还可以用于程序调试哈工大刘宏伟》的视频讲解非常棒墙裂推荐 【1】中断介绍
1作用用中断系统实现了外设数据的输入输出 还可以用于程序调试计算机系统的异常事件都可以用中断系统来处理
2中断因素
人为设置的中断程序性事故如java异常硬件故障如硬盘坏道Io设备如数据输入输出外部事件如键盘中断按钮调试程序【2】 cpu中断问题
【2.1】问题1各中断源如何向cpu提出请求 给每一个中断源设置一个触发器用触发器来标记这个中断源是否提出了中断请求 一个中断源对应一个中断请求触发器INTR多个触发器组成了中断请求标记寄存器 INTR 中断请求标记寄存器 INTR 如下 【2.2】 问题2各中断源同时提出请求怎么办 对中断源进行分级响应优先级最高的中断源对中断源的级别进行排队 中断优先级分为响应优先级和处理优先级 响应优先级由硬件决定中断源决定无法修改 处理优先级可以修改通过设置中断屏蔽字到中断屏蔽寄存器来屏蔽其他中断 【2.3】问题3Cpu在什么条件什么时间以什么方式响应中断
【2.3.1】cpu在什么条件下响应中断请求
为了表示cpu是否响应中断请求有一个允许中断触发器EINT值1表示允许cpu 响应中断源发出的中断请求
【2.3.2】 cpu在什么时间响应中断请求
通常情况下cpu只有在指令的执行阶段结束以后才能够响应中断请求但cpu的某些指令的执行阶段比较长这种情况就允许cpu在指令执行过程中响应中断请求
【2.3.3】 cpu响应中断过程
在指令执行以后cpu发送查询信号到中断源的中断请求触发器查询信号把中断请求触发器的输出端设置为1把中断请求信号发送到排队电路
补充中断隐指令作为响应中断的一部分有3个操作保护程序断点寻找入口地址硬件关中断如下 中断响应步骤如下 步骤 描述 1 Cpu完成指令执行阶段后通过硬件向量法查找中断源各个中断源的信号送入排队器 2 排队器把中断源信号只有一根线为1送给中断标记触发器从而把INT设置为1而EINT设置为0 3 此外排队器还要把中断信号送给向量地址形成部件这个向量地址送给PC为执行中断服务程序做准备向量地址保存了中断服务程序的入口地址 【小结】中断响应过程中要解决的3个问题 问题1保护程序断点 断点就是中断服务程序执行完成后返回执行的指令 方法1 断点存到特定地址0号地址内 方法2 断点进栈 问题2寻找中断服务程序入口地址 方法1 采用硬件向量法把中断向量地址发送到PC寄存器PC中保存了向量地址这个向量地址保存了中断服务程序的入口地址或跳转指令该指令会跳转到中断服务程序 方法2 软件查询法中断识别程序的入口地址发送到PC寄存器计算机执行中断识别程序来查找中断服务程序的入口地址 问题3硬件关中断把中断允许触发器的值设置为0 关中断的目的 避免在单重中断的机器中在执行中断服务程序的过程中有新的中断源会打断当前的中断服务程序的执行 另外即使在多重中断的cpu中采用关中断的方式也是为了保存程序断点保存程序现场的一个过程 【2.4】问题4如何保护现场
【2.5】问题5如何恢复现场 1 保护现场 1.1 保存断点由中断隐指令硬件来做包括3个步骤保存断点形成中断服务程序的入口地址硬件关中断 1.2 保存寄存器内容由中断服务程序来做软件cpu当中的一些寄存器在执行中断服务程序的时候需要用到这些寄存器的内容也要进行保存 因为这些内容将来中断返回的时候主程序还要用到 2 恢复现场 2.1 由中断服务程序完成 因为中断服务程序在保存现场的时候可以吧寄存器内容压入到堆栈中 在中断服务程序恢复现场时可以出栈 3 中断服务程序的工作内容包括 1) 保护现场push指令 2) 其他服务程序中断服务程序剩余部分 3) 恢复现场pop指令 4) 中断返回IRET指令 【补充*】上述保护现场入栈恢复现场出栈也是线程切换的流程即线程上线文切换的原理可以看到频繁切换就是入栈和出栈过程即寄存器数据送入内存栈和内存栈数据送入寄存器的过程频繁切换的话可以看到成本非常高这个切换过程并没有做实际的业务逻辑 【2.6】问题6如何寻找中断服务程序的入口地址
通过硬件向量法或程序查询法寻找
【2.6.1】硬件向量法 排队器输出只有1根线是高电平1其他全部为低电平0 向量地址形成部件根据排队器输出确定需要响应的中断源从而确定执行哪一个中断服务程序通过中断向量地址确定
用硬件查找中断服务程序入口地址有两种方法 方法1 在中断向量地址的存储单元中存放一条跳转指令 如 jmp 200则200就是中断服务程序的入口地址 方法2 在中断向量地址的存储单元中存放的就是中断服务程序的入口地址如中断向量地址12H其保存的入口地址200
【2.6.2】程序查询法 中断识别程序查询步骤 步骤 指令 说明 1 SKP DZ 1# SKP表示跳过下一条指令 指令功能查询第1号中断源的完成触发器D看触发器是等于0还是等于1 若等于1说明中断源已经准备好了提出了中断请求cpu就要去执行响应的中断服务程序步骤2若等于0说明1号中断源没有准备好则跳过指令2进入2号中断源的查询步骤3 2 JMP 1#SR 执行中断服务程序 3 SKP DZ 2 …… 4 JMP 2SR …… 【2.7】问题7处理中断的过程中又出现新的中断 怎么办 处理过程如下
处理中断1时发生了中断2且中断2优先级大于中断1则停止中断1的服务程序转而执行中断2的服务程序处理中断2时发生了中断3且中断3优先级大于中断2则停止中断2的服务程序转而执行中断3的服务程序
上图中 产生了3次中断和3个断点分别是 k1, l1, m1 【例】利用中断屏蔽字修改中断处理优先级响应多个中断参见
https://blog.csdn.net/PacosonSWJTU/article/details/123595867 【3】cpu中断全过程小结
cpu全过程有5个步骤
中断请求中断判优中断响应中断处理中断返回
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912027.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!