(57)【要約】【課題】  多重化ニューラル・コア回路を提供すること。【解決手段】        多重化ニューラル・コア回路は、複数のニューロンのニューロン属性を保持するメモリ・デバイスを含むコア回路を含む。メモリ・デバイスは、複数のエントリを有する。各エントリは、対応するニューロンのニューロン属性を保持する。コア回路は、メモリ・デバイスを管理するためのコントローラをさらに含む。ニューロンのうちの１つを標的とするニューロン発火イベントに応答して、コントローラは、その標的ニューロンのニューロン属性をメモリ・デバイスの対応するエントリから取り出し、取り出されたニューロン属性に基づいて発火イベントを積分し、標的ニューロンに対する発火イベントを生成する。【選択図】      図２
2015534172.tif 000002
【特許請求の範囲】
【請求項１】
複数のニューロンのニューロン属性を保持するメモリ・デバイスであって、複数のエントリを有し、各エントリが対応するニューロンのニューロン属性を保持する、メモリ・デバイスと、
前記メモリ・デバイスを管理するコントローラであって、前記ニューロンのうちの１つを標的とするニューロン発火イベントに応答して、前記メモリ・デバイスの対応するエントリから前記標的ニューロンのニューロン属性を取り出し、前記取り出したニューロン属性に基づいて前記発火イベントを積分し、前記標的ニューロンに対する発火イベントを生成する、コントローラと、
を含むニューラル・コア回路。
【請求項２】
前記エントリの各々に関して、前記エントリ内に保持される前記ニューロン属性は、対応するニューロンのシナプス結合性情報、ニューロン・パラメータ、及びルーティング・データ情報を含む、請求項１に記載のニューラル・コア回路。
【請求項３】
前記コントローラは、積分された発火イベントが前記標的ニューロンの閾値ニューロン・パラメータを超える場合に、標的ニューロンに対する発火イベントを生成する、請求項２に記載のニューラル・コア回路。
【請求項４】
各標的ニューロンに対して、前記コントローラは、前記標的ニューロンの少なくとも１つのニューロン・パラメータを更新する、請求項３に記載のニューラル・コア回路。
【請求項５】
前記コントローラは、複数のニューロンの計算及び制御論理を多重化する、請求項４に記載のニューラル・コア回路。
【請求項６】
時間ステップ毎に、前記メモリ・デバイスの各エントリがシーケンシャルに読み出される、請求項１に記載のニューラル・コア回路。
【請求項７】
前記メモリ・デバイスのエントリに対応する各ニューロンに対して、前記コントローラは、
前記ニューロンを標的とする入力発火イベントを受け取り、
前記ニューロンのシナプス結合性情報を前記メモリ・デバイスの前記対応するエントリから取り出す、
請求項２に記載のニューラル・コア回路。
【請求項８】
前記メモリ・デバイスのエントリに対応する各ニューロンに対して、前記コントローラは、
前記ニューロンのニューロン・パラメータを前記メモリ・デバイスの前記対応するエントリから取り出し、
前記ニューロンを標的とする入力発火イベントを、前記ニューロンの前記ニューロン・パラメータ及びシナプス結合性情報に基づいて積分し、
前記積分された入力発火イベントが前記ニューロンの閾値ニューロン・パラメータを超えるとき、前記ニューロンの前記ルーティング・データ情報に基づいて出力発火イベントを生成し、
前記ニューロンの少なくとも１つのニューロン・パラメータを更新する、
請求項７に記載のニューラル・コア回路。
【請求項９】
前記メモリ・デバイスは、複数のパーティションを含むメモリ・アレイであり、
前記複数のパーティションは、
前記複数のニューロンのシナプス結合性情報を保持する第１のパーティションと、
前記複数のニューロンのニューロン・パラメータを保持する第２のパーティションと、
前記複数のニューロンのルーティング・データ情報を保持する第３のパーティションと、
を含む、前記請求項のいずれかに記載のニューラル・コア回路。
【請求項１０】
前記メモリ・デバイスは複数のメモリ・アレイを含み、
前記複数のメモリ・アレイは
前記複数のニューロンのシナプス結合性情報を保持する第１のメモリ・アレイと、
前記複数のニューロンのニューロン・パラメータを保持する第２のメモリ・アレイと、
前記複数のニューロンのルーティング・データ情報を保持する第３のメモリ・アレイと、
を含む、請求項１から請求項８までのいずか１項に記載のニューラル・コア回路。
【請求項１１】
複数のニューロンのニューロン属性をメモリ・デバイス内に保持する方法であって、
前記メモリ・デバイスは、複数のエントリを有し、各エントリは、対応するニューロンのニューロン属性を保持し、前記方法は、
前記ニューロンのうちの１つを標的とするニューロン発火イベントに応答して、前記メモリ・デバイスの対応するエントリから前記標的ニューロンのニューロン属性を取り出し、前記取り出されたニューロン属性に基づいて前記発火イベントを積分し、前記標的ニューロンに対する発火イベントを生成すること、
を含む方法。
【請求項１２】
前記エントリの各々に対して、対応するニューロンのシナプス結合性情報、ニューロン・パラメータ、及びルーティング・データ情報を前記エントリ内に保持することをさらに含む、請求項１１に記載の方法。
【請求項１３】
積分された発火イベントが前記標的ニューロンの閾値ニューロン・パラメータを超える場合に、標的ニューロンに対する発火イベントを生成することをさらに含む、請求項１２に記載の方法。
【請求項１４】
各標的ニューロンに対して、前記標的ニューロンの少なくとも１つのニューロン・パラメータを更新することをさらに含む、請求項１３に記載の方法。
【請求項１５】
複数のニューロンの計算及び制御論理を多重化することをさらに含む、請求項１４に記載の方法。
【請求項１６】
前記メモリ・デバイスのエントリに対応する各ニューロンに対して、
前記ニューロンを標的とする入力発火イベントを受け取ることと、
前記ニューロンのシナプス結合性情報を前記メモリ・デバイスの前記対応するエントリから取り出すことと、
をさらに含む、請求項１２に記載の方法。
【請求項１７】
前記メモリ・デバイスのエントリに対応する各ニューロンに対して、
前記ニューロンのニューロン・パラメータを前記メモリ・デバイスの前記対応するエントリから取り出すことと、
前記ニューロンを標的とする入力発火イベントを、前記ニューロンの前記ニューロン・パラメータ及びシナプス結合性情報に基づいて積分することと、
前記積分された入力発火イベントが前記ニューロンの閾値ニューロン・パラメータを超えるとき、前記ニューロンの前記ルーティング・データ情報に基づいて出力発火イベントを生成することと、
前記ニューロンの少なくとも１つのニューロン・パラメータを更新することと、
をさらに含む、請求項１６に記載の方法。
【請求項１８】
時間ステップ毎に、前記メモリ・デバイスの各エントリをシーケンシャルに読み出すことをさらに含む、請求項１１に記載の方法。
【請求項１９】
前記複数のニューロンのシナプス結合性情報をメモリ・アレイの第１のパーティションに保持することと、
前記複数のニューロンのニューロン・パラメータを前記メモリ・アレイの第２のパーティションに保持することと、
前記複数のニューロンのルーティング・データ情報を前記メモリ・アレイの第３のパーティションに保持することと、
をさらに含む、請求項１１に記載の方法。
【請求項２０】
前記複数のニューロンのシナプス結合性情報を第１のメモリ・アレイに保持することと、
前記複数のニューロンのニューロン・パラメータを第２のメモリ・アレイに保持することと、
前記複数のニューロンのルーティング・データ情報を第３のメモリ・アレイに保持することと、
をさらに含む、請求項１１に記載の方法。
【請求項２１】
請求項１１から請求項２０までのいずれかに記載の方法を実施するためにコンピュータによって実行可能なプログラム・コードを有する、ニューラル・コア回路のためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、米国国防高等研究計画局（ＤＡＲＰＡ）によって与えられたＨＲ００１１−０９−Ｃ−０００２の下で米国政府の援助によって行われた。米国政府は本発明における一定の権利を有する。
【０００２】
本発明の実施形態は、ニューロモルフィック及びシナプトロニック計算に関し、特に、多重化ニューラル・コア回路に関する。
【背景技術】
【０００３】
ニューロモルフィック及びシナプトロニック計算は、人工ニューラル・ネットワークとも呼ばれ、本質的に生体脳の機能に類似した方式で電子システムが機能することを可能にする計算システムである。ニューロモルフィック及びシナプトロニック計算は、一般に０と１とを操作する伝統的なデジタル・モデルを使用しない。その代りに、ニューロモルフィック及びシナプトロニック計算は、生体脳のニューロンとほぼ機能的に等価な処理要素間の結合を作り出す。ニューロモルフィック及びシナプトロニック計算は、生体ニューロンをモデル化した様々な電子回路を含むことができる。
【０００４】
生体システムにおいて、ニューロンの軸索と別のニューロンの樹状突起との間の接点はシナプスと呼ばれ、そのシナプスに関して、これら２つのニューロンは、それぞれシナプス前及びシナプス後と呼ばれる。我々個々人の経験の本質は、シナプスのコンダクタンスの形で記憶される。シナプスのコンダクタンスは、スパイク・タイミング依存可塑性（ＳＴＤＰ）に従って、シナプス前ニューロン及びシナプス後ニューロンの相対スパイク時刻の関数として時間と共に変化する。ＳＴＤＰ規則は、シナプス前ニューロンが発火した後にシナプス後ニューロンが発火した場合にはシナプスのコンダクタンスを高め、２つの発火の順序が逆の場合にはシナプスのコンダクタンスを低減する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の課題は、多重化ニューラル・コア回路を提供することである。
【課題を解決するための手段】
【０００６】
本発明の実施形態は、多重化ニューラル・コア回路に関する。１つの実施形態は、複数のニューロンのニューロン属性を保持するメモリ・デバイスを含むコア回路を含む。メモリ・デバイスは、複数のエントリを有する。各エントリは、対応するニューロンのニューロン属性を保持する。コア回路は、メモリ・デバイスを管理するコントローラをさらに含む。これらニューロンのうちの１つを標的とするニューロン発火イベントに応答して、コントローラは、メモリ・デバイスの対応するエントリから標的ニューロンのニューロン属性を取り出し、取り出したニューロン属性に基づいて発火イベントを積分し、標的ニューロンに対する発火イベントを生成する。
【０００７】
別の実施形態は、複数のニューロンのニューロン属性をメモリ・デバイス内に保持することを含む。メモリ・デバイスは、複数のエントリを有する。各エントリは、対応するニューロンのニューロン属性を保持する。これらニューロンのうちの１つを標的とするニューロン発火イベントに応答して、メモリ・デバイスの対応するエントリから標的ニューロンのニューロン属性が取り出され、取り出されたニューロン属性に基づいて発火イベントが積分されて、標的ニューロンに対する発火イベントが生成される。
【０００８】
本発明のこれら及び他の特徴、態様及び利点は、以下の説明、添付の特許請求の範囲、及び添付の図面を参照することによって理解されることになるであろう。
【０００９】
これから、本発明の実施形態を、例示のみを目的として、添付の図面を参照しながら説明する。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態によるニューラル・コア回路を示す。
【図２】本発明の一実施形態による、発火イベントの入力ベクトルを受け取ったときのコア回路の動作を示す。
【図３】本発明の一実施形態による、コア回路のリセット及びセット動作を示す。
【図４】本発明の一実施形態による多重化ニューラル・コア回路を示す。
【図５】本発明の一実施形態による、多重化コア回路のメモリ・デバイスを示すブロック図である。
【図６】本発明の一実施形態による、多重化コア回路のメモリ・デバイスのエントリ内に保持される情報を示すブロック図である。
【図７】本発明の一実施形態による多重化コア回路を示すブロック図である。
【図８】本発明の一実施形態による、バイナリ入力ベクトルを受け取る多重化コア回路を示すブロック図である。
【図９】本発明の一実施形態による、半多重化コア回路を示すブロック図である。
【図１０】本発明の一実施形態による縦長メタ・コアを示す。
【図１１】本発明の一実施形態による、縦長メタ・コアの縦長メモリ・デバイスを示すブロック図である。
【図１２】本発明の一実施形態による幅広メタ・コアを示す。
【図１３】本発明の一実施形態による、幅広メタ・コアの幅広メモリ・デバイスを示すブロック図である。
【図１４】本発明の一実施形態によるメタ・コアを示す。
【図１５】本発明の一実施形態による、メタ・コアのメモリ・デバイスを示すブロック図である。
【図１６】本発明の一実施形態によるニューラル・ネットワークを示す。
【図１７】本発明の一実施形態による、多重化コア回路において発火イベントを処理するための例示的プロセスのフローチャートを示す。
【図１８】本発明の１つの実施形態を実装するのに有用な情報処理システムを示す高レベル・ブロック図である。
【発明を実施するための形態】
【００１１】
本発明の実施形態は、多重化ニューラル・コア回路に関する。１つの実施形態は、複数のニューロンのニューロン属性を保持するメモリ・デバイスを含むコア回路を含む。メモリ・デバイスは、複数のエントリを有する。各エントリは、対応するニューロンのニューロン属性を保持する。コア回路は、メモリ・デバイスを管理するコントローラをさらに含む。これらニューロンのうちの１つを標的とするニューロン発火イベントに応答して、コントローラは、メモリ・デバイスの対応するエントリから標的ニューロンのニューロン属性を取り出し、取り出したニューロン属性に基づいて発火イベントを積分し、標的ニューロンに対する発火イベントを生成する。
【００１２】
別の実施形態は、複数のニューロンのニューロン属性をメモリ・デバイス内に保持することを含む。メモリ・デバイスは、複数のエントリを有する。各エントリは、対応するニューロンのニューロン属性を保持する。これらニューロンのうちの１つを標的とするニューロン発火イベントに応答して、メモリ・デバイスの対応するエントリから標的ニューロンのニューロン属性が取り出され、取り出されたニューロン属性に基づいて発火イベントが積分されて、標的ニューロンに対する発火イベントが生成される。
【００１３】
メモリ・デバイスの各エントリは、対応するニューロンのニューロン属性である、シナプス結合性情報、ニューロン・パラメータ、及びルーティング・データ情報を保持する。コントローラは、積分された発火イベントが標的ニューロンの閾値ニューロン・パラメータを超える場合に、発火イベントを生成する。
【００１４】
各標的ニューロンに対して、コントローラは該標的ニューロンの少なくとも１つのニューロン・パラメータを更新する。
【００１５】
コントローラは、複数のニューロンの計算及び制御論理を多重化する。メモリ・デバイスのエントリに対応する各ニューロンに対して、コントローラはそのニューロンを標的とする入力発火イベントを受け取り、そのニューロンのシナプス結合性情報をメモリ・デバイスの対応するエントリから取り出す。
【００１６】
メモリ・デバイスのエントリに対応する各ニューロンに対して、コントローラはそのニューロンのニューロン・パラメータをメモリ・デバイスの対応するエントリから取り出し、そのニューロンを標的とする入力発火イベントを積分し、ここで入力発火イベントは、そのニューロンのニューロン・パラメータ及びシナプス結合性に基づいて積分される。コントローラは、積分された入力発火イベントがそのニューロンの閾値ニューロン・パラメータを超えるとき、出力発火イベントを生成し、ここで出力発火イベントは、そのニューロンのルーティング・データ情報に基づいて生成される。コントローラは、そのニューロンの少なくとも１つのニューロン・パラメータを更新する。
【００１７】
時間ステップ毎に、メモリ・デバイスの各エントリがシーケンシャルに読み出される。
【００１８】
一実施形態において、メモリ・デバイスは、複数のパーティションを含むメモリ・アレイである。第１のパーティションは、複数のニューロンのシナプス結合性情報を保持し、第２のパーティションは、それらニューロンのニューロン・パラメータを保持し、第３のパーティションは、それらニューロンのルーティング・データ情報を保持する。
【００１９】
別の実施形態において、メモリ・デバイスは、複数のメモリ・アレイを含む。第１のメモリ・アレイは、複数のニューロンのシナプス結合性情報を保持し、第２のメモリ・アレイは、それらニューロンのニューロン・パラメータを保持し、第３のメモリ・アレイは、それらニューロンのルーティング・データ情報を保持する。
【００２０】
本明細書で用いられるデジタル・ニューロンという用語は、生体ニューロンを模擬するように構成されたフレームワークを表す。デジタル・ニューロンは、生体脳のニューロンとほぼ機能的に等価な処理要素間の結合を作り出す。従って、本発明の実施形態によるデジタル・ニューロンを含むニューロモルフィック及びシナプトロニック計算は、生体ニューロンをモデル化した様々な電子回路を含むことができる。さらに、本発明の実施形態によるデジタル・ニューロンを含むニューロモルフィック及びシナプトロニック計算は、生体ニューロンをモデル化した様々な処理要素（コンピュータ・シミュレーションを含む）を含むことができる。本発明の特定の例証的な実施形態は、本明細書において、デジタル回路を含むデジタル・ニューロンを用いて説明されるが、本発明はデジタル回路に限定されるものではない。本発明の実施形態によるニューロモルフィック及びシナプトロニック計算は、回路を含むニューロモルフィック及びシナプトロニック・フレームワークとして、さらにはコンピュータ・シミュレーションとして実装することができる。実際に、本発明の実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、又はハードウェア要素及びソフトウェア要素の両方を含む実施形態の形態を取ることができる。
【００２１】
図１は、本発明の一実施形態によるニューラル・コア回路１０を示す。ニューラル・コア回路１０は、ニューロシナプス・コア回路である。コア回路１０は、複数のシナプス前軸索１５及び複数のシナプス後ニューロン１１を含む。各ニューロン１１は、設定可能な動作パラメータを有する。コア回路１０は、複数のシナプス３１と、複数の行／軸索経路２６と、複数の列／樹状突起経路３４とを含むシナプス・クロスバー１２をさらに含む。
【００２２】
各シナプス３１は、シナプス前軸索１５とシナプス後ニューロン１１との間で発火イベント（例えば、スパイク・イベント）を伝達する。具体的には、各シナプス３１は、軸索経路２６と樹状突起経路３４との間の交差点に位置しており、軸索経路２６と樹状突起経路３４との間の結合がシナプス３１を通して作られるようになっている。各軸索１５は、軸索経路２６に結合されており、軸索１５は、結合した軸索経路２６にスパイクを送るようになっている。各ニューロン１１は、樹状突起経路３４に結合されており、ニューロン１１は、結合した樹状突起経路３４からスパイクを受け取る。
【００２３】
各シナプス３１は、シナプス重みを有する。コア回路１０のシナプス３１のシナプス重みは、重み行列Ｗによって表すことができ、ここで行列Ｗの要素Ｗｊｉは、クロスバー１２の行／軸索経路ｊ及び列／樹状突起経路ｉに位置するシナプス３１のシナプス重みを表す。１つの実施形態において、シナプス３１はバイナリ・メモリ・デバイスである。各シナプス３１は、そのシナプス３１が非導電状態にあることを示す重み「０」、又はこのシナプス３１が導電状態にあることを示す重み「１」を有することができる。スパイク・タイミング依存可塑性（ＳＴＤＰ）のような学習則を適用して、シナプス３１のシナプス重みを更新することができる。
【００２４】
図２は、本発明の一実施形態による、発火イベントの入力ベクトル５０を受け取ったときのコア回路１０（図１）の動作を示す。時間ステップ（クロック・ステップ）ｔ毎に、コア回路１０の軸索１５（図１）は、バイナリ入力ベクトル（「入力ベクトル」）５０を受け取る。入力ベクトル５０は、以前のクロック・ステップｔ−１で生成された発火イベントを受け取った軸索１５を表す。入力ベクトル５０の各インデックスは、軸索１５に対応する。バイナリ値１を有する入力ベクトル５０の各インデックスは、対応する軸索１５が発火イベントを受け取ったことを示す。バイナリ値０を有する入力ベクトル５０の各インデックスは、対応する軸索１５が発火イベントを受取らなかったことを示す。
【００２５】
バイナリ値１を有する入力ベクトル５０の各インデックスに関して、対応する軸索１５の軸索経路／行２６に位置するシナプス３１の重みが読み出されて、バイナリ出力ベクトル（「出力」）６０が得られる。軸索１５に対応する出力ベクトル６０に関して、出力ベクトル６０の各インデックスは、その軸索１５の軸索経路／行２６に位置するシナプス３１に対応する。バイナリ値１を有する出力ベクトル６０の各インデックスは、対応するシナプス３１が導電性シナプス３１であることを示す。バイナリ値０を有する出力ベクトル６０の各インデックスは、対応するシナプス３１が非導電性シナプス３１であることを示す。
【００２６】
例えば、図２に示すように、時間ステップＦ（ｔ）において、軸索１５は、値＜１,０,０,０,１,０,０,１,１＞を有する入力ベクトル５０を受け取る。値＜１,０,０,０,１,０,０,１,１＞は、クロスバー１２の軸索経路／行０、４、７、及び８に結合する軸索１５が、以前のクロック・ステップＦ（ｔ−１）で生成された発火イベントを受け取ったことを示す。各軸索経路／行０、４、７及び８に位置するシナプス３１の重みが時間ステップＦ（ｔ）の間に読み出される。行０、４、７、及び８に対応する出力行列６０は、それぞれ、＜１,０,０,０,１,０,０,１,１＞、＜０,１,１,０,０,０,１,１,０＞、＜１,１,０,０,１,１,１,１,０＞、及び＜０,０,０,１,１,１,０,１,１＞である。
【００２７】
前述のように、バイナリ値１を有する出力ベクトル６０の各インデックスは、対応するシナプス３１が導電性シナプス３１であることを示す。各ニューロン１１は、相互結合された軸索１５から導電性シナプス３１を介して発火イベントを受け取る。各ニューロン１１は、受け取った発火イベントを積分して、そのニューロン１１の膜電位変数Ｖにする。
【００２８】
例えば、図２には数のシーケンス７０が示されており、ここでシーケンス７０の各々の数は、コア回路１０のニューロン１１に対応する。シーケンス７０の各々の数は、対応するニューロン１１が現在の時間ステップｔにおいて受け取った発火イベントの数を表す。クロスバー１２の樹状突起経路／列０、１、２、．．．、及び８に結合したニューロン１１は、それぞれ、２つの発火イベント、２つの発火イベント、１つの発火イベント、１つの発火イベント、３つの発火イベント、２つの発火イベント、２つの発火イベント、４つの発火イベント、及び２つの発火イベントを受け取った。
【００２９】
各ニューロン１１は、現在の時間ステップｔにおいてそのニューロン１１によって積分された発火イベントの数がそのニューロン１１の発火閾値を超える場合に、発火イベントを生成する。現在の時間ステップｔにおける発火ニューロン１１を表すバイナリ更新ベクトル（「更新ベクトル」）８０が得られる。更新ベクトル８０の各インデックスは、ニューロン１１に対応する。バイナリ値１を有する各インデックスは、対応するニューロン１１が現在の時間ステップｔにおいて発火イベントを生成したことを示す。
【００３０】
例えば、コア回路１０の各ニューロン１１は、２に等しいスパイク閾値を有する（即ち、ニューロン１１は、ニューロン１１が２つより多くの発火イベントを受け取った場合に発火する）ものとすることができる。図２に示すように、値＜０,０,０,０,１,０,０,１,０＞を有するバイナリ更新ベクトル８０は、クロスバー１２の樹状突起経路／列４及び７に結合されたニューロン１１が現在の時間ステップＦ（ｔ）において発火イベントを生成したことを示す。前述のように、樹状突起経路／列４及び７に結合されたニューロン１１は各々、２つより多くの発火イベントを受け取った。
【００３１】
図３は、本発明の一実施形態によるコア回路１０のリセット及びセット動作を示す。リセット動作及びセット動作は、ＳＴＤＰのようなシナプス学習を促進する。一実施形態において、活性軸索１５（図１）に結合された各シナプス３１のシナプス重みがリセットされる。活性軸索１５は、現在の時間ステップ又は最近の時間ステップにおいて発火イベントを受け取った軸索１５である。活性軸索１５に結合したシナプス３１がバイナリである場合、そのシナプス３１のシナプス重みは０にリセットされる。活性軸索１５に結合されたシナプス３１が非バイナリである場合、そのシナプス３１のシナプス重みが減らされる。
【００３２】
例えば、図３に示すように、バイナリ値１を有する入力ベクトル５０の各インデックスに対して、そのインデックスに対応する軸索１５のためのバイナリ・リセット・ベクトル９０が生成される。ある軸索１５のリセット・ベクトル９０に関して、バイナリ値１を有するリセット・ベクトル９０の各インデックスは、その軸索１５に結合されたシナプス３１がリセットされることを示す。
【００３３】
一実施形態において、活性ニューロン１１に結合された各シナプス３１（図１）のシナプス重みがセットされる。活性ニューロン１１は、現在の時間ステップ又は最近の時間ステップにおいて発火イベントを生成したニューロン１１である。活性ニューロン１１に結合されたシナプス３１がバイナリである場合、シナプス３１のシナプス重みは１にセットされる。活性ニューロン１１に結合されたシナプス３１が非バイナリである場合、シナプス３１のシナプス重みが増やされる。
【００３４】
例えば、図３に示すように、バイナリ値１を有する更新ベクトル８０の各インデックスに関して、そのインデックスに対応するニューロン１１のバイナリ・セット・ベクトル９５が生成される。あるニューロン１１のセット・ベクトル９５に関して、バイナリ値１を有するセット・ベクトル９５の各インデックスは、そのニューロン１１に結合されたシナプス３１がセットされることを示す。
【００３５】
１つの実施形態において、Ｎ個のニューロンを含むニューラル・コア回路は、Ｎ個のニューロンのためのα個のコントローラをさらに含み、ここでαは正の整数であって１≦α＜Ｎであり、ニューロンはデジタル・ニューロンである。各コントローラは、処理及び計算論理回路である。
【００３６】
図４は、本発明の一実施形態による多重化ニューラル・コア回路１００を示す。コア回路１００は、多重化ニューロシナプス・コア回路である。コア回路１００は、複数のニューロン１１に対する計算及び制御論理を多重化したものである。具体的には、コア回路１００は、複数のニューロン１１のニューロン属性を保持するメモリ・デバイス１１０を含む。コア回路１００は、メモリ・デバイス１１０のためのコントローラ（即ち、処理及び計算論理回路）１２０をさらに含む。
【００３７】
メモリ・デバイス１１０は、複数のエントリ１１１を有する（図５）。各エントリ１１１は、ニューロン１１のニューロン属性を保持する。１つの実施形態において、各エントリ１１１は、ニューロン１１のニューロン属性である、シナプス結合性情報（Ｗｊｉ）、ニューロン・パラメータ、及びルーティング情報を保持する。１つの実施形態において、各エントリ１１１の第１のサブセット１１２は、ニューロン１１を軸索１５に相互結合するシナプス３１のシナプス重みを保持する。各エントリ１１１の第２のサブセット１１３は、ニューロン１１のニューロン・パラメータである、膜電位変数（Ｖ）、スパイク閾値（Ｔｈ）、リーク速度（Ｌｋ）、及び、各々可能な軸索型（Ｓｙｎ０、Ｓｙｎ１、Ｓｙｎ２）の重みを保持する。各エントリ１１１の第３のサブセット１１４は、ニューロン１１のルーティング情報である、ファンアウト（Ｆ）及びルーティング遅延（ΔＴ）をさらに保持する。
【００３８】
メモリ・デバイス１１０は、複数のセグメント１１０Ａに分割される。１つの実施形態において、メモリ・デバイス１１０は、単一のメモリ・アレイである。メモリ・アレイは複数のニューロン１１のシナプス結合性情報を保持する第１のパーティション１１０Ａ、ニューロン１１のニューロン・パラメータを保持する第２のパーティション１１０Ａ、及びニューロン１１のルーティング・データ情報を保持する第３のパーティション１１０Ａのような複数のパーティション１１０Ａを含むことができる。別の実施形態において、メモリ・デバイス１１０は、複数のメモリ・アレイを含む。第１のメモリ・アレイは、複数のニューロン１１のシナプス結合性情報を保持し、第２のメモリ・アレイは、ニューロン１１のニューロン・パラメータを保持し、第３のメモリ・アレイは、ニューロン１１のルーティング・データ情報を保持する。
【００３９】
メモリ・デバイス１１０は、メモリ・インタフェース回路１１５をさらに含む。回路１１５は、標準的なメモリ・インタフェース回路とすることができる。
【００４０】
一実施形態において、コントローラ１２０は、入力処理ファブリック１３０及び計算ファブリック１４０を含む。各エントリ１１１に対して、処理ファブリック１３０は、そのエントリ１１１を標的にする発火イベントを受け取って処理するように構成される。具体的には、受け取った各発火イベントは、そのエントリ１１１によって表されるニューロン１１が相互結合された軸索１５を標的にする。前述のように、各エントリ１１１の第１のサブセットは、ニューロン１１を軸索１５に相互結合するシナプス３１のシナプス重みを保持する。標的にされる軸索１５とエントリ１１１によって表されるニューロン１１とを相互結合するシナプス３１が導電性である場合、その発火イベントを計算ファブリック１４０によって積分することができる。
【００４１】
一実施形態において、処理ファブリック１３０は、デコーダ１３１、スケジューラ制御ユニット１３２、スケジューラ１３３、軸索型レジスタ１３４、多重制御ユニット１３５、及びドット積モジュール１３６を含む。
【００４２】
複数のコア回路１００を含むニューラル・ネットワークにおいて、発火イベントは、ニューラル・ネットワークのコア回路１００間でアドレス−イベント・パケットの形態でルーティングされる。各アドレス−イベント・パケットは、標的軸索１５を表すバイナリ・アドレスとしてコード化された発火イベントを含み、ここで発火イベントは、同じコア回路１００又は異なるコア回路１００内のニューロン１１によって生成されたものである。各アドレス−イベント・パケットは、そのアドレス−イベント・パケット内にカプセル化された発火イベントがいつ発生したかを示すタイム・スタンプをさらに含む。各コア回路１００のデコーダ１３１は、アドレス−イベント・パケットを受け取ってデコードするように構成される。
【００４３】
１つの例示的な実装において、スケジューラ１３３は、行及び列を含むデュアル・ポート・メモリである。受け取ったアドレス−イベント・パケットからデコードされた発火イベントは、スケジューラ１３３内に格納され、ここで行は未来の時間ステップを表し、列は軸索１５を表す。各発火イベントに対して、スケジューラ制御ユニット１３２は、スケジューラ１３３のどの行及び列に発火イベントが書き込まれるかを制御する。受け取った発火イベントに対して、それらを標的軸索１５に伝達する前に選択的に遅延が課される。各発火イベントに対して、スケジューラ制御ユニット１３２は、その発火イベントがデコーダ１３１までのルート上で費やした時間の長さを、アドレス−イベント・パケットがデコーダ１３１に到着した時間と、発火イベントがいつ生成されたか示すタイム・スタンプとの間の差ｄとして計算する。差ｄが所定の配信遅延（又は所定の全遅延）ｎ未満の場合、その発火イベントは、発火イベント生成から発火イベント配信までにｎ個のタイム・スタンプを達成するように、ｎとｄとの間の差に等しい遅延期間Ｄの間、スケジューラ１３３内に保持され、スケジューラ１３３は、遅延期間の終了時に発火イベントを配信する。
【００４４】
例えば、スパイクが、ニューラル・ネットワーク内を伝搬するために３乃至９の時間ステップを必要とする場合、スケジューラ１３３は、全てのスパイクに対して９つの時間ステップを確保する。一例において、スパイクが生成から３つの時間ステップ内でデコーダ１３１に到着したとしても、スケジューラ１３３は、このスパイクがスパイク生成から９つの時間ステップの終了の時点でスケジューラ１３３から伝達されるように、スパイクの伝達を６つの時間ステップだけ遅延させる。
【００４５】
各時間ステップの開始時に、現在の時間ステップにおける全ての活性軸索１５を示すベクトルが、スケジューラ１３３から行として読み出される。次に、メモリ・デバイス１１０全体が、時間ステップ毎に一回、読出し及び書込みされる。
【００４６】
具体的には、各時間ステップに対して、メモリ・デバイス１１０のエントリ１１１が、シーケンシャル・スキャナ１５０を用いて１つずつシーケンシャルに読み出される。多重制御ユニット１３５は、制御信号をメモリ・デバイス１１０に送るように構成される。ニューロン１１を表す各エントリ１１１に対して、ドット積モジュール１３６は、現在の時間ステップにおける活性軸索１５のベクトルと、そのエントリ１１１内に保持されたシナプス結合性情報、即ち、ニューロン１１の樹状突起経路が結合された全てのシナプス３１のシナプス重み（Ｗｊ）との間のドット積を計算する。
【００４７】
軸索型レジスタ１３４は、異なるコマンドを保持し、軸索型（即ち、Ｓｙｎ０、Ｓｙｎ１、Ｓｙｎ２など）に基づいて計算ファブリック１４０にコマンドを送る。保持される各コマンドは、計算されたドット積のインデックスに対応する。１つの実施形態において、メモリ・デバイス１１０内に保持されるシナプス重みはバイナリ値である。軸索型レジスタ１３４は、非ゼロ値を有するドット積のインデックスに対応するコマンドを計算ファブリック１４０に送る。例えば、計算されたドット積が値＜１,１,１,０,０,０＞を有し、軸索型レジスタが値＜０,１,２,３,１,２＞を保持する場合、軸索型レジスタ１３４は、コマンド０、１、２を計算ファブリック１４０に送る。
【００４８】
多重制御ユニット１３５は、計算されたドット積と発火イベントとを組み合せて計算ファブリック１４０に送るための信号及びコマンドを作成するようにさらに構成される。作成された信号は、クロック信号／時間ステップを含む。
【００４９】
別の実施形態において、メモリ・デバイス１１０内に保持されるシナプス重みは非バイナリである。軸索型レジスタ１３４は、ドット積の各々の非ゼロ値にその非ゼロ値を有するドット積のインデックスに対応するコマンドを掛け合わせたものを計算ファブリック１４０に送る。例えば、計算されたドット積が値＜２,１,３,０,０,０＞を有し、軸索型レジスタが値＜０,１,２,３,１,２＞を保持する場合、軸索型レジスタ１３４は、（０,２）、（１,１）、及び（２,３）を計算ファブリック１４０に送る。
【００５０】
一実施形態において、計算ファブリック１４０は、第１のマルチプレク１４１、第２のマルチプレク１４２、加算器１４３、デマルチプレクサ１４４、コンパレータ・モジュール（「コンパレータ」）１４５、及びエンコーダ１４６を含む
【００５１】
各エントリ１１１に対して、第１のマルチプレクサ１４１は、多重制御ユニット１３５によって供給された情報を使用してニューロン・パラメータ（即ち、Ｓｙｎ０、Ｓｙｎ１、Ｓｙｎ２、Ｌｋ）を選択する。例えば、全てのスパイクが積分された後で、エントリ１１１内に保持されたリーク速度Ｌｋが選択される。加算器１４３は、第１のマルチプレクサ１４１によって選択されたニューロン・パラメータを、第２のマルチプレクサ１４２によって選択された膜電位変数に加える。各エントリ１１１に対して、第２のマルチプレクサ１４２は、そのエントリ１１１内に保持された膜電位変数Ｖを最初の加算のために選択する。各エントリ１１１に対して、第２のマルチプレクサ１４２は、修正された膜電位変数を次の加算のために選択し、ここで修正された膜電位変数は一時的変数である。
【００５２】
各エントリ１１１に対して、全てのスパイクが積分されてリーク速度が適用された後、コンパレータ１４５は、修正された膜電位変数がそのエントリ１１１内に保持されている閾値パラメータＴｈを超えるかどうかを判断する。閾値パラメータＴｈを超える場合、エンコーダ１４６は、スパイクを生成し、そのエントリ１１１内に保持されているファンアウトＦ及びルーティング遅延ΔＴ情報を用いて、生成されたスパイクをアドレス−イベント・パケットにカプセル化／エンコードする。膜電位変数Ｖは、そのエントリ１１１に再度書き込まれる前にゼロにリセットすることができる。
【００５３】
以下の表１は、コントローラ１２０の実行を示す例示的な疑似コードを与える。
【表１】
2015534172.tif 000003
【００５４】
別の例示的実施において、スケジューラ１３３は、二重バッファリング用に構成される。例えば、スケジューラ１３３は、第１のバッファ及び第２のバッファを含むことができる。スケジューラ１３３は、現在の時間ステップｔにおいて受け取った発火イベントを第１のバッファ内にバッファリングする。次の時間ステップｔ＋１の開始時に、スケジューラ１３３は、第１のバッファ内の発火イベントを第２のバッファに移動させる。各発火イベントは、その発火イベントに対してプログラムされた配信時間に応じて、時間ステップｔ＋１又は次の時間ステップにおいて標的軸索１５に配信することができる。
【００５５】
図５は、本発明の一実施形態による多重化コア回路１００のメモリ・デバイス１１０を示すブロック図である。前述のように、メモリ・デバイス１１０は、複数のニューロン１１に関する情報を保持する。メモリ・デバイス１１０は、複数のエントリ１１１を含む。各エントリ１１１は、ニューロン１１のニューロン属性を保持する。
【００５６】
図６は、本発明の一実施形態による多重化コア回路１００のメモリ・デバイス１１０のエントリ１１１内に保持される情報を示すブロック図である。１つの実施形態において、各エントリ１１１は、ニューロン１１のニューロン属性である、シナプス結合性情報、ニューロン・パラメータ、及びルーティング情報を保持する。１つの実施形態において、各エントリ１１１の第１のサブセット１１２は、ニューロン１１を軸索１５に相互結合するシナプス３１のシナプス重みを保持する。各エントリ１１１の第２のサブセット１１３は、ニューロン１１のニューロン・パラメータである、膜電位変数（Ｖ）、スパイク閾値（Ｔｈ）、リーク速度（Ｌｋ）、及び、各々の可能な軸索型（Ｓｙｎ０、Ｓｙｎ１、Ｓｙｎ２）の重みを保持する。各エントリ１１１の第３のサブセット１１４は、ニューロン１１のルーティング情報である、ファンアウト（Ｆ）、及びルーティング遅延（ΔＴ）をさらに保持する。
【００５７】
図７は、本発明の一実施形態による多重化コア回路１００を示すブロック図である。前述のように、コア回路１００は、複数のエントリ１１１を含むメモリ・デバイス１１０を含む。各エントリ１１１は、ニューロン１１に関する情報を保持する。コア回路１００は、メモリ・デバイス１１０のためのコントローラ（即ち、処理及び計算論理回路）１２０をさらに含む。メモリ・インタフェース回路１１５が、メモリ・デバイス１１０をコントローラ１２０に橋絡する。
【００５８】
図８は、本発明の一実施形態による、バイナリ入力ベクトル５０を受け取る多重化コア回路１００を示すブロック図である。前述のように、各時間ステップの開始時に、現在の時間ステップにおける全ての活性軸索１５を示すバイナリ入力ベクトル５０がスケジューラ１３３から取得される。次に、メモリ・デバイス１１０の各エントリ１１１が、シーケンシャルに１つずつ読み出される。
【００５９】
図９は、本発明の一実施形態による、半多重化コア２００を示すブロック図である。コア２００は、複数のメモリ・デバイス１１０を含む。各メモリ・デバイス１１０は、対応するコントローラ（即ち、対応する処理及び計算論理回路）１２０を有する。一実施形態において、Ｎ個のニューロンを含むコア２００は、Ｎ個のニューロンのためのα個のコントローラ（即ち、処理及び計算論理回路）を含むことができ、ここでαは正の整数であり、１≦α＜Ｎである。
【００６０】
図１０は、本発明の一実施形態による縦長メタ・コア４００を示す。メタ・コア４００は、多重化ニューラル・ネットワーク・システムである。メタ・コア４００は、異なるコア回路１０に属する複数のニューロン１１のニューロン属性を保持する縦長メモリ・デバイス４１０を含む。メモリ・デバイス４１０は、複数のサブセット４１２（図１１）を含み、各々のサブセット４１２は、１つのコア回路１０のニューロン１１のニューロン属性を保持する。各サブセット４１２は、複数のエントリ４１１を含み、各々のエントリ４１１は、１つのニューロン１１のニューロン属性を保持する。各エントリ４１１に関して、ニューロン１１のニューロン属性は、シナプス結合性情報、ニューロン・パラメータ、及びルーティング情報を含む。
【００６１】
縦長メモリ・デバイス４１０内にデータを統合することにより、全体の有効電力消費を増やすことなく受動的電力消費が削減される。メタ・コア４００は、コントローラ（即ち、処理及び計算論理回路）１２０をさらに含む。メモリ・デバイス４１０によって表されるニューロン１１は、多重化されているので、メモリ・デバイス４１０のエントリ４１１によって表される各ニューロン１１が、メモリ・デバイス４１０の他のエントリ４１１によって表される他のニューロン１１とコントローラ１２０を共有するようになっている。従って、異なるコア回路１０のニューロン１１が同じコントローラ１２０を共有する。メモリ・インタフェース回路４１５が、メモリ・デバイス４１０をコントローラ１２０に橋絡する。
【００６２】
コントローラ１２０のデコーダ１３１は、アドレス−イベント・パケットをルーティング・ネットワーク２６０から受け取るように構成される。コントローラ１２０のエンコーダ１４６は、アドレス−イベント・パケットをルーティング・ネットワーク２６０に送るように構成される。
【００６３】
図１１は、本発明の一実施形態による縦長メタ・コア４００の縦長メモリ・デバイス４１０を示すブロック図である。前述のように、縦長メモリ・デバイス４１０は、異なるコア回路１０に属する複数のニューロン１１のニューロン属性を保持する。メモリ・デバイス４１０は、複数のサブセット４１２を含み、各々のサブセット４１２は、１つのコア回路１０のニューロン１１のニューロン属性を保持する。各サブセット４１２は、複数のエントリ４１１を含み、各々のエントリ４１１は、１つのニューロン１１のニューロン属性を保持する。各エントリ４１１に関して、ニューロン１１のニューロン属性は、シナプス結合性情報、
ニューロン・パラメータ、及びルーティング情報を含む。
【００６４】
図１２は、本発明の一実施形態による幅広メタ・コア５００を示す。メタ・コア５００は、多重化ニューラル・ネットワーク・システムである。メタ・コア５００は、異なるコア回路１０に属する複数のニューロン１１のニューロン属性を保持する幅広メモリ・デバイス５１０を含む。メモリ・デバイス５１０は、複数のサブセット５１２を含み、メモリ・デバイス５１０の各サブセット５１２は、１つのコア回路１０のニューロン１１のニューロン属性を保持する。各サブセット５１２は、複数のエントリ５１１に分割することができ、各エントリ５１１は、１つのニューロン１１のニューロン属性を保持する。１つの例示的な実装において、各サブセット５１２が含むエントリ５１１の数は、メモリ・デバイス５１０が表すコア回路１０の数に等しい。各エントリ５１１に関して、そのエントリ５１１内に保持されるニューロン１１のニューロン属性は、シナプス結合性情報、ニューロン・パラメータ、及びルーティング情報を含む。
【００６５】
幅広メモリ・デバイス５１０内にデータを統合することにより、受動的電力消費が削減される。メタ・コア５００は、複数のコントローラ（即ち、処理及び計算論理回路）１２０をさらに含む。１つの実施形態において、Ｎ個のニューロンを含むメタ・コア５００は、Ｎ個のニューロンのためのα個のコントローラ（即ち、処理及び計算論理回路）１２０を含むことができ、ここでαは正の整数であり、１≦α＜Ｎである。１つの例示的な実装において、メモリ・デバイス５１０の各サブセット５１２は、対応するコントローラ（即ち、対応する処理及び計算論理回路）１２０を有する。従って、同じコア回路１０のニューロン１１は、同じコントローラ１２０を共有する。動作中、各サブセット５１２の各エントリ５１１が完全に読み出され、そのエントリ５１１のニューロン属性は、そのサブセット５１２のコントローラ１２０によって独立に処理される。
【００６６】
図１３は、本発明の一実施形態による幅広メタ・コア５００の幅広メモリ・デバイス５１０を示すブロック図である。前述のように、幅広メモリ・デバイス５１０は、異なるコア回路１０に属する複数のニューロン１１のニューロン属性を保持する。メモリ・デバイス５１０は、複数のサブセット５１２を含み、メモリ・デバイス５１０の各サブセット５１２は、１つのコア回路１０のニューロン１１のニューロン属性を保持する。各サブセット５１２は、複数のエントリ５１１に分割することができ、各エントリ５１１は、１つのニューロン１１のニューロン属性を保持する。１つの例示的な実装において、各サブセット５１２が含むエントリ５１１の数は、メモリ・デバイス５１０が表すコア回路１０の数に等しい。各エントリ５１１に関して、そのエントリ５１１内に保持されるニューロン１１のニューロン属性は、シナプス結合性情報、ニューロン・パラメータ、及びルーティング情報を含む。
【００６７】
図１４は、本発明の一実施形態によるメタ・コア６００を示す。メタ・コア６００は、多重化ニューラル・ネットワーク・システムである。メタ・コア６００は、異なるコア回路１０（図１）に属する複数のニューロン１１（図１）のニューロン属性を保持するメモリ・デバイス６１０を含む。図１４に示すように、メモリ・デバイス６１０は、コア回路であるコア０、コア１、コア２、．．．、コア８、に属するニューロン１１のニューロン属性を保持する。複数のコア回路１０のデータをメモリ・デバイス６１０内に統合することにより、受動的電力消費が削減される。
【００６８】
メモリ・デバイス６１０は、複数のサブセット６１２（図１５）を有し、各サブセット６１２は、１つのコア回路１０のニューロン１１のニューロン属性を保持する。各サブセット６１２は、複数のエントリ６１１（図１５）を有し、各エントリ６１１は、１つのニューロン１１のニューロン属性を保持する。各エントリ６１１に関して、そのエントリ６１１内に保持されるニューロン属性は、ニューロン１１のシナプス結合性情報、ニューロン・パラメータ、及びルーティング情報を含む。
【００６９】
メタ・コア６００は、複数のコントローラ（即ち、処理及び計算論理回路）１２０をさらに含む。１つの実施形態において、Ｎ個のニューロンを含むメタ・コア６００は、Ｎ個のニューロンのためのα個のコントローラ（即ち、処理及び計算論理回路）１２０を含むことができ、ここでαは正の整数であり、１≦α＜Ｎである。１つの例示的な実装において、メモリ・デバイス６１０のサブセット６１２は、複数のグループ６１４（図１５）に編成される。各グループ６１４は、異なるコア回路１０を表す複数のサブセット６１２を含む。各グループ６１４は、対応するコントローラ（即ち、処理及び計算論理回路）１２０を有するので、そのグループ６１４のニューロン１１は同じコントローラ１２０を共有するようになっている。動作中、各グループ６１４の各サブセット６１２の各エントリ６１１が読み出され、そのエントリ６１１内に保持されたニューロン属性は、そのグループ６１４のコントローラ１２０によって独立に処理される。
【００７０】
図１４に示すように、コア回路であるコア０、コア３、及びコア６のデータは、第１のコントローラ１２０を共有し、コア回路であるコア１、コア４、及びコア７のデータは、第２のコントローラ１２０を共有し、コア回路であるコア２、コア５、及びコア８のデータは、第３のコントローラ１２０を共有する。
【００７１】
１つの実施形態において、コア回路１０のニューロン更新は、ニューロン１１が１つずつ更新されるようにシーケンシャルに行われる。１つの例示的な実装において、ニューロン更新中に、１つのコア回路１０のための１つのコントローラ１２０のみが使用される。１つのニューロン１１のニューロン更新が完了すると、メタ・コア６００は、全てのニューロン１１が処理されるまでは、次のニューロン１１に進む。従って、ニューロン１１の数が増加するにつれて（及びシナプス３１の数が増加するにつれて）、コントローラ１２０がコア回路１０のニューロン更新を完了するのにかかる時間量もまた増大する。この時間が時間ステップの持続時間を超えると、コントローラ１２０は、コア回路１０のニューロン更新を時間ステップ内で完了することができないことになる。従って、メモリ・デバイス６１０の最適な高さは、コントローラ１２０が時間ステップ内で処理できるニューロン１１の可能な最大数に基づくものとすべきである。例えば、コントローラ１２０が１００ＭＨｚで動作し、全てのニューロン１１を１ｍｓの時間ステップ内で処理する必要があり、１つのニューロン１１を処理するのに１０００チックが必要な場合、メモリ・デバイス６１０は、１００個のエントリ６１１しかを有することができない。メモリ・デバイス６１０の最適幅を決定することは、プロセス依存性である。
【００７２】
別の実施形態において、コア回路１０のニューロン更新は並列に実行される。１つの例示的な実装において、異なるコア回路１０のためのコントローラ１２０が並列に使用される。幾つかのコア回路（即ち、スレーブ・コア回路）のニューロン１１の膜電位変数の変化を収集することができ、１つのコア回路１０（即ち、マスター・コア回路１０）のデータが、収集された変化に基づいて更新される。コア回路１０のニューロン更新は並列に実行されるので、ニューロン更新の時間はメタ・コアのサイズに依存しない。
【００７３】
図１５は、本発明の一実施形態による、メタ・コア６００のメモリ・デバイス６１０を示すブロック図である。前述のように、メモリ・デバイス６１０は、異なるコア回路１０に属する複数のニューロン１１のニューロン属性を保持する。メモリ・デバイス６１０は、複数のサブセット６１２を含み、メモリ・デバイス６１０の各サブセット６１２は、１つのコア回路１０のニューロン１１のニューロン属性を保持する。各サブセット６１２は、複数のエントリ６１１を有し、各エントリ６１１は、１つのニューロン１１のニューロン属性を保持する。各エントリ６１１に関して、そのエントリ６１１内に保持されるニューロン属性は、ニューロン１１のシナプス結合性情報、ニューロン・パラメータ、及びルーティング情報を含む。１つの例示的な実装において、サブセット６１２は、複数のグループ６１４に編成され、各グループ６１４は、異なるコア回路１０を表す複数のサブセット６１２を含む。
【００７４】
図１５に示すように、コア回路であるコア０、コア３、及びコア６のデータは、第１のグループ６１４内に編成され、コア回路であるコア１、コア４、及びコア７のデータは、第２のグループ６１４内に編成され、コア回路であるコア２、コア５、及びコア８のデータは、第３のグループ６１４内に編成される。
【００７５】
図１６は、本発明の一実施形態によるニューラル・ネットワーク７００を示す。このニューラル・ネットワークは、複数のコア７１０を含む。コア７１０は、多重化コア回路１００、縦長メタ・コア４００、幅広メタ・コア５００、又はメタ・コア６００とすることができる。各コア７１０は、アドレス−イベント・パケットを、北方向、南方向、東方向、及び西方向に隣接するルータ７２０に転送するための対応するルータ７２０を有する。
【００７６】
図１７は、本発明の一実施形態による、多重化コア内で発火イベントを処理するための例示的なプロセス８００のフローチャートを示す。プロセス・ブロック８０１において、アドレス−イベント・パケット（ＡＥＲイベント）を受取る。プロセス・ブロック８０２において、受け取った各アドレス−イベント・パケットがデコードされる。プロセス・ブロック８０３において、デコードされたアドレス−イベント・パケットが、デコードされた情報に基づいてスケジューラに格納される。プロセス・ブロック８０４において、現在の時間ステップにおける活性軸索のベクトルがスケジューラから取得される。プロセス・ブロック８０５において、メモリ・デバイスの各エントリがシーケンシャルに読み出され、ここでメモリ・デバイスはニューロンに関する情報を保持する。
【００７７】
図１８は、本発明の１つの実施形態を実装するために有用な情報処理システム３００を示す高レベル・ブロック図である。コンピュータ・システムは、プロセッサ３０２のような１つ又は複数のプロセッサを含む。プロセッサ３０２は、通信インフラストラクチャ３０４（例えば、通信バス、クロス・オーバ・バー、又はネットワーク）に接続される。
【００７８】
コンピュータ・システムは、通信インフラストラクチャ３０４から（又は図示されていないフレーム・バッファから）の画像、テキスト、及び他のデータを表示のためにディスプレイ・ユニット３０８に転送するディスプレイ・インタフェース３０６を含むことができる。コンピュータ・システムはまた、主メモリ３１０、好ましくはランダム・アクセス・メモリ（ＲＡＭ）を含み、さらに二次メモリ３１２を含むことができる。二次メモリ３１２は、例えば、ハード・ディスク・ドライブ３１４、及び／又は、例えば、フロッピー・ディスク・ドライブ、磁気テープ・ドライブ、若しくは光ディスク・ドライブを表す取外し可能記憶ドライブ３１６を含むことができる。取外し可能記憶ドライブ３１６は、当業者に周知の方式で取外し可能記憶ユニット３１８から読み出す及び／又はそれに書き込む。取外し可能記憶ユニット３１８は、取外し可能記憶ドライブ３１６によって読み出され又は書き込まれる、例えば、フロッピー・ディスク、コンパクト・ディスク、磁気テープ、又は光ディスクなどを表す。当然のことながら、取外し可能記憶ユニット３１８は、コンピュータ・ソフトウェア及び／又はデータを内部に格納したコンピュータ可読媒体を含む。
【００７９】
代替的実施形態において、二次メモリ３１２は、コンピュ−タ・プログラム又はその他の命令をコンピュータ・システムにロードすることを可能にする他の同様の手段を含むことができる。そのような手段としては、例えば、取外し可能記憶ユニット３２０及びインタフェース３２２を挙げることができる。そのような手段の例としては、プログラム・パッケージ及びパッケージ・インタフェース（ビデオゲーム機内にあるようなもの）、取外し可能メモリ・チップ（ＥＰＲＯＭ又はＰＲＯＭなど）及び付属ソケット、並びに、取外し可能記憶ユニット３２０からソフトウェア及びデータをコンピュータ・システムに転送することを可能にする他の取外し可能記憶ユニット３２０及びインタフェース３２２を挙げることができる。
【００８０】
コンピュータ・システムはまた、通信インタフェース３２４を含むこともできる。通信インタフェース３２４は、コンピュータ・システムと外部機器との間でのソフトウェア及びデータの転送を可能にする。通信インタフェース３２４の例としては、モデム、ネットワーク・インタフェース（イーサネット・カードなど）、通信ポート、又はＰＣＭＣＩＡスロット及びカードなどを挙げることができる。通信インタフェース３２４を介して転送されるソフトウェア及びデータは信号の形態であり、これは、例えば、電子信号、電磁気信号、光信号、又は通信インタフェース３２４によって受け取ることができる他の信号とすることができる。これらの信号は、通信パス（即ち、チャネル）３２６を介して通信インタフェース３２４に供給される。この通信パス３２６は、信号を搬送するものであり、ワイヤ又はケーブル、光ファイバ、電話回線、携帯電話リンク、ＲＦリンク、及び／又は他の通信チャネルを用いて実装することができる。
【００８１】
本明細書において、「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」、及び「コンピュータ可読媒体」という用語は、例えば、主メモリ３１０及び二次メモリ３１２、取外し可能記憶ドライブ３１６、並びにハード・ディスク・ドライブ３１４内に装着されたハード・ディスクなどの媒体を一般的に指すために使用される。
【００８２】
コンピュータ・プログラム（コンピュータ制御論理とも呼ばれる）は、主メモリ３１０及び／又は二次メモリ３１２の中に格納される。コンピュータ・プログラムはまた、通信インタフェース３２４を介して受け取ることもできる。そのようなコンピュータ・プログラムは、実行されたときに、本明細書で論じた本発明の機能をコンピュータ・システムが実施できるようにする。特に、コンピュータ・プログラムは、実行されたときに、プロセッサ３０２がコンピュータ・システムの機能を実施できるようにする。従って、このようなコンピュータ・プログラムは、コンピュータ・システムのコントローラを表す。
【００８３】
上記の説明から、本発明は、本発明の実施形態を実装するためのシステム、コンピュータ・プログラム製品、及び方法を提供することが分かる。本発明はさらに、ニューラル・ネットワーク内の構造的可塑性を有する階層型ルーティング及び双方向情報フローのための、非一時的コンピュータ使用可能記憶媒体を提供する。非一時的コンピュータ使用可能記憶媒体は、コンピュータ可読プログラムを有し、このプログラムは、コンピュータ上で処理されると、本明細書で説明した実施形態に従って、本発明のステップをコンピュータに行わせる。特許請求の範囲において、ある要素を単数形で言及している場合、明示的に言明されない限り、「１つかつ唯一」を意味することを意図するのではなく、むしろ「１つ又は複数」を意味することを意図する。当業者に現在知られた又は後に知られるようになる前述の例示的な実施形態の要素の全ての構造的及び機能的均等物は、本特許請求の範囲に包含されることが意図される。ここにおける請求項のいかなる要素も、その要素が明示的に「のための手段（ｍｅａｎｓ  ｆｏｒ）」又は「のためのステップ（ｓｔｅｐ  ｆｏｒ）」という語句を用いて記述されていない限り、米国特許法第１１２条第６段落の規定の下で解釈されるべきではない。
【００８４】
本明細書で用いる用語は、特定の実施形態を説明するためだけのものであり、発明を限定することを意図したものではない。本明細書で用いられる場合、単数形「ある、１つの（ａ）、（ａｎ）」及び「この（ｔｈｅ）」は、文脈から明らかにそうでないことが示されていない限り、複数形も同様に含むことが意図される。「含む（ｃｏｍｐｒｉｓｅｓ）」及び／又は「含んでいる（ｃｏｍｐｒｉｓｉｎｇ）」という用語は、本明細書において使用される場合、言明された特徴、整数、ステップ、動作、要素、及び／又は構成要素の存在を指定するものではあるが、１つ又は複数の他の特徴、整数、ステップ、動作、要素、構成要素、及び／又はそれらの群の存在又は追加を排除するものではないこともさらに理解される。
【００８５】
以下の特許請求の範囲における「手段又はステップと機能との組合せ（ミーンズ又はステップ・プラス・ファンクション）」要素の対応する構造、物質、行為、及び均等物は、その機能を、明確に特許請求されている他の特許請求された要素と組み合せて実行するための、あらゆる構造、物質、又は行為を含むことが意図されている。本発明の説明は、例証及び説明のために提示されたものであり、網羅的であることを意図するものでもなく、本発明を開示された形に限定することを意図したものでもない。当業者には、本発明の範囲及び主旨から逸脱しない多くの変更及び変形が明白となるであろう。実施形態は、本発明の原理及び実際の用途を最も良く説明するため、及び、当業者が、企図される特定の用途に適した種々の修正を有する種々の実施形態に関して本発明を理解することができるように、選択され説明された。
【符号の説明】
【００８６】
１０：ニューラル・コア回路
１１：ニューロン
１２：シナプス・クロスバー
１５：シナプス前軸索
２６：行／軸索経路
３１：シナプス
３４：列／樹状突起経路
５０：入力ベクトル
６０：出力ベクトル
７０：数のシーケンス
８０：更新ベクトル
９０：リセット・ベクトル
９５：セット・ベクトル
１００：多重化ニューラル・コア回路
１１０、４１０、５１０、６１０：メモリ・デバイス
１１０Ａ：パーティション（セグメント）
１１１、４１１、５１１、６１１：エントリ
１１２：エントリの第１のサブセット
１１３：エントリの第２のサブセット
１１４：エントリの第３のサブセット
１１５：メモリ・インタフェース回路
１２０：コントローラ
１３０：入力処理ファブリック
１３５：多重制御ユニット
１３６：ドット積モジュール
１４０：計算ファブリック
１４１、１４２：マルチプレクサ
１４３：加算器
１４４：デマルチプレクサ
１４５：コンパレータ
２００：半多重化コア
３００：情報処理システム
４００：縦長メタ・コア
４１２、５１２、６１２：サブセット
５００：幅広メタ・コア
６００：メタ・コア
６１４：グループ
７００：ニューラル・ネットワーク
７１０：コア
７２０：ルータ
【図１】
2015534172.tif 000004
【図２】
2015534172.tif 000005
【図３】
2015534172.tif 000006
【図４】
2015534172.tif 000007
【図５】
2015534172.tif 000008
【図６】
2015534172.tif 000009
【図７】
2015534172.tif 000010
【図８】
2015534172.tif 000011
【図９】
2015534172.tif 000012
【図１０】
2015534172.tif 000013
【図１１】
2015534172.tif 000014
【図１２】
2015534172.tif 000015
【図１３】
2015534172.tif 000016
【図１４】
2015534172.tif 000017
【図１５】
2015534172.tif 000018
【図１６】
2015534172.tif 000019
【図１７】
2015534172.tif 000020
【図１８】
2015534172.tif 000021
【手続補正書】
【提出日】平成27年3月27日(2015.3.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のニューロンのニューロン属性を保持するメモリ・デバイスであって、複数のエントリを有し、各エントリが対応するニューロンのニューロン属性を保持する、メモリ・デバイスと、
前記メモリ・デバイスを管理するコントローラであって、前記ニューロンのうちの１つを標的とするニューロン発火イベントに応答して、前記メモリ・デバイスの対応するエントリから前記標的ニューロンのニューロン属性を取り出し、前記取り出したニューロン属性に基づいて前記発火イベントを積分し、前記標的ニューロンに対する発火イベントを生成する、コントローラと、
を含むニューラル・コア回路。
【請求項２】
前記エントリの各々に関して、前記エントリ内に保持される前記ニューロン属性は、対応するニューロンのシナプス結合性情報、ニューロン・パラメータ、及びルーティング・データ情報を含む、請求項１に記載のニューラル・コア回路。
【請求項３】
前記コントローラは、積分された発火イベントが前記標的ニューロンの閾値ニューロン・パラメータを超える場合に、標的ニューロンに対する発火イベントを生成する、請求項２に記載のニューラル・コア回路。
【請求項４】
各標的ニューロンに対して、前記コントローラは、前記標的ニューロンの少なくとも１つのニューロン・パラメータを更新する、請求項３に記載のニューラル・コア回路。
【請求項５】
前記コントローラは、複数のニューロンの計算及び制御論理を多重化する、請求項４に記載のニューラル・コア回路。
【請求項６】
時間ステップ毎に、前記メモリ・デバイスの各エントリがシーケンシャルに読み出される、請求項１から請求項５のいずれか１項に記載のニューラル・コア回路。
【請求項７】
前記メモリ・デバイスのエントリに対応する各ニューロンに対して、前記コントローラは、
前記ニューロンを標的とする入力発火イベントを受け取り、
前記ニューロンのシナプス結合性情報を前記メモリ・デバイスの前記対応するエントリから取り出す、
請求項２に記載のニューラル・コア回路。
【請求項８】
前記メモリ・デバイスのエントリに対応する各ニューロンに対して、前記コントローラは、
前記ニューロンのニューロン・パラメータを前記メモリ・デバイスの前記対応するエントリから取り出し、
前記ニューロンを標的とする入力発火イベントを、前記ニューロンの前記ニューロン・パラメータ及びシナプス結合性情報に基づいて積分し、
前記積分された入力発火イベントが前記ニューロンの閾値ニューロン・パラメータを超えるとき、前記ニューロンの前記ルーティング・データ情報に基づいて出力発火イベントを生成し、
前記ニューロンの少なくとも１つのニューロン・パラメータを更新する、
請求項７に記載のニューラル・コア回路。
【請求項９】
前記メモリ・デバイスは、複数のパーティションを含むメモリ・アレイであり、
前記複数のパーティションは、
前記複数のニューロンのシナプス結合性情報を保持する第１のパーティションと、
前記複数のニューロンのニューロン・パラメータを保持する第２のパーティションと、
前記複数のニューロンのルーティング・データ情報を保持する第３のパーティションと、
を含む、請求項１から請求項８までのいずれか１項に記載のニューラル・コア回路。
【請求項１０】
前記メモリ・デバイスは複数のメモリ・アレイを含み、
前記複数のメモリ・アレイは
前記複数のニューロンのシナプス結合性情報を保持する第１のメモリ・アレイと、
前記複数のニューロンのニューロン・パラメータを保持する第２のメモリ・アレイと、
前記複数のニューロンのルーティング・データ情報を保持する第３のメモリ・アレイと、
を含む、請求項１から請求項８のいずか１項に記載のニューラル・コア回路。
【請求項１１】
複数のニューロンのニューロン属性をメモリ・デバイス内に保持する方法であって、
前記メモリ・デバイスは、複数のエントリを有し、各エントリは、対応するニューロンのニューロン属性を保持し、前記方法は、
前記ニューロンのうちの１つを標的とするニューロン発火イベントに応答して、前記メモリ・デバイスの対応するエントリから前記標的ニューロンのニューロン属性を取り出し、前記取り出されたニューロン属性に基づいて前記発火イベントを積分し、前記標的ニューロンに対する発火イベントを生成すること、
を含む方法。
【請求項１２】
前記エントリの各々に対して、対応するニューロンのシナプス結合性情報、ニューロン・パラメータ、及びルーティング・データ情報を前記エントリ内に保持することをさらに含む、請求項１１に記載の方法。
【請求項１３】
積分された発火イベントが前記標的ニューロンの閾値ニューロン・パラメータを超える場合に、標的ニューロンに対する発火イベントを生成することをさらに含む、請求項１２に記載の方法。
【請求項１４】
各標的ニューロンに対して、前記標的ニューロンの少なくとも１つのニューロン・パラメータを更新することをさらに含む、請求項１３に記載の方法。
【請求項１５】
複数のニューロンの計算及び制御論理を多重化することをさらに含む、請求項１４に記載の方法。
【請求項１６】
前記メモリ・デバイスのエントリに対応する各ニューロンに対して、
前記ニューロンを標的とする入力発火イベントを受け取ることと、
前記ニューロンのシナプス結合性情報を前記メモリ・デバイスの前記対応するエントリから取り出すことと、
をさらに含む、請求項１２に記載の方法。
【請求項１７】
前記メモリ・デバイスのエントリに対応する各ニューロンに対して、
前記ニューロンのニューロン・パラメータを前記メモリ・デバイスの前記対応するエントリから取り出すことと、
前記ニューロンを標的とする入力発火イベントを、前記ニューロンの前記ニューロン・パラメータ及びシナプス結合性情報に基づいて積分することと、
前記積分された入力発火イベントが前記ニューロンの閾値ニューロン・パラメータを超えるとき、前記ニューロンの前記ルーティング・データ情報に基づいて出力発火イベントを生成することと、
前記ニューロンの少なくとも１つのニューロン・パラメータを更新することと、
をさらに含む、請求項１６に記載の方法。
【請求項１８】
時間ステップ毎に、前記メモリ・デバイスの各エントリをシーケンシャルに読み出すことをさらに含む、請求項１１から請求項１７までのいずれか１項に記載の方法。
【請求項１９】
前記複数のニューロンのシナプス結合性情報をメモリ・アレイの第１のパーティションに保持することと、
前記複数のニューロンのニューロン・パラメータを前記メモリ・アレイの第２のパーティションに保持することと、
前記複数のニューロンのルーティング・データ情報を前記メモリ・アレイの第３のパーティションに保持することと、
をさらに含む、請求項１１から請求項１８までのいずれか１項に記載の方法。
【請求項２０】
前記複数のニューロンのシナプス結合性情報を第１のメモリ・アレイに保持することと、
前記複数のニューロンのニューロン・パラメータを第２のメモリ・アレイに保持することと、
前記複数のニューロンのルーティング・データ情報を第３のメモリ・アレイに保持することと、
をさらに含む、請求項１１から請求項１８までのいずれか１項に記載の方法。
【請求項２１】
請求項１１から請求項２０までのいずれかに記載の方法を実施するためにコンピュータによって実行可能なプログラム・コードを有する、ニューラル・コア回路のためのコンピュータ・プログラム。
【国際調査報告】
2015534172.tif 000022
2015534172.tif 000023