JP2008545197A - 神経モデリングのためのアドレス機構及び特殊目的プロセッサを使用する脳ベースの装置 - Google Patents

神経モデリングのためのアドレス機構及び特殊目的プロセッサを使用する脳ベースの装置 Download PDF

Info

Publication number
JP2008545197A
JP2008545197A JP2008519506A JP2008519506A JP2008545197A JP 2008545197 A JP2008545197 A JP 2008545197A JP 2008519506 A JP2008519506 A JP 2008519506A JP 2008519506 A JP2008519506 A JP 2008519506A JP 2008545197 A JP2008545197 A JP 2008545197A
Authority
JP
Japan
Prior art keywords
neural
core
output
synaptic
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008519506A
Other languages
English (en)
Inventor
ジェイムズ エイ スヌック
リチャード ダブリュー シャーマーホーン
Original Assignee
ニューロサイエンシーズ リサーチ ファンデーション インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ニューロサイエンシーズ リサーチ ファンデーション インコーポレイテッド filed Critical ニューロサイエンシーズ リサーチ ファンデーション インコーポレイテッド
Publication of JP2008545197A publication Critical patent/JP2008545197A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks

Landscapes

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

Abstract

特殊目的プロセッサ(SPP)は、現場でプログラム可能なゲートアレー(FPGA)を使用して、多数の神経素子をモデリングする。FPGA、又は同様のプログラム可能な装置は、前シナプス計算、後シナプス計算及び塑性計算を並列に行なう複数のコアを有することができる。各コアは、神経モデルの複数の神経素子を実施することができる。
【選択図】 図1A

Description

