JP4657998B2 - シストリックアレイ - Google Patents

シストリックアレイ Download PDF

Info

Publication number
JP4657998B2
JP4657998B2 JP2006199682A JP2006199682A JP4657998B2 JP 4657998 B2 JP4657998 B2 JP 4657998B2 JP 2006199682 A JP2006199682 A JP 2006199682A JP 2006199682 A JP2006199682 A JP 2006199682A JP 4657998 B2 JP4657998 B2 JP 4657998B2
Authority
JP
Japan
Prior art keywords
array
mfa
square
processing
xin
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
JP2006199682A
Other languages
English (en)
Other versions
JP2008027234A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2006199682A priority Critical patent/JP4657998B2/ja
Priority to US11/878,058 priority patent/US8195733B2/en
Publication of JP2008027234A publication Critical patent/JP2008027234A/ja
Application granted granted Critical
Publication of JP4657998B2 publication Critical patent/JP4657998B2/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

Description

本発明は、シストリックアレイに関し、特に、MFA(修正Faddeevaアルゴリズム)行列演算を行うシストリックアレイに関する。
行列演算は、無線通信、有線通信、画像処理において幅広く利用されている。近年、無線・有線通信速度向上に対応するため、効率的に並列演算が可能なシストリックアレイが着目されている。
シストリックアレイは、複数のプロセッシングエレメント(「PE」という)を一次元又は二次元に配置し、PE間でのデータのやり取りは、隣接PE間でのみ行うものである。
また、シストリックアレイは、その規則性と配線容易性のため、VLSI等への集積化に適している。
シストリックアレイは、行列演算の種類(行列積、QR分解、最小2乗解法等)により、最適トポロジが異なる。例えば、QR分解には、三角構成が最適であり、行列積には四角構成が最適である。
複数種類の行列演算を実現する場合、単一アルゴリズムを実現するシストリックアレイを用意しておき、各行列演算を単一アルゴリズムにマッピングすることが提案されている。この手法は、各行列演算に対して必ずしも最適な実現手段ではないが、その汎用性に利点がある。
複数の行列演算が可能なアルゴリズムとして、Modified Faddeeva Algorithm(「MFA」と略記される)が知られている。MFAは、式(1)に示すように、2ステップの処理を行う。
Figure 0004657998
第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 0004657998
MFAは、A、B、C、Dに代入する行列を変更することにより、以下に示すような、様々な行列演算を実現することができる。また、第1ステップだけ実行した場合、QR分解を実現できる。
線形システム解(AX=B)
Figure 0004657998
行列積
Figure 0004657998
逆行列
Figure 0004657998
図9(A)、図9(B)に、MFA演算をシストリックアレイで実現する場合のシグナルフローグラフを示す。図9(A)の三角シストリックアレイでは、ステップ1として、上三角行列Rを求める。図9(A)に示すように、Givens回転の回転パラメータは、右に伝播し、四角シストリックアレイで、QBを計算する。
ステップ2では、図9(B)に示すように、三角シストリックアレイと四角シストリックアレイのそれぞれに、C、Dを入力する。この時、水平方向に、
−R−T
が伝播し、四角シストリックアレイの下辺から、
E=D+CA−1
が出力される。
ユニタリ行列Qを求める場合には、第2のステップ(Step2)において、Cに−Aを代入する。この場合、C=−Aより、四角シストリックアレイの水平方向出力は、
−R−T =R−T =(AR−1=Q
となる。
図10に、行列のサイズが、A(mx4),B(mx4),C(nx4),D(nx4)(ただし、m,nは任意の行数)の場合のMFAを実現する二次元シストリックアレイの詳細動作を示す(特許文献1参照)。また、本明細書では、例えば、“A(mx4)”は行列Aがm行x4列であることを表す。他の行列も同様である。図10(A)、図10(B)は、図9(A)、図9(B)のステップ1、2に対応し、図10(C)は、バウンダリセル(Boundary Cell)と内部セル(Internal Cell)のステップ1、2における演算処理を示す。
図10に示すように、入出力データは遅延(スキュー)を調整する必要がある。なお、図10(A)において、丸で示すバウンダリセル(Boundary Cell)は、ステップ1では、入力xinに対して、
xinが0のとき、
c=1、s=0
を出力し、それ以外の場合、
t=(r+xin1/2
とし、
c=r/t、
s=xin/t
より、ベクトル角度を求め、r=tとする。図の丸のバウンダリセルのrは更新されたrを表している。
また、図10(A)において、四角で示す内部セル(Internal Cell)は、ステップ1では、
xout=c・xin−s・r,
r=s・xin+c・r
によりベクトル回転を行う。
ステップ2では、図10(B)において、丸で示すバウンダリセル(Boundary Cell)において、入力xinに対して除算
s=xin/r
を求める。また、図10(B)において、四角で示す内部セル(Internal Cell)では、積和演算
xout=xin−s・r
を行う。
図11に、二次元MFAシストリックアレイを用いた行列演算器の全体構成を示す。台形(三角シストリックアレイと四角シストリックアレイからなる)の二次元MFAシストリックアレイ301と、入力データを格納するメモリ302と、二次元MFAシストリックアレイ301の四角シストリックアレイの下辺からの出力を格納するメモリ303と、二次元MFAシストリックアレイ301の四角シストリックアレイの側面の辺からの出力を格納するメモリ304を備えている。
二次元MFAシストリックアレイを、一次元アレイに水平方向もしくは垂直方向に投射(Projection)した構成を開示した文献はある(特許文献2等参照)。しかしながら、この文献ではMFAアルゴリズムを利用した二次元MFAシストリックアレイを一次元アレイに投射した構成は一切開示されていない。
J. G. Nash, "Modified Faddeeva Algorithm for Concurrent Execution of Linear Algebraic Operations", IEEE Trans. Computers, vol.37, No2, pp129-137(1988) R. Walke, R. Smith, "Architecture for Adaptive Weight Calculation on ASIC and FPGA", Signals, Systems, and Computers, 1999. Conference Record of the Thirty-Third Asilomar Conference on, Volume 2, 24-27 Oct. 1999 Page(s):1375-1380, vol.2
上述のように二次元MFAシストリックアレイは、その演算スループットが高いが、PEを二次元に配置するため回路規模が大きくなる。
そこで、所要演算スループットに対して、二次元MFAシストリックアレイでは演算スループットが過剰である場合、二次元MFAシストリックアレイを、水平方向もしくは垂直方向に投射した、一次元シストリックアレイについて検討する。
図12(B)に、一次元シストリックアレイを用いた行列演算器の構成例(水平方向投射)を示す。図12(B)の構成は、図12(C)の台形二次元MFAシストリックアレイ(三角シストリックアレイと四角(4x4)のシストリックアレイからなる)を、PE4個の一次元シストリックアレイに投影した構成である。図12(A)は、一次元シストリックアレイの各PEのバウンダリ(Boundary)処理と、内部(Internal)処理の数を示している。PE1〜PE4において、内部(Internal)処理は、それぞれ7〜4とされ、演算量、負荷が均一化されていない。
図12に示した構成の一次元MFAシストリックアレイは、以下の課題を有する。
(1)計算できる行列のサイズが限定される。
図12に示した例の場合、行列のサイズは、A(mx4)、B(mx4)、C(nx4)、D(nx4)(ただし、m,nは任意の行数)に限定される。
(2)メモリ等の入出力I/F(インタフェース)が、3辺(上辺、下辺、右辺(もしくは左辺))に必要となる。
図12(B)に示した例の場合、一次元のアレイの両端のメモリ(Input DataのMemory、Output DataのMemory)、出力データ用に、一次元のアレイのPE1、PE2、PE3、PE4の各右辺に、メモリ(Memory)が必要とされる。
(3)各PEの負荷にばらつきがあるため、演算効率が低下し、制御処理も複雑になる。
これらの課題は、二次元MFAアレイの各PEの処理の一次元MFAアレイの各PEへの割り当てが適切でないために生じている。
本願で開示される発明は、上記課題を解決するため、概略以下の構成とされる。
本発明の1つのアスペクト(側面)に係る装置は、MFA(Modified Faddeeva Algorithm)を利用した行列演算用シストリックアレイであって、一の方向の正方MFAアレイ処理と、前記一の方向と逆方向の正方MFAアレイ処理とを、各々、前記一の方向と直交する方向に沿って、共通の一次元アレイに投影してなる、一次元構造とされ、前記一次元アレイでは、前記一の方向と前記逆方向の二つのスレッドのMFA行列演算が行われる。
本発明において、前記一次元アレイの各PE(プロセッシングエレメント)は、前記一の方向のMFA行列演算と前記逆方向のMFA行列演算とを、並列又は時分割処理する構成としてもよい。
本発明において、前記一次元アレイへのデータの入力及び出力は、前記一次元アレイの両端のPEに関してのみ行われる。本発明において、前記一次元アレイへの入力データ及び出力データを格納するメモリは、前記一次元アレイの両端のPEに対してのみ設けられる。
本発明において、前記一の方向の正方MFAアレイ処理は、台形型の第1の二次元MFAシストリックアレイを、第1の正方シストリックアレイに変換することで構成され、前記逆方向の正方MFAアレイ処理は、台形型の第2の二次元MFAシストリックアレイを、前記第1の正方シストリックアレイとは180度の回転対称とされる、第2の正方シストリックアレイに変換することで構成され、前記一次元アレイは、投影に着目すると、前記一次元アレイを間に挟んで、互いに対向配置の位置関係にある、前記一の方向の正方MFAアレイ処理と前記逆方向の正方MFAアレイ処理とを、前記一の方向と直交する方向に沿って且つ互いに対向する向きに、前記一次元アレイにそれぞれ投影して構成したものと等価とされる。
本発明において、前記一次元アレイを構成する複数のPEの各々には、前記一の方向の正方MFAアレイ処理の対応する行の内部処理、バウンダリ処理、及び、遅延処理のうちの少なくとも1つと、前記逆方向の正方MFAアレイ処理の対応する行の内部処理、バウンダリ処理、及び、遅延処理のうち少なくとも1つとが、順番に割り付けられる構成としてもよい。
本発明において、前記第1、第2の正方シストリックアレイは、それぞれ、前記台形型の第1、第2の二次元MFAシストリックアレイの空きセル領域に、余分なバウンダリセルが配置され、正方シストリックアレイとしたものである。
本発明において、前記一の方向の正方MFAアレイ処理を、下方向の正方MFAアレイ処理とし、前記逆方向の正方MFAアレイ処理を、上方向の正方MFAアレイ処理とした場合、前記第1の正方シストリックアレイは、対角要素に対して右上の三角アレイの各要素が遅延セルよりなり、アレイ左端列において、最上行より下方にバウンダリセルが、列方向に配列される内部セルに対応して配置され、前記第2の正方シストリックアレイは、対角要素に対して左下の三角アレイの各要素が、遅延セルよりなり、アレイ右端列において、最下行より上方にバウンダリセルが、列方向に配列される内部セルに対応して配置される。本発明において、前記第1の正方シストリックアレイは、アレイ左端列において、前記バウンダリセルの下側に、前記余分なバウンダリセルを含み、前記第2の正方シストリックアレイは、アレイ右端列において、前記バウンダリセルの上側に、前記余分なバウンダリセルを含むようにしてもよい。
本発明において、前記一次元アレイの両端のPEには、アレイサイズに1加算した値に対して1回の割合で、nop(no operation)が挿入され、前記一次元アレイの各PE間での処理負荷の均一化が図られている。
本発明において、前記一次元アレイの両端から入力されるデータには、前記一次元アレイの両端のPEのnop(no operation)を指示するダミーデータが挿入される。
本発明において、前記一次元アレイを構成する各PEは、演算装置と、入力データ及び出力データを格納するレジスタファイルと、前記レジスタファイルと、前記レジスタファイルの値の前記演算装置または出力端子に供給するスイッチと、前記演算装置の演算処理、及び、前記スイッチの切替を制御する制御装置と、を備え、前記演算装置の出力は、前記レジスタファイルに帰還入力される。
本発明によれば、回路規模の縮減を可能とするとともに、演算する行列サイズが可変としている。さらに、本発明によれば、負荷を均一化し、さらに、入出力データを蓄積するメモリを減らしている。
本発明によれば、一次元アレイ構造とすることでPEの個数を縮減しながら、負荷の均一化を実現し、さらに部品(素子)点数の縮減、構成の簡略化も実現可能としたものであり、半導体集積回路に適用して好適とされる。
上記した本発明についてさらに詳細に説明すべく添付図面を参照して以下に説明する。本発明は、下方向正方MFAアレイ処理と、上方向正方MFAアレイ処理を、共通の一次元アレイに、水平方向にマッピングし、一次元アレイのPEでは、下方向と上方向の二つのスレッドのMFA演算を、並列又は時分割に実行する。かかる構成により、演算効率を向上させ、メモリ等の入出力インタフェース(I/F)は、上下両端のPEに対してしか必要とせず、演算する行列サイズが可変としている。
本発明による、一次元アレイへのマッピングの仕方について説明する。前記下方向正方MFAアレイ処理は、台形型の第1の二次元MFAシストリックアレイを、第1の正方シストリックアレイに変換することで構成され、前記上方向正方MFAアレイ処理は、台形型の第2の二次元MFAシストリックアレイを、前記第1の正方シストリックアレイとは180度の回転対称とされる、第2の正方シストリックアレイに変換することで構成され、前記一次元アレイは、マッピングに着目すると、前記一次元アレイを間に挟んで、互いに対向配置の位置関係にある、前記上方向の正方MFAアレイ処理と前記下方向正方MFAアレイ処理を、水平方向に沿って且つ、互いに対向する向きに、一次元アレイに、それぞれ投影して構成したものと等価とされる。
本発明において、前記一次元アレイを構成する複数のPEのうち、両端部を除く各PEには、前記一の方向の正方MFAアレイ処理の対応する行の内部(Internal)処理、バウンダリ(Boundary)処理、及び、遅延(Delay)処理のうちの少なくとも1つと、前記逆方向の正方MFAアレイ処理の対応する行の内部処理、バウンダリ処理、及び、遅延処理のうち少なくとも1つとが、順番に割り付けられ、両端部のPEには、前記一の方向の正方MFAアレイ処理の対応する行の内部(Internal)処理、バウンダリ(Boundary)処理、及び、遅延(Delay)処理のうちの少なくとも1つと、前記逆方向の正方MFAアレイ処理の対応する行の内部処理、バウンダリ処理、及び、遅延処理のうち少なくとも1つと、nop(no operation)と、が順番に割り付けられる。
本発明において、前記第1の正方シストリックアレイは、対角要素に対して右上の三角アレイの各要素が遅延セル(Delay Cell)よりなり、アレイ左端列において、最上行より下方にバウンダリセル(Boundary Cell)が、対角要素より列方向下側に配列される内部セル(Internal Cell)に対応して配置され、前記第2の正方シストリックアレイは、対角要素に対して左下の三角アレイの各要素が、遅延セル(Delay Cell)よりなり、アレイ右端列において、最下行より上方にバウンダリセル(Boundary Cell)が、対角要素より列方向上側に配列される内部セル(Internal Cell)に対応して配置される。本発明において前記第1の正方シストリックアレイは、アレイ左端列において、前記バウンダリセルの下側に、前記余分なバウンダリセル(Extra Boundary Cell)を含み、前記第2の正方シストリックアレイは、アレイ右端列において、前記バウンダリセルの上側に、前記余分なバウンダリセル(Extra Boundary Cell)を含む。以下、実施例に即して説明する。
図1は、本発明の一実施例の構成を示す図である。本発明に係るシストリックアレイは、下方向正方MFAアレイ処理と、上方向正方MFAアレイ処理を一次元アレイに水平方向に投影した一次元MFAシストリックアレイとして構成され、MFAアルゴリズムを用いて、下方向と上方向の二つのスレッド分(Thread1、Thread2)の行列演算を、並列又は時分割で実行する。入力データと出力データのインタフェース(I/F)をなすメモリ(Memory)は、上下両端のPE1、PE8に対して備えられている。なお、図1では、単に説明のため、8個のPEからなる一次元アレイが図示されているが、本発明がかかる構成(8個のPE)にのみ限定されるものでないことは勿論である。
図2は、2スレッド分のMFAアルゴリズム処理の一次元シストリックアレイへのマッピングの仕方を模式的に示す図である。なお、一次元へのマッピングを投射(あるいは投影、射影)ともいう。
本発明では、図10に示した、従来の台形型の二次元MFAシストリックアレイ(上辺7つの内部セル+バウンダリセル、下辺4つの内部セル+バウンダリセル、高さは4セル分)を、図2の左側に示す、下方向正方MFAアレイ処理(8x8の正方MFAアレイ)に変形する。下方向正方MFA処理において、対角要素よりも右上の三角アレイは、遅延処理を行う遅延セル(Delay Cell)である。下方向正方MFA処理の下から1行目、2行目、3行目の左2列目から3つ、2つ、1つも遅延セル(Delay Cell)である。
図2の右側の上方向正方MFA処理は、左側の下方向正方MFAアレイを180度回転させたものである(180度回転対称)。一次元アレイは、図2の左側の下方向正方MFAアレイの各処理を、図の左から右に向けて水平方向に一次元アレイに投射し、図2の右側の上方向正方MFAアレイの各処理を、図の右から左に向けて水平方向に、一次元アレイに投射することで構成される。
ところで、正方の二次元MFAシストリックアレイは、台形型の二次元MFAシストリックアレイに比べて次の利点がある。
(i)台形型の二次元MFAアレイの空き領域に、エクストラバウンダリセル(Extra boundary Cell;「余分なバウンダリセル」ともいう)を付加することにより、MFAアルゴリズムを適用する行列サイズを適応的に変化させることができる。例えば図2に示した構成のアレイの場合、式(1)の行列A、Bのサイズを、A(mx2)、B(mx6)から、A(mx7)、B(mx1)に変化できる。
(ii)入力I/Fは、正方アレイ上辺に、出力I/Fは、正方アレイの下辺に集中しており、正方アレイ左右の辺に、入出力I/F(Memory)は存在しない。
しかしながら、上記(i)、(ii)の利点があるものの、正方MFAアレイ単体の処理を、一次元アレイにマッピングした場合、一次元アレイの各PEの負荷にばらつきが発生し(図3を参照して後述する)、演算効率が低下し、制御処理も複雑になる。
そこで、本発明では、図2に示すように、下方向にデータを受け渡す、下方向正方MFAアレイの各処理と、上方向にデータを受け渡す、上方向正方MFAアレイの各処理を、一次元アレイに水平方向に、マッピングすることにより、各PEに対する演算負荷を均一化し、演算効率を向上させている。
図3は、本発明の比較例を説明するための図である。図3(B)には、行列A、BのサイズがA(mx7)、B(mx1)(ただし、余分なバウンダリセル(Extra boundary Cell)を全て使用した場合)の、下方向正方MFAアレイ処理を、一次元アレイ(図3(A)参照)に水平方向に投射した場合の各PEの処理負荷が示されている。図3(B)の第1乃至第8行(Boundary処理、Internal処理、Delay処理の回数)は、図3(A)のPE1乃至PE8にそれぞれ対応している。図3(B)に示す例では、上端のPE1から下端のPE8に向けて、内部(Internal)処理の回数は、0から7に順次増加し、遅延(Delay)処理の回数は7から0に減少し、バウンダリ(Boundary)処理の回数は、下端のPE8を除き1、下端のPE8で0である。
一方、図4は、本発明による一次元アレイの各PEの処理負荷を示す図である。図4(B)には、本発明にしたがって、下方向正方MFAアレイ処理と、下方向正方MFAアレイ処理と180度回転対称の関係にある上方向正方MFAアレイ処理を、共通の一次元アレイ(図4(A))に、水平方向に投射した場合の各PEの処理負荷が示されている。図4(B)の第1乃至第8行(Boundary処理、Internal処理、Delay処理の回数)は、図4(A)のPE1乃至PE8にそれぞれ対応している。この場合、下方向正方MFAアレイ処理は、水平方向への投射による各PEの処理負荷は、図3(B)に示したものと同一とされる。すなわち、図3(B)に示したPE1〜PE8の処理負荷において、PE1とPE8、PE2とPE7、PE3とPE6、PE4とPE5の各行(Boundary処理、Internal処理、Delay処理の回数)を入れ替えた表(不図示)の各行と、図3(B)の表の各行(Boundary処理、Internal処理、Delay処理の回数)の対応する欄を加算したものが、図4(B)である。図4(B)に示すように、両端のPE1、PE8のバウンダリ(Boundary)処理の回数(1回)が、他のPE2〜PE7のバウンダリ(Boundary)処理の回数(2回)よりも1回少ないことを除き、全てのPE1乃至PE8の負荷が均一となり、演算効率が高い。すなわち、PEの内部(Internal)処理、遅延(Delay)処理の回数は、いずれも7とされる。
図5は、本実施例で用いられる各PEの構成の一例を示す図である。図5を参照すると、PEは、レジスタファイル101と、CORDIC演算回路(CORDC PROCESSOR)103と、PE出力とCORDIC演算回路103の入力を選択するクロスバー102と、制御回路(Controller)104を備えている。CORDICは、モード切替により、例えばベクトル回転、ベクトル角度算出、積和演算、除算を実現できる。CORDIC演算回路103の処理は、FPU(浮動小数点プロセッサ)で実行されるため、「CORDIC−FPU処理」ともいう。MFA処理に必要な演算は、全て、CORDICで実現できる。下方向及び上方向の入力信号(Input signal Up/Down)は、一旦レジスタファイル101に格納される。また、図8は図5のCORDIC演算回路による処理を説明する図である。なお、図8は図10(c)と同じであり、その処理内容は前述のとおりである。
CORDIC演算回路103は、必要な入力をクロスバー102を介してレジスタファイル101から取り出し、演算結果を、レジスタファイル101に格納する。
2つのスレッドの下方向及び上方向の出力データ(Output signal Up/Down)は、レジスタファイル101から、クロスバー102を介して取り出され、隣接PE又はメモリに出力される。
遅延(Delay)処理は、入力データをレジスタファイル101に格納し、CORDIC演算回路103を通さずに、クロスバー102から、そのまま出力することで実現する。
図6は、行列A、BのサイズがA(mx2)、B(mx1)の構成例と、下方向正方MFA処理及び上方向正方MFA処理の各処理のPEへのマッピング例を模式的に示した図である。なお、以下では、下方向正方MFA処理を説明する部分では行列A、Bをそのまま用い、上方向正方MFA処理を説明する部分では、上方向正方MFA処理における行列A、BをA’、B’として表す。
行列A、BのサイズがA(mx2)、B(mx1)の場合、MFA処理は、図6に示すように、PE3個で実現できる。
図6を参照すると、一次元アレイへマッピングされる下方向正方MFA処理において、アレイ上辺から1行目のバウンダリ(Boundary)処理DB1、遅延(Delay)処理DD1、DD2に入力される信号をds1、ds2、ds3とする。バウンダリ処理DB1の出力信号ds4と遅延処理DD1の出力信号ds5は、遅延処理DD1の下の内部処理DI1に入力される。遅延処理DD2の出力信号ds6は、遅延処理DD2の下の遅延処理DD3に入力される。内部処理DI1の第1出力ls1(xout)は、左のバウンダリ処理DB2に入力される。内部処理DI1の第2の出力ds8と遅延処理DD3の出力ds9は、遅延処理DD3の下の内部処理DI3に入力される。バウンダリ処理DB2の出力ds7と内部処理DI3の出力ls2は、内部処理DI2に入力される。内部処理DI2の出力ds10、ds11と、内部処理DI3の出力ds12がアレイ下辺から出力される。信号ds1、ds2には、A(mx2)の各要素、信号ds3にはB(mx1)が順次供給される。なお、行列A、Bの処理が終わり次第、下方向正方MFA処理に対応する行列C、D(行列C、DのサイズはそれぞれC(nx2)、D(nx1)とする)の各要素が順次供給される。
一次元アレイへマッピングされる上方向正方MFA処理において、アレイ下辺よりバウンダリ処理UB1、遅延処理UD1、UD2に入力される信号を、us1、us2、us3とする。バウンダリ処理UB1の出力信号us4と遅延処理UD1の出力信号us5は、遅延処理UD1の上の内部処理UI1に入力される。遅延処理UD2の出力信号us6は、遅延処理UD3に入力される。内部処理UI1の第1出力rs1は、右のバウンダリ処理UB2に入力される。内部処理UI1の第2の出力us8と遅延処理UD3の出力us9は、遅延処理UD3の上の内部処理UI3に入力される。バウンダリ処理UB2の出力us7と内部処理UI3の出力rs2は内部処理UI2に入力される。内部処理UI2の出力us10、us11と、内部処理UI3の出力us12がアレイ上辺より出力される。信号us1、us2には、A’(mx2)の各要素、信号us3にはB’(mx1)が供給される。なお、行列A’、B’の処理が終わり次第、上方向正方MFA処理に対応する行列C’、D’(ここで行列C’、D’は、上述同様、下方向正方MFA処理の行列C、Dに対応するものであって、そのサイズはそれぞれC’(nx2)、D’(nx1)とする)の各要素が順次供給される。
一次元アレイへマッピングされる下方向MFAシストリックアレイ、上方向MFAシストリックアレイの各アレイの要素の処理は、図10の太破線の矢印のように、対応する行のPEに射影される。
図7は、図6に示した例において、各PEが一次元アレイ(PE1、PE2、PE3)にマッピングされたMFA処理の処理タイミングと、データ入出力タイミングを示している。図7において、縦の同一列は、同一タイミングに行われることを表しており、横の列は、上から順に、図6のPE1の下方向入力201、PE1の上方向出力202、PE1 CORDIC−FPU処理、PE1の下方向出力/PE2下方向入力203、PE1の上方向入力/PE2上方向出力204、PE2 CORDIC−FPU処理、PE2の下方向出力/PE3下方向入力205、PE2の上方向入力/PE3上方向出力206、PE3 CORDIC−FPU処理、PE3下方向出力207、PE3上方向入力208である。
PE1下方向入力としては、アレイ上辺からの信号ds3、ds2、ds1に入力する3つのデータと、dummy(ダミーデータ)とが、タイミング1〜4において、この順(ds3、ds2、ds1、dummy)に、シーケンシャルに入力される。
図10に示した行列A、Bの要素についてみると、ds1には、a11、a21、・・・、が順次入力され、ds2には、a12、a22、・・・、が順次入力され、ds3には、b11、b21、・・・が順次入力される。
PE1では、例えば、タイミング3に入力されたds1についてタイミング4でCORDIC−FPUによる、下方向正方MFA処理のバウンダリ処理DB1が実行され、タイミング5では、タイミング4に入力されたダミーデータ(dummy)により、nop(no operation)とされる。また、PE1は、タイミング6と7では、上方向正方MFA処理の内部処理UI3とUI2をそれぞれ実行し、タイミング8で下方向正方MFA処理のバウンダリ処理DB1を実行した後、タイミング9でnopとなる。このように、PE1での処理は、DB1、nop、UI3、UI2、DB1、nop、UI3,UI2、・・・の繰り返しとなる。
PE1の出力を受けるPE2では、例えばタイミング5と6で、PE1からそれぞれ出力されるds5とds4を入力して、タイミング8で下方向正方MFA処理の内部処理DI1を行い、内部処理DI1の出力ls1を受けて次のタイミングt9でバウンダリ処理DB2を実行し、またタイミング4と5でPE3から出力されるus5とus4に対してタイミング6で、上方向正方MFA処理の内部処理UI1を実行し、タイミング7でUB2を実行する。このように、PE2での処理は、DB2、UI1、UB2、DI1、DB2、UI1、UB2、DI1・・・となり、nopは入らない。
PE3では、例えばタイミング9、10に入力されたds9、ds8のCORDIC−FPU処理(下方向正方MFA処理の内部処理DI3)がタイミング11で実行され、タイミング12では、下方向正方MFA処理の内部処理DI3の処理結果と、タイミング11で入力されたds7とから、下方向正方MFA処理の内部処理DI2が実行され、タイミング13では、タイミング12にPE3に入力されたダミーデータ(dummy)によりnopが実行される。さらに、PE3では、上方向正方MFA処理として、タイミング1に入力されたus1のバウンダリ処理UB1がタイミング2で実行される。このように、PE3での処理は、・・・UB1、DI3、DI2、nop、UB1、DI3、DI2、nop、・・・となる。
図7において、PE2に着目すると、下方向正方MFA処理と上方向正方MFA処理とを、時分割に処理することにより、PE内のCORDIC演算回路が100%活用できていることが分かる。すなわち、PE2には、nopは挿入されない。
図7の「PE2CORDIC−FPU処理」に示すように、PE2では、2つのバウンダリ処理(下方向正方MFA処理のDB2と上方向正方MFA処理のUB2)と、2つの内部処理(下方向正方MFA処理のDI1と上方向正方MFA処理のUI1)が4サイクルを単位に巡回して行われる。
これに対して、図7の「PE1CORDIC−FPU処理」、「PE3CORDIC−FPU処理」に示すように、一次元アレイの両端のPE1とPE3のCORDIC演算回路では、PE2と比較して、バウンダリ処理が一つ少ないため、4回(アレイサイズ+1)に1回、nop(休み)が入っている。アレイサイズ+1の割合でnopが挿入される。ただし、アレイサイズが大きい場合には、nopが挿入される割合は、少なくなる。
上記した本実施例によれば、下記記載の作用効果を奏する。
(i)MFAアルゴリズムを適用する行列サイズを適応的に変化できる。図2に示したアレイの場合、式(1)の行列A、BのサイズをA(mx2),B(mx6)からA(mx7),B(mx1)に変化できる。入力I/Fがアレイ上辺に、出力I/Fがアレイ下辺に集中しており、アレイ左右の辺に入出力I/Fが存在しない。
(ii)また、上下方向の正方MFAアレイ処理を一つの一次元アレイの各PEに効率よくマッピング(投射)しているため、各PEの負荷に均一であるため、演算効率が高い。
(iii)さらに、PE、出力I/F等の素子点数を縮減し、半導体集積化回路に実装して好適とされる。
以上、本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみ制限されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
本発明の一実施例の構成を示す図である。 本発明によるMFAアルゴリズム処理の一次元シストリックアレイへのマッピングを説明する図である。 (A)は一次元アレイ、(B)は下方向正方MFAアレイ処理を一次元アレイに水平方向に射影した場合の各PEの処理負荷の一例(比較例)を示す図である。 (A)は一次元アレイ、(B)は上方向正方MFAアレイ処理を一次元アレイに水平方向に射影した場合の各PEの処理負荷を示す図である。 本発明の一実施例のPEの構成例を示す図である。 本発明の一実施例における一次元シストリックアレイの構成例(A(mx2)、B(mx2))を説明する図である。 図6の動作タイミングを示す図である。 図5のCORDIC演算回路による処理を説明するための図である。 MFAアリゴリズムのシグナルフローグラフである。 特許文献1の二次元MFAシストリックアレイを説明する図である。 二次元MFAシストリックアレイを用いた行列演算器の全体構成を示す図である。 一次元MFAシストリックアレイを用いた行列演算器の全体構成を示す図である。
符号の説明
101 レジスタファイル
102 クロスバー
103 CORDIC演算回路
104 コントローラ
301 二次元MFAシストリックアレイ
201 PE1の下方向入力
202 PE1の上方向出力
203 PE1の下方向出力/PE2下方向入力
204 PE1の上方向入力/PE2上方向出力
205 PE2の下方向出力/PE3下方向入力
206 PE2の上方向入力/PE3上方向出力
207 PE3下方向出力、
208 PE3上方向入力
302、303、304 メモリ

Claims (13)

  1. 行列AをQR分解し(Qはユニタリ行列、Rは三角行列)、行列[A B]=[QR B]に対して左からQ(Tは転置を示す)を乗じ、[R QB]を求め、三角行列Rの対角成分を枢軸としてガウス消去法で行列E=D+CA−1Bを得るMFA(Modified Faddeeva Algorithm)を利用した行列演算用シストリックアレイであって、
    一の方向の正方MFAアレイ処理と、前記一の方向と逆方向の正方MFAアレイ処理とを、各々、前記一の方向と直交する方向に沿って、共通の一次元アレイにマッピングしてなる、一次元構造とされ、
    前記一次元アレイでは、前記一の方向と前記逆方向の二つのスレッドのMFA行列演算が行われ、
    前記一の方向の正方MFAアレイは、台形型の第1の二次元MFAシストリックアレイを、第1の正方シストリックアレイに変換することで構成され、
    前記逆方向の正方MFAアレイは、台形型の第2の二次元MFAシストリックアレイを、前記第1の正方シストリックアレイとは180度の回転対称とされる、第2の正方シストリックアレイに変換することで構成され、
    前記一次元アレイは、前記マッピングにおいて、前記一次元アレイを間に挟んで、互いに対向配置の位置関係にある、前記一の方向の正方MFAアレイの各処理と、前記逆方向の正方MFAアレイの各処理を、前記一の方向と直交する方向に沿って且つ互いに対向する向きに、前記一次元アレイにそれぞれ投射して構成したものと等価とされる、ことを特徴とするシストリックアレイ。
  2. 前記一次元アレイの各プロセッシングエレメントは、前記一の方向のMFA行列演算と前記逆方向のMFA行列演算とを並列処理する、ことを特徴とする請求項1記載のシストリックアレイ。
  3. 前記一次元アレイの各プロセッシングエレメントは、前記一の方向のMFA行列演算と前記逆方向のMFA行列演算とを時分割処理する、ことを特徴とする請求項1記載のシストリックアレイ。
  4. 前記一次元アレイへのデータの入力及び出力は、前記一次元アレイの両端のプロセッシングエレメントに関してのみ行われる、ことを特徴とする請求項1記載のシストリックアレイ。
  5. 前記一次元アレイへの入力データ及び出力データを格納するメモリは、前記一次元アレイの両端のプロセッシングエレメントに対してのみ設けられる、ことを特徴とする請求項1記載のシストリックアレイ。
  6. 前記一次元アレイを構成する複数のプロセッシングエレメントの各々には、前記一の方向の正方MFAアレイ処理の対応する行の内部処理であって、
    ステップ1では、入力xinに対して、
    xout=c・xin−s・r,
    r=s・xin+c・r
    によりベクトル回転を行い、
    ステップ2では、積和演算
    xout=xin−s・rを行う内部処理、
    ステップ1では、入力xinに対して、xinが0のとき、
    c=1、s=0
    を出力し、それ以外の場合、
    t=(r+xin1/2
    とし、c=r/t、
    s=xin/t
    より、ベクトル角度を求め、r=tとし、
    ステップ2では、入力xinに対して除算s=xin/r
    を求めるバウンダリ処理、
    及び、遅延処理のうちの少なくとも1つと、前記逆方向の正方MFAアレイ処理の対応する行の内部処理、バウンダリ処理、及び、遅延処理のうち少なくとも1つとが、順番に割り付けられる、ことを特徴とする請求項1記載のシストリックアレイ。
  7. 前記第1、第2の正方シストリックアレイは、それぞれ、前記台形型の第1、第2の二次元MFAシストリックアレイの空きセル領域に、余分なバウンダリセルが配置され、正方シストリックアレイとし、
    前記バウンダリセルは、
    ステップ1では、入力xinに対して、xinが0のとき、
    c=1、s=0
    を出力し、それ以外の場合、
    t=(r+xin1/2
    とし、c=r/t、
    s=xin/t
    より、ベクトル角度を求め、r=tとし、
    ステップ2では、入力xinに対して除算s=xin/r
    を求めるバウンダリ処理を実行する、ことを特徴とする請求項記載のシストリックアレイ。
  8. 前記一の方向の正方MFAアレイ処理を、下方向の正方MFAアレイ処理とし、前記逆方向の正方MFAアレイ処理を、上方向の正方MFAアレイ処理とした場合、
    前記第1の正方シストリックアレイは、対角要素に対して右上の三角アレイの各要素が遅延セルよりなり、アレイ左端列において、最上行より下方にバウンダリセルが、前記対角要素から、列方向に下方に並ぶ内部セルの各々に関連付けて配置され、
    前記第2の正方シストリックアレイは、対角要素に対して左下の三角アレイの各要素が、遅延セルよりなり、アレイ右端列において、最下行より上方にバウンダリセルが、列方向に配列される内部セルに対応して配置され、
    前記バウンダリセルは、
    ステップ1では、入力xinに対して、xinが0のとき、
    c=1、s=0
    を出力し、それ以外の場合、
    t=(r+xin1/2
    とし、c=r/t、
    s=xin/t
    より、ベクトル角度を求め、r=tとし、
    ステップ2では、入力xinに対して除算s=xin/r
    を求めるバウンダリ処理を実行し、
    前記内部セルは、
    ステップ1では、入力xinに対して、
    xout=c・xin−s・r,
    r=s・xin+c・r
    によりベクトル回転を行い、
    ステップ2では、積和演算
    xout=xin−s・rを行う、ことを特徴とする請求項記載のシストリックアレイ。
  9. 前記第1の正方シストリックアレイは、アレイ左端列において、前記バウンダリセルの下側に、余分なバウンダリセルをさらに含み、
    前記第2の正方シストリックアレイは、アレイ右端列において、前記バウンダリセルの上側に、余分なバウンダリセルをさらに含む、ことを特徴とする請求項記載のシストリックアレイ。
  10. 前記一次元アレイの両端のプロセッシングエレメントには、アレイサイズに1加算した値に対して1回の割合で、nop(no operation)が挿入され、前記一次元アレイの各プロセッシングエレメント間での処理負荷の均一化が行われる、ことを特徴とする請求項1又は記載のシストリックアレイ。
  11. 前記一次元アレイの両端から入力されるデータには、前記一次元アレイの両端のプロセッシングエレメントのnop(no operation)を指示するダミーデータが挿入される、ことを特徴とする請求項1記載のシストリックアレイ。
  12. 前記一次元アレイを構成する各プロセッシングエレメントは、
    演算装置と、
    入力データ及び出力データを格納するレジスタファイルと、
    前記レジスタファイルと、前記レジスタファイルの値の前記演算装置または出力端子に供給するスイッチと、
    前記演算装置の演算処理、及び、前記スイッチの切替を制御する制御装置と、
    を備え、
    前記演算装置の出力は、前記レジスタファイルに帰還入力される、ことを特徴とする請求項1記載のシストリックアレイ。
  13. 請求項1乃至1のいずれか一に記載のシストリックアレイを備えた半導体集積回路装置。
JP2006199682A 2006-07-21 2006-07-21 シストリックアレイ Expired - Fee Related JP4657998B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006199682A JP4657998B2 (ja) 2006-07-21 2006-07-21 シストリックアレイ
US11/878,058 US8195733B2 (en) 2006-07-21 2007-07-20 Systolic array

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006199682A JP4657998B2 (ja) 2006-07-21 2006-07-21 シストリックアレイ

Publications (2)

Publication Number Publication Date
JP2008027234A JP2008027234A (ja) 2008-02-07
JP4657998B2 true JP4657998B2 (ja) 2011-03-23

Family

ID=38987663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006199682A Expired - Fee Related JP4657998B2 (ja) 2006-07-21 2006-07-21 シストリックアレイ

Country Status (2)

Country Link
US (1) US8195733B2 (ja)
JP (1) JP4657998B2 (ja)

Families Citing this family (13)

* 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 シストリックアレイ及び演算方法
US8473539B1 (en) 2009-09-01 2013-06-25 Xilinx, Inc. Modified givens rotation for matrices with complex numbers
US8510364B1 (en) 2009-09-01 2013-08-13 Xilinx, Inc. Systolic array for matrix triangularization and back-substitution
US8417758B1 (en) 2009-09-01 2013-04-09 Xilinx, Inc. Left and right matrix multiplication using a systolic array
US8473540B1 (en) 2009-09-01 2013-06-25 Xilinx, Inc. Decoder and process therefor
US8620984B2 (en) * 2009-11-23 2013-12-31 Xilinx, Inc. Minimum mean square error processing
US8416841B1 (en) 2009-11-23 2013-04-09 Xilinx, Inc. Multiple-input multiple-output (MIMO) decoding with subcarrier grouping
US8406334B1 (en) 2010-06-11 2013-03-26 Xilinx, Inc. Overflow resistant, fixed precision, bit optimized systolic array for QR decomposition and MIMO decoding
US8443031B1 (en) 2010-07-19 2013-05-14 Xilinx, Inc. Systolic array for cholesky decomposition
US8824603B1 (en) * 2013-03-01 2014-09-02 Futurewei Technologies, Inc. Bi-directional ring-bus architecture for CORDIC-based matrix inversion
US10268886B2 (en) 2015-03-11 2019-04-23 Microsoft Technology Licensing, Llc Context-awareness through biased on-device image classifiers
US10055672B2 (en) 2015-03-11 2018-08-21 Microsoft Technology Licensing, Llc Methods and systems for low-energy image classification
EP3447653A4 (en) * 2016-04-22 2019-11-13 Cambricon Technologies Corporation Limited SUBMATRIX OPERATING DEVICE AND METHOD

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06506073A (ja) * 1990-08-16 1994-07-07 イギリス国 並列処理アレイの動作をシミュレートするデジタルプロセッサ
JP2001056808A (ja) * 1999-06-10 2001-02-27 Lucent Technol Inc 行列計算を行うためのプロセッサ素子のパイプライン処理線形アレー
JP2005509950A (ja) * 2001-11-16 2005-04-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ フィンガープリント・データベース更新方法、クライアント及びサーバ

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4493048A (en) * 1982-02-26 1985-01-08 Carnegie-Mellon University Systolic array apparatuses for matrix computations
US4787057A (en) * 1986-06-04 1988-11-22 General Electric Company Finite element analysis method using multiprocessor for matrix manipulations with special handling of diagonal elements
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
US5319586A (en) * 1989-12-28 1994-06-07 Texas Instruments Incorporated Methods for using a processor array to perform matrix calculations
US5274832A (en) * 1990-10-04 1993-12-28 National Semiconductor Corporation Systolic array for multidimensional matrix computations
US6672187B2 (en) * 2001-04-05 2004-01-06 Mikkelsen Graphic Engineering, Inc. Method and apparatus for rapid precision cutting of graphics areas from sheets

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06506073A (ja) * 1990-08-16 1994-07-07 イギリス国 並列処理アレイの動作をシミュレートするデジタルプロセッサ
JP2001056808A (ja) * 1999-06-10 2001-02-27 Lucent Technol Inc 行列計算を行うためのプロセッサ素子のパイプライン処理線形アレー
JP2005509950A (ja) * 2001-11-16 2005-04-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ フィンガープリント・データベース更新方法、クライアント及びサーバ

Also Published As

Publication number Publication date
US20080028015A1 (en) 2008-01-31
JP2008027234A (ja) 2008-02-07
US8195733B2 (en) 2012-06-05

Similar Documents

Publication Publication Date Title
JP4657998B2 (ja) シストリックアレイ
US11119765B2 (en) Processor with processing cores each including arithmetic unit array
US20200334322A1 (en) Matrix multiplier
US10445638B1 (en) Restructuring a multi-dimensional array
US10025755B2 (en) Device and method to process data in parallel
WO2017185389A1 (zh) 一种用于执行矩阵乘运算的装置和方法
JP2020144843A (ja) シストリックアレイ及びプロセッシングシステム
JP2009529188A (ja) 改良された置換可能なアドレス・プロセッサ及び方法
WO2022016926A1 (zh) 神经网络计算装置和数据读取、数据存储方法及相关设备
WO2019216376A1 (ja) 演算処理装置
JP7171883B2 (ja) 効率的な畳み込みエンジン
WO2020087742A1 (zh) 用于实现卷积运算的处理元件、装置和方法
KR20210033757A (ko) 메모리 장치 및 그 동작 방법
JP2011141823A (ja) データ処理装置および並列演算装置
US20080320273A1 (en) Interconnections in Simd Processor Architectures
WO2022160704A1 (zh) 一种图像处理方法、装置、计算机设备及存储介质
TWI634436B (zh) 緩衝裝置及卷積運算裝置與方法
JP7387017B2 (ja) アドレス生成方法及びユニット、深層学習処理器、チップ、電子機器並びにコンピュータプログラム
JP5327482B2 (ja) 画像処理装置及び画像処理方法
JP7136343B2 (ja) データ処理システム、方法、およびプログラム
CN110310705A (zh) 支持simd的序列比对方法及装置
US11467973B1 (en) Fine-grained access memory controller
TW202209096A (zh) 矩陣乘法裝置及其操作方法
US9330438B1 (en) High performance warp correction in two-dimensional images
TWI815392B (zh) 存內計算裝置及用於執行mac操作之方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090612

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101206

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: 20101221

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101222

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees