JPH1091605A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH1091605A
JPH1091605A JP9119083A JP11908397A JPH1091605A JP H1091605 A JPH1091605 A JP H1091605A JP 9119083 A JP9119083 A JP 9119083A JP 11908397 A JP11908397 A JP 11908397A JP H1091605 A JPH1091605 A JP H1091605A
Authority
JP
Japan
Prior art keywords
circuit
neuron
value
output value
neuron output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9119083A
Other languages
English (en)
Inventor
Takao Watabe
隆夫 渡部
Katsutaka Kimura
勝高 木村
Kiyoo Ito
清男 伊藤
Yoshiki Kawajiri
良樹 川尻
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP9119083A priority Critical patent/JPH1091605A/ja
Publication of JPH1091605A publication Critical patent/JPH1091605A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)

Abstract

(57)【要約】 【目的】 メモリ回路と演算回路を組み合わせ、半導体
チップ上に集積された半導体集積回路を提供すること。 【構成】 演算回路12と、メモリセルアレーA,Bが
同一チップに集積された半導体集積回路であって、メモ
リセルアレーA,Bのそれぞれは複数のデータ線と、そ
れらと交わるように配置された複数のワード線と、上記
複数のデータ線と上記複数のワード線の所望の交差部に
配置された複数のメモリセルを有し、演算回路12は演
算器を有し、かつメモリセルアレーAとメモリセルアレ
ーBとの間に配置されていることを特徴とする半導体集
積回路。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、大規模かつ高速な並列
分散処理を実現するためのメモリ回路を内蔵した情報処
理装置に関するものである。特にニューラルネットワー
ク情報処理を行なう情報処理装置に関するものである。
【0002】
【従来の技術】ニューロコンピューティングとよばれる
ニューラルネットワークを用いた並列分散型情報処理
(以下ニューラルネッ卜ワーク情報処理)は、コンプレッ
クスシステムズ1(1987年)第145頁から第16
8頁 (Sejnowski, T. J., and Rosenberg, C. R. 19
87. Parallel networks that learn to pronounce En
glish text.Complex Systems 1, PP.145−168)
あるいはニューラルネットワーク情報処理 (産業図書、
麻生英樹著) などに述べられているように音声あるいは
画像処理などの分野において注目を集めている。ニュー
ラルネットワーク情報処理では、ネットワーク状に結合
した多数のニューロンと呼ばれる演算要素が、結合と呼
ばれる伝達線を通じて情報をやりとりして高度な情報処
理を行なう。各々のニューロンでは他のニューロンから
送られてきた情報(ニューロン出力値)に対して積あるい
は和などの単純な演算が行なわれる。各々のニューロン
内の演算、さらには、異なるニューロンの演算も並列に
行なうことが可能なため、原理的には、高速に情報処理
を行なうことができる特長を持っている。また、ネイチ
ャー323−9、 (1986年a) 第533頁から第5
35頁 (Rumelhart, D.E., Hinton, G. E., and Willia
ms, R. J. 1986a. Learning representations by b
ack-propagation errors. Nature 323−9, pp.53
3−536)、あるいはニューラルネットワーク情報処
理 (産業図書、麻生英樹著) 第2章などに述べられてい
るように、望ましい情報処理を行なわせるためにニュー
ロン同志をつなぐ結合の重み値を設定するアルゴリズム
(学習)も提案されているため、目的に応じた様々な情報
処理をさせることができる。
【0003】
【発明が解決しようとする課題】まず、ニューラルネッ
トワークの動作原理を2種類の代表的なネットワークで
ある階層型ネットワークとホップフィールド型ネットワ
ークについて説明する。図2 (a) は、階層型ネットワ
ーク、図4 (a) は、ホップフィールド型ネットワーク
の構造を示したものである。これらは、どちらもニュー
ロンとニューロン同上をつなぐ結合から構成されてい
る。ここでは、ニューロンという用語を用いるが、場合
によってはノード、あるいは演算要素などと呼ばれるこ
ともある。結合の矢印の向きは、ニューロン出力値の伝
わる方向を示している。階層型ネットワークは、図2
(a) に示したように、ニューロンが複数の階層をなす
ように並び、入力層から出力層へ向かう方向にのみニュ
ーロン出力値が伝わるものである。一方、ホップフィ一
ルド型ネットワークは、図4 (a) に示したように、同
じニューロンにニューロン出力値がフィードバックされ
るほか、任意の2つのニュ一ロン間で両方向にニューロ
ン出力値が伝わるものである。
【0004】図2 (b) , 図4 (b) にニューロン内で
行なわれる演算の原理を示した。演算の原理はどちらの
ネットワークでも同様なので、図2 (b) を用いて階層
型ネットワークについて説明する。図2 (b) は、S+
1番目の層内のj番目のニューロンを拡大して示したも
のである。このニューロン内には結合を通じて前層、す
なわちS番目の層内のニューロンの出力値V1S,…,
V1S,…, VnSSが入力される。ここで、nSはS
番目の層内のニューロンの数を示している。ニューロン
内では入力されたニューロンの出力値V1S, …, Vi
S, …, VnSSと結合重み値TSj1, …, TSj
1, …, TSjnsとの積V1STSj1,…, ViS
TSj1, …, VnSSTSjnSが乗算機MTにより
計算される。つぎに、これらの積とオフセットΘjS+
1との和を加算機ADDにより計算する。オフセットΘ
jS+1は場合によっては、省略してもよい。さらに、
その結果を非線形関数回路Dに入力してニューロンの出
力値VjS+1を得る。非線形関数回路Dは図3(a)
あるいは、図3(b)に示したような特性を持ち、入力
xに対して出力g(x)を出力する。図3(a)は、入
力xがあるしきい値xthを越えるか否かにより2値の
出力g1あるいはg2を出力する非線形関数の例であ
り、図3(b)は、シグモイド関数を用いた例で連続的
な出力を出す。非線形関数回路Dには、必要に応じてこ
の他の特性を持たせることもある。また、場合によって
は、線形の特性を持たせてもよい。
【0005】上記の演算の原理は、図4(b)に示した
ようにホップフィールド型ネットワークでも同様であ
る。ただし、ホップフィールド型ネットワークでは、1
つのニューロンに1層前のニューロンだけでなく、すべ
てのニューロンの出力値が入力される。
【0006】図2(a),(b)より判るように、階層
型ネットワークでは、まず、入力層のニューロンの出力
値を与えたあと次の層内のニュー口ンの出力値が更新さ
れ、さらに次の層内のニューロンの出力値が更新されて
1つの処理が終了する。一方、図4(a)のようにホッ
プフィールド型ネットワークでは、層というものがない
ため、それぞれのニューロンは、適当なタイミングで出
力値を更新することができる。このホップフィールド型
ネットワークでは、すべてのニューロン出力値を適当に
与え、ニューロン出力値が平衡状態となるまでニューロ
ン出力値の更新を続ける。すべてのニューロンの出力値
を同時に更新するものを同期的なホップフィールド型ネ
ットワーク、それぞれのニューロンが、勝手なタイミン
グで出力値を更新するものを非同期的なホップフィール
ド型ネットワークと呼んで区別する。
【0007】上記のようなニューラルネットワークの演
算を行なうためにソフトウエアを用いる方法とハードウ
エアを用いる方法とが用いられてきた。ソフトウエアを
用いる方法では、計算機言語で書かれたプログラムによ
りニューロンの演算を行なうので目的に応じてニューロ
ンの数を変えたりネットワークの構造を容易に変えるこ
とができる。しかし、演算を逐次的に行なうためニュー
ロンの数を増やすと情報処理時間が急激に増加するとい
う欠点があった。たとえば、n個のニューロンを用いた
ホップフィールド型ネットワークでは、1つのニューロ
ンの出力値を更新するのにn回の積を計算しなければな
らない。したがって、すべてのニューロンの出力値を少
なくとも1回更新するためには、n2回の積を計算する
必要がある。すなわち、ニューロン数nの増大とともに
計算量はn2のオーダーで増加する。その結果、乗算を
逐次的に行なうと情報処理時間もn2のオーダ一で増加
してしまう。
【0008】ハードウエアを用いる方法では、乗算など
の演算を行なうニューロンをハードウエア化することに
よって、演算の時間を短縮できる。さらに、ハードウエ
ア化したニューロンを多数用いることによって演算を並
列に行ないさらに高速化を図る試みもなされてきた。し
かし、ニューロンの数を増やすとニューロン間の信号線
にあたる配線の本数がn2のオーダーで増加するため、
大規模なネットワークを実現するのが困難であった。
【0009】配線の問題を解決する方法の一例として日
経マイクロデバイス1989年3月号p.123−12
9に記載されたものの原理を図5に示す。図5はアナロ
グニューロプロセッサANPとSRAMとを用いて3層
で各層に3つのニューロンを用いた階層型ネットワーク
を構成した例を示している。ANPは、図2(b)にお
ける乗算機MTと加算機ADDが1つずつと非線形関数
回路Dなどが1チップに集積されてものである。別のチ
ップであるSRAMには、各ニューロンに属する結合重
み値が記憶されている。異なる層のニューロンとは、ア
ナログコモンバスと呼ばれる1本の信号線を使って結合
されている。入力層のニューロン出力値は外部から入力
するため、入力層のニューロンに相当するANPとSR
AMは省略されている。
【0010】動作は次のようになる。まず、所望の情報
処理に必要な各ANP用の結合重み値を外部から、それ
ぞれのSRAMに読み込む。次に入力信号線から、入力
層内の1つのニューロンの出力値にあたる入力アナログ
信号を入力する。入力信号は、中間層のニューロンに相
当するANPに直接、並列に入る。入力信号に同期させ
て、重みデータをSRAMから各ANPにデータを読出
す。次に2つの信号の積を計算しその結果を各ANPに
記憶する。つづいて、入力層の別のニューロンの出力値
にあたる入力アナログ信号を入力して同様に積を計算し
その結果を中間層の各ANPに記憶されている値に足し
合わせる。入力層の最後のニューロンの出力値にあたる
入力アナログ信号について同様の演算を行なった後に、
中間層のニューロン出力値V12,V22,V32をA
NP内の非線形関数回路により順番に中間層アナログコ
モンバスに出力し上記と同様の演算を続ける。最後に出
力層のANP内の非線形関数回路により出力層のニュー
ロン出力値V13,V23,V33を出力層アナログコ
モンバスに順番に出力する。
【0011】上記のように図5に示した従来例に依れ
ば、コモンバスを時分割で駆動することにより配線の問
題を回避することができる。また、1層内のニューロン
の数だけの乗算を並列に行なうことができるので、ハー
ドウエア化による演算スピードの高速化とあいまって情
報処理速度をソフトウエアによる方法と比べて大幅に上
げることができる。
【0012】しかし、ANPとSRAMとを別々のチッ
プとしているため大規模なネットワークを高密度に実現
するのは、困難である。上記の日経マイクロデバイス1
989年3月号p.129に記載されているように10
mm角のチップ上に32ニューロンを集積することが可能
だとしても1つのニューロンについて加算器, 乗算器,
非線形関数回路を1つずつ用意する必要があるため、数
百, 数千のニューロンを1つのチップ上に集積すること
は困難である。
【0013】また、上記従来例では、実際の問題に適用
する際に次のような問題がある。階層型ネットワークの
応用例として3層のネットワークに英文字を入力してそ
の発音、アクセントを出力する例がコンプレックスシス
テムズ1(1987年)第145頁から第168頁 (Se
jnowski, T. J., and Rosenberg, C. R. 1987. Par
allel networks that learn to pronounce English tex
t. Complex Systems1, PP.145−168) に述べら
れている。第1層のニューロン出力値として英文字7文
字のコードが設定され、第3層の26個のニューロンの
出力値として上記7文字の中央の文字の発音、アクセン
トに対応するコードを出力するというものである。この
ような例では、入力によっては、出力層のニューロンの
出力値が、あらかじめ定義しておいた発音,アクセント
のコードに一致せずあいまいな値が得られることがあ
る。したがって、得られた出力と、すべての発音,アク
セントのコードを比較して最も近いコードを見つけてそ
れを正解とする必要がある。このような出力値と出力の
期待値 (上記例では発音,アクセントのコード) との比
較は、ニューラルネットワークによるパターン認識など
でも同様に必要となる。上記の従来例ではこの点が考慮
されおらず、実際の問題に適用する際に不便であった。
【0014】さらに上記従来例では所望の情報処理に必
要な結合重み値を外部のコンピュータで求めてその結果
を図5のSRAMに書き込んでいる。従って学習をソフ
トウエアですべて行うため、学習を高速に行うことは困
難であった。
【0015】本発明の目的は、多数のニューロンを含む
ネットワークにおいてニューロン出力値の計算を、少数
の回路を用いて高速に行なう装置を提供することにあ
る。また、本発明の他の目的は、ニューロン出力値と期
待値を高速に比較する機能を上記装置に持たせることに
ある。さらに、本発明の更に他の目的は学習に必要な演
算の少なくとも1部を処理する機能を上記装置に持たせ
ることにある。本発明の他の目的は以下の説明及び図面
によって、明らかにされる。
【0016】
【課題を解決するための手段】上記課題を解決するため
に、本発明では、ニューロン出力値,結合重み値,出力
の期待値ならびに学習に必要なデータなどを記憶するメ
モリ回路、該メモリ回路に情報を書き込んだり、該メモ
リ回路より情報を読出したりするための入出力回路、該
メモリ回路に記憶されている情報を用いて積和および非
線形変換等ニューロン出力値を求めるための演算ならび
に出力値とその期待値の比較, 学習に必要な演算などを
行なう演算回路, 上記メモリ回路, 入出力回路, 演算回
路の動作を制御するための制御回路を設けた。上記演算
回路は加算器,乗算器, 非線形関数回路, 比較器などの
いずれかを少なくとも1つ以上含んで構成され、積和等
ニューロン出力値を求めるために必要な演算の少なくと
も1部を並列に行なえるようにした。しかも、これらの
回路を複数のニューロンで共用させ、時分割で動作させ
ることによって、複数のニューロン出力値を求めるよう
にした。また、上記比較器は、求めたニューロン出力値
と出力の期待値とを並列に比較するようにした。
【0017】
【作用】上記のように演算回路に含まれる加算器、乗算
器、非線形関数回路を複数のニューロンについて共用し
たため、多数のニューロンを用いたニューラルネットワ
ークにおいてニューロン出力値を計算する装置を少数の
回路で実現することができる。また、上記演算回路で積
和等ニューロン演算の少なくとも1部を並列に行なうた
め、情報処理を高速に行なうことができる。また、上記
比較器により、得られた出力値と出力の期待値とを並列
に比較することができるため、得られた出力値と期待値
との距離 (得られた出力値と期待値との一致度、いわゆ
るハミング距離) を高速に求めることができる。さら
に、学習に必要な演算の少なくとも1部を装置のハード
ウエアで行うため学習の高速化を図ることができる。
【0018】
【実施例】図1は、本発明による情報処理装置を半導体
チップ上に集積化した場合の1実施例である。
【0019】情報を記憶するメモリ回路、該メモリ回路
に情報を書き込み、及び、該メモリ回路より情報を読出
す動作の少なくとも一方を行なう入出力回路, ニューロ
ン出力値を求めるための演算, 出力値と期待値との比較
(得られた出力値と期待値との一致度、 いわゆるハミ
ング距離の算定) 、あるいは学習に必要な演算などを該
メモリ回路に記憶されている情報を用いて行う演算回
路, 上記メモリ回路, 入出力回路, 演算回路の動作を制
御するための制御回路を半導体チップ上に集積してあ
る。各ブロックを結ぶバスは1本の配線とは限らず必要
な複数の配線で構成される。上記メモリ回路には、ニュ
ーラルネットワーク情報処理に必要な結合重み値, ニュ
ーロン出力値, 出力の期待値あるいは学習に必要なデー
タなどを記憶することができる。本実施例により次のよ
うにしてニューロン出力値の計算、出力値と期待値との
比較、あるいは学習に必要な計算などニューラルネット
ワーク情報処理を行なうことができる。
【0020】初めにニューロン出力値を計算する方法に
ついて述べる。まず、制御回路により、メモリ回路から
演算回路にバス1を通じてニューラルネットワーク情報
処理のための演算を行うのに必要な結合重み値ならびに
ニューロン出力値あるいは、オフセットなどを並列に読
出す。次に演算回路によりニューロン出力値を求めるの
に必要な積和, 非線形変換などの演算を並列に行ない、
得られた結果を入出力回路を通じてメモリ回路へ書込
む。以上の動作を必要な回数続けてニューロン出力値を
求めていく。演算回路では1回の動作で1つあるいは複
数のニューロン出力値を同時に求めてもよいし、あるい
はニューロン出力値を求める計算の1部を行ってもよ
い。このようにすれば、階層型ネットワーク、あるいは
同期型, 非同期型のホップフィールド型ネットワークな
ど様々なニューラルネットワークによる情報処理を行な
うことができる。なお同期型のホップフィールド型ネッ
トワークでは、すべてのニューロンの出力値を同期的に
更新するため、すべてのニューロンの出力値の更新が終
わるまで前回のすべてのニューロンの出力値を記憶して
おく必要がある。この場合には、前回のすべてのニュー
ロンの出力値をメモリ回路に記憶しておいてニューロン
の出力値の更新に使用すればよい。
【0021】本実施例によれば、ニューロン出力値を計
算するのに必要な乗算器, 加算器,非線形関数回路を必
要な個数だけ演算回路に設けて反復使用すればよいため
各ニューロン毎にこれらの回路を用意する場合に比べて
大幅に回路数を削減できる。例えば、各層が100個の
ニューロンからなる3層の階層型ネットワークを実現す
るのに図7の従来例では、乗算器と加算器ならびに非線
形関数回路を200個ずつ用意しなくてはならないのに
対して本実施例では、最低1つの乗算器と1つの加算器
ならびに1つの非線形関数回路を用意すればよい。速度
を上げるために1つのニューロン出力値を更新するのに
必要な乗算を並列に行なうとしても100個の乗算器と
1つの加算器ならびに1つの非線形関数回路を用意すれ
ばよい。したがって本実施例に依れば従来例に比べて回
路数を削減できる。なお、上記の差はネットワークが大
規模になるほど大きくなる。ホップフィールド型等他の
ネットワークでも事情は同じである。
【0022】ニューロン出力値を求める場合の情報処理
速度は、乗算等の演算速度の他に並列に行なう演算の量
が大きく寄与する。前記したように、たとえば、n個の
ニューロンを用いたホップフィールド型ネットワーク
は、すべてのニューロンの出力値を更新するのにn2回
の積を計算しなくてはならない。したがって、乗算を逐
次的に行なうとすべてのニューロンの出力値を更新する
のに少なくとも1回の乗算に要する時間のn2倍の時間
を要してしまう。その結果、乗算に要する時間がニュー
ロン数の増大と共にニューロン数の2乗のオーダーで急
速に増加してしまう。階層型ネットワークでも事情は同
じである。従って数多くの乗算を並列に計算することが
望ましい。以下では、図1の実施例においてニューロン
出力値を求めるために乗算を並列化して情報処理速度を
上げるための演算方式の実施例について説明する。
【0023】図6は演算を並列に行なう1方式につい
て、階層型ネットワーク(a)とホップフィールド型ネ
ットワーク(b)について説明したものである。本実施
例では、図に示したように1つのニューロン出力値を求
めるために必要な積を並列に計算する。つまり、1つの
ニューロンに入力されるニューロン出力値と結合重み値
とを並列にメモリ回路から読出し、それらの積を並列に
計算する。このため、乗算に要する時間はニューロン数
の増大と共にニューロン数の1乗のオーダーで増加す
る。したがって、乗算を逐次的に行なう場合に比べて情
報処理時間を大幅に短縮できる。図6では1つのニュー
ロンの出力値の更新に必要な乗算のみを並列に行なうと
したが、図1の実施例は、これに限定されるものではな
く、集積度が許容される範囲で演算回路を追加して複数
のニューロンの出力値の更新を並列に行なってもよいこ
とはもちろんである。その場合は、より高速に情報処理
を行なうことができる。その他図7に示したように他の
方式で並列に演算を行なうこともできる。図7は、階層
型ネットワーク(a)とホップフィールド型ネットワー
ク(b)について1つのニューロンの出力値が入力され
る複数のニューロンについて乗算を並列に行なう1実施
例を示したものである。この方法では、ニューロン出力
値と結合重み値を並列にメモリ回路から読出し, ニュー
ロン出力値の更新に必要な演算を複数のニューロンにつ
いて少しずつ行なうことになる。そのため、非同期型の
ホップフィールド型ネットワークを実現することはでき
ないが、図6の方式と同様に乗算に要する時間はニュー
ロン数の増大と共にニューロン数のおよそ1乗のオーダ
ーで増加するため乗算を逐次的に行なう場合に比べて情
報処理時間を大幅に短縮できる。
【0024】図5の従来例でもこの方式で演算を並列に
行なっているが、以下に述べるように、図1の構成によ
れば従来例に比べてより少数の回路で実現することがで
きる。図7に示した方式においては、図中に斜線で示し
たように各ニューロンにおいて1つの乗算器だけが並列
に動作する。したがって、図1の実施例では1度に演算
を行なうニューロンの数だけの乗算器を演算回路に設け
ればよく、従来例のようにニューロン毎にすべての乗算
器を設ける場合に比べて少数の回路でこの方式を実現す
ることができる。例えば、3層で各層に3つのニューロ
ンをもつ階層型ネットワークでは、乗算器, 加算器, 非
線形関数回路を6個ずつ設ける従来例に比べて図1の実
施例を用いると例えば乗算器、加算器、非線形関数回路
を3個ずつ用いるだけで同様の並列化を実現できる。
【0025】このように図1に示した実施例に依れば、
演算回路に含まれる加算器、乗算器、非線形関数回路を
複数のニューロンについて共用することにより、多数の
ニューロンを用いたニューラルネットワークと同様な情
報処理を行なう装置を必要最小限の回路で実現すること
ができる。また、上記演算回路で積和等の演算を並列に
行なうことにより、情報処理を高速に行なうことができ
る。なお、演算を並列化するとメモリ回路と演算回路の
間のバスの配線本数を増加して1度に多くのデータを演
算回路に送る必要が生じるが、図1では、同一のチップ
上にメモリと演算器を配置しているため、バスの配線本
数を増加することは容易にできる。
【0026】これまではニューロン出力値を計算する方
法について述べたが、図1の実施例によれば、ニューロ
ン出力値とその期待値との比較を行うこともできる。そ
のためには、あらかじめ期待値をメモリ回路に記憶して
おき、上記の方法で得られた出力値との距離の計算を演
算回路で行えばよい。この計算は、期待値と計算値の一
致度を計算するものである。このとき、バス1の本数を
増加することにより、多数のビットからなる期待値と出
力値とを同時に演算回路に読出して並列に処理すること
は容易にできる。このように図1の実施例によれば外部
のコンピュータを用いて1ビットずつシリアルに比較を
行う場合に比べてパターン認識などの情報処理を高速に
行うことができる。
【0027】さらに、図1の実施例によれば学習に必要
な演算を演算回路で行うことにより、ソフトウエアで行
う場合に比べて高速に学習を行うことができる。具体的
な実施例については、後述する。
【0028】ニューラルネットワーク情報処理は、結合
重み値を換えることにより様々な情報処理を行なうこと
ができるという利点を持つ。図1に示した実施例に依れ
ばメモリ回路に記憶した結合重み値を書き換えることに
より容易にこの利点を活かすことができる。また、メモ
リ回路の容量をニューロン出力値の計算に必要な量より
大きくしておくことにより、異なる情報処理に必要な何
種類かの結合重み値をあらかじめ記憶しておくこともで
きる。その場合には結合重み値を書き替える時間を失う
ことなく連続して異なる種類の情報処理を行うことがで
きるというメリットがある。その他、続けて数多くの入
力データについて情報処理を行なう場合には、あらかじ
め必要な入力データや、得られたデータをメモリ回路の
1部に記憶しておくこともできる。このようにすれば、
1つの入力データ毎にメモリ回路にデータを読み込み、
演算を行ってその結果を装置外へ出力するという動作を
繰り返す場合に比べて読み込み、演算、出力の動作モー
ドを切り替える回数が少なく処理時間を短縮することが
できる。
【0029】次に、図1の実施例を基にしたより具体的
な実施例について説明する。説明を簡単にするため、ま
ず、演算回路にニューロン出力値を計算する機能を持た
せる場合について説明し、最後に比較、あるいは学習の
機能を持たせる方法について述べる。
【0030】図8は、図1の実施例においてメモリ回路
に格子状のメモリセルアレーを有するものを用いた場合
の1実施例である。図8においてAは、メモリセルアレ
ーで、複数のデータ線とそれと交差するように配置した
複数のワード線とそれらの所望の交差部に配置されたメ
モリセルを有し、上記ワード線の1本を選択することに
より、上記異なる複数のメモリセルの信号を複数のデー
タ線上に読みだすことができる。12は、演算回路であ
る。10,11,13,14,15,16は、図1の制
御回路に相当するものである。10,15は、それぞれ
X系アドレス、Y系アドレス用のアドレスバッファ、1
1,14は、それぞれX系アドレス, Y系アドレス用の
デコーダ, ドライバである。13は、メモリセルアレー
を制御するためのアレー制御回路、16はクロック発生
回路であり、外部から入力される信号をもとにメモリの
動作を制御するためのクロックを発生する。OUTとW
Rは、それぞれ読出し回路, 書込み回路である。チップ
セレクト/CSは、このチップの選択信号である。書込
み制御信号/WEは、書込み、読出し動作の切り換え用
信号であり、低レベルで書込み動作、高レベルで読出し
動作となる。/NEは、演算回路制御信号であり、低レ
ベルで演算回路が起動され、高レベルで演算回路が停止
して通常のメモリとして動作する。以下では、/NEを
高レベルとした状態をメモリモード, 低レベルとしたと
きを演算モードということにする。メモリモードでは、
X系アドレス, Y系アドレスにより所望のメモリセルを
選択し、そのセルに対して書込みデータDIを書き込ん
だり、セルから情報を読出して読出しデータDOとして
出力することができる。演算モードでは、メモリセルに
記憶されている情報を演算回路12へ読出し、演算回路
12の演算の結果もしくは演算の結果に応じたデータを
入力回路を通じてメモリセルヘ書き込むことができる。
本実施例によれば、ワード線の1本を選択することによ
り、そのワード線上のすべてのメモリセルの情報がデー
タ線に出力される。したがって、容易に多数の情報を演
算回路12に取り込むことができ、多くの演算を並列に
行なうことができる。本実施例によりニューロン出力値
の計算を行うには、まず、メモリモードとして演算回路
を停止し、必要な結合重み値, ニューロン出力値, オフ
セットなどをメモリ回路に書き込んでおく。つぎに演算
モードとして演算回路を起動し、1本のワード線を選択
することにより必要な情報を演算回路に読出す。次にそ
の結果をメモリ回路に書き込む。さらに演算に必要な情
報の読出しと結果の書込みを必要な回数だけ続ければ、
ニューラルネットワーク情報処理を高速に容易に行なう
ことができる。上記のように図8に示した実施例によれ
ば1度に多くの情報を演算回路に読み込むことができる
ので、例えば、図6あるいは図7に示したような方式の
並列演算を行なうのに適している。このように、本実施
例によれば並列に演算を行なうため高速にニューラルネ
ットワーク情報処理を行なうことができる。さらに、演
算回路12を反復使用することにより複数のニューロン
で出力値の計算回路を共用することができ、容易に高集
積化できる。
【0031】また、複数のワード線上のメモリセルに蓄
えた情報を使って並列に演算を行なう場合には、演算回
路内に1次記憶のためのレジスタを設けておきワード線
を持ち上げて得た情報を1度レジスタに収納して、別の
ワード線を立ち上げてその結果読出した情報と合わせて
演算を行なうこともできる。
【0032】さらに、図9に示した実施例のようにメモ
リ回路をA,Bの2つ設けることもできる。図9におい
て13A,13BはそれぞれメモリセルアレーA,Bを
制御するアレー制御回路である。デコーダなど他の回路
は、図には示していない。図9の構成によればメモリセ
ルアレーAとBにおいてワード線を1本ずつ選択するこ
とにより両方のワード線上のメモリセルの情報を演算回
路に読み込むことができる。図9の構成を用いれば、メ
モリセルアレーAにはニューロン出力値, メモリセルア
レーBには結合重み値を収納するなど情報の種類により
メモリアレーを使いわけることもできるので、読出し、
書込みなどの制御を簡単化することができる。なお、図
8,図9の実施例においては、書き込みデータDIと読
出しデータDOを並列に複数扱えるようにしたり、アレ
ーAとBとで別々に読出し回路OUTと書込み回路WR
を設けてもよい。
【0033】図8,図9の実施例においてはワード線あ
るいは、特定のメモリセルの選択はアドレスにより通常
のメモリと同様に行なうことができる。したがって、ア
ドレスの選択順を変えることによりさまざまな型のネッ
トワークあるいは様々な並列演算の方式などに柔軟に対
応できる。
【0034】図8,図9の実施例においてメモリ回路と
してDARMあるいは、SRAMなどの高集積半導体メ
モリを用いることができる。この場合にはメモリ回路に
多くの情報を蓄えることができるので、規模の大きいネ
ットワークを1チップに集積化できる。
【0035】次に、図9の構成を用いて階層型ネットワ
ークを実現する方法について詳細に述べる。並列演算の
方式としては、図6(a)の方式を例にとる。層の数は
m層で各層のニューロンの数はn個とする。なお、説明
を簡単にするために図2(b)あるいは図4(b)に示
した各ニューロンのオフセットΘについては、ここでは
省略する。しかし、図2(b)あるいは図4 (b) より
明らかなように、各ニューロンのオフセットΘは、各ニ
ューロン毎に入力されるニューロン出力値を1つ増やし
てその値を各ニューロンのオフセットΘ、対応する結合
重み値を1と置き、その積を他のニューロン出力値と結
合重み値の積の総和に足すことによって通常の他のニュ
ーロンからの出力値と同様に扱うことができる。
【0036】図10はメモリセルと、結合重み値および
ニューロン出力値との対応の1実施例を示したものであ
る。Dは非線形関数回路であり、c1,c2,…cnは
加算器、m1,m2,…mnは乗算器である。c1,c
2,…cnは合わせて図2(b)における多入力の加算
器ADDを構成している。メモリセルアレーAにはニュ
ーロン出力値、メモリセルアレーBには結合重み値を収
納する。図にはニューロン出力値, 結合重み値を収納す
る分のメモリセルのみしか示していないが各ニューロン
のオフセットΘや学習に必要なデータなどその他のデー
タを収納する分のメモリセルを必要に応じて設けてもよ
いのはもちろんである。図に示したように、メモリセル
アレーA内のワード線sとデータ線iの交差部にあるメ
モリセルにニューロン出力値Visを収納する。すなわ
ち同じワード線には、同じ層のニューロン出力値が配置
される。メモリセルアレーBでは、ワード線(s,j)
とデータ線iの交差部にあるメモリセルに結合重み値T
sijを収納する。図11(a),(b) には、非線形
関数回路Dの入出力特性の1実施例を示してある。図1
1(a)は、g1とg2の2値の出力を持つ実施例であ
る。x1,x2はそれぞれ入力xの下限値および上限値
を表している。図11(a)では、入力xがxthを越
えると出力がg2でそれ以下だとg1になるので、メモ
リセルとして2値のものを使うときに適している。図1
1(b)は、g1とg2の間にgaとgbの出力を持つ
4値の実施例である。本実施例は、メモリセルとして4
値のものを使うときに適した例である。g1,ga,g
b,g2の間隔は、図では等間隔としたが必要に応じて
間隔を変えてもよいことはもちろんである。メモリセル
として連続値の情報、所謂アナログ値を記憶できるよう
なものを使う場合には非線形関数回路Dとして図3
(b)のような特性を持つものを使用してもよい。図1
2には、図10の実施例において入力層のニューロン出
力値から最終層のニューロン出力値を求めるためのワー
ド線の選択法および書込み先のアドレスの対応の1実施
例を示してある。以下、図10の動作を図12を用いて
説明する。まず、アレーAのs=1のワード線とアレー
Bの(s,j)=(1,1)のワード線を同時に立ち上
げる。するとアレーAのデータ線i=1,2,…,nに
は、入力層のニューロン出力値V11,V21,…,V
n1が出力される。一方アレーBのデータ線i=1,
2,…,nには、結合重み値T111,T112,…,T
11nが出力される。それらが乗算器m1,m2,…,
mnに入力されてT111V11,T112V21,…,
T11nVn1となりこれらが加算器c1,c2,…,
cnに入力される。その結果(T111V11+T11
2V21+…+T11nVn1)が非線形関数回路Dに
人力される。非線形関数の出力は書込み回路WR(図で
は省略)を通じてアレーA内の書込み先アドレス(s,
i)=(2,1)に対応するメモリセルに書き込まれ
る。このようにして2層目の1番目のニューロン出力値
V21の値が計算される。次に、アレーAのs=1のワ
ード線とアレーBの(s,j)=(1,2)のワード線
を同時に立ち上げる。するとアレーAのデータ線i=
1,2,…,nには、入力層のニューロン出力値V1
1,V21,…,Vn1が出力される。一方アレーBのデ
ータ線i=1,2,…,nには、結合重み値T121,
T122,…,T12nが出力される。それらが乗算器m
1,m2,…,mnに入力されてT121V11,T1
22V21,…,T12nVn1となりこれらが加算器c
1,c2,…,cnに入力される。その結果(T121
V11+T122V21+…+T12nVn1)が非線
形関数回路Dに入力される。非線形関数回路の出力は書
込み回路(図では省略)を通じてアレーA内の書込み先
アドレス(s,i)=(2,2)に対応するメモリセル
に書き込まれる。こうして2層目の2番目のニューロン
出力値V22の値が計算される。以上のような動作を図
12に従って続けていくことによりすべてのニューロン
出力値を求めることができる。本実施例によれば、演算
モードにおいて読出しと書込み動作を1回ずつ行なうこ
とにより1つのニューロン出力値を求めることができる
ため高速にニューラルネットワーク情報処理を行なうこ
とができる。また、演算回路をすべてのニューロンで共
用できるため高集積化が可能である。なお、図12はメ
モリセルの割当ての1例を示したものであり、これに限
定されることなく種々の変形が可能である。例えば、前
記したように複数の入力デー夕を連続して処理すること
もできる。この場合には、入力層のニューロン出力値は
複数組必要である。このため、アレーAの異なる複数の
ワード線上に複数の入力データに相当する入力層のニュ
ーロン出力値をあらかじめ書き込んでおいで、順番に使
用してもよい。このようにすれば情報処理の度に入力層
のニューロン出力値を読み込まなくてよいため、連続し
て高速に情報処理を行なうことができる。
【0037】ここではニューロン出力値, 結合重み値を
蓄えるのに1つのメモリセルを使用した。したがって、
2値のメモリセルを使用した場合にはニューロン出力
値, 結合重み値として2値の値しか取れないことにな
る。前記したように多値のメモリセルを使用することに
よって、ニューロン出力値, 結合重み値の値を増やすこ
ともできるが、多値のメモリセルでは、S/N比の問題
などにより信頼性にかける場合もあり得る。そのような
場合には、次に述べるように、ニューロン出力値,結合
重み値を蓄えるのに複数のメモリセルを使用することも
できる。
【0038】図13は、1つのニューロン出力値を蓄え
るのにp個のメモリセル、1つの結合重み値を蓄えるの
にq個のメモリセルを使用した場合の1実施例である。
図中のi,j,sなどのニューロン出力値, 結合重み値
を示す添字は図10に示した実施例における添字と対応
している。図13の実施例ではアレーA内の1本のワー
ド線上の連続するp個のメモリセルで1つのニューロン
出力値を表し、アレーB内の1本のワード線上の連続す
るq個のメモリセルで1つの結合重み値を表す。ニュー
ロン出力値の計算は次のように行なわれる。まず、図1
0の実施例と同様に、アレーAのs=1のワード線とア
レーBの(s,j)=(1,1)のワード線を同時に立
ち上げる。するとアレーAのp本のデータ線よりなるデ
ータ線群i=1,2,…,nには、入力層のニューロン
出力値V11,V21,…,Vn1を表す情報が出力さ
れ、それらが群ごとに加算器a1,a2,…,anに入
力される。一方アレ一Bのq本のデータ線よりなるデー
タ線群i=1,2,…,nには、結合重み値T111,
T112,…,T11nを表す情報が出力され、それらが
群ごとに加算器b1,b2,…,bnに入力される。上
記した加算器a1,a2,…,an,b1,b2,…,
bnにより、ニューロン出力値V11,V21,…,Vn
1、結合重み値T111,T112,…,T11nが合成
され図示したように乗算器m1,m2,…,mnに入力
されてT111V11,T112V21,…,T11nV
n1を得る。これらが加算器c1,c2,…,cnに入
力され、その結果、(T111V11+T112V21
+…+T11nVn1)が非線形関数回路Dに入力され
る。非線形関数回路の出力は書込み回路WR(図では省
略)を通じてアレーA内の書込み先アドレス(s,i)
=(2,1)に対応するp個のメモリセル群に書き込ま
れる。同様な動作を図12と同じアドレスを用いて続け
ることによりすべてのニューロンの出力値を求めること
ができる。上記の実施例によればアレーA内の1本のワ
ード線上の連続するp個のメモリセルで1つのニューロ
ン出力値を表し、アレーB内の1本のワード線上の連続
するq個のメモリセルで1つの結合重み値を表すことに
より2値のメモリセルを使用して多値の値のニューロン
出力値、結合重み値を表現できることになる。このた
め、ニューロン出力値,結合重み値として多値の値を用
いる場合でも2値のメモリセルを用いて実現することが
できる。また、上記の実施例においては、アドレスの切
り換えの回数は図10の実施例と同じであるため図10
の実施例と同様に高速に情報処理を行なうことができ
る。なお、非線形関数回路の結果をニューロン出力値を
表すp個のメモリセルへ書込むには、p回の書込み動作
を連続して行なってもよいが、書込み回路をp個設ける
ことにより並列に行なうことも容易にできる。この場合
には、複数のメモリセルヘ書込むことによる時間の損失
をさけることができる。また、読出し回路を複数設ける
ことにより読出し動作の速度を上げることもできるのは
もちろんである。なお、図13の実施例において、乗算
器m1,…,mnとして多入力の回路を用いれば加算器
a1,…,an,b1,…,bnを設けることなく同様
の回路を実現できる。その他、演算回路の構成は、種々
の変形が可能である。
【0039】図13の実施例では、ニューロン出力値を
蓄えるのにp個のメモリセル、結合重み値を蓄えるのに
q個のメモリセルを使用した。つまり、ニューロン出力
値をpビット、結合重み値をqビットで表していること
になる。複数のビットで情報を表現する方法はいろいろ
あるので必要に応じて表現方法を選び、それにあわせて
加算器、乗算器、あるいは、非線形関数回路の特性を設
計すればよい。例えば、ニューロン出力値を表すpビッ
トのメモリセルのうちその内容が1であるメモリセルの
数によってニューロン出力値を表すこともできる。図1
4の実施例は、そのような場合に適した非線形関数回路
Dの入出力特性の1実施例である。図14においてg
1,g2,…,gpは、非線形関数回路Dのp本の出力
を示している。それぞれの出力は、0または1の値を取
り、書込み回路WR(図では、省略)を通じて対応する
p個のメモリセルに0または1を書き込む。g1,g
2,…,gpは、それぞれ入力がxth1,xth2,
…,xthpを越えたときに1それ以外では0となる。
xth1,xth2,…,xthpは、入力の上限x
1,下限x2の間で等間隔に設定してもよいしあるいは
任意の間隔で設定してもよい。たとえばxthkとxt
hk+1(k=1,…,p−1)の間隔を図15のよう
にすれば非線形関数回路gとしてシグモイド状の特性を
持つものを実現できる。本実施例によれば、p個のメモ
リセルによって1つのニューロン出力値にp個の値を持
たせることができる。本実施例では、ニューロン出力値
を表すp個のメモリセルは、等価に扱われる。すなわ
ち、p個のうちどのメモリセルの情報が反転あるいは固
定されたとしてもニューロン出力値への影響は等しい。
したがって、一般的な2進表現と較べて1つのメモリセ
ルの情報の破壊によるニューロン出力値への影響を小さ
くすることができる。以下では、このような表現法を等
価的な表現と記すことにする。ここでは、ニューロン出
力値についてのべたが、結合重み値についても上記の等
価的な表現を使えるのはもちろんである。
【0040】もちろん、2進表現を使うこともできる。
この場合には、pビットで2p個の値を表現できるので
少ないメモリセルで多くの値を表現するのに適してい
る。図16は、ニューロン出力値と結合重み値に2進表
現を使った場合の1実施例を示したものである。アレー
Aでは、i=h(h=1,2,…n)であるデータ線上
のメモリセルのみ,アレーBでは、i=hであるデータ
線とs=f(f=1,2,…,m−1)であるワード線
上のメモリセルのみを示してある。図16においてWT
は重み付け回路であり、メモリセルの信号を重み付けし
て加算器ah,bhに伝える。ここで重み付けの係数は
図示したようにニューロン出力値については1から2p
まで結合重み値については1から2qまでメモリセル毎
に変えてある。これにより乗算器mhに入力されるニュ
ーロン出力値と結合重み値は、それぞれ2p個、2q個
の値を取ることができる。ニューロン出力値を計算する
ためのアドレスの選択法は、図13の実施例と同じよう
に図12に従えばよい。図17は、図16の実施例にお
ける非線形関数回路Dの特性の1実施例である。g1
は、(x2−x1)/2pだけ入力が変化する毎に0と1
を交互に繰り返し、g2は、g1の2倍の周期で0と1
を交互に繰り返す。以下同様に周期を倍ずつ変えてgp
では、(x2−x1)/2を境として0から1になるよ
うに設定する。すなわち、A/Dコンバータとして動作
するように非線形関数回路Dを設計すればよい。なお、
本実施例においても入力にたいしてニューロン出力値が
非線形に増加するように非線形関数回路Dを設計するこ
ともできる。例えば、入力に対してシグモイド関数状に
ニューロン出力値を増加させるには、異なるgの間の周
期の比を一定にしたまま、各出力が変化する周期を入力
の増加にともなって減少させ、入力が(x2−x1)/
2を越えたところから入力の増加にともなって周期を増
加させてやればよい。以上説明したように図16,図1
7に示した実施例によれば、ニューロン出力値と結合重
み値を表現するのに、それぞれp個とq個のメモリセル
を用いて、ニューロン出力値と結合重み値にそれぞれ2
p個、2q個の値を持たせることができる。したがっ
て、少ないメモリセルでニューロン出力値と結合重み値
に多数の値を持たせるのに適している。なお、本実施例
においても、乗算器m1,…,mnとして多入力の回路
を用いて、重み回路WT,加算器a1,…,an,b
1,…,bnの機能を乗算器に持たせるなど種種の変形
が可能なのは、もちろんである。ここでは、等価的な表
現と2進数表示による実施例を示したが、この他にもた
とえば、符号ビットを用いて負の数を表現したり、複数
のビットで情報を表現する方法はいろいろあるので必要
に応じて使いわけることができる。
【0041】次に1つのMOSトランジスタおよび1つ
の容量より構成されるダイナミックメモリセル(DRA
Mセル)をメモリ回路に用いた実施例を示す。
【0042】図18は、図10に示した実施例をDRA
Mセルを用いて構成した実施例である。図18において
アレーA,アレーBは、互いに交差する複数のデータ線
対DA1,/DA1,…,DAn,/DAn,DB1,
/DB1,…DBn,/DBnと複数のワード線WA
1,WA2,…,WAm,WB1,1,WB1,2,…,WB
1,n,WB2,1,WB2,2,…,WBm-1,n および、それ
らの交差部に設けられたメモリセルMCより構成されて
いる。メモリセルMCは対をなすデータ線とワード線と
の交差部のいずれか一方に設けられている。図において
PR,SA,RSA,WSは、プリチャージ回路, セン
スアンプ, 読出しセンスアンプ, 書込みスイッチであ
り、図9のアレー制御回路13A,13Bに相当する。
演算回路の中のMTは、乗算回路である。16は、クロ
ック発生回路で、チップ外部より与えるアドレスADD
A,ADDBおよび、チップセレクト信号/CSA,/
CSBなどより、他の回路を制御するためのクロックΘ
A,ΘBなどを発生する。
【0043】以下では、上記図18の実施例の動作を図
19,図20,図21を用いて説明する。図19は、動
作モードと外部信号との関係の一実施例を示したもので
ある。前記したように、演算モード前半では、メモリセ
ルアレーA,Bのワード線を1本ずつ立ち上げ、後半で
は、メモリセルアレーAのワード線を1本立ち上げる。
また、メモリモードでは、メモリセルアレーAとBとで
独立に読出し、書き込みを行なう。図19では、これら
の制御を、容易に行なうために、動作モードをさらに細
分した。メモリモード中のAR,AW,BR,BWは、
それぞれ、アレーAからの読出し、アレーAへの書き込
み、アレーBからの読出し、アレーBへの書き込みを行
なうモードである。また、演算モード中のNR,NW
は、それぞれデータを読出して演算するまでの前半部分
と、演算結果を書き込む後半部分である。本実施例で
は、これら6つのモードを切り替えるために、チップセ
レクト信号/CSA,/CSB,書き込み制御信号/W
E,演算回路制御信号/NEの4つの外部入力信号を用
いた。チップセレクト信号/CSA,/CSBは、チッ
プの選択及び、アレーA,Bの選択を指定する。/CS
A,/CSBが両方H(高レベル)で、チップが非選択と
なり、/CSAがL (低レベル) でアレーAが、/CS
BがL(低レベル)でアレーBが、選択状態となる。書き
込み制御信号/WEは、前記したように書き込み、読み
だしを切り替える信号で、Hで読出し、Lで書き込み動
作となる。/NEについても、前記したとおりで、Hで
メモリモード、Lで演算モードとなる。したがって、例
えば/CSA,/CSBが共にL、/WEがH、/NE
をLとすれば、アレーAとB両方から読みだしを行なう
演算モード前半のモードNRとなる。アドレス信号につ
いては、チップセレクト信号でアレーA,Bの切り替え
を指定しだため、アレーAのメモリセルを選択するアド
レス群ADDAとアレーBのメモリセルを選択するアド
レス群ADDBとに分けることができる。ここで、アド
レス群ADDAはアレーAのワード線を選択するための
X系アドレスとアレーAのデータ線を選択するためのY
系アドレスの集まりを総称したものである。同様に、ア
ドレス群ADDBはアレーBのワード線を選択するため
のX系アドレスとアレーBのデータ線を選択するための
Y系アドレスの集まりを総称したものである。各動作モ
ードにおいては、図19に従ってこれらのアドレス群を
アドレスピンへ印加する。以上説明した図19の実施例
によれば、チップセレクト信号を2つ設けてアレーA,
Bの切り替えを行ない、アドレスをアレーAとBとで分
離した。このため、アレーAとBを独立に選択できるた
め、アレーAとBの両方、あるいは片方を選択する必要
のある各動作モードを容易に制御できる。なお、図19
以外にも、動作モードと外部信号の関係は種々変形して
実現可能であるのはもちろんである。たとえば、チップ
セレクト信号を/CSのみとして、アレーAとBの切り
替え用のアドレスを加える、あるいは、アドレスをアレ
ーAとBで分けずにアレーAまたはBのどちらかのみを
選択するようにしておいて、モードNRにおけるアレー
Bのワード線を選択するXアドレスは、チップ内部に設
けたカウンタにより発生してもよい。
【0044】図20はメモリモードにおける図18の波
形、図21は演算モードにおける図18の波形の実施例
である。
【0045】メモリモードの動作は通常のDRAMの読
出し、書き込み動作と同様である。図20には、メモリ
モードにおいてアレーA内のワード線WA1とデー夕線
DA1の交差部にあるメモリセルに対して読出し動作
(モードAR) と書込み動作 (モードAW) を続けて行
なう場合の電圧波形を示してある。図においてVcc
は、正電位を示している。メモリモードであるため演算
回路制御信号/NEが高レベルであり、これにより演算
回路起動信号ΦNは、低電位に固定され演算回路12は
オフしている。読出し動作を始める前には、PPAとP
NAがVcc/2に設定されており、このためセンスア
ンプSAは、オフしている。まだ、プリチャージ信号Φ
pAが高電位にあるため、プリチャージ回路PRがオン
してDA1,/DA1,…,DAn,/DAnのデータ
線対は短絡されると共にプリチャージ電位VHに電位が
設定される。VHは、Vcc/2に設定しておく。チッ
プセレクト信号/CSAが低電位になると、プリチャー
ジ信号ΦpAを立ち下げ、プリチャージ回路PRをオフ
して、アドレス信号ADDAによって選択されたワード
線WA1と読出しY選択信号YRA1を高電位に遷移さ
せる。その結果ワード線WA1に接続されたすべてのメ
モリセルMCのMOSトランジスタが導通し、容量に蓄
積された電荷に応じて、データ線対DA1,/DA1,
…,DAn,/DAnにそれぞれ微妙な電位差が生じ
る。この電位差を読出しY選択信号YRA1の入力され
た読出しセンスアンプRSAで検出して読出し線OA,
/OAのインピーダンスの差に変換する。入出力回路で
は、これを電圧差に変換後、増幅してメモリセルの内容
である1もしくは0に対応する電位を読出しデータDO
として出力する。これらの動作と並行して次のようにし
て所謂再書込み動作が行なわれる。データ線対DA1,
/DA1,…,DAn,/DAnにそれぞれ微妙な電位
差が生じたのち、PPAを高電位に、PNAを低電位に
遷移させてセンスアンプSAを起動させる。そのためデ
ータ線対に生じた微妙な電位差が増幅されて、高電位側
のデータ線をVccに低電位側のデータ線を0Vに遷移
する。その結果、ワード線WA1に接続されたすべての
メモリセルMCの容量に読出し前の情報に対応する電位
が再び書き込まれる。再書込み動作の終了後、チップセ
レク卜信号/CSAが高電位になると、選択されたワー
ド線WA1と読出しY選択信号YRA1を低電位に遷移
し、その後PPA,PNAをVcc/2に遷移させ、セ
ンスアンプSAをオフさせるとともにプリチャージ信号
ΦpAを高電位に遷移させる。この結果、データ線対は
短絡されると共にプリチャージ電位VHに電位が設定さ
れて再びもとの状態に戻る。以上が読出し動作である。
【0046】続いて同じセルへの書込み動作(モードA
W)に移る。書込み動作では、チップセレクト信号/C
SAが低電位となりさらに書込み制御入力/WEが低電
位となることによって、書込みデータDIに与えられた
情報がアレーA内の選択されたメモリセルに書き込まれ
る。書込み動作でもまず、チップセレクト信号/CSA
が低電位になると、プリチャージ信号ΦpAを立ち下
げ、プリチャージ回路PRをオフする。次に、アドレス
信号ADDAによって選択されだワード線WA1と読出
しY選択信号YRA1が高電位に遷移する。その結果、
ワード線WA1に接続されたすべてのメモリセルMCの
MOSトランジスタが導通し、容量に蓄積された電荷に
応じて、データ線対DA1,/DA1,…,DAn,/
DAnにそれぞれ微妙な電位差が生じる。データ線対に
生じた微妙な電位差は、センスアンプSAによって増幅
されていく。つづいて書込み制御入力/WEが低電位に
遷移したことにより発生された入力回路起動信号ΦWA
Rが高電位に遷移する。これによって書込みデータDI
に与えられた情報が、書込み線対IA,/IAへ差動信
号として伝えられる。また、書込みY選択信号YWA1
が高電位に遷移して書込み先のメモリセルが接続された
書込みスイッチWSがオンする。これにより書込み線対
IA,/IAはそれぞれデータ線対DA1,/DA1と
導通する。この結果データ線対DA1,/DA1は書込
みデータDIに与えられた情報に対応した電位に設定さ
れる。その後入力回路起動信号ΦWARは低電位に遷移
するがデー夕線対の電位はセンスアンプSAによって保
たれる。書込みスイッチWSがオンしなかったデータ線
対では初めに読出した信号がそのままセンスアンプによ
り増幅されて再書込みが行なわれる。再書込み動作の終
了後、チップセレクト信号/CSAが高電位になると、
選択されたワード線WA1と書込みY選択信号YWA1
が低電位に遷移し、その後PPA,PNAをVcc/2
に遷移させセンスアンプSAをオフさせるとともにプリ
チャージ信号ΦpAを高電位に遷移させる。この結果、
データ線対は短絡されると共にプリチャージ電位VHに
電位が設定されて再びもとの状態に戻る。以上が書込み
動作である。
【0047】ここでは、アレーA内の同一のメモリセル
に続けて読出し動作と書込み動作を行なう場合について
説明したが、読出し動作あるいは書込み動作をそれぞれ
続けて行なうこともできるし、また、モードAR,A
W,BR,BWを切り換えることにより読出し動作ある
いは書込み動作の度に異なるメモリアレー内の所望の位
置にあるメモリセルについて読出し動作あるいは書込み
動作を行なうことができるのは、もちろんである。
【0048】次に演算モードの動作について説明する。
図21は、ニューロン出力値V12を得るための動作波
形を示したものである。すでにメモリモードにおける書
込み動作により必要な結合重み値、ニューロン出力値等
は書き込まれているものとする。まず、モードNRとす
るためにチップセレクト信号/CSAと/CSBを低レ
ベルとし、書き込み制御信号/WEを高レベル, 演算回
路制御信号/NEを低レベルとする。アドレスADD
A,ADDBは、アレーAのワード線WA1とアレーB
のワード線WB1を選択するように設定する。/CSA
と/CSBが低レベルになることによりプリチャージ信
号ΦPA,ΦPBが低レベルに、/NEが低レベルにな
ることにより演算回路起動信号ΦNが高レベルに遷移す
る。続いてワード線WA1とWB1とが立ち上がりWA
1上のメモリセルに蓄えられていたニューロン出力値V
11,V21,…,Vn1と結合重み値T111,T1
12,…,T11nがデータ線上に読み出される。こう
して、アレーAから読出されたニューロン出力値とアレ
ーBから読出された結合重み値は、図18に示したよう
に演算回路起動信号ΦNにより起動されている乗算回路
MTに入力される。乗算回路MTでは、アレーA側のデ
ータ線とアレーB側のデータ線は、MOSトランジスタ
のゲートにつながれており、それらのMOSトランジス
タは演算回路起動信号ΦNが入力されているスイッチ用
のMOSトランジスタを通じて積和出力線NOとダミー
線DMとにつながれている。積和出力線NOの一端は負
荷RM1を通じて電源VMに接続されており、ダミー線
DMの一端は接地されている。データ線に読出された信
号がセンスアンプSAによってVcc,あるいは、0V
に増幅されるとニューロン出力値と結合重み値の積が1
である乗算器では、負荷RM1を通じて電源VMより接
地電極へ電流が流れる。したがってニューロン出力値と
結合重み値の積が1であるような組合せの数に比例して
積和出力線NOの電位は下降する。積和出力線NOは、
非線形関数回路Dに入力されている。非線形関数回路D
ではニューロン出力値と結合重み値の積の合計が大きく
積和出力線NOの電位が参照電圧VRより下がるがどう
か検知して結果をNVへ出力する。図21に示した積和
出力線NOの波形のうち実線が積和の結果が小さかった
場合であり破線が積和の結果が大きかった場合である。
入出力回路では非線形関数回路Dの結果を検知して書込
み線対IA,/IAに次にメモリセルに書き込むべきニ
ューロン出力値V12を出力する。図21にはIAの波
形を示した。IAは、積和が大きい場合には破線のよう
に高レベルに、積和が小さい場合には実線のように低レ
ベルになる。/IAはIAと逆相となる。書込み線対I
A,/IAにニューロン出力値が出力された時点でラッ
チ信号ΦLを高電位に遷移する。この結果、書込み線対
IA,/IAに出力された電位は、入出力回路IO内に
設けたラッチ回路によりラッチされる。ラッチ信号ΦL
は、演算回路起動信号/NEの立ち下がりを受けてI
A,/IAに信号がでるまで遅延させて立ち上げればよ
い。つづいて、演算回路起動信号ΦNが低電位に遷移し
て演算回路をオフし、ワード線が立ち下がった後にメモ
リモード時と同様にデータ線のブリチャージを行なう。
このときラッチ信号ΦLは高電位のままにして、書込み
線対IA,/IAに出力されたニューロン出力値を保っ
ておく。
【0049】次に演算モードの後半であるモードNWに
移る。まず、チップセレクト信号/CSAおよび書込み
制御信号/WEを低レベル,チップセレクト信号/CS
Bを高レベルとしてアレーA内のニューロン出力値を書
込むべきメモリセルが選択されるようにアドレスADD
Aを切り換える。演算回路起動信号/NEは低レベルの
ままにしておく。/CSAを立ち下げた結果、プリチャ
ージ信号ΦPAが低レベルとなりアレーAに書き込みが
できる状態となる。つづいて、選択されたワード線WA
2,書込みY選択信号YWA1が立ち上がる。これによ
り、書込み線対IA,/IAに出力されたニューロン出
力値V12は、ワード線WA2とデータ線DA1とに接
続されたメモリセルに書き込まれる。最後にワード線を
すべて立ち下げてプリチャージを行なう。また、演算回
路制御信号/NEを立ち上げることにより、ラッチ信号
ΦLが立ち下がりラッチがはずれる。こうして、次の動
作に備える。以上が演算モードの動作である。同様の動
作を図12に従ってアドレスを変えて続けることにより
すべてのニューロン出力値を計算できる。
【0050】以上において乗算器MTのうちダミー線D
Mに接続された側の回路は、省いてもよいが乗算器MT
のMOSトランジスタのゲート容量等が片方のデータ線
のみに付くとデータ線容量がアンバランスとなり場合に
よってはセンスアンプの動作などに支障を来すこともあ
る。そのような場合には図18のようにしておけばデー
タ線容量がアンバランスとなることによる悪影響を避け
ることができる。
【0051】次に、図18に用いるのに好適な回路の実
施例を示す。図22(a)は、非線形関数回路Dの1実
施例である。本実施例は、バイポーラトランジスタQ7
20,Q719,抵抗R72およびMOSトランジスタ
Q721よりなる差動アンプと、インバータINV75
およびMOSトランジスタQ715,Q716,Q71
7,Q718,抵抗R71,ダイオードD71よりなる
インバータにより構成される。本回路は信号ΦNが高電
位になることにより起動される。図22(b)に非線形
関数回路Dの入力である積和出力線NOの電位と出力N
Vの電位の関係を示す。積和出力線NOの電位が参照電
位VRより低いと出力NVが高電位にNOの電位が参照
電位VRより高いと出力NVが低電位となる。本実施例
によれば差動アンプにバイポーラトランジスタを用いて
いるため入力の変化にたいして立上りの急峻な特性を持
つ非線形回路を実現できる。また、参照電位VRを所望
の値に設定することにより容易に非線形関数回路Dの特
性を変えることができる。なお、差動アンプの出力はバ
イポーラトランジスタQ719の飽和を避けるためにあ
まり大きくとることができない。そのため後段のインバ
ータに直接差動アンプの出力を接続するとインバータが
動作しないことがありうる。そこで、抵抗R71,ダイ
オードD71を設けてMOSトランジスタQ717に入
力される電位を降下させている。
【0052】図23は入出力回路IOの1実施例であ
る。図23に示したように書込み回路WRは入力バッフ
ァINBUF,書込み切り替えスイッチSWA,SW
B,ラッチ回路LATおよびインバータINVIA,I
NVIBより構成されている。書込み切り替えスイッチ
SWA,SWBは、書き込みデータDIをアレーAある
いは、アレーBのどちらのメモリセルに書き込むか切り
替えるためのものである。切り替え信号ΦWRAが高電
位のときには、書き込みデータDIは入力バッファIN
BUFを通じて書き込み線対IA,/IAよりアレーA
内のメモリセルに書き込まれる。切り替え信号ΦWRB
が高電位のときには、書き込みデータDIは入力バッフ
ァINBUFを通じて書き込み線対IB,/IBよりア
レーB内のメモリセルに書き込まれる。ラッチ回路LA
Tは、演算モードにおいて非線形回路Dの出力NVに出
力された情報をラッチして、書き込み線対IA,/IA
よりアレーA内のメモリセルに書き込むためのものであ
る。図より明らかなように、非線形回路Dの出力NVと
書き込み線対IA,/IAの電位関係は同相関係になる
ので、非線形関数回路Dの積和出力線NOと入力コモン
線IAの電位の関係は、図24に示したように反転関係
となる。前記したように図18の実施例では積和出力線
NOの電位はニューロン出力値と結合重み値との積和が
大きいほど低下するので、積和出力線NOと入力コモン
線IAの電位の関係が反転関係となるように回路を構成
した。積和出力線NOの電位がニューロン出力値と結合
重み値との積和が大きいほど上昇するように設計した場
合には積和出力線NOと入力コモン線IAの電位の関係
を同相関係となるように回路を構成すればよいのはもち
ろんである。
【0053】図25は読出し回路OUTの1実施例であ
る。読出し回路OUTは電流電圧変換回路IVOUT
1,レベルシフト回路LS,読出しラッチ回路OUTL
Tおよび出力バッファBUFOUTにより構成される。
電流電圧変換回路IVOUT1では、読出し線OA,/
OAあるいは読出し線OB,/OBにインピーダンスの
差として読出された情報をそれぞれ、OA′,/OA′
あるいは読出し線OB′,/OB′の電圧の差に変換す
る。レベルシフト回路LSでは、電流電圧変換回路IV
OUT1より読出された情報の電圧を後段の読出しラッ
チ回路OUTLT内のバイポーラトランジスタが飽和し
ないレベルにシフトして読出しラッチ回路OUTLTに
伝達する。
【0054】読出しラッチ回路OUTLTの詳細な実施
例を図26に示した。読出しラッチ回路OUTLT内の
読出し差動アンプAMPA,AMPBは、アレーAのメ
モリセルから読出し線OA,/OAを通じてL1,L2
に読出された情報とアレーBのメモリセルから読出し線
OB,/OBを通じてL3,L4に読出された情報のど
ちらを読出しデータDOとして読出すか切り替えるため
のものである。切り替え信号ΦAが高電位のときには、
アレーAのメモリセルから読出された情報が、切り替え
信号ΦBが高電位のときには、アレーBのメモリセルか
ら読出された情報が読出しデータDOとして出力され
る。読出しラッチ回路OUTLTでは、読出しラッチ信
号ΦLRを電圧VB2より高電位に遷移するとバイポー
ラトランジスタQ1Aがオフし、Q1Bがオンする。そ
のため、差動アンプAMPA,AMPBがオフし、AM
PCがオンする。その結果差動アンプAMPCとレベル
シフ卜回路LSCにより、読出し情報がラッチされる。
すなわち、本実施例によれば、読出し情報が確定した
後、読出しラッチ信号ΦLRを電圧VB2より高電位に
遷移することによって所望の期間だけ読出しデータDO
をラッチして出力しつづけることができる。
【0055】なお、図18に示した乗算機MTの実施例
では、アレーAのデータ線対がアレーBのデータ線対よ
り接地電極から遠い方のMOSトランジスタのゲートに
接続されている。このため、積をとるときにニューロン
出力値と結合重み値とは等価に扱われない。このことが
問題となるときには、図27の実施例を用いればよい。
図27では、データ線DAiはMOSトランジスタQ7
C3とQ7C6,DBiはQ7C5とQ7C4のゲート
に接続されている。両者共、接地電極に近い方のMOS
トランジスタと遠い方のMOSトランジスタに接続され
ているので、積をとるときに、ニューロン出力値と結合
重み値とが等価に扱われることになる。
【0056】以上説明したように図18に示した実施例
によれば1つのMOSトランジスタおよび1つの容量よ
り構成されるDRAMセルを用いて図10に示した実施
例を実現できる。DRAMセルは、占有面積を非常に小
さくできるのでチップ上に高集積に実現できるというメ
リットがある。
【0057】なお、以上の説明では触れなかったが、よ
く知られているように1トランジスタ,1キャパシタを
用いたDRAMセルでは、キャパシタの電流リークによ
る蓄積電荷の減少を補償するために一定時間内にリフレ
ッシュ動作が必要である。本発明においても、メモリモ
ード,演算モードにかかわらず必要に応じてリフレッシ
ュ動作を行うことは通常のDRAMと同様にして容易に
できる。
【0058】上記の実施例では、メモリセルとしてDR
AMセルを用いたがこれに限定されることはなく、他の
メモリセルを用いても同様の情報処理装置を実現でき
る。次にSRAMセルを用いた実施例を示す。図28
(a),(b)は、SRAMセルの実施例であり、両者
共DRAMセルと異なり再書込みあるいはリフレッシュ
動作が不要なためDRAMセルを用いた場合に比べて制
御が容易にできるという利点がある。図29は、図28
(a)あるいは(b)等のSRAMセルを用いて図10
の実施例を実現するための1実施例である。図29にお
いて、MCSはSRAMセル、LDは、デー夕線負荷で
ある。図30,図31に動作波形の例を示す。図30
は、メモリモードにおいてデータ線DA1,/DA1と
ワード線WA1に接続されたセルに対して読出し動作と
書込み動作を連続して行なう場合の例であり,図31は
演算モードにおいてワード線WA1上のメモリセルに記
憶されたニューロン出力値V11,V21,…,Vn1
とワード線WB1上のメモリセルに記憶された結合重み
値T111,T121,…,T1n1からニューロン出
力値V12を計算する場合の動作波形の例である。基本
的な動作は前記のDRAMセルの場合と同様であるので
説明は省略する。SRAMセルは、再書込み動作,リフ
レッシュ動作が不要なためDRAMセルに比べて制御が
簡単であるというメリットがある。さらに、再書込み動
作が不要なため、メモリモードにおける読出し,書込み
の速度および演算モードのサイクルを高速にできるとい
うメリットがある。
【0059】以上、DRAMセルとSRAMセルを用い
て図10の実施例を実現するための回路構成例を説明し
てきた。次にニューロン出力値、結合重み値を複数のメ
モリセルを用いて表現するためのを回路構成例につき説
明する。以下では、DRAMセルを用いた実施例を示す
が、SRAMセルを用いても同様に実現できることはも
ちろんである。
【0060】次に、DRAMセルを用いてニューロン出
力値,結合重み値を複数のメモリセルを用いて表現する
ための回路構成例について説明する。
【0061】図32において、アレーA内のデータ線対
DA11,/DA11,DA12,/DA12,…,D
A1P,/DA1Pは、図13において加算器a1に入
力されるアレーA内のデータ線対に対応している。ま
た、アレーA内のデータ線対DAn1,/DAn1,D
An2,/DAn2,…,DAnP,/DAnPは、図
13において加算器anに入力されるアレーA内のデー
タ線対に対応している。アレーBについても同様であ
る。入出力回路DIO10に示したように入力端子をD
O1,…,DOrのr本、出力端子をDI1,…,DI
rのr本設けて(ここでrはpまたはqのどちらか大き
い方の数)メモリモード時にニューロン出力値または結
合重み値を表すpビットあるいはqビットの情報を同時
に読出し、あるいは書込みできるようにしている。演算
モードにおいてアレーAでは、ワード線を立ち上げるこ
とによってデータ線に読出されたpビット毎の情報が加
算器ADDによって合成され、ニューロン出力値出力線
VO1,VO2,…,VOnにニューロン出力値が出力
される。また、アレーBでも、ワード線を立ち上げるこ
とによってデータ線に読出されたqビットの情報が加算
器ADDによって合成されて、結合重み値出力線TO
1,TO2,…,TOnに結合重み値が出力される。こ
れらはBLK2に入力され、積和演算が行なわれて非線
形関数回路D10に入力される。ニューロン出力値に相
当する非線形関数回路D10の出力は入出力回路DIO
10へ伝えられてラッチ信号ΦLによってラッチされ
る。つづいて、求めたニューロン出力値を書き込むべき
p個のセルを選択するようにアドレスを切り換えて、書
き込みY選択信号YWAiを立ち上げ、ラッチしておい
たニューロン出力値を選択したp個のセルヘ並列に書き
込む。このような動作を続けることにより図18 の実
施例と同様にしてニューロン出力値を更新していくこと
ができる。本実施例によれば、加算器ADDに入力され
た複数のメモリセルの情報を等価に加算することによっ
て図13の実施例を実現することができる。また、加算
器ADDに入力された複数のメモリセルの情報をビット
毎に重み付けして加算することによってニューロン出力
値,結合重み値を複数のビットによる2進数によって表
す図16の実施例も実現することができる。この他ニュ
ーロン出力値,結合重み値を他の方法で複数のビットで
表す場合にも容易に対処できるので目的に応じて多様な
情報処理を行なうことができる。本実施例では、DRA
Mセルを用いているので高集積化を図ることができる。
さらに、メモリモード、あるいは演算モードともに複数
のメモリセルの情報を並列に扱っているためニューロン
出力値、結合重み値を複数のビットで表しているにもか
かわらず、1ビットで表した場合と同様の高速な情報処
理を行なうことができる。ここでは、BLK1において
加算器により複数のメモリセルの信号を合成し、その結
果を積和回路であるBLK2に入力するようにした。し
かし、BLK1における加算を省略してニューロン出力
値あるいは、結合重み値をあらわす複数のメモリセルの
情報を並列に積和回路BLK2へ入力して積和演算を行
なうなど種々の変形も可能である。
【0062】以下では、まず、図32に示した実施例に
よりニューロン出力値、結合重み値を複数の等価的なビ
ットで表す図13の実施例を実現する方法についてのべ
る。図33は、図32のBLK1の1実施例である。こ
こでは、アレーAのデータ線DA11,…DA1Pに接
続されたBLK1を示した。アレーAの他のBLK1に
も同じ回路が使える。アレーBでもデータ線対,読出し
線対、あるいは書込み線対の本数をp本からq本に変更
しプリチャージ回路PRなどp個設けた回路をq個にす
れば、本実施例の回路を使うことができる。本実施例で
は、並列にp個のメモリセルへの書込み、あるいは読出
しができるように、p対の読出し線対OA1,/OA
1,…,OAp,/OApおよびp対の書込み線対IA
1,/IA1,……,IAp,/IApを設けた。読出
しセンスアンプRSAと書込みスイッチWSは、図に示
したように同一のBLK1内では順番に読出し線対OA
1,/OA1,…,OAp,/OApおよびp対の書込
み線対IA1,/IA1,…,IAp,/IApに接続
されている。すなわち1対の読出し線あるいは書込み線
についてみるとp対毎にデータ線対に接続されているこ
とになる。加算回路ADDは、負荷回路LD103およ
びp個の電圧電流変換器VIより構成されている。電圧
電流変換器VIでは、データ線DA11,DA12,
…,DA1pがMOS卜ランジスタのゲートに接続され
ており、上記MOSトランジスタは、演算回路起動信号
ΦNがゲートに入力されているMOSトランジスタと直
列に接続されて接地電極とニューロン出力値出力線VO
1とを結んでいる。ニューロン出力値出力線VO1は負
荷回路において抵抗を通じて電源VM01につながって
いる。したがって、演算回路起動信号ΦNにより起動さ
れた状態でデータ線電位の増幅が終了すると、ニューロ
ン出力値出力線V01の電位は、高電位つまりVccと
なったデータ線の本数に比例した電圧だけ低下する。し
たがって、本実施例によれば、ニューロン出力値出力線
V01の電位低下によってニューロン出力値を表すこと
ができる。なお、データ線の片側、/DA11,…,/
DA1pにも同様の回路を設けたのは、図18の乗算器
MTと同様の理由でデータ線容量のアンバランスを避け
るためである。上記の実施例によれば複数のメモリセル
によって表したニューロン出力値あるいは、結合重み値
をニューロン出力値出力線あるいは結合重み値出力線に
読みだすことができる。
【0063】図34はニューロン出力値と結合重み値の
積和を計算するためのブロックBLK2と非線形関数回
路D10の1実施例を示したものである。図34におい
てプロックBLK2は、負荷回路LD102と乗算器M
T10より構成されている。ニューロン出力値出力線V
O1,VO2,…,VOおよび結合重み値出力線TO
1,TO2,…,TOnはMT10内のMOSトランジ
スタM16c1,M16c2のゲー卜に接続されてお
り、上記MOSトランジスタは、演算回路起動信号ΦN
がゲートに入力されているMOSトランジスタM16c
3と直列に接続されて接地電極と積和出力線NOとを結
んでいる。一方、積和出力線NOは負荷回路LD102
において抵抗R02を通じて電源VM02につながって
いる。したがって、演算回路起動信号ΦNが高レベルに
なり、本回路が起動された状態では、対応するニューロ
ン出力値出力線VO1,VO2,…,VOと結合重み値
出力線TO1,TO2,…,TOnの電位の積の総和が
大きいほど積和出力線NOの電位が低下する。前記した
ようにニューロン出力値出力線VO1,VO2,…,V
Oと結合重み値出力線TO1,TO2,…,TOnの電
位は、ニューロン出力値と結合重み値の大きさにほぼ比
例して低下するため、ニューロン出力値と結合重み値の
積和が、大きいほど積和出力線NOの電位は高電位とな
る。積和出力線NOは非線形関数回路D10に入力され
る。非線形関数回路D10は、図35に示したような回
路をn個並列に接続して構成することができる。図35
の回路は、図22(a)の非線形関数回路Dと同じよう
に差動アンプとインバータを組合せたものである。ただ
し、積和出力線NOとニューロン出力値と結合重み値の
積和との極性が図18と図32,図33,図34の実施
例では異なるので、図35では差動アンプの抵抗Rxを
図22(a)の抵抗R72とは、逆の位置に付けてい
る。このため、図35では積和出力線NOが参照電圧V
Rx(x=1,2,…,p)を越えると出力NVxが高
電位に遷移する。このような非線形関数回路DSxをp
個設けておき図36のように参照電圧VRxを変えてお
けばp本の出力NVxのうち高電位になっているものの
本数で積和出力線NOの変化量を示すことができる。本
実施例によれば参照電圧VRxの値を変えることによっ
て非線形関数回路の特性を容易に変化させることができ
る。なお、図34に示したの回路を乗算器MT10とし
て用いる場合などにはMOSトランジスタの特性などに
より積和出力線NOの電位変化はニューロン出力値と結
合重み値の積和の大きさに対して一般的には線形にはな
らない。したがって、非線形関数回路の特性が所望の形
状になるように、乗算器あるいは、加算器の特性も考慮
してVRxの値を設定すればよい。場合によっては、製
造条件の変動などにより個々のチップの特性を精度よく
知ることが困難な場合もある。そのような場合には、実
際にアレーA,Bに既知のニューロン出力値と結合重み
値を書込み、演算モードで動作させて積和出力線NOの
電位を計測しその結果に応じてVRxの値をトリミング
して所望の特性に合わせればよい。
【0064】なお、ここでは図32における入出力回路
DIO10の詳細については省略するが、図23,図2
5,図26に示した読出し回路OUT,あるいは書き込
み回路WRと同様な回路を複数用いることにより複数の
メモリセルヘ並列に読出しあるいは書き込みを行なう回
路は容易に実現できる。また、クロック発生回路16の
構成についても省略するが、通常のメモリに用いる回路
と同様にして容易に実現できる。
【0065】次に、図32の実施例を用いて、ニューロ
ン出力値、結合重み値を複数のビットによる2進表示に
よって表す図16の実施例を実現するための方法につい
て説明する。図16に示したように複数のビットによる
2進表示で表された情報を加算するには複数のメモリセ
ルの情報をビッ卜毎に重み付けして加算する必要があ
る。このためには図33において電圧電流変換器VI
1,VI2,…,VIp内のデータ線に接続されたMO
Sトランジスタのゲート幅の比を1:2:4:…:2p
とすれば、ニューロン出力値出力線VO1の電位は、2
進表示によるニューロン出力値の大きさに比例して降下
する。したがって、同様の回路を他のニューロン出力
値、あるいは結合重み値に対して使用すれば図16に示
したような重み付けした加算を実現できる。乗算器につ
いては、図34に示したブロックBLK2をそのまま用
いることができる。非線形関数回路については、積和出
力線NOに出力された演算結果を再び2進表示にして複
数のメモリセルヘ書き込むためにADコンバータの機能
を持たせる必要がある。そのためには、図37に示した
ような実施例を用いることができる。図37の実施例
は、z個(以下z=2pとする。)の非線形関数回路D
S1,DS2,…,DSzとエンコーダとを組合せたも
のである。非線形関数回路DS1,DS2,…,DSz
には図35の回路を使用し参照電圧VRxを調整するこ
とにより図38に示したような特性を持たせておく。す
ると、図34実施例と同様に出力NA1,NA2,…,
NAzのうち高電位であるものの本数によりニューロン
出力値と結合重み値の積和の大きさを知ることができ
る。このままでは、zビットの等価表示であるためエン
コーダによりpビットの2進表示にしてp本の出力線N
V1,NV2,…,NVpにより書き込み回路へ伝達す
る必要がある。したがって、図37のエンコーダには図
39に示したような入出力関係を持たせればよい。この
ようなエンコーダは、容易に実現できる。p=3のとき
の構成例を図40に示す。本実施例は、p=3以外のと
きにも容易に拡張することができる。
【0066】以上では、階層型のニューラルネットワー
クを例にとって説明してきた。しかし本発明は、階層型
のニューラルネットワークに限定されるものではなく、
これまで述べてきた実施例を用いて他のタイプのネット
ワークにも適用できる。図41(a),(b)および、
図42(a),(b)の実施例は、図6(b)のアルゴ
リズムによってホップフィールド型のネットワークによ
る情報処理を実現するための実施例である。図41
(a)はニューロン出力値,結合重み値を表現するのに
1つづつのメモリセルを用いて非同期型のホップフィー
ルド型のネットワークを実現するための実施例である。
図2,図4を用いて説明したように階層型のニューラル
ネットワークでもホップフィールド型のネットワークで
も基本的な演算法は同じである。ただし、ホップフィー
ルド型のネットワークでは自身を含めてすべてのニュー
ロンからのニューロン出力値を用いて演算を行なう。そ
こで、図41(a)では、アレーA内の1本のワード線
にすべてのニューロン出力値を収納する。図に示したよ
うに、アレーBには、1つのニューロン出力値を計算す
るのに必要な結合重み値が同じワード線上に並ぶように
収納する。ニューロン出力値の更新は、次のようにして
行なうことができる。例えば、ニューロン出力値V1を
更新するには、アレーAのワード線WAとアレーBのj
=1のワード線を立ち上げる。この結果、新しいV1で
あるg(T11V1+T12V2+…+T1nVn)が
計算される。これをアレーAのワード線WA上のi=1
の位置にあるメモリセルに書き込めばよい。その他のニ
ューロン出力値の更新も同様であり、例えば、V4を更
新するには、アレーAのワード線WAとアレーBのj=
4のワード線を立ち上げる。この結果、新しいV4であ
るg(T41V1+T42V2+…+T4nVn)が計
算される。これをアレーAのワード線WA上のi=4の
位置にあるメモリセルに書き込めばよい。このようにし
て所望の順番でニューロン出力値Viを更新していくこ
とによって非同期型のホップフィールド型ネットワーク
の演算を行なうことができる。同期型のホップフィール
ド型ネットワークの演算を行なうには、図41(b)の
ようにアレーAにおいてワード線WA1上のメモルセル
を現在のニューロン出力値を記憶するために用いて、ワ
ード線WA2上のメモルセルを新しいニューロン出力値
を記憶するために用いれば容易に実現できる。まず、ア
レーAのワード線WA1とアレーBのj=1のワード線
を立ち上げる。この結果、新しいV1であるg(T11
V1+T12V2+…+T1nVn)が計算される。こ
れをアレーAのワード線WA2上のi=1の位置にある
メモリセルに書き込めばよい。つづいて、ニューロン出
力値V2,V3,…,Vnを更新してアレーAのワード線
WA2上のメモリセルに書き込む。すべてのニューロン
出力値の更新が終わったところで今度は、アレーAのワ
ード線WA1とWA2の役割を変えて、ニューロン出力
値の計算時には、ワード線WA2を立ち上げ、二ューロ
ン出力値を収納するときにはワード線WA1を立ち上げ
るようにしてニューロン出力値の更新を続ける。以下、
同様にしてアレーAのワード線WA1とWA2の役割を
変えながら処理を進める。このように図41(b)の実
施例によれば、同期型のホップフィールド型ネットワー
クの演算を行なうことができる。
【0067】同様にしてニューロン出力値, 結合重み値
を表現するのに複数のメモリセルを用いてホップフィー
ルド型のネットワークを実現することもできる。図42
(a)はニューロン出力値, 結合重み値を表現するのに
それぞれp個,q個づつのメモリセルを等価に用いて非
同期型のホップフィールド型のネットワークを実現する
ための実施例である。図41(a)と同様に、アレーA
内の1本のワード線にすべてのニューロン出力値を収納
する。ただし、p個のセルで1つのニューロン出力値を
表している。アレーBには、1つのニューロン出力値を
計算するのに必要な結合重み値がq個のセル毎に同じワ
ード線上に並ぶように収納する。ニューロン出力値の更
新は、図41(a)の実施例と同様にすればよい。ただ
し、ニューロン出力値を表現するのにそれぞれp個づつ
のメモリセルを用いているので演算結果をp個のセルに
並列に書き込めるように、非線形関数回路Dの出力線を
p本設けてある。同期型ホップフィールドネットワーク
についても図41(b)と同様にアレーAの2本のワー
ド線を用いれば図42(b)のようにして容易に実現で
きる。同様にして図16のようにニューロン出力値, 結
合重み値を表現するのにそれぞれp個,q個づつのメモ
リセルによる2進表現を用いて同期型、非同期型のホッ
プフィールド型のネットワークを実現することもできる
ことはもちろんである。
【0068】図10と図41(a),(b)ならびに図
13と図42(a),(b)とは基本的な構成は同一で
ある。したがって、図18から図40までの実施例を用
いれば、図41(a),(b)および、図42(a),
(b)の実施例による情報処理を容易に実現することが
できる。なお、ホップフィールド型のネットワークにお
いては、ニューロン出力値の更新を続ける過程におい
て、エネルギーを最小とする状態でなく極小とする状
態、所謂ローカルミニマムに落ちこんでニューロン出力
値が変化しなくなってしまうことがありうる。それを避
けるにはよく知られている擬似焼き鈍し法を用いること
ができる。ニューラルネットワーク情報処理(産業図
書、麻生英樹著) 122ページに述べられているよう
に、擬似焼き鈍し法を実現するために非線形関数の形を
徐々に変えるという方法が、知られている。本発明によ
れば特性の異なる非線形関数回路Dを複数設けて切り替
えたり、あるいは、外部より非線形関数回路Dの特性を
コントロールするなどによって容易に上記の方法が実現
できる。
【0069】これまでは、主に階層型、あるいはホップ
フィールド型ネットワークにおいてニューロン出力値,
結合重み値を正の数として扱う例を述べてきたが、応用
対象によってはこれらの両方あるいは片方が正の値も負
の値も取り得るとした方が便利な場合もある。そのよう
な場合にも本発明は容易に適用できる。図43はニュー
ロン出力値、結合重み値ともに正, 負の値を取ることが
できるように構成した本発明の1実施例である。図43
においてニューロン出力値はメモリセルアレーA,結合
重み値はメモリセルアレーBに蓄えられている。それぞ
れの値は絶対値の大きさを表すpあるいはqビットと符
号を表す1ビットにより表されている。符号を表す(以
下、符号ビット)は、“1”で正“0”で負を表す。こ
れまで述べてきたのと同様の方法で読出されたニューロ
ン出力値と結合重み値のうち絶対値の大きさを表すpあ
るいはqビットの部分は加算器、a1,…,anおよび
b1,…,bnに入力され、アナログ値となって乗算器
m1,…,mnに入力される。なお、ニューロン出力
値、結合重み値を2進表現で表すときには、上記の加算
器a1,…,anおよびb1,…,bnに入力される各
々p,qビットのデータを図16に示したのと同じよう
に重み付けして入力すればよい。一方、符号ビットは、
図43に示したように排他的OR(エクスクルーシブオ
ア)回路EOR1,…,EORnに入力される。符号ビ
ットが一致しない場合、すなわち乗算の結果が負のとき
には上記排他的OR回路の出力は高レベルとなり、一致
した場合すなわち、乗算の結果が正のときには上記排他
的OR回路の出力は低レベルとなる。スイッチSW1,
…,SWnは、排他的OR回路の出力が低レベルの時に
は乗算器の出力を加算器c1,…,cnに、高レベルの
ときには乗算器の出力を加算器c1′,…,cn′に伝
えるように動作する。この結果、積和出力線NOには、
乗算の結果が正のものの総計が、積和出力線NO′に
は、乗算の結果が負のものの総計が出力される。非線形
回路Dでは積和出力線NOと積和出力線NO′との信号
の差をpビットのデジタル値に変換してバスABSに、
積和出力線NOと積和出力線NO′との信号の大小で符
号ビットを決定してバスSIGNへ出力する。なお、ニ
ューロン出力値の表現にあわせて図14、あるいは図1
7に示したような非線形特性を持たせることは、これま
で述べたのと同様な方法で容易に実現できる。本実施例
によれば、ニューロン出力値、結合重み値ともに正, 負
の値をとることができる。したがって、情報処理の適用
範囲が広がるという利点がある。ここでは、ニューロン
出力値, 結合重み値ともに正, 負の値をとるようにした
が、どちらか片方のみを正の値に限るなどの変形は容易
に実現できる。
【0070】これまでは、演算回路としてニューロン出
力値を計算するのに必要な積和機能と非線形関数回路を
実現する実施例を説明してきた。しかし、演算回路にさ
らに他の演算を行なう回路を追加することもできる。た
とえば、本発明による情報処理装置は階層型ネットワー
クを用いた音声認識, 文字認識など入力されたパターン
をいくつかの組に分けるような所謂クラス分け問題に適
用することができる。このような場合には前記したよう
に演算回路内に比較器があると便利である。クラス分け
問題では、入力されたパターンが、明らかにあるクラス
に分類される場合には、出力としてクラスに対応する期
待値を得ることができる。しかし、入力されたパターン
が、複数のいずれかのクラスに分類されるか微妙な場合
には、複数のクラスの期待値の中間的なものとなること
がある。例えば、音声認識において入力された音声が
‘K’のときには、符号化して入力層に与えた音声波形
に対して出力層に1111というニューロン出力値 (期
待値) が得られるように、また、入力が‘C’のときに
は、0000という出力値 (期待値) を出すように結合
重み値を設定した場合に、‘K’、‘C’の中間的な音
声波形が与えられると出力層のニューロン出力値は、0
001とか1110など中間的な値を出すことがある。
このような場合には出力層のニューロン出力値と‘K’
に対する期待値1111あるいは‘C’に対する期待値
0000との距離が入力音声の‘K’あるいは‘C’に
対する近さを与える尺度と解釈することができる。した
がって、演算回路に出力層のニューロン出力値とクラス
の期待値を比較する回路を設けて出力結果と期待値の距
離を求める機能がある便利である。
【0071】図44は1つの半導体チップにニューロン
出力値と期待値の比較を行なう演算回路12aと、ニュ
ーロン出力値を計算するための演算回路12bとを集積
した1実施例である。図44において、期待値はメモリ
回路TGに、ニューロン出力値はメモリ回路Aに結合重
み値はメモリ回路Bに記憶されている。ニューロン出力
値を計算するには、これまで述べてきたのと同様な方法
でメモリ回路Aからニューロン出力値をメモリ回路Bか
ら結合重み値を読出して演算回路12bによってニュー
ロン出力値を計算し、その結果をメモリ回路Aに書き込
めば良い。比較を行うには、メモリ回路Aからニューロ
ン出力値をメモリ回路TGから期待値を読出して演算回
路12bにより並列に距離を求めてその結果をメモリ回
路TGに書き込むかあるいは、入出力装置を通じて出力
する。本実施例ではメモリ回路TG,Aならびに演算回
路12aともに同一チップ上にあるため、バス1,2の
本数を容易に増やすことができ、多数のビットを並列に
処理できる。このため高速に距離の計算ができるという
利点がある。なお、このような構成においては、演算モ
ードをニューロン出力値を計算するニューロン出力値計
算モードとニューロン出力値と期待値を比較して距離を
求める比較モードとに分けると便利である。演算モード
の切り換えは、例えば2つの演算回路制御信号/NE1
と/NE2とにより容易に行なうことができる。すなわ
ち、/NE1,/NE2ともに高レベルのときにはメモ
リモード,/NE1が低レベル、/NE2が高レベルで
ニューロン出力値計算モード,/NE1が高レベル,/
NE2が低レベルで比較モードなどとすればよい。な
お、図44では、メモリ回路を3つに、演算回路を2つ
に分けたが、これらはチップ上に混在して構成しても良
いことはもちろんである。以上述べたように本実施例に
よればニューロン出力値と期待値との距離を高速に求め
ることができる。このため、階層型ネットワークを用い
たパターン認識などのようにニューロン出力値と各期待
値とを比較してその距離を求める必要がある場合に情報
処理速度を上げることができる。
【0072】図45は、図44の演算回路12aの1実
施例であり、出力層のニューロン出力値と期待値を比較
してそのハミング距離の大きさを計算する回路である。
以下では図44のメモリ回路TG,Aは図18,図29
あるいは図32のようにデータ線対にメモリセルの情報
が読出される形式のものであり、それぞれアレーTG,
アレーAを有しているとする。図45は、比較器CMP
と比較結果変換回路COMPOUTより構成されてい
る。比較器CMPは並列に設けた比較回路CMPUと負
荷抵抗RCMPより構成され比較結果変換回路COMP
OUTは差動アンプAMP211,AMP212,…,
AMP21Zより構成されている。比較器CMPには、
アレーTGのデータ線DTG1,/DTG1,…,DT
Gr,/DTGrおよびアレーAのデータ線DA1,/
DA1,…,DAr,/DArが入力されている。ここ
でrは1本のワード線上のメモリセルの数で、ニューロ
ン出力値を1ビットで表すときにはn,pビットで表す
ときにはnとpの積に等しい。本実施例によれば、アレ
ーTGのデータ線DTG1,/DTG1,…,DTG
r,/DTGr上に読出した情報とアレーAのデータ線
DA1,/DA1,…,DAr,/DAr上に読出した
情報とのハミング距離を計算することができる。本実施
例の動作は、以下の通りである。まず、あらかじめクリ
ア信号ΦCを立ち上げMOSトランジスタQ216をオ
ンさせて、MOSトランジスタQ215のゲート電圧を
立ち下げておく。クリア信号ΦCを立ち下げてデータ線
に信号が読出されデータ線電位がVccあるいは0Vに
なった後、比較器起動信号ΦCMPにより比較器を起動
する。すると比較回路に入力されたデータ線(DTG
1,DA1),(DTG2,DA2),…,(DTG
r,DAr)のそれぞれの組で排他的オア(EXCLU
SIVE−OR)の論理がとられる。その結果、アレー
TG側のデータ線とA側のデータ線とで情報が一致して
いる場合にはMOSトランジスタQ215のゲートが低
電位のままであるが、一致していない場合には高電位に
遷移する。このため、アレーTG側のデータ線とA側の
データ線とで情報が一致しない比較器CMPUではMO
SトランジスタQ215がオンする。この結果、データ
線(DTG1,DA1),(DTG2,DA2),…,
(DTGr,DAr)のそれぞれの組で不一致の数が多
いほど電源VCMPから負荷抵抗RCMPを通じて接地
電極へ向けて電流が流れる。そのため、比較線COの電
位は一致しないものが多いほど低下する。比較線CO
は、比較結果変換回路COMPOUTに設けられた差動
アンプAMP211,AMP212,…,AMP21Z
に接続されている。これらの差動アンプの参照電圧VR
C1,VRC2,VRCZを適当な値に設定しておけ
ば、比較線COの電位低下が大きいほど比較結果出力線
DCO1,DCO2,…,DCOZのうち高電位になる
本数が増加する。すなわち、比較結果変換回路COMP
OUTは1種のAD変換器として動作する。このように
図45の実施例によればアレーTGの複数のデータ線に
読出された情報とアレーAの複数のデータ線に読出され
た情報を比較してそのハミング距離の大きさを求めるこ
とができる。したがって、アレーTGとアレーAで1本
ずつワード線を選択すれば、選択されたワード線上のメ
モリセルに記憶された情報同土を比較することができ
る。このため各期待値をそれぞれアレーTGのワード線
上のメモリセルに記憶しておけば、アレーAの1本のワ
ード線上のメモリセルに記憶されたニューロン出力値と
比較して、そのニューロン出力値がどの期待値にどのく
らい近いのか知ることができる。したがって、得られた
ニューロン出力値がクラスに対応する期待値と一致しな
いような場合でも高速にどのクラスにどのくらい近いの
か知ることができる。
【0073】なお、図45の実施例において比較結果出
力線に出力された結果は、比較の度に入出力回路を通じ
てチップ外へ出力してもよいし、メモリ回路TGの容量
を期待値を記憶するのに必要な量よりも大きくとってお
き、そこに書き込んでおいて、まとめて出力してもよ
い。
【0074】最後にレジスタを用いて本発明の装置をさ
らに高速化する実施例について述べる。これまで述べて
きたように本発明では、ニューロン出力値を計算するの
に、必要なデータをメモリ回路から続出し、演算回路で
ニューロン出力値を求め、その結果を再びメモリ回路へ
書き込むという動作を続ける。すなわち、1回の演算モ
ード (ニューロン出力値演算モード) サイクルは読出し
動作と書込み動作よりなり、書込み動作中には演算回路
が休止していることになる。したがって、演算回路が休
止している時間を短くすれば、より一層の演算モードの
高速化を図ることができる。図46は上記の観点に基づ
いて演算モードの高速化を図った1実施例である。図4
6は図9の実施例にレジスタ14とスイッチSW1,
…,SWrとを付加したものである。図46の実施例に
よれば図6のアルゴリズムを用いて高速にニューロ出力
値を計算することが出来る。以下では、階層型のネット
ワークを例にとって説明を行うが、ホップフィールド型
ネットワークにおいても同様の効果がある。図46の実
施例では第s層の第1ニューロンの出力値を計算するに
のに、メモリセルアレーAのワード線を1本立ち上げて
第s−1層のニューロン出力値を読出し、スイッチSW
1,…, SWrを閉じて第s−1層のニューロン出力
値をレジスタ14に書き込み、スイッチSW1,…,S
Wrを開ける。次に、メモリセルアレーBのワード線を
1本立ち上げて第s−1層のニューロンと第s層の第1
ニューロンの間の結合重み値を読出すとともにレジスタ
14より、第s−1層のニューロン出力値を読出して演
算回路12により第s層の第1ニューロンの出力値を計
算する。その結果をメモリセルアレーAへ書き込む。こ
のとき同時にセルアレーBのワード線を1本立ち上げて
第s−1層のニューロンと第s層の第2ニューロンの間
の結合重み値を読出すとともにレジスタ14より、第s
−1層のニューロン出力値を読出して演算回路12によ
り第s層の第2ニューロンの出力値を計算する。以下同
様にして第s層のニューロンの出力値を計算していく。
次に第s+1層のニューロンの出力値を計算するにはメ
モリセルアレーAのワード線を1本立ち上げて先に求め
た第s層のニューロン出力値を読出し、スイッチSW
1,…,SWrを閉じて第s層のニューロン出力値をレ
ジスタ14に書き込み、以下同様にして計算を進める。
以上のように本実施例によれば、レジスタ14を設けた
ことにより書込みと読出しとを同時に行う事ができるた
め、高速の動作を実現する。
【0075】これまでは、本発明を用いておもにニュー
ロン出力値を計算する方法について説明し、必要な結合
重み値は、すでに与えられていると仮定してきた。必要
な結合重み値は、課題によっては、初めから容易に与え
られることもあるが、所謂学習によって求める必要のあ
ることもある。たとえば、バックプロパゲーションとよ
ばれる階層型のネットワークのための学習では、あらか
じめ入力層のニューロン出力値 (テストパターン) をい
くつか用意しておき、そのテストパターンに対して所望
のニューロン出力値が出力層に得られるような結合重み
値を求めることができる。また、ニューラルネットワー
ク情報処理(産業図書、麻生英樹著) 第2章に記載され
ているようにホップフィールド型のネットワークでもニ
ューロン出力値の平衡状態が所望の状態になるように結
合重み値を設定する学習アルゴリズムが知られている。
そのような学習を本発明に応用するには、次のように3
つの方法がある。第1の方法は、外部の計算機を用いて
学習を行い、得られた結合重み値を本発明による情報処
理装置に書込む方法である。この方法では、学習をソフ
トウエアで行うこともできるため学習アルゴリズムの変
更が容易にできるという利点があるが、学習速度を上げ
ることが困難である。第2の方法は本発明による装置の
演算回路に学習のための演算機能を設けておき、オンチ
ップで学習を行う方法である。この方法では、高速に学
習を行うことができるが学習に必要な回路をすべて同一
チップ上に集積するのは困難な場合がある。第3の方法
は第1の方法と第2の方法の中間的なもので、学習に必
要な演算の1部を本発明の装置で行い、外部の計算機で
学習に必要な演算の残りの部分を行う方法である。この
方法は、第1の方法に比べて学習速度を上げることがで
き、本発明の装置の演算回路を単純に構成できるという
利点がある。以下では、この第3の方法について具体的
に述べる。なお、学習法としては階層型ネットワークに
おけるバックプロパゲーション法を例に採る。バックプ
ロバゲーション法 (以下、BP法と記す。) では、以下
の式にしたがって結合重み値の更新を行う。
【0076】 TSij=TSij+εdjSViS−1 djm=(tj−Vjm)g′(Ujm) djS=g′(UjS)Σi(TS+1ijdiS+1) …(3) (s=m−1,…,2) ここで、εは小さな正の数、tjは最終層のニューロン
出力値Vjmの目標値、g′は非線形関数gの導関数、
UjSは第s層第jニューロンにおいて非線形関数gを
通す前の量で次式で定義される。
【0077】 UjS=Σi(TS−1jiViS−1+Θjs) …(4) 結合重み値の更新は、学習用の入力データ毎に上記の式
(1)から(4)により更新量を求めて更新してもよい
し、学習用の入力データのすべてについて更新量を総計
してそれを用いて更新を行ってもよい。また、(1)式
に慣性項といわれる次項を足して更新を行ってもよい。
【0078】 μΔTSij′ …(5) ここで、μは小さな正の定数、ΔTSij′は前回の更
新時の修正量である。学習は、最終層のニューロン出力
値とその目標値との誤差が十分小さくなるまで続ける。
【0079】上記の学習は以下のようにして図44に示
した実施例と外部の計算機とにより実行することができ
る。以下では、入力データすべての更新量の総計により
更新する場合にについて説明するが、入力データ毎に結
合重みを更新する場合についても同様である。なお、以
下では、3層のネットワークについて説明を行うが3層
以上の場合についても同様である。
【0080】まず、すべての学習用の入力データとその
目標値とをそれぞれメモリ回路AならびにTGヘ書込
む。次に絶対値の小さな乱数を結合重み値の初期値とし
てメモリ回路Bへ書込む。さらに、第1の入力データを
第1層のニューロン出力値とみなして演算回路12bへ
読出し、同じに第1層, 第2層間の結合重み値をメモリ
回路Bより演算回路12bへ読出す。前記した方法によ
り並列に乗算を行い第2層のニューロン出力値を計算し
てメモリ回路Aへ書き込む。続けて第3層のニューロン
出力値を計算しメモリ回路Aへ書き込む。上記の計算を
学習用入力データ全てについて行なって、各入力データ
に対する各層のニューロン出力値, 各入力データに対す
る期待値, 結合重み値をチップ外のメモリへ読出す。次
に外部の計算機で結合重み値の更新量を計算し、更新し
た結合重み値を本発明による装置のメモリ回路Bへ書き
込む。なお、(2) , (3) 式におけるg′(UjS) に
ついても本発明による装置内でニューロン出力値VjS
を計算する際に非線形関数回路Dに人力するUjSより
計算してもよいしあるいは外部計算機でVjSより逆に g′(UjS)=g′(g−1(VjS)) …(6) として計算することもできる。また、(5)式の慣性工
を加えるには、更新の度に結合重み値の修正量をチップ
外のメモリに蓄えておいて新しく求めた修正量に(5)
式に従って加算すればよい。
【0081】上記の更新を繰返し行なって学習を進める
ことができる。学習の進み具合を知るには、各入力デー
タに対する最終層のニューロン出力値とその期待値との
距離を目安にすることができる。この距離は図45の実
施例を用いれば高速に計算することができる。このた
め、学習時にその進行具合を確かめることが容易にでき
る。
【0082】以上説明したように、本発明によれば、学
習用の入力データに対するニューロン出力値の計算を本
発明の装置内で高速に行なうことができる。また、本発
明ではメモリ回路TG,A,Bにメモリアレーよりなる
メモリ装置を用いているので、すべての入力データ, 期
待値, 前層のニューロン出力値などを容易に収納できま
た、ワード線を立ち上げることにより並列に多数のビッ
トを読みだすことができる。このため、外部メモリへの
情報の転送をまとめて高速に行なうことができる。この
ため、学習を高速に進めることができる。
【0083】本発明ではメモリ回路の容量を十分に大き
くしておけば、ニューロン数を用途に応じて変えること
も容易にできる。この場合、ニューロン数を大きく変え
ると非線形関数回路のダイナミックレンジを変える必要
が生じることがある。この場合には特性の異なる非線形
関数回路を複数設けて切り替えて使ったり、あるいは、
非線形関数回路内のアンプの参照電圧を切り替えて使う
こともできる。階層型ネットワークで層ごとのニューロ
ン数が異なる場合にも層ごとに非線形関数回路のダイナ
ミックレシジを変える必要が生じることがある。この場
合にも同様の方法で対処できる。
【0084】なお、これまでは、主にいわゆる1トラン
ジスタ1キャパシタのDRAMセルや図28(a),
(b)に示したようなSRAMセルを用いた実施例を示
したが、その他のメモリセルを本発明に用いることもも
ちろんできる。たとえば、結合重み値を記憶する部分な
どは情報処理時には頻繁に書き替える必要がないので不
揮発性のメモリセルを、ニューロン出力値を記憶する部
分にはDRAMセルやSRAMセルを用いるなどメモリ
の内容によりセルの種類を変えることもできる。
【0085】メモリ回路を高集積化すると、微小な配線
を用いるためにときには1部のメモリセルが動作しない
ことがある。ニューラルネットワークは、結合重み値を
多少変えても機能への影響が少ないという特長を持つ
が、ニューロン出力値を蓄えるメモリセルが動作しない
ような場合には情報処理に支障を来すことがある。この
ような問題を避けるには、通常の高集積半導体メモリで
使われているような冗長ワード線あるいは、データ線を
設けておいて欠陥のあるセルを使わないようにすること
もできる。
【0086】また、図22(a),図25,図26,図
35などでは、バイポーラトランジスタを用いたがCM
OSでも実現できる。さらに、バイポーラトランジス
タ,MOSトランジスタに限らず本発明を他のデバイス
で実現してもよいことはもちろんである。
【0087】これまで、主に階層型とホップフィールド
型のネットワークを例にとり説明してきたが、本発明は
これらに限定されることなく様々な型のネットワークに
よるニューラルネットワーク情報処理に適用できる。た
とえば、ボルツマンマシンのようなニューロン出力値の
更新が確率的に行なわれるようなネットワークも実現で
きる。ニューラルネットワーク情報処理(産業図書、麻
生英樹著)第27ページに説明されているように、ボル
ツマンマシンは、ネットワークの形状はホップフィール
ド型のネットワークと同様であるが、ニューロン出力値
(0または1)が、ニューロンに入力されるニューロン出
力値と結合重み値の他の積和によって一意に決まらず、
確率的に決まるという特長を持っている。ニューロン出
力値が1となる確率Pは、 P=1/(1+exp(−I/T)) と表せられる。ここで、Iはニューロンに入力されるニ
ューロン出力値と結合重み値の積和で、Tは温度とよば
れるパラメータである。本発明により上記のボルツマン
マシンは容易に実現できる。例えば、図35に示した非
線形回路Dの参照電圧VRxを定常値でなく積和出力線
NOの変動範囲で時間的に変化させればよい。このよう
にするとニューロン出力値を確率的に決めることができ
る。変化の速度を変えることにより温度Tを変化するの
と同様の効果を得ることができる。
【0088】さらに、図12と図41(a),(b)と
を較べると明らかなようにメモリ回路の容量が十分あれ
ばニューロン出力値,結合重み値を記憶するメモリセル
のアドレスを変更するだけで様々な型のネットワークを
同一の装置で実現できる。したがって、本発明は、高い
汎用性を持つ。
【0089】以上では、ニューラルネットワーク情報処
理への応用について説明したが、本発明はそれに限定さ
れることはなく、同様の演算機能を持つ多数の演算要素
をネットワーク状に接続して情報処理を行なうような装
置ならば高い集積度で実現することができることはもち
ろんである。
【0090】これまで示した実施例においては、演算回
路としてアナログ演算を行なうものを主に示してきた。
アナログ演算回路は、高速で、回路規模も小さいという
利点をもつ。しかし、本発明は、これに限定されること
なく、発明の主旨を変えることなくデジタル演算回路を
用いることもできる。その場合にはデジタル演算回路の
ため、高精度の計算を行なうことができる。
【0091】
【発明の効果】以上述べてきたように、本発明によれば
メモリ回路と演算回路を組合せ、演算回路により並列演
算を行なうことにより、比較的単純な演算を行なう演算
器が多数ネッ卜ワーク状に接続されたニューラルネット
ワークなどの並列分散処理装置と同様な情報処理を行な
う装置を速度の犠牲を大きくすることなく、高集積に実
現することができる。
【図面の簡単な説明】
【図1】本発明による情報処理装置を半導体チップ上に
実現する場合の構成を示した1実施例。
【図2】(a),(b)は、階層型ニューラルネットワ
ークの原理を示した図。
【図3】(a),(b)は、非線形関数回路Dの特性の
例を示した図。
【図4】(a),(b)は、ホップフィールド型ニュー
ラルネットワークの原理を示した図。
【図5】複数のチップを用いた従来のニューラルネット
ワーク情報処理装置の例。
【図6】(a),(b)は、それぞれ階層型ニューラル
ネットワークとホップフィールド型ニューラルネットワ
ークについて演算を並列に行なう方法の1実施例。
【図7】(a),(b)は、それぞれ階層型ニューラル
ネッ卜ワークとホップフィールド型ニューラルネットワ
ークについて演算を並列に行なう方法の第2の実施例。
【図8】1本のワード線を選択することにより多数の情
報をデータ線上に読み出すことのできるメモリアレーを
用いて本発明による情報処理装置を実現する場合の構成
を示した1実施例。
【図9】1本のワード線を選択することにより多数の情
報をデータ線上に読み出すことのできるメモリアレーを
2つ用いて本発明による情報処理装置を実現する場合の
構成を示した1実施例。
【図10】図9の実施例を用いて階層型ニューラルネッ
トワークを実現する場合のニューロン出力値, 結合重み
値とメモリセルとの対応関係を示した1実施例でニュー
ロン出力値, 結合重み値を1つづつのメモリセルで表現
した実施例。
【図11】(a)は図10の実施例においてメモリセル
に2値のものを用いる場合に好適な非線形関数回路Dの
特性を示した1実施例、(b)は図10の実施例におい
てメモリセルに4値のものを用いる場合に好適な非線形
関数回路Dの特性を示した1実施例。
【図12】図10の実施例において演算モードでのワー
ド線およびメモリセルの選択の方法を示した1実施例。
【図13】図9の実施例を用いて階層型ニューラルネッ
トワークを実現する場合のニューロン出力値, 結合重み
値とメモリセルとの対応関係を示した第2の実施例であ
りニューロン出力値, 結合重み値を複数のメモリセルで
表現した実施例。
【図14】図13の実施例においてニューロン出力値,
結合重み値を複数のメモリセルで等価的に表現する場合
に好適な非線形関数回路Dの特性を示した1実施例。
【図15】非線形関数回路Dにシグモイド状の特性を持
たせるための図14のXth1,…,Xthpの設定法
を示した1実施例。
【図16】図9の実施例を用いて階層型ニューラルネッ
トワークを実現する場合のニューロン出力値, 結合重み
値とメモリセルとの対応関係を示した第3の実施例であ
りニューロン出力値、結合重み値を複数のメモリセルで
2進表示により表現した実施例。
【図17】図16の実施例においてニューロン出力値,
結合重み値を複数のメモリセルで2進表示により表現し
た場合に好適な非線形関数回路Dの特性を示した1実施
例。
【図18】図10の実施例においてメモリセルにDRA
Mセルを用いた場合の1実施例。
【図19】動作モードと外部信号との関係を示した1実
施例。
【図20】図18の実施例のメモリモードにおける動作
波形の1実施例。
【図21】図18の実施例の演算モードにおける動作波
形の1実施例。
【図22】(a)は図18などの実施例に好適な非線形
関数回路Dの1実施例、(b)は図22(a)の非線形
関数回路Dの特性を示した1実施例。
【図23】図18などの実施例に好適な入出力回路IO
の1実施例。
【図24】図22(a)の非線形関数回路と図23の書
き込み回路を用いた場合の積和出力線NOと書込み線L
Aの電位関係を示した1実施例。
【図25】図18などの実施例に好適な読出し回路OU
Tの1実施例。
【図26】図25の読出し回路OUTの実施例に好適な
読出しラッチ回路OUTLTの1実施例。
【図27】図18内の乗算回路MTの第2の実施例。
【図28】(a),(b)はSRAMセルの例。
【図29】図10の実施例においてメモリセルに図28
(a),(b)などのSRAMセルを用いた場合の1実
施例。
【図30】図29の実施例のメモリモードにおける動作
波形の1実施例。
【図31】図29の実施例の演算モードにおける動作波
形の1実施例。
【図32】図13の実施例あるいは図16の実施例にお
いてメモリセルにDRAMセルを用いた場合の1実施
例。
【図33】図32の実施例におけるブロックBLK1構
成の1実施例。
【図34】図32の実施例におけるブロックBLK2と
非線形関数回路D10の構成の1実施例。
【図35】図34の実施例における非線形関数回路D1
0を構成する個々の非線形関数回路DSx(x=1,
2,…,p)の構成の1実施例。
【図36】図34の実施例における非線形関数回路D1
0を構成する個々の非線形関数回路DSx(x=1,
2,…,p)の特性の1実施例。
【図37】図32の実施例においてニューロン出力値,
結合重み値を複数のメモリセルで2進表示により表現し
た場合に好適な非線形関数回路D10の構成を示す1実
施例。
【図38】図32の実施例における非線形関数回路DS
x(x=1,2,…,z)の特性の1実施例。
【図39】図40の実施例におけるエンコーダの特性の
1実施例。
【図40】図37の実施例におけるエンコーダの構成の
1実施例。
【図41】(a)は図9の実施例を用いて非同期的なホ
ップフィールド型ニューラルネットワークを実現する場
合のニューロン出力値, 結合重み値とメモリセルとの対
応関係を示した1実施例で、ニューロン出力値, 結合重
み値を1つづつのメモリセルで表現した実施例、(b)
は図9の実施例を用いて同期的なホップフィールド型ニ
ューラルネットワークを実現する場合のニューロン出力
値, 結合重み値とメモリセルとの対応関係を示した1実
施例で、ニューロン出力値, 結合重み値を1つづつのメ
モリセルで表現した実施例。
【図42】(a)は図9の実施例を用いて非同期的なホ
ップフィールド型ニューラルネットワークを実現する場
合のニューロン出力値, 結合重み値とメモリセルとの対
応関係を示した1実施例で、ニューロン出力値, 結合重
み値を複数のメモリセルで表現した実施例、(b)は図
9の実施例を用いて同期的なホップフィールド型ニュー
ラルネットワークを実現する場合のニューロン出力値,
結合重み値とメモリセルとの対応関係を示した1実施例
で、ニューロン出力値, 結合重み値を複数のメモリセル
で表現した実施例。
【図43】符号ビット用いてニューロン出力値,結合重
み値に正負両方の値を取ることができるようにする場合
の1実施例。
【図44】ニューロン出力値と期待値の比較を行なう機
能を本発明による装置に持たせた場合の1実施例。
【図45】メモリセルアレーTGとメモリセルアレーA
の複数のデータ線対に読出された情報を比較してその一
致の程度を計算する比較回路の1実施例。
【図46】レジスタを設けてニューロン出力値の更新の
高速化を図った1実施例。
【符号の説明】
A,B,TG…メモリ回路、D…非線形関数回路、1
2,12a,12b…演算回路、OUT…読みだし回
路、m1,m2…乗算器、a1,a2,…加算器、b
1,b2…加算器、c1,c2…加算器、c1′,c
2′…加算器、SW1,SW2…スイッチ、WR…書き
込み回路、NE…演算回路制御信号、Vis,Vi…ニ
ューロン出力値、Tij,Tilj…結合重み値、PR
…プリチャージ回路、SA…センスアンプ、RSA…読
み出しセンスアンプ、WS…書き込みスイッチ、MT…
乗算器、LAT…ラッチ回路、OUTLT…読み出しラ
ッチ回路、NO…積和出力線、NV…非線形関数回路出
力線、WAi,WBi,j…ワード線、DAi,/DA
i…データ線、DBi,/DBi…データ線、DTG
i,/DTGi…データ線、IA,IA…書込み線、I
B,IB…書込み線、OA,OA…読み出し線、OB,
OB…読み出し線、DI…書込みデータ、DO…読み出
しデータ、ΦL…ラッチ信号。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 川尻 良樹 東京都国分寺市東恋ケ窪1丁目280番地株 式会社日立製作所中央研究所内

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】演算回路とメモリセルアレーが同一チップ
    に集積された半導体集積回路であって、 上記メモリセルアレーは複数のデータ線と、それらと交
    わるように配置された複数のワード線と、上記複数のデ
    ータ線と上記複数のワード線の所望の交差部に配置され
    た複数のメモリセルを有し、 上記演算回路は演算器を有し、 上記メモリセルアレーと上記演算回路との間において、
    上記メモリセルアレーと上記演算回路とを接続する信号
    線と、上記メモリセルアレーから上記チップ外部へ接続
    される信号線とが交差する方向に配置されることを特徴
    とする半導体集積回路。
  2. 【請求項2】演算回路と、第1及び第2のメモリセルア
    レーが同一チップに集積された半導体集積回路であっ
    て、 上記それぞれのメモリセルアレーは複数のデータ線と、
    それらと交わるように配置された複数のワード線と、上
    記複数のデータ線と上記複数のワード線の所望の交差部
    に配置された複数のメモリセルを有し、 上記演算回路は演算器を有し、かつ上記第1のメモリセ
    ルアレーと上記第2のメモリセルアレーとの間に配置さ
    れていることを特徴とする半導体集積回路。
  3. 【請求項3】第1及び第2の演算回路と、第1、第2及
    び第3のメモリセルアレーが同一チップに集積された半
    導体集積回路であって、 上記それぞれのメモリセルアレーは複数のデータ線と、
    それらと交わるように配置された複数のワード線と、上
    記複数のデータ線と上記複数のワード線の所望の交差部
    に配置された複数のメモリセルを有し、 上記第1及び上記第2の演算回路はそれぞれ演算器を有
    し、 上記第1の演算回路は上記第1のメモリセルアレーと上
    記第2のメモリセルアレーとの間に配置され、 上記第2の演算回路は上記第2のメモリセルアレーと上
    記第3のメモリセルアレーとの間に配置されていること
    を特徴とする半導体集積回路。
