(57)【要約】ベクトルの高速直交変換を多段階で実施する、再構成可能なアーキテクチャおよび方法であって、ベクトルのサイズはＮであり、Ｎは変化してよく、段階の数はＮの関数であり、アーキテクチャは、１つまたは複数のバタフライ・ユニットを含むように構成され配置された計算ユニット（１８２）と、計算ユニットの出力に結合され、変換の少なくとも１つの段階向けのバタフライ演算をすべて実施するように構成され配置された１つまたは複数の乗算器（１８４）を含むブロックと、各バタフライ演算を実施する計算ユニットによる使用のために、バタフライ演算の中間結果および所定の係数を格納するように構成され配置された記憶ユニット（１８０）であって、メモリおよび多重化アーキテクチャを（１８０）含む記憶ユニットとを含む。
2008506191.tif 000002
【特許請求の範囲】
【請求項１】
ベクトルの高速直交変換を多段階で実施する、再構成可能なアーキテクチャであって、ベクトルのサイズがＮであり、Ｎは変化してよく、段階の数がＮの関数であり、
１つまたは複数のバタフライ・ユニットを含むように構成され配置された計算ユニットと、
前記計算ユニットの出力に結合され、前記変換の少なくとも１つの段階向けの前記バタフライ演算をすべて実施するように構成され配置された１つまたは複数の乗算器を含むブロックと、
各バタフライ演算を実施する前記計算ユニットによる使用のために、前記バタフライ演算の中間結果および所定の係数を格納するように構成され配置された記憶ユニットであって、メモリおよび多重化アーキテクチャを含む前記記憶ユニットと、前記変換の前記バタフライ演算すべてを、前記段階用にただ１つの計算ユニットが必要とされるように前記一段階向けの前記計算ユニットを使って時分割するように構成され配置されたマルチプレクサ・ユニットと、
前記計算ユニットに係数を与え、前記記憶ユニット内のメモリのサイズおよび多重化アーキテクチャを制御するように構成され配置されたコントローラとを備え、
各段階用の、前記乗算器の係数、前記計算ユニットの前記係数、メモリのサイズ、および多重化アーキテクチャが、Ｎの値に応じて修正される、再構成可能なアーキテクチャ。
【請求項２】
前記バタフライ・ユニットが、Ｒａｄｉｘ２、Ｒａｄｉｘ２２、Ｒａｄｉｘ２３、Ｒａｄｉｘ４、またはＲａｄｉｘ８のアーキテクチャの１つで構成される、請求項１に記載の再構成可能なアーキテクチャ。
【請求項３】
前記メモリ・レジスタがＦＩＦＯシフト・レジスタである、請求項１に記載の再構成可能なアーキテクチャ。
【請求項４】
前記メモリ・レジスタの長さが、前記変換の前記段階の関数である、請求項１に記載の再構成可能なアーキテクチャ。
【請求項５】
前記メモリ・レジスタの長さが、各後続段階と共に減少する、請求項１に記載の再構成可能なアーキテクチャ。
【請求項６】
前記メモリ・レジスタの長さが、Ｎの値に応じて各段階ごとに調整される、請求項５に記載の再構成可能なアーキテクチャ。
【請求項７】
前記マルチプレクサ・ユニットが、前記計算ユニットへの入力／出力ブロックを含む、請求項６に記載の再構成可能なアーキテクチャ。
【請求項８】
Ｎが、事前定義された範囲内で変化し、事前定義された範囲全体に入力サンプル・レートでのクロッキング周波数を提供するように構成され配置されたクロック・ユニットをさらに含む、請求項１に記載の再構成可能なアーキテクチャ。
【請求項９】
前記アーキテクチャが、前記事前定義された範囲Ｍ全体が、ハードウェアに対する事前定義された範囲の前記変換をマップし、前記変換がＭ未満のときは不必要な計算ユニットを無効にすることによって調節されるように、前記ハードウェアとして配置された多数の計算ユニットを含む、請求項８に記載の再構成可能なアーキテクチャ。
【請求項１０】
前記アーキテクチャが、前記事前定義された範囲Ｍ全体より小さい「ｍ」が調節されるように、ハードウェアとして配置された多数の計算ユニットを含み、前記段階が、「ｍ」より大きい変換用の、少なくとも部分的に共有されたハードウェアである、請求項８に記載の再構成可能なアーキテクチャ。
【請求項１１】
各段階が、Ｎ／２回の計算を必要とする、請求項１に記載の再構成可能なアーキテクチャ。
【請求項１２】
複数の計算ユニットをさらに含み、１つが前記段階それぞれ用であり、前記計算ユニットが、パイプライン型アーキテクチャを提供するように実装される、請求項１に記載の再構成可能なアーキテクチャ。
【請求項１３】
複数の計算ユニットをさらに含み、１つが前記段階それぞれ用であり、前記計算ユニットが、パイプライン型、反復および並列のタイプの１つまたは複数で構成されたアーキテクチャを提供するように実装される、請求項１に記載の再構成可能なアーキテクチャ。
【請求項１４】
前記変換のフル・フレームが、Ｎクロック周期中で実装される、請求項１に記載の再構成可能なアーキテクチャ。
【請求項１５】
前記バタフライ・ユニットが、Ｒａｄｉｘ２アーキテクチャを含む、請求項１に記載の再構成可能なアーキテクチャ。
【請求項１６】
前記バタフライ・ユニットが、Ｒａｄｉｘ４アーキテクチャを含む、請求項１に記載の再構成可能なアーキテクチャ。
【請求項１７】
前記変換のフル・フレームが、Ｎ／２クロック周期中で実施される、請求項１６に記載の再構成可能なアーキテクチャ。
【請求項１８】
変換アクセラレータをさらに含み、前記アクセラレータが、前記計算ユニット、記憶ユニット、およびマルチプレクサ・ユニットを含み、前記アクセラレータが、前記段階すべてに対する各バタフライ演算を、反復プロセスで実施するように構成され配置された、請求項１に記載の再構成可能なアーキテクチャ。
【請求項１９】
前記記憶ユニットが、フィルタ係数を含むように構成され配置され、前記変換の最終段階の前記計算ユニットの前記乗算器が、最終段階の出力を、フィルタリングされた出力を生じるように前記フィルタ係数の１つまたは複数で乗算するように適合される、請求項１に記載の再構成可能なアーキテクチャ。
【請求項２０】
前記フィルタリングされた出力が、直交変換の逆である変換の多段階の入力に加えられ、前記段階がそれぞれ、計算ユニットを含み、前記ユニットが、パイプライン型アーキテクチャを形成する、請求項１９に記載の再構成可能なアーキテクチャ。
【請求項２１】
前記変換が高速フーリエ変換である、請求項１に記載の再構成可能なアーキテクチャ。
【請求項２２】
前記高速フーリエ変換が、異なるｒａｄｉｘを含む、請求項２１に記載の再構成可能なアーキテクチャ。
【請求項２３】
前記ベクトルが、実数ベクトルおよび複素ベクトル両方を含む、請求項１に記載の再構成可能なアーキテクチャ。
【請求項２４】
前記変換がウォルシュ直交変換を含む、請求項１に記載の再構成可能なアーキテクチャ。
【請求項２５】
ベクトルの高速直交変換を多段階で実施する、再構成可能なアーキテクチャを備える集積チップであって、ベクトルのサイズがＮであり、Ｎは変化してよく、段階の数がＮの関数であり、前記アーキテクチャが、
１つまたは複数のバタフライ・ユニットを含むように構成され配置された計算ユニットと、
前記計算ユニットの出力に結合され、前記変換の少なくとも１つの段階向けの前記バタフライ演算をすべて実施するように構成され配置された１つまたは複数の乗算器を含むブロックと、
各バタフライ演算を実施する前記計算ユニットによる使用のために、前記バタフライ演算の中間結果および所定の係数を格納するように構成され配置された記憶ユニットであって、メモリおよび多重化アーキテクチャを含む前記記憶ユニットと、
メモリおよび多重化アーキテクチャを含む前記記憶ユニットと、
前記変換の前記バタフライ演算すべてを、前記段階用にただ１つの計算ユニットが必要とされるように前記一段階向けの前記計算ユニットを使って時分割するように構成され配置されたマルチプレクサ・ユニットと、
前記計算ユニットに係数を与え、前記記憶ユニット内のメモリのサイズおよび多重化アーキテクチャを制御するように構成され配置されたコントローラとを備え、
各段階用の、前記乗算器の係数、前記計算ユニットの前記係数、メモリのサイズ、および多重化アーキテクチャが、Ｎの値に応じて修正される集積チップ。
【請求項２６】
請求項２５に記載の集積チップを含む通信システム。
【請求項２７】
前記ベクトルのサイズを判定する検出装置をさらに備える、請求項２６に記載の通信システム。
【請求項２８】
ベクトルの高速直交変換を多段階で実施する方法であって、ベクトルのサイズがＮであり、Ｎは変化してよく、段階の数がＮの関数であり、
計算ユニットを、１つまたは複数のバタフライ・ユニットを含むように、ブロックを、前記計算ユニットの出力に結合された１つまたは複数の乗算器を含むように構成し配列し、前記１つまたは複数のバタフライ・ユニットおよび１つまたは複数の乗算器を、前記変換の少なくとも１つの段階向けの前記バタフライ演算をすべて実施するように構成し配列すること、
各バタフライ演算を実施する前記計算ユニットによる使用のために、前記バタフライ演算の中間結果および所定の係数を記憶ユニットに格納することであって、前記記憶ユニットは、メモリおよび多重化アーキテクチャを含むこと、
前記変換の前記バタフライ演算すべてを、前記段階用にただ１つの計算ユニットが必要とされるように前記一段階向けの前記計算ユニットを使って時分割すること、ならびに
前記計算ユニットに係数を与え、前記記憶ユニット内のメモリのサイズおよび多重化アーキテクチャを制御することを含み、
各段階用の、前記乗算器の係数、前記計算ユニットの前記係数、メモリのサイズ、および多重化アーキテクチャが、Ｎの値に応じて修正される方法。
【請求項２９】
ベクトルの高速直交変換を多段階で実施する方法であって、ベクトルのサイズがＮであり、Ｎは変化してよく、段階の数がＮの関数であり、
前記計算ユニットが、前記変換の少なくとも１つの段階向けの前記バタフライ演算すべてを実施することができるように、少なくとも１つの計算ユニットを、少なくとも１つのバタフライ・ユニットおよび前記バタフライ・ユニットの出力に結合された乗算器を含むように構成し配列することができるように構成され配置された、再構成可能な一群のバタフライ・ユニットおよび再構成可能な１組の乗算器、ならびに前記バタフライ演算の中間結果および各バタフライ演算の実施において使用するための所定の係数を格納するように前記計算ユニットに結合された再構成可能なメモリを使用することを含み、
各段階用の係数およびメモリのサイズが、Ｎの値に応じて修正される方法。
【請求項３０】
ベクトルの高速直交変換を多段階で実施するシステムであって、ベクトルのサイズがＮであり、Ｎは変化してよく、段階の数がＮの関数であり、
前記計算ユニットが、前記変換の少なくとも１つの段階向けの前記バタフライ演算すべてを実施することができるように、少なくとも１つの計算ユニットを、少なくとも１つのバタフライ・ユニットおよび前記バタフライ・ユニットの出力に結合された乗算器を含むように構成し配列することができるように構成され配置された、再構成可能な一群のバタフライ・ユニットおよび再構成可能な１組の乗算器、ならびに前記バタフライ演算の中間結果および各バタフライ演算の実施において使用するための所定の係数を格納するように前記計算ユニットに結合された再構成可能なメモリを使用することを含み、
各段階用の係数およびメモリのサイズが、Ｎの値に応じて修正されるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、以下の優先権を主張するものである。
２００４年７月８日に出願した「Ｌｏｗ−Ｐｏｗｅｒ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｏｆ  Ｄｉｓｔｉｎｃｔ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｄｓ」という名称の米国特許仮出願第６０／５８６，３９０号（整理番号６６９４０−０１６）、
２００４年７月８日に出願した「Ｍｅｔｈｏｄ  ａｎｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｏｆ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｍａｔｒｉｘ−Ｖｅｃｔｏｒ  Ｃｏｍｐｕｔａｔｉｏｎｓ」という名称の米国特許仮出願第６０／５８６，３９１号（整理番号６６９４０−０１７）、
２００４年７月８日に出願した「Ｍｅｔｈｏｄ  ａｎｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｏｆ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｏｒｔｈｏｇｏｎａｌ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ」という名称の米国特許仮出願第６０／５８６，３８９号（整理番号６６９４０−０１８）、
２００４年７月８日に出願した「Ｍｅｔｈｏｄ  ａｎｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｏｆ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｔｒｅｌｌｉｓ−Ｔｙｐｅ  Ｃｏｄｉｎｇ」という名称の米国特許仮出願第６０／５８６，３５３号（整理番号６６９４０−０１９）、
２００４年８月２５日に出願した「Ａ  Ｍｅｔｈｏｄ  Ａｎｄ  Ｄｅｖｉｃｅ  Ｆｏｒ  Ｏｎ−ｌｉｎｅ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｖｉｔｔｅｒ  Ｄｅｃｏｄｉｎｇ  Ｏｆ  Ｒｅｃｕｒｓｉｖｅ  Ａｎｄ  Ｎｏｎ−ｒｅｃｕｒｓｉｖｅ  Ｓｙｓｔｅｍａｔｉｃ  Ｃｏｎｖｏｌｕｔｉｏｎ  Ｃｏｄｅｓ  Ｗｉｔｈ  Ｖａｒｙｉｎｇ  Ｐａｒａｍｅｔｅｒｓ」という名称の米国特許仮出願第６０／６０４，２５８号（整理番号６６９４０−０２０）、ならびに
２００５年３月３日に出願した「Ｌｏｗ−Ｐｏｗｅｒ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｆｏｒ  Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  Ｏｆ  Ｄｉｓｔｉｎｃｔ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｄｓ」という名称の米国特許出願第１１／０７１，３４０号（整理番号６６９４０−０２１）。
【０００２】
本開示は、たとえばＦＦＴ／ＩＦＦＴ（逆ＦＦＴ）変換、ウォルシュ／アダマール変換など、およびこのような変換の複数のタイプの組合せを含む、変動サイズのベクトルの直交変換の実施を可能にするように、ハードウェアのオンライン再構成可能性を提供するシステムおよび方法に関する。本システムおよび方法は、このような変換を用いる通信装置において特に有用である。
【背景技術】
【０００３】
一般的な直交変換は、ワイヤレス通信システムにおいて伝送される情報をエンコードする際の強力なツールを提供し、このような変換の様々なものが、情報を伝送するのに使われるプロトコルに応じて用いられる。たとえば、ＦＦＴ（高速フーリエ変換）／ＩＦＦＴ（逆ＦＦＴ）は、たとえばＯＦＤＭシステムおよびフィルタ・バンクにおけるクリティカル計算ブロックである。たとえば、Ｎ．Ｗｅｓｔ、Ｄ．Ｊ．Ｓｋｅｌｌｅｒｎの「ＶＬＳＩ  ｆｏｒ  ＯＦＤＭ」（ＩＥＥＥ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｍａｇａｚｉｎｅ、１２７〜３１頁、ｖｏｌ．３６、（ｎｏ．１０）、１９９８年１０月）、およびＲ．ｖａｎ  Ｎｅｅ及びＲ．Ｐｒａｓａｄの「ＯＦＤＭ  ｆｏｒ  Ｗｉｒｅｌｅｓｓ  Ｍｕｌｔｉｍｅｄｉａ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ」（Ａｒｔｅｃｈ  Ｈｏｕｓｅ  Ｐｕｂｌｉｓｈｅｒｓ、２０００年）を参照されたい。
【０００４】
ＦＦＴ／ＩＦＦＴの魅力的な特徴は、ＩＦＦＴが、ＦＦＴブロックを使って、ＦＦＴの入力および出力を結合させ、処理されたベクトルのサイズで出力を割ることによって実施することができることである。したがって、同じハードウェアを、ＦＦＴおよびＩＦＦＴ両方に使うことができる。ＦＦＴ／ＩＦＦＴを実施するいくつかの標準実装形態が公知であり、その一部は、再構成可能性をもたらす。ある標準ＦＦＴ／ＩＦＦＴ実装形態は、ＦＦＴカーネル演算を用いている。
【０００５】
ＦＦＴカーネル演算
ＮポイントＤＦＴ（離散フーリエ変換）（たとえば、Ａ．Ｖ．Ｏｐｐｅｎｈｅｉｍ及びＲ．Ｗ．Ｓｃｈａｆｅｒの「Ｄｉｓｃｒｅｔｅ−Ｔｉｍｅ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ」（Ｐｒｅｎｔｉｃｅ  Ｈｉｌｌ、Ｎｅｗ  Ｊｅｒｓｅｙ、１９８９）を参照されたい）のデジタル計算は、
【数１】
2008506191.tif 000003
であり、上式で、複素指数係数は、
【数２】
2008506191.tif 000004
である。
【０００６】
（全ｋに対する）ＤＦＴの直接計算は、Ｎ×Ｎ乗算およびＮ×（Ｎ−１）加算を必要とする。ＦＦＴアルゴリズムは、乗算の回数をＮｌｏｇ２Ｎに削減する、より効率的な実装である。基本的な考え方は、長さＮのＦＦＴを、長さＮ／２の２つのＦＦＴ構成要素に分割することであり、次いで、こうした構成要素はそれぞれ、長さＮ／２の２つのＦＦＴ構成要素にさらに分割され、以下同様に続く。このプロセスは、各ＦＦＴ構成要素の長さが２に減じられるまで継続し、この長さは、いわゆる「バタフライ」ユニットによって直接計算することができる。このようなバタフライ・ユニットのトレリスを、図１に示してある。
一般的に使われる他の２つのＦＦＴアルゴリズムは、周波数分割（ＤＩＦ）および時間分割（ＤＩＴ）アルゴリズムであり、この２つは、性質が似ている。ＤＩＦアルゴリズムは、ＦＦＴ中間結果が、
【数３】
2008506191.tif 000005
および同様に、
【数４】
2008506191.tif 000006
を有する偶部および奇部に分割されるアーキテクチャの実装を示すのに用いられる。
【０００７】
標準実装
標準的な従来技術の手法において、関数特有の再構成可能性を実現するためには、計算構造を分析することが第１に必要である。ＦＦＴは、バタフライ・ブロックからなる、シャッフル交換相互連結ネットワークと見なすことができ、このネットワークは、ＦＦＴのサイズと共に変化し、したがって、最もエネルギー効率がよい完全並列実装の柔軟性のサポートを困難にする。完全並列実装において、シグナル・フロー・グラフは、ハードウェア上に直接マップすることができる。たとえば、１６ポイントＦＦＴの場合、合計で３２個のバタフライ・ユニットがあり、こうしたユニットは、図２のトレリスで示すように相互連結される。概して、ＮポイントＦＦＴは、（Ｎ／２）ｌｏｇ２Ｎ個のバタフライ・ユニットを必要とする。この最大並列アーキテクチャには、高性能および低電力消費の可能性があるが、特に大きいＦＦＴサイズに対しては、コストが高い、大きいシリコン域をもっている。
【０００８】
ＤＩＦ  ＦＦＴによって生成された出力は、ビットを逆順にされる。たとえば、
Ｘ［１０］＝Ｘ［１０１０２］＝Ｙ［０１０１２］＝Ｙ［５］
となる。
【０００９】
実装が、固定小数点演算で行われるとき、スケーリングおよびオーバーフローを扱うことは、変換器の正しい挙動にとって不可欠である。ＦＦＴの各段階でのバタフライ演算は、複素加算および複素乗算両方を伴う。各複素加算は、２回の実数加算からなり、こうした加算は、入力ワード長を１ビットだけ拡張する。各複素乗算は、４回の実数乗算および２回の実数加算からなる。実数乗算は、入力ワード長を２倍にする。このように、正しい挙動を確実にするために、出力ワード長が（Ｍ＋１）ビットまで増加されるか、あるいは出力が、Ｍビットまで切り捨てられ、または丸められる必要がある。切捨てが実施される場合、出力の最上位ビットは、Ｍビットで記述することができる最大値まで値を切り捨てることによって破棄されるに過ぎない。丸めが実施される場合、出力が右に１ビットだけシフトされ、最下位ビットが破棄される前に、最初に「１」が正の出力に加算される。最大数および最小数（ａ＋ｂ）は、その最下位ビットを、加算の後でゼロ（偶数）にさせるので、丸めは、加算器のオーバーフローを引き起こさない。丸めの後、出力は、ａおよびｂと同じ範囲、たとえばＭビット内にある。
【００１０】
列ベースの手法
列ベースのＦＦＴアーキテクチャにおいて、計算は、相互連結が、図３のトレリスで示されるすべての段階において同一に保たれるように再構成される。バタフライへの入力は、出力が演算されるともはや必要とされないので、出力は、同じバタフライの入力に経路指定することができ、同じバタフライはしたがって、反復方式で次および後続の段階用に再利用される（インプレース計算）。その結果、ただ一列のバタフライが必要とされ、この列は、異なる計算段階によって再利用される（時分割される）。ただし、ＦＦＴ係数は、段階ごとに変更される必要がある。概して、ＮポイントＦＦＴは、Ｎ／２個のバタフライ・ユニットを必要とし、たとえば８個のバタフライが、１６ポイントＦＦＴ用に必要とされる。その電力消費は、完全並列アーキテクチャに非常に近いが、より小さい区域を必要とする。再構成可能な設計にさらに変換することは、単純な反復構造が特定のサイズ向けに最適化されるので、複雑なタスクである。並列から列ベースの実装への転換は、ＦＦＴフレームを処理するより多くのクロックを必要とする。実際、並列手法は、１クロック・サイクルでのフルＦＦＴフレームの処理を可能にするが、列手法は、反復時分割構造により、ｌｏｇ２Ｎ個（ｒａｄｉｘ−２ベースのバタフライ・アーキテクチャを用いるとき）のクロック周期を必要とする。
【００１１】
再構成可能な設計
ＦＦＴアルゴリズムを稼動するために正規のパイプライン型アーキテクチャを選ぶことによって、ＦＦＴ変換の計算量の標準下方境界によって提供されるものと比較してもエネルギー・オーバーヘッドが非常に低い、再構成可能な設計を実装することが可能である。
【００１２】
パイプライン型手法
正規のパイプライン型アーキテクチャでは、ただ１つのバタフライ・ユニットが各段階ごとに使われ、完全並列手法での（Ｎ／２）ｌｏｇ２Ｎおよび列ベースの手法でのＮ／２と比較して、合計でｌｏｇ２Ｎの計算量となる。１６ポイントＦＦＴの長さに対するパイプライン手法の例を、図４に示してある。各段階４２ａ、４２ｂおよび４２ｃの乗算器４０は、ハードウェア要件同士を区別するために、バタフライ・ユニット４４ａ、４４ｂおよび４４ｃとは区別される。バタフライ・ユニット４４ａ、４４ｂ、４４ｃおよび４４ｄはそれぞれ、各段階ごとのＮ／２回のバタフライ演算の中で時分割される。バタフライ・ユニット４４ｃを含む段階の場合、乗算器４０ｃは「ｊ」である。最後のバタフライ・ユニット４４ｄの外には、乗算器は必要ない。パイプライン型ベースの実装は、列ベースの手法よりも、ＦＦＴフレームごとに、より多くのクロック周期を必要とする。というのは、パイプライン型ベースの手法は、Ｎ（ｒａｄｉｘ−２ベースのバタフライ・アーキテクチャを用いるとき）クロック周期中にフルＦＦＴフレームを実装することができ、列手法は、反復時分割構造により、ｌｏｇ２Ｎ（ｒａｄｉｘ−２ベースのバタフライ・アーキテクチャを用いるとき）クロック周期を必要とするからである。全段階のハードウェア実装において、ＦＦＴフレームを処理するクロック数は、障害とはならない。というのは、データは、直列に１フレームずつ挿入され、フレームごとのクロック周期数は、スループットが高いまま、一定の初期遅延に変換されるからである。
【００１３】
単一パス遅延フィードバック（ＳＤＦ）実装については、たとえば、Ｅ．Ｈ．Ｗａｌｄ及びＡ．Ｍ．Ｄｅｓｐａｉｎの「Ｐｉｐｅｌｉｎｅｄ  ａｎｄ  ｐａｒａｌｌｅｌ−ｐｉｐｅｌｉｎｅ  ＦＦＴ  ｐｒｏｃｅｓｓｏｒｓ  ｆｏｒ  ＶＬＳＩ  ｉｍｐｌｅｍｅｎｔａｔｉｏｎ」（ＩＥＥＥ  Ｔｒａｎｓ．Ｃｏｍｐｕｔ．、４１４〜４２６頁、１９８４年５月）を参照されたい。この実装は、バタフライ出力をフィードバック・シフト・レジスタまたはＦＩＦＯ４６（そのサイズは図４に与えられており、この例では、レジスタの長さは、相応して８、４、２および１である）に格納することによって、メモリをより効率的に使う。１個のデータ・ストリームが、すべての段階で乗算器を通過する。
【００１４】
ハイブリッド手法
ハイブリッド手法は、列およびフィードバック手法の利益を兼ね備える。この手法は、フィードバック手法の要素を使ってメモリを保存し、列段階は、より優れたハードウェア使用に使われる。４ビット幅の列段階バタフライ・ユニットの使用は、より広いＢＵＳ幅および適正な再構成可能乗算器の利用と組み合わせることができる。このアーキテクチャは、高い空間使用率およびアルゴリズム効率のために必要な、正確なＢＵＳ幅をもつものにコンバートすることもできる。
【００１５】
反復プロセスを稼動するポピュラーなアーキテクチャを、図５に示す。このＦＦＴ実装は、単一のバタフライ・ユニット５０を使用する。この単一バタフライ・ユニット設計は主に、スケジューリングおよびメモリ・アクセス方式の最適化、すなわち、繰り返し時分割された同じバタフライ・ユニットを再利用することによって段階それぞれを実装する際の、パイプライン手法の提供に注力している。Ｓｐｉｆｆｅｅプロセッサについては、たとえば、Ｂ．Ｍ．Ｂａａｓの「Ａ  Ｌｏｗ−ｐｏｗｅｒ、ｈｉｇｈ−ｐｅｒｆｏｒｍａｎｃｅ、１０２４  ｐｏｉｎｔ  ＦＦＴ  ｐｒｏｃｅｓｓｏｒ」（ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、１９９９年３月）を参照されたい。このプロセッサは、低電力消費を達成するために、ＲＡＭ５２および乗算器５６を含むキャッシュ・メモリ・アーキテクチャを用いて、ＦＦＴアルゴリズムの正規のメモリ・アクセス・パターンを活用する例である。コントローラ５４として示されるこのプロセッサは、どの長さのＦＦＴも実施するようにプログラミングすることができるが、ＲＡＭ５２によって与えられるキャッシュ・サイズなど、特定の特徴は、特定のＦＦＴサイズ向けにのみ最適化され、この手法は、非常に低い速度で作用する。というのは、Ｎクロック周期が、パイプライン・アルゴリズムの完全実装によるＦＦＴフレームの計算に必要とされ、一定の初期遅延をもたらすからである。このことは、再利用されるバタフライ・ユニット５０による段階の反復時間分割により、フル・フレームは、次のＦＦＴフレームの扱いを始めることができるようになる前に、計算される必要がある（ｒａｄｉｘ−２ベースのバタフライ・ユニットを使うとき、Ｎクロック周期を必要とする）ことを意味する。
【００１６】
比較的大きいｒａｄｉｘベースのバタフライ・ユニット、たとえばＲａｄｉｘ−４ベースのアーキテクチャを使うことによって、より効率的なＦＦＴプロセッサを作ることができる。これにより、フルＦＦＴフレームの処理に必要とされる計算クロック・サイクルが、Ｎ／２に削減される。高度なＤＳＰおよびチップ内に実装されるＦＦＴアクセラレータのほとんどは、Ｒａｄｉｘ−２またはＲａｄｉｘ−４  ＦＦＴプロセッサに基づく。こうしたアクセラレータは、使用が限られ（ＦＦＴ変換用のみ）、非常に低い速度を使用し、高いクロック・レート設計の必要性に苦しむ。
【００１７】
多重パイプライン型手法に基づくフィルタ実装
図６に示すような再構成可能な反復方式を用いると、効率が高いどの種類のフィルタも相関関数も実装することができる。この実装は、図６の６０を見ると最もよく分かる、ＩＦＦＴがその後に続く、フィルタ係数での乗算（時間領域乗算）用の、ＦＦＴ変換の最終段階の乗算器を使うことによって遂行される。この実装は、ＦＦＴ／ＩＦＦＴ、たとえば離散コサイン／サイン変換（ＤＣＴおよびＤＳＴ）のどのサブプロダクト、ならびに（等化、予測、補間および相関の計算にも用いることができる）カスケード式ＦＦＴおよびＩＦＦＴアルゴリズムを用いるフィルタリングのような、上述したアルゴリズムの組合せであるどのアルゴリズムの実装においても効率的である。
【００１８】
異なるｒａｄｉｘを用いるＦＦＴ
ｒａｄｉｘ−２２アルゴリズムは、特に関心をもたれている。このアルゴリズムは、ｒａｄｉｘ−４およびｓｐｌｉｔ−ｒａｄｉｘアルゴリズムそれぞれと乗算計算量が同じであり、同時に規則的なｒａｄｉｘ−２バタフライ構造を保持する。この空間的規則性は、ＶＬＳＩ実装用の他のアルゴリズムに勝る、構造上の大きな利点をもたらす。ｒａｄｉｘ−２２アルゴリズムの背景にある基本的な考え方は、正規のＤＩＦ  ＦＦＴアルゴリズムの２段階をとり、実数／虚数スワップおよび符号反転のみを伴うＷ（Ｎ／４）Ｎ＝Ｊによる自明な乗算の回数を最大にすることにある。言い換えると、ＦＦＴ係数は再構成され、非自明な乗算は、すべての２段階においてただ１つの複素乗算器が必要とされるように一段階にまとめられる（全体的論理区域を削減する）。図７は、このような係数再構成を表すトレリスを（並列形で）示す。すなわち、どの２つのバタフライ係数、ＷｉＮおよびＷ（ｉ＋（Ｎ／４））Ｎに対しても、ＷｉＮが除かれ、次の段階に転送され、この段階は、係数１および
【数５】
2008506191.tif 000007
を、対応する位置に残す。この係数再構成を、係数ペアすべてに対して実施した後、一段階が、非自明な乗算なしで残される。
【００１９】
ハイブリッド・パイプライン／多重化手法
この１０年間、いくつかのパイプライン型ＦＦＴアーキテクチャが提案されている。シグナル・フロー・グラフの空間規則性は、パイプライン型アーキテクチャにおいて保たれるので、高度にモジュール式であり拡張が容易である。シャッフル・ネットワーク８０は、図８Ａに示される単一パス遅延フィードバックを介して実装され、ここで、データは、単一パス中の段階８２の間で処理され、フィードバックＦＩＦＯレジスタ８４は、新たな入力および中間結果を格納するのに用いられる。この方式の背景にある基本的な考え方は、データを格納し、次の段階がデータを正しい順序で受け取ることができるようにスクランブルすることである。ＦＩＦＯレジスタ８４が、入力の前半部分で一杯になると、直前の結果の後半部分が、次の段階へシフトアウトされる。この間、演算要素は迂回される。入力の前半部分は、ＦＩＦＯレジスタからシフトアウトされると、到着した入力の後半と共に処理要素に供給される。この間、演算要素は、２つの出力を操作し生成しており、１つは次の段階８２に直接供給され、もう１つは、対応するＦＩＦＯレジスタにシフトインされる。乗算器（図示せず）は、必要な場合、ｒａｄｉｘ−２２またはｒａｄｉｘ−２アルゴリズムいずれかに従って、段階の間に挿入される。このような実装において使用するためのトレリスおよびデータ・パケットを、それぞれ図８Ｂ、８Ｃに示してある。
【００２０】
添付の図面に対して参照が行われるが、同じ参照文字指定をもつ要素は、全体を通して同じ要素を表す。
【特許文献１】米国特許仮出願第６０／５８６，３９０号
【特許文献２】米国特許仮出願第６０／５８６，３９１号
【特許文献３】米国特許仮出願第６０／５８６，３８９号
【特許文献４】米国特許仮出願第６０／５８６，３５３号
【特許文献５】米国特許仮出願第６０／６０４，２５８号
【特許文献６】米国特許出願第１１／０７１，３４０号
【非特許文献１】Ｎ．Ｗｅｓｔ、Ｄ．Ｊ．Ｓｋｅｌｌｅｒｎ、「ＶＬＳＩ  ｆｏｒ  ＯＦＤＭ」、ＩＥＥＥ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｍａｇａｚｉｎｅ、１２７〜３１頁、ｖｏｌ．３６、（ｎｏ．１０）、１９９８年１０月
【非特許文献２】Ｒ．ｖａｎ  Ｎｅｅ、Ｒ．Ｐｒａｓａｄ、「ＯＦＤＭ  ｆｏｒ  Ｗｉｒｅｌｅｓｓ  Ｍｕｌｔｉｍｅｄｉａ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ」、Ａｒｔｅｃｈ  Ｈｏｕｓｅ  Ｐｕｂｌｉｓｈｅｒｓ、２０００年
【非特許文献３】Ａ．Ｖ．Ｏｐｐｅｎｈｅｉｍ、Ｒ．Ｗ．Ｓｃｈａｆｅｒ、「Ｄｉｓｃｒｅｔｅ−Ｔｉｍｅ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ」、Ｐｒｅｎｔｉｃｅ  Ｈｉｌｌ、Ｎｅｗ  Ｊｅｒｓｅｙ、１９８９
【非特許文献４】Ｅ．Ｈ．Ｗａｌｄ、Ａ．Ｍ．Ｄｅｓｐａｉｎ、「Ｐｉｐｅｌｉｎｅｄ  ａｎｄ  ｐａｒａｌｌｅｌ−ｐｉｐｅｌｉｎｅ  ＦＦＴ  ｐｒｏｃｅｓｓｏｒｓ  ｆｏｒ  ＶＬＳＩ  ｉｍｐｌｅｍｅｎｔａｔｉｏｎ」、ＩＥＥＥ  Ｔｒａｎｓ．Ｃｏｍｐｕｔ．、４１４〜４２６頁、１９８４年５月
【非特許文献５】Ｂ．Ｍ．Ｂａａｓ、「Ａ  Ｌｏｗ−ｐｏｗｅｒ、ｈｉｇｈ−ｐｅｒｆｏｒｍａｎｃｅ、１０２４  ｐｏｉｎｔ  ＦＦＴ  ｐｒｏｃｅｓｓｏｒ」、ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、１９９９年３月
【発明を実施するための最良の形態】
【００２１】
以下の開示では、変動サイズを有するベクトル（実数ベクトルおよび複素ベクトル）の高速フーリエ変換（ＦＦＴ）などの直交変換を実施する方法およびシステムを説明する。変換のサイズが、オン・ラインで決定することができ、アルゴリズムへの入力に依存する適合アルゴリズムが実装される。このような適合アルゴリズムの例は、（１）ＦＦＴ、（２）逆ＦＦＴ（ＩＦＦＴ）、（３）ＦＦＴおよびＩＦＦＴ、たとえば離散コサイン／サイン変換（ＤＣＴおよびＤＳＴ）の任意のサブプロダクト、（４）ウォルシュ／アダマール変換およびその任意のサブプロダクト、たとえばＣＤＭＡ、ＤＳＳＳ、拡散／逆拡散コア・アルゴリズム、ならびに上述したアルゴリズムの任意の組合せである。本方法およびシステムは、フィルタリングおよび他の機能に対しても使うことができ、たとえば、ＦＦＴおよびＩＦＦＴアルゴリズム（このアルゴリズムは、等化、ヒルベルト変換、予測および補間ならびに相関に対しても用いることができる）をカスケードするときに実現することができる。本方法およびシステムは、ＦＦＴ／ＩＦＦＴおよび上述したアルゴリズムすべての、高い効率での、かつハードウェアの高速オンライン再構成による広範なパラメータでの実装を可能にする。この実装は、上述した、異なるサイズのいくつかのＦＦＴ変換またはアルゴリズムの並列または直列実装用に指定される、装置内のハードウェアの量を大幅に減少させる。
【００２２】
開示する手法は、ＦＦＴベクトルの長さに適合し、それに従ってメモリのサイズを決め、たとえば、シフト・レジスタ（またはＦＩＦＯ）の長さを変え、相互接続バスを必要に応じて修正し、Ｉ／Ｏブロックの単純な多重化を実現することによって、柔軟性を実現しやすくする簡素化された相互接続構造を提供するように、直交変換プロセッサを修正するものである。入力サンプル・レートでのクロック周波数を使って、ＦＦＴの範囲全体を、ハードウェアに直接マップし、より短い長さのＦＦＴには不必要なブロックを無効にすることによって、またはより長い（ただし、より低いシンボル・レートの）ケースの場合は処理段階をたたみ、ハードウェアを時分割することによって、調節することができる。このアーキテクチャは、バッファリングも直列／並列変換も必要としない。
【００２３】
このアーキテクチャは、Ｒａｄｉｘ２、Ｒａｄｉｘ２２、Ｒａｄｉｘ２３、Ｒａｄｉｘ４、Ｒａｄｉｘ８、または同様の形式を使って、またはそれに従って実装することができる。ｒａｄｉｘ−４（回転係数の乗数なし）は、図９に示すように行列演算として表し、図１０のトレリスで示すように実施することもできる。
【００２４】
図１１に示してある、再構成可能なｒａｄｉｘ２２段階の実装の実施形態は、入力マルチプレクサ１１１と、２段階のバタフライ・ユニット１１０ａおよび１１０ｂと、（符号反転能力をもつ）ただ１つの汎用乗算器１１４および１つの交差接合ブロック１１６を有する２つのフィードバック・メモリ１１２ａおよび１１２ｂと、コントローラ１１８とを備える。ブロック１１６は、ＩＦＦＴとＦＦＴ処理の間を切り換えるのに使われ、そうすることによって、バタフライ・ユニット１１０ａの出力で、乗算器の必要がなくなる。実装において、メモリ１１２ａおよび１１２ｂの使用可能メモリのサイズは、処理されるＦＦＴの長さを調節するために、コントローラ１１８によって修正することができる。変換ベクトルの長さは、検出装置１１７によって検出し、コントローラ１１８によって判定することができる。さらに、各計算段階向けの、乗算器１１４によって使用するための係数を格納するメモリ１１９が提供される。
【００２５】
図１２は、１６ポイントＦＦＴの、パイプライン型Ｒａｄｉｘ−２２（Ｎ＝１６）に基づく実装の実施形態を示す。本実施形態では、コントローラ１２８は、メモリ、この場合は各段階向けのシフト・レジスタ１２４それぞれのサイズを設定するための入力を与える。マルチプレクサ１２１も、第１段階のバタフライ・ユニット１２２ａの入力に所望の順次入力を与えるように設定される。乗算器１２６ａ、１２６ｂおよび１２６ｃは、最初の３段階それぞれの出力の所に別々に位置付けられ、最後の段階は、乗算器を必要としない。図を見ると分かるように、乗算器１２６ａおよび１２６ｃは、虚複素「ｊ」に結合される段階の出力を、ｊで乗算することによって変換する。
【００２６】
反復プロセスを実施するアーキテクチャを組み込む代替実施形態を、図１３に示す。具体的には、図１３は、１６ポイントＦＦＴを処理する半パイプライン／反復Ｒａｄｉｘ−２２（Ｎ＝１６）に基づく実装の例を示す。本実施形態では、フィードバックを提供する乗算器１３０ｂの出力、ならびに変換プロセッサの出力を有する２つのバタフライ段階１３０ａおよび１３０ｂのみが必要とされる。具体的には、マルチプレクサ１３１の出力は、バタフライ・ユニット１３２ａの入力に与えられる。後者は、メモリ（たとえばシフト・レジスタ１３４ａにフィードバックを、および「ｊ」乗算器１３６ａに出力を提供する。「ｊ」乗算器１３６ａの出力は、バタフライ・ユニット１３２ｂの入力に加えられる。後者は、メモリ（たとえば、シフト・レジスタ１３４ｂ）にフィードバックを、および乗算器１３６ｂに出力を提供する。出力１３６ｂは、フィードバック・パスを介して、バタフライ・ユニット１３２ａの入力に接続される。動作の際、コントローラ１３８が、メモリ１３４のサイズを、処理段階に応じて制御する。信号ベクトルが最初に受け取られる第１の事例において、レジスタ１３４ａおよび１３４ｂは、それぞれ「８」、「４」で設定され、信号は、２段階を介して処理される。プロセッサの出力は無効にされ、第２段階のバタフライ・ユニット１３２ｂの出力は、フィードバック・パスを介して、バタフライ・ユニット１３２ａの入力に加えられる。次の反復中、メモリは、コントローラによって「２」、「１」に設定される。信号は次いで、第２のバタフライ・ユニット１３２ｂの出力まで連続して処理される。プロセッサの出力は次いで、有効にされ、フィードバック・パスは、プロセッサの出力が１３９で与えられるように無効にされる。
【００２７】
図１４は、１６ポイント・フィルタの、パイプラインＲａｄｉｘ−２２（Ｎ＝１６）に基づく実装の例の実施形態を示す。やはり、メモリのサイズは、コントローラ１４８によって各段階ごとに設定される。フィルタ係数は、乗算器１４０に加えられる。このアーキテクチャは、反復でもあるいはパイプライン／反復または並列の混合物でもよい。
【００２８】
繰り返しになるが、図１４のアーキテクチャは、反復あるいはパイプライン／反復または並列アーキテクチャの混合物となるように修正することができる。
【００２９】
ウォルシュ／アダマール変換の有効化
行列演算としてのｒａｄｉｘ−４変換に関する上記の考察から、アーキテクチャは、ウォルシュ拡散／逆拡散関数など、他の直交信号方式を処理するように容易に変えることができることがすぐにに分かる。後者は、乗算係数を、±１の自明なもので単に代用することによって、既存のアーキテクチャを用いて容易に実装することができる。さらに検討すると、非自明な係数および−ｊで乗算される係数のみが、変更される必要があることが分かる。さらに、非自明な乗算係数は、ウォルシュ拡散／逆拡散関数に必要とされる自明な乗算器の実装に必要なものをすべて、すなわちＦＦＴ←→ＩＦＦＴと、−ｊでの乗算との間で変化するための能力を、既にもっている。ハードウェアに対する唯一の特別な要件は、コントローラ１４８を管理することにある。
【００３０】
一例として、「Ｒａｄｉｘ４」ウォルシュ拡散／逆拡散バタフライ・ユニットは、以下のように、行列演算として表すことができる。
【数６】
2008506191.tif 000008
２つの行列表現を比較することによって、２つの変換の間の関係を理解することができる。
【数７】
2008506191.tif 000009
ｒａｄｉｘ−４変換は複素演算なので、実数ベクトルに対する２つの独立ウォルシュ拡散／逆拡散プロセスを取得する。というのは、±１での自明な乗数は、ＩとＱ信号の間を入れ替わらないからである。したがって、この特徴は、たとえば、新しいＷＣＤＭＡ標準でのように、２ｆｉｎｇｅｒ  ＲＡＫＥ受信機、または複素ウォルシュ拡散／逆拡散関数の実装用に用いることができる。また、第２の独立ウォルシュ拡散／逆拡散関数を、特別段階として使うことも、あるいは、適正な場所で、用意されたＩおよびＱによって、より大きいウォルシュ拡散／逆拡散用に使うこともできる（この可能性は、図９〜１４に示す再構成可能なＲａｄｉｘ２２アーキテクチャにおいて既に実現されている）。
【００３１】
図１４に提示される実装は、たとえば、ＮＬｏｇ（Ｎ）回の演算のみを用いて実施されるＦＦＴアルゴリズムを必要とし、したがって、いくつかのコードを併せもつＣＤＭＡ変調／復調のような演算、すなわち、重いデータ・ロードにとっては非常に効率的である。
【００３２】
ここで、複素乗算器は、擬似ランダム・シーケンスを有するウォルシュ・シーケンスを、非常に高い効率でランダム化し／非ランダム化する、周波数領域内でのフィルタの実装において使うことができる（いくつかのコードを併せもつＣＤＭＡ変調／復調を扱うとき、すなわち、重いデータ・ロードの場合（ＣＤＭＡ／ＷＣＤＭＡ標準において見られるように）。この効率性は、変調されたデータを（コードすべてに対して）一度だけ乗算する必要があり、すべてのコードが別々に乗算されるのではないおかげで実現される。
【００３３】
図１５は、ウォルシュ・コードをランダム化する回転乗数が、並列アーキテクチャの最初および最後で使われるときのウォルシュ拡散／逆拡散関数へのｒａｄｉｘ−４段階の変換の実施形態の例のトレリスを示す。図１５は具体的には、１６ポイント・ウォルシュ拡散／逆拡散関数の並列Ｒａｄｉｘ−２２（Ｎ＝１６）に基づく実装の例を示す。
かっｋお
回転乗数を使ってｒａｄｉｘ−２ベースのＦＦＴを実施すると、乗数は、「１」にのみ変えることができる。図１６は、１６ポイントの、ウォルシュ拡散／逆拡散シーケンスの並列Ｒａｄｉｘ−２（Ｎ＝１６）に基づく実装のトレリスの例、すなわち、変調／復調中の一連の１６チップのウォルシュ拡散／逆拡散シーケンスの例を示す。
【００３４】
やはり、複素乗算器を上で説明したように、たとえば周波数領域内のフィルタの実装に、または擬似ランダム・シーケンスを有するウォルシュ・シーケンスのランダム化／非ランダム化に使うことができる。効率性は、変調されたデータを（コードすべてに対して）一度だけ乗算する必要があり、したがって各コードが別々に乗算されるわけではないおかげで実現される。
【００３５】
再構成可能なハイブリッド・パイプライン列の多重化手法
図１７に示すように、４ビット幅の小さいｒａｄｉｘ２２バタフライ・ユニットの「バンク」を組み合わせて、より広いＢＵＳ  ｒａｄｉｘ２２を形成することができ、小さいＲａｄｉｘはそれぞれ、組合せ／分裂することができる、ＲＡＭの再構成可能な制御された「バンク」に接続される。ＢＵＳ分裂用の再構成可能な乗算器は、上記方法に基づいて、非常に高い使用率および低電力消費である、任意の長さのＩＦＦＴ／ＦＦＴ／フィルタ／相関器およびウォルシュ／アダマール変換またはその任意の下位プロダクト、たとえば、ＣＤＭＡ  ＤＳＳＳコアもしくはＤＤＳ周波数フィルタも有する、再構成可能な「処理」コアを用いて実装することもでき、様々な並列／パイプライン／反復アルゴリズム・アーキテクチャ方式を含むいくつかのアルゴリズムがどの構成中でも稼動することができるとき、任意のＢＵＳ幅が必要になる。シリコンでのコアの実装は、最大クロック・レートを有するので、必要性による再構成は、任意の数の並列／パイプライン／反復アルゴリズム・アーキテクチャ方式をもたらし、各々が、いつでもアルゴリズムおよびシリコン実装資源用に、かつモデム実装のどの標準に対しても最適化され、したがって、高い使用性能を有する非常に小型の再構成アーキテクチャをもたらす。図１７は、ＦＦＴ／ＩＦＦＴベクトルを処理する再構成可能なＭＥ−Ｉコアの例を示す。
【００３６】
本開示を要約すると、現在の手法は、簡素化された相互接続構造を用いることによる、基本ＦＦＴプロセッサの修正を含む。こうすることにより、メモリのシフト・レジスタ（またはＦＩＦＯ）の長さを単に変えること、バス・サイズを必要に応じて変えること、Ｉ／Ｏブロックのシンプル多重化によってＦＦＴのサイズを調整する際の柔軟性が実現される。入力サンプル・レートでのクロック周波数を使って、ＦＦＴの範囲全体を、ハードウェアに直接マップし、より短い長さのＦＦＴには不必要なブロックを無効にすることによって、またはより長い（ただし、より遅いシンボル・レートの）ケースの場合は処理段階をたたみ、ハードウェアを時分割することによって、調節することができる。このアーキテクチャは、バッファリングも直列／並列変換も必要としない。
【００３７】
一例として、Ｒａｄｉｘ２２アーキテクチャを用いると、（回転係数の乗数のない）ｒａｄｉｘ−４は、図９に見られる行列演算としても表すことができる。対応するバタフライ構造を、図１０に提示してある。したがって、上記の例に示すように、ｒａｄｉｘ２２段階の実装は、ただ１つの汎用乗算器を有する２段階のバタフライ・ユニットと、符号乗算を伴う１つの交差接合（ＩＦＦＴ／ＦＦＴ変化にも必要とされる）とを必要とし、こうすることにより、乗算器の必要がなくなる。対応する構造を、図１１に提示してある。１６ポイントＦＦＴのＲａｄｉｘ２２実装の対応する多段階実装（図４を参照）が、図１２で与えられる。同じであるが、再構成可能な反復スイッチ機構を用いて実装される変換を、図１３（一段階）および図１４（多段階）に提示してある。
【００３８】
ウォルシュ／アダマール変換の有効化：ＦＦＴ／ＩＦＦＴに関連して以上のように説明したプロセッサおよび方法は、他の変換用のプロセッサおよび方法を実装するのに使うこともできる。行列演算としてのｒａｄｉｘ−４変換の上記提示から、演算をウォルシュ拡散／逆拡散関数に変えるために必要とされることは、ＦＦＴ用に使われる乗数を、±１の自明な乗数で代用することだけである。さらに検討すると、非自明なもの、および−ｊで乗算されるものだけが、変更される必要があることが分かる。さらに、ＦＦＴ←→ＩＦＦＴの間で変化させ、−ｊで乗算するための能力をもつ、非自明な乗数だけが、ウォルシュ拡散／逆拡散に必要とされる自明な乗数の実装に必要である。ハードウェアに対するただ１つの特別な要件は、プロセッサの動作を管理し制御するコントローラにある。
【００３９】
「Ｒａｄｉｘ４」ウォルシュ拡散／逆拡散バタフライは、下に示すように、行列演算としても表すことができる。
【数８】
2008506191.tif 000010
２つの行列表現を比較することによって、２つの変換の間の関係を理解することができる。
【数９】
2008506191.tif 000011
ｒａｄｉｘ−４変換は複素演算なので、実数ベクトル拡散／逆拡散に対する２つの独立ウォルシュ拡散／逆拡散プロセスを得る（というのは、±１での自明な乗算器は、ＩとＱ信号の間を交替しないからである）。この側面は、新しいＷＣＤＭＡ標準において提供されるような、２ｆｉｎｇｅｒ  ＲＡＫＥ受信機、または複素ウォルシュ拡散／逆拡散プロセッサの実装において有用である。第２の独立ウォルシュ拡散／逆拡散プロセッサは、特別段階として使い、適正な場所で、用意されたＩおよびＱによって、より大きいウォルシュ拡散／逆拡散用に使うこともできる（この可能性は、再構成可能なＲａｄｉｘ２２アーキテクチャにおいて容易に実装することができる）。
【００４０】
図１７に提示される実装は、たとえば、ＮＬｏｇ（Ｎ）回の演算のみを必要とし、いくつかのコードを併せもつＣＤＭＡ変調／復調、すなわち、重いデータ・ロードにとっては非常に効率的である。
【００４１】
ここで、複素乗算器は、擬似ランダム・シーケンスを有するウォルシュ・シーケンスを、非常に高い効率でランダム化し／非ランダム化する、周波数領域内でのフィルタのような構成の実装に使うことができる（いくつかのコードを併せもつＣＤＭＡ変調／復調を扱うとき、すなわち、重いデータ・ロードの場合（ＣＤＭＡ／ＷＣＤＭＡ標準において見られるように）。この効率は、変調されたデータを（コードすべてに対して）一度だけ乗算する必要があり、すべてのコードが別々に乗算されるのではないおかげで達成される。
【００４２】
図１５は、ウォルシュ・コードをランダム化する回転乗数が並列アーキテクチャにおいて必要とされるとき（開始／最後）のウォルシュ拡散／逆拡散関数へのｒａｄｉｘ−４段階の変換を提示する。Ｒａｄｉｘ−２ベースのＦＦＴの例の場合、回転乗数は、「１」にのみ変更される必要がある。変調／復調処理のための１６チップのウォルシュ拡散／逆拡散シーケンスの例を、図１６に示す。複素乗算器を上で説明したように、たとえば周波数領域内のフィルタの実装に、または擬似ランダム・シーケンスを有するウォルシュ・シーケンスのランダム化／非ランダム化に使うことができる。変調されたデータを（コードすべてに対して）一度だけ乗算する必要があるおかげで、効率性が実現される。各コードは、別々に乗算される必要がない。
【００４３】
再構成可能なハイブリッド・パイプライン列多重化手法
最後に、一般直交変換を実装する再構成可能な装置の全体アーキテクチャを、Ｒａｄｉｘ２ｉ／ｘバタフライ変換の場合の図１８に簡単に示す。計算ユニットは、Ｒａｄｉｘ２、Ｒａｄｉｘ２２、Ｒａｄｉｘ２３、Ｒａｄｉｘ４、Ｒａｄｉｘ８などのバタフライ・ユニットを使用して実装することができる。この装置は好ましくは、再構成可能なＲＡＭクラスタおよび再構成可能なＢＵＳマルチプレクサ・ブロック１８０、１つまたは複数のバタフライ・ユニットを備える計算ユニット１８２、再構成可能な乗算器ブロック１８４、制御および記憶ユニット１８６ならびに検出装置１８８を備える。変換の各段階で、ユニット１８６は、２のバタフライ・ユニット内の乗算器の係数を、変換に従って修正する（対応する係数は、値｛−１，１，ｊ，−ｊ｝をとり得る）。ユニット１８２による演算の結果は、ユニット１８０（やはりユニット１８６によって制御される）のレジスタに格納される。レジスタのサイズは、段階ごとに変更される。格納されたデータの一部は、再構成可能な乗算器ブロック１８４に挿入され、データは、段階およびアルゴリズムに従って、制御および記憶ユニット１８６によって確立された係数で乗算される。乗算の結果は、ブロック１８０に格納される。ブロック１８０のマルチプレクサは、格納されたデータの多重化に使われる。各段階ごとにわずか１つのバタフライ・ユニットおよび１つのマルチプレクサを使えばよく、この１つのバタフライ・ユニットおよび乗算器は、ハードウェアを単に再構成することによって、各段階向けに再利用することができることが明らかであろう。
【００４４】
上述した内容の具体的なアプリケーションが、参照によって組み込まれている、２００５年３月３日に出願した、「Ｌｏｗ−Ｐｏｗｅｒ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｆｏｒ  Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  Ｏｆ  Ｄｉｓｔｉｎｃｔ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｄｓ」という名称の、我々の同時継続出願第１１／０７１，３４０号（整理番号６６９４０−０２１）に記載されている。図１８は、この同時継続出願において記載され権利請求されているシステムのブロック図を示す。
【００４５】
したがって、図１９に示すように、上で述べたチップ・アーキテクチャ要件に従うようになされた集積チップの実施形態は、以下の基本的な機能構成要素を備える。
【００４６】
ＣＰＵ１９０は好ましくは、（ａ）装置のｃｏｎｆｉｇｗａｒｅ部、すなわち、ネット・バス１９２、Ｉ／Ｏブロック１９４、ＲＡＭブロック１９６、メガファンクション・ブロック（群）１９８、相互接続ブロック２００、フラッシュ・メモリ・ブロック２０２およびクロック２０４を制御し、（ｂ）メガファンクション・ブロック（群）１９８、ならびにバス１９２、Ｉ／Ｏブロック１９４、ＲＡＭブロック１９６、相互接続ブロック２００、フラッシュ・メモリ・ブロック２０２およびクロック２０４の構成を、チップによって処理される信号のプロトコルに応じて固定するのに必要とされる、比較的小さいコンピュータ処理ユニットである。ＣＰＵ１９０は、比較的重要でなく単純な割当てまたはタスクを計算し、メガファンクションおよびＩ／Ｏブロックを相互接続するのに使われるバスを構成するのを助けることもできる。
【００４７】
ネット・バス１９２は、プロトコルに応じて再構成可能である。Ｉ／Ｏブロック１９４は好ましくは、チップを外界と接続する、構成可能なＩ／Ｏブロックである。そのタスクは、アプリケーション・アルゴリズムの「コンパイルされたソフトウェア」を受け取ること、および入力データを受け取り、出力処理されたデータを届けることを含む。ＲＡＭ１９６は、好ましくは「コンパイルされたソフトウェア命令」を格納するように、かつデータをキャッシュに入れバッファに入れるように構成されたランダム・アクセス・メモリである。メガファンクション・ブロック１９８は好ましくは、２つ以上のアプリケーション、すなわち、アプリケーション機能の各ドメインを、一機能として並外れた効率で計算することによって処理されるプロトコルからなる比較的重要なアプリケーション機能を含むように構成される。本ケースでは、メガファンクション・ブロック１９８は、本明細書において説明した直交変換の１つまたは複数、あるいはそのどの組合せも含むように構成される。相互接続ブロック２００は好ましくは、ＣＰＵ１９０、Ｉ／Ｏブロック１９４、ＲＡＭ１９６、メガファンクション・ブロック１９８、ならびにフラッシュ・メモリ２０２およびクロック・ブロック２０４を含む、チップの構成要素をすべて接続する再構成可能なネット・バスを含む。相互接続ブロックは、比較的重要でなく単純な割当てまたはタスクを、好ましくは余分メモリ内で実施するように構成することもできる。最後に、フラッシュ・メモリ２００は好ましくは、チップがそのプログラムを介して稼動するとき、データを格納するように働く。フラッシュ・メモリは好ましくは、一度のプログラミング動作で多数の記憶場所を消去させ、またはそこに書き込ませ、そうすることによって、それを使うシステムが、異なる場所で同時に読み取り、書き込むときに、より高い実効速度で動作することができるＥＥＰＲＯＭの形である。より少ない複素演算用には、他のタイプのメモリを使ってよいことが理解されるべきである。情報は好ましくは、チップ内に情報を維持するのに電力を必要としないやり方で情報をシリコン・チップ上に格納することによって、フラッシュ・メモリに格納される。したがって、チップへの電力を絶つことができ、電力を全く消費することなく、情報がフラッシュ・メモリに保持される。さらに、フラッシュ・メモリは、高速読取りアクセス時間および固体衝撃抵抗を提供し、フラッシュ・メモリを、セルラー電話およびＰＤＡのような、電池で動く装置におけるデータ記憶装置などのアプリケーションにおいて特に望ましいものにする。
【００４８】
ここまで説明したアーキテクチャはしたがって、集積回路として実装することができる。本アーキテクチャは、ベクトル（実数ベクトルおよび複素ベクトル両方）がサイズを変化させ得る、どのタイプの直交信号方式にも適合可能と考えられる。このような直交信号方式は、ＦＦＴ変換、逆ＦＦＴ変換（ＩＦＦＴ）または離散コサイン／サイン変換（ＤＣＴおよびＤＳＴ）のようなその任意のサブプロダクト、ウォルシュ／アダマール変換またはＣＤＭＡ  ＤＳＳＳ拡散／逆拡散のようなその任意のサブプロダクト、こうしたアルゴリズムの２つ以上の組合せである任意のアルゴリズム、ならびに、等化、ヒルベルト変換、予測、補間、相関などにも使うことができる、このような他の機能、たとえば、ＦＦＴおよびＩＦＦＴ変換の連結を用いることによるフィルタリングを含み得るが、それに制約されない。
【００４９】
本明細書で開示した本開示のアーキテクチャ、およびその全要素は、添付の特許請求の範囲の少なくとも１つの範囲内に含まれる。ここで開示したチップ・アーキテクチャのどの要素も、権利放棄されることも意味しているのではなく、必ずしも特許請求の範囲の解釈を制限することも意図していない。
【図面の簡単な説明】
【００５０】
【図１】ＦＦＴバタフライ演算トレリスを示す図である。
【図２】周波数分割１６ポイントＦＦＴトレリスを示す図である。
【図３】列ベースの１６ポイントＦＦＴトレリスを示す図である。
【図４】パイプラインベースのＲａｄｉｘ−２（Ｎ＝１６）１６ポイントＦＦＴを実装するアーキテクチャを示すブロック図である。
【図５】簡易Ｒａｄｉｘ−２  ＦＦＴプロセッサを実装するアーキテクチャを示すブロック図である。
【図６】パイプラインベースのＲａｄｉｘ−２（Ｎ＝１６）１６ポイント・フィルタのアーキテクチャを示すブロック図である。
【図７】係数の再構成を介した乗算除去技法のトレリスを示す図である。
【図８】シャッフル交換相互接続変換器のパイプライン型実装を示すトレリス、ブロック図およびパケット図である。
【図９】本開示の方法およびシステムの一態様による、ｒａｄｉｘ−４バタフライ・アーキテクチャで使用するための行列演算を示す図である。
【図１０】本開示の方法およびシステムの一態様によるｒａｄｉｘ−２２段階トレリスを示す図である。
【図１１】本開示の方法およびシステムの一態様による、再構成可能なＲａｄｉｘ−２２段階バタフライ配置のアーキテクチャを示すブロック図である。
【図１２】本開示の方法およびシステムの一態様による、パイプラインベースのＲａｄｉｘ−２（Ｎ＝１６）１６ポイント・フィルタを示す図である。
【図１３】本開示の方法およびシステムの一態様による、１６ポイントＦＦＴの半パイプライン／反復Ｒａｄｉｘ２２（Ｎ＝１６）ベースの実装を示す図である。
【図１４】本開示の方法およびシステムの一態様による、１６ポイント・フィルタのパイプライン型Ｒａｄｉｘ−２２（Ｎ＝１６）ベースの実装を示す図である。
【図１５】本開示の方法およびシステムの一態様による、１６ポイント・ウォルシュ拡散／逆拡散関数の並列Ｒａｄｉｘ−２２（Ｎ＝１６）ベースの実装のトレリスを示す図である。
【図１６】本開示の方法およびシステムの一態様による、１６ポイント・ウォルシュ拡散／逆拡散関数の並列Ｒａｄｉｘ−２（Ｎ＝１６）ベースの実装のトレリスを示す図である。
【図１７】本開示の方法およびシステムの一態様による、再構成可能なＭＦ−Ｉコア・プロセッサを実現するアーキテクチャを示すブロック図である。
【図１８】本開示の方法およびシステムの一態様による、再構成可能なＭＦ−Ｉコア・プロセッサを実現するアーキテクチャを示すブロック図である。
【図１９】本明細書に記載されるいずれのタイプの変換器も備えるように構成された通信システムを示すブロック図である。
【図１】
2008506191.tif 000012
【図２】
2008506191.tif 000013
【図３】
2008506191.tif 000014
【図４】
2008506191.tif 000015
【図５】
2008506191.tif 000016
【図６】
2008506191.tif 000017
【図７】
2008506191.tif 000018
【図８】
2008506191.tif 000019
【図９】
2008506191.tif 000020
【図１０】
2008506191.tif 000021
【図１１】
2008506191.tif 000022
【図１２】
2008506191.tif 000023
【図１３】
2008506191.tif 000024
【図１４】
2008506191.tif 000025
【図１５】
2008506191.tif 000026
【図１６】
2008506191.tif 000027
【図１７】
2008506191.tif 000028
【図１８】
2008506191.tif 000029
【図１９】
2008506191.tif 000030
【国際調査報告】
2008506191.tif 000031