控えめなPICマイクロコントローラーではできないdsPICの機能


10

私はまだDSPチップを使用していません。私が知っているのは、それらのアーキテクチャが通常はクロックサイクル内で非常に高速に計算を実行できるような構造であり、命令セットに乗累算命令があり、DMAがあるため、CPUがデータを移動する貴重な時間を無駄にする必要がないことです。周り。まだまだあると思いますが、基本的なポイントはいくつかあります。

MicrochipにはDSPチップラインであるdsPICがあることがわかります。乗算器も内蔵しているPIC18またはPIC32だけを使用してDSPを実行することはできませんか?dsPICは通常のPICとどう違うのですか?

私の主な質問はこれです。なぜ、DSPチップと呼ばれる別個の異なるものを用意し、すべてのマイクロコントローラーに高精度の浮動小数点演算機能を統合する必要がないのですか?確かに私たちが現在持っているプロセス技術では、これは多くのスペースを取るべきではありません。

また、通常のマイクロコントローラーではなく、プロジェクトでDSPチップを使用する必要があることをどのようにして知ることができますか>


1
同様の質問に対する良い答えがここにありますelectronics.stackexchange.com/questions/3067/...
デヴィッド

回答:


3

通常、「DSP ...」は、「製品が導入された時点でより関連性の高い馬力および/またはより関連性の高いハードウェア」を意味ます。
一般化されたプロセッサは、古いスペシャリストデバイスに追いつく傾向があります。
DSPICはおそらく10歳以上です-Olinは知っています。

[括弧内の項目は、一部のDSPICの例に関連しています-網羅的ではありません]。

DSP製品では、以下のいくつかの組み合わせが
期待されます。バレルシフター、
広い高速パイプライン、高速シングルサイクル実行時間、
広い単一サイクル命令、
DMA [6または8チャネル、デュアルポートRAMバッファー]のような大きな線形メモリアドレス範囲[4 Mwordプログラム] 、64 kBデータ]特殊な演算指向の機能
たぶん:
モーター制御などの特殊な周辺機器
、いくつかの異なるcoms規格のハードウェア[CAN、IIC、UART、IIS、AC97など...]通常のcomsバッファーよりも深い[4バイト] /または通常のADCよりも広い[2 Msps、10または12ビット]

これらのほとんどはDSPICファミリにありますが、gpプロセッサフ​​ァミリにもますます見られます。
極端なケースでは、ユーザーのマイクロコーディングなどが発生します。


1
私の記憶が正しければ、1999年にdsPIC設計の取り組みについて最初に聞いたことがあります。最初のサンプルは2002年の初めに、生産部品は2002年の終わりか2003年の初めに提供されました。誤って30F6010とラベル付けされました。最終的なフルスピードの1/3でしか実行されず、#55か何かとして手動でマークされました。
Olin Lathrop、2014年

1
また、PICラインは4〜20 MHzまでしかサポートしていませんが、最大200または260 MHzまでクロックすることもできます。10倍以上高速であることは、決定的に考慮すべきポイントです。
Havenard 2018

1
@Havenard-これは2014年のQ&Aであることに注意してください:彼はPIC32をDSPICの可能な代替品として言及しました。2007 PIC32MXのCmax(最大クロック周波数)は80 MHzです。2013 PIC32MZのCmaxは252 MHzです。|| ここでは不完全な比較ですが、有用です{Wikipedia}。
ラッセルマクマホン

11

PIC 16および18ファミリなど、以前のアーキテクチャのPICに対するdsPICの利点のいくつか:

  1. 8に対応する16ビット幅のデータパスとALU。

  2. より多くのデータメモリに直接対処する機能(両方のアーキテクチャの最新バージョンでは、これをさまざまな方法で拡張しました)。基本的なPIC 16は、128バイトを直接、512をバンキングでアドレス指定できます。新しいPIC 16F1xxxは、より多くのデータメモリをアドレス指定できるように拡張されたバンキングを備えています。PIC 18アーキテクチャは4kバイトに制限されています。dsPICアーキテクチャは、64kバイトまたは32k 16ビットワードを直接アドレス指定できますが、さまざまな理由により、基本アーキテクチャのRAMにはその半分しか使用できません。後のモデルのいくつかの銀行スキームはそれを拡張しました。

  3. もっと早く。元の30Fは30 MIPで実行でき、現在40 MIPパーツが標準です。新しいEシリーズは最大70 MIPを実行できますが、以前の低速モデルよりも何かを待っているのを停止する理由は他にもあります。彼らはまだ平均して大幅に高速です。

  4. DSP機能。DSPエンジンには、2つの40ビットアキュムレータと通常のハードウェアがあり、命令サイクルごとに1つのMACがアレイで一連のMAC操作を実行します(Dave Tweedの回答を参照)。MACと関連する命令は、配列のインデックス付けとループ終了を実際の積和演算とオーバーラップさせます。

  5. 8ビットPICアーキテクチャの単一の8ビットWレジスタの代わりに、15個のソフトウェアで使用可能な16ビット「ワーキングレジスタ」。

  6. バレルシフター。

  7. シングルサイクル16x16-> 32ビット乗算。

  8. ハードウェアの分割。32 div 16-> 16ビット演算には18サイクルかかります。

  9. 3オペランドの命令がたくさんあります。たとえば、2つの作業レジスタの内容を追加して、結果を3番目のレジスタにすべて1サイクルで入れることができます。これは、ほとんどの数学、論理、およびシフト演算に適用されます。

  10. 全体的に規則的で対称的な命令セット。

  11. ベクタ割り込み。PIC 16には1つの割り込みベクトルがあり、PIC 18には2つの割り込みベクトルがあります。16ビット部分(PIC 24、dsPIC 30および33)では、各割り込みソースには独自のベクトルがあります。これは、サービスする割り込みを特定するためにサイクルを費やす必要がないため、割り込みルーチンの待ち時間を短縮します。

    これにより、ソフトウェアアーキテクチャも改善されます。特定のペリフェラルの割り込みルーチンは、1つのグローバル割り込みルーチンを用意する代わりに、そのペリフェラルを処理する他のコードと同じモジュールに置くことができます。

  12. 幅広いアーキテクチャから外れる他のさまざまな利点。


8

通常、汎用CPUと比較した場合のDSPの主な特徴は、DSPが特定の信号処理操作を実行できるということです。

多くの主要なDSPアルゴリズムの最も基本的な演算の1つは、MAC(積和演算)演算です。これは、マトリックスドットおよびクロス積、FIRおよびIIRフィルター、FFTで使用される基本的なステップです。DSPは通常、レジスタやメモリの構成とデータパスを備えており、ループオーバーヘッドやデータ移動でクロックを無駄にすることなく、行内の一意のデータペアに対して少なくとも64のMAC操作を実行できます。汎用CPUには、通常、レジスタとメモリ間でデータを移動するための追加の命令を使用せずにこれを実現するのに十分なレジスタがありません。


1
MAC操作を強調するための+1。これらは間違いなくほとんどのDSPオペレーションの中核です。
Matt Young
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.