IO通道方式是DMA方式的发展,它可以进一步减少CPU的干预,即把对一个数据块的读或写为一个单位的干预,减少为对一组数据块的读或写及有关的控制盒管理为单位的干预。同时,又可以实现CPU、通道和IO设备三者的并行操作,从而更有效的提高整个系统的资源利用率。
例如,当CPU要完成一组相关的读或写操作及有关控制时,只需向IO通道发送一条IO指令,已给出其所要执行的通道程序的首址和要访问的IO设备,通道接到该指令后,通过执行通道程序便可完成CPU指定的IO任务。
IO通道和一般处理器的区别是:通道指令的类型单一,没有自己的内存,通道所执行的通道程序释放在主机内存中的,也就是说通道与CPU共享内存。
IO通道与DMA的区别是:DMA方式需要CPU来控制传输的数据块大小、传输的内存位置,而通道方式中这些信息是由通道控制的。另外,每个DMA控制器对应一台设备与内存传递数据,而一个通道可以控制多台设备与内存的数据交换。
通道是独立于***处理器的,专门负责数据I/O传输工作的理单元。从现代计算机系统的结构上看,各种外部设备均有相应的设备控制器,这些设备控制器再通过通道连接在计算机系统的公共系统总线上。
通道对外部设备实行统一管理,它代替CPU对I/O操作进行控制,从而使CPU和外部设备可以并行工作。所以通道又称为I/O处理机。
采用通道这种I/O结构的最大优点是,可以实现***处理器和各种外部设备并行工作。
采用通道之后,处理器和外部设备都能够访问主存储器。不过,当处理器和外部设备同时申请访问主存储器时,就要竞争存储周期 。由主存储器的控制经路处理这些竞争,并保证这些访问同步有序地进行。
有了通道,利用***处理器和外部设备之间以及各外部设备之间的并行工作能力,操作系统就可以让多个程序同时执行,并在同一时刻让各个程序分别使用计算机系统的不同资源。
缓冲技术是用在外部设备与其他硬件部件之间的一种数据暂存技术,它利用存储器件在外部设备中设置了数据的一个存储区域,称为缓冲区。缓冲技术一般有两种用途,一种是用在外部设备与外部设备之间的通信上的,还有一种是用在外部设备和处理器之间的。
采用缓冲技术最根本的原因是,CPU处理数据速度与设备传输数据速度不相匹配,需要用缓冲区缓解其间的速度矛盾。
那么为什么不直接把数据送入用户工作区,而要设置缓冲区来暂存呢?如果把用户工作区直接作为缓冲区则有许多不便。首先,当一个用户从工作区向设备输出或从设备向工作区输入时,工作区被长期占用而使其他用户无法使用。其次,为了减少输入输出次数,以减轻对通道和输入输出设备的压力。第三,缓冲区信息可供多个用户共同使用以及反复使用,减少了不必要的信息传递工作,提高了效率,方便了对缓冲区的管理。