マイクロコントローラとシステムオンチップ


24

私はマイクロコントローラーのプログラミングを始めており、いくつかのドキュメントや教科書を読んでいました。マイクロコントローラーとシステムオンチップの違いは何ですか?

一部のドキュメントでは、これら2つの用語を相互に変更可能に使用しています。しかし、ほとんどの教科書は、2つの用語を相互に変更可能に使用することは正しくないことを指摘しているため、いくつかの顕著な違いがあるはずです...

ありがとう!


4
私の答えを受け入れてくれてありがとう、しかし、受け入れる前に次の時間を長く待つことを本当にお勧めします。他の人はおそらく異なる見解と洞察を持っていますが、多くの場合、すでに受け入れられた答えを持っている質問を渡すことがあります-私は知っています。特に灰色の領域に対処する質問については、コンセンサスを収集するための時間を残しておく必要があります。
オリンラスロップ

@Olin Cool、次回はそのことを覚えておいてください!
11

回答:


27

マイクロコントローラは、プログラムとデータメモリが組み込まれたプロセッサです。これらのチップは小規模な組み込み制御アプリケーション向けであるため、I / O用のピンを残し、外部メモリバスを必要としないことは非常に便利です。一部のマイクロコントローラは、6ピンほどしかなく、便利なことを実行できます。これとは対照的に、PC用の汎用コンピューティングプロセッサとは対照的です。これらのものには、アレイに数百のピンがあり、広範な外部回路が必要です。

システムオンチップに関しては、あまり明確に定義されていない用語です。キプロスは、一部の部品をPSOC(Programmable System on Chip)と呼んでいます。これらは基本的に、同じチップ上に小さなFPGAを搭載したマイクロコントローラーです。周辺機器を内蔵する代わりに、FPGAの利用可能なリソース内で必要なものを作成できます。

一般に、チップ上のシステムは、おそらくシステムレベルのロジックが統合されたマイクロコントローラーだと思います。もちろん、システムをさらに進めようとすればするほど、1セットの追加ハードウェアが有用になる可能性は低くなるため、ある種の構成可能性は非常に有用です。ただし、現時点では、「システムオンチップ」は、現実のものよりもマーケティング用語です。


20

System On a Chip(またはSoC)は、マーケティング担当者が使用するキャッチフレーズであり、あまり意味がありません。次のような多くのバリエーションもあります。

PSoC:サイプレスセミコンダクターのチップ上のプログラマブルシステム。

SOPC:アルテラによるプログラマブルチップ上のシステム

本質的に、SOCは、複数のチップを使用するために使用されるすべてを実行する単一のチップです。CPUまたはRAMを含める必要があると言っているものは何もありません。したがって、チップ上でより多くのトランジスタを取得でき、チップ上でより多くの機能を取得できるようになったため、10年または20年前と比べて、ほぼすべてをSoCと呼ぶことができます!

さらに悪いことに、SoCと呼ばれるものの例はたくさんありますが、有用なものにするためには複数のチップが必要です。多くの場合、外部フラッシュ、RAM、および電源を必要とする何らかの形のCPU +周辺機器があります。そのため、SoC名でさえ誤解を招きます。

MCUはおそらくSoCの最も簡潔な例ですが、非常に限定的な例です。


マーケティングフレーズとしてSoCの@ David-kesner +1。
フランク

12

一般に、マイクロコントローラーは、特定のタスクを実行するように内部的にプログラムされた組み込みデバイスであると見なされます。ユーザーの操作は最小限であり、柔軟性はほとんどまたはまったくありません。マイクロコントローラは通常、メモリとROM(フラッシュ)の量が少なく、かなり低電力です。

逆に、システムオンチップはスペクトルのもう一方の端です。完全な柔軟性とユーザーインタラクションを対象としています。多くの場合、より大きなハードウェア(ハードドライブなど)のIOドライバー、さらにはグラフィックアダプターなども含まれます。System-on-Chipは、チップ上の完全なコンピューターシステムに似ています。

この2つには非常に多くのクロスオーバーがあります。いつマイクロコントローラーではなくなり、システムオンチップになりますか?そこから多くの混乱が生じます。

基本的に、コンピューターができることを実行できる場合は、システムオンチップです。たとえば、連絡先リストを管理するデスクの電話の中やキーパッド入力システムに座ったり、CNCマシンでモーターを動かしたりする場合は、マイクロコントローラーです。

追伸、これについては引用しないでください-2つの間に多くのクロスオーバーがあると言います。


5

