2008/12/01

Intel CPU: Hardware Performance Counter(HPC)

intel CPUのハードウェアパフォーマンスカウンタ(HPC)は
自分で監視するイベントを指定できる汎用的なカウンタと
固定のイベントを監視する固定カウンタの二種類がある.

Core 2では汎用カウンタは2個,固定カウンタは3個ある.
固定カウンタで監視するイベントは
Inst_Retired.Any: 完了した命令の数
CPU_CLK_Unhalted.Core: HLT状態でないCPUのクロックサイクル数
CPU_CLK_Unhalted.Ref: 上記のreference cycle版

【用語】
CCCR: Counter Configuration ContRol
ESCRで選択されたイベントをフィルタリングしてカウントする場合に使用する.
CPL: Current Privilege Level
ESCR: Event Selection ContRol
LLC: Last Level Cache
MSR: Model Specific Register
PEBS: Precise Event-Based Sampling
PMC: PerforMance Counter
PMI: Performance Monitoring Interrupt

【命令】
(RD/WR)MSR: MSRをRead/Writeする命令
RDPMC: PMCをReadする命令

【制限】
MSRをRead/Writeする命令を実行できるのは特権モード(ring 0)のみ.
アプリケーション(ring 3)からはPMCのReadのみ可能.

【イベント】
[リタイアイベント]
リタイアしたイベントとは,マシンステートを確定した命令によるイベントのみを含む.

[非リタイアイベント]
非リタイアイベントは,マイクロアーキテクチャーにおける
アウトオブオーダーの推測による流れで発生する.

[L2キャッシュイベント]
・MEM_LOAD_RETIRED.L2_LINE_MISS
L2キャッシュのミスで発生したロード数

・MEM_LOAD_RETIRED.L2_MISS


【参考資料】
インテルCoreマイクロアーキテクチャー・プロセッサーのパフォーマンス・カウンター
MEM_LOAD_RETIRED.L2_LINE_MISS
MEM_LOAD_RETIRED.L2_MISS

rdmsr - 通信用語の基礎知識
CPU-CPUID-MSR - SyncHack
CPU-MSR - SyncHack
linux2.6-include-asm-i386-msr.h - LinuxKernelHackJapan

Intel® 64 and IA-32 Architectures Software Developer's Manuals

0 件のコメント: