JP2703010B2 - ニユーラルネツト信号処理プロセツサ - Google Patents

ニユーラルネツト信号処理プロセツサ

Info

Publication number
JP2703010B2
JP2703010B2 JP63323302A JP32330288A JP2703010B2 JP 2703010 B2 JP2703010 B2 JP 2703010B2 JP 63323302 A JP63323302 A JP 63323302A JP 32330288 A JP32330288 A JP 32330288A JP 2703010 B2 JP2703010 B2 JP 2703010B2
Authority
JP
Japan
Prior art keywords
processor
input
output
data
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP63323302A
Other languages
English (en)
Other versions
JPH02170263A (ja
Inventor
徹 馬路
秀則 井内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP63323302A priority Critical patent/JP2703010B2/ja
Priority to US07/455,141 priority patent/US5091864A/en
Publication of JPH02170263A publication Critical patent/JPH02170263A/ja
Application granted granted Critical
Publication of JP2703010B2 publication Critical patent/JP2703010B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、ニユーラルネツト信号処理プロセツサすな
わち、生物の神経回路網をモデルとしたニユーロ・コン
ピユーテイングを実現するにルニユーラルネツト用LSI
プロセツサに関するものである。このようなプロセツサ
の具体的利用分野としたは、多量の入力情報をもとに高
速かつフレキシブルに判断を行なう必要がある画像認
識,音声認識,音声合成等広範囲の分野が考えられる。
〔従来の技術〕
この分野に関係する技術の技術としては、 (1)小池他、「専用ハードウエアーによるニユーロ・
コンピユーテイング」情報処理学会誌,Vol.29,No.9,p97
4−983,1988年9月 (2)S.Y.Kung,“Parallel Architectures for Artiic
ial Neural Nets",Digest of the IEEE International
Conference on Systoric Arrays,1988 の公知例がある。
ニユーラルネツトは簡単な関数計算を行なう計算機ユ
ニツトが互いに重み付きの方向性リンクで結合されネツ
トワークを構成し、入力情報を上記ネツトワークで並列
的に処理するものである。ここには従来の計算機に見ら
れるプログラムは存在せず、上記重み及び関数を初期値
設定または学習によつて設定することにより、各種処理
に対応するものである。
重みの付加及び関数計算は第25図に示すニユーロン回
路により実行される。このニユーロンが複数個結合され
てニユーラルネツトを構成する。この回路にN個の入力
{X1,X2,……XN}を与えることにより、(1)式に示し
た出力を得る。
ここで、係数mijが入力Xjに重みを付加し、f( )
が関数値を与える。
f( )はニユーラル・ネツトの収束性を決めるうえ
で大切な非線形関数であり、生物のニユーロンに類似し
た(2)式に示すジグモイド関数が一般によく使用され
る。
f(u)=1/(1+EXP(−u)) ……(2) 一層ニユーラルネツトの場合、上記ニユーロン回路は
第26図に示したように結合される。このようなニユーラ
ルネツトを用いることにより、画像や音声のパターン・
マツチングが取れる。マツチングすべきパターンを各ニ
ユーロンの重み係数に設定される。
ここで、入力X1〜XNは25個の全ニユーロン25に供給さ
れ、各ニユーロンからはY1〜YMが並列に出力される。こ
こで、各入力はM個のニユーロン(ノード)を駆動する
必要がある。また総配線数(リンク数)はN*Mであ
り、非常に多い。
例えば、100×100画素の入力パターンを受けて、これ
を1000種類のパターンのいずれかに分類するためには最
低でもN=10,000個の入力端子と、M=1,000個のニユ
ーロンが必要とされる。この場合各入力端子は1,000個
のニユーロンを駆動する必要があり、総配線数も10,00
0,000本にもなる。
このようなニユーラルネツトは、アナログICによる実
現するアプローチが最も直接的である。しかし、公知例
(1)にもあるとおり、現在の技術では配線の多さ等か
ら集積度が上がらず、1チツプに数10から数百のニユー
ロンしか乗らない。従つて、先の例では最低でも10チツ
プ必要となる。チツプ間でアナログ値を精度良く伝達す
るにも高度の技術を要する。
また、重みは抵抗あるいはトランジスタのコンダクタ
ンスで実現しなければならず、重み係数のプログラマビ
リテイが要求される学習可能なニユーラルネツトの実現
は困難である。
デイジタル回路を用いてニユーラルネツトを実現の場
合は上記のチツプ間信号伝達,重み等のプログラマビリ
テイの問題は解決する。この場合、1個のニユーロンを
1台の計算ユニツトで処理する場合と、複数のニユーロ
ンを仮想的に1台の計算ユニツトで処理する場合とがあ
る。前者のアプローチでは1台ごとに積和演算機能と関
数機能を設ける必要があるためどうしてもハード量は大
きくなる。これにより数万ニユーロンが限界である。
後者のアプローチではハード量の問題はなくなるが、
1台の複数ニユーロンを処理する必要があるためアナロ
グ処理方式に比較して速度が落ちる。しかし、プログラ
ムの入り替えのみにより各種モデルに対応できるため現
在提案されているデイジタル処理方式のほとんどすべて
がこの方式となつている。
ニユーラル・ネツトではニユーロン間の接続数の多さ
から、上記いずれの場合もプロセツサ間の通信が多く、
接続方法の選択が系全体の性能に大きく影響する。
現在、後者の方式がDSP(デイジタル信号処理プロセ
ツサ)や浮動小数点演算プロセツサにより実現されてい
る。しかし、このような従来のチツプをそのまま用いる
ため、最新のマイクロプロセツサM68020及びその浮動小
数点演算コプロセツサを15組も用いてもその性能は高々
500kリンク/秒に制限されている。ここで、1リンク処
理は1個の重みを計算することに相当する。
公知例(1)にあるNewManのように8個のデータフロ
ープロセツサを用いた場合はこの速度を8Mリンク/秒に
まで向上できるが、この中には各プロセツサエレメント
に2個の浮動小数点演算プロセツサが使用されており計
16個も使用されることになる。
ところで、画像信号をリアルタイムで処理する場合、
例えば512×512=256k画素/フレームのデータを毎秒15
フレームの速度で処理する必要がある。これを第26図に
示したもつとも簡単なニユーロンM個の1層ニユーラル
ネツトで処理する場合に要求される処理速度は3.8MMリ
ンク/秒となる。ニユーロン数Mを100個としても380M
リンク/秒の超高速処理が要求される。これを従来のチ
ツプで処理することは不可能である。また出来たとして
もその回路規模は非常に大きくなり実用的でない。
この課題を解決する一つのアプローチとして公知例
(2)に述べてあるようなシストリツク・アレイのしよ
うが考えられている。第27図は該アレイに使用されてい
る単位シストリツク・プロセツサ・エレメントを、また
第28図はこれを用いて先程の第26図に示した1層ニユー
ラルネツトを構成した例を示してある。各プロセツサ・
エレメント136は、係数を保持すると共に、読みだした
後レジスタ内データの配置を1個ずつシフトするシフト
・レジスタ133,入力データ{Xj}(j=1〜N)に重み
係数mijをかけるための乗算器2、上記乗算結果を累積
するための加算器3及びアキユムレータ4,積和(累積結
果)14に非線形関数処理f( )を与えるための非線形
関数発生機構135、及びN個の入力データの積和が完了
した段階でこれを出力端子Qiに出力するための入出力切
換えマルチプレクサ134から構成されている。
第28図に示したシストリツク・アレイ使用の1層ニユ
ーラルネツトはM個のシストリツク・プロセツサ・エレ
メント136を接続した形となつており、入力データ{X
j}を巡回するための入力データ巡回線138により左端の
プロセツサSPE−1から右端のプロセツサSPE−Mにデー
タを転送している。入力データ17はこの線138に供給さ
れ、出力データ18も同巡回線138から出力される。この
ように接続は巡回線138を除いて隣接プロセツサ間に限
定されているため非常に配線数が少なく、またこのため
信号の転送速度も速い。
まず1層ニユーラルネツト上のニユーロン数Mが入力
データ数(第26図のニユーラルネツトの入力端子数)N
に等しい場合、第30図を用いて上記回路の動作の概略を
説明する。まず、時刻T0からT1の間に左端から1システ
ム・クロツクごとに入力データ{Xj}が順次入力され
る。なおシステム・クロツクの周期はT(秒)である。
1クロツクごとに各プロセツサ136の右から入つたデー
タ{Xj}は左隣のプロセツサに転送される。このように
して、時刻T0からN*T(秒)後に各プロセツサにデー
タが行き渡り、各プロセツサが演算処理を開始する。な
お、各プロセツサにデータ{Xj}を並列に設定する手段
がある場合はこのデータ転送(T0−T1間)の処理は不要
である。しかし、これには入力データ数N個だけの配線
が必要であり、配線数が少ないというシストリツクアレ
イの特徴が生せない。
演算処理と同時に1クロツクごとに入力データを左隣
のプロセツサに転送する。一番左端のプロセツサSPE−
1は入力データ巡回線138を介して入力データを右端の
プロセツサSPE−Mに転送する。
この際、プロセツサSPE−1は入力データがX1,X2,X3
……の順で入つてくるため、これに合わせて係数シフト
レジスタ133からの係数mijはm1M,mM2,mM3……の順で読
みだす。しかし、2番目のプロセツサSPE−2にはX2,X
3,X4……の順でデータが入つてくるため、係数mijもm2
2,m23,m24……m21の順で読みだす。この係数読みだし順
序を容易に行なうために係数シフトレジスタ133が使用
されている。しかし、係数設定時にはこのようなプロセ
ツサ間での係数読みだし順序を意識する必要があり、設
定処理が面倒である。
演算処理速度としては毎クロツクごとに並列にM個の
重み演算を処理できる。つまり、毎クロツクごとにMリ
ンクの計算処理を実行できる。今、1μmCMO技術を用い
て上記チツプを製作した場合、約20MHzのクロツクでプ
ロセツサを動作させることが可能である。また、10×10
mm2のチツプ上には上記プロセツサが約100個集積でき
る。これによりこのようなチツプのニユーラルネツトと
しての処理能力は2000Mリンク/秒にもなり先程の画像
等の高速信号のリアルタイム処理が可能となる。
第29図は入力データ数Nがプロセツサの数Mよりも多
い場合の動作例を示している。この場合、時刻T1から演
算処理を開始できるが、これと同時に入力データ巡回線
138を介してデータを左から右に巡回しようにも、未だ
入力データXM+1,……XNが入つてくるため、T1〜T4間で
データの競合が起こり回路が正常に動作しない。({X
j}の各プロセツサへの並列入力が可能な場合は問題な
いが配線の多さから実用的ではない)また、先程のM=
Nの場合にも当てはまるが、出力データ{Yi}も同信号
線138に乗せているため、出力データ{Yi}が転送され
ている間(時刻T2〜T3間)は次のデータ{Xj}が入力で
きない。
以上、公知例のシストリツクアレイに関してまとめる
と、並列処理により画像のリアルタイム処理も可能な高
速処理が可能であり、また隣接プロセツサ間の配線のみ
で複雑なニユーラルネツトの接続が実現できるという特
徴がある。その一方で、入力データ{Xj}と出力データ
{Yi}が同一信号線を用いるため、データの競合が起こ
るという問題と、係数mijの読みだし順序がプロセツサ
間で異なるため、係数の設定等に特別の工夫が必要であ
るといつた問題点がある。また、該公知例ではホツプフ
イールド及びバツクプロパゲーシヨン以外の一般的なニ
ユーラルネツトへの展開にも言及されていない。
〔発明が解決しようとする課題〕
本発明は本発明者による上記の如き検討結果を基にし
てなされたものであり、その目的とするところは下記の
如き技術課題を解決することにある。
(1)従来技術(公知例(2))は、隣接プロセツサの
みの結線でニユーラルネツトの複雑な結線と同機能を実
現できたが、入力データ及び出力データを同一信号線に
乗せるため、出力データの転送を待たないと次の入力デ
ータが転送できないといつた転送能力上から来る速度の
問題点があるとともに、やはり上記データ転送路上のデ
ータ競合のため、入力データ数Nがプロセツサの数Mよ
りも多い場合そのままでは適用できないといつた問題が
生じる。従つて、本発明の第1の目的はこのようなデー
タ転送路上のデータ競合を防ぐことにより、高速のデー
タ転送を可能とすると共に、入力データ数N及びプロセ
ツサの数Mの制約を受けない。より汎用の高速大規模ニ
ユーラルネツトを実現することにある。
(2)公知例(2)では、巡回線138(第28図)によ
り、初段プロセツサから最終段プロセツサにデータを巡
回する必要があるが、大規模ニユーラル・ネツトではこ
のような距離的に離れたプロセツサ間での同期をとるこ
とは困難である。従つて、本発明の第2の目的はこのよ
うな巡回線を避け、大規模ニユーラルネツトにも適用可
能とすることである。
(3)公知例(2)では各プロセツサごとに非線形関数
発生機構を設けていたが、ニユーロンを最適状態で動作
させるためにはこの非線形特性を可変とする必要があ
る。この変更は各プロセツサ個別に行なう必要はなくニ
ユーラルネツト層単位で行なえばよい。公知例(2)の
場合は全プロセツサに対して上記特性を書き換える必要
があり、時間がかかる。従つて、本発明の第3の目的は
各重み係数と共に非線形関数(シグモイド関数等)のプ
ログラミングを高速に行なうことである。
(4)公知例(2)で示されるプロセツサをホツプフイ
ールド型ニユーラルネツト,多層ニユーラルネツト及び
バツクプロパゲーシヨン型ニユーラルネツトに適用する
ためには各々に対して接続形態を変更するなどハードウ
エアの変更が必要である。従つて、本発明の第4の目的
はハードウエアを変更することなく、プログラミングの
みで各種ニユーラルネツトに対応可能な汎用性を持つプ
ロセツサを実現することである。
(5)公知例(2)では1ニユーロンを実現するため
に、乗算器,加算器が1組必要であるが、速度の要求さ
れないシステムではハードウエアが大きすぎて経済的で
ない。従つて、本発明の第5の目的は、応用システムに
合わせた速度を持つニユーロン・プロセツサを最小のハ
ードウエアで実現することである。
(6)公知例(2)ではニユーラルネツトの複雑で膨大
な接続配線を隣接プロセツサ間の唯1本の信号線で実現
しているが、このために逆に冗長性がなくなり、1箇所
の配線切れや、1個のプロセツサの欠陥のみでニユーラ
ルネツト全体の機能が停止してしまうといつた欠点を有
する。従つて、本発明の第6の目的はこのような断線や
欠陥ニユーロンに対して耐性を持たせることにある。
〔課題を解決するための手段〕
上記の如き本発明の種々の目的を達成するため、本発
明は下記の如き手段を有するものである。
(1)第1の目的は、入力データ及び出力データに独立
した信号線を持つシストリツク・アレイでニユーロンの
処理を行なうことにより達成される。
(2)第2の目的は、入力データ系列{Xj}(1≦j≦
N)に対して全プロセツサが同時に積和演算処理を開始
することなく、初段プロセツサから順次処理を開始する
回路構成及び処理方式を用いることにより達成される。
(3)第3の目的は、1層ニユーラル・ネツトにおいて
入力データと重み係数を乗算し、1ニユーロン分の乗算
結果を累積する積和演算はシストリクアレイで行ない、
非線型処理は1層ごとにただ1個設けた非線形関数ルク
アツプテーブルを用いて行なうことにより達成される。
さらにここでは各重み係数メモリ,非線系関数ルツクア
ツプテーブルをホストCPUよりアクセスするバスライン
を設けて特性の変更を容易にしている。
(4)第4の目的は、プロセツサごとに入力データ,出
力データ及び非線形関数ルツクアツプテーブルをバイパ
スできる構成にしておき、そのパスをプログラマブルと
することにより達成される。
(5)第5の目的は、1プロセツサに複数のニユーロン
の重み係数を記憶する係数メモリ,複数ニユーロンの積
和演算を制御する機構を設けること、または並列乗算器
のかわりに直列乗算器を用いることにより達成される。
(6)第6の目的は、上記に加え、テストデータ発生機
構及び検出機構を設けることにより達成される。
〔作用〕
(1)第1の解決手段において、入力データと出力デー
タの信号線を分離したことにより、これらのデータ競合
がなくなり、入力データと出力データを並行して転送す
るなどの高速処理が可能になるとともに、ニユーロン数
の制約を受けることなく、より汎用のニユーラルネツト
が構成できる。
(2)第2の解決手段により、公知例(2)のように全
プロセツサの同時信号処理開始のためのデータ循環が不
要となり、初段プロセツサ/最終段プロセツサ間の信号
データの同期が不要となる。これにより大規模ニユーラ
ルネツトにも対応可能となる。また、一般的には1セツ
トに入力データ{Xj}(1≦j≦N)に引き続いて次の
入力データ・セツト{X′j}(1≦j≦N)がすぐ入
力されるのでプロセツサが休止している期間はない。
(3)第3の解決手段により、バスラインを介して任意
の重み係数及び非線形関数のプログラミングが可能であ
る。また、各層のプログラムすべき非線形ルツクアツプ
テーブルを唯一個にしたことにより、上記バスラインの
負荷を軽減すると共にプログラミングすべき箇所を大幅
に低減し、特性の変更を高速に行なうことを可能にし
た。
(4)第4の解決手段においては信号のバイパス経路を
ニユーラルネツト・モデルにしたがつてプログラミング
することにより、同一ハードウエアで1層ネツト,多層
ネツト,巡回型ネツト,分割型ネツト等が構成可能とな
る。
(5)第3の解決手段においては、1組の乗算器,加算
器を複数ニユーロン処理に共用できるため、ハード量の
節約が出来る。また、処理速度に対応して1プロセツサ
の処理ニユーロン数を調整(プログラミング)できる。
また、直列乗算器を用いることにより、加算器のみで乗
算も実現できるため、同様にハード量の節約が出来る。
〔実施例〕
第1図は本発明の各種ニユーラルネツトに共通で使用
できるシストリツク・プロセツサ・エレメント(以下SP
Eと略する)であり、第3図はその動作タイミングを示
したものである。本プロセツサで非線形関数機能以外の
1ニユーロンの機能をすべて果たす。また、第2図は上
記SPEをM個用いて構成したN入力,Mニユーロンの1層
ニユーラル・ネツトであり、第4図はその動作タイミン
グを示している。
i番目のニユーロンの機能を受け持つ第1図に示した
シストリツク・プロセツサ・エレメントSPEiは、i番目
のニユーロンの重み係数{mij}(1≦j≦N)を記憶
するための係数メモリ1,入力データ{Xj}(1≦j≦
N)に重み係数を乗算するための乗算器2、上記乗算結
果とアキユムレータ4とを加算する加算器3、クロツク
CK1によりラツチを行なう前段部とクロツクCK2によりラ
ツチを行なう後段部から構成されるマスタースレーブ型
アキユムレータ4、アキユムレータの累積結果(ニユー
ロン積和出力)14または前段からの積和出力データ10の
いずれかを選択するためのマルチプレクサ12,シストリ
ツク・アレイとしてパイプライン処理を行なうためのCK
1,2により制御されるマスタースレーブ型の出力データ
ラツチ7、同じくパイプライン処理用に入力データに遅
延を与えるための第1の入力データラツチ5、及び上記
累積結果とタイミングを合わせるための第2の入力デー
タラツチ6から構成されている。尚、図示していない
が、これらのラツチ5,6,7はノンオーバラツプ2相クロ
ツクCK1,CK2により駆動されることにより、所定の遅延
を与えるものである。
Qin端子は前段の同様な構成のSPEi−1からの積和出
力{S1,S2……Si−1}を受ける端子、Dinはニユーロン
の入力データ{X1,X2……}を前段のSPEi−1から受け
る端子、Qoutは前段からの積和出力{S1,S2……Si−
1}と共に、SPEiからの積和出力Siをも順次次段のSPEi
+1に送り出すための端子、Doutはニユーロンの入力デ
ータ{X1,X2……}を次段のSPEi+1に送り出すための
端子である。
第3図を用いて1SPEの動作を説明する。
SPEはノンオーバラツプ2相クロツクCK1,2で駆動され
る。時刻T1でCK2が立ち上がると同時に入力端子Dinを介
して前段のSPEi−1から最初の入力データX1が入力され
る。これに合わせて、上記入力データに乗算すべき重み
係数mi1(i番目のSPEの1番目の入力データに対する係
数)が係数メモリ1から読みだされる。乗算器2にて上
記入力データX1と重み係数mi1が乗算され、その乗算結
果mi1*X1が加算器3に渡される。
乗算器2の出力mij*Xjは加算器3及びアキユムレー
タ4により累積される。ここでアキユムレータ4として
は2相クロツクCK1,CK2により駆動されるマスター・ス
レーブ型のフリツプフロツプになつている。このため、
CK1がハイレベルとなつて加算器3からのデータをアキ
ユムレータ4の前段にラツチする時点でも、アキユムレ
ータ4の後段出力は前回にラツチされた信号を保持でき
る。加算器3はこの保持されたアキユムレータ4の後段
の出力を用いて計算している。
時刻T1でのアキユムレータ4の後段の出力(累積値)
は0であり、この値と乗算器2からの出mil*X1とが加
算器3により加算されて時刻T1,T2間のCK1がハイレベル
になることによりアキユムレータ4の前段にラツチされ
る。
Dinからの入力データは2段の入力データラツチ5,6を
介してそのまま次段のSPEi+1に転送される。これによ
り、2クロツク周期分の遅延を受ける。
i番目のプロセツサSPEiでの累積(ニユーロン積和出
力): が終了しないうちは、Qinから入力される前段からの出
力データ(ニユーロン積和出力){……Si−2,Si−1}
がそのままマルチプレクサ12及び出力データラツチ7を
介し、1クロツク周期分の遅延を受けて出力データ端子
Qoutに転送される。
時刻T2ではCK2が立ち上がり、Din端子を介して前段か
ら入力データX2が取り込まれると共に、これに対応した
係数mi2が係数メモリ1から読みだされる。これらは乗
算器2により乗算されて乗算結果mi2*X2を得る。
同じく時刻T2でのクロツクCK2の立ち上がりに合わせ
て、先にアキユムレータ4の前段にラツチされたデータ
mi1*X1がアキユムレータ4の後段の出力に現われ、乗
算器2の出力mi2*X2と加算され、続くCK1によりその加
算結果mil*X1+mi2*X2がアキユムレータ4の前段にラ
ツチされる。
以下、時刻T[N+1]で以下のように累積がアキユ
ムレータ4の出力に現われ、一連の積和演算が完了す
る: 累積が完了した時点で累積結果Siがマルチプレクサ12
を介して出力データ・ラツチ7に転送される。このラツ
チ7により1段(1クロツク周期分)遅延され、時刻T
[N+2]で本ニユーロンの積和出力Siが出力端子Qout
を介して次段に転送される。時刻T[N+1],T[N+
2]間以外ではマルチプレクサ12は前段からの出力信号
Sk(k<i)を出力データラツチ7に伝える。
第2図は上記シストリツク・プロセツサ・エレメント
SPEをM個用いて構成したMニユーロン,N入力,M出力の
1層のニユーラル・ネツトであり、第4図はその動作タ
イミングを説明している。
第2図に示した各シストリツク・プロセツサ・エレメ
ントSPE−iは第26図の従来の1層ニユーラルネツトの
ニユーロンNiに対応している。また従来のニユーラルネ
ツトの入出力が並列に行なわれているのに対して、入力
{Xi}は入力端子D0から直列に入力され、出力{Yi}は
シグモイド関数ルツクアツプテーブル16から直列に得ら
れる。なお、ニユーラルネツト積和出力線20には、シグ
モイド関数に通す前の積和出力{Si}が得られる。
各SPEの入力データ送出端子Doutは次段のSPEの入力デ
ータ受け取り端子Dinに接続され、出力データ送出端子Q
outは次段の出力データ受け取り端子Qinに接続されてい
る。初段SPE−1の入力データ受け取り端子Din(D0)に
は一層ニユーロンの入力データ{Xj}が毎クロツクごと
に入力される。また、初段SPE−1の出力データ受け取
り端子Qin(Q0)はデータが入力されず接地される。
最終段SPE−Mの入力データ送出端子Doutは解放状態
であり、出力データ送出端子Qoutはシグモイド関数ルツ
クアツプテーブル16の入力端に接続されている。出力デ
ータ送出端子Qoutから一層ニユーラルネツトの積和出力
{Si}が得られると共に、シグモイド関数ルツクアツプ
テーブル16の出力端からは以下の一層ニユーラルネツト
の出力が得られる: ただしシグモイド関数f( )は以下の式で示され
る: f(u)=1/(1+EXP(−u)) 第2図に示したように、配線は隣接SPE間に見られる
のみでありニユーロンの数Mの倍の2M本のみとなつてい
る。ここでは、入力データ,出力データ用に信号線を共
有する第27,28図の公知例と異なり、各SPE間はそれぞれ
入力データに一本、出力データに一本の計2本のデータ
線で結合されている。
また、各プロセツサ,エレメントごとに非線型関数発
生機構を有する第27,28図の公知例と異なり、非線形性
を決めるシグモイド関数ルツクアツプテーブル16が最終
段に1個有ればよいため、非線形特性の変更には1個の
シグモイド関数ルツクアツプテーブルのみの書き換えで
済むため、特性の変更が迅速に行なえる。
なお、非線形特性f(u)の変更としては例えば以下
の式のaの値を変えることが考えられる: f(u)=1/(1+EXP(−a*u)) aの値が小さくなるに従つて関数f(u)はなだらか
となり、上記ニユーラルネツトを用いたシステムの応答
速度が遅くなる。
以下、第2図,第4図を用いて1層ニユーラルネツト
の動作を説明する。第4図で示すように、シストリツク
・アレイの初段プロセツサの入力D0には、時刻T1から入
力データX1,X2,……XNがシリアルに周期Tで入力され
る。SPE2へは2段(2クロツク)遅延されたデータD1が
時刻T3より入力される。SPE3へはさらに2段(2クロツ
ク)遅延されたデータD2が時刻T5より入力される。以下
同様に入力データは1SPEを通過するごとに2段遅延され
て転送される。
各SPE内ではNクロツク(N周期)かけて1ニユーロ
ン分の積和計算を行なう。
SPE−1で計算される第1ニユーロンの積和計算結果S
1は、第3図でも示したように時刻T[N+2]に出力
データQ1としてSPE2に渡される。その後、積和出力{S
i}は1SPEを通過するごとに1クロツク(1段)だけ遅
延されて転送される。これにより積和出力S1がSPE2から
SPE3に転送される時刻はT[N+3]となる。
さて、ここで出力データ{Si}(1≦i≦M)と入力
データ{Xj}(1≦j≦N)とのタイミング関数につい
て言及する。シストリツク・アレイはパイプライン処理
を行なうため、各SPE内の積和出力データ{Si}及び入
力データ{Xj}の信号経路に少なくとも1段のラツチが
入る。(第1図ラツチ7,5) もし、ここで入力データ側の{Xj}に対しても1段の
ラツチしか設けない場合、D1上のSPE1からSPE2入力デー
タXNは、時刻T[N+1]に転送される。(2段ラツチ
を設けた第4図ではT[N+2]で転送されている。) 第1図のプロセツサ回路で示したように、最後の入力
データXNが入つてからマルチプレクサ12に積和出力Siが
現われるまでの遅延はアキユムレータ4の遅延分の1ク
ロツクのみである。これによりSPE−2内のマルチプレ
クサ12に同プロセツサの積和出力S2が現われる時刻は、
同プロセツサに最後の入力データXNが入力されてから1
クロツク分遅れた時刻T[N+2]となる。
一方、SPE−1の積和出力S1がQ1上を介してSPE−2内
のマルチプレクサ12にはいる時刻も、第4図でも示した
ようにT[N+2]である。SPE−2内のマルチプレク
サ12はS1及びS2を同時に通せず、いずれかの信号が消え
てしまう。これではニユーラルネツトの処理が出来な
い。
このような問題を避けるため、第1図に示したように
入力データ{Xj}の信号経路に第2の遅延ラツチ6を設
けた。これにより、第4図に示したようにSPE−2に最
後の入力データが入る時刻がT[N+2]となり、同プ
ロセツサの積和出力がSPE−2内のマルチプレクサ12に
転送される時刻がT[N+3]となる。これは、SPE−
1からの積和出力S1が同マルチプレクサ12に入力される
時刻T[N+2]よりも1クロツク分遅いため、先程の
ようなデータS1,S2の競合は起きない。
同様にSPE−i内では、前段までの積和出力{Sk}
(k≦i−1)がマルチプレクサ12を介して次段に転送
されてからi番目のSPEiの累積が完了し、積和結果Siが
同マルチプレクサを介して次段に転送される。
1層ニユーラルネツト積和出力S1,S2……SMは(N+
M)Tの遅延の後SPE−M出力端子に現われ、これをシ
グモイド関数ルツクアツプテーブル16に通すことにより
1層ニユーラルネツト出力Y1,Y2……YMを得る。
入力データX1が入つてから最初の出力Y1が現われるま
での遅延時間は(N+M)Tである。ここでNは入力デ
ータの数(ニユーラルネツトの入力端子数)、Mはプロ
セツサ数(ニユーロン数)、Tはクロツク周期である。
本発明のシストリツク・プロセツサを用いたニユーラ
ルネツトでは、公知例(第27,28図)と異なり、入力デ
ータ{Xj}と積和出力データ{Si}が独立データ線で転
送される。これにより公知例のような入出力データの競
合が生じず高速の処理が可能である。例えば、N≦Mの
場合、一組のX1〜XNまでの入力終了後連続して次の組の
入力データX1′〜XN′を入力することが出来る。このよ
うなデータの連続入力は、映像信号のように連続した高
速信号のリアルタイム処理に不可欠である。
N≦Mの場合はX1入力数MTだけ待つてから次の組のデ
ータを入力する。しかしこの場合も出力データ{Yi}は
連続しており、高効率でデータ転送を行なつている。
また、公知例(第28図)のような初段のプロセツサか
ら最終段プロセツサに信号を巡回させる必要もないた
め、大規模ニユーラルネツトを実現する際の両端プロセ
ツサ間の同期も問題にならない。
本発明では1層ニユーラルネツトの他に多様なニユー
ラルネツトに本プロセツサ・エレメントSPEを適応して
いる。以下ではまず第31図に示したような多層ニユーラ
ルネツトへの展開を説明する。このような多層ニユーラ
ルネツトは第1層の判定結果を受けて第2層でより高い
階層での判定を行なうなど、先の1層ニユーラルネツト
をより高機能化,高性能化したものである。
第5図は本発明による2層ニユーラルネツトの回路構
成を示したものである。ここでは第1層ニユーラルネツ
トの出力{Yj}をそのまま第2層の入力D0に回すだけ出
よい。
同図において、N1,M1,N2,M2はそれぞれ第1層ニユー
ラルネツトの入力データ数,ニユーロン数,第2層ニユ
ーラルネツトの入力データ数,ニユーロン数である。
第6図はシストリツク・アレイをさらに第31図で示し
たような多層ニユーラルネツトにまで拡張したものであ
る。このような大規模ニユーラルネツトにおいても、デ
ータ転送は隣接プロセツサ間に限定されているため、負
荷の増大による速度の低下はない。またニユーラルネツ
ト層間の配線は1本のみで済み、大幅に低減されてい
る。
シグモイド関数ルツクアツプテーブル16が各層1個で
足りるため、その特性の書き換えも容易である。
また、入出力データが独立した信号線を用いているた
め、入出力データが競合することなく連続して入力デー
タを入れることが出来る。
第7図は第32図に示した1層の巡回型ニユーラルネツ
ト(ホツプフイールド型ニユーラルネツト)にシストリ
ツク・アレイを適用したものである。ホツプフイールド
型ニユーラルネツトは判定結果{Yi}を再び同一ニユー
ラルネツトに循環させるものであり、これにより、判定
結果を強調していく。つまり興奮しているニユーロン
(高い出力値を示すニユーロン)はますます強調され、
興奮していないニユーロン(低い出力値を示すニユーロ
ン)は他のニユーロンからの出力によりますます抑制さ
れる。
シストリツク・アレイを用いた構成は容易であり、単
にルツクアツプテーブル・メモリ16の出力をマルチプレ
クサ51を介して入力D0に帰還するだけで済む。初期入力
設定には、入力データ52をマルチプレクサ51を介して入
力D0に転送するだけでよい。
第8図は、第2層のみに巡回型ニユーラルネツトを持
つハミング型ニユーラルネツト(第33図)のシストリツ
ク・アレイによる構成を示している。非巡回型第1層ニ
ユーラルネツト出力23を巡回型第2層の入力データ・マ
ルチプレクサ51に入力することにより第33図と等価な機
能を実現している。
このようなニユーラルネツトは第1層で判定を行なつ
てから、第2層で強調処理を行なうため、1層のみで両
処理を行なう先のホツプフイールド型ニユーラルネツト
に比較して効率が高い。
第9図は2層ニユーラルネツトの第1層を2ブロツク
に分割して高速化した本発明による分割型ニユーラルネ
ツトである。実際の応用では、ある結合は強く(重み係
数の絶対値が大きく)、またあるものは結合が弱い。自
然界にはこのような神経系の結合が多く見られる。そこ
で結合の無視できるものを完全に切り離すことにより、
不要な積和演算及びデータ転送を省き処理速度を向上さ
せることが出来る。
第9図では、入力データのうちX1〜XN/2の半分のもの
は第1層の左側ブロツクSPE11−1〜SPE11−M/2にのみ
入力され、残りのデータXN/2+1〜XNは右側ブロツクSP
E12−1〜SPE12−M/2にのみ転送され、この間の結合は
ない。各ブロツクの出力は順次出力ゲート119,120及び
ローカル・データバス121を介して第2層シストリツク
アレイに転送される。
この動作タイミングチヤートを第10図を用いて説明す
る。第9図の左側のブロツクの分の入力データX1,X2,…
…X N/2が入力開始されてから(N/2+M/2)T時間後
に同ブロツクからの出力Y1,Y2,……Y M/2が第1のシ
グモイド関数ルツクアツプテーブル117上に現われ、第
1のゲート119を開けることによりこのデータをローカ
ル・データ・バスを介して第2層目のシストリツク・ア
レイに転送する。
つづいて第9図の右側のブロツクの分の入力データX
N/2+1,X N/2+2,……X Nが入力開始されてから
(N/2+M/2)T時間後に同ブロツクからの出力Y M/2
+1,Y M/2+2,……Y Mが第2のシグモイド関数ルツ
クアツプテーブル118上に現われ、第2のゲート120を開
けることによりこのデータをローカル・データ・バスを
介して第2層目のシストリツク・アレイに転送する。
ここでは、第1層めのシストリツク・アレイがM/2ニ
ユーロン,N/2入力データに分割されたため、それぞれの
ブロツク内での入力から出力までの遅延時間は(N/2+M
/2)Tにまで短縮される。ローカルバスを介してこのデ
ータがそのまま第2層に転送されるため、全体でも第1
層の遅延が(N/2+M/2)Tにまで半減される。
以上のように、第1図のシストリツク・プロセツサ・
エレメントSPEを用いることにより、多様なニユーラル
ネツト・プロセツサを構成することが出来る。
第11図はさらに一般的なニユーラルネツトを本発明の
シストリツク・アレイで構成した例である。ここで各ニ
ユーロンの番号Nijとシストリツク・プロセツサ・エレ
メントSPEijの番号が対応している。第1,3層は非巡回
型、第2層は巡回型、第4層は分割型のニユーラルネツ
トである。
このようにシストリツク・アレイで構成した場合、複
雑な多層ニユーラルネツトも容易に実現できる。
ここではさらに4番めの課題である汎用ニユーラルネ
ツトを実現するため、第12図に示す回路構成のシストリ
ツク・プロセツサ・エレメントを考案した。
第12図は第1図の基本回路に図中ハツチングを入れて
示した回路を追加した。追加された回路の内容は;出力
データを選択するマルチプレクサ113,入力データを選択
するためのマルチプレクサ112,出力データをシグモイド
関数に通すか否かを選択するためのシグモイド関数ルツ
クアツプテーブル16及びマルチプレクサ106,ローカル・
プロセツサ間のデータ転送を行なうためのデータバス10
7,入力データをバイパスするための入力データバス110,
双方向ゲート108及びゲート109である。
第13図の下図は第12図のプロセツサ8個を用いた実施
例であり、8個のシストリツク・プロセツサ・エレメン
トの信号経路をプログラムするだけで例えば第13図,第
14図,第15図上図に示した3タイプのニユーラルネツト
を実現できる。横方向に活性化されている信号経路は下
図シストリツク・アレイ中太線で示してある。
第13図の実施例では3層のニユーラルネツトが実現さ
れており、第1,2,3層目がそれぞれ3個,2個,3個のニユ
ーロンで構成されている。これを、その第13図の下図の
信号経路にシストリツク・アレイをプログラムすること
により実現できる。
SPE11,SPE12及びSPE13が第1層、3ニユーロンのニユ
ーラルネツトを構成しており、SPE13のルツクアツプテ
ーブル16を介して出力が第2層のシストリツクアレイSP
E21,SPE22に転送されている。以下SPE22のルツクアツプ
テーブル16を通つたデータは第3層のシストリツクアレ
イSPE31,32,33に伝えられる。各1層の構成及び動作
は、第2図の回路に準ずる。
第14図の実施例では第1層に非巡回型3ニユーロン、
第2層に巡回型の3ニユーロン・ニユーラルネツトを設
けたハミング型ニユーラルネツトとなつている。ここで
はSPE11,12,13が第1層のニユーラルネツトを構成し、S
PE13内ルツクアツプテーブル16を介してSPE13の出力がS
PE21に伝えられる。
SPE21の入力マルチプレクサには先の信号と共にSPE23
からローカルバス107を介して帰還される巡回信号も受
け、これらを切り替えることにより先の第8図と同様の
動作を行なう。
第15図の実施例は4ニユーロンからなる第1層のニユ
ーラルネツトを二つに分割したものである。上図におい
て入力X1,X2はN11,N12により構成される第1層の第1の
ブロツクにのみ入力され、入力X3,X4はN13,N14により構
成された第2のブロツクに入力される。第1層のニユー
ラルネツト出力は第2層の各ニユーロンN21,N22に入り
ここで合成される。
これを実現するため、入力データはローカル入力デー
タバス110を介して第1のブロツクを処理するSPE11の入
力端子、及び第2にブロツクを処理するSPE13の入力端
子に直接入力される。第1のブロツクの出力はSPE12の
シグモイド関数ルツクアツプテーブル16及びゲートを介
してローカル・データバス107に出力される。同様に、
第2のブロツクの出力はSPE14のシグモイド関数ルツク
アツプテーブル16及びゲートを介してローカル・データ
バス107に出力される。
ローカル・データバス107上に合成された第1層の出
力は第2層のプロセツサSPE21に入力され、その出力はS
PE22のシグモイド関数ルツクアツプテーブル16及びゲー
トを介してローカル・データバス107に出力される。
以下に、以上のアーキテクチヤを具体的に実現できる
回路に関しての実施例を示す。
第16図は、第1図の構成を具体的に実現するための並
列乗算器を用いたシストリツク・プロセツサ・エレメン
トの実施例である。
本回路は、並列乗算器49,加算器3,アキユムレータ4,
係数メモリ1,アドレスカウンタ36,出力データマルチプ
レクサ12から構成されている。
乗算器49の入力には入力データラツチ37及び係数デー
タラツチ38を設ける。係数メモリ1のアドレス50はアド
レス・カウンタ36により作成する。
アドレス・カウンタはノンオーバラツプ2相クロツク
CLK1IN及びCLKIN2に同期してカウントアツプを行ない、
リセツト信号RSTinによりリセツトされる。リセツト信
号は入力データDinに同期して送られ、次段プロセツサ
のリセツトのため2クロツク分の遅延をRST信号遅延ラ
ツチ43,44により付加する。
乗算にかかわるデータパスにはアドレス・カウンタ3
6,ラツチ38及びラツチ41の3段遅延がある。従つて、RS
T信号が解除されてから最初の乗算結果mi1*X1が加算器
3の入力端子Cに達するまでには3クロツク分の遅延が
ある。これに合わせて、加算器3の入力端子Dに初期値
0を設定するためには、RST信号を3段のリセツト信号
作成ラツチ39,40,40′により3段遅延させてアキユムレ
ーシヨン・リセツト・ゲート42の反転入力端子に入力
し、加算器3の入力端子Dをゼロに設定する必要があ
る。
並列乗算器49と加算器3との間には、第1図の基本ア
ーキテクチヤでは用いていなかつたパイプライン用のラ
ツチ41が挿入されている。これにより、乗算処理のみに
1マシンサイクル(1クロツクサイクル)かけることが
可能となり、回路の速度に関するマージンを上げること
が出来る。(第1図の基本アーキテクチヤでは乗算処理
及び加算処理を1マシンサイクルで行なう必要があつ
た。) マルチプレクサ12とラツチ7の直列接続の順序は動作
上無関係であるため、本実施例では出力データマルチプ
レクサ12の挿入位置を出力データラツチ7の後に変更し
た。
出力データマルチプレクサ12の制御信号ENBLinもやは
り、入力データに同期して転送し、2段のENBL信号遅延
ラツチにより各SPEごとに2クロツク分の遅延を与え
る。
2相ノンオーバラツプクロツク制御クロツクCLKin1及
びCLKin2はクロツクバツフア47により再生,増幅して次
段のSPEに送る。ただし、SPE内の全回路は入力されるク
ロツクCLKin1及びCLKin2を用いる。これにより各SPE内
の確実な動作タイミングが保証される。
このようにSPEを経由するに従いクロツクのタイミン
グが少しずつ遅延されるため、特に大規模ニユーラルネ
ツトでは先頭SPEと最後尾のSPEでは、クロツク・タイミ
ングが大きくずれる可能性がある。このことから公知例
(第27,28図)に見られるような入力データ巡回線は特
別な同期手段を用いないかぎり容易でない。その点、本
発明のプロセツサではデータの巡回が不要であるため上
記のような心配はいらない。
第17図に、第1図の構成を具体的に実現するための別
の実施例を示す。ここでは、第16図中の並列乗算器49の
かわりに、シフト回路80,乗算器アキユムレータ77及び
加算器3を用いて直列乗算を行なつている。これにより
回路の削減が出来る。乗算器の演算精度が4ビツトの場
合、並列乗算器を用いた実施例(第17図)のSPEに用い
られる論理回路の素子数は約1,450トランジスタであつ
た。このうち並列乗算器の素子数は550トランジスタで
ある。従つて、並列乗算器を取り除いた本実施例は前者
の約2/3の素子数となる。ただし、直列乗算を行なうた
め、速度は1/4以下となる。並列乗算器の素子数は演算
精度の2乗の比例するため、演算精度が大きい場合、本
実施例による素子数低減効果は大きい。
以下、第17図を用いて本実施例を説明する。先の第16
図の実施例と異なるのは、直列演算のための処理シーケ
ンスを記録したプログラム・メモリ78が設けられたこと
及び外部から供給されるクロツクCLK1,CLK2の周期がデ
ータ周期の1/4である点である。
同期信号SYNCinはデータ同期と同周期であり、プログ
ラムメモリの開始タイミングを規定している。
プログラム・メモリからの制御信号はENBL1,ENBL2,G1
及びSFT1の4種のみであり、Kビツト乗算の場合K+1
ステツプのプログラムで事足りるのでプログラム・メモ
リ容量は小さいもので済む。
加算器のアキユムレータには累積用アキユムレータ4
に加え、直列乗算用アキユムレータ77を新たに設け、そ
れぞれをイネーブル信号ENBL1及びENBL2により使い分け
ている。
直列乗算ではANDゲート75を用いて部分積(論理積)
をとり、これをマルチプレクサ76を介して加算器3に入
力する。加算器では、この部分積データにアキユムレー
タ77の内容を1ビツトシフトしたデータを加算し、これ
を繰り返すことにより通常の直列乗算を実行する。
SPE内ではデータの1/4周期のクロツクCK1,CK2と共に
データと同周期の2相ノンオーバラツプクロツクCLK2I
N,CLK1INも用いられる。後者はSYNC1生成用Dフリツプ
フロツプ及びクロツク生成用ANDゲート73により生成さ
れ、各種信号の遅延ラツチ5,6,7,43,44,45,46を駆動す
るために使用される。
直列乗算器を用いた第17図の実施例よりもさらに素子
数を低減する手法として、複数ニユーロンを1プロセツ
サ,エレメントMSPEで処理する実施例を第18図に示す。
この複数ニユーロン処理シストリツク・プロセツサ・エ
レメント(以下MSPEと略す)は1個でP個分のニユーロ
ンを処理する。
MSPEはP個分のニユーロンの係数を記憶する係数メモ
リ1,乗算器2,加算器3、各ニユーロンごとに設けられた
P個のアキユムレータ81、同じくP個のバツフアアレイ
及び出力データマルチプレクサ12から構成されている。
今までの実施例では、入力データをX1,X2……と毎ク
ロツクごとに更新し、重み係数mijもこれに合わせてmi
1,mi2,……と更新することにより、最新の更新データ,
係数同士を乗算し、累積していた。ところが本実施例で
は、入力データXjはPクロツクの間固定したままで、P
個のニユーロン分の重み係数mij(1≦j≦P)を毎ク
ロツクごとに更新し、P個分のニユーロンの乗算mij*X
j(1≦j≦P)を実行し、ひきつずきP個分のニユー
ロンの累積を行なうものである。
第19図は上記回路の動作タイミングチヤートを示した
ものである。入力データ{Xj)は周期PT(Tはクロツク
周期)で入力される。これに対し、重み係数mijは周期
Tで読みだされる。第19図を用いて以下の処理を詳細に
説明する。時刻T1からT[P+1]までは前段から入力
データX1が継続して入力される。この間、係数メモリ13
からは、時刻T1に第1のニユーロンの最初の係数m11が
読みだされ、これと先の入力データX1が乗算器2により
乗算される。続いて乗算結果m11*X1と、第1のニユー
ロンのアキユムレータACC1の出力0とが加算器3により
加算され、その加算器出力m11*X1は再びACC1に記録さ
れる。ここで、アキユムレータ81は第1図のものと同様
2相クロツクで駆動されるマスタースレーブ型のものと
なつているため、出力を保持した状態で、クロツクCK1
により加算結果をラツチできる。
以下同様に、入力データはX1のままで、時刻T2に第2
のニユーロンの最初の係数m21が読みだされ、これと先
の入力データX1が乗算器2により乗算される。続いて乗
算結果m21*X1と、第2のニユーロンのアキユムレータA
CC2の出力0とが加算器3により加算され、その加算器
出力m21*X1は再びACC2に記録される。このようにして
入力X1をPTの期間だけ保持したまま、P個分の積和処理
を実行する。
時刻T[P+1]からは入力データをX2に保持したま
ま、重み係数mi2(1≦i≦P)を毎クロツクごと更新
し、乗算器2により毎クロツクごと乗算結果mi2*X2
(1≦i≦P)が得られる。
その乗算結果mi2*X2と対応するアキユムレータACCi
(1≦i≦P)の後段の出力mi1*X1が加算器3により
加算されてその結果は再び同アキユムレータACCiの前段
に累積される。
以下同様にして、時刻T[(N−1)P+1]からは
最後の入力データXNがPクロツクの期間継続して入力さ
れる。これに合わせて同時刻から第1のニユーロンの最
後の係数miN(1≦i≦P)が順次読みだされ、これと
先の入力データXNが乗算器2により乗算される。続いて
乗算結果miN*XN(1≦i≦P)と、第i番目のニユー
ロンのアキユムレータACCi(1≦i≦P)の出力: とが加算器3により加算され、その加算器出力: は再び第iニユーロンの出力バツフアBUFiに記録され
る。同バツフアは出力マルチプレクサ12を介して、次段
への出力端子QMoutに上記第iニユーロンの積和結果Si
を出力する。
1プロセツサ・エレメントMSPEにおいて、データX1が
入力されてから最初の積和出力S1が得られるまでの遅延
時間は: {(N−1)P+1}T である。
入力データDinの遅延には、クロツクCKを1/Pに分周し
たクロツクCKPに従つてPクロツク遅延を行なうラツチ8
8及びクロツクCKに従つて1段の遅延を行なうラツチ87
を用いる。従つて、クロツクCKの周期をT(秒)とした
場合(P+1)T(秒)だけの遅延を受けることにな
る。
出力データQMinの遅延には通常のクロツクCKに従つて
1段の遅延を行なうラツチ62を用いる。
Pが十分大きい場合は、シグモイド関数ルツクアツプ
テーブル16もプロセツサ・エレメントMSPE回路全体から
見ればそれほど大きな回路ではないためMSPEごとに設け
ることも考えられる。(図中破線で示してある。) 第20図(a)は第1図に示した1ニユーロン/1プロセ
ツサ構成のプロセツサを8個接続したニユーラルネツト
回路である。これを4ニユーロン/1プロセツサ構成のプ
ロセツサ2個で実現したのが同(b)図である。ここで
は、第18図のプロセツサをP=4として使用している。
つまり1個のプロセツサが4個分のニユーロンの処理を
実行する。
以下、第18図のプロセツサの具体的な回路を示す。第
21図は上記回路の1実施例を示したものである。
複数ニユーロンを扱う場合、大容量係数メモリが必要
とされる。例えば、1ニユーロンの入力データ数N=1
0,000、1プロセツサMSPEの処理ニユーロン数P=100と
して、1系数が8bit精度を有する場合、8Mbitものメモ
リが必要となる。
さらに周期T(数十ns)の基準クロツクCKで高速の係
数読み出しを行なう必要がある。
このため、同図で示したような出力シフトレジスタ92
内蔵の高速外部係数メモリ91の使用が望ましい。シフト
レジスタ92には1ライン分(Pニユーロン分)の係数を
並列に転送し、これをシリアルに高速読みだしする。デ
ータは順次アクセスするため、ランダムアクセスは不要
であり、アドレスカウンタ/デコーダ93により逐次アク
セスを行なう。
加算器3の出力はマルチプレクサ95によりアキユムレ
ータ81とバツフア83に振り分けられる。累積(積和)中
はアキユムレータ81に送られ、最終結果のみバツフア83
に送られる。プログラムメモリ78が以上の制御プログラ
ムを記憶している。
次に、よりプログラマビリテイを改善した実施例を第
22図を用いて説明する。
係数書き換えを容易にするため、各プロセツサ・エレ
メントの係数メモリ101がホスト・プロセツサ102からラ
ンダムにアクセス可能とする。ここでは、外部係数メモ
リをランダムアクセス可能とするため、アドレス・デコ
ーダ105を設けたデユアルポート・メモリ101としてい
る。ホストCPU102からのアドレスはホストアドレスバス
104を介してアドレスデコーダ105に伝えられ、データは
ホストデータバス103を介してメモリ101に転送される。
これにより更新の必要な係数または係数ブロツクのみを
アクセスすることができ、ニユーラル・ネツトの係数更
新が迅速にできる。
また、各ニユーラルネツト層ごとに設けられているシ
グモイド関数ルツクアツプテーブル16またはプロセツサ
内蔵のシグモイド関数ルツクアツプテーブル124をもホ
スト102からランダム・アクセス可能として、ニユーラ
ルネツトの柔軟性を高める。
なお上記手段は第1図の回路にも適応出来る。
最後にフオールト・トレラントなニユーラルネツト用
シストリツクアレイに関する実施例を説明する。
欠陥ニユーロンの回避機能はシストリツク・アレイを
用いたニユーラルネツトでは特に重要である。第26図や
第31図で示したような、各ニユーロン間に配線を持つ従
来のニユーラルネツトでは、数本の配線が切断されて
も、係数を再構成することによりこれを回避できる。さ
らに学習機能のあるバツクプロパゲーシヨン型ニユーラ
ルネツト等では、係数適応化に際して自動的にこれらの
欠陥結線を回避する。(欠陥を含んだニユーラルネツト
として適応化処理を行なう。) ところで、本発明のシストリツク・アレイを用いる
と、すべての情報が、入力データ線及び出力データ線の
2本の配線のみで伝達され、しかもそれらの信号は各層
のすべてのシストリツク・プロセツサ・エレメントを通
過しなければならない。このため、1本の配線の欠陥、
1個のプロセツサ・エレメントの欠陥でも全ニユーラル
ネツトの機能を停止させる危険性がある。これを回避す
るためには、欠陥救済は不可決の要素である 第23,24図はこの欠陥救済方式を示しており、第23図
は故障(欠陥)検出方式、第24図は検出した欠陥プロセ
ツサを回避する(バイパス)する方式を示す。
第23図では、テスト・データ発生回路127により、各
プロセツサの重み係数メモリ1に所定のデータを設定す
ると共に、ローカル入力データバス110を介して所定の
テスト・データをアレイの左端から入力していく。
今、被テスト・プロセツサが左から3番目のSPE3であ
る場合、テスト・データはローカル入力データバス110
を介して該プロセツサの手前のプロセツサSPE1,SPE2を
バイパスする。
被テスト・プロセツサSPE3では、入力データはプロセ
ツサ内処理回路により処理され、処理結果はゲートを経
由してローカル・データバス107に出力される。
どのプロセツサのどのデータをローカル・データバス
107に出力するかは、テストアドレスバス125を経由して
入力されるアドレスを各プロセツサ内のアドレスデコー
ダ126でデコードすることにより行なわれる。上記試験
結果は比較器129に入力され、期待値メモリ128からのデ
ータと比較され、その比較結果131は判定回路130に渡さ
れ、欠陥の分析がなされる。これにより回避すべきプロ
セツサが検出される。
第24図は検出された欠陥プロセツサを回避する方法を
示している。ここでは3番目のプロセツサSPE3を回避す
ることを想定している。回避するプロセツサのアドレス
がテストアドレスバス125を介して転送されると、SPE3
のアドレスデコーダ126がその回避命令をラツチし、信
号処理を行なうことなく信号をバイパスする。
その際、前段よりの出力データ10に対しては1段の出
力データ・ラツチが入るが、前段からの入力データ8に
対しては2段のラツチが入つているため(第1,13図のラ
ツチ5,6)、バイパスされる入力データ8が出力データ1
0に比較して1段余計に遅延を受けることになる。これ
を防ぐため、本実施例ではラツチ5,6の一方をスルー・
ラツチ132として、入力データ8に対しても遅延を1段
のみにそろえている。
このようにして、すべてのデータがプロセツサSPE3を
回避する。バイパス制御回路127が複数のバイパスプロ
セツサに対して回避命令を発行できることはもちろんで
ある。
〔発明の効果〕
(1)本発明では、複雑なニユーラルネツトを接続を、
シストリツク・アレイ・プロセツサを用いることにより
隣接プロセツサ間の接続でのみ実現することが出来る。
これにより、各ニユーロンの負荷は隣接ニユーロン・プ
ロセツサ1個のみとなり、大規模ニユーラルネツトに対
しても、負荷容量を抑え、高速処理が可能となつた。
さらに、公知例(2)と異なり、入力データと出力デ
ータに対して独立の信号線を設けることにより、これら
の信号の競合を抑え、ビデオ信号を連続して処理できる
などの高速処理が可能になると共に、入力データ数Nと
ニユーロン数Mの大小の制約を受けない汎用のニユーラ
ルネツトが構成できる。
(2)本発明では各入力データ{Xj}(1≦j≦N)に
対して初段プロセツサから順次積和処理を開始するた
め、公知例(2)にあるような初段プロセツサから最終
段プロセツサへのデータの巡回が不要となり、これら両
端プロセツサの同期をとることなく大規模のニユーラル
ネツトを構成することが出来る。
(3)本発明では、各ニユーラルネツト層に1個のシグ
モイド関数ルツクアツプテーブルがあるのみなので、こ
れらの変換テーブルのプログラミングが容易である。
(4)本発明において、各プロセツサ・エレメントにシ
グモイド関数ルツクアツプテーブル及びそのバイパス回
路,ローカルデータバス及びローカル入力データバスを
追加することにより、同一ハードウエア上で、プログラ
ムにより各種ニユーラルネツトに対応可能な汎用シスト
リツク・アレイを構成することが出来る。
(5)本発明においては、1組の乗算器,加算器を用い
て複数ニユーロンの処理を行なえるため、要求処理速及
びニユーラルネツトの規模に合わせて最適なプロセツサ
構成をとることが出来る。
(6)各プロセツサ・エレメントにテストアドレスバス
及びアドレスデコーダを追加することにより、故障検出
を可能とする。また、さらにバイパス用に入力データ遅
延ラツチをスルーとすることにより、入力データと出力
データの遅延をそろえ、故障プロセツサの回避を行なう
ことが出来た。
【図面の簡単な説明】
第1図は本発明によるシストリツク・プロセツサ・エレ
メント基本回路構成、第2図は本発明によるシストリツ
ク・アレイを用いた1層ニユーラルネツト、第3図は本
発明によるシストリツク・プロセツサ・エレメント基本
回路の動作タイミングチヤート、第4図は本発明による
シストリツク・アレイを用いた1層ニユーラルネツトの
動作タイミングチヤート、第5図は本発明によるシスト
リツク・アレイを用いた2層ニユーラルネツト、第6図
は本発明によるシストリツク・アレイを用いた多層ニユ
ーラルネツト、第7図は本発明によるシストリツク・ア
レイを用いた巡回型1層ニユーラルネツト、第8図は本
発明によるシストリツク・アレイを用いたハミング型2
層ニユーラルネツト、第9図は本発明によるシストリツ
ク・アレイを用いた分割型ニユーラルネツト、第10図は
本発明によるシストリツク・アレイを用いた分割型ニユ
ーラルネツトの動作タイミングチヤート、第11図は本発
明によるシストリツク・アレイを用いた一般化多層ニユ
ーラルネツト、第12図は本発明によるニユーラルネツト
構成変更を可能とするシストリツク・プロセツサ・エレ
メント、第13図は本発明によるニユーラルネツトの構成
変更1(3層ニユーラルネツト)、第14図は本発明によ
るニユーラルネツトの構成変更2(ハミング型ニユーラ
ルネツト)、第15図は本発明によるニユーラルネツトの
構成変更3(分割型ニユーラルネツト)、第16図は並列
演算器を使用した本発明によるシストリツク・プロセツ
サ・エレメントの回路構成、第17図は直列演算器を使用
した本発明によるシストリツク・プロセツサ・エレメン
トの回路構成、第18図は複数ニユーロンを処理する本発
明によるシストリツク・プロセツサ・エレメント、第19
図は複数ニユーロンを処理する本発明によるシストリツ
ク・プロセツサ・エレメントの動作タイミング・チヤー
ト、第20図は複数ニユーロンを処理する本発明によるシ
ストリツク・プロセツサ・エレメントを用した1層ニユ
ーラルネツト、第21図は複数ニユーロンを処理する本発
明によるシストリツク・プロセツサ・エレメントの回路
の実施例、第22図は係数メモリ,シグモイド関数ルツク
アツプテーブルのプログラミングを容易とする本発明に
よるシストリツク・プロセツサ・エレメントの回路の実
施例、第23図は本発明によるシストリツク・プロセツサ
・アレイの故障検出を行うための回路図、第24図は本発
明による故障したシストリツク・プロセツサ・エレメン
トのバイパス回路動作を行うための回路図をそれぞれ示
し、第25図は公知のニユーロンの基本機能を示す回路
図、第26図は公知の1層ニユーラルネツト、第27図は公
知例(2)のシストリツク・プロセツサ・エレメント、
第28図は公知例(2)のシストリツク・プロセツサ・エ
レメントを用いた1層ニユーラルネツト、第29図は公知
例(2)のシストリツク・プロセツサ・エレメントを用
いた1層ニユーラルネツトの動作タイミングチヤート
1、第30図は公知例(2)のシストリツク・プロセツサ
・エレメントを用いた1層ニユーラルネツトの動作タイ
ミングチヤート2、第31図は公知の多層ニユーラルネツ
ト、第32図は公知の巡回型1層ニユーラルネツト(ホツ
プフイールド型ニユーラルネツト)、第33図は公知の巡
回型2層ニユーラルネツト(ハミング型ニユーラルネツ
ト)を示す。 1……係数メモリ、2……乗算器、3……加算器、4…
…アキユムレータ、5……入力データ・ラツチ1、6…
…入力データ・ラツチ2、7……主力データラツチ、8
……前段よりの入力データ、9……次段への入力デー
タ、10……前段よりの出力データ、11……次段への出力
データ、12……出力データ・マルチプレクサ、13……係
数、14……ニユーロン積和出力、15……シストリツク・
プロセツサ・エレメント、16……シグモイド関数、17…
…1層ニユーラルネツト入力、18……1層ニユーラルネ
ツト出力、19……ゼロ入力、20……1層ニユーラルネツ
ト積和出力、21……第2層シストリツク・プロセツサ・
エレメント、22……第1層シストリツク・プロセツサ・
エレメント、23……第1層ニユーラルネツト出力、24…
…第1層ニユーラルネツト入力、25……第2層ニユーラ
ルネツト出力、26……ニユーラルネツト出力、27……ニ
ユーラルネツト入力、28……第p層ニユーラルネツト入
力、29……第p層ニユーラルネツト出力、30……第P層
ニユーラルネツト入力、31……第P層ニユーラルネツト
出力、32……第p層シストリツク・プロセツサ・エレメ
ント、33……第P層シストリツク・プロセツサ・エレメ
ント、34……第p層シグモイド関数ルツクアツプテーブ
ル、35……第P層シグモイド関数ルクアツプテーブル、
36……アドレスカウンタ、37……入力データラツチ、38
……係数ラツチ、39……リセツト信号作成用遅延ラツ
チ、40……リセツト信号作成用遅延ラツチ、41……積和
パイプライン演算用ラツチ、42……アキユムレーシヨン
・リセツト・ゲート、43……RST信号遅延ラツチ、44…
…RST信号遅延ラツチ、45……ENBL信号遅延ラツチ、46
……ENBL信号遅延ラツチ、47……クロツク・バツフア、
48……並列演算器使用シストリツク・プロセツサ、49…
…並列乗算器、50……アドレス、51……入力データ・マ
ルチプレクサ、52……入力データ、53……出力データ、
54……ニユーロン入力、55……ニユーロン出力、56……
演算増幅器、57……容量、58……コンダクタンス、59…
…共通入力線、60……演算増幅器入力線、61……データ
ラツチ、62……積和データ遅延ラツチ、63……入力デー
タ、64……出力ゲート制御信号、65……出力ゲート、66
……直並列ニユーロン・プロセツサ、67……積和出力バ
ス、68……入力データバス、69……バツフア出力、70…
…バツフア、71……係数レジスタ、72……積和出力、73
……クロツク生成用ANDゲート、74……SYNC1生成用Dフ
リツプフロツプ、75……部分積生成用ANDゲート、76…
…加算器A入力マルチプレクサ、77……乗算用アキユム
レータ、78……プログラム・メモリ、79……直列演算器
使用シストリツク・プロセツサ、80……シフト回路、81
……アキユムレータ・アレイ、82……アキユムレーシヨ
ン・バス、83……バツフア・アレイ、84……出力データ
・ローカルバス、85……複数ニユーロン処理直並列プロ
セツサ、86……複数ニユーロン処理シストリツク・プロ
セツサ・エレメント、87……データ遅延ラツチ、88……
1/Pクロツク使用データ遅延ラツチ、89……前段よりの
出力データ、90……次段への出力データ、91……外部係
数メモリ、92……高速係数読みだし用シフトレジスタ、
93……1ライン(ニユーロンP個)係数アクセス用アド
レス・カウンタ/デコーダ、94……外部メモリ制御信
号、95……加算機器出力マルチプレクサ、96……メモリ
・カウンタ/デコーダ、97……係数ラツチ、98……乗算
結果ラツチ、99……アキユムレータ・ラツチ、100……
アドレス・カウンタ/デコーダ、101……デユアルポー
ト外部係数メモリ、102……ホストCPU、103……ホスト
・データバス、104……ホスト・アドレスバス、105……
アドレス・デコーダ、106……シグモイド関数ルツクア
ツプテーブル・バイパス用マルチプレクサ、107……ロ
ーカル・データバス、108……双方向ゲート、109……ゲ
ート、110……ローカル・入力データバス、111……可変
構造シストリツク・プロセツサ・エレメント、112……
入力データマルチプレクサ、113……出力データマルチ
プレクサ、114……積和回路、115……第1層ブロツク1
シストリツク・プロセツサ・エレメント、116……第1
ブロツク2シストリツク・プロセツサ・エレメント、11
7……ブロツク1・ルツクアツプ・テーブル、118……ブ
ロツク2・ルツクアツプ・テーブル、119……ブロツク
1出力ゲート、120……ブロツク2出力ゲート、121……
ローカル・データバス、122……複数ニユーロン処理積
和回路、123……複数ニユーロン係数メモリ、124……内
蔵シグモイド関数ルツクアツプ・テーブル、125……テ
スト・アドレスバス、126テスト・アドレス・デコー
ダ、127……テスト・データ発生/バイパス制御回路、1
28……期待値メモリ、129……比較器、130……判定回
路、131……比較器出力、132……スルーラツチ、133…
…係数シフトレジスタ、134……入出力切換マルチプレ
クサ、135……非線型関数発生機構、136……シストリツ
ク・プロセツサ・エレメント、137……入力データ切換
マルチプレクサ、138……入力データ巡回線。

Claims (15)

    (57)【特許請求の範囲】
  1. 【請求項1】N個の入力信号Xj(j=1〜N)のそれぞ
    れに係数mijを乗じて加算し、その積和値: を生成するN個のニユーロン回路からなる1層のニユー
    ラル・ネツトにおいて、 1層のニユーラルネツトに入力される入力信号Xj(j=
    1〜N)をシリアル入力データとし、入力データ遅延用
    の2段ラツチ,積和出力データ遅延用の1段ラツチ,係
    数メモリ,積和のための乗算および,加算手段,アキユ
    ムレータ,前段からの積和出力Sk(k=1〜i−1)と
    上記回路により計算される積和結果Siの選択を行なうた
    めのマルチプレクサから構成される複数のシストリツク
    ・プロセツサ・エレメントSPE−i(i=1〜M)で積
    和を順次実行し、1層分のシリアル積和出力Si(i=1
    〜M)を得ることを特徴とするニユーラル・ネツト信号
    処理プロセツサ。
  2. 【請求項2】請求項1記載の1層ニユーラル・ネツト用
    プロセツサのシリアル出力に第1層と同様に構成された
    M2個のプロセツサ・エレメントで構成された第2の1層
    ニユーラル・ネツト用プロセツサの入力を応答せしめ、
    2層目のプロセツサ・アレイからの積和出力を得ること
    を特徴とする2層ニユーラル・ネツト信号処理プロセツ
    サ。
  3. 【請求項3】請求項1記載の1層ニユーラル・ネツト用
    プロセツサ・アレイのシリアルに第2層の同様なM2のプ
    ロセツサ・エレメントで構成された1層ニユーラル・ネ
    ツト用プロセツサ・アレイの入力を応答せしめ、2層目
    のプロセツサ・アレイからの積和出力に第3層のプロセ
    ツサ・アレイの入力を応答せしめ、以下同様にして第p
    −1層ニユーラルネツト用プロセツサ・アレイのシリア
    ル出力に第p層ニユーラルネツト用プロセツサ・アレイ
    の入力を応答せしめ、最終的に第p層からの積和出力を
    得ることを特徴とする多層ニユーラル・ネツト信号処理
    プロセツサ。
  4. 【請求項4】請求項1記載の1層ニユーラル・ネツト用
    プロセツサ・アレイに、該プロセツサ・アレイのシリア
    ルに再び該プロセツサ・アレイの入力に応答するか、新
    規の入力を外部から該プロセツサ・アレイに入力するか
    を選択する入力データ・マルチプレクサを設けたことを
    特徴とする巡回型ニユーラル・ネツト信号処理プロセツ
    サ。
  5. 【請求項5】請求項1記載の1層ニユーラルネツト用プ
    ロセツサ・アレイの出力Yj(j=1〜M)を請求項4記
    載の巡回型ニユーラルネツト用プロセツサ・アレイに入
    力し、ここから出力を得ることを特徴とするハミング型
    ニユーラル・ネツト信号処理プロセツサ。
  6. 【請求項6】請求項1記載の1層ニユーラルネツト用プ
    ロセツサ・アレイを2個以上のブロツクに分割し、それ
    ぞれのブロツクからの出力をトライステート・ゲート手
    段を介してローカルデータバスに順次出力し、これを次
    の層のニユーラルネツト用プロセツサ・アレイに転送す
    ることを特徴とする分割ニユーラルネツト信号処理プロ
    セツサ。
  7. 【請求項7】請求項3記載の多層ニユーラルネツト用プ
    ロセツサの任意の層を請求項4記載の巡回型ニユーラル
    ネツト用プロセツサ・アレイ、または請求項6記載の分
    割ニユーラル・ネツト用プロセツサ・アレイで置き換え
    たことを特徴とするニユーラル・ネツト信号処理プロセ
    ツサ。
  8. 【請求項8】請求項1記載のニユーラルネツト信号処理
    プロセツサに使用される各プロセツサ・エレメントに非
    線形関数ルツクアツプ・テーブル及び該非線形関数ルツ
    クアツプ・テーブルをバイパスする一組のマルチプレク
    サ,データをバイパスするためのローカルデータバス,
    入力データをバイパスするためのローカル入力データバ
    ス,積和出力を上記ローカルデータバスに出力するため
    のゲート,ローカルデータバスまたはローカル入力デー
    タバスから入力データを得るためのゲート,前段からの
    データもしくはバイパスや帰還されたデータを選択する
    ためのマルチプレクサ,前段からの積和出力または所定
    の入力を選択するためのマルチプレクサを付加したこと
    を特徴とするニユーラルネツト信号処理プロセツサ。
  9. 【請求項9】請求項1から請求項8までのいずれかに記
    載のシストリツクプロセツサ・エレメントに並列加算
    器,並列乗算器を使用したことを特徴とするニユーラル
    ネツト信号処理プロセツサ。
  10. 【請求項10】請求項1から請求項8までのいずれかに
    記載のシストリツクプロセツサ・エレメントに並列加算
    器及びこれを用いた直列乗算器を使用したことを特徴と
    するニユーラルネツト信号処理プロセツサ。
  11. 【請求項11】請求項1から請求項8までのいずれかに
    記載のシストリツクプロセツサ・エレメントにおいて、
    ニユーロンP個分の係数mij(i=1〜P,j=1〜N)、
    1個の入力保持用レジスタ、P個のアキユムレータ、P
    個のバツフアメモリ、P段のシフトレジスタを付加し、
    P個のニユーロンの処理を実行することを特徴とするニ
    ユーラルネツト信号処理プロセツサ。
  12. 【請求項12】請求項1及び請求項11記載までのいずれ
    かに係数メモリにおいて、シフトレジスタを介して高速
    に係数mijをメモリから読みだすことを特徴とするニユ
    ーラル・ネツト信号処理プロセツサ。
  13. 【請求項13】請求項12記載の係数メモリにおいて、読
    みだしと独立したポートを介してホスト・プロセツサよ
    り係数を書き換えることを特徴とするニユーラル・ネツ
    ト信号処理プロセツサ。
  14. 【請求項14】請求項1から請求項13までのいずれかに
    記載のシストリツクプロセツサ・エレメントにおいて、
    ホスト・プロセツサの非線形関数ルツクアツプ・テーブ
    ル・メモリの内容がホスト・プロセツサにより書き換え
    可能なシストリツク・プロセツサ・エレメントを用いた
    ニユーラル・ネツト信号処理プロセツサ。
  15. 【請求項15】請求項1から請求項14までのいずれかに
    記載のシストリツク・プロセツサ・エレメントに出力デ
    ータ用ゲート,バイパス用遅延ラツチ,テストアドレス
    バス,テストデータバス,アドレスデコーダを付加し、
    シストリツク・アレイ外部には、テストデータ発生/バ
    イパス制御回路,比較器,期待値メモリ・判定回路を付
    加することにより、故障検出及び故障プロセツサのバイ
    パスを可能としたニユーラル・ネツト信号処理プロセツ
    サ。
JP63323302A 1988-12-23 1988-12-23 ニユーラルネツト信号処理プロセツサ Expired - Lifetime JP2703010B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP63323302A JP2703010B2 (ja) 1988-12-23 1988-12-23 ニユーラルネツト信号処理プロセツサ
US07/455,141 US5091864A (en) 1988-12-23 1989-12-21 Systolic processor elements for a neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63323302A JP2703010B2 (ja) 1988-12-23 1988-12-23 ニユーラルネツト信号処理プロセツサ

Publications (2)

Publication Number Publication Date
JPH02170263A JPH02170263A (ja) 1990-07-02
JP2703010B2 true JP2703010B2 (ja) 1998-01-26

Family

ID=18153265

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63323302A Expired - Lifetime JP2703010B2 (ja) 1988-12-23 1988-12-23 ニユーラルネツト信号処理プロセツサ

Country Status (2)

Country Link
US (1) US5091864A (ja)
JP (1) JP2703010B2 (ja)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5588091A (en) * 1989-05-17 1996-12-24 Environmental Research Institute Of Michigan Dynamically stable associative learning neural network system
US5191637A (en) * 1989-07-12 1993-03-02 Ricoh Company, Ltd. Neuron unit and neuron unit network
US5185851A (en) * 1989-07-12 1993-02-09 Ricoh Company, Ltd. Neuron unit and neuron unit network
US5481646A (en) * 1989-07-12 1996-01-02 Ricoh Company, Ltd. Neuron unit and neuron unit network
US5337395A (en) * 1991-04-08 1994-08-09 International Business Machines Corporation SPIN: a sequential pipeline neurocomputer
DE69130656T2 (de) * 1990-06-14 1999-06-17 Canon Kk Neuronale Netzwerke
US5208900A (en) * 1990-10-22 1993-05-04 Motorola, Inc. Digital neural network computation ring
US5216751A (en) * 1990-10-22 1993-06-01 Motorola, Inc. Digital processing element in an artificial neural network
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5402519A (en) * 1990-11-26 1995-03-28 Hitachi, Ltd. Neural network system adapted for non-linear processing
US5214747A (en) * 1990-12-24 1993-05-25 Eastman Kodak Company Segmented neural network with daisy chain control
WO1993000654A1 (en) * 1991-06-21 1993-01-07 University College London Devices for use in neural processing
US5450339A (en) * 1991-10-10 1995-09-12 Harris Corp Noncanonic fully systolic LMS adaptive architecture
WO1993008538A1 (en) * 1991-10-17 1993-04-29 Kawasaki Steel Corporation Processor for neural network
WO1993010500A1 (en) * 1991-11-13 1993-05-27 Iowa State University Research Foundation, Inc. Improved memory capacity neural network
US5278945A (en) * 1992-01-10 1994-01-11 American Neuralogical, Inc. Neural processor apparatus
US5598509A (en) * 1992-08-28 1997-01-28 Hitachi, Ltd. Method of configuring a neural network and a diagnosis/recognition system using the same
US5627941A (en) * 1992-08-28 1997-05-06 Hitachi, Ltd. Method of configuring a neural network and a diagnosis/control system using the neural network
US5627943A (en) * 1993-02-17 1997-05-06 Kawasaki Steel Corporation Neural network processor including systolic array of two-dimensional layers
JPH076146A (ja) * 1993-06-18 1995-01-10 Fujitsu Ltd 並列データ処理システム
US5473731A (en) * 1993-07-20 1995-12-05 Intel Corporation Lattice based dynamic programming classification system
US5542054A (en) * 1993-12-22 1996-07-30 Batten, Jr.; George W. Artificial neurons using delta-sigma modulation
US5659780A (en) * 1994-02-24 1997-08-19 Wu; Chen-Mie Pipelined SIMD-systolic array processor and methods thereof
EP0694852B1 (en) * 1994-07-28 2002-06-26 International Business Machines Corporation Innovative neuron circuit architectures
US5583771A (en) * 1994-08-04 1996-12-10 Delco Electronics Corp. Method and apparatus for distinguishing between deployment events and non-deployment events in an SIR system
US5799134A (en) * 1995-03-13 1998-08-25 Industrial Technology Research Institute One dimensional systolic array architecture for neural network
US5912828A (en) * 1995-12-28 1999-06-15 Lucent Technologies Inc. Equalizer filter configuration for processing real-valued and complex-valued signal samples
US5640336A (en) * 1996-01-02 1997-06-17 Motorola Computational array and method for calculating multiple terms of a polynomial in a single computing element
US6601049B1 (en) * 1996-05-02 2003-07-29 David L. Cooper Self-adjusting multi-layer neural network architectures and methods therefor
US6009418A (en) * 1996-05-02 1999-12-28 Cooper; David L. Method and apparatus for neural networking using semantic attractor architecture
JP3422686B2 (ja) 1998-06-12 2003-06-30 三菱電機株式会社 データ復号装置及びデータ復号方法
US6523018B1 (en) * 1998-12-29 2003-02-18 International Business Machines Corporation Neural chip architecture and neural networks incorporated therein
US6502083B1 (en) * 1998-12-29 2002-12-31 International Business Machines Corporation Neuron architecture having a dual structure and neural networks incorporating the same
US6370265B1 (en) * 1999-11-24 2002-04-09 Direct Radiography Corp. Method for generating gray scale transfer functions for use in displaying a digital radiogram
FI20002853A (fi) * 2000-12-22 2002-06-23 Nokia Corp Keinotekoisen assosiatiivisen neuronin synapsi
MY138544A (en) * 2003-06-26 2009-06-30 Neuramatix Sdn Bhd Neural networks with learning and expression capability
JP5911165B2 (ja) * 2011-08-05 2016-04-27 株式会社メガチップス 画像認識装置
US20160328645A1 (en) * 2015-05-08 2016-11-10 Qualcomm Incorporated Reduced computational complexity for fixed point neural network
US11244225B2 (en) 2015-07-10 2022-02-08 Samsung Electronics Co., Ltd. Neural network processor configurable using macro instructions
US11551028B2 (en) 2017-04-04 2023-01-10 Hailo Technologies Ltd. Structured weight 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
US10387298B2 (en) 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
US11544545B2 (en) 2017-04-04 2023-01-03 Hailo Technologies Ltd. Structured activation based sparsity in an artificial neural network
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
CN108564169B (zh) * 2017-04-11 2020-07-14 上海兆芯集成电路有限公司 硬件处理单元、神经网络单元和计算机可用介质
US10795836B2 (en) 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
CN109583577B (zh) * 2017-09-29 2021-04-23 上海寒武纪信息科技有限公司 运算装置及方法
KR102610842B1 (ko) 2017-12-01 2023-12-07 한국전자통신연구원 뉴럴 네트워크에서의 프로세싱 엘리먼트 및 그 동작 방법
US11494582B2 (en) 2018-02-08 2022-11-08 Western Digital Technologies, Inc. Configurable neural network engine of tensor arrays and memory cells
US11164072B2 (en) 2018-02-08 2021-11-02 Western Digital Technologies, Inc. Convolution engines for systolic neural network processor
US10621489B2 (en) * 2018-03-30 2020-04-14 International Business Machines Corporation Massively parallel neural inference computing elements
WO2019210237A1 (en) * 2018-04-27 2019-10-31 Alibaba Group Holding Limited Method and system for performing machine learning
US11966835B2 (en) 2018-06-05 2024-04-23 Nvidia Corp. Deep neural network accelerator with fine-grained parallelism discovery
CN109344964B (zh) * 2018-08-08 2020-12-29 东南大学 一种适用于神经网络的乘加计算方法和计算电路
CN110825311B (zh) * 2018-08-10 2023-04-18 昆仑芯(北京)科技有限公司 用于存储数据的方法和装置
US11769040B2 (en) 2018-09-10 2023-09-26 Nvidia Corp. Scalable multi-die deep learning system
EP3671748A1 (en) * 2018-12-21 2020-06-24 IMEC vzw In-memory computing for machine learning
CN109933371A (zh) * 2019-02-01 2019-06-25 京微齐力(北京)科技有限公司 其单元可访问本地存储器的人工智能模块和系统芯片
US11270197B2 (en) 2019-03-12 2022-03-08 Nvidia Corp. Efficient neural network accelerator dataflows
US10929058B2 (en) 2019-03-25 2021-02-23 Western Digital Technologies, Inc. Enhanced memory device architecture for machine learning
US11783176B2 (en) 2019-03-25 2023-10-10 Western Digital Technologies, Inc. Enhanced storage device memory architecture for machine learning
CN110728366A (zh) * 2019-10-23 2020-01-24 马卫东 基于加减计数器的人工神经网络
US11811421B2 (en) 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights 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
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
CN113705773B (zh) * 2021-07-27 2023-09-19 西安交通大学 用于图神经网络推理的动态可重构pe单元及pe阵列
US20240126716A1 (en) * 2022-09-30 2024-04-18 Nanjing Semidrive Technology Ltd. Systolic array, systolic array system, computiation method, device, and storage medium

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4953099A (en) * 1988-06-07 1990-08-28 Massachusetts Institute Of Technology Information discrimination cell
US4967369A (en) * 1988-06-07 1990-10-30 Jourjine Alexander N Variable capacity transmission medium

Also Published As

Publication number Publication date
JPH02170263A (ja) 1990-07-02
US5091864A (en) 1992-02-25

Similar Documents

Publication Publication Date Title
JP2703010B2 (ja) ニユーラルネツト信号処理プロセツサ
US5812993A (en) Digital hardware architecture for realizing neural network
US7478222B2 (en) Programmable pipeline array
US5285524A (en) Neural network with daisy chain control
US5138695A (en) Systolic array image processing system
US7047179B2 (en) Clustered processors in an emulation engine
US5600843A (en) Ring systolic array system for synchronously performing matrix/neuron computation using data transferred through cyclic shift register connected in cascade of trays
US4601006A (en) Architecture for two dimensional fast fourier transform
JPH06502287A (ja) ゼロオーバヘッドセルフタイムド繰り返し論理
US11017290B2 (en) Signal processing module, especially for a neural network and a neuronal circuit
JP2575565B2 (ja) Spin:順次パイプライン式ニューロコンピュータ
EP0370543B1 (en) Digital neural network
JP5071707B2 (ja) データ処理装置およびその制御方法
JPS62284510A (ja) 移動係数を用いた縦続接続可能なデジタルフイルタプロセツサ
JPH06502265A (ja) 信号処理におけるマトリクス演算の計算回路装置
JPH08123769A (ja) 並列プロセッサ
CN112639839A (zh) 神经网络的运算装置及其控制方法
US6754801B1 (en) Method and apparatus for a shift register based interconnection for a massively parallel processor array
CN110197262B (zh) 用于lstm网络的硬件加速器
Buric et al. Bit-serial inner product processors in VLSI
JPS6238975A (ja) 自己相関装置
JPH0281258A (ja) 並列計算機
JPH02236659A (ja) 半導体情報処理装置
JP2959815B2 (ja) 並列データ処理装置
JPH03105584A (ja) 並列データ処理方式