本発明は、神経モデリング、特に、脳ベースの装置と共に使用できる神経モデリングに係る。
優先権の請求:本出願は、参考としてここに援用する2005年6月28日に出願された“Addressing Scheme for Neural Modeling and Brain-Based Devices Using Special Purpose Processor”と題する米国プロビジョナル特許出願第60/694,628号に対する優先権を請求する(代理人整理番号第NSRF−01006US1号)。
又、本出願は、参考としてここに援用する2006年6月27日に出願された“Addressing Scheme for Neural Modeling and Brain-Based Devices Using Special Purpose Processor”と題する米国特許出願第11/426,896号に対する優先権を請求する(代理人整理番号第NSRF−01006US3号)。
自律的に振舞い、インテリジェントな仕方でタスクを自動化しそして人間の知識を広げるように意図されたインテリジェントシステムが開発されている。これらのシステムは、次のように各々知られている3つの個別の技術分野に本質的に基づいて設計されモデリングされる。
(1)人工知能(AI)
(2)人工神経網(ANN)
(3)脳ベースの装置(BBD)
AI及びANNをベースとするインテリジェントシステムは、ロボットに対しチェスをする範囲までのタスクを遂行するようにプログラムされたデジタルコンピュータを含む。AIアルゴリズムは、ロジックをベースとするもので、詳細なソフトウェアインストラクションで実施される複雑なアルゴリズムを実行するように予めプログラムされる。ANNは、生物学的ニューロンを著しく簡単化した抽象物で、神経系構造(即ち、神経解剖学)を考慮しておらず、希望の結果を得るために監督又は教示信号をしばしば必要とするものである。他方、BBDは、異なる原理及び異なる解決策に基づいて、インテリジェントシステムを開発するものである。
BBDは、基本的な神経生物学的原理に基づくもので、知覚及び学習の脳基礎が生物において見つかった後にモデリングされる。BBDは、シミュレーションされた脳又は神経系を、振舞い及び形状記憶を制御する詳細な神経解剖学及び神経力学に合体するものである。又、BBDは、環境における能動的感知及び自律運動を許す形態学又は表現型と称される物理的インスタンスも有する。BBDは、生物と同様に、環境から受け取る未分類の信号をカテゴリーへと組織化する。著しい環境事象が生じたときには、バリューシステムと称されるシミュレーションされた神経エリアを有するBBDが、装置の振舞いを適応させる。
ロジックベースのインテリジェントシステム及びBBDが動作する原理は、著しく異なる。ロジックベースのマシンは、それらがパワフルであるほど、新規な状態に有効に対処せず、又、大きなデータセットを同時に処理しない。新規な状態は、それらの性質により、前もってプログラムすることができない。というのは、これらは、典型的に、予想されない変化する数の要素及び不測の事態で構成されるからである。更に、広いパラメータ及び変化するコンテクストを伴う状態は、プログラミングに実質的な困難を招き得る。又、多くのアルゴリズムは、拡張性に乏しく、これは、入力変数の数が増加するにつれて、それらを実行するに要する時間が指数関数的に増加することを意味する。
本発明の一実施形態は、複数の神経素子を同時にモデリングするためのチップを含むことのできる特殊目的プロセッサ(SPP)である。このSPPは、現場でプログラム可能なゲートアレー(FPGA)を使用して、多数の神経素子をモデリングすることができる。FPGAの使用は、モデリングされる神経素子の比較的大きな入力及び出力接続状態での並列処理を許す。説明上、FPGAは、神経素子を実施することのできる再構成可能なロジック装置のような、任意の構成可能なロジック装置である。本発明に使用されるFPGAは、例えば、カリフォルニア州サンノセのXilinx社から入手できるVirtexTMシリーズXilinxTMFPGAである。
現場でプログラム可能なゲートアレーアーキテクチャーは、多数の他の、より電力効率のよいコンパクトな電子装置において実施するのが適している。これら装置は、特定用途向け集積回路(ASIC)及び他の適用可能な技術を含む。一実施形態において、ASICは、本発明を実施するのに使用される。
本発明の実施形態は、SPP、FPGA、及び/又はASICを使用して実施されるものとしてここに説明するが、本発明は、これらの実施形態に限定されないことを理解されたい。関連技術の当業者であれば、本発明は、いかなるデータ処理モジュール、装置又はアーキテクチャーを使用しても実施できることが明らかであろう。これは、例えば、特定用途向け集積回路(ASIC)を含むが、これに限定されない。
神経モデルは、比較的多数の神経素子を含むことができる。各々の神経素子は、それらの入力に基づいて一連のプロセスを実行することができる。一連の各プロセスの周期は、「エポック(epoch)」と称されるサイクルタイムとして働く。神経素子は、エポック内で入力の各セットに対してプロセスのセットを遂行し、それらの出力を生成すると共に、それらが次のエポックに利用できることを学習する。プロセスは、前シナプス計算102a、後シナプス計算102b、及び塑性(plasticity)計算102cを含むことができる。コアは、予めロードされた係数を使用して、特定形式の神経素子をモデリングすることができる。
図1Aに示すように、SPP100は、プロセスを実施できる多数の神経処理ユニット102(「コア」とも称される)を有することができる。コア102により実施されるプロセスは、前シナプス計算102a、後シナプス計算102b、及び塑性計算102cを含むことができる。
コアは、FPGAにおけるリソースの1つ以上のグループを必要に応じて使用することができる。以下に述べるように、コアは、FPGA上に種々の仕方で配列できるローカルメモリ、ルックアップテーブル、比較器及び乗算器のようなリソースを使用することができる。一実施形態では、各コアは、FPGA上に複数の構成可能なロジックブロック(CLB)を使用する。
SPP100は、これらプロセスの結果を、次のエポックのためにオンチップ又はオフチップメモリに記憶することができる。一実施形態において、エポック内のタイムスライスは、各神経処理ユニットが複数の神経素子をモデリングするのを許す。モデリングされる神経素子の合計数は、(コアの数)*(エポックにおけるタイムスライスの数)により与えることができる。使用されるタイムスライスが多いほど、シミュレーションが大きくなり、エポックが長くなり、且つ要求される神経素子アドレスが大きくなる。
神経モデリングにおいて、各神経素子は、多数の入力を有すると考えることができる。入力は、積の和のプロセスで合成することができ、各入力は、独特の重み係数で乗算される。この積の和のプロセスは、前シナプス計算の一例である。この積の和の出力は、単一の値となるが、後シナプス処理と称される一連の計算に通されて、単一の後シナプス処理(PSP)出力を発生することができる。更に、アクティビティに依存するシナプスプロセス及び値に依存するシナプスプロセスを含む一連の塑性計算を遂行することができる。これらの塑性計算は、次のエポックに対して新たに学習した値を有するように重み値を変更することができる。
各神経素子のPSP出力は、次のエポックにおいて、多数の他の神経素子の入力として接続することができる。図1Bは、コア120の入力122及び出力124を示す図である。
図2は、SPPを使用する神経モデルの一例を示す。コア200は、モデル特有形式の神経ユニットである。例えば、コア0は、視覚ニューロンをモデリングすることができ、コア1は、聴覚ニューロンをモデリングすることができ、コア2は、海馬ニューロンをモデリングすることができ、等々である。コア200は、コアの神経形式に対して独特の係数を有することができ、コアによりモデリングされるニューロンの形式を定義する上で助けとなる。FPGAにおいて、係数に依存するファンクションは、ルックアップテーブル(LUT)として実施することができる。又、これらのLUTは、異なる神経形式に対して異なるものである。
一実施形態において、係数は、異なるタイムスライス間で変化しない。従って、256個のタイムスライスがある場合には、各コアは、256個の同じ形式の神経素子をモデリングすることができる。より多くの同じ形式の神経素子が望まれる場合は、(所与の神経形式のコアの数)*(エポックにおけるタイムスライスの数)により与えられる特定神経形式の神経素子の合計数と共に複数のコアを使用することができる。
インチップメモリ204及びオフチップメモリ204、206は、現在及び初期重み、例えば出力記憶テーブル(OST)でのPSP出力、及び接続テーブルを記憶することができる。各神経素子には、手前のエポックの他の神経素子からの出力である特定入力を関連させることができる。一実施形態では、ピンポンバッファのようなメモリを使用して、次のエポックにおける入力として与えられる全ての神経素子の出力を記憶する。一実施形態では、2つのテーブルを使用して出力が記憶され、一方のテーブルは、最後のエポックからの出力を含み、そしてもう一方のテーブルは、現在エポックからの出力で埋められる。新たなエポックがスタートすると、テーブルのファンクションをスイッチすることができる。
異なるタイムスライスにおける神経素子は、次のエポックに対するPSP出力を、現在タイムスライスにおいてコアへ直ちに送るのではなく、メモリを使用して記憶するように相互接続することができる。一実施形態では、各神経素子に対する入力の数は、脳の高度に接続された神経構造を良好にモデリングするために、100以上(一実施形態では256)の比較的大きな数である。一実施形態では、神経素子の出力は、次のエポックにおいて、100以上(一実施形態では256)の比較的多数の神経素子にも送られる。
又、神経素子には、入力に対して重みをロードすることもできる。一実施形態では、現在重みを、最後のエポックのPSP出力である入力値と共に、神経素子へロードすることができる。重みは、塑性計算によって変更し、そして次のエポックに使用するように更新することができる。一実施形態では、各重みが単一の神経素子により使用され、従って、単一の重みテーブルしか必要とされず、これは、神経素子により再びアクセスされる前に更新することができる。一実施形態では、現在重みが神経素子ごとに異なり、従って、各コアは、(神経素子当たりの重みの数)*(タイムスライスの数)により与えられる多数の重みを使用し、これは、たとえ重みが他のコアに使用されなくても、コアの外部、例えば、BRAM(バッファランダムアクセスメモリ)に重みを記憶することが、より可能となるようにする。
一実施形態では、塑性計算に使用される初期の重みが、初期重みテーブルから与えられる。或いは又、初期重みは、ローカルで記憶することもできる。初期重みがローカルで記憶される場合には、ローカルで記憶される初期重みデータの量を最小にする構成を使用して、初期重みを選択することができる。
接続テーブルは、接続の指示を記憶することができる。一実施形態において、接続は、最後のエポックの指定の神経素子からの出力を現在エポックの指定の神経素子へ入力として送信すべきであることを指示する。出力テーブルは、出力テーブルの位置が出力のソースを指示するように配列することができる。接続テーブルの素子は、出力テーブルに対するポインタでよい。一実施形態では、接続テーブルは、神経素子ごとに出力テーブルに対してm個のポインタを有し、ここで、mは、神経素子当たりの入力の数である。
一実施形態では、コアには、最初に、係数及びLUTがロードされる。次いで、各エポックの各タイムスライスに対して、そのタイムスライスの神経素子の各々に入力及び現在重みがロードされる。エポック内では、例えば、(コア0、タイムスライス0)、(コア1、タイムスライス0)・・・(コア255、タイムスライス0)、(コア0、タイムスライス1)・・・(コア254、タイムスライス255)、(コア255、タイムスライス255)のような順序でロードを進めることができる。PSP出力及び更新された重みは、神経素子が処理を終了した後にメモリへ送出することができる。神経素子からメモリへのPSP出力及び更新された重みの転送は、ロードと同じ順序で行うことができる。一実施形態では、コアは、1つのタイムスライスについてロードすることができ、一方、他のコアは、手前のタイムスライスについて計算を行なう。例えば、コア12は、タイムスライス10についてロードすることができ、一方、コア245は、タイムスライス9について依然計算を行なうか又はメモリへの記憶を待機する。一実施形態では、システムは、少なくとも、新たなエポックに対する処理へ移行する前に出力記憶テーブルが完全に埋められるまで待機する。
図1Dに示すように、SPP142を使用して脳ベースの装置(BBD)140を制御することができる。一実施形態では、神経ユニットに対する幾つかの入力値をセンサ144から与えることができる。センサ信号、例えば、ビデオ、オーディオ、ホイール、モータ、触覚、サスペンション、加速度計、ジャイロ及び/又は電力管理センサからの信号を処理するか、又は適当な形式の神経素子へ入力として直接的に供給することができる。例えば、次のエポックに対する出力記憶テーブルのある部分は、センサデータであってもよいし、又はセンサデータから導出されてもよい。更に、ある出力記憶テーブル値は、アクチュエータ146を制御するように直接使用してもよいし、又はそのように処理してもよい。このように、SPPは、ロボット又は他のBBD装置を制御することができる。
本発明のBBDは、その環境を探査して、それを経験しながら適応性振舞いを開発することのできる物理的にインスタンス生成される移動装置を含むことができる。又、BBDは、移動装置をその実世界環境において誘導するために移動装置に配置されるか又はリモート配置されるSPPのような神経モデルを含むこともできる。
BBDは、SPPにおいて実施される神経モデルのような神経モデルを使用して環境について学習することにより、その振舞いを開発するか又は適応させることができる。移動装置は、その環境において自律的に移動することができる。BBDは、センサ信号を、SPPにおいて実施される神経モデルのような神経モデルへの入力として使用し、神経モデルがBDDを制御できるようにする。例えば、移動装置は、視覚的特徴、例えば、同じ色を共有し、且つ個別の視覚的特徴、例えば、形状を有する複数の物体、例えば、赤の方形・対・赤の三角形、に接近してそれを見ることができる。移動装置は、学習経験を通して条件付けされた状態となり、1つのターゲット物体、例えば、赤のダイヤモンドを、複数の気の散る又は非ターゲット物体、例えば、その視界のシーンの赤の方形及び緑のダイヤモンドより好むようになる。移動装置は、可聴トーン又は他の刺激に応答してそれ自身をターゲット物体に向けることにより、その環境において移動しながらこの好みを行動的に学習することができる。
脳ベースの装置は、広範囲の環境条件とのリアルタイム対話について種々様々な多モードの能動的及び/又は受動的センサ入力を利用することができる。センサ入力は、全電磁スペクトルにわたる入力で単眼及び両眼視野の両方を包囲することができる。他のセンサは、触覚、嗅覚、聴覚、音響及び熱を含むが、これらに限定されない。例えば、脳ベースの装置は、視覚及び聴覚感知入力を神経モデルに与えることのできる視覚用のカメラ及びマイクロホンのようなセンサ、並びに移動のためのエフェクタ及びホイールのようなアクチュエータを有することができる。又、表面上を移動するときにその表面の反射率の差を感知することにより障害物を回避し、又、環境内でのBBDの反射的ターンをトリガーするための赤外線(IR)センサを有することもできる。
種々の前シナプス計算、後シナプス計算及び塑性計算を使用することができる。神経モデルは、以下に述べる例において前シナプス計算、後シナプス計算、及び塑性計算に限定されるものではない。
図3Aは、コア300の一例を示す実施形態である。この例において、コア300は、前シナプス計算302、後シナプス計算304及び塑性計算306を含む。一実施形態において、塑性計算306は、アクティビティ依存シナプスアクティビティ306a、及び値依存シナプスアクティビティ306bを含むことができる。又、図3Aは、情報をコア300へどのように通過できるかも示す。この実施形態では、塑性計算306は、後シナプス計算304からPSP出力信号Snewを受け取る。塑性計算306は、このSnew及び値遅延項dを使用して、重みテーブルの重みに対して更新を発生し、これは、メモリへ書き戻すことができる。前シナプス計算302は、m個の重み及びm個の入力値を使用して、前シナプス計算における和を求めることができる。これは、次いで、後シナプス計算304へ送られ、この計算は、前シナプス計算302の出力と、最後のエポックに対して既に記憶されたPSP出力(これは、ローカルに記憶できる)とを使用する。コア300からのPSP出力は、出力記憶テーブルへ返送することができ、そして変更された重みは、重みテーブルへ書き戻すことができる。
図3Bは、コア320の実施を示す。m個の入力データ及びm個の重みが乗算ユニット322を通してループにされ、アキュムレータ324において和が求められる。ブロック326の後シナプス処理は、一実施形態では、乗算及びシフト或いは2回の乗算と、比較及びルックアップテーブル動作を含むことができる。後シナプス計算328は、単一テーブルルックアップと、m回の減算、m回の比較、m回までの加算を含むことができる。重みデータは、次のエポックのためにメモリ330へ書き込むことができる。PSP出力は、ローカル記憶し、出力記憶テーブルへ転送して、将来、他の神経素子により使用することができる。
図4は、SPPを使用するBBDの一実施形態のオペレーションのフローチャートである。ステップ400において、神経刺激を開始する。ステップ402において、センサデータが受け取られる。センサデータは、神経素子に直接供給することもできるし又はその入力を与えるように処理することもできる。ステップ403において、コマンドが受け容れられる。これらのコマンドは、放棄コマンド、無効化コマンド、等を含み、これは、各エポックの終了後に行うことができる。ステップ404において、BPPがステップ405で停止されるかどうかのチェックが行われる。ステップ406、407及び408は、1つのタイムスライスに対する計算を示す。ステップ406では、前シナプス計算及び後シナプス計算が各神経処理ユニットで行われる。ステップ407では、接続の重みが更新される。ステップ408では、出力及び変更された接続重みがメモリへ送られる。上述したように、これらのステップ406−408は、各コアに対して並列に行うことができる。ステップ409において、エポックに残留タイムスライスがある場合には、次のタイムスライス計算が始まる。ステップ406−408は、エポックのタイムスライスごとに繰り返される。ステップ412において、PSP出力は、BBDのアクチュエータに対する信号を直接与えることもできるし、又はそのように処理することもできる。
種々の実施形態において、PSP出力は、平均発射(firing)レート“s”である。一実施形態では、sは、0(静止)から1(最大発射)までの範囲である。神経素子の状態は、その現在状態及び他の神経素子からの貢献の関数として更新することができる。
各神経素子のm個の入力は、s1からsmとして指示することができる。s値は、データの非サインのバイトである。各神経素子のm個の重みは、c1からcmとして指示することができる。c値は、単一のサインされたバイトである。前シナプス処理は、次の式で表わすことができる。
Figure 2008545197
但し、tは、現在エポックを表わす。これは、VirtexTM−IIXilixTMFPGAにおける18x18乗算器のような乗算器を使用することにより実施することができる。
後シナプス処理は、次の式で表わすことができる。
Figure 2008545197
但し、A(t)は、上述した現在の前シナプス出力であり、Snewは、神経素子の現在PSP出力値であり、Soldは、最後のエポックにおける神経素子のPSP出力値であり、gは、倍率係数であり、そしてtは、持続係数である。tanh(x)は、−1ないし1の範囲への圧縮を与える。
φ(x)は、次のように表わされるトリガー関数である。
Figure 2008545197
但し、ギリシャ文字のデルタは、トリガー係数である。
トリガー関数φ(x)は、tanh(x)関数と共に、Snewが0と1との間であることを保証する。Snew値は、出力記憶テーブルへ送信することができる。又、Snew値は、次のエポックにおいてSoldとして使用すべくローカル記憶することもできる。
後シナプス処理は、FPGAにおいて次のように実施することができる。Sold値は、持続パラメータωで乗算することができる。ωが級数1/2、1/4、1/8・・・の値に制限されると仮定すれば、乗算は、シフトで実施することができる。乗算(又はシフト)の結果は、前シナプス処理からのA(t)値に加算することができる。加算の結果は、VirtexTM−II XilixTMFPGAの18x18乗算器のような乗算器において倍率係数gで乗算されて、temp値を生成することができる。このtemp値は、LUT1として実施される関数φ(tanh(temp))への入力として使用されて、Snewを決定することができる。従って、次のようになる。
Figure 2008545197
但し、Sold>>Wは、Wスペースだけ右シフトであり、これは、ωSoldと同じであり、ここで、ω=2-wである。
或いは又、tempを、定数であるtanh-1(δ)と比較し、そしてtemp≧tanh-1(δ)である場合には、temp値を、LUT1として実施される関数tanh(temp)への入力として使用して、Snewを決定することができる。さもなければ、Snew=0である。この別の実施形態は、異なる神経形式のコア間でのLUT1の共有を許すことができる。従って、次のようになる。
Figure 2008545197
塑性処理は、次のように表わされる。
Figure 2008545197
但し、Δcj=ε(cj(0)−cj(t))は、忘却ルールであり、ηSF(S)は、値独立学習ルールであり、そしてηSF(S)V(d)は、値依存学習ルールである。cj(0)は、j番目の入力に対する初期重みであり、そしてcj(t)は、j番目の入力に対する現在重みである。εは、減衰定数であり、ηは、学習率定数であり、Sは、後シナプス出力、例えば、Snewである。
F(S)は、次のように表わすことができる。
Figure 2008545197
但し、θ1及びθ2は、スレッシュホールド定数で、(0<θ1<θ2<1)であり、κ1及びκ2は、傾斜定数であり、そしてρは、飽和パラメータで、全てのコアに対して6である。
V(d)は、値学習の強さに関係した関数である。この関数又はそれに関連したルックアップテーブルは、必要に応じて調整することができる。
一実施形態において、V(d)は、次のようにあらわされる。
Figure 2008545197
但し、dは、値依存事象の開始以来のエポックの数のような遅延である。値学習が行なわれないときには、dは、0であるように定義することができ、V(d=0)は、1であるように定義される。値学習中のd値は、1からdmaxまでの範囲であり、ここで、dmax*(エポック周期)は、値学習周期である。従って、一例において、エポックは、10msであり、そして望ましい値学習周期は、900msであり、従って、dmaxは、90である。f(d)は、ほぼ0で開始し、1のピークに到達し、そしてdmaxにおいてほぼ0に復帰する関数である。f(d)は、値学習のオペレーションの開始を遅延させそしてそれを拡散させるのに使用できる。f(d)について考えられる1つの級数は、ポイントf(dmax/9)= 0.1, f(2dmax/9)= 0.1, f(3dmax/9)= 0.3, f(4dmax/9)= 0.7, f(5dmax/9)= 1.0, f(6dmax/9)= 1.0, f(7dmax/9)= 0.7, f(8dmax/9)= 0.3, f(dmax)= 0.1を含む曲線によって定義できる。
Figure 2008545197
Figure 2008545197
一実施形態において、LUT3ルックアップ及び乗算は、Value_Enabledフラグがセットされないときに行なわれ、従って、処理時間、ひいては、潜在的にエポック長さは、もはや値学習周期の間にはない。特定の神経形式が値学習を実施しないようにすることが望まれる場合には、これら神経形式のコアは、ダミー値を含むLUT3を有することができる。
m個の重みの各々について、忘却ルール部分は、現在の重みから係数Eを減算し、この減算値が元の重みより小さいかどうかチェックし、次いで、元の重み又は減算値の大きい方を忘却ルール部分に加算することにより、近似できる。この近似は、m個の重みの各々について、乗算ではなく、減算及び比較しか必要としない。従って、次のようになる。
Figure 2008545197
Value_Enabledフラグがセットされないときには、dは、0の値をもつことができ、そしてLUT3[d=0]は、1の値をもつことができ、従って、LUT2[S]*LUT3[d=0]=LUT2[S]となり、これは、値独立の学習ルールを与える。同様に、LUT3[x]は、値学習を行なわないコアにおける全てのxについて1となる。LUT3のサイズは、学習周期のエポックの合計数より少ない値を使用することにより小さく保持することができる。一実施形態において、値学習の開始以来のエポックのグループは、同じd値を有することができる。例えば、エポック1−10は、d=1に対応することができ、エポック11−20は、d=2に対応することができ、等々である。
各コアに対して独特の係数は、後シナプス倍率係数であるw(又はW)及びg、後シナプス計算のためのφスレッシュホールド及びtanhルックアップテーブル(LUT1)を含むことができる。塑性関数については、コア特有の変数は、F*nルックアップテーブル(LUT2)、減衰定数E、及び値学習に関連した変数、例えば、LUT3である。これらの計算を実施するための例示的コードがアペンディックスIに示されている。
上述した例は、SPPの神経モデルに位相情報を使用するものではない。これは、計算を簡単にすると共に、コアをより高速で動作し、且つより少数のFPGAリソースの使用を許すことができる。一実施形態では、SPPは、位相情報を考慮し及び/又は電圧独立、電圧依存、及び位相独立のシナプスコネクタの貢献を区別する神経モデルである。
PSP出力値の各々に位相を関連付けることができる。例えば、位相(p)は、0から2πの範囲の角度によりニューロンユニットのアクティビティの相対的タイミングを表わす個別の値に分割することができる。5ビットを使用して位相をエンコードする場合には、32の個別の位相をエンコードすることができる。一実施形態において、各神経素子の出力は、s値をエンコードするためのバイト及びp値をエンコードするためのバイトを含むことができる。s及びp値は、SPPにおいて対として転送することができ、出力記憶テーブルの記憶要件、及びPSP出力に対する送信要件が実際上倍増される。又、p値を使用したときには、コアにおける前シナプス計算、後シナプス計算及び塑性計算も複雑化される。SPPに使用するように適応させることのできる位相依存の前シナプス計算、後シナプス計算及び塑性計算の例が、参考としてここに援用するSeth氏等の論文“Visual Binding Through Reentrant Connectivity and Dynamics Synchronization in a Brain-based Device”, Cerebral Cortex V14 N11、第1185−1199ページに見られる。
LUTを決定するための係数を含む例示的係数を、異なる神経形式についてテーブル1及び2に示す。
テーブル1:ニューロンユニットパラメータ
Figure 2008545197
テーブル2:解剖学的突出及び接続形式の特性
Figure 2008545197
図1Cは、環境においてBBDの振舞いを誘導することのできる神経モデルの領域的及び機能的神経解剖構成を例示する図である。これらの領域は、SPPのコアとして実施することができる。神経モデルは、哺乳類の神経系の解剖学及び生理学において、遥かに少数のニューロン及びあまり複雑でないアーキテクチャーで、モデリングできることが明らかであろう。神経モデルは、人間の脳の類似皮質及び皮質下領域に基づいて表示された多数の神経エリアを含むことができる。従って、図1Cは、V1、V2、V4、IT、S、A−左、マイク−左、A−右、マイク−右、及びCと表示された各神経エリアを示し、そのアクティビティがBBDのトラッキングを制御する。各神経エリアV1、V2、等は、ニューロンのローカルポピュレーションを各々表わす異なる形式のニューロンユニットを含む。図1Cに示された各楕円(「トラッキング」を除く)は、多数のニューロンユニットを各々有する異なる神経エリアを示す。
又、図1Cの神経解剖構成は、神経モデル全体にわたって種々の突出Pも概略的に示している。ある突出は、1つの神経エリアから別の神経エリアへ「フィードフォワード」することができ、例えば、突出P1は、神経エリアV1から神経エリアV2へのものである。又、突出Pは、神経エリア間の「リエントラント」でもよく、例えば、神経エリアITから神経エリアV4へのリエントラント突出P2、及び神経エリアV4から神経エリアV2へのリエントラント突出P4がある。“X”でマークされたリエントラント突出Pは、以下に詳細に述べる「傷害」実験中に神経モデルから除去されたものである。更に、突出Pは、図1Cの凡例で示された特性を有し、それらは、(1)「興奮電圧独立」、(2)「興奮電圧依存」、(3)「塑性」、(4)「抑制」、及び(5)「値依存」である。
図1Cに示す神経モデルは、4つのシステム、即ち視覚システム、トラッキングシステム、聴覚システム、及び値システムで構成することができる。他の入力及び出力をもつ他のシステムも使用できる。
図1C B視覚システム、神経エリアV1、V2、V4、IT
視覚システムは、霊長類の後頭側頭又は腹側皮質経路においてモデリングすることができ、そして神経エリアV1→V2→V4→ITを含み、ここで、次々のエリアにおけるニューロンは、下側側頭皮質において各フィールドがほぼ全視界をカバーするまで漸次より大きな感受性フィールドを有する。カメラからの視覚映像は、色及び縁についてフィルタリングすることができ、そしてフィルタリングされた出力は、エリアV1における神経アクティビティに直接作用する。V1は、サブ領域(図示せず)に分割することができ、その各々は、緑(V1−緑)、赤(V1−赤)、水平線セグメント(V1−水平)、垂直線セグメント(V1−垂直)、45度線(V1−対角−右)、及び135度線(V1−対角−左)に対して優先的に応答するニューロンユニットを有する。この視覚システムは、視覚システム内及び視覚システムと他の皮質エリアとの間の高レベル相互作用を分析するための計算上扱い易い基礎を与える。
神経エリアV1のサブ領域は、神経アリアV2の対応サブ領域へトポグラフ的に突出することができる。エリアV2におけるニューロンユニットの各フィールドは、狭いものであり、カメラの映像からのピクセルに厳密に対応する。神経エリアV2は、そのサブ領域内及びその間に興奮及び抑制の両リエントラント接続をもつことができる。各V2サブ領域は、それに対応するV4サブ領域にトポグラフ的に広範囲に突出することができ、従って、神経エリアV4=sの各フィールドは、神経エリアV2のものより大きい。神経エリアV4のサブ領域は、非トポグラフ的リエントラント接続でそれに対応する神経エリアV2サブ領域へ突出して戻ることができる。エリアV4のサブ領域内及びその間のリエントラント接続は、エリアV2の場合と同様である。V4は、次いで、神経エリアITへ非トポグラフ的に突出し、従って、神経エリアITにおける各ニューロンユニットは、3つの異なるV4サブ領域からランダムに選択された3つのV4ニューロンユニットから入力を受け取ることができる。従って、ITのニューロンユニットが視覚入力の組み合せに応答する間に、所与のITニューロンユニットへのシナプス入力のレベルが非常に均一であり、これは、個々のITニューロンユニットのアクティビティが全アクティビティパターンを支配するのを防止する。ITニューロンユニットは、その可塑接続を経て他のITニューロンユニットへ突出し、そして非トポグラフ的リエントラント接続を経て神経エリアV4へ戻る。
図1C−トラッキングシステムB神経エリアC
トラッキングシステムは、BBDが聴覚及び視覚刺激に向くのを許す。神経エリアC(上丘と同様の)のアクティビティは、BBDがそのカメラ目線をどこに向けるか指令することができる。BBDにおけるトラッキングは、エリアCにおけるニューロンユニットのアクティビティのベクトル加算に基づいてホイール又はトラックへの信号により達成することができる。エリアCの各ニューロンユニットは、その好ましい方向に一致する各フィールドを持つことができ、そしてそのエリアは、アクティビティが主としてエリアCの左側にある場合に、左に向いたターンを引き起こすBBDホイールへの信号が発生されるようなトポグラフ的構成を有する。聴覚神経エリア(A−左及びA−右)は、エリアCの各同側への強い興奮性突出を有し、BBDを音源に向けさせる。神経エリアV4は、トポグラフ的にエリアCへ突出し、そのアクティビティは、BBDがその目線を視覚物体(例えば、赤い三角形)の中心に向けるようにさせる。神経エリアIT及び値システムSの両方がエリアCに突出し、経路IT→C及びIT→Sにおける可塑接続は、突起認知カテゴリーを反映するアクティビティのバイアスを生成することによりターゲットの選択を容易にする(以下の値システムを参照)。以下に述べるように、コンディショニング又はトレーニング段階の前には、バイアスがないので、BBDは、その目線を主としてその環境内において2つの物体(例えば、赤の三角形と赤の方形)の間に向ける。視覚物体(例えば、赤の三角形)を好むことを学習した後に、可塑接続の強さが変化すると、好ましい物体の位置に対応するエリアCの部分に大きなアクティビティを生じさせる。
図1C B聴覚システムB神経エリア、マイク−左、マイク−右、A−左、A−右
このシステムは、マイクロホンからの入力を、刺激されたニューロンユニットアクティビティへ変換する。一実施形態において、神経エリア「マイク−左」及び「マイク−右」は、それに対応するマイクロホン16、18が指定の周波数範囲内の充分な振幅の音を検出したときに各々アクチベートすることができる。「マイク−左」/「マイク−右」は、エリア「A−左」/「A−右」のニューロンユニットへ突出する。片側からの音は、聴覚システムの同側にアクティビティを生じさせ、これは、次いで、エリアCの同側にアクティビティを生じさせ、BBDを音源に向けさせる。
図1C 値システムB神経エリアS
シミュレーションされた値システムにおけるアクティビティは、突起知覚事象の発生を信号することができ、このアクティビティは、経路IT→S及びIT→Cにおける接続強度の変調に貢献する。最初に、以下に述べる学習段階において、神経エリアSは、聴覚システムにより検出された音でアクチベートされる(神経系12の「A−左」→S及び「A−右」→Sを参照)。エリアSのアクティビティは、突起事象によりトリガーされ、神経モデルの大きな領域に影響し(以下の「シナプス塑性」の章で述べる)、そして数サイクル間持続するという点で上行性神経変調システムのアクティビティと同様である。更に、トラッキングエリアCへのその突出のために、エリアSは、実世界の環境においてBBDの振舞いに直接影響する。
図1Cに示す各神経エリアV1、V2等内のニューロンユニットの幾つかのパラメータの値の詳細が前記テーブル1に示されている。神経エリアV1、V2等のニューロンユニットの解剖学的突出及び接続形式の詳細が前記テーブル2に示されている。良く知られたように、ニューロンユニットは、前又は後シナプスと考えることができる(シナプス、並びに前及び後シナプスニューロンの説明については、“Universe of Consciousness”、エデルマン及びトノニ著、ベーシックブック、2000、図4.3を参照)。
ニューロンユニットB一般
一実施形態では、神経モデル12の神経エリアV1、V2等内のニューロンユニットは、平均発射レートモデルによってシミュレーションされる。各ニューロンユニットの状態は、平均発射レート変数(σ)及び位相変数(P)により決定される。各ニューロンユニットの平均発射レート変数は、ほぼ100ミリ秒の時間周期中のほぼ100個のニューロンのグループの平均アクティビティ又は発射レートに対応する。発射アクティビティの相対的なタイミングを指定する位相変数は、個々のニューロンのスパイクアクティビティのモデリングに関連した計算コストを負うことなく一時的な特殊性をリアルタイムで与える(以下のニューロンユニットアクティビティ及び位相を参照)。
シナプス接続−一般
一実施形態において、例えば、V1又はCのような所与の神経エリア内におけるニューロンユニット間、及び神経エリア間のシナプス接続、例えば、V2→V4又はC→V4は、電圧独立又は電圧依存、位相独立又は位相依存、そして塑性又は非塑性にセットされる。電圧独立接続は、ニューロンの後シナプス状態に関りなく、後シナプスニューロンにシナプス入力を与える。電圧依存接続は、後シナプスの減極をアクチベートする必要のある受容体形式(例えば、NMDA受容体)の貢献を表わす。換言すれば、前シナプスニューロンは、その軸索に沿ってシナプスを経て後シナプスニューロンへ信号を送信する。後シナプスニューロンは、この信号を受信して、それを、他の前シナプスニューロンから受け取った他の信号と一体化する。
電圧独立接続とは、前シナプスニューロンが高いレートで発射する場合に、シナプスを経てそれに接続された後シナプスニューロンも高いレートで発射するというものである。
電圧依存接続は、それとは異なる。前シナプス入力信号を受け取ったときに後シナプスニューロンが既にあるレートで発射している場合には、電圧依存接続は、後シナプスニューロンを更に発射させる。後シナプスニューロンは、アクティブであり、即ち既に発射しているので、このニューロンは、あるスレッシュホールドレベルにある。それ故、前シナプス接続は、後シナプスニューロンを、より多く発射するように調整する。電圧依存接続は、前シナプスニューロンがいかにアクティブであるかに関らず、後シナプスニューロンスレッシュホールド値以下である場合には、それに全く影響しない。即ち、後シナプスニューロンは、アクティビティの所与のスレッシュホールドを、電圧依存シナプス接続に応答するように、又はそれにより調整するようにしなければならない。
図1Cの神経モデルでは、全ての神経エリア内興奮性接続、及び全ての神経エリア間リエントラント興奮性接続は、電圧依存性である(図1C及びテーブル2を参照)。これらの電圧依存接続は、上述したように、神経力学において調整的役割を演じる。
位相依存のシナプス接続は、後シナプスニューロンユニットのアクティビティ、即ち発射レート、及び位相の両方に作用し、一方、位相独立のシナプス接続は、そのアクティビティのみに作用する。神経モデルにおける全てのシナプス経路は、運動出力に含まれるもの(テーブル2:A−左/A−右→C、C→Cを参照)又は知覚入力に含まれるもの(テーブル2:マイク−左/マイク−右→A−左/A−右、A−左→A−右、V1→V2)を除いて位相依存である。というのは、これらの界面における信号は、大きさのみで定義されるからである。塑性接続は、以下に述べるように、値独立であるか又は値依存である。
ニューロンユニットアクティビティ及び位相Bの詳細
テーブル1に示すように、テーブル1に示すように、エリアV1は、入力神経エリアであり、そのアクティビティは、カメラの映像に基づいてセットすることができる。神経エリアV1、V2及びV4は、色(例えば、赤及び緑)及び線の向き(例えば、0、45、90及び135度)についてニューロンユニットが各々選択される6個のサブエリアを有することができる。神経エリア「マイク−左」及び「マイク−右」は、入力神経エリアであり、それらのアクティビティは、マイクロホンからの入力に基づいてセットされる。
又、テーブル1は、各神経エリア又はサブエリアにおけるニューロンユニットの数も示すことができる(「サイズ」欄)。神経エリアV1、マイク−左及びマイク−右を除き各エリアにおけるニューロンユニットは、特定の発射スレッシュホールド(σ発射)、位相スレッシュホールド(σ位相)、それを越えると電圧依存接続が有効になるスレッシュホールド(σ−vdep)、持続パラメータ(ω)、及び倍率ファクタ(g)を有する。
テーブル2は、神経モデルの解剖学的突出及び接続形式の特性を示す。前シナプスニューロンユニットは、所与の確率(P)及び所与の突出形状(樹枝状)で後シナプスニューロンユニットに接続する。この樹枝状分岐の形状は、高さ及び巾(hxw)をもつ長方形“[]”であるか、内径及び外径(r1、r2)によって形状が限定されるドーナツ形状“θ”であるか、前シナプスニューロンユニットが後シナプスエリアの左(右)側にのみ突出している左のみ(右のみ)、或いは前シナプス及び後シナプスニューロンユニットのいかなる対も所与の接続確立を有している非トポグラフ“非トポ”である。初期接続強度Ci(0)は、最小及び最大値(min、max)により与えられた範囲内でランダムにセットされる。Ci(0)の負の値は、抑制接続を指示する。“イントラ”とマークされた接続は、視覚サブ領域内の接続を示し、そして“インター”とマークされた接続は、視覚サブ領域間の接続を指示する。抑制“インター”突出は、形状のみ又は色のみに応答する視覚サブ領域を接続し(例えば、V4−赤→V4−緑、V4−水平→V4−垂直)、興奮性「インター」突出は、形状サブ領域を色サブ領域に接続する(例えば、V4−赤→V4−垂直)。#でマークされた突出は、値依存である。接続形式は、位相独立/電圧独立(PI)、位相依存/電圧独立(VI)であり、又は位相依存/電圧依存(VD)である。η、θ1、θ2、κ1及びκ2は、塑性接続を意味する。V4からITへの接続は、エリアITにおける所与のニューロンユニットが、3つの異なるV4サブエリアからランダムに選択された3つのニューロンユニットに接続されるという点で特別である。
ニューロンユニットのこのモデルでは、後シナプスの位相は、最も強くアクティブな前シナプス入力の位相と相関される傾向がある。このニューロンユニットモデルは、簡単なネットワーク及び完全な神経モデル(図1C)の両方において同期的にアクティブなニューロン回路が出現するのを容易にし、このような出現は、リエントラント接続、塑性及び振舞いにより課せられる付加的な制約を含む。
シナプス塑性
シナプスの強度は、前及び後シナプスニューロンユニットの位相及びアクティビティに依存するシナプスルールに基づいて変更を受ける。塑性シナプス接続は、値独立(図1CにおいてIT→lTを参照)であるか、又は値依存(図1CにおいてIT→S、IT→Cを参照)である。これらルールは、両方とも、抑圧及び増強の領域を定義するスレッシュホールドが前シナプスと後シナプスのニューロンユニット間の位相差の関数である変更BCM学習ルールをベースとすることができる(図1Cの挿入図を参照)。
特殊目的プロセッサを使用する神経モデルを示す図2を参照する。ホストPC208は、テーブル及び係数を初期化することができる。次いで、このデータを、FPGAの一部分であるパワーPCのようなプロセッサ210にダウンロードすることができる。ホストPC208は、プロセッサに対する双方向接続を維持して、ネットワークを監視すると共に、「学習した」データをアップロードすることができる。別の実施形態では、FPGAは、ホストPCとは独立して働くことができる。
パワーPCのようなプロセッサ210は、ネットワークのための管理サービスを提供することができる。プロセッサは、ホストPC208との双方向接続を維持することができる。プロセッサ210は、初期重み、PSPデータ及び接続テーブルを、DRAMのようなオフチップメモリ204及び206にダウンロードすることができ、又、方程式のための種々のLUT、並びに係数及びインデックスを伴うブロックランダムアクセスメモリ(BRAM)のようなオンチップメモリ202を初期化することもできる。又、プロセッサ210は、ネットワークの健全さ及びアクティビティ、即ちデータバスの使用状態、オフチップ接続のパーセンテージ、平均PSP値、等についてリアルタイムメトリックを遂行することもできる。
DRAMのようなオフチップメモリ204及び206は、神経シミュレーションの記憶されたデータを保持することができる。このデータは、前シナプス処理に対する重み、「後シナプスポテンシャル」(PSP)データとも称される出力データ、及び神経素子の相互接続を指示する接続テーブルを含むが、これらに限定されない。
BRAMのようなオンチップメモリ202は、小さな係数及びLUT、並びにPSPのためのFIFO、及び各素子により処理される重みを保持することができる。実行時にロードされる重み、PSPデータ、及び接続テーブルに加えて、各素子は、独特のオリジナル重み、及び手前のエポックからのそのPSPをローカル記憶することができる。アペンディックスIIは、一実施形態のシステムに対するメモリ要件を例示する。
図5A−5Dは、本発明の一実施形態における入力、出力及び重みの転送を示す。入力、出力及び重みの転送は、データのための複雑なアドレス機構を必要としない所定の順序で行うことができる。入力、出力及び重みは、例えば、どんなコアがデータのソースであるかメモリに分るように所定の順序で転送することができる。出力記憶テーブル、現在重みテーブル及び接続テーブルのデータは、この所定の順序に基づいてアドレスすることができる。一実施形態では、データが神経素子の番号に基づいてこれらのテーブルに書き込まれる。例えば、データは、(コア0、タイムスライス0)、(コア1、タイムスライス0)・・・(コア255、タイムスライス0)、(コア0、タイムスライス1)・・・(コア254、タイムスライス255)、(コア255、タイムスライス255)の順序に基づいて転送することができ、次いで、次のエポックに対してこの順序を繰り返すようにループする。
図5Aを見ると、現在コア、この場合コア58、に対するソース神経素子を指すポインタである次のm個のポインタを得るように接続テーブル502に命令することができる。ソース神経素子を指示する接続テーブル502からのm個のポインタは、コア58に対するPSP入力データを得るために出力記憶テーブル504へ送信することができる。次のm個の重みは、コア58に与えるために現在重みテーブル506から得ることができる。これらのm個の重みは、PSP入力データに対応するように順序付けすることができる。m個のPSP値及びm個の重みは、次いで、コア58により処理することができる。図5Bは、コア59に対して繰り返されるこれらのステップを示す。
図5Cは、出力記憶テーブル508及び現在重みテーブル506へのデータの書き戻しを示す。コアは、所定の順序に従ってメモリへデータを書き込むことができる。図5Cの例では、コア35の出力が出力記憶テーブル508へ書き込まれる一方、コア34のm個の更新された重みが現在重みテーブル506に書き込まれる。図5Dは、次のコアに対して繰り返されるこれらのステップを示す。
本発明の一実施形態は、神経素子及びそれらの相互接続をモデリングするためのFPGAベースの拡張可能なアーキテクチャーである。このアーキテクチャーは、単一のチップ上にできるだけ多数の素子をシミュレーションすることができ、そして非常に多数の同様のチップへの接続を許す相互接続構成を与えることができる。FPGA回路の高い速度は、非常に多数の神経素子をモデリングするためにリソースを共有する能力を与えることができる。共有されるべきリソースは、前シナプス(積の和のような)、後シナプス、及び塑性(アクティビティ依存及び値依存プロセス計算のような)を遂行する計算エンジンを含むことができる。回路の共有及びある程度の並列な複製は、大量の素子のモデリングを許すことができる。これらの全てと共に、素子の初期条件を前ロードし、そしてそれらのシミュレーションの最終状態を読み取るための手段を設けることができる。最終的に、種々の神経プロセスをシミュレーションする有効なツールを形成するために、シミュレーションの始めに相互接続を再構成するための手段を設けることができる。
設計上の1つのチャレンジは、全ての基本的計算ユニットを表わし、ネットワーク内の全ての素子間でデータをルーティングすることである。一実施形態では、各素子は、256個程度の入力(及び関連重み)を有することができる。基本的計算ユニットのプールを一緒に結び付ける簡単な接続網は、利用可能なルーティングリソースを若干迅速に使用する。このアプローチは、各々の新たな相互接続モデルに対してFPGAの顕著な再構成も要求する。
各素子がそれ自身の計算エンジンを有し、その全ての入力及び出力をチップ上に個々にルーティングするのではなく、共有計算エンジン(NPU又は「コア」とも称される神経処理ユニット)及び共通のデータ配布バスの構成が提案される。単一エポック周期のコースにわたり、個々の神経素子入力及びそれらの各重みをコアへ配送することができる。コアは、積の和、後シナプス及び学習プロセスを実行し、神経素子に対する単一の出力及び更新された重みを生成する。このデータセットは、次のエポックに使用すべく記憶テーブルへ返送される一方、別の素子のデータがコアへ通される。エポックの長さと、コアが素子のプロセスを計算できる速度とが与えられると、単一のコアが多数の素子にサービスすることができる。素子の数が増加する場合には、大量の素子の計算を実行することができる。一実施形態では、128個のコアがチップにある状態で、その各々は、エポックの時間周期内に256個までの素子にサービスすることができ、32768個の神経素子のシミュレーションを生じさせる。各コアが多数の素子間に共有される場合には、より少数のコアを使用して、同じ数の神経素子のモデリングを行うことができる。
共通データ配布バスは、各素子に対する入力値を、各入力に対する重みファクタと共に指定のNPUへ配送することができる。重みデータ値は、各素子に厳密に関連付けることができ、従って、SDRAMの大型記憶メモリから順次に配送することができる。各素子のデータが順次に必要とされるときには、SDRAMがアドレスされ、データバスに沿ってコアへ送信されたデータが、その素子に使用される。入力データ値は、手前のエポックからの他の素子の出力を表わす。
一実施形態では、各チップに32768個の素子があり、これは、同じ数の記憶された値が所与の素子への考えられる入力として得られることを意味する。他のチップ上に配置される他の素子からの出力を含むようにシミュレーションの将来の拡張を受け容れるためには、これらオフチップソース値のための付加的な記憶量が必要とされる。現在、その目的で必要とされるデータの量は、32768以下であると仮定される。これは、素子のための入力をプルするために、65536個のデータ値のプールを与える。それらは、出力記憶テーブル(OST)と称されるものに保持することができる。各素子は、これらの値の256個までをデータセット全体から選択することを必要とする。というのは、例えば、素子#1は、素子34、456、1093、等から入力を得ることができ、一方、素子#2は、素子1、6、12、456、等から入力を得ることができるからである。他の神経解剖学のモデルについて決定された他の構成は、これらの接続を再定義することができる。
このため、テーブル内の65536個の値の中から取り上げられた入力ソースのリストを供給する手段が提案される。別の大型記憶SDRAMメモリを使用することができる。SDRAMは、重みテーブルと同様に、順次にアクセスできるが、SDRAMの各アドレスにより提示されるデータは、出力記憶テーブルを指すポインタとなる。OSTのデータは、エポックの間の各素子の出力であり、そしてスタティックであるSDRAMのデータは、そのとき素子に使用されるべき値を保持するOSTの位置を指すポインタである。このSDRAMのデータは、入力ポインタと称される。この解決策の付加的な効果は、異なる接続を伴う別のモデルに対して神経シミュレーションを再構成するのに、OSTにおける異なるアドレスセットをSDRAMに再ロードするだけでよいことである。FPGAの再構成は、必要とされない。
所与の神経システムをこのシステム上で動作させるために、重みテーブル及び入力ポインタをSDRAMにロードすることができる。又、後シナプス及び学習プロセスに使用される係数を再ロードすることもできる。これに対してFPGAのプロセッサを使用することができる。システムがパワーアップされたときに、プロセッサは、ネットワーク接続を経て受け取ることのできるファイルからデータをロードする(例えば、TCP/IP)。データがロードされた後に、プロセッサは、フラグをセットし、そして神経シミュレーションがそれ自身で動作することができる。出力値が発生されて、次のエポックに使用すべくメモリへ返送されるときに、入力及び重みをメモリからフェッチ及びロードするシーケンスを、各素子について繰り返すことができる。このプロセスは、実験が必要となり、その時点で、プロセッサがプロセスを停止して分析のためにテーブルからデータをダウンロードするように介入できる限り、繰り返される。
この設計の成功性は、プロセスが実行される前にオフラインで素子間に相互接続を予め構成する能力に依存する。オフラインソフトウェアは、希望の接続の入力リストを通して機能し、これらの接続を、FPGAベースのシステムの素子/NPUアーキテクチャーへ変換する。この「配置−ルート(place-and-route)」ツールは、多数の接続を共有する素子を同じチップに一緒に配置し、チップ間データ転送を最小にすることができる。又、このツールは、その配置をデータ値のリストへ変換するためにも必要であり、このリストは、入力ポインタテーブル及びオフチップリンクモジュールへロードされる。
プロセッサインターフェイスモジュール602(図6)は、プロセッサ604のプログラム環境に応答する。これは、オンチップ周辺バス606を経てプロセッサ604へ接続することができ、そしてプロセッサ604がオペレーションモードをセットして神経処理システムのレジスタ及びメモリから情報をダウンロード及びアップロードするのを許すことのできるアドレスデコードスペースを特徴とする。
FMSコントローラモジュール608は、連続ループにおいて動作し、SDRAM及び出力記憶テーブル610へ及びそこからデータをルーティングするようラッチ及びmuxを作動するためにシステムバスアドレス及び他のフラグをセットする。又、これは、プロセッサインターフェイス602へ送られるコマンドによりスタートされ、割り込まれるようにすることができる。
SDRAMコントローラモジュール612は、SDRAMとの全ての対話を監督することができる。これは、読み取り及び書き込みの両方のページストリームをSDRAMでバッファすることができる。SDRAMコントローラモジュール612は、SDRAMのバッファされたデータから又はそのデータへ32ビットワードを読み取り又は書き込みするために神経処理システム600の残り部分への簡単な同期ポートを形成することができる。又、SDRAMコントローラモジュール612は、SDRAMの自動リフレッシュサイクルを管理することも必要である。
出力記憶テーブル610は、神経プロセスからの出力PSP値を保持するBRAMの大きなブロックである。BRAMは、デュアルポートであり、各ポートから読み取り及び書き込みすることを許す。各BRAMブロックは、65,536バイトである。この数字は、128コアx256素子の出力/各コア(256個のタイムスライス)の出力を記憶し且つオフチップ素子出力から同じ数のデータ値を記憶するためのニーズから導出される。これらメモリの2つのバンクがあり、その一方は、現在エポックからデータを記憶するためのものであり、その他方は、現在エポックから出力を書き込むためのものである。各バンクの役割(読み取り又は書き込み)は、エポックごとに交換することができ、いわゆるピンポンバッファを構成する。
神経処理ユニット(CPU又はコア)614は、神経シミュレーションのための計算エンジンを含むことができる。各コアは、256個の神経素子に対して計算を遂行するように働くことができる。SDRAM及びPSP記憶テーブルからのデータは、各コアに順次にルーティングすることができ、そしてコアは、この入力データに対してアルゴリズムを遂行することができる。計算の結果は、メモリへ返送され、その後の神経素子のデータを計算するためにコアを解放することができる。1つの現在アーキテクチャーは、これらコアの128個がインスタンス生成されることを必要とする。
システムバス環境モジュール616は、システムバスアクセスロジックを一緒に集め、コア614と出力記憶テーブル610及びSDRAMとの間にデータ、アドレス及び制御フラグを向けるためのレジスタ及びmuxを構成する。システムバス618は、分散されたNPUとFSMコントローラ608との間のインスタンス生成されたインターフェイスである。
オフチップリンクモジュール620は、他のボード上に位置されるか又は将来の設計において同じボード上に収集されるこのチップの他の複製への相互接続を与えることができる。PSP出力記憶テーブルからのデータは、このリンクに送られて、他のチップに供給することができ、そしてこのチップは、ネットワークの他のチップからこのリンクを経てデータを受け取ることができる。適度に高速のシリアルリンクは、割り当てられたエポック時間内に256チップネットワーク内の全出力データを送信することができる。
プログラムフラッシュメモリインターフェイスモジュール622は、プロセッサソフトウェアのためのプログラム記憶スペースへのインターフェイスを与えることのできる「埋め込み型開発キット(EDK)」ライブラリーモジュールである。これは、EDK設計環境においてOPBペリフェラルである。
TCP/IPリンクモジュール624は、別のEDKライブラリーモジュールであり、プロセッサと、システムを保持するPCボード上のイーサネット(登録商標)接続ハードウェアとの間の経路を与える。
このプロセッサインターフェイスモジュール700が図7に示されている。このモジュールは、Xilinx EDK環境におけるカスタムIPであるように設計される。これは、プロセッサの対話を許すためにPLBインターフェイスを有することができる。32ビットモードレジスタは、プロセッサがコアのモードをセットするのを許すことができる。このモジュールは、システムバスと、OSTと、基本的入力についてOSTに対するポインタ及び重みを保持するSDRAMとを経て、プロセッサとコアとの間でデータをルーティングすることができる。
チップが開発されるEDK環境は、プロセッサ内部バス構造体へインターフェイスするためのライブラリーファンクションを与える。OPBは、このインターフェイスに対して使用することができる。カスタムロジックをOPBへリンクするのを容易にするライブラリーモジュールを使用することができる。これは、OPB_IPIFとして示されている。その左側には、OPBインターフェイスが与えられ、その右側には、システムスペースへと変換される必要のある種々の信号がある。このモジュールのファンクションは、OPB_IPIFモジュール702におけるパラメータ定義を通してプロセッサのアドレススペースへとマップすることができる。OPB_IPIFモジュール702は、プロセッサがどのアドレスをターゲットとするかに基づいて多数のチップイネーブルフラグの1つを発生することができる。アドレスバンクは、次のように割り当てることができる。
− モードレジスタアクセス
− 入力ポインタSDRAMアクセス
− 重みSDRAMアクセス
− OSTAアクセス(オンチップ出力)
− OSTBアクセス(オフチップ出力)
− NPU常時アクセス(NPSシステムバスを経て)
モードレジスタへの書き込みは、システムにおけるデータの流れを指令するためのフラグをセットすると共に、SDRAMアクセスに対して指示されるFIFO同期フラグをセットすることができる。SDRAMとの対話は、SDRAMコントローラモジュールへ組み込まれるFIFOをレバレッジすることができる。データは、OPB_IPIFモジュール702からのアドレス要求なしに、SDRAMコントローラへ順次にバースト入力することができる。ソフトウェアは、意図されたアドレスシーケンスに基づいてSDRAMへデータをストリーミングさせることができる。FIFOアドレスカウンタを増加させるためにSDRAMコントローラへppcSdramxAckを送り込むことができる。プロセッサスペースにおける2つの別々のアドレスは、一方を入力ポインタにそして他方を重みに使用することができる。
出力記憶テーブル(OST)との対話は、16ビットアドレスでの直接アドレッシングを通して行うことができる。PPCの側でのこれらの書き込み及び読み取りは、バースト又は単一ビートトランザクション(TBD)である。OSTに対するアドレッシング機構は、プロセッサによりバスを通して又はこのモジュールの順次カウンタを経て与えられて使用することができる。このモジュールに対する最後の接続は、コアへのもので、それらの初期状態及び定数をロードする。これは、システムバスを経て各NPUに位置されたBRAMブロックへの書き込みを含むことができる。各位置のアドレッシングは、プロセッサにより決定できるが、バーストモードに対して、書き込み及び順次のアドレッシングが逆アドレッシング機構も許す機会がある。この接続を通して読み取るための構成は、コアにおいてエラー検出及びある考えられる非スタティックデータの最終状態ダウンロードを使用することもできる。
FSMモジュール800が図8に示されている。FSMモジュール800は、神経処理サイクルを制御することができる。FSMモジュール800は、素子データ及び重みをロードし及びアンロードするために必要なメモリ読み取り、システムバス書き込み、システムバス読み取り及びメモリ書き込みステップのシーケンスを繰り返すことができる。FSMモジュール800は、素子及びコアを通してカウントし、素子ごとに必要に応じて出力記憶テーブル及びシステムバスにおけるアドレスをセットすることができる。FSMモジュール800全体のプロセスサイクルタイムは、全ての素子を通してカウントし、1つのエポック時間周期をとる。
FSMコントローラモジュール800は、次のタスクを行なうことができる。
− エポックのステップ、素子及びコアを通してカウントする
− パイプラインレジスタ、メモリ及びシステムバスアクセスのためのフラグの必要なシーケンスを与える
− 出力記憶テーブル及びシステムバス装置のための必要なアドレスを与える
− プロセッサストリーミングアクセスのためのシーケンスをおそらく与える
エポックの開始に、FSMコントローラモジュール800は、各SDRAM制御モジュールのリセットをトリガーして、それらのアドレスジェネレータをメモリの最上部へセットすることができる。SDRAMコントローラは、読み取る準備のできたデータをそれらのFIFOに有するときにFSMコントローラ800にフラグを立てることができる。この点において、FSMコントローラ800は、フラグのシーケンスを開始して、パイプラインにデータを通し、システムバスにデータを与える種々のmuxを操向することができる。1つのSDRAMからの入力ポインタデータは、出力記憶テーブルBRAMのアドレスラインへルーティングされ、コアプロセスへの入力として使用されるべき正しいデータを選択する。FSMコントローラ800は、1つのカウンタの出力をシステムバスアドレスラインへ操向し、どのNPUがデータを受け取るか知らせることができる。システムバスの読み取りは、コアからそれらの出力データを取り出すために行うこともできる。FSMは、このデータを、そのソースに基づいて、パイプラインを経てSDRAMコントローラへ又はOSTへ進ませる。このサイクルは、選択された素子の全256個の入力について繰り返すことができる。次いで、素子のロード/アンロードプロセスが、128個の各コアの全256個の素子について繰り返される。FSMコントローラモジュール800の考えられる付加的な役割は、プロセッサの読み取り及び書き込みに対してパイプラインパルス及びmux選択ラインのシーケンシングを実行することである。複数のカウンタを伴う簡単な限定状態マシンを使用して、シーケンスを達成することができる。しかしながら、プロセスは、パイプラインレジスタ及びカウンタを制御するために多数のフラグを必要とする。全ての必要なフラグが同期されるように確保するための1つの解決策は、状態マシンをBRAMに入れることである。BRAMは、出力フラグセットをその32ビット巾のセルに保持することができる。FSMの制御は、FSM BRAMのアドレスを通してクロックして、希望のフラグをBRAM出力データのビットとして送出することにより、実現される。512x32のBRAMは、外部パイプライン制御(ほぼ16個必要)及び内部状態マシンループ制御の両方に使用されるべき32個のフラグを与える。
神経処理ユニット(図1A、神経処理システム(NPS)又は「神経コア」でもある)は、その重みデータをSDRAMに記憶することができる。又、SDRAMは、出力記憶テーブルデータに対するポインタを保持することもできる。データは、125MHzのシステムバス速度で大きなブロックにおいてメモリへ及びメモリから順次にストリーミングすることができる。SDRAMアクセスは、512ワードのページバーストで読み取られ又は書き込まれる場合に、この高い速度のアクセスを受け容れることができる。このようにメモリにアクセスすることで、CAS待ち時間及び他の時間切れに費やされる時間を減少することができる。システムのこのデータは、これに適合できる。というのは、それに順次にアクセスすることができ、且つ書き込みのための戻り値も同じシーケンスで与えることができるからである。SRAMコントローラは、SDRAM I/Oの同期制御のために標準的なシーケンスパルスを与えるのに加えて、メモリへの及びメモリからの途中でデータのストリーミングされるページをバッファする手段を果たすこともできる。このように、システムは、ページストリーミングが与えるものより連続的でない仕方でデータにアクセスすることができる。このメモリコントローラには2つのインスタンスがあり、その各々が、32Mbブロックに構成された2つのメモリチップを駆動する。使用するメモリは、信号及びそれらのタイミングに適合するインフィニオン社からのHYB25L128160AC−8である。読み取り、書き込み及び自動リフレッシュの全コマンドは、このメモリに対するデータ仕様ごとに設計することができる。メモリは、32Mbブロックとして構成される。コントローラは、既存のデモボード上のXilinx X2VP50F1152において最初に実施することができる。Xilinx部分からメモリ部分へのピン接続は、予め指定することができる。
コアは、SDRAMからのデータの一次ユーザである。コアは、SDRAMからこのSRAMコントローラ(図10)を経て送られるデータの連続的なストリーミングを有効に使用することができる。データは、メモリから順次のものである(ランダムアクセスではない)。RDACKフラグが高であるときには、システムクロックの立上り縁の間に、読み取りバスのデータが有効でなければならない。RDACKフラグが高である状態でクロックのその後の立上り縁に、メモリからの次のデーらワードが得られねばならない。コントローラは、RDACKが連続的に高である条件のもとでデータを与え、125MHzのシステムクロックレートでデータを順次に供給することができる。コントローラがその後のページを読み取りバッファに供給するに充分なほどの中断が読み取りにあってもよい。更に、コントローラは、システムクロックの立上り縁の間にWRACKフラグが高であるときに書き込みバス上のデータワードを受け容れることができる。コントローラは、WRACKが連続的に高であるときには書き込みバスからデータの連続的なストリームを受け取ることができる。コントローラが書き込みバッファからページをSDRAMへ空にするに充分なほどの中断が書き込みにあってもよい。コントローラは、必要に応じてデータをバッファすると同時にSDRAMからデータをプルし又はそれを必要に応じてSDRAMへ書き込みながら、読み取り及び書き込み要求を処理することができる。全体的なシステムタイミングは、SDRAMへのアクセスがページモードであることを意味し、それ故、両方向にバッファを行なえることが予想される。全体的なシステムタイミングは、必要に応じてSDRAMへのページ書き込み/ページ読み取りアクセスを交替させ、そしてサイクルの始めと終りにパイプラインローディングを受け容れるために与えることができる。
図9は、SRAMコントローラモジュール900のピン配列を示す。
次のテーブルは、一実施形態におけるピン及びその説明を列挙したものである。
Figure 2008545197
次のテーブルは、VeritexTMII Xilinx FPGAにおけるオフチップピン番号を示す。コントローラには2つのインスタンスがあるので、2セットのピン番号が与えられる。各テーブルにおいて、最上行は、ピンの名前であり(SDRAM_prefixをもたない)、そして第2行は、FPGAにおけるピン番号である。
モジュール1 ピンアウト
Figure 2008545197
モジュール2 ピンアウト
Figure 2008545197
SDRAMコントローラ100は、5つのモジュールで構成することができる。
− SDRAMレジスタ出力1010
− 書き込みFIFO1002
− 読み取りFIFO1004
− アドレスジェネレータ1006
− コントローラ限定状態マシン1008
SDRAMインターフェイスレジスタ1010は、SDRAMチップに正しいタイミング(90〜180クロックの位相シフト)を与えるように配置されてクロックされるXilinx I/Oブロックである。より精巧なクロック制御が必要とされる場合には、「遅延制御モジュール(DCM)」と共に任意のクロックフィードバックが使用されてもよい。このブロックにおいてデータのための両方向ポートをデマルチプレクスすることもできる。
書き込みFIFI1002は、少なくとも512ワードの奥行きであり(おそらく1024)、そしてページをストリーミングするに充分なデータが記憶されるまでコアからのデータをバッファすることができる。この点において、“Empty_Me”要求をコントローラへ送信することができる。コントローラは、それが行なう裁定を受け容れた後に、必要なコマンドシーケンスをページ書き込みのためにSDRAMへ送信する一方、FIFOをストローブしてその出力をSDRAMへ書き込むことができる。FIFOは、XilinxチップのデュアルポートBRAMで実現される。
読み取りFIFO1004は、少なくとも512ワードの奥行きであり(おそらく1024)、そしてそのデータレベルがSDRAMから別のページを受け取るに充分なほど低くなるまでコア読み取り要求当たりデータを供給することができる。そのコンテンツが、SDRAMから別の512ワードページバーストを受け入れるに充分なほど低くなったときに、“File_Me”要求をコントローラへ送信することができる。コントローラは、それが行なう裁定を受け容れた後に、必要なコマンドシーケンスをページ読み取りのためにSDRAMへ送信する一方、FIFOをストローブしてその入力をSDRAMから読み取ることができる。FIFOは、XilinxチップのデュアルポートBRAMで実現することができる。
アドレスジェネレータ1006は、書き込まれるべき行及び読み取られるべき行の値をそのレジスタに保持し、ページが書き込まれるか又は読み取られた後に各々増加することができる。同期入力は、同期を確保するために、欠陥の場合又はパワーアップ時に或いは単に周期的にこれらアドレスのリセットを許すことができる。付加的な構成は、コントローラからのコマンドごとに、SDRAMへ書き込みアドレスを送信すべきか読み取りアドレスを送信すべきか選択するためのmuxである。又、アドレスジェネレータは、SDRAMのパワーアップモードレジスタロード中にSDRAMへコマンド値を与えることもできる。これは、コントローラからの付加的なコマンドを介して行うことができる。
最終的に、コントローラ限定状態マシン1008は、FIFOサービスコマンドを裁定し、そしてSDRAMのタイミング要求ごとにSDRAMへの又はSDRAMからのページストリームを開始することができる。又、内部タイマーを経て又はコアからの外部コマンドごとに自動リフレッシュサイクルを開始することもできる。同期を与える必要性に基づき、又、コントローラは、コアからの同期パルスに応答して、それらをアドレスジェネレータへ通すか、又は更なるシステム分析で決定されたより精巧なプロセスを遂行することもできる。
図11は、コアの読み取り及び書き込みタイミング図である。SDRAMのインターフェイスタイミングは、使用される装置のデータシートごとのものである。コア側では、図11のタイミング図は、WRDBUS対WRACK及びRDDBUS対RDACKの考え方を与える。
神経シミュレーションプロセスの実行中に、神経素子は、手前のエポックにおいて発生された他の神経素子からの出力信号を表わす入力データを要求する。各チップには、32768個の素子がある。これは、128個のNPUの各々に256個の素子が指定されることを表わす。これら素子の各々は、単一の出力を発生し、これは、その後のエポックにおける他の素子の入力として使用される。出力記憶テーブルは、チップ上の素子によって使用される全てのデータを記憶することができる。これは、チップ上の素子からの出力データを保持するセクションを特徴とし、又、このチップ上の素子の入力として使用される他のチップからの出力データを保持するセクションも有することができる。データは、バイトサイズとされる。チップ上の全ての素子の出力を保持するために、サイズは32kBである。オフチップ素子からのデータが更に32kBを与え、従って、全体的サイズは、64kBとなる。神経シミュレーションシステムは、現在エポックに対する入力を使用して同時に出力を発生するので、ピンポンバッファ構成を使用して、書き込むべきメモリを与えながら、個別のメモリから手前のエポック中に書き込まれたデータを現在エポックが使用するようにすることができる。これは、メモリ要件を128kBへ倍増する。このメモリは、2つの64kB BRAMテーブルとして編成することができる。各テーブルは、32個のBRAMブロックを使用することができる。ピンポン構成では、2つのテーブルは、読み取り段階でも書き込み段階でもよい。素子へ入力を供給するアクセス速度を最大にするために、出力記憶テーブルBRAMは、デュアルポートとして構成することができる。バイトは、読み取り段階中に各ポートから同時に読み取ることができる。書き込み段階中には、デュアルポートアクセスの片側は、現在エポックの出力を書き込むのに使用でき、一方、他側は、チップ上に使用されるオフチップ素子からの出力データを書き込むのに使用できる。各テーブルは、Xilinxツールのコアジェネレータを使用して発生することができる。ブロック及びそのI/Oは、図12に現われている。
図13は、システムバス環境モジュール1300を示す。このモジュール1300は、メモリとシステムバスとの間にデータを接続するための雑多なルーティングファシリティを保持することができる。又、これは、種々のエンドポイント間に沿ってデータを通すように設計されたパイプラインを定義することもできる。信号の数については、最も複雑であるが、ロジックは、比較的簡単で、mux及びレジスタ並びにフラグの集合を含む。図13は、入力及び出力を示す。
このブロックを通る4つのメインデータ経路があり、これについて個々に説明する。これら4つの経路は、次の通りである。
− システムバスへのOST及び重みデータ
− システムバスからのOST及び重みデータ
− PPCデータ書き込み
− PPCデータ読み取り
システムバス経路へのOST及び重みデータでは、データがメモリから検索されてシステムバスへ送信される。この経路の場合、重み及びOSTデータは、異なる仕方で取り扱われる。重みデータは、そのSDRAMから直接読み取られる。OSTデータについては、入力ポインタSDRAMが最初に読み取られる。SDRAMから得られたデータレコードは、2つの16ビット値を保持する。これら「ポインタ」の各々は、OSTをアドレスするのに使用され、一方の16ビットポインタは、OSTのAポートをアドレスし、他方のポインタは、Bポートをアドレスする。これらのアドレスは、上述した「ピンポン」選択に基づいて適当なメモリに適用される。4つの素子が各システムバス書き込みでサービスされ、そしてOSTにおける各アドレスが1つの値しか保持しないので、システムバス書き込みに必要な4バイトを得るには、2つのOSTアクセスを要することになる。次いで、OSTデータは、付加的なレジスタを経てシステムバスへ送られる重みデータと共に得ることができる。そのモードがアクティブであるときにPPCデータをシステムバスへ送信するのを許す介入mux及びレジスタがある。どのコアにデータが書き込まれるか選択する、システムバスへの書き込みのためのアドレスは、FSMアドレス又はプロセッサアドレス間を選択するmux、及びレジスタを経て、FSMコントローラによりバスに適用される。このプロセッサの一例が、図14に示されている。
この経路において、データは、システムバスから受け取られて、適切なメモリへルーティングされる。アドレスは、システムバスのアドレスラインへ適用されて、ソースを選択する。適用されるアドレスは、muxに通すことができ、これは、プロセッサソースのアドレスがそのモードで適用されるのを許す。アドレスされると、コアは、それらの出力データを32ビットシステムバス読み取りデータラインに与える。コアは、4つより成るグループでデータラインに接続することができ、4つのうちの1つは、ビット0ないし7に結合され、その次は、ビット8ないし15に結合され、その次は、ビット16ないし24に結合され、そして第4は、ビット24ないし31に結合される。32ビット読み取りデータを最初にレジスタ記憶することができる。コアからのデータは、SDRAM行きの重みであるか、又は出力記憶テーブルへ送られるPSP出力である。交互のレジスタが重みデータ又はOSTデータのいずれかを取り上げる。重み値は、このデータ又はプロセッサデータの間を選択するmuxに通され、次いで、SDRAMへ送られ、ここで、WRACKパルスがSDRAMコントローラにキューを出し、その値をFIFOに記憶するようにさせる。PSP出力値は1つしかないので(256個の重み出力に比して)、よりゆっくり取り扱うことができる。32ビットデータレコードに含まれた4バイトの各々は、出力記憶テーブルに個々に書き込むことができる。出力記憶テーブルのアドレスは、FSMコントローラにより順次に発生され、プロセッサアドレスをそのモードで適用するのを許すmuxに通される。出力記憶テーブルのためのデータは、バイトサイズへデマルチプレクスされ、レジスタ記憶され、そしてプロセッサアクセスのためにmuxを経て出力記憶テーブルへ通される。図15は、このシステムの一例を示す。
SPPは、プログラムされたインストラクションを受け取ることができるが、より一般的には、センサからの入力を受け取り、そしてアクチュエータへ出力を発することができる。図16A−Dは、脳ベースの装置(BBD)のためのオフロード可能なロボットベース(ローバー(rover))を示す。このローバーは、未知の過酷な三次元環境において種々の中間点を経て目標へとナビゲートすることのできるBBDである。このローバーは、多数の埋め込まれたセンサからのリアルタイム入力の健全なセットから制御神経シミュレーションを与えると共に、制御された移動を可能にする調整可能なエフェクタを与えることができる。神経シミュレーションとのこれらの種々の接続は、新規な環境でのBBDのナビゲーションを助けることができる。ローバーは、いかなるサイズでもよい。ローバー1600は、神経シミュレーションの動作に対して最大の融通性を与える多数の独特の特徴をもつことができる。
ローバー1600は、多数のポッドを含むことができる。これらポッドは、モジュラー式で、拡張可能であり、交換可能であり、且つ取り替え容易である。ポッド及び中央ユニットは、中央コネクタ軸を経て接続することができる。一実施形態では、ローバーは、ポッドを中央コネクタ軸に追加したり、そこから除去したりすることができ、そして異なるサイズの中央コネクタ軸を使用することもできる。中央コネクタは、動力、センサ及びアクチュエータ信号を中央ユニットへ及び中央ユニットから伝達するためのコンジットを含むことができる。コンジットは、非常に多数のセンサ及びアクチュエータが中央ユニットと通信するのを許す2線バスのようなバスを含むことができる。ポッドは、神経モデルと対話するセンサ及びアクチュエータを含むことができる。幾つかのポッドは、モータにより制御されるホイールを含む駆動ポッドである。
ポッドは、両方向サスペンションシステム1602を有することができる。この両方向サスペンションは、ローバーがひっくり返ったときでもポッドが機能的サスペンションシステムをもつことができるようにする。両方向サスペンションシステムは、互いに対向して配置されたガス充填衝撃部を含むことができる。又、両方向サスペンションシステムは、各衝撃部における圧縮を監視するためのセンサを含むこともできる。
幾つかのポッドにおけるホイールに加えて、ローバーは、タンク型トレッドのようなトレッド1604を含むことができる。このトレッド1604は、中央ユニットの一部分である。一実施形態において、トレッド1604は、通常、係合されない。トレッド1604は、ローバー1600が固定状態から徐行するのを許す。ほとんどの状態では、ローバーは、ホイールが最も効率的である地域を駆動する。しかしながら、ホイールが役に立たない場合には、ローバーは、トレッド1604を使用して困難な状態から脱出する(例えば、峡谷を上る)ように切り換ることができる。ローバー1600が突き当たった場合には、トレッド1604が地面に係合するようにローバー1600がポッドを動かすことができる。一実施形態では、ローバー1600は、トレッドが地上に係合するのを許すようにポッドを完全に延びた位置へ動かすことができる。
センサポッド1606は、カメラ及び他のセンサを収容することができる。センサポッド1606は、駆動ポッドに使用されるサブアッセンブリのあるものを使用して構成することができる。一実施形態では、センサポッド1606は、トレッド1604を含む中央部分1610に取り付けることができる。センサポッドは、ローバーが自由落下型の状態を感知したときに駆動ポット間でそれ自身を保護するように動くことができる。
関節駆動及びカメラポッドは、逆転した向きで駆動する能力をBBDに与えると共に、全カメラシステムの全体的安定性を高めることができる。一実施形態において、ポッドは、ポッドのモータにより運動範囲に対して回転することができる。
電力管理システム1608は、その多数の電源からの電力消費を常時監視することができる。一実施形態では、電力管理システム1608は、モータにより消費される電力を測定するための電流センサ、及びバッテリの出力を測定するための電圧センサのようなセンサを備えている。
図17は、例示的ローバー1700の機能図である。ローバー1700は、駆動ポッド1702のような駆動ポッドを含むことができる。駆動ポッド1702は、多数のセンサ及びアクチュエータを含むことができる。ホイールセンサ1704は、ホイール1706の位置を光学的に感知することができる。ブラシレスモータのようなモータ1708は、ホイール1706を動かし、そして関連モータセンサを含むことができる。ジャイロ及び加速度計1710のような多数の位置センサを使用することができる。両方向サスペンションであるサスペンション1712は、関連センサをもつことができる。駆動ポット1702は、中心軸1716の周りで駆動ポッド1712を回転するためのモータ1714及び関連センサをもつことができる。駆動ポッド1702は、駆動ポッド1702による電力消費を監視するために、駆動ポッド1702又は中央ユニット1720に関連電力センサ1718を含むことができる。センサポッド1722は、ビデオカメラ、IRセンサ、レーザセンサ、等のセンサを含むことができる。中央ユニット1720は、トレッド1724を含むことができる。センサ1726は、トレッド位置及びトレッドモータセンサを含むことができる。又、中央ユニット1720は、バッテリのような電源1728を含むこともできる。
ローバー1700は、SPP1730により動作される神経モデルで、センサ入力を受け取りそしてアクチュエータ出力を発生するような神経モデルによって制御することができる。神経モデルの神経素子は、環境における状態にどのように反応するかの塑性計算を通じて学習することができる。これらの塑性計算は、入力に応答して神経モデルの接続重み、ひいては、振舞いを変更することができる。
振舞い反応は、プログラマーにより明確にプログラムされず、むしろ、BBDによって学習される。BDDは、神経モデルで環境に反応するので、不測の振舞いに加わることができる。ローバー1700の神経モデルは、センサから多数の入力を受け取り、そして異なる状態においてどんな入力が最も関連しているかそれ自身で学習することができる。例えば、はまり込んだホイールは、そのはまり込んだホイールを生じさせた振舞いの動作を禁止する値型塑性信号を生じることができる。ビデオカメラで感知される滑らかな地域は、ホイールの良好な動作及び低電力消費に関連され、従って、肯定的学習を生じさせる。ビデオカメラで感知されるでこぼこの地域は、ホイールの悪い動作及び高電力消費に関連され、従って、抑制的学習を生じさせる。
神経モデルは、センサ及びアクチュエータを論理的グループで含むことができる。例えば、制御入力に対するアクチュエータの応答は、センサにより監視することができる。このように、BBDは、動物が手足の動きを制御するように学習するのと同様に、フィードバックを伴いその動作を制御するように学習することができる。
ローバーの設計又は表現型は、神経シミュレーションと密接に結び付けることができる。でこぼこの地域をうまく横断するために、神経モデルを使用して、駆動システムから牽引、回転及び振動センサを監視し、そしてサスペンションのコンプライアンス、ホイールの速度、及び駆動システムのポッド位置を調整して、ローバーが効率的に地域を移動するよう保つことができる。カメラ及び他のセンサ、例えば、赤外線及びレーザレンジファインダーは、神経モデルへ情報を供給し、そしてBBDが地域を確認して近傍の環境に困難さ度合いを関連付けるのを許す。経験を積んだ後に、BBDは、横断が困難な環境のエリアを回避し、そして効率的に進行することのできるエリアを求めるように学習することができる。小脳適応のモデルに基づくモータ制御ループは、地域の変化により関節式ポッドを適当に動かすことによりカメラ及びセンサハウジングを定常に保つように学習することができる。
BBDは、値又は価値システムをトリガーする環境的合図に基づいてそれらの振舞いを適応させることができる。ローバーにおける値システムは、電力管理システムに密接に結合させることができる。電力の効率的使用(又は低い電流引き出し)は、正の値であり、そして高い電流引き出しは、負の値である。典型的に、牽引が不充分であるか又は表面がでこぼこであるエリアは、滑らかな道路より多くの電流を引き出す。それ故、BBDは、値に依存する学習に基づき、滑らかな高牽引表面が得られるときにはそれを求めることができる。
ローバーの本体は、コンピュータ、通信電子装置及びバッテリのための部屋をもつことができる。搭載するセンサの数及び帯域巾のために、BBDの神経シミュレーションは、高性能の計算要件(例えば、32ノードのBeowulfクラスター)を有してもよい。ローバー1700は、リモート動作している神経モデルとワイヤレス通信するために通信リンク1732を含むことができる。
中程度の距離から、ワイヤレス通信の範囲を越える長距離にわたってナビゲートするために、特殊なオンボードコンピュータが必要になる。従来のコンピュータは、著しい電力を必要とし、自律的ローバー装置に適合させるには大き過ぎる。一実施形態では、神経シミュレーションを迅速且つ効率的に計算するように特に設計された上述した特殊目的プロセッサ(SPP)1730をローバーにより使用することができる。
能動的にサスペンドされる独特のローバー設計と密接に結び付けられてSPP上で実行される神経シミュレーション制御は、BBDが、新規な環境を横断し、その環境における突起物体及び位置を学習し、そしてその経験を利用して、効率的で且つ信頼性のある仕方でナビゲートするという目標を達成できるようにする。又、ローバー1700は、ローバーが危険状態にあるときにローバーを保護するためのオーバーライドロジックを持つこともできる。
本発明の実施形態は、特殊目的のプロセッサ及び現場でプログラム可能なゲートアレーを使用して実施されるものとして、ここで、たびたび説明したが、これら実施例は、例示に過ぎないことを理解されたい。本発明は、これらの実施例に限定されるものではない。関連技術の当業者に明らかなように、本発明は、いかなるデータ処理/計算素子、モジュール、装置又はアーキテクチャーを使用して実施することもできる。これは、例えば、特定用途向け集積回路(ASIC)を含むが、これに限定されない。
一実施形態では、本発明は、1つ以上の良く知られたデータ処理装置又はモジュール、例えば、図18に示すコンピュータ1802を使用して実施される。コンピュータ1802は、1つ以上のプロセッサ(中央処理装置又はCPUとも称される)、例えば、プロセッサ1806を備えている。プロセッサ1806は、通信バス1804に接続される。
又、コンピュータ1802は、ランダムアクセスメモリ(RAM)のようなメイン又は一次メモリ1808も備えている。この一次メモリ1808には、制御ロジック1828A(コンピュータソフトウェア)及びデータが記憶される。
コンピュータ1802は、1つ以上の二次記憶装置1810も備えている。この二次記憶装置1810は、例えば、ハードディスクドライブ1812及び/又は取り外し可能な記憶装置又はドライブ1814を備えている。取り外し可能な記憶ドライブ1814は、フロッピー(登録商標)ディスクドライブ、磁気テープドライブ、コンパクトディスクドライブ、光学記憶装置、テープバックアップ、等を表わしている。
取り外し可能な記憶ドライブ1814は、取り外し可能な記憶ユニット1816と対話する。取り外し可能な記憶ユニット1816は、コンピュータソフトウェア1828B(制御ロジック)及び/又はデータが記憶されたコンピュータ使用可能な又は読み取り可能な記憶メディア1824を備えている。取り外し可能な記憶ユニット1816は、フロッピー(登録商標)ディスク、磁気テープ、コンパクトディスク、DVD、光学的記憶ディスク、又は他のコンピュータデータ記憶装置を表わす。取り外し可能な記憶装置1814は、良く知られたように、取り外し可能な記憶ユニット1816から読み取り及び/又はそこに書き込む。
又、コンピュータ1802は、入力/出力/表示装置1822、例えば、モニタ、キーボード、ポインティング装置、等も備えている。
コンピュータ1802は、更に、通信又はネットワークインターフェイス1818も備えている。このネットワークインターフェイス1818は、コンピュータ1802がリモート装置と通信できるようにする。例えば、ネットワークインターフェイス1818は、コンピュータ1802が、LAN、WAN、インターネット、等の通信ネットワーク又はメディア1824B(コンピュータ使用可能な又は読み取り可能なメディアの一形式を表わす)を経て通信するのを許す。ネットワークインターフェイス1818は、ワイヤード又はワイヤレス接続を経てリモートサイト又はネットワークとインターフェイスすることができる。
制御ロジック1828Cは、通信メディア1824Bを経て、コンピュータ1802へ及びコンピュータ1802から送信される。より詳細には、コンピュータ1802は、通信メディア1824Bを経て、制御ロジック1830で変調された搬送波(電磁波信号)を受信及び送信する。
制御ロジック(ソフトウェア)が記憶されたコンピュータ使用可能な又は読み取り可能なメディアを含む装置又は製造品は、ここでは、コンピュータプログラム製品又はプログラム記憶装置と称される。これは、コンピュータ1802、メインメモリ1808、ハードディスク1812、取り外し可能な記憶ユニット1816、及び制御ロジック1830で変調された搬送波を含むが、これに限定されない。1つ以上のデータ処理装置により実行される制御ロジックが記憶されたこのようなコンピュータプログラム製品は、このようなデータ処理装置が、ここに示す本発明の実施形態に基づいて動作するようにさせる。
従って、ここに述べる脳ベースの装置の機能は、FPGA、ASIC、特殊目的プロセッサ、汎用プロセッサ、コンピューティング素子、等、及びその組み合せ(これに限定されないが)を含む多数の仕方で達成することができる。本発明の範囲及び精神は、これら全ての実施形態を包含する。
又、本発明の別の実施形態は、バーチャル入力及び/又はバーチャル出力で動作することができる。例えば、ある実施形態において、BBDは、コンピュータアプリケーション(例えば、これに限定されないが、コンピュータゲーム)又は他のソースから受け取られたバーチャル入力で動作してもよく、このようなバーチャル入力は、実世界のセンサからの実世界の入力を表わすものではない。例えば、上述した実世界の触覚、嗅覚、聴覚、音、熱、視覚、及び/又は聴覚センサからの入力を受け取るのではなく、BBD実施形態は、このような触覚、嗅覚、聴覚、音、熱、視覚、及び/又は聴覚センサをシミュレーションするコンピュータアプリケーション(又は他のソース)から入力を受け取ることができる。又、移動のためのエフェクタやホイールのような実世界のアクチュエータとインターフェイスするのではなく、BBD実施形態は、バーチャルローバーの一部分であるバーチャルホイールのようなバーチャルアクチュエータと対話することができる。従って、ローバーの前記説明は、例示の目的でなされたもので、これに限定されない。例えば、別のBBD実施形態は、BBDがバーチャルアクチュエータに出力を送信するコンピュータアプリケーションによりシミュレーションされるバーチャルローバーの一部分でよい。
本発明は、ここに述べたもの以外のソフトウェア、ハードウェア、及び/又はオペレーティングシステム実施形態で機能することができる。ここに述べたファンクションを遂行するのに適したソフトウェア、ハードウェア、及びオペレーティングシステム実施形態を使用することができる。
本発明の好ましい実施形態の以上の説明は、例示の目的でなされたものである。これは、本発明を余すところなく述べるものでもないし、又はここに開示した正確な形態に限定するものでもない。当業者であれば、多数の変更や修正が明らかであろう。これらの実施形態は、本発明の原理及びその部分的応用を最良に説明するために選択されたものであり、従って、当業者であれば、意図された特定の用途に適するような種々の実施形態及び種々の変更が理解できるであろう。本発明の範囲は、特許請求の範囲及びその等効物により限定されるものとする。
アペンディックスI
Figure 2008545197
Figure 2008545197
アペンディックスII

