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

並列データ処理方式

Info

Publication number
JPH03105583A
JPH03105583A JP1243971A JP24397189A JPH03105583A JP H03105583 A JPH03105583 A JP H03105583A JP 1243971 A JP1243971 A JP 1243971A JP 24397189 A JP24397189 A JP 24397189A JP H03105583 A JPH03105583 A JP H03105583A
Authority
JP
Japan
Prior art keywords
data processing
tray
data
product
input
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
JP1243971A
Other languages
English (en)
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 JP1243971A priority Critical patent/JPH03105583A/ja
Priority to EP90310302A priority patent/EP0421639B1/en
Priority to DE69032259T priority patent/DE69032259T2/de
Priority to AU63030/90A priority patent/AU641418B2/en
Publication of JPH03105583A publication Critical patent/JPH03105583A/ja
Priority to US08/227,472 priority patent/US5600843A/en
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔概   要〕 複数個のデータ処理ユニットを同期的に用いてデータを
処理する並列データ処理方式に関し、リングシストリッ
クアレイ方式や共通バス結合型S I M D (Si
ngle Instruction Multi Da
ta )結合方式と同程度なハードウエア構成で、デー
タ転送によるオーバヘッドを減少せしめ、特に、長方形
行列とベクトルとの積を求めるような処理に対しても、
本来の並列度を最大限利用できるようにして良好な台数
効果を得ることにより、行列ベクトル積あるいはその転
置行列ベクトル積を求めることを目的とし、 各々少なくとも一つの入力を持つ複数個のデータ処理ユ
ニットと、各々第1の入力及び出力を持ちかつ各々デー
タ保持及びデータ転送を行う複数個のトレイであって、
前記トレイの全部又はその一部が各々前記データ処理ユ
ニットの第1の入力に接続された第2の出力を有するも
のと、前記接続するトレイの第1の入力及び出力が接続
されて成るシフト手段とを具備し、前記シフト手段上の
データ転送と、前記トレイと前記データ処理ユニット間
のデータ転送と、前記データ処理ユニ・ントによるデー
タ処理とを同期して行うことにより、行列ベクトル積あ
るいはその転置行列ベクトル積を求めるように構成する
〔産業上の利用分野〕
本発明は並列データ処理方式に係り、更に詳しくは、複
数個のデータ処理ユニットを伺期的に用いてデータを処
理する並列データ処理方式に関する。
近年、電子計算機或いはデジタル信号処理装置等のシス
テムにおいて、データ処理の適用分野の拡大に伴い、処
理されるデータの量が膨大になり、特に画像処理或いは
音声処理等の分野では高速なデータ処理を行う必要があ
り、そのため、複数個のデータ処理ユニットを同期的に
用いてデータを処理するデータ処理の並列性の利用が重
要となる。
一般に、複数の処理ユニットを用いた処理において重要
な概念に台数効果がある。これは用意されたデータ処理
ユニットの台数に比例したデータ処理速度の向上が得ら
れることを意味するが、並列処理方式においては良好な
台数効果を得ることが非常に重要となる。
台数効果が悪化する主要な原因は、問題そのものの並列
度による限界を別にすれば、データ処理に伴うデータ転
送に要する時間が本来のデータ処理に要する時間に加算
されてトータルとしての処理時間が引き延ばされること
にある。従って、台数効果の向上にはデータ伝送路の容
量をフルに活用することが有効であるが、これはなかな
か難しい。
しかし、処理が規則的な場合には、この規則性を利用し
て台数効果を上げることが可能となる。
データをシストリックアレイ、すなわち、巡回的にデー
タを流し、2つのデータがその流れにおいてそろったと
ころで演算を行うようにする。処理が規則的なことを利
用する並列処理がシストリックアレイ方式であり、この
中でリングシストリックアレイ方式と呼ばれる1次元の
シストリックアレイ方式は、複数個のデータ処理ユニッ
トを同期的に用いてシストリックなデータを処理する並
列データ処理方式であって実現が比較的容易である。
規則性のある処理として、ベクトルの内積演算を基本と
した行列演算や、ニューラルネットの積和演算に非線形
関数を介して出力する並列処理がある。
〔従来の技術〕
第11図(A)は従来の共通バス結合型並列方式の原理
構戒図である。同図において91はプロセッサエレメン
ト、4はメモリ、93は共通バス、92は共通バスに接
続されるバス、94は各プロセッサエレメントと、それ
に対応して接続されるメモリ4を接続する内部バスであ
る。この共通バス結合型並列方弐においては、プロセッ
サエレメント(以下PEと称す)間の通信が共通バス9
3を介して行われる。特定な時間区域には共通バスに乗
せるデータは■つであるため、共通バスによる通信は共
通バス全体にわたって同期をとる必要がある。
第11図(B)はこの共通バス結合型並列方式による行
列ベクトル積の動作フローチャートである。各PEは他
のPEからのデータXと内部レジスタのYとをかけ、そ
の積をYに足しこむ動作を行う。そのためフローチャー
トに示すように、i番目のPEに関して、その内部にあ
るレジスタの内容、すなわち、Yrの値をまずOにする
。そして以下をn@繰り返す。すなわち、共通パス93
にXjを与えるとi番目のPEは共通バスに接続された
バス92からの入力とメモリ4から内部バス94を介し
て与えられる入力を掛け合わせ、その積をYtに足し込
む。これを繰り返す。
第12図(A)は従来のリングシストリック方式の原理
説明図である。同図において20はプロセッサエレメン
ト(PE)である。各PEは巡回バス22によって接続
されている。また、21は係数Wljを格納するメモリ
である。W目,W,2,・・・.W3,などは係数行列
の要素であり、一般にWjJは行列のijt7.分であ
る。この係数行列Wと、ベクトJL/X= (XI ,
  X2 ,  X3 )を掛ける動作をこのリングシ
