(57)【要約】【課題】  極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータを提供すること。【解決手段】  第１のニューロシナプス・コアの複数のニューロンの発火状態が実質的に並列に判定される。複数のニューロンの発火状態が、少なくとも１つの付加的なニューロシナプス・コアに実質的に並列に送達される。【選択図】      図１
2019537093.tif 000002
【特許請求の範囲】
【請求項１】
第１のニューロシナプス・コアの複数のニューロンの発火状態を実質的に並列に判定することと、
前記複数のニューロンの前記発火状態を少なくとも１つの付加的なニューロシナプス・コアに実質的に並列に送達することと、
を含む、方法。
【請求項２】
前記第１のニューロシナプス・コア及び前記少なくとも１つの付加的なニューロシナプス・コアが、第１のチップ上に位置する、請求項１に記載の方法。
【請求項３】
実質的に並列な送達が、コア間ネットワークを介する、請求項２に記載の方法。
【請求項４】
実質的に並列な送達が、置換ネットワーク、Ｃｌｏｓネットワーク、又はバタフライ・ネットワークによって行われる、請求項３に記載の方法。
【請求項５】
前記複数のニューロンの前記発火状態をパイプライン化することをさらに含む、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記複数のニューロンの前記発火状態に対応するバイナリ・ベクトルを構築することと、
前記バイナリ・ベクトルを前記少なくとも１つの付加的なニューロシナプス・コアに伝送することと、
をさらに含む、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記第１のニューロシナプス・コアが第１のチップ上に位置し、前記少なくとも１つの付加的なニューロシナプス・コアが第２のチップ上に位置する、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
前記複数のニューロンの前記発火状態を、前記第１のチップと前記第２のチップとを接続するチップ間ネットワークを介して伝送すること、
をさらに含む請求項７に記載の方法。
【請求項９】
前記チップ間ネットワークは、前記第１のチップの出ポート及び前記第２のチップの入りポートを含む、請求項８に記載の方法。
【請求項１０】
前記チップ間ネットワークは、前記第１のチップの入りポートに接続された前記第１のチップの出ポートを含む、請求項８に記載の方法。
【請求項１１】
前記第１及び第２のチップが第１のボード上に位置する、請求項７から請求項１０までのいずれか１項に記載の方法。
【請求項１２】
前記第１のチップが第１のボード上に位置し、前記第２のチップが第２のボード上に位置し、前記第１のボードと前記第２のボードとが接続されている、請求項７から請求項１０までのいずれか１項に記載の方法。
【請求項１３】
前記第１のボード及び前記第２のボードを含む複数のボードが階層的に配置され、前記第１のボードと前記第２のボードとがルータの階層を介して接続される、請求項１２に記載の方法。
【請求項１４】
複数のニューロシナプス・コアであって、前記ニューロシナプス・コアが、複数の軸索、複数のシナプス、及び複数のニューロンを含む、複数のニューロシナプス・コアと、
前記複数のニューロシナプス・コアを接続する第１のコア間ネットワークと、
を含むシステムであって、
前記第１のコア間ネットワークは、前記複数のニューロシナプス・コアの第１のニューロシナプス・コアから少なくとも１つの付加的なニューロシナプス・コアに、前記第１のニューロシナプス・コアの前記複数のニューロンの発火状態を実質的に並列に送達するように適合された、
システム。
【請求項１５】
前記コア間ネットワークが、置換ネットワーク、Ｃｌｏｓネットワーク、又はバタフライ・ネットワークを含む、請求項１４に記載のシステム。
【請求項１６】
前記第１のコア間ネットワークは、第１のチップ上に位置し、第２のコア間ネットワークは、第２のチップ上に位置し、前記少なくとも１つの付加的なニューロシナプス・コアは、前記第２のコア間ネットワークに接続されている、請求項１４又は請求項１５のいずれか１項に記載のシステム。
【請求項１７】
前記第１のチップ及び前記第２のチップが隣接している、請求項１６に記載のシステム。
【請求項１８】
前記第１のコア間ネットワークを前記第２のコア間ネットワークに接続するポートをさらに含む、請求項１６又は請求項１７のいずれか１項に記載のシステム。
【請求項１９】
前記第１のコア間ネットワークをそれ自体に接続するポートをさらに含む、請求項１４から請求項１８までのいずれか１項に記載のシステム。
【請求項２０】
前記第１及び第２のチップが第１のボード上に位置する、請求項１６から請求項１９までのいずれか１項に記載のシステム。
【請求項２１】
前記第１のチップが第１のボード上に位置し、前記第２のチップが第２のボード上に位置し、前記第１のボードと前記第２のボードとが接続されている、請求項１６から請求項１９までのいずれか１項に記載のシステム。
【請求項２２】
前記第１のボード及び前記第２のボードを含む複数のボードが階層的に配置され、前記第１のボードと前記第２のボードとがルータの階層を介して接続される、請求項２１に記載のシステム。
【請求項２３】
複数のニューロシナプス・コアをシミュレーションすることであって、シミュレーションされるニューロシナプス・コアが、複数のシミュレーションされる軸索、複数のシミュレーションされるシナプス、及び複数のシミュレーションされるニューロンを含む、複数のニューロシナプス・コアをシミュレーションすることと、
前記複数のシミュレーションされるニューロシナプス・コアを接続するネットワークをシミュレーションすることと、
シミュレーションされるニューロシナプス・コアのうちの第１のものの、複数のシミュレーションされるニューロンの発火状態の判定をシミュレーションすることと、
前記複数のシミュレーションされるニューロンの前記発火状態の、シミュレーションされるニューロシナプス・コアのうちの少なくとも１つの付加的なものへの送達をシミュレーションすることと、
を含む、方法。
【請求項２４】
シミュレーションされる前記ネットワークが、コア間ネットワークを含む、請求項２３に記載の方法。
【請求項２５】
シミュレーションされる前記ネットワークが、チップ間ネットワークを含む、請求項２３に記載の方法。
【請求項２６】
シミュレーションされる前記ネットワークが、ボード間ネットワークを含む、請求項２３に記載の方法。
【請求項２７】
ニューロシナプス・ネットワークを動作させるためのコンピュータ・プログラム製品であって、
請求項１から請求項１３までのいずれかに記載の方法を行うために処理回路によって実行される命令を格納した、前記処理回路によって可読のコンピュータ可読ストレージ媒体を含む、
コンピュータ・プログラム製品。
【請求項２８】
コンピュータ可読媒体上に格納された、デジタル・コンピュータの内部メモリにロードすることができるコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されたときに請求項１から請求項１３までのいずれか１項に記載の方法をコンピュータに実行させるソフトウェアコード部分を含む、コンピュータ・プログラム。
【請求項２９】
ニューロシナプス・ネットワークをシミュレーションするためのコンピュータ・プログラム製品であって、
請求項２３から請求項２６までのいずれか１項に記載の方法を行うために処理回路によって実行される命令を格納した、前記処理回路によって可読のコンピュータ可読ストレージ媒体を含む、
コンピュータ・プログラム製品。
【請求項３０】
コンピュータ可読媒体上に格納された、デジタル・コンピュータの内部メモリにロードすることができるコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されたときに請求項２３から請求項２６までのいずれか１項に記載の方法をコンピュータに実行させるソフトウェアコード部分を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ニューロモルフィック・システムに関し、より詳細には、極度のスループットのニューラル・ネットワークのためのスケーラブル・ストリーム・シナプス・スーパーコンピュータに関する。
【背景技術】
【０００２】
ニューロモルフィック・システムは、神経生物学的システムによって触発された電子回路を含む超大規模集積（ＶＬＳＩ）システムである。既存のこのようなニューロモルフィック・システムの短所には、高いエネルギー消費（運転費用）及び面積（機器費用）が含まれる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従って、当該分野において上記課題に対処することが必要とされている。
【課題を解決するための手段】
【０００４】
本開示の実施形態によれば、ニューラル・ネットワークを動作させる方法及びそのためのコンピュータ・プログラム製品が提供される。第１のニューロシナプス・コアの複数のニューロンの発火状態が、実質的に並列に判定される。複数のニューロンの発火状態が、少なくとも１つの付加的なニューロシナプス・コアに実質的に並列に送達される。
【０００５】
本開示の実施形態によれば、ニューロモルフィック・システムが提供される。システムは、複数のニューロシナプス・コアを含む。ニューロシナプス・コアは、複数の軸索、複数のシナプス、及び複数のニューロンを含む。コア間ネットワークが、複数のニューロシナプス・コアを接続する。コア間ネットワークは、複数のニューロシナプス・コアの第１のニューロシナプス・コアから少なくとも１つの付加的なニューロシナプス・コアに、第１のニューロシナプス・コアの複数のニューロンの発火状態を実質的に並列に送達する。
【０００６】
本開示の実施形態によれば、ニューラル・ネットワークをシミュレーションする方法及びそのためのコンピュータ・プログラム製品が提供される。複数のニューロシナプス・コアがシミュレーションされる。シミュレーションされるニューロシナプス・コアは、複数のシミュレーションされる軸索、複数のシミュレーションされるシナプス、及び複数のシミュレーションされるニューロンを含む。複数のシミュレーションされるニューロシナプス・コアを接続するネットワークがシミュレーションされる。シミュレーションされるニューロシナプス・コアのうちの第１のものの複数のシミュレーションされるニューロンの発火状態の実質的に並列な判定が、シミュレーションされる。複数のシミュレーションされるニューロンの発火状態の、シミュレーションされるニューロシナプス・コアのうちの少なくとも１つの付加的なものへの実質的に並列な送達が、シミュレーションされる。
【０００７】
本発明をここで、単に例示の目的で、以下の図面に示されるような好ましい実施形態を参照して説明する。
【図面の簡単な説明】
【０００８】
【図１】本開示の実施形態によるニューロシナプス・コアを示す。
【図２】本開示の実施形態によるニューロシナプス・コア及びメッシュ・ルータを示す。
【図３】本開示の実施形態によるニューロシナプス・コアの数学的表現を示す。
【図４】本開示の実施形態によるチップ間通信のための例示的なアーキテクチャを示す。
【図５】本開示の実施形態によるニューロシナプス・ネットワークを動作させるための例示的な方法を示す。
【図６】本開示の実施形態によるニューロシナプス・ネットワークをシミュレーションするための例示的な方法を示す。
【図７】本開示の実施形態によるニューロモルフィック・システムの例示的なレイアウトを示す。
【図８】本開示の実施形態によるニューロモルフィック・システムの例示的なレイアウトを示す。
【図９】本発明の実施形態によるコンピューティング・ノードを示す。
【発明を実施するための形態】
【０００９】
ニューロシナプス・コアと呼ばれる極度に低パワーのニューロシナプス処理ユニットのアレイは、エクサスケールのビッグデータ問題を解くアーキテクチャを提供する。これらのコアは、スパイクを用いて情報をコード化する。ニューロシナプス・コアのネットワークにおいて、各コア上のニューロンは、他のいずれかのニューロシナプス・コア（それ自体を含む）のいずれかの軸索と接続することができる。ニューロンは、スパイクすると、宛先コア上の標的軸索に送達されるスパイク・パケットを送る。
【００１０】
デジタル・スパイキング・ニューロモルフィック・システムにおいて、情報は、スパイクによって表され、かつ送達され、各スパイクは、１又はそれより多くのビットを運ぶ、情報のデジタル・パケットである。例えば、ＩＢＭ（登録商標）ＴｒｕｅＮｏｒｔｈチップは、デジタル・スパイキング・ニューロモルフィック・システムであり、各スパイクは単一ビットの情報を運ぶ（バイナリスパイク）。ＴｒｕｅＮｏｒｔｈのようなスパイキング・ニューラル・ネットワークは、情報のパケットをスイッチ通信ワイヤ上で送達することに基づくものであり、これにより、必要とされる配線が著しく削減される。スパイクの存在は、１を受け取ったものとして処理され、その不存在は、０を表す。いくつかの異なるスパイクコード化スキームを用いて、より多くの値をバイナリスパイクにコード化することができる。ＩＢＭは、インターナショナル・ビジネス・マシーンズ・コーポレーションの商標であり、世界中の多くの管轄区域で登録されている。
【００１１】
ソースコア上のソース・ニューロンから宛先コア上の標的軸索へのスパイク通信は、宛先コア上の標的軸索に送達されるためには、水平若しくは垂直のいずれか又は両方の組合せで２Ｄグリッド内のルータを経由して特定の数のホップ（ｈｏｐ）をトラバースすることを事実上必要とする。スパイク・パケットが各ホップをトラバースするたびに、パワー及びエネルギーが消費される。
【００１２】
ＴｒｕｅＮｏｒｔｈのような例示的なニューロモルフィック・システム内で、スパイクがそのソース・ニューロンからその宛先軸索まで移動するのに許される時間は固定量である。この固定窓は、チック（ｔｉｃｋ）と呼ばれる。スパイクがその行程（ｊｏｕｒｎｅｙ）に必要とする時間は、スパイクが移動しなければならない距離、並びにスパイクが横切って移動する２Ｄメッシュ・ルーティング、チップ及びボードのインタフェースの数に基づいて変化する。
【００１３】
各チックにおいて、コア内のニューロンが第１のニューロンから開始して最後のニューロンまで連続して逐次的に処理される。従って、上記で論じた伝送の遅延に加えて、各スパイクはまた、コア上のどのニューロンがそのスパイクを生成したかに基づいて、なんらかの付加的な固定量だけ遅延する。例えば、１コア当たり２５６個のニューロンを有するＴｒｕｅＮｏｒｔｈのような例示的なニューロモルフィック・システムにおいて、２５６番目のニューロンは、先行する２５５ニューロンが処理されるまで処理されない。
【００１４】
本開示の種々の実施形態によれば、ニューロシナプス・プログラムは、ニューロシナプス・ネットワークを表す。ニューロシナプス・プログラムは、ニューロシナプス・ネットワークに関連した情報を含む。いくつかの実施形態において、情報は、入力スパイクに対する電子的なニューロンの応答を決定する、ニューロンの性質及び動力学を含む。例えば、ニューロンの性質及び動力学は、閾値パラメータ、漏れパラメータ、遅延パラメータ、又はリセットパラメータを含むことができる。いくつかの実施形態において、ニューロシナプス・プログラム情報は、ニューロンのシナプス接続（例えば、シナプス・クロスバーによって作成されたシナプス接続）を含む。いくつかの実施形態において、ニューロシナプス・プログラム情報は、軸索の性質（例えば、軸索のタイプ）を含む。いくつかの実施形態において、ニューロシナプス・プログラム情報は、ニューロンの出力スパイクが送達されるべき１つ又は複数の宛先（例えば、標的軸索）を含む。
【００１５】
種々の実施形態によれば、ニューロシナプス・ネットワークは、ニューロシナプス・プログラムのインスタンス化を表す。ニューロシナプス・ネットワークは、ハードウェア、シミュレーション、又はその両方でインスタンス化することができる。例えば、ニューロシナプス・プログラムは、ニューロシナプス・ネットワークの１つ又は複数のインスタンスを生じさせることができ、インスタンスは、単一コア、多重コア、又は多重チップ上に存在することができる。
【００１６】
種々の実施形態によれば、ニューロモルフィック・コア回路は、ニューロシナプス・プログラムによって記述される例示的なニューロシナプス・ネットワークを表す。
【００１７】
種々の実施形態によれば、コアレット（ｃｏｒｅｌｅｔ)又はＣｏｒｅｌｅｔプログラミング言語は、ニューロシナプス・プログラムの抽象化を提供するソフトウェアを表す。ニューロシナプス・プログラムの構成は、コアレットを構成することによって作成することができる。
【００１８】
ＴｒｕｅＮｏｒｔｈプログラムは、その外部入力及び出力に加えてニューロシナプス・コアのネットワークの完全な仕様である。種々の実施形態において、分割統治（ｄｉｖｉｄｅ−ａｎｄ−ｃｏｎｑｕｅｒ）手法が採用され、これによりニューロシナプス・コアの大型のネットワークは、ニューロシナプス・コアのより小型のネットワークの集合を相互接続することによって構築され、小型のネットワークの各々は、それ自体がさらに小型のネットワークの集合を相互接続することによって構築することができ、以下同様に、単一のニューロシナプス・コアから成るネットワークまで下降し、これが、基本的な非分割可能な構築ブロックである。このプログラミング・パラダイムは、Ｃｏｒｅｌｅｔプログラミングと呼ばれる。
【００１９】
本開示の実施形態によれば、ニューラル・ネットワークは、面積及びエネルギーの理論的下界に近づく一方で、スループットの理論的上界に近づくように最適化される。これらの３つの計量を同時に最小化することはできないことは明らかである。しかしながら、本明細書で示す方法によれば、２つを同時に最適化することができる。具体的には、エネルギー消費（これは運転費用に対応する）及び面積（これは機器費用に対応する）を可能な限り低く保つ一方で、ニューラル・ネットワーク内で利用可能な並列性を活用して、かつてないほどのスループットを生み出す。
【００２０】
エネルギー消費及び面積を最小化する一方で、可変の速度で能力及びスループットを生み出すことにより、資本、運転費用、及びプログラミング費用が同様に最小化される。
本開示の実施形態によれば、極度の並列性が、高スループットを可能にする。
【００２１】
図１を参照すると、本開示の実施形態によるニューロシナプス・コアが示される。いくつかの実施形態において、ニューロシナプス・コア１００は、行で示される軸索１０１と、列で示される樹状突起１０２と、行と列との接合部で示されるシナプス１０３と、樹状突起からの入力を受けるニューロン１０４とを含む。いくつかの実施形態において、２５６個のシナプスと、２５６個の軸索と、２５６個のニューロンとが存在する。このような実施形態において、２５６×２５６＝６５，５３６シナプスが存在する。情報は、軸索１０１から、シナプス１０３によって変調されて、ニューロン１０４に流れる。
【００２２】
いくつかの実施形態において、複数のニューロシナプス・コアがチップ上にタイル状に配置される。例示的な実施形態において、６４×６４グリッドのコアがタイル状に配置されて４，０９６コアがもたらされ、合計で１，０４８，５７６ニューロン及び２６８，４３５，４５６シナプスである。このような実施形態において、ニューロン、シナプス、及び短距離接続性は、物理的である。長距離接続性は、論理的である。例示的な実施形態が図２に示される。メッシュ・ルータ２０１がコア間の通信を提供する。所与のコア上に、ニューロン対コア２０２及びコア対軸索２０３の通信リンクも提供される。
【００２３】
図３を参照すると、ニューロシナプス・コアの数学的表現が示される。数学的には、ニューロシナプス・コアは、シナプス３０２を介して軸索３０１をニューロン３０３に相互接続する二部グラフを実装する。各入力軸索は、１つのニューロン、すべてのニューロン、又はそれらの任意の部分集合に接続することができる。入力軸索の任意の集合からニューロンの任意の集合への接続をプログラムすることができ、フレキシブルで有能なニューラル・ネットワーク・モジュールを作り出す。
【００２４】
本開示の種々の実施形態によれば、ニューロシナプス・チップの新たなアーキテクチャが提供される。このようなアーキテクチャにおいて、ニューロシナプス・コアの集合がネットワーク・オンチップによって相互接続される。いくつかの実施形態において、ネットワークをスケール変更するために、チップ間接続機能が提供される。
【００２５】
いくつかのこのようなアーキテクチャにおいて、各時間ステップ（すなわちチック）内で、コア内のニューロンは、逐次的には処理されない。代わりに、コア内のすべてのニューロンが１つの軸索上で一度に並列に動作する。各ニューロンがチック内で発火したかどうかを示すベクトルが構築される。上記の例を採用すると、２５６個のニューロンを有するコアの発火状態は、２５６次元のバイナリ・ベクトルとしてコード化することができる。この発火ベクトルは、ニューロシナプス・コア間で通信される。いくつかの実施形態において、すべてのニューロンは、パイプライン化され、複数の軸索を高速動作のための待ち行列に入れることができる。
【００２６】
本開示の実施形態によれば、コア間の接続性を、置換の観点で考えることができる。例えば、Ｎ個のニューロン及びＮ個の軸索を各々が有するＣ個のコアを考える。ニューロン発火活動の合計ベクトルは、長さＣ×Ｎのバイナリ・ベクトルである。このＣ×Ｎベクトルは、Ｃ×Ｎ軸索に通信される。それゆえ、これはＣ×ＮニューロンからＣ×Ｎ軸索への置換として考えることができる。従って、種々の実施形態において、オンチップのネットワークは、置換ネットワーク、Ｃｌｏｓネットワーク、バタフライ・ネットワーク、平坦化バタフライ・ネットワーク（ｆｌａｔｔｅｎｅｄ  ｂｕｔｔｅｒｆｌｙ  ｎｅｔｗｏｒｋ）、又は当該分野で知られた他のネットワークとして実装することができる。
【００２７】
ここで図４を参照すると、チップ間通信のための例示的なアーキテクチャが示されている。上述のような置換ネットワークとして実装された所与のチップ４０１は、５つの入りポート（ｉｎｃｏｍｉｎｇ  ｐｏｒｔ）４１１・・・４１５と、５つの出ポート（ｏｕｔｇｏｉｎｇ  ｐｏｒｔ）４２１・・・４２５とを含む。それゆえ、オンチップ・ネットワークは、ウェスト（Ｗｅｓｔ）ポート、イースト（Ｅａｓｔ）ポート、ノース（Ｎｏｒｔｈ）ポート、及びサウス（Ｓｏｕｔｈ）ポートから、並びにチップ内から、ニューロン発火のバイナリ・ベクトルを５つまで受け取る。これは、これら５つのバイナリ・ベクトルを５つまでの宛先、すなわちウェスト・ポート、イースト・ポート、ノース・ポート、及びサウス・ポート並びにチップ内のコアにルーティングする。いくつかの例示的な実施形態において、チップのレイアウトを説明するのに東西南北の方位が使用されているが、本開示はあらゆるチップレイアウトに適用可能であることが認識されるであろう。本開示は、４つより多い又は少ない隣接チップを有するアーキテクチャにも適用可能である。例えば、チップの３次元レイアウトは、６つまでの隣接チップを含むことができ、その結果、７つまでの入りポート及び７つまでの出ポートがもたらされる。
【００２８】
本開示の実施形態は、極度に高速のコア動作のために、コア内のニューロンの完全な並列性、並びにパイプライン化された動作を利用する。各コアは、データの局所性を提供する。コア間の通信は、極度に高速のネットワーク動作のために、時間に拘束された（time-bound）、かつ並列な様式で提供され、このことは、２Ｄメッシュルータ・アーキテクチャ内でメッセージをシリアル化する必要性を排除し、各コアの並列性を利用する。これら２つの利点を組み合わせることで、モジュール方式の、スケーラブルな、タイル状に配置可能な設計で、かつてないスループットを達成することが可能になる。
【００２９】
いくつかの実施形態において、各ニューロシナプス・コアは、時分割多重化される。いくつかの実施形態において、係数Ｔを適用して、コア当たり異なる軸索とコア当たり異なるニューロンとがコアを横断して同じシナプス行列を介して相互接続されたＴ個のコアを実装する。このような実施形態において、各時間ステップ（すなわちチック）は、Ｔ個のサブ時間ステップに分割される。同期的に、各サブ時間ステップｔ：０．．．Ｔ−１内で、各軸索は、送達されることを必要とするスパイクについてチェックされる。スパイクが送達されることを必要とする場合、ニューロンｊｔごとに、その状態がシナプス重みｓｉｊの関数として更新される。ニューロンｊｔごとに、その新たなニューロン状態が、その以前の状態、そのパラメータ、及びその入力の関数として計算され、次いでスパイクについてチェックされる。スパイクを有する場合、その宛先位置が探索され、スパイク・パケットが生成され、ニューロンｊｔが静止状態に戻る前にネットワーク上で送られる。非同期的に、スパイク・パケットがネットワークから受け取られ、軸索バッファが更新される。
【００３０】
いくつかの実施形態において、所与のコア上の各ニューロンに対して同じパラメータが用いられ、それゆえストレージが低減される。いくつかの実施形態において、クロックゲーティングを用いた同期設計が使用される。高いネットワーク複雑性を有するいくつかの実施形態において、入力ポートの最大可能数ｍと、Ｃ個のコアとを有するオンチップ・ネットワークが提供される。このような実施形態において、コア当たりのニューロン回路の数は、ｍ／Ｃである。
【００３１】
いくつかの実施形態において、１６×１６コア・アレイを有するネットワークが６４分割の時分割多重化で提供される。しかしながら、種々の他の実施形態において、コアの数は、ネットワーキングに起因するオーバーヘッドが計算を圧倒しないように選択される。一般に、所与のネットワークの速度は、最長のワイヤの長さがボトルネックになるか又はそれによって制限される。同様に、ネットワークの速度は、種々のポートにおけるインタフェースの速度によって制限される。それゆえ、オフチップ・ネットワークとオンチップ・ネットワークとの間の速度の差がボトルネックとなり得る。
【００３２】
上記の説明から認識されるように、本開示の実施形態によれば、樹状突起手法の代わりに軸索手法が採用される。メッシュ・ルーティングから置換ネットワークへのシフトは、非同期回路をクロックゲーティングされた同期回路で置き換えることを可能にすることが認識されるであろう。このようにして、開発の時間及び労力が低減される。組込み及びその後の改訂の容易さが、このような実施形態を実質的により簡素にする。
【００３３】
ここで図５を参照すると、本開示の実施形態によるニューロシナプス・ネットワークを動作させるための例示的な方法が示される。５０１において、第１のニューロシナプス・コアの複数のニューロンの発火状態が判定される。いくつかの実施形態において、発火状態は、実質的に並列に判定される。５０２において、複数のニューロンの発火状態が、少なくとも１つの付加的なニューロシナプス・コアに送達される。いくつかの実施形態において、発火状態は、実質的に並列に送達される。いくつかの実施形態において、発火状態は、チップ内ネットワークを介して送達される。
【００３４】
図６を参照すると、本開示の実施形態によるニューロシナプス・ネットワークをシミュレーションするための例示的な方法が示される。６０１において、複数のニューロシナプス・コアがシミュレーションされる。いくつかの実施形態において、シミュレーションされるニューロシナプス・コアは、複数のシミュレーションされる軸索及び複数のシミュレーションされるニューロンを含む。６０２において、複数のシミュレーションされるニューロシナプス・コアを接続するコア間ネットワークが、シミュレーションされる。６０３において、シミュレーションされるニューロシナプス・コアのうちの第１のものの、複数のシミュレーションされるニューロンの発火状態が判定される。いくつかの実施形態において、発火状態は、実質的に並列に判定される。６０４において、複数のシミュレーションされるニューロンの発火状態は、シミュレーションされるニューロシナプス・コアのうちの少なくとも１つの付加的なものに送達される。いくつかの実施形態において、発火状態は、実質的に並列に送達される。いくつかの実施形態において、発火状態は、チップ内ネットワークを介して送達される。
【００３５】
図７及び図８を参照すると、本開示の実施形態によるニューロモルフィック・システムの例示的なレイアウトが示される。ボード７０１は、チップ７０２のような複数のチップを含む。チップ７０２のような各チップは、コア７０３のような複数のコアを含む。コア７０３のような各コアは、ネットワーク７０４によって接続され、これは上述のような置換ネットワークとすることができる。
【００３６】
ここで図９を参照すると、コンピューティング・ノードの例の模式図が示される。コンピューティング・ノード１０は、好適なコンピューティング・ノードの一例にすぎず、本明細書で説明される本発明の実施形態の使用又は機能の範囲に関するなんらかの制限を示唆することを意図するものではない。上記に関係なく、コンピューティング・ノード１０は、本明細書で上述された機能のいずれかを実装及び／又は実施することができる。
【００３７】
コンピューティング・ノード１０内に、他の多数の汎用又は専用コンピューティング・システム環境又は構成で動作可能な、コンピュータ・システム／サーバ１２が存在する。コンピュータ・システム／サーバ１２と共に用いるのに好適であり得る周知のコンピューティング・システム、環境、及び／又は構成の例として、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップボックス、プログラム可能民生電子機器、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び上記のシステム若しくはデバイス等のいずれかを含む分散型クラウド・コンピューティング環境が含まれる。
【００３８】
コンピュータ・システム／サーバ１２は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム／サーバ１２は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施することができる。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカル及び遠隔両方のコンピュータ・システム・ストレージ媒体に配置することができる。
【００３９】
図９に示されるように、コンピューティング・ノード１０のコンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム／サーバ１２のコンポーネントは、これらに限定されるものではないが、１つ又は複数のプロセッサ又は処理ユニット１６、システム・メモリ２８、及びシステム・メモリ２８を含む種々のシステム・コンポーネントをプロセッサ１６に結合するバス１８を含むことができる。
【００４０】
バス１８は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、いくつかのタイプのバス構造のうちのいずれかの１つ又は複数を表す。限定ではなく例としては、このようなアーキテクチャは、業界標準アーキテクチャ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、及びＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含む。
【００４１】
コンピュータ・システム／サーバ１２は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ１２がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不能媒体の両方とを含む。
【００４２】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ）３０及び／又はキャッシュ・メモリ３２など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２は、他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体（図示されておらず、典型的には「ハード・ドライブ」と呼ばれる）との間の読み出し及び書き込みのために、ストレージ媒体３４を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク（例えば、「フロッピー・ディスク」）との間の読み出し及び書き込みのための磁気ディスク・ドライブと、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、それぞれを、１つ又は複数のデータ媒体インタフェースによって、バス１８に接続することができる。以下でさらに示され説明されるように、メモリ２８は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含むことができる。
【００４３】
限定ではなく例として、メモリ２８内に、プログラム・モジュール４２のセット（少なくとも１つ）を有するプログラム／ユーティリティ４０、並びにオペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを格納することができる。オペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの何らかの組み合わせの各々は、ネットワーキング環境の実装を含むことができる。プログラム・モジュール４２は、一般に、本明細書で説明される本発明の実施形態の機能及び／又は方法を実行する。
【００４４】
コンピュータ・システム／サーバ１２は、キーボード、ポインティング・デバイス、ディスプレイ２４等のような１つ又は複数の外部デバイス１４；ユーザがコンピュータ・システム／サーバ１２と対話することを可能にする１つ又は複数のデバイス；及び／又はコンピュータ・システム／サーバ１２が１つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス（例えば、ネットワーク・カード、モデム等）と通信することもできる。このような通信は、入力／出力（Ｉ／Ｏ）インタフェース２２を経由して行うことができる。さらにまた、コンピュータ・システム／サーバ１２は、ネットワーク・アダプタ２０を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、汎用広域ネットワーク（ＷＡＮ）、及び／又は公衆ネットワーク（例えば、インターネット）などの１つ又は複数のネットワークと通信することもできる。示されるように、ネットワーク・アダプタ２０は、バス１８を介して、コンピュータ・システム／サーバ１２の他のコンポーネントと通信する。図示されないが、コンピュータ・システム／サーバ１２と共に他のハードウェア及び／又はソフトウェア・コンポーネントを使用できることを理解されたい。例として、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部のディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システム等が含まれる。
【００４５】
本発明は、システム、方法、及び／又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに、本発明の態様を実行させるためのコンピュータ可読プログラム命令をそこに有するコンピュータ可読ストレージ媒体（単数又は複数）を含むことができる。
【００４６】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持し、格納することができる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの：即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、静的ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブルなコンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、パンチカード若しくはそこに命令が記録された溝内の隆起構造などの機械的符号化デバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波又は他の自由に伝搬する電磁波、導波路若しくは他の伝送媒体を通じて伝搬する電磁波（例えば、光ファイバ・ケーブルを通る光パルス）、又は配線を通じて伝送される電気信号のような、一時的信号それ自体として解釈されるべきではない。
【００４７】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び／又は無線ネットワークなどのネットワークを介して外部コンピュータ若しくは外部ストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅製伝送ケーブル、光伝送ケーブル、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び／又はエッジ・サーバを含むことができる。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体内に格納するためにコンピュータ可読プログラム命令を転送する。
【００４８】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、ミリコード、ファームウェア命令、状態設定データ、又はＳｍａｌｌｔａｌｋ、Ｃ＋＋等などのオブジェクト指向型プログラミング言語、及び、「Ｃ」プログラミング言語、若しくは同様のプログラミング言語のような従来の手続き型プログラミング言語を含む１つ又は複数のプログラミング言語のいずれかの組み合わせで書かれたソース・コード若しくはオブジェクト・コードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、スタンドアロンのソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある（例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて）。いくつかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はプログラム可能論理アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個人化することによって、コンピュータ可読プログラム命令を実行することができる。
【００４９】
本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して、本明細書で説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【００５０】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、及び／又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、内部に命令が格納されたコンピュータ可読ストレージ媒体が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作の態様を実装する命令を含む製品を含むようにすることもできる。
【００５１】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実装プロセスを生成し、それにより、コンピュータ、他のプログラム可能装置、又は他のデバイス上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実行するようにもできる。
【００５２】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態によるシステム、方法及びコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能命令を含むモジュール、セグメント、又は命令の部分を表すことができる。いくつかの代替的な実装において、ブロック内に記載された機能は、図面内に記載された順序とは異なる順序で行われ得ることもある。例えば、連続して示された２つのブロックが、関与する機能に応じて、実際には、実質的に同時に実行されることもあり、又は、ときにはブロックが逆順に実行されることもある。また、ブロック図及び／又はフローチャート図の各ブロック、並びにブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を行う専用ハードウェア・ベースのシステムによって、又は専用ハードウェアとコンピュータ命令との組み合わせによって実装できることにも留意されたい。
【００５３】
本発明の種々の実施形態の説明が例証の目的のために提示されたが、これらは、網羅的であること、又は本発明を開示された形態に制限することを意図するものではない。当業者には、説明される実施形態の範囲から逸脱することなく、多くの修正及び変形が明らかであろう。本明細書で用いられる用語は、実施形態の原理、実際の適用、又は市場で見られる技術に優る技術的改善を最もよく説明するため、又は、当業者が、本明細書に開示される実施形態を理解するのを可能にするために選択された。
【符号の説明】
【００５４】
１０：コンピューティング・ノード
１００：ニューロシナプス・コア
１０１、３０１：軸索
１０２：樹状突起
１０３、３０２：シナプス
１０４、３０３：ニューロン
２０１：メッシュ・ルータ
４０１：チップ
４１１、４１２、４１３、４１４、４１５：入りポート
４２１、４２２、４２３、４２４、４２５：出ポート
７０１：ボード
７０２：チップ
７０３：コア
７０４：ネットワーク
【図１】
2019537093.tif 000003
【図２】
2019537093.tif 000004
【図３】
2019537093.tif 000005
【図４】
2019537093.tif 000006
【図５】
2019537093.tif 000007
【図６】
2019537093.tif 000008
【図７】
2019537093.tif 000009
【図８】
2019537093.tif 000010
【図９】
2019537093.tif 000011
【国際調査報告】
2019537093.tif 000012
2019537093.tif 000013