JPH06195322A - 汎用型ニューロコンピュータとして用いられる情報処理装置 - Google Patents

汎用型ニューロコンピュータとして用いられる情報処理装置

Info

Publication number
JPH06195322A
JPH06195322A JP4319741A JP31974192A JPH06195322A JP H06195322 A JPH06195322 A JP H06195322A JP 4319741 A JP4319741 A JP 4319741A JP 31974192 A JP31974192 A JP 31974192A JP H06195322 A JPH06195322 A JP H06195322A
Authority
JP
Japan
Prior art keywords
information processing
neuron
control
signal
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP4319741A
Other languages
English (en)
Inventor
Yuji Sato
裕二 佐藤
Katsunari Shibata
克成 柴田
Takahiro Sakaguchi
隆宏 坂口
Mitsuo Asai
光男 浅井
Masa Hashimoto
雅 橋本
博 ▲高▼柳
Hiroshi Takayanagi
Takuo Okabashi
卓夫 岡橋
Keiji Mogi
啓次 茂木
Yoshihiro Kuwabara
良博 桑原
Tatsuo Ochiai
辰男 落合
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 Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Microcomputer System Ltd
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 Microcomputer System Ltd, Hitachi Ltd filed Critical Hitachi Microcomputer System Ltd
Priority to JP4319741A priority Critical patent/JPH06195322A/ja
Priority to US08/141,798 priority patent/US5524175A/en
Publication of JPH06195322A publication Critical patent/JPH06195322A/ja
Pending 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks

Landscapes

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

Abstract

