ArmV7-Aでのキャッシュに関するもう1つの質問。 この場合、問題のSoCはAllwinner A20、デュアルコアCortex-A7です。非共有属性を持つPoU
私が読んだことから、コアのPoUの定義は、コアの命令キャッシュとデータキャッシュがメモリロケーションの同じコピーを見ることが保証されるポイントです。
問題のSoCに関しては、両方のコアがL2(Unified)キャッシュでPoUを共有しているため、L1に配置されているものがL2に見えることを意味します。そうですか?
メモリ領域の属性をNon-Shareableに変更しても、L2はいずれのコアのL1 の内部を見ることができます。本当?私はそれによって何を意味するのか詳しく説明し
は、私は少し実験を行っている:私は内部のメモリアドレスに書いた
非共有可能、ライトバックコア#0から領域に。その後、キャッシュメンテナンス操作を実行せずに、コア#1から同じメモリアドレスから読み取ろうとしたとき、コア#0から書き込まれた正しい値が読み取られました。
私は、この動作がPoUであることからL2の結果であると推測しました。したがって、コア#0から書き込んだときに、L2は(たとえそれがフラッシュされなくても)コピーを保存します。次に、コア#1から読み込みミスの後、コア#1のL1がメモリ値をL2から取得します。
両方の_data_アクセスがあるため、1つのCPUからの書き込みと別のCPUからの_reading_は、PoUとは何の関係もありません。 – Notlikethat
@Notlikethat他の質問にも感謝します。あなたは詳しく説明できますか? PoUはデータアクセスとは何の関係もありませんか?私はまだ他のCPUが最初のCPUで書いたコンテンツにアクセスできる理由はまだ分かりません。地域設定が非共有、書戻しの場合は –