8ビットおよび16ビットマイクロコントローラーの場所はどこですか?なぜ32ビットが引き継がれていないのですか?


9

32ビットマイクロコントローラーを選択するためのコストとパフォーマンスのトレードオフの点で、実際のカットオフポイントは何ですか?

言い換えると、ARMアーキテクチャの台頭と支配により、なぜ8ビットおよび16ビットのマイクロコントローラをまだ使用しているのですか?彼らはまだずっと安いですか?

非常にローエンドのデバイスは、大きくて複雑なアーキテクチャによって提供されるリソースを必要としないことを理解しています。ただし、コストが同じ範囲に収束しているように見える場合に、それらを引き続き使用する本当の動機は何ですか?


1
消費電力?
Leon Heller

7
私が目にするDigikeyで最も安価な32ビットµCは約$ 0.64で、最も安い8ビットは$ 0.35です。100万のシンプルなウィジェットを作成する大企業の場合、それは非常に大きな違いです。
Samuel

@LeonHeller一見したところ、私は同意する傾向がありますが、提案された回答のコメントで述べたポイントを見てください。
Bruno Morais

2
DigiKeyの一括価格設定を検討することは優れたガイドではありません。大量生産されている小さな低電力組み込みアプリケーションの適切な小さなマイクロの場合、誰もDigiKeyからそれらを購入していませんし、彼らが固執しないためにダイを購入している可能性がありますボードにはんだ付けするチップパッケージ。8ビットマイクロは、同等の構成の32ビットマイクロよりも常に小さく、単純であり、したがって安価で低電力になります。はい、マージンは多くの人にとって取るに足らないほどに低下していますが、大量生産では節約されたペニーの1/10でも価値があります。
John U

Electronic DesignのWebサイトで出会った関連記事は次のとおりです。8ビットまたは32ビットですか。次のデザインのMCUの選択
Garth Wilson

回答:


17

おそらく1年前、ローエンドの8ビッターと最も安価な32ビットのマイクロコントローラーの間には大きな違いがありました。もはやそうではありません。

Digi-Keyのバルク価格設定に基づいて、SOT-23-6パッケージで2500数量35ȼの 8ビットPIC10F200を入手できます。SOIC-8パッケージでは、2500個の数量36 for用の32ビットCY8C4013SXI-400(ARM Cortex-M0)を入手できます。(Digi-Keyのバルク価格設定は、メーカーが実際に支払う金額に関しては現実的ではありませんが、おそらくそれよりはるかに少ないですが、同じような数量の異なる製品間の大まかな価格設定比較に使用することは有効だと思います。)

OPは正しいです、彼らは収束しています。

では、なぜ32ビットチップがこれ以上使用されないのでしょうか。最初の段落で述べたように、この価格とサイズの平等は昨年または18か月間でのみ発生しました。そして、競争力のあるチップが十分に揃うまでには、まだ長い道のりがあります。

Digi-Keyから入手可能な6875 ARMチップのうち、1ドル未満の数量価格で在庫されているのは4つだけです。 。一方、エンジニアが選択できる1ドル未満の数百の8ビットチップがあります。

しかし、少なくとも数十のローエンド32ビットマイクロが利用可能であったとしましょう。それらは8ビットのものよりも自動的に選択されますか?

まず、エンジニアにそれらを認識させる必要があります。変化には常に多くの抵抗があります。学ぶべき新しいこと-ハードウェアの観点から、新しいチップを回路に組み込む方法を学びます。インサーキットプログラマー、新しいコンパイラーなどの新しいツールがあります。ファームウェアエンジニアは、まったく新しいペリフェラルとタイマーのセット(主にレジスタレイアウトとビットの意味)の使い方を学びます。

32ビットはそれでいいのですが、多くの重い計算を行う必要がない限り、何がポイントなのでしょうか。GPIOピンが4つしかない場合、32ビットレジスタとして内部的にアクセスしても、8ビットレジスタを使用するよりも利点はありません。

消費電力は常に8ビットマイクロに有利になると思います。

たとえば、PIC10F200は、スリープモードで4 MHz、2v、100 nAで175 µAを消費します。CY8C4013SXI-400は、スリープモードで4MHzで動作する約800µA、2vおよび1uAを消費します。(CY8C4013SXIのデータシートには4 MHzと2vのどちらの数値もなかったため、見積もりを行う必要がありました-データシートには、6 MHzと3.3vで2 maと表示されています。)

したがって、ARMは、目覚めているときは4.5倍、睡眠中は10倍の電流を引き出します。それほど多くはないように見えますが、コインセルで3か月または1年間実行する場合の違いです。(私は両方のマイクロコントローラーがほとんどタイミングを実行していて、ポートなどを更新していて、実際に重い計算をしていないと想定しています。後者がそうである場合、8ビットマイクロは長時間にわたって多くのマルチバイト演算を実行する必要があります時間の経過とともに、その利点の一部が失われます。)

