首页 > 其他分享 >11.4外围设备的中断请求

11.4外围设备的中断请求

时间:2023-02-08 09:11:58浏览次数:51  
标签:主程序 处理 11.4 中断请求 中断 外围设备 CPU

让我们再来看一下图 11-4。在“I/O 范围”下面有一个“IRQ”项目,对应的值是 0x00000006 ( 06)。IRQ(Iterrupt Request) 是中断请求的意思。那么,IQ 主要是用来做什么的呢?

IRQ 是用来暂停当前正在运行的程序,并跳转到其他程序运行的必要机制。该机制称为中断处理。中断处理在硬件控制中担当着重要角色。因为如果没有中断处理,就有可能出现处理无法顺畅进行的情况。

从中断处理开始到请求中断的程序(中断处理程序)运行结束之前,被中断的程序(主程序)的处理是停止的。这种情况就类似于在处理文档的过程中有电话打进来,电话就相当于中断处理。假如没有中断功能的话,就必须等到文档处理完毕才可以接听电话。这样就太不方便了。由此可见,中断处理有着很大的价值。就像接听完电话后返回到原来的文档作业一样,中断处理程序运行结束后,处理也会返回到主程序中继续(图11-6)。

 

 实施中断请求的是连接外围设备的 I/O 控制器,负责实施中断处理程序的是 CPU。为了进行区分,外围设备的中断请求会使用不同于 I/O端口的其他编号,该编号称为中断编号。在控制面板中查看软盘驱动器的属性时,IRQ 处显示的数值 06,表示的就是用 06 号来识别软盘驱动器发出的中断请求。另一方面,操作系统及 BIOS 则会提供响应中断编号的中断处理程序。

假如同时有多个外围设备进行中断请求的话,CPU 也会为难。为此,我们可以在I/O 控制器和CPU 中间加入名为中断控制器的IC 来进行缓冲。中断控制器会把从多个外围设备发出的中断请求有序地传递给 CPU。大家对中断控制器的认识可能比较薄弱,不过只需了解该设备的存在和角色就可以了(图 11-7)。

 

 CPU 接收到来自中断控制器的中断请求后,会把当前正在运行的主程序中断,并切换到中断处理程序。中断处理程序的第一步处理就是把 CPU 所有寄存器的数值保存到内存的栈中。在中断处理程序中完成外围设备的输入输出后,把栈中保存的数值还原到 CPU 寄存器中,然后再继续进行对主程序的处理。假如 CPU 寄存器的数值没有还原的话,就会影响到主程序的运行,甚至还有可能会使程序意外停止或者发生运行异常。这是因为主程序在运行过程中,出于某些原因用到 CPU 寄存器。而这时如果突然插人别的程序,主程序必然会受到影响。因此,在中断请求完毕后,各寄存器的数值必须要还原到中断前的状态。只要寄存器的值保持不变,主程序就可以像没有发生任何事情一样继续处理(图 11-8 )。

 

标签:主程序,处理,11.4,中断请求,中断,外围设备,CPU
From: https://www.cnblogs.com/z1218/p/17100459.html

相关文章

  • 用 Java?试试国产轻量的 Solon v1.11.4(带视频)
    一个更现代感的Java应用开发框架:更快、更小、更自由。没有Spring,没有Servlet,没有JavaEE;独立的轻量生态。主框架仅0.1MB。@ControllerpublicclassApp{publ......
  • 9.第三章第5节: 2021.11.4 技术架构选型 没用
                   ......
  • KVM/QEMU(virt-manager)使用iso镜像安装macOS bigsur 11.4
    参考:https://blog.csdn.net/u012332816/article/details/1221868991.背景本人没有mac电脑,但是需要在macOS上做一些事情,原来我在VMWareWorkstations和VirtualBox......
  • 10.31-11.4 周末总结
    目录一、ATM项目二、编程思想1.面向过程2.面向对象三、对象与类四、类与对象的创建1.类的语法结构2.类的定义与调用1.定义类2.查看名称空间的方法1__dict__方法2点号运算......
  • 【10.29-11.4】博客精彩回顾
    一、优秀文章推荐1.​​vue中引入高德地图Loca数据可视化​​2.​​SpringBoot自定义注解+异步+观察者模式实现业务日志保存​​​3.​​【原子样式实践】一次搞定微信开发......
  • 11.1 LAMP架构介绍 11.2 MySQL、MariaDB介绍 11.3/11.4/11.5 MySQL安装
     11.1LAMP架构介绍LAMP是Linux+Apache(httpd)+MySQL+PHP的简称•Linux:操作系统•Apache(httpd):WEB服务器软件,提供WEB服务•MySQL:关系型数据库用于存储数据(字符串)•......
  • 11.4 Bug的常见类型-思路不清导致的部题
     lst=[{'rating':[9.7,2062397],'id':'1292052','type':['犯罪','剧情'],'title':'肖申克的救赎','actors':['蒂姆·罗宾斯','摩根·弗里曼']},{'rating':[9.6,15......
  • 11.4新式层和多层类
    #在python3.x当中,所有得类都是object得子类,__init__也在object类中#object类#str()#int()#bool()#list()#dict()#tuple()##classA:#pass#A()#但凡实......
  • 11.4垃圾回收器
    目录1.GC分类与性能指标垃圾回收器概述线程数分类工作模式分类碎片处理方式分类工作内存区间分类评估GC的性能指标2.不同的垃圾回收器概述垃圾收集器发展史7款经典的垃圾收......
  • QQ国际版V8.0.11.4530
    简洁,快速,无广告,好用!预览图下载地址QQ国际版.apk......