バスのモデル

バスはDSPの性格と性能を決定付ける非常に重要な要素です。汎用マイコンではバスはプログラマーから見て透過になっており、どのような構造をとっているか意識されることはほとんどありません。

しかしDSPの場合は最大性能を引き出したいならばプログラマは必ずバスがどのようになっているかをきちんと理解しなければなりません。これはどのようなDSPであっても同じです。逆に、プログラマがバスを意識しなければならないという前提条件の中で、如何にプログラマの負担を減らすかという点はDSP設計者の腕の見せ所でしょう。それでは、ADSP-2191のバスを見てみましょう。

バスのモデル

ADSP-2191は内部に二系統のバスを持っています。つまり

の二系統です。上の絵ではアドレス・バスとデータ・バスを分けていますので四系統に見えています。間違えないようにしてください。それぞれのバスには役割があります。

PMバスはProgram Memoryバスの略です。その名前のとおり、このバスは命令フェッチに使用します。ADSP-2191の命令幅は24ビットありますので、図にもあるとおりPMデータバスは24ビット幅になっています。このバスは命令フェッチのほかに特別な場合にデータのロードにも使われます。

DMバスはData Memoryバスのの略です。このバスはデータ・メモリーのアクセス用であり、16ビット幅になっています。

いずれのバスもアドレス幅は24ビットありますので、16MWordのメモリー空間にアクセスできます。また、両バスともPM RAM、DM RAMに接続してあります。この二つのRAMは内蔵SRAMですが、この構造からどちらのバスを使っても自由にメモリーアクセスができることがわかります(本当はいくぶん制約がありますがそのうち説明します)。

二系統のバスが二枚のSRAMに接続されているということは、フェッチとオペランド・ロードを同時にできるということです。加えて、ADSP-2191は命令キャッシュがヒットした場合、PMバスからのデータロードとあわせて、フェッチ*1、データ*2の合計3データ・ロードが可能になっています。このような複数データのロードはDSPでは普通に行える作業です。同様なことは以前から内部ハーバード・アーキテクチャーのスーパースケーラーCPUでも行えますが、DSPの場合、

な点が異なります。特にスーパースケーラーCPUでは実行時間が強く文脈に依存し、特定のコードが何サイクルで終了するか予想するのが非常に困難になります。その点DSPのこの性格は際立っています。

2191空挺団 | プログラム | EZ-KIT | こぼれ話 | アーキテクチャー | 命令 | レジスタ | DSP掲示板 | FAQ |