今回は、適切なDSPを選択するためのポイントについて解説します。
これまで、以下の2点をDSPのハードウェアの特徴として説明してきました。
(1)積和演算器(乗算器)内蔵
(2)ハーバード・アーキテクチャ
DSPと組み込み用の一般的なマイクロプロセッサやFAGA、ASICとの比較もこれらの特徴に着目して行ってきましたが、最終回では、これとは別のDSP独特の算術演算向け機能/命令セットについて簡単に紹介します。
これらの機能を実現するためのDSP内部のハードウェア規模は大きなものではありませんが、デジタル信号処理に特有の演算を効率的に処理するために、よく工夫されたものです。
下図に示すように、DSPは積和演算器(乗算器+加算器)を内蔵し、さらに2つの独立したメモリとバスを有しています。1クロックで積和演算(z=x×y+zの形の演算)ができるのが最大の特徴です(注)。
(注)同時に2つのアドレスにアクセス可能なマルチポート・メモリを内蔵していて、ハーバード・アーキテクチャには見えない(メモリを2つ内蔵しているようには見えない)DSPもあります
すべてのDSPは積和演算器(または乗算器)を内蔵していますし、それが最も基本的なDSPの定義です。
DSPが目的とするデジタル信号処理は、いうなればアルゴリズムに従った数値演算(算術演算)の繰り返しです。デジタル信号処理に多用される数値演算を高速処理するために、DSPは積和演算器やハーバード・アーキテクチャ以外にもさまざまな特徴・機能を有しています。
これまで紹介してきたDSPの特徴を基に、DSPの選び方について簡単に説明します。
内蔵メモリ量
DSP内蔵のメモリ量も実効的な処理性能に影響を及ぼします。内蔵メモリだけでは処理に必要な記憶領域が不足して外部メモリを使用する場合は、速度の遅い外部メモリ・アクセスのオーバヘッドが付きます。内蔵メモリ容量もDSP選択の大きなポイントです。
固定小数点DSPと浮動小数点DSP
プログラムの作りやすさはスケーリング処理の手間が省ける浮動小数点DSPの方が明らかに優れています。処理性能や、コスト、消費電力などの面で折り合いがつくならば、開発期間・開発コスト低減のために浮動小数点DSPを使用することをお勧めします。
注意しなければならないのは、浮動小数点演算は常に固定小数点演算よりも演算精度が高いというわけではないことです。浮動小数点DSPに用いられている32bit浮動小数点フォーマットの仮数部のビット幅は24bitです。これは16bit固定小数点演算よりも演算精度は優れているが、32bit倍精度固定小数点演算に対しては劣るということです。
仮数部24bitの単精度浮動小数点演算で演算精度が足りない場合の選択肢は複数存在します。16bit固定小数点DSPで32bit倍精度固定小数点演算をするのか、あるいは浮動小数点DSPで32bit固定小数点演算または64bit倍精度浮動小数点演算(仮数部53bit)をした方がいいのか、コストなども考えてよく検討してください。
倍精度演算に必要な演算量は単精度演算の2倍ではなく、約4倍になることにも注意が必要です。まずは代理店から情報収集をお勧めしますメーカーのカタログを見ると膨大な種類のDSP製品があります。これまで述べたような基本的なスペックの検討をしようにも、どのDSPを選んで比較すればいいのか迷うことも多いかと思います。また、ある程度の生産数量を見込んでいる製品にDSPを使用する場合は、チップの供給状況や将来の生産予定(製品寿命)などもチェックする必要が出てきます。
このような場合は、まずはメーカーの代理店に相談してみることをお勧めします。代理店は一番メーカーに近い立場にありますから、どれがいま一番売れている代表的製品なのか知っていますし、新製品や開発ツールなどに関する情報も教えてもらえるはずです。
Copyright © ITmedia, Inc. All Rights Reserved.