興味深いのは、ARMが8ビッターの約4倍の電流を消費し、さらに、内部レジスターと4倍の幅のデータパスを備えていることです。これは偶然ではないと思います。CMOSの場合、消費電力はスイッチングされるトランジスタの数にほぼ比例し、ARMは実行される命令ごとに明らかに多くのことを実行しています。

より多くのARMベンダーがローエンドチップを発表しているので、マイクロチップのようなベンダーがさらに価格を下げたとしても、私は驚かないでしょう。いずれにせよ、価格はほぼ同じ、同じサイズのパッケージですが、選択する32ビットチップははるかに少ないので、8ビットマイクロコントローラーはまだしばらくの間存在します。特に、何万人ものエンジニアに親しんでもらいました。


スリープモードを実装した場合の消費電力については、コードの効率も考慮する必要があります。MCUがトリガーによってウェイクアップし、その後いくつかのコードを実行してスリープに戻る場合、ジョブを完了するために必要なクロックティックの数は非常に重要です。MCUの消費電流のほとんどは、フルスピードで動作している発振器によるものだと思います。32ビターと同じ仕事をするために、単純な算術を実行するときでさえ一般にコード効率がはるかに低いというだけの理由で、8ビターはおそらくサイクル量の約5倍を必要とするでしょう。
ランディン2015年

(8ビットのデータバスを備えているため、それはそれほどではありませんが、主に市場のすべての主流の8ビッターが70年代と80年代の古代のCPUコアデザインを持っているためです。)
Lundin

1
@Lundin私は私の答えでこれを言います-8ビターがISRで多くの派手な数学をしなければならないなら、それでもそれはその利点のいくつかを失います。ただし、フラグを設定するか、レジスタを更新するだけの場合は、より効率的です。
tcrosley 2015年

5

3つの主なポイント:

  • 価格
  • サイズ
  • 消費電力

10,000個のチップを注文する場合、50セントはかなりの金額です。100,000個のチップを注文するとさらに多くのことができます。

SOT23-6パッケージで提供されるPIC10など、32ビットチップよりかなり小さい8ビットチップを入手できます。

32ビットチップは、一般的に高速で動作し、多くの処理を行うため、小さな8ビットチップよりもはるかに多くの電力を消費します。電池はより速く消耗し、電力システムはより多くの電流を提供しなければならない(したがってより高価になる)など。

結局、なぜあなたは隣の砂糖を飲むために巨大な船を買うのですか?


2
同じメーカーの2つのチップを比較するだけです。たとえば、MicrochipのPIC18F25K20とPIC32MX250F512です。両方の最新のMCU。どちらのデータシートにもIdd対クロック速度があります。8ビットのグラフは5mAでトップになり、32ビットのグラフは20mAでトップになります。あなたがそれについて考えるならば、8ビット操作は8ラッチに何かをするでしょう-32ビットは32ラッチと同じ(または同等)をするでしょう。これは、操作する必要があるラッチの4倍であるため、通常の消費電流の4倍になります。
Majenko、2014

2
32ビットのアイドル電流は、約0.5mA〜7mAです。アイドル電流の8ビットのグラフはµAスケールで測定され、7µAで最高に達します-通常の室温で実行しているときはわずか4µA ...!
Majenko、2014

3
データシートをいくつか掘り下げて、自分の目で確かめてください。
Majenko、2014

2
これは、すべてのチップが処理していることを前提としています。外部センサーからのデータの読み取りなど、チップの速度に依存しないものには時間がかかります。80MHz32ビットCPUは、16MHz 8ビットCPUよりも速く100KHz I2Cデバイスを読み取ることはありません。
Majenko、2014

3
レガシーソフトウェア(特に認定が必要なシステム)と開発者の使いやすさ、周辺機器/ RAM /フラッシュコンポーネントの選択(高性能プロセッサを備えたマイクロコントローラー設計では、より多くのチップ領域をメモリに使用します; 256バイトのRAMを搭載したCortex-M)を忘れないでくださいすぐにはありそうもないようです)、パッケージ/電圧の選択。良い答えは、16ビット市場がうまくいかない理由(およびAVRのようなより現代的な8ビットISA)と、4ビット市場が非常に制約されているように見える理由(時計と他に何があるか)も説明する必要があります。
Paul A. Clayton 2014

2

私が商用製品用に開発したuCアプリケーションは、8ビットを超えるデータサイズをほとんど処理しませんでした。したがって、32ビットが8ビットと同じ価格であっても、メリットはありません。他の誰かが言ったように、私たちは慣れ親しんだものに取りかかるので、それをより早く打ち抜くことができます。しかし、最後に開発したものは、私が使用していたPIC16をあらゆる点で限界まで押し上げることが判明しました。しかし、それはデータサイズが原因ではありませんでした。私がそのようなことをするなら、私は本当にARMを学ぶべきです。


ほとんどの小さなマイクロアプリケーションの場合、必要な最大のデータサイズは16ビットまたはおそらく24になると思います。ほとんどのアプリケーションは、8ビットを超える処理を行う必要はありませんが、何かを行う必要があります。一方、これまでに作成されたほとんどすべての8ビットマイクロコントローラー(すべてではないにしても)にはキャリーフラグがあり、一連の操作を使用して16ビット(またはそれ以上)のマイクロコントローラーを実行できます。
スーパーキャット2014

