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

並列データ処理方式

Info

Publication number
JP2825133B2
JP2825133B2 JP1243972A JP24397289A JP2825133B2 JP 2825133 B2 JP2825133 B2 JP 2825133B2 JP 1243972 A JP1243972 A JP 1243972A JP 24397289 A JP24397289 A JP 24397289A JP 2825133 B2 JP2825133 B2 JP 2825133B2
Authority
JP
Japan
Prior art keywords
data processing
tray
vector
matrix
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.)
Expired - Fee Related
Application number
JP1243972A
Other languages
English (en)
Other versions
JPH03105584A (ja
Inventor
英樹 加藤
英樹 吉沢
宏基 市來
和雄 浅川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 AU63030/90A priority patent/AU641418B2/en
Priority to DE69032259T priority patent/DE69032259T2/de
Priority to EP90310302A priority patent/EP0421639B1/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)

Description

【発明の詳細な説明】 〔概要〕 複数個のデータ処理ユニットを同期的に用いてデータ
を処理する並列データ処理方式に関し、 リングシストリックアレイ方式や共通バス結合型SIMD
(Single Instruction Multi Data)結合方式と同程度
なハードウエア構成で、データ転送によるオーバヘッド
を減少せしめ、特に、長方形行列とベクトルとの積を求
めるような処理に対しても、本来の並列度を最大限利用
できるようにして良好な台数効果を得ることにより、行
列演算あるいはニューロコンピュータ演算を行うことを
目的とし、 各々少なくとも一つの入力を持つ複数個のデータ処理
ユニットと、各々第1の入力及び出力を持ちかつ各々デ
ータ保持及びデータ転送を行う複数個のトレイであっ
て、前記トレイの全部又はその一部が各々前記データ処
理ユニットの第1の入力に接続された第2の出力を有す
るものと、前記接続するトレイの第1の入力及び出力が
接続されて成り、サイクリックシフトレジスタであるシ
フト手段とを具備し、前記シフト手段上のデータ転送
と、前記トレイと前記データ処理ユニット間のデータ転
送と、前記データ処理ユニットによるデータ処理とを同
期して行うことにより、行列演算あるいはニューロコン
ピュータ演算を行うように構成する。
〔産業上の利用分野〕
本発明は並列データ処理方式に係り、更に詳しくは、
複数個のデータ処理ユニットを同期的に用いてデータを
処理する並列データ処理方式に関する。
近年、電子計算機或いはデジタル信号処理装置等のシ
ステムにおいて、データ処理の適用分野の拡大に伴い、
処理されるデータの量が膨大になり、特に画像処理或い
は音声処理等の分野では高速なデータ処理を行う必要が
あり、そのため、複数個のデータ処理ユニットを同期的
に用いてデータを処理するデータ処理の並列性の利用が
重要となる。一般に、複数の処理ユニットおを用いた処
理において重要な概念に台数効果がある。これは用意さ
れたデータ処理ユニットの台数に比例したデータ処理速
度の向上が得られることを意味するが、並列処理方式に
おいては良好な台数効果を得ることが非常に重要とな
る。
台数効果が悪化する主要な原因は、問題そのものの並
列度による限界を別にすれば、データ処理に伴うデータ
転送に要する時間が本来のデータ処理に要する時間に加
算されてトータルとしての処理時間が引き延ばされるこ
とにある。従って、台数効果の向上にはデータ伝送路の
容量をフルに活用することが有効であるが、これはなか
なか難しい。
しかし、処理が規則的な場合には、この規則性を利用
して台数効果を上げることが可能となる。データをシス
トリックアレイ、すなわち巡回的にデータを流し、2つ
のテータがその流れにおいてそろったところで演算を行
うようにする。処理が規則的なことを利用する並列処理
がシストリックアレイ方式であり、この中でリングシス
トリックアレイ方式と呼ばれる1次元のシストリックア
レイ方式は、複数個のデータ処理ユニットを同期的に用
いてシストリックなデータを処理する並列データ処理方
式であって実現が比較的容易である。規則性のある処理
として、ベクトルの内積演算を基本とした行列演算や、
ニューラルネットの積和演算に非線形関数を介して出力
する並列処理がある。
〔従来の技術〕
第11図(A)は従来の共通バス結合型並列方式の原理
構成図である。同図において91はプロセッサエレメン
ト、4はメモリ、93は共通バス、92は共通バスに接続さ
れるバス、94は各プロセッサエレメントと、それに対応
して接続されるメモリ4を接続する内部バスである。こ
の共通バス結合型並列方式においては、プロセッサエレ
メント(以下PEと称す)間の通信が共通バス93を介して
行われる。特定な時間区域には共通バスに乗せるデータ
は1つであるため、共通バスによる通信は共通バス全体
にわたって同期をとる必要がある。
第11図(B)はこの共通バス結合型並列方式による行
列ベクトル積の動作フローチャートである。各PEは他の
PEからのデータXと内部レジスタのYとをかけ、その積
をYに差し込む動作を行う。そのためフローチャートに
示すように、i番目のPEに関して、その内部にあるレジ
スタの内容、すなわち、Yiの置をまず0にする。そして
以下をn回繰り返す。すなわち、共通バス93Xjを与える
とi番目のPEは共通バスに接続されたバス92からの入力
とメモリ4から内部バス94を介して与えられる入力を掛
け合わせ、その積をYiに足し込む。これを繰り返す。
第12図(A)は従来のリングシストリック方式の原理
説明図である。同図において20はプロセッサエレント
(PE)である。各PEは巡回バス22によって接続されてい
る。また、21は係数Wijを格納するメモリである。W11,W
12,・・・,W33などは係数行列の要素であり、一般にWij
は行列のij成分である。この係数行列Wと、ベクトル を掛ける動作をこのリングシストリック方式で行う場
合、次のようにして行われる。
第12図(B)はプロセッサエレメントの第i番目の内
部構造である。同図において23は乗算器、24は加算器、
25はアキュムレータ(ACC)、21は係数の要素Wijを格納
するレジスタ群である。このレジスタ群はいわゆるFIFO
であって、係数行列の第i行目に関する係数として
Wij、すなわちj番目の列の要素が出力されようとして
いる状態である。こののFIFOは出力された次のクロック
では巡回し、バス22を介して後ろ側からまた入力され
る。従って図に示すように、Wi1,・・・,Wi j-1はすで
に巡回されて後側に格納されている状態となっている。
一方、ベクトルの各要素はバス22を介して入力され
る。現在、要素Xjが入力されている状態である。すでに
アキュムレータ25にはWi1×X1+・・・+Wi j-1×Xj-1
の内積結果が格納されている。これが今アキュムレータ
25から出力され、加算器24の一方の入力に入力されてい
る。外部からのXjとFIFOから出力されるWijの積が乗算
器23によって乗算され、その結果が加算器24の他方の入
力に入力され、現在のアキュムレータ25の内容とが加え
られ、次のクロックで同じアキュムレータ25に加算され
る。この操り換しによって、係数行列Wの第i行目の行
ベクトルと外部から与えらる ベクトルとの内積演算がW行される。なお、スイッチ
(Switch)はデータXiをスルーに外部に出すか、あるい
は内部に取り込み、アキュムレータ25にセットする場合
との選択を行うためのものである。このようなPEで、行
列×ベクトルの積を行う場合、第12図(A)に示すよう
に、PE−1はまず、W11とX1を掛け、次のクロック周期
に、X2が右側のPE−2から流れ込み、W12がメモリ21か
ら出力されるので、W12×X2が演算される。同様に次の
クロックではW13とX3との積が実行され、このことによ
り係数行列の第1列目とベクトル との積がPE−1において可能となる。また、第2列目と
ベクトルとの積はPE−2において行われる。すなわち、
W22とX2を掛け、次のクロック周期に、W23とX3を掛け、
次のクロック周期においてW21と巡回的にもどってきたX
1との積を行うことになる。同様に、第3行目とベクト
ルとの積はW33とX3を掛け、W31と巡回してくるX1とを掛
け、W32を巡回して戻ってくるX2との積をとって内積演
算を実行することによって可能となる。従って、この動
作において、W11とX1との積、及びW22とX2、W33とX3
の積は同時に行えることになる。しかし、図に示すよう
に、この同時性を実行するためには係数行列の要素を並
べ方にねじれが生じている。このようなリングシストリ
ックアレイ方式においては、各PE間のデータ転送と、各
PEでのデータ処理を同期して実行することで、データ転
送路を有効に利用でき、従って良好な台数効果を得るこ
とができる。
第12図(C)は、第12図(A)のリングシストリック
方式の構成を多段に組み合わせたものであり、この構成
により、連続する行列とベクトルの積を行うことが可能
となる。このようなシストリックアレイ方式は処理が規
則的であるため、データ伝送路の容量をフルに活用する
ことが可能であり、従って台数効果の向上が計れる。
〔発明が解決しようとする課題〕
第11図(A)のような従来の共通バス結合の並列方式
においては、プロセッシングエレメント、すなわちPE間
の結合が共通バスによっているため、一時には1つのデ
ータしか転送できない。また、共通バスによる結合は共
通バス全体にわたる同期をとらなければならない。従っ
て、従来の共通バス結合型並列方式においては良好な台
数効果を得られる処理の種類が少ないという問題が生
じ、さらに共通バスによる結合は、結合されるPEの個数
の増加とともに共通バスが長くなり、共通バス全体にわ
たる同期をとるのが難しくなるという問題、そして、大
規模並列には適さないという問題が生じていた。また、
第12図のような従来のリングシストリックアレイ方式に
おいては、各PE間のデータ転送とPEでのデータ処理を同
期して実行することにより、台数効果を得ることができ
るが、この方式では、各PE間でのデータ転送と、各PE間
でのデータ処理のタイミングを合わせねばならない。ま
た、この方式では、例えば長方形の行列とベクトルとの
積を求める場合等のように処理ユニットとデータ保持ユ
ニットのそれぞれの最適な個数が等しくない場合には、
実際のデータ処理に係わらないPEが必要となり、すなわ
ち、遊ぶPEが多くなり、そのため台数効果が悪化すると
いう問題がある。言い換えれば、効率よくとける問題と
回路構成とが固く対応し、問題の大きさが最適な値と異
なると台数効果が悪化してしまう。逆にいうと、良好な
台数効果が得られる問題が特定されてしまい、広範な処
理に適用できず、柔軟性、或いは汎用性に欠け、結果と
して、ある程度広い範囲の処理に適用できる高速なデー
タ処理系を実現することが困難となる。
本発明は、リングシストリックアレイ方式や共通バス
結合型SIMD(Single Instruction Multi Data)結合方
式と同程度なハードウエア構成で、データ転送によるオ
ーバヘッドを減少せしめ、特に、長方形行列とベクトル
との積を求めるような処理に対しても、本来の並列度を
最大限利用できるようにして良好な台数効果を得ること
により、行列演算あるいはニューロコンピュータ演算を
行うことを目的とする。
〔課題を解決するための手段〕
第1図(A)は本発明の原理説明図である。同図にお
いて1はデータ処理ユニット、2はデータの保持及び転
送を行うトレイ、3は各トレイの相互接続により構成さ
れるシフトレジスタ、11はデータ処理ユニットの第1の
入力、12はデータ処理ユニットの第2の入力、21はトレ
イの第1の入力、22はトレイの第1の出力、23はトレイ
2の第2の出力である。
データ処理ユニット1はデータの処理を行い、トレイ
2は転送の動作を行うものでシフトレジスタ3を構成し
て、データの巡回シフトを行う。本発明では、m×n と要素数のベクトルxとの積を求める場合、 の行数mが列数nより小さい場合であっても、或いはm
がnより大きい場合であっても、m個のデータ処理ユニ
ットとn個のトレイを用いてnに比例する処理時間でそ
の積が実行可能となり、従って、良好な台数効果を得る
ことができる。すなわち、第1図(A)に示すように、
それぞれ2つの入力を持ち、その入力間の乗算機能とそ
の乗算結果の累積機能、すなわち内積演算を実行するm
個のデータ処理ユニット1と、n個のトレイ2とからな
る構成において、ユニット内の累積レジスタをYとした
場合に、データ処理ユニット11からの入力と12からの入
力を掛け合わせ、積を累積Yに足し込み、その後、シフ
トレジスタ3内の隣接するトレイ間でベクトル の要素をシフトする。この動作をn回繰り返すことによ
り、m×nの と、n次元ベクトルとの乗算がm個のデータ処理ユニッ
トを用いてnに比例する処理時間で実行可能となる。す
なわち、本発明は、従来方式と異なり、データ処理ユニ
ット1とデータ保持機能を有するトレイ2とを分離する
ことにより、それぞれmとnとが異なっている場合であ
っても、タイミングを合わせるための処理を必要とせず
に良好な台数効果を得ることが可能となる。さらに、本
発明では、トレイ2間のデータ転送とデータ処理ユニッ
ト1によるデータ処理とを同時並行的に行い、一般的に
はデータ処理ユニットがデータ処理に有する時間よりも
データ転送時間を短くすることが期待できるので、デー
タ転送時間をデータ処理時間の影に隠すことで実質的に
0にし、そのことにより、処理時間を短縮することが可
能となっている。このことにより、行列演算あるいはニ
ューロンコンピュータ演算を行う。
〔作用〕
データ処理ユニットと、データ保持機能を有するトレ
イとを分離することにより、データ処理ユニットの個数
mとトレイの個数nとが同一の場合も違っている場合
も、n×mの と要素数nのベクトル との積を、データ転送と、データ処理の同時並列処理に
より行うことができる。
〔実施例〕
以下、本発明の実施例を図面を参照して説明する。
第1図(B)は第1図(A)の本発明の原理構成図の
システムの動作フローチャートである。第1図(A)に
示されるように本発明ではデータ処理ユニット1とデー
タ保持機能を有するトレイ2とを分離し、さらにトレイ
を隣接間で接続し、巡回接続することによってシストリ
ックなシステムを構成している。データ処理ユニットの
数をm、トレイの数をnとした場合に、m×n と要素数nのベクトルxとの積を求める場合、第1図
(B)のフローチャートに示される動作となる。Xiをト
レイ2のi番目にセットする。Yiの値を0にする。すな
わちデータ処理ユニットのi番目のユニットにおける累
積レジスタの値を初期化する。i番目の処理ユニット1i
は11iからの入力と、12iの入力を掛け合わせて、積を累
積器Yiに足し込む。そしてシフトレジスタ3をシフトす
る。この内積とシフト動作をn回繰り返す。この処理に
おいて との積が形成される。この場合、トレイ間のデータ転送
とデータ処理ユニットにおけるデータ処理とは同時並行
処理となる。
第1図(C)は本発明方式の動作概念図である。同図
においてトレイ2内のデータX1からXnはベクトルxの要
素でその個数はnであるとする。またデータ処理ユニッ
トはm個あり、その各々に累積器Y1,Y2,・・・,Ymがあ
る。m×nの長方行列の要素はA11からAmnまでのm×n
個存在する。データ処理ユニットの11には係数行列の第
1行目であるA11,A12,・・・,A1nが同期的に121の入力
バスから入力される。またデータ処理ユニット12はA22,
A23,・・・,A21がシストリック動作の各タイミングで順
番に与えられる。また、データ処理ユニット1mにはAmm,
Am m+1,・・・,Am m-1が同期的に与えられる。
第1図(D)は第1図(C)の動作のタイミングチャ
ートである。時間T1からTnの動作は第1図(C)のそれ
ぞれの図と第1図(D)の時間T1,T2,・・・,Tnとが対
応している。時間タイミングT1においては第1図(C)
に示されるようにトレイの21,22,・・・,2nにはX1,X2,X
m,・・・,Xnがあり、ユニット11,12,・・・,1mにはそれ
ぞれ係数行列の要素A11,A22,・・・Ammが入力されてい
る。従って、このタイミングにおいてデータ処理ユニッ
トはA11とトレイ21のデータX1との積を求め、データ処
理ユニットに対応するトレイ22にあるX2と、メモリから
与えられるA22との積を求め、同様に、データ処理ユニ
ット1-mにおいてはAmmとXmの積を求める。このタイミン
グは第1図(D)のT1のタイミングで行われている。す
なわち積和を求める同期クロックにおいて、バス111
はX1があり、バス121にはA11があり、バス112にはX2、1
22にはA22、113にはX3、123にはA33があり、11mには
Xm、12mにはAmmがのっている。従って、第1図(C)の
T1タイムにおける図に示すように内積演算が行われる。
累積器Yの値はこの時は0であるから内積結果は0に掛
けた値が加わることになる積和演算が終わるとシフト動
作に入る。すなわち第1図(D)に示されるようにT1
T2との間がシフト動作であり、隣接するトレイ間でデー
タのシフトが行われる。すなわち左シフトがこの場合行
われる。すると第1図(C)のタイミングT2に移る。第
1図(D)の動作タイミングでも同様にT2の積和の時間
区域となる。するとシフトされているからトレイ21には
X2、トレイ22にはX3、そしてトレイ2mにはXm+1が格納さ
れ、また、係数行列の要素もデータ処理ユニット1-1,1
-2,・・・,1-mにはそれぞれA12,A23,Am m+1が入力され
る。これは第1図(D)のT2のタイミングにおいてもバ
ス上のデータがそれぞれ示されている。従って、T2のタ
イミングにおいて、A12とX2との積をとり、前の累積器
Yとの和が求められている。従ってユニット11において
はT1において求まったA11とX1との積とT2において求め
られるA12とX2との積との和が求められその結果が累積
器に格納される。同様にユニット12においては前の結果
であるA22×X2+A23×X3の結果が累積器に格納される。
ユニット1mに対しても同様である。そしてまたシフト
し、タイミングT3に移る。トレイ1にはX3、トレイ2に
はX4、トレイmにはXm m+2、トレイnにはX2が入り、第
1図(C)のT3時間における図に示されるような内積演
算が実行される。
第1図(D)の動作タイミングの時間区域T3において
は、データ処理ユニットに入るべき入力の記号が示され
ている。このような演算が進み、時間区域Tnまで行う
と、第1図(c)の時間区域Tnに示されるようにA1n×X
nは前の累積器との値に加えられると、データ処理ユニ
ット1-1においては、T1で求めたA11×X1、T2におけるA
12×X2、T3で求めたA13×X3等の積の和が求まり、Tn-1
までの内積結果が累算器Yに格納されているので、その
結果にA1n×Xnが加わって の1行目とベクトル との内積が実行される。トレイ2においては同様に、 の2行目の行ベクトルとベクトル との内積演算がnクロック周期で行われ、同様にm行目
の行ベクトルと、ベクトルxの内積がデータ処理ユニッ
ト1mで実行される。従って、このような時系列で処理を
行うことによって、m×nの長方行列とn次元ベクトル
との乗算がm個のデータ処理ユニットを用いてnに比例
する処理時間で実行可能となる。従って、良好な台数効
果を得ることが可能となる。ここで重要なことは、デー
タを処理するデータ処理ユニットと、データ保持機能を
有するトレイとを分離し、それぞれの個性を長方行例の
行と列に対応させ、それらの次元が異なっていても、時
系列動作が同期的に可能となっている点である。なお、
nがmよりも小さい場合でもm個のトレイ2を用いるこ
とで処理時間は延びるが、すなわちmに比例するが、台
数効果的な処理が可能となる。
第2図(A)は第1図の構成の詳細ブロック図であ
り、m×n(n≧m≧1)の行列Aと要素数nのベクト
(要素数m)を求めるものである。同図において、第1
図で示したものと同一のものは同一の記号で示してあ
り、1aはデータ処理ユニット1の処理装置であり、例え
ばデジタルシグナルプロセッサで構成され、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とした場合に、m×nの と要素数mのベクトルxとの積を求める場合、第4図
(B)のフローチャートに示される動作となる。Xiをト
レイ2iにセットする。Yiの値を0にする。すなわちデー
タ処理ユニットのi番目のユニットにおける累積レジス
タの値を初期化する。i番目の処理ユニットを1iは11i
からの入力と、12iの入力を掛け合わせて、積を累積器Y
iに足し込む。そしてシフトレジスタ3をシフトする。
この内積とシフト動作とをn回繰り返す。この処理にお
いて との積が形成される。この場合、トレイ間のデータ転送
とデータ処理ユニットにおけるデータ処理とは同時並行
処理となる。
第2図(C)は本発明方式の動作概念図である。同図
においてトレイ2内のデータX1からXnはベクトルxの要
素でその個数はnであるとする。またデータ処理ユニッ
トはm個あり、その各々に累積器がY1,Y2,・・・,Ym
ある。m×nの長方行列の要素はA11からAmnまでのm×
n個存在する。データ処理ユニットの11には係数行列の
第1行目であるA11、A12,・・・,A1nが同期的に121の入
力バスから入力される。またデータ処理ユニット12はA
22、A23,・・・,A21がシストリック動作の各タイミング
で順番に与えられる。また、データ処理ユニット1mには
Amm,Am m+1,・・・,Am m-1が同期的に与えられる。
第2図(D)は第2図(C)の動作のタイミングチャ
ートである。時間T1からTnの動作は第1図(C)のそれ
ぞれの図と第1図(D)の時間T1,T2,・・・,Tnとが対
応している。時間タイミングT1においては,第2図
(C)に示されるように、トレイ21,22,・・・,2nにはX
1,X2,Xm,・・・,Xnがあり、ユニット11,12,・・・,1mに
はそれぞれ係数行列の要素A11,A22,Ammが入力されてい
る。従って、このタイミングにおいてデータ処理ユニッ
ト11のA11とトレイ21のデータX1との積を求め、データ
処理ユニット12においてはトレイ22にあるX2と、メモリ
から与えられるA22との積を求め、同様に、トレイmに
おいてはAmmとXmの積を求める。このタイミングは第2
図(D)のT1のタイミングで行われている。すなわち積
和を求める同期クロックにおいて、バス111にはX1があ
り、バス121にはA11があり、バス112にはX2、122にはA
22、113にはX3、123にはA33があり、11mにはXm、12m
はAmmがのっている。従って、第2図(C)のT1タイム
における図に示すように内積演算が行われる。累積器Y
の値はこの時は0であるから内積結果は0に掛けた値が
加わることになる。積和演算が終わるとシフト動作に入
る。すなわち第2図(D)の図に示されるようにT1とT2
との間がシフト動作であり、トレイの隣接するトレイ間
でデータのシフトが行われる。すなわち左シフトがこの
場合行われる。すると第2図(C)のタイミングT2に移
る。第2図(D)の動作タイミングでも同様にT2の積和
の時間区域となる。するとシフトされているからトレイ
21にはX2、トレイ22にはX3、そしてトレイし2mにはXm+1
が格納され、また、係数行列の要素もバス12よりデータ
処理ユニット1-1,1-2,・・・,1-mにはそれぞれA12,A23,
Am m+1が入力される。これは第2図(D)のT2のタイミ
ングにおいてもバス上のデータがそれぞれ示されてい
る。従って、T2のタイミングにおいて、A12とX2との積
をとり、前の累積器Yとの和が求められる。従って、ユ
ニット11においてはT1において求まったA11とX1との積
とT2において求められるA12とX2との積との和が求めら
れ、その結果が累積器に格納される。同様にユニット12
においては前の結果であるA22×X2+A23×X3の結果が累
積器に格納される。ユニット1mに対しても同様である。
そしてまたシフトし、タイミングT3に移る。トレイ21に
はX3、トレイ22にはX4、トレイ2mにはXm+2、トレイ2nに
はX2が入り、第2図(C)のT3時間における図に示され
るような内積演算が実行される。
第2図(D)の動作タイミングにおいての時間区域T3
においては、データ処理ユニットに入るべき入力の記号
が示されている。このような演算が進み、時間区域Tn
で行うと第2図(C)の時間区域Tnに示されるようにA
1n×Xnな前の累積器との値に加えられると、データ処理
ユニット1-1においてはT1で求めたA11×X1、T2における
A12×X2、T3で求めたA13×X3等の積の和が求まり、Tn-1
までの内積結果が累積器Yに格納されているので、その
結果にA1n×Xnが加わって の1行目とベクトル との内積が実行される。データ処理ユニット1-2におい
ては同様に、 の2行目の行ベクトルとベクトル との内積演算がnクロック周期で行われ、同様にm行目
の行ベクトルと、ベクトル の内積がデータ処理ユニット1mで実行される。従って、
このような時系列で処理を行うことによってm×nの長
方行列とn次元ベクトルとの乗算がm個のデータ処理ユ
ニットを用いてnに比例する処理時間で実行可能とな
る。従って、良好な台数効果を得ることが可能となる。
第3図は、本発明の第2の実施例説明図である。m×
nの と要素数nのベクトル との積に対し、引き続きk×mの行列Bを左から掛ける
場合の動作に対するシストリック方式の構成図である。
第3図(A)において第1図で示したものと同一のもの
は同一の記号で示してある。すなわち1aはデータ処理ユ
ニット1の処理装置であり、例えばデジタルシグナルプ
ロセッサである。2aはトレイ2のデータ保持回路であ
り、例えばラッチ回路で構成され、2bはトレイ2のデー
タ転送回路であり、例えばバスドライバで構成され、2c
はトレイ2の制御手段であり、例えば論理回路で構成さ
れている。4はデータ処理ユニット1にデータを供給す
る手段の一部であると同時にデータ処理ユニット1を制
御する手段の一部でもある記憶装置であって、例えばRA
M(ランダムアクセスメモリ)で構成されている。5は
データ処理ユニット1とトレイ2の同期動作を行う手段
であり、内部の5aは、クロック発生回路で、例えば、水
晶発振回路で構成され、5bはクロック分配回路であり、
例えば、バッファ回路から構成される。6はシストリッ
ク的に戻るデータとしてトレイに入力する場合のデータ
と外部データとの選択を行う選択回路で、7はシストリ
ックされるデータを途中からバイパスする選択回路であ
る。
本実施例は、中間結果 を求めるところまでは第1の実施例と全く同一であり、
各データ処理ユニット中にその中間結果 の各要素が求まっている状態から (a)中間結果をトレイ2に書き込み、 (b)バイアスの選択回路7をオンさせて、シフトレジ
スタの長さをmに変更し、 (c)以後は本発明の第1の実施例において、 そして、nをmに、mをkにそれぞれ変更すればまった
く同じ動作となる。
第3図(B)は第2の実施例の動作フローチャート、
第3図(C)は第2の実施例の動作概要図、第3図
(D)は第2の実施例の動作タイムチヤートである。
まず、m×nの と要素数nのベクトル との積、そして、k×mの行列Bを左から掛ける場合、
第3図(B)のフローチャートに示される動作となる。
Xiをトレイ2iにセットする。Yiの値を0にする。すなわ
ちデータ処理ユニットのi番目のユニットにおける累積
レジスタの値を初期化する。i番目の処理ユニット1i
11iからの入力と、12iの入力を掛け合わせて、積を累積
器Yiに足し込む。そしてシフトレジスタ3をシフトす
る。この内積とシフト動作をn回繰り返す。この処理に
おいて との積が形成される。
次に、シフトレジスタの長さをmに変更し、Yiをトレイ
2iに転送する。そして、Zi(i=1,・・・,k)を0にす
る。次にB行列を掛けるために、まず、i番目の処理ユ
ニット1iと11iからの入力と12iの入力を掛け合わせて、
積を累積器Ziに足し込む。そして、シフトレジスタ3を
シフトするこの内積とシフト動作をk回繰り返す。
第3図(C)は以上の動作概念図である。同図におい
てトレイ2内のデータX1からXnはベクトル の要素でその個数はまず、nであるとする。またデータ
処理ユニットは最初は、m個が有効で、その各々に累積
器がY1,Y2,・・・,Ymがあるとする。まず、m×nの長
方行列Aの要素はA11からAmnまでのm×n個存在する。
データ処理ユニットの11には係数行列の第1行目である
A11,A12,・・・,A1nが同期的に121の入力バスから入力
される。またデータ処理ユニット12はA22,A23,・・・,A
21がシストリック動作の各タイミングで順番に与えられ
る。また、データ処理ユニット1mにはAmm,Am m+1,・・
・,Am m-1が同期的に与えられる。
第3図(D)は第3図(C)の動作のタイミングチャ
ートである。時間T1からTnの動作は第3図(C)のそれ
ぞれの図と第3図(D)の時間T1,T2,・・・,Tnとが対
応している時、時間タイミングT1においては、第3図
(C)に示されるように、トレイの1,2,・・・,nには
X1,X2,・・・,Xk,・・・,Xnがあり、ユニット1,2,・・
・,k,・・・,mにはそれぞれ係数行列の要素A11,A22,・
・・,Akk,・・・,Ammが入力されている。従って、この
タイミングにおいてデータ処理ユニットは、トレイ1に
おいて、A11とトレイ1のデータX1との積を求め、デー
タ処理ユニット2においてはトレイ2にあるX2と、メモ
リから与えられるA22との積を求め、同様に、データ処
理ユニット2-kにおいてはAkkとXkの積を求め、データ処
理ユニット2-mにおいて、AmmとXmの積を求める。このタ
イミングは第3図(D)のT1のタイミングで行われてい
る。すなわち積和を求める同期クロックにおいて、バス
111にはX1があり、バス121にはA11があり、バス112
は、X2、122にはA22、11kにはXk、12kにはAkkがあり、1
1mにはXm、12mにはAmmがのっている。従って、第3図
(C)のT1タイムにおける図に示すように、内積演算が
行われる。累積器Yの値はこの時は0であるから内積結
果は0に掛けた値が加わることになる。積和演算が終わ
るとシフト動作に入る。すなわち第3図(D)の図に示
されるように、T1とT2との間がシフト動作であり、トレ
イの隣接するトレイ間でデータのシフトが行われる。す
なわち左シフトがこの場合行われる。すると第3図
(C)のタイミングT2に移る。第3図(D)の動作タイ
ミングでも同様にT2の積和の時間区域となる。するとシ
フトされているからトイレ1にはX2、トレイ2にはX3
トレイkにはXk+1、そしてトレイmにはXm+1が供給さ
れ、また、係数行列の要素もデータ処理ユニット1-1,1
-2,・・・,1-k,・・・,1-mにはそれぞれA12,A23,・・・
Ak k+1,・・・,Am m+1が力される。これは第3図(D)
のT2のタイミングにおいてもバス上のデータがそれぞれ
示されている。従って、T2のタイミングにおいてA12とX
2との積を取り、前の累積器Yとの和が求められる。従
ってデータ処理ユニット1-1においてはT1において求ま
ったA11とX1との積とT2において求められるA12とX2との
積との和が求められその結果が累積器に格納される。同
様にデータ処理ユニット1-2においては前の結果であるA
22×X2+A23×X3の結果が累積器に格納される。データ
処理ユニット1-kや1-mに対しても同様である。そしてま
たシフトし、タイミングT3に移る。トレイ1にはX3、ト
レイ2にはX4、トレイkにはXk k+2、トレイmにはXm
m+2、トレイnにはX2が入り、第3図(C)のT3時間に
おける図に示されるような内積演算が実行される。
このような演算が進み、時間区域Tnまで行うと第3図
(C)の時間区域Tnに示されるようにA1n×Xnが前の累
積器との値に加えられるとトレイ1においてはT1で求め
たA11×X1、T2におけるA12×X2、Tkで求めたA1k×Xk
の積の和が求まり、Tn-1までの内積結果が累積器Yに格
納されているので、その結果にA1n×Xnが加わって の1行目とベクトル との内積が実行される。データ処理ユニット1-2におい
ては同様に行列Aの2行目の行ベクトルとベクトル との内積演算がnクロック周期で行われ、同様にk行目
の行ベクトルと、ベクトル の内積がデータ処理ユニット1kで実行される。
データ処理ユニットの有効数をk、トレイの有効数を
mとした場合に、k×mの と要素数mのベクトル との積を求める動作となる。Yiをトレイ2の1iにセット
する。Ziの値を0にする。すなわちデータ処理ユニット
のi番目のユニットにおける累積レジスタの値を初期化
する。i便目の処理ユニット1iは11iからの入力と、12i
の入力を掛け合わせて、積を累積器Ziに足し込む。そし
てシフトレジスタ3をシフトする。この内積とシフト動
作をm回繰り返す。この処理において との積が形成される。
第3図(C)においてトレイ2内のテータY1からYm
ベクトル の要素でその個数はmであるとする。またデータ処理ユ
ニットの有効数はk個あり、その個々に累積器がZ1,Z2,
・・・,Zkがある。k×mの の要素はB11からBkmまでのk×m個存在する。データ処
理ユニットの1iには の第1行目であるB11,B12,・・・,B1mが同期的に121
入力バスから入力される。またデータ処理ユニット12
B22,B23,・・・,B21がシストリック動作の各タイミング
で順番に与えられる。また、データ処理ユニット1kには
Bkk,Bk k+1,・・・,Bk k-1が同期的に与えられる。
第3図(D)は第3図(C)の動作のタイミングチャ
ートでも同様の記号が使われている。時間Tn+1からT
n+m+1の動作は第3図(C)のそれぞれの図と第3図
(D)の時間とが対応している。時間タイミングTn+1
おいては第3図(C)に示されるように、トレイ1,2,・
・・,mにはY1,Y2,・・・,Ymが移され、ユニット1,2,・
・・,kにはそれぞれ の要素B11,B22,・・・,Bkkが入力されている。次のタイ
ミングTn+2においてデータ処理ユニット1においてB11
とトレイ1のデータY1との積を求め、データ処理ユニッ
ト2においてはトレイ2にあるY2と、メモリから与えら
れるB22との積を求め、同様にユニットkにおいてはBkk
とYkの積を求める。このタイミングは第5図(d)のT
n+2のタイミングで行われている。すなわち積和を求め
る同期クロックにおいて、バス111にはY1があり、バス1
21にはB11があり、バス112にはY2、122にはB22、113
はY3、123にはB33があり、11kにはYk、12kにはBkkがの
っている。従って、第3図(C)のTn+2における図に示
すように内積演算が行われる。累積器Zの値はこの時は
0であるから内積結果は0に掛けた値が加わることにな
る。積和演算が終わるとシフト動作すに入る。すなわち
第3図(D)の図に示されるように、Tn+2とTn+3との間
がシフト動作であり、トレイの隣接するトレイ間のデー
タのシフトが行われる。すなわち左シフトがこの場合行
われる。すると第3図(C)のタイミングTn+3に移る。
第3図(D)の動作タイミングでも同様にTn+3の積和の
時間区域となる。すると、シフトされているからトレイ
1にはY2、トレイ2にはY3、そしてトレイkにはYk+1
格納され、また、係数行列Bの要素もトレイ1,2,・・
・,kにはそれぞれB12,B23,・・・,Bk k+1が入力され
る。これは第3図(D)のTn+3のタイミングにおいても
バス上のデータがそれぞれ示されていれ。従って、Tn+3
のタイミングにおいてB12とY2との積をとり、前の累積
器Zとの和がも求められる。従って、ユニット1におい
ては、Tn+2において求まったB11とY1との積とTn+3にお
いて求められるB12とY2との積との和が求められてその
結果が累積器Zに格納される。同様にユニット2におい
ては前の結果であるB22×Y2+B23×Y3の結果が累積器Z
に格納される。データ処理ユニット1-kに対しても同様
である。そしてまたシフトし、タイミングTn+4に移る。
このような演算が進み、時間区域Tn+m+1まで行う第3
図(C)の時間区域Tn+m+1に示されるようにB1m×Ym
前の累積器Zとの値に加えられるとユニット1において
はTn+2で求めたB11×Y1、Tn+2におけるB12×Y2、Tn+3
求めたB13×Y3等の積の和が求まり、Tn+mまでの内積結
果が累積器に格納されているので、その結果にB1m×Ym
が加わって行列Bの1行目とベクトル との内積が実行される。ユニット2においては同様に行
列Bの2行目の行ベクトルとベクトル との内積演算が行われ、同様にk行目の行ベクトルと、
ベクトル の内積がデータ処理ユニット1kで実行される。従って、
このような時系列で処理を行うことによってk×mの に対してmに比例する処理時間で実行可能となり、従っ
て良好な台数効果を得ることが可能となる。
本実施例においてはシフトレジスタ3の長さを変更で
きること、及び中間結果をトレイ2に書き込み、それを
新たなデータとして処理できることが重要である。シフ
トレジスタ3の長さを変更できなければ、データをすべ
て巡回するためにn単位時間が必要になってしまう。ま
た中間結果を新たなデータとして処理できることで小規
模なハードウエアでリングシストリックアレイ方式より
広い範囲の処理が実行可能となっている。さらに書き込
みに要する時間が短くて各一定であることも重要であ
る。
第4図は本発明の第3の実施例説明図である。このシ
ステムはm×nの すなわち(n×m)の行列と要素数mのベクトル との積とを計算するものである。同図において第1図に
示したもの同じものは同一の記号で示してある。
との積を求める場合においては を構成する部分行ベクトルを各データ処理ユニット1に
接続された記憶装置4中に格納し、演算途中に生ずる部
分和をトレイ中のデータ保持回路2a上に累積しつつシフ
トレジスタ3上のデータを循環させる。
第4図(A)は第3の実施例の構成の詳細ブロック図
であり、n×m(n≧m≧1)の と要素数mのベクトル (要素数n)を求めるものである。同図において、第1
図で示したものと同一のものは同一の記号で示してあ
り、1aはデータ処理ユニット1の処理装置であり、例え
ばデジタルシグナルプロセッサで構成され、2aはトレイ
2のデータ保持回路であり、例えばラッチ回路で構成さ
れ、2bはトレイ2のデータ転送回路であり、例えばバス
ドライバで構成され、2cはトレイ2の制御手段であり、
例えば論理回路で構成され、4はデータ処理ユニット1
にデータを供給する手段の一部であると同時にデータ処
理ユニット1を制御する手段の一部である記憶装置であ
り、例えばRAM(ランダムアクセスメモリ)で構成さ
れ、5は処理ユニット1とトレイ2の同期動作を行う手
段であり、5aはクロック発生回路であり、例えば水晶発
振回路で構成され、5bはクロック分配回路であり、例え
ばバッファ回路から構成される。
第4図(B)は第3の実施例の動作フローチャートで
ある。Xiをユニット1i(i=1,・・・,m)にセットす
る。そしてYi(i=1,・・・,n)の値を0にする。各ユ
ニット1iはAjiとXiを掛け合わせ、積をYiに足し込む動
作をi=1,・・・,nに対して行ってシフトする。この動
作をj=1,・・・,mに対して繰り返す。転置行列とベク
トルの掛け算は、記憶装置4中に格納された の各部分行ベクトルをそのままにして計算可能となり、
これは後述するニューラルネットの学習アルゴリズムの
1つであるバックプロパゲションの実行においては極め
て重要となる。またネットワークの量はオーダnですむ
こと。リングネットワークである。またデータ転送時間
が処理時間の影に隠れて転送時間に対するオーバヘッド
はないことになる。しかもSIMD方式である。
第4図(C)は第3の実施例の動作概要図である。ユ
ニット11には、A11からA1mまでを順に与えていく。ユニ
ット12にはA22からA23,・・・,A21を与え、k番目のユ
ニットには記憶回路を介して、Akk,Ak k+1,・・・,Ak
k-1を順に与える。m番目にはAmm,Am m+1,・・・,Am
m-1を順に与えていく。また、トレイ上を循環するもの
はY1からYnである。
第4図(D)は第3の実施例の動作タイクチヤートで
ある。時間区域T1からTnまでのバス上のデータが示さ
れ、これらは第6図(c)の時間区域T1からTnまでの図
にそれぞれ対応している。時間区域T1においては、Y1
らYnまではすべて0である。そしてA11とX1との積がユ
ニット11で形成され、それをY1に足し込む。それと同時
にA22とX2がY2に足し込まれ、Akk×XkがYkに足し込み、
Amm×XmがYmに足し込まれる。そしてシフト動作に入る
とタイミングT2になる。すなわちYデータが循環する。
第1のユニットではA12×X1が計算され、これがY2に足
し込まれるが、そのY2はT1において求まったA22×X2
値が格納されているのでこれに足し込まれる。そのた
め、A22×X2+A12×X1の結果がY2となる。同様にユニッ
ト2においては、前のY3の欠格にA23×X2が足し込まれ
る。k番目のユニットにおいてはYk+1にAk k+1×Xkが加
えられる。また、m番目のユニットにはYm+1にAm m+1×
Xmが加えられることになる。このように、Yデータを循
環するとm番目の時間区域Tnにおいては、例えば第1の
ユニット11においては、その前までに求まったYnにA1n
×X1が加えられる。またY1にはA21×X2が加えられる。
これを全体的に眺めてみると、例えば、ベクトル の第1の要素X1には、T1においてA11と積がとられ、A11
×X1が計算される。それはY1に格納される。また、 の第1行目の第2番目の要素A21×X2は実は最後のクロ
ック周期Tnにおいて計算されている。これは同じY1に格
納されている形になっている。また、 の第1行目の最後の要素であるAm1とXmとの積は第4図
(C)のクロック周期Tn-m+2のm番目のユニットで計算
されている。すなわちAm1とXmの積がY1に足し込むこと
によって得られる。
の第2行目においても同様であり、A12とX1との積はT2
のクロックにおいては、ユニット1において計算されて
いる。また、A22×X2はクロック周期T1の第2番目のユ
ニットにおいて行われている。そしてY2が再び循環じて
積の実行が行われるのは、時間区域Tn-m+3である。その
時間区域以後は乗算が行われ、シフト動作が行われる。
そして時間区域TnにおいてはY2に足し込まれる値は第3
番目のユニットであり、Y2に足し込まれる値はA32×X3
である。従って、Tnにおいて の第2行目とベクトル の内積が計算される。一般に第k番目のユニットに関し
てはk番目のトレイからのデータ線が11kであるから第
4図(D)に示されるように、11kに示すところを追っ
ていけばよいことになる。すなわち、T1においてはYk
Akk×Xk、T2においてはYk+1+Ak k+1×Xk、T3において
はYk+2+Ak k+2Xkが計算され、Tn-1においてはYk-2+Ak
k-2Xkが計算され、時間区域TnにおいてはYk-1+Ak k-1
Xkが計算されることになる。このことにより とm次元のベクトルxの積が実行される。すなわち、 とベクトルxとの積を求める場合においては、 を構成する部分行ベクトルを各データ処理ユニット1に
接続された記憶装置4中に格納し、演算途中に生ずる部
分和をトレイ2のデータ保持回路上に累積しつつシフト
レジスタ上を循環させている。このような方法により との積Xに継続して の積を求める場合は、 とベクトル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はシグモイド関数と称される単調非減少
連続関数及びその微分係数を計算するシグモイド関数ユ
ニットであり、例えば多項式による近似式により実現さ
れる。103は学習時の終了を判定する手段であり、例え
ば通信手段により前記各処理ユニット1と接続されたホ
ストコンピュータと、各処理ユニット1が計算した出力
誤差を前記通信手段により前記ホストコンピュータに通
知する手段と、一般に複数個の前記出力誤差値を基に学
習の終了を判定し、ニューロコンピュータの停止を行う
手段とから構成される。なお102はニューロコンピュー
タの全体である。
第5図(B)は本発明のニューロコンピュータにおい
て処理の計算における基本素子であるニューロンモデル
の実施例図である。ニューロンモデルは入力X1,X2,・・
・,Xnの各々にシナプス結合としての重み時W1,W2,・・
・,Wnをそれぞれ掛け、その総和を求め、これを内部値
Uとする。このUに非線形関数fを施し、出力Yとす
る。ここで非線形関数fは図に示すようなS型のシグモ
イド関数が一般に使われる。
第5図(C)は第5図(B)のニューロンモデルの複
数を用いて入力層、中間層、出力層の3層構造でニュー
ロコンピュータを形成する階層型のニュートラルネット
ワークの概念図である。第1層の入力層は入力信号I1,I
2,・・・,IN(1)を入力する。第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において入力データ、すなわちI1
からIN(1)までのデータをシフトレジスタ上にセットす
る。そして層の数をLで表すと、以下のすべての処理を
層分繰り返す。例えばLが3であった場合には、2回繰
り返す。繰り返される層は1層分の前向きの処理であ
る。そして、処理が終了する。その1層分の前向き処理
が下側に示されている。今、中間層に注目すると、lは
2である。ステップ72において、シフトレジスタの長さ
をN(l−1)にする。すなわち、l=2であるからN
(1)、すなわち入力層の数にする。ステップ73は中間
層におけるニューロンモデルの処理である。インデック
スのjは1から入力層のユニット数N(1)まで変化さ
せる。Wij(l)は入力層と中間層の間の結合における
重み係数である。すなわちl=2である。Yj(l−1)
は入力層のj番目のユニットからの出力である。iは中
間層のi番目のユニットを意味する。i番目のユニット
の状態Ui(2)は入力層の出力Yj、すなわちj番目のY
に重みWijをかけてその総和より計算される。ステップ7
4に移って、その中間層のi番目の状態Ui(2)は非線
形関数、すなわちシグモイド関数に入力され、その出力
がYi(2)となる。すなわちステップ73の内積計算は第
5図(A)のユニット内で行うが、このシグモイド関数
の計算は、101によって行われる。ステップ75で例え
ば、中間層のi番目のユニットの出力Yi(2)はトレイ
のi番目に出力される。そして処理が終わる。以上の前
向き処理を入力層、中間層、出力層に対して行うことに
なる。このようにして各層の前向き処理が終了する。す
なわちニューロン単体のシミュレーションに必要な処理
は第5図(B)の式で示される演算で、その内容は重み
と入力ベクトルとの内積演算及びその演算結果に対する
シグモイド関数値の計算であり、その関数値の計算はシ
グモイド関数ユニット101により実現される。従って、
ネットワーク中のある1層の処理は第5図(C)に示す
ように、そのニューロン単体の演算をその層内の全ニュ
ーロン分行うことである。従って内積演算は各ニューロ
ンi番目とするの結合係数ベクトルを並べた (l)=〔Wij(l)〕と、その層への入力を並べたベ
クトル (l)=〔Xj(l)〕の積のベクトル となり、これは本発明の第3の実施例で説明した方法で
実行可能となる。またシグモイド関数演算は各シグモイ
ド関数ユニット101が積ベクトルの各要素、Ui(l)を
入力し、対応する関数値Yi(l)=f(Ui(l))を出
力することによってなされる。継続する層すなわち、第
(l+1)層が存在する場合には、その各関数値出力Yi
(l)を各トレイに書き込み、第(l+1)層の処理に
おいてはこれを入力として以上の過程を繰り返す。
次に第5図(A)のニューロコンピュータを用いて学
習動作、すなわちバックプロパゲーションアルゴリズム
を実行する場合について説明する。
第5図(E)は第4の実施例の学習処理フローチャー
トである。ニューロコンピュータにおける学習とはネッ
トワークが所望の入出力関係を満たすようになるまで各
ニューロンの重みを修正することである。学習方法は所
望の入力信号ベクトルと教師信号ベクトルとの対を複数
個、すなわち教師信号の集合分だけを用意し、その中か
ら1対を選び、その入力信号IPを学習対象ネットワーク
に入力し、入力に対するネットワークの出力と正しい出
力信号、すなわちその入力信号に対応した教師信号OP
を比較する。この差を誤差と称するが、その誤差、及び
この時の入出力信号の値を基に、各ニューロンの重みを
修正することになる。この過程を教師信号の集合中の全
要素にわたり学習が収束するまで繰り返すものである。
すなわち、入力パターンの数の分だけ、すべて重み値と
して分布的に記憶することになる。この後ろ向き処理と
呼ばれる重みの修正過程において出力層で得られた誤差
を途中で変形しながら入力層に向け通常の信号の流れる
向きとは逆方向に伝播させる。これがバックプロパゲー
ションのアルゴリズムである。
まず前記誤差Dを以下のように再帰的に定義する。Di
(l)は第l層のi番目のニューロンから逆向きに伝播
される誤差、Lはネットワークの層数である。
Di(L)=f′(Ui(L))(Yi(L)−Opi)(最終層) (1) Di(l−1)=f′(Ui(l−1)) Σj=1,N(l)Wji(l)Dj(l) (l=2,・・・,L) (2) (i=1,・・・,N(l)) ここでf′(U)はシグモイド関数f(X)のXに対
する微係数f′(X)のX=Uの時の値であり、例えば f(X)=tanhX (3) ならば、 f′(X)=d(tanhX)/dX=1−tanh2X =1−f2(X) (4) であるから、 f′(Ui)=1−f2(Ui)=1−Yi2 (5) である。
このDiとYiを基に、以下にように重みを更新する。基
本的には次の式を用いる。ここでηは重みを更新する刻
み巾であり、小さければ学習安定に収束する収束が遅く
なり、大きすぎると収束ひなくなるという性質を持った
パラメタである。
Wij(l)(t+1)=Wij(l)(t)+ΔWij(l)
(t) (6) ΔWij(l)(t)=ηDi(l)Yj (l−1)(l=2,・・・,L) (7) しかし、次の式も良く用いられている。これは上式の
ΔWij(l)(t)を1次にデジタルローパスフィルタに通
したことになっており、αはその時定数を決めるパラメ
タである。
ΔWij(l)(t+1)=ηDi(l)Yj (l−1)+αΔWij(l)(t) (8) この後ろ向き処理の過程において必要となる演算はベ
クトル間の演算、或いは行列とベクトルとの演算であ
り、特にその中心となるのは各層のニューロンの重みを
要素とする重み と前記誤差ベクトルDj(l)との乗算である。この誤差
ベクトルは1層内に複数個のニューロンがある一般の場
合、誤差はベクトルとなる。
第5図(E)の左のフローチャートを説明する。
1層分の前向きの処理と後向きの処理が行われる。ま
ず、入力データIPをシフトレジスタ上にセットし、1層
分の前向き処理をシステムで行う。これは各層で行われ
るため、この前向き処理を層の数分だけ繰り返す。する
と出力データOPが出力されるので、これをシフトレジス
タ上にセットしする。そして、ステップ79から以下を出
力層のユニット分だけ並列に実行する。すなわち誤差Di
(L)=Yi(L)−OP(i)を計算し、この誤差をトレ
イのi番目にセットする。そして出力層から入力層に向
かって各層毎に後向き処理を行う。この後向き処理は第
5図(E)の右上側に示されている。第L番目の層に関
して、この層の数はN(l)であるからシフトレジスタ
長をN(l)にする。そして以下の動作をこの前の層の
ユニット数だけ並列に実行する。すなわち、上記(2)
式を、ステップ83において実行する。ここで重要なのは
重みはWji(l)となっており、これは重み行列の の要素になっている。そしてステップ84において、上記
(6),(7)あるいは(8)式を計算し、重みの更新
を行う。ステップ85で、求まった誤差Di(l−1)をト
レイのi番目に出力する。これは次の誤差を計算するた
め、ステップ84の動作に必要となる。第5図(A)の右
下は第5図(E)の左のフローチャート、すなわち前向
き処理と後向き処理の連続処理を学習が習得するまで繰
り返すことを意味するフローチャートである。また、こ
のような処理において重みの更新と学習を安定にするた
めに重みの修正量の平滑化等の処理があるが、これらは
いずれも行列のスカラ倍及び行列同士の加減算からな
り、やはり、本ニューロコンピュータにおいて行える。
またシグモイド関数ユニット101はハードウエアで実現
するものとしているが、ソフトウエアで実現してもよ
い。また、学習の終了の反転手段103はホストコンピュ
ータ上のソフトウエアで実現してもよい。
以上のニューロンコンピュータをさらに第5図(F)
を用いて説明する。第5図(F)はエラーバックプロパ
ゲーションの学習を行う時の処理フロー図である。ここ
では、ベクトル表示を用いている。同図において (l)は第l層のニューロンベクトル、Wは同じく結合
係数、すなわち重み行列である。fはシグモイド関数、
e(l)は第l層の出力側から逆向きに伝播してきた誤
差ベクトル、 は重みの修正量である。入力信号が与えられると、ま
ず、3層である場合には、入力層はないものとすれば、
隠れ層の前向き処理を行う。それが である。このuに非線形関数を施せば、次の層、すなわ
ち(l+1)層の入力となる。これは出力層の入力であ
るから、その前向き処理を行う。そして教師信号を入力
し、後向き処理になる。出力層においては教師信号と出
力信号の誤差eをfの微分を掛けて後向き処理にする。
また中間層等の間の誤差は逆伝播してくる誤差信号に微
分をかけた変数に重み行列の をかけて求められる。誤差ベクトルの各要素にシグモイ
ドの微分をかけた値に前の の要素を掛けてこれより を更新すればよい。このようにして、出力層の後向き処
理、及び隠れ層の後向き処理が行われる。前向き処理で
行う演算は、重み との積、この結果ベクトルの各要素のシグモイド関数の
値の計算である。この計算は各ニューロンで並列に計算
できる。また後向き処理でも仕事は大きく分けて2あ
り、1つ目は教師信号と出力信号との誤差を順次変形し
ながら、後から前へ逆向きに伝播すること、また2つ目
はその誤差を基に重みを修正することである。この逆向
きの計算では重み による乗算が必要になる。
とベクトルの積は前の実施例で述べている。すなわちバ
ックプパゲーションの学習を実現する再の重要な点は重
み行列の とベクトル乗算の効率な実現方法である。
さらに第5図(G)と(H)を用いて前向き積和計
算、及び後向き積和計算の実施例を説明する。前向き積
和演算は行列×ベクトルの計算で、特に行列は重み である。本発明で、行列ベクトル積 を計算する場合、例えば、次の式 に対して、重み行列の行とベクトル との積が同時に行われる。この処理方式を第5図(g)
を用いて説明する。重み は長方行列である。例えば、3×4の行列である。ベク
トル の各要素はトレイ上に入力される。T1の時刻において、
X1とW11、X2とW22、X3とW33が各々のユニットで計算さ
れる。T2に移るとベクトル の各要素は上に巡回シフトする。T2においてW12とX2
の積がU1に足される。したがってU1はこの時刻にはX1×
W11+X2×W12となる。また、第2のユニットではW23とX
3が掛けられ、第3番目のユニットではW34×X4が掛けら
れる。T3において、W13とX3が掛けられU1に足し込まれ
る。W24とX4が掛けられ、U2に加えられる。W31とX1が掛
けられU3に足し込まれる。この時X2は演算の対象からは
ずされている。T4において、W14とX4、W21とX1、W32とX
2がそれぞれ同時に掛けられU1、U2、U3にそれぞれ足し
込まれる。この場合、X3は演算の対象外となっている。
この演算の対象外を考慮することによって長方行列とベ
クトルとの積が実行される。
Wの部分ベクトルWiはPE-iのローカルメモリ上にWi
iが先頭になるようにスキューされて格納されている。X
iはトレイにのってリング上を反時計回りに一回転す
る。UiはPE-i内部のレジスタ上に累積される。
左端の状態でUi=0の状態からスタートする。PE-i
自分の目の前にあるXjとWijと掛け合わせ、その結果をU
iに加算する。同時にXjは隣のトレイに隣接される(リ
ング上を反時計回りに循環する)。これを4回繰り返す
と全てのUiが同時に求まる。
Wiiがスキューされていること、Xiが全てトレイ中に
ある状態からスタートすること、Uiが全て同時に求ま
る。
第5図(H)は後向き積和計算の説明である。これは
転置行列と行ベクトル積、 を計算する時のタイミング図である。この場合、ベクト
ルvは前の層の誤差ベクトルに非線形関数の微分を掛け
た要素からなるベクトルである。
は求めらようとする次の層での逆伝播用の誤差ベクトル
である。本発明で重要なことは、 であっても、前向き積和計算において利用されるメモリ
上のWと同じ配置にしたままで演算できることである。
すなわち本発明では求めるべき のベクトルの巡回シフトによってなされる。演算するべ
との式は(10)式に従う。
上の式において示されるように、 は転置されしかも、長方行列である。e1はW11×v1+W21
×v2+W31×v3である。この演算を行うために、第5図
(H)において、時間区域T1においては第1のユニット
(DSP)において、W11とv1の積が演算されている。これ
が0であるe1に差し込まれる。そして、巡回シフトする
とT2に移るが、e1はT2時刻においては演算の対象になっ
ていない。そしてT3になると、3番目のユニットにおい
て演算対象となっている。すなわちW31にv3を掛けた値
が前の値に足し込まれるため、W11×v1に足し込まれ
る。そのため時間区域T3においては、e1の結果はW11×v
1+W31×v3となる。そしてT4に移ると、e1は巡回シフト
として、第2番目のユニットで演算対象となる。ここ
で、e1にはW21×v2が加えられるため、(10)式の行列
の第1行目とベクトルvとの内積演算が実行され、その
演算結果がe1に格納されることになる。
同様に第2行目とベクトルとの積はe2を追えばよい。
T1時刻にはW22×v2、T2にはW12×v1、T3では、e2が遊び
になり、T4でW32×v3の積が求まれ、各々の積の和とし
て計算される。
の第3行目とベクトル との積はe3を追えばよい。T1においてはW33×v3、T2
おいてはそれにW23×v2が足し込まれ、T3において、更
にW13×v1が足し込まれる。T4はe4は遊びとなる。
の第4行目とベクトルvとの積はe4を追えばよい。T1
刻ではe4は遊びである。T2ではW34×v3、T3ではW24×v2
が足し込まれ、T4において更にW14×v1が足し込まれ
て、計算ができる。このように本発明では、Wの部分ベ
クトルWiは前と同様PE-iのローカル目上にWiiが先頭
になるようにスキューされて格納されている。前と入れ
替わるのはeiとViである。つまり、eiはトレイ上を反時
計回りに循環しながら累積され、ViはPE-i内部に常駐す
る。
左端の状態でej=0からスタートする。PE-iはViとWi
jとを掛け合わせ、その結果を自分の目の前にあるejに
加え込む。同時にこの更新されたejは隣のトレイに転送
される(リング上を反時計回りに循環する)。これを4
回繰り返すと全てのejが同時に求まる。
このように本発明のニューロコンピュータは層が何層
であっても実現でき、学習アルゴリズムの自由度が高い
という柔軟性を持つばかりでなく、DSPの速度そのまま
を利用でき、しかもそのDSPの演算においてオーバヘッ
ドがなく、高速性があり、しかもDSPによるSIMDが実行
できる。
第6図は本発明の第5の実施例説明図であり、アナロ
グデータによる行列の積を求めるものである。図中、第
2図で示したものと同一のものは同一の記号で示してあ
り、1dはデータ処理ユニット1の処理装置であり、例え
ばアナログ乗算器1eと積分器1fで構成され、2dはトレイ
2のデータ保持回路であり、例えばサンプル/ホールド
回路2fで構成され、2はトレイ2のデータ転送回路であ
り、例えばアナログスイッチ2gとバッファアンプ2hで構
成され、6はトレイ2にデータを設定する手段であり、
例えばアナログスイッチ6dで構成される。
本実施例の動作は本発明の原理図(第1図)で説明し
た動作と同じである。
第7図は本発明の第6の実施例説明図であり、帯行列
とベクトルとの乗算を示している。図中、第2図で示し
たものと同一のものは同一の記号で示してある。
本実施例の動作を第7図(B)を参照しつつ説明す
る。本発明では、m×n(n≧m≧1)で巾kの と要素数nのベクトル との乗算結果(要素数mのベクトル )を求める場合において、第7図(A)の如く、各々2
つの入力を持ち乗算機能と概乗算結果の累積機能を有す
るm個のデータ処理ユニット1と、n個のトレイ2と、
前記各データ処理ユニット1に接続された入力データ供
給手段とから成る構成に於いて、第7図(B)に示す手
順で、第7図(C)及び第7図(D)のような時系列で
処理をするようにしている。従って、巾kの帯行列とベ
クトルとの乗算がkに比例する処理時間で実行できる。
本実施例に於いて重要な異は、ベクトル を1回転させない事、及びベクトル をシフトレジスタ3上にセットする際に、第1の実施例
等と異なり、頂度帯が始まる位置にずらしておくことで
ある。すなわち、帯の開始位置から処理を開始する場合
は、ある方向にずらしながら積和演算を行えばkに比例
する時間で処理が終了する。しかし、図示しない何らか
の事情で帯の途中に配置した状態から処理を開始する場
合は、始めにベクトル を一端までずらせばよいことは明らかであり、その場
合、シフトレジスタ3が双方向にシフト可能であること
が意味を持つのである。
即ち、例えば帯の中央から処理を開始する場合は、初
めに右にk/2(小数点以下切り捨て)だけずらし、以後
逆方向(この場合左)にずらしながら積和演算を行え
ば、合計3/2kに比例する時間で処理が終了する。
もし、シフトレジスタ3が双方向にシフト可能でなけ
れば、ベクトル を1回転させねばならないため、帯行列の巾kではなく
その大きさnに比例する時間が必要になる。大規模な帯
行列の於いては、この差は非常に大きく、帯行列とベク
トルとの乗算が帯行列の巾kに比例する処理時間で実行
可能となることは本発明の方式の利点である。
第8図はトレイの構造を具体的に示す。
トレイは基本的には単なる1語のラッチであるが、DS
Pからのアクセスと、隣のトレイへの転送を1サイクル
で実行できる(ポストシフト)。
機能の切り替えは、アドレス線の下位ビットにより、デ
ータのアクセスと同時に行い、速度を向上させている。
一つのトレイはゲートアレイで約1200Basicセルの規
模であり、1チップに2〜4個入れることも可能であ
る。
また、トレイ中にワークレジスタを数ワード内蔵する
ことも可能である。
第9図は本発明の実施例を用いて、実際に構成された
ニューロコンピュータのブロック図である。
Sandyの基本構成はDSPの一次元トーラス(リング)結
合によるSIMD型マルチプロセッサである。
特徴的なのは、結合トポロジーや動作は1次元シスト
リックアレイと類似しているにも関わらず、SIMDとして
動作する事である。
各DSPと双方向バスで接続されている“トレイ”は、
転送機能を有するラッチであり、相互にリング状に接続
され、全体でサイクリックシフトレジスタを構成してい
る。以後このシフトレジスタをリングと呼ぶ。
各DSPは2K語の内部メモリと64語の外付けRAMを持ち、
内部メモリは1サイクルで、外部メモリは1〜2サイク
ルでアクセスできる。
外付けRAMは、プログラムやデータの初期ロード用
に、共通バスでホストコンピュータのVMEWバスに接続さ
れる。外部入力もバッファメモリを介してホストコンピ
ュータに接続されている。
第10図は本発明の実施例における学習時の時間空間チ
ャートであり、縦方向はプロセッサの数を示し、横方向
は時間を示す。Iは入力層のプロセッサの数、Hは隠れ
層のプロセッサの数、τはプロセッサの積和演算の時間
に対応する。
入力信号が隠れ層の前向き積和に要する時間は、入力
層のプロセッサの数Iと1つのプロセッサの積和に対応
する時間τとの積に比例する。次に、シグモイドの計算
が行われる。出力層においても出力層の前向き積和(2H
τ)とシグモイドが行われる。ここで、出力層のプロセ
ッサの数が隠れ層のプロセッサの数より少ないので、リ
ングの大きさ自体も小さくなる。次ぎに教師信号入力と
受信し、誤差計算を行い、誤差のバック・プロパゲーシ
ョンを行う。なお、この誤差計算は出力層のシグモイド
における誤差計算も含む出力層の後向き積和を行い、出
力層の重み更新を勾配ベクトル計算とローパスフィルタ
を介して行う。そして、隠れ層のシグモイドによる誤差
計算を経て、隠れ層においては、後向き積和は行わず隠
れ層の重み更新のみを行う。
〔発明の効果〕
以上説明した様に、本発明によれば従来の方法より広
い範囲の処理に対して、データ処理に伴うデータ転送に
よるオーバヘッド無しにデータを並列に処理出来る効果
を奏し、データ処理ユニットの台数に比例した高速なデ
ータ処理が実現出来ることにより、行列演算あるいはニ
ューロコンピュータ演算を行うデータ処理装置の性能向
上に寄与するところが大きい。
【図面の簡単な説明】
第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で行列ベクトル積 を計算するときのタイムチャート、 第5図(H)は、転置行列での行列ベクトル積 を計算するときのタイムチャート、 第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)及び第12図(B)は、リングシストリック
方式による行列ベクトル積の動作原理図、 第12図(C)は、リングシストリック方式による行列ベ
クトル積の動作原理図である。 1……データ処理ユニット、 2……トレイ、 3……シフトレジスタ、 4……記憶装置、 5……同期手段、 6……データ設定手段、 7……長さ変更手段、 11……データ処理ユニット1の入力、 12……データ処理ユニット1の第2の入力、 21……トレイ2の第1の入力、 22……トレイ二の第1の出力、 23……トレイ2の第2の出力、 24……トレイ2の第2の入力、 82……PE91の第1の入力、 83……PE91の第1の出力、 84……PE91の第2の入力、 85……PE91の第2の出力、 91……PE、 92……PE91の入出力、 93……共通バス.
───────────────────────────────────────────────────── フロントページの続き (72)発明者 浅川 和雄 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 昭63−187377(JP,A) 特開 昭62−42260(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 15/18

Claims (22)

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

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH076146A (ja) * 1993-06-18 1995-01-10 Fujitsu Ltd 並列データ処理システム
JP3136088B2 (ja) * 1996-02-22 2001-02-19 シャープ株式会社 データ処理装置及びデータ処理方法
JP4976800B2 (ja) * 2006-10-05 2012-07-18 日本電信電話株式会社 並列演算方法、演算装置、および演算装置用プログラム
US11281746B2 (en) * 2017-09-14 2022-03-22 Mitsubishi Electric Corporation Arithmetic operation circuit, arithmetic operation method, and program

Also Published As

Publication number Publication date
JPH03105584A (ja) 1991-05-02

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
US5600843A (en) Ring systolic array system for synchronously performing matrix/neuron computation using data transferred through cyclic shift register connected in cascade of trays
US5544336A (en) Parallel data processing system which efficiently performs matrix and neurocomputer operations, in a negligible data transmission time
US5517600A (en) Neuro-chip and neurocomputer having the chip
CN107341547B (zh) 一种用于执行卷积神经网络训练的装置和方法
US5617512A (en) Triangular scalable neural array processor
US20210241071A1 (en) Architecture of a computer for calculating a convolution layer in a convolutional neural network
US5146543A (en) Scalable neural array processor
CN110580519B (zh) 一种卷积运算装置及其方法
US5065339A (en) Orthogonal row-column neural processor
US5148515A (en) Scalable neural array processor and method
US5627944A (en) Parallel data processing system
JP2825133B2 (ja) 並列データ処理方式
JPH07271748A (ja) データを正規化する手段を含むニューラル・プロセッサ
JPH05346914A (ja) ニューロプロセッサ
US20220036196A1 (en) Reconfigurable computing architecture for implementing artificial neural networks
US5146420A (en) Communicating adder tree system for neural array processor
US11687831B1 (en) Method, product, and apparatus for a multidimensional processing array for hardware acceleration of convolutional neural network inference
Ayoubi et al. Efficient mapping algorithm of multilayer neural network on torus architecture
Duranton et al. A general purpose digital architecture for neural network simulations
CN111782356B (zh) 权重稀疏神经网络芯片的数据流方法及***
JPH04233062A (ja) ベクトルの処理方法およびその回路
CN111652365B (zh) 一种用于加速Deep Q-Network算法的硬件架构及其设计空间探索方法
JPH03105583A (ja) 並列データ処理方式
JPH06110864A (ja) 学習処理装置

Legal Events

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