マイクロコントローラー/マイクロプロセッサーと異なるビットバージョン、違いは何ですか?


20

一般的なエンジニアリング愛好家として、私は毎日、マイクロコントローラーの世界についてもっと学んでいます。マイクロコントローラのビットバージョンの重要性は、一度理解できませんが。

私はATmega8を数ヶ月使用してきましたが、私の目的にはうまく機能しているようです。クロック速度、メモリ、IOピンの数、通信バスの種類などが、あるマイクロコントローラーを別のマイクロコントローラーと区別する方法を知っています。しかし、たとえば、8ビット対16ビット対32ビットの重要性はよくわかりません。上位ビットバージョンでは、デバイスがより大きな数値を格納できることを理解していますが、これもまた、私の決定にどのように影響しますか?私が製品を設計している場合、仮想シナリオでは、8ビットプロセッサでは単純にできないと判断し、さらに高いものが必要であると判断します。

ATmega8の理論的な32ビット版(他のすべてが同等)が8ビット版より優れていると信じる理由はありますか(そのようなデバイスが可能であれば)?

私はナンセンスを話しているかもしれませんが、それは私の混乱の結果だと思います。


回答:


24

格納できる数値の幅ではなく、1回の操作で処理できる幅です。慣例的に(ただし必ずしもそうではない)、これはネイティブメモリアドレス指定の幅とある程度の相関関係があるため、セグメンテーションやバンクスイッチングなどのworkい回避策なしで簡単にマッピングできるストレージの量になります。

現在の32ビットコアは、ほとんどの点で8設計よりも優れています(柔軟性、フラットメモリモデル、そしてもちろんパフォーマンス)。主要な例外は、レガシーシステム、極端な量と価格圧力のあるアプリケーションです(そうでない場合、価格はコア幅よりもオンチップメモリ​​サイズ)、およびプロセス/密度の副作用。後者は、5v動作のようなものを提供できます。場合によっては、CPU設計自体に論理エラーがないことを証明しようとすると、場合によっては耐放射線性が大きくなるか、単純化の利点があります。多くの愛好家にとって価値のある最終的なプロセス/年齢の副作用の1つは、DIPパッケージの8ビットコアが一般的である一方で、そのようなパッケージの32ビットデバイスはまれです(存在しますが)。


3
単一の操作で処理できる幅は、プログラムの非同期部分を同期するときに重要になる場合があります。8ビットマイクロで16ビット値をアトミックに読み取る必要がある場合は、まず割り込みを無効にする必要があります。これは、ISR応答時間を低く保つために避けたい場合があります。
ndim

いくつかの8ビットマイクロがARM(最も一般的な32ビットアーキテクチャ)よりも優れている可能性があるもう1つの特徴は、I / Oビットの調整です。PIC 18Fxx(8ビット)は、レジスタが保持するものに関係なく、単一の命令でI / O空間の任意のビットを設定またはクリアできますが、ARMは一般にマルチステッププロセスを必要とします。ARMチップは、現在利用可能なPICチップ(Scenixから入手できる小型の100MHz PIC互換チップもありますが、廃止されたと思われます)よりも1秒あたりの命令数を多く実行できますが、利用可能なPICでもいくつかの種類のビットバンギングを実行できますもっと早く。
supercat

1
普遍的ではありませんが、一部のARMデバイスには、個々のGPIOビットを設定またはクリアするために書き込むことができるGPIOx_BSRR / GPIOx_BRRレジスタなどがあります。
クリスストラットン

8

ビット値はデータバスまたはデータパイプサイズです。つまり、8ビットMCUは(ほとんどの場合)各クロックサイクルで0〜255の値でしか動作できません。プロセッサには8本のデジタルラインが並列に接続されていると考えてください。また、16ビットには16行があり、32ビットには32行があります。したがって、クロックサイクルごとに、これらのデータラインを読み取り、ラインが多いほど、クロックサイクルごとに処理できる値が大きくなります。

28256

21665536

2324294967296

また、より大きなデータバスにより、プロセッサはより大きなメモリアドレスにアクセスできます。

これは、数学演算中に大きな違いをもたらします。16ビットの数値は、8ビットの数値よりもはるかに精度が高くなります。16ビットのマイクロコントローラーは、8ビットよりも長い数値の演算処理の効率も向上しています。16ビットマイクロコントローラーは、整数の一般的な定義のように、2つの16ビット数値で自動的に動作できます。ただし、8ビットマイクロコントローラーを使用している場合、プロセスはそれほど単純ではありません。そのような数値を操作するために実装された関数は、追加のサイクルを必要とします。アプリケーションの処理の集中度と計算の数によっては、回路のパフォーマンスに影響する場合があります。

8ビットと16ビットのマイクロコントローラーの違い

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