The method listed below doesn’t need CPU to participate in the transfer of data block.
I/O 可以以三种不同方式实现:
① 程序控制 I/O (Programmed I/O)
让 CPU 做全部的工作。 CPU 通过程序主动读取状态寄存器以了解接口情况,并完成相应的数据操作。
② 中断驱动 I/O (interrupt-driven I/O)
当程序常规运行时,若外部有优先级更高的事件出现,则通过中断请求通知 CPU , CPU 再读取状态寄存器确定事件的种类,执行不同的分支处理。
③ DMA (Direct Memory Access)
直接内存存取即数据传送的具体过程直接由硬件( DMA 控制器)在内存和 I/O 之间完成, CPU 只在开始时将控制权暂时交予 DMA ,直到数据传输结束。