IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ジーアールエーアイ・マター・ラボズ・エス・ア・エスの特許一覧

特許7453229データ処理モジュール、データ処理システム、およびデータ処理方法
<>
  • 特許-データ処理モジュール、データ処理システム、およびデータ処理方法 図1
  • 特許-データ処理モジュール、データ処理システム、およびデータ処理方法 図2A
  • 特許-データ処理モジュール、データ処理システム、およびデータ処理方法 図2B
  • 特許-データ処理モジュール、データ処理システム、およびデータ処理方法 図2C
  • 特許-データ処理モジュール、データ処理システム、およびデータ処理方法 図2D
  • 特許-データ処理モジュール、データ処理システム、およびデータ処理方法 図3
  • 特許-データ処理モジュール、データ処理システム、およびデータ処理方法 図4
  • 特許-データ処理モジュール、データ処理システム、およびデータ処理方法 図5
  • 特許-データ処理モジュール、データ処理システム、およびデータ処理方法 図6
  • 特許-データ処理モジュール、データ処理システム、およびデータ処理方法 図7
  • 特許-データ処理モジュール、データ処理システム、およびデータ処理方法 図8
  • 特許-データ処理モジュール、データ処理システム、およびデータ処理方法 図9
  • 特許-データ処理モジュール、データ処理システム、およびデータ処理方法 図10
  • 特許-データ処理モジュール、データ処理システム、およびデータ処理方法 図11
  • 特許-データ処理モジュール、データ処理システム、およびデータ処理方法 図11A
  • 特許-データ処理モジュール、データ処理システム、およびデータ処理方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-11
(45)【発行日】2024-03-19
(54)【発明の名称】データ処理モジュール、データ処理システム、およびデータ処理方法
(51)【国際特許分類】
   G06N 3/04 20230101AFI20240312BHJP
