主要有轮询,中断,DMA,通道几种方式。
轮询占用cpu时间,基本不用了。
中断是在数据缓冲寄存器满了以后通过中断请求线通知cpu,如果发送一次数据可能需要n多此中断,如果数据缓冲器小,io设备又比较多的情况下,会对整个io过程产生较大影响。
DMA通过DMA控制器完成io,cpu只要将起始地址和块大小发送到DMA相关寄存器上,后面的io工作由DMA控制器来完成,当所有数据传输完毕后,DMA控制器再中断cpu,这样的方式减少了cpu中断次数,节省了cpu时间。
通道方式,分为字节多路通道,选择通道,成组多路通道。cpu发出启动通道指令后,通道控制器接管整个过程,它有自己的指令系统,可以执行用这些指令编写的通道程序,类似于一个小的处理器。目前专用的io通道处理机已经不多见,但其技术仍然广泛存在,如光纤通道技术。