256個のコア及び256個のタイムスライスを伴う一実施形態において、重みは、次のような単一のサイン入りバイトを使用できる。

256バイト/素子 => 256バイト
256タイムスライス素子/コア => 256*256 = 65536 バイト
256コア/チップ => 256^3 = 16,777,216 バイト
合計(16 Meg by 8)

PSP出力データは、各々、次のような単一の非サイン入りバイトを有する。
256バイト/素子 => 256バイト
256タイムスライス素子/コア => 256*256 = 65536 バイト
256コア/チップ => 256^3 = 16,777,216 バイト
合計(16 Meg by 8)

接続テーブルは、各接続に対して16ビット、行先神経コアIDに対して8ビット、及び行先タイムスライスIDに対して8ビットを有することができる。従って、

256接続/素子 => 2*256 = 516 バイト
256タイムスライス素子/コア => 2*256^2 接続バイト
256コア/チップ => 2*256^3 接続バイト
合計(16 Meg by 16)
一実施形態の特殊目的プロセッサを示すブロック図である。 一実施形態の神経モデルの神経素子への入力及び出力を示す図である。 環境において脳ベースの装置の振舞いを誘導することのできる神経モデルの領域的及び機能的神経解剖構成を示す図である。 特殊目的プロセッサを含む脳ベースの装置を示す図である。 一実施形態の特殊目的プロセッサを使用する神経モデルを示す図である。 特殊目的プロセッサの一実施形態のコアを示す図である。 特殊目的プロセッサの一実施形態のコアを示す図である。 特殊目的プロセッサを使用する脳ベースの装置の一実施形態の動作を示すフローチャートである。 本発明の一実施形態の特殊目的プロセッサにおける入力、出力、及び重みの転送を示す図である。 本発明の一実施形態の特殊目的プロセッサにおける入力、出力、及び重みの転送を示す図である。 本発明の一実施形態の特殊目的プロセッサにおける入力、出力、及び重みの転送を示す図である。 本発明の一実施形態の特殊目的プロセッサにおける入力、出力、及び重みの転送を示す図である。 一実施形態の特殊目的プロセッサを示す図である。 一実施形態のプロセッサインターフェイスモジュールを示す図である。 一実施形態の限定状態マシンコントローラを示す図である。 一実施形態のSRAMコントローラモジュールに対するピン配列を示す図である。 一実施形態のSRAMコントローラを示す図である。 コアに対する読み取り及び書き込みタイミング図である。 一実施形態の出力記憶テーブルを示す図である。 一実施形態のシステムバス環境モデルを示す図である。 一実施形態のデータ路を示す図である。 一実施形態のデータ路を示す図である。 脳ベースの装置BBDのローバーを示す図である。 脳ベースの装置BBDのローバーを示す図である。 脳ベースの装置BBDのローバーを示す図である。 脳ベースの装置BBDのローバーを示す図である。 一実施形態のローバーを示す機能図である。 本発明の実施形態に基づき、ここに述べる脳ベースの装置の機能を実施するのに有用なデータ処理装置又はモデルを示す図である。

