EN JA
PMC.ATOM(3)
PMC.ATOM(3) FreeBSD Library Functions Manual PMC.ATOM(3)

名称

pmc.atomIntel Atom ファミリ CPU のための測定イベント

ライブラリ

Performance Counters Library (libpmc, -lpmc)

書式

#include < pmc.h>

解説

Intel Atom CPU は、 Intel 性能測定アーキテクチャのバージョン 3 に準拠した PMC を含んでいます。これらの CPU は、2 つのクラスの PMC を含んでいます:
PMC_CLASS_IAF
1 つのカウンタごとに 1 つのハードウェアイベントだけカウントする固定関数カウンタ。
PMC_CLASS_IAP
定義されたハードウェアイベントのセットの 1 つをカウントするために設定されるプログラマブルカウンタ。

各クラスで利用可能な PMC の数とそれらの幅は、 pmc_cpuinfo(3) を呼び出すことによって実行時に決定される必要があります。

Intel Atom PMC は、次に文書化されています。 IA-32 Intel(R) Architecture Software Developer's Manual, Volume 3: System Programming Guide, Order Number 253669-027US, Intel Corporation, July 2008.

ATOM 固定関数 PMC

これらの PMC とそれらのサポートイベントは、 pmc.iaf(3) に文書化されています。

ATOM プログラマブル PMC

プログラマブル PMC は、次のケーパビリティをサポートしています:
Capability Support
PMC_CAP_CASCADE No
PMC_CAP_EDGE Yes
PMC_CAP_INTERRUPT Yes
PMC_CAP_INVERT Yes
PMC_CAP_READ Yes
PMC_CAP_PRECISE No
PMC_CAP_SYSTEM Yes
PMC_CAP_TAGGING No
PMC_CAP_THRESHOLD Yes
PMC_CAP_USER Yes
PMC_CAP_WRITE Yes

イベント修飾子

これらの PMC のためのイベント指定子は、次の共通の修飾子を持つことができます:
any
パッケージ中の任意の論理的なプロセッサで見られるマッチするイベントをカウントします。
cmask= value
1 つのサイクルで測定される設定されたイベントの数が、 value 以上の場合のみ、増加するように PMC を設定します。
edge
他の修飾子によって表現された状態のアサートされた遷移をアサート停止する数をカウントするように PMC を設定します。指定されているなら、状態が真のままで残っている間クロックの数にかかわらず、状態が真になるときはいつも、カウンタは一度だけ増加します。
inv
cmask”修飾子が存在しているとき、比較の意味を逆にし、サイクルごとのイベントの数が、“ cmask”修飾子によって指定された値より小さいときに、カウンタを増加します。
os
特権レベル 0 で起こるイベントをカウントするように、PMC を設定します。
usr
特権レベル 1, 2 または 3 で起こるイベントをカウントするように、 PMC を設定します。

os”または“ usr”修飾子のどちらも指定されなかったなら、デフォルトは、両方を有効にすることです。

コア特異性が指定されることを必要とするイベントは、追加の修飾子“ core=core”を使用します、ここで、引数 core は、次の 1 つです:

all
すべてのコアでイベント状態を測定します。
this
このコアでイベント状態を測定します。

デフォルトは、“ this”です。

エージェントの修飾子が指定されることを必要とするイベントは、追加の修飾子“ agent=agent”を使用します、ここで、引数 agent は、次の 1 つです:

this
このバスエージェントに関連しているイベントを測定します。
any
任意のバスエージェントによって引き起こされたイベントを測定します。

デフォルトは、“ this”です。

ハードウェアプリフェッチ修飾子が指定されることを必要とするイベントは、追加の修飾子“ prefetch=prefetch”を使用します、ここで、引数 prefetch は、次の 1 つです:

both
すべてのプリフェッチを含めます。
only
ハードウェアプリフェッチのみをカウントします。
exclude
ハードウェアプリフェッチを除きます。

デフォルトは、“ both”です。

キャッシュコヒーレンス (一貫性) 修飾子が指定されることを必要とするイベントは、追加の修飾子“ cachestate=state”を使用します、ここで、引数 state は、次の 1 つです:

e
排他的な状態でキャッシュ線をカウントします。
i
無効の状態でキャッシュ線をカウントします。
m
変更された状態でキャッシュ線をカウントします。
s
共有された状態でキャッシュ線をカウントします。

デフォルトは、“ eims”です。

スヌープ (snoop) 応答修飾子が指定されることを必要とするイベントは、追加の修飾子“ snoopresponse=response”を使用します、ここで、引数 response は、“+”記号によって区切られた次のキーワードから成ります:

clean
CLEAN 応答を測定します。
hit
HIT 応答を測定します。
hitm
HITM 応答を測定します。

デフォルトは、上記のすべての応答を測定することです。

スヌープ (snoop) タイプ修飾子が指定されることを必要とするイベントは、追加の修飾子“ snooptype=type”を使用します、ここで、引数 type は、次のキーワードの 1 つから成ります:

cmp2i
CMP2I スヌープを測定します。
cmp2s
CMP2S スヌープを測定します。

デフォルトは、両方のスヌープを測定することです。

