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.

擬似コード関数 3<br />

この章では、 Itanium ® 命令のペー ジで使用しているすべての擬似コ ー ド 関数を示す。<br />

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

関数 操作<br />

xxx_fault(parameters ...) フォルト関数はいくつか存在する。個々のフォルト関数は、そのフォルトに固有の<br />

パラメータを受け付ける ( 例外コード値、仮想アドレスなど )。フォルトがスペ<br />

キュレーティブ・ロード例外のためにデファーされた ( 据え置かれた ) 場合、フォ<br />

ルト・ルーチンでデファー ( 据え置き ) が行われたことの通知とともに返る。それ<br />

以外の場合、フォルト・ルーチンは返らず、命令シーケンスを終了させる。<br />

xxx_trap(parameters ...) トラップ関数はいくつか存在する。個々のトラップ関数は、そのトラップに固有の<br />

パラメータを受け付ける ( トラップ・コード値、仮想アドレスなど )。トラップ・<br />

ルーチンは返らない。<br />

acceptance_fence() キャッシングされていない順序付きシーケンシャル・メモリ・ページに対する先行<br />

のデータ・メモリ参照が、後続のデータ・メモリ参照がプロセッサによって実行さ<br />

れる前に「受け付けられる」ようにする。<br />

alat_cmp(rtype, raddr) rtype によって指定されたレジスタ・タイプと、raddr によって指定されたレジス<br />

タ・アドレスに一致する ALAT エントリを見つけた場合に 1 を返す。それ以外の場<br />

合はゼロを返す。この関数はプロセッサ固有である。プロセッサは、ALAT 内に一<br />

致するエントリが存在している場合でも、( 一致するものがなかったことを示す )<br />

ゼロを返すように任意に設定できる。これにより、高速な ALAT ルックアップ・<br />

サーキットを設計する際のプロセッサの柔軟性が実現されている。<br />

alat_frame_update(delta_bof, delta_sof) ALAT に対して、フレームの下端やフレームのサイズが変更されたことを通知する。<br />

これにより、ALAT のタグ・ビットを管理したり、その他の必要な管理機能を実現<br />

できる。<br />

alat_inval() ALAT 内のすべてのエントリを無効にする。<br />

alat_inval_multiple_entries(paddr, size) ALAT に対して、paddr によって指定された物理メモリ・アドレスと、size に<br />

よって指定されたアクセス・サイズを使って照会を発行する。一致したすべての<br />

ALAT エントリが無効になる。値は返されない。<br />

alat_inval_single_entry(rtype, rega) ALAT に対して、rtype によって指定されたレジスタ・タイプと、rega によって<br />

指定されたレジスタ・アドレスを使って照会を発行する。一致した ALAT エントリ<br />

が 1 つだけ無効になる。値は返されない。<br />

alat_write(rtype, raddr, paddr, size) rtype によって指定されたレジスタ・タイプ、raddr で指定されたレジスタ・アド<br />

レス、paddr で指定された物理メモリ・アドレス、size で指定されたアクセス・<br />

サイズを使って、新しい ALAT エントリを割り当てる。値は返されない。この関数<br />

によって、特定の raddr に対応する ALAT エントリが 1 つしか存在しないことが<br />

保証される。ld.c.nc、ldf.c.nc、または ldfp.c.nc 命令の raddr が既存の<br />

ALAT エントリのレジスタ・タグに一致したが、命令の size や paddr が既存のエ<br />

ントリとは異なる場合、この関数は既存のエントリを保存するか、それを無効にし<br />

て、命令で指定された size と paddr を使って新しいエントリを書き込む。<br />

align_to_size_boundary(vaddr, size) size によって指定される境界にアライメントが合わされた vaddr を返す。<br />

branch_predict(wh, ih, ret, target, tag) プロセッサの分岐予測構造を更新する、プロセッサに依存するルーチン。<br />

check_branch_implemented(check_type) 失敗したチェック命令によって分岐が発生する場合は TRUE、スペキュレーティブ<br />

操作フォルトが発生する場合は FALSE を返す、プロセッサに依存するルーチン。<br />

結果は、チェック命令のタイプ (CHKS_GENERAL、CHKS_FLOAT、<br />

CHKA_GENERAL、CHKA_FLOAT) によって異なる。また、結果は他の導入されて<br />

いるパラメータに依存する。<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!