(57)【要約】 【目的】 本発明の目的は、複数の学習アルゴリズムへ
の対応を実現した上で、ハードワイアド方式と同等の命
令実行速度であり、かつ、マイクロプログラムを書き換
えるための時間が実用上無視できる汎用型ニューロコン
ピュータを提供することである。 【構成】 ニューロコンピュータ501は、複数のニュ
ーロン3310から構成されるニューロンアレイ330
0、制御記憶装置524ー1、パラメータレジスタ52
4ー2、制御論理521およびグローバルメモリ525
を含む構成となっている。ホスト502は、ユーザイン
タフェース部であり、学習アルゴリズム、ニューラルネ
ットワーク構造、学習回数、入力パターン数、入力信
号、教師信号等ニューロコンピュータの学習および実行
に必要な情報をシステム内に入力する部分である。ホス
ト502から入力されたこれらの情報はSCSIインタ
フェース551〜503を介してニューロコンピュータ
501に転送される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的には複数のプロ
セッサ(ニューロン)から構成されるニューロコンピュ
ータに関するものである。より詳細には、ニューロコン
ピュータの汎用化方式および高速化方式に関するもので
ある。本発明は、例えば、認識、予測、検査分析、制御
などの知識処理の分野を対象としたニューロコンピュー
タに利用可能である。
【0002】
【従来の技術】従来のニューロコンピュータの例とし
て、電子情報通信学会技術研究報告(信学技法)、集積
回路研究会(ICD89−151、1989年11
月)、ページ55−60に記載されている完全ディジタ
ルニューロコンピュータを構成するニューロンの一例を
図8に示す。図8において、乗算器3810がシナプス
に相当し、他のニューロンから送られてくるデータ入力
信号とメモリ3840に記憶されたシナプス荷重を掛け
算する。メモリ3840内のシナプス荷重のアドレス
は、アドレス信号で与える。乗算結果はセレクタ385
0を介して加減算器3820とラッチ3860が構成す
るループ回路に加えられ、ステップ信号が入力されるご
とに累積加算される。桁落ちなどが生じる場合など、必
要に応じてシフタ3830を用いる。また、アドレス信
号によって指定されるアドレスが一巡するとサイクル信
号によって累積加算の結果であるラッチ3860の内容
をラッチ3870に転送し、次のサイクルにおけるこの
ニューロンの出力とする。アドレス信号がこのニューロ
ンを指定したときにはデコーダ3890によってドライ
バ3880をイネイブル状態とし、データ出力信号を出
す。シグモイド変換器等は共通化して他のチップ(制御
回路チップ)に設けたため、図8には示していない。
【0003】従来システムでは、図10に示すように、
図8に示した複数のニューロン回路(例えば300、3
01、302)と制御系310から構成される。複数の
ニューロン回路および制御系310の間は、入力データ
バス311、アドレスバス312、制御信号バス313
および出力データバス314により接続されている。制
御系310で生成された入力データ、アドレス、制御信
号はそれぞれ入力データバス311、アドレスバス31
2、制御信号バス313によって全ニューロンに転送さ
れ、ニューロン回路300、301、302等で必要な
処理を行なった後、トライステートバッファ315等に
よって、指定されたニューロン回路が内部状態値や伝播
誤差等の値を出力バス314へ出力し、制御系310に
入る。制御系310は、ホストコンピュータから送られ
てくるマイクロプログラムを保持する制御記憶装置、入
力パターンおよび教師信号を保持しておくそれぞれ入力
層メモリと教師信号メモリ、出力層のニューロンの値を
全パターンに関して保持しておく出力層メモリを含む。
【0004】図8および図10に示すニューロコンピュ
ータの特徴は、学習アルゴリズムをハードウエア的に固
定な論理回路(ハードワイアド方式)で実現している点
にある。ハードワイアド方式により学習アルゴリズムを
実現した場合、学習を高速に実行可能である。
【0005】
【発明が解決しようとする課題】上記従来技術では、学
習アルゴリズムをハードワイアド方式により実現してい
る。従って、学習アルゴリズムを高速に実行可能である
反面、他の(ハードウエア化していない)学習アルゴリ
ズムに対応できない問題がある。すなわち、応用分野に
よって最適な学習アルゴリズムが異なることを考慮する
と、適用できる応用分野が限定される(幅広い応用分野
に適用できない)という問題がある。
【0006】あるいは、幅広い応用分野に適用するため
には、学習アルゴリズムごとにハードウエア(ニューロ
コンピュータ)を作り替える必要があり、莫大なコスト
が必要となるという問題がある。
【0007】上記ハードワイアド方式の問題を解決する
ためにはマイクロプログラム方式の適用が考えられる。
すなわち、学習アルゴリズムをマイクロプログラム化
し、マイクロプログラムを書き換えることにより(ハー
ドウエアの追加/修正を行うことなく)複数の学習アル
ゴリズムに対応する方式が考えられる。
【0008】しかし、マイクロプログラム方式を適用し
た場合、 マイクロ命令のデコード(解読)に時間が必要とな
り、ハードワイアド方式と比べて命令実行速度が著しく
遅くなる。
【0009】マイクロプログラムを書き換えるために
は、ホストからニューロコンピュータへのデータ(マイ
クロプログラム)転送が必要である。従って、マイクロ
プログラムの書き換えが頻繁に生じた場合、ホストから
ニューロコンピュータへのデータ(マイクロプログラ
ム)転送時間が無視できなくなり、 トータルの実
行時間(=データ転送時間+命令実行時間)が長くな
る。 という問題がある。
【0010】本発明の目的は、複数の学習アルゴリズム
への対応を実現した上で、ハードワイアド方式と比べて
同等の命令実行速度であり、かつ、マイクロプログラム
を書き換えるための時間が実用上無視できる汎用型ニュ
ーロコンピュータを提供することである。
【0011】
【課題を解決するための手段】上記目的を達成するため
に、上記幾つかの問題点に対応してそれぞれ以下に示す
解決手段を考える。
【0012】まず複数の学習アルゴリズムへの対応を実
現するために、マイクロプログラム方式を適用する。
【0013】次に、ハードワイアド方式と比べて同等の
命令実行速度を実現するために、マイクロ命令は(完
全)水平型とする。また、(完全)水平型にした場合の
マイクロ命令のビット数(幅)削減(すなわち、メモリ
容量削減)のため、同時実行性の極めて低い命令を分け
る(別命令とする)。
【0014】最後に、マイクロプログラムを書き換える
ための時間が実用上無視できるようにするために、学習
回数、パターン数等の修正頻度の高い変数情報を、マイ
クロプログラムを格納するための制御記憶装置とは物理
的に異なる記憶装置、例えばパラメータレジスタ、に格
納する。
【0015】
【作用】本発明では、 (1)マイクロプログラム方式を適用する。すなわち、演
算器群(乗算器、ALU、シフタ、レジスタ等)の制御
およびニューロン間のデータ転送制御をマイクロ命令に
より行う。従って、学習アルゴリズムに対応してマイク
ロプログラム(マイクロ命令で構成)を書き換えること
により、ハードウエアの追加/修正を行うことなく、複
数の学習アルゴリズムに対応可能である。
【0016】(2)マイクロ命令は(完全)水平型とす
る。従って、マイクロ命令のデコード(解読)に必要な
時間は極わずか(完全水平型であれば0)である。すな
わち、高速に命令を実行可能である。
【0017】また、マイクロ命令を(完全)水平型とし
た場合の問題点である、1クロックで制御記憶装置から
読みだすマイクロ命令のビット数(幅)増大の問題点
(ビット数(幅)増大に伴い、消費電力増大、同時切り
替えノイズ発生確率増大となる)に対処するために、同
時実行性の極めて低い命令を分ける(別命令とする)。
例えば、マイクロ命令をニューロ演算制御用の命令と制
御記憶装置の次アドレス制御用の命令に分ける。これに
より、1クロックで制御記憶装置から読みだすマイクロ
命令のビット数(幅)を削減可能となる。
【0018】(3)学習回数、パターン数等の変数情報
を、マイクロプログラムを格納するための制御記憶装置
とは物理的に異なる記憶装置、例えばパラメータレジス
タ、に格納する。従って、制御記憶装置の内容を書き換
える必要が生じる(すなわち、ホストからニューロコン
ピュータへのデータ(マイクロプログラム)転送が必要
となる)のは、学習アルゴリズムの変更あるいはニュー
ロン間のネットワーク構造の変更が必要となった場合の
みである。すなわち、極まれなケースである。通常の使
用で変更を必要とする学習回数、パターン数等の変数情
報は、パラメータレジスタの書き換えのみで対応可能で
ある。すなわち、ホストからニューロコンピュータへの
データ転送量は極わずかであり、実用上無視できる時間
である。
【0019】
【実施例】図1にニューロコンピュータのシステム構成
図の一例を示す。図1において、501はニューロコン
ピュータ、502はニューロコンピュータを制御するホ
ストコンピュータである。ニューロコンピュータ501
は、複数のニューロン3310から構成されるニューロ
ンアレイ3300、制御記憶装置524−1、パラメー
タレジスタ524−2、制御論理521およびグローバ
ルメモリ525を含む構成となっている。522および
551はニューロコンピュータ501とホストコンピュ
ータ502の間で通信を行うためのSCSIインタフェ
ースである。
【0020】ホスト502はユーザインタフェース部で
あり、学習アルゴリズム、ニューラルネットワーク構
造、学習回数、入力パターン数、入力信号、教師信号
(期待値)等ニューロコンピュータの学習および実行に
必要な情報をシステム内に入力する部分である。ホスト
502から入力されたこれらの情報はSCSIインタフ
ェース551〜522を介してニューロコンピュータ5
01に転送される。SCSIを仮定した場合、転送速度
は1〜4MB/秒程度と考えられる。
【0021】ニューロコンピュータ501に転送された
これらの情報の内、学習アルゴリズムおよびニューラル
ネットワーク構造等修正頻度の低い情報はマイクロプロ
グラムとして制御記憶装置524−1に格納される。学
習回数および入力パターン数等の修正頻度の高いパラメ
ータ情報はパラメータレジスタ524−2に格納され
る。入力信号、教師信号(期待値)および出力信号等ニ
ューラルネットワークの入/出力データはグローバルメ
モリ525に格納される。
【0022】図2は、マイクロプログラム方式を説明す
るための図である。図2において3310、524−
1、521はそれぞれ図1に示したニューロン、制御記
憶装置、制御論理である。ニューロン3310は、演算
器群3320、入力バッファ3330および出力バッフ
ァ3340から構成される。マイクロプログラム方式で
は、演算器群3320を構成する各演算器をどのように
使用するかをマイクロプログラムで記述して制御記憶装
置524−1に格納する。他のニューロンからのデータ
入力および他のニューロンへのデータ出力の制御もマイ
クロプログラムで記述する。制御論理521は、制御記
憶装置524−1に格納したマイクロプログラムのデコ
ーダ論理であり、演算器群3320を構成する各演算器
を制御する制御信号を生成する。従って、Back Propaga
tion、Hopfield、LVQ等の各種学習アルゴリズムごとに
対応するマイクロプログラムを準備すれば、ハードウエ
アの作り替えなしに、複数の学習アルゴリズムに対応可
能である。複数の学習アルゴリズムは、予め全て制御記
憶装置524−1内に格納し、選択実行する仕様とする
こともできる。メモリ容量を削減するために、制御記憶
装置524−1をRAM、EPROM等の書き換え可能
なメモリで構成し、必要に応じて学習アルゴリズム(マ
イクロプログラム)を書き換える仕様とすることもでき
る。
【0023】図3に演算器群3320のブロック構成図
を示す。図3において、3330は各ニューロン331
0の入力バッファ、3340は出力バッファであり、そ
れぞれ他の要素プロセッサから入力したデータ331
1、他の要素プロセッサへ出力するデータ3312を一
時的に格納する機能を有する。3321はシフタ機能付
き算術論理演算ユニット(ALU)である。シフタとA
LUは分離して持つことも可能である。3322は乗算
器、3323は汎用レジスタ、3324はフラグレジス
タ、3325と3326は重み値修正用レジスタであ
る。また、3327はプロセッサ間の結合強度を示す重
み値情報を格納するための書き換え可能なメモリであ
る。3325、3326および3327は汎用レジスタ
の一部に割当てることも可能である。3317〜331
9は内部バスである。
【0024】ALU3321の演算機能の一例を表1に
示す。
【0025】
【表1】
【0026】図4にニモニックレベルのマイクロ命令の
フォーマット例を示す。制御記憶装置524−1には、
ニモニックレベルで記述されたマイクロ命令が2進数に
展開されて格納される。図4では、マイクロ命令のビッ
ト数(幅)削減(すなわち、メモリ容量削減)のため、
同実行性の極めて低い命令、すなわち演算制御用の命令
と次アドレス制御用の命令に分けている。以下、記述ル
ールを簡単に説明する。
【0027】(1) 一般ルール ・各フィールド間には、1個以上のスペースを挿入す
る。
【0028】・ラベルを省略する場合、行の先頭はスペ
ースとする。
【0029】・1語(ワード)の終了はセミコロ
ン(;)で表す。1語を数行に分けて記述してもよい。
【0030】(2) 各フィールドの記述ルール ラベル指定フィールド11:LBL ・行の先頭から記述する。
【0031】・省略可。ただし、省略する場合は行の先
頭はスペースとする。
【0032】マイクロ制御指定フィールド12:SC ・ニューロン1310の制御を行う演算制御命令か、制
御記憶装置524−1の次アドレス制御を行う次アドレ
ス制御命令かの指定を行う。
【0033】SC(0):演算制御命令を表す。
【0034】SC(1):次アドレス制御命令を表す。
【0035】 ニューロン演算制御フィールド13:INST ・ニューロン310の演算機能(例えば、乗算、加
算)、演算に必要なメモリの読み/書き、内部バスの入
出力等の指定を行う。
【0036】 ブロードキャスト指定フィールド14:BCST ・ブロードキャストに関する制御を行う。
【0037】 #1=△ :ブロードキャストは行わない。
【0038】IN :入力信号をブロードキャストする。
【0039】TEA :教師信号をブロードキャストする。
【0040】 NEU :ニューロンの値をブロードキャストする。
【0041】CNT :定数をブロードキャストする。
【0042】 ジャンプ命令指定フィールド15:JUMP ・制御記憶装置524−1の次アドレスに関する制御を
行う。
【0043】#2=GO[μJAA] :μJAAで指定されたア
ドレスに無条件ジャンプする。 SUB[μJA
A]:μJAAで指定されたアドレスにサブルーチンジャン
プする。
【0044】 SUBRTN :サブルーチンリターンを示す。
【0045】LOOP[LCA] :LCAで指定された回数だけ、L
OOPRTNまでを繰り返す。 LOOPRTN :ル
ープエンドを示す。
【0046】 テスト機能指定フィールド16:TEST ・次アドレス制御命令実行時に行う、オンラインテスト
用の命令を指定する。例えば、テスト対象として、各ニ
ューロンの内部の演算機能、内部バスおよび記憶装置
(レジスタ、メモリ)の出力線の縮退故障を考える。
【0047】図5は、図4に示した次アドレス制御命令
内のテスト機能指定フィールドの一例である。以下、各
フィールドの記述ルールを簡単に説明する。
【0048】テスト命令フィールド21:TINST ・テスト用の命令(例えば、ALUのADD命令)を指
定する。
【0049】 乗算器入出力指定フィールド22:MUL #3=乗算器の右入力指定 #4=乗算器の左入力指定 ALU入出力指定フィールド23:ALU #5=ALUの右入力指定 #6=ALUの左入力指定 (a)シフタ入出力指定フィールド24:SFT #7=シフタの右入力指定 #8=シフタの左入力指定 (b)出力先指定フィールド25:OUT #9=テスト結果の出力先(例えば、レジスタ、出力バ
ッファ)を指定する。
【0050】上記のように同実行性の極めて低い命令、
すなわち演算制御用の命令と次アドレス制御用の命令、
を2つに分ければ、マイクロ命令のビット数(幅)削減
(すなわち、メモリ容量削減)に有効である。また、次
アドレス制御用の命令実行時(本来ニューロンはNOP
(No OPeration)状態)に各ニューロンの演算器群のオン
ラインテストが可能である。さらに、ニモニックレベル
で記述されたマイクロ命令を2進数に展開する際、(完
全)水平型とすれば制御論理521はほとんど不要とな
り高速に命令を実行可能である。
【0051】次に、BP(Back Propagation)の学習アル
ゴリズムを例にとり、学習実行に必要な情報とその格納
先の関係を示す。
【0052】図6にBPの実行に必要な情報を示す。図
6では、学習アルゴリズムおよびニューロン3310間
の接続関係(ネットワーク構造)を固定し、学習回数
l、入力パターン3610および入力パターン数pを変
化させて繰返し学習を実行する場合を想定している。入
力パターン3610の変化に伴い、出力パターン362
0および教師信号(出力期待値)3630も当然変化す
る。出力パターン3620と教師信号3630との比較
結果は、ニューロン1310間の重み値更新に反映され
る。
【0053】図7は、図6に示したBPの実行に必要な
情報の格納先を示している。図6に示した情報の内、学
習アルゴリズム(BP)本体およびニューラルネットワ
ークの構造(入力層i、中間層h、出力層oの接続関
係)等固定的に使用する(すなわち、修正頻度の低い)
情報は、制御記憶装置524−1内に格納する。学習回
数lおよび入力パターン数p等ニューラルネットワーク
の構造に無関係な変数情報は、パラメータレジスタ52
4−2に格納する。入力パターン3610、出力パター
ン3620および教師信号3630等ニューラルネット
ワークの入出力データは、グローバルメモリ525に格
納する。従って、例えば学習回数lおよび入力パターン
数p等ニューラルネットワークの構造に無関係な変数情
報を変化させて繰返し学習を実行する通常の運用を想定
する場合、(図1において)ホストコンピュータ502
からニューロコンピュータ501に学習回数lまたは入
力パターン数pを転送し、パラメータレジスタ524−
2を書き換えるために必要な時間は極わずかであり運用
上特に問題とはならない。
【0054】以上、図1〜図8により、本発明の基本的
な考え方を示した。以下、図9〜図36を用いて、より
具体的な実施例を示す。
【0055】(図3に示した第1のニュ−ロン例とは異
なる)本発明における第2のニューロン回路の基本構成
図を図9に示す。ニューロン回路100は、外部から入力
データ101、外部制御信号119、ニューロンセレクト信号
120を入力し、出力データ118を出力する。ニューロン回
路100内にはレジスタファイル102、書替え可能なメモリ
103を有する。このレジスタファイル102及び書替え可能
なメモリ103のポインタは制御回路121から発生される。
特に、レジスタファイル102に関しては、ポインタを2
個設け、それぞれのポインタが指している2つの値を出
力値として同時に出力することができる。そして、信号
選択手段104において、上記レジスタファイル102の2つ
の出力、書替え可能なメモリ103の出力及びニューロン
回路100外からの入力データ101、第1の演算結果選択手
段113の出力から、制御回路121からの内部制御信号122
に基づいて2つの信号を選択する。ここで、書替え可能
なメモリ103からのデータについては、例えば重み値w
を16ビット、重み値の変化量Δwを8ビットで保持し
たり、重み値を8ビットで保持したりといった融通を利
かせる構成にするのが望ましい。そこで、16ビット単
位でも8ビット単位でも使えるようにするために、信号
選択手段104では、データを16ビットで受け取り、上
位8ビット、下位8ビットまたは16ビットそのままの
どれかを内部制御信号122によって選択できるようにす
る。信号選択手段104の出力2つを、内部制御信号122に
基づいて2つの選択信号保持手段105、106において保持
することによってニューロン回路100内のパイプライン
を構成する。ここでの保持手段及び以下に出てくる保持
手段は、エッジトリガフリップフロップによって実現可
能である。また、保持された2つの信号は、乗算器107
によって乗算され、内部制御信号122に基づいて乗算結
果保持手段108にてその値を保持する。ディジタルの乗
算器は演算時間が大きく掛かるため、前記のように、乗
算器の前後にフリップフロップ等の保持手段を入れる。
これによって、パイプラインのピッチからメモリのアク
セス時間や信号の選択に要する時間を除くことができる
ため、パイプラインピッチを小さくすることが可能とな
る。そして、上記の乗算結果保持手段108と2つの選択
信号保持手段105、106さらに、演算結果保持手段115の
中からALU入力選択手段109によって内部制御信号122
に基づいて2つの信号を選択し、ALU111へ入力す
る。シフタ入力選択手段110においては、別の内部制御
信号122に基づいてやはり1つの信号を選択し、シフタ1
12へ入力する。そして、ALU111では、内部制御信号1
22に基づいて加算、論理演算等から1つの演算を選択し
て実行し、シフタ112では、内部制御信号122に基づいて
シフト量、及び算術シフトか論理シフトかを選んで実行
する。そして、ALU111の出力とシフタ112の出力をや
はり内部制御信号122に基づいて2つの演算結果選択手
段113、114にて選択する。ただし、ここでは、2つの演
算結果選択手段113と114は同じ制御信号を用いることに
よって、第1の演算結果選択手段113がALU111の出力
を選択している時は第二の演算結果選択手段114でシフ
タ112の出力を選択し、第一の演算結果選択手段113がシ
フタ112の出力を選択しているときは第二の演算結果選
択手段114がALU111の出力を選択するようにし、AL
U111とシフタ112の並列演算を可能にしたまま制御信号
の数を減少させることができる。第2の演算結果選択手
段114の出力は内部制御信号122に基づいて演算結果保持
手段115に保持される。また、第1の演算結果選択手段1
13で選択されたデータは、信号選択手段104に入力され
る他、メモリ書き込み値保持手段116、レジスタファイ
ル102及び出力選択手段117に入力される。メモリ書き込
み値保持手段116では、メモリ103の書き込みのための内
部制御信号122とは別の内部制御信号122によって書き込
みの制御を行ない、書替え可能なメモリ103から値を読
み出すのと重ならないタイミングまで保持しておいた
後、メモリ103に書き込む。レジスタファイル102への書
き込みも、内部制御信号122に基づいて書き込む。この
時のポインタは、読み出し用のポインタを用いる。出力
選択手段117では、第1の演算結果選択手段の出力の
他、書替え可能なメモリ103の出力、レジスタファイル1
02の出力及びその他の保持手段からの出力から内部制御
信号122に基づいて外部へ出力されるデータを選択す
る。出力選択手段117では、出力選択手段117へ入力され
る信号が外部への出力信号118よりもビット数が大きい
場合は、元の信号のビットを分割し、どこのビットを出
力するかの選択も内部制御信号122に基づいて行なう。
以上のようなニューロン回路100の内部の制御に使われ
る内部制御信号122は、制御回路121において、外部から
の外部制御信号119、ニューロンセレクト信号120及びA
LU111から発生する。インストラクションは水平型を
基本とし、内部制御信号122のほとんどは外部制御信号1
19をそのまま用いる。
【0056】図9に示すニューロン回路を、前述の図1
0に示す時分割のバスによって結合することで、配線領
域を小さくしている。しかし、全ニューロンを一筆書き
でつなぐのは、例えば配線が複雑になる等、非常に効率
が悪い。従って、実際は、図11のように階層的に接続
を行なう。ここでは、一つのニューロンチップ420の中
に複数のニューロン回路450を有し、一つのニューロン
ボード401の中には複数のニューロンチップ420が搭載さ
れている。さらに、一つのシステムの中には複数のニュ
ーロンボード401と制御ボード411及びそれらをつなぐバ
ックボード412からなる。そして、アドレスバス414、入
力データバス415、制御信号バス416は制御ボード411か
ら出力され、各ニューロボード401に分岐される。各ニ
ューロボード401内では、デコーダ440によって、アドレ
ス信号で指定されるニューロンが自分のボードの中にい
るかどうか、また、自分のボード内のどのチップなのか
を検出し、チップセレクト信号を発生する。そして、そ
のチップセレクト信号を各ニューロンチップ420に送る
と共に、バックボード412から受け取ったアドレスバス4
14の一部と入力データバス415、制御信号バス416はニュ
ーロボード401内で各ニューロチップ420に分配させる。
さらに、各ニューロチップ内では、ニューロボード内で
の処理と同様に、デコーダ470によってアドレス信号の
うちチップ内アドレスを示す部分をデコードし、ニュー
ロンセレクト信号を発生する。また、ニューロボード40
1から受け取った入力データバス及び制御信号バスはニ
ューロチップ420内で各ニューロン回路450に分配され
る。一方、出力データに関しては、まずニューロンチッ
プ420内で、デコーダ470によって発生されるニューロン
セレクト信号を用いてトライステートバッファ460のオ
ンオフを制御し、ニューロンチップ420からある一つの
ニューロン回路を選択して、その出力値を外部に出力す
るようにする。そして、ニューロボード401では、各ニ
ューロチップ420から出てきたデータを、デコーダ440か
ら得られるチップセレクト信号によりトライステートバ
ッファ430を制御し、一個のチップの出力を選択する。
さらに、ニューロボード401では、デコーダ440がアドレ
ス信号を用いて、指定されたニューロンがボード内のニ
ューロンかどうかをデコードし、ニューロボード401と
バックボード412の間のトライステートバッファを制御
する。これによって、バックボード412では、アドレス
信号で指定されたニューロンの出力値が出力データバス
413に出力されることとなる。出力データバス413の値
は、制御ボード411に取り込まれて、マイクロプログラ
ムに従って制御ボード411内のメモリに書き込まれたり
入力データバス415に出力されたりする。
【0057】図12にシステムの構成例を示す。図12
は、図1に示したシステム構成を、より詳細に示した図
である。システムは大きくホストコンピュータ502とシ
ステム本体501に分けられ、システム本体501は図11に
示したように、制御ボード511とニューロボード512、51
3とバックボード514からなる。ユーザはホストコンピュ
ータ502を通してマイクロプログラムや学習データを用
意し、アセンブラなどの必要な処理を行なった後、SCSI
インターフェイス551からSCSI503を介してシステム本体
501のSCSIインターフェイス522に転送する。また、学習
した結果などは逆にシステム本体501からホストコンピ
ュータ502にSCSI503を介して読み出すことができる。SC
SIは複数のマシンを直列に接続できるため、この場合
は、1つのホストコンピュータ502で複数のシステム本
体501を並列に学習させたり、逆に、複数のホストコン
ピュータ502を用いて1つのシステム本体501を時分割で
使うことも可能である。また、ホストコンピュータ501
がイーサネットインターフェイスを持っていれば、イー
サネットとホストコンピュータ502を経由することによ
って他のコンピュータからもアクセスすることができ
る。こうして、送られてきたマイクロプログラムやデー
タは、制御ボード511内のCPU523の制御の下で制御チ
ップ521を介してマイクロプログラムは制御記憶524にデ
ータはグローバルメモリ525に値を書き込んだり、また
逆に読み出したりすることができる。そして、ホストコ
ンピュータ502からスタートの命令が送られて来ると制
御記憶524内にロードされたマイクロプログラムに従っ
てニューロコンピュータの動作が開始される。
【0058】制御論理521は、外部バス4053経由
で送られてきたスタート命令を受け、制御記憶524か
らマイクロプログラムを読み出す。読み出されたマイク
ロプログラム中のマイクロ命令がニューロンに対する命
令であれば、ニューロン制御手段4011を介してその
まま制御信号バス551に出力され、ニューロンで実行
される。また、読み出されたマイクロプログラム中のマ
イクロ命令が制御論理521に対する命令であれば、デ
コードを行ない実行する。この命令実行の過程で、グロ
ーバルメモリ525のアクセス、ニューロンアドレスの
発生とニューロンアドレスバス552への出力、出力バ
ス553を介してニューロンからの出力値の取り込み、
制御記憶524のアドレスの更新を行なう。
【0059】以下、図28の概略動作フローを参照し、
図12のシステム構成例中のニューロコンピュータ50
1の詳細動作を説明する。まず、ホストコンピュータ5
02上で、ニューラルネットワーク動作プログラムと、
ニューロンの初期値と、入力パターンと、教師信号が必
要であれば教師信号と、学習のパラメータとを作成する
(フロー4041)。次に、ホストコンピュータ502
側のSCSIインターフェース551、SCSI50
3、ニューロコンピュータ501側のSCSIインター
フェース522、外部バス4035経由で、ニューロン
の初期値を各ニューロチップ541、542に、ニュー
ラルネットワーク動作プログラムを制御記憶524に、
入力パターンと必要であれば教師信号、学習のパラメー
タをグローバルメモリ525に書き込む(フロー404
2)。そして、ホストコンピュータ502からのニュー
ラルネットワーク動作開始信号を受け、制御論理521
の制御記憶524が発生した制御記憶のアドレスが指す
プログラム上の命令を読み出し(フロー4043)、ニ
ューロンに対する命令であれば、制御信号バス551上
に命令を出力する(フロー4044)。各ニューロン
は、制御信号バス551上の命令を受け取り、デコード
し、実行する(フロー4046)。この時、グローバル
メモリ制御手段4013に対する命令があれば、グロー
バルメモリ制御手段4013はグローバルメモリ525
から入力バス27上にデータを出力したり、出力バス5
54上のデータをグローバルメモリ525に取り込む。
また、制御論理521に対する命令であれば、デコード
する(フロー4045)。デコードされた制御命令が動
作終了命令でなければ、制御動作を実行する(フロー4
047)。以下、デコードされた制御命令が動作終了命
令となるまで、フロー4043、4044、4045、
4046、4047を繰り返す。デコードされた制御命
令が動作終了命令であれば、ホストコンピュータ502
へ動作終了を通知し、必要であればホストコンピュータ
502からニューラルネットワーク動作結果を読み出す
(フロー4048)。
【0060】次に、図12で示した制御論理521の制
御記憶制御手段4012の詳細ブロック図を図29に示
す。制御記憶制御手段4012は、制御記憶のアドレス
を発生するアドレス発生回路4051と、制御記憶のリ
ード/ライト信号を発生する制御信号発生回路4052
と、制御記憶の入力信号を発生する入力信号発生回路4
035とで構成されている。これらの回路は、ニューロ
ン制御手段4011で発生される制御命令を受けて動作
する。また、外部バスインターフェース手段4014よ
り、直接動作させることができる。
【0061】次に、図12で示した制御論理521のグ
ローバルメモリ制御手段4013の詳細ブロック図を図
30に示す。グローバルメモリ制御手段4013は、グ
ローバルメモリのアドレスを発生するグローバルメモリ
アドレス発生回路4061と、グローバルメモリのリー
ド/ライト信号を発生するグローバルメモリ制御信号発
生回路4062とグローバルメモリの入力信号を発生す
るグローバルメモリ入力信号発生回路4063で構成さ
れている。これらの回路は、ニューロン制御手段401
1で発生されるニューロン命令と制御命令を受けて動作
する。また、外部バスインターフェース手段4014よ
り、直接動作させることができる。
【0062】次に、図12で示した制御論理521の外
部インターフェース手段4014の詳細ブロック図を図
31に示す。外部インターフェース手段4014はステ
イタス管理回路4071とバスインターフェース回路4
072とで構成されている。バスインターフェース回路
4072はネットワーク動作前に、外部バス4035上
のネットワーク動作プログラムを制御記憶に、ネットワ
ーク動作に必要なデータをグローバルメモリ525に書
き込む。そして、バスインターフェース回路4072
は、ネットワーク動作終了後、データを外部バス403
5に出力する。次に、ステイタス管理回路4071は、
ネットワーク動作中、ニューロン制御手段4011で発
生される制御命令に従い、ニューロンからのリクエスト
信号やエラー信号を受け、制御記憶制御手段4012に
割込み要求信号を送り、バスインターフェース回路40
72に割込み発生信号を送る。また逆に、制御記憶制御
手段4012からの割込み発生信号を外部バス4035
に伝える。さらに、ステイタス管理回路4071はバス
インターフェース回路4072からの割込み要求信号を
受け、制御記憶制御手段4012に割込み要求信号を送
る。
【0063】次に、図12で示した制御論理521のニ
ューロン制御手段4011の詳細ブロック図を図32に
示す。ニューロン制御手段4011には、ニューロン命
令発生回路4081と、ニューロンアドレス発生回路4
082と、最大最小検出回路4083と、ニューロン入
力信号発生回路4084とで構成されている。ニューロ
ン命令発生回路4081は制御記憶524から読み出さ
れた命令を、ニューロンに対する命令であれば制御信号
バス551に出力し、制御論理521に対する命令であ
ればデコードし、実行する。ニューロンアドレス発生回
路4082は、ニューロン命令発生回路4081より送
られてきた論理アドレスを実アドレスに変換し、アドレ
スバス552へアドレスを送る。最大最小検出回路40
83は、制御命令によって、任意のグループに属するニ
ューロンの出力値の中から最大値を持つニューロンのア
ドレスと、最小値を持つニューロンのアドレスとを検出
する。ニューロン入力信号発生回路4084は、グロー
バルメモリ制御手段4013より送られてきたデータと
最大最小検出回路4083を経由して送られてきたニュ
ーロンの出力とを、切り替える。これらの回路は、ニュ
ーロン命令発生回路4081で発生される制御命令を受
けて動作する。また、外部バスインターフェース手段4
014より、直接動作させることができる。
【0064】次に、図33を用いて最大最小検出回路4
083の構成とその動作を詳細に説明する。出力バス5
54に接続されている出力信号線4091より、ブロー
ドキャストされたニューロン出力値Xjが入力され、ア
ドレスバス552に接続されているアドレス信号線40
92より、現在ブロードキャストさているニューロンの
アドレスが入力される。最大最小検出回路4083は最
大値検出部4093と最小値検出部4097とで構成さ
れている。最大値検出部4093では、最大値レジスタ
4094に格納されているこれまでの最大値とブロード
キャストされた値Xjを比較器4095で比較し、現在
の値が、これまでの最大値よりも大きい場合、最大値レ
ジスタ4094と最大値アドレスレジスタ4096を更
新する。最小値検出部4097では、最小値レジスタ4
098に格納されているこれまでの最小値とブロードキ
ャストされた値Xjを比較器4099で比較し、現在の
値が、これまでの最小値よりも小さい場合、最小値レジ
スタ4098と最小値アドレスレジスタ409aを更新
する。検出したいグループのニューロンが全て出力値を
ブロードキャストすると、最大最小検出動作が終了す
る。この時、最大値アドレスレジスタ4096には、最
大のニューロン出力値を持つニューロンのアドレスが、
最小値アドレスレジスタ409aには、最小のニューロ
ン出力値を持つニューロンのアドレスが格納されてい
る。
【0065】次に、図35の概略動作フローに基づいて
図34のブロック図における最大値最小値検出動作を含
めたニューラルネットワーク動作を説明する。図34の
ブロック図は、入力バス553、アドレスバス552、
制御信号バス551、出力バス554に接続された複数
のニューロン回路から成るニューラルネットワーク40
31と、図33で説明した最大最小検出回路4083を
含むニューロン制御手段4011とで構成されている。
まず最初に、最大最小検出回路4083をリセットする
(フロー4111)。このリセット動作は、最大値と最
小値を検出する前に、図33中の最大値レジスタ409
4にニューロン回路出力値の理論的に取りうる最小値
を、最少値レジスタ4098にニューロン回路出力値の
理論的に取りうる最大値をセットする動作と、最大値ア
ドレスレジスタ4096、最小値アドレスレジスタ40
9aをクリアする動作である。次に、ニューロンアドレ
ス発生回路4082によってニューロン回路の出力値を
ブロードキャストすべきニューロン回路の実アドレスが
生成され、アドレスバス552に出力され、ニューロン
回路と最大最小検出回路4083に入力される。そし
て、実アドレスによって選択されたニューロン回路のみ
が出力値を出力バス554にブロードキャストする(フ
ロー4112)。ブロードキャストされた出力値は、最
大最小検出回路4083、ニューロン入力信号発生回路
4084を経由し、入力バス553に出力され、他のニ
ューロン回路の入力信号となる。この時、最大最小検出
回路4083で最大値と最小値の検出動作を行う。そし
て同時に、ニューロン回路に入力された入力信号は、重
み値で重み付けされ累積加算される(フロー411
3)。条件が満足されるまで、必要な回数フロー411
2とフロー4113を繰返す(フロー4114)。条件
が満足されれば、非線形変換を行い(フロー411
5)、ニューラルネットワーク動作が完了する。この
時、最大最小検出回路4083には、任意のグループの
ニューロン回路の中での最大値と最小値と、最大値を持
つニューロンの論理アドレス、最小値を持つニューロン
の論理アドレスが格納されている。必要であれば、最大
値を持つニューロンの論理アドレスや最小値を持つニュ
ーロンの論理アドレスをニューロンアドレス発生回路4
082に取り込み、活用できる。上述の最大最小検出回
路4083は出力バス554とニューロン入力信号発生
回路4084との途中に入れるだけで自動的に検出動作
を行い、特別なプログラムは必要ない。また、各ニュー
ロン回路のブロードキャストと並行して検出動作を行う
ため、検出時間は不要である。
【0066】次に、ニューロンアドレス発生回路408
2の詳細回路図を図36に示す。ニューロンアドレス発
生回路4082は、論理ニューロンアドレスを格納する
ためのレジスタ4120と、論理ニューロンアドレスを
1増加させたり現在の論理ニューロンアドレスに一定値
を加算させたりする論理回路4121と、論理アドレス
を実アドレスに変換するアドレス変換メモリ4122
と、セレクタ4123と、セレクタ4124とで構成さ
れている。以下に、ニューロンアドレス発生回路408
2の動作を説明する。まず、アドレス変換メモリ412
2にニューロンをアクセスする順番に実アドレスを書き
込む。この時、不良ニューロンがあれば実アドレスを書
き込まないことで排除し、また、チップ内やボード上の
ノイズが発生しにくい順に実アドレスを書き込むことも
可能である。次に、レジスタ4120に任意の論理アド
レス初期値を書き込み、セレクタ4123をレジスタ4
120側に切り替え、アドレス変換メモリ4122を通
す。そして、セレクタ4124をアドレス変換メモリ4
122側に切り替え、アドレスバス552に実ニューロ
ンアドレスを出力する。実ニューロンアドレスを進める
場合は、論理回路4121を用いて、レジスタ4120
値をインクリメントする。ニューロンをアクセスする順
番に実アドレスがアドレス変換メモリに書き込んである
ために、インクリメントするだけで、任意の順番にニュ
ーロンをアクセスできる。また、プログラム中で指定し
た論理ニューロンアドレスの一定値を、論理回路412
1を用いて、レジスタ4120値に加えることも可能で
ある。さらに、セレクタ4123を、最大最小検出回路
4083で検出した最大値を持つニューロンの論理アド
レスや最小値を持つニューロンの論理アドレスに切り替
え、ニューラルネットワーク動作に利用することもでき
る。そして、セレクタ4124を用いて、アドレス変換
メモリ4122を通さずに、論理ニューロンアドレスを
直接アドレスバス552に出力することもできる。
【0067】図13にシステムの外観イメージ例を示
す。図13(a)はホストコンピュータであるワークス
テーション1台のスタンドアロンで用いる場合、図13
(b)は、ホストコンピュータをサーバワークステーショ
ンとしてさらにイーサネットに接続することによって、
他のワークステーションからも使えるようにしたもので
ある。この場合は、サーバワークステーションにニュー
ロアダプタでのジョブを管理するソフトウエアが必要と
なる。
【0068】図14に本システムを高速に演算させるた
めのシステム内のパイプラインの例を示す。パイプライ
ンの実現には、エッジトリガタイプのフリップフロップ
を用いる場合と2相のクロックを用いる場合がある。こ
こでは、エッジトリガタイプのフリップフロップを用い
る場合を例として示す。制御ボード702内には、図12
でも示したように、主に制御チップ703、制御記憶704と
グローバルメモリ705からなる。制御記憶704はSRAMのメ
モリチップによって実現する。このメモリのアクセスに
は、現状においては少なくとも15nsec位の時間が掛かる
ため、マイクロポインタ708の値を、制御チップ703内の
フリップフロップ720および制御記憶704周辺に置かれた
フリップフロップ721を介して制御記憶704のSRAMのアド
レス信号として用い、出力データを制御チップ703内の
フリップフロップ722にて取り込む。これによってパイ
プラインのピッチからメモリのアクセス時間以外のもの
をできるだけ取り除くようにする。次に、セレクタ712
において、上述のようにしてマイクロインストラクショ
ンが取り込まれているフリップフロップ722の値とNOP発
生器709によって発生されるNOPのインストラクションを
選択する。この選択に関しては、後ほど詳細を述べる。
そして、セレクタ712から出力されるインストラクショ
ンに従ってマイクロポインタ708が制御される。また、
同じくセレクタ712からの出力に基づいて、ニューロポ
インタ、ウェイトメモリポインタ711を更新する。そし
て、この2つの値は、一つ前の他の制御信号と一緒にな
る。そして、制御チップ内のフリップフロップ723、制
御ボード702出口付近のフリップフロップ724、ニューロ
ンボード701入り口付近のフリップフロップ725さらには
ニューロチップ706内のフリップフロップ726を通して、
ニューロン707に渡される。アドレス信号に関しては、
前述のようにニューロン707に到着する前にデコードす
るが、デコードした結果に従って出力データの制御を行
なう場合は制御信号がニューロン707に到着してニュー
ロン707からその制御信号に対応したデータが出力され
るまでFIFOにて保持した後、制御信号として利用する。
ニューロン707はフリップフロップ726からインストラク
ションを受け取り、出力値を出力し、次のクロックでニ
ューロチップ706内のフリップフロップ727に取り込まれ
る。また、複数のニューロチップからの出力に対してタ
イミングをとらなければならないため、出力データに関
しては、ニューロボード701上に、ニューロチップ706の
近辺とニューロボード701からバックボード713への出口
の近くに2個のフリップフロップ728、729を配置し、こ
れを通して制御ボード702のフリップフロップ730に入力
される。さらに、制御チップ703内のフリップフロップ7
31に取り込まれ、セレクタ713にて取り込まれた値とグ
ローバルメモリ705から出て来る値からどちらかを選択
する。選択されたデータは、インストラクションと同様
に制御チップ703内のフリップフロップ741、制御ボード
702上のフリップフロップ742からニューロボード701上
のフリップフロップ743、ニューロチップ706上のフリッ
プフロップ744を通してニューロン707まで伝達される。
一方、グローバルメモリ705は、制御記憶704と同様にSR
AMで構成する。そして、セレクタ712によってセレクト
されたインストラクション内のグローバルメモリのライ
ト信号をフリップフロップ750と751を通して入力する。
また、インストラクション中のグローバルメモリポイン
タ710の制御命令に従ってグローバルメモリポインタ710
を制御し、グローバルメモリライト信号から1クロック
遅れてフリップフロップ752、753を通してグローバルメ
モリ705のアドレス端子に入力する。また、ニューロン
からの出力データであるフリップフロップ731に保持さ
れたデータをフリップフロップ732、733を通してデータ
として入力し、インストラクションに従って書き込みを
行なう。また、読み出しの際は、グローバルメモリ705
の出力をフリップフロップ734、735を通して制御チップ
703内に取り込む。そして、ニューロンに出力を出すと
いうインストラクションが出てからニューロンの出力値
がセレクタ713に到達するのとグローバルメモリ705に出
力を出すというインストラクションが出てからグローバ
ルメモリ705の出力値がセレクタ713に到達するのが同じ
タイミングになるようにフリップフロップ736から740の
5個のフリップフロップを挿入する。これによって、ニ
ューロン707またはグローバルメモリ705の値を入力バス
に出すという命令がマイクロプログラム中に存在したと
すると、その命令が制御チップ703内のインストラクシ
ョン用フリップフロップ723から出力されてから9クロ
ック後に該当するデータが制御チップ703内の入力デー
タ用フリップフロップ741から出力されることになる。
従って、マイクロプログラムを書く際には、値をニュー
ロン707またはグローバルメモリ705から値を出力すると
いうインストラクション(broadcast命令とする)の後9
ステップ後にニューロン707内でそのデータを使う命令
を書くことになる。同様に、ニューロン707からの出力
値をグローバルメモリ705に書き込む場合も、フリップ
フロップ750にインストラクションが到着するのとその
インストラクションによってデータがフリップフロップ
732に到着するのが同じく9クロック後になるようにな
っている。従って、マイクロプログラム内ではニューロ
ン707のブロードキャスト命令から9ステップ後にグロ
ーバルメモリ705に値を書き込むという命令を書くこと
になる。
【0069】図15に制御チップ内で、ニューロンから
来るデータの最大または最小値及びそれを保持するニュ
ーロンのアドレスを検出する機能を実現するために必要
なパイプラインの構成例を示す。インストラクション80
1はニューロンポインタ802に入力され、その値を更新す
る。そして、フリップフロップ803から811までのFIFOに
よってインストラクションとデータのずれの9クロック
分保持される。また、最大値、最小値を取り込むかどう
かの信号820も同様にしてフリップフロップ821から829
のFIFOによって保持する。一方、ニューロンからの出力
データ830は比較器831によってフリップフロップ834の
値と比較し、最大値検出の場合は出力データ830がフリ
ップフロップ834の値より大きければ出力値に1、そう
でなければ0を出力する。そして、ANDゲート832を通し
た信号によってフリップフロップ812と834に値を取り込
む。これによって、入って来るニューロンの出力データ
が既に保持されている値より大きく、かつ最大値を取り
込むという信号が来た時にフリップフロップ812ではそ
の値を出したニューロンのアドレスの値を、フリップフ
ロップ834ではその値自体を保持することになる。ま
た、最大値を検出するか最小値を検出するかは比較器83
1がデータ830が値834より大きい時に1を出すか小さい
時に1を出すかを変えるだけで実現できる。また、最大
最小の両方を検出したい場合は、点線の部分をもう1セ
ット用意し、2つの比較器がそれぞれ上記のような違い
を有しているようにすればよい。
【0070】図16にデータ選択用及びデータ退避用の
パイプラインの構成例を示す。図14にも示したが、入
力データはグローバルメモリ705からのデータとニュー
ロン707からのデータをセレクタ713によって選択する。
この選択信号は、インストラクションの一部の信号900
として渡される。そして、フリップフロップ901から909
のFIFOによって9クロック分遅らせ、対応するデータが
来た時にセレクタ713を制御するようにする。一方、ホ
ストコンピュータやマイクロプログラム等によってシス
テムの動作を途中でブレイクする場合には、パイプライ
ンの中に入っているデータを保持しておく必要がある。
このような場合、大きなビット数を必要とするインスト
ラクションをそのまま保持しておくことは効率的でない
上、1箇所にまとめて保持しておくことができない。従
って、ブレイクが掛かった場合は、その前に発生された
インストラクションは全てニューロン及びグローバルメ
モリ705に送り、その結果出て来たデータを制御チップ
で一括して保持するようにした。そのためのフリップフ
ロップが910から918及び920から928である。最初の910
から918までのフリップフロップは入力データ用のもの
であり、セレクタ713でセレクトされた後のデータを保
持しておく。また、後半の920から928はニューロンの出
力データをそのまま保持しておくものであり、グローバ
ルメモリ705に書き込むためのデータを保持しておくと
ころである。セレクタ919及び929は通常はフリップフロ
ップのない方を選択し、ブレイクの後に再開される時に
退避したフリップフロップのデータを出力するように選
択し、フリップフロップ732及び741にデータを送る。
【0071】図17にデータ退避用パイプラインの制御
回路例を示す。1000が制御回路部分になる。フリップフ
ロップ1006の値はシステムが動作中かどうかを表すもの
ある。この値は、ブレイクを指示する信号1001を反転し
たものとフリップフロップ1006の値をANDゲートで演算
し、スタートをしなさいという信号である1003とORゲー
ト1020の出力の反転したものと1004のANDゲートで演算
したものとORゲート1005にてORをとることによって構成
される。従って、一旦ブレイク信号1001が入ってbusyで
なくなる(フリップフロップ1006が0になる)とスタート
信号1003が入るまでスタートしない。また、スタート信
号1003も制御回路部分1000の中のORゲート1020の出力が
0になるまで出力できないということになる。busyかど
うかを示す信号1006は制御回路1000に入力され、フリッ
プフロップ1007から1009に保持され、さらに、ANDゲー
ト1010の出力をフリップフロップ1011から1019に保持す
る。つまり、ブレイクされる時は、1007と同時に1011も
0になり、スタートする時には、1007から1009までが1
になった後に1011が1になり、フリップフロップ1011か
ら1019の値の変化のタイミングはスタートの時の方が3
クロック分早い。ORゲート1020では、フリップフロップ
1011から1018までの出力のORをとり、ブレイクが掛かっ
た時にデータの退避が完了したかどうかを判定する。こ
れによって、ANDゲート1004でスタート信号1003をマス
クすることにより、データ退避中にはスタートが掛から
ないようになる。データ1050はブレイクが掛かると1051
から1059に保持される。そして、セレクタ1060で通常の
データを出力するか退避したデータを出力するかを選択
する。この制御信号は、ANDゲート1010とフリップフロ
ップ1019の反転したものをANDゲート1021でANDをとった
ものを使う。これによって、ブレイクから再開されてフ
リップフロップ1009が1になってから退避されたデータ
の数の分だけANDゲート1021に出力は1となって、退
避したデータが出力され、それ以外はデータ1050が出力
される。また、退避データ出力数カウンタ1022は、イン
クリメンタ1023で1インクリメントし、オーバーフロー
処理回路1024でとした結果が10以上の場合に9にした
値と、元々のカウンタ1022の値を、ANDゲート1010の出
力が1の時はオーバーフロー処理回路1024の出力、0の
時にはカウンタ1022の出力をセレクタ1025で選択し、さ
らにその出力と値0とを、ORゲート1020が1の時にセレ
クタ1025の出力を、0の時に0をセレクタ1026で選択し
退避データ出力数カウンタ1022に書き込む。これによっ
て、ブレイクが掛かって退避が終了するとカウンタ1022
は0にリセットされ、スタートが掛かって3クロックま
での間はその値は保持され、その後の動作時には9にな
るまで1インクリメントしていく。そして、セレクタ10
27では、動作時には9をブレイクが掛かってからスター
トが掛かって3クロックまでの間はカウンタ1022の値を
出力する。そして、デコーダ1028によって、表2のよう
な信号を生成し、フリップフロップ1051から1059まで書
き込み信号とする。
【0072】
【表2】
【0073】これによって、動作開始時には全てのフリ
ップフロップがパイプラインとして働いて退避データを
出力し、全ての退避データが出力されるまでデータバス
にその値が出力される。その後、セレクタ1060が切り替
わり、1050を選択して通常動作に入る。また、ブレイク
が掛かると、9つのフリップフロップの内退避データが
残っているものを除いた分のフリップフロップのみ書き
込み信号を退避が完了するまで発生し、退避データを完
成させる。そして、退避が完了したら書き込み信号を全
て0に落す。こうして、任意の時にブレイクが掛かって
も再びスタートを掛けて続けることができる。ただし、
ブレイクが掛かってすぐにスタートが掛かると、退避デ
ータが間にあわないので、前述のようにORゲート1020の
出力を用いてスタート信号1003にマスクを掛ける。
【0074】次に、インストラクションや外部からの命
令でブランチやブレイクが掛かった時のマイクロポイン
タやインストラクション-NOPの選択回路の制御回路例を
図18に示す。図14でも触れたように、マイクロポイ
ンタ708はフリップフロップ720、721を通して制御記憶7
04に値を渡し、インストラクションをフリップフロップ
722を介して制御チップが受け取る。そして、セレクタ7
12でフリップフロップ722の値とNOP発生器709から出力
されるNOPのインストラクションと選択を行なう。ま
ず、セレクタ712で発生されるインストラクションで、
マイクロポインタがジャンプするかどうかを示す信号11
10とブレイクが掛かったかまたはブレイクがか買って動
作が中断していることを示す信号1109(図17のORゲー
ト1005の出力)のORをとる。ブレイクが掛かった時は、
出てくるインストラクションは実行されない。また、マ
イクロポインタ708は通常の動作時には1インクリメン
トをされる。従って、マイクロポインタがジャンプする
ということは、次に来る3つのインストラクションはマ
イクロポインタがジャンプする前のものであるため、意
味がない情報が入って来るということになる。そこで、
フリップフロップ1112から1114のFIFOによってその情報
を保持し、該フリップフロップの出力をORゲート1115で
ORすることによって、次に来るインストラクションが意
味のあるものかどうかを判定し、意味のないものの場合
は、セレクタ712によってNOP発生器709からくるNOP信号
をセレクトすることで制御記憶704から出力されるイン
ストラクションをマスクする。一方、マイクロポインタ
708については、通常はインクリメンタ1100でインクリ
メントされた値を次のクロックで書き込むが、一旦ブレ
イクが掛かってスタートした場合は、最後に実行したイ
ンストラクションの次のインストラクションから実行さ
れなければならない。従って、アドレスxのインストラ
クションを実行している時にはマイクロポインタの値は
既にx+3となっており、ここで、ブレイクが掛かった
時にはマイクロポインタの値をx+1まで戻さなければ
ならない。そこで、フリップフロップ1101から1103を設
け、マイクロポインタの前の値を保持する。ただし、マ
イクロポインタがジャンプした時やブレイクが掛かった
場合は前のマイクロポインタの値は無効なものとなるた
め、ブレイクまたはジャンプが掛かった時のみセレクタ
1104、1105によって、インクリメンタ1100の出力をフリ
ップフロップ1101から1103に取り込む。そのために、AN
Dゲート1117でORゲート1111の出力とフリップフロップ1
112の出力値を反転したもののANDをとり、セレクタ110
4、1105の制御信号とする。また、ブレイクが掛かった
時には、保持しておいたマイクロポインタの値をセット
し直さなければならないため、ブレイクが掛かったとい
う信号1109によってセレクタ1106の制御を行なう。また
セレクタ1107では、インストラクションに従って、セレ
クタ1106の出力、セレクタ1116から出力されたインスト
ラクション中のジャンプ先アドレス、及びマイクロスタ
ック1108に保持されているマイクロポインタの値から選
択する。そして、マイクロポインタ708に値を書き込
む。ただし、ブレイクが掛かって動作が止まっている時
には、マイクロポインタの値は更新しない。
【0075】図19にニューロン回路内のCCR(Contr
ol Code Register)の周辺回路を示す。ALU1200は2
個の入力1201、1202から制御信号1204に従って機能を選
択して演算を行ない出力1203を生成する。そして、この
時のALU1200への入力と出力及びその時の制御信号12
04からフラグ生成回路1205で、(1)出力が0であるかど
うか、(2)出力の符号が正であるか負であるか、(3)オー
バーフローしているかどうか、(4)キャリィがあるかど
うかの4個のフラグを生成し、CCRの書き込み信号12
07が1の時にフラグ生成回路1205で計算された4個のフ
ラグをCCR1206に取り込む。そして、選択信号1209に
従ってセレクタ1208でCCR1206に保持されている4個
の値から1つを選択し、されにインバータ1210で反転さ
せたものと選択信号1212に従ってセレクタ1211で選択し
てCin信号1213としてALU1200に入力することが
できる。ただし、このCin信号1213を使うか使わない
かは制御信号1204によって決めれれる。また、ここで出
て来る制御信号1204、CCRの書き込み信号1207、選択
信号1209、1212は制御チップからニューロンに送られて
来るインストラクションによって決定される。
【0076】図20にCCRを用いた書き込み制御回路
とNRQ(Neuron ReQuest)信号発生回路例を示す。ここ
では、図19のようにCCR1206から、セレクタ1208、
1211で選択した信号を、NRQ1307のレジスタの出力と
ORゲート1306でORをとり、制御信号1308がセットの命令
の時にその値を取り込む。また、制御信号1308がリセッ
トを示している時には、NRQ1307の値を0にリセット
する。このNRQ信号は、条件の累積をとるもので、図
21のように全ニューロンからの信号を1401、1402のOR
ゲートによってORをとり、その信号の値を制御チップ内
の累積NRQ信号保持部1403に保持し、制御記憶524からの
インストラクションに従って割込み信号を発生する。従
って、ニューラルネットの学習演算の際、各パターン毎
に誤差が、一定値より小さいかどうかを累積し、全パタ
ーン全ニューロンの誤差が一定値になったら割込みを掛
け、マイクロプログラムをジャンプさせて、ジャンプ先
でブレイクを掛けて学習を中断させることができる。一
方、図20に戻って、セレクタ1211の出力は、制御信号
1310に従ってグループレジスタ1309にその値をセットし
て、ニューロン内記憶部分の書き込み制御に利用する。
また、CCR1206は1209とは別の選択信号1302でセレク
タ1301において1個選択され、さらにインバータ1303と
セレクタ1304で選択信号1305を使って正負の選択をし、
書き込みの制御に利用する。この2つは、グループレジ
スタ1309は長期間の条件付けに利用し、セレクタ1304の
出力値は、短期間の条件付けに利用するといった使い分
けをし、前者をグループ、後者をサブグループと呼ぶ。
また、複数の条件付けを組み合わせたい時は、グループ
とサブグループの両者の条件付けで実現することができ
る。また、個別書き込みを行なうかどうかは制御信号13
15によって行なう。個別書き込みの場合は、インバータ
1317によって制御信号1315を反転させ、このニューロン
がセレクトされているどうかを表す信号1316をORゲート
1318を通してANDゲート1319に送る。そして、ORゲート1
311では制御信号1315によってグループレジスタ1309の
値をORゲート1311でマスクする。一方、個別書き込みで
ない場合は逆に、グループレジスタ1309の値をORゲート
1311を通してANDゲート1319に送り、ニューロンセレク
ト信号1316はORゲート1318でマスクされる。つまり、個
別書き込みモードの時は、セレクトされているニューロ
ンだけが書き込み可能とし、そうでない時は、常にグル
ープレジスタ1309によって書き込みが制御される。ま
た、サブグループを有効にするかどうかを決める制御信
号1312はインバータ1313で反転され、サブグループを有
効にする場合にはセレクタ1304の値をANDゲート1319に
渡し、そうでない時はサブグループの信号をORゲート13
14によってマスクする。こうして、これらの信号をAND
ゲート1319でANDをとって、ニューロン内の一部の記憶
部分の書き込みの制御に用いる。ここでは、図9のレジ
スタファイル102、書替え可能なメモリ103、演算結果保
持手段115、および本図内のNRQ1307の書き込みを制
御する。
【0077】次に、下位ビット切捨て時の負の数のrun_
to_0機能の実現回路例を図22に示す。負の数で下位ビ
ットを通常通り切り捨てる(右シフト演算も含む)と、例
えば16ビットで1111111111111111という数は、いくら右
にシフト(何回2で割算)しても決して0になることはな
く、また例えば右に8ビットシフトした後に再び左に8ビ
ットシフトすると1111111100000000という数になる。つ
まり、負の数を切り捨てると、0から離れる方へ値が変
化していくことになる。一方、正の数の場合は、逆に0
に近づくように変化する。従って、負の数の場合は、例
えば学習による重み値の更新で慣性項を使う場合に、実
際の演算では前の慣性項の値に1より小さい数を掛けて
使うため、誤差がなくなると徐々に0に近づいていくと
ころが、0にならないため、誤差がなくても重み値の値
がどんどんと変化していってしまうことになる。こうい
った問題点を解決するために、負の数でも切捨てによっ
て0に近付けていくことが望ましい。そこで、ここで
は、切り捨てる部分の下位のビットの値をORゲート1501
でORをとり、符号ビットとANDゲート1502でANDをとるこ
とで、負の数の切捨て部分に1があるかないかを判定す
る。そして、1があった場合にはインクリメンタ1503でC
in入力としてANDゲート1502の出力を入力してインクリ
メントする。これによって、切捨てによって0に値が近
づいていくようになる。 本システムを動作させる時の
ホストコンピュータにおけるソフトウエアの構成例を図
24に示す。まず一つは、ユーザがネットワークの構成
や学習則の選択をユーザインターフェイス1601で行な
い、その情報を基にマイクロジェネレータ1602によっ
て、指定された学習演算を行なうためのマイクロプログ
ラムを自動生成させる。一方、新しいアルゴリズムなど
を開発する場合には、ユーザがエディタ1603を使って直
接マイクロプログラムを書く。そして、このマイクロプ
ログラム1604をマイクロアセンブラ1605を通してバイナ
リファイル1606を生成する。そして、データ転送決定手
段1610では、ユーザインターフェイス1601からの情報に
基づいて、バイナリファイル1606、ニューロンの状態を
読んだりする基本機能実現のためのライブラリ1608の値
または学習に用いる入出力パターン1609を選択してSCSI
インターフェイス1611に送って、ニューロコンピュータ
1620の所定の場所に書き込む。その後、実行のための信
号を送り、ニューロコンピュータ1620を動作させる。そ
して、その結果をSCSIインターフェイス1611を通してユ
ーザインターフェイス1601に表示またはファイルに落と
す。
【0078】図24にニューラルネットの構成例とグル
ープ分けの例を示す。入力層が3個、中間層が2個、出
力層が1個で、入力層の2のニューロンはバイアス用の
ニューロンであり、常に1を出力する。それ以外のニュ
ーロンは層間全結合を行なう。この場合、中間層、出力
層のニューロンにはそれぞれ物理ニューロンを割当て、
中間層と出力層でグループ分けを行なうことによって、
中間層と出力層の演算を区別して行なわせることができ
る。。
【0079】図25にこのニューラルネットワークを学
習させるときのグローバルメモリのデータの配置例を示
す。0番地からf番地までにパターン0の教師信号、入
力値、パターン1の教師信号入力値の順に配置してい
く。また、20番地から21番地にニューロンのグルー
プ分けを行なう際の基になるデータも保持して置く。そ
して、30番地から36番地までには、非線形変換の近
似計算を行なうための係数と、学習のためのパラメータ
を入れ、必要に応じてブロードキャストされる。さら
に、50番地から53番地にはニューロンが実際に出し
た出力層ニューロンの出力値を各パターンごとに学習中
にマイクロプログラムによって取り込み、学習終了時に
全パターン分の出力値をホストコンピュータからアクセ
スできる。そして、グローバルメモリのアドレスを指す
グローバルメモリポインタを複数用意し、それぞれ、入
出力パターン用、グループ分け用、定数アクセス用、グ
ローバルメモリ書き込み用を設けて、マイクロプログラ
ムで選択して用いることによって、高速にアクセスする
ことができる。
【0080】また、図26に中間層2個、出力層1個の
計3個のニューロンの書替え可能なメモリの重み値配置
例を示す。バックプロパゲーションのアルゴリズムで
は、通常とは逆方向のデータの伝播があるが、この計算
をバス型のニューロン間結合方式の中で高速に行なわせ
るためには、結合先、つまり、下の層のニューロンが重
み値を持つ方法がある。従って、ある結合の上の層のニ
ューロンと下の層のニューロンの両方で同じ重み値を保
持しなければならない。また、さらに重みメモリのポイ
ンタは、制御チップで持つと、全ニューロンが同じメモ
リアドレスを指すことになる。従って、結合元が同じも
のはできるだけアドレスに保持しておくのが望ましい。
ここでは、ニューロン0にフォワード側の重み値を3
個、バックワード側の重み値1個を順番に持つ。そし
て、ニューロン1ではニューロン0と同じ結合元のもの
に関しては同じ所に来るようにしている。またニューロ
ン2に関しては、ニューロン0や1と同じ結合元である
52に関しては同じアドレスの所に、他のものに関して
は違う結合元であるが重複したアドレスに配置する。学
習の際に重み値を更新する時は、全てのニューロンが同
じアドレスを示しているが、グループ制御することによ
って必要な箇所のみ書替えることができ、さらにスペー
スを節約することができる。また、重み値メモリは16
ビットで構成しているが、慣性項用のΔwに関しては、
重み値wよりビット数が少なくて良いため、16ビット
を8ビットずつに区切って、1つのアドレスの中身を2
つに分けて用いる。
【0081】図27に、1個のニューロン回路で複数の
ニューロンのシミュレーションを行なう仮想ニューロン
の動作方法を示す。通常、レジスタファイルにはニュー
ロンの内部状態、メモリには結合の重み値を保持してい
るが、これをシミュレーションを行なう各ニューロンご
とに仕切り、最初のニューロンをシミュレートする場合
は、レジスタファイルのポインタ及びメモリのポインタ
が左の図の斜線の部分指すようにし、2番目のニューロ
ンをシミュレートする場合は真中の図の斜線の部分、m
番目のニューロンをシミュレートする場合は右の図の斜
線の部分の部分を示すようなポインタをマイクロプログ
ラムを用いて発生させれば、演算器などは共同で用いる
ことができる。
【0082】上記本発明による汎用型ニューロコンピュ
ータの主な機能を表3に示す。
【0083】
【表3】
【0084】以下、各機能の実現方式に関して簡単に示
す。
【0085】(1)プログラマブル学習アルゴリズム 学習アルゴリズムごとにニューロチップ内の演算器群の
使い方をマイクロプログラム化する。図2に示すよう
に、必要に応じて、制御記憶内部のマイクロプログラム
を書き換えることにより複数の学習アルゴリズムに対応
可能となる。
【0086】(2)仮想化 1物理ニューロンを複数(n個)の論理ニューロンに対
応させ、時分割的に使用することにより、仮想化(見か
け上、ニューロン数n倍)を実現する。
【0087】具体的には、図27に示したように、重み
値、内部状態など各論理ニューロン固有のデータはnニ
ューロン分格納し、演算器群(乗算器、加算器)はn個
の論理ニューロンで共有する構成とする。1物理ニュー
ロンが最大いくつの論理ニューロンに対応できるかは、
物理ニューロン内部の記憶装置(重み値、内部状態など
を格納)の容量で制限される。
【0088】(3)スパース結合 結合不要なニューロン間は、例えば図3において、ニュ
ーロン間の結合強度を示す重み値の値(すなわち、CW
M3327に格納する値)を”0”に設定することによ
り、論理的に結合を切断する。
【0089】(4)グループ化 グループ指定レジスタを各ニューロンごとに設ける。例
えば、図3において、REG3323の一部をグループ
指定レジスタとして活用する。グループ指定レジスタの
内容から、各ニューロンが属するグループを判断する。
【0090】(5)非線形変換 チェビシェフ近似等の近似関数をマイクロプログラム化
し、非線形変換を行う。近似精度に関しては、予めチェ
ックが必要である。
【0091】あるいは、非線形変換関数テーブルを制御
チップ521内部に設け、ブロードキャスト時に非線形
変換関数テーブルを介して変換を行う。
【0092】(6)最大値検出 全ニューロンが順次ブロードキャストを行い、各ニュー
ロンがブロードキャストした値を制御チップ内で比較す
ることにより最大値(最小値)および最大値(最小値)
を持つニューロンを検出する。
【0093】最大値(最小値)のみ必要な場合は、全ニ
ューロンが順次ブロードキャストを行い、各ニューロン
ではブロードキャストされた値と自分自身の持つ値を比
較した結果をフラグにセットすることにより最大値(最
小値)を検出することも可能。
【0094】詳細は、図32から図36の説明を参照の
こと。
【0095】(7)倍精度(付録5.4参照) 単精度の演算では、被乗数および乗数に各1ワードずつ
のメモリエリアを割当て、1回の乗算(16bit×10bit)で
積を算出するのに対して、倍精度では、 各2ワード
ずつのメモリエリアを割当て、4回の乗算(32bit×16bi
t)で積を 算出する。加減算においても、単精度1ワ
ードに対して、倍精度では2ワー ドで処理を行う。
また、倍精度では乗算の度ごとに桁合わせ処理を行う。
演 算(乗算および加減算)には、例えば図3におい
て、ALU3321またはMUL3322を用いる。
【0096】(8)学習収束判定 各ニューロンごとに、学習収束判定値を持ち、収束判定
結果を収束判定フラグレジスタに設定する。収束判定フ
ラグレジスタ内の値を、チップ内ニューロン、ボード内
チップと、階層的にANDを取り最終的な学習収束判定
フラグとして制御チップに入力する。
【0097】(9)重み値ダンプ 学習終了後、各ニューロン内重み値メモリ(例えば、図
3のCWM3327)の内容をグローバルメモリ525
に出力。必要に応じて、ユーザ指示により、グローバル
メモリ525内重み値メモリの内容をダンプ。
【0098】重み値変化の来歴作成などを目的として、
学習中に重み値を出力する必要がある場合はソフトウエ
ア(マイクロプログラムによる指示)で対応する。
【0099】(10)初期値設定 以下に示す2方式をサポートする。
【0100】(i)方式1(制御記憶からの指定により
書き込む方式) 予め初期値をグローバルメモリ525内に格納し、制御
記憶からの指定により、グローバルメモリ525から各
ニューロンに初期値を転送する。グローバルメモリ52
5内への初期値設定は、SCSI/CPUワークRAM
からグローバルメモリ内に(例えば、VMEバスを介し
て)予め転送する。
【0101】 (ii)方式2(ホストからの指定により書き込む方式) SCSI/CPUワークRAMから、例えばVMEバス
(外部バス)を介して、直接各ニューロンに初期値を転
送する。制御はホストコンピュータ502からの指定に
より行う。
【0102】(11)割込み 制御チップ521内に割込みレジスタとステータスレジ
スタを設ける。割込みレジスタには、割込みの有無およ
び割込みの種類に対応したマイクロプログラムのブラン
チ先(割込み処理プログラム格納)情報を格納。割込み
レジスタのセットは、マイクロプログラム、CPU52
3およびパリティエラー検出回路から行う。割込みレジ
スタの内容のチェックはマイクロプログラム内で指定。
【0103】ステータスレジスタには、割込みの種類を
格納。CPU523はステータスレジスタの内容から正
常終了、異常終了および割込みを判定。
【0104】割込みのレベルとしては、例えば、Pose
(マイクロポインタの値保持、パイプ情報退避、継続実
行可能)および Abort(パイプ情報退避、強制終了)の2
種類を考える。
【0105】(12)オンラインテスト オンライン(稼働)時のテストとして、パリティチェッ
クを考える。テスト対象は、入力データバス311、出
力データバス314、制御信号313、 アドレス信
号バス312(CPU523、制御記憶装置524、グ
ローバル メモリ525)である。
【0106】あるいは、図4および図5で示した、テス
ト用のマイクロ命令を用いる。
【0107】
【発明の効果】以上のように、本発明によれば、複数の
学習アルゴリズムへの対応を実現した上で、ハードワイ
アド方式と比べて同等の命令実行速度であり、かつ、マ
イクロプログラムを書き替えるための時間が実用上無視
できる汎用型ニューロコンピュータを提供することが可
能である。また、内部の演算の状態によってそのニュー
ロン内やシステム全体の制御ができるので、条件つき演
算や複雑なグループ分けを必要とするアルゴリズムにも
対応可能となる。
【図面の簡単な説明】
【図1】ニューロコンピュータシステム構成図(概略)
である。
【図2】マイクロプログラム方式説明図である。
【図3】演算器群のブロック図例である。
【図4】マイクロ命令フォーマット例である。
【図5】テスト用マイクロ命令例である。
【図6】学習実行に必要な情報の例である。
【図7】学習実行に必要な情報と格納先の対応例であ
る。
【図8】従来例(ハードワイアド方式の学習アルゴリズ
ム例)である。
【図9】ニューロンの基本回路構成図である。
【図10】複数のニューロン間の(バス)結合である。
【図11】ニューロンの階層的結合である。
【図12】ニューロコンピュータシステム構成図(詳
細)である。
【図13】使用形態図(スタンドアロン型、およびサー
バ型)である。
【図14】システム内パイプラインの例である。
【図15】最大値、最小値検出用パイプラインの例であ
る。
【図16】データ選択用およびデータ退避用パイプライ
ンの例である。
【図17】データ退避制御回路である。
【図18】マイクロポインタ制御回路である。
【図19】CCR回路である。
【図20】書き込み制御回路とNRQ(ニューロンリク
エスト)生成回路である。
【図21】ニューロンリクエスト信号結線図である。
【図22】下位ビット切捨て時の負の数のrun_to
_0の機能用回路である。
【図23】ソフトウエア体系図である。
【図24】ニューラルネットの構成例である。
【図25】グローバルメモリのデータ配置例である。
【図26】ニューロン内メモリの重み値データ配置例で
ある。
【図27】仮想ニューロン実現例である。
【図28】ニューロコンピュータの概略動作フロー図で
ある。
【図29】制御記憶装置制御手段の詳細ブロック図であ
る。
【図30】グローバルメモリ制御手段の詳細ブロック図
である。
【図31】外部バスインタフェース手段の詳細ブロック
図である。
【図32】ニューロン制御手段の詳細ブロック図であ
る。
【図33】最大値、最小値検出用回路の詳細ブロック図
である。
【図34】最大値、最小値検出動作を説明する図であ
る。
【図35】最大値、最小値検出動作の概略フロー図であ
る。
【図36】ニューロン入力信号発生回路の概略ブロック
図である。
【符号の説明】
501ーニューロコンピュータ、502ーホストコンピ
ュータ、3300ーニューロンアレイ、3310ーニュ
ーロン、524ー1ー制御記憶装置、524ー2ーパラ
メータレジスタ、521ー制御論理、525ーグローバ
ルメモリ、100ーニューロン詳細回路。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 坂口 隆宏 東京都小平市上水本町5丁目20番1号 日 立超エル・エス・アイ・エンジニアリング 株式会社内 (72)発明者 浅井 光男 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 橋本 雅 東京都小平市上水本町5丁目20番1号 日 立超エル・エス・アイ・エンジニアリング 株式会社内 (72)発明者 ▲高▼柳 博 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 岡橋 卓夫 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 茂木 啓次 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 桑原 良博 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 落合 辰男 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内

