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