计算机组成原理(哈工大刘宏伟)135讲(二)

第5章 输入输出系统

5.1 概述

输入输出系统的发展概况

在这里插入图片描述

输入输出系统的组成

1.I/O软件
在这里插入图片描述

  • 设备 通过 接口 连接在 总线 上,和 主机 进行信息交互

I/O设备与主机的联系方式在这里插入图片描述

  • I/O设备编址方式 :
    1.统一编址 :就是把 I/O设备的地址 看成是 内存地址的一部分;这种情况下,cpu可以直接利用取数或者存数指令对I/O设备进行访问/控制,不需要单独的I/O指令,只要取数(存数)指令中的地址落在了I/O设备;如果内存系统的编址空间比较大,就可以使用这种
    2.不统一编址 :在内存地址空间以外专门设立一个地址空间,为了区分一条指令 究竟是对 内存进行操作还是I/O进行操作,在单独编址的计算机中,输入输出系统就不能再采用计算机系统原有的取数存数指令,要有专用的I/O指令对它控制

  • 数据传送方式 :(与第三章同)
    1.串行 :数据一位一位的进行传输,传输速度比较慢,但适合进行 远程传输
    2.并行 :同时有多位数据在数据线上传输,通常数据线的条数是8的倍数
    在这里插入图片描述

  • 联络方式 :主要是外部设备接收或者发送数据的相应情况
    异步 分成 两种,可以 并行传输,也可以 串行传输;cpu与接口之间一般都是并行传输
    同步工作 :设备和主机之间如果要 同步工作 的话,必须有一个定宽定距的时标,来控制在某一个时间点必须开始某一项工作,在某一个时间点某一项工作必须结束
    在这里插入图片描述

  • 连接方式 :
    辐射式连接 :其实就是 分散式连接,增加一个I/O设备,在主机中就需要增加一套控制电路,对这个设备进行控制,早期由于外部设备数量比较少,采用这种方式,而现在外部设备越来越多,不合适
    总线连接 :外部设备 通过 接口,和主机进行连接,接口可以向外部设备传送主机的控制命令,可以向主机传送外部设备的状态信息,同样,接口还可以完成信息传送,还可以用来在接口缓存;只要外部设备采用标准接口的方式,就可以增删设备

I/O设备与主机信息传送的控制方式

在这里插入图片描述

  • 程序查询方式 :
    这是最早的方式
    在这种方式中,cpu与外设采用 串行 方式进行工作
  • 程序中断方式 :
    这种方式中cpu实现了与I/O设备之间 部分的并行工作,也就是在I/O设备进行数据准备时,cpu还可以执行自己的程序,不需要停
  • DMA方式 :
    这种方式把cpu进一步的从 数据的输入输出 这个工作中解放出来,使外部设备与内存之间可以建立直接的的连接,由dma接口,或者dma控制器直接控制外部设备和内存之间进行数据交换

在这里插入图片描述

  • 这种方式,cpu效率非常低;这种方式中,内存与I/O之间要想进行数据交换的话,必须要通过cpu,先要送入cpu之中
    在这里插入图片描述
    在这里插入图片描述

  • 是对第一种方式的一个改进,在这种方式中,cpu一定程度上从数据的输入输出工作中解放出来

  • I/O工作可以分成两个阶段 :1.数据准备阶段,也就是自身准备;2.才是与主机交换信息。在程序查询方式中,这两个阶段cpu都要工作都要参与。而在 中断方式中,第一个阶段是cpu与I/O是 并行工作的

  • 在 中断 方式中,要想输入一个数据,把它输入到内存中去,依然是先要把这个数据读入cpu,然后从cpu写入到内存,或者是发给I/O设备。也就是说,即使是中断方式,内存、cpu、I/O设备这三者的关系,依然是cpu在两者的中间,内存和外设在两边,它们两者之间如果要进行信息的传输,依然需要cpu的参与,所以即使是在 中断 的方式中,数据的传输过程,依然需要cpu来做
    在这里插入图片描述

  • DMA方式中,cpu被进一步的从数据的输入输出工作中解放出来

  • 这种方式,在内存和I/O之间建立了直接的通路

  • 在这个周期中,cpu不能使用总线对内存进行访问,这个周期结束以后,I/O设备可以继续进行准备,cpu可以继续执行现行的程序,也就是说,这个周期结束后,总线的控制权、对内存的使用权又归还给了cpu,在这一个存取周期中,cpu虽然不能使用系统的总线,不能使用内存,不能进行访存操作,但是在这个周期中,cpu还是可以执行
    在这里插入图片描述
    在这里插入图片描述

5.2 I/O设备

概述

在这里插入图片描述

输入设备

在这里插入图片描述

输出设备

在这里插入图片描述

其他、多媒体技术

在这里插入图片描述

5.3 I/O接口

概述

在这里插入图片描述

接口的功能和组成

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

  • 状态标记 由 触发器 实现
    在这里插入图片描述

接口类型

在这里插入图片描述

5.4 程序查询方式

