1.CPU发送启动I/O设备的命令,将I/O接口中的B触发器置1,D触发器置O

2.设备开始工作,需要向CPU传送数据时,将数据送入数据缓冲器中。

3.输入设备向I/O接口发出“设备工作结束”的信号,将D触发器置1,B触发器置0。标志着I/O设备已就绪。

4.CPU在每条指令执行即将结束时,发出中断查询信号。中断查询信号可以让那些接口中D触发器置1且中断屏蔽触发器(MASK)置0的设备的I/O接口中的中断请求触发器(INTR)置1若该设备的I/O接口中的中断请求触发器(INTR)置1,则代表该设备正式向CPU提出中断请求。

5.一般来说,在同一个时间点存在多个设备同时提出中断请求,存在一个INTRi序列。而CPU每次只能处理一个中断请求,因此将INTRi序列送至排队器进行中断判优,速度越快的I/O设备优先级越高。

6.在中断允许触发器(EINT)置1的情况下,CPU对优先级最高的设备进行中断响应,首先将INTR发送到编码器形成向量地址。将向量地址至PC作为下一条指令的地址

7.向量地址指向的主存的存储单元里存放的实际上是一条无条件转移指令(JMP),其中包含着中断服务程序的地址。执行完这条指令后,CPU就找到了中断服务程序的入口。

8.CPU进入中断服务程序阶段。进入中断服务阶段后,首先由硬件线路自动进行关中断将中断允许触发器(EINT)置0,避免其他中断源的请求打扰。

9.在提出中断请求的设备服务之前,CPU需要保存当前程序的断点保存通用寄存器和状态寄存器中的有用的信息至主存储器或堆栈。前者是通过中断隐指令完成,后者是通过中断程序的指令完成。中断隐指令不是一条真实存在的机器指令,而是由硬件电路自动完成的一条指令。

10.保护好现场之后,CPU进入中断服务程序的主体部分,进行设备服务。此时CPU通过输入指令,将设备发送到数据缓冲器中的数据送至通用寄存器,最终送至主存储器的存储单元。之后再进行恢复现场。

11.完成设备服务等操作之后,CPU执行中断服务程序的最后一条指令返回原程序的断点

12.CPU继续原程序的执行。

I/O中断处理详细过程的更多相关文章

  1. STM32F0xx_EXIT中断配置详细过程

    Ⅰ.概述 EXIT外部中断在使用到按键或者开关控制等应用中比较常见,低功耗中断唤醒也是很常见的一种.因此,EXIT在实际项目开发中也是比较常见的一种. STM32F0中外部中断EXIT属于中断和事件的 ...

  2. Linux下安装mongodb详细过程

    本次安装mongodb使用yum.repo方式.详细过程请参考,也列出一些安装过程中的错误,欢迎指正. mongodb版本:3.0 先在linux下cd 到 /etc/yum.repos.d/ 新建脚 ...

  3. 第一部分:使用iReport制作报表的详细过程(Windows环境下)

    提示:在有些板块,文中的图片看不到,建议到我的blog浏览文章:http://blog.csdn.net/jemlee2002/文章将会涉及3个方面的内容: 第一部分:使用iReport制作报表的详细 ...

  4. Ubuntu学习总结-01 用VMware 8安装Ubuntu 12.04详细过程

    1 Ubuntu 下载地址 http://www.ubuntu.com/download/desktop 2 安装Ubuntu 转载用VMware 8安装Ubuntu 12.04详细过程 http:/ ...

  5. spm完成dmp在windows系统上导入详细过程

    --查询dmp字符集 cat spmprd_20151030.dmp ','xxxx')) from dual; spm完成dmp在windows系统上导入详细过程 create tablespace ...

  6. Redis主从配置详细过程

    Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构.下面楼主简单的进行一下配置. 1.上面安装 ...

  7. UCOS2_STM32F1移植详细过程(四)

    Ⅰ.概述 上一篇文章是讲述uC/OS-II Ports下面os_cpu_a.asm.os_cpu_c.c和os_cpu.h文件底层端口代码的移植(修改)和说明,接着上一篇文章来讲述关于UCOS移植应用 ...

  8. UCOS2_STM32F1移植详细过程(三)

    Ⅰ.概述 上一篇文章是讲述ST芯片相关的配置和OS裁剪相关的配置,接着上一篇文章来讲述关于UCOS的移植,该文主要针对uC/OS-II Ports下面os_cpu_a.asm.os_cpu_c.c和o ...

  9. UCOS2_STM32F1移植详细过程(二)

    Ⅰ.概述 打开上一篇文章新建的工程,是提取的ST标准库里面源代码文件和UCOS工程包源代码文件.下载过的朋友可能会知道,直接编译那个工程会有大片的错误和警告,原因在于那个工程是没有经过修改源代码的工程 ...

随机推荐

  1. vue原理简介

    写vue也有一段时间了,对vue的底层原理虽然有一些了解,这里总结一下. vue.js中有两个核心功能:响应式数据绑定,组件系统.主流的mvc框架都实现了单向数据绑定,而双向绑定无非是在单向绑定基础上 ...

  2. nginx+keepalived高可用及双主模式

    高可用有2中方式. 1.Nginx+keepalived 主从配置 这种方案,使用一个vip地址,前端使用2台机器,一台做主,一台做备,但同时只有一台机器工作,另一台备份机器在主机器不出现故障的时候, ...

  3. P1279 字串距离 dp 洛谷

    题目描述 设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为”abcbcd”,则字符串“abcb□cd”,“□a□bcbcd□”和“abcb□cd□”都是X ...

  4. Get https://192.168.2.119/v2/: dial tcp 192.168.2.119:443: getsockopt: connection refused

    Get https://192.168.2.119/v2/: dial tcp 192.168.2.119:443: getsockopt: connection refused

  5. Apache Shiro对象概念

    #,Authentication,认证,也就是验证用户的身份,就是确定你是不是你,比如通过用户名.密码的方式验证,或者某些第三方认证,比如微信认证. #,Authorization,授权,也叫访问控制 ...

  6. UVA11846-Finding Seats Again(DFS)

    Problem UVA11846-Finding Seats Again Accept: 69    Submit: 433Time Limit: 10000 mSec Problem Descrip ...

  7. 【css】怎么让Chrome支持小于12px 的文字

    谷歌浏览器Chrome是Webkit的内核,有一个 -webkit-text-size-adjust 的私有 CSS 属性,通过它即可实现字体大小不随终端设备或浏览器影响.CSS样式定义如下:-web ...

  8. 吴恩达课后作业学习1-week2-homework-logistic

    参考:https://blog.csdn.net/u013733326/article/details/79639509 希望大家直接到上面的网址去查看代码,下面是本人的笔记 搭建一个能够 “识别猫” ...

  9. linux注释多行

    方法一:使用可视化模块添加实现多行注释 1.打开文件/etc/password进行测试: vim /etc/password 2.进入到视图模式:按ctrl+v 1 root:x:0:0:root:/ ...

  10. hadoop学习笔记叁--简单应用

    1.通过命令向HDFS传输文件 上传:./hadoop fs -put hdfs.cmd (本地文件名) hdfs://主机名称:9000/       hadoop fs -copyFromLoca ...