"いずれかのカラムに関連付けられ、データ保持可能な複数のメモリセルと、いずれかの前記カラムに対応付けられ、且つ対応付けられた前記カラムにおけるベリファイフェイルの有無を示す論理レベルを次段に出力するように直列接続された複数の論理ゲートを含む論理ゲートチェーンと、前記直列接続の最終段の前記論理ゲートによる、前記ベリファイフェイルがあることを示す論理レベルの出力回数をカウントするカウンタとを具備し、前記論理ゲートチェーンは、各々の前記論理ゲートの出力する論理レベルの示す内容が、ベリファイフェイルのある前記カラムに対応する前記論理ゲートを境界にして反転することを特徴とする半導体記憶装置。いずれかの前記カラムに対応付けられた第1ラッチ回路と、前記第1ラッチ回路内の情報に基づいて、前段の前記論理ゲートの出力をそのまま次段の前記論理ゲートに転送するスイッチとを更に備えることを特徴とする請求項1記載の半導体記憶装置。いずれかの前記カラムに対応付けられ、対応付けられた前記カラムにおける前記ベリファイフェイルの有無を示す情報を保持する第2ラッチ回路と、いずれかの前記カラムに対応付けられ、対応する前記論理ゲートの出力及び前記第2ラッチ回路の保持する情報の少なくともいずれか一方を、テスト信号に応じて外部へ出力可能なテスト回路とを更に備えることを特徴とする請求項2記載の半導体記憶装置。前記論理ゲートの各々は、対応付けられた前記カラムにおけるベリファイフェイルの有無を示す前記情報と、前段の前記論理ゲートの出力と、ベリファイフェイル数のカウント動作を行う際にアサートされる制御信号とに基づいて論理演算を行うことを特徴とする請求項3記載の半導体記憶装置。前記データについてのECC処理を実行するECC部を更に備え、前記論理ゲートチェーンに対応づけられる前記カラムの数は、前記ECC部におけるECC処理のデータ単位と同じかそれより小さいことを特徴とする請求項4記載の半導体記憶装置。いずれかの前記カラムに対応付けられ、対応付けられた前記カラムにおける前記ベリファイフェイルの有無を示す情報を保持する第2ラッチ回路と、いずれかの前記カラムに対応付けられ、前記境界に位置する前記論理ゲートに対応する前記第2ラッチ回路をリセット可能なリセット命令部とを更に備え、前記論理ゲートは、対応する前記第2ラッチ回路内の前記情報と、前段の前記論理ゲートの出力との論理演算を行うことを特徴とする請求項1または2記載の半導体記憶装置。前記リセット命令部は、対応する前記第2ラッチ回路内の前記情報と、前段の前記論理ゲートの出力とに基づいて、前記第2ラッチ回路をリセットすることを特徴とする請求項6記載の半導体記憶装置。本実施形態は、ベリファイフェイルビット数を精度良くカウント可能な半導体記憶装置を提供する。実施形態の半導体記憶装置は、複数のメモリセルと、論理ゲートチェーンと、カウンタを備える。メモリセルは、いずれかのカラムに関連付けられ、データ保持可能である。論理ゲートチェーンは、いずれかのカラムに対応付けられ、且つ対応付けられたカラムにおけるベリファイフェイルの有無を示す論理レベルを次段に出力するように直列接続された複数の論理ゲートを含む。カウンタは、直列接続の最終段の論理ゲートによる、ベリファイフェイルがあることを示す論理レベルの出力回数をカウントする。論理ゲートチェーンは、各々の論理ゲートの出力する論理レベルの示す内容が、ベリファイフェイルのあるカラムに対応する論理ゲートを境界にして反転するように構成される。以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。[第1実施形態]第1実施形態に係る半導体記憶装置について、NAND型フラッシュメモリを例に挙げて説明する。1.NAND型フラッシュメモリの全体構成について図1は、本実施形態に係るNAND型フラッシュメモリのブロック図である。図示するようにNAND型フラッシュメモリ1は、大まかにはメモリセルアレイ10、検知回路20、デジタルカウンタ回路30、及び制御回路40を備えている。以下、それぞれについて説明する。1.1メモリセルアレイ10についてメモリセルアレイ10は、データを保持可能な複数のメモリセルトランジスタを備えている。図2は、メモリセルアレイ10の回路図である。図示するようにメモリセルアレイ2は、複数のNANDセル11を備えている。NANDセル11の各々は、例えば32個のメモリセルトランジスタMTMT0~MT31と、選択トランジスタST1、ST2とを含んでいる。メモリセルトランジスタMTは、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層例えば浮遊ゲートと、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲートとを有する積層ゲート構造を備えている。なお、メモリセルトランジスタMTの個数は32個に限られず、8個や16個、64個、128個、256個等であってもよく、その数は限定されるものではない。また、電荷蓄積層は絶縁物を材料に用いて形成されても良い。メモリセルトランジスタMTは、隣接するもの同士でソース、ドレインを共有しており、選択トランジスタST1、ST2間にその電流経路が直列接続されるようにして配置されている。直列接続されたメモリセルトランジスタMTの一端側のドレインは選択トランジスタST1のソースに接続され、他端側のソースは選択トランジスタST2のドレインに接続されている。同一行にあるメモリセルトランジスタMTの制御ゲートはワード線WLWL0~WL31のいずれかに共通接続され、同一行にある選択トランジスタST1、ST2のゲートは、それぞれセレクトゲート線SGD、SGSに共通接続されている。更に、選択トランジスタST1のドレインはビット線BLBL0~BLkkは2以上の自然数のいずれかに接続され、選択トランジスタST2のソースはソース線SLに共通接続される。以上の構成において、ワード線WL及びセレクトゲート線SGD、SGSを共通にする複数のNANDセル11によって、1つのブロックと呼ばれる単位が形成される。同一のブロック内のメモリセルトランジスタMTは、一括してデータが消去される。更に、同一のワード線WLに接続された複数のメモリセルトランジスタMTには、一括してデータが書き込まれ、この単位はページと呼ばれる。そして図1に示すように、ビット線BL0から順に、隣接する例えば8本のビット線BLが、1つのカラムという単位を構成する。本実施形態では、m1個のカラムCC0~Cmが、メモリセルアレイ10内に含まれるm1は1以上の自然数。つまりカラムCiiは0~mの整数には、ビット線BL8i~BL8i7が属することとなる。1.2検知回路20について次に検知回路20について説明する。検知回路20は、ベリファイ動作及びフェイルビットの検知動作を行う。図1に示すように、検知回路20は、カラムCiにそれぞれ関連づけられたm1個の検知部5050-0~50-mを備えている。検知部50は、データの書き込み及び消去時にベリファイ動作を実行する。そして、その後の検知動作において、対応するカラムCiにつきベリファイにパスしたか否かの情報パス/フェイル情報を一時的に保持して、これをノードCOMCOM0~COMmに出力する。ノードCOMは、対応するカラムCiに属する複数のビット線BLに共通に用いられる。各カラムCiにつきいずれのビット線BLのパス/フェイル情報をノードCOMに出力するかは、制御信号CHKCHK0~CHK7によって選択される。制御信号CHKは、検知部50-0~50-m間で共通に用いられる。そして、制御信号CHKhhは0~7の整数がアサートされることで、各カラムCiに属するビット線BL8ihのパス/フェイル情報がノードCOMiに出力される。また検知部50はそれぞれ、信号QQ0、Q1、Q2、...を出力するANDゲート51を備えており、これらは直列接続されている。すなわち、検知部50-iのANDゲート51は、ノードCOMiの信号と、前段のANDゲート51の出力Qi-1とのAND演算を行い、その演算結果を信号Qiとして次段のANDゲート51に出力する。以下、直列接続されたANDゲートの集合を、フェイルサーチチェーン52と呼ぶ。なお、フェイルサーチチェーン52の初段のANDゲート51は、ノードCOM0と制御信号SCANSTARTとのAND演算を行う。また最終段のANDゲート51は、演算結果を信号SCANENDとして出力する。以下では、ベリファイにパスしなかったことを、フェイルまたはベリファイフェイルと呼ぶ。また検知回路20の構成及び動作については、後に詳細に説明する。1.3デジタルカウンタ回路30についてデジタルカウンタ回路30以下、単にカウンタ30と呼ぶは、検知動作時において、メモリセルアレイ10内のフェイルビット数をカウントするデジタルカウンタである。フェイルビット数のカウントに際してカウンタ30は、信号SCANENDに基づいてカウント動作を行う。1.4制御回路40について制御回路40は、NAND型フラッシュメモリ1全体の動作を制御する。より具体的には、データの読み出し、書き込み、及び消去に必要な処理を実行するよう、NAND型フラッシュメモリ1内の各回路ブロックに命令する。制御回路40は例えば、検知動作時には、検知回路20に対して信号CHK、SCANSTART、及びSCANRSTを発行する。また制御回路40はECCErrorCheckingandCorrecting回路を含み、データの読み出し時にはパリティからシンドロームを生成して、エラーを検出訂正する。またデータの書き込み時には、書き込みデータに基づいてパリティを生成する。更に制御回路40はロウデコーダを含み、データの読み出し、書き込み、消去時において、必要な電圧をワード線WL及びセレクトゲート線SGD、SGSに印加する。2.検知回路20の詳細について次に、上記検知回路20の詳細について説明する。2.1検知部50の構成についてまず、検知部50の構成の詳細につき、図3を用いて説明する。図3はいずれかの検知部50-iiは0~mの整数の回路図である。図示するように検知部50-iは、ANDゲート51、センスアンプ5353-0~53-7、選択部5454-0~54-7、ラッチ回路55及び56、並びにリセット部57を備える。センスアンプ53はビット線BL毎に設けられる。本実施形態では、各カラムCは8本のビット線BLを含むため、各検知部50は8個のセンスアンプ53-0~53-7を含む。そしてセンスアンプ53-0~53-7は、それぞれビット線BL8i~BL8i7に対応している。センスアンプ53は、データの読み出し時には、対応するビット線BLに読み出されたデータをセンス増幅し、これを一時的に保持する。またデータの書き込み時には、プログラムデータを一時的に保持し、これを対応するビット線BLに転送する。またベリファイ時には、対応するビット線BLについてベリファイを行い、そのパス/フェイル情報を一時的に保持し、またこの情報を選択部54に出力する。選択部54はセンスアンプ53毎に設けられる。すなわち各検知部50-iは、センスアンプ53-0~53-7にそれぞれ対応する8個の選択部54-0~54-7を備える。選択部54の各々は、対応するセンスアンプ53のパス/フェイル情報をノードCOMiに転送する機能を有する。すなわち選択部54の各々は、nチャネルMOSトランジスタ60及び61を備えている。MOSトランジスタ60のドレインはノードCOMiに接続され、ソースはMOSトランジスタ61のドレインに接続される。MOSトランジスタ61のソースは接地されている。そして、選択部54-0~54-7のMOSトランジスタ60のゲートには、それぞれセンスアンプ53-0~53-7の出力するパス/フェイル情報が与えられる。更に、選択部54-0~54-7のMOSトランジスタ61のゲートには、それぞれ信号CHK0~CHK7が与えられる。ラッチ回路55は、ノードCOMiに転送されたパス/フェイル情報を保持する。すなわちラッチ回路55は、インバータ62、63、及びnチャネルMOSトランジスタ64を備える。インバータ62は、入力ノードがノードCOMiに接続され、出力ノードがノードNCOMiに接続される。インバータ63は、入力ノードがノードNCOMiに接続され、出力ノードがノードCOMiに接続される。MOSトランジスタ64は、ラッチ回路55をリセットするためのものであり、ドレインがノードNCOMiに接続され、ソースが接地され、ゲートに制御信号COMHが入力される。信号COMHは、例えば検知部50-0~50-m間で共通に使用され、制御回路40によって与えられる。ラッチ回路56は、前段の検知部50-i-1の出力Qi-1を保持する。すなわちラッチ回路56は、インバータ65、66、及びnチャネルMOSトランジスタ67、68を備える。インバータ65は、入力ノードがノードNQLiに接続され、出力ノードがノードQLiに接続される。インバータ66は、入力ノードがノードQLiに接続され、出力ノードがノードNQLiに接続される。MOSトランジスタ68は、信号Qi-1をラッチ回路56に格納するように機能し、ドレインがノードNQLiに接続され、ソースが接地され、ゲートに信号Qi-1が入力される。但し、初段の検知部50-0の場合には、信号Qi-1の代わりに信号SCANSTARTが与えられる。MOSトランジスタ67は、ラッチ回路56をリセットするためのものであり、ドレインがノードQLiに接続され、ソースが接地され、ゲートに制御信号QRSTが入力される。信号QRSTは、例えば検知部50-0~50-m間で共通に使用され、制御回路40によって与えられる。リセット部57は、ノードCOMiをリセットするために用いられる。すなわちリセット部57は、nチャネルMOSトランジスタ69及び70を備える。MOSトランジスタ69は、ドレインがノードNCOMiに接続され、ソースがMOSトランジスタ70のドレインに接続され、ゲートがノードQLiに接続される。MOSトランジスタ70のソースは接地され、ゲートには制御信号SCANRSTが与えられる。信号SCANRSTは、例えば検知部50-0~50-m間で共通に使用され、制御回路40によって与えられる。ANDゲート51は、ノードCOMiにおける信号と、前段の検知部50-i-1のANDゲート51の出力とのAND演算を行う。そして演算結果を信号Qiとして、次段の検知部50-i1へ出力する。前述の通り、m1個のANDゲート51は直列接続され、これをフェイルサーチチェーンと呼ぶ。2.2検知部50の動作について次に、上記構成の検知部50の動作について説明する。以下では、信号ビット線BL8iが選択された場合ビット線BL0、BL8、BL16、...BLk-7が選択された場合における検知部50-0を例に説明する。まず、ベリファイにパスした場合につき、図4を用いて説明する。図4は、検知部50-0の回路図である。まず、ラッチ回路55、56はリセット状態とされ、ノードCOM0=H、ノードQL0=Lとされる。その状態で、ビット線BL0を選択するために、制御回路40は信号CHK0がHレベルとして、選択部54-0のMOSトランジスタ61をオン状態とする。制御回路40は、その他の信号CHK1~CHK7はLレベルとして、選択部54-1~54-7のMOSトランジスタ61をオフ状態とする図示せず。センスアンプ53-0は、ベリファイにパスした場合、パス/フェイル情報としてLレベルを出力する。従って、MOSトランジスタ60はオフ状態となる。よって、ノードCOM0はHレベルを維持する。そして図4に示すように、信号SCANSTARTがHレベルとされることで、ANDゲート51の演算結果はHレベルとなるQ0=H。更に、ラッチ回路56ではMOSトランジスタ68がオン状態とされる。従って、ノードQL0はLレベルからHレベルに遷移する。その他の検知部50-1~50-mの動作も同様である。但し、検知部50-1~50-mのANDゲート51には、信号SCANSTARTの代わりに信号Qi-1が入力される。従って、信号Qi-1がHレベルであれば、図4と同様に動作する。他方、信号Qi-1がLレベルであれば、ANDゲート51の演算結果は、ノードCOMiの状態に関わらずLレベルとなるQi=L。更に、ラッチ回路56ではMOSトランジスタ68がオフ状態とされるため、ノードQLはLレベルを維持する。次に、ベリファイにフェイルした場合につき、図5を用いて説明する。図5は、検知部50-0の回路図である。図示するように、ベリファイにフェイルした場合、センスアンプ53-0はパス/フェイル情報としてHレベルを出力する。従って、MOSトランジスタ60はオン状態となる。よって、ノードCOM0はMOSトランジスタ60、61を介して接地され、HレベルからLレベルに遷移する。そして図5に示すように、信号SCANSTART二段目以降の検知部50-1、50-2...の場合には信号Qi-1がHレベルとされても、ノードCOM0がLレベルであるので、ANDゲート51の演算結果はLレベルとなるQ0=L。ラッチ回路56の動作は図4の場合と同じである。すなわち、信号SCANSTARTがHレベルとされることで、ノードQL0はHレベルとなる。そして二段目以降の検知部50のラッチ回路56は、前述の通り信号Qi-1に依存する。2.3フェイルサーチチェーン52の動作について次に、検知回路20の備えるフェイルサーチチェーン52の動作について説明する。まず、どのカラムにもフェイルビットが無かった場合について図6を用いて説明する。図6は、信号CHK0~CHK7のいずれかをHレベルとした際の検知回路20のブロック図である。図示するように、この場合には全てのノードCOMがHレベルとなる。従って、信号SCANSTARTをHレベルとすれば、全てのAND演算結果がHレベルとなり、信号SCANENDはHレベルとなる。制御回路40はこの信号SCANENDを受信することで、フェイルビットが無いことを把握できる。次に、いずれかのカラムにフェイルビットがある場合について図7を用いて説明する。図7は検知回路20のブロック図であり、一例としてカラムC1ビット線BL8~BL15のいずれかにフェイルビットがある場合を示している。図示するように、この場合、信号Q0はHレベルとなるが、フェイルビットのあるカラムC1に対応する信号Q1はLレベルとなる。そしてカラムC1以降のカラムC2~Cmに対応する検知部50-2~50-mの全てにおいて、信号Qi=Lとなり、SCANEND=Lとなる。制御回路40は、Lレベルとされた信号SCANENDを受信することで、いずれかのカラムにフェイルビットがあることを把握できる。以上のようにフェイルサーチチェーン52は、フェイルビットの有無を示す情報を、信号Qとして順次転送する。この際、いずれのカラムにもフェイルビットが無ければ、全てのANDゲート51は、フェイルビット無しを意味する信号本例ではHレベルを順次転送する。他方、いずれかのカラムにフェイルビットが存在する場合、そのカラムを境にして、当該カラム以降のANDゲートはフェイルビット有りを意味する信号本例ではLレベルを順次転送する。つまり、フェイルビットのあるカラムを境界にして、信号Qの論理レベル言い換えれば、信号Qの示す意味が反転する。但し、複数のカラムにフェイルビットがある場合には、この境界となるカラムは、フェイルサーチチェーン52の最も前段側にある検知部50に対応するカラムである。つまり、フェイルビットのあるカラムCiのうち、iが最も小さいカラムである。3.NAND型フラッシュメモリ1の書き込み動作について次に、本実施形態に係るNAND型フラッシュメモリ1のデータ書き込み動作について説明する。3.1プログラムシーケンスについてまず、データの書き込み動作の大まかな流れについて、図8を用いて説明する。図8は、NAND型フラッシュメモリ1のプログラムシーケンスを示すタイミングチャートである。図示するように、プログラムコマンドが外部から発行されると、NAND型フラッシュメモリ1はビジー状態となり、プログラムシーケンスがスタートする。まず、プログラム動作が行われることにより、メモリセルトランジスタMTに対して1回目のデータプログラムがページ単位で実行される。その後、ベリファイ動作が実行される。ベリファイ動作では、プログラムされたメモリセルトランジスタMTに対して内部的に読み出しが行われ、センスアンプ53には十分にプログラムが行われたかどうかの情報パス/フェイル情報が格納される。ベリファイが終了すると、引き続き検知動作が行われる。検知動作では、ベリファイ動作でセンスアンプ53に格納されたパス/フェイル情報がノードCOMに読み出され、フェイルビット数がカウントされる。このプログラム、ベリファイ、及び検知の3つの動作を合わせて、以後、プログラムピリオドと呼ぶ。検知動作の結果、フェイルビット数が許容数を超えていれば、制御回路40は2回目のプログラムピリオドを実行し、許容数以下ならばプログラムシーケンスを抜けてレディ状態に戻る。大容量化微細化が進む中で、全てのメモリセルトランジスタに十分なプログラムを行うと、プログラムピリオドの繰り返し回数は膨大となり、プログラムシーケンスに要する時間が増大する。そこで、本実施形態に係るNAND型フラッシュメモリ1は、疑似パス機能を採用している。すなわち、予め決められた許容数以下のビットエラーならばECC技術により救済が可能であるので、例え書き込みが不完全な状態であっても、プログラムシーケンスを終了する。これによりプログラム時間を高速化する。この疑似パス機能を実現する手段として、ベリファイ動作の結果、フェイルとなったメモリセルトランジスタのビット数をカウントする回路技術が必要となる。この回路が検知回路20である。3.2プログラムシーケンスの詳細について次に、上記プログラムシーケンスの詳細について、図9を用いて説明する。図9は、NAND型フラッシュメモリ1のデータ書き込み動作のフローチャートであり、疑似パス機能を実現するための処理に特に着目したものである。ステップS10まず第1のステップS10として、プログラム動作を行われる。プログラム動作は、周知の方法によって実行可能である。ステップS20引き続き第2のステップS20として、ベリファイ動作が行われる。ベリファイ動作も、周知の方法によって実行可能である。ベリファイ動作では、プログラムを行ったメモリセルトランジスタMTに対して内部的にデータの読み出しが行われる。そして各ビットに対応して設けられたセンスアンプ53にベリファイ結果パス/フェイル情報が格納される。ステップS30その後第3のステップS30として、検知動作が行われる。検知動作では、パス/フェイル情報を、センスアンプ53からノードCOMに転送し、カウンタ30でフェイルビットの数をカウントし、このカウント数を、予め設定されたビットエラー許容数と比較する。検知動作は以下の通りに実行される。まず、ラッチ回路55、56がリセットされるステップS31。すなわち、例えば制御回路40が、信号COMH、QRSTをアサート本例の場合にはHレベルする。その結果、全ての検知部50においてMOSトランジスタ64、67がオン状態とされ、ノードCOM=HNCOM=L、ノードQL=LNQL=Hとされる。なお、このステップS31の動作は、ステップS10またはS20より先に行われても良いし、これらのステップ同時に行われても良いし、パス/フェイル情報をノードCOMに読み出す前であればいつ行ってもよい。また、カウンタ30のカウンタ値jがリセットされj=0、まず信号CHK0が選択されるh=0ステップS32。カウンタ30のリセット動作も、パス/フェイル情報をノードCOMに読み出す前であればいつ行ってもよい。次に、センスアンプ53-hここではh=0なのでセンスアンプ53-0からノードCOMにパス/フェイル情報が読み出される。すなわち、センスアンプ53-0~53-7は、パス/フェイル情報をMOSトランジスタ60のゲートに出力する。更に制御回路40は、CHKhここではh=0なのでCHK0をアサート本例ではHレベルとして、選択部54-0のMOSトランジスタ61をオン状態とする。その結果、ノードCOMの論理レベルは、センスアンプ53-0のパス/フェイル情報に応じて変化する。具体的には、ベリファイにパスしていればノードCOMはHレベルを維持し、フェイルしていればLレベルに遷移するステップS33。次に、制御回路40は信号SCANSTARTをアサート本例ではHレベルとして、フェイルビット数のカウントを開始するステップS34。信号SCANSTART=Hとした結果、信号SCANEND=LであればステップS35、NO、少なくともいずれか1つのカラムにフェイルビットがある、ということになる。すると制御回路40は、信号SCANSTARTをLレベルとするステップS36。引き続き制御回路40は、信号SCANRSTをアサート本例ではHレベルとして、ラッチ回路55ノードCOMをリセットするステップS37。ここで、ラッチ回路55がリセットされる検知部50は、ラッチ回路65のノードQLが初期状態のLレベルからHレベルに遷移しているものだけである。前述の通り、ラッチ回路56の保持データは、MOSトランジスタ68がオン状態とされることで反転される。従って、ステップS34において、Hレベルの信号Qi-1を受信出来なかった検知部50では、MOSトランジスタ68はオフ状態を維持し、ラッチ回路56は初期状態を保持し続けるので、この検知部50ではラッチ回路55はリセットされない。ラッチ回路55がリセットされた検知部50では、ノードCOMはHレベルとなる。そしてカウンタ30は、カウンタ値を1するステップS38。すなわち、j=j1とされる。引き続き制御回路40は、このフェイルビット数jが、予め定められたフェイルビット許容数以下以下であるか否かを判断するステップS39。この許容数とは、例えばECCによって救済可能な最大ビット数である。フェイルビット数jが許容数以下であればステップS39、YES、制御回路40は信号SCANRSTをLレベルとしてステップS40、ステップS34に戻る。すなわち、信号SCANSTARTを再びHレベルとして、フェイルビット数のカウントを開始する。なお、2回目以降のカウントでは、その前にカウントされたフェイルビットに対応する検知部50のノードCOMは、ステップS37で既にリセットされている。従って、2回目以降のカウントでは、この検知部50のANDゲート51は、フェイルビットに対応する検知部50であるにも関わらず、Hレベルを出力する。ステップS39において、フェイルビット数jが許容数を超えていればステップS39、NO、制御回路40は、当該データのプログラムピリオドの繰り返し回数ループ数が規定回数以内か否かを判断する。規定回数以内であればステップS41、NO、制御回路40はステップS10に戻り、次のプログラムピリオドを実行する。つまり、当該データについてのプログラム動作、ベリファイ動作、及び検知動作を繰り返す。他方、ループ数が規定回数を超えていればステップS41,YES、プログラム動作は失敗となり、制御回路40はプログラムシーケンスを終了する。ステップS35において信号SCANEND=Hであった場合ステップS35、YES、全てのカラムにおいて、信号CHKhによって選択されたビット線BLにはフェイルビットはない、ということになる。引き続き制御回路40は、信号SCANRSTをLレベルとしステップS42、引き続き全てのビット線BLについて検知動作を実行したか否かを確認する。つまり、h=7であるか否かを判定するステップS43。h=7でなければステップS43、NO、制御回路40はh=h1として、ステップS33に戻って再度信号CHKhを発行し、ステップS33~S40の動作を繰り返すステップS44。ステップS43においてh=7であった場合ステップS43、YES、これは、各カラムにつき全てのビット線BLの検知動作が終了したことを意味する。従って制御回路40は、この時点でのカウンタ30のカウンタ値jを総フェイルビット数と見なすステップS45。引き続き制御回路40は、このフェイルビット数jが、予め定められたフェイルビット許容数未満であるか否かを判断するステップS46。本ステップは、ステップS39と同様の判断処理である。フェイルビット数jが許容数以下であればステップS46、YES、制御回路40はデータの書き込みを正常に完了できたと判断して、プログラムシーケンスを終了する。他方、フェイルビット数jが許容数を超えていればステップS46、NO、制御回路40はステップS41の処理に進む。すなわち、当該データのプログラムピリオドの繰り返し回数ループ数が規定回数以内か否かを判断する。規定回数以内であればステップS45、NO、制御回路40はステップS10に戻り、ループ数が規定回数を超えていれば、プログラム動作は失敗となり、制御回路40はプログラムシーケンスを終了する。なお、ステップS46の判断は省略されてもよい。なぜなら、ステップS43の判断がYESとなってステップS45、S46に進んだ時点では、すでにステップS39の処理を経ているはずであり、その際にフェイルビット数が許容数以下である、との判断がなされているはずだからである。従って、ステップS43でh=7と判断された時点で、書き込みは正常に終了したとして、プログラムシーケンスを終了してもよい。3.3検知動作の具体例について次に、上記検知動作時における検知回路20及びカウンタ30の具体例について、図10乃至図16を用いて説明する。図10は検知動作時の各種信号とカウンタ値jのタイミングチャートであり、図11乃至図16は検知回路20及びカウンタ回路30のブロック図である。なお、以下では説明の簡単化のため、検知回路20が5つの検知部50-0~50-4を含む場合を例に説明するm=4。また、信号CHK0~CHK7のそれぞれをHレベルとした場合の動作はいずれも同様であるので、以下では特に信号CHK0=Hとした際の動作に着目し、その際、カラムC2BL8及びカラムC3BL24にフェイルビットがある場合を例に説明する。プログラム及びベリファイの後、制御回路40はまず信号COMH及びQRSTをHレベルとするステップS31、図10の時刻t0以前、図11。この結果、図11に示すように、全ての検知部50においてノードCOMはHレベルとされ、ノードQLはLレベルとなる。次に制御回路40は、信号CHK0をHレベルとするステップS33、図10の時刻t0、図12。その結果、ビット線BL0、BL8、BL16、BL24、及びBL32のパス/フェイル情報が、ノードCOM0~COM4に読み出される。ビット線BL8及びBL24にフェイルなので、ノードCOM1及びCOM3の論理レベルは、HレベルからLレベルに遷移する。そして時刻t2において、制御回路40は信号SCANSTARTをHレベルとするステップS34、図12。すると、検知部50-0ではANDゲート51の出力信号Q0がHレベルとなり、またMOSトランジスタ68がオンされるためにノードQL0がHレベルに遷移する。検知部50-1では、ノードCOM1がLレベルであるので、ANDゲート51の出力Q1はLレベルのままとなる。しかし、Q0がHレベルであるので、QL1はHレベルに遷移する。信号Q1がLレベルとされたことにより、信号Q2,Q3、及びSCANENDはLレベルのままであるステップS35、NO。つまり、カラムC1を境にして、フェイルサーチチェーン52を伝播する信号が反転する。その後時刻t3において、制御回路40は信号SCANSTARTをLレベルに落とすステップS36。そして制御回路40は、信号SCANSTARTをLレベルとしてから一定の待機時間Δtの後、時刻t4で信号SCANRSTをHレベルとするステップS37、図13。この待機時間Δtは、フェイルサーチチェーン52内における伝播遅延以上の長さとされる。その結果、図13に示すように、検知部50-0及び50-1では、リセット部57が導通して、ノードNCOM0、NCOM1が接地される。その結果、ノードCOM1はLレベルからHレベルに反転する。つまり、検知部50-1のラッチ回路55の保持データは、フェイルからパスに変化する。その他の検知部50-2~50-4では、ノードQL2~QL4がLレベルであるので、ラッチ回路55の保持する情報は変化しない。そしてカウンタ30は、信号SCANENDがLレベルであることを受けて、カウントアップするj=1、時刻t4、ステップS38。その後、制御回路30は、このカウント数j=1を許容数と比較し、カウント数jが許容数以下であることを受けてステップS39、YES、信号SCANRSTをLレベルに戻してステップS40、再度カウントを開始する。すなわち、時刻t5において制御回路40は、信号SCANSTARTをHレベルとするステップS34、図14。すると、検知部50-0ではANDゲート51の出力Q0がHレベルとなる。また検知部50-1においても、時刻t4~t5でラッチ回路55がリセットされたため、ANDゲート51の出力信号Q1がHレベルとなる。更に検知部50-2ではANDゲート51の出力Q0がHレベルとなり、更にノードQL2がHレベルに遷移する。検知部50-3では、ノードCOM3がLレベルであるので、出力Q3はLレベルのままとなる。しかし、出力Q2がHレベルであるので、ノードQL3はHレベルに遷移する。信号Q3がLレベルとされたことにより、信号SCANENDはLレベルのままであるステップS35、NO。以上のように、Q0からQ1へ、Q1からQ2へとHレベルが順次伝播していく。しかしながらこの際には、ANDゲート51における遅延が生じる。前述の待機時間Δtは、信号Q0のHレベルが、信号SCANENDにまで伝播するのに要する時間以上とされる。その後時刻t6において、制御回路40は信号SCANSTARTをLレベルに落としステップS36、時刻t7で信号SCANRSTをHレベルとするステップS37、図15。この結果、図13で説明したのと同様にして、ノードCOM3がリセットされる。つまり、検知部50-3のラッチ回路55の保持データは、フェイルからパスに変化する。そしてカウンタ回路30は、信号SCANENDがLレベルであることを受けて、カウントアップするj=2、時刻t7、ステップS38。その後、制御回路30は、このカウント数j=2を許容数と比較し、カウント数jが許容数以下であることを受けてステップS39、YES、信号SCANRSTをLレベルに戻してステップS40、再度カウントを開始する。すなわち、時刻t8において制御回路40は、信号SCANSTARTをHレベルとするステップS34、図16。すると、全てのANDゲート51の演算結果がHレベルとなり、信号SCANEND=HとなるステップS35、YES。以上の処理は、信号CHK0を選択してh=0行ったものであるのでステップS43、NO、次に制御回路40はh=1としてステップS44、ステップS33に戻り、同様の処理を繰り返す。より具体的には、信号CHK1をHレベルとすることにより、ビット線BL1、BL9、BL17、BL25、及びBL33につき、図10の時刻t0~t10の処理を繰り返す。この繰り返しの間、カウンタ値jはリセットされることなく、フェイルビット数を累積する。これを、以下、信号CHK1からCHK7まで繰り返す。すなわち、図10の時刻t1~t10の処理が全8回行われる。以上の過程で、プログラムループ回数が規定回数を超えることなく、全カラムについてのフェイルビット数が許容数以下となれば、その時点で制御回路40は、プログラムは成功したものとしてシーケンスを終了する。4.本実施形態の効果以上のように、本実施形態に係る構成であると、検知回路20によるフェイルビットのカウント精度を向上できる。本効果につき、以下詳細に説明する。NAND型フラッシュメモリには、メモリセルに対して書き込み及び消去が完了したかどうかを検知する検知回路が搭載されている。そして、このような検知回路としては、例えばオペアンプを用いた電流検知方式のフェイルビットカウント回路比較例1が考えられる。図17は、電流検知方式によるフェイルビットカウント回路の回路図である。図示するように、本構成では、オペアンプの一方の入力端子にノードLSENが接続され、他方の入力端子に基準電流源が接続される。基準電流源はD/AコンバータDACによってIREF×の電流が流れるn=0、1、2、...。またノードGCOMMONによりカレントミラー回路が構成され、このカレントミラー回路は、電流IREFを流す。ノードLSENには、パス/フェイル情報が与えられるノードNCOMに応じて電流が流れ、更にノードLSENは、全カラムにつき共通に接続されている。フェイルビット数をカウントする場合、まず例えば信号CHK0をHレベルとする。すると、ノードLSENには、信号CHK0によって選ばれるビット線のうち、フェイルビットの数nに応じた電流IREF×nが流れる。そして、基準電流源の電流値をIREF×0.5、IREF×1.5、IREF×2.5、...と増加していくと、IREF×とした時に、オペアンプの出力信号HRが反転する。よって、信号HRが反転したときのDACの値を参照することで、フェイルビット数がわかる。これを信号CHK0からCHK7まで繰り返すことで、全ビット線のフェイルビット数を数えることができる。しかし、本方式であると、フェイルビットのカウントは、ノードLSENに流れる電流の検知により行われる。つまり、アナログ回路によってフェイルビット数をカウントする。従って、ノイズや素子のばらつきの影響を大きく受ける。そのため、検出精度が十分では無い恐れがある。更に、ノイズの影響を受けやすいため、NAND型フラッシュメモリのコアへのアクセス読み出し、書き込み、消去等と同時にこの回路を動作させることは困難である。なぜなら、コアへのアクセス時に生じるノイズによって、本回路の動作精度が低下するからである。従って、メモリセルアレイへのアクセスとは別に、フェイルビット検知専用の時間を設ける必要があり、NAND型フラッシュメモリの動作速度が低下する。また、図17はカレントミラー回路を使用している。しかし、ノードGCOMMONを共通にするトランジスタは、コア内に広く且つ多数存在し、トランジスタ間で大きなばらつきがある。よって、検知可能なビット数は、このトランジスタのばらつきサイズ、性能によって制限される。以上のことから、検知可能なビット数を増加させるには、トランジスタのゲート面積を増大させることでばらつきを抑制するか、またはゲート電圧を上げるIREFを増加する、ゲート長を大きくする等等、しなければならない。しかし、いずれの場合も面積が増加し、そして電流消費量が増大する。言い換えると、図17のような方式では、決められた面積、消費電流の中では検知精度に限界がある。しかしながら、本実施形態に係る半導体記憶装置であると、上記の問題点を解決できる。すなわち、まず本実施形態に係る構成であると、フェイルビットの有無は、信号SCANENDの論理レベルHレベルまたはLレベルで与えられる。そして、デジタルカウンタ30が、信号SCANENDがフェイルビット有りなる旨を示す論理レベルであった回数をカウントする。従って、ノイズや素子のばらつきの影響を受け難く、検出精度を向上出来る。また、ノイズ耐性に優れているため、検知回路20は、コアへのアクセスと同時に動作することが出来る。すなわち、データ読み出し動作と検知動作を同時実行したり、またはデータのプログラム動作と検知動作を同時実行したりすることが可能となる。その結果、本実施形態は、データのブログラム動作と検知動作を別々に実行する場合と比較して、高速な検知動作が可能となる。更に、アナログ回路のように、動作精度向上のために素子サイズや動作電圧を大きくする必要も無い。つまり、面積増加及びチップ面積増加を抑制しつつ、上記の検出精度向上及び検出速度向上の効果が得られる。[第2実施形態]次に、第2実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第1の実施形態において、リダンダンシ機能を有するものである。以下では、第1実施形態と異なる点についてのみ説明する。1.NAND型フラッシュメモリ1の構成についてまず、本実施形態に係るNAND型フラッシュメモリ1の構成について説明する。本実施形態に係る構成では、メモリセルアレイ10におけるいずれかのカラムが冗長カラムとして用意される。そして、いずれかのカラムが不良となった場合、制御回路40は、この不良カラムを冗長カラムで置き換える。これによって、不良カラムを救済する。次に検知回路20について説明する。図18は、本実施形態に係る検知部50-i前述の通りiは0~mの整数の回路図である。図示するように検知部50-iは、第1実施形態で説明した図3の構成において、ラッチ回路58及びスイッチ部59を更に備えている。ラッチ回路58は、対応するカラムが不良カラム等、検知対象から外すべきカラムアイソレーションすべきカラムか否かの情報を保持する。ラッチ回路58は、インバータ71、72及びnチャネルMOSトランジスタ73~75を備えている。インバータ71は、出力ノードがノードISOiに接続され、入力ノードがノードNISOiiは0~mの整数に接続される。インバータ72は、入力ノードがノードISOiに接続され、出力ノードがノードNISOiに接続される。MOSトランジスタ73は、ラッチ回路58をリセットするためのものであり、ドレインがノードISOiに接続され、ソースが接地され、ゲートに制御信号FCRSTが入力される。信号FCRSTは、例えば検知部50-0~50-m間で共通に使用され、制御回路40によって与えられる。MOSトランジスタ74は、カラムを選択するためのものであり、ドレインがノードISOiに接続され、ソースがMOSトランジスタ75のドレインに接続され、ゲートに制御信号CSLiが入力される。信号CSLiは、カラムCi毎に例えば制御回路40によって与えられる。MOSトランジスタ75は、ラッチ回路58に、当該カラムがアイソレーション対象である旨の情報を書き込むためのものであり、ソースが接地され、ゲートに制御信号FCENが入力される。この情報を以下、アイソレーション情報と呼ぶ。信号FCENは、例えば検知部50-0~50-m間で共通に使用され、制御回路40によって与えられる。次にスイッチ部59について説明する。図18に示すようにスイッチ部59は、nチャネルMOSトランジスタ76、78及びpチャネルMOSトランジスタ77、79を備えている。MOSトランジスタ76、77は、ソース及びドレインの一方がANDゲート51の出力ノードに接続され、他方から信号Qiを出力する。そしてMOSトランジスタ76、77のゲートは、それぞれノードNISOi及びISOiに接続される。MOSトランジスタ78、79は、ソース及びドレインの一方にQi-1が入力され検知部50-0の場合には信号SCANSTART、他方から信号Qiを出力する。そしてMOSトランジスタ78、79のゲートは、それぞれノードISOi及びNISOiに接続される。2.検知回路20の動作について次に、上記構成の検知回路20の動作について、引き続き図18を参照しつつ説明する。ラッチ回路58は、初期状態ではISOi=L、NISOi=Hレベルとされる。この初期状態は、対応するカラムCiがアイソレーション対象でないことを意味し、この情報は信号FCRSTをHレベルとしてMOSトランジスタ73をオンさせることでラッチ回路58に書き込まれる。いずれかのカラムがアイソレーション対象の場合、制御回路40はラッチ回路58にその旨の情報不良情報を書き込む。制御回路40は、信号FCENをHレベルとする。これにより、全検知部50のMOSトランジスタ75がオン状態となる。更に制御回路40は、アイソレーション対象のカラムに対応する検知部50-iの信号CSLiをHレベルとする。すると、この検知部50-iではMOSトランジスタ74、75がオン状態となり、ノードNISOiがLレベル、ISOiがHレベルとなる。これにより、ラッチ回路58にアイソレーション情報が書き込まれる。より具体的には、カラムC1がアイソレーション対象であったとすれば、信号CSL1がHレベルとされる。これにより、ISO1がHレベル、NISO1がLレベルとされる。その結果、アイソレーション情報が書き込まれた検知部50-iでは、スイッチ部59のMOSトランジスタ76、77がオフ状態とされ、MOSトランジスタ78、79がオン状態となる。つまり、この検知部50-iでは、前段の検知部50-i-1から受信した信号Qi-1が、そのまま信号Qiとして次段の検知部50-i1に出力される。すなわち、検知部50-iのANDゲート51がバイパスされる。これにより、アイソレーション対象のカラムに対応する検知部50の検知結果を、フェイルサーチチェーン52においてスキップすることが出来る。なお、アイソレーション対象でないカラムに対応する検知部50では、MOSトランジスタ76、77がオン状態となり、MOSトランジスタ78、79がオフ状態であるので、第1実施形態と同様の動作となる。3.本実施形態の効果以上のように、本実施形態に係る構成であると、第1実施形態と同様に、検知回路20によるフェイルビットのカウント精度を向上できる。また、本実施形態に係る構成であると、ラッチ回路58内の情報に応じてANDゲート51をバイパスさせることが出来る。つまり、不良カラム等の検知の対象から外したいカラムを、フェイルビットカウントの対象から外すことができる。従って、リダンダンシ機能を有するNAND型フラッシュメモリであっても、第1実施形態の構成を適用することが可能となる。[第3実施形態]次に、第3実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第2実施形態において、テスト用の回路を更に設けたものである。以下では、第2実施形態と異なる点についてのみ説明する。1.検知部50の構成について図19は、本実施形態に係る検知部50-iの回路図である。図示するように検知部50-iは、第2実施形態で説明した図18の構成において、テスト回路80を更に備えている。テスト回路80は、nチャネルMOSトランジスタ81~83を備えている。MOSトランジスタ81は、ドレインがNAND型フラッシュメモリ1の入出力部I/Oに接続され、ゲートに、対応するANDゲート51の出力ノードANDOiiは0~mの整数が接続される。MOSトランジスタ82は、ドレインが入出力部に接続され、ゲートに、対応するノードNCOMiが接続される。MOSトランジスタ83は、ドレインがMOSトランジスタ81、82のソースに接続され、ソースが接地され、ゲートに制御信号COMTESTが入力される。信号COMTESTは、検知部50をテストする際にアサートHレベルされる信号であり、例えば制御回路40によって与えられる。2.検知部50のテスト動作について次に、検知部50のテスト動作について説明する。テスト動作時において制御回路40は、テスト信号COMTESTをアサートして、MOSトランジスタ83をオン状態とする。すると、ノードCOMi及びノードANDOiの論理レベルに応じて、入出力部にHレベルまたはLレベルが出力される。このテスト動作の具体的な一例について以下説明する。例えばノードCOM0がLレベルに固定される不良が発生したと仮定する。この際、制御回路40はまず信号COMHをHレベルとしてラッチ回路55をリセットする。その後、信号COMHをLレベルに戻す。正常ならば、ノードNCOM0はLレベルとなり、ノードCOM0はHレベルとなるはずである。そして信号SCANSTARTがLであるから、ノードANDO0もLレベルとなる。従って、MOSトランジスタ81、82はオフ状態となり、入出力部にはHレベルが出力されるはずである。しかし、ノードCOM0がLレベルに固定されていると、ノードNCOM0はインバータ62によってHレベルとされる。これによりMOSトランジスタ82がオン状態となり、入出力部ではLレベルが観測される。3.本実施形態の効果以上のように、本実施形態に係る構成であると、種々のノードの様々な不良を見つけることが出来る。通常、検知部50のノードCOMやノードANDOの信号は、外部からは観測することができない。しかし、本実施形態のようにテスト回路80を設けることによって、これらの状態を外部に取り出すことが出来る。そして、BISTbuiltInSeltTest回路等にこれらの状態を出力して、不良を検出したり、不良カラムを特定したりすることが可能となる。なお、上記実施形態ではノードCOMがLレベルに固定される不良を例に説明したが、ノードCOMがHレベルに固定される不良や、ノードQLがHまたはLレベルに固定される不良も同様にして見つけることが出来る。また、テスト回路80にはノードNCOM及びノードANDOの信号が入力される場合を例に説明したが、その他のノードの信号が入力されても良い。テスト回路80に入力する信号は、検出したい不良にあわせて適宜選択すればよい。[第4実施形態]次に、第4実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第3実施形態において、ANDゲート51を3入力のANDゲートに置き換えたものである。以下では、第3実施形態と異なる点についてのみ説明する。1.検知部50の構成について図20は、本実施形態に係る検知部50-iの回路図である。図示するように検知部50-iは、第3実施形態で説明した図19の構成において、ANDゲート51を3入力ANDゲートに置き換え、新たに信号SCANSTARTを入力したものである。つまり、検知部50-iのANDゲートは、ノードCOMiの論理レベルと、信号Qi-1と、信号SCANSTARTとのAND演算を行う。なお、初段の検知部50-0は、第3実施形態と同様に2入力ANDゲートで良く、ノードCOM0の論理レベルと、信号SCANSTARTとのAND演算を行う。2.検知回路20の動作について次に、検知回路20の動作について図21を用いて説明する。図21は、検知動作時における各種信号のタイミングチャートであり、第1実施形態で説明した図10のケースに相当する。図中の時刻t5やt7に示すように、信号Q0~Q3及びSCANENDは、LレベルからHレベルへの立ち上がり時には遅延があるが、立ち下がり時に遅延はほとんどない。すなわち、信号SCANSTARTが立ち下がるとほぼ同時に、信号Q0~Q3及びSCANENDも立ち下がる。これは、これらの信号を生成するためのAND演算に、信号SCANSTARTが入力の一つとして用いられているからである。3.本実施形態の効果以上のように、本実施形態に係る構成であると、信号Q0~Q3及びSCANENDの立ち下がりタイミングを、信号SCANSTARTの立ち下がりとほぼ同時にすることができる。そのため、信号SCANRSTをアサートするための待機時間Δt図10参照が不要となる。すなわち、信号SCANSTARTをネゲートLレベルすると同時に、信号SCANRSTをアサートでき図21の時刻t3、t5参照、また信号COMHをアサート出来る図21の時刻t7参照。従って、NAND型フラッシュメモリ1の動作速度を向上出来る。なお、信号Qの立ち下がりを待ってから信号SCANRSTをアサートする理由は、同一カラム内で複数のノードCOMがリセットされることを防止するためである。つまり、例えばQiが立ち下がる前に信号SCANRSTをアサートした場合、ノードCOMiをリセットした瞬間、Qi1がHレベルとなる。すると、もしノードCOMi1がフェイルLレベルであったとすれば、このノードCOMi1も同時にリセットされてしまい、フェイルビットを正しくカウントすることが困難となる。そのため第1実施形態では、ゲート遅延による待機時間を待ってから信号SCANRSTをアサートする。しかし本実施形態によれば、信号SCANSTARTにより強制的に信号QをLレベルとするので、待機時間を待つ必要なく、正しいカウント動作が可能となる。本実施形態は、特に電源電圧の低い半導体装置において効果的である。[第5実施形態]次に、第5実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第4実施形態において、フェイルサーチチェーン52を、ECC単位に分割したものである。以下では、第4実施形態と異なる点についてのみ説明する。1.NAND型フラッシュメモリ1の構成についてまず、本実施形態に係るNAND型フラッシュメモリ1の構成について、図22を用いて説明する。図22は、NAND型フラッシュメモリ1のブロック図である。図示するように、本実施形態に係るNAND型フラッシュメモリ1は、図1を用いて説明した構成において、検知回路20とカウンタ30を複数設けたものである。また本実施形態に係る制御回路40は、ECC処理を実行するECC部41を備えている。ECC部41は、例えば512バイト単位でECC処理を実行する。もちろん、この単位は一例に過ぎず、任意のデータサイズを単位としてECC処理を実行して良い。各検知回路20は、ECCの処理単位、すなわち512バイト単位で設けられている。すなわち、カラムC0~C511につき1つの検知回路20が設けられ、カラムC512~C1023につき1つの検知回路20が設けられ、カラムCm-511~Cmにつき1つの検知回路20が設けられている。また各検知回路20は、関連付けられた512本のカラムから読み出されたデータ、またはこの512本のカラムに書き込むべきデータを一時的に保持するバッファ回路90を備えているこれらの集合が、1ページサイズのページバッファとなる。カウンタ30も、各検知回路20に対応して設けられ、対応付けられた検知回路20の信号SCANENDに応じて、フェイルビットのカウントを実行する。2.NAND型フラッシュメモリ1の動作について検知動作において各検知回路20は、関連づけられた512本のカラムにつき、第1乃至第4実施形態で説明した動作を実行し、対応するカウンタ30でフェイルビット数をカウントする。そして制御回路40は、各カウンタ30のフェイルビット数を足しあわせることで、全カラムに存在するフェイルビット数を把握する。また制御回路40は、データ読み出し時には、各検知回路20のバッファ90に読み出されたデータ単位でECC処理を行う。すなわち、ある検知回路20のバッファ90に読み出されたカラムC0~C511についてのデータをひとまとまりとしてECC処理を行い、また別の検知回路20のバッファ90に読み出されたカラムC512~C1023についてのデータをひとまとまりとしてECC処理を行う。従って、第1実施形態で説明した図9のステップS44において許容数と比較されるフェイルビット数は、当該カラムについてのECC処理で救済可能な不良ビット数と同等か、それ以下である。例えばカラムC0~C511に着目した場合、この512本のカラムについてECC処理をした際に救済可能な不良ビット数であり、全カラムC0~Cmについて救済可能な不良ビット数では無い。データの書き込み時も同様である。すなわち制御回路40は、外部から入力されたデータを512バイト単位でECC処理し、そのデータを各バッファ90に格納する。なお、本実施形態でのデータ単位は、ECC処理において何らかの形でひとまとまりのデータとして扱われる単位であれば特に限定されない。例えばデータの読み出し時において、カラムC0~C511の512バイトのうち、例えば496バイトが正味のデータで、残りの16バイトがパリティ正味のデータから生成されるデータであっても良い。または、カラムC0~C511の512バイトが全て正味のデータであり、この正味のデータをECC処理するために必要なパリティは、別のカラム例えばCm-511~Cmから読み出される場合であっても良い。書き込み時も同様である。3.本実施形態の効果以上のように、本実施形態に係る構成であると、フェイルサーチチェーン52を複数に分割している。そして、これらのフェイルサーチチェーン52は独立して動作可能である。従って、1つのフェイルサーチチェーン52の長さを第1乃至第4実施形態に比べて短くでき、且つ、複数のフェイルサーチチェーン52を同時に実行することが出来る。その結果、検知動作時間を飛躍的に短縮出来る。更に本実施形態であると、ECC処理のためのデータ転送は、制御回路40と各検知回路20との1対1対応である。つまり、制御回路40は、ある検知回路20のバッファ回路90から転送されたデータを単位としてECC処理をすれば良く、当該データのECC処理のためにその他の検知回路20からのデータ転送を必要としない。よって、ページバッファとECC部41との間でデータをECC処理単位で転送できる場合、データ転送がより簡便となる。例えパリティを別の検知回路20のバッファ90から読み出すとしても、正味のデータは検知回路単位での転送となるため、データ転送は煩雑とはならない。また、ECC処理のデータ単位と検知回路20は、必ずしも1対1対応でなくても良い。例えば、検知回路20に対応づけられたカラム数は、ECC処理のデータ単位より小さくてもよく、例えばカラム数は、ECC処理のデータ単位の1/2、1/3、あるいは1/4等であっても良い。この場合であっても、フェイルサーチチェーンを分割することにより、各チェーン内のゲートの数を減らすことができ、高速化の効果が得られる。また、各検知回路20に対応づけられるカラム数を、ECC処理のデータ単位の整数分の1倍とすることで、やはりデータの転送を簡便に出来る。[変形例等]以上のように、本実施形態に係る半導体記憶装置は、複数のメモリセルMTと、論理ゲートチェーン52と、カウンタ30を備える。メモリセルMTは、いずれかのカラムに関連付けられ、データ保持可能である。論理ゲートチェーン52は、いずれかのカラムに対応付けられ、且つ対応付けられたカラムにおけるベリファイフェイルの有無を示す論理レベルを次段に出力するように直列接続された複数の論理ゲート51を含む。カウンタ30は、直列接続の最終段の論理ゲートによる、ベリファイフェイルがあることを示す論理レベルの出力回数をカウントする。論理ゲートチェーン52は、各々の論理ゲート51の出力する論理レベルの示す内容が、ベリファイフェイルのあるカラムに対応する論理ゲート51を境界にして反転するように構成される。本構成により、ベリファイフェイル数を精度良くカウント出来る。なお、上記実施形態は種々の変形が可能である。例えば、上記実施形態では、直列接続されたANDゲートによりフェイルサーチチェーン52が形成される場合について説明した。しかし、フェイルサーチチェーン52を構成する論理ゲートはANDゲートに限らず、NANDゲート、ORゲート、NORゲート等の他の論理ゲートを含んでも良いし、複数の種類の論理ゲートの組み合わせであっても良い。また上記実施形態では、フェイルサーチチェーン52の信号Qは、Hレベルである際にフェイル無しを意味し、Lレベルである際にフェイル有りを意味する。しかし、この関係は逆であっても良い。更には、あるカラムではHレベルがフェイル無しを意味し、別のカラムではLレベルがフェイル無しを意味するような場合であってもよい。すなわち、フェイルサーチチェーン52は、各カラムに対応した論理ゲートが直列接続され、その出力が、最もカラムアドレスの小さいフェイルで反転するような構成であれば良い。ここで反転なる意味は、単にHからL、またはLからHという意味では無く、その信号が指し示す内容フェイルの有無が反転する、という意味である。また、上記実施形態では信号CHKが1つずつアサートされる場合を例に説明した。しかし、例えば2つ以上の信号CHKがアサートされる場合であっても良い。例えばフェイルビット数では無く、フェイルカラム数をカウントしたければ、信号CHK0~CHK7の全てを同時にアサートすれば良い。更に、上記の図10及び図21では、信号SCANRSTがアサートされるタイミングで、カウンタ30がカウントアップする場合を例に説明したが、カウントアップはこのタイミングに限られるものではない。すなわちカウンタ30は、信号SCANENDを監視し、これによりフェイルが有ると判断した時点であれば、カウントアップするタイミングは何時でも良い。その一例が、信号SCANRSTがアサートされたタイミングである。あるいは、信号SCANSTARTがアサートされたタイミングであっても良い図10の時刻t5、t8。例えばカウンタ30は、信号SCANENDがLレベルのままの状態で信号SCANRSTまたはSCANSTARTを受信することに応答してカウントアップしても良い。もちろん、カウントアップに限らずカウントダウンする場合であっても良い。また、スイッチ部59やテスト回路80は必ずしも検知回路20の一部である必要はなく、検知回路20外部にあっても良い。更に、各実施形態は独立して実施可能である。すなわち、第3実施形態は第2実施形態を前提として説明したが、図19においてラッチ回路58及びスイッチ部59が無い場合であってもよい。また第4実施形態は第3実施形態を前提として説明したが、図20においてラッチ回路58及びスイッチ部59、並びにテスト回路80の少なくとも一方が無い場合であっても良い。更に上記実施形態では、データの書き込み動作時における検知動作を例に説明した。しかし、同様の動作がデータの消去時にも適用出来る。例えばデータの消去後、メモリセルトランジスタMTの閾値が十分に低下しているかを確認するため、消去ベリファイを行う。この後の検知動作にも、上記実施形態が適用出来る。更に、消去の後、書き込みweakprogramまたはsoftprogramとも呼ばれるを行って、メモリセルトランジスタの閾値を適切なレンジ内に設定する方法も知られている。そしてこの書き込みの後、消去ベリファイを行い、その後検知動作が行われるが、この検知動作にも上記実施形態が適用出来る。そして図19を用いて説明した検知動作の処理フローは、可能な限り順序を入れ替えることが出来る。更に、実施形態のnチャネルMOSトランジスタとpチャネルMOSトランジスタは、適宜置換することが可能である。更に上記実施形態はNAND型フラッシュメモリを例に説明したが、例えばNOR型、DINOR型、AND型フラッシュメモリであっても良い。またフラッシュメモリに限らず、磁気抵抗素子をメモリセルに用いた磁気ランダムアクセスメモリMagneticRandomAccessMemoryや、可変抵抗素子を用いたReRAMResistanceRandomAccessMemory等、半導体メモリ全般に適用可能である。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。"