24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

表 3-1. 擬似コード関数 ( 続き ) tlb_translate(vaddr, size, type, cpl, *attr, *defer) 変換がイネーブルのときに、指定された仮想メモリ・アドレス (vaddr) の変換後の データ物理アドレスを返す。イネーブルでない場合は、vaddr を返す。size でア クセスのサイズを指定し、type でアクセスのタイプを指定する (read、write、 advance、spec など )。cpl でアクセス・チェックのための特権レベルを指定す る。*attr はマップされた物理メモリ属性を返す。フォルト条件が検出され、据え 置かれた場合、tlb_translate は *defer を設定して返る。フォルトが生成された が、フォルトがデファーされ ( 据え置かれ ) なかった場合、tlb_translate は返らな い。tlb_translate は、以下のフォルトをチェックする。 VHPT データ・フォルト データがネストされた TLB フォルト データ TLB フォルト 別のデータ TLB フォルト データ・ページ不在フォルト データ NaT ページ参照フォルト データ・キー・ミス・フォルト データ・キー許可フォルト データ・アクセス権フォルト データ・ダーティ・ビット・フォルト データ・アクセス・ビット・フォルト データ・デバッグ・フォルト サポートされないデータ参照フォルト tlb_translate_nonaccess(vaddr, type) 指定された仮想メモリ・アドレス (vaddr) の変換後のデータ物理アドレスを返す。 type でアクセスのタイプを指定する (FC、TPA など )。フォルトが生成された場合、 tlb_translate_nonaccess は返らない。以下のフォルトがチェックされる。 VHPT データ・フォルト データ TLB フォルト データがネストされた TLB フォルト データ・ページ不在フォルト データ NaT ページ参照フォルト tlb_vhpt_hash(vrn, vaddr61, rid, size) 指定された仮想リージョン番号 (vrn) と、61 ビットの仮想オフセット (vaddr61)、 リージョン識別子 (rid)、ページ・サイズ (size) を持つ VHPT エントリのアドレ スを生成する。tlb_vhpt_hash は、vaddr、rid、size パラメータをハッシュ処理 して、ハッシュ・インデックスを生成する。次に、このハッシュ・インデックスを PTA.size に基づいてマスクして、PTA.base と連結し、VHPT エントリのアドレス を生成する。ロング形式のハッシュ法は、プロセッサ固有である。 tlb_vhpt_tag(vaddr, rid, size) 指定された仮想アドレス (vaddr)、リージョン識別子 (rid)、ページ・サイズ (size) を持つ VHPT タグ識別子を生成する。tlb_vhpt_tag は、vaddr、rid、size パラメータをハッシュ処理して、変換エントリの識別子を生成する。このタグと ハッシュ・インデックスを組み合わせて、VHPT 内の変換エントリを一意に識別で きる。タグの生成方法は、プロセッサ固有である。すべてのプロセッサ・モデルの タグ関数は、生成されたタグのビット 63 (ti ビット ) が必ず 0 になるようにしなけ ればならない。 unimplemented_physical_address (paddr) 指定された物理アドレスが、このプロセッサ・モデルでサポートされていない場合 に TRUE を返す。それ以外の場合には FALSE を返す。この関数はモデル固有であ る。 undefined() 不定の 64 ビット値を返す。 undefined_behavior() 不定のプロセッサ動作を発生させる。不定な動作の程度については、第 1 巻、第 1 部の 3.5 節「未定義の動作」を参照のこと。 unimplemented_virtual_address (vaddr) 関数 操作 指定された仮想アドレスが、このプロセッサ・モデルでサポートされていない場合 に TRUE を返す。それ以外の場合には FALSE を返す。この関数はモデル固有であ る。 fp_update_fpsr(sf, tmp_fp_env) 浮動小数点命令のローカル状態をグローバル FPSR にコピーする。 3:260 第 3 巻 : 擬似コード関数

表 3-1. 擬似コード関数 ( 続き ) 関数 操作 fp_update_psr(dest_freg) dest_freg に基づいて、PSR.mfl または PSR.mfh を条件付きで設定する。 zero_ext(value, pos) ビット pos-1 から 0 までが value で埋められ、ビット位置 pos から 63 までがゼ ロとなっている 64 ビットの符号なし数値を返す。pos が 64 以上である場合には、 value が返される。 第 3 巻 : 擬似コード関数 3:261

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

関数 操作<br />

fp_update_psr(dest_freg) dest_freg に基づいて、PSR.mfl または PSR.mfh を条件付きで設定する。<br />

zero_ext(value, pos) ビット pos-1 から 0 までが value で埋められ、ビット位置 pos から 63 までがゼ<br />

ロとなっている 64 ビットの符号なし数値を返す。pos が 64 以上である場合には、<br />

value が返される。<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!