JPH0652132A - 並列演算半導体集積回路装置およびそれを用いたシステム - Google Patents

並列演算半導体集積回路装置およびそれを用いたシステム

Info

Publication number
JPH0652132A
JPH0652132A JP4201467A JP20146792A JPH0652132A JP H0652132 A JPH0652132 A JP H0652132A JP 4201467 A JP4201467 A JP 4201467A JP 20146792 A JP20146792 A JP 20146792A JP H0652132 A JPH0652132 A JP H0652132A
Authority
JP
Japan
Prior art keywords
output
arithmetic
data
synapse
neuron
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.)
Withdrawn
Application number
JP4201467A
Other languages
English (en)
Inventor
Hiroshi Shinohara
尋史 篠原
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP4201467A priority Critical patent/JPH0652132A/ja
Priority to US08/077,143 priority patent/US5444822A/en
Publication of JPH0652132A publication Critical patent/JPH0652132A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 【目的】 僅かな付加回路で処理の並列度を増加させる
ことができ、かつ効率的にニューラルネットワークを模
擬することができ、かつニューロンユニット間のデータ
転送を高速で行なうことのできる並列演算半導体集積回
路装置を提供することを目的とする。 【構成】 ニューロン状態値入力とシナプス荷重値との
所定の演算を行なう第1の回路(2)と、この第1の演
算回路の出力を一方入力に受ける第2の演算回路(8)
とを含むシナプスユニット(9)を複数個備える。第2
の演算回路はラテラル接続し、かつこのラテラル接続に
おける最終段の第2の演算回路の出力を累算した後非線
形処理器(4)で非線形変換を行なう。この非線形処理
器4の出力は再び対応のニューロン状態値入力へ所定の
接続経路(7−0、7−1)を介してフィードバックさ
れる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は並列演算機能を備える
並列演算半導体集積回路装置およびそれを用いたシステ
ムに関し、特に、神経回路網を模擬することのできる集
積回路装置およびシステムに関する。
【0002】
【従来の技術】生体神経細胞(ニューロン)をモデルと
する計算処理手法が従来から種々提案されている。ニュ
ーロンをモデルとして構築されるデータ処理手法におい
ては、複数のニューロンを含むニューラルネットが用い
られる。或る入力データが与えられたときニューラルネ
ットは、そのニューラルネット系全体のエネルギーが極
小値をとるような出力データを生成する。ニューラルネ
ットを用いるデータ処理においては、入力データが与え
られたとき、各ニューロン間で非同期的かつ並列にデー
タ処理が実行される。ニューラルネットを用いる計算処
理手法は、問題解決にアルゴリズムを必要としないた
め、パターン認識および連想記憶などの非アルゴリズミ
ックな問題の解決を得意とする。
【0003】図28は、一般的なニューロンのモデルを
示す図である。図28においては、ニューロンユニット
Yjが、4つのニューロンユニットY0、Y1、Y2お
よびY3と結合される場合が示される。図28におい
て、ニューロンユニットYjは、ニューロンユニットY
0、Y1、Y2およびY3からの出力信号y0、y1、
y2およびy3をそれぞれ受けるシナプス結合部SY
0、SY1、SY2およびSY3と、シナプス結合部S
Y0〜SY3の出力を受けて所定の演算処理を行なう変
換部CVと、変換部CVの出力を受けてさらに変換処理
を行なって出力信号yjを生成する出力部OTを含む。
【0004】シナプス結合部SY0〜SY3の各々はニ
ューロンユニットY0〜Y3それぞれに対して所定の重
み(シナプス荷重)を有する。すなわちシナプス結合部
SY0〜SY3各々は出力信号y0、y1、y2および
y3それぞれに対して重み係数Wj0、Wj1、Wj2
およびWj3により重み付けし、この重み付けした信号
を変換部CVへ伝達する。たとえば、ニューロンユニッ
トY0からの出力信号y0は、シナプス結合部SY0に
より信号Wj0・y0に変換された後に変換部CVへ伝
達される。シナプス結合部SY0〜SY3のシナプス荷
重Wj0〜Wj3はそれぞれニューロンユニットY0〜
Y3とニューロンユニットYjとの結合の強さを示す。
この重みWj0〜Wj3は、興奮性結合の場合には正の
値をとり、抑制性結合の場合には負の値をとる。
【0005】変換部CVは、このシナプス結合部SY0
〜SY3から与えられた信号の総和をとる。出力部OT
はこの変換部CVからの総和が或る条件を満足している
か否かを判別する。或る条件が満足されている場合には
発火し出力信号線に信号yjを伝達する。このニューロ
ンユニットのモデルを生体脳細胞に対応させると、シナ
プス結合部SYは樹状突起およびシナプスに対応し、変
換部CVおよび出力部OTは神経細胞体本体に対応し、
かつ出力信号線は軸索に対応する。
【0006】電子モデルにおいては信号y0〜y3がそ
れぞれ0〜1の範囲内の数値で表わされる。この値が1
または1に近い場合には対応のニューロンユニットは発
火状態にあり、0または0に近い場合には非発火状態に
ある。ニューロンユニットはその入力に従って自身の状
態(出力信号の値)を更新する。変換部CVが求める総
和ujは、 uj=ΣWji・yi+Wjj で定義される。ただし、総和Σは添え字iに関して行な
われる。WjjはニューロンユニットYjのしきい値に
対応する。通常この値は図28に示すように0に設定さ
れる。
【0007】出力部OTは、この総和ujに従ってその
状態を決定する。総和ujが或るしきい値以上であれば
ニューロンユニットYjは発火し、その出力yjは1ま
たは1に近い値となる。総和ujがしきい値以下の場合
にはニューロンユニットYjは非発火状態となり、出力
信号yjは0または0に近い値となる。この出力部OT
はこの状態決定のために、次式 yj=f(uj) で与えられる演算を実行する。この総和ujから出力信
号yjへの変換に用いられる関数f(uj)には、単調
増加非線形変換関数が用いられる。このような単調増加
非線形変換関数としては、図29にその一例を示すよう
な次式で与えられるシグモイド関数がよく知られてい
る。
【0008】 yj=1/(1+exp(−A(uj−B))) ただしBはしきい値、Aは遷移領域の幅を示す値であ
る。Aを大きくすると遷移領域の幅は狭くなり、ステッ
プ関数に近づく。ここで、図29において横軸は総和u
jを示し、縦軸は出力信号yjを示す。
【0009】ニューロンは、一般には単独では用いられ
ることは少なく、ニューラルネット(神経回路網)は2
個以上のニューロンユニットを相互に結合させるかまた
は階層的に結合させることにより実現される。このよう
なニューラルネットを表現することのできる半導体集積
回路(以下、単にニューロチップと称す)が種々提案さ
れている。
【0010】図30は従来のニューロチップの構成を示
す図である。図30に示すニューロチップは、たとえば
IJCNN(インターナショナル・ジョイント・コンフ
ァレンス・オブ・ニューラル・ネットワークス)、19
90、IIの第527頁ないし第535頁および第53
7頁ないし第544頁に示された技術に基づいて構成さ
れる。
【0011】図30において、このニューロチップは、
4つのニューロンユニット6a0、6a1、6a2、お
よび6a3を含む。ニューロンユニット6a0〜6a3
の各々は、シナプス荷重値(シナプス結合の強さを示す
値)を保持する重みメモリ1と、データバス7に与えら
れたニューロン状態値と重みメモリ1の出力値との乗算
を行なうためのデジタル乗算器(MPY)2と、乗算器
2の出力を累積加算するリセット機能付累算器(AC
C)3と、累算器3の出力uに対し非線形変換処理を行
なう非線形処理器4と、制御信号EN0〜EN3に応答
して活性化され、非線形処理器4の出力をデータバス7
へ伝達するバスドライバ5を含む。制御信号EN0〜E
N3は、ニューロンユニット6a0〜6a3のそれぞれ
のバスドライバを駆動する。したがって一度に1つのニ
ューロンユニットの非線形処理器4の出力がデータバス
7へ伝達される。ニューロンユニット6a0〜6a3は
1つの半導体チップ上に集積化されており、ユニット6
a0〜6a3の重みメモリ1に対しては共通に4ビット
のアドレスA<3;0>が与えられる。またユニット6
a0〜6a3の各々に累算器3に対してリセット信号R
ESETが共通に与えられる。データバス7はデータ入
出力ピンD<7;0>に結合される。
【0012】なお図30に示す構成において、重みメモ
リ1は、16ワード×8ビット構成を有し、乗算器2
は、8ビット×8ビットの乗算を行ないその出力を12
ビットに丸める符号付き整数乗算器である。累算器3
は、その出力は16ビットに桁拡張されている。非線形
処理器4は、この累算器3からの16ビットの信号をデ
ータバス7のバス幅と同じ8ビットに圧縮する。次に動
作について説明する。今一例として、図31に示すニュ
ーラルネットを模擬する場合を例にとって図30に示す
ニューロチップの動作について説明する。
【0013】図31において、ニューラルネットは、入
力層、中間層および出力層の3層構造を備える。入力層
は、ニューロンYa0、Ya1、Ya2およびYa3の
4つのニューロンを含む。中間層は、ニューロンYb
0、Yb1、Yb2、Yb3、Yb4、Yb5、Yb6
およびYb7の8個のニューロンを含む。出力層は、ニ
ューロンYc0およびYc1の2つのニューロンを含
む。
【0014】このニューラルネットはフィードフォワー
ド接続構成を備えており、信号は入力層から中間層を介
して出力層へ伝達される。シナプス結合数は中間層にお
いて32(4×8)、出力層において16(8×2)の
合計48である。動作は以下の順序に従って実行され
る。なお、以下の説明において、特に明示しない限りリ
セット信号RESETおよび制御信号EN0〜EN3は
論理“0”の不活性状態にある。
【0015】(1) リセット信号RESETがワンシ
ョットパルスの形態で発生され(所定期間“1”の状態
となる)、ユニット6a0〜6a3各々において累算器
3の内容が0にリセットされる。
【0016】(2) データピンD<7;0>に、入力
ニューロンYa0の状態を8桁の符号付き2進数に表現
した値ya0が与えられる。
【0017】(3) 上述の状態信号入力と並行して、
アドレスピンA<3;0>にアドレスi(i=0)が与
えられる。ニューロンユニット6ak(k=0〜3)の
各重みメモリ1は、シナプス荷重値Wbjai(j=k
=0〜3,i=0)をそれぞれ出力する。すなわち、W
b0a0、Wb1a0、Wb2a0、およびWb3a0
が出力される。
【0018】(4) ニューロンユニット6a0〜6a
3各々において、乗算器2が重みメモリ1の出力Wbj
aiとyaiの積Wbjai・yai(j=0〜3,i
=0)を計算する。
【0019】(5) ニューロンユニット6a0〜6a
3各々において、累算器3はその保持値(リセット状態
であり0)に乗算器3からの乗算結果を加算して保持す
る。
【0020】上述の動作によりニューロンYb0〜Yb
3各々とニューロンYa0との結合が表現される。
【0021】(6) 上述の動作(2)〜(4)をさら
に3回(合計4回)繰返す。ただし各繰返し毎にiは、
1、2、3と1つずつ増分される。同様にアドレス入力
端子A<3;0>に与えられるアドレスも1ずつ増分さ
れる。
【0022】この結果、ニューロンユニット6a0〜6
a3の累算器3には、 ΣWbjai・yai=ubj が保持される。ただし総和Σはi=0〜3について行な
われ、j=0〜3であり、中間層ニューロンユニットを
示す。
【0023】(7) ニューロンユニット6a0〜6a
3各々において、累算器3の保持値ubjに対して非線
形処理器4により非線形変換が行なわれる。それによ
り、ニューロンYbjの状態ybj(=f(ubj))
が求められる。ただしj=0〜3である。
【0024】(8) 制御信号EN0、EN1、EN2
およびEN3が順次“1”に立上げられ、ニューロンユ
ニット6a0〜6a3のバスドライバ5がこの順にイネ
ーブルされる。データバス7上にはニューロンユニット
の状態ybjがyb0、yb1、yb2およびyb3の
順で伝達される。このデータバス7上の状態信号ybj
はデータ入出力ピンD<7;0>を介してチップ外部の
メモリ装置(図示せず)に格納される。
【0025】以上の動作により、図31に示す中間層ニ
ューロンYb0〜Yb3に対する処理が完了する。中間
層ニューロンYb4〜Yb7に関する処理も上述の動作
と同様にして実行される。すなわち、 (9) j=k=0〜3をj=k+4=4、5、6、7
に置換えて上述の動作(1)〜(8)を繰返す。これに
より、中間層ニューロンYb0〜Yb7の出力状態がす
べて求められる。次に、出力ニューロンYc0とYc1
に関する処理について説明する。
【0026】(10) リセットピンRESETに論理
“1”のワンショットパルスが印加され、ニューロンユ
ニット6a0〜6a3のそれぞれにおける累算器3の保
持内容が0にリセットされる。
【0027】(11) データ入出力ピンD<7;0>
に外部メモリ装置(図示せず)から中間層ニューロンY
bi(i=0)の状態ybi(i=0)が与えられる。
【0028】(12) 上述の動作(11)と並行し
て、アドレス入力ピンA<3;0>にアドレスi+8
(i=0)が与えられる。ニューロンユニット6ak
(k=0および1)の重みメモリ1は、シナプス結合値
Wcjbi(j=k=0、1,i=0)をそれぞれ出力
する。すなわちシナプス荷重値Wc0b0およびWc1
b1が出力される。
【0029】(13) ニューロンユニット6a0およ
び6a1において、乗算器2が重みメモリ1からのシナ
プス荷重値Wcjbiとニューロン状態値ybiの積W
cjbi・ybi(j=k=0、1,i=0)を計算す
る。これによりニューロンYc0およびYc1それぞれ
と中間層ニューロンYb0との結合が求められる。
【0030】(14) ニューロンユニット6a0およ
び6a1における累算器3がその保持値に上述の動作
(13)において乗算器2から与えられた乗算結果を加
算し、その加算結果を新たな保持値として保持する。
【0031】(15) 上述の動作(11)、(1
2)、(13)をさらに7回(合計8回)繰返す。ただ
し各繰返しにおいて、iは1、2、3、4、5、6、7
と1ずつ増分される。これにより、ニューロンユニット
6a0および6a1の累算器3には、 ΣWcjbi・ybi=ucj;j=k=0、1 が保持される。これにより、図31に示す出力層ニュー
ロンYc0およびYc1それぞれにおいて中間層ニュー
ロンYb0〜Yb7との入力の総和が求められる。
【0032】(16) ニューロンユニット6a0およ
び6a1の累算器3の保持値ucjに対して、非線形処
理器4より非線形変換が行なわれ、ニューロンYcjの
状態ycj(=f(ucj))が求められる。ただし、
j=k=0、1である。
【0033】上述の動作により、図31に示すニューラ
ルネットの動作が完了する。この求められた結果を利用
するためには、ニューロチップ外部に設けられたホスト
計算機等へその計算結果を転送する必要がある。この転
送時には以下の動作(17)の処理が実行される。
【0034】(17) 制御入力ピンENk(k=0、
1)に順次論理“1”の信号が印加される。これにより
ニューロンユニット6a0および6a1のバスドライバ
5から状態データycj(j=k=0、1)がデータバ
ス7、データ入出力ピンD<7;0>を経由してホスト
計算機等の外部装置へ転送される。
【0035】なお上述の動作(10)から動作(16)
の間において、ニューロンユニット6a2および6a3
は最終出力に関係なく、無意味な動作を行なっている。
以下、このような無意味な動作を行なっているニューロ
ンユニットを「アイドリングニューロンユニット」と称
す。
【0036】
【発明が解決しようとする課題】上述の従来のニューロ
チップにおいては、複数のニューロンユニットが互いに
並列に動作しており、複数の演算処理を並列に実行する
ことができる。しかしながら、1つのニューロンユニッ
トにおいては、たとえばニューロンYb0とニューロン
Ya0との間のシナプス結合のように、一度に1つのシ
ナプス結合の計算しか実行することができず、高速で処
理を実行することができないという問題が生じる。
【0037】また、ニューロチップ内部とのニューロン
状態などのデータの通信は、1組のデータバスとデータ
入出力ピンを介してしか実行することができない。この
ため、データ転送速度がボトルネックとなり、演算処理
を高速で実行することができないという問題が生じる。
【0038】さらにニューラルネットにおいて共通の前
段のニューロンの出力状態を入力とする次段ニューロン
の数が、ニューロチップ上に設けられたニューロンユニ
ットの数よりも小さい場合にはアイドリングニューロン
ユニットが発生する。このため、ニューロチップ上のニ
ューロンユニット数を増加させた場合においても、それ
に応じて処理時間を短縮することが困難であるという問
題があった。
【0039】さらにニューロチップの並列度を拡大する
ためにはこのニューロチップを並列に接続する必要があ
る。このため各処理の内部ループ(各ニューロンユニッ
ト)で使用される乗算器および加算器のみならず、使用
頻度の低い非線形処理器をも同数個設ける必要があり、
チップサイズの増大が著しいという問題があった。
【0040】それゆえ、この発明の目的は、高速で演算
処理を実行することのできる並列演算半導体集積回路装
置およびシステムを提供することである。
【0041】この発明の他の目的は、少ない素子数の増
大で演算処理の並列度を大幅に改善することのできる並
列演算半導体集積回路装置およびそのシステムを提供す
ることである。
【0042】この発明のさらに他の目的は、ニューロチ
ップ内のニューロンユニット間およびニューロチップ外
部とのデータのバンド幅を拡げることができる半導体集
積回路装置およびそのシステムを提供することである。
【0043】この発明のさらに他の目的は、アイドリン
グニューロンユニットの発生を抑制することのできる並
列演算半導体集積回路装置およびそのシステムを提供す
ることである。
【0044】この発明のさらに他の目的は、効率的にニ
ューラルネットの模擬を実行することのできる並列演算
半導体集積回路装置を提供することである。
【0045】
【課題を解決するための手段】この発明に係る並列演算
半導体集積回路装置は、1つのニューロンユニット内
に、複数の互いに縦続接続されたシナプス表現ユニット
と、このシナプス表現ユニットの最終段の出力に対応し
て設けられる細胞本体表現ユニットを含む。この回路装
置はさらに、各ニューロンユニットの出力、すなわち状
態信号をシナプス表現ユニットに伝達する経路を備え
る。この構成によりシナプス表現ユニットの追加のみで
処理の並列度を改善する。
【0046】すなわち、請求項1に係る並列演算半導体
集積回路装置は、各々が、第1のデータと予め定められ
た第2のデータとの予め定められた演算処理を行なう複
数の第1の演算手段と、この第1の演算手段の出力に対
応して設けられ、その第1の入力に対応の第1の演算手
段の出力を受ける複数の第2の演算手段と、この第2の
演算手段を縦続接続する第1の接続手段を備える。この
第1の接続手段は、第2の演算手段の出力が次段の第2
の演算手段の第2の入力へ接続されるように各第2の演
算手段をラテラル接続する手段を含む。
【0047】この請求項1に係る並列演算半導体集積回
路装置はさらに、最終段の第2の演算手段の出力に非線
形変換処理を行なう非線形変換手段を含む。
【0048】請求項2に係る並列演算半導体集積回路装
置は、ラテラル接続された第2の演算手段各々に対応す
る複数の第1の演算手段のそれぞれが、第1のデータと
して互いに異なるデータを受ける。
【0049】請求項3に係る並列演算半導体集積回路装
置は、非線形変換手段が、最終段の第2の演算手段の出
力を累算する累算手段と、この累算手段の出力に予め定
められた非線形演算処理を行なう非線形演算手段とを含
む。
【0050】請求項4に係る並列演算半導体集積回路装
置は、第1の演算手段が、第1のデータと第2のデータ
との乗算を行なうデジタル乗算器を含む。
【0051】請求項5に係る並列演算半導体集積回路装
置は、第1の演算手段が、第1のデータと第2のデータ
との差分絶対値を求める差分絶対値回路を含む。
【0052】請求項6に係る並列演算半導体集積回路装
置は、第2の演算手段が、与えられたデータを加算する
加算手段を備える。
【0053】請求項7に係る並列演算半導体集積回路装
置は、第2の演算手段が、互いに並列に配置された複数
の全加算器を含み、前記全加算器の出力のすべては次段
の第2の演算手段の入力へ与えられる。
【0054】請求項8に係る並列演算半導体集積回路装
置は、請求項7の集積回路装置における非線形変換手段
が、ラテラル接続における最終段の第2の演算手段の出
力を加算する加算手段と、この加算手段の出力を累算す
る累算手段と、この累算手段の出力に非線形演算処理を
行なう非線形演算処理手段とを含む。
【0055】請求項9に係る並列演算半導体集積回路装
置は、第1の演算手段が、複数ビットの第1のデータを
ビットシリアルのシーケンスで順次受け、かつ非線形変
換手段が複数ビットのデータを並列に出力し、かつさら
に第1の演算手段の出力と非線形変換手段との間に設け
られ、与えられたデータのビット位置をシフトするシフ
ト手段と、非線形変換手段の並列出力をビットシリアル
のシーケンスに変換する並列/直列変換手段をさらに含
む。
【0056】請求項10に係る並列演算半導体集積回路
装置は、第1の演算手段および第2の演算手段の組が、
複数のグループに分割され、第1の接続手段が、各グル
ープ内において第2の演算手段をラテラル接続し、かつ
さらに、グループにおけるラテラル接続の最終段の第2
の演算手段の出力を受け、第2の演算手段と同じ演算処
理を行なうこの演算処理結果を非線形変換手段へ与える
第3の演算処理手段をさらに備える。
【0057】請求項11に係る並列演算半導体集積回路
装置は、複数の処理ユニットを含む。この処理ユニット
は、各々が第1のデータと予め定められた第2のデータ
との予め定められた演算を行なう第1の演算手段と、第
1の演算手段に対応して設けられ、対応の第1の演算手
段の出力を第1の入力に受ける複数の第2の演算手段
と、この第2の演算手段の出力が次段の第2の演算手段
の第2の入力へ与えられるように第2の演算手段をラテ
ラル接続する第1の接続手段と、ラテラル接続における
最終段の第2の演算手段の出力に非線形変換処理を行な
うための非線形変換手段とを含む。
【0058】請求項11に係る並列演算半導体集積回路
装置はさらに、処理ユニットにおける非線形変換手段の
出力を第1のデータとして各処理ユニットに共通に与え
るための第2の接続手段を含む。この第2の接続手段
は、各処理ユニットにおける非線形変換手段の出力の数
と、1つの処理ユニットに含まれる第1の演算手段の数
とに応じて決定される数だけ設けられる。
【0059】請求項12に係る並列演算半導体集積回路
装置は、この請求項11に係る半導体集積回路装置にお
いて、1つの処理ユニットに含まれる第1の演算手段の
数と第2の接続手段との数が同じであり、かつ処理ユニ
ットの数はこの第2の接続手段すなわち第1の演算手段
の数のN倍である。Nは自然数である。
【0060】この請求項12に係る並列演算半導体集積
回路装置は、1つの第1の演算手段と1つの第2の接続
手段を介してN個の処理ユニットに含まれる非線形変換
処理の出力を多重的に対応づける多重化手段を含む。
【0061】請求項13に係る並列演算システムは、複
数の並列演算半導体集積回路装置を含む。この並列演算
半導体集積回路装置の各々は、各々が第1のデータと予
め定められた第2のデータとに所定の演算を行なう複数
の第1の演算手段と、第1の演算手段に対応して設けら
れ、対応の第1の演算手段の出力を第1の入力に受ける
複数の第2の演算手段と、この第2の演算手段をラテラ
ル接続する第1の接続手段を含む。第1の接続手段は、
第2の演算手段の出力を次段の第2の演算手段の第2の
入力へ接続する。この半導体集積回路装置はさらに、ラ
テラル接続における最終段の第2の演算手段の出力に非
線形変換処理を行なう非線形変換手段を含む。
【0062】請求項13に係る並列演算システムは、さ
らに、この半導体集積回路装置における非線形変換手段
の出力を第1のデータとして各集積回路装置に共通に与
えるための第2の接続手段を含む。この第2の接続手段
の数は、各集積回路装置における非線形変換手段の出力
の数と、1つの処理ユニットに含まれる第1の演算手段
の数とに応じて決定される。
【0063】請求項14に係る半導体集積回路装置は、
複数の処理ユニットを含む。各処理ユニットは、第1の
データと予め定められた第2のデータとの演算を行なう
ための演算手段と、この第2のデータを格納するための
複数のメモリセルを有するメモリとを含む。
【0064】請求項14に係る半導体集積回路装置は、
複数の処理ユニットに少なくともその一部の機能が共通
に設けられ、アドレス信号に従って各メモリからメモリ
セルを選択するメモリセル選択手段を備える。
【0065】
【作用】請求項1に係る並列演算半導体集積回路装置に
おいては、複数の第1の演算手段および複数の第2の演
算手段に対して1つの非線形変換手段が設けられる。こ
れにより、第1の演算手段および第2の演算手段の数を
増加させるだけで演算の並列性を増大させることができ
る。このとき、使用頻度の低い非線形変換手段の数は増
加されないため、チップ占有面積の増大を抑制すること
ができる。
【0066】請求項2に係る並列演算半導体集積回路装
置においては、ラテラル接続された第2の演算手段に対
応する各第1の演算手段は互いに異なるデータを受け
る。これにより並列処理性能を確実に向上させることが
できる。
【0067】請求項3に係る並列演算半導体集積回路装
置においては、非線形変換手段が、累算手段と、この累
算結果に非線形演算処理を行なう非線形演算手段を含ん
でおり、ニューラルネットを模擬する並列演算半導体集
積回路装置を実現することができる。
【0068】請求項4に係る並列演算半導体集積回路装
置においては、第1の演算手段がデジタル乗算器で構成
されており、シナプス結合を表現する。
【0069】請求項5に係る並列演算半導体集積回路装
置においては、この第1の演算手段が差分絶対値回路で
構成され、学習ベクトル量子化法によるニューラルネッ
トを模擬する回路装置を得ることができる。
【0070】請求項6に係る並列演算半導体集積回路装
置においては、第2の演算手段は与えられたデータを加
算しており、これによりラテラル接続によりシナプス結
合部の拡張を容易に実現することが可能となる。
【0071】請求項7に係る並列演算半導体集積回路装
置においては、第2の演算手段は、並列配置された複数
の全加算器からなるコンプレッサで構成される。この構
成により、高速で演算処理を行なうことのできる並列演
算半導体集積回路装置を得ることができる。
【0072】請求項8に係る並列演算半導体集積回路装
置においては、この請求項7におけるコンプレッサ手段
の最終段出力を加算しており、これによりコンプレッサ
手段の出力から最終加算結果を得ることができ、シナプ
ス荷重値の中間和を高速で生成することができる。また
この加算手段出力に対し非線形変換を行なうため、ニュ
ーラルネットを模擬する高速の並列演算半導体集積回路
装置が得られる。
【0073】請求項9に係る並列演算半導体集積回路装
置においては、第1のデータがビットシリアルで与えら
れており、データバス幅を小さくすることができ、チッ
プ占有面積を低減することができる。
【0074】請求項10に係る並列演算半導体集積回路
装置においては、複数のグループそれぞれにおいて並列
に演算が実行され、各グループ最終段出力が統合されて
最終出力を与えている。これによりラテラル接続の段数
を低減することができ、演算における遅延時間を低減す
ることができ、高速で演算処理する並列演算半導体集積
回路装置を得ることができる。
【0075】請求項11に係る並列演算半導体集積回路
装置においては、第2の接続手段により、複数の非線形
変換手段の出力が第1の演算手段へフィードバックする
ことができる。これにより、任意の数のニューロンユニ
ットおよびシナプス結合を有するニューラルネットを容
易かつ高速で模擬することのできる並列演算半導体集積
回路装置を得ることができる。
【0076】請求項12に係る並列演算半導体集積回路
装置においては、N個の非線形変換手段出力が複数の処
理ユニットに共通に第1の演算手段へ与えられる。これ
により容易にニューロンユニット間の接続を実現するこ
とができ、任意の構成のニューラルネットを容易に構築
することができる。
【0077】請求項13に係る並列演算システムは、複
数の並列演算半導体集積回路装置を含み、各並列演算半
導体集積回路装置が第2の接続手段を介して相互接続さ
れる。これにより任意の規模のニューラルネットを容易
に構築することが可能となる。
【0078】請求項14に係る半導体集積回路装置にお
いては、メモリのメモリセル選択手段が各処理ユニット
に対し共通化されているため、チップ占有面積を大幅に
低減することができる。
【0079】
【実施例】
「実施例1」図1はこの発明の第1の実施例である並列
演算半導体集積回路装置の全体の構成を示すブロック図
である。図1において、並列演算半導体集積回路装置
(以下、単にニューロチップと称す)100は、1つの
半導体チップ上に形成され、かつ2つの並列に配置され
たニューロンユニット6b−0および6b−1を含む。
これらのニューロンユニット6b−0および6b−1は
同じ構成を備える。
【0080】すなわち、ニューロンユニット6b−0
は、予め定められた定数を格納するレジスタ10と、所
定のシナプス結合演算を行なう処理ユニットとしてのシ
ナプスユニット9−00と、シナプスユニット9−00
と縦続接続されるシナプスユニット9−01と、シナプ
スユニット9−01の出力を累算する累算器(ACC)
3と、累算器3の出力に所定の非線形変換を行なう非線
形処理器4と、制御信号BE1に応答して非線形処理器
4の出力を内部データバス7−0上へ伝達するバスドラ
イバ5と、ニューロン状態データなどのニューラルネッ
ト模擬動作時における中間結果データを格納するための
読出および書込が可能なたとえばランダム・アクセス・
メモリ(RAM)で構成されるメモリ11を含む。
【0081】レジスタ10には、このニューロンユニッ
ト6b−0が表現するニューロンのしきい値(Wjj)
が格納され、通常0が格納される。0以外の初期値が用
いられてもよい。
【0082】シナプスユニット9−00および9−01
は同一の構成を備え、シナプス結合を表現する。シナプ
スユニット9−00は、シナプス結合の強度を示す重み
を格納する重みメモリ1と、重みメモリ1からのシナプ
ス荷重値と与えられたデータ(ニューロン状態信号)と
の乗算をデジタル的に行なうデジタル乗算器(MPY)
2と、乗算器2の乗算結果とレジスタ10からのデータ
とをデジタル的に加算するデジタル加算器(ADD)8
を含む。
【0083】シナプスユニット9−01は、シナプスユ
ニット9−00と同様、重みメモリ1、デジタル乗算器
2、およびデジタル加算器8を含む。シナプスユニット
9−01のデジタル加算器8は、第1の入力にシナプス
ユニット9−00のデジタル加算器8の出力を受け、第
2の入力に対応のデジタル乗算器2の出力を受ける。す
なわち、レジスタ10、シナプスユニット9−00およ
びシナプスユニット9−01はラテラル接続される。
【0084】シナプスユニットが3個以上設けられる場
合には、このラテラル接続形態が拡張される。すなわ
ち、前段のシナプスユニットに含まれるデジタル加算器
8の出力が次段のシナプスユニットに含まれるデジタル
加算器8の第1の入力に接続される。このラテラル接続
方式をとることにより、シナプスユニットの数を容易に
増加させることができる。
【0085】他方のニューロンユニット6b−1も同様
に、レジスタ10、シナプスユニット9−10、シナプ
スユニット9−11、累算器3、非線形処理器4、バス
ドライバ5、およびメモリ11を含む。レジスタ10、
シナプスユニット9−10、およびシナプスユニット9
−11はラテラル接続される。
【0086】シナプスユニット9−00、9−01、9
−10および9−11の重みメモリ1へはそれぞれアド
レス入力ノードA<3;0>を介してアドレス信号A<
3;0>が与えられる。ここで以下の説明においては、
信号入出力ノード(またはピン端子)とそこに与えられ
る信号とは同一の参照符号で表わす。
【0087】ニューロンユニット6b−0および6b−
1の累算器3へはリセットノードRESETを介してリ
セット信号RESETが共通に与えられる。同様に、ニ
ューロンユニット6b−0および6b−1のバスドライ
バ5へはイネーブルピンBE1を介して制御信号BE1
が共通に与えられる。バスドライバ5は、制御信号BE
1が論理“1”となると活性化されて対応の非線形処理
器4の出力をデータバス7−0および7−1へ伝達す
る。ここでデータバス7−0へはニューロンユニット6
b−0の出力データが伝達され、データバス7−1には
ニューロンユニット6b−1の非線形処理器4の出力デ
ータが伝達される。
【0088】ニューロンユニット6b−0および6b−
1のメモリ11へは、アドレス入力ノードAN<2;0
>を介して3ビットのアドレス信号AN<2;0>が共
通に与えられるとともに、ノードWEおよびBE2を介
して書込制御信号WEおよび出力制御信号BE2が与え
られる。
【0089】データバス7−0および7−1に対してそ
れぞれ入出力バッファを含むバスインターフェイス回路
12−0および12−1が設けられる。バスインターフ
ェイス回路12−0および12−1はそれぞれノードB
E3およびOEを介して与えられる入力指示信号BE3
に応答して活性化される3状態入力バッファ回路120
と、出力制御信号OEに応答して活性化される3状態出
力バッファ回路121を含む。内部データバス7−0お
よび7−1はそれぞれ8ビット幅を有し、データ入出力
ノードD0<7;0>およびD1<7;0>を介して装
置外部とデータの入出力をバスインターフェイス回路1
2−0および12−1を介して行なう。次にこの図1に
示すニューロチップの動作について説明する。
【0090】以下の説明において、この図1に示すニュ
ーロチップが図31に示すニューラルネットを模擬する
場合の動作について説明する。まず以下の説明に用いら
れる添え字について説明する。
【0091】 k:ニューロチップ内のニューロンユニットの番号 図1に示す構成においてはk=0または1 l:ニューロンユニット内のシナプスユニットの番号 図1の構成においてはl=0または1 i:前段のニューロンの番号;i=2n+l j:着目しているニューロンの番号;j=2m+k n,m;0から始まる繰返しを表わす番号 図2にシナプスユニット9−00、9−01、9−10
および9−11に含まれる重みメモリ1の記憶内容を一
覧にして示す。図2(a)はシナプスユニット9−00
における重みメモリ1の記憶内容を示し、図2(b)は
シナプスユニット9−10の重みメモリ1の記憶内容を
示し、図2(c)はシナプスユニット9−01の重みメ
モリ1の記憶内容を示し、かつ図2(d)はシナプスユ
ニット9−11の重みメモリ1の記憶内容を示す。重み
メモリ1はそのアドレス0ないし7の領域に中間層のニ
ューロンと入力層のニューロンとの結合強度を示すシナ
プス荷重値を格納し、アドレス8ないし11の領域に出
力層ニューロンと中間層ニューロンとの結合強度を示す
シナプス荷重値を格納する。
【0092】シナプスユニット9−00の重みメモリ1
は、入力層の偶数番号のニューロンと中間層の偶数番号
のニューロンとの間のシナプス荷重値および中間層の偶
数番号のニューロンと出力層の偶数番号(すなわち0)
のニューロンとの間の結合強度を示すシナプス荷重値を
格納する。シナプスユニット9−10の重みメモリ1
は、入力層の偶数番号のニューロンと中間層の奇数番号
のニューロンとの間のシナプス荷重値と、中間層の偶数
番号のニューロンユニットと出力層の奇数番号(すなわ
ち1)のニューロンとの間のシナプス荷重値とを格納す
る。
【0093】シナプスユニット9−01の重みメモリ1
は、入力層の奇数番号のニューロンと中間層の偶数番号
のニューロンとの間のシナプス荷重値および中間層の奇
数番号のニューロンと出力層の偶数番号のニューロンと
の間のシナプス荷重値とを格納する。シナプスユニット
9−11の重みメモリ1は、入力層の奇数番号のニュー
ロンと中間層の奇数番号のニューロンとの間のシナプス
荷重値および中間層の奇数番号のニューロンと出力層の
奇数番号のニューロンとの間のシナプス荷重値を格納す
る。次に具体的に動作について説明する。
【0094】(1) リセットノードRESETに論理
“1”のワンショットパルスが印加され、ニューロンユ
ニット6b−0および6b−1の累算器3の保持値が0
にリセットされる。
【0095】(2) 制御ノードBE3に論理“1”の
パルス信号が与えられるとともに、データ入出力ノード
D0<7;0>およびD1<7;0>には、入力層ニュ
ーロンYai(i=2n+l,n=0)の状態を表わす
2進数データyai、すなわちこの場合n=0であり、
状態信号ya0およびya1がそれぞれ与えられる。こ
の2進数ya0およびya1はバスインターフェイス回
路12−0および12−1を介して内部データバス7−
0および7−1へ与えられる。
【0096】(3) 動作(2)と並行して、アドレス
入力ノードA<3;0>にアドレス2m+nが印加され
る。この場合、n=0かつm=0である。したがって、
シナプスユニット9−kl(k=0または1、l=0ま
たは1)の重みメモリ1は、シナプス荷重値Wbjai
(j=2m+k、i=2n+l、m=0、n=0)をそ
れぞれ出力する。この状態を図3に示す。ここで、添え
字nは1組の中間層ニューロンの状態決定時において繰
返される動作サイクル番号を示し、mは、各組のニュー
ロンの状態を決定するために繰返される動作サイクルの
番号を示す。
【0097】図3に示すように、ニューロンユニット6
b−0においては、シナプスユニット9−00の重みメ
モリ1からはシナプス荷重値Wb0a0が読出され、シ
ナプスユニット9−01の重みメモリ1からはシナプス
荷重値Wb0a1が読出される。ニューロンユニット6
b−1のシナプスユニット9−10の重みメモリ1から
はシナプス荷重値Wb1a0が読出され、シナプスユニ
ット9−11の重みメモリ1からはシナプス荷重値Wb
1a1が読出される。
【0098】内部データバス7−0はシナプスユニット
9−00および9−10の乗算器2の入力に結合され、
内部データバス7−1はシナプスユニット9−01およ
び9−11の乗算器の入力に結合される。したがって、
図3に示すように、各ニューロンユニット6b−0およ
び6b−1の上側の乗算器2に対しては入力層ニューロ
ンYa0の状態信号ya0が与えられ、下側の乗算器2
には入力層ニューロンYa1の状態信号ya1が与えら
れる。
【0099】この状態では、図3に示されるように、ニ
ューロンユニット6b−0および6b−1はそれぞれ中
間層ニューロンYb0およびYb1を表現する。
【0100】(4) ニューロンユニット6b−0およ
び6b−1それぞれにおいて乗算器2は与えられたシナ
プス荷重値Wbjaiと入力層ニューロンの状態値ya
iとの積を計算する。
【0101】(5) ニューロンユニット6b−0およ
び6b−1それぞれにおいて、レジスタ10に格納され
た初期値と乗算器2の出力値とがラテラル接続された加
算器8により順次加算される。レジスタ10に格納され
た初期値を0とすると最終段に対応するシナプスユニッ
ト9−01および9−11の加算器8が、 ΣWb2mai・yaiおよびΣWb(2m+1)ai
・yai をそれぞれ出力する。ただしn=0、m=0である。
【0102】(6) ニューロンユニット6b−0およ
び6b−1それぞれの累算器3はその保持値(初期状態
においては0)に上述の動作(5)において得られた最
終段の加算結果を加算し、その加算値を新たな保持値と
して保持する。
【0103】(7) 上述の動作(2)ないし(6)を
n=1(1増分)およびm=0(維持)として繰返す。
この状態では、図4に示すように、ニューロンユニット
6b−0においては重みメモリ1はWb0a2およびW
b0a3を出力する。ニューロンユニット6b−1にお
いては、重みメモリ1はシナプス荷重値Wb1a2およ
びWb1a3を出力する。ニューロンユニット6b−0
および6b−1における上側の乗算器へは入力層ニュー
ロンYa2の状態値ya2が与えられ、下側の乗算器へ
は入力層ニューロンYa3の状態値ya3が与えられ
る。この動作の結果、ニューロンユニット6b−0およ
び6b−1の累算器3には、それぞれ、 ΣWb(2m)ai・yi=ub(2m)、 ΣWb(2m+1)ai・yi=ub(2m+1) が保持される。ここで総和Σはi=0ないし3の範囲で
実行される。
【0104】この動作により、中間層ニューロンYb0
およびYb1におけるシナプス荷重値の総和がそれぞれ
求められる。
【0105】(8) ニューロンユニット6b−0およ
び6b−1それぞれにおいて累算器3の保持値ubjに
対して非線形処理器4が非線形変換を実行し、中間層ニ
ューロンYbjの状態値ybj(=f(ubj))を得
る。ただしj=2m+k、m=0、k=0および1であ
る。すなわち、中間層ニューロンYb0およびYb1の
状態値が求められる。
【0106】(9) 制御ノードBE1に論理“1”の
パルスを印加してバスドライバ5を共に活性化し、ニュ
ーロンユニット6b−0および6b−1における非線形
処理器4の出力を内部データバス7−0および7−1上
に伝達する。この動作と並行してアドレス入力ノードA
N<2;0>にm(m=0)を与え、かつ制御ノードW
E1に論理“1”の信号を印加し、メモリ11を書込状
態にしてメモリ11に内部データバス7−0および7−
1のデータを書込む。
【0107】これにより、図5に示すように、ニューロ
ンユニット6b−0および6b−1のメモリ11にはそ
れぞれアドレス0(=m)に中間層ニューロンYb0お
よびYb1の状態値yb0およびyb1が格納される。
【0108】この上述の一連の動作により中間層ニュー
ロンYb0およびYb1に関する処理が完了する。
【0109】(10) 上述の動作(1)ないし(9)
をmを1ずつ増分、すなわちm=1、2、および3とし
て3回繰返す(合計4回)。これにより中間層ニューロ
ンYb0ないしYb7に関する処理が完了する。この状
態においては図6に示すように、ニューロンユニット6
b−0および6b−1のメモリ11には、中間層ニュー
ロンの状態値が格納される。すなわち、ニューロンユニ
ット6b−0のメモリ11のアドレス0、1、2、およ
び3には状態値yb0、yb2、yb4およびyb6が
格納される。ニューロンユニット6b−1のメモリ11
のアドレス0、1、2、および3には状態値yb1、y
b3、yb5およびyb7がそれぞれ格納される。
【0110】次に、出力層ニューロンYc0およびYc
1に関する処理について説明する。 (11) リセットノードRESETに論理“1”のワ
ンショットのパルス信号が印加される。ニューロンユニ
ット6b−0および6b−1における累算器3のそれぞ
れの保持値が0にリセットされる。
【0111】(12) アドレス入力ノードAN<2;
0>にn(n=0)が与えられ、かつ制御ノードBE2
に論理“1”の信号が印加される。これによりメモリ1
1のアドレスn(n=0)に保持されていた中間層ニュ
ーロンの状態値ybi(i=2n+l、l=0および
1)がデータバス7−0および7−1上にそれぞれ出力
される。すなわち、ニューロンユニット6b−0のメモ
リ11からは中間層ニューロンYb0の状態値yb0が
内部データバス7−0上に伝達される。またニューロン
ユニット6b−1のメモリ11からは中間層ニューロン
Yb1の状態値yb1が読出され、内部データバス7−
1上に伝達される。
【0112】(13) 動作(12)と並行して、アド
レス入力ノードA<3;0>にアドレス8+n(n=
0)が与えられる。これにより、シナプスユニット9−
klの重みメモリ1は、それぞれシナプス荷重値Wcj
bi(j=k=0、1;i=2n+l、n=0、l=
0、1)を出力する。すなわち、シナプスユニット9−
00、9−10、9−01および9−11はシナプス荷
重値Wc0b0、Wc1b0、Wc0b1、およびWc
1b1を出力する。この状態を図7に示す。
【0113】図7に示すように、ニューロンユニット6
b−0は出力層ニューロンYc0を表現し、ニューロン
ユニット6b−1は出力層ニューロンYc1を表現す
る。ニューロンユニット6b−0および6b−1それぞ
れにおける上側の乗算器2へは、中間層ニューロンYb
0の状態値yb0が与えられ、下側の乗算器2へは中間
層ニューロンYb1の状態値yb1が与えられる。
【0114】(14) ニューロンユニット6b−0お
よび6b−1において、乗算器2が与えられたシナプス
荷重値Wcjbiと与えられた中間層ニューロン状態値
ybiとの積を計算する。
【0115】(15) ニューロンユニット6b−0お
よび6b−1において、ラテラル接続された加算器8に
より、レジスタ10の保持データに対応の乗算器8の出
力値が順次加算される。レジスタ10はニューロンのし
きい値を格納する。格納値を0とすると、ニューロンユ
ニット6b−0および6b−1それぞれにおける最終段
のシナプスユニット9−10および9−11における加
算器8は、それぞれ、 ΣWc0bi・ybi、 ΣWc1bi・ybi、 を出力する。ただし総和Σはi=2n、および2n+1
について行なわれる。この場合n=0である。
【0116】(16) ニューロンユニット6b−0お
よび6b−1それぞれにおいて、累算器3はその保持値
(リセット値0)に動作(15)で得られた最終段の加
算器8からの加算結果を加算し、その加算値を新たな保
持値として保持する。
【0117】(17) 上述の動作(12)ないし(1
6)をnを1ずつ増分して、すなわちn=1、2、およ
び3として3回繰返す(合計4回)。
【0118】n=3におけるニューロンユニット6b−
0および6b−1におけるデータの分布を図8に示す。
最終の動作サイクルにおいては、中間層ニューロンYb
6およびYb7の状態値yb6およびyb7がニューロ
ンユニット6b−0および6b−1における上側の乗算
器2および下側の乗算器へそれぞれ与えられる。
【0119】この動作サイクルの完了後においては、ニ
ューロンユニット6b−0および6b−1の累算器3に
は、それぞれ、 ΣWc0bi・ybi=uc0、 ΣWc1bi・ybi=uc1 が保持される。ここで総和Σはi=0ないし7について
実行される。
【0120】(18) ニューロンユニット6b−0お
よび6b−1それぞれにおける累算器3の保持値ucj
に対して非線形処理器4が非線形変換を実行する。これ
により出力ニューロンYcjの状態ycj(=f(uc
j))(j=k=0、1)を得る。すなわちニューロン
ユニット6b−0の非線形処理器4から出力層ニューロ
ンYc0の状態値yc0が出力され、ニューロンユニッ
ト6b−1の非線形処理器4からは出力層ニューロンY
c1の状態値yc1が出力される。
【0121】以上の動作により、図31に示すニューラ
ルネットの動作が完了する。この結果を利用するために
は、ニューロチップ100外部に設けられたたとえばホ
スト計算機である処理装置へ転送する必要がある。この
場合には、次の動作(19)に示す処理が実行される。
【0122】(19) 制御ノードBE1に論理
“1”、出力イネーブルノードOEに、論理“1”の信
号が印加される。これにより、ニューロンユニット6b
−0および6b−1におけるバスドライバ5が活性化さ
れ、かつバスインターフェイス回路12−0および12
−1における3状態出力バッファ121が活性化され
る。ニューロンユニット6b−0および6b−1の非線
形処理器4が生成した出力層ニューロンYc0およびY
c1の状態値yc0およびyc1はそれぞれ内部データ
バス7−0および7−1、バスインターフェイス回路1
2−0および12−1、およびデータ入出力ノードD0
<7;0>およびD1<7;0>を介して外部に設けら
れたホスト計算機の中央演算処理装置(CPU)または
その外部メモリへ転送される。
【0123】また、ニューロンユニット6b−0および
6b−1が生成した結果を再びこのニューロチップ10
0内で使用する際には、次の動作(20)が実行され
る。
【0124】(20) 制御ノードBE1に論理
“1”、アドレス入力ノードAN<2;0>に4、書込
イネーブルノードWEに論理“1”の信号が与えられ
る。メモリ11が書込可能状態となり、内部データバス
7−0および7−1上にバスドライバ5を介して与えら
れた状態値yc0およびyc1がニューロンユニット6
b−0および6b−1のメモリ11のアドレス4にそれ
ぞれ書込まれる。
【0125】「実施例2」シナプス荷重値は、ニューラ
ルネットの適合用途に応じて最適に設定される。入力デ
ータに応じて所定のデータを出力するためにニューラル
ネットに対し「学習」が行なわれ、シナプス荷重値の修
正が行なわれる。「学習」を行なうモデルには、教師デ
ータを用いる学習モデルと、教師データを用いない学習
モデルとがある。バックプロパゲーションモデルおよび
ボルツマンマシンモデルなどは教師データを用いる学習
モデルであり、教師データを用いない学習モデルの1つ
にLVQ(学習ベクトル量子化)法がある。この教師デ
ータを用いない学習においては、教師データが与えられ
ない状態において、入力データの性質に応じてシナプス
荷重値が自動的に修正され、入力データのパターン分類
が実行される。このLVQ法を用いるニューラルネット
について簡単に説明する。
【0126】図9は、LVQネットワークの構造の一例
を示す図である。図9において、LVQネットワーク
は、NI個の入力層ニューロンI1ないしINIと、N
O個の出力層ニューロンO1ないしONOとを有する2
層構造を備える。一般に、出力層ニューロンの数NO
は、識別したいカテゴリの数Mに等しくされる。学習に
用いる入力ベクトルを↑vm (m=1、2、…M)、シ
ナプス荷重をWij(i=1、2、…NO、j=1、
2、…NI、ただしNO=M)とする。ベクトル↑v m
は、m番目のカテゴリに属する入力ベクトルの集合であ
る。シナプス荷重Wijを構成するm個のベクトル↑W
i(Wi1,Wi2,…,WiNI)を参照ベクトルと
する。参照ベクトル↑Wiのうち最も入力ベクトル↑v
m に「近い」ベクトルを↑Wcとする。ここで「近い」
は、ユークリッド距離の意味で「近い」であってもよ
い。他の概念が利用されてもよい。学習時においてベク
トル↑Wcは以下のように更新される。
【0127】↑vm が正しく分類されているとき、 ↑Wc(t+1)=↑Wc(t)+η(t)‖↑vm
↑Wc(t)‖ ↑vm が正しく分類されていないとき、 ↑Wc(t+1)=↑Wc(t)−η(t)‖↑vm
↑Wc(t)‖ ↑Wc以外のシナプス荷重ベクトル↑Wiに対しては、 ↑Wi(t+1)=↑Wi(t) ここでη(t)は時間と共に単調に減少する学習パラメ
ータ(0<η<1)である。tは学習の回数を示す。上
式より、参照ベクトル↑Wcは、正しく分類が行なわれ
たときには、入力ベクトル↑vm に近づき、正しく分類
されていない場合には↑vm より遠ざかる。上述の動作
を様々な学習ベクトル↑vm をカテゴリに従って変更す
ることによりシナプス荷重が修正される。学習終了後は
この修正後のシナプス荷重が重みメモリに格納される。
【0128】ここで、「近い」ベクトルとしては、ユー
クリッド距離が最小となるベクトルを求める。この場
合、 ‖↑vm −↑Wc‖=min{‖↑vm −↑Wi‖} が用いられる。または、ベクトル↑vm とベクトル↑W
iとの内積↑vm ・↑Wiが最小となるベクトルが利用
される場合もある。
【0129】学習終了時においてはシナプス荷重ベクト
ル↑Wiが規格化されていれば、 ui=↑Wi・↑vm であるため、入力ベクトル↑vm を入力した場合、出力
層ニューロンにおけるi番目のニューロンOiの出力u
iが最大となり、カテゴリの分類ができる。
【0130】上述のようなLVQ法に基づくニューラル
ネットにおいては、入力データとシナプス荷重値との乗
算よりもむしろ差分演算が必要とされる。以下に、任意
のモデルのニューラルネットに柔軟に対応することので
きる並列演算半導体集積回路装置の構成について説明す
る。
【0131】図10はこの発明の第2の実施例であるニ
ューロチップの全体の構成を示す図である。この図10
に示すニューロチップは、1つの半導体チップ上に形成
される。
【0132】図10において、ニューロチップ200
は、2つのニューロンユニット6b−0および6b−1
を含む。ニューロンユニット6b−0および6b−1
は、それぞれ乗算器2に代えて一般の2値演算回路2a
を含む点を除いて、図1に示すニューロチップと同様の
構成を備える。2値演算回路2aは、任意の演算機能を
備える。
【0133】図11は、図10に示す2値演算回路とし
て差分絶対値回路を用いる場合の差分絶対値回路の構成
を示す図である。図11において、差分絶対値回路21
は、入力データYiとシナプス荷重値Wiとの差をとる
減算器21と、減算器21の出力を反転または非反転し
て出力する絶対値回路22を含む。絶対値回路22は、
減算器21の出力の符号ビットに応じて、減算器21の
出力を反転または非反転する。反転動作時において、2
の補数表示が用いられる場合には、減算器21の出力を
すべて反転し、1を加算する。これによりシナプス荷重
値Wiと入力データYiとの差分絶対値|Wji−Yi
|が求められる。
【0134】上述のように、ニューロチップ200が表
現するニューラルネットがLVQモデルの場合、この2
値演算回路2aとして、図11に示す差分絶対値回路を
用いると都合がよい。LVQモデルの学習時において、
入力ベクトルに最も「近い」シナプス荷重ベクトルを求
めるために距離計算が行なわれるが、この距離計算にΣ
|Wji−Wi|の計算が多用されるからである。ここ
で総和Σはiに関して行なわれる。シナプス荷重ベクト
ル↑Wiが、ニューロンのシナプス荷重値を構成要素と
する。図10に示す構成において、「近い」ベクトルを
求めるために、ニューロンユニット6b−0および6b
−1の累算器3に対し共通に最小値を求める最小値回路
が設けられていてもよい。3個以上のニューロンを表現
する必要がある場合、この最小値回路は、その保持デー
タと新たに与えられたデータと比較し、小さい方を格納
する機能を備えればよい。
【0135】上述の構成によりLVQモデルの学習に容
易に対処することのできるニューラルネットを得ること
ができる。通常の処理動作時には差分絶対値演算が実行
される。最大値回路により最大出力のニューロンユニッ
トを選択する。
【0136】またLVQモデルにおいては、距離の計算
に代えてベクトルの内積が利用される場合もある。この
場合には単に入力データとシナプス荷重値との乗算が実
行される。その場合には図1に示す構成において、ニュ
ーロンユニット6b−0および6b−1の累算器3の出
力を加算する回路とこの加算回路の出力の最小値を求め
る最小値回路とが用いられればよい。
【0137】またこの2値演算回路は、図11に示す差
分絶対値演算回路ではなく、差分二乗演算回路であって
もよい。同様に、ユークリッド距離の計算を行なうこと
ができる。学習機能を備える場合には、重みメモリ1が
メモリ11のように書込および読出機能両者を備える構
成が利用されてもよい。
【0138】さらに、シナプス荷重値をLVQモデルに
従って修正し、実際の演算は、通常のニューロンのモデ
ルに従って処理(シナプス荷重値と入力状態信号との積
和演算)が実行されてもよい。この場合差分絶対値回路
と乗算回路両者が必要とされる。
【0139】図12は、図10に示す2値演算回路のさ
らに他の構成を示す図である。図12において、2値演
算回路30は、2ビットの選択信号φ<1;0>に応答
して活性化される乗算器32、差分絶対値回路33およ
び差分二乗絶対値回路34と、選択信号φ<1;0>に
応答して、データYiおよびWjiを選択された機能を
実行する回路へ通過させるための選択回路31を含む。
この図12に示す2値演算回路30を図10に示す2値
演算回路2aとして用いれば、表現可能なニューラルネ
ットワークのモデルの種類が増加し、適用用途を大幅に
拡大することができる。この2値演算回路は、さらに他
の演算機能を備えてもよい。
【0140】「実施例3」前述の第1の実施例において
は、シナプス荷重値Wjiと前段のニューロンの状態値
との積を計算するために、8ビット×8ビットの並列デ
ジタル乗算器2が用いられている。前段のニューロンの
状態値Yiは、最下位ビットLSBから順次シリアルに
入力される条件の下で、1ビット×8ビットの乗算器が
用いられてもよい。
【0141】図13はこの発明の第3の実施例であるニ
ューロチップに用いられる乗算器の構成を示す図であ
る。図13において、乗算機能を実現する回路は、1ビ
ットの前段のニューロン状態値Yiと8ビットのシナプ
ス荷重値Wji<7;0>とを乗算する1ビット×8ビ
ットの乗算器2bと、乗算器2bの出力をニューロン状
態値Yiの桁に応じて上位方向へシフトするシフタ13
を含む。
【0142】図14は、図13に示す1ビット×8ビッ
ト乗算器の構成を示す図である。図14において、1ビ
ット×8ビット乗算器2bは、8個の並列に接続された
AND回路AN0〜AN7を含む。AND回路AN0〜
AN7のそれぞれの一方入力に1ビットニューロン状態
値Yiが与えられ、他方入力に8ビットシナプス荷重値
Wij<7;0>の対応のビットが与えられる。AND
回路AN0〜AN7の出力は並列にバス50上に伝達さ
れる。AND回路AN7がシナプス荷重値Wij<7;
0>の最上位ビットWji<7>をその他方入力に受
け、AND回路AN0がシナプス荷重値Wji<7;0
>の最下位ビットWji<0>を受ける。図14に示す
ように1ビット×8ビット乗算器2bはAND回路8個
を備えるだけであり、シナプスユニットの構成素子数を
低減することができる。
【0143】部分積を所定の桁位置に揃えるためのシフ
タ13は、乗算器2bと累算器3との間に設けられれば
よい。
【0144】図15は、図13に示す1ビット×8ビッ
ト乗算器を用いるニューロチップの構成を示す図であ
る。図15において、ニューロチップ300は、図1に
示す構成と同様、2つのニューロンユニット6b−0お
よび6b−1を含む。ニューロンユニット6b−0およ
び6b−1はそれぞれラテラル接続されたシナプスユニ
ット9−00および9−10と、シナプスユニット9−
10および9−11を含む。シナプスユニット9−0
0、9−01、9−10および9−11は乗算器2bが
1ビット×8ビットの乗算器である点を除いて図1に示
す構成と同じである。
【0145】ニューロチップ300はさらに、ニューロ
ンユニット6b−0および6b−1のそれぞれの最終段
のシナプスユニット9−01および9−11の出力に設
けられるシフタ13と、1ビットデータ線7a−0およ
び7a−1とバスドライバ5との間に設けられる並列/
直列変換器14を備える点を除いて図1に示す構成と同
じ構成を備える。
【0146】ニューロンユニット6b−0および6b−
1におけるシフタ13は、3ビットのシフト制御信号S
<2;0>に応答してシナプスユニット9−01および
9−11(加算器8)の出力のビット位置をシフトさせ
る。シフト制御信号S2<2;0>はシフタ13におけ
るビットシフト数を決定する。
【0147】並列/直列変換器14は、バスドライバ5
またはメモリ11から与えられる8ビット並列出力を1
ビットずつのビットシリアルなシーケンスに変換してデ
ータ線7a−0および7a−1上に伝達する。データ線
7a−0および7a−1はまた図1に示す構成と同様シ
ナプスユニット9−00および9−10内の乗算器2b
およびシナプスユニット9−01および9−11内の乗
算器2bへデータを伝達する。
【0148】1ビットのデータ線7a−0および7a−
1に対応して、バスインターフェイス回路12a−0お
よび12a−1は、1ビット単位でデータ入出力ノード
D0およびD1とデータの授受を行なう。バスインター
フェイス回路12a−0および12a−1は図1に示す
構成と同様制御ノードBE3およびOEに与えられる信
号の論理に応じてその内部の入力バッファまたは出力バ
ッファが活性化される。
【0149】図15に示す構成においては、最終加算の
結果が、シフタ13によりビット位置がシフトされて累
算器3へ与えられる。
【0150】この構成においては、装置外部とはビット
シリアルなシーケンスでデータの入力および出力が行な
われるため、入出力ノードD0およびD1の数を低減す
ることができ、このチップ300が単体で利用される場
合にデータ入出力ピンの数を低減することができる。
【0151】この図15に示す構成の場合、1つのニュ
ーロンユニットに対し1つのシフタが設けられるだけで
あり、ニューロンユニットの構成素子数の増加を抑制す
ることができる。
【0152】図16は、1ビット×8ビット乗算器を用
いるニューロチップの他の構成例を示す図である。図1
6において、ニューロチップ310は、シナプスユニッ
ト9−00、9−01、9−10および9−11の各々
において、乗算器2bと加算器8との間にシフタ13が
設けられる点を除いて図15に示すニューロチップ30
0と同じ構成を備える。この図16に示すニューロチッ
プ310においては、シナプスユニット1個に対し1つ
のシフタが設けられる。この構成であっても、図15に
示すニューロチップ300と同様の効果を得ることがで
きる。
【0153】「実施例4」上述の実施例においては、乗
算または差分絶対値などのシナプス演算の結果を加算す
る構成として、シナプスユニットに含まれる加算器8を
ラテラル接続する構成を示した。以下に、この加算器お
よびラテラル接続の具体的構成について説明する。
【0154】図17は、この発明の第4の実施例である
ニューロチップの要部の構成を示す図である。図17に
おいて、1つのニューロンユニット6bは、4つのシナ
プスユニット9−00、9−01、9−02および9−
03を含む。図17に示す構成においては、図面を簡略
化するために、レジスタ10は4ビットデータREG<
3;0>を格納し、また乗算器の出力は4ビットwy<
3;0>としている。
【0155】シナプスユニット9−00〜9−03の各
々は加算器8a0、8a1、8a2および8a3を含
む。加算器8a0〜8a3のそれぞれは同じ構成を備
え、リップルキャリ型加算器の構成を備え、6個の全加
算回路15−5〜15−0を含む。全加算回路15−0
〜15−5の各々は、キャリ入力Ci、加算入力Aおよ
びB、和出力Sおよびキャリ出力Coを含む。1つの加
算器8aにおいて、全加算回路15−x(x=0〜4)
のキャリ出力Coは、上位の全加算回路15−x+1の
キャリ入力Ciに接続される。
【0156】全加算回路15−0〜15−5の和出力
は、次段のシナプスユニットに設けられた全加算器の入
力Aへ与えられる。全加算回路15−0〜15−3の各
々には、シナプス演算結果wy<3;0>の対応のビッ
トが与えられる。
【0157】ラテラル接続における最終段の加算器8a
3の出力は累算器3へ与えられる。この図17に示す加
算器の構成においては、キャリが1つの加算器内部を順
次伝達される。
【0158】図18は、図17に示す全加算回路15の
具体的構成の一例を示す図である。図18において、全
加算回路15(全加算回路15−0〜15−5を代表的
に示す)は、加算入力AおよびBを受けるAND回路G
0と、加算入力Bとキャリ入力Ciとを受けるAND回
路G1と、加算入力Aとキャリ入力Ciとを受けるAN
D回路G2と、AND回路G0〜G3の出力を受ける3
入力NOR回路G3と、加算入力AおよびBを受ける排
他的論理和(ExOR)回路G4と、NOR回路G3の
出力を受けるインバータ回路G5と、ExOR回路G4
の出力とキャリ入力Ciとを受けるExOR回路G6を
含む。インバータ回路G5の出力はキャリ出力Coへ与
えられ、ExOR回路G6の出力は和出力Sへ与えられ
る。この図15に示す全加算回路は、3段のゲート遅延
を与える。
【0159】図17に示す加算器の構成は、リップルキ
ャリ型構成であるが、加算器の構成にはこの他に、キャ
リルックアヘッド加算器がある。桁上げの有無を先に見
ることによりキャリ伝搬の遅延時間を低減する加算器で
ある。
【0160】しかしながら、一般に加算器にはキャリ伝
搬に伴う全加算回路数段分の遅延が生じる。図17に示
す構成においては、このような全加算器8aが4段直列
(ラテラル)に接続される。したがって、加算に伴う遅
延の総和がより大きくなる。
【0161】図19はこの発明の第4の実施例であるニ
ューロチップの改良例を示す図である。図19において
は、図17に示す構成と同様、1つのニューロンユニッ
ト6bが4つのシナプスユニット9−00〜9−03を
備える構成が示される。図19において、シナプスユニ
ット9−01〜9−03の各々は、加算器として3対2
コンプレッサ8b0〜8b2を含む。3対2コンプレッ
サ8b(コンプレッサ8b0〜8b2を総称的に示す)
は、その入力の数と出力の数との比が3対2である。コ
ンプレッサ8bは、6個の並列に配置された全加算回路
15−0〜15−5を含む。
【0162】初段のシナプスユニット9−00にはコン
プレッサ8bは設けられない。2段目のコンプレッサ8
b0の第1の入力へこの初段のシナプスユニット9−0
0のシナプス演算結果(乗算器の出力)wy<3;0>
およびレジスタ10の保持データREG<3;0>が与
えられる。
【0163】コンプレッサ8bにおいてはその第2の入
力(全加算回路15のB入力)へ対応の乗算器からの出
力wy<3;0>が与えられる。
【0164】コンプレッサ8bの出力、すなわち全加算
回路15の出力SおよびCoは次段のコンプレッサの第
1の入力(全加算回路15のA入力;ただし第1の入力
はA入力およびキャリ入力を含む)へ与えられる。より
具体的には、全加算回路15−0〜15−5の和出力S
は次段のコンプレッサに含まれる同一桁の全加算回路1
5−0〜15−5のA入力へ与えられる。コンプレッサ
8bに含まれる全加算回路15−0〜15−4のキャリ
出力Coは次段のコンプレッサ8bにおける1ビット上
位の全加算回路15−1〜15−5のキャリ入力Ciへ
伝達される。最上位の全加算回路15−5のキャリ出力
Coは利用されない。全加算回路15−4および15−
5において演算結果データが伝達されない入力には論理
“0”の2値信号が与えられる。
【0165】ニューロンユニット6bは、さらに、最終
段のシナプスユニット9−03のコンプレッサ8b2の
出力を加算する加算器8aを含む。加算器8aはリップ
ルキャリ型接続構成に配置された6個の全加算回路15
−0〜15−5を含む。このコンプレッサ8b2の全加
算回路15−0〜15−5の和出力Sは加算器8aにお
ける同一桁の全加算回路15−0〜15−5のB入力へ
接続される。コンプレッサ8b2の全加算回路15−0
〜15−4のキャリ出力Coは加算器8aにおける1ビ
ット上位の全加算回路15−1〜15−5のA入力に接
続される。加算器8aにおいては、全加算回路15−0
〜15−4のキャリ出力Coは1ビット上位の全加算回
路15−1〜15−5のキャリ入力Ciへ与えられる。
加算器8aにおける全加算回路15−0〜15−5の和
出力Sおよび全加算回路15−5におけるキャリ出力C
oが並列に累算器3へ与えられる。
【0166】図19に示す構成においては、3対2コン
プレッサ8bを用いることにより、最終段のシナプスユ
ニット9−03の出力(コンプレッサ8b2の出力)を
さらに加算するために加算器8が必要とされる。この構
成は並列乗算器の構成に類似する。
【0167】並列乗算器により部分積和を生成する構成
がコンプレッサ8bに対応し、部分積から最終積を生成
する最終加算器が加算器8aに対応すると考えることが
できる。ただし乗算器においては、部分積は1ビットず
つ上位方向にシフトされているが、この図19に示す構
成においてはそのような部分積のシフトは存在していな
い。
【0168】この図19に示す構成においては、3対2
コンプレッサ8bを用いたため、最終段のシナプスユニ
ット9−03の出力後にさらに加算器8aを設ける必要
がある。しかしながら直列に接続される3対2コンプレ
ッサ8b各々内においてはキャリ伝搬は存在しない。コ
ンプレッサ8b内における遅延は全加算回路15の1段
分の遅延である。したがって、加算演算における遅延の
総和は図17に示す構成に比べて大幅に低減される。さ
らに図19に示すコンプレッサを用いる構成は、キャリ
ルックアヘッド加算器を利用するよりも回路規模を小さ
くする利点を備える。キャリルックアヘッド加算器にお
いては、キャリが生じるか否かを予め見出す回路構成が
必要とされるため、その構成は一般に大きくなる。
【0169】「実施例5」図20はこの発明の第5の実
施例であるニューロチップの要部の構成を示す図であ
る。図20において、1つのニューロンユニット6b
は、8個のシナプスユニット9−00、9−01、9−
02、9−03、9−04、9−05、9−06および
9−07を含む。シナプスユニット9−00〜9−07
は、2つのグループに分割される。1つのグループは、
シナプスユニット9−00、9−01、9−02および
9−03を含み、これらはラテラル接続される。他方の
グループは、シナプスユニット9−04、9−05、9
−06および9−07を含み、これらはラテラル接続さ
れる。
【0170】シナプスユニット9−02および9−03
はそれぞれ3対2コンプレッサ8b−2および8b−3
を含む。コンプレッサ8b−2は、シナプスユニット9
−00および9−01からのシナプス演算結果wy<
3;0>を受けるとともに、シナプスユニット9−02
におけるシナプス演算結果を受ける。3対2コンプレッ
サ8b−3は、コンプレッサ8b−2の出力と自己のシ
ナプスユニット9−03におけるシナプス演算結果とを
受ける。3対2コンプレッサ8b−2および8b−3間
の接続は図19に示すものと同じである。
【0171】シナプスユニット9−04、9−05、9
−06および9−07においても、同様の接続が行なわ
れており、3対2コンプレッサ8b−6および8b−7
がそれぞれ3対2コンプレッサ8b−2および8b−3
と同様の接続形態でラテラル接続される。
【0172】ラテラル接続における最終段のコンプレッ
サ8b−3および8b−7の出力から最終加算を得るた
めに、さらに、3対2コンプレッサ8b−3および8b
−7の出力を受ける3対2コンプレッサ8b−4と、3
対2コンプレッサ8b−4の出力と3対2コンプレッサ
8b−7の出力とを受ける3対2コンプレッサ8b−5
と、3対2コンプレッサ8b−5の出力を受ける加算器
8aが設けられる。
【0173】3対2コンプレッサ8b−4は、3対2コ
ンプレッサ8b−3の和出力Sおよびキャリ出力Coを
受け、かつ3対2コンプレッサ8b−7の和出力Sを受
ける。3対2コンプレッサ8b−4は、7個の全加算回
路15−0〜15−6を含む。より具体的に言えば、3
対2コンプレッサ8b−4における全加算回路15−0
〜15−6は、そのA入力にコンプレッサ8b−3にお
ける対応のビット位置の全加算回路の和出力を受け、そ
のA入力に3対2コンプレッサ8b−3の1ビット下位
の全加算回路のキャリ出力Coを受け、そのキャリ入力
Ciに3対2コンプレッサ8b−7における同一桁の全
加算回路の和出力を受ける。
【0174】3対2コンプレッサ8b−5は、3対2コ
ンプレッサ8b−4の全加算回路15−0〜15−6に
対し1ビット上位側にシフトされた6個の全加算回路1
5−0〜15−5を含む。3対2コンプレッサ8b−4
の最下位ビットの全加算回路15−0の和出力Sは累算
器3へ最下位ビットとして与えられる。3対2コンプレ
ッサ8b−5の全加算回路15−0〜15−5は3対2
コンプレッサ8b−4における全加算回路15−0〜1
5−5のキャリ出力Coをそのキャリ入力Ciに受け、
かつ3対2コンプレッサ8b−4の全加算回路15−1
〜15−6の和出力SをそのA入力に受け、かつ3対2
コンプレッサ8b−7の全加算回路15−0〜15−5
のキャリ出力CoをそのB入力に受ける。
【0175】加算器8aはリップルキャリ型接続構成に
配置された6個の全加算回路15−0〜15−5を含
む。加算器8aの全加算回路15−0〜15−5は3対
2コンプレッサ8b−5における全加算回路15−0〜
15−5のキャリ出力CoをそのA入力に受け、かつ3
対2コンプレッサ8b−5における1ビット上位位置の
全加算回路15−1〜15−5の和出力SをそのB入力
に受ける。3対2コンプレッサ8b−5の最下位ビット
の全加算回路15−0の和出力Sは第2ビットとして累
算器3へ与えられる。加算器8aの出力が3対2コンプ
レッサ8b−4および8b−5における最下位の全加算
回路15−0の和出力Sと共に並列に累算器3へ与えら
れる。
【0176】この図20に示すように、シナプスユニッ
トを複数の系列にグループ化し、各グループにおいて並
列演算を実行することにより、シナプスユニットの接続
段数を低減することができ、ラテラル接続による遅延時
間の増大を抑制することができる。この図20に示す構
成においては、シナプスユニットは、2つのグループに
分けられており、各グループにおける最終段の3対2コ
ンプレッサ8b−3および8b−7の出力から最終加算
を得るためにさらに2段の3対2コンプレッサ8b−4
および8b−5と、加算器8aとが設けられる。この2
段の3対2コンプレッサ8bと1段の加算器8aとは、
3個のシナプスユニットのラテラル接続に対応する(レ
ジスタ出力を用いる場合であり、図17参照)。レジス
タ出力を用いない構成においては最少限1つの3対2コ
ンプレッサが必要とされる。したがって、このようなグ
ループ化する構成において、たとえば2系列(2つのグ
ループ)に分ける利点を十分に得るためには、図20に
示すように1ニューロン当りのシナプスユニット数を6
よりも大きくする必要がある(図20においてはシナプ
スユニットは8個)。
【0177】6個のシナプスユニットをラテラル接続し
た場合、レジスタ出力を利用すれば5段の3対2コンプ
レッサと1段の加算器が必要とされる。レジスタの出力
を利用しない場合、3対2コンプレッサの数は1段低減
される。この6個のシナプスユニットを2つのグループ
に分割した場合、1つのグループにおいて、遅延は、レ
ジスタ出力を利用すれば4段の3対2コンプレッサと1
段の加算器の遅延の和となり、レジスタ出力を用いない
場合には、3段の3対2コンプレッサと1段の加算器の
遅延となる。したがって、グループ化するにあたっては
1ニューロン当り最少6個のシナプスユニットが存在す
る場合に遅延低減の効果を得ることができる。
【0178】「実施例6」図21はこの発明の第6の実
施例であるニューロチップの構成を示す図である。図2
1において、ニューロチップ320は、4個のニューロ
ンユニット6b−0、6b−1、6b−2および6b−
3を含む。ニューロンユニット6b−0〜6b−3の各
々は2つのシナプスユニットを含む。すなわち、ニュー
ロンユニット6b−0はシナプスユニット9−00およ
び9−01を含み、ニューロンユニット6b−1はシナ
プスユニット9−10および9−11を含み、ニューロ
ンユニット6b−2はシナプスユニット9−20および
9−21を含み、かつニューロンユニット6b−3はシ
ナプスユニット9−30および9−31を含む。
【0179】ニューロンユニット6b−0〜6b−3は
さらに図1に示す構成と同様、累算器3、非線形処理器
4、バスドライバ5、およびメモリ11を含む。
【0180】ニューロチップ320はさらに、データ入
出力ノードD0<7;0>とバスインターフェイス回路
12−0を介して結合される内部データバス7−0と、
データ入出力ノードD1<7;0>とバスインターフェ
イス回路12−1を介して結合される内部データバス7
−1を含む。内部データバス7−0は、ニューロンユニ
ット6b−0〜6b−3における上流のシナプスユニッ
ト9−00、9−10、9−20および9−30に共通
に結合される。内部データバス7−1は、ニューロンユ
ニット6b−0〜6b−3における下流のシナプスユニ
ット9−01、9−11、9−21および9−31に共
通に結合される。
【0181】ニューロンユニット6b−0〜6b−3は
それぞれ2つのシナプスユニットを含む。したがって、
前段の2つのニューロンに対し同時にシナプス演算を実
行することができる。ニューロンユニット6b−0〜6
b−3のメモリ11の格納データを用いてシナプス演算
を実行する場合、したがってニューロンユニット6b−
0〜6b−3のうち2つのニューロンユニットが選択さ
れ、選択されたニューロンユニットのメモリのデータを
用いてシナプス演算が実行される。このため、ニューロ
ンユニット6b−0〜6b−3は2つの組に分割され
る。図21に示す構成においてはニューロンユニット6
b−0および6b−2が1つの組を構成しニューロンユ
ニット6b−1および6b−3がもう1つの組を構成す
る。
【0182】組単位での動作を実行するために、ニュー
ロンユニット6b−0および6b−2のバスドライバ5
へはイネーブル信号BE1−0が与えられ、ニューロン
ユニット6b−1および6b−3のバスドライバへはイ
ネーブル信号BE1−1が与えられる。ニューロンユニ
ット6b−0および6b−2のメモリ11へは読出制御
信号BE2−0が与えられ、ニューロンユニット6b−
1および6b−3のメモリ11へは、読出制御信号BE
2−1が与えられる。この制御信号BE1−0、BE1
−1、BE2−0およびBE2−1により、内部データ
バス7−0にはニューロンユニット6b−0および6b
−1の一方の演算結果データまたは中間結果データが伝
達され、内部データバス7−1上にはニューロンユニッ
ト6b−2および6b−3の一方の演算結果データまた
は中間結果データが伝達される。
【0183】上述の構成では、ニューロチップ320に
おけるニューロンユニットの数(♯ニューロンと記す)
と1ニューロン当りのシナプスユニットの数(以下、♯
シナプスと記す)が倍数関係を持っている。すなわち♯
ニューロン:♯シナプス=4:2である。このため、ニ
ューロンユニットは2個ずつ2つの組に分割される。一
般に♯ニューロン/♯シナプス=Nの場合、ニューロン
ユニットはN個ずつ組に分割され1つのデータバスに1
つの組のニューロンユニットが多重化されて接続され
る。シナプスユニットの数に応じて内部データバス7お
よびデータ入出力ノードの数が増加される。
【0184】「実施例7」図22はこの発明の第7の実
施例であるニューロチップの構成を示す図である。図2
2において、2つのニューロチップ16−0および16
−1が相互接続され、1つの並列演算システムを構成す
る。ニューロチップ16−0および16−1はそれぞれ
1個のニューロンユニット6bを含む。ニューロチップ
16−0および16−1におけるニューロンユニット6
bは2つのシナプスユニット9−00および9−01を
含む。このニューロンユニット6bは、同様に累算器
3、非線形処理器4、バスドライバ5、およびメモリ1
1を含む。バスドライバ5の出力およびメモリ11のデ
ータバスは内部出力バス70bに結合され、出力バッフ
ァ121を介して外部のデータバスD1<7;0>に結
合される。ニューロンユニット6bにおけるシナプスユ
ニット9−00および9−01の乗算器2(これはまた
別の2値演算回路が用いられてもよい)に対しては、内
部書込データバス70aを介して入力データDin0<
7;0>およびDin1<7;0>がそれぞれ与えられ
る。
【0185】図22に示す構成においては、2つのニュ
ーロチップ16−0および16−1は、チップ外部で相
互接続される。ニューロチップ16−0の内部出力デー
タバス70bは出力バッファ121を介して外部データ
バスD0<7;0>に結合され、ニューロチップ16−
1の内部出力データバス70bは出力バッファ121を
介して外部データバスD1<7;0>に接続される。こ
の外部データバスD0<7;0>およびD1<7;0>
はまたニューロチップ16−0および16−1のデータ
入出力ノードDin0<7;0>およびDin1<7;
0>にそれぞれ結合される。他の制御信号は図1に示す
ものと同じである。同じ符号を付された制御信号は共通
にニューロチップ16−0および16−1の外部で接続
される。この接続構成により2つのニューロチップ16
−0および16−1の接続構成は図1に示す構成と同じ
となる。
【0186】上述のように、♯ニューロンが♯シナプス
より小さい場合には、複数のニューロチップを用いて相
互接続することによりすべてのシナプスユニットを同時
に稼動して並列演算処理を実行することのできるシステ
ムを構築することができる。
【0187】♯ニューロンおよび♯シナプスの値が他の
値であっても、図21および図22に示す接続態様を拡
張して並列演算システムを構成することができる。特
に、♯ニューロンが♯シナプスの倍数である場合および
♯シナプスが♯ニューロンの倍数である場合にはシナプ
スユニットとニューロンユニットの出力の接続の多重化
または複数のニューロチップを利用することにより、等
価的に♯シナプス=♯ニューロンとすることができ、シ
ステム構成が容易である。この構成について具体的に以
下に説明する。
【0188】図23は、この発明の第7の実施例の一般
的接続構成を示す図である。図23(A)において、ニ
ューロチップ16はN個のニューロンユニット6b1〜
6bNを含む。ニューロンユニット6b1〜6bNの各
々はM個のシナプスユニット9−1〜9−Mを含む。
今、条件として、♯シナプス/♯ニューロン=M/N=
Kとする。この場合、ニューロチップ16をK個用いて
並列演算システムを構築することができる。
【0189】図23(B)はこの図23(A)に示すニ
ューロチップを複数個用いたマルチチップシステムの接
続構成を示す図である。図23(B)において、ニュー
ロチップ16−1〜16−Kのそれぞれのニューロンユ
ニットの出力がフィードバックされてニューロチップ1
6−1〜16−Kそれぞれのシナプスユニットに共通に
与えられる。このとき、ニューロチップ16−1〜16
−Kのそれぞれのニューロンユニットの出力は1つのニ
ューロチップ16におけるニューロンユニットの異なっ
たシナプスユニットに結合されるように接続される。
【0190】ニューロチップ16−1〜16−Kからは
合計N・Kの出力が生成される。このN・Kの出力が並
列にニューロチップ16−1〜16−Kに共通にフィー
ドバックされる。1つのニューロンユニットに含まれる
シナプスユニットの数すなわち♯シナプスはM(=N・
K)である。これによりこのマルチチップシステムにお
いてニューロンユニットの数と1つのニューロンユニッ
トにおけるシナプスユニットの数とが等しくなり、効率
的にシナプス演算を実行することのできる並列演算処理
システムを構築することができる。ここで、図23
(B)においてはニューロチップ16−1〜16−Kは
外部のデータバスD1〜DN〜DMを介して相互接続さ
れている。
【0191】逆に、♯ニューロンが♯シナプスよりも大
きい場合には、1つのニューロチップ内部でニューロン
ユニットをグループ化し、このグループ化されたニュー
ロンユニットを1つのデータバスに対し多重化させて選
択的に接続することにより、一度の動作サイクルにおけ
るニューロンユニットの数とシナプスユニットの数とを
等しくすることができる。この構成は、図23に示す構
成から容易に想到することができる。
【0192】この♯ニューロンの数が♯シナプスよりも
大きい場合チップ内部で多重化する構成に代えて、その
接続を切換えることによりニューラルネットを構築する
ことができる。
【0193】図24はマルチチップニューラルネットの
接続構成の一例を示す図である。図24においては、ニ
ューロチップの各々が1個のシナプスユニットを含む2
個のニューロンユニットを備える場合の接続構成が示さ
れる。
【0194】図24(A)において、ニューロチップ1
6−1は、レジスタ10−0および10−1と、シナプ
スユニットSY0およびSY1とニューロン本体NU0
およびNU1を含む。ここでニューロン本体NU0およ
びNU1は、累算器を含んでもよく、また含まなくても
よい。非線形処理器を含んでいればよい。ニューロチッ
プ16−2もニューロチップ16−1と同様の構成を備
える。この場合ニューロチップ16−2のシナプスユニ
ットSY0の出力(累算器3の出力または累算器3の前
段の出力)がニューロチップ16−1のシナプスユニッ
トSY1の入力へ結合され、またニューロチップ16−
2のシナプスユニットSY1の出力がニューロチップ1
6−1のシナプスユニットSY0の入力へ接続される。
ニューロチップ16−1においては、シナプスユニット
SY0およびSY1はそれぞれレジスタ10−0および
10−1からそれぞれ切り離される。ニューロチップ1
6−2においては、シナプスユニットSY0およびSY
1の出力は対応のニューロン本体NU0およびNU1か
ら切り離される。
【0195】ニューロチップ16−1のニューロン本体
NU0およびNU1の出力(非線形処理器の出力)の出
力はそれぞれニューロチップ16−1のシナプスユニッ
トSY0およびSY1およびニューロチップ16−2に
おけるシナプスユニットSY0およびSY1へフィード
バックされる。
【0196】上述の接続構成により、図24(B)に示
す接続構成が得られる。すなわち、ニューラルネットは
2つのニューロンユニットを含み、各ニューロンユニッ
トが2つのシナプスユニットSY0およびSY1を含
み、かつニューロンユニットの出力がシナプスユニット
SY0およびSY1へフィードバックされる。このよう
な接続構成であっても、マルチチップ全体として、♯ニ
ューロン=♯シナプスとすることができ、効率的に並列
演算処理を実行することのできるニューラルネットを構
築することができる。
【0197】図25は図24の接続形態の一般的構成を
示す図である。図25において、ニューロチップ16−
1〜16−Kの各々はM個のニューロンユニットを含
む。ニューロチップ16の1つのニューロンユニットは
N段のシナプスユニットSY1〜SYNを含む。今♯ニ
ューロン/♯シナプス=M/N=Kである。
【0198】この場合、ニューロチップ16−K−1の
各ニューロンユニットにおける最終段のシナプスユニッ
トSYNはそれぞれ隣接するニューロチップ(下位側に
隣接する)の初段のシナプスユニットSY1の入力へ接
続される。ニューロチップ16−2〜16−Kにおいて
はシナプスユニットSY1と対応のレジスタ10−0〜
10−Mとが切り離される。ニューロチップ16−Kに
おいては、ニューロン本体NU1〜NUMの出力(非線
形処理器の出力)がNを1つの組として各ニューロチッ
プのシナプスユニットへそれぞれ与えられる。これによ
りMニューロンを有し、1つのニューロン当りM個のシ
ナプスユニットを備えるマルチチップニューラルネット
ワークが構築される。
【0199】上述のように♯ニューロンが♯シナプスの
倍数の場合および♯シナプスが♯ニューロンの倍数の場
合にはニューロンユニットの出力をシナプスユニットへ
フィードバックする際に、そのニューロン出力数とシナ
プス段数とを同じにすることができ、システム構築時に
おけるチップ接続を容易に行なうことができる。
【0200】「実施例8」図26はこの発明の第8の実
施例であるニューロチップの全体の構成を示す図であ
る。図26において、ニューロチップ330は、図1に
示すニューロチップと同様の構成を備えるが、シナプス
ユニット9−00、9−01、9−10および9−11
が重みメモリ1を含まない点が異なっている。
【0201】ニューロチップ330は、この重みメモリ
に代えて、外部からシナプス荷重値W10<7;0>、
W11<7;0>、W00<7;0>およびW01<
7;0>を受ける。シナプス荷重値W00<7;0>は
シナプスユニット9−00の2値演算回路2aの一方入
力へ与えられる。シナプス荷重値W01<7;0>はシ
ナプスユニット9−01の2値演算回路2aの一方入力
へ与えられる。シナプス荷重値W10<7;0>はシナ
プスユニット9−10の2値演算回路2aの一方入力へ
与えられる。シナプス荷重値W11<7;0>はシナプ
スユニット9−11の2値演算回路2aへ与えられる。
2値演算回路2aに代えて乗算器などの他の演算回路が
用いられてもよい。
【0202】上述のように、外部からシナプス荷重値を
与える構成であっても上記実施例と同様の効果を得るこ
とができる。特にこの2値演算回路2aとして差分絶対
値回路を用いた場合、LVQモデルに従ってシナプス荷
重値の修正を容易に行なうことができ、容易にLVQモ
デルによるニューラルネットを構築することができる。
【0203】また重みメモリ1を内蔵する場合、用いら
れるメモリの種類としては、ダイナミックRAM(ラン
ダム・アクセス・メモリ)、スタティックRAM、EE
PROM(電気的に書込消去可能な読出専用メモリ)、
EPROM(電気的にプログラム可能な読出専用メモ
リ)およびマスクROMのいずれが用いられてもよい。
【0204】「実施例9」図27はこの発明の第9の実
施例であるニューロチップの要部の構成を示す図であ
る。図27においては、4つのシナプスユニット9−0
0、9−01、9−10および9−11が示される。シ
ナプスユニット9−00、9−01、9−10および9
−11はシナプス荷重値を格納する重みメモリ1を含
む。重みメモリ1はそれぞれ行および列のマトリックス
状に配列された複数のメモリセルMCを含む(図におい
ては4行4列)。重みメモリ1は、また、各々に1行の
メモリセルMCが配置されるワード線WLと、各々に1
列のメモリセルMCが接続される列線CLとを含む。ワ
ード線WLと列線CLとの交差部に対応してメモリセル
MCが配置される。メモリ1はさらに、列を選択するた
めの列選択ゲートCSと、列選択ゲートCSにより選択
された列上のデータを読出すための読出回路OBを含
む。
【0205】この重みメモリ1へは、図1の構成からも
明らかなように、アドレスA<3;0>が各シナプスユ
ニット9−00、9−01、9−10および9−11に
対し共通に与えられる。このため、図27に示す構成に
おいては、アドレスA<3;0>をデコードするアドレ
スデコーダが各重みメモリ1に対し共通に設けられる。
アドレスデコーダはアドレスビットA<0>、A<1>
をデコードして1本のワード線WLを選択する行デコー
ダ90と、アドレスビットA<2>およびA<3>をデ
コードし列選択信号を発生して列選択ゲートCSへ与え
る列デコーダ92を含む。行デコーダ90は、インバー
タ回路IV1〜IV4と、NOR回路NG1〜NG4を
含む。行デコーダ90は2対4デコーダであり、アドレ
スビットA<0>およびA<1>の論理の組合せにより
4本のワード線のうちの1本のワード線を選択状態とす
る。
【0206】列デコーダ92は、インバータ回路IV6
〜IV9およびNOR回路NG6〜NG9を含む。この
列デコーダ92も2対4デコーダであり、アドレスビッ
トA<2>およびA<3>をデコードし、メモリ1にお
ける対応の列を選択する信号を発生する。
【0207】図27においては、メモリ1へのワード線
駆動信号は図において水平方向に隣接するシナプスユニ
ット間でのメモリ1の間を延びるように配設される。こ
のときまた、列デコーダ92からの列選択信号線もシナ
プスユニット9−00、9−01、9−10および9−
11に対し共通に設けられており、水平方向において隣
接するシナプスユニットのメモリ1に延在するように配
置される。
【0208】上述のように、アドレスデコーダを共通化
することにより、チップ占有面積を小さくすることがで
きるとともに回路構成および配置が単純化される。
【0209】上述のようなアドレスデコーダの共通化
は、1つのニューロンユニット内に複数のシナプスユニ
ットが設けられる場合、および1つのニューロチップ上
に複数のニューロンユニットが存在する場合であっても
適用することができる。1つのシナプスユニットを有す
るニューロンユニットが複数個設けられる構成であって
もよい。すなわち、乗算器2または2値演算回路2aま
たは2bが複数存在する場合には、それぞれに対応して
重みメモリが設けられるため、重みメモリ1に対するア
ドレスデコーダを共通化することができる。
【0210】またアドレスデコーダは行および列両者が
共通化されるのではなく、一方のみが共通化される構成
が利用されてもよい。
【0211】
【発明の効果】以上のように、この発明によれば、ニュ
ーロンユニット内に、ニューロン状態値とシナプス荷重
値との演算を行なう第1の演算回路と、この第1の演算
回路の演算結果を入力とする第2の演算器を複数個設
け、1つのニューロンユニット内において第2の演算器
をラテラル接続したため、少数の回路要素の付加で処理
の並列度を増加させることができ、アイドリングニュー
ロンの発生が抑制された効率のよいニューラルネットを
実現することができる。
【0212】また、ニューロンの出力をシナプスユニッ
トに入力する経路が複数存在するため、ニューロンユニ
ット間のデータ転送を高速に行なうことが可能となる。
【0213】すなわち、請求項1に係る発明によれば、
たとえば加算器である第2の演算手段がラテラル接続さ
れ、最終段の第2の演算手段出力に対して非線形変換処
理を実行しているため、少数の回路要素の追加で並列度
を大幅に改善することができかつ必要最少限の非線形変
換手段のみが設けられているため、効率のよい並列演算
を行なうことのできる並列演算半導体集積回路装置を得
ることができる。
【0214】請求項2に係る発明に従えば、たとえばシ
ナプス演算を行なう複数の第1の演算手段に対し、1つ
の処理ユニット内においては互いに異なるデータを与え
ているため、並列演算を効率的に行なうことが可能とな
る。
【0215】請求項3に係る発明によれば、非線形変換
手段は、累算手段出力に対し非線形演算処理を行なって
いるため、ニューラルネットを効率的に模擬することの
できる並列演算半導体集積回路装置を得ることができ
る。
【0216】請求項4に係る発明によれば、第1の演算
手段を乗算器で構成したため、シナプス演算を実行する
ことができ、ニューラルネットを模擬することのできる
並列演算半導体集積回路装置を得ることができる。
【0217】請求項5に係る発明によれば、第1の演算
手段が差分絶対値回路で構成されるため、LVQモデル
によるニューラルネットを模擬することのできる並列演
算半導体集積回路装置を得ることができる。
【0218】請求項6に係る発明によれば、第2の演算
手段を加算器で構成されるため、加算器がラテラル接続
されることにより、複数のシナプスを有するニューロン
ユニットを表現することのできる並列演算半導体集積回
路装置を得ることができる。
【0219】請求項7に係る発明では、第2の演算手段
がその入力数よりも出力数が低減されたコンプレッサで
構成されるため、高速で加算演算を行なうことができ
る。
【0220】請求項8に係る発明によれば、高速計算さ
れたシナプス総和に対し非線形変換処理を高速で行なう
ことができ、ニューラルネットを高速で模擬する並列演
算半導体集積回路装置を得ることができる。
【0221】請求項9に係る発明によれば、入出力デー
タをビットシリアルとしているため、データ入出力ノー
ド数を大幅に低減することができ、チップ面積の小さな
並列演算半導体集積回路装置を得ることができる。
【0222】請求項10に係る発明によれば、シナプス
ユニットを複数のグループに分割しているため、高速演
算処理を行なうことのできる並列演算半導体集積回路装
置を得ることができる。
【0223】請求項11に係る発明によれば、ニューロ
ンユニットの出力を適切にシナプスユニットへフィード
バックすることができ、データ転送のバンド幅の広い高
速演算処理を行なうことのできる並列演算半導体集積回
路装置を得ることができる。
【0224】請求項12に係る発明によれば、処理ユニ
ットの出力を多重化してシナプスユニットへフィードバ
ックしているため、効率的に最適のバンド幅でデータ転
送を行なうことができるチップ面積の小さな並列演算半
導体集積回路装置を得ることができる。
【0225】請求項13に係る発明によれば、チップの
出力を外部接続によりチップのシナプスユニットへフィ
ードバックすることができるため、効率のよいマルチチ
ップ並列演算処理システムを実現することができる。
【0226】請求項14に係る発明によれば、複数のメ
モリに対してメモリセル選択手段の少なくとも一部の機
能を共通化したため、チップ占有面積の小さいかつ規則
的に同一のユニットを繰返した配置のニューロンユニッ
トを実現することができ、設計効率に優れかつチップ占
有面積の小さな半導体集積回路装置を得ることができ
る。
【図面の簡単な説明】
【図1】この発明の第1の実施例である並列演算半導体
集積回路装置の全体の構成を示す図である。
【図2】図1に示す重みメモリの格納内容を例示する図
である。
【図3】図1に示す並列演算半導体集積回路装置の動作
を例示する図である。
【図4】図1に示す並列演算半導体集積回路装置の動作
を例示する図である。
【図5】図1に示す並列演算半導体集積回路装置の動作
時におけるデータメモリの格納内容を例示する図であ
る。
【図6】図1に示す並列演算半導体集積回路装置の動作
時におけるデータメモリの格納内容を例示する図であ
る。
【図7】図1に示す並列演算半導体集積回路装置の動作
を例示する図である。
【図8】図1に示す並列演算半導体集積回路装置の動作
を例示する図である。
【図9】LVQネットワーク構成の一例を示す図であ
る。
【図10】この発明の第2の実施例である並列演算半導
体集積回路装置の全体の構成を示す図である。
【図11】図10に示す2値演算回路の他の構成例を示
す図である。
【図12】図10に示す2値演算回路のさらに他の構成
例を示す図である。
【図13】この発明の第3の実施例である並列演算半導
体集積回路装置の要部の構成を示す図である。
【図14】図13に示す乗算器の具体的構成の一例を示
す図である。
【図15】図13に示す構成を利用する並列演算半導体
集積回路装置の全体の構成を示す図である。
【図16】図13に示す構成を利用する並列演算半導体
集積回路装置の他の構成例を示す図である。
【図17】この発明における並列演算半導体集積回路装
置における加算器のラテラル接続構成の一例を示す図で
ある。
【図18】図17に示す全加算回路の構成を示す論理回
路図である。
【図19】この発明の第5の実施例である並列演算半導
体集積回路装置の要部の構成を示す図である。
【図20】この発明の第6の実施例である並列演算半導
体集積回路装置の要部の構成を示す図である。
【図21】この発明の第7の実施例である並列演算半導
体集積回路装置の全体の構成を示す図である。
【図22】この発明による並列演算半導体集積回路装置
を複数個用いる場合の接続構成を示す図である。
【図23】この発明による並列演算半導体集積回路装置
を複数個用いてシステムを構成する際のチップの相互接
続形態を示す図である。
【図24】この発明による並列演算半導体集積回路装置
を複数個用いてシステムを構成する際のチップ間接続の
形態を示す図である。
【図25】図24に示すチップ接続形態の一般的拡張形
態を示す図である。
【図26】この発明の第8の実施例である並列演算半導
体集積回路装置の全体の構成を示す図である。
【図27】この発明の第8の実施例である並列演算半導
体集積回路装置の要部の構成を示す図である。
【図28】ニューラルネットワークに用いられるニュー
ロンのモデルを示す図である。
【図29】非線形変換処理に用いられる関数の一例を示
す図である。
【図30】従来のニューロチップの全体の構成の一例を
示す図である。
【図31】ニューラルネットワークの構成の一例を示す
図である。
【符号の説明】
1 重みメモリ 2 乗算器 2a 2値演算回路 3 累算器 4 非線形処理器 5 バスドライバ 6b ニューロンユニット 7−0 内部データバス 7−1 内部データバス 8 加算器 9 シナプスユニット 100 ニューロチップ 200 ニューロチップ 20 差分絶対値回路 30 演算回路 2b 1ビット×複数ビット乗算器 13 シフタ 300 ニューロチップ 310 ニューロチップ 15 全加算回路 8a 加算器 8b コンプレッサ 320 ニューロチップ 16 ニューロチップ 330 ニューロチップ 90 行デコーダ 92 列デコーダ

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 第1のデータと予め定められた第2のデ
    ータとの予め定められた演算を行なうための複数の第1
    の演算手段と、 前記第1の演算手段に対応して設けられ、対応の第2の
    演算手段の出力を第1の入力に受ける複数の第2の演算
    手段と、 前記複数の第2の演算手段を縦続接続する第1の接続手
    段とを備え、前記第1の接続手段は上位の第2の演算手
    段の出力を次段の第2の演算手段の第2の入力へ接続す
    るように前記第2の演算手段をラテラル接続する手段を
    含み、 前記縦続接続における最終段の第2の演算手段の出力に
    非線形変換処理を行なうための非線形変換手段を備え
    る、並列演算半導体集積回路装置。
  2. 【請求項2】 前記縦続接続された第2の演算手段各々
    に対応する第1の演算手段は互いに異なるデータを前記
    第1のデータとして受ける、請求項1記載の並列演算半
    導体集積回路装置。
  3. 【請求項3】 前記非線形変換手段は、 前記最終段の第2の演算手段の出力を累算する累算手段
    と、 前記累算手段の出力に予め定められた非線形演算処理を
    行なう非線形演算手段とを含む、請求項1または2記載
    の並列演算半導体集積回路装置。
  4. 【請求項4】 前記第1の演算手段の各々は、前記第1
    のデータと前記第2のデータとの乗算を行なうデジタル
    乗算器を含む、請求項1ないし3のいずれかに記載の並
    列演算半導体集積回路装置。
  5. 【請求項5】 前記第1の演算手段は、前記第1のデー
    タと前記第2のデータとの差分絶対値を求める差分絶対
    値回路を含む、請求項1ないし3のいずれかに記載の並
    列演算半導体集積回路装置。
  6. 【請求項6】 前記第2の演算手段は、与えられたデー
    タを加算する加算手段を備える、請求項1ないし5のい
    ずれかに記載の並列演算半導体集積回路装置。
  7. 【請求項7】 各前記第2の演算手段は、互いに並列に
    配置された複数の全加算器を含み、各前記全加算器の出
    力のすべては次段の第2の演算手段の入力へ与えられ
    る、請求項1、2、4、および5のいずれかに記載の並
    列演算半導体集積回路装置。
  8. 【請求項8】 前記非線形変換手段は、 前記最終段の第2の演算手段の出力を加算する最終加算
    手段と、 前記最終加算手段の出力を累算する累算手段と、 前記累算手段の出力に非線形演算処理を行なう非線形演
    算処理手段とを含む、請求項7記載の並列演算半導体集
    積回路装置。
  9. 【請求項9】 前記第1のデータは複数ビットを含み、
    かつ前記第1の演算手段は前記第1のデータを1ビット
    ずつビットシリアルのシーケンスで順次受け、かつ前記
    非線形変換手段は複数ビットのデータをビットパラレル
    態様で並列に出力し、 前記第1の演算手段の出力と前記非線形変換手段の入力
    との間に設けられ、与えられたデータのビット位置をシ
    フトするシフト手段と、 前記非線形変換手段の並列出力をビットシリアルの出力
    に変換する並列/直列変換手段とをさらに含む、請求項
    1記載の並列演算半導体集積回路装置。
  10. 【請求項10】 前記第1の演算手段と前記第2の演算
    手段は複数グループに分割され、前記第1の接続手段は
    各前記グループ内において前記第2の演算手段を前記ラ
    テラル接続し、 各前記グループ内の最終段の第2の演算手段の出力を並
    列に受け、前記第2の演算手段と同じ演算処理を行ない
    該演算処理結果を前記非線形変換手段へ与える第3の演
    算手段をさらに備える、請求項1記載の並列演算半導体
    集積回路装置。
  11. 【請求項11】 (a)各々が、第1のデータと予め定
    められた第2のデータとの予め定められた演算を行なう
    ための複数の第1の演算手段と、(b)前記第1の演算
    手段の出力に対応して設けられ、与えられたデータに対
    し予め定められた演算処理を行なう複数の第2の演算手
    段と、前記第2の演算手段の出力が次段の第2の演算手
    段の第2の入力に接続されるように各前記第2の演算手
    段をラテラル接続する第1の接続手段と、前記ラテラル
    接続における最終段の第2の演算手段の出力に非線形変
    換処理を行なうための非線形変換手段とを各々が含む複
    数の処理ユニットと、 前記処理ユニットの各々における前記非線形変換手段の
    出力を前記第1のデータとして各前記処理ユニットに共
    通に与えるための第1の接続手段とを含み、前記第2の
    接続手段は各前記処理ユニットの非線形変換手段の出力
    の数と、1つの処理ユニットに含まれる前記第1の演算
    手段の数とに応じて決定される数だけ設けられる、並列
    演算半導体集積回路装置。
  12. 【請求項12】 1つの処理ユニットに含まれる前記第
    1の演算手段の数と前記第2の接続手段の数とは同一で
    あり、かつ前記処理ユニットの数は前記第2の接続手段
    の数のN倍であり、ただし前記Nは自然数であり、 前記N個の処理ユニットに含まれる前記非線形変換手段
    の出力を各前記処理ユニットにおける1つの第1の演算
    手段に多重的に対応づける多重化手段をさらに備える、
    請求項11記載の並列演算半導体集積回路装置。
  13. 【請求項13】 各々が半導体チップ上に形成されかつ
    各々が(a)第1のデータと予め定められた第2のデー
    タとの予め定められた演算を行なう第1の演算手段と、
    (b)前記第1の演算手段に対応して設けられ、対応の
    第1の演算手段の出力を第1の入力に受ける第2の演算
    手段と、(c)前記第2の演算手段の出力が次段の第2
    の演算手段の第2の入力に結合されるように各前記第2
    の演算手段をラテラル接続する第1の接続手段と、
    (d)前記ラテラル接続における最終段の第2の演算手
    段の出力に非線形変換処理を行なうための非線形変換手
    段とを含む複数の半導体集積回路と、 前記複数の半導体集積回路各々の前記非線形変換処理手
    段の出力を前記第1のデータとして前記半導体集積回路
    各々に共通に与えるための第2の接続手段とを含み、前
    記第2の接続手段は、1つの半導体集積回路における前
    記非線形変換手段の出力の数と1つの半導体集積回路に
    含まれる前記第1の演算手段の数とに応じて決定される
    数だけ設けられる、並列演算システム。
  14. 【請求項14】 各々が(a)第1のデータと予め定め
    られた第2のデータとの演算を行なうための演算手段
    と、(b)前記第2のデータを格納するための複数のメ
    モリセルを有するメモリとを含む複数の処理ユニット
    と、 少なくとも一部の機能が前記複数の処理ユニットに共通
    に設けられ、アドレス信号に従って各前記メモリからメ
    モリセルを選択するためのメモリセル選択手段とを備え
    る、半導体集積回路装置。
