JPH03105584A - 並列データ処理方式 - Google Patents

並列データ処理方式

Info

Publication number
JPH03105584A
JPH03105584A JP1243972A JP24397289A JPH03105584A JP H03105584 A JPH03105584 A JP H03105584A JP 1243972 A JP1243972 A JP 1243972A JP 24397289 A JP24397289 A JP 24397289A JP H03105584 A JPH03105584 A JP H03105584A
Authority
JP
Japan
Prior art keywords
data processing
tray
matrix
vector
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.)
Granted
Application number
JP1243972A
Other languages
English (en)
Other versions
JP2825133B2 (ja
Inventor
Hideki Kato
英樹 加藤
Hideki Yoshizawa
英樹 吉沢
Hiromoto Ichiki
宏基 市來
Kazuo Asakawa
浅川 和雄
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP1243972A priority Critical patent/JP2825133B2/ja
Priority to DE69032259T priority patent/DE69032259T2/de
Priority to EP90310302A priority patent/EP0421639B1/en
Priority to AU63030/90A priority patent/AU641418B2/en
Publication of JPH03105584A publication Critical patent/JPH03105584A/ja
Priority to US08/227,472 priority patent/US5600843A/en
Application granted granted Critical
Publication of JP2825133B2 publication Critical patent/JP2825133B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概   要〕 複数個のデータ処理ユニットを同期的に用いてデータを
処理する並列データ処理方式に関し、リングシストリッ
クアレイ方式や共通バス結合型S I M D (Si
ngle Instruction Multi Da
ta )結合方式と同程度なハードウェア構成で、デー
タ転送によるオーバヘッドを減少せしめ、特に、長方形
行列とベクトルとの積を求めるような処理に対しても、
本来の並列度を最大限利用できるようにして良好な台数
効果を得ることにより、行列演算あるいはニューロコン
ピュータ演算を行うことをことを目的とし、 各々少なくとも一つの入力を持つ複数個のデータ処理ユ
ニットと、各々第1の入力及び出力を持ちかつ各々デー
タ保持及びデータ転送を行う複数個のトレイであって、
前記トレイの全部又はその一部が各々前記データ処理ユ
ニットの第1の入力に接続された第2の出力を有するも
のと、前記接続するトレイの第1の入力及び出力が接続
されて成るシフト手段とを具備し、前記シフト手段上の
データ転送と、前記トレイと前記データ処理ユニット間
のデータ転送と、前記データ処理ユニットによるデータ
処理とを同期して行うことにより、行列演算あるいはニ
ューロコンピュータ演算を行うように構成する。
〔産業上の利用分野〕
本発明は並列データ処理方式に係り、更に詳しくは、複
数個のデータ処理ユニットを同期的に用いてデータを処
理する並列データ処理方式に関する。
近年、電子計算機或いはデジタル信号処理装置等のシス
テムにおいて、データ処理の適用分野の拡大に伴い、処
理されるデータの量が膨大になり、特に画像処理或いは
音声処理等の分野では高速なデータ処理を行う必要があ
り、そのため、複数個のデータ処理ユニットを同期的に
用いてデータを処理するデータ処理の並列性の利用が重
要となる。
−iに、複数の処理ユニットを用いた処理において重要
な概念に台数効果がある。これは用意されたデータ処理
ユニットの台数に比例したデータ処理速度の向上が得ら
れることを意味するが、並列処理方式においては良好な
台数効果を得ることが非常に重要となる。
台数効果が悪化する主要な原因は、問題そのものの並列
度による限界を別にすれば、データ処理に伴うデータ転
送に要する時間が本来のデータ処理に要する時間に加算
されてトータルとしての処理時間が引き延ばされること
にある。従って、台数効果の向上にはデータ伝送路の容
量をフルに活用することが有効であるが、これはなかな
か難しい しかし、処理が規則的な場合には、この規則性を利用し
て台数効果を上げることが可能となる。
データをシストリックアレイ、すなわち、巡回的にデー
タを流し、2つのデータがその流れにおいてそろったと
ころで演算を行うようにする。処理が規則的なことを利
用する並列処理がシストリンクアレイ方式であり、この
中でリングシストリンクアレイ方式と呼ばれる1次元の
シストリックアレイ方式は、複数個のデータ処理ユニッ
トを同期的に用いてシストリックなデータを処理する並
列データ処理方式であって実現が比較的容易である。
規則性のある処理として、ベクトルの内積演算を基本と
した行列演算や、ニューラルネットの積和演算に非線形
関数を介して出力する並列処理がある。
〔従来の技術〕
第11図(A)は従来の共通バス結合型並列方式の原理
構成図である。同図において91はプロセッサエレメン
ト、4はメモリ、93は共通バス、92は共通バスに接
続されるバス、94は各プロセッサエレメントと、それ
に対応して接続されるメモリ4を接続する内部バスであ
る。この共通バス結合型並列方式においては、プロセッ
サエレメント(以下PEと称す)間の通信が共通バス9
3を介して行われる。特定な時間区域には共通バス番こ
乗せるデータは1つであるため、共通バスによ?通信は
共通バス全体にわたって同期をとる必要がある。
第11図(B)はこの共通バス結合型並列方式による行
列ベクトル積の動作フローチャートである。各PEは他
のPEからのデータXと内部レジスタのYとをかけ、そ
の積をYに足しこむ動作を行う。そのためフローチャー
トに示すように、i番目のPEに関して、その内部にあ
るレジスタの内容、すなわち、Y■の値をまず0にする
。そして以下をn回繰り返す。すなわち、共通バス93
にX,を与えるとi番目のPEは共通バスに接続された
バス92からの入力とメモリ4から内部バス94を介し
て与えられる入力を掛け合わせ、そ′の積をYiに足し
込む。これを繰り返す。
第12図(A)は従来のリングシストリック方式の原理
説明図である。同図において20はプロセッサエレメン
ト(PE)である。各PRは巡回バス22によって接続
されている。また、21は係数WiJを格納するメモリ
である。W,,,W,2・・・.W33などは係数行列
の要素であり、一般にWijは行列のij成分である。
この係数行列Wと、ベクトルx= (XI ,X2 ,
X3 )を掛ける動作をこのリングシストリック方式で
行う場合、次のようにして行われる。
第12図(B)はプロセッサエレメントの第i番目の内
部構造である。同図において23は乗算器、24は加算
器、25はアキュムレータ(ACC)、21は係数の要
素Wijを格納するレジスタ群である。このレジスタ群
はいわゆるFIF○であって、係数行列の第i行目に関
する係数としてWiJ、すなわちj番目の列の要素が出
力されようとしている状態である。このFIF○は出力
された次のクロックでは巡回し、バス22を介して後ろ
側からまた入力される。従って図に示すように、W■,
・・・, Wi J−1 はすでに巡回されて後側に格
納されている状態となっている。
一方、ベクトルの各要素はバス22を介して入力される
。現在、要素X,が入力されている状態である。すでに
アキュムレータ25にはW,,XX,十・・・+W+ 
J−I XXJ−1の内積結果が格納されている。これ
が今アキュムレータ25から出力され、加算器24の一
方の入力に入力されている。
外部からのxjとFIF○から出力されるWijの積が
乗算器23によって乗算され、その結果が加算器24の
他方の入力に入力され、現在のアキュムレータ25の内
容とが加えられ、次のクロックで同じアキュムレータ2
5に加算される。この繰り返しによって、係数行列Wの
第i行目の行ベクトルと外部から与えらるXベクトルと
の内積演算がW行される,なお、スイッチ(Switc
h)はデータXiをスルーに外部に出すか、あるいは内
部に取り込み、アキュムレータ25にセットする場合と
の選択を行うためのものである。このようなPEで、行
列×ベクトルの積を行う場合、第12図(A)に示すよ
うに、PE−1はまず、WllとXを掛け、次のクロツ
ク周期に、X2が右側のPE2から流れ込み、W+2が
メモリ21から出力されるので、W12×X2が演算さ
れる。同様に次のクロックではw+iとx3との積が実
行され、このことにより係数行列の第1列目とベクトル
鬼との?がPE−1において可能となる。また、第2列
目とベクトルとの積はPE−2において行われる。
すなわち、W22とX2を掛け、次のクロック周期に、
W2ffとX3を掛け、次のクロック周期においてW2
1と巡回的にもどってきたX+ との積を行うことにな
る。同様に、第3行目とベクトルとの積はW33とX3
を掛け、W31と巡回してくるX,とを掛け、W3■と
巡回して戻ってくるX2との積をとって内積演算を実行
することによって可能となる。従って、この動作におい
て、WllとXIとの積、及びW2■とX2 、W33
とx3との積は同時に行えることになる。しかし、図に
示すように、この同時性を実行するためには係数行列の
要素の並べ方にねじれが生じている。このようなリング
シストリックアレイ方式においては、各PE間のデータ
転送と、各PBでのデータ処理を同期して実行すること
で、データ転送路を有効に利用でき、従って良好な台数
効果を得ることができる。
第12図(C)は、第l2図(A)のリングシストリッ
ク方式の構或を多段に組み合わせたのもであり、この構
或により、連続する行列とベクトルの積を行うことが可
能となる。このようなシストリックアレイ方式は処理が
規則的であるため、データ伝送路の容量をフルに活用す
ることが可能であり、従って台数効果の向上が計れる。
〔発明が解決しようとする課題〕
第11図(A)のような従来の共通バス結合の並列方式
においては、プロセッシングエレメント、すなわちPE
間の結合が共通バスによっているため、一時には1つの
データしか転送できない。また、共通バスによる結合は
共通バス全体にわたる同期をとらなければならない。従
って、従来の共通バス結合型並列方式においては良好な
台数効果を得られる処理の種類が少ないという問題が生
じ、さらに共通バスによる結合は、結合されるPEの個
数の増加とともに共通バスが長くなり、共通バス全体に
わたる同期をとるのが難しくなるという問題、そして、
大規模並列には適さないという問題が生じていた。また
、第12図のような従来のリングシストリックアレイ方
式においては、各PE間のデータ転送とPEでのデータ
処理を同期して実行することにより、台数効果を得るこ
とができるが、この方弐では、各PE間でのデータ転送
と、各PE間でのデータ処理のタイ旦ングを合わせねば
ならない。また、この方式では、例えば長方形の行列と
ベクトルとの積を求める場合等のようにデータ処理ユニ
ットとデータ保持ユニットのそれぞれの最適な個数が等
しくない場合には、実際のデータ処理に係わらないPE
が必要となり、すなわち、遊ぶPEが多くなり、そのた
め台数効果が悪化するという問題がある。言い換えれば
、効率よくとける問題と回路構成とが固く対応し、問題
の大きさが最適な値と異なると台数効果が悪化してしま
う。逆にいうと、良好な台数効果が得られる問題が特定
されてしまい、広範な処理に適用できず、柔軟性、或い
は汎用性に欠け、結果として、ある程度広い範囲の処理
に適用できる高速なデータ処理系を実現することが困難
となる。
本発明は、リングシストリックアレイ方式や共通バス結
合型S I M D (Single Instruc
tion MultiData)結合方式と同程度なハ
ードウエア構成で、データ転送によるオーバヘッドを減
少せしめ、特に、長方形行列とベクトルとの積を求める
ような処理に対しても、本来の並列度を最大限利用でき
るようにして良好な台数効果を得ることにより、行列演
算あるいはニューロコンピュータ演算を行うことを目的
とする。
〔課題を解決するための手段〕
第1図は本発明の原理説明図である。同図において1は
データ処理ユニット、2はデータの保持及び転送を行う
トレイ、3は各トレイの相互接続により構成されるシフ
トレジスタ、11はデータ処理ユニットの第lの入力、
12はデータ処理ユニットの第2の入力、21はトレイ
の第1の入力、22はトレイの第1の出力、23はトレ
イ2の第2の出力である。
データ処理ユニット1はデータの処理を行い、トレイ2
は転送の動作を行うものでシフトレジスタ3を構放して
、データの巡回シフトを行う。本発明では、mxn行列
八と要素数のベクトルXとの積を求める場合、行列八の
行数mが列数nより小さい場合であっても、或いはmが
nより大きい場合であっても、m個のデータ処理ユニッ
トとn個のトレイを用いてnに比例する処理時間でその
積が実行可能となり、従って、良好な台数効果を得るこ
とができる。すなわち、第1図(A)に示すように、そ
れぞれ2つの入力を持ち、その入力間の乗算機能とその
乗算結果の累積機能、すなわち内積演算を実行するm個
のデータ処理ユニット1と、n個のトレイ2とからなる
構或において、ユニット内の累積レジスタをYとした場
合に、データ処理ユニットは11からの入力と12から
の入力を掛け合わせ、積を累積Yに足し込み、その後、
シフトレジスタ3内の隣接するトレイ間でベクトルXの
要素をシフトする。この動作をn回繰り返すことにより
、m×nの行列Aと、n次元ベクトルとの乗算がm個の
データ処理ユニットを用いてnに比例する処理時間で実
行可能となる。すなわち、本発明は、従来方式と異なり
、データ処理ユニット1とデータ保持機能を有するトレ
イ2とを分離することにより、それぞれmとnが異なっ
ている場合であっても、タイミングを合わせるための処
理を必要とせずに良好な台数効果を得ることが可能とな
る。さらに、本発明では、トレイ2間のデータ転送とデ
ータ処理ユニットlによるデータ処理とを同時並行的に
行い、一般的にはデータ処理ユニットがデータ処理に有
する時間よりもデータ転送時間を短くすることが期待で
きるので、データ転送時間をデータ処理時間の影に隠す
ことで実質的にOにし、そのことにより、処理時間を短
縮することが可能となっている。このことにより、行列
演算あるいはニューロコンピュータ演算を行う。
〔作   用〕
データ処理ユニットと、データ保持機能を有するトレイ
とを分離することにより、データ処理ユニットの個数m
とトレイの個数nとが同一の場合も違っている場合も、
nXmの行列Aと要素数nのベクトルXとの積を、デー
タ転送と、データ処理の同時並列処理により行うことが
できる。
〔実  施  例〕
以下、本発明の実施例を図面を参照して説明する。
第1図(B)は第1図(A)の本発明の原理構成図のシ
ステムの動作フローチャートである。第1図(A)に示
されるように本発明ではデータ処理ユニット1とデータ
保持機能を有するトレイ2とを分離し、さらにトレイを
隣接間で接続し、巡回接続することによってシストリン
クなシステムを構成している。データ処理ユニットの数
をn、トレイの数をmとした場合に、mxnの行列Aと
要素数nのベクトルXとの積を求める場合、第1図(B
)のフローチャートに示される動作となる。
Xi をトレイ2のi番目にセットする。Ysの値をO
にする。すなわちデータ処理ユニットのi番目のユニッ
トにおける累積レジスタの値を初期化する。i番目の処
理ユニット1Nは11<からの入力と、121の入力を
掛け合わせて、積を累積器Ysに足し込む。そしてシフ
トレジスタ3をシフトする。この内積とシフト動作をn
回繰り返す。
この処理において長方行列Aとベクトル見との積が形成
される。この場合、トレイ間のデータ転送とデータ処理
ユニットにおけるデータ処理とは同時並行処理となる。
第1図(C)は本発明方式の動作概念図である。
同図においてトレイ2内のデータX+から×nはベクト
ルXの要素でその個数はnであるとする。
またデータ処理ユニットはm個あり、その各々に累積器
がY+ ,Yz ,  ・・・,Y,がある。m×nの
長方行列の要素はA■からA.までのm×n個存在する
。データ処理ユニットの1.には係数行列の第1行目で
あるAz. AH,  ・・・+AInが同期的に12
1の入カバスから入力される。またデータ処理ユニット
12はA22, A23,  ・・・A 2 1がシス
トリック動作の各タイミングで順番に与えられる。また
、データ処理ユニット1lIには? ffilW+ A
ll ll+.1+ ’・・r All I1−1が同
期的に与えられる。
第1図(D)は第1図(C)の動作のタイミングチャー
トである。時間T+からTnの動作は第1図(C)のそ
れぞれの図と第1図(D)の時間T,,T2,  ・・
・,T,,とが対応している。時間タイミングT1にお
いては第1図(C)に示されるようにトレイの21.2
2,  ・・・,2nにはX+ ,Xz ,X■,・・
・.Xいがあり、ユニッ}11,12,  ・・・,l
mにはそれぞれ係数行列の要素All, ADZ,  
・・・六一が入力されている。従って、このタイミング
においてデータ処理ユニットはA1,とトレイ21のデ
ータX1 との積を求め、データ処理ユニットに対応す
るトレイ22にあるX2と、メモリから与えられるA2
2との積を求め、同様6こ、トレイ2mにおいてはA一
とX.の積を求める。このタイミングは第1図(D)の
T1のタイミングで行われている。すなわち積和を求め
る同期クロックにおいて、バス1hにはX1があり、バ
ス121にはA■があり、バス112にはX2、122
にはA22、113にはX3、123にはA33があり
、11.にはXII、12,にはA all1がのって
いる。従って、第1図(C)のT,タイムにおける図に
示すように内積演算が行われる。累積器Yの値はこの時
は0であるから内積結果はOに掛けた値が加わることに
なる。積和演算が終わるとシフト動作に入る。すなわち
第1図(D)に示されるようにT1とT2との間がシフ
ト動作であり、隣接するトレイ間でデータのシフトが行
われる。すなわち左シフトがこの場合行われる。すると
第1図(C)のタイミングT2に移る。第1図CD)の
動作タイ旦ングでも同様にT2の積和の時間区域となる
。するとシフトされているからトレイ21にはX2、ト
レイ22にはX3、そしてトレイ2mにはx−1が格納
され、また、係数行列の要素もトレイ1.2.−・’,
mにはそれぞれAI2, A23, Am mo+が入
力される。これは第l図(D)のT2のタイξングにお
いてもバス上のデータがそれぞれ示されている。従って
、T2のタイξングにおいて、A12?X2との積をと
り、前の累積器Yとの和が求められる。従ってユニット
1.においてはTIにおいて求まったA 1 .とX,
との積とT2において求められるA I ZとX2との
積との和が求められその結果が累積器に格納される。同
様にユニット1zにおいては前の結果であるA22XX
2 +A23XX3の結果が累積器に格納される。ユニ
ッl−1.に対しても同様である。そしてまたシフトし
、タイミングT3に移る。トレイ1にはX3、トレイ2
にはX4、トレイmにはX.■2、トレイnにはX2が
入り、第1図(C)のT3時間における図に示されるよ
うな内積演算が実行される。
第l図(D)の動作タイミングの時間区域T3において
は、データ処理ユニットに入るべき入力の記号が示され
ている。このような演算が進み、時間区域T。まで行う
と、第l図(C)の時間区域T。
に示されるようにA + nX X nは前の累積器と
の値に加えられると、トレイ21においては、TIで求
めたAIIXX+ 、T2におけるAI2XX2 、T
3で求めたA I3 X X 3等の積の和が求まり、
’rn−+までの内積結果が累算器Yに格納されている
ので、その結果にA,fiX×nが加わって行列Aの1
行目とベクトルXとの内積が実行される。トレイ2にお
いては同様に、行列八の2行目の行ベクトルとベクトル
Xとの内積演算がnクロック周期で行われ、同様にm行
目の行ベクトルと、ベクトルXの内積がデータ処理ユニ
ット1、で実行される。従って、このような時系列で処
理を行うことによって、m×nの長方行列とn次元ベク
トルとの乗算がm個のデータ処理ユニットを用いてnに
比例する処理時間で実行可能となる。従って、良好な台
数効果を得ることが可能となる。ここで重要なことは、
データを処理するデータ処理ユニットと、データ保持機
能を有するトレイとを分離し、それぞれの個数を長方行
列の行と列に対応させ、それらの次元が異なっていても
、時系列動作が同期的に可能となっている点である。な
おnがmよりも小さい場合でもm個のトレイ2を用いる
ことで処理時間は延びるが、すなわちmに比例するが、
台数効果的な処理が可能となる。
第2図(A)は第1図の構或の詳細ブロック図であり、
m×n (n≧m≧1)の行列Aと要素数nのベクトル
Xの積V(要素数m)を求めるものである。同図におい
て、第1図で示したものと同一のものは同一の記号で示
してあり、1aはデータ処理ユニット1の処理装置であ
り、例えばデジタルシグナルプロセッサで構成され、2
aはトレイ2のデータ保持回路であり、例えばラッチ回
路で構成され、2bはトレイ2のデータ転送回路であり
、例えばバスドライバで構成され、2Cはトレイ2の制
御手段であり、例えば論理回路で構成され、4はデータ
処理ユニット1にデータを供給する手段の一部であると
同時にデータ処理ユニ・ノト1を制御する手段の一部で
ある記憶装置であり、例えばRAM (ラングムアクセ
スメモリ)で構成され、5はデータ処理ユニット1とト
レイ2の同期動作を行う手段であり、5aはクロツク発
生回路であり、例えば水晶発振回路で構成され、5bは
クロック分配回路であり、例えばバツファ回路から構成
される。
本実施例の動作は本発明の原理図で説明した動作とほぼ
同しである。
第2図(B)は第2図(A)の本発明のシステムの動作
フローチャートである。第2図(A)に示されるように
本発明ではデータ処理ユニット1とデータ保持機能を有
するトレイ2とを分離し、さらにトレイを隣接間で接続
し、巡回接続することによってシストリックなシステム
を構成している。データ処理ユニットの数をm、トレイ
の数をnとした場合に、mxnの行列Aと要素数mのベ
クトルXとの積を求める場合、第4図(B)のフローチ
ャートに示される動作となる。Xiをトレイ2iにセッ
トする。YiO値をOにする。すなわちデータ処理ユニ
ットのi番目のユニットにおける累積レジスタの値を初
期化する。i番目の処理ユニットをIIは11,からの
入力と、12iの入力を掛け合わせて、積を累算器Yi
に足し込む。そしてシフトレジスタ3をシフトする。こ
の内積とシフト動作をn回繰り返す。この処理において
長方行列Aとベクトル蒐との積が形戒される。
?の場合、トレイ間のデータ転送とデータ処理ユニット
におけるデータ処理とは同時並行処理となる。
第2図(C)は本発明方式の動作概念図である。
同図においてトレイ2内のデータX+からXflはベク
トルXの要素でその個数はnであるとする。
またデータ処理ユニットはm個あり、その各々に累積器
がY+ ,Y2 ,  ・・・,Y.がある。m×nの
長方行列の要素はAllからA llInまでのm×n
個存在する。データ処理ユニットの11には係数行列の
第1行目であるA H H、A12,・・・+Al11
が同期的に12+の入カバスから入力される。またデー
タ処理ユニット12はA22% A23,・・・A 2
 1がシストリック動作の各タイミングで順番に与えら
