编程IO
CPU说: 请读取一个字节
CPU说: 你读完了吗
I/O说: 还没
CPU说: 你读完了吗
I/O说: 还没
CPU说: 你读完了吗
I/O说: 还没
CPU说: 你读完了吗
I/O说: 还没
CPU说: 你读完了吗
I/O说: 还没
CPU说: 你读完了吗
I/O说: 读完了
CPU说: 你读到了什么
I/O说: 0x35
中断驱动IO
CPU说: 请读取一个字节,读完告诉我
CPU干别的事去了
……
过了若干时间——
I/O说: 我读完了
CPU说: 你读到了什么
I/O说: 0x35
DMA
CPU说: 请读取100个字节,读完存入主存0x0010ed3f位置,然后告诉我
CPU干别的事去了
I/O说: 我要使用总线,CPU你让一下
I/O说: 我要使用总线,CPU你让一下
I/O说: 我要使用总线,CPU你让一下
……
过了若干时间——
I/O说: 我读完了,已经存好了
CPU可以从主存中读取数据了
IO通道
CPU说: 请到主存0x00c014d0位置读取我给你的任务,做完告诉我
CPU干别的事去了
I/O说: 我要使用总线,CPU你让一下
I/O说: 我要使用总线,CPU你让一下
I/O说: 我要使用总线,CPU你让一下
……
过了若干时间——
I/O说: 我干完了
饮水思源BBS站 关于此文的讨论