ARMアーキテクチャ
歴史

ARMの起源は、1980年代初頭のイギリスのコンピュータ業界に見出すことができる。1983年、イギリスのエイコーン・コンピュータ(Acorn Computers、エイコーン)が画期的なプロジェクト、Acorn RISC Machine（ARM）を開始した。このプロジェクトは、BBC Microの成功を受けて、エイコーンが次世代マシンの開発を目指す中で生まれた。当時、エイコーンは既存の6502プロセッサの性能限界に直面しており、より効率的で低消費電力のプロセッサ、具体的には高性能な32ビットプロセッサの開発が急務となっていた。
プロジェクトの中心となったのは、ソフィー・ウィルソン(Sophie Wilson)とスティーブ・ファーバー(Steve Furber)を含む少数の技術者たちだった。ウィルソンは命令セットアーキテクチャの設計を担当し、ファーバーはハードウェア設計をリードした。彼女らは、バークレーRISC（英語版）とスタンフォード大学の研究に影響を受け、RISC（縮小命令セットコンピューティング）アーキテクチャを採用することを決定した。RISCアーキテクチャの単純な命令セットにより、高速で効率的な処理の実現が期待された。
開発プロセスは綿密に進められた。まず、既存の商用プロセッサの性能を詳細に分析し、次にシミュレータを使用して新しいアーキテクチャをテストした。
開発チームはVLSI Technology（英語版）社を「シリコンパートナー」として選び、エイコーンが設計を提供し、VLSIがレイアウトと製造を担当した。1985年4月26日に受け取った最初のARMシリコンチップは正常に動作し、これが「ARM1」と呼ばれるバージョンで、6MHzで動作していた。このARM1は、BBC Micro用のセカンドプロセッサとして初めて実用化され、サポートチップ(MEMC (MEMory Controller), VIDC (VIDeo and sound Controller), IOC (Input Output Controller))の開発を促進し、ARM2の開発にも使用された
。また、BBC BASIC（英語版）は後にアセンブリ言語で書き直され、これにより命令セットに精通した開発者たちは非常に高密度なコードを作成することができた。このARM版BBC BASICは、ARMエミュレータのテストにおいても非常に優れたベンチマークとなった。
このARM1でのシミュレーション結果を元に、1986年末にARM2が8MHzで登場し、翌年には10〜12MHzで動作するバージョンがリリースされた。ARM2には大きなアーキテクチャの改良が施され、以前はソフトウェアで処理されていた乗算が、ブースの乗算アルゴリズムによりハードウェアで実装された。また、新たに追加された「FIQ（Fast Interrupt reQuest）モード」により、割り込み処理時にレジスタ8〜14が自動的に置き換えられるようになり、割り込み処理が高速化された。
ARM2は、1987年に発売されたAcorn Archimedesシリーズのパーソナルコンピュータ（A305、A310、A440）で初めて使用された。Dhrystoneベンチマークによれば、ARM2は7MHzで動作するMC68000ベースのシステム（AmigaやMacintosh SEなど）に比べ約7倍の性能を誇り、16MHzのIntel 80386とほぼ同等の速度を持っていた。高価なSun SPARCやMIPS R2000のRISCベースワークステーションに次ぐ性能を示しながらも、デスクトップパソコンと同程度の価格で提供された。ARM2は、高速I/Oに対応するよう設計され、他のシステムに見られるDMAコントローラのようなサポートチップを省略し、設計を大幅に簡略化したことで、ワークステーション並みの性能を手頃な価格で実現した。
ARM2は32ビットのデータバス、26ビットのアドレス空間、そして16個の32ビットレジスタ（プログラムカウンタを含む）を備えていた。ARM2のトランジスタ数はわずか30,000個で、Motorola 68000の68,000個と比べて非常に少なかった。この簡素化は、ARM2がマイクロコードを持たないことや、キャッシュを搭載していないことによるもので、その結果、低消費電力と簡単な熱処理が可能となった。それでも、ARM2は1987年のIBM PS/2シリーズに搭載されたIntel 80286やIntel 386に比べ、優れた性能を提供していた。
後継機である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とし、それによって古い設備でも製造でき、かつ安価に高性能を得られる、というものである。
このARM6の改良版であるARM7も、ARM6を採用した製品群に引き続き採用されたほか、普及期に入りつつあった携帯電話にも広く採用されたことから、今日のARMの礎ともなった。
さらに、新世代のARMv4アーキテクチャに基いてARM7を再設計したものがARM7TDMIである。ARM7TDMIはThumb命令（後述）を実装し、低消費電力と高いコード効率を両立する利点を備えていたことから、ライセンスを受けた多くの企業によって製品化され、特に携帯電話やゲームボーイアドバンスといった民生機器に採用されたことから、莫大な数の製品に搭載された。なお、TDMIとはThumb命令、デバッグ (Debug) 回路、乗算器 (Multiplier)、ICE機能を搭載していることを意味している。しかし、これより後のコアには全てこれらの機能が標準的に搭載されるようになったため、この名称は省かれている。
DECはARMv4アーキテクチャの設計のライセンスを得てStrongARMを製造した。233MHzでStrongARMはほんの1Wの電力しか消費しない（最近のバージョンはさらに少ない）。この業績は後に訴訟の解決の一環としてインテルに移管され、インテルはこの機会を利用して古くなりつつあったi960をStrongARMで補強することにし、それ以降XScaleという名で知られる高性能の実装を開発した。
以後も、StrongARMの技術のフィードバックを受けたARM9やARM10を経て、NECとの提携などによって携帯電話向けプロセッサとしての地位を確固たるものにしたARM11をリリースする。
2005年には製品ラインナップを一新し、高機能携帯電話などのアプリケーションプロセッサ向けであるCortex-A、リアルタイム制御向けであるCortex-R、組み込みシステム向けであるCortex-Mと、ターゲットごとにシリーズを分類した。なお、Cortexの末尾に付く文字は、社名であるARMの一文字ずつをそれぞれ割り当てたものである。また、2012年11月にはARM初となる64ビットアーキテクチャによるプロセッサコアであるCortex-A50シリーズを発表した。
ARMからIPコアのライセンス供与を受けている主な企業には、モトローラ、IBM、テキサス・インスツルメンツ、任天堂、フィリップス、Atmel、シャープ、サムスン電子、STマイクロエレクトロニクス、アナログ・デバイセズ、MediaTek、パナソニック、クアルコム、マーベル・テクノロジー・グループなどがある。
ARMチップは世界で最もよく使われているCPUデザインの一つとなっており、ハードディスク、携帯電話、ルータ、電卓から玩具に至るまであらゆる製品の中に見ることができる。32ビット組み込みCPUで圧倒的なシェアを占め、2004年の世界シェアは61%であった。