れる。また、データ処理ユニット1、にはA,.,A■
.,,・・・, An+ +a−lが同期的に与えられ
る。
第2図(D)は第2図(C)の動作のタイミングチャー
トである。時間T1からT。の動作は第1図(C)のそ
れぞれの図と第1図CD)の時間?, , ’rz ,
  ・・・,Tnとが対応している。時間タイミングT
,においては,第2図(C)に示されるように、トレイ
21,22,  ・・・,2nにはXI ,x2,X.
,− − ・,Xflがアリ、ユニットll,12, 
 ・・・,Imにはそれぞれ係数行列の要素A++.A
zz.A■が入力されている。
従って、このタイ旦ングにおいてデータ処理ユニット1
1のAIIとトレイ21のデータXIとの積を求め、デ
ータ処理ユニット12においてはトレイ22にあるX2
と、メモリから与えられるA22との積を求め、同様に
、トレイmにおいては八〇とX1の積を求める。このタ
イξングは第2図(D)のTIのタイミングで行われて
いる。すなわち積和を求める同期クロックにおいて、バ
ス11IにはX+があり、バス12.にはA.1があり
、バス112にはX2 、1 2z 6:はA22、1
 lx ニはX3、12:lにはA33があり、111
にはxm、121にはA.がのっている。従って、第2
図(C)のTIタイムにおける図に示すように内積演算
が行われる。累積器Yの値はこの時は0であるから内積
結果はOに掛けた値が加わることになる。積和演算が終
わるとシフト動作に入る。すなわち第2図(D)の図に
示されるようにT,とT2との間がシフト動作であり、
トレイの隣接するトレイ間でデータのシフトが行われる
。すなわち左シフトがこの場合行われる。すると第2図
(C)のタイミングT2に移る。第2図(D)の動作タ
イミングでも同様にT2の積和の時間区域となる。
するとシフトされているからトレイ21にはX2、トレ
イ22にはX3、そしてトレイし2mにはX .lが格
納され、また、係数行列の要素もトレイ21,22,−
,2mにはそれぞれA + z , A 2 3 , 
A.11141が入力される。これは第2図CD)のT
2のタイミングにおいてもバス上のデータがそれぞれ示
されている。従って、T2のタイミングにおいて、AI
2とx2との積をとり、前の累積器Yとの和が求められ
る。従って、ユニット1lにおいてはTIにおいて求ま
ったA.とX1との積とTzにおいて求められるA 1
 2とX2との積との和が求められ、その結果が累積器
