在PCIe配置中,设备具有专用地址,并且它们以对等模式相互发送数据-每个设备都可以在愿意的时候进行写入,并且交换机会小心地正确转发数据。不需要“总线主控器”,它可以决定何时以及如何传输数据。
在这种配置下DMA如何发挥作用?对我来说,DMA是一种过时的功能,在PCIe配置中不需要。每个设备都可以将数据发送到主存储器或从中读取数据-显然,在这种操作中,主存储器将始终是“从属”。
或者我缺少DMA的其他功能吗?
提前谢谢!
答案 0 :(得分:2)
当非CPU的设备访问连接到CPU的内存时,这称为直接内存访问(DMA)。因此,从PCIe设备发出的任何PCIe读取或写入请求都构成DMA操作。这可以通过“设备到设备”或“对等” DMA进行扩展,在这些设备中,设备彼此之间进行读写操作,而无需占用CPU或系统内存。
DMA具有两个主要优点:首先,DMA操作可以在最小的CPU负载下将数据移入和移出内存,从而提高了软件效率。其次,CPU只能发出读写操作,无论CPU字的大小如何,由于TLP标头和其他协议开销,导致PCIe总线的吞吐量非常差。直接发出读写请求的设备可以发出具有更大有效负载的读写操作,从而提高吞吐量并更有效地利用总线带宽。
因此,DMA绝对不会过时或过时-基本上所有通过PCIe连接的高性能设备都将使用DMA来有效地使用总线。