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

並列データ処理方式

Info

Publication number
JPH03105582A
JPH03105582A JP1243970A JP24397089A JPH03105582A JP H03105582 A JPH03105582 A JP H03105582A JP 1243970 A JP1243970 A JP 1243970A JP 24397089 A JP24397089 A JP 24397089A JP H03105582 A JPH03105582 A JP H03105582A
Authority
JP
Japan
Prior art keywords
data processing
tray
data
product
matrix
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
JP1243970A
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 JP1243970A priority Critical patent/JPH03105582A/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 JPH03105582A publication Critical patent/JPH03105582A/ja
Priority to US08/227,472 priority patent/US5600843A/en
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔概  要〕 複数個のデータ処理ユニットを同期的に用いてデータを
処理する並列データ処理方式に関し、リングシストリッ
クアレイ方式や共通バス結合型S T M D (Si
ngle Instruction Multi Da
ta )結合方弐と同程度なハードウエア構戒で、デー
タ転送によるオーバヘッドを減少せしめ、特に、長方形
行列とベクトルとの積を求めるような処理に対しても、
本来の並列度を最大限利用できるようにして良好な台数
効果を得ることにより、帯行列演算あるいはニューロコ
ンピュータの部分結合ネットワークを用いる演算を行う
ことを目的とし、各々少なくとも一つの入力を持つ複数
個のデ−夕処理ユニットと、各々第1の入力及び出力を
持ちかつ各々データ保持及びデータ転送を行う複数個の
トレイであって、前記トレイの全部又はその一部が各々
前記データ処理ユニットの第1の入力に接続された第2
の出力を有するものと、前記接続するトレイの第1の入
力及び出力が接続されて成るシフト手段とを具備し、前
記シフト手段上のデータ転送と、前記トレイと前記デー
タ処理ユニット間のデータ転送と、前記データ処理ユニ
ットによるデータ処理とを同期して行うことにより、帯
行列演算あるいはニューロコンピュータの部分結合ネッ
トワークを用いる演算を行うように構或する。
〔産業上の利用分野〕
本発明は並列データ処理方式に係り、更に詳しくは、複
数個のデータ処理ユニットを同期的に用いてデータを処
理する並列データ処理方式に関する。
近年、電子計算機或いはデジタル信号処理装置等のシス
テムにおいて、データ処理の適用分野の拡大に伴い、処
理されるデータの量が膨大になり、特に画像処理或いは
音声処理等の分野では高速なデータ処理を行う必要があ
り、そのため、複数個のデータ処理ユニットを同期的に
用いてデータを処理するデータ処理の並列性の利用が重
要となる。
一般に、複数の処理ユニットを用いた処理において重要
な概念に台数効果がある。これは用意されたデータ処理
ユニットの台数に比例したデータ処理速度の向上が得ら
れることを意味するが、並列処理方式においては良好な
台数効果を得ることが非常に重要となる。
台数効果が悪化する主要な原因は、問題そのも7のの並
列度による限界を別にすれば、データ処理に伴うデータ
転送に要する時間が本来のデータ処理に要する時間に加
算されてトータルとしての処理時間が引き延ばされるこ
とにある。従って、台数効果の向上にはデータ伝送路の
容量をフルに活用することが有効であるが、これはなか
なか難しい。
しかし、処理が規則的な場合には、この規則性を利用し
て台数効果を上げることが可能となる。
データをシストリックアレイ、すなわち、巡回的にデー
タを流し、2つのデータがその流れにおいてそろったと
ころで演算を行うようにする。処理が規則的なことを利
用する並列処理がシストリツクアレイ方式であり、この
中でリングシストリンクアレイ方式と呼ばれる1次元の
シストリツクアレイ方式は、複数個のデータ処理ユニッ
トを同期的に用いてシストリックなデータを処理する並
列データ処理方式であって実現が比較的容易である.規
則性のある処理として、ベクトルの内積演算を基本とし
た行列演算や、ニューラルネットの積和演算に非線形関
数を介して出力する並列処理がある。
[従 来 の 技 術] 第11図(A)は従来の共通バス結合型並列方式の原理
構成図である。同図において91はプロセッサエレメン
ト、4はメモリ、93は共通バス、92は共通バスに接
続されるバス、94は各プロセッサエレメントと、それ
に対応して接続されるメモリ4を接続する内部バスであ
る。この共通バス結合型並列方式においては、プロセッ
サエレメント(以下PEと称す)間の通信が共通バス9
3を介して行われる。特定な時間区域には共通バスに乗
せるデータは1つであるため、共通バスによる通信は共
通バス全体にわたって同期をとる必要がある。
第11図(B)はこの共通バス結合型並列方式による行
列ベクトル積の動作フローチャートである。各PEは他
のPEからのデータXと内部レジスタのYとをかけ、そ
の積をYに足しこむ動作を行う。そのためフローチャー
トに示すように、i番目のPEに関して、その内部にあ
るレジスタの内容、すなわち、Ylの値をまずOにする
。そして以下をn回繰り返す。すなわち、共通バス93
にX,を与えるとi番目のPEは共通パスに接続された
バス92からの入力とメモリ4から内部バス94を介し
て与えられる人力を掛け合わせ、その積をYiに足し込
む。これを繰り返す。
第12図(A)は従来のリングシストリック方式の原理
説明図である。同図において20はプロセッサエレメン
ト(PE)である。各PEは巡回バス22によって接続
されている。また、21は係数Wijを格納するメモリ
である。W,,,W,2,・・・,W33などは係数行
列の要素であり、一iにW.jは行列のij成分である
。この係数行列Wと、ヘクトルX=(X+ .X2 ,
X3 )を掛ける動作をこのリングシストリック方式で
行う場合、次のようにして行われる。
第12図(B)はプロセッサエレメントの第i番目の内
部構造である。同図において23は乗算器、24は加算
器、25はアキュムレータ(ACC)、21は係数の要
素WiJを格納するレジスタ群である。このレジスタ群
はいわゆるFIF○であって、係数行列の第i行目に関
する係数としてW,」、すなわちj番目の列の要素が出
力されようとしている状態である。このFIFOは出力
された次のクロックでは巡回し、バス22を介して後ろ
側からまた入力される。従って図に示すように、Wl+
,  ・・・+  Wi j−1 はすでに巡回されて
後側に格納されている状態となっている。
一方、ベクトルの各要素はバス22を介して人力される
。現在、要素Xjが人力されている状態である。すでに
アキュムレータ25にはW目×X1+・・・+w, J
−+ XX,−,の内積結果が格納されている。これが
今アキュムレータ25から出力され、加算器24の一方
の入力に人力されている。
外部からのX,とFIFOから出力されるW1の積が乗
算器23によって乗算され、その結果が加算器24の他
方の人力に入力され、現在のアキュムレータ25の内容
とが加えられ、次のクロックで同じアキュムレータ25
に加算される。この繰り返しによって、係数行列Wの第
i行目の行ベクトルと外部から与えらるXベクトルとの
内積演算がW行される。なお、スイッチ(Switch
)はデータXiをスルーに外部に出すか、あるいは内部
に取り込み、アキュムレータ25にセットする場合との
選択を行うためのものである。このようなPE?、行列
×ベクトルの積を行う場合、第12図(A)に示すよう
に、PE−1はまず、W1Iとχ1を掛け、次のクロッ
ク周期に、X2が右側のPE2から流れ込み、W12が
メモリ21から出力されるので、W 1 2 X X 
zが演算される。同様に次のクロックではW+3とX3
との積が実行され、このことにより係数行列の第1列目
とベクトル八との積がpELlにおいて可能となる。ま
た、第2列目とベクトルとの積はPE−2において行わ
れる.すなわち、W2■とX2を掛け、次のクロツク周
期に、W23とX3を掛け、次のクロツク周期において
W21と巡回的にもどってきたX1との積を行うことに
なる。同様に、第3行目とベクトルとの積はW33とX
3を掛け、W]lと巡回してくるX1とを掛け、W32
と巡回して戻ってくるX2との積をとって内積演算を実
行することによって可能となる。従って、この動作にお
いて、WllとX1との積、及びW2■とX2、W33
とX3との積は同時に行えることになる。しかし、図に
示すように、この同時性を実行するためには係数行列の
要素の並べ方にねじれが生じている。このようなリング
シストリックアレイ方式においては、各PE間のデータ
転送と、各PEでのデータ処理を同期して実行すること
で、データ転送路を有効に利用でき、従って良好な台数
効果を得ることができる。
第12図(C)は、第12図(A)のリングシストリッ
ク方式の構成を多段に組み合わせたのもであり、この構
成により、連続する行列とベクトルの積を行うことが可
能となる。このようなシストリックアレイ方式は処理が
規則的であるため、データ伝送路の容量をフルに活用す
ることが可能であり、従って台数効果の向上が計れる。
[発明が解決しようとする課題] 第11図(A)のような従来の共通バス結合の並列方式
においては、プロセンシングエレメント、すなわちPE
間の結合が共通ハスによっているため、一時には1つの
データしか転送できない。また、共通バスによる結合は
共通バス全体にわたる同期をとらなければならない。し
たがって、従来の共通バス結合型並列方式においては良
好な台数効果を得られる処理の種類が少ないという問題
が生し、さらに共通バスによる結合は、結合されるPE
の個数の増加とともに共通バスが長くなり、共通バス全
体にわたる同期をとるのが難しくなるという問題、そし
て、大規模並列には適さないという問題が生じていた。
また、第12図のような従来のリングシストリックアレ
イ方式においては、各PE間のデータ転送とPEでのデ
ータ処理を同期して実行することにより、台数効果を得
ることができるが、この方式では、各PE間でのデータ
転送と、各PE間でのデータ処理のタイ逅ングを合わせ
ねばならない。また、この方式では、たとえば長方形の
行列とベクトルとの積を求める場合などのようにデータ
処理ユニットとデータ保持ユニットのそれぞれの最適な
個数が等しくない場合には、実際のデータ処理に係わら
ないPEが必要となり、すなわち、遊ぶPEが多くなり
、そのため台数効果が悪化するという問題がある。言い
換えれば、効率よくとける問題と回路構成とが固く対応
し、問題の大きさが最適な値と異なると台数効果が悪化
してしまう。逆にいうと、良好な台数効果が得られる問
題が特定されてしまい、広範な処理に適用できず、柔軟
性、あるいは汎用性に欠け、結果として、ある程度広い
範囲の処理に適用できる高速なデータ処理系を実現する
ことが困難となる。
本発明は、リングシストリックアレイ方式や共通バス結
合型S T M D (Single Instruc
tion MultiData)結合方弐と同程度なハ
ードウエア構成で、データ転送によるオーバヘッドを減
少せしめ、特に、長方形行列とベクトルとの積を求める
ような処理に対しても、本来の並列度を最大限利用でき
るようにして良好な台数効果を得ることにより、帯行列
演算あるいはニューロコンピュータの部分結合ネットワ
ークを用いる演算を行うことを目的とする。
〔課題を解決するための手段〕
第1図は本発明の原理説明図である。同図においてlは
データ処理ユニット、2はデータの保持及び転送を行う
トレイ、3は各トレイの相互接続により構成されるシフ
トレジスタ、11はデータ処理ユニットの第1の入力、
12はデータ処理ユニットの第2の入力、21はトレイ
の第1の人力、22はトレイの第1の出力、23はトレ
イ2の第2の出力である。
データ処理ユニットlはデータの処理を行い、トレイ2
は転送の動作を行うものでシフトレジスタ3を構成して
、データの巡回シフトを行う。本発明では、mxn行列
Aと要素数のベクトルXとの積を求める場合、行列八の
行数mが列数nより小さい場合であっても、或いはmが
nより大きい場合であっても、m個のデータ処理ユニッ
トとn個のトレイを用いてnに比例する処理時間でその
積が実行可能となり、従って、良好な台数効果を得るこ
とができる。すなわち、第1図(A)に示すように、そ
れぞれ2つの入力を持ち、その人力間の乗算機能とその
乗算結果の累積機能、すなわち内積演算を実行するm個
のデータ処理ユニ・ノトlと、n個のトレイ2とからな
る構成において、ユニット内の累積レジスタをYとした
場合に、データ処理ユニットは11からの入力と12か
らの人力を掛け合わせ、積を累積Yに足し込み、その後
、シフトレジスタ3内の隣接するトレイ間でベクトル真
の要素をシフトする。この動作をn回繰り返すことによ
り、mXnの行列Aと、n次元ベクトルとの乗算がm個
のデータ処理ユニットを用いてnに比例する処理時間で
実行可能となる。すなわち、本発明は、従来方式と異な
り、データ処理ユニット1とデータ保持機能を有するト
レイ2とを分離することにより、それぞれmとnが異な
っている場合であっても、タイミングを合わせるための
処理を必要とせずに良好な台数効果を得ることが可能と
なる。さらに、本発明では、トレイ2間のデータ転送と
データ処理ユニット1によるデータ処理とを同時並行的
に行い、一般的にはデータ処理ユニットがデータ処理に
有する時間よりもデータ転送時間を短くすることが期待
できるので、データ転送時間をデータ処理時間の影に隠
すことで実質的にOにし、そのことにより、処理時間を
短縮することが可能となっている。このことにより、帯
行列演算あるいはニューロコンピュータの部分結合ネッ
トワークを用いる演算を行う。
〔作   用〕
データ処理ユニットと、データ保持機能を有するトレイ
とを分離することにより、データ処理ユニットの個数m
とトレイの個数nとが同一の場合も違っている場合も、
nXmの行列八と要素数nのベクトルXとの積を、デー
タ転送と、データ処理の同時並列処理により行うことが
できる。
〔実  施  例〕
以下、本発明の実施例を図面を参照して説明する。
第1図(B)は第1図(A)の本発明の原理構成図のシ
ステムの動作フローチャートである。第1図(A)に示
されるように本発明ではデータ処理ユニット1とデータ
保持機能を有するトレイ2?を分離し、さらにトレイを
隣接間で接続し、巡回接続することによってシストリッ
クなシステムを構成している。データ処理ユニットの数
をn、トレイの数をmとした場合に、mxnの行列Aと
要素数nのベクトル兄との積を求める場合、第1図(B
)のフローチャートに示される動作となる。
X■をトレイ2のi番目にセットする。Y1の値をOに
する。すなわちデータ処理ユニットのi番目のユニット
における累積レジスタの値を初期化する。i番目の処理
ユニットhはLLからの入力と、12iの入力を掛け合
わせて、積を累積器Yl に足し込む。そしてシフトレ
ジスタ3をシフトする。この内積とシフト動作をn回繰
り返す。
この処理において長方行列Aとベクトル九との積が形成
される。この場合、トレイ間のデータ転送とデータ処理
ユニットにおけるデータ処理とは同時並行処理となる。
第1図(C)は本発明方式の動作概念図である。
同図においてトレイ2内のデータX1からXnはベクト
ル鬼の要素でその個数はnであるとする。
?たデータ処理ユニットはm個あり、その各々に累積器
がY+ ,Yz .  ・・・ y.がある。m×nの
長方行列の要素はA.からA一までのm X n個存在
する。データ処理ユニットの11には係数行列の第1行
目であるA11,  A12,  ・・・+AInが同
期的に121の入力バスから入力される。またデータ処
理ユニット1■はA 22+  A 23+  ・・・
A 2 1がシストリック動作の各タイξングで順番に
与えられる。また、データ処理ユニット1.にはAmT
a+A@m。1,・・・,A1■一,が同期的に与えら
れる。
第1図(D)は第1図(C)の動作のタイミングチャー
トである。時間T1からTnの動作は第1図(C)のそ
れぞれの図と第1図(D)の時間T+ ,Tz ,  
・・・,T,,とが対応している。時間タイミングT1
においては第1図(C)に示されるようにトレイの21
.22,  ・・・,2nにはx,,X2,XT1+ 
 ・−−,χ0があり、ユニッ}11,12,  ・・
