ARMアーキテクチャ
ARM60 3DOインタラクティブ マルチプレーヤー
ARM60 CPU (VY86C06020FC-2)
ARM60 CPU (P60ARM)
ARM610 Apple ニュートン・メッセージパッド、メッセージパッド100、メッセージパッド110、メッセージパッド120
後継となるARM3は、4KBのキャッシュを含みさらに性能を高めた。
1980年代後半、Apple Computer(現:Apple)はエイコーンと共同で新しいARMコアの開発に取り組んだ。この作業は非常に重要視されていたため、エイコーンは1990年に開発チームをスピンオフしてAdvanced RISC Machinesという新会社を設立した。このため、ARMは本来のAcorn RISC MachineではなくAdvanced RISC Machineの略であるという説明をよく見かけることになる。Advanced RISC Machinesは、1998年にロンドン証券取引所とNASDAQに上場した際、ARM Limitedとなった。
この経緯により、ARM6が開発された。1991年に最初のモデルがリリースされ、AppleはARM6ベースのARM610をApple Newtonに採用した。
これらの変化を経てもコアは大体同じサイズに収まっている。ARM2は30000個のトランジスタを使用していたが、ARM6は35000個にしか増えていない。そこにあるアイデアは、エンドユーザーがARMコアと多くのオプションのパーツを組み合わせて完全なCPUとし、それによって古い設備でも製造でき、かつ安価に高性能を得られる、というものである。
レジスタ R0 から R7 は全ての CPU モードで同一。これらは決してバンクされない。
R13 と R14 はシステムモード以外の全ての特権 CPU モードでバンクされる。独自の R13 と R14 を持つことにより例外からそれぞれのモードに切り替えられる。R13 はスタックポインタ、R14 は関数からの戻りアドレスを持つ。
別名:
R13 は SP とも呼ばれ、スタックポインタ
R14 は LR とも呼ばれ、リンクレジスタ
R15 は PC とも呼ばれ、プログラムカウンタ
CPSR は下記32ビットを持つ。
M (ビット 0 - 4) はプロセッサモードビット
T (ビット 5) は Thumb ステートビット
F (ビット 6) は FIQ 無効ビット
I (ビット 7) は IRQ 無効ビット
A (ビット 8) は不正データアボート無効ビット
E (ビット 9) はデータエンディアンビット
IT (ビット 10 - 15 と 25 - 26) は if-then ステートビット
GE (ビット 16 - 19) は greater-than-or-equal-to ビット
DNM (ビット 20 - 23) は書き換え禁止ビット
ARM は RISC プロセッサであり、Thumb 命令ではなく ARM 命令の場合、その命令セットは
32ビット固定長命令
ロード/ストアアーキテクチャ
3オペランドのレジスタ間演算
多くの命令が1サイクルで実行可能
といった、多くの32ビットRISCプロセッサに共通する特徴が見られる。
ARMプロセッサは、PC相対アドレッシングやプレ-/ポスト-インクリメント・アドレッシングモードなど、RISCとみなされる他のアーキテクチャと比べ、豊富なアドレッシングモードを持っている。
もう一つ留意すべきことは、ARMの命令セットが時間とともに増加しているということである。例えば、初期のARMプロセッサ(ARM7TDMIより以前のもの)は2バイトの値をロードする命令がなかった。
ARMアーキテクチャに基づくCPUコアは、PDA・携帯電話・メディアプレーヤー・携帯型ゲーム・電卓などの携帯機器から、ハードディスク・ルータなどのPC周辺機器まで、あらゆる電子機器に使用される。2015年現在、携帯電話では9割超のシェアがある。
携帯機器や電子機器の高性能化に伴いARMコアの出荷数は加速度的に伸びており、2008年1月の時点で100億個以上、2010年9月の時点で200億個以上が出荷されている。ARMアーキテクチャを使用したプロセッサの例としては、テキサス・インスツルメンツのOMAPシリーズやマーベル・テクノロジー・グループのXScale、NVIDIAのTegra、クアルコムのSnapdragon、フリースケールのi.MXシリーズ、ルネサス エレクトロニクスのRZファミリ、Synergyなどがある。
既存のARMプロセッサは組み込みとクライアントシステムに特化していたため全て32ビットであるが、顧客からは電力効率に優れるARMアーキテクチャのサーバへの応用を望む声が高まり、ARM社は2011年10月27日、ARMの64ビット拡張であるARMv8アーキテクチャを発表した。
汎用レジスタ数が倍増したのに伴い、基本命令の多くからは条件付き実行機能が削除されたが、それでも比較的豊富な条件付き実行命令が定義されている。代表的なものを挙げるとCCMP(条件付き比較)、CINC(条件付きインクリメント)、CSEL(条件付き選択; いわゆるCMOV)等が存在する。