深入解析直接内存访问(DMA)与直接缓存访问(DCA)技术
1. 传统I/O方式的弊端
在数据传输过程中,传统的编程式I/O和中断驱动I/O存在一定的局限性。中断驱动I/O虽然比简单的编程式I/O更高效,但仍需要处理器的主动干预来在内存和I/O模块之间传输数据,且所有数据传输都必须经过处理器。这两种I/O方式存在以下两个固有缺点:
- I/O传输速率受限 :I/O传输速率受限于处理器测试和服务设备的速度。
- 处理器资源占用 :处理器在管理I/O传输时会被占用,每次I/O传输都需要执行多条指令。
对于简单编程式I/O,处理器专注于I/O任务,可以以较高的速率移动数据,但代价是无法进行其他操作。而中断I/O在一定程度上释放了处理器,但会降低I/O传输速率。因此,当需要移动大量数据时,就需要一种更高效的技术——直接内存访问(DMA)。
2. 直接内存访问(DMA)
2.1 DMA功能
DMA涉及系统总线上的一个额外模块。DMA模块能够模拟处理器,并从处理器接管系统的控制权,以便通过系统总线在内存和I/O设备之间传输数据。为了实现这一点,DMA模块只能在处理器不需要总线时使用总线,或者迫使处理器暂时暂停操作,后一种技术更为常见,被称为周期窃取,因为DMA模块实际上窃取了一个总线周期。
当处理器需要读写一块数据时,它会向DMA模块发送以下信息:
- 读写请求 :通过处理器和DMA模块之间的读写控制线,指示是读操作还是写操作。
- I/O设备地址
超级会员免费看
订阅专栏 解锁全文
1389

被折叠的 条评论
为什么被折叠?



