performance - DMA Controller 在处理器中的用途是什么?

标签 performance memory-management computer-architecture cpu-architecture dma

DMA Controller 存在于磁盘、网络设备上。所以他们可以直接将数据传输到主存。那么处理器芯片内部的dma Controller 有什么用?另外我想知道,如果处理器芯片外部有不同的总线(i2c,pci,spi),而处理器内部只有一个总线(AXI)。这是如何工作的?(应该不会导致一些瓶颈)

最佳答案

片上DMA 可以承担将数据从设备复制到内存的任务,反之亦然对于无法实现自己的 DMA 的简单设备 .我可以认为这样的设备可以是鼠标、键盘、声卡、蓝牙设备等。这些设备具有简单的逻辑,它们的请求被多路复用并发送到芯片上的单个通用 DMA。

具有高带宽的外设,如 GPU 卡、网络适配器、硬盘实现自己的 DMA 与芯片的总线通信,以启动对系统内存的上传和下载。

if there are different buses (i2c, pci, spi) outside of processor chip and only one bus (AXI) inside processor. how does this work?(shouldn’t it result in some bottleneck)



这其实很简单。 片上内部 AXI 总线要快得多 - 以比 i2c+pci+spi 的所有聚合带宽高得多的频率(等于或在与 CPU 的频率相同的范围内)(具有高得多的带宽)运行。当然,多个硬件元素在 AXI 总线上竞争,但通常您会实现优先级和不同的优化技术。

关于performance - DMA Controller 在处理器中的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26993464/

相关文章:

iphone - 有办法到达 "find mystery retains"...吗?

cpu - CPU内部的寄存器可以做算术运算吗

memory - VGA与集成显卡理论

cpu-architecture - 为什么可变长度管道的速度由最慢的阶段+程序的总执行时间决定?

android - 我的应用程序中出现新的 android SDK 17 问题?

c++ - 当您的嵌入式编译器不支持 operator new 或 STL 时,您如何执行 C++?

R:在向量模式下使用mgsub时如何防止内存溢出?

c++ - 为什么这个汇编代码更快?

performance - AVX512中 "masked"存储的粒度是多少?

Javascript 索引性能