(57)【要約】【課題】データの信頼性を確保しつつ、複数ページのコピー処理時間を短縮する。【解決手段】記憶システムは、メモリセルアレイ１、ビット線スイッチ４、第１，第２のページバッファ２，３、カラムスイッチ５、エラー訂正回路１１及び制御回路７，１０を備えている。第２のページバッファは、第１のページバッファとデータ交換が可能である。制御回路は、ビット線スイッチ及び第１，第２のページバッファを制御して、メモリセルアレイにおける第１ブロックの第ｍ（ｍは正の整数）ページから第ｎ（ｍ＜ｎ、ｎは正の整数）ページまでの１ページ以上のページをページごとに順次読み出し、エラー訂正回路を制御して、このエラー訂正回路でエラー訂正計算を行い、第１，第２のページバッファ及びビット線スイッチを制御して、メモリセルアレイにおける消去状態にある第２のブロックに書き込みを行う制御をする。【選択図】      図１
2006073141.tif 000002
【特許請求の範囲】
【請求項１】
電気的に書き換え可能な不揮発性メモリセルが配列されたメモリセルアレイと、
読み出し時には前記メモリセルアレイからビット線スイッチを介して読み出したデータを、書き込み時には前記ビット線スイッチを介して前記メモリセルアレイに書き込むデータを保持する第１のデータバッファと、
前記第１のデータバッファとデータ交換が可能で、前記第１のデータバッファにデータをコピー、あるいは前記第１のデータバッファからデータがコピーされる第２のデータバッファと、
前記第２のデータバッファとバスとの間に設けられ、前記第２のデータバッファに保持されたデータの一部を選択してバスに転送するバススイッチと、
前記バスに接続され、前記メモリセルアレイから読み出されたデータのエラー訂正計算を行うエラー訂正回路と、
前記ビット線スイッチ及び前記第１，第２のデータバッファを制御して、前記メモリセルアレイにおける第１ブロックの第ｍ（ｍは正の整数）ページから第ｎ（ｍ＜ｎ、ｎは正の整数）ページまでの１ページ以上のページをページごとに順次読み出し、前記エラー訂正回路を制御して、前記エラー訂正回路でエラー訂正計算を行い、前記第１，第２のデータバッファ及び前記ビット線スイッチを制御して、前記メモリセルアレイにおける消去状態にある第２のブロックに書き込みを行う制御をする制御回路と
を具備することを特徴とする記憶システム。
【請求項２】
前記第１のデータバッファは、複数のエリアに分割され、セクタ単位でデータがリセットされることを特徴とする請求項１に記載の記憶システム。
【請求項３】
電気的に書き換え可能な不揮発性メモリセルが配列されたメモリセルアレイと、
読み出し時には前記メモリセルアレイから読み出したデータを、書き込み時には前記メモリセルアレイに書き込むデータを保持する第１，第２のデータバッファと、
前記第１，第２のデータバッファのうちいずれか一方と前記メモリセルアレイとを接続するビット線スイッチと、
前記第１，第２のデータバッファのうち前記メモリセルアレイと接続されていない方のデータバッファをバスに接続するバススイッチと、
前記バスに接続され、前記メモリセルアレイから読み出されたデータのエラー訂正計算を行うエラー訂正回路と、
前記ビット線スイッチ及び前記第１，第２のデータバッファを制御して、前記メモリセルアレイにおける第１ブロックの第ｍ（ｍは正の整数）ページから第ｎ（ｍ＜ｎ、ｎは正の整数）ページまでの１ページ以上のページをページごとに順次読み出し、前記エラー訂正回路を制御して、前記エラー訂正回路でエラー訂正計算を行い、前記第１，第２のデータバッファ及び前記ビット線スイッチを制御して、前記メモリセルアレイにおける消去状態にある第２のブロックに書き込みを行う制御をする制御回路と
を具備することを特徴とする記憶システム。
【請求項４】
メモリセルアレイから連続したページアドレスの複数ページのデータをページごとに第１のデータバッファに読み出すステップと、
前記第１のデータバッファに読み出したデータと第２のデータバッファのデータとを交換するステップと、
前記読み出した複数ページのデータのエラー訂正計算をそれぞれ実行するステップと、
前記エラー訂正計算で検出した不良データを訂正するステップと、
前記不良データを訂正した複数ページのデータを第２のデータバッファに入力するステップと、
前記第２のデータバッファのデータと前記第１のデータバッファのデータとを交換するステップと、
前記第１のデータバッファのデータを前記メモリセルアレイにおける読み出したエリアとは別のエリアに書き込むステップとを具備し、
あるページの読み出しあるいは書き込み動作の実行中に、前記読み出し動作あるいは書き込み動作の対象となっているページの次のページのエラー訂正計算と訂正動作を行うことを特徴とする記憶システムのページコピー方法。
【請求項５】
メモリセルアレイ、第１，第２のページバッファ及びエラー訂正回路を備えたフラッシュメモリ中のコピー元ブロックからコピー先ブロックへ複数ページを転送してコピーする方法であって、
前記第１のページバッファ中の前記コピー元ブロックにおける第１のページデータをストアするステップと、
前記第２のページバッファ中の前記コピー元ブロックにおける第２のページデータをストアするステップと、
前記コピー元ブロックの前記第１のページデータをプログラムするために、前記メモリセルアレイのコピー先ブロック中の、前記第１，第２のページバッファからプログラム手続きを開始するステップと、
前記第２のページバッファ中のコピー元ブロックにおける第２のページデータを検査するために、ＥＣＣ検査手続きを開始するステップとを具備し、
前記プログラム手続きと前記ＥＣＣ検査手続きを重複して実行する
ことを特徴とする記憶システムのデータコピー方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、記憶システム及びそのデータコピー方法に関するもので、例えばＮＡＮＤ型フラッシュメモリにおける連続した複数ページのコピーに係り、コピーの際にエラー訂正を行うシステムに適用されるものである。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリでは、例えば特許文献１に記載されているように、電荷蓄積層としての例えばフローティングゲートとコントロールゲートとが積層されたｎチャネルＭＯＳＦＥＴ構造の複数のメモリセルを、それらのソース，ドレインを隣接するもの同士で共有する形で直列接続し、その一端とビット線との間、及び他端とソース線との間にそれぞれ第１，第２のセレクトゲートを設けて、１つのＮＡＮＤストリングを構成している。上記ＮＡＮＤストリングはアレイ状に配置され、同一行のメモリセルのコントロールゲートがワード線に共通接続され、同一行の第１，第２のセレクトゲートのゲートが第１，第２のセレクトゲート線にそれぞれ共通接続される。
【０００３】
上記ワード線を共有するＮＡＮＤストリングのグループが消去単位としてのブロックを構成し、消去時にはブロック内の全てのメモリセルが消去される。読み出し及び書き込みでは、複数ブロック中の１つの第１のセレクトゲートを選択して導通させることにより、直列接続されたメモリセルをビット線に接続した状態で、１本のワード線に選択電圧、同一ＮＡＮＤストリング上のその他のワード線には非選択電圧を印加する。各ビット線には、センスアンプと書き込みバイアス回路（読み出し及び書き込みデータを保持するデータバッファとまとめてページバッファを呼ぶ）が接続され、選択されたワード線を共有するページと呼ばれる単位で読み出し並びに書き込みが行われる。１ページは例えば２１１２バイト、１ブロックは例えば１２８ＫＢである。
【０００４】
一方、ホストは、Ｉ／Ｏバスを介してメモリセルに記憶されているデータにアクセスする。Ｉ／Ｏバスのビット幅を例えば８ビット（１バイト）とすると、ホストはページバッファに対してＳＲＡＭと同様にバイト単位でアクセスする。
【０００５】
ところで、ＮＡＮＤ型フラッシュメモリでは、読み出しや書き込み時に、非選択のワード線（コントロールゲート）にも高電圧を印加してバイアスするため、ディスターブ特性が厳しく、読み出しの際にエラー訂正を必要とする場合が多い。また、書き込み単位（ページ）より消去単位（ブロック）のサイズの方が大きいため、あるページデータの上書きのために消去をしようとすると、該当ページを含むブロック全体が消去されてしまう。このため、消去前にブロック内の他のページのデータを別ブロックに退避させる必要が生じる。この結果、ＮＡＮＤ型フラッシュメモリにおいては、連続した複数ページのコピー（Page Copy）が頻繁に起きる。
【０００６】
ＮＡＮＤ型フラッシュメモリではページ単位でセンス動作を行うので、エラー訂正なしでページコピーを行う場合には読み出したデータをそのまま別のページに書き込むページコピー機能を実現するのが容易である。しかしながら、読み出したデータにエラー訂正処理を施さないと、読み出したデータが間違っていた場合には、誤りをそのまま新しいページに書き込んでしまうことになる。よって、ページコピー動作を繰り返すと、通常の読み出し時のエラー訂正処理では訂正できない多数のエラービットが生じる危険性がある。
【０００７】
上記のような多数のエラービットが発生する危険を回避するために、ページコピー時に読み出したデータに対してエラー訂正処理を行い、エラービットがあればそのデータを訂正したのちに新しいページアドレスに書き込むコピー方法を採用することがある。この際には、ページコピーは対象ページの読み出し動作、読み出したデータのエラー訂正動作、書き込み先への書き込み動作の３つのシーケンスからなる。このうち読み出し、書き込み動作はメモリセルへのアクセスを必要とし、エラー訂正はメモリセルではなくエラー訂正回路へのアクセスが必要となる。従って、読み出し、書き込みはページ単位で一括処理できるが、エラー訂正はページバッファのデータをバス（例えば８ビット）を介してＥＣＣ回路１１にシーケンシャルに転送する必要がある。例えば、ページサイズが２１１２バイト、バス幅が８ビットであれば２１１２サイクルの「データ読み出し＋エラー計算と訂正データのアップデート処理」が必要となる。すなわち、アクセスサイクルが５０ｎｓならば約１００μｓ（５０ｎｓ×２１１２）の時間を要する計算になる。よって、読み出しに２５μｓ、書き込みに２００μｓを要すると仮定すると、エラー訂正を行わないページコピーに対して１．５倍もの時間がかかる。
【０００８】
このように、従来の記憶システム及びそのデータコピー方法では、ページコピー動作における対象ページの読み出し動作時にエラー訂正を行わないと、ページコピーの繰り返しにより誤データコピーが発生してデータの信頼性が低下し、これを防ぐためにエラー訂正を行うとページコピー動作が著しく遅くなるという問題がある。
【特許文献１】特開２００２−１４１４７７
【発明の開示】
【発明が解決しようとする課題】
【０００９】
この発明は上記のような事情に鑑みてなされたもので、その目的とするところは、データの信頼性を確保しつつ、複数ページのコピー処理時間を短縮できる記憶システム及びそのデータコピー方法を提供することにある。
【課題を解決するための手段】
【００１０】
この発明の一態様によると、電気的に書き換え可能な不揮発性メモリセルが配列されたメモリセルアレイと、読み出し時には前記メモリセルアレイからビット線スイッチを介して読み出したデータを、書き込み時には前記ビット線スイッチを介して前記メモリセルアレイに書き込むデータを保持する第１のデータバッファと、前記第１のデータバッファとデータ交換が可能で、前記第１のデータバッファにデータをコピー、あるいは前記第１のデータバッファからデータがコピーされる第２のデータバッファと、前記第２のデータバッファとバスとの間に設けられ、前記第２のデータバッファに保持されたデータの一部を選択してバスに転送するバススイッチと、前記バスに接続され、前記メモリセルアレイから読み出されたデータのエラー訂正計算を行うエラー訂正回路と、前記ビット線スイッチ及び前記第１，第２のデータバッファを制御して、前記メモリセルアレイにおける第１ブロックの第ｍ（ｍは正の整数）ページから第ｎ（ｍ＜ｎ、ｎは正の整数）ページまでの１ページ以上のページをページごとに順次読み出し、前記エラー訂正回路を制御して、前記エラー訂正回路でエラー訂正計算を行い、前記第１，第２のデータバッファ及び前記ビット線スイッチを制御して、前記メモリセルアレイにおける消去状態にある第２のブロックに書き込みを行う制御をする制御回路とを具備する記憶システムが提供される。
【００１１】
また、この発明の一態様によると、電気的に書き換え可能な不揮発性メモリセルが配列されたメモリセルアレイと、読み出し時には前記メモリセルアレイから読み出したデータを、書き込み時には前記メモリセルアレイに書き込むデータを保持する第１，第２のデータバッファと、前記第１，第２のデータバッファのうちいずれか一方と前記メモリセルアレイとを接続するビット線スイッチと、前記第１，第２のデータバッファのうち前記メモリセルアレイと接続されていない方のデータバッファをバスに接続するバススイッチと、前記バスに接続され、前記メモリセルアレイから読み出されたデータのエラー訂正計算を行うエラー訂正回路と、前記ビット線スイッチ及び前記第１，第２のデータバッファを制御して、前記メモリセルアレイにおける第１ブロックの第ｍ（ｍは正の整数）ページから第ｎ（ｍ＜ｎ、ｎは正の整数）ページまでの１ページ以上のページをページごとに順次読み出し、前記エラー訂正回路を制御して、前記エラー訂正回路でエラー訂正計算を行い、前記第１，第２のデータバッファ及び前記ビット線スイッチを制御して、前記メモリセルアレイにおける消去状態にある第２のブロックに書き込みを行う制御をする制御回路とを具備する記憶システムが提供される。
【００１２】
更に、この発明の一態様によると、メモリセルアレイから連続したページアドレスの複数ページのデータをページごとに第１のデータバッファに読み出すステップと、前記第１のデータバッファに読み出したデータと第２のデータバッファのデータとを交換するステップと、前記読み出した複数ページのデータのエラー訂正計算をそれぞれ実行するステップと、前記エラー訂正計算で検出した不良データを訂正するステップと、前記不良データを訂正した複数ページのデータを第２のデータバッファに入力するステップと、前記第２のデータバッファのデータと前記第１のデータバッファのデータとを交換するステップと、前記第１のデータバッファのデータを前記メモリセルアレイにおける読み出したエリアとは別のエリアに書き込むステップとを具備し、あるページの読み出しあるいは書き込み動作の実行中に、前記読み出し動作あるいは書き込み動作の対象となっているページの次のページのエラー訂正計算と訂正動作を行う記憶システムのデータコピー方法が提供される。
【００１３】
更に、この発明の一態様によると、メモリセルアレイ、第１，第２のページバッファ及びエラー訂正回路を備えたフラッシュメモリ中のコピー元ブロックからコピー先ブロックへ複数ページを転送する方法であって、前記第１のページバッファ中の前記コピー元ブロックにおける第１のページデータをストアするステップと、前記第２のページバッファ中の前記コピー元ブロックにおける第２のページデータをストアするステップと、前記コピー元ブロックの前記第１のページデータをプログラムするために、前記メモリセルアレイのコピー先ブロック中の、前記第１，第２のページバッファからプログラム手続きを開始するステップと、前記第２のページバッファ中のコピー元ブロックにおける第２のページデータを検査するために、ＥＣＣ検査手続きを開始するステップとを具備し、前記プログラム手続きと前記ＥＣＣ検査手続きを重複して実行する記憶システムのデータコピー方法が提供される。
【発明の効果】
【００１４】
この発明によれば、データの信頼性を確保しつつ、複数ページのコピー処理時間を短縮できる記憶システム及びそのデータコピー方法が得られる。
【発明を実施するための最良の形態】
【００１５】
以下、この発明の実施形態について図面を参照して説明する。  
［第１の実施形態］
図１は、この発明の第１の実施形態に係る記憶システム及びそのデータコピー方法について説明するためのもので、ＮＡＮＤ型フラッシュメモリの概略構成を示すブロック図である。
【００１６】
メモリセルアレイ（Memory Cell Array）１には、ＮＡＮＤストリングがアレイ状に配置されている。このメモリセルアレイ１は、ビット線スイッチ（BL SW）４を介して第１，第２のページバッファ（PB0,PB1）２，３に接続されている。第１のページバッファ２は、センスアンプとしての機能部とデータキャッシュとしての機能部とを備えている。データキャッシュは、読み出し時にはセンスデータを、書き込み時には書き込みデータを保持する。このページバッファ２は、第２のページバッファ（PB1）３とページ単位でデータのやり取りを行うことができるように構成されている。そして、上記ページバッファ２とページバッファ３間は、互いのバッファにデータをコピーすることができ、且つ両者のデータを交換（スワップ）する機能を備える。
【００１７】
上記ページバッファ３は、ＣＳＬデコーダ（CSL Dec）６で指定されたカラムがカラムスイッチ（Col.SW）５を経由してＩ／Ｏバス１３に接続されることにより、データの入出力が可能になっている。このＩ／Ｏバス１３のビット幅が例えば８ビットであれば、ページバッファ３は１バイト単位でＩ／Ｏバス１３とデータの授受を行うことになる。
【００１８】
上記Ｉ／Ｏバス１３には、エラー訂正（ＥＣＣ）回路１１が接続されている。このエラー訂正回路１１でエラー訂正用のコードの生成とエラー訂正計算が行われる。
【００１９】
上記メモリセルアレイ１と上記ページバッファ２，３中の各データ保持部間のデータ転送動作、及び上記ページバッファ２によるセンス動作は、ページバッファコントロール回路（PB Ctrl）７によって制御される。また、このページバッファコントロール回路７によってビット線スイッチ４の動作が制御される。
【００２０】
ブロックデコーダ（BLK Dec）８Ａとロウデコーダ（ROW Dec）８Ｂとによって、上記メモリセルアレイ１中のページアドレスによって指定されたメモリセルが選択される。上記メモリセルアレイ１中の各メモリセルやページバッファ２，３に印加される電圧は、電源回路（Voltage Generator）９で生成される。また、この電源回路９で生成された電圧は、ＣＳＬデコーダ６、ページバッファコントロール回路７、ブロックデコーダ８Ａ及びロウデコーダ８Ｂなどに供給される。
【００２１】
当該半導体記憶装置（モジュール）は、インターフェース回路１２を介して外部に接続される。インターフェース回路１２中には、データ入出力用（I/O I/F）、コマンド用（CMD I/F）、及びアドレス用（Add I/F）などの回路部１２Ａ，１２Ｂ，１２Ｃが含まれている。読み出しや書き込みなどの各種命令、アドレス及びデータは、このインターフェース回路１２を介して授受される。そして、上記インターフェース回路１２を介して入力されたアドレスと命令は、内部制御回路（Controller）１０に送られる。この内部制御回路１０は、ページコピー制御（Page Copy Ctrl）、読み出し制御（Read Ctrl）、書き込み制御（Write Ctrl）、消去制御（Erase Ctrl）といった各種の制御を行う回路部１０Ａ，１０Ｂ，１０Ｃ，１０Ｄを備え、電源回路９やデコーダ８Ａ，８Ｂ、ページバッファコントロール回路７及びＣＳＬデコーダ６を制御することにより、書き込みや読み出し動作、消去動作、及びセンス動作などを制御する。
【００２２】
上記メモリセルアレイ１は、例えば図２に示すようにＮＡＮＤストリング１−１，１−２，１−３，…がアレイ状に配置されたＮＡＮＤセルアレイである。各々のＮＡＮＤストリング１−１，１−２，１−３，…は、フローティングゲートとコントロールゲートとが積層されたｎチャネルＭＯＳＦＥＴ構造の複数のメモリセルＭＣ１０，ＭＣ１１，ＭＣ１２，…，ＭＣ１４，ＭＣ１５を、それらのソース，ドレインを隣接するもの同士で共有する形で直列接続し、その一端とビット線ＢＬ１との間、及び他端とソース線ＳＬとの間にそれぞれ第１，第２のセレクトゲートＳＧ１，ＳＧ２を設けたものである。同一行のメモリセルＭＣのコントロールゲートはワード線ＷＬ０〜ＷＬ１５に共通接続され、同一行の第１，第２のセレクトゲートＳＧ１，ＳＧ２のゲートは第１，第２のセレクトゲート線ＳＧＤ，ＳＧＳにそれぞれ共通接続されている。同一列のＮＡＮＤストリングは、上記第１のセレクトゲートＳＧ１を介して同一のビット線ＢＬ１，ＢＬ２，ＢＬ３，…に接続される。また、各ＮＡＮＤストリング１−１，１−２，１−３，…は、上記第２のセレクトゲートＳＧ２を介してソース線ＳＬに共通接続されている。
【００２３】
上記各ビット線ＢＬ１，ＢＬ２，ＢＬ３，…には、ビット線スイッチ４として働くＭＯＳＦＥＴ４−１，４−２，４−３，…の電流通路を介して、ページバッファ２中のセンスアンプとして働く回路部ＳＡ１，ＳＡ２，ＳＡ３，…が接続される。
【００２４】
データは、メモリセル（セルトランジスタ）ＭＣのフローティングゲートに電子を注入するか否かに応じてしきい値電圧を変化させることにより記憶される。例えば２値記憶の場合には、図３に示すように、セルトランジスタＭＣのしきい値電圧が負の状態を“１”、正の状態を“０”に対応づけて記憶する。
【００２５】
図４（ａ），（ｂ），（ｃ）はそれぞれ、フラッシュメモリの各動作におけるバイアス例を示している。データの読み出し時には、図４（ａ）に示すようにセルトランジスタＭＣのソースＳに０Ｖ、ドレインＤに１Ｖ、コントロールゲートＣＧに５Ｖをそれぞれ印加する。この際、チャネル領域（バックゲート）は０Ｖに設定する。また、データの書き込み時には、図４（ｂ）に示すようにセルトランジスタのソースＳをオープン（Open）、ドレインＤに書き込みデータに応じて０Ｖ又はＶｃｃ、コントロールゲートＣＧに２０Ｖ、チャネル領域に０Ｖをそれぞれ印加する。一方、消去時には、図４（ｃ）に示すようにセルトランジスタのソースＳ、ドレインＤをともにオープン、コントロールゲートＣＧに０Ｖ、チャネル領域に２０Ｖをそれぞれ印加する。
【００２６】
図５は、上記図１に示した回路におけるページバッファ２，３のデータ交換機能を実現するための概略構成を示すブロック図である。この回路は、ページバッファ２中にデータをスタティックに保持するレジスタ（PB0 Reg）２Ａと、容量素子などを用いてデータをダイナミックに保持するテンポラリレジスタ（Temporary Reg）２Ｂとを設け、スイッチＳＷ１〜ＳＷ３を選択的に切り替えることでデータ交換機能を実現するものである。すなわち、ページバッファコントロール回路７の制御により、ページバッファ２あるいはページバッファ３中のいずれかのデータを一時的にテンポラリレジスタ２Ｂに保存したうえで、ページバッファ２とページバッファ３間のデータのコピーを行い、最後にテンポラリデータ２Ｂに書き戻す動作を行うことによりデータを交換する。
【００２７】
図６は、上記図５に示した回路におけるページバッファ２，３とその周辺回路の具体的な構成例を示す回路図、図７は図６に示した回路の動作を示すタイミングチャートである。図６に示す回路は、ビット線電位設定用のｎチャネルＭＯＳＦＥＴ３１、センスアンプ及びデータキャッシュとして働くラッチ３２，３３、上記ラッチ３２，３３にビット線ＢＬの電位を転送するための転送用のｎチャネルＭＯＳＦＥＴ３４，３５、ビット線プリチャージ用のｎチャネルＭＯＳＦＥＴ３６、上記ラッチ３２，３３に保持されているデータの読み出しと転送を行うためのｎチャネルＭＯＳＦＥＴ３７〜３９、及び電荷保持用のキャパシタＣ１，Ｃ２などを備えている。
【００２８】
すなわち、ビット線ＢＬにはＭＯＳＦＥＴ３１の電流通路の一端が接続され、このＭＯＳＦＥＴ３１の電流通路の他端（ノードＮ０）にはＭＯＳＦＥＴ３４，３５の電流通路の一端が接続される。上記ＭＯＳＦＥＴ３１のゲートには信号ＢＬＣＬＡＭＰが供給され、上記ＭＯＳＦＥＴ３４のゲートには信号ＴＧ１が供給され、上記ＭＯＳＦＥＴ３５のゲートには信号ＴＧ２が供給される。上記ＭＯＳＦＥＴ３４の電流通路の他端はラッチ３２に接続され、上記ＭＯＳＦＥＴ３５の電流通路の他端はラッチ３３に接続される。
【００２９】
上記ノードＮ０と電源Ｖｃｃ間には、ＭＯＳＦＥＴ３６の電流通路が接続される。このＭＯＳＦＥＴ３６のゲートには、信号ＰＳが供給される。ビット線ＢＬをプリチャージするときには、上記信号ＰＳを“Ｈ”レベルにしてＭＯＳＦＥＴ３６をオンさせる。この際、信号ＢＬＣＬＡＭＰのレベルに応じてＭＯＳＦＥＴ３１のオン抵抗を変化させ、ビット線ＢＬのプリチャージ電位を調整する。また、上記ノードＮ０と接地点Ｖｓｓ間には、キャパシタＣ２が接続されている。更に、上記ノードＮ０には、ＭＯＳＦＥＴ３７の電流通路の一端が接続され、そのゲートには信号ＲＥＧが供給される。上記ＭＯＳＦＥＴ３７の電流通路の他端には、ＭＯＳＦＥＴ３８の電流通路の一端が接続され、そのゲート（ノードＮ２）はＭＯＳＦＥＴ３９の電流通路の一端に接続される。上記ＭＯＳＦＥＴ３８の電流通路の他端（ベリファイ時の比較線ＣＯＭ）は、バイトごとに共有される。上記ノードＮ２と接地点Ｖｓｓ間には、キャパシタＣ１が接続されている。上記キャパシタＣ２，Ｃ１はそれぞれ、ノードＮ０，Ｎ２の寄生容量が十分大きければ必ずしも設けなくても良い。上記ＭＯＳＦＥＴ３９の電流通路の他端は、ＭＯＳＦＥＴ３４とラッチ３２との接続点に接続され、そのゲートには信号ＤＴＧが供給される。
【００３０】
上記のような構成において、選択されたメモリセルからビット線ＢＬを介して読み出されたデータは、ＭＯＳＦＥＴ３１，３４あるいはＭＯＳＦＥＴ３１，３５を介してラッチ３２又は３３に供給されてセンスされ且つ保持される。ラッチ３２，３３間のデータ交換は、図７のタイミングチャートに示すようにして行われる。ここでは、ラッチ３２にデータＡがラッチされ、ラッチ３３にデータＢがラッチされているものとする。
【００３１】
時点ｔ１からｔ２の期間に信号ＤＴＧが“Ｈ”レベルになると、ＭＯＳＦＥＴ３９がオンし、ノードＮ２は上記ラッチ３２のデータＡに応じてレベルが設定される。すなわち、このノードＮ２（容量ノード）は図５に示した回路におけるテンポラリレジスタ２Ｂとして機能し、ＭＯＳＦＥＴ３９をオンさせた後、オフすることで一時的にラッチ３２のデータを保持することができる。
【００３２】
時点ｔ３に信号ＴＧ２が“Ｈ”レベルになるとＭＯＳＦＥＴ３５がオンし、ノードＮ０は上記ラッチ３３のデータＢに応じてレベルが設定される。引き続き、時点ｔ４に信号ＴＧ１が“Ｈ”レベルになるとＭＯＳＦＥＴ３４がオンし、ノードＮ０の電位が上記ラッチ３２に供給されてラッチされ、時点ｔ５に信号ＴＧ１が“Ｌ”レベルになるとＭＯＳＦＥＴ３４がオフしてラッチ状態が保持される。これによって、ラッチ３３のデータＢがラッチ３２に書き込まれる。
【００３３】
次の時点ｔ６に、信号ＲＥＧが“Ｈ”レベルになるとＭＯＳＦＥＴ３７がオンし、ノードＮ２のレベルに応じたＭＯＳＦＥＴ３８のオン／オフ状態に対応してノードＮ０のレベルが決定される。この時、比較線ＣＯＭを電源電圧Ｖｃｃに充電することにより、ノードＮ２が“Ｈ”レベルであればノードＮ０が充電されて“Ｈ”レベルとなり、“Ｌ”レベルであればノードＮ０は充電されない。すなわち、ラッチ３２のデータＡがノードＮ０に転送される。この際、ＭＯＳＦＥＴ３５はオン状態にあるので、上記ノードＮ０のデータＡがラッチ３３に供給されてラッチされ、時点ｔ７に信号ＴＧ２，ＲＥＧが“Ｌ”レベルになるとＭＯＳＦＥＴ３５，３７がオフしてラッチ状態が保持される。このようにしてラッチ３２のデータとラッチ３３のデータＡ，Ｂの交換が完了する。
【００３４】
次に、上記図１乃至図７に示したような構成において、図８のフローチャートに示す複数ページのコピーシーケンス、及び図９の模式的なタイミングチャートに示すパイプライン動作のタイミングにより動作を説明する。
【００３５】
ここでは、あるブロック内の複数ページを、消去状態にある別のブロックにコピーする場合を例に取って説明する。
【００３６】
この場合、
（ａ）コピー元（Source）のブロックアドレスＳ＿ＢＡ
（ｂ）コピー先（Destination）のブロックアドレスＤ＿ＢＡ
（ｃ）コピー開始ページアドレスＳ＿ＰＡ
（ｄ）コピー終了ページアドレスＥ＿ＰＡ
の４つの情報がコピー開始時に確定している。
【００３７】
コピーシーケンスを開始すると、まずアドレス変数を決定する。読み出し、書き込み時のそれぞれのアドレスとなるＰＡＧＥ＿ＲＤ、ＰＡＧＥ＿ＷＲ、及びアドレスカウントアップ変数ｐａｇｅ（ｐａｇｅ＝Ｓ＿ＰＡ）をそれぞれステップＳ１のように初期設定する。これによって、コピー開始ページアドレスＳ＿ＰＡで指定されるコピー先頭アドレスを読み出し対象に設定する。
【００３８】
次に、読み出し動作を行う（ステップＳ２）。ステップＳ１で設定した読み出し用ページアドレスＰＡＧＥ＿ＲＤをメモリセルアレイ１へのアクセスアドレスＦｌａｓｈ＿ＰＡＧＥとして読み出しコマンドあるいはトリガを与えて読み出し動作を開始する。読み出し動作が完了すると（ステップＳ３）、両ページバッファ２，３間でデータを交換（スワップ）する（ステップＳ４）。このステップＳ４のデータ交換動作は、例えば図７のタイミングチャートに示したような手順で行われる。ページバッファ２にはステップＳ２からステップＳ３で読み出したＰＡＧＥ＿ＲＤのデータが保存されているが、ページバッファ３にはステップＳ４では意味のないデータが保持されている。
【００３９】
次に、ステップＳ２で読み出したデータに対してＥＣＣ計算を開始する（ステップＳ５）。まず、ページバッファ３に保持されたデータをＩ／Ｏバス１３経由（バス幅が８ビットなら１バイトごと）でＥＣＣ回路１１にシーケンシャルに送る。ＥＣＣ回路１１はデータにエラーがあるか否か検査し、エラーがあればその訂正を行う。そして、訂正すべきデータがあればそこだけ（あるいは全体）をページバッファ３に書き戻す。この一連のシーケンスをここではＥＣＣ計算と呼ぶ。
【００４０】
ステップＳ５でＥＣＣ計算を開始すると、次にアクセスするアドレスを計算する（ステップＳ６）。書き込みのブロックアドレスはコピー先ブロックＤ＿ＢＡ、ページアドレスはステップＳ１で指定したＰＡＧＥ＿ＲＤと同じである。そして、次の読み出しアドレスはステップＳ１のＰＡＧＥ＿ＲＤに１を加えたアドレスとなる。これらの計算は変数ｐａｇｅを使うとステップＳ６の計算式で表記できる。
【００４１】
ＥＣＣ計算が終了すると（ステップＳ７）、該当ページがページコピーの最終か否かを判断する（ステップＳ９）。当該フローチャートではメモリレディ（Memory Ready）を待ち（ステップＳ７）、ステータス（Status）チェック（ステップＳ８）をしているが、最初のシーケンスでは書き込みがないのでこれらのステップはパスする。これらはパイプライン動作のためのものであり後ほど説明する。ここでは、読み出し動作が完了するステップＳ３の後の処理のためにメモリは既にレディ状態であり、ステップＳ７ではＥＣＣ計算の終了のみをチェックしてスルーする。また、ステータスのデフォルト値はパス状態のためステップＳ８のシーケンスはパスのフローを通過する。
【００４２】
ステップＳ９で終了ページであること、つまりもう読み出すページが存在しないことが確認されると、ＥＣＣ計算が完了したページバッファ３のデータを、ページバッファ３→ページバッファ２→メモリセルへと書き込んで終了するＹｅｓ側のフローに移動する。そうでない場合はＮｏ側、つまりステップＳ１０に移動する。
【００４３】
ステップＳ１０では、次のページの読み出しを開始する。ステップＳ１０の読み出しが終了すると（ステップＳ１１）、ページバッファ３にはＥＣＣ計算が完了してコピー先に書き込みたいデータが、ページバッファ２にはページバッファ３に保持されたページの次のページデータであってＥＣＣ計算がまだされていないデータが保持されていることになる。そこで、ページバッファ２とページバッファ３のデータを交換して（ステップＳ１２）、ＥＣＣ計算の終わったデータをコピー先ブロックに書き込みを開始するとともに（ステップＳ１３）、次のページのＥＣＣ計算を開始する（ステップＳ５）。つまり、書き込みとＥＣＣ計算を同時に実行する。
【００４４】
書き込みとＥＣＣ計算を実行している間に、さらに次にアクセスすべきページアドレスを計算して（ステップＳ６）、書き込みとＥＣＣ計算の完了を待つ（ステップＳ７）。フラッシュメモリへの書き込みはベリファイ動作を伴い、終了時に正常に書き込めたか否かのステータスを返す。書き込みのステータスを確認し、フェイル（Fail）ならばページコピー異常終了、パス（Pass）ならば次のシーケンスに進む（ステップＳ８）。
【００４５】
書き込みがパスした後、まだコピー元に読み出すべきページがあればステップＳ１０に進み、同じ動作を繰り返す。なければステップＳ９の時点でページバッファ２にはコピー先のフラッシュメモリに既に書き込みが終了して無意味なデータが保持されており、ページバッファ３にはＥＣＣ計算が完了した最後のページデータが保持されている。そこで、ステップＳ１４でページバッファ３中のデータをページバッファ２に移動し、ステップＳ１５〜Ｓ１７で書き込み、ステータスチェックを行い、書き込みがフェイルならば異常終了、パスすれば正常終了として完了する。
【００４６】
図９は本実施形態の読み出し、アドレス計算、ＥＣＣ計算及び書き込みの４種類のシーケンスを１つのボックス（box）として同時実行のタイミングを模式的に表したものである。ボックス内のＰ０，Ｐ１，Ｐ２，Ｐ３，Ｐ４，…はそれぞれページナンバーを示す。
【００４７】
各ページＰ０，Ｐ１，Ｐ２，Ｐ３，Ｐ４，…はＳｔａｇｅ１−１（アドレス計算）、Ｓｔａｇｅ１−２（読み出し）、Ｓｔａｇｅ２（ＥＣＣ計算）、Ｓｔａｇｅ３（書き込み）の順に処理され、同一ページのこれら４つの処理が重なることはない。アドレス計算と読み出しは、各々のページＰ０，Ｐ１，Ｐ２，Ｐ３，Ｐ４，…に対してページごとに交互に実行される。上記アドレス計算の最中に、１ページ前のページデータのＥＣＣ計算と２ページ前のページデータの書き込みが重複して実行される。
【００４８】
Ｓｔａｇｅ１−１、Ｓｔａｇｅ２、Ｓｔａｇｅ３、特にＳｔａｇｅ２のＥＣＣ計算とＳｔａｇｅ３の書き込み動作を同時に実行することでページコピー全体の処理時間を大幅に短縮できる。
【００４９】
上記のような構成並びに方法によれば、ページデータを２ページ分保持することが可能なキャッシュメモリを用意し、一方がメモリセルをアクセスしている際に、同時に他方がエラー訂正回路のアクセスを行うようにしたので、例えばあるページの書き込みを行っている際に、同時に次のコピーデータのエラー訂正動作を行うことが可能となる。よって、複数ページのコピー処理時間を大幅に短縮できる。
【００５０】
従って、データの信頼性を確保しつつ、複数ページのコピー処理時間を短縮できる記憶システム及びそのデータコピー方法が得られる。
【００５１】
［第２の実施形態］
図１０は、この発明の第２の実施形態に係る記憶システム及びそのデータコピー方法について説明するためのもので、ＮＡＮＤ型フラッシュメモリのデータコピー方法を示すフローチャートである。本第２の実施形態は、セクタ単位でコピーを行うケースであり、ページコピーの開始位置と終了位置がセクタの途中にある例である。
【００５２】
すなわち、通常、ＮＡＮＤフラッシュメモリでは、ページ単位で読み出し、書き込みを行う。しかし、１ページのサイズは大きいため、ページコピーの先頭や末尾はページの先頭でなくページの途中からにしたい場合がある。例えばページサイズが２ＫＢ＋６４Ｂ（６４ＢはＥＣＣコードや管理データ用エリア）で、アクセスするデータは５１２Ｂ＋１６Ｂ単位（以後セクタと呼ぶ）であるとすると、１ページは４セクタからなる。そして、ページコピーの先頭が先頭ページや第２（あるいは第３，第４）セクタであったり、ページコピーの末尾が第１（あるいは第２，第３）セクタであったりする。
【００５３】
そこで、このようなセクタ単位のページコピーを実現するために、図１に示した回路におけるページバッファ２にセクタ単位のリセット機能を持たせている。ここで、リセットとは、該当セクタのページバッファ２中のデータを全て“１”にする機能を指す。
【００５４】
１ページを４セクタ構成とし、第１セクタをアドレス“０”、第２セクタをアドレス“１”、第３セクタをアドレス“２”、第４セクタをアドレス“３”に対応させる場合を例に取って説明する。
【００５５】
第１の実施形態と同様に、あるブロック内の複数ページを、消去状態にある別のブロックにコピーする場合について考える。
【００５６】
ここで、
（ａ）コピー元（Source）のブロックアドレスＳ＿ＢＡ
（ｂ）コピー先（Destination）のブロックアドレスＤ＿ＢＡ
（ｃ）コピー開始ページアドレスＳ＿ＰＡ
（ｄ）コピー開始セクタアドレスＳ＿ＳＡ
（ｅ）コピー終了ページアドレスＥ＿ＰＡ
（ｆ）コピー終了セクタアドレスＥ＿ＳＡ
の情報がコピー開始時に確定しているものとする。
【００５７】
基本的なコピーの手順は図８のフローチャートに示した第１の実施形態と同様であるが、読み出し動作の後、ページコピーの先頭ならばセクタ０からＳ＿ＳＡ−１をリセットし、末尾ならばセクタＥ＿ＳＡ＋１からセクタＥ＿ＳＡ＋３までをリセットする点が異なっている。
【００５８】
すなわち、コピーシーケンスを開始すると、まずアドレス変数を決定する。読み出し、書き込み時のそれぞれのアドレスとなるＰＡＧＥ＿ＲＤ、ＰＡＧＥ＿ＷＲ、及びアドレスカウントアップ変数ｐａｇｅ（ｐａｇｅ＝Ｓ＿ＰＡ／ｓ＿ｓｅｃｔｏｒ＝Ｓ＿ＳＡ／ｅ＿ｓｅｃｔｏｒ＝３）をそれぞれステップＳ１’のように初期設定する。これによって、コピー開始ページアドレスＳ＿ＰＡとコピー開始セクタアドレスＳ＿ＳＡで指定されるコピー先頭アドレスを読み出し対象に設定する。
【００５９】
次に、読み出し動作を行う（ステップＳ２）。ステップＳ１’で設定した読み出し用ページアドレスＰＡＧＥ＿ＲＤをメモリセルアレイ１へのアクセスアドレスＦｌａｓｈ＿ＰＡＧＥとして読み出しコマンドあるいはトリガを与えて読み出し動作を開始する。読み出し動作が完了すると（ステップＳ３）、ページコピーの先頭ならばページバッファ２のセクタ０からＳ＿ＳＡ−１をリセットし（ステップＳ１００）、両ページバッファ２，３間でデータを交換する（ステップＳ４）。このステップＳ４のデータ交換動作は、例えば図７のタイミングチャートに示したような手順で行われる。ページバッファ２にはステップＳ２からステップＳ３で読み出したＰＡＧＥ＿ＲＤのデータ（ページコピーの先頭ならばページバッファ２のセクタ０からＳ＿ＳＡ−１がリセットされて）が保存されているが、ページバッファ３にはステップＳ４では意味のないデータが保持されている。
【００６０】
次に、ステップＳ２で読み出したデータに対してＥＣＣ計算を開始する（ステップＳ５）。まず、ページバッファ３に保持されたデータをＩ／Ｏバス１３経由（バス幅が８ビットなら１バイトごと）でＥＣＣ回路１１にシーケンシャルに送る。ＥＣＣ回路１１はデータにエラーがあるか否か検査し、エラーがあればその訂正を行う。そして、訂正すべきデータがあればそこだけ（あるいは全体）をページバッファ３に書き戻す。
【００６１】
ステップＳ５でＥＣＣ計算を開始すると、次にアクセスするアドレスを計算する（ステップＳ６’）。書き込みのブロックアドレスはコピー先ブロックＤ＿ＢＡ、ページアドレスはステップＳ１で指定したＰＡＧＥ＿ＲＤと同じである。そして、次の読み出しアドレスはステップＳ１のＰＡＧＥ＿ＲＤに１を加えたアドレスとなる。これらの計算は変数ｐａｇｅを使うとステップＳ６’の計算式で表記できる。
【００６２】
ＥＣＣ計算が終了すると（ステップＳ７）、該当ページがページコピーの最終か否かを判断する（ステップＳ９）。当該フローチャートではメモリレディを待ち（ステップＳ７）、ステータスチェック（ステップＳ８）をしているが、最初のシーケンスでは書き込みがないのでこれらのステップはパスする。これらはパイプライン動作のためのものである。ここでは、読み出し動作が完了するステップＳ３の後の処理のためにメモリは既にレディ状態であり、ステップＳ７はＥＣＣ計算の終了のみチェックしてスルーする。また、ステータスのデフォルト値はパス状態のためステップＳ８のシーケンスはパスのフローを通過する。
【００６３】
ステップＳ９で終了ページであること、つまりもう読み出すページが存在しないことが確認されると、ＥＣＣ計算が完了したページバッファ３のデータを、ページバッファ３→ページバッファ２→メモリセルへと書き込んで終了するＹｅｓ側のフローに移動する。そうでない場合はＮｏ側、つまりステップＳ１０に移動する。
【００６４】
ステップＳ１０では、次のページの読み出しを開始する。ステップＳ１０の読み出しが終了すると（ステップＳ１１）、ページコピーの末尾か否か判定し（ステップＳ１０１）、末尾ならばセクタＥ＿ＳＡ＋１からセクタＥ＿ＳＡ＋３までをリセットする（ステップＳ１０２）。ページバッファ３にはＥＣＣ計算が完了してコピー先に書き込みたいデータが、ページバッファ２にはページバッファ３に保持されたページの次のページデータでＥＣＣ計算がまだされていないデータが保持されていることになる。そこで、ページバッファ２とページバッファ３のデータを交換して（ステップＳ１２）、ＥＣＣ計算の終わったデータをコピー先ブロックに書き込みを開始するとともに（ステップＳ１３）、次のページのＥＣＣ計算を開始する（ステップＳ５）。つまり、書き込みとＥＣＣ計算を同時に実行する。
【００６５】
書き込みとＥＣＣ計算を実行している間にさらに次にアクセスすべきページアドレスを計算して（ステップＳ６’）、書き込みとＥＣＣ計算の完了を待つ（ステップＳ７）。フラッシュメモリへの書き込みはベリファイ動作を伴い、終了時に正常に書き込めたかどうかのステータスを返す。書き込みのステータスを確認し、フェイルならばページコピー異常終了、パスならば次のシーケンスに進む（ステップＳ８）。
【００６６】
書き込みがパスした後、まだコピー元に読み出すべきページがあればステップＳ１０に進み、同じ動作を繰り返す。なければステップＳ９の時点でページバッファ２にはコピー先のフラッシュメモリに既に書き込みが終了して無意味なデータが保持されており、ページバッファ３にはＥＣＣ計算が完了した最後のページデータが保持されている。そこでステップＳ１４でページバッファ３中のデータをページバッファ２に移動し、ステップＳ１５〜Ｓ１７で書き込み、ステータスチェックを行い、書き込みがフェイルならば異常終了、パスすれば正常終了として完了する。
【００６７】
上記のような構成並びに方法によれば、ページデータを２ページ分保持することが可能なキャッシュメモリを用意し、一方がメモリセルをアクセスしている際に、同時に他方がエラー訂正回路にアクセスするようにしたので、例えばセクタ単位で、あるページの書き込みを行っている際に、同時に次のコピーデータのエラー訂正動作を行うことが可能となる。しかも、ページバッファ２にセクタ単位のリセット機能を持たせているので、ページコピーの開始位置と終了位置がセクタの途中にある場合にも対応できる。よって、複数ページのコピー処理時間を大幅に短縮できる。
【００６８】
従って、データの信頼性を確保しつつ、複数ページのコピー処理時間を短縮できる記憶システム及びそのデータコピー方法が得られる。
【００６９】
［第３の実施形態］
図１１及び図１２はそれぞれ、この発明の第３の実施形態に係る記憶システム及びそのデータコピー方法について説明するためのもので、図１１はＮＡＮＤ型フラッシュメモリの概略構成を示すブロック図、図１２は複数ページのコピーシーケンスを示すフローチャートである。本第３の実施形態は、第２の実施形態と同様にセクタ単位でコピーを行うケースであり、リセットしたセクタデータを外部から補完するものである。
【００７０】
上述した第２の実施形態では、１ページを分割してセクタ単位で何度も書き込みができる必要がある。この動作は同じワード線を複数回（セクタ数分だけ）選択及び書き込みする。つまり、最初に書き込まれたセクタには「セクタ数−１」回の書き込みストレス（ディスターブ）がかかることになり、メモリセルの信頼性を劣化させる。よって、書き込みはページ単位で行われることが望ましい。しかしながら、ページ単位の書き込みのみでセクタ単位のデータ管理を行おうとすると、第２の実施形態においてデータリセットしたセクタに外部からデータを補完する必要がある。
【００７１】
本第３の実施形態は、このデータ補完を実現したもので、カラムスイッチ５とページバッファ３との間に第３のページバッファ（PB2）１４を設け、Ｉ／Ｏバス１３からカラムスイッチ５を介して新しいデータを取り込む。そして、ＥＣＣ計算の処理の後にリセットされたセクタに上記ページバッファ１４からデータを補完して書き込みを実行するようにしている。
【００７２】
すなわち、コピーシーケンスを開始すると、まずアドレス変数を決定する。読み出し、書き込み時のそれぞれのアドレスとなるＰＡＧＥ＿ＲＤ、ＰＡＧＥ＿ＷＲ、及びアドレスカウントアップ変数ｐａｇｅ（ｐａｇｅ＝Ｓ＿ＰＡ／ｓ＿ｓｅｃｔｏｒ＝Ｓ＿ＳＡ／ｅ＿ｓｅｃｔｏｒ＝３）をそれぞれステップＳ１’のように初期設定する。これによって、コピー開始ページアドレスＳ＿ＰＡとコピー開始セクタアドレスＳ＿ＳＡで指定されるコピー先頭アドレスを読み出し対象に設定する。
【００７３】
次に、読み出し動作を行う（ステップＳ２）。ステップＳ１’で設定した読み出し用ページアドレスＰＡＧＥ＿ＲＤをメモリセルアレイ１へのアクセスアドレスＦｌａｓｈ＿ＰＡＧＥとして読み出しコマンドあるいはトリガを与えて読み出し動作を開始する。読み出し動作が完了すると（ステップＳ３）、ページコピーの先頭ならばページバッファ２のセクタ０からＳ＿ＳＡ−１をリセットし（ステップＳ１００）、両ページバッファ２，３間でデータを交換する（ステップＳ４）。このステップＳ４のデータ交換動作は、例えば図７のタイミングチャートに示したような手順で行われる。ページバッファ２にはステップＳ２からステップＳ３で読み出したＰＡＧＥ＿ＲＤのデータ（ページコピーの先頭ならばページバッファ２のセクタ０からＳ＿ＳＡ−１がリセットされて）が保存されているが、ページバッファ３にはステップＳ４では意味のないデータが保持されている。
【００７４】
次に、ステップＳ２で読み出したデータに対してＥＣＣ計算を開始する（ステップＳ５）。まず、ページバッファ３に保持されたデータをＩ／Ｏバス１３経由（バス幅が８ビットなら１バイトごと）でＥＣＣ回路１１にシーケンシャルに送る。ＥＣＣ回路１１はデータにエラーがあるか否か検査し、エラーがあればその訂正を行う。そして、訂正すべきデータがあればそこだけ（あるいは全体）をページバッファ３に書き戻す。
【００７５】
ステップＳ５でＥＣＣ計算を開始すると、次にアクセスするアドレスを計算する（ステップＳ６’）。書き込みのブロックアドレスはコピー先ブロックＤ＿ＢＡ、ページアドレスはステップＳ１で指定したＰＡＧＥ＿ＲＤと同じである。そして、次の読み出しアドレスはステップＳ１のＰＡＧＥ＿ＲＤに１を加えたアドレスとなる。これらの計算は変数ｐａｇｅを使うとステップＳ６’の計算式で表記できる。
【００７６】
ＥＣＣ計算が終了すると（ステップＳ７）、ＥＣＣ計算処理の後にリセットされたセクタにページバッファ１４からデータを補完して（ステップＳ２００）、該当ページがページコピーの最終か否かを判断する（ステップＳ９）。当該フローチャートではメモリレディを待ち（ステップＳ７）、ステータスチェック（ステップＳ８）をしているが、最初のシーケンスでは書き込みがないのでこれらのステップはパスする。これらはパイプライン動作のためのものである。ここでは、読み出し動作が完了するステップＳ３の後の処理のためにメモリは既にレディ状態であり、ステップＳ７ではＥＣＣ計算の終了のみをチェックしてスルーする。また、ステータスのデフォルト値はパス状態のためステップＳ８のシーケンスはパスのフローを通過する。
【００７７】
ステップＳ９で終了ページであること、つまりもう読み出すページが存在しないことが確認されると、ＥＣＣ計算が完了したページバッファ３のデータを、ページバッファ３→ページバッファ２→メモリセルへと書き込んで終了するＹｅｓ側のフローに移動する。そうでない場合はＮｏ側、つまりステップＳ１０に移動する。
【００７８】
ステップＳ１０では、次のページの読み出しを開始する。ステップＳ１０の読み出しが終了すると（ステップＳ１１）、ページコピーの末尾か否か判定し（ステップＳ１０１）、末尾ならばセクタＥ＿ＳＡ＋１からセクタＥ＿ＳＡ＋３までをリセットする（ステップＳ１０２）。ページバッファ３にはＥＣＣ計算が完了してコピー先に書き込みたいデータが、ページバッファ２にはページバッファ３に保持されたページの次のページデータでＥＣＣ計算がまだされていないデータが保持されていることになる。そこで、ページバッファ２とページバッファ３のデータを交換して（ステップＳ１２）、ＥＣＣ計算の終わったデータをコピー先ブロックに書き込みを開始するとともに（ステップＳ１３）、次のページのＥＣＣ計算を開始する（ステップＳ５）。つまり、書き込みとＥＣＣ計算を同時に実行する。
【００７９】
書き込みとＥＣＣ計算を実行している間に、さらに次にアクセスすべきページアドレスを計算して（ステップＳ６’）、書き込みとＥＣＣ計算の完了を待つ（ステップＳ７）。フラッシュメモリへの書き込みはベリファイ動作を伴い、終了時に正常に書き込めたか否かのステータスを返す。書き込みのステータスを確認し、フェイルならばページコピー異常終了、パスならば次のシーケンスに進む（ステップＳ８）。
【００８０】
書き込みがパスした後、まだコピー元に読み出すべきページがあればステップＳ１０に進み、同じ動作を繰り返す。なければステップＳ９の時点でページバッファ２にはコピー先のフラッシュメモリに既に書き込みが終了して無意味なデータが保持されており、ページバッファ３にはＥＣＣ計算が完了した最後のページデータが保持されている。そこで、ステップＳ１４でページバッファ３中のデータをページバッファ２に移動し、ステップＳ１５〜Ｓ１７で書き込み、ステータスチェックを行い、書き込みがフェイルならば異常終了、パスすれば正常終了として完了する。
【００８１】
上記のような構成並びに方法によれば、ページデータを２ページ分保持することが可能なキャッシュメモリを用意し、一方がメモリセルをアクセスしている際に、同時に他方がエラー訂正回路をアクセスするようにしたので、例えばセクタ単位で、あるページの書き込みを行っている際に、同時に次のコピーデータのエラー訂正動作を行うことが可能となる。よって、複数ページのコピー処理時間を大幅に短縮できる。しかも、ＥＣＣ計算の処理の後にリセットされたセクタに新しいデータを補完してから書き込みを実行するので、ページ単位の書き込みのみでセクタ単位のデータ管理を行うことができ、ディスターブを抑制して信頼性を確保できる。
【００８２】
従って、データの信頼性を確保しつつ、複数ページのコピー処理時間を短縮できる記憶システム及びそのデータコピー方法が得られる。
【００８３】
［第４の実施形態］
図１３は、この発明の第４の実施形態に係る記憶システム及びそのデータコピー方法について説明するためのもので、ＮＡＮＤ型フラッシュメモリのプログラムフェイル（Program Fail）時の処理手順を示すフローチャートである。この図１３では、図８に示した第１の実施形態に係るページコピー方法のフローチャートをもとにしたページコピーフェイル時の処理シーケンスを示している。
【００８４】
本第４の実施形態では、フェイルリカバー（Fail Recover）のページコピー読み出し（Page Copy Read）時にはＥＣＣ処理を行わないようにしている。
【００８５】
フラッシュメモリへの書き込み動作にはフェイルを伴うことがある。そこで、ページコピーフローをサブシーケンスとして呼び出す形で処理したページコピーのフェイル処理について動作の詳細を説明する。
【００８６】
まず、本来目的とするページコピーを開始する。ここでは、コピー元のブロックアドレス（ＢＬＫ０）と、コピーしたいページの範囲（ＰＡＧＥ０〜ＰＡＧＥ７とする）を指定する。コピー先ブロックは、消去済みのデータが全て“１”のブロックでなければならず、消去済みのブロックのグループをＳＰＡＲＥ（ｉ）で表す。
【００８７】
アドレスの決定後（ステップＳ１）、ページコピーを開始し（ステップＳ２）、ページコピーの動作完了を待つ（ステップＳ３）。この時には、上記第１の実施形態で説明したページコピー動作を行う。ページコピー動作が完了すると、コピー動作のパス／フェイルをチェックする（ステップＳ４）。パスであれば所望のページコピーは全ページ正常に書き込み完了しておりページコピー正常終了である。
【００８８】
これに対し、ページコピーがフェイルで終了したということは、どこかのページの書き込み動作がフェイルしたということである。そこで、ページコピーシーケンスでは、フェイルの際にパス／フェイルのステータスと一緒に書き込みフェイルしたページアドレスを情報として返すようにする。この情報を図１３ではＦＡＩＬ＿ＰＡＧＥと表記している。
【００８９】
ページコピーがフェイルした場合は、新たなコピー先ブロックＳＰＡＲＥ（ｉ＋１）を指定して再度ページコピーを行う。最も単純には、コピー元ブロックはそのままＢＬＫ０で、コピー先ブロックを新しい消去ブロックにすれば良い。しかし、本実施形態では、ステップＳ３のページコピーでコピー先としたブロックから新たなコピー先ブロックにＦＡＩＬ＿ＰＡＧＥ−１までをコピーし（ステップＳ５〜ステップＳ９）、その後、ＦＡＩＬ＿ＰＡＧＥ以降をオリジナルのコピー元ブロックＢＬＫ０からコピー（ステップＳ１０〜ステップＳ１３→ステップＳ４）するようにしている。
【００９０】
ここで、ステップＳ６のページコピーではＥＣＣ計算をスキップするようにしても構わない。なぜなら、ＰＡＧＥ０からＦＡＩＬ＿ＰＡＧＥ−１まではステップＳ３のページコピーでエラー訂正と書き込みが正常に終了しており、また書き込みしたばかりなのでディスターブによるデータ変異もない可能性が高いからである。
【００９１】
ＦＡＩＬ＿ＰＡＧＥ以降は、オリジナルのコピー元ブロックＢＬＫ０から通常通り読み出し→エラー計算、訂正→書き込みを行う。
【００９２】
なお、上記図１３に示したフローチャートでは、前述した第１の実施形態で説明した図８のフローチャートをベースにしたページコピーフェイル時の処理シーケンスを例に取って説明したが、第２の実施形態や第３の実施形態の場合も同様の処理が可能である。
【００９３】
上記のような構成並びに方法によれば、第１乃至第３の実施形態と同様に、データの信頼性を確保しつつ、複数ページのコピー処理時間を短縮できる記憶システム及びそのデータコピー方法が得られる。
【００９４】
しかも、フェイルリカバーのページコピー読み出し時にはＥＣＣ処理を行わないので、複数ページのコピー処理時間をより短縮できる。
【００９５】
また、ページコピーコマンド、コピー元のブロックアドレス、コピー開始ページアドレス、及びコピー先のブロックアドレスを外部から入力することにより、コピーシーケンスを外部からコントロールするようにしても良い。
【００９６】
［第５の実施形態］
図１４は、この発明の第５の実施形態に係る記憶システム及びそのデータコピー方法について説明するためのもので、ＮＡＮＤ型フラッシュメモリの概略構成を示すブロック図である。
【００９７】
この図１４に示す回路では、メモリセルアレイ１を挟んで、ビット線スイッチ４−１，４−２、第１，第２のページバッファ２，３、及びカラムスイッチ５−１，５−２が配置されている。上記カラムスイッチ５−１，５−２はそれぞれ、Ｉ／Ｏバス１３に接続されている。上記ページバッファ２とページバッファ３の両方がセンスアンプとしての機能を備えている。「センスアンプ＋バッファ」として働くページバッファ２，３は、ビット線スイッチ４−１，４−２を介してメモリセルアレイ１のビット線ＢＬに接続され、カラムスイッチ５−１，５−２を介してＩ／Ｏバス１３にそれぞれ接続されている。
【００９８】
ページバッファコントロール回路７とＣＳＬデコーダ６により、ビット線スイッチ４−１，４−２、第１，第２のページバッファ２，３、及びカラムスイッチ５−１，５−２を制御し、一方のページバッファがビット線ＢＬとつながっているときに他方のページバッファがＩ／Ｏバス１３とつながるように制御することで、図９に示したようなパイプライン動作を実現することが可能である。
【００９９】
なお、他の基本的な回路は上記図１に示した回路と同様であるので、同一部分に同じ符号を付してその詳細な説明は省略する。
【０１００】
図１５は、上記図１４に示したＮＡＮＤ型フラッシュメモリにおけるページコピーの方法を示すフローチャートである。本第５の実施形態は、前述した第１の実施形態のようにページバッファ２，３間でデータを交換するのではなく、両ページバッファ２，３とビット線ＢＬ及びＩ／Ｏバス１３との接続関係を反転させることで図５及び図６に示した回路と同様な動作をさせるようにしている。
【０１０１】
すなわち、コピーシーケンスを開始すると、まずアドレス変数を決定する。読み出し、書き込み時のそれぞれのアドレスとなるＰＡＧＥ＿ＲＤ、ＰＡＧＥ＿ＷＲ、及びアドレスカウントアップ変数ｐａｇｅ（ｐａｇｅ＝Ｓ＿ＰＡ）をそれぞれステップＳ１のように初期設定する。これによって、コピー開始ページアドレスＳ＿ＰＡで指定されるコピー先頭アドレスを読み出し対象に設定する。
【０１０２】
次に、ページバッファ２をビット線スイッチ４−１によりメモリセルアレイ１のビット線ＢＬに接続するとともに、ページバッファ３をカラムスイッチ５−２によりＩ／Ｏバス１３に接続する（ステップＳ５００）。
【０１０３】
その後、読み出し動作を行う（ステップＳ２）。ステップＳ１で設定した読み出し用ページアドレスＰＡＧＥ＿ＲＤをメモリセルアレイ１へのアクセスアドレスＦｌａｓｈ＿ＰＡＧＥとして読み出しコマンドあるいはトリガを与えて読み出し動作を開始する。これによって、メモリセルアレイ１からページバッファ２にＰＡＧＥ＿ＲＤのデータが読み出されて保持される。この際、ページバッファ３にはＩ／Ｏバス１３からカラムスイッチ５−２を介して意味のないデータが入力されて保持される。読み出し動作が完了すると（ステップＳ３）、ページバッファ２をカラムスイッチ５−１によりＩ／Ｏバス１３に接続するとともに、ページバッファ３をビット線スイッチ４−２によりメモリセルアレイ１のビット線に接続する（ステップＳ５０１）。
【０１０４】
次に、ステップＳ５０１でページバッファ２に読み出したデータに対してＥＣＣ計算を開始する（ステップＳ５）。まず、ページバッファ２に保持されたデータをＩ／Ｏバス１３経由（バス幅が８ビットなら１バイトごと）でＥＣＣ回路１１にシーケンシャルに送る。ＥＣＣ回路１１はデータにエラーがあるか否か検査し、エラーがあればその訂正を行う。そして、訂正すべきデータがあればそこだけ（あるいは全体）をページバッファ２に書き戻す。
【０１０５】
ステップＳ５でＥＣＣ計算を開始すると、次にアクセスするアドレスを計算する（ステップＳ６）。書き込みのブロックアドレスはコピー先ブロックＤ＿ＢＡ、ページアドレスはステップＳ１で指定したＰＡＧＥ＿ＲＤと同じである。そして、次の読み出しアドレスはステップＳ１のＰＡＧＥ＿ＲＤに１を加えたアドレスとなる。これらの計算は変数ｐａｇｅを使うとステップＳ６の計算式で表記できる。
【０１０６】
ＥＣＣ計算が終了すると（ステップＳ７）、該当ページがページコピーの最終か否かを判断する（ステップＳ９）。当該フローチャートではメモリレディを待ち（ステップＳ７）、ステータスチェック（ステップＳ８）をしているが、最初のシーケンスでは書き込みがないのでこれらのステップはパスする。これらはパイプライン動作のためのものである。ここでは、読み出し動作が完了するステップＳ３の後の処理のためにメモリは既にレディ状態であり、ステップＳ７ではＥＣＣ計算の終了のみをチェックしてスルーする。また、ステータスのデフォルト値はパス状態のためステップＳ８のシーケンスはパスのフローを通過する。
【０１０７】
ステップＳ９で終了ページであること、つまりもう読み出すページが存在しないことが確認されると、ＥＣＣ計算が完了したデータをページバッファ２からメモリセルへと書き込んで終了するＹｅｓ側のフローに移動する。そうでない場合はＮｏ側、つまりステップＳ１０に移動する。
【０１０８】
ステップＳ１０では、次のページの読み出しを開始する。ステップＳ１０の読み出しが終了すると（ステップＳ１１）、ページバッファ２にはＥＣＣ計算が完了してコピー先に書き込みたいデータが、ページバッファ３には次のページデータであってＥＣＣ計算がまだされていないデータが保持されていることになる。そこで、ページバッファ３をカラムスイッチ５−２によりＩ／Ｏバス１３に接続するとともに、ページバッファ２をビット線スイッチ４−１によりメモリセルアレイ１のビット線に接続することにより（ステップＳ５０２）、このページバッファ２からＥＣＣ計算の終わったデータをメモリセルアレイ１のコピー先ブロックに対して書き込み開始するとともに（ステップＳ１３）、ステップＳ５に戻ってページバッファ３に読み出した次のページデータのＥＣＣ計算を開始する。つまり、書き込みとＥＣＣ計算を同時に実行する。
【０１０９】
書き込みとＥＣＣ計算を実行している間に、さらに次にアクセスすべきページアドレスを計算して（ステップＳ６）、書き込みとＥＣＣ計算の完了を待つ（ステップＳ７）。フラッシュメモリへの書き込みはベリファイ動作を伴い、終了時に正常に書き込めたか否かのステータスを返す。書き込みのステータスを確認し、フェイルならばページコピー異常終了、パスならば次のシーケンスに進む（ステップＳ８）。
【０１１０】
書き込みがパスした後、まだコピー元に読み出すべきページがあればステップＳ１０に進み、同じ動作を繰り返す。なければステップＳ９の時点でページバッファ２にはコピー先のフラッシュメモリに既に書き込みが終了して無意味なデータが保持されており、ページバッファ３にはＥＣＣ計算が完了した最後のページデータが保持されている。そこで、ステップＳ５０３でページバッファ２をカラムスイッチ５−１によりＩ／Ｏバス１３に接続するとともに、ページバッファ３をビット線スイッチ４−２によりメモリセルアレイ１のビット線に接続し、ステップＳ１５〜Ｓ１７で書き込み、ステータスチェックを行い、書き込みがフェイルならば異常終了、パスすれば正常終了として完了する。
【０１１１】
上記のような構成並びに方法によれば、ページデータを２ページ分保持することが可能なキャッシュメモリを用意し、一方がメモリセルをアクセスしている際に、同時に他方がエラー訂正回路のアクセスを行うようにしたので、例えばあるページの書き込みを行っている際に、同時に次のコピーデータのエラー訂正動作を行うことが可能となる。よって、複数ページのコピー処理時間を大幅に短縮できる。
【０１１２】
従って、データの信頼性を確保しつつ、複数ページのコピー処理時間を短縮できる記憶システム及びそのデータコピー方法が得られる。
【０１１３】
なお、図１４に示した回路では、メモリセルアレイ１を挟むように、ビット線スイッチ４−１，４−２、第１，第２のページバッファ２，３、及びカラムスイッチ５−１，５−２を配置したが、パターンレイアウト上の問題がなければ、図１６に示すようにビット線スイッチ４、第１，第２のページバッファ２，３、及びカラムスイッチ５をメモリセルアレイ１の一方側に配置しても良い。
【０１１４】
このようなパターンレイアウトであっても、ビット線スイッチ４とカラムスイッチ５を切替制御して、ページバッファ２，３とメモリセルアレイ１のビット線との接続関係、及びページバッファ２，３とＩ／Ｏバス１３との接続関係を選択的に切り替えることにより図１５に示したページコピーと実質的に同様な動作が可能である。
【０１１５】
［第６の実施形態］
図１７は、この発明の第６の実施形態に係る記憶システム及びそのデータコピー方法について説明するためのもので、ＮＡＮＤ型フラッシュメモリにおけるページコピーの方法を示すフローチャートである。本第６の実施形態は、パイプライン処理の有無を切り替え可能にしたものである。
【０１１６】
ページバッファが２つある構成は、外部からデータを入力する連続した書き込み動作においてもパイプラインが可能である。つまり、ページバッファ２に書き込みデータを保持し、メモリセルに書き込み動作を行っている最中に、同時にページバッファ３に次のページの書き込みデータを入力することにより、書き込み時間を短縮することが可能である。
【０１１７】
このような連続した書き込み動作の過程で書き込みがフェイルした場合、ページバッファ３に保持されたデータはまだメモリセルに書き込まれていない。このようにページバッファ３にデータを保持したままページコピーを行おうとすると第１の実施形態のようなページコピーはできないので、従来例と同じページコピーをする必要がある。このため、パイプライン処理の有無の切り替えが必要になる。
【０１１８】
図１７は、パイプラインのＥＮＡＢＬＥ／ＤＩＳＡＢＬＥによって従来例と第１の実施形態のページコピーを切り替え可能にした場合のフローチャートを示している。いくつかのリソースを共有することでプログラムサイズあるいはＨ／Ｗコントロールの場合は回路規模を節約することができる。
【０１１９】
すなわち、コピーシーケンスを開始すると、まずアドレス変数を決定する。読み出し、書き込み時のそれぞれのアドレスとなるＰＡＧＥ＿ＲＤ、ＰＡＧＥ＿ＷＲ、及びアドレスカウントアップ変数ｐａｇｅ（ｐａｇｅ＝Ｓ＿ＰＡ）をそれぞれステップＳ１のように初期設定する。これによって、コピー開始ページアドレスＳ＿ＰＡで指定されるコピー先頭アドレスを読み出し対象に設定する。
【０１２０】
次に、読み出し動作を行う（ステップＳ２）。ステップＳ１で設定した読み出し用ページアドレスＰＡＧＥ＿ＲＤをメモリセルアレイ１へのアクセスアドレスＦｌａｓｈ＿ＰＡＧＥとして読み出しコマンドあるいはトリガを与えて読み出し動作を開始する。読み出し動作が完了すると（ステップＳ３）、パイプライン処理をイネーブルにするか否かを判断し（ステップＳ６００）、パイプライン処理を行う場合には両ページバッファ２，３間でデータを交換する（ステップＳ４）。このステップＳ４のデータ交換動作は、例えば図７のタイミングチャートに示したような手順で行われる。ページバッファ２にはステップＳ２からステップＳ３で読み出したＰＡＧＥ＿ＲＤのデータが保存されているが、ページバッファ３にはステップＳ４では意味のないデータが保持されている。
【０１２１】
一方、ステップＳ６００でパイプライン処理を行わないと判断されると、ステップＳ４のデータ交換は行わずにステップＳ５のＥＣＣ処理を行う。
【０１２２】
次に、ステップＳ２で読み出したデータに対してＥＣＣ計算を開始する（ステップＳ５）。まず、ページバッファ３に保持されたデータをＩ／Ｏバス１３経由（バス幅が８ビットなら１バイトごと）でＥＣＣ回路１１にシーケンシャルに送る。ＥＣＣ回路１１はデータにエラーがあるか否か検査し、エラーがあればその訂正を行う。そして、訂正すべきデータがあればそこだけ（あるいは全体）をページバッファ３に書き戻す。
【０１２３】
ステップＳ５でＥＣＣ計算を開始すると、次にアクセスするアドレスを計算する（ステップＳ６）。書き込みのブロックアドレスはコピー先ブロックＤ＿ＢＡ、ページアドレスはステップＳ１で指定したＰＡＧＥ＿ＲＤと同じである。そして、次の読み出しアドレスはステップＳ１のＰＡＧＥ＿ＲＤに１を加えたアドレスとなる。これらの計算は変数ｐａｇｅを使うとステップＳ６の計算式で表記できる。
【０１２４】
ＥＣＣ計算が終了すると（ステップＳ７）、パイプライン処理がイネーブルか否か判断する（ステップＳ６０１）。そして、イネーブルであれば、メモリレディを待ち（ステップＳ６０２）、ステータスチェックを行う（ステップＳ６０３）。ステータスチェックをパスするとコピー終了ページアドレスＥ＿ＰＡか否かが判断される（ステップＳ６０４）。ステータスチェックでフェイルと判断されたときには、ページコピー異常で終了する。当該フローチャートではメモリレディを待ち（ステップＳ６０２）、ステータスチェック（ステップＳ６０３）をしているが、最初のシーケンスでは書き込みがないのでこれらのステップはパスする。これらはパイプライン動作のためのものである。ここでは、読み出し動作が完了するステップＳ３の後の処理のためにメモリは既にレディ状態であり、ステップＳ７ではＥＣＣ計算の終了のみをチェックしてスルーする。また、ステータスのデフォルト値はパス状態のためステップＳ６０３のシーケンスはパスのフローを通過する。
【０１２５】
ステップＳ６０４で終了ページであること、つまりもう読み出すページが存在しないことが確認されると、ＥＣＣ計算が完了したページバッファ３のデータを、ページバッファ３→ページバッファ２→メモリセルへと書き込んで終了するＹｅｓ側のフローに移動する。そうでない場合はＮｏ側、つまりステップＳ１０に移動する。
【０１２６】
ステップＳ１０では、次のページの読み出しを開始する。ステップＳ１０の読み出しが終了すると（ステップＳ１１）、ページバッファ３にはＥＣＣ計算が完了してコピー先に書き込みたいデータが、ページバッファ２にはページバッファ３に保持されたページの次のページデータであってＥＣＣ計算がまだされていないデータが保持されていることになる。次に、パイプライン処理がイネーブルか否か判断し（ステップＳ６０５）、イネーブルであればページバッファ２とページバッファ３のデータを交換して（ステップＳ１２）、ＥＣＣ計算の終わったデータをコピー先ブロックに書き込みを開始するとともに（ステップＳ１３）、次のページのＥＣＣ計算を開始する（ステップＳ５）。つまり、書き込みとＥＣＣ計算を同時に実行する。
【０１２７】
一方、ステップＳ６０５でイネーブルでない、つまり通常の処理であると判断されると、ステップＳ５に戻って次のページのＥＣＣ計算を開始する。
【０１２８】
書き込みとＥＣＣ計算を実行している間に、さらに次にアクセスすべきページアドレスを計算して（ステップＳ６）、書き込みとＥＣＣ計算の完了を待つ（ステップＳ７）。再びパイプライン処理がイネーブルか否か判断し（ステップＳ６０１）、イネーブルであれば書き込みのステータスを確認し（ステップＳ６０１）、フェイルならばページコピー異常終了、パスならば最終ページか否かの判断を行う（ステップＳ６０４）。
【０１２９】
書き込みがパスした後、まだコピー元に読み出すべきページがあればステップＳ１０に進み、同じ動作を繰り返す。なければステップＳ６０４の時点でページバッファ２にはコピー先のフラッシュメモリに既に書き込みが終了して無意味なデータが保持されており、ページバッファ３にはＥＣＣ計算が完了した最後のページデータが保持されている。そこで、ステップＳ１４でページバッファ３中のデータをページバッファ２に移動し、ステップＳ１５〜Ｓ１６，Ｓ６０６で書き込み、ステータスチェックを行う。ステップＳ６０６で書き込みがフェイルならば異常終了、パスすればパイプライン処理がイネーブルか否か判断し（ステップＳ６０７）、イネーブルであれば正常終了として完了する。
【０１３０】
ステップＳ６０７で、パイプライン処理がイネーブルでないと判断されると、コピー終了ページアドレスＥ＿ＰＡか否かを判断し（ステップＳ６０８）、コピー終了ページアドレスであれば正常に終了する。コピー終了ページアドレスでない場合には、ステップＳ１０に戻って上述した動作をコピー終了ページアドレスになるか、異常終了するまで繰り返す。
【０１３１】
上記のような方法によれば、連続した書き込み動作の過程で書き込みがフェイルした場合に、ページバッファ３に保持されたデータがまだメモリセルに書き込みをしていない状態ではページバッファ３にデータを保持したままページコピーはできないが、パイプライン処理を行わないように切り替えることで対応できる。これによって、複数ページのコピー処理時間を効果的に短縮できる。
【０１３２】
従って、データの信頼性を確保しつつ、複数ページのコピー処理時間を短縮できる記憶システム及びそのデータコピー方法が得られる。
【０１３３】
上述したように、この発明の各実施形態に係る記憶システム及びそのデータコピー方法によれば、ＮＡＮＤフラッシュメモリの複数ページのページコピーにおいて、エラー訂正処理を行うことでデータの信頼性を保証し、エラー訂正と読み出し／書き込み処理を同時に実行することでコピー所要時間を大幅に短縮することができる。
【０１３４】
なお、上記各実施形態では、ＮＡＮＤフラッシュメモリの各回路が１チップ中に集積化される場合を例に取って説明したが、例えばＥＣＣ回路１１をチップ外に設け、インターフェース回路１２及びＩ／Ｏバス１３を介してデータの授受を行ってエラー訂正計算を行うようにしても良い。
【０１３５】
また、ＮＡＮＤフラッシュメモリと論理回路を１チップに混載した半導体装置、あるいはＳＯＣ（システムオンチップ）などにも適用できる。
【０１３６】
以上第１乃至第６の実施形態を用いてこの発明の説明を行ったが、この発明は上記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記各実施形態には種々の段階の発明が含まれており、開示される複数の構成要件の適宜な組み合わせにより種々の発明が抽出され得る。例えば各実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題の少なくとも１つが解決でき、発明の効果の欄で述べられている効果の少なくとも１つが得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【０１３７】
【図１】この発明の第１の実施形態に係る記憶システムについて説明するためのもので、ＮＡＮＤ型フラッシュメモリの概略構成を示すブロック図。
【図２】図１に示した回路におけるメモリセルアレイの構成例を示す回路図。
【図３】２値記憶の場合のセルトランジスタのしきい値電圧の分布と記憶データとの関係について説明するための特性図。
【図４】フラッシュメモリの各動作におけるバイアス例を示しており、（ａ）図はデータの読み出し時におけるセルトランジスタへのバイアス電圧の印加関係を示す模式的な断面図、（ｂ）図はデータの書き込み時におけるセルトランジスタへのバイアス電圧の印加関係を示す模式的な断面図、（ｃ）図はデータの消去時におけるセルトランジスタへのバイアス電圧の印加関係を示す模式的な断面図。
【図５】図１に示した回路におけるページバッファのデータ交換機能を実現するための概略構成を示すブロック図。
【図６】図５に示した回路におけるページバッファとその周辺回路の具体的な構成例を示す回路図。
【図７】図６に示した回路の動作を示すタイミングチャート。
【図８】この発明の第１の実施形態に係る記憶システムのデータコピー方法について説明するためのもので、複数ページのコピーシーケンスを示すフローチャート。
【図９】この発明の第１の実施形態に係る記憶システムのデータコピー方法について説明するためのもので、読み出し、アドレス計算、ＥＣＣ計算及び書き込みの４種類のシーケンスを１つのボックスとして同時実行のタイミングを模式的に表したタイミングチャート。
【図１０】この発明の第２の実施形態に係る記憶システム及びそのデータコピー方法について説明するためのもので、ＮＡＮＤ型フラッシュメモリのデータコピー方法を示すフローチャート。
【図１１】この発明の第３の実施形態に係る記憶システムについて説明するためのもので、ＮＡＮＤ型フラッシュメモリの概略構成を示すブロック図。
【図１２】この発明の第３の実施形態に係る記憶システムのデータコピー方法について説明するためのもので、複数ページのコピーシーケンスを示すフローチャート。
【図１３】この発明の第４の実施形態に係る記憶システム及びそのデータコピー方法について説明するためのもので、ＮＡＮＤ型フラッシュメモリのプログラムフェイル時の処理手順を示すフローチャート。
【図１４】この発明の第５の実施形態に係る記憶システムについて説明するためのもので、ＮＡＮＤ型フラッシュメモリの概略構成を示すブロック図。
【図１５】この発明の第５の実施形態に係る記憶システムのデータコピー方法について説明するためのもので、複数ページのコピーシーケンスを示すフローチャート。
【図１６】この発明の第５の実施形態に係る記憶システムの変形例について説明するためのもので、ＮＡＮＤ型フラッシュメモリの概略構成を示すブロック図。
【図１７】この発明の第６の実施形態に係る記憶システム及びそのデータコピー方法について説明するためのもので、複数ページのコピーシーケンスを示すフローチャート。
【符号の説明】
【０１３８】
１…メモリセルアレイ、２…ページバッファ（第１のデータバッファ）、３…ページバッファ（第２のデータバッファ）、４，４−１，４−２…ビット線スイッチ、５，５−１，５−２…カラムスイッチ（バススイッチ）、６…ＣＳＬデコーダ、７…ページバッファコントロール回路、８Ａ…ブロックデコーダ、８Ｂ…ロウデコーダ、９…電源回路、１０…内部制御回路、１１…エラー訂正回路（ＥＣＣ回路）、１２…インターフェース回路、１３…Ｉ／Ｏバス（バス）、１４…ページバッファ（第３のデータバッファ）。
【図１】
2006073141.tif 000003
【図２】
2006073141.tif 000004
【図３】
2006073141.tif 000005
【図４】
2006073141.tif 000006
【図５】
2006073141.tif 000007
【図６】
2006073141.tif 000008
【図７】
2006073141.tif 000009
【図８】
2006073141.tif 000010
【図９】
2006073141.tif 000011
【図１０】
2006073141.tif 000012
【図１１】
2006073141.tif 000013
【図１２】
2006073141.tif 000014
【図１３】
2006073141.tif 000015
【図１４】
2006073141.tif 000016
【図１５】
2006073141.tif 000017
【図１６】
2006073141.tif 000018
【図１７】
2006073141.tif 000019