计算机组成原理 | 输入输出系统


在这里插入图片描述

输入输出系统系统和I/O控制方式

在这里插入图片描述

现代计算机的结构

在这里插入图片描述

常见的I/O设备

  • 可统称为“外部设备”

在这里插入图片描述

主机如何与I/O设备进行交互?

在这里插入图片描述

I/O控制器(I/O接口)

在这里插入图片描述

I/O控制方式简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DMA控制方式

在这里插入图片描述
在这里插入图片描述

通道控制方式

在这里插入图片描述
在这里插入图片描述

I/O系统的基本组成

在这里插入图片描述
在这里插入图片描述

外部设备

在这里插入图片描述
在这里插入图片描述

输入设备

在这里插入图片描述

输出设备

显示器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

阴极射线管(CRT)显示器

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

打印机

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

I/O接口

在这里插入图片描述

主机如何与I/O设备进行交互?

在这里插入图片描述

I/O接口的作用

在这里插入图片描述

I/O接口的连接电路

在这里插入图片描述

I/O接口

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

I/O接口的工作原理

在这里插入图片描述

接口与端口

在这里插入图片描述

统一编址 v.s. 独立编址

在这里插入图片描述

I/O端口及其编址

在这里插入图片描述
在这里插入图片描述

I/O接口的类型

在这里插入图片描述
在这里插入图片描述

I/O方式——程序查询方式

在这里插入图片描述

程序查询方式

在这里插入图片描述
在这里插入图片描述

  1. CPU向打印机发出打印的命令字,用I/O指令OUT输出打印指令,经过打印机驱动程序的处理已经将启动打印的命令字放到寄存器R1中了,然后把它输出到Rn+1的输出端口
  2. CPU在地址线指明此时要输出的端口的地址是Rn+1
  3. 然后再通过控制线指明此时是要对哪个I/O端口进行写操作,把命令字数据通过数据线传到状态/控制寄存器即可
  4. 相关的I/O控制逻辑电路根据CPU发过来的命令信号通过控制线给打印机发出相应的控制信号
  5. I/O设备接收到I/O命令就可以开始启动了,当设备启动准备工作完成之后会通过状态线给I/O接口进行反馈
  6. I/O接口接收到设备的ready反馈信号之后会把这个ready信息存放到状态/控制寄存器中,覆盖里面原先的命令字
  7. 在此期间CPU会通过这个数据线一直轮询检查状态寄存器是否已经变成ready已经就绪的状态,但是怎么实现轮询检查呢?就是通过IN指令,CPU可以不断执行输入IN这个I/O指令,把状态/控制寄存器的值不断地读到一个寄存器里面,就可以取得状态寄存器里面的值,CPU再测试取得的状态信息是否已经ready就OK了
  8. 就绪之后,CPU就可以给打印机输出第一个字符的信息,通过地址线指明此时要输出的端口的地址是Rn+1,通过控制线指明此时是要往I/O端口里面写入数据,同时通过数据线把字符信息打到数据线上,这3个信号就会导致字符数据被写入数据缓冲寄存器上面
  9. 接下来会由I/O控制逻辑会把这个字符的信息传到外设界面控制逻辑再通过数据线输出给打印机并通过控制线发出相应的控制信号
  10. 打印完成之后会给I/O接口反馈打印已完成的信号,I/O接口会再次把状态寄存器由忙碌改为就绪的状态
  11. 以此类推,直至处理完所有的数据,此时打印工作全部结束,CPU会在驱动程序的帮助下给这个打印机发出一个停机的命令字,在I/O接口的控制下停机的信号同样会被传给打印机,打印机的工作就此停止

程序查询方式流程图

在这里插入图片描述

程序查询方式例题

在这里插入图片描述

在这里插入图片描述

中断的作用和原理

中断的基本概念

在这里插入图片描述
在这里插入图片描述

中断请求的分类

在这里插入图片描述

中断请求标记

在这里插入图片描述

中断判优

实现

在这里插入图片描述

优先级设置

在这里插入图片描述

中断处理过程

中断隐指令

在这里插入图片描述
在这里插入图片描述

硬件向量法

在这里插入图片描述

  • 两级指针避免了一级指针中服务程序修改导致硬件电路也得修改的弊端,一旦中断服务程序修改我们只需修改主存中的中断向量即可
