CL.*_*CL.
6
存在CPU和内存之间的总线相当弱的架构; 其中一些架构添加了一个DMA引擎,允许复制大块内存,而无需在CPU上运行循环.
在Linux中,您可以使用dmaengine子系统访问DMA引擎,但无论这样的引擎是否实际可用,它都与硬件有关.
X86 CPU具有良好的内存子系统,并且还具有用于复制大块的特殊硬件支持,因此使用DMA引擎实际上不太可能提供帮助.(英特尔在一些服务器主板上增加了一个名为I/OAT的DMA引擎,但总体结果并不比普通的CPU副本好多少.)
DMA强制数据从CPU缓存中移出,因此为程序的变量执行DMA复制将完全没有意义,因为之后的第一个CPU访问必须将它们读回缓存.