ストリック方式で行う場合、次のようにして行われる。
第12図(B)はプロセッサエレメントの第i番目の内
部構造である。同図において23は乗算器、24は加算
器、25はアキュムレータ(ACCL21は係数の要素
Wijを格納するレジスタ群である。このレジスタ群は
いわゆるFIFOであって、係数行列の第i行目に関す
る係数としてW{J、すなわちj番目の列の要素が出力
されようとしている状態である。このFIF○は出力さ
れた次のクロックでは巡回し、バス22を介して後ろ側
からまた入力される。従って図に示すように、W i 
l +  ・・・, W. J−.はすでに巡回されて
後側に格納されている状態となっている。
一方、ベクトルの各要素はバス22を介して入力される
。現在、要素Xjが入刀されている状態である。すでに
アキュムレータ25にはw,, X X ,+・・・+
WiJ−I XXJ−1の内積結果が格納されている。
これが今アキュムレータ25から出刀され、加算器24
の一方の入カに入力されている。
外部からのxjとFIFOがら出カされるwiJの積が
乗算器23によって乗算され、その結果が加算器24の
他方の入力に入力され、現在のアキュムレータ25の内
容とが加えられ、次のクロックで同じアキュムレータ2
5に加算される。この繰り返しによ゛って、係数行列W
の第i行目の行ベクトルと外部から与えらるXベクトル
との内積演算がW行される。なお、スイッチ(Swit
ch)はデータXtをスルーに外部に出すか、あるいは
内部に取り込み、アキュムレータ25にセットする場合
との選択を行うためのものである。このようなPEで、
行列×ベクトルの積を行う場合、第12図(A)に示す
ように、PE−1はまず、W + + トX ,?掛け
、次のクロック周期に、X2が右側のPE−2から流れ
込み、W+2がメモリ21から出力されるので、W1■
×X2が演算される。同様に次のクロックではWI3と
X3との積が実行され、このことにより係数行列の第l
列目とベクトルXとの積がPE−1において可能となる
。また、第2列目とベクトルとの積はPE−2において
行われる。
すなわち、W2■とx2を掛け、次のクロック周期に、
W23とX3を掛け、次のクロック周期においてW2,
と巡回的にもどってきたX1との積を行うことになる。
同様に、第3行目とベクトルとの積はW33とX3を掛
け、W31と巡回してくるX+ とを掛け、W32と巡
回して戻ってくるX2との積をとって内積演算を実行す
ることによって可能となる。従って、この動作において
、WllとX1との積、及びW22とX2、W33とX
3との積は同時に行えることになる。しかし、図に示す
ように、この同時性を実行するためには係数行列の要素
の並べ方にねじれが生じている。このようなリングシス
トリックアレイ方式においては、各PE間のデータ転送
と、各PEでのデータ処理を同期して実行することで、
データ転送路を有効に利用でき、従って良好な台数効果
を得ることができる。
第12図(C)は、第12図(A)のリングシストリッ
ク方式の構成を多段に組み合わせたのもであり、この構
成により、連続する行列とベクトルの積を行うことが可
能となる。このようなシストリンクアレイ方式は処理が
規則的であるため、データ伝送路の容量をフルに活用す
ることが可能であり、従って台数効果の向上が計れる。
〔発明が解決しようとする課題〕
第1I図(A)のような従来の共通バス結合の並列方式
においては、プロセッシングエレメント、すなわちPE
間の結合が共通バスによっているため、一時には1つの
データしか転送できない。また、共通バスによる結合は
共通バス全体にわたる同期をとらなければならない。従
って、従来の共通バス結合型並列方式においては良好な
台数効果を得られる処理の種類が少ないという問題が生
し、さらに共通バスによる結合は、結合されるPEの個
数の増加とともに共通バスが長くなり、共通バス全体に
わたる同期をとるのが難しくなるという問題、そして、
大規模並列には適さないという問題が生じていた。また
、第12図のような従来のリングシストリックアレイ方
式においては、各PE間のデータ転送とPEでのデータ
処理を同期して実行することにより、台数効果を得るこ
とができるが、この方式では、各PE間でのデータ転送
と、各PE間でのデータ処理のタイミングを合わせねば
ならない。また、この方式では、例えば長方形の行列と
ベクトルとの積を求める場合等のようにデータ処理ユニ
ットとデータ保持ユニットのそれぞれの最適な個数が等
しくない場合には、実際のデータ処理に係わらないPE
が必要となり、すなわち、遊ぶPEが多くなり、そのた
め台数効果が悪化するという問題がある。言い換えれば
、効率よくとける問題と回路構成とが固く対応し、問題
の大きさが最適な値と異なると台数効果が悪化してしま
う。逆にいうと、良好な台数効果が得られる問題が特定
されてしまい、広範な処理に適用できず、柔軟性、或い
は汎用性に欠け、結果として、ある程度広い範囲の処理
に適用できる高速なデータ処理系を実現することが困難
となる。
本発明は、リングシストリックアレイ方式や共通バス結
合型S I M D (Single Instruc
tion MultiDa ta )結合方式と同程度
なハードウエア構戒で、データ転送によるオーバヘッド
を減少せしめ、特に、長方形行列とベクトルとの積を求
めるような処理に対しても、本来の並列度を最大限利用
できるようにして良好な台数効果を得ることにより、行
列ベクトル積あるいはその転置行列ベクトル積を求める
ことを目的とする。
〔課題を解決するための手段〕
第1図は本発明の原理説明図である。同図において1は
データ処理ユニット、2はデータの保持及び転送を行う
トレイ、3は各トレイの相互接続により構威されるシフ
トレジスタ、11はデータ処理ユニットの第lの入力、
12はデータ処理ユニットの第2の入力、21はトレイ
の第1の入力、22はトレイの第1の出力、23はトレ
イ2の第2の出力である。
データ処理ユニット1はデータの処理を行い、トレイ2
は転送の動作を行うものでシフトレジスタ3を構成して
、データの巡回シフトを行う。本発明では、mXn行列
Aと要素数のベクトルXとの積を求める場合、行列八の
行数mが列数nより小さい場合であっても、或いはmが
nより大きい場合であっても、m個のデータ処理ユニッ
トとn個のトレイを用いてnに比例する処理時間でその
積が実行可能となり、従って、良好な台数効果を得るこ
とができる。すなわち、第1図(A)に示すように、そ
れぞれ2つの入力を持ち、その入力間の乗算機能とその
乗算結果の累積機能、すなわち内積演算を実行するm個
のデータ処理ユニ・ノト1と、n個のトレイ2とからな
る構成において、ユニット内の累積レジスタをYとした
場合に、データ処理ユニットは11からの入力と12か
らの入力を掛け合わせ、積を累積Yに足し込み、その後
、シフトレジスタ3内の隣接するトレイ間でベクトルX
の要素をシフトする。この動作をn回繰り返すことによ
り、mXnの行列Aと、n次元ベクトルとの乗算がm個
のデータ処理ユニットを用いてnに比例する処理時間で
実行可能となる。すなわち、本発明は、従来方式と異な
り、データ処理ユニットエとデータ保持機能を有するト
レイ2とを分離することにより、それぞれmとnが異な
っている場合であっても、タイくングを合わせるための
処理を必要とせずに良好な台数効果を得ることが可能と
なる。さらに、本発明では、トレイ2間のデータ転送と
データ処理ユニットlによるデータ処理とを同時並行的
に行い、一i的にはデータ処理ユニットがデータ処理に
有する時間よりもデータ転送時間を短くすることが期待
できるので、データ転送時間をデータ処理時間の影に隠
すことで実質的に0にし、そのことにより、処理時間を
短縮することが可能となっている。このことにより、行
列ベクトル積あるいはその転置行列ヘクトル積を求める 〔作   用〕 データ処理ユニットと、データ保持機能を有するトレイ
とを分離することにより、データ処理ユニントの個数m
とトレイの個数nとが同一の場合も違っている場合も、
nXmの行列Aと要素数nのベクトルXとの積を、デー
タ転送と、データ処理の同時並列処理により行うことが
できる。
〔実  施  例] 以下、本発明の実施例を図面を参照して説明する。
第1図(B)は第l図(A)の本発明の原理構戒図のシ
ステムの動作フローチャートである。第1図(A)に示
されるように本発明ではデータ処理ユニット1とデータ
保持機能を有するトレイ2とを分離し、さらにトレイを
隣接間で接続し、巡回接続することによってシストリッ
クなシステムを構成している。データ処理ユニットの数
をn、トレイの数をmとした場合に、mXnの行列Aと
?素数nのベクトル1との積を求める場合、第1図(B
)のフローチャートに示される動作となる。
XLをトレイ2のi番目にセットする。Ytの値をOに
する。すなわちデータ処理ユニットのi番目のユニット
における累積レジスタの値を初期化する。i番目の処理
ユニットhは11+からの入力と、12tの入力を掛け
合わせて、積を累積器Yiに足し込む。そしてシフトレ
ジスタ3をシフトする。この内積とシフト動作をn回繰
り返す。
この処理において長方行列AとベクトルXとの積が形威
される。この場合、トレイ間のデータ転送とデータ処理
ユニットにおけるデータ処理とは同時並行処理となる。
第1図(C)は本発明方式の動作概念図である。
同図においてトレイ2内のデータx1からXnはベクト
ルXの要素でその個数はnであるとする。
またデータ処理ユニットはm個あり、その各々に累積器
がY+ ,Yz ,  ・・・,Y1がある。m×nの
長方行列の要素はA 1 HからA■までのmxn個存
在する。データ処理ユニットの11には係数?列の第1
行目であるA I I +  A I 2 +  ・・
・ A,nが同期的に12+の入カバスから入力される
。またデータ処理ユニット1■はA2■,  A23,
  ・・・A 2 1がシストリック動作の各タイξン
グで順番に与えられる。また、データ処理ユニット1.
.にはA lllm+ Am m+I+・・・r  A
I+ 11−1が同期的に与えられる。
第1図(D)は第1図(C)の動作のタイミングチャー
トである。時間T1からTnの動作は第1図(C)のそ
れぞれの図と第1図(D)の時間T+ ,T2 ,  
・・・,Tnとが対応している。時間タイミングT1に
おいては第1図(C)に示されるようにトレイの21.
22,  ・・・,2nにはX,,X2,X.,  ・
−・,X,があり、ユニノト11,12,  ・・・,
lmにはそれぞれ係数行列の要素All, A22, 
 ・・・A,.ffiが入力されている。従って、この
タイミングにおいてデータ処理ユニットはA.とトレイ
2lのデータXI との積を求め、データ処理ユニット
に対応するトレイ22にあるX2と、メモリから与えら
れるA2■と?積を求め、同様に、トレイ2mにおいて
はAI,ll.とX.の積を求める。このタイミングは
第1図(D)のT1のタイミングで行われている。すな
わち積和を求める同期クロックにおいて、バス1hには
XIがあり、バス12+ にはAI+があり、バス11
2にはX2、122にはA22、113にはX3、12
3にはA33があり、11I,lにはXII%12カに
はA■がのっている。従って、第1図(C)のTIタイ
ムにおける図に示すように内積演算が行われる。累積器
Yの値はこの時はOであるから内積結果はOに掛けた値
が加わることになる。積和演算が終わるとシフト動作に
入る。すなわち第1図(D)に示されるようにT1とT
2との間がシフト動作であり、隣接するトレイ間でデー
タのシフトが行われる。すなわち左シフトがこの場合行
われる。すると第1図(C)のタイミングT2に移る。
第1図(D)の動作タイ呉ングでも同様にT2の積和の
時間区域となる。するとシフトされているからトレイ2
tにはX2、トレイ22にはX3、そしてトレイ2mに
はX m+1が格?され、また、係数行列の要素もトレ
イl,2,”・,mにはそれぞれAI2, A2:I,
 All +1141が入力される。これは第1図(D
)のT2のタイミングにおいてもバス上のデータがそれ
ぞれ示されている。従って、T2のタイ旦ングにおいて
、AI2とX2との積をとり、前の累積器Yとの和が求
められる。従ってユニットhにおいてはTIにおいて求
まったA1,とX1との積とT2において求められるA
I2とX2との積との和が求められその結果が累積器に
格納される。同様にユニットl2においては前の結果で
あるA22X X2 +A2:IX X3の結果が累積
器に格納される。ユニット1。に対しても同様である。
そしてまたシフトし、タイごングT3に移る。トレイl
にはX3、トレイ2にはX4、トレイmにはX,■2、
トレイnにはX2が入り、第1図(C)のT3時間にお
ける図に示されるような内積演算が実行される。
第l図(D)の動作タイξングの時間区域T3において
は、データ処理ユニットに入るべき入力の記号が示され
ている。このような演算が進み、時間区域Tflまで行
うと、第1図(C)の時間区域T。
に示されるようにAIfi×Xllは前の累積器との値
に加えられると、トレイ21においては、TIで求めた
A++XX+ 、TzにおけるAI2XX2 、T3で
求めたAl3XX3等の積の和が求まり、T’n−+ま
での内積結果が累算器Yに格納されているので、その結
果にA l flX X nが加わって行列Aの1行目
とベクトルXとの内積が実行される。トレイ2において
は同様に、行列八の2行目の行ベクトルとベクトルXと
の内積演算がnタロック周期で行われ、同様にm行目の
行ベクトルと、ベクトル見の内積がデータ処理ユニット
1.で実行される。従って、このような時系列で処理を
行うことによって、mxnの長方行列とn次元ベクトル
との乗算がm個のデータ処理ユニットを用いてnに比例
する処理時間で実行可能となる。従って、良好な台数効
果を得ることが可能となる。ここで重要なことは、デー
タを処理するデータ処理ユニットと、データ保持機能を
有するトレイとを分離し、それぞれの個数を長方行列の
行と列に対応させ、それらの次元が異なっていても、時
系列動作が同期的に可能となっている点である。なおn
がmよりも小さい場合でもm個のトレイ2を用いること
で処理時間は延びるが、すなわちmに比例するが、台数
効果的な処理が可能となる。
第2図(A)は第1図の構成の詳細ブロック図であり、
mxn(n≧m≧1)の行列Aと要素数nのベクトルX
の積y(要素数m)を求めるものである。同図において
、第1図で示したものと同一のものは同一の記号で示し
てあり、1aはデータ処理ユニッ}Iの処理装置であり
、例えばデジタルシグナルプロセッサで構威され、2a
はトレイ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)のフローチ
ャートに示される動作となる。X.をトレイ21にセッ
トする。Yiの値を0にする。すなわちデータ処理ユニ
ットのi番目のユニットにおける累積レジスタの値を初
期化する。i番目の処?ユニットを1■は11iからの
入力と、121の入力を掛け合わせて、積を累算器Yi
に足し込む。そしてシフトレジスタ3をシフトする。こ
の内積とシフト動作をn回繰り返す。この処理において
長方行列AとベクトルXとの積が形成される。
この場合、トレイ間のデータ転送とデータ処理ユニット
におけるデータ処理とは同時並行処理となる。
第2図(C)は本発明方式の動作概念図である。
同図においてトレイ2内のデータX+からXnはベクト
ル1の要素でその個数はnであるとする。
またデータ処理ユニットはm個あり、その各々に累積器
がY.,Y2 ,  ・・・,Y.がある。m×nの長
方行列の要素はA.からAい、までのmxn個存在する
。データ処理ユニットのhには係数行列の第1行目であ
るA 1+、A,2,・・・+AIy+が同期的に12
,の入カバスから入力される。またデータ処理ユニット
12はA 2 2、A23,・・・A21がシストリッ
ク動作の各タイミングで順番に与えられる。また、デー
タ処理ユニット11には?■+ Al,lIl+。1,
・・・, A@ IB−1が同期的に与えられる。
第2図(D)は第2図(C)の動作のタイξングチャー
トである。時間T1からT,,の動作は第1図(C)の
それぞれの図と第1図(D)の時間T+ ,Tz , 
 ・・・,Tflとが対応している。時間タイミングT
