雑誌無償購読申込み 最新号 バックナンバー 広告資料請求 EDN Japanについて お問合せ
雑誌無償購読申し込み
メールニュースレター登録
登録内容変更
アナログ IC/ディスクリート
電源/電池/コントローラー
PLD / メモリー
組み込みシステム
コンピュータ&ボード
EDA/IP/CAE/ソフトウェア
電子部品
計測器
ディスプレイ
デジタル家電
通信・ネットワーク
カーエレクトロニクス/産業機器
EDN Japan 記事検索
検索方法の詳細
雑誌無償購読申込み ニュースレター登録 この記事に対する感想/ご意見
designfeature
2003年12月号
身近になるDSP

組み込み機器のマイコン・システムを設計してきた技術者にとって、デジタル信号処理技術は近寄り難い分野である。数学だらけの分かりづらい技術にみえるからだ。できれば避けて通りたい。しかし、デジタル信号処理技術でなければ解決できない課題があるのも事実だ。気後れすることはない。近寄ってみれば、考えていたより簡単かもしれない。まずはスターター・キットを入手するところから始めてみよう。

デビッド・マーシュ
David Marsh
 世界で最初に市販されたDSP*(デジタル信号処理)チップは米インテル社*の「2920」である。1979年に登場した。当時、1200ビット/秒の全2重通信に対応したモデムには、アナログ技術で実現したフィルター・バンクが搭載されていた。ところがこのフィルター・バンクは、DSPチップの登場によってデジタル信号処理技術に置き換えられてしまった。同じ時期には、マイクロプロセッサーや、その周辺機能を実現するICが急速に普及した。この動きが、デジタル信号処理技術の普及を加速した。この結果、自然界のアナログ信号をデジタル信号に変換し、数学的に取り扱う処理がどんどん容易になっていった。
 デジタル技術が普及する以前の信号処理といえば、ほとんどがアナログ信号をそのまま使って演算を実行するものだった。演算回路の安定性を保つために、複雑なフィードバック・ループや補償回路が必要だった。一方で、デジタル的に信号を扱う手法もあった。ビット・スライス方式のミニコン*や、データ収集装置などである。ただし、これらの手法による信号処理は極めてコストが高かった。従ってほとんどの場合、研究などの限られた分野でしか利用されなかった。
 アナログ信号をデジタル信号に変換して取り扱う技術を安価に実現できれば、ドリフトや不正確さといったアナログ信号処理の欠点を解消できる。これらの課題をアナログ技術で解決しようとすれば、かなりコストがかかってしまう。つまり現実的ではない。この考え方は多くの支持を得た。その結果、現在では多くのDSP製品を入手できるようになった*1)。今では、デジタル信号処理技術は留守番電話機や家庭用の洗濯機などにも実装されている。家庭でもごく身近な存在になっているのだ。最初のDSPチップの登場から20数年しか経っていないことを考えれば、驚くべきことだろう。