イベント指定子 (プログラマブル PMC)

Atom プログラマブル PMC は、次のイベントをサポートします:
BACLEARS
(Event E6H, Umask 01H) フロントエンドが再操作される回数。
BOGUS_BR
(Event E4H, Umask 00H) 取られた分岐命令として誤って検出されたバイトシーケンスの数。
BR_BAC_MISSP_EXEC
(Event 8AH, Umask 00H) デコードされるとき、予測ミスされた分岐命令の数。
BR_CALL_MISSP_EXEC
(Event 93H, Umask 00H) 実行された予測ミスされた CALL 命令の数。
BR_CALL_EXEC
(Event 92H, Umask 00H) 実行された CALL 命令の数。
BR_CND_EXEC
(Event 8BH, Umask 00H) 必ずリタイアされない、実行された条件分岐の数。
BR_CND_MISSP_EXEC
(Event 8CH, Umask 00H) 実行された予測ミスされた条件分岐の数。
BR_IND_CALL_EXEC
(Event 94H, Umask 00H) 実行された間接 CALL 命令の数。
BR_IND_EXEC
(Event 8DH, Umask 00H) 実行された間接分岐命令の数。
BR_IND_MISSP_EXEC
(Event 8EH, Umask 00H) 実行された予測ミスされた間接分岐命令の数。
BR_INST_DECODED
(Event E0H, Umask 01H) デコードされた分岐命令の数。
BR_INST_EXEC
(Event 88H, Umask 00H) 必ずリタイアされない、実行された分岐の数。
BR_INST_RETIRED.ANY
(Alias “Branch Instruction Retired”) (Event C4H, Umask 00H) リタイアされた分岐命令の数。これは、アーキテクチャの性能イベントです。
BR_INST_RETIRED.ANY1
(Event C4H, Umask 0FH) 予測ミスされリタイアされた分岐命令の数。
BR_INST_RETIRED.MISPRED
(Event C5H, Umask 00H) (Alias “Branch Misses Retired”) リタイアされた予測ミスされた分岐命令の数。これは、アーキテクチャの性能イベントです。
BR_INST_RETIRED.MISPRED_NOT_TAKEN
(Event C4H, Umask 02H) 正しく予測されリタイアされた取られない分岐命令の数。
BR_INST_RETIRED.MISPRED_TAKEN
(Event C4H, Umask 08H) 予測ミスされリタイアされ取られた分岐命令の数。
BR_INST_RETIRED.PRED_NOT_TAKEN
(Event C4H, Umask 01H) 正しく予測されリタイアされた取られない分岐命令の数。
BR_INST_RETIRED.PRED_TAKEN
(Event C4H, Umask 04H) 正しく予測されリタイアされた取られた分岐命令の数。
BR_INST_RETIRED.TAKEN
(Event C4H, Umask 0CH) リタイアされた取られた分岐命令の数。
BR_MISSP_EXEC
(Event 89H, Umask 00H) 実行され予測ミスされた分岐命令の数。
BR_RET_MISSP_EXEC
(Event 90H, Umask 00H) 実行された予測ミスされた RET 命令の数。
BR_RET_BAC_MISSP_EXEC
(Event 91H, Umask 00H) デコード時に予測ミスされ実行された RET 命令の数。
BR_RET_EXEC
(Event 8FH, Umask 00H) 実行された RET 命令の数。
BR_TKN_BUBBLE_1
(Event 97H, Umask 00H) バブル 1 で取られた予測された分岐の数。
BR_TKN_BUBBLE_2
(Event 98H, Umask 00H) バブル 2 で取られた予測された分岐の数。
BUSQ_EMPTY [ ,core= core]
(Event 7DH) コアがバスのキューに保留中 (pending) のトランザクションがなかった間のサイクルの数。
BUS_BNR_DRV [ ,agent= agent]
(Event 61H) バス上でアサートされた Bus Not Ready シグナルの数。このイベントは、スレッド独立です。
BUS_DATA_RCV [ ,core= core]
(Event 64H) プロセッサがデータを受け取っている間のバスのサイクルの数。このイベントは、スレッド独立です。
BUS_DRDY_CLOCKS [ ,agent= agent]
(Event 62H) Data Ready シグナルがバスでアサートされる間のバスサイクルの数。このイベントは、スレッド独立です。
BUS_HIT_DRV [ ,agent= agent]
(Event 7AH) プロセッサが、 HIT# ピンを駆動する間のバスサイクルの数。このイベントは、スレッド独立です。
BUS_HITM_DRV [ ,agent= agent]
(Event 7BH) プロセッサが、 HITM# ピンを駆動する間のバスサイクルの数。このイベントは、スレッド独立です。
BUS_IO_WAIT [ ,core= core]
(Event 7FH) I/O 要求がバスのキューでウェート (待つ) している間のコアサイクルの数。
BUS_LOCK_CLOCKS [ ,agent= agent][ ,core= core]
(Event 63H) LOCK シグナルがバスでアサートされる間のバスサイクルの数。このイベントは、スレッド独立です。
BUS_REQUEST_OUTSTANDING [ ,agent= agent][ ,core= core]
(Event 60H) 各サイクルで起こるバスでトランザクションを読み込む保留中の full キャッシュ線の数。このイベントは、スレッド独立です。
BUS_TRANS_P [ ,agent= agent][ ,core= core]
(Event 6BH) 部分的なバストランザクションの数。
BUS_TRANS_IFETCH [ ,agent= agent][ ,core= core]
(Event 68H) full キャッシュ線バストランザクションを取って来る命令の数。
BUS_TRANS_INVAL [ ,agent= agent][ ,core= core]
(Event 69H) 無効にされたバストランザクションの数。
BUS_TRANS_PWR [ ,agent= agent][ ,core= core]
(Event 6AH) 部分的な書き込みバストランザクションの数。
BUS_TRANS_DEF [ ,agent= agent][ ,core= core]
(Event 6DH) 延期されたバストランザクションの数。
BUS_TRANS_BURST [ ,agent= agent][ ,core= core]
(Event 6EH) バーストトランザクションの数。
BUS_TRANS_MEM [ ,agent= agent][ ,core= core]
(Event 6FH) メモリバストランザクションの数。
BUS_TRANS_ANY [ ,agent= agent][ ,core= core]
(Event 70H) 任意の種類のバストランザクションの数。
BUS_TRANS_BRD [ ,agent= agent][ ,core= core]
(Event 65H) バースト読み込みトランザクションの数。
BUS_TRANS_IO [ ,agent= agent][ ,core= core]
(Event 6CH) INOUT 命令によって完了した I/O バストランザクションの数。
BUS_TRANS_RFO [ ,agent= agent][ ,core= core]
(Event 66H) Read For Ownership バストランザクションの数。
BUS_TRANS_WB [ ,agent= agent][ ,core= core]
(Event 67H) 汚い線追い出しのための明白な書き戻し (writeback) バストランザクションの数。
CMP_SNOOP [ ,core= core][ ,snooptype= snoop]
(Event 78H) L1 データキャッシュが同じプロセッサで片方のコアによってスヌープされる回数。
CPU_CLK_UNHALTED.BUS
(Event 3CH, Umask 01H) (Alias “Unhalted Reference Cycles”) コアが停止状態でないときのバスサイクルの数。これは、アーキテクチャの性能イベントです。
CPU_CLK_UNHALTED.CORE_P
(Event 3CH, Umask 00H) (Alias “Unhalted Core Cycles”) コアが停止状態でない間のコアサイクルの数。これは、アーキテクチャの性能イベントです。
CPU_CLK_UNHALTED.NO_OTHER
(Event 3CH, Umask 02H) コアが停止しないままで他のコアが停止している間のバスサイクルの数。
CYCLES_DIV_BUSY
(Event 14H, Umask 01H) デバイダ (divider) がビジーであるサイクルの数。
CYCLES_INT_MASKED.CYCLES_INT_MASKED
(Event C6H, Umask 01H) 割り込みが無効にされている間のサイクルの数。
CYCLES_INT_MASKED.CYCLES_INT_PENDING_AND_MASKED
(Event C6H, Umask 02H) 割り込みが無効にされている間の保留中の割り込みがある間のサイクルの数。
CYCLES_L1I_MEM_STALLED
(Event 86H, Umask 00H) 命令のフェッチがストールするサイクルし数。
DATA_TLB_MISSES.DTLB_MISS
(Event 08H, Umask 07H) Data TLB が失われたメモリアクセスの数。
DATA_TLB_MISSES.DTLB_MISS_LD
(Event 08H, Umask 05H) Data TLB が失われたロードの数。
DATA_TLB_MISSES.DTLB_MISS_ST
(Event 08H, Umask 06H) Data TLB が失われた格納の数。
DATA_TLB_MISSES.UTLB_MISS_LD
(Event 08H, Umask 09H) UTLB が失われたロードの数。
DELAYED_BYPASS.FP
(Event 19H, Umask 00H) データが非浮動小数点の実行ユニットによって発生した直後にデータを使用した浮動小数点操作の数。
DELAYED_BYPASS.LOAD
(Event 19H, Umask 01H) ロード操作が被った遅延バイパスペナルティサイクルの数。
DELAYED_BYPASS.SIMD
(Event 19H, Umask 02H) 非 SIMD 実行ユニットによって発生されたデータの直後にデータを使用する SIMD 操作の回数。
DIV
(Event 13H, Umask 00H) 実行された除算 (divide) 操作の数。このイベントは、PMC1 だけで利用可能です。
DIV.AR
(Event 13H, Umask 81H) リタイアされた除算 (divide) 操作の数。
DIV.S
(Event 13H, Umask 01H) 実行された除算 (divide) 操作の数。
DTLB_MISSES.ANY
(Event 08H, Umask 01H) 投機的なアクセスから生じるミスを含む Data TLB ミスの数。
DTLB_MISSES.L0_MISS_LD
(Event 08H, Umask 04H) ロード操作のためのレベル 0 DTLB ミスの数。
DTLB_MISSES.MISS_LD
(Event 08H, Umask 02H) ロード操作のための Data TLB ミスの数。
DTLB_MISSES.MISS_ST
(Event 08H, Umask 08H) 格納操作のための Data TLB ミスの数。
EIST_TRANS
(Event 3AH, Umask 00H) Enhanced Intel SpeedStep Technology 遷移の数。
ESP.ADDITIONS
(Event ABH, Umask 02H) %esp レジスタに自動的に追加された数。
ESP.SYNCH
(Event ABH, Umask 01H) PUSH または POP 命令によって明白に使用された後、 %esp レジスタがアドレス表現で明白に使用された回数。
EXT_SNOOP [ ,agent= agent][ ,snoopresponse= response]
(Event 77H) バストランザクションへの snoop 応答の数。
FP_ASSIST
(Event 11H, Umask 01H) 投機的に実行された命令を含んで、マイクロコードの補助を必要とする実行された浮動小数点操作の数。
FP_ASSIST.AR
(Event 11H, Umask 81H) マイクロコードの補助を必要とするリタイアされた浮動小数点操作の数。
FP_COMP_OPS_EXE
(Event 10H, Umask 00H) 実行された浮動小数点計算マイクロオペレーション (micro-ops) の数。このイベントは、PMC0 だけで利用可能です。
FP_MMX_TRANS_TO_FP
(Event CCH, Umask 02H) MMX 命令から浮動小数点命令までの遷移の数。
FP_MMX_TRANS_TO_MMX
(Event CCH, Umask 01H) 浮動小数点命令から MMX 命令までの遷移の数。
HW_INT_RCV
(Event C8H, Umask 00H) 受け付けられたハードウェア割り込みの数。
ICACHE.ACCESSES
(Event 80H, Umask 03H) 命令のフェッチの数。
ICACHE.MISSES
(Event 80H, Umask 02H) 命令キャッシュをミスした命令フェッチの数。
IDLE_DURING_DIV
(Event 18H, Umask 00H) デバイダ (divider) がビジーで、他の実行ユニットまたはロード操作が進行しなかったサイクルの数。このイベントは、PMC0 だけで利用可能です。
ILD_STALL
(Event 87H, Umask 00H) 長さ変更接頭辞のために命令長のデコーダがストールしたサイクルの数。
INST_QUEUE.FULL
(Event 83H, Umask 02H) 命令キューが満杯の間のサイクルの数。これは、アーキテクチャの性能イベントです。
INST_RETIRED.ANY_P
(Event C0H, Umask 00H) (Alias “Instruction Retired”) リタイアされた命令の数。
INST_RETIRED.LOADS
(Event C0H, Umask 01H) ロード操作を含んだリタイアされた命令の数。
INST_RETIRED.OTHER
(Event C0H, Umask 04H) ロードまたは格納操作を含まなかったリタイアされた命令の数。
INST_RETIRED.STORES
(Event C0H, Umask 02H) 格納操作を含んだリタイアされた命令の数。
ITLB.FLUSH
(Event 82H, Umask 04H) フラッシュされた ITLB の数。
ITLB.LARGE_MISS
(Event 82H, Umask 10H) ITLB をミスした大きなページからの命令フェッチの数。
ITLB.MISSES
(Event 82H, Umask 02H) ITLB をミスした大きなページと小さなページからの命令フェッチの数。
ITLB.SMALL_MISS
(Event 82H, Umask 02H) ITLB をミスした小さなページからの命令フェッチの数。
ITLB_MISS_RETIRED
(Event C9H, Umask 00H) それらがフェッチされたとき、ITLB をミスしたリタイアされた命令の数。
L1D_ALL_REF
(Event 43H, Umask 01H) すべてのメモリタイプのロードとそれらへの格納をカウントする L1 データキャッシュへの参照の数。
L1D_ALL_CACHE_REF
(Event 43H, Umask 02H) キャッシュ可能なメモリからのデータ読み込みとそれらへの書き込みの数。
L1D_CACHE_LOCK [ ,cachestate= state]
(Event 42H) キャッシュ可能なメモリからロックされた読み込みの数。
L1D_CACHE_LOCK_DURATION
(Event 42H, Umask 10H) 任意のキャッシュ線が任意のロックされた命令によってロックされる間のサイクルの数。
L1D_CACHE.LD
(Event 40H, Umask 21H) キャッシュ可能なメモリから読み込まれるデータの数。
L1D_CACHE.ST
(Event 41H, Umask 22H) キャッシュ可能なメモリへ書き込まれるデータの数。
L1D_M_EVICT
(Event 47H, Umask 00H) L1 データキャッシュから退去され変更されたキャッシュ線の数。
L1D_M_REPL
(Event 46H, Umask 00H) L1 データキャッシュで割り付けられ変更された線の数。
L1D_PEND_MISS
(Event 48H, Umask 00H) 任意のクロックでミスされた未解決 (outstanding) の L1 データキャッシュの合計数。
L1D_PREFETCH.REQUESTS
(Event 4EH, Umask 10H) データキャッシュ線をプリフェッチするために要求された L1 データキャッシュの回数。
L1D_REPL
(Event 45H, Umask 0FH) L1 データキャッシュに持ち込まれた線の数。
L1D_SPLIT.LOADS
(Event 49H, Umask 01H) 2 つのキャッシュ線をスパン (span) するロード操作の数。
L1D_SPLIT.STORES
(Event 49H, Umask 02H) 2 つのキャッシュ線をスパン (span) する格納操作の数。
L1I_MISSES
(Event 81H, Umask 00H) ミスした命令フェッチユニットの数。
L1I_READS
(Event 80H, Umask 00H) 命令フェッチの数。
L2_ADS [ ,core=core]
(Event 21H) L2 アドレスバスが使用中であるサイクルの数。
L2_DBUS_BUSY_RD [ ,core=core]
(Event 23H) L2 データバスがデータをコアに転送することがビジーである間のサイクルの数。
L2_IFETCH [ ,cachestate= state][ ,core= core]
(Event 28H) 命令フェッチユニットから要求された命令キャッシュ線の数。
L2_LD [ ,cachestate= state][ ,core= core][ ,prefetch= prefetch]
(Event 29H) L1 キャッシュと L2 プリフェッチャから要求された L2 キャッシュ読み込みの数。
L2_LINES_IN [ ,core= core][ ,prefetch= prefetch]
(Event 24H) L2 キャッシュで割り付けられたキャッシュ線の数。
L2_LINES_OUT [ ,core= core][ ,prefetch= prefetch]
(Event 26H) 退去された L2 キャッシュ線の数。
L2_LOCK [ ,cachestate= state][ ,core= core]
(Event 2BH) L1 データキャッシュをミスしたキャッシュ線へのロックされたアクセスの数。
L2_M_LINES_IN [ ,core= core]
(Event 25H) L2 キャッシュ線の変更の数。
L2_M_LINES_OUT [ ,core= core][ ,prefetch= prefetch]
(Event 27H) L2 キャッシュから退去され変更された線の数。
L2_NO_REQ [ ,core= core]
(Event 32H) L2 キャッシュ要求がコアから保留中である間のサイクルの数。
L2_REJECT_BUSQ [ ,cachestate= state][ ,core= core][ ,prefetch= prefetch]
(Event 30H) 拒絶された L2 キャッシュ要求の数。
L2_RQSTS [ ,cachestate= state][ ,core= core][ ,prefetch= prefetch]
(Event 2EH) 完了した L2 キャッシュ要求の数。
L2_RQSTS.SELF.DEMAND.I_STATE
(Event 2EH, Umask 41H) (Alias “LLC Misses”) L2 キャッシュをミスしたこのコアから要求された完了した L2 キャッシュデマンド (要求) の数。これは、アーキテクチャの性能イベントです。
L2_RQSTS.SELF.DEMAND.MESI
(Event 2EH, Umask 4FH) (Alias “LLC References”) このコアから要求された完了した L2 キャッシュデマンド (要求) の数。
L2_ST [ ,cachestate= state][ ,core= core]
(Event 2AH) L1 キャッシュをミスし、L2 キャッシュからデータ要求した格納操作の数。
LOAD_BLOCK.L1D
(Event 03H, Umask 20H) L1 データキャッシュによってブロックされたロードの数。
LOAD_BLOCK.OVERLAP_STORE
(Event 03H, Umask 08H) 以前の格納で部分的にオーバラップするか、または前の格納でエイリアスされるロードの数。
LOAD_BLOCK.STA
(Event 03H, Umask 02H) まだ計算されていないアドレスがある先行する格納によってブロックされたロードの数。
LOAD_BLOCK.STD
(Event 03H, Umask 04H) データ値が知られていない同じアドレスに先行する格納によってブロックされたロードの数。
LOAD_BLOCK.UNTIL_RETIRE
(Event 03H, Umask 10H) リタイアされるまで、ブロックされたロード操作の数。
LOAD_HIT_PRE
(Event 4CH, Umask 00H) 同じキャッシュ線へプリフェッチと衝突するロード操作の数。
MACHINE_CLEARS.SMC
(Event C3H, Umask 01H) コードセクションにプログラムが書き込む回数。
MACHINE_NUKES.MEM_ORDER
(Event C3H, Umask 04H) メモリの順序衝突またはメモリの曖昧性を除去した予測ミスのために実行パイプラインが再開された回数。
MACRO_INSTS.ALL_DECODED
(Event AAH, Umask 03H) デコードされた命令の数。
MACRO_INSTS.CISC_DECODED
(Event AAH, Umask 02H) デコードされた複合命令の数。
MEMORY_DISAMBIGUATION.RESET
(Event 09H, Umask 01H) メモリの曖昧性を除去した予測ミスが起こった間のサイクルの数。
MEMORY_DISAMBIGUATION.SUCCESS
(Event 09H, Umask 02H) 曖昧性の除去が成功したロード操作の数。
MEM_LOAD_RETIRED.DTLB_MISS
(Event CBH, Umask 04H) DTLB をミスし、リタイアされたロード操作の数。
MEM_LOAD_RETIRED.L2_MISS
(Event CBH, Umask 02H) L2 キャッシュをミスし、リタイアされたロード操作の数。
MEM_LOAD_RETIRED.L2_HIT
(Event CBH, Umask 01H) L2 キャッシュをヒットし、リタイアされたロード操作の数。
MEM_LOAD_RETIRED.L2_LINE_MISS
(Event CBH, Umask 08H) L2 キャッシュをミスし、バス要求を引き起こしたロード操作の数。
MUL
(Event 12H, Umask 00H) 実行された乗算操作の数。このイベントは、 PMC1 だけで利用可能です。
MUL.AR
(Event 12H, Umask 81H) リタイアされた乗算操作の数。
MUL.S
(Event 12H, Umask 01H) 実行された乗算操作の数。
PAGE_WALKS.WALKS
(Event 0CH, Umask 03H) ITLB または DTLB ミスのために実行されたページ walk の数。
PAGE_WALKS.CYCLES
(Event 0CH, Umask 03H) ITLB または DTLB ミスによって引き起こされたページ walk に費やされたサイクルの数。
PREF_RQSTS_DN
(Event F8H, Umask 00H) Data Prefetch Logic ユニットから L2 キャッシュに発行された下向きのプリフェッチの数。
PREF_RQSTS_UP
(Event F0H, Umask 00H) Data Prefetch Logic ユニットから L2 キャッシュに発行された上向きのプリフェッチの数。
PREFETCH.PREFETCHNTA
(Event 07H, Umask 08H) 実行された PREFETCHNTA 命令の数。
PREFETCH.PREFETCHT0
(Event 07H, Umask 01H) 実行された PREFETCHT0 命令の数。
PREFETCH.SW_L2
(Event 07H, Umask 06H) 実行された PREFETCHT1PREFETCHT2 命令の数。
RAT_STALLS.ANY
(Event D2H, Umask 0FH) RAT_STALLS.FLAGS RAT_STALLS.FPSW, RAT_STALLS.PARTIALRAT_STALLS.ROB_READ_PORT のいずれかのためにストールしたサイクルの数。
RAT_STALLS.FLAGS
(Event D2H, Umask 04H) ストールを引き起こしたフラグレジスタのためにストールされた実行のサイクルの数。
RAT_STALLS.FPSW
(Event D2H, Umask 08H) 浮動小数点状態のワードが書き込まれた回数。
RAT_STALLS.PARTIAL_CYCLES
(Event D2H, Umask 02H) 前の命令によって部分的に書き込まれたレジスタの使用のために加えられた命令実行待ち時間のサイクルの数。
RAT_STALLS.ROB_READ_PORT
(Event D2H, Umask 01H) ROB 読み込みポートストールが生じたときのサイクルの数。
RESOURCE_STALLS.ANY
(Event DCH, Umask 1FH) 任意のリソース関連ストールが生じた間のサイクルの数。
RESOURCE_STALLS.BR_MISS_CLEAR
(Event DCH, Umask 10H) 分岐の予測ミスのためにストールされたサイクルの数。
RESOURCE_STALLS.FPCW
(Event DCH, Umask 08H) 浮動小数点制御ワードを書き込むためにストールされたサイクルの数。
RESOURCE_STALLS.LD_ST
(Event DCH, Umask 04H) 制限を超えたパイプラインでロードと格納の数の間のサイクルの数。
RESOURCE_STALLS.ROB_FULL
(Event DCH, Umask 01H) 再順序付けバッファが満杯であったときのサイクルの数。
RESOURCE_STALLS.RS_FULL
(Event DCH, Umask 02H) RS が満杯であった間のサイクルの数。
RS_UOPS_DISPATCHED
(Event A0H, Umask 00H) 実行のためにディスパッチされたマイクロオペレーション (micro-ops) の数。
RS_UOPS_DISPATCHED.PORT0
(Event A1H, Umask 01H) マイクロオペレーション (micro-ops) が、ポート 0 で実行にためにディスパッチされたサイクルの数。
RS_UOPS_DISPATCHED.PORT1
(Event A1H, Umask 02H) マイクロオペレーション (micro-ops) が、ポート 1 で実行にためにディスパッチされたサイクルの数。
RS_UOPS_DISPATCHED.PORT2
(Event A1H, Umask 04H) マイクロオペレーション (micro-ops) が、ポート 2 で実行にためにディスパッチされたサイクルの数。
RS_UOPS_DISPATCHED.PORT3
(Event A1H, Umask 08H) マイクロオペレーション (micro-ops) が、ポート 3 で実行にためにディスパッチされたサイクルの数。
RS_UOPS_DISPATCHED.PORT4
(Event A1H, Umask 10H) マイクロオペレーション (micro-ops) が、ポート 4 で実行にためにディスパッチされたサイクルの数。
RS_UOPS_DISPATCHED.PORT5
(Event A1H, Umask 20H) マイクロオペレーション (micro-ops) が、ポート 5 で実行にためにディスパッチされたサイクルの数。
SB_DRAIN_CYCLES
(Event 04H, Umask 01H) 格納バッファが使い果たされる間のサイクルの数。
SEGMENT_REG_LOADS.ANY
(Event 06H, Umask 00H) セグメントレジスタロードの数。
SEG_REG_RENAMES.ANY
(Event D5H, Umask 0FH) 任意のセグメントレジスタが改名された回数。
SEG_REG_RENAMES.DS
(Event D5H, Umask 02H) %ds レジスタが改名された回数。
SEG_REG_RENAMES.ES
(Event D5H, Umask 01H) %es レジスタが改名された回数。
SEG_REG_RENAMES.FS
(Event D5H, Umask 04H) %fs レジスタが改名された回数。
SEG_REG_RENAMES.GS
(Event D5H, Umask 08H) %gs レジスタが改名された回数。
SEG_RENAME_STALLS.ANY
(Event D4H, Umask 0FH) 任意のセグメントレジスタを改名するリソースの不足のためのストールの数。
SEG_RENAME_STALLS.DS
(Event D4H, Umask 02H) %ds レジスタのための改名のリソースの不足のためのストールの数。
SEG_RENAME_STALLS.ES
(Event D4H, Umask 01H) %es レジスタのための改名のリソースの不足のためのストールの数。
SEG_RENAME_STALLS.FS
(Event D4H, Umask 04H) %fs レジスタのための改名のリソースの不足のためのストールの数。
SEG_RENAME_STALLS.GS
(Event D4H, Umask 08H) %gs レジスタのための改名のリソースの不足のためのストールの数。
SIMD_ASSIST
(Event CDH, Umask 00H) 呼び出された SIMD 補助の数。
SIMD_COMP_INST_RETIRED.PACKED_DOUBLE
(Event CAH, Umask 04H) リタイアされた計算 SSE2 パックされた倍精度命令の数。
SIMD_COMP_INST_RETIRED.PACKED_SINGLE
(Event CAH, Umask 01H) リタイアされた計算 SSE2 パックされた単精度命令の数。
SIMD_COMP_INST_RETIRED.SCALAR_DOUBLE
(Event CAH, Umask 08H) リタイアされた計算 SSE2 スカラ倍精度命令の数。
SIMD_COMP_INST_RETIRED.SCALAR_SINGLE
(Event CAH, Umask 02H) リタイアされた計算 SSE2 スカラ単精度命令の数。
SIMD_INSTR_RETIRED
(Event CEH, Umask 00H) MMX を使用するリタイアされた SIMD 命令の数。
SIMD_INST_RETIRED.ANY
(Event C7H, Umask 1FH) リタイアされたストリーミング SIMD 命令の数。
SIMD_INST_RETIRED.PACKED_DOUBLE
(Event C7H, Umask 04H) リタイアされた SSE2 パックされた倍精度命令の数。
SIMD_INST_RETIRED.PACKED_SINGLE
(Event C7H, Umask 01H) リタイアされた SSE パックされた単精度命令の数。
SIMD_INST_RETIRED.SCALAR_DOUBLE
(Event C7H, Umask 08H) リタイアされた SSE2 スカラ倍精度命令の数。
SIMD_INST_RETIRED.SCALAR_SINGLE
(Event C7H, Umask 02H) リタイアされた SSE スカラの単精度命令の数。
SIMD_INST_RETIRED.VECTOR
(Event C7H, Umask 10H) リタイアされた SSE2 ベクトル命令の数。
SIMD_SAT_INSTR_RETIRED
(Event CFH, Umask 00H) リタイアされた飽和演算 SIMD 命令の数。
SIMD_SAT_UOP_EXEC.AR
(Event B1H, Umask 80H) リタイアされた SIMD 飽和演算マイクロオペレーション (micro-ops) の数。
SIMD_SAT_UOP_EXEC.S
(Event B1H, Umask 00H) 実行された SIMD 飽和演算マイクロオペレーション (micro-ops) の数。
SIMD_UOPS_EXEC.AR
(Event B0H, Umask 80H) リタイアされた SIMD マイクロオペレーション (micro-ops) の数。
SIMD_UOPS_EXEC.S
(Event B0H, Umask 00H) 実行された SIMD マイクロオペレーション (micro-ops) の数。
SIMD_UOP_TYPE_EXEC.ARITHMETIC.AR
(Event B3H, Umask A0H) 実行された SIMD パックされた演算マイクロオペレーション (micro-ops) の数。
SIMD_UOP_TYPE_EXEC.ARITHMETIC.S
(Event B3H, Umask 20H) 実行された SIMD パックされた演算マイクロオペレーション (micro-ops) の数。
SIMD_UOP_TYPE_EXEC.LOGICAL.AR
(Event B3H, Umask 90H) 実行された SIMD パックされた論理マイクロオペレーション (micro-ops) の数。
SIMD_UOP_TYPE_EXEC.LOGICAL.S
(Event B3H, Umask 10H) 実行された SIMD パックされた論理マイクロオペレーション (micro-ops) の数。
SIMD_UOP_TYPE_EXEC.MUL.AR
(Event B3H, Umask 81H) リタイアされた SIMD パックされた乗算マイクロオペレーション (micro-ops) の数。
SIMD_UOP_TYPE_EXEC.MUL.S
(Event B3H, Umask 01H) 実行された SIMD パックされた乗算マイクロオペレーション (micro-ops) の数。
SIMD_UOP_TYPE_EXEC.PACK.AR
(Event B3H, Umask 84H) リタイアされた SIMD パックされたマイクロオペレーション (micro-ops) の数。
SIMD_UOP_TYPE_EXEC.PACK.S
(Event B3H, Umask 04H) 実行された SIMD パックされたマイクロオペレーション (micro-ops) の数。
SIMD_UOP_TYPE_EXEC.SHIFT.AR
(Event B3H, Umask 82H) リタイアされた SIMD パックされたシフトマイクロオペレーション (micro-ops) の数。
SIMD_UOP_TYPE_EXEC.SHIFT.S
(Event B3H, Umask 02H) 実行された SIMD パックされたシフトマイクロオペレーション (micro-ops) の数。
SIMD_UOP_TYPE_EXEC.UNPACK.AR
(Event B3H, Umask 88H) 実行された SIMD アンパックされたマイクロオペレーション (micro-ops) の数。
SIMD_UOP_TYPE_EXEC.UNPACK.S
(Event B3H, Umask 08H) 実行された SIMD アンパックされたマイクロオペレーション (micro-ops) の数。
SNOOP_STALL_DRV [ ,agent= agent][ ,core= core]
(Event 7EH) snoop のためにストールされたバスの回数。このイベントは、スレッド独立です。
SSE_PRE_EXEC.L2
(Event 07H, Umask 02H) 実行された PREFETCHT1 命令の数。
SSE_PRE_EXEC.STORES
(Event 07H, Umask 03H) SSE の一時的でない格納命令が実行された回数。
SSE_PRE_MISS.L1
(Event 4BH, Umask 01H) 実行され、すべてのキャッシュレベルをミスした PREFETCHT0 命令の数。
SSE_PRE_MISS.L2
(Event 4BH, Umask 02H) 実行され、すべてのキャッシュレベルをミスした PREFETCHT1 命令の数。
SSE_PRE_MISS.NTA
(Event 4BH, Umask 00H) 実行され、すべてのキャッシュレベルをミスした PREFETCHNTA 命令の数。
STORE_BLOCK.ORDER
(Event 04H, Umask 02H) 格納が、グローバルに観測される別の格納をウェートしていた間のサイクルの数。
STORE_BLOCK.SNOOP
(Event 04H, Umask 08H) 格納が、内部または外部の snoop との衝突のためにブロックされた間のサイクルの数。
STORE_FORWARDS.GOOD
(Event 02H, Umask 81H) 格納されたデータがロードのために直接転送された回数。
THERMAL_TRIP
(Event 3BH, Umask C0H) 温度 trip (訳注: トラップの間違いか) の数。
UOPS_RETIRED.LD_IND_BR
(Event C2H, Umask 01H) 別の操作でロードを融合され、リタイアされたマイクロオペレーション (micro-ops) の数。
UOPS_RETIRED.STD_STA
(Event C2H, Umask 02H) 1 つのマイクロオペレーション (micro-ops) に融合された格納アドレス計算の数。
UOPS_RETIRED.MACRO_FUSION
(Event C2H, Umask 04H) リタイアされた命令のペアが 1 つのマイクロオペレーション (micro-ops) に融合された回数。
UOPS_RETIRED.FUSED
(Event C2H, Umask 07H) リタイアされた融合されたマイクロオペレーション (micro-ops) の数。
UOPS_RETIRED.NON_FUSED
(Event C2H, Umask 8H)
UOPS_RETIRED.ANY
リタイアされた融合されないマイクロオペレーション (micro-ops) の数。 (Event C2H, Umask 10H) リタイアされたマイクロオペレーション (micro-ops) の数。
X87_COMP_OPS_EXE.ANY.AR
(Event 10H, Umask 81H) リタイアされた x87 浮動小数点の計算のマイクロオペレーション (micro-ops) の数。
X87_COMP_OPS_EXE.ANY.S
(Event 10H, Umask 01H) 実行された x87 浮動小数点の計算のマイクロオペレーション (micro-ops) の数。
X87_OPS_RETIRED.ANY
(Event C1H, Umask FEH) リタイアされた浮動小数点の計算命令の数。
X87_OPS_RETIRED.FXCH
(Event C1H, Umask 01H) リタイアされた FXCH 命令の数。

イベント名の別名

次のテーブルは、 Performance Counters Library (libpmc, -lpmc) とそれらの CPU で使用される基本的なハードウェアイベントによってサポートされた PMC から独立している別名の間のマッピングを表示しています。
Alias Event PMC Class
branches BR_INST_RETIRED.ANY PMC_CLASS_IAP
branch-mispredicts BR_INST_RETIRED.MISPRED PMC_CLASS_IAP
ic-misses ICACHE.MISSES PMC_CLASS_IAP
instructions INST_RETIRED.ANY_P PMC_CLASS_IAF
interrupts HW_INT_RCV PMC_CLASS_IAP
unhalted-cycles CPU_CLK_UNHALTED.CORE_P PMC_CLASS_IAF

歴史

pmc ライブラリは、 FreeBSD 6.0 ではじめて登場しました。

作者

Performance Counters Library (libpmc, -lpmc) ライブラリは、 Joseph Koshy <jkoshy@FreeBSD.org>によって書かれました。
November 12, 2008 FreeBSD