,においては.第2図(C)に示されるように、トレイ
21,22,  ・・・,2nにはX+ ,Xz,Xl
,l,  ・・+,Xnがあり、ユニット11,12,
  ・・・,lmにはそれぞれ係数行列の要素All,
A2■,A一が入力されている。
従って、このタイミングにおいてデータ処理ユニット1
1のA.とトレイ2lのデータX+ との積を求め、デ
ータ処理ユニット12においてはトレイ22にあるx2
と、メモリから与えられるA 2 2との積を求め、同
様に、トレイmにおいてはAIIIIとXmの積を求め
る。このタイミングは第2図(D)のT1のタイミング
で行われている。すなわち積和を求める同期クロックに
おいて、バス11+にはX1があり、バス12,にはA
11があり、?ス112にはX2、122にはA2■、
113にはX3、123にはA3ffがあり、11.に
はXffi、12■にはAlllffiがのっている。
従って、第2図(C)のT1タイムにおける図に示すよ
うに内積演算が行われる。累積器Yの値はこの時は0で
あるから内積結果はOに掛けた値が加わることになる。
積和演算が終わるとシフト動作に入る。すなわち第2図
(D)の図に示されるようにT1とT2との間がシフト
動作であり、トレイの隣接するトレイ間でデータのシフ
トが行われる。すなわち左シフトがこの場合行われる。
すると第2図(C)のタイミングT2に移る。第2図(
D)の動作タイミングでも同様にT2の積和の時間区域
となる。
するとシフトされているからトレイ21にはX2、トレ
イ22にはX3、そしてトレイし2mにはX n + 
1が格納され、また、係数行列の要素もトレイ21,2
2,  ・・・,2mにはそれぞれA I 2 , A
 2 3 , A Ilm+1が入力される。これは第
2図(D)のT2のタイミングにおいてもバス上のデー
タがそれぞれ示されている。従って、T2のタイ果ング
におい?、A12とX2との積をとり、前の累積器Yと
の和が求められる。従って、ユニット11においてはT
+において求まったA.とx1との積とT2において求
められるA,2とX2との積との和が求められ、その結
果が累積器に格納される。同様にユニットlzにおいて
は前の結果であるA2■XX2+ A 2 3 X X
 3の結果が累積器に格納される。ユニット11Iに対
しても同様である。そしてまたシフトし、タイミングT
3に移る。トレイ21にはx3、トレイ22にはX4、
トレイ2mにはX.2、トレイ2nにはX2が入り、第
2図(C)のT3時間における図に示されるような内積
演算が実行される。
第2図(D)の動作タイミングにおいての時間区域T3
においては、データ処理ユニットに入るべき入力の記号
が示されている。このような演算が進み、時間区域Tn
まで行うと第2図(C)の時間区域T.に示されるよう
にA,,xXnは前の累積器との値に加えられると、ト
レイ1においてはT1で求めたA,,xx, 、Tzに
おけるA,2×?2、T3で求めたAixxff等の積
の和が求まり、T7−1までの内積結果が累積器Yに格
納されているので、その結果にA1,,×X,,が加わ
って行列八の1行目とベクトル鬼との内積が実行される
トレイ2においては同様に、行列Aの2行目の行ベクト
ルとベクトルXとの内積演算がnクロック周期で行われ
、同様にm行目の行ベクトルと、ベクトルXの内積がデ
ータ処理ユニット1■で実行される。従って、このよう
な時系列で処理を行うことによってmxnの長方行列と
n次元ベクトルとの乗算がm個のデータ処理ユニットを
用いてnに比例する処理時間で実行可能となる。従って
、良好な台数効果を得ることが可能となる。
第3図は、本発明の第2の実施例説明図である.mXn
の行列Aと要素数nのベクトルXとの積に対し、引き続
きkXmの行列6を左から掛ける場合の動作に対するシ
ストリック方式の構成図である。第3図(A)において
第1図で示したものと同一のものは同一の記号で示して
ある。すなわちIaはデータ処理ユニット1の処理装置
であり、例えばデジタルシグナルプロセッサである。2
aはトレイ2のデータ保持回路であり、例えばラッチ回
路で構成され、2bはトレイ2のデータ転送回路であり
、例えばバスドライバで構成され、2Cはトレイ2の制
御手段であり、例えば論理回路で構成されている。4は
データ処理ユニットlにデータを供給する手段の一部で
あると同時にデータ処理ユニット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の実施例の動作タイムチャートである。
まず、mXnの行列八と要素数nのベクトル鬼との積、
そして、kXmの行列Bを左から掛ける場合、第3図(
B)のフローチャートに示される動作となる。Xiをト
レイ21にセットする。YiO値をOにする。すなわち
データ処理ユニットのi番目のユニットにおける累積レ
ジスタの値を初期化する。i番目の処理ユニットltは
Iliからの入力と、i2tの入力を掛け合わせて、積
を?積器Yiに足し込む。そしてシフトレジスタ3をシ
フトする。この内積とシフト動作をn回繰り返す。この
処理において長方行列Aとベクトル1との積が形成され
る。
次に、シフトレジスタの長さをmに変更し、Ytをトレ
イ2Iに転送する。そして、Zi  (i=1,・・・
,k)をOにする。次に8行列を掛けるために、まず、
i番目の処理ユニットli とlltからの入力と12
1の入力を掛け合わせて、積を累積器Ziに足し込む。
そして、シフトレジスタ3をシフトするこの内積とシフ
ト動作をk回繰り返す。
第3図(C)は以上の動作概念図である。同図において
トレイ2内のデータX+からxfiはベクトルXの要素
でその個数はまず、nであるとする。
またデータ処理ユニットは最初は、m個が有効で、その
各々に累積器がYl , Y2 ,  ・・・,Y1が
あるとする。まず、mxnの長方行列八の要素はAII
からA■までのmxn個存在する。データ処理ユニット
のhには係数行列の第1行目である?Il+ A,■,
  H + +, A+nが同期的に121の入力バス
