Cache Invalidate与Cache Flush

1. Cache Invalidate

   该操作主要为解除内存与Cache的绑定关系。例如操作DMA进行数据搬移时,如果目标内存配置为可Cache,那么后续通过CPU读取该内存数据时候,若Cache命中,则可能读取到的数据不是DMA搬移后的数据,那么在进行DMA搬移之前,先进行Cache Invalidate操作,保证后续CPU读取到的数据是DMA真正搬移的数据。

   实际案例:软件处理的数据异常,与期望结果不一致,通过抓取DMA搬移的源数据,与后续CPU数据进行比较,发现部分数据相同,部分数据不一致,后续确认为内存地址配置成了可Cache,导致CPU读取进行处理的软件数据异常。

2. Cache Flush

   该操作为将Cache中的数据写回内存。

发布了28 篇原创文章 · 获赞 13 · 访问量 8250

猜你喜欢

转载自blog.csdn.net/kakamilan/article/details/49933481