perf チュートリアルによると、Performance Monitoring Unit (PMU) イベント または ハードウェア イベント CPU ベンダーの CPU 固有のイベントに直接マップできるイベントを参照してください。ただし、ハードウェア キャッシュ イベント perf
によって提供されるいくつかのハードウェア イベント モニカを参照してください 、CPU によって提供される実際のイベントにマップされる場合があります。 perf
のリストについて のキャッシュ イベントは perf list cache
を使用します Linux ターミナルで。
いくつかの答え:
L1
レベル 1 キャッシュで、最小かつ最速です。LLC
一方、キャッシュ階層の最後のレベルを指し、最大だが最も遅いキャッシュを示します。i
対d
命令キャッシュとデータキャッシュを区別します。 L1 のみがこのように分割され、他のキャッシュはデータと命令の間で共有されます。TLB
仮想アドレスを物理アドレスにマッピングするときに使用されるキャッシュである変換ルックアサイド バッファを指します。- 指定されたアドレスが命令またはデータのどちらを参照しているかに応じて異なる TLB カウンター。
- すべてのデータ アクセスについて、指定されたメモリ ロケーションが読み取り、書き込み、またはプリフェッチ (つまり、後で読み取りのために取得) されたかどうかに応じて、異なるカウンターが保持されます。
- ミスの数は、特定のデータ項目がアクセスされた頻度を示しますが、はアクセスされませんでした
cache-misses
event は、他のすべての種類のキャッシュ ミスの合計です (L1-dcache-load-misses
、 等々)。それは実際には正しくありません。
cache-misses
イベントは、どのキャッシュでも処理できなかったメモリ アクセスの数を表します。
perf のドキュメントが最適ではないことは認めます。
ただし、perf_event_open() 関数のドキュメントを読むことで、それについてかなり多くのことを学ぶことができます (CPU とパフォーマンス監視ユニットがどのように機能するかについて十分な知識があると仮定すると、これは明らかにコンピューター アーキテクチャのコースではありません)。
http://web.eece.maine.edu/~vweaver/projects/perf_events/perf_event_open.html
たとえば、それを読むと、 cache-misses
が PERF_COUNT_HW_CACHE_MISSES
に対応する perf リストで示されるイベント