私はperfイベントの意味を理解しようとしています:dTLB-loadsとdTLB-stores?
仮想メモリが有効になっている場合、TLBですべての単一メモリアクセスの仮想アドレスを検索して、対応する物理アドレスを取得し、アクセス許可と特権を決定する必要があります(または、無効なマッピングの場合は例外を発生させます)。dTLB-loads
そしてdTLB-stores
イベントは、それぞれ、データメモリロードまたはストアのアクセスのためにTLBの検索を表します。perf
これらのイベントの定義はです。ただし、正確な意味はマイクロアーキテクチャによって異なります。
ウェストメア、Skylakeマイクロアーキテクチャ、Kaby湖、コーヒー湖には、キャノン湖(そしておそらくアイス湖)、dTLB-loads
およびdTLB-stores
にマッピングされているMEM_INST_RETIRED.ALL_LOADS
とMEM_INST_RETIRED.ALL_STORES
、それぞれ。Sandy Bridge、Ivy Bridge、Haswell、Broadwell、Goldmont、Goldmont Plusでは、それぞれMEM_UOP_RETIRED.ALL_LOADS
とMEM_UOP_RETIRED.ALL_STORES
にマップされます。Core2、Nehalem、Bonnell、Saltwellでは、それぞれL1D_CACHE_LD.MESI
とL1D_CACHE_ST.MESI
にマッピングされています。(BonnellとSaltwellでは、イベントの正式名称はL1D_CACHE.LD
andでL1D_CACHE.ST
あり、で使用されるイベントコードperf
は、インテルのマニュアルVolume 3にのみ記載されており、パフォーマンスイベントに関する他のインテルのソースには記載されていません。)dTLB-loads
およびdTLB-stores
イベントは、シルバーモントではサポートされていません。とエアモント。
現在のすべてのAMDプロセッサでdTLB-loads
は、にマップされてLsDcAccesses
おり、dTLB-stores
サポートされていません。ただし、LsDcAccesses
ロードとストアの両方のTLBルックアップをカウントします。他のベンダーのプロセッサdTLB-loads
でdTLB-stores
は、サポートされていません。
コアイベントをネイティブイベントにマップする方法については、ハードウェアキャッシュイベントとパフォーマンスを参照してくださいperf
。
異なるマイクロアーキテクチャ上の同じプログラムのイベント数があるためマイクロアーキテクチャの違いだけでなく、イベントの意味は、それ自体が異なっているためだけではなく、異なる場合があります。したがって、プログラムのマイクロアーキテクチャの動作がマイクロアーキテクチャで同じであることが判明した場合でも、イベント数は異なる可能性があります。すべてのIntelマイクロアーキテクチャーのネイティブイベントの簡単な説明はここにあり、いくつかのマイクロアーキテクチャーのより詳細な説明はここにあります。dTLB-loads
dTLB-stores
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加