マイクロコントローラー(uC)、システムオンチップ(SoC)、デジタルシグナルプロセッサー(DSP)


9

実際の質問は終わりです。しかし、それだけを読んでも、なぜ私が混乱しているのかわからないかもしれません。私はこの投稿をいくつかの定義、仮定、推測から始めて、実際の質問をしました。

私はいつも違いを知っていると思いますが、「uCを備えたトランシーバーを置いた場合、それは今ではSoCですか?」私はすべてごちゃ混ぜになり、答える方法がわかりません。uCは本質的にSoCだと言われたことを思い出します。しかし、どのような証拠がありますか?しかし、arduinoはシングルチップではありません!Atmegプロセッサはいつでも「ボード」から取り外すことができます。

オンラインでチェックすると、直接または間接的に今言ったことを確認または矛盾するあらゆる種類の回答が得られます。これは常に私を混乱させるものであり、私はこれらの用語を緩く、時には交換可能に使用しているマーケティング担当者と、そのリードに従う人々を非難するだけです。

そこで、私はこれら3つの用語の基本的な意味を探すことにしました:uC、SoC、およびDSP。たとえば、回路内の電圧について混乱したときは、常に物理の基礎に戻ります。グラウンドは実際にはゼロではなく、単なる「基準」であり、電圧は「絶対的」ではなく、「相対」です。これは常に正しい方向を示しています。しかし、uCについて語る際の基本はありません。「マイクロ」「コントローラー」とは、マイクロメータースケールとなるほど小さいコントローラーです。しかし、ナノコントローラーという用語はありませんね。したがって、この考え方は役に立たないでしょう。

私が答えようとしているのは次のとおりです:

  • uCは他の周辺機器とメモリを備えたプロセッシングユニットで、一般的に使用されますよね?
  • SoCは「チップ」上の完全な「システム」です。では、シングルチップに搭載したシステムはSoCですよね?
  • DSPは特定の用途、主に数学演算用の処理ユニットですよね?

  • それは、uC内のすべてが1つのチップ内にある必要があるということですか?はいの場合、uCは実際にはSoCです。小さいかもしれませんが、そうです。arduinoはどうですか?おそらく、シングルチップ上にある場合、uCはSoCになる可能性がありますが、そうする必要はありません(ここでは、例としてarduinoを多用しています)。

  • したがって、arduinoはuCです。そのすべてのコンポーネントを別のボードに配置して、たとえばXBEEをミックスに追加するとします。それはまだuCですよね?それで、今はSoCだと言うのはいつですか?同じものをボードに集めるのではなく、単一のチップに入れるときだけですか?

これまでのところ、上記の質問は何とか答えていると思いますが、先に進むために確認したいだけです。私が「基本的に」考えようとすると、チップまたはボードは「同じ」である可能性があります。それは、異なるコンポーネントを接続する単なるワイヤです。この時点で、コンポーネントをどのように定義しますか?単一のトランジスタですか、ADCのような回路ですか?しかし、私はそこに行きたくありません。

次の質問は、この投稿が本当に何であるかです:

  • uCは本質的にSoCですか?システム全体が汎用用途であることを要件の1つとするSoCの特殊なケース。
  • uCは(インターネットによると)汎用であり、DSPは主に、現実の世界から収集された信号を数学的に処理するためのものです。しかし、DSPは依然として「プロセッサ」であり、uCには「プロセッサ」が含まれています。束やペリフェラルを備えたDSP(通常、ADCとDACが一緒に使用されるため、これらを使用するとします)を配置して、ミックスをuCと呼ぶことはできますか?またはSoCです(現在、ミックスは汎用ではないため、uCと呼ぶことはできませんが、それでもSoCです)