・,lmにはそれぞれ係数行列の要素All, A22
.  ・・・A−が入力されて?る。従って、このタイ
ミングにおいてデータ処理ユニットはA ■とトレイ2
1のデータX1との積を求め、データ処理ユニットに対
応するトレイ22にあるX2と、メモリから与えられる
A22との積を求め、同様に、トレイ2mにおいてはA
,l.とX.の積を求める。このタイミングは第1図(
D)のT,のタイミングで行われている。すなわち積和
を求める同期クロックにおいて、バス11、にはX1が
あり、バス12+にはA 1 1があり、バス112に
はX2、12■にはA2■、113にはX:l、123
にはA33があり、1llIにはXl,,、12,には
A Iallがのっている。従って、第1図(C)のT
1タイムにおける図に示すように内積演算が行われる。
累積器Yの値はこの時は0であるから内積結果はOに掛
けた値が加わることになる。積和演算が終わるとシフト
動作に入る。すなわち第1図(D)に示されるようにT
IとT2との間がシフト動作であり、隣接するトレイ間
でデータのシフトが行われる。すなわち左シフトがこの
場合行われる。すると第1図(C)のタイミン?T2に
移る。第1図(D)の動作タイミングでも同様にT2の
積和の時間区域となる。するとシフトされているからト
レイ2ユにはX2、トレイ2■にばX3、そしてトレイ
2mにはX @ + 1が格納され、また、係数行列の
要素もトレイ1,2,・・−,mにはそれぞれA Iz
 , A 2 3 1 A t* s * +が入力さ
れる。これは第1図(D)のT2のタイξングにおいて
もバス上のデータがそれぞれ示されている。従って、T
2のタイミングにおいて、A,2とX2との積をとり、
前の累積器Yとの和が求められる。従ってユニット11
においてはTIにおいて求まったA 1 1とXlとの
積とT2において求められるAI2とX2との積との和
が求められその結果が累積器に格納される。同様にユニ
ット12においては前の結果であるA 2 2 X X
 z 十A z 3 X X 3の結果が累積器に格納