Claims (36)

    【特許請求の範囲】
  1. 【請求項1】少なくとも1つのプロセッサから構成され
    るプロセッサアレイ、および当該プロセッサアレイを制
    御するためのマイクロプログラム命令を格納する制御記
    憶装置、および当該プロセッサアレイにおいて情報処理
    を行うために必要なデ−タを格納する記憶装置を有し、
    少なくとも1種類のニューラルネットワークによる情報
    処理を実行可能とする情報処理装置において、前記情報
    処理装置の起動・終了等の制御を行い、かつ、学習アル
    ゴリズム、ニューラルネットワーク構造、学習回数、入
    力パターン数、入力信号、教師信号(期待値)等ニュー
    ロコンピュータの学習および実行に必要な情報を前記情
    報処理装置のシステム内に入力するユーザインタフェー
    ス部となるホストコンピュータを備え、前記情報処理装
    置とは、SCSI接続で接続することを特徴とする情報
    処理装置。
  2. 【請求項2】前記ニューロコンピュータの学習および実
    行に必要な情報の内、学習回数、パターン数等の修正頻
    度の高い変数情報を、マイクロプログラム本体を格納す
    るための制御記憶装置とは物理的に異なる記憶装置に格
    納することを特徴とする請求項1記載の情報処理装置。
  3. 【請求項3】前記マイクロプログラムを格納するための
    制御記憶装置は、RAM、EPROM等の書き換え可能
    なメモリで実現することを特徴とする請求項1または2
    記載の情報処理装置。
  4. 【請求項4】前記少なくとも1種類のニューラルネット
    ワークによる情報処理を実行可能とする手段は、前記制
    御記憶装置内には1種類の学習アルゴリズムに対応した
    マイクロプログラムのみを格納し、必要に応じて制御記
    憶装置内のマイクロプログラムを書き換えることにより
    実現することを特徴とする請求項3記載の情報処理装
    置。
  5. 【請求項5】前記少なくとも1種類のニューラルネット
    ワークによる情報処理を実行可能とする手段は、前記制
    御記憶装置内には予め複数の異なる学習アルゴリズムに
    対応したマイクロプログラムを格納しておき、必要に応
    じて異なる学習アルゴリズムを選択的に記憶装置から読
    み出すことにより実現することを特徴とする請求項3記
    載の情報処理装置。
  6. 【請求項6】前記制御記憶装置内に格納するマイクロプ
    ログラムは水平型とし、かつ、水平型にした場合のマイ
    クロ命令のビット数(幅)削減のため、同時実行性の極
    めて低い命令を別命令とすることを特徴とする請求項1
    または2記載の情報処理装置。
  7. 【請求項7】前記同時実行性の極めて低い命令とは、プ
    ロセッサの演算制御用の命令と制御記憶装置の次アドレ
    ス制御用の命令であることを特徴とする請求項6記載の
    情報処理装置。
  8. 【請求項8】前記次アドレス制御用の命令実行時、テス
    ト用の命令を合わせて実行可能なことを特徴とする請求
    項7記載の情報処理装置。
  9. 【請求項9】前記テスト用の命令のテスト対象として、
    各ニューロンの内部の演算機能、内部バスおよび記憶装
    置の出力線の縮退故障であることを特徴とする請求項8
    記載の情報処理装置。
  10. 【請求項10】前記プロセッサを構成する要素として、
    少なくとも乗算器、算術論理演算ユニット(ALU)お
    よび書き換え可能な記憶装置を有することを特徴とする
    請求項1または2記載の情報処理装置。
  11. 【請求項11】前記プロセッサアレイを構成する複数の
    プロセッサ間の結合は、バス結合であることを特徴とす
    る請求項1記載の情報処理装置。
  12. 【請求項12】ニューラルネットワーク動作が記述され
    たプログラムを格納する前記制御記憶装置を制御する手
    段と、ニューラルネットワーク動作に必要なデータを格
    納する前記記憶装置であるグローバルメモリを制御する
    手段と、前記制御記憶装置内の命令によって前記プロセ
    ッサアレイを制御する手段と、外部バスとの間でデータ
    のやり取りのできる外部バスインターフェース手段とを
    有するニューラルネットワーク制御装置を有することを
    特徴とする請求項11記載の情報処理装置。
  13. 【請求項13】前記ニューラルネットワーク制御装置に
    おいて、前記プロセッサアレイを制御する手段が、プロ
    セッサ(ニューロン)のアドレスを発生する回路と、プ
    ロセッサ(ニューロン)の命令を発生する回路と、プロ
    セッサ(ニューロン)の入力信号を発生する回路と、プ
    ロセッサ(ニューロン)の出力信号を処理する回路とを
    有することを特徴とする請求項12記載の情報処理装
    置。
  14. 【請求項14】前記ニューラルネットワーク制御装置に
    おいて、前記ニューラルネットワーク動作を制御するた
    めのプログラムを格納する制御記憶装置を制御する手段
    が、制御記憶装置のアドレスを発生する回路と、制御記
    憶装置のリード/ライト信号を発生する回路と、制御記
    憶装置の入力信号を発生する回路とを有することを特徴
    とする請求項12記載の情報処理装置。
  15. 【請求項15】前記ニューラルネットワーク制御装置に
    おいて、前記ニューラルネットワーク動作に必要なデー
    タを格納する記憶装置であるグローバルメモリを制御す
    る手段が、グローバルメモリのアドレスを発生する回路
    と、グローバルメモリのリード/ライト信号を発生する
    回路と、グローバルメモリの入力信号を発生する回路と
    を有することを特徴とする請求項12記載の情報処理装
    置。
  16. 【請求項16】前記ニューラルネットワーク制御装置に
    おいて、前記外部バスインターフェース手段が、プロセ
    ッサ(ニューロン)群と制御記憶装置制御手段からの割
    込み信号の処理を行う回路と、外部バスからの割込み信
    号の処理を行う回路と、外部バスからプロセッサ(ニュ
    ーロン)とニューラルネットワーク制御装置内のレジス
    タやメモリに直接リード/ライトできる回路とを有する
    ことを特徴とする請求項12記載の情報処理装置。
  17. 【請求項17】前記プロセッサ(ニューロン)のアドレ
    スを発生する回路が、アドレス変換テーブルを有するこ
    とを特徴とする請求項13記載の情報処理装置。
  18. 【請求項18】前記プロセッサ(ニューロン)の出力信
    号を処理する回路が、プロセッサ(ニューロン)出力信
    号の最大値と最小値を検出する回路と、最大値と最小値
    及び最大値と最小値を持つそれぞれのプロセッサ(ニュ
    ーロン)のアドレスとを記憶する回路とを有することを
    特徴とする請求項13記載の情報処理装置。
  19. 【請求項19】前記プロセッサ(ニュ−ロン)を構成す
    る要素として、 書替え可能なメモリ及びレジスタファイルと、 該書替え可能なメモリに書き込むデータを保持するメモ
    リ書き込み値保持手段と、 シフタ及びALUと、 該書替え可能なメモリ、該レジスタ、外部からの入力、
    該ALUまたは該シフタの出力のうちの全部または一部
    の信号の中から、外部からの制御信号に従って2つの値
    を選択する信号選択手段と、 選択された2つの信号を保持する選択信号保持手段と、 該選択信号保持手段に保持された値を入力として乗算を
    行う乗算器と、 該乗算結果を保持する乗算結果保持手段と、 ALUまたはシフタの出力を保持する演算結果保持手段
    と、 該演算結果保持手段と選択信号保持手段と該乗算結果保
    持手段の出力の中からシフタへの入力及びALUへの入
    力を選択するシフタ入力選択手段とALU入力選択手段
    と、 該シフタ及びALUからの出力を選択し、演算結果保持
    手段への入力を決定する第1の演算結果選択手段と、 該シフタ及びALUからの出力を選択し、該メモリ書き
    込み値保持手段、該レジスタファイル、外部への出力の
    選択手段、該2つの信号選択手段への入力を決定する第
    2の演算結果選択手段と、 上記の演算器及び記憶装置の出力の中から外部への出力
    を選択する出力選択手段と、を有することを特徴とする
    請求項1または2記載の情報処理装置。
  20. 【請求項20】前記ニューラルネットワーク制御装置内
    のプロセッサ(ニューロン)の命令を発生する回路から
    の同一の制御信号によって、前記複数のプロセッサ(ニ
    ューロン)が制御されることを特徴とする請求項13記
    載の情報処理装置。
  21. 【請求項21】前記第1の演算結果選択手段を制御する
    前記ニューラルネットワーク制御装置からの制御信号に
    よって前記第2の演算結果選択手段も制御し、かつ両演
    算結果選択手段において、それぞれ違う演算器からの出
    力を選択することを特徴とする請求項19記載の情報処
    理装置。
  22. 【請求項22】前記ニューラルネットワーク制御装置か
    らの制御信号によって読み出しや書き込みを行なう書替
    え可能なメモリを有するプロセッサ(ニューロン)にお
    いて、該書替え可能なメモリへ書き込む前のデータ、ま
    たは、読み出したデータを保持しておくフリップフロッ
    プを有し、該フリップフロップへのデータの書き込み
    を、該制御系からの制御信号の内、メモリの読み出しや
    書き込みとは別の制御信号によって独立に制御すること
    を特徴とする請求項20記載の情報処理装置。
  23. 【請求項23】複数のニューロン回路内の演算器が演算
    の状態を出力し、その値を前記ニューラルネットワーク
    制御装置からの制御信号によって書替えたり保持したり
    するコンディションコードレジスタを有し、該ニューラ
    ルネットワーク制御装置からの別の制御信号によって、
    該コンディションコードレジスタから選択された値に従
    って、該ニューロン回路内にあるメモリやレジスタ等の
    書き込みを制御することを特徴とする情報処理装置また
    はこのような特徴を有する請求項20記載の情報処理装
    置。
  24. 【請求項24】前記プロセッサ(ニューロン)内のコン
    ディションコードレジスタとして、前記ニューラルネッ
    トワーク制御装置からの制御信号に従って、ALUの演
    算結果の (1)符号を表すビット、 (2)演算結果が0かどうかを表すビット、 (3)キャリィアウトを表すビット、 (4)オーバーフローを表すビット、 を保持することを特徴とする請求項23記載の情報処理
    装置。
  25. 【請求項25】内部に持つ演算器の状態を制御信号に従
    って保持するコンディションコードレジスタを有する複
    数のプロセッサ(ニューロン)において、前記ニューラ
    ルネットワーク制御装置からの制御信号に従って、該コ
    ンディションコードレジスタの値またはそれを反転させ
    た信号を書き込むグループレジスタを有し、該グループ
    レジスタに保持されている値に従って、プロセッサ(ニ
    ューロン)内に有する書替え可能なメモリ、レジスタフ
    ァイル、演算結果保持手段などの記憶部分の書き込みを
    制御することを特徴とする請求項24記載の情報処理装
    置。
  26. 【請求項26】前記プロセッサ(ニューロン)内の (1)前記グループレジスタ (2)前記ニューラルネットワーク制御装置からの制御
    信号によって、前記コンディションコードレジスタから
    選択された値、 のANDをとった値によって前記書替え可能なメモリ、
    前記レジスタファイル、前記演算結果保持手段の書き込
    みを制御することを特徴とする請求項25記載の情報処
    理装置。
  27. 【請求項27】内部に持つ演算器の状態を制御信号に従
    って保持するコンディションコードレジスタを有する複
    数のプロセッサ(ニューロン)において、前記ニューラ
    ルネットワーク制御装置からの制御信号に従って、コン
    ディションコードレジスタの値またはそれを反転させた
    信号と、既に書き込まれた値とのANDまたはORをと
    った値を書き込んだり、0または1にセットしたりする
    ことの可能なニューロンリクエストレジスタを有し、複
    数のプロセッサ(ニューロン)から出力される該ニュー
    ロンリクエストレジスタの値のANDまたはORをとっ
    た信号を前記ニューラルネットワーク制御装置に転送
    し、制御信号に基づいてシステム全体の制御に利用する
    ことを特徴とする情報処理装置。
  28. 【請求項28】ニューロンからの信号を基にシステム全
    体の動作を中断させる仕組みを持つことを特徴とする情
    報処理装置。
  29. 【請求項29】ディジタル2進演算型ニューロン機能を
    有する複数のプロセッサから構成される情報処理装置に
    おいて、該プロセッサ内に、外部からの制御信号によっ
    て、複数の信号から1つの信号を選択する信号選択手段
    を有し、該信号選択手段の前後で信号のビット数が減少
    する場合、その信号選択手段が乗算器または乗算器の出
    力またはそれを保持している乗算結果保持手段と、加算
    器またはALUの間にある時には、伝達される信号を符
    号ビットを除いて下づめにし、その他の場合を全て上づ
    めとすることを特徴とする情報処理装置。
  30. 【請求項30】ディジタル2進演算型ニューロン機能を
    有する複数のプロセッサから構成される情報処理装置に
    おいて、該プロセッサ内の信号の下位ビット切捨て手段
    または信号の右シフト手段を有し、かつ該下位ビット切
    捨て手段または右シフト手段において、負の数の切捨て
    部分のビットに1がある時に切り捨てられずに残った数
    に1を足すことを特徴とする情報処理装置。
  31. 【請求項31】システム内の制御命令やデータがパイプ
    ラインによって転送される情報処理装置において、制御
    命令が発行されて、システム内のメモリからニューロン
    にデータが渡されるまでと、制御命令が発行されてニュ
    ーロンからニューロンに値が渡されるまでの間にあるパ
    イプラインの数を一致させることを特徴とする情報処理
    装置。
  32. 【請求項32】制御を司るチップの中で前記パイプライ
    ンの数を一致させるためのフリップフロップを設けるこ
    とを特徴とする請求項31記載の情報処理装置。
  33. 【請求項33】システム内の制御命令やデータがパイプ
    ラインによって転送される情報処理装置において、外部
    からまたは内部の演算状態によってニューラルネットワ
    ークの動作を中断させる際に、中断の指示がでた時のパ
    イプラインの中に残っているデータを退避させた後に実
    際の動作を中断させ、かつ次回のスタート時に該退避さ
    せたデータを順番に出力することを特徴とする情報処理
    装置。
  34. 【請求項34】前記中断時のパイプラインのデータの
    内、プロセッサ(ニューロン)に渡されていないデータ
    に関しては、渡されていないデータ及び制御信号をプロ
    セッサ(ニューロン)に渡して出力してきたデータを退
    避させることを特徴とする請求項33記載の情報処理装
    置。
  35. 【請求項35】スタートが掛かって退避データを全て出
    力させる前に再び中断の指示が出された場合に、出力さ
    せた退避データに対応するパイプライン内データのみを
    退避させることを特徴とする請求項33または34記載
    の情報処理装置。
  36. 【請求項36】前記情報処理装置は、ニューラルネット
    ワークによる情報処理専用の、ニューロコンピュータで
    あることを特徴とする請求項1から35いずれか記載の
    情報処理装置。
