ARM/アーキテクチャ
http://www.jp.arm.com/products/processors/architecture.html
ARMv3?
ARMv4
ARMv4は、現在サポートされているアーキテクチャの中で最も旧いバージョンです。これより前のバージョンはすべて廃盤となっています。実装には、ARM7TM?プロセッサ・ファミリのいくつか、Intel StrongARM®プロセッサなどがあります。ARMv4は、32ビットのアドレス空間で動作する32ビットISAと考えることができます。
ARMv4T
ARMv4Tアーキテクチャでは、16ビットのThumb命令セットの追加により、32ビット・システムの長所をすべて維持しつつ、コンパイラがコンパクトなコードを生成できるようになりました(同等の32ビット・コードに比べ、メモリを35%節約)。
ARMv5
ARMv5TE (ARM Thumb+DSP拡張命令)
1999年、ARMv5TEアーキテクチャでは、Thumbアーキテクチャを改良するとともに、ARM「拡張(Enhanced)」DSP命令セットをARM命令セット・アーキテクチャに追加しました。
Thumbの変更により、新しい命令がいくつか加わったほか、ThumbとARMのインタワーキングが改善されました。これにより、コンパイラの性能が大幅に高まり、ARMルーチンとThumbルーチンを組み合わせてコード・サイズと性能のバランスを取る機能も改善されました。
拡張DSP命令は、飽和演算?に対応し、音声DSPアプリケーションの性能を70%向上させます。多くのシステムは、マイクロコントローラの柔軟性とDSPのデータ処理性能を必要とします。これまで設計者は、コスト上の理由で性能を妥協するか、複雑なマルチプロセッサ方式を採用するしかありませんでした。拡張(E)命令は、汎用CPUにDSP機能を加え、性能と柔軟性を高めるよう設計されました。
ARMv5TEJ? (ARM Thumb+DSP拡張命令+ARM Jazelle?)
2000年、ARMv5TEJアーキテクチャでは、Javaを高速処理するためのJazelle?テクノロジー拡張が追加されました。これは、メモリ・フットプリントの小さい設計に特に適しています。JazelleテクノロジーによるJavaバイトコード高速処理は、ソフトウェアだけを使用したJava仮想マシン(JVM)より大幅に高い性能を提供します。Javaを高速処理しないコアに比べ、Javaの実行速度は8倍となり、消費電力は80%削減されます。この機能により、プラットフォーム開発者は、1個のプロセッサで、Javaコードと既存のオペレーティングシステム(OS)、アプリケーションを実行することが可能となります。
ARMv6(ARM Thumb+DSP拡張命令+ARM Jazelle?,SIMD)
2001年に発表されたARMv6アーキテクチャは、メモリ・システム、例外処理、マルチプロセシング環境のサポートなど、多くの面で改良されています。SIMD(Single Instruction Multiple Data)ソフトウェア実行に対応するメディア命令も追加されました。SIMD拡張命令は、ビデオ・コーデック、オーディオ・コーデックなど、幅広いソフトウェア・アプリケーションに最適化され、性能を最大4倍に高めます。さらに、Thumb-2、TrustZoneテクノロジーが、ARMv6アーキテクチャのバリアントとして導入されました。ARMv6アーキテクチャの最初の実装は、2002年春に発表されたARM1136J(F)-STMプロセッサでした。2003年には、ARM1156T2(F)-STM、ARM1176JZ(F)-STMプロセッサが発表されました。
ARMv7
Cortexプロセッサ・ファミリのベースとなるARMv7アーキテクチャは、3つのプロセッサ・プロファイルを定義しています。Aプロファイルは高度な仮想メモリ・ベースのOSとユーザ・アプリケーション、Rプロファイルはリアルタイム・システムに適し、Mプロファイルは、マイクロコントローラと低コスト・アプリケーションに最適化されています。
すべてのARMv7アーキテクチャ・プロファイルは、Thumb-2テクノロジーを実装しています。Thumb-2は、業界をリードするARMのThumbコード圧縮技術の延長であり、既存のARMソリューションと完全なコード互換性を維持しています。ARMv7アーキテクチャは、DSPおよびメディア処理のスループットを最大400%高めるNEONテクノロジー拡張も搭載しています。また、浮動小数点サポートの改良により、従来の組み込み制御アプリケーションだけでなく、次世代の3Dグラフィックスおよびゲーム・フィジクスのニーズにも対応します。