される。ユニット1,llに対しても同様である。そし
てまたシフトし、タイξングT3に移る。トレイ1には
X3、トレイ2にはX4、トレイmにはXs+wや2、
トレイnにはX2が入り、第1図(C)のT3時間にお
ける図に示されるような内積演算が実行される。
第1図(D)の動作タイミングの時間区域T3において
は、データ処理ユニットに入るべき入力の記号が示され
ている。このような演算が進み、時間区域Tnまで行う
と、第1図(C)の時間区域T,,に示されるようにA
InXX,は前の累積器との値に加えられると、トレイ
21においては、T,で求メt.= A I I X 
X + 、T 2 ニオケるA,2xX2、7’3で求
めたA H 3 X X 3等の積の和が求まり、Tn
−Iまでの内積結果が累算器Yに格納されているので、
その結果にAI,lxXnが加わって行列Aの1行目と
ベクトル鬼との内積が実行される。トレイ2においては
同様に、行列八の2行目の行ベクトルとベクトルXとの
内積演算がnクロック周期で行われ、同様にm行目の行
ベクトルと、ベクトル八〇内積がデータ処理ユニット1
.で実行される。従って、このような時系列で処理を行
うことによって、mXnの長方行列とn次元ベクトルと
の乗算がm個のデータ処理ユニットを用いてnに比例す
る処理時間で実行可能となる。従って、良好な台数効果
を得ることが可能となる。ここで重要なことは、データ
を処理するデータ処理ユニットと、データ保持機能を有
するトレイとを分離し、それぞれの個数を長方行列の行
と列に対応させ、それらの次元が異なっていても、時系
列動作が同期的に可能となっている点である。なおnが
mよりも小さい場合でもm個のトレイ2を用いることで
処理時間は延びるが、すなわちmに比例するが、台数効
果的な処理が可能となる。
第2図(A)は第1図の構成の詳細ブロック図であり、
mXn (n≧m≧1)の行列Aと要素数nのベクトル
九の積y(要素数m)を求めるものである。同図におい
て、第1図で示したものと同一のものは同一の記号で示
してあり、1aはデータ処理ユニット1の処理装置であ
り、例えばデジタルシグナルプロセッサで構成され、2
aはトレイ2のデータ保持回路であり、例えばラッチ回
路で構成され、2bはトレイ2のデータ転送回路であり
、例えばバスドライバで構成され、2Cはトレイ2の制
御手段であり、例えば論理回路で構戒され、4はデータ
処理ユニットlにデータを供給する手段の一部であると
同時にデータ処理ユニット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にセッ
トする。Y4の値をOにする。すなわちデータ処理ユニ
ットのi番目のユニットにおける累積レジスタの値を初
期化する。i番目の処理ユニットをhは11+からの入
力と、12+の入力を掛け合わせて、積を累算器Yiに
足し込む。そしてシフトレジスタ3をシフトする。この
内積とシフト動作をn回繰り返す。この処理において長
方行列Δとベクトルムとの積が形威される.この場合、
トレイ間のデータ転送とデータ処理ユニットにおけるデ
ータ処理とは同時並行処理となる。
第2図(C)は本発明方式の動作概念図である.同図に
おいてトレイ2内のデータX1からXnはベクトル八の
要素でその個数はnであるとする。
またデータ処理ユニットはm個あり、その各々に累積器
がY,,¥2,  ・・・,Y1がある。m×nの長方
行列の要素はA 目からA llInまでのmXn個存
在する。データ処理ユニットのIIには係数行列の第1
行目であるA11、A12.・・・,AH。
が同期的に12.0入カバスから入力される。またデー
タ処理ユニット12はAzz、A23.・・・A 2 
1がシストリック動作の各タイミングで順番に与えられ
る。また、データ処理ユニット1、にはA.,Aヨ.,
,・・・+ Alll m−1が同期的に与えられる。
第2図(D)は第2図(C)の動作のタイミングチャー
トである。時間T+からT。の動作は第1図(C)のそ
れぞれの図と第1図(D)の時間T.,T2,  ・・
・+ Tl’lとが対応している。時間タイミングT,
においては.第2図(C)に示されるように、トレイ2
1,22,  ・・・,2nにはXI,X2.XIII
+  ・・・+Xf1があり、ユニット11,12, 
 ・・・,Imにはそれぞれ係数行列の要素A II+
 AZ2+ Assが人力されている。
従って、このタイミングにおいてデータ処理ユニット1
1のAI+とトレイ21のデータX,との積を求め、デ
ータ処理ユニット12においてはトレイ22にあるXz
と、メモリから与えられるA22との積を求め、同様に
、トレイmにおいてはA。
?X.の積を求める。このタイミングは第2図(D)の
T1のタイξングで行われている。すなわち積和を求め
る同期クロックにおいて、バスlhにはX1があり、バ
ス12.にはA.があり、バス11■にはX2、122
にはA22、113にはX3、123にはA33があり
、11,,,にはXIIl112。にはA■がのってい
る。従って、第2図(C)のT,タイムにおける図に示
すように内積演算が行われる。累積器Yの値はこの時は
0であるから内積結果はOに掛けた値が加わることにな
る。積和演算が終わるとシフト動作に入る。すなわち第
2図(D)の図に示されるようにT1とT2との間がシ
フト動作であり、トレイの隣接するトレイ間でデータの
シフトが行われる。すなわち左シフトがこの場合行われ
る。すると第2図(C)のタイミングT2に移る。第2
図(D)の動作タイξングでも同様にT2の積和の時間
区域となる。
するとシフトされているからトレイ21にはX2、トレ
イ22にはX3、そしてトレイし2mにはx.Iが格納
され、また、係数行列の要素もトレイ21,?2,=,
2mにはそれぞれA I 2 , A 2 3 , A
 fflm+1が入力される。これは第2図(D)のT
2のタイ旦ングにおいてもバス上のデータがそれぞれ示
されている。従って、T2のタイミングにおいて、A 
I 2とx2との積をとり、前の累積器Yとの和が求め
られる。従って、ユニット11においてはT1において
求まったA■とXIとの積とT2において求められるA
 l2とX2との積との和が求められ、その結果が累積
器に格納される。同様にユニット12においては前の結
果であるA22XX2+A23XX,の結果が累積器に
格納される。ユニット1lIに対しても同様である。そ
してまたシフトし、タイミングT3に移る。トレイ21
にはX3、トレイ22にはX4、トレイ2mにはX■2
、トレイ2nにはX2が入り、第2図(C)のT3時間
における図に示されるような内積演算が実行される。
第2図(D)の動作タイミングにおいての時間区域T3
においては、データ処理ユニノトに入るべき人力の記号
が示されている。このような演算が進み、時間区域T1
まで行うと第2図(C)の時間区域T1に示されるよう
にAlt+X Xnは前の累積器との値に加えられると
、トレイ1においてはT,で求めたA,,xx, 、T
zにおけるA 1 2 XX2、T3で求めたA 1 
3 X X 3等の積の和が求まり、Tn−+までの内
積結果が累積器Yに格納されているので、その結果にA
I,lxXnが加わって行列八のl行目とベクトル系と
の内積が実行される。
トレイ2においては同様に、行列八の2行目の行ベクト
ルとベクトルXとの内積演算がnクロック周期で行われ
、同様にm行目の行ベクトルと、ベクトル*の内積がデ
ータ処理ユニット11で実行される。従って、このよう
な時系列で処理を行うことによってmXnの長方行列と
n次元ベクトルとの乗算がm個のデータ処理ユニットを
用いてnに比例する処理時間で実行可能となる。従って
、良好な台数効果を得ることが可能となる。
第3図は、本発明の第2の実施例説明図である。
mxnの行列Aと要素数nのベクトル木との積に対し、
引き続きkXmの行列Bを左から掛ける場合の動作に対
するシストリック方式の構成図である。第3図(A)に
おいて第1図で示したものと同一のものは同一の記号で
示してある。すなわち1aはデータ処理ユニット1の処
理装置であり、例えばデジタルシグナルプロセッサであ
る。2aはトレイ2のデータ保持回路であり、例えばラ
ッチ回路で構成され、2bはトレイ2のデータ転送回路
であり、例えばバスドライバで構戊され、2Cはトレイ
2の制御手段であり、例えば論理回路で構成されている
。4はデータ処理ユニット1にデータを供給する手段の
一部であると同時にデータ処理ユニット1を制御する手
段の一部でもある記憶装置であって、例えばRAM (
ランダムアクセスメモリ)で構或されている。5はデー
タ処理ユニットlとトレイ2の同期動作を行う手段であ
り、内部の5aは、クロック発生回路で、例えば、水晶
発振回路で構成され、5bはクロック分配回路であり、
例えば、バッファ回路から構成される。
6はシストリック的に戻るデータとトレイに人力する場
合のデータと外部データとの選択を行う選択回路で、7
はシストリックされるデータを途中からバイパスする選
択回路である。
本実施例は、中間結果Axを求めるところまでは第1の
実施例と全く同一であり、各データ処理ユニット中にそ
の中間結果Axの各要素が求まっている状態から (a)中間結果をトレイ2に書き込み、0))バイパス
の選択回路7をオンさせて、シフトレジスタの長さをm
に変更し、 (C)以後は本発明の第1の実施例において、行列Aを
行列6に、そして、nemに、mをkにそれぞれ変更す
ればまったく同じ動作となる。
第3図(B)は第2の実施例の動作フローチャート、第
3図(C)は第2の実施例の動作概要図、第3図(D)
は第2の実施例の動作タイムチャートである。
まず、mXnの行列Aと要素数nのベクトル光との積、
そして、kXmの行列Bを左から掛ける場合、第3図(
B)のフローチャートに示される動作となる。XIをト
レイ2iにセットする。Y,?値を0にする。すなわち
データ処理ユニットのi番目のユニットにおける累積レ
ジスタの値を初期化する。i番目の処理ユニット1iは
Iftからの人力と、12■の人力を掛け合わせて、積
を累積器Yiに足し込む。そしてシフトレジスタ3をシ
フトする。この内積とシフト動作をn回繰り返す。この
処理において長方行列Aとベクトル六との積が形威され
る。
次に、シフトレジスタの長さをmに変更し、Y,をトレ
イ2lに転送する。そして、Zt(i=1,・・・,k
)を0にする。次にB行列を掛けるために、まず、i番
目の処理ユニッ}Ilとlliからの入力と12,の入
力を掛け合わせて、積を累積器Ziに足し込む。そして
、シフトレジスタ3をシフトするこの内積とシフト動作
をk回繰り返す。
第3図(C)は以上の動作概念図である。同図において
トレイ2内のデータX1からX0はベクトルXの要素で
その個数はまず、nであるとする。
またデータ処理ユニットは最初は、m個が有効で、?の
各々に累積器がYl , Y2 ,  ・・・ Y.が
あるとする。まず、mXnの長方行列Aの要素はA.か
らA.。までのmXn個存在する。データ処理ユニット
のhには係数行列の第1行目であるAIl+ AI2,
” ’ + Alnが同期的に12+の入カバスから入
力される。またデータ処理ユニット1■はA2■) A
23+  ・・・, A2■がシストリック動作の各タ
イミングで順番に与えられる。また、データ処理ユニッ
ト1.にはA@ffi,A+@@。1,・・Am■1が
同期的に与えられる。
第3図(D)は第3図(C)の動作のタイξングチャー
トである。時間T1からTnの動作は第3図(C)のそ
れぞれの図と第3図(D)の時間TI , T2 , 
 ・・・.Tnとが対応している。時間タイ≧ングT1
