(57)【特許請求の範囲】
【請求項１】
乗算累算器と、一連の引き続くデータワードを格納するためのメモリ装置と、前記メモリ装置のためのアドレスを発生するアドレス発生ユニットと、前記メモリ装置のための出力バッファレジスタと、前記メモリ装置に、前記出力バッファレジスタにかつ前記乗算累算器に結合されたレジスタファイルと、前記メモリ装置に、前記アドレス発生ユニットに、前記乗算累算器にかつ前記出力バッファレジスタに結合された制御論理と、を有するデジタル信号プロセッサにおいてデジタル信号処理動作を実行する方法であって、前記デジタル信号処理動作は各処理インターバルに対し引き続くデータワードを必要とし、前記データワードは前記メモリ装置に格納され、前記方法は、
（ａ）第１の初期化インターバルにおいて、
第１のアドレスによって前記メモリ装置に格納された第１のデータワードをアドレスする段階であって、前記第１のデータワードは第２のアドレスを有する引き続く第２のデータワードを有する、段階、
第１の場合として、もし前記第２のアドレスが前記第１のアドレスとその最下位ビットにおいてのみ異なる場合に、
前記メモリ装置から前記第１および第２のデータワードを出力し、前記第１および第２のデータワードを前記レジスタファイルに格納する段階、
第２の場合として、もし前記第１の場合でなければ、
前記メモリ装置から前記第１のデータワードを出力し、前記第１のデータワードを前記レジスタファイルに格納し、前記第１のアドレスを１だけ変更する段階、
（ｂ）第２の初期化インターバルにおいて、
前記メモリ装置に格納された前記第２のデータワードを前記変更された第１のアドレスによってアドレスし、前記メモリ装置から前記第２のデータワードおよび引き続く第３のデータワードを出力し、前記第２のデータワードを前記レジスタファイルに格納しかつ前記第３のデータワードを前記バッファレジスタに格納する段階、
（ｃ）第１の処理インターバルにおいて、
デジタル信号処理ステップを実行するために前記レジスタファイルに格納された前記データワードを前記乗算累算器に出力させる段階、
前記第１のアドレスを２だけ変更する段階、
前記変更された第１のアドレスによって２つのさらに他の引き続くデータワードをアドレスする段階、
前記第１の場合において、前記２つのさらに他の引き続くデータワードを前記レジスタファイルに格納する段階、
前記第２の場合において、前記バッファレジスタの前記データワードを前記レジスタファイルに格納し、前記２つのさらに他の引き続くデータワードの一方を前記レジスタファイルに格納し、前記２つのさらに他の引き続くデータワードの他方を前記バッファに格納する段階、
前記デジタル信号処理動作を完了するのに必要な数の前記処理インターバルを実行する段階、および
減分的または増分的アドレスモードを使用することができ、前記減分的または増分的アドレスモードを特定するパラメータの値および前記第１のアドレスの最下位ビットをＸＯＲ操作して前記第２の場合であることを決定する段階、
を具備し、前記一連の引き続くデータワードの最初のデータワードのアドレスが奇数か偶数かに応じて長さが変化するパイプライン構成による信号処理動作を可能にしたことを特徴とするデジタル信号処理動作を実行する方法。
【請求項２】
前記デジタル信号処理動作は前記引き続くデータワードの内の少なくとも２つのシーケンスの引き続くデータワードを必要とし、異なるシーケンスの前記データワードは別個にアドレス可能なメモリ装置に格納され、前記方法は前記シーケンスの各々に対して実行され、かつ前記レジスタファイルは全てのデータワードに対して共通のファイルであることを特徴とする請求項１に記載の方法。
【請求項３】
前記デジタル信号処理動作は乗算−累算処理動作であることを特徴とする請求項２に記載の方法。
【請求項４】
デジタル信号プロセッサであって、
乗算累算器、
一連の引き続くデータワードを格納するためのメモリ装置、
前記メモリ装置のためのアドレスを発生するアドレス発生ユニット、
前記メモリ装置のための出力バッファレジスタ、
前記メモリ装置に、前記出力バッファレジスタにかつ前記乗算累算器に結合されたレジスタファイル、および
前記メモリ装置に、前記アドレス発生ユニットに、前記乗算累算器にかつ前記出力バッファレジスタに結合された制御論理、
を具備し、前記制御論理は以下の制御機構にしたがって前記レジスタファイルへの前記データワードのための入力動作および／または前記レジスタファイルからの前記データワードのための出力動作を制御するよう構成され、前記以下の制御機構は、
（ａ）第１の初期化インターバルにおいて、
前記アドレス発生ユニットによって発生された、前記一連のデータワードの内の第１のデータワードの第１のアドレスに対して、前記第１のデータワードは第２のアドレスの引き続く第２のデータワードを有し、
第１の場合として、もし前記第２のアドレスが前記第１のデータワードの第１のアドレスとその最下位ビットにおいてのみ異なれば、
前記メモリ装置に対し前記第１および第２のデータワードを出力させ、かつ
前記第１および第２のデータワードを前記レジスタファイルに入力し、
第２の場合として、もし前記第１の場合でなければ、
前記メモリ装置に対し前記第１のデータワードを出力させ、前記第１のデータワードを前記レジスタファイルへと入力し、前記アドレス発生ユニットに対し前記第１のアドレスを１だけ変更させ、
（ｂ）第２の初期化インターバルにおいて、
前記アドレス発生ユニットに対し前記第２のデータワードを前記変更された第１のアドレスによってアドレスさせ、前記メモリ装置に対し前記第２のデータワードおよび引き続く第３のデータワードを出力させ、前記第２のデータワードを前記レジスタファイルに入力しかつ前記第３のデータワードをバッファレジスタに記憶し、
（ｃ）第１の処理インターバルにおいて、
前記レジスタファイルに対し前記データワードをデジタル信号処理動作を実行するために前記乗算累算器に出力させ、
前記アドレス発生ユニットに対し前記第１のアドレスを２だけ変更させ、
前記アドレス発生ユニットに対し前記変更された第１のアドレスによって２つのさらに他の引き続くデータワードをアドレスさせ、
前記第１の場合において、
前記２つのさらに他の引き続くデータワードを前記レジスタファイルに入力し、
前記第２の場合において、
前記バッファレジスタの前記データワードを前記レジスタファイルに入力し、前記２つのさらに他の引き続くデータワードの内の一方を前記レジスタファイルに入力し、前記２つのさらに他の引き続くデータワードの他方を前記バッファレジスタに記憶し、
前記デジタル信号処理動作を完了するのに必要な数の前記処理インターバルを実行し、
前記制御論理は前記アドレス発生ユニットに対し減分的または増分的アドレスモードのいずれかで動作させ、前記制御論理はさらに前記アドレスモードを特定するパラメータおよび前記第１のアドレスの最下位ビットを入力として有するＸＯＲ論理ゲートを備え、該ＸＯＲ論理ゲートの出力信号によって前記第１の場合または前記第２の場合のいずれが存在するかを決定し、
前記一連の引き続くデータワードの最初のデータワードのアドレスが奇数か偶数かに応じて長さが変化するパイプライン構成による信号処理動作を可能にしたことを特徴とするデジタル信号プロセッサ。
【請求項５】
前記乗算累算器は前記引き続くデータワードの内の少なくとも２つのシーケンスのデータワードを一度に処理するよう構成され、前記デジタル信号プロセッサはさらに各シーケンスの引き続くデータワードに対し１つのメモリ装置を備え、前記レジスタファイルは前記メモリ装置の各々の１つに適用される前記制御機構にしたがって前記制御論理の制御の下に前記メモリ装置のいずれかから出力されるデータワードを受信するよう構成されていることを特徴とする請求項４に記載のデジタル信号プロセッサ。
【請求項６】
前記メモリ装置を２つ有し、前記乗算累算器は前記レジスタファイルに結合された２つの乗算器を具備し、前記乗算器の各々は前記レジスタファイルから処理インターバルごとに２つのデータワードを受信することを特徴とする請求項５に記載のデジタル信号プロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は一般的にはデジタル信号処理の分野に関し、かつより特定的には引き続くデータワードへのメモリアクセスを必要とするデジタル信号処理動作に関する。
【０００２】
【従来の技術】
デジタル信号処理技術においては、典型的には何らかの現実の物理的特性を表す１つまたはそれ以上のアナログ信号がろ波されあるいは何らかの他の種類の算術的評価または変換を受ける。この目的のため、到来するアナログ信号をサンプルする必要がある。各々のアナログ信号に対し、これはデジタルサンプルの連続的な流れを生じる結果となる。さらに、技術的にそのような別個のシーケンスのデジタルサンプルを異なるメモリにまたは同じメモリであるが別個のアドレス空間にお互いから分離して格納することが知られている。これらの原理を導入したマイクロプロセッサの一例はモトローラ・インコーポレイテッドから商業的に入手可能なＤＳＰ５６３００ファミリの２４ビットデジタル信号プロセッサである。
【０００３】
【発明が解決しようとする課題】
デジタル信号プロセッサは事実上すべての分野の技術および装置に適用される。１つの用途は、アナログフィルタのような、アナログ装置の機能を強化された品質およびより小型の設計を可能にするデジタルフィルタによって置き換えることである。他の分野は、コンパクトディスクプレイヤまたはデジタルオーディオテープのような、デジタルオーディオ装置、ならびに、移動電話または無線機のような、通信装置である。そのような用途は典型的には高いプロセッサのスループットを必要とし、それはサンプルのアナログ信号の広い帯域幅のためあるいはサンプルされた信号に対して行われるべきデジタル変換の複雑さ、あるいは両方の組合せのためである。
従って、デジタル信号プロセッサの性能を向上させる必要性が存在する。
【０００４】
【課題を解決するための手段】
本発明の基礎をなす問題は添付の特許請求の範囲の独立請求項に記載された特徴的機能を適用することによって実質的に解決される。好ましい実施形態は従属請求項に与えられている。
【０００５】
本発明はそれが最少のハードウエアのみを加えることによってデジタル信号プロセッサの処理性能を大幅に改善できる点で有利である。
【０００６】
本発明の好ましい実施形態によれば、単一の処理サイクルにおいて４つのデータアクセスを行うことができる。対応するデータシーケンスは典型的には乗算−累算ループ（ｍｕｌｔｉｐｌｙ−ａｃｃｕｍｕｌａｔｅ  ｌｏｏｐｓ）におけるデータ処理を含む有限インパルス応答型（ｆｉｎｉｔｅ  ｉｍｐｕｌｓｅ  ｒｅｓｐｏｎｓｅ  ｔｙｐｅ）処理ステップで処理することができる。好ましくは、２つの乗算ユニットが使用され、それらの各々は各サイクルで与えられるデータワードの内の２つを乗算することができる。２つの乗算の結果は加算されかつ累算される。
【０００７】
もし本発明の原理に従って設計されたデジタル信号プロセッサのアーキテクチャがパイプライン化されれば、これはクロック周波数を増大することなく１サイクル内で２つの乗算−累算動作を可能にする。その結果、そのようなデジタル信号プロセッサはまた電力消費に関しても有利である。これは特にバッテリ給電される用途にとって都合がよく、それはデジタル信号プロセッサの最少化された電力消費はバッテリを再充電する間のより長いインターバルを可能にするためである。
【０００８】
さらに、少なくとも２つのデータワードが各々のメモリ装置または１つのメモリ装置のアドレス領域からアクセス可能であっても単一のアドレス発生ユニットを必要とするのみであるという点で特に有利である。従って、単一のアドレス発生ユニットのみを使用することにより、４つまでのデータワードが単一サイクルでアクセスできる。
【０００９】
【発明の実施の形態】
図１を参照して、デジタル信号プロセッサ１２を導入したデジタル装置１０を詳細に説明する。デジタル装置１０は例示のためのものであり、コンパクトディスクプレイヤのような、デジタルオーディオ装置または、移動電話または無線機のような、デジタル通信装置に限定することを意図したものではない。
【００１０】
後者の場合、典型的にはアナログ信号がデジタル装置１０のアンテナから受信される。そのような信号は図１において信号１４として示されている。該信号はアナログ−デジタル変換器１６に供給される。アナログ−デジタル変換器１６によって伝達される信号１４のサンプルはデータライン１８を介してメモリ２０へと入力される。メモリ２０は記憶アレイ２２を有する。データライン１８を介してメモリ２０へ入力されたサンプルされたデータワードは記憶アレイ２２のアドレス空間に引き続くまたは連続する順序で記憶される。これは、記憶アレイ２２に入力された、最初のデータワードが最も低い順序のアドレスに記憶されかつ引き続くさらに他のデータワードが増大するアドレスで記憶されることを意味する。他のアドレス機構も可能であり、例えば最も高いアドレスでスタートして記憶アレイ２２を減少するアドレスの引き続く記憶位置において充填することも可能である。
【００１１】
記憶アレイ２２のアドレス空間は論理的に偶数アドレスおよび奇数アドレスへと分割される。同じことが記憶アレイ２６を有するメモリ２４に対しても同様に適用される。メモリ２４は他の入力信号のサンプルまたは信号１４のデジタル信号処理において使用されるべきフィルタ係数を表すデータワードを記憶する働きをなすことができる。
【００１２】
コンパクトディスクプレイヤのような、デジタルオーディオ装置の場合は、回転するコンパクトディスクを走査するレーザビームによって提供される信号１４はすでにデジタル情報であり、従ってアナログ−デジタル変換器１６は必要とされない。代わりに、信号１４はアナログ−デジタル変換の必要なしに直接メモリ２０へと入力される。
【００１３】
メモリ２０および２４のアドレスのために、デジタル信号プロセッサ１２は制御ライン３０を介して制御論理３２に結合されたアドレス発生ユニット２８を有する。制御論理３２はまた制御ライン３４および３６を介してそれぞれメモリ２０および２４に結合されている。制御ライン３８は制御論理３２をレジスタファイル４０に結合し、一方制御ライン４２は制御論理３２を乗算累算器４４に結合する。乗算累算器４４はそれらの出力が加算器−累算器（ａｄｄｅｒ−ａｃｃｕｍｕｌａｔｏｒ）５０に接続された乗算器４６および４８を有する。
【００１４】
アドレス発生ユニット２８はメモリ２０のためのアドレスを記憶するためのレジスタ５２およびメモリ２４のためのアドレスを記憶するためのレジスタ５４を有する。さらに、アドレス発生ユニット２８は次の処理インターバルに対して、それぞれ、レジスタ５２および５４に記憶されたアドレスのために必要とされる変化の量を特定するためレジスタ５６および５８を有する。レジスタ６０および６１においては、アドレス発生ユニット２８が動作するモードが特定されている。
【００１５】
アドレス発生ユニット２８はアドレスバス６２および６３によってそれぞれメモリ２０および２４に接続されている。メモリ２０および２４の双方はデータを出力するための２つのデータバスを有し、メモリ２０はデータバス６４および６６によってレジスタファイル４０に接続され、一方メモリ２４はデータバス６８および７０によってレジスタファイル４０に接続されている。データバス６６および７０はまたそれぞれバッファ７２および７４に結合されている。バッファ７２および７４はデータバス７６および７８によってレジスタファイル４０に接続されている。
【００１６】
レジスタファイル４０はレジスタ８０，８２，８４および８６を有する。これらのレジスタの各々は１つのデータワードを格納することができる。レジスタ８０および８２はデータライン８８および９０を介して乗算器４６に結合されている。同様に、レジスタ８４および８６はデータライン９２および９４を介して乗算器４８に結合されている。
【００１７】
デジタル信号処理動作の結果は加算器５０によってデジタル−アナログ変換器９２に出力される。結果として得られたアナログ信号９４は信号１４に対して実行されたデジタル信号処理動作の結果である。
【００１８】
動作においては、制御論理３２は必要とされるデジタル信号処理動作に従って到来信号１４の処理を制御する。
【００１９】
必要とされるデジタル信号処理動作を初期化するために、メモリ２０およびメモリ２４の双方に対する開始アドレス（ｓｔａｒｔ  ａｄｄｒｅｓｓ）が特定されなければならない。簡単化のために、メモリ２０および２４はそれぞれＸ  ＭＥＭおよびＹ  ＭＥＭと称され、一方レジスタ５２および５４はそれぞれＲＸおよびＲＹと称される。レジスタファイル４０のレジスタ８０，８２，８４および８６はそれぞれＸ０，Ｘ０′，Ｙ０およびＹ０′と称される。
【００２０】
Ｘ  ＭＥＭから出力されるべき必要なデータシーケンスに対する開始アドレスは制御ライン３０を介して制御論理３２によってレジスタＲＸにプログラムされる。Ｙ  ＭＥＭからの必要とされるデータシーケンスに対する開始アドレスはまた制御ライン３０を介して制御論理３２によってレジスタＲＹへとプログラムされる。
【００２１】
制御論理３２はＲＸに格納された開始アドレスがそれが偶数アドレスであるか奇数アドレスであるかをチェックする。もしＸ  ＭＥＭに対する開始アドレスが偶数（ｅｖｅｎ）であれば、レジスタ５６に格納されたパラメータ「チェンジＸ（ＣＨＡＮＧＥ  Ｘ）」または「変化Ｘ」が、アドレシングモードが増分的（ｉｎｃｒｅｍｅｎｔａｌ）なものであれば、２の値にセットされる。
【００２２】
もしＸ  ＭＥＭに対する開始アドレスが奇数であれば、パラメータ「チェンジＸ」の値が、この場合もアドレシングモードが増分的であれば、制御ライン３０を介して制御論理３２によって１の値に等しくセットされる。同じチェックがＲＹに格納された開始アドレスに対しても行われる。もしＹ  ＭＥＭに対する開始アドレスが偶数であれば、レジスタ５８に格納されたパラメータ「チェンジＹ（ＣＨＡＮＧＥ  Ｙ）」または「変化Ｙ」が２の値に等しくセットされ、もしＹ  ＭＥＭに対する開始アドレスが奇数であれば、Ｘ  ＭＥＭに対する開始アドレスについて行われたプロセスと同様に、「チェンジＹ」の値が１の値に等しくセットされる。
【００２３】
パラメータ「モードＸ（ＭＯＤＥ  Ｘ）」および「モードＹ（ＭＯＤＥ  Ｙ）」はそれぞれレジスタ６０および６１に格納される。パラメータ「モードＸ」および「モードＹ」はそれぞれＸ  ＭＥＭおよびＹ  ＭＥＭに対するアドレシングモードを特定する。もし、例えば、「モードＸ」の値が０に等しければ、これはデータワードが増大するアドレス順序でＸ  ＭＥＭから出力されるべきことを意味し、従って各々の反復の後に、ＲＸに格納されたアドレスはパラメータ「チェンジＸ」で特定される値だけ増分される。同様に、もし「モードＸ」の値が論理１であれば、これはＲＸに格納されたアドレスが「チェンジＸ」によって特定される値だけ各々の処理インターバルの後に減分されることを意味する。同じことがレジスタ６１のパラメータ「モードＹ」のセットにも同様に適用される。両方のパラメータ「モードＸ」および「モードＹ」は制御論理３２によって制御ライン３０を介してセットされる。
【００２４】
従って、初期化インターバルの間に、対応するパラメータ「チェンジＸ」、「チェンジＹ」、「モードＸ」および「モードＹ」と共に、Ｘ  ＭＥＭおよびＹ  ＭＥＭから出力されるべきデータワードのシーケンスに対する開始アドレスがそれぞれレジスタＲＸおよびＲＹにプログラムされる。
【００２５】
もし、例えば、Ｘ  ＭＥＭに対する開始アドレスが偶数でありかつ「モードＸ」が論理“０”に等しければ（増分的アドレスモード）、ＲＸに格納された開始アドレスを有するデータワードの後次にくるデータワードは前記シーケンスにおける最初のデータワードに関して１だけ増分されたアドレスを有する。その結果、Ｘ  ＭＥＭのシーケンスの第２のデータワードは奇数のアドレスを有し、かつ従ってＲＸに格納された開始アドレスとその最下位ビットにおいてのみ異なる。両方のアドレスワードが処理のために必要とされるから、制御ライン３４を介してＸ  ＭＥＭに対して、アドレスバス６２を介してアドレスを受信したことに応じてＲＸに格納された開始アドレスに格納されたデータワードおよびその最下位ビットにおいてのみ異なる開始アドレスの次のアドレスに格納された引き続くデータワードの双方を出力するよう通知される。言い換えれば、もし制御ライン３４が立ち上げられれば、アドレスバス６２の最下位ビットのラインは「ドントケア」ビットとなり、それはすべてのより高いオーダのアドレスビットに整合するアドレスを有する両方のデータワードがＸ  ＭＥＭによって出力されるからである。その結果、２つのデータワードが１つの初期化インターバルの間にＸ  ＭＥＭから出力され、従って次のインターバルに対して、Ｘ  ＭＥＭからの要求されるシーケンスの引き続く２つのデータワードを出力するためアドレスが２だけ増分されなければならない。
【００２６】
もし開始アドレスＲＸが奇数でありかつアドレスモードＸが論理的に０であれば（増分的アドレスモード）、これはＲＸに格納されたシーケンスの開始アドレスからその最下位ビットにおいてのみ異なるアドレスを有する必要とされる出力シーケンスにおけるデータワードがないことを意味する。その結果、制御ライン３４は制御論理３２によって論理的に０に落とされ、従ってＸ  ＭＥＭはまさにＲＸに格納された開始アドレスに格納されたデータワードのみを出力するが、他のデータワードは出力しない。この代替の（ａｌｔｅｒｎａｔｉｖｅ）最初の初期化インターバルにおいては１つのデータワードのみが出力されるから、「チェンジＸ」の値は１に等しくセットされ、従って次の初期化インターバルに対してＲＸに格納されたアドレスの値は１だけ増分される。この増分動作が行われた後に、ＲＸに格納されたアドレスはもはや奇数ではなく、偶数である。その結果、制御ライン３４が立ち上げられ、従ってアドレスバス６２を介してＲＸに格納された偶数アドレスの受信に応じて再び最下位アドレスビットが「ドントケア」ビットポジションになり、従ってＸ  ＭＥＭは前記代替の第２の初期化インターバルにおいて一度に２つのデータワードを出力する。その結果、この代替の場合には、ここで考えられる主処理ループに入ることができる前に１つの初期化インターバルが必要とされるのみである第１の場合に対して、２つの初期化インターバルが必要とされる。
【００２７】
第１の場合（ケース１）が存在するかあるいは第２の場合（ケース２）が存在するかは以下の表に従って決定できる。
【表１】
0003850150.tif 000002
この場合、ＬＳＢの欄はＲＸに格納されたアドレスの最下位ビットを表し、かつモードの欄はアドレシングモードを表す。
【００２８】
上の表の論理は図面には示されていないＸＯＲゲートによって制御論理３２内で好適に実施できる。もしＸＯＲゲートの１つの入力端子がパラメータ「モードＸ」の論理値を受けかつ他の入力端子がＲＸに格納されたアドレスの最下位ビットを受信すれば、ＸＯＲゲートの結果として得られる出力はケース１を示すために論理“１”となりかつケース２において論理“０”となる。従って、制御論理３２内のそのようなＸＯＲゲートの出力は上で述べた２つの場合のどれが存在するかを決定する働きをなすことができる。
【００２９】
同じことはＹ  ＭＥＭおよびアドレス発生ユニットの対応するプログラミングおよび前記アドレスバス６３の最下位ビットが関連するまたは意味がある（ｒｅｌｅｖａｎｔ）ものであるか「ドントケア」であるかに応じたＹへの制御ライン３６を介した制御信号の発行にも同様に適用される。また、制御論理３２は「モードＹ」およびＲＹに格納されたアドレスの最下位アドレスビットを入力信号として有する付加的なＸＯＲゲートを具備する。上で述べたように、この付加的なＸＯＲゲートの出力は第１のケース（ケース１）において“１”でありかつ第２のケース（ケース２）において“０”である。
【００３０】
Ｘ  ＭＥＭおよびＹ  ＭＥＭの双方に対して、第１のケースが存在する場合、初期化のために必要とされる合計の期間はちょうど１つの初期化インターバルである。もしＸ  ＭＥＭまたはＹ  ＭＥＭに対してあるいは両方に対して第２のケースが存在すれば、上で述べたように付加的な初期化インターバルが必要とされる。
【００３１】
もしＸ  ＭＥＭに対して第１のケースが存在すれば、同じ初期化インターバルにおいてＸ  ＭＥＭから出力される２つのデータワードが、それぞれ、データバス６４および６６を介してレジスタＸ０およびＸ０′に転送される。もし同じことがＹ  ＭＥＭに対して適用されれば、対応する２つの出力データワードがデータバス６８および７０を介して転送されかつレジスタＹ０およびＹ０′に格納される。
【００３２】
しかしながら、もしＹ  ＭＥＭに対してケース２が存在すれば、Ｙ  ＭＥＭから第１の初期化インターバルにおいて１つのデータワードのみが出力される。引き続く第２の初期化インターバルにおいて、２つのデータワードが出力されそれらの内の１つのみがレジスタファイル４０に記憶されるべきものである。他の出力データワードは制御論理３２によってバッファ７４においてインターセプトまたは捕捉される（ｉｎｔｅｒｃｅｐｔｅｄ）。同じことはもしＸ  ＭＥＭに対して第２のケースが存在すれば同様に適用され、従って第２の初期化インターバルにおいて出力されるデータワードの内の１つがこれもまた制御論理３２によって制御されるバッファ７２によってインターセプトまたは捕捉される。
【００３３】
初期化フェーズが完了した後、レジスタファイル４０の各レジスタＸ０，Ｘ０′，Ｙ０，Ｙ０′は１つのデータワードを有している。今や、乗算累算器４４の動作は主処理ループにおいてスタートできる。主処理ループにおいては、必要とされるデジタル信号処理動作が乗算器−累算器４４によって行われる。典型的には、そのようなデジタル信号処理動作は有限インパルス応答（ｆｉｎｉｔｅ  ｉｍｐｕｌｓｅ  ｒｅｓｐｏｎｓｅ）信号処理動作である。主処理ループが第１の処理インターバルでスタートしたとき、レジスタＸ０およびＸ０′に格納されたデータはそれぞれデータライン８８および９０を介して乗算器４６に転送される。同様に、レジスタＹ０およびＹ０′に格納されたデータは、それぞれ、データライン９２および９４を介して乗算器４８に転送される。それぞれの乗算の出力は加算器−累算器５０に転送され、該加算器−累算器５０において累算器またはアキュムレータ（ａｃｃｕｍｕｌａｔｏｒ）に記憶された値と共に乗算器４６および４８の２つの出力が加算されかつアキュムレータに記憶し戻される。２つの乗算器４６および４８の存在は同じ時間インターバル内に２つの乗算が実行できるという利点を有する。そのような２つの並列的な乗算の完了の後に、４つのデータワードの他の組が乗算器４６および４８に転送される必要がある。これは制御論理３２によって達成される。
【００３４】
もしケース１が初期化インターバルに存在すれば、２つのデータワードの各々の出力動作は結果としてＲＸに格納されたアドレスを２だけ増分し、従って引き続く時間インターバルにおいて要求されるシーケンスの引き続く２つのデータワードが出力されかつレジスタファイル４０の適切なレジスタに格納される。しかしながら、もしケース２が初期化インターバルの間に存在すれば、要求されるデータワードの１つはすでに、第２のケースがＸ  ＭＥＭに対してあるいはＹ  ＭＥＭに対して存在したかに応じて、バッファ７２または７４に存在する。メインループにおける次の処理サイクルが実行され、バッファ７２または７４に格納されたデータワードが適切なレジスタに格納されるべくレジスタファイル４０に転送される。また、第２の場合における初期化インターバルの完了後に、「チェンジＸ」または「チェンジＹ」の値は２にセットされ、従ってＲＸまたはＲＹに格納されたアドレスの値は各々の出力動作の後に２だけ変えられる。その結果、対応するメモリによって出力される一対のデータワードのデータワードの内の１つがレジスタファイル４０に転送され他の１つがメモリＸ  ＭＥＭまたはＹ  ＭＥＭの内のどの１つに第２のケースが適用されるかに応じてバッファ７２または７４に置き換えとして格納される。従って、第２のケースにおいても、１つの乗算および累算動作がこのパイプライン方式の構造により４つのオペランドによって主処理ループにおいて行うことができる。
【００３５】
その結果、デジタル信号プロセッサ１２のスループットは１つの乗算ユニットのみを有する従来技術の信号プロセッサと比較して倍加される。これは最少数のハードウエア要素を加えるのみで達成される。
【００３６】
以下の説明では、次の数式２、
【数２】
0003850150.tif 000003
に従ったデジタル処理動作を一例として説明し、この場合ｘ［ｉ］はアドレスｉにおいてＸ  ＭＥＭに格納されたデータワードを示し、かつｙ［ｊ］はアドレスｊにおいてＹ  ＭＥＭに格納されたデータワードを示す。数式２によれば、ａの値を計算するために合計６つの乗算および加算が行われる必要がある。数式２に従ったデジタル信号処理動作の実行を準備するため、デジタル信号プロセッサ１２は制御論理３２によって初期化されなければならない。
【００３７】
この目的のため、制御論理３２はユーザからあるいはプログラム制御からその入力９２において入力コマンドを受信する。以下の命令（ｉ１）、
【数３】
（ｉ１）…………ｍｏｖｅ＃０，ＲＸ
によりアドレスｉ＝０がＸ  ＭＥＭから出力されるべきデータワードのシーケンスに対する開始アドレスとしてレジスタＲＸへと移動される。同様に、命令（ｉ２）、
【数４】
（ｉ２）………ｍｏｖｅ＃１，ＲＹ
は制御論理３２に対しアドレス１をＹ  ＭＥＭから出力されるべきデータワードのシーケンスの開始アドレスとしてレジスタＲＹへと移動させる。命令（ｉ３）、
【数５】
（ｉ３）………ｃｌｒ  ａ
は制御論理３２に対し、加算器−累算器５０のアキュムレータに格納された、値ａをクリアするために制御ライン４２を介して制御信号を発行させる。次に命令（ｉ４）、すなわち、
【数６】
（ｉ４）……ｍｏｖｅ２  ｘ：（ＲＸ）＋，Ｘ０    ｙ：（ＲＹ）＋，Ｙ０
は制御論理３２によってその入力９２において受信される。この命令はレジスタＲＸのアドレスに格納されるデータワードはＸ  ＭＥＭからレジスタＸ０へと移動されるべきことを意味する。さらに、（ＲＸ）＋によって示されるように、アドレシングモードは増分的であり、従って「モードＸ」は論理“１”にセットされる。さらに、Ｘ０が命令（ｉ４）の一部であるという事実は増分された開始アドレスの引き続くデータワードがＸ０′へと移動されるべきことを示す。同じことはＹ  ＭＥＭにおけるデータワードに関連する命令ｉ４の部分ｙ：（ＲＹ）＋，Ｙ０にも同様にあてはまる。
【００３８】
レジスタＲＸにおけるＸ  ＭＥＭから出力されるべきデータワードのシーケンスに対する開始アドレスが偶数であるから、ケース１がＸ  ＭＥＭに対して存在し、したがってアドレスバス６２を介してアドレス発生ユニット２８によって出力されるアドレスの最下位ビットは「ドントケア」である。その結果、上でより詳細に説明したように、２つのデータワードｘ［０］およびｘ［１］が同時にＸ
【００３９】
ＭＥＭからそれぞれデータバス６４および６６を介して出力される。ｘ［０］であるアドレス０のデータワードがレジスタＸ０に格納されかつｘ［１］である引き続く増分されたアドレス１のデータワードがレジスタＸ０′に格納され、これは制御ライン３８を介して制御論理３２の制御の下に行なわれる。これは最初の初期化インターバルにおいて行なわれる。
【００４０】
Ｘ  ＭＥＭデータシーケンスの２つの最初のデータワードのアドレシング、出力および格納と並列に、Ｙ  ＭＥＭもまたアクセスされる。レジスタＲＹに格納されたアドレスは１であるから、奇数アドレスがＹ  ＭＥＭ出力シーケンスの開始アドレスであり、したがって第２のケースが存在する。これはＹ  ＭＥＭシーケンスの最初のデータワードのみが最初の初期化インターバルの間にアドレスされ、出力されかつレジスタファイルに格納することを意味し、それはＲＹに格納されたアドレスの最下位ビットの位置が関連する（ｒｅｌｅｖａｎｔ）からである。
【００４１】
データワードＹ［１］がＹ  ＭＥＭから出力された後、レジスタ５８に格納されたパラメータ「チェンジＹ」は１に等しくセットされ、したがってＲＹに格納されたアドレスは１だけ増分される。その結果、引き続く第２の初期化インターバルにおいて、２つの引き続くデータワードｙ［２］およびｙ［３］が出力される。アドレスワードｙ［２］はレジスタファイル４０のレジスタＹ０′に格納され、データワードｙ［１］はすでに前の最初の初期化インターバルにおいて命令ｉ（４）によって特定されてレジスタＹ０に格納されている。この時点で、データワードｙ［３］はまだ必要とされないから、それは引き続く処理インターバルにおいて使用するためにバッファ７４に格納される。
【００４２】
データワードｙ［３］のバッファリングの後に、第２の初期化インターバルが完了し、したがって主処理ループがスタートできる。パラメータ「チェンジＹ」もまた２にセットされ、それは以下の処理では常に２つのデータワードが一度にＹ  ＭＥＭから出力されるべきであるからである。
【００４３】
主処理ループは制御論理３２によって命令（ｉ５）、すなわち、
【数７】
（ｉ５）……ｍａｃ２ＸＯ，ＹＯ，ａ    Ｘ：（ＲＸ）＋，Ｘ０    Ｙ：（Ｙ）＋，Ｙ０
が受信された後にスタートさせることができる。命令（ｉ５）にしたがって、レジスタＸ０およびＹ０のデータワードはレジスタＸ０′およびＹ０′に格納されたデータワードと共に乗算されかつ累算されなければならない。対応する乗算は乗算器４６および４８によって行なわれ、かつ累算は加算器−累算器５０によって行なわれる。さらに、命令（ｉ５）は各々の処理ステップの後にレジスタＲＸに格納されたアドレスならびにレジスタＲＹに格納されたアドレスが２だけ増分されなければならないことを示す。これは命令（ｉ５）の、それぞれ、シンボル（ＲＸ）＋および（ＲＹ）＋によって明らかにされる。また、より低いアドレスを有する最初のデータワードがそれぞれレジスタＸ０およびＹ０に格納されかつより高次のアドレスデータワードがそれぞれレジスタＸ０′およびＹ０′に格納されることが指定または特定される。もし“＋”符号の代りに“−”符号が存在すれば、これは反対の意味を有することになる。
【００４４】
前記命令（ｉ５）が乗算累算器４４によって始めに実行されたとき、以下の総合的な計算が行なわれる。
【数８】
ａ：＝ａ＋ｘ［０］＊ｙ［１］＋ｘ［１］＊ｙ［２］
これは１つの処理インターバルにおいて、ＸおよびＹ  ＭＥＭシーケンスの双方の２つの引き続くデータワードが処理されることを意味する。この段階で、パラメータ「チェンジＸ」および「チェンジＹ」の双方が２に等しくセットされているから、次の処理ステップにおいて、各々のシーケンスの２つのデータワードの次の対が処理され、言い換えれば、次のような処理が行なわれる。
【数９】
ａ：＝ａ＋ｘ［２］＊ｙ［３］＋ｘ［３］＊ｙ［４］
ＲＸおよびＲＹに格納された両方のアドレスのさらなる増分の後に、次の処理インターバルはすでにａに対する最終結果を発生している。
【数１０】
ａ：＝ａ＋ｘ［４］＊ｙ［５］＋ｘ［５］＊ｙ［６］
【００４５】
Ｘ  ＭＥＭに対してケース１が存在するから（Ｘの開始アドレスが奇数）、ＸＭＥＭからの全てのデータワードは直接レジスタファイル４０へと転送される。これに対し、データワードｙ［３］およびｙ［５］は順次レジスタファイル４０へのそれらの転送の前にバッファ７４においてバッファリングされる。
【００４６】
次に、図２を参照して、本発明の方法の一実施形態についてより詳細に説明する。
【００４７】
ステップ１００において、デジタルサンプルがＸおよびＹメモリに格納される。ステップ１０２において、Ｘメモリに格納されたサンプルの処理が開始され、同様にＹメモリに格納されたサンプルの処理がステップ１０４において開始される。以下の説明では、初期設定または初期化処理はＸメモリに格納されたサンプルに関してのみ詳細に説明するがＹサンプルについては説明を行なわず、それはステップ１０２およびステップ１０４において並列に行なわれる両方の処理は同様のものであるためである。
【００４８】
初期化のため、始めに出力されるべきデータワードのシーケンスの開始アドレスがアドレス発生ユニット（ＡＧＵ）のレジスタＲＸへと移動される。これはステップ１０６において行なわれる。ステップ１０８において、Ｘメモリに対するアドレスモードが、出力シーケンスがアドレス範囲の頭部においてあるいは底部において開始するか否かに依存して、増分的であるか減分的であるかにセットされる。
【００４９】
ステップ１１０において、Ｘメモリから出力されるべきシーケンスの開始アドレスが偶数であるか否かがチェックされる。もしＲＸレジスタに格納されたアドレスが偶数であれば、これはこのアドレスの最下位ビットが「ドントケア」であることを意味する。Ｘメモリがステップ１１０において偶数開始アドレスによってアクセスされる場合、これは結果として最下位アドレスビットを除き同じアドレスビットを有するＸメモリからの２つのデータワードの出力となる。
【００５０】
もしレジスタＲＸに格納された開始アドレスが奇数であれば、これはケース２が存在することを意味し、それは同時にアドレスモードが増分的であるためである。これは開始アドレスの最下位ビットが関連あるまたは意味がある（ｒｅｌｅｖａｎｔ）ことを意味し、したがってＲＸに格納された開始アドレスのデータワードのみがステップ１１４においてＸメモリから出力される。ステップ１１６においてＲＸに格納されたアドレスが１だけ増分され、したがって偶数アドレスがＲＸに格納される結果となる。その結果、ＲＸに格納された新しいアドレスの最下位ビットは「ドントケア」となる。したがって、次の初期化ステップ１１８において、メモリはＸメモリから出力シーケンスの次の２つの引き続くデータワードを出力し、それによって２つのデータワードがお互いから最下位ビットにおいてのみ異なるアドレスを持つことになる。より高いアドレスを有するデータワードはこの段階では必要とされないから、それはステップ１２０において後の使用のためバッファリングされる。ステップ１２２において、レジスタＲＸに格納されたアドレスが、ケース１またはケース２が存在するか否かにかかわりなく選択された増分的アドレスモードにしたがって２だけ増分される。
【００５１】
初期化フェーズの後に、ＸメモリならびにＹメモリの出力シーケンスからの２つのデータワードが処理のために利用できる。その結果、主処理１２４が開始される。ステップ１２６において、利用可能なＸおよびＹメモリの出力データがレジスタファイルからアクセスされかつ必要とされるデジタル信号処理動作にしたがって処理される。同時にＸメモリからの必要とされる出力シーケンスにおける２つの引き続くデータワードがアドレスされかつＸメモリから出力される。ケース１が存在する場合、これはステップ１３０においてＸメモリからさらに２つのデータワードを得ることにより行なわれ、それによってさらに２つのデータワードがその最下位ビットにおいてのみ異なるアドレスを持つことになる。
【００５２】
もしケース２が存在すればより低い順位またはオーダ（ｏｒｄｅｒ）のアドレスデータワードがバッファからフェッチされかつより高い順位のデータワードからＸメモリからフェッチされ、同時にＸメモリから出力されかつより高い順位のデータワードに関して１だけ増分されるアドレスを有するさらに他のデータワードは前のより低い順位のアドレスデータワードを置き換えるためにバッファリングされる。これはステップ１３２において行なわれる。ステップ１３４において、レジスタＲＸに格納されたアドレスは、適用可能なアドレシングモードにしたがって、再び２だけ増分される。ステップ１２８において行なわれる動作はステップ１３６においてＹメモリに対して同様に行なわれる。ステップ１３６はステップ１２６および１２８と並列に行なわれる。ステップ１２６，１２８および１３６が実行された後に、メインループのさらなる反復１３８が開始され、したがってステップ１２４が指定されたデジタル信号処理動作を完了するのに必要な回数だけ反復される。
【００５３】
典型的には、初期化インターバルならびに上で述べた処理インターバルは１つのマシンサイクルにおいてのみ実行される。もしパイプライン化構成が選択されれば、これは各々のマシンサイクルにおいて２つの累算−乗算動作を実行できることを意味する。
【００５４】
【発明の効果】
以上のように、本発明によれば、最少のハードウェアを加えるのみでデジタル信号プロセッサの処理性能を大幅に改善することができ、特に引き続くデータワードへのメモリアクセスを必要とするデジタル信号処理動作において処理性能が改善される。
【図面の簡単な説明】
【図１】本発明の原理にしたがって設計されたデジタル信号プロセッサを含むデジタル装置の第１の実施形態を示す概略的ブロック図である。
【図２】本発明の方法の一実施形態を示す流れ図である。
【符号の説明】
１０  デジタル装置
１２  デジタル信号プロセッサ
１４  入力信号
１６  アナログ−デジタル変換器
１８  データライン
２０，２４  メモリ
２２，２６  記憶アレイ
２８  アドレス発生ユニット
３０  制御ライン
３２  制御論理
３８  制御ライン
４０  レジスタファイル
４４  乗算累算器
４６，４８  乗算器
５０  加算器−累算器
５２，５４，５６，５８，６０，６１  レジスタ
６２，６３  アドレスバス
６４，６６，６８，７０  データバス
７２，７４  バッファ
８０，８２，８４，８６  レジスタ
８８，９０，９２，９４  データライン
【図１】
0003850150.tif 000004
【図２】
0003850150.tif 000005