JP4319741A 1992-10-29 1992-11-30 汎用型ニューロコンピュータとして用いられる情報処理装置 Pending JPH06195322A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP4319741A JPH06195322A (ja) 1992-10-29 1992-11-30 汎用型ニューロコンピュータとして用いられる情報処理装置
US08/141,798 US5524175A (en) 1992-10-29 1993-10-27 Neuro-computer system for executing a plurality of controlling algorithms

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
JP4-291159 1992-10-29
JP29116092 1992-10-29
JP29115992 1992-10-29
JP4-291163 1992-10-29
JP29116392 1992-10-29
JP4-291160 1992-10-29
JP4319741A JPH06195322A (ja) 1992-10-29 1992-11-30 汎用型ニューロコンピュータとして用いられる情報処理装置

Publications (1)

Publication Number Publication Date
JPH06195322A true JPH06195322A (ja) 1994-07-15

Family

ID=27479554

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4319741A Pending JPH06195322A (ja) 1992-10-29 1992-11-30 汎用型ニューロコンピュータとして用いられる情報処理装置

Country Status (2)

Country Link
US (1) US5524175A (ja)
JP (1) JPH06195322A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2010106587A1 (ja) * 2009-03-18 2012-09-13 パナソニック株式会社 ニューラルネットワークシステム
JP2017219960A (ja) * 2016-06-06 2017-12-14 株式会社デンソー 演算処理装置
JP2019204492A (ja) * 2018-03-27 2019-11-28 インテル・コーポレーション ニューロモルフィック・アクセラレータ・マルチタスキング
CN111340200A (zh) * 2016-01-20 2020-06-26 中科寒武纪科技股份有限公司 用于执行人工神经网络正向运算的装置和方法
JP2021166033A (ja) * 2018-10-18 2021-10-14 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッドShanghai Cambricon Information Technology Co., Ltd. ネットワークオンチップによるデータ処理方法及び装置
CN113792847A (zh) * 2017-02-23 2021-12-14 大脑系统公司 加速的深度学习的设备、方法和系统

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2138840C1 (ru) * 1994-07-08 1999-09-27 Сименс АГ Система управления для установки электростанции
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
US5956703A (en) * 1995-07-28 1999-09-21 Delco Electronics Corporation Configurable neural network integrated circuit
KR0170505B1 (ko) * 1995-09-15 1999-03-30 양승택 다층퍼셉트론 신경회로망의 n비트 데이타 표현에 의한 학습방법
US6067536A (en) * 1996-05-30 2000-05-23 Matsushita Electric Industrial Co., Ltd. Neural network for voice and pattern recognition
US5956701A (en) * 1997-06-13 1999-09-21 International Business Machines Corporation Method and system for using an artificial neural net for image map processing
US5996024A (en) * 1998-01-14 1999-11-30 Emc Corporation Method and apparatus for a SCSI applications server which extracts SCSI commands and data from message and encapsulates SCSI responses to provide transparent operation
JP2002024199A (ja) * 1998-02-20 2002-01-25 Souwa Kenkyusho:Kk 二値システムの学習方法
US6366897B1 (en) * 1999-07-26 2002-04-02 Hnc Software, Inc. Cortronic neural networks with distributed processing
US6505475B1 (en) 1999-08-20 2003-01-14 Hudson Technologies Inc. Method and apparatus for measuring and improving efficiency in refrigeration systems
US6718227B1 (en) * 1999-12-16 2004-04-06 Texas Instruments Incorporated System and method for determining a position error in a wafer handling device
US7058788B2 (en) * 2001-02-23 2006-06-06 Falconstor Software, Inc. Dynamic allocation of computer memory
US7093127B2 (en) * 2001-08-09 2006-08-15 Falconstor, Inc. System and method for computer storage security
US6715098B2 (en) 2001-02-23 2004-03-30 Falconstor, Inc. System and method for fibrechannel fail-over through port spoofing
US20040233910A1 (en) * 2001-02-23 2004-11-25 Wen-Shyen Chen Storage area network using a data communication protocol
JP2003010762A (ja) * 2001-06-28 2003-01-14 Konica Corp 塗布装置及び塗布方法
SG155062A1 (en) * 2002-12-09 2009-09-30 Hudson Technologies Inc Method and apparatus for optimizing refrigeration systems
US8463441B2 (en) 2002-12-09 2013-06-11 Hudson Technologies, Inc. Method and apparatus for optimizing refrigeration systems
US7401057B2 (en) * 2002-12-10 2008-07-15 Asset Trust, Inc. Entity centric computer system
US7398260B2 (en) * 2003-03-24 2008-07-08 Fiske Software Llc Effector machine computation
US8712942B2 (en) * 2003-03-24 2014-04-29 AEMEA Inc. Active element machine computation
US8010467B2 (en) * 2003-03-24 2011-08-30 Fiske Software Llc Active element machine computation
US8019705B2 (en) * 2003-03-24 2011-09-13 Fiske Software, LLC. Register and active element machines: commands, programs, simulators and translators
JP2006170949A (ja) * 2004-12-20 2006-06-29 Fujitsu Ltd ビットパターン学習プログラムおよびビットパターン学習方法
JP3981387B2 (ja) * 2005-02-04 2007-09-26 有限会社増田経済研究所 株式指数の表示装置
JP4896839B2 (ja) * 2007-08-31 2012-03-14 ルネサスエレクトロニクス株式会社 マイクロプロセッサおよびデータ処理方法
KR101669618B1 (ko) * 2010-01-15 2016-10-26 삼성전자주식회사 디스플레이 장치 및 그 디스플레이 방법
US10268843B2 (en) 2011-12-06 2019-04-23 AEMEA Inc. Non-deterministic secure active element machine
US10417559B2 (en) * 2015-06-22 2019-09-17 International Business Machines Corporation Communicating postsynaptic neuron fires to neuromorphic cores
CN111860811B (zh) * 2016-04-27 2024-01-16 中科寒武纪科技股份有限公司 一种用于执行人工神经网络全连接层正向运算的装置和方法
CN110908931B (zh) 2016-08-26 2021-12-28 中科寒武纪科技股份有限公司 Tlb模块的更新方法
US10387298B2 (en) * 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
US10795836B2 (en) 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
TWI659324B (zh) * 2018-02-14 2019-05-11 倍加科技股份有限公司 電路規劃結果產生方法與系統
US11663461B2 (en) * 2018-07-05 2023-05-30 International Business Machines Corporation Instruction distribution in an array of neural network cores
CN110738316B (zh) * 2018-07-20 2024-05-14 北京三星通信技术研究有限公司 基于神经网络的操作方法、装置及电子设备
US11914860B2 (en) * 2018-08-20 2024-02-27 Macronix International Co., Ltd. Data storage for artificial intelligence-based applications
US10636484B2 (en) * 2018-09-12 2020-04-28 Winbond Electronics Corporation Circuit and method for memory operation
CN111222632B (zh) * 2018-11-27 2023-06-30 中科寒武纪科技股份有限公司 计算装置、计算方法及相关产品
JP7297468B2 (ja) * 2019-02-28 2023-06-26 キヤノン株式会社 データ処理装置及びその方法
KR20210060024A (ko) * 2019-11-18 2021-05-26 에스케이하이닉스 주식회사 신경망 처리 회로를 포함하는 메모리 장치
CN114142439B (zh) * 2021-11-18 2023-12-01 广东电网有限责任公司电力调度控制中心 一种基于厂站母线失压的复电方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4796199A (en) * 1987-02-24 1989-01-03 Oregon Graduate Center Neural-model, information-handling architecture and method
EP0400147B1 (en) * 1988-08-31 1997-10-15 Fujitsu Limited Neurocomputer
JPH0264788A (ja) * 1988-08-31 1990-03-05 Fujitsu Ltd ニューロンアーキテクチャ
US5109475A (en) * 1988-09-19 1992-04-28 Hitachi, Ltd. Method and a system for selection of time series data
US4918617A (en) * 1988-11-10 1990-04-17 Oregon Graduate Center Neural-model computational system with multi-directionally overlapping broadcast regions
DE68927474T2 (de) * 1988-12-29 1997-05-22 Sharp Kk Neuro-Rechner
EP0378115B1 (en) * 1989-01-06 1998-09-30 Hitachi, Ltd. Neural computer
US5204938A (en) * 1989-05-30 1993-04-20 Loral Aerospace Corp. Method of implementing a neural network on a digital computer
US5214743A (en) * 1989-10-25 1993-05-25 Hitachi, Ltd. Information processing apparatus
JP2810170B2 (ja) * 1989-12-15 1998-10-15 株式会社日立製作所 多層型ネットワークの学習装置
JP3172163B2 (ja) * 1990-05-07 2001-06-04 富士通株式会社 ニューラルネットワークにおける結合のグループ単位学習調整方式
JPH04276852A (ja) * 1991-03-04 1992-10-01 Toshiba Corp 情報処理装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2010106587A1 (ja) * 2009-03-18 2012-09-13 パナソニック株式会社 ニューラルネットワークシステム
US8694451B2 (en) 2009-03-18 2014-04-08 Panasonic Corporation Neural network system
CN111340200A (zh) * 2016-01-20 2020-06-26 中科寒武纪科技股份有限公司 用于执行人工神经网络正向运算的装置和方法
CN111340200B (zh) * 2016-01-20 2024-05-03 中科寒武纪科技股份有限公司 用于执行人工神经网络正向运算的装置和方法
JP2017219960A (ja) * 2016-06-06 2017-12-14 株式会社デンソー 演算処理装置
CN113792847A (zh) * 2017-02-23 2021-12-14 大脑系统公司 加速的深度学习的设备、方法和系统
CN113792847B (zh) * 2017-02-23 2024-03-08 大脑系统公司 加速的深度学习的设备、方法和系统
JP2019204492A (ja) * 2018-03-27 2019-11-28 インテル・コーポレーション ニューロモルフィック・アクセラレータ・マルチタスキング
JP2021166033A (ja) * 2018-10-18 2021-10-14 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッドShanghai Cambricon Information Technology Co., Ltd. ネットワークオンチップによるデータ処理方法及び装置

