小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
IO方式
输入/输出系统实现主机与IO设备之间的数据传送,可以采用不同的控制方式,各种方式在代价、性能、解决问题的着重点等方面各不相同,常用的IO方式有程序查询、程序中断、DMA和通道等。
程序查询IO方式
信息交换的控制完全由主机执行程序实现.
程序查询方式接口中设置一个数据缓冲寄存器(数据端口)和一个设备状态寄存器(状态端口)。主机进行IO操作时,先发出询问信号,读取设备的状态并根据设备状态决定下一步操作究竟是进行数据传送还是等待。
如图,程序查询方式的工作流程如下:
- CPU执行初始化程序,并预置传送参数。
- 向IO接口发出命令字,启动IO设备。
- 从外设接口读取其状态信息。
- CPU不断查询I/O设备状态,直到外设准备就绪。
- 传送一次数据。
- 修改地址和计数器参数。
- 判断传送是否结束,若未结束转第3步,直到计数器为0。
在这种控制方式下,CPU一旦启动IO,就必须停止现行程序的运行,并在现行程序中插入一段程序。程序查询方式的主要特点是CPU有“踏步”等待现象,CPU与IO串行工作。这种方式的接口设计简单、设备量少,但CPU在信息传送过程中要花费很多时间来查询和等待,而且在一段时间内只能和一台外设交换信息,效率大大降低。