に格納される。同様に?ニット12においては前の結果
であるA 22 X X Z十A23XX3の結果が累
積器に格納される。ユニット1ffiに対しても同様で
ある。そしてまたシフトし、タイξングT,に移る。ト
レイ21にはX3、トレイ22にはX4、トレイ2mに
はX■2、トレイ2nにはx2が入り、第2図(C)の
T2時間における図に示されるような内積演算が実行さ
れる。
第2図(D)の動作タイミングにおいての時間区域T3
においては、データ処理ユニットに入るべき入力の記号
が示されている。このような演算が進み、時間区域T0
まで行うと第2図(C)の時間区域T.に示されるよう
にAIfl××nは前の累積器との値に加えられると、
トレイ1においてはT,で求めたAt+XX+ % T
zにおけるA12×Xz、Tzで求めたA H 3 X
 X 3等の積の和が求まり、T,,..I までの内
積結果が累積器Yに格納されているので、その結果にA
.nXXflが加わって行列八のI行目とベクトルXと
の内積が実行される。
トレイ2においては同様に、行列Aの2行目の行ベクト
ルとベクトルXとの内積演算がnクロック周期で行われ
、同様にm行目の行ベクトルと、ベクトルXの内積がデ
ータ処理ユニット11で実行される。従って、このよう
な時系列で処理を行うことによってm×nO長方行列と
n次元ベクトルとの乗算がm個のデータ処理ユニットを
用いてnに比例する処理時間で実行可能となる。従って
、良好な台数効果を得ることが可能となる。
第3図は、本発明の第2の実施例説明図である.m×n
の行列Aと要素数nのベクトル1との積に対し、引き続
きkXmの行列Bを左から掛ける場合の動作に対するシ
ストリック方式の構或図である。第3図(A)において
第1図で示したものと同一のものは同一の記号で示して
ある。すなわち1aはデータ処理ユニット1の処理装置
であり、例えばデジタルシグナルプロセッサである。2
aはトレイ2のデータ保持回路であり、例えばラッチ回
路で構成され、2bはトレイ2のデータ転送回路であり
、例えばバスドライバで構或され、2Cはトレイ2の制
御手段であり、例えば論理回路で構成されている。4は
データ処理ユニット1にデータを供給する手段の一部で
あると同時にデータ処理ユニットlを制御する手段の一
部でもある記憶装置であって、例えばRAM (ランダ
ムアクセスメモリ)で構成されている。5はデータ処理
ユニット1とトレイ2の同期動作を行う手段であり、内
部の5aは、クロック発生回路で、例えば、水晶発振回
路で構成され、5bはクロック分配回路であり、例えば
、バッファ回路から構成される。
6はシストリック的に戻るデータとトレイに入力する場
合のデータと外部データとの選択を行う選択回路で、7
はシストリックされるデータを途中からバイパスする選
択回路である。
本実施例は、中間結果Axを求めるところまでは第1の
実施例と全く同一であり、各データ処理ユニット中にそ
の中間結果Axの各要素が求まっている状態から (a)中間結果をトレイ2に書き込み、(b)バイアス
の選択回路7をオンさせて、シフトレジスタの長さをm
に変更し、 (C)以後は本発明の第1の実施例において、行列Aを
行列Bに、そして、nをmに、mをkにそれぞれ変更す
ればまったく同じ動作となる。
第3図(B)は第2の実施例の動作フローチャート、第
3図(C)は第2の実庵例の動作概要図、第3図(D)
は第2の実施例の動作タイムチャートである。
まず、m×nの行列Aと要素数nのベクトルXとの積、
そして、kXmの行列Bを左から掛ける場合、第3図(
B)のフローチャートに示される動作となる。Xiをト
レイ21にセットする。YiO値をOにする。すなわち
データ処理ユニットのi番目のユニットにおける累積レ
ジスタの値を初期化する。i番目の処理ユニット1lは
litからの入力と、121の入力を掛け合わせて、積
を累積器Yiに足し込む。そしてシフトレジスタ3をシ
フトする。この内積とシフト動作をn@繰り返す。この
処理において長方行列AとベクトルXとの積が形威され
る。
次に、シフトレジスタの長さをmに変更し、Y1?トレ
イ21に転送する。そして、Z,(i=1,・・・,k
)をOにする。次にB行列を掛けるために、まず、i番
目の処理ユニットllとlitからの入力と12tの入
力を掛け合わせて、積を累積器Zlに足し込む。そして
、シフトレジスク3をシフトする二〇内積とシフト動作
をk回繰り返す。
第3図(C)は以上の動作概念図である。同図において
トレイ2内のデータX1からXI,はベクトル真の要素
でその個数はまず、nであるとする。
またデータ処理ユニットは最初は、m個が有効で、その
各々に累積器がY+ ,Yz ,  ・・・,Y.があ
るとする。まず、m×nの長方行列Aの要素はA■から
A■までのm×n個存在する。データ処理ユニットのh
には孫数行列の第1行目であるA++. Adz,  
H + +, AInが同期的に12、の入カバスから
入力される。またデータ処理ユニット12はA 2 2
 ,  A 2 3 ,  ・・・+  Allがシス
トリック動作の各タイξングで順番に与えられる。また
、データ処理ユニット1■にはA ,., A.,■竃
.・・?.■1が同期的に与えられる。
第3図(D)は第3図(C)の動作のタイξングチャー
トである。時間TIからT。の動作は第3図(C)のそ
れぞれの図と第3図(D)の時間T+ ,Tz ,  
・・・,Tnとが対応している。時間タイミングT1に
おいては、第3図(C)に示されるように、トレイの1
.2.・・・ nにはX+,Xz,  ・・・+Xk+
  ・・・,Xllがあり、ユニット1,2,・・・,
k,・・・,mにはそれぞれ係数行列の要素All,A
2■,・・・, Ahh.・・・,A,,が入力されて
いる。従って、このタイミングにおいてデータ処理ユニ
ットは、トレイ1において、A目とトレイ1のデークX
,との積を求め、データ処理ユニット2においてはトレ
イ2にあるX2と、メモリから与えられるA2■との積
を求め、同様に、トレイkにおいてはAkkとX,の積
を求め、トレイmにおいて、A.とXmの積を求める。
このタイミングは第3図(D)のT1のタイミングで行
われている。すなわち積和を求める同期クロックにおい
て、バス11+にはxl?あり、バス12+にはA +
 +があり、バスllzにはX2、122にはAzz,
 1 1 kにはXh,12kにはAkkがあり、11
