24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

PREFETCH—Prefetch オペコード 命令 説明 0F,18,/1 PREFETCHT0 m8 t0 ヒントを使用して、アドレスで指定されたデータをプロ セッサの近くに移動する。 0F,18,/2 PREFETCHT1 m8 t1 ヒントを使用して、アドレスで指定されたデータをプロ セッサの近くに移動する。 0F,18,/3 PREFETCHT2 m8 t2 ヒントを使用して、アドレスで指定されたデータをプロ セッサの近くに移動する。 0F,18,/0 PREFETCHNTA m8 nta ヒントを使用して、アドレスで指定されたデータをプ ロセッサの近くに移動する。 操作 fetch (m8); 説明 例外条件がない場合、 プ リ フ ェ ッ チ命令は、 ア ド レ ス ・ バイ ト を含む行を、 ロ ー カ リ テ ィ ・ ヒ ン ト に よ っ て指定 さ れたキ ャ ッ シ ュ 階層内の位置に フ ェ ッ チす る。 指定された 行が、 すでにキャ ッシュ階層内のプロセッサによ り近いレベルにある場合は、 データは 移動 さ れない。 ModR/M バイ ト のビッ ト 5:3 は、 次のよ う にローカ リ テ ィ ・ ヒン ト を指 定する。 • テンポラル ・ データ (t0) - すべてのキャ ッ シュ ・ レベルにデー タをプ リ フ ェ ッチす る。 • 第 1 キャッシュ ・ レベル以上についてテンポラル(t1) - 第 0 キャッシュ ・ レベル以外 のすべてのキャ ッ シュ ・ レベルにデータをプ リ フ ェ ッ チする。 • 第 2 キャッシュ ・ レベル以上についてテンポラル(t2) - 第 0 および第1 キャッシュ ・ レベル以外のすべてのキャ ッ シュ ・ レベルにデータをプ リ フ ェ ッチする。 • すべてのキャ ッ シュ ・ レベルについて非テンポラル (nta) - 非テンポラルなキャ ッ シュ構造にデータをプリフェッチする。 ローカ リ テ ィ ・ ヒン ト は、 プログラムの機能に影響を与えない。 ロ ーカ リ テ ィ ・ ヒン ト はプロセ ッ サに依存する機能であ り、 一部のプロセ ッ サでは、 無効に された り無視され た り す る可能性があ る。 プ リ フ ェ ッ チ命令は、 コ ー ド のブ レ ー ク ポ イ ン ト 以外の例外を 発生 さ せない。 ま た、 こ の命令はプ ロ グ ラ ムの動作に影響を与えず、 無視される場合が ある。 プリ フェ ッチされるデータの量はプロセッサによ って異なるが、 最小でも 32 バイ トのデータがプリフェッチされる。 キャッシュ不可メモリ (UC メモリ ・ タイプまたは WC メモリ ・ タイプ ) に対す る プ リ フ ェ ッ チ命令は無視 さ れる。 上記の値以外の ModRM エン コ ー デ ィ ン グは予約済みであ る。 予約済みのエン コ ー デ ィ ン グを使用する と 、 将来 のプロセッサとの互換性を損な うおそれがある。 数値例外 なし。 保護モード例外 なし。 実アドレス・モード例外 なし。 3:1006 第 3 巻 : IA-32 ストリーミング SIMD 拡張命令リファレンス

PREFETCH—Prefetch ( 続き ) 仮想 8086 モード例外 なし。 追加の Itanium ベース・システム環境例外 なし。 コメント この命令は、 単なる ヒン ト である。 この命令は、 実行される と、 次に使用される こ と が 予測 さ れる デ ー タ をプ ロ セ ッ サの近 く に移動す る。 アプ リ ケ ー シ ョ ン ・ コ ー ド 内のプ リ フ ェ ッ チ命令のパ フ ォ ー マン ス は、 プ ロ セ ッ サに よ っ て異な る。 最大限の処理速度を達 成する には、 プ ロ セ ッ サご と に コ ー ド をチ ュ ー ニン グす る必要があ る。 ま た、 非テ ン ポ ラルなヒン ト は、 有益なキャ ッ シュ ・ データの汚染を最小限に抑えられる。 PREFETCH 命令は、 CR4.OSFXSR の値を無視す る。 こ の命令は新しいス ト リ ー ミ ン グ SIMD 拡張命令ス テ ー ト に影響を与えないため、 CR4.OSFXSR = 0 の場合で も 無効例外は 生成 さ れない。 第 3 巻 : IA-32 ストリーミング SIMD 拡張命令リファレンス 3:1007

