JP5353709B2 - シストリックアレイ及び演算方法 - Google Patents
シストリックアレイ及び演算方法 Download PDFInfo
- 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
Links
- 238000004364 calculation method Methods 0.000 title claims description 27
- 238000012545 processing Methods 0.000 claims abstract description 322
- 239000011159 matrix material Substances 0.000 claims abstract description 90
- 230000010363 phase shift Effects 0.000 claims abstract description 60
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 42
- 238000000034 method Methods 0.000 claims abstract description 27
- 230000008569 process Effects 0.000 claims abstract description 20
- 230000000644 propagated effect Effects 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 6
- 210000004027 cell Anatomy 0.000 description 198
- 230000014509 gene expression Effects 0.000 description 17
- 210000003888 boundary cell Anatomy 0.000 description 15
- 229940050561 matrix product Drugs 0.000 description 5
- 238000000354 decomposition reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8046—Systolic 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)回路を用いて複素行列演算を実現する複素行列演算シストリックアレイ及び演算方法に関する。
−R−TCT
が伝播し、四角シストリックアレイの下辺から
E=D+CA−1Bが出力される。
xout=cosθ・xin−sinθ・r,
r=sinθ・xin+cosθ・r ・・・(3)
で表されるベクトル回転処理を行い、出力xoutと内部変数rを計算する。
d=xin/r ・・・(4)
を求める。
xout=xin−d・r ・・・(5)
を行う。
前記位相がずれたMFA中間処理結果の第1成分以外の成分と、前記第1と第2のベクトル回転パラメータと、前記積和演算係数とを受け、前記位相がずれたMFA中間処理結果を、次行に供給する複数の内部処理部と、
を具備する。
前記プロセッシングセル間の接続関係が固定されている。
第1のステップにおいて、
前記第1の境界プロセッシングセルは、
前行の前記内部処理部からの入力信号を基に、
前記入力信号のノルムと、前記入力信号の実数部と虚数部を要素とするベクトルのベクトル角を生成し、
前記ベクトル角を前記第1のベクトル回転パラメータとして同一行内の内部処理部に供給し、
前記第2の境界プロセッシングセルは、
内部変数と前記入力信号のノルムを要素とするベクトルのノルムとベクトル角を生成し、前記ベクトル角を前記第2のベクトル回転パラメータとして、同一行内の内部処理部に供給し、前記ベクトルノルムで内部変数を更新し、
第2のステップでは、
前記第1の境界プロセッシングセルは、
前行の前記内部処理部からの入力信号を基に、
前記入力信号のノルムと、前記入力信号の実数部と虚数部を要素とするベクトルのベクトル角を生成し、
前記ベクトル角を前記第1のベクトル回転パラメータとして同一行内の内部処理部に供給し、更に、
前記第1のベクトル回転パラメータに、前行から供給される位相ずれパラメータを加算したもの(ただし、第1行の第1の境界プロセッシングセルでは、前行から供給される位相ずれパラメータは0)を、次行に供給し、
前記第2の境界プロセッシングセルは、前記入力信号のノルムを内部変数で除算し、前記除算結果を、前記積和演算係数として、同一行内の内部処理部に供給する。
第1のステップにおいて、
前記第1の内部プロセッシングセルは、
前行の前記内部処理部からの入力信号を前記第1のベクトル回転パラメータ分だけ位相回転を行い、位相回転入力信号を生成し、
前記第2の内部プロセッシングセルは、
前記位相回転入力信号の実数部と内部変数の実数部を要素とするベクトルを、前記第2のベクトル回転パラメータ分だけ回転したベクトルの第1の要素を、内部変数の実数部として更新し、第2の要素を次行に供給し、
前記第3の内部プロセッシングセルは、
前記位相回転入力信号の虚数部と内部変数の虚数部を要素とするベクトルを、前記第2のベクトル回転パラメータ分だけ回転したベクトルの第1の要素を、内部変数の虚数部として更新し、第2の要素を次行に供給し、
第2のステップにおいて、
前記第1の内部プロセッシングセルは、
前行の前記内部処理部からの入力信号を前記第1のベクトル回転パラメータ分だけ位相回転を行い、位相回転入力信号を生成し、
前記第2の内部プロセッシングセルは、前記位相回転入力信号の実数部に内部変数の実数部と前記積和演算係数の積を加算したものを次行に供給し、
前記第3の内部プロセッシングセルは、前記位相回転入力信号の虚数部に内部変数の虚数部と前記積和演算係数の積を加算したものを次行に供給する。
前記四角シストリックアレイの前記一辺と対向する他の辺が、前記台形シストリックアレイの短辺をなし、
前記台形シストリックアレイは、前記長辺を上底とし前記短辺を下底とし、
前記線形シストリックアレイは、前記台形シストリックアレイの前記下底に対向して配置され、
前記台形シストリックアレイは、前記上底側から入力を受け、前記台形シストリックアレイの下底側に位置する前記線形シストリックアレイから出力が出力され、
前記境界処理部は、前記三角シストリックアレイの斜辺に配置され、
前記内部処理部は、前記三角シストリックアレイの斜辺以外の行と列、及び、前記四角シストリックアレイの行と列に配置される。
第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のステップにおいて、
前記第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として出力する。
101 境界セル
110 境界Φセル
120 境界θセル
200 内部スーパーセル
201 内部セル
210 内部Φセル
220 内部θセル
300 終端セル
400 遅延回路
1000 三角シストリックアレイ
2000 四角シストリックアレイ
3000 線形シストリックアレイ
4000 複素行列演算シストリックアレイ
4001 実数MFAシストリックアレイ
三角シストリックアレイ1000、
四角シストリックアレイ2000、
線形シストリックアレイ3000
を備えている。
[real(xin) imag(xin)]tのノルム|xin|(=√(real(xin)2+imag(xin)2)と、ベクトル角Φ(=arctan(imag(xin)/real(xin)))を計算する。ただし、arctanは逆正接関数である。
[real(xin) imag(xin)]tを角度Φだけ回転させたベクトル
[real(tmp) imag(tmp)]を、それぞれ、内部θセル2201、2202に供給する。
xout=cosθ・xin−sinθ・r,
r=sinθ・xin+cosθ・r ・・・(6)
で表されるベクトル回転処理を行い、出力xoutと内部変数rを計算する。
[real(xin) imag(xin)]tのノルム|xin|を計算し、境界θセル120へ供給する。
d=|xin|/r ・・・(7)
を行い、除算結果dは、積和演算係数として右に伝播し、同一行の内部スーパーセル200へ供給される。
[real(xin) imag(xin)]tを、角度Φだけ回転させたベクトル
[real(tmp) imag(tmp)]を、それぞれ、内部θセル2201、2202へ供給する。
xout=xin−d・r ・・・(8)
で表される積和演算処理を行い、出力xoutを計算する。内部変数rは更新しない。
Claims (23)
- MFA(Modified Faddeeva Algorithm)を利用して複素行列演算を行うシストリックアレイであって、
三角シストリックアレイと四角シストリックアレイとを含む台形シストリックアレイと、
前記四角シストリックアレイの最終行に対応して配置される線形シストリックアレイと、
を備え、
前記台形シストリックアレイにおける各行から下の行に出力される中間処理結果を、複素数MFAアルゴリズムの中間結果に対して位相をずらしたものとし、
前記次の行では、位相回転処理を行い、前記位相のずれを吸収し、
前記線形シストリックアレイは、前記台形シストリックアレイの最終行から出力される中間処理結果の位相ずれを補正する、ことを特徴とする複素行列演算シストリックアレイ。 - 前記台形シストリックアレイの2行目以降の各行は、それぞれ、前行から供給される、前記位相がずれたMFA中間処理結果の第1成分と位相ずれパラメータとを受け、第1、第2のベクトル回転パラメータと、積和演算係数と、位相ずれパラメータを生成する境界処理部と、
前記位相がずれたMFA中間処理結果の第1成分以外の成分と、前記第1と第2のベクトル回転パラメータと、前記積和演算係数とを受け、前記位相がずれたMFA中間処理結果を、次行に供給する複数の内部処理部と、
を備えている、ことを特徴とする請求項1に記載の複素行列演算シストリックアレイ。 - 前記境界処理部と前記内部処理部が、それぞれ、複数のプロセッシングセルから構成されるスーパーセルである、ことを特徴とする請求項2に記載の複素行列演算シストリックアレイ。
- 前記プロセッシングセルが、ベクトル角度算出、ベクトル回転、除算、積和演算を一定遅延で処理するCORDIC(Coordinate Rotation Digital Computer)回路を備え、
前記プロセッシングセル間の接続関係が固定されている、ことを特徴とする請求項3に記載の複素行列演算シストリックアレイ。 - 前記境界処理部が、第1、第2の境界プロセッシングセルを備え、
第1のステップにおいて、
前記第1の境界プロセッシングセルは、
前行の前記内部処理部からの入力信号を基に、
前記入力信号のノルムと、前記入力信号の実数部と虚数部を要素とするベクトルのベクトル角を生成し、
前記ベクトル角を前記第1のベクトル回転パラメータとして同一行内の内部処理部に供給し、
前記第2の境界プロセッシングセルは、
内部変数と前記入力信号のノルムを要素とするベクトルのノルムとベクトル角を生成し、前記ベクトル角を前記第2のベクトル回転パラメータとして、同一行内の内部処理部に供給し、前記ベクトルノルムで内部変数を更新し、
第2のステップでは、
前記第1の境界プロセッシングセルは、
前行の前記内部処理部からの入力信号を基に、
前記入力信号のノルムと、前記入力信号の実数部と虚数部を要素とするベクトルのベクトル角を生成し、
前記ベクトル角を前記第1のベクトル回転パラメータとして同一行内の内部処理部に供給し、更に、
前記第1のベクトル回転パラメータに、前行から供給される位相ずれパラメータを加算したもの(ただし、第1行の第1の境界プロセッシングセルでは、前行から供給される位相ずれパラメータは0)を、次行に供給し、
前記第2の境界プロセッシングセルは、前記入力信号のノルムを内部変数で除算し、前記除算結果を、前記積和演算係数として、同一行内の内部処理部に供給する、ことを特徴とする請求項2乃至4のいずれか一に記載の複素行列演算シストリックアレイ。 - 前記内部処理部が、第1乃至第3の内部プロセッシングセルを備え、
第1のステップにおいて、
前記第1の内部プロセッシングセルは、
前行の前記内部処理部からの入力信号を前記第1のベクトル回転パラメータ分だけ位相回転を行い、位相回転入力信号を生成し、
前記第2の内部プロセッシングセルは、
前記位相回転入力信号の実数部と内部変数の実数部を要素とするベクトルを、前記第2のベクトル回転パラメータ分だけ回転したベクトルの第1の要素を、内部変数の実数部として更新し、第2の要素を次行に供給し、
前記第3の内部プロセッシングセルは、
前記位相回転入力信号の虚数部と内部変数の虚数部を要素とするベクトルを、前記第2のベクトル回転パラメータ分だけ回転したベクトルの第1の要素を、内部変数の虚数部として更新し、第2の要素を次行に供給し、
第2のステップにおいて、
前記第1の内部プロセッシングセルは、
前行の前記内部処理部からの入力信号を前記第1のベクトル回転パラメータ分だけ位相回転を行い、位相回転入力信号を生成し、
前記第2の内部プロセッシングセルは、前記位相回転入力信号の実数部に内部変数の実数部と前記積和演算係数の積を加算したものを次行に供給し、
前記第3の内部プロセッシングセルは、前記位相回転入力信号の虚数部に内部変数の虚数部と前記積和演算係数の積を加算したものを次行に供給する、ことを特徴とする請求項2乃至4のいずれか一に記載の複素行列演算シストリックアレイ。 - 前記三角シストリックアレイの一辺と前記四角シストリックアレイの一辺とを併せたものが、前記台形シストリックアレイの互いに対向する平行の2辺のうちの長辺をなし、
前記四角シストリックアレイの前記一辺と対向する他の辺が、前記台形シストリックアレイの短辺をなし、
前記台形シストリックアレイは、前記長辺を上底とし前記短辺を下底とし、
前記線形シストリックアレイは、前記台形シストリックアレイの前記下底に対向して配置され、
前記台形シストリックアレイは、前記上底側から入力を受け、前記台形シストリックアレイの下底側に位置する前記線形シストリックアレイから出力が出力され、
前記境界処理部は、前記三角シストリックアレイの斜辺に配置され、
前記内部処理部は、前記三角シストリックアレイの斜辺以外の行と列、及び、前記四角シストリックアレイの行と列に配置される、ことを特徴とする請求項2に記載の複素行列演算シストリックアレイ。 - 前記境界処理部が、前記第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記載の複素行列演算シストリックアレイ。 - 前記内部処理部が、第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に記載の複素行列演算シストリックアレイ。 - 前記線形シストリックアレイが、
前記台形シストリックアレイの最終行から供給される前記位相ずれパラメータに基づき、前記台形シストリックアレイの最終行の前記内部処理部からの入力信号に対し、位相回転を行う終端プロセッシングセルを複数備えている、ことを特徴とする請求項2乃至9のいずれか一に記載の複素行列演算シストリックアレイ。 - 請求項1乃至10のいずれか一に記載の複素行列演算シストリックアレイを備えている通信システム。
- 請求項1乃至10のいずれか一に記載の複素行列演算シストリックアレイを備えている画像処理システム。
- MFA(Modified Faddeeva Algorithm)を利用した複素行列演算シストリックアレイによる複素行列演算方法であって、
三角シストリックアレイと四角シストリックアレイとを含む台形シストリックアレイに対して線形シストリックアレイを設け、
前記台形シストリックアレイにおける各行から下の行に出力される中間処理結果を、複素数MFAアルゴリズムの中間結果に対して位相をずらしたものとし、
前記次の行では、位相回転処理を行い、前記位相のずれを吸収し、
前記線形シストリックアレイは、前記台形シストリックアレイの最終行から出力される中間処理結果の位相ずれを補正する、
ことを特徴とする複素行列演算方法。 - 前記台形シストリックアレイの2行目以降の各行は、
境界処理部において、それぞれ、前行から供給される、前記位相がずれたMFA中間処理結果の第1成分と位相ずれパラメータとを受け、第1、第2のベクトル回転パラメータと、積和演算係数と、位相ずれパラメータを生成し、
複数の内部処理部において、前記位相がずれたMFA中間処理結果の第1成分以外の成分と、前記第1と第2のベクトル回転パラメータと、前記積和演算係数とを受け、前記位相がずれたMFA中間処理結果を、次行に供給する、ことを特徴とする請求項13に記載の複素行列演算方法。 - 前記境界処理部と前記内部処理部が、それぞれ、複数のプロセッシングセルから構成されるスーパーセルである、ことを特徴とする請求項14に記載の複素行列演算方法。
- 前記プロセッシングセルを、ベクトル角度算出、ベクトル回転、除算、積和演算を一定遅延で処理するCORDIC(Coordinate Rotation Digital Computer)回路で構成し、
前記プロセッシングセル間の接続関係が固定されている、ことを特徴とする請求項15に記載の複素行列演算方法。 - 第1のステップにおいて、
前記第1の境界プロセッシングセルは、
前行の前記内部処理部からの入力信号を基に、
前記入力信号のノルムと、前記入力信号の実数部と虚数部を要素とするベクトルのベクトル角を生成し、
前記ベクトル角を前記第1のベクトル回転パラメータとして同一行内の内部処理部に供給し、
前記第2の境界プロセッシングセルは、
内部変数と前記入力信号のノルムを要素とするベクトルのノルムとベクトル角を生成し、前記ベクトル角を前記第2のベクトル回転パラメータとして、同一行内の内部処理部に供給し、前記ベクトルノルムで内部変数を更新し、
第2のステップにおいて、
前記第1の境界プロセッシングセルは、
前行の前記内部処理部からの入力信号を基に、
前記入力信号のノルムと、前記入力信号の実数部と虚数部を要素とするベクトルのベクトル角を生成し、
前記ベクトル角を前記第1のベクトル回転パラメータとして同一行内の内部処理部に供給し、更に、
前記第1のベクトル回転パラメータに、前行から供給される位相ずれパラメータを加算したもの(ただし、第1行の第1の境界プロセッシングセルでは、前行から供給される位相ずれパラメータは0)を、次行に供給し、
前記第2の境界プロセッシングセルは、前記入力信号のノルムを内部変数で除算し、前記除算結果を、前記積和演算係数として、同一行内の内部処理部に供給する、ことを特徴とする請求項14乃至16のいずれか一に記載の複素行列演算方法。 - 第1のステップにおいて、
前記内部処理部の第1の内部プロセッシングセルは、
前行の前記内部処理部からの入力信号を前記第1のベクトル回転パラメータ分だけ位相回転を行い、位相回転入力信号を生成し、
前記内部処理部の第2の内部プロセッシングセルは、
前記位相回転入力信号の実数部と内部変数の実数部を要素とするベクトルを、第2のベクトル回転パラメータ分だけ回転したベクトルの第1の要素を、内部変数の実数部として更新し、第2の要素を次行に供給し、
前記内部処理部の第3の内部プロセッシングセルは、
前記位相回転入力信号の虚数部と内部変数の虚数部を要素とするベクトルを、第2のベクトル回転パラメータ分だけ回転したベクトルの第1の要素を、内部変数の虚数部として更新し、第2の要素を次行に供給し、
第2のステップにおいて、
前記第1の内部プロセッシングセルは、
前行の前記内部処理部からの入力信号を前記第1のベクトル回転パラメータ分だけ位相回転を行い、位相回転入力信号を生成し、
前記第2の内部プロセッシングセルは、前記位相回転入力信号の実数部に内部変数の実数部と前記積和演算係数の積を加算したものを次行に供給し、
前記第3の内部プロセッシングセルは、前記位相回転入力信号の虚数部に内部変数の虚数部と前記積和演算係数の積を加算したものを次行に供給する、ことを特徴とする請求項14乃至16のいずれか一に記載の複素行列演算方法。 - 前記三角シストリックアレイの一辺と前記四角シストリックアレイの一辺とを併せたものが、前記台形シストリックアレイの互いに対向する平行の2辺のうちの長辺をなし、
前記四角シストリックアレイの前記一辺と対向する他の辺が、前記台形シストリックアレイの短辺をなし、
前記台形シストリックアレイは、前記長辺を上底とし前記短辺を下底とし、
前記線形シストリックアレイは、前記台形シストリックアレイの前記下底に対向して配置され、
前記台形シストリックアレイは、前記上底側から入力を受け、前記台形シストリックアレイの下底側に位置する前記線形シストリックアレイから出力が出力され、
前記境界処理部は、前記三角シストリックアレイの斜辺に配置され、
前記内部処理部は、前記三角シストリックアレイの斜辺以外の行と列、及び、前記四角シストリックアレイの行と列に配置される、ことを特徴とする請求項14に記載の複素行列演算方法。 - 第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に記載の複素行列演算方法。 - 第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に記載の複素行列演算方法。 - 前記線形シストリックアレイが、前記台形シストリックアレイの最終行から供給される前記位相ずれパラメータに基づき、前記台形シストリックアレイの最終行の前記内部処理部からの入力信号に対し、位相回転を行う終端プロセッシングセルを複数有する、ことを特徴とする請求項13から17のいずれか一に記載の複素行列演算方法。
- 三角シストリックアレイと四角シストリックアレイを含む台形シストリックアレイを備え、
前記三角シストリックアレイの一辺と前記四角シストリックアレイの一辺とが前記台形シストリックアレイの上底をなす長辺をなし、
前記台形シストリックアレイの下底をなす短辺側に配置された線形シストリックアレイを備え、
前記各シストリックアレイの各セルは、ベクトル角度算出、ベクトル回転、除算、積和演算を一定遅延で処理するCORDIC回路で実現され、
前記台形シストリックアレイは、前記上底側の一行目から入力を受け、前記台形シストリックアレイの下底側に位置する前記線形シストリックアレイから出力が出力され、
前記台形シストリックアレイにおいて、
各行から下の行に出力される中間処理結果を、複素数MFA(Modified Faddeeva Algorithm)アルゴリズムの中間結果に対して位相をずらしたものとし、
2行目以降の各行は、それぞれ、前行から供給される、位相がずれた複素MFA中間処理結果の第1成分と位相ずれパラメータとを受け、第1、第2のベクトル回転パラメータと、積和演算係数と、位相ずれパラメータを生成する境界処理部と、前記位相がずれたMFA中間処理結果の第1成分以外の成分と、前記第1と第2のベクトル回転パラメータと、前記積和演算係数とを受け、位相がずれたMFA中間処理結果を、次行に供給する内部処理部と、を備え、
前記台形シストリックアレイの各行から次行に出力される中間結果の、複素MFAアルゴリズムの中間結果に対する位相のずれを前記次行で吸収させ、
前記線形シストリックアレイは、前記台形シストリックアレイの前記下底の行から供給される位相ずれパラメータに基づき、前記台形シストリックアレイの下底の行の前記内部処理部からの入力信号に対し位相回転を行うことで、複素MFA処理結果の位相ずれを補正する、演算装置。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8589467B2 (en) * | 2007-11-22 | 2013-11-19 | Nec Corporation | Systolic array and calculation method |
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 |
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 |
US20160267111A1 (en) * | 2015-03-11 | 2016-09-15 | Microsoft Technology Licensing, Llc | Two-stage vector reduction using two-dimensional and one-dimensional systolic arrays |
US11507429B2 (en) | 2017-09-14 | 2022-11-22 | Electronics And Telecommunications Research Institute | Neural network accelerator including bidirectional processing element array |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008027234A (ja) * | 2006-07-21 | 2008-02-07 | Nec Electronics Corp | シストリックアレイ |
Family Cites Families (5)
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 |
US8589467B2 (en) * | 2007-11-22 | 2013-11-19 | Nec Corporation | Systolic array and calculation method |
-
2008
- 2008-11-21 US US12/744,450 patent/US8589467B2/en active Active
- 2008-11-21 JP JP2009542599A patent/JP5353709B2/ja not_active Expired - Fee Related
- 2008-11-21 EP EP08852353A patent/EP2224347A1/en not_active Withdrawn
- 2008-11-21 WO PCT/JP2008/071220 patent/WO2009066760A1/ja active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008027234A (ja) * | 2006-07-21 | 2008-02-07 | Nec Electronics Corp | シストリックアレイ |
Non-Patent Citations (2)
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 |
---|---|
US20100250640A1 (en) | 2010-09-30 |
JPWO2009066760A1 (ja) | 2011-04-07 |
EP2224347A1 (en) | 2010-09-01 |
US8589467B2 (en) | 2013-11-19 |
WO2009066760A1 (ja) | 2009-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5353709B2 (ja) | シストリックアレイ及び演算方法 | |
US11537687B2 (en) | Spatial locality transform of matrices | |
US8195733B2 (en) | Systolic array | |
JP5840994B2 (ja) | 行列演算装置 | |
CN107341133B (zh) | 基于任意维数矩阵lu分解的可重构计算结构的调度方法 | |
CN115344236B (zh) | 多项式乘法运算方法、多项式乘法器、设备及介质 | |
US8549056B2 (en) | Apparatus and program for arctangent calculation | |
CN112559954A (zh) | 基于软件定义可重构处理器的fft算法处理方法及装置 | |
US10665958B2 (en) | Beamforming receiver | |
JP2012050009A (ja) | 画像処理装置およびその制御方法 | |
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 | |
EP3272025A1 (en) | Phase rotation and amplitude control unit | |
KR100444729B1 (ko) | 레딕스-8 단일 경로 지연 전달 구조의 고속 퓨리에 변환장치 및 그 방법 | |
Gertner et al. | A parallel algorithm for 2-d DFT computation with no interprocessor communication | |
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) | 모듈러 곱셈 장치 및 방법 | |
Chatterjee et al. | A low cost, constant throughput and reusable 8# x00D7; 8 DCT architecture for HEVC | |
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 | |
Huang et al. | A Trusted Inference Mechanism for Edge Computing Based on Post-Quantum Encryption | |
Meher et al. | A new convolutional formulation of discrete cosine transform for systolic implementation | |
US10929502B2 (en) | Matrix triangulation apparatus, matrix triangulation method, and program |
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 |