キニナルワード

ARMアーキテクチャのWiki検索結果


メニュー

nameARMアーキテクチャ
designerARMホールディングス
bits32ビット
introduced1983年
versionARMv7
designRISC
typeRegister-Register
encodingFixed
branchingCondition code
extensionsNEON, Thumb, , VFP
registers16


ARMアーキテクチャ とは、ARM Ltdにより開発されている、組み込み機器や低電力アプリケーション向けに広く用いられる32ビットRISC CPUアーキテクチャのことである。


PAGE TOP

概要


ARMアーキテクチャは消費電力を抑える特徴を持ち、低消費電力を目標に設計される
モバイル機器において、これに基づくCPUは支配的となっている。命令セット8ビットCISCである6502を発展させたものであり、典型的なRISCというよりはむしろCISC的で可変長の命令でコード密度を向上させ、多彩なアドレッシングモードを持つことにより命令数を削減するなど、CISC的な特徴を低消費電力化に利用している。ただしマイクロプログラムは持たず過度の複雑さを避けるなど、RISCの利点も存分に活かしている。手作業による最適化がしやすい特徴的なアーキテクチャを持つ。

現在では、ARMファミリーは組み込み型での32ビット RISC CPUのおよそ75%を占めhttp://www.arm.com/miscPDFs/3823.pdf、全世界で最も使用されている32bit CPUアーキテクチャのひとつである。ARMアーキテクチャに基づくCPUは、PDA携帯電話メディアプレーヤー携帯型ゲーム電卓などの携帯機器から、ハードディスクルータなどのPC周辺機器まで、あらゆる電子機器に使用され、2008年1月の時点ですでに100億個以上が出荷されているhttp://www.jp.arm.com/pressroom/08/080125.html。ARMアーキテクチャを使用したプロセッサの例としては、マーベル・テクノロジー・グループXScaleや、テキサス・インスツルメンツOMAPシリーズがある。


PAGE TOP

歴史


ARMの設計は、
1983年エイコーン・コンピュータによって開始された。その開発はモステクノロジー 6502の延長とも言えるものであり、当時6502に基づいた一連のコンピューターを製造していたエイコーンにとっては、同じ要領でプログラムできるチップは大きな強みになるはずであった。

開発チームは1985年までにARM1と呼ばれる開発サンプルを完成させ、最初の製品となるARM2は次の年に完成した。ARM2は32ビットのデータバス、26ビットのアドレス空間と16個の32ビットレジスタを備えていた。レジスタの1つは、上位6ビットが状態フラグを保持するプログラムカウンタである。ARM2のトランジスタ数は30000個しかなく、おそらく世界で最もシンプルな実用32ビットマイクロプロセッサであった。これは、マイクロコードを持たないこと(モトローラ 68000の場合は1/4から1/3がマイクロコードであった)と、現在のほとんどのCPUと違ってキャッシュを含まないことによるものである。このシンプルさ故に消費電力は極めて低いが、それにもかかわらず80286よりも性能は高かった。後継となるARM3は、4KBのキャッシュを含みさらに性能を高めた。

1980年代後半、アップルコンピュータはエイコーンと共同で新しいARMコアの開発に取り組んだ。この作業は非常に重要視されていたため、エイコーンは1990年に開発チームをスピンオフしてAdvanced RISC Machinesという新会社を設立した。このため、ARMは本来のAcorn RISC MachineではなくAdvanced RISC Machineの略であるという説明をよく見かけることになる。Advanced RISC Machinesは、1998年ロンドン証券取引所NASDAQに上場した際、ARM Limitedとなった。

この作業の結果、ARM6が開発された。1991年に最初のモデルがリリースされ、アップルはARM6ベースのARM610をアップル・ニュートンに使用した。

これらの変化を経てもコアは大体同じサイズに収まっている。ARM2は30000個のトランジスタを使用していたが、ARM6は35000個にしか増えていない。そこにあるアイデアは、エンドユーザーがARMコアと多くのオプションのパーツを組み合わせて完全なCPUとし、それによって古い設備でも製造でき、かつ安価に高性能を得られる、というものである。

最も成功した実装は、何億台もの携帯電話ゲームボーイアドバンスに搭載されたであろう。ARMのビジネスは通常IP(知的財産)コアの売上によるものであり、そのライセンスを得てこのコアに基づいたマイクロコントローラが製造されている。

DECは設計のライセンスを得てStrongARMを製造した。233MHzでStrongARMはほんの1Wの電力しか消費しない(最近のバージョンはさらに少ない)。この業績は後に訴訟の解決の一環としてインテルに移管され、インテルはこの機会を利用して古くなりつつあったi960をStrongARMで補強することにし、それ以降XScaleという名で知られる高性能の実装を開発した。

モトローラIBMテキサス・インスツルメンツ任天堂フィリップスAtmelシャープサムスン電子STマイクロエレクトロニクスアナログ・デバイセズパナソニッククアルコムMarvellなどの企業もARMデザインのライセンス供与を受けている。ARMチップは世界で最もよく使われているCPUデザインの一つとなっており、ハードディスク携帯電話ルータ電卓から玩具に至るまであらゆる製品の中に見ることができる。現在では32ビット/64ビット組み込みCPUで圧倒的なシェアを占め、2004年の世界シェアは61%であった2005年、ARM社のセミナー資料による。。


