首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DMA传输RAM到-RAM

DMA传输RAM到-RAM
EN

Stack Overflow用户
提问于 2010-11-28 15:37:22
回答 3查看 7.6K关注 0票数 16

我的一位朋友告诉我,在x86架构下,DMA控制器不能在两个不同的内存位置之间传输。它只能在RAM和外围设备(如PCI总线)之间传输。

这是真的吗?

因为AFAIK DMA控制器应该能够在位于总线上并具有地址的任意设备之间运行。特别是,如果源地址和解址都属于同一个物理设备,我看不出有什么问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-28 16:18:29

ISA (记得?;-) DMA芯片当然有一个取押金传输类型。

然而,来自MASM32论坛

嗨, 签入“无文档的个人电脑”,他说内存到内存DMA是可能的。他接着说,可能存在问题、限制,而且无论如何,CPU可以比DMA硬件更快地完成复制(386+上的MOVSD)。 所以这似乎是可以的,但谁在乎呢。 致以敬意, 史蒂夫N.

票数 13
EN

Stack Overflow用户

发布于 2010-11-28 23:04:30

是的,内存到内存传输的可能性很大,我已经用“现代”x86来尝试了80386个家庭:)

为源和目标指定RAM。您可能需要注意L1缓存的一致性,这取决于您正在编程的设备以及是否启用了缓存。

您可能会在Linux内核中找到一些代码,用于刷新影子内存中的视频RAM页面。这让人耳目一新。

票数 8
EN

Stack Overflow用户

发布于 2010-11-28 15:44:14

肯定有DMA引擎不能在两个ram地址之间传输,所以问题的第二部分已经基于一个不正确的前提。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4297539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档