JP9119083A 1997-05-09 1997-05-09 情報処理装置 Pending JPH1091605A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9119083A JPH1091605A (ja) 1997-05-09 1997-05-09 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9119083A JPH1091605A (ja) 1997-05-09 1997-05-09 情報処理装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP11982890A Division JP3260357B2 (ja) 1990-01-24 1990-05-11 情報処理装置

Publications (1)

Publication Number Publication Date
JPH1091605A true JPH1091605A (ja) 1998-04-10

Family

ID=14752472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9119083A Pending JPH1091605A (ja) 1997-05-09 1997-05-09 情報処理装置

Country Status (1)

Country Link
JP (1) JPH1091605A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017138867A (ja) * 2016-02-05 2017-08-10 富士通株式会社 演算処理回路、および情報処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017138867A (ja) * 2016-02-05 2017-08-10 富士通株式会社 演算処理回路、および情報処理装置

Similar Documents

Publication Publication Date Title
JP3260357B2 (ja) 情報処理装置
JP6477924B2 (ja) メモリスタ神経形態学的回路及びメモリスタ神経形態学的回路をトレーニングするための方法
US11354569B2 (en) Neural network computation circuit including semiconductor storage elements
JP3353786B2 (ja) 情報処理装置
JP6844013B2 (ja) 半導体記憶素子を用いたニューラルネットワーク演算回路及び動作方法
US10453527B1 (en) In-cell differential read-out circuitry for reading signed weight values in resistive processing unit architecture
JPH0467259A (ja) 情報処理装置
WO2021155851A1 (zh) 神经网络电路和神经网络系统
JP2001034735A (ja) 情報処理装置
JPH1091605A (ja) 情報処理装置
JPH1074187A (ja) 情報処理装置
CN115719087A (zh) 长短期记忆神经网络电路及控制方法
US5519813A (en) Neuron unit for processing digital information
JPH0683622A (ja) 情報処理装置
JPH06187472A (ja) アナログニューラルネットワーク
JP2549454B2 (ja) 神経細胞模倣回路網及び神経細胞模倣ユニット
US20240028297A1 (en) Semiconductor device performing a multiplication and accumulation operation
KR20220141652A (ko) 멀티-비트 연산 장치 및 방법
JP2831076B2 (ja) ニューロコンピュータ
JPH0573704A (ja) 信号処理回路装置
JPH08123777A (ja) 神経回路模倣素子
JPH0581229A (ja) 信号処理回路網
JPH07296093A (ja) 神経回路模倣素子
JPH04148389A (ja) 神経細胞回路網
JP2004139606A (ja) 自律システム及び自律型ロボット