(57)【要約】【課題】多値データを記憶する際、既に書き込んだページのデータの破壊を回避することがあった。【解決手段】１つのメモリセルは、ページアドレスを変えて２ビット以上のデータを記憶することが可能である。メモリセルアレイ３は、複数のブロックを有し、各ブロックは、複数のメモリセルが配置されている。コントローラ４は、メモリセルアレイ２の第１のブロックＡに含まれる複数のメモリセルの第１のページにデータを書き込み、所定のタイミングにおいて、第１のブロックＡの第１のページ書き込まれたデータを、第２のブロックＢに含まれる複数のメモリセルの第１、第２のページにコピーし、第１のブロックＡを解放する【選択図】      図１
2006221743.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロックを有し、各ブロックは複数の前記メモリセルが配置されたメモリセルアレイを有し、第１及び第２のページが割り当てられた２ビット以上のデータを１つのメモリセルに記憶することが可能な半導体記憶装置と、
前記メモリセルアレイの第１のブロックに含まれる複数の前記メモリセルの第１のページにデータを書き込み、所定のタイミングにおいて、前記第１のブロックの第１のページに書き込まれたデータを、第２のブロックに含まれる複数の前記メモリセルの第１及び第２のページにコピーするコントローラと
を具備することを特徴とする記憶システム。
【請求項２】
前記所定のタイミングは、前記第１のブロックの最終アドレスにデータを書き込んだときであることを特徴とする請求項１記載の記憶システム。
【請求項３】
前記所定のタイミングは、書き込むべきデータのアドレスに連続性がなくなったときであることを特徴とする請求項１記載の記憶システム。
【請求項４】
１つのメモリセルにページアドレスを変えて２ビット以上のデータを記憶することが可能な半導体記憶装置の書き込み方法であって、
メモリセルアレイの第１のブロックに含まれる複数のメモリセルの第１のページにデータを書き込み、
所定のタイミングにおいて、前記第１のブロックに含まれる複数のメモリセルの第１のページに書き込まれたデータを第２のブロックに含まれる複数のメモリセルの第１、第２のページにコピーし、
前記第１のブロックを解放する
ことを特徴とする半導体記憶装置の書き込み方法。
【請求項５】
前記所定のタイミングは、前記第１のブロックの最終アドレスにデータを書き込んだときであることを特徴とする請求項４記載の半導体記憶装置の書き込み方法。
【請求項６】
前記所定のタイミングは、書き込むべきデータのアドレスに連続性がなくなったときであることを特徴とする請求項４記載の半導体記憶装置の書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば多値データを記憶することが可能な半導体記憶装置を用いた記憶システムと半導体記憶装置の書き込み方法に関する。
【背景技術】
【０００２】
例えばＥＥＰＲＯＭを用いたＮＡＮＤ型フラッシュメモリなどの不揮発性半導体記憶装置を用いたメモリカードは、デジタルカメラや携帯電話器等のホスト機器に使用されている。このメモリカードに記憶されたデータは、例えばメモリカードの引き抜きやホスト機器の落下、電源の遮断等の理由により、破壊されることがある。
【０００３】
上記電源遮断等によりデータが破壊されたセクタの修復を可能とし、データの破壊に伴うカードのメモリ空間の実記憶容量の減少を防止した技術が開発されている（例えば特許文献１参照）。
【０００４】
また、データ格納部に格納されているデータから巡回符号を生成し、この生成した巡回符号が対応するブロックに格納されている巡回符号と比較して当該ブロックの正常性を試験することにより、フラッシュメモリの書き込み済みのデータを誤って破壊することを防止した技術が開発されている（例えば特許文献２参照）。
【０００５】
ところで、上記メモリカードに使用されているＮＡＮＤ型フラッシュメモリは、書き込まれた値を不揮発的に記憶するメモリセル（ＥＥＰＲＯＭセル）の集合体で構成されている。また、ＮＡＮＤ型フラッシュメモリに対するデータの書き込み、及び読み出しは、複数のメモリセルの集合からなるページと呼ばれる単位で行われる。さらに、データの消去は、複数のページの集合からなるブロックと呼ばれる単位で行われる。このように、ＮＡＮＤ型フラッシュメモリは、メモリセル、ページ、ブロックと言う階層構造の集合体と見る事ができる。
【０００６】
また、メモリセルの構造に着目すると、ＮＡＮＤ型フラッシュメモリは、１つのメモリセルに、論理“０”と論理“１”の２通りの１ビットの値しか記憶できない２値メモリと、２値以上の複数ビットを記憶できる多値メモリに区別することができる。
【０００７】
現状の多値メモリは、１つのメモリセルに２ビットの値を記憶するものを指している。１つのメモリセルに記憶できる２ビットの値は、通常、２つの異なるページアドレスが割り当てられている。下位アドレスに割り当てられたページをロアーページ、上位アドレスに割り当てられたページをアッパーページと呼ぶ事にすると、１つのメモリセルは、ロアーページアドレスに対応する値の書き込みと、アッパーページアドレスに対応する値の書き込みの２度の書き込みがある。
【０００８】
現在の多値メモリの書き込み規則は、ロアーページを書き込んだ後に、アッパーページを書き込むことを原則とし、アッパーページを書き込んだ後に、ロアーページを書き込むことは禁止されている。この規則に従うと、ロアーページの書き込み時に、何らかの異常事態が発生して、メモリセルの記憶データを破壊した場合、そのページの書き込み失敗のみで済む。しかし、アッパーページの書き込みに失敗し、メモリセルの記憶データを破壊した場合、アッパーページのデータばかりでなくロアーページのデータも破壊してしまう。
【０００９】
つまり、あるページの書き込みの失敗が、他のページのデータも破壊することになる。この書き込みの失敗は、現在ＮＡＮＤ型フラッシュメモリに書き込もうとしているデータとは、関連のない過去のデータを破壊することがある。例えば電源投入直後にアッパーページの書き込みを失敗した場合、電源投入前にロアーページに書き込まれていた過去のデータを破壊することとなる。したがって、このようなデータの破壊を防止することが望まれている。
【特許文献１】特開平１１−３０６０９１号公報
【特許文献２】特開平１１−３０６８００号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、多値データを記憶する際、既に書き込んだページのデータの破壊を回避することが可能な記憶システムと半導体記憶装置の書き込み方法を提供しようとするものである。
【課題を解決するための手段】
【００１１】
本発明の記憶システムの態様は、複数のブロックを有し、各ブロックは複数の前記メモリセルが配置されたメモリセルアレイを有し、第１及び第２のページが割り当てられた２ビット以上のデータを１つのメモリセルに記憶することが可能な半導体記憶装置と、前記メモリセルアレイの第１のブロックに含まれる複数の前記メモリセルの第１のページにデータを書き込み、所定のタイミングにおいて、前記第１のブロックの第１のページに書き込まれたデータを、第２のブロックに含まれる複数の前記メモリセルの第１及び第２のページにコピーするコントローラとを具備している。
【００１２】
本発明の半導体記憶装置の書き込み方法の態様は、１つのメモリセルにページアドレスを変えて２ビット以上のデータを記憶することが可能な半導体記憶装置の書き込み方法であって、メモリセルアレイの第１のブロックに含まれる複数のメモリセルの第１のページにデータを書き込み、所定のタイミングにおいて、前記第１のブロックに含まれる複数のメモリセルの第１のページに書き込まれたデータを第２のブロックに含まれる複数のメモリセルの第１、第２のページにコピーし、前記第１のブロックを解放することを特徴としている。
【発明の効果】
【００１３】
本発明によれば、多値データを記憶する際、既に書き込んだページのデータの破壊を回避することが可能な記憶システムと半導体記憶装置の書き込み方法を提供できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１５】
図２は、ホスト機器とメモリカードの構成を示している。メモリカード１は、ＮＡＮＤ型フラッシュメモリ３及びコントローラ４を有している。コントローラ４は、ＣＰＵ（Central Processing Unit）８やＲＯＭ（Read-Only Memory）９などの機能ブロックを含んでいる。このコントローラ４は、メモリカード内部の物理状態（何処の物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、或いは、何処のブロックが消去状態であるか）を管理している。ＮＡＮＤ型フラッシュメモリ３は、１つのメモリセルに複数のビット、例えば２ビットを記憶する多値メモリである。
【００１６】
ホスト機器２０は、接続されるメモリカードをアクセスするためのハードウェア及びソフトウェア（システム）を備えている。
【００１７】
メモリカード１は、ホスト機器２０に接続されたとき、ホスト機器２０から電源供給を受けて動作し、ホスト機器２０からのアクセスに応じた処理を行う。
【００１８】
ＮＡＮＤ型フラッシュメモリ３は、消去時の消去ブロックサイズ（消去単位のブロックサイズ）が２５６ｋＢｙｔｅに定められている不揮発性メモリである。このＮＡＮＤ型フラッシュメモリ３は、例えば０．０９μｍプロセス技術を用いて製作される。即ち、ＮＡＮＤ型フラッシュメモリ３のデザインルールは、０．１μｍ未満となっている。
【００１９】
コントローラ４は、前述したＣＰＵ８及びＲＯＭ９の他に、メモリインタフェース（Ｉ／Ｆ）部５、ホストインタフェース（Ｉ／Ｆ）部６、バッファ７、及びＲＡＭ（Random Access Memory）１０を搭載している。
【００２０】
メモリインタフェース部５は、コントローラ４とＮＡＮＤ型フラッシュメモリ３との間のインタフェース処理を行う。ホストインタフェース部６は、コントローラ４とホスト機器２０との間のインタフェース処理を行う。
【００２１】
バッファ７は、ホスト機器２０から送られてくるデータをＮＡＮＤ型フラッシュメモリ３へ書き込む際、一定量のデータ（例えば１ページ分）を一時的に記憶したり、ＮＡＮＤ型フラッシュメモリ３から読み出されたデータをホスト機器２０へ送り出す際、一定量のデータを一時的に記憶したりする。
【００２２】
ＣＰＵ８は、メモリカード１全体の動作を司る。このＣＰＵ８は、例えばメモリカード１が電源供給を受けた際、ＲＯＭ９の中に格納されているファームウェア（制御プログラム）をＲＡＭ１０上にロードして所定の処理を実行する。これにより、ＣＰＵ８は、各種のテーブルをＲＡＭ１０上に作成したり、ホスト機器２０から書込コマンド，読出コマンド，消去コマンドを受けてＮＡＮＤ型フラッシュメモリ３上の該当領域にアクセスしたり、バッファ７を通じたデータ転送処理を制御したりする。
【００２３】
ＲＯＭ９は、ＣＰＵ８により使用される制御プログラムなどを格納するメモリである。ＲＡＭ１０は、ＣＰＵ８の作業エリアとして使用され、制御プログラムや各種のテーブルを記憶する揮発性メモリである。
【００２４】
図３は、メモリカード１内のＮＡＮＤ型フラッシュメモリ３のデータ配置を示している。
【００２５】
ＮＡＮＤ型フラッシュメモリ３において、各ページは５２８Ｂｙｔｅ（５１２Ｂｙｔｅ分のデータ記憶部＋１６Ｂｙｔｅ分の冗長部）を有しており、３２ページ分が１つの消去単位（即ち、１６ｋＢｙｔｅ＋０．５ｋＢｙｔｅ（ここで、ｋは１０２４））となる。なお、以下の説明においては、このＮＡＮＤ型フラッシュメモリ３の消去単位を２５６ｋＢｙｔｅと呼ぶ。
【００２６】
一方、実際に使用するフラッシュメモリ３において、各ページは２１１２Ｂｙｔｅ（例えば５１２Ｂｙｔｅ分のデータ記憶部×４＋１０Ｂｙｔｅ分の冗長部×４＋２４Ｂｙｔｅ分の管理データ記憶部）を有しており、１２８ページ分が１つの消去単位（即ち、２５６ｋＢｙｔｅ＋８ｋＢｙｔｅ）となる。
【００２７】
また、ＮＡＮＤ型フラッシュメモリ３は、フラッシュメモリへのデータ入出力を行うためのページバッファを備えている。ホスト機器２０が想定しているフラッシュメモリに備えられるページバッファの記憶容量は、５２８Ｂｙｔｅ（５１２Ｂｙｔｅ＋１６Ｂｙｔｅ）である。一方、実際に使用するフラッシュメモリ３に備えられるページバッファの記憶容量は、２１１２Ｂｙｔｅ（２０４８Ｂｙｔｅ＋６４Ｂｙｔｅ）である。データ書込などにおいて、各ページバッファは、フラッシュメモリに対するデータ入出力処理を、自身の記憶容量に相当する１ページ分の単位で実行する。
【００２８】
メモリカード１を実用上有効な製品とするためには、図３に示したフラッシュメモリ３の記憶容量は１Ｇビット以上であることが望ましい。フラッシュメモリ３の記憶容量が例えば１Ｇビットである場合、２５６ｋＢｙｔｅブロック（消去単位）の数は、５１２個となる。
【００２９】
また、図３は、消去単位が２５６ｋＢｙｔｅブロックである場合を例示しているが、消去単位が例えば１２８ｋＢｙｔｅブロックとなるように構築することも実用上有効である。この場合、１２８ｋＢｙｔｅブロックの数は、１０２４個となる。
【００３０】
また、図３に示す例は、実際に使用するフラッシュメモリ３の消去ブロックサイズが、ホスト機器２０が想定しているフラッシュメモリの消去ブロックサイズよりも大きい場合を示している。しかし、これに限定されるものではなく、実際に使用するフラッシュメモリ３の消去ブロックサイズを、ホスト機器２０が想定しているフラッシュメモリの消去ブロックサイズよりも小さく構成することも可能である。
【００３１】
図４は、１つのメモリセルに２値（１ビット）のデータを記憶する従来のＮＡＮＤ型フラッシュメモリの構成を示している。このメモリは、消去単位としての複数のブロックを有している。各ブロックは、複数のページを有し、各ページは、複数のメモリセルを有している。
【００３２】
図５は、本実施形態に適用されるＮＡＮＤ型フラッシュメモリ３を示すものであり、１つのブロックのみを示している。このＮＡＮＤ型フラッシュメモリ３は、図４に示すメモリと異なり、１つのメモリセルに多値（例えば２ビット）のデータを記憶する。このため、前述したように、各メモリセルは、ロアーページとアッパーページの２ページのデータを記憶する。
【００３３】
また、隣接するメモリセルにデータを書き込む際、セル間の閾値電圧の影響により既に書き込んだメモリセルの閾値電圧が変化してしまう。これを回避するため、各メモリセルにデータを書き込む順序が定められている。
【００３４】
図６（ａ）（ｂ）は、その一例を示している。図６（ａ）は、コントローラ４側からみた１ブロックのメモリ空間を示し、図６（ｂ）は、ＮＡＮＤ型フラッシュメモリ３における１ブロックのメモリ空間を示している。
【００３５】
図６（ａ）に示すように、コントローラ４側からみた１ブロックのメモリ空間は、例えば１２８ページ×（２０４８＋６４Ｂｙｔｅ）であり、各ページの各カラムに記憶されるデータは、そのページのデータのみにより構成されている。すなわち、例えばページ０のカラム０、ページ０のカラム１…ページ０のカラム２１１１に、それぞれページ０のデータが記憶される。
【００３６】
一方、図６（ｂ）に示すように、ＮＡＮＤ型フラッシュメモリ３における１ブロックのメモリ空間は、６４ページ×（２０４８＋６４Ｂｙｔｅ）であり、１ページに２ページ分のデータが記憶される。すなわち、例えばページ０とページ４のデータが１つのページのロアーページとアッパーページに記憶される。つまり、ページ０のカラム０とページ４のカラム０、ページ０のカラム１とページ４のカラム１…ページ０のカラム２１１１とページ４のカラム２１１１が１つのページに記憶される。つまり、１つのカラムに２ビット、“００”、“０１”、“１０”、“１１”のデータが記憶される。
【００３７】
上記のように、メモリセルにデータを書き込む理由は次の通りである。メモリセルの微細化が進むと、ワード線が隣接するメモリセル間の容量カップリングが顕著となる。この場合、隣接するメモリセルの一方にプログラムを行うと、他方のメモリセルも閾値がシフトする可能性がある。この容量カップリングによる閾値変動を避けるため、図６（ｂ）では、アッパーページにデータを書き込む前に、隣接するメモリセルのロアーページにデータを書き込んでいる。つまり、ページ０のデータが書き込まれたメモリセルのアッパーページにデータを書き込む前に、隣接するメモリセルのロアーページにページ１〜３のデータをそれぞれ書き込み、その後にメモリセルのアッパーページにページ４のデータを書き込んでいる。このように、隣接するメモリセルのロアーページにデータを書き込んでからアッパーページにデータを書き込むことにより、容量カップリングによる閾値変動を抑制することができる。
【００３８】
各メモリセルに書き込まれるページアドレスの関係は次の通りである。
【００３９】
ロアーページ  ＝０，１、及び４ｎ＋２，４ｎ＋３（ｎ＝０〜３０）
アッパーページ＝４ｎ，４ｎ＋１，及び１２６、１２７（ｎ＝１〜３２）
しかし、上記ページの割り当て方では、アッパーページのデータ書き込みに失敗すると、４ページ前に書き込まれたロアーページのデータが失われ、従来のページの割り当て方よりも過去のデータが失われてしまう。
【００４０】
そこで、本実施形態では次のような制御を行なっている。
【００４１】
すなわち、ホスト機器２０からＮＡＮＤ型フラッシュメモリ３にデータが書き込まれる際、一旦、特定のブロックのロアーページにのみデータを書き込み、適切な時期に、前記ブロックのロアーページに記憶されたデータを、別のブロックのロアーページとアッパーページにコピーすることによりデータの破壊を回避する。
【００４２】
以下、図１に示すブロック図及び図７に示すフローチャートを参照して動作について説明する。
【００４３】
先ず、データを書き込む際、メモリセルアレイ内からデータが書き込まれていないブロックＡが用意される（Ｓ１１）（図１（ａ））。このブロックＡのアドレスが、データの一時的な物理アドレスとなる。このブロックＡは、予め準備してあるものを使用してもよいし、未使用ブロックを、新たに消去して用意してもよい。
【００４４】
次に、書き込むべきデータを、ブロックＡのロアーページだけに書き込む（Ｓ１２）（図１（ｂ））。この後、所定のタイミング、例えばブロックＡの最終アドレスにデータを書き込んだかどうかが判別される（Ｓ１３）。この結果、まだ、最終アドレスではない場合、電源が切られたかどうかが判別され（Ｓ１４）、電源が切られていない場合、書き込むべきデータがあるかどうかが判別される（Ｓ１５）。この結果、書き込むべきデータがある場合、このデータが次のロアーページアドレスに書き込まれる（Ｓ１２）。
【００４５】
一方、前記ステップＳ１３において、ブロックＡの最終アドレスにデータを書き込んだことが判別された場合、ブロックＡとは別の未使用のブロックＢが選択され、このブロックＢのデータが消去される（Ｓ１６）。この後、ブロックＡのロアーページのデータがブロックＢのロアーページとアッパーページにコピーされる（Ｓ１７、Ｓ１８）（図１（ｃ））。このコピー動作は、例えば図６（ｂ）に示す書き込み順序に従って実行される。このコピー終了後、コピーされたデータの物理アドレスがブロックＡからブロックＢに書き換えられる（Ｓ１９）。ブロックＡからブロックＢへのコピー時に書き込みを失敗した場合においても、ブロックＡにデータが残っている。このため、ブロックＢとは別のブロックを用意して、再度コピーし直すことができる。この後、ブロックＡが解放され、ブロックＡは別の用途に使用される（Ｓ２０）（図１（ｄ））。
【００４６】
上記実施形態によれば、書き込みデータを先ず、ブロックＡのロアーページのみに書き込み、所定のタイミング、例えばブロックＡの最終ページにデータを書き込んだことが検出された場合、空きのブロックＢを用意し、このブロックＢのロアーページとアッパーページにブロックＡのロアーページに記憶されたデータを書き込んでいる。このように、ブロックＡに対する書き込みは、ロアーページのみであるため、後から書き込まれるデータにより既に書き込まれているデータが破壊されることを防止できる。
【００４７】
しかも、ブロックＡに対する書き込みは、ロアーページのみである。ロアーページの書き込みの後、アッパーページの書き込みを行なうＮＡＮＤ型フラッシュメモリの場合、ロアーページの書き込みは、アッパーページの書き込みに比べて、データの閾値分布が広い。すなわち、ロアーページの書き込みは、アッパーページの書き込みに比べて、閾値の制御が簡単であるため、アッパーページの書き込みより高速である。したがって、ブロックＡに対する書き込みを高速化することが可能である。
【００４８】
さらに、ブロックＡのデータをブロックＢのロアーページとアッパーページにコピーするとき、アッパーページの書き込みに失敗した場合においても、ブロックＡにデータが残っている。このため、この残っているデータを用いて再度ブロックＡのデータをコピーすることが可能である。したがって、確実に既に書き込んだデータを保護することが可能である。
【００４９】
尚、上記実施形態において、データを書き込む際に１つのブロックＡを用意し、このブロックＡのロアーページのみを使用している。このため、ブロックＡで使用できるデータのサイズは、書き込むべきデータサイズの半分になる。したがって、ロアーページのみの書き込みの際において、本来のデータサイズを確保するため、ブロックＡを２つ用意してもよい。
【００５０】
また、上記実施形態において、ブロックＡに対する書き込みは、ロアーページのみを使用している。しかし、これに限定されるものではなく、例えばアッパーページの次にロアーページを書き込む方式のメモリの場合、選択されたブロックのアッパーページのみにデータを書き込み、この後、別に選択されたブロックのアッパーページ及びロアーページにデータを書き込むことも可能である。
【００５１】
さらに、上記実施形態において、ブロックＡのデータをブロックＢへコピーするタイミングは、ブロックＡの最終アドレスにデータを書き込んだ場合とした。しかし、これに限定されるものではない。例えば１つのファイルのデータを書き込む場合において、ホスト機器から供給される書き込みアドレスに連続性が無くなった時、あるいは、あるファイルのデータの書き込みから、別のファイルのデータの書き込みへ移行される場合のように、ホスト機器から供給される書き込みアドレスに連続性が無くなった時等が考えられる。
【００５２】
また、上記実施形態は、図１、図７に示す動作をＮＡＮＤ型フラッシュメモリのコントローラ４により、制御する場合について説明した。しかし、これに限定されるものではなく、図１、図７に示す動作をホスト機器により制御することも可能である。
【００５３】
さらに、上記実施形態は、１つのメモリセルに４値（２ビット）のデータを記憶する場合について説明した。しかし、これに限定されるものではなく、例えば１つのメモリセルに３値以上のデータを記憶するメモリに本実施形態を適用することも可能である。
【００５４】
その他、本発明の要旨を変えない範囲において、種々変形実施可能なことは勿論である。
【図面の簡単な説明】
【００５５】
【図１】図１（ａ）〜図１（ｄ）は、実施形態の動作を示す図。
【図２】ホスト機器とメモリカードの一例を示すブロック図。
【図３】ホスト機器が想定しているフラッシュメモリと、実際に使用するフラッシュメモリとのデータ配置の違いを示す図。
【図４】ＮＡＮＤ型フラッシュメモリの構成を示す図。
【図５】本実施形態に適用される多値メモリを示す構成図。
【図６】図６（ａ）（ｂ）は、メモリセルの書き込み順序の一例を示す図。
【図７】実施形態の動作を示すフローチャート。
【符号の説明】
【００５６】
１…メモリカード、３…ＮＡＮＤ型フラッシュメモリ、４…コントローラ、２０…ホスト機器。
【図１】
2006221743.tif 000003
【図２】
2006221743.tif 000004
【図３】
2006221743.tif 000005
【図４】
2006221743.tif 000006
【図５】
2006221743.tif 000007
【図６】
2006221743.tif 000008
【図７】
2006221743.tif 000009