【正确答案】
【答案解析】DMA卡是插接在总线插槽上的一块逻辑线路板,它的一端通过总线与计算机主存储器连接,另一端通过电缆与高速设备连接。一块功能完备的DMA卡的组成通常应包括一般通用可编程接口卡的全部组成部分,例如设备识别逻辑(片选信号)、控制/状态逻辑、数据缓冲电路、中断处理逻辑等,同时又要多出其他几个组成部分,例如主存储器的地址计数器、数据数量计数器、DMA请求线路等。
(1)主存地址计数器:存放读/写主存用到的主存地址,一批数据传送开始前,由CPU写入其初值,以后每传送一个字,该地址计数器便加1,使其指向下一个主存单元。
(2)数据数量计数器:存放传送数据的数量,通常用补码给出,由CPU写入其初值,以后每传送一个字,该计数器便加1,当计数到0时,表示这批数据传送完毕,此时DMA应向CPU发中断请求信号。
(3)DMA的控制/状态逻辑:由控制和状态等逻辑电路组成,用于修改主存地址计数器和数据数量计数器,指定传送功能(输入还是输出),协调CPU和DMA信号的配合与同步。
(4)DMA请求(与屏蔽)触发器:接收并记忆设备送来的请求数据传送信号,该触发器的“1”输出端接到DMA的控制/状态逻辑,使其向CPU发出DMA请求信号,CPU接到这一请求信号并响应后,送回应答信号,DMA的控制/状态逻辑接到这一应答信号后便取得了总线的使用权,启动数据传送,将DMA请求触发器清“0”,为下一次的请求做好准备。
(5)数据缓冲寄存器:用于存放高速设备与主存之间交换的数据,也有的DMA卡上不设置数据缓冲寄存器,而由送出数据的一方在指定的时刻直接把数据放到数据总线上。
(6)中断机构:与通用接口中的中断逻辑电路的组成完全相同,中断请求发生在数据数量计数器计数到0值的时刻,用于向CPU报告本组数据传送完成,并等待新的传送命令。