アクセス制御のための少なくとも1つのトランジスタと、N個の確率的な双安定スイッチング素子のクラスタであって、第1のクラスタプログラミング電流端子および第2のクラスタプログラミング電流端子を有し、前記確率的な双安定スイッチング素子がクラスタトポロジーで結合される、クラスタとを含み、前記第1のクラスタプログラミング電流端子と前記第2のクラスタプログラミング電流端子の1つから流れる、プログラミング電流を受け取ったことに応答して、前記クラスタが、少なくともN1個の可能な抵抗のレベルへの、0ではないスイッチングの確率を有する、磁気ランダムアクセスメモリマルチレベルセル。前記クラスタトポロジーが、直列に結合された複数のSTTMTJ素子を含む、請求項1に記載のMRAM。前記クラスタトポロジーが、並列に結合された複数のSTTMTJ素子を含む、請求項1に記載のMRAM。確率的な双安定スイッチング素子がSTTMTJ素子を含む請求項1に記載のMRAMであって、決定論的なスイッチング領域もほぼ決定論的なスイッチング領域も全く含まないスイッチング領域においてSTTMTJ素子を動作させるための特性を有する、前記プログラミング電流を生成するための、確率的な電流源をさらに含む、MRAM。エラーの訂正、エラーへの耐性、歩留まりの改善、およびプログラミング速度の向上のうちの少なくとも1つのために、N個の確率的な双安定スイッチング素子の前記クラスタが、第1のバイナリ値と関連付けられた、前記少なくともN1個の可能な抵抗レベルのうちの複数を有し、第2のバイナリ値と関連付けられた、前記少なくともN1個の可能な抵抗レベルのうちの複数を有する、請求項1に記載のMRAM。前記MRAMが少なくとも1つの半導体ダイに組み込まれる、請求項1に記載のMRAM。セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末、固定位置のデータユニット、およびコンピュータからなる群から選択されるデバイスにさらに組み込まれる、請求項6に記載のMRAM。双安定スイッチング素子のクラスタの抵抗をプログラムする方法であって、双安定スイッチング素子の前記クラスタの前記抵抗の状態を検出するステップと、前記検出された状態に基づいて、少なくとも1つのプログラミング電流の特性を決定するステップと、前記少なくとも1つの決定されたプログラミング電流の特性を有する、前記プログラミング電流を加えるステップと、所与のプログラミング完了状態に達するまで、上のステップを繰り返すステップとを含む、方法。前記上のステップを繰り返す、繰返しの数を計数するステップをさらに含み、1つのプログラミング完了状態が、所与の数の前記繰返しに等しいタイムアウトである、請求項8に記載の方法。1つのプログラミング完了状態が、前記抵抗の状態が所与の抵抗値を満たすのを前記検出することである、請求項8に記載の方法。前記上のステップを繰り返すステップが、前記上の複数のステップを同時に実行する、請求項8に記載の方法。前記上のステップを繰り返すステップが、前記上のステップを順次実行する、請求項8に記載の方法。前記上のステップを繰り返すステップが、時間的に連続する、請求項8に記載の方法。前記上のステップを繰り返すステップが、時間的に別々である、請求項8に記載の方法。前記少なくとも1つのプログラミング電流の特性が、電流の方向を含む、請求項8に記載の方法。前記少なくとも1つのプログラミング電流の特性が、電流の大きさを含む、請求項8に記載の方法。前記少なくとも1つのプログラミング電流の特性が、電流パルスの長さを含む、請求項8に記載の方法。前記少なくとも1つのプログラミング電流の特性が、アナログ波形の特性を含む、請求項8に記載の方法。前記少なくとも1つのアナログ波形の特性が、アナログランプの特性である、請求項18に記載の方法。前記抵抗の前記検出された状態と、目標抵抗状態との差を検出するステップをさらに含み、前記アナログランプの特性が、前記検出された差によって決定される、請求項19に記載の方法。前記少なくとも1つのプログラミング電流の特性が、デジタル波形の特性を含む、請求項8に記載の方法。少なくとも1つのデジタル波形の特性が、デジタルランプの特性である、請求項21に記載の方法。前記抵抗の前記検出された状態と目標抵抗状態との差を検出するステップをさらに含み、前記デジタルランプの特性が前記差によって決定される、請求項22に記載の方法。前記上のステップを繰り返す、繰返しの数を計数するステップをさらに含み、1つのプログラミング完了状態が、繰返しの前記数が所与のタイムアウトに達することであり、別のプログラミング完了状態が、前記抵抗の状態が所与の抵抗値を満たすのを検出することである、請求項8に記載の方法。前記抵抗の前記検出された状態と目標抵抗状態との差を検出するステップをさらに含み、所与のビットエラーレートと、前記双安定スイッチング素子のスイッチング特性とに基づいて、前記タイムアウトを決定するステップをさらに含み、前記所与のタイムアウトによって表される前記数の繰返し以内で、前記双安定スイッチング素子の前記クラスタの前記抵抗状態と前記目標抵抗状態との間の前記差の確率によって、ビットエラーレートが前記所与のビットエラーレートと同じ程度に小さくなる、請求項24に記載の方法。所与のプログラミング遅延の制限と、前記決定されたプログラミング電流の特性とに基づいて、前記タイムアウトを決定するステップをさらに含み、前記所与のプログラミング遅延の制限と前記決定されたプログラミング電流の特性によって、前記所与のタイムアウトによって表される前記数以内の繰返しで、プログラミング遅延が前記所与のプログラミング遅延の制限と同じ程度に小さくなる、請求項24に記載の方法。前記少なくとも1つのプログラミング電流の特性が、前記目標抵抗状態に達するように最適化された大きさを有する、一方向の電流を含む、請求項24に記載の方法。前記抵抗の前記検出された状態と目標抵抗状態との差を検出するステップをさらに含み、前記電流の方向が前記差によって決定される、請求項27に記載の方法。所与の目標抵抗状態に達するのに必要な平均のプログラミングの繰返しを最適化することによって、前記電流の大きさを決定するステップをさらに含む、請求項27に記載の方法。所与の目標抵抗状態に達するのに必要な平均のプログラミング電力に関して、前記電流の大きさを最適化することによって、前記電流の大きさを決定するステップをさらに含む、請求項27に記載の方法。所与の目標抵抗状態に達するのに必要な平均のプログラミング遅延に関して、前記電流の大きさを最適化することによって、前記電流の大きさを決定するステップをさらに含む、請求項27に記載の方法。前記プログラミング電流がある電流パルス長を有するパルスであり、所与の目標抵抗状態に達するのに必要な平均のプログラミングの繰返しに関して前記電流パルス長を最適化することによって、前記電流パルス長を決定するステップをさらに含む、請求項27に記載の方法。前記プログラミング電流がある電流パルス長を有するパルスであり、所与の目標抵抗状態に達するのに必要な平均のプログラミング電力に関して前記電流パルス長を最適化することによって、前記電流パルス長を決定するステップをさらに含む、請求項24に記載の方法。データを記憶するための確率的な抵抗性メモリであって、双安定素子を有する抵抗性素子のクラスタであって、各双安定素子が、少なくとも1つのパラメータを有するプログラミング電流に応答して、少なくとも2つの抵抗状態の第1の抵抗状態と、前記少なくとも2つの抵抗状態の第2の抵抗状態との間でスイッチングするように構成され、スイッチングの確率が、前記プログラミング電流の少なくとも1つのパラメータの値によって決定される、抵抗性素子のクラスタと、前記抵抗性素子のクラスタのクラスタ抵抗状態を検出し、前記抵抗性素子のクラスタにプログラミング電流を注入するための、確率的なプログラミングコントローラであって、前記少なくとも1つのパラメータの前記値が、前記スイッチングの確率を1よりも小さく決定する、確率的なプログラミングコントローラとを含む、確率的な抵抗性メモリ。前記抵抗性素子のクラスタがN個の双安定素子を有し、前記データがMビットのデータであり、Mが少なくとも2であり、Nが少なくとも3である、請求項34に記載の確率的な抵抗性メモリ。前記双安定スイッチング素子が、プログラミング電流が所与の順方向であることに応答して、前記第1の抵抗状態から前記第2の抵抗状態にスイッチングするように構成され、プログラミング電流が前記所与の順方向とは反対の所与の逆方向であることに応答して、前記第2の抵抗状態から前記第1の抵抗状態にスイッチングするように構成される、請求項34に記載の確率的な抵抗性メモリ。前記確率的なプログラミングコントローラが、前記クラスタ抵抗状態を、前記データに対応する目標抵抗状態と比較し、前記クラスタ抵抗状態が前記目標抵抗状態を下回ることに応答して、前記順方向の前記プログラミング電流を注入し、前記クラスタ抵抗状態が前記目標抵抗状態を上回ることに応答して、前記所与の逆方向の前記プログラミング電流を注入するように構成される、請求項36に記載の確率的な抵抗性メモリ。前記確率的なプログラミングコントローラが、所与の終了条件の発生を検出するように構成され、前記確率的なプログラミングコントローラが、前記所与の終了条件を検出するまで、前記クラスタ抵抗状態の前記検出と、前記抵抗性素子のクラスタへの前記プログラミング電流の前記注入とを繰り返すように構成される、請求項37に記載の確率的な抵抗性メモリ。前記確率的なプログラミングコントローラが、前記クラスタ抵抗状態の前記検出および前記プログラミング電流の前記注入の繰返しの数と関連付けられる、プログラミングパルスの数を検出するように構成される、請求項38に記載の確率的な抵抗性メモリ。1つの所与の終了条件が、前記クラスタ抵抗状態が所与の基準内で前記目標抵抗状態を満たすことを前記比較が示す場合に起きる、プログラミング完了条件である、請求項38に記載の確率的な抵抗性メモリ。1つの所与の終了条件が、前記プログラミングパルスの数が所与のタイムアウト値を満たすことを前記比較が示す場合に起きる、プログラミング完了条件である、請求項38に記載の確率的な抵抗性メモリ。前記所与のタイムアウト値が、所与のビットエラーレートの制限値と、前記プログラミング電流の前記少なくとも1つのパラメータによって決定される前記スイッチングの確率とに基づき、前記所与のタイムアウト値に達した時、プログラミングビットエラーレートが、前記所与のビットエラーレートの制限値と同程度に小さい、請求項41に記載の確率的な抵抗性メモリ。前記所与のタイムアウト値が、所与のプログラミング遅延の制限値と、前記プログラミング電流の前記少なくとも1つのパラメータによって決定される前記スイッチングの確率とに基づき、前記所与のタイムアウト値に達した時、前記プログラミング遅延が、前記所与のプログラミング遅延の制限値と同程度に小さい、請求項41に記載の確率的な抵抗性メモリ。前記クラスタがN個の双安定素子を含み、前記データがMビットデータであり、Mが少なくとも2であり、Nが少なくとも3であり、前記確率的なプログラミングコントローラの電流が、前記少なくとも1つのパラメータの前記値を設定して、前記スイッチングの確率を、平均のパルスの繰返しの数を最適化する1よりも小さな値に決定する、請求項41に記載の確率的な抵抗性メモリ。前記クラスタがN個の双安定素子を含み、前記データが1ビットデータであり、Nが1であり、前記確率的なプログラミングコントローラの電流が、前記少なくとも1つのパラメータの前記値を設定して、前記スイッチングの確率を、平均のプログラミング遅延を最適化する1よりも小さな値に決定する、請求項41に記載の確率的な抵抗性メモリ。少なくとも1つの半導体ダイに組み込まれる、請求項34に記載の確率的な抵抗性メモリ。セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末、固定位置のデータユニット、およびコンピュータからなる群から選択されるデバイスにさらに組み込まれる、請求項46に記載の確率的な抵抗性メモリ。双安定スイッチング素子のクラスタの抵抗をプログラムする方法であって、前記抵抗の状態を検出するためのステップと、前記検出された状態に基づいて、少なくとも1つのプログラミング電流の特性を決定するためのステップと、前記少なくとも1つの決定されたプログラミング電流の特性を有する、前記プログラミング電流を加えるためのステップと、所与のプログラミング完了状態に達するまで、前記検出するためのステップ、前記決定するためのステップ、および前記加えるステップを繰り返すためのステップとを含む、方法。前記繰り返すためのステップが、繰り返すための前記ステップの繰返しの数を計数するためのステップを含み、1つのプログラミング完了状態が、繰返しの所与の数に等しい所与のタイムアウトである、請求項48に記載の方法。1つのプログラミング完了状態が、前記抵抗の状態が所与の抵抗の基準を満たすのを検出することである、請求項48に記載の方法。前記検出するためのステップおよび前記加えるためのステップが同時である、請求項48に記載の方法。前記検出するためのステップおよび前記加えるためのステップが順次的である、請求項48に記載の方法。前記少なくとも1つのプログラミング電流の特性が、電流の方向を含む、請求項48に記載の方法。前記繰り返すためのステップが、繰返しの前記数を計数するためのステップを含み、1つのプログラミング完了状態が、所与の数の繰返しに等しい所与のタイムアウトであり、別のプログラミング完了状態が、前記抵抗の状態が所与の抵抗の基準を満たすのを前記検出することである、請求項48に記載の方法。前記抵抗の前記検出された状態と目標抵抗状態との差を検出するためのステップをさらに含み、所与のビットエラーレートと、前記双安定スイッチング素子のスイッチング特性とに基づいて、タイムアウトを決定するためのステップをさらに含み、前記タイムアウトによって表される前記数の繰返し以内で、前記抵抗の前記検出された状態と双安定スイッチング素子の前記クラスタの前記目標抵抗状態との間の前記検出された差の確率が、ビットエラーレートを前記所与のビットエラーレートと同じ程度に小さくする、請求項48に記載の方法。所与のプログラミング遅延の制限と、前記決定されたプログラミング電流の特性とに基づいて、タイムアウトを決定するためのステップをさらに含み、前記所与のプログラミング遅延の制限と前記決定されたプログラミング電流の特性が、前記決定されたタイムアウトによって表される前記数以内の繰返しで、前記プログラミング遅延を前記所与のプログラミング遅延の制限と同じ程度に小さくする、請求項48に記載の方法。双安定スイッチング素子のクラスタと、双安定スイッチング素子の前記クラスタの抵抗の状態を検出するための手段と、前記検出された状態に基づいて、少なくとも1つのプログラミング電流の特性を決定するための手段と、前記少なくとも1つの決定されたプログラミング電流の特性に従って、双安定スイッチング素子の前記クラスタに、前記プログラミング電流を加えるための手段と、所与のプログラミング完了状態に達するまで、前記検出、前記決定、および前記印加を繰り返すための手段とを含む、確率的な抵抗性メモリ。前記繰り返すための手段が、前記検出、前記決定、および前記印加を繰り返す、繰返しの数を計数するための手段を含み、1つのプログラミング完了状態が、所与の数の繰返しに等しい所与のタイムアウトである、請求項57に記載の確率的な抵抗性メモリ。1つのプログラミング完了状態が、前記抵抗の状態が所与の抵抗の基準を満たすのを前記検出することである、請求項57に記載の確率的な抵抗性メモリ。前記繰り返すための手段が、繰返しの前記数を計数するための手段を含み、1つのプログラミング完了状態が、繰返しの前記数が所与のタイムアウトに達することであり、別のプログラミング完了状態が、前記抵抗の状態を検出するための前記手段によって抵抗が所与の抵抗の基準を満たすのを検出することである、請求項57に記載の確率的な抵抗性メモリ。少なくとも1つの半導体ダイに組み込まれる、請求項57に記載の確率的な抵抗性メモリ。セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末、固定位置のデータユニット、およびコンピュータからなる群から選択されるデバイスにさらに組み込まれる、請求項61に記載の確率的な抵抗性メモリ。アンテナと、前記アンテナに結合されるワイヤレスコントローラと、前記ワイヤレスコントローラに結合される集積回路であって、処理ユニットと、前記処理ユニットに結合されるデータを記憶するための確率的な抵抗性メモリとを有する、集積回路と、前記集積回路に結合される入力デバイスとを含む、通信デバイスであって、前記集積回路の前記確率的な抵抗性メモリが、双安定素子のクラスタであって、各双安定素子が、プログラミング電流に応答して、少なくとも2つの抵抗状態の第1の抵抗状態と、前記少なくとも2つの抵抗状態の第2の抵抗状態との間でスイッチングするように構成され、スイッチングの確率が、前記プログラミング電流の少なくとも1つのパラメータの値によって決定される、双安定素子のクラスタと、双安定素子の前記クラスタのクラスタ抵抗状態を検出し、前記抵抗性素子のクラスタにプログラミング電流を注入するための、確率的なプログラミングコントローラであって、前記少なくとも1つのパラメータの前記値が、前記スイッチングの確率を1よりも小さく決定する、確率的なプログラミングコントローラとを含む、通信デバイス。しかし、決定論的なSTTMTJの書込みという従来の設計思想は、AP→PまたはP→APのスイッチングが発生する正確で再現可能な閾値をSTTMTJ素子が有さないという現実を、可能な範囲で完全になくす設計規則を、必ずしも含まない。この理由は、図1のシミュレーショングラフ100で示される。含まれるシミュレーショングラフ102Aは、CPTを上回る電流レベルの書込みパルス104を用いて、パルス幅tの関数として、STTMTJ素子がPAP状態をスイッチングする例示的な確率を示す。対照的に、図1のシミュレーショングラフ102Bは、CPTよりも低い電流レベルの書込みパルス106を用いて、パルス幅tの関数として、STTMTJ素子がPAP状態をスイッチングする確率を示す。示されるように、パルス幅にもよるが、書込み電流レベルが大きい場合には、スイッチングの確率は、パルス電流レベルが低い場合のスイッチングの確率よりも、はるかに鋭く増大する。したがって、従来の決定論的なプログラミングによって許容可能な書込み性能を得るには、すなわち、書込みエラーレートが余剰のパルス幅を伴わずに所与の最大ビットエラーレートよりも小さくなるようにするには、一般にCPTをかなり上回る書込み電流レベルが必要である。このことは、パルス幅202対スイッチングの確率204の図2のグラフ200においてさらに示され、グラフ200において、シミュレーションのスイッチング確率曲線206は、臨界レベルを上回る書込み電流に対応する。点2050は、100に近いスイッチングの確率に必要な、例示的なパルスの長さを示す。従来の決定論的なプログラミングにおいて必要な、これらのパルス電流のレベルおよび長さによって、決定論的なスイッチングに近づこうとする中で、余計な電力と余計な時間が使われる。図2を参照すると、全体像を与えるように、確率曲線220は、点2052が例示的な読取り点を示す、CPTをかなり下回る電流に対応する。加えて、従来のSTTMTJメモリは、各STTMTJ抵抗性素子に対して、読取り書込みアクセスおよび制御回路が必要である。したがって、従来のSTTMTJメモリは、各々の記憶ビットに対して、完全なSTTMTJメモリセルを必要とする。さらに、メモリセルの各々において、STTMTJ素子のフットプリントは一般に、セル領域のより小さな部分を占める。n行とm列のSTTMTJアレイのサイズを、より大きな値のmおよびnに増やしても、この非効率性をなくすことにはならない。一実施形態は、アクセス制御のための少なくとも1つのトランジスタと、N個の確率的な双安定スイッチング素子のクラスタとを有する、磁気ランダムアクセスメモリマルチレベルセルを提供する。このクラスタは、第1のクラスタプログラミング電流端子と、第2のクラスタプログラミング電流端子とを有し得る。一態様では、確率的な双安定スイッチング素子はクラスタトポロジーで結合され、第1のクラスタプログラミング電流端子と第2のクラスタプログラミング電流端子の1つから流れるプログラミング電流を受け取ったことに応答して、クラスタは、少なくともN1個の可能な抵抗のレベルへの、0ではないスイッチングの確率を有する。一態様では、確率的な双安定スイッチング素子は、STTMTJ素子を含み得る。さらなる一態様では、確率的な電流源が、決定論的なスイッチング領域もほぼ決定論的なスイッチング領域も全く含まないスイッチング領域においてSTTMTJ素子を動作させる特性を有する、プログラミング電流を生成するように構成される。一実施形態は、双安定スイッチング素子のクラスタの抵抗をプログラムするための方法を提供し、一態様では、その方法は、抵抗の状態を検出するステップと、検出された状態に基づいて、少なくとも1つのプログラミング電流の特性を決定するステップと、前記少なくとも1つの決定された特性を有するプログラミング電流を加えるステップと、所与のプログラミング完了条件に達するまで、検出するステップ、決定するステップ、および加えるステップを繰り返すステップとを、含み得る。一態様では、一実施形態によるプログラミングの方法は、プログラミングパルスの計数、すなわち、繰返しの回数の計数を含んでもよく、1つのプログラミング完了条件は、プログラミングパルスの計数が所与のタイムアウトを満たす時、すなわち、所与の数の繰返しに等しいタイムアウトに繰返しの数が達した時であってよく、別のプログラミング完了条件は、抵抗の状態が所与の抵抗の基準を満たすのを検出することであってよい。さらなる一態様では、一実施形態による方法は、所与のビットエラーレートと、双安定スイッチング素子のスイッチング特性とに基づいて、タイムアウトを決定するステップを含んでもよく、タイムアウトによって表される数以内の繰返しで、双安定スイッチング素子のクラスタの抵抗状態と目標抵抗との間の差の確率によって、ビットエラーレートが所与のビットエラーレートと同じ程度に小さくなる。一態様では、プログラミング電流は、所与の順方向、所与の逆方向、およびまたは、たとえば検出された抵抗状態と目標抵抗状態との差によって決定され得る、順方向もしくは逆方向であってよい、電流の方向を含み得る。さらなる一態様では、一実施形態による方法はさらに、所与のプログラミング遅延の制限と、決定されたプログラミング電流の特性とに基づいて、タイムアウトを決定するステップを含んでもよく、所与のプログラミング遅延の制限と決定されたプログラミング電流の特性によって、タイムアウトによって表される数以内の繰返しで、プログラミング遅延が所与のプログラミング遅延の制限と同じ程度に小さくなる。一態様では、一実施形態による方法において、プログラミング電流の特性は、目標抵抗状態に達するように最適化された大きさを有する、一方向の電流を含み得る。さらなる一態様では、電流の大きさは、所与の目標抵抗状態に達するのに必要な平均のプログラミングの繰返しの回数を最適化することによって、最適化され得る。一態様では、電流の大きさは、所与の目標抵抗状態に達するのに必要な平均のプログラミング電力に関して、最適化され得る。一態様では、電流の大きさは、所与の目標抵抗状態に達するのに必要な平均のプログラミング遅延に関して、最適化され得る。一実施形態は、たとえば、N個の双安定素子を有する抵抗性素子のクラスタを含む、確率的な抵抗性メモリを提供し、各々の双安定素子は、プログラミング電流に応答して、少なくとも2つの抵抗状態の第1の抵抗状態と、少なくとも2つの抵抗状態の第2の抵抗状態との間でスイッチングするように構成され、スイッチングの確率は、プログラミング電流の少なくとも1つのパラメータの値によって決定され、さらに一実施形態は、抵抗性素子のクラスタのクラスタ抵抗状態を検出し、抵抗性素子のクラスタにプログラミング電流を注入するための、確率的なプログラミングコントローラを含んでもよく、少なくとも1つのパラメータの値が、スイッチング確率を1よりも小さく決定する。一実施形態による確率的な抵抗性メモリの一態様では、確率的なプログラミングコントローラは、所与の終了条件の発生を検出するように構成されてよく、所与の終了条件を検出するまで、クラスタの抵抗状態の検出と、抵抗性素子のクラスタへのプログラミング電流の注入とを繰り返すように構成され得る。一態様では、1つの所与の終了条件は、所与のタイムアウト値であってよく、タイムアウト値に達した場合に、プログラミングビットエラーレートが、所与のビットエラーレートの制限値と同じ程度に小さくなるように、タイムアウト値は、所与のビットエラーレートの制限値と、プログラミング電流の少なくとも1つのパラメータによって決定されるスイッチングの確率とに基づいてよい。一態様では、1つの終了条件は、所与のタイムアウト値であってよく、タイムアウト値に達した場合に、プログラミング遅延が、所与のプログラミング遅延の制限と同じ程度に小さくなるように、タイムアウト値は、所与のプログラミング遅延の制限と、プログラミング電流の少なくとも1つのパラメータによって決定されるスイッチングの確率とに基づき得る。一実施形態は、双安定スイッチング素子のクラスタを有する確率的な抵抗性メモリと、双安定スイッチング素子のクラスタの抵抗の状態を検出するための手段と、検出された状態に基づいて、少なくとも1つのプログラミング電流の特性を決定するための手段と、少なくとも1つの決定された特性に従って、双安定スイッチング素子のクラスタにプログラミング電流を加えるための手段と、所与のプログラミング完了条件に達するまで、検出するステップ、決定するステップ、および加えるステップを繰り返すための手段とを、提供する。添付書類に見出される添付の図面は、本発明の実施形態の説明を助けるために提示され、実施形態の限定ではなく、実施形態の例示のためのみに提供される。本発明の特定の実施形態を対象とする以下の説明および関連する図面で、本発明の態様を開示する。本発明の範囲から逸脱することなく、代替的な実施形態を考案することができる。さらに、本発明の関連する詳細を不明瞭にしないように、本発明のよく知られている要素については詳細に説明しないか、または省略する。例示的なという言葉は、一例、実例または例としてを意味するために本明細書で使用される。例示的として本明細書で説明する任意の実施形態は、必ずしも他の実施形態よりも好ましいまたは有利であると解釈されない。同様に、本発明の実施形態という用語は、本発明のすべての実施形態が、論じられた特徴、利点または動作モードを含むことを必要としない。本明細書において使われる用語は、特定の実施形態を記載するためのものに過ぎず、本発明の実施形態を限定することは意図していない。本明細書で使用する単数形a、an、およびtheは、文脈が別段に明確に示すのでなければ、複数形をも含むものとする。さらに、本明細書で使用する含む、含んでいる、含む、およびまたは含んでいるという用語は、述べられた特徴、整数、ステップ、動作、要素、およびまたは構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、およびまたはそれらのグループの存在または追加を排除しないことを理解されたい。さらに、多くの実施形態が、たとえば、コンピューティングデバイスの要素によって実行すべき一連のアクションに関して説明される。本明細書で説明する様々なアクションは、特定の回路によって、1つもしくは複数のプロセッサによって実行されるプログラム命令によって、または両方の組合せによって実行できることを認識されよう。さらに、本明細書で説明するこれらの一連のアクションは、実行時に、関連するプロセッサに本明細書で説明する機能を実行させる、コンピュータ命令の対応するセットを記憶した、任意の形式のコンピュータ可読記憶媒体内で全体として具現化されるものと見なすことができる。したがって、本発明の様々な態様は、すべてが請求する主題の範囲内に入ることが企図されているいくつかの異なる形式で具現化できる。さらに、本明細書で説明する実施形態ごとに、任意のそのような実施形態の対応する形式を、たとえば、記載のアクションを実行するように構成された論理として本明細書で説明することがある。情報および信号は、多種多様な技術および技法のいずれかを使用して表され得ることを、当業者は諒解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界もしくは磁性粒子、光場、電子スピン素粒子、電子スピン、またはそれらの任意の組合せによって表され得る。さらに、本明細書で開示した実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装できることを、当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、具体的な適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を具体的な適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。本明細書で開示した実施形態と関連して説明した方法、手順、およびまたはアルゴリズムは、ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはその2つの組合せで直接実施され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CDROM、または当技術分野で知られている任意の他の形態の記憶媒体中に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。したがって、本発明の実施形態は、実装のための方法を具現化するコンピュータ可読媒体を含み得る。したがって、本発明は図示の例に限定されず、本明細書で説明した機能を実行するためのいかなる手段も、本発明の実施形態中に含まれる。様々な例示的な実施形態が、N個のSTTMTJ素子のSTTMTJクラスタセルを提供し、一態様では、STTMTJ素子への個々のアクセスを必要とすることなく、少なくともN1個のクラスタ抵抗のいずれかを有するように、各STTMTJクラスタセルの確率的なプログラミングを提供する。本明細書で用いられる場合、クラスタ抵抗という用語は、一方のプログラミング電流線へのクラスタの結合部分から、もう一方のプログラミング電流線へのクラスタの結合部分までの抵抗を意味し、プログラミング電流は、一方のプログラミング電流線からクラスタに入り、または一方のプログラミング電流線に向かってクラスタから出ることができ、もう一方のプログラミング電流線に向かってクラスタから出て、またはもう一方のプログラミング電流線からクラスタに入ることができる。加えて、本明細書で用いられる場合、クラスタ状態は、クラスタを構成する個々のSTTMTJ素子がどのようなPAP状態になるか関する、N素子STTMTJクラスタのPAPの混合状態を意味する。クラスタ状態のこの定義は、N素子STTMTJクラスタ内の、特定のSTTMTJ素子を特定することはできない。このことは、本発明の様々な例示的な実施形態が、セルの個々のSTTMTJ素子のPAP状態の検出または制御を必要とせずに、マルチビットの記憶およびエラー訂正の記憶をセルに対して実現するので、許容可能である。本開示を読めば、例示的な実施形態は、STTMTJクラスタへの情報の記録を、クラスタの抵抗レベルの形で実現し、クラスタの抵抗レベルの検出によって情報の取り出しを実現するということを、当業者は諒解するだろう。接続トポロジーの様々な例が説明され、実施形態に従って実践する中で、他の例も明らかになるだろう。クラスタを構成するN個の双安定STTMTJの具体的な接続トポロジーと、異なる双安定STTMTJのスイッチング先であり得る、複数の抵抗レベルの間の比例関係とに応じて、得られるクラスタは、N1個から2N個までのいずれかの個数の異なる抵抗レベルを有し得ることを理解されたい。一例として、1つの例示的な実施形態による1つのクラスタは、直列に接続された3つの同一のSTTMTJを含んでもよく、これらのSTTMTJの各々は、抵抗レベルrまたは抵抗レベル2rにスイッチングし得る。この例示的なクラスタは、3r、4r、5r、および6rという4つの異なる抵抗レベルのいずれかをとることができるので、2ビットの情報の記憶を実現することができる。別の例では、別の例示的な実施形態による1つのSTTMTJクラスタは、2つが並列に接続され、3番目が、並列に配置された最初の2つと直列に接続される、3つの同一のSTTMTJを含んでもよく、さらにより具体的な例では、これらの3つのSTTMTJの各々は、抵抗レベルrと抵抗レベル2rとの間でスイッチングし得る。この例示的なSTTMTJクラスタは、9r6、10r6、12r6、15r6、16r6、および18r6という6つの異なる抵抗レベルのいずれかを、とることができる。したがって、この例は、2ビットよりも多くの情報の記憶を実現することができる。さらに別の例では、1つの例示的な実施形態による1つのSTTMTJクラスタは、直列に接続された3つの異なる構造のSTTMTJを含んでもよく、その構造の差は、3つのSTTMTJの1つが、抵抗レベルrと抵抗レベル2rとの間でスイッチングすることができ、3つのSTTMTJの2番目が、抵抗レベル2rと抵抗レベル4rとの間でスイッチングすることができ、STTMTJの3番目が、抵抗レベル4rと抵抗レベル8rとの間でスイッチングすることができるというものである。1つの例示的な実施形態によるこの例示的なSTTMTJクラスタは、7r、8r、9r、10r、11r、12r、13r、および14rという8つの異なる抵抗レベルのいずれかをとることができる。したがって、この例は、3ビットの情報の記憶を実現することができる。それぞれの抵抗レベルに関して区別できない、対称的なトポロジーで接続されるN個のSTTMTJを有する、例示的な実施形態による、特定の例示的なSTTMTJクラスタおよび関連する方法が説明される。本開示を読むことによって、例示的な実施形態によるそのような例示的なSTTMTJクラスタは、構成するSTTMTJのこの関連する構造によって対称的なトポロジーで実装されると、N1個の異なる抵抗レベルを表せることが、当業者には理解されよう。したがって、これらの例は、N1個の異なる抵抗レベルを提供するものとして説明される。これらの説明された例は、対称的なトポロジーに従って接続された同一の抵抗レベルのSTTMTJに、実施形態を限定するものとして意図されないことが、当業者によって理解されよう。代わりに、説明された例は、そうした例が示すことを意図する概念の基礎ではない、形態そのものと形態の説明の両方においてより複雑ではない実施される形態で、概念を紹介するために用いられる。しかし、本開示を読めば、当業者は、同一ではないSTTMTJのクラスタおよびまたは非対象なトポロジーを用いて、当業者が有する一般的なノウハウを説明された概念に適用することによって、説明された実施形態およびその様々な代替的な形態に従って、容易に実践することができる。理解されるように、一実施形態では、クラスタを形成する複数のSTTMTJ素子のすべてが、同一のRP値およびRAP値を有してもよく、さらに、どのSTTMTJ素子の状態が変化するかに関係なく、1つのSTTMTJ素子のPAP状態の変化がクラスタ抵抗の対応する変化を生み出すような、様々なクラスタトポロジーで配置され得る。したがって、一態様では、N素子STTMTJクラスタの2N個の可能な状態があるが、これらの2N個の可能な状態の各々は、N1個だけの可能なRCLST値の1つに該当し得る。しかし、実施形態は、RP値とRAP値が等しいSTTMTJ素子には限定されないことが理解されよう。対照的に、例示的な実施形態は、明らかに異なるRP値およびRAP値を有する、N素子STTMTJクラスタ内の異なるSTTMTJ素子を利用して、実行されてもよい。明示的に述べられる場合または文脈から明らかにされる場合を除き、P状態とAP状態の一方からもう一方へのスイッチングに関して説明される動作は、反対方向のスイッチングに関して説明される動作と、概念上は同一であることが、理解されよう。1つの一般的な実施形態では、後のセクションでさらに詳細に説明されるように、N素子STTMTJクラスタセルは、確率的なプログラミングによってN1個のレベルのいずれかにプログラム可能な、N1個のレベルの記憶装置を提供するように構成され得る。一態様では、N1個のレベルは、個々のSTTMTJ素子の状態を制御する必要なく、Mビットの情報の記憶装置を提供することができ、MはLog2である。別の態様では、N1個のレベルは、スイッチングしないSTTMTJ素子を有するかどうかに無関係に提供される1ビットのバイナリ記憶装置として機能する、エラー訂正セルを提供することができる。1つの一般的な実施形態によるさらなる態様は、後のセクションでさらに詳細に説明されるように、N素子STTMTJクラスタセルによって記憶されるビットの数であるMを、Log2より小さくなるように割り当て、複数ビットの記憶装置とECC記憶装置の両方を得る。1つの一般的な実施形態では、N素子STTMTJクラスタの確率的なプログラミングは、記憶すべきデータを受け取り、次いで、データを表すRCLST値を決定することによって、開始する。RCLST値は、目標RCLST値と呼ばれ得る。一態様では、確率的なプログラミングは、N素子STTMTJクラスタの現在の状態を読み取り、現在のRCLST値が目標RCLST値を上回るか下回るかを判定する。現在のRCLST値が目標RCLST値を上回る場合、RAPがRPよりも大きいので、AP状態にあるN素子STTMTJクラスタ中のSTTMTJ素子の数が多すぎる。それに応じて、確率的なプログラミングは、特別に設定されたパラメータを有するプログラミング電流を、N素子STTMTJクラスタに注入する。このパラメータは、現在AP状態であるすべてのSTTMTJ素子が、P状態へのスイッチングの確率PMTJを有するように、具体的に設定される。一態様では、プログラミング電流がN素子クラスタに注入されると、現在AP状態であるすべてのSTTMTJ素子は、P状態への同じスイッチングの確率PMTJを有する。一態様では、例示的なパラメータPMは、パルスの形またはパルスの特性、たとえば、代替的には電流の長さまたはパルス幅と呼ばれる電流パルスの長さを特徴付けることができ、かつまたは、パルスの極性を特徴付けることができる。さらなる態様では、例示的なパラメータPMは、たとえば、ランプの傾き、ランプの大きさ、およびもしくはランプの極性のような、アナログランプの特性またはデジタルランプの特性を定義する、アナログランプ電流またはデジタルランプ電流を特徴付けることができる。これらの特定される書込み電流のパルスおよびランプの形態は、それらの各々を設定して調整するための対応するパラメータPMの例とともに、単に例示を目的とするものであることが理解されよう。たとえば、少なくとも1つのアナログ波形の特性およびまたは少なくとも1つのデジタル波形の特性に従った、アナログ波形またはデジタル波形を定める、他のプログラミング電流の形態および他のプログラミング電流のパラメータが考えられる。例示的な実施形態による確率的なプログラミングでは、上で説明された最初の繰返しの結果、すなわち、プログラミング電流の最初の注入の結果は、ある数のSTTMTJ素子がAP状態からP状態にスイッチングするというものである可能性がある。スイッチングする実際のSTTMTJ素子の数はわからないことが、理解されよう。代わりに、その推定の数のみがわかる。したがって、各繰返しの後にスイッチングしたSTTMTJ素子の実際の数を求めるために、更新されたRCLST値が読み取られる。更新されたRCLST値が目標RCLSTを依然として上回る場合、別のプログラミング電流パルスが、最初の注入と同じ方向で注入され得る。一方、更新されたRCLST値が目標RCLSTを下回る場合、別のプログラミング電流パルスが注入され得るが、それは最初の注入とは逆の方向である。一態様では、プログラミング電流パラメータの1つまたは複数が、確率PMTJを変えるために、第2の注入については変更されてよい。たとえば、この態様では、更新されるRCLST値が目標RCLST値を1上回っているだけである場合、第2のプログラミング電流パルスの長さまたは振幅は、低減され得る。これによって、第2のパルスが、追加の繰返しが必要になる、AP状態のSTTMTJ素子の2つ以上のP状態へのスイッチングの確率が、下がり得る。容易に理解されるように、この追加の繰返しは、反対方向のプログラミング電流によって行われる。別の態様では、このプログラミング電流のパラメータは、第2のプログラミングパルスについて、少なくとも所与の設計および製造の誤差内で、同じスイッチングの確率PMTJを有するように選択され得る。各繰返しの後にプログラミング電流のパラメータを変更しないこの態様では、値PMTJは好ましくは、そのような繰返しの数を最小化するように、演繹的に最適化され得る。本開示から理解されるように、プログラミング電流のパラメータによって、PMTJが大きくなりすぎた場合、目標RCLST値をオーバーシュートする率が不必要に高くなる結果となり得る。たとえば、更新されたRCLST値が目標RCLST値より1または2だけ大きい場合、大きすぎるPMTJによって、1つまたは2つよりも多くのSTTMTJ素子がスイッチングすることが多くなりすぎる可能性がある。そしてさらに、反対方向のプログラミング電流による訂正の繰返しが必要になる。追加の繰返しにおいて、スイッチングするSTTMTJ素子が再び多くなりすぎる可能性もある。一方、プログラミング電流パラメータによって、PMTJが小さくなりすぎた場合、RCLSTが目標に収束するのに必要なPCが不必要に大きくなり得る。PCを最小化するようにPMTJを最適化するための例示的な処理および技法が、後のセクションでさらに詳細に説明される。図3は、1つまたは複数の例示的な実施形態による、N素子STTMTJクラスタセル300の一例を示す。一態様では、N素子STTMTJクラスタセル300は、一連のN個のSTTMTJ素子3021、3022、302Nを含むN素子STTMTJ直列クラスタ302を含み得る。後のセクションでさらに詳細に説明される別の態様では、N素子STTMTJクラスタセル300は、N個のSTTMTJ素子3521、3522、352Nの並列配置を含むN素子STTMTJ並列クラスタ350を含んでもよく、点350Aと350Bとの間にプログラム可能な抵抗を形成する。N素子STTMTJ直列クラスタ302を利用する態様をここで参照すると、N素子STTMTJ直列クラスタ302は、読取り書込み電流線304に一方の端302Aで結合され、イネーブルスイッチ306を通じて、別の読取り書込み電流線308に他方の端302Bで結合される。BL304およびSL308は、図3の例示的なN素子STTMTJ直列クラスタ302と同一であり得る、複数の追加のSTTMTJクラスタの各々に延びて結合し得ることが、理解されよう。BL線304およびSL線308は、従来のn×mアレイのSTTMTJメモリビット線およびソース線という手段によるものであってよい。同様に、イネーブルスイッチ306は、従来のn×mアレイのSTTMTJメモリワードイネーブルスイッチ手段によるものであってよい。BL線304、SL線308、およびイネーブルスイッチは、それぞれ、従来のビット線、ソース線およびワードトランジスタ以外のものであってよいことも理解されよう。図3の参照を続けると、以下でさらに詳細に説明されるような、確率的なプログラミングのコントローラユニット312によって制御される確率的なプログラミング電流源310が、BL線304およびSL線308に結合する。N1レベル電圧検出器314は、読取りイネーブルスイッチ316を通じてBL線304に結合されるセンス入力314Aと、MビットからN1レベルへの変換器318に結合されるセンス入力314Bとを有し得る。MビットデータからN1レベルへの変換器318は、Mビットデータを、N1個のレベルの目標抵抗電圧信号VCLSTGTに変換することができる。N1レベルへの変換器318は、比較信号をPPGコントローラ312に与えることができる。N1レベル電圧検出器314は、BLソース線304を介して、N素子STTMTJ直列クラスタ302に読取り電流を注入するための、読取り電流源を含み得ることが理解されよう。N1レベル電圧検出器314の特定の構造について、本開示を考慮すると、当業者は、マルチレベル電圧検出器の一般的なノウハウを適用して、説明された機能を実行する様々なデバイスを容易に選択して実装することができる。したがって、さらなる詳細な説明は省略される。確率的なプログラミングのコントローラ312のような図示されるブロックは機能ブロックであり、例示的な処理を説明する目的で別々に示され、ハードウェアの任意の構成または区分を必ずしも表すものではないことも、理解されよう。たとえば、PPGコントローラ312の説明された機能、たとえばタイムアウトカウンタ320は、図示された他の機能を実装する様々なデバイス、たとえばPGC源310またはN1レベル電圧検出器314に組み込まれてよく、それらに分散配置されてもよい。一態様では、後のセクションでさらに詳細に説明されるように、PPGコントローラ312は、確率的なプログラミング電流IP→APまたはIAP→PをN素子STTMTJ直列クラスタ302に注入するように、PGC源310を制御することができ、さらに手順を進める前に、PPGコントローラ312は、N1レベル電圧検出器314から比較信号CPを受け取ることができる。比較信号CPから、PPGコントローラ312は、N素子STTMTJ直列クラスタ302のクラスタ状態が、MビットからN1レベルへの変換器318へのMビットデータに対応する目標クラスタ状態にあるか、それよりも上か、それよりも下かを、識別することができる。CP信号が、N素子STTMTJ直列クラスタ302が目標クラスタ状態にあることを示す場合、PPGコントローラ312は、プログラミングは完了したと判定することができる。別の態様では、PPGコントローラ312は、プログラミング電流IP→APまたはIAP→PをN素子STTMTJ直列クラスタ302に注入することと、N素子STTMTJ直列クラスタ302の、生成された目標クラスタ状態に対する、得られたクラスタ状態または更新されたクラスタ状態を検出することと、本明細書では代替的に終了条件と呼ばれるプログラミング完了条件を検出するまでループを繰り返すこととを、繰返しまたはループとして反復するように、PGC源310を制御する。前に説明されたように、1つの終了条件は、N素子STTMTJ直列クラスタ302が、目標クラスタ状態にあることである。一態様では、PGCコントローラ312は、発生するパルス数として繰返しを計数するための、タイムアウトカウンタ320を含んでもよく、終了条件は、PCが所与のタイムアウト値に達することである。一態様では、タイムアウト値は、所望の最大ビットエラーレートの関数、ならびに、選択されたパラメータ値PMに対応するNおよびPMTJの値の関数であってよい。本開示から当業者が容易に理解するように、この関数は、シミュレーションを通じて、またはたとえば経験的な手段で取得され得る。別の態様では、タイムアウト値は、PPGの遅延を最大のプログラミング遅延の範囲内に保つように、設定され得る。様々な例示的な実施形態によれば、PPGコントローラ312とPGC源310の1つまたは両方が、最適化されたPMTJ、PMTJOPTを生成するように設定された電流パラメータPMを有する、確率的なプログラミング電流IP→APまたはIAP→Pを注入するように構成される。一態様では、後のセクションでさらに詳細に説明される手段および処理を通じて、N素子STTMTJ直列クラスタ302が目標クラスタ状態に達するための最小の平均PCを提供する、PMTJOPTが決定される。前に説明されたように、かつ、本開示から当業者が理解するように、IP→APおよびIAP→Pのパラメータが大きすぎるPMTJを確立すると、大きなクラスタ状態の変化は迅速に達成され得るが、小さなクラスタ状態の変化は実現が難しくなり得る。IP→APおよびIAP→Pの代替的なパラメータ、およびこれらのパラメータを制御する態様が、後のセクションでさらに詳細に説明される。図3を参照すると、本概念に特有ではない不必要な複雑さをもたらさず、実施形態の説明に焦点を当てるために、RAPとRPのデフォルトの関係は、RAPがRPの2倍、すなわち、RAP2RPであるものとする。RAP2RPというこの例示的な関係は、述べられたように、この説明に焦点を当てるためのものに過ぎず、実施形態の範囲を何ら限定しない。それどころか、本開示を読むと、当業者は、説明された概念を、RAPとRPの他の比例関係を用いる例示的な実施形態の実施に、容易に適合させることができる。図3のN素子STTMTJクラスタセル300による1つの例示的なデバイスは、N素子STTMTJ直列クラスタ302の3素子STTMTJ直列クラスタの実装形態を用いて、4レベル、2ビットのメモリセルを実装することができる。そのような例では、上で述べられたようにRAP2RPと仮定すると、最小のRCLSTは3RPであり、3つすべてのSTTMTJ素子がP状態である時に起き、最大のRCLSTは6RPであり、3つすべてのSTTMTJ素子がAP状態である時に起きる。容易に理解されるように、S0クラスタ状態に対応するRCLSTの最小値は3RPであり、S3クラスタ状態によって表されるRCLSTは6RPである。S0クラスタ状態は、バイナリの00を表すように割り当てられてよく、S3クラスタ状態は、バイナリの11を表すように割り当てられてよい。S1クラスタ状態は、3つのSTTMTJ素子の1つがAP状態であり、残りの2つがP状態である任意のクラスタ状態として定義され得る。S1クラスタ状態は、バイナリの01を表すように割り当てられ得る。したがって、S1クラスタ状態に対応するRCLSTは、4RPである。最後に、S2クラスタ状態は、3つのSTTMTJ素子の2つがAP状態であり、残りの1つがP状態である任意のクラスタ状態として定義され得る。S2クラスタ状態は、バイナリの10を表すように割り当てられ得る。したがって、S2クラスタ状態に対応するRCLSTは、5RPである。クラスタ状態とMビットのバイナリ値との間の関係は、上で説明された例のように直接的なものには限定されないことが、理解されよう。例示すると、クラスタ状態S0が、バイナリの10を表すように割り当てられてよく、クラスタ状態S3が、バイナリの00を表すように割り当てられてよい。例示的な実施形態による、上で説明された例示的な4レベル、2ビットのメモリセルを含む、NビットSTTMTJクラスタセルの確率的なプログラミングの例示的な処理が、図4および本開示の他の箇所を参照して説明される。本開示から当業者が理解するように、図3のN素子STTMTJクラスタセル300の、上で説明された構成によって提供される、4レベル、2ビットのメモリセルは、クラスタを形成する3つのSTTMTJ素子への個々のアクセスを必要とすることなく、2ビットの記憶装置を提供するように構成され得る。たとえば3つのSTTMTJ素子という同じ例示的なSTTMTJ直列クラスタ302のトポロジーを用い得る、図3のN素子STTMTJクラスタセル300による別の例示的なデバイスは、4レベル、1ビットのエラー訂正セルを実装する。この4レベルのSTTMTJECCセルの例では、上で説明されたように、3RPという最小のRCLSTは、3つすべてのSTTMTJ素子がP状態にある時に起き、6RPという最大のRCLSTは、3つすべてのSTTMTJ素子がAP状態にある時に起きる。しかし、この例示的な4レベル、1ビットのSTTMTJECCセルでは、S0クラスタ状態とS1クラスタ状態の両方が0を表すように割り当てられてよく、S2クラスタ状態とS3クラスタ状態の両方が1を表すように割り当てられてよい。容易に諒解され得るように、上で説明された例の、4レベル、1ビットのECCSTTMTJクラスタが適切に機能するには、3つのSTTMTJ素子のうちの2つが正常にスイッチングするだけでよい。さらに、STTMTJ素子の3つすべてが正常にスイッチングしている場合、N1レベル電圧検出器314がS0クラスタ状態とS1クラスタ状態のいずれかを検出した時に、0の記憶は完了し、N1レベル電圧検出器314がS2クラスタ状態とS3クラスタ状態のいずれかを検出した時に、1の記憶は完了する。例示的な実施形態による、マルチレベル、1ビットのECCSTTMTJクラスタセルのための、N1レベル電圧検出器314は、従来のSTTMTJメモリの読取りに用いられるような、従来のバイナリ比較器であってよいことが理解されよう。さらに図3を参照すると、上で説明された例示的な動作は、図示されるような直列クラスタのトポロジーを利用するN素子STTMTJ直列クラスタ302を参照する。しかし、直列トポロジーは、例示的な実施形態によるマルチレベルSTTMTJクラスタの一例に過ぎない。SL線308へのイネーブルスイッチ354によってイネーブルされる、図示されるN素子STTMTJ並列クラスタ350は、代替的なSTTMTJクラスタトポロジーの一例である。N素子STTMTJ並列クラスタ350は、例示的な実施形態による繰返しプログラミングによって、N1個のレベルのいずれか、すなわち、点350Aと350Bとの間のN1個のクラスタ抵抗値を確立し得る、個々に3521、3522、352Nと名付けられるN個のSTTMTJ素子を含む。一態様では、N素子STTMTJ並列クラスタ350が、図3のマルチレベルSTTMTJクラスタセル300の中の、N素子STTMTJ直列クラスタ302を置き換えてもよい。別の態様では、N素子STTMTJ並列クラスタ350は、N素子STTMTJ直列クラスタ302と組み合わせて用いられてもよい。本開示の全体を読めば、N素子STTMTJ並列クラスタ350の確率的なプログラミングと、N素子STTMTJ直列クラスタ302の確率的なプログラミングとの比較から、差分が、時間に対するRCLSTとして、またはパルス数に対するRCLSTとして表され得ることを、当業者は理解するだろう。たとえば、N素子STTMTJ並列クラスタ350を、すべてP状態とすべてAP状態の一方から、すべてP状態とすべてAP状態の他方へ確率的にプログラムする場合に現れる、時間に対するRCLSTまたはパルス数に対するRCLSTには、N素子STTMTJ直列クラスタ302の同様の確率的なプログラミングの間に現れる、上記のようなRCLSTと比較して、差があり得る。これらの特性は、後のセクションでさらに詳細に説明される。図4は、本発明の様々な例示的な実施形態による、STTMTJクラスタメモリの1つの確率的なプログラミング400の流れ図である。概念を例示するために、図4の例400による処理が、図3の例示的なN素子STTMTJクラスタセル300を参照して説明される。理解されるように、これは例示を目的とするものに過ぎず、様々な例示的な実施形態による確率的なプログラミングが実施され得るSTTMTJクラスタのトポロジーの範囲に対する制限ではない。本開示から当業者が理解するように、図4の例示的な確率的なプログラミング400は反復性であり、プログラミングを完了するのに必要なループまたは繰返しの正確な数は、知ることができない。したがって、様々な実施形態による、STTMTJクラスタのプログラミングは、代替的に、たとえば、繰返しプログラミング、確率的なプログラミング、または、STTMTJクラスタの各STTMTJ素子のスイッチングが確率的であるので確率的なスイッチングと呼ばれ得る。簡潔にするために、この説明では確率的なプログラミングという用語を用いるが、この用語自体が、様々な実施形態のいずれかの範囲に、または実施形態の任意の態様に制限を設けるものではないことが、理解されよう。さらに、本開示から当業者が理解するように、プログラミングの完了に必要なループまたは繰返しの実際の数に関して確率的であっても、例示的な実施形態による確率的なプログラミングは、STTMTJクラスタの状態が、任意の所望のプログラミング終了点において収束に向かうように促す。収束の統計は、たとえば、特定の書込み電流パラメータを用いた、STTMTJクラスタの特定の構造の回路分析を通じて特徴付けられ得ることが、理解されよう。この特徴付けは、ある範囲のプログラミング条件、たとえばある範囲の書込み電流パラメータについて取得され得る。STTMTJクラスタの収束のそのような特徴付けを通じて、確率的なプログラミングを終了するためのタイムアウトを取得することができ、タイムアウトとは、それに達すると、ビットが正しくプログラムされる統計的な確率が所与のエラーレートを満たすことを意味する、繰返しの数である。STTMTJクラスタの収束の統計の特徴付けから決定されるタイムアウトは、次いで、プログラミング条件に特有の既知の値に、最大のビットエラーレートを制限するために利用され得る。加えて、タイムアウトは、プログラミング条件に特有の既知の値に、最大のプログラミング遅延を制限するために利用され得る。後のセクションでさらに詳細に説明される一態様では、所与のエラーレートを確実に満たすために必要なタイムアウトを最小化できる、N素子STTMTJクラスタのクラスタ状態収束の統計の最適化は、たとえば、書込み電流パラメータの選択を通じて得ることができる。ここで図4を参照すると、例示的な確率的なプログラミング400は、初期状態402から開始し得る。初期状態402はたとえば、例示的な実施形態による任意のN素子STTMTJクラスタの任意のクラスタ状態であってよく、そのクラスタ状態と関連付けられるすべてのRCSTを有する。一態様では、初期状態は、PCタイムアウトカウンタ320を0にリセットすることを含み、または仮定する。例示として、上で説明される例示的な4レベル3ビットの直列STTMTJメモリに対して、例示的な確率的なプログラミング400を実行する際、初期状態は、3つのSTTMTJ素子の1つがAP状態であり、残りの2つがP状態である、S1状態であってよい。前に説明されたRPとRAPの例示的な関係を用いると、クラスタ状態S1のRCSTは4RPである。404において書き込む値を受け取ると、処理は406に進み、そこでSTTMTJクラスタ350の読取りが実行される。406における読取りは、たとえば、PGC電流源310が読取り電流をSTTMTJクラスタ300に注入し、たとえば点302Aと302Bの1つにおける電圧を、参照電圧と比較することによって、実現され得る。図3の例示的なN素子STTMTJクラスタ300を参照すると、406における読取りは、N1レベル電圧検出器314が適切な読取り電流を注入し、次いで、得られた電圧を、MビットデータからN1レベルへの変換器318によって生成されたプログラミング目標電圧と比較することによって、実行され得る。406における上で説明された読取りに関して、たとえば、点302Aと302Bの1つにおける読取り電圧と参照電圧との比較は、N素子STTMTJクラスタのクラスタ状態を検出するための一例に過ぎないことが理解されよう。例示的な実施形態による1つの代替形態では、アナログデジタル変換器が、クラスタにおける電圧をデジタル値に変換し、次いで、デジタル値を目標のMビットデータと比較するために、提供され得る。さらに、一態様では、クラスタ状態の読取り感知は、406のような別個のステップを必要とするのではなく、414におけるプログラミング電流の印加と同時に実行されてもよく、これは以下でさらに詳細に説明される。同時の読取り書込みというこの態様を用いる、例示的な実施形態による確率的なプログラミングは、遅延および電力に関してプログラミングのオーバーヘッドを低減することができる。本開示で述べられる概念から、当業者は、同時の読取り書込みの態様を用いる例示的な実施形態に従って実施するための、説明された例に対する必要な修正を容易に識別し実施することができる。図4の参照を続けると、406における読取りの後、例示的な確率的なプログラミング400は、406における読取り値を差分ゼロ基準または他の所与の基準と比較する、ゼロ終了判定ブロック408に進み、上記の基準の例が以下で説明される。ゼロ終了判定ブロック408がはいを示す場合、処理は、書込み完了ブロック410に進み、初期状態402に戻ることで終了する。一態様では、ゼロ終了判定ブロック408によって適用される差分ゼロ基準は、クラスタ状態が目標クラスタ状態であることであり得る。別の態様では、差分ゼロ基準は、クラスタ状態が、目標クラスタ状態から所与の差以内にあることとして、定義され得る。たとえば、所与の抵抗値として目標クラスタ状態を特徴付ける場合、ゼロ終了判定ブロック408のための所与の基準は、所与の抵抗値に対する抵抗の範囲であってよい。加えて、設計の選択および具体的な用途に応じて、書込み完了ブロック410は、たとえば完了したばかりの書込み動作と関連付けられる別の処理リソースによって利用され得る、書込み完了またはプログラム完了信号を生成する、図3の例示的な確率的なプログラミングコントローラ312のようなコントローラを含み得る。理解されるように、ゼロ終了判定ブロック408に入った最初の時にはいとなる1つの場合は、N素子STTMTJクラスタがすでに、書き込まれるべきデータを表す状態にある場合であり得る。図4の参照を続けると、ゼロ終了判定ブロック408がいいえを示す場合、例示的な確率的なプログラミング400は、タイムアウト終了判定ブロック412に進むことができ、そこで、タイムアウトカウンタの値PCLOOPが所与のタイムアウトPCTMOUTと比較される。図4の確率的なプログラミング400によるこの例は、初期状態ブロック402から開始したので、ブロック412においてはタイムアウトにならない可能性が高い。次のループまたは繰返しにおいて、タイムアウト終了判定ブロック412がはいを示す場合、すなわち、PCLOOPがPCTMOUTに対する所与の関係の基準を満たす場合、処理は、書込み完了ブロック410に進み、初期状態402に戻ることによって終了する。設計の選択および具体的な用途に応じて、書込み完了ブロック410は、ゼロ終了判定ブロック408ではなくタイムアウト終了判定ブロック412からの入力に応答して、前に説明された書込み完了信号またはプログラム完了信号ではなく書込みタイムアウト信号を生成する、図3の例示的な確率的なプログラミングコントローラ312のようなコントローラを含み得る。書込みタイムアウト信号、またはその等価物は、たとえば、タイムアウトになった書込み動作を繰り返すために利用されてもよいことが、考慮される。書込みタイムアウト信号またはその等価物は、たとえば、プログラミング動作が目標の状態に達していないことを示すフラグビットを設定するために利用されてもよく、それによって追加のエラー処理手順を可能にすることが、さらに考慮される。さらに図4を参照すると、タイムアウト終了判定ブロック412がいいえを示す場合、処理は414へ進み、最初の適切なプログラミング電流パルスを、または現在のループが繰返しのループである場合には別の適切なプログラミング電流パルスを、印加または注入し、次いで416へ進みPCLOOPをインクリメントする。ブロック414は、たとえば、PGC源310とイネーブルスイッチ306の1つまたは両方を制御するPPGコントローラ312によって、実行され得る。一態様では、ブロック414は、全範囲の状態遷移にわたって、クラスタ状態が目標クラスタ状態に収束するのに必要な平均のPCが最も小さくなるように、演繹的に最適化されたパラメータを有するIP→APおよびIAP→Pを加える。別の態様では、ブロック414は、ブロック408において実行される比較に従って、IP→APまたはIAP→Pの1つまたは複数のパラメータを調整するための、たとえば参照テーブルを介して構成されている、PGC源310とPPGコントローラ312の1つまたは両方を含み得る。ブロック414においてIP→APまたはIAP→Pを加え、416においてPCを増加させた後で、確率的なプログラミング400はブロック406へ進み、クラスタ状態の更新された読取り値を得て、終了条件が判定ブロック408と412の1つにおいて検出されるまで、図示され上で説明されたループを繰り返す。最適なPMTJを選択するための例示的な処理および技法が、ここで説明される。本開示から当業者が理解するように、最適なPMTJが選択されると、プログラミング電流のパラメータを、たとえばこれらのパラメータに対するPMTJについてのSTTMTJ素子特性のシミュレーションを用いて、決定することができる。まず、PMTJを最適化するための例示的な処理および技法の説明に用いられる用語が、ここで定義される。これらの用語自体は、本明細書で定義される意味のみを有する記号であり、本来の意味を全く有さず、別段述べられない限り、この説明以外で現れる同一または同様の用語を指すこと、またはそれらを包含することは何ら意図されないことが、理解されよう。変数Nは、プログラムされているSTTMTJクラスタ中のSTTMTJ素子の数である。図3の例示的なマルチレベルSTTMTJクラスタセル300の、直列のN素子STTMTJクラスタ302を参照すると、Nは値Nである。変数λは、クラスタ状態の遷移のためにスイッチングされる、STTMTJ素子の数である。たとえば、図3の例示的なN素子STTMTJ直列クラスタ302に従って配置され、STTMTJ素子の3つすべてがP状態であるS0クラスタ状態から、3つのSTTMTJ素子のうち2つがAP状態であるS2クラスタ状態にスイッチングする、上で説明された例示的な4レベル3ビットの直列STTMTJメモリは、2つのSTTMTJ素子がP状態からAP状態にスイッチングされる必要がある。したがって、この例においてλの値は2である。λNは、クラスタ中のすべてのSTTMTJがスイッチングされる必要がある、クラスタ状態の遷移を表すことが理解されよう。本開示から当業者が容易に理解するように、PMTJが低い場合、目標クラスタ状態への収束に必要な平均PCの観点で最悪の場合の状態遷移は、λN、すなわち、STTMTJクラスタ中のすべてのSTTMTJ素子をスイッチングする必要がある状態遷移である。当業者が同様に理解するように、PMTJが高い場合、最悪の場合の状態遷移は、λ1、すなわち、STTMTJクラスタ中のSTTMTJ素子の1つしかスイッチングを必要としない状態遷移である。さらなる用語がここで定義される。pτは、選択された振幅およびτというパルス幅を有するプログラミングパルスを加えた時の、STTMTJのスイッチングの確率である。は、λ個のSTTMTJをスイッチングする必要がある状態遷移の、プログラミングの繰返しの平均の数である。は、λ個のSTTMTJをスイッチングする必要がある状態遷移の、平均のプログラミング時間を示す。単一のSTTMTJしかない場合であるN1では、前述の確率的なプログラミングの平均のプログラミングの繰返しおよび遅延は、以下のように表され得る。ここで、は、確率的なプログラミングによって達成できる最小の平均プログラミング遅延を表し、これは、従来の決定論的なプログラミングによって実現できる最小の平均プログラミング遅延よりも、はるかに小さい。pτの背後にある詳細な物理特性に関係なく、本開示を読んだ後に当業者によって容易に生成される、具体的な製造プロセスに対するSTTMTJスイッチング特性グラフは、この最小平均プログラミング遅延が、以下の関係によって、PMTJが約632の場合の遅延であることを示す。N2M1のMビットのマルチレベルセルプログラミングの場合、平均のプログラミングの繰返し数および平均プログラミング遅延に関して、以下の関係がある。ここで、γM≒M0866である。例示的な実施形態の考えられる適用例は、プログラミングコスト、たとえば記憶動作の実行に必要であるクロックサイクルの数が最小になる適用例を含む。例示的な実施形態による確率的なプログラミングは、λの全範囲にわたって、最小の平均PCを得る値を最適なPMTJとして選択することによって、この目的を満たすように構成され得る。一態様では、最小の平均PCという目的に従って最適化されるPMTJ値は、たとえば、モンテカルロシミュレーションを通じて得ることができる。適切なモンテカルロシミュレーションは、HSPICEまたは同等のもののような、市販のシミュレーションシステムを用いて実行することができる。当業者は、本開示を考慮して、過度の実験を伴わずに、HSPICEのようなシミュレーションシステムで、必要な回路およびデバイスのモデルを容易に実装し、最適な平均PCを得るように最適化されたPMTJ値を特定することができる。単独で、または上で説明されたモンテカルロシミュレーションとともに、所望のクラスタ状態に収束するのに必要な最小の平均PCを与え得る、またはそのようなPCを少なくとも指し得る、PMTJに対する1つの経験的な式は、以下の通りである。広く経験的に観測されたクラスタトポロジーの範囲にわたって、かつ、すべてのモデル化された状態遷移にわたって、すなわちλの全範囲にわたって、対応する最小の平均PCを示す1つの経験的な式が、以下のように表され得る。図5は、図3のSTTMTJクラスタメモリセル300のN素子STTMTJ直列クラスタ302のような直列のクラスタトポロジーを有する、モデル化された3素子、4レベルのSTTMTJクラスタで用いられるPMTJの値の範囲を表す横軸502を有する、シミュレーション結果500である。縦軸504は、目標状態への収束に必要な平均PCのシミュレーション結果である。プロット線506は、特定のPMTJに対してλ個のクラスタ状態の遷移が用いられる、シミュレーションされた最悪の場合の平均PCを、PMTJに対して示すものであり、上記の最悪の場合のクラスタ状態の遷移とは、言い換えると、PMTJが0に近い場合には、STTMTJ素子の3つすべてをPAP状態にスイッチングする必要があるクラスタ状態の遷移であり、PMTJが100に近い場合には、λ1のクラスタ状態遷移である。プロット線510は、シミュレーションされたすべての状態遷移λの平均PCを、PMTJに対して示すものであり、すべての状態遷移とは、言い換えると、STTMTJ素子の1つ、2つ、または3つをPAP状態へスイッチングする必要があるすべてのクラスタ状態遷移である。PMTJOPTという名前の重畳されたマーカー512は、上の経験的な式から得られるPMTJOPTの値である。見るとわかるように、シミュレーション結果と経験的な式は一致する。図6は、1つまたは複数の例示的な実施形態による、確率的にプログラムされるSTTMTJクラスタメモリのための、1つの例示的なハイブリッド直列並列STTMTJクラスタ600を示す。図6の例示的なハイブリッド直列並列STTMTJクラスタ600は、N個の並列トポロジーのSTTMTJクラスタ6021、602Nの直列結合を含み、各並列トポロジーのSTTMTJクラスタ602は、T個の並列のSTTMTJ素子60201、6020Tを有する。図7は、1つまたは複数の例示的な実施形態による、確率的にプログラムされるSTTMTJクラスタメモリの、1つの例示的なハイブリッド並列直列STTMTJクラスタ700を示す。図7の例示的なハイブリッド並列直列STTMTJクラスタ700は、N個の直列トポロジーのSTTMTJクラスタ7021、702Nの並列結合を含み、各直列トポロジーのSTTMTJクラスタ702xは、V個の直列のSTTMTJ素子70201、70202、7020Vを有する。図8は、3素子、4レベルのSTTMTJ直列クラスタ802で形成される1つの例示的なMRAMアレイ800を示し、STTMTJ直列クラスタ802は各々が、図3の例示的なマルチレベルSTTMTJクラスタメモリ300のN素子STTMTJ直列クラスタ302のような、3つの直列に結合されたSTTMTJ素子80201、80202および80203という、8020として拡大図で示されるトポロジーを有する。図9は、3素子、4レベルのSTTMTJ並列クラスタ902で形成される1つの例示的なMRAMアレイ900を示し、STTMTJ並列クラスタ902は各々が、図3の例示的なマルチレベルSTTMTJクラスタメモリ300のN素子STTMTJ並列クラスタ350のような、3つの並列に結合されたSTTMTJ素子90201、90202および90203という、9020として拡大図で示されるトポロジーを有する。図10は、1つまたは複数の例示的な実施形態による、確率的にプログラムされるSTTMTJクラスタメモリのための、配線された相互接続直列STTMTJクラスタ1000の、断面図の一例を示す。図10の断面図は、図が示す新規の概念を不明瞭にするのを避けるために、実施形態に特有ではないSTTMTJ素子の構造的特徴を省略し、代わりに、図示される概念の任意の1つまたは複数を具現化するSTTMTJクラスタを、STTMTJの設計および製造に関する当業者が設計し、製造し、検査できるようにするのに十分詳細に、構造的特徴を示すことが理解されよう。図10を参照すると、STTMTJクラスタ1000は、N個のSTTMTJ素子10021、10022、1002Nを形成する。各STTMTJ素子1002xは、下部接続層1006と上部接続層1010との間に、固定層1018、接合層1016、およびフリー層1014がある、STTMTJ積層であってよい。最も左側のSTTMTJ素子10021は、絶縁体1004と素子内部の絶縁体1012との間に、STTMTJ積層を有する。他のSTTMTJ素子は、複数の絶縁体1012の間に対応するSTTMTJ積層を有する。垂直方向の接続層1008は、各STTMTJ素子1002xを、隣のSTTMTJ素子1002xと直列に接続する。配線された相互接続直列STTMTJクラスタ1000は、接続層1008が素子と素子の間の接続を形成するので、配線されたと呼ばれる。一態様では、例1000のような配線された相互接続直列STTMTJクラスタは、たとえば、図3の例示的なマルチレベルSTTMTJクラスタメモリ300のN素子STTMTJ直列クラスタ302として、用いられ得る。例を示すと、最も右端のSTTMTJ素子1002Nの上部接続層1010はビット線BLに接続され、一方最も左端のSTTMTJ素子10021の下部接続層1006は、例示的なイネーブルスイッチ1020を通じてソース線SLに接続される。図11は、1つまたは複数の例示的な実施形態による、確率的にプログラムされるSTTMTJクラスタメモリのための、配線された積層相互接続直列STTMTJクラスタ1100の、断面図の一例を示す。図11の断面図は、図が示す新規の概念を不明瞭にするのを避けるために、実施形態に特有ではないSTTMTJ素子の構造的特徴を省略し、代わりに、図示される概念の任意の1つまたは複数を具現化するSTTMTJクラスタを、STTMTJの設計および製造に関する当業者が設計し、製造し、検査できるようにするのに十分詳細に、構造的特徴を示すことが理解されよう。図11を参照すると、配線された積層相互接続直列STTMTJクラスタ1100は、N個のSTTMTJ素子11021、11022、1102Nの積層を有する。各STTMTJ素子1102xは、2つの絶縁体1106の間で、固定層1108、接合層1112、およびフリー層1110というSTTMTJ積層がその上に形成される、下部接続層1104で形成される。配線された積層相互接続直列STTMTJクラスタ1100は、下部接続層1104が素子と素子の間の接続を形成するので、配線されたと呼ばれる。この例では、最下部のSTTMTJ素子11021の下部接続層1104は、イネーブルスイッチ1120を通じてソース線に接続される。最上部のSTTMTJ素子1102Nは、ビット線BLに接続するように示される上部接続層1112を有する。図12は、1つまたは複数の例示的な実施形態による、確率的にプログラムされるSTTMTJクラスタメモリのための、隣接並列STTMTJクラスタ1200の、断面図の一例を示す。図12の断面図は、図が示す新規の概念を不明瞭にするのを避けるために、実施形態に特有ではないSTTMTJ素子の構造的特徴を省略し、代わりに、図示される概念の任意の1つまたは複数を具現化するSTTMTJクラスタを、STTMTJの設計および製造に関する当業者が設計し、製造し、検査できるようにするのに十分詳細に、構造的特徴を示すことが理解されよう。図12を参照すると、隣接並列STTMTJクラスタ1200は、機械的に隣接して形成されるN個のSTTMTJ素子12021、12022、1202Nで形成される。各STTMTJ素子1202xは、その下端または基部において、クラスタ全体にわたる接続層1204へ結合する。各STTMTJ素子1202xは、下部接続層1204に接触する固定層1210、固定層1210の上の接合層1212、および接合層1212の上のフリー層1214の積層で形成される。絶縁体1208は、隣接するSTTMTJ素子1202xを分離する。上部接続層1206は、各々のSTTMTJ素子1202のフリー層1214に接触する、クラスタ全体の最上部にわたる。この例では、下部接続層1204は、イネーブルスイッチ1220を通じてソース線に接続されるように示され、上部接続層1206は、ビット線BLに接続されるように示される。一態様では、例1200のような隣接並列STTMTJクラスタは、たとえば、図3の例示的なマルチレベルSTTMTJクラスタメモリ300の中の1つの代替的なSTTMTJクラスタとして示される、N素子STTMTJ並列クラスタ350として用いられ得る。図13は、1つまたは複数の例示的な実施形態による、確率的にプログラムされるSTTMTJクラスタメモリのための、積層直列並列ハイブリッドSTTMTJクラスタ1300の、断面図の一例を示す。図13の断面図は、図が示す新規の概念を不明瞭にするのを避けるために、実施形態に特有ではないSTTMTJ素子の構造的特徴を省略し、代わりに、図示される概念の任意の1つまたは複数を具現化するSTTMTJクラスタを、STTMTJの設計および製造に関する当業者が設計し、製造し、検査できるようにするのに十分詳細に、構造的特徴を示すことが理解されよう。図13を参照すると、積層直列並列ハイブリッドSTTMTJクラスタ1300は、N個の隣接並列STTMTJクラスタ13021、13022、1302Nの積層を含む。一態様では、隣接並列クラスタ1302xの各々は、最下部の並列STTMTJクラスタ13021を除くすべての並列STTMTJクラスタの下部接続層1304が、その下のSTTMTJクラスタ1302xの上部接続層として動作し、最上部の並列STTMTJクラスタ1302Nのみが上部接続層1306を有するという点を除いて、図12の隣接並列STTMTJクラスタ1200に従ったものであってよい。一態様では、例1300のような積層隣接並列STTMTJクラスタは、たとえば、図6の例示的な直列並列ハイブリッドSTTMTJクラスタ600として用いられ得る。図14は、確率的にプログラムされるN素子STTMTJクラスタをシナプスとして利用する、1つの例示的な実施形態による、STTMTJニューラルネットワーク1400の代表的な部分を示す。STTMTJニューラルネットワーク1400は基本的に、i個の軸索の行14101、14102、1410iと、1404jおよび1404j1が示されるj個の樹状突起の列と、STTMTJクラスタ1402でできたkビットのMLCシナプスとを有するシステムの、i×j×kのマトリックスを表す。STTMTJクラスタ1402は、たとえば、図3の例示的なN素子STTMTJクラスタセル300を用いて実装されてよく、STTMTJ素子の数Nは2k1である。図4を参照して説明されたように、STTMTJクラスタ1402の確率的なプログラミングを用いて、任意のi×j×kのマトリックスの状態が学習され得る。様々な例示的な実施形態によるSTTMTJクラスタは、シナプスが脳の中でどのように機能するかを忠実に模擬する、確率的なスイッチングの性質によって、まさしく、ニューラルネットワークにおけるシナプスの役割に自然に適合する。このSTTMTJニューラルネットワーク1400の1つのさらなる利点は、最小のIOで最大のプログラム可能性を実現でき、確率的なSTTMTJクラスタのプログラミングによって可能になる高速なプログラミング速度を、低電力という点で高性能に達成できることである。ニューラルネットワークの当業者により知られているように、実際の生物学的なニューラルネットワークにおいては、刺激はシナプスを通じて軸索から樹状突起に伝えられる。シナプスを通る刺激が多くなると、全般にシナプスの伝導性が高くなる可能性が高くなり、一方、刺激が実際には阻害剤である場合、伝導性は低くなる。例示的な実施形態によるSTTMTJの確率的なスイッチングによって、STTMTJクラスタが、人工的なニューラルネットワークにおいてシナプスとして用いられるのにまさに適当なものになることが、当業者には理解されよう。一例として、図3の例示的なN素子STTMTJクラスタセル300のPPGコントローラ312の小さな修正によって、STTMTJクラスタへ連続的なパルスが与えられ得る。パルスが進むにつれて、さらに多くのSTTMTJが、確率的なプログラミング電流の方向に応じて、PからAP、またはAPからPのいずれかの方向にスイッチングする。そして、このスイッチングは、さらに高い伝導性に対応し、さらに低い伝導性に対応する。したがって、神経の刺激を模擬する確率的なプログラミング電流パルスを用いて、生体的なメモリを形成するニューラルネットワークにおいて、シナプスの結合を強くすることができる。さらなる利点として、逆方向のプログラミング電流パルスを用いて、シナプスの結合を弱めて、生体的なメモリを消去し、または阻害剤の効果の模擬することができ、これは学習に大きく関連し得る。例示的な実施形態による、確率的にプログラム可能なSTTMTJクラスタを有するニューラルネットワークを実施する際、パルス数またはプログラミングの長さに対するクラスタ抵抗、すなわちRCLSTの変化の線形性を、特徴付けるとともに増加または減少させることが望まれ得る。このことの実行に加えて、すべてPからすべてAPにスイッチングするように確率的にプログラムされている直列トポロジーのN素子STTMTJクラスタについて、所与のクラスタ状態におけるクラスタ抵抗RCLSTは、以下のように表され得る。ここで、は、AP状態の各STTMTJ素子の抵抗であり、は、P状態の各STTMTJ素子の抵抗であり、NはSTTMTJ素子の数であり、xはAP状態のSTTMTJ素子の数である。直列トポロジーのSTTMTJクラスタがPからAPにスイッチングされている間の、各STTMTJ素子がPからAPにスイッチングしたことによるRCLSTの変化を意味する、RCLSTのデルタ変化は、以下のように表され得る。N素子の直列トポロジーのSTTMTJクラスタを、すべてAPからすべてPにスイッチングする際の、クラスタ抵抗およびクラスタ抵抗のデルタ変化は、上の特性と同様である。しかし、例示的な実施形態による確率的なプログラミングは、単位時間あたり一定の数のSTTMTJ素子のスイッチングを引き起こさない。したがって、上で説明されたように、N素子STTMTJクラスタの実際の確率的なプログラミングにおいて、何らかの非線形性が示され得る。すべてPからすべてAPへスイッチングするように確率的にプログラムされている、並列トポロジーのm素子STTMTJクラスタについて、x個のSTTMTJがAP状態である所与のクラスタ状態におけるクラスタ抵抗RCLSTが、以下のように表され得ることにも、留意することができる。並列トポロジーのSTTMTJクラスタがすべてPからすべてAPにスイッチングされている間の、並列トポロジーのm素子STTMTJクラスタの各STTMTJ素子がPからAPにスイッチングしたことによるRCLSTの変化を意味する、RCLSTのデルタ変化は、以下のように表され得る。容易にわかるように、このデルタは、並列トポロジーのSTTMTJクラスタがすべてPからすべてAPにスイッチングされている時は、線形ではない。すべてAPからすべてPへスイッチングするように確率的にプログラムされている、並列トポロジーのm素子STTMTJクラスタについて、x個のSTTMTJがP状態である所与のクラスタ状態におけるクラスタ抵抗RCLSTは、以下のように表され得る。並列トポロジーのSTTMTJクラスタがAPからPにスイッチングされている間の、並列トポロジーのm素子STTMTJクラスタの各STTMTJ素子がAPからPにスイッチングしたことによるRCLSTの変化を意味する、RCLSTのデルタ変化は、以下のように表され得る。図6の例600のような、直列並列ハイブリッドトポロジーの複数素子STTMTJクラスタ、または、図7の例700のような並列直列ハイブリッドトポロジーの複数素子STTMTJクラスタ、またはこれら両方の組合せを利用することで、線形特性の選択および修正を実現できることを、当業者は本開示から諒解するだろう。図15は、1つまたは複数の例示的な実施形態によるワイヤレス電話のような、電子デバイス1500の機能ブロック図である。デバイス1500は、確率的にプログラムされるマルチレベルメモリ回路、たとえば、別のメモリ1506に結合され得るデジタルシグナルプロセッサ1504のようなプロセッサまたは処理ユニットに結合される、N素子STTMTJメモリ回路1502を含み得る。1つの説明のための例では、確率的にプログラムされるN素子STTMTJクラスタメモリ回路1502は、図3を参照して説明されたN素子STTMTJクラスタメモリセル300、または1つの代替手段として、図8を参照して説明されたような3素子、4レベルのSTTMTJ直列クラスタ802を有するMRAMアレイ800、または別の代替手段として、図9を参照して説明されたような3素子、4レベルのSTTMTJ並列クラスタ902を有するMRAMアレイ900、または別の代替手段ではこれらの任意の組合せのような、装置を含み得る。さらに図15を参照すると、電子デバイス1500は、DSP1504およびディスプレイ1510に結合される、ディスプレイコントローラ1508を有し得る。加えて、コーダデコーダ1512が、DSP1504、スピーカ1536、およびマイクロフォン1538に結合され得る。ワイヤレスコントローラ1518が、デジタルシグナルプロセッサ1504およびワイヤレスアンテナ1520に結合され得る。ある特定の実施形態では、DSP1504、メモリ1506、ディスプレイコントローラ1508、確率的にプログラムされるマルチレベルSTTMTJクラスタメモリ回路1502、コーデック1512、およびワイヤレスコントローラ1518は、システムインパッケージまたはシステムオンチップ1522に含まれる。ある特定の実施形態では、入力デバイス1530および電源1544が、SOC1522に結合される。その上、図15に示されるように、一態様では、ディスプレイ1510、入力デバイス1530、スピーカ1536、マイクロフォン1538、ワイヤレスアンテナ1520、および電源1544が、SOC1522の外部にあってよい。しかし、これらの各々は、たとえばインターフェースまたはコントローラを通じて、SOC1522の1つまたは複数のコンポーネントに結合され得る。図16は、本開示の1つまたは複数の実施形態が有利に利用され得る、例示的なワイヤレス通信システム1600を示す。説明のために、図16は、3つの遠隔ユニット1620、1630、1650および2つの基地局1640を示す。従来のワイヤレス通信システムは、これより多くの遠隔ユニットおよび基地局を有し得ることが理解されよう。遠隔ユニット1620、1630、および1650は、集積回路または他の半導体デバイス1625、1635、および1655を含み、これらは以下でさらに論じられるような本開示の実施形態の一部である。図16は、基地局1640から遠隔ユニット1620、1630、1650への順方向リンク信号1680、および遠隔ユニット1620、1630、1650から基地局1640への逆方向リンク信号1690を示す。図16では、遠隔ユニット1620は携帯電話として示され、遠隔ユニット1630は可搬型コンピュータとして示され、遠隔ユニット1650はワイヤレスローカルループシステム中の固定位置の遠隔ユニットとして示されている。たとえば、遠隔ユニットは、携帯電話、ハンドヘルドパーソナル通信システムユニット、携帯情報端末のようなポータブルデータユニット、ナビゲーションデバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、メータ読取り機器のような固定位置のデータユニット、またはデータもしくはコンピュータ命令の記憶もしくは取り出しを行う任意の他のデバイス、またはそれらの任意の組合せのうちの、任意の1つまたは組合せであってよい。図16は、本開示の教示に従った遠隔ユニットを示すが、本開示は、これらの例示的な示されたユニットには限定されない。本開示の実施形態は、試験および特性評価のための、メモリおよびオンチップ回路を含む能動的な集積回路を含む、任意のデバイスにおいて適切に利用され得る。前述の開示されたデバイスおよび機能は、コンピュータ可読媒体に記憶されるコンピュータファイルになるように、設計かつ構成され得る。そのようなファイルの一部またはすべてが、そのようなファイルに基づいてデバイスを製造する製造担当者に与えられ得る。得られた製品は、次いで半導体ダイに切断され半導体チップにパッケージングされる、半導体ウェハを含む。そして、このチップが、上で説明されたデバイスで利用される。上記の開示は本発明の例示的な実施形態を示すが、添付の特許請求の範囲によって規定される本発明の範囲から逸脱することなく、本明細書において様々な変更および修正を行えることに留意されたい。本明細書で説明した本発明の実施形態による方法クレームの機能、ステップおよびまたはアクションは、特定の順序で実行されなくてもよい。さらに、本発明の要素は、単数形で説明または特許請求されていることがあるが、単数形に限定することが明示的に述べられていない限り、複数形が企図される。