デジタル信号処理技術を使う理由

 最近まで、汎用のマイクロコントローラー(マイコン)とDSPチップの間には、はっきりとした区別があった。このため、マイコン組み込み機器の設計者は、デジタル信号処理技術を別世界の難しい技術と考えていた。実際、DSPチップが初めて登場したころは、汎用マイコンと大きく異なるアーキテクチャーを採用していたし、プログラミングの手法は異なっていた(下記の「DSPチップのアーキテクチャー」を参照)。
 最初(第1世代)のDSPチップは、その多くがデジタル・フィルターを実現するために設計されていた。では、なぜデジタル・フィルターを使うのだろうか。また、デジタル信号処理技術はデジタル・フィルター以外のどのような用途に向くのだろうか。まずはこれらを明らかにしておこう。
 デジタル・フィルターを使う理由は、位相応答が線形なFIR*フィルターを実現できるからである。このFIRフィルターを使えば、音声信号の処理において音源の忠実度を損なわずに信号処理を実行できる。各種のセンサーで検出した信号を処理する際にも有効だ。フィルターの位相応答の周波数特性が非線形であると、群遅延特性が平坦にならない。このためフィルターを通過する信号に歪みを与えてしまう。位相応答が線形なフィルターをアナログ技術で実現することはほとんど不可能だ。ところが、DSPとフィルター機能生成ソフトウエア・ツールを使えばこれを簡単に実現できるのだ。
 米マスワークス社*のDSP開発ツールである「MATLAB」や「Simulink」などでもデジタル信号処理のアルゴリズムをモデル化できる。さらに、さまざまなターゲット・ハードウエアにポーティング可能なコードを自動生成させられる。こういったことは、シミュレーション・ツールを制御システムのモデル化に使っているユーザーならば理解しやすいだろう。
 デジタル・フィルター以外の用途には、高速フーリエ変換(FFT*)がある。これもソフトウエア・ツールを使えば簡単に実装できる。高速フーリエ変換を用いることで、時間的に連続した信号の波形を取り込んで、その信号の周波数成分を解析できる。雑音の中から特定の周波数の信号を取り出せる。例えるなら、自動車のシリンダー・ヘッド内のノッキングを、ピエゾ抵抗型センサーを使ってマイクロホン雑音として検出するようなものだ。高速フーリエ変換はこのほか、回転機器から放射される特定の周波数を捕捉するために利用できる。例えば、ヘリコプターの動力伝達機構でベアリング故障の初期症状を検出する。また、可変速の交流モーターをセンサーなしで制御する用途でも威力を発揮する。電力分配を制御するベクトル値を、高速かつ連続的に計算できるからだ。
 デジタル信号処理技術が唯一の手段になる場合もある。処理時間の制約が厳しい場合だ。例えば、多数のセンサーで検出した信号を短い応答時間以内でリアルタイム処理する場合だ。極端な例だが、フォーミュラ1(F1)レースで活躍するデジタル信号処理技術を紹介しよう。F1チーム「BMW WilliamsF1」のF1カーには、米テキサス・インスツルメンツ社*のDSPチップと米ザイリンクス社*FPGA*が搭載されている。DSPチップとFPGAを組み合わせて、F1カーの車体制御と監視を行っている。具体的には、変速機およびトラクション・コントロールのタスク制御と、約220個のセンサーで検出したデータを記録する作業を担っている。データの記録速度は最大1kビット/秒である。

マイコンに近いアーキテクチャー

 現在、マイコンに最も近いDSP LSI製品は米モトローラ社*の「DSP56F800」ファミリーである。リアルタイム制御に向けたものだ。同ファミリーの1つにDSPチップ「DSP56F805」がある(図1)。16ビット固定小数点演算器を搭載している。バス・アーキテクチャーにデュアル・ハーバード・アーキテクチャーを採用した。このため、プログラム・メモリーとデータ・メモリーに最大で3つの同時アクセスが可能だ。
 DSP56F805は、36ビットの累算器を2個搭載する。この累算器は、データALU*や16ビットMAC*、バレル・シフター・ユニットとして機能する。内蔵のフラッシュ・メモリーはプログラム・メモリー用が31.5Kワード、データ・メモリー用が4Kワード、ブート・メモリー用が2Kワードである。さらに、2KワードのデータRAMと512ワードのプログラムRAMも搭載した。外部メモリーとのインターフェースでは、データ・メモリー用とプログラム・メモリー用にそれぞれ64Kワードのアドレスを確保した。
 チップに集積した周辺機能には、4チャンネル12ビットA-D変換器が2個、6チャンネルPWM回路が2個、ピンを共有することで同時動作できる直交デコーダーとタイマー・モジュールがそれぞれ2個、さらにタイマー・モジュールが2個、CAN*2.0 A/B準拠のインターフェースとSPI*およびSCI*のシリアル・インターフェースがある。
 汎用入出力は14本用意した。シリアル・インターフェース(SPIとSCI)を汎用入出力として使うことも可能である。電源電圧は3.3V単一。入出力部には3.3Vをそのまま供給し、コア部には内蔵の電圧レギュレーターで2.5Vに降圧してから供給する。すべての入出力ピンは5V電圧入力が可能。JTAGポートを介してデバッグできる。パッケージは144ピンのQFP。参考価格は13.20米ドル(1000個購入時の単価)である。

開発キットを入手しよう

 初めてデジタル信号処理技術に取り組もうとしているならば、いくらかの予備知識は必要である。しかし、DSP製品について書かれた文章を熟読するよりも、実際に自分で体験してみた方が手っ取り早い。そのためにはまず、スターター・キットを手に入れよう。開発キットが各DSPベンダーから提供されている。DSPチップと周辺機能、開発ツールをまとめて入手できる。
 米モトローラ社がDSPチップDSP56