JP4201467A 1992-07-28 1992-07-28 並列演算半導体集積回路装置およびそれを用いたシステム Withdrawn JPH0652132A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP4201467A JPH0652132A (ja) 1992-07-28 1992-07-28 並列演算半導体集積回路装置およびそれを用いたシステム
US08/077,143 US5444822A (en) 1992-07-28 1993-06-16 Semiconductor integrated circuit device carrying out parallel operational processing with electronically implemented neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4201467A JPH0652132A (ja) 1992-07-28 1992-07-28 並列演算半導体集積回路装置およびそれを用いたシステム

Publications (1)

Publication Number Publication Date
JPH0652132A true JPH0652132A (ja) 1994-02-25

Family

ID=16441573

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4201467A Withdrawn JPH0652132A (ja) 1992-07-28 1992-07-28 並列演算半導体集積回路装置およびそれを用いたシステム

Country Status (2)

Country Link
US (1) US5444822A (ja)
JP (1) JPH0652132A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016157233A (ja) * 2015-02-24 2016-09-01 国立大学法人広島大学 Lvqニューラルネットワーク
CN106599336A (zh) * 2015-10-16 2017-04-26 三星电子株式会社 半导体工艺模拟装置及方法以及计算装置
JP2018116419A (ja) * 2017-01-17 2018-07-26 株式会社デンソー データ処理装置及びニューラルネットワークシステム
WO2018189620A1 (ja) * 2017-04-14 2018-10-18 株式会社半導体エネルギー研究所 ニューラルネットワーク回路
JP2019522271A (ja) * 2016-05-26 2019-08-08 ザ ガバニング カウンシル オブ ザ ユニバーシティ オブ トロント ディープニューラルネットワークについての加速器
JP2019537093A (ja) * 2016-09-30 2019-12-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータ
JP2020074099A (ja) * 2017-04-19 2020-05-14 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッドShanghai Cambricon Information Technology Co.,Ltd. 処理装置と処理方法
JP2022071015A (ja) * 2015-05-21 2022-05-13 グーグル エルエルシー ニューラルネットワークプロセッサにおけるバッチ処理

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0694853B1 (en) * 1994-07-28 2002-05-02 International Business Machines Corporation Circuit for pre-charging the input vector components in a free neuron circuit during the recognition phase
KR20000052725A (ko) * 1996-10-23 2000-08-25 제이. 알. 드로우일래드 비트-시리얼에 근거한 회귀성 뉴로프로세서를 포함하는 차량용 엔진 불발 감지 장치
US6882992B1 (en) * 1999-09-02 2005-04-19 Paul J. Werbos Neural networks for intelligent control
US7818273B2 (en) * 2007-09-18 2010-10-19 International Business Machines Corporation System and method for cortical simulation
GB0811057D0 (en) * 2008-06-17 2008-07-23 Univ Ulster Artificial neural network architecture
JP2010044101A (ja) * 2008-08-08 2010-02-25 Toshiba Corp パターン予測方法、プログラム及び装置
FR3011659B1 (fr) * 2013-10-04 2015-10-16 Commissariat Energie Atomique Circuit electronique, notamment apte a l'implementation d'un reseau de neurones, et systeme neuronal
JP6623947B2 (ja) * 2016-06-17 2019-12-25 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP6773970B2 (ja) * 2016-09-09 2020-10-21 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
US10387298B2 (en) 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
US11238334B2 (en) 2017-04-04 2022-02-01 Hailo Technologies Ltd. System and method of input alignment for efficient vector operations in an artificial neural network
US11544545B2 (en) 2017-04-04 2023-01-03 Hailo Technologies Ltd. Structured activation based sparsity in an artificial neural network
US11615297B2 (en) 2017-04-04 2023-03-28 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network compiler
US11551028B2 (en) 2017-04-04 2023-01-10 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network
US11556771B2 (en) * 2017-04-10 2023-01-17 Semiconductor Energy Laboratory Co., Ltd. Semiconductor neural network device including a synapse circuit comprising memory cells and an activation function circuit
JP7127018B2 (ja) * 2017-05-19 2022-08-29 株式会社半導体エネルギー研究所 半導体装置、及び、集積回路
CN109993289B (zh) * 2017-12-30 2021-09-21 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
US10636484B2 (en) * 2018-09-12 2020-04-28 Winbond Electronics Corporation Circuit and method for memory operation
KR20200094534A (ko) 2019-01-30 2020-08-07 삼성전자주식회사 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치에서 멀티-비트 연산을 처리하는 방법
US11562212B2 (en) * 2019-09-09 2023-01-24 Qualcomm Incorporated Performing XNOR equivalent operations by adjusting column thresholds of a compute-in-memory array
US11874900B2 (en) 2020-09-29 2024-01-16 Hailo Technologies Ltd. Cluster interlayer safety mechanism in an artificial neural network processor
US11237894B1 (en) 2020-09-29 2022-02-01 Hailo Technologies Ltd. Layer control unit instruction addressing safety mechanism in an artificial neural network processor
US11221929B1 (en) 2020-09-29 2022-01-11 Hailo Technologies Ltd. Data stream fault detection mechanism in an artificial neural network processor
US11263077B1 (en) 2020-09-29 2022-03-01 Hailo Technologies Ltd. Neural network intermediate results safety mechanism in an artificial neural network processor
US11811421B2 (en) 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights safety mechanism in an artificial neural network processor

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2625347B1 (fr) * 1987-12-23 1990-05-04 Labo Electronique Physique Structure de reseau de neurones et circuit et arrangement de reseaux de neurones
US5115492A (en) * 1990-12-14 1992-05-19 General Electric Company Digital correlators incorporating analog neural network structures operated on a bit-sliced basis

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016157233A (ja) * 2015-02-24 2016-09-01 国立大学法人広島大学 Lvqニューラルネットワーク
JP2022071015A (ja) * 2015-05-21 2022-05-13 グーグル エルエルシー ニューラルネットワークプロセッサにおけるバッチ処理
CN106599336A (zh) * 2015-10-16 2017-04-26 三星电子株式会社 半导体工艺模拟装置及方法以及计算装置
JP2021144727A (ja) * 2016-05-26 2021-09-24 タータン エーアイ リミテッド ディープニューラルネットワークについての加速器
JP2019522271A (ja) * 2016-05-26 2019-08-08 ザ ガバニング カウンシル オブ ザ ユニバーシティ オブ トロント ディープニューラルネットワークについての加速器
KR20200067915A (ko) * 2016-05-26 2020-06-12 더 가버닝 카운슬 오브 더 유니버시티 오브 토론토 심층 신경망용 가속기
JP2019537093A (ja) * 2016-09-30 2019-12-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータ
US11270193B2 (en) 2016-09-30 2022-03-08 International Business Machines Corporation Scalable stream synaptic supercomputer for extreme throughput neural networks
JP2018116419A (ja) * 2017-01-17 2018-07-26 株式会社デンソー データ処理装置及びニューラルネットワークシステム
WO2018189620A1 (ja) * 2017-04-14 2018-10-18 株式会社半導体エネルギー研究所 ニューラルネットワーク回路
JPWO2018189620A1 (ja) * 2017-04-14 2020-02-27 株式会社半導体エネルギー研究所 ニューラルネットワーク回路
US11568223B2 (en) 2017-04-14 2023-01-31 Semiconductor Energy Laboratory Co., Ltd. Neural network circuit
JP2020074099A (ja) * 2017-04-19 2020-05-14 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッドShanghai Cambricon Information Technology Co.,Ltd. 処理装置と処理方法

