(57)【要約】【課題】ベリファイ・フェイル数を精度良くカウント可能な半導体記憶装置を提供すること。【解決手段】実施形態の半導体記憶装置１は、複数のメモリセルＭＴと、論理ゲートチェーン５２と、カウンタ３０を備える。メモリセルＭＴは、いずれかのカラムに関連付けられ、データ保持可能である。論理ゲートチェーン５２は、いずれかのカラムに対応付けられ、且つ対応付けられたカラムにおけるベリファイ・フェイルの有無を示す論理レベルを次段に出力するように直列接続された複数の論理ゲート５１を含む。カウンタ３０は、直列接続の最終段の論理ゲートによる、ベリファイ・フェイルがあることを示す論理レベルの出力回数をカウントする。論理ゲートチェーン５２は、各々の論理ゲート５１の出力する論理レベルの示す内容が、ベリファイ・フェイルのあるカラムに対応する論理ゲート５１を境界にして反転するように構成される。【選択図】図１
2012203965.tif 000002
【特許請求の範囲】
【請求項１】
いずれかのカラムに関連付けられ、データ保持可能な複数のメモリセルと、
いずれかの前記カラムに対応付けられ、且つ対応付けられた前記カラムにおけるベリファイ・フェイルの有無を示す論理レベルを次段に出力するように直列接続された複数の論理ゲートを含む論理ゲートチェーンと、
前記直列接続の最終段の前記論理ゲートによる、前記ベリファイ・フェイルがあることを示す論理レベルの出力回数をカウントするカウンタと
を具備し、前記論理ゲートチェーンは、各々の前記論理ゲートの出力する論理レベルの示す内容が、ベリファイ・フェイルのある前記カラムに対応する前記論理ゲートを境界にして反転する
ことを特徴とする半導体記憶装置。
【請求項２】
いずれかの前記カラムに対応付けられた第１ラッチ回路と、
前記第１ラッチ回路内の情報に基づいて、前段の前記論理ゲートの出力をそのまま次段の前記論理ゲートに転送するスイッチと
を更に備えることを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
いずれかの前記カラムに対応付けられ、対応付けられた前記カラムにおける前記ベリファイ・フェイルの有無を示す情報を保持する第２ラッチ回路と、
いずれかの前記カラムに対応付けられ、対応する前記論理ゲートの出力及び前記第２ラッチ回路の保持する情報の少なくともいずれか一方を、テスト信号に応じて外部へ出力可能なテスト回路と
を更に備えることを特徴とする請求項２記載の半導体記憶装置。
【請求項４】
前記論理ゲートの各々は、
対応付けられた前記カラムにおけるベリファイ・フェイルの有無を示す前記情報と、
前段の前記論理ゲートの出力と、
ベリファイ・フェイル数のカウント動作を行う際にアサートされる制御信号と
に基づいて論理演算を行う
ことを特徴とする請求項３記載の半導体記憶装置。
【請求項５】
前記データについてのＥＣＣ処理を実行するＥＣＣ部を更に備え、
前記論理ゲートチェーンに対応づけられる前記カラムの数は、前記ＥＣＣ部におけるＥＣＣ処理のデータ単位と同じかそれより小さい
ことを特徴とする請求項４記載の半導体記憶装置。
【請求項６】
いずれかの前記カラムに対応付けられ、対応付けられた前記カラムにおける前記ベリファイ・フェイルの有無を示す情報を保持する第２ラッチ回路と、
いずれかの前記カラムに対応付けられ、前記境界に位置する前記論理ゲートに対応する前記第２ラッチ回路をリセット可能なリセット命令部と
を更に備え、前記論理ゲートは、対応する前記第２ラッチ回路内の前記情報と、前段の前記論理ゲートの出力との論理演算を行う
ことを特徴とする請求項１または２記載の半導体記憶装置。
【請求項７】
前記リセット命令部は、対応する前記第２ラッチ回路内の前記情報と、前段の前記論理ゲートの出力とに基づいて、前記第２ラッチ回路をリセットする
ことを特徴とする請求項６記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
従来のＮＡＮＤ型フラッシュメモリでは、データの書き込み時にベリファイが実行される。そして、ベリファイ・フェイル・ビットが予め決められた数以下であれば、プログラムシーケンスを終了する機能（以下、疑似パス機能と呼ぶ）が知られている。
【０００３】
本方法を用いるためには、ベリファイ・フェイル・ビット数をカウントする回路技術が必要となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１７６７６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本実施形態は、ベリファイ・フェイル・ビット数を精度良くカウント可能な半導体記憶装置を提供する。
【課題を解決するための手段】
【０００６】
実施形態の半導体記憶装置は、複数のメモリセルと、論理ゲートチェーンと、カウンタを備える。メモリセルは、いずれかのカラムに関連付けられ、データ保持可能である。論理ゲートチェーンは、いずれかのカラムに対応付けられ、且つ対応付けられたカラムにおけるベリファイ・フェイルの有無を示す論理レベルを次段に出力するように直列接続された複数の論理ゲートを含む。カウンタは、直列接続の最終段の論理ゲートによる、ベリファイ・フェイルがあることを示す論理レベルの出力回数をカウントする。論理ゲートチェーンは、各々の論理ゲートの出力する論理レベルの示す内容が、ベリファイ・フェイルのあるカラムに対応する論理ゲートを境界にして反転するように構成される。
【図面の簡単な説明】
【０００７】
【図１】第１実施形態に係るフラッシュメモリのブロック図。
【図２】第１実施形態に係るメモリセルアレイの回路図。
【図３】第１実施形態に係る検知部の回路図。
【図４】第１実施形態に係る検知部の回路図。
【図５】第１実施形態に係る検知部の回路図。
【図６】第１実施形態に係る検知回路の回路図。
【図７】第１実施形態に係る検知回路の回路図。
【図８】第１実施形態に係る書き込み動作のタイミングチャート。
【図９】第１実施形態に係る書き込み動作のフローチャート。
【図１０】第１実施形態に係る書き込み動作時の各種信号のタイミングチャート。
【図１１】第１実施形態に係るフラッシュメモリのブロック図。
【図１２】第１実施形態に係るフラッシュメモリのブロック図。
【図１３】第１実施形態に係るフラッシュメモリのブロック図。
【図１４】第１実施形態に係るフラッシュメモリのブロック図。
【図１５】第１実施形態に係るフラッシュメモリのブロック図。
【図１６】第１実施形態に係るフラッシュメモリのブロック図。
【図１７】フェイルビットをカウントするための回路の回路図。
【図１８】第２実施形態に係る検知部及びラッチ回路の回路図。
【図１９】第３実施形態に係る検知部、ラッチ回路、及びテスト回路の回路図。
【図２０】第４実施形態に係る検知部、ラッチ回路、及びテスト回路の回路図。
【図２１】第４実施形態に係る書き込み動作時の各種信号のタイミングチャート。
【図２２】第５実施形態に係るフラッシュメモリのブロック図。
【発明を実施するための形態】
【０００８】
以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００９】
［第１実施形態］  
第１実施形態に係る半導体記憶装置について、ＮＡＮＤ型フラッシュメモリを例に挙げて説明する。
【００１０】
１．ＮＡＮＤ型フラッシュメモリの全体構成について  
図１は、本実施形態に係るＮＡＮＤ型フラッシュメモリのブロック図である。図示するようにＮＡＮＤ型フラッシュメモリ１は、大まかにはメモリセルアレイ１０、検知回路２０、デジタルカウンタ回路３０、及び制御回路４０を備えている。以下、それぞれについて説明する。
【００１１】
１．１  メモリセルアレイ１０について  
メモリセルアレイ１０は、データを保持可能な複数のメモリセルトランジスタを備えている。図２は、メモリセルアレイ１０の回路図である。図示するようにメモリセルアレイ２は、複数のＮＡＮＤセル１１を備えている。ＮＡＮＤセル１１の各々は、例えば３２個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ３１）と、選択トランジスタＳＴ１、ＳＴ２とを含んでいる。メモリセルトランジスタＭＴは、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（例えば浮遊ゲート）と、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲートとを有する積層ゲート構造を備えている。なお、メモリセルトランジスタＭＴの個数は３２個に限られず、８個や１６個、６４個、１２８個、２５６個等であってもよく、その数は限定されるものではない。また、電荷蓄積層は絶縁物を材料に用いて形成されても良い。メモリセルトランジスタＭＴは、隣接するもの同士でソース、ドレインを共有しており、選択トランジスタＳＴ１、ＳＴ２間にその電流経路が直列接続されるようにして配置されている。直列接続されたメモリセルトランジスタＭＴの一端側のドレインは選択トランジスタＳＴ１のソースに接続され、他端側のソースは選択トランジスタＳＴ２のドレインに接続されている。
【００１２】
同一行にあるメモリセルトランジスタＭＴの制御ゲートはワード線ＷＬ（ＷＬ０〜ＷＬ３１）のいずれかに共通接続され、同一行にある選択トランジスタＳＴ１、ＳＴ２のゲートは、それぞれセレクトゲート線ＳＧＤ、ＳＧＳに共通接続されている。更に、選択トランジスタＳＴ１のドレインはビット線ＢＬ（ＢＬ０〜ＢＬｋ（ｋは２以上の自然数））のいずれかに接続され、選択トランジスタＳＴ２のソースはソース線ＳＬに共通接続される。
【００１３】
以上の構成において、ワード線ＷＬ及びセレクトゲート線ＳＧＤ、ＳＧＳを共通にする複数のＮＡＮＤセル１１によって、１つのブロックと呼ばれる単位が形成される。同一のブロック内のメモリセルトランジスタＭＴは、一括してデータが消去される。更に、同一のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴには、一括してデータが書き込まれ、この単位はページと呼ばれる。
【００１４】
そして図１に示すように、ビット線ＢＬ０から順に、隣接する例えば８本のビット線ＢＬが、１つのカラムという単位を構成する。本実施形態では、（ｍ＋１）個のカラムＣ（Ｃ０〜Ｃｍ）が、メモリセルアレイ１０内に含まれる（（ｍ＋１）は１以上の自然数））。つまりカラムＣｉ（ｉは０〜ｍの整数）には、ビット線ＢＬ８ｉ〜ＢＬ（８ｉ＋７）が属することとなる。
【００１５】
１．２  検知回路２０について  
次に検知回路２０について説明する。検知回路２０は、ベリファイ動作及びフェイルビットの検知動作を行う。図１に示すように、検知回路２０は、カラムＣｉにそれぞれ関連づけられた（ｍ＋１）個の検知部５０（５０−０〜５０−ｍ）を備えている。
【００１６】
検知部５０は、データの書き込み及び消去時にベリファイ動作を実行する。そして、その後の検知動作において、対応するカラムＣｉにつきベリファイにパスしたか否かの情報（パス／フェイル情報）を一時的に保持して、これをノードＣＯＭ（ＣＯＭ０〜ＣＯＭｍ）に出力する。ノードＣＯＭは、対応するカラムＣｉに属する複数のビット線ＢＬに共通に用いられる。各カラムＣｉにつきいずれのビット線ＢＬのパス／フェイル情報をノードＣＯＭに出力するかは、制御信号ＣＨＫ（ＣＨＫ０〜ＣＨＫ７）によって選択される。制御信号ＣＨＫは、検知部５０−０〜５０−ｍ間で共通に用いられる。そして、制御信号ＣＨＫｈ（ｈは０〜７の整数）がアサートされることで、各カラムＣｉに属するビット線ＢＬ（８ｉ＋ｈ）のパス／フェイル情報がノードＣＯＭｉに出力される。
【００１７】
また検知部５０はそれぞれ、信号Ｑ（Ｑ０、Ｑ１、Ｑ２、…）を出力するＡＮＤゲート５１を備えており、これらは直列接続されている。すなわち、検知部５０−ｉのＡＮＤゲート５１は、ノードＣＯＭｉの信号と、前段のＡＮＤゲート５１の出力Ｑ（ｉ−１）とのＡＮＤ演算を行い、その演算結果を信号Ｑｉとして次段のＡＮＤゲート５１に出力する。以下、直列接続されたＡＮＤゲートの集合を、フェイルサーチチェーン５２と呼ぶ。
【００１８】
なお、フェイルサーチチェーン５２の初段のＡＮＤゲート５１は、ノードＣＯＭ０と制御信号ＳＣＡＮＳＴＡＲＴとのＡＮＤ演算を行う。また最終段のＡＮＤゲート５１は、演算結果を信号ＳＣＡＮＥＮＤとして出力する。
【００１９】
以下では、ベリファイにパスしなかったことを、フェイルまたはベリファイ・フェイルと呼ぶ。また検知回路２０の構成及び動作については、後に詳細に説明する。
【００２０】
１．３  デジタルカウンタ回路３０について  
デジタルカウンタ回路３０（以下、単にカウンタ３０と呼ぶ）は、検知動作時において、メモリセルアレイ１０内のフェイルビット数をカウントするデジタルカウンタである。フェイルビット数のカウントに際してカウンタ３０は、信号ＳＣＡＮＥＮＤに基づいてカウント動作を行う。
【００２１】
１．４  制御回路４０について  
制御回路４０は、ＮＡＮＤ型フラッシュメモリ１全体の動作を制御する。より具体的には、データの読み出し、書き込み、及び消去に必要な処理を実行するよう、ＮＡＮＤ型フラッシュメモリ１内の各回路ブロックに命令する。制御回路４０は例えば、検知動作時には、検知回路２０に対して信号ＣＨＫ、ＳＣＡＮＳＴＡＲＴ、及びＳＣＡＮＲＳＴを発行する。
【００２２】
また制御回路４０はＥＣＣ（Error Checking and Correcting）回路を含み、データの読み出し時にはパリティからシンドロームを生成して、エラーを検出・訂正する。またデータの書き込み時には、書き込みデータに基づいてパリティを生成する。更に制御回路４０はロウデコーダを含み、データの読み出し、書き込み、消去時において、必要な電圧をワード線ＷＬ及びセレクトゲート線ＳＧＤ、ＳＧＳに印加する。
【００２３】
２．検知回路２０の詳細について  
次に、上記検知回路２０の詳細について説明する。
【００２４】
２．１  検知部５０の構成について  
まず、検知部５０の構成の詳細につき、図３を用いて説明する。図３はいずれかの検知部５０−ｉ（ｉは０〜ｍの整数）の回路図である。図示するように検知部５０−ｉは、ＡＮＤゲート５１、センスアンプ５３（５３−０〜５３−７）、選択部５４（５４−０〜５４−７）、ラッチ回路５５及び５６、並びにリセット部５７を備える。
【００２５】
センスアンプ５３はビット線ＢＬ毎に設けられる。本実施形態では、各カラムＣは８本のビット線ＢＬを含むため、各検知部５０は８個のセンスアンプ５３−０〜５３−７を含む。そしてセンスアンプ５３−０〜５３−７は、それぞれビット線ＢＬ（８ｉ）〜ＢＬ（８ｉ＋７）に対応している。
【００２６】
センスアンプ５３は、データの読み出し時には、対応するビット線ＢＬに読み出されたデータをセンス・増幅し、これを一時的に保持する。またデータの書き込み時には、プログラムデータを一時的に保持し、これを対応するビット線ＢＬに転送する。またベリファイ時には、対応するビット線ＢＬについてベリファイを行い、そのパス／フェイル情報を一時的に保持し、またこの情報を選択部５４に出力する。
【００２７】
選択部５４はセンスアンプ５３毎に設けられる。すなわち各検知部５０−ｉは、センスアンプ５３−０〜５３−７にそれぞれ対応する８個の選択部５４−０〜５４−７を備える。選択部５４の各々は、対応するセンスアンプ５３のパス／フェイル情報をノードＣＯＭｉに転送する機能を有する。
【００２８】
すなわち選択部５４の各々は、ｎチャネルＭＯＳトランジスタ６０及び６１を備えている。ＭＯＳトランジスタ６０のドレインはノードＣＯＭｉに接続され、ソースはＭＯＳトランジスタ６１のドレインに接続される。ＭＯＳトランジスタ６１のソースは接地されている。そして、選択部５４−０〜５４−７のＭＯＳトランジスタ６０のゲートには、それぞれセンスアンプ５３−０〜５３−７の出力するパス／フェイル情報が与えられる。更に、選択部５４−０〜５４−７のＭＯＳトランジスタ６１のゲートには、それぞれ信号ＣＨＫ０〜ＣＨＫ７が与えられる。
【００２９】
ラッチ回路５５は、ノードＣＯＭｉに転送されたパス／フェイル情報を保持する。すなわちラッチ回路５５は、インバータ６２、６３、及びｎチャネルＭＯＳトランジスタ６４を備える。インバータ６２は、入力ノードがノードＣＯＭｉに接続され、出力ノードがノードＮＣＯＭｉに接続される。インバータ６３は、入力ノードがノードＮＣＯＭｉに接続され、出力ノードがノードＣＯＭｉに接続される。ＭＯＳトランジスタ６４は、ラッチ回路５５をリセットするためのものであり、ドレインがノードＮＣＯＭｉに接続され、ソースが接地され、ゲートに制御信号ＣＯＭＨが入力される。信号ＣＯＭＨは、例えば検知部５０−０〜５０−ｍ間で共通に使用され、制御回路４０によって与えられる。
【００３０】
ラッチ回路５６は、前段の検知部５０−（ｉ−１）の出力Ｑ（ｉ−１）を保持する。すなわちラッチ回路５６は、インバータ６５、６６、及びｎチャネルＭＯＳトランジスタ６７、６８を備える。インバータ６５は、入力ノードがノードＮＱＬｉに接続され、出力ノードがノードＱＬｉに接続される。インバータ６６は、入力ノードがノードＱＬｉに接続され、出力ノードがノードＮＱＬｉに接続される。ＭＯＳトランジスタ６８は、信号Ｑ（ｉ−１）をラッチ回路５６に格納するように機能し、ドレインがノードＮＱＬｉに接続され、ソースが接地され、ゲートに信号Ｑ（ｉ−１）が入力される。但し、初段の検知部５０−０の場合には、信号Ｑ（ｉ−１）の代わりに信号ＳＣＡＮＳＴＡＲＴが与えられる。ＭＯＳトランジスタ６７は、ラッチ回路５６をリセットするためのものであり、ドレインがノードＱＬｉに接続され、ソースが接地され、ゲートに制御信号ＱＲＳＴが入力される。信号ＱＲＳＴは、例えば検知部５０−０〜５０−ｍ間で共通に使用され、制御回路４０によって与えられる。
【００３１】
リセット部５７は、ノードＣＯＭｉをリセットするために用いられる。すなわちリセット部５７は、ｎチャネルＭＯＳトランジスタ６９及び７０を備える。ＭＯＳトランジスタ６９は、ドレインがノードＮＣＯＭｉに接続され、ソースがＭＯＳトランジスタ７０のドレインに接続され、ゲートがノードＱＬｉに接続される。ＭＯＳトランジスタ７０のソースは接地され、ゲートには制御信号ＳＣＡＮＲＳＴが与えられる。信号ＳＣＡＮＲＳＴは、例えば検知部５０−０〜５０−ｍ間で共通に使用され、制御回路４０によって与えられる。
【００３２】
ＡＮＤゲート５１は、ノードＣＯＭｉにおける信号と、前段の検知部５０−（ｉ−１）のＡＮＤゲート５１の出力とのＡＮＤ演算を行う。そして演算結果を信号Ｑｉとして、次段の検知部５０−（ｉ＋１）へ出力する。前述の通り、（ｍ＋１）個のＡＮＤゲート５１は直列接続され、これをフェイルサーチチェーンと呼ぶ。
【００３３】
２．２  検知部５０の動作について  
次に、上記構成の検知部５０の動作について説明する。以下では、信号ビット線ＢＬ（８ｉ）が選択された場合（ビット線ＢＬ０、ＢＬ８、ＢＬ１６、…ＢＬ（ｋ−７）が選択された場合）における検知部５０−０を例に説明する。
【００３４】
まず、ベリファイにパスした場合につき、図４を用いて説明する。図４は、検知部５０−０の回路図である。
【００３５】
まず、ラッチ回路５５、５６はリセット状態とされ、ノードＣＯＭ０＝“Ｈ”、ノードＱＬ０＝“Ｌ”とされる。その状態で、ビット線ＢＬ０を選択するために、制御回路４０は信号ＣＨＫ０が“Ｈ”レベルとして、選択部５４−０のＭＯＳトランジスタ６１をオン状態とする。制御回路４０は、その他の信号ＣＨＫ１〜ＣＨＫ７は“Ｌ”レベルとして、選択部５４−１〜５４−７のＭＯＳトランジスタ６１をオフ状態とする（図示せず）。
【００３６】
センスアンプ５３−０は、ベリファイにパスした場合、パス／フェイル情報として“Ｌ”レベルを出力する。従って、ＭＯＳトランジスタ６０はオフ状態となる。よって、ノードＣＯＭ０は“Ｈ”レベルを維持する。
【００３７】
そして図４に示すように、信号ＳＣＡＮＳＴＡＲＴが“Ｈ”レベルとされることで、ＡＮＤゲート５１の演算結果は“Ｈ”レベルとなる（Ｑ０＝“Ｈ”）。更に、ラッチ回路５６ではＭＯＳトランジスタ６８がオン状態とされる。従って、ノードＱＬ０は“Ｌ”レベルから“Ｈ”レベルに遷移する。
【００３８】
その他の検知部５０−１〜５０−ｍの動作も同様である。但し、検知部５０−１〜５０−ｍのＡＮＤゲート５１には、信号ＳＣＡＮＳＴＡＲＴの代わりに信号Ｑ（ｉ−１）が入力される。従って、信号Ｑ（ｉ−１）が“Ｈ”レベルであれば、図４と同様に動作する。
【００３９】
他方、信号Ｑ（ｉ−１）が“Ｌ”レベルであれば、ＡＮＤゲート５１の演算結果は、ノードＣＯＭｉの状態に関わらず“Ｌ”レベルとなる（Ｑｉ＝“Ｌ”）。更に、ラッチ回路５６ではＭＯＳトランジスタ６８がオフ状態とされるため、ノードＱＬは“Ｌ”レベルを維持する。
【００４０】
次に、ベリファイにフェイルした場合につき、図５を用いて説明する。図５は、検知部５０−０の回路図である。
【００４１】
図示するように、ベリファイにフェイルした場合、センスアンプ５３−０はパス／フェイル情報として“Ｈ”レベルを出力する。従って、ＭＯＳトランジスタ６０はオン状態となる。よって、ノードＣＯＭ０はＭＯＳトランジスタ６０、６１を介して接地され、“Ｈ”レベルから“Ｌ”レベルに遷移する。
【００４２】
そして図５に示すように、信号ＳＣＡＮＳＴＡＲＴ（二段目以降の検知部５０−１、５０−２…の場合には信号Ｑ（ｉ−１））が“Ｈ”レベルとされても、ノードＣＯＭ０が“Ｌ”レベルであるので、ＡＮＤゲート５１の演算結果は“Ｌ”レベルとなる（Ｑ０＝“Ｌ”）。ラッチ回路５６の動作は図４の場合と同じである。すなわち、信号ＳＣＡＮＳＴＡＲＴが“Ｈ”レベルとされることで、ノードＱＬ０は“Ｈ”レベルとなる。そして二段目以降の検知部５０のラッチ回路５６は、前述の通り信号Ｑ（ｉ−１）に依存する。
【００４３】
２．３  フェイルサーチチェーン５２の動作について  
次に、検知回路２０の備えるフェイルサーチチェーン５２の動作について説明する。
【００４４】
まず、どのカラムにもフェイルビットが無かった場合について図６を用いて説明する。図６は、信号ＣＨＫ０〜ＣＨＫ７のいずれかを“Ｈ”レベルとした際の検知回路２０のブロック図である。
【００４５】
図示するように、この場合には全てのノードＣＯＭが“Ｈ”レベルとなる。従って、信号ＳＣＡＮＳＴＡＲＴを“Ｈ”レベルとすれば、全てのＡＮＤ演算結果が“Ｈ”レベルとなり、信号ＳＣＡＮＥＮＤは“Ｈ”レベルとなる。制御回路４０はこの信号ＳＣＡＮＥＮＤを受信することで、フェイルビットが無いことを把握できる。
【００４６】
次に、いずれかのカラムにフェイルビットがある場合について図７を用いて説明する。図７は検知回路２０のブロック図であり、一例としてカラムＣ１（ビット線ＢＬ８〜ＢＬ１５のいずれか）にフェイルビットがある場合を示している。
【００４７】
図示するように、この場合、信号Ｑ０は“Ｈ”レベルとなるが、フェイルビットのあるカラムＣ１に対応する信号Ｑ１は“Ｌ”レベルとなる。そしてカラムＣ１以降のカラムＣ２〜Ｃｍに対応する検知部５０−２〜５０−ｍの全てにおいて、信号Ｑｉ＝“Ｌ”となり、ＳＣＡＮＥＮＤ＝“Ｌ”となる。制御回路４０は、“Ｌ”レベルとされた信号ＳＣＡＮＥＮＤを受信することで、いずれかのカラムにフェイルビットがあることを把握できる。
【００４８】
以上のようにフェイルサーチチェーン５２は、フェイルビットの有無を示す情報を、信号Ｑとして順次転送する。この際、いずれのカラムにもフェイルビットが無ければ、全てのＡＮＤゲート５１は、“フェイルビット無し”を意味する信号（本例では“Ｈ”レベル）を順次転送する。他方、いずれかのカラムにフェイルビットが存在する場合、そのカラムを境にして、当該カラム以降のＡＮＤゲートは“フェイルビット有り”を意味する信号（本例では“Ｌ”レベル）を順次転送する。つまり、フェイルビットのあるカラムを境界にして、信号Ｑの論理レベル（言い換えれば、信号Ｑの示す意味）が反転する。但し、複数のカラムにフェイルビットがある場合には、この境界となるカラムは、フェイルサーチチェーン５２の最も前段側にある検知部５０に対応するカラムである。つまり、フェイルビットのあるカラムＣｉのうち、ｉが最も小さいカラムである。
【００４９】
３．ＮＡＮＤ型フラッシュメモリ１の書き込み動作について  
次に、本実施形態に係るＮＡＮＤ型フラッシュメモリ１のデータ書き込み動作について説明する。
【００５０】
３．１  プログラムシーケンスについて  
まず、データの書き込み動作の大まかな流れについて、図８を用いて説明する。図８は、ＮＡＮＤ型フラッシュメモリ１のプログラムシーケンスを示すタイミングチャートである。
【００５１】
図示するように、プログラムコマンドが外部から発行されると、ＮＡＮＤ型フラッシュメモリ１はビジー状態となり、プログラムシーケンスがスタートする。まず、プログラム動作が行われることにより、メモリセルトランジスタＭＴに対して１回目のデータプログラムがページ単位で実行される。その後、ベリファイ動作が実行される。ベリファイ動作では、プログラムされたメモリセルトランジスタＭＴに対して内部的に読み出しが行われ、センスアンプ５３には十分にプログラムが行われたかどうかの情報（パス／フェイル情報）が格納される。
【００５２】
ベリファイが終了すると、引き続き検知動作が行われる。検知動作では、ベリファイ動作でセンスアンプ５３に格納されたパス／フェイル情報がノードＣＯＭに読み出され、フェイルビット数がカウントされる。このプログラム、ベリファイ、及び検知の３つの動作を合わせて、以後、プログラム・ピリオドと呼ぶ。
【００５３】
検知動作の結果、フェイルビット数が許容数を超えていれば、制御回路４０は２回目のプログラム・ピリオドを実行し、許容数以下ならばプログラムシーケンスを抜けてレディ状態に戻る。
【００５４】
大容量化・微細化が進む中で、全てのメモリセルトランジスタに十分なプログラムを行うと、プログラム・ピリオドの繰り返し回数は膨大となり、プログラムシーケンスに要する時間が増大する。そこで、本実施形態に係るＮＡＮＤ型フラッシュメモリ１は、疑似パス機能を採用している。すなわち、予め決められた許容数以下のビットエラーならばＥＣＣ技術により救済が可能であるので、例え書き込みが不完全な状態であっても、プログラムシーケンスを終了する。これによりプログラム時間を高速化する。
【００５５】
この疑似パス機能を実現する手段として、ベリファイ動作の結果、フェイルとなったメモリセルトランジスタのビット数をカウントする回路技術が必要となる。この回路が検知回路２０である。
【００５６】
３．２  プログラムシーケンスの詳細について  
次に、上記プログラムシーケンスの詳細について、図９を用いて説明する。図９は、ＮＡＮＤ型フラッシュメモリ１のデータ書き込み動作のフローチャートであり、疑似パス機能を実現するための処理に特に着目したものである。
【００５７】
（ステップＳ１０）  
まず第１のステップＳ１０として、プログラム動作を行われる。プログラム動作は、周知の方法によって実行可能である。
【００５８】
（ステップＳ２０）  
引き続き第２のステップＳ２０として、ベリファイ動作が行われる。ベリファイ動作も、周知の方法によって実行可能である。ベリファイ動作では、プログラムを行ったメモリセルトランジスタＭＴに対して内部的にデータの読み出しが行われる。そして各ビットに対応して設けられたセンスアンプ５３にベリファイ結果（パス／フェイル情報）が格納される。
【００５９】
（ステップＳ３０）  
その後第３のステップＳ３０として、検知動作が行われる。検知動作では、パス／フェイル情報を、センスアンプ５３からノードＣＯＭに転送し、カウンタ３０でフェイルビットの数をカウントし、このカウント数を、予め設定されたビットエラー許容数と比較する。検知動作は以下の通りに実行される。
【００６０】
まず、ラッチ回路５５、５６がリセットされる（ステップＳ３１）。すなわち、例えば制御回路４０が、信号ＣＯＭＨ、ＱＲＳＴをアサート（本例の場合には“Ｈ”レベル）する。その結果、全ての検知部５０においてＭＯＳトランジスタ６４、６７がオン状態とされ、ノードＣＯＭ＝“Ｈ”（ＮＣＯＭ＝“Ｌ”）、ノードＱＬ＝“Ｌ”（ＮＱＬ＝“Ｈ”）とされる。なお、このステップＳ３１の動作は、ステップＳ１０またはＳ２０より先に行われても良いし、これらのステップ同時に行われても良いし、パス／フェイル情報をノードＣＯＭに読み出す前であればいつ行ってもよい。
【００６１】
また、カウンタ３０のカウンタ値ｊがリセットされ（ｊ＝０）、まず信号ＣＨＫ０が選択される（ｈ＝０）（ステップＳ３２）。カウンタ３０のリセット動作も、パス／フェイル情報をノードＣＯＭに読み出す前であればいつ行ってもよい。
【００６２】
次に、センスアンプ５３−ｈ（ここではｈ＝０なのでセンスアンプ５３−０）からノードＣＯＭにパス／フェイル情報が読み出される。すなわち、センスアンプ５３−０〜５３−７は、パス／フェイル情報をＭＯＳトランジスタ６０のゲートに出力する。更に制御回路４０は、ＣＨＫｈ（ここではｈ＝０なのでＣＨＫ０）をアサート（本例では“Ｈ”レベル）として、選択部５４−０のＭＯＳトランジスタ６１をオン状態とする。その結果、ノードＣＯＭの論理レベルは、センスアンプ５３−０のパス／フェイル情報に応じて変化する。具体的には、ベリファイにパスしていればノードＣＯＭは“Ｈ”レベルを維持し、フェイルしていれば“Ｌ”レベルに遷移する（ステップＳ３３）。
【００６３】
次に、制御回路４０は信号ＳＣＡＮＳＴＡＲＴをアサート（本例では“Ｈ”レベル）として、フェイルビット数のカウントを開始する（ステップＳ３４）。
【００６４】
信号ＳＣＡＮＳＴＡＲＴ＝“Ｈ”とした結果、信号ＳＣＡＮＥＮＤ＝“Ｌ”であれば（ステップＳ３５、ＮＯ）、少なくともいずれか１つのカラムにフェイルビットがある、ということになる。
【００６５】
すると制御回路４０は、信号ＳＣＡＮＳＴＡＲＴを“Ｌ”レベルとする（ステップＳ３６）。引き続き制御回路４０は、信号ＳＣＡＮＲＳＴをアサート（本例では“Ｈ”レベル）として、ラッチ回路５５（ノードＣＯＭ）をリセットする（ステップＳ３７）。ここで、ラッチ回路５５がリセットされる検知部５０は、ラッチ回路６５のノードＱＬが初期状態の“Ｌ”レベルから“Ｈ”レベルに遷移しているものだけである。前述の通り、ラッチ回路５６の保持データは、ＭＯＳトランジスタ６８がオン状態とされることで反転される。従って、ステップＳ３４において、“Ｈ”レベルの信号Ｑ（ｉ−１）を受信出来なかった検知部５０では、ＭＯＳトランジスタ６８はオフ状態を維持し、ラッチ回路５６は初期状態を保持し続けるので、この検知部５０ではラッチ回路５５はリセットされない。ラッチ回路５５がリセットされた検知部５０では、ノードＣＯＭは“Ｈ”レベルとなる。
【００６６】
そしてカウンタ３０は、カウンタ値を“＋１”する（ステップＳ３８）。すなわち、ｊ＝ｊ＋１とされる。引き続き制御回路４０は、このフェイルビット数ｊが、予め定められたフェイルビット許容数以下以下であるか否かを判断する（ステップＳ３９）。この許容数とは、例えばＥＣＣによって救済可能な最大ビット数である。
【００６７】
フェイルビット数ｊが許容数以下であれば（ステップＳ３９、ＹＥＳ）、制御回路４０は信号ＳＣＡＮＲＳＴを“Ｌ”レベルとして（ステップＳ４０）、ステップＳ３４に戻る。すなわち、信号ＳＣＡＮＳＴＡＲＴを再び“Ｈ”レベルとして、フェイルビット数のカウントを開始する。なお、２回目以降のカウントでは、その前にカウントされたフェイルビットに対応する検知部５０のノードＣＯＭは、ステップＳ３７で既にリセットされている。従って、２回目以降のカウントでは、この検知部５０のＡＮＤゲート５１は、フェイルビットに対応する検知部５０であるにも関わらず、“Ｈ”レベルを出力する。
【００６８】
ステップＳ３９において、フェイルビット数ｊが許容数を超えていれば（ステップＳ３９、ＮＯ）、制御回路４０は、当該データのプログラム・ピリオドの繰り返し回数（ループ数）が規定回数以内か否かを判断する。規定回数以内であれば（ステップＳ４１、ＮＯ）、制御回路４０はステップＳ１０に戻り、次のプログラム・ピリオドを実行する。つまり、当該データについてのプログラム動作、ベリファイ動作、及び検知動作を繰り返す。
【００６９】
他方、ループ数が規定回数を超えていれば（ステップＳ４１，ＹＥＳ）、プログラム動作は失敗となり、制御回路４０はプログラムシーケンスを終了する。
【００７０】
ステップＳ３５において信号ＳＣＡＮＥＮＤ＝“Ｈ”であった場合（ステップＳ３５、ＹＥＳ）、全てのカラムにおいて、信号ＣＨＫｈによって選択されたビット線ＢＬにはフェイルビットはない、ということになる。
【００７１】
引き続き制御回路４０は、信号ＳＣＡＮＲＳＴを“Ｌ”レベルとし（ステップＳ４２）、引き続き全てのビット線ＢＬについて検知動作を実行したか否かを確認する。つまり、ｈ＝７であるか否かを判定する（ステップＳ４３）。ｈ＝７でなければ（ステップＳ４３、ＮＯ）、制御回路４０はｈ＝ｈ＋１として、ステップＳ３３に戻って再度信号ＣＨＫｈを発行し、ステップＳ３３〜Ｓ４０の動作を繰り返す（ステップＳ４４）。
【００７２】
ステップＳ４３においてｈ＝７であった場合（ステップＳ４３、ＹＥＳ）、これは、各カラムにつき全てのビット線ＢＬの検知動作が終了したことを意味する。従って制御回路４０は、この時点でのカウンタ３０のカウンタ値ｊを総フェイルビット数と見なす（ステップＳ４５）。
【００７３】
引き続き制御回路４０は、このフェイルビット数ｊが、予め定められたフェイルビット許容数未満であるか否かを判断する（ステップＳ４６）。本ステップは、ステップＳ３９と同様の判断処理である。
【００７４】
フェイルビット数ｊが許容数以下であれば（ステップＳ４６、ＹＥＳ）、制御回路４０はデータの書き込みを正常に完了できたと判断して、プログラムシーケンスを終了する。
【００７５】
他方、フェイルビット数ｊが許容数を超えていれば（ステップＳ４６、ＮＯ）、制御回路４０はステップＳ４１の処理に進む。すなわち、当該データのプログラム・ピリオドの繰り返し回数（ループ数）が規定回数以内か否かを判断する。規定回数以内であれば（ステップＳ４５、ＮＯ）、制御回路４０はステップＳ１０に戻り、ループ数が規定回数を超えていれば、プログラム動作は失敗となり、制御回路４０はプログラムシーケンスを終了する。
【００７６】
なお、ステップＳ４６の判断は省略されてもよい。なぜなら、ステップＳ４３の判断がＹＥＳとなってステップＳ４５、Ｓ４６に進んだ時点では、すでにステップＳ３９の処理を経ているはずであり、その際にフェイルビット数が許容数以下である、との判断がなされているはずだからである。従って、ステップＳ４３でｈ＝７と判断された時点で、書き込みは正常に終了したとして、プログラムシーケンスを終了してもよい。
【００７７】
３．３  検知動作の具体例について  
次に、上記検知動作時における検知回路２０及びカウンタ３０の具体例について、図１０乃至図１６を用いて説明する。図１０は検知動作時の各種信号とカウンタ値ｊのタイミングチャートであり、図１１乃至図１６は検知回路２０及びカウンタ回路３０のブロック図である。
【００７８】
なお、以下では説明の簡単化のため、検知回路２０が５つの検知部５０−０〜５０−４を含む場合を例に説明する（ｍ＝４）。また、信号ＣＨＫ０〜ＣＨＫ７のそれぞれを“Ｈ”レベルとした場合の動作はいずれも同様であるので、以下では特に信号ＣＨＫ０＝“Ｈ”とした際の動作に着目し、その際、カラムＣ２（ＢＬ８）及びカラムＣ３（ＢＬ２４）にフェイルビットがある場合を例に説明する。
【００７９】
プログラム及びベリファイの後、制御回路４０はまず信号ＣＯＭＨ及びＱＲＳＴを“Ｈ”レベルとする（ステップＳ３１、図１０の時刻ｔ０以前、図１１）。この結果、図１１に示すように、全ての検知部５０においてノードＣＯＭは“Ｈ”レベルとされ、ノードＱＬは“Ｌ”レベルとなる。
【００８０】
次に制御回路４０は、信号ＣＨＫ０を“Ｈ”レベルとする（ステップＳ３３、図１０の時刻ｔ０、図１２）。その結果、ビット線ＢＬ０、ＢＬ８、ＢＬ１６、ＢＬ２４、及びＢＬ３２のパス／フェイル情報が、ノードＣＯＭ０〜ＣＯＭ４に読み出される。ビット線ＢＬ８及びＢＬ２４にフェイルなので、ノードＣＯＭ１及びＣＯＭ３の論理レベルは、“Ｈ”レベルから“Ｌ”レベルに遷移する。
【００８１】
そして時刻ｔ２において、制御回路４０は信号ＳＣＡＮＳＴＡＲＴを“Ｈ”レベルとする（ステップＳ３４、図１２）。すると、検知部５０−０ではＡＮＤゲート５１の出力信号Ｑ０が“Ｈ”レベルとなり、またＭＯＳトランジスタ６８がオンされるためにノードＱＬ０が“Ｈ”レベルに遷移する。検知部５０−１では、ノードＣＯＭ１が“Ｌ”レベルであるので、ＡＮＤゲート５１の出力Ｑ１は“Ｌ”レベルのままとなる。しかし、Ｑ０が“Ｈ”レベルであるので、ＱＬ１は“Ｈ”レベルに遷移する。信号Ｑ１が“Ｌ”レベルとされたことにより、信号Ｑ２，Ｑ３、及びＳＣＡＮＥＮＤは“Ｌ”レベルのままである（ステップＳ３５、ＮＯ）。つまり、カラムＣ１を境にして、フェイルサーチチェーン５２を伝播する信号が反転する。
【００８２】
その後時刻ｔ３において、制御回路４０は信号ＳＣＡＮＳＴＡＲＴを“Ｌ”レベルに落とす（ステップＳ３６）。そして制御回路４０は、信号ＳＣＡＮＳＴＡＲＴを“Ｌ”レベルとしてから一定の待機時間Δｔの後、時刻ｔ４で信号ＳＣＡＮＲＳＴを“Ｈ”レベルとする（ステップＳ３７、図１３）。この待機時間Δｔは、フェイルサーチチェーン５２内における伝播遅延以上の長さとされる。その結果、図１３に示すように、検知部５０−０及び５０−１では、リセット部５７が導通して、ノードＮＣＯＭ０、ＮＣＯＭ１が接地される。その結果、ノードＣＯＭ１は“Ｌ”レベルから“Ｈ”レベルに反転する。つまり、検知部５０−１のラッチ回路５５の保持データは、“フェイル”から“パス”に変化する。その他の検知部５０−２〜５０−４では、ノードＱＬ２〜ＱＬ４が“Ｌ”レベルであるので、ラッチ回路５５の保持する情報は変化しない。
【００８３】
そしてカウンタ３０は、信号ＳＣＡＮＥＮＤが“Ｌ”レベルであることを受けて、カウントアップする（ｊ＝１、時刻ｔ４、ステップＳ３８）。
【００８４】
その後、制御回路３０は、このカウント数ｊ＝１を許容数と比較し、カウント数ｊが許容数以下であることを受けて（ステップＳ３９、ＹＥＳ）、信号ＳＣＡＮＲＳＴを“Ｌ”レベルに戻して（ステップＳ４０）、再度カウントを開始する。  
すなわち、時刻ｔ５において制御回路４０は、信号ＳＣＡＮＳＴＡＲＴを“Ｈ”レベルとする（ステップＳ３４、図１４）。すると、検知部５０−０ではＡＮＤゲート５１の出力Ｑ０が“Ｈ”レベルとなる。また検知部５０−１においても、時刻ｔ４〜ｔ５でラッチ回路５５がリセットされたため、ＡＮＤゲート５１の出力信号Ｑ１が“Ｈ”レベルとなる。更に検知部５０−２ではＡＮＤゲート５１の出力Ｑ０が“Ｈ”レベルとなり、更にノードＱＬ２が“Ｈ”レベルに遷移する。検知部５０−３では、ノードＣＯＭ３が“Ｌ”レベルであるので、出力Ｑ３は“Ｌ”レベルのままとなる。しかし、出力Ｑ２が“Ｈ”レベルであるので、ノードＱＬ３は“Ｈ”レベルに遷移する。信号Ｑ３が“Ｌ”レベルとされたことにより、信号ＳＣＡＮＥＮＤは“Ｌ”レベルのままである（ステップＳ３５、ＮＯ）。
【００８５】
以上のように、Ｑ０からＱ１へ、Ｑ１からＱ２へと“Ｈ”レベルが順次伝播していく。しかしながらこの際には、ＡＮＤゲート５１における遅延が生じる。前述の待機時間Δｔは、信号Ｑ０の“Ｈ”レベルが、信号ＳＣＡＮＥＮＤにまで伝播するのに要する時間以上とされる。
【００８６】
その後時刻ｔ６において、制御回路４０は信号ＳＣＡＮＳＴＡＲＴを“Ｌ”レベルに落とし（ステップＳ３６）、時刻ｔ７で信号ＳＣＡＮＲＳＴを“Ｈ”レベルとする（ステップＳ３７、図１５）。この結果、図１３で説明したのと同様にして、ノードＣＯＭ３がリセットされる。つまり、検知部５０−３のラッチ回路５５の保持データは、“フェイル”から“パス”に変化する。
【００８７】
そしてカウンタ回路３０は、信号ＳＣＡＮＥＮＤが“Ｌ”レベルであることを受けて、カウントアップする（ｊ＝２、時刻ｔ７、ステップＳ３８）。
【００８８】
その後、制御回路３０は、このカウント数ｊ＝２を許容数と比較し、カウント数ｊが許容数以下であることを受けて（ステップＳ３９、ＹＥＳ）、信号ＳＣＡＮＲＳＴを“Ｌ”レベルに戻して（ステップＳ４０）、再度カウントを開始する。  
すなわち、時刻ｔ８において制御回路４０は、信号ＳＣＡＮＳＴＡＲＴを“Ｈ”レベルとする（ステップＳ３４、図１６）。すると、全てのＡＮＤゲート５１の演算結果が“Ｈ”レベルとなり、信号ＳＣＡＮＥＮＤ＝“Ｈ”となる（ステップＳ３５、ＹＥＳ）。
【００８９】
以上の処理は、信号ＣＨＫ０を選択して（ｈ＝０）行ったものであるので（ステップＳ４３、ＮＯ）、次に制御回路４０はｈ＝１として（ステップＳ４４）、ステップＳ３３に戻り、同様の処理を繰り返す。より具体的には、信号ＣＨＫ１を“Ｈ”レベルとすることにより、ビット線ＢＬ１、ＢＬ９、ＢＬ１７、ＢＬ２５、及びＢＬ３３につき、図１０の時刻ｔ０〜ｔ１０の処理を繰り返す。この繰り返しの間、カウンタ値ｊはリセットされることなく、フェイルビット数を累積する。これを、以下、信号ＣＨＫ１からＣＨＫ７まで繰り返す。すなわち、図１０の時刻ｔ１〜ｔ１０の処理が全８回行われる。
【００９０】
以上の過程で、プログラムループ回数が規定回数を超えることなく、全カラムについてのフェイルビット数が許容数以下となれば、その時点で制御回路４０は、プログラムは成功したものとしてシーケンスを終了する。
【００９１】
４．本実施形態の効果  
以上のように、本実施形態に係る構成であると、検知回路２０によるフェイルビットのカウント精度を向上できる。本効果につき、以下詳細に説明する。
【００９２】
ＮＡＮＤ型フラッシュメモリには、メモリセルに対して書き込み及び消去が完了したかどうかを検知する検知回路が搭載されている。そして、このような検知回路としては、例えばオペアンプを用いた電流検知方式のフェイルビットカウント回路（比較例１）が考えられる。
【００９３】
図１７は、電流検知方式によるフェイルビットカウント回路の回路図である。図示するように、本構成では、オペアンプの一方の入力端子にノードＬＳＥＮが接続され、他方の入力端子に基準電流源が接続される。基準電流源はＤ／ＡコンバータＤＡＣによってＩREF×(ｎ＋０．５)の電流が流れる（ｎ＝０、１、２、…）。またノードＧＣＯＭＭＯＮによりカレントミラー回路が構成され、このカレントミラー回路は、電流ＩREFを流す。ノードＬＳＥＮには、パス／フェイル情報が与えられるノードＮＣＯＭに応じて電流が流れ、更にノードＬＳＥＮは、全カラムにつき共通に接続されている。
【００９４】
フェイルビット数をカウントする場合、まず例えば信号ＣＨＫ０を“Ｈ”レベルとする。すると、ノードＬＳＥＮには、信号ＣＨＫ０によって選ばれるビット線のうち、フェイルビットの数ｎに応じた電流ＩREF×ｎが流れる。そして、基準電流源の電流値をＩREF×０．５、ＩREF×１．５、ＩREF×２．５、…と増加していくと、ＩREF×(ｎ+０．５)とした時に、オペアンプの出力信号ＨＲが反転する。よって、信号ＨＲが反転したときのＤＡＣの値を参照することで、フェイルビット数がわかる。これを信号ＣＨＫ０からＣＨＫ７まで繰り返すことで、全ビット線のフェイルビット数を数えることができる。
【００９５】
しかし、本方式であると、フェイルビットのカウントは、ノードＬＳＥＮに流れる電流の検知により行われる。つまり、アナログ回路によってフェイルビット数をカウントする。従って、ノイズや素子のばらつきの影響を大きく受ける。そのため、検出精度が十分では無い恐れがある。
【００９６】
更に、ノイズの影響を受けやすいため、ＮＡＮＤ型フラッシュメモリのコアへのアクセス（読み出し、書き込み、消去等）と同時にこの回路を動作させることは困難である。なぜなら、コアへのアクセス時に生じるノイズによって、本回路の動作精度が低下するからである。従って、メモリセルアレイへのアクセスとは別に、フェイルビット検知専用の時間を設ける必要があり、ＮＡＮＤ型フラッシュメモリの動作速度が低下する。
【００９７】
また、図１７はカレントミラー回路を使用している。しかし、ノードＧＣＯＭＭＯＮを共通にするトランジスタは、コア内に広く且つ多数存在し、トランジスタ間で大きなばらつきがある。よって、検知可能なビット数は、このトランジスタのばらつき（サイズ、性能）によって制限される。
【００９８】
以上のことから、検知可能なビット数を増加させるには、トランジスタのゲート面積を増大させることでばらつきを抑制するか、またはゲート電圧を上げる（ＩREFを増加する、ゲート長を大きくする等）等、しなければならない。しかし、いずれの場合も面積が増加し、そして電流消費量が増大する。言い換えると、図１７のような方式では、決められた面積、消費電流の中では検知精度に限界がある。
【００９９】
しかしながら、本実施形態に係る半導体記憶装置であると、上記の問題点を解決できる。すなわち、まず本実施形態に係る構成であると、フェイルビットの有無は、信号ＳＣＡＮＥＮＤの論理レベル（“Ｈ”レベルまたは“Ｌ”レベル）で与えられる。そして、デジタルカウンタ３０が、信号ＳＣＡＮＥＮＤが“フェイルビット有り”なる旨を示す論理レベルであった回数をカウントする。従って、ノイズや素子のばらつきの影響を受け難く、検出精度を向上出来る。
【０１００】
また、ノイズ耐性に優れているため、検知回路２０は、コアへのアクセスと同時に動作することが出来る。すなわち、データ読み出し動作と検知動作を同時実行したり、またはデータのプログラム動作と検知動作を同時実行したりすることが可能となる。その結果、本実施形態は、データのブログラム動作と検知動作を別々に実行する場合と比較して、高速な検知動作が可能となる。
【０１０１】
更に、アナログ回路のように、動作精度向上のために素子サイズや動作電圧を大きくする必要も無い。つまり、面積増加及びチップ面積増加を抑制しつつ、上記の検出精度向上及び検出速度向上の効果が得られる。
【０１０２】
［第２実施形態］
次に、第２実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第１の実施形態において、リダンダンシ機能を有するものである。以下では、第１実施形態と異なる点についてのみ説明する。
【０１０３】
１．ＮＡＮＤ型フラッシュメモリ１の構成について  
まず、本実施形態に係るＮＡＮＤ型フラッシュメモリ１の構成について説明する。本実施形態に係る構成では、メモリセルアレイ１０におけるいずれかのカラムが冗長カラムとして用意される。そして、いずれかのカラムが不良となった場合、制御回路４０は、この不良カラムを冗長カラムで置き換える。これによって、不良カラムを救済する。
【０１０４】
次に検知回路２０について説明する。図１８は、本実施形態に係る検知部５０−ｉ（前述の通りｉは０〜ｍの整数）の回路図である。図示するように検知部５０−ｉは、第１実施形態で説明した図３の構成において、ラッチ回路５８及びスイッチ部５９を更に備えている。
【０１０５】
ラッチ回路５８は、対応するカラムが不良カラム等、検知対象から外すべきカラム（アイソレーションすべきカラム）か否かの情報を保持する。ラッチ回路５８は、インバータ７１、７２及びｎチャネルＭＯＳトランジスタ７３〜７５を備えている。
【０１０６】
インバータ７１は、出力ノードがノードＩＳＯｉに接続され、入力ノードがノードＮＩＳＯｉ（ｉは０〜ｍの整数）に接続される。インバータ７２は、入力ノードがノードＩＳＯｉに接続され、出力ノードがノードＮＩＳＯｉに接続される。ＭＯＳトランジスタ７３は、ラッチ回路５８をリセットするためのものであり、ドレインがノードＩＳＯｉに接続され、ソースが接地され、ゲートに制御信号ＦＣＲＳＴが入力される。信号ＦＣＲＳＴは、例えば検知部５０−０〜５０−ｍ間で共通に使用され、制御回路４０によって与えられる。ＭＯＳトランジスタ７４は、カラムを選択するためのものであり、ドレインがノードＩＳＯｉに接続され、ソースがＭＯＳトランジスタ７５のドレインに接続され、ゲートに制御信号ＣＳＬｉが入力される。信号ＣＳＬｉは、カラムＣｉ毎に例えば制御回路４０によって与えられる。ＭＯＳトランジスタ７５は、ラッチ回路５８に、当該カラムがアイソレーション対象である旨の情報を書き込むためのものであり、ソースが接地され、ゲートに制御信号ＦＣＥＮが入力される。この情報を以下、アイソレーション情報と呼ぶ。信号ＦＣＥＮは、例えば検知部５０−０〜５０−ｍ間で共通に使用され、制御回路４０によって与えられる。
【０１０７】
次にスイッチ部５９について説明する。図１８に示すようにスイッチ部５９は、ｎチャネルＭＯＳトランジスタ７６、７８及びｐチャネルＭＯＳトランジスタ７７、７９を備えている。
【０１０８】
ＭＯＳトランジスタ７６、７７は、ソース及びドレインの一方がＡＮＤゲート５１の出力ノードに接続され、他方から信号Ｑｉを出力する。そしてＭＯＳトランジスタ７６、７７のゲートは、それぞれノードＮＩＳＯｉ及びＩＳＯｉに接続される。ＭＯＳトランジスタ７８、７９は、ソース及びドレインの一方にＱ（ｉ−１）が入力され（検知部５０−０の場合には信号ＳＣＡＮＳＴＡＲＴ）、他方から信号Ｑｉを出力する。そしてＭＯＳトランジスタ７８、７９のゲートは、それぞれノードＩＳＯｉ及びＮＩＳＯｉに接続される。
【０１０９】
２．検知回路２０の動作について  
次に、上記構成の検知回路２０の動作について、引き続き図１８を参照しつつ説明する。
【０１１０】
ラッチ回路５８は、初期状態ではＩＳＯｉ＝“Ｌ”、ＮＩＳＯｉ＝“Ｈ”レベルとされる。この初期状態は、対応するカラムＣｉがアイソレーション対象でないことを意味し、この情報は信号ＦＣＲＳＴを“Ｈ”レベルとしてＭＯＳトランジスタ７３をオンさせることでラッチ回路５８に書き込まれる。
【０１１１】
いずれかのカラムがアイソレーション対象の場合、制御回路４０はラッチ回路５８にその旨の情報（不良情報）を書き込む。制御回路４０は、信号ＦＣＥＮを“Ｈ”レベルとする。これにより、全検知部５０のＭＯＳトランジスタ７５がオン状態となる。更に制御回路４０は、アイソレーション対象のカラムに対応する検知部５０−ｉの信号ＣＳＬｉを“Ｈ”レベルとする。すると、この検知部５０−ｉではＭＯＳトランジスタ７４、７５がオン状態となり、ノードＮＩＳＯｉが“Ｌ”レベル、ＩＳＯｉが“Ｈ”レベルとなる。これにより、ラッチ回路５８にアイソレーション情報が書き込まれる。より具体的には、カラムＣ１がアイソレーション対象であったとすれば、信号ＣＳＬ１が“Ｈ”レベルとされる。これにより、ＩＳＯ１が“Ｈ”レベル、ＮＩＳＯ１が“Ｌ”レベルとされる。
【０１１２】
その結果、アイソレーション情報が書き込まれた検知部５０−ｉでは、スイッチ部５９のＭＯＳトランジスタ７６、７７がオフ状態とされ、ＭＯＳトランジスタ７８、７９がオン状態となる。つまり、この検知部５０−ｉでは、前段の検知部５０−（ｉ−１）から受信した信号Ｑ（ｉ−１）が、そのまま信号Ｑｉとして次段の検知部５０−（ｉ＋１）に出力される。すなわち、検知部５０−ｉのＡＮＤゲート５１がバイパスされる。これにより、アイソレーション対象のカラムに対応する検知部５０の検知結果を、フェイルサーチチェーン５２においてスキップすることが出来る。
【０１１３】
なお、アイソレーション対象でないカラムに対応する検知部５０では、ＭＯＳトランジスタ７６、７７がオン状態となり、ＭＯＳトランジスタ７８、７９がオフ状態であるので、第１実施形態と同様の動作となる。
【０１１４】
３．本実施形態の効果  
以上のように、本実施形態に係る構成であると、第１実施形態と同様に、検知回路２０によるフェイルビットのカウント精度を向上できる。また、本実施形態に係る構成であると、ラッチ回路５８内の情報に応じてＡＮＤゲート５１をバイパスさせることが出来る。つまり、不良カラム等の検知の対象から外したいカラムを、フェイルビットカウントの対象から外すことができる。従って、リダンダンシ機能を有するＮＡＮＤ型フラッシュメモリであっても、第１実施形態の構成を適用することが可能となる。
【０１１５】
［第３実施形態］  
次に、第３実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第２実施形態において、テスト用の回路を更に設けたものである。以下では、第２実施形態と異なる点についてのみ説明する。
【０１１６】
１．検知部５０の構成について  
図１９は、本実施形態に係る検知部５０−ｉの回路図である。図示するように検知部５０−ｉは、第２実施形態で説明した図１８の構成において、テスト回路８０を更に備えている。
【０１１７】
テスト回路８０は、ｎチャネルＭＯＳトランジスタ８１〜８３を備えている。ＭＯＳトランジスタ８１は、ドレインがＮＡＮＤ型フラッシュメモリ１の入出力部（Ｉ／Ｏ）に接続され、ゲートに、対応するＡＮＤゲート５１の出力ノードＡＮＤＯｉ（ｉは０〜ｍの整数）が接続される。ＭＯＳトランジスタ８２は、ドレインが入出力部に接続され、ゲートに、対応するノードＮＣＯＭｉが接続される。ＭＯＳトランジスタ８３は、ドレインがＭＯＳトランジスタ８１、８２のソースに接続され、ソースが接地され、ゲートに制御信号ＣＯＭＴＥＳＴが入力される。信号ＣＯＭＴＥＳＴは、検知部５０をテストする際にアサート（“Ｈ”レベル）される信号であり、例えば制御回路４０によって与えられる。
【０１１８】
２．検知部５０のテスト動作について  
次に、検知部５０のテスト動作について説明する。テスト動作時において制御回路４０は、テスト信号ＣＯＭＴＥＳＴをアサートして、ＭＯＳトランジスタ８３をオン状態とする。すると、ノードＣＯＭｉ及びノードＡＮＤＯｉの論理レベルに応じて、入出力部に“Ｈ”レベルまたは“Ｌ”レベルが出力される。
【０１１９】
このテスト動作の具体的な一例について以下説明する。例えばノードＣＯＭ０が“Ｌ”レベルに固定される不良が発生したと仮定する。この際、制御回路４０はまず信号ＣＯＭＨを“Ｈ”レベルとしてラッチ回路５５をリセットする。その後、信号ＣＯＭＨを“Ｌ”レベルに戻す。
【０１２０】
正常ならば、ノードＮＣＯＭ０は“Ｌ”レベルとなり、ノードＣＯＭ０は“Ｈ”レベルとなるはずである。そして信号ＳＣＡＮＳＴＡＲＴが“Ｌ”であるから、ノードＡＮＤＯ０も“Ｌ”レベルとなる。従って、ＭＯＳトランジスタ８１、８２はオフ状態となり、入出力部には“Ｈ”レベルが出力されるはずである。
【０１２１】
しかし、ノードＣＯＭ０が“Ｌ”レベルに固定されていると、ノードＮＣＯＭ０はインバータ６２によって“Ｈ”レベルとされる。これによりＭＯＳトランジスタ８２がオン状態となり、入出力部では“Ｌ”レベルが観測される。
【０１２２】
３．本実施形態の効果  
以上のように、本実施形態に係る構成であると、種々のノードの様々な不良を見つけることが出来る。
【０１２３】
通常、検知部５０のノードＣＯＭやノードＡＮＤＯの信号は、外部からは観測することができない。しかし、本実施形態のようにテスト回路８０を設けることによって、これらの状態を外部に取り出すことが出来る。そして、ＢＩＳＴ（built-In Selt Test）回路等にこれらの状態を出力して、不良を検出したり、不良カラムを特定したりすることが可能となる。
【０１２４】
なお、上記実施形態ではノードＣＯＭが“Ｌ”レベルに固定される不良を例に説明したが、ノードＣＯＭが“Ｈ”レベルに固定される不良や、ノードＱＬが“Ｈ”または“Ｌ”レベルに固定される不良も同様にして見つけることが出来る。
【０１２５】
また、テスト回路８０にはノードＮＣＯＭ及びノードＡＮＤＯの信号が入力される場合を例に説明したが、その他のノードの信号が入力されても良い。テスト回路８０に入力する信号は、検出したい不良にあわせて適宜選択すればよい。
【０１２６】
［第４実施形態］  
次に、第４実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第３実施形態において、ＡＮＤゲート５１を３入力のＡＮＤゲートに置き換えたものである。以下では、第３実施形態と異なる点についてのみ説明する。
【０１２７】
１．検知部５０の構成について  
図２０は、本実施形態に係る検知部５０−ｉの回路図である。図示するように検知部５０−ｉは、第３実施形態で説明した図１９の構成において、ＡＮＤゲート５１を３入力ＡＮＤゲートに置き換え、新たに信号ＳＣＡＮＳＴＡＲＴを入力したものである。つまり、検知部５０−ｉのＡＮＤゲートは、ノードＣＯＭｉの論理レベルと、信号Ｑ（ｉ−１）と、信号ＳＣＡＮＳＴＡＲＴとのＡＮＤ演算を行う。
【０１２８】
なお、初段の検知部５０−０は、第３実施形態と同様に２入力ＡＮＤゲートで良く、ノードＣＯＭ０の論理レベルと、信号ＳＣＡＮＳＴＡＲＴとのＡＮＤ演算を行う。
【０１２９】
２．検知回路２０の動作について  
次に、検知回路２０の動作について図２１を用いて説明する。図２１は、検知動作時における各種信号のタイミングチャートであり、第１実施形態で説明した図１０のケースに相当する。
【０１３０】
図中の時刻ｔ５やｔ７に示すように、信号Ｑ０〜Ｑ３及びＳＣＡＮＥＮＤは、“Ｌ”レベルから“Ｈ”レベルへの立ち上がり時には遅延があるが、立ち下がり時に遅延はほとんどない。すなわち、信号ＳＣＡＮＳＴＡＲＴが立ち下がるとほぼ同時に、信号Ｑ０〜Ｑ３及びＳＣＡＮＥＮＤも立ち下がる。これは、これらの信号を生成するためのＡＮＤ演算に、信号ＳＣＡＮＳＴＡＲＴが入力の一つとして用いられているからである。
【０１３１】
３．本実施形態の効果  
以上のように、本実施形態に係る構成であると、信号Ｑ０〜Ｑ３及びＳＣＡＮＥＮＤの立ち下がりタイミングを、信号ＳＣＡＮＳＴＡＲＴの立ち下がりとほぼ同時にすることができる。
【０１３２】
そのため、信号ＳＣＡＮＲＳＴをアサートするための待機時間Δｔ（図１０参照）が不要となる。すなわち、信号ＳＣＡＮＳＴＡＲＴをネゲート（“Ｌ”レベル）すると同時に、信号ＳＣＡＮＲＳＴをアサートでき（図２１の時刻ｔ３、ｔ５参照）、また信号ＣＯＭＨをアサート出来る（図２１の時刻ｔ７参照）。従って、ＮＡＮＤ型フラッシュメモリ１の動作速度を向上出来る。
【０１３３】
なお、信号Ｑの立ち下がりを待ってから信号ＳＣＡＮＲＳＴをアサートする理由は、同一カラム内で複数のノードＣＯＭがリセットされることを防止するためである。つまり、例えばＱｉが立ち下がる前に信号ＳＣＡＮＲＳＴをアサートした場合、ノードＣＯＭｉをリセットした瞬間、Ｑ（ｉ＋１）が“Ｈ”レベルとなる。すると、もしノードＣＯＭ（ｉ＋１）がフェイル（“Ｌ”レベル）であったとすれば、このノードＣＯＭ（ｉ＋１）も同時にリセットされてしまい、フェイルビットを正しくカウントすることが困難となる。
【０１３４】
そのため第１実施形態では、ゲート遅延による待機時間を待ってから信号ＳＣＡＮＲＳＴをアサートする。しかし本実施形態によれば、信号ＳＣＡＮＳＴＡＲＴにより強制的に信号Ｑを“Ｌ”レベルとするので、待機時間を待つ必要なく、正しいカウント動作が可能となる。
【０１３５】
本実施形態は、特に電源電圧の低い半導体装置において効果的である。
【０１３６】
［第５実施形態］  
次に、第５実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第４実施形態において、フェイルサーチチェーン５２を、ＥＣＣ単位に分割したものである。以下では、第４実施形態と異なる点についてのみ説明する。
【０１３７】
１．ＮＡＮＤ型フラッシュメモリ１の構成について  
まず、本実施形態に係るＮＡＮＤ型フラッシュメモリ１の構成について、図２２を用いて説明する。図２２は、ＮＡＮＤ型フラッシュメモリ１のブロック図である。
【０１３８】
図示するように、本実施形態に係るＮＡＮＤ型フラッシュメモリ１は、図１を用いて説明した構成において、検知回路２０とカウンタ３０を複数設けたものである。
【０１３９】
また本実施形態に係る制御回路４０は、ＥＣＣ処理を実行するＥＣＣ部４１を備えている。ＥＣＣ部４１は、例えば５１２バイト単位でＥＣＣ処理を実行する。もちろん、この単位は一例に過ぎず、任意のデータサイズを単位としてＥＣＣ処理を実行して良い。
【０１４０】
各検知回路２０は、ＥＣＣの処理単位、すなわち５１２バイト単位で設けられている。すなわち、カラムＣ０〜Ｃ５１１につき１つの検知回路２０が設けられ、カラムＣ５１２〜Ｃ１０２３につき１つの検知回路２０が設けられ、カラムＣ（ｍ−５１１）〜Ｃｍにつき１つの検知回路２０が設けられている。
【０１４１】
また各検知回路２０は、関連付けられた５１２本のカラムから読み出されたデータ、またはこの５１２本のカラムに書き込むべきデータを一時的に保持するバッファ回路９０を備えている（これらの集合が、１ページサイズのページバッファとなる）。
【０１４２】
カウンタ３０も、各検知回路２０に対応して設けられ、対応付けられた検知回路２０の信号ＳＣＡＮＥＮＤに応じて、フェイルビットのカウントを実行する。
【０１４３】
２．ＮＡＮＤ型フラッシュメモリ１の動作について  
検知動作において各検知回路２０は、関連づけられた５１２本のカラムにつき、第１乃至第４実施形態で説明した動作を実行し、対応するカウンタ３０でフェイルビット数をカウントする。そして制御回路４０は、各カウンタ３０のフェイルビット数を足しあわせることで、全カラムに存在するフェイルビット数を把握する。
【０１４４】
また制御回路４０は、データ読み出し時には、各検知回路２０のバッファ９０に読み出されたデータ単位でＥＣＣ処理を行う。すなわち、ある検知回路２０のバッファ９０に読み出されたカラムＣ０〜Ｃ５１１についてのデータをひとまとまりとしてＥＣＣ処理を行い、また別の検知回路２０のバッファ９０に読み出されたカラムＣ５１２〜Ｃ１０２３についてのデータをひとまとまりとしてＥＣＣ処理を行う。
【０１４５】
従って、第１実施形態で説明した図９のステップＳ４４において許容数と比較されるフェイルビット数は、当該カラムについてのＥＣＣ処理で救済可能な不良ビット数と同等か、それ以下である。例えばカラムＣ０〜Ｃ５１１に着目した場合、この５１２本のカラムについてＥＣＣ処理をした際に救済可能な不良ビット数であり、全カラムＣ０〜Ｃｍについて救済可能な不良ビット数では無い。
【０１４６】
データの書き込み時も同様である。すなわち制御回路４０は、外部から入力されたデータを５１２バイト単位でＥＣＣ処理し、そのデータを各バッファ９０に格納する。
【０１４７】
なお、本実施形態でのデータ単位は、ＥＣＣ処理において何らかの形でひとまとまりのデータとして扱われる単位であれば特に限定されない。例えばデータの読み出し時において、カラムＣ０〜Ｃ５１１の５１２バイトのうち、例えば４９６バイトが正味のデータで、残りの１６バイトがパリティ（正味のデータから生成されるデータ）であっても良い。または、カラムＣ０〜Ｃ５１１の５１２バイトが全て正味のデータであり、この正味のデータをＥＣＣ処理するために必要なパリティは、別のカラム（例えばＣ（ｍ−５１１）〜Ｃｍ）から読み出される場合であっても良い。書き込み時も同様である。
【０１４８】
３．本実施形態の効果  
以上のように、本実施形態に係る構成であると、フェイルサーチチェーン５２を複数に分割している。そして、これらのフェイルサーチチェーン５２は独立して動作可能である。従って、１つのフェイルサーチチェーン５２の長さを第１乃至第４実施形態に比べて短くでき、且つ、複数のフェイルサーチチェーン５２を同時に実行することが出来る。その結果、検知動作時間を飛躍的に短縮出来る。
【０１４９】
更に本実施形態であると、ＥＣＣ処理のためのデータ転送は、制御回路４０と各検知回路２０との１対１対応である。つまり、制御回路４０は、ある検知回路２０のバッファ回路９０から転送されたデータを単位としてＥＣＣ処理をすれば良く、当該データのＥＣＣ処理のためにその他の検知回路２０からのデータ転送を必要としない。よって、ページバッファとＥＣＣ部４１との間でデータをＥＣＣ処理単位で転送できる場合、データ転送がより簡便となる。例えパリティを別の検知回路２０のバッファ９０から読み出すとしても、正味のデータは検知回路単位での転送となるため、データ転送は煩雑とはならない。
【０１５０】
また、ＥＣＣ処理のデータ単位と検知回路２０は、必ずしも１対１対応でなくても良い。例えば、検知回路２０に対応づけられたカラム数は、ＥＣＣ処理のデータ単位より小さくてもよく、例えばカラム数は、ＥＣＣ処理のデータ単位の１／２、１／３、あるいは１／４等であっても良い。この場合であっても、フェイルサーチチェーンを分割することにより、各チェーン内のゲートの数を減らすことができ、高速化の効果が得られる。また、各検知回路２０に対応づけられるカラム数を、ＥＣＣ処理のデータ単位の整数分の１倍とすることで、やはりデータの転送を簡便に出来る。
【０１５１】
［変形例等］  
以上のように、本実施形態に係る半導体記憶装置は、複数のメモリセルＭＴと、論理ゲートチェーン５２と、カウンタ３０を備える。メモリセルＭＴは、いずれかのカラムに関連付けられ、データ保持可能である。論理ゲートチェーン５２は、いずれかのカラムに対応付けられ、且つ対応付けられたカラムにおけるベリファイ・フェイルの有無を示す論理レベルを次段に出力するように直列接続された複数の論理ゲート５１を含む。カウンタ３０は、直列接続の最終段の論理ゲートによる、ベリファイ・フェイルがあることを示す論理レベルの出力回数をカウントする。論理ゲートチェーン５２は、各々の論理ゲート５１の出力する論理レベルの示す内容が、ベリファイ・フェイルのあるカラムに対応する論理ゲート５１を境界にして反転するように構成される。
【０１５２】
本構成により、ベリファイ・フェイル数を精度良くカウント出来る。なお、上記実施形態は種々の変形が可能である。例えば、上記実施形態では、直列接続されたＡＮＤゲートによりフェイルサーチチェーン５２が形成される場合について説明した。しかし、フェイルサーチチェーン５２を構成する論理ゲートはＡＮＤゲートに限らず、ＮＡＮＤゲート、ＯＲゲート、ＮＯＲゲート等の他の論理ゲートを含んでも良いし、複数の種類の論理ゲートの組み合わせであっても良い。
【０１５３】
また上記実施形態では、フェイルサーチチェーン５２の信号Ｑは、“Ｈ”レベルである際に“フェイル無し”を意味し、“Ｌ”レベルである際に“フェイル有り”を意味する。しかし、この関係は逆であっても良い。更には、あるカラムでは“Ｈ”レベルが“フェイル無し”を意味し、別のカラムでは“Ｌ”レベルが“フェイル無し”を意味するような場合であってもよい。
【０１５４】
すなわち、フェイルサーチチェーン５２は、各カラムに対応した論理ゲートが直列接続され、その出力が、最もカラムアドレスの小さいフェイルで反転するような構成であれば良い。ここで「反転」なる意味は、単に“Ｈ”から“Ｌ”、または“Ｌ”から“Ｈ”という意味では無く、その信号が指し示す内容（フェイルの有無）が反転する、という意味である。
【０１５５】
また、上記実施形態では信号ＣＨＫが１つずつアサートされる場合を例に説明した。しかし、例えば２つ以上の信号ＣＨＫがアサートされる場合であっても良い。例えばフェイルビット数では無く、フェイルカラム数をカウントしたければ、信号ＣＨＫ０〜ＣＨＫ７の全てを同時にアサートすれば良い。
【０１５６】
更に、上記の図１０及び図２１では、信号ＳＣＡＮＲＳＴがアサートされるタイミングで、カウンタ３０がカウントアップする場合を例に説明したが、カウントアップはこのタイミングに限られるものではない。すなわちカウンタ３０は、信号ＳＣＡＮＥＮＤを監視し、これによりフェイルが有ると判断した時点であれば、カウントアップするタイミングは何時でも良い。その一例が、信号ＳＣＡＮＲＳＴがアサートされたタイミングである。あるいは、信号ＳＣＡＮＳＴＡＲＴがアサートされたタイミングであっても良い（図１０の時刻ｔ５、ｔ８）。例えばカウンタ３０は、信号ＳＣＡＮＥＮＤが“Ｌ”レベルのままの状態で信号ＳＣＡＮＲＳＴまたはＳＣＡＮＳＴＡＲＴを受信することに応答してカウントアップしても良い。もちろん、カウントアップに限らずカウントダウンする場合であっても良い。
【０１５７】
また、スイッチ部５９やテスト回路８０は必ずしも検知回路２０の一部である必要はなく、検知回路２０外部にあっても良い。
【０１５８】
更に、各実施形態は独立して実施可能である。すなわち、第３実施形態は第２実施形態を前提として説明したが、図１９においてラッチ回路５８及びスイッチ部５９が無い場合であってもよい。また第４実施形態は第３実施形態を前提として説明したが、図２０においてラッチ回路５８及びスイッチ部５９、並びにテスト回路８０の少なくとも一方が無い場合であっても良い。
【０１５９】
更に上記実施形態では、データの書き込み動作時における検知動作を例に説明した。しかし、同様の動作がデータの消去時にも適用出来る。例えばデータの消去後、メモリセルトランジスタＭＴの閾値が十分に低下しているかを確認するため、消去ベリファイを行う。この後の検知動作にも、上記実施形態が適用出来る。更に、消去の後、書き込み（weak programまたはsoft programとも呼ばれる）を行って、メモリセルトランジスタの閾値を適切なレンジ内に設定する方法も知られている。そしてこの書き込みの後、消去ベリファイを行い、その後検知動作が行われるが、この検知動作にも上記実施形態が適用出来る。そして図１９を用いて説明した検知動作の処理フローは、可能な限り順序を入れ替えることが出来る。
【０１６０】
更に、実施形態のｎチャネルＭＯＳトランジスタとｐチャネルＭＯＳトランジスタは、適宜置換することが可能である。更に上記実施形態はＮＡＮＤ型フラッシュメモリを例に説明したが、例えばＮＯＲ型、ＤＩＮＯＲ型、ＡＮＤ型フラッシュメモリであっても良い。またフラッシュメモリに限らず、磁気抵抗素子をメモリセルに用いた磁気ランダムアクセスメモリ（Magnetic Random Access Memory）や、可変抵抗素子を用いたＲｅＲＡＭ（Resistance Random Access Memory）等、半導体メモリ全般に適用可能である。
【０１６１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１６２】
１…フラッシュメモリ、１０…メモリセルアレイ、１１…ＮＡＮＤセル、２０…検知回路、３０…デジタルカウンタ回路、４０…制御回路、４１…ＥＣＣ部、５０−０〜５０−ｍ…検知部、５１…ＡＮＤゲート、５２…フェイルサーチチェーン、５３−０〜５３−７…センスアンプ、５４−０〜５４−７…センスアンプ、５５、５６、５８…ラッチ回路、５９…スイッチ部、５７…リセット部、６０、６１、６４、６７〜７０、７３〜７９、８１〜８３…ＭＯＳトランジスタ、６２、６３、６５、６６、７１、７２…インバータ、８０…テスト回路、９０…バッファ回路
【図１】
2012203965.tif 000003
【図２】
2012203965.tif 000004
【図３】
2012203965.tif 000005
【図４】
2012203965.tif 000006
【図５】
2012203965.tif 000007
【図６】
2012203965.tif 000008
【図７】
2012203965.tif 000009
【図８】
2012203965.tif 000010
【図９】
2012203965.tif 000011
【図１０】
2012203965.tif 000012
【図１１】
2012203965.tif 000013
【図１２】
2012203965.tif 000014
【図１３】
2012203965.tif 000015
【図１４】
2012203965.tif 000016
【図１５】
2012203965.tif 000017
【図１６】
2012203965.tif 000018
【図１７】
2012203965.tif 000019
【図１８】
2012203965.tif 000020
【図１９】
2012203965.tif 000021
【図２０】
2012203965.tif 000022
【図２１】
2012203965.tif 000023
【図２２】
2012203965.tif 000024