.にはXlll,l21IにはA1■がのっている。従
って、第3図(C)のT+タイムにおける図に示すよう
に、内積演算が行われる。累積器Yの値はこの時は0で
あるから内積結果はOに掛けた値が加わることになる。
積和演算が終わるとシフト動作に入る。すなわち第3図
(D)の図に示されるように、T+ とT2との間がシ
フト動作であり、トレイの隣接するトレイ間でデータの
シフトが行われる。すなわち左シフトがこの場合行われ
る。すると第3図(C)のタイくングT2に移る。第3
図(D)の動作タイミングでも同様にT2の積和の時間
区域となる。するとシフトされているからトレイ1には
X2、トレイ2にはX3、トレイkにはXIl+1%そ
してトレイmにはX1。1が格納され、また、係数行列
の要素もトレイ1,2,・・・,k,・・・,mにはそ
れぞれAI2+ A23+  ・・・Akk+重,・・
・AI111141が入力される。これは第3図(D)
のT2のタイξングにおいてもバス上のデータがそれぞ
れ示されている。従ってT2のタイミングにおいて、A
,2とx2との積をとり、前の累積器Yとの和が求めら
れる。従ってトレイ1においてはT1において求まった
A 1 1とX,との積とT2において求められるA1
2とx2との積との和が求められその結果が累積器に格
納される。同様にトレイ2においては前の結果であるA
22XX2 +A23XX3の結果が累積器に格納され
る。トレイkやmに対しても同様である。そしてまたシ
フトし、タイミングT3に移る。トレイ1にはX3、ト
レイ2にはX4、トレイkにはXw k42 ..  
}レイmにはXlllmh2、トレイnにはX2が入り
、第3図(C)のT3時間における図に示されるような
内積演算が実行される。
このような演算が進み、時間区域Tnまで行うと第3図
(C)の時間区域T.に示されるようにA + n X
 X (@が前の累積器との値に加えられるとトレイ1
においてはT+ で求めたA11XX1−.Tzにおけ
るA 1 z X X 2 、T kで求めたAlkx
Xk等の積の和が求まり、Tn−+までの内積結果が累
積器Yに格納されているので、その結果にA,.x×n
が加わって行列Aの1行目とベクトルXとの内積が実行
される。トレイ2においては同様に行列八の2行目の行
ベクトルとベクトルスとの内積演算がnクロック周期で
行われ、同様にk行目の行ベクトルと、ベクトル見の内
積がデータ処理ユニット1kで実行される。
データ処理ユニットの有効数をk、トレイの有効数をm
とした場合に、kXmの行列Bと要素数mのベクトルy
との積を求める動作となる。Ytをトレイ2のhにセッ
トする。ZiO値をOにする。すなわちデータ処理ユニ
ットのi番目のユニットにおける累積レジスタの値を初
期化する。
i番目の処理ユニットhは1hからの入力と、121の
入力を掛け合わせて、積を累積器Ziに足し込む。そし
てシフトレジスタ3をシフトする。
この内積とシフト動作をm@繰り返す。この処理におい
て長方行列Bとベクトル!との積が形威される。
?3図(C)においてトレイ2内のデータY1からYm
はベクトルyの要素でその個数はmであるとする。また
データ処理ユニットの有効数はk個あり、その各々に累
積器がZl,Z2,  ・・・Zkがある。kXmの長
方行列旧の要素はB++からBhまでのkXm個存在す
る。データ処理ユニットのhには係数行列Bの第1行目
であるBll、B+z,  ・・・+BI+mが同期的
に121 の入力バスから入力される。またデータ処理
ユニットlzはB2■,  B23,  ・・・,B2
1がシストリック動作の各タイミングで順番に与えられ
る。また、データ処理ユニッl−1ヶにはBkk. B
k k。1,・・・Bk k−1が同期的に与えられる
第3図(D)は第3図(C’)の動作のタイ5ングチャ
ートでも同様の記号が使われている。時間T n + 
1からT n + @ + lの動作は第3図(C)の
それぞれの図と第3図(D)の時間とが対応している。
時間タイミングT。+Iにおいては第3図(C)に示さ
れるように、トレイI,2,・・・,mにはY+ ,Y
2 ,  ・・・,Y.が移され、ユニット1,?,・
・・,kにはそれぞれ係数行列Bの要素Bz,B2■,
・・・,Bkkが入力されている。次のタイミング’r
n*zにおいてデータ処理ユニット1においてBl+と
トレイ■のデータY1との積を求め、データ処理ユニッ
ト2においてはトレイ2にあるY2と、メモリから与え
られるB2■との積を求め、同様にユニッI−kにおい
てはBkkとYkの積を求める。このタイミングは第5
図(d)のTn。2のタイミングで行われている。すな
わち積和を求める同期クロツクにおいて、バス11+に
はY1があり、バス12+にはB目があり、バス112
にはY2、122にはB22、1l3にはY3,123
にはB33があり、11kにはYk、12kにはBkk
がのっている。従って、第3図(C)のT,l。2にお
ける図に示すように内積演算が行われる。累積器Zの値
はこの時はOであるから内積結果はOに掛けた値が加わ
ることになる。積和演算が終わるとシフト動作に入る。
すなわち第3図(D)の図に示されるようにTn。2と
T。+3との間がシフト動作であり、トレイの隣接する
トレイ間でデータのシフ?が行われる。すなわち左シフ
トがこの場合行われる。すると第3図(C)のタイξン
グT n + 3に移る。第3図(D)の動作タイミン
グでも同様にT n + 3の積和の時間区域となる。
すると、シフトされているからトレイ1にはY2、トレ
イ2にはY3、そしてトレイkにはY k + +が格
納され、また、係数行列Bの要素もトレイ1,2.・・
・.kにはそれぞれB1■, B23,  ・・・+ 
Bk k+1が入力される。これは第3図(D)のT 
n + 3のタイミングにおいてもバス上のデータがそ
れぞれ示されている。従ってT n + 3のタイミン
グにおいてBI2とY2との積をとり、前の累積器Zと
の和が求められる。従って、ユニット1においては、T
7。2において求まったB.とY+ との積とT n 
* 3において求められるB1■とY2との積との和が
求められその結果が累積器Zに格納される。同様にユニ
ット2においては前の結果であるB22XY2 +Bz
3×Y3の結果が累積器Zに格納される。トレイkに対
しても同様である。そしてまたシフトし、タイミングT
 n + 4に移る。
このような演算が進み、時間区域T。*@+l まで行
うと第3図(C)の時間区域T n + I1。直に示
されるようにB IIIIX Y.Nが前の累積器Zと
の値に加えられるとユニット1においてはT,,。2で
求めたBX Y + −. T n + 2におけるB
 BX Y2 、Tn+3で求めたB ,,X Y3等
の積の和が求まり、T7。1までの内積結果が累積器Z
に格納されているので、その結果にBIm X Y y
3が加わって行列Bの1行目とベクトルyとの内積が実
行される。ユニット2においては同様に行列Bの2行目
の行ベクトルとベクトルlとの内積演算が行われ、同様
にk行目の行ベクトルと、ベクトルlの内積がデータ処
理ユニット1kで実行される。従って、このような時系
列で処理を行うことによってkXmの長方行列Bに対し
てmに比例する処理時間で実行可能となり、従って良好
な台数効果を得ることが可能となる。
本実施例においてはシフトレジスタ3の長さを変更でき
ること、及び中間結果をトレイ2に書き込み、それを新
たなデータとして処理できることが重要である。シフト
レジスタ3の長さを変更できなければ、データをすべて
巡回するためにn単位時間が必要になってしまう。また
中間結果を新たなデータとして処理できることで小規模
なハードウエアでリングシストリックアレイ方式より広
い範囲の処理が実行可能となっている。さらに書き込み
に要する時間が短くて各一定であることも重要である。
第4図は本発明の第3の実施例説明図である。
このシステムではmxnの長方行列Aの転置行列AT、
すなわち(nXm)の行列と要素数mのベクトルXとの
積とを計算するものである。同図において第1図に示し
たもの同じものは同一の記号で示してある。
転置行列ATとへクトルXとの積を求める場合において
は行列Aを構成する部分行ヘクトルを各データ処理ユニ
ット1に接続された記憶装置4中に格納し、演算途中に
生ずる部分和をトレイ中のデータ保持回路2a上に累積
しつつシフトレジスタ3上のデータを循環させる。
第4図(A)は第3の実施例の構或の詳細ブロック図で
あり、nXm (n≧m≧1)の行列ATと要素数mの
ベクトルXの積1(要素数n)を求めるものである。同
図において、第1図で示したものと同一のものは同一の
記号で示してあり、laはデータ処理ユニット1の処理
装置であり、例えばデジタルシグナルプロセッサで構成
され、2aはトレイ2のデータ保持回路であり、例えば
ラッチ回路で構成され、2bはトレイ2のデータ転送回
路であり、例えばバスドライバで構成され、2Cはトレ
イ2の制御手段であり、例えば論理回路で構成され、4
はデータ処理ユニット1にデータを供給する手段の一部
であると同時にデータ処理ユニット1を制御する手段の
一部である記憶装置であり、例えばRAM (ランダム
アクセスメモリ)で構成され、5はデータ処理ユニント
1とトレイ2の同期動作を行う手段であり、5aはクロ
ック発生回路であり、例えば水晶発振回路で構成され、
5bはクロック分配回路であり、例えばバッファ回路か
ら構成される。
第4図(B)は第3の実施例の動作フローチャートであ
る。X+をユニットIt  (i=1,  ・・m)に
セソトする。モしてYi( i = 1 ,・・,n)
の値をOにする。各ユニット11はA J (とXカを
掛け合わせ、積をYjに足し込む動作をi=1.・・・
.nに対して行ってシフトする。
この動作をj=1,・・・,mに対して繰り返す.転置
行列とベクトルの掛け算は、記憶装置4中に格納された
行列八の各部分行ベクトルをそのままにして計算可能と
なり、これは後述するニューラルネットの学習アルゴリ
ズムの1つであるバックプロバゲションの実行において
は極めて重要となる。またネットワークの量はオーダn
ですむこと。
リングネットワークである。またデータ転送時間が処理
時間の影に隠れて転送時間に対するオーバヘッドはない
ことになる。しかもSIMD方式である。
第4図(C)は第3の実施例の動作概要図である。ユニ
ットhには、A11からA1L,lまでを順に与えてい
く。ユニット12にはA22からA23.?・,A2.
を与え、k番目のユニットには記憶回路を介して、Ah
h,  Ak kl +  ・・・.  Ah ト+を
順に与える。m番目にはA■, Am m++ +  
・・A..1を順に与えていく。また、トレイ上を循環
するものはY1からYnである。
第4図(D)は第3の実施例の動作タイムチャートであ
る。時間区MT.からTnまでのバス上のデータが示さ
れ、これらは第6図(C)の時間区域T1からTnまで
の図にそれぞれ対応している。
時間区域T+においては、Y1からY7まではすぺてO
である。モしてA.とX1との積がユニット11で形威
され、それをY+に足し込む。それと同時にA22とX
2がY2に足し込まれ、Akk×XkがYkに足し込み
、Aエ×X.がY.に足し込まれる。そしてシフト動作
に入るとタイミングT2になる。すなわちYデータが循
環する。第1のユニットではA H 2 X X 1が
計算され、これがY2に足し込まれるが、そのY2はT
Iにおいて求まったA 22 X X 2の値が格納さ
れているのでこれに足し込まれる。そのため、A22X
X2 +AI2XXIの結果がY2となる。同様にユニ
ット2においては、前のY3の結果にA 23 X X
 2が足し込まれる。
k番目のユニットにおいてはY k* 1にAkk。1
×X,が加えられる。また、m番目のユニットにはY.
。1にAIls。Ixx.が加えられことになる。
このようにYデータを循環するとm番目の時間区域Tn
においては、例えば第1のユニット1、においては、そ
の前までに求まったYnにA 1 nX X 1が加え
られる。またY+にはA 2 1 X X 2が加えら
れる。これを全体的に眺めてみると、例えば、ベクトル
鬼の第1の要素X+には、T+においてA■と積がとら
れ、A I I X X lが計算される。それはY1
に格納される。また、転置行列八〇の第1行目の第2番
目の要素A21XX2は実は最後のクロック周!tlI
Tnにおいて計算されている。これは同じY,に格納さ
れている形になっている。また、転置行列A7の第1行
目の最後の要素であるA11とX1との積は第4図(C
)のクロック周期T n − v* * 2のm番目の
ユニットで計算されている。すなわちA1とX1の積が
Y+に足し込むことによって得?れる。転置行列A7の
第2行目においても同様であり、AI2とX1との積は
T2のクロックにおいては、ユニット1において計算さ
れている。また、A2■×X2はクロック周期T1の第
2番目のユニットにおいて行われている。モしてY2が
再び循環して積の実行が行われるのは、時間区域Tn−
TI。2である。その時間区域以後は乗算が行われ、シ
フト動作が行われる。そして時間区域Tflにおいては
Y2に足し込まれる値は第3番目のユニットであり、Y
2に足し込まれる値はA3■XX3である。従って、T
7において転置行列ATの第2行目とベクトルXの内積
が計算される。一般に第k番目のユニットに関してはk
番目のトレイからのデータ線がllmであるから第4図
(D)に示されるように、11kに示すところを追って
いけばよいことになる。すなわち、T1においてはY,
+AHXXm 、TzにおいてはY k* r + A
 h k+ +×χ,、T3においてはYk+z +A
h k+2 Xhが計算され、’rn−+においてはY
k−■+Al k−z Xkが計算され、時間区域Tn
においてはYk−1+Akk−I Xkが計算されるこ
とになる。このことにより転置行列ATとm次元のベク
トルXの積が実行される。すなわち、転置行列A7とベ
クトルXとの積を求める場合においては、行列Aを構成
する部分行ベクトルを各データ処理ユニットIに接続さ
れた記憶装置4中に格納し、演算途中に生ずる部分和を
トレイ2中のデータ保持回路上に累積しつつシフトレジ
スタ上を循環させている。このような方法により行列A
とベクトルUとの積Xに継続して行列八の転置ATとベ
クトル真の積を求める場合は、行列AとベクトルUとの
積を求める時に用いた各データ処理ユニット1に接続さ
れた記憶装置4中に格納された行列八の各部分行ベクト
ルをそのまま用いて、すなわち転置行列八〇の部分行列
を各データ処理ユニット1に転送することなしに処理を
おこなしうことができ、従って転送に要する時間が節約
でき、さらに処理時間が短縮できることになる。
第4図(E)は第4図(B)の繰り返し部分を詳細に分
解して示したフローチャートである。
第5図は本発明の第4の実施例図である。本実施例は本
発明を利用したニューロコンピュータの構或図である。
同図において第4図に示したものと同一のものは同一の
記号で示してある。同図において1aはデータ処理ユニ
ット1の処理装置であり、例えばデジタルシグナルプロ
センサで構成される。2aはトレイ2のデータ保持回路
であり、例えばラッチ回路で構成される。2bはトレイ
2のデータ転送回路であり、例えばバスドライバで構成
される。2cはトレイ2の制御手段であり、例えば論理
回路で構成される。4はデータ処理ユニット1にデータ
を供給する手段の一部であると同時にデータ処理ユニッ
ト1を制御する手段の一部でもある記憶装置である。例
えばRAMで構成される。5aはデータ処理ユニット1
とトレイ2の同期動作を行う手段であり、5aはクロッ
ク発生回路、例えば水晶発振回路で構成される。5bは
クロンク分配回路であり、例えばパッファ回路で構成さ
れる。これに加えて101はシグモイド関数と称される
単調非減少連続関数及びその微分係数を計算するシグモ
イド関数ユニットであり、例えば多項式による近似式に
より実現される。l03は学習時の終了を判定する手段
であり、例えば通信手段により前記各処理ユニット1と
接続されたホストコンピュータと、各処理ユニット■が
計算した出力誤差を前記通信手段により前記ホストコン
ピュータに通知する手段と、一般に複数個の前記出力誤
差値を基に学習の終了を判定し、ニューロコンピュータ
の停止を行う手段とから構或される。なお102はニュ
ーロコンピュータの全体である。
第5図(B)は本発明のニューロコンピュータにおいて
処理の計算における基本素子であるニューロンモデルの
実施例図である。ニューロンモデルは入力X.,XZ,
  ・・・,X1の各々にシナプス結合としての重み時
W.,W2,  ・・・,Wnをそれぞれ掛け、その総
和を求め、これを内部値Uとする。このUに非線形関数
fを施し、出力Yとする。ここで非線形関数fは図に示
すようなS型のシグモイド関数が一般に使われる。
第5図(C)は第5図(D)のニューロンモデルの複数
を用いて入力層、中間層、出力層の3N構造でニューロ
コンピュータを形成する階層型のニューラルネットワー
クの概念図である。第INの入力層は入力信号I+,I
z,  ・・・,  IN+11を入力する。第2層の
中間層は各々のユニット、すなわち、各々のニューロン
モデルが第1層のすべてのニューロンモデルに接続され
、その結合枝がシナプス結合であって、重み値Wijが
与えられている。第3層の出力層は同様に中間層の各ニ
ューロンモデルの全てに各々のユニットが接続されてい
る。その出力は外部に出される。このニューラルネット
においては学習時において入力層に与えられる入力パタ
ーンの信号に対応する教師信号と出力層との出力信号と
の誤差を求め、この差が非常に小さくなるように中間層
と出力層との間の重み及び第1層と第2層の間の重みを
定めるようにする,このアルゴリズムがパックプロバゲ
ーション法則、すなわち逆伝播学習則と呼ばれるもので
ある。逆伝播学習則によって定められた重み値を保存し
、例えばパターン認識等の連想処理を行う場合には、第
1層の入力にて認識するべきパターンからややずれた不
完全なパターンを与えると、出力層からそのパターンに
対応した出力信号が出力され、その信号は学習時に与え
たそのパターンに対応する教師信号と非常に似たような
信号が出てくる。教師信号との差が非常に小さければ、
その不完全なパターンを認識したことになる。
第5図(A)のニューロコンピュータ102を用いてこ
のニューラルネットワークの動作を工学的に実現できる
。本実施例では第5図(C)に示すような3層のネット
ワーク構成を用いるが、以下の説明のようにこの層数は
本実施例の動作にはなんら本質的な影響を受けない。同
図においてN(1)は第1層のニューロン数である。ま
た通常、第工層、すなわち入力層の各ニューロンの出力
は入力と等しいものとするので、実質的な処理の必要1
よない。通常の動作、すなわちパターン認識を行う場合
の前向きの処理を第5図(D)に示す。
第5図(D)は第4の実施例の前向き処理フロ一チャー
トである。前向き処理では第5図(C)に示すネットワ
ークにおいて、各層間の結合枝上の重み係数は定まって
いるものとする。第5図(C)のネットワークを第5図
(A)のニューロコンピュータで実現する場合、次の処
理が行われる。前向き動作の基本動作は第5図(B)の
ニューロンモデルにおいて、入力に重みを掛けその総和
をとったものをUとし、そのUに非線形関数を施す処理
となる。これを各層において行うことになる。そのため
、まず、ステップ70において入力データ、すなわちI
1から■8.,までのデータをシフトレジスタ上にセッ
トする。そして層の数をLで表すと、以下のすべての処
理を層分繰り返す。例えばLが3であった場合には、3
回繰り返す。繰り返される層は1層分の前向き処理であ
る。
そして、処理が終了する。そのIN分の前向き処理が下
側に示されている。今、中間層に注目すると、lは2で
ある。ステップ72において、シフトレジスタの長さを
N(/2−1)にする。すなわち、f=2であるからN
(1)、すなわち入力層の数にする。ステップ73は中
間層におけるニューロンモデルの処理である。インデッ
クスのjは1から入力層のユニット数N(1)まで変化
させる。Wij(f)は入力層と中間層の間の結合にお
ける重み係数である。すなわちf=2である。Y,(f
−1)は入力層のj番目のユニットからの出力である。
iは中間層のi番目のユニットを意味する。i番目のユ
ニットの状態Ui(2)は入力層の出力Yj、すなわち
j番目のYに重みWi,をかけてその総和より計算され
る。ステップ74に移って、その中間層のi番目の状態
Ui(2)は非線形関数、すなわちシグモイド関数に入
力され、その出力がYi(2)となる。すなわちステッ
プ73の内積計算は第5図(A)のユニット内で行うが
、このシグモイド関数の計算は、101によって行われ
る。ステップ75で例えば、中間層のi番目のユニット
の出力yi(2)はトレイのi番目に出力される。そし
て処理が終わる。以上の前向き処理を入力層、中間層、
出力層に対して行うことになる。このようにして各層の
前向き処理が終了する。すなわちニューロン単体のシミ
ュレーションに必要な処理は第5図(B)の式で示され
る演算で、その内容は重みと入力ベクトルとの内積演算
及びその演算結果に対するシグモイド関数値の計算であ
り、その関数値の計算はシグモイド関数ユニット101
により実現される。従って、ネットワーク中のある1層
の処理は第5図(C)に示すように、そのニューロン単
体の演算をその層内の全ニューロン分行うことである。
従って内積演算は各ニューロンi番目とするの結合係数
ベクトルを並べた行列W (I!.) = (WIJ 
(ffi) :lと、その層への入力を並べたベクトル
x (j2) 一(XJ(I!.))の積のベクトル tJ (f) = (ui (f) )となり、これは
本発明の第3の実施例で説明した方法で実行可能となる
。またシグモイド関数演算は各シグモイド関数ユニツ}
101が積ベクトルの各要素、ut(p)を入力し、対
応する関数値Y1(f)=f (Ut (f))を出力
することによってなされる。継続する層すなわち、第(
l+1)層が存在する場合は、その各関数値出力Yi(
/!)を各トレイに書き込み、第(f+1)層の処理に
おいてはこれを入力として以上の過程を繰り返す。
次に第5図(A)のニューロコンピュータを用いて学習
動作、すなわちバックブロパゲーションアルゴリズムを
実行する場合について説明する。
第5図(E)は第4の実施例の学習処理フローチャート
である。ニューロコンピュータにおける学習とはネット
ワークが所望の入出力関係を満たすようになるまで各ニ
ューロンの重みを修正することである。学習方法は所望
の入力信号ベクトルと教師信号ベクトルとの対を複数個
、すなわち教師信号の集合分だけ用意し、その中から1
対を選び、その入力信号I,を学習対象ネットワークに
入力し、入力に対するネットワークの出力と正しい出力
信号、すなわちその入力信号に対応した教師信号○,と
を比較する。この差を誤差と称するが、その誤差、及び
この時の入出力信号の値を基?、各ニューロンの重みを
修正することになる。
この過程を教師信号の集合中の全要素にわたり学習が収
束するまで繰り返すものである。すなわち、入力パター
ンの数の分だけ、すべて重み値として分布的に記憶する
ことになる。この後ろ向き処理と呼ばれる重みの修正過
程において出力層で得られた誤差を途中で変形しながら
入力層に向け通常の信号の流れる向きとは逆方向に伝播
させる。これがバックプロパゲーションのアルゴリズム
である。
まず前記誤差Dを以下のように再帰的に定義する。Di
  (I!.)は第1層のi番目のニューロンから逆向
きに伝播される誤差、Lはネットワークの層数である。
Di (L) 一V  (Ui (L))(Yi (L
)−Opi)       (最終層)(1)Di  
(42−1)=f’  (Ui (42−1))Σ,8
1,■j,Wj i (j2) Dj (A)(A=2
,  ・ ・ ・,L)    (2)(i=1,  
・ ・ ・,  N (f) )ここでf’  (U)
はシグモイド関数f (X)のXに対する微係数r’ 
 (x)のX=Uの時の値であり、例えば f (X) =tanhX            (
3)ならば、 f ’  (X) =d (tanhX) /d X=
 1−tanh2X=1−f2 (X)       
  (4)であるから、 r′ (Ui)=1−f2 (Ui)=1−Yi”(5
) である。
このDi(!:Yiを基に、以下にように重みを更新す
る。基本的には次の式を用いる。ここでηは重みを更新
する刻み巾であり、小さければ学習安定に収束する収束
が遅くなり、大きすぎると収束ひなくなるという性質を
持ったバラメタである。
Wi j (j2) (t”’  一Wi j  (/
!) (L)十ΔW i j (42) LL’   
    (6)ΔWij(41!)(Lゝ 一ηDi(
e)Yj(ffi−1)      (f=2,  ・
・・,L)(7)しかし、次に式も良く用いられている
。これは上式ノΔWi j (ff) ” を1次にデ
ジタルローバスフィルタに通したことになっており、α
はその時定数を決めるパラメタである。
ΔWi j  (e) (L″1〉=ηDi(j!)Y
j(1−1)+αΔWi j (j2) ”     
 (8)この後ろ向き処理の過程において必要となる演
算はベクトル間の演算、或いは行列とベクトルとの演算
であり、特にその中心となるのは各層のニューロンの重
みを要素とする重み行列Wの転置行列W7と前記誤差ベ
クトルDJ (−e)との乗算である。この誤差ベクト
ルは工層内に複数個のニューロンがある一般の場合、誤
差はベクトルとなる.第5図(E)の左のフローチャー
トを説明する。
1層分の前向きの処理と後向きの処理が行われる。まず
、入力データIpをシフトレジスタ上にセットし、1層
分の前向き処理をシステムで行う。
これは各層で行われるため、この前向き処理を層の数分
だけ繰り返す。すると出力データOpが出力されるので
、これをシフトレジスタ上にセットする。そして、ステ
ップ7つから以下を出力層のユニット分だけ並列に実行
する。すなわち誤差D,(L)=Yi (L)  Op
 (i)を計算し、この誤差をトレイのi番目にセット
する。そして出力層から入力層に向かって各層毎に後向
き処理を行う。
この後向き処理は第5図(E)の右上側に示されている
。第L番目の層に関して、この層の数はN(l)である
からシフトレジスタ長をN (f)にする。そして以下
の動作をこの前の層のユニット数だけ並列に実行する。
すなわち、上記(2)式を、ステップ83において実行
する。ここで重要なのは重みはwJz(z)となってお
り、これは重み行列の転置行列WTの要素になっている
。そしてステップ84において、上記(6), (7)
あるいは(8)式を計算し、重みの更新を行う。ステッ
プ85で、求まった誤差D.(f−1)をトレイのi番
目に出力する。これは次の誤差を計算するため、ステッ
プ84の動作に必要となる。第5図(A)の右下は第5
図(E)の左のフローチャート、すなわち前向き処理と
後向き処理の連続処理を学習が習得するまで繰り返すこ
とを意味するフローチャートである。また、このような
処理において重みの更新と学習を安定にするために重み
の修正量の平滑化等の処理があるが、これらはいずれも
行列のスカラ倍及び行列同士の加減算からなり、やはり
、本ニューロコンピュータにおいて行える。またシグモ
イド関数ユニット101はハードウエアで実現するもの
としているが、ソフトウエアで実現してもよい。また、
学習の終了の反転手段103はホストコンピュータ上の
ソフトウエアで実現してもよい。
以上のニューロコンピュータをさらに第5図(F)を用
いて説明する。第5図(F)はエラーバックプロパゲー
ションの学習を行う時の処理フロー図である。ここでは
、ベクトル表示を用いている。同図においてX (/!
)は第l層のニューロンベクトル、Wは同しく結合係数
、すなわち重み行列である。rはシグモイド関数e、(
f)は第乏層の出力側から逆向きに伝播してきた誤差ベ
クトル、ΔWは重みの修正量である。入力信号が与えら
れると、まず、3層である場合には、入力層はないもの
とすれば、隠れ層の前向き処理を行う。
それがu=Wx(f)である。このUに非線形関数を施
せば、次の層、すなわち(j2+1)l’iJの入力と
なる。これは出力層の入力であるから、その前向き処理
を行う。そして教師信号を入力し、後向き処理になる。
出力層においては教師信号と出力信号の誤差eをrの微
分を掛けて後向き処理にする。また中間層等の間の誤差
は逆伝播してくる誤差信号に微分をかけた変数に重み行
列の転置行列W7をかけて求められる。誤差ベクトルの
各要素にシグモイドの微分をかけた値に前のWTの要素
を掛けてこれよりΔWを求め、Wを更新すればよい。こ
のようにして、出力層の後向き処理、及び隠れ層の後向
き処理が行われる。前向き処理で行う演算は、重み行列
Wと入力ベクトルXとの積、この結果ベクトルの各要素
のシグモイド関数の値の計算である。この計算は各ニュ
ーロンで並列に計算できる。また後向き処理でも仕事は
大きく分けて2あり、1つ目は教師信号と出力信号との
誤差を順次変形しながら、後から前へ逆向きに伝播する
こと、また2つ目はその誤差を基に重みを修正すること
である。この逆向きの計算では重み行列Wの転置行列w
Tによる乗算が必要になる。転置行列WTとベクトルの
積は前の実施例で述べている。すなわちバックブロバゲ
ーションの学習を実現する再の重要な点は重み行列の転
置行列WTとベクトル乗算の効率な実現方法である。
さらに第5図(G)と(H)を用いて前向き積和計算、
及び後向き積和計算の実施例を説明する.前向き積和演
算は行列×ベクトルの計算で、特に行列は重み行列Wで
ある。本発明で、行列ベクトル積Ll=WXを計算する
場合、例えば、次の式・ ・ ・(9) に対して、重み行列の行とベクトルXとの積が同時に行
われる。この処理方式を第7図(鎖を用いて?明する。
重み行列Wは長方行列である。例えば、3×4の行列で
ある。ベクトル真の各要素はトレイ上に入力される。T
1の時刻において、X,とW.、X2とW2■、X3と
W33が各々のユニットで計算される。T2に移るとベ
クトルXの各要素は上に巡回シフトする。T2において
W,2とX2との積がU+に足される。したがってU1
はこの時刻にはX IX W + + + X z X
 W +。となる。また、第2のユニットではW23と
X3が掛けられ、第3番目のユニットではW,,XX4
が掛けられる。T,において、W,3とX3が掛けられ
Ulに足し込まれる。W24とX4が掛けられ、U2に
加えられる.W31とX1が掛けられU3に足し込まれ
る。この時X2は演算の対象からはずされている。T4
において、W,4とXa 、Wz+とX I, W3■
とX2がそれぞれ同時に掛けられU+ 、Uz 、U3
にそれぞれ足し込まれる。この場合、X3は演算の対象
外となっている。この演算の対象外を考慮することによ
って長方行列とベクトルとの積が実行される。
?の部分ベクトルWi2はPE−■のローカルメモリ上
にWiiが先頭になるようにスキューされて格納されて
いる。Xiはトレイにのってリング上を反時計回りに一
回転する。UiはPE−,内部のレジスタ上に累積され
る。
左端の状態でUi=Oの状態からスタートする。
PE−zは自分の目の前にあるXjとWijと掛け合わ
せ、その結果をUiに加算する。同時にXjは隣のトレ
イに隣接される(リング上を反時計回りに循環する)。
これを4回繰り返すと全てのUiが同時に求まる。
Witがスキューされていること、χiが全てトレイ中
にある状態からスタートすること、Uiが全て同時に求
まる。
第5図(H)は後向き積和計算の説明である。
これは転置行列と行ベクトル積、e=W”vを計算する
時のタイミング図である。この場合、ベクトルVは前の
層の誤差ベクトルに非線形関数の微分を掛けた要素から
なるベクトルである。eは求めらようとする次の層での
逆伝播用の誤差へクトルである。本発明で重要なことは
、転置行列Wtであっても、前向き積和計算において利
用されるメモリ上のWと同じ配置にしたままで演算でき
ることである。
すなわち本発明では求めるべきCのベクトルの巡回シフ
トによってなされる。演算するべき転置行列W”とベク
トルVとの式は00)式に従う。
上の式において示されるように、行列Wは転置されしか
も、長方行列である。e,はW.Xv,+W21XV2
 +W31XVlである。この演算を行うために、第5
図(H)において、時間区域T+においては第1のユニ
ット(DSP)において、W11とv1の積が演算され
ている。これがOであるe,に差し込まれる。そして、
巡回シフトするとT2に移るが、elはT2時刻におい
ては演算?対象になっていない。モしてT3になると、
3番目のユニットにおいて演算対象となっている。
すなわちW3Iにv3を掛けた値が前の値に足し込まれ
るため、W,,Xv.に足し込まれる。そのため時間区
域T3においては、e,の結果はW11×v,+W3■
XV,となる。モしてT4に移ると、e1は巡回シフト
として、第2番目のユニットで演算対象となる。ここで
、e,にはW2,XV2が加えられるため、00式の行
列の第1行目とベクトルVとの内積演算が実行され、そ
の演算結果がe,に格納されることになる。
同様に第2行目とベクトルとの積はe2を追えばよい。
T1時刻にはW22XV2 、T2にはWI2XVI,
Tlでは、e2が遊びになり、T4でW32XV.の積
が求まれ、各々の積の和として計算される。W7の第3
行目とベクトルVとの積はe3を追えばよい。TIにお
いてはW33Xv3 、T2においてはそれにW23X
V2が足し込まれ、T3において、更にW,.Xv,が
足し込まれる。T4はe4は遊びとなる。WTの第4行
目とベクトル■との積はe4を追えばよい。T+時刻で
はe4は遊びである。T2ではWz4XVi 、T3で
はW24Xv2が足し込まれ、T4において更にW,4
Xv,が足し込まれて、計算ができる。このように本発
明では、Wの部分ベクトルWi9は前と同様PE.のロ
ーカル目上にWiiが先頭になるようにスキューされて
格納されている。前と入れ替わるのはeiとViである
。つまり、eiはトレイ上を反時計回りに循環しながら
累積され、ViはPE−1内部に常駐する。
左端の状態でe j=oからスタートする。PE−tは
ViとWijとを掛け合わせ、その結果を自分の目の前
にあるejに加え込む。同時にこの更新されたejは隣
のトレイに転送される(リング上を反時計回りに循環す
る)。これを4回繰り返すと全てのejが同時に求まる
このように本発明のニューロコンピュータは層が何層で
あっても実現でき、学習アルゴリズムの自由度が高いと
いう柔軟性を持つばかりでなく、DSPの速度そのまま
を利用でき、しかもそのDSPの演算においてオーバヘ
ッドがなく、高速性があり、しかもDSPによるSIM
Dが実行できる。
第6図は本発明の第5の実施例説明図であり、アナログ
データによる行列の積を求めるものである。図中、第2
図で示したものと同一のものは同一の記号で示してあり
、1dはデータ処理ユニットlの処理装置であり、例え
ばアナログ乗算器1eと積分器1fで構成され、2dは
トレイ2のデータ保持回路であり、例えばサンプル/ホ
ールド回路2rで構成され、2eはトレイ2のデータ転
送回路であり、例えばアナログスイッチ2gとバッファ
アンプ2hで構成され、6はトレイ2にデータを設定す
る手段であり、例えばアナログスイッチ6dで構成され
る。
本実施例の動作は本発明の原理図(第1図)で説明した
動作と同じである。
第7図は本発明の第6の実施例説明図であり、帯行列と
ベクトルとの乗算を示している。図中、第2図で示した
ものと同一のものは同一の記号で示してある。
本実施例の動作を第7図(B)を参照しつつ説明する。
本発明では、m×n (n≧m≧1)で巾kの帯行列A
と要素数nのベクトルXとの乗算結果(要素数mのベク
トル!)を求める場合において、第7図(A)の如く、
各々2つの入力を持ち乗算機能と概乗算結果の累積機能
を有するm個のデータ処理ユニット1と、n個のトレイ
2と、前記各データ処理ユニット1にせとぞくされた入
力データ供給手段とから成る構成に於いて、第7図(B
)に示す手順で、第7図(C)及び第7図(D)のよう
な時系列で処理をするようにしている。従って、巾kの
帯行列とベクトルとの乗算がkに比例する処理時間で実
行できる。
本実施例に於いて重要な事は、ベクトルXを1回転させ
ない事、及びベクトル見をシフトレジスタ3上にセット
する際に、第1の実施例等と異なり、頂度帯が始まる位
置にずらしておくことである。すなわち、帯の開始位置
から処理を開始する場合は、ある方向にずらしながら積
和演算を行えばkに比例する時間で処理が終了する。し
かし、図示しないが何らかの事情で帯の途中に配置した
状態から処理を開始する場合は、始めにベクトル見を一
端までずらせばよいことは明らかであり、その場合、シ
フトレジスタ3が双方向にシフト可能であることが意味
を持つのである。
即ち、例えば帯の中央から処理を開始する場合は、初め
に右にk/2(小数点以下切り捨て)だけずらし、以後
逆方向(この場合左)にずらしながら積和演算を行えば
、合計372kに比例する時間で処理が終了する。
もし、シフトレジスタ3が双方向にシフト可能でなけれ
ば、ベクトル見を1回転させねばならないため、帯行列
の巾kではなくその大きさnlこ比例する時間が必要に
なる。大規模な帯行列の於いては、この差は非常に大き
く、帯行列とベクトルとの乗算が帯行列の巾kに比例す
る処理時間で実行可能となることは本発明の方式の利点
である。
第8図はトレイの構造を具体的に示す。
トレイは基本的には単なる1語のラッチであるが、DS
Pからのアクセスと、隣のトレイへの転送を1サイクル
で実行できる(ポストシフト)。
機能の切り替えは、アドレス線の下位ビットにより、デ
ータのアクセスと同時に行い、速度を向上させている。
一つのトレイはゲートアレイで約1 2 0 0 Ba
sicセルの規模であり、■チップに2〜4個入れるこ
とも可能である。
また、トレイ中にワークレジスタを数ワード内蔵するこ
とも可能である。
第9図は本発明の実施例を用いて、実際に構成されたニ
ューロコンピュータのブロック図である。
Sandyの基本構或はDSPの一次元トーラス(リン
グ)結合によるSIMD型マルチプロセッサである。
特徴的なのは、結合トボロジーや動作は1次元シストリ
ックアレイと類似しているにも関わらず、SIMDとし
て動作する事である。
各DSPと双方向バスで接続されている“トレイ”は、
転送機能を有するラッチであり、相互にリング状に接続
され、全体でサイクリックシフトレジスタを構或してい
る。以後このシフトレジスタをリングと呼ぶ。
各DSPは2K語の内部メモリと64語の外付けRAM
を持ち、内部メモリは1サイクルで、外部メモリはl〜
2サイクルでアクセスできる。
外付けRAMは、プログラムやデータの初期ロード用に
、共通バスでホストコンピュータのVMEWバスに接続
される。外部入力もパンファメモリを介してホストコン
ピュータに接続されている。
第10図は本発明の実施例における学習時の時間空間チ
ャートであり、縦方向はプロセッサの数を示し、横方向
は時間を示す。■は入力層のプロセッサの数、Hは隠れ
層のプロセッサの数、■はプロセッサの積和演算の時間
に対応する。
入力信号が隠れ層の前向き積和に要する時間は、入力層
のプロセッサの数1と1つのプロセッサの積和に対応す
る時間Iとの積に比例する。次に、シグモイドの計算が
行われる。出力層においても出力層の前向き積和(2H
r)とシグモイドが行ねれる。ここで、出力層のプロセ
ッサの数が隠れ層のプロセッサの数より少ないので、リ
ングの大きさ自体も小さくなる。次ぎに教師信号入力と
受信し、誤差計算を行い、誤差のバック・プロパゲーシ
ョンを行う。なお、この誤差計算は出力層のシグモイド
における誤差計算も服務出力層の後向き積和を行い、出
力層の重み更新を勾配ベクトル計算とローパスフィルタ
を介して行う。そして、隠れ層のシグモイドによる誤差
計算を経て、隠れ層においては、後向き積和は行わず隠
れ層の重み更新のみを行う。
〔発明の効果〕
以上説明した様に、本発明によれば従来の方法より広い
範囲の処理に対して、データ処理に伴うデータ転送によ
るオーバヘッド無しにデータを並列に処理出来る効果を
奏し、データ処理ユニットの台数に比例した高速なデー
タ処理が実現出来ることにより、行列演算あるいはニュ
ーロコンピュータ演算を行うデータ処理装置の性能向上
に寄与するところが大きい。
【図面の簡単な説明】
第1図(A)は、本発明の原理構成図、第1図(B)は
、本発明の動作フローチャート、第1図(C)は、本発
明の動作概要図、第1図(D)は、本発明の動作タイム
チャート、第2図(A)は、第1の実施例の構成図、第
2図(B)は、第1の実施例の動作フローチャート、 第2図(C)は、第1の実施例の動作概要図、第2図(
D)は、第1の実施例の動作タイムチャート、 第3図(A)は、第2の実施例の構或図、第3図(B)
は、第2の実施例の動作フローチャート、 第3図(C)は、第2の実施例の動作概要図、第3図(
D)は、第2の実施例の動作タイムチャート、 第4図(A)は、第3の実施例の構或図、第4図(B)
は、第3の実施例の動作フローチャート、 第4図(C)は、第3の実施例の動作概要図、第4図(
D)は、第3の実施例の動作タイムチャート、 第4図(E)は、第3の実施例の詳細動作フローチャー
ト、 第5図(A)は、第4の実施例の構成図、第5図(B)
は、第4の実施例のニューロンモデル、 第5図(C)は、第4の実施例のネットワーク、第5図
(D)は、第4の実施例の前向き処理フローチャート、 第5図(E)は、第4の実施例の学習処理フローチャー
ト、 第5図(F)は、Sandyでエラーバックプロパゲー
ション学習を行うときの処理フローチャート、第5図(
G)は、Sandyで行列ベクトル積む=Wxを計算す
るときのタイムチャート、第5図(H)は、転置行列で
の行列ベクトル積e=W”vを計算するときのタイムチ
ャート、第6図(A)は、第5の実施例の構成図、第6
図(B)は、第5の実施例の動作フローチャート、 第6図(C)は、第5の実施例の動作概要図、第6図(
D)は、第5の実施例の動作タイムチャート、 第7図(A)は、第6の実施例の構或図、第7図(B)
は、第6の実施例の動作フローチャート、 第7図(C)は、第6の実施例の動作概要図、第7図(
D)は、第6の実施例の動作タイムチャート、 第8図は、トレイの構造を具体的に示す図、第9図は、
本発明の実施例を用いて実際に構成されたニューロコン
ピュータのブロック図、第10図は、本発明の実施例に
おける学習時の時間空間チャート、 第11図(A)は、共通バスSIMD方式の原理構成図
、 第11図(B)は、共通バスSMD方式による行列ベク
トル積の動作フローチャート、第12図(A)及び第1
2図(B)は、リングシストリック方式による行列ベク
トル積の動作原理図、 第12(C)は、リングシストリック方式による行列ベ
クトル積の動作原理図である。 1・・・データ処理ユニット、 2・・・トレイ、 3・・・シフトレジスタ、 4・・・記憶装置、 5・・・同期手段、 6・・・データ設定手段、 7・・・長さ変更手段、 1l・・・データ処理ユニソト1の入力、12・・・デ
ータ処理ユニット1の第2の入力、21・・・トレイ2
の第1の入力、 22・・・トレイニの第1の出力、 23・・・トレイ2の第2の出力、 24・・・トレイ2の第2の入力、 82 83 84 85 91 92 93 1の第1の入力、 lの第1の出力、 1の第2の入力、 1の第2の出力、 ・ PE9 ・ PE9 ・ PE9 ・ PE9 ・ PE, ・PE9 1の入出力、 ・共通バス.

Claims (1)

  1. 【特許請求の範囲】 1)各々少なくとも一つの入力(11)を持つ複数個の
    データ処理ユニット(1)と、 各々第1の入力(21)及び出力(22)を持ちかつ各
    々データ保持及びデータ転送を行う複数個のトレイ(2
    )であって、前記トレイ(2)の全部又はその一部が各
    々前記データ処理ユニット(1)の第1の入力(11)
    に接続された第2の出力(23)を有するものと、 前記接続するトレイ(2)の第1の入力(21)及び出
    力(22)が接続されて成るシフト手段(3)とを具備
    し、 前記シフト手段(3)上のデータ転送と、前記トレイ(
    2)と前記データ処理ユニット(1)間のデータ転送と
    、前記データ処理ユニット(1)によるデータ処理とを
    同期して行うことにより、行列演算あるいはニューロコ
    ンピュータ演算を行うことを特徴とする並列データ処理
    方式。 2)前記シフト手段(3)はサイクリックシフトレジス
    タであることを特徴とする特許請求の範囲第1項記載の
    並列データ処理方式。 3)前記シフト手段(3)の長さを変更する手段を有す
    ことを特徴とする特許請求の範囲第1項又は第2項に記
    載の並列データ処理方式。 4)前記シフト手段(3)の長さを変更する手段は、入
    力切り換え手段であることを特徴とする特許請求の範囲
    第3項記載の並列データ処理方式。 5)前記シフト手段(3)の長さを変更する手段は、外
    部のデータ供給手段と、入力選択手段とからなることを
    特徴とする特許請求の範囲第3項記載の並列データ処理
    方式。 6)前記データ処理ユニット(1)が第1の出力(21
    )を持ち、前記トレイ(2)が該第1の出力(21)に
    接続された第2の入力(24)を持ち、前記データ処理
    ユニット(1)から前記トレイ(2)にデータを書き込
    む手段を有することを特徴とする特許請求の範囲第1項
    乃至第5項のいずれかに記載の並列データ処理方式。 7)前記データ処理ユニット(1)と前記トレイ(2)
    間のデータ転送路は入力と出力で共通に利用するバスで
    あることを特徴とする特許請求の範囲第6項記載の並列
    データ処理方式。 8)データの処理結果を更に処理するに際し、前記処理
    結果を前記書き込み手段を用いて前記トレイ(2)に転
    送することを特徴とする特許請求の範囲第6項又は第7
    項に記載の並列データ処理方式。 9)前記トレイ(2)が各々相互に接続された第3の入
    力(25)及び出力(26)を備え、前記シフト手段(
    3)は双方向シフトレジスタであることを特徴とする特
    許請求の範囲第1項乃至第8項のいずれかに記載の並列
    データ処理方式。 10)前記双方向シフトレジスタを構成する前記各トレ
    イ(2)間のデータ転送路は入力と出力で共通に利用さ
    れるバスであることを特徴とする特許請求の範囲第9項
    記載の並列データ処理方式。 11)前記双方向シフトレジスタ上をデータを双方向に
    転送することを特徴とする特許請求の範囲第9項又は第
    10項に記載の並列データ処理方式。 12)ベクトルの各要素を巡回させるシフト手段であっ
    て、内部はその各要素を保持する機能および転送機能を
    有するトレイ手段(2)と、 前記行列の各行に対応して存在し、少なくとも2入力間
    の乗算とその乗算結果の累積機能を有するデータ処理ユ
    ニット手段(1)と、 前記各データ処理ユニット毎に存在し、前記行列の各行
    の要素を順番に読み出すことが可能な記憶手段(4)と
    を有し、 データ処理ユニット手段(1)と、データを巡回シフト
    させる前記トレイ手段(2)とを分離することにより、
    各データ処理ユニット手段(1)が、巡回シフトしてく
    るベクトルの要素と対応する前記記憶手段(4)からの
    行列要素とを乗算し、その乗算結果を累積することによ
    り、行と列の数が異なる長方行列とベクトルとの積を演
    算することにより行う行列演算あるいはニューロコンピ
    ュータ演算を行うことを特徴とする並列データ処理方式
    。 13)前記トレイ手段(2)は、巡回シフトの長さを変
    更するためのバイパス手段(7)を有することを特徴と
    する請求項12記載の並列データ処理方式。 14)前記トレイ手段(2)内のシフトレジスタの長さ
    をnにし、そのnの数に等しい要素からなるベクトルを
    前記各トレイにセットし、前記データ処理ユニット手段
    (1)のそれぞれが対応するトレイと記憶手段(4)と
    からそれぞれベクトルの要素及び行列の要素とを受け取
    り掛け合わせ累積し、その後、そのベクトルの要素を巡
    回する動作をn回繰り返した後、結果をトレイ手段(2
    )に転送し、その巡回シフトのシフト長をnからmにし
    、同様な動作をm回繰り返すことにより、長方行列とベ
    クトルとの積にさらに異なる長方行列を掛けることを特
    徴とする請求項12記載の並列データ処理方式。 15)長方行列の転置行列とベクトルとの積を計算する
    場合、その行列を構成する部分行ベクトルを前記各デー
    タ処理ユニット手段(1)に接続された記憶手段(4)
    中に格納し、演算途中に生じる部分和を前記トレイ手段
    (2)の各トレイ中のデータ保持回路上に累積し、前記
    各トレイ上のデータと記憶手段(4)からのデータとの
    積をとってその部分和をトレイ上に転送し、巡回シフト
    することにより、前記転置行列とベクトルとの積を計算
    することを可能とする請求項12記載の並列データ処理
    方式。 16)ニューラルネットにおいて、前記長方行列の各行
    の要素をニューロンモデルに接続する結合枝の重みに対
    応させたとき、前記データ処理ユニット手段(1)は、
    前記トレイ手段(2)の各データ保持回路にある入力変
    数のそれぞれと対応する記憶手段(4)からの前記重み
    とを掛け、トレイ手段(2)内で巡回シフトする動作を
    繰り返すことにより、そのニューロンモデルに接続され
    た結合枝の重みとその結合枝への入力変数との積の総和
    を求め、その後、非線形関数を施す処理部(103)を
    有し、ニューラルネットの前向き処理を実行することを
    可能とする事を特徴とする請求項12記載の並列データ
    処理方式。17)前記非線形関数はシグモイド関数であ
    ることを特徴とする請求項16記載の並列データ処理方
    式。 18)前記ニューラルネットは、少なくとも3層構造の
    階層型ニューラルネットワークであることを特徴とする
    請求項12記載の並列データ処理方式。 19)階層型ニューラルネットネットワークにおける逆
    伝播学習則の後ろ向き処理であって、出力層からの出力
    信号と教師信号との誤差を入力層に向けて通常の信号の
    流れる向きと逆方向に伝播させる処理において、逆伝播
    して来る誤差信号を要素とするベクトルと前記前向き処
    理において重みを要素とする重み係数行列Wの転置行列
    W^Tを請求項15記載の方式、すなわち、行列の転置
    行列とベクトルとの積を求める方式に従って、演算途中
    の部分和をトレイ手段(2)上で巡回シフトしながら、
    記憶手段(4)に格納された重み係数行列の各要素とデ
    ータ処理ユニット手段(1)内の誤差ベクトルとの各要
    素との積を求めて部分和に加え、その結果を部分和とし
    て前記トレイ手段(2)上に残すことにより、転置行列
    ×ベクトルとの積を求める処理を後向き積和計算として
    実行することにより逆伝播学習則を実行することを可能
    とすることを特徴とする請求項12〜18記載の並列デ
    ータ処理方式。 20)前記データ処理ユニット手段(1)の処理装置は
    、データがアナログである場合には、アナログ乗算器と
    、積分器で構成され、前記トレイ手段(2)の各トレイ
    のデータ保持回路はサンプルホールド回路で構成され、
    トレイ手段(2)のデータ転送回路はアナログスイッチ
    とバッファアンプで構成されることを特徴とする請求項
    1〜19記載の並列データ処理方式。 21)行列がm×nで幅kの帯行列Aと要素数nとのベ
    クトルxとの乗算を行う場合、前記ベクトルxを巡回シ
    フトによって1回転させないで、ベクトルxの要素トレ
    イ手段(2)内でシフトする際に、行列の帯が始まる始
    点を任意に指定できることを特徴とする請求項1〜20
    記載の並列データ処理方式。 22)前記シフトの方向は双方向にできることを特徴と
    する請求項21記載の並列データ処理方式。 23)前記データ処理ユニット手段(1)とデータ保持
    機能を有するトレイの2つを分離することにより、トレ
    イ手段(2)間のデータ転送と、データ処理ユニット手
    段(1)によるデータ処理とを同時並行的に行い、前記
    トレイ手段(2)間のデータ転送に要する時間を前記デ
    ータ処理ユニット手段(1)がデータ処理に有する時間
    よりも短くすることでデータ転送時間をデータ処理時間
    の影に隠すことを特徴とする請求項1〜22記載の並列
    データ処理方式。