から入力される。またデータ処理ユニット1■はA2■
,A231  ・・・ A2,がシストリック動作の各
タイミングで順番に与えられる。また、データ処理ユニ
ット11.lにはA TllIIl+ A+I ffi
。,,・・+  All Im−1が同期的に与えられ
る。
第3図(D)は第3図(C)の動作のタイミングチャー
トである。時間T+からTnの動作は第3図(C)のそ
れぞれの図と第3図(D)の時間T+ ,Tz ,  
・・・,Tnとが対応している。時間タイミングT,に
おいては、第3図(C)に示されるように、トレイの1
.2,・・・,nにはx,,X2 ,  ・”r  X
k+  ”・.Xnがあり、ユニット1,2,  ・・
・,k,・・・,mにはそれぞれ係数行列の要素AIl
+ A22+  ・・・, Ahh+・・・,A11が
入力されている。従って、このタイミングにおいてデー
タ処理ユニットは、トレイ1において、A H 1とト
レイ1のデータX+ との積を求め、データ処理ユニッ
ト2においてはトレイ2にあるX2と、メモリから与え
られるA 2 2との積を求め、同様に、トレイkにお
いてはAkkとXkの積を求め、トレイmにおいて、A
−とXIIの積を求める。このタイミングは第3図(D
)のT1のタイミングで行われている。すなわち積和を
求める同期クロックにおいて、バス111にはX,があ
り、バス121にはA■があり、バスIlzにはX2、
122にはA22、11kにはXk,12kにはAkk
があり、11.にはX.、■2,@にはA..,かのっ
ている。従って、第3図(C)のT,タイムにおける図
に示すように、内積演算が行われる。累積器Yの値はこ
の時はOであるから内積結果はOに掛けた値が加わるこ
とになる。積和演算が終わるとシフト動作に入る。すな
わち第3図(D)の図に示されるように、T1とT2と
の間がシフト動作であり、トレイの隣接するトレイ間で
データのシフトが行われる。すなわち左シフトがこの場
合行われる。すると第3図(C)のタイ5ングT2に移
る。第3図(D)の動作タイミングでも同様にT2の積
和の時間区域となるニするとシフトされているからトレ
イ1にはX2、トレ?2にはX3、トレイkにはXk+
1sそしてトレイmにはX■1が格納され、また、係数
行列の要素もトレイ1,2,・・・,k,・・・ mに
はそれぞれA12,A23,・・・Ak k+1 + 
 ・・・,A1■1が入力される。これは第3図(D)
のT2のタイミングにおいてもバス上のデータがそれぞ
れ示されている。従ってT2のタイミングにおいて、A
I2とX2との積をとり、前の累積器Yとの和が求めら
れる。従ってトレイ1においてはTIにおいて求まった
A 1 1とX,との積とT2において求められるAH
とX2との積との和が求められその結果が累積器に格納
される。同様にトレイ2においては前の結果であるA 
22 X X 2 + A 23 X X 3の結果が
累積器に格納される。トレイkやmに対しても同様であ
る。そしてまたシフトし、タイミングT3に移る。トレ
イ1にはX3、トレイ2にはX4、トレイkにはXh 
k42 、トレイmにはXlll+w+2、トレイnに
はX2が入り、第3図(C)のT3時間における図に示
されるような内積演算が実行される。
?のような演算が進み、時間区域T7まで行うと第3図
(C)の時間区域Tmに示されるようにAIn X X
 ,I1が前の累積器との値に加えられるとトレイ1に
おいてはT+で求めたA++XX+ ,.Tzにおける
AI2XX2 、TIで求めたA 1 kX X k等
の積の和が求まり、T’n−,までの内積結果が累積器
Yに格納されているので、その結果にA + n X 
X nが加わって行列Aの1行目とベクトルXとの内積
が実行される。トレイ2においては同様に行列Aの2行
目の行ベクトルとベクトルXとの内積演算がnクロック
周期で行われ、同様にk行目の行ベクトルと、ベクトル
見の内積がデータ処理ユニット1kで実行される。
データ処理ユニットの有効数をk、トレイの有効数をm
とした場合に、kXmの行列Bと要素数mのベクトルy
との積を求める動作となる。Yiをトレイ2の11にセ
ットする。Z■の値をOにする。すなわちデータ処理ユ
ニットのi番目のユニノトにおける累積レジスタの値を
初期化する。
i番目の処理ユニットhは11+からの入力と、?2,
の入力を掛け合わせて、積を累積器Zlに足し込む。そ
してシフトレジスタ3をシフトする。
この内積とシフト動作をm回繰り返す。この処理におい
て長方行列Bとベクトルyとの積が形威される。
第3図(C)においてトレイ2内のデータY1からY.
はベクトルyの要素でその個数はmであるとする。また
データ処理ユニットの有効数はk個あり、その各々に累
積器がZ+,Zz,  ・・・Zkがある。k×mの長
方行列Bの要素はB目からBkmまでのkXm個存在す
る。データ処理ユニットのhには係数行列Bの第l行目
であるBll、B1■,・・・+BImが同期的に12
+ の入力バスから入力される。またデータ処理ユニッ
ト12はB2■,  B231  ・・・,  Bz■
がシストリック動作の各タイミングで順番に与えられる
。また、データ処理ユニット1kにはBkkt Bk 
k+I +  ・..Bk k−1が同期的に与えられ
る。
第3図(D)は第3図(C)の動作のタイξングチャー
トでも同様の記号が使われている。時間?■1からT 
n + s + 1の動作は第3図(C)のそれぞれの
図と第3図(D)の時間とが対応している。
時間タイミングT n + 1においては第3図(C)
に示されるように、トレイl,2,・・・ mにはY+
 ,Yz ,  ・・・,Y.が移され、ユニット12
