c - DMA 传输 RAM 到 RAM

标签 c windows x86 dma

我的一个 friend 告诉我,在 x86 架构上,DMA Controller 无法在两个不同的 RAM 位置之间传输。它只能在RAM和外设(如PCI总线)之间传输。

这是真的吗?

因为 AFAIK DMA Controller 应该能够在位于 BUS 上并具有地址的任意设备之间。特别是如果源地址和目标地址属于同一物理设备,我认为没有问题。

最佳答案

ISA(记得吗?;-)DMA 芯片肯定有一个 Fetch-and-Deposit传输类型。

但是,从 MASM32 forums :

Hi,

Checking in "The Undocumented PC", he says memory to memory DMA is possible. He then goes on to say that there can be problems, limitations, and that the CPU can do the copy faster than the DMA hardware anyway (MOVSD on 386+).

So it seems to be a yes you can, but who cares, kind of thing.

Regards,

Steve N.

关于c - DMA 传输 RAM 到 RAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4297539/

相关文章:

c++ - 如何使用 Win32 api 将 TreeView 项目设置为可见/不可见

windows - 页面文件中的物理页面和页面之间有什么关系?

c - 在结构体中打印任意大小的数组

.net - 文件的安全流更新

windows - VB6 程序不能在 Windows Me 中运行

c++ - 将数据作为代码执行?

c - _mm_movemask_epi8 的内在逆

gcc - 为什么我的 gcc 输出中有额外的指令?

c - 我在 c 中得到了意外的输出 .. 谁能解释为什么?

c - 无效写入和信号 11 错误 valgrind