PAGE TOP

ARMアーキテクチャのCPUを採用した主な製品



PAGE TOP

ARM6


IMAGE:VY86C06020FC-2 02.jpg|ARM60 CPU (VY86C06020FC-2)
IMAGE:P60ARM GC 01.jpg|ARM60 CPU (P60ARM)


PAGE TOP

ARM7



PAGE TOP

ARM9/9E



PAGE TOP

ARM11/11E



PAGE TOP

ARM Cortex



PAGE TOP

コアの性能と採用実績

ファミリー
アーキテクチャ
コア
特徴
キャッシュ (I/D)/
MMU
性能 MIPS @ MHz
採用製品

ARM1
ARMv1
ARM1

なし

ARM Evaluation System second processor for BBC Micro

ARM2
ARMv2
ARM2
MUL(乗算)命令を追加
なし
4 MIPS @ 8 MHz0.33 DMIPS/MHz
Acorn Archimedes, Chessmachine

ARMv2a
ARM250
統合メモリコントローラ(MMU), Graphics and IO processor. SWAP命令を追加
なし, MEMC1a
7 MIPS @ 12 MHz
Acorn Archimedes

ARM3
ARMv2a
ARM2a
ARMとしてはじめてのキャッシュの採用
4K 統合
12 MIPS @ 25 MHz0.50 DMIPS/MHz
Acorn Archimedes

ARM6
ARMv3
ARM60
32ビットアドレス空間をサポート(それまでは26ビット)
なし
10 MIPS @ 12 MHz
3DO, Zarlink GPS Receiver

ARM600
キャッシュ、コプロセッサバス (FPA10浮動小数点演算ユニット用)
4K 統合
28 MIPS @ 33 MHz

ARM610
キャッシュ、コプロセッサバスは無し
4K 統合
17 MIPS @ 20 MHz0.65 DMIPS/MHz
Acorn Risc PC 600, アップル・ニュートン 100シリーズ

ARM7
ARMv3
ARM700

8KB 統合
40 MHz
Acorn Risc PC 試作CPUカード

ARM710

8KB 統合
40 MHz
Acorn Risc PC 700

ARM710a

8KB 統合
40 MHz0.68 DMIPS/MHz
Acorn Risc PC 700, アップル・ニュートン eMate 300

ARM7100
Integrated SoC.
8KB 統合
18 MHz
Psion Series 5

ARM7500
Integrated SoC.
4KB 統合
40 MHz
Acorn A7000

ARM7500FE
Integrated SoC. "FE"、FPA・EDOメモリコントローラを追加
4KB 統合
56 MHz0.73 DMIPS/MHz
Acorn A7000+

ARM7TDMI
v4T
ARM7TDMI(-S)
3ステージ パイプライン
無し
15 MIPS @ 16.8 MHz
ゲームボーイアドバンス, ニンテンドーDS, iPod

ARM710T

MMU
36 MIPS @ 40 MHz
, アップル・ニュートン

ARM720T

8KB 統合キャッシュ, MMU
60 MIPS @ 59.8 MHz

ARM740T

MPU

v5TEJ
ARM7EJ-S
Jazelle DBX
なし

ARM9TDMI
v4T
ARM9TDMI
5ステージ パイプライン
なし

ARM920T

16KB/16KB, MMU
200 MIPS @ 180 MHz
, GP32,GP2X (マスタ), (Motorola i. MX1)

ARM922T

8KB/8KB, MMU

ARM940T

4KB/4KB, MPU

GP2X (スレーブ)

ARM9E
v5TE
ARM946E-S

variable, tightly coupled memories(TCM), MPU
231 MIPS @ 210MHz 74.47 MIPS @ 67.024MHz
ニンテンドーDS, ノキア N-Gage, Conexant 802.11 chips

ARM966E-S

キャッシュレス, TCMs

