1.5、输入输出技术

简介

输入输出技术(I/O)讲的是 CPU控制我们的主存与外设之间进行数据交互的过程。在这个过程当中,外设它的速度比较慢,而主存的速度相对来说就比较快。这样就需要有一定的平衡。
在我们的考试当中,主要提到的控制方式有如下几种,分别是直接程序控制,程序中断方式简称中断、还有 DMA,输入输出处理机。需要大家掌握这几种控制方式各自的特点和比对。其中DMA和中断在考试当中出现的比较频繁

对于数据传输的控制方式,应该由谁来进行控制?CPU来控制。传输的过程当中,内存与外设之间进行交互,也就是内存与 I/O设备之间进行交互,内存它的速度比较快,外设它的速度往往比较慢。由此也就有了我们如下的这四种传输方式。

直接程序控制

它指的是外设数据的输入输出过程是在 cpu 执行程序的控制下完成的这种方式。
又分无条件传送和程序查询两种方式。

无条件传送

无条件传送外设总是准备好的,它可以无条件地随时接受 cpu 发来的输入输出数据。也能够无条件的随时向 cpu 提供所需要的输入数据。
这个在考试当中考的并不多,考试当中出现的比较多的是程序查询方式。

程序查询方式

它是一种最傻的方式。还有设备一经启动, cpu 就被占据了,因为启动到正式传输数据之前,有一个准备时间。在这个准备时间里,I/O设备还没有就绪,这个时候 cpu 就不断地问 I/O 接口 “are you ready?”, 这里的不断并不是一直的去问 “are you ready?”,等一小下问一次“are you ready?”,再等一小下,然后再问一次 “are you ready?”, 也就是说,我们的 cpu 的发问是一种1秒问多次的那种,并不是嘴不停的那种问法。那种嘴不停的问法叫做独占查询。

缺点

这种查询方式有如下的两个大缺点。

  • 降低了CPU的效率
    在这种工作方式下, cpu 它就不用做别的事了。它在不停的对外设的状态进行查询,不断的问 are you ready?
  • 对外部的突发事件无法做出实时响应
    在实际的应用当中,对于那些慢速的外设:在不想用外设工作的情况下,cpu 应该去做其他的任务,而不应该是一直的去等待I/O设备,如果它一直等待I/O设备的话,那么他对其他的外部的突发事件就没有办法做出实时的响应了。

程序中断方式

  • 利用中断方式完成数据的输入/输出
  • CPU接到中断请求信号后,保存正在执行程序的现场(要记住,首先做的事情)
  • 与程序控制方式相比,因为CPU无须等待而提高了效率

它是利用中断方式完成数据的输入和输出过程,当内存与外侧交互数据的过程当中, cpu 它无需等待,也不必去查询 I/O 的状态,而是可以抽出身来做其他的任务。当 I/O设备准备好以后,就会向 cpu 发出中断请求信号。

cpu 在接到中断请求信号之后,他首先要做的第一件事是保存正在执行的程序现场,然后转入 I/O 中断服务程序来进行执行。完成与 I/O 数据的数据交换,最后再返回被打断的程序,继续去执行与程序控制方式相比中断的方式。

因为 cpu 无需等待而提高了效率。

对于这个中断的响应,一些硬盘之类的快速设备,它是不适用的。因为硬盘太快,每次输入一个字就意味着进行一次中断,那 cpu 嘎嘎中断还干别的不?当然,咱们的鼠标和键盘。还是可以用这种方式的。

另外,如果在系统当中有多个中断源的话,也会有中断的处理方法。在书中列举到的常用的中断处理方法,主要有多中断信号线法(Multiple Interrupt Lines)、中断软件查询法(Software Poll)、菊花链法(Daisy Chain)、总线仲裁法和中断向量表法。因为终端处理方法在历年的考试当中出现的比较少。这部分内容就建议大家去看一看教材,了解一下就可以了。

DMA

在我们的计算机与 I/O、外设交互数据的过程当中,无论是无条件传送,或者说是利用查询方式传送,还是利用我们刚刚讲到的中断方式进行传送。这些都是由 cpu 通过执行程序来实现,也就是说都需要有 cpu 的参与,这个就限制了数据传输的速度。

DMA 它是在主存与 I/O设备,也就是我们说的外设之间建立了数据通路。进行数据的交换处理,在内存与 I/O设备之间传输一个数据块的过程当中是不需要 cpu 进行干预的,也就是说在DMA 传送过程中是不需要 cpu 的干预的,即使是在传送过程中也不需要 cpu 进行任何干涉。只需要 cpu 在过程开始(启动)的时候,向外设发出一条传送数据的命令。 然后在过程结束的时候, cpu 通过轮询或者中断得知过程是否结束,下一个操作是否准备就绪。

