デジタルシグナルプロセッサ
(
英
:
digital signal processor
、
DSP
)は、
デジタル信??理
に特化した
マイクロプロセッサ
であり、一般に
リアルタイムコンピュ?ティング
で使われる
[1]
。
?要
[
編集
]
デジタル信??理の
アルゴリズム
は一般に大量の演算を一群のデ?タに?して素早く行う必要がある。アナログからデジタルに信?を?換し、それを操作し、再びアナログに?す(下??照)。多くのデジタル信??理は
?伏時間
に制約がある。すなわち、デジタル信??理がある時間以?に完了しないと、システムは役に立たない。
多くの汎用のプロセッサでも、デジタル信??理のアルゴリズムを正しく?行できる。しかし、そのようなマイクロプロセッサは消費電力や大きさの?係で、携?電話や
PDA
などには適さなかった。デジタル信??理に特化したDSPは、より安?でより低消費電力でありながら、より高性能を提供する。なお、汎用のマイクロプロセッサや
マイクロコントロ?ラ
でも、積和演算命令の付加など、??DSPでおこなっていた?理を受け持つことができるものも?えている。
特定の
演算
?理を高速に行なうことを目的に作られ、
音?
?理?
?像
?理などに使われることが多い。レ?ダ?などの信??理や無線通信回線の信?の?調?復調等でも使用されていた。
DTM
用音源ボ?ドなどの
PC
用?張ボ?ドに使用されたほか、
携?電話
、
デジタルカメラ
、デジタル
ビデオカメラ
、
電子?器
などに使用された。
高速フ?リエ?換
のような演算を行ない、アナログでは不可能なフィルタ動作や信?情報の?縮??調?復調?理などを行なった。
DSPのア?キテクチャは、デジタル信??理に最適化されている。以下では、そのような特?を解?する。
ア?キテクチャ
[
編集
]
- 構成
- 番地指定
- ハ?ドウェアによるモジュロアドレッシングにより、
リングバッファ
を??した際にル?プで?回境界チェックする必要がない。
- ビット反?番地指定という特殊な
番地指定方式
があり、高速フ?リエ?換?理で使われる。
- 命令
- 積和演算
を高速に?行できるように高速?算器を持つ。特に整?演算の場合は積和演算器を持つものが多い。
FIRフィルタ
や
高速フ?リエ?換
(FFT) といったデジタル信??理では、積和演算の性能が非常に重要である。
- 特殊な
SIMD
演算が可能
- 大量の繰り返し?理を分岐命令によるオ?バ?ヘッドなしに高速に?行できる(
?延分岐方式
であり、つまり
ディレイスロット
が存在する)
プログラムのフロ?
[
編集
]
- 浮動小?点?
演算?置は直接デ?タパスに組み?まれている。
- パイプライン
ア?キテクチャ
- 多?の
積和演算
器を?列動作させることで、演算性能を高める。
- ハ?ドウェアで
ル?プ
を制御し、ル?プ操作にかかるオ?バ?ヘッドを低減または排除している。
メモリア?キテクチャ
[
編集
]
デ?タ操作
[
編集
]
- 飽和演算(
算術桁溢れ
、
算術下位桁溢れ
をそれぞれ最大値?最小値に丸める)を行う。汎用CPUで最大値に1を加えると、例外を起こさない場合でも最大値ではなくなる。飽和演算モ?ドを設定できる場合もある。
- ヘッドル?ムを設けているTMS320C10
[2]
では、そのヘッドル?ム幅が 4-bit 幅であるため、連?15回オ?バ?フロ?しても桁溢れを起こさない。
- 高速化のために
固定小?点演算
を使うことが多い。
- シングルサイクルの?理によってパイプラインの?率を高めている。
命令セット
[
編集
]
?史
[
編集
]
DSPチップが登場する以前、デジタル信??理は
ビットスライスプロセッサ
で??していた。
AMD Am2900
ファミリが特にその用途で使われていた。
AMD
はリファレンス設計も公開していたが、?際の個?の用途の設計はそれ?用に行われていた。ビットスライスプロセッサには
?算器
チップもあり、例えば
TRW
のリリ?スした TRW1008 や TRW1010 には
アキュムレ?タ
付きの?算器チップもあった。そのような?算器は
積和演算
には必須だった。
1978年、
インテル
はアナログシグナルプロセッサ 2920 をリリ?スした。オンチップの
ADC
/
DAC
を備え、信??理部がその間にある構成であった。ただし、ハ?ドウェアの?算器がなく、市場でも受け入れられなかった。1979年、AMI(アメリカン?マイクロエレクトロニクス)が AMI S2811 をリリ?ス。
マイクロプロセッサ
用周?チップとして設計されており、ホストプロセッサが初期化?設定を行うようになっていた。S2811 も市場では受け入れられなかった。
1980年
に
ベル?究所
が試作品
AT&T DSP1
を
IEEE
の集積回路に?する?際?議で?表した。同年
日本電?
(NEC) が製品として
μPD7720
(
英語版
)
を?表した。これらのプロセッサはいずれも
公衆交換電話網
の
通信
の?究が元になっている。他に Altamira DX-1 という初期のDSPもある。整?パイプラインを4本持ち、ディレイスロットと
分岐予測
を備えていた。なお、μPD7720は??のみならず?米でも?く使われていたため、AMIや沖電?から
セカンドソ?ス
品の供給が行われた
。
1983年
には
テキサス?インスツルメンツ
(TI) が高性能な
TMS32010
(
英語版
)
を??し、成功を?めた。?部メモリを持たないTMS32010に?し、?部メモリを持つTMS320M10があった
。ハ?バ?ド?ア?キテクチャであり、命令とデ?タのメモリが分離されていた。ロ?ド加算命令や積和演算命令といった特殊な命令セットを備えていた。16ビットの積和演算を390ナノ秒で?行する。TIは現在では汎用DSP市場のリ?ダ?となっている。同1983年には、
富士通
も16ビット固定小?点DSPとしてMB8764を開?している
。他にも
モトロ?ラ
の
56000
(
英語版
)
も成功を?めている。その後アナログ?デバイセズ社などがこの市場に?入し、?く使われるようになった。
この頃の製品は、アナログで構成される全?システムの中の信??理サブシステムを高性能化するために、DSPによるデジタル?理が利用された。21世紀初頭現在のようなフルデジタル環境とは異なり、この信??理サブシステムの入力部と出力部にはA/Dコンバ?タとD/Aコンバ?タが備えられていた。
約5年後、第2世代のDSPが?まり始めた。第2世代の特?はメモリを3つ持つことができ、2つのオペランドに同時にアクセスできる。また、ハ?ドウェアによる短いル?プの高速化をサポ?トし、モジュロアドレッシングなどのアドレッシング機能を備えた。?時の性能は平均的モデルで、24ビットの積和演算が24ナノ秒となっていた。この世代の代表例として、AT&T DSP16A とモトロ?ラ DSP56001 がある。
第3世代の特?はアプリケ?ション?用ユニットを搭載した点で、通常のデ?タパスで使える命令を用意したり、コプロセッサの形態で接?していた。それらのユニットは、高速フ?リエ?換や行列演算とった特定の計算をハ?ドウェアで高速化するものである。モトロ?ラ MC68356 では複?のプロセッサコアを搭載し?列動作が可能だった。1995年以降の他のDSPとしては、TI TMS320C541 や TMS320C80 がある。
第4世代の特?は、命令セットの?更と命令のデコ?ドの?更である。SIMDやMMX?張が追加され、VLIWやス?パ?スカラ?ア?キテクチャが登場した。クロック周波?も高くなり、現在では積和演算は3ナノ秒で?行できる。
1990年代には名?の元ともなった音?信?のみならず、?像や動?のような情報密度の高いものまで演算?理するようになったが、20世紀末から21世紀初めにかけて、PC用のグラフィックス?ディスプレイ用プロセッサから?展してきた
GPU
や、リアルな動??理が扱える高性能なゲ?ム用プロセッサとして開?された
Cell
、そして各種のメディアプロセッサと呼ばれるもの等が、DSPで行なう積和演算?理以上の高度な演算?理をプログラマブルに?行出?るものとして登場してきたために、DSPが?展?占有しつつあった高?理能力を必要とする用途は奪われ、DSPは??から存在し今では小さく?くなった低?理能力の用途にほぼ限定して使用されている。GPUは2007年頃から、
GPGPU
という動??理以外での?理に使用される方向へと用途が?大されている。
Blackfin
など、
マルチメディア
?理向けの
組み?みプロセッサ
において、DSPコアやDSPの機能を備えるものが存在している。
最近のDSP
[
編集
]
TI の TMS320C6000 シリ?ズは1.2GHzのクロック周波?で、命令キャッシュとデ?タキャッシュを分離??し、8MiBの2次キャッシュを?備し、64個の(E)DMAチャネルを備えてI/Oも高速化している。上位機種は8000
MIPS
の性能で、
VLIW
型の命令を使って1クロックに8命令を?行できる。また、各種I/Oバスにも??している(PCI、シリアルなど)。
高性能DSP市場では他に
フリ?スケ?ル
も活?に事業を進めている。同社は、StarCore ア?キテクチャに基づくマルチコアDSPファミリ MSC81xx を提供している。最新の MSC8144 DSP は4個のSC3400 StarCore DSPコアを備えており、各コアが1GHzで動作する。Berkeley Design Technology, Inc. (BDTI) が公表している BDTIsimMark2000 の結果によると、SC3400 は1GHzのプログラマブルDSPの中でも高性能を?揮している。
アナログ?デバイセズ
もDSP市場では重要な位置を占めている。??なDSPを取り?えているが、中心はマルチメディア向け(
コ?デック
、フィルタ、DA?換など)である。
SHARC
ベ?スのプロセッサは、198
MFLOPS
(66MHz)から2400MFLOPS(400MHz)の性能である。機種によっては複?の
?算器
や
ALU
を備え、
SIMD
命令や音??理?用のコンポ?ネントや周?機器を備えている。また、同社の
Blackfin
ファミリは組み?み用DSPであり、DSP機能と汎用プロセッサの機能を備えている。そのため、
μClinux
カ?ネルやvelOSity、
Nucleus RTOS
などのOSを?行しつつ、リアルタイムデ?タも?率的に?理できる。オ?ディオ?理の組み?み用途に特化したシリ?ズとして
SigmaDSPシリ?ズ
がありGUIベ?スの開?環境
SigmaStudio
が提供されている。
また
NXPセミコンダクタ?ズ
は、
VLIW
技術を使いマルチメディア?理に最適化した TriMedia をリリ?スしている。一部製品ではDSPを
SoC
の固定機能ブロックとして使っている。TriMedia は
固定小?点?
と
浮動小?点?
をサポ?トし、フィルタやコ?デックに特化した命令を備えている。
多くのDSPが
固定小?点?
を使っているのは、?際の信??理では浮動小?点?のような?範?な?値を必要とせず、固定小?点?の方が高速に?理できるためである。ただし、
ダイナミックレンジ
の?い用途では浮動小?点?が必須になる。また、一般的なコンピュ?タではアルゴリズムが浮動小?点?で??されていることが多いため、ソフトウェア開?のコストを低減させるために浮動小?点?のDSPを採用する場合もある。
DSPの機能は
FPGA
でも??できる。
組み?み用の汎用
RISC
プロセッサは、DSP的な機能を取り入れつつある。例えば、
ARM
Cortex-A8 には128ビットのSIMDユニットがあり、16ビットおよび8ビットのSIMD演算性能は非常に高い。
?連項目
[
編集
]
脚注
[
編集
]
?考文?
[
編集
]
外部リンク
[
編集
]