(57)【要約】【課題】  欠陥のあるメモリセルを高抵抗状態または抵抗状態に固定するハード障害による不具合を回避する。【解決手段】  メモリセルのアレイ２８と、メモリセルのアレイ２８のメモリセル３２に書き込むように構成された書込み回路３０と、データを受信し、メモリセルのアレイ２８の障害パターン１１０および１３２に一致するコード化された受信データ１３０を供給し、コード化された受信データ１３０をメモリセルのアレイ２８の障害パターン１１０および１３２の障害アドレス１０８に書き込ませるために書込み回路３０を制御するよう構成された制御回路２４とを含んでなるメモリシステム２０を提供する。【選択図】        図１
2004362587.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルのアレイと、
該メモリセルのアレイのメモリセルに書き込むように構成された書込み回路と、
データを受信し、前記メモリセルのアレイ中の障害パターンに一致するコード化された受信データを供給し、前記メモリセルのアレイの前記障害パターンの障害アドレスに前記コード化された受信データを書き込むために前記書込み回路を制御するよう構成された制御回路と
を含んでなるメモリシステム。
【請求項２】
前記制御回路は、前記受信データと、再構成された受信データと、数学演算によりコード化された前記受信データと、反転された前記受信データと、畳み込み処理された前記受信データとを含むグループのうちの少なくとも１つを含む、コード化された受信データを提供するよう構成されている請求項１に記載のメモリシステム。
【請求項３】
前記障害パターンは、前記メモリセルのアレイの障害マップに格納され、前記コード化された受信データが前記メモリセルのアレイの前記障害パターンの前記障害アドレスに書き込まれると、前記障害パターンは使用されたものとしてマークされるものである請求項１に記載のメモリシステム。
【請求項４】
前記制御回路は、コード化情報を含む前記コード化された受信データを前記メモリセルのアレイの前記障害パターンの前記障害アドレスに書き込む前記書込み回路に、該コード化情報を提供するよう構成されている請求項１に記載のメモリシステム。
【請求項５】
前記制御回路は、前記受信データを書き込むための書込みアドレスを受信し、前記コード化された受信データを前記障害アドレスに書き込むように前記書込み回路を制御し、前記書込みアドレスが前記障害アドレスに一致することを示すためにアドレスマップに書き込むように構成されている請求項１に記載のメモリシステム。
【請求項６】
前記メモリセルのアレイの前記メモリセルを読み出すように構成された読出し回路を含んでおり、前記制御回路は、読出しアドレスを受信し、該読出しアドレスと対応する障害アドレスとを調べ、前記メモリセルのアレイの該対応する障害アドレスにおいて読み出すように前記読出し回路を制御し、前記メモリセルのアレイからコード化情報を含む前記コード化された受信データを受信し、該コード化情報を使用して前記コード化された受信データをデコードして前記受信データを取得するよう構成されている請求項１に記載のメモリシステム。
【請求項７】
データを受信するステップと、
該受信したデータを、前記メモリのあるセクションにあるハード障害に一致させるステップと、
一致した前記受信したデータを前記メモリの前記セクションに書き込むステップと
を含んでなる、メモリにデータを格納する方法。
【請求項８】
前記受信データが前記ハード障害にどのように一致したかを示すコード化情報を提供するステップと、
該コード化情報を前記メモリへと書き込むステップと
を含む請求項７に記載の方法。
【請求項９】
書込みアドレスを受信するステップと、
一致した前記受信データを、前記メモリにおける前記セクションの位置を示す障害アドレスに書き込むステップと、
前記書込みアドレスが前記障害アドレスに対応することを示すようにアドレスマップに書き込むステップと
を含む請求項７に記載の方法。
【請求項１０】
読出しアドレスを受信するステップと、
アドレスマップにおいて、該読出しアドレスと対応するアドレスとを調べるステップと、
一致した前記受信データを取得するために、前記対応するアドレスにおいて前記メモリを読み出すステップと、
コード化情報を読み出すステップと、
前記受信データを取得するために、該コード化情報を使用して、一致した前記受信データをデコードするステップと
を含む請求項７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステムに関する。
【背景技術】
【０００２】
メモリシステムは、揮発性メモリと不揮発性メモリとを含みうる。揮発性メモリは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）とスタティックランダムアクセスメモリ（ＳＲＡＭ）とを含む。不揮発性メモリは、消去可能なプログラマブルリードオンリメモリ（ＥＰＲＯＭ）と、電気的に消去可能なプログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）と、ＦＬＡＳＨ  ＥＥＰＲＯＭメモリ等の再プログラム可能なメモリとを含む。
【０００３】
本技術分野において知られている別のタイプの不揮発性の再プログラム可能なメモリには、磁気メモリセルがある。磁気ランダムアクセスメモリ（ＭＲＡＭ）デバイスとして知られるこれらのデバイスは、磁気メモリセルのアレイを含む。磁気メモリセルは、様々なタイプのものでありうる。たとえば、メモリセルは、磁気トンネル接合（magnetic tunnel junction：以下、「ＭＴＪ」とよぶ）メモリセルであっても、巨大磁気抵抗（giant magnetoresistive:以下、「ＧＭＲ」とよぶ）メモリセルであってもよい。
【０００４】
概して、磁気メモリセルは、磁化の向きが変更可能である磁性膜の層と、磁化の向きが特定の方向に固定され、すなわち「ピン留めされ（pinned）」得る磁性膜の層とを含む。変更可能な磁化を有する磁性膜をセンス層またはデータ格納層と呼び、固定された磁性膜をリファレンス層またはピン留め層と呼ぶ。ＭＴＪメモリセルでは、障壁層がセンス層とリファレンス層とを分離する。
【０００５】
メモリセルのアレイにわたって、ワード線およびビット線と呼ばれる導電トレースをルーティングする。ワード線はメモリセルの行に沿って延在し、ビット線はメモリセルの列に沿って延在する。センス層のワード線とビット線との各交差点における磁化の向きとして、１ビットの情報をメモリセルに格納する。センス層における磁化の向きは、その容易軸と呼ばれるセンス層の軸に沿って整列する。磁化の向きは、困難軸と呼ばれる容易軸に対して直交する軸に沿っては容易に整列しない。磁界を印加することにより、センス層における磁化の向きをその容易軸に沿って、リファレンス層における磁化の向きに対して平行または逆平行のいずれかの向きに反転させる。
【０００６】
一構成では、ワード線とビット線とを、メモリセルのアレイに亙ってルーティングすることにより、センス層における磁化の向きを反転するのを助ける。ワード線は、センス層の近くでメモリセルの行に沿って延在する。ビット線は、リファレンス層の近くでメモリセルの列に沿って延在する。ワード線およびビット線は、書込み回路に電気的に結合される。
【０００７】
書込み動作中、書込み回路は、導体交差点に位置するメモリセルのセンス層における磁化の向きを変更するように、１つのワード線および１つのビット線を選択する。書込み回路は、選択されたワード線およびビット線に書込み電流を供給することにより、選択されたメモリセルに磁界をもたらす。いくつかの磁界が、選択されたメモリセルにおいて磁化の向きを設定するかまたは切り替えるように結合する。
【０００８】
メモリセル内の抵抗は、センス層とリファレンス層との磁化の平行または逆平行な向きによって異なる。抵抗は、向きが逆平行である場合に最高でありそれを論理「１」状態と呼ぶことができ、向きが平行である場合に最低でありそれを論理「０」状態と呼ぶことができる。メモリセル内の抵抗を検知することにより、メモリセルの抵抗状態を確定することができる。
【０００９】
ワード線とビット線とは、メモリセル内の抵抗を検知するのを助ける。行に沿って延在するワード線はセンス層に電気的に結合され、列に沿って延在するビット線はリファレンス層に電気的に結合される。ワード線とビット線とは、メモリセル内の抵抗およびメモリセルの状態を検知するために読出し回路にも電気的に結合される。
【００１０】
読出し動作中、読出し回路は、導体交差点に位置するメモリセルの抵抗を検知するように１つのワード線と１つのビット線とを選択する。読出し回路は、選択されたメモリセルの両端に電圧を供給することにより、メモリセル内に電流を生成することができる。メモリセル内の電流は、メモリセル内の抵抗に比例しており、それを使用して高抵抗状態と低抵抗状態とを区別する。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
磁気メモリは、一般に信頼性が高いが、メモリセルの両方の抵抗状態でデータを格納する能力に影響を与える障害が発生する可能性がある。たとえば、欠陥のあるメモリセルを高抵抗状態または低抵抗状態に固定する障害（fault）が発生する。固定状態を有する欠陥のあるメモリセルをハード障害（hard fault）と呼ぶ。
【００１２】
ハード障害は、メモリセルの物理的障害を含む。メモリデバイス内の物理的障害は、製造時の欠陥およびデバイスの老朽化を含む多くの原因からもたらされる可能性がある。障害メカニズムは、短絡メモリセルおよび開放メモリセルを含む多くの形態をとる。短絡メモリセルは、期待されるよりもかなり低い抵抗値を有する。開放メモリセルは、期待されるよりもかなり高い抵抗値を有する。短絡メモリセルおよび開放メモリセルは、同じ行および同じ列にある他のメモリセルに影響を与える可能性がある。
【００１３】
ハード障害により、メモリセルの両抵抗状態でデータを格納する能力が制限される。ハード障害によって影響を受けるメモリセルは使用することができない。メモリセルを使用しないことによって、データを格納するために利用可能なメモリセルの数が減少し、各ビットの格納コストが増加する。
【課題を解決するための手段】
【００１４】
本発明の実施形態ではメモリシステムを提供する。一実施形態において、メモリシステムは、メモリセルのアレイと、メモリセルのアレイのメモリセルに書き込むように構成された書込み回路と、制御回路とを含んでなる。制御回路は、データを受信し、コード化された受信データをメモリセルのアレイの障害パターンと一致するように提供し、コード化された受信データをメモリセルのアレイの障害パターンの障害アドレスへと書き込ませるために書込み回路を制御するよう構成されている。
【００１５】
本発明の実施形態は、以下の図面を参照してより理解される。図面の要素は、必ずしも互いに一定の比率で縮小されていない。同じ参照番号は対応する同様の部分を示している。
【発明を実施するための最良の形態】
【００１６】
図１は、本発明の実施形態によるメモリシステム２０の例示的な実施形態を示す図である。メモリシステム２０は、磁気メモリ２２と、制御回路２４と、２６に示すＥＥＰＲＯＭ等の不揮発性メモリとを含む。磁気メモリ２２は、メモリセルアレイ２８と、３０に示す読出し／書込み回路とを含む。メモリセルアレイ２８は、磁気メモリセル３２を含む磁気メモリセルアレイである。アレイ２８は、読出し回路と書込み回路とを含む読出し／書込み回路３０に結合されている。制御回路２４は、読出し／書込み回路３０と不揮発性メモリ２６とに電気的に結合されている。
【００１７】
制御回路２４は、データを受信し、その受信データからデータパターンを提供する。データパターンは、アレイ２８におけるハード障害のパターンである障害パターンと比較される。データパターンが障害パターンに一致する場合には、制御回路２４は、読出し／書込み回路３０を制御して、アレイ２８の一致する障害パターンを有する場所にデータパターンを書き込む。すなわち、そのデータパターンのビット論理値が障害パターンの対応する同様のハード障害論理値と整列するように、一致する障害パターンの上にデータパターンを書き込む。ハード障害を有するメモリセルが、データを格納するために使用される。
【００１８】
例示的な実施形態では、制御回路２４は、受信データをあらゆる方法でコード化し、コード化した受信データをデータパターンとして提供する。一タイプのコード化では、受信データを変更しないままデータパターンとして提供する。他のタイプのコード化では、受信データを、再構成し、反転し、畳み込み処理し、または行列乗算等の数学演算により操作する。各タイプのコード化において、コード化した受信データから元の受信データを回復することができる。各コード化後、コード化された受信データをデータパターンとして提供し、障害パターンに一致するように複数の障害パターンと比較する。コード化された受信データが１つの障害パターンに一致する場合には、コード化された受信データを、アレイ２８のその障害パターンのアドレスに書き込む。アレイ２８には、格納されたデータパターンをコード化するために使用したコード化のタイプを指示するコード化情報を含む、コード化された受信データを書き込む。他の実施形態では、不揮発性メモリ２６等の別のメモリにコード化情報を格納してもよい。
【００１９】
読出し／書込み回路３０を制御して、格納されたデータ、すなわち、アレイ２８からのコード化情報を含む、データパターンとも呼ばれるコード化された受信データを読み出させるように制御回路２４を構成する。制御回路２４は、コード化情報を使用して、アレイ２８から読み出されたデータをデコードし、元の受信データを回復する。
【００２０】
アレイ２８のメモリセル３２は、行と列とに配置され、行はｘ方向に沿って延在し、列はｙ方向に沿って延在する。磁気メモリ２２の例示を簡略化するために、比較的に少数のメモリセル３２のみを示す。実際には、任意の適当なサイズのアレイを使用し、そのアレイを、高並列モードで動作する３次元マクロアレイ構造を形成するように積み重ねることができる。
【００２１】
１つの適当な１２８Ｍバイトマクロアレイでは、１６アレイ高さであり、１６アレイ幅であり、４つのスタック層を有するマクロアレイに、１０２４アレイを配置する。各個々のアレイは、１０２４メモリセル高さ×１０２４メモリセル幅である１つのＭビットアレイである。任意選択的に、磁気メモリは、複数のかかるマクロアレイを含む。
【００２２】
１２８Ｍバイトアレイに対する１つの適当なアドレス指定方式では、複数のアレイの各々において１つのワード線を選択し、複数のアレイの各々において複数のビット線を選択することにより、メモリセルにアクセスする。各アレイにおいて複数のビット線を選択することにより、各アレイから複数のメモリセルが選択される。複数のアレイの各々の中のアクセスされたメモリセルは、一単位のデータの僅かな部分に対応する。アクセスされたメモリセルは、併せて、５１２バイトのセクタ等のデータの単位全体か、またはデータの単位全体の少なくともほぼ一部を提供する。メモリセルにはほぼ同時にアクセスする。
【００２３】
例示的な実施形態では、読出し／書込み回路３０は、行デコード回路３４ａおよび３４ｂと、列デコード回路３６ａおよび３６ｂとを含む。行デコード回路３４ａおよび３４ｂは、ワード線３８ａ〜３８ｃに電気的に結合される。列デコード回路３６ａおよび３６ｂは、ビット線４０ａ〜４０ｃに電気的に結合される。導電性のワード線３８ａ〜３８ｃは、アレイ２８の一方の側の平面においてｘ方向に沿って延在する。導電性のビット線４０ａ〜４０ｃは、アレイ２８の反対側の平面においてｙ方向に沿って延在する。アレイ２８の各行に対して１つのワード線３８ａ〜３８ｃがあり、アレイ２８の各列に対して１つのビット線４０ａ〜４０ｃがある。メモリセル３２は、ワード線３８ａ〜３８ｃとビット線４０ａ〜４０ｃとの各交差点に位置する。
【００２４】
書込み動作中、読出し／書込み回路３０は、１つのワード線３８ａ〜３８ｃと１つのビット線４０ａ〜４０ｃとを選択することにより、選択されたワード線３８ａ〜３８ｃとビット線４０ａ〜４０ｃとの交差点に位置するメモリセル３２のセンス層の磁化の向きを設定するかまたは切り替える。行デコード回路３４ａおよび３４ｂは１つのワード線３８ａ〜３８ｃを選択し、列デコード回路３６ａおよび３６ｂは１つのビット線４０ａ〜４０ｃを選択する。行デコード回路３４ａおよび３４ｂは、行デコード回路３４ａから行デコード回路３４ｂまでまたはその逆に、選択されたワード線３８ａ〜３８ｃを通してワード書込み電流を供給する。列デコード回路３６ａおよび３６ｂは、列デコード回路３６ａから列デコード回路３６ｂまでまたはその逆に、選択されたビット線４０ａ〜４０ｃを通してビット書込み電流を供給する。ワード書込み電流およびビット書込み電流は、選択されたワード線３８ａ〜３８ｃおよびビット線４０ａ〜４０ｃの周囲に、選択されたメモリセル３２において、右手の法則に従って磁界を生成する。これらの磁界を結合することにより、選択されたメモリセル３２の状態を設定するかまたは切り替える。
【００２５】
読出し／書込み回路３０は、ワード線３８ａ〜３８ｃとビット線４０ａ〜４０ｃとに電気的に結合される。読出し／書込み回路３０は、選択されたメモリセル３２における抵抗を検知し、選択されたメモリセル３２の抵抗状態に対応する論理レベル出力を提供するよう構成される。選択されたメモリセル３２が短絡すると論理レベル出力は低抵抗状態に対応し、選択されたメモリセル３２が開放されると論理レベル出力は高抵抗状態に対応する。
【００２６】
読出し動作中、読出し／書込み回路３０は、１つのワード線３８ａ〜３８ｃと１つのビット線４０ａ〜４０ｃとを選択することにより、選択されたワード線３８ａ〜３８ｃとビット線４０ａ〜４０ｃとの交差点に位置するメモリセル３２における抵抗を検知する。例示的な実施形態では、読出し／書込み回路３０は、選択されたワード線３８ａ〜３８ｃに対する電圧と、選択されたワード線３８ａ〜３８ｃおよびメモリセル３２を介して選択されたビット線４０ａ〜４０ｃへのセンス電流とを供給する。センス電流の大きさは、選択されたメモリセル３２の抵抗状態を示す。読出し／書込み回路３０は、選択されたメモリセル３２の抵抗状態を示す論理レベル出力信号を制御回路２４に供給する。
【００２７】
別の実施形態では、読出し／書込み回路３０は、選択されたビット線４０ａ〜４０ｃに対する一定電圧と、選択されたビット線４０ａ〜４０ｃおよび選択されたメモリセル３２を介して、接地に電気的に結合される選択されたワード線３８ａ〜３８ｃへのセンス電流とを供給する。選択されたメモリセル３２におけるセンス電流の大きさは、選択されたメモリセル３２の抵抗状態に対応する。読出し／書込み回路３０は、センス電流の大きさを検知し、選択されたメモリセル３２の抵抗状態に対応する論理レベル出力信号を制御回路２４に供給する。
【００２８】
制御回路２４は、読出し／書込み回路３０と不揮発性メモリ２６とに電気的に結合される。制御回路２４は、行デコードバス４２を介して行デコード回路３４ａおよび３４ｂに電気的に結合される。制御回路２４は、列デコードバス４４を介して列デコード回路３６ａおよび３６ｂに電気的に結合される。さらに、制御回路２４は、メモリバス４６を介して不揮発性メモリ２６に電気的に結合される。
【００２９】
制御回路２４は、アレイ２８へとデータを書込み、アレイ２８からデータを読み出すように、読出し／書込み回路３０を制御する。制御回路２４は、読出し／書込み回路３０に対して書込みアドレスとデータパターンとを提供して、アレイ２８の提供されたアドレスにデータパターンを書き込ませる。制御回路２４は、読出し／書込み回路３０に読出しアドレスを提供して、アレイ２８の提供されたアドレスからデータを読み出させる。提供されたアドレスは、データのセクションを指す。一実施形態では、このセクションは、５１２バイトを含むデータのセクタである。他の実施形態では、セクションは、１ビットや、１バイトや、異なる数のバイトを含むセクタや、１６セクタまたは３２セクタ等の複数セクタを含むブロック等の任意の数のビットでありうる。
【００３０】
不揮発性メモリ２６は、２つのメモリマップを格納する。一方のメモリマップは障害マップであり、他方はアドレスマップである。障害マップは、アレイ２８におけるハード障害のアドレスと障害パターンとを含む。アドレスマップは、アレイ２８のセクションをアドレス指定するために外部回路によって提供される書込みアドレスまたは読出しアドレスである元のアドレスと、データのセクションが磁気メモリ２２のどこにあるかを示す対応するアドレスとを列挙するテーブルである。
【００３１】
書込み動作中、制御回路２４は、入出力パス４８を介して元の書込みアドレスとデータとを受信する。制御回路２４は、受信データをコード化し、コード化した受信データを不揮発性メモリ２６の障害マップにおける障害パターンと比較する。コード化された受信データは、障害パターンと比較されるデータパターンとして提供される。データパターンが障害パターンと一致する場合には、制御回路２４は、読出し／書込み回路３０を制御して、コード化情報を含むデータパターンを、アレイ２８の一致する障害パターンの障害アドレスへと書き込ませる。制御回路２４は、元の書込みアドレスと対応する障害アドレスとを不揮発性メモリ２６のアドレスマップへと書き込む。
【００３２】
一致が見つからない場合には、元の書込みアドレスが障害パターンアドレスでなく使用されていない限り、アレイ２８の元の書込みアドレスに受信データが格納される。元の書込みアドレスが障害パターンアドレスであるかまたは使用されている場合には、次の利用可能なアドレスに受信データが格納される。すべての状況において、元の書込みアドレスと、アレイ２８のどこに受信データを書き込むかを示す対応するアドレスとをアドレスマップに格納する。
【００３３】
制御回路２４は、受信データに対し複数のコード化技術を試行することによりコード化された受信データを障害パターンに一致させるように構成される。制御回路２４は、各コード化技術を順に使用し、各コード化後にコード化された受信データを障害パターンと比較する。一致が見つかると、制御回路２４はコード化情報を有するデータパターンを読出し／書込み回路３０に提供し、読出し／書込み回路３０はコード化情報を有するデータパターンをアレイ２８に書き込む。コード化技術は、受信データを変更なしに使用すること、受信データを再構成すること、受信データを反転させること、受信データを畳み込み処理すること、または、受信データに対して数学演算を実行することを含む。他の実施形態では、異なるコード化技術を使用してもよい。
【００３４】
読出し動作中、制御回路２４は、入出力パス４８において元の読出しアドレスを受信して、アレイ２８の元の読出しアドレスからデータを読み出す。制御回路２４は、アドレスマップにおいて元の読み出しアドレスを調べ、そのアドレスマップから対応するアドレスを読み出す。制御回路２４は、読出し／書込み回路３０を制御して、アレイ２８の対応するアドレスからデータパターンとコード化情報とを読み出させる。制御回路２４は、コード化情報を使用して、データパターンをデコードして入出力パス４８において元の受信データを提供する。
【００３５】
図２は、６０に示すアレイセクションの例示的な実施形態を示す図である。アレイセクション６０は、ワード線３８ａと、メモリセル３２と、ビット線４０ａとを含む。メモリセル３２は、ワード線３８ａとビット線４０ａとの間に位置する。例示的な実施形態では、ワード線３８ａとビット線４０ａとは互いに直交する。他の実施形態では、ワード線３８ａとビット線４０ａとは互いに対して他の適当な角度を形成する関係に位置していてもよい。
【００３６】
図３は、アレイセクション６０の例示的な実施形態の断面を示す図である。アレイセクション６０は、ワード線３８ａとビット線４０ａとの間に位置するメモリセル３２を含む。メモリセル３２は、センス層６２と、スペーサ層６４と、リファレンス層６６とを含む。スペーサ層６４は、センス層６２とリファレンス層６６との間に位置する。センス層６２は、ワード線３８ａの隣に位置する。リファレンス層６６は、ビット線４０ａの隣に位置する。センス層６２は磁化の変更可能な向きを有し、リファレンス層６６はピン留めされた磁化の向きを有する。この実施形態では、メモリセル３２はＭＴＪスピントンネルデバイスであり、スペーサ層６４は読出し動作中に電荷が移動する絶縁障壁層である。スペーサ層６４を通る電荷の移動は、メモリセル３２の両端の電圧とメモリセル３２を流れるセンス電流とに応じて発生する。代替実施形態では、メモリセル３２に対して、銅等の導体であるスペーサ層６４を備えたＧＭＲ構造を使用することができる。
【００３７】
図４は、本発明の実施形態による、メモリシステム２０の例示的な実施形態を示すブロック図である。メモリシステム２０は、磁気メモリ２２と、制御回路２４と、不揮発性メモリ２６とを含む。磁気メモリ２２は、メモリセルアレイ２８と読出し／書込み回路３０とを含む。制御回路２４は、読出し／書込み回路３０を制御してアレイ２８に対し書込みおよび読出しを行わせる。
【００３８】
例示的な実施形態では、制御回路２４は、制御ロジックとプログラムとを含むコントローラである。プログラムは、コントローラおよび不揮発性メモリ２６に格納される。他の実施形態では、制御回路２４は、コード化および書込みのための第１のコントローラや、読出しおよびデコーディングのための第２のコントローラ等の複数のコントローラでありうる。他の実施形態では、制御回路２４は、コード化機能と、書込み機能と、読出し機能と、デコーディング機能とを実行するように構成された制御ロジックでありうる。
【００３９】
不揮発性メモリ２６は、障害マップ１００とアドレスマップ１０２とを格納する。例示的な実施形態では、不揮発性メモリ２６はＥＥＰＲＯＭである。他の実施形態では、不揮発性メモリは、ＦＬＡＳＨ  ＥＥＰＲＯＭ、磁気メモリ、または他のタイプの不揮発性メモリでありうる。他の実施形態では、障害マップ１００およびアドレスマップ１０２を磁気メモリ２２に格納してもよい。
【００４０】
障害マップ１００は、１０４において行に示す障害パターンエントリを含む。各障害パターンエントリ１０４は、ステータスビット１０６ａ〜１０６ｎと、セクションアドレス１０８ａ〜１０８ｎ、すなわち障害アドレスと、障害パターン１１０ａ〜１１０ｎとを含む。セクションアドレス１０８ａ〜１０８ｎは、対応する障害パターン１１０ａ〜１１０ｎが位置する磁気メモリ２２のアドレスである。例示的な実施形態では、各セクションアドレス１０８ａ〜１０８ｎは、５１２バイトのセクタを指す。他の実施形態では、各セクションアドレス１０８ａ〜１０８ｎは、任意の適当なサイズのセクタか、または任意の適当なサイズの複数のセクタを含むメモリのブロックを指していてもよい。
【００４１】
各障害パターン１１０ａ〜１１０ｎは、ハード障害と機能的なメモリセル３２とのパターンを含む。障害パターン１１０ａ〜１１０ｎは、対応するセクションアドレス１０８ａ〜１０８ｎにおいてアドレス指定される。ハード障害は、短絡メモリセルまたは開放メモリセル３２等の、高抵抗レベルまたは低抵抗レベルで固定されるメモリセル３２である。各ステータスビット１０６ａ〜１０６ｎは、対応する障害セクションアドレス１０８ａ〜１０８ｎが未使用である（論理「０」）かまたはデータが書き込まれている（論理「１」）かを示す。
【００４２】
障害マップ１００は、磁気メモリ２２において磁気メモリセル３２に対し複数回の書込みおよび読出しを行うことによって作成する。高抵抗状態になるように、メモリセル３２に書き込んで読み出す。次に、低抵抗状態になるようにメモリセル３２に書き込んで読み出す。単一の抵抗状態を維持するメモリセル３２に対し、ハード障害としてフラグを立てる。セクションアドレス１０８と障害パターン１１０とを不揮発性メモリ２６の障害マップ１００に書き込む。制御回路２４は、ハード障害を検出して障害マップ１００を更新する。
【００４３】
アドレスマップ１０２は、１１２において行に示すスワップされたアドレスエントリを含む。各スワップされたアドレスエントリ１１２は、元のアドレス１１４ａ〜１１４ｎと対応するアドレス１１６ａ〜１１６ｎとを含む。元のアドレス１１４ａ〜１１４ｎは、外部回路により磁気メモリ２２に対し書込みおよび読出しを行うためにアドレス指定されるアドレスロケーションである。元のアドレス１１４ａ〜１１４ｎは、書込み動作中に外部回路によって提供される書込みアドレスと、読出し動作中に外部回路によって提供される読出しアドレスとである。対応するアドレス１１６ａ〜１１６ｎは、データパターンが格納される磁気メモリ２２の実際のアドレスである。対応するアドレス１１６ａ〜１１６ｎは、制御回路２４によって提供される。
【００４４】
アドレスマップ１０２は、メモリシステム２０が磁気メモリ２２にデータを格納すると作成される。制御回路２４は、各元のアドレス１１４ａ〜１１４ｎと対応するアドレス１１６ａ〜１１６ｎとを、アドレスマップ１０２に書き込む。
【００４５】
書込み動作中、制御回路２４は、パス１１８で書込みアドレスを受信し、パス１２０でデータを受信する。制御回路２４は、受信データをコード化してデータパターンを取得し、そのデータパターンを障害パターン１１０と比較する。制御回路２４は、受信データを複数の異なる方法によりコード化するよう構成される。各コード化後、コード化された受信データを障害パターン１１０と比較する。
【００４６】
例示的な実施形態では、制御回路２４は、第１のコード化において受信データを変更せずに、その未変更の受信データをデータパターンおよびコード化された受信データとして提供する。データパターンを障害パターン１１０と比較する。一致が見つからない場合には、制御回路２４は、次のコード化技術に進む。例示的な実施形態では、第２のコード化技術は、受信データを所定方法で再構成することを含む。コード化された受信データを障害パターン１１０と比較する。一致が見つからない場合には、制御回路２４は第３のコード化技術に進む。このプロセスは、一致が見つかるかまたはすべてのコード化技術が使い尽くされるまで続行する。例示的なコード化技術は、受信データを未変更のままにすること、受信データを再構成すること、受信データを反転させること、受信データを畳み込み処理すること、受信データに対し行列乗算等の数学演算を実行することとを含む。他の実施形態では、上記技術の組合せ等の異なるコード化技術を使用してもよい。
【００４７】
制御回路２４は、受信データをコード化し、コード化した受信データ、すなわちデータパターンを障害パターン１１０のうちの１つに一致させようと試みる。制御回路２４は、パス１２２に不揮発性メモリアドレスを提供し、不揮発性メモリ２６との通信中にパス１２４においてデータを転送する。制御回路２４は、不揮発性メモリ２６における障害マップ１００から未使用の障害アドレス１０８と対応する障害パターン１１０とを読み出す。制御回路２４は、各データパターンを読み出された障害パターン１１０と比較する。使用済みの障害アドレス１０８はすでにデータパターンを格納しているため、ステータスビット１０６によって示されるように未使用障害アドレス１０８における障害パターン１１０のみを比較すればよい。
【００４８】
一致が見つかると、制御回路２４は、一致する障害パターン１１０ａ〜１１０ｎの障害アドレス１０８ａ〜１０８ｎと、コード化情報を含む一致するデータパターンとを磁気メモリ２２に供給する。障害アドレス１０８ａ〜１０８ｎをパス１２６において磁気メモリ２２に提供し、一致するデータパターンおよびコード化情報をパス１２８において提供する。磁気メモリ２２の読出し／書込み回路３０は、一致するデータパターンおよびコード化情報を、磁気メモリ２２の一致する障害パターン１１０ａ〜１１０ｎの障害アドレス１０８ａ〜１０８ｎに書き込む。制御回路２４は、障害マップ１００においてその書き込み済みの障害アドレス１０８ａ〜１０８ｎに対応するステータスビット１０６ａ〜１０６ｎを設定することによって、使用された書き込み済みの障害アドレス１０８ａ〜１０８ｎをマークする。さらに、制御回路２４は、元のアドレス１１４ａ〜１１４ｎとしての書込みアドレスと、対応するアドレス１１６ａ〜１１６ｎとしての書き込み済みの障害アドレス１０８ａ〜１０８ｎとをアドレスマップ１０２に書き込む。一致が見つからない場合には、制御回路２４は、受信データを書込みアドレスに書き込むことができるか否かをチェックする。
【００４９】
受信データを書込みアドレスに書き込むことができるか否かを調べるために、制御回路２４は、書込みアドレスを障害マップ１００の各障害アドレス１０８ａ〜１０８ｎと比較する。一致する場合には、受信データとコード化情報とを、障害パターン１１０ａ〜１１０ｎを含まない次の利用可能なアドレスに書き込む。次の利用可能なアドレスを見つけるために、制御回路２４は、アドレスを選択し、そのアドレスが障害アドレス１０８ａ〜１０８ｎまたは対応するアドレス１１６ａ〜１１６ｎではないことを、選択したアドレスを障害アドレス１０８および対応するアドレス１１６と比較することによって検査する。一実施形態では、磁気メモリ２２の最後から磁気メモリ２２の最初に向って、選択アドレスを各々連続して選択する。制御回路２４は、元のアドレス１１４ａ〜１１４ｎとしての書込みアドレスと、対応するアドレス１１６ａ〜１１６ｎとしての次の利用可能なアドレスとを有するエントリ１１２を含むようにアドレスマップ１０２に書き込む。書込みアドレスが障害アドレス１０８ａ〜１０８ｎではない場合には、制御回路２４は、書込みアドレスが使用されているか否かをチェックする。
【００５０】
制御回路２４は、アドレスマップ１０２の各対応するアドレス１１６ａ〜１１６ｎと書込みアドレスを比較する。一致が見つかると、書込みアドレスは使用中であり、制御回路２４は、受信データとコード化情報とを次の利用可能なアドレスに格納し、アドレスマップ１０２を更新する。元のアドレス１１４ａ〜１１４ｎとしての書込みアドレスと、対応するアドレス１１６ａ〜１１６ｎとしての次の利用可能なアドレスとをアドレスマップ１０２に書き込む。
【００５１】
書込みアドレスが使用されていない場合には、受信データとコード化情報とをその書込みアドレスに格納する。元のアドレス１１４ａ〜１１４ｎとしての書込みアドレスと、対応するアドレス１１６ａ〜１１６ｎとしての書込みアドレスとをアドレスマップ１０２に書き込む。メモリシステム２０が書込みまたは読出し命令を受信する間は処理を続行する。
【００５２】
読出し動作中、制御回路２４は、パス１１８で読出しアドレスを受信する。制御回路２４は、読出しアドレスをアドレスマップ１０２の各元のアドレス１１４ａ〜１１４ｎと比較する。一致する場合には、制御回路２４は、一致する元のアドレス１１４ａ〜１１４ｎの対応するアドレス１１６ａ〜１１６ｎを、磁気メモリ２２の読出し／書込み回路３０に提供する。読出し／書込み回路３０は、コード化情報とともにデータパターンを含むデータを、提供された対応するアドレス１１６ａ〜１１６ｎにおいて読み出す。読出し／書込み回路３０は、コード化情報を含むデータをパス１２８において制御回路２４に提供する。
【００５３】
制御回路２４は、コード化情報とともにデータパターンを含むデータを受信し、コード化情報に従ってデータパターンをデコードする。デコーディングは、コード化プロセスを反転させることにより元の受信データを回復することを含む。元の受信データは、制御回路２４によりパス１２０に提供される。
【００５４】
アドレスマップ１０２に読出しアドレスが見つからない場合には、制御回路２４は読出しアドレスを磁気メモリ２２に提供し、磁気メモリ２２は読出しアドレスからデータを返す。制御回路２４は、パス１２０において、データと、読出しアドレスがアドレスマップ１０２に見つからなかったことことを示すフラグとを提供する。
【００５５】
図５は、コード化された受信データ１３０と障害パターン１３２との比較を示す図である。コード化された受信データ１３０と障害パターン１３２とは、複数のビットを含む。一実施形態では、コード化された受信データ１３０と障害パターン１３２とは、同様の幅を有し、５１２バイト幅である。障害パターン１３２は、Ｘでマークされた機能的なメモリセルビットと、「０」または「１」でマークされたハード障害論理レベルとを含む。
【００５６】
コード化された受信データ１３０と障害パターン１３２とが一致するためには、障害パターン１３２の各ハード障害論理レベルが、コード化された受信データ１３０の同様のビット論理レベルと並ばなければならない。例示する実施例では、１３４において、論理「１」ハード障害が論理「１」ビットと並び、１３６において、論理「０」ハード障害が論理「０」ビットと並ぶ。他のすべてのビットが機能的なＸおよびドントケアビットである場合には、コード化された受信データ１３０は障害パターン１３２と一致する。コード化された受信データ１３０を、アレイ２８に障害パターン１３２の障害アドレスとして格納する。言い換えれば、コード化された受信データ１３０の残りとともに１バイトのデータとして付随するコード化情報を含むコード化された受信データ１３０を、障害パターン１３２上に格納する。
【００５７】
図６は、例示的な書込み動作を示すフローチャートである。書込み動作を開始するために、２００において制御回路２４に書込みアドレスおよびデータを提供する。書込みアドレスおよびデータは、外部回路により、データをメモリシステム２０の提供された書込みアドレスに格納するために提供される。２０２において、制御回路２４は、受信データをコード化し、未使用障害パターン１１０をコード化した受信データに一致させるよう試みる。制御回路２４は、一致が見つかるかまたはすべてのコード化技術が使い尽くされるまで、一連のコード化技術を使用して受信データをコード化する。
【００５８】
２０２において、コード化された受信データが障害パターン１１０ａ〜１１０ｎに一致した場合、２０４において、制御回路２４は、コード化情報を含む、コード化された受信データとも呼ぶデータパターンを、一致する障害パターン１１０ａ〜１１０ｎの障害アドレス１０８ａ〜１０８ｎに書き込む。さらに、２０６において、制御回路２４は、対応するステータスビット１０６ａ〜１０６ｎを設定することによって、使用に応じて書き込まれた障害アドレス１０８ａ〜１０８ｎをマークする。２０８において、アドレスマップ１０２に、元のアドレス１１４ａ〜１１４ｎとしての書込みアドレスと対応するアドレス１１６ａ〜１１６ｎとしての障害アドレス１０８ａ〜１０８ｎとを書き込む。２２０において、処理は書込み動作または読出し動作を続行する。２０２において、コード化された受信データが障害パターン１１０のいずれとも一致しない場合には、制御回路２４は、受信データを書込みアドレスに書き込むことができるか否かをチェックする。
【００５９】
制御回路２４は、２１０において書込みアドレスが障害アドレス１０８のうちの１つと一致するか否かをチェックする。書込みアドレスが障害アドレス１０８ａ〜１０８ｎと一致する場合には、書込みアドレスにデータを書き込むことができず、２１２においてそれを次の利用可能なアドレスに書き込む。この時点で、受信データは、コード化する必要がなく、次の利用可能なアドレスに受信データとともに格納されるコード化情報は、コード化が行われなかったことを示す。制御回路２４は、所定方法でアドレスを選択し、その選択したアドレスが障害アドレス１０８または対応するアドレス１１６のうちの１つではないことをチェックして、次の利用可能なアドレスを見つける。次の利用可能なアドレスを見つけた後、制御回路２４は、２１２において、受信データとコード化情報とを次の利用可能なアドレスに書き込む。２０８において、元のアドレス１１４ａ〜１１４ｎとしての書込みアドレスと、対応するアドレス１１６ａ〜１１６ｎとしての書き込み済みの次の利用可能アドレスとによりアドレスマップ１０２を更新する。２２０において、処理は書込み動作または読出し動作を続行する。
【００６０】
２１０において、書込みアドレスが障害アドレス１０８のうちの１つと一致しない場合には、制御回路２４は、２１４において、書込みアドレスが使用されているか否かをチェックする。制御回路２４は、アドレスマップ１０２の対応するアドレス１１６と書込みアドレスを比較する。書込みアドレスと対応するアドレス１１６ａ〜１１６ｎとの間に一致がある場合には、制御回路２４は、２１６において、受信データとコード化情報とを次の利用可能なアドレスに書き込む。２０８において、制御回路２４は、元のアドレス１１４ａ〜１１４ｎとしての書込みアドレスと、対応するアドレス１１６ａ〜１１６ｎとしての次の利用可能アドレスとによりアドレスマップ１０２を更新する。２２０において、処理は書込み動作または読出し動作を続行する。
【００６１】
２１４において書込みアドレスが使用されていない場合には、２１８において、制御回路２４は、受信データとコード化情報とを書込みアドレスに書き込む。２０８において、制御回路２４は、元のアドレス１１４ａ〜１１４ｎとしての書込みアドレスと、対応するアドレス１１６ａ〜１１６ｎとしての書込みアドレスとをアドレスマップ１０２に書き込む。２２０において、処理は書込み動作または読出し動作を続行する。
【００６２】
図７は、例示的な読出し動作を示すフローチャートである。読出し動作を開始するために、３００において制御回路２４に読出しアドレスを提供する。３０２において、制御回路２４は、読出しアドレスに対して対応するアドレス１１６ａ〜１１６ｎを見つけようと試みる。対応するアドレス１１６ａ〜１１６ｎを見つけるために、制御回路２４は、アドレスマップ１０２の各元のアドレス１１４ａ〜１１４ｎと読出しアドレスを比較する。
【００６３】
読出しアドレスが元のアドレス１１４ａ〜１１４ｎと一致する場合には、制御回路２４は、対応するアドレス１１６ａ〜１１６ｎを読み出す。３０４において、制御回路２４は、磁気メモリ２２の読み出された対応するアドレス１１６ａ〜１１６ｎからデータパターンとコード化情報とを含むデータを読み出す。３０６において、制御回路２４は、コード化情報を使用してデータパターンをデコードする。３０８において、制御回路２４は、元の受信データであるデコードされたデータを提供する。３１２において、処理は書込み動作または読出し動作を続行する。
【００６４】
読出しアドレスが元のアドレス１１４ａ〜１１４ｎに一致しない場合には、３１０において、制御回路２４は、読出しアドレスのデータを読出し、読出しアドレスが元のアドレス１１４ａ〜１１４ｎに一致しないことを示すフラグを設定する。３０８において、制御回路２４は、外部回路にデータとフラグとを提供する。３１２において、処理は書込み動作または読出し動作を続行する。
【図面の簡単な説明】
【００６５】
【図１】本発明の例示的な実施形態によるメモリシステムの例示的な実施形態を示す概略図である。
【図２】アレイセクションの例示的な実施形態を示す概略図である。
【図３】アレイセクションの例示的な実施形態の断面を示す概略図である。
【図４】メモリシステムの例示的な実施形態を示すブロック図である。
【図５】コード化された受信データと障害パターンとの比較を示す概略図である。
【図６】例示的な書込み動作を示すフローチャートである。
【図７】例示的な読出し動作を示すフローチャートである。
【図１】
2004362587.tif 000003
【図２】
2004362587.tif 000004
【図３】
2004362587.tif 000005
【図４】
2004362587.tif 000006
【図５】
2004362587.tif 000007
【図６】
2004362587.tif 000008
【図７】
2004362587.tif 000009