DSPは、実時間処理を実現するための高速性と、柔軟性を実現するためのプログラミング機能を併せ持つため、次のような独特のアーキテクチャをもっています。
●ハードウェア積和演算器
フィルタや高速フーリエ変換などの代表的なディジタル信号号処理では、
Y=Σa(i)b(i)
のような積和演算を多用します。
DSPは、乗算と加算を1マシンサイクルで実行するハードウェア積和演算器(Multiplier accumulator 以下MAC)を内蔵しています。また、汎用DSPの多くのチップは、積和演算器とは別に加減算や論理演算を行うALUを備えています。
●ハーバード・アーキテクチャ
図1に、マイクロプロセッサ(以下CPU)とDSPの内部バスを示します。CPUはバスが1本だけですが、DSPはメモリとデータ用とプログラム用に分けてバスも分離しています。このように、データ・メモリ・バスとプログラム・メモリ・バスを分ける構造を、ハーバード・アーキテクチャといいます。
ハーバード・アーキテクチャは、データのアクセスとプログラムのアクセスを同時に行えるので高速処理が可能です(CPUでもスピードを追求するRISCチップの一部にハーバード・アーキテクチャが採用されている)。実際の製品では、データ・メモリ・バスとプログラム・メモリ・バスのそれぞれをデータ用とアドレスように分離して、更なる高速化を図っています。
●並列処理
高速処理を実現するために、並列処理を意識した命令体系を採用して、1命令(1マシンサイクル)で複数の処理を実行しています。また、MACやALU、データ・バスなどを複数個内蔵しているチップでは、それぞれの演算を並列処理できるように設計されています。
●高速メモリを内蔵
DSPは、高速動作を基本としているため、マシン・サイクルも当然短くなります。そのため、高速アクセスできるデータ・メモリ(RAM)やプログラム・メモリ(RAMまたはROM)を必要とします。
高速メモリを外付けしてもよいのですが、外部バスをアクセスすることによるパフォーマンスの低下とそれほど大きな容量を必要としないなどの理由から、通常のDSPはこれらの高速メモリを内蔵しています。
|