(57)【特許請求の範囲】
【請求項１】
最小二乗平均誤差等化プロセッサであって、
第１および第２のモードにおいて動作するとともに、複数のチャネル行列（２２０）から時分割多重化された入力行列のインターリーブされた行列セット（ＨAB）を受信するように構成された第１のシストリックアレイ（２１０，４００，６１２，７１２）を備え、
前記第１のモードで動作している前記第１のシストリックアレイは、前記入力行列の前記インターリーブされた行列セット（ＨAB）について三角行列化（５０８）処理を実行して時分割多重化された出力行列の第１のインターリーブされた行列セット（Ｒ）を生成するように構成され、
前記三角行列化処理は、各チャネル行列に対応する前記入力要素の二乗振幅の積算値の逆数に等しい中間値を決定し、かつ記憶することを含み、
前記第２のモードで動作している前記第１のシストリックアレイは、前記第１のセットについて後退代入（５１０）を実行して、前記記憶された中間値の関数として、時分割多重化された出力行列の第２のインターリーブされた行列セット（Ｒ-1）を生成して出力するように構成され、
前記プロセッサは、
第１および第２のモードにおいて動作するとともに、前記第１のシストリックアレイからの前記出力行列の前記第２のインターリーブされた行列セットと、前記入力行列の前記インターリーブされた行列セットとを受信するように構成された第２のシストリックアレイ（２２０，１１００，６１６，７１６）をさらに備え、
前記第１のモード（ＭＵＸ  ｓｅｌ＝０）で動作している前記第２のシストリックアレイは、前記出力行列の前記第２のインターリーブされた行列セットについて前記入力行列の前記インターリーブされた行列セットを用いて左乗算（５１２）を実行して、時分割多重化された出力行列の第３のインターリーブされた行列セット（Ｑ1）を生成するように構成され、
前記第２のモード（ＭＵＸ  ｓｅｌ＝１）で動作している前記第２のシストリックアレイ（１１００）は、
前記出力行列の前記第３のインターリーブされた行列セットについてクロス対角変換（cross diagonal transposition）（５１３）を実行して、時分割多重化された出力行列の第４のインターリーブされた行列セット（Ｑ-1’）を生成し、
前記出力行列の前記第２のインターリーブされた行列セットについて前記出力行列の前記第４のインターリーブされた行列セットを用いて右乗算（５１４）を実行して、時分割多重化された出力行列の第５のインターリーブされた行列セット（Ｗ）を生成するように構成され、
前記第１のシストリックアレイの出力セット（Ｒ-1）は、前記第２のシストリックアレイの対応する入力の第１のセットに結合され、
前記第１のシストリックアレイは、前記三角行列化処理が完了した後に、前記第１のモードから前記第２のモードへ切換わるように構成され、
前記第２のシストリックアレイは、左乗算が完了した後に、前記第１のモードから前記第２のモードへ切換わるように構成される、プロセッサ。
【請求項２】
前記第１のシストリックアレイの出力セットは、前記第２のシストリックアレイの対応する入力の第２のセットに結合され、
前記出力セットのクロス対角変換は、前記対応する入力の第２のセットに提供され、
前記第２のシストリックアレイが前記第１のモードで動作している間において、左乗算の実行は、前記出力行列の前記第２のインターリーブされた行列セットを用いる左乗算を実行することを含み、
前記第２のシストリックアレイが前記第２のモードで動作している間において、右乗算の実行は、前記出力行列の前記第２のインターリーブされた行列セットのクロス対角変換を用いる左乗算を実行することを含む、請求項１に記載のプロセッサ。
【請求項３】
前記第２のシストリックアレイ（１１００）は、
前記第２のシストリックアレイの入力の第２のセットに結合された出力セットを有する入力選択回路（１１６０，１１６２）と、
前記入力行列の前記インターリーブされた行列セットに結合された第１の入力セットと、
前記第２のシストリックアレイの出力セットに結合された第２の入力セットとを含み、
前記第２のシストリックアレイが前記第１のモードで動作している間において、前記入力選択回路は、前記選択回路の前記第１の入力セットにおいて受信された前記入力行列の前記インターリーブされた行列セットを受信するとともに、前記シストリックアレイの第２の入力セットへ出力し、
前記第２のシストリックアレイが前記第２のモードで動作している間において、前記入選択回路は、前記出力行列の前記第３のインターリーブされた行列セットのクロス対角変換を、前記選択回路の第２の入力セットから受信するとともに、前記シストリックアレイの前記第２の入力セットへ出力する、請求項１に記載のプロセッサ。
【請求項４】
前記第１のシストリックアレイ（４００）は、
境界セル（４０１，４１０，４０２，４０３）および内部セルを含む複数のプロセッシングセルを備え、
前記プロセッシングセルは、
Ｎ個のプロセッシングセルの行に配列され、
各行Ｍは、境界セルで始まるとともに、Ｎ−Ｍに等しい数の内部セル（４０２−４０４，４１２−４１３，４２１）が引き続き、１≦Ｍ≦Ｎであり、
Ｎ個のプロセッシングセルの列に配列され、
各列Ｌは、１つの境界セルが引き続く、Ｌ−１個の内部セルを含み、１≦Ｌ≦Ｎであり、
前記境界セルおよび前記内部セルは、前記第１および第２のモードにおいて、以下のように動作するように構成され、
前記第１のモードで動作している間に、前記境界セル（９００）は、
第１および第２の回転係数を決定するとともに、前記複数のチャネル行列における１つのチャネル行列に対応する各入力要素について、前記境界セルによって占められる前記行における次のプロセッシングセルに出力し、
各チャネル行列に対応する前記入力要素の二乗振幅の積算値の前記逆数を決定し、
前記第２のモードで前記境界セル（９００）が動作している間に、
１の値に等しい第１の回転係数を出力し、
前記入力要素と乗算された前記逆数に等しい第２の回転係数を出力し、
前記内部セルは、
前記第１および第２の回転係数を受信するとともに出力し、
前記複数のチャネル行列の１つのチャネル行列に対応する各入力要素について、
前記第２の回転係数が乗算され、かつ、前記チャネル行列に対応する先行する入力要素の記憶された第１の値が乗算された前記第１の回転係数が加算された、前記入力要素に等しい第１の値を決定して記憶し、
前記第１の値を前記第２の回転係数と乗算して、第２の値を生成し、
前記入力要素を前記第１の回転係数と乗算して、第３の値を生成し、
前記第１のモードにおいて動作している間に、前記第２の値が加算された前記第３の値を出力し、
前記第２のモードにおいて動作している間に、前記第３の値から減算された前記第２の値を出力するように構成される、請求項１〜３のいずれか１項に記載のプロセッサ。
【請求項５】
前記境界セルは、
二乗振幅回路（９０２）と、
前記二乗振幅回路の出力に結合された第１の入力を有する積算回路（９１０）と、
前記積算回路の出力に結合された入力を有する二乗平方根回路（９２０）とを含み、
前記二乗平方根回路は、第１の出力において前記入力からの値の二乗平方根を生成するとともに、第２の出力において前記入力からの前記値の二乗平方根の逆数を生成するように構成され、
前記境界セルは、
前記二乗平方根回路の前記第１の出力に結合された入力を有する第１のレジスタ（９３０）と、
前記二乗平方根回路の前記第２の出力に結合された入力を有する第２のレジスタ（９３２）と、
前記第１のレジスタの出力に結合される第１の入力、および前記二乗平方根回路の前記第２の出力に結合された第２の入力を有する第１の乗算器（９３４）と、
前記第１の乗算器の出力に結合された第１の入力、および１に等しい定数を受信するように結合された第２の入力を有する第１の選択回路（９４２）とをさらに含み、
前記第１の選択回路は、前記第１のモードで動作している間に前記第１の入力の値を出力するとともに、前記第２のモードで動作している間に前記第２の入力の値を出力するように構成され、
前記境界セルは、
前記二乗平方根回路の前記第２の出力に結合された第１の入力、および前記第２のレジスタ（９３２）の出力に結合された第２の入力を有する第２の選択回路をさらに含み、
前記第２の選択回路は、前記第１のモードで動作している間に前記第１の入力の値を出力するとともに、前記第２のモードで動作している間に前記第２の入力の値を出力するように構成され、
前記境界セルは、
前記二乗平方根回路の入力に結合された入力を有する第３のレジスタ（９０８）と、
前記第２の選択回路（９４０）の出力に結合された第１の入力、および前記第３のレジスタ（９０８）の出力に結合された第２の入力を有する第２の乗算器（９４６）とをさらに含む、請求項４に記載のプロセッサ。
【請求項６】
前記第３のレジスタ（９０８）は、前記二乗振幅回路、前記積算回路、前記二乗平方根回路、および前記第２の選択回路を通るデータパスを完了するために必要とされるサイクル数と等しい数の値を記憶するように構成され、
前記第１のレジスタ（９３０）および前記第２のレジスタ（９３２）は、前記複数のチャネル行列におけるチャネル行列の数に等しい数の値を記憶するように構成される、請求項５に記載のプロセッサ。
【請求項７】
前記積算回路（９１０）は、
前記積算回路の入力に結合された第１の入力を有する加算器（９１２）と、
前記加算器の出力に結合された入力、および前記加算器の第２の入力に結合された出力を有する第４のレジスタ（９１４）とを含み、
前記二乗振幅回路（９０２）は、複数のデータパスを含み、
前記第４のレジスタ（９１４）は、前記複数のチャネル行列におけるチャネル行列の数から、前記二乗振幅回路および前記加算器を通る前記複数のデータパスのうちの最長のデータパスを完了するために必要とされるサイクル数を差し引いたものに等しい数の値を記憶するように構成される、請求項５または６に記載のプロセッサ。
【請求項８】
前記二乗平方根回路（９２０）は、
前記二乗平方根回路の入力に結合された入力を有する逆二乗平方根回路（９２２）と、
前記二乗平方根回路の入力に結合された入力を有する第４のレジスタ（９２４）と、
前記逆二乗平方根回路の出力に結合された入力、および前記二乗平方根回路の前記第２の出力に結合された出力を有する第５のレジスタ（９２６）と、
前記第４のレジスタの出力に結合された第１の入力、および前記逆二乗平方根回路の出力に結合された第２の入力を有する乗算器（９２８）とを含み、
前記逆二乗平方根回路（９２２）は、第１の複数のデータパスを含み、
前記乗算器（９２８）は、第２の複数のデータパスを含み、
前記第４のレジスタ（９２４）は、前記逆二乗平方根回路（９２２）を通る前記第１の複数のデータパスのうち最長のものを完了するために必要とされるサイクル数と等しい数の値を記憶するように構成され、
前記第５のレジスタ（９２６）は、前記乗算器（９２８）を通る前記第２の複数のデータパスのうち最長のものを完了するために必要とされるサイクル数と等しい数の値を記憶するように構成される、請求項５または６に記載のプロセッサ。
【請求項９】
前記内部セル（１０００）は、
前記第２の回転係数（１００４，ｓ）を受信するための第１の入力、および入力要素（１００２，ｘ）を受信するための第２の入力を有する第１の乗算器（１０１０）と、
前記第１の回転係数（１００６，ｃ）を受信するための第１の入力を有する第２の乗算器（１０１２）と、
前記第１の乗算器の出力に結合された第１の入力、および前記第２の乗算器の出力に結合された第２の入力を有する第１の加算器（１０２０）と、
前記第１の加算器の出力に結合された入力、および前記第２の乗算器の第２の入力に結合された出力を有する第１のレジスタ（１０２２）と、
前記第１の乗算器の前記第２の入力に結合された第１の入力、および前記第２の乗算器の前記第１の入力に結合された第２の入力を有する第３の乗算器（１０２６）と、
前記第１のレジスタの出力に結合された第１の入力、および前記第１の乗算器の前記第１の入力の入力に結合された第２の入力を有する第４の乗算器（１０２４）と、
前記第３の乗算器の出力に結合された第１の入力、および前記第４の乗算器の出力に結合された第２の入力を有する選択可能な加算−減算回路（１０４０）とを含む、請求項４に記載のプロセッサ。
【請求項１０】
前記第１の加算器（１０２０）は、第１の複数のデータパスを含み、
前記第１の乗算器（１０１０）は、第２の複数のデータパスを含み、
前記第１のレジスタ（１０２２）は、前記複数のチャネル行列におけるチャネル行列の数から、前記第１の乗算器の前記第２の複数のデータパスおよび前記第１の加算器の前記第１の複数のデータパスを通る最長のデータパスを完了するために必要とされるクロックサイクル数を差し引いたものに等しい数の値を記憶するように構成される、請求項９に記載のプロセッサ。
【請求項１１】
前記第１のモードで動作している前記第１のシストリックアレイは、前記第２のモードから前記第１のモードへ入ったことに応答して、前記加算値をクリアする、請求項４〜１０のいずれか１項に記載のプロセッサ。
【請求項１２】
前記第２のシストリックアレイ（１１００）は、
境界セル（１１１１，１１２２，１１３３）および内部セル（１１１２，１１１３，１１２３）を含む複数のプロセッシングセルを備えるとともに、
Ｎ個のプロセッシングセルの行に配列され、
各行Ｍは、境界セルで始まるとともに、Ｎ−Ｍに等しい数の内部セルが引き続き、１≦Ｍ≦Ｎであり、
Ｎ個のプロセッシングセルの列に配列され、
各列Ｌは、１つの境界セルが引き続く、Ｌ−１個の内部セルを含み、１≦Ｌ≦Ｎである、請求項１〜１１のいずれか１項に記載のプロセッサ。
【請求項１３】
各境界セル（１１１１，１１１３）は、
前記第１の入力行列の要素を受信するための第１の入力選択回路（ＭＵＸ)と、
前記第１の入力選択回路の出力に接続された第１の入力、および第２の行列の要素を受信するための第２の入力を有する乗算器（×）とを含み、
各内部セル（１１１２，１１１３，１１２３）は、
前記第１の入力行列の要素を受信するための第２の入力選択回路（ＭＵＸ)と、
前記第２の入力選択回路の出力に接続された第１の入力、および第２の行列の要素を受信するための第２の入力を有する乗算器（×）と、
前記乗算器の出力に接続された１つの入力、および前記各内部セルによって占められる前記シストリックアレイの同じ行の先行する列における前記プロセッシングセルの出力を受信するための１つの入力を有する加算器（＋）とを含み、
前記第２の入力選択回路は、前記第１のモードで動作している間に前記第１の入力行列の要素を出力するとともに、前記第２のモードで動作している間に前記第１の行列のクロス対角変換の要素を出力するように構成される、請求項１２に記載のプロセッサ。
【請求項１４】
最小二乗平均誤差等化を実行する方法であって、
第１のシストリックアレイ（２１０，４００，６１２，７１２）において、複数のチャネル行列から、時分割多重化された入力行列のインターリーブされた行列セット（ＨAB）を受信するステップと、
第１のモードで動作している前記第１のシストリックアレイにおいて、前記入力行列の前記インターリーブされた行列セットについて三角行列化（５０８）処理を実行して、時分割多重化された出力行列の第１のインターリーブされた行列セットを生成するステップとを備え、
前記三角行列化処理は、各チャネル行列に対応する前記入力要素の二乗振幅の積算値の逆数に等しい中間値を決定し、かつ記憶するステップを含み、
前記第１のシストリックアレイは、三角行列化が完了した後に、前記第１のモードから第２のモードに切り換わり、
前記方法は、
前記第２のモードで動作している前記第１のシストリックアレイにおいて、前記出力行列の前記第１のインターリーブされた行列セットについて後退代入（５１０）を実行して、前記記憶された中間値の関数として、時分割多重化された出力行列の第２のインターリーブされた行列セット（Ｒ-1）を生成しかつ出力するステップと、
第２のシストリックアレイ（２２０、１１００，６１６，６１７）において、前記第１のシストリックアレイからの前記出力行列の前記第２のインターリーブされた行列セット、および、前記入力行列の前記インターリーブされた行列セットを受信するステップと、
第１のモード（ＭＵＸ  ｓｅｌ＝０）で動作している前記第２のシストリックアレイにおいて、前記出力行列の前記第２のインターリーブされた行列セットについて前記入力行列の前記インターリーブされた行列セットを用いて左乗算（５１２）を実行して、時分割多重化された出力行列の第３のインターリーブされた行列セット（Ｑ1）を生成するステップ
とをさらに備え、
前記第２のシストリックアレイは、左乗算が完了した後に、前記第１のモードから第２のモードへ切り換わり、
前記方法は、
前記第２のモード（ＭＵＸ  ｓｅｌ＝１）で動作している前記第２のシストリックアレイにおいて、前記出力行列の前記第３のインターリーブされた行列セットについてクロス対角変換（５１３）を実行して、時分割多重化された出力行列の第４のインターリーブされた行列セット（Ｑ1’）を生成するステップと、
前記第２のモードで動作している前記第２のシストリックアレイにおいて、前記出力行列の前記第２のインターリーブされた行列セットについて前記出力行列の前記第４のインターリーブされた行列セットを用いて右乗算（５１４）を実行して、時分割多重化された出力行列の第５のインターリーブされた行列セット（Ｗ）を生成するステップとをさらに備える、方法。
【請求項１５】
前記第１のシストリックアレイの出力セット（Ｒ-1)は、前記第２のシストリックアレイの対応する入力の第１のセットに結合され、
前記第１のシストリックアレイの前記出力セットは、前記第２のシストリックアレイの対応する入力の第２のセットに結合され、
前記出力セットのクロス対角変換は、前記対応する入力の第２のセットに提供され、
前記第２のシストリックアレイが前記第１のモードで動作している間、前記左乗算を実行するステップは、前記第２の出力行列セットを用いて、左乗算を実行するステップを含み、
前記第２のシストリックアレイが前記第２のモードで動作している間、前記右乗算を実行するステップは、前記出力行列の前記第２のインターリーブされた行列セットのクロス対角変換を用いて、左乗算を実行するステップを含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は、概して、複数出力アンテナから複数入力アンテナへ（ＭＩＭＯ）の通信に関する。
【背景技術】
【０００２】
背景
データは、送信アンテナと受信アンテナとの間で、電磁的に伝達され得る。送信器は、データを、シンボルコンステレーションから選択された一連のシンボルにエンコードする。送信アンテナはそのシンボルを送信し、受信アンテナはそのシンボルを検出する。
【０００３】
ノイズおよび反射からの干渉は、受信アンテナによって受信されたシンボルを破損させる。最尤検出器については、受信器は、受信信号を、コンステレーション内のすべてのシンボルについての予測受信信号と比較し得る。実際の受信信号に最も近く一致する予測受信信号が、検出シンボルを与える。
【０００４】
通信媒体の特性の測定は、適当なシンボル検出を助ける。一例においては、送信器は、既知のパターンのシンボルを周期的に受信器へ送信し、受信器はその既知のパターンを用いて、複数信号伝播経路のような、通信媒体の特性を判定する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
電磁的通信のデータ伝送速度は、複数の送信アンテナから並列に複数のシンボルを送信することによって増加される。複数送信されたシンボルの検出は、複数の受信アンテナを用いてシンボルを受信することによって改善する。複数送信アンテナを用いる最尤検出器について、並列に送信されるシンボルの可能な組み合わせの数は、送信アンテナの数の累乗のコンステレーションの次数になる。すべての可能性のある組み合わせの評価は、より高次数の変調、および多くのアンテナのために、実行不可能である。
【０００６】
本発明は、１つまたはより多くの上記の問題に対処し得る。
【課題を解決するための手段】
【０００７】
概要
一実施形態においては、最小二乗平均誤差等価プロセッサが提供される。プロセッサは、第１および第２のモードで動作するとともに、複数のチャネル行列からの時分割多重化された行列を受信するように構成された第１のシストリックアレイを含む。第１のモードで動作している第１のシストリックアレイは、入力行列セットについての三角行列化を実行して、時分割多重化された出力行列の第１の行列セットを生成し、第２のモードで動作している第１のシストリックアレイは、第１のセットについての後退代入を実行して、時分割多重化された出力行列の第２の行列セットを生成し、出力する。
【０００８】
プロセッサは、第１および第２のモードで動作するとともに、第１のシストリックアレイからの第２の行列セットと、入力行列セットとを受信するように構成された第２のシストリックアレイをさらに含む。（第２のシストリックアレイの第１および第２のモードは、第１のシストリックアレイの第１および第２のモードとは異なることに注意すべきである。）第１のモードで動作している第２のシストリックアレイは、第２の行列セットについて入力行列セットを用いて左乗算を実行して、時分割多重化された出力行列の第３の行列セットを生成する。第２のモードで動作している第２のシストリックアレイは、第３の行列セットについてクロス対角変換（cross diagonal transposition）を実行して、時分割多重化された出力行列の第４の行列セットを生成するとともに、第２の行列セットについて第４の行列セットを用いて右乗算を実行して、時分割多重化された出力行列の第５の行列セットを生成する。第１のシストリックアレイの出力セットは、第２のシストリックアレイの対応する入力の第１のセットに結合される。第１のシストリックアレイは、三角行列化が完了した後に第１のモードから第２のモードに切換わり、第２のシストリックアレイは、左乗算が完了した後に第１のモードから第２のモードに切換わる。
【０００９】
いくつかの実施形態においては、第１のシストリックアレイの出力セットは、第２のシストリックアレイ対応する入力の第２のセットに結合され、出力セットのクロス対角変換は、対応する入力の第２のセットに提供される。第２のシストリックアレイが第１のモードで動作している間、左乗算の実行は、出力行列の第２のセットを用いる左乗算を実行することを含む。第２のシストリックアレイが第２のモードで動作している間、右乗算の実行は、出力行列の第２のセットのクロス対角変換を用いる左乗算を実行することを含む。
【００１０】
いくつかの実施形態においては、第２のシストリックアレイは、第２のシストリックアレイの入力の第２のセットに結合される出力セット、入力行列セットに結合される入力の第１のセット、および第２のシストリックアレイの出力のセットに結合される入力の第２のセットを有する入力選択回路を含み得る。第２のシストリックアレイが第１のモードで動作している間、入力選択回路は、入力選択回路の入力の第１のセットについて受信された入力行列セットを受信するとともに、それをシストリックアレイの入力の第２のセットに出力する。第２のシストリックアレイが第２のモードで動作している間、入力選択回路は、選択回路の入力の第２のセットから第３の行列セットのクロス対角変換を受信し、シストリックアレイの入力の第２のセットへ出力する。
【００１１】
いくつかの実施形態においては、第１のシストリックアレイは、境界セルおよび内部セルを含む複数のプロセッシングセルを含むとともに、行１から行Ｎとして定義されるＮ個のプロセッシングセルの行に配列され、各行Ｍは境界セルで始まり、Ｎ−Ｍに等しい数の多くの内部セルが引き続く。アレイは、列１から列Ｎとして定義されるＮ個のプロセッシングセルの列に配列され、各列Ｌは、１つの境界セルが引き続くＬ−１個の内部セルを含み得る。第１のシストリックアレイは、複数のチャネル行列の要素の時分割多重化された入力を受けて処理するように構成され得る。境界セルおよび内部セルは、第１および第２のモードで動作するように構成され得る。
【００１２】
第１のモードで動作している間、第１のシストリックアレイの境界セルは、第１および第２の回転係数を決定して、複数のチャネル行列内の１つのチャネル行列に対応する各入力要素についてその境界セルによって占められる行における次のプロセッシングセルへ出力する。第１のモードで動作している間、境界セルは、各チャネル行列に対応する入力要素の二乗振幅の積算値の逆数をさらに決定し得る。第２のモードで動作している間、境界セルは、１に等しい第１の回転係数を出力するとともに、その入力要素の乗算値の逆数に等しい第２の回転係数を出力し得る。
【００１３】
第１のシストリックアレイの内部セルは、第２の回転係数を受信して出力するとともに、複数のチャネル行列における１つのチャネル行列に対応する各入力要素について、第２の回転係数が乗算され、かつ、チャネル行列に対応する先行する入力要素の記憶された第１の値が乗算された第１の回転係数が加算された、入力要素に等しい第１の値を決定して記憶し得る。内部プロセッシングセルは、複数のチャネル行列における１つのチャネル行列に対応する各入力要素について、第１の値に第２の回転係数を乗算して第２の値を生成するとともに、入力要素に第１の回転係数を乗算して第３の値を生成し得る。第１のモードで動作している間、内部セルは、第２の値が加算された第３の値を出力し得る。第２のモードで動作している間、内部セルは、第３の値から減算された第２の値を出力し得る。
【００１４】
いくつかの実施形態においては、第１のシストリックアレイの境界セルは、二乗振幅回路と、積算回路と、二乗平方根回路と、第１のレジスタと、第２のレジスタと、第１の乗算器と、第１の選択回路と、第２の選択回路と、第３のレジスタと、第２の乗算器とを含み得る。積算回路は、二乗振幅回路の出力に結合された第１の入力を有し得る。二乗平方根回路は、積算回路の出力に結合される入力を有し、第１の出力において入力からの値の二乗平方根を生成するとともに、第２の出力において入力からの値の二乗平方根の逆数を生成するように構成され得る。第１のレジスタは、二乗平方根回路の第１の出力に結合される入力を有し得る。第２のレジスタは、二乗平方根回路の第２の出力に結合される入力を有し得る。第１の乗算器は、第１のレジスタの出力に結合される第１の入力と、二乗平方根回路の第２の出力に結合される第２の入力とを有し得る。第１の選択回路は、第１の乗算器の出力に結合された第１の入力と、１に等しい定数を受信するように結合された第２の入力とを有し得、第１の選択回路は、第１のモードで動作している間は第１の入力の値を出力し、第２のモードで動作している間は第２の入力の値を出力するように構成される。第２の選択回路は、二乗平方根回路の第２の出力に結合された第１の入力と、第２のレジスタの出力に結合された第２の入力とを有し得、第２の選択回路は、第１のモードで動作している間は第１の入力の値を出力し、第２のモードで動作している間は第２の入力の値を出力するように構成される。第３のレジスタは、二乗振幅回路の入力に結合された入力を有し得る。第２の乗算器は、第２の選択回路の出力に結合された第１の入力と、第３のレジスタの出力に結合された第２の入力とを有し得る。
【００１５】
いくつかの実施形態においては、第３のレジスタは、二乗振幅回路、積算回路、二乗平方根回路、および第２の選択回路を通るデータパスを完了するために必要とされるサイクル数に等しい多くの値を記憶するように構成され、第１および第２のレジスタは、複数のチャネル行列におけるチャネル行列の数に等しい数の値を記憶するように構成され得る。
【００１６】
いくつかの実施形態においては、積算回路は、加算器と第４のレジスタとを含み得る。加算器は、積算器の入力に結合された第１の入力を有し得る。第４のレジスタは、加算器の出力に結合された入力と、加算器の第２の入力に結合された出力とを有し得る。これらの実施形態においては、二乗振幅回路は複数のデータパスを有し、第４のレジスタは、複数のチャネル行列内のチャネル行列の数から、二乗振幅回路および加算器を通る最長のデータパスを完了させるために必要とされるサイクル数を差し引いた数に等しい数の値を記憶するように構成され得る。
【００１７】
いくつかの実施形態においては、二乗平方根回路は、逆二乗平方根回路と、第４のレジスタと、第５のレジスタと、乗算器とを含み得る。逆二乗平方根回路は、二乗平方根回路の入力に結合された入力を有し得る。第４のレジスタは、二乗平方根回路の入力に結合された入力を有し得る。第５のレジスタは、逆二乗平方根回路の出力に結合された入力と、二乗平方根回路の第２の出力に結合された出力とを有し得る。乗算器は、第４のレジスタの出力に結合された第１の入力と、逆二乗平方根回路の出力に結合された第２の入力とを有し得る。乗算器は、第４のレジスタの出力に結合された第１の入力と、逆二乗平方根回路の出力に結合された第２の入力とを有し得る。逆二乗平方根回路は、複数のデータパスを含み得る。乗算器は、複数のデータパスを含み得る。第４のレジスタは、逆二乗平方根回路を通る最長のデータパスを完了させるために必要とされるサイクル数に等しい数の値を記憶するように構成され得る。第５のレジスタは、乗算器を通る最長のデータパスを完了するために必要とされるサイクル数に等しい数の値を記憶するように構成され得る。
【００１８】
いくつかの実施形態においては、第１のシストリックアレイの内部セルは、第１の乗算器と、第２の乗算器と、第１の加算器と、第１のレジスタと、第３の乗算器と、第４の乗算器と、選択可能な加算−減算回路とを含み得る。第１の乗算器は、第２の回転係数を受信するための第１の入力と、入力要素を受信するための第２の入力とを有し得る。第２の乗算器は、第１の回転係数を受信するための第１の入力を有し得る。第１の加算器は、第１の乗算器の出力に結合された第１の入力と、第２の乗算器の出力に結合された第２の入力とを有し得る。第１のレジスタは、第１の加算器の出力に結合された入力と、第２の乗算器の第２の入力に結合された出力とを有し得る。第３の乗算器は、第１の乗算器の第２の入力に結合された第１の入力と、第２の乗算器の第１の入力に結合された第２の入力とを有し得る。第４の乗算器は、第１のレジスタの出力に結合された第１の入力と、第１のレジスタの出力に結合された第１の入力と、第１の乗算器の第１の入力の入力に結合された第２の入力とを有し得る。選択可能な加算−減算回路は、第３の乗算器の出力に結合された第１の入力と、第４の乗算器の出力に結合された第２の入力とを有し得る。
【００１９】
いくつかの実施形態においては、第１の加算器は複数のデータパスを含み、第１の乗算器は複数のデータパスを含み、第１のレジスタは、複数のチャネル行列におけるチャネル行列の数に等しい数から第１の乗算器および第１の加算器を通る最長のデータパスを完了するために必要とされるクロックサイクル数を差し引いた数に等しい数の値を記憶するように構成され得る。
【００２０】
いくつかの実施形態においては、第１のモードで動作している第１のシストリックアレイは、第２のモードから第１のモードへ入ったことに応答して積算値をクリアする。
【００２１】
さらに他の実施形態においては、第２のシストリックアレイは、境界セルおよび内部セルを含む複数のプロセッシングセルを含むとともに、行１から行Ｎとして定義されるＮ個のプロセッシングセルの行に配列され、各行Ｍは境界セルで始まりＮ−Ｍの数に等しい数の内部プロセッシングセルが引き続く。アレイは、また、列１から列Ｎとして定義されるＮ個のプロセッシングセルの列に配列され、各列Ｌは１つの境界セルが引き続くＬ−１個の内部セルを含み得る。
【００２２】
いくつかの実施形態においては、第２のシストリックアレイの各境界セルは、第１の入力行列の要素を受信するための第１の入力選択回路と、第１の入力選択回路の出力に結合された第１の入力および第２の行列の要素を受信するための第２の入力を有する乗算器とを含み得る。第２のシストリックアレイの各内部セルは、第１の入力行列の要素を受信するための第２の入力選択回路と、第２の入力選択回路の出力に結合された第１の入力および第２の行列の要素を受信するための第２の入力を有する乗算器と、加算器とを含み得る。加算器は、乗算器の出力に結合された１つの入力と、各セルによって占められるシストリックアレイの同じ行の先行する列におけるプロセッシングセルの出力を受信するための１つの入力とを有し得る。第２の入力選択回路は、第１のモードで動作している間は第１の入力行列の要素を出力し、第２のモードで動作している間は第１の行列のクロス対角変換の要素を出力するように構成され得る。
【００２３】
さらに他の実施形態に従えば、最小二乗平均誤差等価を実行する方法は、第１のシストリックアレイにおいて、複数のチャネル行列から時分割多重化された行列の入力行列セットを受信するステップと、第１のモードで動作する第１のシストリックアレイにおいて、入力行列セットについての三角行列化を実行して、時分割多重化された出力行列の第１のセットを生成するステップとを含み得る。第１のシストリックアレイは、三角行列化が完了した後に、第１のモードから第２のモードに切換える。方法は、さらに、第２のモードで動作する第１のシストリックアレイにおいて、第１のセットについての後退代入を実行して、時分割多重化された出力行列の第２のセットを生成して出力するステップと、第２のシストリックアレイにおいて、第１のシストリックアレイからの第２の行列セット、および入力行列セットを受信するステップと、第１のモードで動作している第２のシストリックアレイにおいて、第２の行列セットについて入力行列セットを用いて左乗算を実行して時分割多重化された出力行列の第３のセットを生成するステップとを含み得る。第２のシストリックアレイは、左乗算が完了した後に、第１のモードから第２のモードへ切換える。方法は、さらに、第２のモードで動作している第２のシストリックアレイにおいて、第３の行列セットについてクロス対角変換を実行して時分割多重化された出力行列の第４のセットを生成するステップと、第２のモードで動作する第２のシストリックアレイにおいて、第２の行列セットについて第４の行列セットを用いて右乗算を実行して、時分割多重化された出力行列の第５のセットを生成するステップとを含み得る。
【００２４】
いくつかの実施形態においては、第１のシストリックアレイの出力セットは、第２のシストリックアレイの対応する入力の第１のセットに結合され得る。第１のシストリックアレイの出力セットは、第２のシストリックアレイの対応する入力の第２のセットに結合され、出力行列のセットクロス対角変換は、対応する入力の第２のセットへ提供される。第２のシストリックアレイが第１のモードで動作している間、左乗算を実行するステップは、第２の出力行列セットを用いた左乗算を実行するステップを含み得る。第２のシストリックアレイが第２のモードで動作している間、右乗算を実行するステップは、第２の出力行列のセットのクロス対角変換を用いた左乗算を実行するステップを含む。
【００２５】
さまざまな他の実施形態が、以下の詳細な説明および特許請求の範囲に記載されていることが理解されるであろう。
【００２６】
本発明のさまざまな局面および利点が、以下の詳細な説明を検討し、図面を参照することによって明らかになるであろう。
【図面の簡単な説明】
【００２７】
【図１】ＭＩＭＯ通信システムの例示的な実施形態を示すブロック図である。
【図２】ＭＭＳＥ演算を実行するように構成された２つのシストリックアレイのブロック図を示す。
【図３−１】三角行列化を実行するためのシストリックアレイの境界セルを示す図である。
【図３−２】三角行列化を実行するためのシストリックアレイの内部セルを示す図である。
【図４】複数のサブキャリアからの時分割多重化された入力を用いて三角行列化を実行するように構成された例示的なシストリックアレイを示す図である。
【図５】ＭＩＭＯ受信器において、複数のサブキャリアのチャネルシンボルをデコードするためのプロセスのフローチャートを示す図である。
【図６】ササブキャリアグルーピングを実行するように構成されたＭＩＭＯ受信器のブロック図を示す。
【図７】サブキャリアグルーピングを実行するように構成された第２の例示的なＭＩＭＯ受信器のブロック図を示す。
【図８】サブキャリア選択回路を有するシストリックアレイのブロック図である。
【図９】三角行列化および後退代入を実行するための、シストリックアレイの境界セルを実現するための例示的な回路のブロック図である。
【図１０】三角行列化および後退代入を実行するための、シストリックアレイの内部セルを実現するための例示的な回路のブロック図である。
【図１１】左乗算、右乗算、およびクロス対角変換を実行するための、シストリックアレイの実行例のブロック図である。
【図１２】サブキャリアグルーピングを用いてＭＩＭＯデコーダを実現するように構成され得るプログラマブル集積回路のブロック図である。
【発明を実施するための形態】
【００２８】
詳細な説明
複数入力複数出力（multiple input multiple output：ＭＩＭＯ）システムにおいて、複数の（Ｍ個の）送信アンテナは、複数（Ｎ個の）受信アンテナへ、並列に個別のシンボルを送信する。受信アンテナの各々は、送信アンテナから送信された個別シンボルの加重和を受信する。各送信アンテナによって送信されたシンボルをデコードまたは分離するためのさまざまなアルゴリズムが存在する。デコード演算において、ストリーミングスループットを増加するためにシストリックアレイが用いられ得る。シストリックアレイは、個別の信号処理ユニットまたは「セル」の相互接続された行列であり、セルは、入力行列の個別の要素を処理するとともに処理された出力を変換して、全体の演算を実行する。しかしながら、現在のアルゴリズムを用いるＭＩＭＯでコーディングの内容において、シストリックアレイは、連続的に流れる入力間の依存性にさらされ、１つの要素の処理は、先行して処理した要素の計算値に依存する。したがって、入力要素は、先行する要素の処理が完了するまで、処理することができない。
【００２９】
記載された実施形態は、非依存性要素が入力行列の依存性要素間で処理されるように非依存性行列の入力要素をグルーピングすることによって、シストリックアレイで実現されたＭＩＭＯデコーダにおけるスループットを改善する。この態様において、入力要素は、先行する要素の処理が完了する前にプロセッシングセルによって入力され、かつ処理され得る。記載された実施形態は、２つのシストリックアレイを用いてＭＩＭＯデコーダを実現することによって、シストリックアレイで実現されたＭＩＭＯデコーダにおけるスループットをさらに改善し、２つのシストリックアレイの１つは三角行列化および後退代入のためのものであり、２番目は右乗算および左乗算ならびにクロス対角変換のためのものである。２つのアレイを用いてでコーディング機能を実現することによって、グルーピングされた入力のセットについて、先行するグルーピングされた入力のセットの後退代入が完了するとすぐに、三角行列化を開始することができる。
【００３０】
図１は、ＭＩＭＯ通信システムの例示的な実施形態を示すブロック図である。ＭＩＭＯ送信器は複数のアンテナ１０４を有し、その各々は、異なるシンボルのセットを並列に送信する。アンテナ１０６は、受信器フロントエンド１１０のための信号をそれぞれ受信する。受信器フロントエンド１１０の出力は、チャネル推定回路１２０へそれぞれ提供される。チャネル推定回路からの出力１０８は、ＭＩＭＯデコーダ１３０へ提供される。ＭＩＭＯデコーダ１３０は、複素ギブンズ回転（Givens rotation）ブロック１３２を含む。ＭＩＭＯデコーダ１３０は、デコードされたデータシンボル１１０を出力する。
【００３１】
Ｍ個の送信アンテナとＮ個の受信アンテナとの間の通信チャネルについてのモデルは以下の式で表わされる。
【００３２】
ｙ＝Ｈｘ＋ｎ
ここで、ＨはＮ個の受信アンテナとＭ個の送信アンテナ間のＮ×Ｍのチャネル行列であり、ｘは送信アンテナから送信されたＭ個のシンボルの列ベクトルであり、ｎはＮ個の受信ノイズ成分の列ベクトルであり、ｙは受信アンテナにおいて受信されたＮ個の信号の列ベクトルである。列ベクトルｘにおけるＭ個の送信シンボルの各々は、ｗ個のシンボルの順位を有するコンステレーションからのシンボルである。
【００３３】
送信されたシンボルの推定ｘは、受信信号ベクトルｙに乗算することができる重み行列Ｗを見出すことによって演算することができる。重み行列Ｗは、Ｈの逆数の最小二乗平均誤差（minimum mean square error：ＭＭＳＥ）を用いて演算することができる。ＭＭＳＥ解は、以下の式によって与えられる。
【００３４】
Ｗ=（ＨHＨ＋σ2ＩnT）-1ＨH
上記のＭＭＳＥ解は、ＨHＨ行列の生成を必要とする。さまざまな解法において、以下のように定義される拡張チャネル行列を用いることによって、ＨHＨ乗算を避けることができる。
【００３５】
【数１】
0005492307.tif 000002
【００３６】
双方の解は、Ｈ行列の逆行列を必要とする。これは、以下のようなＱＲ分解を通して達成される。
【００３７】
【数２】
0005492307.tif 000003
【００３８】
拡張チャネル行列解の場合において、拡張行列のＱＲ分解は以下のように表現することができる。
【００３９】
【数３】
0005492307.tif 000004
【００４０】
下段のブロックの等価によって、以下の解が得られる。
【００４１】
【数４】
0005492307.tif 000005
【００４２】
Ｑ1は、上段ブロック行列の等価によって、以下のように計算することができる。
【００４３】
【数５】
0005492307.tif 000006
【００４４】
ＭＭＳＥ  ＱＲ分解を通した重み行列の計算は、１つまたはより多くのシストリックアレイを用いて実現され得る。シストリックアレイは、個々の信号処理ユニットまたはセルが相互接続された行列であり、シストリックアレイの全体の演算は、個々の信号処理セルの機能およびそのような信号処理セルの相互接続スキームに依存する。クロック信号が、シストリックアレイに印加されて、各セルを流れるデータを制御する。あるいは、個々のセルの演算は、入力データオブジェクトの到達によって起動されてもよい。
【００４５】
いくつかのシストリックアレイの相互接続スキームは、シストリックアレイ内の最も近く隣接する信号処理セル間のみの相互接続を含み得る。しかしながら、相互接続スキームは最も近く隣接する相互接続のみを有することには限られない。
【００４６】
行列処理演算においては、行列要素は、要素の関係および実行されるべき機能に従ってセル間を通過する。たとえば、行列乗算は、行列の１つの行をアレイの上部から一度に入力することによって実行され、アレイの下部へと通過する。他方の行列は、アレイの左手側から１つの列を一度に入力し、左から右へと通過する。各セルが、１つの全体の行および１つの全体の列を処理すると、乗算結果がアレイ内に記憶されるとともに、行または列を一度に出力して、アレイの横方向または下方へと流れる。
【００４７】
【数６】
0005492307.tif 000007
【００４８】
シストリックアレイセルは、ＭＭＳＥ計算の各機能を実行するために、異なるモードで動作するように構成され得る。このように、いくつかのシストリックアレイ構成は、実行されるべき各機能について、異なるモードを用いて、単一のシストリックアレイ内のＭＭＳＥ計算のすべての機能を実行する。あるいは、ＭＭＳＥ計算のいくつかの機能は、異なるシストリックアレイによって実行されてもよく、そのような構成においては、１つのアレイの出力行列は、次のアレイへ入力として送られる。
【００４９】
図２は、ＭＭＳＥ計算を実行するよう構成された２つのシストリックアレイのブロック図を示す。この実行例においては、計算の処理は、２つのシストリックアレイ間で分割される。第１のシストリックアレイ２１０は、チャネル行列２０２を受信するとともに、三角行列化および後退代入を実行するように構成される。シストリックアレイ２１０の出力は、第２のシストリックアレイ２２０へ提供され、第２のシストリックアレイ２２０は、右乗算および左乗算演算を実行するように構成される。出力されたシストリックアレイ２３０は、チャネル推定器２３０において受信ベクトル２０４と乗算されて、受信チャネルの推定を生成する。シストリックアレイ２１０，２２０は、それぞれ、境界セル２１４，２２４および内部セル２１２，２２２を含む。境界セルの実行は、内部セルとは異なっている。境界セルは、内部セルへと通過した、および／または、内部セルによって更新された初期値を計算するように構成される。たとえば、三角行列化において、境界セルは、内部セルを通過し、かつ内部セルによって適用される回転係数を計算するように構成される。
【００５０】
シストリックアレイは、高速で、かつＭＩＭＯアンテナの数が増加するにつれて容易に拡張できる点で有利である。しかしながら、シストリックアレイは、ＭＭＳＥ計算のいくつかの機能における連続的な行列要素間の依存性による特有の時間遅れの影響を受ける。たとえば、拡張チャネル行列の三角行列化の実行において、プロセッシングセルにおける行列要素は、行列の先行する要素の計算結果に依存する。したがって、行列の列または行の各要素は、先行する要素の処理が完了するまで処理することができない。
【００５１】
図３−１および図３−２は、シストリックアレイにおいて三角行列化を実行するためのセルのブロック図を示す。図３−１は、三角行列化を実行するための境界セルを示す。境界セル３０２は、隣接する内部セルへと通過する回転係数ｃおよびｓを演算する。回転係数は、最初はｃ＝１およびｓ＝０であり、受信された入力と前のｃおよびｓの計算からの積算値とに基づいて演算される。ｃおよびｓの計算は以下の式によって与えられる。
【００５２】
ｒnew＝（ｒold2＋ｘ2）1/2
ｃ＝ｒold／ｒnew
ｓ＝ｘ／ｒnew
行列の各要素が各セルに入力され、各セルによって処理されるときに回転係数が計算されかつ更新される。回転係数ｃ，ｓの計算においては、ｒnewの値はｒoldの値に依存し、ｒoldはチャネル行列の前に処理された要素から計算される。
【００５３】
図３−２は、三角行列化を実行するための内部セルを示す。内部セル３０４は、シフトレジスタ（図示せず）が引き続く積算器の入力において、２つの乗算器で構成される。内部セル３０４は、先行するセルにおいて演算された回転係数ｃおよびｓを入力行列の他の列に適用する。入力ｃおよびｓは、境界セルまたは先行する内部セルから回転係数を受信する。これらの回転係数は、入力要素ｘに適用され、隣接する内部セルに沿って通過する。出力ｘは、回転係数ｃおよびｓと、前の入力の計算からの積算値とを用いて計算される。そして、回転係数ｃおよびｓは、アレイ内の次の内部セルへと通過する。出力ｘの計算は以下の式によって与えられる。
【００５４】
Ｘout＝−Ｓ・ｒ＋ｃ・Ｘin
ｒ（ｎｅｗ）＝ｃ*・ｒ＋ｓ*・Ｘin
Ｘoutの値の計算において、ｒnewの値は、チャネル行列の前に処理された要素から計算されるｒoldの値に依存する。
【００５５】
内部セルおよび境界セルによって実行される演算は前の入力値から決定される積算値に依存するので、依存する要素が処理されるまで、チャネル行列の要素を入力することができない。たとえば、ハードウェアにおいては、内部セルによって実行される複素乗算は、少なくとも４サイクルかかる。シストリックアレイの前の実行例においては、シストリックアレイへの入力は、更新されたｃおよびｓの値が計算されるまで停止され、アルゴリズムのボトルネックを生成するとともに、ストリーミングの時間遅れを延長する。
【００５６】
図２の実施形態は、依存性チャネル行列の処理間における異なるチャネル行列要素からの非依存性入力を処理することによって、シストリックアレイのスループットを改善する。この態様において、先行する要素の処理が完了する前に、要素が入力され、かつプロセッシングセルによって処理される。
【００５７】
図２のシストリックアレイおよび図３−１，３−２のプロセッシングセル実行例は、例示的な目的のために説明される。本発明は、ＭＭＳＥを実行する他のシストリックアレイ、および、ゼロフォーシングのような連続的な入力要素間の特有の依存性を有する他の推定アルゴリズム、または他の線形ＭＩＭＯデコーディングアルゴリズムに適用可能であることが理解される。依存性は、いくつかのサブキャリアに対応するいくつかのチャネル行列の要素をグルーピングすることによって破られる。サブキャリアは、いくつかのＭＩＭＯシステムにおいて利用される。たとえば、３ＧＰＰ−ＬＴＥシステムは、１００個の１８０ｋＨｚのリソースブロックに分割される、２０ＭＨｚのキャリアバンドを用いる。各リソースブロックは、１５ｋＨｚの周波数領域に間隔を有する１２個のサブキャリアを含む。記載される実施形態は、各サブキャリアから受信したシンボルを、分離してチャネル行列に配置するとともに、同じ行および列のインデックスのサブキャリアの要素をグルーピングする。サブキャリアのグルーピングは、プロセッシングセルの全体のストリーミングの時間遅れを最小化する。
【００５８】
サブキャリアは、ＭＩＭＯデコーダシステムを、連続的、つまり時分割多重化の態様にする。したがって、サブキャリアからの非依存性データは、ストリーミングの時間遅れを短縮するためにグループに形成され、システムスループットを増加させる。たとえば、２×２ＭＩＭＯシステムにおいて２つのサブキャリアＡ，Ｂが用いられるシステムにおいては、シストリックアレイに流れる入力は、チャネル行列の第１の行に対応するＨA11，ＨB11，ＨA12，ＨB12と、チャネル行列の第２の行に対応するＨA21，ＨB21，ＨA22，ＨB22である。この例において、ＨA12は、行インデックス１および列インデックス２におけるサブキャリアＡのチャネル行列要素であり、ＨB12は、行インデックス１および列インデックス２におけるサブキャリアＢのチャネル行列である。
【００５９】
グルーピングまたはインターリーブされた入力が、シストリックアレイを通過して流れるとき、次の依存性要素が入力されるまで、各プロセッシングセルは依存性変数を記憶しなくてはならない。上記の２つのサブキャリアの例においては、ＨA11から計算される回転係数は、依存性要素ＨA12が入力として受信されるまで記憶されなくてはならない。各サブキャリアの回転係数の記憶の１つの方法は、シフトレジスタを使用することである。例として図３−１の境界セルを用いると、境界セルは、積算器およびシフトレジスタか引き続く、振幅二乗（｜ｘ｜2）モジュールからなる。シフトレジスタは、サブキャリアの各々についての変数を処理しかつ記憶するのに十分深く（deep）なくてはならない。最適な状況においては、サブキャリアの数は、最長の遅延を有するプロセッシングセルの処理遅延の長さよりも大きくなるように選択される。このようにして、各セルの内部処理ステージは、同時に利用される。上述したように、図３−２の内部セルの複素乗算は４クロックサイクルかかるので、３ＧＰＰ−ＬＴＥにおいては、１２個のサブキャリアのグルーピングが最適なグルーピングである。
【００６０】
例示の目的のために、以下の例では、２つのサブキャリアのグルーピングを有するシストリックアレイの動作を示す。任意の数のサブキャリアを使用してもよいことが理解される。
【００６１】
図４は、グルーピングされたサブキャリア入力で三角行列化を実行するように構成された例示的なシストリックアレイを示す。拡張チャネル行列ＨAB４５０は、サブキャリアが、どのようにシストリックアレイ４００への入力としてグルーピングされるかを示す。いくつかの実施形態は、グループ化された行列をインターリーブされたと称し、本明細書においては、そのような用語は相互交換可能に使用される。グルーピングされた拡張チャネル行列ＨABは、入力について縦方向に向けられた４つの行４５１，４５２，４５３，４５４を含む。グルーピングされた拡張チャネル行列ＨABは、連続的にシストリックアレイに入力され、行のサブキャリアＡ，Ｂの要素は、同じシストリックアレイによって受信されるとともに同じセルによって処理される。計算に用いられる変数は、各チャネル行列のために分離されたレジスタに保持されるので、サブキャリアＡ，Ｂの連続的に処理された要素は、他方のＲ計算と干渉することなく、同じプロセッシングセルによって独立して処理され得る。
【００６２】
行列ＨABの第１の行４５１は、上部の最も左にある境界セル４０１へとクロックされる。行列ＨABの第２の行４５２は内部セル４０２へとクロックされ、行列ＨABの第３の行４５３は内部セル４０３へとクロックされる。最後に、記載された実施例について、行列ＨABの第４の行４５４は、内部セル４０４へとクロックされる。各行は、ａijとして示される行ｉ列ｊにおけるサブキャリアＡの要素およびｂijとして示される行ｉ列ｊにおけるサブキャリアＢの要素を伴う列インデックスに従ってグルーピングされたサブキャリアＡ，Ｂの要素を有する。
【００６３】
クロック遅延によって、直接的に実行されるべき計算のためにゼロパディング（zero padding）が用いられる。そのため、行列ＨABの入力についての第１の入力行４０１は、セル４０１から４０４へのそれぞれの入力として、Ｈ１，０，０，０である。さらに、行列ＨABの入力についての第２の入力行４０２は、セル４０１から４０４へのそれぞれの入力として、０，Ｈ２，０，０の値を含む。行列ＨABの入力についての第３の入力行４０３は、セル４０１から４０４へのそれぞれの入力として、０，０、Ｈ３，０である。示された例示的な実施形態においては、行列ＨABの入力についての第４の入力行４０４はゼロパディングを含まないが、行４０４の後の入力行は、示された例示的な実施形態においてはゼロパディングを含む。したがって、行列ＨABの行４５１から４５４は、乗算について、ゼロパディングによってずらされるように入力され得る。
【００６４】
ＨABが入力されると、三角行列化が実行され、チャネル行列ＨAに対応する行列Ｒおよびチャネル行列ＨBに対応する行列Ｒ’を含む演算された（trained）レジスタ値が各セルに残される。シストリックアレイ４００の右側において、出力４６０が得られ得る。
【００６５】
シストリックアレイが異なるモードで動作し、ＭＭＳＥ計算のさらなる演算を実行するように構成されている場合は、入力のサブキャリアグルーピングが同様に実行される。たとえば、シストリックアレイが三角行列化に加えて後退代入を実行するように構成される場合は、各セルは三角行列化に続いて後退代入モードに切換え、記憶されたＲおよびＲ’の値を用いて逆演算を実行する。後退代入の後、各セルは、Ｒ-1およびＲ’-1の値を含むように演算される。インターリーブされた行列ＲAB-1は、シストリックアレイ４００の右側においての出力４６０へシフトされる。あるいは、シストリックアレイがさらに他のモードで動作して左乗算演算を実行するように構成される場合には、演算された値Ｒ-1およびＲ’-1は、出力へシフトされないが、左乗算演算を実行するために各セル内に保持される。いくつかの実施形態においては、シストリックアレイ内の演算され記憶された値は剰余（residue）と称され、本明細書においてはそのような語句は相互交換可能に用いられる。
【００６６】
図５は、ＭＩＭＯ受信器における複数のサブキャリアのチャネルシンボルをデコードするための処理のフローチャートを示す。サブキャリアＡに対応するチャネル行列ＨA、およびサブキャリアＢに対応するチャネル行列ＨBは、ステップ５０２にて受信される。ステップ５０４にて、行列ＨAおよびＨBがインターリーブされて、チャネル行列ＨABが生成される。ステップ５０６において、信号標準偏差に等しい振幅行列式を有するスカラー乗算された恒等行列が行列ＨABの下部に付加されて、拡張チャネル行列Ｈが生成される。
【００６７】
代替的に、行列ＨAおよびＨBは、ステップ５０６にて、別々に処理されて拡張チャネル行列ＨAおよびＨBが生成され、その後それらがインターリーブされて拡張チャネル行列Ｈが生成されてもよい。
【００６８】
ステップ５０８にて、拡張チャネル行列Ｈについて、シストリックアレイを用いて上右三角行列化が実行され、シストリックアレイを三角行列化された行列Ｒを用いて調整する。ステップ５１０にて、逆行列Ｒ-1を得るためにＲについて後退代入が実行される。ステップ５１２にて、行列Ｑ1を得るために、Ｒ-1を用いた拡張チャネル行列Ｈの左乗算が実行される。ステップ５１３にて、Ｑ1’を得るために、行列Ｑ1についてクロス対角変換が実行される。ステップ５１４にて、重み行列Ｗを得るために、Ｒ-1を用いたＱ1’の右乗算が実行される。
【００６９】
ステップ５１６にて、重み行列Ｗは、サブキャリアＡに対応するＷAおよびサブキャリアＢに対応するＷBに逆多重化される。受信シンボル行列ｙが、ステップ５１８にて取得され、サブキャリアＡに対応する送信シンボル行列ＸAの推定を取得するためにステップ５２０にて行列ＷAを用いて右乗算され、サブキャリアＢに対応する送信シンボル行列ＸBの推定を取得するためにステップ５２２にて行列ＷBを用いて右乗算される。推定されたデータシンボル５２４は、ＸAおよびＸBから出力される。
【００７０】
図６は、チャネル推定ブロック６０２およびＭＩＭＯデコーダ６１０を含む、ＭＩＭＯ受信器６００のブロック図である。チャネル推定ブロック６０２は、チャネル行列Ｈの形式で構成され得る各サブキャリアのチャネル係数をＭＩＭＯ受信器６１０へ提供する。ＭＩＭＯデコーダ６１０は、前処理ブロック６０６と、行列処理ブロック６０８と、後処理ブロック６２０とを含む。メモリユニット６７０が、ＭＩＭＯデコーダ６１０に結合され、デコーディング処理の間に生成される中間行列を記憶するために用いられる。この実行例においては、前処理ブロック６０６は、時分割マルチプレクサブロック６０４と、拡張行列ブロック６０５とを含む。時分割マルチプレクサブロック６０４は、サブキャリアチャネル係数を、インターリーブされたチャネル行列ＨABにグルーピングする。行列ＨABは、拡張行列ブロック６０６によって受信され、拡張行列ブロックは、インターリーブされたチャネル行列ＨABの下部に、信号標準偏差に等しい振幅行列式を有するスカラー乗算された恒等行列を追加し、両方のサブキャリアを含む拡張チャネル行列Ｈを提供する。
【００７１】
行列処理ブロックは、拡張チャネル行列についてＭＭＳＥ演算を実行して、重み行列Ｗを生成する。行列処理ブロック６０８は、２つのシストリックアレイブロック６１２および６１６を含む。シストリックアレイブロック６１２は、拡張チャネル行列Ｈを受信し、三角行列化および後退代入を実行して行列Ｒ-1を生成するように構成される。シストリックアレイブロック６１６は、Ｒ-1を受信するとともに、もとのチャネル行列ＨABを用いて右および左乗算を実行して、重み行列Ｗを生成する。後処理ブロックは、重み行列Ｗを個別のサブキャリアに逆多重化し、シンボル選択ベクトルｙによって各々を乗算して各サブキャリアについての推定シンボル行列Ｘを出力する。
【００７２】
図７は、チャネル推定ブロック７０２およびＭＩＭＯデコーダ７１０を含む、第２の例示的なＭＩＭＯ受信器７００のブロック図である。図６に示された受信器と同様に、チャネル推定ブロック７０２は、ＭＩＭＯデコーダ７１０に、チャネル行列Ｈの形式で構成される各サブキャリアのチャネル係数を提供する。ＭＩＭＯデコーダ７１０は、前処理ブロック７０６と、行列処理ブロック７０８と、後処理ブロック７２０とを含む。メモリユニット７７０は、ＭＩＭＯデコーダ７１０に結合され、デコーディング処理の間に生成される中間行列を記憶するために用いられる。
【００７３】
ＭＩＭＯデコーダ７１０は、デコーダに入力されるチャネル行列が前処理ブロックによって異なるように構築されている点において、図６に示されるものと異なっている。この例においては、拡張行列ブロック７０４は、各サブキャリアについて個別に拡張チャネル行列を計算して、ＨAおよびＨBを生成する。時分割マルチプレクサブロック７０５は、時分割多重化を用いてＨAおよびＨBをインターリーブして、行列処理ブロック７０８へ入力行列ＨABを提供する。時分割多重化ブロックは、ＨABを計算してその行列をメモリ内に記憶してもよいし、ＨAおよびＨBが行列処理ブロックへストリーミングするように、ＨAおよびＨBをインターリーブしてもよい。ストリーミング中にＨAおよびＨBがインターリーブされる場合、時分割多重化ブロック７０５は、行列要素が受信されるたびにサブキャリア入力を通して循環する（cycle）ように構成されたマルチプレクサによって実現されてもよい。前処理ブロックの時分割マルチプレクサブロックは、シストリックアレイの各入力に対応する、単一の回路または複数の前処理回路によって実行されてもよいことが理解される。
【００７４】
行列処理ブロック７０８は、図６の処理ブロックと同様な態様で、インターリーブされた入力についてのＭＭＳＥ演算を実行し、重み行列Ｗを生成する。行列処理ブロック７０８は、２つのシストリックアレイブロック７１２および７１６を含む。シストリックアレイブロック７１２は、三角行列化および後退代入を実行して行列Ｒ-1を生成するように構成される。シストリックアレイブロック７１６は、Ｒ-1を受信するとともに、もとのチャネル行列ＨABを用いて右および左乗算を実行して、重み行列Ｗを生成する。後処理ブロックは、重み行列Ｗを個別のサブキャリアに逆多重化し、シンボル選択ベクトルｙによって各々を乗算して各サブキャリアについての推定シンボル行列ｘを出力する。
【００７５】
図８は、シストリックアレイに接続されるサブキャリア選択回路のブロック図である。この例は、図７のチャネル選択回路の動作を示す。時分割マルチプレクサ回路８０６は、サブキャリア８０２および８０４の拡張チャネル行列からの入力を受ける。拡張チャネル行列の適当な行が、境界セルと内部セルのサブセットを含むシストリックアレイ８２０の入力行へ、入力としてストリーミングされる。代替的な構成においては、個別の時分割マルチプレクサ回路が、シストリックアレイへの各入力のために用いられてもよい。
【００７６】
図６および図７に示された行列処理ブロックは、１つずつのシストリックアレイ、すなわち、マルチモードシストリックアレイ用の単一の境界セルで実現されてもよいことが理解されるべきである。さらに、ＭＩＭＯデコーダ６０８および７０８はＰＬＤにおいて全面的に実現されてもよく、そのようなＰＬＤにおいて、メモリ６７０，７７０、およびチャネル推定ブロック６０２，７０２のいずれか、または双方を実行することを含んでもよい。
【００７７】
図９は、図３−１に示される第１のシストリックアレイの境界セルを実現するために用いられ得る、プロセッシングセルの例示的な実施形態を示す回路のブロック図である。境界セル９００は、第１の三角行列化モードおよび第２の後退代入モードで動作するように構成される。第１のモードで動作している間、境界セルは、二乗振幅ブロック９０２および遅延９０８への入力Ｘinを受ける。
【００７８】
二乗振幅ブロックの出力は、積算器ブロック９１０によって受信される。積算器ブロック９１０は、遅延９１４によって引き継がれる入力を受信するように結合された第１の入力を有する加算器９１２を含む。遅延９１４の出力は、加算器９１２の入力にループバックされる。遅延のサイズは、時分割多重化されたサブキャリアの数から加算器によって用いられるクロックサイクルの数を差し引いた数に選択される。加算器の出力は、積算器によって出力される。
【００７９】
積算器ブロック９１０の出力は、二乗平方根ブロック９２０によって受信される。二乗平方根ブロック９２０は、積算器ブロック９１０の出力の二乗平方根および逆二乗平方根を計算し出力する。図９に示される実行例においては、二乗平方根ブロックは、逆二乗平方根を計算するための回路９２２を含み、それに、逆二乗平方根と受信された入力とを乗算して入力の二乗平方根を生成するように結合される乗算ブロック９２８が引き続く。遅延９２４および９２６が、処理される際に時分割多重化されたデータを整列させるために含まれる。遅延９２４の量は、逆二乗平方根回路９２２によって用いられるクロックサイクル数となるように選択される。遅延９２６の量は、乗算ブロック９２８によって用いられるクロックサイクル数となるように選択される。
【００８０】
二乗平方根ブロック９２０の出力は、遅延９３０，９３２によって受信される。これらの遅延は、時分割多重化された入力要素の次のセットを処理するための、二乗平方根ブロックの出力を記憶するために用いられる。二乗平方根回路９２０における遅延９２６からの現在の逆二乗平方根出力は、乗算ブロック９３４によって、遅延９３０に記憶された前の二乗平方根と乗算される。乗算ブロック９３４により生成された出力は、マルチプレクサブロック９４２によって、境界セルの回転係数ｃ出力９５２へと転送される。
【００８１】
二乗平方根回路９２０によって出力された現在の逆二乗平方根は、乗算器ブロック９４６による入力ｘ９５６を用いた乗算のために、マルチプレクサ９４０によって選択される。乗算のために用いられる入力ｘの値は、遅延９０８から来る。遅延９０８のサイズは、二乗振幅ブロック９０２、積算器９１０、二乗平方根ブロック９２０、およびマルチプレクサ９４０によって用いられるクロックサイクル数と同じものに選択される。この例においては、遅延９０８は、２１サイクルに設定される。乗算ブロック９４６の結果は、回転係数ｓ出力９５０に出力される。
【００８２】
モード入力９４６は、第１のモードまたは第２のモードで選択的に動作するように境界セル回路を設定するために用いられる。境界セルが第２のモードで動作する場合、マルチプレクサ９４２は、回転係数ｃ出力９５２について１の定数を選択し、マルチプレクサ９４０は、乗算ブロック９４６による乗算のために、遅延９３２内に記憶された前の逆二乗平方根の値を選択する。マルチプレクサブロック９４６の結果は、回転係数ｓ出力９５０に出力される。
【００８３】
時分割多重化された入力の１つのセットが完了すると、時分割多重化された入力の次のセットについて三角行列化を実行することができるように、遅延回路内の記憶された値はクリアされなければならない。境界セルが第２のモードから第１のモードへ切換わると、時分割多重化された入力の各々のセットにグルーピングされたサブキャリアの数に等しい数のクロックサイクルについて、開始信号９５４がハイの値に設定される。開始信号９５４は、遅延９０４によって、二乗振幅ブロック９０２で用いられるクロックサイクルの数だけ遅延される。開始信号の値がハイの間、ＡＮＤゲート９１６は加算器９１２のフィードバック入力にゼロを出力する。このようにして、前に積算された値がキャンセルされる。開始信号は、遅延９０６によっても受信され、かつ遅延される。遅延９０６の出力は、マルチプレクサ９４２のクリア制御ポートへ送られる。開始信号がハイの値に設定されている間、マルチプレクサは、境界セルによって出力されるｃ値９５２としてゼロの値を出力するように構成される。
【００８４】
遅延は固定サイズのレジスタで実現されてもよいことが理解される。あるいは、時分割多重化された入力にグルーピングされたサブキャリアの数に依存する遅延の値を有する遅延は、サブキャリアグルーピングサイズを調整するためのシストリックアレイによって構成され得るプログラム可能な遅延を用いて実行されてもよい。
【００８５】
図１０は、図３−２に示された内部セルの例示的な実施形態を示す回路図である。内部セル１００への回転係数入力ｓ１００４および回転係数入力ｃ１００６は、他の内部セルまたは境界セルからのものであり得る。さらに、そのような回転係数入力ｓおよびｃは、内部セル１００から他の内部セルに提供され得る。内部セル１０００への入力Ｘinは、他の内部セルからのＸoutまたはシストリックアレイへ提供されるＸinデータであり得る。
【００８６】
Ｘinは、乗算器１０１０，１０２６の入力として与えられる。Ｘinは、乗算器ブロック１０１０によって、回転係数ｓと乗算される。乗算器１０１０の出力は、遅延１０２２が続く加算器１０２０によって受信される。遅延１０２２のサイズは、時分割された入力の各セットにグルーピングされたサブキャリアの数から乗算器１０１０および加算器１０２０によって必要とされるクロックサイクル数を差し引いた数に等しくなるように選択される。遅延１０２２の遅延された出力はループバックされて、乗算ブロック１０１２によって回転係数ｃと乗算される。乗算ブロック１０１２が実数値の乗算を行ない、乗算器ブロック１０１０が複素数の乗算を行なうことに注意すべきである。この例においては、乗算器１０１０は、乗算器１０１２よりも多く１を採用する。時分割された入力要素を揃えるために、乗算器１０１２の出力は、遅延１０１４によって１サイクル遅延される。１０１４の遅延された値は、加算器１０２０によって受信され、乗算器１０１０から受信された出力に加算される。
【００８７】
遅延１０２２における積算値は、乗算器ブロック１０２４によって、回転係数ｓと乗算される。回転係数ｃは、乗算器ブロック１０２６によって、Ｘinと乗算される。乗算器１０２４，１０２６の出力は、選択可能な加算／減算ブロック１０４０によって受信される。内部セルが第１の三角行列化モードで動作している場合、加算／減算ブロック１０４０は、乗算器１０２６の出力から乗算器１０２４の出力を減算する。内部セルが第２の後退代入モードで動作している場合、加算／減算ブロック１０４０は、乗算器１０２４の出力を乗算器１０２６の出力に加算する。そして、加算／減算ブロック１０４０の出力は、ハードリミッタ１０５２によって丸められ、Ｘout１０５２が生成される。
【００８８】
境界セルにおいて説明された機能は、修正されたギブンズ回転行列を演算するとともに、もともとのベクトルに回転を適用した後に剰余値をも生成し得ることが理解されるべきである。行列の他の列へ回転を適用するために、内部セルの機能が用いられる。
【００８９】
ＭＩＭＯデコーダについて、時間遅れ要件は、Ｔｓ（シンボル周期／１２００サブキャリア）＝１ｍｓｅｃ／（１２＊１２００）であるように、３ＧＰＰ−ＬＴＥの仕様によって定義される。これらの仕様は、ＭＩＭＯデコーダに、６９．４４ｎｓ（１４．４ＭＨｚ）ごとに、新しいＭＭＳＥ解を出力することを要求する。
【００９０】
４×２のチャネル行列について、ＭＭＳＥ演算を処理するために、２×２のシストリックアレイが必要とされる。三角行列化について、セルは、拡張行列入力−各サブキャリアについての６行の入力、もともとのチャネル行列からの４行の入力、および他の２つはシグマとゼロ−を要求する。１２個のサブキャリアについて、トータル１２×６＝７２個の入力データ要素が、ＴＤＭ様式で、サブキャリアごとに、そして行ごとに入力される。
【００９１】
第１のシストリックアレイの全体の時間遅れは、第２の入力セットの処理が開始される前に、１２個のサブキャリアに対応する設定された時分割多重化された入力を処理するために必要とされるクロックサイクル数によって定義される。図９に示されるように、第１のシストリックアレイの各境界セルは、最長のデータパスに沿って２４クロックサイクルの時間遅れを有する。第１のシストリックアレイの内部セルは、７クロックサイクルの時間遅れを有する。１２個のサブキャリアの４×２のチャネル行列についての、第１のシストリックアレイの時間遅れは、三角化行列演算を完了するために、２４＋７＋２４＋７２＝１２７クロックである。この時点において、逆二乗平方根値が、図９に示される遅延９３２に記憶され、境界セルのＳ出力において準備されていることに注意すべきである。後退代入演算は、必要とされる逆二乗平方根値が利用可能になるとすぐに開始することができる。後退代入演算を開始してＲ-1の要素を計算するために、１２個の１の入力が境界セル１に入力されるとともに、１２個のゼロが内部セル１に入力されることのみが必要とされる。後退代入からすべての出力を得るために、さらに１２クロックサイクルがかかる。しかしながら、一旦Ｒ-1の第１の要素が利用可能になると、第２のシストリックアレイは、処理を開始して左および右乗算を実行することができ、これは、１２個のサブキャリアの他のセットが第１およびアレイに入力されることを意味する。これは、追加の１サイクルが必要とされるだけである。全体として、４×２の系について、第１のシストリックアレイの時間遅れは１２８クロックサイクルである。２×２の系については、第１のシストリックアレイの時間遅れは１０４クロックサイクルである。
【００９２】
図１１は、左乗算、クロス対角変換、および右乗算を実行するための、例示的なシストリックアレイのブロック図である。例示的なシストリックアレイは、１１１１，１１２２，１１３３のような境界セルと、内部セル１１１２，１１１３，１１２３とを備える。シストリックアレイは、左乗算を実行するための第１のモード、および右乗算を実行するための第２のモードで動作するように構成される。積ＡＢを生成するための行列Ｂを用いた行列Ａの左乗算は、時折、Ｂを用いたＡの後乗算（post-multiplication）、またはＡを用いたＢの事前乗算（pre-multiplication）と称され、本明細書においては、そのような用語は相互交換可能に使用される。
【００９３】
第１のモードで動作している間、行列Ｒ-1の行Ｌにおける各要素をチャネル行列Ｈの列Ｌにおけるそれぞれの要素と乗算することによって、左乗算が実行される。境界セルは、２つの要素の積を計算し、その結果を、シストリックアレイ内の同じ行における隣接した内部セルへ出力する。内部セルは、シストリックアレイ内の同じ行におけるプロセッシングセルからの出力を追加的に受信する。内部セルは、行列Ｒ-1の受信要素とＨとの積を計算し、その積と先行するプロセッシングセルから受信した出力との和を出力する。シストリックアレイの各行における最終プロセッシングセルは、行列Ｑの行を出力する。
【００９４】
第２のモードで動作している間、プロセッシングセルは、行列Ｑを用いた行列Ｒ-1の右乗算を実行するように構成される。なお、左乗算の積Ｒ-1Ｑは、右乗算の積ＱＲ-1と必ずしも同じである必要がないことに注意すべきである。シストリックアレイは、行列のクロス対角変換とともに左乗算を実行することによって右乗算を実行する。行Ｍおよび列Ｌを含むＮ×Ｎ行列Ｔのクロス対角変換は、Ｔ’として示されるが、ＴM,L＝Ｔ’(N-L+1),(N-M+1)となるように、列と行とを本質的に入れ換える。クロス対角変換の積は、以下の式によって与えられる。
【００９５】
（ＱＲ-1）’＝Ｒ-1’Ｑ’
ＱＲ-1＝（Ｒ-1’Ｑ’）
シストリックアレイは、この等価を用いて、行列のクロス対角変換の左乗算を実行することによって右乗算を実行する。
【００９６】
第２のモードで動作している間、各プロセッシングセルのマルチプレクサは、Ｒ-1からの入力を選択する。各列の入力選択回路１１６０，１１６２は、第２のモードで動作している場合に入力Ｑ’１１５０，１１５２，１１５４に配置される信号線からの入力を選択するように構成される。そして、第１のモードで動作している間に実行されるのと同じ態様で、プロセッシングセルによって左乗算が実行される。
【００９７】
単純化された演算は、境界セルおよび内部セルについて、それぞれ３クロックサイクルおよび４クロックサイクルの時間遅れを必要とする。三角行列化および後退代入を実行するための第１のシストリックアレイとは異なり、このアレイは、フィードバックループを必要としない。そのため、各サブキャリアについてこのアレイを動作させ、特定のサブキャリアについてのすべての乗算を完了させ、そして、次のサブキャリアの要素の処理を開始することが、より容易となる。代替的には、各プロセッシングセルは、時分割多重化された態様で第１およびシストリックアレイの出力を処理するために、各サブキャリアの積を記憶するための遅延要素を含み得る。
【００９８】
右乗算または左乗算のいずれかについて、対応する乗算器を用いてシストリックアレイを読み込むのに３サイクルかかる。このアレイにおいては、データは右方向にのみ流れるので、アレイの時間遅れは３＋４＝７サイクルになる。クロス対角変換は１６サイクルかかるが、これは第２のシストリックアレイの全体時間遅れには寄与しない。なぜなら、これは、単にハードウェアにおけるメモリマッピングおよびデータアドレス操作であり、乗算と平行して処理することができるからである。４×２の系についての第２のシストリックアレイの全体時間遅れは、２＊（３＋７＋４＊１２）＝１１６クロックサイクルである。２×２の系については、時間遅れは２＊（３＋７＋２＊１２）＝６８クロックサイクルである。
【００９９】
図１２は、プログラマブル集積回路、具体的にはフィールドプログラマブルゲートアレイまたはＦＰＧＡ（Field Programmable Gate Array）のブロック図であり、シストリックアレイの実現するように構成され得る。ＦＰＧＡおよび他のプログラマブル集積回路は、アレイ内にいくつかの異なるタイプのプログラマブルロジックブロックを含み得る。たとえば、図１２は、多くの異なるプログラマブルタイルを含むＦＰＧＡアーキテクチャ（１２００）を示し、プログラマブルタイルは、たとえば、マルチギガビット送受信器（ＭＧＴ１２０１）、コンフィギュラブルロジックブロック（ＣＬＢ１２０２）、ランダムアクセスメモリブロック（ＢＲＡＭ１２０３）、入出力ブロック（ＩＯＢ１２０４）、設定およびクロッキングロジック（ＣＯＮＦＩＧ／ＣＬＯＣＫＳ１２０５）、デジタル信号処理ブロック（ＤＳＰ１２０６）、再設定ポート（ＲＥＣＯＮＦＩＧ１２１６）、特殊入出力ブロック（Ｉ／Ｏ１２０７）、クロックポート、および、デジタルクロックマネージャ、アナログ−デジタル変換器、システム監視ロジック、などのような他のプログラマブルロジック１２０８を含む。いくつかのＦＰＧＡは、専用のプロセッサブロック（ＰＲＯＣ１２１０）も含む。
【０１００】
いくつかのＦＰＧＡにおいては、各プログラマブルタイルは、各隣接タイルにおける対応する相互接続要素間の標準化された接続を有する、プログラマブル相互接続要素（ＩＮＴ１２１１）を含む。したがって、プログラマブル相互接続要素は、協働して、例示されたＦＰＧＡのためのプログラマブル相互接続構造を実現する。プログラマブル相互接続要素１２１１は、図１２の上部に含まれる例によって示されるように、同じタイル内のプログラマブルロジック要素と間の接続も含む。
【０１０１】
たとえば、ＣＬＢ１２０２は、プログラムされてユーザロジックおよび単一のプログラマブル相互接続要素ＩＮＴ１２１１を実現し得るコンフィギュラブルロジック要素ＣＬＥ１２１２を含み得る。ＢＲＡＭ１２０３は、１つまたはより多くのプログラマブル相互接続要素に加えて、ＢＲＡＭロジック要素（ＢＲＬ１２１３）を含み得る。典型的に、タイル内に含まれる相互接続要素の数は、タイルの高さに依存する。図示された実施形態においては、ＢＲＡＭタイルは、４つのＣＬＢと同じ高さを有するが、他の数（たとえば、５）も用いることができる。ＤＳＰタイル１２０６は、適当な数のプログラマブル相互接続要素に加えて、ＤＳＰロジック要素（ＤＳＰＬ１２１４）を含み得る。ＩＯＢ１２０４は、たとえば、プログラマブル相互接続要素ＩＮＴ１２１１の１つのインスタンスに加えて、入出力ロジック要素（ＩＯＬ１２１５）の２つのインスタンスを含み得る。当業者には明らかであるように、たとえば、Ｉ／Ｏロジック要素１２１５に接続される実際のＩ／Ｏパッドは、さまざまな図示されたロジックブロック上に積層された金属を用いて製造され、典型的には、入出力ロジック要素１２１５の領域には限定されない。
【０１０２】
図示された実施形態においては、ダイの中央部に近い（図１２においてハッチングで示された）コラム状領域は、設定、クロック、および他の制御ロジックのために用いられる。このコラムから延在する水平領域１２０９は、ＦＰＧＡの幅にわたって、設定信号およびクロック信号を分配するために用いられる。
【０１０３】
図１２に示されるアーキテクチャを利用するいくつかのＦＰＧＡは、ＦＰＧＡの大部分を占める通常のコラム状構造を破壊する追加的なロジックブロックを含む。追加的なロジックブロックは、プログラム可能なブロックおよび／または専用ロジックであり得る。たとえば、図１２に示されるプロセッサブロックＰＲＯＣ１２１０は、ＣＬＢおよびＢＲＡＭの複数のコラムにわたる。
【０１０４】
図１２は、単に例示的なＦＰＧＡアーキテクチャを示すことを意図したものであることに注意すべきである。コラム内のロジックブロックの数、コラムの相対幅、コラムの数および順序、コラムに含まれるロジックブロックのタイプ、ロジックブロックの相対サイズ、および、図１２の上部に含まれる相互接続／ロジック実行例は、単に例示的にすぎない。たとえば、実際のＦＰＧＡにおいては、ＣＬＢの１つ以上の隣接コラムが、ＣＬＭが現れるところにはどこでも典型的に含まれ、ユーザロジックの効果的な実行を容易にする。
【０１０５】
本発明は、ＭＩＭＯでコーディングのために構成されるさまざまなシストリックアレイに適用可能であると考えられる。本発明の他の局面および実施形態は、本明細書で開示された実施形態の仕様および実例の考慮から、当業者には明らかであろう。明細書および図示された実施形態は、単に例として考えられるべきであり、本発明の真の範囲は、以下の特許請求の範囲によって示されることが意図される。
【図３−１】
0005492307.tif 000008
【図３−２】
0005492307.tif 000009
【図４】
0005492307.tif 000010
【図１】
0005492307.tif 000011
【図２】
0005492307.tif 000012
【図５】
0005492307.tif 000013
【図６】
0005492307.tif 000014
【図７】
0005492307.tif 000015
【図８】
0005492307.tif 000016
【図９】
0005492307.tif 000017
【図１０】
0005492307.tif 000018
【図１１】
0005492307.tif 000019
【図１２】
0005492307.tif 000020