2.5.1. コプロセッサアクセス制御レジスタ

CPACRレジスタは、コプロセッサCP10およびCP11のアクセス権を設定し、これらによってCortex-A9 NEON MPE機能が稼働されます。また、ソフトウェアからこのレジスタを使用して、システムに特定のコプロセッサが存在しているかどうかを判断できます。

CPACRレジスタの特徴は次のとおりです。

CPACRレジスタのビット割り当てを、Figure 2.1に示します。

Figure 2.1. CPACRレジスタのビット割り当て

To view this graphic, your browser must support the SVG format. Either install a browser with native support, or install an appropriate plugin such as Adobe SVG Viewer.


CPACRレジスタのビット割り当てを、Table 2.3に示します。

Table 2.3. コプロセッサアクセス制御レジスタのビット割り当て

ビットフィールド機能
[31]ASEDIS

アドバンストSIMD拡張機能の非稼働。

b1 = 『ARMアーキテクチャ リファレンスマニュアル』で、アドバンストSIMD拡張機能の一部であるがVFPv3命令ではないとされている、すべての命令エンコードが不可能になります。

b0 = すべての命令が可能です。

[30]D32DIS

VFPレジスタファイルD16~D31の使用を不可能にします。

b1 = 『ARMアーキテクチャ リファレンスマニュアル』でVFPv3命令とされているすべての命令エンコードが、レジスタD16~D31のいずれにもアクセス不可能になります。

b0 = すべての命令が可能です。

[29:24]-Cortex-A9テクニカルリファレンス マニュアル』を参照
[23:22]CP11

コプロセッサのアクセス許可を定義します。リセット時の状態はアクセス拒否で、コプロセッサが存在しない場合もこの状態です。

b00 = アクセス拒否。アクセスを試みると、未定義命令例外が生成されます。

b01 = 特権モードアクセスのみ

b10 = 予約

b11 = 特権モードアクセスとユーザモード アクセス

[21:20]CP10

コプロセッサのアクセス許可を定義します。リセット時の状態はアクセス拒否で、コプロセッサが存在しない場合もこの状態です。

b00 = アクセス拒否。アクセスを試みると、未定義命令例外が生成されます。

b01 = 特権モードアクセスのみ

b10 = 予約

b11 = 特権モードアクセスとユーザモード アクセス

[19:0]-Cortex-A9テクニカルリファレンス マニュアル』を参照

非セキュア状態でのコプロセッサへのアクセスは、非セキュアアクセス制御レジスタで設定されているアクセス許可によって異なります。

CPACRレジスタのアクセスビットへの読み書きを試みた結果は、非セキュアアクセス制御レジスタ内で各コプロセッサに対応するビットによって異なります。 それぞれのモードについて、コプロセッサのアクセスビットにアクセスを試みた結果を、Table 2.4に示します。

Table 2.4. CRACRレジスタへのアクセスの結果

NSACR[11:10]セキュア特権非セキュア特権セキュアまたは非セキュアユーザ
b00R/WRAZ/WIアクセス禁止[a]
b01R/WR/Wアクセス禁止[a]

[a] ユーザ権限でアクセスを行うと、未定義命令例外が生成されます。


CPACRレジスタにアクセスするには、次の命令を使用してCP15を読み書きします。

MRC p15, 0,<Rd>, c1, c0, 2 ; Read Coprocessor Access Control Register
MCR p15, 0,<Rd>, c1, c0, 2 ; Write Coprocessor Access Control Register

CPACRが更新されるとき、レジスタへの変更が可視となることが保証されるのは、次の命令同期バリア(ISB)命令を実行した後でのみです。このレジスタが更新されるとき、新しいまたは古いレジスタの値に依存する命令は、ISB命令の前に発行されないことを、ソフトウェアで保証する必要があります。

通常、ソフトウェアでCPACRを更新するときは、他のコプロセッサのアクセス設定を不必要に変更してしまうことを避けるため、読み出し-変更-書き込みシーケンスを使用します。

Note

アドバンストSIMDまたはVFPシステムレジスタにアクセスする前に、CPACRレジスタのCP10およびCP11を可能にする必要があります。

Copyright © 2008-2010 ARM. All rights reserved.ARM DDI 0409FJ
Non-ConfidentialID013111