(57)【要約】【課題】大規模な非線形確率的処理計算のための記憶装置を提供する。【解決手段】記憶装置はデータユニットを処理するメッセージを受信して出力するインターフェイスを含み、各データユニットはメッセージ入力フィールド・パラメータ、メッセージ出力フィールド・パラメータ、およびコンテンツ・フィールド・パラメータを含み、さらに、データユニットを格納する非揮発性メモリ、揮発性メモリ、およびインターフェイス、非揮発性メモリおよび揮発性メモリに接続されてデータユニット内のパラメータ値を操作し、データユニットを非揮発性メモリおよび揮発性メモリの少なくとも一方に格納するプロセッサを含んでいる。【選択図】図３
2009032259.tif 000002
【特許請求の範囲】
【請求項１】
データユニットを処理するメッセージを受信して出力するインターフェイスであって、各データユニットがメッセージ入力フィールド・パラメータ、メッセージ出力フィールド・パラメータ、およびコンテンツ・フィールド・パラメータを含むインターフェイスと、
データユニットを格納する非揮発性メモリと、
揮発性メモリと、
インターフェイス、非揮発性メモリおよび揮発性メモリに接続されてデータユニット内のパラメータ値を操作し、データユニットを非揮発性メモリおよび揮発性メモリの少なくとも一方に格納するプロセッサと、
を含む記憶装置。
【請求項２】
請求項１に記載の記憶装置であって、メッセージはデータユニット・アドレス・コンポーネント、随意的な更新制御エレメント、およびデータユニット・パラメータ操作コンポーネントを含む記憶装置。
【請求項３】
請求項１に記載の記憶装置であって、プロセッサは他のデータユニットから受信した入力メッセージに基づいてデータユニットを更新し、他のデータユニットにメッセージを送る記憶装置。
【請求項４】
請求項１に記載の記憶装置であって、プロセッサは他のプロセッサから受信した入力メッセージに基づいてデータユニットを更新し、他のプロセッサにメッセージを送る記憶装置。
【請求項５】
請求項４に記載の記憶装置であって、データユニットは第１の時間間隔内で更新され、更新されたユニットは第２の時間間隔に移る前に格納される記憶装置。
【請求項６】
請求項１に記載の記憶装置であって、受信されたメッセージは少なくともアドレスおよび更新制御エレメントを含む記憶装置。
【請求項７】
請求項１に記載の記憶装置であって、プロセッサはフィールド・プログラマブル・ゲートアレイを含む記憶装置。
【請求項８】
請求項１に記載の記憶装置であって、データユニットは固定値に初期化される記憶装置。
【請求項９】
請求項１に記載の記憶装置であって、データユニットのコンポーネントは非揮発性メモリ内に隣接せずに格納される記憶装置。
【請求項１０】
データユニットを処理するメッセージを受信して出力するインターフェイスであって、各データユニットがメッセージ入力フィールド・パラメータ、メッセージ出力フィールド・パラメータ、およびコンテンツ・フィールド・パラメータを含むインターフェイスと、
データユニットを格納する複数の非揮発性メモリと、
複数の揮発性メモリと、
複数のプロセッサであって、各プロセッサが少なくとも１つの非揮発性メモリおよび少なくとも１つの揮発性メモリに接続されて、データユニット内のパラメータ値を操作し、データユニットを非揮発性メモリおよび揮発性メモリの少なくとも一方に格納する複数のプロセッサと、
プロセッサに接続されたスケジューリング／メッセージング構造と、
を含む記憶装置。
【請求項１１】
請求項１０に記載の記憶装置であって、メッセージはデータユニット・アドレス・コンポーネント、随意的な更新制御エレメント、およびデータユニット・パラメータ操作コンポーネントを含む記憶装置。
【請求項１２】
請求項１０に記載の記憶装置であって、プロセッサは他のデータユニットから受信した入力メッセージに基づいてデータユニットを更新し、他のデータユニットにメッセージを送る記憶装置。
【請求項１３】
請求項１０に記載の記憶装置であって、プロセッサは他のプロセッサから受信した入力メッセージに基づいてデータユニットを更新し、他のプロセッサにメッセージを送る記憶装置。
【請求項１４】
請求項１３に記載の記憶装置であって、データユニットは第１の時間間隔内で更新され、更新されたユニットは第２の時間間隔に移る前に格納される記憶装置。
【請求項１５】
請求項１０に記載の記憶装置であって、入力メッセージは少なくともアドレスおよび更新制御エレメントを含む記憶装置。
【請求項１６】
請求項１０に記載の記憶装置であって、各プロセッサはフィールド・プログラマブル・ゲートアレイを含む記憶装置。
【請求項１７】
請求項１０に記載の記憶装置であって、データユニットは固定値に初期化される記憶装置。
【請求項１８】
請求項１０に記載の記憶装置であって、データユニットのコンポーネントは非揮発性メモリ内に隣接せずに格納される記憶装置。
【請求項１９】
請求項１０に記載の記憶装置であって、プロセッサはメッセージ内のデータユニットをフォーマットすることなくデータユニットに計算を実施する記憶装置。
【請求項２０】
請求項１０に記載の記憶装置であって、非揮発性メモリは円柱形記憶媒体を含む記憶装置。
【請求項２１】
各々がデータユニットを処理するメッセージを受信して出力するインターフェイスを含み、各データユニットがメッセージ入力フィールド・パラメータ、メッセージ出力フィールド・パラメータ、およびコンテンツ・フィールド・パラメータを含む複数の記憶装置と、データユニットを格納する非揮発性メモリと、揮発性メモリと、インターフェイス、非揮発性メモリおよび揮発性メモリに接続されて、データユニット内のパラメータ値を操作し、データユニットを非揮発性メモリおよび揮発性メモリの少なくとも一方に格納するプロセッサを含むシステムであって、記憶装置は互いに階層メッセージルーチング構造に接続されるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置に関し、特に非線形確率的処理計算を行うための記憶装置に関する。
【背景技術】
【０００２】
従来のデータ記憶装置はデジタル・コンピューティングの精密な記憶および検索ニーズに非常に適しており、データのビットはできるだけ完全に記憶および検索されるという属性を有する。データはファイルシステム、テーブルのシステム、またはオブジェクト関連バイトによる処理に役立つ形で格納される。インテリジェント・ドライブはコンピューティング・システムの性質を記憶装置内へ移すよう試みるが、基本的には、永久、非揮発性記憶装置（今日、その最も一般的な例はディスク装置およびフラッシュメモリ装置である）の性質を変えない。
【０００３】
多くの研究者にとって、実用的な帰納推論装置を得るには大量の非線形確率的処理計算を要することが長年明らかとなっている。それは多数のデータユニット内に格納されたパラメータに対する膨大な量のメモリすなわち非揮発性記憶スペースを要する。現在まで数百万データユニット程度までの大きなパラメータ確率的処理回路網のスケールアップに成功した努力がいくつかある。いくつかの努力は最先端のスーパーコンピュータを利用している。しかしながら、百万または一億、さらには十億の規模までのスケールアップはまだ実用的ではない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
非線形確率的処理計算を実施し、単一装置の境界外でさらにスケールアップが必要であれば他の記憶装置に接続することができる記憶装置が必要とされている。
【課題を解決するための手段】
【０００５】
一側面において、本発明はデータユニットを処理するメッセージを受信し出力するインターフェイスを含む記憶装置を提供し、各データユニットはメッセージ入力フィールドパラメータ、メッセージ出力フィールドパラメータ、およびコンテンツ・フィールドパラメータ、データユニットを格納する非揮発性メモリ、揮発性メモリ、およびインターフェイス、非揮発性メモリおよび揮発性メモリに接続されてデータユニット内のパラメータ値を操作し、データユニットを非揮発性メモリおよび揮発性メモリの少なくとも一つに格納するプロセッサを含んでいる。
【０００６】
他の側面において、本発明はデータユニットを処理するメッセージを受信し出力するインターフェイスを含む記憶装置を提供し、各データユニットはメッセージ入力フィールドパラメータ、メッセージ出力フィールドパラメータ、およびコンテンツ・フィールドパラメータ、データユニットを格納する複数の非揮発性メモリ、複数の揮発性メモリ、複数のプロセッサを含み、各プロセッサは少なくとも１つの非揮発性メモリおよび少なくとも１つの揮発性メモリに接続されて、データユニット内のパラメータ値を操作し、データユニットを非揮発性メモリおよび揮発性メモリの少なくとも一方に格納し、スケジューリング構造とメッセージ構造をプロセッサに接続する。
【０００７】
他の側面において、本発明は各々がデータユニットを処理するメッセージを受信し出力するインターフェイスを含む複数の記憶装置を含むシステムを提供し、各データユニットはメッセージ入力フィールドパラメータ、メッセージ出力フィールドパラメータ、およびコンテンツ・フィールドパラメータ、データユニットを格納する非揮発性メモリ、揮発性メモリ、およびインターフェイス、非揮発性メモリおよび揮発性メモリに接続されたプロセッサを含み、プロセッサは、データユニット内のパラメータ値を操作すると共に、データユニットを非揮発性メモリおよび揮発性メモリの少なくとも一方に格納し、記憶装置は互いに階層メッセージ・ルーティング構造において接続されている。
【０００８】
下記の詳細な説明を読めばこれらおよび他のさまざまな特徴および利点が明らかとなる。
【実施例】
【０００９】
一側面において、本発明はある何かが、以前見たものと同様であることを認識できる記憶装置、または正確な入力または出力を予め記録していなくてもその出力をその入力に適合できる記憶装置を提供する。この記憶装置は入力から引き出されたパラメータを保存し、また入力から引き出されたパラメータを提供する。一実施例では、この記憶装置は非線形確率的処理（ＮＬＳＰ）に対する一般的なプラットホームを提供し、今日の記憶装置のライト／リード・コマンドとは特性的に異なる入力／出力を処理する。
【００１０】
計算のＮＬＳＰモデルは機械学習およびパターン認識問題のますます重要な分野である。これらの計算モデルは非揮発性の保存されたデータユニット間の主に部分的で潜在的に確率的な相互作用により特徴づけられる。例としてベイズ回路網その他の確率的グラフィカルモデルのトレーニングおよび推論、人工神経回路網のトレーニングおよびシミュレーション、大きなデータセット上の社会的回路網解析、空間分布システムの確率的シミュレーション、および複雑なフィードバックに基づいた非常に適応性のある制御システムが含まれる。これらのアルゴリズムは劇的にスケールアップして、柔軟な適応性のある認識および制御に必要な大量のデータセットを効率的に処理する必要のあることがよく知られている。
【００１１】
ＮＬＳＰモデルを劇的にスケールアップするには新しいタイプのコンピュータ・アーキテクチュアが必要である。一側面において、本発明はＮＬＳＰデータユニット間の単純な計算を非揮発性記憶装置と強固に結びつけることによりＮＬＳＰモデリングに必要なスケーリングを達成する。一例として、図１に図式的に例示された単純なヘブ神経回路網のＮＬＳＰを考える。図１において、データユニット１０、１２、１４、１６、１８、２０および２２が処理されてメッセージを生じ、それは矢印のように他のデータユニットへ送られる。入力２４および２６はメッセージであり出力２８および３０もメッセージである。データユニット１４、１６および１８は入力や出力に直接接続されない隠れデータユニットである。
【００１２】
データユニット上で実施される処理は図２に例示されている。この例において、活性化（ａｃｔｉｖａｔｉｏｎ）と呼ばれる数値が、計算されて他のデータユニットへ出力されるものである。複数のメッセージ４０、４２および４４がそれぞれ４６、４８および５０で重み付けされる。次に、ブロック５８に示すように、入力メッセージの重み付け和分を行い、ブロック６０に示すようにＳ字関数等の制限関数を適用することにより出力値５２、５４および５６が計算される。計算された値を含む出力メッセージは他の接続されたデータユニットへ送られる。
【００１３】
図３は本発明の側面に従って構成された情報処理装置７０のブロック図である。装置はデータユニットおよび制御コマンドを処理して形成されるメッセージを受信して出力する入出力インターフェイス７２を含んでいる。インターフェイスは、たとえば、ＡＴＡ、ＳＣＳＩその他の周辺インターフェイス、またはコンピュータ・インターフェイスとすることができる。制御コマンドは装置が初期化され、テストされプログラムされるようにする。また、制御コマンドは従来の記憶装置において一般的である正確なデータ複製を考慮している。この例では、メッセージおよび制御コマンドはバス７６上の入力装置７４により供給され、バス８０上の出力装置７８へ送られる。入力装置はデータユニット情報をメッセージ内にカプセル化してインターフェイスへメッセージを送る。もう１つの例では、入力および出力装置は同じ装置とすることができ、単一バスを使用してメッセージおよび制御データを転送することができる。情報処理装置７０は非揮発性メモリ８２の形態である第１のメモリコンポーネントを含んでいる。非揮発性メモリはデータユニットのパラメータおよびプログラミングの長期記憶を提供する。それは、たとえば、磁気、光学、磁気光学、または強誘電性の記憶媒体を含むことができる。これらのケースでは、記憶媒体に情報を読み書きするリード/ライト・ヘッドの形の複数の変換器（ｔｒａｎｓｄｕｃｅｒ）を含むことができる。あるいは、非揮発性メモリコンポーネント８２は固体メモリデバイス、またはデータユニットの長期記憶を提供する任意の他のタイプのメモリデバイスとすることができる。
【００１４】
情報処理装置７０は、さらに、高速ランダムアクセスメモリ（ＲＡＭ）等の揮発性高速メモリ８４の形態をとる第２のメモリコンポーネントを含んでいる。所望の機能に従ってデータユニットを処理するためのプロセッサ８６が提供される。ＮＬＳＰ処理操作は単純であるため、プロセッサはフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）として実現することができ、それはデータユニットに機能を実施するようにプログラムすることができる。プロセッサは非揮発性メモリまたは高速メモリからデータユニットを読出し、たとえば、データユニットの一部に重みを付けることにより、これらのデータユニット内のパラメータを操作し、処理されたデータユニット内の変化した値を必要な特定のＮＬＳＰ計算に適切なものとして非揮発性メモリまたは高速メモリに書き込む。この例では、プロセッサは所望の非線形確率的処理機能を達成する操作をスケジュール管理することもできる。
【００１５】
情報は揮発性メッセージの形で情報処理装置により受信され出力される。メッセージは第２のメモリコンポーネント内に格納されプロセッサにより処理される。しかしながら、他のデータユニットと相互作用するデータユニットが第１または第２のメモリコンポーネント内に格納されると、プロセッサはこれらのデータユニット間でＮＬＳＰ計算を伝搬させるためにメッセージを形成しなくてもよいことがある。最高性能の伝搬は、デバイス・インターフェイスを通るメッセージの入力または出力が要求されるまで完全に揮発性ＲＡＭ内に含まれるデータユニットを通る伝搬であろう。
【００１６】
図４ａはデータユニット９０の略表現である。データユニットはアドレスフィールド９２、入力フィールド９４、状態またはコンテンツフィールド９６、および出力フィールド９８を含んでいる。アドレス９２は、情報処理装置内および回路網内で接続することができる多数の情報処理装置間の両方で、データユニットを一意的に識別する。入力フィールドはメッセージパラメータを含み、データユニットと相互作用することができ、かつ接続されたデータユニットのアドレス１００、時間タグ１０２、および接続に関連する重みや定数等の他のパラメータ１０４を指定することができる他のデータユニットを識別する。入力フィールドは過去の入力状態データまたは予測された入力状態データを含むこともできる。過去の入力データはＮＬＳＰシステムを前の状態にリセットするリセットデータも含むこともできる。状態またはコンテンツフィールドは入力データおよび恐らくは過去の状態データ、リセットデータ、または予測された状態データのうちの１つ以上の関数であるデータを含む。コンテンツフィールドは時間タグ１０６、出力を通って伝播される出力値１０８、および異なる入力上のベクトルまたはパターン値、および異なる出力上のベクトルまたはパターン値等の他のパラメータ１１０を含むことができるパラメータを含んでいる。コンテンツフィールド内の特定の非揮発性値は特定の非線形確率処理アルゴリズムによって決まる。
【００１７】
ＮＬＳＰ機能は通常機能完了前に入力データユニットがタイムラグ値に更新されている必要がある。次に、コンテンツフィールドは時間タグ値を得て出力値が完結される。出力フィールドはメッセージパラメータを含み、機能が完了した後でデータユニットから情報を受信することができる他のデータユニットを識別し、かつ接続されたデータユニットのアドレス１１２を特定する。ＮＬＳＰモードでは常識であるとまではいかないが、随意、入力機能でもコンテンツ機能でもないもう１つの機能を出力に適用することができる。これは活性化、重み、定数、過去および予測、ベクトルおよびパターン値を必要とすることがあり、恐らくは各出力ユニットに対する出力フィールドにも時間タグが格納される。
【００１８】
アドレスはメッセージがデバイス内、またはデバイスの集り内または集り間のデータユニットを区別するように経路選択できるようにする識別子とすることができる。この識別子は、たとえば、データユニットの接続に関する付加情報を直接含むことができ、またはデータユニットへの経路選択に関する付加情報を含むテーブルへのポインタを含むことができる。次に、プロセッサはこの情報に間接的にアクセス（言い換えると参照）することができる。識別子内のポインタを使用してテーブルから接続情報を引き出すことは「間接参照（ｄｅｒｅｆｅｒｅｎｃｉｎｇ）」と呼ばれる。
【００１９】
データユニットのコンポーネントは実現される非線形確率的プロセスの数学により定義することができる。確率的プロセスは、たとえば、コネクショニストシステムとすることができる。一実施例では、コンテンツフィールドはｙ＝ｆ（ｗｉｘｉ＋ｂｉ）等の関数を表すことができるデータｙを含む。ここで、ｗｉは重みであり、ｘｉは入力値であり、ｂｉは定数である。ユニットがニューロンデータを表す場合、このユニットは情報を受信して他のユニットへ出力データを与える活性化ユニットとすることができる。データユニット内のデータは線型関数を表すことができるが、多数のデータユニットが組合せ処理される場合、非常に非線形のプロセスを実現することができる。
【００２０】
データユニットのコンポーネントは隣接して格納する必要がない。入力、コンテンツ、および出力のコンポーネントは記憶装置の異なる部分内に配置することができる。たとえば、いくつかのＮＬＳＰの実行では、入力および出力アドレスは初期確立後変化しないため、これらのコンポーネントを時間変化コンポーネントの格納に使用されるものとは別の記憶媒体のエリアに格納することができる。
【００２１】
デバイスはユニット間のメッセージング・フレームワークを利用する。ユニットは入力を受信して更新される。次に、メッセージは他のユニットへ送られる。プロセッサはメッセージを形成する、あるいは、より直接的に新しいコンテンツ値をアドレス指定された出力データユニットへ伝える。図４ｂは１つ以上の出力データユニット・アドレス１２２、時間タグ１２４等の随意的な更新制御エレメント、および、たとえばデータユニット内の機能により計算された１つ以上のデータ値１２６とすることができるデータユニット操作パラメータを含むメッセージ１２０を示す。随意的な更新制御エレメントはＮＬＳＰプロセスのマーキング・モデル・タイプが実現される時の時間タグ、または、たとえばスパイキング・モデルＮＬＳＰプロセスが実現される時のカウント値またはアドレスリストとすることができる。
【００２２】
図３のデバイスでは、メッセージのやりとりは高速ＲＡＭと相互作用するプロセッサにより実現される。ＲＡＭは保存に使用することができる。したがって、多くのデータユニットをＲＡＭから引出し、１つ以上のタイムステップを介して処理し、ＲＡＭ内に保持してさらなる処理を容易にすることができる。メッセージが、デバイスの集り内の複数のデバイスに渡ってやりとりされるのに対して、これは階層ルーチング構造内で実施することができる。
【００２３】
図５は本発明の別の側面に従って構成されたもう１つの情報処理装置１３０のブロック図である。この装置はメッセージおよび制御コマンドを受信して出力する入出力インターフェイス１３２を含んでいる。この例では、メッセージはバス１３６上の入力装置１３４により供給され、バス１４０上の出力装置１３８へ送られる。別の例では、入力および出力メッセージは同じ装置に対するものとすることができ、単一バスを使用してデータユニットを転送することができる。情報処理装置１３０は非揮発性メモリ１４２、１４４、および１４６の形をとる複数の第１のメモリコンポーネントを含む。各プロセッサは非揮発性メモリへの単一リード／ライト・チャネルと関連しているが、２つ以上のプロセッサが１４６のように同じメモリを共有することができる。
【００２４】
非揮発性メモリはデータユニットの長期記憶装置を提供する。それは、たとえば、磁気、光学、磁気光学、または強誘電性記憶媒体を含むことができる。これらのケースでは、記憶媒体へ情報を読み書きするリード/ライト・ヘッドの形の複数の変換器を含むことができる。あるいは、非揮発性メモリコンポーネントは固体メモリデバイス、またはデータユニットの長期記憶を提供する任意の他のタイプのメモリデバイスとすることができる。
【００２５】
情報処理装置１３０は、さらに、高速ランダムアクセスメモリ（ＲＡＭ）のような高速メモリ１５０、１５４、１５６の形をとる複数の第２のメモリコンポーネントを含む。２つ以上のプロセッサが１５０のように同じＲＡＭを共有することができる。所望の機能に従ってデータユニットを処理するための複数のプロセッサ１５８、１６０、１６２および１６４が設けられる。プロセッサはフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）として実現され、それはデータユニットに非線形確率的機能を実施するようにプログラムすることができる。ユニットに適用される機能が固定されるいくつかの機能の実施においては、プロセッサは非フィールド・プログラマブル・エレクトロニクスにより構成することができる。プロセッサは非揮発性メモリおよび高速メモリからデータユニットを読み出し、たとえば、データユニットに重みを付けることによりこれらのデータユニットを処理し、処理されたデータユニットを非揮発性メモリに書き込むことができる。この例では、たとえば、プロセッサの操作を調整することにより操作のスケジュール管理を行い所望の非線形確率的処理機能を達成するスケジュール管理およびメッセージのやりとりを行うプロセッサ（ａ  ｓｃｈｅｄｕｌｉｎｇ  ａｎｄ  ｍｅｓｓａｇｉｎｇ  ｐｒｏｃｅｓｓｏｒ）１６６が含まれている。スケジューリング／メッセージング・プロセッサはＦＰＧＡスケジューリング／メッセージング構造の形をとることができる。
【００２６】
互いに作用するユニットが同じプロセッサにより管理される、または１５０のように同じＲＡＭを共有する２つのプロセッサにより管理される場合、データユニットは直接更新することができるため、メッセージを構成することは重要ではない。しかし、データユニットに対する共通記憶装置がなければ、メッセージが形成されてメッセージング構造１６６を介して送られる。
【００２７】
図６は本発明の一側面に従って構成されたもう１つの情報処理装置１７０のブロック図である。この装置はデータユニットを受信して出力する入出力インターフェイス１７２を含んでいる。この例では、データユニットはバス１７６上の入力装置１７４により供給され、バス１８０上の出力装置１７８へ送られる。もう１つの実施例では、入力および出力装置は同じ装置とすることができ、単一バスを使用してデータユニットを転送することができる。情報処理装置１７０は非揮発性メモリ１８２、１８４および１８６の形をとる複数の第１のメモリコンポーネントを含む。非揮発性メモリコンポーネントはデータユニットの長期記憶装置を提供する。長期記憶装置は、たとえば、磁気、光学、磁気光学、または強誘電性記憶媒体を含むことができる。これらのケースでは、記憶媒体に情報を読み書きするリード／ライト・ヘッドの形をとる複数の変換器を含むことができる。あるいは、非揮発性メモリは固体メモリデバイス、またはデータユニットの長期記憶装置を提供する任意の他のタイプのメモリデバイスとすることができる。
【００２８】
情報処理装置７０は、さらに、高速ランダムアクセスメモリ等の高速メモリ１８８、１９０および１９２の形をとる複数の第２のメモリコンポーネントを含んでいる。所望の機能に従ってデータユニットを処理するための複数のプロセッサ１９４、１９６、１９８および２００が提供される。ある例では、多数のプロセッサが単一高速メモリにアクセスすることができ、かつ／または多数のプロセッサが単一非揮発性メモリにアクセスすることができる。プロセッサはフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）として実現することができ、それはデータユニットに非線形確率的処理機能を実施するようにプログラムすることができる。プロセッサは非揮発性メモリおよび高速メモリからデータユニットを読み出し、たとえば、データユニットの一部に重み付けすることによりこれらのデータユニットを処理し、処理されたデータユニットを非揮発性メモリに書き込むことができる。ＦＰＧＡスケジュール管理およびメッセージング構造の形をとることができるスケジューリング／メッセージング・プロセッサ２０２がプロセッサの動作を調整する。
【００２９】
図３、５および６の情報処理装置は認識ドライブ（ｒｅｃｏｇｎｉｔｉｏｎ  ｄｒｉｖｅ）と呼ばれる。認識ドライブはデータ記憶コンポーネント、およびデータ記憶コンポーネントを相互接続する付加コンポーネントを含んでいる。認識ドライブはディスク装置またはバイト、ブロック、もしくはオブジェクト指向（ｏｂｊｅｃｔ  ｏｒｉｅｎｔｅｄ）の記憶装置等の従来のデータ記憶装置とは基本的に異なる方法で動作する。
【００３０】
さまざまな側面において、認識ドライブは新しい種類のコンピューティング・デバイス、デバイスコントローラ、デジタルカメラ、デジタル・イメージプロセッサ、デジタル・オーディオプロセッサ、またはコンピュータやコンピューティング回路等の、典型的に情報処理を内蔵する任意の他のデバイス種として実現することができる。たとえば、ドライブ内に格納されたデータユニットをアドレス指定する入力メッセージを作り出し、出力はカメラ画像をこれらの画像内で計算された対象に関して分類するメッセージとすることができるようなカメラを設計することができる。従来のコンピュータはこれらの出力メッセージを取り出し画像をデータベースのアプリケーションに対してラベル付けすることができる。
【００３１】
認識ドライブは高度に並列にデータ処理を行うかあるいは並行性（ｐａｒａｌｌｅｌｉｓｍ）をシミュレートする。複数のソースからのデータは内外で多重化することができ、タイムスタンプ（ｔｉｍｅ  ｓｔａｍｐｉｎｇ）に対する必要性を除去することができるだけの十分なパラレリズムが得られなければ、データにタイムスタンプを行うことができる。前記した例では、エレクトロニクスは世界イベント、認識、およびアクションに関して非常に速いが、装置内で実施される計算は完全にパラレルにはできず、明白な時間タグ付け（ｔｉｍｅ  ｔａｇｇｉｎｇ）が必要であると仮定する。
【００３２】
個別の各情報処理装置はインターフェイスを介して受信される一連のメッセージの処理を助けるのに使用されるメモリを含んでいる。メッセージは複数のセンサ等の信号源または他の情報処理装置により作り出すことができる。メモリは構造を含む前に出会ったデータユニットの系列（シーケンス）の形でメッセージを格納することができる。データユニットの系列に２回以上出会っておれば、データユニット変化の入力シーケンスは構造を含むものと見なすことができる。個別の情報処理装置は、入力メッセージのストリーム内のこのような構造化シーケンスを後に認識するために、構造を含む格納されたデータユニットの系列を使用することができる。
【００３３】
多くの一般的なＮＬＳＰモデルにおいて、入力メッセージは少なくとも２つの次元（ディメンジョン）、空間的次元（ディメンジョン）および時間的次元（ディメンジョン）を有する。空間ディメンジョンは同じタグ付け時間において異なる情報処理装置へ処理するために与えられる関連信号の集りを構成する。これらの信号は空間ディメンジョン内で情報の単位を形成すると考えられる。タグ付けされた時間にわたって、異なるソースから異なるデータユニットが受信される。連続したメッセージは時間的に密接に関連され、異なるデータユニットの系列を構成する。
【００３４】
空間ディメンジョンおよび時間ディメンジョン内のデータユニットの系列は非常に多くの異なるソースからの情報を表すことができる。データユニットの系列内の情報は一般的に時間を越えて高度に相関される。情報の相関は学習に対して重要である。こうして、データユニットの継続的シーケンスを受信すると学習のための大量の有用な情報が提供される。したがって、多くのＮＬＳＰ例において、本発明の装置は時間と共に発生したデータユニットのシーケンスをそこから学習するためのソース情報のストリームとして使用する。
【００３５】
認識ドライブは一連のメッセージを入力として受信する。プロセッサは受信したメッセージの入力シーケンスを処理し、メッセージを使用して１つ以上のデータユニット内の情報を更新する。いくつかの入力シーケンスが処理された後で、認識ドライブは自身の出力上に一連のメッセージを生成することができる。メッセージの出力シーケンスは１つ以上の他の認識ドライブへ入力として通すことができ、それらは階層配置することができる。認識ドライブの一層は外界からの感覚（ｓｅｎｓｏｒｙ）入力を受信することができる。感覚入力は一連のメッセージを含むこともできる。
【００３６】
データＤ（すなわち、データユニット）で開始すると、そのデータの現実の、またはシミュレートされた発生時間はＴで示される。時間Ｔにおける情報処理装置への全入力が合計され、計算結果が送られてレセプタ情報処理装置により処理された時に時間パラメータＴが増分される。入力の合計、および各種計算は、各データユニットが非線形活性化機能に基づくルックアップテーブル付き乗算／累算ノードを表すことができるＦＰＧＡ内に実現された一連の算術論理ユニット内で行うことができる。Ｔは入力および出力データユニットをタグ付けして非同期マルチユニット処理によりデータユニットの時間的順序を保存するのに使用されるグローバル・タイムスタンプ・パラメータである。
【００３７】
一実施例では、Ｔは個別の整数値である。それは２４８等の大きい数とすることができ、実際上、それ自体に戻ることは決してない。Ｔとして大きな数を使用することにより、認識ドライブに対するヒストリカル・クロッキング（ｈｉｓｔｏｒｉｃａｌ  ｃｌｏｃｋｉｎｇ）を提供することができる。もう１つの例では、Ｔ−１状態における動作（ａｃｔｉｖｉｔｙ）は時間Ｔ内の任意の動作へ移る前に完了しなければならないため、Ｔは１ビットまで小さくすることができる。しばらくの間アクティブではないデータユニットが新しいＴ状態に対して絶えず調節される必要がないよう、一般的には大きい数が好ましい。
【００３８】
データユニットはソース活性化が現在の活性化とどのように結合し、またターゲット活性化を分散させるかを指定するメタデータを含むことができる。活性化はデータユニットの出力であり、典型的には非線形正規化機能または入力レベルの合計の変換である。
【００３９】
論理的には出力データユニットしか識別する必要がないが、定められたＴ内に全データユニットからメッセージが受信されるかどうかを確認するのに入力データユニットのリストが有用である。あるいは、この機能をカウンタにより実施することができる。データユニットは他のデータユニットから入力または活性化を受信し、それらは活性化レベルに達するまで合計されるとともに、情報処理装置は出力を送る必要がある。出力を送るために、情報処理装置は出力データユニットまたはターゲットデータユニットのリストを知る必要がある。したがって、回路網は入力データユニットのリスト無しに機能することができる。しかしながら、特定の情報処理装置がその入力データユニットのどの部分が活性化されるかを知りたい場合、カウンタによりそれを行うことができる。カウンタは、合計してどれだけ多くの入力接続があるかを知っているものと仮定して、活性化レベルに達するのにどれだけ多くの入力を取ったかをカウントする。
【００４０】
ＮＬＳＰ計算に利用可能な最適化は、限定はしないが、データセット内のデータユニットのフォーマット化や配置を含んでいる。サブネットの階層であるＮＬＳＰ計算は高度に相互接続されたデータユニットを非線形性記憶装置内に互いに近くに配置して、プロセッサ、もしくは密接に結合されたプロセッサが、共有ＲＡＭを使用して性能を最適化できるようにする。
【００４１】
他のハウスキーピングおよびポインタ情報を含むことができる。認識ドライブをより慣習的な記憶システムに作用させるために、外部ポインタを使用して慣習的な方法で格納されたデータを識別することができる。認識ドライブはパーティションを有することができ、それはＡＴＡまたはＳＣＳＩ等の従来の記憶コマンドを使用して読み書きする。一例では、認識された対象は従来の記憶装置にアクセスしてその対象のデータベースエントリを行うことができる。また、履歴情報をデバッギングの目的で従来のやり方で記録することができる。従来のＡＴＡまたはＳＣＳＩコマンドを使用してデータユニット回路網、およびドライブのＮＬＳＰパーティション内のＦＰＧＡプログラムをセットアップ、初期化、読出し、またはコピーすることができる。
【００４２】
パラレリズムの例はバッファにメッセージをロードし、定められたＴに対する全てのメッセージが送り出された時しか次のＴに行かないことである。Ｔ当たりの通信数が小さい場合、データユニット上のパスは１つで足りる。通信数がバッファの容量を超える場合、データユニット上に多数のパスが必要である。全体サブネット・エポック（ｓｕｂ−ｎｅｔ  ｅｐｏｃｈｓ）とサブネット内の処理を区別する２つのタイムスタンプがいくつかのＮＬＳＰモデル内にあることがある。
【００４３】
スイッチングレートを決定するために、低位統計パターン認識方法論（ａ  ｌｏｗ  ｏｒｄｅｒ  ｓｔａｔｉｓｔｉｃａｌ  ｐａｔｔｅｒｎ  ｒｅｃｏｇｎｉｔｉｏｎ  ｍｅｔｈｏｄｏｌｏｇｙ）等の数学的プロセスは好まれないものと仮定する。むしろ、非線形性に関する脳の設計により近い方法論が好ましい。しかしながら、交差接続されたデータユニットのサブネットをユニットとして構成してより速い計算を潜在的に可能にすることができる。
【００４４】
ＮＬＳＰ実現のための既知の設計は操作の訓練（ｔｒａｉｎｉｎｇ）フェーズを被訓練フェーズから区別する。これは入力および所望の出力がそのような大きなセットを構成する、またはそれらが過度に訓練を受けて失敗するために、あるＮＬＳＰ実行が訓練に長時間を要することがあるためである。過度の訓練の落し穴はしばしば回路網を過度の訓練に対して補償するように成長させ、再び性能制限に導くことにより回避することができる。しかしながら、本発明は訓練および被訓練モードの両方に利点を有する。訓練モードでは、一般的に重みが変えられ、それはデータユニット値、特に、データユニット内の重み値が非揮発性メモリ内で更新されることを要求する。被訓練モードでは、このようなデータユニット値は永久に変わらず、そのためデータユニット値は非揮発性メモリから読み出されるだけである。しかしながら、たとえ被訓練モードであっても、データユニット内のある値は格納しなければならないことがある。たとえば、非常に大きな回路網の時間タグは非揮発性記憶装置に更新することができる。訓練モードにおける利点は必要なデータユニットを非常に迅速に高速メモリにロードして速く実行することができ、データユニットの小部分しか書き戻す必要がないことである。被訓練モードにおける利点は必要なデータユニットを非常に迅速に高速メモリにロードして速く実行することができ、恐らくは非揮発性メモリへの書込みの必要性が生じないことである。
【００４５】
一例では、データユニットはニューロンを表すことができる。本明細書において使用されるように、ニューロンは生理学的データユニットと必ずしも等価ではない。たとえば、生理学的ニューロン内のあるファイアリング・パターンはデータユニットの一部に局在する。このような機能性はデータユニット・データセットにより特定したりしなかったりすることができる。
【００４６】
データユニット識別子は各データユニットに対して一意的とすることができ、メッセージをデータユニットに対して指向するルーチング情報を識別する部分を含むことができる。代替例では識別子にハンドル（ｈａｎｄｌｅ）を取り付けてルーチング情報を効率的に変えられるようにすることができる。図３の例では、スイッチングが中央間接参照機構（ｃｅｎｔｒａｌ  ｄｅｒｅｆｅｒｅｎｃｅ  ｍｅｃｈａｎｉｓｍ）を参照することなくローカルに行われるため、識別子は間接的に参照されないものと仮定する。
【００４７】
図７は本発明のもう１つの側面に従って実現することができる回路網内に複数の認識ドライブ２１２を含む認識ドライブシステム２１０を形成する接続された情報処理装置の階層の略図である。回路網は複数の認識ドライブ２１２、および複数のスイッチ２１４を含んでいる。認識ドライブはスイッチを介して互いに接続されている。スイッチも互いに接続することができる。回路網は層をなす機能的構造を有する。データは入力ライン２１６で回路網へ供給することができる。このデータはセンサ２１８から供給することができる。スイッチはメッセージ内のアドレスにより制御される。データユニットに対する単純なアドレス指定はデータユニットを含む階層内のノードデバイスおよび記憶装置内側のデータユニットの特定の非揮発性場所に対するルーチング情報を含む。１つのドライブからの出力メッセージがもう１つのドライブ内のデータユニットをアドレス指定することができる。
【００４８】
図７は概念的説明の目的で提供される。実際のシステムには、より多くの層があり各層内により多くの認識ドライブがあるものと思われる。各認識ドライブを駆動する単一アルゴリズムの適切な決定により、図７に例示された階層アーキテクチュアを使用してインテリジェント・マシンを組立てることができる。
【００４９】
ドライブはＴ内で同期化することができる。その結果デュープル（ｄｕｐｌｅｓ）{Ｔ，Ｄ}が得られ、異なるデータが同じ時間（リアルまたはシミュレートされた時間）に生じる、および／または同じデータが異なる時間（リアルまたはシミュレートされた時間）に生じるようにされる。このように、各ドライブはその内部計算をＴに関連づけるよう告げられＴに対する出力メッセージの作成を完了するまでＴ＋１においてメッセージを処理しない。
【００５０】
データユニットおよびドライブ間の配線はランダムに分散されない。むしろ、ほとんどの配線が短距離をカバーし、より少数の配線が層を接続し、他と比較して少数の配線だけが長距離配線となる。認識ドライブが図７のように階層配置され終端データ入力または出力が終端層ドライブの入力および出力であれば、ドライブ間でメッセージをルーチングするスイッチはドライブの外側にあるが、記憶装置のかなりの量を横断して（ａｃｒｏｓｓ）認識を実行することができる。図７に示すように、認識ドライブの配列はリッチな感知（すなわち、入力）‐‐運動（ｍｏｔｏｒ）（すなわち、出力）システムを確立するように提供することができ、層１は生の感知または運動データユニットを含む。実際のシステムに必要な層数の仮定はない。図７の例は単なる実例にすぎない。他の例は任意数の層、認識ドライブ、およびスイッチを収容することができる。
【００５１】
接続された認識ドライブの階層を使用して認識機能をモデル化することができる。どれだけ多くのデータユニットが脳内にあるか誰も実際には知らないが、一般的な１組の予想をすると、脳内にはおよそ１００億のデータユニットがあり、各々が他のデータユニットへの１，０００〜１０，０００の接続を有する。１０，０００は１００億の極めて小部分であり、脳内には直接接続されないおよそ１００億のデータユニットがあると仮定することができる。認識機能をモデル化する認識ドライブはまばらなメッセージ・スイッチング回路網と考えられる。
【００５２】
この側面において、認識ドライブはＴ当たりデータユニット当たりおよそ１０，０００メッセージを切替（ｓｗｉｔｃｈ）、移動（ｍｏｖｅ）、および保存（ｓｔｏｒｅ）する必要があると推定される。さらに、ドライブはＴ当たりおよそ１０，０００メッセージを処理する必要がある。スイッチング機器はＴ当たり１０，０００メッセージの１００億倍、すなわちＴ当たり１００兆スイッチ操作を処理できる必要がある。Ｔのリアルタイム持続時間はおよそ５０ミリ秒よりも少ない。単純な２進スイッチングシステムは最長横断線がおよそ４５スイッチの２倍、すなわちＴ当たり９０スイッチであることを示唆している。
【００５３】
回路網内の各スイッチング回路は２つ以上の回路に接続される。１６路スイッチを仮定すると、各時間Ｔに対するスイッチの数は９０から２０まで劇的に低下する。全データユニットに対する十分速いリード／ライト記憶装置を有するものと仮定すれば、これらの数はリアルタイム処理の範囲内である。
【００５４】
これらの考慮すべき問題は認識ドライブの階層を使用して取り組むことができる。各情報処理装置は処理しなければならないユニットのシーケンスを受信する。階層の各層はデータユニットのシーケンスの形で入力を受信し、データユニットのシーケンスの出力も行う認識ドライブを含む。これらの出力ユニットは次に高い層内の認識ドライブへの入力となる。回路網は各階層上において、層が上がるごとに漸減する認識ドライブを必ずしも含まないことがある。
【００５５】
前に出会ったデータユニットのシーケンスが認識ドライブにより認識されると、認識ドライブはこのような認識を他の層内の認識ドライブに報告することができる。他の認識ドライブへの出力は認識されたデータユニット・シーケンスの識別子を含むことができる。時間が経過すると、認識されたシーケンスの識別子を含む出力ストリームはデータユニットのシーケンス自体を含む。データユニットの出力ストリームは他の層内の認識ドライブにより同様な方法で処理される入力を含むことができる。２つ以上低い層の出力は一緒に結び付けて、結び付けた出力が上層内で処理できるデータユニットのシーケンスを形成するようにすることができる。
【００５６】
認識ドライブは記憶されたデータユニットのシーケンスを使用して、あいまいな情報を分解するために着信シーケンスについて予測を行うことができる。詳細には、現在既知のシーケンスを受信していると決定すると、認識ドライブはシーケンス内で受信される次のデータユニットを予測することができる。認識ドライブは予測を使用して受信された次のデータユニットを解釈することができる。たとえば、認識ドライブ内への入力ストリームがあいまいであれば、その認識ドライブは予測されたデータユニットを使用して次の入力データユニットの識別を助けることができる。
【００５７】
認識ドライブは、さらに、予測された次のデータユニットを他の認識ドライブへ提供することができる。予測を受信する認識ドライブはこれらの認識ドライブが出会う次のシーケンスの予測としてこれを解釈し、したがって他のドライブへ出力することができる。このような予測情報は他の認識ドライブ層が次のシーケンスを正しく識別するのを助ける情報を含むことができる。
【００５８】
このシステムは認識ドライブが作用する世界において、対象の不変（的）表現を作り出すのに使用することができる。不変（的）表現は、異なる外部条件下で同じ対象であると後で認識することができる対象（たとえば、物理的対象、語、歌、等）の内部表現である。
【００５９】
システムは認識ドライブの階層を使用して対象（ｏｂｊｅｃｔ）の不変表現を組立てられるものと仮定する。不変表現はデータユニットの絶えず変化するシーケンス内の不変構造を識別し、後で認識できるようにその不変構造を格納することにより形成される。各認識ドライブは階層内の他のレベルにおいて不変構造を識別し、格納し、後に認識するこのプロセスを実施する。こうして、オブジェクトの全体不変表現は１組の階層配列された認識ドライブ内に格納されているそのオブジェクトに関連する不変構造を含む。不変表現は多くの異なるレベルにおける不変構造を含む。不変構造（全体不変表現構造を含む）のこれらの異なるレベルは他のオブジェクトの不変表現内で使用することができる。
【００６０】
各認識ドライブ内のメモリを使用して着信するデータユニットのシーケンス内に配置されている不変構造を格納することができる。このようにして、格納された不変構造は不変構造を含むオブジェクトを認識するために着信するデータユニットのシーケンス内で後に認識することができる。
【００６１】
繰返しデータユニットおよび繰返しデータユニットのシーケンスは不変構造の一部である見込みがある。一例では、各認識ドライブは入力ストリーム内に含まれた不変構造を識別するために、入力ストリーム内の繰返しデータユニットまたは繰返しデータユニットのシーケンスを探索することができる。次に、認識ドライブはこれらの繰返しデータユニットおよび繰返しデータユニットのシーケンスを後で認識するためにメモリ内に格納することができる。
【００６２】
一旦認識すると、認識ドライブは階層内の次に高い層へ送る（認識ドライブによって）認識されたデータユニットのシーケンスのシーケンス識別子、または名称を無視することができる。着信するデータユニットのシーケンスが記憶されたデータユニットの記述されたシーケンスと一致する限り、認識ドライブはその認識されたデータユニットのシーケンスに対して同じシーケンス識別子を出力し続ける。全体ユニットシーケンス中に同じシーケンス識別子が出力されるため、より高い層はより低い認識ドライブよりもスイッチする頻度が少ない認識ドライブを有する。
【００６３】
各認識ドライブは後で認識するためにデータユニットのシーケンスをメモリ内に格納する。着信するデータユニットが特定の記憶されたシーケンスと一致すれば、情報処理装置はその特定のシーケンスを認識して既知のシーケンスが観察されていることをより高い層内の結合された認識ドライブに知らせる。
【００６４】
このシーケンス認識は予測を行うのにも使用することができる。特に、現在既知のデータユニットのシーケンスを含むことを認識ドライブが認識すると、その認識ドライブは、認識されたデータユニットのシーケンス内の次のデータユニットを識別することにより次に受信することを期待するデータユニットを決定することができる。この次に期待されるデータユニットは認識ドライブによる予測を継続させる。
【００６５】
次のデータユニット予測も異なる認識ドライブ間に通すことができる。図７は上向きに流れる情報と下向きに流れる情報の両方がある異なる階層を例示している。個別の各認識ドライブがその入力ストリーム内の不変構造を識別しようと試みる。認識ドライブが記憶されたデータユニットのシーケンスを認識すると、その認識（たとえば、認識されたシーケンスに対する識別子）に関する情報がより高い認識ドライブ層へ上向きに通される。失敗した予測に関する情報も上向きに流れる。下向き情報フローは、階層内でより高い認識ドライブによりなされる次のデータユニット予測を含むことができ、それらはより低い認識ドライブへ通される。
【００６６】
認識ドライブの階層により学習された不変構造の集合メモリ（ｃｏｌｌｅｃｔｉｖｅ  ｍｅｍｏｒｙ）は周囲世界の不変表現モデルを含む。フィードバック（ｆｅｅｄｂａｃｋ）すなわち階層を流下する情報は多くの機能を提供する。フィードバック情報を使用してあいまいな入力データを分解することができる。帰還情報は学習に必要なこともある。認識ドライブがデータユニットのシーケンスを学習すると、その認識ドライブは次のより高い（層の）認識ドライブにより提供される特定コンテキスト内のシーケンスを学習する。コンテキストはより高い認識ドライブの状態を特定する。コンテキストはそのより高い認識ドライブにより経験される（ｅｘｐｅｒｉｅｎｃｅｄ）シーケンスの現在のコンポーネントとして特定することができる。このコンテキストフィードバック情報は認識ドライブがその入力データユニットを一緒に適切に分類するための手段を提供する。
【００６７】
データユニット処理はドライブ間およびドライブ内で同形であるため、認識ドライブのシステムの挙動はより少ないまたは多い認識ドライブにわたって編成させることができる。メッセージ・フォーマット、アドレス指定、およびコンテンツは入力および出力データユニットに対して正しくなければならないが、データユニットの１つのサブネットに対する処理はもう１つのサブネットに対するものと同じ機能である必要はなく、１つのサブネットにより解釈可能なメッセージはもう１つのサブネットにより解釈可能なメッセージと同じである必要はない。
【００６８】
全体データユニット回路網が１つの非常に能力のある認識ドライブ上に常駐するものと仮定すると、我々はこのドライブが定められた世界内でどのように作動し、認識ドライブおよび外部エージェント（ｅｘｔｅｒｎａｌ  ａｇｅｎｔｓ）によりその世界内に誘起された変化により強制される目標に対してその世界内でどのように挙動を最適化するかを知ることができる。外部エージェントは認識ドライブにより直接制御されない世界に変化をもたらすが、一貫して問題とする世界の不変量（ｉｎｖａｒｉａｎｔｓ）内で作動する。認識ドライブは世界を変えたり、ハイレベル不変量に関して感覚入力（ｓｅｎｓｏｒｙ  ｉｎｐｕｔｓ）を考慮できる状態へ世界を変える外部エージェントを誘起する。実質的に、認識ドライブはその認知された環境を完全に考慮し、修正するよう求める。
【００６９】
認識ドライブからの出力はそれが受信する入力を変えることができる。たとえば、出力が運動を制御し運動はカメラを取り付けたロボットを動かすことであれば、出力はロボットを人間に向かって動かすことができる。人間に向かう運動が生じると、人間は動くことができる。認識ドライブの特別な出力モードは認識ドライブの目標が時間と共に変わるように時時刻刻認識された不変量を従来の演繹的推論プロセスへ提出することとすることができる。この感覚で、従来のコンピュータへの接続を提供するドライブへの付加的な入出力インターフェイスがあることもある。しかしながら、認識ドライブが何を見ているか、また何を試みているかという記述のある外部エージェントと通信することがアクションのうちの１クラスであれば、このような他のインターフェイスを必要としないかもしれない。
【００７０】
認識ドライブが解決しようとしている問題は必要な総記憶を部分的に決定する。しかしながら、必要な記憶が認識ドライブ内側の１０億データユニットに対して１００テラバイトであれば、そのメモリの一部は実際上絶えずオーバライトされそうではあるが、各ドライブはデータユニットが潜在的な永久メモリの１００，０００バイトを有することを許す。データユニット・ポインタがルーチングを制御しかつ６４ビットであれば、１０，０００ポインタを８０ＫＢ内に格納することができる。データユニットは１００ＫＢまたは恐らく２００ＫＢ内に適合されることを期待するのは妥当と思われる。ドライブ当たり１テラバイトにおいて、１００ＫＢデータユニットは１００認識ドライブを必要とする。
【００７１】
図７の例では、層１のドライブはグロス（ｇｒｏｓｓ）機能により分割される。たとえば、あるドライブは視覚データの受入れに制限され、あるドライブは聴覚データ、あるドライブは運動器官に制限される、等である。次に、学習は異なる感覚運動領域内で分離される。
【００７２】
任意の定められた時間において、神経回路網内のニューロンの僅かなパーセンテージしかアクティブではないということが広く受け入れられている。下記の例では、ニューロンの１パーセントしかアクティブではないと仮定する。
【００７３】
下記の表はある設計パラメータの例を示し、認識ドライブシステムのいくつかの例の記憶および性能を従来のディスク装置が同じ計算を実施するように構成される例と比較する。前記した例との基本的な違いはこの表が１００億データユニットとデータユニット当たりおよそ１２５ＫＢ（すなわち、１００万ビットの記憶）を仮定していることである。この例で必要な総記憶はおよそ１ペタバイトである。１０００の認識ドライブがもっともらしく行えることを行うのに数百万のディスク装置を必要とするため、従来のディスク装置技術を使用したデータユニット計算が実行不能なことは明らかである。
【表１】
2009032259.tif 000003
【００７４】
従来のディスク装置はデジタル要素とアナログ要素の混合であるため、デジタルとアナログの区別はここでは基本的に関係なく、技術的な便宜上の問題である。認識ドライブまたは認識ドライブを含むシステムはデジタルである必要はない、あるいは、完全にデジタルとしたりデジタルおよびアナログコンポーネントの混合とすることができるが、実際上任意のデジタルコンポーネントを有する。
【００７５】
認識ドライブおよびこのようなドライブの回路網を使用して多くのアプリケーションにおけるデータを処理することができる。候補参照アプリケーションは目の移動および焦点制御機能付き多眼装置、および室内で起こるイベントを記述することが目的である環境内の多数のマイクロホンを含む監視システムを含むことができる。装置は、たとえば、目の動き、恐らくはマイクロホンの調節、および簡単な英語でのコミュニケーションを含む多数のアクションに従事することができる。室内で起こるイベントの正しいまたは正しくない解釈に対して報いたり罰したりするための外部エージェントを設けることができる。コミュニケーション機能はフィードバック制御されない単純な定型（ｔｅｍｐｌａｔｅ）英語で実現することができる（たとえば、アクション出力のその部分（簡単な英語でのコミュニケーション）は認識ドライブの一部として一体化されない）。
【００７６】
しかしながら、認識ドライブは人間の基準で操作したり動物のような活動を有用に実施する必要はない。たとえば、データ探索操作において、従来のドライブ記憶に対して最初に述べた問題、認識ドライブへの入力はファイルシステム内のファイルである。その例はビデオファイルである。このケースでは、認識ドライブはアクションを認識することができる。データユニット内のメタデータスペースはこれらのアクションを探索し、従来のディスク装置上のオリジナル・ファイルデータへ戻す。この例では、システムは精密なデータを見つけるための機械帰納法（ｍａｃｈｉｎｅ  ｉｎｄｕｃｔｉｏｎ）を使用する。
【００７７】
最後に、学習される世界は人間の基準または型である必要がない。非常に小さいまたは非常に大きい世界を認識およびアクションのために格納することができる。感覚入力は、可視光域外の周波数を持つ電磁放射等の、人間には感知できない入力とすることができ、出力は人間が直接実施できないアクションをもたらすことができる。より多くのアプリケーションが可能であり、明らかとなっている。
【００７８】
従来の記憶装置と認識ドライブとの別の違いをその入力および出力に関して例示することができる。より精巧なものはメッセージを受信して応答することができるが、従来の記憶装置はデータを読み書きするのに従事する。認識ドライブはカメラ入力等の感覚入力、マイクロホンからの入力、温度入力、ジャイロスコープ入力、および不変量のソースである任意タイプのデジタルまたはアナログ入力を直接取り入れ、その前に格納したメモリを使用してその入力を編成するようにされている。認識ドライブは、それが認識するものに基づいて、ネーミングまたは記述、または恐らくスピーカ、ディスプレイ、および運動等の挙動を制御できるデジタルまたはアナログ出力を用いて応答する。
【００７９】
この感覚で、認識ドライブはコンピュータ記憶装置よりも遥かに知的な脳のように挙動する。より一般的には、感覚（感知）データとアクションデータの両方をタグ付きバイトデータと考えることができ、タグ付けはメモリ認識および後のアクションのためにデータを編成することができる編成入出力ディメンジョンに関係している。
【００８０】
入力と出力の間で、認識ドライブは世界不変量を発見して使用するのに良いように学習する。我々は、認識ドライブが最初にこのような不変量を認識し、次に、それらの存在またはそれらの一連の徴候について何をするか認識することを期待できる。アクション自体が一般的目標に基づいた事柄の感知された状態を変えられる不変量により構成される。出力は認識およびアクションにより予測された方法で入力を変えられなければならない。目標は監視システム内の人間を追跡するカメラの移動、モバイルロボットの命令、またはより良いビールを造る、記述を洗練する等のより難解なシステムを含むことができる。
【００８１】
認識ドライブは従来感覚の統計的パターン認識装置ではない。少なくとも統計的パターン認識は今日理解されているため、このような装置は従来のコンピューティング・フレームワーク内でより効率的に実現される。認識ドライブはＮＬＳＰを使用し、従来の統計的パターン認識装置において実際的であるものよりも遥かに高次元の不変量を発見することができ、従来の応答システム（たとえば、プリンタ、モータ、グラフィカルディスプレイ）において実際的であるものよりも遥かに高次元で作用することができる。
【００８２】
一実施例では、認識ドライブは従来のドライブ技術を認識およびアクションに対して修正して作り出すことができる。認識ドライブの基本的機能は記憶装置への多くの読出しおよび書込みを必要とする。しかしながら、この問題に取り組むために、記憶装置は短期的および長期的要素を有し、部分的で末端の位相幾何学も有している。インターフェイスは認識ドライブが動作する世界に応じて従来のまたはカスタム・インターフェイスとすることができる。
【００８３】
認識ドライブ内の有用な決まりは、それへの感覚データは生（ｒａｗ）データとし、それからのアクションデータは生データとすることである。これは認識ドライブが最も低いレベルの不変性検出および生成さえ修正する能力を有することを意味する。カメラシステム内のエッジ検出器の例をとる。このような検出器は入力として生のピクセルデータを取り、強度、色相、および彩度の高勾配変化のエッジを識別する。生データはオリジナル・イメージとエッジ・イメージの両方を含むことがあるが、認識ドライブはエッジを見つけるための計算を変える機会はない。すなわち、異なる目標に基づいて異なって知覚されることがあるため、エッジに気付くことがない。ドライブの外側で処理されるアクションデータに対するドライブの内側で処理されるアクションデータの種類は同様に束縛される。
【００８４】
認識ドライブは平坦および円柱構成を含むさまざまな機械的構成を使用して実現される。リード／ライト・ヘッドのさまざまな構成および関連するエレクトロニクスおよびファームウエア（ｆｉｒｍｗａｒｅ）も含めることができる。
【００８５】
一実施例では、本発明はディスク装置の形のデータ記憶装置内に実現することができ、そこには１つ以上の電機子上の１つ以上のリード／ライト・ヘッドを有する回転非揮発性記憶媒体がある。マルチプラッタ構成は、各プラッタ（ｐｌａｔｔｅｒ）側に対してリード／ライト・ヘッドの形の変換器を有する、多くのディスクまたはプラッタを含むディスク装置技術を利用することができる。図８に示すディスク装置２３０の一例は１２プラッタおよび２４リード／ライト・ヘッドを含んでいる。複数のディスク２３２がディスクの回転を制御するドライブスピンドル２３４に接続されている。各ディスクは非揮発性記憶媒体を含んでいる。複数の変換器２３６がアクチュエーティング・アーム２３８上に搭載されており記憶媒体に隣接配置されている。各変換器はリード／ライト・ヘッドとすることができ、実際上、それは磁気記録技術では一般的である読出しおよび書込み用の別々のヘッドを含むことができる。アクチュエーティング・アームは変換器をトラックに隣接して位置決めしアクチュエータ２４０により制御される。記憶媒体に対して読み書きされるデータは複数のプロセッサ２４４によりライン２４２上を送られる。プロセッサは記憶媒体へのデータの読み書きを制御するハードウェアおよびファームウエアを含み、非線形確率的プロセスを使用してデータユニットを処理する。バス２４８上のディスク装置に対して情報を入出力するインターフェイス２４６が設けられる。一時データ記憶のために高速揮発性記憶コンポーネント２５０が設けられる。プロセッサの動作を調整するためのスケジューリング／メッセージング・プロセッサ２５２が含まれる。認識ドライブとして遂行するために、プロセッサエレクトロニクスおよびファームウエアが組立てられここに記述された機能を実施するようにされる。
【００８６】
主としてドライブ当たりさらに多くのヘッドを許し、かつ任意の定められたデータユニットの予想データサイズは固定されるという事実を反映させるために、従来の回転ディスク構成の代りに他の構成を使用することができる。したがって、整数のデータユニットを収容するサイズであるリード／ライト・トラックは計算効率を改善する機会を与える。
【００８７】
プローブタイプ記憶装置として実現することができる平坦な構成が図９に例示されている。多くのリード／ライト・ヘッドをチップ上にＭＥＭＳプロセスを使用して作り出すことができ、これらのヘッドはヘッドまたは媒体の平面内でのＸおよびＹ方向への移動により、平坦な表面を有する非揮発性記憶媒体上にデータを読み書きすることができる。この装置は、ケース、ベース、またはフレームとも呼ばれ、基板２６４を入れるエンクロージャ２６２を含んでいる。プローブ列２６６が基板上に位置決めされている。プローブは上向きに延びて記憶媒体２６８と接触する。記憶媒体２６８は可動部材、すなわちスレッド２７０、上に搭載される。記憶媒体は、たとえば、磁気、光学または強誘電性記憶媒体とすることができる。強誘電性記憶媒体の破壊読出特性は認識ドライブにおいて有害ではない。あるタイプのメモリデバイスはＤＲＡＭにおけるコスト／単純性や強誘電性媒体のいくつかの使用における信号対ノイズ等のさまざまな理由から破壊リードバック機構を利用する。これは、媒体のリードの後にモディファイおよびリライトプロセスが続く認識ドライブアーキテクチュアに対して最適であり、ランダム・マルチリード・アクセスを有する必要がない。
【００８８】
図９の例では、コイルおよび磁石を含む電磁アクチュエータにより記憶媒体およびプローブ間の相対移動が提供される。コイル２７２および２７４は可動部材上に搭載される。磁石２７６および２７８はコイル近くのエンクロージャ内に搭載される。スプリング２８０および２８２は可動部材を支持するサスペンション部品の一部を形成する。エンクロージャ２６２は、たとえば、射出成型プラスチックにより形成することができる。
【００８９】
１つ以上のプロセッサ２８４、スケジューリング／メッセージング・プロセッサ２８６、高速揮発性記憶コンポーネント２８８、およびインターフェイス２９０をエンクロージャ内に搭載することができる。図９の例では、これらのアイテムは基板内に搭載される。
【００９０】
図９はプローブ記憶装置の一例を示すが、他の既知のタイプのサスペンションおよびアクチュエータを使用してコンポーネントを位置決めし、プローブおよび記憶媒体間の相対移動を提供することができる。本発明は任意特定のプローブを使用する装置および媒体位置決めおよび／または起動装置に限定されない。
【００９１】
記憶媒体に対して読み書きされるデータはバス２９２上をプロセッサ２８４へ送られる。プロセッサ２８４は記憶媒体に対するデータの読み書きを制御しスイッチマトリクスも制御するハードウェアおよびファームウエアを含むことができる。バス２９２上の記憶装置に対して情報を入出力するインターフェイス２９０が提供される。一時的データ記憶用の揮発性記憶コンポーネント２８８が設けられる。認識ドライブとして遂行するために、プロセッサ・エレクトロニクスおよびファームウエアが組立てられ前記した機能を遂行するようにされる。
【００９２】
データ記憶装置の別の例は図１０に例示された回転シリンダ構成３００を使用する。この例は軸３０４の周りを回転するよう組立てられ配置される円筒記憶媒体３０２を使用する。複数の変換器の列（トランスジューサ・アレイ，ｔｒａｎｓｄｕｃｅｒ  ａｒｒａｙｓ）３０６，３０８および３１０が記憶媒体の表面に隣接配置される。各変換器アレイがアクチュエータ３１６により制御されるアーム３１４上に搭載された複数の変換器（トランスジューサ）３１２を含んでいる。アクチュエータはアームを動かして変換器を記憶媒体上のトラック３１８に隣接位置決めする。変換器は複数のプロセッサ３２０に接続されている。メッセージング／スケジューリング・プロセッサ３２２が変換器の読み書き動作を制御し、さらにスイッチング・マトリクス内のスイッチの動作を制御する。バス３２６を介してドライブに情報を入出力するためにインターフェイス３２４が使用される。一時的データ記憶のために揮発性記憶コンポーネント３２８が提供される。
【００９３】
図１０の構成は、シリンダの表面に沿って位置決めされたヘッドのいくつかの列（アレイ，ａｒｒａｙｓ）を含む、複数のリード／ライト・ヘッドを含んでいる。この配列で搭載されたヘッドはシリンダの１回転内に数回データを読み書きすることができる。シリンダもしくはヘッドは異なるトラックを読み書きするように移動することもできる。単一データユニットが１本だけのトラック上にあることがあり、単一トラックが複数のデータユニットを含むことがある。
【００９４】
一実施例では、シリンダ周りに位置決めされたヘッドの４つのアレイによりリード／ライト操作は連続させることができる。本装置は４つのヘッドアレイは必要とせず、１つ、６つ、または任意の実際的な数とすることができる。しかしながら、データユニット・データの分散はヘッドができるだけ頻繁に読み書きしているように最適化しなければならない。
【００９５】
回転シリンダ認識ドライブは多数のリード／ライト・ヘッドを含むことができる。シリンダは比較的コンパクトとすることができ、シリンダの回転運動およびヘッドを異なるトラックへ動かす運動は制御が比較的容易である。シリンダの外側は記憶媒体により被覆することができ、それは、たとえば磁気、光学または強誘電性材料とすることができる。シリンダは任意の直径とすることができかつロッドとすることができる。長さが７．６２ｃｍ（３インチ）の５．０８ｃｍ（２インチ）径シリンダは現在明示されている磁気記録密度においておよそテラバイト格納することができる。
【００９６】
認識ドライブの各例はデータをパラレルに読み書きすることができ、かつデータをデータユニット間で移動させることができる。プロセッサはデータユニット間でデータをスイッチするよう考慮する。データユニットのサブセットは高度に配線される。したがって、プロセッサはデータユニットを交差接続できなければならない。交差接続されたデータユニットのサブセット間の他の接続はデータユニットの層をなした接続を提供することができる。注意接続および学習接続を含む付加接続を提供して遠い交差接続および層をなしたデータユニットに接続することができる。注意および学習接続は注意および学習制御データユニットの活性化を提供するだけである。さらに、ＮＬＳＰシステムは接続を追加および削除する能力を含むことができるように設計することができる。接続を自由に生成かつ削除することは性能効率に役立つことができる。
【００９７】
図１１に示すように、多数の認識ドライブを損失なく一続きとすることができる。認識ドライブ３４０の出力は認識ドライブ３４２への入力として働く。感覚データ３４４が認識ドライブ３４０により受信されかつ処理されてアクションデータ３４６を作り出す。このアクションデータは認識ドライブ３４２に対する感覚データ３４８となり、それを使用してアクションデータ３５０を作り出す。矢印３５２は認識ドライブ３４２の出力が認識ドライブ３４０にフィードバックされることを示す。このケースでは、各ドライブの感覚入力が一部他のドライブのアクション出力により構成される。多くの物理的認識ドライブをこのように結合してもフィードバックアクションが有線である限り単一ドライブの計算ニーズを妨げることはない。別々の感覚様式、たとえば、別々の運動／アクション・サブシステムが制御されれば、ドライブの階層が可能である。たとえば、第１のドライブをローレベルの視覚不変性認識に使用することができ、第２のドライブをローレベルの聴覚不変性認識に使用することができる。（ドライブの）シリーズの利点はドライブを異なる機能に対して特殊化できることである。１つのドライブはカメラ入力を取り入れて、シーンにラベル付けすることができる。第２のドライブはラベルを取り入れて、ラベルから英語その他の言語の説明を展開することができる。
【００９８】
より複雑なスイッチング構成により、動物の新皮質内で見つかった処理の自然な（すなわち、世界不変量保存）分離により近い実用的階層にドライブを組み立てることができる。
【００９９】
マシン知性を１つ以上の記憶装置として実現する方法、アクチュエータ、および装置について説明してきた。発明の範囲を逸脱することなくコンポーネントおよびコンポーネントの配列を変更および修正することができる。たとえば、認識ドライブは磁気領域がナノワイヤの長さに沿って確立され、ナノスケール磁気パルスを使用して磁壁境界をセンサを通り越して動かす固体技術である「レーストラック（ｒａｃｅｔｒａｃｋ）」メモリを含むことができる。データは磁壁の存否として符号化され、これらの壁は、空間パターンを損なわずに、ワイヤ周りをシリアルに伝搬するようにされる。
【０１００】
上記の実現手段および他の実現手段は添付の特許請求の範囲の範囲内である。
【図面の簡単な説明】
【０１０１】
【図１】ヘブ神経回路網の略表現である。
【図２】データユニットの処理を例示する略ブロック図である。
【図３】本発明の側面に従って構成された情報処理装置のブロック図である。
【図４】図４ａは、データユニットの略表現である。図４ｂは、メッセージの略表現である。
【図５】本発明の側面に従って構成されたもう１つの情報処理装置のブロック図である。
【図６】本発明の側面に従って構成されたもう１つの情報処理装置のブロック図である。
【図７】接続された情報処理装置の階層の略図である。
【図８】本発明の側面に従って構成されたもう１つの情報処理装置の略表現である。
【図９】本発明のもう１つの側面に従って構成されたもう１つの情報処理装置の略表現である。
【図１０】本発明のもう１つの側面に従って構成されたもう１つの情報処理装置の略表現である。
【図１１】直列接続された情報処理装置の略図である。
【符号の説明】
【０１０２】
１０，１２，１４，１６，１８，２０，２２，９０  データユニット
２４，２６  入力
２８，３０  出力
４０，４２，４４，１２０  メッセージ
４６，４８，５０  重み
５２，５４，５６，１０８  出力値
５８  重み付け和分ブロック
６０  Ｓ字関数ブロック
７０，１３０，１７０  情報処理装置
７２，１３２，１７２  入出力インターフェイス
７４，１７４  入力装置
７６，８０，１３６，１４０，１７６，２４８，２９２  バス
７８，１３８，１７８  出力装置
８２，１４２，１４４，１４６，１８２，１８４，１８６  非揮発性メモリ
８４，１５０，１５４，１５６，１８８，１９０，１９２  高速メモリ
８６  データユニット・プロセッサ
９２  アドレスフィールド
９４  入力フィールド
９６  コンテンツフィールド
９８  出力フィールド
１００，１１２，１２２  アドレス
１０２，１０６，１２４  時間タグ
１０４  他のパラメータ
１２６  データ値（メッセージ・コンテンツ）
１３４  入力値
１５８，１６０，１６２，１６４，１９４，１９６，１９８，２００，２４４，２８４，３２０  プロセッサ
１６６  メッセージ構造
２０２，２５２，２８６，３２２  スケジューリング／メッセージング・プロセッサ
２１０  認識ドライブ・システム
２１２，３４０，３４２  認識ドライブ
２１４  スイッチ
２１６  入力ライン
２１８  センサ
２３２  デバイス
２３４  ドライブスピンドル
２３６，３１２  トランスジューサ（変換器）
２３８  アクチュエーティング・アーム
２４０，３１６  アクチュエータ
２４２  ライン
２４６，２９０，３２４  インターフェイス
２５０，２８８，３２８  高速揮発性記憶コンポーネント
２６０  プローブ記憶装置
２６２  エンクロージャ
２６４  基板
２６６  プローブ
２６８，３０２  記憶媒体
２７０  スレッド
２７２，２７４  コイル
２７６，２７８  磁石
２８０，２８２  スプリング
３０４  軸
３０６，３０８，３１０  トランスジューサ・アレイ（変換器列）
３１４  アーム
３１８  トラック
３２６  データバス
３４４，３４８  感覚データ
３４６，３５０  アクションデータ
【図１】
2009032259.tif 000004
【図２】
2009032259.tif 000005
【図３】
2009032259.tif 000006
【図４】
2009032259.tif 000007
【図５】
2009032259.tif 000008
【図６】
2009032259.tif 000009
【図７】
2009032259.tif 000010
【図８】
2009032259.tif 000011
【図９】
2009032259.tif 000012
【図１０】
2009032259.tif 000013
【図１１】
2009032259.tif 000014
【外国語明細書】
2009032259000001.pdf