DeviceからMemoryにDMAで転送して、そのデータをCPUで読む場合、以下のいずれかのcacheの操作を行う必要がある。
1. DeviceからMemoryへの転送前に、cacheのinvalidate(cacheの内容を捨てる)をする。
3. DeviceからMemoryへの転送後に、cacheのinvalidateをする。
…のだと、ずっと思っていた。
今日まで。
ところが、上記のうち1つは正しくない事に、この歳になって今さらながら気付いた。
■クイズ
上記の
また、正しくデータを読めない理由は何か。
■訂正
2.もダメでしたね。1.と3.の2択に変更しました。