F805の開発キットとして用意したのが「DSP 56F805EVM」である。評価ボードと開発ツール「CodeWarrior」、ソフトウエア開発キット(SDK*)からなる。価格は299米ドルだ。
 評価ボードの大きさは130mm×165mm。この評価ボードにDSPチップや128K×16ビットのSRAMなどを搭載してある。このSRAMには64Kワードのプログラム・コードと64Kワードのデータを格納できる。このほか、RS-232ポートもある。さらに、パラレル・ポートとJTAGポートの変換器を搭載した。この変換器を使うと、パソコンからパラレル・ポート経由でDSPのプログラムをデバッグできるようになる。さらに、直交出力エンコーダーまたはホール効果センサーと接続できるインターフェース回路や、専用のモーター制御回路を備えた。これらを使えばサーボ制御のようなアプリケーションを容易に実現できる。評価ボード上にはジャンパー線を用意してあり、これを切り替えることでさまざまな動作モードを選択可能だ。
 開発ツールのCodeWarriorは簡単にパソコンへインストールできる。ただし、開発キットDSP56F805EVMに付属しているのは機能制限版だ。プログラム・メモリーの容量が制限される。機能制限がない正式版については、同社のウエブ・サイトから使用期間が30日の評価用ライセンスを無償で入手できる。購入する際の価格は通常1195米ドル。ただし、本稿の執筆時点では495米ドルで提供されていた。また、通常895米ドルのソフトウエア開発キット「MSW3SDK000AA」は無償で提供されていた。
 DSPチップとソフトウエア開発キットの製品概要は、モトローラ社のウエブ・サイトで参照できる*2)。同社のウエブ・サイトからはこのほかにも有用な情報をダウンロード可能だ。また、CodeWarriorに付属したいろいろな資料も利用できる。CodeWarriorの取り扱い説明書とリファレンス・マニュアルのほか、評価ボードに搭載したDSPチップのリファレンス・マニュアルとデータ・シートなどである。DSPチップを使った設計例も1つだけ収録してある。評価ボードに搭載したスイッチからの割り込み信号を検出して、複数のLED*(発光ダイオード)を点滅させるものだ。この設計例は、実際にCコンパイラーを使ったり、割り込みサービスのルーチンを記述したり、ライブラリー機能を保存したり呼び出したりする手引きとして使える。
 ソフトウエア開発キットのルーチンも試してみたいと思うかもしれない。ただし、CANの設計例が必要な場合にはプレミアム・パッケージを購入する必要がある。価格は3000米ドルだ。プレミアム・パッケージはCANの設計例のほか、RSA*DES*、トリプルDESアルゴリズムなどのセキュリティー・ルーチンを含んでいる。さらにG.711*に対応したオーディオ・コーデックのような通信・音声処理ソフトウエアもある。
 無償で入手できる設計例もある。モーター制御およびモーション制御、それからモデムやデータ通信などの設計例である。
 ほかの開発ツールとしては、パラレル・ポートとJTAGポートのコマンド変換器がある。価格は200米ドル。USBポートとJTAGポートのコマンド変換器は現在開発中である。PCIバスとJTAGポートのコマンド変換器は1999米ドル。イーサーネット版のコマンド変換器は2999米ドル。
 なお、DSP56F805よりも入出力が少なくてよいユーザーは、より安価な開発キットを選べる。DSPチップ「DSP56F801」を搭載したキットだ。65米ドルで入手できる。この開発キットにも、パラレル・ポート対応のエミュレーターと、ソフトウエア開発キット、Code Warriorの無償版が付属する。ただし、プログラム・メモリーの容量は16Kバイトに制限されている。なお、プログラム・メモリーを制限していないCodeWarriorは495米ドルである。

