16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

sync ─ メモリ同期化 (Memory Synchronization)<br />

書式 : (qp) sync.i M24<br />

説明 : sync.i 命令に よ っ て、 ロ ー カ ル ・ プ ロ セ ッ サか ら 以前に発行さ れたキ ャ ッ シ ュ のフ ラ ッ<br />

シュ (fc、 fci) 操作がロ ー カル ・ デー タ ・ メ モ リ の参照で検出可能にな っ た時点に、 先行<br />

の fc 操作がロ ー カル ・ プ ロセ ッ サの命令フ ェ ッ チ ・ ス ト リ ー ムか ら も 検出される こ と が<br />

保証 される。 さ ら に、 fc、 fci 操作が事前に起動 されている と 、 それら の操作が リ モー<br />

ト・プロセッサ上のデータ・メモリの参照で検出されるようになった時点に、 リモート・<br />

プ ロセ ッ サ上の命令メモ リ 参照で も 検出 される こ と が保証 される。 sync.i は、 別のプロ<br />

セッサから観察される よ う に、 すべてのキャ ッ シュ ・ フラ ッ シュ操作に対して順序付け<br />

される。 sync.i とそれに先行する fc は、 別々の命令グループになければならない。 セ<br />

マンテ ィ ッ クス上の必要がある場合、 sync.i により fc、 fci が他のプロセ ッ サ上のデー<br />

タ ・ ス ト リ ー ムか ら検出で き る よ う に適切に強制す るためには、 プ ラ グ ラ マは明示的に<br />

順序づけ されたデー タ参照 (acquire ( 取得 )、 release ( 解放 )、 fence ( フェンス) のいずれか<br />

のタイプ ) を挿入しなければならない。<br />

sync.i は、 ロー カル ・ プロセ ッサおよび リ モー ト ・ プロセッサ上の命令キ ャ ッ シ ュ と<br />

デ ー タ ・ キ ャ ッ シ ュ と の間の順序付け関係を維持する場合に使用 さ れる。 命令を シ リ ア<br />

ル化す る操作を使用して、 ロ ー カ ル ・ プ ロ セ ッ サで sync.i に よ っ て起動された同期化<br />

操作がプ ロ グ ラ ム実行中の特定の時点で観察 さ れていた こ と を確認で き る。<br />

自己修正コ ー ド ( ローカル・プロセッサ) の例 :<br />

3:232 第 3 巻 : 命令リファレンス<br />

sync<br />

st [L1] = data //store into local instruction stream<br />

fc L1 //flush stale datum from instruction/data cache<br />

;; //require instruction boundary between fc and sync.i<br />

sync.i //ensure local and remote data/inst caches<br />

//are synchronized<br />

;;<br />

srlz.i //ensure sync has been observed by the local processor,<br />

;; //ensure subsequent instructions observe<br />

//modified memory<br />

L1: target //instruction modified<br />

操作 : if (PR[qp]) {<br />

instruction_synchronize();<br />

}<br />

割り込み : なし

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!