Also Published As

Publication number Publication date
US5444822A (en) 1995-08-22

Similar Documents

Publication Publication Date Title
JPH0652132A (ja) 並列演算半導体集積回路装置およびそれを用いたシステム
Chen et al. ReGAN: A pipelined ReRAM-based accelerator for generative adversarial networks
JP3096387B2 (ja) 数値演算処理装置
JP3407265B2 (ja) ニューロン回路
US9489622B2 (en) Event-driven universal neural network circuit
JP3407266B2 (ja) ニューラル・ネットワークおよびニューラル・チップ
JP3798451B2 (ja) 事前装填回路
JP2663996B2 (ja) ニューラル・ネットワーク用の仮想ニューロコンピュータ・アーキテクチュア
US6654730B1 (en) Neural network arithmetic apparatus and neutral network operation method
JPH08171543A (ja) デイジー・チェーン回路
JPH08171541A (ja) 集合回路
EP0504932A2 (en) A parallel data processing system
CN110543939B (zh) 一种基于fpga的卷积神经网络后向训练的硬件加速实现装置
JPH0612393A (ja) マルチプロセッサデータ処理システム
JP2018085063A (ja) 情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法
JP2575565B2 (ja) Spin:順次パイプライン式ニューロコンピュータ
JPH05242065A (ja) 情報処理装置及びシステム
US5243688A (en) Virtual neurocomputer architectures for neural networks
Hu et al. A co-designed neuromorphic chip with compact (17.9 KF 2) and weak neuron number-dependent neuron/synapse modules
Dang et al. An efficient software-hardware design framework for spiking neural network systems
JPH076146A (ja) 並列データ処理システム
US20220036196A1 (en) Reconfigurable computing architecture for implementing artificial neural networks
EP0595033A2 (en) High speed segmented neural network and fabrication method
CA2135857A1 (en) Neural network utilizing logarithmic function and method of using same
JPH04316153A (ja) ニューロプロセッサ

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19991005