加载中...

| 全称 | 直接内存访问 |
| 执行者 | DMA控制器 |
| 主要作用 | 卸载CPU数据搬运 |
| 完成信号 | 中断 |
直接内存访问(DMA)是一种让外部设备不经CPU逐字节搬运、直接读写系统内存的机制。传输由DMA控制器负责,CPU只需在开始时配置好源地址、目的地址和长度,之后即可去做别的工作,传输完成后由中断通知。
若没有DMA,设备与内存之间的数据要靠CPU用程序化输入输出逐字节复制,像磁盘或网卡这类大流量设备会长期占用CPU。DMA引入独立的传输通道,把搬运工作卸载给专门硬件,CPU得以并行处理其他任务,是现代高性能输入输出的基础。
磁盘控制器、网卡、声卡、显卡以及各种高速外设普遍使用DMA。例如网卡收到数据包后通过DMA直接写入内核缓冲区再发中断,避免CPU逐字节拷贝;零拷贝技术也常借助DMA减少数据搬运次数以提升网络和文件吞吐。
问:DMA传输时CPU完全空闲吗?答:不一定完全空闲。DMA与CPU共享内存总线,传输可能与CPU访存竞争总线导致CPU短暂等待,称为周期窃取,但整体上CPU被大幅解放。
问:DMA与缓存一致性有什么关系?答:DMA直接改内存,若CPU缓存里还有旧副本就会不一致。系统需通过缓存刷新、失效或硬件缓存一致性机制来保证CPU看到的是DMA写入的最新数据。

| 全称 | 直接内存访问 |
| 执行者 | DMA控制器 |
| 主要作用 | 卸载CPU数据搬运 |
| 完成信号 | 中断 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