肯定有DMA引擎无法在2个ram地址之间进行传输,因此问题的第二部分已基于不正确的前提。
是的,内存到内存的转移可能很高达80386家庭我试过“现代”x86的:)
为源和目标指定RAM。您可能必须注意L1缓存的一致性,具体取决于您正在编程的设备以及是否已启用缓存。
您可能会在Linux内核中找到一些用于刷新影子内存中的视频RAM页面的代码。这敲响了钟声。
在ARM Mem-to-Mem DMA上显着提高了性能。
ISA(记得?;-) DMA芯片肯定有 读取和存款 转移类型。
但是,来自 MASM32论坛 :
嗨, 签入“未记录的PC”, 他说内存存储器DMA是 可能。然后他接着说 可能有问题,限制, 并且CPU可以进行复制 无论如何,比DMA硬件更快 (MOVSD 386+)。 所以你似乎可以, 但是谁在乎,有点像。 问候, 史蒂夫N.
嗨,
签入“未记录的PC”, 他说内存存储器DMA是 可能。然后他接着说 可能有问题,限制, 并且CPU可以进行复制 无论如何,比DMA硬件更快 (MOVSD 386+)。
所以你似乎可以, 但是谁在乎,有点像。
问候,
史蒂夫N.