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

名称

pmc.sandybridgeucIntel Sandy Bridge ファミリ CPU のための uncore 測定イベント

ライブラリ

Performance Counters Library (libpmc, -lpmc)

書式

#include < pmc.h>

解説

Intel Sandy Bridge CPU は、 Intel 性能測定アーキテクチャのバージョン 3 に適合する PMC を含んでいます。これらの CPU は、2 つの PMC のクラスを含んでいます:
PMC_CLASS_UCF
カウンタごとのたった 1 つのハードウェアのイベントをカウントする固定関数のカウンタ。
PMC_CLASS_UCP
ハードウェアのイベントの定義された設定のうちの 1 つをカウントするように設定されるプログラマブルカウンタ。

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

Intel Sandy Bridge PMC は、次に文書化されています: Volume 3B: System Programming Guide, Part 2, Intel(R) 64 and IA-32 Architectures Software Developers Manual, Order Number: 253669-039US, Intel Corporation, May 2011.

SANDYBRIDGE UNCORE 固定関数 PMC

これらの PMC とそれらのサポートされたインベントは、 pmc.ucf(3) に文書化されています。このファミリのすべての CPU が、固定関数のカウンタを実装しているとは限りません。

SANDYBRIDGE UNCORE プログラマブル PMC

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

イベント修飾子

これらの PMC のためのイベント指定子は、次の共通の修飾子をサポートします:
cmask= value
1 サイクルで測定されたイベントを設定する数が value 以上である場合のみ、増加する PMC を設定します。
edge
他の修飾子によって表現された条件のアサートされた遷移にデアサートの数をカウントする PMC を設定します。指定されるなら、カウンタは、条件が真である間のロックの数に関係なく、条件が真になるときはいつでも一度だけ増加されます。
inv
サイクルごとのイベントの数が“ cmask”修飾子によって指定された値未満であるとき、カウンタを増加させ、“ cmask”修飾子が存在するとき、比較の意味を逆にします。

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