中断服务程序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

多重中断

单重中断与多重中断

在这里插入图片描述
在这里插入图片描述

  • 要保证保护现场和恢复现场时的原子性,保证其一气呵成地保存或恢复完所有现场,不被其他中断程序中断

在这里插入图片描述

  • 中断屏蔽字指明了当CPU在处理这个中断源发来的中断请求的时候,应该屏蔽掉其它的哪些中断源的中断请求
  • 比如上图中,如果给键盘设置4个全1的中断屏蔽字,那么当CPU在处理键盘的中断请求的时候,键盘的这4个比特中断屏蔽字就可以保证与键盘相对应的中断服务程序不可以再被中断

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

扩展(简单了解即可)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

I/O方式——程序中断方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

I/O方式——DMA方式

DMA传送方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DMA传送方式具体过程

在这里插入图片描述

  • 预处理的这一阶段,CPU会向这个DNA控制器指明接下来你要读或者要写的那个数据应该存放在主存当中的什么位置,那这个主存的读写指针,这个寄存器英文缩写叫AR,然后还有一个寄存器,就是用于指明设备的读写地址,这个寄存器英文缩写叫DAR,那除此之外还要指明要传送多少个数据,这个寄存器的英文缩写叫WC
  • 好,那这些事情交代清楚之后是不是就可以启动I/O设备了?接下来就会由DMA控制器控制着数据传送的过程,那对于CPU来说,它可以继续执行之前的程序,CPU不用管这个数据传送的过程
  • 那么如果此时我们要输入一个数据,那设备首先是把数据充到DR这个寄存器里边,同时向DMA触发器发出一个高电平信号,让它变为1,当这个控制逻辑检测到DMA请求,检测到这个一个字的传送已经完成之后,它就会向CPU申请总线的控制权,那申请总线的控制权这个信号的英文缩写是HRQ,现在如果说系统总线可以让给DMA控制器使用的话,CPU就会给他一个反馈的信号,这个反馈的信号英文缩写叫HLDA
  • 现在DMA控制器获得了总线的控制权是不是就可以通过控制线、地址线、数据线给主存发出读或者写的命令,那我们这儿说的是数据输入,所以应该是给主存发一个写的命令,同时把数据缓冲寄存器里这几个bit的信息打到数据线上,然后把主存的地址信息打到地址线上,这样的话就完成了一个字的数据传输,那数据传输完了之后,需要让这个主存的地址自动的后移,同时也需要修改这个长度计数器
  • 那这就是一个字的传输,那传输完多个字之后,这个长度计数器会发生溢出,然后这个溢出信号会传送给中断机构,中断机构检测到溢出信号之后会向CPU发出中断请求。接下来CPU在对DMA的中断信号进行一个处理
  • 注意这里DMA请求和DMA中断请求是不一样的两个东西,发生DMA请求的时候意味着我们要和主存传送一个字的数据,而发生DMA中断请求的时候意味着一整块的数据传输已经完成了,所以DMA请求和DMA中断请求是不一样的,不要搞混
  • 那刚才我们捋清楚了数据传送的过程,那数据传送完了之后,CPU收到中断请求就会进行后处理,也就是运行相应的中断服务程序,然后做DMA结束的处理,反正就是做一些善后的工作,做完这些工作之后,CPU继续回去执行主程序就可以
  • 相比于上一小节介绍的程序中断方式来说,程序中断方式,每一个字的传送都需要CPU进行搬运,但是DMA控制器意味着会有DMA,这个小弟帮CPU搬完一整块的数据之后,CPU再进行一次响应,一次处理就可以

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DMA方式的特点

  • 上面的DMA方式在传送数据的过程中需要不断地占用系统总线,系统总线是被CPU管理的,由CPU决定要不要把这个系统总线使用权分配给DMA控制器,如果系统总线分配给DMA就意味着CPU暂时不能访问主存
  • 但是现在我们换一种总线的连接方式,就是我们之前提到过的三总线连接方式

在这里插入图片描述
在这里插入图片描述

  • 为什么要I/O优先呢?原因很简单,如果DMA里面的数据不及时取出的话有可能被后来的数据给重写覆盖导致数据的丢失

DMA方式与中断方式

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ErizJ

觉得好的话给小弟一点鼓励吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值