gpt4 book ai didi

c - 我需要将分散-聚集 DMA 链表放入不可缓存的内存中吗?

转载 作者:行者123 更新时间:2023-11-30 17:47:54 31 4
gpt4 key购买 nike

所有源和目标都位于不可缓存的内存中。毫无疑问。在启动 DMA(即分散-聚集 DMA)之前,我构建了 DMA 链表(包含 src、dest、size 和 next)。我想我不必将列表放入不可缓存的内存中。有人可以证实吗?首先十分感谢!琳达

最佳答案

规则是任何由硬件直接修改的内容都需要位于不可缓存的内存中。否则,正如您可以想象的那样,CPU 上运行的代码可能会从其缓存中看到过时的数据。因此,由硬件直接修改的缓冲区以及任何其他数据结构需要标记为不可缓存。如果硬件以任何方式操作列表,或者更新任何状态位等,那么它也需要是不可缓存的。

all source and destination are in none-cacheable memory. there is no question there

顺便说一句,这个断言并不总是成立。如果硬件实现了其他缓存一致性机制(总线监听等),那么您甚至不需要担心缓冲区。

关于c - 我需要将分散-聚集 DMA 链表放入不可缓存的内存中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18776138/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com