この区別はある意味では技術的よりもマーケティングに関連していますが、一般的にマイクロコントローラの「プログラム可能な」部分は、単一の比較的狭い「意識の流れ」に限定されることをお勧めします。基本的に、任意の時点で、マイクロコントローラの次の比較的小さな動作は、プログラム方法によって決定されますが、システム内の他のすべてのロジックはハードワイヤードであり、構築時に実行されます。タイマーのようなものはいくつかの設定オプションを提供するかもしれません(例えば、入力でパルスをカウントするのに対して固定レートでカウントする)が、一般にシステムの配線は固定されます。入力信号に応じて出力信号を変更する必要があり、それを行うための明示的なハードウェアが存在しない場合、プログラムは定期的に入力信号を確認し、変更されている場合は出力信号を切り替える必要があります。入力アナログ電圧に応じて出力アナログ電圧を変化させたい場合、プロセッサは入力電圧をサンプリングし、必要な応答を計算し、必要な出力電圧を要求できます。プロセッサに入力を見て出力を計算させることにより、実用的なタイプの望ましい刺激/応答を生成できますが、一般に応答時間は専用ハードウェアで生成できるよりも桁違いに遅くなります。

システムオンチップの一般的な考え方は、十分なマルチプレクサーやその他のルーティング機能を備えた回路を提供し、プロセッサーを介さずに信号を回路にルーティングして多くの有用なタイプの刺激/応答パターンを生成できるようにすることです。このような回路は、プロセッサが生成できる速度に近い刺激/応答パターンを生成することはできませんが、多くの場合、プロセッサが実行できるものよりもはるかに高速です。


2

私の意見では、SoCは多くの定義を含む用語であり、実際には時間とともに変化し続けます。一方、マイクロコントローラーは、10年後の現在と同じ方法で定義されます。マイクロコントローラーと言えば、メモリ、IOポート、タイマー、カウンターなどの基本的なものが1つのチップに付属しています...しかし、SoCと言えば、具体的な基準はありません含めるべき回路のタイプ。たとえば、SoCを導入しようとしている主なアプリケーションはスマートフォンです。現在のシナリオでは、スマートフォンには次のような基本的なオンボードのものが含まれている必要があります。

  1. NFC
  2. GPS
  3. 加速度計とジャイロ
  4. Wi-Fi
  5. CPUとGPU

現状では、スマートフォンを製造したい場合、CPUとGPUを選択し、すべてをインターフェイスさせる必要があります。しかしSoCは、上記のすべてを備え、進化する能力を備えたシングルチップの概念に基づいています(ただし、非常に基本的な方法で)。また、スマートフォン、コンピューター、または電子デバイスの基本的な要件は日々増加しており、SoCの定義はそれらの要件によって変化するため、SoCの定義は常に変化していると述べました。


0

はい、SoCは基本的にはより頻繁に使用されるマーケティング用語です。デバイスとホストの用語があります。ホストはDell、HP、IBMなどの大手PCメーカーです。彼らは一般的にIntel、AMDなどで作られたCPUを使用しました基本的にマザーボード上にCPUまたはSoCを提供します(CPUと呼ばれます)。また、CPUまたはSoCを提供するものもあります(特定の目的で、センサーやGPSデバイスなど、周辺機器のアクティビティをオフロードします。それらはCPUに直接接続されていました).SoCは、以前に書いたものと同じジョブのコプロセッサーを呼び出すこともあります。MotherBoardsにはさまざまな周辺機器(基本的にCPUまたはSoCに接続されています)が接続されています。これらの周辺機器は基本的に合計バス(i2c、SPI、USB)を介して直接接続されています(SOCまたはCPU) 。コントローラーメーカー)とPCメーカーが優れたデバイス(周辺機器+マイクロコントローラー)を手に入れているためです。全体のポイントは、デバイス側でより頻繁に表示されるマイクロコントローラの用語です(SoC(現在、SOCとは何かを知っていますか?)とホスト側(PC側) CPUは、デバイス(Micro +周辺機器)の電力能力を向上させるために、SoCを彼の仕事のSoCに委任する父親であると言えます。


1
うわー !人々が多くの必要なコメントを述べずにそれをするとき、本当に下票が好きです!
ラウルプ

3
それは非常に不明瞭です。私はこの意識の流れの中に出入りすることはできません。
ivan_pozdeev

0

上記を要約すると、私には思えます:

MCUは、さまざまなものを提供するいくつかの異なるチップを使用することで、多くのメモリ、VGAなどのインターフェイス、GPUなどの機能を提供します。

MCUは、最小限のメモリ、インターフェースなどのみを提供することにより、すべてを単一チップに適合させます。

SoCは、1つのチップでできることの限界を押し広げることにより、すべてを1つのチップに適合させます。

MCUはコストを最小化することで価値を提供し、SoCは機能を最大化することで価値を提供します(両方とも単一チップ上)。TLLロジックと競合する場合、おそらくMCUです。マイクロプロセッサ(AMD、Intel)と競合する場合、おそらくSoCです。

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