(57)【特許請求の範囲】
【請求項１】
パイプライン方式で一連の命令を実行してディジタル信号を処理するディジタル信号処理装置において、
異なるデータを同時に転送できるようになされた第１、第２および第３のバスと、
前記第１のバスに接続された第１の内部メモリと、
前記第２のバスに接続された第２の内部メモリと、
前記第１および第２のバスに接続された演算手段と、
前記第３のバスに接続されるとともに、少なくとも前記第１および第２のバスの一方に接続された第３の内部メモリと、
前記第３のバスに接続されるとともに、少なくとも前記第１および第２のバスの一方に接続され、かつ外部メモリにデータの書き込みおよび読み出しを行える入出力インタフェース手段と
を有し、
所定の１つの命令実行サイクルの間に、前記第１および第２のバスを使用する第１の命令と、前記第３のバスを使用する第２の命令とを並列的に実行するように構成され、
前記所定の１つの命令実行サイクルにおいて、前記第１の命令については、前記第１および第２の内部メモリからそれぞれデータが読み出されて、それらの読み出されたデータが前記第１および第２のバスを介して前記演算手段に転送され、次いで前記演算手段で両データについて所定の演算が行われ、前記第２の命令については、所定のアドレス情報が前記第３のバスを介して前記入出力インタフェース手段に送られ、次いで予め前記外部メモリより前記入出力インタフェース手段に読み出されているデータが前記第３のバスを介して前記第３の内部メモリに転送されるように構成されているディジタル信号処理装置。
【請求項２】
前記第３の内部メモリには前記外部メモリにアクセスするための前記アドレス情報を格納するための第１のメモリ領域と前記外部メモリより転送されたデータを格納するための第２のメモリ領域とが設定され、各々対応する前記アドレス情報と前記データとはそれぞれが格納される前記第１のメモリ領域におけるメモリ番地と前記第２のメモリ領域におけるメモリ番地との間に一定のオフセットを有していることを特徴とする請求項１に記載のディジタル信号処理装置。
【請求項３】
前記第１の内部メモリと前記第２の内部メモリの少なくとも一方がデュアルポート型のメモリである請求項１または請求項２に記載のディジタル信号処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、パイプライン方式のディジタル信号処理装置に関する。
【０００２】
【従来の技術】
従来より、ディジタルフィルタ、ディジタル自動等化、高速フーリエ変換（ＦＦＴ）等のように数多くの積和演算を扱うディジタル信号処理にＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）が用いられている。一般にＤＳＰは、高速の積和演算処理を実現するために、高速乗算器、加算器、プログラム用メモリ、データ用メモリ等を内蔵し、パイプライン処理を行えるマイクロプログラム制御またはＰＬＡ制御型のマイクロプロセッサとして構成されている。また、ＤＳＰは、入出力機能も備えており、記憶するデータが多い場合には、入出力インタフェースを介して外部の補助メモリにデータを蓄えるようにしている。
【０００３】
上記のような外部メモリにＤＳＰが随時アクセスできるようにするために、一般的には図８に示すようなシステム構成が採られている。このＤＳＰシステムでは、ＤＳＰ１００内の演算制御部１０２が外部メモリ１０４にアドレス情報を直接与え、書き込み時には演算制御部１０２からの書き込みデータがデータバス１０６および入出力ポート１０８を介して外部メモリ１０４に送られ、読み出し時には外部メモリ１０４からの読み出しデータが入出力ポート１０８およびデータバス１０６を介して演算制御部１０２に送られる。
【０００４】
しかし、この方式は、データ転送が完了するまで演算制御部１０２内の各部は次のステップに移れないため、パイプライン処理がその間ホールド状態になるという不利点がある。実際、演算制御部１０２が内部メモリ１１０にアクセスするときと比べて、外部メモリ１０４へのアクセスに要する時間は長いのが普通である。
【０００５】
たとえば、音場再生、音場補償等のオーディオ・ディジタル信号処理では、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）からのオーディオデータが１６ビットのデータ長を有している。このようなオーディオデータを１６ビットのデータ長のままで外部メモリ１０４との間で入出力するとなると、入出力ピンの個数の増大および外部メモリデバイスの個数の増大等を来し、ハードウェアコストが相当高くなってしまう。これは、反射音の処理等のように大量の遅延データを扱う場合に特に顕著となる。このため、外部メモリ１０４との間の入出力ビット数を少なくし、入出力回数を多くすることにより、全体のハードウェアコストを下げるようにしている。しかし、その代償として、外部メモリ１０４へのアクセス時間が長くなっており、それだけパイプラインがホールドされる時間も長く、ＤＳＰの処理能率が低くなるという問題を起こしている。
【０００６】
図９は、上記の問題を解決する方式として従来より採られているＤＳＰシステムの構成を示す。この方式では、ＤＳＰ１００’内に、外部メモリ１０４に対してデータの書き込みおよび読み出しを行える外部メモリコントローラ１１２を設けている。この外部メモリコントローラ１１２は、アドレス情報を一時的に保持するためのアドレスレジスタ１１２ａと、データを一時的に保持するためのデータレジスタ１１２ｂとを有している。
【０００７】
演算制御部１０２が外部メモリ１０４にデータを書き込むとき、演算制御部１０２はアドレス情報およびデータをデータバス１０６を介して外部メモリコントローラ１１２に転送するだけでよく、これで演算制御部１０２の各部が次のステップに移れる。一方、外部メモリコントローラ１１２は、演算制御部１２４からのアドレス情報およびデータをそれぞれアドレスレジスタ１１２ａおよびデータレジスタ１１２ｂに保持し、外部メモリ１１２にアクセスして当該アドレス情報で指定されるメモリ番地に当該データを書き込む。この書き込みは、予め規定されたサイクルで行われる。
【０００８】
演算制御部１０２が外部メモリ１０４よりデータを読み出すとき、演算制御部１０２はアドレス情報をデータバス１０６を介して外部メモリコントローラ１１２に転送する。外部メモリコントローラ１１２が外部メモリ１０４よりデータを読み出すときにも、予め規定されたサイクルを要する。外部メモリコントローラ１１２において、アドレスレジスタ１１２ａに演算制御部１０２からのアドレス情報がロードされた時、データレジスタ１１２ｂには前回のメモリサイクルで外部メモリ１０４から読み出されたデータが格納されている。したがって、演算制御部１０２は今回のアドレス情報を外部メモリコントローラ１１２に送ると同時に外部メモリコントローラ１１２から前回のデータを受け取ることができ、演算制御部１０２の各部が直ちに次のステップに移れる。
【０００９】
このように、外部メモリコントローラ１１２が外部メモリ１０４に対するデータの書き込みおよび読み出しを実行するため、演算制御部１０２は外部メモリコントローラ１１２との間でデータバス１０６を介してアドレス情報およびデータの転送を行えばよく、パイプライン処理をホールドしなくて済む。
【００１０】
【発明が解決しようとする課題】
上記した図９のＤＳＰシステムは、外部メモリ１０４をアクセスする際に全体のパイプライン処理をホールドしなくて済むという限りでは、演算処理の高速性を担保している。しかしながら、演算制御部１０２が外部メモリコントローラ１１２にアクセスする間はデータバス１０６が使用中となるため、演算制御部１０２内で演算処理を行うことはできない。つまり、外部メモリ１０４を１回アクセスすることで演算制御部１０２における演算処理を１回減らしている。上記したような音場再生等のオーディオ・ディジタル信号処理では、オーディオ信号のサンプリング周波数で規定される一定時間内にどれだけ多くの積和演算を実行できるかでＤＳＰの性能が決まる。この従来システムでは、外部メモリ１０４からデータを読み出す命令の実行によって演算制御部１０２における演算処理回数が減少するため、ＤＳＰの性能を十分に引き出せないという問題があった。
【００１１】
本発明は、かかる問題点に鑑みてなされたもので、演算処理効率を損なうことなく外部メモリよりデータを読み込めるようにして、パイプライン処理の高速性を確保すると同時に単位時間当たりの演算処理回数を可及的に多くし、処理能力を向上させたディジタル信号処理装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記の目的を達成するために、本発明のディジタル信号処理装置は、パイプライン方式で一連の命令を実行してディジタル信号を処理するディジタル信号処理装置において、異なるデータを同時に転送できるようになされた第１、第２および第３のバスと、前記第１のバスに接続された第１の内部メモリと、前記第２のバスに接続された第２の内部メモリと、前記第１および第２のバスに接続された演算手段と、前記第３のバスに接続されるとともに、少なくとも前記第１および第２のバスの一方に接続された第３の内部メモリと、前記第３のバスに接続されるとともに、少なくとも前記第１および第２のバスの一方に接続され、かつ外部メモリにデータの書き込みおよび読み出しを行える入出力インタフェース手段とを有し、所定の１つの命令実行サイクルの間に、前記第１および第２のバスを使用する第１の命令と、前記第３のバスを使用する第２の命令とを並列的に実行するように構成され、前記所定の１つの命令実行サイクルにおいて、前記第１の命令については、前記第１および第２の内部メモリからそれぞれデータが読み出されて、それらの読み出されたデータが前記第１および第２のバスを介して前記演算手段に転送され、次いで前記演算手段で両データについて所定の演算が行われ、前記第２の命令については、所定のアドレス情報が前記第３のバスを介して前記入出力インタフェース手段に送られ、次いで予め前記外部メモリより前記入出力インタフェース手段に読み出されているデータが前記第３のバスを介して前記第３の内部メモリに転送されるように構成されている。
【００１３】
本発明のディジタル信号処理装置において、好ましくは、前記第３の内部メモリには前記外部メモリにアクセスするための前記アドレス情報を格納するための第１のメモリ領域と前記外部メモリより転送されたデータを格納するための第２のメモリ領域とが設定され、各々対応する前記アドレス情報と前記データとはそれぞれが格納される前記第１のメモリ領域におけるメモリ番地と前記第２のメモリ領域におけるメモリ番地との間に一定のオフセットを有してよい。
【００１４】
更に、本発明のディジタル信号処理装置においては、第１の内部メモリと第２の内部メモリの少なくとも一方がデュアルポート型のメモリであってよい。
【００１６】
【作用】
本発明のディジタル信号処理装置では、主として演算処理に用いられる第１および第２のバスの外に、入出力インタフェース手段に接続するデータ転送用の第３のバスを設けている。これにより、１つの並列型命令の命令実行サイクルの中で、第１および第２のバスを用いて演算命令が実行されると同時に、第３のバスを用いて外部メモリからのデータを内部メモリに取り込むことができる。
【００１７】
【実施例】
以下、図１〜図７を参照して本発明の実施例を説明する。
【００１８】
図１は、本発明の一実施例によるオーディオ・ディジタル信号処理用ＤＳＰのシステム構成を示す。このＤＳＰシステムは、互いに独立した３本のデータバス（Ｃ−ＢＵＳ１０，Ｄ−ＢＵＳ１２，Ｇ−ＢＵＳ１４）を有し、これらのバスに各部を図示のように接続してなる。
【００１９】
Ｃ−ＢＵＳ１０には、係数メモリ（Ｃ−ＭＥＭ）１６と、汎用メモリ（Ｇ−ＲＡＭ）２０と、算術論理演算ユニット（ＡＬＵ）２６と、積和演算器（ＭＡＣ）２８と、プログラムメモリ（Ｐ−ＭＥＭ）３２と、ホストインタフェース回路（ＨＯＳＴ−Ｉ／Ｏ）３４とが接続されている。
【００２０】
Ｄ−ＢＵＳ１２には、データメモリ（Ｄ−ＭＥＭ）１８と、汎用メモリ（Ｇ−ＲＡＭ）２０と、外部メモリ用入出力インタフェース回路（ＥＸ−Ｉ／Ｏ）２２と、オーディオ・インタフェース回路（ＡＵ−Ｉ／Ｏ）２４と、算術論理演算ユニット（ＡＬＵ）２６と、積和演算器（ＭＡＣ）２８と、ホストインターフェース回路（ＨＯＳＴ―Ｉ／Ｏ）３４とが接続されている。
【００２１】
Ｇ−ＢＵＳ１４には、汎用メモリ（Ｇ−ＭＥＭ）２０と、外部メモリ用入出力インタフェース回路（ＥＸ−Ｉ／Ｏ）２２と、算術論理演算ユニット（ＡＬＵ）２６とが接続されている。
【００２２】
Ｃ−ＭＥＭ１６、Ｄ−ＭＥＭ１８およびＧ−ＭＥＭ２０は各々ＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）からなる。Ｃ−ＭＥＭ１６には、主として積和演算のための係数データが格納されるとともに、ＥＸ−Ｉ／Ｏ２２に接続されている外部メモリ（図示せず）にアクセスするためのアドレス情報も格納される。Ｄ−ＭＥＭ１８には、積和演算その他の演算に用いるデータ（主としてオーディオデータ）および演算結果のデータが格納される。
【００２３】
Ｇ−ＭＥＭ２０は、通常はＤ−ＭＥＭ１８の拡張メモリとして使用される。音場再生等のように大量の遅延データを扱う場合には、Ｄ−ＭＥＭ１８に入り切れない遅延データがＲＡＭからなる外部メモリに蓄積され、必要な時に後述する所定の命令（ＢＲＤＥ命令）によって外部メモリから遅延データをＧ−ＭＥＭ２０に取り込むようにしている。この場合、Ｇ−ＭＥＭ２０には、外部メモリをアクセスするためのアドレス情報も格納される。なお、Ｇ−ＭＥＭ２０は、Ｃ−ＭＥＭ１６の拡張メモリとしても使用可能であり、必要に応じて係数データを格納することもある。
【００２４】
Ｃ−ＭＥＭ１６、Ｄ−ＭＥＭ１８およびＧ−ＭＥＭ２０には、それぞれアドレス計算を行うためのアドレッシングユニット１７，１９，２１が付いている。
【００２５】
ＥＸ−Ｉ／Ｏ２２は、上記遅延データ蓄積用の外部メモリにも接続され、その外部メモリにアクセスしてデータの書き込みまたは読み出しを行えるメモリ制御機能を有しており、メモリアクセスのアドレス情報を保持するアドレスレジスタと書き込みまたは読み出しデータを保持するデータレジスタを内蔵している。
【００２６】
ＡＵ−Ｉ／Ｏ２４は、本ＤＳＰと外部のディジタル・オーディオ回路との間で
データのやりとりを行うためのインタフェース回路であり、たとえば前段のＣＤ再生回路や次段のディジタルフィルタあるいはＤ／Ａコンバータ等に接続されている。外部回路からオーディオ信号（データ）が入力されるときは、ＡＵ−Ｉ／Ｏ２４内のレジスタに１個のデータが揃うと、後述する制御装置３０に割り込みがかけられ、割込み処理で該データがＤ−ＢＵＳ１２を介してＤ−ＭＥＭ１８に格納されるようになっている。
【００２７】
ＡＬＵ２６は、任意の算術演算および論理演算を行う演算器であり、アキュムレータも内蔵している。ＭＡＣ２８は、専ら積和演算を行う演算器であり、乗算器とアキュムレータを内蔵している。このように２つの演算器（ＡＬＵ２６、ＭＡＣ２８）が備えられているため、たとえばＡＬＵ２６で加算を行いながらＭＡＣ２８で畳み込みを行うというような並列処理が可能となっている。
【００２８】
Ｐ−ＭＥＭ３２はＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）からなり、本ＤＳＰの処理動作を規定するプログラムを格納する。制御装置３０は、Ｐ−ＭＥＭ３２から命令を逐次読み出し、ＰＬＡ（Ｐｒｏｇｒａｍ  Ｌｏｇｉｃ  Ａｒｒａｙ）制御方式でシステム内のレジスタ、ゲート類（図示せず）を制御し、各部に当該命令を実行させるように機能する。図１では、説明の便宜上、制御バスは図示していない。
【００２９】
ＨＯＳＴ−Ｉ／Ｏ３４は、本ＤＳＰとホストコントローラ（図示せず）との間でプログラムやデータをやりとりするためのインタフェース回路であり、Ｃ−ＢＵＳ１０とはパラレルポートで接続され、ホストコントローラとはシリアルポートで接続されている。Ｐ−ＭＥＭ３２に格納されるプログラム、Ｃ−ＭＥＭ１６に格納される係数データおよびアドレス情報、Ｇ−ＭＥＭ２０に格納されるアドレス情報は、ホストコントローラより与えられ、ＨＯＳＴ−Ｉ／Ｏ３４からＣ−ＢＵＳ１０を介して各メモリにダウンロードされる。なお、Ｐ−ＭＥＭ３２内のプログラムによりアドレス情報が変更される場合もある。
【００３０】
本実施例のＤＳＰでは、上記のように３本のデータバス（Ｃ−ＢＵＳ１０，Ｄ−ＢＵＳ１２，Ｇ−ＢＵＳ１４）を設けており、これらのバス上で異なるアドレス情報またはデータを並列転送できるようになっている。
【００３１】
Ｃ−ＢＵＳ１０上では、上記のようにホストコンピュータより各メモリにダウンロードされるプログラム、アドレス情報、データの外に、Ｃ−ＭＥＭ１６よりＤ−ＭＥＭ１８またはＥＸ−Ｉ／Ｏ２２へ与えられるアドレス情報、Ｃ−ＭＥＭ１６よりＡＬＵ２６またはＭＡＣ２８に与えられる係数データ等が択一的に転送される。
【００３２】
Ｄ−ＢＵＳ１２上では、ＡＵ−Ｉ／Ｏ２４とＤ−ＭＥＭ１８との間でやりとりされる入出力オーディオデータ、Ｄ−ＭＥＭ１８とＥＸ−Ｉ／Ｏ２２との間でやりとりされる遅延オーディオデータ、Ｄ−ＭＥＭ１８とＡＬＵ２６またはＭＡＣ２８との間でやりとりされる演算データ等が択一的に転送される。
【００３３】
Ｇ−ＢＵＳ１４上では、Ｇ−ＭＥＭ２０とＥＸ−Ｉ／Ｏ２２との間でやりとりされるアドレス情報および遅延オーディオデータ、Ｇ−ＭＥＭ２０からＡＬＵ２６に与えられる演算データ等が転送される
【００３４】
このように、３本のデータバス（Ｃ−ＢＵＳ１０，Ｄ−ＢＵＳ１２，Ｇ−ＢＵＳ１４）上で異なるアドレス情報またはデータを同時に並列転送できるため、後述するように１つの命令実行サイクルで２つの命令を並列処理することが可能となっている。
【００３５】
図２は、本実施例のＤＳＰにおける命令ワードのフィールド配置図である。図２の（Ａ）は命令ワードの一般形式を示す。たとえば３２ビット長の１つの命令ワードの中で２つの命令（プライマリ命令、セカンダリ命令）を指定することが可能となっており、ビット［２９〜２２］のフィールドがプライマリ命令のオペコードに割り当てられ、ビット［２１〜１４］のフィールドがセカンダリ命令のオペコードに割り当てられている。ビット［３１，３０］は、２つの命令の組み合わせ形式（モード）を指定する。ビット［１３〜０］は、オペランドのアドレス指定に使われる。
【００３６】
１つの命令ワードでプライマリ命令またはセカンダリ命令のいずれかを指定することも可能である。図２の（Ｂ），（Ｃ）に、それぞれプライマリ命令、セカンダリ命令が単独で指定される場合のフィールド配置を示す。
【００３７】
本実施例のＤＳＰにおいては、Ｇ−ＢＵＳ１４を用いて外部メモリからのデー
タ（遅延オーディオデータ等）をＧ−ＭＥＭ２０に転送するためのバックグランド外部メモリ読出命令（ＢＲＤＥ）が設定可能となっている。１つの命令ワードの中にＢＲＤＥ命令が単独で指定されるときは、図２の（Ｄ）に示すような配置となり、セカンダリ命令のフィールドにＢＲＤＥ命令のオペコードが入る。ＢＲＤＥ命令におけるアドレスは、基底アドレスを基にＧ−ＭＥＭ２０のアドレス演算ユニット２１で生成されるため、オペランドは不要であり、アドレッシング・フィールドは空き領域となる。１つの命令ワードの中にＢＲＤＥ命令が他の命令（プライマリ命令）と一緒に指定されるときは、図２の（Ｄ）と（Ｂ）とが合成された配置になり、アドレッシング・フィールドはプライマリ命令のオペランドに供される。
【００３８】
次に、図３〜図７を参照して本実施例のＤＳＰにおける幾つかの命令の命令実行サイクルの動作について説明する。
【００３９】
図３は、ＭＡＣ２８を用いて所定の積和演算処理を行うＭＡＣ命令の１つである「ＭＡＣ△ＳＳ，Ｄ（ｘｘ），＊Ｃ０  ，Ｍ０  」の命令実行サイクルを示す。この命令は、「アドレス（ｘｘ）で指定されるＤ−ＭＥＭ１８のメモリ番地の内容と（アドレッシングユニット１７内の）Ｃ０  レジスタの内容（アドレス情報）で指定されるＣ−ＭＥＭ１６のメモリ番地の内容とを乗算し、その乗算結果を（ＭＡＣ２８内の）Ｍ０  レジスタの内容とを加算し、その加算結果をＭ０  レジスタに格納せよ」という意味の命令である。
【００４０】
この命令が実行されるときの動作は次のようになる。先ず、フェッチサイクル（Ｆｅｔｃｈ）で、制御装置３０のメモリ読出部がＰ−ＭＥＭ３２よりこの命令のワードを読み出す（▲１▼）。次に、デコードサイクル（Ｄｅｃｏｄｅ）で、制御装置３０のデコーダ部がこの命令を解読する（▲２▼）。この解読結果に基づき、制御装置３０のマイクロプログラム制御部が作動して、所要のレジスタ、ゲート類を働かせ、所要の各部にオペランド処理（Ｏｐｅｒａｎｄ）および実行処理（Ｅｘｃｕｔｉｏｎ）を行わせる。
【００４１】
オペランド処理サイクル（Ｏｐｅｒａｎｄ）では、制御装置３０よりアドレッシングユニット１７，１９を介してＣ−ＭＥＭ１６，Ｄ−ＭＥＭ１８にそれぞれアドレス情報が供給される。そして、Ｃ−ＭＥＭ１６，Ｄ−ＭＥＭ１８よりそれぞれ読み出されたデータはＣ−ＢＵＳ１０，Ｄ−ＢＵＳ１２を介してＭＡＣ２８に送られる（▲３▼）。実行処理サイクル（Ｅｘｃｕｔｉｏｎ）では、ＭＡＣ２８で乗算と加算が順次行われ、最終の演算結果がレジスタＭＯ  に格納される（▲４▼）。
【００４２】
なお、本実施例のＤＳＰはパイプライン方式で一連の命令を実行するため、相前後する命令の間では各命令実行サイクルが１フェーズだけずれている。たとえば、ある命令についてデコードサイクル（Ｄｅｃｏｄｅ）が行われている時は、これと同時に１つ前の命令についてのオペランド処理サイクル（Ｏｐｅｒａｎｄ）と、２つ前の命令についての実行処理サイクル（Ｅｘｃｕｔｉｏｎ）と、１つ後の命令についてのフェッチサイクル（Ｆｅｔｃｈ）が行われている。
【００４３】
図４は、外部メモリ読出命令「ＲＤＥ」の命令実行サイクルを示す。この命令は、「アドレス（ｃｍａ）で指定されるＣ−ＭＥＭ１６内のメモリ番地の内容を外部メモリをアクセスするためのアドレスとしてＥＸ−Ｉ／Ｏ２２のアドレスレジスタＥＸＡに格納せよ」という意味の命令である。
【００４４】
このＲＤＥ命令の実行サイクルにおいて、制御装置３０よりアドレス演算ユニット１７を介してＣ−ＭＥＭ１６にアドレス情報（ｃｍａ）が与えられた後に、Ｃ−ＭＥＭ１６より読み出された外部メモリアクセス用のアドレス情報がＣ−ＢＵＳ１０を介してＥＸ−Ｉ／Ｏ２２に与えられる。
【００４５】
このＲＤＥ命令が実行されると、ＥＸ−Ｉ／Ｏ２２がＣ−ＭＥＭ１６より受け取ったアドレス情報に基づいて外部メモリにアクセスし、そのアドレス情報で指定される外部メモリ内のメモリ番地の内容を読み出し、読み出したデータを読出用データレジスタＥＸＲに格納する。このようなＥＸ−Ｉ／Ｏ２２のメモリアクセス機能により、ＲＤＥ命令の実行後に所定数のマシンサイクルが経過すると、ＥＸ−Ｉ／Ｏ２２のデータレジスタＥＸＲに目的のデータが用意される。
【００４６】
図５は、上記したＲＤＥ命令と関連して用いられるデータ転送命令「ＭＯＶ△ＥＸＲ，ｄｍａ」の命令実行サイクルを示す。この命令は、「ＥＸ−Ｉ／Ｏ２２内のデータレジスタＥＸＲの内容をアドレス（ｄｍａ）で指定されるＤ−ＭＥＭ１８内のメモリ番地に格納せよ」という意味の命令である。上記したようにＲＤＥ命令の実行後に所定数のマシンサイクルが経過すると、ＥＸ−Ｉ／Ｏ２２のデータレジスタＥＸＲに目的のデータが用意されているので、次にこの命令「ＭＯＶ△ＥＸＲ，ｄｍａ」が実行されることで、その目的のデータをＤ−ＭＥＭ１８内に取り込むことができる。
【００４７】
なお、本実施例のＤＳＰでは、外部メモリ書込命令「ＷＲＥ」も定義されている。通常、この命令は「ＷＲＥ  ｃｍａ，ｄｍａ」と規定される。これは、「アドレス（ｃｍａ）で指定されるＣ−ＭＥＭ１０内のメモリ番地の内容（アドレス）で指定される外部メモリのメモリ番地にアドレス（ｄｍａ）で指定されるＤ−ＭＥＭ１２内のメモリ番地の内容（データ）を書き込め」という意味である。
【００４８】
このＷＲＥ命令が実行されるときも、アドレス情報に基づいて読み出された各データは、それぞれＣ−ＢＵＳ１０およびＤ−ＢＵＳ１２を介してＥＸ−Ｉ／Ｏ２２内のアドレスレジスタＥＸＡおよび書込用データレジスタＥＸＷに転送される。
【００４９】
上記したように、ＣＤ等の再生回路からのオーディオデータは一定時間毎に入力され、ＡＵ−Ｉ／Ｏ２４より割込み処理でＤ−ＭＥＭ１８に格納される。ＦＩＦＯ形式で、Ｄ−ＭＥＭ１８には入力オーディオデータが格納される一方で、時間的に古い順に遅延データは吐き出される。しかし、音場再生や残響再生等のように遅延データを大量に使うディジタル信号処理では、数秒前までの遅延データを使う場合もあるため、Ｄ−ＭＥＭ１８から吐き出される遅延データを上記ＷＲＥ命令によって外部メモリに蓄積するようにしている。そして、フィルタ演算で遅延データが必要になった時に、後述するバックグランド外部メモリ読出命令（ＢＲＤＥ）によって外部メモリから読み出すようにしている。
【００５０】
図６は、本実施例によるバックグランド外部メモリ読出命令「ＢＲＤＥ」の命令実行サイクルを示す。このＢＲＤＥ命令は、「（アドレッシングユニット２１内の）ＧＢレジスタの内容で指定されるＧ−ＭＥＭ２０内のメモリ番地の内容を外部メモリアクセス用のアドレス情報としてＥＸ−Ｉ／Ｏ２２内のアドレスレジスタＥＸＡに転送し、該ＧＢレジスタの内容に８０Ｈ（１０００００００）  を加算した値で指定されるＧ−ＭＥＭ２０内のメモリ番地にＥＸ−Ｉ／Ｏ２２の内の読出用データレジスタＥＸＲの内容を格納せよ」という意味の命令である。
【００５１】
このＢＲＤＥ命令の命令実行サイクルでは、オペランド処理サイクル（Ｏｐｅｒａｎｄ）の間にＧＢレジスタの内容に基づいたＧ−ＭＥＭ２０のメモリ番地の内容である外部メモリアクセス用のアドレス情報がＧ−ＢＵＳ１４を介してＥＸ−Ｉ／Ｏ２２へ転送され、実行処理サイクル（Ｅｘｃｕｔｉｏｎ）の間にＥＸ−Ｉ／Ｏ２２からのデータがＧ−ＢＵＳ１４を介してＧ−ＭＥＭ２０へ転送されるとともにアドレッシングユニット２１内でＧＢレジスタの内容が１つインクリメントされる。
【００５２】
このＢＲＤＥ命令でＥＸ−Ｉ／Ｏ２２内の読出用データレジスタＥＸＲから転送されるデータは、前回のＢＲＤＥ命令に応動してＥＸ−Ｉ／Ｏ２２が外部メモリから読み出したデータである。つまり、前回のＢＲＤＥ命令でＧ−ＭＥＭ２０からＥＸ−Ｉ／Ｏ２２内のアドレスレジスタＥＸＡに転送されたアドレス情報に対応したデータである。今回のＢＲＤＥ命令でアドレスレジスタＥＸＡに格納されたアドレス情報に対応するデータは、所定のマシンサイクルで外部メモリより読み出されて読出用データレジスタＥＸＲに保持され、次のＢＲＤＥ命令でＧ−ＭＥＭ２０へ転送されることになる。
【００５３】
なお、ＢＲＤＥ命令でＧ−ＭＥＭ２０に格納されるデータのアドレス（メモリ番地）は、ＧＢレジスタの内容（外部メモリアクセス用のアドレス情報）に８０Ｈ（１０００００００）  を加算することで、つまりアドレス情報の最上位ビットの０を１にするだけで、求められるようになっている。したがって、アドレス計算が簡単であり、そのぶんアドレッシングユニット２１内の構成が簡易化されている。
【００５４】
このように、ＢＲＤＥ命令では、専用のＧ−ＭＥＭ２０を使用してＧ−ＭＥＭ２０とＥＸ−Ｉ／Ｏ２２との間でアドレス情報およびデータの転送が行われる。他のバス（Ｃ−ＢＵＳ１０，Ｄ−ＢＵＳ１２）は使用されず、他のメモリ（Ｃ−ＭＥＭ１６，Ｄ−ＭＥＭ１８）は関与しない。したがって、１つの命令実行サイクルの間にこのＢＲＤＥ命令と同時にＣ−ＢＵＳ１０，Ｄ−ＢＵＳ１２を使用する演算命令を並列処理（実行）することが可能である。
【００５５】
なお、外部メモリよりＧ−ＭＥＭ２０に取り込まれたデータ（遅延オーディオデータ等）は、フィルタ演算等でそれが必要となった時点で、Ｇ−ＭＥＭ２０より読み出されてＭＡＣ２８またはＡＬＵ２６へ転送される。そのための命令も定義されているが、これはＣ−ＢＵＳ１０，Ｄ−ＢＵＳ１２を介したＣ−ＭＥＭ１６，Ｄ−ＭＥＭ１８の命令と同様であるので、その説明は省略する。
【００５６】
図７は、ＢＲＤＥ命令を含む並列処理型命令の１つである「ＭＡＣ△ＳＳ，Ｄ（ｘｘ），＊Ｃ０  ，Ｍ０  ／ＢＲＤＥ」命令の命令実行サイクルを示す。この並列処理型命令は、図３のＭＡＣ命令と図６のＢＲＤＥ命令とを並列的に重ね合わせたものである。命令ワードは図２の（Ａ）の形式であり、プライマリ命令のフィールドにＭＡＣ命令のオペコードが規定され、セカンダリ命令のフィールドにＢＲＤＥ命令のオペコードが規定される。
【００５７】
この命令が実行されるときの動作は次のようになる。先ず、フェッチサイクル（Ｆｅｔｃｈ）で、制御装置３０のメモリ読出部がＰ−ＭＥＭ３２よりこの並列処理型命令のワードを読み出す（▲１▼）。次に、デコードサイクル（Ｄｅｃｏｄｅ）で、制御装置３０のデコーダ部がこの並列処理型命令に含まれているＭＡＣ命令とＢＲＤＥ命令とを並列または同時に解読する（▲２▼）。
【００５８】
この場合、制御装置３０のＰＬＡ制御部からの制御信号は、ＭＡＣ命令とＢＲＤＥ命令について並列的つまりＯＲ形式で出力される。これにより、オペランド処理サイクル（Ｏｐｅｒａｎｄ）では、アドレッシングユニット１７，１９からのアドレス情報がＣ−ＭＥＭ１６，Ｄ−ＭＥＭ１８にそれぞれ供給され、Ｃ−ＭＥＭ１６，Ｄ−ＭＥＭ１８からそれぞれ目的のメモリ番地の内容（データ）が読み出される（ＭＡＣ命令のオペランド処理）と同時に、Ｇ−ＭＥＭ２０から読み出された外部メモリアクセス用のアドレス情報がＧ−ＢＵＳ１４を介してＥＸ−Ｉ／Ｏ２２へ転送される（ＢＲＤＥ命令の転送処理）。
【００５９】
そして、実行処理サイクル（Ｅｘｃｕｔｉｏｎ）では、ＭＡＣ２８で積和演算が行われる（ＭＡＣ命令の実行処理）と同時に、ＥＸ−Ｉ／Ｏ２２からのデータがＧ−ＢＵＳ１４を介してＧ−ＭＥＭ２０へ転送されるとともにアドレッシングユニット２１内でＧＢレジスタの内容が１つインクリメントされる（ＢＲＤＥ命令の実行処理）。
【００６０】
通常のオーディオ・ディジタル信号処理のサンプリング周波数は４４．１ＫＨｚであり、約２２μｓｅｃの時間間隔でＣＤ等の外部回路よりディジタル・オーディオ信号が入ってくる。この時間（約２２μｓｅｃ）内にどれだけ多くの積和演算を実行できるかでＤＳＰの性能が決まる。この時間（約２２μｓｅｃ）内でパイプライン処理できる命令実行サイクルの数は決まっており、たとえば５１２ステップに設定されているので、そのうちどれだけ多くのステップを演算処理に充てられるかでＤＳＰの性能が決まるともいえる。一方、音場再生等のようにフィルタ演算で大量の遅延データを用いるときは、外部メモリに蓄積している遅延データを頻繁に読み出さなければならない。
【００６１】
本実施例のＤＳＰでは、上記のように、並列型命令体系の下で演算処理（特に積和演算）命令とは独立にＢＲＤＥ命令によりＧ−ＭＥＭ２０およびＧ−ＢＵＳ１４を用いて外部メモリより遅延データを読み出すことができる。したがって、上記一定時間内に外部メモリからデータを読み出すＢＲＤＥ命令を実行しつつ、可及的に多くのステップを演算処理に充てることが可能であり、ＤＳＰの処理能力を十二分に引き出すことができる。
【００６２】
上記した実施例では、係数データを記憶するＣ−ＭＥＭ１６およびオーディオデータを記憶するＤ−ＭＥＭ１８とは別に汎用のＧ−ＭＥＭ２０を設け、このＧ−ＭＥＭ２０に外部メモリからの遅延データを読み込むようにした。しかし、Ｃ−ＭＥＭ１６および／またはＤ−ＭＥＭ１８を２つのポートを有するデュアルポート型のメモリで構成してＧ−ＢＵＳ１４に接続することで、Ｇ−ＭＥＭ２０を設けなくても上記ＢＲＤＥ命令を実行することが可能である。
【００６３】
また、上記実施例のＤＳＰはオーディオ・ディジタル信号処理に係るものであったが、本発明によるＤＳＰは任意のディジタル信号処理に適用可能である。
【００６４】
なお、上記実施例では、外部メモリにはオーディオデータが格納されているものとして説明したが、この外部メモリにはオーディオデータのほか、係数データなどの別種のデータが格納されることもある。
【発明の効果】
以上説明したように、本発明のディジタル信号処理装置によれば、所定の１つの命令実行サイクルの中で、第１および第２のバスを用いて演算命令を実行すると同時に、第３のバスを用いて外部メモリからのデータを内部メモリに取り込めるようにしたので、パイプライン処理の高速性を確保すると同時に単位時間当たりの演算処理回数を可及的に多くし、処理能力を向上させることができる。
【図面の簡単な説明】
【図１】本発明の一実施例によるオーディオ・ディジタル信号処理用ＤＳＰの構成を示すブロック図である。
【図２】実施例のＤＳＰにおける命令ワードのフィールド配置図である。
【図３】実施例における代表的な積和演算命令の命令実行サイクルを示す図である。
【図４】実施例における外部メモリ読出命令の命令実行サイクルを示す図である。
【図５】実施例において外部メモリ読出命令と関連するデータ転送命令の命令実行サイクルを示す図である。
【図６】実施例におけるバックグランド外部メモリ読出命令「ＢＲＤＥ」の命令実行サイクルを示す図である。
【図７】実施例においてＢＲＤＥ命令を含む代表的な並列処理型命令の命令実行サイクルを示す図である。
【図８】従来の典型的なＤＳＰシステムの要部の構成を示すプロック図である。
【図９】従来の別のＤＳＰシステムの要部の構成を示すプロック図である。
【符号の説明】
１０    Ｃ−ＢＵＳ（データバス）
１２    Ｄ−ＢＵＳ（データバス）
１４    Ｇ−ＢＵＳ（データバス）
１６    Ｃ−ＭＥＭ（係数メモリ）
１８    Ｄ−ＭＥＭ（データメモリ）
２０    Ｇ−ＭＥＭ（汎用メモリ）
１７，１９，２１    アドレッシングユニット
２２    ＥＸ−Ｉ／Ｏ（外部メモリ入出力インタフェース回路）
２４    ＡＵ−Ｉ／Ｏ（オーディオ・インタフェース回路）
２６    ＡＬＵ（算術論理演算ユニット）
２８    ＭＡＣ（積和演算器）
３０    制御装置
３２    Ｐ−ＭＥＭ（プログラムメモリ）
３４    ＨＯＳＴ−Ｉ／Ｏ（ホストインタフェース回路）
【図１】
0003579843.tif 000002
【図２】
0003579843.tif 000003
【図３】
0003579843.tif 000004
【図４】
0003579843.tif 000005
【図５】
0003579843.tif 000006
【図６】
0003579843.tif 000007
【図７】
0003579843.tif 000008
【図８】
0003579843.tif 000009
【図９】
0003579843.tif 000010