(57)【要約】【課題】  面積の小さな半導体記憶装置を提供する。【解決手段】  半導体記憶装置は、ラッチ回路を含んだバッファ13を含んでいる。所定数のラッチ回路からラッチ回路群が複数構成され、各ラッチ回路群において各ラッチ回路はそれぞれが転送回路を介して共通線に共通に接続されている。エラー訂正部3は、共通線と接続され、供給されたデータに含まれるエラービットの検出および訂正を行なう。データ転送制御部22は、ベリファイの対象のメモリセルからデータをバッファに読み出させ、所定数のラッチ回路群にわたって順次各ラッチ回路群中のラッチ回路が保持するデータの全てを対応する共通線に部分ベリファイデータとして読み出す。ベリファイ制御部21は、エラー訂正部に所定数のラッチ回路群の各々からの部分ベリファイデータの集合からなるベリファイデータに対してエラー検出を行なわせてベリファイデータ中のフェイルビットの有無を判定する。【選択図】      図３
2012069180.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルを含んだメモリセルアレイおよび前記メモリセルにおいてデータの書き込みおよび消去を行なうように構成されたメモリ部と、
複数の前記メモリセルからのデータを保持する複数のラッチ回路を含み、前記複数のラッチ回路のうちの所定の複数のラッチ回路からラッチ回路群が複数構成され、各々の前記ラッチ回路群において各々の前記ラッチ回路はそれぞれが転送回路を介して共通線に共通に接続されているバッファと、
前記共通線と接続され、供給されたデータに含まれるエラービットの検出および訂正を行なうエラー訂正部と、
ベリファイ時にベリファイの対象の複数の前記メモリセルからデータを前記バッファに読み出させ、所定数の前記ラッチ回路群にわたって順次各前記ラッチ回路群中の複数の前記ラッチ回路が保持するデータの全てを対応する前記共通線に部分ベリファイデータとして読み出し、前記部分ベリファイデータを前記エラー訂正部に転送させるデータ転送制御部と、
前記エラー訂正部に、所定数の前記ラッチ回路群の各々から読み出された前記部分ベリファイデータの集合からなるベリファイデータに対してエラー検出を行なわせて、前記ベリファイデータ中のフェイルビットの有無を判定するベリファイ制御部と、
を具備することを特徴とする半導体記憶装置。
【請求項２】
前記ベリファイ制御部が、前記ベリファイデータがフェイルビットを含む際にベリファイ対象の複数の前記メモリセルへのデータの再書き込みを前記メモリ部に命じ、前記データの再書き込みと前記フェイルビット有無の判定を前記再書き込みが所定の上限回数行なわれるまで繰り返し、
前記再書き込みが前記上限回数行なわれた後の前記フェイルビット有無の判定の結果がフェイルビット有りの場合、前記データ転送制御部がフェイルビットを含んだ前記部分ベリファイデータを保持するラッチ回路群中の各ラッチ回路が保持するデータを順次前記エラー訂正回路に転送させ、前記ベリファイ制御部が前記順次転送されたデータ中のフェイルビットの個数を閾値と比較する、
ことを特徴とする請求項１の半導体記憶装置。
【請求項３】
前記ベリファイ制御部が、前記ベリファイデータが前記エラー訂正部に転送され終わる度に前記ベリファイデータに対して前記フェイルビットの有無を判定し、
前記ベリファイ制御部が、フェイルビットを含んだ前記部分ベリファイデータを保持するラッチ回路群を特定し、
前記データ転送制御部が、前記特定されたラッチ回路群中の各ラッチ回路が保持するデータを順次前記エラー訂正回路に転送させ、
前記ベリファイ制御部が、前記順次転送されたデータ中のフェイルビットの個数を閾値と比較する、
ことを特徴とする請求項１の半導体記憶装置。
【請求項４】
前記ベリファイ制御部が、前記フェイルビット有無の判定の結果がフェイルビット有りの場合、フェイルビットを含んだ部分ベリファイデータを保持するラッチ回路群の個数を閾値と比較する、
ことを特徴とする請求項１の半導体記憶装置。
【請求項５】
前記ベリファイ制御部が、
前記ベリファイデータが前記エラー訂正部に転送され終わる度に前記ベリファイデータに対して前記フェイルビットの有無を判定し、
前記フェイルビット有無の判定の結果がフェイルビット有りの場合、フェイルビットを含んだ前記部分ベリファイデータを保持するラッチ回路群の個数を閾値と比較する、
ことを特徴とする請求項１の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は半導体記憶装置に関する。
【背景技術】
【０００２】
半導体記憶装置の一例としてＮＡＮＤ型フラッシュメモリが知られている。ＮＡＮＤ型フラッシュメモリは、各メモリセルトランジスタの閾値の違いを利用してデータを保持する。ＮＡＮＤ型フラッシュメモリでは、複数のメモリセルからなるページと呼ばれる単位でデータが書き込まれ、複数の連続するページからなるブロック単位でデータが消去される。
【０００３】
フラッシュメモリでは、データの書き込み（プログラム）および消去後に検証動作（ベリファイ）が行なわれる。ベリファイは、データ書き込み対象のメモリセルにデータが正しく書き込まれたか、また、消去対象のブロック中のデータが正しく消去されたかを確認するための動作である。具体的には、ベリファイ対象のメモリセルトランジスタが目標の閾値を超えていれば、このメモリセルから閾値を超えていることに応じたデータ（例えば“１”データ）がページバッファに読み出される。一方、ベリファイ対象のメモリセルが目標の閾値を超えていなければ“０”データがページバッファに読み出される。そこで、ベリファイ対象のメモリセルからページバッファに読み出されたデータ（以下、ベリファイデータと称する）が全ビットにおいて“１”データを有しているかが判定され、全ビットが“１”データであればベリファイはパスと判定される。ベリファイがフェイルと判定された場合は、書き込み対象のページまたは消去対象のブロックに対して再書き込みまたは再消去が行われる。
【０００４】
上述の例では、書き込みの場合であれば１ページ内に、消去の場合であれば１ブロック内に、１ビットでも期待値でないビット（フェイルと判定されたビット）があればベリファイフェイルと判断される（以下、一括検知と称する）。したがって、例えばページバッファ中の全データのＯＲ（論理積）を取ることを通じた判定でベリファイが可能であり、実施のための構成はシンプルである。
【０００５】
フラッシュメモリにはまた、フラッシュメモリチップの外部に、またはオンチップでエラー訂正回路（ＥＣＣ）が設けられることがある。ＥＣＣは、フラッシュメモリの微細化による信頼性の低下を補うこと等を目的に設けられる。しかしながら、フェイルビットをＥＣＣにより救済するという用途も可能である。そこで、ＥＣＣによって救済できるビット数に基づいて決定された例えば３ビットのフェイルビットの存在時はベリファイパスと判断することが実際のデバイスやＤ／Ｓ時に一般的に行われている。このような判定は、例えば擬似パス（pseudo pass）などと称され、製品の歩留まりを向上させることができる。
【０００６】
擬似パスであるか否かを判定するためには、ベリファイデータに含まれるフェイルビットの個数を計数する必要がある。この計数のためには専用の検知回路が必要であり、ベリファイに要する回路の面積が増大する一因になっている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開2000−48783号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
面積の小さな半導体記憶装置を提供しようとするものである。
【課題を解決するための手段】
【０００９】
実施形態の一態様による半導体記憶装置は、半導体記憶装置は、複数のメモリセルを含んだメモリセルアレイおよび前記メモリセルにおいてデータの書き込みおよび消去を行なうように構成されたメモリ部を含む。バッファは、複数の前記メモリセルからのデータを保持する複数のラッチ回路を含み、前記複数のラッチ回路のうちの所定の複数のラッチ回路からラッチ回路群が複数構成され、各々の前記ラッチ回路群において各々の前記ラッチ回路はそれぞれが転送回路を介して共通線に共通に接続されている。エラー訂正部は、前記共通線と接続され、供給されたデータに含まれるエラービットの検出および訂正を行なう。データ転送制御部は、ベリファイ時にベリファイの対象の複数の前記メモリセルからデータを前記バッファに読み出させ、所定数の前記ラッチ回路群にわたって順次各前記ラッチ回路群中の複数の前記ラッチ回路が保持するデータの全てを対応する前記共通線に部分ベリファイデータとして読み出し、前記部分ベリファイデータを前記エラー訂正部に転送させる。ベリファイ制御部は、前記エラー訂正部に、所定数の前記ラッチ回路群の各々から読み出された前記部分ベリファイデータの集合からなるベリファイデータに対してエラー検出を行なわせて、前記ベリファイデータ中のフェイルビットの有無を判定する。
【図面の簡単な説明】
【００１０】
【図１】参考例のページバッファおよび検知回路、ならびに一括検知を示す図。
【図２】参考例のページバッファおよび検知回路、ならびにフェイルビットカウントを示す図。
【図３】第１実施形態に係る半導体記憶装置を概略的に示すブロック図。
【図４】ブロックの具体例の回路図。
【図５】ブロックの具体例の断面図。
【図６】第１実施形態に係る半導体記憶装置のページバッファの回路構成を概略的に示す図。
【図７】第１実施形態に係る半導体記憶装置によるベリファイを概略的に示すフローチャート。
【図８】第２実施形態に係る半導体記憶装置によるベリファイを概略的に示すフローチャート。
【図９】第３実施形態に係る半導体記憶装置によるベリファイおよび再書き込みを概略的に示すフローチャート。
【図１０】第４実施形態に係る半導体記憶装置によるベリファイを概略的に示すフローチャート。
【図１１】第５実施形態に係る半導体記憶装置によるベリファイを概略的に示すフローチャート。
【図１２】第６実施形態に係る半導体記憶装置によるベリファイを概略的に示すフローチャート。
【発明を実施するための形態】
【００１１】
本発明者等は、実施形態の開発の過程において、以下に述べるような知見を得た。
【００１２】
（参考例）
図１は、ページバッファおよび検知回路、ならびに一括検知を概略的に示している。図１に示されているように、ページバッファＰＢは、複数のラッチ回路ＬＣを有している。ラッチ回路ＬＣは、フリップフロップ回路からなっており、それぞれが特定の行および特定の列に属している。カラム０に属する全てのラッチ回路ＬＣの各々の一端は、Ｎ型のＭＯＳＦＥＴ（metal oxide semiconductor field effect transistor）Ｔ１のゲートと接続されている。各トランジスタＴ１の一端は、線ＣＯＭ０と接続され、他端はトランジスタＴ２を介して接地されている。同様に、カラムｘ（ｘは自然数）に属する全てのラッチ回路ＬＣの各々の一端は、トランジスタＴ１のゲートと接続され、トランジスタＴ１は電流経路の一端において線ＣＯＭｘと接続され、他端においてトランジスタＴ２を介して接地されている。
【００１３】
各カラムは、８つのラッチ回路ＬＣを含んでいる。ロウ０に属する各トランジスタＴ２のゲートには、信号ＡＤＤ０が供給される。同様に、ロウ０〜７の各々に属する各トランジスタＴ２のゲートには、信号ＡＤＤ０〜７がそれぞれ供給される。
【００１４】
検知回路ＤＣにおいて、線ＣＯＭ０は、Ｐ型のＭＯＳＦＥＴ  Ｔ３を介して電源と接続され、またノア回路ＮＯＲの第１入力と接続されている。ノア回路ＯＲの第２入力にはローレベルの信号が供給されている。ノア回路ＮＯＲの出力は、Ｎ型のＭＯＳＦＥＴ  Ｔ４のゲートと接続されている。トランジスタＴ４は、電流経路の一端において線ＬＳＥＮと接続され、他端においてＮ型のＭＯＳＦＥＴ  Ｔ５を介して接地されている。
【００１５】
同様に、線ＣＯＭｘは、カラム０用のトランジスタＴ３、Ｔ４、Ｔ５、ノア回路ＮＯＲと同様に接続された対応するカラムｘ用のトランジスタＴ３、Ｔ４、Ｔ５、ノア回路ＮＯＲの組と接続されている。各カラムにおいて、トランジスタＴ４の他端は、線ＬＳＥＮに共通に接続されている。
【００１６】
線ＬＳＥＮは、ナンド回路ＮＤを介してＮ型のＭＯＳＦＥＴ  Ｔ６のゲートと接続されている。トランジスタＴ６の電流経路の一端は電位ＶＲとして検出され、他端は接地されている。線ＬＳＥＮはまた、演算増幅器ＯＰの非反転入力と接続されている。演算増幅器ＯＰの反転入力は、直列接続された所定数のＮ型のＭＯＳＦＥＴ  Ｔ７と接続されている。演算増幅器ＯＰの出力は電位ＨＲとして検出される。
【００１７】
一括検知の際、まず、ベリファイデータがページバッファＰＢの各ラッチ回路ＬＣのノードＮ１にラッチされる。メモリセルが目的の閾値となっている場合は、ベリファイデータは“Ｈ”レベルを有しており、なっていない場合は、ベリファイデータは“Ｌ”レベルを有している。図１の例では、カラム１かつロウ０のラッチ回路ＬＣが“Ｌ”レベルのベリファイデータを保持している。このため、このラッチ回路ＬＣと接続されているトランジスタＴ１はオンしている。
【００１８】
次に、線ＣＯＭｘの全ておよび線ＬＳＥＮがハイレベルにプリチャージされ、次いで信号ＡＤＤ０〜ＡＤＤ７がハイレベルとされる。すると、線ＣＯＭ１の電位は、フェイルのベリファイデータを保持しているラッチ回路ＬＣと接続されているトランジスタＴ１およびトランジスタＴ２を介して電流Ｉが流れることによって低下する。一方、パスのベリファイデータを保持しているラッチ回路ＬＣと接続されている線ＣＯＭｘは“Ｈ”レベルを維持する。
【００１９】
線ＣＯＭ１の電位が低下したことにより、線ＣＯＭ１と接続されたノア回路ＮＯＲの出力がハイレベルとなる。すると、カラム１のトランジスタＴ４、Ｔ５を介して電流ＸＵＡが流れることによって線ＬＳＥＮの電位が低下する。この電位の低下により、電位ＶＲが“Ｌ”レベルとなって、一括検知がフェイルと判定される。一方、いずれのベリファイデータも“Ｈ”レベルであるなら、信号ＡＤＤ０〜ＡＤＤ７がハイレベルとされた際に線ＣＯＭｘのいずれの電位も低下しない。このため、線ＬＳＥＮの電位も低下せず、電位ＶＲは“Ｈ”レベルを維持する。電位ＶＲが“Ｈ”レベルを維持することが検出されることによって、一括検知がパスと判定される。
【００２０】
次に、図２を参照して、フェイルビットカウント動作を説明する。図２の回路の構成は図１と同じである。
【００２１】
まず、図１と同様に、各ラッチ回路ＬＣにベリファイデータが読み出され、線ＣＯＭｘの全ておよび線ＬＳＥＮが“Ｈ”レベルにプリチャージされる。次に、信号ＡＤＤ０が“Ｈ”レベルとされる。すると、パスのベリファイデータを保持するラッチ回路ＬＣのカラムに対応する線ＣＯＭｘは“Ｈ”レベルを維持する。一方、フェイルのベリファイデータを保持するラッチ回路ＬＣのカラム（例えばカラム１、２）の線ＣＯＭ１、ＣＯＭ２の電位は低下する。
【００２２】
線ＬＳＥＮは、ロウ０の全ベリファイデータがフェイルビットを１つも有していなければＨレベルを保持し、１つでも有していれば、その電位が低下する。この低下量は、ロウ０の全ベリファイデータ中のフェイルビットの個数に応じた大きさの電位分と等しい。したがって、線ＬＳＥＮの電位変化に応じて、ある規定したフェイルビット数（トランジスタＴ７の個数に応じて定まる）以下であれば、電位ＨＲは“Ｈ”レベルを維持し、フェイルビット数が規定数を超えていれば、電位ＨＲは“Ｌ”レベルとなる。この結果が論理回路（図示せず）によって処理される。
【００２３】
続いて、信号ＡＤＤ０の次の信号ＡＤＤ１が選択され、ロウ０についての上記の処理と同じ処理がロウ１について繰り返される。同様に、ロウ２〜ロウ７についても同じ処理が行なわれ、それまでのフェイルビット数が累積される。この累積されたフェイルビット数は、ページと同サイズのベリファイデータ中のフェイルビット数に等しい。このフェイルビット数が閾値（クライテリア）を超えていれば、フェイルビットカウントはフェイルと判定され、超えていなければパスと判定される。
【００２４】
以上の、ベリファイに必要な検知回路の存在が、ＮＡＮＤ型フラッシュメモリのチップ面積を増大させる原因となっている。
【００２５】
以下に、このような知見に基づいて構成された実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００２６】
以下に実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、構成部品の材質、形状、構造、配置等を下記のものに特定するものでない。実施形態の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【００２７】
また、各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から以下に説明する。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も実施形態の範疇に含まれる。また、特定の機能ブロックが、別の機能ブロック中に含まれていたり、別の機能ブロックによって実行されることもあり得る。
【００２８】
（第１実施形態）
図３は、第１実施形態に係る半導体記憶装置を概略的に示すブロック図である。図３に示されているように、半導体記憶装置は、メモリ部１、コントローラ２、ＥＣＣ処理部３を含んでいる。
【００２９】
メモリ部１は、メモリセルアレイ１１、ページバッファ１２、メモリコントローラ１３を含んでいる。メモリ部１は、例えばＮＡＮＤ型フラッシュメモリであり、任意のページにページ単位でデータの書き込みおよび読み出しを行い、任意のブロックのデータをブロック単位で消去できるように構成されている。メモリセルアレイ１１は、複数のブロックＢｌｏｃｋを含んでいる。各ブロックＢｌｏｃｋは、複数のメモリセル、ワード線、ビット線等を含んでいる。ブロックは、複数のメモリセルからなる複数のページからなる。各ブロック中のメモリセルトランジスタは、一括して消去される。
【００３０】
メモリ部１の各種の動作はメモリコントローラ１３により制御される。メモリコントローラ１３は、各種の動作を行なうのに必要な機能を備えており、例えばビット線制御回路、ワード線制御回路、電圧発生回路等を含んでいる。例えば、メモリコントローラ１３は、データ入出力端子において、メモリ部１の動作を制御する各種コマンドおよびアドレスを受け取り、またデータを受け取ったり出力したりする。メモリコントローラ１３が書き込みコマンド、アドレス信号、および書き込みデータを受け取ると、書き込みデータをメモリセルアレイ１１に供給する。さらに、メモリコントローラ１３はアドレス信号により特定されるワード線に書き込みに必要な電圧を印加する。また、メモリコントローラ１３１は、読み出しコマンドおよびアドレス信号を受け取ると、アドレス信号により特定されるビット線およびその他の制御線に所定の電位を与えてメモリセルからデータを読み出す。読み出されたデータは、ページバッファ１２に読み出され、次いでメモリコントローラ１３の制御に従ってセンスアンプ等により増幅され、メモリ部１の外部に出力される。さらに、メモリコントローラ１３は、消去コマンドおよびアドレス信号を受け取ると、アドレス信号により特定されるワード線およびその他の所定の位置に所定の電位を与えてメモリセル中のデータを消去する。
【００３１】
図４はブロックＢｌｏｃｋの具体例の回路図であり、図５はブロックＢｌｏｃｋの具体例の断面図である。図４および図５に示されているように、１つのブロックＢｌｏｃｋは、複数のメモリセル列ＭＵを含んでいる。メモリセル列ＭＵは、ＮＡＮＤストリングと、選択トランジスタＳＴ１、ＳＴ２から構成される。ＮＡＮＤストリングは、直列接続された複数個のメモリセルトランジスタＭＴからなる。選択ランジスタＳＴ１、ＳＴ２は、ＮＡＮＤストリングの両端にそれぞれ接続される。選択トランジスタＳＴ２の電流経路の他端はビット線ＢＬに接続され、選択トランジスタＳＴ１の電流経路の他端はソース線ＳＬに接続されている。
【００３２】
ワード線ＷＬ０乃至ＷＬ６３は、同じ行に属する複数のメモリセルトランジスタＭＴに接続される。セレクトゲート線ＳＧＤは、ブロック内の全選択トランジスタＳＴ２に接続されている。セレクトゲート線ＳＧＳは、ＷＬ方向に沿って延び、ブロック内の全選択トランジスタＳＴ１と接続されている。同じワード線ＷＬと接続されている複数のメモリセルトランジスタＭＴは、１つのページを構成する。ページごとに読み出し動作、書き込み動作が行われる。なお、１つのメモリセルが複数ビットのデータを保持可能な多値メモリセルの場合、１つのワード線に複数ページが割り当てられる。
【００３３】
メモリセルＭＴは、ビット線ＢＬとワード線ＷＬとの各交点に設けられる。メモリセルＭＴは、半導体基板内に形成されたウェルＷｅｌｌ上に設けられる。ウェルＷｅｌｌは、電圧発生回路と接続されており、電圧発生回路によって所定の電圧を印加される。メモリセルＭＴは、ウェル上に積層されたトンネル絶縁膜（図示せず）、電荷蓄積層としての浮遊電極ＦＧ、ゲート間絶縁膜（図示せず）、制御電極ＣＧ（ワード線ＷＬ）、ソース／ドレイン領域ＳＤを有している。メモリセルＭＴの電流経路であるソース／ドレインは、隣接するメモリセルＭＴのソース／ドレインに直列接続されている。選択トランジスタＳＴ１、ＳＴ２は、半導体基板上に積層されたゲート絶縁膜（図示せず）、ゲート電極ＳＧＳ、ＳＧＤ、ソース／ドレイン領域ＳＤを含んでいる。
【００３４】
ＥＣＣ処理部３は、データの読み出しの際にページバッファ１２からデータを受け取り、データに対してエラー訂正を行なう。ＥＣＣのための符号として、ＢＣＨ符号、ＲＳ符号、ハミング符号などの線形符号が用いられる。これらの符号を用いたエラー訂正では、データに対し、そのデータ部に応じたパリティが符号化の際に生成され、「データ＋パリティ」がＥＣＣのための符号として用いられる。これらの符号の特徴として、データが全て“０”のビットから構成されていると、パリティもまた全て“０”のビットから構成される。つまり、全て“０”のビットから構成されるパリティは正しい符号として成立しており、デコードの際、このようなパリティからＥＣＣの訂正能力範囲内で何ビットかのフェイルビットも正しくデコードされることが可能である。また、ＥＣＣ処理部３はベリファイ時にも動作する。ベリファイ時の動作については後に詳述する。
【００３５】
コントローラ２は、メモリ部１およびＥＣＣ処理部３を制御する。コントローラ２は、ベリファイに関する機能を行なう要素として、ベリファイ制御部２１、データ転送制御部２２、ＥＣＣビジー判断部２３、ＳＥＲＲ検査部２４、ラッチ２５、レジスタ２６を含んでいる。ベリファイ制御部２１は、ベリファイの全体を司り、ベリファイの際にメモリ部１およびＥＣＣ制御部３を制御する。ベリファイ制御部２１は、データ転送制御部２２、ＥＣＣビジー判断部２３、ＳＥＲＲ検査部２４、ラッチ２５、レジスタ２６、と通信し、また、これらを制御してベリファイ実行のための制御を行なう。ベリファイ制御部２１、データ転送制御部２２、ＥＣＣビジー判断部２３、ＳＥＲＲ検査部２４の詳しい動作については、後に詳述する。なお、ラッチ２５、レジスタ２６は後述の実施形態において用いられ、これらの実施形態において説明する。
【００３６】
図６は、第１実施形態に係る半導体記憶装置のページバッファの回路構成を概略的に示している。図６に示されているように、ページバッファ１２は、複数のラッチ回路ＬＣを有しており、１ページ分のデータを保持できるように構成されている。特定の数の特定のラッチ回路ＬＣは特定のグループを構成している。具体例として、特定の複数のラッチ回路ＬＣから１つのカラムが構成され、同様の構成のカラムが複数個設けられている。また、特定の複数のラッチ回路ＬＣから１つのロウが構成され、同様の構成のロウが複数個設けられている。以下では、このような特定のラッチ回路ＬＣがカラムおよびロウを構成しているものとして説明する。しかしながら、各ラッチ回路ＬＣは、論理的に特定のグループを構成していればよく、物理的にも行列状に配置されていることは必須ではない。
【００３７】
各ラッチ回路ＬＣは、同じ構成を有し、フリップフロップ回路からなる。具体的には、ラッチ回路ＬＣは２つのナンド回路を含んでおり、一方のナンド回路の出力および入力が他方のナンド回路の出力および入力とそれぞれ接続されている。２つのナンド回路の各入力の間にはＮ型のＭＯＳＦＥＴが接続されている。一方のナンド回路の入力Ｎ１はラッチ回路ＬＣの入力として、対応するメモリセルと接続されている。
【００３８】
図中の最も左側のカラム０の各ラッチ回路ＬＣの出力ノードＮ２は、Ｎ型のＭＯＳＦＥＴ  Ｔ１のゲートと接続されている。各トランジスタＴ１は、電流経路の一端においてトランジスタＴ２を介して接地され、他端において線ＣＯＭ０に共通に接続されている。同様に、カラムｎ（ｎは自然数）のラッチ回路ＬＣの出力Ｎ２は、カラムｎ用のトランジスタＴ１のゲートと接続されている。各カラムｎにおいて、各トランジスタＴ１は、電流経路の一端においてトランジスタＴ２を介して接地され、他端において線ＣＯＭｎに共通に接続されている。
【００３９】
所定数（例えばｍ）の連続する線ＣＯＭｎごとに同じＩ／Ｏ線と接続されている。Ｉ／Ｏ線については、例えば８本のＩ／Ｏ線Ｉ／Ｏ０〜Ｉ／Ｏ７が設けられている。例えば、カラム０〜カラムｍの線ＣＯＭｎがＩ／Ｏ線０と接続され、カラムｍ＋１〜カラム２ｍの線ＣＯＭｎがＩ／Ｏ線１と接続され、以下、同様である。以下の説明では、各ｍ本のカラムの組ごとに、カラムの番号が割り当てられるものとする。すなわち、各Ｉ／Ｏ線Ｉ／Ｏ０〜Ｉ／Ｏ７と接続される最も小さい番号のカラムがカラム０で、最も大きい番号のカラムがカラムｍである。したがって、カラム０は８本存在し、カラム２も８本存在し、以下、同様である。Ｉ／Ｏ線Ｉ／Ｏ０〜Ｉ／Ｏ７は、ページバッファ１２とＥＣＣ処理部３との間のバスを介してＥＣＣ処理部３と接続されている。以下の説明において、Ｉ／Ｏ線Ｉ／Ｏ０〜Ｉ／Ｏ７を相互に区別せずに引用する際は、包括的にＩ／Ｏ線Ｉ／Ｏと記載する。
【００４０】
ロウ０中の各ラッチ回路ＬＣと接続されているトランジスタＴ１のゲートは、アドレス信号ＡＤＤ０と接続されている。同様に、ロウ１〜ロウ７の各々について、各ロウ１〜ロウ７の各ラッチ回路ＬＣと接続されているトランジスタＴ１のゲートには、アドレス信号ＡＤＤ１〜ＡＤＤ７がそれぞれ供給される。アドレス信号ＡＤＤ０〜ＡＤＤ７は、コントローラ２と接続されている。
【００４１】
次に、図７を参照して、第１実施形態に係る半導体記憶装置のベリファイの動作について説明する。第１実施形態は、ベリファイの一例である一括検知に関する。図７は、第１実施形態に係る半導体記憶装置によるベリファイ（一括検知）を概略的に示すフローチャートである。
【００４２】
上記のように、ＥＣＣ処理部３は、全てが“０”のビットからなるデータも、正しくエラー検出できる。したがって、全てが“１”のビットからなるデータについても、全ビットを反転されたデータをＥＣＣ処理部３に入力すれば、正しくエラー検出できる。一方、ベリファイデータの期待値は全てが“１”のビットからなる。そこで、ベリファイデータの全ビットを反転させてＥＣＣ処理部３に入力することによって、ベリファイデータの検証およびフェイルビットの計数を行なうことができる。
【００４３】
したがって、ベリファイデータが内部データバスを介してＥＣＣ処理部３に順次入力され、ＥＣＣ処理部３においてシンドロームが順次生成され、ＥＣＣの符号長分（通常、セクタとして定義されている）のデータの入力が終了するとシンドロームが確定する。そして、ＥＣＣ処理部３は、デコードを行ない、演算結果に応じてエラー数およびエラーアドレスを出力する。
【００４４】
ベリファイは、エラーの有無のみの判定を目的としており、一括検知は１ページと同サイズのベリファイデータが検知の対象なので、エラーの有無の判定を１ページにわたって実施される必要がある。この処理の実行に必要な時間は、以下のように概算される。例えば、１ページが８セクタで構成され、ページサイズが４ＫＢ（実際は冗長領域も含め４ＫＢ＋１２８Ｂ）で、セクタサイズが５１２Ｂ＋冗長部１６Ｂ＝５２８Ｂである場合を例に取る。一般に、ＥＣＣ回路（ＥＣＣ処理部３を含む）は、セクタ単位でエラー訂正処理を行う。このため、１セクタ分のデータのＥＣＣ回路への転送およびＥＣＣ回路での演算ならびにエラー数判定という一連の処理が８セクタにわたって実行され、８セクタ分のベリファイデータ中のエラーの有無が判定されることによって、ＥＣＣ処理部３を用いた一括検知が可能である。例えばページバッファ１２とＥＣＣ処理部３との間のバスの幅が３２ビットであれば、１セクタ分のデータ（５２８バイト）の転送に１３２サイクル要し、１ページと同サイズ（８セクタ）のデータの転送には１３２×８＝１０５６サイクル必要である。そして、例えば周期２０ｎｓ（周波数５０ＭＨｚ）のクロックでの転送を仮定すると、転送だけで２０μｓ超を要してしまう。一括検知は書き込みベリファイごと、および消去ベリファイごとに行われるので、１回のベリファイが数μｓ程度で完了しなければ、フラッシュメモリの性能劣化が生じてしまう。
【００４５】
そこで本実施形態では、ベリファイデータが、アドレスが多重選択された形、すなわち複数のアドレス分のデータの論理積が内部データバスに読み出される。以下に、具体的な動作について説明する。
【００４６】
まず、ベリファイの開始に際し、ベリファイ制御部２１は、データ転送制御部２２を通じて、メモリ部１に、ベリファイ対象のメモリセルからページバッファ１２へとベリファイデータを読み出させる（ステップＳ１）。ベリファイデータは、各ラッチ回路ＬＣの入力ノードＮ１に保持される。ベリファイデータは、対応するメモリセルがベリファイパスであれば、“Ｈ”レベルを有し、ベリファイをパスしていなければ（ベリファイフェイルであれば）、“Ｌ”レベルを有する。
【００４７】
次に、ベリファイ制御部２１は、Ｉ／Ｏ線Ｉ／Ｏ０〜Ｉ／Ｏ７を“Ｈ”レベルにプリチャージする（ステップＳ２）。次に、ベリファイ制御部２１は、全てのカラム０（本例では計８本）を選択し、次いで全てのアドレス信号ＡＤＤ０〜ＡＤＤ７を選択する（ステップＳ３）。この結果、各カラム０において、ベリファイデータが、ワイヤードＯＲ（wired OR）された形で対応するＩ／Ｏ線Ｉ／Ｏ０〜Ｉ／Ｏ７に出力される（ステップＳ４）。すなわち、Ｉ／Ｏ線Ｉ／Ｏ０〜Ｉ／Ｏ７の各々に、このＩ／Ｏ線Ｉ／Ｏ０〜Ｉ／Ｏ７と接続されたカラム０の全てのラッチ回路ＬＣに保持されているベリファイデータが縮退された形で読み出される。例えば、Ｉ／Ｏ線Ｉ／Ｏ０と接続されたカラム０の全てのラッチ回路ＬＣはベリファイパスのデータを保持している（ノードＮ２の電位は“Ｌ”レベル）とすると、Ｉ／Ｏ線Ｉ／Ｏ０は“Ｈ”レベルを維持する。一方、例えばＩ／Ｏ線Ｉ／Ｏ１と接続されたカラム１は、ベリファイフェイルのデータを保持するラッチ回路ＬＣを１つ含んでいるので、Ｉ／Ｏ線Ｉ／Ｏ１は、“Ｌ”レベルへと低下する。
【００４８】
次に、データ転送制御部２２は、Ｉ／Ｏ線Ｉ／Ｏ０〜Ｉ／Ｏ７にアドレス多重選択により読み出されたデータをＥＣＣ処理部３へ転送する（ステップＳ５）。ここで、全てのビットが反転されたベリファイデータがＥＣＣ処理部３に供給される。このように、ベリファイデータは、全ビットを反転された形でＥＣＣ処理部３に供給される。ビットの反転処理は、例えば、ページバッファ１２とＥＣＣ処理部３の間にインバータを設け、データ転送制御部２２の命令によって、ベリファイ時にＥＣＣ処理部３に転送されるデータの全ビットを反転させることにより行なうことができる。
【００４９】
次に、ベリファイ制御部２１は、ページと同サイズ（例えば５２８バイト）のベリファイデータがＥＣＣ処理部３に転送されたかを判断される（ステップＳ６）。偽と判断された場合、カラムアドレスが１、インクリメントされ（ステップＳ７）、ステップＳ２〜Ｓ６が繰り返される。このように、８アドレス分のベリファイデータが多重選択されて読み出されるので、ページと同サイズのベリファイデータを転送するのに要するサイクルは１３２である（例えば約２．６μｓ）。したがって、ステップＳ６での判断は、本例では、１３２回、ステップＳ２〜Ｓ５が実行されたかの判断に相当する。こうしてＥＣＣ処理部３に転送されたベリファイデータの大きさは、ちょうど、ＥＣＣ処理部３のセクタ（ＥＣＣ処理単位）と等しい。
【００５０】
次に、ベリファイ制御部２１は、ＥＣＣ処理部３にＥＣＣ処理（ＥＣＣデコード）を命じる。この命令を受けて、ＥＣＣ処理部３はＥＣＣ処理を行なう（ステップＳ８）。すなわち、ＥＣＣ処理部３は、供給されたベリファイデータからシンドロームを生成し、次いで、生成されたシンドロームをデコードしてベリファイデータに含まれるエラー数およびエラーアドレスを検出する。ＥＣＣ処理部３は、処理の間、ビジー信号を出力し、処理の終了後、ＳＥＲＲを出力する。ビジー信号およびＳＥＲＲは、ＥＣＣビジー判断部２３およびＳＥＲＲ検査部２４にそれぞれ供給される。ＥＣＣ処理の完了およびＳＥＲＲの出力に要する時間は、多ビットの訂正能力を持つＥＣＣ処理部であれば、一般に数百サイクルである。しかし、この数百サイクルのうち、エラーの有無を判定する（フェイルステートの確定）のに要する時間は、数サイクル（例えば５サイクル）のみである。したがって、ＥＣＣ処理の開始（ビジー信号の出力の開始）から、フェイルステートの確定までに要する時間（例えば５サイクル）の経過後にビジー信号が“Ｌ”レベルであれば、このことは、ベリファイデータがフェイルビットを含んでいないことを意味する。このため、ＥＣＣビジー判断部２３は、ベリファイデータがフェイルビットを含んでいるかの判定を行なうために、ＥＣＣ処理部３がエラーの有無の判断に要する時間（例えば５サイクル）の間、待機する（ステップＳ９）。
【００５１】
待機後、ＥＣＣビジー判断部２３は、ビジー信号が“Ｌ”レベルであるかを判定する（ステップＳ１０）。“Ｌ”レベルであれば、このことはベリファイデータ中の全ビットがベリファイパスであることを意味するので、ベリファイ制御部２１は一括検知パスと判定し（ステップＳ１１）、処理は終了する。一方、ステップＳ１０においてＥＣＣビジー信号が“Ｈ”レベルであれば、ベリファイデータはフェイルビットを含んでおり、このため、コントローラ４は一括検知フェイルと判定し（ステップＳ１２）、処理は終了する。
【００５２】
以上述べたように、第１実施形態によれば、ＥＣＣ処理部によってベリファイのパスまたはフェイルが判定される。フラッシュメモリには、一般に、ＥＣＣ処理部が設けられており、これが利用されるので、ベリファイ専用の検知回路は不要である。したがって、ベリファイ専用の検知回路の分、チップの面積を削減できる。
【００５３】
上記のように、ページと同サイズのデータの大きさは８セクタと同サイズのデータの大きさに相当するので、ページと同サイズのデータに対して一括検知を行なうには８セクタ分のデータが順次転送される必要がある。これに対して、第１実施形態によれば、８個のアドレスが多重選択されることにより、内部データバス上にワイヤードＯＲされた８ロウアドレス分のデータが読み出される。この結果、転送サイクルは、本実施形態を用いない場合の１／８である。すなわち、１セクタ分の転送サイクルで実質ページと同サイズ（８セクタ）のベリファイデータをＥＣＣ処理部３に転送できる。したがって、ベリファイに要する時間が、専用の検知回路を用いた例に比べて増大することも回避される。
【００５４】
なお、当然ながら、データがワイヤードＯＲされているので、ワイヤードＯＲにより縮退された複数ビット内に複数のフェイルビットが含まれている可能性がある。しかし、一括検知の目的はページど同サイズのベリファイデータ内で最低１つのフェイルビットを検出することなので、本実施形態によってその目的を達成できる。さらに、ＥＣＣ処理部３にとっても、入力されるデータがちょうど処理単位と同じ１セクタなので、特別な方策を施すことなく、処理を実行できる。なお、実際には、ＥＣＣ処理部３に入力されるベリファイデータの大きさがセクタに満たない状況にも本実施形態は容易に対応可能である。ベリファイデータの全ビットの期待値は“１”であるとともにＥＣＣ処理部３には全てのビットが反転されたベリファイデータが供給されることを利用して、足りない分が補われるということが可能だからである。すなわち、１セクタに足りない分として“０”のビットがＥＣＣ処理部３に入力されたものとして、ＥＣＣ処理部３は処理を行なう。この点の具体的な事例は後述の実施形態において説明する。
【００５５】
（第２実施形態）
第２実施形態は、ページと同サイズのベリファイデータ中のフェイルビットを計数する（以下、フルページビットスキャンと称する）ベリファイに関する。
【００５６】
第２実施形態に係る半導体記憶装置の要素は、第１実施形態（図３〜図６）と同じである。第２実施形態の動作について図８を参照して説明する。図８は、第２実施形態に係る半導体記憶装置によるベリファイ（フルページビットスキャン）を概略的に示すフローチャートである。大まかには、まず第１実施形態のように一括検知が行なわれ、一括検知フェイルの場合に、フェイルビット数が許容数以下であるかの判定を通じて擬似パスかが判定される。以下に、具体的に説明する。
【００５７】
図８に示されているように、まずステップＳ１〜Ｓ１０が行なわれる。すなわち、アドレス多重選択を用いてページと同サイズのベリファイデータがＥＣＣ処理部３に転送され、ＥＣＣ処理が行なわれる。ステップＳ１０においてＥＣＣビジー信号が“Ｌ”レベルであれば、ページと同サイズの処理中のベリファイデータはフェイルビットを含んでいないため、ベリファイ制御部２１は、フルページビットスキャンがトゥルーパスであると判定し（ステップＳ２１）、処理は終了する。一方、ステップＳ１０においてＥＣＣビジー信号が“Ｈ”レベルであれば、ベリファイ制御部２１は、続いてフェイルビットの計数を行なうために、ＥＣＣ処理部３での処理が完了してＥＣＣビジー信号が“Ｌ”レベルとなるまで待機する（ステップＳ２２）。
【００５８】
次に、ＳＥＲＲ検査部２４は、ＥＣＣ処理部３からＳＥＲＲを受け取る。ＳＥＲＲには、ベリファイデータに訂正能力を超えたエラー数が含まれている場合に訂正不能エラーの旨の情報が含まれている。一方、ベリファイデータに訂正能力以下の数のエラーが含まれる場合、そのエラー数の情報が含まれ、それに応じたエラーを含んだワードのアドレスがADDRESSに出力される。ワードとは、１サイクルでＥＣＣ処理部３に転送されるデータの大きさである。したがって、本例のように、１サイクルで転送されるベリファイデータが３２ビットであれば、１ワードの大きさは３２ビットである。
【００５９】
ＳＥＲＲ検査部２４は、ＳＥＲＲを検査してベリファイデータが訂正能力を超えた数のエラーを含んでいるか否かを判断する（ステップＳ２３）。エラー数が訂正能力を超えていれば、このことはベリファイデータ中のフェイルビットを計数することができないことを意味する。このため、ベリファイ制御部２１は、ベリファイ（フルページビットスキャン）がフェイルであると判定し（ステップＳ２４）、処理は終了する。
【００６０】
一方、ステップＳ２３においてエラー数が訂正能力以下であれば、ＳＥＲＲ検査部２４は、ＳＥＲＲを検査して、エラーを含んだワードのアドレスを抽出し、ラッチ２５に保持する（ステップＳ２５）。上記のように、１ワードアドレスにより特定されるベリファイデータには、複数のフェイルビットがアドレス多重選択を通じて含まれている可能性がある。そこで、特定されたワードアドレスによって指定されるベリファイデータが、多重選択無しにチェックされる。概要は、ロウアドレスの多重選択無しにロウアドレスごとにベリファイデータが読み出される点を含む細かい点を除いて、ステップＳ２〜Ｓ１０と同様であり、具体的には以下の通りである。
【００６１】
まず、ベリファイ制御部２１は、Ｉ／Ｏ線Ｉ／Ｏ０〜Ｉ／Ｏ７を“Ｈ”レベルにプリチャージする（ステップＳ２６）。次に、ベリファイ制御部２１は、エラーを含むと特定された１つのワードアドレスに対応するカラムを選択し、次いでアドレス信号ＡＤＤ０を選択する（ステップＳ２７）。この結果、選択されたカラムの各々において、ロウアドレス０のラッチ回路ＬＣに保持されているベリファイデータが、対応するＩ／Ｏ線Ｉ／Ｏに読み出される（ステップＳ２８）。次いで、データ転送制御部２２は、これらのＩ／Ｏ線Ｉ／Ｏに読み出されたベリファイデータをＥＣＣ処理部３に転送する（ステップＳ２９）。次に、ベリファイ制御部２１は、現在処理中のワードのアドレスに対応する８つのロウアドレス分のベリファイデータがＥＣＣ処理部３に転送されたかを判断する（ステップＳ３０）。ベリファイデータ未転送のロウアドレスがあれば、ロウアドレスが１インクリメントされ（ステップＳ３１）、ステップＳ２６〜Ｓ２９が繰り返される。こうして、１ワード分のベリファイデータがアドレス多重選択されることなく転送される。このため、ＥＣＣ処理部３に転送されるベリファイデータの各ビットは、１つのラッチ回路ＬＣに保持されるベリファイデータのみを反映している。
【００６２】
１ワード分のベリファイデータが転送されると、次に、ベリファイ制御部２１は、エラーを含むと特定された全てのワードアドレスについてのベリファイデータが転送されたかを判定する（ステップＳ３２）。ベリファイデータ未転送のワードアドレスがあれば、このワードアドレスがラッチされ（ステップＳ２５）、このワードアドレスについてステップＳ２６〜Ｓ３１が行なわれる。例えば、ＳＥＲＲが示す、エラーを含んだワードの数が４つであれば、ステップＳ２５〜Ｓ３１が、４回繰り返される。
【００６３】
エラーを含んだ全てのワードアドレスについてのデータの転送が終了すると、ベリファイ制御部２１は、ＥＣＣ処理部３にＥＣＣ処理を命じる。この命令を受けて、ＥＣＣ処理部３はＥＣＣ処理を開始する（ステップＳ３３）。なお、ＥＣＣ処理部３に転送されたデータの大きさは１セクタに満たない。例えば、ＳＥＲＲが１ビットのエラーが有る旨を示している場合、ステップＳ２５〜Ｓ３２によって転送されるデータは、３２（ｂｉｔ／１転送サイクル）×８（展開されるアドレスＡＤＤ０〜ＡＤＤ７）＝２５６ｂｉｔ＝３２Ｂである。この値は、１セクタ（＝５２８Ｂ）に満たない。しかし、上記のように、ベリファイデータの全ビットの期待値は“１”であるとともにＥＣＣ処理部３には全てのビットが反転されたベリファイデータが供給されることを利用して、足りない分が補われる。すなわち、１セクタに足りない分として“０”のビットがＥＣＣ処理部３に入力されたものとして、ＥＣＣ処理部３は処理を行なう。このために、ベリファイ制御部２１は、不足分のビットをラッチするＥＣＣ処理部３内の全てのラッチにおいて“０”をセットする。次いで、ベリファイ制御部２１は、ＥＣＣ処理部３にＥＣＣ処理を命じる。この命令を受けて、ＥＣＣ処理部３はＥＣＣ処理を行なう。
【００６４】
ＥＣＣビジー判断部２３は、ＥＣＣビジー信号を監視し、ＥＣＣビジー信号が“Ｌ”レベルとなるのを待つ（ステップＳ３４）。ＥＣＣ処理の完了後、ＳＥＲＲ検査部２４は、ＥＣＣ処理部３からＳＥＲＲを受け取る。次に、ＳＥＲＲ検査部２４は、ＳＥＲＲにより示されるエラー数が予め定められた閾値以下であるかを判定する（ステップＳ３５）。エラー数が閾値以下であれば、ベリファイ制御部２１は、フルページビットスキャンが擬似バスであると判定し（ステップＳ３６）、処理は終了する。一方、エラー数が閾値を越えていれば、ベリファイ制御部２１は、フルページビットスキャンがフェイルであると判定し（ステップＳ２４）、処理は終了する。ステップＳ３５で用いられる閾値は、ページと同サイズのベリファイデータ中で存在することを許容されるフェイルビットの数に基づいて設定される。
【００６５】
以上述べたように、第２実施形態によれば、第１実施形態と同様に、ＥＣＣ処理部によってベリファイのパスまたはフェイルが判定される。このため、第１実施形態と同じ利点を得られる。また、第２実施形態では、ページと同サイズのベリファイデータに対する一括検知後にフェイルビットが含まれていることと判定された場合に、対応するワードアドレスについてのみロウアドレスごとのベリファイデータに対してベリファイが行なわれる。このため、ＥＣＣ処理部３を用いたフルページビットスキャンも実現可能である。
【００６６】
（第３実施形態）
第３実施形態は、ベリファイとその結果に応じた再書き込みとに関する。
【００６７】
データ書き込みのための一連の工程は、ベリファイと、ベリファイフェイルと判定されたメモリセルへの再書き込みを含んでいる。再書き込み後に再度ベリファイが行なわれ、再書き込み後に再度ベリファイが行なわれ、このように、ベリファイと再書き込みが繰り返される。しかし、書き込みに費やせる時間は無制限ではないため、再書き込みの回数には、一般に上限が設けられている。第３実施形態は、この再書き込み回数の上限を考慮した、ベリファイと再書き込みに関する。
【００６８】
第３実施形態に係る半導体記憶装置の要素は、第１実施形態（図３〜図６）と同じである。第３実施形態の動作について図９を参照して説明する。図９は、第３実施形態に係る半導体記憶装置によるベリファイおよび再書き込みを概略的に示すフローチャートである。
【００６９】
図９に示されているように、まず、ベリファイデータが読み出される（ステップＳ１）。次に、ステップＳ４１として、第１実施形態（図７）のステップＳ２〜Ｓ９が行なわれる。すなわち、アドレス多重選択を用いてページと同サイズのベリファイデータがＥＣＣ処理部３に転送され、ＥＣＣ処理が行なわれる。次に、ステップＳ１０において、ＥＣＣビジー信号が“Ｌ”レベルであれば、ベリファイ制御部２１はベリファイがトゥルーパスであると判定し（ステップＳ４２）、処理は終了する。一方、ステップＳ１０においてＥＣＣビジー信号が“Ｈ”レベルであれば、ベリファイ制御部２１は、メモリ部１中の現在書き込み対象のメモリセル（ページ）への再書き込みをメモリ部１に命令する。メモリ部１は、この命令を受け、再書き込みを行なう（ステップＳ４３）。
【００７０】
次に、ベリファイ制御部２１は、現在実行中の書き込み処理においてこれまで行なわれた再書き込みの回数が、予め定められた上限に達しているかを判断する（ステップＳ４４）。上限に達していない場合、処理はステップＳ４１に戻る。次いで、ステップＳ１０でＥＣＣビジー信号が“Ｌ”レベルとなるか、あるいはステップＳ４４で再書き込み回数が上限に達するまで、ステップＳ４１〜Ｓ４４が繰り返される。
【００７１】
ステップＳ４４において再書き込み回数が上限に達した場合、ステップＳ４５として、第２実施形態（図８）のステップＳ２３〜Ｓ３６が行なわれる。すなわち、ベリファイデータが多重選択無しに転送され、フェイルビットが計数される。ただし、本実施形態では、ステップＳ２４、Ｓ３５、Ｓ３６は、図９の終了ブロックへと続く。
【００７２】
以上述べたように、第３実施形態によれば、第１実施形態と同様に、ＥＣＣ処理部によってベリファイのパスまたはフェイルが判定される。このため、第１実施形態と同じ利点を得られる。また、第２実施形態と同じステップを含むことによって、第２実施形態と同じ利点を得られる。
【００７３】
さらに、第３実施形態によれば、再書き込み回数が上限に達するまでは、第１実施形態の一括検知と再書き込みを繰り返し、上限到達後は、第２実施形態のフルページビットスキャンが行なわれる。すなわち、上限回数までは一括検知によってフェイルビットが無くなるまで再書き込みが行なわれ、上限回数到達後は所定数（例えばＥＣＣ処理部での訂正能力範囲内）のフェイルビット数であれば擬似パスと判定される。このため、上限回数到達までのフェイルビット無しを目指した再書き込みが行なわれ、上限回数到達以降は所定数であればフェイルビットの存在が許容される。上限回数を適切に設定することによって、許容される書き込み時間を守ることが可能である。このように、第１、第２実施形態を適切に組み合わせることによって、許容される書き込み時間を守りながら効率よくベリファイおよび再書き込みを行なえる。
【００７４】
（第４実施形態）
第４実施形態は、ページと同サイズのベリファイデータ中のフェイルビットを含んだバイトを計数する（以下、フルページバイトスキャンと称する）ベリファイに関する。
【００７５】
第４実施形態に係る半導体記憶装置の要素は、第１実施形態（図３〜図６）と同じである。第４実施形態の動作について図１０を参照して説明する。図１０は、第４実施形態に係る半導体記憶装置によるベリファイ（フルページバイトスキャン）を概略的に示すフローチャートである。大まかには、まず第１実施形態のように一括検知が行なわれ、一括検知フェイルの場合に、フェイルビットを含んだバイトの数が許容数以下であるかの判定を通じて擬似パスであるかが判定される。以下に、具体的に説明する。
【００７６】
図１０に示されているように、まずステップＳ１〜Ｓ１０が行なわれる。すなわち、アドレス多重選択を用いてページと同サイズのベリファイデータがＥＣＣ処理部３に転送され、ＥＣＣ処理が行なわれる。ステップＳ１０においてＥＣＣビジー信号が“Ｌ”レベルであれば、ページと同サイズの処理中のベリファイデータはフェイルビットを含んでいないため、ベリファイ制御部２１は、フルページバイトスキャンがトゥルーパスであると判定し（ステップＳ２１）、処理は終了する。一方、ステップＳ１０においてＥＣＣビジー信号が“Ｈ”レベルであれば、ベリファイ制御部２１は、続いてフェイルビットを含んだバイトの計数を行なうために、ＥＣＣ処理部３での処理が完了してＥＣＣビジー信号が“Ｌ”レベルとなるまで待機する（ステップＳ２２）。
【００７７】
次に、ＳＥＲＲ検査部２４は、ＳＥＲＲにより示されるエラー数が閾値以下であるかを判定する（ステップＳ３５）。本実施形態でも、第１実施形態と同じく、８つのロウアドレス分のベリファイデータが１つのベリファイデータに縮退されている。このため、ＳＥＲＲによって示される情報は、ちょうど各バイトがフェイルビットを含むか否かの情報に対応する。そこで、ＳＥＲＲを閾値と比較することによって、バイト単位でのフェイルビットの有無が閾値と比較されることが可能になる。ステップＳ３５で用いられる閾値は、ページと同サイズのベリファイデータ中で存在することを許容される、フェイルビットを含んだバイトの数に基づいて設定される。
【００７８】
ステップＳ５３において、エラー数が閾値以下であれば、ベリファイ制御部２１はフルページバイトスキャンが擬似パスであると判定し（ステップＳ３６）、処理は終了する。一方、エラー数が閾値を超えていれば、ベリファイ制御部２１はフルページバイトスキャンがフェイルであると判定し（ステップＳ２４）、処理は終了する。
【００７９】
以上述べたように、第４実施形態によれば、第１実施形態と同様に、ＥＣＣ処理部によってベリファイのパスまたはフェイルが判定される。このため、第１実施形態と同じ利点を得られる。
【００８０】
また、第４実施形態によれば、１つのベリファイデータへと縮退されるベリファイデータの個数と同数のビット群（本例ではバイト）のうちの幾つがフェイルビットを含んでいるかが判定される。このようなフルページバイトスキャンは、フルページビットスキャンより高速に処理が完了するので、フルページビットスキャンほど細かい単位でのフェイルビットの有無を判定する必要がない用途において有効である。そのような用途の例として、例えばダイソートテスト時などにフェイルカラム数がリダンダシカラム数以下であるかをチェックするためにフェイルカラム数を数える場合などが挙げられる。
【００８１】
（第５実施形態）
第５実施形態は、１ページを分割して得られる大きさ単位でのフェイルビットを計数する（以下、セグメントビットスキャンと称する）ベリファイに関する。
【００８２】
第５実施形態に係る半導体記憶装置の要素は、第１実施形態（図３〜図６）と同じである。第５実施形態の動作について図１１を参照して説明する。図１１は、第４実施形態に係る半導体記憶装置によるベリファイ（セグメントビットスキャン）を概略的に示すフローチャートである。大まかには、ベリファイデータは１ページより小さなサイズ単位で処理され、ベリファイデータごとにフェイルビットの有無が判定され、所定数のベリファイデータがいずれもフェイルビットを含んでいなければベリファイパスと判定され、フェイルビットを含んだベリファイデータが見つかった時点でこのベリファイデータがフェイルビット数の点から擬似パスであるかが判定される。以下に、具体的に説明する。
【００８３】
図１１に示されているように、まず、ベリファイ制御部２１は、トゥルーパスチェック用の値を保持するレジスタ２６を“０”に設定する（ステップＳ５１）。次に、ステップＳ１〜Ｓ５が行われる。すなわち、アドレス多重選択を用いてベリファイデータがＥＣＣ処理部３に転送される。次に、ベリファイ制御部２１は、１セクタ分（例えば５４４ビット）のベリファイデータがＥＣＣ処理部３に転送されたかを判断する（ステップＳ５２）。転送されたベリファイデータが１セクタに達していなければ、カラムアドレスが１、インクリメントされ（ステップＳ７）、ステップＳ２〜Ｓ６が行なわれる。なお、当然ながら、転送されたベリファイデータは、８つのロウアドレス分のベリファイデータが１つのベリファイデータに縮退された形となっている。
【００８４】
ステップＳ５２において１セクタ分のベリファイデータが転送されたならば、ＥＣＣ処理の開始、待機、ＥＣＣビジー信号が“Ｌ”レベルであるかの判断（ステップＳ８〜Ｓ１０）が行なわれる。ステップＳ１０においてＥＣＣビジー信号が“Ｌ”レベルであれば、処理中の１セクタの大きさのベリファイデータはフェイルビットを含んでいないため、ベリファイ制御部２１はこのベリファイデータがトゥルーパスと判定する（ステップＳ６１）。
【００８５】
次に、ベリファイ制御部２１は、セクタと同サイズの所定数（例えば８セクタ）のベリファイデータにわたってこのベリファイデータがトゥルーパスであるかの判定が行なわれたかを判定する（ステップＳ６２）。トゥルーパスであるかについて未判定のセクタと同サイズのベリファイデータがあれば、次のセクタサイズのベリファイデータに対してトゥルーパスであるかの判定が行なわれる（ステップＳ１〜Ｓ５、Ｓ６２、Ｓ７〜Ｓ１０、Ｓ６１）。一方、ステップＳ６２においてセクタと同サイズの全てのベリファイデータに対する判定が行なわれたならば、ベリファイ制御部２１は、トゥルーパスチェックレジスタ２６が“０”であるかを検査する（ステップＳ６３）。後述のように、いずれかのベリファイ対象のセクタと同サイズのベリファイデータがフェイルビットを含んでいると、その時点でトゥルーパスチェックレジスタ２６が“１”とされる。したがって、レジスタ２６が“０”であれば、セクタと同サイズの全ベリファイデータがフェイルビットを含んでいないことを意味するので、ベリファイ制御部２１は、セクタビットスキャンがトゥルーパスであると判定し（ステップＳ６４）、処理は終了する。
【００８６】
ステップＳ１０においてＥＣＣビジー信号が“Ｈ”レベルであれば、現在処理中のセクタと同サイズのベリファイデータはフェイルビットを含んでいる。そこで、このベリファイデータが擬似パスであるかの検査が行なわれる。すなわち、まず、ベリファイ制御部２１は、ＥＣＣビジー信号が“Ｌ”レベルとなるまで待機するとともに、トゥルーパスチェックレジスタ２６を“１”に設定する（ステップＳ７２）。もはやセグメントビットスキャンが擬似パスである可能性はあってもトゥルーパスである可能性はないことを後の判定において示すためである。
【００８７】
次に、ＳＥＲＲ検査部２４は、ＳＥＲＲを検査して処理中のセクタと同サイズのベリファイデータが訂正能力を超えた数のエラーを含んでいるか否かを判断する（ステップＳ２３）。エラー数が訂正能力を超えていれば、ベリファイ制御部２１は、ベリファイ（セグメントビットスキャン）がフェイルであると判定し（ステップＳ２４）、処理は終了する。一方、ステップＳ２３においてエラー数が訂正能力以下であれば、ステップＳ２５〜Ｓ３５が行なわれる。すなわち、処理中のセクタと同サイズのベリファイデータがアドレス多重選択無しに読み出され、ベリファイデータに含まれるフェイルビット数が閾値を超えているかの判断が行なわれる。次いで、ベリファイデータに含まれるフェイルビットの計数を通じてセクタの擬似パスが判定される。ステップＳ３５で用いられる閾値は、１つのセクタと同サイズのベリファイデータ中で存在することを許容されるフェイルビットの数に基づいて設定される。
【００８８】
ステップＳ３５においてエラー数が閾値以下であれば、ベリファイ制御部２１は、処理中のベリファイデータがセクタ擬似バスであると判定（ステップＳ７３）する。一方、エラー数が閾値を越えていれば、ベリファイ制御部２１は、ベリファイ（セグメントビットスキャン）がフェイルであると判定し（ステップＳ２４）、処理は終了する。
【００８９】
ステップＳ７３に続いて、ステップＳ７６、Ｓ６３が行なわれる。ステップＳ７３を経てステップＳ６２に到達した場合、通常、トゥルーパスチェックレジスタ２６は“１”であるはずである。このため、ベリファイ制御部２１は、ベリファイ（セグメントビットスキャン）が擬似パスであると判定し（ステップＳ３６）、処理は終了する。
【００９０】
ここまで説明された例では、カラムアドレスは１ずつインクリメントされる。こうすることによって、連続するカラムアドレス中の各ベリファイデータからなるベリファイデータの集合から、セクタと同サイズのベリファイデータが形成される。しかしながら、１以外の数ずつインクリメントされてもよい。例えば、２ずつインクリメントされれば、１つおきの各カラムアドレス中の各ベリファイデータの集合からセクタと同サイズベリファイデータが形成される。このようにして、任意の構成のセクタを形成することができる。
【００９１】
以上述べたように、第５実施形態によれば、第１実施形態と同様に、ＥＣＣ処理部によってベリファイのパスまたはフェイルが判定される。このため、第１実施形態と同じ利点を得られる。
【００９２】
また、第５実施形態によれば、ＥＣＣ処理部３による処理単位であるセクタ単位でフェイルビットの有無およびフェイルルビットの数に基づいた擬似パスの判定が行なわれる。このため、例えばＤ／Ｓ時に本実施形態を使用して、半導体記憶装置の歩留まり向上につなげるという用途が可能である。
【００９３】
（第６実施形態）
第６実施形態は、１ページを分割して得られる大きさ単位でのフェイルビットを含んだバイトを計数するベリファイに関する。
【００９４】
第６実施形態に係る半導体記憶装置の要素は、第１実施形態（図３〜図６）と同じである。第６実施形態の動作について図１２を参照して説明する。図１２は、第６実施形態に係る半導体記憶装置によるベリファイを概略的に示すフローチャートである。大まかには、第５実施形態のようにベリファイデータは１ページより小さなサイズ単位で処理され、ベリファイデータごとにフェイルビットの有無が判定され、所定数のベリファイデータがいずれもフェイルビットを含んでいなければベリファイパスと判定され、フェイルビットを含んだベリファイデータが見つかった時点でこのベリファイデータが、フェイルビットを含んだバイト数の点から擬似パスであるかが判定される。以下に、具体的に説明する。
【００９５】
図１２に示されているように、第５実施形態と同様にステップＳ６１、Ｓ１〜Ｓ５、Ｓ６２、Ｓ７〜Ｓ１０が行なわれる。すなわち、１セクタと同サイズのベリファイデータがアドレスの多重選択を通じてＥＣＣ処理部３に転送され、ＥＣＣ処理が行なわれ、待機後にＥＣＣビジーのレベルが判定される。ステップＳ１０においてＥＣＣビジー信号が“Ｌ”レベルであれば、現在処理中のベリファイデータがトゥルーパスと判定される（ステップＳ６１）。
【００９６】
次に、セクタと同サイズの所定数（例えば８セクタ）のベリファイデータにわたってこのベリファイデータがトゥルーパスであるかの判定が行なわれたかが判定される（ステップＳ６２）。未判定のベリファイデータがあれば、次のベリファイデータに対してトゥルーパスであるかの判定が行なわれる（ステップＳ１〜Ｓ５、Ｓ６２、Ｓ７〜Ｓ１０、Ｓ６１）。セクタと同サイズの所定数のベリファイデータの処理後、トゥルーパスチェックレジスタ２６の値が“０”であれば、ベリファイはトゥルーパスと判定され（ステップＳ６４）、処理は終了する。
【００９７】
一方、ステップＳ１０においてＥＣＣビジー信号が“Ｈ”レベルであれば、セクタと同サイズの現在処理中のベリファイデータが擬似パスであるかの検査が行なわれる。すなわち、まず、ベリファイ制御部２１は、ＥＣＣビジー信号が“Ｌ”レベルとなるまで待機するとともに、トゥルーパスチェックレジスタ２６を“１”に設定する（ステップＳ７２）。次に、ＳＥＲＲが示すエラー数が閾値と比較される（ステップＳ３５）。ステップＳ３５で用いられる閾値は、セクタと同じサイズのベリファイデータ中で存在することを許容されるフェイルビットの数を含んだバイト数に基づいて設定される。
【００９８】
ステップＳ３５においてＳＥＲＲが閾値を越えていれば、ベリファイがフェイルであると判定され（ステップＳ２４）、処理は終了する。一方、ＳＥＲＲが閾値以下であれば、処理中のセクタが擬似バスであると判定され（ステップＳ７３）、ステップＳ６２、Ｓ６３が行なわれる。ステップＳ７３を経てステップＳ６２に到達した場合、通常、トゥルーパスチェックレジスタ２６は“１”であるはずなので、ベリファイは擬似パスと判定され（ステップＳ３６）、処理は終了する。
【００９９】
第６実施形態においても、第５実施形態と同様に、カラムアドレスは１以外の数ずつインクリメントされてもよい。こうすることによって、任意の構成の、セクタと同サイズのベリファイデータを形成することができる。
【０１００】
以上述べたように、第６実施形態によれば、第１実施形態と同様に、ＥＣＣ処理部によってベリファイのパスまたはフェイルが判定される。このため、第１実施形態と同じ利点を得られる。
【０１０１】
また、第６実施形態によれば、ＥＣＣ処理部３による処理単位であるセクタと同じ大きさのベリファイデータ単位で、フェイルビットの有無およびフェイルビットを含んだバイトの数に基づいた擬似パスの判定が行なわれる。
【０１０２】
その他、各実施形態は、上記のものに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で、種々に変形することが可能である。さらに、上記実施形態には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の実施形態が抽出され得る。例えば、上記各実施形態に示される全構成要件から幾つかの構成要件が削除されても、この構成要件が削除された構成が実施形態として抽出され得る。
【符号の説明】
【０１０３】
１…メモリ部、２…コントローラ、３…ＥＣＣ処理部、１１…メモリセルアレイ、１２…ページバッファ、１３…メモリコントローラ、２１…ベリファイ制御部、２２…データ転送制御部、２３…ＥＣＣビジー判断部、２４…ＳＥＲＲ検査部、２５…ラッチ、２６…レジスタ。
【図１】
2012069180.tif 000003
【図２】
2012069180.tif 000004
【図３】
2012069180.tif 000005
【図４】
2012069180.tif 000006
【図５】
2012069180.tif 000007
【図６】
2012069180.tif 000008
【図７】
2012069180.tif 000009
【図８】
2012069180.tif 000010
【図９】
2012069180.tif 000011
【図１０】
2012069180.tif 000012
【図１１】
2012069180.tif 000013
【図１２】
2012069180.tif 000014