(57)【要約】第１の選択可能な状態と第２の選択可能な状態とをそれぞれ有する予め決められた数のビットを含む識別子がそれぞれ割り当てられた複数のアドレスデコーダと、予め決められた長さの複数のワードラインを有するデータメモリとを備え、各アドレスデコーダを付勢して、複数のワードラインの一つを選択することができ、アドレスデコーダは、予め決められた数のビットを有する入力アドレスを受信する手段と、アドレスデコーダの識別子を入力アドレスと比較する手段とを備え、データメモリは、更に、入力アドレス内で第１の選択可能な状態に設定された少なくとも予め決められた最小数のビットが、デコーダの識別子内で第１の選択可能な状態に設定されたビットに相当する場合に、アドレスデコーダを付勢する手段とを備えたことを特徴とするコンピュータシステムに使用するメモリ構造。
2005521940.tif 000002
【特許請求の範囲】
【請求項１】
第１の選択可能な状態と第２の選択可能な状態とをそれぞれ有する予め決められた数のビットを含む識別子がそれぞれ割り当てられた複数のアドレスデコーダと、予め決められた長さの複数のワードラインを有するデータメモリとを備え、各アドレスデコーダを付勢して、複数のワードラインの一つを選択することができ、アドレスデコーダは、予め決められた数のビットを有する入力アドレスを受信する手段と、アドレスデコーダの識別子を入力アドレスと比較する手段とを備え、データメモリは、更に、入力アドレス内で第１の選択可能な状態に設定された少なくとも予め決められた最小数のビットが、デコーダの識別子内で第１の選択可能な状態に設定されたビットに相当する場合に、アドレスデコーダを付勢する手段とを備えたことを特徴とするコンピュータシステムに使用するメモリ構造。
【請求項２】
アドレスデコーダの識別子を入力アドレスと比較する手段は、入力アドレス内の第１の選択可能な状態に設定されたビットと、デコーダ識別子内の第１の選択可能な状態に設定されたビットとの間の位置一致（位置対応）を考慮する請求項１に記載のメモリ構造。
【請求項３】
各アドレスデコーダ識別子は、第１の選択可能な状態に設定された等しい数のビットを有する請求項１又は２に記載のメモリ構造。
【請求項４】
入力アドレスを受信する手段は、第１の選択可能な状態に設定された予め決められた数のビットを含むアドレスを受信するように構成される先行する請求項の何れか１項に記載のメモリ構造。
【請求項５】
入力アドレス内の第１の選択可能な状態に設定された予め決められた数のビットは、各アドレスデコーダ識別子内の第１の選択可能な状態に設定されたビットの数に等しい請求項３又は４に記載のメモリ構造。
【請求項６】
単一のビットメモリ内に各ワードラインの各ビットを記憶するように、データメモリは、単一ビットの複数のメモリを備える先行する請求項の何れか１項に記載のメモリ構造。
【請求項７】
データメモリは、複数のワードラインの各々に等しい数のビットを有するデータ入力線を備える先行する請求項の何れか１項に記載のメモリ構造。
【請求項８】
データ入力線からアドレスデコーダにより付勢されるワードラインにデータを複写するデータ書込み手段を備えた請求項７に記載のメモリ構造。
【請求項９】
データ入力線は、第１の選択可能な状態に設定された予め決められた数のビットを含む入力データを受信するように構成される請求項７又は８に記載のメモリ構造。
【請求項１０】
アドレスデコーダにより付勢されるワードラインの各ビットに記憶される値を合計して、各ビットに対する付勢レベル値を作成する手段を備えた先行する請求項の何れか１項に記載のメモリ構造。
【請求項１１】
第１の選択可能な状態に設定された予め決められた数のビットを含む出力語を作成する手段を備えた請求項９又は１０に記載のメモリ構造。
【請求項１２】
出力内で第１の選択可能な状態に設定されるビットは、最高の付勢レベルを有する予め決められた数のビットである請求項１１に記載のメモリ構造。
【請求項１３】
互いに接続された複数の人工ニューロンを使用して、メモリを駆動し、ニューラルネットワークを形成する請求項１乃至１２の何れか１項に記載のメモリ構造。
【請求項１４】
複数のアドレスデコーダニューロンにより複数のアドレスデコーダを表示し、複数のデータニューロンによりデータメモリを表示する請求項１３に記載のメモリ構造。
【請求項１５】
各々予め決められた数の入力ニューロンに接続された複数のアドレスデコーダニューロンと、複数のデータニューロンを有するデータメモリとを備え、各アドレスデコーダニューロンを付勢して、複数のデータニューロンの幾つかを選択することができ、アドレスデコーダニューロンは、それが接続された入力ニューロンの発火を表示する信号を受信する手段を備え、アドレスデコーダニューロンは、アドレスデコーダが連結された少なくとも予め決められた数の入力ニューロンから発火信号を受信したとき、データニューロンを付勢する手段を備えたことを特徴とするコンピュータシステムに使用するニューラルメモリ構造。
【請求項１６】
各々第１の選択可能な状態と第２の選択可能な状態とを有しかつ予め決められた数のビットを含む識別子がそれぞれ割り当てられた複数のアドレスデコーダと、予め決められた長さの複数のワードラインを有するデータメモリとを備え、各アドレスデコーダを付勢して、複数のワードラインの一つを選択することができ、予め決められた数のビットを有する入力アドレスは、アドレスデコーダに入力され、アドレスデコーダの識別子は、入力アドレスと比較され、入力アドレス内で第１の選択可能な状態に設定された少なくとも予め決められた最小数のビットが、デコーダ識別子内の第１の選択可能な状態に設定されたビットに相当する場合に、アドレスデコーダが付勢されることを特徴とするコンピュータシステムに使用するメモリの操作法。
【請求項１７】
データメモリのデータ入力に入力データが付与され、付勢されたアドレスデコーダにより付勢されたワードラインにデータを書込む請求項１６に記載の方法。
【請求項１８】
１００未満のアドレスデコーダが何等かの有効な入力アドレスによって付勢されるように、予め決められた最小数のビットを設定する請求項１６又は１７に記載の方法。
【請求項１９】
何等かの有効な入力アドレスによって５０に満たないアドレスデコーダを付勢するようにビットの予め決められた最小数を設定する請求項１８に記載の方法。
【請求項２０】
２０個以下でかつ１１個より少なくない数のアドレスデコーダを何等かの有効な入力アドレスにより付勢するように予め決められた最小数のビットを設定する請求項１９に記載の方法。
【請求項２１】
第１の選択可能な状態と第２の選択可能な状態とをそれぞれ有する予め決められた数のビットを含む識別子がそれぞれ割り当てられた複数のアドレスレコーダと、予め決められた長さの複数のワードラインを有するデータメモリとを備え、各アドレスデコーダを付勢して複数のワードラインの一つを選択することができ、更にデータメモリは、入力アドレスを受信する手段と、デコーダ識別子と入力アドレスとの間の比較が予め決められた比較閾値を超える場合にアドレスデコーダの１つ又はそれ以上を付勢する手段とを備え、最適化法は、有効な入力アドレスに応答して付勢すべきアドレスデコーダの操作上有利な数を決定する過程と、有効な入力アドレスが付勢すべきアドレスデコーダの操作上有利な数に実質的に等しい数のアドレスデコーダを付勢するように、比較閾値を設定する過程とを含むことを特徴とするコンピュータメモリの操作を最適化する方法。
【請求項２２】
入力アドレス内の第１の選択可能な状態に設定されたビットの数を、各アドレスデコーダ識別子内で第１の選択可能な状態に設定されたビットの数と比較して比較を行う請求項２１に記載の方法。
【請求項２３】
データメモリから最大のエラー無しデータを回復するように、操作上有利な数を決定する請求項２１又は２２に記載の方法。
【請求項２４】
下式の関数：
w=f(h, Pc, D, d)
ここで、wは、付勢すべきアドレスデコーダの操作上有利な数、hは、第１の選択可能な状態に設定されるデータメモリ内の任意ビットの確率、Dは、各ワードラインが第１の選択可能な状態に設定された数dのビットを有する場合の各ワードライン内のビット数、Pcは、データ記憶装置から正しく回復されたビットの所望確率を示す、を使用して操作上有利な数を決定する請求項２３に記載の方法。
【請求項２５】
関数は：
【数１】
2005521940.tif 000050
である請求項２４に記載の方法。
【請求項２６】
幾つかのデータをエラーと共に回復しながら、最大のエラー無しデータを回復するように、付勢すべきアドレスデコーダの操作上有利な数を決定する請求項２１又は２２に記載の方法。
【請求項２７】
下記の関数：
w=f(h, D, d)
ここで、wは、付勢すべきアドレスデコーダの操作上有利な数、hは、第１の選択可能な状態に設定されるデータメモリ内の任意ビットの確率、Dは、各ワードラインが第１の選択可能な状態に設定された数dのビットを有する場合の各ワードライン内のビット数である、を使用して操作上有利な数を決定する請求項２６に記載の方法。
【請求項２８】
関数は、：
【数２】
2005521940.tif 000051
である請求項２７に記載の方法。
【請求項２９】
下式：
【数３】
2005521940.tif 000052
により与えられるものより小さくなくかつ下式：
【数４】
2005521940.tif 000053
により与えられるものより大きくない値を有するように操作上有利な数wを設定する請求項２１又は２２に記載の方法。
【請求項３０】
請求項１６乃至２９の何れか１項の方法による過程をコンピュータに実行させるコンピュータ読出し可能なコード手段を備えたキャリア媒体。
【請求項３１】
請求項１６乃至請求項２９の何れか１項に記載の方法を実施するコンピュータプログラム。
【請求項３２】
添付図面の図２乃至図８に示す実質的に前記のメモリ構造。
【請求項３３】
添付図面の図２乃至図８に示す実質的に前記のメモリを操作する方法。
【請求項３４】
添付図面の図３乃至図５に示す実質的に前記のコンピュータメモリの操作を最適化する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルメモリに関連する。
【背景技術】
【０００２】
コンピュータシステム及びデジタル電子装置の使用が増大してきたため、多数の種々のメモリ構造が提案されてきた。デジタルメモリを要求する広範囲な適用分野は、種々の異なる特性を有するメモリが要求されることを物語っている。
【０００３】
例えば、誤った単一ビットがコンピュータの故障の原因となるので、従来のプログラム記憶型コンピュータに使用するメモリでは、高レベルのデータ完全性が要求される。従来のコンピュータメモリは、特定のアドレスに記憶された情報を検索し、読み出すのに正確に読出しアドレスが知られていることを要する。これは、従来のメモリがメモリ内の特定のロケーションにＮ２進数字列（以下、「ワード」という）を記憶するためである。特定の時間に特定のロケーションに唯一のワードが記憶される。
【０００４】
大量のデータを記憶する適用例では、メモリから読み出されるデータ中に含まれるある程度のエラーは許容され、システムがエラーを見逃すことができる場合もある。また、誤った読出しアドレスを使用してデータを読み出すことが必要な場合もある。本発明は、このような適用に適するメモリに関するものである。
【０００５】
公知の一メモリ構造は、カネルヴァ（Kanerva）により開発され、カネルヴァ・ピー（Kanerva P.）著下記非特許文献１及び非特許文献２に記載される。ここで、多量のアドレスデコーダが多数のワードラインを有するデータに接続される。各アドレスデコーダは、データメモリ内の異なるワードラインに接続される。各デコーダは、大きな２進数の形態でアドレスにより識別される。
【０００６】
メモリにデータを書き込むときに、入力アドレスがデコーダのセットに付与され、入力アドレスの予め決められたハミング距離内に識別子を有するデコーダが付勢される。次に、付勢されたデコーダに接続されたワードラインが選択されて書き込みデータを受信する。メモリからデータを取り出すとき、デコーダにアドレスが付与され、多くのワードラインが再び付勢される。付勢された各ワードラインの各ビット(二進数字)を合計して、適切な閾値を適用することにより、読み出すべきメモリにデータを書き込むことができる。このように、データを書き込みかつ検索することによりアドレスを有効に機能させかつデータエラーを最小限に抑制することができる。
【特許文献１】国際特許公報WO90/04830（大学宇宙研究協会）
【非特許文献１】「疎分配メモリ」MITプレス、１９８８年発行
【非特許文献２】「自己増殖探索：メモリの統合理論」報告書第CSLI-84-7  スタンフォード大学１９８４年
【発明の開示】
【発明が解決しようとする課題】
【０００７】
カネルヴァが提案したメモリ構造は、多くの欠点を有する。これらの欠点の一つは、効率的にハミング距離の計算を行えば、特に設計したハードウエアを必要とする。
【０００８】
この欠点を克服すことを探索する代替メモリ構造が上記特許文献１に記載されている。このシステムは、カネルヴァにより提案された基本構造を備えているが、異なる基準を使用して特殊な入力アドレスに応答してどのアドレスデコーダを付勢すべきかを決定しなければならない。このシステムでは、各デコーダアドレスのｑビットのサブセットに特定の「０」値及び「１」値が割り当てられる。システムに入力アドレスを付与するとき、付与されたアドレスの複数のｑビット値は、各アドレスデコーダのビット値と比較される。付与されたアドレスが、これらのｑビットで特定のアドレスデコーダと同一値を備えていれば、そのデコーダが付勢される。
【０００９】
本発明は、前記種類の代替メモリ構造を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第一の特徴は、複数のアドレスデコーダと、データメモリとを備えかつコンピュータシステムに使用するメモリ構造を提供する点にあり、各アドレスデコーダは、予め決められた数のビットを有する識別子が割り当てられ、各ビットは、第１の選択可能な状態と第２の選択可能な状態とを有し、データメモリは、予め決められた長さを有する複数のワードライン（語線）を有し、各アドレスデコーダを付勢して、複数のワードラインの一つを選択することができ、アドレスデコーダは、予め決められた数のビットを有する入力アドレスを受信する手段と、アドレスデコーダの識別子を入力アドレスと比較する手段とを備え、データメモリは、更に、入力アドレス内で第１の選択可能な状態に設定された少なくとも予め決められた最小数のビットが、デコーダの識別子内で第１の選択可能な状態に設定されたビットに相当する場合に、アドレスデコーダを付勢する手段とを備えている。
【００１１】
本発明により得られる利点と効果は、第２の選択可能な状態に設定されたビットを無視して、入力アドレス内の第１の選択可能な状態に設定された基準ビット上でアドレスデコーダを付勢することにより部分的に発生する。対照的に、前記従来のシステムは、第１の選択可能な状態と第２の選択可能な状態とに設定されたビットを比較することによりアドレスデコーダを付勢する。
【００１２】
アドレスデコーダの識別子を入力アドレスと比較する手段は、入力アドレス内の第１の選択可能な状態に設定されたビットと、デコーダ識別子内の第１の選択可能な状態に設定されたビットとの間の位置一致（位置対応）を考慮することが好ましい。
【００１３】
各アドレスデコーダ識別子は、第１の選択可能な状態に設定された等しい数のビットを有してもよい。入力アドレスを受信する手段は、第１の選択可能な状態に設定された予め決められた数のビットを含むアドレスを受信するように構成される。入力アドレス内の第１の選択可能な状態に設定された予め決められた数のビットは、各アドレスデコーダ識別子内の第１の選択可能な状態に設定されたビットの数に等しいことが好適である。
【００１４】
単一のビットメモリ内に各ワードラインの各ビットを記憶するように、データメモリは、単一ビットの複数のメモリを備えることが好ましい。データメモリは、複数のワードラインの各々に等しい数のビットを有するデータ入力線を備えることが好ましい。また、メモリ構造は、データ入力線からアドレスデコーダにより付勢されるワードラインにデータを複写するデータ書込み手段を有してもよい。データ入力線は、第１の選択可能な状態に設定された予め決められた数のビットを含む入力データを受信するように構成される。
【００１５】
また、メモリ構造は、アドレスデコーダにより付勢されるワードラインの各ビットに記憶される値を合計して、各ビットに対する付勢レベル値を作成する手段を備えてもよい。更に、メモリ構造は、第１の選択可能な状態に設定された予め決められた数のビットを含む出力語を作成する手段を備えてもよい。出力内で第１の選択可能な状態に設定されるビットは、最高の付勢レベルを有する予め決められた数のビットでもよい。
【００１６】
互いに接続された複数の人工ニューロンを使用して、メモリを駆動し、ニューラルネットワークを形成してもよい。複数のアドレスデコーダニューロンにより複数のアドレスデコーダを表示して、複数のデータニューロンによりデータメモリを表示してもよい。
【００１７】
また、本発明は、コンピュータシステムに使用するニューラルメモリ構造を提供するものであり、このメモリ構造は、各々予め決められた数の入力ニューロンに接続された複数のアドレスデコーダニューロンと、複数のデータニューロンを有するデータメモリとを備え、各アドレスデコーダニューロンを付勢して、複数のデータニューロンの幾つかを選択することができ、アドレスデコーダニューロンは、それが接続された入力ニューロンの発火を表示する信号を受信する手段を備え、アドレスデコーダニューロンは、アドレスデコーダが連結された少なくとも予め決められた数の入力ニューロンから発火信号を受信したとき、データニューロンを付勢する手段を備えている。
【００１８】
実際に、全てのアドレスデコーダニューロンを全ての入力ニューロンに接続して、これらの各連結値に「１」又は「０」の加重値が割り当てられる。このような設置計画では、加重値「０」は、特定の入力ニューロンとアドレスデコーダニューロンとの間が非連結と同一の効果を有する。このように、連結値が加重値「１」を有するようなアドレスデコーダニューロンに接続された入力ニューロンからの発火信号のみが、前記のように、連結を表示する。
【００１９】
本発明の第２の特徴は、コンピュータシステムに使用するメモリの操作法を提供することにあり、このメモリは、各々第１の選択可能な状態と第２の選択可能な状態とを有しかつ予め決められた数のビットを含む識別子がそれぞれ割り当てられた複数のアドレスデコーダと、予め決められた長さの複数のワードラインを有するデータメモリとを備え、各アドレスデコーダを付勢して、複数のワードラインの一つを選択することができ、予め決められた数のビットを有する入力アドレスは、アドレスデコーダに入力され、アドレスデコーダの識別子は、入力アドレスと比較され、入力アドレス内で第１の選択可能な状態に設定された少なくとも予め決められた最小数のビットが、デコーダ識別子内の第１の選択可能な状態に設定されたビットに相当する場合に、アドレスデコーダが付勢される。
【００２０】
データメモリのデータ入力に入力データが付与され、付勢されたアドレスデコーダにより付勢されたワードラインにデータを書込むことができる。１００未満のアドレスデコーダが何等かの有効な入力アドレスによって付勢されるように、予め決められた最小数のビットを設定することが好ましい。ビットの予め決められた最小数は、何等かの有効な入力アドレスによって５０に満たないアドレスデコーダを付勢するように設定されることがより好ましい。２０個以下でかつ１１個より少なくない数のアドレスデコーダを何等かの有効な入力アドレスにより付勢するように、予め決められた最小数のビットを設定することが最も好ましい。
【００２１】
本発明の第３の特徴は、コンピュータメモリの操作を最適化する方法を提供することにあり、このコンピュータメモリは、第１の選択可能な状態と第２の選択可能な状態とをそれぞれ有する予め決められた数のビットを含む識別子がそれぞれ割り当てられた複数のアドレスレコーダと、予め決められた長さの複数のワードラインを有するデータメモリとを備え、各アドレスデコーダを付勢して複数のワードラインの一つを選択することができ、更にデータメモリは、入力アドレスを受信する手段と、デコーダ識別子と入力アドレスとの間の比較が予め決められた比較閾値を超える場合にアドレスデコーダの１つ又はそれ以上を付勢する手段とを備え、最適化法は、有効な入力アドレスに応答して付勢すべきアドレスデコーダの操作上有利な数を決定する過程と、有効な入力アドレスが付勢すべきアドレスデコーダの操作上有利な数に実質的に等しい数のアドレスデコーダを付勢するように、比較閾値を設定する過程とを含む。
【００２２】
この比較は、入力アドレス内の第１の選択可能な状態に設定されたビットの数を、各アドレスデコーダ識別子内で第１の選択可能な状態に設定されたビットの数と比較するものである。
【００２３】
データメモリから最大のエラー無しデータを回復するように、操作上有利な数を決定することができる。下式の関数を使用してこれを行うことができる。
【００２４】
w=f(h, Pc, D, d)
ここで、wは、付勢すべきアドレスデコーダの操作上有利な数、hは、第１の選択可能な状態に設定されるデータメモリ内の任意ビットの確率、Dは、各ワードラインが第１の選択可能な状態に設定された数dのビットを有する場合の各ワードライン内のビット数、Pcは、データ記憶装置から正しく回復されたビットの所望確率を示す。
【００２５】
下記の関数を使用できる：
【００２６】
【数５】
2005521940.tif 000003
【００２７】
幾つかのデータをエラーと共に回復しながら、最大のエラー無しデータを回復するように、付勢すべきアドレスデコーダの操作上有利な数を決定することができる。下記の関数を使用して、操作上有利な数を決定することができる：
w=f(h, D, d)
【００２８】
ここで、wは、付勢すべきアドレスデコーダの操作上有利な数、hは、第１の選択可能な状態に設定されるデータメモリ内の任意ビットの確率、Dは、各ワードラインが第１の選択可能な状態に設定された数dのビットを有する場合の各ワードライン内のビット数である。
【００２９】
下記の関数を使用できる：
【００３０】
【数６】
2005521940.tif 000004
【００３１】
操作上有利な数wを設定して、下式により与えられるものより大きな値を有することが好ましい。
【００３２】
【数７】
2005521940.tif 000005
及び等式により付与されるものより小さい。
【００３３】
【数８】
2005521940.tif 000006
【００３４】
更に、本発明は、キャリア媒体を保持するコンピュータにより読出し可能なコード手段を提供し、このコード手段は、前記方法による手順及び前記方法を実行するコンピュータプログラムをコンピュータに実行させるものである。
【発明を実施するための最良の形態】
【００３５】
以下、本発明による実施の形態の例を図面について以下説明する。
【００３６】
図１は、カネルヴァが説明しかつ前記したアドレス構造を示す。アドレスを伝達できる複数のアドレスライン１が設けられる。アドレスは、二進数であり、各アドレスライン１は、nビットアドレスを表示するため、n個のラインを必要とするように、各アドレスライン１は、１ビットのアドレスを伝達する。アドレスラインは、アドレスデコーダ２のアレイへの入力を構成し、各アドレスデコーダ２は、nビット二進数の形式の識別子を有する。アドレスデコーダ２は、データを記憶する多数のワードラインを有するデータメモリ３に接続される。各ワードラインは、Ｍビットの記憶容量を有する。各ワードラインの各ビットは、カウンタ４に記憶される。データメモリに書き込むべきデータは、データ入力ライン５上で伝達される。メモリから読み出されるデータは、データライン８に沿って加算ブロック６に送出され、加算ブロック６からデータ出力ライン７上に出力される。
【００３７】
アドレスライン１の数は、典型的には１千ビット二進数をアドレスデコーダ２に付与するように約一千本である。１千ビット二進数（約１０の３０１乗）によって非常に多くのアドレスを表示することができるので、各可能なアドレスに対するデータを記憶する独立したワードラインを持つことは実用的ではない。従って、可能なアドレススペース内に大きな任意のアドレスサンプルが実行される。典型的には、１００万個のアドレスが実行され、これらの各々は、アドレスデコーダ２に割り当てられる。１００万個（１０の６乗）のデコーダアドレスは、利用可能なアドレス空間（１０の３０１乗アドレス）内にまばらに分散されるので、カネルヴァにより提案されたメモリは、まばらとして記載される理由である。
【００３８】
使用の際に、アドレスはアドレスライン１上で伝達され、アドレスレコーダ２により受信される。伝達されるアドレスと各アドレスデコーダのアドレスとの間の比較が行われる。この比較は、伝達されるアドレスのどれだけ多くのビットが各アドレスデコーダ２に関連するアドレスに対して相違するかを演算するハミング距離計算を使用して実施される。ハミング距離計算は、式(1)により表される：
【００３９】
【数９】
2005521940.tif 000007
【００４０】
ここで、xは、Ｎ要素を有する二進ベクトル、yは、Ｎ要素を有する二進ベクトル、Hは、xとyとの間のハミング距離で、xi≠yiでのビット位置数である。
【００４１】
伝達されるアドレスxの予め決められたハミング距離r内のデコーダが付勢される。各アドレスに対するこの付勢領域は、半径rを有しかつxに中心を有する球とみなすことができる。例えば、カネルヴァは、各アドレスが１０００ビットを有し、予め決められたハミング距離rが４５１であれば、球形の付勢領域は、アドレスデコーダに関連するアドレスの約１／１０００を含む。使用の際に、各デコーダアドレスと付与される入力アドレスとの間のハミング距離が演算される。この距離が、特定のアドレスデコーダのrより小さければ、そのデコーダは付勢される。
【００４２】
カネルヴァにより提案されたシステムでデータをメモリに書き込む過程の詳細を説明する。所与のアドレスデコーダ２を付勢するとき、メモリのデータ入力端子５に付与されるデータは、付勢されたアドレスデコーダに接続されたワードラインに書き込まれる。予め決められたそのアドレスデコーダのハミング距離内にアドレスが発生するときはいつでもアドレスデコーダの付勢が開始されるので、データは、多くの異なるワードラインに書き込まれる。同様に、同一のアドレスデコーダを付勢する多くの種々のアドレスも存在する。これは、多数の種々の入力書込みアドレスに対する特定のワードラインにデータが書き込まれることを意味する。
【００４３】
各ワードラインは、それぞれ単一ビットのデータを記憶するＭ個のカウンタを有する。所与のワードラインでのカウンタにより、そのワードラインに記憶される多数のＭビット語の直線的蓄積が可能となる。ワードラインの特定のビットに「１」を付与すれば、対応するカウンタ４は、増加される。特定のビットで「０」を付与すれば、そのビットに関するカウンタ４は、減少される。
【００４４】
カウンタは、有限の容量を有し、継続するデータの書き込みによってこの容量に達すれば、データの更なる書込みは無効である。例えば、継続する「１」の書込みによってカウンタが最大値に達すれば、そのカウンタに更に「１」を書き込むことは無効である。同様に、継続する「０」の書込みによってカウンタが最小値に達すれば、そのカウンタに更に「０」を書き込むことは無効である。それぞれ±１２７の範囲を有する８ビットのカウンタを使用すれば通常十分である。実際に、２ビット又は４ビットのカウンタを使用すれば十分な場合もある。しかしながら、カネルヴァにより提案されるメモリでは、いかなるビット長さのアップダウンカウンタも相当の余裕があることに注意すべきである。
【００４５】
１００万個のアドレスデコーダ２に対して、任意のアドレスは、デコーダの約１００の予め決められたハミング距離内にある。このように、任意の入力アドレスに対して、入力データは、データメモリ３内に１０００ワードラインに書き込まれ、各ワードラインの適当なカウンタ４は、前記のように増加され又は減少される。
【００４６】
カネルヴァが提案したシステムでメモリからデータを読み出す過程の詳細を説明する。
【００４７】
アドレスライン１上に入力アドレスを付与することによりデータがメモリから読み出される。この入力アドレスが、読み出すべきデータを書き込むのに使用したものと同一であれば、同一のアドレスデコーダが付勢され、正しいワードラインからデータが読み出される。
【００４８】
書込みに使用したアドレスに近いアドレスが付与されれば、データを書き込むために付勢された多くのアドレスデコーダ２は、データを読み出すために付勢される。しかしながら、書込みのために付勢されたいくつかのデコーダは付勢されず、以前に付勢されなかった他のデコーダが付勢されよう。これにより、読み出されるデータ内にノイズが存在する。読出し過程と書込み過程との間で共通の十分な数のデコーダがあれば、正しいデータは、なお加算器６から出力され、ノイズの影響は減少する。これは、カネルヴァにより記載されるメモリの有利な特徴である。
【００４９】
付勢されるアドレスデコーダに接続される各ワードラインのカウンタ４内に保持される値は、読出しサイクル間にデータライン８上に出力される。各データライン８上に出力される値は、加算器６により加算される。予め決められた閾値を超える出力の加算器は、出力データライン７上に出力「１」を発生し、その閾値を超えないものは、出力「０」を発生する。
【００５０】
メモリの構造及び機能は、入力アドレス内の１千ビットのものを意味し、その同一の入力アドレスから正しく読み出すのに僅かに６００ビットが読出しアドレス中に正しいものと要求することをカネルヴァが決定した。例えば、データの書込み間に１千のワードライン上にビットを「１」に設定すれば、そのビットに対して値を保持するカウンタに接続される加算器６は、１０００を出力するであろう。しかしながら、データが書き込まれた１千ワードラインの大多数を検索（読出し）アドレスにより読み出すのであれば、一般的に加算器は、正しく解釈される値を出力するであろう。このように、カネルヴァにより提案されたメモリは、有用なエラー修正特性を有し、前記のように、ノイズの影響を緩和するものである。
【００５１】
Ｎ-Ｍコードは、Ｍビット二進数のＮビットを「１」に設定したコードである。従って、如何なるＮ-Ｍコードも、「１」に設定されるＮビット及び「０」に設定されたＭ-Ｎビットを有する。コードにより表される各値は、「１」及び「０」が発生する順番で異なる。Ｎ-Ｍコードは、Ｎ「１」を受信したとき、コードが完全である（即ち、値を受信した）が、Ｎ「１」より小さい値を受信したとき、コードは不完全である点で自己タイミングである。
【００５２】
本発明のメモリ構造は、図１に示す従来のメモリの散在分散特性を有し、メモリに多数のエンハンスメントを付与するようにＮ-Ｍコード付けを幾つか適用するものであるが、この点は後述する。本発明で実施するメモリ構造を図２に高レベルで図示する。一般的構造は図１と類似するので、適切な場合には類似の参照数字を使用する。図１のメモリと本発明により提供されるメモリとの僅かな相違は後述の通りである。
【００５３】
一般に、メモリは、特定の読出し又は書込みに対して付勢されるwのWアドレスデコーダ２を有する。各Wアドレスデコーダは、Aビットアドレスを有し、これらのアドレスの各々は、値「１」を有するaビットを備えている。このように、各アドレスデコーダのアドレスは、A-aコードである。アドレスがアドレスデコーダ２に入力されるとき、「１」値に設定されたiビットと、「０」値に設定されたA-iビットとを有する。このように、如何なる入力アドレスもA-iコードである。全ての入力アドレスは、デコーダ(i=a)のアドレスに等しい「１」ビット数を有する実施の形態もある。しかしながら、iをaから独立させる点において通常限界利得が存在する。
【００５４】
複数のアドレスデコーダ２が入力アドレスを受信したとき、各デコーダのA-aコードと、入力アドレスのA-iコードとの間を比較する。各アドレスデコーダは、関連する閾値Tを有する。閾値Tは、入力アドレスとデコーダアドレスとの間で一致しなければならない「１」の数を決定する。
【００５５】
デコーダ付勢手順を単純化する例を説明する。これらの例では、３つのアドレスデコーダ（Ａ、Ｂ及びＣ）が存在し、それぞれ８-３コードを有するものと仮定する。これらのデコーダのアドレスは、下記の通りである。
A:    01001001
B:    10001010
C:    01101000
【００５６】
下記の説明では、各アドレスは、指数０で始まり、左から右に索引付けされるものとする。
【００５７】
第１の実施の形態では、各デコーダの閾値は、入力アドレスの少なくとも２つのビットがデコーダアドレスの２つのビットに一致するように設定される。即ち、下記が付与される：
アドレス１：      01001000          （８-２コード）
【００５８】
入力アドレスのビット１及び４が「１」であり、デコーダＡとＣのアドレスのビット１及び４も「１」のとき、デコーダＡとＣとが付勢されることは理解できよう。このように、２つの一致ビットの閾値が達成される。アドレス１とデコーダＢとの間で「１」の１つのみが一致（ビット４）するので、デコーダＢは、付勢されない。
【００５９】
同様に、下記アドレス：
アドレス２：      01000011          （８-３コード）
が付与され、閾値Tが変化しないと仮定すると、アドレス２は、ビット１と７内に「１」を有し、デコーダＡが付勢されることを意味することを理解できよう。各デコーダアドレスの「１」ビットのみがアドレス２内の「１」と一致するので、デコーダＢとＣとは付勢されない。
【００６０】
前記付勢手順は、Wの全体からwデコーダを付勢する。従って、付勢パターンは、W-wコードである。所与の読出しサイクル又は書込みサイクルの間に、最適数又は最適に近い数のアドレスデコーダを確実に発火するように、閾値を設定することが好ましい点で重要であるが、これは、図１について説明した過程に類似する。この最適数は、カネルヴァが提案したメモリ内で付勢される数よりも典型的に極めて小さいことが判明した。発明者は、より少ない数のデコーダを付勢して十分に高精度でメモリからデータの読出し及び書込みが可能であること及びカネルヴァのシステムのように、１千個のデコーダの付勢を要しないことを実現した。メモリシステムのこの特性の詳細な分析は、後述の通りである。
【００６１】
次に、w付勢デコーダは、データを読み出すべき又は書込むべきwワードラインを選択する。このように、アドレスデコーダ２と、データメモリ３のワードラインとの間の連絡は、W-wコードである（即ち、全てにおいてWデコーダのw付勢デコーダ）。前記の通り、独立に付勢されるアドレスデコーダを含む付勢手順が与えられれば、wを確実に一定にすることは、通常実用的ではない。アドレスデコーダ２からデータメモリ３にWコードのこのwを連絡することは、図２の矢印９により図示する。
【００６２】
w付勢デコーダは、wワードラインを選択する。書込みデータを付与して、データをデータメモリ３に書込み、読出しデータは、データメモリ３から読み出される。読出し又は書込みは、各w付勢ワードラインで実行される。入力データ５は、D-dコードを表すものと判断され、各ワードラインは、Dビット、「１」に設定された「ｄ」を含む。各入力がD-dコードであれば、各書込みデータ操作は、d「１」を含む書込みデータである。
【００６３】
各ワードラインの各ビットは、従来の二進単一ビットメモリ内に記憶される。全てのワードラインの全てのビットは、最初に「０」に設定される。「１」をビットに書込むべきとき、「０」値は、「１」により置き換えられる。後続する書込みサイクルで「０」をそのビットに書込もうとする場合でも、一度ビットが「０」に設定されれば、決して「０」にリセットされない。一度データ書込み操作が１つの値を設定すれば、この値のその後の増加は、単にノイズとなり、従ってその増加を破棄できるためである。この記憶手順は、M-Nコードの単極特性に基づき、その信頼性の理由を後述する。
【００６４】
データメモリ３からデータを読み出すべきときに、アドレスデコーダ２にアドレスを付与すると、アドレスデコーダ２は、複数のwアドレスデコーダを付勢する。次に、これらのwアドレスデコーダは、データメモリ３内のwワードラインを付勢する。各語は、Ｄビットを含み、付勢された各ワードラインの各ビットの内容は、合計されて、Ｄ出力を発生する。本明細書では、これらの合計を「付勢レベル」と指称する。全ての書込みデータは、D-dコードであることは知られており、従って、メモリから読み出されるデータもD-dコードである。
【００６５】
単一の書込みサイクルが特定のアドレスに値を書込み、読出しデータ操作に対して同一のアドレスが付与される場合（更に介在書込みサイクルがなく）、書込みデータ内で「１」に設定される各ビットの付勢レベルは、wであり、書込みデータ内で「０」に設定される各ビットの付勢レベルは、零である。このように、出力データ内でどのビットを「１」に設定すべきかを容易に理解することができる。
【００６６】
しかしながら、２つの書込みサイクルが複数の異なる入力書込みアドレスにデータを書込む場合に、第１の書込みサイクルの間に付勢されるアドレスデコーダは、第２の書込みサイクルの間に付勢されるものも存在するかもしれない。即ち、データメモリ３内のワードラインは、第１の書込みサイクルの結果として「１」に設定されるビットと、第２の書込みサイクルの結果として「１」に設定されるビットとを含むものがある。
【００６７】
第１の書込みアドレスに等しいアドレスをアドレスデコーダ２に付与するとき、読出しデータ手順は、wワードラインを付勢し、前記のように、付勢レベルを計算する。介在書込みサイクルの動作があれば、これらの付勢レベルは、第２の書込みから誘導される幾つかの値を含み、即ち、第１の書込みサイクルの間にこれらの付勢レベルを「１」に設定されるビットよりも小さくすべきであっても、第１の書込みサイクル内で「０」に設定された幾つかのビットは、非零付勢レベルを有する。即ち、dビットより多いと、非零付勢レベルを有する。
【００６８】
出力データをD-dコードとすべきことが既知であるから、修正された勝利者取り分全て（winner takes all, ＷＴＡ）のアルゴリズムを適用して、最大の付勢レベルを有するdビットを決定する。これらのdビットは、そのアドレスにデータを書込む間に「１」に設定された可能性の最も高いものであり、従って、出力データ内で「１」に設定される。
【００６９】
ＷＴＡアルゴリズムは、通常データの集合から単一の勝利者を決定する。この場合に、修正されたアルゴリズム（本明細書では、「k-WTAアルゴリズム」と称する）は、最高の付勢レベルを有する複数のd値を決定し、これらの値を有するビットは、出力内で「１」に設定される。即ち、これらのdビットは、アルゴリズム内の「勝利者」である。適当な分類（ソート）アルゴリズムを使用して、D値を分類し、これらの分類された値から最高のd値を選択することにより、k-WTAアルゴリズムを実行することもできる。
【００７０】
データメモリにM-Nコード付けを適用することにより、出力データ内に如何に多くの「１」が存在するかを知るように、読出し過程でこの形態を使用することができる。カネルヴァが提案したシステムでは、メモリに書込むデータが二進数の場合に、出力データ中に如何に多くの「１」が存在するかを認識する方法がないから、カネルヴァは、記憶素子として複数のカウンタを使用して、各ビットに書込まれるデータを蓄積し、カウンタの内容を合計し、閾値を適用して出力を発生する。
【００７１】
単一のビットメモリは、「１」を超えて増大されないことは前記の通りである。即ち、これは、特定のビットでの値が常に「１」又は「０」の何れかであるべきだからである。従って、「１」を超えて増大することは、そのビットに不都合なあるノイズが記憶されることを意味しなければならない。このノイズは、共通のワードラインを付勢する２つの書込みアドレスによって発生される。この場合に、「１」を超えて増大できるカウンタを必要とせずに、どのビットを「１」に設定すべきかをk-WTAアルゴリズムが正確に特定することができる。アップダウンカウンタ及び零閾値を使用するカネルヴァの実施法は、「０」又は「１」の何れに特定の出力ビットを設定すべきかを決定するのに最早必要としない。このように、本発明は、カウンタではなく、従来の単一ビットメモリ内にデータを記憶させるメモリを提供する。これにより、装置の価格を大幅に低減することができる。また、近時の技術革新により大容量の適当なメモリ（ＲＡＭ）を安価で効率的に利用することができる。
【００７２】
メモリの各ビットに対して有用に記憶できる情報のビット数から見れば、メモリの有効性の一般的な基準は、記憶容量である。この基準を使用して、本発明を実施するシステムは、カネルヴァが提案したシステムより優れた顕著な利点を生ずる。この大記憶容量の主な理由は、より少ない数のワードラインにデータを書込むことから得られる。典型的には、カネルヴァのシステムが数千ワードラインにデータを書込んだのに対し、本発明では、発明者は、カネルヴァのメモリの利益を保持ししかも格段に大きな記憶効率を得ながら、遥かに少ない数のワードラインにデータを書込むことができることを発見したのである。例えば、下記の記憶特性に対して、データを１００ワードラインより少なく書込むことが好ましく、５０ワードライン以下にデータを書込むことが更に好ましく、１１と２０ワードラインの間でデータを書込むことが操作上最大の利点が生ずる。データを書込むべき最適数のワードライン数を決定する方程式と共に、記憶容量について説明する。
【００７３】
データメモリ３は、相関行列メモリの形態である。相関行列メモリは、例えば、ティー・コーエン著「相関行列メモリ」電気電子学会トランスアクションズ・コンピュータ・Ｃ-２１(4)１９７２年４月第３５３〜３５９頁、エム・ターナー及びジェ・オースチン著「二進数相関行列メモリの整合性」ニューラル・ネットワーク10(9)、１９９７年１６３７〜１６４８頁において広く研究されてきた。この解析の大要を誘導体wの基礎として本明細書中に示す。
【００７４】
アドレス入力及びデータ入力がそれらの空間全体に均一に分散されると仮定する。データメモリ３は、最初に各ビットで「０」を含む。書込み過程でのある点で「１」に設定されるデータメモリ内の任意のビットの確率を表す占有量hを使用する。Z書込み操作後に、期待される占有量は、方程式(2)で与えられる。
【００７５】
【数１０】
2005521940.tif 000008
【００７６】
方程式(2)の下記条件：
【００７７】
【数１１】
2005521940.tif 000009
【００７８】
は、単一の書込み操作内でデータメモリ内の特定のビットを「１」に設定する確率を与える。１からこの条件を減じると、特定の操作内でそのビットを「１」に設定しない確率値が与えられる。この減算値は、Zの書込み操作の効果を表示するように、更にZ乗される。従って、下記項：
【００７９】
【数１２】
2005521940.tif 000010
【００８０】
は、Zの書込み操作後に、任意のビットを「１」に設定しない確率を与える。このように、Z操作後に任意のビットを１に設定する確率：hを誘導するため、この条件は、１から差し引かれて方程式(2)を生ずる。
【００８１】
Zは、０であるから、hは、最初に０であり、方程式の右辺は、単純に1-1となることは方程式(2)から理解できよう。より多くのデータがメモリ内に記憶されるとき、hは、１に向かって単調に増加する。
【００８２】
対数を使用して、方程式(2)を下記の通り書き換えることができる。
【００８３】
【数１３】
2005521940.tif 000011
【００８４】
典型的に、dがDより極めて小さく、wがWより極めて小さいと仮定すれば、下記項：
【００８５】
【数１４】
2005521940.tif 000012
【００８６】
は、小さい。従って、方程式の右辺の自然対数をテイラー級数の初項にほぼ等しいとみなせる。これは、方程式(4)に記載するように、記憶されたデータ項目の数に対する式を与える。
【００８７】
【数１５】
2005521940.tif 000013
【００８８】
D-dコードによって表すことができる記号の数を考慮することにより、Z書込み操作後に、メモリ内に記憶される全情報を特定することができる。この情報は、方程式(5)で与えられる。
【００８９】
【数１６】
2005521940.tif 000014
【００９０】
方程式(5)で与えられる情報容量をデータメモリ内の二進数記憶ロケーションの数と比較することにより、方程式(6)で表される記憶効率を演算することができる。
【００９１】
【数１７】
2005521940.tif 000015
【００９２】
ここで、η(Z)は、メモリの記憶効率である。
【００９３】
Dの大きな値に対して、方程式(6)の組み合わせ項を下式により近似させることができる：
【００９４】
【数１８】
2005521940.tif 000016
【００９５】
dがDより極めて小さい場合の散在メモリに対して、方程式(7)と(4)とを方程式(6)に代入し、簡素化すると下式が得られる：
【００９６】
【数１９】
2005521940.tif 000017
【００９７】
ここで、η(Z)は、メモリの記憶効率である。
【００９８】
これは、零エラー状態の下で所与の占有量hに対して最高効率メモリは、D-1［1ホットコード（1-hot code）：n個の状態を表すための1ヵ所のみが1で他が0のnビット符号］としてデータが書込まれた場合及び最少数のアドレスデコーダが所与の入力アドレスに対して発火する場合である。即ち、d=1で、w=1である。しかしながら、これらの基準に従ってd及びwを設定することは、逆に、下記のように、高容量又は入力エラーの下でメモリの頑健性に影響を与える。
【００９９】
データメモリの頑健性を考慮するため、Zデータ語の書込みに続いて、エラー無しで読出しアドレスを付与する場合に、単一のデータ語の読出し（検索）が考慮される。読出しアドレスにより付勢されるwアドレスデコーダは、書込みデータ過程の間に付勢されるwアドレスデコーダと同一である。特定のビットに書込まれたデータが、「１」であれば、各wワードラインは、そのビットに「１」を記憶し、方程式(9)によって付勢レベルが与えられる。
【０１００】
【数２０】
2005521940.tif 000018
【０１０１】
ここで、E(X)は、付勢レベルである。
【０１０２】
しかしながら、特定のビットに書込まれたデータ値が「０」であれば、期待される付勢レベルは、：
【０１０３】
【数２１】
2005521940.tif 000019
【０１０４】
ここで、hは、前記定義の通りである。
【０１０５】
hは、１より小さいので、書込んだデータを回復するようにメモリを操作でき、「１」に方程式(9)及び(10)から明らかなように、設定されたビットは、「０」に設定されたものより高い付勢レベルを有する。しかしながら、「０」に設定されたビットの付勢レベルは、統計学上の変動（ばらつき）を生ずることがあり、ある（小さな）確率では、全ての加重値は、他のデータ書込みにより既に「１」に設定されている。この場合に、「０」であるべき出力の付勢レベルは、「１」であるべき出力の付勢レベルと同一である。これは、「誤り１」エラー状態の可能性を与える。書込みエラーがなければ、「誤り０」エラーの可能性は存在しない。
【０１０６】
「０」出力の一因となる全てのビットが誤って「１」に設定される場合にのみ、「誤り１」エラーが発生する。このように、正確に読み出される「０」ビットの確率は、方程式(11)により付与される。
【０１０７】
【数２２】
2005521940.tif 000020
【０１０８】
即ち、hwは、誤って「１」に設定された付勢レベルの原因となるwビットの確率に対する値を付与する。このように、１からこの値を引くことは、正しく読み出される「０」値の確率、即ち、複数のwビットが誤って「１」に全て設定されなかった確率を与える。
【０１０９】
０に設定されたD-dビットが全て正確に読み出されれば、データ語は、正確に読み出される。語を正確に読み出す確率は、方程式(12)により与えられる：
【０１１０】
【数２３】
2005521940.tif 000021
【０１１１】
（「data word correct」は、「正確に読み出されるデータ語」を意味する。）
【０１１２】
即ち、D-dビットを全体で取り出すべきならば、方程式(11)の表示は、D-d乗に上昇する。
【０１１３】
Zデータ語をメモリに書込めば、記憶されたあらゆるデータ語を正確に読み出すことができる確立は、方程式(13)によって付与される。
【０１１４】
【数２４】
2005521940.tif 000022
【０１１５】
hが増加するので、エラー無し回復（読出し）は、零に向かって減少する。
【０１１６】
対数を使用する再書込み方程式(13)は、次の通りである：
【０１１７】
【数２５】
2005521940.tif 000023
【０１１８】
wが１より相当に大きい場合に、hwは極めて小さいので、テイラー級数の第１項は、方程式(14)の右辺の対数に対する下記近似式に書き換えることができる：
【０１１９】
【数２６】
2005521940.tif 000024
【０１２０】
データメモリを最適な構造に構成するため、アドレスデコーダWの数及び語長Dを固定することが考慮される。
【０１２１】
また、データ符号付け（D-d）を固定することが考慮される。正しいデータ回復の確率を最大化するため、hw又はwlnhを最小化すべきことは方程式(13)から理解できよう。従って、下式の解を求める：
【０１２２】
【数２７】
2005521940.tif 000025
【０１２３】
再生方程式(4)：
【０１２４】
【数２８】
2005521940.tif 000026
【０１２５】
この式を下記のように書き換えることができる：
【０１２６】
【数２９】
2005521940.tif 000027
【０１２７】
wに関する微分方程式(17)及び方程式(17)から得られるZ値を代入すると、次式が得られる：
【０１２８】
【数３０】
2005521940.tif 000028
【０１２９】
方程式(18)から方程式(16)に
【０１３０】
【数３１】
2005521940.tif 000029
【０１３１】
値を代入すると、hの下式が得られる。
【０１３２】
【数３２】
2005521940.tif 000030
【０１３３】
簡素化すると、下式が得られる：
【０１３４】
【数３３】
2005521940.tif 000031
【０１３５】
方程式(20)の両辺にhを乗ずると、下式が得られる：
【０１３６】
【数３４】
2005521940.tif 000032
【０１３７】
方程式(21)は、h=0.5の解をもつ。
【０１３８】
h=0.5のとき（ジェイ・ピー・ナダル及びジー・トウロウス共著「分散コード型メモリネットの情報記憶装置」ネットワーク（１９９０年）６１〜７４頁参照）、相関行列メモリの最大情報内容が生ずることが予め示されてきた。前記hの最適化は、メモリが如何に多くの情報を保持できるかについてではなく、如何に多くの情報を確実に回復できるかであった。従って、最大回復可能内容は、最大内容に一致する。
【０１３９】
方程式(4)から方程式(15)にZ値を代入すると、下式が得られる：
【０１４０】
【数３５】
2005521940.tif 000033
【０１４１】
前記のように得られた最適値h、即ちh=0.5を使用し、W, d及びDが既知であり、エラー無し回復率Pcの許容可能な確率を使用すれば、wに対する値を演算することができる。
【０１４２】
しかしながら、メモリの特性が付与されれば、完全にエラー無し回復率（これまで仮定したように）は、制限的過ぎる要求である。メモリの情報収容能力に対する別の定義は、エラーと共に他の幾つかの事項を回復することを認めながら、エラー無しで回復できる最大数のデータ事項を確立することである。
【０１４３】
再現能力式(12)：
【０１４４】
【数３６】
2005521940.tif 000034
【０１４５】
エラーEcと共に他の事項を回復しながら、高精度に回復できるデータ事項の数に対する式を誘導することは可能である。この式は、方程式(23)で与えられる。
【０１４６】
【数３７】
2005521940.tif 000035
【０１４７】
ここで、Zは、メモリ内の語数である。
【０１４８】
所与の値Zに対して、Ecを最大化するように、wは、変化され、h=0.5でこの最大値が生ずる。
【０１４９】
各新しい入力により１つ又はそれ以上の更なる読出しエラーが生ずるまで、データをメモリに書込めば、メモリの最大有用収容能力に達した。下記の場合に、この点に到達する：
【０１５０】
【数３８】
2005521940.tif 000036
【０１５１】
再書込み方程式(23)は、下記の通りである：
【０１５２】
【数３９】
2005521940.tif 000037
【０１５３】
微分方程式(25)は、下記の通りである：
【０１５４】
【数４０】
2005521940.tif 000038
【０１５５】
再書込み式(4)：
【０１５６】
【数４１】
2005521940.tif 000039
【０１５７】
一定のhに対して、wZは、一定（W, D及びdが与えられれば）であり、不変であることが方程式(27)から明らかである。従って、：
【０１５８】
【数４２】
2005521940.tif 000040
【０１５９】
方程式(28)を方程式(26)に代入すれば、下式が得られる：
【０１６０】
【数４３】
2005521940.tif 000041
【０１６１】
エラーと共に幾つかの語を検索しながら、極力多くの語を正しく読み出すことが目的のとき、方程式(29)は、最適値wに対する別の値を与える。方程式(29)から得られる値wは、方程式(22)から得られるものより小さい。これは、より多くの数（即ち、wを増加する）のアドレスデコーダを付勢することにより、メモリのエラーがより少なくなるが、収容能力もより小さいとの事実を反映するものである。逆に、w値が小さくなるほど、メモリがより多くのエラーを生ずるが、各書込みデータ操作により、データメモリのより少ないワードライン内に値を設定するので、メモリはより大きな収容能力を有する。いずれの場合でも、h=0.5のとき、回収可能な最大情報が生ずる。
【０１６２】
前記のように、式を誘導した本発明者は、方程式(22)及び(29)により決定される複数の値の間にwが設定されれば、本発明の具現化を可能にするメモリを十分に改良できることを決定した。
【０１６３】
図３及び図４について前記の解析を説明する。図３は、方程式(23)の三次元線図を示す。Z軸は、メモリに書込まれた数項目を表し、w軸は、読出し操作又は書込み操作により付勢されるアドレスデコーダの数を表し、Ec軸は、方程式(23)により与えられる量を表す。図４は、w軸及びZ軸が図３の各軸と同一の量を表す場合の図３の線図の等高線図を示す。線図に例示するシステムは、４０９６個のアドレスデコーダ（即ち、W=4096）と、256-11コード（即ち、d=11及びD=256）を使用してデータを記憶させた例である。他の構造も類似の結果を示す。
【０１６４】
まず、図３では、メモリに書込まれるデータが増加する（即ち、Zが増加する）ほど、正確に検索できる語数が増加するが、Zが大き過ぎるようになると、急激に低下する（絶壁形状１０）。即ち、多くのデータを書込んだ後に、メモリは飽和し、正しく回復できる多くの語が急激に転落する。
【０１６５】
図４について更に解析を行う。等高線は、正しい語(Ec)の期待数は、記憶された情報入力数(Z)及び付勢されたアドレスデコーダ(w)の数と共に変化する。エラー率が約１１％で、Ecの最大値は、５３３２である。この最大値は、ワードライン（W=4096）の数より多い。中央等高線１１は、Ec=5000で形成され、次の等高線は、500の段で形成される。線図の南面は、極めて平坦に近く、wが小さい線図の西側を除き、Ecは、Zに極めて近い。線図の西側及び北側での急激な各傾斜により示すように、wが小さくなるか又はZが大きくなると、性能は急落する。
【０１６６】
前記の連続的な等高線に他の２つのデータ組が重ねられる。第１のデータ組は、長めの点線で描く３つの双曲線１２を含む。各双曲線は、hに対する所与の値を生ずるw値及びZ値を示す。これらの双曲線の内、第１の双曲線Ａは、h=0.2での線図を示し、第２の双曲線Ｂは、h=0.5を示し、第３の双曲線Ｃは、h=0.8を示す。最適占有率(h=0.5)を示す線は、線図の最大値を通過することを理解できよう。
【０１６７】
更に、３つの曲線１３は、w値及びZ値がPc値にどのような影響を与えるかを示す。左から右に流れる３つの曲線は、それぞれ0.1、0.5及び0.9のPc値を表す。曲線１３の各最大値は、線h=0.5上に存在することは図４から理解できよう。収容能力は、確立Pcに対して比較的影響されないことを示しながら一緒に接近している。
【０１６８】
前記の説明から、エラーと共に回復される他のデータが発生すれば、最大の正しいデータ回復に対する最適値は、線図の最大値にあることは理解できよう。即ち、w=11である。エラー無し回復の最適値は、中央双曲線Ｂが曲線１３の中央曲線と交差する点から読み出される。（即ち、h=0.5線がPc=0.5線と交差する点）この場合、w=20となり、エラーを有する回復値の２倍を超える。エラー無し回復に対してw値を決定するため、Pc曲線の最大値を配置する必要がある。しかしながら、この曲線は、極めて平坦であるから、最大値を検出することは非常に困難である。この最大値は、h=0.5の点で生ずることが知られているので、Pc=0.5線とh=0.5との交点を得て、最大エラー無しデータ回復に対するw値を決定することは可能である。従って、本発明により実施される展開により、前記のように設定されたパラメータ（変数）を有する如何なるメモリも、１１と２０との間のw値で最適に操作される。
【０１６９】
前記の解説は、wに対する最適値を決定する新規な方法を提案し、このような決定の利点を提供するものである。しかしながら、各アドレスデコーダは独立して発火するので、各入力アドレスによってwアドレスを正確にかつ確実に付勢することが困難であり、即ち、wにある変動がある。前記の分析は、この情報に照らして修正される。
【０１７０】
デコーダを付勢すべき場合に、閾値Tをアドレスデコーダに適用して、入力アドレスとデコーダ識別子との間に対応することが必要なビット数を決定できることは前記の通りである。付勢されたアドレスデコーダは、入力アドレスに対応する入力の少なくともTビットを有するものである。
【０１７１】
第１のM-N1コードが、第２のM-N2コードと共通して、T「１」を有する確率は、方程式(30)により与えられる：
【０１７２】
【数４４】
2005521940.tif 000042
【０１７３】
入力アドレスと共通してTビットを有するアドレスデコーダが付勢されるので、方程式(31)を使用して、
【０１７４】
【数４５】
2005521940.tif 000043
【０１７５】
で示すw平均値を誘導することができる。
【０１７６】
【数４６】
2005521940.tif 000044
【０１７７】
エラー無し入力でメモリを操作していれば、同一のアドレスデコーダは、所与の入力アドレスによって常に付勢される。しかしながら、異なる入力アドレスによって付勢される多数のデコーダ内に統計学上のある変動が生ずる。所与の入力アドレスに対して、付勢される何れか１つのアドレスデコーダの確率は、下式により与えられる：
【０１７８】
【数４７】
2005521940.tif 000045
【０１７９】
Wアドレスデコーダは、方程式(31)による平均値及び方程式(33)による分散値と共に、wに対する二項分布を与える：
【０１８０】
【数４８】
2005521940.tif 000046
【０１８１】
特定値w’を得るwの確率は、：
【０１８２】
【数４９】
2005521940.tif 000047
【０１８３】
方程式(13)は、記憶されたデータ値の全てをエラー無しで回復できる確率の式を与える。方程式(34)が付与されれば、方程式(13)を下記の通り修正することができる：
【０１８４】
【数５０】
2005521940.tif 000048
【０１８５】
即ち、方程式(13)を補正して、w値の分散値を考慮することができる。
【０１８６】
同様に、正しく回復できるデータ要素（項目）(エラーと共に回復されるものを無視する)の期待数に対する値を付与する方程式(23)は、：
【０１８７】
【数５１】
2005521940.tif 000049
【０１８８】
wの二項分散を考慮して、Ec値及びPc値に前記補正を行うと、図４の等高線図は、図５のように修正される。等高線、双曲線及び曲線は、図４に示すのと同一の情報を示す。図５の垂直(Z)軸は、図４の各軸と同一の量を表す。w水平を調節して、w平均値を示すことができる。
【０１８９】
この場合に、Ecの最大値は、Z=5440及びw=15では、Ec=4445でより低い。この最大値は、最早、h=0.5ではないが、h=0.575で生ずる。エラー無し性能は、wのより低い値で著しく悪化するが、線図の全体的形状は影響を受けない。しかしながら、w二項分散を与えれば、T値を設定して、前記提案したものより高い平均値をwに付与しなければならない。方程式(31)を再編成しかつa、A、i及びwの適当な値を使用して、要求されるT値を決定することができる。
【０１９０】
人工ニューラルネットワーク法を使用して、本発明のシステムを実施することができるが、この実施法について説明する。図６は、適当な人工ニューラルネットワークの基本構造を示す。ニューラルネットワークは、複数のアドレスデコーダニューロン１５の層に接続される複数の入力ニューロン１４の層を有する。データメモリは、複数のＤニューロン１６を有する。各データニューロン１６は、各アドレスデコーダニューロン１５に接続される。各データニューロン１６は、書込みデータ入力ＩＰ及び読出しデータ出力ＯＰを有する。
【０１９１】
漏出積分発火スパイクニューロンに基づく実施に特に適するが、他のニューロンモデルを介して適用することもできる。積分付勢ニューロンは、複数のn入力を有し、これらの入力の加重された合計を得る。この合計は、ニューロンの付勢レベルとして知られている。付勢レベルが予め決められた閾値を超えた場合にのみ、ニューロンが発火する。下記の実施は、単一のパルスを出力するスパイクニューロンに基づくが、即ち、ニューロンは、発火してパルスを発生するか又は発火せずパルスを発生しないかの何れかである。ニューロンの出力は、デジタル０／１出力であるとみなすことができる。ニューロンの漏洩特性は、予め決められた時間の間にニューロンにより入力が保持されることを意味する。この時間経過後に、付勢レベルは、零に戻る。このように、入力が波状に発火すれば、他の入力が零に漏出（低下）するので、単一の所与の波からの入力のみを付勢レベルの計算に考慮される。先の入力の効果のために、漏洩特性は、誤ってニューロンを確実に発火させないので、重要である。漏洩特性は、システム内のニューロンを活性波間で確実に不活性状態にさせる。
【０１９２】
A-iコードの形態でアドレスを入力ニューロン１４からアドレスデコーダニューロン１５に入力する。この入力は、ほぼ同時に到着するＡ入力ニューロンのi上の一連のiスパイクである。これらのスパイクニューロンは、下記のように、幾つかのアドレスデコーダニューロンの付勢レベルの一因となる。
【０１９３】
アドレスデコーダは、Wアドレスデコーダニューロン１５を有する。入力ニューロン１４とアドレスデコーダに関連するニューロンとの連結は固定される。同様に、アドレスデコーダニューロンが発火する閾値も固定される。例えば、図６に簡素化して図示する例では、そのアドレスデコーダニューロンが発火すべき場合に、特定のアドレスデコーダニューロン１５に連結された２つの入力ニューロン１４の少なくとも１つが発火しなければならない。即ち、各アドレスデコーダニューロンは閾値１を有する。
【０１９４】
入力ニューロン１４とアドレスデコーダニューロン１５との間の連結を表すマトリックスを形成することができ、この連結マトリックスは、全ての要素を含む−即ち、全ての入力ニューロンは全てのアドレスデコーダニューロンに連結する。各アドレスデコーダニューロンは、加重値Ａを有する。a加重値は、連結マトリックス内で「１」に設定され、加重値A-aは、「０」に設定される。連結マトリックスの一部を図７に示す。図７は、一つのアドレスデコーダニューロンに対する複数の連結を示す。５つの入力ライン１７は、単一のアドレスデコーダニューロン（図示せず）の各入力ライン１８にそれぞれ接続される。入力ライン１７とアドレスデコーダ入力ライン１８との間の複数の連結の各々に加重値「１」又は加重値「０」が割り当てられる。
【０１９５】
左側から右側に入力ライン１７を読出し、上側から下側にアドレスデコーダニューロン入力を読出しながら、第１の入力ラインと第１のアドレスデコーダニューロン入力との間の連結に「０」が割り当てられる一方で、第２の入力ラインと第２のニューロン入力との間の連結に「１」が割り当てられることが理解できよう。
【０１９６】
５つの入力ライン１７と５つのアドレスデコーダ入力１８が設けられる。これらのラインの３つの間の連結に加重値「１」が割り当てられる。このように、各アドレスデコーダニューロンに、実際に、識別子としてコード5-3が割り当てられる。加重値「１」を有する複数の連結の各々に対して、関連する入力ライン上の入力ニューロン発火は、アドレスデコーダニューロンの付勢レベルの一因となる。逆に、加重値「０」を有する連結に対して、関連する入力ライン上の入力ニューロン発火は、アドレスデコーダニューロンの付勢レベルの一因とはならない。
【０１９７】
図７に示す構造は、Wアドレスデコーダニューロン入力に連結されるように各入力ライン１７は、反復される。図７に示す例では、各入力ライン１７を単一の入力１８にのみ連結するように、単一のみのアドレスデコーダニューロンの複数の入力を示す。
【０１９８】
加重値「１」は、発火入力ニューロンがアドレスデコーダニューロン入力１８（即ち、その入力ラインは、アドレスデコーダの識別子内の「１」を表す）に影響を与えることを意味し、加重値「０」は、非連結を有効に表示する（即ち、この入力ライン上のニューロン発火は、アドレスデコーダニューロンに影響を与えない）ことを意味するので、各アドレスデコーダニューロンは、「１」を保有するi入力ニューロンに連結されることのみが必要である。加重値「１」を有する３つの入力ライン１７のみがアドレスデコーダニューロン１５の入力１８に連結される場合のこれを図８に示す。
【０１９９】
このように、入力とアドレスデコーダニューロンとの間に連結を、「０」値及び「１」値（図７）を有する完全な連結マトリックスとして又は特殊な連結（図８）を含む路線指定テーブルの何れかとして考えることができる。前記２つの考えは、同等である。図７に例示するように、単一のアドレスデコーダニューロンに対する複数の連結のみを図８に示し、類似の連結は、複数のWアドレスデコーダニューロンの各々に要求されよう。
【０２００】
一般に、各アドレスデコーダニューロンへの連結（又は「１」）は、任意に選択される。
【０２０１】
スパイク（入力アドレスを表す）が到達したとき、多くのアドレスデコーダニューロンが発火する。発火ニューロンは、十分な数の加重値「１」入力線上で「１」値を受信して、アドレスデコーダニューロンの付勢レベルを閾値Tを超えて上昇させるものである。アドレスデコーダニューロン１５のこの発火は、前記のWコードのwである。
【０２０２】
データメモリ３は、それぞれWアドレスデコーダニューロン１５を有する複数のDニューロン１６を有する。複数のDデータメモリニューロンの各々は、唯一の書込みデータ入力IPを有する。WアドレスデコーダニューロンとDデータメモリニューロンとの間の連結は、最初に零加重値を有するように設定される。書込みデータ入力（図示せず）からの連結は、最初に無関係の値を有する。しかしながら、書込みデータニューロンが発火するとき、アドレスデコーダニューロンを発火する関連する付随波を通じて持続するヘッブの学習則モードに各データメモリニューロンを適用しなければならない。即ち、データを書込むべきときに、各データメモリニューロンを付勢して、書き込みデータニューロンによって付与されるデータを記憶可能にさせなければならない。
【０２０３】
データメモリにデータを書込む手順を以下説明する。まず、D書込みデータニューロン（図示せず）のdが発火して、対応するdデータメモリニューロン１６がヘッブの学習則モードに移行する。アドレスデコーダニューロン１５は、前記のように、発火し、Wコードのwがデータメモリニューロン１６に連絡する。アドレスデコーダからスパイクを受け取るwニューロンは、書込みデータ入力ニューロンによってヘッブの学習則モードに移行されて、「１」に設定される加重値を有する。
【０２０４】
付随するアドレスデコーダニューロンスパイクの波が一度通過すれば、全てのニューロンの漏洩特性によって、付勢レベルが「０」に戻る。この時点で、データメモリニューロンは、ヘッブの学習則モードを停止する。適当な遅延時間経過後に、メモリは、始動すべき更なる読出しサイクル又は書込みサイクルの適当な状態となる。このように、ニューロンの漏洩特性によって、先の書込みサイクルからの付勢が現在の書込みサイクルの操作に確実に影響を及ぼさない。
【０２０５】
データメモリからデータを読み出すべきとき、書込みデータニューロンは、消勢状態にある。前記のように、Wアドレスデコーダニューロンのwを発火することにより、読出し操作を始動する。先の書込みサイクルによって少なくとも幾つかのニューロンが設定されると仮定すれば、w発火アドレスデコーダニューロンによって、幾つかのデータメモリニューロン上の付勢レベルが上昇する。
【０２０６】
出力論理の一般化した「勝利者が全てを取る」（k-WTA）形式は、最高の付勢レベルでdデータメモリニューロン及びそれらの各出力OP上の放出スパイクを選択して、データ出力の表示を形成する。前記のように、更なる読出しサイクル又は書込みサイクルが開始される前に、適当な遅延が要求される。多くの既存の方法を使用して、k-WTAアルゴリズムを実行することができる。これらの一方法では、まず最高の付勢レベル発火を伴い、ニューロンと共に付勢レベルを減少する順序で、複数の出力ニューロンは、発火する。このように、dニューロンが発火した後に、最高の付勢レベルを有するdニューロンは、その出力の一因となった。更に、d発火サイクルを保持すると共に、更なる発火を防止する抑制信号を発生する逆ニューロンによって、その後、更なる発火を抑制することもできる。
【０２０７】
前記のように、アドレスデコーダ論理にM-Nコード付けを適用すれば、多くの利点がある。特に、これらのコードは、データ値内の「１」ビット位置にのみ関連するので、発火ニューロンによって「１」を表す場合に、ニューロンネットワークへの適用に特に適する。二進法では、二進法の神経組織化の実現を困難にするので、非発火ニューロンを表示しかつ検出することは比較的困難である。このように、イベント（ニューロンの発火）が効力を生ずる場合及び非イベントが効力を生じない場合に、M-Nコード付けの適用により有効なイベント駆動システムを提供する。
【０２０８】
N-Mコードに対するＭ値とＮ値の特定の選択は、ある程度まで適用内容に依存する。例えば、ＤＮＡデータを表示すべきバイオインフォーマチックス（生命科学と情報科学、情報工学が融合した学問分野）への適用では、しばしば4-1コードが選択される。ＤＮＡは、多数の塩基を有し、各塩基は、Ｇ、Ａ、Ｔ及びＣと通常表示される４つの適当な塩基の組から選択されるので、前記の選択が行われる。このように、各塩基は、コードによって付与される４つの入力の１つ上に「１」により書く塩基が表示される。即ち、例えば：
G=0001                A=0010
T=0100                C=1000
即ち、コード4-1により、４つの異なる値（２ビット二進数）を表示することができる。従って、ＤＮＡ塩基配列の各塩基を一コードとして表示する一連の4-1コードとしてＤＮＡを表示することができる。この塩基配列を使用して、16-4コードにより４つのＤＮＡ塩基配列を表示することができる。これは、コードの第１の４ビット内に「１」ビットの一つが存在し、次の４ビット内に第２の「１」ビットが一つ存在し、以下同様である。
【０２０９】
例えば、デュアルレールコーディングを使用して、一般的な二進コードをM-Nコードに変換することができる。ここで、二進コードの各ビットは、２つの「レール」に割り当てられる。ビットが「１」に設定されれば、パルスは、そのビットの第１のレール上で送信されるが、ビットが「０」に設定されれば、そのビットの第２のレール上でパルスが送信される。図６に示すニューラルネットワークにこのデュアルレール法について、各入力ニューロン１４は、２つのデュアルレール入力ニューロンからの入力を受信する。即ち、システム内に１０のデュアルレール入力ニューロンが存在する。入力が受信されたとき、１つの「１」が第１のニューロン対の一方上に存在しなければならず、また１つの「１」が第２のニューロン対の一方上に存在しなければならないような制限と共に、これは、10-5コードの形態の中に存在する。「１」レールニューロンから入力を受信する入力ニューロンは、その後前記のように、発火する。
【０２１０】
このように、デュアルレール法の追加により、前記のように、制限されたM-Nコードを使用して、デュアルレール入力が操作されるシステムが提供されるが、如何に多くのニューロンが発火するかについて確実性はなく、入力ニューロンは二進で動作する点に注意すべきである。これは、M-Nシステムと二進法との間に有効な変換を与えるものである。
【０２１１】
従来のアドレスデコーダ及びデータ記憶装置のワードラインによって又は前記のようにニューラルシステムとして本発明のメモリ構造を実施できることは当業者に理解できよう。また、専用ハードウエア構成部品を作成し又はフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡｓ）等の再構成可能な部品を構成することにより本発明のシステムを実行できることも明らかである。別法として、適当なコンピュータプログラムを書込んで、本発明のシステムを実現して、従来のコンピュータシステム上で駆動することもできる。このようなシステムは、本発明を実施するメモリをシミュレートする方法で従来のコンピュータのハードウエアを使用できる。目標設定した実施が特に好ましいが、広範囲に使用される多くのコンピュータプログラム言語の何れかでコンピュータプログラムを書込むこともできる。
【図面の簡単な説明】
【０２１２】
【図１】従来公知のメモリ構造を示すブロック図
【図２】本発明によるメモリ構造のブロック図
【図３】図２に示す特定のメモリ構造の記憶容量を示す三次元線図
【図４】図３の三次元線図の等高線図
【図５】独立して付勢されたアドレスデコーダを考慮して補正した図４の等高線図
【図６】本発明のメモリの実行に使用できる人工ニューラルネットワークのブロック図
【図７】図６に類似する一般形態を有する人工ニューラルネットワーク内の入力ニューロンとアドレスデコーダニューロンとの間の接続の代替構造を示すブロック図
【図８】図７に示す代替構造に対する入力ニューロンとアドレスデコーダニューロンとの連結の代替構造を示すブロック図
【符号の説明】
【０２１３】
１４・・入力ニューロン、  １５・・アドレスデコーダニューロン、  １６・・データニューロン、  ＩＰ・・書込みデータ入力、  ＯＰ・・読出しデータ出力、  １７・・入力ライン、  １８・・入力ライン、
【図１】
2005521940.tif 000054
【図２】
2005521940.tif 000055
【図３】
2005521940.tif 000056
【図４】
2005521940.tif 000057
【図５】
2005521940.tif 000058
【図６】
2005521940.tif 000059
【図７】
2005521940.tif 000060
【図８】
2005521940.tif 000061
【国際調査報告】
2005521940.tif 000062
2005521940.tif 000063