【FI】
G06N3/04
【請求項の数】 13
(21)【出願番号】P 2021529520
(86)(22)【出願日】2019-07-31
(65)【公表番号】
(43)【公表日】2021-12-02
(86)【国際出願番号】 EP2019070643
(87)【国際公開番号】W WO2020025680
(87)【国際公開日】2020-02-06
【審査請求日】2022-07-04
(31)【優先権主張番号】18290090.2
(32)【優先日】2018-07-31
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】521047465
【氏名又は名称】ジーアールエーアイ・マター・ラボズ・エス・ア・エス
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】サイド・ザヒド・アハメド
(72)【発明者】
【氏名】ダニエル・ボルトロッティ
(72)【発明者】
【氏名】ジュリアン・レイノルド
【審査官】北川 純次
(56)【参考文献】
【文献】米国特許出願公開第2018/0174026(US,A1)
【文献】国際公開第2017/168275(WO,A1)
【文献】特表2016-522495(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02 - 3/10
(57)【特許請求の範囲】
【請求項1】
複数のニューラルユニットを備えるスパイキングニューラルネットワークを時間多重実行するための、脳型処理モジュール(1)であって、各ニューラルユニットが、初期状態、1つまたは複数の遷移状態、および発火状態を含む複数の状態から選択されるニューラル状態を有することが可能であり、各ニューラルユニットが、そのニューラル状態を指定する状態情報を記憶するためのニューロン状態メモリユニット(11)内に、それぞれのアドレス指定可能なメモリエントリを有し、各ニューラルユニットについての前記状態情報が、前記ニューラルユニットに宛てられたイベントメッセージに応じて、前記脳型処理モジュールに組み込まれた処理機能(10)によって時間多重式に計算および更新され、前記処理機能が、更新されたニューラルユニットが前記発火状態を有することを計算すると、前記更新されたニューラルユニットを前記初期状態にリセットし、出力シナプススライスメモリユニット内の、前記更新されたニューラルユニットに関するそれぞれのエントリにアクセスし、および前記それぞれのエントリから、出力シナプスインデックスのそれぞれの範囲についての標識を取り出し、前記処理機能が、前記それぞれの範囲内の各出力シナプスインデックスについて、
- 出力シナプスメモリユニット(13)内のそれぞれのエントリにアクセスすること、
- 前記それぞれのエントリから出力シナプス属性データを取り出すことであって、前記出力シナプス属性データが、送出の遅延と、入力シナプスメモリユニット(14)内のそれぞれのエントリに対応するそれぞれの入力シナプスインデックスとを指定し、前記入力シナプスメモリユニット内の前記それぞれのエントリが、関連付けられたニューラルユニットへの参照を含む、前記取り出すこと、
および
- 前記関連付けられたニューラルユニットに発火イベントメッセージを、前記指定された遅延を伴って送出すること
を行う、脳型処理モジュール。
【請求項2】
前記入力シナプスメモリユニット(14)内のエントリがさらに、前記処理機能が前記関連付けられたニューラルユニットを更新するときに発火メッセージに重み付けするのに用いる重みを指定する、請求項1に記載の脳型処理モジュール。
【請求項3】
前記処理機能(10)が、制御機能(10A)および計算機能(10B)を備え、前記制御機能(10A)が、ニューラルユニットの状態の更新が必要か否かを定期的に検証および信号伝達するように構成され、前記計算機能(10B)が、前記制御機能(10A)によってこれが信号伝達された場合に、ニューラルユニットの更新された状態を計算するように構成される、請求項1または2に記載の脳型処理モジュール。
【請求項4】
ニューラルユニットの状態の更新が必要か否かを前記制御機能(10A)が判定するのに役立つ選択情報を含む選択情報メモリユニットをさらに含み、前記選択情報が、ニューラルユニットに発火イベントメッセージが送出されたかどうかを示し、かつ/またはニューラルユニットが活性状態にあると以前に判定されたかどうかを示す、請求項3に記載の脳型処理モジュール。
【請求項5】
前記処理機能(10)が、前記出力シナプススライスメモリユニット(12)、前記出力シナプスメモリユニット(13)、および前記入力シナプスメモリユニット(14)のうちの少なくとも1つを更新するように構成される再構成機能(10C)をさらに備える、請求項1から4のいずれか一項に記載の脳型処理モジュール。
【請求項6】
請求項1から5のいずれか一項に記載の脳型処理モジュールである複数の脳型処理モジュールおよびメッセージベースのネットワークを備え、各脳型処理モジュールがさらにネットワーク通信モジュールを備え、前記脳型処理モジュールがそれのネットワーク通信モジュールによって前記メッセージベースのネットワークに結合されている、脳型処理システム。
【請求項7】
前記複数の脳型処理モジュールとともに前記メッセージベースのネットワークが、ネットワークオンチップとして形成される、請求項6に記載の脳型処理システム。
【請求項8】
脳型処理モジュールの前記出力シナプスメモリユニット(13)が、それぞれのアドレス範囲内の各シナプスインデックスについて、さらに、宛先ニューラルユニットのそれぞれのネットワークアドレスを指定する、請求項6または7に記載の脳型処理システム。
【請求項9】
脳型処理モジュールにおいて前記出力シナプススライスメモリユニット(12)、前記出力シナプスメモリユニット(13)、および前記入力シナプスメモリユニット(14)のうちの少なくとも1つを更新するように構成されたホストコンピュータをさらに備える、請求項6から8のいずれか一項に記載の脳型処理システム。
【請求項10】
複数のニューラルユニットを備えるスパイキングニューラルネットワークを時間多重実行するための、脳型処理方法であって、各ニューラルユニットが、初期状態、1つまたは複数の遷移状態、および発火状態を含む複数の状態から選択されるニューラル状態を有することが可能であり、前記方法が、以下に指定する条件による以下のステップS3~S8のシーケンス、すなわち、
ニューラルユニットに関するニューラル状態情報を、ニューロン状態メモリユニット内のそれぞれのアドレス指定可能なメモリエントリから取り出すステップ(S3)と、
前記状態情報を、前記ニューラルユニットに宛てられたイベントメッセージに応じて更新するステップ(S4)と、
前記更新された状態情報が発火状態を示すかどうかを判定するステップ(S5)と、
前記示す判定に従って、前記初期状態を示すように前記状態情報をリセットし(S6)、発火イベントメッセージを分配するステップ(S7)であって、以下のサブステップ、すなわち、
出力シナプススライスメモリユニット(12)内の、前記更新されたニューラルユニットに関する適切なメモリエントリにアクセスするサブステップ(S7A)、
前記適切なメモリエントリから、出力シナプスインデックスのそれぞれの範囲についての標識を取り出すサブステップ(S7B)、
それぞれの範囲内の各出力シナプスインデックスについて、
出力シナプスメモリユニット内のそれぞれのエントリにアクセスし(S7C)、出力シナプス属性データを取り出し、前記出力シナプス属性データが、送出の遅延と、関連付けられたニューラルユニットへの参照を含む入力シナプスメモリユニット内のそれぞれのエントリに対応するそれぞれの入力シナプスインデックスとの詳述を含み、
前記関連付けられたニューラルユニットに前記発火イベントメッセージを、前記指定された遅延を伴って送出するサブステップ(S7D)
を含む、ステップと、
それぞれのニューラルユニットに関する前記更新された状態情報を、前記ニューロン状態メモリユニット内の、そのそれぞれのアドレス指定可能な第1のメモリエントリ内に記憶するステップ(S8)と
を反復することを含む、脳型処理方法。
【請求項11】
前記それぞれのニューラルユニットについて更新実施可能条件に適合するかどうかを統合コントローラによって検証すること(S2)によって、前記指定されたステップS3からS8のシーケンスを用いて更新すべきニューラルユニットを選択するステップを含む、請求項10に記載の脳型処理方法。
【請求項12】
前記入力シナプスメモリユニット(14)内の前記それぞれのエントリが、前記関連付けられたニューラルユニットを更新するときに処理機能が発火メッセージに重み付けするのに用いる重みを指定し、前記方法が、前記取り出す(S7C)後であって前記送出する(S7D)の前に中間ステップ(S7CD)を含み、前記中間ステップは、宛先情報から前記詳述を取り出すことと、前記入力シナプスメモリユニット(14)内の、前記詳述によって指定されているそれぞれのアドレス指定可能なメモリエントリにアクセスすることと、前記アクセスされたそれぞれのメモリエントリから、前記関連付けられたニューラルユニットの識別情報を取り出すこととを含む、請求項10または11に記載の脳型処理方法。
【請求項13】
前記出力シナプススライスメモリユニット、前記出力シナプスメモリユニット、および前記入力シナプスメモリユニットのうちの少なくとも1つを更新することによってニューラルネットワークトポロジを再構成するステップを含む、請求項10、11、または12に記載の脳型処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理モジュール、データ処理システム、およびデータ処理方法に関する。
【背景技術】
【0002】
コグニティブコンピューティングの到来により、ヒトの脳の働きに基づく代替コンピューティングパラダイムとしてのニューラルコンピューティングが提案されている。ニューラルコンピューティングデバイスは、それらの本質的に並列のアーキテクチャにより、フォンノイマンメモリボトルネックを軽減することが可能である。生物学的原理に発想を得て、ニューラルコンピューティングデバイスは、シナプス結合を通じて互いに対話するニューラルユニットとして設計される。これらの人工ニューラルコンピューティングデバイスのIC実装は、アナログ的に動作するそれらの生物学的対応物とは反対に、典型的にはデジタル性のものである。
【0003】
これにより、一方では、シリコン上へのそれらの実装が容易になり、他方では、数十年に及ぶデジタル集積回路設計において達成されてきた多大な技術的進歩を活用する機会が与えられる。現在利用可能なデジタル処理要素とは反対に、生物学的ニューロンは、数十から数百Hzという非常に低い周波数で働く。したがって、これにより、それらの実装に大きな負担が課されることはない。しかし、シリコン上に、生物学的システムに準拠する属性を有する処理モジュールを設計することは、最新技術を用いても実用的とは依然として程遠く、というのも、典型的な生物学的システムは、典型的には数十億ものニューロンを収容しており、それらのニューロンはそれぞれ平均して複数のシナプスを有するためである。1つの手法は、そのような複雑なシステムを、複数のニューラルユニットが処理機能を共有する時間多重設計を用いて模倣するというものである。デジタルハードウェアは、生物学的ニューロンが働く速度よりも数桁速く実行することができるので、共有の処理機能はニューロンの振る舞いを現実的にエミュレートすることができ、その上、この手法により、より高密度の仮想ニューロンおよびそれらのシナプスを実装するためのスペースが節減される。
【0004】
スパイキングニューラルネットワークは、ニューラルユニット間の情報が発火イベントメッセージとして交換されることを特徴とする。発火イベントメッセージ(スパイク)の放出は、データが利用可能であるということと、先行する発火イベントメッセージの放出から経過した時間間隔がデータ値を示すということを示す。時間間隔の長さは、交換されるデータ値を表す。一部の設計では、発火頻度がデータ値を表す。他の設計では、時間間隔の長さがデータ値を表すことがある。どちらの場合にも、しきい値時間間隔を超える時間間隔の間のイベントの不在がデータの不在を示す、という慣例が広く行われている可能性がある。これは、特に疎に満たされているときのアレイ処理にとって、例えば監視カメラからのデータの処理にとって、特に重要である。従来のデータ処理システムでは、各画像要素が所定のリフレッシュ周波数でスキャンされる必要がある。それによって、スキャニングの結果、スキャンされた画像アレイ内の画素数およびリフレッシュ周波数に比例したデータストリームがもたらされる。スパイキングニューラルネットワークが画像アレイに結合されている場合、画像内容の変化を検出したニューラルユニットだけが、データを二次ニューラルユニットに送出する。そして、それらの番になって、送出されたデータによってトリガされた二次ニューラルユニットだけがそれ自体でデータを送出する。それによって、計算負荷ならびにデータ伝送チャネルの負荷が大幅に低減される。
【0005】
脳型(neuromorphic)データ処理システム、すなわちニューラルネットワークを模倣したデータ処理システムは、2Dメッシュの形に一緒にグループ化され、パケット交換ネットワークオンチップ(NoC)を介して互いに通信する、複数の時間多重処理モジュールを備えてよい。各時間多重処理モジュールは、ニューラルコンピューティングコアと見なすこともできる。この手法の一例が、Filipp Akopyanらの「TrueNorth: Design and Tool Flow of a 65 mW 1 Million Neural unit Programmable Neurosynaptic Chip」、IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (Volume:34、発行:2015年10月10日)、https://ieeexplore.ieee.org/document/7229264/により記載されている。
【0006】
知られているこのデータ処理システムの不利な点は、それが、ニューラルユニットおよびそれらのシナプスのマッピング比を制限している、ということである。各ニューラルユニットは、固定数の入力シナプスと1つの出力シナプスを有する。このことにより、応用ニューラルネットワークが、発火(スパイキング)ニューラルユニットが発火イベントメッセージをその固定数よりも多数のニューラルユニットに送出しなければならないことを要求する場合に、非効率的となる。この機能を達成するには、ユーザがニューラルユニットを複製するか、またはリレーニューラルユニットを作成しなければならない。いずれにせよ、それによりリソースが浪費され、電力消費が増加する。
【発明の概要】
【課題を解決するための手段】
【0007】
追加のニューラルユニットを必要とせずより柔軟にニューラルユニットの入力シナプス数および出力シナプス数を変更することの可能な脳型データ処理モジュールを提供することが、本発明の第1の目的である。
【0008】
複数のそのような処理モジュールを有する脳型データ処理システムを提供することが、本発明の第2の目的である。
【0009】
対応する脳型データ処理方法を提供することが、本発明の第3の目的である。
【0010】
本発明の第1の態様によれば、改善された脳型データ処理モジュールが特許請求される。データ処理モジュールは、ニューラルユニット状態が時間多重式に更新されるスパイキングニューラルネットワークとして動作する。改善されたデータ処理モジュールは、ネットワークトポロジを画定する、個別にアドレス指定可能なメモリユニットの組合せを備える。これらのメモリユニットのうちの第1のものは、入力シナプスメモリユニットであり、それは、入力シナプス識別番号でインデックス付けされてよく、また識別された各入力シナプスについて、発火イベントメッセージを受領する入力としての識別された入力シナプスを有するニューラルユニット識別番号、およびその入力において受領されるそのようなメッセージに割り当てるべき重みを含む、入力シナプス属性を提供する。これらのメモリユニットのうちの第2のものは、出力シナプスメモリユニットであり、それは、出力シナプス識別番号でインデックス付けされてよく、また識別された各出力シナプスについて、発火イベントメッセージの宛先である入力シナプス識別番号、およびその宛先にそのようなメッセージが送達されるのに伴う遅延(もしあれば)を含む、出力シナプス属性を提供する。これらのメモリユニットのうちの第3のものは、出力シナプススライスメモリユニットであり、それは、ニューラルユニット識別番号でインデックス付けされてよく、また識別された各ニューラルユニットについて、出力シナプスメモリユニット内のインデックスの範囲を指定する。一実施形態では、出力シナプスメモリユニットは入力シナプスメモリユニットと、シナプスメモリユニットとして統合されてよい。ネットワークトポロジは、これらのメモリユニットを書き換えることによって柔軟に再構成され得る。ニューラルユニットの出力シナプススライスが、出力シナプススライスメモリユニット内の単一エントリによって定められるので、ニューラルユニットのファンアウト範囲は実質的に無制限に変更され得る。このエントリによって参照される出力シナプス数は、0、1、2とすることもでき、あるいは全ての出力シナプスの合計数が出力シナプスメモリユニット内のエントリ数を超えない限り、他の任意の数とすることもできる。それによって、高ファンアウトを得るためにニューラルユニットを重複させることやリレーニューラルユニットを使用することといった微調整が不要になる。これらの3つのメモリユニットの内容を書き換えることによるネットワークトポロジの構成は、プログラマーによって、または機械学習プロセスの一環として動作中に、行われてよい。
【0011】
この特徴は、電力消費の低減を引き出す助けにもなり、というのも、そのようなシステムにおいてシナプスはニューラルユニットよりも高価な部分であるためである。所与の応用例について性能のスラックマージンがある場合、マッパーは、この柔軟性を利用して、より少数のニューラルエンジンにより多くのネットワークを詰め込むことができる。このことが逆に、使用されていないデータ処理モジュールを低電力モードにすることによって、電力を節減する助けになる。この特徴は、複数の他のシナリオにおいても活用することができ、そのうちの1つが、デバッグシナプスを追加するというものである。
【0012】
本発明の他の態様として、複数の脳型データ処理モジュールおよびメッセージベースのネットワークを備える脳型データ処理システムが提供される。このとき、各脳型データ処理モジュールはさらにネットワーク通信モジュールを備え、それらの脳型データ処理モジュールはそれ自体のネットワーク通信モジュールによってメッセージベースのネットワークに結合されている。時間多重脳型データ処理モジュールは、例えば、2Dメッシュの形に一緒にグループ化され、パケット交換ネットワークオンチップ(NoC)を介して互いに通信してよい。あるいは、3Dメッシュの形態のさらなる統合が行われてもよい。
【図面の簡単な説明】
【0013】
図1】ニューラルユニットを概略的に示す図である。
図2A】ニューラルユニットから構成されたニューラルネットの一例を概略的に示す図である。
図2B】ニューラルユニットから構成されたニューラルネットの一例を概略的に示す図である。
図2C】ニューラルユニットから構成されたニューラルネットの一例を概略的に示す図である。
図2D】ニューラルユニットから構成されたニューラルネットの一例を概略的に示す図である。
図3】脳型処理モジュールを概略的に示す図である。
図4】脳型処理システムを概略的に示す図である。
図5】脳型処理モジュールの機能的表現を概略的に示す図である。
図6図5の第1の態様をより詳細に示す図である。
図7図5の第2の態様をより詳細に示す図である。
図8図5の第3の態様をより詳細に示す図である。
図9図5の第4の態様をより詳細に示す図である。
図10図5の第5の態様をより詳細に示す図である。
図11】脳型処理方法の一例を示す図である。
図11A】この方法のサブステップを示す図である。
図12】この方法の一態様を示す図である。
【発明を実施するための形態】
【0014】
ここで提案する実施形態では、スパイキングニューラルネットワークとして(再)構成可能である、スケーラブルな脳型データ処理モジュールを提示する。
【0015】
図1に示すニューラルユニットは、ニューロンを備え、樹状突起とも示されている少なくとも1つの入力シナプス、および軸索突起とも示されている少なくとも1つの出力シナプスを有する。ニューラルユニットは、初期状態、1つまたは複数の遷移状態、およびそれがスパイクを発生させる発火状態を含む複数の状態から選択されるニューラル状態を有することが可能である。そのニューラル状態は、その少なくとも1つの入力シナプスによって受領した入力スパイクに応じて決まり、典型的には、ニューラル状態はまた、例えばそれがしばらくの間スパイクを受領しなかった場合に初期状態に向かう遷移によって、時間の経過とともに自律的に変化する。ニューラルユニットの少なくとも1つの入力シナプスは、入力スパイクを、正とすることも負とすることもできる重みによって変化させてよい。少なくとも1つの出力シナプスは、スパイクを、ある特定の遅延を伴って送出してよい。
【0016】
図2A図2Cは、そのようなニューラルユニットから構成することのできる例示的ニューラルネットワークを示す。WO2017/009543に提示されている図2Dの符号なしメモリネットワークなどの他の例は、それによって構成することができる。より具体的には、図2Aは、3つのニューラルユニット(N0、N1、およびN2)が、入力シナプス(Di)および出力シナプス(Ai)に分類されるシナプスによって接続された、スパイキングニューラルネットワークを示す。
【0017】
図2Bは、1つのニューラルユニットN0、5つの入力シナプス(D0、...、D4)、および1つの出力シナプスA0をもつスパイキングニューラルネットワークを示す。
【0018】
図2Cは、2つのニューラルユニットN0、N1、7つの入力シナプス(D0、...、D6)、および8つの出力シナプス(A0、A1、...、A7)をもつ一例を示す。
【0019】
ニューラルネットワークの原理はよく知られているが、そのようなニューラルネットワークを効率的に実装することのできる処理モジュールを提供することは困難である。本出願は、とりわけ容易に再構成され得る脳型処理モジュールを提供する。
【0020】
図3は、上で詳しく述べたような複数のニューラルユニットを備えるスパイキングニューラルネットワークを時間多重実行するための、脳型処理モジュール1の一実施形態を概略的に示す。図示の実施形態では、各ニューラルユニットが、ニューロン状態メモリユニット11内に、それぞれのアドレス指定可能なメモリエントリを有する。ニューロン状態メモリユニット11は、各ニューラルユニットのニューラル状態を指定する状態情報を記憶する。その中に収容された各ニューラルユニットについての状態情報は、ニューラルユニットに宛てられたイベントメッセージに応じて、処理機能10によって時間多重式に計算および更新される。
【0021】
あるニューラルユニットが更新の結果として発火状態を有することを処理機能が検出した場合、処理機能は、更新されたニューラルユニットを初期状態にリセットする。処理機能はさらに、出力シナプススライスメモリユニット12内の、更新されたニューラルユニットに割り当てられたエントリにアクセスし、そのエントリから、更新されたニューラルユニットに割り当てられたシナプスインデックスの範囲についての標識を取り出す。処理機能は、範囲内のインデックスの各々について、シナプスメモリユニット13内のそれぞれのエントリにアクセスし、処理機能はまた、アクセスされたエントリからシナプス属性データを取り出し、そのシナプス属性データに関連付けられた各ニューラルユニットに発火イベントメッセージを送出する。
【0022】
図3に示す実施形態では、シナプスメモリユニット13は、出力シナプスメモリユニットである。本実施形態における脳型処理モジュールはさらに、入力シナプスメモリユニット14を含む。出力シナプスメモリユニット13内のエントリは、入力シナプスインデックスを含む。後者は、入力シナプスメモリユニット14内の対応するエントリを指し示す。入力シナプスメモリユニット14内の対応するエントリは、関連付けられたニューラルユニットへの参照を含む。
【0023】
図3の実施形態では、出力シナプスメモリユニット13内のエントリはさらに、関連付けられたニューラルユニットに発火イベントが送出されるのに伴う遅延を指定する。
【0024】
それに加えて、入力シナプスメモリユニット14内のエントリはさらに、処理機能が関連付けられたニューラルユニットを更新するときに発火メッセージに重み付けするのに用いる重みを指定する。
【0025】
図4に示すように、脳型処理システム100内に複数の脳型処理モジュール1A、1B、...、1Nが備えられてよい。複数の脳型処理モジュールは、メッセージベースのネットワーク20、例えばネットワークオンチップに結合されている。図4に示す実施形態では、それに加えて、ホストコンピュータ30もネットワーク20に結合されている。図5に示すように、脳型処理モジュール1A、1B、...1Nはさらにネットワーク通信モジュールを備え、脳型処理モジュールはそのネットワーク通信モジュールによってメッセージベースのネットワーク20に結合されている。
【0026】
図2Aのネットワーク例では、各ニューラルユニットが他とは異なる特徴を有する。
ニューラルユニットN0は、2つの入力シナプスD0、D1、および1つの出力シナプスA0を有し、
ニューラルユニットN1は、1つの入力シナプスD2、ならびに2つの出力シナプスA1およびA2を有し、
ニューラルユニットN2は、2つの入力シナプスD3、D4、および1つの出力シナプスA3を有する。
【0027】
上で指摘したように、図3に示す脳型処理モジュールの実施形態では、出力シナプス属性および入力シナプス属性用に別々のメモリユニット13および14が設けられている。このようにして、ニューラルネットワーク設計者は、脳型処理モジュールによって作り出されるニューラルネットワークを容易に(再)構成することができる。実際のところ、これにより、各ニューラルユニットについて入力シナプスと出力シナプスを個別に取り扱うことが可能になり、その結果、いかなる制約もなくニューロンのファンインおよびファンアウトを共有または分割する柔軟性がもたらされる。
【0028】
図4は、複数のデータ処理モジュール1A、1B、...、1Nおよびメッセージベースのネットワーク20を備える脳型データ処理システムを概略的に示す。図5に示すように、各データ処理モジュールはさらに、ネットワーク通信モジュール(15R、15T、図5を参照されたい)を備え、それらのデータ処理モジュールはそれ自体のネットワーク通信モジュールによってメッセージベースのネットワークに結合されている。この時間多重データ処理モジュールは、例えば、2Dメッシュの形に一緒にグループ化され、パケット交換ネットワークオンチップ(NoC)を介して互いに通信してよい。あるいは、3Dメッシュの形態のさらなる統合が行われてもよい。
【0029】
メッセージベースのネットワーク20を介した通信を容易にするために、脳型処理モジュールのシナプスメモリユニット13は、それぞれのアドレス範囲内の各シナプスインデックスについて、さらに、宛先ニューラルユニットのそれぞれのネットワークアドレスも指定する。
【0030】
図4に示す実施形態では、脳型データ処理システムはさらに、ネットワーク20に結合されたホストコンピュータ30を備える。ホストコンピュータは、ネットワークに入力データを提供し、そこから出力データを取り出すためのインターフェースの機能を含む、さまざまな機能を有してよい。一実施形態では、ホスト30は、処理モジュール1A、1B、...、1Nにおいて出力シナプススライスメモリユニット12を更新するように構成される。その代わりにまたはそれに加えて、ホストは、シナプスメモリユニット13を更新するように構成されてもよい。シナプスメモリユニット13が出力シナプスメモリユニットとして設けられる場合(例えば図3の実施形態における場合)、ホストは、別途の入力シナプスメモリユニット14を更新するように構成されてよい。あるいは、処理モジュールは、例えば機械学習プロセスの一環としてそれらが自律的に再構成されることを可能にする、(再)構成機能10C(図3を参照されたい)を含んでもよい。さらに他の実施形態では、メモリユニット12、13、14、またはそれらの一部のうちの1つまたは複数が、所定の内容を有してよい。脳型処理モジュールのいくつかは、例えばセキュアな機能をその改ざんを回避するように実装するために、それらのメモリユニット12、13、および14がROM内に実装されてよい。
【0031】
一実施形態では、ホストコンピュータ30は、それがニューラルユニットを、出力シナプスメモリユニット内の関連付けられた出力アドレス範囲へのエントリとしてホストネットワークアドレスを指定することによってデバッグメッセージをホストコンピュータに直接送出するように構成できるという点で、デバッグ動作に利用可能であってよい。
【0032】
図5は、脳型処理モジュールの機能的態様をより詳細に示す。機能的態様には、以下のものが含まれる。
図6にさらに示すニューロンプール51は、全てのニューラルユニットの現在の状態を収容するニューロン状態メモリユニット11、およびこれらの状態を時間多重式に更新する計算機能10Bを表す。
それ自体の処理モジュールに関するイベントメッセージを受領インターフェース15Rから受領するためのイベントコントローラ52が設けられている。図示の実施形態では、イベントコントローラ52はまた、ローカルに生成されたメッセージを、バイパス15BT、15B、15BRを介して受領してよい。イベントコントローラについては、図7および図8を参照してより詳しく述べる。
図9により詳細に示す統合コントローラ53は、統合命令を出すためのものである。イベントコントローラ52と統合コントローラ53が一緒になって、ニューロン命令をニューロンプールに出すニューラルコントローラ5253を成す。
【0033】
図10を参照してより詳細に説明するイベントジェネレータ54は、ニューラルプール51からの出力がそのようなイベントを示すことに応答して発火イベントメッセージを生成するためのものである。
【0034】
図5の処理モジュールは、制御機能10Aが、ニューラルユニットの状態の更新が必要か否かを判定するのに役立つ選択情報を収容する選択情報メモリユニット55、56をさらに含む。ユニット56内の選択情報は、ニューラルユニットに発火イベントメッセージが送出されたかどうかを示す。この場合、送出されたメッセージのターゲットである受領側ニューラルユニットの状態が更新される必要がある。さらに、ユニット55内の選択情報は、ニューラルユニットが活性状態にあると以前に判定されたかどうかを示す。やはりこの場合も、ニューラルユニットの状態が更新される必要がある。ニューラルユニットは、それがリセット状態にない場合、活性であると見なされる。制御機能10Aは、活性ニューラルユニットおよび受領側ニューラルユニットのリストを、制御信号R55、56を用いてリセットすることができ、またリスト上のエントリを統合コントローラ53への入力としてサンプリングするための制御信号S57,58を発行することができる。イベントコントローラ52は、メモリユニット56内の受領側ニューラルユニットのリストにニューラルユニットIDを、イベントコントローラ52がこのニューラルユニットを宛先としたイベントメッセージを受領した場合、追加する。ニューラルメモリプール51は、メモリユニット55内の活性ニューラルユニットのリストにニューラルユニットIDを、更新状態の後で状態が活性であると判定された場合、追加する。状態更新の結果としてスパイクが生じた場合、ニューラルユニットはその初期状態にリセットされ、活性ニューラルユニットのリスト55から削除される。
【0035】
図6は、ニューロンプール51の機能的態様をより詳細に示す。上で述べたように、ニューロンプール51は、全てのニューラルユニットの現在の状態を収容するニューロン状態メモリユニット11、およびこれらの状態を時間多重式に更新する計算機能10Bを表す。入力レジスタ511が、イベントコントローラ52および統合コントローラ53を備えるニューラルコントローラ5253とのインターフェースを成し、入力レジスタ511はそこから命令を受領する。内部的には、ニューロンプール51の動作は、パイプラインコントローラ522によって制御されており、パイプラインコントローラ522は、ストール信号を発行し、それによって、レディ信号をネゲートし、その結果、ニューラルコントローラ5253を一時的にブロックすることができる。
【0036】
図7により詳細に示すように、イベントコントローラ52は、イベントメッセージ(入力イベント)を受領すると、イベントメッセージをイベントリスト521に入力し、イベントリスト521は、イベントメモリ5211(図8を参照されたい)内にソートされた順序で維持されるか、またはヒープデータ構造などの形で、ニューラルユニットによって最初に処理されるメッセージ(出力イベント)が迅速に利用可能になるように少なくとも構成される。イベントコントローラは、プール内のアドレス指定されたニューラルユニットを識別するためのコンポーネント14A、およびその識別されたニューラルユニットを更新する際にイベントが重み付けされるのに用いられる重みを決定するためのコンポーネント14Bを有する、入力シナプスメモリユニット14にアクセスする。出力メッセージ(出力イベント)は、現在の時間(現在のdt)が、送出側ニューラルユニットの出力シナプスによって課される遅延に対応する指定の実行時間と同じであるときに、イベント命令としてニューラルプール51に発行される。イベントコントローラ52は、受領側ニューラルユニットを識別するとそれに応じてリスト56を更新する。
【0037】
図9により詳細に示す統合コントローラ53は、ニューラルプールに統合命令を出す。統合命令を受領すると、ニューラルユニットの状態が更新される。命令は、エニュメレータ531によって発行され、エニュメレータ531は制御ロジック532によって制御される。統合命令は、ニューラルユニットがイベントメッセージの受領側である場合にそれが更新される必要がある場合に常に出されるが、ニューラルユニットが活性状態にある場合にも、たとえニューラルユニットがイベントメッセージを受領しなくとも常に出される。
【0038】
図10により詳細に示すイベントジェネレータ54は、発火イベント(入力スパイク)時に、出力シナプススライスメモリユニット12および出力シナプスメモリユニット13を使用して、メモリコンポーネント13A内に指定された指定のシナプス遅延を伴い、メモリコンポーネント13B内に指定された宛先NEにおける入力シナプスIDにアドレス指定される、イベントメッセージ(出力イベント)を生成する。
【0039】
図11は、複数のニューラルユニットを備えるスパイキングニューラルネットワークを時間多重実行するための、本発明による脳型データ処理方法を概略的に示す。
【0040】
この方法では、ステップのシーケンスが反復され、各反復にはそれぞれのニューラルユニットが関連付けられる。
【0041】
ステップS2において、統合コントローラによって、それぞれのニューラルユニットについて更新実施可能条件に適合するかどうかが検証される。適合する場合、下に指定するさらなる条件による以下のステップS3~S11のサブシーケンスが実施される。適合しない場合、更新実施可能条件は、後続のニューラルユニットについて検証される。
【0042】
適合すると、それぞれのニューラルユニットについて、ニューラル状態情報が、ニューロン状態メモリユニット11内のそれぞれのアドレス指定可能なメモリエントリから取り出され(S3)、処理機能10Bが状態情報を、前記ニューラルユニットに宛てられたイベントメッセージに応じて更新する(S4)。更新は、ニューラルユニットにおける自律減衰過程をエミュレートするためにも必要となり得る。ニューラルユニットがその初期状態に戻り、それによって不活性と分類されることが、減衰過程のエミュレートの結果としてあり得る。
【0043】
処理機能10Bは、更新された状態情報が発火状態を示すかどうかを判定する(S5)。発火状態を示す場合、処理機能10Bは、初期状態を示すように状態情報をリセットし(S6)、さらに発火イベントメッセージを分配する(S7)。分配には、以下のステップが関与してよい。
【0044】
図11Aおよび図12にやはり示されているように、処理機能は、出力シナプススライスメモリユニット12内の、(識別情報NUIDを有する)更新されたニューラルユニットに関する適切なメモリエントリにアクセスし(S7A)、そのメモリエントリから、シナプスインデックスのそれぞれの範囲ARについての標識を取り出す(S7B)。次いで、その範囲内の各シナプスインデックス(SID1、...、SIDn)について、処理機能は、シナプスメモリユニット13内のそれぞれのエントリにアクセスし(S7C)、シナプス属性データを取り出す。このデータは、アドレス指定されるニューラルユニットの識別情報(NUID1、...、NUIDn)を含む。処理機能はその後、取り出されたシナプス属性データ内に収容された宛先情報に関連付けられた各ニューラルユニットに発火イベントメッセージを送出する(S7D)。シナプス属性データは一般に、遅延情報(DT1、...、DTn)および重み情報(W1、...、Wn)をさらに含む。
【0045】
オプションで、ここでの場合のように、宛先情報が、入力シナプスメモリユニット14内のそれぞれのアドレス指定可能なメモリエントリに関する詳述(SID1、...、SIDn)を含む。入力シナプスメモリユニット14は、アドレス指定される関連付けられたニューラルユニット(NUID1、...、NUIDn)、および処理機能が関連付けられたニューラルユニットを更新するときに発火メッセージに重み付けするのに用いる重み(W1、...、Wn)を指定する。その場合、方法は、取り出すステップ(S7C)の後であって送出するステップ(S7D)の前に中間ステップ(S7CD)を含む。この中間ステップでは、宛先情報から詳述が取り出され、入力シナプスメモリユニット(14)内の、詳述によって指定されているそれぞれのアドレス指定可能なメモリエントリがアクセスされる。次いで、アクセスされたそれぞれのメモリエントリから、関連付けられたニューラルユニットの識別情報が取り出される。
【0046】
(実施例)
(実施例I)
例として、図2Aのネットワークの一実装形態について、下でより詳細に説明する。メモリユニット12、13、14には、ネットワークトポロジを画定する構成情報が事前にロードされるものと仮定する。
【0047】
入力シナプスメモリユニット(14)
このメモリユニット14は、宛先情報を指定する。各エントリは、データ処理モジュール内の特定のニューラルユニットの特定の入ってくるシナプス(入力シナプス)を指定するものと見なすことができる。これは、同じデータ処理モジュール内の別のニューラルから来るシナプスを含むが、メッセージ交換ネットワーク内に構成された別のデータ処理モジュール内のニューラルユニットから来るシナプスを含んでもよい。一実施形態では、入力シナプスメモリユニットの各エントリが、シナプスの重みを指定する情報をもつ第1のフィールド、およびシナプスの持主であるニューラルユニットの識別子を含む第2のフィールドを備えてよい。
【0048】
このメモリユニットの内容およびこのメモリユニット内でネットワークトポロジの態様がマッピングされる方途を、下の表中に提示する。
【0049】
このメモリユニットへの入力は、例えば、下の表中に例示を目的として3つのフィールドを示す実施形態を有してよい。
【0050】
入力シナプスIDは、メモリユニット自体のアドレスインデックスによって表される(この情報のためにメモリビットは使用されない)。このメモリユニット内のアドレス指定可能な各入力は、特定のシナプスに対応する。メモリユニットの深さはa1である。
【0051】
図示の例では、ニューラルユニットIDというフィールドは、ニューラルユニットの識別子を含む。このフィールドに必要なサイズb1は、ニューラルユニット数のlog2である(例えば、256個のニューラルユニットをもつデータ処理モジュールの場合、このフィールドは8ビットになる)。
【0052】
第2のフィールドは、シナプスに割り当てられたシナプス重みを表す値を収容する。シナプス重みが指定される所望の粒度に応じて、このフィールドのビット数b2は、より小さくてもよく、より大きくてもよい。一例では、このフィールドのビット数は32ビットである。
【0053】
マッピング例
下の表は、図2Aに示すネットワーク例の場合の、このメモリユニット14の埋められた内容を示す。この例示的ネットワークは、3つのニューラルユニット(N0、...、N2)、およびそれぞれシナプス重み(W0、...、W4)を有する5つの入力シナプス(D0、...、D4)を有する。図中に示すネットワークに関してメモリユニットの内容を辿ることは容易である。本発明者らは、シナプス重みW0、W1をもつD0、D1が、N0に向かっていることを見て取ることができる。D2がN1に向かっており、以下同様である。表は、複数の入力シナプスをもつニューラルユニット(この場合はN0およびN2)のシナプス接続性が、入力シナプスメモリユニット内でどのように管理されているのかも示している。
【0054】
【表1】
【0055】
一実施形態では、入力シナプスメモリユニットはさらに、入力が内部でどのように処理されるのか、例えば、重みを活動電位値に加算することによって処理されるのか、または重みを、それにより活動電位値が各時間ステップにおいて増加する線形成分として使用することによって処理されるのかを、指定してよい。また、重みは、さらなる入力イベントがない場合にニューラルユニットの漸進的な不活性を表す減衰値を設定または変更するために使用されてもよい。
【0056】
出力シナプスメモリユニット13
このメモリユニット13は、ニューラルユニットから発する発火イベントメッセージの宛先を各エントリが指定する、宛先情報を定める。各エントリは、データ処理モジュール内のニューラルユニットの出て行くシナプス(軸索突起)と見なすことができる。これは、同じデータ処理モジュール内の別のニューラルユニットに向かうシナプス、ならびにデータ処理システムの別のデータ処理モジュールまたは複数の他の異種コンポーネントに向かうシナプスを含む。メモリユニット13の各エントリ内の情報は、シナプスのシナプス遅延、すなわち発火イベントメッセージが送達されるのに伴う遅延を表す値をもつ、第1のフィールドを備えてよい。シナプス遅延が指定される所望の粒度に応じて、このフィールドは、より小さいまたはより大きいビット数b3を有してよい。一例では、数b3は32である。
【0057】
第2のフィールド(宛先入力シナプスID)は、発火イベントメッセージを受領することになる入力シナプスの識別子を含んでよい。入力シナプス数に応じて、第2のフィールドは、b5ビットという数を有してよい。例えば、データ処理モジュールが256個の入力シナプスを有する場合、この値は8ビットになる。
【0058】
データ処理モジュールが、メッセージ交換ネットワークによって相互に結合された複数のデータ処理モジュールのうちの1つである場合、下の例示的な表のように、宛先モジュールの識別子を提供するための第3のフィールド(NE ID)が設けられてよい。その場合、発火イベントメッセージは、第3のフィールド内に指定された宛先データ処理モジュールに送出され、宛先データ処理モジュールによって受領されると、第2のフィールド内に指定された入力シナプスに送られる。ネットワーク内のデータ処理モジュール数に応じて、このフィールドのサイズはb4ビットである。例えば、65k個のデータ処理モジュールをもつネットワークでは、ビット数は(少なくとも)16になるはずである。
【0059】
メモリユニット13内の各エントリが、ニューロンによって発行された発火イベントメッセージの特定の宛先に対応するので、出力シナプスに関する詳述をもつフィールドを含める必要はない。換言すれば、出力シナプスIDは、メモリユニット13自体のアドレスインデックスによって表される(この情報のためにメモリビットは使用されない)。データ処理モジュール内の全てのニューラルユニットの全ての出力シナプスの合計数の所望の上限に応じて、より小さいまたはより大きいメモリ深さが選択されてもよい。
【0060】
マッピング例
下の表は、図2Aに示すネットワーク例の場合の、このメモリユニット13の埋められた内容を示す。このニューラルネットワークは、3つのニューラルユニット(N0、...、N2)、およびそれぞれシナプス遅延(T0、...、T3)を有する4つの出力シナプス(A0、...、A3)を有する。図中に示すネットワークに関してメモリの内容を辿ることは容易である。本発明者らは、この具体例の場合、メモリアドレスA3をもつエントリによって表される、(表中にデータ処理モジュールNEyとして表される)別のデータ処理モジュールに向かっている出力シナプスを除き、全ての出力シナプスが(表中にNExと識別された)同じデータ処理モジュール内にあることを見て取ることができる。メモリの最終カラムは、(入力スパイクとも呼ばれる)受領した発火イベントメッセージをニューラルユニットに関して作用させるためにこの出力シナプスに接続された入力シナプスの、入力シナプスIDを示す。指定された入力シナプスIDは、この入力シナプスに関する入力シナプス情報を収容する入力シナプスメモリユニット内のエントリのアドレスである。さらに示すと、本発明者らはこの表から、シナプス遅延T0を有する出力シナプスA0が、データ処理モジュールNEx(同じデータ処理モジュール)に発火イベントメッセージを送出するためのものであり、ネットワーク図中に示すD2というIDをもつ入力シナプスに接続されていることを見て取ることができる。
【0061】
入力シナプスD2を介して発火イベントメッセージを受領すると、制御機能10Aは、入力シナプスメモリユニット14から、関連付けられたニューラルユニットの識別子を取り出し(この場合それはニューラルユニットN1である)、計算機能10Bに、このニューラルユニットN1の状態を、この入力シナプスD2に割り当てられたシナプス重みW2をさらに考慮に入れて更新するように命令する。この例では、シナプス遅延T3をもつ出力シナプスA3は、外部データ処理モジュールNEyに向けられたシナプスであり、その外部宛先データ処理モジュールNEy内ではそれが、Dxという入力シナプスIDに接続されている。
【0062】
【表2】
【0063】
出力シナプススライスメモリユニット12
出力シナプススライスメモリユニット12は、出力シナプスメモリユニット13内のどの出力シナプスが、データ処理モジュール内の各ニューラルユニットに対応するかを指定する。あるニューラルユニットが発火イベントメッセージを発行すると、制御機能10Aが、出力シナプススライスメモリユニット12から、アドレス範囲についての標識を取り出す。この標識は、出力シナプススライスメモリユニット12内の、発火ニューラルユニットに対応するアドレスを有するエントリから取り出される。本実施形態では、アドレスの範囲が、前記エントリの第1のフィールドおよび第2のフィールド内に指定されている。第1のフィールドは、出力シナプスメモリユニット13内へのオフセット(範囲内の先頭アドレス)を指定し、第2のものは、エントリ数を指定する。オフセットを指定するフィールドのサイズは、b6ビットであり(b6は複数の値を取ることができる)、その値は一般に、データ処理モジュール内の出力シナプス数のlog2である。あるいは、範囲の先頭アドレスおよび最終アドレスまたは範囲の最終アドレスとエントリ数とを指定することも可能である。数を指定する第2のフィールドのサイズは、b7ビットであり(b7は複数の値を取ることができる)、その値は一般に、1つのニューラルユニットの出力シナプス平均数のlog2である。
【0064】
マッピング
例として、下の表3は、図2Aのニューラルネットワークをマッピングした様子を示す。この例におけるニューラルネットワークは、3つのニューラルユニットN0、N1、N2を有し、それぞれが、メモリユニット12内にそれぞれのエントリを有する。メモリユニット12内に指定されているように、ニューラルユニットN0は、1つの出力シナプスA0を有し、その出力シナプス属性は、出力シナプスメモリユニット13内のオフセット0を有するエントリ内に指定されている。N1は、2つの出力シナプスA1、A2を有し、2つのエントリのうちの第1のものが、出力シナプスメモリユニット内のオフセットアドレス1を有する。最後に、ニューラルユニットN2は、1つの出力シナプスA3を有し、その出力シナプス属性は、出力シナプスメモリユニット内のオフセットアドレス3におけるエントリ内に指定されている。あるニューラルユニットが発火イベントメッセージを発行すると、制御機能10Aが、メモリユニット12から、イベントを送出する出力シナプスについての指定子を取り出し、指定された各出力シナプスについてメモリユニット13内に指定されている出力シナプス属性を使用する。
【0065】
【表3】
【0066】
ニューロン状態メモリユニット11
ニューロン状態メモリユニット11は、実行中の各ニューラルユニットについてのそれぞれの状態値(膜電位)を記憶する。このメモリユニットが別途のフィールドを必要としないように、このメモリユニットをアドレス指定するためのインデックスとして、ニューラルユニット識別番号(ニューラルユニットID)が使用されてよい。このメモリユニット11は、データ処理モジュール内のニューラルユニット数に対応するa4という深さを有する。状態値は、b8ビットというサイズを有する(複数のニューラル状態変数が記憶される粒度に応じて、b8は複数の値を取ることができる)。b8の一例は50ビットである。
【0067】
一実施形態では、ニューラル状態は、その興奮状態を表す活動電位Vによって定められてよい。活動電位は、最小値から最大値までの範囲内の値を取ってよく、その際、最大値は一般にニューラルユニットがスパイクを放出するしきい値によって定められ、活動電位はまた、初期状態にリセットされ、その際、活動電位は最小値、例えば値0を有する。例えば入力を抑制した結果として負の活動電位値を生じさせることも考え出されてよい。
【0068】
典型的には、生物学的ニューラルユニットのようなニューラルユニットの活動電位Vは、時間の経過とともに減衰する。活動電位は、定数成分と減衰成分(gf)の重ね合わせと見なすことができ、そのそれぞれについて、現在の値が状態として記憶される。一実施形態では、減衰は線形的とすることができ、別の実施形態では、減衰は指数関数的とすることができる。
【0069】
スパイクの交換により表される値は、さまざまな方途で表されてよい。一実施形態では、この値は、スパイクの頻度によって表されてよく、頻度が高いほうが、より高い値を提示する。その場合、入力の加算は、受領したスパイクの数をカウントすることによって行われ得る。受領したスパイクごとに、それを受領した入力に割り当てられた重みを用いて、活動電位が増加する。あるいは、値は、連続するスパイク間の時間間隔によって表されてもよい。ニューラルユニットは、活動電位に加算される線形増加する成分を有してよい。線形増加する成分は、各離散時間ステップにおいて活動電位に加算される、インクリメント値(ge)として設けられてよい。ニューラルユニットは、第1のシナプスにおいて第1のスパイクを受領すると、インクリメント値を重み値に設定してよく、第2のシナプスにおいて第2のスパイクを受領すると、インクリメント値を0にリセットしてよい。その場合、結果として得られる活動電位の値の変化は、重みと、第1のスパイクの受領と第2のスパイクの受領との間の離散時間ステップ数との積となる。インクリメント値は、さらなる状態値として記憶されてよい。
【0070】
さらなる状態値として、別の状態値(例えば減衰)が活動電位にどの程度寄与するかがそれにより決まる別途の制御値(gate)が記憶されてよい。
【0071】
【表4】
【0072】
ニューラルユニットおよびシナプスの適応マッピングの例
【0073】
(実施例-1)
図2Bは、1つのニューラルユニットN0、5つの入力シナプス(D0、...、D4)、および1つの出力シナプスA0をもつデータ処理モジュール例を示す。下の表は、このネットワーク例を、上のセクションで詳細に説明したようにシナプスメモリ上にマッピングした様子を示す。未使用の位置は、シンボルXを用いて示してある。
【0074】
【表5】
【0075】
【表6】
【0076】
【表7】
【0077】
(実施例-2)
図2Cは、2つのニューラルユニットN0、N1、7つの入力シナプス(D0、...、D6)、および8つの出力シナプス(A0、A1、...、A7)をもつ例を示す。下の表は、このネットワーク例を、上のセクションで詳細に説明したようにシナプスメモリ上にマッピングした様子を示す。
【0078】
【表8】
【0079】
【表9】
【0080】
【表10】
【0081】
(実施例3)
さらなる例として、メモリ12、13、および14の内容を、図2Dに示す符号なしメモリについて説明する。
【0082】
【表11】
【0083】
【表12】
【0084】
【表13】
【0085】
さまざまな制御機能が専用コントローラによって実施されてよいことに留意されよう。あるいは、1つのコントローラがさまざまな制御機能を実施してもよい。例えば時分割式である。1つまたは複数の制御機能を実施するためのコントローラは、専用ハードウェアとして、プログラマブルデバイスもしくは構成可能デバイスとして、またはそれらの組合せとして実装されてよい。ニューラルユニット状態を更新する計算機能10Bも同様に、さまざまな様式で実装されてよいが、好ましくは、最適な性能を得るために専用ハードウェアとして設けられる。
【0086】
本明細書において使用される用語は、特定の実施形態について説明するためのものにすぎず、本発明を限定するようには意図されていない。本明細書では、単数形「1つの(a)」、「1つの(an)」、および「その(the)」は、文脈上別段明らかに示していない限り、複数形も含むように意図されている。「備える(comprises)」および/または「備える(comprising)」という用語は、本明細書において使用されるとき、述べられた特徴、整数、ステップ、動作、要素、および/またはコンポーネントの存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、および/またはそれらのグループの存在または追加を排除しないことが、さらに理解されよう。さらに、そうではないと明記されていない限り、「または(or)」は、排他的論理和ではなく包括的論理和のことをいう。例えば、条件AまたはBは次の、Aが真であり(または存在し)かつBが偽である(または存在しない)、Aが偽であり(または存在せず)かつBが真である(または存在する)、およびAとBがどちらも真である(または存在する)、のうちのいずれか1つによって満たされる。
【符号の説明】
【0087】
1 脳型処理モジュール
1A、1B、...、1N 脳型処理モジュール、データ処理モジュール
10 処理機能
10A 制御機能
10B 計算機能、処理機能
10C (再)構成機能
11 ニューロン状態メモリユニット
12 出力シナプススライスメモリユニット、メモリ
13 出力シナプスメモリユニット、メモリ
13A メモリコンポーネント
13B メモリコンポーネント
14 入力シナプスメモリユニット、メモリ
14A コンポーネント
14B コンポーネント
15B バイパス
15BT バイパス
15BR バイパス
15T ネットワーク通信モジュール
15R ネットワーク通信モジュール、受領インターフェース
20 メッセージベースのネットワーク
30 ホストコンピュータ、ホスト
51 ニューロンプール、ニューラルプール、ニューラルメモリプール
52 イベントコントローラ
53 統合コントローラ
54 イベントジェネレータ
55 選択情報メモリユニット、リスト
56 選択情報メモリユニット、リスト
100 脳型処理システム
511 入力レジスタ
521 イベントリスト
522 パイプラインコントローラ
531 エニュメレータ
532 制御ロジック
5211 イベントメモリ
5253 ニューラルコントローラ
A0、A1、...、A7 出力シナプス
AR 範囲
D0、...、D6 入力シナプス
DT1、...、DTn 遅延情報
gate 制御値
ge インクリメント値
gf 減衰成分
N0 ニューラルユニット
N1 ニューラルユニット
N2 ニューラルユニット
NUID 識別情報
NUID1、...、NUIDn 識別情報、ニューラルユニット
SID1、...、SIDn シナプスインデックス、詳述
R55、56 制御信号
S57、58 制御信号
V 活動電位
W0、...、Wn シナプス重み、重み情報
図1
図2A
図2B
図2C
図2D
図3
図4
図5
図6
図7
図8
図9
図10
図11
図11A
図12