それはあなたがそれを何と呼ぶか​​は本当に重要ではありません、「他の名前のバラは甘い香りがします!」SoCは販売条件です。「他の人があなたに部品を販売しますが、システム全体を販売します」が意味します。uCは一般にuP +メモリのようなもので、多くの場合ADCです。DSPはDSP向けに最適化されており、DSPは常にハードウェア乗算器を備えていますが、最近では多くの場合、プログラムメモリと、場合によってはADC / DACであり、ほぼSoCです。しかし、大部分は、それらのほとんどは他のものとして説明できます。汗をかいてはいけません、確かにそれを超えて人々を殴らないでください。
Neil_UK 2016年

2
uを使用することは広く理解されており、それを使用しても実際には問題はありませんが、µを作成したいAltGr + M場合⌘ + Mは、押すか、またはトリックを実行する必要があります。
Magic Smoke

1
「マイクロ」は歴史的な手荷物です。「マイクロ」コントローラーは、冷蔵庫サイズの「ミニ」コンピューターや部屋全体を占める「マイクロ」コンピューターとは区別される「マイクロ」コンピューターに由来します。
user253751

回答:


11

uC =スタンドアロンの処理チップ:CPU、RAM、ROM、一部の周辺機器。

DSP =信号処理用に最適化されたプロセッサチップ(現在は主にuC)多くの場合、高速MAC(積和演算)、飽和演算、および複数のメモリインターフェイスを備えています。それを最大限に活用するには、多くの場合、どのような種類のメモリアクセスを同時に実行できるかなど、その特性を深く認識する必要があります。(したがって、製造元が提供する微調整されたアセンブリライブラリでよく使用されます。)多くの場合、大容量メモリ(16ビットアドレスバスで十分です)での使用は意図されていません。

SOC =メインプロセッサチップの外部にあったペリフェラルを組み込んだプロセッサチップ(ほとんどの場合、CPU、キャッシュ用のRAMを備えている可能性があります)。これは、定義上、移動するターゲットです。今日の特殊なSOCの機能は、明日のメインストリームチップにあります。現在のSOCは主にLinuxレベルのOSを実行することを目的としており、RAMとROMを除いて、そのようなシステムで必要となるほとんどのものが含まれています(ただし、一部のROMは、多くの場合、外部FLASHを読み取るために含まれています)。

今日のSOCで一般的な周辺機器の例(ただし、uCへの道を模索しています!):イーサネットポート、イーサネットスイッチングファブリック、USBを含む。ホストおよびOTG、グラフィックエンジン、MPEGデコード、暗号化エンジン、RAMおよびフラッシュインターフェイス。

Arduinoはボードレベルの製品であるため、uC、DSP、SOCではありませんが、uC、DSP、SOCを含むことはできます。基本的なUnoにはuCが含まれています。

uCはSOCではありません(ただし、ボーデラインのケースが存在する可能性があります)。uCはスタンドアロンであり、(現在のテクノロジーレベルでは)LinuxレベルのOSを実行することを意図していません。SOCはスタンドアロンではありません(RAMとROMが必要です)。

境界は100%タイトではなく、時間とともに変化しています。最新のCPUのCPUとメモリインターフェイスは、芝生の上でも、昨日のDSPを簡単に上回ります。しかし、今日のDSPは、信号処理を行う場合、より一般的なパーソプCPUよりも高速であり、消費電力が少ないか、消費電力が少ないです。最新の技術と需要を利用して最も魅力的なチップを作ることは、メーカー間の競争です。現時点では、これにより上記の3つのスイートスポット(および汎用マイクロプロセッサ)が生まれましたが、時間の経過とともにシフトします(DSPは10年前よりも一般的ではありません。IMOでは、オーディオレベルのスループットが汎用CPU)。

最近より一般的になっている特定のタイプのチップは、ワイヤレスインターフェイスを備えたuC(またはSOC)です。ESP8266とESP32でWiFiの例を確認し、RN2483でLoraWanを確認します。


2

uCとDSPの定義はかなり単純です。

uCは、内部に統合されたメモリ(揮発性および不揮発性)を備えた処理コアです。これは一般的に内部に揮発性メモリを備えているが、不揮発性メモリは備えていないマイクロプロセッサと比較されます。