Claims (15)

  1. 神経モデルを実施するFPGAを備え、前記神経モデルは複数の神経素子を含み、前記FPGAは、前記神経素子を実施するための複数のコアを含み、これらコアは、データを並列に処理し、前記コアにおける処理は、入力値及び重みを使用する前シナプス計算と、この前シナプス計算の結果を使用して後シナプス出力を発生するための後シナプス計算と、前記重みを変更するための塑性計算とを含み、前記入力値は、出力記憶テーブルに対するポインタを得るために接続テーブルを通してループすることによって前記コアへ与えられ、前記ポインタは、予め定められた順序で前記コアの入力を指示するものである、特殊目的プロセッサ。
  2. 前記後シナプス出力は、出力記憶テーブルを経てループする予め定められた順序で前記コアから前記出力記憶テーブルに与えられる、請求項1に記載の特殊目的プロセッサ。
  3. 前記重みは、予め定められた順序で前記コアに対する重みを得るために重みテーブルを経てループすることにより前記コアに与えられる、請求項1に記載の特殊目的プロセッサ。
  4. 請求項1に記載の特殊目的プロセッサを備えた脳ベースの装置において、更に、
    前記特殊目的プロセッサのための入力を与える少なくとも1つのセンサと、
    前記特殊目的プロセッサからの出力を受け取る少なくとも1つのアクチュエータであって、前記出力が前記神経モデルの神経素子による処理の結果であるようなアクチュエータと、
    を備えた脳ベースの装置。
  5. 請求項1に記載の特殊目的プロセッサを備えた脳ベースの装置において、更に、
    少なくとも1つのセンサ及び少なくとも1つのアクチュエータを含む複数の取外し可能なポッドを備えた、脳ベースの装置。
  6. 神経モデルを実施するFPGAを備え、前記神経モデルは複数の神経素子を含み、前記FPGAは、前記神経素子を実施するための複数のコアを含み、これらコアは、データを並列に処理し、前記コアにおける処理は、入力値及び重みを使用する前シナプス計算と、この前シナプス計算の結果を使用して後シナプス出力を発生するための後シナプス計算と、前記重みを変更するための塑性計算とを含み、前記後シナプス出力は、出力記憶テーブルを経てループする予め定められた順序で前記コアから前記出力記憶テーブルに与えられる、特殊目的プロセッサ。
  7. 前記重みは、予め定められた順序で前記コアに対する重みを得るために重みテーブルを経てループすることにより前記コアに与えられる、請求項6に記載の特殊目的プロセッサ。
  8. 前記入力値は、出力記憶テーブルに対するポインタを得るために接続テーブルを通してループすることにより前記コアへ与えられ、前記ポインタは、予め定められた順序で前記コアの入力を指示する、請求項6に記載の特殊目的プロセッサ。
  9. 請求項6に記載の特殊目的プロセッサを備えた脳ベースの装置において、更に、
    前記特殊目的プロセッサのための入力を与える少なくとも1つのセンサと、
    前記特殊目的プロセッサからの出力を受け取る少なくとも1つのアクチュエータであって、前記出力が前記神経モデルの神経素子による処理の結果であるようなアクチュエータと、
    を備えた脳ベースの装置。
  10. 請求項6に記載の特殊目的プロセッサを備えた脳ベースの装置において、更に、
    少なくとも1つのセンサ及び少なくとも1つのアクチュエータを含む複数の取外し可能なポッドを備えた、脳ベースの装置。
  11. 神経モデルを実施するFPGAを備え、前記神経モデルは複数の神経素子を含み、前記FPGAは、前記神経素子を実施するための複数のコアを含み、これらコアは、データを並列に処理し、前記コアにおける処理は、入力値及び重みを使用する前シナプス計算と、この前シナプス計算の結果を使用して後シナプス出力を発生するための後シナプス計算と、前記重みを変更するための塑性計算とを含み、前記重みは、予め定められた順序で前記コアに対する重みを得るために重みテーブルを経てループすることにより前記コアに与えられる、特殊目的プロセッサ。
  12. 前記入力値は、出力記憶テーブルに対するポインタを得るために接続テーブルを通してループすることにより前記コアへ与えられ、前記ポインタは、予め定められた順序で前記コアの入力を指示する、請求項11に記載の特殊目的プロセッサ。
  13. 前記後シナプス出力は、出力記憶テーブルを経てループする予め定められた順序で前記コアから前記出力記憶テーブルに与えられる、請求項11に記載の特殊目的プロセッサ。
  14. 請求項11に記載の特殊目的プロセッサを備えた脳ベースの装置において、更に、
    前記特殊目的プロセッサのための入力を与える少なくとも1つのセンサと、
    前記特殊目的プロセッサからの出力を受け取る少なくとも1つのアクチュエータであって、前記出力が前記神経モデルの神経素子による処理の結果であるようなアクチュエータと、
    を備えた脳ベースの装置。
  15. 請求項11に記載の特殊目的プロセッサを備えた脳ベースの装置において、更に、
    少なくとも1つのセンサ及び少なくとも1つのアクチュエータを含む複数の取外し可能なポッドを備えた、脳ベースの装置。
