JPH06502265A - 信号処理におけるマトリクス演算の計算回路装置 - Google Patents

信号処理におけるマトリクス演算の計算回路装置

Info

Publication number
JPH06502265A
JPH06502265A JP3517639A JP51763991A JPH06502265A JP H06502265 A JPH06502265 A JP H06502265A JP 3517639 A JP3517639 A JP 3517639A JP 51763991 A JP51763991 A JP 51763991A JP H06502265 A JPH06502265 A JP H06502265A
Authority
JP
Japan
Prior art keywords
matrix
multiplier
adder
memory
circuit device
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.)
Pending
Application number
JP3517639A
Other languages
English (en)
Inventor
バイヒター, イェルク
ラーマッハー, ウルリヒ
Original Assignee
シーメンス アクチエンゲゼルシヤフト
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 シーメンス アクチエンゲゼルシヤフト filed Critical シーメンス アクチエンゲゼルシヤフト
Publication of JPH06502265A publication Critical patent/JPH06502265A/ja
Pending legal-status Critical Current

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 信号処理におけるマトリクス演算の計算回路装置本発明は、信号処理、殊にニュ ーラル回路網との関連において繰り返し生じるようなマトリクス演算の計算回路 装置に関する。ニューラル回路網の計算のために必要な計算操作は概観し得る数 の基本的なマトリクス演算に基づいているので、これらの操作の実施の際に要求 される高い計算速度を考慮すれば、この種の計算動作をソフトウェアを用いて実 施するのではなく、ハードウェアにおいて処理することが望ましい。
本発明に最も近い公知技術は、U、Ramacher著の刊行物“Desing  of a first Generation Neurocomputer ”(VLSI Design of Neural Networks、 U、  Ramacher、 U、Rueckert II集、 Kluwer Ac ademic Publishers 刊。
1990年11月)に示されている。二の刊行物において、乗算器および加算器 から成るシストリック装置から構成されている回路装置が記載されている。この シストリック装置により、マトリクス積の計算が可能になる。即ち乗算すべきマ トリクスは4×4の大きさのブロックに分割され、かつシストリック装置を用い てそれぞれ、この大きさのサブマトリクスを乗算することができる。この回路装 置によって実施可能な計算動作は、例えば多層の帰還結合されたバーセブトロン 回路網のようなタイプの所定のニューラル網の計算に対して適している。
U、 Ramacher著の前記刊行物(1990年)に記載されているような この回路装置の欠点は、とりわけ次の点にある。
一互換、加算および減算は、マトリクスによって支援されない、 一結果マトリクスは、二乗またはスカラーと乗算することができない、 一行ないし列の和の計算ないし極大ないし極小マトリクス要素の探索は、この回 路装置によって支援されない。
更にこの回路装置では、マトリクス係数の@I領領域監視は行われず、かつマト リクス要素の値領域はオーバフローが生じた際に制限されない。
本発明の検層は、公知技術の上述の欠点が取り除かれ、かつマトリクス積の計算 並びにマトリクス積の、スカラーとの乗算、また、マトリクス積の二乗、マトリ クスの和および差形成、マトリクス和ないしマトリクス差の、スカラーとの乗算 、マトリクス和ないしマトリクス差の絶対値形成、マトリクス和およびマトリク ス差の二乗、マトリクスおよびマトリクス積の互換、マトリクスの行ないし列の 和の計算、並びに極大ないし極小、即ち最小ないし最大のマトリクス要素の探索 を支援する回路装置を提供することである。この課題は、請求項1に記載のよう に構成された、マトリクスS*の計算のための回路装置によって解決される。
本発明の回路装置においても1乗算器および加算器のシストリック装置が設けら れている。公知の回路装置とは異なって9乗算器および加算器から成るこのシス トリック装置に、再帰的な累算器が後置接続されている。この再帰的な累算器を 用いて、著しく床几な種類の計算動作の実施が可能である。本発明の回路装置に よって殊に、マトリクス積をスカラーと乗算し、マトリクスまたはマトリクス積 を二乗し、了トリクスの和または差を形成しかつスカラーと乗算し、マトリクス 和ないしマトリクス差の絶対値およびこれらの二乗値を計算し、かつマトリクス を転置することができる。
更に本発明の回路装置によって、マトリクスの行ないし列の和ないしマトリクス 積ないしマトリクスの和または差の計算が可能である。更に、この回路装置は、 その前に計算されたマトリクスにおける最大ないし最小のマトリクス要素を探索 することができる。
本発明の実施例は、その他の請求項に記載されてい次に本発明を図面を用いて有 利な実施例に基づいて詳細に説明する。
第1図は、マトリクス演算の計算のための回路装置の信号凍れ図を示し。
I!2図は、第1図においてマトリクス乗算器と称されている、第1図の回路の 部分回路の有利な実施例をtJ4図、第5図、第6図および第7図は、メモリユ ニットBl、B2.B3およびB4の制御のための信号流れ図を示し、 第3図は、第1図において再帰的な累算器と称されている、第1図の回路装置の 部分回路の有利な実施例を示す。
第1図に示されているように、本発明の回路装置は、マトリクス乗算器MMない し再帰的な累算器RAと称されている2つの部分回路から成っている。全体の回 路は、1n工ないしin3によって示されている2つの入力側、out3によっ て示されている1つの出力側および1nout2によって示されている双方向イ ンタフェースを有している。双方向インタフェースは、信号FOR72Cを用い てコントロールすることができる。2つの相互に乗算すべきマトリクスの係数は 、インタフェースinlないし1nout2およびこれらに接続されているメモ リBlないしB2を介して、4つの乗算器および4つの加算器から成るシストリ ック装置に供給される。その際シストリック装置の乗算器の入力データは、信号 S E N 1を介して制御されるスイッチSlを用いて選択される。シストリ ック装置の加算器列は、排他的OR素子の出力側に接続されており、排他的OR 素子の第1入力端は、信号5EN2を用いて制御されるスイッチS2を介してメ モリB2に接続されている0乗算器の別の入力側はメモリBlに接続されている 。このメモリは、それぞれ2×4語を有している4つの独立したメモリの組み合 わせである。データおよび計算結果の一時記憶のために、シストリック装置並び に全体の回路の随所にラッチが設けられている。これらのラッチは計算機能を担 っておらず、単に全体の回路の同期された経過を可能にするにすぎず、かつ算術 により規定される時間遅延を実現するために必要とされる。シストリック装置の 加算器列の一端には、Addによって示されている桁上げ保存加算器の桁上げを 桁上げ選択フォーマットにまとめる最後の加算器Finlが設けられている。シ ストリック装置内の乗算器の有利な実施例は、U、 Rmacher著の前記論 文<1990年)に記載されている。
第1図に略示されているが、第2図には比較的詳しく示されているマトリクス乗 算器に、j[11i1の全体の回路において再帰的な累算器が接続されている。
再帰的な累算器は第3図に比較的詳しく示されている。この再帰的な累算器の入 力側に、加算器AAが後置接続されている乗算器AMが設けられている。この乗 算器の入力側は、マトリクス乗算器の最後の加算器の出力側に接続されている。
乗算器の第2の入力側は、信号5EN3を介して制御されるスイッチS3の位置 に応じてメモリB4の出力側または最後の加算器の出力側に接続されるかまたは 一定の値lが加えられる。この乗算器に後置接続されている加算器AAの第2入 力端は、第2の排他的OR素子の出力側に接続されている。
この第2の排他的OR素子の入力側は、信号5EN4によって制御されるスイッ チS4を介して信号L○OPに接続されている。この信号LOOPは、信号5E N6を介して制御されるスイッチS6の位置に応じて、入力側in3の信号、ま たはメモリB3の出力と同一である。メモリB3の出力は513図においてLO Gとも表されている。加算器AAの出力側は、信号5EN51を介して制御され るスイッチ851を介して第2の最後の加算器Fin2に接続されている。この 最後の加算器Fin2には、加算器AAの出力を零と比較しかつ従って極性決定 器として作用するコンパレータCompが並列接続されている。この極性信号は 、制御信号5EN52とともにスイッチS52の位置を決定する。このスイッチ 552は、スイッチ位置に応じて、CHAINによって表されている、最後の加 算器Fin2の出力信号、またはB3によって表されている、3つのラッチを介 して遅延されたループ信号を信号Sh i f tEnによって制御される移相 器に接続する。移相器の出力側は、オーバフロー監視回路Ovarflowに接 続されており、このオーバフロー監視回路の出力側は、メモリユニットB3に接 続されている。
加算器AA、最後の加算器Fin2ないしコンパレータComp、移相器および オーバフロー監視回路、並びにメモリユニットB3および出力側が加算器AAの 第2入力端を形成する排他的OR素子を介する信号路は、公知技術に対して新規 な計算操作を実施することができる再帰的なループを表している。
[1,Ramacher著の前記論文(1990年)に記載されている回路装置 とは異なって、本発明の回路装置では、マトリクス−マトリクス乗算の他に、マ トリクス加算および要素毎の最小値(MIN)/最大411(MAX)比較も可 能である。4X4のサブマトリクスに分割されている入力マトリクスは、局所的 に転置されかつそれから加算または乗算される。結果マトリクスの要素は選択的 に二乗またはスカラーと乗算することができる。これから生じた4×4サブマト リクスにおいて、行または列方向における大局的な累算または最小値/最大値比 較を行うことができる。
16ビツトの重み値の属領域はオーバフローについて監視されかつオーバフロー が生じると値は自動的に制限される。特有のシフト装置によって、重みの属領域 を意図的に変化し、例えばステップ毎に半減ないし2倍にして、これによりオー バフローを回避しかつ重みメモリの16ビツトの語幅を一層効果的に利用するこ とができる。
マトリクス演算を計算するための本発明の開発は、全体の計算作業を所定数の基 本的な回路装置に分配しかつ乗算すべきないし加算すべき大きなマトリクスを4 ×4のサブマトリクスに分割化するという思想に基づいている。即ちそれぞれの 基本的な回路装置は、局所的なメモリに保持されているマトリクスの所定の行な いし列領域(サブマトリクス)のみを処理する。大きなマトリクスの計算は、4 ×4のサブマトリクスの処理から組み合わされる。この組み合わせの際に、サブ マトリクスのインデックスは大きなマトリクスの全体の有効領域に拡張される。
サブマトリクスの計算がら大きなマトリクスに対する解決を得る演算は、要素の 大局的な累算並びに局所的または大局的な最小値/最大値比較である。
本発明の回路装置は、種々様々な方法で結合されて、ニューラルアルゴリズムを 実現する次の簡単な計算動作を実施する。その際、大きなマトリクスの分割から 生じる、4×4のマトリクスブロツクを表すサブマトリクスという概念が使用さ れる。
1、 入力サブマトリクスの乗算 1.1 (メモリBlにおける)サブマトリクスAの、メモリ(B2)における サブマトリクスBとの乗算。
1.2 (メモリB1における)サブマトリクスAの、単位マトリクスとの乗算 : 2、 入力サブマトリクスの加算/減算2.1 (メモリB2における)サブマ トリクスBは、単位マトリクスとの乗算の前に、(メモリB1における)サブマ トリクスAに対して加算される:2.2 (メモリB2における)サブマトリク スBは、単位マトリクスとの乗算の前に、(メモリB1における)サブマトリク スAから減算される:2.3 加算器列を通る(メモリB2における)サブマト リクスBは加算されない。
3.1.1ないし2.2までの結果サブマトリクスの乗算 3.1 結果サブマトリクスの、係数(それぞれのサブマトリクス列に対して固 有の1つの係数)との乗算。
3.2 乗算なしく1との乗算)。
3.3 個々のサブマトリクス要素の、それ自体との乗算(二乗)。
4.3.1から3.3までの結果サブマトリクスの加算/累算 4、 1 結果サブマトリクスの、メモリユニットB3に記憶されているサブマ トリクスに対する加算(局所的な累算)。
4.2 結果サブマトリクスの、入力(Ill i n 3に同時に加えられた サブマトリクスに対する加算(分配された累算)。
5.3.1から3.3までの結果サブマトリクスに対する要素毎の最小値/最大 値比較 5.13.1から33までの結果とメモリユニットB3に記憶されているサブマ トリクスとの間の最小値/最大値比較。
5.23.1から3.3までのサブマトリクスと入力側in3に同時に加えられ たサブマトリクスとの間の最小値/最大値比較。
6、 メモリユニットB3に記憶されている重みのオーバフロー調整 6.116ビツトに制限すべき重みのオーバフロー検出および値飽和。
6.2 すべての重みサブマトリクスの制御された、大局的なフォーマット変換 。
回路装置において設計計画された計算動作1.1ないし6,2は、全体の回路の 種々の部分において実施されかつ種々のニューラルアルゴリズムを支援するため に、所定の組み合わせにおいて相互に結合することができる。
次のような組み合わせが可能であるニ ーそれぞれ1つの演算1.1ないし2.2と−それぞれ1つの演算3.1ないし 3.3および−それぞれ1つの演算4.1ないし5.2との結合。
2つの演算6.】および6.1は4.1と結合可能である。
次に、回路装置を用いた個々の計算動作の実施および回路装置の制御について詳 しく説明する。
計算動作1.1.メモリB1におけるサブマトリクスと、メモリB2におけるサ ブマトリクスとの乗算。
2つのマトリクスAおよびBは、メモリBlおよび82にロードされている。ス イッチS1は位置B2にあり、スイッチS2は位置Oにありかつ信号S/AIは 値零を有している。メモリBlは、それぞれのクロックによって16のクロック にわたって分配されてデータB (1,1)、B (2,1)、・・・、B ( 4,4)、即ちマトリクスBの左上の4×4のサブマトリクスのマトリクス要素 を供給する0乗算器の入力レジスタに加わる制御信号CE N 1 、・・・、 CEN4は値零を有しており、即ち次の時点を除いて不活性である:クロック1 においてCENIは活性でありかつ一番上の乗算器の入力レジスタにマトリクス 要素B(1,11をロードするように作用する。次のクロックにおいてCEN2 が活性でありかつ第2の乗算器の入力側にマトリクス要素B(2,1)をロード する。第3および茅4のクロックにおいて、CEN3およびCEN4によって別 の2つの乗算器の人力レジスタがロードされる。
第5のクロックにおいてCENIが再び活性でありかつ第2の乗算器の入力側に マトリクス要素B (1,2)をロードする。この分配過程は循環的に繰り返さ れかつ、マトリクス要素B (4,4)がCEN4=活性によって第4の乗算器 にロードされるとき、16番目のクロック後に終了する。
特表千6−502265 (5) 二の過程と並列に、メモリユニットBlはサブマトリクスA(1,1)、・・・ 、A (4,4)を列毎に4つの別個の部分メモリユニットに保持しかつこれら データを4つの別個のリード線を介してシストリック装置の乗算器(N2図参照 )に供給する。菓lの乗算器には、メモリB1からその第1のマトリクス要素A (1゜l)がマトリクスB(1,1)と同時に供給される。
続く3つのクロックにおいてメモリBlはマトリクス要sA (2,l)、A  (3,l) およびA(4,1)を同一のリード線を介して供給する0乗算器に マトリクス要素B(1,2)もロードされているとき、第5のクロックと第8の クロックとの間において、マトリクス要素A (1,1)、・・・、A(4,1 )の印加が繰り返される。16のクロックの後、即ちマトリクス要素A(1,l )、・・・、A(4,1)の列がシストリック装置の乗算器に4回印加されてい る間に、乗算器列の第1の乗算器に対する読み出しは終了している。第2の乗算 器には、メモリB1からマトリクス要素人(1,2)、・・・、A(4,2)が 供給される。その都度更なるクロック遅延によって、第3ないし第4の乗算器に は、メモリBlからマトリクス要素A(1,3)、・・・、A(4,3)ないし A(1,4)、・・・、 A (4゜4)が供給される。全体として、乗算器列 の第1の乗算器と第4の乗算器との間に3つのクロックの遅延が生じる。結果と して、最後の乗算器には、199番目クロックにおいて4番目および最後に、マ トリクス要素A(4,4)の値が供給される。
それぞれの乗算器は、クロック当たりマトリクスAないしBの2つのマトリクス 要素の乗算を始めることができる。この種の乗算は7つのクロックの間続く。
結果の累算は、第2図のマトリクス乗算器の加算器列を介して実施される。クロ ック8において、1番上の、Illの加算器には、第1の乗算器の積A(1,1 ) ・B(!、1)が供給され、それにスイッチS2からの零を加算しかつその 結果を次のクロック(クロック9)を二おいて後続の第2の加算器に転送する。
第2の加算器には、第1の加算器の和と同時に、N2の乗算器から積B(1,2 ) ・A(2,1)が供給される。第2の加算器はこの積を和に対して加算する (クロック10)5次の2つのクロックにおいて更に、積B(1゜3)・AC3 ,1>並びにB (1,4) ・A(4,1)が生じる。クロック12において 、第4の最後の加算器の出力側に、サブマトリクスAの第1の行のマトリクス要 素と、サブマトリクスBの第1列のマトリクス要素との4つの積から成る和が現 れる。引き続くクロックにおいてまだ欠けている和が加わる。マトリクスAの第 4の行のマトリクス要素と、マトリクスBの第4の列のマトリクス要素との積に 関する和が288番目クロックにおいて加算器列の出力側に現れるとき、結果マ トリクスはすべて完全に計算されている。
計算動作1.2;メモリBlにおけるサブマトリクスの、単位マトリクスとの乗 算(乗算なし)。
計算動作1.2は、計算動作1.1に相応経過し、その際第2のマトリクスBは 単位マトリクスにとって代わられる。更に、スイッチS1は循環的に値Iと値0 との間を切り換えられる。クロック1,6.11および16においてスイッチS 1はlにあり、その他のすべてのクロックにおいてはOにある。
計算動作2,1:メモリB2におけるサブマトリクスが、メモリBlにおけるサ ブマトリクスに加算される。
計算動作2.1を実施するために、メモリB1に存在するマトリクスAの、単位 マトリクスとの乗算を行う計算動作1.2が、メモリB2に存在するマトリクス Bの加算だけ拡張される。この場合スイッチS2は位置B2にある。制御信号S /Alは値零を有している。その他のステップはすべて、計算動作1.2におけ るステップに相応する。
計算動作2.2.メモリB2におけるサブマトリクスがメモリB1におけるサブ マトリクスから減算される。
ここでの経過は、計算動作2.1における経過と全く須似している6ただ、信号 S/AIが値lをとる、極性反転を行う必要がある。これにより、排他的OR素 子はそれに後置接続されている加算器とともに、メモリB2に存在するデータの 2の補数を形成する。
計算動作2.3=メモリB2に存在するデータを再帰的累算器に加算なしに、即 ちシストリック加算器列を迂回してロードする。
計算動作2.3は計算動作2.1と頴似して実施されるが、ここでは単位マトリ クスに代わって零マトリクスが使用される。このことは、スイッチS1がすべて のクロックにおいて位置零にあることによって行われる。
計算動作3.1:結果マトリクスの、係数との乗算。
この計算動作において、シストリック加算器列は、計算動作1.1において説明 した、マトリクスAの行から成るマトリクス要素とマトリクスBの列から成るマ トリクス要素との積の和を、次の順序で形成する。
即ちまず、マトリクスAのN1行のマトリクス要素とマトリクスBの第1列のマ トリクス要素との積についての和および最後にマトリクスAの第4の行のマトリ クス要素とマトリクスBの第4の列のマトリクス要素との積の和が、27番目の クロックから始まって計算されるようにである。データの上位19ビツトは、桁 上げ保存表示において存在しかつ、それらを再帰的な累算器の第1の乗算器AM に入力データとして供給することができる前に、2進表示に変換しなければなら ない(最後の加算器Finl)。その際、最後の加算器Finlによるlクロツ タの遅延が生じる。乗算器、A Mの2つの入力側におけるデータの準備に対し て2つの別のクロックが生じる。
最後の加算器Finlから到来する、マトリクス要素の積についての和は、上述 の順序で乗算器AMに加わりかつメモリB4に記憶されている係数K (1)  。
K (2) 、 K (3)およびK(4)と乗算される。その際順番に次の積 が形成される: K(1) ・P C1,1)、K(1) ・P(2,1)。
K(1) ・P (3,l)、K (1) ・P(4,1)。
K(2)・P (1,2>、K(2) ・P(2,2)。
・・・、K(4) ・P (4,4)。
その際積P(i、j)は、マトリクスAのi番目の行におけるマトリクス要素と マトリクスBのに番目の列におけるマトリクス要素との積についての和に等しい 。乗算器は7つのクロックを必要とし、それぞれのクロックにおいて新しい乗算 が始められる。結果は、21番目のクロックから37番目のクロックまで乗算器 AMの出力側に現れる。その際スイッチS3は常に、位置B4にある。
計算動作3.2=乗算なし。
スイッチS3は位置1にあり、これによりi=1゜・・・、4に対するすべての 係数k (i)に、値lが指定される。その他の経過は、計算動作3.1の場合 と同一である。
計算動作3.3=マトリクス要素の二乗。
スイッチS3は位置し2にある。加算器列か到来する値P(i、j)は、乗算器 A Mの2つの入力側に加わる。従って被乗数語と乗数語は同一である。従って 、その他のすべてのステップを計算動作3.1に相応して実施するとき、係数k  (i)に代わって積の和P<i、j)が生じ、かつこの積マトリクスはそれ自 体と乗算される。計算動作1.2によれば、積マトリクスは例えば、本来のマト リクスの1つであってもよい。
計算動作4.1.1 +3.1から3.3までのマトリクスの局所的な累算 マトリクス乗算器の加算器列から到来する積の和P(1,1)、P (2,l) 、・・・、P (4,4)は、メモリB3に格納されているデータS(1,1) 、S(2,1)、・・・、S (4,4)に要素毎に加算される。
S(i、j)の生じる新しい値は、引き続いて再びメモリB3に格納される(フ ェッチ・アンド・アット)。
その際スイッチS4は位置LOOPにあり、スイッチ551は位置A D Dに あり、スイッチS52は位置CHAINにありかつスイッチS6は位置L OC )二ある。ここで制御信号S / A 2は値零を有しており、制御信号Sh  i f tEnおよびOflowEn(第3図参照)は最初両方とも零にセット される。データS(1,1)、S (2,1)、・・、S (4,4)はこの順 序で、再帰ループと結合されている、メモリB3の部分から読み出される。これ らのスイッチS6およびN4および排他的OR素子を介してこれらは、一連の全 加算器から形成されている加算器A Aに達する。クロック22においてS(1 ,1)はP(1,1)に加算され、次のクロックにおいてS(2,1)がP(2 ゜l)に加算される。
後置接続されている最後の加算器Fin2において、桁上げおよび和語が唯一の 2進僅に結合される、50ビツト長の最後の加算器Fin2は、高い動作過程時 間を有する複雑な回路であるので、これは出来るだけそれぞれの加算器没後では なくて、III所においてのみ設計計画される。最後の加算器Fin2における 遅延時間は2クロック周期である。
結果、即ち新しい値S (1,1)、・・・、S (4,4)は、スイッチS5 2を介してシフト段(移相器)に達する。信号Sh i f tEnが値零を有 するとき、データは不変にとどまる。後置接続されたオーバフロー制御部も、O flowEn=Oの場合データに影響を及ぼさない。s(1,J)のその前の値 がメモリB3から読み出された後の6つのクロックで、S (i、j)の新しい 値が書き込まれる。
計算動作4.1.2 局所的な累算:再帰ループのリセット。
その前の[5(i、j)に代わって、その都度零が積の和P(i、j)に加算さ れる。その際スイッチS4は零にある。その他の経過は、計算動作4.1.1の 場合と同様である。
演算4.2:3.1から3.3までのマトリクスの分配された累算。
スイッチS4は位置LOOPにあり、スイッチS51は位置AD0にあり、スイ ッチS52は位置CHAINにありかつスイッチS6は位置GLOBINにある 。演算4.1.lの場合とは異なって、S(1,1)、・・・、S (4,4) のその前の値はメモリB3から読み出されず、入力側in3と関連付けられる。
累算はスイッチS6およびS4および加算器AAおよびFin2並びにスイッチ S51および352を介して行われる。スイッチS52の後において、結果、即 ち新しい値S(1,1)、・・・、S (4,4)は移相器を介してメモリB3 に書き込まれず、直接スイッチS7を介して出力側out3に現れる。このため に5クロック分の遅延時間が必要である。
計算動作5.1:3.1から3.3までの結果サブマトリクスの、メモリB3の 、再帰ループに属する部分に記憶されているサブマトリクスとの要素毎の最小値 /最大値比較。
スイッチS4は位置LOOPにあり、スイッチS6は位置LOGにある。信号S /A2は値1を有しておりかつ排他的OR素子および後続の加算器段AAはスイ ッチS4を介して導かれるデータの2の補数を形成特表千6−502265 ( 7) するために使用される。スイッチS51は、位i1. M ULT5にありかつ スイッチS52の位置は、加算器AAの結果が零より大きいまたは零に等しいか どうかを検査するコンパレータCompの結果から生じる。加算器は、乗算器A Mから到来する値とメモリB3の値との差を決定する。この差が正であれば、コ ンパレータは最大値比較の際にスイッチS52を位置MULT5にセットしかつ 、最小値比較の際に位置ADDにセットする。これに対して計算された差が負で あれば、メモリB3からの値は乗算器AMの出力側に現れる積より大きくかつス イッチ位置は交替する。スイッチS52を介して選択された結果はそのまま変化 なしにメモリB3に記憶される。
計算動作5.2:3.1から3.3までの結果サブマトリクスの、入力側in3 に同時に印加されるサブマトリクスとの要素毎の最小値/最大値比較。
計算動作5.1とは異なってここではスイッチS6は位置G L OB I N にありかつスイッチS7は位置GLOBOUTにある。その他のステップはすべ て、計算動作5.1に相応している。
計算動作6.1:メモリB3に記憶されている16ビツトのデータ(重み)に対 するオーバフロー検出および値飽和。
ニューラル回路網における重みの語幅は通例16ビツトに制限されている。オー バフロー検出および飽和によって、学習過程の際に表示可能な限界値を上回るま たは下回ることが抑止される。スイッチS52から到来するデータは、オーパフ a−ユニットにおいてオーバフローについて検査されかつコントローラによって Of lowEn=1がセットされている場合には(16ビノトの部長)、場合 に応じて飽和される。Of I owEn=oの場合、飽和は行われず、データ バスは50ビツト長を有している。オーバフローが検出される都度(Of lo wstat=1)、コントローラによって読み出し可能であるオーバフロー計数 器がインクリメントされる。
計算動作6.2 重みマトリクスのフォーマット変換。
データが、メモリB3の、再帰ループに属する部分に書き込まれる前に、それら を右方向または左方向に1位置分シフトすることができる。従って表示可能な数 領域は、学習過程の期間にダイナミックに整合することができる。信号Sh i  f tEnを介する制御は、コントローラによって行われる。
これによって回路装置を用いて実施可能なマトリクス演算について説明した。次 に、メモリユニットBl。
・・・、B4における演算について説明する。これらの、メモリユニットBl、 ・・、B4における別の演算は、回路装置とその周辺間の簡単および効果的なデ ータ搬送を可能にするために実施される(例えば同時ロード、計算およびアンロ ード)。更に、回路装置における処理に対するマトリクス要素は再整理されかつ 所望のように転置される。個々のメモリユニットの制御は、第4図ないし第7図 の信号流れ図に示されている形式および方法において行われる。
7、 マトリクスメモリBlにおける動作7.1.1 ロード、転置されない 7.1.2 ロード、転置される 7、2.1 メモリ半部の交換 7.2.2 メモリ半部の交換なし 7.3 データの読み出し 8、 マトリクスメモリB2における動作8、 1 データのロード 8.2.1 メモリ半部の交換 8.2.2 メモリ半部の交換なし 8.3.1!!み出し、転置されない 8.3.2 読み出し、転置される 9、 マトリクスメモリB3における動作9.1 メモリB3の、ループに2す る半部におけるフェッチ・アンド・アット 9.2.1 メモリ半部の交換 9.2.2 メモリ半部の交換なし 9.3.1 インタフェース(ポート)に属するメモリ半部におけるロード/読 み出し、転置されない9.3.2 インタフェース(ポート)に属するメモリ半 部におけるロード/読み出し、転置される10、係数バッファB4における動作 10.1 データのロード 10.2 データの読み出し 10.3 メモリ半部の交換 11、双方向インタフェース1nout2の制御11.1 インタフェースは入 力端に切り換えられる11.2 インタフェースは出力側に切り換えられる大抵 の計算動作と結合されて、インタフェース1nout2は入力側として利用され (11,1)かつ短い、正確に特定されたステップに対してのみ出力側として利 用される(11.2)。
次に、メモリユニットにおける動作について詳細に説明する。簡潔にするために 以下の説明においてポート側およびループ側という概念を使用する。ポート側で 、インタフェースに属するメモリ半部を表し、ループ半部で、再帰的なループの 方の側のメモリ半部を表す。
データA(i、j)は、インタフェースinlを介して外部から供給されかつメ モリBlに達する。その順序は、A (1,1)、A (1,2)、・・・、  A (4゜4)である。メモリBlはこれらの16のマトリクス要素を、マトリ クス要素AC1,1)、・・・、 A (4゜4)、即ちAの4×4のサブマト リクスの第1列がメモリの最も上の部分に存在しかつ後に乗算器lに割り当てる 二とができるように、記憶している。マトリクス要素AZ、2)、・・・、A( 4,2)、即ち第2列の要素は、乗算器2に対する第2のメモリ行に格納される 。以下も同様である。メモリセルの制御に対して、語ガイド(ワードライン)信 号はメモリ駒部に、組み込まれているシーケンサによってシストリノブに転送さ れ、その結果クロックの都度1つのメモリ語のみが書き込まれる。シーケンサは トリガパルスB I PORNを介してコントローラによってトリガされる。更 にB I PORT=Oが成り立つ。
7.1.2 ロー阻転置される 7、1.1と異なって、データは、第1のメモリ行にデータA(1,l)、・・ 、A(1,4)が記憶され、第2のメモリ行にデータA(2,1)、・・・、  A (2゜4)が記憶されるように、Blに格納される。以下同様である。変化 される順序に対して、B I PORTを介してトリガされる(B I POR N、O)固有のシーケンサが必要である。
7.2.1 メモリ半部の交換 メモリユニットBlの2つの半部の割り当て、即ち一方の半部の、入力側inl に対しする割り当て(ロード)、他方の半部の、乗算器列に対する割り当て(読 み出し)は、交換される。コントローラは、制御ビットBIXCHを介してメモ リ半部の交換を開始する。信号BIXCHは、メモリユニットBlに、メモリ行 毎f二、加算器列における遅延時間を補償するために、lクロックの遅延によっ て転送される。メモリ半部の割り当ての交換は、サブマトリクス動作の前でのみ 、従って早くとも16のクロック毎に可能である。
7.2.2 バッファ半部の交換なし Blに記憶されているサブマトリクスは、計算のために複数同相前後して必要で ある(学習過程)。これらのデータのオーバライドは、メモリ半部の交換が行わ れないとき、妨げられる6乗算器側に記憶されているデータは、メモリ半部の次 の交換までそのまま維持される。BIXCHはその値を変えない。
7.3 データの読み出し 読み出しは、BIMULNを介してトリガされるシーケンサを介して行われる。
シーケンスに関しては181ないし2,3が参考になる。
8.1B2のロード B2は16の記憶セルを有している。データB (i。
J)は順番にメモリに格納される。メモリ領域の制御はシーケンサによって行わ れ、トリガは(7,1,1の)82PORNを介して行われる。
8.2.1 メモリ半部の交換 メモリ半部の交換は、コントローラによって82XCHを介して制御される。2 換は、同じ時間においてすべてのバッファ半部を検出する。交換は、その都度新 たなサブマトリクス動作において、早(とも16クロツク毎に可能である。
8.2.1 バッファ半部の交換なし 82XCHに対する値の維持によってバッファ半部は交換されない。
8.3.1 読み出し、転置されない 書き込みに並列に、別のメモリ半部においてメモリセルは同じ順序で読み出され る:トリガパルスB2MULN。
8.3.2 読み出し、転置される 読み出されたデータの順序は、転置されたマトリクスに相応する。トリガパルス B2MULT。
9.1B3におけるフェッチ・アンド・アンド、ループ側 フェッチ・アンド・アンド作動に対して、9.1において書き込むべきデータは 、その前6クロソクのところで、メモリB3の同じメモリセルから読み出され、 それらは後に再びこれらメモリセルに格納される(トリガ:B3LOOP)。
9・2.1 ノくツファ半部の交換 交換は、B3XCHを介してコントローラによって制御される(8.2.1参照 )。
9.2.2 バッファ半部の交換なし 83XCHの値の維持(8,2,2も参照)9.3.1 読み出し、ポート側、 転置されなt1B3(ポート側)に存在するデータは、順序S (1゜1)、S  (1,2)、・・、S (4,4)で読み出されかつ入力便に同時に存在する 値によって置換される。
シーケンサは、83PORTによってトリガされる。
10.1 データの、B4におけるロードB4におけるデータ(係数)は、イン タフェース1n3(0じT3)を介して回路装置に供給される。ロードのために 4つのクロックが必要である。シーケンサに対するトリガパルスは、84FOR ?Jである。
10.2 データの読み出し 読み出しに対するトリガパルスは、B4MULNである。
1O13メモリ半部の交換 係数の第2セントを記憶するために、4つの別のメモリ半部が設けられている。
制御は、B4XCHを介して行われる。
11.1 インタフェースlN0UT2は入力に切り換えられる。
インタフェースlN0UT2の入力ドライバは常に活性状態にある。
!1.2 インタフェースI N0UT2は出力に切り換えられる。
インタフェースlN0UT2の、出力作動への切換は、外部のドライバ衝突を回 避するために、外部の制御ビットPORT2Gを介して行われる。
これまで説明してきた回路装置は、同形式の回路モジュールと結合されて、マト リクス演算を実施するためのコプロセッサを生じる回路モジュールである。この コプロセッサには、コントローラ回路から必要な制御信号が供給される。
コントローラ、またメモリユニットの内部構成は、U、 Hachmannの学 位論文″Controller Architektur fuer eine n Neuroezulator in Forz eines 5yszol ischen Arrays” (を子技術素子の講座、ドルトムント大学、ド ルトムント1990年)に記載されている。
この明細書において使用されている、デジタル回路を表すための、一般に通例の 専門用語は、例えばKaiHwang ”Computer Arithmet ic: Pr1ncipeles、 Architecture and De sign” (John Wiley & 5ons、1979年)に説明され ている。
補正書の翻訳文提出書(特許法第184条の8)平成 5年 5月14日

Claims (8)

    【特許請求の範囲】
  1. 1.マトリクス乗算器(MM)と、該マトリクス乗算器に後置接続されている、 互換、行の和および列の和を計算しかつ極マトリクス要素を探索するための再帰 的な累算器(RA)とを有している、マトリクス演算の計算回路装置。
  2. 2.乗算器(AM)と、該乗算器に後置接続されている、前記乗算器の出力側を この回路装置の出力側に再帰的な方法で結合する加算器(AA)とを有している 、マトリクスの互換、行の和および列の和を計算しかつ極マトリクス要素を探索 するための回路装置。
  3. 3.マトリクス乗算器と、該マトリクス乗算器に後置接続されている、互換、行 の和および列の和を計算しかつ極マトリクス要素を探索するための再帰的な累算 器とを有し、前記累算器は、乗算器と、該乗算器に後置接続されている、前記乗 算器の出力側をこの回路装置の出力側に再帰的な方法で結合する加算器とを有し ている回路装置。
  4. 4.マトリクス乗算器は、2つのデュアル・ポートメモリユニット(B1ないし B2)および該メモリユニットに後置接続されている、乗算器(Mu1)および 加算器(Add)から成るシストリック列を有している 請求項1または3に記載の回路装置。
  5. 5.加算器(Add)は、桁上げ保存型のシストリック列である 請求項4記載の回路装置。
  6. 6.マトリクス乗算器は、乗算器(Mu1)および加算器(Add)から成るシ ストリック列を有しており、該シストリック列の端部に、桁上げ選択型の第1の 最後の加算器(Fin1)が設けられている請求項1,3,1または5のいずれ か1項記載の回路装置。
  7. 7.再帰的な累算器は第2の最後の加算器(Fin2)を有しており、該加算器 は加算器(AA)に後置接続されておりかつそれは桁上げ選択型である請求項1 から6までのいずれか1項記載の回路装置。
  8. 8.再帰的な累算器は、加算器(AA)の結果を零と比較するコンパレータ(C omp)を有している請求項1から7までのいずれか1項記載の回路装置。
JP3517639A 1990-11-15 1991-11-04 信号処理におけるマトリクス演算の計算回路装置 Pending JPH06502265A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE4036455.0 1990-11-15
DE4036455A DE4036455C1 (ja) 1990-11-15 1990-11-15
PCT/DE1991/000858 WO1992009040A1 (de) 1990-11-15 1991-11-04 Schaltungsanordnung zur berechnung von matrixoperationen in der signalverarbeitung

Publications (1)

Publication Number Publication Date
JPH06502265A true JPH06502265A (ja) 1994-03-10

Family

ID=6418338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3517639A Pending JPH06502265A (ja) 1990-11-15 1991-11-04 信号処理におけるマトリクス演算の計算回路装置

Country Status (5)

Country Link
US (1) US5422836A (ja)
EP (1) EP0557314A1 (ja)
JP (1) JPH06502265A (ja)
DE (1) DE4036455C1 (ja)
WO (1) WO1992009040A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021522630A (ja) * 2018-04-21 2021-08-30 マイクロソフト テクノロジー ライセンシング,エルエルシー マルチポート・メモリーを備えたベクトル・レジスター・ファイルを有する行列ベクトル乗算器

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5311459A (en) * 1992-09-17 1994-05-10 Eastman Kodak Company Selectively configurable integrated circuit device for performing multiple digital signal processing functions
FR2757973B1 (fr) * 1996-12-27 1999-04-09 Sgs Thomson Microelectronics Processeur de traitement matriciel
KR100451147B1 (ko) * 1997-02-25 2004-11-26 엘지전자 주식회사 고속곱셈기
KR100457040B1 (ko) * 2000-06-21 2004-11-10 패러데이 테크놀로지 코퍼레이션 곱셈 누산 명령을 이용한 데이터 처리 장치 및 방법
US7216140B1 (en) * 2000-09-30 2007-05-08 Intel Corporation Efficient implementation of n-point DCT, n-point IDCT, SA-DCT and SA-IDCT algorithms
JP3940714B2 (ja) * 2003-09-25 2007-07-04 株式会社東芝 演算装置、および、暗号・復号演算装置
NZ532757A (en) * 2004-05-04 2005-07-29 Canterprise Method and apparatus for identifying a maximum subarray
FR2880446A1 (fr) * 2005-01-04 2006-07-07 France Telecom Indexation par transposition de matrice de grande dimension
US10304008B2 (en) * 2015-03-20 2019-05-28 Nec Corporation Fast distributed nonnegative matrix factorization and completion for big data analytics
CN111104164A (zh) * 2016-04-26 2020-05-05 中科寒武纪科技股份有限公司 一种用于执行矩阵乘运算的装置和方法
CN108205519B (zh) * 2016-12-20 2022-01-25 上海寒武纪信息科技有限公司 矩阵乘加运算装置和方法、处理装置、芯片、电子装置
US11105437B2 (en) * 2017-07-03 2021-08-31 Continental Automotive Systems, Inc. Combined inlet and outlet check valve seat
CN109992743B (zh) 2017-12-29 2020-06-16 华为技术有限公司 矩阵乘法器

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB226899A (en) * 1923-10-09 1925-01-08 Robert Sohner Improvements in motor ploughs
JPS5932216A (ja) * 1982-08-17 1984-02-21 Sony Corp ディジタル信号処理回路及びディジタルフィルタ
DE3735654C2 (de) * 1986-10-21 1996-05-02 Sharp Kk Elektronischer Rechner
US4815019A (en) * 1987-02-26 1989-03-21 Texas Instruments Incorporated Fast ALU equals zero circuit
US4949292A (en) * 1987-05-14 1990-08-14 Fujitsu Limited Vector processor for processing recurrent equations at a high speed
US4958312A (en) * 1987-11-09 1990-09-18 Lsi Logic Corporation Digital multiplier circuit and a digital multiplier-accumulator circuit which preloads and accumulates subresults
GB2226899A (en) * 1989-01-06 1990-07-11 Philips Electronic Associated An electronic circuit and signal processing arrangements using it
US5179531A (en) * 1990-04-27 1993-01-12 Pioneer Electronic Corporation Accelerated digital signal processor
EP0466997A1 (en) * 1990-07-18 1992-01-22 International Business Machines Corporation Improved digital signal processor architecture

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021522630A (ja) * 2018-04-21 2021-08-30 マイクロソフト テクノロジー ライセンシング,エルエルシー マルチポート・メモリーを備えたベクトル・レジスター・ファイルを有する行列ベクトル乗算器

Also Published As

Publication number Publication date
US5422836A (en) 1995-06-06
WO1992009040A1 (de) 1992-05-29
EP0557314A1 (de) 1993-09-01
DE4036455C1 (ja) 1992-04-02

Similar Documents

Publication Publication Date Title
US4777614A (en) Digital data processor for matrix-vector multiplication
US10915297B1 (en) Hardware accelerator for systolic matrix multiplication
US8051124B2 (en) High speed and efficient matrix multiplication hardware module
US5081573A (en) Parallel processing system
EP0421639B1 (en) Parallel data processing system
CN107633298B (zh) 一种基于模型压缩的递归神经网络加速器的硬件架构
JPH06502265A (ja) 信号処理におけるマトリクス演算の計算回路装置
US5146543A (en) Scalable neural array processor
CN110580519B (zh) 一种卷积运算装置及其方法
CN110705703A (zh) 基于脉动阵列的稀疏神经网络处理器
US5065339A (en) Orthogonal row-column neural processor
JPH064507A (ja) ニューラルネット
WO2022226721A1 (zh) 一种矩阵乘法器及矩阵乘法器的控制方法
CN212112470U (zh) 一种矩阵乘法计算电路
CN112639839A (zh) 神经网络的运算装置及其控制方法
US5226002A (en) Matrix multiplier circuit
CN113918120A (zh) 计算装置、神经网络处理设备、芯片及处理数据的方法
CN110766136B (zh) 一种稀疏矩阵与向量的压缩方法
WO2021168644A1 (zh) 数据处理装置、电子设备和数据处理方法
US20220238151A1 (en) In-memory computation device and in-memory computation method
JPH05324700A (ja) 行列乗算装置
CN112836793A (zh) 浮点可分离卷积计算加速装置、系统以及图像处理方法
JPH03105584A (ja) 並列データ処理方式
JP2001160736A (ja) デジタルフィルタ回路
US4970675A (en) Multiplier for binary numbers comprising a very high number of bits