c - DMA和Cache同时使用

标签 c linux caching linux-kernel cpu-architecture

当我们同时使用 DMA 和缓存时会发生什么?程序员在使用DMA和Cache时需要注意哪些?

最佳答案

DMA 将读取和写入内存,而不是缓存。例如,DMA Controller 可以更新当前缓存的某些内存,并且更改不会反射(reflect)在数据缓存中。或者您可能修改了 DMA 访问的区域对应的缓存数据。
您必须将此情况告知缓存 Controller 。它非常依赖于架构
例如,这是使用 ARM 架构上的 CP15 协处理器的寄存器进行控制的(请参阅 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0464f/CIHDGCBH.html)

关于c - DMA和Cache同时使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27854287/

相关文章:

caching - 在仿真中同步两个内核的方法

c++ - 从 blender 的特定内存位置读取数据(结构)

java - 使用 AT 命令访问 SIM 服务菜单

c - 在 C 中使用 write() 创建一个临时文件

用于重定向流的 Linux 脚本

c# - 可从 Java 访问的 Linux 中的注册表级计数器

c - 如何在 C 中删除 linux 上的 root 权限?

java - 缓存 XML 提要

java - Jboss ,Infinispan, 如何将 Jboss 配置为托管缓存管理器

c - 带有空指针的图表的奇怪输出