リアルタイム制御に向く

 マルチメディア処理を得意とするDSPチップは、米アナログ・デバイセズ社*から製品化されている。同社がインテル社と共同で開発したDSPコア「Blackfin」を搭載した製品ファミリーである。携帯機器などへの搭載を狙う。動作周波数と内蔵メモリー容量の違いで4品種を用意した。いずれもプログラム・コードの互換性がある。
 このDSPファミリーは、リアルタイム制御を行うアプリケーションにも向く。各DSPチップは周辺機能としてUART*やSPI、シリアル・ポート、PWM回路、パルス測定機能を備えたタイマー、リアルタイム・クロック、ウオッチドッグ・タイマー、拡張性の高い汎用入出力を搭載している(図2)。システム・ユニットにはDMA*コントローラーと割り込みコントローラー、外部フラッシュ・メモリーと外部SDRAMのコントローラーを内蔵した。ITU-R BT.656フォーマットに準拠したビデオ・ポートも備えた。この周辺機能を利用すれば工業用マシン・ビジョンや525/625ライン・フォーマットのビデオ信号に対応する民生/業務用ビデオ製品を簡単に設計できる。
 Blackfinコアは2つの16ビットMACからなる固定小数点演算器を搭載している。MACでの処理結果を格納する40ビットの累算器を2つ備えた。符号付き整数型データまたは符号なし整数型データの演算に対応する。この演算には40ビットALUを2つと40ビットのバレル・シフターを1つ使う。このALUとバレル・シフターは、16ビットおよび32ビットの数値演算と論理演算を担当する。データ幅として40ビットを確保したことで、積和演算の繰り返しで発生する丸めや飽和に対応する。
 ビデオALUは4つ搭載した。このビデオALUはバイト・アラインメント処理やパッキング処理、クリッピング付き16ビット/8ビット加算、8ビットの平均化命令や減算/絶対値算出/累算命令といった機能を備える。これらを利用して信号処理を高速化している。
 Blackfinコアを搭載したDSPファミリーの最上位品が「ADSP-BF533」である。動作周波数が最大600MHzと高い。148Kバイトのメモリーを内蔵した。パッケージは160ピン、0.8mmピッチの12mm角BGA。価格は23.50米ドル(1000個購入時の単価)。

マルチメディア機能をボードに搭載

 ADSP-BF533のスターター・キット「ADDS-BF533-EZLITE」が現在入手できる。価格は295米ドル。このキットは、評価ボードと開発ツールで構成される。評価ボードには600MHz動作のDSPチップのほか、2Mバイトのフラッシュ・メモリー、32MバイトのSDRAMを搭載した。評価ボードの大きさは127mm×178mmである。このほか、4チャンネルのデジタル入力と6チャンネルのアナログ出力を備えたオーディオ・コーデックLSI「AD1836」、RCA型コネクターを3つ外付けしたビデオ・エンコーダーLSI「ADV7171」、RCA型コネクターを3つ外付けしたビデオ・デコーダーLSI「ADV7183」、RS-232ライン・ドライバー/レシーバーLSI「ADM3202」を搭載している。拡張用インターフェースも備えている。これは、パラレル・インターフェースあるいはシリアル・インターフェース、SPIとして利用できる。さらに、JTAGエミュレーター用ヘッダーとLED、プッシュ型ボタンを載せている。
 このキットには、プログラム開発ツールの「VisualDSP++」が付属する。ただしこのツールで作成できるプログラムの容量は20Kバイトに制限される。デバック時は評価ボードに搭載してあるUSBとJTAGデバッグ用インターフェースを使い、パソコンからUSB経由でJTAGポートに接続する。エミュレーターには、DSPチップの動作に影響を与えずにホスト・パソコンがDSPシステムと通信する機能を備えた。アナログ・デバイセズ社はこれを「バックグラウンド・テレメトリー・チャンネル(BTC)」機能と呼ぶ。
 キットにはマニュアルが付属する。さらにCD-ROMにはDSPチップのデータ・シートや、プログラミング・マニュアルなどの参考文献が収められている。これらの資料の印刷版は、必要に応じてアナログ・デバイセズ社のウエブ・サイトから入手可能だ。
 プログラム開発の前にはまず、ホスト・パソコンに開発ツールVisualDSP++をインストールする。キットのマニュアルにしたがって操作すれば、インストール作業を間違いなく進められるだろう。クイック・スタート・カードは無視してよい。このとき、評価ボードはホスト・パソコンに接続しておく。「不正なライセンス」によるエラーを回避するためだ。ホスト・パソコンのオペレーティング・システムに注意してほしい。対応するのはウインドウズ98/2000/XPだけである。ウインドウズNTは使えない。ウインドウズNTはUSBに対応していないからだ。
 インストール作業が完了したら、まずはCD-ROMのコンテンツに目を通してみる。次に以下のチュートリアルを試みるのがよいだろう。最初に示される2つの設計例は、リンカーのような基本的なソフトウエア部品がどのように影響し合うのかを説明するものだ。固定データ・アレイから取り出した数字の積を3つ求め、それぞれの和を求める手順をユーザー自身が組み立て、実行し、さらに変更できる。
 C言語のソース・ウインドウでは、同じルーチンをC言語で記述したものとアセンブリ言語で記述したものを並べて比較できる。市販の統合開発環境(IDE*)にみられる次のような機能の代わりに使える。すなわち、C言語のソース・ウインドウのコードをドラッグする操作によって、C言語のソース・コードに対応したアセンブリ・コードを見つけ出したり、反対にアセンブリ・ウインドウでコードをドラッグして対応するC言語のソース・コードを見つける機能の代わりになる。そのほかのエディター機能としては、ブレーク・ポイントの設定/解除や、ラインの番号付け、ブックマークの設定などがある。
 VisualDSP++ではデータを可視化できる。通常のプロットのほか、高速フーリエ変換後のデータやFIRフィルターの応答特性を表示したりできる。
 なお、1つ注意すべきことがある。Blackfinファミリーの設計例をロードする際には、ターゲット・デバイスを変更しておく必要がある。ターゲット・デバイスは、評価ボードに実際に搭載されたADSP-BF533に設定しておく。さもないとロード・エラーが発生してしまう。デフォルトでは「ADSP-BF535」に設定されているからだ。アナログ・デバイセズ社によると、現在、ADSP-BF535の設計例のすべてをADSP-BF533に合わせてポーティングする作業を行っているという。