实际的操作都是由 DMA硬件直接执行完成, cpu 在这个传输过程当中就可以去做别的事去了。关于 DMA的传输过程?咱们的教材里面讲得很详细,建议有空的时候可以去看一看,了解一下。

这里给大家做一个简单的总结, DMA传输的一般过程总结起来就是:DMA 它单独开设了一条总线,这条总线将当 DMA的接口和主存连接了起来,至此出现了一条可以直达主存的线路,这样 cpu 就可以放下手中的活,安心去搞自己的事业了。

那么,既然 DMA 和 CPU 都可以实现被储存的访问,那么谁的优先级会比较高? 是DMA。因为采用 DMA方式的I/O设备通常是一些快速的I/O设备,比如说显卡、声卡、网卡。
如果你不把这些数据赶紧的放到主存当中,就会导致DMA自带的那点缓冲区域根本就承受不住这么多快速通过的数据,就可以导致数据丢失。所以 DMA在争用主存的优先权甚至超过了 CPU, 这就是周期挪动,或者说是周期窃取。如果CPU 正在被访问,那就等待 CPU 这次访问结束以后麻溜地抢过进入主存的权利。那DMA 它抢了多少时间?一般是一个存储周期。如果 cpu 未访问或者二者要同时访问,那么就是 DMA优先。
当然这里说的争用是一种单端口主存的情况,也就是主存只有一个端口,如果这个主存有两个端口或者多个端口,那么 CPU 和 DMA 也就不用争了。这种 CPU 让行 DMA的方式是主存避免冲突的一种办法,也是比较主流的一种办法。当然了,也可以让这二者交替地进行访问。
在此再强调说明,DMA传输过程当中是无需 CPU 的干预的。整个系统总线完全地交给了 DMAC, 由它控制系统总线完成数据的传送。在 DMA 传送数据时,需要占用系统总线。根据占用总线方法的不同, DMA可以分为中央处理器停止法、总线周期分时法和总线周期挪用法等(知道即可,不必细究)。无论采用哪种方法,在DMA传送数据期间,因为要占用系统总线,所以这个时候CPU不能使用总线。

总结

  • 在主存与1/O设备(外设)之间建立数据通路进行数据的交换处理
  • 在DMA传送过程中无须CPU的干预
  • DMA传送数据时要占用系统总线,此时,CPU不能使用总线

输入/输出处理机(IOP)

DMA方式的出现减轻了CPU对I/O操作的控制,使得CPU的效率显著提高,而通道的出现则进一步提高了CPU的效率。

通道是一个具有特殊功能的处理器,又称为输入输出处理器(Input/Output Processor,IOP),它分担了CPU的一部分功能,可以实现对外围设备的统一管理,完成外围设备与主存之间的数据传送。

有的计算机被装一个叫通道的硬件 I/O, 它不走 cpu 的内存,而是走这些通道,那有的人可能就会说了,这不就是 DMA 吗?只能说他俩有些相似,但不完全一样。因为你想要激活这个通道,就需要通道程序,这个通道程序几乎电脑上都有,而执行这个程序的它不是 CPU,是通道。

通道通过执行主存上的通道程序来激活自己,然后让数据经过通道的方式。它大大提高了CPU的工作效率,然而这种效率的提高是以增加更多的硬件为代价的。

我们平常使用电脑的时候,鼠标、键盘是利用中断的方式来响应的。
移动硬盘或者快速数据的传输,比如显卡、声卡、网卡这些都是用DMA的方式来进行传输的。

总结

  • 分担了CPU的一部分功能,可以实现对外围设备的统一管理,完成外围设备与主存之间的数据传送
  • 大大提高了CPU的工作效率,这种效率的提高是以增加更多的硬件为代价的

练习题

  1. DMA控制方式是在()之间直接建立数据通路进行数据的交换处理。(2019年上半年试题软设)
    A.CPU与主存
    B.CPU与外设
    C.主存与外设
    D.外设与外设

答案:C
CPU与主存用总线

  1. 计算机运行过程中,CPU需要与外设进行数据交换。采用()控制技术时,CPU与外设可并行工作。 (2017年下半年)
    A.程序查询方式和中断方式
    B.中断方式和DMA方式
    C.程序查询方式和DMA方式
    D.程序查询方式、中断方式和DMA方式

答案:B

  1. 异常是指令执行过程中在处理器内部发生的特殊事件,中断是来自处理器外部的请求事件。以下关于中断和异常的叙述中,正确的是()。(2021年上半年)
    A.“DMA传送结束”、“除运算时除数为0”都为中断
    B.“DMA传送结束”为中断、“除运算时除数为0”为异常
    C.“DMA传送结束”为异常、“除运算时除数为0”为中断
    D.“DMA传送结束”、“除运算时除数为0”都为异常

答案:B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yoyo勰

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值