DSPはuCのオフシュートです。DSPは通常、一般的なuCよりも優れたアナログサンプリング機能を備えています。DSPはuCよりも優れた演算機能も備えており、これらの演算機能を利用するためのFFTや自己相関などの多くのライブラリが付属しています。

SoCはよりマーケティング用語です。SoCは、uCが単一またはほぼ単一のチップソリューションを作成するのに十分な機能を組み込んだときに使用しようとする用語です。SoCという用語は、uCがグラフィックス処理とグラフィックスドライバーをボード上に統合している場合によく見られます。携帯電話のARMチップについて考えてみましょう。彼らはグラフィックスを組み込んでいます。


たとえば、DSPにはADCも含まれているということですか。
ヒムラ2016年

@himura uCにはADCがありますが、DSPには本当に優れたADCがあります。たとえば、Arduinoは10ビットで最大約10kHzのサンプリングレートが可能です。DSPであるdsPIC33は、10ビットで1.1MHzのサンプリングレートが可能です。これは2桁高速です。
vini_i

DSPはADC機能のない単なる処理ユニットだと思いました。しかし、今では完全なシステムのように見えます。ありがとう
ヒムラ

1
この答えは間違っていると思います。コンバータを持たないDSPチップはたくさんあります。DSPと汎用CPUの主な違いは、メモリアーキテクチャです。DSPには、並行してアクセスできる複数のメモリがあります。参照en.wikipedia.org/wiki/Harvard_architecture
ヒルマー

@ヒルマーはコンバーターなしのDSPのリファレンスをいくつか提供していただけますか?私はこの点が好きです
ヒムラ2016年

0

私たちがSOCと呼ぶものは、一般にuCよりもはるかに強力なプロセッサコアを備えています。通常、そこにARMコアがあります。Cortex Aシリーズなど、今日生産されているほとんどすべての「ビッグ」ARMプロセッサは、実際にはSOCです。Linuxのような大規模なOSを実行するには大量のRAMが必要なので、SOCには最新のSDRAMチップをサポートする外部RAMコントローラーがあります。ブートローダーを実行し、周辺機器とSDRAMコントローラを初期化するために、ブートフェーズでのみ使用される少量の組み込みスタティックRAM。

uCは通常、スタティックRAMが組み込まれた(かなり少量の)完全なオールインワンソリューションです。RAMが小さくMMUがないため、大きなOSを使用できません。今日、ほとんどのuCには8ビットまたは32ビットのコアがあります。レガシーアプリケーションでのみ使用される16ビットuC。32ビットuScの時代は、ARM Mシリーズコアで始まりました。これらのコアは特にuC向けに設計されており、命令セットを除いて大きなARMとの共通点はほとんどありません(ARM MはARM命令セットのサブセットであるTHUMB命令を使用します)。

DSP用語は、コアアーキテクチャに関するものです。DSPには複数のALUがあり、いわゆるVLIW(非常に長い命令ワード)命令セットがあります。VLIW命令は、さまざまなCPUサブシステムを対象とする多数のサブ命令(約4)で構成されています。たとえば、そのような長い命令には、メモリからデータをプリフェッチする命令、特殊な乗算器ALUへの乗算命令、および汎用ALUへの算術命令を含めることができます。

DSPを汎用uCとして使用できますが、主な目的はデジタルデータ処理です​​(信号だけでなくビデオも)。デジタルフィルター、メディア圧縮/解凍アルゴリズムには、DSP並列化アーキテクチャのメリットがあります。

最近のCPUコアには、通常、ベクトル命令の形式で「osp "DSP拡張機能"が用意されています(同じ算術演算を約8つのオペランドで実行できます)。DSPのVLIW命令とは異なるものです。


「今日生産されているほとんどすべてのARMプロセッサは実際にはSOCです」LPC810 SOCのようなCortex-M0チップを検討しますか?
Wouter van Ooijen

uCについて話しながら、Cortex Mシリーズについて個別に説明しました。Cortex Mは明らかにuCです。
e_asphyx 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.