2

ARMチップが「コンピュータ」のように動作するほとんどの機能を引き継ぐことを期待しています。一方、多くの8ビットマイクロコントローラーは、比較的単純なプログラマブルロジックデバイスまたは中程度の数のゲートで実行できることを実行するために使用されますが、実際には、より安価に、および/またはシンプルな8ビットマイクロ。より複雑なアプリケーションを設計するときは、8ビットのアプリケーションよりも32ビットのマイクロを使用する方が簡単ですが、チップの全体的な目的が、たとえば特定の入力を監視してデバウンスし、ハイになると200の出力を開始することである場合1ms間隔で特定の出力にパルスを送り、次に2ms間隔で100、次に3msで100、その後100ms間一時停止し、入力がローになるまでそれを続けます。そのためのコードの設計は実際には簡単かもしれません32ビットのものよりも8ビットマイクロで。8ビットマイクロと32ビットマイクロのコストの違いは、多くの場合、プロジェクトを8ビットマイクロに「適合」させるために追加のエンジニアリング作業を費やすことを正当化するのに十分ではないかもしれませんが、32ビットパーツはエンジニアリングの労力を節約しないでください。1ペニーも余分に費やす必要はありません。


私は同意しますが、2つのツールチェーンを使いこなせるようにするには、独自のエンジニアリング作業が必要であることを指摘します。
Scott Seidman、2014

2
@ScottSeidman:はい。一方、一部の8ビットマイクロは電源投入直後にコードの実行を開始できますが、32ビットマイクロは少し時間がかかります。
スーパーキャット2014

8ビットプラットフォームでARMのライセンスが提供されることはないでしょうか。ペリフェラルとバス全体を単純にクロックしない機能など、ARM実装にはいくつかの優れた機能があり、消費電力の観点から8ビットARMSが他のプラットフォームの周囲でリングを実行します。mfctがCMSIS準拠のライブラリを作成すると、最終的には大きなプレーヤーを一掃することになると思います。
Scott Seidman、2014

@ScottSeidman:実際には、CPU速度に依存しない一定のタイムベースで実行されるペリフェラルのタイミングに敏感な部分(例えば、タイマー、ボーレートジェネレーターなど)を実行できるデザインが欲しいです。 、しかし私はそのような概念に対する最小限のサポートしか見ていない。シリコンでは難しいことではありませんが、合成ツールにはそのようなことを効率的に行う手段が欠けていると思います。
スーパーキャット2014

@supercat他のマイクロコントローラーについてはわかりませんが、PIC32には、メインクロックとは異なるクロック速度に設定できる周辺バスクロックの概念があります。あなたは、CPUの速度を変更することができますので、例えば電力を節約するために、まだあなたの周辺ボーレートなどの全て再プログラムする必要はありませんので、同じPBクロックを保つ
tcrosley

1

CPUコストと電力消費量が主な理由であることに同意しますが、ここに記載されていないもう1つの考慮事項はPCBスペースです。 電子バスルームスケールなど、多くの種類の組み込みシステムでは、大量のI / Oはあまり必要ありません。バスサイズを大きくしてもメリットはなく、高速処理にはメリットがありません。しかし、そこにありますプリント回路基板のレイアウトとルーティングがシンプルになり、多くの場合より小型になるため、ピン数が少ない小型パッケージにメリットがあります。ボードを4層ボードではなく2層ボードとして設計できる場合、コストが大幅に節約され、8ビットプロセッサに付属しているピン数が少ないと、32ボードよりも簡単に節約できる傾向があります。一般により多くのピンと物理的に大きなパッケージを持つビットプロセッサ。


これは2年半前の質問だとわかりますよね?
Olin Lathrop 2017

@Olin別の見方は問題ありません。
m.Alin 2017

@OlinLathrop:はい、8ビットCPU駆動のクロック/カレンダーは問題なく動作しています。:)
エドワード

0

8ビットの世界でさえ、新しいタイプは古いタイプに取って代わるのに非常に長い時間がかかることが知られています-MCS51がまだニッチで生きており、MCS48がまだ予期しない場所で見つかっているのを見てください。

多くの場合、それは追加の価値をもたらさないので変化は起こりません、そしてそこに留まることがまだ証明されていない、そして/またはまだ動くターゲットであると予想される新しいテクノロジーを学習するコストが伴いますMCUテクノロジに集中したいが、アプリケーションに集中したいが、今年のARMヴィンテージに適応するようにプロダクションソフトウェアを常に修正して再テストしたくない人には不愉快です!)開発されなくなったコンポーネントは廃止されたものもあれば、ようやく安定したものになっているものもあります。また、発生したバグの回避策が必要になる場合もありますが、少なくともこれらの安定したプラットフォームを提供します。溶岩流は常にアンチパターンであるとは限りません。つまり、溶岩流は山を維持する傾向があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.