(57)【特許請求の範囲】
【請求項１】
メモリの第１アドレスで指定される領域に格納されている第１及び第２のデータ列を読み出し、
前記メモリの第２アドレスで指定される領域に格納されている第３及び第４のデータ列を読み出し、
前記読み出されたデータ列の中の前記第４のデータ列をレジスタに一時的に格納し、
前記読み出されたデータ列の中の前記第２及び第３のデータ列をシフトし、
前記読み出されたデータ列の中の前記第１のデータ列と前記シフトされた第２及び第３のデータ列とを用いて演算し、
前記レジスタに一時的に格納された前記第４のデータ列と、前記演算により得られたデータ列とを混合し、
前記混合されたデータ列の中の前記演算により得られたデータ列を前記メモリの前記第１アドレスで指定される領域に格納し、
前記混合されたデータの中の前記第４のデータ列を前記メモリの前記第２アドレスで指定される領域に格納することを特徴とする演算方法。
【請求項２】
前記第４のデータ列は、未使用データを含むことを特徴とする請求項１に記載の演算方法。
【請求項３】
前記第１のデータ列の長さは、前記第２及び第３のデータ列の長さを合わせた長さと同じであることを特徴とする請求項１または２に記載の演算方法。
【請求項４】
前記第１、第２、第３及び第４のデータ列は、ビット列により構成されることを特徴とする請求項１〜３のいずれか１項に記載の演算方法。
【請求項５】
前記読み出されたデータ列の中の前記第２及び第３のデータ列は、所定のビット数だけシフトされることを特徴とする請求項４に記載の演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１ワードのビット幅が標準的な２のｎ乗ビットでないデータの演算処理を行う演算方法に関する。
【背景技術】
【０００２】
画像や音声等を出力するまたは加工する装置の中には、画像や音声の品位を向上させるために、あるいは画像や音声に付加的な情報を添付するために、１ワードのビット幅が標準的な２のｎ乗ビットでないデータを用いるものがある。このような装置として、例えば、いわゆる第３世代携帯電話や複数階調の画像データを発生する情報処理装置等がある。このような装置は、デジタルシグナルプロセッサ（以下、ＤＳＰという）やその他の演算装置を搭載しており、これにより１ワードのビット幅を標準的な２のｎ乗ビットに変換して様々な演算処理を行う。
【０００３】
以下に、第３世代携帯電話に搭載されるＤＳＰを例にして、従来の演算装置を説明する。
【０００４】
第３世代携帯電話は、常に良好な通信が行なえるように、ＤＳＰを用いて広い周波数帯域の中からいくつかの特定帯域の信号を抽出する。そして、その中から特に受信感度の高い周波数帯域を選択して通信を行なう。なお、このとき、ＤＳＰは、通常、後述のデジタルマッチドフィルタ（以下、ＤＭＦという）アルゴリズムと称される手法を用いて特定帯域の信号のパス強度を強調し、これにより特定帯域の信号を抽出する。
【０００５】
図１９は従来の演算装置の構成を示す図、図２０及び図２１は２つのメモリブロックに格納されるデータの配置を示す図、図２２及び図２３はＤＭＦアルゴリズムの概要を示す図、図２４〜図２７はＤＭＦアルゴリズムの算術式を示す図表である。なお、ここでは、各ブロック間でのデータの伝送処理や演算手段での演算処理は３２ビット単位で行われるものとして説明する。
【０００６】
図１９中、シフター１１は、演算処理を容易化させるために、後述のアキュムレータ１５やメモリ１７から伝送されるデータを所定ビットシフトして位相の調整を行う。演算論理ユニット（以下、ＡＬＵという）１３は、シフター１１から伝送されるデータや後述のアキュムレータ１５から伝送されるデータに基づいて、後述のＤＭＦアルゴリズムによる演算を実行する。アキュムレータ１５はＡＬＵ１３による演算結果を格納するレジスタであり、Ａｃｃ0とＡｃｃ1の２つのブロックからなる。なお、アキュムレータ１５に格納された演算結果は、第１のルート２３に沿ってメモリ１７に出力される。また、図示しない制御部の制御に基づいて、所定の演算処理時に第２のルート２５に沿ってＡＬＵ１３に伝送され、そこで後続の演算処理に供される。
【０００７】
メモリ１７は、所定ビット（図１９に示す従来例では１６ビット）幅の第１のメモリブロック１９と第２のメモリブロック２１を備え、アキュムレータ１５から伝送されるＡＬＵ１３による演算結果を格納する。
【０００８】
なお、図２０にメモリ１７に格納されるデータの大まかな配置を、更に図２１にメモリ１７に格納されるデータの詳細な配置を示す。メモリ１７は、ＩパートデータとＲパートデータの組合せによる演算結果のうち、Ｉパートデータを第１のメモリブロック１９に、Ｒパートデータを第２のメモリブロック２１に格納する。そして、メモリ１７は、演算結果の各ワードが所定ビット（１６ビット）幅未満である場合に、不足するビット幅分だけ未使用データを格納する。例えば、図２０及び図２１に示す例では、ＩパートデータとＲパートデータがそれぞれ１０ビット幅であるので、メモリ１７は６ビット幅の未使用データを第１のメモリブロック１９と第２のメモリブロック２１のそれぞれに格納している。なお、図２１中、「［−Ｉｎ−］」はＩパートデータを格納している領域、「［−Ｒｎ−］」はＲパートデータを格納している領域、「＊」は未使用データを格納している領域を示している。
【０００９】
なお、１６ビット幅のメモリ１７に３２ビット幅のＡＬＵ１３を接続するのは、乗算演算により演算幅が増大した場合に対応するためであるが、メモリ１７は１６ビット幅に限らず、４や３２等、２のｎ乗のビット幅にすることも可能である。ただし、現時点では、１６ビット幅のメモリが広く普及している上、コストも安いので、ＤＳＰのコストを低減させるには１６ビット幅のものが望ましい。
【００１０】
以下に、ＤＭＦアルゴリズムについて説明する。図２２及び図２３はＤＭＦアルゴリズムの概要を示す図、図２４〜図２７はＤＭＦアルゴリズムの算術式を示す図表である。
【００１１】
図２２中、「＋」は加算演算を示し、「＊」は乗算演算を示す。ただし、乗算演算＊は、ＤＭＦアルゴリズムにおける乗数が１または−１であるため、実際は符号が変わらないか反転することになるだけである。なお、加算回路や乗算回路の構成については特に問わないので、ここでは説明を省略する。
【００１２】
Ｄ1…8はデータの遅延値を示し、Ｄ1の出力データは１２８サイクル前の入力データ、Ｄ2の出力データは６４サイクル前の入力データ、Ｄ3の出力データは１６サイクル前の入力データ、Ｄ4の出力データは３２サイクル前の入力データ、Ｄ5の出力データは８サイクル前の入力データ、Ｄ6の出力データは１サイクル前の入力データ、Ｄ7の出力データは４サイクル前の入力データ、Ｄ8の出力データは２サイクル前の入力データとなる。Ｗ1…8は遅延値Ｄに乗算される乗算係数を示し、Ｗ1は１、Ｗ2は−１、Ｗ3は１、Ｗ4は１、Ｗ5は１、Ｗ6は１、Ｗ7は１、Ｗ8は１となる。これら遅延値Ｄ1…8や乗算係数Ｗ1…8の値は、演算結果が特定な遅延値の信号（すなわち、特定帯域の信号）のパス強度を強調した値となるように、固定的に設定されている。ＡＬＵ１３はＤＭＦアルゴリズムを用いた演算を行うことにより特定帯域の信号を強調することができ、これによって特定帯域の信号を抽出可能となる。
【００１３】
図２３は図２２における各演算過程の入出力を示し、図２４〜図２７は図２３における各入出力の関係を示している。図２３に示すように、各入出力Ａ1〜Ａ8、Ｂ1〜Ｂ8、Ｃ1〜Ｃ8、Ｃ1’〜Ｃ3’、Ｃ5’、Ｃ7’は、入力Ａ0を起点としている。各入出力の関係を表す算術式を図２４に、また、Ｂ1〜Ｂ8の値を図２５に、Ｃ1〜Ｃ8の値を図２６に、Ｃ1’〜Ｃ3’、Ｃ5’及びＣ7’の値を図２７に示す。
【００１４】
なお、遅延値Ｄ1〜Ｄ8の各出力Ａ1〜Ａ8は、遅延値Ｄ1〜Ｄ8の値がそれぞれ１２８，６４，１６，３２，８，１，４，２サイクルであるので、Ａ0の値を起点にしてそれぞれ１２８，１２８＋６４＝１９２，１９２＋１６＝２０８，２０８＋３２＝２４０，２４０＋８＝２４８，２４８＋１＝２４９，２４９＋４＝２５３，２５３＋２＝２５５サイクル遅延した値となる。例えば入力Ａ0の値をｘ0とする場合に、Ｄ1の出力Ａ1の値はｘ128、Ｄ2の出力Ａ2の値はｘ192、Ｄ3の出力Ａ3の値はｘ208、Ｄ4の出力Ａ4の値はｘ240、Ｄ5の出力Ａ5の値はｘ248、Ｄ6の出力Ａ6の値はｘ249、Ｄ7の出力Ａ7の値はｘ253、Ｄ8の出力Ａ8の値はｘ255となる。
【００１５】
ＤＭＦアルゴリズムによる演算結果は、ＤＭＦアルゴリズムの上の段による演算結果（例えばＣ1〜Ｃ8の値）はアキュムレータ１５のＡｃｃ1に格納され、下の段による演算結果（例えばＣ1’〜Ｃ3’及びＣ5’及びＣ7’の値）はアキュムレータ１５のＡｃｃ0に格納される。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
従来のＤＳＰは、一度に１６ビットのデータをメモリ１７からＡＬＵ１３に出力する。しかしながら、演算処理に用いるデータは、そのうちの１０ビット分だけである。そのため、従来の演算装置は、一度に６ビットのデータを無駄にＡＬＵ１３に出力していた。
【００１７】
またＡＬＵ１３は３２ビット幅の演算器（図示せず）を内蔵するが、ＡＬＵ１３は、そのうちの１０ビット幅分しか使用していない。そのため、従来の演算装置は、２２ビット幅分の演算器を無駄にしていた。
【００１８】
このように、従来の演算装置は、１ワードが標準的なビット幅でないデータを用いて演算処理する場合に、ＩパートデータとＲパートデータの間に未使用部を配置しているためＡＬＵ１３に内蔵される演算器やメモリ１７の使用に無駄が発生し、特にＤＭＦアルゴリズムによる演算処理を行なう際に、演算能力やメモリを有効に活用できないという問題点があった。
【課題を解決するための手段】
【００１９】
この発明に係る演算方法は、このような課題を解決するために、メモリの第１アドレスで指定される領域に格納されている第１及び第２のデータ列を読み出し、メモリの第２アドレスで指定される領域に格納されている第３及び第４のデータ列を読み出し、読み出されたデータ列の中の第４のデータ列をレジスタに一時的に格納し、読み出されたデータ列の中の第２及び第３のデータ列をシフトし、読み出されたデータ列の中の第１のデータ列とシフトされた第２及び第３のデータ列とを用いて演算し、レジスタに一時的に格納された第４のデータ列と演算により得られたデータ列とを混合し、混合されたデータ列の中の演算により得られたデータ列をメモリの第１アドレスで指定される領域に格納し、混合されたデータの中の第４のデータ列をメモリの第２アドレスで指定される領域に格納する。
【発明の効果】
【００２０】
この発明に係る演算方法は、ＤＭＦ処理における使用メモリ量を低減できるという効果を有する。
また、この発明に係る演算方法は、例えば、読み出されたデータのうち、演算に供しない部分を第４のデータ列とすることにより、演算に供しない部分を演算するための時間を必要とせずに、簡易に出力データを生成することができるという効果、および、上書き時に未使用データをそのまま書き出すことができるという効果も有する。
【発明を実施するための最良の形態】
【００２１】
本実施の形態は、１６ビット幅のレジスタと混合回路を設け、制御部に特殊な制御をさせることにより、使用メモリ量（特に、ＤＭＦアルゴリズムに基づく演算処理時における使用メモリ量）を従来の２／３に低減することを目的とする。
【００２２】
図１は本発明に係る演算装置の構成を示す図である。
【００２３】
本発明に係る演算装置は、１ワードが標準的な２のｎ乗のビット幅でないデータの演算を、高速に少ないメモリ量で行えるように構成されている。
【００２４】
以下に、第３世代携帯電話に搭載されるＤＳＰを例にして、本発明の実施の形態を説明する。なお、各図は本発明を理解できる程度に概略的に示してあるにすぎない。また、各図において、共通する要素については、同一の符号を付し、説明を省略する。
【００２５】
本実施の形態に係るＤＳＰは、図１に示すように、レジスタ２７と混合回路２９とを備えている。レジスタ２７は、メモリ１７から出力されるデータを一時格納するために設けられている。混合回路２９は、メモリ１７から出力されるデータ（すなわち、レジスタ２７に一時格納されたデータ）に対し、その一部をＡＬＵ１３’から出力されるデータに置き換えるために設けられている。なお、レジスタ２７と混合回路２９も、他の要素と同様に、図示しない制御部によって制御されている。また、本実施の形態に係るＡＬＵ１３’は、後述するように、分割信号Ｋが入力されることにより任意の位置でキャリー信号を分割する機能が付加されている。
【００２６】
ところで、本実施の形態は、メモリ１７として、既に大量に普及している汎用的なメモリを利用可能とすることが意図されている。そこで、本実施の形態では、メモリ１７に格納するデータを図２〜図１２に示すように配列するとともに、ＡＬＵ１３’が演算し易くなるように、図示しない制御部によってメモリ１７に対して特殊な制御を行っている。
【００２７】
図２〜図１２は、２つのメモリブロックに格納されるデータの配置を示す図であり、図２にはメモリ１７に格納されるデータの大まかな配置が、また図３〜図１２にはメモリ１７に格納されるデータの詳細な配置が示されている。なお、図３〜図１２中、「［−Ｉｎ−］」はＩパートデータを格納している領域、「［−Ｒｎ−］」はＲパートデータを格納している領域、「＊」は未使用データを格納している領域を示している。
【００２８】
図２〜図１２に示すように、メモリ１７は、１０ビット幅のＩパートデータと１０ビット幅のＲパートデータの組合せによるデータに４ビット幅の未使用データを付加して２４ビット幅のデータとし、これらを各１６ビット幅の第１及び第２のメモリブロック１９、２１の中に連続して格納する。本実施の形態は、データをこのように格納することにより、メモリ１７の未使用領域を従来の１２／３２＝３７．５％分から４／３２＝１２．５％分に低減している。
【００２９】
なお、未使用データのビット幅は、後述の理由により、後続のデータの先頭が０ビット目または８ビット目から始まるようにするのが望ましい。例えば、図２に示す例では、Ｉパートデータのビット幅が１０ビット、Ｒパートデータのビット幅が１０ビットであるので、未使用データのビット幅は４ビットになっている。仮に、ＩパートデータやＲパートデータのビット幅が変われば、これに応じて後続のデータの先頭が０ビット目または８ビット目から始まるように、未使用データのビット幅も変えるのが望ましい。
【００３０】
本実施の形態では、図示しない制御部は、メモリ１７に対して以下のような制御を行う。
【００３１】
すなわち、例えば、メモリ１７には図３〜図１２に示すようなデータが格納されているものとする。
【００３２】
図示しない制御部は、図２２及び図２３に示すＤＭＦアルゴリズムに基づいて入力Ａ0をＡＬＵ１３’に供給する。ここでは、入力Ａ0は、Ｉ０パートデータとＲ０パートデータとする。Ｉ０パートデータとＲ０パートデータは、メモリ１７のアドレス０と１に格納されている。そこで、図示しない制御部は、メモリ１７のアドレス０と１に格納されていたデータを、シフター１１を介してＡＬＵ１３’に供給するとともに、レジスタ２７にも供給してそこに一時格納させる。次に、図示しない制御部は、ＡＬＵ１３’に一演算処理を実行させ、その演算結果をアキュムレータ（以下、Ａｃｃという）１５に一時格納させる。次に、レジスタ２７に一時格納させたデータを混合回路２９に出力させるとともに、Ａｃｃ１５に一時格納された演算結果を混合回路２９に出力させる。次に、混合回路２９に、後述する制御によって両者を混合させ、混合結果をメモリ１７に出力させる。次に、メモリ１７に、混合結果を元のアドレスであるアドレス０と１に格納させる。
【００３３】
また、図示しない制御部は、ＤＭＦアルゴリズムに基づいて遅延値Ｄ1の出力Ａ1をＡＬＵ１３’に供給する。ここでは、出力Ａ1は、遅延値Ｄ1の値が１２８サイクルであるので０＋１２８＝１２８サイクル遅延して格納されたデータとなる。すなわち、Ｉ１２８パートデータとＲ１２８パートデータとなる。Ｉ１２８パートデータとＲ１２８パートデータは、メモリ１７のアドレス１９２と１９３に格納されている。そこで、図示しない制御部は、メモリ１７のアドレス１９２と１９３に格納されたデータを、シフター１１を介してＡＬＵ１３’に供給するとともに、レジスタ２７にも供給してそこに一時格納させる。次に、図示しない制御部は、ＡＬＵ１３’に一演算処理を実行させ、その演算結果をＡｃｃ１５に一時格納させる。次に、レジスタ２７に一時格納させたデータを混合回路２９に出力させるとともに、Ａｃｃ１５に一時格納された演算結果を混合回路２９に出力させる。次に、混合回路２９に後述する制御によって両者を混合させ、混合結果をメモリ１７に出力させる。次に、メモリ１７に、混合結果を元のアドレスであるアドレス１９２と１９３に格納させる。
【００３４】
また、図示しない制御部は、ＤＭＦアルゴリズムに基づいて遅延値Ｄ2の出力Ａ2をＡＬＵ１３’に供給する。ここでは、出力Ａ2は、遅延値Ｄ2の値が６４サイクルであるので１２８＋６４＝１９２サイクル遅延して格納されたデータとなる。すなわち、Ｉ１９２パートデータとＲ１９２パートデータとなる。Ｉ１９２パートデータとＲ１９２パートデータは、メモリ１７のアドレス２８８と２８９に格納されている。そこで、図示しない制御部は、メモリ１７のアドレス２８８と２８９に格納されたデータを、シフター１１を介してＡＬＵ１３’に供給するとともに、レジスタ２７にも供給してそこに一時格納させる。次に、図示しない制御部は、ＡＬＵ１３’に一演算処理を実行させ、その演算結果をＡｃｃ１５に一時格納させる。次に、レジスタ２７に一時格納させたデータを混合回路２９に出力させるとともに、Ａｃｃ１５に一時格納された演算結果を混合回路２９に出力させる。次に、混合回路２９に後述する制御によって両者を混合させ、混合結果をメモリ１７に出力させる。次に、メモリ１７に、混合結果を元のアドレスであるアドレス２８８と２８９に格納させる。
【００３５】
また、図示しない制御部は、ＤＭＦアルゴリズムに基づいて遅延値Ｄ3の出力Ａ3をＡＬＵ１３’に供給する。ここでは、出力Ａ3は、遅延値Ｄ3の値が１６サイクルであるので１９２＋１６＝２０８サイクル遅延して格納されたデータとなる。すなわち、Ｉ２０８パートデータとＲ２０８パートデータとなる。Ｉ２０８パートデータとＲ２０８パートデータは、メモリ１７のアドレス３１２と３１３に格納されている。そこで、図示しない制御部は、メモリ１７のアドレス３１２と３１３に格納されたデータを、シフター１１を介してＡＬＵ１３’に供給するとともに、レジスタ２７にも供給してそこに一時格納させる。次に、図示しない制御部は、ＡＬＵ１３’に一演算処理を実行させ、その演算結果をＡｃｃ１５に一時格納させる。次に、レジスタ２７に一時格納させたデータを混合回路２９に出力させるとともに、Ａｃｃ１５に一時格納された演算結果を混合回路２９に出力させる。次に、混合回路２９に後述する制御によって両者を混合させ、混合結果をメモリ１７に出力させる。次に、メモリ１７に、混合結果を元のアドレスであるアドレス３１２と３１３に格納させる。
【００３６】
また、図示しない制御部は、ＤＭＦアルゴリズムに基づいて遅延値Ｄ4の出力Ａ4をＡＬＵ１３’に供給する。ここでは、出力Ａ4は、遅延値Ｄ4の値が３２サイクルであるので２０８＋３２＝２４０サイクル遅延して格納されたデータとなる。すなわち、Ｉ２４０パートデータとＲ２４０パートデータとなる。Ｉ２４０パートデータとＲ２４０パートデータは、メモリ１７のアドレス３６０と３６１に格納されている。そこで、図示しない制御部は、メモリ１７のアドレス３６０と３６１に格納されたデータを、シフター１１を介してＡＬＵ１３’に供給するとともに、レジスタ２７にも供給してそこに一時格納させる。次に、図示しない制御部は、ＡＬＵ１３’に一演算処理を実行させ、その演算結果をＡｃｃ１５に一時格納させる。次に、レジスタ２７に一時格納させたデータを混合回路２９に出力させるとともに、Ａｃｃ１５に一時格納された演算結果を混合回路２９に出力させる。次に、混合回路２９に後述する制御によって両者を混合させ、混合結果をメモリ１７に出力させる。次に、メモリ１７に、混合結果を元のアドレスであるアドレス３６０と３６１に格納させる。
【００３７】
また、図示しない制御部は、ＤＭＦアルゴリズムに基づいて遅延値Ｄ5の出力Ａ5をＡＬＵ１３’に供給する。ここでは、出力Ａ5は、遅延値Ｄ5の値が８サイクルであるので２４０＋８＝２４８サイクル遅延して格納されたデータとなる。すなわち、Ｉ２４８パートデータとＲ２４８パートデータとなる。Ｉ２４８パートデータとＲ２４８パートデータは、メモリ１７のアドレス３７２と３７３に格納されている。そこで、図示しない制御部は、メモリ１７のアドレス３７２と３７３に格納されたデータを、シフター１１を介してＡＬＵ１３’に供給するとともに、レジスタ２７にも供給してそこに一時格納させる。次に、図示しない制御部は、ＡＬＵ１３’に一演算処理を実行させ、その演算結果をＡｃｃ１５に一時格納させる。次に、レジスタ２７に一時格納させたデータを混合回路２９に出力させるとともに、Ａｃｃ１５に一時格納された演算結果を混合回路２９に出力させる。次に、混合回路２９に後述する制御によって両者を混合させ、混合結果をメモリ１７に出力させる。次に、メモリ１７に、混合結果を元のアドレスであるアドレス３７２と３７３に格納させる。
【００３８】
また、図示しない制御部は、ＤＭＦアルゴリズムに基づいて遅延値Ｄ6の出力Ａ6をＡＬＵ１３’に供給する。ここでは、出力Ａ6は、遅延値Ｄ6の値が１サイクルであるので２４８＋１＝２４９サイクル遅延して格納されたデータとなる。すなわち、Ｉ２４９パートデータとＲ２４９パートデータとなる。Ｉ２４９パートデータとＲ２４９パートデータは、メモリ１７のアドレス３７３と３７４に格納されている。そこで、図示しない制御部は、メモリ１７のアドレス３７３と３７４に格納されたデータを、シフター１１を介してＡＬＵ１３’に供給するとともに、レジスタ２７にも供給してそこに一時格納させる。次に、図示しない制御部は、ＡＬＵ１３’に一演算処理を実行させ、その演算結果をＡｃｃ１５に一時格納させる。次に、レジスタ２７に一時格納させたデータを混合回路２９に出力させるとともに、Ａｃｃ１５に一時格納された演算結果を混合回路２９に出力させる。次に、混合回路２９に後述する制御によって両者を混合させ、混合結果をメモリ１７に出力させる。次に、メモリ１７に、混合結果を元のアドレスであるアドレス３７３と３７４に格納させる。
【００３９】
また、図示しない制御部は、ＤＭＦアルゴリズムに基づいて遅延値Ｄ7の出力Ａ7をＡＬＵ１３’に供給する。ここでは、出力Ａ7は、遅延値Ｄ7の値が４サイクルであるので２４９＋４＝２５３サイクル遅延して格納されたデータとなる。すなわち、Ｉ２５３パートデータとＲ２５３パートデータとなる。Ｉ２５３パートデータとＲ２５３パートデータは、メモリ１７のアドレス３７９と３８０に格納されている。そこで、図示しない制御部は、メモリ１７のアドレス３７９と３８０に格納されたデータを、シフター１１を介してＡＬＵ１３’に供給するとともに、レジスタ２７にも供給してそこに一時格納させる。次に、図示しない制御部は、ＡＬＵ１３’に一演算処理を実行させ、その演算結果をＡｃｃ１５に一時格納させる。次に、レジスタ２７に一時格納させたデータを混合回路２９に出力させるとともに、Ａｃｃ１５に一時格納された演算結果を混合回路２９に出力させる。次に、混合回路２９に後述する制御によって両者を混合させ、混合結果をメモリ１７に出力させる。次に、メモリ１７に、混合結果を元のアドレスであるアドレス３７９と３８０に格納させる。
【００４０】
また、図示しない制御部は、ＤＭＦアルゴリズムに基づいて遅延値Ｄ8の出力Ａ8をＡＬＵ１３’に供給する。ここでは、出力Ａ8は、遅延値Ｄ8の値が２サイクルであるので２５３＋２＝２５５サイクル遅延して格納されたデータとなる。すなわち、Ｉ２５５パートデータとＲ２５５パートデータとなる。Ｉ２５５パートデータとＲ２５５パートデータは、メモリ１７のアドレス３８２と３８３に格納されている。そこで、図示しない制御部は、メモリ１７のアドレス３８２と３８３に格納されたデータを、シフター１１を介してＡＬＵ１３’に供給するとともに、レジスタ２７にも供給してそこに一時格納させる。次に、図示しない制御部は、ＡＬＵ１３’に一演算処理を実行させ、その演算結果をＡｃｃ１５に一時格納させる。次に、レジスタ２７に一時格納させたデータを混合回路２９に出力させるとともに、Ａｃｃ１５に一時格納された演算結果を混合回路２９に出力させる。次に、混合回路２９に後述する制御によって両者を混合させ、混合結果をメモリ１７に出力させる。次に、メモリ１７に、混合結果を元のアドレスであるアドレス３８２と３８３に格納させる。
【００４１】
この後、アドレス３８３のＩ２５５パートデータとＲ２５５パートデータには、次の遅延値Ｄ1の入力Ａ0が配置される。そして、次の演算処理時において、図示しない制御部は、アドレス３８３を新たなアドレス０と見なして上述した動作と同様の動作を実行する。
【００４２】
なお、上述した動作において、データが遷移するパターンは３通りあり、それぞれを図１３（ａ）〜（ｃ）に示す。なお、図１３は２つのメモリブロックに格納されるデータの遷移過程を示す図である。図１３中、無地の領域はデータが更新される部分を示しており、斜線を付した領域はデータが更新されない部分を示している。
【００４３】
図１３（ａ）〜（ｃ）に示す各パターンの遷移過程において、ＤＳＰの各構成は以下のように動作する。
【００４４】
図１３（ａ）に示すパターン１において、まず図示しない制御部は、第１のメモリブロック１９からアドレスｎに格納されたデータを読み出すとともに、第２のメモリブロック２１からアドレスｎ＋１に格納されたデータを読み出し、シフター１１とレジスタ２７に出力する。なお、アドレスｎに格納されたデータとはＩ０パートデータとＲ０パートデータの一部である。またアドレスｎ＋１に格納されたデータとはＲ０パートデータの一部と未使用データとＩ１パートデータである。
【００４５】
シフター１１は、アキュムレータ１５やメモリ１７から伝送されるデータを所定ビットシフトして位相の調整を行う。そして、その結果をＡＬＵ１３’に出力する。
【００４６】
図１４は本実施の形態に係るＡＬＵ１３’の内部構成を示す図である。図１４中、ＡとＢはシフター１１を介して第１及び第２のメモリブロック１９、２１から伝送されるデータ、Ｃはキャリー信号、Ｋは分割信号、Ｘは出力信号、ＦＡは加算演算回路である。
【００４７】
ＡＬＵ１３’は、シフター１１から伝送されるデータに対し、図示しない制御部から伝送される分割信号Ｋに基づいて、Ｉ０パートデータとＲ０パートデータの組合せによるデータ（以下、演算に供するデータという）と、それ以外のデータ（以下、演算に供しないデータという）とに分割し、演算に供するデータを取得する。なお、分割は分割信号Ｋが０のときに行われる。また演算に供するデータは図１４に示す出力信号Ｘに相当する。
【００４８】
次に、ＡＬＵ１３’は、アキュムレータ１５から、前回の、現在の演算処理のサイクルと同じサイクルにおける演算結果（以下、前回サイクルの演算結果という）を取得する。なお、前回サイクルの演算結果とは、ＩパートデータとＲパートデータの組合せによるデータである。そして、ＡＬＵ１３’は、シフター１１から取得した演算に供するデータとアキュムレータ１５から取得した前回サイクルの演算結果を用いて、上述のＤＭＦアルゴリズムによる演算を実行する。図１３（ａ）では、このときの演算結果を、Ｉ０’パートデータとＲ０’パートデータの組合せによるデータとして示している。
【００４９】
ＡＬＵ１３’は、演算結果をアキュムレータ１５に出力する。アキュムレータ１５はＡＬＵ１３’による演算結果を格納するとともに、演算結果を第１のルート２３に沿って混合回路２９に出力する。また、図示しない制御部の制御に基づいて所定のタイミングで演算結果を第２のルート２５に沿ってＡＬＵ１３’に出力する。
【００５０】
他方、レジスタ２７は、図示しない制御部の制御に基づいて、所定のタイミングでメモリ１７から伝送されたデータを第３のルート２３’に沿って混合回路２９に出力する。
【００５１】
混合回路２９は、図示しない制御部の制御に基づいて、第３のルート２３’に沿ってレジスタ２７から伝送されるデータを８ビット毎に分割し、その中の演算に供する部分（すなわち、第１のメモリブロック１９に格納されていた下位８ビットと上位８ビットのデータと、第２のメモリブロック２１に格納されていた下位８ビットのデータ）を、第１のルート２３に沿ってＡＬＵ１３’から伝送されるデータに置き換える。そして、これらに、演算に供しない部分（すなわち、第２のメモリブロック２１に格納されていた上位８ビットのデータ）を付加して出力データを生成し、それらをメモリ１７に出力する。
【００５２】
メモリ１７は、混合回路２９から伝送された出力データを元のアドレスに格納する。すなわち、出力データの下位１６ビットを第１のメモリブロック１９のアドレスｎに格納し、上位１６ビットを第２のメモリブロック２１のアドレスｎ＋１に格納する。
【００５３】
その結果、パターン１により、第１及び第２のメモリブロック１９、２１に格納されていたデータは、第２のメモリブロック２１に格納されていた上位８ビットだけが元の値のままで、それ以外が新たな値に更新される。
【００５４】
図１３（ｂ）に示すパターン２において、まず図示しない制御部は、第２のメモリブロック２１からアドレスｎ＋１に格納されたデータを読み出すとともに、第１のメモリブロック１９からアドレスｎ＋２に格納されたデータを読み出し、シフター１１とレジスタ２７に出力する。なお、アドレスｎ＋１に格納されたデータとはＲ０’パートデータの一部と未使用データとＩ１パートデータの一部である。またアドレスｎ＋２に格納されたデータとはＩ１パートデータの一部とＲ１パートデータの一部と未使用データである。
【００５５】
シフター１１は、アキュムレータ１５やメモリ１７から伝送されるデータを所定ビットシフトして位相の調整を行う。そして、その結果をＡＬＵ１３’に出力する。
【００５６】
ＡＬＵ１３’は、シフター１１から伝送されるデータに対し、分割信号Ｋに基づいて、演算に供するデータと演算に供しないデータとに分割し、演算に供するデータを取得する。
【００５７】
次に、ＡＬＵ１３’は、アキュムレータ１５から前回サイクルの演算結果を取得する。そして、ＡＬＵ１３’は、シフター１１から取得した演算に供するデータとアキュムレータ１５から取得した前回サイクルの演算結果を用いて、ＤＭＦアルゴリズムによる演算を実行する。図１３（ｂ）では、このときの演算結果を、Ｉ１’パートデータとＲ１’パートデータの組合せによるデータとして示している。
【００５８】
ＡＬＵ１３’は、演算結果をアキュムレータ１５に出力する。アキュムレータ１５はＡＬＵ１３’による演算結果を格納するとともに、演算結果を第１のルート２３に沿って混合回路２９に出力する。また、図示しない制御部の制御に基づいて所定のタイミングで演算結果を第２のルート２５に沿ってＡＬＵ１３’に出力する。
【００５９】
他方、レジスタ２７は、図示しない制御部の制御に基づいて、所定のタイミングでメモリ１７から伝送されたデータを第３のルート２３’に沿って混合回路２９に出力する。
【００６０】
混合回路２９は、図示しない制御部の制御に基づいて、第３のルート２３’に沿ってレジスタ２７から伝送されるデータを８ビット毎に分割し、その中の演算に供する部分（すなわち、第２のメモリブロック２１に格納されていた上位８ビットと、第１のメモリブロック１９に格納されていた上位８ビットと下位８ビットのデータ）を、第１のルート２３に沿ってＡＬＵ１３’から伝送されるデータに置き換える。そして、これらに、演算に供しない部分（すなわち、第２のメモリブロック２１に格納されていた下位８ビットのデータ）を付加して出力データを生成し、それらをメモリ１７に出力する。
【００６１】
メモリ１７は、混合回路２９から伝送される出力データを元のアドレスに格納する。すなわち、出力データの下位１６ビットを第２のメモリブロック２１のアドレスｎ＋１に格納し、上位１６ビットを第１のメモリブロック１９のアドレスｎ＋２に格納する。
【００６２】
その結果、パターン２により、第１及び第２のメモリブロック１９、２１に格納されていたデータは、第２のメモリブロック２１に格納されていた下位８ビットだけが元の値のままで、それ以外が新たな値に更新される。
【００６３】
図１３（ｃ）に示すパターン３において、まず図示しない制御部は、第２のメモリブロック２１からアドレスｎ＋３に格納されたデータを読み出すとともに、第１のメモリブロック１９からアドレスｎ＋４に格納されたデータを読み出し、シフター１１とレジスタ２７に出力する。なお、アドレスｎ＋３に格納されたデータとはＩ２パートデータとＲ２パートデータの一部である。またアドレスｎ＋４に格納されたデータとはＲ２パートデータの一部と未使用データとＩ３パートデータである。
【００６４】
シフター１１は、アキュムレータ１５やメモリ１７から伝送されるデータを所定ビットシフトして位相の調整を行う。そして、その結果をＡＬＵ１３’に出力する。
【００６５】
ＡＬＵ１３’は、シフター１１から伝送されるデータに対し、分割信号Ｋに基づいて、演算に供するデータと演算に供しないデータとに分割し、演算に供するデータを取得する。
【００６６】
次に、ＡＬＵ１３’は、アキュムレータ１５から前回サイクルの演算結果を取得する。そして、ＡＬＵ１３’は、シフター１１から取得した演算に供するデータとアキュムレータ１５から取得した前回サイクルの演算結果を用いて、ＤＭＦアルゴリズムによる演算を実行する。図１３（ｃ）では、このときの演算結果を、Ｉ２’パートデータとＲ２’パートデータの組合せによるデータとして示している。
【００６７】
ＡＬＵ１３’は、演算結果をアキュムレータ１５に出力する。アキュムレータ１５はＡＬＵ１３’による演算結果を格納するとともに、演算結果を第１のルート２３に沿って混合回路２９に出力する。また、図示しない制御部の制御に基づいて所定のタイミングで演算結果を第２のルート２５に沿ってＡＬＵ１３’に出力する。
【００６８】
他方、レジスタ２７は、図示しない制御部の制御に基づいて、所定のタイミングでメモリ１７から伝送されたデータを第３のルート２３’に沿って混合回路２９に出力する。
【００６９】
混合回路２９は、図示しない制御部の制御に基づいて、第３のルート２３’に沿ってレジスタ２７から伝送されるデータを８ビット毎に分割し、その中の演算に供する部分（すなわち、第２のメモリブロック２１に格納されていた下位８ビットと上位８ビットと、第１のメモリブロック１９に格納されていた下位８ビットのデータ）を、第１のルート２３に沿ってＡＬＵ１３’から伝送されるデータに置き換える。そして、これらに、演算に供しない部分（すなわち、第１のメモリブロック１９に格納されていた上位８ビットのデータ）を付加して出力データを生成し、それらをメモリ１７に出力する。
【００７０】
メモリ１７は、混合回路２９から伝送される出力データを元のアドレスに格納する。すなわち、出力データの下位１６ビットを第２のメモリブロック２１のアドレスｎ＋３に格納し、上位１６ビットを第１のメモリブロック１９のアドレスｎ＋４に格納する。
【００７１】
その結果、パターン３により、第１及び第２のメモリブロック１９、２１に格納されていたデータは、第１のメモリブロック１９に格納されていた上位８ビットだけが元の値のままで、それ以外が新たな値に更新される。
【００７２】
図１５は混合回路２９における出力データの遷移を示す図である。図１５中、左側の上段のＡｃｃ［２３：０］，Ｒｅｇ［７：０］と左側の下段のＲｅｇ［１５：８］，Ａｃｃ［２３：０］は、混合回路２９がＡｃｃ１５とレジスタ２７からの出力を混合することによって生成したデータである。また、右側のＯｕｔ［３１：０］は、混合回路２９がメモリ１７から読み出されたデータの元のアドレスに応じて左側の上段のＡｃｃ［２３：０］，Ｒｅｇ［７：０］または左側の下段のＲｅｇ［１５：８］，Ａｃｃ［２３：０］のいずれかを選択してメモリ１７に出力する出力データである。
【００７３】
ここで、Ａｃｃ［ｘ：ｙ］はアキュムレータ１５からのｘビット目からｙビット目の出力データを表現しており、Ｒｅｇ［ｘ：ｙ］はレジスタ２７からのｘビット目からｙビット目の出力データを表現している。例えばＡｃｃ［２３：０］，Ｒｅｇ［７：０］は、アキュムレータ１５からの０ビット目〜２３ビット目までの２４ビット幅の出力データとレジスタ２７からの０ビット目〜７ビット目までの８ビット幅の出力データの組合せを表現している。またＯｕｔ［ｘ：ｙ］は混合回路２９からのｘビット目からｙビット目の出力データを表現している。例えばＯｕｔ［３１：０］は混合回路２９からの０ビット目〜３１ビット目までの３２ビット幅の出力データを表現している。
【００７４】
なお、図示しない制御部は、一演算処理毎に、アドレス３８３のＩ２５５パートデータとＲ２５５パートデータに、次の遅延値Ｄ1の入力Ａ0を配置し、次の演算処理時において、アドレス３８３を新たなアドレス０と見なして処理を実行する。これは、メモリ１７のアドレス０とアドレス３８３がリング状に繋がっていると想定した場合に、基準点を１つ左に進めて処理することと同様になる。そのため、ＤＳＰは、簡易な制御で、演算に用いるデータを好適に出力することができるようになる。
【００７５】
このような制御について、図１６を用いて以下に詳述する。図１６はサイクリックなデータの配置を示す図である。図１６中、斜線を付した領域はデータの入力箇所を示している。
【００７６】
図示しない制御部は、メモリ１７のＤＭＦアルゴリズムによって定まる所定のアドレスに格納されたデータを、遅延値Ｄ1、Ｄ2、Ｄ3、Ｄ4、Ｄ5、Ｄ6、Ｄ7、Ｄ8の出力データとしてサイクリックに用いる。そして、一演算処理毎に、これらのデータは、各遅延値Ｄ1〜Ｄ8の出力データとして、上述のパターン１〜３によって演算された演算結果に更新される。なお、最終の遅延値Ｄ8の出力データは、次の演算処理時において、先頭の遅延値Ｄ0の入力データとなる。このようにして、図２２及び図２３に示すＤＭＦアルゴリズム１サイクルの演算処理が実行される。すると、図示しない制御部は、図１６に示す基準点の位置を所定量（ここでは１個）だけ左回りに移動させて、次の演算処理を実行する。このときの演算処理は、上述した動作と同様の動作となる。このようにして、図示しない制御部は、メモリ１７から各遅延値に対応する入出力を次々と容易に読み出すことができる。このような機能は、ＤＳＰに標準的に設けられているモデュロアドレッシングを利用することにより簡単に実現できる。
【００７７】
以下に、ＤＳＰ内部における各構成の動作について説明する。なお、ＡＬＵ１３’は、分割信号Ｋやレジスタ値に基づいて、キャリー信号Ｃを任意のビット位置で切断可能としている。本実施の形態では、ＡＬＵ１３’は、１０ビット幅で切断している。
【００７８】
メモリ１７に格納されたデータの構成が図１３（ａ）に示すパターン１の場合、ＤＳＰ内部における各構成は以下のように動作する。
【００７９】
まず、図示しない制御部は、第１のメモリブロック１９と第２のメモリブロック２１の所定のアドレスから合計３２ビット幅のデータを読み出し、シフター１１とレジスタ２７に出力する。シフター１１は、データをシフトせずに、そのままＡＬＵ１３’に出力する。また、レジスタ２７は、第１のメモリブロック１９と第２のメモリブロック２１の所定のアドレスから読み出されたデータを一時格納する。
【００８０】
この後、ＡＬＵ１３’は、演算処理を実行して、その演算結果をＡｃｃ0とＡｃｃ1に出力する。
【００８１】
Ａｃｃ0とＡｃｃ1は、演算結果を一時格納した後、それをシフター１１に出力する。シフター１１は、ＡＬＵ１３’を介して演算結果をそのままＡｃｃ0とＡｃｃ1に出力する。Ａｃｃ0とＡｃｃ1は、再び演算結果を一時格納する。
【００８２】
この後、レジスタ２７は格納していたデータを混合回路２９に出力するとともに、Ａｃｃ0とＡｃｃ1はＡＬＵ１３’による演算結果を混合回路２９に出力する。
【００８３】
次に、混合回路２９は、最下位ビット（ＬＳＢ）側の８ビットがレジスタ２７に格納されていたデータとなるように、レジスタ２７に格納されていたデータとＡｃｃ0とＡｃｃ1に格納されていたＡＬＵ１３’による演算結果とを混合し、その混合結果をメモリ１７に出力する。メモリ１７は、混合結果を第１のメモリブロック１９と第２のメモリブロック２１の元のアドレスに格納する。
【００８４】
メモリ１７に格納されたデータの構成が図１３（ｂ）に示すパターン２の場合、ＤＳＰ内部における各構成は以下のように動作する。
【００８５】
まず、図示しない制御部は、第２のメモリブロック２１と第１のメモリブロック１９の所定のアドレスから合計３２ビット幅のデータを読み出し、シフター１１とレジスタ２７に出力する。シフター１１は、データを右に８ビットシフトしてＡＬＵ１３’に出力する。また、レジスタ２７は、第２のメモリブロック２１と第１のメモリブロック１９の所定のアドレスから読み出されたデータを一時格納する。
【００８６】
この後、ＡＬＵ１３’は、演算処理を実行して、その演算結果をＡｃｃ0とＡｃｃ1に出力する。Ａｃｃ0とＡｃｃ1は、演算結果を一時格納した後、それをシフター１１に出力する。シフター１１は、演算結果を左に８ビットシフトしてＡＬＵ１３’を介してＡｃｃ0とＡｃｃ1に出力する。Ａｃｃ0とＡｃｃ1は、左に８ビットシフトされたＡＬＵ１３’による演算結果を一時格納する。
【００８７】
この後、レジスタ２７は格納していたデータを混合回路２９に出力するとともに、Ａｃｃ0とＡｃｃ1は左に８ビットシフトされたＡＬＵ１３’による演算結果を混合回路２９に出力する。
【００８８】
次に、混合回路２９は、最上位ビット（ＭＳＢ）側の８ビットがレジスタ２７に格納されていたデータとなるように、レジスタ２７に格納されていたデータとＡｃｃ0とＡｃｃ1に格納されていたＡＬＵ１３’による演算結果とを混合し、その混合結果をメモリ１７に出力する。メモリ１７は、混合結果を第２のメモリブロック２１と第１のメモリブロック１９の元のアドレスに格納する。
【００８９】
メモリ１７に格納されたデータの構成が図１３（ｃ）に示すパターン３の場合、ＤＳＰ内部における各構成は以下のように動作する。
【００９０】
まず、図示しない制御部は、第２のメモリブロック２１と第１のメモリブロック１９の所定のアドレスから合計３２ビット幅のデータを読み出し、シフター１１とレジスタ２７に出力する。シフター１１は、データをシフトせずに、そのままＡＬＵ１３’に出力する。また、レジスタ２７は、第２のメモリブロック２１と第１のメモリブロック１９の所定のアドレスから読み出されたデータを一時格納する。
【００９１】
この後、ＡＬＵ１３’は、演算処理を実行して、その演算結果をＡｃｃ0とＡｃｃ1に出力する。Ａｃｃ0とＡｃｃ1は、演算結果を一時格納した後、それをシフター１１に出力する。シフター１１は、ＡＬＵ１３’を介して演算結果をそのままＡｃｃ0とＡｃｃ1に出力する。Ａｃｃ0とＡｃｃ1は、再び演算結果を一時格納する。
【００９２】
この後、レジスタ２７は格納していたデータを混合回路２９に出力するとともに、Ａｃｃ0とＡｃｃ1はＡＬＵ１３’による演算結果を混合回路２９に出力する。
【００９３】
次に、混合回路２９は、最下位ビット（ＬＳＢ）側の８ビットがレジスタ２７に格納されていたデータとなるように、レジスタ２７に格納されていたデータとＡｃｃ0とＡｃｃ1に格納されていたＡＬＵ１３’による演算結果とを混合し、その混合結果をメモリ１７に出力する。メモリ１７は、混合結果を第２のメモリブロック２１と第１のメモリブロック１９の元のアドレスに格納する。
【００９４】
以下に、ＡＬＵ１３’内部における演算過程を説明する。図１７と図１８はＤＭＦアルゴリズムの概要を示す図である。図１７と図１８において括弧でくくる部分の演算過程を一例として詳述する。
【００９５】
まず、図示しない制御部は、第１のメモリブロック１９と第２のメモリブロック２１のアドレス０と１から合計３２ビット幅のデータを読み出し、シフター１１とレジスタ２７に出力する。シフター１１は、データをシフトせずに、そのままＡＬＵ１３’に出力する。また、レジスタ２７は、第１のメモリブロック１９と第２のメモリブロック２１のアドレス０と１から読み出されたデータを一時格納する。この後、ＡＬＵ１３’は、演算処理を実行する。
【００９６】
その際に、まず、図示しない制御部がデータの構成に基づいて分割信号Ｋを生成し、ＡＬＵ１３’は分割信号Ｋに基づいて第１のメモリブロック１９と第２のメモリブロック２１のアドレス０と１から読み出されたデータを分割して入力Ａ0を取得する。次に、ＡＬＵ１３’は、図１７に示すように、Ａ1、Ｂ1、Ｃ1、Ｃ1’を算出する。これらの値は、図２４〜図２７に示す通りである。このようにして算出された演算結果は、図１７に示すＤＭＦアルゴリズムの概要を示す図の上の段によるもの（例えばＣ1）がアキュムレータ１５のＡｃｃ1に格納され、下の段によるもの（例えばＢ1、Ｃ1’）がアキュムレータ１５のＡｃｃ0に格納される。このようにして演算結果は、アキュムレータ１５のＡｃｃ0及びＡｃｃ1に格納される。
【００９７】
特に、演算結果Ｃ1は、アキュムレータ１５のＡｃｃ0及びＡｃｃ1に格納された遅延値Ｄ1に対応するデータの最後に上書きで書き込まれる。そして、演算結果Ｃ1は、データＤ1とデータＤ2が連続しているため、次の遅延値Ｄ2の入力データとなる。
【００９８】
なお、第１のメモリブロック１９と第２のメモリブロック２１のアドレス０と１から読み出されたデータのうち、演算に供しない部分は、レジスタ２７に格納されている。この部分は、混合回路２９によって演算結果と混合される。混合回路２９は、その混合結果をメモリ１７に出力し、第１のメモリブロック１９と第２のメモリブロック２１のアドレス０と１に格納させる。そのため、本実施の形態は、演算に供しない部分を演算するための時間を必要とせずに、簡易に出力データを生成することができる。また、上書き時に未使用データをそのまま書き出すこともできる。
【００９９】
次に、ＡＬＵ１３’は、図１８に示すように、Ａ2、Ｂ2、Ｃ2、Ｃ2’を算出する。これらの値は、図２４〜図２７に示す通りである。このようにして算出された演算結果は、図１８に示すＤＭＦアルゴリズムの概要を示す図の上の段によるもの（例えばＣ2）がアキュムレータ１５のＡｃｃ1に格納され、下の段によるもの（例えばＢ2、Ｃ2’）がアキュムレータ１５のＡｃｃ0に格納される。このようにして演算結果は、アキュムレータ１５のＡｃｃ0及びＡｃｃ1に格納される。
【０１００】
特に、演算結果Ｃ2は、アキュムレータ１５のＡｃｃ0及びＡｃｃ1に格納された遅延値Ｄ2に対応するデータの最後に上書きで書き込まれる。そして、演算結果Ｃ2は、データＤ2とデータＤ3が連続しているため、次の遅延値Ｄ3の入力データとなる。
【０１０１】
このようにして、ＡＬＵ１３’は、同様の演算を連続して実行し、最終的な演算結果を得る。
【０１０２】
その後、図示しない制御部は、図１６に示す基準点の位置を、１個だけ左回りに移動させ、メモリ１７に格納するデータをサイクリックに１個前進した形にして、次の演算処理を実行する。
【０１０３】
以上詳細に説明したように、本発明は、所定ビット幅のレジスタ２７と混合回路２９を設けるだけで、ＤＭＦ処理における使用メモリ量を低減できるという効果を有する。そのため、例えば第３世代携帯電話に用いられるＤＳＰに適用した場合に、メモリ量を、５１０ワードから３８４ワードに、すなわち、１２６ワード分低減をさせることができる。
【０１０４】
しかも、本発明は、大幅な回路の増大がないので、極めて少ないコストでこのような効果を達成できる。
【０１０５】
本発明は上述の実施の形態に限定されることなく、本発明の要旨を逸脱しない範囲で種々の応用及び変形が考えられる。例えば、本実施の形態においては、メモリ１７を３２ビット幅のメモリによって構成してもよい。また、本発明は、ＤＳＰだけでなく、９〜１２ビット幅を有するデータの処理を行う機器に対しても適用することができる。
【図面の簡単な説明】
【０１０６】
【図１】本発明に係る演算装置の構成を示す図である。
【図２】２つのメモリブロックに格納されるデータの配置を示す図である。
【図３】２つのメモリブロックに格納されるデータの配置を示す図である。
【図４】２つのメモリブロックに格納されるデータの配置を示す図である。
【図５】２つのメモリブロックに格納されるデータの配置を示す図である。
【図６】２つのメモリブロックに格納されるデータの配置を示す図である。
【図７】２つのメモリブロックに格納されるデータの配置を示す図である。
【図８】２つのメモリブロックに格納されるデータの配置を示す図である。
【図９】２つのメモリブロックに格納されるデータの配置を示す図である。
【図１０】２つのメモリブロックに格納されるデータの配置を示す図である。
【図１１】２つのメモリブロックに格納されるデータの配置を示す図である。
【図１２】２つのメモリブロックに格納されるデータの配置を示す図である。
【図１３】２つのメモリブロックに格納されるデータの遷移過程を示す図である。
【図１４】本実施の形態に係るＡＬＵの内部構成を示す図である。
【図１５】混合回路における出力の遷移を示す図である。
【図１６】サイクリックなデータの配置を示す図である。
【図１７】ＤＭＦアルゴリズムの概要を示す図である。
【図１８】ＤＭＦアルゴリズムの概要を示す図である。
【図１９】従来の演算装置の構成を示す図である。
【図２０】２つのメモリブロックに格納されるデータの配置を示す図である。
【図２１】２つのメモリブロックに格納されるデータの配置を示す図である。
【図２２】ＤＭＦアルゴリズムの概要を示す図である。
【図２３】ＤＭＦアルゴリズムの概要を示す図である。
【図２４】ＤＭＦアルゴリズムの算術式を示す図表である。
【図２５】ＤＭＦアルゴリズムの算術式を示す図表である。
【図２６】ＤＭＦアルゴリズムの算術式を示す図表である。
【図２７】ＤＭＦアルゴリズムの算術式を示す図表である。
【符号の説明】
【０１０７】
１１  シフター
１３’  ＡＬＵ
１５  アキュムレータ
１７  メモリ
１９  第１のメモリブロック
２１  第２のメモリブロック
２３  第１のルート
２３’  第３のルート
２５  第２のルート
２７  レジスタ
２９  混合回路
【図１】
0003722821.tif 000002
【図２】
0003722821.tif 000003
【図３】
0003722821.tif 000004
【図４】
0003722821.tif 000005
【図５】
0003722821.tif 000006
【図６】
0003722821.tif 000007
【図７】
0003722821.tif 000008
【図８】
0003722821.tif 000009
【図９】
0003722821.tif 000010
【図１０】
0003722821.tif 000011
【図１１】
0003722821.tif 000012
【図１２】
0003722821.tif 000013
【図１３】
0003722821.tif 000014
【図１４】
0003722821.tif 000015
【図１５】
0003722821.tif 000016
【図１６】
0003722821.tif 000017
【図１７】
0003722821.tif 000018
【図１８】
0003722821.tif 000019
【図１９】
0003722821.tif 000020
【図２０】
0003722821.tif 000021
【図２１】
0003722821.tif 000022
【図２２】
0003722821.tif 000023
【図２３】
0003722821.tif 000024
【図２４】
0003722821.tif 000025
【図２５】
0003722821.tif 000026
【図２６】
0003722821.tif 000027
【図２７】
0003722821.tif 000028