(57)【要約】  【課題】  占有面積の拡大を招くことなく、ライン故障が発生した場合でも格納したデータのエラー検出、エラー訂正を可能にした不揮発性メモリを実現する。  【解決手段】  メモリセルブロックＭＢと、複数のワード線から一のワード線を選択するワード線選択回路１１と、複数のビット線から一のビット線を選択するビット線選択回路１２と、外部から与えられる書き込み対象となる通常データに対し、誤り訂正符号を付して一連のＥＣＣ付きデータを形成するＥＣＣデータ作成部２を備え、同一のＥＣＣ付きデータ内の各ビットの書き込み先メモリセルが、行方向及び列方向に相互に異なる位置となるように決定される。【選択図】  図１
2011243249.tif 000002
【特許請求の範囲】
【請求項１】
２次元のＸＹ平面上にマトリクス状に配置された複数のメモリセルと、Ｘ方向に延伸する複数のワード線及びＹ方向に延伸する複数のビット線とを有し、内部Ｘ座標が同一の複数のメモリセルは同一のビット線に接続し、内部Ｙ座標が同一の複数のメモリセルは同一のワード線に接続する構成であるメモリセルブロックと、
各ワード線への電圧印加制御を行うことで、前記複数のワード線から一のワード線を選択するワード線選択回路と、
各ビット線への電圧印加制御を行うことで、前記複数のビット線から一のビット線を選択するビット線選択回路と、
外部から与えられる複数ビットの入力データに対し、複数ビットの誤り訂正符号を付して複数ビットからなる一連のＥＣＣ付きデータを形成するＥＣＣデータ作成部と、を備え、
同一の前記ＥＣＣ付きデータを構成する各ビットの書き込み先メモリセルを行方向及び列方向に相互に異ならせたことを特徴とする不揮発性メモリ。
【請求項２】
前記入力データの前記メモリセルブロック内での書き込み先を示すアドレス情報が外部から入力されるアドレスデコード部を備え、
前記アドレスデコード部は、前記アドレス情報に基づいて、前記ＥＣＣ付きデータの先頭ビットの書き込み先メモリセルの前記内部Ｙ座標である先頭ビット用内部Ｙ座標を前記ワード線選択回路に与え、
前記ビット線選択回路は、既定の一のビット線を選択した後、各ビットの書き込み或いは読み出しのタイミングに応じて選択ビット線を同一方向に１ラインずつシフトさせ、
前記ワード線選択回路は、前記先頭ビット用内部Ｙ座標によって特定されるワード線を選択した後、前記タイミングに応じて選択ワード線を所定の規則の下で順次切り替えることを特徴とする請求項１に記載の不揮発性メモリ。
【請求項３】
前記ワード線選択回路が、前記先頭ビット用内部Ｙ座標によって特定されるワード線を選択した後、前記タイミングに応じて前記選択ワード線を同一方向に１ラインずつシフトさせることを特徴とする請求項２に記載の不揮発性メモリ。
【請求項４】
前記入力データの前記メモリセルブロック内での書き込み先を示すアドレス情報が外部から入力されるアドレスデコード部を備え、
前記アドレスデコード部は、前記アドレス情報に基づいて前記ＥＣＣ付きデータの先頭ビットの書き込み先メモリセルの前記内部Ｙ座標である先頭ビット用内部Ｙ座標を前記ワード線選択回路に、前記先頭ビットの書き込み先メモリセルの前記内部Ｘ座標である先頭ビット用内部Ｘ座標を前記ビット線選択回路に夫々与え、
前記ビット線選択回路は、前記先頭ビット用内部Ｘ座標によって特定されるビット線を選択した後、各ビットの書き込み或いは読み出しのタイミングに応じて選択ビット線を所定の規則の下で順次切り換え、
前記ワード線選択回路は、前記先頭ビット用内部Ｙ座標によって規定されるワード線を選択した後、前記タイミングに応じて選択ワード線を所定の規則の下で順次切り替えることを特徴とする請求項１に記載の不揮発性メモリ
【請求項５】
前記ビット線選択回路は、直前のビットに係る書き込み先メモリセルの前記内部Ｘ座標の値に正の所定数を増加した値が、前記メモリセルブロック内で採り得る前記内部Ｘ座標の最大値以下であれば当該演算結果によって、最大値を超えれば採り得る前記内部Ｘ座標の最小値と最大値の幅で規定される最大ビット幅を当該演算結果から差し引いた値によって特定されるビット線を選択し、
前記ワード線選択回路は、直前のビットに係る書き込み先メモリセルの前記内部Ｙ座標の値に正の所定数を増加した値が、前記メモリセルブロック内で採り得る前記内部Ｙ座標の最大値以下であれば当該演算結果によって、最大値を超えれば採り得る前記内部Ｙ座標の最小値と最大値の幅で規定される最大ワード数を当該演算結果から差し引いた値によって特定されるワード線を選択することを特徴とする請求項４に記載の不揮発性メモリ。
【請求項６】
前記ビット線選択回路は、直前のビットに係る書き込み先メモリセルの前記内部Ｘ座標の値に正の所定数を減算した値が、前記メモリセルブロック内で採り得る前記内部Ｘ座標の最小値以上であれば当該演算結果によって、最小値を下回れば採り得る前記内部Ｘ座標の最小値と最大値の幅で規定される最大ビット幅を当該演算結果に加算した値によって特定されるビット線を選択し、
前記ワード線選択回路は、直前のビットに係る書き込み先メモリセルの前記内部Ｙ座標の値に正の所定数を減算した値が、前記メモリセルブロック内で採り得る前記内部Ｙ座標の最小値以上であれば当該演算結果によって、最小値を下回れば採り得る前記内部Ｙ座標の最小値と最大値の幅で規定される最大ワード数を当該演算結果に加算した値によって特定されるワード線を選択することを特徴とする請求項４に記載の不揮発性メモリ。
【請求項７】
前記ビット線選択回路は、直前のビットに係る書き込み先メモリセルの前記内部Ｘ座標の値に正の所定数を増加した値が、前記メモリセルブロック内で採り得る前記内部Ｘ座標の最大値以下であれば当該演算結果によって、最大値を超えれば採り得る前記内部Ｘ座標の最小値と最大値の幅で規定される最大ビット幅を当該演算結果から差し引いた値によって特定されるビット線を選択し、
前記ワード線選択回路は、直前のビットに係る書き込み先メモリセルの前記内部Ｙ座標の値に正の所定数を減算した値が、前記メモリセルブロック内で採り得る前記内部Ｙ座標の最小値以上であれば当該演算結果によって、最小値を下回れば採り得る前記内部Ｙ座標の最小値と最大値の幅で規定される最大ワード数を当該演算結果に加算した値によって特定されるワード線を選択することを特徴とする請求項４に記載の不揮発性メモリ。
【請求項８】
前記正の所定数の値が、前記内部Ｘ座標を決定する場合と前記内部Ｙ座標を決定する場合とで異なることを特徴とする請求項５〜７の何れか１項に記載の不揮発性メモリ。
【請求項９】
前記ビット線選択回路は、採り得る前記内部Ｘ座標値を各一回ずつ出現させて作成した内部Ｘ座標決定用円順列に従って、直前のビットに係る書き込み先メモリセルの前記内部Ｘ座標の次に登場する値をもって対象ビットの書き込み先メモリセルの前記内部Ｘ座標とし、
前記ワード線選択回路は、採り得る前記内部Ｙ座標値を各一回ずつ出現させて作成した内部Ｙ座標決定用円順列に従って、直前のビットに係る書き込み先メモリセルの前記内部Ｙ座標の次に登場する値をもって前記対象ビットの書き込み先メモリセルの前記内部Ｙ座標とすることを特徴とする請求項４に記載の不揮発性メモリ。
【請求項１０】
前記入力データがトリミング素子用のトリミングデータであることを特徴とする請求項１〜９の何れか１項に記載の不揮発性メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤り訂正符号（Error Correctiong Code：以下「ＥＣＣ」と表記）を使用してデータの訂正或いは検出を行う不揮発性メモリに関する。
【背景技術】
【０００２】
近年、ＬＳＩの微細加工技術、メモリセルを縦方向に積層する３次元加工技術、更には一のメモリセルに２ｂｉｔ以上のデータを格納できる多値技術等の発展により、一のメモリチップでギガビットのデータを格納できる大容量の不揮発性メモリが実現している。このような大容量メモリは、ＳＳＤ（Solid State Drive）や小型のメモリーカードに応用され、ストレージデバイスの代表であるハードディスクを置き換えるまでになっている。
【０００３】
また、不揮発性メモリの製造に使われるプロセスは、通常のロジックＬＳＩ製造に使われるＣＭＯＳプロセスと互換性が高いため、これらの不揮発性メモリはＣＰＵやコントローラなどのロジックＬＳＩの内蔵メモリ用途としても利用されている。これらの用途として利用される不揮発性メモリは、比較的小容量（数百ビットから数キロビット）であることが多い。
【０００４】
不揮発性メモリは、電気的にデータ書き換えが可能であり、ＣＰＵ中のマイクロコード格納、システム機器のコードプログラム格納、或いはチップ自身やシステム機器のＩＤデータ格納などの用途として用いることができる。更には、ＬＳＩ製造後にそれぞれのチップ個別に回路特性を調整するための特性補正データを格納するトリミング素子としても利用されている。
【０００５】
ところで、不揮発性メモリには、メモリセルの構造上特有の故障モードが存在する。かかる故障が生じると、格納したデータ内容が変化してしまい、システム機器の動作に重大な影響を及ぼしてしまう。
【０００６】
この問題に対する対策の一つとして、通常の入力データと共にエラー検出及び訂正のための誤り訂正符号についても併せて格納することが一般的に知られている。誤り訂正符号を格納しておけば、故障モードにより通常のデータ内容が変化してしまっても、データ内容の変化を検出したり（エラー検出）、変化したデータを正常なデータに訂正する（エラー訂正）ことが可能となる。つまり、不揮発性メモリのデータ内容が変化してもシステム機器に影響を及ぼすことがない。
【０００７】
しかしながら、そのエラー訂正やエラー検出能力には限界がある。例えば、図６に示すように８ビットの入力データＡ（Ｎ）に５ビットの誤り訂正符号Ａ（Ｅ）を付加し、一連のデータ（ＥＣＣ付きデータ）Ａとして計１３ビットのデータを書き込む場合を想定する。このデータを書き込むに際してエラーが発生した場合、その１３ビットのデータのうち１ビットのエラーであればエラー訂正が可能であり、２ビットまでのエラーであればエラー検出が可能である。しかし、３ビット以上のエラーであれば、もはや検出も訂正もできなくなってしまう。
【０００８】
すなわち、一連のＥＣＣ付きデータの各ビットが格納されている複数のメモリセルで同時にエラーが生じた場合は、ＥＣＣ付きデータを用いても（入力データに誤り訂正符号を付しても）データエラーを解決できない。
【０００９】
ところで、複数の不揮発性メモリがアレイ状に配置されたメモリセルブロックにおいては、例えば図７に示すように、複数のメモリセルブロック（ＭＢ１〜ＭＢ４）に物理的に分割され、データ書き込み／読み出しなどの各制御回路が各メモリセルブロック別に備えられていることが多い。
【００１０】
また、一のメモリセルブロック内では、複数のワード線と複数のビット線が格子状に配置され、ワード線とビット線の交点にメモリセルが形成される。つまり、各メモリセルは２次元のマトリクス状に配置され、行方向に並んだメモリセルは同一のワード線に接続し、列方向に並んだメモリセルは同一のビット線に接続する。図８に、一般的なメモリセルブロックＭＢの内部構成図を示す。ｍ本のビット線（ＢＬ１，ＢＬ２，……，ＢＬｍ）とｎ本のワード線（ＷＬ１，ＷＬ２，……，ＷＬｎ）を有し、それぞれの交点に一のメモリセルが形成される。すなわち、メモリセルブロックには合計ｍ×ｎ個のメモリセルが存在する。
【００１１】
このように構成されるメモリセルブロックを有する不揮発性メモリにおいては、読み出し／書き込み制御回路に故障が発生した場合、その回路が制御するメモリセルブロック内で多数のデータエラーが同時に発生する（ブロック故障）。また、ワード線やビット線に故障が発生した場合には、そのワード線やビット線に接続されたメモリセルで多数のデータエラーが同時に発生する（ライン故障）。
【００１２】
図６に示したＥＣＣ付きデータＡ内の各ビットは、同じメモリセルブロック内において、同一のワード線に接続された各メモリセルに格納される。このため、ブロック故障やライン故障が発生した場合、同一のＥＣＣ付きデータ内で同時に多数のデータエラーが発生してしまう。このとき、ＥＣＣの制約のためエラー訂正やエラー検出ができなくなる。
【００１３】
このような問題を解決するために、ＥＣＣ付きデータの各ビットをぞれぞれ別のメモリセルブロックに記録する技術が下記特許文献１に開示されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００５−２３４８８３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
特許文献１の技術を用いれば、あるメモリセルブロックでブロック故障が発生しても一のデータ群内でその故障ブロックに含まれているデータは１ビットのみであるので、エラー訂正やエラー検出が可能である。
【００１６】
しかしながら、特許文献１の技術は、大容量メモリに対しては適用できるものの、比較的小容量のメモリに対しては適用が困難である。すなわち、大容量のメモリであればメモリセルを複数の物理的に分離されたメモリセルブロックに分割することが可能であるが、トリミング素子向けなどの比較的小容量のメモリでは、回路面積増大を避けるためひとつのメモリセルブロックしかない場合が多くこの技術が利用できない。
【００１７】
更に、特許文献１の技術では、ブロック故障には対応できてもライン故障には対応できない。
【００１８】
ライン故障対策として、メモリセルブロックの外周にダミーのワード線やビット線を用意する技術が一般的に存在する。ＬＳＩ製造時のフォトアライメント工程の精度悪さに起因して外周部のワード線やビット線の特性がバラつき、外周部のワード線やビット線でライン故障が発生することが多いことが知られている。そこで、外周部のワード線やビット線に接続されているメモリセルについては実際には使用せずダミーとし、特性が安定している内部のメモリセルのみを使用するという技術である。しかしながら、ダミーのワード線やビット線を用意するとメモリセルブロックの回路面積が増えるためＬＳＩが大きくなり、製造コストの増大につながるという欠点がある。
【００１９】
本発明は、上記の問題点に鑑み、ＥＣＣによりエラー訂正やエラー検出が可能な不揮発性メモリにおいて、メモリセルブロック上にライン故障が発生した場合でも、同一のＥＣＣ付きデータ内において複数のビットが一時にデータエラーとなるのを抑制し、エラー訂正やエラー検出を可能とすることを目的とする。
【課題を解決するための手段】
【００２０】
上記目的を達成するため、本発明の不揮発性メモリは、書き込み対象となる入力データに誤り訂正符号を付して作成された一連のＥＣＣ付きデータを構成する各ビットの書き込み先メモリセルを、行方向及び列方向に相互に異ならせた点に特徴を有する。なお、各メモリセルは、２次元のＸＹ平面上にマトリクス状に配置されており、内部Ｘ座標が同一の複数のメモリセルは同一のビット線に接続し、内部Ｙ座標が同一の複数のメモリセルは同一のワード線に接続する構成である。
【００２１】
このように構成した場合、ワード線やビット線にライン故障が生じた場合であっても、同一のＥＣＣ付きデータを構成する各ビットは、それぞれが異なるワード線並びにビット線上のメモリセルに格納されているため、同時に複数ビットのデータエラーが生じることが防止される。よって、ＥＣＣ付きデータを読み出すことでデータエラーの検出が可能となり、更にはこのＥＣＣ付きデータに基づいて正しい入力データを復元することが可能となる。
【００２２】
同一のＥＣＣ付きデータを構成する各ビットの書き込み先メモリセルを、行方向及び列方向に相互に異ならせるためには、種々の方法が想定される。
【００２３】
一の方法としては、不揮発性メモリ内に前記入力データのメモリセルブロック内での書き込み先を示すアドレス情報が外部から入力されるアドレスデコード部を備えておき、このアドレスデコード部が、前記アドレス情報に基づいて、ＥＣＣ付きデータの先頭ビットの書き込み先メモリセルの内部Ｙ座標（これを「先頭ビット用内部Ｙ座標」と呼ぶ）を前記ワード線選択回路に与える。ワード線選択回路は、前記先頭ビット用内部Ｙ座標によって特定されるワード線を選択した後、各ビットの書き込み或いは読み出しのタイミングに応じて選択ワード線を所定の規則の下で順次切り替える。一方、ビット線選択回路は、既定の一のビット線を選択した後、ワード線の切り替えと同タイミングで選択ビット線を同一方向に１ラインずつシフトさせる。
【００２４】
書き込み時において、指定されたアドレス情報に基づいて、まず一のワード線を選択するという動作は従来の動作と同じである。そして、従来であれば、同一のＥＣＣ付きデータの書き込み時において選択ワード線を固定したまま、各ビットの情報に応じた電圧を各ビット線に印加することで、選択ワード線に接続した各メモリセルに各ビット情報を書き込む構成であった。
【００２５】
これに対し、上記構成の場合、一連のデータを構成する各ビットを異なるビット線上のメモリセルに書き込むという点については同じであるが、各ビットを各メモリセルに書き込むタイミングをビット毎にずらし、各ビット毎の書き込みタイミングに応じて選択ワード線も１ずつシフトさせる点が異なる。これにより、同一のＥＣＣ付きデータの各ビットは、行方向及び列方向に相互に異なる複数のメモリセルに分散して書き込まれる。
【００２６】
そして、このように各ビットが分散して書き込まれたＥＣＣ付きデータを読み出す場合においても、書き込み時と同様の処理を行う。つまり、先頭ビットが書き込まれているメモリセルが接続しているワード線及びビット線を選択した後、ビット毎の読み出しタイミングに応じて選択ワード線及び選択ビット線を順次切り換える。上記構成の場合には、先頭ビットに対応したビット線は既定のビット線としているため、少なくとも外部アドレス情報によって先頭ビット用内部Ｙ座標を指定すれば良い。
【００２７】
なお、各ビットが格納されるメモリセルの位置（内部Ｙ座標）を、必ずしも１ずつずらす必要はなく、２以上の間隔でずらしても良い。
【００２８】
更に、ＥＣＣ付きデータの先頭ビットの書き込み先メモリセルの内部Ｙ座標のみならず、内部Ｘ座標（これを「先頭ビット用内部Ｘ座標」と呼ぶ）についても外部アドレス情報に基づいて決定する構成としても良い。このとき、先頭ビット以後の各ビットの書き込み先メモリセルを、直前ビットの書き込み先メモリセルの座標（内部Ｘ座標、内部Ｙ座標）に所定数を加算或いは減算して得られる座標によって決定する。
【００２９】
この方法によっても、同一のＥＣＣ付きデータの各ビットを行及び列方向に相互に異なるメモリセルに分散して格納できる。なお、直前ビットの書き込み先メモリセルの座標に所定数を加算して対象ビットの書き込み先メモリセルの座標を決定する場合に、加算結果が内部座標として採り得る最大値を超えると、採り得る座標の最小値と最大値の幅を当該加算結果から差し引いた値をもって書き込み先メモリセルの座標値として決定すれば良い。逆に、直前ビットの書き込み先メモリセルの座標に所定数を減算して対象ビットの書き込み先メモリセルの座標を決定する場合に、減算結果が内部座標として採り得る値の最小値を下回った場合には、採り得る座標の最小値と最大値の幅を当該減算結果に加えた値をもって書き込み先メモリセルの座標値として決定すれば良い。
【００３０】
ここで、採り得る座標の最小値と最大値の幅とは、内部Ｘ座標であれば最大ビット幅に対応し、内部Ｙ座標であれば最大ワード長に対応する。
【００３１】
また、別の方法としては、予め内部Ｘ座標、内部Ｙ座標共に採り得る座標値を各一回ずつ出現させて作成した円順列に従って、直前ビットの内部座標から対象ビットの内部座標を決定する方法も利用可能である。先頭ビットについては、与えられた外部アドレス情報に基づいて書き込み先メモリセルの内部座標を決定する。２番目以後のビットの書き込み先メモリセルについては、円順列に記載された順序に従い、直前ビットの書き込み先メモリセルの内部座標の次の値を内部座標として決定する。
【発明の効果】
【００３２】
本発明の構成によれば、同一の通常データに誤り訂正符号が付された一連のＥＣＣ付きデータは、行及び列位置が相互に異なる複数のメモリセルに分散して格納されるため、メモリセルブロックを分割したり、ダミーのワード線やビット線を設けることなく、ライン故障対応が可能となる。
【００３３】
よって、本発明の不揮発性メモリをトリミング素子のトリミングデータ記憶用素子として用いることで、トリミング素子の占有面積を縮小化することができる。
【図面の簡単な説明】
【００３４】
【図１】本発明の不揮発性メモリの概念的ブロック図
【図２】従来の方法によってデータが書き込まれた場合の概念図
【図３】本発明の不揮発性メモリにデータが書き込まれた場合の概念図
【図４】本発明の不揮発性メモリにデータが書き込まれた場合の別の概念図
【図５】本発明の不揮発性メモリにデータが書き込まれた場合の更に別の概念図
【図６】メモリセルに格納するデータ群の構成を示す概念図
【図７】一般的なメモリセルブロックと制御回路の関係を示すブロック図
【図８】一般的なメモリセルブロックの内部構成を示すブロック図
【発明を実施するための形態】
【００３５】
図１に、本発明の不揮発性メモリの概念的ブロック図を示す。本発明の不揮発性メモリ１は、メモリセルブロックＭＢと、ＥＣＣデータ作成部２，データ書き込み回路３，データ読み出し回路４，エラー訂正部５，及びアドレスデコード部６を備える。
【００３６】
メモリセルブロックＭＢは、複数のメモリセルが２次元のマトリクス状に配列されている。各メモリセルは１本のワード線と１本のビット線に接続され、同一行のメモリセルは同一のワード線に、同一列のメモリセルは同一のビット線に接続されている。
【００３７】
図１では、ｍ本のビット線ＢＬ１，ＢＬ２，……，ＢＬｍと、ｎ本のワード線ＷＬ１，ＷＬ２，……，ＷＬｎを有し、各ビット線と各ワード線が交差する箇所にそれぞれメモリセル（Ｍ1,1，……，Ｍn,m）が配置されている。以下では、各ビット線を代表して「ビット線ＢＬ」，各ワード線を代表して「ワード線ＷＬ」と総称する。また、図１のように、第ｉ列第ｊ行のメモリセルを符号Ｍi,jで規定し、メモリセルブロックＭＢ内の座標を（i,j）と表わす。i，jをそれぞれ内部Ｘ座標、内部Ｙ座標と称する。
【００３８】
メモリセルブロックＭＢ内には、各ワード線ＷＬの選択／非選択を決定するワード線選択回路１１，各ビット線ＢＬの選択／非選択を決定するビット線選択回路１２が設けられている。
【００３９】
外部から入力されるデータ（入力データ）は複数ビットで構成され、ＥＣＣデータ作成部２においてこれに複数ビットの誤り訂正符号（ＥＣＣ）が付されることで、ＥＣＣ付きデータが作成される。データ書き込み回路３は、ワード線選択回路１１によって選択されたワード線、及びビット線選択回路１２によって選択されたビット線の双方に接続するメモリセルに対して、このＥＣＣ付きデータの書き込みを行う。上述した図６の例であれば、８ビットの一連の入力データＡ（Ｎ）に対して５ビットの一連の誤り訂正符号Ａ（Ｅ）が付されることで、１３ビットからなるＥＣＣ付きデータＡを、ビット毎に各メモリセルに書き込むこととなる。
【００４０】
読み出し時には、読み出し対象データが格納されているメモリセルを選択した後、選択されたメモリセルのデータをデータ読み出し回路４によって読み出す。このとき、読み出したデータをいったんエラー訂正部５へ送り、エラーがなければそのまま読み出されたデータを出力する。一方、エラーが検出されれば、エラー訂正部５においてデータの訂正が施され、訂正後のデータが出力される。
【００４１】
ワード線選択回路１１は、外部からアドレスデコード部６に入力されたアドレス値に基づいて、書き込み先（読み出し先）メモリセルの内部Ｘ座標を認識し、１本のワード線（ここでは一例として「ワード線ＷＬ１」とする）を選択する。
【００４２】
従来構成の場合、一のＥＣＣ付きデータは同一のワード線上のメモリセルに格納される。つまり、ワード線選択回路１１によってワード線ＷＬ１が選択された状態で、各ビット線ＢＬに対してＥＣＣ付きデータの各ビットが示す情報に応じた電圧が与えられる。これにより、ワード線ＷＬ１上の各メモリセルには、一連のＥＣＣ付きデータの各ビット別の情報がほぼ一時に書き込まれる。
【００４３】
そして、次に別の入力データを書き込む場合には、選択ワード線を異ならせて同様の処理を行う。これにより、図２のような書き込み状態となる。図２では、ワード線ＷＬ１上にＥＣＣ付きデータ「Ａ」，ＷＬ２上にＥＣＣ付きデータ「Ｂ」、ＷＬ３上にＥＣＣ付きデータ「Ｃ」がそれぞれ格納された場合を示している。
【００４４】
なお、図２では、説明の簡単のために一のメモリセルブロックＭＢ内において列アドレスを同一とし、複数の列アドレスを想定していない。つまり、同一行のメモリセルには一のＥＣＣ付きデータが格納される場合を想定している。例えば、列アドレスとして複数設定される場合には、同一のワード線上において、各列アドレス毎にそれぞれ異なるＥＣＣ付きデータの格納が可能となる。
【００４５】
前述したように、従来の書き込み方法による場合、ワード線ＷＬにライン故障が発生すると、当該ワード線に接続されたメモリセルの多くが書き込み不良となってしまう。例えば、図２においてワード線ＷＬ１にライン故障が発生した場合、誤り検査符号Ａ（Ｅ１）〜Ａ（Ｅ５）のうちの複数ビットにエラーが生じることが想定される。この場合、ＥＣＣの制約により、ＥＣＣデータに基づいて通常データＡ（Ｎ）を正しいデータに復帰させることができなくなってしまう。
【００４６】
これに対し、本発明の不揮発性メモリは、同一のＥＣＣ付きデータ内の各ビットを、行及び列方向に相互に異なる複数のメモリセルに分散して書き込む点に特徴を有する。
【００４７】
図３は、本発明の不揮発性メモリにおけるデータ格納の状態の一例を示す概念図である。図３の例では、同一のＥＣＣ付きデータの各ビットが、対角線と平行な方向に位置する各メモリセルに格納されている。このようにデータを格納した場合、同一のＥＣＣ付きデータの各ビットは、同一のワード線ＷＬ上或いは同一のビット線ＢＬ上の複数のメモリセルに書き込まれない。これにより、仮にライン故障が発生しても、同一のデータ群内で２ビット以上のＥＣＣデータにエラーが生じることがないため、正しく書き込まれたＥＣＣデータに基づいて入力データを復元することができる。
【００４８】
以下では、図３に示すようにメモリセルブロックＭＢには１３×１３のメモリセルが配置されているものとして説明する。
【００４９】
図３の例では、ＥＣＣ付きデータＡの一のビットであるＡ（Ｎ１）をメモリセルＭ1,1、Ａ（Ｎ２）をメモリセルＭ2,2、というように選択ビット線ＢＬと選択ワード線ＷＬの双方を１ずつずらしながら選択メモリセルを変更して書き込みを行い、最後のビットＡ（Ｅ５）をメモリセルＭm,nに書き込むことでＥＣＣ付きデータＡの書き込みを完了する。この場合、ＥＣＣ付きデータＡの各ビットは、行及び列方向に相互に異なる位置に存する複数のメモリセル、すなわち内部Ｘ座標と内部Ｙ座標が相互に異なる複数のメモリセルに分散して書き込まれる。
【００５０】
アドレスデコード部６は、外部より入力されたアドレス情報に基づき、ＥＣＣ付きデータＡの先頭ビットＡ（Ｎ１）の書き込み先メモリセルの内部Ｙ座標の情報（ここではY=1）をワード線選択回路１１に与える。ワード線選択回路１１は、この情報に基づき、Y=1に対応するワード線ＷＬ１を選択する。
【００５１】
一方、ビット線選択回路１２は、先頭ビットが書き込まれるメモリセルが接続するビット線（ここではＢＬ１）を選択する。図３の例では、各ＥＣＣ付きデータの先頭ビットがいずれも、内部Ｘ座標＝１のメモリセル（ビット線ＢＬ１に接続するメモリセル）に書き込まれるものとした。
【００５２】
このとき、データ書き込み回路３からビット線ＢＬ１に対して先頭ビットＡ（Ｎ１）の値に応じた電圧が印加され、当該情報がメモリセルＭ1,1に書き込まれる。
【００５３】
先頭ビットの書き込みが完了すると、選択ワード線及び選択ビット線をそれぞれ１本ずつシフトさせる。ここでは、Ｘ及びＹ座標をそれぞれ１ずつ加えるものとし、内部Ｙ座標＝２のワード線ＷＬ２、内部Ｘ座標＝２のビット線ＢＬ２を選択する。そして、データ書き込み回路３がビットＡ（Ｎ２）の値に応じた電圧をビット線ＢＬ２に与えることで、当該情報がメモリセルＭ2,2に書き込まれる。以下、同様に選択ワード線と選択ビット線を順次シフトしながら書き込み電圧を印加し、メモリセルＭ13,13に最後のビットＡ（Ｅ５）が書き込まれるとＥＣＣ付きデータＡの書き込みが完了する。
【００５４】
ＥＣＣ付きデータＢを書き込む場合においても、先頭ビットの書き込み先メモリセルの内部Ｙ座標が異なるのみで、他はＥＣＣ付きデータＡの場合と同様である。すなわち、ワード線選択回路１１は、アドレスデコード部６からの情報に基づいて、ワード線ＷＬ２を選択する。そして、ビット線選択回路１２は、既定の初期ビット線ＢＬ１を選択する。そして、データ書き込み回路３からビット線ＢＬ１に対して先頭ビットＢ（Ｎ１）に対応した電圧を印加し、メモリセルＭ1,2にビットＢ（Ｎ１）の情報を書き込む。以下、選択ワード線及び選択ビット線の双方を１ずつずらしながら、同様に各ビットに対応した電圧を印加する。
【００５５】
そして、内部Ｙ座標値が最大値まで到達した場合（Y=13）において、まだ書き込むべきデータが残っている場合には、ワード線選択回路１１は、内部Ｙ座標が最小値Y=1で表わされるワード線ＷＬ１を選択する。すなわち、ビットＢ（Ｅ４）がメモリセルＭ12,13に書き込まれた後、最後のデータであるビットＢ（Ｅ５）はメモリセルＭ13,1に書き込まれる。
【００５６】
以下、同じような規則に従って、各ＥＣＣ付きデータ内の各ビットが各メモリセルに書き込まれる。
【００５７】
読み出し動作も、書き込み時と同じ規則によって行う。つまり、アドレスデコード部６は、外部から読み出すべきＥＣＣ付きデータのアドレス情報が与えられると、このＥＣＣ付きデータの先頭ビットが格納されているメモリセルの内部Ｙ座標に関する情報をワード線選択回路１１に与え、ワード線選択回路１１は指定されたワード線を選択する。ビット線選択回路１２は、既定の初期ビット線ＢＬ１を選択する。そして、データ読み出し回路４が読み出し電圧を与え、選択メモリセルの情報を読み出す。以後、ワード線選択回路１１は選択ワード線を１ラインシフトし、ビット線選択回路１２は選択ビット線を１ラインシフトして、同様に読み出し電圧を印加する動作を繰り返す。
【００５８】
ＥＣＣ付きデータの各ビットの読み出し途中において、選択メモリセルの内部Ｙ座標が最大値まで到達した場合は次の読み出し先として内部Ｙ座標を最小値とする。データ読み出し回路４は、内部にバッファを備えておき、最終ビットが読み出されるまでこのバッファに情報を一時的に保持するものとして良い。そして、ＥＣＣ付きデータの最終ビットが読み出されると、一連のＥＣＣ付きデータとしてエラー訂正部５に与えられてエラー検出がされる。エラーが存在していれば、ＥＣＣ付きデータ内の誤り検出符号（ＥＣＣ）に基づいて入力データのエラー訂正が施された後、外部に出力される。
【００５９】
以上説明したように、本発明の特徴は、同一のＥＣＣ付きデータ内の各ビットを、同一列及び同一行のメモリセルに書き込まないようにすることで、ライン故障が生じても複数の誤り検出符号（ＥＣＣ）がエラーになるのを防止し、これによってデータ復元を可能にした点にある。従って、かかる点を満足していれば、各データの書き込み先を決定するに際して図３に示す方法に限定されるものではない。
【００６０】
例えば、初期のビット線をＢＬ１３に固定し、内部Ｘ座標を順次１ずつ減少させていく構成としても良い。また、選択ビット線を２ライン以上の複数ラインずつシフトさせるものとしても良く、更には、選択ワード線についても、内部Ｙ座標が減少する方向にシフトさせても良いし、複数ラインずつシフトさせても良い。図４に一例を示す。
【００６１】
図４の場合、初期のビット線がＢＬ１３に固定される。そして、先頭ビットの書き込み先メモリセルの内部Ｙ座標に基づいてワード線選択回路１１によってワード線が選択され、選択されたメモリセルに先頭ビットが書き込まれる。以後のビットについては、内部Ｘ座標を−１，内部Ｙ座標を−３だけ移動させたメモリセルを書き込み先として選択する。つまり、ワード線選択回路１１は、選択ワード線を３本とばしで図面上方向にシフトさせ、ビット線選択回路１２は、選択ビット線を図面左方向に１本シフトさせる。
【００６２】
なお、直前ビットの書き込み先メモリセルの内部Ｙ座標から３を差し引いた演算結果が、内部Ｙ座標として採り得る最小値（ここでは１）を下回った場合には、内部Ｙ座標の最小値と最大値の幅（ここでは１３）を、前記演算結果に加えた値をもって書き込み先メモリセルの内部Ｙ座標とする。内部Ｙ座標の最小値と最大値の幅は、最大ワード数に相当する。
【００６３】
ＥＣＣ付きデータＡの場合、先頭ビットの書き込み先メモリセルの内部Ｙ座標としてY=13が指定され、ワード線選択回路１１によってワード線ＷＬ１３が選択される。ビット線選択回路１２は、初期のビット線ＢＬ１３を選択し、これによってメモリセルＭ13,13が選択され、先頭ビットＡ（Ｎ１）が当該メモリセルに書き込まれる。次のビットＡ（Ｎ２）は、直前ビットの書き込み先メモリセルの座標（13,13）から内部Ｘ座標を−１，内部Ｙ座標を−３だけシフトした位置におけるメモリセルＭ12,10に書き込まれる。以下、同様の規則に従い、Ａ（Ｎ３）はＭ11,7に、Ａ（Ｎ４）はＭ10,4に、Ａ（Ｎ５）はＭ9,1にそれぞれ書き込まれる。
【００６４】
Ａ（Ｎ６）については、直前のビットＡ（Ｎ５）の書き込み先のメモリセル座標が（9,1）であるため、同様のシフト演算を行えば（8,-2）となって、内部Ｙ座標が最小値である１を下回る。よって、内部Ｙ座標は、この演算結果−２に内部Ｙ座標の幅１３を加算した値である１１とする。つまり、書き込み先アドレスが（8,11）と決定され、Ａ（Ｎ６）はＭ8,11に書き込まれる。
【００６５】
以下、同様の方法により書き込み先メモリセルの座標が決定され、この座標によって特定されるメモリセルに各ビットが書き込まれる。この方法による場合でも、図４に示すように、ＥＣＣ付きデータＡの各ビットは、行及び列位置が相互に異なる複数のメモリセルに分散して書き込まれており、ライン故障が生じた場合でも復元が可能となる。他のＥＣＣ付きデータについても同様である。
【００６６】
以上説明した方法は、いずれも各ＥＣＣ付きデータの先頭ビットが同一のビット線上に書き込まれる構成であり、選択ビット線のシフト方法もＥＣＣ付きデータによらず共通であった。このため、アドレスデコード部６は、ワード線選択回路１１に対して先頭ビットの書き込み先メモリセルの内部Ｙ座標に関する情報のみを与えればよく、制御内容が比較的簡素化できるというメリットを有していた。
【００６７】
これに対し、以下で説明するように、先頭ビットの書き込み先メモリセルの内部Ｙ座標と共に内部Ｘ座標についてもアドレスデコード部６によって指定される構成とすることもできる。この場合、制御内容は図３や図４の構成よりは多少複雑化するが、ライン故障が生じた場合においてもデータ復元が可能になるという本発明の効果は実現できる。
【００６８】
図５は、アドレスデコード部６から、ワード線選択回路１１に対して先頭ビットの内部Ｙ座標に関する情報が、ビット線選択回路１２に対して内部Ｘ座標に関する情報がそれぞれ与えられる。両選択回路１１及び１２は、指定された座標情報に基づいてワード線及びビット線を選択する。そして、特定された選択メモリセルに対して先頭ビットに対応した情報が書き込まれる。
【００６９】
２番目以後のビットについては、書き込み先メモリセルの内部Ｘ座標及び内部Ｙ座標を共に、予め定められた規則に基づいて変化させる。ここでは、内部Ｘ座標については２ずつ減少させ、内部Ｙ座標については「１３→１→１２→２→１１→３→１０→４→９→５→８→７→６」という規則に従って変化させる。また、先頭ビットの書き込み先メモリセルの内部Ｙ座標として指定された値に応じて規則の開始ポイントが変化する。
【００７０】
例えば、先頭ビットの書き込み先メモリセルの内部座標として（13,13）が指定されたＥＣＣ付きデータＡの場合、先頭の内部Ｙ座標が１３であるため、内部Ｙ座標については前掲の順にシフトされる。なお、内部Ｘ座標については、１３→１１→９→……と２ずつ減ぜられ、１に到達した後は２が減じされるともはや最小値を下回るため（−１）、これに内部Ｘ座標幅（これは最大ビット長にも対応する）である１３が加算されて内部Ｘ座標が１２となる。以後、再び２ずつ減ぜられる。
【００７１】
先頭ビットの書き込み先として（9,11）が指定されたＥＣＣ付きデータＢの場合、内部Ｙ座標については、前掲の規則を「１１」から開始し、１１→３→１０→４→９→５→８→７→６→１３→１→１２→２と推移させる。なお、内部Ｘ座標は９→７→５→３→１→１２→１０→８→６→４→２→１３→１１と推移する。
【００７２】
先頭ビットの書き込み先として（3,5）が指定されたＥＣＣ付きデータＣについても、同様の方法で書き込み先メモリセルの座標が決定される。内部Ｙ座標は、５→８→７→６→１３→１→１２→２→１１→３→１０→４→９と推移し、内部Ｘ座標は、３→１→１２→１０→８→６→４→２→１３→１１→９→７→５と推移する。
【００７３】
この方法によっても、同一データ群に属する各データは、相互に行及び列が異なる複数のメモリセルに分散して書き込まれる。
【００７４】
図５の方法を一般的に記載すると、以下のように表わすことができる。すなわち、ｍ列ｎ行のメモリセルをマトリクス状に配置されたメモリセルブロックにおいて、内部Ｘ座標につき予め１からｍまでの数列を任意の規則の下で並べ替えた第１円順列（内部Ｘ座標決定用円順列）、内部Ｙ座標につき予め１からｎまでの数列を任意の規則の下で並べ替えた第２円順列（内部Ｙ座標決定用円順列）をそれぞれ用意しておく。ここでいう円順列とは、数列を循環的に並べた概念であり、初期値が与えられるまでの間は順列の開始値と終了値が確定しないものを指す。これらの円順列については、アドレスデコード部６内に記憶させるものとしても良いし、第１円順列をビット線選択回路１２内に、第２円順列をワード線選択回路１１内に記憶させるものとしても良い。
【００７５】
そして、指定された先頭ビットの書き込み先メモリセルの内部Ｘ座標を第１円順列の初期値とし、同メモリセルの内部Ｙ座標を第２円順列の初期値として、以後のデータを、この第１円順列の順序で規定される内部Ｘ座標と、第２円順列の順序で規定される内部Ｙ座標によって確定されるメモリセルに書き込みを行う。この方法によれば、同一データ群に属する各データは、相互に行及び列が異なる複数のメモリセルに分散して書き込まれる。読み出し時も全く同様とする。
【００７６】
無論、所定の数だけアドレス値をシフトさせる方法（例えば図５の場合の内部Ｘ座標の決定方法）による場合には、かかるシフト演算を行ってアドレス値を特定すれば良いため、必ずしも上記のような円順列形態で記憶しておく必要はない。
【００７７】
以下、別実施形態を説明する。
【００７８】
上記の実施形態では、アドレスデコード部６に対して同一のＥＣＣ付きデータの先頭ビットの書き込み先メモリセルの座標情報が外部から与えられる構成としたが、各ビット毎の書き込み先メモリセルに関する情報が逐次外部から与えられる構成としても良い。この場合は、同一のＥＣＣ付きデータについて、行及び列方向に相互に異なるように指定された書き込み先アドレスが逐次外部から与えられる。
【００７９】
上記の実施形態では、通常データを８ビット、ＥＣＣデータを５ビットとして説明したが、このビット数はあくまで一例である。また、ワード線選択回路１１が各ワード線ＷＬを、ビット線選択回路１２が各ビット線ＢＬを選択するものとしたが、両デコーダを入れ替えても構わない。
【００８０】
また、図２〜図５の説明では、ビット線の数をＥＣＣ付きデータの最大ビット数に一致させているが、ＥＣＣ付きデータの最大ビット数よりもビット線の数を多くしても良い。更に言えば、ビット線の数をＥＣＣ付きデータの最大ビット数の２倍以上とし、列アドレス単位で上記制御を実行するものとしても良い。
【００８１】
例えば、ビット線がＢＬ１〜ＢＬ２６まで存在するとし、ビット線ＢＬ１〜ＢＬ１３を列アドレスＸ１，ＢＬ１４〜ＢＬ２６を列アドレスＸ２とする。そして、アドレスデコード部６は、外部から入力されるアドレス情報により、先頭ビットの書き込み先メモリセルの内部Ｙ座標と共に、列アドレスに関する情報（Ｘ１かＸ２か）も認識する。そして、ビット線選択回路１２は、一のＥＣＣ付きデータの書き込み／読み出しが完了するまで、指定された列アドレスに属するビット線についてのみ上記と同様の規則に従ってビット線の選択制御を行う。これにより、図２〜図５の構成よりも多くの情報を格納することができる。
【符号の説明】
【００８２】
１：    本発明の不揮発性メモリ
２：    ＥＣＣデータ作成部
３：    データ書き込み回路
４：    データ読み出し回路
５：    エラー訂正部
６：    アドレスデコード部
１１：    ワード線選択回路
１２：    ビット線選択回路
ＢＬ１，ＢＬ２，……，ＢＬｍ：    ビット線
ＭＢ：    メモリセルブロック
ＷＬ１，ＷＬ２，……，ＷＬｎ：    ワード線
【図１】
2011243249.tif 000003
【図２】
2011243249.tif 000004
【図３】
2011243249.tif 000005
【図４】
2011243249.tif 000006
【図５】
2011243249.tif 000007
【図６】
2011243249.tif 000008
【図７】
2011243249.tif 000009
【図８】
2011243249.tif 000010