においては、第3図(C)に示されるように、トレイの
1.2,・・・,nにはX+ ,X2,  ・・+,X
k,  ・・・,Xnがあり、ユニットl.2,・・・
,k,・・・.mにはそれぞれ係数行列の要素A + 
+ , A 2 z +  ・・・,Akk・・・,A
一が入力されている。従って、このタ?ミングにおいて
データ処理ユニットは、トレイ1において、A.とトレ
イ1のデータX1との積を求め、データ処理ユニット2
においてはトレイ2にあるx2と、メモリから与えられ
るAz2との積を求め、同様に、トレイkにおいてはA
kkとX,の積を求め、トレイmにおいて、A.とX1
の積を求める。このタイごングは第3図(D)のT,の
タイ呆ングで行われている。すなわち積和を求める同期
クロックにおいて、バス11+にはX1があり、バス1
2+にはA■があり、バスllzにはX2、122には
A22、llbにはXk,12kにはA,kがあり、1
1,,lにはX.、l2■にはA■がのっている。従っ
て、第3図(C)のT+タイムにおける図に示すように
、内積演算が行われる。累積器Yの値はこの時はOであ
るから内積結果はOに掛けた値が加わることになる。積
和演算が終わるとシフト動作に入る。すなわち第3図(
D)の図に示されるように、T1とT2との間がシフト
動作であり、トレイの隣接するトレイ間でデータのシフ
トが行われる。すなわち左シフト?この場合行われる。
すると第3図(C)のタイミングT2に移る。第3図(
D)の動作タイくングでも同様にT2の積和の時間区域
となる。するとシフトされているからトレイ1にはX2
、トレイ2にはX3、トレイkにはXkや!、そしてト
レイmにはX m+1が格納され、また、係数行列の要
素もトレイl,2,・・・,k,・・・,mにはそれぞ
れAI■+ A23+  ・・・Akl1+1 +  
・・・.八〇■lが人力される。これは第3図(D)の
T2のタイミングにおいてもバス上のデータがそれぞれ
示されている。従ってT2のタイミングにおいて、A 
12とX2との積をとり、前の累積器Yとの和が求めら
れる。従ってトレイ1においては11において求まった
A.とX,との積とT2において求められるA I 2
とX2との積との和が求められその結果が累積器に格納
される。同様にトレイ2においては前の結果であるA2
2X X2 +A23X X3の結果が累積器に格納さ
れる。トレイkやmに対しても同様である。そしてまた
シフトし、タイミングT3に移る。トレイ1にはX3、
トレイ2にはX4、トレイkにはXkk+2、トレイm
にはXII1。2、トレイnにはX2が入り、第3図(
C)のT3時間における図に示されるような内積演算が
実行される。
このような演算が進み、時間区域Tnまで行うと第3図
(C)の時間区域T.に示されるようにA + n X
 X (@が前の累積器との値に加えられるとトレイ1
においてはT.で求めたAzXX+ ,TzにおけるA
I2×X2、Tkで求めたA+kXXk等の積の和が求
まり、’rn−+ までの内積結果が累積器Yに格納さ
れているので、その結果にAInXX,が加わって行列
Aの1行目とベクトル魚との内積が実行される。トレイ
2においては同様に行列Aの2行目の行ベクトルとベク
トル六との内積演算がnクロック周期で行われ、同様に
k行目の行ベクトルと、ベクトル九〇内積がデータ処理
ユニットlkで実行される。
データ処理ユニットの有効数をk、トレイの有効数をm
とした場合に、kXmの行列Bと要素数mのベクトルy
との積を求める動作となる。Y,?トレイ2の1■にセ
ットする。Z1の値をOにする。すなわちデータ処理ユ
ニットのi番目のユニットにおける累積レジスタの値を
初期化する。
i番目の処理ユニットhは1hからの人力と、12.の
人力を掛け合わせて、積を累積器z1に足し込む。そし
てシフトレジスタ3をシフトする。
この内積とシフト動作をm回繰り返す。この処理におい
て長方行列Bとベクトルyとの積が形威される。
第3図(C)においてトレイ2内のデータY+からY1
はベクトルyの要素でその個数はmであるとする。また
データ処理ユニットの有効数はk個あり、その各々に累
積器がZ+ ,Zz ,  ・・・Zkがある。kXm
の長方行列Bの要素はBl1からBk.までのkXm個
存在する。データ処理ユニットの11には係数行列Bの
第1行目であるBll、B 121  ・・・,B11
が同期的に12+ の人カバスから人力される。またデ
ータ処理ユニット12はB zz+  B 2ff+ 
 ・・・,B2,がシストリック動作の各タイミングで
順番に与えられる。また、データ?理ユニット1kには
Bhk,  Bb k++ ,  ・・・Bk k−1
が同期的に与えられる。
第3図(D)は第3図(C)の動作のタイごングチャー
トでも同様の記号が使われている。時間T n + 1
からT +14 ra (− 1の動作は第3図(C)
のそれぞれの図と第3図(D)の時間とが対応している
時間タイξングT n + 1においては第3図(C)
に示されるように、トレイl,2,・・・,mにはY+
 ,Yz,  ・・+,y.sが移され、ユニット12
,・・・.kにはそれぞれ係数行列Bの要素B I l
 +B2■,・・・,Bkkが人力されている。次のタ
イごングT■.2においてデータ処理ユニット1におい
てBl+とトレイ1のデータY1 との積を求め、デー
タ処理ユニット2においてはトレイ2にあるY2と、メ
モリから与えられるB22との積を求め、同様にユニッ
トkにおいてはBkkとY,の積を求める。このタイミ
ングは第5図(d)のT0.2のタイミングで行われて
いる。すなわち積和を求める同期クロックにおいて、バ
ス11+にはYIがあり、バス121にはB.があり、
バスl1■にはY2、?22にはB22、113にはY
3、123にはB3iがあり、11kにはYk,12m
にはBkkがのっている。従って、第3図(C)のT 
n + 2における図に示すように内積演算が行われる
。累積器Zの値はこの時はOであるから内積結果はOに
掛けた値が加わることになる。積和演算が終わるとシフ
ト動作に入る。すなわち第3図(D)の図に示されるよ
うにT n 4 2とT n + 3との間がシフト動
作であり、トレイの隣接するトレイ間でデータのシフト
が行われる。すなわち左シフトがこの場合行われる。す
ると第3図(C)のタイミングTnや3に移る。第3図
(D)の動作タイミングでも同様にTn。3の積和の時
間区域となる。すると、シフトされているからトレイ1
にはY2、トレイ2にはY3、そしてトレイkにはY 
k+ 1が格納され、また、係数行列Bの要素もトレイ
1,2,・・・kにはそれぞれBI21 B23.  
・・・+  Bkk。,が入力される。これは第3図(
D)のT7.3のタイミングにおいてもバス上のデータ
がそれぞれ示されている。従ってT n + 3のタイ
ミングにおいてB1■?Y2との積をとり、前の累積器
Zとの和が求められる。従って、ユニット1においては
、Tn。2において求まったBllとY1との積とT 
n + 3において求められるB1■とY2との積との
和が求められその結果が累積器Zに格納される。同様に
ユニット2においては前の結果であるB2■XY2 +
B23XYIの結果が累積器Zに格納される。トレイk
に対しても同様である。そしてまたシフトし、タイミン
グT n + 4に移る。
このような演算が進み、時間区域T7。.。」まで行う
と第3図(C)の時間区域T n + m。lに示され
るようにB + m X Y ,が前の累積器Zとの値
に加えられるとユニット1においてはTnや2で求めた
B.Xy, 、Tl142におけるB 12X Y2 
、Tn+iで求めたB IIX ’1’3等の積の和が
求まり、T n + mまでの内積結果が累積器Zに格
納されているので、その結果にB + ta X Y 
@が加わって行列Bの1行目とベクトル1との内積が実
行される。ユニット2においては同様に行列Bの2行目
の行ベクトルとベクトルlとの内積演算が行われ、同様
にk行目の行ベクトルと、ベクトルyの内積がデータ処
理ユニット1kで実行される。従って、このような時系
列で処理を行うことによってkXmの長方行列Bに対し
てmに比例する処理時間で実行可能となり、従って良好
な台数効果を得ることが可能となる。
本実施例においてはシフトレジスタ3の長さを変更でき
ること、及び中間結果壱トレイ2に書き込み、それを新
たなデータとして処理できることが重要である。シフト
レジスタ3の長さを変更できなければ、データをすべて
巡回するためにn単位時間が必要になってしまう。また
中間結果を新たなデータとして処理できることで小規模
なハードウエアでリングシストリックアレイ方式より広
い範囲の処理が実行可能となっている。さらに書き込み
に要する時間が短くて各一定であることも重要である。
第4図は本発明の第3の実施例説明図である。
このシステムではmXnの長方行列Aの転置行列A丁、
すなわち(nXm)の行列と要素数mのベクトル充との
積とを計算するものである。同図において第1図に示し
たもの同じものは同一の記号で示してある。
転置行列A丁とベクトルχとの積を求める場合において
は行列Aを構或する部分行ベクトルを各データ処理ユニ
ッI−1に接続された記憶装置4中に格納し、演算途中
に生ずる部分和をトレイ中のデータ保持回路2a上に累
積しつつシフトレジスタ3上のデータを循環させる。
第4図(A)は第3の実施例の構戒の詳細ブロック図で
あり、nXm(n≧m≧1)の行列ATと要素数mのベ
クトル九の積1(要素数n)を求めるものである。同図
において、第1図で示したものと同一のものは同一の記
号で示してあり、1aはデータ処理ユニット1の処理装
置であり、例えばデジタルシグナルプロセッサで構成さ
れ、2aはトレイ2のデータ保持回路であり、例えばラ
ッチ回路で構成され、2bはトレイ2のデータ転送回路
であり、例えばバスドライバで構成され、2cはトレイ
2の制御手段であり、例えば論理回路で構成され、4は
データ処理ユニ・冫ト1にデータを供給する手段の一部
であると同時にデータ処理ユニット1を制御する手段の
一部である記憶装置であり、例えばRAM (ランダム
アクセスメモリ)で構成され、5はデータ処理ユニ・ノ
ト1とトレイ2の同期動作を行う手段であり、5aはク
ロソク発生回路であり、例えば水晶発振回路で構或され
、5bはクロック分配回路であり、例えばノくッファ回
路から構成される。
第4図(B)は第3の実施例の動作フローチャートであ
る。X1をユニット11  (1=1,  ・・m)に
セットする。そしてYI( i = 1 ,・・ n)
の値を0にする。各ユニントhはA J 1とXiを掛
け合わせ、積をYlに足し込む動作をi−1,・・・,
nに対して行ってシフトする。
この動作をj=1,・・・,mに対して繰り返す。
転置行列とベクトルの掛け算は、記憶装置4中番こ格納
された行列Aの各部分行ベクトルをそのままにして計算
可能となり、これは後述するニューラルネットの学習ア
ルゴリズムの1つであるノク・冫ク?ロパゲションの実
行においては極めて重要となる。またネットワークの量
はオーダnですむこと。
リングネットワークである。またデータ転送時間が処理
時間の影に隠れて転送時間に対するオーバヘッドはない
ことになる。しかもSIMD方式である。
第4図(C)は第3の実施例の動作概要図である。ユニ
ット11には、A.からA一までを順に与えていく。ユ
ニット1■にはA2■からA23,・・,A2.を与え
、k番目のユニットには記憶回路を介して、A1k, 
 Aky。,,・・・,Akk−■を順に与える。m番
目にはA■,Aイffi1,・・+ AIa#−1 を
順に与えていく。また、トレイ上を循環するものはY1
からYnである。
第4図(D)は第3の実施例の動作タイムチャートであ
る。時間区域T1からTnまでのバス上のデータが示さ
れ、これらは第6図(C)の時間区域T1からTnまで
の図にそれぞれ対応している。
時間区域T1においては、Y1からYnまではすぺて0
である。モしてA.とX,との積がユニッ?1+で形威
され、それをY1に足し込む。それと同時にA22とX
2がY2に足し込まれ、A,kXXkがYkに足し込み
、A一xXffiがY.に足し込まれる。そしてシフト
動作に入るとタイミングT2になる。すなわちYデータ
が循環する。第1のユニットではA I 2 X X 
Hが計算され、これがY2に足し込まれるが、そのY2
はTIにおいて求まったA22XX2の値が格納されて
いるのでこれに足し込まれる。そのため、A2■XX2
+A,■xLの結果がY2となる。同様にユニット2に
おいては、前のY3の結果にA2]XX2が足し込まれ
る.k番目のユニットにおいてはYk.にAky。,×
X,が加えられる。また、m番目のユニットにはY1.
1にATII1。1×X■が加えられことになる。
このようにYデータを循環するとm番目の時間区域Tn
においては、例えば第1のユニット1lにおいては、そ
の前までに求まったY,,にA+nXX+が加えられる
。またYIにはA 2 1 X X zが加えられる。
これを全体的に眺めてみると、例えば、ベクトルXの第
1の要素XIには、T+においてA,,?積がとられ、
A 1 1 X X 1が計算される。それはY1に格
納される。また、転置行列A7の第1行目の第2番目の
要素A 2 1 X X 2は実は最後のクロック周期
T,,において計算されている。これは同じY1に格納
されている形になっている。また、転置行列A7の第1
行目の最後の要素であるA,とXmとの積は第4図(C
)のクロック周期T.12のm番目のユニットで計算さ
れている。すなわちA1とX,の積がY1に足し込むこ
とによって得られる。転置行列ATの第2行目において
も同様であり、AI■とXIとの積はT2のクロックに
おいては、ユニットlにおいて計算されている。
また、A2■×X2はクロック周期TIの第2番目のユ
ニットにおいて行われている。そしてY2が再び循環し
て積の実行が行われるのは、時間区域T n − m。
3である。その時間区域以後は乗算が行われ、シフト動
作が行われる。そして時間区域TnにおいてはY2に足
し込まれる値は第3番目のユニットであり、Y2に足し
込まれる値はA3■×X3である。従って、Tnにおい
て転置行列/ATの第2行目とべクトルネの内積が計算
される。一般に第k番目のユニットに関してはk番目の
トレイからのデータ線がIlmであるから第4図(D)
に示されるように、llkに示すところを追っていけば
よいことになる。すなわち、T1においてはYh +A
hkXXh 、TzにおいてはY y + H + A
 kk+I XXk% T3においてはYk+2十Ak
k42Xkが計算され、’rn−+においてはYh−z
 + Ah *−zXhが計算され、時間区域Tnにお
いてはY.−.+Akk−1 Xkが計算されることに
なる。このことにより転置行列ATとm次元のベクトル
九の積が実行される。すなわち、転置行列ATとベクト
ルXとの積を求める場合においては、行列,八を構成す
る部分行ベクトルを各データ処理ユニット1に接続され
た記憶装置4中に格納し、演算途中に生ずる部分和をト
レイ2中のデータ保持回路上に累積しつつシフトレジス
タ上を循環させている。
このような方法により行列5AとベクトルUとの積Xに
継続して行列Aの転置A”とベクトルXの積を求める場
合は、行列AとベクトルUとの積を求める時に用いた各
データ処理ユニット1に接続された記憶装W4中に格納
された行列八の各部分行ベクトルをそのまま用いて、す
なわち転置行列A”の部分行列を各データ処理ユニット
1に転送することなしに処理をおこなしうことかでき、
従って転送に要する時間が節約でき、さらに処理時間が
短縮できることになる。
第4図(E)は第4図(B)の繰り返し部分を詳細に分
解して示したフローチャートである。
第5図は本発明の第4の実施例図である。本実施例は本
発明を利用したニューロコンピュータの構成図である。
同図において第4図に示したものと同一のものは同一の
記号で示してある。同図において1aはデータ処理ユニ
ット1の処理装置であり、例えばデジタルシグナルプロ
セッサで構或される。2aはトレイ2のデータ保持回路
であり、例えばラッチ回路で構成される。2bはトレイ
2のデータ転送回路であり、例えばバスドライバで構成
される。2Cはトレイ2の制御手段であり、例えば論理
回路で構成される。4はデータ処理ユニント1にデータ
を供給する手段の一部であると同時にデータ処理ユニッ
ト1を制御する手段の一部でもある記憶装置である。例
えばRAMで構成される。5aはデータ処理ユニットl
とトレイ2の同期動作を行う手段であり、5aはクロッ
ク発生回路、例えば水晶発振回路で構成される。5bは
クロック分配回路であり、例えばバッファ回路で構成さ
れる。これに加えて101はシグモイド関数と称される
単調非減少連続関数及びその微分係数を計算するシグモ
イド関数ユニットであり、例えば多項式による近似式に
より実現される。103は学習時の終了を判定する手段
であり、例えば通信手段により前記各処理ユニット1と
接続されたホストコンピュータと、各処理ユニット1が
計算した出力誤差を前記通信手段により前記ホストコン
ピュータに通知する手段と、一般に複数個の前記出力誤
差値を基に学習の終了を判定し、ニューロコンピュータ
の停止を行う手段とから構成される。なお102はニュ
ーロコンピュータの全体である。
第5図(B)は本発明のニューロコンピュータにおいて
処理の計算における基本素子であるニューロンモデルの
実施例図である。ニューロンモデルは人力X,,X2,
  ・・・.Xnの各々にシナプス結合としての重み時
W,,W2 ,  ・・・.Wnをそれぞれ掛け、その
総和を求め、これを内部値Uとする。このUに非線形関
数fを施し、出力Yとする一ここで非線形関数fは図に
示すようなS型のシグモイド関数が一般に使われる。
第5図(C)は第5図(D)のニューロンモデルの複数
を用いて入力層、中間層、出力層の3層構造でニューロ
コンピュータを形成する階層型のニューラルネットワー
クの概念図である。第1層の入力層は人力信号I+,I
z,  ・・・,  IN(+1を入力する。第2層の
中間層は各々のユニット、すなわち、各々のニューロン
モデルが第1層のすべてのニューロンモデルに接続され
、その結合技がシナプス結合であって、重み値WIjが
与えられている。第3層の出力層は同様に中間層の各ニ
ューロンモデルの全てに各々のユニットが接続されてい
る。その出力は外部に出される。このニューラルネット
においては学習時において人力層に与えられる人力パタ
ーンの信号に対応する教師信号と出力層との出力信号と
の誤差を求め、この差が非常に小さくなるように中間層
と出力層との間の重み及び第1層と第2Nの間の重みを
定めるようにする。このアルゴリズムがバックブロパゲ
ーション法則、すなわち逆伝播学習則と呼ばれるもので
ある。逆伝播学習則によって定められた重み値を保存し
、例えばパターン認識等の連想処理を行う場合には、第
INの入力にて認識するべきパターンからややずれた不
完全なパターンを与えると、出力層からそのパターンに
対応した出力信号が出力され、その信号は学習時に与え
たそのパターンに対応する教師信号と非常に似たような
信号が出てくる。教師信号との差が非常に小さければ、
その不完全なパターンを認識したことになる。
第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 N(11までのデータをシフトレジスタ上に
セットする。そして層の数をLで表すと、以下のすべて
の処理を層分繰り返す。例えばLが3であった場合には
、3回繰り返す。繰り返される層は1層分の前向き処理
である。
そして、処理が終了する。その1層分の前向き処理が下
側に示されている。今、中間層に注目すると、lは2で
ある。ステップ72において、シフトレジスタの長さを
N(f−1)にする。すなわち、f=2であるからN(
1)、すなわち人力層の数にする。ステップ73は中間
層におけるニューロンモデルの処理である。インデック
スのjはlから人力層のユニット数N(1)まで変化さ
せる。WiJ(i!.)は入力層と中間層の間の結合に
おける重み係数である。すなわちf=2である。Y,(
f−1)は入力層のj番目のユニットからの出力である
。iは中間層のi番目のユニットを意味する。i番目の
ユニットの状BUt(2)は人力層の出力Y,、すなわ
ちj番目のYに重みW口をかけてその総和より計算され
る。ステップ74に移って、その中間層のi番目の状態
Ul(2)は非線形関数、すなわちシグモイド関数に入
力され、その出力がYl (2)となる。すなわちステ
ップ73の内積計算は第5図(A)のユニット内で行う
が、このシグモイド関数の計算は、101によって行わ
れる。ステップ75で例えば、中間層のi番目のユニッ
トの出力Y▲(2)はトレイのi番目に出力される。そ
して処理が終わる。以上の前向き処理を入力層、中間層
、出力層に対して行うことになる。このようにして各層
の前向き処理が終了する。すなわちニューロン単体のシ
ミュレーションに必要な処理は第5図(B)の式で示さ
れる演算で、その内容は重みと入力ベクトルとの内積演
算及びその演算結果に対するシグモイド関数値の計算で
あり、その関数値の計算はシグモイド関数ユニット10
1により実現される。従って、ネットワーク中のある1
層の処理は第5図(C)に示すように、そのニューロン
単体の演算をその層内の全ニューロン分行うことである
。従って内積演算は各ニューロンi番目とするの結合係
数ベクトルを並べた行列W(l)=〔WiJ(l)〕と
、その層への入力を並べたベクトルx (42) = 
(XJ(1)の積のベクトル U (l)= [Ui (f)) となり、これは本発明の第3の実施例で説明した方法で
実行可能となる。またシグモイド関数演算は各シグモイ
ド関数ユニット101が積ベクトルの各要素、Ut(Z
)を入力し、対応する関数値Y+ (f)=f (Ut
 (1))を出力することによってなされる。継続する
層すなわち、第(f+1)層が存在する場合は、その各
関数値出力yi(p)を各トレイに書き込み、第(f+
1)Hの処理においてはこれを人力として以上の過程を
繰り返す。
次に第5図(A)のニューロコンピュータを用いて学習
動作、すなわちバックプロパゲーションアルゴリズムを
実行する場合について説明する。
第5図(E)は第4の実施例の学習処理フローチャート
である。ニューロコンピュータにおける学習とはネット
ワークが所望の入出力関係を満たすようになるまで各ニ
ューロンの重みを修正することである。学習方法は所望
の入力信号ベクトルと教師信号ベクトルとの対を複数個
、すなわち教師信号の集合分だけ用意し、その中から1
対を選び、その人力信号Ipを学習対象ネットワークに
入力し、入力に対するネットワークの出力と正しい出力
信号、すなわちその入力信号に対応した教師信号Opと
を比較する。この差を誤差と称するが、その誤差、及び
この時の入出力信号の値を基に、各ニューロンの重みを
修正することになる。
この過程を教師信号の集合中の全要素にわたり学習が収
束するまで繰り返すものである。すなわち、入力パター
ンの数の分だけ、すべて重み値として分布的に記憶する
ことになる。この後ろ向き処理と呼ばれる重みの修正過
程において出力層で得られた誤差を途中で変形しながら
人力層に向け通常の信号の流れる向きとは逆方向に伝播
させる。これがバックプロバゲーションのアルゴリズム
である。
まず前記誤差Dを以下のように再帰的に定義する。Di
 (7!)は第1層のi番目のニューロンから逆向きに
伝播される誤差、Lはネットワークの層数である。
Di (L)=f’  (Ui (L))(Yi (L
)Op i)       (最終層)(I)Di (
1−1)=f’  (Ui (j!−1))Σ4=++
N山Wj i (f) D j (f)(f=2,  
・・・,L)   (2)(i=1,  ・・・, N
 (N) )ここでf’  (U)はシグモイド関数f
 (X)のXに対する微係数f’  (χ)のX=Uの
時の値であり、例えば f (X) =tanhX             
(3)ならば、 f ’  (X) =d (tanhX) /d X=
 1−tanh2X=1−f2 (X)       
 (4)であるから、 f’  (Ui)=1−f2 (Ui)=1−Yi2(
5) である。
このDiとYiを基に、以下にように重みを更新する。
基本的には次の弐を用いる。ここでηは重みを更新する
刻み巾であり、小さければ学習安定に収束する収束が遅
くなり、大きすぎると収束ひなくなるという性質を持っ
たパラメタである。
Wi j (f) ””’  =Wi j (i!.)
 ”+ΔWi j (ffi) LL)(6)ΔWi 
j (f) 《t’  =ηDi(乏)Yj(1−1)
      Cl=2.  ・・・,L)(7)しかし
、次に式も良く用いられている。これは上式のΔWi 
j (42) ′tゝ を1次にデジタルローパスフィ
ルタに通したことになっており、αはその時定数を決め
るパラメタである。
ΔWi j  (42) 《t”’  =ηDi  (
f)Yj(i!.−1)+αΔWi j  (1) ”
’       (8)この後ろ向き処理の過程におい
て必要となる演算はベクトル間の演算、或いは行列とベ
クトルとの演算であり、特にその中心となるのは各層の
ニューロンの重みを要素とする重み行列Wの転置行列W
Tと前記誤差ベクトルD.+(l)との乗算である。こ
の誤差ベクトルは1層内に複数個のニューロンがある一
般の場合、誤差はベクトルとなる。
第5図(E)の左のフローチャートを説明する。
1層分の前向きの処理と後向きの処理が行われる。まず
、人力データIpをシフトレジスタ上にセットし、1N
分の前向き処理をシステムで行う。
これは各層で行われるため、この前向き処理を層の数分
だけ繰り返す。すると出力データO,が出力されるので
、これをシフトレジスタ上にセットする。そして、ステ
ップ79から以下を出力層のユニント分だけ並列に実行
する。すなわち誤差Di(L)一Yi(L)一〇,(i
)を計算し、この誤差をトレイのi番目にセットする。
そして出力層から人力層に向かって各層毎に後向き処理
を行う。
この後向き処理は第5図(E)の右上側に示されている
。第L番目の層に関して、この層の数はN(n)である
からシフトレジスタ長をN (ffi)にする。そして
以下の動作をこの前の層のユニット数だけ並列に実行す
る。すなわち、上記(2)式を、ステップ83において
実行する。ここで重要なのは重みはWjt(f)となっ
ており、これは重み行列の転置行列W1の要素になって
いる。そしてステップ84において、上記(6), (
7)あるいは(8)式を計算し、重みの更新を行う。ス
テップ85で、求まった誤差DI(1  1)をトレイ
のi番目に出力する。これは次の誤差を計算するため、
ステップ84の動作に必要となる。第5図(A)の右下
は第5図(E)の左のフローチャート、すなわち前向き
処理と後向き処理の連続処理を学習が習得するまで繰り
返すことを意味するフローチャートである。また、この
ような処理において重みの更新と学習を安定にするため
に重みの修正量の平滑化等の処理があるが、これらはい
ずれも行列のスカラ倍及び行列同士の加減算からなり、
やはり、本ニューロコンピュータにおいて行える。また
シグモイド関数ユニット101はハードウエアで実現す
るものとしているが、ソフトウエアで実現してもよい。
また、学習の終了の反転手段103はホストコンピュー
タ上のソフトウエアで実現してもよい。
以上のニューロコンピュータをさらに第5図(F)を用
いて説明する。第5図(F)はエラーパックプロバゲー
ションの学習を行う時の処理フロー図である。ここでは
、ベクトル表示を用いている。同図においてx (f)
は第1層のニューロンベクトル、Wは同じく結合係数、
すなわち重み行列である。fはシグモイド関数、e (
j2)は第2層の出力側から逆向きに伝播してきた誤差
ベクトル、ΔWは重みの修正量である。入力信号が与え
られると、まず、3Nである場合には、人力層はないも
のとすれば、隠れ層の前向き処理を行う。
それがa>=Wx(I!.)である。このUに非線形関
数を施せば、次の層、すなわち(jl!+1)層の入力
となる。これは出力層の人力であるから、その前向き処
理を行う。そして教師信号を入力し、後向き処理になる
。出力層においては教師信号と出力信号の誤差eをfの
微分を掛けて後向き処理にする。また中間層等の間の誤
差は逆伝播してくる誤差信号に微分をかけた変数に重み
行列の転置行列WTをかけて求められる。誤差ベクトル
の各要素にシグモイドの微分をかけた値に前のW7の要
素を掛けてこれよりΔWを求め、Wを更新すればよい。
このようにして、出力層の後向き処理、及び隠れ層の後
向き処理が行われる。前向き処理で行う演算は、重み行
列Wと人力へクトルXとの積、この結果ベクトルの各要
素のシグモイド関数の値の計算である。この計算は各ニ
ューロンで並列に計算できる。また後向き処理でも仕事
は大きく分けて2あり、1つ目は教師信号と出力信号と
の誤差を順次変形しながら、後から前へ逆向きに伝播す
ること、また2つ目はその誤差を基に重みを修正するこ
とである。この逆向きの計算では重み行列Wの転置行列
W7による乗算が必要になる。転置行列WTとベクトル
の積は前の実施例で述べている。すなわちバックプロバ
ゲーションの学習を実現する再の重要な点は重み行列の
転置行列W1とベクトル乗算の効率な実現方法である。
さらに第5図(G)と(H)を用いて前向き積和計算、
及び後向き積和計算の実施例を説明する。
前向き積和演算は行列×ベクトルの計算で、特に行列は
重み行列Wである。本発明で、行列ベクトル積u=Wx
を計算する場合、例えば、次の式? ・ ・(9) に対して、重み行列の行とベクトルスとの積が同時に行
われる。この処理方式を第7図(g:)を用いて説明す
る。重み行列Wは長方行列である。例えば、3×4の行
列である。ベクトルXの各要素はトレイ上に入力される
。T1の時刻において、XI とW.、X2とW2■、
X3とw33が各々ノユニットで計算される。T2に移
るとベクトルスの各要素は上に巡回シフトする。T2に
おいてW1■とx2との積がU1に足される。したがっ
てU+ はこの時刻ニハX IX W + + + X
 2 X W + 2となる。また、第2のユニットで
はW23とX3が掛けられ、第3番目のユニットではW
3,XX4が掛けられる。T3において、W13とX3
が掛けられU,に足し込まれる。W24と×4が掛けら
れ、U2に加えられる。
W3,とX+が掛けられU3に足し込まれる。この時X
2は演算の対象からはずされている。T4におイテ、W
+aとX4、W21とX+ ,WzzとX2がそれぞれ
同時に掛けられUI,Uz 、U:?にそれぞれ足し込
まれる。この場合、X3は演算の対象外となっている。
この演算の対象外を考慮することによって長方行列とベ
クトルとの積が実行される。
Wの部分ベクトルW i ”はPE−iのローカルメモ
リ上にWiiが先頭になるようにスキューされて格納さ
れている。Xiはトレイにのってリング上を反時計回り
に一回転する。UiはPE−t内部のレジスタ上に累積
される。
左端の状態でUi=Oの状態からスタートする。
PE−1は自分の目の前にあるXjとWijと掛け合わ
せ、その結果をUiに加算する。同時にXjは隣のトレ
イに隣接される(リング上を反時計回りに循環する)。
これを4回繰り返すと全てのUiが同時に求まる。
Wiiがスキューされていること、Xiが全てトレイ中
にある状態からスタートすること、Uiが全て同時に求
まる。
第5図(H)は後向き積和計算の説明である。
これは転置行列と行ベクトル積、e=W’vを計算する
時のタイξング図である。この場合、ベクトルVは前の
層の誤差ベクトルに非線形関数の微分を掛けた要素から
なるベクトルである。Cは求めらようとする次の層での
逆伝播用の誤差ベクトルである。本発明で重要なことは
、転置行列W7であっても、前向き積和計算において利
用されるメモリ上のWと同じ配置にしたままで演算でき
ることである。
すなわち本発明では求めるべきeのベクトルの巡回シフ
トによって゛なされる。演算するべき転置行列W7とベ
クトル▼との式は00)式に従う。
上の式において示されるように、行列Wは転置されしか
も、長方行列である。e,はW11Xvl+ W21 
X V 2 +W31 X V 3である。この演算を
行うために、第5図(H)において、時間区域T1にお
いては第1のユニット(DSP)において、W首1とv
1の積が演算されている。これが0であるe1に差し込
まれる。そして、巡回シフトするとT2に移るが、e,
はT2時刻においては演算の対象になっていない。そし
てT3になると、3番目のユニットにおいて演算対象と
なっている。
すなわちW3,にv3を掛けた値が前の値に足し込まれ
るため、W,IXvlに足し込まれる。そのため時間区
域T3においては、e1の結果はW.×Vl +W31
XV3 となる。そしてT4に移ると、e1は巡回シフ
トとして、第2番目のユニットで?算対象となる。ここ
で、elにはW2Ixv2が加えられるため、00)式
の行列の第I行目とベクトルVとの内積演算が実行され
、その演算結果がe1に格納されることになる。
同様に第2行目とベクトルとの積はe2を追えばよい。
T+時刻にはW2■XV2、T2にはW1■xVl 、
T3では、e2が遊びになり、T4でW32XV3の積
が求まれ、各々の積の和として計算される。gTの第3
行目とベクトル▼との積はe3を追えばよい。T1にお
いてはW.1Xv3 、T2においてはそれにW23X
V2が足し込まれ、T3において、更にW,3X v 
,が足し込まれる。T4はe4は遊びとなる。WTの第
4行目とベクトル▼との積はe4を追えばよい。T1時
刻ではe4は遊びである。T2ではW.4xv3、T,
ではW24xv2が足し込まれ、T4において更にW,
4Xv,が足し込まれて、計算ができる。このように本
発明では、Wの部分ベクトルW i ”は前と同様PE
.のローカル目上にWiiが先頭になるようにスキュー
されて格納されている。前と入れ替わるのはeiとVi
である。つまり、eiはトレイ上を反時計回りに循環し
ながら累積され、ViはPE一え内部に常駐する。
左端の状態でej=0からスタートする。PE−iはV
i.l!:Wijとを掛け合わせ、その結果を自分の目
の前にあるejに加え込む。同時にこの更新されたej
は隣のトレイに転送される(リング上を反時計回りに循
環する)。これを4回繰り返すと全てのejが同時に求
まる。
このように本発明のニューロコンピュータは層が何層で
あっても実現でき、学習アルゴリズムの自由度が高いと
いう柔軟性を持つばかりでなく、DSPの速度そのまま
を利用でき、しかもそのDSPの演算においてオーバヘ
ッドがなく、高速性があり、しかもDSPによるSIM
Dが実行できる。
第6図は本発明の第5の実施例説明図であり、アナログ
データによる行列の積を求めるものである。図中、第2
図で示したものと同一のものは同一の記号で示してあり
、1dはデータ処理ユニット1の処理装置であり、例え
ばアナログ乗算器leと積分器1fで構成され、2dは
トレイ2のデータ保持回路であり、例えばサンプル/ホ
ールド回路2rで構成され、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に比例する処理時間で実
行できる。
本実施例に於いて重要な事は、ベクトルXを1回転させ
ない事、及びベクトル鬼をシフトレジスタ3上にセット
する際に、第工の実施例等と異なり、頂度帯が姑まる位
置にずらしておくことである。すなわち、帯の開始位置
から処理を開始する場合は、ある方向にずらしながら積
和演算を行えばkに比例する時間で処理を終了する。し
かし、図示しないが何らかの事情で帯の途中に配置した
状態から処理を開始する場合は、始めにベクトルXを一
端までずらせばよいことは明らかであり、その場合、シ
フトレジスタ3が双方向にシフト可能であることが意味
を持つのである。
即ち、例えば帯の中央から処理を開始する場合は、初め
に右にk/2(小数点以下切り捨て)だけずらし、以後
逆方向(この場合左)にずらしながら積和演算を行えば
、合計3/2kに比例する時間で処理が終了する。
もし、シフトレジスタ3が双方向にシフト可能でなけれ
ば、ベクトルXを1回転させねばならないため、帯行列
の巾kではなくその大きさnに比例する時間が必要にな
る。大規模な帯行列の於いては、この差は非常に大きく
、帯行列とベクトルとの乗算が帯行列の巾kに比例する
処理時間で実行可能となることは本発明の方式の利点で
ある。
第8図はトレイの構造を具体的に示す。
トレイは基本的には単なる1語のラッチであるが、DS
Pからのアクセスと、隣のトレイへの転送を1サイクル
で実行できる(ポストシフト)。
機能の切り替えは、アドレス線の下位ビットにより、デ
ータのアクセスと同時に行い、速度を向上させている。
一つのトレイはゲートアレイで約1 2 0 0 Ba
sicセルの規模であり、■チップに2〜4個入れるこ
とも可能である。
また、トレイ中にワークレジスタを数ワード内蔵するこ
とも可能である。
第9図は本発明の実施例を用いて、実際に構成されたニ
ューロコンピュータのブロック図である。
Sandyの基本構成はDSPの一次元トーラス(リン
グ)結合によるSIMD型マルチプロセッサである。
特徴的なのは、結合トボロジーや動作は1次元シストリ
ックアレイと類似しているにも関わらず、S IMDと
して動作する事である。
各DSPと双方向バスで接続されている“トレイ“は、
転送機能を有するランチであり、相互にリング状に接続
され、全体でサイクリックシフ1−レジスタを構或して
いる。以後このシフトレジスタをリングと呼ぶ。
各DSPは2K語の内部メモリと64語の外付けRAM
を持ち、内部メモリは1サイクルで、外部メモリは1〜
2サイクルでアクセスできる。
外付けRAMは、プログラムやデータの初期ロード用に
、共通バスでホストコンピュータのVMEWバスに接続
される。外部入力もバッファメモリを介してホストコン
ピュータに接続されている。
第10図は本発明の実施例における学習時の時間空間チ
ャートであり、縦方向はプロセッサの数を示し、横方向
は時間を示す。■は入力層のプロセッサの数、Hは隠れ
層のプロセッサの数、Iはプロセッサの積和演算の時間
に対応する。
入力信号が隠れ層の前向き積和に要する時間は、人力層
のプロセッサの数■と1つのプロセッサの積和に対応す
る時間■との積に比例する。次に、シグモイドの計算が
行われる。出力層においても出力層の前向き積和(2H
T)とシグモイドが行われる。ここで、出力層のプロセ
ッサの数が隠れ層のプロセッサの数より少ないので、リ
ングの大きさ自体も小さくなる。次ぎに教師信号人力と
受信し、誤差計算を行い、誤差のバック・プロパゲーシ
ョンを行う。なお、この誤差計算は出力層のシグモイド
における誤差計算も服務出力層の後向き積和を行い、出
力層の重み更新を勾配ベクトル計算とローバスフィルタ
を介して行う。そして、隠れ層のシグモイドによる誤差
計算を経て、隠れ層においては、後向き積和は行わず隠
れ層の重み更新のみを行う。
〔発明の効果〕
以上説明した様に、本発明によれば従来の方法より広い
範囲の処理に対して、データ処理に伴うデータ転送によ
るオーバヘッド無しにデータを並列に処理出来る効果を
奏し、データ処理ユニントの台数に比例した高速なデー
タ処理が実現出来ることにより、帯行列演算あるいはニ
ューロコンピュータの部分結合ネットワーク用いる演算
を行うデータ処理装置の性能向上に寄与するところが大
きい。
【図面の簡単な説明】
第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図C
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・・ 11・・ 12・・ 21・・ 22・・ 23・・ 24・・ 82・・ 83・・ 84・・ 85・・ 9l・・ 92・・ トル積の動作原理図である。 ・データ処理ユニット、 ・トレイ、 ・シフトレジスタ、 ・記憶装置、 ・同期手段、 ・データ設定手段、 ・長さ変更手段、 ・データ処理ユニット1の人力、 ・データ処理ユニット1の第2の入力、・トレイ2の第
1の人力、 ・トレイニの第1の出力、 ・トレイ2の第2の出力、 ・トレイ2の第2の人力、 ・PE9 1の第1の入力、 ・PE9 1の第1の出力、 ・PE9 1の第2の人力、 ・PE9 1の第2の出力、 ・PE, ・PE9 1の入出力、 9 3 ・ ・共通バス.

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項に記載の並列データ処理方式。
JP1243970A 1989-09-20 1989-09-20 並列データ処理方式 Pending JPH03105582A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP1243970A JPH03105582A (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
JP1243970A JPH03105582A (ja) 1989-09-20 1989-09-20 並列データ処理方式

Publications (1)

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

Family

ID=17111759

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPH03105582A (ja)

Similar Documents

Publication Publication Date Title
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
EP0421639B1 (en) Parallel data processing system
CN107578098B (zh) 基于脉动阵列的神经网络处理器
JPH04290155A (ja) 並列データ処理方式
US5542026A (en) Triangular scalable neural array processor
US5146543A (en) Scalable neural array processor
CN110580519B (zh) 一种卷积运算装置及其方法
US5148515A (en) Scalable neural array processor and method
US5065339A (en) Orthogonal row-column neural processor
CN110826710B (zh) 基于横向脉动阵列的rnn前向传播模型的硬件加速实现方法
US20200226201A1 (en) Methods and Apparatus for Constructing Digital Circuits for Performing Matrix Operations
US20200104669A1 (en) Methods and Apparatus for Constructing Digital Circuits for Performing Matrix Operations
JPH06502265A (ja) 信号処理におけるマトリクス演算の計算回路装置
JPH06259585A (ja) ニューラルネットワーク装置
CN111985626B (zh) 一种加速rnn网络的系统、方法及存储介质
JPH05346914A (ja) ニューロプロセッサ
JPH076146A (ja) 並列データ処理システム
JP2825133B2 (ja) 並列データ処理方式
CN111178492A (zh) 计算装置及相关产品、执行人工神经网络模型的计算方法
JPH03105582A (ja) 並列データ処理方式
JPH03105583A (ja) 並列データ処理方式
Ayoubi et al. Efficient mapping algorithm of multilayer neural network on torus architecture
JPH03105581A (ja) 並列データ処理方式
JPH06110864A (ja) 学習処理装置
JPH04233062A (ja) ベクトルの処理方法およびその回路