一筆啓上仕り候


管理人の酔漢です。

このサイトはDSPで遊ぶことをテーマにした情報提供を行います。

DSPについて

1970年代後半に同時多発的に開発の始まった信号処理用コンピュータ、すなわちDigital Signal Processorは、いくつかの予備研究と半ば実験的な製品化を経たあと、1980年のISSCCでNECとAT&TがワンチップDSPを同時に発表するという劇的な登場を果たしました。その後1986年頃までに各社が雨後の竹の子のように製品を発表し、1986年のMotorolaによるDSP56000の登場によって、古典的DSPアーキテクチャの一応の完成を見ます。この時点で、DSPを名乗るためには1命令サイクルでMAC演算を実行し、N命令サイクルでNタップFIRフィルタを実行できることが暗黙の条件として確立しました。

その後、ムーアの法則の後押しによってDSPは二つの方向を目指すことになります。

ひとつは高性能化であり、もうひとつはいわゆるDSPマイコン化でした。前者は言わずもがなの方向であり、当初からDSPが備えていた複数命令同時実行機能を発展させてVLIWおよびSIMDアーキテクチャへの展開を見せました。後者はCコンパイラへの対応です。現代的な汎用DSPは、多かれ少なかれVLIW的な面とSIMD的な面を持ちつつ、Cコンパイラによる効率のよい開発を提供しており、プログラマの負担はDSP登場当時に比べると考えられないほど小さくなっています。

汎用DSPが高性能化、高効率開発化を目指す一方で下位の信号処理アプリケーションにも変化が起きています。

ひとつは古典的なDSPの復権です。これはMicrochip社のdsPICによるところが大きいと言えます。dsPICはシンプルなアーキテクチャながら、あらゆる状態で割り込み応答速度が一定であることを保証するなど、モーター制御や電源制御を強く意識したアーキテクチャになっており、この思想を低価格で提供するために、古典的なDSPのアーキテクチャを恐れずに採用しています。その結果、dsPICは古典的DSPの完成形とも言える洗練された構造になっています。

もうひとつは、DSPマイコンの進出です。DSPマイコンに関してはDSP側からのC言語親和性追加によるアプローチのほか、マイコン側からのMAC演算追加によるアプローチがありました。残念ながらマイコン側からのアプローチに関しては、元々骨組みが信号処理用にできていないことから限定的な成功しか見られませんでした。しかし、命令サイクルあたりのMAC演算性能をあきらめるという割り切った方針の下ARM社から登場したCORTEX-M4コアは、浮動小数点コプロセッサを搭載することで、小規模信号処理分野で小さくとも成功を遂げると思われます。CORTEX-M4のクロック周波数は150MHzを超えます。この結果、CORTEX-M4搭載のマイコンは80年代終盤の浮動小数点DSPに匹敵する性能を持つ可能性があります。

こう言ったことから、DSPは低性能から高性能にいたるまで、広いスペクトルの製品グループを持つことになりました。

DSPであそぼう

現在、その気になればDigikey社からTMS320C6726BRFP266を30ドル以下で購入することができます。266MHzで動作するLQFPパッケージのこのDSPは、史上初のスーパーコンピュータであるCRAY-1よりも高速に計算を実行することができます。

また、中規模クラスのDSPとしては400MHzから600MHzで動作する固定小数点DSP、Blackfinの入手が比較的容易です。このDSPはGCCツールチェーンが整備されているため、安価に開発環境を構築可能です。さらに、これを書いているのは2012年の初頭ですが、あと1年もすればCORTEX-M4応用マイコンが市場にあふれかえっているでしょう。

汎用DSPおよびDSPマイコンを取り巻く環境は、かつて無いほど自作に適しています。ユーザーは分厚いミドルウェア層に邪魔されることなくきわめて高性能なプロセッサを自由に振り回すことができます。こういった環境はアマチュアにももたらされており、利用しないのはいかにももったいないです。もっとDSPに目を向けて、信号処理で遊ぼうではないですか。

サイト沿革

このサイトは、DSPによる信号処理を楽しもうというコンセプトで運営しています。

もともとは2002年の3月に始めた「2191空挺団」が出発点でした。このサイトではAnalog Devices社の16bit DSP、ADSP-2191の解説をしながら、評価基板の使い方や基本アルゴリズムなどの説明をしました。このころはAnalog Devicesの開発ツールを使って説明していました。

その後、2004年4月に対象アーキテクチャを219xからBlackfin DSPへと変更して「Blackfin空挺団」へと改名します。Blackfin空挺団では2191空挺団時代に始めたSDRへの考察を進めながら、RTOSの移植などを行いました。TOPPERS/JSPは本来GCCベースであったため、ADIのツールで苦戦しましたが、その後Blackfin用のGCCに移行するなどして次第に開発環境をLinuxへと移していきます。

その後、Blackfin空挺団はBlogの開設などを経て少しずつ低調になっていきます。CMSであるMODXへのコンテンツの移植なども行いましたがそれらもサイト管理の手違いで失われています。

しかしながら、DSPで遊びたい気持ちが消えたわけではありません。ソフトウェア・ラジオはまだ魅力を失っていませんし、Blackfinの性能の高さは触るだけでも楽しいモノです。また、最近ではARMコアもMシリーズにまでFPUが搭載されるなどして、低価格マイコンでの信号処理の環境が整ってきつつあります。

そこで、2012年1月にあらためて「DSP空挺団」として再出発することにしました。このサイトでは当面Blackfin DSPとLPC4300を扱っていく予定です。よろしくお願いします。

 サイト管理者 酔漢 拝