JP1243972A 1989-09-20 1989-09-20 並列データ処理方式 Expired - Fee Related JP2825133B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP1243972A JP2825133B2 (ja) 1989-09-20 1989-09-20 並列データ処理方式
DE69032259T DE69032259T2 (de) 1989-09-20 1990-09-20 Paralleldatenverarbeitungsanlage
EP90310302A EP0421639B1 (en) 1989-09-20 1990-09-20 Parallel data processing system
AU63030/90A AU641418B2 (en) 1989-09-20 1990-09-20 A parallel data processing system for processing and transmitting data concurrently
US08/227,472 US5600843A (en) 1989-09-20 1994-04-14 Ring systolic array system for synchronously performing matrix/neuron computation using data transferred through cyclic shift register connected in cascade of trays

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1243972A JP2825133B2 (ja) 1989-09-20 1989-09-20 並列データ処理方式

Publications (2)

Publication Number Publication Date
JPH03105584A true JPH03105584A (ja) 1991-05-02
JP2825133B2 JP2825133B2 (ja) 1998-11-18

Family

ID=17111792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1243972A Expired - Fee Related JP2825133B2 (ja) 1989-09-20 1989-09-20 並列データ処理方式

Country Status (1)

Country Link
JP (1) JP2825133B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5627944A (en) * 1993-06-18 1997-05-06 Fujitsu Limited Parallel data processing system
US5797027A (en) * 1996-02-22 1998-08-18 Sharp Kubushiki Kaisha Data processing device and data processing method
JP2008090769A (ja) * 2006-10-05 2008-04-17 Nippon Telegr & Teleph Corp <Ntt> 並列演算方法、演算装置、および演算装置用プログラム
CN111052111A (zh) * 2017-09-14 2020-04-21 三菱电机株式会社 运算电路、运算方法以及程序

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5627944A (en) * 1993-06-18 1997-05-06 Fujitsu Limited Parallel data processing system
US5797027A (en) * 1996-02-22 1998-08-18 Sharp Kubushiki Kaisha Data processing device and data processing method
JP2008090769A (ja) * 2006-10-05 2008-04-17 Nippon Telegr & Teleph Corp <Ntt> 並列演算方法、演算装置、および演算装置用プログラム
CN111052111A (zh) * 2017-09-14 2020-04-21 三菱电机株式会社 运算电路、运算方法以及程序

