Nios II Gen2 プロセッサー・リファレンス・ガイド

ID 683836
日付 10/28/2016
Public
ドキュメント目次

3.4.2.9. tlbacc レジスター

tlbaccレジスターは TLB エントリーへのアクセスに使用され、MMU があるシステムでのみ使用できます。tlbaccレジスターは、ソフトウェアが TLB エントリーに書き込む値または以前に TLB エントリーから読み込んだ値を保持します。tlbaccレジスターは、完全な TLB エントリの一部分のみへのアクセスを提供します。pteaddr.VPNtlbmisc.PIDは残りの TLB エントリーフィールドを保持します。
表 24.  tlbacc コントロール・レジスター・フィールド
ビットフィールド
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
IG C R W X G PFN
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PFN

tlbaccレジスターへのwrctl命令の発行は、tlbaccレジスターに指定された値が書き込まれます。tlbmisc.WE = 1 の場合、wrctl命令も TLB 書き込み動作を開始し、TLB 書き込み動作は TLB エントリーを書き込みます。書き込まれる TLB エントリーは、pteaddr.VPNのラインの部分とtlbmisc.WAYフィールドで指定されます。書き込まれる値は、tlbaccレジスターに書き込まれた値とpteaddr.VPNおよびtlbmisc.PIDの値によって指定されます。また、TLB 書き込み動作では、tlbmisc.WAYがインクリメントされ、ソフトウェアは TLB エントリーを迅速に変更できます。

tlbaccレジスターへのrdctl命令の発行は、tlbaccレジスターの値が返されます。tlbaccレジスターは、ソフトウェアが TLB 読み取り操作をトリガーする際 ( つまり、wrctltlbmisc.RDを 1 に設定する場合 ) にハードウェアによって書き込まれます。

表 25.  tlbacc コントロール・レジスター・フィールドの説明
フィールド 説明 アクセス リセット 使用可能
IG IGはハードウェアによって無視され、オペレーティング・システム固有の情報を保持できます。ゼロとして読み出しますが、ゼロ以外として書き込めます。 読み出し / 書き込み 0 MMU のみ
C Cはデータキャッシュ可能フラグです。C = 0 の場合、データアクセスはキャッシュ不能です。C = 1 の場合、キャッシュ可能です。 読み出し / 書き込み 0 MMU のみ
R Rは読み出し可能フラグです。R = 0 の場合、ロード命令はメモリーへのアクセスを許可しません。R = 1 の場合、ロード命令はメモリーへのアクセスを許可します。 読み出し / 書き込み 0 MMU のみ
W Wは書き込み可能なフラグです。W = 0 の場合、ストアー命令はメモリーへのアクセスを許可しません。 W = 1 の場合、ストアー命令はメモリーへのアクセスを許可します。 読み出し / 書き込み 0 MMU のみ
X Xは実行可能フラグです。X = 0 の場合、命令は実行できません。X = 1 の場合、命令を実行することができます。 読み出し / 書き込み 0 MMU のみ
G Gはグローバルフラグです。G = 0 の場合、tlbmisc.PIDは TLB ルックアップに含まれます。G = 1 の場合、tlbmisc.PID は無視され。仮想ページナンバーのみが TLB ルックアップで使用されます。 読み出し / 書き込み 0 MMU のみ
PFN PFNは物理フレーム・ナンバー・フィールドです。全ての未使用の上位ビットはゼロである必要があります。 読み出し / 書き込み 0 MMU のみ

tlbaccレジスター・フォーマットはオペレーティング・システムのページテーブルのエントリーで推奨されるフォーマットです。IGビットはwrctlからtlbaccへのハードウェアで無視され、tlbaccからのrdctlでゼロとして読み出されます。オペレーティング・システムは、IGビットを使用して、TLB 書き込み動作でこれらのビットをゼロにクリアーすることなく、オペレーティング・システム固有の情報を保持することができます。