(57)【要約】【課題】ベリファイ・フェイルしているカラムを特定する際に、カラムアドレス系の回路を使用する事無く、高速に検知動作を行なう事を実現し、データの読み出し信頼性を向上出来る半導体記憶装置を提供すること。【解決手段】対応するカラムにおけるベリファイ・フェイルの有無を示す第１情報FI<0:n>を保持可能な複数の保持回路33-1〜33-nと、それぞれがいずれかの前記カラムに対応付けられ、且ついずれかの前記カラムにおけるベリファイ・フェイルの有無を示す論理レベルを次段に出力するように直列接続された複数の第１論理ゲート51-0〜51-nを含む論理ゲートチェーン50とを具備し、前記論理ゲートチェーン50は、各々の前記第１論理ゲート51-0〜51-nの出力する論理レベルPoFの示す内容が、ベリファイ・フェイルのある前記カラムを境界にして反転するように構成されている。【選択図】図１
2011170927.tif 000002
【特許請求の範囲】
【請求項１】
ロウ及びカラムに関連付けられ、データ保持可能な複数のメモリセルと、
いずれかの前記カラムに対応付けられ、それぞれ対応する前記カラムにおけるベリファイ・フェイルの有無を示す第１情報を保持可能な複数の保持回路と、
それぞれがいずれかの前記カラムに対応付けられ、且ついずれかの前記カラムにおけるベリファイ・フェイルの有無を示す論理レベルを次段に出力するように直列接続された複数の第１論理ゲートを含む論理ゲートチェーンと
を具備し、前記論理ゲートチェーンは、各々の前記第１論理ゲートの出力する論理レベルの示す内容が、ベリファイ・フェイルのある前記カラムに対応する前記第１論理ゲートを境界にして反転するように構成されている
ことを特徴とする半導体記憶装置。
【請求項２】
前記第１論理ゲートの各々は、対応する前記保持回路の保持する前記第１情報と、前段の前記第１論理ゲートの出力との論理演算を行い、
前記前段の第１論理ゲートの出力する前記論理レベルが前記ベリファイ・フェイルの無いことを示す場合、前記第１情報に基づいて前記論理レベルを決定し、且つ
前記前段の第１論理ゲートの出力する前記論理レベルが前記ベリファイ・フェイルの有ることを示す場合、前記第１情報にかかわらず、前記ベリファイ・フェイルの有ることを示す前記論理レベルを出力する
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
前記境界に位置する前記第１論理ゲートに対応する前記保持回路をリセット可能に構成されたリセット命令部を更に備える
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項４】
前記リセット命令部は、それぞれがいずれかの前記カラムに対応付けられ、且つ対応する前記保持回路をリセットするリセット信号を出力する複数の第２論理ゲートを備え、
前記第２論理ゲートは、対応する前記保持回路の保持する前記第１情報と、対応する前記第１論理ゲートの前段の前記第１論理ゲートの出力とに基づいて、前記境界に相当する前記第２論理ゲートのみが、前記リセット信号を出力する
ことを特徴とする請求項３記載の半導体記憶装置。
【請求項５】
前記リセット命令部は、前記保持回路を順次リセットすることにより、前記ベリファイ・フェイルの無いことを示す内容の前記論理レベルを、前記論理ゲートチェーンにおける最終段の前記第１論理ゲートまで伝播させる
ことを特徴とする請求項３記載の半導体記憶装置。
【請求項６】
前記論理ゲートチェーンにおける前記第１論理ゲートの出力に基づいて、前記メモリセルについてのベリファイ結果が判断される
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項７】
前記カラムの各々は、複数のビットを含んで構成され、
前記ベリファイ・フェイルの有ることを示す第１情報を保持する保持回路に対応するカラムにつき、フェイルビット数を検出する検出回路を更に備える
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項８】
ロウ及びカラムに関連付けられ、データ保持可能な複数のメモリセルと、
第１カラムに対応付けられ、前記第１カラムにおけるベリファイ・フェイルの有無を示す第１情報を保持可能な第１保持回路と、
第２カラムに対応付けられ、前記第２カラムにおけるベリファイ・フェイルの有無を示す第２情報を保持可能な第２保持回路と、
前記第１情報に応じて、前記ベリファイ・フェイルの有無を示す第１信号を出力する第１論理ゲートと、
前記第２情報及び前記第１信号に応じて、前記ベリファイ・フェイルの有無を示す第２信号を出力する第２論理ゲートと
を具備し、前記第２論理ゲートは、前記第１信号が前記ベリファイ・フェイルの有ることを示す場合には、前記第２情報に関わらず前記ベリファイ・フェイルの有ることを示す第２信号を出力し、前記第１信号が前記ベリファイ・フェイルの無いことを示す場合には、前記第２情報に応じて前記第２信号を出力する
ことを特徴とする半導体記憶装置。
【請求項９】
前記第１、第２保持回路をリセット可能なリセット命令部を更に備える
ことを特徴とする請求項８記載の半導体記憶装置。
【請求項１０】
前記リセット命令部は、前記第１情報に基づいて前記第１保持回路をリセットする第１リセット命令を発行する第３論理ゲートと、
前記第２情報と、前記第１信号とに基づいて前記第２保持回路をリセットする第２リセット命令を発行する第４論理ゲートと
を備え、前記第４論理ゲートは、前記第１信号が前記ベリファイ・フェイルの有ることを示す場合には、前記第２リセット命令を発行せず、前記第１信号が前記ベリファイ・フェイルの無いことを示す場合には、前記第２情報に基づいて前記第２リセット命令を発行する
ことを特徴とする請求項９記載の半導体記憶装置。
【請求項１１】
前記第１、第２論理ゲートの出力に基づいて、前記メモリセルについてのベリファイ結果が判断される
ことを特徴とする請求項８記載の半導体記憶装置。
【請求項１２】
前記カラムの各々は、複数のビットを含んで構成され、
前記ベリファイ・フェイルを示す第１、第２情報を保持する保持回路に対応するカラムにつき、フェイルビット数を検出する検出回路を更に備える
ことを特徴とする請求項８記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体記憶装置に関する。例えば、半導体メモリにおけるベリファイ結果の判定方法に関する。
【背景技術】
【０００２】
従来のＮＡＮＤ型フラッシュメモリにおいては、データの書き込み時においてはベリファイが実行される（例えば、特許文献１参照）。その結果、ビットエラーが予め決められた数以下であれば、このビットエラーを許容して、プログラムシーケンスを終了する機能（以下、疑似パス機能と呼ぶ）が知られている。本方法を用いることで、データの書き込み速度を向上出来る。
【０００３】
本方法を用いるためには、ビットエラー数をカウントする回路技術が必要となる。この回路技術は、従来、例えば二分法を用いてカラムを絞り込むこと等により実現される。
【０００４】
しかしながら、上記二分法を用いる手法であるとカラムの特定に時間がかかり、ＮＡＮＤ型フラッシュメモリが大容量化するほど、データの書き込み速度が低下する、という問題があった。
【０００５】
また、二分法によるカラム特定では、カラムアドレスを全選択の状態から、半分だけ活性化し、更にその半分を活性化し、…、というように絞り込んでいき、その都度フェイルカラムの有無を判定する。そのため、カラム特定の期間、カラムアドレス系の回路を占有してしまう。よってこの間、外部からのアドレス入力を受け付けられない、もしくは検知動作を中断してアドレス入力後に最初からやり直す、といった措置が必要になるという問題があった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３９３５１３９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
この発明は、ベリファイ・フェイルしているカラムを特定する際に、カラムアドレス系の回路を使用する事無く、高速に検知動作を行なう事を実現し、データの書き込み速度を向上出来る半導体記憶装置を提供する。
【課題を解決するための手段】
【０００８】
この発明の一態様に係る半導体記憶装置は、ロウ及びカラムに関連付けられ、データ保持可能な複数のメモリセルと、いずれかの前記カラムに対応付けられ、それぞれ対応する前記カラムにおけるベリファイ・フェイルの有無を示す第１情報を保持可能な複数の保持回路と、それぞれがいずれかの前記カラムに対応付けられ、且ついずれかの前記カラムにおけるベリファイ・フェイルの有無を示す論理レベルを次段に出力するように直列接続された複数の第１論理ゲートを含む論理ゲートチェーンとを具備し、前記論理ゲートチェーンは、各々の前記第１論理ゲートの出力する論理レベルの示す内容が、ベリファイ・フェイルのある前記カラムに対応する前記第１論理ゲートを境界にして反転するように構成されている。
【発明の効果】
【０００９】
本発明によれば、ベリファイ・フェイルしているカラムを特定する際に、カラムアドレス系の回路を使用する事無く、高速に検知動作を行なう事を実現し、データの書き込み速度を向上出来る半導体記憶装置を提供出来る。
【図面の簡単な説明】
【００１０】
【図１】この発明の第１実施形態に係るフラッシュメモリのブロック図。
【図２】第１実施形態に係るメモリセルアレイの回路図。
【図３】第１実施形態に係る書き込み動作のタイミングチャート。
【図４】第１実施形態に係る書き込み動作のフローチャート。
【図５】第１実施形態に係るフラッシュメモリのブロック図。
【図６】第１実施形態に係るフラッシュメモリのブロック図。
【図７】第１実施形態に係るフラッシュメモリのブロック図。
【図８】第１実施形態に係る各種信号のタイミングチャート。
【図９】この発明の第２実施形態に係るフラッシュメモリのブロック図。
【図１０】第２実施形態に係るフラッシュメモリのブロック図。
【図１１】第２実施形態に係るフラッシュメモリのブロック図。
【図１２】第２実施形態に係るフラッシュメモリのブロック図。
【発明を実施するための形態】
【００１１】
以下、この発明の実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【００１２】
［第１の実施形態］  
この発明の第１の実施形態に係る半導体記憶装置について、ＮＡＮＤ型フラッシュメモリを例に挙げて説明する。
【００１３】
＜ＮＡＮＤ型フラッシュメモリの構成について＞  
図１は、本実施形態に係るＮＡＮＤ型フラッシュメモリのブロック図である。図示するようにＮＡＮＤ型フラッシュメモリ１は、メモリセルアレイ１０、センスアンプ２０−０〜２０−ｍ、保持部３０、リセット部４０、フェイルサーチチェーン（fail search chain）５０、及びリセット命令部６０をを備えている。以下、それぞれについて説明する。
【００１４】
＜メモリセルアレイ１０＞  
メモリセルアレイ１０は、データを保持可能な複数のメモリセルトランジスタを備えている。図２は、メモリセルアレイ１０の回路図である。図示するようにメモリセルアレイ２は、複数のＮＡＮＤセル１１を備えている。ＮＡＮＤセル１１の各々は、例えば３２個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ３１）と、選択トランジスタＳＴ１、ＳＴ２とを含んでいる。メモリセルトランジスタＭＴは、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（例えば浮遊ゲート）と、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲートとを有する積層ゲート構造を備えている。なお、メモリセルトランジスタＭＴの個数は３２個に限られず、８個や１６個、６４個、１２８個、２５６個等であってもよく、その数は限定されるものではない。また、電荷蓄積層は絶縁物を材料に用いて形成されても良い。メモリセルトランジスタＭＴは、隣接するもの同士でソース、ドレインを共有している。そして、選択トランジスタＳＴ１、ＳＴ２間に、その電流経路が直列接続されるようにして配置されている。直列接続されたメモリセルトランジスタＭＴの一端側のドレインは選択トランジスタＳＴ１のソースに接続され、他端側のソースは選択トランジスタＳＴ２のドレインに接続されている。
【００１５】
同一行にあるメモリセルトランジスタＭＴの制御ゲートはワード線ＷＬ（ＷＬ０〜ＷＬ３１）のいずれかに共通接続され、同一行にある選択トランジスタＳＴ１、ＳＴ２のゲートは、それぞれセレクトゲート線ＳＧＤ、ＳＧＳに共通接続されている。更に、選択トランジスタＳＴ１のドレインはビット線ＢＬ（ＢＬ０〜ＢＬｍ（ｍは２以上の自然数））のいずれかに接続され、選択トランジスタＳＴ２のソースはソース線ＳＬに共通接続される。
【００１６】
以上の構成において、ワード線ＷＬ及びセレクトゲート線ＳＧＤ、ＳＧＳを共通にする複数のＮＡＮＤセル８によって、１つのブロックと呼ばれる単位が形成される。同一のブロック内のメモリセルトランジスタＭＴは、一括してデータが消去される。更に、同一のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴには、一括してデータが書き込まれ、この単位はページと呼ばれる。
【００１７】
そして図１に示すように、ビット線ＢＬ０から順に、隣接する８本のビット線ＢＬが、１つのカラムという単位を構成する。本実施形態では（ｎ＋１）個のカラムＣ０〜Ｃｎが含まれる（（ｎ＋１）は１以上の自然数）。つまりカラムＣｉ（ｉは０〜ｎの整数）には、ビット線ＢＬ８ｉ〜ＢＬ（８ｉ＋７）が属することとなる。
【００１８】
＜センスアンプ２０＞  
次にセンスアンプ２０−０〜２０−ｍについて説明する。図１に示すようにセンスアンプ２０−ｊ（ｊは０〜ｍの整数）はそれぞれ、ビット線ＢＬｊに対応して設けられる。そしてデータの読み出し時には、ビット線ＢＬｊに読み出されたデータをセンス・増幅し、これを一時的に保持する。他方、データの書き込み時にはプログラムデータを一時的に保持し、これをビット線ＢＬｊに転送する。またベリファイ時には、各ビット線ＢＬｊにつきベリファイにパスしたか否かの情報（パス／フェイル情報）を一時的に保持して、これを保持部３０に転送する。以下では、ベリファイにパスしなかったことを、フェイル、またはベリファイ・フェイルと呼ぶ。
【００１９】
＜保持部３０＞  
次に保持部３０について説明する。保持部３０は、ＯＲゲート３１−０〜３１−ｎ、ＭＯＳトランジスタ３２−０〜３２−ｎ、及びフェイルレジスタ３３−０〜３３−ｎを備えている。ＯＲゲート３１−ｉはカラムＣｉに対応付けて設けられる。そして、カラムＣｉに対応するセンスアンプ２０の出力するパス／フェイル情報についての論理和演算を行う。ＭＯＳトランジスタ３２−ｉはカラムＣｉに対応付けて設けられる。そしてカラムＣｉに対応するＯＲゲート３１−ｉにおける演算結果を、それぞれフェイルレジスタ３３−ｉに転送する。ＭＯＳトランジスタ３２−ｉのゲートには、信号ＴＳＥＴが共通して入力される。フェイルレジスタ３３−ｉはカラムＣｉに対応付けて設けられる。そしてカラムＣｉに対応するＯＲゲート３１−ｉの演算結果を保持し、この演算結果に基づいて信号ＦＩ＜ｉ＞を出力する。
【００２０】
例えばセンスアンプ２０は、対応するビット線ＢＬについてのベリファイの結果がパスだった際には“Ｌ”レベルを出力し、フェイルだった際には“Ｈ”レベルを出力する。従って各ＯＲゲート３１では、対応するカラムＣｉ内に１ビットでもフェイルがあれば、演算結果は“Ｈ”レベルとなる。フェイルレジスタ３３は、この演算結果を保持する。そして、対応するＯＲゲート３１の演算結果が“Ｈ”レベルであれば信号ＦＩを“Ｈ”レベルとし、演算結果が“Ｌ”レベルであれば信号ＦＩを“Ｌ”レベルとする。フェイルレジスタ３３は、リセット部４０によりリセットされると、信号ＦＩを“Ｌ”レベルとする。従って信号ＦＩは、対応するカラムにおけるフェイルの有無を示すパス／フェイル情報である、と言うことも出来る。
【００２１】
＜フェイルサーチチェーン５０＞  
フェイルサーチチェーン５０は、論理ゲート５１−０〜５１−ｎ及びインバータ５２を備えている。論理ゲート５１−ｉはカラムＣｉに対応付けて設けられる。そして論理ゲート５１−０〜５１−ｎは順番に直列接続されている。論理ゲート５１の例はＡＮＤゲートである。
【００２２】
直列接続の初段の論理ゲート５１−０は、図示せぬ制御部から与えられる信号ＳＴＲＴと、対応するフェイルレジスタ３３−０が出力する信号ＦＩ＜０＞の反転信号との論理積演算を行い、これを信号ＰｏＦ＜０＞として出力する。二段目以降の論理ゲート５１−ｉは、前段の論理ゲート５１−（ｉ−１）の出力する信号ＰｏＦ＜ｉ−１＞と、対応するフェイルレジスタ３３−ｉの出力する信号ＦＩ＜ｉ＞との論理積演算を行い、これを信号ＰｏＦ＜ｉ＞として出力する。インバータ５２は、最終段の論理ゲート５１−ｎが出力する信号を反転し、反転結果を信号ＦＬＡＧとして出力する。
【００２３】
＜リセット命令部６０＞  
リセット命令部６０は、論理ゲート６１−０〜６１−ｎを備えている。論理ゲート６１−ｉはカラムＣｉに対応付けて設けられる。論理ゲート６１の例はＡＮＤゲートである。
【００２４】
論理ゲート６１−０は、信号ＳＴＲＴと、対応するフェイルレジスタ３３−０が出力する信号ＦＩ＜０＞との論理積演算を行い、演算結果を信号ＰＦＢ＜０＞として出力する。論理ゲート６１−１以降は、対応する論理ゲート５１−ｉの前段の論理ゲート５１−（ｉ−１）の出力する信号ＰｏＦ＜ｉ−１＞と、対応するフェイルレジスタ３３−ｉの出力する信号ＦＩ＜ｉ＞との論理積演算を行い、演算結果を信号ＰＦＢ＜ｉ＞として出力する。
【００２５】
＜リセット部４０＞  
リセット部４０は、ＡＮＤゲート４１−０〜４１−ｎ及びＯＲゲート４２−０〜４２−ｎを備えている。ＡＮＤゲート４１−ｉ及びＯＲゲート４２−ｉはカラムＣｉに対応付けて設けられる。
【００２６】
ＯＲゲート４２−ｉは、制御部から与えられる信号ＣＯＬＡと、対応する論理ゲート６１−ｉの出力する信号ＰＦＢ＜ｉ＞との論理和演算を行う。ＡＮＤゲート４１−ｉは、制御部から与えられる信号ＴＲＳＴと、対応するＯＲゲート４２−ｉとの論理積演算を行い、演算結果を信号ＲＲＳＴ＜ｉ＞として出力する。信号ＲＲＳＴ＜ｉ＞は、フェイルレジスタ３３−ｉの保持する情報をリセットするための信号である。
【００２７】
＜ＮＡＮＤ型フラッシュメモリの書き込み動作について＞  
次に、本実施形態に係るＮＡＮＤ型フラッシュメモリ１のデータ書き込み動作について説明する。
【００２８】
＜プログラムシーケンスについて＞  
まず、データ書き込み動作の大まかな流れについて、図３を用いて説明する。図３は、ＮＡＮＤ型フラッシュメモリ１のプログラムシーケンスを示すタイミングチャートである。
【００２９】
図示するように、プログラムコマンドが外部から発行されると、ＮＡＮＤ型フラッシュメモリ１はビジー状態となり、プログラムシーケンスがスタートする。まず、プログラム動作が行われることにより、メモリセルトランジスタＭＴに対して１回目のデータプログラムがページ単位で実行される。その後、ベリファイ動作が実行される。ベリファイ動作では、プログラムされたメモリセルトランジスタＭＴに対して内部的に読み出しが行われ、センスアンプ２０には十分にプログラムが行われたかどうかの情報（パス／フェイル情報）が格納される。
【００３０】
ベリファイが終了すると、引き続き検知動作が行われる。検知動作では、ベリファイ動作でセンスアンプ２０に格納されたパス／フェイル情報がフェイルレジスタ３３に読み出され、フェイルビットが存在するかどうかが検知される。このプログラム、ベリファイ、及び検知の３つの動作を合わせて、以後、プログラム・ピリオドと呼ぶ。
【００３１】
検知動作の結果としてパス・フェイル（pass/fail）信号が生成され、フェイルビットが存在するカラムＣがある場合にはフェイルが出力され、無い場合にはパスが出力される。ＮＡＮＤ型フラッシュメモリ１は、パス・フェイル信号がフェイルならば２回目のプログラム・ピリオドを実行し、パスならばプログラムシーケンスを抜けてレディ状態に戻る。
【００３２】
大容量化・微細化が進む中で、全てのメモリセルトランジスタに十分なプログラムを行うと、プログラム・ピリオドの繰り返し回数は膨大となり、プログラムシーケンスに要する時間が増大する。そこで本実施形態に係るＮＡＮＤ型フラッシュメモリ１では疑似パス機能を採用している。すなわち、予め決められた許容数以下のビットエラーならば、例え書き込みが不完全な状態であっても、プログラムシーケンスを終了する。これによりプログラム時間を高速化する。
【００３３】
この疑似パス機能を実現する手段として、ベリファイ動作の結果、フェイルとなったメモリセルトランジスタのビット数をカウントする回路技術が必要となる。この回路が、図１におけるフェイルサーチチェーン５０、リセット命令部６０、及びリセット部４０である。
【００３４】
＜プログラムシーケンスの詳細について＞  
次に、上記プログラムシーケンスの詳細について、図４を用いて説明する。図４は、ＮＡＮＤ型フラッシュメモリ１のデータ書き込み動作のフローチャートであり、特に疑似パス機能を実現するための手法に特に着目したものである。
【００３５】
（ステップＳ１０）  
まず第１のステップＳ１０として、プログラム動作を行われる。プログラム動作は、周知の方法によって実行可能である。
【００３６】
（ステップＳ２０）  
引き続き第２のステップＳ２０として、ベリファイ動作が行われる。ベリファイ動作も、周知の方法によって実行可能である。ベリファイ動作では、プログラムを行ったメモリセルトランジスタＭＴに対して内部的にデータの読み出しが行われる。そして各ビットに対応して設けられたセンスアンプ２０にベリファイ結果が格納される。
【００３７】
（ステップＳ３０）  
その後第３のステップＳ３０として、検知動作が行われる。検知動作では、ベリファイの結果を、センスアンプ２０からフェイルレジスタ３３に転送し、フェイルビットの数をカウントして、予め設定されたビットエラー許容数ＮＦとの比較を行う。検知動作は以下の通りに実行される。
【００３８】
まず、フェイルレジスタ３３のリセットが行われる（ステップ３１）。すなわち、例えば制御部が信号ＴＲＳＴ及びＣＯＬＡを“Ｈ”レベルとする。その結果、信号ＲＲＳＴの全てがアサート（本例の場合には“Ｈ”レベル）され、フェイルレジスタ３３の全てがリセットされる。前述の通りフェイルレジスタ３３は、リセットされた状態では信号ＦＩを“Ｌ”レベル（フェイルの不存在を意味する論理レベル）とする。その後、制御部は信号ＴＲＳＴ及びＣＯＬＡを共に“Ｌ”レベルとする。
【００３９】
次にフェイルレジスタ３３へパス・フェイル情報がセットされる（ステップＳ３２）。すなわち、例えば制御部が信号ＴＳＥＴを“Ｈ”レベルとして、ＭＯＳトランジスタ３２をオン状態とする。その結果、ＯＲゲート３１−０〜３１−ｎの演算結果が、それぞれフェイルレジスタ３３−０〜３３−ｎにセットされる。すなわち、あるカラムＣに１つでもフェイルビットがあれば、対応するフェイルレジスタ３３には“Ｈ”レベルがセットされる。そして、“Ｈ”レベルのセットされたフェイルレジスタ３３の出力する信号ＦＩは“Ｈ”レベル（フェイルの存在を意味する論理レベル）となる。
【００４０】
次に、例えば制御部が信号ＳＴＲＴを“Ｈ”レベルとすることで、フェイルのあるカラムＣのサーチが開始される（ステップＳ３３）。フェイルの有無は、信号ＦＬＡＧによって判断される。すなわち、カラムＣ０〜Ｃｎの全てにフェイルが無ければ、信号ＦＬＡＧが“Ｌ”レベルとなり（ステップＳ３４、ＮＯ）、プログラムはパスする。そしてプログラムシーケンスは終了する。
【００４１】
カラムＣ０〜Ｃｎの少なくともいずれかにフェイルが存在すれば、信号ＦＬＡＧは“Ｈ”レベルとなる（ステップＳ３４、ＹＥＳ）。この場合、あるカラムＣｋ（ｋは０〜ｎのいずれかを取る変数）にフェイルがあると、信号ＰｏＦ＜０＞〜ＰｏＦ＜ｋ−１＞が“Ｈ”レベル、信号ＰｏＦ＜ｋ＞〜ＰｏＦ＜ｎ−１＞が“Ｌ”レベルとなり、また信号ＰＦＢ＜ｋ＞＝“Ｈ”レベルとなる。但し、カラムＣｋは、フェイルのあるカラムＣｉのうち、サフィックスｉの最も小さいものである（複数のカラムにフェイルがある場合）。言い換えれば、フェイルのあるカラムＣのうちで、最もカラムアドレスの小さいものである。また別の言い方をするならば、フェイルのあるカラムＣのうちで、論理ゲート５１の直列接続において最も入力側に近い論理ゲート５１に対応付けられたものである。このように、信号ＰｏＦが、カラムＣｋを境に“Ｈ”レベルから“Ｌ”レベルに変化すること、及び／または信号ＰＦＢ＜ｋ＞が“Ｈ”レベルであることにより制御部は、少なくともカラムＣｋにフェイルがあることを認識する。
【００４２】
次に制御部は、フェイルビットカウントを実行する（ステップＳ３６）。本ステップは、例えば図１では図示を省略した検出回路によって行われ、検出回路は、ステップＳ３５で特定されたカラムＣｋの各ビットを調査し、フェイルビット数をカウントする。そしてカウントされたフェイルビット数を、その内部に有する累積加算レジスタに加算する。本ステップも、周知の手法によって実行可能である。
【００４３】
次に制御部は、フェイル数判定を行う（ステップＳ３７）。本ステップにおいて制御部は、累積加算レジスタに格納された累積フェイルビット数が、予め定められたビットエラー許容数ＮＦを超えているかどうか判定する。もし超えていれば（ステップＳ３７、ＹＥＳ）、制御部はプログラム・ピリオドの繰り返し回数（ループ数）が設定値以内であれば（ステップＳ４０、ＮＯ）、ステップＳ１０に戻って次のプログラム・ピリオドに遷移する。他方、設定値を超えていれば（ステップＳ４０、ＹＥＳ）、プログラムはフェイルとなる。そしてプログラムシーケンスは終了する。
【００４４】
ステップＳ３７において、累積フェイルビット数が、予め定められたビットエラー許容数ＮＦを超えていなければ（ステップＳ３７、ＮＯ）、次に制御部は、フェイルレジスタのリセットを行う（ステップＳ３８）。すなわち制御部は、信号ＴＲＳＴを“Ｈ”レベルとする。信号ＣＯＬＡは“Ｌ”レベルのままである。これにより、ステップＳ３６でフェイルビットカウントの実行されたカラムＣｋに対応する信号ＲＲＳＴ＜ｋ＞が“Ｈ”レベルとなり、フェイルレジスタ３３−ｋがリセットされる。その他のレジスタ３３についてはリセットされない。そしてステップＳ３４に戻る。
【００４５】
以上のように検知動作は、信号ＦＬＡＧが“Ｈ”レベルであった場合には、まずフェイルのあるいずれか１つのカラムＣｋを特定して、当該カラムＣｋ内のフェイルビット数をカウントする。これを、フェイルのある全てのカラムＣについて実行し、フェイルビット数の累積値がある設定値を超えなければ、プログラムはパスする。
【００４６】
＜検知動作の具体例について＞  
次に、上記検知動作時における保持部３０、フェイルサーチチェーン５０、及びリセット命令部６０の動作の具体例について、図５乃至図７を用いて説明する。図５乃至図７は、保持部３０、フェイルサーチチェーン５０、及びリセット命令部６０の回路図であり、特に本説明に必要な部分のみを示したものである。
【００４７】
（フェイルが無い場合）  
まず、フェイルが無い場合について、図５を用いて説明する。フェイルが無い場合、信号ＦＩは全て“Ｌ”レベルである。この状態において信号ＳＴＲＴが“Ｌ”レベルから“Ｈ”レベルになることでフェイルの検知が開始される。すると、まず論理ゲート５１−０の演算結果が“Ｈ”レベルとなり、これに基づいて論理ゲート５１−１の演算結果が“Ｈ”レベルとなり、これに基づいて論理ゲート５１−２の演算結果が“Ｈ”レベルとなり、以下、論理ゲート５１−ｎまで同様である。つまり、信号ＳＴＲＴとして入力された“Ｈ”レベルが、論理ゲート５１−０から論理ゲート５１−ｎまで順次転送される。その結果、信号ＦＬＡＧは“Ｌ”レベルとなり（図４のステップＳ３４、ＮＯ）、制御部はフェイルが存在しないことを認識する。
【００４８】
（フェイルがある場合）  
次に、フェイルがある場合について、例えばカラムＣ２及びＣ（ｎ−１）にフェイルがある場合を例に用いて、図６及び図７を参照しつつ説明する。
【００４９】
まず図６に示すように、フェイルレジスタ３３−２、３３−（ｎ−１）にフェイルが格納されているので、信号ＦＩ＜２＞、ＦＩ＜ｎ−１＞が“Ｈ”レベルとなる。この状態において信号ＳＴＲＴが“Ｌ”レベルから“Ｈ”レベルになることでフェイルの検知が開始される。すると、信号ＰｏＦ＜０＞、ＰｏＦ＜１＞は共に“Ｈ”レベルとなるが、信号ＦＩ＜２＞が“Ｈ”とされているので、信号ＰｏＦ＜２＞〜ＰｏＦ＜ｎ−１＞は“Ｌ”レベルとなる。その結果、信号ＦＬＡＧが“Ｈ”レベルとなり（図４のステップＳ３４、ＹＥＳ）、制御部はいずれかのカラムにフェイルがあることを認識する。
【００５０】
ここで、信号ＰｏＦは、ＰｏＦ＜１＞までが“Ｈ”レベル、ＰｏＦ＜２＞以降が“Ｌ”レベルとなり、フェイルが存在するカラムＣ２に対応するフェイルレジスタ３３−２を境に信号ＰｏＦの論理レベルが変化している。そしてこの信号ＰｏＦの境界を論理的に示しているのが信号ＰＦＢ（Pass Fail Border）である。この信号ＰＦＢは、信号ＦＩと信号ＰｏＦの論理積演算結果であり、３番目のフェイルレジスタ３３−２の信号ＦＩ＜２＞と信号ＰｏＦ＜１＞の両方が“Ｈ”レベルとなっているので、信号ＰＦＢ＜２＞が“Ｈ”レベルとなる（図４のステップＳ３５、ｊ＝２）。他方、ＦＩ＜０＞、ＦＩ＜１＞は“Ｌ”レベルであるのでＰＦＢ＜０＞、ＰＦＢ＜１＞は“Ｌ”レベルであり、またＰｏＦ＜２＞〜ＰｏＦ＜ｎ−１＞が“Ｌ”レベルなのでＰＦＢ＜３＞〜ＰＦＢ＜ｎ＞も“Ｌ”レベルである。そして制御部は、信号ＰＦＢ＜２＞が“Ｈ”レベルであることから、３番目のカラムＣ２にフェイルがあることを認識し、カラムＣ２に対してフェイルビットカウントを行う（ステップＳ３６）。
【００５１】
フェイルビットカウントの後、制御部はフェイルレジスタ３３−２をリセットする（ステップＳ３８）。すなわち制御部は、信号ＴＲＳＴを“Ｈ”レベルとする。すると、信号ＰＦＢ＜２＞が“Ｈ”レベルであるので、信号ＲＲＳＴ＜２＞のみが“Ｈ”レベルとなり、フェイルレジスタ３３−２のみがリセットされる。その他の信号ＲＲＳＴ＜０＞、ＲＲＳＴ＜１＞、ＲＲＳＴ＜３＞〜ＲＲＳＴ＜ｎ＞は、信号ＰＦＢ＜０＞、ＰＦＢ＜１＞、ＰＦＢ＜３＞〜ＰＦＢ＜ｎ＞が“Ｌ”レベルであるので、“Ｌ”レベルを維持する。よってフェイルレジスタ３３−０、３３−１、３３−３〜３３−ｎはリセットされない。
【００５２】
図６の処理の後の状態が図７である。フェイルレジスタ３３−２がリセットされた後も、フェイルレジスタ３３−（ｎ−１）にフェイルが残っているので、信号ＦＬＡＧは“Ｈ”レベルを維持する（ステップＳ３４、ＹＥＳ）。しかし、フェイルレジスタ３３−２がリセットされているので、信号ＰｏＦは、ＰｏＦ＜０＞からＰｏＦ（ｎ−２）までが“Ｈ”レベルとなり、ＰＦＢ＜ｎ−１＞が“Ｈ”レベルとなる。よって制御部は、カラムＣ（ｎ−１）に対してフェイルビットカウントを行い、引き続きＰＦＢ＜ｎ−１＞を用いてフェイルレジスタ３３（ｎ−１）をリセットする。
【００５３】
以上の結果、フェイルレジスタ３３の全てにフェイルは存在しなくなる。すなわち、図５と同様の状態となって信号ＦＬＡＧは“Ｌ”レベルとなる（ステップＳ３４、ＮＯ）。
【００５４】
（フェイルがある場合の動作タイミング）  
上記カラムＣ２及びＣ（ｎ−１）にフェイルがある場合における処理時の動作タイミングについて、図８を用いて説明する。図８は、信号ＣＯＬＡ、ＴＲＳＴ、ＴＳＥＴ、ＳＴＲＴ、ＦＩ＜０＞〜ＦＩ＜３＞、ＦＩ＜ｎ−１＞、ＦＩ＜ｎ＞、ＰｏＦ＜０＞〜ＰｏＦ＜３＞、ＰｏＦ＜ｎ−１＞、ＦＬＡＧ、ＰＦＢ＜０＞〜ＰＦＢ＜３＞、ＰＦＢ＜ｎ−１＞、及びＰＦＢ＜ｎ＞のタイムチャートである。
【００５５】
・時刻ｔ１  
まず、制御部は信号ＣＯＬＡ（カラム一括選択信号）と、信号ＴＲＳＴ（フェイルレジスタリセット信号）とを“Ｈ”レベルにして、全てのフェイルレジスタ３３の出力（信号ＦＩ＜０＞〜ＦＩ＜ｎ＞）をリセットする。これによって、フェイルサーチチェーン５０における各ステージの出力であるＰｏＦが全て“Ｈ”レベルとなる。
【００５６】
・時刻ｔ３  
次に時刻ｔ３において制御部は、信号ＴＳＥＴ（フェイルレジスタセット信号）を“Ｈ”レベルとして、各センスアンプ２０からフェイルレジスタ３３にフェイル情報をセットする。これにより、カラムＣ２に対応する信号ＦＩ＜２＞と、カラムＣ（ｎ−１）に対応する信号ＦＩ＜ｎ−１＞が“Ｈ”レベルとなる。
【００５７】
・時刻ｔ５  
次に時刻ｔ５において制御部は、信号ＳＴＲＴ（フェイルサーチ開始信号）を“Ｈ”レベルとすることにより、フェイルサーチを開始する。信号ＳＴＲＴが“Ｈ”レベルとなることで、フェイルサーチチェーン５０の各ステージを順次、信号ＰｏＦが伝播し、フェイル情報（ＦＩ）が“Ｈ”レベルである最初のカラム（本例の場合カラムＣ２）でＰｏＦが“Ｌ”レベルとなり、これ以降のＰｏＦは全て“Ｌ”レベルに変化する。その結果、信号ＦＬＡＧは“Ｌ”レベルとなる。
【００５８】
カラムＣ２のＰｏＦ＜２＞が“Ｌ”レベルとなったことで、信号ＰＦＢ＜２＞も“Ｈ”レベルとなる。よって制御部は、カラムＣ２に対してフェイルビットカウントを開始する。フェイルビットカウントでは、当該カラムＣ２に所属する各ビットを調査し、フェイルが格納されたビット数をカウントして累積加算レジスタに格納する。そして制御部は、累積されたフェイル数をフェイルビット許容数ＮＦと比較し、これを超えていなければ次のステップに進む。
【００５９】
・時刻ｔ７  
カラムＣ２についてのフェイルビットカウントが終了すると、時刻ｔ７において制御部は、信号ＴＲＳＴを“Ｈ”レベルとして、信号ＰＦＢが“Ｈ”レベルであるカラム（本例ではカラムＣ２）のフェイルレジスタ３３−２（ＦＩ＜２＞）をリセットする。信号ＦＩ＜２＞がリセットされることで、信号ＰｏＦ＜２＞が“Ｌ”レベルに戻り、フェイルサーチチェーン５０の伝播が再開される。
【００６０】
・時刻ｔ９  
伝播再開後、カラムＣ（ｎ−１）の信号ＰｏＦ＜ｎ−１＞は、信号ＦＩ＜ｎ−１＞が“Ｈ”レベルであるので、“Ｌ”レベルのままである。そして信号ＰＦＢ＜ｎ−１＞が“Ｈ”レベルとなり、カラムＣ（ｎ−１）についてのフェイルビットカウントが開始される。
【００６１】
・時刻ｔ１１  
カラムＣ（ｎ−１）についてのフェイルビットカウントが終了すると、時刻ｔ１１において制御部は、信号ＴＲＳＴを“Ｈ”レベルとして、フェイルレジスタ３３−（ｎ−１）（ＦＩ＜ｎ−１＞）をリセットする。信号ＦＩ＜ｎ−１＞がリセットされることで、信号ＰｏＦ＜ｎ−１＞が“Ｌ”レベルに戻り、フェイルサーチチェーン５０の伝播が再開される。
【００６２】
・時刻ｔ１２  
時刻ｔ１１でフェイルレジスタ３３−２がリセットされた結果、フェイルサーチチェーン５０では、“Ｈ”レベルの信号ＰｏＦが最終段の論理ゲート５１−ｎまで伝播し、信号ＦＬＡＧが“Ｌ”レベルとなる。その結果、全カラムのフェイルサーチが終了する。
【００６３】
＜効果＞  
上記のように、本実施形態に係る半導体記憶装置であると、データの書き込み速度を向上出来る。本効果について、以下説明する。
【００６４】
ＮＡＮＤ型フラッシュメモリ等の半導体メモリは、モバイル機器等において画像や動画などの大容量のデータを扱う用途の増加と共に、その需要が急増している。そしてメモリ領域の大容量化に伴い、メモリセルの微細化が進み、その歩留まりと信頼性が問題となっている。これに対して、メモリセルへの書き込み及びメモリセルからの読み出しに、ある確率でエラーが発生することを補う技術として、ＥＣＣ技術が広く使用されている。
【００６５】
また、メモリチップにおいては、メモリセルに対する書き込みが正しく行われたか否かを確認するベリファイ動作が行われ、書き込みが不十分なメモリセルに対しては再度書き込みが行われる。この際、疑似パス機能を採用することで、書き込み速度の短縮が試みられている。
【００６６】
そして背景技術で述べた通り、疑似パス機能を実現するための技術として、二分法（バイナリ・サーチ）を用いた回路技術が知られている。二分法を用いた方法は、大まかには次の通りである。
【００６７】
まず、カラム毎に設けられたフェイルレジスタを、２つのグループに分け、いずれか一方のグループに属するフェイルレジスタを選択して、パス・フェイル情報を読み出す。もし選択したグループに属するフェイルレジスタにフェイルがあれば、このグループを更に２つのグループに分け、いずれか一方のグループに属するフェイルレジスタを選択して、パス・フェイル情報を読み出す。非選択のグループに属するフェイルレジスタにフェイルがあれば、このグループにつき同様の処理を行う。以上の処理を、１グループ内に含まれるカラム数が１つになるまで繰り返すことで、フェイルの存在するカラムを特定する。
【００６８】
しかしながら本方法では、カラムの特定に非常に時間がかかる。また、フェイルレジスタの選択は、カラムアドレスを用いて行う。つまり、検知動作時に更に別のカラムアドレスを受信することが出来ない。従って、検知動作時にキャッシュリード動作等により外部からのカラムアドレスを受け付ける場合には、検知動作を一旦停止させるか、または検知動作を中断して最初からやり直す必要がある。
【００６９】
この点、本実施形態に係る構成であると、まずフェイルサーチチェーン５０を設けることで、フェイルの存在するカラムの有無を判定（信号ＦＬＡＧ＝“Ｈ”／“Ｌ”）し、リセット命令部６０を設けることで、フェイルの存在するカラムを特定（信号ＰＦＢ＝“Ｈ”）している。
【００７０】
フェイルサーチチェーン５０は論理ゲートの直列接続によって構成され、そして論理ゲート５１を順次伝播する信号ＰｏＦの論理レベルが、フェイルの存在するカラムの前後で反転するように構成されている。またリセット命令部６０は、各カラムに対応する論理ゲート６１の集合によって構成され、信号ＰｏＦの論理レベルが反転する位置において、信号ＰＦＢを特定の論理レベル（本実施形態では“Ｈ”レベル）とするように構成されている。
【００７１】
従って本構成によれば、信号ＴＲＳＴをアサートして検知動作を開始すると、即座に最初のフェイルの存在するカラムを特定出来る。そして当該カラムについてフェイルビットカウントを行って、対応するフェイルレジスタをリセットすると、即座に次のフェイルの存在するカラムを特定出来る。よって、検知動作を高速化出来る。
【００７２】
また、検知動作におけるカラムの特定は、信号ＰｏＦの伝播によって行われるので、カラムアドレスを必要としない。従って、検知動作中であっても外部から別のカラムアドレスを受け付けることが出来、キャッシュリード等が可能となる。
【００７３】
［第２の実施形態］  
次に、この発明の第２の実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第１の実施形態におけるフェイルサーチチェーン５０の論理ゲート５１を変形したものである。その他の構成は第１の実施形態と同様であるので、以下では第１の実施形態と異なる点についてのみ説明する。
【００７４】
＜構成＞  
図９は、本実施形態に係るＮＡＮＤ型フラッシュメモリ１のブロック図である。図示するように本実施形態に係る構成は、第１の実施形態で説明した図１において、フェイルサーチチェーン５０に以下の変更を加えたものである。すなわち、  
・偶数段の論理ゲート５１−０、５１−２、５１−４、…５１−（ｎ−１）を、ＮＡＮＤゲートに置き換える。  
・上記ＮＡＮＤゲートの演算結果を、信号ＰｏＦの反転信号／ＰｏＦとする。  
・奇数段の論理ゲート５１−１、５１−３、５１−５、…５１−ｎを、ＮＯＲゲートに置き換える。  
なお、リセット命令部６０に変更は無い。図９では、奇数段のカラムに対応する論理ゲート６１−１、６１−３、…６１−ｎの一方の入力端に、信号反転を意味する丸印が記載されているが、これは前段のカラムから与えられる信号が、信号ＰｏＦの反転信号／ＰｏＦだからである。リセット命令部６０自体の動作は、第１の実施形態と同じである。
【００７５】
＜動作＞  
本実施形態に係るプログラムシーケンスは、第１の実施形態で説明した図３及び図４と同様である。以下では、検知動作時における保持部３０、フェイルサーチチェーン５０、及びリセット命令部６０の動作の具体例について、図１０乃至図１２を用いて説明する。図１０乃至図１２は、保持部３０、フェイルサーチチェーン５０、及びリセット命令部６０の回路図であり、特に本説明に必要な部分のみを示したものである。
【００７６】
（フェイルが無い場合）  
まず、フェイルが無い場合について、図１０を用いて説明する。フェイルが無い場合、信号ＰｏＦ＜０＞〜ＰｏＦ＜ｎ−１＞の全てが“Ｈ”レベルとなる。すなわち、偶数段の論理ゲート（ＮＡＮＤゲート）５１は信号／ＰｏＦ＝“Ｌ”レベルを出力し、奇数段の論理ゲート（ＮＯＲゲート）５１は信号ＰｏＦ＝“Ｈ”レベルを出力する。その結果、信号ＦＬＡＧが“Ｌ”レベルとなる。当然ながら信号ＰＦＢ＜０＞〜ＰＦＢ＜ｎ＞は全て“Ｌ”レベルである。
【００７７】
（フェイルがある場合）  
次に、フェイルがある場合について、図６及び図７の例と同様に、例えばカラムＣ２及びＣ（ｎ−１）にフェイルがある場合を例に用いて、図１１及び図１２を参照しつつ説明する。
【００７８】
まず図１１に示すように、信号ＦＩ＜２＞、ＦＩ＜ｎ−１＞が“Ｈ”レベルである。すると、信号／ＰｏＦ＜０＞は“Ｌ”レベルとなり、ＰｏＦ＜１＞は“Ｈ”レベルとなる。つまりフェイルサーチチェーン５０において、“Ｈ”レベルの信号ＰｏＦが、論理ゲート５１−２まで伝播する。しかし、信号ＦＩ＜２＞が“Ｈ”とされているので、論理ゲート５１−２の出力／ＰｏＦ＜２＞は“Ｈ”レベルとなる。すなわち、信号ＰｏＦ＜２＞＝“Ｌ”レベルとなる。そしてそれ以降の論理ゲート５１−３〜５１−（ｎ−１）の出力も、信号ＰｏＦ＜３＞〜ＰｏＦ＜ｎ−１＞＝“Ｌ”レベルとなるような論理レベルとなる。その結果、信号ＦＬＡＧが“Ｈ”レベルとなる。
【００７９】
また、信号ＰｏＦ＜１＞＝“Ｈ”レベルであるので、信号ＰＦＢ＜２＞が“Ｈ”レベルとなり、フェイルビットカウントの後、フェイルレジスタ３３−２がリセットされる。
【００８０】
その後の状態が図１２である。図示するように、論理ゲート５１−０〜５１−（ｎ−２）の出力は、信号ＰｏＦ＜０＞〜ＰｏＦ＜ｎ−２＞が“Ｈ”レベルとなるような論理レベルとなる。つまり、“Ｈ”レベルの信号ＰｏＦが、論理ゲート５１−（ｎ−１）まで伝播する。しかし、信号ＦＩ＜ｎ−１＞が“Ｈ”レベルであるので、論理ゲート５１−（ｎ−１）の出力／ＰｏＦ＜ｎ−１＞が“Ｈ”レベルとなる。すなわち、信号ＰｏＦ＜ｎ−１＞＝“Ｌ”レベルとなる。よってカラムＣ（ｎ−１）に対してフェイルビットカウントが行われ、引き続きＰＦＢ＜ｎ−１＞を用いてフェイルレジスタ３３−（ｎ−１）がリセットされる。
【００８１】
以上の結果、フェイルレジスタ３３の全てにフェイルは存在しなくなる。すなわち、図１０と同様の状態となって信号ＦＬＡＧは“Ｌ”レベルとなる。
【００８２】
＜効果＞  
本実施形態に係る構成であると、第１の実施形態と同様の効果が得られると共に、ＮＡＮＤ型フラッシュメモリ１の回路面積を削減出来る。
【００８３】
通常、ＡＮＤゲートをＣＭＯＳ等で構成する場合には、ＮＡＮＤゲートとインバータとの二段構成となる。従って、フェイルサーチチェーン５０をＡＮＤゲートで構成した場合のクリティカルパスは、必要なカラム数の２倍の段数の論理ゲートによって構成される。
【００８４】
これに対して本実施形態に係る構成では、フェイルサーチチェーン５０の論理ゲート５１を、ＮＡＮＤゲートとＮＯＲゲートとによって構成している。従って、各カラムのチェーンユニットは１段の論理ゲートによって構成可能となる。つまり、必要なカラム数と同数の論理ゲートによって構成出来る。その結果、フェイルのあるカラムの特定に要する時間をより短縮出来、更に動作時における消費電流やピーク電流を低減出来る。
【００８５】
以上のように、この発明の第１、第２の実施形態に係る半導体記憶装置は、メモリセルＭＴと、複数の保持回路（フェイルレジスタ３３−０〜３３−ｎ）と、論理ゲートチェーン（フェイルサーチチェーン５０）とを備える。メモリセルは、ロウ及びカラムＣに関連付けられ、データを保持可能とされる。保持回路３３−１〜３３−ｎの各々は、いずれかのカラムＣに対応付けられ、それぞれ対応するカラムＣにおけるベリファイ・フェイルの有無を示す第１情報(信号ＦＩ＜０＞〜ＦＩ＜ｎ＞を保持可能とされる。論理ゲートチェーン５０は、それぞれがいずれかのカラムＣに対応付けられ、且ついずれかのカラムＣにおけるベリファイ・フェイルの有無を示す論理レベルＰｏＦ＜０＞〜ＰｏＦ＜ｎ−１＞（または／ＰｏＦ）を次段に出力するように直列接続された複数の第１論理ゲート５１−０〜５１−ｎを含む。そして論理ゲートチェーン５０は、各々の第１論理ゲート５１−０〜５１−ｎの出力する論理レベルＰｏＦ（または／ＰｏＦ）の示す内容が、ベリファイ・フェイルのあるカラムＣに対応する第１論理ゲート５１を境界にして反転するように構成されている。
【００８６】
そして第１論理ゲート５１−ｉの各々は、対応する保持回路３３の保持する第１情報ＦＩ＜ｉ＞と、前段の第１論理ゲート５１−（ｉ−１）の出力との論理演算を行う。そして、前段の第１論理ゲート５１−（ｉ−１）の出力する論理レベルＰｏＦ＜ｉ−１＞がベリファイ・フェイルの無いことを示す場合、第１情報ＦＩ＜ｉ＞に基づいて論理レベルＰｏＦ＜ｉ＞を決定する。他方、前段の第１論理ゲート５１−（ｉ−１）の出力する論理レベルＰｏＦ＜ｉ−１＞がベリファイ・フェイルの有ることを示す場合、第１情報ＦＩ＜ｉ＞にかかわらず、ベリファイ・フェイルの有ることを示す論理レベルＰｏＦ＜ｉ＞を出力する。
【００８７】
また、この発明の第１、第２の実施形態に係る半導体記憶装置は、メモリセルＭＴと、第１保持回路（フェイルレジスタ３３−０）と、第２保持回路（フェイルレジスタ３３−１）とを備える。第１保持回路３３−０は、第１カラムＣ０に対応付けられ、第１カラムＣ０におけるベリファイ・フェイルの有無を示す第１情報ＦＩ＜０＞を保持可能とされる。第２保持回路３３−１は、第２カラムＣ１に対応付けられ、第２カラムＣ１におけるベリファイ・フェイルの有無を示す第２情報ＦＩ＜１＞を保持可能とされる。第１論理ゲート５１−０は、第１情報ＦＩ＜０＞に応じて、ベリファイ・フェイルの有無を示す第１信号ＰｏＦ＜０＞（または／ＰｏＦ＜０＞）を出力する。第２論理ゲートは、第２情報ＦＩ＜１＞及び第１信号ＰｏＦ＜０＞に応じて、ベリファイ・フェイルの有無を示す第２信号ＰｏＦ＜１＞を出力する。そして第２論理ゲート５１−１は、第１信号ＰｏＦ＜０＞がベリファイ・フェイルの有ることを示す場合（ＰｏＦ＜０＞＝“Ｌ”、または／ＰｏＦ＜０＞＝“Ｈ”）には、第２情報ＦＩ＜１＞に関わらずベリファイ・フェイルの有ることを示す第２信号（ＰｏＦ＜１＞＝“Ｌ”）を出力し、第１信号が前記ベリファイ・フェイルの無いことを示す場合（ＰｏＦ＜０＞＝“Ｈ”、または／ＰｏＦ＜０＞＝“Ｌ”）には、前記第２情報ＦＩ＜１＞に応じて第２信号ＰｏＦ＜１＞を出力する。
【００８８】
以上の構成により、半導体記憶装置におけるデータの書き込み速度を向上出来る。なお、上記フェイルサーチチェーン５０の構成は、第１、第２の実施形態で説明した回路に限られるものではない。すなわち、各カラムに対応した回路ブロックが直列接続され、回路ブロックの出力が、最もカラムアドレスの小さいフェイルで反転するような構成であれば良い。ここで「反転」なる意味は、単に“Ｈ”から“Ｌ”、または“Ｌ”から“Ｈ”という意味では無く、その信号が指し示す内容（フェイルの有無）が反転する、という意味である。
【００８９】
また、上記第１、第２の実施形態は、各メモリセルトランジスタＭＴが２ビット以上のデータを保持可能な場合であっても良い。例えば、まず下位ビットにつき書き込みが行われ、次に上位ビットにつき書き込みが行われる場合（２ビットの場合）、検知動作（ステップＳ３０）は各ビットについて行われても良いし、または上位ビットまで書き込んだ後にのみ行っても良い。また、フェイルをバイト単位で扱うような場合には、図４においてフェイルビットカウント（ステップＳ３６）は不要であり、ステップＳ３７においてフェイルカラム数をカラムエラー許容数と比較すれば良い。
【００９０】
更に上記第１、第２の実施形態では、データの書き込み動作時における検知動作を例に説明した。しかし、同様の動作がデータの消去時にも適用出来る。例えばデータの消去後、メモリセルトランジスタＭＴの閾値が十分に低下しているかを確認するため、消去ベリファイを行う。この後の検知動作にも、上記第１、第２の実施形態が適用出来る。更に、消去の後、書き込み（weak programまたはsoft programとも呼ばれる）を行って、メモリセルトランジスタの閾値を適切なレンジ内に設定する方法も知られている。そしてこの書き込みの後、消去ベリファイを行い、その後検知動作が行われるが、この検知動作にも上記第１、第２の実施形態が適用出来る。
【００９１】
また、上記第１、第２の実施形態ではＮＡＮＤ型フラッシュメモリの場合を例に挙げたが、例えばＮＯＲ型、ＤＩＮＯＲ型、ＡＮＤ型フラッシュメモリであっても良い。またフラッシュメモリに限らず、磁気抵抗素子をメモリセルに用いた磁気ランダムアクセスメモリ（Magnetic Random Access Memory）や、可変抵抗素子を用いたＲｅＲＡＭ（Resistance Random Access Memory）等、半導体メモリ全般に適用可能である。
【００９２】
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
【符号の説明】
【００９３】
１…フラッシュメモリ、１０…メモリセルアレイ、１１…ＮＡＮＤセル、２０…センスアンプ、３０…保持部、３１、４２…ＯＲゲート、３２…ＭＯＳトランジスタ、３３…レジスタ、４０…リセット部、４１…ＡＮＤゲート、５０…フェイルサーチチェーン、５１、６１…論理ゲート、６０…リセット命令部
【図１】
2011170927.tif 000003
【図２】
2011170927.tif 000004
【図３】
2011170927.tif 000005
【図４】
2011170927.tif 000006
【図５】
2011170927.tif 000007
【図６】
2011170927.tif 000008
【図７】
2011170927.tif 000009
【図８】
2011170927.tif 000010
【図９】
2011170927.tif 000011
【図１０】
2011170927.tif 000012
【図１１】
2011170927.tif 000013
【図１２】
2011170927.tif 000014