コード互換性を備えたDSPファミリー

 より高性能で複雑なDSPを試したいのなら、テキサス・インスツルメンツ社のDSPファミリー「TMS320C6xxx」がある。このファミリーには固定小数点DSPチップと浮動小数点DSPチップが用意されている。両者にはコードの互換性がある。
 固定小数点DSPチップ「TMS320C6416」は、同社独自の256ビットVLIW*アーキテクチャーを採用したハイ・エンド製品である。通信インフラ機器などを狙ったものだ。具体的には、ATM*インターフェースやビタビ復号化コプロセッサー、ターボ復号化コプロセッサーなどを内蔵した(図3)。パッケージは0.8 mmピッチの23mm角532ピンBGA。
 このほかDSPチップに集積した周辺機能は以下の通りである。16ビット・メモリー・インターフェース、64ビット・メモリー・インターフェース、64チャンネルDMAコントローラー、マルチチャンネル・バッファー付きシリアル・ポートが3個、32ビット・タイマーが3個、PCI*動作とHPI*動作を切り替えられるポート、16ビットの汎用入出力である。
 1GHz動作の次期DSPチップ*3)でも、これだけの入出力数を確保できれば申し分ないだろう。ただし、入出力数の少ないDSPチップをターゲットにしても問題はない。このDSPファミリーにはコードの互換性があるからだ。例えば、TMS320C6416向けに開発したコードを、より入出力数が少ないDSPチップ「TMS320C6411」に適用できる。このDSPチップは、TMS320C6416から通信機器向けのコプロセッサーを取り除くことで価格を下げたものだ。価格はTMS320C6416の145米ドルに比べて、TMS320C6411は53米ドルと低い(いずれも1000個購入時の単価)。

