16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

RDTSC—Read Time-Stamp Counter<br />

オペコード 命令 説明<br />

0F 31 RDTSC タイムスタンプ・カウンタを EDX:EAX に読み込む。<br />

説明<br />

プロセッサのタイムスタンプ ・ カウンタの現在の値を EDX:EAX レジスタにロードする。<br />

タイムスタンプ・ カウンタは、 64 ビッ トのMSR に包含されている。 MSR の上位 32<br />

ビッ トがEDX レジスタにロード され、 下位32 ビットがEAX レジスタにロード される。<br />

プロセッサは、 クロッ ク ・ サイクルごとにタイムスタンプ ・ カウンタ MSR をインク リ<br />

メン ト し、 プロセッサがリセッ ト されるとカウンタを 0 にリセットする。<br />

IA-32 シ ス テ ム環境では、 CR4 レジスタのタイムスタンプ ・ディスエーブル (TSD) フラ<br />

グは、 RDTSC 命令の使用を制限す る。 TSD フラグがクリアされていると、 RDTSC 命令<br />

はどの特権レベルでも実行できる。 このフラグがセッ ト されている と、 命令は特権レベ<br />

ル 0 だけで実行できる。 RDMSR 命令を使用してタ イ ム ス タ ンプ ・ カ ウ ン タ も 読み取れ<br />

る。<br />

Itanium ベース ・ システム環境では、 RDTSC 命令の使用は、 PSR.si と CR4.TSD によって<br />

制限 さ れる。 PSR.si がク リアされ、 CR4.TSD がク リアされている場合は、 RDTSC 命令<br />

はどの特権レベルでも実行できる。 PSR.si がセッ ト されているか、 または CR4.TSD が<br />

セッ ト されている場合は、 RDTSC 命令は特権レベル 0 以外では実行で き ない。<br />

RDTSC 命令は、 シ リ アル化命令ではない。 そのため、 カ ウ ン タ を読み取る前に、 前のす<br />

べての命令が実行される ま で待つこ と をしない。 同様に、 読み取り操作が行われる前に、<br />

後続の命令が実行を開始している場合 も ある。<br />

この命令は、 Pentium プロセッサでインテル ・ アーキテクチャに導入された。<br />

操作<br />

IF (IA-32 System Environement)<br />

IF (CR4.TSD = 0) OR ((CR4.TSD = 1) AND (CPL=0))<br />

THEN<br />

EDX:EAX ← TimeStampCounter;<br />

ELSE (* CR4 is 1 and CPL is 1, 2, or 3 *)<br />

#GP(0)<br />

FI;<br />

ELSE /*Itanium System Environment*/<br />

SECURED = PSR.si || CR4.TSD;<br />

IF (!SECURED) OR (SECURED AND (CPL=0))<br />

THEN<br />

EDX:EAX ← TimeStampCounter;<br />

ELSE (* CR4 is 1 and CPL is 1, 2, or 3 *)<br />

#GP(0)<br />

FI;<br />

FI;<br />

影響を受けるフラグ<br />

なし。<br />

第 3 巻 : IA-32 基本命令リファレンス 3:711

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!