(57)【要約】【課題】セキュリティのための情報を確実に記憶することができ、しかも、一部に不良ブロックがある場合、この不良ブロックを確実に認識することが可能な半導体記憶装置を提供する。【解決手段】複数のブロックｂｌｋ０〜ｂｌｋ２３は、複数の記憶素子を有している。記憶回路１０９は、前記各ブロックに対応して設けられ第１の論理レベル又は第２の論理レベルのデータを記憶する。検出回路６ｂは、記憶回路の記憶状態を検出し、記憶回路が前記第１の論理レベルを記憶している場合、ブロック内の記憶素子のデータを出力し、記憶回路が前記第２の論理レベルを記憶している場合、ブロック内の記憶素子のデータによらず一定の値を出力する。【選択図】      図１２
2008034101.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶素子を有する複数のブロックと、
前記各ブロックに対応して設けられ第１の論理レベル又は第２の論理レベルのデータを記憶する記憶回路と、
前記記憶回路の記憶状態を検出し、前記記憶回路が前記第１の論理レベルを記憶している場合、前記ブロック内の記憶素子のデータを出力し、前記記憶回路が前記第２の論理レベルを記憶している場合、前記ブロック内の記憶素子のデータによらず一定の値を出力する検出回路と
を具備することを特徴とする半導体記憶装置。
【請求項２】
前記複数のブロックは、冗長ブロックを含み、前記記憶回路が前記第１の論理レベルを記憶している場合、前記冗長ブロックは、不良ブロックの情報を記憶する記憶領域として用いられることを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
前記複数のブロックは、冗長ブロックを含み、前記記憶回路が前記第２の論理レベルを記憶している場合、前記冗長ブロックは、セキュリティ情報を記憶する記憶領域として用いられることを特徴とする請求項１記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置、例えば電気的に書き換え可能な不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
電気的に書き換え可能な不揮発性半導体記憶装置としてＥＥＰＲＯＭを用いたＮＡＮＤ型フラッシュメモリが提案されている。このＮＡＮＤ型フラッシュメモリは、隣接して配置された複数のメモリセルのソース、ドレインが直列接続され、この直列接続された複数のメモリセルが１単位としてビット線に接続される。このＮＡＮＤ型フラッシュメモリにおいて、ロウ方向に配列された複数のセルの全て、又は半数のセルに対して一括して書き込み、又は読み出し動作が行なわれる。
【０００３】
また、近時、ＮＡＮＤ型フラッシュメモリの１つのセルに複数のデータを記憶する多値メモリが開発されている。
【０００４】
尚、アクセス制限機能を有し、特定のユーザのみが制限機能を解除できる不揮発性半導体記憶装置が提案されている（例えば特許文献１参照）。
【特許文献１】特開平１１−２３２８８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、この種の不揮発性半導体記憶装置は、セキュリティのための認識コード等を格納するＲＯＭブロック（ＲＯＭＢＬＯＣＫ）と称する記憶素子領域を有しており、このＲＯＭブロックを、特別なコマンドにより選択するようになされている。
【０００６】
従来、このＲＯＭブロックは、メモリセルアレイの不良セルを救済する冗長セルの一部を固定的に割り当てていた。したがって、この冗長セルの一部に不良があると、ＲＯＭブロックが使用できなくなるという問題があった。
【０００７】
さらに、ＲＯＭブロックは、冗長セルの一部を使用しているため、ＲＯＭブロックを必要に応じて書き込み禁止、及び消去禁止に設定することが困難であった。
【０００８】
また、ＮＡＮＤ型フラッシュメモリは、複数のブロックを有し、このブロック単位でデータが消去される。不良セルを有する不良ブロックは、リダンダンシブロックに置き換えられる。しかし、リダンダンシの数以上に、不良ブロックがある場合、不良ブロックを残したままパーシャルグッド品（一部良品）として出荷する。この場合、不良ブロックを認識させるために、不良ブロックの先頭数ビットにデータ“０”を書き込み、不良ブロックがアクセスされると、データ“０”を出力するようにしていた。しかし、不良ブロックのセルにデータ“０”が必ず書き込めるわけではなく、書けないこともある。この場合、大部分のメモリセルが正常であるにも拘わらず、その製品を破棄しなければならず、歩留まりの低下を招いていた。
【０００９】
本発明は、セキュリティのための情報を確実に記憶することができ、しかも、一部に不良ブロックがある場合、この不良ブロックを確実に認識することが可能な半導体記憶装置を提供しようとするものである。
【課題を解決するための手段】
【００１０】
本発明の半導体記憶装置の第１の態様は、複数の記憶素子を有する複数のブロックと、前記各ブロックに対応して設けられ第１の論理レベル又は第２の論理レベルのデータを記憶する記憶回路と、前記記憶回路の記憶状態を検出し、前記記憶回路が前記第１の論理レベルを記憶している場合、前記ブロック内の記憶素子のデータを出力し、前記記憶回路が前記第２の論理レベルを記憶している場合、前記ブロック内の記憶素子のデータによらず一定の値を出力する検出回路とを具備することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、セキュリティのための情報を確実に記憶することができ、しかも、一部に不良ブロックがある場合、この不良ブロックを確実に認識することが可能な半導体記憶装置を提供できる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。
【００１３】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る半導体記憶装置を示す構成図である。先ず、図１を用いて、概略的に説明する。
【００１４】
メモリセルアレイ１は、図示せぬ複数のビット線と複数のワード線と共通リース線を含み、電気的にデータの書き換えた可能なメモリセルがマトリクス状に配置されている。また、各メモリセルアレイ１の内部は、後述するように、複数のブロック及び複数の冗長ブロックに分割されている。各メモリセルアレイ１のカラム方向一端には、データ記憶部２がそれぞれ配置され、ロウ方向両側には、ブロック選択部６がそれぞれ配置されている。
【００１５】
前記データ記憶部２は、後述するように、複数のデータ記憶回路を含んでいる。各データ記憶回路は、次の機能を有している。（１）ビット線を介してメモリセルアレイ１中のメモリセルからデータを読み出す。（２）ビット線を介してメモリセルアレイ１中のメモリセルの状態を検出する。（３）ビット線を介してメモリセルアレイ１中のメモリセルに書き込み制御電圧を印加し、メモリセルに書き込みを行なう。
【００１６】
各データ記憶部２には、カラムデコーダ３、入力バッファ７、出力バッファ４が接続されている。入力バッファ７及び出力バッファ４はＩ／Ｏ端子５に接続されている。
【００１７】
前記各カラムデコーダ３は、データ記憶部２の中のデータ記憶回路を選択する。カラムデコーダ３によって選択されたデータ記憶回路により読み出されたメモリセルのデータは、出力バッファ４を介してＩ／Ｏ端子５から外部へ出力される。また、外部からＩ／Ｏ端子５に入力された書き込みデータは、入力バッファ７を介して、カラムデコーダ３によって選択されたデータ記憶回路に供給される。
【００１８】
制御部１５は、外部から供給される信号ＡＬＥ、ＣＬＥ、ＣＥ、ＷＥ、ＲＥ、ＷＰに応じて、前記出力バッファ４、入力バッファ７、ＥＣＣコード発生回路８、制御回路１３、コマンドレジスタ１６、カラムアドレスレジスタ１７、ロウアドレスレジスタ１８を制御する。また、制御部１５は、後述するＲＯＭブロック２０の書き込みを禁止する書き込み禁止回路１５ａ、及びＲＯＭブロック２０の消去を禁止する消去禁止回路１５ｂを有している。さらに、制御部１５は、後述するように、半導体記憶装置の設定モードを切り替えるヒューズを有している。
【００１９】
ＥＣＣコード発生回路８は、制御部１５の指示に応じてＥＣＣ（エラー訂正コード）を発生し、入力バッファ７に供給する。
【００２０】
前記コマンドレジスタ１６は、前記入力バッファ７から供給されるコマンドを制御回路１３に供給する。この制御回路１３は、コマンドに応じて各部を制御する。この制御回路１３には、制御電圧発生回路１４が接続されている。この制御電圧発生回路１４は、例えばチャージポンプ回路等により構成され、データの書
き込み、読み出し、消去に必要な電圧を発生する。
【００２１】
前記カラムアドレスレジスタ１７は入力バッファ７から供給されるアドレスをカラムＲＤ（リダンダンシ）デコーダ及びカラムプリデコーダ１０に供給する。
【００２２】
このカラムＲＤデコーダ及びカラムプリデコーダ１０は、カラムの冗長アドレスをデコードするとともに、カラムアドレスをプリデコードする。このカラムＲＤデコーダ及びカラムプリデコーダ１０の出力信号は、前記各カラムデコーダ３に供給される。
【００２３】
前記ロウアドレスレジスタ１８は前記入力バッファ７から供給されるアドレスを前記ＣＧ（制御ゲート）駆動回路９及び前記アレイブロックラッチ回路１９に供給する。
【００２４】
ＣＧ駆動回路９は、ロウアドレスレジスタ１８から供給されるロウアドレスに応じて、前記制御電圧発生回路１４により発生されたワード線の電位を選択し、ブロック選択部６に供給する。
【００２５】
前記ブロック選択部６には、ブロックデコーダ１２が接続され、このブロックデコーダ１２には、ブロックＲＤ（リダンダンシ）デコーダ１１及びＲＯＭブロック指定回路２０が接続されている。前記ブロックＲＤデコーダ１１には、アレイブロックラッチ回路１９が接続されている。このアレイブロックラッチ回路１９にはロウアドレスレジスタ１８が接続されている。
【００２６】
前記ブロック選択部６は、アレイブロックラッチ回路１９、ブロックＲＤデコーダ１１及びブロックデコーダ１２の出力信号に応じてメモリセルアレイ１内のブロックを選択する。さらに、ブロック選択部６は、データの読み出し、書き込み、及び消去時に、ロウアドレスに応じて、後述する転送ゲートを選択し、ＣＧ駆動回路９から供給される電圧を、メモリセルアレイ１中のワード線に供給する。
【００２７】
前記ＲＯＭブロック指定回路２０は、メモリセルアレイの冗長ブロックをＲＯＭブロックとして指定するための回路である。すなわち、本発明において、ＲＯＭブロックは、メモリセルアレイ内の任意の冗長ブロックＲＯＭブロックに指定することが可能とされている。また、ＲＯＭブロックには、製造工程中にセキュリティのための認識コード等を書き込むため、一括書き込み、一括消去などのテストの時に、このＲＯＭブロックが選択されないように構成されている。
【００２８】
図２は、図１に示すメモリセルアレイ１及びデータ記憶部２の構成を示している。データ記憶部２は複数のデータ記憶回路３１１、３１１〜３１ｎ／２を有している。各データ記憶回路３１０、３１１〜３１ｎ／２は前記入力バッファ４、出力バッファ７に接続されている。これら３１０、３１１〜３１ｎ／２は前記カラムデコーダ３から供給されるカラム選択信号ＣＳＬ０、ＣＳＬ１〜ＣＳＬｎ／２により制御される。
【００２９】
各データ記憶回路３１０、３１１〜３１ｎ／２には一対のビット線が接続される。すなわち、データ記憶回路３１０にはビット線ＢＬ０、ＢＬ１が接続され、データ記憶回路３１１にはビット線ＢＬ２、ＢＬ３が接続され、データ記憶回路３１ｎ／２にはビット線ＢＬｎ、ＢＬｎ＋１が接続されている。
【００３０】
メモリセルアレイ１には複数のＮＡＮＤセルが配置されている。１つのＮＡＮＤセルは直列接続された例えば１６個のＥＥＰＲＯＭからなるメモリセルＭ０、〜Ｍ１５と、このメモリセルＭ１５に接続された第１の選択ゲートＳ１と、メモリセルＭ０に接続された第２の選択ゲートＳ２とにより構成されている。第１の選択ゲートＳ１はビット線ＢＬ０に接続され、第２の選択ゲートＳ２はソース線ＣＥＬＳＲＣに接続されている。各行に配置されたメモリセルＭ０〜Ｍ１５の制御ゲートはワード線ＷＬ０〜ＷＬ１５に共通接続されている。また、第１の選択ゲートＳ１はセレクト線ＳＧＤ１に共通接続され、第２の選択ゲートＳ２はセレクト線ＳＧＤ２に共通接続されている。
【００３１】
リード動作、プログラムベリファイ動作及びプログラム動作時は、データ記憶回路に接続されている２本のビット線（ＢＬｉ、ＢＬｉ＋１）のうち外部より指定されたアドレスにより１本のビット線が選択される。さらに、外部アドレスにより、１本のワード線が選択され、２値の場合１ページ、４値の場合、図２の点線で示す２ページ分のセルが選択される。
【００３２】
イレーズ動作は、図２に点線で示すブロック単位に実行される。すわわち、このブロック単位でデータが消去される。１ブロックは、複数個のＮＡＮＤセルにより構成されている。また、データ記憶回路に接続されている２本のビット線（ＢＬｉ、ＢＬｉ＋１）について同時に行なわれる。
【００３３】
イレーズベリファイ動作は、１回の動作により、データ記憶回路に接続されている２本のビット線（ＢＬｉ、ＢＬｉ＋１）のうち１本のビット線（ＢＬｉ）についてベリファイリード動作を行なう。この後、他方のビット線（ＢＬｉ＋１）についてベリファイリード動作を行なう。
【００３４】
図３（ａ）（ｂ）は、メモリセル及び選択トランジスタの断面図を示している。図３（ａ）は、メモリセルを示している。基板４１にはメモリセルのソース、ドレインとしてのｎ型拡散層４２が形成されている。基板４１の上にはゲート絶縁膜４３を介して浮遊ゲート４４が形成され、この浮遊ゲート４４の上には絶縁膜４５を介して制御ゲート４６が形成されている。
【００３５】
図３（ｂ）は、選択トランジスタを示している。基板４１にはソース、ドレインとしてのｎ型拡散層４７が形成されている。基板４１の上にはゲート絶縁膜４８を介して制御ゲート４９が形成されている。
【００３６】
図４は、メモリセルアレイにおける１つのＮＡＮＤセルの断面を示している。この例において、１つのＮＡＮＤセルは、図３（ａ）に示す構成の１６個のメモリセルＭ０〜Ｍ１５が直列接続されて構成されている。ＮＡＮＤセルのドレイン側、ソース側には、図３（ｂ）に示す構成の第１の選択ゲートＳ１及び第２の選択ゲートＳ２が設けられている。
【００３７】
図５は、図２に示すデータ記憶回路３１０の回路構成を示している。データ記憶回路は全て同一構成であるため、データ記憶回路３１０についてのみ説明する。
【００３８】
ビット線ＢＬｉにはＮチャネルトランジスタ６１ａの電流通路の一端が接続されている。このトランジスタ６１ａのゲートには信号ＢＬＴＲが供給されている。このトランジスタ６１ａの電流通路の他端はトランジスタ６１ｂの電流通路の一端、およびトランジスタ６１ｃの電流通路の一端に接続されている。前記トランジスタ６１ｂの電流通路の他端は端子６２ａに接続されている。この端子６２ａには電圧ＶＢＬＡが供給されている。また、前記トランジスタ６１ｂのゲートには信号ＰＲＥＡが供給されている。前記トランジスタ６１ｃのゲートには信号ＢＬＳＡが供給されている。
【００３９】
また、ビット線ＢＬｉ＋１にはＮチャネルトランジスタ６１ｄの電流通路の一端が接続されている。このトランジスタ６１ｄのゲートには前記信号ＢＬＴＲが供給されている。このトランジスタ６１ｄの電流通路の他端はトランジスタ６１ｅの電流通路の一端、およびトランジスタ６１ｆの電流通路の一端に接続されている。前記トランジスタ６１ｅの電流通路の他端は端子６２ｂに接続されている。この端子６２ｂには電圧ＶＢＬＢが供給されている。また、前記トランジスタ６１ｅのゲートには信号ＰＲＥＢが供給されている。前記トランジスタ６１ｆのゲートには信号ＢＬＳＢが供給されている。トランジスタ６１ｂ、６１ｅは信号ＰＲＥＡ、ＰＲＥＢに応じて非選択のビット線を電位ＶＢＬＡ、ＶＢＬＢにプリチャージする。前記トランジスタ６１ｃ、６１ｆは信号ＢＬＳＡ、ＢＬＳＢに応じてビット線を選択する。
【００４０】
前記トランジスタ６１ｃ、６１ｆの電流通路の他端はトランジスタ６１ｇを介して端子６２ｃに接続されるとともに、ノードＮＥに接続されている。前記トランジスタ６１ｇのゲートには信号ＢＩＡＳが供給され、端子６２ｃには電圧ＶＣＣが供給されている。このトランジスタ６１ｇはデータ読み出し時に、信号ＢＩＡＳに応じてビット線をプリチャージする。
【００４１】
前記ノードＮＥにはトランジスタ６１ｈの電流通路の一端が接続されている。このトランジスタ６１ｈのゲートには信号ＢＬＣ１が供給されている。このトランジスタ６１ｈの電流通路の他端には、ＰチャネルＭＯＳトランジスタ６１ｍを介して端子６２ｄが接続されている。この端子６２ｄには電圧ＶＣＣが供給されている。前記トランジスタ６１ｍのゲートには信号ＰＲＳＴＢ１が供給されている。
【００４２】
前記トランジスタ６１ｈの電流通路の他端には、第１のラッチ回路ＬＡＴ（Ａ）が接続されている。この第１のラッチ回路ＬＡＴ（Ａ）は２つのクロックドインバータ回路６１ｉ、６１ｊにより構成されている。クロックドインバータ回路６１ｉは信号ＳＥＮ１、ＳＥＮ１Ｂ（Ｂは反転信号を示す）により制御され、クロックドインバータ回路６１ｊは信号ＬＡＴ１、ＬＡＴ１Ｂにより制御される。この第１のラッチ回路ＬＡＴ（Ａ）は、書き込みデータをラッチする。
【００４３】
前記クロックド・インバータ回路６１ｊの出力ノードＮＢ、及びクロックド・インバータ回路６１ｉの入力端の接続ノードＮＣにはＮチャネルＭＯＳトランジスタ６１ｏの電流通路の一端が接続されている。このトランジスタ６１ｏの電流通路の他端ＩＯは前記入力バッファ７、出力バッファ４に接続される。
【００４４】
前記クロックド・インバータ回路６１ｉの出力ノードＮＡ、及びクロックド・インバータ回路６１ｊの入力端の接続ノードにはＮチャネルＭＯＳトランジスタ６１ｎの電流通路の一端が接続されている。このトランジスタ６１ｎの電流通路の他端ＩＯＢは前記入力バッファ７、出力バッファ４に接続される。これらトランジスタ６１ｏ、６１ｎのゲートにはカラムデコーダ３からカラム選択信号ＣＳＬが供給されている。
【００４５】
また、前記ノードＮＥにはトランジスタ６１ｋ、６１ｌが直列接続されている。トランジスタ６１ｋのゲートは前記第１のラッチ回路ＬＡＴ（Ａ）のノードＮＣに接続され、トランジスタ６１ｌのゲートには信号ＶＲＦＹ１が供給されている。さらに、トランジスタ６１ｌの電流通路には信号ＶＲＥＧが供給されている。これらトランジスタ６１ｋ、６１ｌは第１のラッチ回路ＬＡＴ（Ａ）にラッチされたデータに応じてビット線の電位を設定する。
【００４６】
一方、前記ノードＮＥにはトランジスタ６１ｑの電流通路の一端が接続されている。このトランジスタ６１ｑのゲートには信号ＢＬＣ２が供給されている。このトランジスタ６１ｑの電流通路の他端には、ＰチャネルＭＯＳトランジスタ６１ｐを介して端子６２ｅが接続されている。この端子６２ｅには電圧ＶＣＣが供給されている。前記トランジスタ６１ｐのゲートには信号ＰＲＳＴＢ２が供給されている。
【００４７】
前記トランジスタ６１ｑの電流通路の他端には第２のラッチ回路ＬＡＴ（Ｂ）が接続されている。この第２のラッチ回路ＬＡＴ（Ｂ）は２つのクロックドインバータ回路６１ｒ、６１ｓにより構成されている。クロックドインバータ回路６１ｒは信号ＳＥＮ２、ＳＥＮ２Ｂにより制御され、クロックドインバータ回路６１ｓは信号ＬＡＴ２、ＬＡＴ２Ｂにより制御される。この第２のラッチ回路ＬＡＴ（Ｂ）は、メモリセルから読み出されたデータをラッチする。
【００４８】
また、前記ノードＮＥにはトランジスタ６１ｔ、６１ｕが直列接続されている。トランジスタ６１ｔのゲートは前記第２のラッチ回路ＬＡＴ（Ｂ）のノードＮＤに接続され、トランジスタ６１ｕのゲートには信号ＶＲＦＹ２が供給されている。さらに、トランジスタ６１ｕの電流通路には信号ＶＲＥＧが供給されている。これらトランジスタ６１ｔ、６１ｕは第２のラッチ回路ＬＡＴ（Ｂ）にラッチされたデータに応じてビット線の電位を設定する。
【００４９】
上記構成において、動作について説明する。
【００５０】
（コマンド入力）
コマンドは、図１に示す制御部１５に供給される信号ＣＬＥをハイレベルとし、信号ＷＥの立ち上り、及び立ち下り時に、Ｉ／Ｏ端子５に供給されるデータがコマンドとしてコマンドレジスタ１６に供給される。
【００５１】
（アドレス入力）
アドレスは、図１に示す制御部１５の信号ＡＬＥをハイレベルとし、信号ＷＥの立ち上り、及び立ち下り時にＩ／Ｏ端子５に供給されるデータがアドレスとして取り込まれる。
【００５２】
図６（ａ）（ｂ）（ｃ）（ｄ）は、各モードにおいて読み込まれるアドレスとＩ／Ｏ端子の関係を示している。本発明の半導体記憶装置は、メモリセルアレイを例えば４つのモードに切り替え設定可能とされている。これら４つのモードの切り替えは制御部１５に設けられた図示せぬ例えばヒューズを切断することにより設定される。
【００５３】
図６（ａ）は、１Ｇ（ギガ）ビットで、１つのセルに２ビットを記憶する４値のデータ記憶であり、ブロックサイズが３２ＫＢのモードを示している。図６（ｂ）は、５１２Ｍ（メガ）ビットで、１つのセルに１ビットを記憶する２値のデータ記憶であり、ブロックサイズが１６ＫＢのモードを示している。図６（ｃ）は、１Ｇビットで、４値のデータを記憶し、ブロックサイズが１２８ＫＢのモードを示している。図６（ｄ）は、５１２Ｍビットで、２値のデータを記憶し、ブロックサイズが６４ＫＢのモードを示している。
【００５４】
各動作モードにおいて、リード、プログラムは４サイクルにより、カラムアドレスやブロックアドレス等を取りこむ。しかし、イレーズは、カラムアドレスを取りこむ必要が無いため、第１サイクル目は省略され、第２サイクルから４サイクルの３サイクルでアドレスを入力する。
【００５５】
図６（ａ）（ｃ）に示す４値の場合１ページと２ページを切り替える必要がある。この切り替えは第２サイクルのＭＬＡｄｄを用いて行われる。２値の場合は、１つのセルに１ビットしか記憶しないため、この切り替えは必要ない。
【００５６】
図６（ａ）に示すカラムアドレスＡ８、Ａ８Ｅは、コマンドにより切り替えて入力される。
【００５７】
（データ入力）
書き込みデータを入力する場合、図１に示す制御部１５の信号ＡＬＥ、及び信号ＣＬＥを共にローレベルとし、信号ＷＥの立ち上り、及び立ち下り時にＩ／Ｏ端子５に供給されたデータをデータとして取り込む。このデータは、カラムデコーダ３により選択されているデータ記憶回路に供給される。信号ＷＥを連続してトグルすることによりカラムアドレスはインクリメントされ、次のアドレスのデータが順次取り込まれる。
【００５８】
（データ出力）
メモリセルから読み出されたデータを外部へ出力する場合、図１に示す制御部１５の信号ＡＬＥ、及び信号ＣＬＥを共にローレベルとし、信号ＲＥの立ち上り、及び立ち下り時に、カラムデコーダ３により選択されているデータ記憶回路のデータがＩ／Ｏ端子５から出力される。信号ＲＥを繰り返しトグルすることによりアドレスがインクリメントされ、次のアドレスのデータが順次出力される。
【００５９】
（プリデコーダ及びカラムＲＤデコーダ）
図７（ａ）（ｂ）は、プリデコーダ及びカラムＲＤデコーダ１０の動作を示している。
【００６０】
図１に示すカラムアドレスレジスタ１７は、外部より指定されたアドレスＡ０〜Ａ８、Ａ８Ｅをラッチすると共に、信号ＷＥ、及び信号ＲＥに同期してアドレスをインクリメントさせる。ＥＣＣを使用する時、ＥＣＣコードを記憶するため、カラムアドレスの５２８カラムに対して、さらに２１カラムを追加する必要がある。すなわち、例えば２ビット訂正をする場合、１ページ（５２８ビット）あたり、余分に訂正符号の２１ビットのセルが必要である。しかし、２１カラムのうち４カラムはカラムリダンダンシと共通になっているため、１７カラム分カラムアドレスが増えている。
【００６１】
カラムプリデコーダ及びカラムＲＤデコーダ１０は、図７（ａ）に示すように、カラムアドレスＡ０〜Ａ８、Ａ８Ｅをデコードし、カラムプリデコード信号ＣＡ０〜７、ＣＢ０〜７、ＣＣ０〜８を出力する。このようにして、５２８＋１７カラムを選択する。
【００６２】
また、図７（ｂ）に示すように、カラムリダンダンシを選択する時、カラムプリデコード信号を停止し、カラムリダンダンシを選択する信号ＣＳＳ０〜７を出力する。本例では、ＥＣＣが未使用の時、カラムリダンダンシが１つのアレイに対して８本となる。また、ＥＣＣを使用する時は、カラムリダンダンシが１つのアレイに対して４本となり、１７カラムは信号ＣＡ０〜７、ＣＢ０〜８により選択されるが、４カラムは信号ＣＳＳ０〜３により選択される。
【００６３】
カラムプリデコーダ及びカラムＲＤデコーダ１０から出力された信号ＣＡ０〜７、ＣＢ０〜７、ＣＣ０〜８は、カラムでコーダ３により５２８カラムのうち１つが選択される。信号ＣＳＳ０〜７はデコードされず１つのカラムを直接選択する。
【００６４】
尚、図１に示すロウアドレスレジスタ１８は、外部より指定されたアドレスＡ９〜Ａ２６をラッチする。
【００６５】
図８（ａ）（ｂ）（ｃ）は、図１に示すＣＧ駆動回路９を示している。
【００６６】
リード及びプログラム時は、まず、図８（ａ）（ｂ）に示す回路により、選択ＣＧ電圧Ｖｃｇｓｅｌ（リードの時はＶｃｇｒｖ、プログラム時はＶｐｇｍｈ）と非選択ＣＧ電圧Ｖｃｇｕｓｅｌ（リードの時はＶｒｅａｄ、プログラム時はＶｐａｓｓ）が生成される。
【００６７】
図８（ａ）は、選択された制御ゲート線の電位を発生する回路であり、ブースト回路８１ａ、８１ｂ、トランジスタ８１ｃ、８１ｄにより構成されている。トランジスタ８１ｃの電流通路の一端には、制御電圧発生回路１４から供給されるプログラム電圧Ｖｐｇｍｈが供給されている。このトランジスタ８１ｃのゲートには、ブースト回路８１ａが接続されている。ブースト回路８１ａにはプログラム電圧Ｖｐｇｍｈ、及び信号ＶＰＧＭＥＮが供給されており、ブースト回路８１ａは信号ＶＰＧＭＥＮに応じて電圧Ｖｐｇｍｈ＋Ｖｔｈを発生する。このため、トランジスタ８１ｃは電圧Ｖｐｇｍｈを出力できる。
【００６８】
トランジスタ８１ｄの電流通路の一端には、制御電圧発生回路１４から供給される電圧Ｖｃｇｒｖが供給されている。このトランジスタ８１ｄのゲートには、ブースト回路８１ｂが接続されている。ブースト回路８１ｂには電圧Ｖｃｇｒｖ、及び信号ＶＣＧＲＥＮが供給されており、ブースト回路８１ｂは信号ＶＣＧＲＥＮに応じて電圧Ｖｃｇｒｖ＋Ｖｔｈを発生する。このため、トランジスタ８１ｄは電圧Ｖｃｇｒｖを出力できる。これらトランジスタ８１ｃ、８１ｄの電流通路の他端は共通接続され、この接続ノードから電圧Ｖｐｇｍｈ、又は電圧Ｖｃｇｒｖからなる選択ＣＧ電圧Ｖｃｇｓｅｌが出力される。
【００６９】
図８（ｂ）は、非選択とされた制御ゲート線の電位を発生する回路であり、ブースト回路８２ａ、８２ｂ、トランジスタ８２ｃ、８２ｄにより構成されている。トランジスタ８２ｃの電流通路の一端には、制御電圧発生回路１４から供給される電圧Ｖｐａｓｓが供給されている。このトランジスタ８２ｃのゲートには、ブースト回路８２ａが接続されている。このブースト回路８２ａには電圧Ｖｐａｓｓ、及び信号ＶＰＡＳＳＥＮＢが供給されており、ブースト回路８２ａは信号ＶＰＡＳＳＥＮＢに応じて電圧Ｖｐａｓｓ＋Ｖｔｈを発生する。このため、トランジスタ８２ｃは電圧Ｖｐａｓｓを出力できる。
【００７０】
トランジスタ８２ｄの電流通路の一端には、制御電圧発生回路１４から供給される電圧Ｖｒｅａｄｈが供給されている。このトランジスタ８２ｄのゲートには、ブースト回路８２ｂが接続されている。このブースト回路８２ｂには電圧Ｖｒｅａｄｈ、及び信号ＶＲＥＡＤＥＮが供給されており、ブースト回路８２ｂは信号ＶＲＥＡＤＥＮに応じて電圧Ｖｒｅａｄｈ＋Ｖｔｈを発生する。このため、トランジスタ８２ｄは電圧Ｖｒｅａｄｈを出力できる。これらトランジスタ８２ｄの電流通路の他端は共通接続され、この接続ノードから電圧Ｖｐａｓｓ、又はＶｒｅａｄｈからなる非選択ＣＧ電圧Ｖｃｇｕｓｅｌが出力される。
【００７１】
図８（ｃ）は、選択ＣＧ電圧Ｖｃｇｓｅｌ、及び非選択ＣＧ電圧Ｖｃｇｓｅｌを制御ゲートに供給するＣＧ供給回路を示している。このＣＧ供給回路は、制御ゲートに対応して１６個設けられている。アドレスＡ１１〜Ａ１４に基づきこのうち１個が選択状態とされ、残りの１５個が非選択状態とされる。
【００７２】
すなわち、ＣＧ供給回路はデコード回路８３ａ、インバータ回路８３ｂ、ブースト回路８３ｃ、８３ｄ、トランジスタ８３ｅ、８３ｆ、８３ｇにより構成されている。デコード回路８３ａの入力端にはアドレスＡ１１〜Ａ１４が供給され、このアドレスに応じてＣＧ供給回路が選択された場合、ブースト回路８３ｃによりトランジスタ８３ｅがオンとされ、制御ゲート電圧ＶＣＧｉとして、前記選択ＣＧ電圧Ｖｃｇｓｅｌが出力される。また、ＣＧ供給回路が非選択の場合、ブースト回路８３ｄによりトランジスタ８３ｆがオンとされ、制御ゲート電圧ＶＣＧｉとして、前記非選択ＣＧ電圧Ｖｃｇｓｅｌが出力される。
【００７３】
また、イレーズの場合、信号ＥＲＡＳＥＥＮがハイレベルとされ、トランジスタ８３ｇがオンとされる。このため、全ての制御ゲート電圧ＶＣＧ０〜ＶＣＧ１５は接地電位とされる。
【００７４】
図８（ｄ）は、アドレスＡ１１〜Ａ１４と制御ゲート電圧ＶＣＧｉの関係を示しており、アドレスＡ１１〜Ａ１４に基づき、１つの制御ゲート電圧ＶＣＧｉが出力されることを示している。
【００７５】
このように、図８（ａ）（ｂ）に示す回路と図８（ｃ）に示す回路との２段階で制御ゲート電圧ＶＣＧｉを切り替えることにより、各ＣＧ供給回路からリード、プログラム、及びイレーズに必要な全ての電位を出力することができ、回路構成を小型化することができる。
【００７６】
図９（ａ）（ｂ）は図１に示すアレイブロック回路１９を示している。アレイブロック回路１９は、メモリセルアレイ毎にブロックアドレス（Ａ１７〜２６）をラッチする。
【００７７】
図９（ａ）に示すように、４つのメモリセルアレイは、アドレスＡ１５、Ａ１６により選択される。選択されたメモリセルアレイのラッチ信号ＰＢＬＡＴＰＢ０〜３がハイレベルになる。
【００７８】
図９（ｂ）は、アレイブロック回路１９に設けられ、Ａ１７〜２６の各ブロックアドレスに対応して配置されたラッチ回路を示している。このラッチ回路は、インバータ回路９１ａ、ナンド回路９１ｂ、フリップフロップ回路を構成するナンド回路９１ｃ、９１ｄにより構成されている。このラッチ回路は、ラッチ信号ＰＢＬＡＴＰＢ０〜３がハイレベルとなると、ブロックアドレスＡ１７〜２６をラッチする。
【００７９】
図１０は、図１に示すブロックＲＤデコード回路１１の動作を示している。このブロックＲＤデコード回路１１は、アレイブロックラッチ回路１９から供給されるブロックアドレスＡ１７〜２６が、ヒューズにより設定されたブロックリダンダンシのアドレスＡＰＢ１７〜ＡＰＢ２６と一致すると、複数存在するブロックリダンダンシから１つを選択するために、アドレスＡＴＰＢ１７〜ＡＴＰＢ２６とリダンダンシ領域を選択する信号ＡＴＰＢＤを出力する。
【００８０】
すなわち、図１０は、ブロックアドレスＡ１７〜２６がブロックリダンダンシのアドレスＡＰＢ１７〜ＡＰＢ２６と一致した場合を示している。この場合、ブロックＲＤデコード回路１１は、例えばＡＴＰＢ１８に位置するブロックリダンダンシを選択するように、ブロックアドレスＡＴＰＢ１８とリダンダンシ領域を選択する信号ＡＴＰＢＲＤをハイレベルとしている。
【００８１】
図１１は、図１に示すブロックデコーダ１２の動作を示している。ブロックデコーダ１２は、ブロックＲＤデコード回路１１から供給されるブロックアドレスＡＴＰＢ１７〜２６、ＡＴＰＢＲＤをデコードし、図１１に示すようにロウデコード信号ＡＲＯＷＡ〜ＡＲＯＷＥとＲＤＥＣＰＢＬＲを出力する。ロウデコード信号ＡＲＯＷＡ〜ＡＲＯＷＥはメモリセルアレイ１内のブロックを選択するための信号であり、ＲＤＥＣＰＢＬＲはメモリセルアレイ１の両側（左右）に配置されたブロック選択部６のうちから一方を選択する信号である。
【００８２】
さらに、ブロックデコーダ１２は、ＲＯＭブロック指定回路２０が選択された場合、ＲＯＭブロック指定回路２０から供給されるブロックアドレスを上記と同様にデコードし、ＲＯＭブロックを選択するためのロウデコード信号ＡＲＯＷＡ〜ＡＲＯＷＥは生成する。
【００８３】
図１２は、図１に示すブロック選択部６に設けられたブロック選択回路６ａの回路構成を示している。このブロック選択回路６ａは各ブロックに対して１つ設けられている。また、図１２に示すヒューズ状態検出回路６ｂは、各メモリセルアレイ１に対して１つずつ配置されている。
【００８４】
ブロック選択回路６ａにおいて、端子１００には電源電圧ＶＤＤが供給されている。この端子１００と信号ＲＯＷＣＯＭが供給されるノードの相互間にはＰチャネルＭＯＳトランジスタ１０１、ＮチャネルＭＯＳトランジスタ１０２〜１０８が直列接続されている。前記トランジスタ１０１のゲートには、メモリセルアレイ１に対して左右一方のブロック選択部６を選択するための前記信号ＲＤＥＣＰＢＬＲが供給されている。また、トランジスタ１０２〜１０６のゲートには、前記ロウデコード信号ＡＲＯＷＡ〜ＡＲＯＷＥが供給され、トランジスタ１０７のゲートには信号ＲＤＥＣＰＢＬＲＤが供給されている。信号ＲＤＥＣＰＢＬは、図１３に示すように、信号ＲＤＥＣＰＢＬＲＤより若干遅れて変化する。
【００８５】
さらに、トランジスタ１０８のゲートには、ＲＯＭブロックをアクセスするためのコマンド信号ＣＤ＿ＲＯＭＢＡが供給されている。このトランジスタ１０８には、ヒューズ１０９が並列接続されている。このヒューズ１０９は、このブロック選択回路６ａに対応するブロックが不良ブロックである場合、切断される。
【００８６】
さらに、前記トランジスタ１０１には、ＰチャネルＭＯＳトランジスタ１１７、１１８の直列回路が並列接続されている。前記トランジスタ１１７のゲートは接地されている。また、前記トランジスタ１０１、１０２、１１８の接続ノードにはインバータ回路１１９の入力端が接続されている。このインバータ回路１１９の出力端は、前記トランジスタ１１８のゲートに接続されるとともに、レベルシフタ１２０の一方入力端に接続されている。
【００８７】
このレベルシフタ１２０の他方入力端には、信号ＶＲＤＥＣが供給されている。この信号ＶＲＤＥＣは、データのプログラム、リード、イレーズに応じてレベルシフタ１２０を制御する信号である。このレベルシフタ１２０は、ブロック選択回路６ａが選択状態の場合、信号ＶＲＤＥＣに従って、転送ゲートＴＧを駆動する信号を生成する。
【００８８】
前記転送ゲートＴＧは、メモリセルのワード線に接続される転送ゲートＴＧ０〜ＴＧ１５と、第１、第２の選択ゲートＳ１、Ｓ２のゲートに接続される転送ゲートＴＧＳ１、ＴＧＳ２とにより構成されている。転送ゲートＴＧ０〜ＴＧ１５の電流通路の一端には、制御ゲート線ＣＧ０〜ＣＧ１５がそれぞれ接続され、電流通路の他端には、ワード線ＷＬ０〜ＷＬ１５がそれぞれ接続されている。制御ゲート線ＣＧ０〜ＣＧ１５には前記ＣＧ駆動回路９から制御ゲート電圧ＶＣＧがそれぞれ供給される。
【００８９】
また、転送ゲートＴＧＳ１、ＴＧＳ２の電流通路の一端には、選択ゲート線ＳＧＤ、ＳＧＳがそれぞれ接続され、電流通路の他端には、セレクト線ＳＧＤ１、ＳＧＤ２がそれぞれ接続されている。セレクト線ＳＧＤ１、ＳＧＤ２には、例えば前記制御電圧発生回路１４から所定の電圧がそれぞれ供給される。
【００９０】
前記セレクト線ＳＧＤ１にはＮチャネルＭＯＳトランジスタ１２１、１２２が直列接続されている。トランジスタ１２１の電流通路の一端には信号ＳＧＤＳＰＢＬＲが供給され、ゲートには信号ＲＤＥＣＡＤｉｎ＋１ｎが供給されている。さらに、トランジスタ１２２のゲートには、インバータ回路１２３を介して前記インバータ回路１１９の出力信号ＲＤＥＣＡＤｎが供給されている。
【００９１】
さらに、前記セレクト線ＳＧＤ２にはＮチャネルＭＯＳトランジスタ１２４の電流通路の一端が接続されている。このトランジスタ１２４の電流通路の他端には、前記信号ＳＧＤＳＰＢＬＲが供給され、ゲートには前記信号ＲＤＥＣＡＤｎが供給されている。
【００９２】
また、ヒューズ状態検出回路６ｂにおいて、前記信号ＲＯＷＣＯＭが供給されるノードは、ＮチャンネルＭＯＳトランジスタ１１０を介して接地されるとともに、ＮチャンネルＭＯＳトランジスタ１１１のゲートに接続されている。前記トランジスタ１１０のゲートには、信号ＲＯＷＣＯＭＶＳＳが供給されている。前記トランジスタの電流通路の一端は、インバータ回路１１２の入力端、及びインバータ回路１１３の出力端に接続され他端は、接地されている。前記インバータ回路１１２の出力端、及びインバータ回路１１３の入力端は、インバータ回路１１４の入力端に接続され、このインバータ回路１１４の出力端から前記ヒューズが切断されているか否かを示す信号ＦＵＳＥＣＵＴが出力される。この信号ＦＵＳＥＣＵＴは、制御部１５に供給される。このインバータ回路１１４の入力端はＮチャネルＭＯＳトランジスタ１１５を介して接地されている。このトランジスタ１１５のゲートには、インバータ回路１１６を介して信号ＢＵＳＹが供給されている。
【００９３】
上記構成において、ブロック選択回路６ａの動作について説明する。
【００９４】
信号ＲＤＥＣＰＢＬＲ、信号ＲＤＥＣＰＢＬＲＤ、ＣＭＤ＿ＲＯＭＢＡ、ＲＯＷＣＯＭは、通常接地電位ＶＳＳである。このため、インバータ回路１１９の出力信号ＲＤＥＣＡＤはローレベルとされている。
【００９５】
一方、リード動作、プログラム動作、イレーズ動作が開始されると、選択されたメモリセルアレイの右側又は左側の一方に対応する信号ＲＤＥＣＰＢＬＲがハイレベルになる。この状態において、アドレスが一致すると、ロウデコード信号ＡＲＯＷＡ〜ＡＲＯＷＥが全てハイレベルとなる。このため、インバータ回路１１９の出力信号ＲＤＥＣＡＤがハイレベルとなり、レベルシフタ１２０が活性化される。このレベルシフタ１２０は、プログラム時にプログラム電圧Ｖｐｇｍ＋Ｖｔｈ（Ｖｔｈは転送ゲートの閾値電圧）を出力し、リード時にリード電圧Ｖｒｅａｄ＋Ｖｔｈを出力し、イレーズ時に電源電圧ＶＤＤを出力する。このような電圧を生成することにより、転送ゲートはＣＧ駆動回路９からの電圧をそのまま転送できる。
【００９６】
一方、アドレスが不一致の場合、ロウデコード信号ＡＲＯＷＡ〜ＡＲＯＷＥのいずれかがローレベルとなり、ブロック選択回路６ａは非選択状態になる。このため、レベルシフタ１２０の出力電圧は接地電圧ＶＳＳになる。したがって、リード時、プログラム時において、ワード線ＷＬ０〜１５はフローティングとなる。セレクト線ＳＧＤ１、ＳＧＤ２はＳＧＤＳＰＢＬＲが接地電位ＶＳＳとなり、さらに、トランジスタ１２１、１２２、１２３がオンすることにより、接地電位ＶＳＳとなる。
【００９７】
イレーズ時、ワード線ＷＬ０〜１５はフローティング状態とされ、電圧ＳＧＤＳＰＢＬＲは電源電圧ＶＤＤに設定される。このため、セレクト線ＳＧＤ１、ＳＧＤ２の電位は、ＶＤＤ−Ｖｔｈになる。しかし、基板が消去電圧ＶＥＲＡに設定されるため、カップリングによりワード線ＷＬ０〜１５、及びセレクト線ＳＧＤ１、ＳＧＤ２はともに消去電圧ＶＥＲＡに近い電位となる。
【００９８】
図１２に示すヒューズ１０９は、前述したように、不良ブロックの場合、切断される。一括選択ライトなどのテスト時、ロウデコード信号ＡＲＯＷＡ〜Ｅは、全部ハイレベルとされる。しかし、ヒューズ１０９が切られているため、インバータ回路１１９の出力信号ＲＤＥＣＡＤはローレベルとなり、不良ブロックは選択されない。
【００９９】
また、バーシャルグッド品の不良ブロックをアクセスした場合も、ヒューズ１０９が切断されている場合、この不良ブロックは非選択となる。このため、この状態で、リード動作を行なうとセルがオフしていることになり、２値の時は、自動的に“０”データとなる。また、４値の第２ページの時は、“０”データとなるのに対して、第１ページの時はデータ“１”となる。このため、信号ＲＤＥＣＰＢＬＲをハイレベルにする前に、信号ＲＯＷＣＯＭＶＳＳを一旦ローレベルにし、ＲＯＷＣＯＭをフローティングにする。
【０１００】
図１３は、図１２に示すヒューズ１０９の状態を検出ための動作シーケンスを示している。
【０１０１】
先ず、信号ＢＵＳＹ及び信号ＲＤＥＣＰＢＬＲＤをハイレベルにした状態において、信号ＲＯＷＣＯＭＶＳＳをローレベルとする。この状態において、アドレスが一致し、ロウデコード信号ＡＲＯＷＡ〜ＡＲＯＷＥが全てハイレベルであり、且つヒューズ１０９が切られていないブロックの場合、信号ＲＯＷＣＯＭが供給されるノードの電圧が電源電圧ＶＤＤになる。このため、トランジスタ１１１がオンし、インバータ回路１１２、１１３からなるラッチ回路の出力端はハイレベルを保持する。したがって、インバータ回路１１４の出力信号ＦＵＳＥＣＵＴはローレベルとなる。
【０１０２】
一方、ヒューズ１０９が切られているブロックの場合、信号ＲＯＷＣＯＭが供給されるノードはフローティング（電位はＶＳＳ）のままである。このため、トランジスタ１１１はオフし、インバータ回路１１２、１１３からなるラッチ回路の出力端はローレベルを保持する。したがって、インバータ回路１１４の出力信号ＦＵＳＥＣＵＴはハイレベルとなる。
【０１０３】
この後、信号ＲＯＷＣＯＭＶＳＳ、信号ＲＤＥＣＰＢＬＲＤがハイレベルとされる。インバータ回路１１２、１１３からなるラッチ回路は、ラッチ状態を保持している。このため、ヒューズ１０９が切断されていると、どのブロックも選択されないようになる。
【０１０４】
このように、図１２に示す回路の場合、ヒューズ１０９が切断されているかどうかが分かる。このため、ヒューズ１０９が切断されている時は、一回の読み出し動作後、２回目の読み出し動作を行なわないと、出力はデータ“０”となる。
【０１０５】
また、複数のセルに同じデータを書き込むイレーズ動作時、消去十分であるとイレーズベリファイにおいて、データ記憶回路の値は、データ“１”になり、不十分であるとデータ“０”となる。しかし、ヒューズ１０９が切られている場合、どのブロックも選択されずデータ“０”となってしまう。このため、イレーズベリファイが繰り返され、最大のループ回数まで動いてしまう。本発明は、これを防止するため、信号ＦＵＳＥＣＵＴがハイレベルの場合は、このアレイのイレーズを行なわないようにしている。
【０１０６】
図１４は、メモリセルアレイの物理マッピングを示している。アドレスにより選択される物理位置を示す。
【０１０７】
各メモリセルアレイ１はブロックｂｌｋ０〜ｂｌｋ２３、及び冗長ブロックとしてのブロックリダンダンシｂｌｋＲＤ０〜９を有している。ブロックリダンダンシｂｌｋＲＤ０〜ｂｌｋＲＤ９のうち任意のブロックリダンダンシをＲＯＭブロックにすることができる。例えばブロックリダンダンシｂｌｋＲＤ１をＲＯＭブロックにする場合、ＲＯＭブロックをアクセスするためのコマンド信号ＣＤ＿ＲＯＭＢＡが入力されると、図１に示すブロックＲＤデコーダ１１からは信号が出ず、ＲＯＭブロック指定回路２０から、ブロックリダンダンシを選択する信号Ａ１７〜Ａ２６，及び信号ＡＲＤが出力され、ブロックリダンダンシの１番目が選択されるようにロウデコード信号ＡＲＯＷＡ〜ＡＲＯＷＥが出力される。
【０１０８】
ＲＯＭブロックのヒューズ１０９は、通常は切断する。なぜなら、ＲＯＭブロックにはダイソートテスト時にデータを書き込み、この後の、一括プログラム、及び一括イレーズの時は選択されないようにするためである。
【０１０９】
しかし、ＲＯＭブロックをアクセスする場合、図１２において、コマンド信号ＣＭＤ＿ＲＯＭＢＡがハイレベルとされると、トランジスタ１０８がオンとなるため、ヒューズ１０９が切断されていても選択状態になる。
【０１１０】
図１５（ａ）は、図１に示す制御部１５に設けられたＲＯＭブロックの書き込み禁止回路１５ａを示し、図１５（ｂ）はＲＯＭブロック２０の消去禁止回路１５ｂを示している。
【０１１１】
図１５（ａ）において、書き込み禁止回路１５ａは、ＰチャネルＭＯＳトランジスタ１５１ａ、１５１ｂ、ＮチャネルＭＯＳトランジスタ１５１ｃ、ヒューズ１５１ｄ、インバータ回路１５１ｅ、１５１ｆ、１５１ｈ、ノア回路１５１ｇとにより構成されている。前記トランジスタ１５１ａ、１５１ｂの電流通路の一端には電源電圧ＶＤＤが供給され、電流通路の他端は共通接続されている。これらトランジスタの接続ノードと接地間には前記トランジスタ１５１ｃと前記ヒューズ１５１ｄが接続されている。トランジスタ１５１ａ、及びトランジスタ１５１ｃのゲートには信号ＬＯＷＶＤＤｎが供給されている。さらに、前記接続ノードは前記インバータ回路１５１ｅを介してノア回路１５１ｇの一方入力端に接続されている。このノア回路１５１ｇの他方入力端にはインバータ回路１５１ｆを介してコマンド信号ＣＭＤ＿ＲＯＭＢＡが供給されている。このノア回路１５１ｇの出力端はインバータ回路１５１ｈの入力端に接続され、このインバータ回路１５１ｈの出力端から信号ＰＲＯＥＮＡＢＬが出力される。
【０１１２】
図１５（ｂ）に示す消去禁止回路１５ｂは、書き込み禁止回路１５ａと同様の構成である。すなわち、トランジスタ１５２ａ、１５２ｂの電流通路の一端には電源電圧ＶＤＤが供給され、電流通路の他端は共通接続されている。これらトランジスタの接続ノードと接地間にはトランジスタ１５２ｃとヒューズ１５２ｄが接続されている。トランジスタ１５２ａ、及びトランジスタ１５２ｃのゲートには信号ＬＯＷＶＤＤｎが供給されている。さらに、前記接続ノードはインバータ回路１５２ｅを介してノア回路１５２ｇの一方入力端に接続されている。このノア回路１５２ｇの他方入力端にはインバータ回路１５２ｆを介してコマンド信号ＣＭＤ＿ＲＯＭＢＡが供給されている。このノア回路１５２ｇの出力端はインバータ回路１５２ｈの入力端に接続され、このインバータ回路１５２ｈの出力端から信号ＥＲＡＥＮＡＢＬが出力される。
【０１１３】
前記信号ＬＯＷＶＤＤｎは、パワーオン時一旦ローレベルになるが、この後ハイレベルとされる。ヒューズ１５１ｄ、１５２ｄの切断前において、出力信号ＰＲＯＥＮＡＢＬ、出力信号ＥＲＡＥＮＡＢＬは常にハイレベルである。このため、プログラム、イレーズとも可能である。しかし、ヒューズ１５１ｄ、１５２ｄを切断した後に、ＲＯＭブロックをアクセスするコマンド信号ＣＭＤ＿ＲＯＭＢＡがハイレベルになると、出力信号ＰＲＯＥＮＡＢＬ、ＥＲＡＥＮＡＢＬは共にローレベルとなり、ＲＯＭブロックは書き込み、消去ができなくなる。ヒューズ１５１ｄ、又は１５２ｄの切断は任意に設定できる。
【０１１４】
（４値の場合の動作）
本発明の半導体記憶装置において、４値の場合の動作について説明する。
【０１１５】
図１６、図１７（ａ）に示すように、メモリセルのデータとメモリセルの閾値を定義する。ここで、メモリセルのデータが状態“０”〜“３”は、メモリセルの閾値の低いほうから高いほうへと定義されている。消去を行なうとメモリセルのデータは状態“０”となる。書き込み動作に応じて、メモリセルの閾値電圧は高い方に移動する。
【０１１６】
図１６は、本発明の書き込み方法を示している。メモリセルにデータを書き込む場合、先ず、第１ページのデータがメモリセルに書き込まれ、次に、第２ページのデータがメモリセルに書き込まれる。ここで、第１ページあるいは第２ページのデータを構成する書き込みデータが“１”である場合、書き込み動作によりメモリセルの閾値電圧は変化せずメモリセルのデータは変化しない。すなわち、データの書き込みが行われない。また、第１ページあるいは第２ページのデータを構成する書き込みデータが“０”である場合、書き込み動作によりメモリセルの閾値電圧が変化され、これに伴いメモリセルのデータも変化される。すなわち、データの書き込みが行われる。
【０１１７】
先ず、消去状態のメモリセルのデータは状態“０”とされている。最初に第１ページのデータがメモリセルに書き込まれる。書き込みデータが“１”の場合、書き込みが行われないメモリセルのデータは状態“０”のままである。書き込みデータが“０”場合、書き込みが行なわれるメモリセルのデータは状態“１”になる。
【０１１８】
次に、第２ページのデータがメモリセルに書き込まれる。この時、第１ページの書き込み動作により、データが状態“１”のメモリセルに対して、書き込みデータ“０”が供給された場合、メモリセルのデータは状態“２”とされる。また、第１ページの書き込み動作により、データが状態“０”のメモリセルに対して、書き込みデータ“０”が供給された場合、メモリセルのデータは状態“３”となる。
【０１１９】
さらに、第１ページの書き込み動作により、データが状態“１”のメモリセルに対して、外部から書き込みデータ“１”が供給された場合、メモリセルのデータは状態“１”のままとされる。また、第１ページの書き込み動作により、データが状態“０”のメモリセルに対して、外部から書き込みデータ“１”が供給された場合、メモリセルのデータは状態“０”のままとされる。
【０１２０】
図１６、図１７（ａ）に示すように、本発明は、メモリセルのデータが状態“２”の場合、第１ページ及び第２ページのデータが“０”、“０”に設定され、メモリセルのデータが状態“３”の場合、第１ページ及び第２ページのデータが“１”、“０”に設定される。メモリセルのデータを読み出す場合、先ず、第２ページのデータが読み出され、次に、第１ページのデータが読み出される。
【０１２１】
第２ページのデータを読み出す場合、メモリセルのデータが状態“０”又は状態“１”であると読み出されるデータは“１”となる。メモリセルのデータが状態“２”又は状態“３”であると読み出されるデータは“０”となる。このため、第２ページのデータの読み出しは、メモリセルのデータが状態“１”以下か、状態“２”以上かの１回の動作のみで判断できる。
【０１２２】
一方、第１ページのデータを読み出す時、メモリセルのデータが状態“０”又は状態“３”であると読み出されるデータは“１”となる。また、メモリセルのデータが状態“１”又は状態“２”であると読み出されるデータは“０”となる。したがって、第１ページのデータは、メモリセルのデータが状態“０”か状態“１”以上かの判断と、メモリセルのデータが状態“２”以下か状態“３”かの判断で読み出すことができる。すなわち、第１ページのデータは、合計２回の動作で読み出すことができる。
【０１２３】
消去動作を行なうとメモリセルのデータは状態“０”になり、アドレスに第１、第２ページの何れを指定しても読み出されるデータは“１”となる。
【０１２４】
また、２ビット（第１ページ、第２頁ページ）の切り替えはアドレスＡ９によって行なう。例えばアドレスＡ９をローレベルとすると第１ページが指定され、アドレスＡ９をハイレベルとすると第２ページが指定される。
【０１２５】
多値メモリの場合、書き込みデータに応じてメモリセルの閾値電圧を正確に制御する必要がある。このため、メモリセルにデータを書き込む場合、メモリセルの制御ゲートに印加する電圧を徐々に増加してデータが書き込まれる。このような書き込み方法はステップアップ書き込み方法と呼ばれている。
【０１２６】
図１８は、メモリセルに対するステップアップ書き込み方法の書き込み特性を示している。縦軸にセルの閾値電圧を示し、横軸に書き込み電圧（プログラム電圧）を示している。
【０１２７】
消去後のセルの閾値電圧（メモリセルのデータが状態“０”）は、例えば−３．５Ｖとされている。上述したように、本発明の場合、メモリセルのデータを状態“０”から状態“３”にする場合、セルの制御ゲートに初期プログラム電圧として１６Ｖを印加する。この後、０．２Ｖづつ書き込み電圧を上げて書き込みを行なうと、図中の“０”→“３”に沿って閾値電圧が上昇する。一方、メモリセルのデータを状態“０”から状態“１”にする場合、初期書き込み電圧を１４Ｖとして書き込みを始める。なぜなら、データが状態“１”の閾値電圧は０．２Ｖである。このため、初期書き込み電圧を１６Ｖとして書き込みを開始すると、３ステップ目と４ステップ目の間でデータが状態“１”の閾値電圧となり、オバープログラムとなる可能性がある。これを回避するため、初期書き込み電圧を１４Ｖとする。
【０１２８】
第１ページの書き込みにおいて、メモリセルのデータは状態“０”から状態“１”に移動するため、１３回の書き込み回数でメモリセルデータを状態“１”の閾値に達している。第２ページの書き込みにおいて、メモリセルのデータを状態“０”→“３”と“１”→“２”にするが、“０”→“３”にするのは“０”→“１”より高い位置まで書き込むため、初期書き込み電圧を１６Ｖに上げることができる。
【０１２９】
したがって、図１７（ｂ）に示すように、書き込み回数はメモリセルのデータが状態“０”から状態“３”が１１回、メモリセルのデータが状態“１”から状態“２”が６回であるため、１１回の書き込み回数でプログラムが可能である。従って、第１ページの後に第２ページを書き込むと、２４回の書き込み回数となる。
【０１３０】
一方、後述するように、第１ページと第２ページを同時に書き込む場合は、メモリセルのデータを状態“０”→“１”、“０”→“２”、“０”→“３”にするため、初期書き込み電圧を１４Ｖから始める。
【０１３１】
したがって、図１７（ｃ）に示すように、書き込み回数はメモリセルのデータが状態“０”から状態“１”が１３回、メモリセルのデータが状態“０”から状態“２”が１７回、メモリセルのデータが状態“０”から状態“３”が２０回であるため、２０回の書き込み回数でプログラムが可能である。したがって、第１ページと第２ページを同時に書く場合は、高速に書き込むことができる。
【０１３２】
また、この第１ページと第２ページは、同一ブロック内のページであるため、連続した２ページを高速に書き込むことができる。
【０１３３】
（オートプログラム）
プログラム動作は、図１９に示すように、まずデータ入力コマンドである“８０ｈ”（ｈは１６進数を示す）を入力し、全てのデータ記憶回路３１０〜３１ｎ／２の第１のラッチ回路ＬＡＴ（Ａ）にデータ“１”（書き込みを行なわない）がセットされる。この後、信号ＡＬＥ、及び信号ＷＥのトグルに応じてアドレス、及びデータを入力する。したがって、カラムアドレスで指定されたデータ記憶回路にシリアルにデータが供給される。
【０１３４】
外部より入力されたデータが、書きこみを行なわないことを示すデータ“１”であると、図５に示すデータ記憶回路のノードＮＣがハイレベルになり、外部より入力されたデータが、書き込みを行なうことを示すデータ“０”であると、ノードＮＣがローレベルになる。以後、第１のラッチ回路ＬＡＴ（Ａ）のデータはノードＮＣの電位とする。
【０１３５】
この後、図１９に示すように、オートプログラムの実行コマンドである“１０ｈ”を入力し、オートプログラムが開始する。ＥＣＣコード使用時は、“１０ｈ”コマンドの入力後、ＥＣＣコード発生回路８により自動的にＥＣＣコードを作り、このコードをデータ記憶回路に供給し、この後、オートプログラム動作が開始される。
【０１３６】
図２０に示すように、倍速プログラム動作は、データ入力コマンド“８０ｈ”、アドレス、及びデータを入力した後、ダミーＢｕｓｙ信号を出力するため、コマンド“１１ｈ”を入力する。このダミープログラムは１．５μｓの短い間、Ｂｕｓｙ信号を出力する。ＥＣＣコードの使用時は、このコマンド“１１ｈ”後にＥＣＣコードを発生し、このコードをデータ記憶回路に供給する。このため、Ｂｕｓｙ信号の時間は１．５μｓより長い時間となる。
【０１３７】
上記コマンド“８０ｈ”、アドレス、データ、及びコマンド“１１ｈ”の入力をアレイアドレス（Ａ１５、Ａ１６）を変えて４回行なう。但し、最終のみコマンド“１１ｈ”の代わりにコマンド“１０ｈ”を入力し、オートプログラムを実行させる。また、２回目以降のコマンド“８０ｈ”において、第１のラッチ回路ＬＡＴ（Ａ）はリセットしない。
【０１３８】
ブロックアドレス（Ａ１７〜Ａ２６）は、毎回任意のアドレスが入力される。しかし、図１に示すロウアドレスレジスタ１８は、次のアドレスが入力されると、前のアドレスが消えるため、アドレス入力毎に図１に示すアレイブロックラッチ回路１９でアレイ毎にブロックアドレスをラッチする。
【０１３９】
オートプログラムコマンド“１０ｈ”の入力後、プログラム動作が行われるが、本メモリは多値メモリであり、１つのメモリセルに２ビットのデータを記憶する。この２ビットを前述したように、アドレスＡ９に割り当てている。すなわち、アドレスＡ９がローレベルの時、第１ページが指定され、アドレスＡ９がハイレベルの時、第２ページが指定される。第１、第２ページの書き込みシーケンスは、図２１、図２２に示すようになる。また、本メモリは、先ず第１ページのデータを書き込み、この後、第２ページのデータを書き込む。まず、図２１、図２２を用いて、第１、第２ページのプログラムについて概略的に説明する。
【０１４０】
図２１に示す第１ページのプログラムにおいて、各データ記憶回路３１０〜３１ｎ／２にセットされたデータがメモリセルにプログラムされ（ＳＴ１）、この後、書き込みが十分かどうかベリファイリードされる（ＳＴ２）。すなわち、メモリセルのデータが読み出され、データ記憶回路の第１のラッチ回路ＬＡＴ（Ａ）にラッチされる。この後、不良ブロックをブロックリダンダンシに置き換える前のテスト工程においては、第１のラッチ回路ＬＡＴ（Ａ）にラッチされたローレベルデータの数、すなわち、ベリファイフェイルの数を計数し、この計数値が規定値（本例では、カラムリダンダンシが４個のときは４、カラムリダンダンシが８個の時は８）以上の場合、再度プログラムベリファイを繰り返し、規定値以下の場合、プログラム動作を終了する（ＳＴ４）。また、テスト以外の場合、各第１のラッチ回路ＬＡＴ（Ａ）にラッチされたデータが“１”であるかどうか判別され、オール“１”でなければ、上記動作が繰り返され、オール“１”である場合、第１ページのプログラムが終了される（ＳＴ５）。
【０１４１】
一方、図２２に示す第２ページのプログラムにおいては、各データ記憶回路３１０〜３１ｎ／２の第１のラッチ回路ＬＡＴ（Ａ）にデータをセットした後、先ず、第１ページのプログラムにおいて書き込まれたデータをデータ記憶回路の第２のラッチ回路ＬＡＴ（Ｂ）に読み出す内部データロードが実行される（ＳＴ１１）。この後、第１ページと同様にプログラムされる（ＳＴ１２）。次に、ベリファイリード１で、メモリセルのデータが状態“２”になっているかどうかベリファイされ（ＳＴ１３）、ベリファイリード２で、メモリセルのデータが状態“３”になっているかどうかがベリファイされる（ＳＴ１４）。以下、第１ページのプログラムと同様の動作が行われる（ＳＴ１５〜ＳＴ１７）。
【０１４２】
尚、パーシャルグッド品の不良ブロックは、テスト後にヒューズ１０９が切断されている。したがって、この不良ブロックをアクセスした場合、この不良ブロックは選択されない。このため、ベリファイＯＫとなり終了する。
【０１４３】
次に、第１、第２ページのプログラムについて詳細に説明する。なお、この説明において、図２１に示すステップＳＴ３、ＳＴ４、及び図２２に示すステップＳＴ１５、ＳＴ１６は省略する。
【０１４４】
（第１ページオートプラグラム）
図２３は、第１ページプログラム時における各部の動作シーケンスを示している。図５、図２３に示すように、データ記憶回路におけるトランジスタ６１ｈのゲートに供給される信号ＢＬＣ１をＶＣＣ＋Ｖthとし、信号ＢＬＳＡをＶｐａｓｓ、ＢＬＴＲをＶＣＣとすると、第１のラッチ回路ＬＡＴ（Ａ）にデータ“１”（書き込みを行なわない）が記憶されている時、ビット線ＢＬの電位はＶＣＣになる。また、データ“０”（書き込みを行なう）が記憶されている時、ビット線の電位は接地電位ＶＳＳになる。また、選択されたワード線に接続され、非選択ページの（ビット線が非選択である）セルは書き込みが行なわれてはならない。このため、これらのセルに接続されているビット線の電位は、データ“１”が供給されるビット線と同様に電位ＶＣＣとされる。
【０１４５】
ここで、図１に示すＣＧ駆動回路９によりセレクト線ＳＧ１をＶＣＣ、セレクト線ＳＧ２をＶＳＳ、選択ＣＧ線にＶＰＧＭ（２０Ｖ）、非選択ワード線にＶｐａｓｓ（１０Ｖ）を印加する。すると、ブロック選択回路６で選択されているブロック（倍速時は、各アレイ毎に１づつ存在する。）のセレクト線ＳＧ１がＶＣＣ、選択ワード線がＶＰＧＭ（２０Ｖ）、非選択ワード線がＶＰＡＳＳ（１０Ｖ）になる。ビット線がＶＳＳになっている場合、セルのチャネルがＶＳＳ、ワード線がＶＰＧＭとなるので書き込みが行なわれる。一方、ビット線がＶＣＣになっている場合、セルのチャネルがＶＳＳでなくＶＰＧＭが上昇されることにより、カップリングでＶＰＧＭ／２となる。このため、このセルはプログラムされない。
【０１４６】
このようにして、データ“０”が書き込まれるメモリセルのデータは、図１６、図１７（ａ）に示すように、状態“１”になる。また、データ“１”の書き込まれるメモリセルのデータは、状態“０”のままである。
【０１４７】
（第１ページプログラムベリファイ）
次に、プログラムベリファイリードが実行される（図２１、ＳＴ２）。
【０１４８】
図２４はプログラムベリファイリードの動作を示し、図２５はプログラムベリファイリード時における各部のシーケンスを示している。
【０１４９】
第１ページプログラムベリファイリードは、図１６に示すように、選択されているワード線にリードの時の電位ｂより少し高い電位ｂ′を供給する。以後“′”はベリファイ電位を示し、リード時のワード線電位より若干高い値とする。
【０１５０】
次に、図２５に示すように、選択されているブロック内の非選択ワード線及びセレクト線ＳＧ１に電圧Ｖｒｅａｄが供給される。さらに、図５に示すデータ記憶回路のトランジスタ６１ｇのゲートに供給される信号ＢＩＡＳがハイレベル（１．６Ｖ）とされ、ビット線がプリチャージされる。
【０１５１】
この後、メモリセルのソース側のセレクト線ＳＧ２をハイレベル（Ｖｒｅａｄ）にする。メモリセルの閾値電圧が電位ｂ′より高い時、メモリセルはオフするため、ビット線はハイレベルのままである。また、メモリセルの閾値電圧が電位ｂ′に達していない場合、メモリセルはオンするためビット線の電位はローレベル（ＶＳＳ）となる。
【０１５２】
ここで、書き込みを行なう場合、図５に示す第１のラッチ回路ＬＡＴ（Ａ）のノードＮＡにローレベル（データ“０”）がラッチされる。また、書き込みを行なわない場合、ノードＮＡにハイレベル（データ“１”）がラッチされる。このため、トランジスタ６１ｌの電流通路に供給される信号ＶＲＥＧをＶＣＣとし、ゲートに供給される信号ＶＲＦＹ１をハイレベルにすると、書き込みを行なわない場合のみビット線がフローティング状態からハイレベルに固定される。この動作の後、ビット線の電位が第１のラッチ回路ＬＡＴ（Ａ）に読み込まれる。第１のラッチ回路ＬＡＴ（Ａ）にハイレベルがラッチされるのは、メモリセルの電位が閾値電圧に達した場合と、書き込みを行なわない場合である。また、第１のラッチ回路ＬＡＴ（Ａ）にローレベルがラッチされる場合は、メモリセルの電位が閾値電圧に達しない場合だけである。
【０１５３】
したがって、第１のラッチ回路ＬＡＴ（Ａ）がローレベルの場合、再び書き込み動作を行ない全てのデータ記憶回路のデータがハイレベルになるまで上記プログラム動作とベリファイリード動作を繰り返す（図２１、ＳＴ１〜ＳＴ５）。
【０１５４】
（第２ページプログラム）
第２ページプログラムも第１ページプログラムと同様に、外部より第２ページのデータが入力される。これらデータは各データ記憶回路３１０〜３１ｎ／２の第１のラッチ回路ＬＡＴ（Ａ）に記憶される。
【０１５５】
第２ページプログラムの動作において、第１ページプログラムの動作と大きく異なるのは内部データロードである（ＳＴ１１）。第２ページプログラムの動作は第１ページプログラムの動作結果に応じて異なる。
【０１５６】
すなわち、図１６、図１７（ａ）に示すように、第１ページのメモリセルのデータが状態“０”になっている（書き込み動作を行なわなかった）場合で、第２ページのデータが“０”（書き込みを行なう）の時、メモリセルのデータを状態“３”に設定する。第２ページのデータが“１”（書き込みを行なわない）の時、メモリセルのデータを状態“０”のままとする。メモリセルのデータが状態“１”になっている（第１ページに書き込み動作を行なった）場合で、第２ページのデータが“０”（書き込みを行なう）の時、メモリセルのデータを状態“２”に設定する。第２ページのデータが“１”（書き込みを行なわない）の時、メモリセルのデータは状態“１”のままにする。
【０１５７】
このように、第２ページプログラムの動作は第１ページプログラムの動作結果に応じて異なる。このため、第２ページのデータをセルに書き込む前に、メモリセルのデータが状態“０”か状態“１”かを調べ、記憶しておく必要がある。そこで、メモリセルのデータを読み出し、図５に示すデータ記憶回路の第２のラッチ回路ＬＡＴ（Ｂ）にロードする内部データロードが行われる（ＳＴ１１）。この内部データロードは、ワード線に図１６に示す電位ａを供給し、リード動作を行う。このリード結果をデータ記憶回路の第２のラッチ回路ＬＡＴ（Ｂ）に記憶する。
【０１５８】
図２６（ａ）は内部データロード時の動作を示し、図２７は、内部データロード時における各部のシーケンスを示している。図２６（ａ）、図２７を参照して、内部データロードの動作について説明する。
【０１５９】
内部データロードにおいて、まず、図５に示すデータ記憶回路の第１のラッチ回路（Ａ）のデータを非選択側のビット線に記憶させる。次に、ワード線に電位ａを印加してリード動作を行なう。この結果を第１のラッチ回路（Ａ）に記憶する。メモリセルのデータが“０”の場合、第１のラッチ回路（Ａ）にはデータ“０”がラッチされ、メモリセルのデータが“１”の場合、第１のラッチ回路（Ａ）にはデータが“１”が記憶される。
【０１６０】
次に、第２のラッチ回路（Ｂ）のデータを“１”にした後、信号ＢＬＣ２に中間電位１Ｖを印加し、信号ＶＲＥＧを電圧ＶＳＳ、信号ＶＲＦＹ１をハイレベルにする。すると、第１のラッチ回路（Ａ）がデータ“１”、つまりメモリセルのデータが“１”の場合、第２のラッチ回路（Ｂ）のデータは“０”になる。第１のラッチ回路（Ａ）のデータが“０”、つまり、メモリセルのデータが状態“１”の場合、第２のラッチ回路（Ｂ）のデータは“１”のままである。この後、非選択側のビット線に記憶されている、データを第１のラッチ回路（Ａ）に戻す。
【０１６１】
次に、第１ページプログラムと同様に、各部に所定の電圧を印加する。この状態において、第１のラッチ回路ＬＡＴ（Ａ）に記憶されている第２ページのデータに応じて、選択されている全てのセルについて書き込みを行なう（図２２、ＳＴ１２）。
【０１６２】
（第２ページベリファイ）
第２ページベリファイは、第１のベリファイリード（ＳＴ１３）と第２のベリファイリード（ＳＴ１４）の２つを有している。第１のベリファイリード（ＳＴ１３）はメモリセルのデータが状態“２”であるかどうかベリファイする。第２のベリファイリード（ＳＴ１４）はメモリセルのデータが状態“３”であるかどうかベリファイする。
【０１６３】
｛第２ページ第１のベリファイリード｝
図２６（ｂ）は第２ページ第１のベリファイリードの動作を示し、図２８は、第２ページ第１のベリファイリード時における各部のシーケンスを示している。
【０１６４】
このベリファイは、図１６に示すように、ワード線に電位ｂ′を印加してリード動作を行う。この結果、メモリセルの閾値電圧がｂ′に達しているとビット線はハイレベル、閾値電圧がｂ′に達していないとローレベルになる。しかし、この時、メモリセルのデータを状態“３”にするセルもオフする。このため、ベリファイＯＫとなってしまう。そこで、第１ページの書き込み動作時に書き込まれず、データが状態“０”のメモリセルに接続されたビット線の電位をローレベルとする。
【０１６５】
すなわち、第１ページの書き込み動作時に書き込まれず、メモリセルのデータが状態“０”の場合、前記内部データロードにより、第２のラッチ回路ＬＡＴ（Ｂ）のノードＮＤは、ハイレベルとされている。この状態において、図５に示すトランジスタ６１ｕの電流通路に供給される信号ＶＲＥＧを、図２８に示すように、接地電圧ＶＳＳ、ゲートに供給される信号ＶＲＦＹ２をハイレベルとする。すると、第２のラッチ回路ＬＡＴ（Ｂ）のノードＮＤがハイレベルになっている場合、トランジスタ６１ｔがオンしてビット線が強制的にローレベルとされる。
【０１６６】
次に、第１ページベリファイ動作と同様に、信号ＶＲＥＧを電源電圧ＶＣＣとし、トランジスタ６１ｌのゲートに供給される信号ＶＲＦＹ１をハイレベルにする。すると、第１のラッチ回路ＬＡＴ（Ａ）のノードＮＡにハイレベルがラッチされている（書き込みを行なわない場合）時、トランジスタ６１ｋがオンする。このため、ビット線がハイレベルになる。この動作の後、ビット線の電位が第１のラッチ回路ＬＡＴ（Ａ）に読み込まれる。
【０１６７】
上記動作により、第１のラッチ回路ＬＡＴ（Ａ）にハイレベルがラッチされるのは、図２６（ｂ）に示すように、メモリセルのデータを状態“２”にするため書き込みを行なっているセルが閾値電圧に達した場合と、書き込みを行なわない場合である。また、第１のラッチ回路ＬＡＴ（Ａ）にローレベルがラッチされる場合は、メモリセルのデータを状態“２”にするため書き込みを行なっているセルが閾値電圧に達しない場合と、書き込みを行なっているメモリセルのデータが状態“３”の場合である。
【０１６８】
｛第２ページ第２のベリファイリード｝
図２６（ｃ）は上記第２ページ第２のベリファイリード動作を示し、図２５はその際の各部のシーケンスを示している。
【０１６９】
このベリファイは第１ページベリファイ動作と全く同じである。なぜなら、図１６に示す電位ｃ′より高いセルはデータ“３”にするセル以外存在しないためである。第１ページベリファイでは、メモリセルのデータが状態“１”になったかどうかをベリファイするためワード線に電位ａ′を印加した。しかし、この場合は、メモリセルのデータが状態“３”になったかどうかをベリファイするため、ワード線に電位ｃ′を印加する。
【０１７０】
この結果、第１のラッチ回路ＬＡＴ（Ａ）にハイレベルがラッチされるのは、図２６（ｃ）に示すように、セルが閾値電圧に達した場合と、書き込みを行なわない（初めから第１のラッチ回路ＬＡＴ（Ａ）にハイレベルがラッチされている）場合である。また、第１のラッチ回路ＬＡＴ（Ａ）にローレベルがラッチされるのは、セルが閾値電圧に達しない場合、つまりメモリセルのデータを状態“３”とするために書き込んでいるが、未だ状態“３”に達しないＮＧの場合と、メモリセルのデータを状態“２”に書き込んでいる場合である。
【０１７１】
したがって、第２ページベリファイは、メモリセルのデータが状態“２”に書き込まれる場合の第１のベリファイリードと、状態“３”に書き込まれる場合の第２のベリファイリードの２回の動作を行なう。さらに、第１のラッチ回路ＬＡＴ（Ａ）がローレベルの場合は再び書き込み動作を行なう。このようにして、全てのデータ記憶回路のデータがハイレベルになるまでこのプログラム動作とベリファイ動作が繰り返される（図２２、ＳＴ１２〜ＳＴ１７）。
【０１７２】
しかし、メモリセルのデータが状態“３”である場合、閾値電圧が高い所にある。このため、このメモリセルはなかなか書き込まれない。このため、繰り返し行なうプログラムベリファイ動作のうち、初めの数回はメモリセルのデータが状態“３”になったかどうかのベリファイ動作を省略することができる。また、数回繰り返し動作を行なうと閾値電圧の低い状態“２”のデータが書き込まれるメモリセルは、書き込みが終了しているはずである。このため、プログラムベリファイ動作を数回繰り返した後、メモリセルのデータが状態“２”のベリファイは省略することが可能である。
【０１７３】
（リード動作）
図２９はリード動作のシーケンスを示している。
【０１７４】
リード動作は、図２９に示すように、先ず、リードコマンド“００ｈ”を入力後、アドレスを入力することにより開始される。リード動作において、アドレスで指定されたページの全セルのデータが、データ記憶回路３１０〜３１ｎ／２にそれぞれ読み出される。この後、信号ＢＵＳＹが解除されレディー状態になると、信号ＲＥのトグルに応じて、カラムアドレスで指定された順に、データ記憶回路からデータが出力される。
【０１７５】
図３０は、倍速リード動作のシーケンスを示している。この倍速リードは、一度のリード動作において、４つのメモリセルアレイ内のページのセルを全て、各データ記憶回路に読み出す。この後、信号ＢＵＳＹが解除されレディー状態になると、信号ＲＥのトグルに応じて、カラムアドレスで指定された順に、データ記憶回路からデータが出力される。１つのメモリセルアレイの最終カラムアドレスになると、短い信号ＢＵＳＹ（１．５μｓ）が出力される。この後、信号ＢＵＳＹが解除されレディー状態になると、信号ＲＥのトグルに応じて次のメモリセルアレイのデータが出力される。このような動作が繰り返され、一度の読み出しで、４ページ分のデータが順次出力される。但し、この４ページは連続していない４ページであるため、図６（ｃ）（ｄ）に示すように、アドレスを割り付ける必要がある。
【０１７６】
また、この実施形態のメモリは、多値メモリであり、１つのセルに２ビットのデータが記憶されている。この２ビットのデータは、アドレスＡ９により指定される。すなわち、上述したように、アドレスＡ９がハイレベルの場合、第２ページが指定され、アドレスＡ９がローレベルの場合、第１ページが指定される。
【０１７７】
図３１は、リード動作を概略的に示すフローチャートである。
【０１７８】
リード動作は、リードコマンド“００ｈ”を入力後、アドレスを入力することにより開始される（ＳＴ２１）。アドレスＡ９がハイレベルの場合、第２ページのデータがリードされる（ＳＴ２５）。この第２ページリードでは、図１６、図１７（ａ）に示すように、メモリセルのデータが“２”以下であるかどうかが判別される。
【０１７９】
次に、アドレスＡ９がローレベルの場合、第１ページのデータがリードされる。第１ページのリード動作は、２つのリード動作を有している。第１のリード動作（第１ページリード１）（ＳＴ２２）は、図１６、図１７（ａ）に示すように、メモリセルのデータが“２”以下か、“３”であるかを判別する。第２のリード動作（第１ページリード２）（ＳＴ２４）は、図１６、図１７（ａ）に示すように、メモリセルのデータが“１”か、“２”以上であるかを判別する。
【０１８０】
尚、パーシャルグット品の不良ブロックに対応するブロック選択回路のヒューズ１０９は切断されている。このため、２値、及び４値の第２ページのリード動作において、不良ブロックをアクセスした場合、この不良ブロックは選択されず、電流が流れない。このため、自動的にデータ“０”が出力される。しかし、４値のメモリにおいて第１ページのリード動作の場合、第１、第２のリード動作（第１ページリード１、２）によりデータ“１”が出力される。しかし、図１２に示すインバータ回路１１４から出力される信号ＦＵＳＥＣＵＴにより、ヒューズ１０９が切断されているかどうか分かる。このため、ヒューズが切断されている場合、第１のリード動作（第１ページリード１）のみを行ない、第２のリード動作（第１ページリード２）を行なわないようにし、データ“０”を出力するようにしている（ＳＴ２３）。
【０１８１】
次に、図３２乃至図３５を参照して、リード動作について詳細に説明する。
【０１８２】
（第２ページリード）
第２ページリードは、図１６に示すように、選択されているワード線にリードの時の電位ｃが印加される。
【０１８３】
次に、図３４に示すように、選択されているブロック内の非選択ワード線及びセレクト線ＳＧ１にＶｒｅａｄ（４．５Ｖ）を印加する。さらに、図５に示すデータ記憶回路のトランジスタ６１ｇのゲートにハイレベルのＢＩＡＳを印加し、ビット線をプリチャージする。この後、セルのソース側のセレクト線ＳＧ２をハイレベルとする。セルの閾値電圧が電位ｃより高い時、セルはオフするため、ビット線はハイレベルのままである。また、セルの閾値電圧が電位ｃに達していない場合、セルはオンするため、ビット線は接地電位ＶＳＳとなる。図１７（ａ）に示すように、メモリセルのデータとメモリセルの閾値電圧を定義している。このため、メモリセルのデータが状態“０”又は状態“１”であるとビット線の電位はローレベルになり、状態“２”又は状態“３”であるとビット線の電位はハイレベルになる。
【０１８４】
次に、これらビット線の電位が第１のラッチ回路ＬＡＴ（Ａ）に読み込まれる。図５に示す第１のラッチ回路ＬＡＴ（Ａ）のノードＮＡは、図３２に示すように、メモリセルのデータが状態“０”又は状態“１”であるとローレベルになり、状態“２”又は状態“３”であるとハイレベルになる。また、ノードＮＢは、ノードＮＡと逆のレベルとなる。カラム選択線ＣＳＬがハイレベルとされると、トランジスタ６１ｏ、６１ｎがオンとなり、ノードＮＢ、ＮＡの電位が出力バッファ４に出力される。
【０１８５】
（第１ページリード）
次に、第１ページのデータがリードされる。第１ページリードで出力されたデータが“１”の場合、図１７（ａ）に示すように、メモリセルのデータが状態“０”又は状態“３”である。
【０１８６】
したがって、最初にメモリセルのデータが状態“２”以下か、状態“３”であるかを判断する。次にメモリセルのデータが状態“０”か、状態“１”以上であるかを判断しなければならない。
【０１８７】
｛第１のリード動作｝
第１のリード動作では、メモリセルのデータが状態“２”以下か、状態“３”であるかを判断する。図３３（ａ）は第１ページ第１のリード動作を示し、図２３の左半分はその際のシーケンスを示している。図３５におけるシーケンスは図３４と同様である。
【０１８８】
先ず、メモリセルのデータが状態“２”以下か、状態“３”であるかを調べるため、ワード線に電位ｃを印加してメモリセルのデータをリードする。この結果、第１のラッチ回路ＬＡＴ（Ａ）にハイレベルがラッチされるのは、図３３（ａ）に示すように、メモリセルのデータが状態“３”の場合だけである。また、第１のラッチ回路ＬＡＴ（Ａ）にローレベルがラッチされる場合は、メモリセルのデータが状態“０”、状態“１”、状態“２”のいずれかの場合である。
【０１８９】
｛第２のリード動作｝
次に、第２のリード動作では、メモリセルのデータが状態“０”か、状態“１”以上であるかを判断する。図３３（ｂ）は第１ページ第２のリード動作を示し、図３５の右半分はその際のシーケンスを示している。
【０１９０】
メモリセルのデータが状態“０”か、状態“１”以上であるかを調べるため、ワード線に電位ａを印加してメモリセルのデータをリードする。この結果、第１のラッチ回路ＬＡＴ（Ａ）にローレベルがラッチされるのは、メモリセルのデータが状態“０”の場合だけである。また、第１のラッチ回路ＬＡＴ（Ａ）にハイレベルがラッチされる場合は、メモリセルのデータが状態“１”、状態“２”、状態“３”のいずれかの場合である。
【０１９１】
ここで、図５に示す信号ＶＲＥＧを接地電位ＶＳＳとし、トランジスタ６１ｌのゲートに供給される信号ＶＲＦＹ１をハイレベルにする。第１のラッチ回路ＬＡＴ（Ａ）にハイレベルがラッチされている場合、すなわち、第１ページ第１のリード動作において、メモリセルのデータが状態“３”のとき、ビット線が強制的にローレベルとされる。この結果、メモリセルのデータが状態“０”又は状態“３”の場合、ビット線の電位はローレベルになる。また、メモリセルのデータが状態“１”又は状態“２”の場合、ビット線の電位がハイレベルになる。
【０１９２】
次に、これらのビット線の電位を第１のラッチ回路ＬＡＴ（Ａ）に読み込むと、図３３（ｂ）に示すように、メモリセルのデータが状態“０”、状態“３”であると、第１のラッチ回路ＬＡＴ（Ａ）のノードＮＡはローレベルになる。また、状態“１”、状態“２”であるとノードＮＡはハイレベルになる。また、ノードＮＢは、ノードＮＡと逆のレベルとなる。カラム選択線ＣＳＬがハイレベルとされると、トランジスタ６１ｏ、６１ｎがオンとなり、ノードＮＢ、ＮＡの電位が出力バッファ４に出力される。
【０１９３】
（オートイレーズ）
図３６は、イレーズ動作を示している。イレーズ動作は、ブロック単位でイレーズする。このため、先ず、ブロックを選択するブロック選択コマンド“６０ｈ”を入力し、この後、ブロックアドレスを入力する。この後、オートイレーズの実行コマンド“ＤＯｈ”を入力すると、オートイレーズが開始する。
【０１９４】
図３７は、倍速イレーズ動作を示している。倍速イレーズ動作は、ブロック選択コマンド“６０ｈ”、ブロックアドレスをアレイアドレス（Ａ１５、Ａ１６）を換えて３回入力する。この後、ブロック選択コマンド“６０ｈ”、アドレス、オートイレーズの実行コマンド“ＤＯｈ”を入力することにより、倍速イレーズ動作が開始される。
【０１９５】
ブロックアドレス（Ａ１７〜Ａ２６）は、毎回任意のアドレスが入力されるが、図１に示すロウアドレスレジスタ１８は、次のアドレスが入力されると、前のアドレスが消えるため、アドレス入力毎に図１に示すアレイブロックラッチ回路１９でブロックアドレスをメモリセルアレイ毎にラッチする。
【０１９６】
図３８はオートイレーズのフローチャートを示している。先ず、選択されているブロックのイレーズ動作を行なう（ＳＴ３１）。この後、データ記憶回路に接続されている２本のビット線（ＢＬｉ、ＢＬ＋１）のうち１本のビット線（ＢＬｉ）についてイレーズベリファイリード動作を行ない、十分に消去されていない場合、再度イレーズが行われる（ＳＴ３２〜ＳＴ３５、ＳＴ３１）。メモリセルが十分に消去されている場合、他方のビット線（ＢＬｉ）についてイレーズベリファイリード動作を行なわれる（ＳＴ３６）。この結果、十分に消去されていない場合、再度イレーズが行われる（ＳＴ３６〜ＳＴ３９、ＳＴ３１）。メモリセルが十分に消去されている場合、終了する。
【０１９７】
不良ブロックをブロックリダンダンシに置き換える前のテスト工程においては、各イレーズベリファイ動作ＳＴ３３、ＳＴ３６の後、第１のラッチ回路ＬＡＴ（Ａ）にラッチされたローレベルデータの数、すなわち、ベリファイフェイルの数が計数され、この計数値が規定値（本例では、カラムリダンダンシが４個のときは４、カラムリダンダンシが８個の時は８）以上の場合、再度イレーズを繰り返される（ＳＴ３４、ＳＴ３８）。
【０１９８】
尚、パーシャルグッド品の不良ブロックは、テスト後にヒューズ１０９が切断されている。したがって、この不良ブロックをアクセスした場合、この不良ブロックは選択されない。このため、第１のラッチ回路ＬＡＴ（Ａ）はデータがローレベルとなり、イレーズベリファイがＯＫにならない。しかし、図１２に示すインバータ回路１１４から出力される信号ＦＵＳＥＣＵＴにより、ヒューズ１０９が切断されているかどうか分かる。したがって、信号ＦＵＳＥＣＵＴに応じてヒューズ１０９が切断されている場合は、ベリファイはＯＫとする。
【０１９９】
（イレーズ）
図３９はイレーズ動作のシーケンスを示している。イレーズ動作を行なうと、メモリセルのデータは状態“０”となり、第１ページ、第２ページ、何れでリードを行なってもデータ“１”が出力される。
【０２００】
（イレーズベリファイ）
図４０はイレーズベリファイ動作のシーケンスを示している。１回のイレーズベリファイ動作は、データ記憶回路に接続されている２本のビット線（ＢＬｉ、ＢＬ＋１）のうち１本のビット線（ＢＬｉ）についてイレーズベリファイリード動作を行なう。このため、ブロック内の全てのワード線ＷＬを選択状態のＶＳＳにする。セルのソース線ＳＲＣをＶＤＤ、セレクト線ＳＧ１をＶｒｅａｄにした後、セルのソース側のセレクト線ＳＧ２をＶｒｅａｄにする。セルのドレイン側、つまりビット線には、１６個のセルのうち一番浅いセルの−Ｖｔｈの電位が出力される。
【０２０１】
ここで、第１のラッチ回路ＬＡＴ（Ａ）をハイレベルにし、信号ＢＬＣ１を１．６Ｖにすると、Ｖｔｈが−０．６Ｖ以下（消去十分）であると第１のラッチ回路ＬＡＴ（Ａ）はハイレベルのままである。しかし、Ｖｔｈが−０．６Ｖ以上（消去不十分）であると、第１のラッチ回路ＬＡＴ（Ａ）はデータがローレベルとなる。したがって、全ての第１のラッチ回路ＬＡＴ（Ａ）のデータがハイレベルになると、イレーズベリファイＯＫとなる。
【０２０２】
（ステップアップシフトテスト）
図４１は、図１に示す制御電圧発生回路１４内に設けられた電圧設定回路を示している。制御電圧発生回路１４は前述したように、昇圧回路を有しており、この昇圧回路により、プログラム電圧Ｖｐｇｍ、イレーズ電圧Ｖｅｒａ、及び電圧Ｖｐａｓｓ等が発生される。プログラム電圧Ｖｐｇｍは、前述したように、数段階に分けて昇圧される。
【０２０３】
ところで、メモリセルの特性はプロセスの変動等により変化し、昇圧回路が発生する上記各電圧もプロセスの変動等により変化する。このため、チップの特性に応じてプログラム電圧Ｖｐｇｍ、イレーズ電圧Ｖｅｒａ、及び電圧Ｖｐａｓｓを設定する必要がある。したがって、リダンダンシ置き換え前のテスト時、オートプログラム、及びオートイレーズを行ない、これにより、プログラム開始電圧の設定及びイレーズ開始電圧の設定が行われている。
【０２０４】
図４１に示す電圧設定回路は、チップの特性に応じて最適なプログラム電圧Ｖｐｇｍ、電圧Ｖｐａｓｓ、及びイレーズ電圧Ｖｅｒａを設定可能としている。
【０２０５】
すなわち、この電圧設定回路は、初期データ記憶用ヒューズ１６１、カウンタ１６２により構成されている。前記初期データ記憶用ヒューズ１６１は電圧Ｖｐｇｍ、電圧Ｖｐａｓｓ、及び電圧Ｖｅｒａを制御するための初期データがヒューズを用いて設定されている。これらヒューズは、リダンダンシ置き換え前のテスト時、オートプログラム、及びオートイレーズを行ない、この結果により、プログラムされる。前記初期データは、電圧Ｖｐｇｍ、電圧Ｖｐａｓｓ、及び電圧Ｖｅｒａを発生する際、カウンタ１６２にプリセットされる。カウンタ１６２は、例えばプリセットカウンタにより構成されている。このカウンタ１６２には、信号ＣＴ１、ＣＴ２が供給されている。このカウンタ１６２の出力信号は、例えば昇圧回路のリミッタに接続され、このリミッタのリミット値を変化させる。
【０２０６】
前記信号ＣＴ１は、例えば１回のプログラム又はイレーズ動作が終了し、ベリファイがＮＧの場合に供給される。カウンタ１６２は、この信号ＣＴ１によりインクリメントされる。このため、カウンタ１６２の出力信号に応じて、昇圧回路から１ステップ高い電圧を出力するようにリミッタを制御する。
【０２０７】
また、前記信号ＣＴ２は、本実施形態における特徴を示すものであり、テストモード時、初期データ記憶用ヒューズ１６１からデータが読み出されたプログラム開始電圧及びイレーズ開始電圧を数ステップ分インクリメントさせる。
【０２０８】
従来、トリミング後の加速試験は、一律に少し高いプログラム開始電圧及びイレーズ開始電圧を加えていた。しかし、信号ＣＴ２を用いることにより、加速試験のため±数ステップさせる機能を持たせることができる。したがって、個々のチップに適した電圧を加えることができる。
【０２０９】
また、電圧Ｖｐａｓｓ、Ｖｐｇｍを初期データ記憶用ヒューズ１６１で設定したデータよりも低い電圧にするプログラム非選択での加速試験などでは、カウンタ１６２をマイナス方向にインクリメントさせなくてはならない。しかし、このマイナス方向にインクリメントできるカウンタは複雑である。このため、信号ＣＴ２を用いて、カウンタを１周−数ステップ分インクリメントさせることにより、初期データ記憶用ヒューズ１６１で設定したデータよりも低い電圧に設定する。このような構成とすることにより、複雑なカウンタを用いることなく容易に所要の値を設定することができる。
【０２１０】
上記第１の実施形態によれば、メモリセルアレイ１は、複数のブロックｂｋｌ０〜ｂｋｌ２３、複数のブロックリダンダンシｂｌｋＲＤ０〜ｂｌｋＲＤ９を有している。各ブロックｂｋｌ０〜ｂｋｌ２３及び各ブロックリダンダンシｂｌｋＲＤ０〜ｂｌｋＲＤ９には、ブロック選択回路６ａが設けられている。各ブロック選択回路６ａはヒューズ１０９を有し、このヒューズ１０９を切断することにより、任意のブロックリダンダンシｂｌｋＲＤ０〜ｂｌｋＲＤ９をセキュリティのための情報を記憶するＲＯＭブロックに設定できる。したがって、確実にセキュリティ情報をＲＯＭブロックに設定できる。
【０２１１】
しかも、制御部１５に設けられたＲＯＭブロックの書き込み禁止回路１５ａ、消去禁止回路１５ｂのヒューズ１５１ｃ、１５２ｃを所要に応じて切断することにより、ＲＯＭブロックを適宜、書き込み禁止、消去禁止とすることができる。
【０２１２】
また、不良ブロックに対応するブロック選択回路６ａのヒューズ１０９を切断することにより、不良ブロックを確実に非選択とすることができる。したがって、プログラム（倍速オートプログラム）、及びイレーズ（倍速オートイレーズ）時にベリファイが最大の回数まで繰り返されることを防止できる。
【０２１３】
さらに、上記実施形態は、ＥＣＣを使用する場合と、使用しない場合を例えば制御部１５に設けられたヒューズにより設定することができる。しかも、ＥＣＣをしない場合、ＥＣＣ用の２１ビットをリダンダンシに使用できるようにすることができるため、不良の救済効率を向上できる。
【０２１４】
また、リダンダンシ置き換え前のテスト工程において、オートプログラム、及びオートイレーズを行なうと、カラム不良がある場合、この不良カラムのためベリファイがＮＧとなってしまう。しかし、上記実施形態によれば、カラムリダンダンシの数が規定値以下の場合ベリファイ結果を無視している。このため、リダンダンシ置き換え前のテスト時、オートプログラム、及びオートイレーズを行なうことができ、これにより、プログラム開始電圧の設定及びイレーズ開始電圧の設定をすることが可能になる。
【０２１５】
さらに、カウンタ１６２に信号ＣＴ２を供給し、この信号ＣＴ２により、初期データ記憶用ヒューズ１６１で固定したプログラム開始電圧及びイレーズ開始電圧を、加速試験のため±数ステップさせる機能を持たせている。したがって、従来のように、トリミング後の加速試験において、一律に少し高いプログラム開始電圧及びイレーズ開始電圧を加える場合に比べて、個々のチップに適した電圧を加えることができる利点を有している。
【０２１６】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。第１の実施形態は、１ページの書き込み動作時に、１ビットのデータを書き込んでいる。これに対して、第２の実施形態では、１ページの書き込み動作時に１ビット、２ページ同時書き込み動作時は２ビットを連続して書き込み可能とし、連続ページを同時に書き込む場合、高速な書き込みを可能としている。
【０２１７】
第１の実施形態における、第１ページ、第２ページを別々にプログラムする場合、第１ページのプログラムは１つの閾値を書き込み、第２ページのプログラムは２つの閾値を書き込んでいた。これに対して、第１ページ、第２ページ同時プログラムは、３つの閾値を書き込む。
【０２１８】
図４２は、第２の実施形態に適用されるデータ記憶回路の構成を示している。ここでは、説明を簡単にするため、データ記憶回路はラッチ回路を３つ有している。（尚、ラッチ回路２つで一度に３つの閾値を書き込むことも可能である。）
図４２において、図５と同一部分には同一符号を付し、異なる部分についてのみ説明する。図４２に示すデータ記憶回路は、第３のラッチ回路ＬＡＴ（Ｃ）をさらに有している。第３のラッチ回路ＬＡＴ（Ｃ）において、前記ノードＮＥにはトランジスタ６２ｆの電流通路の一端が接続されている。このトランジスタ６２ｆのゲートには信号ＢＬＣ３が供給されている。このトランジスタ６２ｆの電流通路の他端には、ＰチャネルＭＯＳトランジスタ６２ｊを介して端子６２ｉが接続されている。この端子６２ｉには電圧ＶＣＣが供給されている。前記トランジスタ６２ｊのゲートには信号ＰＲＳＴＢ３が供給されている。
【０２１９】
前記トランジスタ６２ｆの電流通路の他端には第３のラッチ回路ＬＡＴ（Ｃ）が接続されている。この第３のラッチ回路ＬＡＴ（Ｃ）は２つのクロックドインバータ回路６２ｋ、６２ｌにより構成されている。クロックドインバータ回路６２ｋは信号ＳＥＮ３、ＳＥＮ３Ｂにより制御され、クロックドインバータ回路６２ｌは信号ＬＡＴ３、ＬＡＴ３Ｂにより制御される。この第３のラッチ回路ＬＡＴ（Ｃ）は、メモリセルから読み出されたデータをラッチする。
【０２２０】
また、前記ノードＮＥにはトランジスタ６２ｑ、６２ｈが直列接続されている。トランジスタ６２ｑのゲートは前記第３のラッチ回路ＬＡＴ（Ｃ）のノードＮＦに接続され、トランジスタ６２ｈのゲートには信号ＶＲＦＹ３が供給されている。さらに、トランジスタ６２ｈの電流通路には信号ＶＲＥＧが供給されている。これらトランジスタ６２ｑ、６２ｈは第３のラッチ回路ＬＡＴ（Ｃ）にラッチされたデータに応じてビット線の電位を設定する。
【０２２１】
上記構成において、動作について説明する。
【０２２２】
（第１ページ、第２ページ同時プログラム）
図４３は、第１ページ、第２ページ同時プログラムの動作シーケンスを示し、図４４、図４５は各部の動作を示している。図４６はフローチャートを示している。
【０２２３】
第１ページ、第２ページ同時プログラム時も、図１９と同様に、先ず、データ入力コマンド“８０ｈ”に続いて、アドレス、データを入力する。外部より入力されたデータが、書き込みを行なわないことを示すデータ“１”である場合、図４２の第１のラッチ回路ＬＡＴ（Ａ）のノードＮＣはハイレベルになる。また、外部より入力されたデータが、書き込みを行なうことを示すデータ“０”である場合、ノードＮＣはローレベルになる。
【０２２４】
次に、図４４に示すように、第１のラッチ回路ＬＡＴ（Ａ）にラッチされたデータを、第２のラッチ回路ＬＡＴ（Ｂ）に移動する。このため、前記倍速プログラムと同様に、コマンド“１２ｈ”を入力する。このコマンドも１．５μｓと短い。この時、第１のラッチ回路ＬＡＴ（Ａ）の内容を第２のラッチ回路ＬＡＴ（Ｂ）に転送する。この後、再度、コマンド“８０ｈ”、アドレス、データを入力する。ここでのアドレスは、先に入力したアドレスの隣のページアドレス（Ａ９のみ異なる）である。このデータは第１のラッチ回路ＬＡＴ（Ａ）にラッチされる。この後、オートプログラム実行コマンド“１０ｈ”を入力すると、オートプログラムが開始される。
【０２２５】
メモリセルのデータが状態“１”になったかのベリファイでは、状態“２”と“３”を書き込むメモリセルもＯＫとなってしまう。このため、これらを強制的にＮＧにする。このため、状態“２”、“３”を書き込むメモリセルに対応する第２のラッチ回路（Ｂ）をデータ“１”とする。メモリセルのデータが状態“２”になったかのベリファイでは、状態“３”を書き込むメモリセルもＯＫとなってしまう。このため、これらを強制的にＮＧとするように、状態“３”に書き込むメモリセルに対して第３のラッチ回路（Ｃ）をデータ“１”とする。
【０２２６】
すなわち、先ず、第１のラッチ回路（Ａ）、第２のラッチ回路（Ｂ）にラッチされているデータの一方又は両方が書き込みを示すデータ“０”の時、第１のラッチ回路（Ａ）を書き込み状態とする。
【０２２７】
これらの操作を行うため、図４５（ａ）に示すように、第２のラッチ回路ＬＡＴ（Ｂ）、第３のラッチ回路ＬＡＴ（Ｃ）のデータを入れ替える。この結果、状態“３”への書き込みは第２のラッチ回路ＬＡＴ（Ｂ）がハイレベル、状態“２”、“３”への書き込みは第３のラッチ回路ＬＡＴ（Ｃ）がハイレベルとなる（ＳＴ４１）。
【０２２８】
この後、プログラム動作を行なう。このプログラム動作は、図２３に示すシーケンスが用いられ、第１ページ、第２ページ別々に行なうプログラムの場合と全く同じである（ＳＴ４２）。
【０２２９】
図４５（ｂ）（ｃ）（ｄ）はベリファイ動作を示している。
【０２３０】
図４５（ｂ）に示すメモリセルのデータが状態“１”になったかどうかを判別するベリファイでは、状態“２”と“３”を書き込むメモリセルもＯＫとなってしまう。しかし、前の操作により、状態“２”と“３”を書き込む場合、第３のラッチ回路ＬＡＴ（Ｃ）がハイレベルとなっている。このため、強制的にビット線をローレベルにしてＮＧとする（ＳＴ４３）。
【０２３１】
また、図４５（ｃ）に示すメモリセルのデータが“２”になったかどうかを判別するベリファイでは、状態“３”を書き込むメモリセルもＯＫとなってしまう。しかし、前の操作により、状態“３”を書き込む場合、第２のラッチ回路ＬＡＴ（Ｂ）がハイレベルとなっている。このため、強制的にビット線をローレベルにしてＮＧにする（ＳＴ４４）。
【０２３２】
さらに、図４５（ｄ）に示すメモリセルのデータが“３”になったかどうかを判別するベリファイにおいて、ＯＫになるのは状態“３”を書き込み場合のみである（ＳＴ４５）。
【０２３３】
したがって、第１のラッチ回路ＬＡＴ（Ａ）がローレベルの場合は再び書き込み動作を行なわず、全てのデータ記憶回路の第１のラッチ回路ＬＡＴ（Ａ）のデータがハイレベルになるまでこのプログラム動作とベリファイ動作を繰り返す（ＳＴ４８）。
【０２３４】
尚、不良ブロックをブロックリダンダンシに置き換える前のテスト工程においては、第１のラッチ回路ＬＡＴ（Ａ）にラッチされたローレベルデータの数、すなわち、ベリファイフェイルの数を計数し、この計数値が規定値（本例では、カラムリダンダンシが４個のときは４、カラムリダンダンシが８個の時は８）以上の場合、再度プログラムベリファイを繰り返し、規定値以下の場合プログラム動作を終了する（ＳＴ４６、ＳＴ４７）。
【０２３５】
（第１ページ、第２ページ倍速同時プログラム）
図４７は、第１ページ、第２ページ同時プログラムで、かつ倍速プログラムの動作を示している。この場合も上記と同様に、先ず、コマンド“８０ｈ”、アドレス、データを入力する。このデータは第１のラッチ回路ＬＡＴ（Ａ）にラッチされる。次いで、コマンド“１２ｈ”を入力し、信号ＢＵＳＹを出力する。この後、第１のラッチ回路ＬＡＴ（Ａ）のデータを第２のラッチ回路ＬＡＴ（Ｂ）に転送する。さらに、コマンド“８０ｈ”、アドレス（先に入力したアドレスの隣のページアドレス）、データ、コマンド“１１ｈ”を入力し、信号ＢＵＳＹを出力する。この動作をアレイアドレス（Ａ１５、Ａ１６）を変えて４回行なう。但し、一番最後はコマンド“１１ｈ”の代わりにオートプログラム実行“１０ｈ”を入力し、実際のプログラムを開始させる。
【０２３６】
上記第２の実施形態によれば、第１、第２ページを同時にプログラムしている。このため、プログラム時間を短縮することができる。
【０２３７】
さらに、倍速プログラムを行うことにより、一層プログラム時間を短縮することができる。
【０２３８】
なお、第１、第２の実施形態において、ブロック選択回路６ａはヒューズ１０９を有し、書き込み禁止回路１５ａ、及び消去禁止回路１５ｂはヒューズ１５１ｄ、１５２ｄを有しているが、ヒューズに限定されるものではなく、例えばＥＥＰＯＭセル等の不揮発性メモリを使用することも可能である。その他のヒューズに関しても同様である。
【０２３９】
その他、本発明の要旨を変えない範囲において種々変形実施可能なことは勿論である。
【図面の簡単な説明】
【０２４０】
【図１】図１は、本発明の第１の実施形態に係る半導体記憶装置を示す構成図。
【図２】図１に示すメモリセルアレイ１及びデータ記憶部２を示す回路図。
【図３】図３（ａ）（ｂ）は、メモリセル及び選択トランジスタを示す断面図。
【図４】メモリセルアレイにおける１つのＮＡＮＤセルを示す断面図。
【図５】図２に示すデータ記憶回路を示す回路構成。
【図６】各モードにおいて読み込まれるアドレスとＩ／Ｏ端子の関係を示す図。
【図７】図１に示すプリデコーダ及びカラムＲＤデコーダの動作を示す図。
【図８】図８（ａ）（ｂ）（ｃ）は、図１に示すＣＧ駆動回路を示す回路図、図８（ｄ）は、図８（ｃ）の動作を示す図。
【図９】図９（ａ）は図１に示すアレイブロック回路の動作を示し、図９（ｂ）はラッチ回路を示している。
【図１０】図１に示すブロックＲＤデコード回路の動作を示す図。
【図１１】図１に示すブロックデコーダの動作を示す図。
【図１２】ブロック選択回路を示す回路図。
【図１３】図１２の動作を示す波形図。
【図１４】メモリセルアレイの物理マッピングを示す図。
【図１５】図１５（ａ）は、図１に示す書き込み禁止回路１５ａを示す回路図、図１５（ｂ）は消去禁止回路１５ｂを示す回路図。
【図１６】４値のデータの書き込み方法を示す図。
【図１７】図１７（ａ）はメモリセルのデータと書き込み及び読み出されるデータとの関係を示す図、図１７（ｂ）図１７（ｃ）は書き込み回数を説明するために示す図。
【図１８】ステップアップ書き込み方法の書き込み特性を示す図。
【図１９】プログラム動作のシーケンスを示す波形図。
【図２０】倍速プログラム動作のシーケンスを示す波形図。
【図２１】第１ページのプログラム動作を示すフローチャート。
【図２２】第１ページのプログラム動作を示すフローチャート。
【図２３】第１ページプログラム時におけるシーケンスを示す波形図。
【図２４】第１ページのプログラムベリファイリードの動作を示す図。
【図２５】プログラムベリファイリードのシーケンスを示す波形図。
【図２６】第２ページのプログラムベリファイリードの動作を示す図。
【図２７】内部データロード時におけるシーケンスを示す波形図。
【図２８】第２ページ第１のベリファイリード時におけるシーケンスを示す波形図。
【図２９】リード動作のシーケンスを示す波形図。
【図３０】倍速リード動作のシーケンスを示す波形図。
【図３１】リード動作を概略的に示すフローチャート。
【図３２】第２ページのリード動作を示す図。
【図３３】第１ページのリード動作を示す図。
【図３４】第２ページのリード動作のシーケンスを示す波形図。
【図３５】第１ページのリード動作のシーケンスを示す波形図。
【図３６】イレーズ動作のシーケンスを示す波形図。
【図３７】倍速イレーズ動作のシーケンスを示す波形図。
【図３８】オートイレーズを概略的に示すフローチャート。
【図３９】イレーズ動作のシーケンスを示す波形図。
【図４０】イレーズベリファイ動作のシーケンスを示す波形図。
【図４１】図１に示す制御電圧発生回路内に設けられた電圧設定回路を示す構成図。
【図４２】本発明の第２の実施形態を示すものであり、データ記憶回路の一例を示す回路図。
【図４３】第１ページ、第２ページ同時プログラムの動作シーケンスを示す波形図。
【図４４】第１ページ、第２ページ同時プログラムの動作を示す図。
【図４５】第１ページ、第２ページ同時プログラムの動作を示す図。
【図４６】第１ページ、第２ページ同時プログラムの動作を示すフローチャート。
【図４７】第１ページ、第２ページ同時プログラムで、かつ倍速プログラムの動作シーケンスを示す波形図。
【符号の説明】
【０２４１】
１…メモリセルアレイ、
２…データ記憶部、
３１０〜３１ｎ／２…データ記憶回路、
３…カラムデコーダ、
６…ブロック選択部、
６ａ…ブロック選択回路、
８…ＥＣＣコード発生回路、
９…ＣＧ駆動回路、
１１…ブロックＲＤ（リダンダンシ）デコーダ、
１２…ブロックデコーダ、
２０…ＲＯＭブロック指定回路、
１０９、１５１ｃ、１５２ｃ…ヒューズ、
ｂｌｋ０〜ｂｌｋ２３…ブロック、
ｂｌｋＲＤ０〜ｂｌｋＲＤ９…ブロックリダンダンシ
ＬＡＴ（Ａ）…第１のラッチ回路、
ＬＡＴ（Ｂ）…第２のラッチ回路、
ＬＡＴ（Ｃ）…第３のラッチ回路、
１６１…初期データ記憶用ヒューズ、
１６２…カウンタ。
【図１】
2008034101.tif 000003
【図２】
2008034101.tif 000004
【図３】
2008034101.tif 000005
【図４】
2008034101.tif 000006
【図５】
2008034101.tif 000007
【図６】
2008034101.tif 000008
【図７】
2008034101.tif 000009
【図８】
2008034101.tif 000010
【図９】
2008034101.tif 000011
【図１０】
2008034101.tif 000012
【図１１】
2008034101.tif 000013
【図１２】
2008034101.tif 000014
【図１３】
2008034101.tif 000015
【図１４】
2008034101.tif 000016
【図１５】
2008034101.tif 000017
【図１６】
2008034101.tif 000018
【図１７】
2008034101.tif 000019
【図１８】
2008034101.tif 000020
【図１９】
2008034101.tif 000021
【図２０】
2008034101.tif 000022
【図２１】
2008034101.tif 000023
【図２２】
2008034101.tif 000024
【図２３】
2008034101.tif 000025
【図２４】
2008034101.tif 000026
【図２５】
2008034101.tif 000027
【図２６】
2008034101.tif 000028
【図２７】
2008034101.tif 000029
【図２８】
2008034101.tif 000030
【図２９】
2008034101.tif 000031
【図３０】
2008034101.tif 000032
【図３１】
2008034101.tif 000033
【図３２】
2008034101.tif 000034
【図３３】
2008034101.tif 000035
【図３４】
2008034101.tif 000036
【図３５】
2008034101.tif 000037
【図３６】
2008034101.tif 000038
【図３７】
2008034101.tif 000039
【図３８】
2008034101.tif 000040
【図３９】
2008034101.tif 000041
【図４０】
2008034101.tif 000042
【図４１】
2008034101.tif 000043
【図４２】
2008034101.tif 000044
【図４３】
2008034101.tif 000045
【図４４】
2008034101.tif 000046
【図４５】
2008034101.tif 000047
【図４６】
2008034101.tif 000048
【図４７】
2008034101.tif 000049