第二部 トロン仕様チップ命令詳細第十七章 MMU関連命令
STATE(特権命令)
MMU関連命令 <<L1>>,<<L2>>

【ニモニックとオペランド】

STATE srcadr, dest

【機能】

Store from address translation table entry
アドレス変換テーブルエントリからのストア

【オプション】

/PT PTEからのストア
/ST STEからのストア

【命令フォーマットと表記法】

ttt ストアするアドレス変換テーブルエントリ
ttt = 000 PTEからのストア(/PT)
ttt = 001 STEからのストア(/ST)

これ以外の ttt 指定は予約命令例外を発生させます。

レジスタ上のパラメータ

R1 : UATBと等価の情報

【解説】

 この命令はsrcadrオペランドの実効アドレス(論理アドレス)を計算し、それを物理アドレスに変換する際に使用するアドレス変換テーブルエントリ(ATE)destに格納します。STEをストアするか、PTEをストアするかは、tttで指定します。
 srcadrで示された論理アドレスが正の場合、UATBではなく汎用レジスタR1を使用してアドレス変換が行われます。したがって、UATBの中で常に0のビットはR1でも0でなければなりません(チェックは行いません)。しかし、論理アドレスが負の場合には、アドレス変換はSATBを使用して通常の命令と同様に行われます。
 この命令の実行中にリング遷移違反例外が検出されても、無視されます。他の例外はV_flagF_flagをセットして示され、EIT処理なしに命令が完了して、デスティネーションオペランドは変わりません。フラグのセット条件として以下の4つの場合があります。
(1) 正常終了 ; ストアされたATEの次段がページイン。
(V_flag = 0, F_flag = 0)
(2) ATEのストア成功。しかし、未使用域参照不正ATE、またはページ不在例外のため次段がページ不在。
(V_flag = 0, F_flag = 1)
(3) 未使用域参照かまたは不正ATE例外のためにATEのストア失敗。
(V_flag = 1,F_flag = 0)
(4) アドレス変換中に検出されたページ不在例外のためにATEのストア失敗。
(V_flag = 1, F_flag = 1)

“次段”はアドレス変換プロセスの次の段を意味しています。セクションテーブルエントリをストアする(/STオプション)場合にはページテーブルが次の段であり、ページテーブルエントリをストアする(/PTオプション)場合にはページフレームが次の段です。
  (1), (2)のケース(STATEの正常終了)では、V_flagがクリアされ、tttで示されたアドレステーブルエントリからPIビットの反転値がF_flagに入ります。
  STATE命令は、PSWのATビットの設定に関係なく、srcadrオペランドのアドレス変換を行います。destオペランドは、通常のアドレス変換を行います。
STATEは特権命令です。

【フラグ変化】

【発生EIT】

RIE  srcadr [Gen/a], dest [Gen-S/w]のアドレッシングモード違反
RIE ttt ≧ 010, s = 1
PIVE リング0以外で実行

【使用例】



 汎用レジスタR3の内容で指定されたオペランドの論理アドレスを計算し、ページテーブルの対応エントリの内容をR5に書き込みます。