• ベストアンサー

DSP(ディジタル信号処理)について詳しく教えてください。

今、DSPについて調べているのですが、ディジタル信号の作成や編集を行う事を DSPというと、書いてありました。また、C言語で/アセンブラで目的にあった動作をさせるとありました。他にも、例えで、DSPは、レーシングカーF1 、 CPUは、 レジャーカーと書いてありました。これは、処理速度の違いを表していると思うのですが、具体的に、DSPとCPUの違いを教えてください。それと、DSPが、どのように使われてるか教えてください。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

デジタル信号処理は、その大部分が積と和の繰り返しの計算です。 その計算を効率よく行うのがDSP(Digitai Signal Processor)です。 #ちなみに、単にDSPと言った場合には、Digitai Signal Processorを意味する #場合と、Digitai Signal Processingを意味する場合があります。 CPUが汎用のプロセッサであるのに対し、DSPは信号処理等に特化したプロセッサ ということが出来ると思います。 CPUに対するDSPの仕組み上の違いとしては、 ○高速な乗算器を持つ。 ○プログラムとデータに対して、それぞれ別々のメモリとバスを持たせる事  により、データ転送を高速に行う。(ハーバードアーキテクチャ) などが挙げられます。 どのように使われているかですが、身近なところでは 携帯電話の音声圧縮/伸長やノイズキャンセル、 デジタルカメラの画像圧縮/伸長などがあります。

kakehiki08
質問者

お礼

丁寧な説明、ありがとうございます。CPUとDSPの違いもわかりましたし、 現在、DSPが身近に使われている機器の事もわかりました。 どうもありがとうございました。

その他の回答 (1)

回答No.2

#1の方のおっしゃるとおりですが、若干補足します。 なぜ専用DSPがCPUより速いか、ですが、DSPには固定小数点演算用のものと浮動小数点演算用のものとがあります。 CUPの場合はFPU(浮動小数点演算ユニット)を持たない、あるいはあまり強力でないもの(だからPentiumはいくら動作周波数が速くてもPowerPCに劣るわけです)は浮動小数点をふんだんに使う数値演算(データ解析、制御、グラフィックス)ではDSPには劣る事が多いです。 あとマルチプロセッサで構成が可能なSHARKなどもありますし、アセンブラのオプティマイザ(最適化サポート機能)を備えたものもあります。これだとCで記述しても純粋にアセンブラで書いたときの70%程度の性能で動作します。(低いように思えますが、Cで書くとそこまでは出せません) あと、パイプライン並列化といって命令を可能な限り同時に処理できるような機能を持っている製品もあります。 そのため同じ周波数でもCPUの数倍(それ以上)の演算性能が出せます。 あとどうしてそこまで高速性能が必要かというと特にアメリカ、ヨーロッパでは軍事製品に使われるからです。 ソナーとかレーダーとかミサイルとか航空機とか。 他にも知りたいことがあればお答えいたします。

kakehiki08
質問者

お礼

さらに詳しい説明をありがとうございます。DSPがCPUより優れているのが、どういった点なのか、わかりました。