JP5353709B2 - シストリックアレイ及び演算方法 - Google Patents

シストリックアレイ及び演算方法 Download PDF

Info

Publication number
JP5353709B2
JP5353709B2 JP2009542599A JP2009542599A JP5353709B2 JP 5353709 B2 JP5353709 B2 JP 5353709B2 JP 2009542599 A JP2009542599 A JP 2009542599A JP 2009542599 A JP2009542599 A JP 2009542599A JP 5353709 B2 JP5353709 B2 JP 5353709B2
Authority
JP
Japan
Prior art keywords
systolic array
vector
internal
cell
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009542599A
Other languages
English (en)
Other versions
JPWO2009066760A1 (ja
Inventor
克敏 関
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009542599A priority Critical patent/JP5353709B2/ja
Publication of JPWO2009066760A1 publication Critical patent/JPWO2009066760A1/ja
Application granted granted Critical
Publication of JP5353709B2 publication Critical patent/JP5353709B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8046Systolic arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)
  • Radio Transmission System (AREA)
  • Variable-Direction Aerials And Aerial Arrays (AREA)

Description

[関連出願の記載]
本発明は、日本国特許出願:特願2007−302536号(2007年11月22日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、シストリックアレイに関し、特に、CORDIC(Coordinate Rotation Digital Computer)回路を用いて複素行列演算を実現する複素行列演算シストリックアレイ及び演算方法に関する。
行列演算は、無線通信、有線通信、画像処理において幅広く利用されている。近年、無線・有線通信速度向上に対応するため、効率的に並列演算が可能なシストリックアレイが着目されている。
シストリックアレイは、複数のプロセッシングセルを1次元又は2次元に配置し、プロセッシングセルでのデータのやり取りは、隣接プロセッシングセル間でのみ行うものである。また、シストリックアレイは、その規則性と配線容易性のため、VLSI等への集積化に適している。シストリックアレイは、行列演算の種類(行列積、QR分解、最小2乗解法等)により、最適トポロジーが異なる。例えば、QR分解には、三角構成が最適であり、行列積には四角構成が最適である。複数種類の行列演算を実現する場合、単一アルゴリズムを実現するシストリックアレイを用意しておき、各行列演算を単一アルゴリズムにマッピングすることが提案されている。この手法は、各行列演算に対して必ずしも最適な実現手段ではないが、その汎用性に利点がある。
複数の行列演算が可能なアルゴリズムとして、Modified Faddeeva Algorithm(「MFA」と略記される)が知られている。MFAは、式(1)に示すように、2ステップの処理を行う。
Figure 0005353709
・・・(1)
第1ステップでは、行列のAに対して、Givens回転を用いて、QR分解(すなわち、A=QR、ただし、Qはユニタリ行列)を行う。Givens回転は、同様に、Bにも適用する。この処理は、行列A、Bに対して、左から、Qを掛けることに相当する。すなわち、[A B]=[QR B]に対して、左から、Qはエルミート転置)を乗じると、QQ=I(単位行列)より、[QQR QB]=[R QB]となり、式(1)の真中の式が得られる。 第2ステップでは、三角行列Rの対角成分を枢軸(pivot)として、ガウス消去法でCを消去する。このとき、行列Eは、式(2)で表される。
Figure 0005353709
・・・(2)
MFAは、A、B、C、Dに代入する行列を変更することにより、以下に示すような、様々な行列演算を実現することができる。また、第1ステップだけ実行した場合、QR分解を実現できる。
線形システム解(AX=B):
Figure 0005353709
行列積:
Figure 0005353709
逆行列:
Figure 0005353709
図8(A)と図8(B)に、実数MFA演算をシストリックアレイで実現する場合のシグナルフローグラフを示す。
図8(A)の三角シストリックアレイでは、ステップ1として、上三角行列Rを求める。図8(A)に示すように、Givens回転の回転パラメータは、右に伝播し、四角シストリックアレイで、QBを計算する。
ステップ2では、図8(B)に示すように、三角シストリックアレイと四角シストリックアレイのそれぞれに、C、Dを入力する。この時、水平方向に
−R−T
が伝播し、四角シストリックアレイの下辺から
E=D+CA−1Bが出力される。
図9は、行列のサイズが、A(2x2),B(2x2),C(2x2),D(2x2)、行列の要素が全て実数の場合における、実数MFAシストリックアレイ4001の構成を示したものである。本従来技術の詳細は、非特許文献1に開示されている。尚、本明細書では、“A(mxn)”は、行列Aがm行×n列であることを表す。他の行列も同様である。図9において、aijは行列Aの第i行第j列成分を表している。他の行列も同様である。
図9を参照すると、実数MFAシストリックアレイ4001は、三角シストリックアレイ1000と、四角シストリックアレイ2000を組み合わせた台形状のシストリックアレイであり、境界セル101と内部セル201を備えている。
境界セル101は、三角シストリックアレイ1000の対角位置に配置される。
図9において、xinおよびxoutは、それぞれ、各セルの上方からの入力、下方への出力である。
s、c、dは、境界セル101から水平方向に内部セル201へ伝播されるパラメータである。
境界セル101、内部セル201、xinおよびxoutに対する下添え字は、セルの位置インデックスであり、xin11は、第行第列のセルの入力、xin12は、第行第列のセルの入力等、(ij)は、第i行第j列のセルを意味している。但し、台形アレイのため下添え字(2,1)のセルは存在しない。
また、パラメータs、c、dは、i行目の境界セル101から出力されたパラメータであることを意味している。
実数MFAシストリックアレイ4001は、2ステップでMFA処理を実現する。
ステップ1では、行列A、Bが、それぞれ三角シストリックアレイ1000と四角シストリックアレイ2000の上辺に入力される。
ステップ2では、行列C、Dが三角シストリックアレイ1000と四角シストリックアレイ2000の上辺に入力される。
またステップ2では、角シストリックアレイ2000の下辺から行列Eが出力される。尚、図9に示すように、入出力データは、遅延(スキュー)を調整する必要がある。図9の入力xin12、xin13、xin14、および、出力xout23、xout24のそれぞれにおける記号(■)は遅延(単位遅延)を表している。
図10に境界セル101と内部セル201のステップ1、2における演算処理を示す。図10において、rは、セル内部に保存される変数であり、初期値は0である。
実数MFAシストリックアレイ4001は、セルの種類毎およびステップ毎に処理が異なる。
このため、各セルを汎用プロセッサで実現し、図10に示す処理をそのまま演算すると、セルの種類毎およびステップ毎で処理遅延(処理負荷)が異なるため、セル間の同期をとるための制御回路が複雑となり回路規模が増大する。
また、同期制御回路を簡略化するため、各セル内の処理遅延を一定にすると(最大処理遅延に合わせると)、セル内部のプロセッサの動作率が低下し効率が悪い。
また、乗算器、除算器、平方根器などの専用演算回路を組み合わせてセルを実現した場合も、一方のステップでしか動作しない専用演算回路があるため、演算回路の動作率が低下し効率が悪い。
この問題を解決するため、各セルの処理を、CORDIC回路1個で実現したMFAシストリックアレイが、非特許文献2に開示されている。
図11は、行列のサイズが、A(2x2),B(2x2),C(2x2),D(2x2)、行列の要素が全て実数の場合における、非特許文献2に開示されている実数MFAシストリックアレイの構成を示したものである。
実数MFAシストリックアレイ4001は、回転パラメータs,cの代わりに、角度θが水平方向に伝播すること以外は、非特許文献1のものと同一である。
図12に、図11の実数MFAシストリックアレイ4001の境界セル101、内部セル201のステップ1、2における演算処理を示す。
まず、ステップ1時の動作を説明する。境界セル101は、上方からの入力xinを受け、CORDICアルゴリズムを用いてベクトル[r xin]のノルムtとベクトル角θを計算する。
内部変数rは、ノルムtで更新され、ベクトル角θは、右に伝播し、同一行の内部セル201へ供給される。
内部セル201では、上方からの入力xinと左方からのベクトル角θを受け、CORDICアルゴリズムを用いて、
xout=cosθ・xin−sinθ・r,
r=sinθ・xin+cosθ・r ・・・(3)
で表されるベクトル回転処理を行い、出力xoutと内部変数rを計算する。
内部セル201では、出力xoutは、下行のセルに供給する。
また、内部セル201において、左側セルから供給されたベクトル回転角度θは、そのまま右側の内部セル201に伝播される。
次にステップ2時の動作を説明する。
境界セル101は、上方からの入力xinを受け、CORDICアルゴリズムを用いて除算
d=xin/r ・・・(4)
を求める。
除算結果dは水、平方向に伝播され、同一行の内部セル201に供給される。
また、内部セル201では、CORDICアルゴリズムを用いて積和演算
xout=xin−d・r ・・・(5)
を行う。
内部セル201において、出力xoutは、下行のセルに供給する。但し、下辺の内部セル201の出力xoutは、MFA演算結果行列Eの成分として、MFAシストリックアレイ4001外部に出力される。
ステップ1における境界セル101、内部セル201の処理は、それぞれベクトル角度算出処理、ベクトル回転処理に対応する。
ステップ2における境界セル101、内部セル201の処理は、それぞれ除算処理、積和処理に対応する。
これらの処理は、CORDICアルゴリズムにより同一遅延で実現できることが知られている。
従って、非特許文献2に開示されている実数MFAシストリックアレイ4001は、各セルの処理遅延がセルの種類およびステップに依らず一定であり、セル間の接続関係が固定であるため、セル間同期制御回路が不要になる。
また、セル内の演算回路であるCORDIC回路が常に動作しているため効率が良い。
J.G.Nash, "Modified Faddeeva algorithm for concurrent execution of linear algebraic operations", IEEE Trans.Computers, vol.37, No2, pp129−137(1988) M. Otte, J.Gotze, M.Bucker, "Matrix based signal processing on a reconfigurable hardware accelerator", Digital Signal Processing Workshop, 2002 and the 2nd Signal Processing Education Workshop. Proceedings of 2002 IEEE, 13−16 Oct. 2002 Page(s): 350 − 355
上記非特許文献1、非特許文献2の各開示は、引用をもって本書に組み込まれる。以下の分析は本発明によって与えられる。
非特許文献2に開示されたMFAシストリックアレイにおいては、入力行列が実数である必要があり、無線信号処理や画像信号処理で多用される複素行列演算に対応できない。
なお、非特許文献2では、複素行列演算を実数行列演算に分解する手法について記載されているが、この手法は、CORDICが規模が増大する。
本発明は上記課題に鑑みて発明されたものであって、その目的は、各セルが同一演算回路で実現され、該演算回路の動作率が高く、前記演算回路の処理遅延がセルの種類およびステップに依らず一定のシストリックアレイ及び演算方法を提供することにある。
本発明の他の目的は、同期制御回路が不要なシストリックアレイ及び演算方法を提供することにある。
本発明の他の目的は、複素行列演算アルゴリズムを実現できるシストリックアレイ及び演算方法を提供することにある。
上記課題を解決する本発明は、概略以下の構成とされる。
本発明において、シストリックアレイは、三角シストリックアレイと四角シストリックアレイを組み合わせた台形シストリックアレイの下辺に、線形シストリックアレイを付加したものであって、セル間の接続が固定になるように、台形シストリックアレイの各行から下行に出力される中間結果を、複素MFAアルゴリズムの中間結果に対して位相をずらしたものとし、該位相のずれを次行で吸収させ、台形シストリックアレイの最終行から出力される中間結果の位相ずれを線形シストリックアレイで補正する。
本発明において、前記台形シストリックアレイの2行目以降の各行は、それぞれ、前行から供給される、前記位相がずれたMFA中間処理結果の第1成分と位相ずれパラメータとを受け、第1、第2のベクトル回転パラメータと、積和演算係数と、位相ずれパラメータを生成する境界処理部と、
前記位相がずれたMFA中間処理結果の第1成分以外の成分と、前記第1と第2のベクトル回転パラメータと、前記積和演算係数とを受け、前記位相がずれたMFA中間処理結果を、次行に供給する複数の内部処理部と、
を具備する。
本発明において、前記境界処理部と前記内部処理部が、それぞれ、複数のプロセッシングセルから構成されるスーパーセルである。
本発明において、前記プロセッシングセルが、ベクトル角度算出、ベクトル回転、除算、積和演算を一定遅延で処理するCORDIC回路を備え、
前記プロセッシングセル間の接続関係が固定されている。
本発明において、前記境界処理部が、第1、第2の境界プロセッシングセルを備え、
第1のステップにおいて、
前記第1の境界プロセッシングセルは、
前行の前記内部処理部からの入力信号を基に、
前記入力信号のノルムと、前記入力信号の実数部と虚数部を要素とするベクトルのベクトル角を生成し、
前記ベクトル角を前記第1のベクトル回転パラメータとして同一行内の内部処理部に供給し、
前記第2の境界プロセッシングセルは、
内部変数と前記入力信号のノルムを要素とするベクトルのノルムとベクトル角を生成し、前記ベクトル角を前記第2のベクトル回転パラメータとして、同一行内の内部処理部に供給し、前記ベクトルノルムで内部変数を更新し、
第2のステップでは、
前記第1の境界プロセッシングセルは、
前行の前記内部処理部からの入力信号を基に、
前記入力信号のノルムと、前記入力信号の実数部と虚数部を要素とするベクトルのベクトル角を生成し、
前記ベクトル角を前記第1のベクトル回転パラメータとして同一行内の内部処理部に供給し、更に、
前記第1のベクトル回転パラメータに、前行から供給される位相ずれパラメータを加算したもの(ただし、第1行の第1の境界プロセッシングセルでは、前行から供給される位相ずれパラメータは0)を、次行に供給し、
前記第2の境界プロセッシングセルは、前記入力信号のノルムを内部変数で除算し、前記除算結果を、前記積和演算係数として、同一行内の内部処理部に供給する。
本発明において、前記内部処理部が、第1乃至第3の内部プロセッシングセルを備え、
第1のステップにおいて、
前記第1の内部プロセッシングセルは、
前行の前記内部処理部からの入力信号を前記第1のベクトル回転パラメータ分だけ位相回転を行い、位相回転入力信号を生成し、
前記第2の内部プロセッシングセルは、
前記位相回転入力信号の実数部と内部変数の実数部を要素とするベクトルを、前記第2のベクトル回転パラメータ分だけ回転したベクトルの第1の要素を、内部変数の実数部として更新し、第2の要素を次行に供給し、
前記第3の内部プロセッシングセルは、
前記位相回転入力信号の虚数部と内部変数の虚数部を要素とするベクトルを、前記第2のベクトル回転パラメータ分だけ回転したベクトルの第1の要素を、内部変数の虚数部として更新し、第2の要素を次行に供給し、
第2のステップにおいて、
前記第1の内部プロセッシングセルは、
前行の前記内部処理部からの入力信号を前記第1のベクトル回転パラメータ分だけ位相回転を行い、位相回転入力信号を生成し、
前記第2の内部プロセッシングセルは、前記位相回転入力信号の実数部に内部変数の実数部と前記積和演算係数の積を加算したものを次行に供給し、
前記第3の内部プロセッシングセルは、前記位相回転入力信号の虚数部に内部変数の虚数部と前記積和演算係数の積を加算したものを次行に供給する。
本発明において、前記三角シストリックアレイの一辺と前記四角シストリックアレイの一辺とを併せたものが、前記台形シストリックアレイの互いに対向する平行の2辺のうちの長辺をなし、
前記四角シストリックアレイの前記一辺と対向する他の辺が、前記台形シストリックアレイの短辺をなし、
前記台形シストリックアレイは、前記長辺を上底とし前記短辺を下底とし、
前記線形シストリックアレイは、前記台形シストリックアレイの前記下底に対向して配置され、
前記台形シストリックアレイは、前記上底側から入力を受け、前記台形シストリックアレイの下底側に位置する前記線形シストリックアレイから出力が出力され、
前記境界処理部は、前記三角シストリックアレイの斜辺に配置され、
前記内部処理部は、前記三角シストリックアレイの斜辺以外の行と列、及び、前記四角シストリックアレイの行と列に配置される。
本発明において、前記境界処理部が、前記第1、第2の境界プロセッシングセル(境界Φセルと境界θセル)を備え、
第1のステップにおいて、
上方からの入力xinが前記第1の境界プロセッシングセルに供給され、前記第1の境界プロセッシングセル(境界Φセル)は、入力xinの実数部と虚数部を要素とするベクトル(real(xin),imag(xin))のノルム|xin|とそのベクトル角Φ(=arctan(imag(xin)/real(xin)))を計算し、前記入力のノルム|xin|を前記第2の境界プロセッシングセルへ供給し、前記ベクトル角Φを、同一行の隣りの内部処理部へ供給し、
前記第2の境界プロセッシングセル(境界θセル)は、前記第1の境界プロセッシングセル(境界Φセル)から前記入力信号のノルム|xin|を受け、内部変数rと|xin|を要素とするベクトル(r、|xin|)のノルムtとそのベクトル角θ(==arctan(|xin|/r)を計算し、内部変数rをノルムtで更新し(r=t)、前記ベクトル角θを同一行の隣りの内部処理部へ供給し、
第2のステップにおいて、
上方からの入力xinが前記第1の境界プロセッシングセル(境界Φセル)に供給され、2行目以降の前記境界処理部の前記第1の境界プロセッシングセルには、斜上方の前記境界処理部から位相ずれパラメータΦcが供給され、
前記第1の境界プロセッシングセル(境界Φセル)は、入力xinの実数部と虚数部を要素とするベクトルのノルム|xin|とそのベクトル角Φを計算し、前記ノルム|xin|を前記第2の境界プロセッシングセルへ供給し、ベクトル角Φを、同一行の隣の内部処理部へ供給し、さらに、斜上方の前記境界処理部から入力された位相ずれパラメータΦcにベクトル角Φを加算したもの(Φci-1+Φ)を、新たな位相ずれパラメータ(Φci)として、斜下方の境界処理部の前記第1の境界プロセッシングセル又は前記線形シストリックアレイの終端セルに供給し、
前記第2の境界プロセッシングセルは、前記第1の境界プロセッシングセルからノルム|xin|を受け、除算d=|xin|/rを行い、除算結果dを積和演算係数として、同一行の隣の内部処理部へ供給する。
本発明において、前記内部処理部が、第1乃至第3の内部プロセッシングセルを備え、
第1のステップにおいて、
前記第1の内部プロセッシングセル(内部Φセル)には、上方からの入力xinと、同一行の前記境界処理部側の隣のセルから伝播されたベクトル角Φが供給され、
前記第1の内部プロセッシングセル(内部Φセル)は、入力xinの実数部と虚数部を要素とするベクトルをベクトル角度Φだけ回転させたベクトル(tmp=xin・exp(-iΦ))をそれぞれ、第2、第3の内部プロセッシングセル(内部θセル)に供給し、
前記第1の内部プロセッシングセルは、同一行の前記境界処理部側の隣のセルから供給されたベクトル角Φをそのまま、同一行の前記境界処理部とは反対側の隣の内部処理部の第1の内部プロセッシングセルへ供給し、
前記第2、第3の内部プロセッシングセル(内部θセル)は、ベクトル(tmp)、内部変数r、前記ベクトル角θについて、
xout=cosθ・tmp−sinθ・r,
r=sinθ・tmp+cosθ・r
で表されるベクトル回転処理を行い、出力xoutと内部変数rを計算し、
第2のステップにおいて、
前記内部処理部の前記第1の内部プロセッシングセル(内部Φセル)には、上方からの入力xinと、同一行の前記境界処理部側の隣のセルから伝播されたベクトル角Φが供給され、
前記第1の内部プロセッシングセル(内部Φセル)は、入力xinの実数部と虚数部を要素とするベクトルをベクトル角度Φだけ回転させたベクトル(tmp)を、それぞれ、前記第2、第3の内部プロセッシングセル(内部θセル)へ供給し、
前記第1の内部プロセッシングセルは、前記境界処理部側の隣のセルから供給されたベクトル角Φをそのまま、同一行の前記境界処理部とは反対側の隣の内部処理部の前記第1の内部プロセッシングセルへ供給し、
前記第2、第3の内部プロセッシングセル(内部θセル)は、xout=tmp−d・rで表される積和演算処理を行い、出力xoutを計算し、
前記線形シストリックアレイの終端セルは、前記台形シストリックアレイの下底の内部処理部からの出力xoutを入力xinとして受け、斜上方の境界処理部からの位相ずれパラメータΦcを受け、入力xinの実数部と虚数部を要素とするベクトルを角度Φcだけ回転させたベクトルを計算して出力xoutとして出力する。
本発明において、前記線形シストリックアレイは、前記台形シストリックアレイの最終行から供給される前記位相ずれパラメータに基づき、前記台形シストリックアレイの最終行の前記内部処理部からの入力信号に対し、位相回転を行う終端プロセッシングセルを複数備えている。
本発明によれば、上記した複素行列演算シストリックアレイを具備する通信システムが提供される。
本発明によれば、上記した複素行列演算シストリックアレイを具備する画像処理システムが提供される。
本発明によれば、セルの種類およびステップに依らず、全ての処理をCORDIC回路で実現しているため、CORDIC回路の動作率が高く効率が良い。
本発明によれば、各セルがCORDIC回路で実現され、CORDIC回路の処理遅延がセルの種類およびステップに依らず一定で、セル間の接続関係が固定であるため、同期制御回路を不要としている。
本発明によれば、従来技術で実現できなかった複素行列演算アルゴリズムを実現できる。
本発明の第1の実施例を示す図である。 本発明の第1の実施例に含まれる境界スーパーセルの構成を示す図である。 本発明の第1の実施例に含まれる内部スーパーセルの構成を示す図である。 本発明の第1の実施例に含まれるプロセッシングセルの動作を説明する図である。 複素数MFAの第2ステップを実現する内部スーパーセルの構成を示す図である。 セル接続変更を行う内部スーパーセルの入出力タイミングの動作を説明するためのタイミングチャートである 本発明の第1の実施例に含まれるプロセッシングセルの入出力タイミング動作を説明するためのタイミングチャートである。 MFAアルゴリズムのシグナルフローグラフを示す図である。 非特許文献1の実数MFAシストリックアレイの構成を示す図である。 非特許文献1の実数MFAシストリックアレイのプロセッシングセルの動作を説明する図である。 非特許文献2の実数MFAシストリックアレイの構成を示す図である。 非特許文献2の実数MFAシストリックアレイのプロセッシングセルの動作を説明する図である。
符号の説明
100 境界スーパーセル
101 境界セル
110 境界Φセル
120 境界θセル
200 内部スーパーセル
201 内部セル
210 内部Φセル
220 内部θセル
300 終端セル
400 遅延回路
1000 三角シストリックアレイ
2000 四角シストリックアレイ
3000 線形シストリックアレイ
4000 複素行列演算シストリックアレイ
4001 実数MFAシストリックアレイ
次に、本発明の実施形態について説明する。図1は、本発明の第1の実施例の複素行列演算シストリックアレイの構成を示す図である。本実施例では、行列のサイズが、A(2x2),B(2x2),C(2x2),D(2x2)の場合を例に説明する。なお、本発明において、行列のサイズはかかる構成に制限されるものでないことは勿論である。
本実施例の複素行列演算シストリックアレイ4000は、
三角シストリックアレイ1000、
四角シストリックアレイ2000、
線形シストリックアレイ3000
を備えている。
三角シストリックアレイ1000は、境界スーパーセル100、内部スーパーセル200および遅延回路400を備えている。
境界スパーセル100は、三角シストリックアレイ1000の対角位置に配置される。
四角シストリックアレイ2000は、複数の内部スーパーセル200を備えている。
線形シストリックアレイ3000は、終端セル300を備えている。
本実施例の複素行列演算シストリックアレイ4000は、図9に示した実数MFAシストリックアレイ4001に対して、線形シストリックアレイ3000が追加されている。
また、境界セル101及び内部セル201の代わりに、複数のセルから構成される境界スーパーセル100と、内部スーパーセル200を用いている。
また、境界スーパーセル100の右下のセルに、位相ずれパラメータΦを、遅延回路400を介して転送するパスが追加されている。
図1中のxinおよびxoutは、それぞれ、各セルの上方からの入力、下方への出力である。
図1のΦ、θ、dは、境界スーパーセル100から供給され、水平方向に伝播するパラメータである。
図1のΦcは、境界スーパーセル100から右下のセルに供給される位相ずれパラメータである。
図1の境界スーパーセル100、内部スーパーセル200、xinおよびxoutに対する下添え字は、セルの位置インデックスであり、(ij)は、第i行第j列のセルを意味している。またパラメータΦi、Φci、θi、diはi行目の境界スーパーセル100から出力されたパラメータであることを意味している。
本実施例において、複素行列演算シストリックアレイ4000は、2ステップでMFA処理を実現する。
ステップ1では、行列A、Bがそれぞれ三角シストリックアレイ1000と四角シストリックアレイ2000の上辺に入力される。
ステップ2では、行列C、Dが三角シストリックアレイ1000と四角シストリックアレイ2000の上辺に入力される。
またステップ2では、線形シストリックアレイ3000の下辺から行列Eが出力される。なお、図1に示すように、入出力データは遅延(スキュー)を調整する必要がある。
図2は、図1の境界スーパーセル100の構成を示す図である。図3は、図1の内部スーパーセル200の構成を示す図である。
図2を参照すると、境界スーパーセル100は、境界Φセル110と境界θセル120を備えている。
図3を参照すると、内部スーパーセル200は、内部Φセル210と、二つの内部θセル220、220を備えている。
図4に、各セルのステップ1,2における演算処理を示す。図4において、rは、セルに保存される内部変数であり、初期値は0である。
まず、ステップ1の動作を説明する。境界スーパーセル100では、上方からの入力xinが境界Φセル110に供給される。
また、位相ずれパラメータΦが境界Φセル110に供給される。但し、ステップ1では、位相ずれパラメータΦcは使用しない。
なお、第1行目の境界Φセル110に供給される位相ずれパラメータΦは0固定である。
境界Φセル110は、CORDICアルゴリズムを用いてベクトル
[real(xin) imag(xin)]のノルム|xin|(=√(real(xin)+imag(xin))と、ベクトル角Φ(=arctan(imag(xin)/real(xin)))を計算する。ただし、arctanは逆正接関数である。
ノルム|xin|は、境界θセル120へ供給され、ベクトル角Φは、右に伝播し、同一行の内部スーパーセル200へ供給される。
境界θセル120は、ノルム|xin|を受け、CORDICアルゴリズムを用いてベクトル[r |xin|]のノルムt((=√(r+|xin|))とベクトル角θ(=arctan(|xin|/r)を計算する。内部変数rはノルムtで更新され、ベクトル角θは、右に伝播し、同一行の内部スーパーセル200へ供給される。
内部スーパーセル200では、上方からの入力xinと左方からのベクトル角Φが内部Φセル210に供給される。
また内部Φセル210は、CORDICアルゴリズムを用いてベクトル
[real(xin) imag(xin)]を角度Φだけ回転させたベクトル
[real(tmp) imag(tmp)]を、それぞれ、内部θセル220、220に供給する。
また、内部Φセル210は、供給されたベクトル角Φをそのまま、右に伝播し、同一行の内部スーパーセル200へ供給する。
二つの内部θセル220、220は、入力xin、ベクトル角θ、内部変数rを入力し、CORDICアルゴリズムを用いて、
xout=cosθ・xin−sinθ・r,
r=sinθ・xin+cosθ・r ・・・(6)
で表されるベクトル回転処理を行い、出力xoutと内部変数rを計算する。
図4では、上記処理を実数成分処理と虚数成分処理に分解し、行列積形式でも示している。内部θセル220、220は、それぞれベクトル回転処理の実数成分部分と虚数成分に対応している。終端セル300は、ステップ1には動作しない。
次にステップ2の動作を説明する。
境界スーパーセル100では、上方からの入力xinが境界Φセル110に供給される。
また、左上方から位相ずれパラメータΦが境界Φセル110に供給される。
境界Φセル110は、CORDICアルゴリズムを用いてベクトル
[real(xin) imag(xin)]のノルム|xin|を計算し、境界θセル120へ供給する。
また、[real(xin) imag(xin)]のベクトル角Φを同一行の内部スーパーセル200へ供給する。
また、左上方から入力された位相ずれパラメータΦにベクトルΦを加算したものを、新たな位相ずれパラメータΦとし、右下方の境界Φセル110もしくは終端セル300に供給する。
境界θセル120は、ノルム|xin|を受け、CORDICアルゴリズムを用いて、除算
d=|xin|/r ・・・(7)
を行い、除算結果dは、積和演算係数として右に伝播し、同一行の内部スーパーセル200へ供給される。
内部スーパーセル200では、上方からの入力xinと左方からのベクトル角Φが内部Φセル210に供給される。
また、内部Φセル210は、CORDICアルゴリズムを用いてベクトル
[real(xin) imag(xin)]を、角度Φだけ回転させたベクトル
[real(tmp) imag(tmp)]を、それぞれ、内部θセル220、220へ供給する。
また、内部Φセル210は、供給されたベクトル角Φをそのまま、右に伝播し、同一行の内部スーパーセル200へ供給する。
二つの内部θセル220、220は、xin、内部変数r、積和演算係数dを受け、CORDICアルゴリズムを用いて
xout=xin−d・r ・・・(8)
で表される積和演算処理を行い、出力xoutを計算する。内部変数rは更新しない。
図4では、上記処理を実数成分処理と虚数成分処理に分解し、行列積形式でも示している。
内部θセル220、220は、それぞれベクトル回転処理の実数成分部分と虚数成分に対応している。
終端セル300は、上方からの入力xinと左上方からの位相ずれパラメータΦを受け、ベクトル[real(xin) imag(xin)]を角度Φcだけ回転させたベクトル[real(xout) imag(xout)]を計算し、複素行列演算シストリックアレイ4000外部へ出力する。
次に本実施例の複素行列演算シストリックアレイ4000により、複素行列演算ができることを、非特許文献2で開示される実数MFAシストリックアレイ4001と対比しながら述べる。
実数MFAシストリックアレイ4001の第1行目アレイのステップ1の処理は、境界セル101への入力xink1(ただし、kは1から2の自然数)を0にするGivens回転であり、次式(9)、(10)で表される。
Figure 0005353709
・・・(9)
Figure 0005353709
・・・(10)
式(9)、(10)を複素数に拡張したもの、式(11)、(12)に示す。
Figure 0005353709
・・・(11)
Figure 0005353709
・・・(12)
以降、複素数MFAアルゴリズムの中間結果をxout’で表し、本実施例の中間結果をxoutとし、互いに区別する。
式(11)、(12)を満たすc1、s1は、それぞれ次式(13)、(14)で与えられる。
Figure 0005353709
・・・(13)
Figure 0005353709
・・・(14)
Figure 0005353709
・・・(15)
Figure 0005353709
・・・(16)
式(13)、(14)、(15)、(16)を、式(11)に代入すると、次式(17)、(18)に変形できる。
Figure 0005353709
・・・(17)
Figure 0005353709
・・・(18)
一方、本実施例の複素行列演算シストリックアレイ4000の第1行目アレイのステップ1処理は、次式(19)、(20)で表される。
Figure 0005353709
・・・(19)
Figure 0005353709
・・・(20)
式(20)は、式(18)と同じである。
式(1)と式(19)を比較すると、複素行列演算シストリックアレイ4000の内部変数rは、複素数MFAアルゴリズムの内部変数rと同じであることが分かる。
また、複素行列演算シストリックアレイ4000の第1行目アレイの下方への出力xoutは、係数eiΦが掛かっているため、複素数MFAアルゴリズムの中間結果xout’に対して角度Φだけ位相がずれていることが分かる。しかし、この位相ずれは、第2行目の出力xoutの全てに掛かっているため、第2行目アレイの境界Φセル110と内部Φセル210のベクトル回転処理で吸収され、境界θセル10と内部θセル20で行う第2行目アレイの内部変数r計算に影響を与えない。
以上により、本実施例の複素行列演算シストリックアレイ4000の第1ステップ終了時点での各スーパーセルに保存される内部変数rは、複素MFAアルゴリズムで求めたものと同じになる。
次にステップ2の等価性について述べる。
非特許文献2で開示される実数MFAシストリックアレイ4001の第1行目アレイのステップ2処理は、境界セル101への入力xink1(ただし、kは1から2の自然数)を0にするr11を軸としたガウス消去処理であり、次式(21)で表される。また、第2行目アレイのステップ2の処理は、同様に、次式(22)で表される。
Figure 0005353709
・・・(21)
Figure 0005353709
・・・(22)
式(21)、(22)は、xin、xout’を複素数とすると、そのまま複素MFAアルゴリズムに適用できる。
式(21)、式(22)を、次式(23)、(24)、(25)、(26)を用いて変形すると、それぞれ次式(27)、(28)で表される。
Figure 0005353709
・・・(23)
Figure 0005353709
・・・(24)
Figure 0005353709
・・・(25)
Figure 0005353709
・・・(26)
Figure 0005353709
・・・(27)
Figure 0005353709
・・・(28)
一方、本実施例の複素行列演算シストリックアレイ4000の第1行目アレイのステップ2の処理は、次式(29)で表される。
Figure 0005353709
・・・(29)
式(27)と式(29)とを比較すると、複素行列演算シストリックアレイ4000の第1行目アレイの下方への出力xoutは、係数e−iΦ1が掛かっているため、複素数MFAアルゴリズムの中間結果xout’に対して、角度Φだけ、位相がずれていることが分かる。
境界Φセル110は、上方からの入力信号のベクトル角度に左上方から入力される位相ずれパラメータΦを加算し、新たな位相ずれパラメータΦとして右下方のセルに供給する。第1行目の境界Φセル110は、入力位相ずれパラメータΦc0が0固定のため、角度Φがそのまま位相ずれパラメータΦc1として出力される。
本実施例の複素行列演算シストリックアレイ4000の第2行目アレイのステップ2の処理は、次式(30)、(31)で表される。
Figure 0005353709
・・・(30)
Figure 0005353709
・・・(31)
式(28)と式(31)を比較すると、複素行列演算シストリックアレイ4000の第2行目アレイの下方への出力xoutは、係数e−iΦ2’が掛かっているため、複素数MFAアルゴリズムの出力結果xout’に対して、角度Φ2’だけ位相がずれていることが分かる。
第1行目の境界Φセル110は、入力位相ずれパラメータΦc1に、上方からの入力信号のベクトル角度Φを加算し、位相ずれパラメータΦc2として右下方の終端セル300に供給される。
終端セル300は、複素行列演算シストリックアレイ4000の第2行目アレイの下方への出力xoutに対し角度Φc2分だけベクトル回転したものを、複素行列演算シストリックアレイ4000外部へ出力する。
Figure 0005353709
・・・(32)
式(32)に示すように、Φc2は、複素数MFAアルゴリズムの出力結果xout’に対する位相がずれΦ2’に一致するため、本実施例の複素行列演算シストリックアレイ4000出力は、複素数MFAアルゴリズムの出力結果xout’と一致する。
本実施例の複素行列演算シストリックアレイ4000は、位相ずれ補正のため、終端セル300を必要とするものの、セル間接続が固定であり、セル間同期制御が不要となる利点がある。
比較例として、複素数MFAアルゴリズムをCORDIC回路で構成されるセルで実現した場合、ステップ切り替え時に、セル間接続の変更、セル入出力信号の同期制御が必要となる。
例として、ステップ1を本実施例の複素行列演算シストリックアレイ4000で実現し、ステップ2を複素数MFAアルゴリズムで実現する場合を考える。
式(27)を実現する第1行目アレイに着目すると、式(23)、(24)に示すパラメータΦ、dは、図2に示す境界スーパーセル100でΦ、dの順で計算できる。
式(27)中のxoutは、図5に示すように内部スーパーセル200の接続関係を変更することによって計算できる。図5中のステップ2に内部Φセル210、内部θセル220は、それぞれ次式(33)、(34)に示す処理を行う。
Figure 0005353709
・・・(33)
Figure 0005353709
・・・(34)
図6に、上記のセル接続変更を行う場合の内部スーパーセル200、200のタイミング チャートを示す。
図6に示すように、内部スーパーセル200、200へ信号が入力されるタイミングと、内部Φセル210、内部θセル220で使用されるタイミングが異なるため、複雑なタイミング制御が必要となる。
これは、内部θセル220のステップ1の処理が終了し、rが固定された後、内部Φセル210のステップ2の処理を開始する必要があることに起因する。
図7に、本実施例の複素行列演算シストリックアレイ4000のタイミングチャートを示す。図7より網掛けで示す位相ずれパラメータΦを、遅延回路400により、2CORDIC処理分だけ遅延させる以外は、タイミング制御が不要なことが分かる。
なお、本実施例では、行列のサイズが、A(2x2),B(2x2),C(2x2),D(2x2)の場合を例に説明したが、本発明は、行列のサイズに依らず適用可能である。
また、本発明は、2次元シストリックアレイ構成のみ制限されるものでなく、2次元シストリックアレイを1次元アレイに投影した構成や、2次元シストリックアレイ処理を時分割処理構成も含むことは勿論である。また、上記した実施例の複素行列演算シストリックアレイは、有線、無線の通信システム、画像処理システムにおける信号処理の複素行列演算に適用される。
本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。

Claims (23)

  1. MFA(Modified Faddeeva Algorithm)を利用して複素行列演算を行うシストリックアレイであって、
    三角シストリックアレイと四角シストリックアレイとを含む台形シストリックアレイと、
    前記四角シストリックアレイの最終行に対応して配置される線形シストリックアレイと、
    を備え、
    前記台形シストリックアレイにおける各行から下の行に出力される中間処理結果を、複素数MFAアルゴリズムの中間結果に対して位相をずらしたものとし、
    前記次の行は、位相回転処理を行い、前記位相ずれを吸収し、
    前記線形シストリックアレイは、前記台形シストリックアレイの最終行から出力される中間処理結果の位相ずれを補正する、ことを特徴とする複素行列演算シストリックアレイ。
  2. 前記台形シストリックアレイの2行目以降の各行は、それぞれ、前行から供給される、前記位相がずれたMFA中間処理結果の第1成分と位相ずれパラメータとを受け、第1、第2のベクトル回転パラメータと、積和演算係数と、位相ずれパラメータを生成する境界処理部と、
    前記位相がずれたMFA中間処理結果の第1成分以外の成分と、前記第1と第2のベクトル回転パラメータと、前記積和演算係数とを受け、前記位相がずれたMFA中間処理結果を、次行に供給する複数の内部処理部と、
    を備えている、ことを特徴とする請求項1に記載の複素行列演算シストリックアレイ。
  3. 前記境界処理部と前記内部処理部が、それぞれ、複数のプロセッシングセルから構成されるスーパーセルである、ことを特徴とする請求項2に記載の複素行列演算シストリックアレイ。
  4. 前記プロセッシングセルが、ベクトル角度算出、ベクトル回転、除算、積和演算を一定遅延で処理するCORDIC(Coordinate Rotation Digital Computer)回路を備え、
    前記プロセッシングセル間の接続関係が固定されている、ことを特徴とする請求項3に記載の複素行列演算シストリックアレイ。
  5. 前記境界処理部が、第1、第2の境界プロセッシングセルを備え、
    第1のステップにおいて、
    前記第1の境界プロセッシングセルは、
    前行の前記内部処理部からの入力信号を基に、
    前記入力信号のノルムと、前記入力信号の実数部と虚数部を要素とするベクトルのベクトル角を生成し、
    前記ベクトル角を前記第1のベクトル回転パラメータとして同一行内の内部処理部に供給し、
    前記第2の境界プロセッシングセルは、
    内部変数と前記入力信号のノルムを要素とするベクトルのノルムとベクトル角を生成し、前記ベクトル角を前記第2のベクトル回転パラメータとして、同一行内の内部処理部に供給し、前記ベクトルノルムで内部変数を更新し、
    第2のステップでは、
    前記第1の境界プロセッシングセルは、
    前行の前記内部処理部からの入力信号を基に、
    前記入力信号のノルムと、前記入力信号の実数部と虚数部を要素とするベクトルのベクトル角を生成し、
    前記ベクトル角を前記第1のベクトル回転パラメータとして同一行内の内部処理部に供給し、更に、
    前記第1のベクトル回転パラメータに、前行から供給される位相ずれパラメータを加算したもの(ただし、第1行の第1の境界プロセッシングセルでは、前行から供給される位相ずれパラメータは0)を、次行に供給し、
    前記第2の境界プロセッシングセルは、前記入力信号のノルムを内部変数で除算し、前記除算結果を、前記積和演算係数として、同一行内の内部処理部に供給する、ことを特徴とする請求項2乃至4のいずれか一に記載の複素行列演算シストリックアレイ。
  6. 前記内部処理部が、第1乃至第3の内部プロセッシングセルを備え、
    第1のステップにおいて、
    前記第1の内部プロセッシングセルは、
    前行の前記内部処理部からの入力信号を前記第1のベクトル回転パラメータ分だけ位相回転を行い、位相回転入力信号を生成し、
    前記第2の内部プロセッシングセルは、
    前記位相回転入力信号の実数部と内部変数の実数部を要素とするベクトルを、前記第2のベクトル回転パラメータ分だけ回転したベクトルの第1の要素を、内部変数の実数部として更新し、第2の要素を次行に供給し、
    前記第3の内部プロセッシングセルは、
    前記位相回転入力信号の虚数部と内部変数の虚数部を要素とするベクトルを、前記第2のベクトル回転パラメータ分だけ回転したベクトルの第1の要素を、内部変数の虚数部として更新し、第2の要素を次行に供給し、
    第2のステップにおいて、
    前記第1の内部プロセッシングセルは、
    前行の前記内部処理部からの入力信号を前記第1のベクトル回転パラメータ分だけ位相回転を行い、位相回転入力信号を生成し、
    前記第2の内部プロセッシングセルは、前記位相回転入力信号の実数部に内部変数の実数部と前記積和演算係数の積を加算したものを次行に供給し、
    前記第3の内部プロセッシングセルは、前記位相回転入力信号の虚数部に内部変数の虚数部と前記積和演算係数の積を加算したものを次行に供給する、ことを特徴とする請求項2乃至4のいずれか一に記載の複素行列演算シストリックアレイ。
  7. 前記三角シストリックアレイの一辺と前記四角シストリックアレイの一辺とを併せたものが、前記台形シストリックアレイの互いに対向する平行の2辺のうちの長辺をなし、
    前記四角シストリックアレイの前記一辺と対向する他の辺が、前記台形シストリックアレイの短辺をなし、
    前記台形シストリックアレイは、前記長辺を上底とし前記短辺を下底とし、
    前記線形シストリックアレイは、前記台形シストリックアレイの前記下底に対向して配置され、
    前記台形シストリックアレイは、前記上底側から入力を受け、前記台形シストリックアレイの下底側に位置する前記線形シストリックアレイから出力が出力され、
    前記境界処理部は、前記三角シストリックアレイの斜辺に配置され、
    前記内部処理部は、前記三角シストリックアレイの斜辺以外の行と列、及び、前記四角シストリックアレイの行と列に配置される、ことを特徴とする請求項2に記載の複素行列演算シストリックアレイ。
  8. 前記境界処理部が、前記第1、第2の境界プロセッシングセルを備え、
    第1のステップにおいて、
    上方からの入力(xin)が前記第1の境界プロセッシングセルに供給され、前記第1の境界プロセッシングセルは、前記入力(xin)の実数部と虚数部を要素とするベクトルのノルムである第1のノルム(|xin|)とそのベクトル角である第1のベクトル角(Φ)を計算し、前記第1のノルム(|xin|)を前記第2の境界プロセッシングセルへ供給し、前記第1のベクトル角(Φ)を、同一行の隣りの内部処理部へ供給し、
    前記第2の境界プロセッシングセルは、前記第1の境界プロセッシングセルから前記第1のノルム(|xin|)を受け、内部変数(r)と前記第1のノルム(|xin|)を要素とするベクトルのノルムである第2のノルム(t)とそのベクトル角である第2のベクトル角(θ)を計算し、前記内部変数(r)を前記第2のノルム(t)で更新し、前記第2のベクトル角(θ)を同一行の隣りの内部処理部へ供給し、
    第2のステップにおいて、
    上方からの入力(xin)が前記第1の境界プロセッシングセルに供給され、2行目以降の前記境界処理部の前記第1の境界プロセッシングセルには、斜上方の前記境界処理部から位相ずれパラメータ(Φc)が供給され、
    前記第1の境界プロセッシングセルは、入力(xin)の実数部と虚数部を要素とするベクトルのノルムである第1のノルム(|xin|)とそのベクトル角である第1のベクトル角(Φ)を計算し、前記第1のノルム(|xin|)を前記第2の境界プロセッシングセルへ供給し、前記第1のベクトル角(Φ)を、同一行の隣の内部処理部へ供給し、斜上方の前記境界処理部から入力された位相ずれパラメータ(Φc)に前記第1のベクトル角(Φ)を加算したものを、新たな位相ずれパラメータ(Φc)として、斜下方の境界処理部の前記第1の境界プロセッシングセル又は前記線形シストリックアレイの終端セルに供給し、
    前記第2の境界プロセッシングセルは、前記第1の境界プロセッシングセルから前記第1のノルム(|xin|)を受け、前記第1のノルム(|xin|)を内部変数(r)で除算した値d(=|xin|/r)を求め、除算結果(d)を積和演算係数として、同一行の隣の内部処理部へ供給する、ことを特徴とする請求項7記載の複素行列演算シストリックアレイ。
  9. 前記内部処理部が、第1乃至第3の内部プロセッシングセルを備え、
    前記第1のステップにおいて、
    上方からの入力(xin)と、同一行の前記境界処理部側の隣のセルから伝播された前記第1のベクトル角(Φ)が前記内部処理部の第1の内部プロセッシングセルに供給され、
    前記第1の内部プロセッシングセルは、入力(xin)の実数部と虚数部を要素とするベクトルを前記第1のベクトル角度(Φ)だけ回転させたベクトル(tmp)を、それぞれ、前記内部処理部の第2、第3の内部プロセッシングセルに供給し、
    前記第1の内部プロセッシングセルは、同一行の前記境界処理部側の隣のセルから供給された前記第1のベクトル角(Φ)をそのまま、同一行の前記境界処理部とは反対側の隣の内部処理部の第1の内部プロセッシングセルへ供給し、
    前記第2、第3の内部プロセッシングセル(内部θセル)は、前記ベクトル(tmp)、内部変数(r)、前記第1のベクトル角(θ)について、
    xout=cosθ・tmp−sinθ・r,
    r=sinθ・tmp+cosθ・r
    で表されるベクトル回転処理を行うことで出力(xout)と内部変数(r)を計算し、
    前記第2のステップにおいて、
    前記内部処理部の前記第1の内部プロセッシングセルには、上方からの入力(xin)と、同一行の前記境界処理部側の隣のセルから伝播された第1のベクトル角(Φ)が供給され、
    前記第1の内部プロセッシングセルは、入力(xin)の実数部と虚数部を要素とするベクトルを前記第1のベクトル角度(Φ)だけ回転させたベクトル(tmp)を、それぞれ、前記第2、第3の内部プロセッシングセルへ供給し、
    前記第1の内部プロセッシングセルは、前記境界処理部側の隣のセルから供給された第1のベクトル角(Φ)をそのまま、同一行の前記境界処理部とは反対側の隣の内部処理部の前記第1の内部プロセッシングセルへ供給し、
    前記第2、第3の内部プロセッシングセルは、
    xout=tmp−d・r
    で表される積和演算処理を行うことで出力(xout)を計算し、
    前記線形シストリックアレイの終端セルは、前記台形シストリックアレイの下底の内部処理部からの出力(xout)を上方からの入力(xin)として受け、斜上方の境界処理部からの位相ずれパラメータ(Φc)を受け、入力(xin)の実数部と虚数部を要素とするベクトルを角度(Φc)だけ回転させたベクトルを計算して出力(xout)として出力する、ことを特徴とする請求項8に記載の複素行列演算シストリックアレイ。
  10. 前記線形シストリックアレイが、
    前記台形シストリックアレイの最終行から供給される前記位相ずれパラメータに基づき、前記台形シストリックアレイの最終行の前記内部処理部からの入力信号に対し、位相回転を行う終端プロセッシングセルを複数備えている、ことを特徴とする請求項2乃至9のいずれか一に記載の複素行列演算シストリックアレイ。
  11. 請求項1乃至10のいずれか一に記載の複素行列演算シストリックアレイを備えている通信システム。
  12. 請求項1乃至10のいずれか一に記載の複素行列演算シストリックアレイを備えている画像処理システム。
  13. MFA(Modified Faddeeva Algorithm)を利用した複素行列演算シストリックアレイによる複素行列演算方法であって、
    三角シストリックアレイと四角シストリックアレイとを含む台形シストリックアレイに対して線形シストリックアレイを設け、
    前記台形シストリックアレイにおける各行から下の行に出力される中間処理結果を、複素数MFAアルゴリズムの中間結果に対して位相をずらしたものとし、
    前記次の行は、位相回転処理を行い、前記位相ずれを吸収し、
    前記線形シストリックアレイは、前記台形シストリックアレイの最終行から出力される中間処理結果の位相ずれを補正する、
    ことを特徴とする複素行列演算方法。
  14. 前記台形シストリックアレイの2行目以降の各行は、
    境界処理部において、それぞれ、前行から供給される、前記位相がずれたMFA中間処理結果の第1成分と位相ずれパラメータとを受け、第1、第2のベクトル回転パラメータと、積和演算係数と、位相ずれパラメータを生成し、
    複数の内部処理部において、前記位相がずれたMFA中間処理結果の第1成分以外の成分と、前記第1と第2のベクトル回転パラメータと、前記積和演算係数とを受け、前記位相がずれたMFA中間処理結果を、次行に供給する、ことを特徴とする請求項13に記載の複素行列演算方法。
  15. 前記境界処理部と前記内部処理部が、それぞれ、複数のプロセッシングセルから構成されるスーパーセルである、ことを特徴とする請求項14に記載の複素行列演算方法。
  16. 前記プロセッシングセルを、ベクトル角度算出、ベクトル回転、除算、積和演算を一定遅延で処理するCORDIC(Coordinate Rotation Digital Computer)回路で構成し、
    前記プロセッシングセル間の接続関係が固定されている、ことを特徴とする請求項15に記載の複素行列演算方法。
  17. 第1のステップにおいて、
    前記第1の境界プロセッシングセルは、
    前行の前記内部処理部からの入力信号を基に、
    前記入力信号のノルムと、前記入力信号の実数部と虚数部を要素とするベクトルのベクトル角を生成し、
    前記ベクトル角を前記第1のベクトル回転パラメータとして同一行内の内部処理部に供給し、
    前記第2の境界プロセッシングセルは、
    内部変数と前記入力信号のノルムを要素とするベクトルのノルムとベクトル角を生成し、前記ベクトル角を前記第2のベクトル回転パラメータとして、同一行内の内部処理部に供給し、前記ベクトルノルムで内部変数を更新し、
    第2のステップにおいて、
    前記第1の境界プロセッシングセルは、
    前行の前記内部処理部からの入力信号を基に、
    前記入力信号のノルムと、前記入力信号の実数部と虚数部を要素とするベクトルのベクトル角を生成し、
    前記ベクトル角を前記第1のベクトル回転パラメータとして同一行内の内部処理部に供給し、更に、
    前記第1のベクトル回転パラメータに、前行から供給される位相ずれパラメータを加算したもの(ただし、第1行の第1の境界プロセッシングセルでは、前行から供給される位相ずれパラメータは0)を、次行に供給し、
    前記第2の境界プロセッシングセルは、前記入力信号のノルムを内部変数で除算し、前記除算結果を、前記積和演算係数として、同一行内の内部処理部に供給する、ことを特徴とする請求項14乃至16のいずれか一に記載の複素行列演算方法。
  18. 第1のステップにおいて、
    前記内部処理部の第1の内部プロセッシングセルは、
    前行の前記内部処理部からの入力信号を前記第1のベクトル回転パラメータ分だけ位相回転を行い、位相回転入力信号を生成し、
    前記内部処理部の第2の内部プロセッシングセルは、
    前記位相回転入力信号の実数部と内部変数の実数部を要素とするベクトルを、第2のベクトル回転パラメータ分だけ回転したベクトルの第1の要素を、内部変数の実数部として更新し、第2の要素を次行に供給し、
    前記内部処理部の第3の内部プロセッシングセルは、
    前記位相回転入力信号の虚数部と内部変数の虚数部を要素とするベクトルを、第2のベクトル回転パラメータ分だけ回転したベクトルの第1の要素を、内部変数の虚数部として更新し、第2の要素を次行に供給し、
    第2のステップにおいて、
    前記第1の内部プロセッシングセルは、
    前行の前記内部処理部からの入力信号を前記第1のベクトル回転パラメータ分だけ位相回転を行い、位相回転入力信号を生成し、
    前記第2の内部プロセッシングセルは、前記位相回転入力信号の実数部に内部変数の実数部と前記積和演算係数の積を加算したものを次行に供給し、
    前記第3の内部プロセッシングセルは、前記位相回転入力信号の虚数部に内部変数の虚数部と前記積和演算係数の積を加算したものを次行に供給する、ことを特徴とする請求項14乃至16のいずれか一に記載の複素行列演算方法。
  19. 前記三角シストリックアレイの一辺と前記四角シストリックアレイの一辺とを併せたものが、前記台形シストリックアレイの互いに対向する平行の2辺のうちの長辺をなし、
    前記四角シストリックアレイの前記一辺と対向する他の辺が、前記台形シストリックアレイの短辺をなし、
    前記台形シストリックアレイは、前記長辺を上底とし前記短辺を下底とし、
    前記線形シストリックアレイは、前記台形シストリックアレイの前記下底に対向して配置され、
    前記台形シストリックアレイは、前記上底側から入力を受け、前記台形シストリックアレイの下底側に位置する前記線形シストリックアレイから出力が出力され、
    前記境界処理部は、前記三角シストリックアレイの斜辺に配置され、
    前記内部処理部は、前記三角シストリックアレイの斜辺以外の行と列、及び、前記四角シストリックアレイの行と列に配置される、ことを特徴とする請求項14に記載の複素行列演算方法。
  20. 第1のステップにおいて、
    上方からの入力(xin)が前記境界処理部の第1の境界プロセッシングセルに供給され、前記第1の境界プロセッシングセルは、前記入力(xin)の実数部と虚数部を要素とするベクトルのノルムである第1のノルム(|xin|)とそのベクトル角である第1のベクトル角(Φ)を計算し、前記第1のノルム(|xin|)を前記第2の境界プロセッシングセルへ供給し、前記第1のベクトル角(Φ)を、同一行の隣りの内部処理部へ供給し、
    前記境界処理部の第2の境界プロセッシングセルは、前記第1の境界プロセッシングセルから前記第1のノルム(|xin|)を受け、内部変数(r)と前記第1のノルム(|xin|)を要素とするベクトルのノルムである第2のノルム(t)とそのベクトル角である第2のベクトル角(θ)を計算し、前記内部変数(r)を前記第2のノルム(t)で更新し、前記第2のベクトル角(θ)を同一行の隣りの内部処理部へ供給し、
    第2のステップにおいて、
    上方からの入力(xin)が前記第1の境界プロセッシングセルに供給され、2行目以降の前記境界処理部の前記第1の境界プロセッシングセルには、斜上方の前記境界処理部から位相ずれパラメータ(Φc)が供給され、
    前記第1の境界プロセッシングセルは、入力(xin)の実数部と虚数部を要素とするベクトルのノルムである第1のノルム(|xin|)とそのベクトル角である第1のベクトル角(Φ)を計算し、前記第1のノルム(|xin|)を前記第2の境界プロセッシングセルへ供給し、前記第1のベクトル角(Φ)を、同一行の隣の内部処理部へ供給し、斜上方の前記境界処理部から入力された位相ずれパラメータ(Φc)に前記第1のベクトル角(Φ)を加算したものを、新たな位相ずれパラメータ(Φc)として、斜下方の境界処理部の前記第1の境界プロセッシングセル又は前記線形シストリックアレイの終端セルに供給し、
    前記第2の境界プロセッシングセルは、前記第1の境界プロセッシングセルから前記第1のノルム(|xin|)を受け、前記第1のノルム(|xin|)を内部変数(r)で除算した値d(=|xin|/r)を求め、除算結果(d)を積和演算係数として、同一行の隣の内部処理部へ供給する、ことを特徴とする請求項19に記載の複素行列演算方法。
  21. 第1のステップにおいて、
    上方からの入力(xin)と、同一行の前記境界処理部側の隣のセルから伝播された前記第1のベクトル角(Φ)が前記内部処理部の第1の内部プロセッシングセルに供給され、
    前記第1の内部プロセッシングセルは、入力(xin)の実数部と虚数部を要素とするベクトルを前記第1のベクトル角度(Φ)だけ回転させたベクトル(tmp)を、それぞれ、前記内部処理部の第2、第3の内部プロセッシングセルに供給し、
    前記第1の内部プロセッシングセルは、同一行の前記境界処理部側の隣のセルから供給された前記第1のベクトル角(Φ)をそのまま、同一行の前記境界処理部とは反対側の隣の内部処理部の第1の内部プロセッシングセルへ供給し、
    前記第2、第3の内部プロセッシングセル(内部θセル)は、前記ベクトル(tmp)、内部変数(r)、前記第1のベクトル角(θ)について、
    xout=cosθ・tmp−sinθ・r,
    r=sinθ・tmp+cosθ・r
    で表されるベクトル回転処理を行うことで、出力(xout)と内部変数(r)を計算し、
    第2のステップにおいて、
    前記内部処理部の前記第1の内部プロセッシングセルには、上方からの入力(xin)と、同一行の前記境界処理部側の隣のセルから伝播された第1のベクトル角(Φ)が供給され、
    前記第1の内部プロセッシングセルは、入力(xin)の実数部と虚数部を要素とするベクトルを前記第1のベクトル角度(Φ)だけ回転させたベクトル(tmp)を、それぞれ、前記第2、第3の内部プロセッシングセルへ供給し、
    前記第1の内部プロセッシングセルは、前記境界処理部側の隣のセルから供給された第1のベクトル角(Φ)をそのまま、同一行の前記境界処理部とは反対側の隣の内部処理部の前記第1の内部プロセッシングセルへ供給し、
    前記第2、第3の内部プロセッシングセルは、xout=tmp−d・rで表される積和演算処理を行うことで、出力(xout)を計算し、
    前記線形シストリックアレイの終端セルは、前記台形シストリックアレイの下底の内部処理部からの出力(xout)を上方からの入力(xin)として受け、斜上方の境界処理部からの位相ずれパラメータ(Φc)を受け、入力(xin)の実数部と虚数部を要素とするベクトルを角度(Φc)だけ回転させたベクトルを計算して出力(xout)として出力する、ことを特徴とする請求項20に記載の複素行列演算方法。
  22. 前記線形シストリックアレイが、前記台形シストリックアレイの最終行から供給される前記位相ずれパラメータに基づき、前記台形シストリックアレイの最終行の前記内部処理部からの入力信号に対し、位相回転を行う終端プロセッシングセルを複数有する、ことを特徴とする請求項13から17のいずれか一に記載の複素行列演算方法。
  23. 三角シストリックアレイと四角シストリックアレイを含む台形シストリックアレイを備え、
    前記三角シストリックアレイの一辺と前記四角シストリックアレイの一辺とが前記台形シストリックアレイの上底をなす長辺をなし、
    前記台形シストリックアレイの下底をなす短辺側に配置された線形シストリックアレイを備え、
    前記各シストリックアレイの各セルは、ベクトル角度算出、ベクトル回転、除算、積和演算を一定遅延で処理するCORDIC回路で実現され、
    前記台形シストリックアレイは、前記上底側の一行目から入力を受け、前記台形シストリックアレイの下底側に位置する前記線形シストリックアレイから出力が出力され、
    前記台形シストリックアレイにおいて、
    各行から下の行に出力される中間処理結果を、複素数MFA(Modified Faddeeva Algorithm)アルゴリズムの中間結果に対して位相をずらしたものとし、
    2行目以降の各行は、それぞれ、前行から供給される、位相がずれた複素MFA中間処理結果の第1成分と位相ずれパラメータとを受け、第1、第2のベクトル回転パラメータと、積和演算係数と、位相ずれパラメータを生成する境界処理部と、前記位相がずれたMFA中間処理結果の第1成分以外の成分と、前記第1と第2のベクトル回転パラメータと、前記積和演算係数とを受け、位相がずれたMFA中間処理結果を、次行に供給する内部処理部と、を備え、
    前記台形シストリックアレイの各行から次行に出力される中間結果、複素MFAアルゴリズムの中間結果に対する位相ずれを前記次行で吸収させ、
    前記線形シストリックアレイは、前記台形シストリックアレイの前記下底の行から供給される位相ずれパラメータに基づき、前記台形シストリックアレイの下底の行の前記内部処理部からの入力信号に対し位相回転を行うことで、複素MFA処理結果の位相ずれを補正する、演算装置。
JP2009542599A 2007-11-22 2008-11-21 シストリックアレイ及び演算方法 Expired - Fee Related JP5353709B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009542599A JP5353709B2 (ja) 2007-11-22 2008-11-21 シストリックアレイ及び演算方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2007302536 2007-11-22
JP2007302536 2007-11-22
JP2009542599A JP5353709B2 (ja) 2007-11-22 2008-11-21 シストリックアレイ及び演算方法
PCT/JP2008/071220 WO2009066760A1 (ja) 2007-11-22 2008-11-21 シストリックアレイ及び演算方法

Publications (2)

Publication Number Publication Date
JPWO2009066760A1 JPWO2009066760A1 (ja) 2011-04-07
JP5353709B2 true JP5353709B2 (ja) 2013-11-27

Family

ID=40667582

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009542599A Expired - Fee Related JP5353709B2 (ja) 2007-11-22 2008-11-21 シストリックアレイ及び演算方法

Country Status (4)

Country Link
US (1) US8589467B2 (ja)
EP (1) EP2224347A1 (ja)
JP (1) JP5353709B2 (ja)
WO (1) WO2009066760A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009066760A1 (ja) * 2007-11-22 2009-05-28 Nec Corporation シストリックアレイ及び演算方法
US9014249B2 (en) 2012-11-02 2015-04-21 Harris Corporation Communications receiver with channel identification using A-priori generated gain vectors and associated methods
US8824603B1 (en) * 2013-03-01 2014-09-02 Futurewei Technologies, Inc. Bi-directional ring-bus architecture for CORDIC-based matrix inversion
US20160267111A1 (en) * 2015-03-11 2016-09-15 Microsoft Technology Licensing, Llc Two-stage vector reduction using two-dimensional and one-dimensional systolic arrays
US10055672B2 (en) 2015-03-11 2018-08-21 Microsoft Technology Licensing, Llc Methods and systems for low-energy image classification
US10268886B2 (en) 2015-03-11 2019-04-23 Microsoft Technology Licensing, Llc Context-awareness through biased on-device image classifiers
US11507429B2 (en) 2017-09-14 2022-11-22 Electronics And Telecommunications Research Institute Neural network accelerator including bidirectional processing element array

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008027234A (ja) * 2006-07-21 2008-02-07 Nec Electronics Corp シストリックアレイ

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0131416B1 (en) * 1983-07-06 1990-06-13 The Secretary of State for Defence in Her Britannic Majesty's Government of the United Kingdom of Great Britain and Constraint application processor
US4823299A (en) * 1987-04-01 1989-04-18 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Systolic VLSI array for implementing the Kalman filter algorithm
US6675187B1 (en) * 1999-06-10 2004-01-06 Agere Systems Inc. Pipelined linear array of processor elements for performing matrix computations
US7218624B2 (en) * 2001-11-14 2007-05-15 Interdigital Technology Corporation User equipment and base station performing data detection using a scalar array
WO2009066760A1 (ja) * 2007-11-22 2009-05-28 Nec Corporation シストリックアレイ及び演算方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008027234A (ja) * 2006-07-21 2008-02-07 Nec Electronics Corp シストリックアレイ

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200001106002; 岩見和彦ほか: 'SRIF(Square Root Information Filter)専用VLSIシストリックアレ' システム/制御/情報 第38巻 第8号, 19940815, 287-294頁, システム制御情報学会 *
JPN6013037284; 岩見和彦ほか: 'SRIF(Square Root Information Filter)専用VLSIシストリックアレ' システム/制御/情報 第38巻 第8号, 19940815, 287-294頁, システム制御情報学会 *

Also Published As

Publication number Publication date
US8589467B2 (en) 2013-11-19
EP2224347A1 (en) 2010-09-01
US20100250640A1 (en) 2010-09-30
JPWO2009066760A1 (ja) 2011-04-07
WO2009066760A1 (ja) 2009-05-28

Similar Documents

Publication Publication Date Title
JP5353709B2 (ja) シストリックアレイ及び演算方法
US20240126832A1 (en) Expanded kernel generation
US8195733B2 (en) Systolic array
JP5840994B2 (ja) 行列演算装置
CN108141256B (zh) 天线阵列的相位调整方法及装置
CN107341133B (zh) 基于任意维数矩阵lu分解的可重构计算结构的调度方法
CN108228536B (zh) 使用FPGA实现Hermitian矩阵分解的方法
CN115344236B (zh) 多项式乘法运算方法、多项式乘法器、设备及介质
US20110004645A1 (en) Apparatus and program for arctangent calculation
JP5643576B2 (ja) 画像処理装置およびその制御方法
CN112559954A (zh) 基于软件定义可重构处理器的fft算法处理方法及装置
US20180109004A1 (en) A Beamforming Receiver
Swarztrauber et al. A comparison of optimal FFTs on torus and hypercube multicomputers
Purwita et al. Optimized 8-level turbo encoder algorithm and VLSI architecture for LTE
WO2016146198A1 (en) Phase rotation and amplitude control unit
KR100444729B1 (ko) 레딕스-8 단일 경로 지연 전달 구조의 고속 퓨리에 변환장치 및 그 방법
Zemčík et al. Accelerated image resampling for geometry correction
US10311018B2 (en) Methods and apparatus for a vector subsystem for use with a programmable mixed-radix DFT/IDFT processor
Choi et al. Efficient Partially-parallel NTT Processor for Lattice-based Post-quantum Cryptography
KR101830230B1 (ko) 모듈러 곱셈 장치 및 방법
Chandran et al. NEDA based hybrid architecture for DCT—HWT
Guerrero-Ramírez et al. Hardware design of an eigensolver based on the QR method
Wang et al. An FPGA-Based Reconfigurable CNN Training Accelerator Using Decomposable Winograd
Mishra et al. Architectures for FPGA-based implementation of motion estimation of dynamic obstacles for autonomous robot navigation
CN115756613B (zh) 基于向量化处理的sinc插值方法、装置及SAR雷达

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130409

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130610

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130730

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130812

R150 Certificate of patent or registration of utility model

Ref document number: 5353709

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees