单选题
以下关于在I/O设备与主机间交换数据的叙述中,错误的是 (26) 。
A.中断方式下,CPU需要执行程序来实现数据传送
B.中断方式和DMA方式下,CPU与I/O设备都可同步工作
C.中断方式和DMA方式相比,快速I/O设备更适合采用中断方式传递数据
D.若同时接到DMA请求和中断请求,CPU优先响应DMA请求
【正确答案】
C
【答案解析】[解析] I/O系统主要有4种方式与主机交换数据,分别是程序直接控制方式、中断控制方式、DMA方式和通道方式。
(1)程序直接控制方式。CPU直接利用I/O指令编程,实现数据的输入/输出。CPU发出I/O命令,命令中包含了外设的地址信息和所要执行的操作,相应的I/O系统执行该命令并设置状态寄存器;CPU不停地(定期地)查询I/O系统以确定该操作是否完成。由程序主动查询外设,完成主机与外设间的数据传送,方法简单,硬件开销小。
(2)中断控制方式。CPU利用中断方式完成数据的输入/输出,当I/O系统与外设交换数据时,CPU无须等待也不必去查询I/O的状态,I/O系统完成数据传输后以中断信号通知CPU。CPU然后保存正在执行程序的现场,转入I/O中断服务程序完成与I/O系统的数据交换。之后返回原主程序继续执行。与程序直接控制方式相比,中断控制方式因为CPU无须等待而可提高效率。在系统中具有多个中断源的情况下,常用的处理方法有:多中断信号线法、中断软件查询法、雏菊链法、总线仲裁法和中断向量表法。
(3)DMA方式。使用DMA控制器(DMAC)来控制和管理数据传输。DMAC和CPU共享系统总线,并且具有独立访问存储器的能力。在进行DMA时,CPU放弃对系统总线的控制而由DMAC控制总线;由DMAC提供存储器地址及必需的读写控制信号,实现外设与存储器之间的数据交换。DMAC获取总线的3种方式是暂停方式、周期窃取方式和共享方式。
(4)通道方式。通道是一种通过执行通道程序管理I/O操作的控制器,它使主机与I/O操作之间可达到更高的并行程度。在具有通道处理机的系统中,当用户进程请求启动外设时,由操作系统根据I/O要求构造通道程序和通道状态字,将通道程序保存在主存中,并将通道程序的首地址放到通道地址字中,然后执行“启动I/O”指令。按照所采取的传送方式,可将通道分为字节多路通道、选择通道和数组多路通道3种。
程序直接控制方式和中断控制方式都只适用于简单的、外设很少的计算机系统,因为程序直接控制方式会耗费大量的CPU时间,而且无法检测发现设备或其他硬件产生的错误,设备与CPU、设备与设备之间只能串行工作。中断控制方式虽然在某种程度上解决了上述问题,但由于中断次数多,CPU仍需要花费较多的时间处理中断,而且能够并行操作的设备台数也会受到中断处理时间的限制,中断次数增多也会导致数据丢失。
DMA方式和通道方式较好地解决了上述问题。这两种方式采用了外设和内存直接交换数据的方式。只有在一段数据传送结束时,才发出中断信号要求CPU做善后处理,从而大大减少CPU的工作负担。DMA方式与通道控制方式的区别是,DMA方式要求CPU执行设备驱动程序来启动设备,给出存放数据的内存起始地址及操作方式和传送字节长度等;而通道控制方式则是在CPU发出I/O启动命令之后,由通道指令来完成这些工作。