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.

MASKMOVQ (Non-temporal byte mask store of packed integer in a MMX technology register) 命<br />

令は、 MMX テクノロジ ・ レジスタから、 EDI レジスタで指定されたロケーションにデー<br />

タ を ス ト アす る。 こ の命令は、 第 2 の MMX テクノロジ・マスク・レジスタの各バイトの<br />

最上位ビ ッ ト を使用して、 第 1 の MMX テクノロジ・レジスタのデータを、 バイトごとに 選択した上で書き込む。 こ の命令は、 WC メ モ リ ・ タ イ プのすべての特性を持つ、 暗黙的<br />

に順序設定の緩いメモ リ 操作になる。 すなわち、 非テンポ ラルなス ト アを連続して実行す<br />

る と、 デー タがプログ ラムの順序でメモ リ に書き込まれない場合がある。 ラ イ ト ・ アロ<br />

ケー トは行われず( プ ロ セ ッ サは、 ス ト アを実行す る前に、 対応す る キ ャ ッ シ ュ ・ ラ イ ン<br />

を キ ャ ッ シ ュ 階層内に フ ェ ッ チしない )、 ライト・コンバイン/ コラプスが行われ、キャッ<br />

シ ュ汚染が最小限に抑え ら れる。<br />

MOVNTQ (Non-temporal store of packed integer in a MMX technology register) 命令は、 MMX<br />

テ ク ノ ロ ジ ・ レ ジ ス タ か ら メ モ リ にデー タ を ス ト アす る。 こ の命令は、 暗黙的に順序設定<br />

の緩いメモ リ 操作にな り 、 ラ イ ト ・ アロ ケ ー ト は行われず、 キ ャ ッ シ ュ汚染が最小限に抑<br />

えられる。<br />

MOVNTPS (Non-temporal store of packed single-precision floating-point) 命令は、 ス ト リ ー ミ<br />

ング SIMD 拡張命令レ ジ ス タ か ら メ モ リ にデ ー タ を ス ト アする。 メ モ リ ・ ア ド レ ス は 16<br />

バイ ト にアライメン トが合っていなければならない。 アライメン トが合っていない場合<br />

は、 一般保護例外が発生する。 こ の命令は、 暗黙的に順序設定の緩いメモ リ 操作にな り 、<br />

ラ イ ト ・ アロ ケ ー ト は行われず、 キ ャ ッ シ ュ 汚染が最小限に抑え ら れる。<br />

非テンポラルなス ト ア と通常のキャ ッ シュ可能ス ト アの主な相違点は、 ラ イ ト ・ アロケー<br />

ションのポリシーの違いである。非テンポラルなヒントは、書き込み先エリアのメモリ・<br />

タ イ プに よ っ て無効に される可能性があ る ため、 以下の事項に注意する必要があ る。<br />

• プ ロ グ ラ マが、 キ ャ ッ シ ュ 不可メ モ リ に対する非テ ン ポ ラ ルなス ト アを指定した場<br />

合は、 キ ャ ッ シ ュ不可ス ト ア と 同様のス ト ア操作が行われる。 つ ま り 、 非テ ン ポ ラ<br />

ルな ヒ ン ト は無視 さ れ、 そのエ リ アの メ モ リ ・ タ イ プは変更されない。 キ ャ ッ シ ュ<br />

不可の用語は、 書き込み先エ リ アが UC または WP メモリ ・ タイプとしてマッピン<br />

グされているの意味である。 メモリ ・エリアがWB、 WT、 または WC としてマッピ<br />

ン グ さ れてい る場合は、 非テ ン ポ ラ ルなス ト アを指定す る と 、 順序設定の緩い (WC)<br />

セマンテ ィ ッ クスの動作が実行される。<br />

• プ ロ グ ラ マが、 キ ャ ッ シ ュ 可能メ モ リ に対する非テ ン ポ ラ ルなス ト アを指定した場<br />

合は、 結果は次のいずれかになる。<br />

• デ ー タ がキ ャ ッ シ ュ 階層内にある場合は、 その命令が整合性を保証する。 ただ<br />

し、 これを実現する方法は、 プロセッサによって異なる。 例えば、 キャッシュ階<br />

層内の同じ位置でデ ー タ を更新し、 そのエ リ アに割 り 当て ら れたメ モ リ ・ タ イ プ<br />

のセマンテ ィ ッ クスを変えないこ と ができ る。 あるいは、 キャ ッ シュからデータ<br />

を排出して、 新しい非テンポラルなデー タを (WC のセマンテ ィ ッ クスを持つ )<br />

メモリ に書き込める。<br />

• データがキャ ッシュ階層内にな く、 書き込み先エリアが WB、 WT、 または WC<br />

と してマ ッ ピング されている場合は、 ト ランザク シ ョ ンは順序設定の緩いメモ リ<br />

操作になり、 すべての WC メモリのセマンティ ッ クスが適用される。 非テンポ<br />

ラルなス ト アは、 ラ イ ト ・ アロケー ト を行わない。 プロセッ サに よ っては、 これ<br />

らのストアのコラプスと コンバインを行う ものがある。<br />

• 一般的に、 WC のセマンテ ィ ッ クスでは、 ソフ ト ウ ェアが、 他のプロセッサおよび他<br />

のシステム ・ エージェン ト ( グラフ ィ ック ・ カー ドなど ) に対するコヒーレンシを保<br />

証する必要がある。 デー タ を生産するルーチン と 消費するルーチンのモデルを使用す<br />

る場合は、 適切な同期処理 と フ ェ ンス操作 ( 後述の SFENCE を参照 ) を実行しなけれ<br />

ばならない。 フ ェンス操作は、 すべてのシステム ・ エージ ェ ン ト が、 ス ト アされた<br />

デー タ をグ ロ ーバルに参照で き る よ う に保証する。 例えば、 フ ェ ンスを実行しない<br />

と、 書き込まれたキャッシュ ・ ラインがプロセッサ内に滞留し、 他のエージェントが<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!