開発のヒント

CPU

L1 Dキャッシュと本体メモリのデータ一貫性

STM32F7に搭載されているCortex-M7にはL1 Dキャッシュが搭載されています。また、一方で独立したDMAも搭載しています。

Dキャッシュにヒットしたデータは、Dキャッシュで保存されていますが、本体メモリの同じアドレスをDMAが書き換えてしまうと、Dキャッシュと本体メモリの値が異なってしまい、一貫性が保たれなくなります。Dキャッシュと本体メモリのデータの一貫性はハードウェアでは管理しませんので、ユーザが管理しなければなりません。

DキャッシュでアクセスするメモリエリアはDMAでアクセスしないか、またはアクセスしても、その際にDキャッシュをクリーン化する必要があります。

一方、Iキャッシュは基本的に書き換えませんので、一貫性を管理する必要はありません。

過去の開発のヒントはこちら