今回は、DSP発展の流れを追いながら、DSPとパソコン用プロセッサとの違いをお話します。
1988年にTIが発表した32bit浮動小数点DSP「TMS320C30(以下、C30)」は、計算途中の面倒なスケーリング処理が不要になり、それまでの16bitまたは24bitの固定小数点演算DSPよりもプログラム作成が容易になりました。
C30のアーキテクチャの簡略化した構成図を図1に示します。
・コンパイラを意識した設計
従来の固定小数点DSPと比較したC30の特徴の1つは、レジスタの数が豊富になったことです。演算用レジスタとループ制御などに用いる補助レジスタがそれぞれ8個搭載されました。これはCコンパイラによるプログラム開発を意識したものです。
これまでの固定小数点DSPにもCコンパイラは用意されていましたが、DSPのレジスタなどのリソース不足のために、コンパイラが生成したコードの実行性能は良くありませんでした。
実はC30の場合、初期のバージョンのコンパイラの性能は必ずしも満足なものではなかったのですが、数度にわたるバージョンアップにより、人間がハンドアセンブルしたものと比較しても良好なコードをコンパイラが生成するようになりました。
・メモリ構成はシンプル
図1から分かるように、C30の内部構成は比較的シンプルです。現在のDSPと比較するとRAM容量が2kwordとかなり少なめですが、これは当時の半導体の集積度とコストの制約が厳しかったためだと思われます。
ちなみにTMS320C3xシリーズの後継のDSPであるTMS320VC33では、RAM容量は34kwordに拡張されました。
C30でもう1つ目新しかった点は小容量(64word)のプログラム・キャッシュを備えていることです。これは低速の外部メモリ上のプログラムを実行した場合の処理速度の低下を防ぐためのものです。内蔵RAMの容量が少ないという欠点を補うための工夫です。
次に、TMS320C30とほぼ同時期にリリースされたインテルのパソコン用プロセッサ「80486DX(以下、486DX)」を見てみましょう。DSPと比べてみると、動作クロック周波数やデザインルールはほぼ同一です(表1を参照してください)。
このころのパソコン用プロセッサは消費電力もDSPやほかの汎用プロセッサとそう大きな相違はなく、大げさなヒートシンクや空冷ファンも必要としませんでした。
486DXは浮動小数点演算ユニット(乗算機能を含む)を搭載し、DSPほどではありませんが算術演算の能力が大幅に強化されています。
・大容量キャッシュ搭載の80486DX
もう1つ486DXの特徴的な点は、C30のメモリ容量を上回るキャッシュ・メモリを搭載していることです。C30は、外部メモリとして使用する高速SRAMのアクセス速度と内蔵メモリとの間に大きなアクセス速度のギャップはありませんでした(C30のメモリ空間は16Mwordなので外部メモリはSRAMで十分です)。
一方、486DXはアクセス速度の遅い大容量DRAMを使って高性能を実現するために、大容量のキャッシュを必要としたのです。忘れてならないC30と486DXの相違は、先ほどの図1からも分かるように、C30はマルチタスクOSなどを動かすための仮想記憶・メモリ保護機能を備えていないことです。メモリ・ブロックが2つに分かれているものの、C30は単一のメモリ空間を有しています。
・カタログ・スペック上の性能差は縮まっても用途に応じてすみ分け
このように半導体の集積度の向上により、ついにはパソコン用のプロセッサにも乗算器(浮動小数点演算ユニット)が搭載されるようになりました。
この点だけを取って見ると、DSPと汎用プロセッサの機能の差が縮まったように思えますが、メモリ構成などには、それぞれの目的とするアプリケーションに応じた明らかな差異が存在します。
実際の用途を見ても、DSPと汎用プロセッサは明確なすみ分けがなされていました。やはり、この時代のDSPも特定用途向けに設計された専用プロセッサとしての特質を持ち続けていたのです。
Copyright © ITmedia, Inc. All Rights Reserved.