1. 外围设备的定时
外围设备的种类相当繁多,有机械式和电动式、也有电子式和其他形式。其输入信号可以是数字式的电压也可以是模拟式的电压和电流。从信息传输速率来讲,相差也很悬殊。如果把高速工作的处理机同不同速度工作的外围设备相连接,那么首先遇到的一个问题,就是如何保证处理机与外围设备在时间上同步?这就是我们要讨论的外围设备的定时问题。
首先,我们来学习一下输入/输出设备同CPU交换数据的过程:
输入过程:
(1)CPU把一个地址值放在地址总线上,这一步将选择某一输入设备;
(2)CPU等候输入设备的数据成为有效;
(3)CPU从数据总线读入数据,并放在一个相应的寄存器中。
输出过程:
(1)CPU把一个地址值放在地址总线上,选择输出设备;
(2)CPU把数据放在数据总线上;
(3)输出设备认为数据有效,从而把数据取走。
从上述输入/输出的过程看出,问题的关键在于:究竟什么时候数据才成为有效? 很显然,由于输入/输出设备本身的速度差异很大,因此,对于不同速度的外围设备,需要有不同的定时方式,总的说来,CPU与外围设备之间的定时,有以下三种情况:
(1)速度极慢或简单的外围设备
对于这一类设备,CPU认为数据一直有效,CPU只要接收或发送数据就可以了。
例如:对机械开关来讲,CPU可以认为输入的数据一直有效,因为机械开关的动作相对CPU的速度来讲是非常慢的;
对显示二极管来讲,CPU可以认为输出一定准备就绪,因为只要给出数据,显示二极管就能进行显示。
(2)慢速或中速的外围设备
由于这类设备的速度和CPU的速度并不在一个数量级,或者由于设备(如键盘)本身是在不规则时间间隔下操作的。因此,CPU与这类设备之间的数据交换通常采用异步定时方式。其定时过程如下:
如果CPU从外设接收一个字,则它首先询问外设的状态,如果该外设的状态标志表明设备已“准备就绪”,那么CPU就从总线上接收数据。CPU在接收数据以后,发现输入响应信号,告诉外设已经把数据总线上的数据取走。然后,外设把“准备就绪”的状态标志复位,并准备下一个字的交换。如果外设没有“准备就绪”那么它就发出“忙”的标志。于是,CPU将进入一个循环程序中等待,并在每次循环中询问外设的状态,一直到外设发出“准备就绪”信号以后,才从外设接收数据。
CPU发送数据的情况也与上述情况相似,外设先发出请求输出信号,而后,CPU询问外设是否准备就绪。如果外设已准备就绪,CPU便发出准备就绪信号,并送出数据。外设接收数据以后,将向CPU发出“数据已经出走”的通知。
通常,把这种在CPU和外设之间用问答信号进行定时的方式叫做应答式数据交换。
(3)高速的外围设备
由于这类外设是以相等的时间间隔操作的,而CPU也是以等间隔的速率执行输入/输出指令的,因此,这种方式叫做同步定时方式。一旦CPU和外设发生同步,它们之间的数据交换便靠时钟脉冲控制来进行。
更快的同步传送要采用直接内存访问(DMA)方式。
2. 信息交换方式
(1)程序查询方式
程序查询方式是早期计算机中使用的一种方式。数据在CPU和外围设备之间的传送完全靠计算机程序控制,优点是CPU的操作和外围设备的操作能够同步,硬件结构比较简单。但问题是,外围设备动作很慢,程序进入查询循环时将白白浪费掉CPU很多时间。这种情况下,CPU此时只能等待,不能处理其他业务。即使CPU采用定期地由主程序转向查询设备状态的子程序进行扫描轮询的办法,CPU宝贵资源的浪费也是可观的。
(2)程序中断方式
中断是外围设备用来“主动”通知CPU,准备送出输入数据或接收输出数据的一种方法。通常,当一个中断发生时,CPU暂停它的现行程序,而转向中断处理程序,从而可以输入或输出一个数据。当中断处理完毕后,CPU又返回到它原来的任务,并从它停止的地方开始执行程序。这种方式节省了CPU宝贵的时间,是管理I/O操作的一个比较有效的方法。中断方式一般适用于随机出现的服务,并且一旦提出要求,应立即进行。
(3)直接内存访问(DMA)方式
用中断方式交换数据时,每处理一次I/O交换,约需几十微秒到几百微秒。对于一些高速的外围设备,以及成组交换数据的情况,仍然显得速度太慢。直接内存访问(DMA)方式是一种完全由硬件执行I/O交换的工作方式。这种方式既考虑到中断响应,同时又要节约中断开销。此时,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和外围设备之间进行,以高速传送数据。这种方式主要优点是数据传送速度很高,传送速率仅受到内存访问时间的限制。与中断方式相比,需要更多的硬件。DMA方式适用于内存和高速外围设备之间大批数据交换的场合。
(4)通道方式
DMA方式的出现已经减轻了CPU对I/O操作的控制,使得CPU的效率有显著的提高,而通道的出现则进一步提高了CPU的效率。这是因为,CPU将部分权力下放给通道。通道是一个具有特殊功能的处理器,某些应用中称为输入输出处理器(IOP),它可以实现对外围设备的统一管理和外围设备与内存之间的数据传送。这种方式大大提高了CPU的工作效率。然而这种提高CPU效率的办法是以花费更多硬件为代价的。
(5)外围处理机(PPU)方式
外围处理机方式是通道方式的进一步发展,基本上独立于主机工作结构更接近于一般的处理机,甚至就是微小型计算机。在一些系统中,设置了多台PPU,分别承担I/O控制、通信、维护诊断等任务,从某种意义上说,这种系统已经变成了分布式多机系统。
综上所述,外围设备的输入/输出方式可用下图来表示。

程序查询方式和程序中断方式适用于数据传输率比较低的外围设备,而DMA方式、通道方式适用于数据传输率比较高的设备。目前,程序中断方式和DMA方式多用于微型机中,通道方式用在大型计算机中。在以下的章节中,我们主要介绍程序查询方式、程序中断方式、直接内存访问(DMA)方式这三控制方式。