インテルのみ表示可能 — GUID: iga1409334970968
Ixiasoft
インテルのみ表示可能 — GUID: iga1409334970968
Ixiasoft
3.5.1. MPU 領域の読み出しおよび書き込み動作
MPU 領域の読み出し動作は、領域の属性での現在の値を取得します。各 MPU 領域読み出し動作は、次の動作から成ります。
- mpubase.INDEXとmpubase.Dフィールドが MPU 領域を識別する設定ように設定された状態でのmpubaseレジスターへのwrctl命令の実行
- mpuacc.RDフィールドを 1 に設定し、mpuacc.WRフィールドをゼロにクリアーした状態でのmpuaccレジスターへのwrctl命令の実行。この動作はmpubaseレジスターとmpuaccレジスターの値をロードする
- mpubaseレジスターへのrdctl命令を実行し、ロードしたmpubaseレジスター値を読み出す
- mpuaccレジスターへのrdctl命令を実行し、ロードしたmpuaccレジスター値を読み出す
MPU 領域の読み出し動作ではmpubase.BASE、mpuacc.MASKまたはmpuacc.LIMIT、mpuacc.C、およびmpuacc.PERMの値を取得します。
MPU 領域の書き込み動作は領域の属性の新しい値を設定します。各 MPU 領域の書き込み動作は、次の動作から成ります。
- mpubase.INDEXとmpubase.Dフィールドが MPU 領域を識別する設定ように設定された状態でのmpubaseレジスターへのwrctl命令の実行
- mpuacc.WRフィールドを 1 に設定し、mpuacc.RDフィールドをゼロにクリアーした状態でのmpuaccレジスターへのwrctl命令の実行
MPU 領域の書き込み動作では、MPU 領域での新しい属性としてmpubase.BASE、mpuacc.MASKまたはmpuacc.LIMIT、mpuacc.C、およびmpuacc.PERMの値を設定します。
通常、wrctl命令はパイプラインをフラッシュし、コントロール・レジスターの書き込みによる影響がwrctl命令実行の完了直後に発生することを保証します。ただし、wrctl命令はmpubaseとmpuaccコントロール・レジスターが自動的にパイプラインをフラッシュしないように指示します。代わりに、システム・ソフトウェアは、必要に応じて ( パイプラインをフラッシュするレジスターにflushp命令またはwrctl命令を使用して ) パイプラインをフラッシュする役割があります。コンテクストスイッチは、通常、新しいスレッド用に MPU 領域を再プログラミングする必要があるため、各wrctl命令でパイプラインをフラッシュすると不要なオーバーヘッドが発生します。