ARMの優れている点は何ですか?


61

この回答へのコメントで、KortukはARMの利点は何かを尋ねています。最初にいくつかの引数を答えに追加しましたが、質問はそれ自体で質問になるほど面白いので、より多くの回答が可能になると思います。


1
あなたの答えは、最も建設的な質問では建設的であるように見えますが、他の人が非常に熱心な答えを書くことを心配しています。あなたが設定したバーを人々がハードルしようとするかどうかを確認します。
-Kortuk

@Kortuk-より良い回答を得るのに役立つと思われる場合は、質問またはタイトルの文言を自由に編集してください。(とにかくあなたの質問だった)
-stevenvh

5
この質問は宗教戦争を求めています。人々が尋ねたりコメントしたりしなければ、私はこれをすぐに閉めることに投票するでしょう。覚えておいてください、あなたは常に正しいことを知っていて、それが信仰の問題であるとき、他の人は野barな異教徒です。...ジハード始めましょう
オーリンラスロップ

@olinLathrop、それが私が見ているものです。現在、私たちは口論せずに非常に高品質の回答を得ているようです。私はおそらくこれをCW長期化し、グーグルベイトが腕の興味深い情報と相まって生きることを許すでしょう。私は通常これを完全に閉じていたはずですが、@ stevenvhはそれを素晴らしい回答で開き、品質のトーンを設定したようです。
Kortuk

回答:


51

パフォーマンスは1つの利点です。32ビットプロセッサであるため、DMIPS的には(ほぼ)すべての8ビットコントローラーよりも優れています。コアはまた、いくつかの世代を経て、最適化を読み取​​りました。
これらの最適化は、パフォーマンスの数値だけでなく、電力消費量にも表示されます。最新のコアのDMIPS / mW比は、前世代と比較して2倍になりました(この回答も参照)。
ARMは、他のどのマイクロコントローラよりも多くの非常に多くのメーカーから入手でき、それぞれにオンチップペリフェラルとメモリ、パッケージのさまざまな組み合わせで選択できる多数のバージョンがあります。適切な事例:NXPは、オンチップイーサネットを備えた35以上のコントローラーを提供しています
ARMは安価な ; ARMは、おそらくUSD 1の壁を破った最初の32ビットコントローラーでした。

このパフォーマンス幅広い製品低コストの組み合わせにより、ARMを無視することはできません。

アナリスト会社Linley Groupの調査によると、2005年には、すべての携帯電話の約98%がマザーボード上で少なくとも1つのARM設計のコアを使用しています。ソース

携帯電話市場にも別の効果があります。携帯電話はスペースに非常に制約されており、小さなパッケージが必要です。NXPのLPC1102は、わずか5mm WLP-16パッケージで提供されます。これは、以前はピン数の少ない8ビットマイクロコントローラーでのみ使用されていたスケールです。2


1
追加できるのは、ARMが間違いなく最初の32ビットマイクロで、0.5ドルの価格ポイント(数量のコーテックスM0)を
破る-BarsMonster

@Barsmonster-クール!8ビットの唯一の未来はであるように見える3ミリメートルDFNS x 2mmの
stevenvh

@self-そして、それさえないかもしれません。私の答えのLPC1102に関する追加を参照してください。
-stevenvh

@stevenvh-消費電力の利点はまだあります。LPC1102 @ 12MHzスリープモードは1mAを使用します。悪くはありませんが、[16ビット] msp430の約1000倍です。
Imbrondir

1
@self-その利点もスクラッチします。少し調べてみると、Energy Microにはスリープモード+ RTCで0.6uAに達するM3があるようです。
Imbrondir

37

まだ言及されていない点:1908年、PLロバートソン氏という名前の男が、新しい改良されたねじ頭とドライバーを発明しまし。彼は自分のデザインのネジとドライバーを製造する唯一の人になりたかった。数十年後、ヘンリー・F・フィリップスという名前の誰かが別のデザインを思いつきました。ロバートソン氏とは異なり、フィリップス氏は、ネジやドライバーの製造よりも設計のライセンス供与に関心がありました。

同様に、1970年代に、ソニーBetamaxと呼ばれる技術を思いつきました。JVCはVHSと呼ばれるものを思いつきました。ソニーはVCRの作成に興味がありました。JVCはライセンスに関心がありました。

ここにはパターンがあるようです。(注:しばらくの間、Intelは80x86テクノロジーのライセンスを取得していましたが、何十年もの間、社内で使用するテクノロジーの開発に重点を置いてきました。)


4
はい。ARMの知的財産のライセンススキームが成功の原因だと思います。