JP2008519506A 2005-06-28 2006-06-28 神経モデリングのためのアドレス機構及び特殊目的プロセッサを使用する脳ベースの装置 Pending JP2008545197A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US69462805P 2005-06-28 2005-06-28
US11/426,896 US7627540B2 (en) 2005-06-28 2006-06-27 Addressing scheme for neural modeling and brain-based devices using special purpose processor
PCT/US2006/025107 WO2007002731A2 (en) 2005-06-28 2006-06-28 Addressing scheme for neural modeling and brain-based devices using special purpose processor

Publications (1)

Publication Number Publication Date
JP2008545197A true JP2008545197A (ja) 2008-12-11

Family

ID=37596005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008519506A Pending JP2008545197A (ja) 2005-06-28 2006-06-28 神経モデリングのためのアドレス機構及び特殊目的プロセッサを使用する脳ベースの装置

Country Status (4)

Country Link
US (3) US7627540B2 (ja)
EP (1) EP1899847A4 (ja)
JP (1) JP2008545197A (ja)
WO (1) WO2007002731A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016536679A (ja) * 2013-10-11 2016-11-24 クゥアルコム・インコーポレイテッドQualcomm Incorporated ニューラルシミュレータ用の共有メモリアーキテクチャ
JP2022523291A (ja) * 2019-01-18 2022-04-22 シリコン ストーリッジ テクノロージー インコーポレイテッド 深層学習人工ニューラルネットワーク内のアナログニューラルメモリにおいてニューロン電流をニューロン電流ベースの時間パルスに変換するためのシステム

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7627540B2 (en) * 2005-06-28 2009-12-01 Neurosciences Research Foundation, Inc. Addressing scheme for neural modeling and brain-based devices using special purpose processor
US7272681B2 (en) * 2005-08-05 2007-09-18 Raytheon Company System having parallel data processors which generate redundant effector date to detect errors
US7765029B2 (en) * 2005-09-13 2010-07-27 Neurosciences Research Foundation, Inc. Hybrid control device
EP2024901A2 (en) 2006-05-25 2009-02-18 Elminda Ltd. Neuropsychological spatiotemporal pattern recognition
US8407429B2 (en) * 2006-06-21 2013-03-26 Element Cxi, Llc Multi-context configurable memory controller
US20140214730A9 (en) * 2007-02-05 2014-07-31 Goded Shahaf System and method for neural modeling of neurophysiological data
US8127075B2 (en) * 2007-07-20 2012-02-28 Seagate Technology Llc Non-linear stochastic processing storage device
EP2256667B1 (en) * 2009-05-28 2012-06-27 Honda Research Institute Europe GmbH Driver assistance system or robot with dynamic attention module
JP2013529342A (ja) * 2010-05-19 2013-07-18 ザ リージェンツ オブ ザ ユニバーシティ オブ カリフォルニア ニューラル処理ユニット
US9626624B2 (en) * 2010-07-20 2017-04-18 Analog Devices, Inc. Programmable probability processing
US9563851B2 (en) 2011-06-07 2017-02-07 Analog Devices, Inc. Programmable probability processing
CN103136163B (zh) * 2011-11-29 2015-06-24 中国航空工业集团公司第六三一研究所 可配置实现fc-ae-asm和fc-av协议的协议处理器芯片
WO2013090451A1 (en) * 2011-12-13 2013-06-20 Simigence, Inc. Computer-implemented simulated intelligence capabilities by neuroanatomically-based system architecture
US9082078B2 (en) 2012-07-27 2015-07-14 The Intellisis Corporation Neural processing engine and architecture using the same
US9563841B2 (en) 2012-07-31 2017-02-07 International Business Machines Corporation Globally asynchronous and locally synchronous (GALS) neuromorphic network
US9159020B2 (en) 2012-09-14 2015-10-13 International Business Machines Corporation Multiplexing physical neurons to optimize power and area
US9185057B2 (en) 2012-12-05 2015-11-10 The Intellisis Corporation Smart memory
US9904889B2 (en) 2012-12-05 2018-02-27 Applied Brain Research Inc. Methods and systems for artificial cognition
US9087301B2 (en) 2012-12-21 2015-07-21 International Business Machines Corporation Hardware architecture for simulating a neural network of neurons
US9053429B2 (en) 2012-12-21 2015-06-09 International Business Machines Corporation Mapping neural dynamics of a neural model on to a coarsely grained look-up table
US9239984B2 (en) 2012-12-21 2016-01-19 International Business Machines Corporation Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a neural network
US9373073B2 (en) 2012-12-21 2016-06-21 International Business Machines Corporation Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a universal substrate of adaptation
US9600762B2 (en) 2013-04-12 2017-03-21 Qualcomm Incorporated Defining dynamics of multiple neurons
US9542643B2 (en) 2013-05-21 2017-01-10 Qualcomm Incorporated Efficient hardware implementation of spiking networks
US9330355B2 (en) 2013-08-06 2016-05-03 Qualcomm Incorporated Computed synapses for neuromorphic systems
CN103691058B (zh) * 2013-12-10 2015-10-28 天津大学 帕金森病基底核-丘脑网络的深度脑刺激fpga实验平台
US9852006B2 (en) * 2014-03-28 2017-12-26 International Business Machines Corporation Consolidating multiple neurosynaptic core circuits into one reconfigurable memory block maintaining neuronal information for the core circuits
US10817785B2 (en) * 2014-08-09 2020-10-27 Fred Narcross Brain emulator support system
US9916530B2 (en) * 2014-10-03 2018-03-13 The Regents Of The University Of California Neuromorphic circuit model simulation that facilitates information routing and processing
US10679120B2 (en) * 2014-11-10 2020-06-09 International Business Machines Corporation Power driven synaptic network synthesis
US10061531B2 (en) 2015-01-29 2018-08-28 Knuedge Incorporated Uniform system wide addressing for a computing system
US9552327B2 (en) 2015-01-29 2017-01-24 Knuedge Incorporated Memory controller for a network on a chip device
US11295202B2 (en) 2015-02-19 2022-04-05 Seagate Technology Llc Storage device with configurable neural networks
CN106295799B (zh) * 2015-05-12 2018-11-02 核工业北京地质研究院 一种深度学习多层神经网络的实现方法
US10027583B2 (en) 2016-03-22 2018-07-17 Knuedge Incorporated Chained packet sequences in a network on a chip architecture
US10346049B2 (en) 2016-04-29 2019-07-09 Friday Harbor Llc Distributed contiguous reads in a network on a chip architecture
US10140574B2 (en) * 2016-12-31 2018-11-27 Via Alliance Semiconductor Co., Ltd Neural network unit with segmentable array width rotator and re-shapeable weight memory to match segment width to provide common weights to multiple rotator segments
US11615297B2 (en) 2017-04-04 2023-03-28 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network compiler
US11238334B2 (en) 2017-04-04 2022-02-01 Hailo Technologies Ltd. System and method of input alignment for efficient vector operations in an artificial neural network
US11551028B2 (en) 2017-04-04 2023-01-10 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network
US11544545B2 (en) 2017-04-04 2023-01-03 Hailo Technologies Ltd. Structured activation based sparsity in an artificial neural network
US10387298B2 (en) 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
US10956811B2 (en) * 2017-07-31 2021-03-23 Intel Corporation Variable epoch spike train filtering
US11507806B2 (en) * 2017-09-08 2022-11-22 Rohit Seth Parallel neural processor for Artificial Intelligence
US10657426B2 (en) 2018-01-25 2020-05-19 Samsung Electronics Co., Ltd. Accelerating long short-term memory networks via selective pruning
US11263077B1 (en) 2020-09-29 2022-03-01 Hailo Technologies Ltd. Neural network intermediate results safety mechanism in an artificial neural network processor
US11237894B1 (en) 2020-09-29 2022-02-01 Hailo Technologies Ltd. Layer control unit instruction addressing safety mechanism in an artificial neural network processor
US11221929B1 (en) 2020-09-29 2022-01-11 Hailo Technologies Ltd. Data stream fault detection mechanism in an artificial neural network processor
US11874900B2 (en) 2020-09-29 2024-01-16 Hailo Technologies Ltd. Cluster interlayer safety mechanism in an artificial neural network processor
US11811421B2 (en) 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights safety mechanism in an artificial neural network processor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09319724A (ja) * 1996-05-31 1997-12-12 Noritz Corp 推論装置
JPH11515097A (ja) * 1995-09-19 1999-12-21 モルフォメトリックス テクノロジーズ インク. ニューラル・ネットワーク支援型のマルチスペクトル・セグメンテーション・システム
JP2002187082A (ja) * 2000-10-11 2002-07-02 Sony Corp ロボット制御システム及びロボット制御方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4095367A (en) * 1976-06-09 1978-06-20 Takara Co., Ltd. Articulated robot assembly
US5164826A (en) * 1991-08-19 1992-11-17 Westinghouse Electric Corp. Method and apparatus for visual inspection of the internal structure of apparatus through internal passages
US5491650A (en) * 1993-04-19 1996-02-13 California Institute Of Technology High precision computing with charge domain devices and a pseudo-spectral method therefor
US5781702A (en) * 1995-06-07 1998-07-14 Univ South Western Hybrid chip-set architecture for artificial neural network system
EP0834817B1 (en) * 1996-10-01 2000-08-02 FINMECCANICA S.p.A. AZIENDA ANSALDO Programmed neural module
DE19718224A1 (de) * 1997-04-30 1997-11-27 Harald Dipl Phys Wuest Digitaler Neuroprozessor
US20040015079A1 (en) * 1999-06-22 2004-01-22 Teratech Corporation Ultrasound probe with integrated electronics
US6882992B1 (en) * 1999-09-02 2005-04-19 Paul J. Werbos Neural networks for intelligent control
EP1089221A3 (en) 1999-09-29 2007-05-02 Lucent Technologies Inc. Spike-based hybrid computation
EP1405044A1 (en) * 2001-07-02 2004-04-07 Battelle Memorial Institute Intelligent microsensor module
US6553300B2 (en) * 2001-07-16 2003-04-22 Deere & Company Harvester with intelligent hybrid control system
EP1563348A2 (en) * 2002-08-21 2005-08-17 Neal E. Solomon Systems, methods and apparatus for organizing groups of self-configurable mobile robotic agents in a multi-robotic system
JPWO2004033159A1 (ja) 2002-10-11 2006-02-09 富士通株式会社 ロボット制御アルゴリズム構築装置、ロボット制御アルゴリズム構築プログラムロボット制御装置、ロボット制御プログラム、およびロボット
JP4587738B2 (ja) 2003-08-25 2010-11-24 ソニー株式会社 ロボット装置及びロボットの姿勢制御方法
US7519879B2 (en) * 2004-04-26 2009-04-14 Agilent Technologies, Inc. Apparatus and method for dynamic in-circuit probing of field programmable gate arrays
US7240160B1 (en) * 2004-06-30 2007-07-03 Sun Microsystems, Inc. Multiple-core processor with flexible cache directory scheme
US7430643B2 (en) * 2004-12-30 2008-09-30 Sun Microsystems, Inc. Multiple contexts for efficient use of translation lookaside buffer
US7627540B2 (en) * 2005-06-28 2009-12-01 Neurosciences Research Foundation, Inc. Addressing scheme for neural modeling and brain-based devices using special purpose processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11515097A (ja) * 1995-09-19 1999-12-21 モルフォメトリックス テクノロジーズ インク. ニューラル・ネットワーク支援型のマルチスペクトル・セグメンテーション・システム
JPH09319724A (ja) * 1996-05-31 1997-12-12 Noritz Corp 推論装置
JP2002187082A (ja) * 2000-10-11 2002-07-02 Sony Corp ロボット制御システム及びロボット制御方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSNG199700083011; 桑高 克直 他2名: '汎用並列ニューロコンピュータを用いたニューラルネットワーク演算' 電子情報通信学会技術研究報告 第96巻, 第430号, 19961214, p.79-86., 社団法人電子情報通信学会 *
JPN6012014787; Max van Daalen, et al.: 'A stochastic neural architecture that exploits dynamically reconfigurable FPGAs' Proceedings. IEEE Workshop on FPGAs for Custom Computing Machines 1993 , 19930407, pp.202-211 *
JPN6012064759; 桑高 克直 他2名: '汎用並列ニューロコンピュータを用いたニューラルネットワーク演算' 電子情報通信学会技術研究報告 第96巻, 第430号, 19961214, p.79-86., 社団法人電子情報通信学会 *
JPN7012001019; Anil K. Seth, et al.: 'Visual Binding Through Reentrant Connectivity and Dynamic Synchronization in a Brain-based Device' Cerebral Cortex Volume 14, Issue 11, 20040513, pp.1185-1199 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016536679A (ja) * 2013-10-11 2016-11-24 クゥアルコム・インコーポレイテッドQualcomm Incorporated ニューラルシミュレータ用の共有メモリアーキテクチャ
JP2022523291A (ja) * 2019-01-18 2022-04-22 シリコン ストーリッジ テクノロージー インコーポレイテッド 深層学習人工ニューラルネットワーク内のアナログニューラルメモリにおいてニューロン電流をニューロン電流ベースの時間パルスに変換するためのシステム
US11500442B2 (en) 2019-01-18 2022-11-15 Silicon Storage Technology, Inc. System for converting neuron current into neuron current-based time pulses in an analog neural memory in a deep learning artificial neural network
JP7346579B2 (ja) 2019-01-18 2023-09-19 シリコン ストーリッジ テクノロージー インコーポレイテッド 深層学習人工ニューラルネットワーク内のアナログニューラルメモリにおいてニューロン電流をニューロン電流ベースの時間パルスに変換するためのシステム

