1.2. プログラミングに関する一般的な問題

ARM プロセッサは Reduced Instruction Set Computing(RISC)プロセッサです。RISC プロセッサ用の効率的なコードを記述するためのプログラミング手法は多数あります。

多くの RISC プロセッサと同様に、ARM プロセッサは、境界で整列されるデータにアクセスするように設計されています。つまり、4 の倍数となるアドレス上に存在するワードと、2 の倍数となるアドレス上に存在するハーフワードがアクセスされます。このデータは、データ自身と同じサイズの境界上に配置されます。

通常、ARM コンパイラでは、LDR 命令と STR 命令を使用してグローバル変数に効率的にアクセスできるように、これらの変数をデータ自身と同じサイズの境界で整列させます。

これは、非境界整列データに命令から直接アクセスできるほとんどの Complex Instruction Set Computing(CISC)アーキテクチャとは対照的です。このため、CISC アーキテクチャ向けの従来のコードを ARM プロセッサに移植する場合には注意が必要です。特に、非境界整列データへのアクセスは、コードサイズやパフォーマンスに影響する可能性があります。

Note

ARM11 プロセッサでは、ハードウェアでの非境界整列アクセスをサポートしています。このセクションの説明は、主に ARM11 プロセッサファミリより前の ARM プロセッサを対象としています。

以下のセクションでは、このようなプログラミングに関する問題について詳しく説明します。

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0203GJ
Non-Confidential