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.

表 3-1. 擬似コード関数 ( 続き )<br />

関数 操作<br />

instruction_serialize() 副作用を持つ先行するすべてのレジスタ更新が、それ以降の命令とデータ・メモリ<br />

参照が実行される前に行われることが保証される。また、先行の SYNC.i 操作が命<br />

令キャッシュによって検出されることが保証される。<br />

instruction_synchronize() キャッシュ・フラッシュ (FC) 操作のために命令とデータ・ストリームを同期させ<br />

る。この関数により、先行のキャッシュ・フラッシュ操作がローカル・データ・<br />

キャッシュで検出されたときには、ローカル命令キャッシュでも検出されることが<br />

保証される。また、先行の FC 操作が別のプロセッサのデータ・キャッシュで検出<br />

されたときには、同じプロセッサの命令キャッシュ内でも検出されることが保証さ<br />

れる。<br />

is_finite(freg) 浮動小数点レジスタが有限数を含んでいる場合に true を返す。<br />

is_ignored_reg(regnum) regnum が無視されたアプリケーション・レジスタである場合に true を返し、それ<br />

以外の場合に false を返すブール関数。<br />

is_inf(freg) 浮動小数点レジスタが無限数を含んでいる場合に true を返す。<br />

is_interruption_cr(regnum) regnum が割り込みコントロール・レジスタである場合は true を返し、それ以外の<br />

場合は false を返すブール関数 ( 第 2 巻、第 1 部の 3.3.5 項「割り込みコントロー<br />

ル・レジスタ」を参照 )。<br />

is_kernel_reg(ar_addr) ar_addr がカーネル・レジスタ・アプリケーション・レジスタのアドレスである場<br />

合に 1 を返す。<br />

is_read_only_reg(rtype, raddr) rtype タイプのレジスタ・バンク内の raddr によってアドレス指定されるレジスタ<br />

が、読み取り専用レジスタである場合は、1 を返す。<br />

is_reserved_field(regclass, arg2, arg3) 指定されたデータが予約済みフィールドに 1 を書き込む場合に true を返す。<br />

is_reserved_reg(regclass, regnum) regnum が regclass レジスタ・ファイルで予約されている場合に true を返す。<br />

is_supported_hint(hint) 指定された hint をプロセッサがサポートしている場合は true を返す。この関数<br />

は、hint 値以外の要素に依存する場合がある ( 実行元の実行ユニットや、命令が<br />

エンコードされたスロット番号など )。<br />

long_branch_implemented() ロング型分岐が実装されているかどうかで TRUE または FALSE を返す、プロセッ<br />

サに依存するルーチン。<br />

make_icache_coherent(paddr) 物理アドレス paddr によってアドレス指定されているキャッシュ・ラインがプロ<br />

セッサ固有の方法でフラッシュされ、命令キャッシュがデータ・キャッシュに対し<br />

てコヒーレントにされる。<br />

mem_flush(paddr) 物理アドレス paddr によってアドレス指定されているラインは、メモリ階層の中<br />

のメモリよりも上のすべてのレベルで無効にされ、メモリとの間に整合性がない場<br />

合にはメモリに書き戻される。<br />

mem_flush_pending_stores() ライト・コーレシング・バッファおよびライト・バッファ内の未処理のストアの排<br />

出を開始するように、プロセッサに指示する。この操作は「ヒント」である。先行<br />

するストアが実際に排出されたかどうかは表示されない。<br />

mem_implicit_prefetch(vaddr, hint, type) vaddr によってアドレス指定されているラインを、hint によって指定されたメモ<br />

リ階層の位置に移動する。この関数はプロセッサに依存しており、無視される場合<br />

がある。type によって、プロセッサは、各種の命令タイプのプリフェッチを区別<br />

できる。<br />

mem_promote(paddr, mtype, hint) paddr でアドレス指定されているラインを、hint に指定されたアクセス・ヒント<br />

の条件に従って、メモリ階層の最高レベルに移動する。この関数はプロセッサに依<br />

存しており、無視される場合がある。<br />

mem_read(paddr, size, border, mattr,<br />

otype, hint)<br />

paddr で指定された物理メモリ位置から始まる size バイトを、border で指定され<br />

たバイト順序、mattr で指定されたメモリ属性、hint で指定されたアクセス・ヒ<br />

ントで返す。otype はこのアクセスのメモリ・アクセス順序属性を指定するもの<br />

で、UNORDERED または ACQUIRE でなくてはならない。<br />

3:254 第 3 巻 : 擬似コード関数

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!