キャッシュ同期操作についていくつか質問があります。
Invalidate : cpu がデバイスによって更新されたメモリの一部を読み取ろうとする前に、対応するメモリを無効にする必要があります。
Flush : デバイスが CPU によって更新されたメモリの一部を読み取る前に、CPU は内容をキャッシュからメモリにフラッシュする必要があります (書き戻しも正しいですか?)。これにより、デバイスは更新された内容でメモリから内容を読み取ります。
フラッシュが実行されない場合、キャッシュに書き込まれた内容でメモリがまだ更新されていないため、メモリに存在するジャンク データが読み取られる可能性があります。
私の上記の理解が正しいか確認してください。
いつフラッシュと無効化の両方を組み合わせたいですか? デバイス制御記述子で遊んでいるときに、フラッシュと無効化を組み合わせて同期する必要があると聞きました。なんでそうなの?
フラッシュの後に無効化が続くようなシーケンスに従う必要がありますか?
無効化に続いてフラッシュが役立つシナリオはありますか?