(57)【特許請求の範囲】
【請求項１】
連想メモリであって、
複数の連想メモリセルを具備し、前記それぞれのセルがセンサ入力部、前段連想表示部、次段連想表示部及び連想出力部を備え、前記複数のセルが直列に接続されて線形アレイを形成し、直列に接続された前記セルの前記センサ入力部、前記前段連想表示部及び前記次段連想表示部が、一連の前記センサ入力部間のアソシエーションのアフィニティーに基づいて、遠位のセルから近位のセルまで順番に配列され、
前記それぞれのセルは内部に処理ロジックも含み、
前記処理ロジックは、関連した前記センサ入力部がアクティブであることに対応して、前記次段連想表示部のメジャーを隣接する近位のセルに送る、及び／又は前記前段連想表示部のメジャーを隣接する遠位のセルに送り、
前記処理ロジックはさらに、関連した前記センサ入力部がアクティブであること、及び隣接する遠位のセルから前記次段連想表示部のメジャーを受け取ることに対応して、前記連想出力部において連想カウントを蓄積する及び／又は関連した前記センサ入力部がアクティブであること、及び隣接する近位のセルから前記前段連想表示部のメジャーを受け取ることに応答して、前記連想出力部において連想カウントを蓄積する、
ことを特徴とする連想メモリ。
【請求項２】
前記処理ロジックがさらに、隣接する遠位のセルから前記次段連想表示部のメジャーを受け取ること及び前記前段連想表示部がアクティブであることに応答して、受信された前記次段連想表示部のメジャーをディクリメントし、またディクリメントされた前記次段連想表示部のメジャーを隣接する近位のセルに送る、及び／又は前記処理ロジックがさらに、隣接する近位のセルから前記前段連想表示部のメジャーを受け取ること及び前記次段連想表示部がアクティブであることに応答して、受信された前記前段連想表示部のメジャーを決定し、そしてディクリメントされた前記前段連想表示部のメジャーを隣接する遠位のセルに送る、
ことを特徴とする請求項１に記載の連想メモリ。
【請求項３】
前記処理ロジックがさらに、隣接する遠位のセルから前記次段連想表示部のメジャーを受信すること及び前記前段連想表示部がイナクティブであることに応答して、前記受信された前記次段連想表示部のメジャーを隣接する近位のセルに送り、及び／又は前記処理ロジックがさらに、隣接する近位のセルから前記前段連想表示部のメジャーを受信すること及び前記次段連想表示部がイナクティブであることに応答して、前記受信された前記前段連想表示部のメジャーを隣接する遠位のセルに送る、
ことを特徴とする請求項２に記載の連想メモリ。
【請求項４】
前記前段連想表示部が前段連想重みを備え、前記前段連想表示部のメジャーが別の前段連想重みを備え、かつ前記次段連想表示部が次段連想重みを備え、前記次段連想表示部のメジャーが別の次段連想重みを備える、ことを特徴とする請求項１に記載の連想メモリ。
【請求項５】
前記前段連想表示部が前段連想ベクトルを有し、前記次段連想表示部が次段連想ベクトルを有し、前記前段連想表示部のメジャーがポインタを有し、かつ前記次段連想表示部のメジャーがポインタを有する、ことを特徴とする請求項１に記載の連想メモリ。
【請求項６】
前記前段連想表示部及び前記前段連想表示部のメジャーはそれぞれが前段連想表示部のセグメントを有し、かつ前記次段連想表示部及び前記次段連想表示部のメジャーはそれぞれが次段連想表示部のセグメントを有する、ことを特徴とする請求項１に記載の連想メモリ。
【請求項７】
前記複数のセルの前記連想出力部に接続されたアキュームレータをさらに備える、ことを特徴とする請求項１に記載の連想メモリ。
【請求項８】
前記処理ロジックが、パイプライン方式で前記複数のセンサ入力部上で動作するように構成される、ことを特徴とする請求項１に記載の連想メモリ。
【請求項９】
遠位のセルから近位のセルまで連続して直列に接続されて線形アレイを形成する複数の連想メモリセルを備えた連想メモリを用いる方法であって、
前記メモリセルのそれぞれのセンサ入力部に対する前段連想表示部及び次段連想表示部を、前記それぞれのメモリセルに配置するステップと、
アソシエーションを決定するために、選択されたセンサ入力部をアクティブにするステップと、
関連したセンサ入力部がアクティブであることに対応して、前記次段連想表示部のメジャーを隣接する近位のセルに送るステップ、及び／又は前記前段連想表示部のメジャーを隣接する遠位のセルに送るステップと、
関連した前記センサ入力部がアクティブであること及び隣接する遠位のセルから前記次段連想表示部のメジャーを受け取ることに対応して、連想カウントを蓄積するステップ、及び／又は関連したセンサ入力部がアクティブであること及び隣接する近位のセルから前記前段連想表示部のメジャーを受け取ることに対応して、連想カウントを蓄積するステップと、
を含み、
前記直列に接続されたセルの前記センサ入力部、前記前段連想表示部及び前記次段連想表示部が、前記一連のセンサ入力部間のアソシエーションのアフィニティーに基づいて、遠位のセルから近位のセルまで順番に配列される、
ことを特徴とする方法。
【請求項１０】
隣接する遠位のセルから前記次段連想表示部のメジャーを受け取ること及び前記前段連想表示部がアクティブであることに応答して、受け取られた前記次段連想表示部のメジャーをディクリメントするステップ、そしてディクリメントされた前記次段連想表示部のメジャーを隣接する近位のセルに送るステップ、及び／又は隣接する近位のセルから前記前段連想表示部のメジャーを受け取ること及び前記次段連想表示部がアクティブであることに応答して、受け取られた前記前段連想表示部のメジャーをディクリメントするステップ、そしてディクリメントされた前記前段連想表示部のメジャーを隣接する遠位のセルに送るステップをさらに含む、
ことを特徴とする請求項９に記載の方法。
【請求項１１】
隣接する遠位のセルから前記次段連想表示部のメジャーを受け取ること及び前記前段連想表示部がイナクティブであることに応答して、受け取られた次段連想表示部のメジャーを隣接する近位のセルに送るステップ、及び／又は隣接する近位のセルから前段連想表示部のメジャーを受け取ること及び前記次段連想表示部がイナクティブであることに反応して、受け取られた前記前段連想表示部のメジャーを隣接する遠位のセルに送るステップをさらに含む、
ことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記前段連想表示部が前段連想重みを有し、前記前段連想表示部のメジャーが別の前段連想重みを有し、かつ前記次段連想表示部が次段連想重みを有し、前記次段連想表示部のメジャーが別の次段連想重みを有する、ことを特徴とする請求項９に記載の方法。
【請求項１３】
前記前段連想表示部が前段連想ベクトルを有し、前記次段連想表示部が次段連想ベクトルを有し、前記前段連想表示部のメジャーがポインタを有しかつ前記次段連想表示部のメジャーがポインタを有する、ことを特徴とする請求項９に記載の方法。
【請求項１４】
前記前段連想表示部及び前記前段連想表示部のメジャーはそれぞれが前段連想表示部のセグメントを有し、かつ前記次段連想表示部及び前記次段連想表示部のメジャーはそれぞ
れが次段連想表示部のセグメントを有する、ことを特徴とする請求項９に記載の方法。
【請求項１５】
連想カウントを蓄積するステップをさらに含む、ことを特徴とする請求項９に記載の方法。
【請求項１６】
アソシエーションを決定するために選択されたセンサ入力部をアクティブにするステップが、連想メモリ上でパイプライン方式で繰返し実行される、ことを特徴とする請求項９に記載の方法。
【請求項１７】
連想メモリであって、
複数の連想メモリセルを具備し、前記それぞれのセルがセンサ入力部、前段連想表示部、次段連想表示部及び連想出力部を備え、前記複数のセルが直列に接続されて線形アレイを形成し、直列に接続された前記セルの前記センサ入力部、前記前段連想表示部及び前記次段連想表示部が、一連の前記センサ入力部間のアソシエーションのアフィニティーに基づいて、遠位のセルから近位のセルまで順番に配列される、
ことを特徴とする連想メモリ。
【請求項１８】
前記前段連想表示部が前段連想重みを備え、前記前段連想表示部のメジャーが別の前段連想重みを備え、かつ前記次段連想表示部が次段連想重みを含み、前記次段連想表示部のメジャーが別の次段連想重みを含む、ことを特徴とする請求項１７に記載の連想メモリ。
【請求項１９】
前記前段連想表示部が前段連想ベクトルを有し、前記次段連想表示部が次段連想ベクトルを有し、前記前段連想表示部のメジャーがポインタを有し、かつ前記次段連想表示部のメジャーがポインタを有する、ことを特徴とする請求項１７に記載の連想メモリ。
【請求項２０】
前記前段連想表示部及び前記前段連想表示部のメジャーはそれぞれが前段連想表示部のセグメントを有し、かつ前記次段連想表示部及び前記次段連想表示部のメジャーはそれぞれが次段連想表示部のセグメントを有する、ことを特徴とする請求項１７に記載の連想メモリ。
【請求項２１】
遠位のセルから近位のセルまで連続して直列に接続されて線形アレイを形成する複数の連想メモリセルを備えた連想メモリを用いてアソシエーションを決定する方法であって、  前記メモリセルのそれぞれのセンサ入力部に対する前段連想表示部及び次段連想表示部を、前記それぞれのメモリセルに配置するステップと、
アソシエーションを決定するために、選択されたセンサ入力部をアクティブにするステップと、を含み、
前記直列に接続されたセルの前記センサ入力部、前記前段連想表示部及び前記次段連想表示部が、前記一連のセンサ入力部間のアソシエーションのアフィニティーに基づいて、遠位のセルから近位のセルまで順番に配列される、
ことを特徴とする方法。
【請求項２２】
前記前段連想表示部が前段連想重みを有し、前記前段連想表示部のメジャーが別の前段連想重みを有し、かつ前記次段連想表示部が次段連想重みを有し、前記次段連想表示部のメジャーが別の次段連想重みを有する、ことを特徴とする請求項２１に記載の方法。
【請求項２３】
前記前段連想表示部が前段連想ベクトルを有し、前記次段連想表示部が次段連想ベクトルを有し、前記前段連想表示部のメジャーがポインタを有しかつ前記次段連想表示部のメジャーがポインタを有する、ことを特徴とする請求項２１に記載の方法。
【請求項２４】
前記前段連想表示部及び前記前段連想表示部のメジャーはそれぞれが前段連想表示部のセグメントを有し、かつ前記次段連想表示部及び前記次段連想表示部のメジャーはそれぞれが次段連想表示部のセグメントを有する、ことを特徴とする請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［連邦政府による委託研究］
本発明の少なくとも一部は、Air Force Research Laboratory Contract No. FA8750-05-C-0125により、政府の支援のもとでなされたものである。政府は本発明に対して、一定の権利を有する。
【０００２】
［発明の分野］
本発明は、人工知能システム及び方法に関し、さらに詳細には、連想メモリ及びそれを動作させる方法に関する。
【背景技術】
【０００３】
連想メモリは、コンテント・アドレッサブル・メモリとも呼ばれて、パターン・マッチング及び識別、エキスパートシステム及び人工知能の分野で広く使用されている。連想メモリは広範囲にわたって研究されており、また市販されている。しかしながら、残念なことに、現実の世界の問題を解決するために、連想メモリの使用を制限する基本的なスケーリング（scaling）の問題が存在する。特に、従来の線形連想メモリは互いに関連付けられていない入力部を有しており、このことは、入力部間の相互作用などの可能な非線形性を学習するため及び示すためにそのようなメモリの能力を大いに制限することがある。さらに、非線形メモリは、全ての入力部間に与えられる重みが急増するため、現実世界の用途に対して評価することが難しいことがある。幾何学的なスケーリングは一般に、そのような技術を保証する複雑性の規模においてアプリケーションに対応することは不適当である。
【０００４】
非線形連想メモリの幾何学的なスケーリングはまた、これらのメモリをハードウェアの中で実現することをますます困難にする可能性がある。特に、ハードウェアが実現すれば、高速な並列処理により適用できる。しかしながら、非線形連想メモリのハードウェア素子の間で必要とされる相互接続の数は、現実世界の用途に対して実際的でないハードウェアになる可能性がある。
【発明の概要】
【０００５】
本発明の幾つかの実施形態による連想メモリは、複数の連想メモリセルを備えている。それぞれのセルは、センサ入力部、前段連想表示部（prior association representation）、次段（next）連想表示部、及び連想出力部（associative output）を備えている。これらの複数のセルは直列に相互接続されて線形アレイを形成し、直列に接続されたセルのセンサ入力部、前段連想表示部、及び次段連想表示部は、一連のセンサ入力部間のアソシエーションのアフィニティー（affinity）に基づいて、遠位のセルから近位のセルまで順番に配列される。
【０００６】
それぞれのセルは、処理ロジックも中に備えている。幾つかの実施形態では、この処理ロジックは、関連したセンサ入力部がアクティブであることに対応して、次段連想表示部のメジャー（measure）を隣接する近位のセルに送る、及び／又は前段連想表示部のメジャーを隣接するル遠位のセルに送る。処理ロジックはさらに、関連したセンサ入力部がアクティブであること、及び隣接する遠位のセルから次段連想表示部のメジャーを受け取ることに対応して、連想出力部において連想カウント（associative count）を蓄積する。別の方法では、又はそれに加えて、処理ロジックはさらに、関連したセンサ入力部がアクティブであること、隣接する近位のセルに対する前段連想表示部のメジャーを受け取ること、及び次段連想表示部がアクティブであることに応答して、連想出力部において連想カウントを蓄積する。
【０００７】
別の実施形態では、処理ロジックはさらに、隣接する遠位のセルから次段連想表示部のメジャーを受け取ること及び前段連想表示部がアクティブであることに応答して、受信された次段連想表示部のメジャーをディクリメントし、またディクリメントされた次段連想表示部のメジャーを隣接する近位のセルに送る。別の方法では、又はそれに加えて、処理ロジックはさらに、隣接する近位のセルから前段連想表示部のメジャーを受け取ること及び次段連想表示部がアクティブであることに応答して、受信された前段連想表示部のメジャーを決定し、そしてディクリメントされた前段連想表示部のメジャーを隣接する遠位のセルに送る。
【０００８】
さらに別の実施形態では、処理ロジックはさらに、隣接する遠位のセルから次段連想表示部のメジャーを受け取ること及び前段連想表示部がアクティブであることに応答して、受信された連想表示部のメジャーを隣接する近位のセルに送る。別の方法では、又はそれに加えて、処理ロジックはさらに、隣接する近位のセルから前段連想表示部のメジャーを受け取ること及び次段連想表示部がアクティブであることに応答して、受信された前段連想表示部のメジャーを隣接する遠位のセルに送る。
【０００９】
本発明の別の実施形態では、複数のセルの連想出力部に接続されたアキュームレータも設けられている。さらに別の実施形態では、センサ入力部、前段連想表示部、次段連想表示部、連想出力部、次段連想表示部のメジャー、及び前段連想表示部のメジャーが、それぞれのセル内の対応するレジスタの中に記憶される。さらに、処理ロジックは、パイプライン方式で複数のセンサ入力部上で動作するように構成される。
【００１０】
前述した実施形態のいずれかにおいて、一連のセンサ入力部間のアソシエーションのアフィニティーは、近位及び遠位の方向のアソシエーションのアフィニティーに基づいて、直列の入力部、前段連想表示部、及び次段連想表示部を繰返しスワッピングすることによって、センサ入力部の連想マトリックスをソーティングして決定することができる。さらに、アソシエーションのアフィニティーは、最大射影、固定長射影、及び／又は最長の非最大射影（longest nonmaximal projection）などの射影に基づいて、繰返しスワップされたシリーズからバンドを抽出することによって更に決定される。
【００１１】
その上、前述された実施形態のいずれかにおいて、前段連想表示部及びこの前段連想表示部のメジャーは、前段連想重み（prior association weight）を備え、また次段連想表示部及びこの次段連想表示部のメジャーは、次段連想重みを含むことができる。さらに別の実施形態では、前段連想表示部は前段連想ベクトルを備え、次段連想表示部は次段連想ベクトルを備え、前段連想表示部のメジャーはポインタを有し、そして次段連想表示部のメジャーもポインタを有することができる。さらに別の実施形態では、前段連想表示部及び前段連想表示部のメジャーは前段連想部のセグメントを有し、また次段連想表示部及び次段連想表示部のメジャーは次段連想部のセグメントを有することができる。
【００１２】
本発明の別の実施形態に基づいて、遠位のセルから近位のセルまで連続して直列に接続されて線形アレイを形成する複数の連想メモリセルを備えた連想メモリを用いてアソシエーションを決定する方法が提供される。これらの実施形態では、メモリセルのそれぞれのセンサ入力部に対する前段連想表示部及び次段連想表示部が、それぞれのメモリセルにロードされる。ここで、直列に接続されたセルのセンサ入力部は、一連のセンサ入力部間のアソシエーションのアフィニティーに基づいて、遠位のセルから近位のセルまで順番に配列される。所定のセンサ入力部は、それらの間のアソシエーションを決定するためにアクティブにされる。
【００１３】
幾つかの実施形態では、関連したセンサ入力部がアクティブであることに対応して、次段連想表示部のメジャーが隣接する近位のセルに送られる。別の方法では、又はそれに加えて、前段連想表示部のメジャーが隣接する遠位のセルに送られる。さらに、関連したセンサ入力部がアクティブであること及び隣接する遠位のセルから次段連想表示部のメジャーを受け取ることに対応して、連想カウントが蓄積される。別の方法では、又はそれに加えて、関連したセンサ入力部がアクティブであること及び隣接する近位のセルから前段連想表示部のメジャーを受け取ることに対応して、連想カウントが蓄積される。
【００１４】
別の実施形態によれば、隣接する遠位のセルから次段連想表示部のメジャーを受け取ること及び前段連想表示部がアクティブであるに応答して、受け取られた次段連想表示部のメジャーが決定され、そして決定された次段連想表示部のメジャーが隣接する近位のセルに送られる。別の方法では、又はそれに加えて、隣接する近位のセルから前段連想表示部のメジャーを受け取ること及び次段連想表示部がアクティブであることに応答して、受け取られた前段連想表示部のメジャーがディクリメントされ、そしてディクリメントされた前段連想表示部のメジャーが隣接する遠位のセルに送られる。
【００１５】
さらに別の実施形態では、隣接する遠位のセルから次段連想表示部のメジャーを受け取ること及び前段連想表示部がアクティブであることに応答して、受け取られた次段連想表示部のメジャーが隣接する近位のセルに送られる。別の方法では、又はそれに加えて、隣接する近位のセルから前段連想表示部のメジャーを受け取ること及び次段連想表示部がアクティブであることに反応して、受け取られた前段連想表示部のメジャーが隣接する遠位のセルに送られる。
【００１６】
幾つかの実施形態では、連想カウントが蓄積される。さらに、所定のセンサ入力部が、パイプライン方式で繰返しアクティブにされる。
【００１７】
幾つかの実施形態では、一連の入力部、前段連想表示部及び次段連想表示部が近位及び遠位の方向にアソシエーションのアフィニティーに基づいて繰返しスワップされて、一連のセンサ入力部の中でアソシエーションのアフィニティーを決定する。繰返しスワップする工程の後に、最大射影、固定長射影、及び／又は最長の非最大射影などの射影に基づいて、繰返しスワップされた配列からバンドを抽出する工程が続く。この繰返しスワップする工程及びバンドを抽出する工程は、ローディングの前及び／又は後で実行される。前述されたように、連想表示部及びそのメジャーは、幾つかの実施形態では、重みを有する。別の実施形態では、連想表示部はベクトルを有し、また連想表示部のメジャーはポインタを有することができる。さらに別の実施形態では、連想表示部及びそのメジャーは、アソシエーションのセグメントを有することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の幾つかの実施形態による連想メモリ及びその動作方法のブロック図である。
【図２】本発明の幾つかの実施形態に基づいて、連想メモリによって実行される動作のフローチャートである。
【図３】本発明の幾つかの実施形態に基づいて、連想メモリによって実行される動作のフローチャートである。
【図４】本発明の幾つかの実施形態に基づいて、連想メモリによって実行される動作のフローチャートである。
【図５】本発明の幾つかの実施形態に基づいて、連想メモリによって実行される動作のフローチャートである。
【図６】本発明の種々の実施形態に基づいて、アソシエーションを決定するために実行される動作のフローチャートである。
【図７】線形ドット積を用いる従来のコンセプト・ベクトルのアルゴリズムのブロック図である。
【図８】１９世紀の終わりにRamon y Cajalによって最初に確立された古典的な神経構造を例示する図である。
【図９】本発明の種々の実施形態に基づいて、アソシエーションのアフィニティーを決定するために実行される動作のフローチャートである。
【図１０Ａ．１０Ｂ】それぞれ、分類されていない連想マトリックス及びアフィニティーで分類されたその構成の実施例を提供する図である。
【図１１Ａ．１１Ｂ】それぞれ、図１０Ｂのマトリックスからの連続したバンドの抽出及び残っている残留アソシエーションを例示する図である。
【図１２】本発明の種々の実施形態に従って、繰返しスワップすることによるアフィニティーに基づいて、連想マトリックスを分類するために実行される動作のフローチャートである。
【図１３】「クリークイ（cliquey）」マトリックスにおけるスワッピングの実施例を例示する図である。
【図１４】「ストリンギー（stringy）」マトリックスにおけるスワッピングの実施例を例示する図である。
【図１５Ａ】８個の入力部を有する連想マトリックスの実施例を例示する図である。
【図１５Ｂ】ソーティング後の図１５Ａのマトリックスを例示する図である。
【図１５Ｃ−１５Ｆ】本発明の種々の実施形態に基づいて、それぞれ、全体的な射影、固定長射影、連続した対角線、及び最適対角線を用いる抽出の結果を例示する図である。
【図１６】本発明の別の実施形態に基づいて、センサ入力部の選択されたサブセットの中でアソシエーションを決定するために、前段／次段の表示部を読み取る方法を例示するブロック図である。
【図１７】本発明の種々の実施形態に基づいて、連想メモリを読み取るために実行される動作のフローチャートである。
【図１８】図１７の動作の実施例を示す図である。
【図１９】本発明の幾つかの実施形態に基づいて、樹状ツリー上のマトリックスバンドを概念的に例示する図である。
【図２０Ａ．２０Ｂ】図１１Ｂを再現した図であり、本発明の幾つかの実施形態に基づいて、それぞれ、残留物を分類した結果を例示する図である。
【図２１】本発明の別の実施形態に基づいて、連想マトリックスを読み取るために実行される動作のフローチャートである。
【図２２】図２１の動作の実施例を示す図である。
【図２３】本発明の幾つかの実施形態による２つのセルのハードウェアのブロック図であり、それらの相互接続関係を示している。
【図２４】本発明の幾つかの実施形態に基づいて、重みではなくアソシエーションの実際のセグメントを用いて連想マトリックスを読み取るために実行される動作のフローチャートである。
【図２５】図２４の動作の実施例を示す図である。
【図２６】本発明の幾つかの実施形態に基づいて、重みではなくベクトル及びポインタを用いて連想マトリックスを読み取るために実行される動作のフローチャートである。
【図２７】図２６の動作の実施例を示す図である。
【発明を実施するための形態】
【００１９】
ここで本発明の実施形態が示されている添付した図面を参照して、本発明を以下により完全に説明する。しかしながら、本発明は多くの異なった形態で具体化することができるが、本願に記載された実施形態に限定されると解釈してはならない。
【００２０】
従って、本発明については各種の修正や別の形態が可能であるが、その特定の実施形態を図面の中の実施例により示し、本願で詳細に説明する。しかしながら、本発明を開示された特定の形態に限定する意図はなく、逆に、本発明は、特許請求の範囲により定義する本発明の精神及び範囲の中に入る全ての変形例、等価なもの、及び代替例をカバーすることを理解されたい。同じ参照番号は、全ての図面の説明の中で同様の要素を意味する。
【００２１】
本願で使用される専門用語は、特定の実施形態を説明する目的にのみ使用されるものであり、本発明を限定することを意図するものではない。単数形の「ａ」、「ａｎ」及び「ｔｈｅ」は、本願で使用される場合は、文脈が明白に別の考えを示す場合を除いて、複数形も含むものとする。「構成する」、「構成している」、「含む」及び／又は「含んでいる」という用語は、この明細書で使用される場合は、規定された機構、領域、工程、操作、素子、及び／又は要素の存在を指定するが、１つ以上の他の機構、領域、工程、操作、素子、要素、及び／又はそのグループの存在又は追加を排除しないことはさらに理解されよう。さらに、素子が別の素子に「対応する」又は「基づく」と呼ばれる場合は、その素子はその別の素子に直接対応する又は直接基づくことができるが、介在する素子が存在しても良い。対照的に、ある素子が別の素子に「直接対応する」又は「直接基づいている」と呼ばれる場合は、介在する素子は存在しない。一般に、「直接に」という用語は、介在する素子／工程がないことを意味し、「直接に」という用語がない場合は、介在する素子／工程が存在する可能性がある。「及び／又は」という用語は、本願で使用される場合は、対応付けられた１つ以上の列挙された項目の幾つかの及び全ての組合せを含み、また「／」と略記されることがある。
【００２２】
第１、第２などの用語が種々の素子を説明するために本願で使用されるが、これらの素子をこれらの用語で限定すべきではないことは理解されよう。これらの用語は、１つの素子を他の素子から区別するために限って使用される。例えば、第１のセルを、開示内容の教示から逸脱することなく、第２のセルと呼ぶことができ、また同様に、第２のセルを第１のセルと呼ぶことができる。
【００２３】
本発明は、本発明の実施形態による方法、装置（システム及び／又は装置）、及び／又はコンピュータプログラム製品のブロック図及び／又はフローチャートを参照して以下のように説明される。ブロック図及び／又はフローチャートのブロック、及びブロック図及び／又はフローチャートの中のブロックの組合せは、コンピュータプログラムの命令によって実行されることは理解されよう。これらのコンピュータプログラムの命令は、汎用コンピュータ、特殊目的のコンピュータ、及び／又は他のプログラム可能なデータ処理装置に与えられて、コンピュータ及び／又は他のプログラム可能なデータ処理装置のプロセッサを介して実行されるこれらの命令が、ブロック図及び／又はフローチャートのブロックの中で指定された機能／動作を実行するための手段（機能）及び／又は構造体を作り出すような装置を作る。
【００２４】
コンピュータ又は他のプログラム可能なデータ処理装置を特定の方法で機能させることができるこれらのコンピュータプログラムの命令を、コンピュータが読取り可能なメモリの中に記憶して、これらのコンピュータが読取り可能なメモリの中に記憶された命令が、ブロック図及び／又はフローチャートのブロックの中で指定された機能／動作を実行する命令を含む製品を作ることもできる。
【００２５】
コンピュータプログラムの命令をコンピュータ又は他のプログラム可能なデータ処理装置にロードし、一連の動作ステップをコンピュータ又は他のプログラム可能な装置上で実行させて、コンピュータの実行による処理を行い、コンピュータ又は他のプログラム可能な装置上で実行される命令が、ブロック図及び／又はフローチャートのブロックの中で指定された機能／動作を実行するステップを提供することもできる。
【００２６】
従って、本発明はハードウェア及び／又はソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）の中で具体化される。さらに、本発明は、命令実行システムによって又はそれと関係して使用される媒体の中で具体化されるコンピュータが使用可能又は読取り可能なプログラムコードを有するコンピュータが使用可能又は読取り可能な記憶媒体上で、コンピュータプログラム製品の形態を取ることができる。この資料に照らして、コンピュータが使用可能又は読取り可能な媒体は、命令実行システム、機器、又は装置が使用する又はそれらの関係において使用されるプログラムを含む、記憶する、通信する、伝送する、又は送信することができるどのような媒体であっても良い。
【００２７】
幾つかの別の実現形態では、ブロック内に記載された機能／動作がフローチャートの中に記載された順序から外れて現れることがあることにも注意されたい。例えば、連続して示された２つのブロックが実際はほぼ同時に実行される、又はブロックが含まれる機能／動作によって時には逆の順序で実行されることがある。さらに、所定のフローチャート及び／又はブロック図のブロックの機能が、複数のブロックに分離される、及び／又はフローチャート及び／又はブロック図の２つ以上のブロックの機能が少なくとも部分的に一体化されることがある。
【００２８】
「上部」、「底部」「左」、「右」などの空間的な相対語は、図面で説明されているように、別の素子又は機能に対する１つの素子又は機能の関係を説明する場合に、説明を容易にするために本願で使用される。空間的な相対語は、図面の中で示された向きに加えて、使用又は動作中の装置の種々の向きを含むことを意図されていることは理解されよう。
【００２９】
「前の（prior）」及び「次の（next）」という用語は、本願ではそれぞれ、三角形の自動連想マトリックス（auto-associative matrix）の行及び列を示すために使用される。このため、例えば、前の射影（prior projection）は幾つのビットが、三角形の自動連想マトリックスの所定の行の中にあるかを計数し、また次の射影（next projection）は幾つのビットが所定の列にあるかを計数している。しかしながら、行および列の指定は逆にすることができることは理解されよう。さらに、「近位の（proximal）」及び「遠位の（distal）」という用語は、本願では連想メモリ用セルの線形アレイに沿った逆の方向を指定するために使用される。次の説明では、近位のという用語は右に伸びるように示された、次の又は増加する方向として定義され、また遠位のという用語は、図面の左に示された先行する又は減少する方向として定義される。しかしながら、繰り返すが、これらの相対的な方向は、別の実施形態では逆にすることができる。
【００３０】
本発明の実施形態に対する完全な説明を行うために、図１〜図６は、本発明の例示的な実施形態に対して高レベルの概要を提供する。次に、図７〜図２５が、複数の例証となる実施例を含む一層詳細な説明を提供する。
【００３１】
図１は、本発明の幾つかの実施形態による連想メモリ及び動作方法のブロック図である。図１に示されているように、連想メモリ１００のこれらの実施形態は、複数の連想メモリ用セル１１０ａ〜１１０ｃを備えている。簡潔にするために、図１には３つのセル１１０ａ〜１１０ｃしか例示されていないが、一般に連想メモリにはより多くのセルが設けられていることは当業者は理解されよう。
【００３２】
さらに、図１を参照すると、それぞれのセル１１０は、センサ入力部１１２、前段連想表示部１１４、次段連想表示部１１６、連想出力部１１８を備えている。「センサ入力部」という用語は、入力信号を識別するために使用されることは理解されよう。これらの入力信号は、出所に関係なく、連想マトリックスを読み取るために使用される。複数のセルが図１に示されているように直列に接続されて線形アレイを形成し、直列に接続されたセルのセンサ入力部１１２、前段連想表示部１１４、及び次段連想表示部１１６が一連のセンサ入力部１１２の中のアソシエーションのアフィニティーに基づいて、遠位のセルから近位のセルまでシーケンス１２０の中で配列される。各入力部１１２は、関連したセンサ入力部がアクティブであるか又はイナクティブであるかを示す（オン／オフ）レジスタとすることができる。一連のセンサ入力部の間のアソシエーションのアフィニティーに基づいて、遠位のセルから近位のセルまでのシーケンスの中でセルを分類又は配列する技術は、下記においてより詳細に説明される。
【００３３】
前段連想表示部１１４は、前段連想部（prior association）、すなわち、三角形の自動連想マトリックスの行方向に沿ったアソシエーションを表示する動作を含むレジスタとして具体化することができる。この前段連想表示部１１４は、以下に詳細に説明されるが、重み、ベクトル、マトリックス・セグメント及び／又は別の表示とすることができる。次段連想表示部１１６は、次段連想部（next association）、すなわち、三角形の自動連想マトリックスの列に沿ったアソシエーションを表示する動作を中に含むレジスタとして具体化することができる。この次段連想表示部１１６は、以下に詳細に説明されるように、重み、ベクトル、マトリックス・セグメント及び／又は別の表示とすることができる。出力部１１８は、以下に詳細に説明されるが、自動連想カウント（auto-associative count）を蓄積するために使用され、またカウンタの動作をするレジスタとして具体化することができる。この出力部１１８は連想出力チャネル１４０に接続されて、出力部１１８で表示されるカウントを蓄積する。
【００３４】
図１をさらに参照すると、それぞれのセル１１０ａ〜１１０ｃは、内部に処理ロジック１３０も備えている。この処理ロジックは、従来のゲートウェイ構造体などの論理ゲート構造体、マイクロプロセッサや内蔵プログラム式マイクロプロセッサ、及び／又は処理ロジックを集積回路の中に取り入れる他の従来の技術を用いて具体化することができる。
【００３５】
図２は、本発明の幾つかの実施形態に基づいて、図１の処理ロジック１３０などの処理ロジックが実行することができる動作のフローチャートである。図２を参照すると、ブロック２１０において、図１のセンサ入力部１１２などの関連したセンサ入力部がアクティブの場合、ブロック２２０において、次段連想表示部のメジャーが、図１の「センド近位」矢印１５０によっても示されるように、隣接する近位のセルに送られる。さらに、ブロック２３０において、前段連想表示部のメジャーが、図１の「センド遠位」矢印１８０によって示されるように、隣接する遠位のセルに送られる。幾つかの実施形態では、アクティブなセンサ入力部１１２に応答して、図１に示されているように、前段連想表示部１１４の表示が遠位（矢印１８０）に送られ、かつ次段連想表示部１１６の表示が近位（矢印１５０）に送られる。しかしながら、別の実施形態では、近位及び遠位への送信は両方とも実行される必要はない。むしろ、幾つかの実施形態では、遠位の送信又は近位の送信のみが実行される。
【００３６】
図３は、図２に関連して実行された動作に加えて、本発明の別の実施形態に基づいて、図１の処理ロジック１３０などの処理ロジックが実行することができる別の動作のフローチャートである。図３の動作は、隣接する近位及び／又は遠位のセル１１０からの信号を受け取ったことに応答している。
【００３７】
特に、図３を参照すると、ブロック２１０において、センサ入力部１１２などの所定のセンサ入力部がアクティブで、かつ図１の矢印１６０によって示されるように、ブロック３２０において次段の表示部のメジャーが隣接する遠位のセルから受信される場合、連想カウントがブロック３４０において、例えば連想出力部１１８で蓄積される。別の方法では、又はそれに加えて、ブロック２１０において、センサ入力部がアクティブであり、かつ図１の矢印１７０で示されているように、ブロック３５０において隣接する近位のセルから前段連想表示部のメジャーを受け取ることに呼応して、連想カウントがブロック３４０において、例えば連想出力部１１８で蓄積される。従って、図２は、連想表示部のメジャーを隣接する近位及び遠位のセルに送信する処理の実施形態を例示し、また図３は、遠位及び近位のセルから受け取られた表示を処理し、カウントを蓄積する実施形態を提供している。
【００３８】
図４は、本発明の幾つかの実施形態に基づいて、図１の処理ロジック１３０などの処理ロジックが実行することができる別の動作のフローチャートである。これらの動作は、図２及び図３の動作に加えて実行される。
【００３９】
特に、図４を参照すると、ブロック３２０において、図１の矢印１６０によって示されているように、隣接する遠位のセルから次段連想表示部１１６のメジャーを受け取ることに呼応して、またブロック３３０において、所定のセルの前段連想表示部１１４がアクティブであることに対応して、受け取られた次段連想表示部のメジャーがブロック４１０でディクリメントされ、ブロック４１０でディクリメントされた次段連想表示部のメジャーが、図１の矢印１５０によって示されているように、ブロック４２０において隣接する近位のセルに送られる。別の方法では、又はそれに加えて、ブロック３５０において、図１に矢印１７０で示されているように、隣接する近位のセルから前段連想表示部１１４のメジャーを受け取ることに対応して、またさらに、ブロック３６０において、次段連想表示部１１６がアクティブであることに対応して、受け取られた前段連想表示部のメジャーがブロック４３０においてディクリメントされ、またブロック４３０でディクリメントされた前段連想表示部のメジャーが、図１の矢印１８０によって示されているように、ブロック４４０で隣接する遠位のセルに送られる。
【００４０】
図５は、本発明の別の実施形態に基づいて、図１の処理ロジック１３０などの処理ロジックが実行することができるさらに別の動作のフローチャートである。これらの動作は、図２、図３及び図４の動作に加えて実行される。
【００４１】
特に、図５を参照すると、ブロック３２０において、図１の矢印１６０によって示されているように、隣接する遠位のセルから次段連想表示部１１６のメジャーを受け取ることに呼応して、またさらにブロック５３０において、所定のセルの前段連想表示部１１４がイナクティブ（カウントされないか又はベクトルを持たない）であることに対応して、受け取られた次段連想表示部のメジャーがブロック５４０で示されているように、また矢印１５０によって示されているように、隣接する近位のセルに送られる。さらに、又は別の方法では、ブロック３５０において、矢印１７０で示されているように、隣接する近位のセルから前段連想表示部１１４のメジャーを受け取ることに対応して、またさらに、ブロック５５０において、所定のセルの次段連想表示部１１６がアクティブであることに対応して、所定のセルによって受け取られた前段連想表示部のメジャーが、図１の矢印１８０によって示されているように、ブロック５６０で隣接する遠位のセルに送られる。従って、これらの実施形態では、所定のセルの前段／次段の連想表示部がイナクティブである場合は、受け取られた連想表示部のメジャーはディクリメントされずに転送される。しかしながら、本発明の別の実施形態では、例えば排他的でない（non-cliquish）（ストリンギーな（stringy））射影が使用される場合、受け取られた連想表示部のメジャーは、所定のセルの前段／次段のカウンタがイナクティブであるなしにかかわらず、ディクリメントされた後に転送される。
【００４２】
図６は、本発明の種々の実施形態に基づいて、アソシエーションを決定するために実行することができるフローチャートである。これらの動作は、遠位のセルから近位のセルまで順番に直列に接続されて、図１の連想メモリなどの線形アレイを形成する複数の連想メモリ用セルを備えた連想メモリを用いて実行され、またアソシエーションを決定するために図２〜図５に関連して前述された動作を使用できる。
【００４３】
特に、ブロック６１０において、一連のセンサ入力部の間でアソシエーションのアフィニティー（affinity）が決定されて、図１のアフィニティー・ベースの入力シーケンス１２０が得られる。幾つかの実施形態では、アソシエーションのアフィニティーが、ブロック６２０において、連想メモリ用セルをロードする前に決定される。別の実施形態では、ブロック６２０において、アフィニティーがメモリセル内にロードされた後でアフィニティーを決定するために、インプレース学習（in-place learning）が使用される。さらに別の実施形態では、ブロック６２０において、前段／次段の表示部をメモリセル内にロードする前及び後の両方でアフィニティーが決定される。
【００４４】
幾つかの実施形態では、センサ入力部間のアソシエーションのアフィニティーは、近位及び遠位の方向のアソシエーションのアフィニティーに基づいて、入力部、前段連想表示部、及び次段連想表示部を直列に繰返しスワッピングすることによって決定される。さらに、一連のセンサ入力部間のアソシエーションのアフィニティーは、最大射影、固定長射影、及び／又は最長の非最大射影などの射影に基づいて、繰返しスワップされたシリーズからバンドを抽出することによって、及び／又は他のバンド抽出技術によって更に決定される。アフィニティーを決定するためのこれらの技術は、以下により詳細に説明される。ブロック６２０において、それぞれのメモリセル１１０は、メモリセルのそれぞれのセンサ入力部１１２に対して前段連想表示部１１４及び次段連想表示部１１６を用いてロードされる。ここで、直列に接続されたセル１１０のセンサ入力部１１２は、ブロック６１０において早く決定される及び／又は遅く決定される一連のセンサ入力部間のアソシエーションのアフィニティーに基づいて、遠位のセルから近位のセルまで順番に配列される。従って、ブロック６１０及び６２０の動作により、三角形の非線形自動連想マトリックスを線形アレイのセル１１０の中にロードすることが可能になる。
【００４５】
さらに図６を参照すると、ブロック６３０で、選択されたセンサ入力部がアクティブにされて、それらの間のアソシエーションが決定される。ブロック６４０において、アクティブにされたセンサ入力部に呼応して、例えば図２〜図５の処理ロジックの動作を実行することによってアソシエーションが蓄積され、これにより、近位及び／又は遠位のセルに信号を送り（図２）またカウントを蓄積するために受信された近位及び／又は遠位の信号で動作し（図３）、信号をディクリメントし（図４）、及び／又は信号をディクリメントせずに通過させる（図５）。カウントは、個々の出力部１１８を蓄積することによって、連想出力チャネル１４０の中に蓄積される。このため、ブロック６３０及び６４０の動作により、選択されたセンサ入力部をアクティブにしかつアソシエーションを蓄積することによって、連想メモリを問合せる又は読み取ることができる。
【００４６】
ブロック６５０において、別のアソシエーションを問合せすることを望む場合、選択されたセンサ入力部の新しい組がアクティブにされ（ブロック６３０）、新しいアソシエーションが蓄積される（ブロック６４０）。ブロック６３０〜６５０の動作がパイプライン方式で実行され、この場合、アソシエーションはブロック６４０において前にアクティブにされたセンサ入力部の組に対して蓄積されることは、当業者はまた理解されよう。それにより、高速のパイプライン方式の動作を提供することができる。
【００４７】
本発明の種々の実施形態に対するより詳細な説明が、ここで行われる。教訓的な目的のために、実施例も使用される。下記の詳細な説明では、従来の連想メモリに関する簡単な説明が行われて、その後、本発明の幾つかの実施形態に基づいて、アソシエーションのアフィニティーを決定するための技術が説明される。次に、本発明の幾つかの実施形態に基づいた連想メモリの実施形態が、実施例と共に説明される。本発明の幾つかの実施形態による処理ロジックの種々の実施形態が、実施例と一緒に説明される。最後に、重みではなくベクトルとセグメントを使用する本発明の実施形態が、実施例と共に説明される。
【００４８】
本発明の基礎をなす研究の一部として、様々なハードウェアのプラットフォームが調査された。特に、St. LouisのWashington Universityのプラットフォーム及びYork (UK)のCybula/Universityのプラットフォームが調査された。
【００４９】
St. LouisのWashington Universityのプラットフォームは、インターネット、arl.wustl.edu/projects/fpx/reconfig.htmの上で説明されている。このプラットフォームを用いてすでに試験された種々のアルゴリズムには、Latent Semantic Indexing (LSI)、Associated Grounded Semantics (AGS)、及びK-mean クラスタリング及びOrder Statisticsなどの他の標準的な方法が含まれる。AGSの実行に当たっては、図７は、マトリックス要素が項をコンセプトに直接マップするため、「線形の」アソシエーションのみを使用する状態を示している。
【００５０】
各項は、その関連付けられた項によって示されるように扱われるが、この項の関連ベクトルは、（インターネットのニュースグループなどの）分類の線形予測量に過ぎない。図７は、どのように各分類が「コンセプト・ベクトル」として表示されるかを示すブロック図である。各コンセプトのスコアは、コンセプト・ベクトルを有する文書ベクトル（document vector）のドット積によって計算される。ドット積は、各インデックスのコンセプトに対する寄与の線形加算を示す。全体のレイアウトは、項−コンセプト・マトリックス（term-to-concept matrix）として見ることができるが、各コンセプトに対する非線形の項間の情報を含んでいない。
【００５１】
対照的に、本発明の幾つかの実施形態は、各コンセプトに対して非線形のアソシエーションを示すことができるが、なおも線形ハードウェアのインプリメンテーション（linear hardware implementation）を保持している。線形の方法はp(x|y)、すなわち各入力項ｙに対する分類ｘ、を評価するが、本発明の幾つかの実施形態はp(x|y,z)、すなわち各入力項のｙ−ｚ対に対する分類ｘ、を評価することもできる。項間のアソシエーションは、その意味をより正確に形に表す必要がある。同時に、連想対を完全なクロスバーなしで保存することは問題であるが、本発明の実施形態は、それを達成することができる。
【００５２】
Cybula 及び University of York (UK)のプラットフォームは、インターネットのcybula.com上で説明されている。この会社は、特定の種類の連想メモリのハードウェア装置の専門会社である。基本的な表示は、「相関マトリックスメモリ」である。このメモリは単なる線形連想装置にすぎず、ＡＧＳと同じ潜在的な弱点がある。ＡＧＳの項−コンセプト・マトリックスと同様に、Cybulaの項−文書マトリックスは明示的でありかつ完全なクロスバーである。
【００５３】
相関マトリックスに対するCybula方式は、完全なクロスバーを前提とする。項−文書マトリックスが、反転したインデクシング及び検索のために使用される。これらの項に対するアソシエーションは、各出力に対して１つの列からの出力ベルト、文書インデックス又はコンセプトのどちらかとして合計される。これらの方式は両方ともハードウェアで実現するのは容易であるが、そのようなクロスバーは全体的に極めて非効率的である。
【００５４】
本発明の幾つかの実施形態では、全ての可能なアソシエーションの完全で幾何学的なマトリックスの中の全ての項の共通部分として定義された、「クロスバーの問題」に対する解決策として連想メモリを備えることができる。「薄いデンドライトの中の一致検出」は、圧縮の問題と考えることができる。すなわち、連想マトリックスを支配的な線形デンドライト構造体の組の中にどのように配列及び分解することができるか？と考えることができる。
【００５５】
「一致検出」は、神経科学の文献では様々な方法で定義されている。最も弱い定義は、プレ・シナプス及びポスト・シナプスのニューロンの一致ファイヤリング（coincidence firing）を学習することとして与えられる。このことは、１９４９年にDonald Hebbが最初に発表したことに関連して、Hebbian Ruleとして周知である。しかしながら、これはポスト・シナプス・ニューロン上の２つの異なるシナプスが一致検出器としてどのように相互作用するかについて対処していない。非線形の連想装置としてニューロンに関する最近の関心及び理解は、ニューロンの計算能力が正当に評価されていないこと、またデンドライト構造体が「配線エコノミー（wiring economy）」の何らかの形態に関連付ける必要があることを示唆している。一致検出に関する最近の生理的に実際的なモデリングは増加傾向にあるが、この仕事のほとんど全てが、わずか２つの神経シナプスが、どのように相互作用することができるかを説明している。換言すると、極めて詳細な生理学的なモデル及び実証的証拠は、１つのシナプスの動作が別のシナプスと相互作用することができるという点で、ニューロンが実際に非線形であることを示している。各ニューロンは、薄い線形のデンドライトによって示された非線形の連想装置と推定される。
【００５６】
しかしながら、現在の文献は、どのように３つ以上の任意の入力が、かなりの計算を行うために、薄いデンドライトの全体にわたって物理的に配列されかつ相互作用するようになるかについて対処しているようには思われない。現在の文献は、特定のアソシエーションを示すために、どのように２つのシナプスが一致検出のために相互作用することができるかを例証するが、どのようにそのようなシナプスがデンドライト・ツリー上で構造的に配列されることができるかは例証しないように思われる。対照的に、本発明の種々の実施形態では、多数の非線形のアソシエーションを保存及び呼び出す手段として、ニューロンの全体にわたる構造的な配列及び一致検出の方法の両方が例示される。
【００５７】
本発明の幾つかの実施形態は、１９世紀の終わりにRamon y Cajalによって最初に出版された古典Neuron Doctrineによって霊感を与えられた。図８は、神経処理の計算単位（computational unit）と想定される単一神経を示す、Cajalによる図面を例示している。入力信号は、各樹状突起の長さに沿って配列されたシナプスの「ボタン」と多くの場合考えられるシナプスを通して作られる。ニューロン全体を示すデンドライトは、長くかつ薄い主に線形のツリーである。ニューロンはこれらの入力信号を集めて、その１つの軸索上でその出力を計算する。このような収集物と計算が非線形である場合、主に線形の構造体が非線形のアソシエーションを計算できる方法は、圧縮の方法とみなすことができる。
【００５８】
本発明の幾つかの実施形態による三角形の自動連想マトリックスにおいて、アソシエーションのアフィニティーを決定する技術がここで説明される。アフィニティーを決定する方法は全体的に、上記の図６のブロック６１０で説明され、またセルの線形アレイが直列に接続されたシーケンス、すなわち、センサ入力部及び前段連想表示部及び次段連想表示部のシーケンスを決定するために使用される。概ね前述されたように、アソシエーションのアフィニティーは、近位及び遠位の方向のアフィニティーに基づいて、入力部、前段連想表示部、及び次段連想表示部を直列に繰返しスワッピングすることによって決定される。スワッピングの後で、最大射影、固定長射影、最長の非最大射影及び／又は他の技術などの射影に基づいてスワップされたシリーズからバンドを抽出する工程が続く。別の実施形態では、バンドを抽出する必要はない。これらの技術は、ここで詳細で教訓的な実施例を用いて説明される。
【００５９】
最大射影によるソーティングは、２００６年３月２１日に発行され、本発明の譲受人に譲渡された「Artificial Neurons Including Weights That Define Maximal Projections」という名称の米国特許第７．０１６，８８６号の中で詳細に説明されている。この特許の開示内容は、参照することによってあたかも本願に完全に記載されているように全体として本願に組み込まれる。そこで説明されているように、マトリックス射影のソーティング（各行Ｒ及び列Ｃに対するビットの合計）は、ビットをゼロスタート・ランレングス符号化（zero-start run-length encoding）の中に詰め込むことができる。これらの射影は線形であり、例えば各行に対して１である。これらの射影は、最大連想マトリックスの場合はランレングスを示すことができ、また最初のマトリックス内の全てのビットの存在を完全に計算することができる。ほとんどマトリックスは最大ではなく、また多くのマトリックスは、ビットの異なる配列が同じ射影を作る「スイッチ」を含んでいる。換言すると、最大射影は、マトリックスに対して常に不変であるとは限らない。射影は、ビットがスイッチの領域の中でオンであるか又はオフであるかを正確に決定することができない。このため、スイッチの中の１及び０の幾つかのスワッピングは、射影を変化することなく実行できる。
【００６０】
本発明の種々の実施形態によるソーティング技術は、ビットをより圧縮された形態にパックすることができる。しかしながら、自動連想マトリックスは、長方形マトリックスをソーティングするのではなく、三角形であるため、種々の問題を作る。特に、三角形マトリックスの行及び列は同じ項を含んでいる。ソーティングの目標は、これらの項に対して１つの分類順序を定義して、行及び列の両方をより圧縮した形態で使用することである。本発明の幾つかの実施形態は、項間のアフィニティーに基づいて分類することができ、これによりランレングスの数を減少させることができ、また連想ビットを対角線の近くに置く傾向がある。別の技術は、ソーティングのために射影の強度を使用する。さらに、強度とアフィニティーのソーティングの組合せも使用できる。
【００６１】
図９は、本発明の種々の実施形態に基づいて、アソシエーションのアフィニティーを決定するために実行される動作のフローチャートである。ブロック９１０において、三角形の自動連想マトリックス９００が、例えば以下において詳細に説明されるスワッピング技術を用いて、アフィニティーに基づいて分類される。スワッピングの後で、バンドがブロック９２０で抽出される。特に、項の間のアフィニティー上の分類は、ランレングスの数を減少させる可能性があり、また連想ビットを対角線の近くに置く傾向がある。次に、バンドの抽出が分類されたマトリックス上で実行される。バンドがブロック９２０で実行されると、射影がブロック９３０で計算され、次にブロック９４０において、バンドが付加される。
【００６２】
アフィニティーのソーティングは、ビットを対角線に向けて押し進める、マトリックスのバンド減少の形状として観察される。最初の三角形のマトリックス９００を考えると、ブロック９１０の分類動作は、互いに項のアフィニティーに基づいて項を整理し直す。次に、対角線上の一連のパックされたビットのバンドは、ブロック９２０で抽出される。このバンドは、ブロック９３０において、抽出されたバンドに対して計算される前段及び次段の射影によって表示できるように定義される。連続したビットを抽出する工程は、非連続的なビットの残留マトリックスを残す可能性があるが、このマトリックスはブロック９１０で第１のバンドなしで再度分類することができる。このことは結果として、第２のバンド及びその射影を発生し、図９の下部で示されているように、それを増大する線形構造体の連続した形状に付加することができる。
【００６３】
図１０Ａ及び図１０Ｂは、最初の未分類のマトリックスと項アフィニティー（term affinities）によって分類されたその組織化の実施例を提供する。対角線に沿ったビットのパッキング、及びビットの多くが対角線から互いに連続している程度に注意されたい。図１０Ａ及び図１０Ｂは、上方及び下方の三角形とそれらの対称性の両方を示しているが、自動連想マトリックスを表示するには１つの三角形しか必要としないことは理解されよう。
【００６４】
図１１Ａ及び図１１Ｂは、それぞれ、図１０Ｂのマトリックス（図９のブロック９２０）からの連続したバンドの抽出及び残っている残留アソシエーションを実証している。前段／次段の射影によってアソシエーションの連続したバンドをスイッチなしで一様に表示することができ、また本発明の幾つかの実施形態に基づいて、これらの射影を有効に使用して、アソシエーションを読むことができる。
【００６５】
前述されたソーティング及び抽出は、本発明の幾つかの実施形態では、セルの線形アレイをローディングする前に、エクスポートサービスとしてハードウェア又はソフトウェアによって実行することができる。抽出は、本来のマトリックスを完全に表示することはできない。特に、ほとんどのマトリックスは最大ではなく、また最も理想的なソーティングでさえ、射影ベースの表示から全てのスイッチを除くことはできない。このため、抽出は線形の構造体の損失をエクスポートすることができるが、線形の構造体の中で大きな非線形のアソシエーションの組を最も良く捕らえることができる。
【００６６】
図１２は、繰返しスワップすることにより、アフィニティーに基づいてマトリックスを分類するために実行される動作を例示している。この動作は、図９のブロック９１０に対応する。図１２に示されているように、ブロック１２１０において、所定のマトリックス内の２つの隣接する項ｉ及びｊが示されている。各項に対する前段及び次段のアソシエーションは、計算及び記憶することができる。例えば、マトリックスの行および列の方向に沿った射影の全数を合計して、前段及び次段の値を得ることができる。ｉとｊとの間のアソシエーションも、マトリックスから利用できる。
【００６７】
図１２をさらに参照すると、ブロック１２２０ａ及びブロック１２２０ｂにおいて、各項のアフィニティーが計算される。例えば、prior.i = 5 及び next.i = 15の場合、項ｉは右に移動する（nextに移動する）ための強いアフィニティーを有する。term .i 及び term .jの順序をスワップすべきかどうかを比較するために、２つの方向を比較する。しかしながら、ブロック１２２０ａ及びブロック１２２０ｂに示されているように、association.ijを考慮の対象から取り除く必要がある。２つのアフィニティーが、ブロック１２３０で比較される。項をスワップして、各項を他のアソシエーションよりももっと近くに移動させる必要がある場合は、ブロック１２４０ａ〜ブロック１２４０ｄに示されているように、この可能なnext.iがprior.iのアソシエーションになる（また、prior.jが、スワップの中に存在する場合、next.jのアソシエーションになる）場合にassociation.ijを計数する場合を除いて、前段及び次段の射影は同じ場所に残る。
【００６８】
図１３は、図１２のブロック１２３０〜１２４０のスワップ及びクリーク（clique）の抽出の実施例を例示している。スワップの前のマトリックスが左に示され、スワップの後のマトリックスが右に示されている。左のマトリックスに示されているように、所定の前段及び次段の射影Ｆ及びＣを互いにスワップする必要があり、またＤ及びＨを互いにスワップする必要がある。例えば、ＣはＦを越えて移動するより大きなアフィニティーを有し、一方ＦはＣを越えて移動するより大きなアフィニティーを有している。スワップが行われると、連続したビットが対角線に沿って見出される。これらのビットは、図１３の右下に示されているように、新たに分類された順序で前段及び次段の射影によって一様に示される。この図はここでは、例えば、図１のセル１１０に対する前段及び次段の値１１４、１１６と一緒に、図１のアフィニティーに基づくシーケンス１２０を提供するために、結果として生じた順序の中で各項に対する前段及び次段の射影の線形のリストとして提供される。
【００６９】
図１４は、連想マトリックスがより「ストリンギー（stringy）な」データを有している場合、図１２のブロック１２３０〜１２４０のスワッピング規則の別の実施例を例示している。始動マトリックスが左上の象限に示され、またスワップの後のマトリックスが右上の象限に示されている。前段／次段のアソシエーション及びセンサの順序が、右下の象限に示されている。これにより、図１２の実施形態は、クリークイ（cliquey）なアソシエーション及び／又はストリンギーなアソシエーションを有するマトリックスに対するアフィニティー分類（affinity sort）を提供することができる。
【００７０】
図１２〜図１４は、本発明の実施形態による唯一のソーティング技術ではない。例えば、他のアフィニティーによる方法は、アソシエーション・ビットの特定の距離及び２乗にした距離を含むことができる。実際には、Cuthill-McKee 及び King's Algorithmなどの、多数の従来のマトリックス帯域幅最小化方法がある。他の方法は、ハミング距離の測定及び２項間のアソシエーションを他の全ての項に適合させる数も含むことができる。このことは、Traveling Salesmanの問題などの分類順序の問題を処理する。共に活性化された入力部がやがて互いにより近くに移動する傾向があるという考え、又はシナプスが適切なデンドライトに達するまで絶えず作り直されるという考えを含む、神経再組織化の理論も適用できる。任意のソーティング技術を使用して、その結果の前段／次段の抽出／表示を得ることができる。
【００７１】
図９に戻ると、ブロック９２０の連続したビット抽出ステップは、バンドの中に「クリークイな」チェーンを形成し、また残留物の中に「ストリンギー」構造を残す。しかしながら、ブロック９２０の抽出は、どちらの種類の構造も処理することができる。
【００７２】
図９のブロック９２０に対応する、射影を用いるバンド抽出技術をここで説明する。特に、図１５Ａは、８個の入力部を有する最初の連想マトリックスの実施例を例示している。図１５Ｂは、ソーティングの後の図１５Ａのマトリックスを例示する。図１５Ｃ、１５Ｄ、１５Ｅ及び１５Ｆは、本発明の種々の実施形態による全分類射影（entire sorted projection）、固定長射影、連続対角線及び最適対角線を使用する抽出方法の結果を例示している。
【００７３】
特に、図１５Ｃを参照すると、何ら抽出をしない全分類射影が使用されている。これは、スイッチが計数されないため、損失の多いソーティングになる。対照的に、図１５Ｄは固定長抽出を使用しており、この場合、固定長は２である。これらの実施形態では、マトリックスは層にスライスにされ、射影は層の中に入れられる。スイッチの損失は、局所的である。
【００７４】
図１５Ｅは、連続対角線、すなわち対角線からのランレングスを使用する場合を例示している。複数の抽出が行われて、これは損失のない射影を提供することができる。図１５Ｅの連続対角線抽出は、後に続く実施例の中で教訓的な目的のために使用される。最後に、図１５Ｆは、最適対角線に沿った抽出を例示しており、これは最長で最良の射影を提供している。この抽出は、スイッチエラーを減少又は最小にし、またロス・ラン（loss run）を最適にすることができる。
【００７５】
本発明の実施形態に基づいて、現在周知の又は最近開発された任意の他のアフィニティー・ソーティング及び／又はバンド抽出技術を使用して、前段／次段の連想表示部及び複数の連想メモリセルにロードされた関連した一連のセンサ入力部を得ることができることは当業者も理解されよう。それ故に、本発明の実施形態を前述された技術に限定すべきではない。
【００７６】
図１６は、本発明の別の実施形態に基づいて、前段／次段の表示部が読み取られて、センサ入力部の選択されたサブセットの間でアソシエーションを決定する方法のブロック図である。図１６では、説明する間で異なる技術が使用されても、図１と同じ参照番号が使用される。図１６では、８個のセル（「プロセッサ」とも呼ばれる）が示されており、これらのセルは、図１５Ｅに示されている連続対角線技術を用いてソーティング及びバンド抽出が行われた後の、図１５Ｂの連想マトリックスを記憶する。図１５Ｅの記憶され抽出された連想マトリックス１６００は、図１６の右下に示されている。前段／次段のカウント及びセンサの順序は、図１６の左上の１６１０で示されている。８個のセル１１０ａ〜１１０ｈを含む連想メモリ１００’が示されている。教訓的な目的のために、８個のセルが例示されているが、現実の世界の実施形態は８個よりも多い数のセルを持つことができることは理解されよう。簡潔にするために、図１６では、隣接する遠位のセル１６０から次段連想表示部の次段のメジャーを受け取る動作、及び前段連想表示部のメジャーを隣接する近位のセル１５０に（左から右に）送る動作が例示されている。逆方向（右から左）の受け取る動作及び送る動作は示されていない。その理由は、すでに説明されたように、本発明の幾つかの実施形態は、図を遠位の方向又は近位の方向に送るだけだからである。
【００７７】
また図１６に示されているように、左上に示された実施例１６１０を用いた適切な分類順序における前段／次段の射影を考えると、入力シーケンス１２０によって示されるように、どのように各セルが各入力に対してアドレス指定されるかに基づいて、セル１１０ａ〜１１０ｈのアレイは順序を示すことができる。各セル１１０は、特定の入力に対して、前段及び次段の連想表示部１１４、１１６を記憶する。ＦＰＧＡなどのハードウェアは、このアドレス指定及び前段／次段の重み付けを実行するために、ソーティング及び抽出の出力表示１６１０を行う変換及びロード方法を有すると仮定される。また以下に説明されるように、各セルは各入力部１１２の状態、及び入力に依存して計算されかつ読み取られる局所的なアソシエーションのカウンタ１１８を保持する。最後に、処理ロジック１３０が、隣接するセル１５０、１６０から及び隣接するセルに向かうローカル・メッセージを通してこれらのアソシエーションを計算する。そのような動作は、近位の方向及び／又は近位の方向に流れる。
【００７８】
図１７は、本発明の種々の実施形態に基づいて、図１又は図１６の所定のセル１１０の処理ロジック１３０によって実行される動作のフローチャートである。図１７は、図２〜図５に関連してすでに説明された動作のコンパクトな表現を提供するとみなすことができる。
【００７９】
特に、図１７を参照すると、ブロック１７１０において、センサがオンに切り替わると、この状態が入力部１１２としてセルの中に保持されるが、ブロック１７２０ａ及び１７２０ｂに示されているように、セルに対してそれ自身の前段及び次段の重みを信号としてそれぞれの隣接するプロセッサに送らせる。これらの動作は、図２の動作に対応する。換言すると、オンに切り替わった各セルは、遠位の方向及び近位の方向に幾つのアソシエーションを有しているかを他のセルに伝える。
【００８０】
図１７の残りの部分は、隣接するセルが信号を受信したときに実行する動作を例示しており、これは図３〜図５の動作に対応する。図１７を再度参照すると、隣接するセルがブロック１７３０ａ又は１７３０ｂにおいてそのような信号を受信する場合、クリークイな表示の定義によって、それは信号源に関連付けられる必要がある。言い換えると、受信するセルは、信号源を有する信号を送られたアソシエーションの１つを持つ必要がある。重みがブロック１７５０ａ、１７５０ｂで１よりも大きいと仮定すると、受信するセルはブロック１７７０ａ、１７７０ｂで信号をディクリメントして、それ自身１つのアソシエーションを計数する。それはまたブロック１７８０ａ、１７８０ｂで信号を次のセルに送る。これにより、ソースからの起動は、ソースからの距離の関数として落ちる。ブロック１７５０ａ、１７５０ｂにおいて、ディクリメントする動作及び送る動作は、受信された重みが１よりも大きい場合（すなわち、２以上）のみ実行されることを理解されたい。特に、受信された重みが１の場合、ゼロの重みを送る必要はないため、それはゼロにディクリメントされることはない。
【００８１】
さらに、クリークイな表示の定義によって、全てのソース信号及び受信するセルは、メモリの中にアソシエーションを表す。受信するセルがブロック１７４０においてオンの場合、これはアソシエーションが所定のセンサのパターンの中にも存在することを意味する。このため、セルがブロック１７３０ａ、１７３０ｂにおいてアクティブな信号（すなわち、ゼロよりも大きい信号）を受信して、かつそれ自身のセンサがブロック１７４０でオンの場合、このアソシエーションをブロック１７９０のアソシエーション・カウンタで計上する。一般に、多くのアクティブなセンサからの多くの信号が多くのセルを通過するため、他のアクティブな入力部に対する各アクティブな入力のアソシエーションの数が各セルに対して蓄積される。
【００８２】
図１８は、図１６と同じ実施例のマトリックス１６００を用いる活性化フローの実施例を提供する。このマトリックスは、図１８の右側に転載されている。この実施例では、感覚パターン（sensory pattern）が｛Ｇ、Ｂ、Ｄ、Ｈ、Ｅ｝のセルを活性化する。表示を簡潔にするために、近位方向の信号だけが示されている。両方向への伝搬が実際のニューロンに存在することが知られており、また付加的な連想メモリの機能（パターン完成（pattern completion）、非アクティブ・センサ及び／又は特定の入力に対するアソシエーションの数を読むことによる説明など）に対して望ましいが、センサ・パターンの全体にわたる対のアソシエーションの総数は、一方向の伝搬のみを用いて決定される。これは、軸索上の１つの総額による出力としてセンサ・アソシエーションを用いる全ニューロンの「経験」を蓄積することに似ている。
【００８３】
図１８を参照すると、初期の時間／状態ＴＯは、オンセンサの設定状態と共に固定された前段／次段射影の重みを示している。時間／状態Ｔ１は、オンの各プロセッサに対する次段の重みの近位のシグナリングを示している。黒の矢印は、プロセッサが遠位の信号を受け取り、かつそれがオンであるという２つの場合を示している。Ｄ及びＨの場合は、これはアソシエーションを検出したことを示し、このことはその出力に蓄積される。Ｔ２は、どのように全ての信号がディクリメントされかつ次段のプロセッサに転送されるかを示している。この第２の時間枠では、Ｂ用のプロセッサが、遠位の信号がゼロよりも大きくまたプロセッサもオンの状態である唯一の状況である。これは１つのアソシエーションを検出する。Ｔ３は、非ゼロ信号のさらなるディクリメント及び伝搬を示す。この場合、Ｄは別のアソシエーションを計数する（Ｇはもとのソースである）。Ｔ４によって、もはや効率的な信号はなく、また蓄積は合計４対のアソシエーションを｛Ｇ、Ｂ、Ｄ、Ｈ、Ｅ｝の中に示している。このことは実際には、マトリックス１６００の中で暗いシェーディングによって示されているように、センサがアクティブなこのマトリックスの全経験に対する事例である。
【００８４】
上記の図面にあるこれらのセルのアレイは、１つの物理的アレイの異なる時間ステップを示しているが、このレイアウトは新しい入力が入ると、アレイをパイプライン処理する能力も示していることに注意されたい。
【００８５】
最後に、この線形のコンピューティング構造体は、完全なニューロンのデンドライト構造体に類似している。図１６で描写された連想メモリを反映することにより、図１９は、どのようにクリークイなマトリックスのバンドをデンドライトの延長部分の全体にわたって分配することができるかを示している。無論、これは概念上の図であり、クリークイなバンドは実際にはそのようなデンドライトの上には位置しない。しかしながら、そのようなバンドを表示する前段／次段の射影は、デンドライトの中に示すことができ、また任意のｉ及びｊのセンサ・シナプスの全体にわたる活性化により、それ自体分解される連想メモリのアソシエーションを読み取ることができる。
【００８６】
多数のそれぞれのニューロンは共存することができ、それぞれは１つの神経出力に対する多数の入力のファンインに似ている特定の出力ラベルを示している。しかし、どのようにこれらの入力を各出力にマップするかに関する線形アソシエーションのモデリングではなく、この非線形のモデリングは、最初の連想マトリックスの明白なクロスバーなしに、入力の一致を各出力にマップする。
【００８７】
図１６〜図１８の実施形態は、クリークイなアソシエーションを計数する。しかしながら、本発明の別の実施形態は、クリークイ又はストリンギーであろうと、どのような任意のアソシエーションも計数する。特に、図２０Ａは、図１１Ｂを再現している。この図１１Ｂは、図１１Ａに対して連続対角線抽出を行った後の残留物を示している。このため、図２０Ａは、図１１Ａの最初の分類されたマトリックスから一旦クリークイなバンドが抽出された残留構造を示している。図２０Ｂは、残留物を分類した結果を示しており、これは全体的に小さい帯域幅を有しているが、クリークイ構造ではなくストリンギー構造をまだ示している。このため、一般に、クリークイ構造は取り除かれるが、ストリンギー構造が残っている。図２１〜図２２に関連してここで説明される本発明の実施形態は、クリークイ構造とストリンギー構造の両方を計数することができる。
【００８８】
図２１は、クリークイ構造及びストリンギー構造と一緒に使用できる一般化された読取りロジックを例示しており、前に説明された図２〜図５の動作に対応している。図２１の動作は、任意の前段／次段の射影に対して動作することができる。大部分の動作は図１７に関連して説明された動作に対応しているため、再度説明はしない。しかしながら、図２１の実施形態には、ブロック１７６０ａ及び１７６０ｂが加えられている。図１７で示された論理を考えると、前段／次段のカウントの試験のために、クリークイ及びストリンギー装置の両方を処理するスイッチが提供される。特に、セルの前段の重みがゼロの場合は、定義によって、それは遠位の方向から入射するどのような信号にも関係しない。他方においては、前段の重みがゼロよりも大きい場合は、定義によって、それは局所的なクリークの一部であり、遠位の信号と共にそのアソシエーションを計数する。動作にあっては、そのようなゼロの重みのセルは信号とは無関係になるため、単にその信号を次のセルに送る。その前段又は次段の重みがゼロでない場合に限り、セルはセンサのアソシエーションをチェックすることによってこの重みを計数し、信号を送る前にそれをディクリメントする。これにより、ブロック１７６０ａ及び１７６０ｂを加えることは、図５の処理を提供することとみなすことができる。
【００８９】
図２２は、ブロック２１１０ａ及び２１１０ｂを加えることがどのようにストリンギーなアソシエーション構造を計数するかの実施例を提供する。同じセンサ分類順序及び｛Ｇ、Ｂ、Ｄ、Ｈ、Ｅ｝の入力ベクトルが、前と同様に使用される。しかしながら、前段及び次段の重みが、図２２の右のマトリックス２２００の中で示されたストリンギーなアソシエーションを示している。Ｔ１において、Ｇ及びＢの両方は自身の次段の重み１を送るが、Ｄが前段の重みを有しまたオンであり、アソシエーションを計数する間に、Ａが前段の重みを持たないため、単に全アソシエーションをディクリメントせずに次段のプロセッサに送る。Ｇの信号もＴ２において同じ論理でＢに送るが、Ｇの信号がＤに到達すると、論理は戻って、このセンサがアクティブかどうかをチェックし、信号が前段の重みを有するためその信号をディクリメントする。この場合、ＧはＤと共にアソシエーションを有し、そのアクティブセンサのアソシエーション・カウントをインクリメントする。全体的に、３つのアソシエーションが、マトリックス２２００の中で暗いシェーディングによって示されているように、しかも明確なマトリックス表示２２００の中で真として｛Ｇ、Ｂ、Ｄ、Ｈ、Ｅ｝の中で見出される。
【００９０】
図２３は、本発明の幾つかの実施形態による２つのセルのブロック図であり、またそれらのハードウェアの相互接続図である。図１及び図１６と同様の参照番号が使用されている。アドレスバス２３１０及びオン／オフバス２３２０が、各セル１１０ａ、１１０ｂを個別にアドレス指定することができるように使用される。例えば、オン／オフバス２３２０上のオン信号に加えて、セル１１０に対して特定のアドレスをアドレスバス上で設定して、特定のセンサ状態１１２をオンに変化させることができる。同様に、各センサ状態をオフに変えることもできる。この各セルのレベルのオン／オフ制御は、リアルタイムの組込みシステムに対して提供される。このシステムでは、環境の特定の態様は時間と共に変化するが、他のセンサの一般的な設定は、ある時間から別の時間まで一定に維持される。さらに、明確に説明されてはいないが、センサ１１２をオフにすること及び所定のアソシエーション用カウンタをディクリメントする信号をトリガすることは、各セルのアソシエーション用カウントをディクリメントするために同様に加えられた論理を有する信号に正／負の符号を加えることによって、別の実施形態では可能である。他のバス及び／又はアドレス指定技術を用いて、センサの状態１１２及び前段及び次段の値１１４及び１１６を設定することができる。これらの技術は当業者には周知であるため、本願でさらに詳細に説明する必要はない。
【００９１】
他のアプリケーションは、任意の新しいセンサの状態を次々に駆動することができる。例えば、文書分類が、ある状況から別の状況にオーバラップをほとんどせずに、新しい文書説明ベクトル（new document description vector）を示すことができる。そのようなアプリケーションでは、一般的なリセットコードは、新しいベクトルをクランプする前に古いベクトルをオフに変えるのではなく、全てのセンサの状態を一度に消去することができる。
【００９２】
さらに、図１の矢印１５０、１６０、１７０及び１８０によって説明されたように、送信又は受信される遠位及び近位のアソシエーションの表示は、図２３に示されているように、レジスタで記憶される。このレジスタの詳細な設計は、当業者には周知であるため、本願ではさらに説明する必要はない。さらに、図２〜図５、図１７及び／又は図２１の動作を実行する処理ロジック１３０の詳細な設計は、当業者に周知の技術を用いて提供することもできる。その技術は、使用される特別なハードウェアのテクノロジー／アーキテクチャに依存する可能性がある。
【００９３】
図２３に示されているように、全ての信号はローカルである、すなわち、隣接するセル１１０の間にある。図２３は、近位及び遠位の両方向にローカル信号バスを示している。前述したように、１つの方向でも全部のアソシエーションを計数するには十分であるが、各セルのアソシエーションのより特殊な読取りには、両方向が望ましい。一般に、一連のアキュームレータ１４０は、ローカルカウンタ１１８の結果を加算して、全体のアソシエーション出力を提供することができる。発見された特定のアソシエーションを通過させる技術を含む他の蓄積技術は、本発明の別の実施形態に基づいて、アキュームレータ１４０の中に設けることもできる。
【００９４】
メッセージを送る設計は概して時間的にサブリニアとすることができ、またエネルギー効率の良いものとすることができる。処理は、センサの状態が変化したときのみ実行され、処理の程度はローカルであり、前段／次段の信号強度の程度までである。そのような設計は世界時計（global clock）を必要としないため、ビジー回線２３３０は外部システムに出力は安定しておりまた完全であると通知するように機能することができる。各セルは、信号を処理しているときのみこの回線を立てる。この回線がローの場合、全ての処理は完了している。
【００９５】
最後に、多数のそのようなセルを線形配列したチップ全体は、図示のように構成することができる。デンドライトが自身の近位の動作を（図２３の左下に示されているように）ニューロン全体の大きな総和に単に合計すると仮定される方法と同様に、セルの線形アレイを多数のレイアウトの中に一緒にさらに蓄積することができる。その１つが、図２３の右下に示されている。
【００９６】
図１７及び図２１に関連して前述された本発明の実施形態は、記憶されている前段連想表示部及び次段連想表示部、並びにセルの間を転送される次段連想表示部のメジャー及び前段連想表示部のメジャーは、連想重み（associative weight）を含んでいると仮定している。しかしながら、本発明の別の実施形態では、重みを記憶及び送信するのではなく、射影に基づいて、連想マトリックスの前段／次段の値の実際のセグメントが記憶及び送信される。このようにして、幾つかの実施形態では、表示部は連想マトリックスの実際の前段／次段のセグメントとすることができる。
【００９７】
従って、図２４及び図２５に関連して説明された本発明の別の実施形態では、前段連想表示部は前段連想セグメントを、次段連想表示部は次段セグメントを、前段連想表示部のメジャーはセグメントを、また次段連想表示部のメジャーはセグメントを備えている。このセグメントは、ハードウェアの制約を受け入れるには６４ビットといった固定寸法である必要があり、固定長を使用する例えば図５Ｄの分類方法を用いて発生される。セグメント寸法の制約のもとでは、射影値ではなく前段／次段のセグメントの全体を記憶することができる。
【００９８】
注目すべきことは、重みではなく前段／次段のマトリックスのセグメントが記憶されるという事実にもかかわらず、図１７及び図２１に関連してすでに説明された方法に極めて類似した読取りロジック処理が実行されることである。特に、図１７と図２４を比較すると、送られるものが重みではなくセグメントであり、また決定が所定のセグメントの最下位ビットに関して行われるという点を除いて、処理は極めて似通っている。従って、図１７のブロックに類似した図２４のブロックは、似通った２４００の連続番号でラベルが付けられている。このため、ブロック２４１０〜２４９０の動作はブロック１７１０〜１７９０の動作に対応しているため、詳細な説明を繰り返すことはない。
【００９９】
図２５は、この図の右側に示されているマトリックス２５００に対する読取りの実施例を例示している。図２５の左上に示されているように、前段及び次段の重みの代わりに、実際の前段／次段のセグメントが記憶される。図２５の左下には、時間／状態Ｔ１〜Ｔ４のＧセンサのみの処理が例示されている。
【０１００】
本発明のさらに別の実施形態では、重み又はセグメントを記憶及び送信する代わりに、連想マトリックスの前段／次段のセグメントを表示するベクトルが記憶され、このベクトル内の位置に対するポインタが転送される。
【０１０１】
このため、図２６及び図２７に関連して説明された本発明のさらに別の実施形態では、前段連想表示部は前段連想ベクトルを含み、次段連想表示部は次段連想ベクトルを含み、前段連想表示部のメジャーはポインタを含み、また次段連想表示部のメジャーはポインタを含んでいる。このベクトルは、ハードウェアの制約を受け入れるには６４ビットといった固定寸法である必要があり、固定長を使用する例えば図５Ｄの分類方法を用いて発生される。ベクトル寸法の制約のもとでは、射影値ではなく前段／次段のセグメントの全体を示すベクトルを記憶することができる。
【０１０２】
注目すべきことは、重み又はマトリックスのセグメントではなくベクトルが記憶されるという事実にもかかわらず、図１７、図２１、図２４及び図２５に関連してすでに説明された方法に極めて類似した読取りロジック処理が実行されることである。特に、図１７図２４及び図２６を比較すると、送られるものが重みではなく最大のベクトルであり、また決定が所定のビット位置がアクティブである（例えば、１に等しい）かどうかに関してポインタを用いて行われるという点を除いて、処理は極めて似通っている。従って、図１７及び図２４のブロックに類似した図２６のブロックは、似通った２６００の連続番号でラベルが付けられている。このため、ブロック２６１０〜２６９０の動作はブロック１７１０〜１７９０及びブロック２４１０〜２４９０の動作に対応しているため、詳細な説明を繰り返すことはしない。
【０１０３】
図２７は、この図の右側に示されているマトリックス２５００に対する読取りの実施例を例示している。図２７の左上に示されているように、前段及び次段の重みの代わりに、最も高いビットの最大値を示す前段及び次段のベクトルが記憶される。図２７の左下には、時間／状態Ｔ１〜Ｔ４のＧセンサのみの処理が例示されている。図面の下側の矢印は、ポインタ及び時間が経過した場合のポインタのディクリメントを例示している。このため、本発明の実施形態は、射影に基づいて連想重み以上を記憶することを考えている、そして連想セグメント自体を含むアソシエーションのどのような表示も記憶する。
【０１０４】
本発明の種々の実施形態は種々の置換及び結合の中で組み合わせることができることは、当業者は理解されよう。例えば、図１７、２１、２４及び／又は２６の実施形態は、様々な置換及び結合の中で組み合わせることができ、及び／又は前段／次段のアソシエーションの別の表示と組み合わせることができる。
【０１０５】
図面及び明細書の中で、本発明の実施形態を開示してきた。特定の用語が使用されるが、それらの用語は一般的で説明のためのみに使用されたものであり、限定する目的で使用したのではない。本発明の範囲は、以下の特許請求の範囲において述べる。
【図１】
0005592109.tif 000002
【図２】
0005592109.tif 000003
【図３】
0005592109.tif 000004
【図４】
0005592109.tif 000005
【図５】
0005592109.tif 000006
【図６】
0005592109.tif 000007
【図７】
0005592109.tif 000008
【図８】
0005592109.tif 000009
【図９】
0005592109.tif 000010
【図１０Ａ】
0005592109.tif 000011
【図１０Ｂ】
0005592109.tif 000012
【図１１Ａ】
0005592109.tif 000013
【図１１Ｂ】
0005592109.tif 000014
【図１２】
0005592109.tif 000015
【図１３】
0005592109.tif 000016
【図１４】
0005592109.tif 000017
【図１５Ａ】
0005592109.tif 000018
【図１５Ｂ】
0005592109.tif 000019
【図１５Ｃ】
0005592109.tif 000020
【図１５Ｄ】
0005592109.tif 000021
【図１５Ｅ】
0005592109.tif 000022
【図１５Ｆ】
0005592109.tif 000023
【図１６】
0005592109.tif 000024
【図１７】
0005592109.tif 000025
【図１８】
0005592109.tif 000026
【図１９】
0005592109.tif 000027
【図２０Ａ】
0005592109.tif 000028
【図２０Ｂ】
0005592109.tif 000029
【図２１】
0005592109.tif 000030
【図２２】
0005592109.tif 000031
【図２３】
0005592109.tif 000032
【図２４】
0005592109.tif 000033
【図２５】
0005592109.tif 000034
【図２６】
0005592109.tif 000035
【図２７】
0005592109.tif 000036