• 内容讲解

最简单的DMA控制器,一个控制器只控制一个I/O设备,而在实际应用中情况要复杂得多,因此通常采用选择型DMA控制器和多路型DMA控制器。

1. 选择型DMA控制器

选择型DMA控制器在物理上可以连接多个设备,而在逻辑上只允许连接一个设备。换句话说,在某一个时间段内只能为一个设备提供服务。

选择型DMA控制器的工作原理与基本DMA控制器大致相同。除了前面提到的基本逻辑部件外,还有一个设备号寄存器。数据传送是以数据块为单位进行的,在每个数据块传送之前的预置阶段,除了用程序中的I/O指令给出数据块的传送个数、起始地址、操作命令外,还要给出所选择的设备号。从预置开始,一直到这个数据块传送结束,DMA控制器只为所选的设备提供服务。下一次预置时再根据I/O指令指出的设备号,为所选择的另一设备提供服务。显然,选择型DMA控制器相当于一个逻辑开关,根据I/O指令来控制此开关与某个设备连接。

选择型DMA控制器只增加了少量的硬件就达到为多个外围设备提供服务的目的,它特别适合于数据传输率很高甚至接近于主存存取速度的设备,在高速传送完一个数据块后,控制器又可为其他设备提供服务。

2. 多路型DMA控制器

与选择型DMA方式相比,多路型DMA不仅在物理上可以连接多个外围设备,而且在逻辑上也允许这些外围设备同时工作,各个设备以字节交叉方式通过DMA控制器进行数据传送。

多路型DMA控制器适合于同时为多个慢速外围设备提供服务。

多路型DMA控制器可以对多个独立的DMA通路进行控制。当某个外围设备请求DMA服务时,操作过程如下:

(1)DMA控制器接到设备发出的DMA请求,将请求转送到CPU。

(2)CPU在适当的时刻响应DMA请求。若CPU不需要占用总线则继续执行指令;若CPU需要占用总线则进入等待状态。

(3)DMA控制器接到CPU的响应信号后,进行以下工作:①对现有DMA请求中优先权最高的请求予以响应;②选择相应的地址寄存器的内容来驱动地址总线;③根据所选设备操作寄存器的内容,向总线发出读、写信号;④外围设备向数据总线传送数据,或从数据总线接收数据;⑤每个字节传送完毕后,DMA控制器使相应的地址寄存器和长度寄存器加“1”或减“1”。

以上是一个DMA请求的过程,在一批数据传送过程中,要多次重复上述过程,直到外围设备表示一个数据块已传送完毕,或该设备的长度控制器判定传送长度已满。