(57)【特許請求の範囲】
【請求項１】
（ａ）第１乃至第３の入力と第１乃至第６の出力を有するレジスタファイルと、
（ｂ）レジスタファイルの第１の出力を受取る第１のシフタと、
（ｃ）レジスタファイルの第２および第３の出力を受取り、１つの出力を有する第１の乗算器と、
（ｄ）レジスタファイルの第４および第５の出力を受取り、１つの出力を有する第２の乗算器と、
（ｅ）第１の乗算器の出力を受取り、１つの出力を有する第２のシフタと、
（ｆ）第２の乗算器の出力を受取り、１つの出力を有する第３のシフタと、
（ｇ）第１のシフタの出力を受取り、１つの出力を有するラウンディングマルチプレクサと、
（ｈ）第１の入力で第２のシフタの出力を受取り、１つの出力を有する第１の加算器と、
（ｉ）ゼロまたは第３のシフタの出力を受取り、出力を第１の加算器の第２の入力に与える第１の外部制御されるマルチプレクサと、
（ｊ）ラウンディングマルチプレクサおよび第１の加算器の出力を受取り、レジスタファイルの第１の入力にフィードバックされる出力を有する第２の加算器と、
（ｋ）第３のシフタの出力とレジスタファイルの第６のレジスタの出力を受取り、レジスタファイルの第２の入力へフィードバックされる出力を有する第３の加算器と、
（ｌ）レジスタファイルの第３の出力を受取る第１の入力記憶素子と、
（ｍ）第１の入力記憶素子の出力と、レジスタファイルの第３の出力を受取る第２の外部制御されるマルチプレクサと、
（ｎ）レジスタファイルの第２および第５の出力を受取る第３の外部制御されるマルチプレクサと、
（ｏ）第２および第３の外部制御されるマルチプレクサの出力を受取る第３の乗算器と、
（ｐ）第３の乗算器の出力を受取る第４のシフタと、
（ｑ）第１の入力で、第４のシフタの出力を受取る第４の加算器と、
（ｒ）第４の加算器132 の出力を受取り、その出力は第４の加算器の第２の入力に与えられる第１の出力記憶素子と、
（ｓ）第１の入力記憶素子の出力とレジスタファイルの第４の出力とを受取る第４の外部制御されるマルチプレクサと、
（ｔ）第４の外部制御されるマルチプレクサの出力を受取る第２の入力記憶素子と、
（ｕ）第２の入力記憶素子の出力とレジスタファイルの第４の出力を受取る第５の外部制御されるマルチプレクサと、
（ｖ）第５の外部制御されるマルチプレクサの出力とレジスタファイルの第２の出力を受取る第４の乗算器と、
（ｗ）第４の乗算器の出力を受取る第５のシフタと、
（ｘ）第１の入力で第５のシフタの出力を受取る第５の加算器と、
（ｙ）第５の加算器の出力を受取る第２の出力記憶素子とを含んでおり、その第２の出力記憶素子の出力は第６の外部制御されるマルチプレクサの第１の入力に与えられ、この第６の外部制御されるマルチプレクサは第２の入力で第４のシフタの出力を受取り、第６の外部制御されるマルチプレクサの出力は第５の加算器の第２の入力に与えられることを特徴とする電子回路。
【請求項２】
（ａ）電子回路は少なくとも１つの入力と少なくとも４つの出力を含んでいるレジスタファイルを含んでおり、
（ｂ）電子回路はさらに、
（１）それぞれ少なくとも２つの入力を有する第１、第２、第３、第４の乗算器と、
（２）第１の入力として対応する乗算器の出力をそれぞれ有する第１、第２、第３、第４の加算器と、
（３）レジスタファイルの出力を少なくとも幾つかの乗算器の入力に関連付ける手段と、
（４）少なくとも幾つかの加算器の別の入力を別の乗算器の出力またはレジスタファイルの出力に関連付ける手段と、
（５）少なくとも１つの入力記憶素子を含んでおり、
（ａ）その入力記憶素子の入力は、
（１）レジスタファイルの出力、または、
（２）別の入力記憶素子の出力に接続され、
（ｂ）その入力記憶素子の出力は、
（１）少なくとも１つの乗算器の入力、または別の入力記憶素子の入力に接続されており、
乗算器、加算器、入力記憶素子、レジスタファイルは共に単一のクロックサイクルで動作する電子回路。
【請求項３】
乗算器へのレジスタファイル出力数は４である請求項２記載の電子回路。
【請求項４】
複数の入力記憶素子を有している請求項２記載の電子回路。
【請求項５】
少なくとも１つの入力と少なくとも４つの出力とを含んでいるレジスタファイルを有する電子回路において、
それぞれ少なくとも２つの入力を有する第１、第２、第３、第４の乗算器と、
対応する乗算器の出力をそれぞれ第１の入力とする第１、第２、第３、第４の加算器と、
レジスタファイルの出力を少なくとも幾つかの乗算器の入力に関連付ける手段と、
少なくとも幾つかの加算器の別の入力を別の乗算器の出力またはレジスタファイルの出力に関連付ける手段と、
加算器の少なくとも１つの出力に接続されている少なくとも１つの出力記憶素子とを含んでおり、
乗算器、加算器、出力記憶素子、レジスタファイルは共に単一クロックサイクルで動作することを特徴とする電子回路。
【請求項６】
出力記憶素子はレジスタファイルに対して外部にある請求項５記載の電子回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデジタル信号プロセッサ、特に乗算−累算（ＭＡＣ）装置に関する。
【０００２】
【従来の技術】
デジタル信号プロセッサ（ＤＳＰ）は特に算術計算を非常に迅速に実行するように調整された特別なタイプのマイクロプロセッサである。ＤＳＰはコンパクトディスクプレーヤ、ＰＣディスク駆動装置、通信モデムバンク、セルラ電話を含む種々の応用で見られる。
【０００３】
【発明が解決しようとする課題】
セルラ電話のコンテキストでは、ＤＳＰ計算能力の需要は、ＧＳＰ位置の位置付け、音声認識、低ビットレートスピーチ、オーディオコード化、イメージおよびビデオ処理、３Ｇセルラモデム処理のような増加する応用の必要性の増加によって拡大し続けている。これらの処理の需要を満たすために、計算をさらに効率的に処理することのできる改良されたデジタル信号プロセッサアーキテクチャが必要とされている。
【０００４】
かなりの作業がこれらの領域では行われている。本発明者Sih もまた以下の米国特許出願の出願人である。
【０００５】
本願と同時出願されている“Signal Processor With Coupled Multiply-Accumulate Units ”と、
発明の名称“Multiple Bus Architecture in a Digital Signal Processor ”の1998年３月18日出願の第09/044,087号明細書と、
発明の名称“Digital Signal Processor Having Multiple Access Register”の1998年３月18日出願の第09/044,088号明細書と、
発明の名称“Memory Efficient Instruction Storage”の1998年３月18日出願の第09/044,089号明細書と、
発明の名称“Highly Parallel Variable Length Instructions for Controlling a Digital Signal Processor ”の1998年３月18日出願の第09/044,104号明細書と、
発明の名称“Variable Length Instructions Decoder”の1998年３月18日出願の第09/044,086号明細書と、
発明の名称“Ditigal Signal Processor with Shiftable Multiply Accumulate Unit”の1998年３月18日出願の第09/044,108号明細書。
【０００６】
これらの出願の明細書の記載はここで参考文献とされる。
【０００７】
【課題を解決するための手段】
本発明はＦＩＲフィルタ、相関、ＦＦＴ、ＤＦＴ等のような頻繁に使用される信号処理計算の速度を高めるように設計されたデジタル信号プロセッサアーキテクチャである。このアーキテクチャは結合されたデュアル−ＭＡＣアーキテクチャを使用し、そこにデュアル−ＭＡＣコプロセッサを特別な方法で取付けて、処理能力の大きな増加を達成する。
【０００８】
【発明の実施の形態】
図１は新しいアーキテクチャのブロック図である。本発明の狭い実施形態においては、電子回路は第１乃至第３の入力ＰＩ１−ＰＩ３と第１乃至第６の出力ＰＯ１−ＰＯ６とを有するレジスタファイル100 を含んでいる。第１のシフタ102 はレジスタファイルの第１の出力ＰＯ１を受取り、第１の乗算器104 はレジスタファイルの第２の出力ＰＯ２および第３の出力ＰＯ３を受取り、第２の乗算器106 はレジスタファイルの第４の出力ＰＯ４および第５の出力ＰＯ５を受取る。第２のシフタ108 は第１の乗算器104 の出力を受取り、第３のシフタ110 は第２の乗算器106 の出力を受取る。ラウンディングマルチプレクサ112 は第１のシフタ102 の出力を受取り、第１の加算器114 は第１の入力で第２のシフタ108 の出力を受取る。第１のマルチプレクサ116 はゼロまたは第３のシフタ110 の出力を受取り、出力を第１の加算器114 の第２の入力に与える。第２の加算器118 はラウンディングマルチプレクサ112 と第１の加算器114 の出力とを受取り、第２の加算器118 の出力はレジスタファイルの第１の入力ＰＩ１にフィードバックされる。第３の加算器120 は第３のシフタ110 の出力とレジスタファイルの第６の出力ＰＯ６を受取り、第３の加算器120 の出力はレジスタファイルの第２の入力ＰＩ２へフィードバックされる。
【０００９】
第１の入力記憶素子122 はレジスタファイルの第３の出力ＰＯ３を受取る。第２のマルチプレクサ124 は第１の入力記憶素子122 の出力と、レジスタファイルの第３の出力ＰＯ３を受取り、第３のマルチプレクサ126 はレジスタファイルの第２の出力ＰＯ２および第５の出力ＰＯ５を受取る。第３の乗算器128 は第２のマルチプレクサ124 と第３のマルチプレクサ126 の出力を受取り、第４のシフタ130 は第３の乗算器128 の出力を受取る。第４の加算器132 は第１の入力で、第４のシフタ130 の出力を受取り、第１の出力記憶素子134 は第４の加算器132 の出力を受取る。第１の出力記憶素子134 の出力は第４の加算器132 の第２の入力に与えられる。
【００１０】
第４のマルチプレクサ136 は第１の入力記憶素子122 の出力とレジスタファイルの第４の出力ＰＯ４を受取り、第２の入力記憶素子138 は第４のマルチプレクサ136 の出力を受取る。第５のマルチプレクサ140 は第２の入力記憶素子138 の出力とレジスタファイルの第４の出力ＰＯ４を受取り、第４の乗算器142 は第５のマルチプレクサ140 の出力とレジスタファイルの第２の出力ＰＯ２を受取る。第５のシフタ144 は第４の乗算器142 の出力を受取り、第５の加算器146 は第１の入力で第５のシフタ144 の出力を受取る。第２の出力記憶素子148 は第５の加算器146 の出力を受取る。第２の出力記憶素子148 の出力は第６のマルチプレクサ150 の第１の入力に与えられる。第６のマルチプレクサ150 は第２の入力で第４のシフタ130 の出力を受取り、第６のマルチプレクサ150 の出力は第５の加算器146 の第２の入力に与えられる。第５の加算器146 の出力はまたレジスタファイルの第３の入力ＰＩ３へフィードバックされる。マルチプレクサは外部制御される。
【００１１】
本発明はその最も広い実施形態において、前述の全てのコンポーネントを必要としない。電子回路は単に少なくとも１つの入力と少なくとも４つの出力ＰＯ２−ＰＯ５を含んでいるレジスタファイル100 を含み、電子回路はさらにそれぞれ少なくとも２つの入力を有する第１の乗算器104 と第２の乗算器106 と第３の乗算器128 と第４の乗算器142 とを含み、また第１の入力として対応する乗算器の出力をそれぞれ有する第１の加算器118 と第２の加算器120 と第３の加算器132 と第４の加算器146 （これらの第１乃至第４の加算器はさらに詳細な装置の第２乃至第５の加算器であることに注意する）とを含み、電子回路はさらにレジスタファイルの出力を少なくとも幾つかの乗算器に関連付けする手段124 、126 、136 、140 と少なくとも幾つかの加算器の別の入力を別の乗算器の出力またはレジスタファイルの出力に関連付ける手段112 、116 、150 を含むのに十分である。この特徴により乗算器、加算器、レジスタファイルは共に単一のクロックサイクルで動作する。
【００１２】
好ましくは乗算器へのレジスタファイル出力数は４である。
【００１３】
電子回路はさらに少なくとも１つの入力記憶素子128 と138 を含むことも好ましい。入力記憶素子の入力はレジスタファイルの出力ＰＯ３または別の入力記憶素子122 の出力に接続されている。入力記憶素子の出力は乗算器128 、142 の少なくとも１つの入力または別の入力記憶素子138 の入力に接続されている。乗算器、加算器、入力記憶素子、レジスタファイルは共に単一のクロックサイクルで動作する。
【００１４】
本発明は単一の入力記憶素子でのみ作用するが、複数の入力記憶素子122 、138 が存在することが好ましい。
【００１５】
電子回路はさらに少なくとも１つの加算器132 、146 の出力に接続されている少なくとも１つの出力記憶素子134 、148 を含むことが好ましい。乗算器、加算器、出力記憶素子、レジスタファイルは共に単一のクロックサイクルで動作する。
【００１６】
出力記憶素子134 、148 はレジスタファイル100 に対して外部であることが好ましい。
【００１７】
図１は前述したように新しいアーキテクチャのブロック図である。コアアーキテクチャはＭＡＣ装置、ＭＡＣ１とＭＡＣ２からなる結合されたデュアルＭＡＣ構造を含んでいる。ＭＡＣ１はその乗算オペランドをレジスタファイルの出力ポートＰＯ２とＰＯ３からフェッチする。乗算器104 の出力はシフタ108 に送られ、これは結果を０、１、２または３だけシフトできる。シフタ108 の出力はマルチプレクサＭＵＸ１から他方の入力を取る加算器114 に送られ、これは入力としてＭＡＣ２からのゼロとシフトされた積の結果を有する。加算器114 の出力は４０ビット加算器118 へ送られ、これはレジスタファイルの出力ポートＰＯ１からフェッチされたオペランドに４０ビットをさらに加算できる。４０ビット加算器の出力は入力ポートＰＩ１を通ってレジスタファイル中に記憶される。ＭＡＣ２はレジスタファイルの出力ポートＰＯ４とＰＯ６から乗算オペランドをフェッチし、106 でそれらを乗算し、その結果を０、１、２または３ビットだけシフトする。シフタ出力は４０ビット加算器120 へ送られ、４０ビット加算器120 は出力ポートＰＯ６からフェッチされた付加的なレジスタファイルオペランドを加算できる。シフタ出力はまたマルチプレクサＭＵＸ１  116 へ送られ、これはＭＡＣ１の第１の加算器114 へ供給される。４０ビット加算器120 の出力はレジスタファイル入力ポートＰＩ２を通ってレジスタファイルへ記憶される。
【００１８】
コプロセッサはコアデュアルＭＡＣ構造およびレジスタファイルに特有な方法で接続されている乗算−累算装置ＭＡＣ３とＭＡＣ４からなる。ＭＡＣ３とＭＡＣ４への入力は（マルチプレクサＭＵＸ２ 124、ＭＵＸ 126、ＭＵＸ５ 140により）レジスタファイル出力ポートＰＯ２、ＰＯ３、ＰＯ４、ＰＯ５、または１６ビットレジスタＩＳ１ 122とＩＳ２ 138からなる遅延ラインから取られるように構成されることができる。ＭＡＣ３のシフトされたプロダクトの出力はＭＵＸ６ 150を介してＭＡＣ４へ与えられることができる。代わりに、ＭＡＣ３とＭＡＣ４の４０ビット加算器はそれぞれ局部４０ビット累算レジスタＯＳ１ 134およびＯＳ２ 148から入力を取ることができる。ＭＡＣ４の出力は入力ポートＰＩ３によりレジスタファイルへ書込まれることができる。プログラマはあるプログラム命令を実行することによって図中のマルチプレクサを任意の所望の構造にセットアップすることができ、これは４ＭＡＣ装置が幾つかの異なるタイプの計算の速度を上げるようにフレキシブルに構成されることを可能にする。幾つかのこれらの構成可能なモードを以下説明する。
【００１９】
図２はＦＩＲフィルタにおいて、相関モードにおける本発明の第１の構造を示している。これはＦＩＲフィルタおよび相関動作の速度を上げるために使用されることができる。この構造がＦＩＲ濾波の速度をなぜ上げるかを知るため、ＦＩＲフィルタを実行する次式を考慮する。
【数１】
0004477278.tif 000002
４つの連続する出力の式に対して書出すと、次式が得られる。
【数２】
0004477278.tif 000003
これらの４つの量を同時に計算するために、同じ係数ｈ（ｋ）は同時に全ての４つの乗算器へ与えられ、一方、他の入力は遅延ラインにより各乗算器へ与えられる。これは図３で示されている論理構造図で示されている。
【００２０】
図３はＦＩＲフィルタと相関加速モードの論理図である。図２で示されているハードウェアセットアップを使用してこの構造を実現するために、プログラマは正確な動作を確実に行うために２コアＭＡＣの適切な命令を実行しなければならない。レジスタファイル出力ポートＰＯ２からフェッチされて各コプロセッサＭＡＣ装置への入力として使用される同一のレジスタはまた出力ポートＰＯ４からフェッチされなければならない。プログラマはまたＰＯ５からフェッチされたレジスタが並列レジスタを使用して152 で１サイクルだけ遅延され、ＰＯ３から送り出される前に移動してレジスタＩＳ１ 122とＩＳ２ 138からなるハードウェア遅延ラインを通って伝播されることを保証しなければならない。２つのコアＭＡＣは結果をフェッチしてレジスタファイル100 へ記憶することにより累算を実行し、一方コプロセッサＭＡＣは局部ＯＳ１ 134とＯＳ２ 148累算器を使用して累算を行う。この構成は類似の方法で相関動作をスピードアップするために使用されることもできる。
【００２１】
図４は単一サイクルの複素数乗算モードの別の構造を示している。ＦＦＴとＣＤＭＡ符号復調をスピードアップするために、コプロセッサは単一サイクル複素数乗算を実行するように構成されることもできる。各コアＭＡＣ装置への入力が交さ項乗算を行うようにコプロセッサへ送信されるとき、コアＭＡＣ装置の出力は共に加算され、入力ポートＰＩ１を経てレジスタファイル100 へ送信され、一方コプロセッサＭＡＣ装置の出力は共に加算され、入力ポートＰＩ３を経てレジスタファイル100 中へ記憶される。
【００２２】
図５は単一サイクルの複素数乗算−累算モードの別の構成を示している。複素数乗算−累算構造はＤＦＴおよび、３２×３２乗算の累算をスピードアップするのに有効である。図５で示されているように、乗算器の入力接続は単一サイクルの複素数乗算のように設定されるが、累算はＦＩＲフィルタ加速モードのように設定される。３２×３２ＭＡＣの場合、コアＭＡＣは符号が付けられたもの同志の乗算と符号のないもの同志の乗算を実行し、一方コプロセッサＭＡＣは符号が付けられたものと符号のないものとの乗算を実行している。
【００２３】
４０ビット加算器と１７×１７ビット乗算器の使用が示されている。これは一般的であるが、任意の便利な数のビットが使用されてもよい。
【００２４】
［産業上の応用］
本発明は産業上で利用することができ、信号処理計算を高速にすることが所望であるときに実行および使用が可能である。相互に別々にされているここで示された装置の個々のコンポーネントおよび方法は全体的に一般的なものであり、本発明の特許請求の範囲に記載されているように組合わされている。
【００２５】
種々のモードの装置および方法を説明したが、本発明の真の技術的範囲はそれに限定されず、特許請求の範囲とそれらの均等物によってのみ限定される。
【図面の簡単な説明】
【図１】  新しいアーキテクチャのブロック図。
【図２】  ＦＩＲフィルタと相関モードにおける本発明の第１の形態のブロック図。
【図３】  ＦＩＲフィルタと相関加速モードの論理図。
【図４】  単一サイクルの複素数乗算モードの別の形態のブロック図。
【図５】  単一サイクルの複素数乗算−累算モードの別の形態のブロック図。
【図１】
0004477278.tif 000004
【図２】
0004477278.tif 000005
【図３】
0004477278.tif 000006
【図４】
0004477278.tif 000007
【図５】
0004477278.tif 000008