程序查询流程

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

  • 因为 程序查询方式 中,要完成内存与外设之间数据的输入输出,需要借助cpu中的某一个寄存器对数据进行暂存
  • 设置计数器的值,是为了控制我们传输的数据量
  • 设置计数值,有两种方式 :1.如果我们要传输n个字,计数器的值就设为n,每完成一个字的传输,计数器的值就减1,直到减为0;2.把计数器的值设为-n,并且这个负数用补码来表示,直到计数器发生溢出,里面的值变为0
  • 设置计数值后,为了完成内存与I/O之间数据传输,我们要知道内存的这个块的起始地址,因此要设置主存缓冲区的地址,我们保存数据或者读取数据就从这个缓冲区的起始地址开始
  • 然后就可以启动外部设备,然后,因为我们是 程序查询方式,cpu开始查询I/O接口的状态是否准备好,如果没有准备好,cpu就原地踏步反复进行查询,一直到状态标志表明数据已经准备好了,这个查询才会停止,
  • 传送好后,修改主存地址,+1或者-1,为输入或者输出下一个数据进行准备,同时,为了表面还有多少数据需要传输,计数器的值也要进行修改,+1或者-1

程序查询方式的接口电路

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

  • 首先需要 SEL信号 有效且 启动命令 有效,这个I/O接口电路才会开始工作
  • 以 输入数据 为例 :
    cpu通过 地址线 给出外部设备的地址
    设备选择电路把自己的地址或者端口号和地址线上的地址进行比较,如果相同,说明这次启动的是连接在这个接口上的设备,SEL这个信号会有效
    在启动命令和SEL都有效的前提下,我们对两个状态标记进行质问,到目前为止,是cpu发出读命令,设备还没开始工作,因此 标记D 应该为0,表示数据还没有准备好
    B1后,表示设备忙,设备开始工作,把数据准备好,并且通过输入的数据线把它保存到DBR,此时,设备的工作结束,设备会通过设备的状态线向接口电路送入工作结束信号,这个信号会修改接口电路中的两个标记,此时,标记D应该被修改为1,表示数据已经准备好了,同时标记B被改为0,表示设备已经工作完成,不忙了
    在这个过程中,一直到D信号变成1之前,cpu都在原地踏步进行查询,就是查询D是否变成了1,查询到D为1说明数据已经被放入到DBR中了,cpu可以进行数据传输了,cpu就通过数据线把数据进行读入

5.5 程序中断方式

中断的概念

在这里插入图片描述

  • 中断 指的是,cpu在执行程序的过程中,如果发生意外事件,或者特殊事件,cpu要中断当前程序的处理,或者当前程序的执行,转而去处理特殊事件,或者是异常事件;处理结束后,要返回到被中断程序的程序断点继续执行原来程序

I/O中断的产生

在这里插入图片描述

程序中断方式的接口电路

在这里插入图片描述

  • 程序中断方式的接口电路,除了选址、数据缓存等等,还需要图上这些
  • 1.需要 中断请求标志,由外设对中断请求标志进行设置,表示有中断请求;这个中断请求标志能否变成中断请求信号向cpu发出中断请求,还要看这个中断请求标志是否会被屏蔽掉,所以我们需要一个中断屏蔽触发器,因为有的时候,计算机正在执行的程序,或者正在执行的中断服务程序,它的重要性要比这个设备提出的中断请求的重要性要高,那么这个中断标志就会被屏蔽掉,不会对cpu发出中断请求
  • 2.我们要用 排队电路,在同一个时刻,向cpu发出中断请求的可能有多个设备,这些设备的优先级不同,比如高速设备的优先级比较高,不然保存的数据可能丢失。经过排队器后,只有优先级最高的那个设备提出的中断可以被响应
  • 如果要响应这个中断,去执行中断服务程序,cpu必须要知道中断服务程序的入口地址,也就是中断服务程序在内存中的起始地址,因此要采用 中断向量地址形成部件

在这里插入图片描述

  • 当 完成触发器D =1时,设备已经准备好数据了并且把数据放在了DBR中,MASK若为0不被屏蔽,此时,中断请求触发器被设置为1,表示有中断请求,另外,指令执行周期结束前,cpu会发出中断查询信号,这个中断查询信号会是INTR的D端的输入,产生中断请求

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

  • 排队有两种方式,一种是通过硬件实现,另一种是软件

  • 有两种方式完成硬件实现 :将排队电路集中放在cpu内部,也可以把硬件的排队电路放在每一个接口中,然后连接在一起,组成一个链,这样是链式排队器

  • 软件方式实现排队,实际上是通过查询的方法,中断的优先级在一个表格中进行规定

  • 图上是 链式排队器
    在这里插入图片描述

  • 中断向量,可以理解成中断服务程序的入口地址

  • 向量地址 指的是 中断向量保存的内存单元的地址
    在这里插入图片描述

I/O中断处理过程

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

中断服务程序流程

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

5.6 DMA方式

DMA方式的特点

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

  • 这里提到的 周期 ,指的是 访存周期(内存访问周期)

  • 这种情况下,与上一种相比,cpu可以利用这个 间隙 进行访存操作,使主存储器和总线的利用率更高
    在这里插入图片描述

  • 这种方式中,由于不需要DMA提出申请,建立对总线的控制权和对内存的使用权,因此,速度会比较快

DMA接口的功能和组成

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

DMA的工作过程

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

DMA接口的类型

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

  • 通道 也是一种 小型的DMA接口
    在这里插入图片描述

  • 速度越高的设备,优先级 越高

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值