ソフトウェア MMU を検証しようとしています。
入手したテストケースでは、「TLB ロックと無効化」をチェックする必要があります。
テストを実行して TLB ミスをチェックしましたが、TLB ロックと無効化が正確に何を意味するのかを理解できませんでした。
TLB は Translation Lookaside Buffer の略です。MMU がアクティブ化され、仮想メモリにアクセスしたとき。MMU は、仮想アドレスを物理アドレスに変換する必要があります。MMU は、仮想アドレスと対応する物理アドレスの間のマッピングを格納する RAM に対して読み取り (通常は 2 回の読み取り) を行うことによってこれを行います。RAM へのアクセスは遅いため、マッピングは TLB にキャッシュされます。これは、後続の MMU ルックアップが TLB をチェックするだけで済み、RAM にアクセスする必要がないことを意味します。
プロセスを切り替えると、新しいプロセス ページ テーブルで MMU を再プログラムします。この時点で、TLB を無効にして、古いプロセスに割り当てられたメモリにアクセスしないようにする必要があります。
ARM には一連のパフォーマンス レジスタが含まれており、そのうちの 1 つが TLB ミスが発生するたびにインクリメントされます。これをテストで使用できる可能性があります。
詳細情報を探すのに最適な場所は、おそらくARM アーキテクチャ リファレンス マニュアルですが、簡単に読めるものではありません。