.・・・.kにはそれぞれ係数行列Bの要素BllB2
■,・・・,Bkkが入力されている。次のタイミング
T n + 2においてデータ処理ユニットlにおいて
Bllとトレイ1のデータY1との積を求め、データ処
理ユニット2においてはトレイ2にあるY2と、メモリ
から与えられるB2■との積を求め、同様にユニットk
においてはBkkとYkの積を求める。このタイくング
は第5図(d)のT,l。2のタイごングで行われてい
る。すなわち積和を求める同期クロックにおいて、バス
11.にはY+があり、バス12+にはBl+があり、
バス112にはY2、12■にはB2■、llzにはY
3、12iにはB。
があり、llkにはYm、12i=にはBkkがのって
いる。従って、第3図(C)のTn。2における図に示
すように内積演算が行われる。累積器Zの?はこの時は
0であるから内積結果は0に掛けた値が加わることにな
る。積和演算が終わるとシフト動作に入る。すなわち第
3図(D)の図に示されるようにT.2とT n + 
3との間がシフト動作であり、トレイの隣接するトレイ
間でデータのシフトが行われる。すなわち左シフトがこ
の場合行われる。すると第3図(C)のタイくングTn
42に移る。第3図(D)の動作タイ旦ングでも同様に
Tn。3の積和の時間区域となる。すると、シフトされ
ているからトレイlにはY2、トレイ2にはY3、そし
てトレイkにはY k − 1が格納され、また、係数
行列Bの要素もトレイI,2,・・・kにはそれぞれB
I2, B23,  ・・・IBkk。,が入力される
。これは第3図(D)のT■3のタイミングにおいても
バス上のデータがそれぞれ示されている。従ってT I
I+13のタイミングにおいてBl2とY2との積をと
り、前の累積器Zとの和が求められる。従って、ユニッ
ト1においては、Tn*2において求まったBllとY
1との積とT n + 3において求められるB1■と
Y2との積との和が求めら?その結果が累積器Zに格納
される。同様にユニット2においては前の結果であるB
22XY2 +B23xY3の結果が累積器Zに格納さ
れる。トレイkに対しても同様である。そしてまたシフ
トし、タイミングT n + 4に移る。
このような演算が進み、時間区域T0。ヨ。,まで行う
と第3図(C)の時間区域T n * m * I に
示されるようにB IsX Yffiが前の累積器Zと
の値に加えられるとユニット1においてはT n + 
2で求めたBllxy,,T.。2におけるBI2XY
2 、Tn。3で求めたB,3XY3等の積の和が求ま
り、T7■までの内積結果が累積器Zに格納されている
ので、その結果に81■×Y..が加わって行列Bの1
行目とベクトルyとの内積が実行される。ユニット2に
おいては同様に行列Bの2行目の行ベクトルとベクトル
yとの内積演算が行われ、同様にk行目の行ベクトルと
、ベクトルyの内積がデータ処理ユニン}Ihで実行さ
れる。従って、このような時系列で処理を行うことによ
ってkXmの長方行列Bに対してmに比例する処理時間
で実行可能となり、従って良好な台数効果を得ることが
可能となる。
本実施例においてはシフトレジスタ3の長さを変更でき
ること、及び中間結果をトレイ2に書き込み、それを新
たなデータとして処理できることが重要である。シフト
レジスタ3の長さを変更できなければ、データをすべて
巡回するためにn単位時間が必要になってしまう。また
中間結果を新たなデータとして処理できることで小規模
なハードウエアでリングシストリックアレイ方式より広
い範囲の処理が実行可能となっている。さらに書き込み
に要する時間が短くて各一定であることも重要である。
第4図は本発明の第3の実施例説明図である。
このシステムではmXnの長方行列八の転置行列AT、
すなわち(nXm)の行列と要素数mのベクトルXとの
積とを計算するものである。同図において第1図に示し
たもの同じものは同一の記号で示してある。
転置行列A丁とベクトルXとの積を求める場合において
は行列Aを構成する部分行ベクトルを各データ処理ユニ
ット1に接続された記憶装置4中に格納し、演算途中に
生ずる部分和をトレイ中のデータ保持回路2a上に累積
しつつシフトレジスタ3上のデータを循環させる。
第4図(A)は第3の実施例の構戊の詳細ブロック図で
あり、nXm (n≧m≧1)の行列A?と要素数mの
ベクトルXの積y(要素数n)を求めるものである。同
図において、第1図で示したものと同一のものは同一の
記号で示してあり、Iaはデータ処理ユニット1の処理
装置であり、例えばデジタルシグナルプロセッサで構威
され、2aはトレイ2のデータ保持回路であり、例えば
ラッチ回路で構威され、2bはトレイ2のデータ転送回
路であり、例えばバスドライバで構成され、2cはトレ
イ2の制御手段であり、例えば論理回路で構威され、4
はデータ処理ユニット1にデータを供給する手段の一部
であると同時にデータ処理ユニット1を制御する手段の
一部である記憶装置であり、例えばRAM (ラングム
アクセスメモリ)で構威され、5はデータ処理ユニット
1とトレイ2の同期動作を行う手段であり、5aはクロ
ック発生回路であり、例えば水晶発振回路で構成され、
5bはクロック分配回路であり、例えばバッファ回路か
ら構威される。
第4図(B)は第3の実施例の動作フローチャートであ
る。XsをユニットIt(i=1,  ・・m)にセッ
トする。モしてYL (i=1,・・,n)の値をOに
する。各ユニットh!ctAjiとX,を掛け合わせ、
積をYiに足し込む動作をi=1,・・・ nに対して
行ってシフトする。
この動作をj=1,・・・,mに対して繰り返す.転置
行列とベクトルの掛け算は、記憶装置4中に格納された
行列八の各部分行ベクトルをそのままにして計算可能と
なり、これは後述するニューラルネットの学習アルゴリ
ズムの1つであるパックブロバゲションの実行において
は極めて重要となる。またネットワークの量はオーダn
ですむこと。
リングネットワークである。またデータ転送時間が処理
時間の影に隠れて転送時間に対するオーバ?ッドはない
ことになる。しかもSIMD方弐である。
第4図(C)は第3の実施例の動作概要図である。ユニ
ット1、には、A,1からAlmまでを順に与えていく
。ユニット12にはA22からA23,・・,A21を
与え、k番目のユニットには記憶回路を介して、Akk
+  Am k+1 +  ・・・,Akk−+を順に
与える。m番目にはA.,A.ll■1,・・,A,%
1Iを順に与えていく。また、トレイ上を循環するもの
はYIからYnである。
第4図(D)は第3の実施例の動作タイムチャートであ
る。時間区域T,からTnまでのバス上のデータが示さ
れ、これらは第6図(C)の時間区域T1からTnまで
の図にそれぞれ対応している。
時間区域T1においては、Y1からYnまではすべてO
である。そしてA 1 1とX1との積がユニット1+
で形成され、それをYIに足し込む。それと同時にA2
■とX2がY2に足し込まれ、Akk×xkがykに足
し込み、A m* X X sがY1に足し込まれる。
そしてシフト動作に入るとタイミング?2になる。すな
わちYデータが循環する。第1のユニットではA + 
z X X +が計算され、これがY2に足し込まれる
が、そのY2はT,において求まったA2■X X 2
の値が格納されているのでこれに足し込まれる。そのた
め、A2■XX2 +A+zXX+の結果がY2となる
。同様にユニット2においては、前のY3の結果にA 
2 3 X X 2が足し込まれる。
klのユニットにおいてはYk。1にAkk.I×Xk
が加えられる。また、m番目のユニットにはY.1にA
 @ @ + 1 X X IIが加えられことになる
このようにYデータを循環するとm番目の時間区域Tn
においては、例えば第1のユニット1+においては、そ
の前までに求まったY。にA In X X +が加え
られる。またY+にはA z IX X zが加えられ
る。これを全体的に眺めてみると、例えば、ベクトル見
の第1の要素X+には、T1においてA llと積がと
られ、A 1 H X X +が計算される。それはY
1に格納される。また、転置行列A”の第l行目の第2
番目の要素A 2 H X X 2は実は最後のクロッ
ク周期T,lにおいて計算されている。これは同じY1
に格納されている形になっている。また、転置行列AT
の第1行目の最後の要素であるA , 1とX.との積
は第4図(C)のクロック周期T,,.。2のm番目の
ユニットで計算されている。すなわちA1とX.の積が
Y1に足し込むことによって得られる。転置行列A7の
第2行目においても同様であり、A12とX1との積は
T2のクロックにおいては、ユニット1において計算さ
れている。
また、A 22 X X 2はクロック周期T1の第2
番目のユニットにおいて行われている。そしてY2が再
び循環して積の実行が行われるのは、時間区域T n 
− m * 3である。その時間区域以後は乗算が行わ
れ、シフト動作が行われる。そして時間区域T。
においてはY2に足し込まれる値は第3番目のユニット
であり、Y2に足し込まれる値はA32XX:1である
。従って、T.において転置行列八〇の第2行目とベク
トルXの内積が計算される。一般に第k番目のユニット
に関してはk番目のトレイからのデータ線が11kであ
るから第4図(D)に示されるように、Ilbに示すと
ころを追っていけばよいことになる。すなわち、T1に
おいてはYh +AhkXXh ,T2 におイテはY
 k+ + + A kk+ +XXk,T3 におイ
テはYk+z +Ah k+2 Xi+が計算され、T
n−1においてはYw−2+Ah h−z Xhが計算
され、時間区域TnにおいてはYk−1 + Akk−
I Xkが計算されることになる。このことにより転置
行列A7とm次元のベクトル凡の積が実行される。すな
わち、転置行列ATとベクトルXとの積を求める場合に
おいては、行列Aを構戒する部分行ベクトルを各データ
処理ユニッ}1に接続された記憶装置4中に格納し、演
算途中に生ずる部分和をトレイ2中のデータ保持回路上
に累積しつつシフトレジスタ上を循環させている。この
ような方法により行列Aとベクトルυとの積Xに継続し
て行列八の転置ATとベクトルXの積を求める場合は、
行列Aとベクトルυとの積を求める時に用いた各データ
処理ユニット1に接続された記憶装置4中に格納された
行列八の各部分行ベクトルをそのまま用いて、すなわち
転置行列A7の部分行列を各データ処理ユニット1に転
送することなしに処理をおこなしうことかでき、従って
転送に要する時間が節約でき、さらに処理時間が短縮で
きることになる。
第4図(E)は第4図(B)の繰り返し部分を詳細に分
解して示したフローチャートである。
第5図は本発明の第4の実施例図である。本実施例は本
発明を利用したニューロコンピュータの構戒図である。
同図において第4図に示したものと同一のものは同一の
記号で示してある。同図においてIaはデータ処理ユニ
ット1の処理装置であり、例えばデジタルシグナルプロ
セッサで構成される.2aはトレイ2のデータ保持回路
であり、例えばラッチ回路で構威される。2bはトレイ
2のデータ転送回路であり、例えばバスドライバで構威
される。2cはトレイ2の制御手段であり、例えば論理
回路で構威される。4はデータ処理ユニット1にデータ
を供給する手段の一部であると同時にデータ処理ユニッ
ト1を制御する手段の一部でもある記憶装置である。例
えばRAMで構威される。5aはデータ処理ユニット1
とトレイ2の同期動作を行う手段であり、5aはクロッ
ク発生回路、例えば水晶発振回路で構威される。5bは
クロック分配回路であり、例えばバンファ回路で構威さ
れる。これに加えて101はシグモイド関数と称される
単調非減少連続関数及びその微分係数を計算するシグモ
イド関数ユニットであり、例えば多項式による近似式に
より実現される。103は学習時の終了を判定する手段
であり、例えば通信手段により前記各処理ユニット1と
接続されたホストコンピュータと、各処理ユニットlが
計算した出力誤差を前記通信手段により前記ホストコン
ピュータに通知する手段と、一般に複数個の前記出力誤
差値を基に学習の終了を判定し、ニューロコンピュータ
の停止を行う手段とから構威される。なお102はニュ
ーロコンピュータの全体である。
第5図(B)は本発明のニューロコンピュータにおいて
処理の計算における基本素子であるニューロンモデルの
実施例図である。ニューロンモデルは入力X+ ,Xz
 ,  ・・・,Xnの各々にシナブス結合としての重
