轮询方式
又称程序直接控制方式,CPU询问设备控制器的状态,闲则传输数据,忙则继续查询。如果有多个设备,则轮流查询。这种方式,CPU是以轮询的方式来响应的。
中断方式
设备控制器当取到一个数据之后向CPU发送一个中断,CPU将数据从控制器取到CPU寄存器,再转移到内存中。这种方式,CPU是以字节的方式来响应的。
直接存储器访问(DMA)
DMA申请总线控制权,打开一条内存到设备的通道,模仿CPU来完成I/O存取。缺点是,有多少设备就需要多少DMA。这种方式,CPU是以数据块的方式来响应的。
I/O通道(通道控制器、I/O处理器)
IO通道相当于一个简单的处理机,有自己的指令,也可以执行指令。 一条IO通道可以连接所有的设备控制器。CPU向IO通道发出指令,IO通道将会自动进行获取数据。 这种方式,CPU是以多个数据块的方式来响应的。
以上I/O控制方式中,CPU的干预程度:(越多干预,效率越低)
程序I/O方式(轮询)> 中断方式(字节)> DMA方式(块)> 通道方式(几个块)