当前位置: 首页 > news >正文

计组——I/O方式

一、程序查询方式

CPU不断轮询检查I/O控制器中“状态寄存器”,检测到状态为“已完成”之后,再从数据寄存器取出输入数据。

 

过程:

1.CPU执行初始化程序,并预置传送参数;设置计数器、设置数据首地址。

2. 向I/O接口发送命令字,启动I/O设备

3.CPU从接口读取设备状态信息

4.CPU不断查询I/O设备状态,直到外设准备就绪

5.传送一次数据,一般为一个字

6.修改传送参数,修改地址和计数器参数

⭐CPU一旦启动I/O必须停止现行程序的运行,并在现行程序中插入一段程序。

主要特点:CPU有“踏步”等待的现象,CPU与I/O串行工作。

二、程序中断方式

1.中断的概念

程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。

2.中断的工作流程

中断请求→中断响应→中断处理

(1)中断请求

        中断源向CPU发送中断请求信号。

(2)中断响应

        响应中断的条件。

        中断判优:多个中断源同时提出中断请求的话需要进行中断判优。

(3)中断处理

        中断隐指令。

        中断服务程序。

3.中断请求标志

为了记录中断事件并区分不同的中断源,中断系统需要对每个中断源设置中断请求标记触发器INTR

CPU响应中断的时间,是在每条指令执行阶段的结束时刻。

4.中断判优优先级设置

5.中断处理过程

5.1 隐指令

中断隐指令,不是一条具体的指令,而是CPU检测到中断请求时自动完成的一系列动作。

主要任务:

(1)关中断

(2)保存断点

(3)引出中断服务程序

5.2 向量地址

确定中断服务程序它的入口地址的方法有两个:硬件向量法、软件查询法

(1)硬件向量法

第一步:得到中断类型号

        首先,根据某个中断请求信号通过硬件,得到对应的中断向量的保存地址。

(中断向量,把指向中断服务程序起始地址的地址信息称为中断向量)

第二步:得到中断服务程序的入口地址

        向量地址对应的主存里保存了JMP无条件转移指令,这个无条件转移指令指明了当前中断请求对应的中断服务程序的入口地址 。

5.3 中断服务程序

(1)保护现场

(2)中断服务

(3)恢复现场

(4)中断返回

6.多重中断

6.1 中断屏蔽字

“1” 表示屏蔽该中断的源的请求,即继续执行当前正在执行的中断。

“0” 表示正常申请,停止当前程序去执行新的中断程序。

三、DMA方式

 

http://www.lryc.cn/news/182284.html

相关文章:

  • jsbridge实战2:Swift和h5的jsbridge通信
  • 集合原理简记
  • 机器学习的超参数 、训练集、归纳偏好
  • Leetcode1071. 字符串的最大公因子(三种方法,带详细解析)
  • 如何像人类一样写HTML之图像标签,超链接标签与多媒体标签
  • 1300*C. Rumor(并查集贪心)
  • python实用小代码(数据分析向)
  • 【oncmdmsg 鼠标】2023/8/19 上午9:50:14
  • 插入排序:简单而有效的排序方法
  • OpenGL之光照贴图
  • 隐私交易成新刚需,Unijoin 凭什么优势杀出重围?
  • 小谈设计模式(12)—迪米特法则
  • Foxit PDF
  • 《Python趣味工具》——ppt的操作(刷题版)
  • 实战型开发--3/3,clean code
  • 家用无线路由器如何用网线桥接解决有些房间无线信号覆盖不好的问题(低成本)
  • 【Golang】网络编程
  • 使用策略模式优化多重if/else
  • 逆强化学习
  • postgresql新特性之Merge
  • 【注解】注解解析与应用场景
  • mysql面试题14:讲一讲MySQL中什么是全同步复制?底层实现?
  • Linux驱动设备号分配与自动创建设备节点
  • 基于MFC和OpenCV实现人脸识别
  • 力扣 -- 377. 组合总和 Ⅳ
  • 阿里云新账户什么意思?老用户、产品首购详细说明
  • C++ YAML使用
  • 十二、Django之模板的继承+用户列表
  • wzsc_文件上传(条件竞争)
  • unplugin-vue-components和unplugin-auto-import插件