PREFETCH—Prefetch<br />

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

0F,18,/1 PREFETCHT0 m8 t0 ヒントを使用して、アドレスで指定されたデータをプロ<br />

セッサの近くに移動する。<br />

0F,18,/2 PREFETCHT1 m8 t1 ヒントを使用して、アドレスで指定されたデータをプロ<br />

セッサの近くに移動する。<br />

0F,18,/3 PREFETCHT2 m8 t2 ヒントを使用して、アドレスで指定されたデータをプロ<br />

セッサの近くに移動する。<br />

0F,18,/0 PREFETCHNTA m8 nta ヒントを使用して、アドレスで指定されたデータをプ<br />

ロセッサの近くに移動する。<br />

操作<br />

fetch (m8);<br />

説明<br />

例外条件がない場合、 プ リ フ ェ ッ チ命令は、 ア ド レ ス ・ バイ ト を含む行を、 ロ ー カ リ<br />

テ ィ ・ ヒ ン ト に よ っ て指定 さ れたキ ャ ッ シ ュ 階層内の位置に フ ェ ッ チす る。 指定された<br />

行が、 すでにキャ ッシュ階層内のプロセッサによ り近いレベルにある場合は、 データは<br />

移動 さ れない。 ModR/M バイ ト のビッ ト 5:3 は、 次のよ う にローカ リ テ ィ ・ ヒン ト を指<br />

定する。<br />

• テンポラル ・ データ (t0) - すべてのキャ ッ シュ ・ レベルにデー タをプ リ フ ェ ッチす<br />

る。<br />

• 第 1 キャッシュ ・ レベル以上についてテンポラル(t1) - 第 0 キャッシュ ・ レベル以外<br />

のすべてのキャ ッ シュ ・ レベルにデータをプ リ フ ェ ッ チする。<br />

• 第 2 キャッシュ ・ レベル以上についてテンポラル(t2) - 第 0 および第1 キャッシュ ・<br />

レベル以外のすべてのキャ ッ シュ ・ レベルにデータをプ リ フ ェ ッチする。<br />

• すべてのキャ ッ シュ ・ レベルについて非テンポラル (nta) - 非テンポラルなキャ ッ<br />

シュ構造にデータをプリフェッチする。<br />

ローカ リ テ ィ ・ ヒン ト は、 プログラムの機能に影響を与えない。 ロ ーカ リ テ ィ ・ ヒン ト<br />

はプロセ ッ サに依存する機能であ り、 一部のプロセ ッ サでは、 無効に された り無視され<br />

た り す る可能性があ る。 プ リ フ ェ ッ チ命令は、 コ ー ド のブ レ ー ク ポ イ ン ト 以外の例外を<br />

発生 さ せない。 ま た、 こ の命令はプ ロ グ ラ ムの動作に影響を与えず、 無視される場合が<br />

ある。 プリ フェ ッチされるデータの量はプロセッサによ って異なるが、 最小でも 32 バイ<br />

トのデータがプリフェッチされる。 キャッシュ不可メモリ (UC メモリ ・ タイプまたは<br />

WC メモリ ・ タイプ ) に対す る プ リ フ ェ ッ チ命令は無視 さ れる。 上記の値以外の ModRM<br />

エン コ ー デ ィ ン グは予約済みであ る。 予約済みのエン コ ー デ ィ ン グを使用する と 、 将来<br />

のプロセッサとの互換性を損な うおそれがある。<br />

数値例外<br />

なし。<br />

保護モード例外<br />

なし。<br />

実アドレス・モード例外<br />

なし。<br />

3:1006 第 3 巻 : IA-32 ストリーミング SIMD 拡張命令リファレンス

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!