Sandy Bridge プログラマブル PMC は、次のイベントをサポートします:
CBO_XSNP_RESPONSE.RSPIHITI
(Event 22H, Umask 01H) プロセッサのコアこの Cbox によって初期化された要求まで受信された応答をスヌープ (snoop) します。 20H、40H、80H の umask 値のうちの 1 つと組み合わせなければなりません。
CBO_XSNP_RESPONSE.RSPIHITFSE
(Event 22H, Umask 02H) 20H、40H、80H の umask 値のうちの 1 つと組み合わせなければなりません。
CBO_XSNP_RESPONSE.RSPSHITFSE
(Event 22H, Umask 04H) 20H、40H、80H の umask 値のうちの 1 つと組み合わせなければなりません。
CBO_XSNP_RESPONSE.RSPSFWDM
(Event 22H, Umask 08H)
CBO_XSNP_RESPONSE.RSPIFWDM
(Event 22H, Umask 01H)
CBO_XSNP_RESPONSE.AND_EXTERNAL
(Event 22H, Umask 20H) クロスコア (cross-core) のフィルタは、外部のスヌープ要求の結果をスヌープ (snoop) します。 01H、02H、04H、08H、10H の少なくとも 1 つと組み合わせなければなりません。
CBO_XSNP_RESPONSE.AND_XCORE
(Event 22H, Umask 40H) クロスコア (cross-core) のフィルタは、コア要求の結果をスヌープ (snoop) します。 01H、02H、04H、08H、10H の少なくとも 1 つと組み合わせなければなりません。
CBO_XSNP_RESPONSE.AND_XCORE
(Event 22H, Umask 80H) クロスコア (cross-core) のフィルタは、LLC 追い立て (eviction) の結果をスヌープ (snoop) します。 01H、02H、04H、08H、10H の少なくとも 1 つと組み合わせなければなりません。
CBO_CACHE_LOOKUP.M
(Event 34H, Umask 01H) アクセスキャッシュと M-状態のラインを見つける LLC 検索要求。 10H、20H、40H、80H の umask 値のうちの 1 つと組み合わせなければなりません。
CBO_CACHE_LOOKUP.E
(Event 34H, Umask 02H) アクセスキャッシュと E-状態のラインを見つける LLC 検索要求。 10H、20H、40H、80H の umask 値のうちの 1 つと組み合わせなければなりません。
CBO_CACHE_LOOKUP.S
(Event 34H, Umask 04H) アクセスキャッシュと S-状態のラインを見つける LLC 検索要求。 10H、20H、40H、80H の umask 値のうちの 1 つと組み合わせなければなりません。
CBO_CACHE_LOOKUP.I
(Event 34H, Umask 08H) アクセスキャッシュと I-状態のラインを見つける LLC 検索要求。 10H、20H、40H、80H の umask 値のうちの 1 つと組み合わせなければなりません。
CBO_CACHE_LOOKUP.AND_READ
(Event 34H, Umask 10H) プロセッサのコアの初期化されたキャッシュ可能な読み込み要求のフィルタ。 01H、02H、04H、08H の少なくとも 1 つと組み合わせなければなりません。
CBO_CACHE_LOOKUP_AND_READ2
(Event 34H, Umask 20H) プロセッサのコアの初期化されたキャッシュ可能な書き込み要求のフィルタ。 01H、02H、04H、08H の少なくとも 1 つと組み合わせなければなりません。
CBO_CACHE_LOOKUP.AND_EXTSNP
(Event 34H, Umask 40H) 外部スヌープ (snoop) 要求のフィルタ。 01H、02H、04H、08H の少なくとも 1 つと組み合わせなければなりません。
CBO_CACHE_LOOKUP.AND_ANY
(Event 34H, Umask 80H) キャッシュ不可能なノンコヒーレント (noncoherent) 要求を含む任意の IRQ または IPQ の初期化された要求のフィルタ。 01H、02H、04H、08H の少なくとも 1 つと組み合わせなければなりません。
IMPH_CBO_TRK_OCCUPANCY.ALL
(Event 80H, Umask 01H) コア発信 (core-outgoing) の有効なエントリの数によって重みつけられたサイクルをカウントします。有効なエントリは、IDIO または DRSO のメッセージの最初への割り付けの間です。コヒーレント (coherent) とインコヒーレント (incoherent) のトラフィックのためのアカウント。カウンタ 0 のみ。
IMPH_CBO_TRK_REQUEST.ALL
(Event 81H, Umask 01H) コア発信 (core-outgoing) エントリの数をカウントします。コヒーレント (coherent) とインコヒーレント (incoherent) のトラフィックのためのアカウント。
IMPH_CBO_TRK_REQUEST.WRITES
(Event 81H, Umask 20H) 全部 (full)、部分的 (partial) と追い立て (eviction) を含む割り付けられた書き込みエントリの数をカウントします。
IMPH_CBO_TRK_REQUEST.EVICTIONS
(Event 81H, Umask 80H) 割り付けられた追い立て (eviction) の数をカウントします。
IMPH_COH_TRK_OCCUPANCY.ALL
(Event 83H, Umask 01H) コヒーレント (coherent) トラッカ (tracker) キューのコア発信 (core-outgoing) の有効なエントリの数によって重み付けられたサイクルをカウントします。カウンタ 0 のみ。
IMPH_COH_TRK_REQUEST.ALL
(Event 84H, Umask 01H) コヒーレント (coherent) トラッカ (tracker) キューのコア発信 (core-outgoing) のエントリの数をカウントします。

歴史

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

作者

Performance Counters Library (libpmc, -lpmc) ライブラリは、 Joseph Koshy <jkoshy@FreeBSD.org>によって書かれました。 Sandy Bridge マイクロアーキテクチャのサポートは、 Davide Italiano <davide@FreeBSD.org>によって追加されました。
October 19, 2012 FreeBSD