ST Micro STR91xF, Ethernet内蔵 [http://mcu.st.com/mcu/modules.php?name=mcu&file=devicedocs&DEV=STR912FW44&FAM=101]

ARM968E-S

キャッシュレス, TCMs

v5TEJ
ARM926EJ-S
Jazelle DBX
variable, TCMs, MMU
220 MIPS @ 200 MHz
Mobile phones: ソニー・エリクソン・モバイルコミュニケーションズ (K, W シリーズ),シーメンス and Benq (x65 シリーズ以降),テキサスインスツルメンツ

v5TE
ARM996HS
Clockless processor
キャッシュレス, TCMs, MPU

ARM10E
v5TE
ARM1020E
(VFP)
32KB/32KB, MMU

ARM1022E
(VFP)
16KB/16KB, MMU

v5TEJ
ARM1026EJ-S
Jazelle DBX
variable, MMU or MPU

XScale
v5TE
80200/IOP310/IOP315
I/O Processor

80219

IOP321

IOP33x

PXA210/PXA250
Applications processor

ザウルス SL-5600, SL-A300

PXA255

32KB/32KB, MMU
400 BogoMips @400 MHz

PXA26x

PXA27x

800 MIPS @ 624 MHz
HTC Universal, ザウルス SL-C1000,3000,3100,3200,Willcom W-ZERO3シリーズ WS003SH,WS004SH,WS007SH,WS011SH,WS020SH

PXA800(E)F

Monahans

1000 MIPS @ 1.25 GHz

PXA900

Blackberry 8700, Blackberry Pearl (8100)

IXC1100
Control Plane Processor

IXP2400/IXP2800

IXP2850

IXP2325/IXP2350

IXP42x

IXP460/IXP465

ARM11
v6
ARM1136J(F)-S
SIMD, Jazelle DBX, (VFP)
variable, MMU
1.25 DMIPS/MHz532-665MHz (i.MX31 SoC)(400 BogoMips @400 MHz i.MX31)
(ノキア N93, ノキア N95), Freescale i.MX31(Zune)

v6T2
ARM1156T2(F)-S
SIMD, Thumb-2, (VFP)
variable, MPU
1.54DMIPS/MHz

v6KZ
ARM1176JZ(F)-S
SIMD, Jazelle DBX, (VFP)
variable, MMU+TrustZone
1.25DMIPS/MHz
iPhone, iPhone 3G

v6K
ARM11 MPCore
1-4 core SMP, SIMD, Jazelle DBX, (VFP)
variable, MMU
1.25DMIPS/MHz(最大608MHz)
Tegra1シリーズ

Cortex
v7-A
Cortex-A5

最大500MHz 1.57DMIPS/MHz

Cortex-A8
アプリケーション向け, NEON, Jazelle RCT, Thumb-2
可変(L1+L2), MMU+TrustZone
600MHz〜1GHz2.0 DMIPS/MHz
テキサス・インスツルメンツ , iPhone 3GS, iPod touch (Late 2009), NetWalker

Cortex-A9
アプリケーション向け, (VFP), (NEON), Jazelle RCT and DBX, Thumb-2, Out-of-order speculative issue superscalar
MMU+TrustZone
2.5 DMIPS/MHz

Cortex-A9 MPCore
As Cortex-A9, 1-4コア対称型マルチプロセッシング
MMU+TrustZone
2.5 DMIPS/MHz

v7-R
Cortex-R4(F)
組み込み向け
可変キャッシュ, MMUはオプション
600 DMIPS
Broadcomが採用

v7-M
Cortex-M3
マイクロコントローラ向け
キャッシュなし, (MPU)
120 DMIPS @ 100MHz
[http://www.luminarymicro.com] microcontroller family

ARMv6-M
Cortex-M1
FPGAがターゲット, マイクロコントローラ向け, Thumb-2 (BL, MRS, MSR, ISB, DSB, and DMB).
なし, tightly coupled memory optional.
最大 136 DMIPS @ 170 MHz[http://www.arm.com/news/17017.html "ARM Extends Cortex Family with First Processor Optimized for FPGA"], ARM press release, March 19 2007. Accessed April 11, 2007. (0.8 DMIPS/MHz[http://www.arm.com/products/CPUs/ARM_Cortex-M1.html "ARM Cortex-M1"], ARM product website. Accessed April 11, 2007., MHz achievable FPGA-dependent)
"Actel ProASIC3 and Actel Fusion PSC devices will sample in Q3 2007"http://www.arm.com/news/17017.html


PAGE TOP

設計について

ARMのインストラクション・セットは6502のコンセプトに沿っているが、パイプライン処理をより効率的に行うための機能が多く含まれている。その一つとして、伝統的なRISCのコンセプトに則り、明確な周期内に、概して1サイクルで実行できるようコマンドを調整している。ARMデザインの興味深い追加機能の一つが、全てのコマンドの先頭にある4ビットの条件コードの使用であり、全てのインストラクションを条件付きにすることができる。

これにより、例えばメモリアクセス用インストラクションの変位量などのスペースが大幅に削られてしまうが、一方では小さなif文に対応するコードの生成時に分岐命令を避けることが可能になる。この標準的な例として、ユークリッドの互除法を挙げる。

(この例はC言語による)

int gcd(int i, int j)
{

while (i != j) {
if (i > j)
i -= j;
else
j -= i;
}
return i;
}

ARMのアセンブリ言語では、whileループの部分は以下のようになる。

loop CMP Ri, Rj ; i と j を比較
SUBGT Ri, Ri, Rj ; もし "GT"ならば i = i - j;
SUBLT Rj, Rj, Ri ; もし "LT"ならば j = j - i;
BNE loop ; もし "NE"ならば loop に戻る
通常分岐を使用しなければならないthenやelse節のところで分岐が省かれていることが分かる。

インストラクション・セットのもう一つのユニークな機能が、シフト演算を「データ処理」(算術演算、論理演算、レジスタ間の代入)インストラクションの中に織り込むことができることである。例えば、C言語の

a += (j

最終更新日:2010-08-13T09:15:43Z




(C)EUROPA