Also Published As

Publication number Publication date
US5524175A (en) 1996-06-04

Similar Documents

Publication Publication Date Title
JPH06195322A (ja) 汎用型ニューロコンピュータとして用いられる情報処理装置
US4228498A (en) Multibus processor for increasing execution speed using a pipeline effect
EP0075593B1 (en) A bit slice microprogrammable processor for signal processing applications
US4594655A (en) (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
US4879676A (en) Method and apparatus for precise floating point exceptions
US5081573A (en) Parallel processing system
EP0517429A2 (en) CPU with integrated multiply/accumulate unit
US4229801A (en) Floating point processor having concurrent exponent/mantissa operation
US8612726B2 (en) Multi-cycle programmable processor with FSM implemented controller selectively altering functional units datapaths based on instruction type
Agrawal et al. MARS: A multiprocessor-based programmable accelerator
US4584642A (en) Logic simulation apparatus
US4823258A (en) Index limited continuous operation vector processor
JPH04233040A (ja) コンピュータプログラム実行シミュレーションシステム
JPH03286332A (ja) デジタルデータ処理装置
EP0452361A1 (en) Arithmetic unit
AU9502098A (en) Autonomously cycling data processing architecture
EP0378816A2 (en) Production line method and apparatus for instruction execution
US7234044B1 (en) Processor registers having state information
EP0374598B1 (en) Control store addressing from multiple sources
EP0601716A1 (en) Binary multiplier
US20060248311A1 (en) Method and apparatus of dsp resource allocation and use
KR100639146B1 (ko) 카테시안 제어기를 갖는 데이터 처리 시스템
US20230297824A1 (en) Programmable non-linear activation engine for neural network acceleration
JP2793357B2 (ja) 並列演算装置
US7581088B1 (en) Conditional execution using an efficient processor flag

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20020709