计组:I/O系统

程序查询的方式的核心问题在于每时每刻需不断查询I/O设备是否准备就绪。

程序查询流程

当I/O设备较多时,CPU需按各个I/O设备在系统中的优先级别进行逐级查询。
查询流程:
为了正确的完成这种查询,通常要执行以下三条指令:

  • 测试指令,用来查询I/O设备是否准备就绪。

  • 传送指令:当I/O设备已准备就绪时,执行传送指令。

  • 转移指令:若I/O设备未准备就绪,执行转移指令,转至测试指令,继续测试I/O设备的状态。
    在这里插入图片描述
    在这里插入图片描述
    程序流程
    当需要启动某一I/O设备时,必须将该程序插入现行程序中,该程序包括:
    在这里插入图片描述

  • 由于这种方式传送数据时要占用CPU中的寄存器,故首先需将寄存器原内容保护起来(若该寄存器中存有有用信息)。

  • 由于传送往往是一批数据,因此需先设置I/O设备与主机交换数据的计数值。

  • 设置欲传送数据在主存缓冲区的首地址。

  • CPU启动I/O设备。

  • 将I/O接口中的状态标志取至CPU并测试I/O设备是否准备就绪。

    • 未准备就绪,等待直到准备就绪为止。
    • 准备就绪,接着可实现传送。
  • CPU执行I/O指令,从I/O接口的数据缓冲寄存器中读出一个数据,或把一个数据写入I/O接口中的数据缓冲寄存器内,同时将接口中的状态标志复位。

  • 修改主存地址

  • 修改计数值,若原设置技术值为原码,则一次减1
    若原设置计数值为负数的补码,则依次加1

  • 判断计数值。若计数值不为0,表示一批数据尚未传送完,重新启动外设继续传送;
    若计数值为0,则表示一批数据已传送完毕。

  • 结束I/O传送,继续执行现行程序。

程序查询方式的接口电路:

在这里插入图片描述

工作过程

  • 指令的设备码字段通过地址线送到设备选择电路
  • 设备码与地址线上的代码吻合,其输出SEL有效
  • I/O指令的启动命令经过"与非"门,将工作触发器B置“1”,将完成触发器D置“0”。
  • B触发器启动设备工作。
  • 输入设备将数据送至数据缓冲寄存器(DBR)
  • 由设备发设备工作结束信号,将D置“1”,B置“0”,表示外设准备就绪
  • D触发器将“准备就绪”状态通知给CPU,表示“数据缓冲慢”。
  • CPU执行输入指令,将数据缓冲寄存器中的数据传送至CPU的通用寄存器,再存入主存相关单元

程序中断方式:

I/O中断的产生
在这里插入图片描述
程序中断方式的接口电路:
1.中断请求触发器和中断屏蔽触发器
在这里插入图片描述
2.排队器
在这里插入图片描述
3.中断向量地址形成部件
在这里插入图片描述
4.程序中断方式接口电路的基本组成
在这里插入图片描述
中断处理过程:
在这里插入图片描述
在这里插入图片描述

DMA方式

DMA方式的特点
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43787365/article/details/106150172