モジュールを組み合わせて設計する

 TMS320C6416には動作周波数の異なる3品種がある。このうち、動作周波数が600 MHzの品種をスターター・キット「TMS320C6416 DSK」に搭載した。このキットは評価ボードと開発ツールからなる。価格は395米ドル。製造は米スペクトラム・デジタル社*が担当する。評価ボードの大きさは115mm×225mm。DSPチップのほか、ステレオ・オーディオ・コーデックLSIの「TLV320AIC23」や16MバイトSDRAM、512Kバイト・フラッシュ・メモリー、USBインターフェース付きJTAGエミュレーション・ポートなどを搭載した。さらに、直径3.5mmのステレオ用ミニジャックを4つ備えた。ミニジャックはステレオ・オーディオ・コーデックLSIに接続してある。ユーザー用の入出力ポートは4つのLEDとピアノ・キー型スイッチに接続した。拡張コネクターも搭載してある。ユーザーはこのコネクターを使って、外部メモリーや周辺機能を拡張したり、PCI/HPIと接続したりできる。
 以上のようにスターター・キットのハードウエア構成は複雑だ。一方で、付属するソフトウエアは扱いやすい。スターター・キットに添付した開発ツールは「Code Composer Studio」である。この開発ツールは、テキサス・インスツルメンツ社が提唱するDSP開発ツールとソフトウエアなどを統合した開発環境「eXpressDSP」の一部である。eXpressDSPはモジュラー型のソフトウエア開発手法に基づく。すなわち、アプリケーションを抽象化することで、ソフトウエア・プログラマーでなくてもアプリケーション・ソフトウエアを作成できる開発環境を理想とする。実際には、用意された実行テンプレートを利用して、そこに既存のアルゴリズムを組み込むだけでアプリケーションを作成できる。ただし、DSPチップのリソースをきちんと使いこなして最大の性能を引き出そうとするならば、C言語プログラミングの豊富な経験が必要になる。
 eXpressDSPの中心となるのは「DSP/BIOS」カーネルだ。これは、割り込みやストリーミング・データの転送、周期的なイベントなどを扱う各種のモジュールで構成したリアルタイム・スケジューラーである。DSP/BIOSは「TMS320Cxxxx」ファミリーをサポートするリアルタイムOS(RTOS)の基本部分を担う。DSP/BIOSのコンフィギュレーション・ツールは、開発ツールのCode Composer Studioに組み込んである。ユーザーはこのツールを使って、プログラムのコンパイル時に組み込むモジュールを選定できる。この結果、ファームウエアのメモリー容量を小さく抑えられる。
 各DSP/BIOSモジュールにはコード計測機能を埋め込んである。この機能によって、Code Composer Studioは実行中のアプリケーションをUSBポート経由でデバックできる。リアルタイム動作への影響を最小にするため、DSPチップが実行コード・スレッドで待機状態にあるときにコード計測を実行する。ユーザーはスレッドが切り替わるごとに実行状態をグラフで視覚的に確認できる(図4)
 時間的にクリティカルなタスクを解析するためのツールも用意してある。CPUの負荷を示すグラフや、スレッドの平均実行時間とワースト・ケース実行時間をレポートする統計ウインドウなどがある。パソコンに保存してあるデータ・ファイルをDSPチップに送信することも可能だ。実際にデジタル信号処理を施すデータをパソコンに記録しておいて、そのファイルを送信する。例えば、デジタル・オシロスコープに取り込んだ波形データを処理できる。
 DSP/BIOSのAPI*セットはすべてのTMS 320Cxxxxファミリーを対象にした。このため、TMS320Cxxxxファミリーであれば、異なるDSPチップにもコードを簡単にポーティングできる。eXpressDSPの規定するアルゴリズム標準では周辺機能への直接アクセスを禁止している。また、再入力、再配分可能なコード方式を採用している。このおかげでユーザーは、テキサス・インスツルメンツ社やサード・パーティー・ベンダーが供給するアルゴリズムを容易に組み込める。
 ユーザーは、DSP/BIOS用のドライバー開発キットをウエブから無償でダウンロード可能である。さらに、3個のリファレンス・プログラム群をセットにしたソフトウエア・モジュールも無償で入手できる。スターター・キット用のプログラムとして利用できるだろう。このモジュール(リファレンス・フレームワーク(RF)と呼んでいる)には幅広い内容のアプリケーション・ノートが添付されている。リファレンス・フレームワークの機能や、それらをカスタマイズする手法を示した設計例が記載されている。「RF(リファレンス・フレームワーク)1」は、1〜3チャンネルと数個のeXpressDSP規定アルゴリズムを必要とするような、メモリー容量が3.5Kワードくらいのアプリケーションを対象とする。動的なメモリー配分やスレッドのプリエンプション、ブロッキング、マルチレート演算、制御機能はサポートしていない。このため、RF1はロー・エンドのDSPファミリー「TMS320C5xxx」に用いるのが適切である。
 「RF3」は性能のランクとしては中間に位置する。1〜10チャンネルで1〜10個のアルゴリズムを実行するDSPファミリーTMS320 C6xxxに適している。メモリー容量は11Kワード程度である。ブロッキングを除けば、RF1で対応していないと説明したすべての機能に対応する。
 ハイ・エンドの「RF5」はメモリー容量を28Kワード必要とする。ただし、ブロッキングを含むすべての機能と、さらに100以上のチャンネルおよびアルゴリズムにも対応する。
 なお、開発ツールCode Composer Studioの無制限版は1年間の保守サービス付きで3595米ドル。またUSBポート付きのJTAGエミュレーター「XDS510USB」は1995米ドルである。