み時W,,W2,  ・・・,w7をそれぞれ掛け、そ
の総和を求め、これを内部値Uとする。このUに非線形
関数fを施し、出力Yとする。ここで非線形関数fは図
に示すようなS型のシグモイド関数が一般に使われる。
第511i4(C)は第5図(D)のニューロンモデル
の複数を用いて入力層、中間層、出力層の3層構造でニ
ューロコンピュータを形或する階層型のニューラルネッ
トワークの概念図である。第1層の入力層は入力信号I
t,Iz,  ・・・,  IN(+>を入力する。第
2層の中間層は各々のユニット、すなわち、各々のニュ
ーロンモデルが第lNのすべてのニューロンモデルに接
続され、その結合技がシナブス結合であって、重み値W
t,が与えられている。第3Nの出力層は同様に中間層
の各ニューロンモデルの全てに各々のユニットが接続さ
れている。その出力は外部に出される。このニューラル
ネットにおいては学習時において入力層に与えられる入
力パターンの信号に対応する教師信号と出力層との出力
信号との誤差を求め、この差が非常に小さくなるように
中間層と出力層との間の重み及び第l層と第2層の間の
重みを定めるようにする。このアルゴリズムがパックプ
ロパゲーション法則、すなわち逆伝播学習則と呼ばれる
ものである。逆伝播学習則によって定められた重み値を
保存し、例えばパターン認識等の連想処理を行う場合に
は、第1層の入力にて認識するべきパターンからややず
れた不完全なパターンを与えると、出力層からそのパタ
ーンに対応した出力信号が出力され、その信号は学習時
に与えたそのパターンに対応する教師信号と非常に似た
ような信号が出てくる。教師信号との差が非常に小さけ
れば、その不完全なパターンを認識したことになる。
第5図(A)のニューロコンピュータ1102を用いて
このニューラルネットワークの動作を工学的に実現でき
る。本実施例では第5図(C)に示すような3層のネッ
トワーク構成を用いるが、以下の説明のようにこの層数
は本実施例の動作にはなんら本質的な影響を受けない。
同図においてN(1)は第1層のニューロン数である。
また通常、第1層、すなわち入力層の各ニューロンの出
力は入力と等しいものとするので、実質的な処理の必要
はない。通常の動作、すなわちパターン認識を行う場合
の前向きの処理を第5図(D)に示す。
第5図(D)は第4の実施例の前向き処理フローチャー
トである。前向き処理では第5図(C)に示すネットワ
ークにおいて、各層間の結合技上の重み係数は定まって
いるものとする。第5図(C)のネットワークを第5図
(A)のニューロコンピュータで実現する場合、次の処
理が行われる。前向き動作の基本動作は第5図(B)の
ニューロンモデルにおいて、入力に重みを掛けその総和
をとったものをUとし、そのUに非線形関数を施す処理
となる。これを各層において行うことになる。そのため
、まず、ステップ70において入力データ、すなわち■
1からIN(+1までのデータをシフトレジスタ上にセ
ットする。そして層の数をLで表すと、以下のすべての
処理を層分繰り返す。例えばLが3であった場合には、
3回繰り返す。繰り返される層はl層分の前向き処理で
ある。
そして、処理が終了する。その1層分の前向き処理が下
側に示されている。今、中間層に注目すると、lは2で
ある。ステップ72において、シフトレジスタの長さを
N(42−1)にする。すなわち、f=2であるからN
(1)、すなわち入力層の数にする。ステップ73は中
間層におけるニューロンモデルの処理である。インデ・
ンクスのjは1から入力層のユニット数N(1)まで変
化させる。Wij(I!.)は入力層と中間層の間の結
合における重み係数である。すなわちf=2である。Y
,(I!.−1)は入力層のj番目のユニ・ントからの
出力である。iは中間層のi番目のユニ・冫トを意味す
る。i番目のユニットの状態Ui(2)は入力層の出力
Y,、すなわちj番目のYに重みWljをかけてその総
和より計算される。ステップ74に移って、その中間層
のi番目の状態Ui(2)は非線形関数、すなわちシグ
モイド関数に入力され、その出力がY1(2)となる。
すなわちステ・ノプ73の内積計算は第5図(A)のユ
ニ・冫ト内で行うが、このシグモイド関数の計算は、1
01によって行われる。ステップ75で例えば、中間層
のi番目のユニットの出力Yi(2)はトレイのi番目
に出力される。そして処理が終わる。以上の前向き処理
を入力層、中間層、出力層に対して行うことになる。こ
のようにして各層の前向き処理が終了する。すなわちニ
ューロン単体のシミュレーションに必要な処理は第5図
(B)の式で示される演算で、その内容は重みと入力ベ
クトルとの内積演算及びその演算結果に対するシグモイ
ド関数値の計算であり、その関数値の計算はシグモイド
関数ユニット10lにより実現される。従って、ネット
ワーク中のある1層の処理は第5図(C)に示すように
、そのニューロン単体の演算をその層内の全ニューロン
分行うことである。従って内積演算は各ニューロンi番
目とするの結合係数ベクトルを並べた行列W ( 1 
) = (WIJ (ffi ) 〕と、その層への入
力を並べたベクトルX (42) 一[XJ(1)]の
積のベクトル U (1) = Cut (j2) )となり、これは
本発明の第3の実施例で説明した方法で実行可能となる
。またシグモイド関数演算は各シグモイド関数ユニット
101が積ベクトルの各要素、Ui(j2)を入力し、
対応する関数値Yi (f)=f (Ut (1))を
出力することによってなされる。継続する層すなわち、
第(f+1)層が存在する場合は、その各関数値出力y
t(z)を各トレイに書き込み、第(f+1)層の処理
においてはこれを入力として以上の過程を繰り返す.次
に第5図(A)のニューロコンピュータを用いて学習動
作、すなわちバックプロパゲーシゴンアルゴリズムを実
行する場合について説明する。
第5図(E)は第4の実施例の学習処理フローチャート
である。ニューロコンピュータにおける学習とはネット
ワークが所望の入出力関係を満たすようになるまで各ニ
ューロンの重みを修正することである。学習方法は所望
の入力信号ベクトルと教師信号ベクトルとの対を複数個
、すなわち教師信号の集合分だけ用意し、その中から1
対を選び、その入力信号■,を学習対象ネットワークに
入力し、入力に対するネットワークの出力と正しい出力
信号、すなわちその入力信号に対応した教師信号OPと
を比較する。この差を誤差と称するが、その誤差、及び
この時の入出力信号の値を基に、各ニューロンの重みを
修正することになる。
この過程を教師信号の集合中の全要素にわたり学習が収
束するまで繰り返すものである。すなわち、入力パター
ンの数の分だけ、すべて重み値として分布的に記憶する
ことになる。この後ろ向き処理と呼ばれる重みの修正過
程において出力層で得られた誤差を途中で変形しながら
入力層に向け通常の信号の流れる向きとは逆方向に伝播
させる。これがパックブロバゲーションのアルゴリズム
である。
まず前記誤差Dを以下のように再帰的に定義する。Di
(42)は第lNのi番目のニューロンから逆向きに伝
播される誤差、Lはネットワークの層数である。
Di  (L)=f’  (Ui  (L))  (Y
i  (L)−Opi)       (最終層)(1
)Di  (1−1)=f’  (Ui  (j2−1
))ΣJ=l・N(見+Wj  i  Cl>Dj  
(A)(1.=2,  ・ ・ ・  L)    (
2)(i−1,  ・ ・ ・,N  (42))ここ
でf’  (U)はシグモイド関数f (X)のXに対
する微係数f’  (X)のX=Uの時の値であり、例
えば f (X) =tanhX            (
3)ならば、 f ’  (X) = d (tanhX) /d X
= 1 −tanh” X=1−f2 (X)    
     (4)であるから、 f’  (Ui)=1−f2 (Ui)=l−Yi2(
5) である。
このDiとYiを基に、以下にように重みを更新する。
基本的には次の式を用いる。ここでηは重みを更新する
刻み巾であり、小さければ学習安定に収束する収束が遅
くなり、大きすぎると収束ひなくなるという性質を持っ
たパラメタである。
Wi j (f) (t″1)  =W ij( 1 
) (t)十ΔWij(42)ゞt )       
(6)ΔWij(j2)’いーηDi  (l)Yj(
j2−1)      (i!.=2,  ・・・,L
)(7)しかし、次に式も良く用いられている。これは
上式のΔW i j (ffi) ” を1次にデジタ
ルローパスフィルタに通したことになっており、αはそ
の時定数を決めるバラメタである。
ΔWij  (」e)’ h貫} =ηDi  (e)
  Yj(f−1)十αΔWi j (f) ”   
   (8)この後ろ向き処理の過程において必要とな
る演算はベクトル間の演算、或いは行列とベクトルとの
演算であり、特にその中心となるのは各層のニューロン
の重みを要素とする重み行列Wの転置行列W1と前記誤
差ベクトルD,(f)との乗算である。この誤差ベクト
ルはIN内に複数個のニューロンがある一般の場合、誤
差はベクトルとなる。
第5図(E)の左のフローチャートを説明する。
1層分の前向きの処理と後向きの処理が行われる。まず
、入力データIpをシフトレジスタ上にセントし、1層
分の前向き処理をシステムで行う。
これは各層で行われるため、この前向き処理を層の数分
だけ繰り返す。すると出力データOpが出力されるので
、これをシフトレジスタ上にセットする。そして、ステ
ップ79から以下を出力層のユニット分だけ並列に実行
する。すなわち誤差Dt(L)=Yr (L)  Op
 (i)を計算し、この誤差をトレイのi番目にセット
する。そして出力層から入力層に向かって各層毎に後向
き処理を行う.この後向き処理は第5図(E)の右上側
に示されている。第L番目の層に関して、この層の数は
N(I!.)であるからシフトレジスタ長をN (/!
)にする。そして以下の動作をこの前の層のユニット数
だけ並列に実行する。すなわち、上記(2)式を、ステ
ップ83において実行する。ここで重要なのは重みはW
Jt(j2)となっており、これは重み行列の転置行列
W7の要素になっている。そしてステップ84において
、上記(6). (7)あるいは(8)式を計算し、重
みの更新を行う。ステップ85で、求まった誤差Di(
n  1)をトレイのi番目に出力する。これは次の誤
差を計算するため、ステップ84の動作に必要となる。
第5図(A)の右下は第5図(E)の左のフローチャー
ト、すなわち前向き処理と後向き処理の連続処理を学習
が習得するまで繰り返すことを意味するフローチャート
である。また、このような処理において重みの更新と学
習を安定にするために重みの修正量の平滑化等の処理が
あるが、これらはいずれも行列のスカラ倍及び行列同士
の加減算からなり、やはり、本ニューロコンピュータに
おいて行える。またシグモイド関数ユニット101はハ
ードウエアで実現するものとしているが、ソフトウエア
で実現してもよい。また、学習の終了の反転千段103
はホストコンピュータ上のソフトウエアで実現してもよ
い。
以上のニューロコンピュータをさらに第5図(F)を用
いて説明する。第5図(F)はエラーバックプロバゲー
ションの学習を行う時の処理フロー図である。ここでは
、ベクトル表示を用いている。同図においてx (f)
は第l層のニューロンベクトル、Wは同じく結合係数、
すなわち重み行列である。fはシグモイド関数、e (
f)は第f!.層の出力側から逆向きに伝播してきた誤
差ベクトル、ΔWは重みの修正量である。入力信号が与
えられると、まず、3層である場合には、入力層はない
ものとすれば、隠れ層の前向き処理を行う,それがu=
’Wx(ffi)である。このUに非線形関数を施せば
、次の層、すなわち(ffi+1)層の入力となる。こ
れは出力層の入力であるから、その前向き処理を行う。
そして教師信号を入力し、後向き処理になる。出力層に
おいては教師信号と出力信号の誤差eをrの微分を掛け
て後向き処理にする。また中間層等の間の誤差は逆伝播
してくる誤差信号に微分をかけた変数に重み行列の転置
行列W7をかけて求められる。誤差ベクトルの各要素に
シグモイドの微分をかけた値に前のw7の要素を掛けて
これよりΔWを求め、Wを更新すればよい。このように
して、出力層の後向き処理、及び隠れ層の後向き処理が
行われる。前向き処理で行う演算は、重み行列Wと入力
ベクトル^との積、この結果ベクトルの各要素のシグモ
イド関数の値の計算である。この計算は各ニューロンで
並列に計算できる。また後向き処理でも仕事は大きく分
けて2あり、1つ目は教師信号と出力信号との誤差を順
次変形しながら、後から前へ逆向きに伝播すること、ま
た2つ目はその誤差を基に重みを修正することである。
この逆向きの計算では重み行列Wの転置行列wrによる
乗算が必要になる。転置行列W7とベクトルの積は前の
実施例で述べている。すなわちハ′ツクプロパゲーシゴ
ンの学習を実現する再の重要な点は重み行列の転置行列
WTとベクトル乗算の効率な実現方法である。
さらに第5図(G)と(H)を用いて前向き積和計算、
及び後向き積和計算の実施例を説明する。
前向き積和演算は行列×ベクトルの計算で、特に行列は
重み行列W,である。本発明で、行列ベクトル積り=%
’xを計算する場合、例えば、次の式? ・ ・(9) に対して、重み行列の行とベクトル兄との積が同時に行
われる。この処理方式を第7図(のを用いて説明する。
重み行列Wは長方jテ列である。例えば、3×4の行列
である。ベクトルXの各要素はトレイ上に入力される。
TIの時刻において、XIとW.、X2とW2■、X3
とW33が各々のユニットで計算される。T2に移ると
ベクトルXの各要素は上に巡回シフトする。T2におい
てW+2とX2との積がU1に足される。したがってU
1はこの時刻にはχ1 XWII +X2 XWI2と
なる。また、第2のユニットではW23とX3が掛けら
れ、第3番目のユニットではW34xX,が掛けられる
。T3において、W+3とx3が掛けられU1に足し込
まれる。W2JとX4が掛けられ、U2に加えられる。
W31とX,が掛けられUヨに足し込まれる。この時X
2は演算の対象からはずされている。T4におイテ、W
.とX. 、W2,とX1、W32とx2がそれぞれ同
時に掛けられU+ 、U2 、U3にそれぞれ足し込ま
れる。この場合、X3は演算の対象外となっている。こ
の演算の対象外を考慮することによって長方行列とベク
トルとの積が実行される。
Wの部分ベクトルWi0はPE−tのローカルメモリ上
にWiiが先頭になるようにスキューされて格納されて
いる。Xiはトレイにのってリング上を反時計回りに一
回転する。UiはPE−,内部のレジスタ上に累積され
る。
左端の状態でUi=00状態からスタートする.PE−
+は自分の目の前にあるXjとWijと掛け合わせ、そ
の結果をUiに加算する。同時にXjは隣のトレイに隣
接される(リング上を反時計回りに循環する)。これを
4回繰り返すと全てのUiが同時に求まる。
Wiiがスキューされていること、Xiが全てトレイ中
にある状態からスタートすること、Uiが全て同時に求
まる。
第5図(H)は後向き積和計算の説明である。
これは転置行列と行ベクトル積、e=W”yを計算する
時のタイミング図である。この場合、ベクトルVは前の
層の誤差ベクトルに非線形関数の微分を掛けた要素から
なるベクトルである。Cは求めらようとする次の層での
逆伝播用の誤差ベクトルである。本発明で重要なことは
、転置行列wTであっても、前向き積和計算において利
用されるメモリ上のWと同し配置にしたままで演算でき
ることである。
すなわち本発明では求めるべきCのベクトルの巡回シフ
トによってなされる。演算するべき転置行列WTとベク
トルVとの式は00)式に従う。
上の式において示されるように、行列Wは転置?れしか
も、長方行列である。e1はW11Xv,+ W21 
X V 2 + W3+ X V 3である。この演算
を行うために、第5図(H)において、時間区域T,に
おいては第1のユニット(DSP)において、W11と
Vlの積が演算されている。これがOであるe,に差し
込まれる。そして、巡回シフトするとT2に移るが、e
1はT2時刻においては演算の対象になっていない。モ
してT3になると、3番目のユニットにおいて演算対象
となっている。
すなわちW3lにv3を掛けた値が前の値に足し込まれ
るため、W,,Xv,に足し込まれる。そのため時間区
域T3においては、e.の結果はW.×V + + W
 3 1 X v 3 となる。モしてT4に移ると、
e,は巡回シフトとして、第2番目のユニットで演算対
象となる。ここで、e+にはW2,XV2が加えられる
ため、00式の行列の第1行目とベクトルVとの内積演
算が実行され、その演算結果がe.に格納されることに
なる。
同様に第2行目とベクトルとの積はe2を追えばよい。
T,時刻にはW2■XVz 、Tzにはw1■XVI、
T3では、e2が遊びになり、Ta テW3zxv3の
積が求まれ、各々の積の和として計算される。WTの第
3行目とベクトル■との積はe3を追えばよい。TIに
おいてはW3,,Xv3 、T2においてはそれにW2
3Xv2が足し込まれ、T3において、更にW,3Xv
,が足し込まれる。T4はe4は遊びとなる。WTの第
4行目とベクトルVとの積はe4を追えばよい。T1時
刻ではe4は遊びである。T2ではW34×v3、T3
ではW24XV2が足し込まれ、T4において更にW目
Xv,が足し込まれて、計算ができる。このように本発
明では、Wの部分ベクトルWi“は前と同様PEヨのロ
ーカル目上にWitが先頭になるようにスキューされて
格納されている。前と入れ替わるのはeiとViである
。つまり、eiはトレイ上を反時計回りに循環しながら
累積され、ViはPE−+内部に常駐する。
左端の状態でej=oからスタートする。PE−.はV
iとWijとを掛け合わせ、その結果を自分の目の前に
あるejに加え込む。同時にこの更新されたejは隣の
トレイに転送される(リング上を反時計回りに循環する
)。これを4回繰り返すと全てのejが同時に求まる。
このように本発明のニューロコンピュータは層が何層で
あっても実現でき、学習アルゴリズムの自由度が高いと
いう柔軟性を持つばかりでなく、DSPの速度そのまま
を利用でき、しかもそのDSPの演算においてオーバヘ
ンドがなく、高速性があり、しかもDSPによるSIM
Dが実行できる。
第6図は本発明の第5の実施例説明図であり、アナログ
データによる行列の積を求めるものである。図中、第2
図で示したものと同一のものは同一の記号で示してあり
、1dはデータ処理ユニット1の処理装置であり、例え
ばアナログ乗算器1eと積分器1fで構威され、2dは
トレイ2のデータ保持回路であり、例えばサンプル/ホ
ールド回路2fで構威され、2eはトレイ2のデータ転
送回路であり、例えばアナログスイッチ2gとバッファ
アンプ2hで構成され、6はトレイ2にデ一夕を設定す
る手段であり、例えばアナログスイッチ6dで構成され
る。
本実施例の動作は本発明の原理図(第1図)で説明した
動作と同じである。
第7図は本発明の第6の実施例説明図であり、帯行列と
ベクトルとの乗算を示している。図中、第2図で示した
ものと同一のものは同一の記号で示してある。
本実施例の動作を第7図(B)を参照しつつ説明する。
本発明では、mXn (n≧m≧l)で巾kの帯行列A
と要素数nのベクトルスとの乗算結果(要素数mのベク
トルy)を求める場合において、第7図(A)の如く、
各々2つの入力を持ち乗算機能と概乗算結果の累積機能
を有するm個のデータ処理ユニット1と、n個のトレイ
2と、前記各データ処理ユニットlにせとぞくされた入
力データ供給手段とから成る構戒に於いて、第7図(B
)に示す手順で、第7図(C)及び第7図(D)のよう
な時系列で処理をするようにしている。従って、巾kの
帯行列とベクトルとの乗算がkに比例する処理時間で実
行できる。
本実施例に於いて重要な事は、ベクトル見を1回転させ
ない事、及びベクトルXをシフトレジスタ3上にセット
する際に、第1の実施例等と異なり、頂度帯が始まる位
置にずらしておくことである。すなわち、帯の開始位置
から処理を開始する場合は、ある方向にずらしながら積
和演算を行えばkに比例する時間で処理が終了する。し
かし、図示しないが何らかの事情で帯の途中に配置した
状態から処理を開始する場合は、始めにベクトル八を一
端までずらせばよいことは明らかであり、その場合、シ
フトレジスタ3が双方向にシフト可能であることが意味
を持つのである。
即ち、例えば帯の中央から処理を開始する場合は、初め
に右にk/2(小数点以下切り捨て)だけずらし、以後
逆方向(この場合左)にずらしながら積和演算を行えば
、合計372kに比例する時間で処理が終了する。
もし、シフトレジスタ3が双方向にシフト可能でなけれ
ば、ヘクトル鬼を1回転させねばならないため、帯行列
の巾kではなくその大きさnに比例する時間が必要にな
る。大規模な帯行列の於いては、この差は非常に大きく
、帯行列とベクトルとの乗算が帯行列の巾kに比例する
処理時間で実行可能となることは本発明の方式の利点で
ある。
第8図はトレイの構造を具体的に示す。
トレイは基本的には単なる1語のラッチであるが、DS
Pからのアクセスと、隣のトレイへの転送を1サイクル
で実行できる(ポストシフト)。
機能の切り替えは、アドレス線の下位ビットにより、デ
ータのアクセスと同時に行い、速度を向上させている。
一つのトレイはゲートアレイで約1 2 0 0 Ba
sicセルの規模であり、1チップに2〜4個入れるこ
とも可能である。
また、トレイ中にワークレジスタを数ワード内蔵するこ
とも可能である。
第9図は本発明の実施例を用いて、実際に構威されたニ
ューロコンピュータのブロック図である。
Sandyの基本構成はDSPの一次元トーラス(リン
グ)結合によるS IMD型マルチプロセッサである。
特徴的なのは、結合トボロジーや動作は1次元シストリ
ックアレイと類似しているにも関わらず、SIMDとし
て動作する事である。
各DSPと双方向バスで接続されている“トレイ゛は、
転送m能を有するラッチであり、相互にリング状に接続
され、全体でサイタリンクシフトレジスタを構成してい
る。以後このシフトレジスタをリングと呼ぶ。
各DSPは2K語の内部メモリと64語の外付けRAM
を持ち、内部メモリは1サイクルで、外部メモリは1〜
2サイクルでアクセスできる。
外付けRAMは、プログラムやデータの初期ロード用に
、共通バスでホストコンピュータのVME W ハスニ
接続される。外部入力もパンファメモリを介してホスト
コンピュータに接続されている。
第lO図は本発明の実施例における学習時の時間空間チ
ャートであり、縦方向はプロセッサの数を示し、横方向
は時間を示す。■は入力層のプロセッサの数、Hは隠れ
層のプロセッサの数、■はプロセッサの積和演算の時間
に対応する。
入力信号が隠れ層の前向き積和に要する時間は、入力層
のプロセッサの数■と1つのプロセッサの積和に対応す
る時間■との積に比例する。次に、シグモイドの計算が
行われる。出力層においても出力層の前向き積和(2H
1)とシグモイドが行われる。ここで、出力層のプロセ
ッサの数が隠れ層のプロセッサの数より少ないので、リ
ングの大きさ自体も小さくなる。次ぎに教師信号入力と
受信し、誤差計算を行い、誤差のバック・プロパゲーシ
ョンを行う。なお、この誤差計算は出力層のシグモイド
における誤差計算も服務出力層の後向き積和を行い、出
力層の重み更新を勾配ベクトル計算とローバスフィルタ
を介して行う。そして、隠れ層のシグモイドによる誤差
計算を経て、隠れ層においては、後向き積和は行わず隠
れ層の重み更新のみを行う。
〔発明の効果〕
以上説明した様に、本発明によれば従来の方法より広い
範囲の処理に対して、データ処理に伴うデータ転送によ
るオーバヘッド無しにデータを並列に処理出来る効果を
奏し、データ処理ユニットの台数に比例した高速なデー
タ処理が実現出来ることにより、行列ベクトル積あるい
はその転置行列ベクトル積を求めるデータ処理装置の性
能向上に寄与するところが大きい。
【図面の簡単な説明】
第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)は、共通バスSTMD方式の原理構戒図
、 第11図(B)は、共通バスSMD方式による行列ベク
トル積の動作フローチャート、第12図(A)及び第1
2図(B)は、リングシストリック方式による行列ベク
トル積の動作原理図、 第12(C)は、リングシストリック方式による行列ベ
クトル積の動作原理図である。 ■・・・データ処理ユニット、 2・・・トレイ、 3・・・シフトレジスタ、 4・・・記憶装置、 5・・・同期手段、 6 7 11 12 2l 22 23 24 82 83 84 85 9l 92 93 ・データ設定手段、 ・長さ変更手段、 ・データ処理ユニット1の入力、 ・データ処理ユニット1の第2の入力、・トレイ2の第
1の入力、 ・トレイニの第1の出力、 ・トレイ2の第2の出力、 ・トレイ2の第2の入力、 ・PE9 1の第1の入力、 ・P E 9−1の第1の出力、 ・PE9 1の第2の入力、 ・PE9 1の第2の出力、 ・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項に記載の並列データ処理方式。
JP1243971A 1989-09-20 1989-09-20 並列データ処理方式 Pending JPH03105583A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP1243971A JPH03105583A (ja) 1989-09-20 1989-09-20 並列データ処理方式
EP90310302A EP0421639B1 (en) 1989-09-20 1990-09-20 Parallel data processing system
DE69032259T DE69032259T2 (de) 1989-09-20 1990-09-20 Paralleldatenverarbeitungsanlage
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
JP1243971A JPH03105583A (ja) 1989-09-20 1989-09-20 並列データ処理方式

