DSPコアが誕生してから30年以上が経過し、さまざまな製品・アプリケーションに使われてきました。いまでこそデジタル信号処理技術は身近なものであり、私たちにとって無くてはならない存在となっています。
今回はデジタル信号処理技術の立役者となったDSPについて、マイコンとの違いを交えて紹介します。
そもそもDSPとは?
DSPとは、Digital Signal Processor(または、Processing)の頭文字をとった言葉で、その名の通りデジタル信号処理に特化したプロセッサです。
自然界にある信号(光、音、震動など)はすべてアナログの信号であり、DSPはこれらのアナログ信号をデジタルサンプルリングした情報として入力する必要があります。また、DSPは四則演算をはじめとした特定の演算処理が、より高速に処理できるよう設計されています。
DSPコアは積和演算が得意
DSPの大きな特長はハードウェアとして乗算器を持たせたことです。一般的なマイコンで乗算を実行する場合は加算を何度も実行しなくてはなりませんが、DSPは乗算器を使用することにより1サイクルで実行できます。
また、デジタル信号処理技術には、データの圧縮・伸張、デジタル・フィルタ、制御、認識などがあり、これらのアルゴリズムは積和演算が多用されます。積和演算とは乗算と加算を組み合わせた演算処理のことです。DSPは、この演算処理をより高速化するために作られたといっても過言ではありません。
例として、Texas Instruments社(以降、TI社)のC6000 DSPシリーズに搭載されているDSPコアの内部構造は、8つの演算器で構成されていて、乗算器(Mユニット)と、加算器(Lユニット)が2組あります。それぞれの演算器は独立して動作するため、1サイクルで積和演算を2回実行することが可能です。
また、1サイクルで複数回の積和演算を実行するといった、特殊なSIMD(Single Instruction Multiple Data)命令を備えており、さらに積和演算能力を向上させています。
※積和演算能力はMAC(multiply-accumulate)と呼ばれることもあります。
ユニット名 |
機 能 |
.Lユニット | 算術論理演算(ALU) |
.Mユニット | 乗算器(Multiplier) |
.Sユニット | 標準演算(Standard Operation) ※Jump命令や、コンペア命令など |
.Dユニット | データ・アドレッシング(Data) |
高速転送が可能なデータ転送方式
多くのDSPデバイスの内部バス構成は、ハーバード・アーキテクチャが採用されています。プログラムメモリとデータメモリが共有となっているデータバスのノイマン・アーキテクチャと比べて、専用のデータバスを持たせることにより、高速なデータスループットが行えます。
また、積和演算を1サイクルで実行させるためには、乗算機と加算器(積和演算器)へ2つのデータを入力しなければなりませんが、データメモリ専用のバスが分離した構造の製品もあります。
なお、ノイマン・アーキテクチャは、ハーバード・アーキテクチャと比べ、必要なデータバスが少なく構成できることから安価に実現できるため、コスト重視のマイコン製品に採用されます。
多様なアプリケーションに対応するDSP 製品
DSPは積和演算をはじめとした算術演算が高速に実行できるよう設計されており、必然的に演算処理が多用される分野でその実力が発揮されます。現在は、オーディオ・プレーヤ、ビデオ・プレーヤ、電話インフラ、医療機器、セキュリティ装置などさまざまな分野で使用されています。
TI社は古くからDSP製品の開発を続けてきましたので、様々な特長を持った製品がございます。ここではTI社のDSP製品について紹介します。
TI社の代表的なDSPシリーズ
DSPの高い演算能力を持ちながら、業界最小クラスの低消費電力を実現したC55x DSPコアが搭載された製品から、高速信号処理、高速通信が要求される分野にフォーカスしたC66x DSPマルチコア製品、そして、Arm® コアも内蔵したSoC製品まで広範な組込み市場に対応する多様な製品展開を行っています。
パフォーマンスと消費電力を基準にすると、下記の図のように位置付けられます。
シリーズ名 |
特 長 |
C55x シリーズ | 超低消費電力、コンパクトサイズの組込み製品向けの効率的な信号処理 |
C674x シリーズ | 固定小数点 / 浮動小数点 DSP を搭載した、低消費電力のリアルタイム信号処理エンジン |
C66x シリーズ | 高性能でスケーラブルなシングルコアおよびマルチコアDSP |
66AK2x シリーズ | 高性能でスケーラブルなDSP +Arm® マルチコアプロセッサ |
高性能で高い電力効率
TIのC66x DSPコアは、1GHz動作時に32GMACSと16GFLOPSを実現し、業界最高性能の浮動小数点DSPコアで、かつ12GFLOPS/Wの優れたパフォーマンス/消費電力を提供しています。そしてC55x DSPコアを搭載したC5500 DSPデバイスは、0.20mW/MHzという低消費電力での動作を実現しています。
また、マイコンでのプログラム開発と同様にC言語を使用したソフトウェア開発が可能です。DSPコア向けに最適化されたライブラリやコーデックを用いることで、容易にDSPのパフォーマンスを引き出すことができます。
以下の図は、左側が性能を比較した図で、右側がフルレンジの高電力効率コア数を表した図です。
DSPとマイコンの使い分け
大容量の複雑な演算処理を高速に実行できるDSP
DSPは大量の複雑な演算を短時間に実行することに特化しています。
例えば、DSPは(16bitデータ×16bitデータ)+(16bitデータ×16bitデータ)のような演算は特殊な命令(SIMD命令)があります。そのため、1つの命令を1サイクルで実行できますが、マイコンで同じ演算を実行させると複数回の命令を処理しなければなりません。
また、このような演算は、音声データから特定の周波数だけを抽出したり、画像データの濃淡変動を滑らかにする(平滑化)ための画像処理アルゴリズムといったデジタルフィルタ処理に多く用いられます。
使用例
- オーディオ/ビデオ機器(AVレシーバ、オーディオプレーヤ、IPカメラ など)
- マシンビジョン(画像検査装置、プリンタ/スキャナ など)
より簡単に手早く実行できるマイコン
一方、マイコンはDSPに比べ、汎用性が高く、使いやすいことが特長としてあげられます。また、様々な種類の製品が存在しているため、ユーザーの利用用途に合わせた最適なデバイスが選択できます。
大容量の複雑な演算処理を高速に実行したい場合はDSP、さまざまな制御をより簡単に手早く実現したい場合はマイコンを選択すると良いでしょう。
使用例
- リモコン、生活家電(コンプレッサ制御、表示制御 など)
- センサーコントローラ(圧力、温度、ガス など)
まとめ
近年ではDSP命令を備えたマイコンや、ハーバード・アーキテクチャを採用したマイコンなども数多く存在しており、機能や構造としての違いがなくなってきています。
マイコンは汎用性に優れ、さまざまな用途へ対応するような機能があるため、使い易いといった特長があります。しかし、複雑な演算を高速処理させる場合は、やはりDSPが優位にあるといえるでしょう。
これらの違いを理解し用途によって使い分けることで最適なアプリケーションの実現ができます。以下へアプリケーションに関するコンテンツをDSPとマイコンそれぞれご用意したので、ぜひ部品選定や開発の参考になさってください。
DSP(デジタル・シグナル・プロセッサ) – アプリケーション
マイコン(MCU) – アプリケーション
お問い合わせはこちら
本記事でご紹介したDSPや、その他のTI社製品について詳細な情報をお求めの方は、是非こちらからお問い合わせください。
関連情報
おすすめ記事/資料はこちら
フレーズに応答する音声認識デモを作ってみよう
基本構成を丸ごと提供!おすすめ音声認識ソリューション3選
マイコンの選び方
LEA(低エネルギー・アクセラレータ)でマイコンの高速信号処理を実現
おすすめマイコンボード6選!超初心者向けからArm®搭載製品もご紹介
商品の購入はこちら
C55x シリーズ
TMDX5535EZDSP C5535/C5545 eZdsp USB スティック開発キット
C674x シリーズ
TMS320C6748 DSP 開発キット(LCDK)
C66x シリーズ
TMS320C6678L 評価モジュール
66AK2x シリーズ
66AK2Gx(「K2G」)評価モジュール
メーカーサイト/その他関連リンクはこちら
デジタル信号プロセッサ
C66x/C674xコア・ベンチマーク
C55X コア・ベンチマーク
C6000 DSP トレーニング
TI の 16 ビットおよび 32 ビット・マイコン