(57)【要約】  ＭＲＡＭは、複数のシンボルから構成され、各々のシンボルが複数のビットから構成され、更にシンボル単位での誤り訂正が可能な誤り訂正符号を誤り検出及び誤り訂正に使用するＭＲＡＭである。当該ＭＲＡＭは、前記シンボルのうちのデータシンボルの一部のビットを記憶する第１データセルと、第１データセルから前記一部のビットを読み出し、前記一部のビットに所定のダミービットを付け加えることによって前記データシンボルを再生し、前記再生されたデータシンボルを用いて誤り検出及び誤り訂正を行う周辺回路とを具備する。
2007046491.tif 000002
【特許請求の範囲】
【請求項１】
複数のシンボルから構成され、各々のシンボルが複数のビットから構成され、更にシンボル単位での誤り訂正が可能な誤り訂正符号を誤り検出及び誤り訂正に使用するＭＲＡＭであって、
前記シンボルのうちのデータシンボルの一部のビットを記憶する第１データセルと、
前記第１データセルから前記一部のビットを読み出し、前記一部のビットに所定のダミービットを付け加えることによって前記データシンボルを再生し、前記再生されたデータシンボルを用いて誤り検出及び誤り訂正を行う周辺回路と  を具備するＭＲＡＭ。
【請求項２】
請求の範囲１に記載のＭＲＡＭであって、
前記シンボルのうちのパリティシンボルの一部のビットを記憶する第２データセルと、
読み出し動作時に、前記第１データセルと同時に選択される第１参照セル及び第２参照セルとを
更に具備し、
前記第２参照セルは、前記パリティシンボルの残余ビットを記憶し、且つ、前記第１データセルと別のデータセルからのデータ読み出しに使用される参照信号を生成するために使用され、
前記第１参照セルは、前記第１データセル及び前記第２参照セルからのデータ読み出しに使用される参照信号を生成するために使用される
ＭＲＡＭ。
【請求項３】
請求の範囲１に記載のＭＲＡＭであって、
前記第２参照セルは、互いに相補のデータを記憶する第１セルと第２セルから構成され、
前記所定のダミービットは、前記第１セルと前記第２セルに記憶される前記残余ビットが、互いに相補であるように決定されている
ＭＲＡＭ。
【請求項４】
請求の範囲２に記載のＭＲＡＭであって、
前記周辺回路は、前記第１データセルから読み出された前記データシンボルと前記第２参照セルから読み出された前記残余ビットの両方にデータ誤りを検出したとき、前記第１参照セルに記憶されているデータを訂正する
ＭＲＡＭ。
【請求項５】
請求の範囲４に記載のＭＲＡＭであって、
前記周辺回路は、前記第１データセルから読み出された前記データシンボルにデータ誤りを検出し、前記第２参照セルから読み出された前記残余ビットにデータ誤りを検出しなかったとき、前記第１データセルに記憶されているデータを訂正する
ＭＲＡＭ。
【請求項６】
請求の範囲４に記載のＭＲＡＭであって、
前記周辺回路は、前記第２参照セルから読み出された前記残余ビットにデータ誤りを検出し、前記第１メモリセルから読み出された前記データシンボルにデータ誤りを検出しなかったとき、前記第２参照セルに記憶されている前記残余ビットを訂正する
ＭＲＡＭ。
【請求項７】
複数のシンボルから構成され、各々のシンボルが複数のビットから構成され、更にシンボル単位での誤り訂正が可能な誤り訂正符号を誤り検出及び誤り訂正に使用するＭＲＡＭであって、
複数のデータセルと、
前記書き込みデータに所定のダミービットを付け加えることによってデータシンボルを生成し、前記生成されたデータシンボルを用いてパリティシンボルを算出し、前記データシンボルのうち前記書き込みデータに対応するビットのみを前記複数のデータセルのうちの第１データセルに書き込む周辺回路と
を具備するＭＲＡＭ。
【請求項８】
請求の範囲７に記載のＭＲＡＭであって、
読み出し動作時に、前記第１データセルと同時に選択される第１参照セル及び第２参照セル
更にを具備し、
前記周辺回路は、前記パリティシンボルの一部のビットを前記複数のデータセルのうちの第２データセルに書き込み、且つ、前記パリティシンボルの残余ビットを前記第２参照セルに書き込み、
前記第１参照セルは、前記第１データセル及び前記第２参照セルからのデータ読み出しに使用される参照信号を生成するために使用される
ＭＲＡＭ。
【請求項９】
請求の範囲８に記載のＭＲＡＭであって、
前記第２参照セルは、互いに相補のデータを記憶する第１セルと第２セルから構成され、
前記所定のダミービットは、前記第１セルと前記第２セルに記憶される前記残余ビットが、互いに相補であるように決定されている
ＭＲＡＭ。
【請求項１０】
複数のシンボルから構成され、各々のシンボルが複数のビットから構成され、更にシンボル単位での誤り訂正が可能な誤り訂正符号を誤り検出及び誤り訂正に使用するＭＲＡＭであって、
前記複数のシンボルのうちのデータシンボルのビットを記憶するために使用される第１データセルと、
前記複数のシンボルのうちのパリティシンボルの一部のビットを記憶するために使用される第２データセルと、
前記第１データセルのデータ読み出しに使用される参照信号を生成するために使用される第１参照セルと、
前記第１データセルとは別のデータセルのデータ読み出しに使用される参照信号を生成するために使用される第２参照セルと
を備え、
前記第２参照セルは、前記パリティシンボルの残余ビットを記憶するために使用される
ＭＲＡＭ。
【請求項１１】
請求の範囲１０に記載のＭＲＡＭであって、
前記第１参照セルは、前記第２参照セルからのデータ読み出しに使用される参照信号を生成するために使用される
ＭＲＡＭ。
【請求項１２】
請求の範囲１０に記載のＭＲＡＭであって、
更に、
周辺回路を具備し、
前記第１データセルには、前記データシンボルのうちの一部のビットのみが記憶され、
前記周辺回路は、前記第１データセルから前記一部のビットを読み出し、前記一部のビットに所定のダミービットを付け加えることによって前記データシンボルを再生し、且つ、前記第２データセル及び前記第２参照セルから前記パリティシンボルを読み出し、前記再生されたデータシンボルと前記読み出されたパリティシンボルを用いて誤り検出及び誤り訂正を行う
ＭＲＡＭ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気ランダムアクセスメモリ（ＭＲＡＭ）に関し、特に、バースト誤り訂正符号の効率が向上させられるＭＲＡＭに関する。
【背景技術】
【０００２】
ＭＲＡＭは、高速書き込み／読み出しが可能な不揮発性メモリであり、近年実用化に向けた研究開発が盛んに行われている。【０００３】
最も典型的には、ＭＲＡＭは、磁化が反転可能な磁化自由層と、磁化が固定された磁化固定層と、その間に介設された非磁性層とで構成された磁気抵抗素子を、メモリセルとして利用する。データは、磁化自由層の磁化の向きとして記憶される。非磁性層が極めて薄い絶縁体で構成されている場合、磁気抵抗素子はＴＭＲ（tunnel magnetoresistance）効果を示し、そのように構成された磁気抵抗素子は、しばしば、ＭＴＪ（magnetic tunnel junction）素子と呼ばれる。一方、非磁性層が非磁性の導電体で構成されている場合には、磁気抵抗素子はＧＭＲ（giant magnetoresistance）効果を示し、そのように構成された磁気抵抗素子は、ＣＰＰ−ＧＭＲ（current perpendicular to-plane giant magnetoresistive）素子と呼ばれる。【０００４】
データの書き込みは、最も一般的には、メモリセルの近傍に設けられたワード線とビット線に書き込み電流を流すことによって磁化自由層に磁場を印加し、これにより磁化自由層の磁化を所望の方向に反転することによって行われる。
一方、データの読み出しには、磁気抵抗素子が示す磁気抵抗効果が利用される。ＴＭＲ効果、ＧＭＲ効果のいずれを利用する場合でも、メモリセルの抵抗は磁化自由層の磁化の向きに応じて変化する。このメモリセルの抵抗の変化は、メモリセルを流れる電流、又はメモリセルに発生する電圧降下の変化として現れる。このメモリセルを流れる電流、又はメモリセルに発生する電圧降下の変化を検知することにより、メモリセルのデータが判別される。【０００５】
メモリセルのデータの判別には、しばしば、予め規定のデータが書き込まれた参照セルが使用される。以下では、参照セルと区別するために、メモリセルのうちデータの記憶に実際に使用されるセルを、データセルと呼ぶことがある。参照セルが設けられたＭＲＡＭでは、データセルのデータの判別は、参照セルを用いて参照信号を生成し、データセルから得られたデータ信号をその参照信号と比較することによって行われる。最も典型的には、一対の参照セルが、参照信号を生成するために使用される。一方の参照セルには、データ”１”が書き込まれ、他方の参照セルにはデータ”０”が書き込まれる。その２つの参照セルに所定の電圧又は所定の電流を供給すると、信号レベルが異なる２つの信号が得られる。それら２つの信号から、それらの平均のレベルを有する信号が生成され、参照信号として使用される。【０００６】
当業者に広く知られているように、ＭＲＡＭの一つの課題は書き込み動作におけるメモリセルの選択性である。伝統的なＭＲＡＭでは、メモリセルの特性のバラツキにより、半選択メモリセル、即ち、対応するワード線とビット線との一方にしか書き込み電流が流されていないメモリセルにもデータが書き込まれ得る。これは、ＭＲＡＭの動作の信頼性を不所望に低下させる。【０００７】
ＭＲＡＭの書き込み動作の選択性を向上させるための一つの方式が、トグル書き込み方式である（米国特許６，５４５，９０６号公報参照）。トグル書き込み方式とは、磁化自由層にＳＡＦ（synthetic antiferromagnet）を使用することにより、選択性が高い書き込み動作を行う技術である；ここでＳＡＦとは、複数の強磁性層から構成される、隣接する強磁性層が磁気的に反強磁性的に結合された構造体である。【０００８】
図１は、トグル書き込み方式を採用するＭＲＡＭの典型的な構成を示す平面図である。ＭＲＡＭのメモリアレイには、ビット線１０２と、ビット線１０２に直交するワード線１０３が延設されており、メモリセルとして使用される磁気抵抗素子１０１は、ビット線１０２とワード線１０３とが交差する位置の各々に設けられる。図２に示されているように、磁気抵抗素子１０１は、反強磁性層１１１、磁化固定層１１２、バリア層１１３、及び磁化自由層１１４を備える磁気抵抗素子で構成されている。図１に戻り、磁気抵抗素子１０１は、磁化固定層１１２と磁化自由層１１４の容易軸がビット線１０２及びワード線１０３に４５°の角度をなすように、即ち、磁気抵抗素子１０１の長手方向がビット線１０２及びワード線１０３と４５°の角度をなすように配置される。図２を再度に参照して、磁化自由層１１４は、強磁性層１２１、１２２と、その間に介設された非磁性層１２３とで構成される。磁化自由層１１４の全体としての残留磁化（即ち、外部磁場が０である場合の磁化自由層１１４の全体としての磁化）は、可能な限り０に近づけられる。これは、ＳＡＦにスピンフロップを発現させるために重要である。この条件は、例えば、２つの強磁性層１２１、１２２を同一の材料で、同一の膜厚を有するように形成することによって満足され得る。【０００９】
図３Ａ〜３Ｅは、トグル書き込み方法の手順を説明する概念図であり、図４Ａと４Ｂは、トグル書き込みによるデータ書き込みが行われるときの、ビット線１０２、ワード線１０３に流される電流の波形を示す図である。図３において、磁化自由層１１４の強磁性層１２１、１２２の磁化が、それぞれ、記号Ｍ１、Ｍ２によって参照されていることに留意されたい。【００１０】
トグル書き込み方法によるデータ書き込みは、磁化自由層１１４に印加される磁場の方向を面内で回転させ、この磁場によって磁化自由層１１４を構成する強磁性層１２１、１２２の磁化を反転することによって行われる。具体的には、まず、ワード線１０３に書き込み電流が流され、これによってワード線１０３に垂直な方向に磁場ＨＷＬが発生される（時刻ｔ１）。続いて、ワード線１０３に書き込み電流が流されたまま、ビット線１０２に書き込み電流が流される（時刻ｔ２）。これにより、ワード線１０３とビット線１０２との両方に４５°の角度をなす方向に、磁場ＨＷＬ＋ＨＢＬが発生される。更に続いて、ビット線１０２に書き込み電流が流されたままワード線１０３への書き込み電流の供給が停止される（時刻ｔ３）。これにより、ビット線１０２に垂直な方向（即ち、ワード線１０３に平行な方向）に磁場ＨＢＬが発生される。このような手順でワード線１０３及びビット線１０２に書き込み電流が流されることにより、磁化自由層１１４に印加される磁場が回転され、これにより、磁化自由層１１４を構成する強磁性層１２１、１２２の磁化を１８０°回転させることができる。【００１１】
注目すべきことは、トグル書き込み方法によるデータ書き込みでは、磁化を反転する、即ち、データを反転することしかできないことである。例えば、ある対象メモリセルにデータ”０”を書き込もうとする場合には、まず、当該対象メモリセルからデータが読み出される。読み出されたデータが”１”である場合にのみ、対象メモリセルにトグル書き込みが行われ、対象メモリセルにデータ”０”が保存される。読み出されたデータが”０”である場合には、対象メモリセルへの書き込みは行われない。【００１２】
他の多くのメモリデバイスと同様に、ＭＲＡＭは、メモリセルのデータエラーに遭遇することが不可避である。例えば、書き込み動作において所望のデータが書き込まれない書き込みエラーや、熱擾乱を原因とするソフトエラー、即ち、熱擾乱による磁化の不所望な反転が確率的に発生することは避けがたい。このようなデータエラーに対処するためには、他の多くのメモリデバイスと同様に、ＭＲＡＭにも誤り訂正を採用することが望ましい。例えば、特開２００３−６８０９６号公報、特開２００３−１１５１９５号公報、特開２００３−１１５１９７号公報、特開２００５−５６５５６号公報、及び特開２００５−８５４６４号公報に開示されているように、誤り訂正が採用されているＭＲＡＭでは、データ書き込みの際に書き込みデータに対して誤り訂正符号化が行われ、誤り訂正符号化されたデータがメモリアレイに書き込まれる。データ読み出しの際には、メモリアレイから読み出されたデータからシンドロームが計算され、データ誤りが発見された場合には、その誤りが訂正されたデータが外部に出力される。このとき、メモリアレイに記憶されているデータも同時に訂正される。【００１３】
１つの有用な誤り訂正符号は、１つのブロックが複数のシンボルで構成され、各々のシンボルが複数のビットから構成され、更にシンボル単位での誤り訂正が可能なバースト誤り訂正符号である。リード・ソロモン符号、及び、ファイア符号は、このようなバースト誤り訂正符号の一種である。ＭＲＡＭにおけるバースト誤り訂正符号の有用性は、参照セルにデータエラーが発生したときに誤り訂正を可能にする点である。参照セルにデータエラーが発生したときには、多くの場合、読み出しデータにバースト誤りが発生する。バースト誤り訂正符号を採用すれば、参照セルにデータエラーが発生した場合でも、読み出しデータを正しく訂正できる可能性が高くなる。【００１４】
バースト誤り訂正符号をメモリアレイの誤り訂正のために使用する上での１つの問題は、符号構成が、ＭＲＡＭの入出力の数に適合しないことがあることである。ＭＲＡＭアーキテクチャから考えると、外部入出力ピンの数が２ｎ個であることが好適である。例えば、典型的なＭＲＡＭの外部インターフェースは、ＤＱ０〜ＤＱ１５の１６（＝２４）個の入出力ピンを備えている。しかし、公知のバースト誤り訂正符号化手法では、その符号構成が、外部入出力ピンの数が２ｎ個であるＭＲＡＭに適していないという事態が発生し得る。以下、リード・ソロモン符号を例にとって説明する。【００１５】
公知のリード・ソロモン符号化では、１つのブロックは、データシンボルとパリティシンボルとで構成される。データシンボルとは、実際に使用されるデータを含むシンボルであり、パリティシンボルとは、誤り検出及び誤り訂正に使用されるシンボルである。１つのシンボルがＭビットで構成されている場合、１つのブロックに含まれるデータシンボルの許容最大数は、２Ｍ−１個である。例えば、１つのシンボルが４ビットで構成される場合には、１つのブロックを最大で１５個のデータシンボルを含むように構成することができる。一つのブロックに含まれるシンボルの総数がＪであり、そのうちのデータシンボルの数がＫであるリード・ソロモン符号は、（Ｊ，Ｋ）リード・ソロモン符号と呼ばれる。【００１６】
１つのブロックに含まれるパリティシンボルの数は、誤り訂正能力に影響する。リード・ソロモン符号では、一ブロックに含まれるシンボルのうちのｔ個のシンボルの誤り訂正を可能にするためには、一つのブロックが２ｔ個のパリティシンボルを含む必要がある。【００１７】
１つのブロックに含まれるデータシンボルの最大数が、２Ｍから１だけ少ないことはＭＲＡＭ設計の上で重大である。ＭＲＡＭのアーキテクチャを簡便にするためには、１つのブロックの各データシンボルを、ＭＲＡＭの各入出力ピンに割り当てることが好適である。しかし、外部入出力ピンの数を２ｎ個にするためには、１つのシンボルに含まれるビット数を無駄に増やさなくてはならない。即ち、リード・ソロモン符号では、１つのシンボルがｎビットで構成されている場合のデータシンボルの最大数が２ｎからたった１だけ少ないために、ＭＲＡＭの２ｎ個の入出力ピンを１つのブロックの２ｎ個のデータシンボルにそれぞれに割り当てるためには、１つのシンボルを（ｎ＋１）ビットで構成する必要がある。これは、符号構成の効率性を低下させるため好ましくない。このことは、とりわけ、１６個の入出力ピンを備えるＭＲＡＭを実現するために重大である。１つのシンボルに含まれるビット数が２の累乗で表される数であることは、ＭＲＡＭのアドレス割付を容易にすることは明らかである。例えば、１つのシンボルに含まれるビット数が４であることは、アドレス割付を容易にするため好適である。しかし、問題は、１つのシンボルが４ビットで構成される場合には、１つのブロックに含まれるデータシンボルの最大数が１５個であることである。１つのシンボルを４ビットで構成すると、１６個の入出力ピンを備えるＭＲＡＭを実現するためにはデータシンボルの数が１つだけ不足してしまう。したがって、一般的なリード・ソロモン符号化手法では、１６個の入出力ピンを備えるＭＲＡＭを実現するためには、１つのシンボルを５ビットで構成する必要がある。これは、符号構成の効率を低下させる上、アドレス割付を複雑にするため好ましくない。【００１８】
このような背景から、誤り訂正符号の符号構成を、ＭＲＡＭの入出力の数に適合させるための技術を提供することが望まれている。特に、１つのシンボルが実質的に４ビットで構成されていながら、１６個の入出力ピンを備えるＭＲＡＭを実現するための技術を提供することが望まれている。
【発明の開示】
【００１９】
本発明の目的は、バースト誤り訂正符号の符号構成をＭＲＡＭの入出力の数に適合させ、これにより、符号構成の効率を向上させるための技術を提供することにある。
【００２０】
一の観点において、本発明によるＭＲＡＭは、複数のシンボルから構成され、各々のシンボルが複数のビットから構成され、更にシンボル単位での誤り訂正が可能な誤り訂正符号を誤り検出及び誤り訂正に使用するＭＲＡＭである。当該ＭＲＡＭは、前記シンボルのうちのデータシンボルの一部のビットを記憶する第１データセルと、第１データセルから前記一部のビットを読み出し、前記一部のビットに所定のダミービットを付け加えることによって前記データシンボルを再生し、前記再生されたデータシンボルを用いて誤り検出及び誤り訂正を行う周辺回路とを具備する。
ＭＲＡＭは、更に、前記シンボルのうちのパリティシンボルの一部のビットを記憶する第２データセルと、読み出し動作時に、前記第１データセルと同時に選択される第１参照セル及び第２参照セルとを具備する。この場合、前記第２参照セルは、前記パリティシンボルの残余ビットを記憶し、且つ、前記第１データセルと別のデータセルからのデータ読み出しに使用される参照信号を生成するために使用され、前記第１参照セルは、前記第１データセル及び前記第２参照セルからのデータ読み出しに使用される参照信号を生成するために使用されることが好ましい。
前記第２参照セルは、互いに相補のデータを記憶する第１セルと第２セルから構成される。この場合、前記所定のダミービットは、前記第１メモリセルと前記第２メモリセルに記憶される前記残余ビットが、互いに相補であるように決定されていることが好ましい。
好適には、周辺回路は、前記第１データセルから読み出された前記データシンボルと前記第２参照セルから読み出された前記残余ビットの両方にデータ誤りを検出したとき、前記第１参照セルに記憶されているデータを訂正する。この場合、周辺回路は、前記第１データセルから読み出された前記データシンボルにデータ誤りを検出し、前記第２参照セルから読み出された前記残余ビットにデータ誤りを検出しなかったとき、前記第１データセルに記憶されているデータを訂正することが好ましい。また、周辺回路は、前記第２参照セルから読み出された前記残余ビットにデータ誤りを検出し、前記第１メモリセルから読み出された前記データシンボルにデータ誤りを検出しなかったとき、前記第２参照セルに記憶されている前記残余ビットを訂正することが好ましい。
【００２１】
他の観点では、本発明によるＭＲＡＭは、複数のデータセルと、前記書き込みデータに所定のダミービットを付け加えることによってデータシンボルを生成し、前記生成されたデータシンボルを用いてパリティシンボルを算出し、前記データシンボルのうち前記書き込みデータに対応するビットのみを前記複数のデータセルのうちの第１データセルに書き込む周辺回路とを具備する。
ＭＲＡＭは、更に、読み出し動作時に、前記第１データセルと同時に選択される第１参照セル及び第２参照セルとを具備する。この場合、周辺回路は、前記パリティシンボルの一部のビットを前記複数のデータセルのうちの第２データセルに書き込み、且つ、前記パリティシンボルの残余ビットを前記第２参照セルに書き込み、前記第１参照セルは、前記第１データセル及び前記第２参照セルからのデータ読み出しに使用される参照信号を生成するために使用される。
前記第２参照セルが、互いに相補のデータを記憶する第１セルと第２セルから構成される場合、前記所定のダミービットは、前記第１セルと前記第２セルに記憶される前記残余ビットが、互いに相補であるように決定されていることが好ましい。
【００２２】
更に他の観点において、本発明によるＭＲＡＭは、前記複数のシンボルのうちのデータシンボルのビットを記憶するために使用される第１データセルと、前記複数のシンボルのうちのパリティシンボルの一部のビットを記憶するために使用される第２データセルと、前記第１データセルのデータ読み出しに使用される参照信号を生成するために使用される第１参照セルと、前記第１データセルとは別のデータセルのデータ読み出しに使用される参照信号を生成するために使用される第２参照セルとを備えている。第２参照セルは、前記パリティシンボルの残余ビットを記憶するために使用される。
好適には、前記第１参照セルは、第１データセルのみではなく、前記第２参照セルからのデータ読み出しに使用される参照信号を生成するために使用される。
第１データセルには、前記データシンボルのうちの一部のビットのみが記憶されることが好適である。この場合、ＭＲＡＭの周辺回路は、前記一部のビットに所定のダミービットを付け加えることによって前記データシンボルを再生し、且つ、前記第２データセル及び前記第２参照セルから前記パリティシンボルを読み出し、前記再生されたデータシンボルと前記読み出されたパリティシンボルを用いて誤り検出及び誤り訂正を行うことが好ましい。
【００２３】
本発明によれば、バースト誤り訂正符号の符号構成をＭＲＡＭの入出力の数に適合させ、これにより、符号構成の効率を向上させることができる。
【図面の簡単な説明】
【００２４】
【図１】図１は、トグル書き込みに対応した従来のＭＲＡＭの構成を示す平面図である。
【図２】図２は、トグル書き込みに対応した従来のＭＲＡＭの構成を示す断面図である。
【図３】図３Ａ〜３Ｅは、トグル書き込みの手順を示す概念図である。
【図４】図４Ａと４Ｂは、トグル書き込みにおいてワード線、ビット線に流される書き込み電流の波形を示すタイミングチャートである。
【図５】図５は、本発明の一実施例に係るＭＲＡＭの構成を示すブロック図である。
【図６】図６は、本発明の一実施例に係るＭＲＡＭのデータアレイ及びセンスアンプ回路の構成を示すブロック図である。
【図７】図７は、本発明の一実施例に係るＭＲＡＭのデータアレイの構成を示す概念図である。
【図８】図８は、本発明の一実施例に係るＭＲＡＭのデータアレイ及びパリティアレイの他の構成を示すブロック図である。
【図９Ａ】図９Ａは、本発明の一実施例に係るＭＲＡＭの符号構成を示す図である。
【図９Ｂ】図９Ｂは、本発明の一実施例に係るＭＲＡＭの符号構成を示す図である。
【図１０】図１０は、本発明の一実施例に係るＭＲＡＭのリード動作を説明するフローチャートである。
【図１１Ａ】図１１Ａは、本発明の一実施例に係るＭＲＡＭの誤り訂正の動作を説明する概念図である。
【図１１Ｂ】図１１Ｂは、本発明の一実施例に係るＭＲＡＭの誤り訂正の動作を説明する概念図である。
【図１１Ｃ】図１１Ｃは、本発明の一実施例に係るＭＲＡＭの誤り訂正の動作を説明する概念図である。
【図１２】図１２は、本発明の一実施例に係るＭＲＡＭのライト動作を説明するフローチャートである。
【発明を実施するための最良の形態】
【００２５】
以下に添付図面を参照して、本発明による磁気ランダムアクセスメモリ（ＭＲＡＭ）について詳細に説明する。
本発明のＭＲＡＭでは、メモリアレイに記憶されるデータが、（１８、１６）リード・ソロモン符号を用いて符号化される。即ち、本発明の実施例では、１つのブロックに含まれるデータシンボルの数は１６、パリティシンボルの数は２であるとする。これは、１つのブロックに含まれる１８のシンボルのうちの１つのシンボルの誤り訂正が可能であることを意味している。
既述のとおり、データシンボルの数を１６にするためには、公知のリード・ソロモン符号化手法では、１つのシンボルに含まれるビット数は５でなくてはならない。しかし、本実施例では、下記のような符号構成を採用することにより、誤り訂正符号の符号構成とＭＲＡＭの入出力の数の不適合性を解消している：
（１）各データシンボル、パリティシンボルを構成する５ビットのうちの４ビットは、メモリアレイのデータセルに記憶される。
（２）各データシンボルの残りの１ビットとしては所定値が使用され、データセルには記憶されない。
（３）各パリティシンボルの残りの１ビットは、参照セルに記憶される。
これにより、１つのデータシンボルに含まれるビット数を実質的には４にしながら、１６個の入出力を有するＭＲＡＭを実現している。以下、本発明の実施例のＭＲＡＭを詳細に説明する。【００２６】
図５は、本発明の一実施例に係るＭＲＡＭ１０の構成を示すブロック図である。ＭＲＡＭ１０は、磁気抵抗素子で構成されたメモリセルが行列に配置されたメモリアレイを複数備えている。
ＭＲＡＭ１０のメモリアレイには、データアレイ１０〜１１５とパリティアレイ２０、２１の２種類がある。以下において、相互に区別しない場合には、データアレイ１０〜１１５を総称してデータアレイ１と記載し、パリティアレイ２０、２１をパリティアレイ２と記載する。データアレイ１は、データシンボルを記憶するために使用され、パリティアレイ２は、パリティシンボルを記憶するために使用される。データアレイ１０〜１７は、それぞれＭＲＡＭ１０のデータ入出力ＤＱ０〜ＤＱ１５に対応付けられている。データ書き込み時には、データ入出力ＤＱ０〜ＤＱ１５に入力された書き込みデータから情報シンボルが構成されてデータアレイ１０〜１７に保存される一方、その情報シンボルからパリティシンボルが生成されてパリティアレイ２０、２１に保存される。【００２７】
データアレイ１及びパリティアレイ２へのアクセスは、周辺回路、具体的には、ロウデコーダ３と、カラムデコーダ４と、書き込み回路５と、センスアンプ（ＳＡ）回路６と、コントローラ７とを用いて行われる。ロウデコーダ３及びカラムデコーダ４は、アクセスされるメモリセルを選択するために使用される。書き込み回路５は、選択されたメモリセルに対するデータ書き込みに使用される書き込み電流を生成する。本実施例では、データ書き込みは、上述のトグル書き込みによって行われる。センスアンプ回路６は、メモリセルに記憶されているデータを識別するために使用される。コントローラ７は、ロウデコーダ３と、カラムデコーダ４と、書き込み回路５と、センスアンプ回路６とを制御する機能を有している。コントローラ７は、更に、誤り訂正のための様々な演算、例えば、リード・ソロモン符号化や誤り検出を行う機能を有している。【００２８】
図６は、本実施の形態のデータアレイ１０及びデータアレイ１０に対応して設けられたセンスアンプ回路６の構成の詳細を示すブロック図である。データアレイ１０に配置されているメモリセルには、データセル１１と参照セル１２の２種類がある。図７に示されているように、データセル１１と参照セル１２は、ワード線１３とビット線１４とが交差する位置に配置されている。ワード線１３は、Ｘアドレスに応じて選択され、ビット線１４はＹアドレスに応じて選択される。
図６に戻り、データアレイ１０は、２つのエリア１５Ａ、１５Ｂに区分されている。エリア１５Ａは、偶数のＹアドレスのデータを記憶するために使用される領域であり、エリア１５Ｂは、奇数のＹアドレスのデータを記憶するために使用される領域である。一のＸアドレスによって１つのメモリセルの行が指定されるのに対し、一のＹアドレスでは、４つのデータセル１１の列が指定される。即ち、一組のＸアドレスとＹアドレスを指定すると、同一の行に位置する４つのデータセル１１が選択される。後述されるように、この４つのデータセル１１は、一つのデータシンボルを記憶するために使用される。【００２９】
本実施例の説明では、データセル１１の列を区別するためにＱアドレスを使用することがある。アドレスＱ０〜Ｑ３は、Ｙアドレス”０”に対応しており、アドレスＱ４〜Ｑ７は、Ｙアドレス”１”に対応している。更に、アドレスＱ８〜Ｑ１１は、Ｙアドレス”２”に対応しており、アドレスＱ１２〜Ｑ１５は、Ｙアドレス”３”に対応している。他のＱアドレスについても同様である。【００３０】
エリア１５Ａ、１５Ｂのそれぞれに、参照セル１２の列が２つずつ設けられている。エリア１５Ａに設けられている参照セルは、以下、参照セル１２Ａと呼ばれ、エリア１５Ｂに設けられている参照セル１２は、参照セル１２Ｂと呼ばれる。同一のメモリセルの行に位置する（即ち、同一のワード線１３に接続されている）２つの参照セル１２Ａには、互いに相補のデータが書き込まれている。エリア１５Ａに位置するデータセル１１からのデータ読み出しの際には、当該データセル１１と同一の行に位置する２つの参照セル１２Ａに電流が流され、それらの電流から参照信号が発生される。この参照信号は、データ”１”に対応する信号レベルと、データ”０”に対応する信号レベルの中間に対応する信号レベルを有するように発生される。その参照信号と、データセル１１に電流が流されることによって発生するデータ信号とを比較することにより、当該データセル１１のデータが判別される。【００３１】
同一のメモリセルの行に位置する２つの参照セル１２Ａには、互いに相補のデータが記憶されていればよく、２つの参照セル１２Ａのいずれにデータ”１”、”０”が記録されていても良いことに留意されたい。２つの参照セル１２Ａの特性の違いが充分に小さければ、２つの参照セル１２Ａのいずれにデータ”１”、”０”が記録されていても、データ読み出しに影響はない。即ち、２つの参照セル１２Ａは、それぞれデータ”１”、”０”を記憶する状態と、データ”０”、”１”を記憶する状態の何れの状態をとることも許容される。
同様に、同一のメモリセルの行に位置する（即ち、同一のワード線１３に接続されている）２つの参照セル１２Ｂには、互いに相補のデータが書き込まれている。エリア１５Ｂに位置するデータセル１１からのデータ読み出しの際には、該データセル１１と同一の行に位置する２つの参照セル１２Ｂが使用される。【００３２】
センスアンプ回路６は、２つの４ビット・センスアンプ１６Ａ、１６Ｂと、２つの２ビット・センスアンプ１７Ａ、１７Ｂとを備えている。４ビット・センスアンプ１６Ａは、エリア１５Ａに位置するデータセル１１に記憶されているデータの識別に使用される。詳細には、４ビット・センスアンプ１６Ａは、エリア１５Ａに位置する参照セル１２Ａから受け取った信号から参照信号を生成し、その参照信号を用いてエリア１５Ａに位置するデータセル１１に記憶されているデータを識別する。同様に、４ビット・センスアンプ１６Ｂは、エリア１５Ｂに位置するデータセル１１に記憶されているデータの識別に使用される。【００３３】
一方、２ビット・センスアンプ１７Ａ、１７Ｂは、参照セル１２Ａ、１２Ｂに記憶されているデータの識別に使用される。後述されるように、一般的なＭＲＡＭとは異なり、参照セル１２Ａ、１２Ｂは、単に参照信号の生成に使用されるわけではない。参照セル１２Ａ、１２Ｂは、参照信号の生成と共に、パリティシンボルの一部のビットの記憶に使用される。２ビット・センスアンプ１７Ａは、エリア１５Ｂに位置する参照セル１２Ｂから受け取った信号から参照信号を生成し、その参照信号を用いてエリア１５Ａに位置する参照セル１２Ａのデータを識別する。同様に、２ビット・センスアンプ１７Ｂは、エリア１５Ａに位置する参照セル１２Ａから受け取った信号から参照信号を生成し、その参照信号を用いてエリア１５Ｂに位置する参照セル１２Ｂのデータを識別する。【００３４】
一実施例では、他のデータアレイ１１〜１１５及びパリティアレイ２０、２１、並びにそれらに対応して設けられたセンスアンプ回路６も、図２に示されている構成を有する。ただし、他のデータアレイ１１〜１１５及びパリティアレイ２０、２１は、図８に示されているように、行列に配置されたデータセル１１と、２列に配置された参照セル１２とで構成されることも可能である。この場合、センスアンプ回路６は、４ビット・センスアンプで構成される。データアレイ１０と同様に、一のＸアドレスによってメモリセルの行が選択され、一のＹアドレスによってメモリセルの列が４つ選択される。即ち、一組のＸアドレスとＹアドレスを指定すると、同一の行に位置する４つのデータセル１１と、２つの参照セル１２が選択される。４ビット・センスアンプは、選択されたメモリセルの行に位置する２つの参照セル１２から供給される信号を用いて参照信号を生成し、その参照信号を用いてデータセル１１のデータを識別する。【００３５】
次に、本実施例におけるデータ割付を説明する。本実施例では、一組のＸアドレスとＹアドレスが一つのブロックに対応している。即ち、アクセス時にＸアドレス、Ｙアドレスが指定されると、そのＸアドレス、Ｙアドレスに対応する一つのブロックに対するアクセスが行われる。【００３６】
図９Ａと９Ｂは、本実施例におけるバースト誤り訂正符号の符号構成を示す概念図である。図９Ａは、偶数Ｙアドレスに対応するブロックの符号構成を、Ｙアドレス”０”を例として図示しており、図９Ｂは、奇数Ｙアドレスに対応するブロックの符号構成を、Ｙアドレス”１”を例として図示している。【００３７】
図９Ａ、９Ｂに示されているように、各ブロックは、１６個のデータシンボルと、２つのパリティシンボルで構成される。１６個のデータシンボルは、それぞれ、ＭＲＡＭ１０の入出力ＤＱ０〜ＤＱ１５に、即ち、それぞれデータアレイ１０〜１１５に対応付けられている。以下では、入出力ＤＱ０〜ＤＱ１５に対応付けられているデータシンボルを、それぞれ、データシンボルＤＱ０〜ＤＱ１５と記載することがある。更に、２つのパリティシンボルは、それぞれ、パリティアレイ２０、２１に対応付けられている。以下では、パリティアレイ２０、２１に対応付けられたパリティシンボルを、それぞれ、パリティシンボルＰ０、Ｐ１と記載することがある。【００３８】
データアレイ１０〜１１５は、それぞれ、データシンボルＤＱ０〜ＤＱ１５を記憶するために使用される。ただし、データシンボルＤＱ０〜ＤＱ１５の全ビットがデータアレイ１０〜１１５に記憶されるのではない。データシンボルＤＱ０〜ＤＱ１５のそれぞれを構成する５ビットのうちの上位４ビットは、それぞれデータアレイ１０〜１１５に記憶される。残りの下位１ビットは、所定値に固定され、実際にはデータアレイ１０〜１１５には記憶されない。実際にデータアレイ１０〜１１５には記憶されないデータシンボルＤＱ０〜ＤＱ１５のビットを、以下では、ダミービットと呼ぶこととする。【００３９】
同様に、パリティアレイ２０、２１は、それぞれ、パリティシンボルＰ０、Ｐ１を記憶するために使用される。ただし、パリティシンボルＰ０、Ｐ１の全ビットが、パリティアレイ２０、２１に記憶されるのではない。パリティシンボルＰ０、Ｐ１を構成する５ビットのうちの４ビットは、それぞれ、パリティアレイ２０、２１に記憶される。残りの１ビットは、データアレイ１０の参照セル１２Ａ、１２Ｂに記憶される。パリティアレイ２０、２１に記憶されない残りの１ビットを、以下では、残余ビットと記載することとする。より詳細には、あるＸアドレスのある偶数Ｙアドレスに対応するブロックのパリティシンボルＰ０、Ｐ１の残余ビットは、データアレイ１０の該Ｘアドレスに対応するメモリセルの行に位置する参照セル１２Ｂに記憶される。図６及び図９Ａでは、参照セル１２Ｂに記憶されている残余ビットがＱｒｅｆ０として参照されている。一方、あるＸアドレスの奇数ＹアドレスブロックのパリティシンボルＰ０、Ｐ１の残余ビットは、データアレイ１０の該Ｘアドレスに対応するメモリセルの行に位置する参照セル１２Ａに記憶される。図６及び図９Ｂでは、参照セル１２Ａに記憶されている残余ビットは、Ｑｒｅｆ１として参照されている。【００４０】
上述されているように、同一のＸアドレスに対応する２つの参照セル１２Ａは、その一方がデータ”１”を他方がデータ”０”でなくてはならず、同一のＸアドレスに対応する２つの参照セル１２Ｂも、同様である。したがって、実質的には、２つの参照セル１２Ａ（又は２つの参照セル１２Ｂ）で１ビットのデータしか記憶できない。これでは、２つのパリティシンボルＰ０、Ｐ１それぞれの残余ビットを記憶することはできないと考えられるかもしれない。【００４１】
しかし、このような問題は、データシンボルＤＱ０〜ＤＱ１５のダミービットを適切に決定することによって回避できる。具体的には、データシンボルＤＱ０〜ＤＱ１５のダミービットのうちの奇数個を”１”に設定することにより、２つのパリティシンボルＰ０、Ｐ１の残余ビットを、それぞれ、”１”、”０”の組み合わせ、又は、”０”、”１”の組み合わせのいずれかに制限することができる。なぜなら、データシンボルＤＱ０〜ＤＱ１５の値をそれぞれＤ０〜Ｄ１５とし、パリティシンボルＰ０、Ｐ１の値をそれぞれＰ０、Ｐ１としたとき、リード・ソロモン符号では、下記の式が成立するからである：
Ｄ０＋Ｄ１＋Ｄ２＋・・・＋Ｄ１５＋Ｐ０＋Ｐ１＝０
ここで、Ｄ０〜Ｄ１５、及びＰ０、Ｐ１は、ガロア体ＧＦ（２５）の元であり、加算は、ガロア体ＧＦ（２５）上の演算として定義されることに留意されたい。上記の式は、データシンボルＤＱ０〜ＤＱ１５の最下位ビットのうちの奇数個が１であれば、パリティシンボルＰ０、Ｐ１の一方が”０”、他方が”１”でなければならないことを意味している。これは、一方がデータ”１”、他方がデータ”０”を記憶する２つの参照セル１２Ａ（又は２つの参照セル１２Ｂ）で２つのパリティシンボルＰ０、Ｐ１の残余ビットを記憶できることを意味している。【００４２】
以下では、図９Ａ、９Ｂに図示されている符号構成に対応したリード動作、及び、ライト動作を説明する。
（リード動作）
図１０を参照して、リード動作では、まず、選択されたＸアドレス、Ｙアドレスに対応するブロックのデータシンボル及びパリティシンボルのデータがパリティアレイ２０、２１から読み出される（ステップＳ０１）。
より具体的には、リード動作が開始されると、データアレイ１０〜１１５、パリティアレイ２０、２１のそれぞれにおいて、選択されたＸアドレス、Ｙアドレスの組によって選択される４つのデータセル１１から４ビットのデータが読み出される。詳細には、Ｙアドレスが偶数Ｙアドレスである場合には、エリア１５Ａに位置する参照セル１２Ａを用いて生成された参照信号を用いてエリア１５Ａに位置するデータセル１１からデータが読み出され、奇数Ｙアドレスである場合には、エリア１５Ｂに位置する参照セル１２Ｂを用いて生成された参照信号を用いてエリア１５Ｂに位置するデータセル１１からデータが読み出される。以下では、データ読み出しに使用される参照信号の生成に使用された参照セルを選択参照セルと呼ぶこととする。
更に、データアレイ１０の参照セル１２からパリティシンボルＰ０、Ｐ１の残余ビットが読み出される。指定されたＹアドレスが偶数Ｙアドレスである場合には、指定されたＸアドレスに対応する２つの参照セル１２Ｂから、参照セル１２Ａを用いて生成された参照信号を用いて２ビットのデータが読み出される。一方、奇数Ｙアドレスである場合には、指定されたＸアドレスに対応する２つの参照セル１２Ａから、参照セル１２Ｂを用いて生成された参照信号を用いて２ビットのデータが読み出される。以下では、パリティシンボルＰ０、Ｐ１の残余ビットが読み出された参照セルを、非選択参照セルと呼ぶこととする。
コントローラ７は、データアレイ１０〜１１５から読み出された４ビットのデータに所定のダミービットを付け加えて、１６個のデータシンボルを再生する。更に、コントローラ７は、パリティアレイ２０、２１から読み出された４ビットのデータに非選択参照セルから読み出された残余ビットを付け加えて、２個のパリティシンボルを再生する。【００４３】
続いて、コントローラ７は、再生した１６個のデータシンボル及び２個のパリティシンボルを用いて誤り検出を行う（ステップＳ０２）。
誤りが検出されなかった場合には（ステップＳ０３）、コントローラ７は、データアレイ１０〜１１５から読み出された読み出しデータをそのまま出力し（ステップＳ０４）、読み出し動作が完了する。【００４４】
一方、誤りが検出された場合には、コントローラ７は、誤り訂正が可能であるかを判断する（ステップＳ０５）。本実施例では、一のシンボルに誤りが検出された場合には、誤りのビット数に関らず誤り訂正が可能である。誤り訂正が不可能である場合、コントローラ７は、エラー信号を出力し、リード動作を完了させる（ステップＳ１２）。
誤り訂正が可能である場合、コントローラ７は、データアレイ１０〜１１５から読み出された読み出しデータを訂正し、訂正された読み出しデータを出力する（ステップＳ０６）。【００４５】
更にコントローラ７は、データアレイ１０〜１１５、及びパリティアレイ２０、２１について誤り訂正動作を行う（ステップＳ０７〜Ｓ１１）。この誤り訂正動作の一つの主題は、データセル１１と、選択参照セル（参照信号の生成に使用された参照セル）と、非選択参照セル（パリティシンボルの残余ビットが読み出された参照セル）とのいずれを訂正すべきであるかである。データセル１１及び非選択参照セルにデータ誤りが検出されても、それらに実際に記憶されているデータに誤りがあるとは限らない。参照信号の生成に使用された選択参照セルにデータ誤りがあった場合にも、データセル１１及び非選択参照セルにデータ誤りが検出され得る。本実施例では、誤り検出において検出された誤りパターンの内容に応じて、適切なメモリセルのデータが訂正される。【００４６】
具体的には、本実施例では、データセル１１及び非選択参照セルの両方にデータ誤りが検出された場合には、対応する選択参照セルのデータが反転されて訂正される。これは、メモリセルのデータ誤り率が充分に低減されている状況において、データセル１１及び非選択参照セルの両方にデータ誤りが検出された場合には選択参照セルのデータ誤りが発生している確率が最も高いからである。一方、データセル１１にのみデータ誤りが検出された場合にはデータセル１１のデータが訂正され、非選択参照セルのみにデータ誤りが検出された場合には、非選択参照セルのデータが訂正される。
より具体的には、誤りが検出され、且つ、非選択参照セルに誤りが検出されない場合（即ち、データセル１１にのみデータ誤りが検出された場合）、図１１Ａに示されているように、誤りが発見されたデータセル１１のデータが反転され、これにより、データセル１１のデータが訂正される（ステップＳ１１）。【００４７】
一方、非選択参照セルに誤りが検出され（ステップＳ０７）、且つ、データセル１１にも誤りが検出された場合（ステップＳ０８）、図１１Ｂに示されているように、コントローラ７は、選択参照セルに誤りがあると判断し、対応する選択参照セルの訂正を行う。選択参照セルの訂正は、参照信号の生成に使用された２つの参照セルのうちの一方のみのデータを反転することによって行われる。選択参照セルに誤りがある状態とは、（データ”１”、データ”０”の何れであるかは不明であるが）２つの参照セルに同一のデータが書き込まれている状態であるから、一方のみのデータを反転することによって選択参照セルの訂正を行うことができる。【００４８】
更に、非選択参照セルに誤りが検出され（ステップＳ０７）、且つ、データセル１１には誤りが検出されない場合には（ステップＳ０８）、図１１Ｃに示されているように、コントローラ７は、非選択参照セルに誤りがあると判断し、データ誤りが検出された非選択参照セルの訂正を行う。【００４９】
このようなリード動作によれば、データセル１１及び参照セル１２に書き込まれているデータを高い確率で正しく訂正することができる。【００５０】
（ライト動作）
上述されているように、トグル書き込みでは、書き込み動作の前にデータ読み出しが行われる。読み出されたデータに誤りがあっても、データセル１１及び非選択参照セルのデータが誤っている場合には書き込み動作を行うことによってデータセル１１及び非選択参照セルの誤りを自動的に訂正することができる。しかし、選択参照セルのデータが誤っていると、このデータ読み出しにおいて対象メモリセルから誤ったデータが読み出され、その結果、対象メモリセルに誤ったデータが書き込まれる可能性がある。したがって、トグル書き込みでは、選択参照セルに保存されているデータが誤っていても、正しくデータを書き込むことができることが重要である。本実施例のライト動作では、選択参照セルに誤りがあった場合には当該選択参照セルの訂正が行われ、その後にデータセル１１へのトグル書き込みが行われる。具体的には、下記の手順によってライト動作が行われる。【００５１】
一のデータ入出力あたりに４ビットの書き込みデータが与えられると、その書き込みデータが符号化される（ステップＳ２１）。詳細には、コントローラ７は、データ入出力ＤＱ０〜ＤＱ１５のそれぞれに与えられた４ビットの書き込みデータに１ビットのダミービットを付加してデータシンボルＤＱ０〜ＤＱ１５を生成する。更に、コントローラ７は、そのデータシンボルＤＱ０〜ＤＱ１５からパリティシンボルＰ０、Ｐ１を算出する。上述されているように、データシンボルＤＱ０〜ＤＱ１５のダミービットは、パリティシンボルＰ０、Ｐ１の残余ビット（最下位ビット）の一方がデータ”０”、他方がデータ”１”であるように決定されている。【００５２】
更に、選択されたＸアドレス、Ｙアドレスに対応するブロックのデータシンボル及びパリティシンボルのデータがデータアレイ１０〜１１５、及びパリティアレイ２０、２１から読み出される（ステップＳ２２）。ステップＳ２２におけるデータ読み出しは、上述のステップＳ０１と同様にして行われる。即ち、データアレイ１０〜１１５、パリティアレイ２０、２１のそれぞれにおいて、選択されたＸアドレス、Ｙアドレスの組によって選択される４つのデータセル１１から４ビットのデータが読み出される。更に、データアレイ１０の対応する非選択参照セルからパリティシンボルＰ０、Ｐ１の残余ビットが読み出される。コントローラ７は、データアレイ１０〜１１５のそれぞれから読み出された４ビットのデータにダミービットを付加してデータシンボルを再生する。更に、コントローラ７は、パリティアレイ２０、２１のそれぞれから読み出された４ビットのデータに非選択参照セルから読み出された残余ビットを付加してパリティシンボルを再生する。【００５３】
以下においては、書き込みデータから算出されたデータシンボルを、データアレイ１０〜１１５、パリティアレイ２０、２１から読み出されたデータから再生されたデータシンボルと区別するために、前者を書き込みデータシンボル、後者を読み出しデータシンボルと記載することにする。更に、書き込みデータから算出されたパリティシンボルを、データアレイ１０〜１１５、パリティアレイ２０、２１から読み出されたデータから再生されたパリティと区別するために、前者を書き込みパリティシンボル、後者を読み出しパリティシンボルと記載することにする。【００５４】
続いて、コントローラ７は、読み出しデータシンボルＤＱ０〜ＤＱ１５及び読み出しパリティシンボルＰ０、Ｐ１を用いて、データアレイ１０〜１１５、及びパリティアレイ２０、２１に記憶されているデータの誤り検出を行う（ステップＳ２３）。【００５５】
誤りが検出されなかった場合には（ステップＳ２４）、コントローラ７は、書き込みデータ、及び算出された書き込みパリティシンボルを、トグル書き込み動作によって対応するメモリセルに書き込む（ステップＳ３１）。書き込みデータが、データアレイ１０〜１１５の選択されたＸアドレス、Ｙアドレスの組によって選択されるデータセル１１に書き込まれる。書き込みデータシンボルの全体がデータアレイ１０〜１１５のデータセル１１に書き込まれるのではなく、書き込みデータの４ビットのみがデータセル１１に書き込まれる。更に、書き込みパリティシンボルのうちの上位４ビットがパリティアレイ２０、２１のデータセル１１に書き込まれ、最下位ビット（残余ビット）がデータアレイ１０の非選択参照セルに書き込まれる。【００５６】
より具体的には、書き込みデータシンボルのビットが、ステップＳ２２において読み出された対応する読み出しデータシンボルのビットと一致しない場合、コントローラ７は、対応するデータセル１１への書き込み電流の供給を許可する。同様に、書き込みパリティシンボルのビットが、対応する読み出しパリティシンボルのビットと一致しない場合、コントローラ７は、対応するデータセル１１への書き込み電流の供給を許可する。更に、対象のデータセル１１に書き込み電流が供給され、これにより、当該データセル１１のデータがトグル書き込みによって反転される。誤り訂正後の読み出しデータシンボルのビットと、対応する書き込みデータシンボルのビットとが一致する場合、及び誤り訂正後の読み出しパリティシンボルのビットと、対応する書き込みパリティシンボルのビットとが一致する場合にはトグル書き込みは行われない。【００５７】
一方、ステップＳ２３においてデータ誤りが検出された場合、コントローラ７は、誤り訂正が可能であるかを判断する（ステップＳ２５）。本実施例では、一のシンボルに誤りが検出された場合には、誤りのビット数に関らず誤り訂正が可能である。誤り訂正が不可能である場合、コントローラ７は、エラー信号を出力し、ライト動作を完了させる（ステップＳ１２）。【００５８】
誤り訂正が可能である場合、コントローラ７は、誤り検出によって得られた誤りパターンに応じて異なる動作を行う。データ誤りが検出されたにも関らず非選択参照セルにデータ誤りがない場合（即ち、データセル１１にのみデータ誤りが検出された場合）、ステップＳ３１と同様の手順でデータ書き込みを行う。データ書き込みにより、自動的に、データセル１１にデータ誤りがある状態が解消される。【００５９】
また、非選択参照セルにデータ誤りが検出され（ステップＳ２６）、且つ、データセル１１にはデータ誤りが検出されなかった場合にも（ステップＳ２８）、ステップＳ３１と同様の手順でデータ書き込みを行う。データセル１１へのデータ書き込みと同時に、非選択参照セルへのデータ書き込みが行われる。データ書き込みにより、自動的に、データセル１１にデータ誤りがある状態が解消される。【００６０】
一方、非選択参照セルにデータ誤りが検出され（ステップＳ２６）、且つ、データセル１１にもデータ誤りが検出された場合には（ステップＳ２７）、選択参照セルのデータの訂正が行われる（ステップＳ２８）。上述のように、選択参照セルの訂正は、参照信号の生成に使用された２つの参照セルのうちの一方のみのデータを反転することによって行われる。【００６１】
選択参照セルの訂正と同時に、データセル１１へのデータ書き込みが行われる。コントローラ７は、読み出しデータシンボル及び読み出しパリティシンボルに対して誤り訂正を行い、誤り訂正後の読み出しデータシンボル及び読み出しパリティシンボルと、書き込みデータシンボル及び書き込みパリティシンボルとを用いてデータセル１１へのデータ書き込みを行う。書き込みデータシンボルのビットと、対応する誤り訂正後の読み出しデータシンボルのビットとが一致しない場合、コントローラ７は、対応するデータセル１１への書き込み電流の供給を許可する。同様に、コントローラ７は、書き込みデータシンボルのビットと、対応する誤り訂正後の読み出しデータシンボルのビットとが一致しない場合、コントローラ７は、対応するデータセル１１への書き込み電流の供給を許可する。更に、対象のデータセル１１に書き込み電流が供給され、これにより、当該データセル１１のデータがトグル書き込みによって反転される。書き込みデータシンボルのビットと、対応する誤り訂正後の読み出しデータシンボルのビットとが一致する場合、及び書き込みパリティシンボルのビットと、誤り訂正後の読み出しパリティシンボルのビットとが一致する場合にはトグル書き込みは行われない。【００６２】
ステップＳ３１におけるデータ書き込みとは異なり、データ書き込みに使用されるのが、ステップＳ２２において読み出された読み出しデータシンボル、読み出しパリティシンボルのデータではなく、コントローラ７によって生成される誤り訂正後のデータシンボル、パリティシンボルのデータであることに留意されたい。選択参照セルに誤りがある場合には、ステップＳ２２において読み出されたデータシンボル、パリティシンボルのデータは、データセル１１に実際に記憶されているデータとは相違する。従って、選択参照セルに誤りがある場合に、それを用いて読み出された読み出しデータシンボル、読み出しパリティシンボルをデータ書き込みに使用することは、誤ったデータをデータセル１１に書き込むことになる。本実施例では、誤り訂正後の読み出しデータシンボル、読み出しパリティシンボルのデータ（このデータは、データセル１１に実際に記憶されているデータに一致する）がデータ書き込みに使用されることにより、正しいデータ書き込みを実現できる。【００６３】
以上の手順でライト動作を行うことにより、高い確率で正しく選択参照セルの訂正を行いながら、データ書き込みを行うことができる。
【図１】
2007046491.tif 000003
【図２】
2007046491.tif 000004
【図３】
2007046491.tif 000005
【図４】
2007046491.tif 000006
【図５】
2007046491.tif 000007
【図６】
2007046491.tif 000008
【図７】
2007046491.tif 000009
【図８】
2007046491.tif 000010
【図９Ａ】
2007046491.tif 000011
【図９Ｂ】
2007046491.tif 000012
【図１０】
2007046491.tif 000013
【図１１Ａ】
2007046491.tif 000014
【図１１Ｂ】
2007046491.tif 000015
【図１１Ｃ】
2007046491.tif 000016
【図１２】
2007046491.tif 000017
【国際調査報告】
2007046491.tif 000018
2007046491.tif 000019
2007046491.tif 000020
2007046491.tif 000021