JPH02236658A - information processing equipment - Google Patents
information processing equipmentInfo
- Publication number
- JPH02236658A JPH02236658A JP1056458A JP5645889A JPH02236658A JP H02236658 A JPH02236658 A JP H02236658A JP 1056458 A JP1056458 A JP 1056458A JP 5645889 A JP5645889 A JP 5645889A JP H02236658 A JPH02236658 A JP H02236658A
- Authority
- JP
- Japan
- Prior art keywords
- neuron
- bus
- information processing
- signal
- neurons
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。(57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.
Description
【産業上の利用分野1
本発明はニューラルネットワーク等の電子式情報処理装
置に係り,特にそのハードウエア量を大幅に削減した情
報処理装置に関する.
【従来の技術1
ニューラルネットワークは,ニューロンと呼ばれる情報
処理単位を複数個持ち,各ニューロンは他の幾つかのニ
ューロンから出力される信号を相互に受ける.各ニュー
ロンには複数個のシナプスと呼ばれーる回路が備えられ
,この回路で他のニューロンから受けた信号と相手毎に
定められた係数(以下,重み値と呼ぶ)を掛け算する。
そして,その積の総和に応じて各ニューロンの出力が決
まるようになっている.このようなニューラルネットワ
ークの例が,日経エレクトロニクス誌の1987年8月
10日号(No.4 2 7)の115頁からの記事に
紹介されている.また,日経マイクロデバイス誌の19
88年7月号の72頁からの記事には,ディジタル回路
のみによって構成されたニューラルネットワークの例も
紹介されている.ディジタル回路は,アナログ回路に比
べてハードウエアの量は多くなるが,素子のバラッキや
ノイズ等に対して強く精度を上げることが容易であり,
高集積化に適している。
【発明が解決しようとする課題1
ところで,ニューラルネットワークによってより複雑な
情報処理をさせようとすると,ニューロンの個数を増や
すことが必要になる.ところが,従来の構造のニューラ
ルネットワークでは,各二二一ロンを相互に接続する配
線の量やシナブスの個数がニューロンの個数の2乗に比
例して増えるため,規模の拡張が困難であり,更にニュ
ーロンの個数をある程度以上多くするとその実現が飛躍
的に困難になる。特に,演算精度や耐ノイズ性の面で集
積化に適したディジタル回路の場合,シナプスを構成す
る乗算器には多数の素子が必要であり,この問題は一層
深刻である。
本発明の第1の目的は,ニューラルネットワーク等の情
報処理装置において,情報処理単位であるニューロンの
個数を増やしてもハードウエアの量が飛躍的には増加し
ない情報処理装置を提供することにある。
本発明の第2の目的は,デイジタル回路によって構成し
た大規模なニューラルネットワークを実現することにあ
る。
本発明の第3の目的は,ニューロンの個数を増やしても
歩留まりを下げることなく大規模なニューラルネットワ
ークを構成できる情報処理装置を提供することにある。
本発明の第4の目的は,ニューロンの個数の増加による
動作速度の低下を抑え,高速で大規模なニューラルネッ
トワークを構成できる情報処理装置を提供することにあ
る.
本発明の第5の目的は,より少ない種類のフォトマスク
を用いて大規模なニューラルネットワークを実現できる
情報処理貰置を提供することにある.
【課題を解決するための手段】
本発明の第1もしくは第2の目的は,ニューロン間相互
の信号の伝達を,共通のハードウエアを使って時分割で
行うことにより実現できる。
また,本発明の第1もしくは第2の目的は,重み値を半
導体記憶装置に記憶させ,重み値の絶対値の大きいもの
から所定の個数のみを記憶させることによっても実現で
きる。
本発明の第2の目的は,ニューロン間相互を接続するバ
スを階層化することにより実現できる。
本発明の第3の目的は,上位の階層のバスを構成する配
線の幅や間隔を広くすることにより実現できる.
本発明の第4の目的は,バス上の信号伝達をパイプライ
ン化することにより実現できる。
また,本発明の第4の目的は,重み値をアクセスされる
順に記憶させることによっても実現できる.
本発明の第5の目的は,バスのうちの一部に,位置をシ
フトさせながら隣と接続するものを設けることにより実
現できる。[Industrial Application Field 1] The present invention relates to an electronic information processing device such as a neural network, and particularly to an information processing device in which the amount of hardware thereof is significantly reduced. [Prior art 1] Neural networks have multiple information processing units called neurons, and each neuron mutually receives signals output from several other neurons. Each neuron is equipped with multiple circuits called synapses, and these circuits multiply signals received from other neurons by coefficients (hereinafter referred to as weight values) determined for each neuron. The output of each neuron is then determined according to the sum of these products. An example of such a neural network is introduced in an article from page 115 of the August 10, 1987 issue (No. 4 2 7) of Nikkei Electronics magazine. Also, Nikkei Microdevice Magazine 19
The article starting on page 72 of the July 1988 issue also introduces an example of a neural network constructed entirely of digital circuits. Although digital circuits require more hardware than analog circuits, they are resistant to element variations and noise, and are easy to improve accuracy.
Suitable for high integration. [Problem to be solved by the invention 1] By the way, in order to perform more complex information processing using a neural network, it is necessary to increase the number of neurons. However, in a neural network with a conventional structure, the amount of wiring interconnecting each 221ron and the number of synapses increases in proportion to the square of the number of neurons, making it difficult to scale up. If the number of neurons is increased beyond a certain level, this becomes dramatically difficult to achieve. In particular, in the case of digital circuits that are suitable for integration in terms of calculation accuracy and noise resistance, the multipliers that make up the synapse require a large number of elements, making this problem even more serious. A first object of the present invention is to provide an information processing device such as a neural network in which the amount of hardware does not increase dramatically even if the number of neurons, which are information processing units, is increased. . A second object of the present invention is to realize a large-scale neural network constructed of digital circuits. A third object of the present invention is to provide an information processing device that can configure a large-scale neural network without reducing yield even when the number of neurons is increased. A fourth object of the present invention is to provide an information processing device that can suppress a decrease in operating speed due to an increase in the number of neurons and can construct a large-scale neural network at high speed. A fifth object of the present invention is to provide an information processing system that can realize a large-scale neural network using fewer types of photomasks. [Means for Solving the Problems] The first or second object of the present invention can be achieved by time-divisionally transmitting signals between neurons using common hardware. The first or second object of the present invention can also be achieved by storing weight values in a semiconductor memory device, and storing only a predetermined number of weight values in descending order of absolute value. The second object of the present invention can be achieved by layering buses that interconnect neurons. The third object of the present invention can be achieved by widening the width and spacing of the wires that make up the upper layer bus. The fourth object of the present invention can be achieved by pipelining signal transmission on the bus. The fourth object of the present invention can also be achieved by storing the weight values in the order in which they are accessed. The fifth object of the present invention can be achieved by providing a portion of the bus that connects to its neighbor while shifting its position.
ニューロン間相互の信号の伝達を,共通のハードウエア
を使って時分割で行うことにより,1ニューロン当たり
に必要なシナブスの数が1個で済み,よってニューロン
の個数を増やしても飛躍的にはハードウエアの量が増加
しなくなる。従って,大規模なニューラルネットワーク
を実現することも可能になる。
重み値を半導体記憶装置に記憶させることにより,重み
値の入れ替えが容易になる。そして,絶対値の大きいも
のから所定の個数のみを記憶させることによって,ハー
ドウエアの量を節約することができる。
また,バスをWI層化することにより,ニューロンの数
を増やしても1本のバスに付く負荷が重くならないよう
にすることが可能となり,よって大規模なニューラルネ
ットワークを実現することができる.
WSI(ウエハスケール集積回路)上にニューラルネッ
トワークを構成した場合,バスを階層化すると,上位の
階層のバスに断線やショート等の故障が発生した時には
大きな範囲にその影響が及び歩留まりが下がるが,上位
の階層のバスのみ配線の幅や間隔を広くすることにより
,その部分の故障発生率を下げることができる.
バス上の信号伝達をパイプライン化することにより,1
個のニューロンから他のニューロンに信号が送られる時
間内に数個のニューロンから他のニューロンに信号を送
ることが可能となり,よって動作速度を上げることがで
きる。
重み値をアクセスされる順に記憶させることにより,次
にアクセスされる重み値を予め読み出しておくことが可
能となり,よって動作速度を上げることができる。
位置をシフトさせながら隣と接続するバスを設けること
により,全く同一の形状の集積回路を並べてもそれぞれ
異なる信号を与えることが可能となる.従って,同じマ
スクを使って作成したニューロン回路を並べてWSI(
ウエハスケール集積回路)を構成することが可能となる
。By transmitting signals between neurons in a time-sharing manner using common hardware, the number of synapses required per neuron is only one, so even if the number of neurons is increased, it is not possible to dramatically increase the number of synapses. The amount of hardware will no longer increase. Therefore, it becomes possible to realize a large-scale neural network. By storing the weight values in the semiconductor storage device, it becomes easy to replace the weight values. The amount of hardware can be saved by storing only a predetermined number of data, starting from the one with the largest absolute value. In addition, by layering the bus with WI, it is possible to prevent the load on a single bus from becoming heavy even when the number of neurons is increased, making it possible to realize a large-scale neural network. When a neural network is configured on a WSI (wafer scale integrated circuit), if the bus is layered, if a failure such as a disconnection or short circuit occurs in a bus in a higher layer, it will affect a large area and reduce the yield. By widening the wiring width and spacing of only the buses in the upper hierarchy, it is possible to reduce the failure rate in that part. By pipelining the signal transmission on the bus, 1
This makes it possible to send signals from several neurons to other neurons within the time it takes for signals to be sent from one neuron to another, thereby increasing operating speed. By storing the weight values in the order in which they are accessed, it is possible to read out the next weight value to be accessed in advance, thereby increasing the operating speed. By providing a bus that connects adjacent devices while shifting their positions, it is possible to provide different signals to each integrated circuit even if the integrated circuits have the same shape. Therefore, by arranging neuron circuits created using the same mask, WSI (
This makes it possible to construct wafer-scale integrated circuits.
以下,第1図を用いて本発明の一実施例を説明する.第
1図において,100がニューロンであり,この図では
,説明を簡単にするため,4個のニューロンを接続した
場合を示す。各ニューロンの中には,重み値を記憶する
ためのメモリ101,入力信号と重み値を掛け算するた
めの乗算器102,その積の総和を計算するための加算
器103およびラッチ回路104,その総和を記憶する
ためのラッチ回路105,ラッチ回路105の内容を出
力するためのトライステート出力のバッファ回路106
,そのニューロンが選択されたか否かを判断するための
デコーダ107が備えられている.各ニューロン100
は,バスを介して制御装置200と接続される.301
,302,303,304は,それぞれ入力信号,アド
レス信号,クロック信号,サイクル信号を,制御装置2
00から各ニューロン100へ送るためのバスである.
305は出力信号を各ニューロン100から制御装置2
00へ送るためのバスである。この実施例では,ラッチ
回路104にはバス303からのクロック信号のエッジ
によってデータが取り込まれるものを使用する。また,
各ニューロン100にはそれぞれ固有のアドレスが割り
当てられており,そのアドレスと制御装置200からの
アドレス信号が一致した時にデコーダ107が信号を出
すように設定する。
次に,この装置の動作を説明する。制御装置200は,
第2図に示すように,アドレス信号として各ニューロン
のアドレスを順次繰り返すような信号を,クロック信号
として各アドレスが指定される毎にラッチ回路104に
データを取り込ませる信号を,サイクル信号としてアド
レスが一巡する毎にラッチ回路105にデータを取り込
ませる信号をそれぞれ送出する.制御装置200からバ
ス302により各ニューロン100に一斉に送られたア
ドレス信号は,デコーダ回路107に加えられ,そのア
ドレス信号によって指定されたニューロン内のバッファ
回路106のみが出力バス305に信号を出力する.そ
の他のニューロン内のバッファ回路106は,高抵抗状
態になる.従って,アドレス信号によって指定されたニ
ューロン100内のラッチ回路105の内容が制御装置
200に送られる.制御装置200内では,その信号を
そのまま若しくはシグモイド関数等によって関数変換し
,入力バス301を介して各ニューロン100に送出す
る。各ニューロン100内では,その時にアドレス信号
が指定する相手との間の重み値をメモリ101から読み
出し,その重み値と制御回路200からバス301を介
して送られた入力信号の積を乗算器102によって求め
,その積とそれまでにラッチ回路104に累積された数
値の和を加算器103によって求め,その和がラッチ回
路104に加えられる。ここでバス303からクロック
信号が加えられると,その和がラッチ回路104に取り
込まれる.従って,アドレスが一巡する間に,全てのニ
ューロンからの信号と重み値の積の総和がラッチ回Il
t104内に求まる.そして,バス304からサイクル
信号が加えられると,その総和がラッチ回路105に取
り込まれ,各ニューロン100の新たな出力値となる.
このようにして,第1図の回路はニューラルネットワー
クとして動作する.
ところで,第1図のような構成のままニューロン100
の数を増やして大規模なニューラルネットワークを構成
しようとすると,ニューロン数がある程度以上多くなる
とバスに付加される容量が大きくなって動作速度が遅く
なる.第3図は,これを避けるためにバスを階層構造に
した本発明の一実施例の一部分を示したものであり,1
個のニューロン群150を示す。これを後に述べる(第
4図)ように多数接続すれば,大規模なニューラルネッ
トワークを実現することができる。第3図において,1
0oはニューロン,301〜305は第1階m<最下層
)のバスであり,この部分は第1図のニューロン100
およびバス301〜305と同じように構成する。ただ
し,大規模なニューラルネットワークを構成できるよう
にするため,アドレスバス302のビット数と重み値を
記憶するメモリ101の容量とは第1図の場合より大き
くする必要がある。311,312,313,314,
315は,それぞれ入力信号,アドレス信号,クロック
信号,サイクル信号,出力信号を伝送するための第2階
層のバスである.第2階層のバスのうち311〜314
はバツファ回路158を介して第1階層のバス301〜
304へ信号を送り出し,第2階層の出力八ス315は
トライステートバツファ156を介して第1階層の出力
バス305からの信号を受ける.157は,このニュー
ロン群150の中にアドレス信号が指定するニューロン
100が有るか否かを判定するためのものであり,有る
と判定したときには第1階暦の出力バス305上のデー
タが第2階層の出力バス315に送り出されるようにし
,無いと判定した時にはトライステートバソファ156
の出力を高抵抗状態にする.このニューロン群150を
多数用意して第2階層のバス311〜315同士を接続
すると,1つ1つのバスに付加される容量をあまり増や
さずに多数のニューロン100を接続することができる
。
第4図は,その接続方法の一実施例を示したものである
.第4図は,1枚の半導体基板500の上にWSI(ウ
エハスケール集積回路)として構成した実施例である。
150は1個々々が第3図に示したニューロン群であり
,この図には60個のニューロン群を描いてある。31
1〜315は横方向に設けた第2階層のバスであり,基
板全面に渡って複数組設けてある。321〜325は縦
方向に設けた第3階暦のバスであり,基板中央に1組だ
け設けてある.この実施例では,2〜4個ずつのニュー
ロン群150を第2階暦のバス311〜315によって
接続し,第2階層のバス311〜315はバッファ部3
50を介して第3階層のバス321〜325に接続する
.バッファ部350の構造は,第3図における第1階層
のバス301〜305と第2階層のバス311〜315
の接続部の構造と同様であり,入カバッファ,デコーダ
,出力バソファからなる.そして,第3階層のバス32
1〜325の一端に,制御装i1200を設ける.この
ようにすれば,バスの最大長をせいぜい基板の直径程度
に抑えながら,基板全面に設けたニューロンを全て接続
したニューラルネットワークを実現することができる.
なお,電源については,第2階層のバス311〜315
と平行に電源供給用のバスを走らせ,両端に設けた電源
パッド部450から供給することにより,多数の給電点
を確保することができる.また,電源供給用のバスや第
2階層のバス311〜315および第3階層のバス32
1〜325等に使う配線ついては,ニューロン群150
やバッファ部350の内部の配線より線幅が太く間隔の
広いものを使うのが望ましい。これは,線長の長いこれ
らのバスは配線抵抗が大きくならないように特に注意す
る必要があるためと,階層の上の方のバスに断線やショ
ート等の故障があった場合にはこれにつながる多数のニ
ューロンが使えなくなるため,これらのバスは特に故障
率を下げる必要があるからである.少数のニューロンし
か影響を受けないような故障については,正常なニュー
ロンの側において故障したニューロンに対する重み値を
Oとすることにより,故障した部分を使わないようにす
ることができる.また,制御装置200をこのウエハ5
00の上には設けず,この位置にバッファ回路を設けて
外部に設けた制御装置と接続することも可能である。
制御装置200が故障すると全体が使えなくなるが,こ
の部分だけを外部に設けておけば,故障時には取り替え
ることが可能である。また,制御装置200若しくは外
部との接続用のバップア回路を,多重化することによっ
て故障率を下げたり,歩留まりの高いウエハの中心部分
に設けることも考えられる.さらに,複数の基板500
を用意して,このバッファ回路を介して第4階層のバス
に接続し,更に大規模なニューラルネットワークを構成
することも可能である。
ところで,バスの階層を増やすと,末端のニューロン1
00から出た信号が制御装置200を介して再び末端の
ニューロンlOOに到達するまでの遅延時間が増大する
。しかし,上層のバスと下層のバスを接続するバッファ
の部分にラッチ回路を挿入して信号の伝達を同期化する
ことにより,パイプライン処理を可能にして実質的な処
理時間を増大させずに済む.そのタイミングの一例を,
第5図を用いて詳しく説明する.この図には,ニューロ
ンの個数が100個の場合を示す.クロック信号につい
ては,なるべく高速の回路を用いて,第3階層のバス3
23から第2階層のバス313,更に第1階層のバス3
03への伝播時間が小さくなるように供給する.その他
の信号は,全て各階層のクロック信号に同期して伝達さ
せる.アドレス信号は,各ニューロンのアドレス1〜1
00と時分割の制御に必要なアドレス101〜105を
繰り返すように供給し,最大値105から最小値1に戻
る間には1クロック分のインタバルを置く。
これをクロック信号に同期して伝達させるため,第2階
層,第1階層へと伝播していく時に1クロック分ずつシ
フトする.そして,各ニューロンには第1階層のアドレ
スバス302が接続さ九でいるため,このバス上のアド
レス信号が指定するニューロンの出力値が第1階Mの出
力バス305に出力される。そして,今度はこの出力信
号がクロック信号に同期して1クロック分ずつシフトし
ながら第2階層の出力バス315,第3階層の出力バス
325へと送られる。これが制御回路200を経由して
第3llIJ層の入力バス321へ加えらJ5るが,制
御回路200の中でもクロック信号に同期させるようす
れば,図に示すように1クロック分シフトする.そして
これが再び1クロック分ずつシフトしながら第2階層の
入力バス311,第1階層の入力バス301へと送られ
る。従って,第1階層のアドレスバス302上にアドレ
ス信号が到達してから5クロック分後に,そのアドレス
が指定するニューロンからの信号が各ニューロンに到達
する。従って各ニューロンでは,その時のアドレス信号
が示す数値より5だけ小さい数値のアドレスのニューロ
ンからの信号とみなして累積加算の計算を行う.このよ
うにすれば,バス間の信号伝達を同期化しない場合に比
べてクロック信号の周期を短くできる.
また,第4図のように直径が数インチに及ぶ半導体基板
全面にわたって集禮回路を形成しようとした場合,基板
に塗布したフォトレジストを露光してパターンを形成す
る工程において1度に全面を露光しようとすると解像度
が悪くなるため,例えばニューロン群150を1回の露
光単位として何回かに分けて露光することになる.その
場合,各ニューロン群150のパターンが少しずつでも
異なると全てのパターンに対してそれぞれマスクを用意
することが必要となり,マスクの種類が膨大になって不
経済である.一方,各ニューロンにはそれぞれに個別に
定められたアドレスがあり,これを識別する機能が必要
である.すなわち,各ニューロン群150の中身を全く
変えずに個別のアドレスを識別できるようにする必要が
ある.これを実現する一実施例を第6図に示す.第6図
は,第4図の中のニューロン群1行分の内の更に右半分
について示したものである.第6図において,150は
ニューロン群である.この中で100はニューロン,3
11〜315は第2階層のバス,156はトライステー
トバッファ,158はバッファであり,これらの接続関
係は第3図の時と同様である.350は第3階層のバス
321〜325と第2階層のバス311〜315を接続
する部分であり,166はトライステートバッファ,1
68はバッファである。そして,第3図では各ニューロ
ン群150の中に搭載したデコーダ157は,第6図で
は第3階層と第2階層のバスの接続部350の中に搭載
する。このデコーダ157の出力は4ビットのバス31
Gを介して各ニューロン群150に送られるが,このバ
スは図に示すようにニューロン群150を1個通る毎に
1ビットずつシフトするように形成する。そしてこのデ
コーダ157は,アドレス信号が指すニューロン100
を含むニューロン群150に対応する出力のみをハイレ
ベルにする。すると,各ニューロン群150は全く同一
形状であるにもかかわらず,目的とするニューロン群1
個だけを選択することができる。また,各ニューロン1
00は,アドレス信号の下2ビットとデコーダ157か
ら送られてきた信号によって,自分が選択されたか否か
を判断することができる。更に,接続部350について
も,同様の手法を用いて目的とする1行だけを選択する
ことができる。この場合,アドレス信号の上位のビッ1
−をデコードした結果を制御装置200から9ビットの
バス326を介して各接続部350に送る。9ビットの
バス326は1行毎に1ビットずつシフトするように形
成してあるため,各接続部350は全く同一の形状であ
るにもかかわらず,目的とする1行だけを選択すること
ができる。以上により,第4図に示したニューラルネッ
トワークを作成するのに必要なフォトマスクの種類は,
右側のニューロン群150用,左側のニューロン群15
0用,接続部350用,制御装置200または外部との
接続回路用,電源パッド450用の5セットに抑えるこ
とができる.なお,略円形の半導体基板を使ってこの手
法を用いるとアドレスに空き番号が生じるが,制御装置
200からアドレス信号を送るときに空き番号を飛ばす
ようにすれば,処理時間を増大させずに済むことは言う
までもない6また,各ニューロン100内のデコーダ1
07についても,各ニューロン100内に設けずにニュ
ーロン群150毎にまとめて設ければ,各ニューロン1
00を全て同一の回路にできるため設計が容易になる。
ところで,接続するニューロンの数が多くなると,第1
図に示した各ニューロン100内のメモリ101に記憶
すべき重み値の個数も増大し,容量の大きなメモリが必
要になる.第7図は,このメモリ101の容量を節滅す
る一実施例を示したものである.この回路は,重み値の
中で絶対値の大きなものから順に所定の数だけを相手の
アドレスと対にして記憶し,その他の重み値は0とみな
すことによって記憶容量を節減しようとするものである
.第7図において,111,112はメモリセルアレイ
,113はポインタ,114は比較器,115はセレク
タである.メモリセルアレイのうち,111は相手のア
ドレスを記憶する部分,112は重み値を記憶する部分
であり,相手のアドレスと重み値を対にしてメモリセル
アレイの各行に記憶させておく.このとき,各行に記憶
させる順序は,アドレスが昇順に並ぶようにする.また
,前述のように,制御装置200からバス302を介し
て各ニューロンに送出するアドレス信号についても昇順
に送るようにする.そして,ポインタ113は,最初は
メモリセルアレイ111,112の第1行を指すように
セットする。
すると,第1行に記憶されている内容が読み出され,そ
のアドレス情報が比較器114の一端122に,重み値
情報がセレクタ115の一端124にそれぞれ加えられ
る。この時に比較器114に加えられているアドレス情
報は,メモリセルアレイ111の中に記憶されているア
ドレス情報のうち最も小さい数である。一方,制御装置
200からアドレスバス302を介して送られてきたア
ドレス信号は,比較器114の他端に加えられる。そし
て,アドレス信号は昇順に送られてくるため,比較器1
14に加えられる信号122が最初に一致するまでの間
はアドレス信号の方が小さい数であり,従ってメモリセ
ルアレイ111の中に存在しない数である.この時には
比較器114の出力123は口・一レベルとなって,セ
レクタ115の出力端子126には他端125に加えら
れた数値It O ##が出力される。そして,このセ
レクタ115の出力がその時にアドレス信号302が指
す相手に対する重み値である。この場合は,メモリセル
アレイ111の中に記憶されていない相手,すなわち重
み値の絶対値が小さい場合であり,その重み値は0とみ
なされる。また,比較器114の出力123がローレベ
ルの間はAND回路116の出力127も常にローレベ
ルであり,ポインタ113は同じ行を指したままである
.ところが,122の端子に加えられたアドレス情報と
アドレスバス302を介して送られてきたアドレス信号
が一致すると,比較器114の出力123がハイレベル
となって124の端子に加えられた重み値情報がセレク
タ115の出力端子126に現われる。これは,その時
のアドレス信号が指す相手に対する重み値である.そし
て,バス303を介して送られてくるクロック信号に同
期してポインタ113は次の行を指す。すると,今度は
,その行に記憶されたアドレス情報と,アドレスバス3
02を斤して送られるアドレス信号とが一致するまで,
セレクタ115はIt O I+を出力し続け,以下同
様の動作を繰り返す。そして,バス304を介してサイ
クル信号が送られてくると,ポインタ113は再び第1
行に戻る。以上述べたように,第7図の回路は,メモリ
セルアレイ112に記憶された絶対値の大きな重み値は
正確に読み出し,その他の重み値はOとみなすように動
作する。また,以上述べたようにこのメモリは必ず昇順
に読み出されるため,アドレス信号が送られてくると当
該情報が有るか否かを瞬時に判断することができ,よっ
てアクセス時間を増大させること無く読み出すことがで
きる.
第8図は,第1図中に示したニューロン100の構成に
ついて,その一実施例を更に詳しく示したものである。
第8図において,重み値を記憶するメモリ101,乗算
器102,加算器103,ラッチ回路104,ラッチ回
路1o5,トライステートバソファ106,デコーダ1
07および第1階暦のバス301〜305の動作は第1
図で説明した通りである。シフタ807およびセレクタ
803は,動作を安定化させるための回路である。
また,デコーダ8o1,セレクタ802,トライステー
トバソファ804,ラッチ回路805,セレクタ806
,808,バス831〜838は,本発明のニューラル
ネットワークに自己学習させるためのものである。
シフタ回路807は,ラッチ回路104の出力値を17
2倍,または1/4倍,または178倍,・・・とシフ
トさせるように構成する。セレクタ803は通常は乗算
器102の出力を加算器103に伝えるが,サイクル信
号(バス304)が入った時にはシフタ回路807の出
力を伝えるようにしておく。また,セレクタ803がシ
フタ回路807の出力を伝える時には,加算器103が
減算の動作をするように構成する.セレクタ808は,
自己学習時以外はラッチ回路104の出力を加算器10
3に加える。すると,通常は加算rI1 0 3とラッ
チ回路104は前述の累積加算の動作を行゛なうが,サ
イクル信号が入ると,ラッチ回路104の出力がラッチ
回路105に取り込まれると共に1/2倍,または3/
4倍,または778倍,・・・されてラッチ回路104
の入力側に加えられる.これがクロック信号(バス30
3)に同期してラッチ回路104に取り込まれ,新たな
累積加算が始まる。この場合には前のサイクルで計算さ
れた値と現サイクルで計算されるべき値の加重平均を計
算することになり,計算結果が収束する迄に時間がかか
るが振動はしにくくなる。
自己学習の動作は以下のようにして行なう。なお,自己
学習のアノレゴリズムには,パックブロパゲーション(
この方式の数学的な根拠は,例えば口経エレクトロニク
ス誌1987年8月10日号115頁〜の記事に詳述さ
れている)を使うものとする.先ず最初は,累積加算の
動作を繰り返して各ニューロンの出力値を求め,ラッチ
回路105に記憶する.次に,出力層に属するニューロ
ンのアドレスをアドレスバス302を介して制御装置2
00から順次送り出し,ラッチ回路105の内容を制御
装12200側に読み込んで期待される出力値との差(
以下,この値をδ値と称する)を求め,バス833を介
してそのニューロンのラッチ回路805に書き込む。出
力層に属さないニューロンについては,アドレスバス3
02上の信号をδ値を求めたいニューロンのアドレスに
固定し,そのニューロンに対する各ニューロンの重み値
と各ニューロンのδ値の積の累積加算によって求める。
その重み値は各ニューロン内のメモリ101から,δ値
は各ニューロン内のラッチ回路805から,それぞれセ
レクタ802,806を介して各ニューロン内の乗算器
102に加える.これによって先ず積が求まる。次に,
バス831を介して制御装1i200から各ニューロン
のアドレスを順次送出し,今の積をバス832を介して
制御装百200に読み込む。これを制御装置200内で
累積加算してδ値を求め,目的とするニューロンのラッ
チ回路805に書き込む。
そして全てのニューロンのδ値が求まったら,837の
バスを介して送られた適当な係数とラッチ回路805に
記憶されたδ値の積を乗算器102によって求め,加算
器103の一端に加える。そして,アドレスバス302
を介して加えるアドレス信号を一巡させながら,メモリ
101に記憶された重み値と加算器103の一端に加え
られている値とを加算した結果を新たな重み値として更
新する。これを繰り返すことにより,自己学習が行なわ
れる。
なお,学習については別の計算機上で行なって,その結
果得られた重み値を直接メモリ101に書き込み,通常
の動作のみを本発明のニューラルネットワーク上で行な
うような使い方も可能であるのは言うまでもない。An embodiment of the present invention will be explained below using FIG. In FIG. 1, 100 is a neuron, and in order to simplify the explanation, this figure shows a case where four neurons are connected. Each neuron includes a memory 101 for storing weight values, a multiplier 102 for multiplying the input signal and the weight value, an adder 103 and a latch circuit 104 for calculating the sum of the products, and a latch circuit 104 for calculating the sum of the products. a latch circuit 105 for storing the contents of the latch circuit 105, and a tri-state output buffer circuit 106 for outputting the contents of the latch circuit 105.
, a decoder 107 is provided for determining whether the neuron is selected or not. 100 neurons each
is connected to the control device 200 via a bus. 301
, 302, 303, and 304 respectively transmit input signals, address signals, clock signals, and cycle signals to the control device 2.
This is a bus for sending data from 00 to each neuron 100.
305 outputs output signals from each neuron 100 to the control device 2;
This is the bus for sending to 00. In this embodiment, the latch circuit 104 is one in which data is taken in by the edge of the clock signal from the bus 303. Also,
Each neuron 100 is assigned a unique address, and the decoder 107 is set to output a signal when the address matches the address signal from the control device 200. Next, the operation of this device will be explained. The control device 200 is
As shown in FIG. 2, the address signal is a signal that sequentially repeats the address of each neuron, the clock signal is a signal that causes the latch circuit 104 to take in data each time each address is specified, and the cycle signal is a signal that causes the latch circuit 104 to take in data each time an address is specified. Each time the circuit goes around, a signal is sent to the latch circuit 105 to cause the data to be taken in. The address signal sent from the control device 200 to each neuron 100 via the bus 302 is applied to the decoder circuit 107, and only the buffer circuit 106 in the neuron specified by the address signal outputs the signal to the output bus 305. .. Buffer circuits 106 in other neurons enter a high resistance state. Therefore, the contents of the latch circuit 105 in the neuron 100 specified by the address signal are sent to the control device 200. In the control device 200, the signal is sent as it is or after being subjected to function conversion using a sigmoid function or the like, and sent to each neuron 100 via the input bus 301. In each neuron 100, the weight value between the other party designated by the address signal at that time is read from the memory 101, and the multiplier 100 multiplies the weight value and the input signal sent from the control circuit 200 via the bus 301. The adder 103 calculates the sum of the product and the numerical value accumulated in the latch circuit 104 so far, and the sum is added to the latch circuit 104. When a clock signal is applied from the bus 303, the sum is taken into the latch circuit 104. Therefore, during one address cycle, the sum of the products of the signals and weight values from all neurons is the latch time Il
It is found within t104. Then, when a cycle signal is applied from the bus 304, the sum is taken into the latch circuit 105 and becomes the new output value of each neuron 100.
In this way, the circuit in Figure 1 operates as a neural network. By the way, if the neuron 100 is configured as shown in Figure 1,
If you try to construct a large-scale neural network by increasing the number of neurons, as the number of neurons increases beyond a certain point, the capacity added to the bus will increase and the operation speed will slow down. FIG. 3 shows a part of an embodiment of the present invention in which the bus is structured in a hierarchical structure to avoid this problem.
A group of neurons 150 are shown. By connecting a large number of these as described later (Figure 4), a large-scale neural network can be realized. In Figure 3, 1
0o is a neuron, 301 to 305 are buses of the first floor (m<lowest layer), and this part corresponds to the neuron 100 in Figure 1.
and are configured in the same way as buses 301-305. However, in order to configure a large-scale neural network, the number of bits of the address bus 302 and the capacity of the memory 101 that stores the weight values need to be larger than in the case of FIG. 1. 311, 312, 313, 314,
315 is a second layer bus for transmitting input signals, address signals, clock signals, cycle signals, and output signals, respectively. 311 to 314 of the second layer buses
are connected to the first layer buses 301 to 301 through the buffer circuit 158.
The output bus 315 of the second layer receives the signal from the output bus 305 of the first layer via the tri-state buffer 156. 157 is for determining whether or not there is a neuron 100 designated by the address signal in this neuron group 150. When it is determined that there is a neuron 100 specified by the address signal, the data on the output bus 305 of the first level calendar is transferred to the second level. It is sent to the output bus 315 of the hierarchy, and when it is determined that there is no output bus, the tri-state bus sofa 156
Puts the output of into a high resistance state. By preparing a large number of neuron groups 150 and connecting the buses 311 to 315 of the second layer, it is possible to connect a large number of neurons 100 without significantly increasing the capacity added to each bus. Figure 4 shows an example of the connection method. FIG. 4 shows an embodiment configured as a WSI (wafer scale integrated circuit) on one semiconductor substrate 500. Each neuron group 150 is shown in FIG. 3, and 60 neuron groups are depicted in this figure. 31
Reference numerals 1 to 315 indicate second-level buses arranged in the horizontal direction, and a plurality of sets are provided over the entire surface of the board. 321 to 325 are the third-level calendar buses installed in the vertical direction, and only one set is installed in the center of the board. In this embodiment, two to four neuron groups 150 are connected by second-level buses 311 to 315, and second-level buses 311 to 315 are connected to buffer unit 3.
50 to third layer buses 321 to 325. The structure of the buffer unit 350 consists of first layer buses 301 to 305 and second layer buses 311 to 315 in FIG.
The structure is similar to that of the connection section of , and consists of an input buffer, decoder, and output buffer. Then, the third layer bus 32
A control device i1200 is provided at one end of each of 1 to 325. In this way, it is possible to realize a neural network that connects all the neurons provided on the entire surface of the board while keeping the maximum length of the bus to at most the diameter of the board.
Regarding the power supply, the second layer buses 311 to 315
A large number of power supply points can be secured by running a power supply bus parallel to the power supply and supplying power from the power supply pads 450 provided at both ends. In addition, buses for power supply, buses 311 to 315 in the second hierarchy, and buses 32 in the third hierarchy are also used.
Regarding the wiring used for 1 to 325 etc., neuron group 150
It is desirable to use wires that have a wider line width and wider spacing than the wires inside the buffer section 350. This is because these buses have long wire lengths, and special care must be taken to ensure that wiring resistance does not increase, and this may occur if there is a failure such as a disconnection or short circuit in a bus higher up in the hierarchy. This is because these buses especially need to have low failure rates, as many neurons become unusable. For failures that affect only a small number of neurons, it is possible to avoid using the failed part by setting the weight value for the failed neuron to O on the normal neuron side. Also, the control device 200 is connected to this wafer 5.
It is also possible to provide a buffer circuit at this position, without providing it above 00, and connect it to an externally provided control device. If the control device 200 breaks down, the entire system becomes unusable, but if only this part is provided externally, it can be replaced in the event of a breakdown. It is also conceivable to reduce the failure rate by multiplexing the control device 200 or the buffer circuit for connection with the outside, or to provide it in the center of the wafer where the yield is high. Furthermore, a plurality of substrates 500
It is also possible to prepare a neural network and connect it to the fourth layer bus via this buffer circuit to construct an even larger neural network. By the way, if you increase the number of bus layers, the terminal neuron 1
The delay time until the signal output from 00 reaches the terminal neuron lOO again via the control device 200 increases. However, by inserting a latch circuit in the buffer that connects the upper layer bus and the lower layer bus to synchronize signal transmission, pipeline processing is possible and the actual processing time does not increase. .. An example of the timing is
This will be explained in detail using Figure 5. This figure shows a case where the number of neurons is 100. As for the clock signal, use a high-speed circuit as much as possible and connect it to bus 3 on the third layer.
23 to the second layer bus 313, and then the first layer bus 3
Supplied so that the propagation time to 03 is shortened. All other signals are transmitted in synchronization with the clock signal of each layer. The address signal is the address 1 to 1 of each neuron.
00 and addresses 101 to 105 necessary for time division control are repeatedly supplied, and an interval of one clock is provided between returning from the maximum value 105 to the minimum value 1. In order to transmit this in synchronization with the clock signal, it is shifted by one clock when propagating to the second and first layers. Since each neuron is connected to the first layer address bus 302, the output value of the neuron specified by the address signal on this bus is output to the first layer M output bus 305. This output signal is then sent to the output bus 315 of the second hierarchy and the output bus 325 of the third hierarchy while being shifted by one clock in synchronization with the clock signal. This is applied to the input bus 321 of the third IlIJ layer via the control circuit 200, but if it is synchronized with the clock signal in the control circuit 200, it will be shifted by one clock as shown in the figure. Then, this signal is again shifted by one clock and sent to the second layer input bus 311 and the first layer input bus 301. Therefore, five clocks after the address signal arrives on the address bus 302 of the first layer, the signal from the neuron specified by the address reaches each neuron. Therefore, each neuron calculates the cumulative addition by regarding the signal as being from the neuron whose address is 5 smaller than the value indicated by the address signal at that time. By doing this, the period of the clock signal can be made shorter than when signal transmission between buses is not synchronized. Furthermore, when attempting to form an integrated circuit over the entire surface of a semiconductor substrate with a diameter of several inches, as shown in Figure 4, the entire surface is exposed at once during the process of exposing the photoresist coated on the substrate to form a pattern. If this is attempted, the resolution will deteriorate, so, for example, the neuron group 150 will be exposed in several times as one exposure unit. In that case, if the patterns of each neuron group 150 are even slightly different, it is necessary to prepare a mask for each pattern, which is uneconomical because the number of types of masks becomes enormous. On the other hand, each neuron has an individually determined address, and a function to identify this address is required. In other words, it is necessary to be able to identify individual addresses without changing the contents of each neuron group 150 at all. An example of realizing this is shown in Figure 6. Figure 6 shows the right half of one row of neuron groups in Figure 4. In Figure 6, 150 is a neuron group. Among these, 100 are neurons, 3
11 to 315 are buses of the second layer, 156 is a tri-state buffer, and 158 is a buffer, and their connection relationship is the same as in FIG. 3. 350 is a part that connects the buses 321 to 325 on the third hierarchy and the buses 311 to 315 on the second hierarchy, 166 is a tristate buffer, and 166 is a tristate buffer;
68 is a buffer. The decoder 157 mounted in each neuron group 150 in FIG. 3 is mounted in the bus connecting section 350 between the third layer and the second layer in FIG. 6. The output of this decoder 157 is a 4-bit bus 31
G to each neuron group 150, and this bus is formed so as to shift one bit each time it passes through one neuron group 150, as shown in the figure. This decoder 157 then selects the neuron 100 pointed to by the address signal.
Only the output corresponding to the neuron group 150 including the neuron group 150 is set to high level. Then, although each neuron group 150 has exactly the same shape, the target neuron group 1
You can select only one. Also, each neuron 1
00 can determine whether or not it has been selected based on the lower two bits of the address signal and the signal sent from the decoder 157. Furthermore, with respect to the connection section 350, only one desired row can be selected using a similar method. In this case, the upper bit of the address signal
- is decoded and sent from the control device 200 to each connection unit 350 via a 9-bit bus 326. Since the 9-bit bus 326 is configured to shift one bit for each row, it is possible to select only one desired row, even though each connection portion 350 has exactly the same shape. can. Based on the above, the types of photomasks required to create the neural network shown in Figure 4 are:
For neuron group 150 on the right side, neuron group 15 on the left side
The number of sets can be kept to five: one for 0, one for the connection part 350, one for the connection circuit with the control device 200 or the outside, and one for the power supply pad 450. Note that if this method is used with a substantially circular semiconductor substrate, there will be empty numbers in the address, but if the empty numbers are skipped when sending an address signal from the control device 200, the processing time will not increase. Needless to say, 6 Also, the decoder 1 in each neuron 100
07 as well, if it is provided in each neuron group 150 instead of being provided in each neuron 100, each neuron 1
00 can all be made into the same circuit, making the design easier. By the way, as the number of connected neurons increases, the first
The number of weight values to be stored in the memory 101 in each neuron 100 shown in the figure also increases, and a memory with a large capacity is required. FIG. 7 shows an embodiment for saving the capacity of this memory 101. This circuit attempts to save storage capacity by storing only a predetermined number of weight values in pairs with the other party's address in descending order of absolute value, and treating other weight values as 0. be. In FIG. 7, 111 and 112 are memory cell arrays, 113 is a pointer, 114 is a comparator, and 115 is a selector. In the memory cell array, 111 is a part for storing the address of the other party, and 112 is a part for storing the weight value, and the address of the other party and the weight value are stored in pairs in each row of the memory cell array. At this time, the order in which the addresses are stored in each line is arranged in ascending order. Furthermore, as described above, the address signals sent from the control device 200 to each neuron via the bus 302 are also sent in ascending order. The pointer 113 is initially set to point to the first row of the memory cell arrays 111 and 112. Then, the contents stored in the first row are read out, and the address information is added to one end 122 of the comparator 114 and the weight value information is added to one end 124 of the selector 115, respectively. The address information added to the comparator 114 at this time is the smallest number of address information stored in the memory cell array 111. On the other hand, the address signal sent from the control device 200 via the address bus 302 is applied to the other end of the comparator 114. Since the address signals are sent in ascending order, the comparator 1
Until the signal 122 applied to the memory cell array 111 matches for the first time, the address signal is a smaller number and therefore does not exist in the memory cell array 111. At this time, the output 123 of the comparator 114 is at the -1 level, and the numerical value It O ## added to the other terminal 125 is output to the output terminal 126 of the selector 115. The output of this selector 115 is the weight value for the party pointed to by the address signal 302 at that time. In this case, the other party is not stored in the memory cell array 111, that is, the absolute value of the weight value is small, and the weight value is regarded as 0. Furthermore, while the output 123 of the comparator 114 is at a low level, the output 127 of the AND circuit 116 is always at a low level, and the pointer 113 continues to point to the same row. However, when the address information applied to the terminal 122 and the address signal sent via the address bus 302 match, the output 123 of the comparator 114 becomes high level, and the weight value information applied to the terminal 124 is output. appears at the output terminal 126 of the selector 115. This is the weight value for the party pointed to by the address signal at that time. Then, the pointer 113 points to the next row in synchronization with the clock signal sent via the bus 303. Then, the address information stored in that row and the address bus 3
02 until the address signal sent matches.
The selector 115 continues to output It O I+ and repeats the same operation thereafter. Then, when a cycle signal is sent via the bus 304, the pointer 113 returns to the first position.
Return to line. As described above, the circuit shown in FIG. 7 operates so as to accurately read weight values with large absolute values stored in the memory cell array 112, and to regard other weight values as O. In addition, as mentioned above, this memory is always read in ascending order, so when an address signal is sent, it can be instantly determined whether the information exists or not, so it can be read without increasing the access time. be able to. FIG. 8 shows an example of the configuration of the neuron 100 shown in FIG. 1 in more detail. In FIG. 8, a memory 101 for storing weight values, a multiplier 102, an adder 103, a latch circuit 104, a latch circuit 1o5, a tristate bath sofa 106, and a decoder 1
07 and the operations of buses 301 to 305 on the first floor calendar are as follows:
This is as explained in the figure. Shifter 807 and selector 803 are circuits for stabilizing operation. Also, a decoder 8o1, a selector 802, a tristate bath sofa 804, a latch circuit 805, a selector 806
, 808, and buses 831 to 838 are for self-learning by the neural network of the present invention. The shifter circuit 807 changes the output value of the latch circuit 104 to 17
It is configured to shift by 2 times, 1/4 times, 178 times, etc. The selector 803 normally transmits the output of the multiplier 102 to the adder 103, but is configured to transmit the output of the shifter circuit 807 when a cycle signal (bus 304) is input. Further, when the selector 803 transmits the output of the shifter circuit 807, the adder 103 is configured to perform a subtraction operation. The selector 808 is
The output of the latch circuit 104 is used as the adder 10 except during self-learning.
Add to 3. Then, normally the adder rI103 and the latch circuit 104 perform the above-mentioned cumulative addition operation, but when a cycle signal is input, the output of the latch circuit 104 is taken into the latch circuit 105 and multiplied by 1/2. or 3/
The latch circuit 104 is multiplied by 4 or 778 times.
is added to the input side of . This is the clock signal (bus 30
3), the data is taken into the latch circuit 104 and new cumulative addition begins. In this case, a weighted average of the value calculated in the previous cycle and the value to be calculated in the current cycle is calculated, and although it takes time for the calculation results to converge, it is less likely to oscillate. Self-study operations are performed as follows. Note that pack propagation (
The mathematical basis for this method is described in detail in, for example, an article in the August 10, 1987 issue of Oral Electronics, page 115 onwards. First, the output value of each neuron is obtained by repeating the cumulative addition operation and stored in the latch circuit 105. Next, the address of the neuron belonging to the output layer is sent to the control device 2 via the address bus 302.
The content of the latch circuit 105 is read into the control unit 12200 side and the difference between the expected output value (
Hereinafter, this value will be referred to as the δ value) and is written to the latch circuit 805 of that neuron via the bus 833. For neurons that do not belong to the output layer, address bus 3
The signal on 02 is fixed to the address of the neuron for which the δ value is to be determined, and the δ value is determined by cumulatively adding the product of the weight value of each neuron and the δ value of each neuron for that neuron. The weight value is applied from the memory 101 in each neuron, and the δ value is applied from the latch circuit 805 in each neuron to the multiplier 102 in each neuron via selectors 802 and 806, respectively. This first determines the product. next,
The address of each neuron is sequentially sent from the control device 1i 200 via the bus 831, and the current product is read into the control device 1i 200 via the bus 832. This value is cumulatively added within the control device 200 to obtain the δ value, which is written to the latch circuit 805 of the target neuron. Once the δ values of all neurons have been determined, the multiplier 102 calculates the product of the appropriate coefficient sent via the bus 837 and the δ value stored in the latch circuit 805, and adds the product to one end of the adder 103. And address bus 302
While passing the address signal applied through the adder 103, the weight value stored in the memory 101 and the value added to one end of the adder 103 are added together, and the result is updated as a new weight value. Self-learning occurs by repeating this process. It goes without saying that it is also possible to perform learning on a separate computer, write the weight values obtained as a result directly into the memory 101, and perform only normal operations on the neural network of the present invention. stomach.
以上述べたように,本発明によればニューロンの個数を
増やしてもハードウエアの量が飛躍的には増大しないニ
ューラルネットワークを実現することができる。As described above, according to the present invention, it is possible to realize a neural network in which the amount of hardware does not increase dramatically even when the number of neurons is increased.
第1図は本発明の一実施例を示す構成図,第2図はその
動作を説明するためのタイミング図,第3図は本発明の
他の実施例の1部分を示す構成図,第4図はその全体を
示す構成図,第5図はその動作を説明するためのタイミ
ング図,第6図〜第8図はそれぞれ本発明の更に他の実
施例の1部分を示す構成図である。
符号の説明
100・・・ニューロン,101・・・重み値を記憶す
るためのメモリ,1o2・・・シナプスを構成する乗算
器,200・・・制御装置,301〜305・・・第1
階JIのバス,311〜315・・・第2階層のバス,
321〜325・・・第3階層のバスである。
第1図
第2図
第3図
二二:旦冫群ニュ因
法Ω映
椋N蔽ミ
転一鉄
メ±ljfllFIG. 1 is a block diagram showing one embodiment of the present invention, FIG. 2 is a timing diagram for explaining its operation, FIG. 3 is a block diagram showing a part of another embodiment of the present invention, and FIG. 5 is a timing chart for explaining its operation, and FIGS. 6 to 8 are block diagrams showing a part of still other embodiments of the present invention. Description of symbols 100...neuron, 101...memory for storing weight values, 1o2...multiplier forming a synapse, 200...control device, 301-305...first
Floor JI bus, 311-315...2nd floor bus,
321 to 325: third layer buses. Figure 1 Figure 2 Figure 3
Claims (1)
を備え、各ニューロンと他のニューロンとの間には個々
に定められた係数(以下、重み値と称する)が存在し、
各ニューロンの出力値は他のニューロンの出力値と重み
値の積の総和に応じて決まるように構成された情報処理
装置において、上記複数のニューロンの内から1個を特
定するためのアドレス信号と、該アドレス信号を伝達す
るためのアドレスバスと、上記各ニューロンの出力信号
を伝達するための出力バスとを設け、上記ニューロンは
上記アドレス信号によって特定された時にのみ上記出力
バスに出力信号を送り出すように構成したことを特徴と
する情報処理装置。 2、複数のニューロンを備え、各ニューロンと他のニュ
ーロンとの間には個々に定められた重み値が存在し、各
ニューロンの出力値は他のニューロンの出力値と重み値
の積の総和に応じて決まるように構成された情報処理装
置において、上記複数のニューロンは複数の群に分けら
れ、各群に設けられ該群に属するニューロンと接続され
る第1階層のバスと、複数の群に共通に設けられ該複数
の群の第1階層のバスと接続される第2階層のバスとを
設けたことを特徴とする情報処理装置。 3、上記第2階層のバスは、上記第1階層のバスより幅
の広い導体で配線されたことを特徴とする請求項2の情
報処理装置。 4、クロック信号が設けられ、上記第1階層のバスと上
記第2階層のバスの間の信号伝達は上記クロック信号に
同期して行われることを特徴とする請求項2、または3
の情報処理装置。 5、同一形状の複数の半導体集積回路が同一の半導体基
板上に設けられ、上記複数の半導体集積回路に接続され
る共通のバスが設けられた情報処理装置において、上記
共通のバスは、上記複数の半導体集積回路内の信号配線
より幅の広い導体で配線されたことを特徴とする情報処
理装置。 6、同一形状の複数の半導体集積回路が同一の半導体基
板上に設けられ、上記複数の半導体集積回路に接続され
る共通のバスが設けられた情報処理装置において、クロ
ック信号が設けられ、上記共通のバスと上記複数の半導
体集積回路内の信号配線の間の信号伝達は上記クロック
信号に同期して行なわれることを特徴とする情報処理装
置。 7、同一形状の複数の半導体集積回路が同一の半導体基
板上に設けられ、上記複数の半導体集積回路に接続され
る共通のバスが複数組設けられた情報処理装置において
、上記複数組のバスの内の少なくとも1組は上記複数の
半導体集積回路内の対応する位置にある信号同士をその
まま接続し、上記複数組のバスの内の他の少なくとも1
組は上記複数の半導体集積回路内の対応する位置にある
信号同士をシフトさせながら接続することを特徴とする
情報処理装置。 8、上記シフトさせながら接続するバスは、上記複数の
半導体集積回路の中から特定のものを選択するために設
けた信号を伝達することを特徴とする請求項7の情報処
理装置。 9、複数のニューロンを備え、各ニューロンと他のニュ
ーロンとの間には個々に定められた重み値が存在し、各
ニューロンの出力値は他のニューロンの出力値と重み値
の積の総和に応じて決まるように構成された情報処理装
置において、上記重み値は信号を受ける側のニューロン
内に設けた半導体記憶装置に記憶させたことを特徴とす
る情報処理装置。 10、複数のニューロンを備え、各ニューロンと他のニ
ューロンとの間には個々に定められた重み値が存在し、
各ニューロンの出力値は他のニューロンの出力値と重み
値の積の総和に応じて決まるように構成された情報処理
装置において、上記重み値は、信号を受ける側において
絶対値の大きな方から所定の個数だけを記憶させること
を特徴とする情報処理装置。 11、上記重み値をアクセスされる順に並べて記憶させ
ることを特徴とする請求項9、または10の情報処理装
置。[Claims] 1. Multiple functional blocks (hereinafter referred to as neurons)
There is an individually determined coefficient (hereinafter referred to as a weight value) between each neuron and another neuron,
In an information processing device configured such that the output value of each neuron is determined according to the sum of products of output values of other neurons and weight values, an address signal for specifying one of the plurality of neurons is used. , an address bus for transmitting the address signal and an output bus for transmitting the output signal of each neuron, and the neuron sends an output signal to the output bus only when specified by the address signal. An information processing device characterized by being configured as follows. 2.Equipped with multiple neurons, each neuron has an individually determined weight value between each neuron and other neurons, and the output value of each neuron is the sum of the products of the output values of other neurons and the weight values. In the information processing device configured to be determined according to An information processing device comprising a second layer bus that is commonly provided and connected to the first layer buses of the plurality of groups. 3. The information processing apparatus according to claim 2, wherein the second layer bus is wired with a wider conductor than the first layer bus. 4. A clock signal is provided, and signal transmission between the first layer bus and the second layer bus is performed in synchronization with the clock signal.
information processing equipment. 5. In an information processing device in which a plurality of semiconductor integrated circuits having the same shape are provided on the same semiconductor substrate and a common bus is provided to connect the plurality of semiconductor integrated circuits, the common bus is connected to the plurality of semiconductor integrated circuits. An information processing device characterized in that the wiring is made of a conductor wider than the signal wiring in a semiconductor integrated circuit. 6. In an information processing device in which a plurality of semiconductor integrated circuits having the same shape are provided on the same semiconductor substrate and a common bus is provided to connect the plurality of semiconductor integrated circuits, a clock signal is provided and the common bus is provided. An information processing device characterized in that signal transmission between the bus and the signal wiring in the plurality of semiconductor integrated circuits is performed in synchronization with the clock signal. 7. In an information processing device in which a plurality of semiconductor integrated circuits having the same shape are provided on the same semiconductor substrate and a plurality of sets of common buses connected to the plurality of semiconductor integrated circuits are provided, At least one set of the buses directly connects signals at corresponding positions in the plurality of semiconductor integrated circuits, and at least one of the other sets of the plurality of buses
An information processing device characterized in that the pairs connect signals at corresponding positions in the plurality of semiconductor integrated circuits while shifting them to each other. 8. The information processing apparatus according to claim 7, wherein the bus connected while being shifted transmits a signal provided for selecting a specific one from among the plurality of semiconductor integrated circuits. 9. Equipped with multiple neurons, each neuron has an individually determined weight value between each neuron, and the output value of each neuron is the sum of the products of the output values of other neurons and the weight values. 1. An information processing apparatus configured to determine the weight value according to the weight value, wherein the weight value is stored in a semiconductor memory device provided in a neuron on the side receiving the signal. 10. A plurality of neurons are provided, and each neuron has an individually determined weight value between each neuron and another neuron,
In an information processing device configured such that the output value of each neuron is determined according to the sum of the products of the output values of other neurons and weight values, the weight values are determined from a predetermined value on the signal receiving side starting from the one with the largest absolute value. An information processing device characterized by storing only the number of items. 11. The information processing apparatus according to claim 9 or 10, wherein the weight values are arranged and stored in the order in which they are accessed.
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1056458A JP2804069B2 (en) | 1989-03-10 | 1989-03-10 | Information processing device |
| DE69032680T DE69032680T2 (en) | 1989-01-06 | 1990-01-04 | Neural calculator |
| US07/461,080 US5165010A (en) | 1989-01-06 | 1990-01-04 | Information processing system |
| EP90100171A EP0378115B1 (en) | 1989-01-06 | 1990-01-04 | Neural computer |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1056458A JP2804069B2 (en) | 1989-03-10 | 1989-03-10 | Information processing device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02236658A true JPH02236658A (en) | 1990-09-19 |
| JP2804069B2 JP2804069B2 (en) | 1998-09-24 |
Family
ID=13027659
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1056458A Expired - Lifetime JP2804069B2 (en) | 1989-01-06 | 1989-03-10 | Information processing device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2804069B2 (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5621862A (en) * | 1993-07-29 | 1997-04-15 | Matsushita Electric Industrial Co., Ltd. | Information processing apparatus for implementing neural network |
| JP2001188767A (en) * | 1999-12-28 | 2001-07-10 | Fuji Xerox Co Ltd | Neutral network arithmetic unit and method |
| JP2003512683A (en) * | 1999-10-15 | 2003-04-02 | ザ・ビクトリア・ユニバーシテイ・オブ・マンチエスター | Neural network element |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63266700A (en) * | 1987-04-24 | 1988-11-02 | Hitachi Ltd | Wafer-sized semiconductor integrated circuit device |
-
1989
- 1989-03-10 JP JP1056458A patent/JP2804069B2/en not_active Expired - Lifetime
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63266700A (en) * | 1987-04-24 | 1988-11-02 | Hitachi Ltd | Wafer-sized semiconductor integrated circuit device |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5621862A (en) * | 1993-07-29 | 1997-04-15 | Matsushita Electric Industrial Co., Ltd. | Information processing apparatus for implementing neural network |
| JP2003512683A (en) * | 1999-10-15 | 2003-04-02 | ザ・ビクトリア・ユニバーシテイ・オブ・マンチエスター | Neural network element |
| JP2001188767A (en) * | 1999-12-28 | 2001-07-10 | Fuji Xerox Co Ltd | Neutral network arithmetic unit and method |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2804069B2 (en) | 1998-09-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6654730B1 (en) | Neural network arithmetic apparatus and neutral network operation method | |
| US4672536A (en) | Arbitration method and device for allocating a shared resource in a data processing system | |
| KR950008840B1 (en) | Neuro chip | |
| US5165010A (en) | Information processing system | |
| EP0080626B1 (en) | Memory module selection and reconfiguration apparatus in a data processing system | |
| EP0248906A1 (en) | Multi-port memory system | |
| EP0256661A2 (en) | Array processor | |
| US11635942B2 (en) | Processing-in-memory (PIM) devices and methods of testing the PIM devices | |
| JPH064507A (en) | Neural net | |
| KR900008395A (en) | Data Cell Device and Neural Network System Using the Device | |
| CN114626517B (en) | Systolic array for storing double-layer weight data | |
| JPH05108595A (en) | Distributed learning device for neural networks | |
| JPH05282272A (en) | Neural network parallel distribution processor | |
| JP2552784B2 (en) | Parallel data processing control method | |
| JPH02236658A (en) | information processing equipment | |
| CN109670581A (en) | A kind of computing device and board | |
| US5420982A (en) | Hyper-cube network control system having different connection patterns corresponding to phase signals for interconnecting inter-node links and between input/output links | |
| CN113887697A (en) | Semiconductor device, data generating method thereof, and control method thereof | |
| US4685128A (en) | Method and network for transmitting addressed signal samples from any network input to an addressed network output | |
| US7516059B2 (en) | Logical simulation device | |
| JP4049957B2 (en) | Multiprocessor system | |
| JP2765903B2 (en) | Information processing device | |
| JP2729987B2 (en) | Weight retention method for network configuration data processing device | |
| JP2002368097A (en) | Wiring method, semiconductor integrated circuit, and function macro in layout design of semiconductor integrated circuit | |
| CN121880262A (en) | Fine-grained structured sparse in-memory computing matrix multiplication acceleration system |