DSPチップのアーキテクチャー

 DSPの高い数値演算能力は、独特のアーキテクチャーによって実現されている(図A)。ただし基本的なアーキテクチャーは、マイコンのコアと同様である。プログラム制御ユニットとデータ制御ユニット、および演算ユニットで構成される。
 プログラム制御ユニットは、命令レジスターとプログラム・シーケンサー、および選択型キャッシュ・メモリーで構成される。このユニットはプログラム・メモリーから次に実行する命令をフェッチし、デコードし、制御信号をプロセッサー・コアに向けて発行する。
 データ制御ユニットはマイコンと異なる。DSPコアのデータ制御ユニットは、データ・アドレスの発生器を2つ備える。データ・メモリーおよびプログラム・メモリーにあるオペランドのアドレスを同時に計算して(ハーバード・アーキテクチャー)、このデータを演算ユニットに送信する。実行命令が2つのデータ・アイテムを繰り返し要求する場合には、選択型キャッシュ・メモリーがアクセスの衝突を防止する。
 演算ユニットは、ハードウエアで実現したMACユニットを従来のALUに組み合わせて演算性能を強化している。さらに通常は、ビット・シフトやビット回転を高速に処理するためのバレル・シフターも内蔵している。
 ハーバード・アーキテクチャーを採用することで並列反復演算処理のスループットを高められる。例えば、積和演算に必要な2個のオペランドの同時フェッチ処理などだ。デジタル・フィルターの内部ループ計算でよく使う。データ・フローもマイコンとは異なる。マイコンでは、ロード、演算、格納サイクルをシーケンシャルに実行する。一方DSPは、命令およびデータ・フェッチと演算を独自の方法で行い、新しい処理結果を1クロック・サイクルで出力できる。
 DSPチップでは、チップ面積の制約から命令セットを小さくする必要があった。このため、いくつかの複雑な命令を16ビット・ワードに押し込んだ。これではコンパイラー・ライターにとっては、手書きしたアセンブリ命令文のメモリー利用効率の整合を取ることが難しい。DSP専門のプログラム開発者が必要になってしまっていた。
 米テキサス・インスツルメンツ社のDSP設計者は、DSPの普及を阻むこの課題を1990年代の半ばに認識した。また、携帯電話機のような新しいアプリケーションがDSP機能を要求していることにも気付いていた。新しいアプリケーションはビタビ符号化ルーチンやターボ符号化ルーチンのようなアルゴリズムを重要視していた。これらのアルゴリズムは、従来のフィルター・アルゴリズムとはかなり異なるものだ。
 そこで同社は、より広いアプリケーションでより広い技術レベルのユーザーがDSPを使えるようにするために、アセンブリのスクリプトを高級言語のコンパイラーによるサポートに置き換えようとした。このために開発したのが、VLIW(very long instruction word)アーキテクチャーである。RISC型マイコンに似た命令セットを用いて、複数の命令を同時に実行するアーキテクチャーである。計算効率が高く、しかもコンパイラー・ライターにとって使いやすい。例えば、同社のDSPチップ「TMS320C6xxx」に搭載したフィルター・ルーチンの内部ループは、32ビット命令を8つも並列に処理できるし、1サイクル当たり2つのMAC演算を実行できる。DSPコアの制御ロジックは命令フェッチ、ディスパッチ、および実行ハードウエアで構成され、命令パイプライン上のデータ・フローを高速化している。
 デコードの後、各命令はコアに搭載した8つの処理ユニットのうち1つを制御する。処理ユニットは各バンクを4つの処理ユニットで構成する2バンク配列になっている。各バンクは1つの並列データ・パス上で動作する。4つの処理ユニットはそれぞれ異なる演算処理を扱うために最適化されている。この演算処理は、一般的な算術演算と論理演算、乗算、データ・シフトおよびレジスター・レジスター間転送、ロード/ストアー、複雑なアドレス生成などである。
 命令フェッチのパケット長は256ビットで一定である。各32ビット命令コードの最下位ビットを設定し、同時に実行する命令のチェーンを構成する。最下位ビットがゼロならば、同時実行命令チェーンの作成を中断し、次の実行パケットに向けて制御ロジックが実行中の命令と次の命令を再スケジューリングする。命令フェッチ・ロジックは、実行中のフェッチ・パケットが終了するまでは次の256ビット・フェッチ・パケットをフェッチしない。プログラム開発者は、アセンブリ言語でダブル・パイプ・シンボルを命令文にあらかじめ挿入することで並列実行命令を指定する。実行パケットが256ビットよりも長くなった場合には、アセンブラーが超過した命令コードを次のフェッチ・パケットに移動する。空になった部分はNOP*コードで埋める。
