计算机的I/O设备及I/O设备控制方式(DMA、IO通道)

I/O设备

除了CPU和主存外,计算机系统的每一部分都可作为一个外围设备来看待。外围设备的功能是在计算机和其他机器之间,以及计算机与用户之间提供联系。

五大类外围设备:
在这里插入图片描述

设备控制器

IO设备一般是由执行IO操作的机械部分和执行控制IO的电子部件组成。通常将这两部分分开,执行IO操作的机械部分就是一般的IO设备,而执行控制IO的电子部件则称为设备控制器或适配器。
在这里插入图片描述
可见,设备并不是直接与CPU进行通信,而是与设备控制器通信。
设备控制器的主要功能就是控制一个或多个IO设备,以实现IO设备和计算机之间的数据交换。它是CPU和IO设备之间的接口,接收从CPU发来的命令,去控制IO设备工作,使处理机能够从繁杂的设备控制事务中解脱出来。

对IO设备的控制方式

我们知道,数据存入、输出内存都必须得经过CPU的通用寄存器。当数据传输完毕过后,CPU会被设备控制器中断,CPU进而处理中断程序。CPU还要将传来的数据写入内存或是把要输出的数据发送给IO设备。当大量IO操作出现时,CPU的搬运数据的工作量就会非常大。

所以,需要采取某些控制方法把主机从繁杂的IO控制事务中解脱出来,尽量减少主机对IO控制的干预,以便更多地去完成数据处理任务。

DMA(直接内存访问)

直接内存访问(DMA),是一种完全由硬件执行IO交换的工作方式。DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和IO设备之间进行。 DMA一般用于高速传送成组数据。
DMA方式的主要优点是速度快。由于CPU根本不用参加传送操作,因此就省去了CPU取指令、取数、送数等操作。

在这里插入图片描述
工作流程:
1、当外设准备好发送数据(输入)或接受数据(输出)时,它发出DMA请求。
2、CPU在指令周期执行结束后响应该请求,之后,CPU与系统总线脱离,而DMA控制器接管数据总线和地址总线,并向内存提供地址。
3、于是,在内存和外设之间进行数据交换,每交换一个字,则地址计数器和字计数器加“1”。
4、当计数值到达零时,DMA操作结束,DMA控制器向CPU提出中断报告。
5、CPU响应中断请求,停止主程序的执行,转去执行中断服务程序,做一些DMA的结束处理工作。

DMA的数据传送是以数据块为基本单位进行的,因此,每次DMA控制器占用总线后,无论是数据输入操作,还是输出操作,都是通过循环来实现的。当进行输入操作时,外设的数据(一次一个字或一个字节)传向内存;当进行输出操作时,内存的数据传向外设。

通道

DMA控制器的出现已经减轻了CPU对数据输入输出的控制,使得CPU的效率有显著的提高,但CPU每发出一条IO指令,也只能去读写一个连续的数据块,而当我们需要一次去读多个数据块且将他们分别传送到不同的内存区域,或者相反时,则必须由CPU分别发出多条IO指令及进行多次中断处理才能完成。(即有大量的IO请求,CPU的干预还是会很多),而通道的出现则进一步提高了CPU的效率。

IO通道是DMA的发展,也是一种由硬件执行IO交换的方式,只不过IO通道是一个完全独立的处理器,专门用于IO操作,有自己独立的执行命令。
DMA方式:CPU每发出一条IO指令,只能完成一种IO操作,然后被中断。
通道方式:CPU只需要发出一条IO指令,就可以完成多种IO操作,之后被中断。

在这里插入图片描述
通道是通过执行通道程序并与设备控制器共同实现对IO设备的控制。通道程序是由一系列通道指令所构成的。通道指令与机器指令不同。

例如:当CPU要完成一组相关的读写操作及有关控制时,只需向IO通道发送一条IO指令,以给出其所要执行的通道程序的首地址和要访问的IO设备,通道接到该指令后,通过执行通道程序便可以完成CPU指定的IO任务。

下面是一个由六条通道指令所构成的简单通道程序。
在这里插入图片描述
该程序的功能是将内存中不同地址的数据写成多个记录。其中,前三条指令是分别将813~892中的80个字符和1034 ~1173中的140字符即5830 ~ 5889中的60个字符写成一个记录。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

GuochaoHN

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

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

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

打赏作者

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

抵扣说明:

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

余额充值