问题描述
我的一个朋友告诉我,在x86架构的DMA控制器不能在两个不同的RAM存储单元之间传输。它只能RAM和外围设备(如PCI总线)之间传递。
A friend of mine has told me that on x86 architecture DMA controller can't transfer between two different RAM locations. It can only transfer between RAM and peripheral (such as PCI bus).
这是真的吗?
由于AFAIK DMA控制器的应的是坐BUS,并有一个地址的任意设备之间能。特别是我看不出有什么问题,如果源和destionation地址属于同一物理设备。
Because AFAIK DMA controller should be able between arbitrary devices that sit on BUS and have an address. In particular I see no problem if both source and destionation addresses belong to the same physical device.
推荐答案
ISA(还记得吗?;-) DMA芯片肯定有一个Fetch-and-Deposit传输类型。
ISA (remember? ;-) DMA chips certainly have a Fetch-and-Deposit transfer type.
不过,从:
在无证PC检查,
他说,内存到内存的DMA
可能。他接着说,
可能有问题,限制
并且CPU可以执行拷贝
比DMA硬件反正快
(386 + MOVSD)。
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.
问候,
史蒂夫ñ。
这篇关于DMA传送的RAM到内存的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!