Also Published As

Publication number Publication date
US7627540B2 (en) 2009-12-01
EP1899847A2 (en) 2008-03-19
WO2007002731A3 (en) 2007-05-10
WO2007002731A2 (en) 2007-01-04
EP1899847A4 (en) 2009-12-02
US20070011118A1 (en) 2007-01-11
US20100161533A1 (en) 2010-06-24
US20110302120A1 (en) 2011-12-08
US8326782B2 (en) 2012-12-04
US7908235B2 (en) 2011-03-15

Similar Documents

Publication Publication Date Title
JP2008545197A (ja) 神経モデリングのためのアドレス機構及び特殊目的プロセッサを使用する脳ベースの装置
JP2009508182A (ja) 特殊目的プロセッサを使用する神経モデリング及び脳ベースの装置
Liu et al. Neuromorphic sensory systems
Walter et al. Neuromorphic implementations of neurobiological learning algorithms for spiking neural networks
US8793205B1 (en) Robotic learning and evolution apparatus
EP0715737B1 (en) Cnn topographic sensory organs and method
KR102589968B1 (ko) 3 차원 적층 구조를 갖는 뉴로모픽 회로 및 이를 포함하는 반도체 장치
Manfredi et al. A bioinspired autonomous swimming robot as a tool for studying goal-directed locomotion
KR20160123309A (ko) 확률적 스파이킹 베이지안망들에 대한 이벤트-기반 추론 및 학습
JP2013546065A (ja) シミュレーションを使用して学習されるシナプス重みを用いるニューロモーフィック/シナプトロニック・スパイキング・ニューラル・ネットワークのための方法、デバイス、および回路
CN105205533A (zh) 具有脑认知机理的发育自动机及其学习方法
Davies et al. Interfacing real-time spiking I/O with the SpiNNaker neuromimetic architecture
Ames et al. Persuading computers to act more like brains
De Garis et al. The cam-brain machine (cbm): Real time evolution and update of a 75 million neuron fpga-based artificial brain
Holland et al. Evolving collective behaviours in simulated kilobots
Zins et al. Implementation of Associative Memory Learning in Mobile Robots Using Neuromorphic Computing
JP2004348721A (ja) 2つの異なる複雑性レベルにおけるシミュレーション
Braccini et al. 1 Department of Computer Science and Engineering (DISI), Alma Mater Studiorum Università di Bologna, Cesena, Italy 2
Weng et al. Online learning for attention, recognition, and tracking by a single developmental framework
Capi et al. Evolving recurrent neural controllers for sequential tasks: A parallel implementation
Berthouze Bootstrapping the developmental process: The filter hypothesis
Kinouchi et al. A Conscious AI System Based on Recurrent Neural Networks Applying Dynamic Information Equilibrium.
Courtney et al. Cognitive systems platforms using open source
López‐Osorio et al. A Neuromorphic Vision and Feedback Sensor Fusion Based on Spiking Neural Networks for Real‐Time Robot Adaption
Krundel et al. Autonomous Design in VLSI: Growing and Learning on Silicon

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120326

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120626

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120703

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121217

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130318

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130326

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130924