10
ARMでは、ライセンスにより非常に柔軟に対応できます。いくつかのコアにIPが必要なだけであれば、それほど費用はかかりません。ただし、チップ設計者によって完全に最適化された高度にカスタマイズされたチップを作成する場合は、コストかかりますが利用可能なオプションです。 そのため、Appleのような会社は、アプリケーションに最適化された独自のプロセッサラインを開発できます。ほとんどの企業は、それほど多くの王冠を制御できないようにしません。
マイクデシモーネ

ARMはIntelのx86ラインと競合しないことに注意することが重要です(実際には、新しいAtomプロセッサが実行されるスペースではありません)。あなたの答えがそれを暗示することを意図していた場合、それは間違っています。IntelのMoorestownおよびMedfieldアーキテクチャは、ARMと同じスペースで競合することを意図しています。
マーク

1
Intelの80x86ラインは、現在ARMを使用するアプリケーションの種類で競争力があるため、古くなりましたが、ライセンスされた8088、8086、80286、および80386は組み込みシステムで人気がありました。Intelに関する私のコメントは、主にIntelがARMのようにライセンスされていないという事実にもかかわらず、今日人気があることを認めることでした。
supercat

@supercat:Intelは最近、多くのソフトIPのライセンスを取得しています。また、(FPGAデザインのためのデザイン・ツールおよびSIPを提供intel.com/content/www/us/en/fpga/ip-and-design-tools.html
jbord39

32
  1. すべてのベンダーのARM向けに開発する同じハードウェア/ソフトウェア。JLINK / ULINKとKeil IDEを一度購入すると、それを使用して地球上のほぼすべてのARMを開発、エミュレート、デバッグできます。

  2. 新しいチップベンダーに移行する際に新しいアーキテクチャを学ぶ必要はありません=>ベンダーロックインの削減=>競争の激化=>低価格

  3. 最新の技術プロセス(0.18um以下)では、ARMコアは非常に小さいため、8ビットコア用にそれを犠牲にしても、目に見える価格の一部は節約されません。したがって、標準の高性能で安価なアーキテクチャを採用する理由です。

  4. パフォーマンス-ARMのみで、シングルクロック32 * 32-> 32乗算、32 * 32-> 64のハードウェアサポート、および1ドル未満のデバイスの除算(つまり、ローエンドSTM32など)を使用できます。

  5. ARMは欲張りすぎず、ライセンスに不当な料金を請求しないため、メーカーは安価なマイクロを製造できます。


27

これらの理由から、ミッドレンジARMプロセッサに焦点を当てています。

  1. 完全なLinuxサポート

    つまり、デバイスドライバーはほぼ無料です。十分なUSBホストとデバイスコードを作成しました。これ以上はしたくありません。また、TCP / IPをランダムプロセッサプラットフォームに追加しようとすることについてあまりわくわくしていません(ただし、LwIP / uIPはそれほど悪くはありません)。私はWi-Fi、実際のBluetoothスタック、ウェブカメラなどをやろうともしませんでした。Linuxを使用すると、非常に幅広いデバイスが会話しやすくなります。

    また、Linuxデバイスドライバーの合理的かつ簡単な作成方法にも驚かされました。いくつかのWindowsデバイスドライバーを実行した後、Linuxは夢です。(公平を期すために、Windowsドライバーフレームワークは、私がやっていたときから大きく改善されました。)

    ソフトウェアプラットフォームも素晴らしいです。SSL暗号化、ファイルシステム、リモート管理、簡単なアプリケーションの更新(複雑なブートローダーの代わりにファイルをコピーする)などを入手します。

    また、ロイヤリティフリーであり、クローズドソースのWinCEプラットフォームがそうであると言うよりもあなたの意志を曲げるのがはるかに簡単です。(私が本当にオープンソースの理想主義者であるというわけではありません...それはすべて私にとって非常に実用的な推論です。)

    私は実際のMMUを備えたARMコアについて話しているので、これはミッドエンドからハイエンドのチップ向けです(ただし、μClinuxを使用できると思います)。

  2. 消費電力

    これは基本的に他の人のコメントの繰り返しですが、それは私にとって大きな要因です。私の現在の454 MHz ARMプラットフォームは、最大CPUで1/2ワット、1ワットを消費します。x86ではこれに近づけることさえできません。

それはほとんど私の推論です。方程式がすぐに変わることはありません。


2
関連:複数のRTOSオプション。
スティーブS

答えのほとんどは、ARMの場合と同様に、ほとんどのCPUアーキテクチャに当てはまります。それらの多くは2)にも適用できます。LinuxでサポートされているアーキテクチャのリストはLONG​​であり、ARMはそのうちの1つにすぎません。
マーク

19

