1. DMA(直接存储器访问)
工作流程
设备接口发送请求:
外部设备(如磁盘)希望通过总线直接传送数据时,首先会向 CPU 发送一个 DMA 请求信号。这是一个请求,让 CPU 知道外部设备需要进行数据传输。
DMA 控制器的角色:
外部设备通过 DMA 控制器(DMAC)向 CPU 提出总线请求。DMA 控制器是一个专门的硬件,用于管理 DMA 操作。
CPU 响应请求:
CPU 收到 DMA 请求信号后,会在当前的总线周期结束后,按照优先级和请求顺序处理请求。这个过程会暂停当前的 CPU 操作,确保 DMA 操作的顺利进行。
让出总线控制权:
一旦 CPU 响应 DMA 请求,它会将总线控制权交给 DMA 控制器。这意味着接下来的数据传输不需要 CPU 参与。
直接数据交换:
在 DMA 控制器的管理下,外部设备(如磁盘)可以直接与内存进行数据交换,而 CPU 无需干预。这样提高了数据传输的效率,减轻了 CPU 的负担。
结束信号:
数据传输完成后,设备接口会向 CPU 发送一个 DMA 结束信号,表示数据传输已经完成,并请求恢复总线控制权。
2. 通道
工作原理
在 DMA 基础上的扩展:
通道是对 DMA 技术的扩展,它在 DMA 控制器的基础上增加了能够执行有限指令的 I/O 控制器。通道相当于一种协处理器,负责管理和控制外设。执行输入输出指令:通道有自己的指令集,能够执行一些基本的 I/O 指令,如读取数据、写入数据等。这使得通道能够在一定程度上代替 CPU 进行外设的管理。
专门的通道总线:
通道通常使用专门的通道总线来完成控制和数据传输。这样可以减少总线冲突,提升数据传输的效率。
3. 优势比较
①CPU 负担减轻:
使用 DMA 和通道后,CPU 的负担显著减轻,因为它们能够处理大量的 I/O 请求而无需 CPU 频繁干预。
②提高效率:
通道能够执行一些 I/O 指令,进一步提升了数据传输效率,使得 I/O 操作更加灵活和高效。