(57)【特許請求の範囲】
【請求項１】
一組の処理ノードおよび前記ノード間の接続を含む、データ処理デバイスであって、
各接続は、前記一組の処理ノードのうちからエミッタノードとレシーバノードとを有し、前記レシーバノードに、前記エミッタノードによって送出されるイベントを送信するように構成され、
各ノードは、前記ノードによって受信されたイベントに従ってそれぞれの電位値(V)を変化させ、前記電位値が事前定義された閾値(Vt)に達したときにイベントを送出するように配置構成され、
前記データ処理デバイスの少なくとも1つの入力値(x)は、少なくとも1つのノードによって受信された2つのイベントの間の時間間隔(Δt)で表され、
前記データ処理デバイスの少なくとも1つの出力値は、少なくとも1つのノードによって送出された2つのイベントの間の時間間隔で表されるデータ処理デバイス。
【請求項２】
各処理ノードは、その電位値を、イベントを送出するときにリセットするように配置構成される請求項1に記載のデバイス。
【請求項３】
前記ノード間の前記接続は、各々がそれぞれの重みを有する電位変動接続を含み、
電位変動接続の前記レシーバノードは、その電位値(V)に、前記電位変動接続の前記重みを加えることによって前記電位変動接続で受信されたイベントに応答するように配置構成される請求項1または2に記載のデバイス。
【請求項４】
前記一組の処理ノードは、前記電位値に対する前記事前定義された閾値(Vt)に少なくとも等しい第1の正の重みを有する第1の電位変動接続(22)の前記レシーバノードを形成する少なくとも1つの第1のノード(23)と、前記電位値に対する前記事前定義された閾値の1/2に少なくとも等しく、前記電位値に対する前記事前定義された閾値(Vt)未満である重みを有する第2の電位変動接続(24)の前記レシーバノードを形成する少なくとも1つの第2のノード(25)とを含み、前記第1のノード(23)は、前記第1の正の重みと反対の値に等しい重みを有する第3の電位変動接続(28)の前記エミッタノードおよび前記レシーバノードをさらに形成し、
前記第1のノード(23)は、第4の接続(26)の前記エミッタノードをさらに形成し、前記第2のノード(25)は、第5の接続(27)の前記エミッタノードをさらに形成し、
前記第1および第2の電位変動接続(22、24)は、各々入力値を表す第1の時間間隔(Δt)によって隔てられた2つのイベントを受信するように構成され、それによって、前記第4および第5の接続(26、27)は前記第1の時間間隔(Δt)に関係する第2の時間間隔を間に有するそれぞれのイベントをトランスポートする請求項3に記載のデバイス。
【請求項５】
少なくとも1つの最小値計算回路(100)を備え、
前記最小値計算回路は、
第1および第2の入力ノード(101、102)と、
出力ノード(103)と、
第1および第2の選択ノード(104、105)と、
各々前記電位値に対する前記事前定義された閾値(Vt)の1/2に少なくとも等しく、前記電位値に対する前記事前定義された閾値(Vt)未満である第1の正の重みを有する第1、第2、第3、第4、第5、および第6の電位変動接続(106〜111)と、
各々前記第1の正の重みの値と反対の第2の重みを有する第7および第8の電位変動接続(112〜113)と、
各々前記第2の重みの2倍の第3の重みを有する第9および第10の電位変動接続(114〜115)とを備え、
前記第1の入力ノード(101)は、前記第1および第3の接続(106、108)の前記エミッタノードと前記第10の接続(115)の前記レシーバノードとを形成し、
前記第2の入力ノード(102)は、前記第2および第4の接続(107、109)の前記エミッタノードと前記第9の接続(114)の前記レシーバノードとを形成し、
前記第1の選択ノード(104)は、前記第5、第7、および第9の接続(110、112、114)の前記エミッタノードと前記第1および第8の接続(106、113)の前記レシーバノードとを形成し、
前記第2の選択ノード(105)は、前記第6、第8、および第10の接続(111、113、115)の前記エミッタノードと前記第2および第7の接続(107、112)の前記レシーバノードとを形成し、
前記出力ノード(103)は、前記第3、第4、第5、および第6の接続(108〜111)の前記レシーバノードを形成する請求項3に記載のデバイス。
【請求項６】
少なくとも1つの最大値計算回路(120)を備え、
前記最大値計算回路は、
第1および第2の入力ノード(121、122)と、
出力ノード(123)と、
第1および第2の選択ノード(124、125)と、
各々前記電位値に対する前記事前定義された閾値(Vt)の1/2に少なくとも等しく、前記電位値に対する前記事前定義された閾値(Vt)未満である第1の正の重みを有する第1、第2、第3、および第4の電位変動接続(126〜129)と、
各々前記第1の正の重みの値と反対の値の2倍に等しい第2の重みを有する第5および第6の電位変動接続(132〜133)とを備え、
前記第1の入力ノード(121)は、前記第1および第3の接続(126、128)の前記エミッタノードを形成し、
前記第2の入力ノード(122)は、前記第2および第4の接続(127、129)の前記エミッタノードを形成し、
前記第1の選択ノード(104)は、前記第5の接続(132)の前記エミッタノードと前記第1および第6の接続(126、133)の前記レシーバノードとを形成し、
前記第2の選択ノード(105)は、前記第6の接続(133)の前記エミッタノードと前記第2および第5の接続(127、132)の前記レシーバノードとを形成し、
前記出力ノード(123)は、前記第3および第4の接続(128、129)の前記レシーバノードを形成する請求項3に記載のデバイス。
【請求項７】
少なくとも1つの減算器回路(140、170)を備え、
前記減算器回路(140、170)は、
第1および第2の同期ノード(145、146)と、
第1および第2の抑制ノード(147、148)と、
第1および第2の出力ノード(143、144)と、
各々前記電位値に対する前記事前定義された閾値(Vt)に少なくとも等しい第1の正の重みを有する第1、第2、第3、第4、第5、および第6の電位変動接続(152〜157)と、
各々前記第1の正の重みの1/2に等しい第2の重みを有する第7および第8の電位変動接続(160、161)と、
各々前記第1の正の重みの値と反対の第3の重みを有する第9および第10の電位変動接続(158、159)と、
各々前記第3の重みの2倍の第4の重み(2wi)を有する第11および第12の電位変動接続(162、163)とを備え、
前記第1の同期ノード(145)は、前記第1、第2、第3、および第9の接続(152、153、154、158)の前記エミッタノードを形成し、
前記第2の同期ノード(146)は、前記第4、第5、第6、および第10の接続(155、156、157、159)の前記エミッタノードを形成し、
前記第1の抑制ノード(147)は、前記第11の接続(162)の前記エミッタノードと前記第3、第8、および第10の接続(154、161、159)の前記レシーバノードとを形成し、
前記第2の抑制ノード(148)は、前記第12の接続(163)の前記エミッタノードと前記第6、第7、および第9の接続(157、160、158)の前記レシーバノードとを形成し、
前記第1の出力ノード(143)は、前記第7の接続(160)の前記エミッタノードと前記第1、第5、および第11の接続(152、156、162)の前記レシーバノードとを形成し、
前記第2の出力ノード(144)は、前記第8の接続(161)の前記エミッタノードと前記第2、第4、および第12の接続(153、155、163)の前記レシーバノードとを形成し、
前記第1の同期ノード(145)は、前記第2の重みを有する少なくとも1つの電位変動接続(150)上で、間に第1のオペランド(x1)を表す第1の時間間隔(Δt1)を有する第1の一対のイベントを受信するように構成され、前記第2の同期ノード(146)は、前記第2の重みを有する少なくとも1つの電位変動接続(151)上で、間に第2のオペランド(x2)を表す第2の時間間隔(Δt2)を有する第2の一対のイベントを受信するように構成され、それによって、間に第3の時間間隔(Δtout)を有する第3の一対のイベントは、前記第1の時間間隔(Δt1)が前記第2の時間間隔(Δt2)よりも長い場合には前記第1の出力ノード(143)によって、前記第1の時間間隔(Δt1)が前記第2の時間間隔(Δt2)よりも短い場合には前記第2の出力ノード(144)によって送出され、前記第3の時間間隔(Δtout)は前記第1のオペランド(x1)と前記第2のオペランド(x2)との間の差の絶対値を表す請求項3に記載のデバイス。
【請求項８】
前記減算器回路(170)は、前記第1および第2の同期ノード(145、146)、前記第1および第2の抑制ノード(147、148)のうちの1つ、ならびに前記第1および第2の出力ノード(143、144)のうちの1つとともに検出および抑制接続(172〜178)に関連付けられている少なくとも1つの検出ノード(171)を含むゼロ検出論理回路をさらに備え、
前記検出および抑制接続(172〜178)は、前記第1および第2の時間間隔(Δt1、Δt2)が等しいときに前記第1および第2の出力ノード(143、144)のうちの一方によってイベントの発生を抑制するために、前記第1、第2、第3、第4、第5、第6、第7、第8、第9、第10、第11、および第12の接続(152〜163)よりも高速である請求項7に記載のデバイス。
【請求項９】
前記一組の処理ノードは、少なくとも1つの電流調整接続上で受信されたイベントに従って電流値を変化させ、前記電流値に比例する速度で時間の経過とともにその電位値を変化させるように配置構成されている少なくとも1つのノードを備える請求項3から8のいずれか一項に記載のデバイス。
【請求項１０】
電流値を変化させるように配置構成されている処理ノードは、イベントを送出するときに前記電流値をゼロにリセットするように配置構成される請求項9に記載のデバイス。
【請求項１１】
少なくとも1つのノードにおける前記電流値は、それぞれの重みを有する少なくとも1つの定電流成分調整接続上で受信された2つのイベントの間で一定である成分(ge)を有し、
定電流成分調整接続の前記レシーバノードは、前記接続の前記重みをそれの電流値の前記定数成分(ge)に加えることによって前記接続上で受信されたイベントに応答するように配置構成される請求項9または請求項10に記載のデバイス。
【請求項１２】
少なくとも1つのインバータメモリ回路(18)を備え、
前記インバータメモリ回路は、
アキュムレータノード(30)と、
第1、第2、および第3の定電流成分調整接続であって、前記第1および第3の接続(26、34)は同じ正の重み(wacc)を有し、前記第2の接続(27)は前記第1および第3の接続の前記重みの値と反対の重み(-wacc)を有する、第1、第2、および第3の定電流成分調整接続と、
少なくとも1つの第4の接続(35)とを備え、
前記アキュムレータノード(30)は、前記第1、第2、および第3の接続(26、27、34)の前記レシーバノードと前記第4の接続(35)の前記エミッタノードとを形成し、
前記第1および第2の接続(26、27)は、それぞれ、アキュムレータノード(30)へ、間に覚えておくべき値を表す時間間隔に関係する第1の時間間隔を有する第1および第2のイベントをアドレス指定するように構成され、それによって、前記アキュムレータノード(30)は、次いで、前記第4の接続(35)上の第4のイベントの送出までその電位値を増加させることによって前記第3の接続(34)上で受信される第3のイベントに反応し、前記第3および第4のイベントは間に前記第1の時間間隔に関係する第2の時間間隔を有する請求項11に記載のデバイス。
【請求項１３】
少なくとも1つのメモリ回路(40)を備え、
前記メモリ回路は、
第1および第2のアキュムレータノード(42、44)と、
第1、第2、第3、および第4の定電流成分調整接続であって、前記第1、第2、および第4の接続(41、43、51)は各々第1の正の重み(wacc)を有し、前記第3の接続(45)は前記第1、第2、および第4の接続の前記重みの値と反対の重み(-wacc)を有する、第1、第2、第3、および第4の定電流成分調整接続と、
少なくとも1つの第5の接続(52)とを備え、
前記第1のアキュムレータノード(42)は、前記第1の接続(41)の前記レシーバノードと前記第3の接続(45)の前記エミッタノードとを形成し、
前記第2のアキュムレータノード(44)は、前記第2、第3、および第4および第5の接続(43、45、51)の前記レシーバノードと前記第5の接続(52)の前記エミッタノードとを形成し、
前記第1および第2の接続(41、43)は、前記第1および第2のアキュムレータノード(42、44)へ、それぞれ、間に覚えておくべき値を表す時間間隔に関係する第1の時間間隔を有する第1および第2のイベントをアドレス指定するように構成され、それによって、前記第2のアキュムレータノード(44)は、次いで、前記第5の接続(52)上の第4のイベントの送出までその電位値を増加させることによって前記第4の接続(51)上で受信される第3のイベントに応答し、前記第3および第4のイベントは間に前記第1の時間間隔に関係する第2の時間間隔を有する請求項12に記載のデバイス。
【請求項１４】
前記メモリ回路(40)は、前記第1のアキュムレータノード(42)をエミッタノードとして有する第6の接続(46)を備え、前記第6の接続は前記メモリ回路を読み取りに利用可能であることを知らせるイベントを送出する請求項13に記載のデバイス。
【請求項１５】
個数N>1のメモリ回路(401、...、40N-1)と同期ノード(95)とを含む、少なくとも1つの同期回路(90、98)を備え、
前記同期ノード(95)は、前記第1の正の重みをNで割った値に等しい重みを有するそれぞれの電位変動接続(46;960、...、96N-1)を介してN個のメモリ回路(401、...、40N-1)のうちの1つの前記第6の接続上で送出される各イベントを感知し、
前記同期ノード(95)は、前記N個のメモリ回路(401、...、40N-1)の前記それぞれの第4の接続(51)を介して前記第3のイベントの同時受信をトリガするように配置構成される請求項14に記載のデバイス。
【請求項１６】
少なくとも1つの累算回路(180)を備え、
前記累算回路は、
Nを1より大きい整数として、各々がそれぞれの重み付け係数(α0、...、αN-1)を有するN個の入力(1810、...、181N-1)と、
アキュムレータノード(184)と、
同期ノード(185)と、
前記累算回路(180)の前記N個の入力の各々について、
前記入力の前記それぞれの重み付け係数に比例する第1の正の重み(α0wacc、...、αN-1wacc)を有する第1の定電流成分調整接続(1820、...、182N-1)と、
前記第1の正の重みの値と反対の第2の重み(-α0wacc、...、-αN-1wacc)を有する第2の定電流成分調整接続(1830、...、183N-1)と、
第3の正の重み(wacc)を有する第3の定電流成分調整接続(186)とを備え、
前記アキュムレータノード(184)は、前記第1、第2、および第3の接続(1810、...、181N-1、1820、...、182N-1、186)の前記レシーバノードを形成し、
前記同期ノード(185)は、前記第3の接続(186)の前記エミッタノードを形成し、
前記N個の入力の各々について、前記第1および第2の接続(1810、...、181N-1、1820、...、182N-1)は、それぞれ、前記アキュムレータノード(184)へ、間に前記入力上で与えられるそれぞれのオペランドを表す第1の時間間隔を有する第1および第2のイベントをアドレス指定するように構成され、
前記同期ノード(185)は、前記第1および第2のイベントが前記N個の入力の各々についてアドレス指定された後に第3のイベントを送出するように構成され、それによって、前記アキュムレータノード(184)は、第4のイベントの送出までその電位値を増加させ、前記第3および第4のイベントは間に前記N個の入力上で与えられた前記オペランドの加重和を表す時間間隔に関係する第2の時間間隔を有する請求項11に記載のデバイス。
【請求項１７】
前記累算回路(180)は、
第2のアキュムレータノード(188)と、
前記第3の正の重み(wacc)を有する第4の定電流成分調整接続(191)と、
第5および第6の接続(193、192)とをさらに備える重み付き加算回路(190)の一部であり、
前記累算回路の前記同期ノード(185)は、前記第4の接続(191)の前記エミッタノードを形成し、
前記累算回路の前記アキュムレータノード(184)は、前記第5の接続(193)の前記エミッタノードを形成し、
前記第2のアキュムレータノード(188)は、前記第4の接続(191)の前記レシーバノードと前記第6の接続(192)の前記エミッタノードとを形成し、
前記同期ノード(185)による前記第3のイベントの送出に応答して、前記累算回路の前記アキュムレータノード(184)は、前記第5の接続(193)上の第4のイベントの送出までその電位値を増加させ、前記第2のアキュムレータノード(188)は、前記第6の接続(192)上の第5のイベントの送出までその電位値を増加させ、前記第4および第5のイベントは間に前記累算回路(180)の前記N個の入力上で与えられた前記オペランドの加重和を表す時間間隔に関係する第3の時間間隔を有する請求項16に記載のデバイス。
【請求項１８】
一次結合回路(200)内に組み立てられた2つの累算回路(180A、180B)を備え、
前記2つの累算回路(180A、180B)は、同期ノード(184)を共有し、
前記一次結合回路は、前記共有された同期ノード(185)によって送出される前記第3のイベントに反応し、間に前記2つの累算回路のうちの一方に対する前記加重和と前記2つの累算回路のうちの他方に対する前記加重和との差を表す第3の時間間隔を有する一対のイベントを送出することによって前記2つの累算回路(180A、180B)の前記アキュムレータノード(184)によってそれぞれ送出される前記第4のイベントに反応するように構成されている減算器回路(170)をさらに備える請求項16に記載のデバイス。
【請求項１９】
少なくとも1つのノードにおける前記電流値は、それぞれの重みを有する少なくとも1つの指数関数的減少電流成分調整接続上で受信された2つのイベントの間で指数関数的に減少する成分(gf)を有し、
指数関数的減少電流成分調整接続の前記レシーバノードは、前記接続の前記重みをそれの電流値の前記指数関数的減少成分(gf)に加えることによって前記接続上で受信されたイベントに応答するように配置構成される請求項11〜18のいずれか一項に記載のデバイス。
【請求項２０】
少なくとも1つの対数計算回路(210)を備え、
前記対数計算回路は、
アキュムレータノード(216)と、
第1および第2の定電流成分調整接続であって、前記第1の接続(212)は正の重み(
【数１】
0006732880.tif 000178
)を有し、前記第2の接続(214)は前記第1の接続の前記重みの値と反対の重み(
【数２】
0006732880.tif 000179
)を有する、第1および第2の定電流成分調整接続と、
第3の指数関数的減少電流成分調整接続(217)と、
少なくとも1つの第4の接続(222)とを備え、
前記アキュムレータノード(216)は、前記第1、第2、および第3の接続(212、214、217)の前記レシーバノードと前記第4の接続(222)の前記エミッタノードとを形成し、
前記第1および第2の接続(212、214)は、前記アキュムレータノード(216)へ、間に前記対数計算回路(210)の入力値(x)を表す時間間隔(Δt)に関係する第1の時間間隔を有するそれぞれの第1および第2のイベントをアドレス指定するように構成され、
前記第3の接続(217)は、前記アキュムレータノード(216)へ、前記第2のイベントと同時またはその後の第3のイベントをアドレス指定するように構成され、それによって、前記アキュムレータノードは、前記第4の接続(222)上の第4のイベントの送出までその電位値を増加させ、前記第3および第4のイベントは間に前記入力値の対数を表す時間間隔(Δtout)に関係する第2の時間間隔を有する請求項19に記載のデバイス。
【請求項２１】
指数関数的減少電流成分(gf)を考慮する少なくとも1つのノード(238;268)は、前記指数関数的減少成分のデアクティベーションに対するイベントを受信するためのデアクティベーション接続(236;271)の前記レシーバノードである請求項19に記載のデバイス。
【請求項２２】
少なくとも1つの累乗回路(230)を備え、
前記累乗回路は、
アキュムレータノード(238)と、
第1の指数関数的減少電流成分調整接続(232)と、
第2のデアクティベーション接続(236)と、
第3の定電流成分調整接続(237)と、
少なくとも1つの第4の接続(242)とを備え、
前記アキュムレータノード(238)は、前記第1、第2、および第3の接続(232、236、237)の前記レシーバノードと前記第4の接続(242)の前記エミッタノードとを形成し、
前記第1および第2の接続(232、236)は、前記アキュムレータノード(238)へ、間に前記累乗回路(230)の入力値(x)を表す時間間隔(Δt)に関係する第1の時間間隔を有するそれぞれの第1および第2のイベントをアドレス指定するように構成され、
前記第3の接続(237)は、前記アキュムレータノード(238)へ、前記第2のイベントと同時またはその後の第3のイベントをアドレス指定するように構成され、それによって、前記アキュムレータノードは、前記第4の接続(242)上の第4のイベントの送出までその電位値を増加させ、前記第3および第4のイベントは間に前記入力値の累乗を表す時間間隔(Δtout)に関係する第2の時間間隔を有する請求項21に記載のデバイス。
【請求項２３】
少なくとも1つの乗算器回路(250)を備え、
前記乗算器回路は、
第1、第2、および第3のアキュムレータノード(2561、2562、268)と、
同期ノード(260)と、
第1、第2、第3、第4および第5の定電流成分調整接続であって、前記第1、第3、および第5の接続(2521、2522、272)は第1の正の重み(
【数３】
0006732880.tif 000180
)を有し、前記第2および第4の接続(2541、2542)は前記第1の正の重みの値と反対の第2の重み(
【数４】
0006732880.tif 000181
)を有する、第1、第2、第3、第4、および第5の定電流成分調整接続と、
第6、第7、および第8の指数関数的減少電流成分調整接続(262、265、279)と、
第9のデアクティベーション接続(271)と、
少なくとも1つの第10の接続(276)とを備え、
前記第1のアキュムレータノード(2561)は、前記第1、第2、および第6の接続(2521、2541、262)の前記レシーバノードと前記第7の接続(265)の前記エミッタノードとを形成し、
前記第2のアキュムレータノード(2562)は、前記第3、第4、および第7の接続(2522、2542、265)の前記レシーバノードと前記第5および第9の接続(272、271)の前記エミッタノードとを形成し、
前記第3のアキュムレータノード(268)は、前記第5、第8、および第9の接続(272、269、271)の前記レシーバノードと前記第10の接続(276)の前記エミッタノードとを形成し、
前記同期ノード(260)は、前記第6および第8の接続(272、271)の前記エミッタノードを形成し、
前記第1および第2の接続(2521、2541)は、前記第1のアキュムレータノード(2561)へ、間に前記乗算器回路(250)の第1のオペランド(x1)を表す時間間隔(Δt1)に関係する第1の時間間隔を有するそれぞれの第1および第2のイベントをアドレス指定するように構成され、
前記第3および第4の接続(2522、2542)は、前記第2のアキュムレータノード(2562)へ、間に前記乗算器回路(250)の第2のオペランド(x2)を表す時間間隔(Δt2)に関係する第2の時間間隔を有するそれぞれの第3および第4のイベントをアドレス指定するように構成され、
前記同期ノード(260)は、前記第1、第2、第3、および第4のイベントが受信された後に前記第6および第8の接続上で第5のイベントを送出するように構成され、それによって、
前記第1のアキュムレータノード(2561)は、前記第7の接続(265)上の第6のイベントの送出までその電位値を増加させ、
前記第6のイベントに応答して、前記第2のアキュムレータノード(2562)は、前記第5の接続および第9の接続(272、271)上の第7のイベントの送出までその電位値を増加させ、
前記第7のイベントに応答して、前記第3のアキュムレータノード(268)は、前記第10の接続(276)上の第8のイベントの送出までその電位値を増加させ、前記第7および第8のイベントは間に前記第1のオペランド(x1)と前記第2のオペランド(x2)との積を表す時間間隔(Δtout)に関係する第3の時間間隔を有する請求項21に記載のデバイス。
【請求項２４】
前記第1および第2のオペランド(x1、x2)のそれぞれの符号を検出し、前記検出された符号に従って、間に前記第1のオペランドと前記第2のオペランドとの積を表す時間間隔(Δtout)を有する2つのイベントを前記乗算器回路(250)の2つの出力のうちの一方または他方で送出させるために前記乗算器回路(250)に関連付けられている符号検出論理回路(300〜303)をさらに備える請求項23に記載のデバイス。
【請求項２５】
各接続は、遅延パラメータに関連付けられ、前記接続の前記レシーバノードに、前記遅延パラメータによって指示される、前記接続上でイベントを受信することに関して、遅延とともに状態の変化を実行することを知らせる請求項1から24のいずれか一項に記載のデバイス。
【請求項２６】
絶対値xを有する値を表す2つのイベントの間の前記時間間隔Δtは、Δt=Tmin+x.Tcodの形式をとり、ここで、TminおよびTcodは、事前定義された時間パラメータである請求項1から25のいずれか一項に記載のデバイス。
【請求項２７】
時間間隔によって表される前記値は、0から1の間の絶対値xを有する請求項26に記載のデバイス。
【請求項２８】
入力値(x)について、
前記一組の処理ノードのうちから1つのノードまたは2つのノードを含む第1の入力であって、間に前記入力値(x)の正の値を表す時間間隔(Δt)を有する2つのイベントを受信するように配置構成されている、第1の入力と、
前記一組の処理ノードのうちから1つのノードまたは2つのノードを含む第2の入力であって、間に前記入力値(x)の負の値を表す時間間隔(Δt)を有する2つのイベントを受信するように配置構成されている、第2の入力とを備える請求項1から27のいずれか一項に記載のデバイス。
【請求項２９】
出力値(x)について、
前記一組の処理ノードのうちから1つのノードまたは2つのノードを含む第1の出力であって、間に前記出力値(x)の正の値を表す時間間隔(Δt)を有する2つのイベントを送出するように配置構成されている、第1の出力と、
前記一組の処理ノードのうちから1つのノードまたは2つのノードを含む第2の出力であって、間に前記出力値(x)の負の値を表す時間間隔(Δt)を有する2つのイベントを送出するように配置構成されている、第2の出力とを備える請求項1から28のいずれか一項に記載のデバイス。
【請求項３０】
前記一組の処理ノードは、少なくとも1つのプログラム可能なアレイ(400)の形態をとり、前記アレイの前記ノードは受信された前記イベントによる共有挙動モデルを有し、前記デバイスは計算プログラムに従って前記アレイの前記ノードの間の前記接続の重みおよび遅延パラメータを調整するためのプログラミング論理回路(420)と、入力値を前記アレイに供給し、前記プログラムに従って計算された出力値を復元するための制御ユニット(410)とをさらに備える請求項1から29のいずれか一項に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理技術に関係する。実施形態は、機械、特に、プログラム可能な機械で計算を実行する新しい様式を実装するものである。
【背景技術】
【０００２】
大部分、現在のコンピュータは、フォンノイマンアーキテクチャに基づく。データおよびプログラム命令は、データに対してプログラムを実行するために算術論理演算装置によって順次アクセスされるメモリ内に記憶される。この順次アーキテクチャは、比較的不効率である、すなわち、メモリアクセスを何回も必要とするため、読み出しにも書き込みにも不効率である。
【０００３】
エネルギー効率の高い代替的手段を探索して行くうちに、脳の働きを模倣することを試みるクロックレス(clockless)処理アーキテクチャの提案に至った。DARPA SyNAPSEプログラムなどの、最近のプロジェクトは、シリコンベースのニューロモーフィックカード(neuromorphic card)技術の発展をもたらし、これは脳の形状、働き、およびアーキテクチャから発想を得た新しいタイプのコンピュータを製作することを可能にする。これらのクロックレスシステムの主要な利点は、そのエネルギー効率、および性能が使用されるニューロンおよびシナプスの量に比例することである。このような状況で、複数のプラットフォームが開発されており、特に、次のようなものである。
-  IBM TrueNorth(Paul A. Merollaら、「A Million Spiking-Neuron Integrated Circuit with a Scalable Communication Network and Interface」、Science、第345巻、第6197号、668〜673頁、2014年8月)、
-  Neurogrid(Ben V. Benjaminら、「Neurogrid: A Mixed-Analog-Digital Multichip System for Large-Scale Neural Simulations」、Proceedings of the IEEE、第102巻、第5号、699〜716頁、2014年5月)、
-  SpiNNaker(Steve B. Furberら、「The SpiNNaker Project」、Proceedings of the IEEE、第102巻、第5号、652〜665頁、2014年5月)。
【０００４】
これらの機械は、生物学をシミュレートすることを実質的に目的としている。その主要な用途は、学習の分野にあり、すなわち、ニューラルネットワークまたはディープビリーフネットワークなどの深層学習アーキテクチャを実行するための分野である。これらは、コンピュータビジョン、音声認識、および言語処理の分野のような複数の分野において効率的である。
【０００５】
脳のいくつかの機能をシミュレートする、特に、視覚、認知、および運動課題を遂行することができるNEF(「ニューラルエンジニアリングフレームワーク」)などの他のオプションがある(Chris Eliasmithら、「A Large-Scale Model of the Functioning Brain」、Science、第338巻、第6111号、1202〜1205頁、2012年11月)。
【０００６】
これらの様々なアプローチでは、プログラム可能な機械で計算を実行するための一般的方法を提案していない。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Paul A. Merollaら、「A Million Spiking-Neuron Integrated Circuit with a Scalable Communication Network and Interface」、Science、第345巻、第6197号、668〜673頁、2014年8月
【非特許文献２】Ben V. Benjaminら、「Neurogrid: A Mixed-Analog-Digital Multichip System for Large-Scale Neural Simulations」、Proceedings of the IEEE、第102巻、第5号、699〜716頁、2014年5月
【非特許文献３】Steve B. Furberら、「The SpiNNaker Project」、Proceedings of the IEEE、第102巻、第5号、652〜665頁、2014年5月
【非特許文献４】Chris Eliasmithら、「A Large-Scale Model of the Functioning Brain」、Science、第338巻、第6111号、1202〜1205頁、2012年11月
【非特許文献５】John Backus、「Can Programming Be Liberated from the von Neumann Style?: A Functional Style and Its Algebra of Programs」、Communications of the ACM、第21巻、第8号、613〜641頁、1978年8月
【非特許文献６】「Deterministic Nonperiodic Flow」、Journal of the Atmospheric Sciences、第20巻、第2号、130〜141頁、1963年3月
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、データの表現および計算の実行に対する新規性のあるアプローチを提案することである。このアプローチがエネルギー消費量が少なく、超並列処理を行える実装に適していることが望ましい。
【課題を解決するための手段】
【０００９】
一組の処理ノードおよびノード間の接続を含む、データ処理デバイスが提案されている。各接続は、その一組の処理ノードのうちからエミッタノードとレシーバノードとを有し、レシーバノードに、エミッタノードによって送出されるイベントを送信するように構成される。各ノードは、それが受信するイベントに応じてそれぞれの電位値を変化させ、電位値が事前定義された閾値に達したときにイベントを送出するように配置構成される。データ処理デバイスの少なくとも1つの入力値は、少なくとも1つのノードによって受信される2つのイベントの間の時間間隔によって表され、データ処理デバイスの少なくとも1つの出力値は、少なくとも1つのノードによって送出される2つのイベントの間の時間間隔によって表される。
【００１０】
処理ノードは、ニューロンタイプの計算ユニットを形成する。しかしながら、ここでは、脳の働きを模倣することは特には望まれていない。「ニューロン」という用語は、本開示では、言語上の便宜のために使用されているが、大脳皮質のニューロンの動作モードとの著しい類似性を必ずしも意味するわけではない。
【００１１】
処理デバイスにおけるイベントの特定の時間的構成、さらには結合(シナプス)の様々な特性を使用することによって、初等関数を計算するのに適している、計算フレームワーク全体を得ることができる。次いで、すべての既存の数学演算子が、線形または非線形であろうと、フォンノイマンアーキテクチャを必ずしも使用しなくても、実装され得る。その時点以降、デバイスが従来のコンピュータのように、ただし、メモリとの間で絶え間なく往復することを必要とせず、また浮動小数点精度に基づくことなく、機能することが可能である。これは、データの表現に対する基盤を形成する、シナプスのイベント、またはその時間的オフセットの時間的同時性である。
【００１２】
提案されている方法は、メモリと計算を区別しないニューロモーフィックアーキテクチャと一致している。各処理ノードの各接続は、情報を記憶し、同時に、この情報を計算に使用する。これは、メモリと処理とを区別し、フォンノイマンボトルネックを引き起こす、従来のコンピュータにおいて広く使用されている構成とは非常に異なり、計算時間の大部分は、メモリと中央演算処理装置との間の情報の移動にもっぱら費やされる(John Backus、「Can Programming Be Liberated from the von Neumann Style?: A Functional Style and Its Algebra of Programs」、Communications of the ACM、第21巻、第8号、613〜641頁、1978年8月)。
【００１３】
動作は、生体ニューロンのようにイベントによって支配される(「イベントドリブン」)通信に基づき、これにより、超並列処理による実行が可能になる。
【００１４】
デバイスの一実施形態において、各処理ノードは、その電位値を、イベントを送出するときにリセットするように配置構成される。リセットは、特に、ゼロ電位値へのリセットとすることができる。
【００１５】
データを処理するためのデバイスの多数の実施形態は、ノード間の接続のうち、各々がそれぞれの重みを有する1つまたは複数の電位変動接続(potential variation connection)を含む。そのような接続のレシーバノードは、接続の重みを電位値に加えることによってこの接続で受信されたイベントに応答するように配置構成される。
【００１６】
電位変動接続は、正の重みを有する、励起接続(excitation connection)と、負の重みを有する、抑制接続(inhibiting connection)とを含み得る。
【００１７】
デバイス内の値を操作するために、一組の処理ノードは、電位値に対する事前定義された閾値に少なくとも等しい第1の正の重みを有する第1の電位変動接続のレシーバノードを形成する少なくとも1つの第1のノードと、電位値に対する事前定義された閾値の1/2に少なくとも等しく、電位値に対する事前定義された閾値未満である重みを有する第2の電位変動接続のレシーバノードを形成する少なくとも1つの第2のノードとを含む。前述の第1のノードは、第1の重みと反対の値に等しい重みを有する第3の電位変動接続のエミッタノードおよびレシーバノード、さらには第4の接続のエミッタノードをさらに形成し、その一方で、第2のノードは、第5の接続のエミッタノードを形成する。したがって、第1および第2の電位変動接続は、各々入力値を表す第1の時間間隔によって隔てられた2つのイベントを受信するように構成され、それによって、第4および第5の接続は第1の時間間隔に関係する第2の時間間隔を間に有するそれぞれのイベントをトランスポート(transport)する。
【００１８】
本発明によるデバイスを使用して様々な動作が実行され得る。
【００１９】
特に、データを処理するためのデバイスの一例は、少なくとも1つの最小値計算回路を備え、これはそれ自体、
第1および第2の入力ノードと、
出力ノードと、
第1および第2の選択ノードと、
各々電位値に対する事前定義された閾値の1/2に少なくとも等しく、電位値に対する事前定義された閾値未満である第1の正の重みを有する第1、第2、第3、第4、第5、および第6の電位変動接続と、
各々第1の重みの値と反対の第2の重みを有する第7および第8の電位変動接続と、
各々第2の重みの2倍の第3の重みを有する第9および第10の電位変動接続とを備える。
【００２０】
この最小値計算回路において、第1の入力ノードは、第1および第3の接続のエミッタノードと第10の接続のレシーバノードとを形成し、第2の入力ノードは、第2および第4の接続のエミッタノードと第9の接続のレシーバノードとを形成し、第1の選択ノードは、第5、第7、および第9の接続のエミッタノードと第1および第8の接続のレシーバノードとを形成し、第2の選択ノードは、第6、第8、および第10の接続のエミッタノードと第2および第7の接続のレシーバノードとを形成し、出力ノードは、第3、第4、第5、および第6の接続のレシーバノードを形成する。
【００２１】
データを処理するためのデバイスの別の例は、少なくとも1つの最大値計算回路を備え、これはそれ自体、
第1および第2の入力ノードと、
出力ノードと、
第1および第2の選択ノードと、
各々電位値に対する事前定義された閾値の1/2に少なくとも等しく、電位値に対する事前定義された閾値未満である第1の正の重みを有する第1、第2、第3、および第4の電位変動接続と、
各々第1の重みの値と反対の値の2倍に等しい第2の重みを有する第5および第6の電位変動接続とを備える。
【００２２】
この最大値計算回路において、第1の入力ノードは、第1および第3の接続のエミッタノードを形成し、第2の入力ノードは、第2および第4の接続のエミッタノードを形成し、第1の選択ノードは、第5の接続のエミッタノードと第1および第6の接続のレシーバノードとを形成し、第2の選択ノードは、第6の接続のエミッタノードと第2および第5の接続のレシーバノードとを形成し、出力ノードは、第3および第4の接続のレシーバノードを形成する。
【００２３】
データを処理するためのデバイスの別の例は、少なくとも1つの減算器回路を備え、これはそれ自体、
第1および第2の同期ノードと、
第1および第2の抑制ノードと、
第1および第2の出力ノードと、
各々電位値に対する事前定義された閾値に少なくとも等しい第1の正の重みを有する第1、第2、第3、第4、第5、および第6の電位変動接続と、
各々第1の重みの1/2に等しい第2の重みを有する第7および第8の電位変動接続と、
各々第1の重みの値と反対の第3の重みを有する第9および第10の電位変動接続と、
各々第3の重みの2倍の第4の重みを有する第11および第12の電位変動接続とを備える。
【００２４】
この減算器回路において、第1の同期ノードは、第1、第2、第3、および第9の接続のエミッタノードを形成し、第2の同期ノードは、第4、第5、第6、および第10の接続のエミッタノードを形成し、第1の抑制ノードは、第11の接続のエミッタノードと第3、第8、および第10の接続のレシーバノードとを形成し、第2の抑制ノードは、第12の接続のエミッタノードと第6、第7、および第9の接続のレシーバノードとを形成し、第1の出力ノードは、第7の接続のエミッタノードと第1、第5、および第11の接続のレシーバノードとを形成し、第2の出力ノードは、第8の接続のエミッタノードと第2、第4、および第12の接続のレシーバノードとを形成する。第1の同期ノードは、第2の重みを有する少なくとも1つの電位変動接続上で、間に第1のオペランドを表す第1の時間間隔を有する第1の一対のイベントを受信するように構成される。第2の同期ノードは、第2の重みを有する少なくとも1つの電位変動接続上で、間に第2のオペランドを表す第2の時間間隔を有する第2の一対のイベントを受信するように構成され、それによって、間に第3の時間間隔を有する第3の一対のイベントは、第1の時間間隔が第2の時間間隔よりも長い場合には第1の出力ノードによって、第1の時間間隔が第2の時間間隔よりも短い場合には第2の出力ノードによって送出され、第3の時間間隔は第1のオペランドと第2のオペランドとの間の差の絶対値を表している。
【００２５】
減算器回路は、第1および第2の同期ノード、第1および第2の抑制ノードのうちの1つ、ならびに第1および第2の出力ノードのうちの1つとともに検出および抑制接続に関連付けられている少なくとも1つの検出ノードを含むゼロ検出論理回路をさらに備えることができる。検出および抑制接続は、第1および第2の時間間隔が実質的に等しいときに第1および第2の出力ノードのうちの一方によってイベントの発生を抑制するために、第1、第2、第3、第4、第5、第6、第7、第8、第9、第10、第11、および第12の接続よりも高速である。
【００２６】
デバイスの様々な実施形態において、この一組の処理ノードは、少なくとも1つの電流調整接続上で受信されたイベントに従って電流値を変化させ、前記電流値に比例する速度で時間の経過とともにその電位値を変化させるように配置構成されている少なくとも1つのノードを備える。そのような処理ノードは、特に、イベントを送出するときに電流値をゼロにリセットするように配置構成され得る。
【００２７】
これらのノードのうちの少なくともいくつかにおける電流値は、それぞれの重みを有する少なくとも1つの定電流成分調整接続上で受信された2つのイベントの間で一定である成分を有する。定電流成分調整接続のレシーバノードは、接続の重みを電流値の定数成分に加えることによってこの接続上で受信されたイベントに反応するように配置構成される。
【００２８】
データを処理するためのデバイスの別の例は、少なくとも1つのインバータメモリ回路を備え、これはそれ自体、
アキュムレータノードと、
第1、第2、および第3の定電流成分調整接続であって、第1および第3の接続は同じ正の重みを有し、第2の接続は第1および第3の接続の重みの値と反対の重みを有する、第1、第2、および第3の定電流成分調整接続と、
少なくとも1つの第4の接続とを備える。
【００２９】
このインバータメモリ回路において、アキュムレータノードは、第1、第2、および第3の接続のレシーバノードと第4の接続のエミッタノードとを形成し、第1および第2の接続は、それぞれ、アキュムレータノードへ、間に覚えておくべき値を表す時間間隔に関係する第1の時間間隔を有する第1および第2のイベントをアドレス指定するように構成され、それによって、アキュムレータノードは、次いで、第4の接続上の第4のイベントの送出までその電位値を増加させることによって第3の接続上で受信される第3のイベントに応答し、第3および第4のイベントは間に第1の時間間隔に関係する第2の時間間隔を有する。
【００３０】
データを処理するためのデバイスの別の例は、少なくとも1つのメモリ回路を備え、これはそれ自体、
第1および第2のアキュムレータノードと、
第1、第2、第3、および第4の定電流成分調整接続であって、第1、第2、および第4の接続は各々第1の正の重みを有し、第3の接続は第1の重みの値と反対の第2の重みを有する、第1、第2、第3、および第4の定電流成分調整接続と、
少なくとも1つの第5の接続とを備える。
【００３１】
このメモリ回路において、第1のアキュムレータノードは、第1の接続のレシーバノードと第3の接続のエミッタノードとを形成し、第2のアキュムレータノードは、第2、第3、および第4および第5の接続のレシーバノードを形成し、第5の接続のエミッタノード、第1および第2の接続は、それぞれ、第1および第2のアキュムレータノードへ、間に覚えておくべき値を表す時間間隔に関係する第1の時間間隔を有する第1および第2のイベントをアドレス指定するように構成され、それによって、第2のアキュムレータノードは、次いで、第5の接続上の第4のイベントの送出までその電位値を増加させることによって第4の接続上で受信される第3のイベントに応答し、第3および第4のイベントは間に第1の時間間隔に関係する第2の時間間隔を有する。
【００３２】
メモリ回路は、第1のアキュムレータノードをエミッタノードとして有する第6の接続をさらに備え、第6の接続はメモリ回路を読み取りに利用可能であることを知らせるイベントを送出する。
【００３３】
データを処理するためのデバイスの別の例は、今言及したばかりのタイプの、個数N>1のメモリ回路と、同期ノードとを含む、少なくとも1つの同期回路を備える。同期ノードは、第1の重みをNで割った値に等しい重みを有するそれぞれの電位変動接続を介してN個のメモリ回路のうちの1つの第6の接続上で送出される各イベントを感知する。同期ノードは、N個のメモリ回路のそれぞれの第4の接続を介して第3のイベントの同時受信をトリガするように配置構成される。
【００３４】
データを処理するためのデバイスの別の例は、少なくとも1つの累算回路を備え、これはそれ自体、
Nを1より大きい整数として、各々がそれぞれの重み付け係数を有するN個の入力と、
アキュムレータノードと、
同期ノードと、
累算回路のN個の入力の各々について、
前記入力のそれぞれの重み付け係数に比例する第1の正の重みを有する第1の定電流成分調整接続と、
第1の重みの値と反対の第2の重みを有する第2の定電流成分調整接続と、
第3の正の重みを有する第3の定電流成分調整接続とを備える。
【００３５】
この累算回路において、アキュムレータノードは、第1、第2、および第3の接続のレシーバノードを形成し、同期ノードは、第3の接続のエミッタノードを形成する。N個の入力の各々について、第1および第2の接続は、アキュムレータノードへ、間に前記入力上で与えられるそれぞれのオペランドを表す第1の時間間隔を有するそれぞれの第1および第2のイベントをアドレス指定するように構成される。同期ノードは、第1および第2のイベントがN個の入力の各々についてアドレス指定された後に第3のイベントを送出するように構成され、それによって、アキュムレータノードは、第4のイベントの送出までその電位値を増加させる。第3および第4のイベントは、それらの間にN個の入力上で与えられるオペランドの加重和を表す時間間隔に関係する第2の時間間隔を有する。
【００３６】
本発明によりデータを処理するためのデバイスの一例において、累算回路は、加重加算回路の一部であり、これは
第2のアキュムレータノードと、
第3の重みを有する第4の定電流成分調整接続と、
第5および第6の接続とをさらに備える。
【００３７】
この加重加算回路において、累算回路の同期ノードは、第4の接続のエミッタノードを形成し、累算回路のアキュムレータノードは、第5の接続のエミッタノードを形成し、第2のアキュムレータノードは、第4の接続のレシーバノードと第6の接続のエミッタノードとを形成する。同期ノードによる第3のイベントの送出に応答して、累算回路のアキュムレータノードは、第5の接続上の第4のイベントの送出までその電位値を増加させ、第2のアキュムレータノードは、第6の接続上の第5のイベントの送出までその電位値を増加させ、第4および第5のイベントはそれらの間に累算回路のN個の入力上で与えられるオペランドの加重和を表す時間間隔に関係する第3の時間間隔を有する。
【００３８】
データを処理するためのデバイスの別の例は、同期ノードを共有する、2つの累算回路と、共有された同期ノードによって送出される第3のイベントに応答し、間に2つの累算回路のうちの一方に対する加重和と2つの累算回路のうちの他方に対する加重和との差を表す第3の時間間隔を有する一対のイベントを送出することによって2つの累算回路のアキュムレータノードによってそれぞれ送出される第4のイベントに応答するように構成されている減算器回路とを含む少なくとも1つの一次結合回路を備える。
【００３９】
デバイスのいくつかの実施形態において、この一組の処理ノードは、少なくとも1つのノードを含み、その電流値は、それぞれの重みを有する少なくとも1つの指数関数的減少電流成分調整接続(exponentially decreasing current component adjustment connection)上で受信された2つのイベントの間で指数関数的に減少する成分を有する。指数関数的減少電流成分調整接続のレシーバノードは、接続の重みを電流値の指数関数的減少成分に加えることによってこの接続上で受信されたイベントに反応するように配置構成される。
【００４０】
データを処理するためのデバイスの別の例は、少なくとも1つの対数計算回路を備え、これはそれ自体、
アキュムレータノードと、
第1および第2の定電流成分調整接続であって、第1の接続は正の重みを有し、第2の接続は第1の接続の重みの値と反対の重みを有する、第1および第2の定電流成分調整接続と、
第3の指数関数的減少電流成分調整接続と、
少なくとも1つの第4の接続とを備える。
【００４１】
この対数計算回路において、アキュムレータノードは、第1、第2、および第3の接続のレシーバノードと第4の接続のエミッタノードとを形成する。第1および第2の接続は、アキュムレータノードへ、間に対数計算回路の入力値を表す時間間隔に関係する第1の時間間隔を有するそれぞれの第1および第2のイベントをアドレス指定するように構成される。第3の接続は、アキュムレータノードへ、第2のイベントと同時またはその後の第3のイベントをアドレス指定するように構成され、それによって、アキュムレータノードは、第4の接続上の第4のイベントの送出までその電位値を増加させ、第3および第4のイベントは間に入力値の対数を表す時間間隔に関係する第2の時間間隔を有する。
【００４２】
処理デバイスは、少なくとも1つのデアクティベーション接続をさらに備えることができ、そのレシーバノードは、デアクティベーション接続上で受信されたイベントに応答して電流の指数関数的に減少する成分を相殺することができるノードである。
【００４３】
データを処理するためのデバイスの別の例は、少なくとも1つの累乗回路(exponentiation circuit)を備え、これはそれ自体、
アキュムレータノードと、
第1の指数関数的減少電流成分調整接続と、
第2のデアクティベーション接続と、
第3の定電流成分調整接続と、
少なくとも1つの第4の接続とを備える。
【００４４】
この累乗回路において、アキュムレータノードは、第1、第2、および第3の接続のレシーバノードと第4の接続のエミッタノードとを形成する。第1および第2の接続は、アキュムレータノードへ、間に累乗回路の入力値を表す時間間隔に関係する第1の時間間隔を有するそれぞれの第1および第2のイベントをアドレス指定するように構成される。第3の接続は、アキュムレータノードへ、第2のイベントと同時またはその後の第3のイベントをアドレス指定するように構成され、それによって、アキュムレータノードは、第4の接続上の第4のイベントの送出までその電位値を増加させ、第3および第4のイベントは間に入力値の累乗を表す時間間隔に関係する第2の時間間隔を有する。
【００４５】
データを処理するためのデバイスの別の例は、少なくとも1つの乗算器回路を備え、これはそれ自体、
第1、第2、および第3のアキュムレータノードと、
同期ノードと、
第1、第2、第3、第4、および第5の定電流成分調整接続であって、第1、第3、および第5の接続は正の重みを有し、第2および第4の接続は第1、第2、および第5の接続の重みの値と反対の重みを有する、第1、第2、第3、第4、および第5の定電流成分調整接続と、
第6、第7、および第8の指数関数的減少電流成分調整接続と、
第9のデアクティベーション接続と、
少なくとも1つの第10の接続とを備える。
【００４６】
この乗算器回路において、第1のアキュムレータノードは、第1、第2、および第6の接続のレシーバノードと第7の接続のエミッタノードとを形成し、第2のアキュムレータノードは、第3、第4、および第7の接続のレシーバノードと第5および第9の接続のエミッタノードとを形成し、第3のアキュムレータノードは、第5、第8、および第9の接続のレシーバノードと第10の接続のエミッタノードとを形成し、同期ノードは、第6および第8の接続のエミッタノードを形成する。第1および第2の接続は、第1のアキュムレータノードへ、間に乗算器回路の第1のオペランドを表す時間間隔に関係する第1の時間間隔を有するそれぞれの第1および第2のイベントをアドレス指定するように構成される。第3および第4の接続は、第2のアキュムレータノードへ、間に乗算器回路の第2のオペランドを表す時間間隔に関係する第2の時間間隔を有するそれぞれの第3および第4のイベントをアドレス指定するように構成される。同期ノードは、第1、第2、第3、および第4のイベントが受信された後に第6および第8の接続上で第5のイベントを送出するように構成される。したがって、第1のアキュムレータノードは、第7の接続上の第6のイベントの送出までその電位値を増加させ、次いで、第6のイベントに応答して、第2のアキュムレータノードは、第5の接続および第9の接続上の第7のイベントの送出までその電位値を増加させる。この第7のイベントに応答して、第3のアキュムレータノードは、第10の接続上の第8のイベントの送出までその電位値を増加させ、第7および第8のイベントはそれらの間に第1のオペランドと第2のオペランドとの積を表す時間間隔に関係する第3の時間間隔を有する。
【００４７】
符号検出論理回路は、乗算器回路に関連付けられるものとしてよく、第1および第2のオペランドのそれぞれの符号を検出し、検出された符号に従って、間に第1のオペランドと第2のオペランドとの積を表す時間間隔を有する2つのイベントを乗算器回路の2つの出力のうちの一方または他方で送出させる。
【００４８】
処理デバイスの典型的な一実施形態において、各接続は遅延パラメータに関連付けられ、それにより、この接続のレシーバノードに、前記パラメータによって指示される、接続上でイベントを受信することに関して、遅延とともに状態の変化を実行することを知らせる。
【００４９】
絶対値xを有する値を表す2つのイベントの間の時間間隔Δtは、特に、Δt=Tmin+x.Tcodの形式をとることができ、ここで、TminおよびTcodは、事前定義された時間パラメータである。時間間隔によって表される値は、たとえば、0から1の間の絶対値xを有する。
【００５０】
xの関数としてのΔtに対して均等目盛ではなく対数目盛を使用することもいくつかの用途に適していることがある。他の目盛も使用できる。
【００５１】
処理デバイスは、符号付き値を扱うために特別な構成を有するものとしてよい。したがって、これは、入力値について、
一組の処理ノードのうちから1つのノードまたは2つのノードを含む第1の入力であって、間に入力値の正の値を表す時間間隔を有する2つのイベントを受信するように配置構成されている、第1の入力と、
一組の処理ノードのうちから1つのノードまたは2つのノードを含む第2の入力であって、間に入力値の負の値を表す時間間隔を有する2つのイベントを受信するように配置構成されている、第2の入力とを備える。
【００５２】
出力値について、処理デバイスは、
一組の処理ノードのうちから1つのノードまたは2つのノードを含む第1の出力であって、間に前記出力値の正の値を表す時間間隔を有する2つのイベントを送出するように配置構成されている、第1の出力と、
一組の処理ノードのうちから1つのノードまたは2つのノードを含む第2の出力であって、間に前記出力値の負の値を表す時間間隔を有する2つのイベントを送出するように配置構成されている、第2の出力とを備える。
【００５３】
処理デバイスの一実施形態において、一組の処理のノードは、少なくとも1つのプログラム可能なアレイの形態をとり、アレイのノードは受信されたイベントに従う共有挙動モデルを有する。このデバイスは、計算プログラムに従ってアレイのノードの間の接続の重みおよび遅延パラメータを調整するためのプログラミング論理回路と、入力値をアレイに供給し、プログラムに従って計算された出力値を復元するための制御ユニットとをさらに備える。
【００５４】
本発明の他の特徴および利点は、添付図面を参照しつつ次の説明に示される。
【図面の簡単な説明】
【００５５】
【図１】本発明の一実施形態による、オンデマンドで定数値の表現を生成する処理回路の図である。
【図２】本発明の一実施形態によるインバータメモリデバイスの図である。
【図３】図2による時間が経過して生じる電位値の変化およびインバータメモリデバイスにおけるイベントの生成を示す図である。
【図４】本発明の一実施形態によるメモリデバイスの図である。
【図５】図4による時間が経過して生じる電位値の変化およびメモリデバイスにおけるイベントの生成を示す図である。
【図６】本発明の一実施形態による符号付きメモリデバイスの図である。
【図７（ａ）】様々な入力値を与えられたときの図6による時間が経過して生じる電位値の変化および符号付きメモリデバイスにおけるイベントの生成を示す図である。
【図７（ｂ）】様々な入力値を与えられたときの図6による時間が経過して生じる電位値の変化および符号付きメモリデバイスにおけるイベントの生成を示す図である。
【図８】本発明の一実施形態による同期デバイスの図である。
【図９】図8による時間が経過して生じる電位値の変化および同期デバイスにおけるイベントの生成を示す図である。
【図１０】本発明の別の実施形態による同期デバイスの図である。
【図１１】本発明の一実施形態による最小値を計算するためのデバイスの図である。
【図１２】図11による時間が経過して生じる電位値の変化および最小値を計算するためのデバイスにおけるイベントの生成を示す図である。
【図１３】本発明の一実施形態による最大値を計算するためのデバイスの図である。
【図１４】図13による時間が経過して生じる電位値の変化および最大値を計算するためのデバイスにおけるイベントの生成を示す図である。
【図１５】本発明の一実施形態による減算器デバイスの図である。
【図１６】図15による時間が経過して生じる電位値の変化および減算器デバイスにおけるイベントの生成を示す図である。
【図１７】ゼロに等しい差が考慮される減算器デバイスの代替的形態の図である。
【図１８】本発明の一実施形態による累算回路の図である。
【図１９】本発明の一実施形態による加重加算デバイスの図である。
【図２０】本発明の一実施形態による一次結合計算デバイスの図である。
【図２１】本発明の一実施形態による対数計算デバイスの図である。
【図２２】図21による時間が経過して生じる電位値の変化および対数計算デバイスにおけるイベントの生成を示す図である。
【図２３】本発明の一実施形態による累乗デバイスの図である。
【図２４】図23による時間が経過して生じる電位値の変化および累乗デバイスにおけるイベントの生成を示す図である。
【図２５】本発明の一実施形態による乗算器デバイスの図である。
【図２６】図25による時間が経過して生じる電位値の変化および乗算器デバイスにおけるイベントの生成を示す図である。
【図２７】本発明の一実施形態による符号付き乗算器デバイスの図である。
【図２８】本発明の一実施形態による積分器デバイスの図である。
【図２９】本発明の一実施形態の一例における1階微分方程式を解くのに適しているデバイスの図である。
【図３０Ａ】図29のデバイスのシミュレーションの結果を示すグラフである。
【図３０Ｂ】図29のデバイスのシミュレーションの結果を示すグラフである。
【図３１】本発明の一実施形態の一例における2階微分方程式を解くのに適しているデバイスの図である。
【図３２Ａ】図31のデバイスのシミュレーションの結果を示すグラフである。
【図３２Ｂ】図31のデバイスのシミュレーションの結果を示すグラフである。
【図３３】本発明の一実施形態の一例における3変数非線形微分方程式系を解くのに適しているデバイスの図である。
【図３４】図33のデバイスのシミュレーションの結果を示すグラフである。
【図３５】本発明の一実施形態によるプログラム可能処理デバイスの図である。
【発明を実施するための形態】
【００５６】
本明細書で提示されているようなデータ処理デバイスは、電気信号の振幅として、または論理回路によって処理される2進符号化された数としてではなく、間に接続を有する一組の処理ノード内に生じるイベントの間の時間間隔として処理済み値を表すことによって動作する。
【００５７】
本開示の文脈において、人工ニューラルネットワークに類似するアーキテクチャによるデータ処理デバイスの一実施形態が提示される。データ処理デバイスは、必ずしも、人々が「ニューラルネットワーク」と呼ぶものに厳密に対応するアーキテクチャを有していないが、次の説明では、デバイス内の2つのノードまたはニューロンの間の接続を指定するために「シナプス」という用語を使用するのと全く同様に、「ノード」および「ニューロン」という用語を入れ替えて使用することができる。
【００５８】
シナプスは、方向性を有する、すなわち、各接続は、エミッタノードとレシーバノードとを有し、レシーバノードに、エミッタノードによって生成されたイベントを送信する。イベントは、典型的には、エミッタノードによって送出され、レシーバノードに影響を及ぼす、電圧信号または電流信号のスパイクとして現れる。
【００５９】
人工ニューラルネットワークの文脈においては普通のことであるが、各接続またはシナプスは、イベントにおいてエミッタノードがレシーバノードに及ぼす影響の尺度を示す重みパラメータwを有する。
【００６０】
各ノードの挙動の記述は、人工ニューラルネットワークのパラダイムにおける膜電位Vに対応する電位値Vを参照することによって与えられ得る。ノードの電位値Vは、入接続上でノードが受信するイベントに従って時間の経過とともに変化する。この電位値Vが、閾値Vtに達するか、超えたときに、ノードは、下流に配置されているノードに送信されるイベント(「スパイク」)を放出する。
【００６１】
ノードまたはニューロンの挙動を説明するために、本発明の例示的な一実施形態において、成分geおよび適宜、成分gfを有する電流値gをさらに参照することができる。
【００６２】
成分geは、ここでは定電流成分調整接続と呼ばれる特定のシナプス上でノードが受信する2つのイベントの間で一定であるか、または実質的に一定のままである成分である。
【００６３】
成分gfは、ここでは指数関数的減少電流成分調整接続と呼ばれる特定のシナプス上でノードが受信する2つのイベントの間で指数関数的に変化する成分である、すなわち、指数関数的に変化する。
【００６４】
指数関数的減少電流成分gfを考慮するノードは、ここではアクティベーション接続と呼ばれる特定のシナプス上で成分gfのアクティベーションおよびデアクティベーションに対するイベントをさらに受信することができる。
【００６５】
したがって、注目する例では、処理ノードの挙動は、一組の微分方程式
【００６６】
【数１】
0006732880.tif 000002
【００６７】
によって一般的な形で表現されるものとしてよく、
ここで、
tは時間を指定し、
成分geはシナプスイベントによってのみ変化させられ得る一定入力電流を表し、
成分gfは指数関数的に変化する入力電流を表し、
gateは、指数関数的減少電流成分gfの2進アクティベーション(gate=1)またはデアクティベーション(gate=0)信号であり、
τmは電流値の関数g=ge+gate.gfとして電位値Vの直線変化を調節する時定数であり、
τjは成分gfにおける減少の指数関数的変化を調節する時定数である。
【００６８】
方程式系(1)において、膜電位Vの漏れはないか、またはこの漏れの力学はデバイス内で動作している他のすべての力学よりもかなり大きいタイムスケールに基づくことが考えられる。
【００６９】
このモデルでは、ニューロンの挙動に影響を及ぼす次の4種類のシナプスを識別することができ、各シナプスは正または負のシナプス重みwを示す重みパラメータに関連付けられる。
ニューロンの膜電位の値を直接修正する、電位変化接続、またはVシナプス。V←V+w。言い替えれば、レシーバノードは、その電位値Vに、重みパラメータによって指示される重みwを加えることによってVシナプス上で受信されたイベントに応答する。
ニューロンの一定の入力電流を直接修正する、定電流成分調整接続、またはgeシナプス。ge←ge+w。言い替えれば、レシーバノードは、その電流値の一定成分に、重みパラメータによって指示される重みwを加えることによってgeシナプス上で受信されたイベントに応答する。
ニューロンの指数関数的に変化する入力電流を直接修正する、指数関数的減少電流成分調整接続、またはgfシナプス。gf←gf+w。言い替えれば、レシーバノードは、その電流値の指数関数的に減少する成分に、重みパラメータによって指示される重みwを加えることによってgfシナプス上で受信されたイベントに反応する。
正の重みw=1を指示するときにgate←1を設定することによってニューロンをアクティベートし、負の重みw=-1を指示するときにgate←0を設定することによってニューロンをデアクティベートする、アクティベーション接続、またはgateシナプス。
【００７０】
各シナプス接続は、エミッタニューロンとレシーバニューロンとの間の伝搬の遅延を与える遅延パラメータにさらに関連付けられる。
【００７１】
ニューロンは、その電位値Vが閾値Vtに達すると、すなわち
V≧Vt  (2)
のときに、イベントをトリガする。
【００７２】
イベントがトリガされると、ニューロンがエミッタノードを形成する各シナプス上で送出されるスパイクが引き起こされ、その状態変数は次のようにリセットされる。
V←Vreset  (3)
ge←0  (4)
gf←0  (5)
gate←0  (6)
【００７３】
一般性を失うことなく、Vreset=0の場合が考慮され得る。
【００７４】
これ以降、表記Tsynは、標準シナプスに沿った伝搬の遅延を指定し、表記Tneuは、入力シナプスイベントによってトリガされた後にスパイクを発生させるときにニューロンがイベントを送信するのに要する時間を指定する。Tneuは、たとえば、神経シミュレータの時間ステップを表すものとしてよい。
【００７５】
標準重みweは、リセット状態からニューロンをトリガするためにVシナプスに適用されなければならない最小励起重みとして定義され、別の標準重みwiは、反対の効果を有する抑制重みとして定義され、次のとおりに書かれる。
we=Vt  (7)
wi=-we  (8)
【００７６】
デバイスによって処理される値は、イベントの間の時間間隔によって表される。一対のイベントの2つのイベントは、この対によって符号化される値xの関数である時間間隔Δtだけ隔てられ、次のとおりである。
Δt=f(x)  (9)
ただし、fはデバイス内のデータの表現に対して選択された符号化関数である。
【００７７】
この値xを符号化する対の2つのイベントは、同じニューロンnによって、または2つの異なるニューロンによって送出され得る。
【００７８】
同じニューロンnの場合、時間的に連続してイベントen(i)、i=0、1、2、などを送出すると、このニューロンnは、時間変化信号u(t)を符号化すると考えることができ、その離散値は、
【００７９】
【数２】
0006732880.tif 000003
【００８０】
によって与えられ、
ここで、f-1は選択された符号化関数の逆関数であり、iは偶数である。
【００８１】
符号化関数
【００８２】
【数３】
0006732880.tif 000004
【００８３】
は、特定のシステムにおいて処理される信号を考慮しつつ選択され、必要な精度に適合され得る。関数fは、特定の値に関連付けられているスパイクの間の間隔を計算する関数である。本発明の説明の残り部分において、線形符号化関数を使用する処理デバイスの実施形態は
Δt=f(x)=Tmin+x.Tcod  (11)
x∈[0, 1]
で表される。
【００８４】
関数のこの表現f:[0, 1]→[Tmin,Tmax]は、TminとTmax=Tmin+Tcodとの間の時間間隔によって0と1の間の任意の値xを線形符号化することを可能にする。Tminの値は、ゼロであってよい。しかしながら、これが非ゼロであることは有利である。実際、値を表す2つのイベントが同じニューロンに由来するか、または同じニューロンによって受信された場合、最小間隔Tmin>0は、このニューロンにリセットまでの時間を与える。さらに、Tmin>0の選択は、ニューロンの特定の配置構成が第2のイベントを受信する前に第1の入力イベントに応答し、状態の変化を伝搬させることを可能にする。
【００８５】
符号化関数fに対する形式(11)は、可能なただ1つのものではない。別の好適な選択は、対数関数をとるもので、これはこの場合に大きい値に対して精度が低い、いくつかの用途に適している力学で広範な値が符号化されることを可能にする。
【００８６】
符号付き値を表すために、2つの異なる経路、各符号につき1つの経路が使用され得る。そこで、正の値は、特定のニューロンを使用して符号化され、負の値は、別のニューロンを使用して符号化される。任意に、ゼロは、正の値または負の値として表され得る。これ以降、ゼロは正の値として表される。
【００８７】
したがって、形式(11)の例を引き続き使用すると、値xが範囲[-1,+1]内の値を有する場合、これはx≧0の場合に正の値に関連付けられている経路上およびx<0の場合に負の値に関連付けられている経路上で伝搬される2つのイベントの間の時間間隔Δt=Tmin+|x|.Tcodによって表される。
【００８８】
符号化関数に対する(9)または(11)の選択で、geシナプスに対する2つの標準重みの定義が生じる。重みwaccは、時間Tmax=Tmin+Tcodの後に、そのリセット状態から、ニューロンをトリガするのに必要なgeの値であるものとして定義される、すなわち、(1)を考慮して
【００８９】
【数４】
0006732880.tif 000005
【００９０】
となる。
【００９１】
さらに、重み
【００９２】
【数５】
0006732880.tif 000006
【００９３】
は、時間Tcodの後に、そのリセット状態から、ニューロンをトリガするのに必要なgeの値であるものとして定義される、すなわち、
【００９４】
【数６】
0006732880.tif 000007
【００９５】
となる。
【００９６】
geシナプスについては、別の標準重みgmultは
【００９７】
【数７】
0006732880.tif 000008
【００９８】
として与えられるものとしてよい。
【００９９】
デバイスのノードの間の接続は、それぞれの遅延パラメータに各々さらに関連付けられ得る。このパラメータは、接続上のイベントの放出に関して、接続のレシーバノードが状態の変化を引き起こす際の遅延を指示する。シナプスに関連付けられているこれらの遅延パラメータによる遅延値の指示は、処理デバイス内の動作の適切な順序付けを確実にすることを可能にする。
【０１００】
式(1)〜(6)に記述されているような挙動をするように、処理ノードおよび相互接続を実装するために、様々な技術、すなわち、人工ニューラルネットワークのよく知られている分野において通常使用されている技術が使用され得る。各ノードは、たとえば、電圧レベルを保持し、変化させるための抵抗および容量素子、ならびに電圧レベルが閾値Vtを超えたときにイベントを送出するためのトランジスタ素子を伴う、アナログ技術を使用して作製され得る。
【０１０１】
別の可能性として、たとえば、人工ニューロンを実装するための都合のよい手段を実現する、フィールドプログラマブルゲートアレイ(FPGA)に基づくデジタル技術を使用する方法もある。
【０１０２】
以下では、相互接続された処理ノードを使用して形成されるデータを処理するためのいくつかのデバイスまたは回路が提示されている。図1、図2、図4、図6、図8、図10、図11、図13、図15、図17、図18、図19、図20、図21、図23、図25、図27、図28、図29、図31、および図33において、
実線で図示されているノード間の接続は、Vシナプスである。
破線で図示されている接続は、geシナプスである。
一点鎖線で図示されている接続は、gfシナプスである。
点線で図示されている接続は、gateシナプスである。
接続は、レシーバノードの横にあるシンボルで向き付けられる。このシンボルは、励起接続、すなわち、正の重みを有する接続に対しては開いた正方形、抑制接続、すなわち、負の重みを有する接続に対しては閉じた正方形である。
接続の隣りのパラメータの対(w;T)は、重みwおよび接続に関連付けられている遅延Tを示す。ときには、重みwだけが示される。
【０１０３】
これらの図面に示されているノードまたはニューロンのうちのいくつかは、回路内のその配置構成の結果、関数を呼び出すことを示すような名前を付けられ、入力ニューロンに対しては「input」、正の値の入力に対しては「input+」、負の値の入力に対しては「input-」、出力ニューロンに対しては「output」、正の値の出力に対しては「output+」、負の値の出力に対しては「output-」、値を復元するために使用されるニューロンに対しては「recall」、アキュムレータニューロンに対しては「acc」、値の結果の利用可能性を示すニューロンに対しては「ready」などとなる。
【０１０４】
図1は、定数値xの表現をオンデマンドで生成するために使用され得る非常に単純な回路10を示している。we以上の重み(図示されている例では、重みはweに等しくなるように取られる)を有する2つのVシナプス11、12は、各々、エミッタノードとしてrecallニューロン15を、レシーバノードとしてoutputニューロン16を有する。シナプス11は、遅延パラメータTsynを使用するように構成されるが、シナプス12は、遅延パラメータTsyn+f(x)を使用するように構成される。
【０１０５】
recallニューロン15のアクティベーションは、時刻TsynおよびTsyn+f(x)でoutputニューロン16をトリガし、そこで、回路10は、定数xを表す値f(x)によって時間に関して隔てられている2つのイベントを送出する。
【０１０６】
A.メモリ
A.1.反転メモリ
図2は、反転メモリを形成する処理回路18を示している。
【０１０７】
このデバイス18は、accニューロン30における動的範囲geにわたる電流の積分を使用して、区間Δtin=f(x)とともにinputニューロン21で与えられた一対の入力スパイクによって符号化されたアナログ値xを記憶する。値xは、accニューロン30の膜電位に記憶され、recallニューロン31のアクティベーション時に読み出され、それにより、outputニューロン33における値1-xに対応する時間間隔Δtout、すなわち、Δtout=f(1-x)だけ隔てられた一対のイベントが送出される。
【０１０８】
inputニューロン21は、accニューロン30に向けられるgeシナプス26、27上でf(x)-Tmin=x.Tcodだけ隔てられている2つのイベントを発生させるために使用されるノード20のグループに属す。このグループは、「first」ニューロン23および「last」ニューロン25を備える。遅延Tsynを有する2つの励起Vシナプス22、24は、inputニューロン21からfirstニューロン23およびlastニューロン25にそれぞれ進む。Vシナプス22は重みweを有し、Vシナプス24はwe/2に等しい重みを有する。firstニューロン23は、重みwiおよび遅延Tsynを有するVシナプス28を介して自己抑制する。
【０１０９】
励起geシナプス26は、firstニューロン23からaccニューロン30へ進み、重みwaccおよびTsyn+Tminの遅延を有する。抑制geシナプス27は、lastニューロン25からaccニューロン30へ進み、重み-waccおよび遅延Tsynを有する。励起Vシナプス32は、recallニューロン31からoutputニューロン33へ進み、重みweおよび2Tsyn+Tneuの遅延を有する。励起Vシナプス34は、recallニューロン31からaccニューロン30へ進み、重みwaccおよび遅延Tsynを有する。最後に、励起Vシナプス35は、accニューロン30からoutputニューロン33へ進み、重みweおよび遅延Tsynを有する。
【０１１０】
反転メモリデバイス18の動作は、図3に例示されている。
【０１１１】
inputニューロン21で時刻
【０１１２】
【数８】
0006732880.tif 000009
【０１１３】
に第1のイベント(スパイク)を放出すると、時刻Tsyn+Tneuの後に、すなわち、図3において時刻
【０１１４】
【数９】
0006732880.tif 000010
【０１１５】
にfirstニューロン23の出力でイベントがトリガされ、lastニューロン25の電位値がVt/2に上げられる。次いで、firstニューロン23は、値-Vtをその膜電位に与えることによってシナプス28を介して自己抑制し、geシナプス26を介して、Tsyn+Tminの後に、すなわち、時刻
【０１１６】
【数１０】
0006732880.tif 000011
【０１１７】
にaccニューロン30により累算を開始する。
【０１１８】
inputニューロン21で時刻
【０１１９】
【数１１】
0006732880.tif 000012
【０１２０】
に第2のスパイクを放出すると、lastニューロン25は閾値電位Vtに達する。次いで、抑制geシナプス27上で時刻
【０１２１】
【数１２】
0006732880.tif 000013
【０１２２】
にイベントが生成される。第2のスパイクは、シナプス22を介してfirstニューロン23の電位をゼロにリセットすることもトリガする。第2のスパイクに応答してgeシナプス27によってトランスポートされるイベントは、時刻
【０１２３】
【数１３】
0006732880.tif 000014
【０１２４】
にaccニューロン30によって実行された累算を停止する。
【０１２５】
この段階で、電位値
【０１２６】
【数１４】
0006732880.tif 000015
【０１２７】
は、値xを覚えておくためaccニューロン30に記憶される。次いで、その補数1-xが、recallニューロン31をアクティベートすることによって読み出されるものとしてよく、これは図3では時刻
【０１２８】
【数１５】
0006732880.tif 000016
【０１２９】
に行われる。このアクティベーションは、時刻
【０１３０】
【数１６】
0006732880.tif 000017
【０１３１】
にaccニューロン30における累算のプロセスを再開し、outputニューロン33上で時刻
【０１３２】
【数１７】
0006732880.tif 000018
【０１３３】
にイベントをトリガする。累算は、電位値が閾値Vtに達する時刻
【０１３４】
【数１８】
0006732880.tif 000019
【０１３５】
までaccニューロン30内で継続する、すなわち、
【０１３６】
【数１９】
0006732880.tif 000020
【０１３７】
である。イベントは、時刻
【０１３８】
【数２０】
0006732880.tif 000021
【０１３９】
にVシナプス35上で放出され、時刻
【０１４０】
【数２１】
0006732880.tif 000022
【０１４１】
にoutputニューロン33上で別のイベントをトリガする。
【０１４２】
最後に、outputニューロン33によって送出される2つのイベントは、時間間隔
【０１４３】
【数２２】
0006732880.tif 000023
【０１４４】
で隔てられる。
【０１４５】
値xは、2つの入力スパイクを受信した後にaccニューロン30に記憶され、recallニューロン31をアクティベートすることによって読み出しに即座に利用可能であることに留意されたい。
【０１４６】
標準重みweは、リセット状態からニューロンをトリガするためにVシナプスに適用されなければならない最小励起重みとして定義されたので、図2の処理回路18は、次のようにしていくつかの重みが選択される場合に同様の機能を示すことに留意されたい。Vシナプス22は、we以上の重みwを有し、Vシナプス24は、少なくともwe/2に等しく、Vtよりも小さい重みを有し、firstニューロン23は、重み-wを有するrecall Vシナプス28を介して自己抑制し、励起Vシナプス32は、we以上の重みを有し、励起Vシナプス35は、we以上の重みを有する、この観察結果は、次の処理回路に及ぶ。
【０１４７】
A.2.メモリ
図4は、メモリを形成する処理回路40を示している。
【０１４８】
このデバイス40は、一対のイベントが時間間隔Δtout=f(x)で隔てられている、非反転出力を形成するために、2つのカスケードaccニューロン42、44における動的範囲ge上の電流の積分を使用して、区間Δtin=f(x)とともにinputニューロン21で与えられた一対の入力スパイクによって符号化されたアナログ値xを覚えておく。
【０１４９】
メモリ回路40は、記憶されるべき値を受信するためのinputニューロン21、recallニューロン48によって形成される読み出しコマンド入力、recallニューロン48に読み出しコマンドを提示できる時刻を指示するreadyニューロン47、および記憶されている値を返すためのoutputニューロン50を有する。このメモリ回路のすべてのシナプスは、遅延Tsynを有する。
【０１５０】
inputニューロン21は、図2を参照しつつ説明されているものに類似するノード20のグループに属しており、firstニューロン23およびlastニューロン25はinputニューロン21によってf(x)=Tmin+x.Tcodの間隔で生成される2つのイベントを隔てる。
【０１５１】
geシナプス41は、firstニューロン23から第1のaccニューロン42へ進み、重みwaccを有する。そこで、accニューロン42は時刻
【０１５２】
【数２３】
0006732880.tif 000024
【０１５３】
に累算を開始する(図5)。geシナプス43は、lastニューロン25から第2のaccニューロン44へ進み、重みwaccを有する。そこで、accニューロン44は時刻
【０１５４】
【数２４】
0006732880.tif 000025
【０１５５】
に累算を開始する。accニューロン42の出力で、重みwaccを有する別のgeシナプス45は、accニューロン44に進み、重みweを有するVシナプス46は、readyニューロン47に進む。
【０１５６】
accニューロン42における累算は、accニューロン42の電位が閾値Vtに達する時刻
【０１５７】
【数２５】
0006732880.tif 000026
【０１５８】
まで継続し、geシナプス45上で時刻
【０１５９】
【数２６】
0006732880.tif 000027
【０１６０】
にスパイクの放出をトリガする(図5)。このスパイクは、時刻
【０１６１】
【数２７】
0006732880.tif 000028
【０１６２】
にaccニューロン44における累算を停止する。accニューロン42のトリガは、また、時刻
【０１６３】
【数２８】
0006732880.tif 000029
【０１６４】
にreadyニューロン47上でイベントをトリガする。
【０１６５】
この段階で、accニューロン44に記憶されている電位値は
【０１６６】
【数２９】
0006732880.tif 000030
【０１６７】
であり、これにより値xを覚えておくことができる。読み出しは、recallニューロン48をアクティベートすることによって行われるものとしてよく、これは図5では時刻
【０１６８】
【数３０】
0006732880.tif 000031
【０１６９】
に行われる。
【０１７０】
recallニューロン48のアクティベーションは、Vシナプス49を介してoutputニューロン50上で時刻
【０１７１】
【数３１】
0006732880.tif 000032
【０１７２】
にイベントをトリガし、時刻
【０１７３】
【数３２】
0006732880.tif 000033
【０１７４】
にgeシナプス51を介してaccニューロン44における累算のプロセスを再開する。累算は、電位値が閾値Vtに達する時刻
【０１７５】
【数３３】
0006732880.tif 000034
【０１７６】
までaccニューロン44内で継続する、すなわち、
【０１７７】
【数３４】
0006732880.tif 000035
【０１７８】
である。イベントは、時刻
【０１７９】
【数３５】
0006732880.tif 000036
【０１８０】
にVシナプス52上で放出され、時刻
【０１８１】
【数３６】
0006732880.tif 000037
【０１８２】
にoutputニューロン50上で別のイベントをトリガする。
【０１８３】
最後に、outputニューロン50によって送出される2つのイベントは、時間間隔
【０１８４】
【数３７】
0006732880.tif 000038
【０１８５】
で隔てられる。
【０１８６】
図4のaccニューロン42は、いくつかのシナプス上でTsyn+Tmaxの遅延を構成することによって排除することも可能でことに留意されたい。これは、ニューロンの数を減らすことについて興味深いものであり得るが、隣接するニューロンの間の遅延が延長することで特定の集積回路(ASIC)を使用するインストレーションにおいて問題を引き起こす可能性がある。
【０１８７】
また、メモリ回路40は、上記の形式(11)に制限されることなく、TminとTmaxとの間の時間間隔により値xの符号化に対して機能することに留意されたい。
【０１８８】
A.3.符号付きメモリ
図6は、-1と+1との間の、符号付き値に対するメモリを形成する処理回路60を示している。その絶対値は、x≧0の場合に、input+ニューロン61によって与えられ、次いでoutput+ニューロン81によって返され、x<0の場合に、input-ニューロン62によって与えられ、output-ニューロン82によって返される2つのイベントの間の間隔Δtin=f(|x|)によって符号化される。このメモリ回路のすべてのシナプスは、遅延Tsynを有する。
【０１８９】
符号付きメモリ回路60は、図4A〜図4Bに示されているタイプのメモリ回路40に基づく。input+ニューロン61およびinput-ニューロン62は、それぞれ、重みweを有する励起Vシナプス63、64によって回路40のinputニューロン21に接続される。したがって、|x|を表す2つのスパイクを受信するニューロン61、62のうちの一方は、回路40のinputニューロン21を2回アクティベートし、それにより、時間間隔f(|x|)が回路40のoutputニューロン50上で返される。
【０１９０】
さらに、ニューロン61、62は、それぞれ、we/4の重みを有する励起Vシナプス67、68によってready+ニューロン65およびready-ニューロン66に接続される。符号付きメモリ回路は、重みwe/2を有するそれぞれの励起Vシナプス71、72によってready+ニューロン65およびready-ニューロン66に接続されたrecallニューロン70を有する。ready+ニューロン65およびready-ニューロン66の各々は、重みweを有するそれぞれの励起Vシナプス73、74によって回路40のrecallニューロン48に接続される。wi/2の重みを有する抑制Vシナプス75は、ready+ニューロン65からready-ニューロン66に進み、逆に、wi/2の重みを有する抑制Vシナプス76は、ready-ニューロン66からready+ニューロン65に進む。ready+ニューロン65は、2wiの重みを有する抑制Vシナプス77によって符号付きメモリ回路のoutput-ニューロン82に接続される。ready-ニューロン66は、2wiの重みを有する抑制Vシナプス78によって符号付きメモリ回路のoutput+ニューロン81に接続される。
【０１９１】
回路40のoutputニューロン50は、重みweを有するそれぞれの励起Vシナプス79、80によってoutput+ニューロン81およびoutput-ニューロン82に接続されている。
【０１９２】
符号付きメモリ回路60の出力は、メモリ回路40のreadyニューロン47から来る重みweを有する励起Vシナプス85のレシーバノードであるreadyニューロン84を備える。
【０１９３】
図7は、(a)正の入力の場合および(b)負の入力の場合の符号付きメモリ回路60のニューロンの挙動を示している。
【０１９４】
ニューロン61、62のうちの一方における時刻
【０１９５】
【数３８】
0006732880.tif 000039
【０１９６】
および
【０１９７】
【数３９】
0006732880.tif 000040
【０１９８】
での2つのイベントの出現は、ready+ニューロン65またはready-ニューロン66の電位を2ステップで値Vt/2に上げる。並行して、上で説明されているように、メモリ回路40のaccニューロン44は、値
【０１９９】
【数４０】
0006732880.tif 000041
【０２００】
に帯電され、そのreadyニューロン47は、時刻
【０２０１】
【数４１】
0006732880.tif 000042
【０２０２】
にイベントを生成する。
【０２０３】
readyニューロン47がイベントを生成した後、readyニューロン70は、符号付きデータを読み取るようにアクティベートされてよく、これは図7では時刻
【０２０４】
【数４２】
0006732880.tif 000043
【０２０５】
において行われる。
【０２０６】
recallニューロン70のアクティベーションは、Vシナプス70または71を介してready+ニューロン65またはready-ニューロン66をトリガし、このトリガは、Vシナプス75または76を介して他のready-ニューロン65またはready+ニューロン66をゼロにリセットする。ready+ニューロン65またはready-ニューロン66によって送出されるイベントは、電位を-2VtにすることによってVシナプス77または78を介してoutput-ニューロン82またはoutput+ニューロン81を抑制する。
【０２０７】
時刻
【０２０８】
【数４３】
0006732880.tif 000044
【０２０９】
にready+ニューロン65またはready-ニューロン66によって送出されるイベントは、Vシナプス73または74を介して提供される。これは、回路40のoutputニューロン50によってf(|x|)に等しい時間間隔によって隔てられた一対のスパイクの放出をトリガする。Vシナプス79、80を介してoutput+ニューロン81およびoutput-ニューロン82に伝達されるこの一対のスパイクは、時刻
【０２１０】
【数４４】
0006732880.tif 000045
【０２１１】
および
【０２１２】
【数４５】
0006732880.tif 000046
【０２１３】
に、入力されたデータxの符号に対応するoutput+ニューロン81およびoutput-ニューロン82のうちの一方を2回トリガし、他方のニューロン81、82の電位値をゼロにリセットする。
【０２１４】
図6に示されている符号付きメモリ回路60は、次のことが可能であるので、ニューロンの数に関して最適化されないことに留意されたい。
メモリ回路40のinputニューロン21を排除することを、Vシナプス63および64を図4に示されている回路40のfirstニューロン23に直接送信することによって(Vシナプス22の代わりに)、およびwe/2の重みを有する励起Vシナプスをinput+ニューロン61およびinput-ニューロン62からlastニューロン25に加えることによって(Vシナプス24の代わりに)行う。
メモリ回路40のoutputニューロン50を排除することを、geシナプス52を直接、output+ニューロン81およびoutput-ニューロン82に送信することによって(Vシナプス79、80の代わりに)行う。
メモリ回路40のrecallニューロン48を排除することを、Vシナプス73および74をoutput+ニューロン81およびoutput-ニューロン82に直接送信することによって(Vシナプス49の代わりに)、および重みwaccを有する励起geシナプスをready+ニューロン65およびready-ニューロン66から回路40のaccニューロン44に加えることによって(geシナプス51の代わりに)、行う。
【０２１５】
A.4.シンクロナイザ
図8は、個数Nの入力上で受信された信号を同期させるために使用される処理回路90を示している(N≧2)。この同期回路のすべてのシナプスは、遅延Tsynを有する。
【０２１６】
各信号は、k=0、1、...、N-1について値xkを符号化し、時刻
【０２１７】
【数４６】
0006732880.tif 000047
【０２１８】
および
【０２１９】
【数４７】
0006732880.tif 000048
【０２２０】
に生じる一対のスパイクの形態をとり、Δtk=f(xk)∈[Tmin,Tmax]である。これらの信号は、同期化方式で回路90の出力のところに返される、すなわち、N=2の場合について図9に示されているように、値xkを符号化する各信号は時刻
【０２２１】
【数４８】
0006732880.tif 000049
【０２２２】
および
【０２２３】
【数４９】
0006732880.tif 000050
【０２２４】
に生じる、
【０２２５】
【数５０】
0006732880.tif 000051
【０２２６】
である、一対のスパイクの形態をとって出力のところに現れる。
【０２２７】
図8に示されている回路90は、N個のニューロン入力910、...、91N-1、およびN個のニューロン出力920、...、92N-1を備える。各inputニューロン91kは、重みweを有するVシナプス93kのエミッタノードであり、そのレシーバノードは、それぞれのメモリ回路40kのinputニューロン21kである。各メモリ回路40kのoutputニューロン50kは、重みweを有するVシナプス94kのエミッタノードであり、そのレシーバノードは、同期回路90のoutputニューロン92kである。
【０２２８】
同期回路90は、we/Nの重みを有するN個の励起Vシナプス960、...、96N-1のレシーバノードであるsyncニューロン95を備え、そのエミッタノードは、それぞれ、メモリ回路400、...、40N-1のreadyニューロン470、...、47N-1である。回路90は、重みweを有する励起Vシナプス970、...、97N-1、エミッタノードとしてのsyncニューロン95、およびそれぞれ、レシーバノードとしてのメモリ回路400、...、40N-1のrecallニューロン480、...、48N-1も備える。
【０２２９】
syncニューロン95は、N個の入力信号がメモリ回路400、...、40N-1内にロードされるときに、すなわち、図9の時刻
【０２３０】
【数５１】
0006732880.tif 000052
【０２３１】
、
【０２３２】
【数５２】
0006732880.tif 000053
【０２３３】
にreadyニューロン470、...、47N-1によって生成されるイベントを受信する。これらのN個のイベントの最後が受信されたときに、syncニューロン95は、イベントをTsynだけ後に、すなわち、図9の時刻
【０２３４】
【数５３】
0006732880.tif 000054
【０２３５】
に送出する。これは、メモリ回路400、...、40N-1のシナプス970、...97N-1およびシナプス49を介して、各outputニューロン920、...、92N-1上で第1の同期スパイク(
【０２３６】
【数５４】
0006732880.tif 000055
【０２３７】
)の放出をトリガする。次いで、各メモリ回路40kは、時刻
【０２３８】
【数５５】
0006732880.tif 000056
【０２３９】
にその第2のそれぞれのスパイクを生成する。
【０２４０】
図8を参照して同期回路を提示することで、説明がわかりやすくなっているが、いくつかのニューロンを排除することによって複数の簡素化が可能であることに留意されたい。たとえば、inputニューロン910、...、91N-1およびoutputニューロン920、...、92N-1は、オプションであるが、それは、入力はメモリ回路400、...、40N-1のinputニューロン210、...、21N-1によって直接与えられ、出力はメモリ回路400、...、40N-1のoutputニューロン500、...、50N-1によって直接与えられ得るからである。メモリ回路400、...、40N-1のVシナプス46は、readyニューロン470、...、47N-1を通過することなく、syncニューロン95に直接進むことができる。シナプス970、...、97N-1は、メモリ回路のoutputニューロン500、...、50N-1に直接供給されるものとしてよく(したがって、そのシナプス49を置き換える)、syncニューロン95は、accニューロン44における累算の再開を制御するためにメモリ回路400、...、40N-1のgeシナプス51のエミッタノードも形成する(図4および図5)。
【０２４１】
単一のイベントのみを、時刻
【０２４２】
【数５６】
0006732880.tif 000057
【０２４３】
に、同期出力信号を形成するすべての対の第1のイベントとして出力することも可能である。したがって、syncニューロン95は、回路の特定の出力(outputニューロン920、...、92N-1のうちの1つまたは特定のニューロンであってよい)上で第1のスパイクの放出を直接制御し、次いで、geシナプスを介してメモリ回路400、...、40N-1のaccニューロン44を再アクティベートすることによって各対の第2のスパイクの放出を直接制御する。言い替えれば、syncニューロン95は、様々なメモリ回路のrecallニューロン48として働く。
【０２４４】
そのようなシンクロナイザ回路98は、図10によりN=2の場合について例示されており、ここでもまた、すべてのシナプスは遅延Tsynを有する。syncニューロン95は、2つのメモリ回路のaccニューロン42から直接来るwe/2の重みを有する2つのVシナプス46によって励起され、これは、accニューロン44における累算を再開するためのgeシナプス51のエミッタノードである。この例では、「output ref」と表記されている特定のニューロン99は、Vシナプス97を介してsyncニューロン95から受信された励起に応答して、時刻
【０２４５】
【数５７】
0006732880.tif 000058
【０２４６】
に2つの出力対の各々の第1のイベントを送出する。このoutput refニューロン99の役割は、代替的に、2つのoutputニューロン920、921のうちの一方によって果たされ得る。
【０２４７】
図10の例では、回路98の出力値の値を符号化した2つのイベントは、2つの異なるニューロン(たとえば、値x1に対してニューロン99および921)によって生成されることに留意されたい。
【０２４８】
より一般的には、本発明の文脈において、値を表す1つの対の2つのイベントが単一のノードに由来する(出力値の場合に)か、または単一のノードによって受信される(入力値の場合に)必要はない。
【０２４９】
B.論理演算
B.1.最小値
図11は、2つの入力ノード101、102上で同期方式で受信された2つの値の間の最小値を計算し、この最小値を出力ノード103上で送出する処理回路100を示している。
【０２５０】
inputニューロン101、102およびoutputニューロン103に加えて、この回路100は、2つの「smaller」ニューロン104、105を備える。励起Vシナプス106は、we/2の重みを有し、inputニューロン101からsmallerニューロン104に進む。励起Vシナプス107は、we/2の重みを有し、inputニューロン102からsmallerニューロン105に進む。励起Vシナプス108は、we/2の重みを有し、inputニューロン101からoutputニューロン103に進む。励起Vシナプス109は、we/2の重みを有し、inputニューロン102からoutputニューロン103に進む。励起Vシナプス110は、we/2の重みを有し、smallerニューロン104からoutputニューロン103に進む。励起Vシナプス111は、we/2の重みを有し、smallerニューロン105からoutputニューロン103に進む。抑制Vシナプス112は、wi/2の重みを有し、smallerニューロン104からsmallerニューロン105に進む。抑制Vシナプス113は、wi/2の重みを有し、smallerニューロン105からsmallerニューロン104に進む。抑制Vシナプス114は、重みwiを有し、smallerニューロン104からinputニューロン102に進む。抑制Vシナプス115は、重みwiを有し、smallerニューロン105からinputニューロン101に進む。図11に示されているすべてのシナプス106〜115は、遅延が2.Tsyn+Tneuであるシナプス108、109を除き、遅延Tsynに関連付けられている。
【０２５１】
時刻
【０２５２】
【数５８】
0006732880.tif 000059
【０２５３】
の各inputニューロン101、102上での第1のスパイクの放出は(図12)、smallerニューロン104、105の各々を時刻
【０２５４】
【数５９】
0006732880.tif 000060
【０２５５】
に電位値Vt/2に設定し、時刻
【０２５６】
【数６０】
0006732880.tif 000061
【０２５７】
にoutputニューロン103上で第1のイベントをトリガする。図12の例における時刻
【０２５８】
【数６１】
0006732880.tif 000062
【０２５９】
の最小値を有するinputニューロン、すなわち、ニューロン101上での第2のスパイクの放出は、smallerニューロンのうちの1つ、すなわち、この例におけるニューロン104を閾値電圧Vtに設定し、それにより、このニューロン104の出力のところで時刻
【０２６０】
【数６２】
0006732880.tif 000063
【０２６１】
にイベントが引き起こされる。したがって、シナプス114は、他のinputニューロン102を抑制し、時刻
【０２６２】
【数６３】
0006732880.tif 000064
【０２６３】
に第2のスパイクを発生せず、シナプス112は、他のsmallerニューロン105を抑制し、その電位はゼロにリセットされる。smallerニューロン104のトリガは、時刻
【０２６４】
【数６４】
0006732880.tif 000065
【０２６５】
にoutputニューロン103の第2のトリガをさらに引き起こす。
【０２６６】
最後に、outputニューロン103は、それが送出するイベントの間で、inputニューロン101、102によって生成される2つの対のイベントの間の最小時間間隔
【０２６７】
【数６５】
0006732880.tif 000066
【０２６８】
を再現する。この最小値は、入力においてそれを表す対の第2のイベントの受信後に回路100の出力のところで利用可能である。
【０２６９】
図11の最小値を計算するための回路100は、Δt=f(x)となるように関数fが増加関数であるときに機能する。
【０２７０】
B.2.最大値
図13は、2つの入力ノード121、122上で同期方式で受信された2つの値の間の最大値を計算し、この最大値を出力ノード123上で送出する処理回路120を示している。
【０２７１】
inputニューロン121、122およびoutputニューロン123に加えて、この回路120は、2つの「larger」ニューロン124、125を備える。励起Vシナプス126は、we/2の重みを有し、inputニューロン121からlargerニューロン124に進む。励起Vシナプス127は、we/2の重みを有し、inputニューロン122からlargerニューロン125に進む。励起Vシナプス128は、we/2の重みを有し、inputニューロン121からoutputニューロン123に進む。励起Vシナプス129は、we/2の重みを有し、inputニューロン122からoutputニューロン123に進む。抑制Vシナプス132は、重みwiを有し、largerニューロン124からlargerニューロン125に進む。抑制Vシナプス133は、重みwiを有し、largerニューロン125からlargerニューロン124に進む。図13に示されているすべてのシナプスは、遅延Tsynに関連付けられる。
【０２７２】
inputニューロン121、122によって同期方式(
【０２７３】
【数６６】
0006732880.tif 000067
【０２７４】
)で放出される第1のスパイクは、時刻
【０２７５】
【数６７】
0006732880.tif 000068
【０２７６】
にlargerニューロン124、125を電位値Vt/2に設定し、時刻
【０２７７】
【数６８】
0006732880.tif 000069
【０２７８】
(図14)でoutputニューロン123上で第1のイベントをトリガする。図14の例における時刻
【０２７９】
【数６９】
0006732880.tif 000070
【０２８０】
の最小値を有するinputニューロン、すなわち、ニューロン121上での第2のスパイクの放出は、largerニューロンのうちの1つ、すなわち、この例におけるニューロン124を閾値電圧Vtに設定し、それにより、このニューロン124の出力のところで時刻
【０２８１】
【数７０】
0006732880.tif 000071
【０２８２】
にイベントがトリガされる。したがって、シナプス132は、他のlargerニューロン125を抑制し、その電位は値-Vt/2に設定される。第2のスパイクが時刻
【０２８３】
【数７１】
0006732880.tif 000072
【０２８４】
に他のinputニューロン122によって放出されたときに(Δt2>Δt1の場合)、largerニューロン125の電位は、シナプス127を介してゼロにリセットされ、outputニューロン123は、時刻
【０２８５】
【数７２】
0006732880.tif 000073
【０２８６】
にシナプス129を介してトリガされる。
【０２８７】
最後に、outputニューロン123は、それが送出するイベントの間で、inputニューロン121、122によって生成される2つの対のイベントの間の最大時間間隔
【０２８８】
【数７３】
0006732880.tif 000074
【０２８９】
を再現する。この最大値は、入力においてそれを表す対の第2のイベントの受信後に回路120の出力のところで利用可能である。
【０２９０】
図13の最大値を計算するための回路120は、Δt=f(x)となるような関数fが増加関数であるときに機能する。
【０２９１】
C.線形演算
C.1.減算
図15は、2つの入力ノード141、142上で同期方式で受信された2つの値x1、x2の間の差を計算し、結果x1-x2を正の場合に出力ノード143上で、負の場合に別の出力ノード144上で送出する減算回路140を示している。形式(11)の場合と同様に、Δt1=f(x1)およびΔt2=f(x2)となるような関数fが線形関数であることがここで仮定される。
【０２９２】
inputニューロン141、142およびoutput+ニューロン143およびoutput-ニューロン144に加えて、減算回路140は、2つのsyncニューロン145、146および2つの「inb」ニューロン147、148を備える。励起Vシナプス150は、we/2の重みを有し、inputニューロン141からsyncニューロン145に進む。励起Vシナプス151は、we/2の重みを有し、inputニューロン142からsyncニューロン146に進む。各々weの重みを有する3つの励起Vシナプス152、153、154は、syncニューロン145からoutput+ニューロン143、output-ニューロン144、およびinbニューロン147にそれぞれ進む。各々重みweを有する3つの励起Vシナプス155、156、157は、syncニューロン146からoutput-ニューロン144、output+ニューロン143、およびinbニューロン148にそれぞれ進む。抑制Vシナプス158は、重みwiを有し、syncニューロン145からinbニューロン148に進む。抑制Vシナプス159は、重みwiを有し、syncニューロン146からinbニューロン147に進む。励起Vシナプス160は、we/2の重みを有し、output+ニューロン143からinbニューロン148に進む。励起Vシナプス161は、we/2の重みを有し、output-ニューロン144からinbニューロン147に進む。抑制Vシナプス162は、2wiの重みを有し、inbニューロン147からoutput+ニューロン143に進む。抑制Vシナプス163は、2wiの重みを有し、inbニューロン163からoutput-ニューロン144に進む。シナプス150、151、154、および157〜163は、Tsynの遅延に関連付けられる。シナプス152および155は、Tmin+3.Tsyn+2.Tneuの遅延に関連付けられる。シナプス153および156は、3.Tsyn+2.Tneuの遅延に関連付けられる。
【０２９３】
図15による減算回路140の演算は、結果x1-x2が正である場合について図16によって例示されている。すべて、結果が負の場合も対称的に生じる。
【０２９４】
inputニューロン141、142によって同期方式(
【０２９５】
【数７４】
0006732880.tif 000075
【０２９６】
)で放出される第1のスパイクは、時刻
【０２９７】
【数７５】
0006732880.tif 000076
【０２９８】
にsyncニューロン145、146を電位値Vt/2に設定する。Δt2<Δt1の場合の図16の例における時刻
【０２９９】
【数７６】
0006732880.tif 000077
【０３００】
の最小値を与えるinputニューロン、すなわち、ニューロン142上での第2のスパイクの放出は、syncニューロンのうちの1つ、すなわち、この例におけるニューロン146を閾値電圧Vtに設定し、それにより、このニューロン146の出力のところで時刻
【０３０１】
【数７７】
0006732880.tif 000078
【０３０２】
にイベントがトリガされる。そこで、以下のようになる。
シナプス159は、inbニューロン147を抑制し、その電位は時刻
【０３０３】
【数７８】
0006732880.tif 000079
【０３０４】
に値-Vtに設定される。
シナプス157は、時刻
【０３０５】
【数７９】
0006732880.tif 000080
【０３０６】
にイベントを送出するinbニューロン148を励起し、次いで、そのイベントは、シナプス163を介して、output-ニューロン144を抑制し、その電位は時刻
【０３０７】
【数８０】
0006732880.tif 000081
【０３０８】
に値-2Vtに設定される。
次いで、シナプス155は、output-ニューロン144を再励起し、その電位は時刻
【０３０９】
【数８１】
0006732880.tif 000082
【０３１０】
に値-Vtに設定される。
シナプス156は、時刻
【０３１１】
【数８２】
0006732880.tif 000083
【０３１２】
にイベントを送出するoutput+ニューロン143を励起し、次いで、そのイベントは、inbニューロン148を励起し、その電位は、時刻
【０３１３】
【数８３】
0006732880.tif 000084
【０３１４】
に放出された前のイベントの後にゼロにリセットされ、時刻
【０３１５】
【数８４】
0006732880.tif 000085
【０３１６】
に値Vt/2に設定される。
【０３１７】
次いで、時刻
【０３１８】
【数８５】
0006732880.tif 000086
【０３１９】
の他のinputニューロン141上での第2のスパイクの放出は、他のsyncニューロン145を閾値電圧Vtに設定し、これはこのニューロン145の出力のところで時刻
【０３２０】
【数８６】
0006732880.tif 000087
【０３２１】
にイベントをトリガする。そこで、以下のようになる。
シナプス158は、inbニューロン148を抑制し、その電位は時刻
【０３２２】
【数８７】
0006732880.tif 000088
【０３２３】
に値-Vt/2に設定される。
シナプス154は、その膜電位をゼロにリセットするinbニューロン147を励起する。
シナプス152は、時刻
【０３２４】
【数８８】
0006732880.tif 000089
【０３２５】
にイベントを送出するoutput+ニューロン143を励起し、次いで、そのイベントは、inbニューロン148を励起し、その電位は時刻
【０３２６】
【数８９】
0006732880.tif 000090
【０３２７】
にゼロにリセットされる。
シナプス153は、output-ニューロン144を励起し、その電位は時刻
【０３２８】
【数９０】
0006732880.tif 000091
【０３２９】
にゼロにリセットされる。
【０３３０】
時刻
【０３３１】
【数９１】
0006732880.tif 000092
【０３３２】
および
【０３３３】
【数９２】
0006732880.tif 000093
【０３３４】
に、output-ニューロン144によって受信された2つの励起イベントは、時刻
【０３３５】
【数９３】
0006732880.tif 000094
【０３３６】
に受信された抑制ベントの後である。結果として、このニューロン144は、Δt2<Δt1のときにイベントを放出せず、したがって、結果の符号は、適切に知らされる。
【０３３７】
最後に、output+ニューロン143は、間に、inputニューロン141、142によって生成される2つの対のイベントの間の時間間隔Δtout、すなわち、
【０３３８】
【数９４】
0006732880.tif 000095
【０３３９】
を有する2つのイベントを送出する。
【０３４０】
減算器回路140の出力のところで正しい符号を有するoutputニューロン上で、間に時間間隔Δtout=f(x1-x2)を有する2つのイベントが適切に得られる。この結果は、最大の絶対値を有する入力対の第2のイベントの受信後に回路の出力のところで利用可能である。
【０３４１】
2つの等しい値が、入力のところで与えられたときに、図15に示されている減算器回路140は、2つの平行な経路をアクティベートし、結果は、output+ニューロン143およびoutput-ニューロン144の両方で送出され、inbニューロン147、148には勝利の経路を選択する時間がない。これを回避するために、減算器回路に、zeroニューロン171および高速Vシナプス172〜178を加えて、図17による減算器回路170を形成することが可能である。
【０３４２】
図17において、図15と同じように配置構成されているニューロンおよびシナプスの参照番号は、繰り返されない。zeroニューロン171は、we/2の重みおよび遅延Tneuを有する2つの励起Vシナプス172、173のレシーバノードであり、一方はsyncニューロン145から来て、他方はsyncニューロン146から来る。これは、wi/2の重みおよび2.Tneuの遅延を有する2つの抑制Vシナプス174、175のレシーバノードでもあり、一方はsyncニューロン145から来て、他方はsyncニューロン146から来る。zeroニューロン171は、重みweおよび遅延Tneuを有するVシナプス176を介して自己励起する。また、これは遅延Tneuを有する2つの抑制Vシナプスのエミッタノードでもあり、一方177はinbニューロン148の方へ向き付けられた重みwiを有し、他方178はoutput-ニューロン144の方へ向き付けられた2wiの重みを有する。
【０３４３】
zeroニューロン171は、syncニューロン145、146によって送出されるイベントの間の一致の検出器として働く。これら2つのニューロンが関連付けられている入力の第2の符号化スパイクの時刻にのみイベントを送出するとした場合、この時間的一致を検出することは、後者が正しく同期化されている場合に、2つの入力値が等しいことを検出することと同等である。zeroニューロン171は、これがsyncニューロン145、146からTneu未満の時間間隔だけ隔てられている2つのイベントを受信する場合にのみイベントを生成する。この場合、これは、シナプス178を介してoutput-ニューロン144を直接抑制し、シナプス177を介してinbニューロン148をデアクティベートする。
【０３４４】
その結果、図17の減算器回路に与えられる2つの等しい入力値により、2つのイベントがoutput+ニューロン143の出力のところでTminに等しい時間間隔で隔てられる、すなわち、zeroの差を符号化し、output-ニューロン144上でイベントを引き起こさない。入力値が等しくない場合、zeroニューロン171は、アクティベートされず、減算器は、図15と同じ方式で機能する。
【０３４５】
C.2.累算
図18は、重み付けとともに正の入力値の累算を行うための回路180を示している。目標は、accニューロン184内に、加重和
【０３４６】
【数９５】
0006732880.tif 000096
【０３４７】
に関係する電位値をロードすることであり、
ここで、α0、α1、...αN-1は正またはzeroの重み付け係数であり、入力値x0、x1、...、xN-1は正またはゼロである。
【０３４８】
各入力値xk(0≦k<N)について、回路180は、inputニューロン181kおよびinput-ニューロン182kを備え、ニューロンのそれぞれのグループ20の各部分は図2を参照しつつ上で説明されているグループ20の場合と同じように配置構成される。
【０３４９】
ニューロン20のこれらのN個のグループのfirstおよびlastニューロンの出接続は、計算されるべき加重和の係数αkの関数として構成される。
【０３５０】
inputニューロン181k(0≦k<N)に接続されたfirstニューロンは、αk.waccの重みおよびTmin+Tsynの遅延を有する励起geシナプス182kのエミッタノードである。inputニューロン181kに接続されたlastニューロンは、-αk.waccの重みおよび遅延Tsynを有する抑制geシナプス183kのエミッタノードである。
【０３５１】
accニューロン184は、項αk.xkを累算する。したがって、各入力kについて、accニューロン184は、励起geシナプス182kおよび抑制geシナプス183kのレシーバノードである。
【０３５２】
回路180は、N個のVシナプスのレシーバノードであるsyncニューロン185をさらに備え、各々we/Nの重みおよび遅延Tsynを有し、それぞれN個のニューロン入力181k(0≦k<N)に接続されたlastニューロンから来る。syncニューロン185は、重みwaccおよび遅延Tsynを有する励起geシナプス186のエミッタノードであり、そのレシーバノードは、accニューロン184である。
【０３５３】
inputニューロン181k上でΔtk=Tmin+xk.Tcodによって隔てられている2つのスパイクを有する各入力について、accニューロン184は、持続時間Δtk-Tmin=xk.Tcodにわたって量αk.Vt/Tmaxを積分する。
【０３５４】
k個の入力信号のすべての第2のスパイクが受信された後、syncニューロン185はトリガされ、geシナプス186を介してaccニューロン184を励起する。accニューロン184の電位は、
【０３５５】
【数９６】
0006732880.tif 000097
【０３５６】
に等しい残留時間について増加し続ける。このときに、イベントをトリガするaccニューロン184が閾値Vtに達する。
【０３５７】
syncニューロン185によって送出されるものに関するこのイベントの遅延は
【０３５８】
【数９７】
0006732880.tif 000098
【０３５９】
である。加重和sは、反転形式(1-s)の回路180によってのみアクセス可能にされる。
【０３６０】
回路180は、
【０３６１】
【数９８】
0006732880.tif 000099
【０３６２】
という条件の下で説明されたばかりの仕方で機能する。係数αkは、xkの可能なすべての値についてこの条件が満たされるように、すなわち、
【０３６３】
【数９９】
0006732880.tif 000100
【０３６４】
が成り立つように正規化され得る。
【０３６５】
C.3.加重和
重み付き加算回路190は、図19に示されている構造を有することができる。
【０３６６】
(16)に従って加重和sの表現を得るために、図18を参照しつつ説明されているもののタイプの加重累算のための回路180が、別のaccニューロン188およびoutputニューロン189に関連付けられる。
【０３６７】
accニューロン188は、重みwaccおよび遅延Tsynを有する励起geシナプス191のレシーバノードであり、励起Vシナプス192のエミッタノードは重みweおよびTmin+Tsynの遅延を有する。outputニューロン189は、また、重みweおよび遅延Tsynを有する励起Vシナプス193のレシーバノードでもある。
【０３６８】
直線的に変化する累算は、回路180のaccニューロン184において再開するのと同時にaccニューロン188において開始し、2つのaccニューロン184、188はsyncニューロン185から来る同じイベントによってgeシナプス186、191上で励起される。それらの残留累算時間は、閾値Vtに達するまで、それぞれ、
【０３６９】
【数１００】
0006732880.tif 000101
【０３７０】
およびTmaxである。シナプス192は、Tminの相対的遅延を有するので、outputニューロン189上でトリガされる2つのイベントは、間に時間間隔
【０３７１】
【数１０１】
0006732880.tif 000102
【０３７２】
を有する。
【０３７３】
予想される加重和は、回路190の出力のところに表される。N=2およびα0=α1=1/2であるときに、この回路190は、単純な加算器回路になり、スケール係数1/2を有し、これによりaccニューロン184におけるオーバーフローを回避する。
【０３７４】
C.4.一次結合
一次結合のより一般的な場合も、上記の式(16)で表されるが、係数αkは、入力値xkと全く同様に、正または負であってよい。一般性を失うことなく、係数および入力値は、係数α0、α1、...、αM-1が正またはゼロであり、係数αM+1、αM+2、...、αN-1が負(N≧2、M≧0、N-M≧0)になるように順序付けられる。
【０３７５】
正または負の値を考慮するために、図20に示されている一次結合計算するための回路200は、図18を参照しつつ説明されているもののタイプの2つの累算回路180A、180Bを備える。
【０３７６】
累算回路180Aのinputニューロン181kは、それぞれ、0≦k<Mに対する係数αk、およびM≦k<Nに対する反転係数-αkに関連付けられる。0≦k<Mに対するこれらのinputニューロン181kは、xk≧0のときにxkを表す一対のスパイクを受信し、したがって、これらの値x0、...、xM-1に対するinput+タイプのニューロンを形成する。M≦k<Nに対する回路180Aのinputニューロン181kは、xk<0のときにxkを表す一対のスパイクを受信し、したがって、これらの値xM、...、xN-1に対するinput-タイプのニューロンを形成する。
【０３７７】
加重累算に対する回路180Bのinputニューロン181kは、それぞれ、0≦k<Mに対する係数-αk、およびM≦k<Nに対する係数αkに関連付けられる。0≦k<Mに対するこれらのinputニューロン181kは、xk<0のときにxkを表す一対のスパイクを受信し、したがって、これらの値x0、...、xM-1に対するinput-タイプのニューロンを形成する。M≦k<Nに対する回路180Bのinputニューロン181kは、xk≧0のときにxkを表す一対のスパイクを受信し、したがって、これらの値xM、...、xN-1に対するinput+タイプのニューロンを形成する。
【０３７８】
2つの累算回路180A、180Bは、これにより2N個のVシナプスのレシーバノードであるsyncニューロン185を共有し、各々we/Nの重みおよび遅延Tsynを有し、2N個のinputニューロン181kに結合されたlastニューロンから来る。一次結合計算回路200のsyncニューロン185は、したがって、正または負のN個の入力値x0、...、xN-1がニューロン181k上で受信された後にトリガされる。
【０３７９】
回路180Aのsyncニューロン185およびaccニューロン184によって送出されるそれぞれのイベントからイベントの間に時間
【０３８０】
【数１０２】
0006732880.tif 000103
【０３８１】
が経過する。
【０３８２】
回路180Bのsyncニューロン185およびaccニューロン184によって送出されるそれぞれのイベントからイベントの間に時間
【０３８３】
【数１０３】
0006732880.tif 000104
【０３８４】
が経過する。
【０３８５】
次いで、図17に示されているもののタイプであってよい減算器回路170は、sの符号を示す出力上で
【０３８６】
【数１０４】
0006732880.tif 000105
【０３８７】
の表現を生成するために、時間間隔ΔTAとΔTBとを組み合わせる。このために、図20の一次結合計算回路200は、減算器回路170のinputニューロン141、142の方へ向き付けられた、重みweおよびTmin+Tsynの遅延を有する2つの励起Vシナプス198、199を備える。さらに、重みweおよび遅延Tsynを有する励起Vシナプス201が回路180Aのaccニューロン184から減算器回路170のinputニューロン141に進む。重みweおよび遅延Tsynを有する励起Vシナプス202が回路180Bのaccニューロン184から減算器回路170の他のinputニューロン142に進む。
【０３８８】
減算器回路170のoutput-ニューロン144およびoutput+ニューロン143は、それぞれ、重みweおよび遅延Tsynを有する励起Vシナプス205、206を介して、一次結合を計算するための回路200の出力を形成する2つの他のoutput+ニューロン203およびoutput-ニューロン204に接続される。
【０３８９】
トリガされるこれら2つのニューロンのうちの一方は、一次結合の結果sの符号を指示する。これは、時間間隔
【０３９０】
【数１０５】
0006732880.tif 000106
【０３９１】
で隔てられた一対のイベントを送出する。
【０３９２】
この結果が利用可能であることは、減算器回路170のoutput+ニューロン143およびoutput-ニューロン144から来る、重みweおよび遅延Tsynを有する、2つの励起Vシナプス208、209を受信する「start」ニューロン207によって外部で指示される。startニューロン207は、重みwiおよび遅延Tsynを有する、Vシナプス210を介して自己抑制する。startニューロン207は、スパイクを、アクティベートされるoutput+ニューロン203またはoutput-ニューロン204の第1のスパイクと同時に送出する。
【０３９３】
係数αkは、条件
【０３９４】
【数１０６】
0006732880.tif 000107
【０３９５】
および
【０３９６】
【数１０７】
0006732880.tif 000108
【０３９７】
がxkの可能なすべての値について満たされるように、すなわち、
【０３９８】
【数１０８】
0006732880.tif 000109
【０３９９】
となるように、正規化することができ、一次結合を計算するための回路200が上で説明されているように機能するようにできる。したがって、結果において正規化係数が考慮されなければならない。
【０４００】
D.非線形演算
D1.対数
図21は、数x∈]0,1]の自然対数を計算するための回路210を示しており、その符号化された表現は、Δt=f(x)=Tmin+x.Tcodとして時刻
【０４０１】
【数１０９】
0006732880.tif 000110
【０４０２】
および
【０４０３】
【数１１０】
0006732880.tif 000111
【０４０４】
(図22)に2つのイベントが生じるという形でinputニューロン211によって生成される。
【０４０５】
inputニューロン211は、図2を参照しつつ説明されているものに類似するノード20のグループに属す。このグループ20のfirstニューロン213は、重み
【０４０６】
【数１１１】
0006732880.tif 000112
【０４０７】
およびTmin+Tsynの遅延を有する励起geシナプス212のエミッタノードであり、lastニューロン215は、
【０４０８】
【数１１２】
0006732880.tif 000113
【０４０９】
の重みおよび遅延Tsynを有する抑制geシナプス214のエミッタノードである。2つのgeシナプス212、214は、レシーバノードと同じaccニューロン216を有する。lastニューロン215からaccニューロン216まで、重み
【０４１０】
【数１１３】
0006732880.tif 000114
【０４１１】
および遅延Tsynを有するgfシナプス217、ならびに1の重みおよび遅延Tsynを有するgateシナプス218もある。
【０４１２】
回路210は、lastニューロン215から来る重みweおよび2.Tsynの遅延を有する励起Vシナプス221、ならびにaccニューロン216から来る重みweおよびTmin+Tsynの遅延を有する励起Vシナプス222のレシーバノードであるoutputニューロン220をさらに備える。
【０４１３】
図21による対数計算回路210の演算は、図22に例示されている。
【０４１４】
inputニューロン211で時刻
【０４１５】
【数１１４】
0006732880.tif 000115
【０４１６】
に第1のスパイクを放出すると、時刻
【０４１７】
【数１１５】
0006732880.tif 000116
【０４１８】
にfirstニューロン213の出力でイベントがトリガされる。firstニューロン213は、geシナプス212を介して時刻
【０４１９】
【数１１６】
0006732880.tif 000117
【０４２０】
にaccニューロン216による累算を開始する。
【０４２１】
inputニューロン211で時刻
【０４２２】
【数１１７】
0006732880.tif 000118
【０４２３】
に第2のスパイクを放出すると、lastニューロン215は時刻
【０４２４】
【数１１８】
0006732880.tif 000119
【０４２５】
にイベントを送出させられる。geシナプス214によってトランスポートされるこのイベントは、時刻
【０４２６】
【数１１９】
0006732880.tif 000120
【０４２７】
にaccニューロン216によって実行された累算を停止する。このときに、電位値Vt.xは、accニューロン216に記憶される。
【０４２８】
シナプス217および218を介して、lastニューロン215は、gfシナプス217およびgateシナプス218を介して同じ時刻
【０４２９】
【数１２０】
0006732880.tif 000121
【０４３０】
にaccニューロン216上で指数関数的変化をさらにアクティベートする。代替的に、gfシナプス217によってトランスポートされるイベントは、また、他の演算がデバイス内で実行されている間に、後者において、電位値Vt.xを記憶することが望ましい場合にその後accニューロン216に届く可能性もあることに留意されたい。
【０４３１】
シナプス217および218によるアクティベーションの後に、accニューロン216の構成要素gfは
【０４３２】
【数１２１】
0006732880.tif 000122
【０４３３】
に従って変化し、
その膜電位は
【０４３４】
【数１２２】
0006732880.tif 000123
【０４３５】
に従って変化する。
【０４３６】
この電位V(t)は、閾値Vtに達し、時刻
【０４３７】
【数１２３】
0006732880.tif 000124
【０４３８】
にVシナプス222上でイベントをトリガする。
【０４３９】
時刻
【０４４０】
【数１２４】
0006732880.tif 000125
【０４４１】
におけるVシナプス221により、第1のイベントがoutputニューロン220上でトリガされる。シナプス222によってトリガされる第2のイベントは、時刻
【０４４２】
【数１２５】
0006732880.tif 000126
【０４４３】
に生じる。
【０４４４】
最後に、outputニューロン220によって送出される2つのイベントは、時間間隔
【０４４５】
【数１２６】
0006732880.tif 000127
【０４４６】
で隔てられる。
【０４４７】
入力値xの自然対数log(x)に比例する数の表現は、出力で適切に得られる。0<x≦1なので、対数log(x)は負の値である。
【０４４８】
Aを値
【０４４９】
【数１２７】
0006732880.tif 000128
【０４５０】
と呼ぶとすれば、図21の回路210は、A≦x≦1となるような実数xの表現を受信したときにlogA(x)の表現を送出するが、ただし、logA(.)はAを底とする対数の演算を表す。われわれが、形式(11)において、outputニューロン220によって送出される2つのイベントの間の時間間隔がTmaxを超え得ると考えた場合に、回路210は、0<x≦1である任意の数xに対するlogA(x)の表現を送出する。
【０４５１】
D.2.累乗
図23は、数x∈[0,1]に対する累乗回路230を示しており、その符号化された表現は、Δt=f(x)=Tmin+x.Tcodとして時刻
【０４５２】
【数１２８】
0006732880.tif 000129
【０４５３】
および
【０４５４】
【数１２９】
0006732880.tif 000130
【０４５５】
(図24)に2つのイベントが生じるという形でinputニューロン231によって生成される。
【０４５６】
inputニューロン231は、図2を参照しつつ説明されているものに類似するノード20のグループに属す。このグループ20のfirstニューロン233は、重みgmultおよびTmin+Tsynの遅延を有するgfシナプス232、さらには1の重みおよびTmin+Tsynの遅延を有する励起gateシナプス234のエミッタノードである。グループ20のlastニューロン235は、-1の重みおよび遅延Tsynを有する抑制gateシナプス236、さらには重み
【０４５７】
【数１３０】
0006732880.tif 000131
【０４５８】
および遅延Tsynを有する励起geシナプス237のエミッタノードである。これらのシナプスは、レシーバノードと同じaccニューロン238を有する。
【０４５９】
回路230は、lastニューロン235から来る重みweおよび2.Tsynの遅延を有する励起Vシナプス241、ならびにaccニューロン238から来る重みweおよびTmin+Tsynの遅延を有する励起Vシナプス242のレシーバノードであるoutputニューロン240をさらに備える。
【０４６０】
図23による累乗回路230の演算は、図24に例示されている。
【０４６１】
inputニューロン231で時刻
【０４６２】
【数１３１】
0006732880.tif 000132
【０４６３】
に第1のスパイクを放出すると、時刻
【０４６４】
【数１３２】
0006732880.tif 000133
【０４６５】
にfirstニューロン233の出力でイベントがトリガされる。firstニューロン233は、gfシナプス232およびgateシナプス234を介して時刻
【０４６６】
【数１３３】
0006732880.tif 000134
【０４６７】
にaccニューロン238での指数関数的に増大する累算を開始する。
【０４６８】
accニューロン238の構成要素gfは、
【０４６９】
【数１３４】
0006732880.tif 000135
【０４７０】
に従って変化し、その膜電位は、
【０４７１】
【数１３５】
0006732880.tif 000136
【０４７２】
に従って変化する。
【０４７３】
inputニューロン231で時刻
【０４７４】
【数１３６】
0006732880.tif 000137
【０４７５】
に第2のスパイクを放出すると、lastニューロン235は時刻
【０４７６】
【数１３７】
0006732880.tif 000138
【０４７７】
にイベントを送出させられる。gateシナプス236によってトランスポートされるこのイベントは、時刻
【０４７８】
【数１３８】
0006732880.tif 000139
【０４７９】
にaccニューロン238によって実行された指数関数的に変化する累算を停止する。このときに、電位値Vt.(1-Ax)は、accニューロン238に記憶され、上記のように、
【０４８０】
【数１３９】
0006732880.tif 000140
【０４８１】
である。geシナプス237を介して、lastニューロン235は、accニューロン238上で重み
【０４８２】
【数１４０】
0006732880.tif 000141
【０４８３】
を有する線形力学を、同じ時刻
【０４８４】
【数１４１】
0006732880.tif 000142
【０４８５】
にさらにアクティベートする。
【０４８６】
したがって、ニューロン238の膜電位は、
【０４８７】
【数１４２】
0006732880.tif 000143
【０４８８】
に従って変化する。
【０４８９】
この電位V(t)は、閾値Vtに達し、時刻
【０４９０】
【数１４３】
0006732880.tif 000144
【０４９１】
にVシナプス222上でイベントをトリガする。
【０４９２】
時刻
【０４９３】
【数１４４】
0006732880.tif 000145
【０４９４】
におけるVシナプス241により、第1のイベントがoutputニューロン240上でトリガされる。シナプス242によってトリガされる第2のイベントは、時刻
【０４９５】
【数１４５】
0006732880.tif 000146
【０４９６】
に生じる。
【０４９７】
最後に、outputニューロン240によって送出される2つのイベントは、時間間隔
【０４９８】
【数１４６】
0006732880.tif 000147
【０４９９】
で隔てられる。
【０５００】
そこで、図23の回路230は、0から1の範囲内の数xの表現を受信したときにAxの表現を送出する。この回路は、1よりも大きい入力値xを受け付け(Δt>Tmax)、また、そのoutputニューロン240上でAxの表現を送出する。
【０５０１】
図23の回路230は、図21の回路210によって実行される演算の逆演算を実行する。
【０５０２】
これは、対数計算回路と累乗回路との間に単純な演算を使用して様々な非線形計算を実装するために使用され得る。たとえば、2つの対数の和で乗算を実行させることができ、2つの対数の減算で除算を実行させることができ、対数をn回足した和で数xをn乗することができる。
【０５０３】
D.3.乗算
図25は、2つの値x1、x2の積を計算する乗算器回路250を示しており、その符号化された表現は、それぞれ、Δt1=f(x1)=Tmin+x1.TcodおよびΔt2=f(x2)=Tmin+x2.Tcodとして、値x1については時刻
【０５０４】
【数１４７】
0006732880.tif 000148
【０５０５】
および
【０５０６】
【数１４８】
0006732880.tif 000149
【０５０７】
に、値x2(図25)については時刻
【０５０８】
【数１４９】
0006732880.tif 000150
【０５０９】
および
【０５１０】
【数１５０】
0006732880.tif 000151
【０５１１】
に生じるイベントの2つの対の形態で2つのinputニューロン2511、2512によって生成される。
【０５１２】
各inputニューロン251k(k=1または2)は、図2を参照しつつ説明されているものに類似するノード20kのグループに属す。このグループ20kのfirstニューロン253kは、重み
【０５１３】
【数１５１】
0006732880.tif 000152
【０５１４】
およびTmin+Tsynの遅延を有する励起geシナプス252kのエミッタノードであり、lastニューロン255kは、
【０５１５】
【数１５２】
0006732880.tif 000153
【０５１６】
の重みおよび遅延Tsynを有する抑制geシナプス254kのエミッタノードである。ノード20kのグループからの2つのgeシナプス252k、254kは、レシーバノードとして、図21のaccニューロン216と同様の役割を果たす、同じaccニューロン256kを有する。
【０５１７】
回路250は、それぞれlastニューロン2551、2552から来るwe/2の重みおよび遅延Tsynを有する2つの励起Vシナプス2611、2612のレシーバノードであるsyncニューロン260をさらに備える。重みgmultおよび遅延Tsynを有するgfシナプス262、ならびに1の重みおよび遅延Tsynを有する励起gateシナプス264は、syncニューロン260からaccニューロン2561に進む。
【０５１８】
重みgmultおよび遅延Tsynを有するgfシナプス265、ならびに1の重みおよび遅延Tsynを有する励起gateシナプス266は、accニューロン2561からaccニューロン2562に進む。
【０５１９】
回路250は、図23のaccニューロン238と同様の役割を果たす別のaccニューロン268を備える。accニューロン268は、重みgmultおよび3Tsynの遅延を有するgfシナプス269、ならびに1の重みおよび3Tsynの遅延を有する励起gateシナプス270のレシーバノードであり、両方ともsyncニューロン260から来る。さらに、accニューロン268は、-1の重みおよび遅延Tsynを有する抑制gateシナプス271、ならびに重み
【０５２０】
【数１５３】
0006732880.tif 000154
【０５２１】
および遅延Tsynを有する励起geシナプス272のレシーバノードであり、両方ともaccニューロン2562から来る。
【０５２２】
最後に、回路250は、accニューロン2562から来る、重みweおよび2Tsynの遅延を有する励起Vシナプス275、ならびにaccニューロン268から来る、重みweおよびTsyn+Tsynの遅延を有する励起Vシナプス276のレシーバノードであるoutputニューロン274を有する。
【０５２３】
図25による乗算器回路250の演算は、図26に例示されている。
【０５２４】
2つのaccニューロン2561、2562の各々は、それぞれ、最初に図21のaccニューロン216に似た挙動を示し、線形数列2781、2782はx1.Tcod、x2.Tcodのそれぞれの持続時間を有する第1の期間に重み
【０５２５】
【数１５４】
0006732880.tif 000155
【０５２６】
を有し、それにより、電位値Vt.x1およびVt.x2はaccニューロン2561、2562内に記憶される。
【０５２７】
最小値を有するinputニューロン(x1>x2である図26に示されている例におけるinputニューロン2512)で時刻
【０５２８】
【数１５５】
0006732880.tif 000156
【０５２９】
に第2のスパイクを放出することにより、時刻
【０５３０】
【数１５６】
0006732880.tif 000157
【０５３１】
にgeシナプス2542を介して対応するaccニューロン2562における直線的に変化する累算を停止する。したがって、このaccニューロン2562の膜電位は、シナプス265、266を介してその再アクティベーションまで持続するプラトー279を有する。時刻
【０５３２】
【数１５７】
0006732880.tif 000158
【０５３３】
に、syncニューロン260の電位は、Vシナプス2612を介してlastニューロン2552からイベントが受信されたことで、値Vt/2になる。
【０５３４】
最大値を有するinputニューロン(図26の場合のinputニューロン2511)で時刻
【０５３５】
【数１５８】
0006732880.tif 000159
【０５３６】
に第2のスパイクを放出することにより、時刻
【０５３７】
【数１５９】
0006732880.tif 000160
【０５３８】
にgeシナプス2541を介して対応するaccニューロン2561における直線的に変化する累算を停止する。それと同時に、このsyncニューロン260の電位は、Vシナプス2611上でイベントが受信されたことにより、値Vtに達する。この結果、シナプス262および264上で時刻
【０５３９】
【数１６０】
0006732880.tif 000161
【０５４０】
にイベントを放出する。次いで、指数関数的変化2801は、時刻
【０５４１】
【数１６１】
0006732880.tif 000162
【０５４２】
に直線的な変化2781の代わりにaccニューロン2561においてアクティベートされる。並行して、シナプス269、270は、時刻
【０５４３】
【数１６２】
0006732880.tif 000163
【０５４４】
にaccニューロン268において指数関数的変化281をアクティベートする。
【０５４５】
accニューロン2561の電位は、値Vtに達し、時刻
【０５４６】
【数１６３】
0006732880.tif 000164
【０５４７】
にシナプス265、266上でイベントをトリガする。
【０５４８】
指数関数的変化2801は、時刻
【０５４９】
【数１６４】
0006732880.tif 000165
【０５５０】
にaccニューロン2562でアクティベートされる。このaccニューロン2562の電位は、閾値Vtに達し、時刻
【０５５１】
【数１６５】
0006732880.tif 000166
【０５５２】
にシナプス271、272、275上でイベントをトリガする。gateシナプス271は、時刻
【０５５３】
【数１６６】
0006732880.tif 000167
【０５５４】
にaccニューロン268における指数関数的変化281をデアクティベートし、同時に、accニューロン268における直線的な変化282は、値
【０５５５】
【数１６７】
0006732880.tif 000168
【０５５６】
から開始して、geシナプス272を介してアクティベートされる。
【０５５７】
Vシナプス275は、時刻
【０５５８】
【数１６８】
0006732880.tif 000169
【０５５９】
にoutputニューロン274上で第1のスパイクの放出をトリガする。
【０５６０】
accニューロン268は、閾値Vtに達し、時刻
【０５６１】
【数１６９】
0006732880.tif 000170
【０５６２】
にVシナプス276上でイベントをトリガする。この結果、時刻
【０５６３】
【数１７０】
0006732880.tif 000171
【０５６４】
にoutputニューロン274で第2のスパイクを放出する。
【０５６５】
最後に、outputニューロン268によって送出される2つのイベントは、時間間隔
【０５６６】
【数１７１】
0006732880.tif 000172
【０５６７】
で隔てられる。
【０５６８】
そこで、図25の回路250は、outputニューロン268上で、Aと1との間の2つの数x1、x2の積x1.x2の表現を送出し、そのそれぞれの表現を、inputニューロン2511、2512上で受信する。
【０５６９】
このために、イベントの対は、syncニューロン260が同期を処理するので、inputニューロン2511、2512上で同期方式で受信されなければならないということはなかった。
【０５７０】
D.4.符号付き乗算
図27は、2つの符号付き値x1、x2の積を計算する乗算器回路290を示している。図27に示されているすべてのシナプスは、遅延Tsynを有する。
【０５７１】
各入力値xk(1≦k≦2)について、乗算器回路290は、重みweを有する2つのそれぞれのVシナプス293kおよび294kのエミッタノードであるinput+ニューロン291kおよびinput-ニューロン292kを備える。Vシナプス2931および2941は、図25に示されているタイプの乗算器回路250のinputニューロン2511の方へ向き付けられるが、Vシナプス2931および2941は、回路250の他のinputニューロン2512の方へ向き付けられる。
【０５７２】
乗算器回路290は、回路250のoutputニューロン274から来る重みweを有する2つのそれぞれの励起Vシナプス297および298のレシーバノードであるoutput+ニューロン295およびoutput-ニューロン296を有する。
【０５７３】
乗算器回路290は、乗算の結果の符号を選択するための論理を形成するように接続されている4つのsignニューロン300〜303も備える。各signニューロン300〜303は、4つのinputニューロン291k、292kのうちの2つから来るwe/4の重みを有する2つのそれぞれの励起Vシナプスのレシーバノードである。input+ニューロン2911、2912に接続されているsignニューロン300は、2つの正の入力x1、x2の受信を検出する。これは、output-ニューロン296に進む2wiの重みを有する抑制Vシナプス305のエミッタノードを形成する。input-ニューロン2921、2922に接続されているsignニューロン303は、2つの負の入力x1、x2の受信を検出する。これは、output-ニューロン296に進む2wiの重みを有する抑制Vシナプス308のエミッタノードを形成する。input-ニューロン2921およびinput+ニューロン2921に接続されているsignニューロン301は、負の入力x1および正の入力x2の受信を検出する。これは、output+ニューロン295に進む2wiの重みを有する抑制Vシナプス306のエミッタノードを形成する。input+ニューロン2911およびinput-ニューロン2922に接続されているsignニューロン302は、正の入力x1および負の入力x2の受信を検出する。これは、output+ニューロン295に進む2wiの重みを有する抑制Vシナプス307のエミッタノードを形成する。
【０５７４】
抑制Vシナプスは、signニューロン300〜303の間に配置構成され、これにより、それらのうちの1つのみが、output+ニューロン295およびoutput-ニューロン296のうちの一方を抑制するように働くことを確実にする。したがって、積の符号(+または-)に対応する各signニューロン300〜303は、反対符号に対応する2つのsignニューロンにそれぞれ進むwe/2の重みを有する2つの抑制Vシナプスのエミッタノードである。
【０５７５】
こうして配置構成されている図27の回路290は、2つの数x1、x2が入力291k、292k上でそれぞれの符号とともに提示されたときに、x1.x2の符号に従って、その出力295、296のうちの一方の上で時間間隔f(|x1.x2|)で隔てられた2つのイベントを送出する。
【０５７６】
図17の場合のように、入力の1つでゼロを検出するための論理回路が追加されてよく、これにより、ゼロの入力がoutput+ニューロン295上で生成されるがoutput-ニューロン296上では生成されない2つのイベントの間の時間間隔Tminをもたらすことを確実にする。
【０５７７】
E.微分方程式の解法
E.1.積分
図28は、input+ニューロン311およびinput-ニューロン312の対のニューロン上で符号付き形式で与えられる微分係数から信号を再構成する回路310を示している。積分された信号は、その符号に従って、output+ニューロン313およびoutput-ニューロン314の対のニューロンによって与えられる。図28に示されているシナプス321〜332は、すべて重みweを有する励起Vシナプスである。これらはすべて、遅延がTmin+Tsynであるシナプス329を除いて、遅延Tsynを有する。
【０５７８】
積分を実行するために、回路310は、図20に示されているタイプの一次結合回路200を使用し、ここで、N=2、係数α0=1およびα1=dt、dtは選択された積分ステップサイズとする。
【０５７９】
input+ニューロン311およびinput-ニューロン312は、それぞれ、2つのVシナプス321、322によって係数α1=dtに関連付けられている回路200のinput+およびinput-ニューロン1811に接続される。
【０５８０】
係数α0=1に関連付けられている、回路200の他のinput+およびinput-ニューロン1811は、それぞれ、回路217の2つのoutput+ニューロン315およびoutput-ニューロン316に2つのVシナプス323、324によって接続され、その役割は積分プロセスに対する初期化値x0を与えることである。回路317は、実質的に、図1に示されている方式で同じrecallニューロン15に接続されているoutput+ニューロン315およびoutput-ニューロン316の対からなる。
【０５８１】
積分回路310の別のinitニューロン318は、シナプス325のエミッタノードであり、そのレシーバノードは、回路317のrecallニューロン15である。initニューロン318は、積分器に、回路317に記憶されている初期値x0をロードする。
【０５８２】
シナプス326、327は、一次結合回路200のoutput+ニューロン143からそのinput+ニューロン1810に、積分回路200のoutput-ニューロン144からそのinput-ニューロン1810にフィードバックを送るように配置構成される。
【０５８３】
startニューロン319は、積分回路180のinput+ニューロン1811上で時間間隔Tminで隔てられた2つのイベントの形でゼロ値を供給する2つのシナプス328、329のエミッタノードである。
【０５８４】
一次結合回路200のoutput+ニューロン143およびoutput-ニューロン144は、2つのシナプス330、331のそれぞれのエミッタノードであり、そのレシーバノードは、それぞれ、積分回路310のoutput+ニューロン313およびoutput-ニューロン314である。
【０５８５】
最後に、積分回路310は、一次結合回路200のstartニューロン207から来るシナプス332のレシーバノードであるnew inputニューロン320を有する。
【０５８６】
初期値x0は、その符号に従って、initニューロン318、次いでstartニューロン319がアクティベートされた後に、output+ニューロン313またはoutput-ニューロン314上で送出される。それと同時に、new inputニューロン320によってイベントが送出される。このイベントは、回路310の環境に、k=0の場合の微分値g'(k.dt)を与えることができることを知らせるものである。微分値g'(k.dt)がinput+ニューロン311またはinput-ニューロン312上で与えられるとすぐに、新しい積分値がoutput+ニューロン313またはoutput-ニューロン314によって送出され、new inputニューロン320によって送出された新しいイベントが、回路310の環境に、次の微分値g'((k+1).dt)が与えられ得ることを知らせる。このプロセスは、微分値g'(k.dt)が与えられる(k=0、1、2、など)限り繰り返される。
【０５８７】
(k+1)次微分値g'(k.dt)が積分器回路310に与えられた後、値の表現
【０５８８】
【数１７２】
0006732880.tif 000173
【０５８９】
が出力のところで得られ、これは、付加定数まで、T=(k+1).dtである場合に
【０５９０】
【数１７３】
0006732880.tif 000174
【０５９１】
の近似となっている。
【０５９２】
図1〜図28を参照しつつ上で説明されている回路は、入力および/または出力のところで、操作される値が、ニューロンによって受信されるかまたは送出されるイベントの間の時間間隔によって表される多数のタイプの計算を実行するように組み立てられ、構成され得る。
【０５９３】
特に、図29、図31、および図33は、微分方程式を解くために使用される本発明による処理デバイスの例を示している。計算は、これらの図のように製作された回路により、純粋に一例として、すなわち、τm=100s、τf=20ms、Vt=10mV、Tmin=10ms、およびTcod=100msのように選択したパラメータを用いて実行された。
【０５９４】
E.2.一階微分方程式
図29は、微分方程式
【０５９５】
【数１７４】
0006732880.tif 000175
【０５９６】
の解を求める処理デバイスを示しており、
ここで、τおよびX∞は様々な値を取り得るパラメータである。図29に示されているシナプスは、すべて重みweおよび遅延Tsynを有する励起Vシナプスである。
【０５９７】
方程式(24)を解くために、図29のデバイスでは、
N=2および係数α0=-1/τおよびα1=+1/τとした、図20に示されているような一次結合回路200と、
積分ステップサイズをdtとした、図28に示されているような積分器回路310と、
図28を参照しつつ説明されている回路317のように、定数X∞を、X∞の符号に従って、output+ニューロン315またはoutput-ニューロン316のいずれかによって送出される2つのスパイクの間の時間間隔f(|X∞|)の形で与えるための回路317とを使用する。
【０５９８】
定数X∞は、積分器回路310のnew inputニューロン320から来るシナプス340のレシーバノードであるrecallニューロン15の各アクティベーションの後に一次結合回路200内の係数α1=1/τに関連付けられているinput+およびinput-ニューロン1811のうちの1つで与えられる。2つのシナプス341、342は、積分器回路310の出力ノードoutput+313から一次結合回路200の他の入力ノードinput+1810に、および回路310の出力ノードoutput-314から回路200の他の入力ノードinput-1810にフィードバックを送る。2つのシナプス343、344は、一次結合回路200の出力ノードoutput+203から積分器回路310の入力ノードinput+311へ進み、それぞれ、回路200の出力ノードoutput+204から回路310の入力ノードinput-312に進む。
【０５９９】
図29のデバイスは、積分器回路310のoutput+ニューロン313およびoutput-ニューロン314から来る2つのシナプスのレシーバノードであるoutput+ニューロン346とoutput-ニューロン347の対を有する。
【０６００】
initニューロン348およびstartニューロン349は、積分のプロセスを初期化し、開始することを可能にする。initニューロン348は、初期値を積分器回路310にロードするために積分プロセスの前にトリガされなければならない。startニューロン349は、回路310から第1の値を送出するようにトリガされる。
【０６０１】
図29のデバイスは、前の図を参照しつつ説明されているような構成要素が使用される場合に118個のニューロンを使用して作られる。ニューロンのこの数は、最適化を介して減らすことができる。
【０６０２】
パラメータτ、X∞の様々なセットを使用し、積分ステップサイズdt=0.5とした場合のこのデバイスのシミュレーションの結果が、τの様々な値について図30Aに、またX∞の様々な値について図30Bに、提示されている(X∞=-0.2、X∞=0.1、X∞=-0.4)。図30Aおよび図30Bに示されている曲線C1-C3、C'1-C'3の各点は、output+ニューロン346またはoutput-ニューロン347によって送出される一対のスパイクによって符号化されたそれぞれの出力値に対応する。微分方程式(24)の解X(t)についてこうして得られた曲線は、(解析解を介して)予想されているものに対応することが観察される。
【０６０３】
E.3.二階微分方程式
図31は、微分方程式
【０６０４】
【数１７５】
0006732880.tif 000176
【０６０５】
の解を求める処理デバイスを示しており、
ここで、ξおよびω0は様々な値を取り得るパラメータである。図31に示されているシナプスは、すべて重みweおよび遅延Tsynを有する励起Vシナプスである。この例で操作される値はすべて正であるので、正の値に対する経路と負の値に対する経路とについて異なる2つの経路を用意する必要はない。したがって、正の値に関係する経路のみが含まれる。
【０６０６】
方程式(25)を解くために、図31のデバイスでは、
N=3および係数α0=α2=ω02およびα1=-ξ.ω0とした、図20に示されているような一次結合回路200と、
積分ステップサイズをdtとした、図28に示されているものに似た2つの積分器回路310A、310Bと、
図1を参照しつつ説明されている回路のように、定数X∞を、outputニューロン16によって送出される2つのスパイクの間の時間間隔f(X∞)の形で与えるための回路317(X∞>0)とを使用する。
【０６０７】
定数X∞は、第2の積分器回路310Bのnew inputニューロン320から来るシナプス350のレシーバノードであるrecallニューロン15の各アクティベーションの後に一次結合回路200内の係数α2=ω02に関連付けられているinputニューロン1812のところで与えられる。2つのシナプス351、352は、第2の積分器回路310Bの出力ノードoutput313から係数α1=-ξ.ω0に関連付けられている一次結合回路200の入力ノードinput1811へ、それぞれ、第1の積分器回路310Aの出力ノードoutput313から係数α0=ω02に関連付けられている、回路200の他の入力ノードinput1810へフィードバックを送る。シナプス353は、一次結合回路200の出力ノードoutput203から第1の積分器回路310Aの入力ノードinput311に進む。シナプス354は、第1の積分器回路310Aの出力ノードoutput313から第2の積分器回路310Bの入力ノードinput311に進む。
【０６０８】
図31のデバイスは、第2の積分器回路310Bのoutputニューロン313から来るシナプスのレシーバノードであるoutputニューロン356を有する。
【０６０９】
initニューロン358およびstartニューロン359は、積分のプロセスを初期化し、開始することを可能にする。initニューロン358は、初期値を積分器回路310A、310Bにロードするために積分プロセスの前にトリガされなければならない。startニューロン359は、第2の積分器回路310Bから第1の値を送出するようにトリガされる。
【０６１０】
図31のデバイスは、前の図を参照しつつ説明されているような構成要素が使用される場合に187個のニューロンを使用して作られる。ニューロンのこの数は、最適化を介して減らすことができる。
【０６１１】
パラメータξ、ω0の様々なセットを使用し、積分ステップサイズdt=0.2およびX∞=-0.5とした場合のこのデバイスのシミュレーションの結果が、ω0の様々な値について図32Aに、またξの様々な値について図32Bに、提示されている。図32Aおよび図32Bに示されている曲線D1-D3、D'1-D'3の各点は、outputニューロン356によって送出される一対のスパイクによって符号化されたそれぞれの出力値に対応する。微分方程式(25)の解X(t)についてこうして得られた曲線はここでもまた予想されているものに対応することは明らかである。
【０６１２】
E.4.非線形微分方程式系の解法
図33は、決定論的非周期性フローのモデリングのためにE. Lorenzによって提案された非線形微分方程式系
【０６１３】
【数１７６】
0006732880.tif 000177
【０６１４】
の解を求める処理デバイスを示している(「Deterministic Nonperiodic Flow」、Journal of the Atmospheric Sciences、第20巻、第2号、130〜141頁、1963年3月)。
【０６１５】
モデル化されたシステムがカオス的挙動を示すことを確実にするために、図33のデバイスは、パラメータσ=10、β=8/3、およびρ=28の選択でシミュレートされた。変数は、状態変数X、Y、およびZを得るためにスケーリングされ、上記の形式(11)で表すことが可能であるように各々区間[0,1]内で変化する。システムの初期状態は、X=-0.15、Y=-0.20、およびZ=0.20に設定された。使用される積分ステップサイズはdt=0.01であった。
【０６１６】
図33に示されているシナプスは、すべて重みweおよび遅延Tsynを有する励起Vシナプスである。図面を簡素化するために、1つの経路のみが図示されているが、毎回、変数の正の値に1つの経路、それに並行して、負の値に1つの経路があることは理解されるべきである。
【０６１７】
方程式系(26)を解くために、図33のデバイスでは、
X、Y、およびZの微分に含まれる非線形性を計算するために図27に示されているものに似た2つの符号付き乗算器回路290A、290Bと、
X、Y、およびZの微分を計算するために図20に示されているものに似た3つの一次結合回路200A、200B、200Cと、
システムの状態を変化させる前に3つの微分が計算されるのを待つためにN=3とした場合の図8に示されているもののタイプの符号付きシンクロナイザ回路90と、
微分係数X、Y、およびZから新しい状態を計算するために図28に示されているものに似たステップサイズdtを有する3つの積分器回路310A、310B、310Cとを使用する。
【０６１８】
一次結合回路200Aは、N=2および係数α0=σおよびα1=-σとなるように構成される。inputニューロン181A0は、積分器回路310Aのoutputニューロン313Aから励起され、inputニューロン181A1は、積分器回路310Bのoutputニューロン313Bから励起される。outputニューロン203Aは、inputニューロン910からシンクロナイザ回路90まで及ぶシナプスのエミッタノードである。
【０６１９】
一次結合回路200Bは、N=3および係数α0=ρおよびα1=α2=-1となるように構成される。inputニューロン181B0は、積分器回路310Bのoutputニューロン313Bから励起され、inputニューロン181B1は、積分器回路310Aのoutputニューロン313Aから励起され、inputニューロン181B2は、乗算器回路290Aのoutputニューロン295Aから励起される。outputニューロン203Bは、inputニューロン911からシンクロナイザ回路90に至るシナプスのエミッタノードである。
【０６２０】
一次結合回路200Cは、N=2および係数α0=1およびα1=-βとなるように構成される。inputニューロン181C0は、乗算器回路290Bのoutputニューロン295Bから励起され、inputニューロン181C1は、積分器回路310Cのoutputニューロン313Cから励起される。outputニューロン203Cは、inputニューロン912からシンクロナイザ回路90まで及ぶシナプスのエミッタノードである。
【０６２１】
3つのシナプスは、それぞれ、シンクロナイザ回路90のoutputニューロン920から積分器回路310Aのinputニューロン311Aに進み、回路90のoutputニューロン921から積分器回路310Bのinputニューロン311Bに進み、回路90のoutputニューロン922から積分器回路310Cのinputニューロン311Cに進む。
【０６２２】
乗算器回路290Aのinputニューロン291A1は、積分器回路310Aのoutputニューロン313Aから励起され、inputニューロン291A2は、積分器回路310Cのoutputニューロン313Cから励起される。乗算器回路290Bのinputニューロン291B1は、積分器回路310Aのoutputニューロン313Aから励起され、inputニューロン291B2は、積分器回路310Bのoutputニューロン313Bから励起される。
【０６２３】
図33のデバイスは、積分器回路310A、310B、310Cのoutputニューロン313A、313B、および313Cから来る3つのそれぞれの励起Vシナプスのレシーバノードである3つのoutputニューロン361、362、および363を有する。これら3つのoutputニューロン361〜363は、一対のイベントを送出し、その間隔は、方程式系(26)について計算された解{X(t),Y(t),Z(t)}の値を表す。
【０６２４】
図33のデバイスは、前の図を参照しつつ説明されているような構成要素が使用される場合に549個のニューロンを使用して作られる。ニューロンのこの数は、最適化を介して著しく減らすことができる。
【０６２５】
図34内の点は、各々、それぞれ図33に示されているデバイスのシミュレーションを例示する三次元グラフ内の3つのoutputニューロン361〜363によって送出される3対のスパイクによって符号化された出力値の三つ組み{X(t),Y(t),Z(t)}に対応する。点Pは、シミュレーションの初期化値X(0)、Y(0)、およびZ(0)を表す。他の点は、図33のデバイスによって計算された三つ組みを表す。
【０６２６】
この系は、Lorenzによって説明されているストレンジアトラクターに従って予想通りの挙動を示す。
【０６２７】
F.議論
一組の処理ノードにおけるイベントの間の時間間隔の形態でデータを表現する提案されている計算アーキテクチャは、非常に効率よく高速に初等関数を実行する比較的単純な回路を設計することを可能にすることが示された。一般に、計算の結果は、様々な入力データが提供されるとすぐに利用可能である(わずかなシナプス遅延で可能)。
【０６２８】
これらの回路は、より高度な計算を実行するように組み立てられ得る。これらは、強力な計算構造が構築できる一種の基本構造を形成する。これの例は、微分方程式の解に関して示されている。
【０６２９】
基本回路が組み立てられるときに、使用されるニューロンの数を最適化することが可能である。たとえば、回路のいくつかが、inputニューロン、および/またはoutputニューロンおよび/またはfirst、lastニューロンとともに説明された。実際、基本回路間のインターフェースにおけるこれらのニューロンは、実行される機能を変更することなく排除され得る。
【０６３０】
処理ノードは、典型的には、行列として構成される。これは、FPGAを使用する実装に特に十分役立つ。
【０６３１】
処理デバイスの例示的な実装における、一組の処理ノード、またはこの一組のノードの一部を形成するプログラム可能なアレイ400は、図35に概略が示されている。アレイ400は複数のニューロンからなり、これらはすべてその接続で受信されたイベントに従って同じ挙動モデルを有する。たとえば、挙動は、上で示されている方程式(1)によってモデル化することができ、この場合、アレイの様々なノードに対してパラメータτmおよびτfは同一である。
【０６３２】
プログラミングまたは構成論理回路420は、アレイ400のノードの間の接続のシナプス重みおよび遅延パラメータを調整するためにアレイ400に関連付けられる。この構成は、人工ニューラルネットワークの分野における決まり切った慣例である方式に類似する方式で実行される。この文脈において、接続のパラメータの構成は、実行される計算プログラムに従って、時間間隔とそれらが表す値との間で使用される関係、たとえば、関係式(11)を考慮しながら実行される。プログラムが基本演算に細分される場合、その構成は、上で説明されたもののタイプの回路の組み立ての結果行うことができる。この構成は、マンマシンインターフェースを備える制御ユニット410の制御の下で行われる。
【０６３３】
制御ユニット410の別の役割は、好適な時間間隔で隔てられたイベントの形態で、プログラム可能なアレイ400に入力値を渡し、アレイ400の処理ノードが計算を実行し、結果を送出することである。これらの結果は、ユーザに、またはそれらを使用するアプリケーションに提示されるように制御ユニット410によって素早く復元される。
【０６３４】
この計算アーキテクチャは、超並列計算を高速に実行するのに最適である。
【０６３５】
さらに、このタイプの構成に最適であるアルゴリズムの実行のために、計算のパイプライン構成をとることは比較的容易である。
【０６３６】
上で説明されている実施形態は、本発明を例示したものである。付属の請求項に示されている本発明の範囲から逸脱することなく様々な修正を加えることができる。
【符号の説明】
【０６３７】
10  回路
11、12  Vシナプス
15  recallニューロン
16  outputニューロン
18  処理回路
18  反転メモリデバイス
20  ノード
20  グループ
21  inputニューロン
210、...、21N-1  inputニューロン
21k  inputニューロン
22、24  励起Vシナプス
23  「first」ニューロン
24  Vシナプス
25  「last」ニューロン
26、27  geシナプス
28  Vシナプス
30  accニューロン
31  recallニューロン
32  励起Vシナプス
33  outputニューロン
34  励起Vシナプス
35  励起Vシナプス
40  処理回路
40  メモリ回路
400、...、40N-1  メモリ回路
40k  メモリ回路
41  geシナプス
42  第1のaccニューロン
43  geシナプス
44  第2のaccニューロン
45  geシナプス
46  Vシナプス
47  readyニューロン
470、...、47N-1  readyニューロン
48  recallニューロン
480、...、48N-1  recallニューロン
49  Vシナプス
50  outputニューロン
500、...、50N-1  outputニューロン
50k  outputニューロン
51  geシナプス
52  Vシナプス
60  処理回路
60  符号付きメモリ回路
61  input+ニューロン
62  input-ニューロン
63、64  励起Vシナプス
65  ready+ニューロン
66  ready-ニューロン
67、68  励起Vシナプス
70  recallニューロン
71、72  励起Vシナプス
73、74  励起Vシナプス
75  抑制Vシナプス
76  抑制Vシナプス
77  抑制Vシナプス
78  抑制Vシナプス
79、80  励起Vシナプス
81  output+ニューロン
82  output-ニューロン
84  readyニューロン
85  励起Vシナプス
90  処理回路
90  符号付きシンクロナイザ回路
910、...、91N-1  ニューロン入力
910  inputニューロン
911  inputニューロン
912  inputニューロン
920、...、92N-1  ニューロン出力
920  outputニューロン
921  outputニューロン
922  outputニューロン
91k  inputニューロン
92k  outputニューロン
93k  Vシナプス
94k  Vシナプス
95  syncニューロン
960、...、96N-1  励起Vシナプス
970、...、97N-1  励起Vシナプス
97  Vシナプス
98  シンクロナイザ回路
99  ニューロン
99  output refニューロン
100  処理回路
101、102  入力ノード
101  inputニューロン
102  inputニューロン
103  出力ノード
103  outputニューロン
104  smallerニューロン
105  smallerニューロン
106〜115  シナプス
106  励起Vシナプス
107  励起Vシナプス
108  励起Vシナプス
109  励起Vシナプス
110  励起Vシナプス
111  励起Vシナプス
112  抑制Vシナプス
113  抑制Vシナプス
114  抑制Vシナプス
115  抑制Vシナプス
120  処理回路
121、122  入力ノード
123  出力ノード
124  largerニューロン
125  largerニューロン
126  励起Vシナプス
127  励起Vシナプス
128  励起Vシナプス
129  励起Vシナプス
132  抑制Vシナプス
133  抑制Vシナプス
140  減算回路
141、142  入力ノード
141  inputニューロン
142  inputニューロン
143  出力ノード
143  output+ニューロン
144  output-ニューロン
145  syncニューロン
146  syncニューロン
147  inbニューロン
148  inbニューロン
150、151、154、157〜163  シナプス
150  励起Vシナプス
151  励起Vシナプス
152、153、154  励起Vシナプス
155、156、157  励起Vシナプス
159  抑制Vシナプス
160  励起Vシナプス
161  励起Vシナプス
162  抑制Vシナプス
163  inbニューロン
163  抑制Vシナプス
170  減算器回路
171  zeroニューロン
172〜178  高速Vシナプス
172、173  励起Vシナプス
174、175  抑制Vシナプス
176  Vシナプス
177、178  シナプス
180  回路
180A、180B  累算回路
1810  入力ノードinput+
1810  入力ノードinput-
181A0  inputニューロン
181A1  inputニューロン
181B0  inputニューロン
181B1  inputニューロン
181B2  inputニューロン
181C0  inputニューロン
181C1  inputニューロン
181k  inputニューロン
182k  input-ニューロン
182k  励起geシナプス
183k  抑制geシナプス
184  accニューロン
185  syncニューロン
186  励起geシナプス
188  accニューロン
189  outputニューロン
190  重み付き加算回路
191  励起geシナプス
192  励起Vシナプス
193  励起Vシナプス
198、199  励起Vシナプス
200  一次結合回路
200A、200B、200C  一次結合回路
201  励起Vシナプス
202  励起Vシナプス
203  output+ニューロン
203A  outputニューロン
204  output-ニューロン
205、206  励起Vシナプス
207  「start」ニューロン
208、209  励起Vシナプス
210  Vシナプス
210  回路
210  対数計算回路
211  inputニューロン
212  励起geシナプス
213  firstニューロン
214  抑制geシナプス
215  lastニューロン
216  accニューロン
217  gfシナプス
218  gateシナプス
220  outputニューロン
221  励起Vシナプス
222  励起Vシナプス
230  累乗回路
231  inputニューロン
232  gfシナプス
233  firstニューロン
234  励起gateシナプス
235  lastニューロン
236  抑制gateシナプス
237  励起geシナプス
238  accニューロン
240  outputニューロン
241  励起Vシナプス
242  励起Vシナプス
250  乗算器回路
2511、2512  inputニューロン
252k  励起geシナプス
253k  firstニューロン
254k  抑制geシナプス
2542  geシナプス
255k  lastニューロン
2551、2552  lastニューロン
256k  accニューロン
2561  accニューロン
2562  accニューロン
260  syncニューロン
2611、2612  励起Vシナプス
262  gfシナプス
264  励起gateシナプス
265  gfシナプス
266  励起gateシナプス
268  accニューロン
269  gfシナプス
270  励起gateシナプス
271  抑制gateシナプス
272  励起geシナプス
274  outputニューロン
275  励起Vシナプス
276  励起Vシナプス
2781、2782  線形数列
279  プラトー
2801  指数関数的変化
281  指数関数的変化
290  乗算器回路
290A、290B  符号付き乗算器回路
291k  input+ニューロン
292k  input-ニューロン
2921、2922  input-ニューロン
291A1  inputニューロン
291A2  inputニューロン
291B1  inputニューロン
291B2  inputニューロン
293k、294k  Vシナプス
2931、2941  Vシナプス
295  output+ニューロン
295A  outputニューロン
295B  outputニューロン
296  output-ニューロン
297、298  励起Vシナプス
300〜303  signニューロン
302  signニューロン
305  抑制Vシナプス
306  抑制Vシナプス
307  抑制Vシナプス
308  抑制Vシナプス
310  積分回路
310A、310B、310C  積分器回路
311  input+ニューロン
311A、311B、311C  inputニューロン
312  input-ニューロン
313  output+ニューロン
313A、313B、313C  outputニューロン
314  output-ニューロン
315  output+ニューロン
316  output-ニューロン
317  回路
318  initニューロン
319  startニューロン
320  new inputニューロン
321〜332  Vシナプス
323、324  Vシナプス
325  シナプス
326、327  シナプス
328、329  シナプス
330、331  シナプス
341、342  シナプス
346  output+ニューロン
347  output-ニューロン
348  initニューロン
349  startニューロン
350  シナプス
351、352  シナプス
353  シナプス
354  シナプス
356  outputニューロン
358  initニューロン
359  startニューロン
361、362、363  outputニューロン
400  アレイ
410  制御ユニット
420  プログラミングまたは構成論理回路
【図１】
0006732880.tif 000182
【図２】
0006732880.tif 000183
【図３】
0006732880.tif 000184
【図４】
0006732880.tif 000185
【図５】
0006732880.tif 000186
【図６】
0006732880.tif 000187
【図７（ａ）】
0006732880.tif 000188
【図７（ｂ）】
0006732880.tif 000189
【図８】
0006732880.tif 000190
【図９】
0006732880.tif 000191
【図１０】
0006732880.tif 000192
【図１１】
0006732880.tif 000193
【図１２】
0006732880.tif 000194
【図１３】
0006732880.tif 000195
【図１４】
0006732880.tif 000196
【図１５】
0006732880.tif 000197
【図１６】
0006732880.tif 000198
【図１７】
0006732880.tif 000199
【図１８】
0006732880.tif 000200
【図１９】
0006732880.tif 000201
【図２０】
0006732880.tif 000202
【図２１】
0006732880.tif 000203
【図２２】
0006732880.tif 000204
【図２３】
0006732880.tif 000205
【図２４】
0006732880.tif 000206
【図２５】
0006732880.tif 000207
【図２６】
0006732880.tif 000208
【図２７】
0006732880.tif 000209
【図２８】
0006732880.tif 000210
【図２９】
0006732880.tif 000211
【図３０Ａ】
0006732880.tif 000212
【図３０Ｂ】
0006732880.tif 000213
【図３１】
0006732880.tif 000214
【図３２Ａ】
0006732880.tif 000215
【図３２Ｂ】
0006732880.tif 000216
【図３３】
0006732880.tif 000217
【図３４】
0006732880.tif 000218
【図３５】
0006732880.tif 000219