Publications (1)

Publication Number Publication Date
JPH03105583A true JPH03105583A (ja) 1991-05-02

Family

ID=17111776

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPH03105583A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012132692A1 (ja) * 2011-03-29 2012-10-04 三菱重工業株式会社 並列処理システム及び並列処理システムの動作方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012132692A1 (ja) * 2011-03-29 2012-10-04 三菱重工業株式会社 並列処理システム及び並列処理システムの動作方法
JP2012208680A (ja) * 2011-03-29 2012-10-25 Mitsubishi Heavy Ind Ltd 並列処理システム及び並列処理システムの動作方法
US9774671B2 (en) 2011-03-29 2017-09-26 Mitsubishi Heavy Industries, Ltd. Parallel processing system and operation method of parallel processing system

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
JPH04290155A (ja) 並列データ処理方式
US5091864A (en) Systolic processor elements for a neural network
US5542026A (en) Triangular scalable neural array processor
US20210241071A1 (en) Architecture of a computer for calculating a convolution layer in a convolutional neural network
EP3451236A1 (en) Method and device for executing forwarding operation of fully-connected layered neural network
US5146543A (en) Scalable neural array processor
US5148515A (en) Scalable neural array processor and method
CN110580519B (zh) 一种卷积运算装置及其方法
US5065339A (en) Orthogonal row-column neural processor
CN110826710B (zh) 基于横向脉动阵列的rnn前向传播模型的硬件加速实现方法
CN108960414B (zh) 一种基于深度学习加速器实现单广播多运算的方法
CN110689123B (zh) 基于脉动阵列的长短期记忆神经网络前向加速系统及方法
JPH06502265A (ja) 信号処理におけるマトリクス演算の計算回路装置
CN111985626B (zh) 一种加速rnn网络的系统、方法及存储介质
US5627944A (en) Parallel data processing system
CN111178492B (zh) 计算装置及相关产品、执行人工神经网络模型的计算方法
JP2825133B2 (ja) 並列データ処理方式
US5146420A (en) Communicating adder tree system for neural array processor
JPH03105583A (ja) 並列データ処理方式
CN110673824A (zh) 矩阵向量乘电路以及循环神经网络硬件加速器
JPH03105582A (ja) 並列データ処理方式
JPH03105581A (ja) 並列データ処理方式
US20220036196A1 (en) Reconfigurable computing architecture for implementing artificial neural networks