▲本文へ戻る

用語解説 / 会社情報
【DSP】
digital signal processor
▲本文へ戻る
【米インテル社】
Intel Corp.
ホームページはhttp://www.intel.com/
▲本文へ戻る
【ミニコン】
minicomputer
▲本文へ戻る
*1)
市場調査会社の米フォワード・コンセプツ社によると、2002年のDSP市場シェア(出荷額ベース)は、米テキサス・インスツルメンツ社が全チップ出荷数の43.2%を占め首位だった。米モトローラ社と米アギア・システムズ社はほぼ同じで、それぞれ14.1%および13.9%を占めた。続いて、米アナログ・デバイセズ社が8.9%を占めた。残りの19.9%をほかのDSPベンダーが占めている。
▲本文へ戻る
【FIR】
finite impulse response
▲本文へ戻る
【米マスワークス社】
The MathWorks, Inc.
ホームページはhttp://www.mathworks.com/。国内販売代理店はサイバネットシステム。ホームページはhttp://www.cybernet.co.jp/
▲本文へ戻る
【FFT】
fast Fourier transform
▲本文へ戻る
【米テキサス・インスツルメンツ社】
Texas Instruments, Inc.
ホームページはhttp://www.ti.com/
日本法人は日本テキサス・インスツルメンツ。同社ホームページはhttp://www.tij.co.jp/
▲本文へ戻る
【米ザイリンクス社】
Xilinx, Inc.
米国の大手PLDベンダー。ホームページはhttp://www.xilinx.com/
▲本文へ戻る
【FPGA】
field programmable gate array
▲本文へ戻る
【米モトローラ社】
Motorola, Inc.
ホームページはhttp://www.motorola.com/。日本法人はモトローラ。同社ホームページはhttp://www.mot.co.jp/
▲本文へ戻る
【ALU】
arithmetic logical unit
▲本文へ戻る
【MAC】
multiply accumulator
▲本文へ戻る
【CAN】
controller area network
▲本文へ戻る
【SPI】
serial peripheral interface
▲本文へ戻る
【SCI】
serial communication interface
▲本文へ戻る
【SDK】
software development kit
▲本文へ戻る
*2)
DSP56F805の製品情報は下記のアドレスで閲覧できる。
http://e-www.motorola.com/webapp/sps/site/prod_summary.jsp?code=DSP56F805
▲本文へ戻る
【LED】
light emitting diode
発光ダイオード
▲本文へ戻る
【RSA】
Rivest Shamir Adleman
公開鍵暗号方式の1つ。開発者3人の頭文字をとって名付けられた。
▲本文へ戻る
【DES】
data encryption standard
▲本文へ戻る
【G.711】
音声信号の符号化方式の1つ。ITU-T勧告で規定される。
▲本文へ戻る
【米アナログ・デバイセズ社】
Analog Devices, Inc.
ホームページはhttp://www.analog.com/。日本法人はアナログ・デバイセズ。同社ホームページはhttp://www.analog.co.jp/
▲本文へ戻る
【UART】
universal asynchronous receiver transmitter
▲本文へ戻る
【DMA】
direct memory access
▲本文へ戻る
【IDE】
integrated development environment
▲本文へ戻る
【VLIW】
very long instruction word
▲本文へ戻る
【ATM】
asynchronous transfer mode
▲本文へ戻る
【PCI】
peripheral component interconnect
▲本文へ戻る
【HPI】
host processor interface
▲本文へ戻る
*3)
米テキサス・インスツルメンツ社は2003年5月に、1GHzで動作する DSPチップを2004年前半にサンプル出荷すると発表した。90nmプロセス技術で製造するという。
▲本文へ戻る
【米スペクトラム・デジタル社】
Spectrum Digital, Inc.
ホームページはhttp://www.spectrumdigital.com/
▲本文へ戻る
【API】
application programming interface
▲本文へ戻る
【NOP】
no operation
▲本文へ戻る
雑誌無償購読申込み ニュースレター登録 この記事に対する感想/ご意見
Reed Electronics Group
Electronic BUSINESS Japan | Design News Japan | Semiconductor INTERNATIONAL | DETAIL JAPAN
EDN Japanについて | 広告掲載について | サイトマップ | お問合せ
 Copyright (C) 2000-2007 Reed Business Information Japan K.K. 
個人情報に関する方針 | 著作権・リンクについて | 会社情報