ARMは進歩を遂げました。

  1. 32ビット命令アーキテクチャ。他の多くのアーキテクチャよりもコードが大きくなりますが、迅速にデコードでき、競合するアーキテクチャよりも少ない命令で多くの操作を実行できます。
  2. 優れた強力な(ただし、やや肥大化した)ARM命令セットと、それほど強力ではない(ただしはるかにコンパクトな)16ビット「Thumb」命令セットを切り替えることができるデュアル命令形式のアーキテクチャ。すべてのThumb命令には対応するARM命令があり、プログラマーが2つの命令セットを学習する必要性を最小限に抑えています。
  3. Thumb命令セットに2ワード命令を追加して、ほとんどwin-winを生成するThumb2アーキテクチャ:典型的なARMコードには、ARMでのみ使用可能な命令とThumbで使用可能な命令の混合が含まれますとにかく32ビットとして表現する必要がありました。Thumb2では、このようなコードは、32ビット命令の一部を16ビット命令に置き換えるというスペース上の利点があります。
  4. Thumbのみのアーキテクチャ。これは、私が気にするよりも制限がありますが、他のどのアーキテクチャよりも小さくて安価です。

ARMアーキテクチャにより、他のどのチップよりもはるかに高速に、かなり洗練された操作を非常に迅速に実行できます。例(ARM7-TDMIを使用):

  ldrh r0、[r10、#ADDR_BUS_OFS]; ターゲットシステムアドレスバスの読み取り(13ビット)
  ldrb r1、[r9、r0、lsr#8]; 上位ビットを使用して、ハンドラーのテーブルでアドレスを検索します
  pc、r9、r1 lsl#2を追加します。適切なハンドラーに移動します

各ハンドラーはバイトとして格納され、テーブルの先頭からのアドレス変位の1/4を与えます。最終的な効果は、アドレスバスの内容がフェッチされると、32バイトのジャンプテーブルを使用して、取得された上位5ビットに基づいてハンドラーにジャンプするのに6サイクル(2命令)だけです。

対応するTHUMBコードは次のようになります。

; 他にr6 / r7が必要ないと仮定すると、r9 / r10から再割り当てされます。
  ldrh r0、[r7、#ADDR_BUS_OFS]
  mov r1、r0
  lsr r1、r1、#8; THUMBでは、送信元と宛先が同じである必要があります
  ldrb r1、[r6、r1]
  lsl r1、r1、#1; ターゲットアドレスがフルワードでアライメントされている場合は、shift-left-twoを使用できます。
  pc、r1を追加

コード密度の観点からは問題ありません。命令は元の命令の半分の大きさしかありませんが、フェッチ後は6サイクルではなく9サイクルかかります。監視対象のバスがARMで処理できたかどうかに関係なく、監視対象のバスが独自の速度で実行されるアプリケーションでは、より高速なARM命令が大きなプラスになります。

ちなみに、Thumb2はThumbとのバイナリ互換性があるため、以前のツールの使用が容易になりますが、元のARMに比べてできないことがいくつかあります。たとえば、ARMでは、2ビットあたり約3つの命令を使用して、4つのレジスタに保持されている8x8ビットマップを「回転」させることができます。

  movs r0、r4、lsl#25; LSBの最上位ビットをCに、次のビットをNに入れます
  orrcs r6、#0x00000001
  orrmi r6、#0x00000100

Thumb2では、明示的な条件付き命令を追加する必要があります。

  movs r0、r4、lsl#25; LSBの最上位ビットをCに、次のビットをNに入れます
  itcs
  orrcs r6、#0x00000001
  itmi
  orrmi r6、#0x00000100

ARMと比較して、時間とスペースの効率が33%削減されました。これはおそらく、ThumbコードがARMよりも効率が悪いという最悪の例に関するものであり、それでもまったく恐ろしいことではありません。

ARMと比較したThumb2のもう1つのわずかな欠点は、ARMコードでは、すべての命令がフルワード境界で始まるため、静的分析が容易になることです。Thumb2では、命令はハーフワード境界で任意に開始し、フルワード境界をまたぐことができます。したがって、静的解析ははるかに困難になる可能性があります。


14

少し歴史がありますが、Acornは1980年代に新しいコンピューター用にカスタムCPU(たとえば、メモリコントロールなどを内蔵)を望んでいました(8ビット6502は、できることを制限していました)。彼らはインテルと話をしましたが、インテルは彼らにCPUのライセンスを供与しませんでした。

そのため、Acornは非常にシンプルなRISC CPUを設計しましたが、CPUメーカーではないため、誰にでもライセンス供与を望んでいます(そして、手っ取り早くお金を必要としていました!)。(CPUが初めて動作したのは、その理由の1つは非常に単純であり、設計者がケンブリッジ大学にいる間に多くの研究CPUを作成したためだと思います。

長年にわたり、CPU設計は、顧客のチップ設計に組み込むことがますます容易になっています。

チップメーカーは競合他社ではないため、Acornからの安全なライセンス供与を感じていました。また、エイコーンはケンブリッジにいたので、ライセンシーを得るためにライバルの故郷に行くとは誰も思いませんでした(本当の!)。(エイコーンを訪問するためにケンブリッジへの「事実発見」旅行の機会は、オプションのショートリストに任意の時点で影響を与えました…。)

Acorn Risc Machine CPUを含む多くの設計は、電力使用が重要な組み込みシステム用でした。Acorn Risc Machine CPU用の安価で優れた開発ツールも作成されました。

そのため、携帯電話に組み込みCPUを搭載したカスタムチップが必要になり始めたとき、AcornはARMと名前が変更され、残りは歴史です。(おそらく、他のCPUのほとんどが米国によって制御されていたが、ヨーロッパではモバイルが最初に正常になったのかもしれません)

(これはMicrosoftとDosのことを思い出させますか?IBMの小さな未知のチームと一緒ですか?)

多くのタスクでARMが当時最高のCPUの1つだったという事実は(それでも)現在でも役立ちますが、「最高の」CPU設計だけでは十分ではありません。


Acorn RISC Machineは、実際にはAdvanced RISC Machines(ARMと綴られています)に名前が変更されました。また、AcornのARM CPUブランチのみが独立し、Advanced RISC Machinesとして知られています。AcornはRISC-OSの開発を続けており、RISC-OSもそのことを知っています。
ジッピー

13

技術的な問題は別として、ARMには多くの非技術的な理由があります。 しかし、簡単な答えは次のとおりです。Intel(またはx86)ではありません。

CPUのR&Dドルが現在どこに投資されているかを見ると、基本的に2つの陣営に分類されます。ARMとIntelです。(私は小さなMCUを無視しており、AMDをIntelにまとめています。)PowerPC、MIPS、SPARC、および他の大きなCPUにはほとんどお金がかかりません。まだ残っているのはARMとIntelだけです。

Intelおよび他のx86 CPUを使用すると、膨大な量の従来の荷物を受け取ります。たとえば、チップセット、BIOS、およびその他のものが必要です。CPUの電力効率が非常に高い場合でも、これらの他のデバイスはシステムの重さを抑え、より大きく、電力をより多く消費し、より高価にする傾向があります。インテルCPUを搭載したPCBを開発することは大きな問題であり、BIOSベンダーなどと交渉する必要があります。さらに悪いことに、チップセット、BIOS、ビデオチップなどのベンダーの多くは単に望んでいません。年間100万台未満の販売をしない小規模の人々と取引する。

ARMでは、その荷物はありません。マイクロコントローララインのものからマルチコアモンスターまで、多くのチップソースがあります。BIOSのライセンスを取得する必要はありません(中古車のセールスマンに行くようなものです)。そして、製造業者とベンダーは一般的にあなたに親切です。


2
小さなMCUを無視しないでください。ARMは、Cortex-Mシリーズでもその市場の大きな部分を占めています。最近、非ARM 32ビットコントローラの使用について2度考えています。
マイクデシモーネ

はい、@ Mikeに同意します。ARMは現在、Intelがサーバーのように支配している高電力市場への拡大を試みています。それらは、中高レンジのマイクロコントローラーと中低レンジのマイクロプロセッサーで知られています
Kortuk

Intelは最近、より多くのIPのライセンスを取得しています(特にアルテラの買収に伴い)。たとえば、intel.com / content / www / us / en / fpga / ip-and-design-tools.htmlをご覧ください。
jbord39

12

ARM7 / ARM9MIPS IVを比較してください。すでに述べたライセンスの問題以外の利点はほとんどありません。MIPS命令セットと内部バスの内部構造により、特定のタイプの設計で優れた(コストあたりのパフォーマンス)が得られます。多くのWi-FiルーターがARMコアではなくMIPSコアを使用する理由です。

ARMコアは主にハンドヘルドデバイスに適用されたため、ASICはより多くの電力制御機能を追加しましたが、MIPSは低電力よりもサイクルあたりのパフォーマンスに重点を置いています。Intel x86 に対するRISCの利点は、別の議論です。


1
MicrochipのPIC 32ラインはMIPSコアを使用していることに注意してください。したがって、MIPSは、小型で安価な自己完結型の低電力パッケージでも利用できます。さらに、それらでMPLABを使用できますが、これはどのARMでもできないことです。
オリンラスロップ

ASICデザイナーから聞いたもう1つのコメントは、ARM AHBとAPBを使用するのは難しいということです(おそらく、個別のライセンスまたは設計の問題が原因です)。一方、MIPSバスは多少簡単です。意味:コアは一つのことです。コア外の周辺機器も考慮する必要があります。
ジョナサンクライン

-8

本当の利点はありません。付属のDSPおよびGSMなどのその他のコントローラーは、それらを非常に人気のあるものにします。


3
他の答えは同意しないようです。
-Kortuk

1
-1地球上のあらゆるものには長所と短所があります!
RHaguiuda 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.