Also Published As

Publication number Publication date
JP2825133B2 (ja) 1998-11-18

Similar Documents

Publication Publication Date Title
US5600843A (en) Ring systolic array system for synchronously performing matrix/neuron computation using data transferred through cyclic shift register connected in cascade of trays
US5506998A (en) Parallel data processing system using a plurality of processing elements to process data and a plurality of trays connected to some of the processing elements to store and transfer data
CN111897579B (zh) 图像数据处理方法、装置、计算机设备和存储介质
US4994982A (en) Neural network system and circuit for use therein
JPH04290155A (ja) 並列データ処理方式
CN110188870B (zh) 用于执行人工神经网络自学习运算的装置和方法
CN110826719B (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
CN110580519B (zh) 一种卷积运算装置及其方法
CN104145281A (zh) 神经网络计算装置和系统及其方法
JPH02170263A (ja) ニユーラルネツト信号処理プロセツサ
JP2666830B2 (ja) トライアングル・スケーラブル・ニューラル・アレイ・プロセッサ
JP7435602B2 (ja) 演算装置および演算システム
CN111985626B (zh) 一种加速rnn网络的系统、方法及存储介质
JPH06259585A (ja) ニューラルネットワーク装置
CN110673824A (zh) 矩阵向量乘电路以及循环神经网络硬件加速器
JPH06502265A (ja) 信号処理におけるマトリクス演算の計算回路装置
JPH03105584A (ja) 並列データ処理方式
CN112639836A (zh) 数据处理装置、电子设备和数据处理方法
US5627944A (en) Parallel data processing system
Fox et al. Optimal communication algorithms for regular decompositions on the hypercube
JPH03105583A (ja) 並列データ処理方式
JPH09212489A (ja) 対称行列の固有値問題を解く並列処理装置および方法
JPH03105582A (ja) 並列データ処理方式
US20220036196A1 (en) Reconfigurable computing architecture for implementing artificial neural networks
JPH03105581A (ja) 並列データ処理方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees