(57)【要約】【課題】データ読み出し動作の時に、復元、かつ訂正されたデータの読み出し時間を短縮することができ、かつ生産性の向上を図ることができる半導体記憶装置を提供する。【解決手段】ＮＡＮＤ型フラッシュメモリ１０は、ページバッファ１０２ａの出力データに基づいて、パリティデータを生成してページバッファ１０２ｃにパリティデータを書き込み、一方、ページバッファ１０２ｃのパリティデータに基づいて、ページバッファ１０２ａのデータを誤り訂正し、訂正後のデータをページバッファ１０２ａに書き戻す、というＥＣＣ処理を実行する第１の動作モードと、ＥＣＣ処理を実行せず、ページバッファ１０２ｃにはアクセスしないでページバッファ１０２ａにのみアクセスを実行する第１の動作モードと、を有し、第１の動作モード、及び第２の動作モードのいずれか一方を選択して実行することが電気的に切り替え可能となるように構成されている。【選択図】図１
2014142976.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータバスと、
前記第１のデータバスと異なる本数から構成され、前記第１のデータバスとは独立して設けられる第２のデータバスと、
第１の動作モードによりメモリセルとの間でデータを転送する場合、複数のビット線のうち前記第１のデータバスと同じ本数のビット線と、前記第１のデータバスとを接続してデータを転送し、
一方、第２の動作モードによりメモリセルとの間でデータを転送する場合、複数のビット線のうち前記第２のデータバスと同じ本数のビット線と、前記第２のデータバスとを接続してデータを転送するデータ転送部と、
を備え、
前記データ転送部は、
通常メモリセルに接続されるビット線のデータをラッチする第１のページバッファと、
パリティメモリセルに接続されるビット線のデータをラッチする第２のページバッファと、を少なくとも含んで構成され、
前記第１のデータバス、及び前記第２のデータバスは、前記第１のページバッファ、及び前記第２のページバッファと接続され、
さらに、前記第１のデータバスに接続されるとともに、前記第２のページバッファの出力データに基づき、前記第１のページバッファの出力データの誤りを訂正するＥＣＣ回路と、を備え、
前記第１の動作モードは、前記第１のページバッファにアクセスするモードであり、さらに、データ書き込み動作において、前記ＥＣＣ回路が、前記第１のページバッファの出力データに基づいて、パリティデータを生成して前記第２のページバッファにパリティデータを書き込み、一方、データ読み出し動作において、前記ＥＣＣ回路が、前記第２のページバッファのパリティデータに基づいて、前記第１のページバッファのデータを誤り訂正し、訂正後のデータを前記第１のページバッファに書き戻す、というＥＣＣ処理を実行する動作モードであって、
一方、前記第２の動作モードは、前記ＥＣＣ処理を実行せず、前記第２のページバッファにはアクセスしないで前記第１のページバッファにのみアクセスを実行する動作モードであって、
前記第１の動作モード、及び前記第２の動作モードのいずれか一方を選択して実行することが電気的に切り替え可能となるように構成されていることを特徴とする半導体記憶装置。
【請求項２】
前記第２の動作モードにおいて、前記第２のデータバスを介して前記第２のページバッファにアクセスする、
ことを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記第２の動作モードにおいて、前記第２のページバッファへアクセスされたとき、前記第２のデータバスを介して外部へ出力するデータの代わりに固定データを外部へ出力するマスク回路を備える、
ことを特徴とする請求項１または請求項２いずれかに記載の半導体記憶装置。
【請求項４】
前記第１のデータバス、及び前記第２のデータバスに接続され、前記第１のページバッファに接続される通常メモリセルまたはビット線に不良が有る場合に、通常メモリセル、及びビット線とともに置換される第３のページバッファと、
前記第１のデータバス、及び前記第２のデータバスに接続され、前記第２のページバッファに接続されるパリティメモリセルまたはビット線に不良が有る場合に、パリティメモリセル、及びビット線とともに置換される第４のページバッファと、
前記第２のデータバスに接続されるとともに、前記第２の動作モードにおいて、前記第１のページバッファのうちメモリセルまたはビット線に不良が有るページバッファを前記第３のページバッファに置換する第１の救済置換回路と、
前記第１のデータバスに接続されるとともに、前記第１の動作モードにおいて、前記第２のページバッファのうちメモリセルまたはビット線に不良が有るページバッファを前記第４のページバッファに置換する第２の救済置換回路と、を備える、
ことを特徴とする請求項１から請求項３いずれか一項に記載の半導体記憶装置。
【請求項５】
前記第２の動作モードにおいて、前記第１の救済置換回路は、前記第２のページバッファのうちメモリセルまたはビット線に不良が有るページバッファを前記第４のページバッファに置換する、
ことを特徴とする請求項４に記載の半導体記憶装置。
【請求項６】
前記第１の救済置換回路は、前記第１のページバッファのうちメモリセルまたはビット線に不良が有るページバッファを置換する先のページバッファの位置を示すカラムアドレスを予め保持し、保持したカラムアドレスにより置換する先のページバッファを選択し、
前記第２の救済置換回路は、前記第２のページバッファのうちメモリセルまたはビット線に不良が有るページバッファを置換する先のページバッファの位置を示すカラムアドレスを予め保持し、保持したカラムアドレスにより置換する先のページバッファを選択し、
前記第１の救済置換回路が保持するカラムアドレスを前記第２の救済置換回路が保持するカラムアドレスに変換する不良情報ビット変換回路を備える、
ことを特徴とする請求項４または請求項５いずれかに記載の半導体記憶装置。
【請求項７】
前記第３のページバッファ、及び前記第４のページバッファは、半導体記憶装置が前記第１の動作モードと前記第２の動作モードとのいずれの動作モードにあるかを示す切替信号に基づいて、前記第１の救済置換回路、及び前記第２の救済置換回路により選択される、
ことを特徴とする請求項６に記載の半導体記憶装置。
【請求項８】
前記第１のページバッファから前記第４のページバッファのうち、メモリセルまたはビット線に不良が有るページバッファの出力を固定されたデータとするページバッファ制御回路を有し、
前記ページバッファ制御回路は、メモリセルまたはビット線に不良が有る場合、前記第１のデータバスからの書き込みを許可しない、
ことを特徴とする請求項４から請求項７いずれか一項に記載の半導体記憶装置。
【請求項９】
前記ビット線は、ｎ（ｎはｐとｑの公倍数であり、ｐ、及びｑはｐ＞ｑである自然数）本のビット線であり、前記第１のデータバスはｐ本であり、前記第２のデータバスはｑ本であって、
前記データ転送部は、
前記第１の動作モードでは、（ｎ／ｐ）本のアドレス信号が入力されると、ｐ本のビット線とｐ本の第１のデータバスとの接続を行い、
一方、前記第２の動作モードでは、（ｎ／ｑ）本のアドレス信号が入力されると、ｑ本ビット線と第２のデータバスとの接続を行う、
ことを特徴とする請求項１から請求項８いずれか一項に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に関する。
【背景技術】
【０００２】
従来の半導体記憶装置においては、Ｉ／Ｏパッド（インターフェース部）とメモリアレイとを接続する、所謂データバスは、センスアンプ（フラッシュメモリではページバッファと言う）側から見て、単一のバスで構成される。
図２１は、ＮＡＮＤ型フラッシュメモリの一般的なブロック構成を示す図である。
図２１に示すＮＡＮＤ型フラッシュメモリ８０は、メモリアレイ１０１、ＰＢ（Ｐａｇｅ Ｂｕｆｆｅｒ；ページバッファ）８２、Ｃｏｌｕｍｎ Ｃｏｄｉｎｇ Ｃｉｒｃｕｉｔ（カラムコーディング回路）８３、Ａｄｄｒｅｓｓ Ｃｏｎｔｒｏｌ Ｃｉｒｃｕｉｔ（アドレス制御回路）８５、Ｉ／Ｏ ＰＡＤ（ＩＯパッド）１０６を備えている。
【０００３】
メモリアレイ１０１は、複数のメモリセルトランジスタを含んで構成される。これらの複数のメモリセルトランジスタ各々は、１ビットのデータを記憶する。メモリアレイ１０１において、同一のワード線に接続される複数のメモリセルトランジスタがページを構成する。１つのページにおけるメモリセルトランジスタへのデータの書き込み、及びメモリセルからのデータの読み出しは、一括して実行される。
【０００４】
ページバッファ８２は、メモリアレイ１０１のページと同じ個数のデータを保持できるように構成されている。図２２は、ページバッファ８２を構成するページバッファユニットを説明するための図である。また、図２３は、従来のページバッファユニットの内部の回路構成を示す図である。
ページバッファ８２は、図２２に示すページバッファユニットの複数個から構成される。ページバッファユニットは、それぞれが１本のビット線に接続され、メモリセルからビット線を介して読み出されたデータ、またはメモリセルへビット線を介して書き込むデータを保持するビット回路５１＿０ａ〜５１＿７ａを含んで構成されている。
【０００５】
ＭＵＸ（マルチプレクサ）５２＿ｂは、図２１に示すカラムコーディング回路８３からカラムアドレス（Ｓｕｂ ＢＬ Ｃｏｄｉｎｇ）が入力され、このカラムアドレス（図２３においてＤＩＯ＜ｉ＞で示す）に基づいて、ビット回路５１＿０ａ〜ビット回路５１＿７ａのうちいずれか一つを選択する。すなわち、マルチプレクサ５２＿ｂは、８本のビット線のうちのいずれか一本のビット線を、ＰＢ Ｃｏｎｔｒｏｌ（ＰＢ制御回路）８３＿１と接続する。
【０００６】
ＰＢ制御回路８３＿１（転送部）は、図２１に示すカラムコーディング回路８３からカラムアドレス（Ｃｏｄｉｎｇ；図２３では選択信号Ｓｅｌで示す）が入力され、マルチプレクサ５２＿ｂにより選択されたビット回路を、Ｄａｔａ Ｂｕｓ（データバス）を介して外部回路（Ｐｅｒｉｐｈｅｒａｌ Ｃｉｒｃｕｉｔ）としてのＩ／Ｏパッド１０６に接続する。
以上の構成により、１つのページにおけるメモリセルトランジスタ各々が、ビット線を介してページバッファ８２のビット回路に接続される。そして、このうち、カラムアドレスにより選択されたビット線がデータバスに接続されて、メモリセルへのデータの書き込み、またはメモリセルからのデータの読み出しが実行される。
【０００７】
図２１に戻って、カラムコーディング回路８３は、アドレス制御回路８５から入力されるカラムアドレスに基づいて、カラムアドレス信号（図２２に示すＳｕｂ ＢＬ Ｃｏｄｉｎｇ、及びＣｏｄｉｎｇ）を生成し、カラムアドレスに対応するページバッファ８２におけるページバッファユニットを選択する。これにより、Ｉ／Ｏパッド１０６、Ｄａｔａ Ｂｕｓ、ビット回路、及びビット線を介してメモリセルトランジスタへデータが書きこまれる。また、メモリセルからのデータがビット線、ビット回路、Ｄａｔａ Ｂｕｓを介してＩ／Ｏパッド１０６の外部へ読み出される。
【０００８】
データバスは、これらのデータの受け渡しをページバッファ８２とＩＯパッド１０６との間において行なう配線であり、通常８本、或いは１６本の配線から構成される。
ＩＯパッド１０６（インターフェース部）は、ＮＡＮＤ型フラッシュメモリ８０の外部との間で上記データの受け渡しを行なう外部端子である。
【０００９】
ところで、ＮＡＮＤ型フラッシュメモリでは、多数回の書き換えに伴うトンネル酸化膜の劣化等に起因して、データ保持中に記憶素子（メモリセルトランジスタ）の保持特性が失われ、エラービットの発生率（エラー率）が大きくなる傾向がある。特に、ＮＡＮＤ型フラッシュメモリでは、メモリセルの大容量化、すなわち製造プロセスにおける微細化が進むとエラー率は上昇してしまう傾向にある。そのため、記憶すべきデータに誤り訂正符号（Ｅｒｒｏｒ Ｃｏｒｒｅｃｔｉｎｇ Ｃｏｄｅ）の冗長データ（パリティデータ）を付加してデータ列としてフラッシュメモリに書込むと共に、読み出し時には誤り訂正符号の冗長データを基にしてデータの訂正を行うことで、エラービットが発生したときのデータの補償を行っている。このＥＣＣ処理は、ＮＡＮＤ型フラッシュメモリの外部で行なってもよく、或いはＮＡＮＤ型フラッシュメモリの内部で行なってもよい。
【００１０】
上述したＮＡＮＤ型フラッシュメモリ８０の外部においてＥＣＣ処理を行う場合、ＩＯパッド１０６を介して接続されるメモリコントローラ等においてＥＣＣ処理が実行される。
一方、ＮＡＮＤ型フラッシュメモリの内部においてＥＣＣ処理を行う場合、誤り検出訂正回路（ＥＣＣ部）を備える必要がある。
図２４は、ＥＣＣ回路を備えたＮＡＮＤ型フラッシュメモリのブロック構成を示す図である。図２４において、図２１と同一の部分には同一の符号を付し、その説明を省略する。図２４に示すＮＡＮＤ型フラッシュメモリ９０では、図２１に示すＮＡＮＤ型フラッシュメモリ８０に対して、ＥＣＣ Ｃｉｒｃｕｉｔ（ＥＣＣ回路）８７を追加した構成となっている。ＥＣＣ回路８７は、Ｄａｔａ Ｂｕｓ（データバス）に接続される。
【００１１】
ＥＣＣ回路８７は、メモリセルトランジスタからのデータ読み出し時に、データバスを介してページバッファ８２が保持する１ページ分のメモリセルトランジスタのデータ（通常データと冗長データとを含む）が順次入力され、１ページ分のデータに基づいて各ビットに誤りが有るか否かを判定する。また、ＥＣＣ回路８７は、誤っている場合にデータを訂正して、データバスを介して順次ページバッファ８２の各ビット回路に訂正後のデータを書き戻す。その後、アドレス制御回路８５がカラムアドレスをカラムコーディング回路８３に供給して、カラムコーディング回路８３がページバッファ８２におけるページバッファユニットを選択して、ページバッファ８２に格納された訂正後のメモリセルのデータがＩＯパッド１０６から読み出される。
【００１２】
一方、メモリセルトランジスタへのデータ書き込み時には、ページバッファ８２から１ページ分の通常データがＥＣＣ回路８７に読み出されるとともに、新たなデータがＩＯパッド１０６からＥＣＣ回路８７に供給される。この新たなデータを含んだ１ページ分の通常データに基づいて冗長データが生成され、通常データと冗長データとがページバッファ８２に書き込まれ、その後の書き込み（プログラム）処理によりメモリセルトランジスタにデータが書き込まれる。
【００１３】
しかしながら、ＮＡＮＤ型フラッシュメモリ９０では、ＥＣＣ処理に際して、通常のＩＯパッド１０６へのデータ読み出しモードでのバス幅でしかデータを転送できないため、ＥＣＣ処理に時間を要するという問題がある。このＥＣＣ処理の時間を短縮するためには、ＥＣＣ処理の際はバス幅を広げる構成とすることが考えられる。例えば、特許文献１には、ＥＣＣ処理を行う第１の動作モードでは第１のデータバスを用いてページバッファとＥＣＣ回路との間でデータ転送を実行し、ＥＣＣ処理を行わない第２の動作モードでは、第１のデータバスの一部を用いてデータ転送を実行する転送部を備えた半導体記憶装置が開示されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２０１２−１２８９２１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
図２５は、ＥＣＣ回路を備えた他のＮＡＮＤ型フラッシュメモリのブロック構成を示す図である。なお、図２５は、上記特許文献１の図３に記載された転送部１７を示している。また、図２５において、矢印で示す動作モード名を第１の動作モード、第２の動作モードとして示している。また、説明の便宜のため、ページバッファ１２のうち、８ビット分のページバッファを、左から順番に１２＿１、１２＿２、・・・、１２＿８と符号を付している。また、図２５において、第１のラッチ回路７０、第２のラッチ回路７１（７１Ａ、及び７１Ｂを含む）、及び第３のラッチ回路７２において示す１個の四角は、８ビットのラッチ回路を示しており、これらに図２５に示す符号を付している。
【００１６】
データ読み出し動作における転送部１７の動作を、以下に説明する。転送部１７は、ＥＣＣ部２０（ＥＣＣ回路）を用いる第１の動作モード、ＥＣＣ部２０を用いない第２の動作モードのいずれの動作モードにおいても、ページバッファ１２＿１〜１２＿８から読み出されるデータを、データバスＩＯ／ＩＯｎ＜６３：０＞を介してラッチ回路７０＿１〜７０＿８に転送する。ここで、ラッチ回路７０＿１はデータバスＩＯ／ＩＯｎ＜７：０＞、ラッチ回路７０＿２はデータバスＩＯ／ＩＯｎ＜１５：８＞、ラッチ回路７０＿３はデータバスＩＯ／ＩＯｎ＜２３：１６＞、ラッチ回路７０＿４はデータバスＩＯ／ＩＯｎ＜３１：２４＞に接続されているものとする。また、ラッチ回路７０＿５はデータバスＩＯ／ＩＯｎ＜３９：３２＞、ラッチ回路７０＿６はデータバスＩＯ／ＩＯｎ＜４７：４０＞、ラッチ回路７０＿７はデータバスＩＯ／ＩＯｎ＜５５：４８＞、ラッチ回路７０＿８はデータバスＩＯ／ＩＯｎ＜６３：５６＞に接続されているものとする。
【００１７】
第２の動作モードでは、ラッチ回路７０＿１〜７０＿８に、カラムアドレスを４回供給して、ラッチ回路に格納された６４ビットのデータを、８ビットのデータバスＯＵＴＬＬｎ＜７：０＞、及び８ビットのデータバスＯＵＴＬＬｎ＜１５：８＞に出力することになる。ここで、４回供給するカラムアドレスを以下の様に呼ぶものとする。すなわち、ラッチ回路７０＿１〜７０＿４に供給するカラムアドレスをカラムアドレスＣＡ１〜ＣＡ４とする。つまり、ラッチ回路７０＿１〜７０＿４は、カラムアドレスＣＡ１〜ＣＡ４が順次供給されることにより、ラッチ回路７０＿１が格納する８ビットのデータ、ラッチ回路７０＿２が格納する８ビットのデータ、ラッチ回路７０＿３が格納する８ビットのデータ、ラッチ回路７０＿４が格納する８ビットのデータを、順次８ビットのデータバスＯＵＴＬＬｎ＜７：０＞に出力し、ラッチ回路７１Ｂ＿１に転送する。
【００１８】
また、ラッチ回路７０＿５〜７０＿８は、カラムアドレスＣＡ１〜ＣＡ４が順次供給されることにより、ラッチ回路７０＿５が格納する８ビットのデータ、ラッチ回路７０＿６が格納する８ビットのデータ、ラッチ回路７０＿７が格納する８ビットのデータ、ラッチ回路７０＿８が格納する８ビットのデータを、順次８ビットのデータバスＯＵＴＬＬｎ＜１５：８＞に出力し、ラッチ回路７１Ｂ＿２に転送する。
【００１９】
一方、第１の動作モードでは、バス幅を２倍にしてＥＣＣ部２０にラッチ回路７０＿１〜７０＿８のデータを、転送するため、上記データバスＯＵＴＬＬｎ＜７：０＞、及びデータバスＯＵＴＬＬｎ＜１５：８＞と同じ本数の、データバスＯＵＴＬＬｎ＜２３：１６＞、及びデータバスＯＵＴＬＬｎ＜３１：２４＞が設けられる。
このようにデータバスを追加する構成により、ラッチ回路７０＿１〜７０＿８は、第１の動作モードでは、カラムアドレスＣＡ１〜ＣＡ４が供給されると、格納されたデータを、ラッチ回路７１Ａ＿１〜７１Ａ＿４に転送する。
ラッチ回路７０＿１〜７０＿８には、まずカラムアドレスＣＡ１、及びＣＡ３が同時に供給され、次にカラムアドレスＣＡ２、及びＣＡ４が供給される。
【００２０】
まず、カラムアドレスＣＡ１、及びＣＡ３が同時に供給されたとき、データ転送を実行するラッチ回路は、ラッチ回路７０＿１、７０＿３、７０＿５、及び７０＿７である。
ラッチ回路７０＿１は、カラムアドレスＣＡ１が供給され、格納する８ビットのデータを、データバスＯＵＴＬＬｎ＜２３：１６＞に出力し、ラッチ回路７１Ａ＿３に転送する。
ラッチ回路７０＿３は、カラムアドレスＣＡ３が供給され、格納する８ビットのデータを、データバスＯＵＴＬＬｎ＜７：０＞に出力し、ラッチ回路７１Ａ＿１に転送する。
ラッチ回路７０＿５は、カラムアドレスＣＡ１が供給され、格納する８ビットのデータを、データバスＯＵＴＬＬｎ＜１５：８＞に出力し、ラッチ回路７１Ａ＿２に転送する。
ラッチ回路７０＿７は、カラムアドレスＣＡ３が供給され、格納する８ビットのデータを、データバスＯＵＴＬＬｎ＜３１：２４＞に出力し、ラッチ回路７１Ａ＿４に転送する。
【００２１】
次に、カラムアドレスＣＡ１、及びＣＡ３に続いて、カラムアドレスＣＡ２、及びＣＡ４が同時に供給されたとき、データ転送を実行するラッチ回路は、ラッチ回路７０＿２、７０＿４、７０＿６、及び７０＿８である。
ラッチ回路７０＿２は、カラムアドレスＣＡ２が供給され、格納する８ビットのデータを、データバスＯＵＴＬＬｎ＜２３：１６＞に出力し、ラッチ回路７１Ａ＿３に転送する。
ラッチ回路７０＿４は、カラムアドレスＣＡ４が供給され、格納する８ビットのデータを、データバスＯＵＴＬＬｎ＜７：０＞に出力し、ラッチ回路７１Ａ＿１に転送する。
ラッチ回路７０＿６は、カラムアドレスＣＡ２が供給され、格納する８ビットのデータを、データバスＯＵＴＬＬｎ＜１５：８＞に出力し、ラッチ回路７１Ａ＿２に転送する。
ラッチ回路７０＿８は、カラムアドレスＣＡ４が供給され、格納する８ビットのデータを、データバスＯＵＴＬＬｎ＜３１：２４＞に出力し、ラッチ回路７１Ａ＿４に転送する。
【００２２】
このように、転送部１７では、第１のラッチ回路７０を設けて、第１の動作モードにおいて、第２の動作モードで用いるデータバスＩＯ／ＩＯｎ＜６３：０＞を用いて、ページバッファ１２が出力するデータ（６４ビットのメモリセルトランジスタのデータ）をいったんラッチする。そして、転送部１７では、その後、第２の動作モードに対して２倍のカラムアドレスが供給され、第２の動作モードに用いるデータバスの一部を用いて、次段のラッチ回路７１Ａ＿１〜７１Ａ＿４に転送する。
【００２３】
つまり、第２の動作モードに用いるデータバスを共通に用いて、第１の動作モードにおいてバス幅を広げて高速にデータを出力するため、第２の動作モード（通常モード）と第１の動作モード（ＥＣＣモード）を切り替える回路（上記ラッチ回路７０）を動作させる分だけ遅れが生じていた。このように、ＥＣＣモードにおいては、通常モードのアドレスに応じて決まったアドレスを供給して、幅が広がったバスへデータを出力するための処理が必要となるため、かかる処理に必要な時間だけデータ転送の高速化を図ることができなかった。
【００２４】
また、データ転送の際、上述の様に、データバスへ転送させるデータのアドレスは通常モードのアドレスに応じて決まっているため、ＥＣＣモードにおいてユーザが意図するアドレスのデータを転送することができなかった。例えば、上述した例で言えば、全てのカラムアドレス（ＣＡ１〜ＣＡ４）を同時に選択して、ＩＯ／ＩＯｎ＜６３：３２＞またはＩＯ／ＩＯｎ＜３１：０＞のデータを一括してＥＣＣ回路へ転送することができない。
このように、従来においては、データ転送時のアドレス制御を、２つの動作モードで独立に行なうことができず、アドレス制御の自由度が低いという問題があった。
【００２５】
さらに、このようなＥＣＣ回路を内蔵するＮＡＮＤ型フラッシュメモリを、例えば図２１に示すＥＣＣ回路を内蔵しないＮＡＮＤ型フラッシュメモリ８０に設計変更する場合、ラッチ回路７０に対して第１の動作モードの機能を削除する（２つのカラムアドレスにより同時にデータを出力しないようにする）設計変更を行なう必要がある。或いは、アドレス制御回路を設計変更して、２つのカラムアドレスにより同時にデータを出力しないように設計変更する必要がある。このように、従来の構成では、第１の動作モードと第２動作モードにおいて、データバスの一部を共有する構成であるため、ＥＣＣ機能を削除する設計変更を行なう場合、設計が複雑になるという問題もあった。
【００２６】
また、従来の構成では、１つの製品（ＮＡＮＤ型フラッシュメモリ）として、第１の動作モードと第２動作モードとを有している（特許文献１の段落「００４１」参照）。しかしながら、製品出荷前の段階で、第２の動作モードを備えた製品（Ｐｕｒｅ ＮＡＮＤ）と、第１の動作モードを備えた製品（ＥＭ（Ｅｒｒｏｒ Ｍａｎａｇｅｍｅｎｔ） ＮＡＮＤ）との動作を切り替え、それぞれの動作モードのテストを行うことができなかった。そのため、Ｐｕｒｅ ＮＡＮＤと、ＥＭＮＡＮＤとを、製品出荷前の段階で作り分けて、出荷前のテストを行ったり、それぞれの受注に合わせた製品の在庫管理を行なうことができず、生産性の向上を図ることができないという問題もあった。
【００２７】
そこで本発明が解決しようとする課題は、第２の動作モードで用いるバス幅に対して第１の動作モードで用いるバス幅を広げた場合に、データ転送の高速化を図ることができ、アドレス制御の自由度を高めることができる転送部を備え、かつ生産性の向上を図ることができる半導体記憶装置を提供することにある。
【課題を解決するための手段】
【００２８】
本発明の半導体記憶装置は、第１のデータバスと、前記第１のデータバスと異なる本数から構成され、前記第１のデータバスとは独立して設けられる第２のデータバスと、第１の動作モードによりメモリセルとの間でデータを転送する場合、複数のビット線のうち前記第１のデータバスと同じ本数のビット線と、前記第１のデータバスとを接続してデータを転送し、一方、第２の動作モードによりメモリセルとの間でデータを転送する場合、複数のビット線のうち前記第２のデータバスと同じ本数のビット線と、前記第２のデータバスとを接続してデータを転送するデータ転送部と、を備え、前記データ転送部は、通常メモリセルに接続されるビット線のデータをラッチする第１のページバッファと、パリティメモリセルに接続されるビット線のデータをラッチする第２のページバッファと、を少なくとも含んで構成され、前記第１のデータバス、及び前記第２のデータバスは、前記第１のページバッファ、及び前記第２のページバッファと接続され、さらに、前記第１のデータバスに接続されるとともに、前記第２のページバッファの出力データに基づき、前記第１のページバッファの出力データの誤りを訂正するＥＣＣ回路と、を備え、前記第１の動作モードは、前記第１のページバッファにアクセスするモードであり、さらに、データ書き込み動作において、前記ＥＣＣ回路が、前記第１のページバッファの出力データに基づいて、パリティデータを生成して前記第２のページバッファにパリティデータを書き込み、一方、データ読み出し動作において、前記ＥＣＣ回路が、前記第２のページバッファのパリティデータに基づいて、前記第１のページバッファのデータを誤り訂正し、訂正後のデータを前記第１のページバッファに書き戻す、というＥＣＣ処理を実行する動作モードであって、一方、前記第２の動作モードは、前記ＥＣＣ処理を実行せず、前記第２のページバッファにはアクセスしないで前記第１のページバッファにのみアクセスを実行する動作モードであって、前記第１の動作モード、及び前記第２の動作モードのいずれか一方を選択して実行することが電気的に切り替え可能となるように構成されていることを特徴とする。
【００２９】
また、本発明の半導体記憶装置において、前記第２の動作モードにおいて、前記第２のデータバスを介して前記第２のページバッファにアクセスする、ことを特徴とする。
【００３０】
また、本発明の半導体記憶装置において、前記第２の動作モードにおいて、前記第２のページバッファへアクセスされたとき、前記第２のデータバスを介して外部へ出力するデータの代わりに固定データを外部へ出力するマスク回路を備える、ことを特徴とする。
【００３１】
また、本発明の半導体記憶装置において、前記第１のデータバス、及び前記第２のデータバスに接続され、前記第１のページバッファに接続される通常メモリセルまたはビット線に不良が有る場合に、通常メモリセル、及びビット線とともに置換される第３のページバッファと、前記第１のデータバス、及び前記第２のデータバスに接続され、前記第２のページバッファに接続されるパリティメモリセルまたはビット線に不良が有る場合に、パリティメモリセル、及びビット線とともに置換される第４のページバッファと、前記第２のデータバスに接続されるとともに、前記第２の動作モードにおいて、前記第１のページバッファのうちメモリセルまたはビット線に不良が有るページバッファを前記第３のページバッファに置換する第１の救済置換回路と、前記第１のデータバスに接続されるとともに、前記第１の動作モードにおいて、前記第２のページバッファのうちメモリセルまたはビット線に不良が有るページバッファを前記第４のページバッファに置換する第２の救済置換回路と、を備える、ことを特徴とする。
【００３２】
また、本発明の半導体記憶装置において、前記第２の動作モードにおいて、前記第１の救済置換回路は、前記第２のページバッファのうちメモリセルまたはビット線に不良が有るページバッファを前記第４のページバッファに置換する、ことを特徴とする。
【００３３】
また、本発明の半導体記憶装置において、前記第１の救済置換回路は、前記第１のページバッファのうちメモリセルまたはビット線に不良が有るページバッファを置換する先のページバッファの位置を示すカラムアドレスを予め保持し、保持したカラムアドレスにより置換する先のページバッファを選択し、前記第２の救済置換回路は、前記第２のページバッファのうちメモリセルまたはビット線に不良が有るページバッファを置換する先のページバッファの位置を示すカラムアドレスを予め保持し、保持したカラムアドレスにより置換する先のページバッファを選択し、前記第１の救済置換回路が保持するカラムアドレスを前記第２の救済置換回路が保持するカラムアドレスに変換する不良情報ビット変換回路を備える、ことを特徴とする。
【００３４】
また、本発明の半導体記憶装置において、前記第３のページバッファ、及び前記第４のページバッファは、半導体記憶装置が前記第１の動作モードと前記第２の動作モードとのいずれの動作モードにあるかを示す切替信号に基づいて、前記第１の救済置換回路、及び前記第２の救済置換回路により選択される、ことを特徴とする。
【００３５】
また、本発明の半導体記憶装置において、前記第１のページバッファから前記第４のページバッファのうち、メモリセルまたはビット線に不良が有るページバッファの出力を固定されたデータとするページバッファ制御回路を有し、前記ページバッファ制御回路は、メモリセルまたはビット線に不良が有る場合、前記第１のデータバスからの書き込みを許可しない、ことを特徴とする。
【００３６】
また、本発明の半導体記憶装置において、前記ビット線は、ｎ（ｎはｐとｑの公倍数であり、ｐ、及びｑはｐ＞ｑである自然数）本のビット線であり、前記第１のデータバスはｐ本であり、前記第２のデータバスはｑ本であって、前記データ転送部は、前記第１の動作モードでは、（ｎ／ｐ）本のアドレス信号が入力されると、ｐ本のビット線とｐ本の第１のデータバスとの接続を行い、一方、前記第２の動作モードでは、（ｎ／ｑ）本のアドレス信号が入力されると、ｑ本ビット線と第２のデータバスとの接続を行う、ことを特徴とする。
【発明の効果】
【００３７】
本発明の半導体記憶装置は、第１のデータバスと、第１のデータバスと異なる本数から構成され、第１のデータバスとは独立して設けられる第２のデータバスと、を備える。また、転送部は、第１の動作モード（ＥＣＣモード）によりメモリセルとの間でデータを転送する場合、複数のビット線のうち第１のデータバスと同じ本数のビット線と、第１のデータバスとを接続してデータを転送し、一方、第２の動作モードによりメモリセルとの間でデータを転送する場合、複数のビット線のうち第２のデータバスと同じ本数のビット線とを接続してデータを転送する。
【００３８】
これにより、ページバッファの出力に接続されるデータバスを、第１動作モード（ＥＣＣモード）用と第２の動作モード（通常モード）用とに個別に設け、それぞれを独立して用いることができる。そのため、従来の様に第１の動作モードにおいてＥＣＣ回路へデータ転送する場合に、データが不要な回路を通過する必要は無くなり、バス幅を第２のデータバスから第１のデータバスへと広げてデータ転送する際に高速にデータ伝送を行うことができる。
【００３９】
また、転送部において、第１の動作モードに使用されるデータバスと第２の動作モードに使用されるデータバスとはページバッファの出力部分から独立であり、第１の動作モードにおけるデータ転送の際に供給するアドレスと、第２の動作モードにおけるデータ転送の際に供給するアドレスとを独立にすることができるので、アドレス制御の自由度、アドレスマッピングの自由度を高めることができる。例えば、通常データとパリティデータは、第２の動作モードで転送する場合は、両データの記憶している部分が物理的に離れているため、カラムアドレスの番地が異なる。そのため、第２の動作モードでは、まず通常データに対するカラムアドレスを与えて通常データを読み出し、次にパリティデータに対するカラムアドレスを与えてパリティデータを読み出す必要がある。しかしながら、第１のモードでは、バス幅を広げてデータを転送することができるため、通常データとパリティデータとを１回のカラムアドレスを与えて、同時にＥＣＣ回路へ読み出すようにする、アドレス制御、アドレスマッピングを行うこともできる。
【００４０】
また、第１の動作モードに使用されるデータバスと第２の動作モードに使用されるデータバスとを、ページバッファの出力部分から独立に設けたので、第１の動作モードに用いる第１のデータバスを含むＥＣＣ機能（ＥＣＣ回路）を簡単に削除することができるので、ＥＣＣ機能を削除する設計変更を行なう場合の設計を容易に行うことができる。
【００４１】
また、本発明の半導体記憶装置は、第１の動作モード、及び前記第２の動作モードのいずれか一方の動作を行うように電気的に切り替えることが可能に構成されている。そのため、製品出荷前の段階で、第２の動作モードを備えたＰｕｒｅ ＮＡＮＤと、第１の動作モードを備えたＥＭ ＮＡＮＤとの動作を切り替え、それぞれの動作モードのテストを行うことができ、それぞれの受注に合わせた製品の在庫管理を可能とする。これにより、本発明によれば、生産性の向上を図ることができる半導体記憶装置を提供することができる。
【図面の簡単な説明】
【００４２】
【図１】本実施形態におけるＮＡＮＤ型フラッシュメモリのブロック構成を示す図である。
【図２】ランダマイザ、及びＥＣＣ回路１０７の詳細な構成例を示す図である。
【図３】図１に示すページバッファ１０２、カラムコーディング回路１０３、及びＥＣＣカラムコーディング回路１０８に対応する部分のデータ読み出し動作を説明するための図である。
【図４】図２に示すＰＢ ４ＩＯ ユニットの内部の構成、及びＰＢユニットの内部の構成を示す図である。
【図５】ＰＢ ユニットの内部の回路構成を示す図である。
【図６】ＰＢ ユニットの内部の他の回路構成を示す図である。
【図７】図４、及び図５に示すビット内部回路５０＿ｉ（ｉ＝０〜７の整数）の回路構成を示す図である。
【図８】図１に示すページバッファ１０２、カラムコーディング回路１０３、及びＥＣＣカラムコーディング回路１０８に対応する部分のデータ書き込み動作を説明するための図である。
【図９】ページバッファ１０２を構成する各ページバッファを説明するための図である。
【図１０】ページバッファ１０２の動作を説明するためのフローチャートである。
【図１１】ページバッファ１０２を構成する各ページバッファの他の一例を説明するための図である。
【図１２】ＮＡＮＤ型フラッシュメモリのブロック構成の他の一例を示す図である。
【図１３】ＮＡＮＤ型フラッシュメモリ１０におけるマスク制御を説明するための図である。
【図１４】ＮＡＮＤ型フラッシュメモリ１０におけるリダンダンシー制御を説明するための図である。
【図１５】アドレススキャン制御における処理のフローチャートである。
【図１６】アドレススキャン制御における主要信号のタイミングチャートである。
【図１７】カラムアドレスＡｄｄ＿Ｂによるアドレスマップである。
【図１８】記録された不良ビット情報の転送例を示す図である。
【図１９】カラム置換回路１０４のラッチ回路１０４ＬからＰＢ ８ＩＯユニット（ＰＢ）への不良ビット情報転送径路の一例を示す図である。
【図２０】カラム置換回路１０４のラッチ回路１０４ＬからＰＢ ８ＩＯユニット（ＰＢ）への不良ビット情報転送径路の他の一例を示す図である。
【図２１】ＮＡＮＤ型フラッシュメモリの一般的なブロック構成を示す図である。
【図２２】ページバッファ８２を構成するページバッファユニットを説明するための図である。
【図２３】従来のページバッファユニットの内部の回路構成を示す図である。
【図２４】ＥＣＣ回路を備えたＮＡＮＤ型フラッシュメモリのブロック構成を示す図である。
【図２５】ＥＣＣ回路を備えた他のＮＡＮＤ型フラッシュメモリのブロック構成を示す図である。
【発明を実施するための形態】
【００４３】
以下、図面を参照して、本発明の実施の形態について説明する。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００４４】
図１は、本実施形態におけるＮＡＮＤ型フラッシュメモリのブロック構成を示す図である。図１に示すＮＡＮＤ型フラッシュメモリ１０は、メモリアレイ１０１、ＰＢ（Ｐａｇｅ Ｂｕｆｆｅｒ；ページバッファ）１０２、Ｃｏｌｕｍｎ Ｃｏｄｉｎｇ Ｃｉｒｃｕｉｔ（カラムコーディング回路）１０３、Ｍａｉｎ Ｃｏｌｕｍｎ Ｒｅｐａｉｒ ＭＵＸ（カラム救済回路）１０４を備えている。また、ＮＡＮＤ型フラッシュメモリ１０は、Ｐａｒｉｔｙ ＣＲ ＭＵＸ（パリティカラム置換回路）１０５、ＥＣＣ Ｃｏｌｕｍｎ Ｃｏｄｉｎｇ Ｃｉｒｃｕｉｔ（ＥＣＣカラムコーディング回路）１０８、Ｉ／Ｏ ＰＡＤ（Ｉ／Ｏパッド）１０６を備えている。また、ＮＡＮＤ型フラッシュメモリ１０は、ＥＣＣ Ｅｎｇｉｎｅ（ＥＣＣ回路）１０７ａ、及びＲａｎｄｏｍｉｚｅ Ｍｉｘｅｒ（ランダマイザ）１０７ｂを備えている。本実施形態においては、以下、ＥＣＣ回路１０７ａ、及びランダマイザ１０７ｂを、一体化してランダマイザ、及びＥＣＣ回路１０７と呼ぶことがある。
【００４５】
図１において、Ｄａｔａ Ｂｕｓ＿１、Ｄａｔａ Ｂｕｓ＿２、及びＤａｔａ Ｂｕｓ＿３（第２のデータバス）は、データの受け渡しをページバッファ１０２とＩ／Ｏパッド１０６との間において行なう配線であり、以下、単にＤａｔａ＿Ｂｕｓと呼ぶこともある。
Ｉ／Ｏパッド１０６（インターフェース部）は、例えばＮＡＮＤ型フラッシュメモリ１０の制御を行なうナンドコントローラとの間で上記データの受け渡しを行なう外部端子である。
また、ＥＣＣ Ｂｕｓ＿１、ＥＣＣ Ｂｕｓ＿２、及びＥＣＣ Ｂｕｓ＿３（第１のデータバス）は、データの受け渡しをページバッファ１０２とランダマイザ、及びＥＣＣ回路１０７との間において行なう配線であり、以下、単にＥＣＣ＿Ｂｕｓと呼ぶこともある。
【００４６】
メモリアレイ１０１は、複数のメモリセルトランジスタを含んで構成される。これらの複数のメモリセルトランジスタ各々は、１ビットのデータを記憶する。メモリアレイ１０１において、同一のワード線に接続される複数のメモリセルトランジスタがページを構成する。１つのページにおけるメモリセルトランジスタへのデータの書き込み、及びメモリセルからのデータの読み出しは、一括して実行される。
【００４７】
ＮＡＮＤ型フラッシュメモリ１０は、図１に示すように、カラムコーディング回路１０３、及びＥＣＣカラムコーディング回路１０８を有する。カラムコーディング回路１０３とＥＣＣカラムコーディング回路１０８とでは、別系統のカラムアドレス（Ｃｏｄｉｎｇ）が入力される。また、カラムコーディング回路１０３とＥＣＣカラムコーディング回路１０８とは、後述するように、ページバッファ１０２のＰＢ制御回路６０に選択信号Ｓｅｌ＿Ａまたは選択信号Ｓｅｌ＿Ｂを出力する。カラムコーディング回路１０３とＥＣＣカラムコーディング回路１０８は、ページバッファ１０２に直結した部分（図４（ｂ）に示すマルチプレクサ５２＿ｂ、及びＰＢ制御回路６０の部分）から、ページバッファの出力を、ＥＣＣ Ｂｕｓ＿１とＤａｔａ Ｂｕｓ＿１とのいずれか一方のデータバスに接続する。
【００４８】
カラムコーディング回路１０３は、図１において不図示のアドレス制御回路から入力されるカラムアドレスに基づいて、カラムアドレス信号（図４（ｂ）に示すＳｕｂ ＢＬ Ｃｏｄｉｎｇ、及びＣｏｄｉｎｇ）を生成し、このカラムアドレス信号に対応するページバッファ１０２のページバッファユニットを選択する。これにより、Ｉ／Ｏパッド１０６、Ｄａｔａ Ｂｕｓ＿３、Ｄａｔａ Ｂｕｓ＿２、及びＤａｔａ Ｂｕｓ＿１、ビット回路（後述）、及びビット線を介してメモリセルトランジスタへデータが書きこまれる。また、メモリセルからのデータがビット線、ビット回路、Ｄａｔａ Ｂｕｓ＿１、Ｄａｔａ Ｂｕｓ＿２、及びＤａｔａ Ｂｕｓ＿３を介してＩ／Ｏパッド１０６の外部へ読み出される。
【００４９】
一方、ＥＣＣカラムコーディング回路１０８は、ＥＣＣ回路１０７ａからカラムアドレス（以下、カラムアドレスＡｄｄｒｅｓｓ Ｂとする）が入力される。ＥＣＣカラムコーディング回路１０８は、不図示のアドレス制御回路からカラムコーディング回路１０３に入力されるカラムアドレス（以下、カラムアドレスＡｄｄｒｅｓｓ Ａとする）とは独立して、ＰＢ制御回路６０に対して選択信号Ｓｅｌ＿Ｂを出力して、ページバッファ１０２の出力とＥＣＣ Ｂｕｓ＿１とを接続する。これにより、ページバッファ１０２の出力と、ＥＣＣ Ｂｕｓ＿１またはＤａｔａ Ｂｕｓ＿１との接続におけるアドレス制御を独立して実行することができる。
【００５０】
また、従来のＮＡＮＤ型フラッシュメモリでは、ページバッファの出力（データバスを以下、区別のためＩＯバスとする）を、第１の動作モードと第２の動作モードとにおいて共有している。これに対して、ＮＡＮＤ型フラッシュメモリ１０では、ページバッファの出力であるＩＯバスを、第１の動作モードと第２の動作モードとにおいて共有することなく、独立に設けている。
【００５１】
これにより、ページバッファの出力からランダマイザ、及びＥＣＣ回路１０７への入力までの径路において、後述するカラム置換回路１０４等の高速なデータ転送に悪影響を及ぼす回路は不要となり、データ転送を高速に行うことができる。また、第２のデータバスを、従来の救済効率に応じたバス幅にしておくことができる。これにより、カラム置換回路１０４の回路規模は増大しないので、チップサイズの増加を抑制できる。さらに、ＮＡＮＤ型フラッシュメモリ１０を、ＥＣＣ回路を内蔵しないＮＡＮＤ型フラッシュメモリに設計変更する場合であっても、ＥＣＣカラムコーディング回路１０８、パリティカラム置換回路１０５、ＥＣＣ Ｂｕｓ＿１〜ＥＣＣ Ｂｕｓ＿３、ランダマイザ、及びＥＣＣ回路１０７を削除すればよいので、容易に設計することができる。
【００５２】
ページバッファ１０２は、メモリアレイ１０１のページと同じ個数のデータを保持できるように構成されている。ページバッファ１０２は、図１に示すように、ＰＢ（Ｐａｇｅ Ｂｕｆｆｅｒ）＿Ｄａｔａ１０２ａと、ＰＢ＿ＣＲ１０２ｂと、ＰＢ＿Ｐａｒｉｔｙ１０２ｃと、ＰＢ＿ＰＣＲ１０２ｄとから構成される。以下、ＰＢ（Ｐａｇｅ Ｂｕｆｆｅｒ）＿Ｄａｔａ１０２ａをページバッファ１０２ａと、ＰＢ＿ＣＲ１０２ｂをページバッファ１０２ｂと、ＰＢ＿Ｐａｒｉｔｙ１０２ｃをページバッファ１０２ｃと、ＰＢ＿ＰＣＲ１０２ｄをページバッファ１０２ｄと、それぞれ呼ぶものとする。
ページバッファ１０２ａは、通常メモリセルに接続されるビット線の電位を増幅し、増幅結果をラッチするページバッファ（第１のページバッファ）である。また、ページバッファ１０２ａは、通常モード（第２の動作モード）におけるデータ読み出し時に、カラムコーディング回路１０３から選択信号Ｓｅｌ＿Ａが入力される。ページバッファ１０２ａは、増幅結果を読み出しデータＤａｔａ＿Ｏｕｔ＿Ａとして、Ｄａｔａ Ｂｕｓ＿１、Ｄａｔａ Ｂｕｓ＿２、及びＤａｔａ Ｂｕｓ＿３（第２のデータバス）を介して、Ｉ／Ｏパッド１０６から出力する。
一方、ページバッファ１０２ａは、ＥＣＣモード（第１の動作モード）におけるデータ読み出し時に、ＥＣＣカラムコーディング回路１０８から選択信号Ｓｅｌ＿Ｂが入力される。ページバッファ１０２ａは、増幅結果を読み出しデータＤａｔａ＿Ｏｕｔ＿ＢとしてＥＣＣ Ｂｕｓ＿１、ＥＣＣ Ｂｕｓ＿２、及びＥＣＣ Ｂｕｓ＿３（第１のデータバス）を介して、ランダマイザ、及びＥＣＣ回路１０７に対して出力する。
【００５３】
また、ページバッファ１０２ａは、通常モードにおけるデータ書込み時に、カラムコーディング回路１０３から選択信号Ｓｅｌ＿Ａが入力される。ページバッファ１０２ａは、Ｉ／Ｏパッド１０６から入力される書き込みデータがＤａｔａ Ｂｕｓ＿３、Ｄａｔａ Ｂｕｓ＿２、及びＤａｔａ Ｂｕｓ＿１を介して書き込みデータＤａｔａ＿Ｉｎ＿Ａとして入力される。一方、ページバッファ１０２ａは、ＥＣＣモードにおけるデータ書き込み時に、ＥＣＣカラムコーディング回路１０８から選択信号Ｓｅｌ＿Ｂが入力される。ページバッファ１０２ａは、ランダマイザ、及びＥＣＣ回路１０７におけるＥＣＣ回路１０７ａのＥＣＣ処理の結果がＥＣＣ Ｂｕｓ＿３、ＥＣＣ Ｂｕｓ＿２、及びＥＣＣ Ｂｕｓ＿１を介して書き込みデータＤａｔａ＿Ｉｎ＿Ｂとして入力される。
【００５４】
ページバッファ１０２ｂは、ページバッファ１０２ａに接続される通常メモリセルまたはビット線に不良が有る場合に、通常メモリセル、及びビット線とともに置換されるページバッファ（第３のページバッファ）である。すなわち、ページバッファ１０２ａを構成するページバッファユニットの１つに不良があった場合、このページバッファユニットは、ページバッファ１０２ｂを構成するページバッファユニットの１つに置換される。なお、ページバッファ１０２ｂの動作は、上述したページバッファ１０２ａと同じ動作であるので、説明を省略する。
【００５５】
このページバッファ１０２ａからページバッファ１０２ｂへのページバッファユニットの置換を行なうのが、カラム置換回路１０４である。カラム置換回路１０４は、ページバッファ１０２ａにおける不良のページバッファユニットを選択するカラムアドレス（後述する選択信号Ｓｅｌ＿Ａ）がカラムコーディング回路１０３に入力される場合、カラムコーディング回路１０３がページバッファ１０２ｂにおけるページバッファユニットを選択するように制御を実行する。
【００５６】
ページバッファ１０２ｃは、パリティメモリセル（ＥＣＣ処理用のメモリセルトランジスタ。ただし、構成は通常メモリセルと同じ）に接続されるビット線の電位を増幅し、増幅結果をラッチするページバッファ（第２のページバッファ）である。なお、パリティメモリセルが記憶するパリティデータは、通常モードでは、Ｉ／Ｏパッド１０６を介して外部に出力されない。ページバッファ１０２ｃは、ＥＣＣモードにおけるデータ読み出し時に、ＥＣＣカラムコーディング回路１０８から選択信号Ｓｅｌ＿Ｂが入力される。ページバッファ１０２ｃは、増幅結果を読み出しデータＤａｔａ＿Ｏｕｔ＿Ｂとして、ＥＣＣ Ｂｕｓ＿１、ＥＣＣ Ｂｕｓ＿２、及びＥＣＣ Ｂｕｓ＿３を介してＥＣＣ回路１０７に対して出力する。
【００５７】
また、パリティメモリセルが記憶するパリティデータは、通常モードでは、Ｉ／Ｏパッド１０６を介して外部から入力されない。
ページバッファ１０２ｃは、ＥＣＣモードにおけるデータ書き込み時に、ＥＣＣカラムコーディング回路１０８から選択信号Ｓｅｌ＿Ｂが入力される。ページバッファ１０２ｃは、ＥＣＣ回路１０７のＥＣＣ処理の結果であるパリティデータがＥＣＣ Ｂｕｓ＿３、ＥＣＣ Ｂｕｓ＿２、及びＥＣＣ Ｂｕｓ＿１を介して書き込みデータＤａｔａ＿Ｉｎ＿Ｂとして入力される。
【００５８】
ページバッファ１０２ｄは、ページバッファ１０２ｃに接続されるパリティメモリセルまたはビット線に不良が有る場合に、パリティメモリセル、及びビット線とともに置換されるページバッファ（第４のページバッファ）である。すなわち、ページバッファ１０２ｃを構成するページバッファユニットの１つに不良があった場合、このページバッファユニットは、ページバッファ１０２ｄを構成するページバッファユニットの１つに置換される。なお、ページバッファ１０２ｄの動作は、上述したページバッファ１０２ｃと同じ動作であるので、説明を省略する。
【００５９】
このページバッファ１０２ｃからページバッファ１０２ｄへのページバッファユニットの置換を行なうのが、パリティカラム置換回路１０５である。パリティカラム置換回路１０５は、ページバッファ１０２ｃにおける不良のページバッファユニットを選択するカラムアドレス（後述する選択信号Ｓｅｌ＿Ｂ）がＥＣＣカラムコーディング回路１０８に入力される場合、ＥＣＣカラムコーディング回路１０８がページバッファ１０２ｄにおけるページバッファユニットを選択するように制御を実行する。
【００６０】
次に、図２は、ランダマイザ、及びＥＣＣ回路１０７の詳細な構成例を示す図である。
本実施形態においては、ランダマイザ、及びＥＣＣ回路１０７として、ＢＣＨ符号（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ Ｈｏｃｑｕｅｎｇｈｅｍ ｃｏｄｅ）で代表されるガロア体演算を利用したＥＣＣ回路を例にとって説明する。なお、ＢＣＨ符号の替りに、例えばＨａｍｍｉｎｇ符号（Ｈａｍｍｉｎｇ ｃｏｄｅ）、リードソロモン符号（Ｒｅｅｄ−Ｓｏｌｏｍｏｎ ｃｏｄｅ）を用いることも可能である。なお、以下の説明では、情報データ長５１１ビットを訂正単位とし、それぞれの訂正単位のうちの４ビットのデータの訂正が可能なＢＣＨ符号を用いたＥＣＣ回路について説明する。
ランダマイザ、及びＥＣＣ回路１０７のうち、図１に示すＥＣＣ回路１０７ａは、データの復号を司るデコーダ部と、パリティデータを生成するエンコーダ部とを含んで構成される。
【００６１】
ＥＣＣ回路１０７ａのうち、デコーダ部は、Ｓｙｎｄｒｏｍｅ Ｃａｌｃｕｌａｔｉｏｎ Ｃｉｒｃｕｉｔ（シンドローム算出回路）３１、Ｅｒｒｏｒ−Ｃｏｅｆｆｉｃｉｅｎｔ Ｃａｌｃｕｌａｔｉｏｎ Ｃｉｒｃｕｉｔ（誤り係数算出回路）３２、及びＣｈｉｅｎ Ｓｅａｒｃｈ Ｃｉｒｃｕｉｔ（チェン探索回路）３３を含んで構成される。
シンドローム算出回路３１は、ＮＡＮＤ型フラッシュメモリ１０のＥＣＣモードでのデータ読み出し時に、ページバッファ１０２に読み出されたメモリセルからのデータが、符号データＬｏａｄ Ｄａｔａ＜５１０：０＞として、例えばセクタ毎に入力される。シンドローム算出回路３１は、この符号データＬｏａｄ Ｄａｔａ＜５１０：０＞を独立な最小多項式で除算することによりシンドロームを計算する。４ビットのデータの誤り訂正が可能なＢＣＨ符号で使用される独立な最小多項式は、４つである。シンドローム算出回路３１は、これら４つの最小多項式に対応して、４つのシンドローム算出部を備えている。これらのシンドローム算出部は、それぞれシンドローム（ここではシンドロームＳ１、Ｓ３、Ｓ５、Ｓ７とする）を計算する。
【００６２】
誤り係数算出回路３２は、これらのシンドロームＳ１、Ｓ３、Ｓ５、Ｓ７を使用して、セクタ毎のエラー位置探索方程式の係数（ここでは係数ｅ４、ｅ３、ｅ２、ｅ１、及びｅ０とする）を計算する。係数ｅ４、ｅ３、ｅ２、ｅ１、及びｅ０は、エラー位置探索方程式Λ（ｘ）＝ｅ４ｘ４＋ｅ３ｘ３＋ｅ２ｘ２＋ｅ１ｘ１＋ｅ０の係数である。エラー位置探索方程式Λ（ｘ）は、ページバッファ１０２からセクタ毎に読み出されたビットに誤りがあるか否かを探索する際にチェン探索回路３３において用いられる。
【００６３】
チェン探索回路３３では、誤り係数算出回路３２が算出する係数（エラー位置探索方程式の係数ｅ０〜ｅ４）を用いて、エラー位置探索方程式Λ（ｘ）に、代入値ｘとして符号データＬｏａｄ Ｄａｔａ＜５１０：０＞の位置を示すアドレス（カラムアドレス）を代入して、エラー位置探索方程式Λ（ｘ）が０になるか否かをチェックされる。また、チェン探索回路３３は、このチェック結果に応じてエラー位置（Ｅｒｒｏｒ Ｐｏｓｉｔｉｏｎ）を示す信号であるエラー検出信号ＥＰ＜５１０：０＞を出力する。チェン探索回路３３は、エラー検出信号ＥＰ＜５１０：０＞において、符号データＬｏａｄ Ｄａｔａ＜５１０：０＞のビットのうち、誤りがあったビットに対してはデータ１、誤りのなかったビットに対してはデータ０とする。
【００６４】
ランダマイザ１０７ｂには、ＮＡＮＤ型フラッシュメモリ１０のＥＣＣモードでのデータ読み出し時に、ＥＣＣカラムコーディング回路１０８がページバッファ１０２に選択信号Ｓｅｌ＿Ｂ（カラムアドレス）を入力することにより、このカラムアドレスが示す位置のページバッファ１０２の符号データＬｏａｄ Ｄａｔａ＜５１０：０＞が入力される。ランダマイザ１０７ｂは、符号データＬｏａｄ Ｄａｔａ＜５１０：０＞とエラー検出信号ＥＰ＜５１０：０＞とを排他的論理和演算（ＥＸＯＲ）することにより、誤りのあったビットを反転し、誤りのなかったビットは反転されず、誤りのないデータを得ることができる。
【００６５】
また、ランダマイザ１０７ｂは、排他的論理和演算により得られた誤りのないデータと、不図示のランダムシード発生回路によって発生したランダムシードＲＳ＜５１０：０＞（シード）とを、更に排他的論理和演算することにより、すなわちデランダマイズ（Ｄｅ−Ｒａｎｄｏｍｉｚｅ）する。ランダマイザ１０７ｂは、符号データＬｏａｄ Ｄａｔａ＜５１０：０＞をエンコード前の状態に復元する。ランダマイザ１０７ｂは、符号データＬｏａｄ Ｄａｔａ＜５１０：０＞を復元したデータである、復元済の符号データＳｔｏｒｅ Ｄａｔａ＜５１０：０＞をページバッファ１０２に書き込む。
【００６６】
以上説明したＥＣＣモードでのデータ読み出し動作（デコード、及びデランダマイズ）におけるデータの流れは、図２において、実線（Ｄｅｃｏｄｅでのデータの流れを示す）、及び一点鎖線（Ｅｎｃｏｄｅ／Ｄｅｃｏｄｅ共通のデータの流れを示す）により示される。また、ＥＣＣモードでのデータ読み出し動作における処理において、ページバッファ１０２への書き込みデータである符号データＳｔｏｒｅ Ｄａｔａは、数学的に下記の式で表される。なお、この式では、排他的論理和演算をＸＯＲで表すこととして、ページバッファ１０２からの読み出しデータである符号データＬｏａｄ Ｄａｔａ、エラー検出信号ＥＰ、及びランダムシードＲＳを用いている。
すなわち、
Ｓｔｏｒｅ Ｄａｔａ＝（Ｌｏａｄ Ｄａｔａ）ＸＯＲ（ＥＰ）ＸＯＲ（ＲＳ）
で表わされる。
なお、この符号データＳｔｏｒｅ Ｄａｔａは、通常モードのデータ読み出し動作においては、カラムコーディング回路１０３から選択信号Ｓｅｌ＿Ａ（カラムアドレス）をページバッファ１０２に与えることにより、パリティデータを除くデータを、Ｉ／Ｏパッド１０６を介して外部に出力することができる。
【００６７】
また、ＥＣＣ回路１０７ａのうち、エンコーダ部４０は、Ｐａｒｉｔｙ Ｇｅｎｅｒａｔｉｏｎ Ｃｉｒｃｕｉｔ（パリティ生成回路）４１を有する。パリティ生成回路４１は、ランダマイザ１０７ｂから入力されるランダマイズ処理後のデータを生成多項式で除算して、パリティデータを生成し、生成したパリティデータを、ページバッファ１０２（後述するページバッファ１０２ｃ）に対して出力する。
ＥＣＣモードでのデータ書込み動作（エンデコード、及びランダマイズ）では、ランダマイザ１０７ｂは、ページバッファ１０２から入力される、符号データＬｏａｄ Ｄａｔａ＜５１０：０＞をランダマイズする処理を行う。この際、ランダマイザ１０７ｂでは、エラー検出信号ＥＰ＜５１０：０＞を固定データ（オール０）とし、すなわちエラー検出信号ＥＰ＜５１０：０＞＝０とする。ランダマイザ１０７ｂは、符号データＬｏａｄ Ｄａｔａ＜５１０：０＞と、ランダムシードＲＳ＜５１０：０＞と、エラー検出信号ＥＰ＜５１０：０＞との排他的論理和演算を実行し、パリティ生成回路４１に対して出力する符号データＳｔｏｒｅ Ｄａｔａを生成する。
【００６８】
このパリティ生成回路４１への書き込みデータである符号データＳｔｏｒｅ Ｄａｔａは、数学的に下記の式で表される。なお、この式では、排他的論理和演算をＸＯＲで表すこととして、ページバッファ１０２からの読み出しデータである符号データＬｏａｄ Ｄａｔａ、エラー検出信号ＥＰ、及びランダムシードＲＳを用いている。
すなわち、デコード時と同じく、
Ｓｔｏｒｅ Ｄａｔａ＝（Ｌｏａｄ Ｄａｔａ）ＸＯＲ（ＥＰ）ＸＯＲ（ＲＳ）
で表わされる。
また、パリティ生成回路４１は、ランダマイザ１０７ｂから入力される符号データＳｔｏｒｅ Ｄａｔａからパリティデータを生成する。
ランダマイザ１０７ｂは、パリティデータを除く符号データＳｔｏｒｅ Ｄａｔａを、パリティ生成回路４１は、パリティデータを、ページバッファ１０２に対して出力する。これらの合成したデータが符号データＳｔｏｒｅ Ｄａｔａとして、ページバッファ１０２に書き込まれる。
【００６９】
このように、ＥＣＣ回路１０７ａとランダマイザ１０７ｂとを一体的に構成し、図１に示す様にＥＣＣ Ｂｕｓに設けたので、ＥＣＣのエンコード時にランダマイズ、及びエンコードを、デコード時にデコード、及びデランダマイズを、それぞれ同時に実行することができる。
【００７０】
図１に戻って、ページバッファ１０２を構成するページバッファ１０２ａ〜１０２ｄは、全て同一の回路構成からなり、以下にその回路構成について、図３〜図７を用いて詳細に説明する。図３は、図１に示すページバッファ１０２、カラムコーディング回路１０３、及びＥＣＣカラムコーディング回路１０８に対応する部分の簡略的な構成を示す図である。また、図４は、図２に示すＰＢ ４ＩＯ ユニットの内部の構成、及びＰＢ ユニットの内部の構成を示す図である。また、図５は、ＰＢ ユニットの内部の回路構成を示す図である。また、図６は、ＰＢ ユニットの内部の他の回路構成を示す図である。また、図７は、図５、及び図６に示すビット内部回路５０＿ｉ（ｉ＝０〜７の整数）の回路構成を示す図である。
【００７１】
図３を参照して、図１に示すページバッファ１０２、カラムコーディング回路１０３、及びＥＣＣカラムコーディング回路１０８に対応する部分は、４本分のＩＯ線からの４つのデータをラッチし、４本分のＩＯ線に対してデータを書き込むＰＢ ４ＩＯ ユニットを有する。
【００７２】
図３においては、１０個のＰＢ ４ＩＯとして、ＰＢ０ ＩＯ ０１２３、ＰＢ０ ＩＯ ４５６７、ＰＢ１ＩＯ ０１２３、ＰＢ１ ＩＯ ４５６７、ＰＢ２ ＩＯ ０１２３、ＰＢ２ ＩＯ ４５６７、ＰＢ３ ＩＯ ０１２３、ＰＢ３ ＩＯ ４５６７、ＰＢ４ ＩＯ ０１２３、ＰＢ４ ＩＯ ４５６７を示している。以下、ＰＢ０ ＩＯ ０１２３をＰＢ ４ＩＯ ユニット３０＿０、ＰＢ０ ＩＯ ４５６７をＰＢ ４ＩＯ ユニット３０＿１、ＰＢ１ＩＯ ０１２３をＰＢ ４ＩＯ ユニット３０＿２、ＰＢ１ ＩＯ ４５６７をＰＢ ４ＩＯ ユニット３０＿３、ＰＢ２ ＩＯ ０１２３をＰＢ ４ＩＯ ユニット３０＿４、と呼ぶことがある。また、ＰＢ２ ＩＯ ４５６７をＰＢ ４ＩＯ ユニット３０＿５、ＰＢ３ ＩＯ ０１２３をＰＢ ４ＩＯ ユニット３０＿６、ＰＢ３ ＩＯ ４５６７をＰＢ ４ＩＯ ユニット３０＿７、ＰＢ４ ＩＯ ０１２３をＰＢ ４ＩＯ ユニット３０＿８、ＰＢ４ ＩＯ ４５６７をＰＢ ４ＩＯ ユニット３０＿９と呼ぶことがある。
【００７３】
ここで、ＩＯ線とは、後述するＰＢユニットにおいて、マルチプレクサ５２＿ｂとＰＢ制御回路６０との間に設けられる入出力線である。このＩＯ線は、本実施形態では、マルチプレクサ５２＿ｂと８個のビット回路５１＿０ａ〜５１＿７ａとを介して、８本のビット線のいずれか一本と電気的に接続される。すなわち、ＩＯ線は、メモリセルトランジスタに書き込むデータ或いはメモリセルトランジスタから読み出されるデータが行き来する信号線である。
【００７４】
図４（ａ）を参照して、図３に示すＰＢ ４ＩＯ ユニットは、同一の構成を有している。図４（ａ）では、図３に示すＰＢ ４ＩＯ ユニット３０＿０を代表として、その構成を示している。ＰＢ ４ＩＯ ユニット３０＿０は、４個のＰＢユニット３０＿００〜３０＿０３から構成される。
ＰＢユニット３０＿００〜３０＿０３各々は、活性レベル（以下、例としてＨレベルとする）の選択信号Ｓｅｌ＿Ａ＜０＞がカラムコーディング回路１０３から供給されると、自身に接続される１本のＩＯ線とＤａｔａ Ｂｕｓ（第２のデータバス；後述するデータバスＤａｔａ＿Ａ＜７：０＞）とを接続する。これにより、図４（ａ）に示すように、４本のＩＯ線からデータバスＤａｔａ＿Ａ＜３：０＞へ、４ビットの読み出しデータＤａｔａ＿Ｏｕｔ＿Ａ＜０＞〜Ｄａｔａ＿Ｏｕｔ＿Ａ＜３＞が読み出される。
【００７５】
また、ＰＢユニット３０＿００〜３０＿０３各々は、活性レベル（以下、例としてＨレベルとする）の選択信号Ｓｅｌ＿Ｂ＜０＞がＥＣＣカラムコーディング回路１０８から供給されると、自身に接続される１本のＩＯ線とＥＣＣ Ｂｕｓ（第１のデータバス；後述するデータバスＤａｔａ＿Ｂ＜１９：０＞）とを接続する。これにより、図４（ａ）に示すように、４本のＩＯ線からデータバスＤａｔａ＿Ｂ＜３：０＞へ、４ビットの読み出しデータＤａｔａ＿Ｏｕｔ＿Ｂ＜０＞〜Ｄａｔａ＿Ｏｕｔ＿Ｂ＜３＞が読み出される。
【００７６】
図４（ｂ）を参照して、図４（ａ）に示すＰＢユニット各々は、回路構成が同一である８個のビット回路５１＿０ａ〜５１＿７ａと、マルチプレクサ５２＿ｂと、本願に特徴的部分であるＰＢ Ｃｏｎｔｒｏｌ Ｃｉｒｕｃｕｉｔ（ページバッファ制御回路）６０とから構成される。
ＭＵＸ（マルチプレクサ）５２＿ｂは、図１に示すカラムコーディング回路１０３またはＥＣＣカラムコーディング回路１０８からカラムアドレス信号（Ｓｕｂ ＢＬ Ｃｏｄｉｎｇ）が入力される。ＭＵＸ（マルチプレクサ）５２＿ｂは、このカラムアドレス信号（図５において選択信号ＤＩＯ＜ｉ＞で示す）に基づいて、ビット回路５１＿０ａ〜ビット回路５１＿７ａのうちいずれか一つを選択する。すなわち、マルチプレクサ５２＿ｂは、８本のビット線のうちのいずれか一本のビット線を、ＰＢ Ｃｏｎｔｒｏｌ Ｃｉｒｃｕｉｔ（ＰＢ制御回路）６０と接続する。
【００７７】
まず、図５、及び図７を参照して、１つのＰＢユニットの詳細な回路構成について説明する。
図７では、図５に示すビット内部回路５０＿０〜５０＿７各々の回路における、書き込み動作におけるデータのセンシング部、及びラッチ部、読み出し動作における信号線を駆動するドライバ部の構成を、具体的にトランジスタ、及びインバータ回路を用いて記載している。なお、図４（ｂ）に示すビット回路５１＿０ａ〜５１＿７ａとマルチプレクサ５２＿ｂとを合わせた回路が、ビット内部回路５０＿０〜５０＿７に相当する。すなわち、ビット内部回路は、選択信号ＤＩＯにより選択されるので、ビット回路とマルチプレクサ５２＿ｂの一部の機能を有している。
【００７８】
図７に示すように、ビット内部回路５０＿ｉ（ｉを整数として、ｉ＝０〜７の８台は同一構成の回路である）は、インバータ回路５１１、インバータ回路５１２、トランジスタ５１３、トランジスタ５１４、トランジスタ５１５、トランジスタ５２１、及びトランジスタ５２２から構成される。ここで、トランジスタ５１３、トランジスタ５１４、トランジスタ５１５、トランジスタ５２１、及びトランジスタ５２２は、Ｎチャネル型ＭＯＳ（Ｍｅｔａｌ Ｏｘｉｄｅ Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）トランジスタである。
【００７９】
ビット内部回路５０＿ｉにおいて、ラッチ部は、インバータ回路５１１とインバータ回路５１２とから構成されている。ここで、インバータ回路５１１は、出力端子が接続点Ｎ２においてインバータ回路５１２の入力端子に接続され、入力端子が接続点Ｎ１においてインバータ回路５１２の出力端子に接続されている。
この接続点Ｎ１は、不図示のメモリセルトランジスタにビット線を介して接続される。接続点Ｎ１は、読み出し動作において、メモリセルトランジスタが記憶するデータがＤａｔａ＿ｉとして現れ、書き込み動作においてはメモリセルに書き込むべきデータがＤａｔａ＿ｉとして現れる。例えば、メモリセルトランジスタがＬ（ロウ）レベル（データ０とする）を記憶するとき、Ｄａｔａ＿ｉの電位はＬレベルとなり、一方、メモリセルトランジスタがＨ（ハイ）レベル（データ１とする）を記憶するとき、Ｄａｔａ＿ｉの電位はＨレベルとなる。
【００８０】
ビット内部回路５０＿ｉにおいて、ドライバ部は、トランジスタ５１５、及びトランジスタ５２２から構成される。
トランジスタ５２２は、ドレインが読み出し信号ＲＤの配線に接続され、ゲートが選択信号ＤＩＯ＜ｉ＞の配線に接続され、ソースがトランジスタ５１５のドレインに接続されている。
トランジスタ５１５は、ドレインがトランジスタ５２２のソースに接続され、ゲートが接続点Ｎ２に接続され、ソースが接地されている。
ここで、選択信号ＤＩＯ＜ｉ＞（ｉ＝０〜７）は、図４（ｂ）に示すＳｕｂ ＢＬ Ｃｏｄｉｎｇである。例えば、カラムコーディング回路１０３は不図示のアドレス制御回路から入力される３ビットのアドレス信号に基づいて、或いはＥＣＣカラムコーディング回路１０８はＥＣＣ回路１０７から入力される３ビットのアドレス信号に基づいて、選択信号ＤＩＯ＜ｉ＞のうちの１つの信号をＨレベルとする。これにより、図５に示すビット内部回路５０＿０〜５０＿７の１つのビット内部回路が選択される。
【００８１】
以上の構成により、メモリセルトランジスタからのデータ読み出し動作において、選択信号ＤＩＯ＜ｉ＞がＨレベルになると、読み出し信号ＲＤの論理レベルはＤａｔａ＿ｉの論理レベルと同じ論理レベルとなる。つまり、例えば読み出し信号ＲＤをＨレベルにプリチャージしておくことにより、Ｄａｔａ＿ｉがＨレベルのときは、トランジスタ５１５がオフ（非導通状態）、トランジスタ５２２がオン（導通状態）であり、ビット内部回路５０＿ｉは、読み出し信号ＲＤをＨレベルに維持する。一方、Ｄａｔａ＿ｉがＬレベルのときは、トランジスタ５１５がオン、トランジスタ５２２がオンであり、ビット内部回路５０＿ｉは、読み出し信号ＲＤをＨレベルからＬレベルに変化させる。
読み出し信号ＲＤの配線は、図５に示すように、ＰＢ制御回路６０に接続される。
第１の動作モード（ＥＣＣモード）では、選択信号Ｓｅｌ＿Ｂ（ＥＣＣカラムコーディング回路１０８が出力するカラムアドレス）が入力されると、読み出し信号ＲＤの配線はＥＣＣ Ｂｕｓに接続される。これにより、ＥＣＣ Ｂｕｓには、ビット内部回路５０＿ｉのＤａｔａ＿ｉがデータ読み出し信号Ｄａｔａ＿Ｏｕｔ＿Ｂとして読み出される。
【００８２】
一方、第２の動作モード（通常モード）では、選択信号Ｓｅｌ＿Ａ（カラムコーディング回路１０３が出力するカラムアドレス）が入力されると、読み出し信号ＲＤの配線は、Ｄａｔａ Ｂｕｓに接続される。これにより、Ｄａｔａ Ｂｕｓには、ビット内部回路５０＿ｉのＤａｔａ＿ｉがデータ読み出し信号Ｄａｔａ＿Ｏｕｔ＿Ａとして読み出される。
【００８３】
図７に戻って、ビット内部回路５０＿ｉにおいて、センシング部は、トランジスタ５１３、トランジスタ５１４、トランジスタ５２１から構成される。
トランジスタ５１３は、ドレインが接続点Ｎ１に接続され、ゲートが書き込み信号ＤＩの配線に接続され、ソースがトランジスタ５２１のドレインに接続されている。
トランジスタ５１４は、ドレインが接続点Ｎ２に接続され、ゲートが書き込み信号ｎＤＩの配線に接続され、ソースがトランジスタ５２１のドレインに接続されている。
トランジスタ５２１は、ドレインがトランジスタ５１３のソース、及びトランジスタ５１４のソースに接続され、ゲートが選択信号ＤＩＯ＜ｉ＞の配線に接続され、ソースが接地されている。
【００８４】
書き込み信号ＤＩ、及び書き込み信号ｎＤＩの配線は、図５に示すように、ＰＢ制御回路６０に接続される。後述するように、第１の動作モードでは選択信号Ｓｅｌ＿ＢによりデータバスＥＣＣ Ｂｕｓに接続され、ＥＣＣ Ｂｕｓからデータ書き込み信号Ｄａｔａ＿Ｉｎ＿Ｂが入力される。これにより、ＰＢ制御回路６０では、このデータ書き込み信号Ｄａｔａ＿Ｉｎ＿Ｂのレベルに応じて書き込み信号ＤＩ、及び書き込み信号ｎＤＩのいずれか一方をＬレベルからＨレベルに変化させ、他方をＬレベルに維持する。
一方、第２の動作モードでは、選択信号Ｓｅｌ＿ＡによりＤａｔａ Ｂｕｓに接続され、Ｄａｔａ Ｂｕｓからデータ書き込み信号Ｄａｔａ＿Ｉｎ＿Ａが入力される。これにより、ＰＢ制御回路６０は、このデータ書き込み信号Ｄａｔａ＿Ｉｎ＿Ａのレベルに応じて書き込み信号ＤＩ、及び書き込み信号ｎＤＩのいずれか一方をＬレベルからＨレベルに変化させ、他方をＬレベルに維持する。
【００８５】
以上の構成により、メモリセルトランジスタへのデータ書き込み動作において、選択信号ＤＩＯ＜ｉ＞がＨレベルになると、書き込み信号ＤＩ、及び書き込み信号ｎＤＩのレベルに応じて、ビット内部回路５０＿ｉのＤａｔａ＿ｉのレベルが決定する。具体的には、データ書き込み信号Ｄａｔａ＿Ｉｎ＿Ａ，またはデータ書き込み信号Ｄａｔａ＿Ｉｎ＿ＢがＬレベル（データ０）のとき、ＰＢ制御回路６０は、書き込み信号ＤＩをＨレベル、書き込み信号ｎＤＩをＬレベルとする。これにより、ビット内部回路５０＿ｉでは、トランジスタ５１３がオンし、トランジスタ５１４がオフする。そして、接続点Ｎ１はＬレベル、接続点Ｎ２はＨレベルとなり、Ｄａｔａ＿ｉの論理は、データバスの論理と同じくＬレベル（データ０）となる。
【００８６】
一方、データ書き込み信号Ｄａｔａ＿Ｉｎ＿Ａ，またはデータ書き込み信号Ｄａｔａ＿Ｉｎ＿ＢがＨレベル（データ１）のとき、ＰＢ制御回路６０は、書き込み信号ＤＩをＬレベル、書き込み信号ｎＤＩをＨレベルとする。これにより、ビット内部回路５０＿ｉでは、トランジスタ５１３がオフし、トランジスタ５１４がオンする。そして、接続点Ｎ１はＨレベル、接続点Ｎ２はＬレベルとなり、Ｄａｔａ＿ｉの論理は、データバスの論理と同じくＨレベル（データ１）となる。
【００８７】
図７に戻って、ＰＢ制御回路６０（転送部）の構成を説明する。
ＰＢ制御回路６０は、データバスからページバッファへのデータ転送を実行する書き込み部と、ページバッファからデータバスへのデータ転送を実行する読み出し部とからなる。
このうち、ＰＢ制御回路６０の読み出し部は、トランジスタ６１ａ、及びトランジスタ６１ｂから構成される。
トランジスタ６１ａ、及びトランジスタ６１ｂは、ＮＭＯＳトランジスタである。
トランジスタ６１ａは、ドレインが読み出し信号ＲＤの配線に接続され、ゲートが選択信号Ｓｅｌ＿Ａの配線に接続され、ソースがＤａｔａ Ｂｕｓ（第２のデータバス）に接続されている。トランジスタ６１ｂは、ドレインが読み出し信号ＲＤの配線に接続され、ゲートが選択信号Ｓｅｌ＿Ｂの配線に接続され、ソースがＥＣＣ Ｂｕｓ（第１のデータバス）に接続されている。
【００８８】
ここで、選択信号Ｓｅｌ＿Ａは、カラムコーディング回路１０３が、図１において不図示のアドレス制御回路から入力されるＡｄｄｒｅｓｓ Ａ、例えば複数ビットのアドレスに基づいて生成するカラムアドレス信号である。また、選択信号Ｓｅｌ＿Ｂは、ＥＣＣカラムコーディング回路１０８が、図１に示すＥＣＣ回路１０７から入力されるＡｄｄｒｅｓｓ Ｂ、例えば上記複数ビットのうちの一部のビットのアドレスに基づいて生成するカラムアドレス信号である。
【００８９】
このように、ＰＢ制御回路６０の読み出し部は、ＥＣＣモード（第１の動作モード）のデータ読み出し時において、Ｈレベルの選択信号Ｓｅｌ＿ＢがＥＣＣカラムコーディング回路１０８から入力されると、トランジスタ６１ｂをオンさせて読み出し信号ＲＤの配線とＥＣＣ Ｂｕｓとを接続する。これにより、ビット内部回路５０＿０〜５０＿７に格納されたメモリセルトランジスタのデータ（ビット内部回路ではＤａｔａ＿ｉ）が、ＥＣＣ Ｂｕｓにデータ読み出し信号Ｄａｔａ＿Ｏｕｔ＿Ｂとして出力される。
【００９０】
また、ＰＢ制御回路６０の読み出し部は、通常モード（第２の動作モード）のデータ読み出し時において、Ｈレベルの選択信号Ｓｅｌ＿Ａがコーディング回路１０３から入力される。ＰＢ制御回路６０の読み出し部は、トランジスタ６１ａをオンさせて読み出し信号ＲＤの配線とＤａｔａ Ｂｕｓとを接続する。これにより、ビット内部回路５０＿０〜５０＿７に格納されたメモリセルトランジスタのデータが、Ｄａｔａ Ｂｕｓにデータ読み出し信号Ｄａｔａ＿Ｏｕｔ＿Ａとして出力される。
【００９１】
また、ＰＢ制御回路６０の読み出し部は、ページバッファ１０２ａ、及びページバッファ１０２ｃにおいて、メモリセルトランジスタ、またはメモリセルトランジスタに接続されるビット線に不良がある場合、次の構成を有している。すなわち、ＥＣＣモードのデータ読み出し時において、ＥＣＣ回路１０７に入力するデータが固定データ（この場合はデータ０に固定する）となるように、ＰＢ制御回路６０の読み出し部は、図５に示すように、不良情報格納部９０ａ、及びデータ固定部９０ｂを有している。
【００９２】
不良情報格納部９０ａは、インバータ回路９２、インバータ回路９３、トランジスタ９４、トランジスタ９５、及びトランジスタ９６から構成される。ここで、トランジスタ９４、トランジスタ９５、及びトランジスタ９６は、Ｎチャネル型ＭＯＳトランジスタである。
不良情報格納部９０ａにおいて、ラッチ部は、インバータ回路９２とインバータ回路９３とから構成されている。ここで、インバータ回路９２は、出力端子が接続点Ｎ４においてインバータ回路９３の入力端子に接続され、入力端子が接続点Ｎ３においてインバータ回路９３の出力端子に接続されている。
この接続点Ｎ３は、アンド回路９１の第１入力端子に接続される。接続点Ｎ３は、ラッチ部が記憶するデータが、欠陥を示す欠陥信号ＰＢ＿Ｄｅｆｃｅｔとして現れる。また、接続点Ｎ４は、ラッチ部が記憶するデータが、欠陥を示す欠陥信号ｎＰＢ＿Ｄｅｆｃｅｔとして現れる。
【００９３】
不良情報格納部９０ａにおいて、センシング部は、トランジスタ９４、トランジスタ９５、トランジスタ９６から構成される。
トランジスタ９４は、ドレインが接続点Ｎ３に接続され、ゲートが不良情報信号ＳＤＩの配線に接続され、ソースがトランジスタ９６のドレインに接続されている。
トランジスタ９５は、ドレインが接続点Ｎ４に接続され、ゲートが不良情報信号ｎＳＤＩの配線に接続され、ソースがトランジスタ９６のドレインに接続されている。
トランジスタ９６は、ドレインがトランジスタ９４のソース、及びトランジスタ９５のソースに接続され、ゲートがパワーオンリセット信号ＰＯＲ＿Ｍｏｄｅの配線に接続され、ソースが接地されている。
【００９４】
ここで、不良情報信号ＳＤＩ、及び不良情報信号ｎＳＤＩは、ＰＢ制御回路６０に接続されるビット線、当該ビット線に接続されるメモリセルトランジスタに不良が有るか否かを示す信号である。これらの不良情報信号は、製造後のテストにおいて、ＰＢ制御回路６０に接続されるビット線等に不良が有る場合、不良情報信号ＳＤＩがデータ０（Ｌレベル）、不良情報信号ｎＳＤＩがデータ１（Ｈレベル）とされる。一方、ＰＢ制御回路６０に接続されるビット線等に不良がない場合、不良情報信号ＳＤＩがＨレベル、不良情報信号ｎＳＤＩがＬレベルとされる。そして、これらの不良情報信号は、テスト後の製品出荷前において、ＰＢ制御回路６０の位置を示す選択信号Ｓｅｌ＿Ｂに関連付けられて、ＮＡＮＤ型フラッシュメモリ１０の例えばシステム用記憶領域に格納される。
また、パワーオンリセット信号ＰＯＲ＿Ｍｏｄｅは、ＮＡＮＤ型フラッシュメモリ１０の電源投入後の所定期間（不良情報信号をシステム用記憶領域からＰＢ制御回路６０に転送する期間）、Ｈレベルを維持する信号である。
【００９５】
以上の構成により、不良情報格納部９０ａは、ＮＡＮＤ型フラッシュメモリ１０の電源投入後に、ＰＢ制御回路６０に接続されるビット線等に不良が有る場合、パワーオンリセット信号ＰＯＲ＿ＭｏｄｅがＨレベルとなることにより、トランジスタ９４がオフ、トランジスタ９５がオンする。これにより、ノードＮ３がＨレベル、ノードＮ４がＬレベルとなり、欠陥信号ＰＢ＿ＤｅｆｃｅｔがＨレベルとなる。そして、不良情報格納部９０ａは、転送期間終了後、パワーオンリセット信号ＰＯＲ＿ＭｏｄｅがＬレベルとなることにより、以降のＮＡＮＤ型フラッシュメモリ１０に電源が投入されている期間、欠陥信号ＰＢ＿ＤｅｆｃｅｔをＨレベルに維持する。
【００９６】
また、不良情報格納部９０ａは、ＮＡＮＤ型フラッシュメモリ１０の電源投入後に、ＰＢ制御回路６０に接続されるビット線等に不良がない場合、パワーオンリセット信号ＰＯＲ＿ＭｏｄｅがＨレベルとなることにより、トランジスタ９４がオン、トランジスタ９５がオフする。これにより、ノードＮ３がＬレベル、ノードＮ４がＨレベルとなり、欠陥信号ＰＢ＿ＤｅｆｃｅｔがＬレベルとなる。そして、不良情報格納部９０ａは、転送期間終了後、パワーオンリセット信号ＰＯＲ＿ＭｏｄｅがＬレベルとなることにより、以降のＮＡＮＤ型フラッシュメモリ１０に電源が投入されている期間、欠陥信号ＰＢ＿ＤｅｆｃｅｔをＬレベルに維持する。
【００９７】
また、データ固定部９０ｂは、アンド回路９１、トランジスタ６１ｃを有している。ここで、トランジスタ６１ｃは、ＮＭＯＳトランジスタである。
アンド回路９１は、２入力１出力の論理積回路であり、第１入力端子が接続点Ｎ３に接続され、第２入力端子が選択信号Ｓｅｌ＿Ａの配線に接続され、出力端子は、トランジスタ６１ｃのゲートに接続される。
トランジスタ６１ｃは、ドレインが読み出し信号ＲＤの配線に接続され、ゲートがアンド回路９１の出力端子に接続され、ソースが接地されている。
【００９８】
以上の構成により、ＰＢ制御回路６０に接続されるビット線等に不良がない場合、データ固定部９０ｂは、欠陥信号ＰＢ＿ＤｅｆｃｅｔがＬレベルであるから、アンド回路９１の出力信号は常にＬレベルであり、トランジスタ６１ｃはオフする。このため、データ固定部９０ｂは実質何の動作も行わない。
一方、ＰＢ制御回路６０に接続されるビット線等に不良が有る場合、欠陥信号ＰＢ＿ＤｅｆｃｅｔがＨレベルとなっている。ＥＣＣ使用時、すなわちＥＣＣモードではアンド回路９１にＨレベルの選択信号Ｓｅｌ＿Ｂが入力されると、アンド回路９１の出力信号がＨレベルとなり、トランジスタ６１ｃがオンするので、ＥＣＣ Ｂｕｓ＿１は接地され、読み出しデータＤａｔａ＿Ｏｕｔ＿ＢはＬレベル（ＧＮＤレベル）に固定される。つまり、ＰＢ制御回路６０に接続されるビット線等に不良がある場合、ＥＣＣモードではＰＢ制御回路は、ＥＣＣ  Ｂｕｓ＿１に固定レベル（Ｌレベル）の読み出しデータＤａｔａ＿Ｏｕｔ＿Ｂを出力するデータ固定回路として動作する。
【００９９】
なお、通常モードでのデータ読み出し時は、ＰＢ制御回路６０は選択信号Ｓｅｌ＿Ａで選択されるので、アンド回路９１の出力はＬレベルとなり、この追加回路であるデータ固定部９０ｂは実質動作しないことになる。もっとも、このアンド回路９１を使用せず、欠陥信号ＰＢ＿Ｄｅｆｅｃｔを直接トランジスタ９１ｃのゲートに入力すれば、ＰＢ制御回路６０に接続されるビット線等に不良が有る場合、読み出し信号ＲＤはＬレベルに固定される。つまり、ＰＢ制御回路６０は、通常モードで選択信号Ｓｅｌ＿Ａが入力されると、Ｄａｔａ Ｂｕｓ＿１に固定レベル（Ｌレベル）の読み出しデータＤａｔａ＿Ｏｕｔ＿Ａを出力し、ＥＣＣモードで選択信号Ｓｅｌ＿Ｂが入力されると、Ｌレベルの読み出しデータＤａｔａ＿Ｏｕｔ＿Ｂを出力するデータ固定回路として動作する。
【０１００】
なお、図５に示す不良情報格納部９０ａ、及びデータ固定部９０ｂの構成は、図６に示す構成であってもよい。図６は、ＰＢ ユニットの内部の他の回路構成を示す図である。
なお、図６において図５と同一の部分には同一の符号を付し、その説明を省略する。
図６において、不良情報格納部９０ａついては図５に示すものと同じ構成だが、データ固定部９０ｂについては、データ固定部９０ｂ’としている。なお、不良情報格納部９０ａついて、接続点Ｎ４に現れる信号を欠陥信号ｎＰＢ＿Ｄｅｆｅｃｔとしている。
データ固定部９０ｂ’は、トランジスタ６１ｃのみから構成される。トランジスタ６１ｃは、ソースがＥＣＣ Ｂｕｓ（第１のデータバス）に接続されている。また、これにより、トランジスタ６１ｂは、ドレインが読み出し信号ＲＤの配線に接続され、ゲートが選択信号Ｓｅｌ＿Ｂの配線に接続され、ソースがトランジスタ６１ｃのドレインに接続されている。
【０１０１】
この構成により、ＰＢ制御回路６０に接続されるビット線等に不良が有る場合、欠陥信号ｎＰＢ＿ＤｅｆｅｃｔがＬレベルとなるので、トランジスタ６１ｃがオフとなり、読み出し信号ＲＤのＥＣＣ Ｂｕｓ＿１への伝送パスが断たれることになる。このため、読み出しデータＤａｔａ＿Ｏｕｔ＿Ｂは、Ｐｕｌｌ Ｕｐ回路によりＨレベルに固定される。一方、ＰＢ制御回路６０に接続されるビット線等に不良がない場合、欠陥信号ｎＰＢ＿ＤｅｆｅｃｔはＨレベルとなり、トランジスタ６１ｃが常時オンとなる。これにより、読み出し信号ＲＤ、つまりメモリセルトランジスタのデータを、ＥＣＣ Ｂｕｓ＿１へ読み出しデータＤａｔａ＿Ｏｕｔ＿Ｂとして読み出すことができる。
データ固定部９０ｂ’は、図６に示すデータ固定部９０ｂと比較して、読み出し信号ＲＤの配線とＥＣＣ Ｂｕｓ＿１との間で、トランジスタ６１ｂとトランジスタ６１ｃとが
直列回路となるが、アンド回路を不要とできるメリットがある。
【０１０２】
また、図６に示すデータ固定部９０ｂ’において、例えばトランジスタ６１ｃを、読み出し信号ＲＤの配線とトランジスタ６１ａ、及びトランジスタ６１ｂのドレインとの間、すなわち読み出し信号ＲＤの配線とＰＢ制御回路６０との間に挿入する。このようにすれば、ＰＢ制御回路６０は、通常モードで選択信号Ｓｅｌ＿Ａが入力されると、Ｄａｔａ Ｂｕｓ＿１に固定レベル（Ｈレベル）の読み出しデータＤａｔａ＿Ｏｕｔ＿Ａを出力する。一方、ＰＢ制御回路６０は、ＥＣＣモードで選択信号Ｓｅｌ＿Ｂが入力されると、Ｈレベルの読み出しデータＤａｔａ＿Ｏｕｔ＿Ｂを出力するデータ固定回路として動作する。
以上のような回路構成により、ＰＢ制御回路６０に接続されるビット線等に不良が有る場合、データＤａｔａ＿Ｏｕｔ＿ＡまたはＢデータＤａｔａ＿Ｏｕｔ＿ＢをＬレベルまたはＨレベルの固定値とすることができる。
【０１０３】
図５に戻って、ＰＢ制御回路６０の書き込み部は、インバータ回路６２、インバータ回路６３、ナンド回路６４、ナンド回路６５、オア回路６６、インバータ回路６７、スイッチ６８、及びスイッチ６９から構成される。
インバータ回路６２は、論理反転回路であり、出力端子が書き込み信号ＤＩの配線に接続され、入力端子がナンド回路６４の出力端子に接続される。インバータ回路６３は、論理反転回路であり、出力端子が書き込み信号ｎＤＩの配線に接続され、入力端子がナンド回路６５の出力端子に接続される。
【０１０４】
ナンド回路６４は、３入力１出力の否定的論理積回路であり、第１入力端子が書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅの配線に接続され、第２入力端子がオア回路６６の出力端子に接続され、第３入力端子がインバータ回路６７の出力端子に接続される。また、ナンド回路６４の出力端子は、インバータ回路６２の入力端子に接続される。
ナンド回路６５は、３入力１出力の否定的論理積回路であり、第１入力端子が書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅの配線に接続され、第２入力端子がオア回路６６の出力端子に接続され、第３入力端子がスイッチ６８の第１入出力端子、及びスイッチ６９の第１入出力端子に接続される。また、ナンド回路６５の出力端子は、インバータ回路６３の入力端子に接続される。
【０１０５】
オア回路６６は、２入力１出力の論理和回路であり、第１入力端子がアンド回路７１の出力に接続され、第２入力端子が選択信号Ｓｅｌ＿Ａの配線に接続される。また、オア回路６６の出力端子は、ナンド回路６４の第２入力端子、及びナンド回路６５の第２入力端子に接続される。アンド回路７１は、選択信号Ｓｅｌ＿Ｂと欠陥信号ｎＰＢ＿Ｄｅｆｅｃｔとの論理積を演算する。これにより、欠陥信号ｎＰＢ＿ＤｅｆｅｃｔがＨレベルの場合（不良でない場合）は、選択信号Ｓｅｌ＿ＢがＨレベルになることにより、ナンド回路６５の第２入力端子がＨレベルとなり、書き込みの条件の１つを満たすことができる。一方、欠陥信号ｎＰＢ＿ＤｅｆｅｃｔがＬレベルの場合（不良ページバッファである）は選択信号Ｓｅｌ＿Ｂの動作モードにおいて、ナンド回路６５の第２入力端子がＨレベルになることはなく、書き込みが行われなくなる。
インバータ回路６７は、論理反転回路であり、入力端子がスイッチ６８の第１入出力端子、及びスイッチ６９の第１入出力端子に接続され、出力端子がナンド回路６４の第３入力端子に接続される。
【０１０６】
スイッチ６８は、双方向に信号を伝達するスイッチであり、第１入出力端子がインバータ回路６７の入力端子、及びナンド回路６５の第３入力端子に接続され、第２入出力端子がＤａｔａ Ｂｕｓに接続される。
スイッチ６９は、双方向に信号を伝達するスイッチであり、第１入出力端子がインバータ回路６７の入力端子、及びナンド回路６５の第３入力端子に接続され、第２入出力端子がＥＣＣ Ｂｕｓに接続される。なお、上記双方向スイッチがどちらも非選択の場合にインバータ回路６７の入力が不定にならないように、インバータ回路６７の入力がＰＭＯＳトランジスタによりＰｕｌｌ Ｕｐ（プルアップ）処理される。
【０１０７】
以上の構成により、ＰＢ制御回路６０の書き込み部は、ＥＣＣモード（第１の動作モード）のデータ書き込み時において、書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅがＨレベルに、選択信号Ｓｅｌ＿ＢがＨレベルになると、スイッチ６９がオンする。これにより、ＰＢ制御回路６０の書き込み部は、ＥＣＣ Ｂｕｓから入力されるデータ書き込み信号Ｄａｔａ＿Ｉｎ＿Ｂのレベルに応じて、書き込み信号ＤＩ、及び書き込み信号ｎＤＩのいずれか一方をＬレベルからＨレベルに変化させる。具体的には、データ書き込み信号Ｄａｔａ＿Ｉｎ＿ＢがＬレベル（データ０）のとき、書き込み信号ＤＩをＨレベルに変化させる。これにより、ビット内部回路５０＿０〜５０＿７のうち、いずれか１つのビット内部回路のＤａｔａ＿ｉが、Ｌレベルになり、その後のプログラム処理により、メモリセルトランジスタにデータ０が書き込まれる。
【０１０８】
一方、データ書き込み信号Ｄａｔａ＿Ｉｎ＿ＢがＨレベル（データ１）のとき、書き込み信号ｎＤＩをＨレベルに変化させる。これにより、ビット内部回路５０＿０〜５０＿７のうち、いずれか１つのビット内部回路のＤａｔａ＿ｉが、Ｈレベルになり、その後のプログラム処理により、メモリセルトランジスタにデータ１が書き込まれる。
【０１０９】
また、ＰＢ制御回路６０の書き込み部は、通常モード（第２の動作モード）のデータ書き込み時において、書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅがＨレベルに、選択信号Ｓｅｌ＿ＡがＨレベルになると、スイッチ６８がオンする。これにより、ＰＢ制御回路６０の書き込み部は、Ｄａｔａ Ｂｕｓから入力されるデータ書き込み信号Ｄａｔａ＿Ｉｎ＿Ａのレベルに応じて、書き込み信号ＤＩ、及び書き込み信号ｎＤＩのいずれか一方をＬレベルからＨレベルに変化させる。具体的には、データ書き込み信号Ｄａｔａ＿Ｉｎ＿ＡがＬレベル（データ０）のとき、書き込み信号ＤＩをＨレベルに変化させる。これにより、ビット内部回路５０＿０〜５０＿７のうち、いずれか１つのビット内部回路のＤａｔａ＿ｉが、Ｌレベルになり、その後のプログラム処理により、メモリセルトランジスタにデータ０が書き込まれる。
【０１１０】
一方、データ書き込み信号Ｄａｔａ＿Ｉｎ＿ＡがＨレベル（データ１）のとき、書き込み信号ｎＤＩをＨレベルに変化させる。これにより、ビット内部回路５０＿０〜５０＿７のうち、いずれか１つのビット内部回路のＤａｔａ＿ｉが、Ｈレベルになり、その後のプログラム処理により、メモリセルトランジスタにデータ１が書き込まれる。
【０１１１】
このように、ＰＢ制御回路６０は、ページバッファ１０２のＰＢユニットを構成するビット内部回路５０＿０〜５０＿７のうち、選択信号ＤＩＯ＜ｉ＞により選択されたビット内部回路にビット線を介して接続されるメモリセルトランジスタと、データバス（第１のデータバス、および第２のデータバス）との間のデータ転送を制御する回路である。
【０１１２】
また、上述した読み出し信号ＲＤの配線、書き込み信号ＤＩの配線、及び書き込み信号ｎＤＩの配線（ＩＯ線）は、ＰＢユニットを構成するビット内部回路５０＿０〜５０＿７とＰＢ制御回路６０とを接続する配線であり、これらの配線はＰＢユニットのデータ転送用の入出力配線である。従って、本実施形態において、ＰＢ制御回路６０は、ページバッファ１０２の入出力部と、第１、及び第２のデータバス（ＥＣＣ Ｂｕｓ、Ｄａｔａ Ｂｕｓ）との間で、書き込みデータ、及び読み出しデータを転送する。
【０１１３】
図４（ａ）に戻って、以上のＰＢ制御回路６０の構成により、ＰＢ ４ＩＯユニット３０＿０は次に説明する動作を実行する。
ＰＢ ４ＩＯ ユニット３０＿０は、Ｈレベルの選択信号Ｓｅｌ＿Ａ＜０＞がカラムコーディング回路１０３から入力されると、４本分のページバッファの入出力線（図５に示すデータ読み出し線ＲＤ；ＩＯ線ＩＯ＿０〜ＩＯ＿３とする）を、４ビット分のＤａｔａ Ｂｕｓ（ここではデータバスＤａｔａ＿Ａ＜３：０＞とする）にそれぞれ接続する。これにより、ＰＢ ４ＩＯ ユニット３０＿０は、データバスＤａｔａ＿Ａ＜３：０＞にデータ読み出し信号Ｄａｔａ＿Ｏｕｔ＿Ａ＜０＞〜Ａ＜３＞（以下、データ読み出し信号Ｄａｔａ＿Ｏｕｔ＿Ａ＜３：０＞とする）を出力する。
【０１１４】
また、ＰＢ ４ＩＯ ユニット３０＿０は、Ｈレベルの選択信号Ｓｅｌ＿Ｂ＜０＞がＥＣＣカラムコーディング回路１０８から入力されると、４本分のページバッファの入出力線ＩＯ線ＩＯ＿０〜ＩＯ＿３を、４ビット分のＥＣＣ Ｂｕｓ（ここでは、データバスＤａｔａ＿Ｂ＜３：０＞とする）にそれぞれ接続する。これにより、ＰＢ ４ＩＯ ユニット３０＿０は、データバスＤａｔａ＿Ｂ＜３：０＞にデータ読み出し信号Ｄａｔａ＿Ｏｕｔ＿Ｂ＜０＞〜Ｂ＜３＞（以下、データ読み出し信号Ｄａｔａ＿Ｏｕｔ＿Ｂ＜３：０＞とする）を出力する。
【０１１５】
図３に戻って、以上のＰＢ ４ＩＯユニット３０＿０の構成により、図３に示すデータ読み出し動作において、ページバッファ１０２、及びカラムコーディング回路１０３、及びＥＣＣカラムコーディング回路１０８（ここでは、データ読み出しモデルとする）は、次に説明する動作を実行する。
なお、図３に示すＰＢ ４ＩＯユニット３０＿１〜３０＿９に接続されるページバッファの入出力線（図５、及び図６に示すデータ読み出し線ＲＤ）を、これらのＰＢ ４ＩＯユニットの順番に、それぞれ次のように呼ぶ。すなわち、ＩＯ線ＩＯ＿４〜ＩＯ＿７、ＩＯ線ＩＯ＿８〜ＩＯ＿１１、ＩＯ線ＩＯ＿１２〜ＩＯ＿１５、ＩＯ線ＩＯ＿１６〜ＩＯ＿１９、ＩＯ線ＩＯ＿２０〜ＩＯ＿２３、ＩＯ線ＩＯ＿２４〜ＩＯ＿２７、ＩＯ線ＩＯ＿２８〜ＩＯ＿３１、ＩＯ線ＩＯ＿３２〜ＩＯ＿３５、ＩＯ線ＩＯ＿３６〜ＩＯ＿３９とする。
また、Ｄａｔａ Ｂｕｓは、８ビット幅のバスであり、これらをデータバスＤａｔａ＿Ａ＜７：０＞とする。また、ＥＣＣ Ｂｕｓは、２０ビット幅のバスであり、これらをデータバスＤａｔａ＿Ｂ＜１９：０＞とする。
【０１１６】
通常モード（第２の動作モード）では、カラムコーディング回路１０３は、選択信号Ｓｅｌ＿Ａ＜０＞〜Ｓｅｌ＿Ａ＜４＞の５つのカラムアドレスのうち１つのカラムアドレスをＨレベル、残りの４つのカラムアドレスをＬレベルに維持して、データ読み出しモデルに対して出力する。
例えば、通常モードにおいて、選択信号Ｓｅｌ＿Ａ＜０＞〜Ｓｅｌ＿Ａ＜４＞の順番に、選択信号を５回、データ読み出しモデルに与えると、次のようにＩＯ線ＩＯ＿０〜ＩＯ＿３９の４０ビットのデータがデータバスＤａｔａ＿Ａ＜７：０＞に順次読み出される。
【０１１７】
選択信号Ｓｅｌ＿Ａ＜０＞がＨレベルになると、ＰＢ ４ＩＯユニット３０＿０、及びＰＢ ４ＩＯユニット３０＿１は、それぞれのＰＢ制御回路６０におけるトランジスタ６１ａがオンし、ＩＯ線ＩＯ＿０〜ＩＯ＿７とデータバスＤａｔａ＿Ａ＜７：０＞とを接続する。これにより、ＰＢ ４ＩＯユニット３０＿０、及びＰＢ ４ＩＯユニット３０＿１は、データバスＤａｔａ＿Ａ＜７：０＞に、読み出しデータＤａｔａ＿Ｏｕｔ＿Ａ＜７：０＞（ＩＯ線ＩＯ＿０〜ＩＯ＿７のデータ）を出力する。
【０１１８】
次に、選択信号Ｓｅｌ＿Ａ＜１＞がＨレベルになると、ＰＢ ４ＩＯユニット３０＿２、及びＰＢ ４ＩＯユニット３０＿３は、それぞれのＰＢ制御回路６０におけるトランジスタ６１ａがオンし、ＩＯ線ＩＯ＿８〜ＩＯ＿１５とデータバスＤａｔａ＿Ａ＜７：０＞とを接続する。これにより、ＰＢ ４ＩＯユニット３０＿２、及びＰＢ ４ＩＯユニット３０＿３は、データバスＤａｔａ＿Ａ＜７：０＞に、読み出しデータＤａｔａ＿Ｏｕｔ＿Ａ＜７：０＞（ＩＯ線ＩＯ＿８〜ＩＯ＿１５のデータ）を出力する。
【０１１９】
次に、選択信号Ｓｅｌ＿Ａ＜２＞がＨレベルになると、ＰＢ ４ＩＯユニット３０＿４、及びＰＢ ４ＩＯユニット３０＿５は、それぞれのＰＢ制御回路６０におけるトランジスタ６１ａがオンし、ＩＯ線ＩＯ＿１６〜ＩＯ＿２３とデータバスＤａｔａ＿Ａ＜７：０＞とを接続する。これにより、ＰＢ ４ＩＯユニット３０＿４、及びＰＢ ４ＩＯユニット３０＿５は、データバスＤａｔａ＿Ａ＜７：０＞に、読み出しデータＤａｔａ＿Ｏｕｔ＿Ａ＜７：０＞（ＩＯ線ＩＯ＿１６〜ＩＯ＿２３のデータ）を出力する。
【０１２０】
次に、選択信号Ｓｅｌ＿Ａ＜３＞がＨレベルになると、ＰＢ ４ＩＯユニット３０＿６、及びＰＢ ４ＩＯユニット３０＿７は、それぞれのＰＢ制御回路６０におけるトランジスタ６１ａがオンし、ＩＯ線ＩＯ＿２４〜ＩＯ＿３１とデータバスＤａｔａ＿Ａ＜７：０＞とを接続する。これにより、ＰＢ ４ＩＯユニット３０＿６、及びＰＢ ４ＩＯユニット３０＿７は、データバスＤａｔａ＿Ａ＜７：０＞に、読み出しデータＤａｔａ＿Ｏｕｔ＿Ａ＜７：０＞（ＩＯ線ＩＯ＿２４〜ＩＯ＿３１のデータ）を出力する。
【０１２１】
最後に、選択信号Ｓｅｌ＿Ａ＜４＞がＨレベルになると、ＰＢ ４ＩＯユニット３０＿８、及びＰＢ ４ＩＯユニット３０＿９は、それぞれのＰＢ制御回路６０におけるトランジスタ６１ａがオンし、ＩＯ線ＩＯ＿３２〜ＩＯ＿３９とデータバスＤａｔａ＿Ａ＜７：０＞とを接続する。これにより、ＰＢ ４ＩＯユニット３０＿８、及びＰＢ ４ＩＯユニット３０＿９は、データバスＤａｔａ＿Ａ＜７：０＞に、読み出しデータＤａｔａ＿Ｏｕｔ＿Ａ＜７：０＞（ＩＯ線ＩＯ＿３２〜ＩＯ＿３９のデータ）を出力する。
【０１２２】
このようにして、選択信号Ｓｅｌ＿Ａを５回、データ読み出しモデルに供給すると、ＰＢ ４ＩＯユニット３０＿０〜３０＿９は、ＰＢ制御回路６０により、ＩＯ線ＩＯ＿０〜ＩＯ＿３９を８本ずつ、データバスＤａｔａ＿Ａ＜７：０＞に接続する。これにより、合計４０ビットのメモリセルトランジスタの記憶するデータを、ビット線、及びＩＯ線ＩＯ＿０〜ＩＯ＿３９を介してＤａｔａ Ｂｕｓに読み出すことができる。
【０１２３】
また、ＥＣＣモード（第１の動作モード）では、ＥＣＣカラムコーディング回路１０８は、選択信号Ｓｅｌ＿Ｂ＜０＞〜Ｓｅｌ＿Ｂ＜１＞の２つのカラムアドレスのうち１つのカラムアドレスをＨレベル、残りの１つのカラムアドレスをＬレベルに維持して、データ読み出しモデルに対して出力する。
例えば、ＥＣＣモードにおいて、選択信号Ｓｅｌ＿Ｂ＜０＞〜Ｓｅｌ＿Ｂ＜１＞の順番に、選択信号を２回、データ読み出しモデルに与えると、次のようにＩＯ線ＩＯ＿０〜ＩＯ＿３９の４０ビットのデータがデータバスＤａｔａ＿Ｂ＜１９：０＞に順次読み出される。
【０１２４】
選択信号Ｓｅｌ＿Ｂ＜０＞がＨレベルになると、ＰＢ ４ＩＯユニット３０＿０、３０＿２、３０＿４、３０＿６、及び３０＿８は、それぞれのＰＢ制御回路６０におけるトランジスタ６１ｂがオンする。ＰＢ ４ＩＯユニット３０＿０、３０＿２、３０＿４、３０＿６、及び３０＿８は、それぞれＩＯ線ＩＯ＿０〜ＩＯ＿３、ＩＯ＿８〜ＩＯ＿１１、ＩＯ＿１６〜ＩＯ＿１９、ＩＯ＿２４〜ＩＯ＿２７、ＩＯ＿３２〜ＩＯ＿３５とデータバスＤａｔａ＿Ｂ＜１９：０＞とを接続する。これにより、ＰＢ ４ＩＯユニット３０＿０、３０＿２、３０＿４、３０＿６、及び３０＿８は、データバスＤａｔａ＿Ｂ＜１９：０＞に、読み出しデータＤａｔａ＿Ｏｕｔ＿Ｂ＜１９：０＞（ＩＯ線ＩＯ＿０〜ＩＯ＿３、ＩＯ＿８〜ＩＯ＿１１、ＩＯ＿１６〜ＩＯ＿１９、ＩＯ＿２４〜ＩＯ＿２７、ＩＯ＿３２〜ＩＯ＿３５のデータ）を出力する。
【０１２５】
次に、選択信号Ｓｅｌ＿Ｂ＜１＞がＨレベルになると、ＰＢ ４ＩＯユニット３０＿１、３０＿３、３０＿５、３０＿７、及び３０＿９は、それぞれのＰＢ制御回路６０におけるトランジスタ６１ａがオンする。ＰＢ ４ＩＯユニット３０＿１、３０＿３、３０＿５、３０＿７、及び３０＿９は、それぞれＩＯ線ＩＯ＿４〜ＩＯ＿７、ＩＯ＿１２〜ＩＯ＿１５、ＩＯ＿２０〜ＩＯ＿２３、ＩＯ＿２８〜ＩＯ＿３１、ＩＯ＿３６〜ＩＯ＿３９とデータバスＤａｔａ＿Ｂ＜１９：０＞とを接続する。これにより、ＰＢ ４ＩＯユニット３０＿１、３０＿３、３０＿５、３０＿７、及び３０＿９は、データバスＤａｔａ＿Ｂ＜１９：０＞に、読み出しデータＤａｔａ＿Ｏｕｔ＿Ｂ＜１９：０＞（ＩＯ線ＩＯ＿４〜ＩＯ＿７、ＩＯ＿１２〜ＩＯ＿１５、ＩＯ＿２０〜ＩＯ＿２３、ＩＯ＿２８〜ＩＯ＿３１、ＩＯ＿３６〜ＩＯ＿３９のデータ）を出力する。
【０１２６】
このようにして、選択信号Ｓｅｌ＿Ｂを２回、データ読み出しモデルに供給すると、ＰＢ ４ＩＯユニット３０＿０〜３０＿９は、ＰＢ制御回路６０により、ＩＯ線ＩＯ＿０〜ＩＯ＿３９を２０本ずつ、データバスＤａｔａ＿Ｂ＜１９：０＞に接続する。これにより、合計４０ビットのメモリセルトランジスタの記憶するデータを、ビット線、及びＩＯ線ＩＯ＿０〜ＩＯ＿３９を介してＥＣＣ Ｂｕｓに読み出すことができる。
例えば、通常モードでは、ＩＯ線ＩＯ＿０〜ＩＯ＿３、ＩＯ＿８〜ＩＯ＿１１、ＩＯ＿１６〜ＩＯ＿１９、ＩＯ＿２４〜ＩＯ＿２７、ＩＯ＿３２〜ＩＯ＿３５のデータは、選択信号を５回与えなければ、Ｄａｔａ Ｂｕｓに読み出すことができなかった。これに対して、ＥＣＣモードでは、選択信号を１回与えれば（選択信号Ｓｅｌ＿Ｂ＜０＞を与えれば）、ＩＯ線ＩＯ＿０〜ＩＯ＿３、ＩＯ＿８〜ＩＯ＿１１、ＩＯ＿１６〜ＩＯ＿１９、ＩＯ＿２４〜ＩＯ＿２７、ＩＯ＿３２〜ＩＯ＿３５のデータを、ＥＣＣ Ｂｕｓに読み出すことができる。
【０１２７】
また、図８は、図１に示すページバッファ１０２、カラムコーディング回路１０３、及びＥＣＣカラムコーディング回路１０８に対応する部分のデータ書き込み動作を説明するための図である。
データ書き込み動作においても、ＰＢ ４ＩＯユニット３０＿０の動作により、ページバッファ１０２、及びカラムコーディング回路１０３、及びＥＣＣカラムコーディング回路１０８（ここでは、データ書き込みモデルとする）は、データ書き込み動作を実行する。
データ書き込みモデルでは、データの転送を図３に示す方向と逆方向に処理を行なうだけであるので、詳細な説明は省略する。
【０１２８】
データ書き込みモデルでは、例えば、通常モードでは、ＩＯ線ＩＯ＿０〜ＩＯ＿３、ＩＯ＿８〜ＩＯ＿１１、ＩＯ＿１６〜ＩＯ＿１９、ＩＯ＿２４〜ＩＯ＿２７、ＩＯ＿３２〜ＩＯ＿３５へ与えるデータは、選択信号を５回与えなければ、Ｄａｔａ Ｂｕｓから書き込むことができなかった。これに対して、ＥＣＣモードでは、選択信号を１回与えれば（選択信号Ｓｅｌ＿Ｂ＜０＞を与えれば）、ＩＯ線ＩＯ＿０〜ＩＯ＿３、ＩＯ＿８〜ＩＯ＿１１、ＩＯ＿１６〜ＩＯ＿１９、ＩＯ＿２４〜ＩＯ＿２７、ＩＯ＿３２〜ＩＯ＿３５へ与えるデータを、ＥＣＣ Ｂｕｓから書き込むことができる。
【０１２９】
このように、本実施形態のＮＡＮＤ型フラッシュメモリ１０（半導体記憶装置）は、第１のデータバス（データバスＤａｔａ＿Ｂ＜１９：０＞）と、第１のデータバスと異なる本数から構成され、第１のデータバスとは独立して設けられる第２のデータバス（データバスＤａｔａ＿Ａ＜７：０＞）と、を備える。また、ＮＡＮＤ型フラッシュメモリ１０は、データ転送部（ＰＢ ４ＩＯユニット３０＿０〜３０＿９各々におけるＰＢ制御回路６０）を備える。データ転送部は、第１の動作モードによりメモリセルとの間でデータを転送する場合、複数のビット線のうち第１のデータバスと同じ本数のビット線と、第１のデータバスとを接続してデータを転送する。一方、データ転送部は、第２の動作モードによりメモリセルとの間でデータを転送する場合、複数のビット線のうち第２のデータバスと同じ本数のビット線と、第２のデータバスと、を接続してデータを転送する。
【０１３０】
また、ビット線を、ｎ（ｎはｐとｑの公倍数であり、ｐ、及びｑはｐ＞ｑである自然数）本のビット線とすると、次の構成となっている。すなわち、第１のデータバスはｐ本であり、第２のデータバスはｑ本であって、データ転送部は、第１の動作モードでは、（ｎ／ｐ）本のアドレス信号が入力されると、ｐ本のビット線とｐ本の第１のデータバスとの接続を行い、一方、第２の動作モードでは、（ｎ／ｑ）本のアドレス信号が入力されると、ｑ本ビット線と第２のデータバスとの接続を行う。
【０１３１】
また、ＮＡＮＤ型フラッシュメモリ１０は、メモリアレイ１０１と、メモリアレイ１０１からページ単位でデータを読み出し、メモリアレイ１０１から読み出された読み出しデータを格納するページバッファ１０２を備える。また、ＮＡＮＤ型フラッシュメモリ１０は、ページバッファ１０２から転送された読み出しデータに対して誤りを訂正し、この訂正された読み出しデータをページバッファ１０２に書き戻すＥＣＣ回路１０７（ＥＣＣ部）と、ページバッファに書き戻された読み出しデータを出力するＩ／Ｏパッド１０６（インターフェース部）と、を備える。このＥＣＣ Ｂｕｓは、ＥＣＣ回路１０７に接続され、Ｄａｔａ Ｂｕｓは、Ｉ／Ｏパッド１０６に接続される。
【０１３２】
また、ＮＡＮＤ型フラッシュメモリ１０において、ページバッファ１０２は、Ｉ／Ｏパッド１０６に入力された書き込みデータを格納し、ＥＣＣ回路１０７は、ページバッファから転送された書き込みデータに対してパリティデータを生成し、パリティデータ及び書き込みデータをページバッファに書き戻す。
【０１３３】
これにより、ページバッファ１０２から複数のデータバス（本実施形態ではＥＣＣ Ｂｕｓ、Ｄａｔａ Ｂｕｓ）を用意し、それぞれについて独立したカラムコーディング（Ｃｏｌｕｍｎ Ｃｏｄｉｎｇ）、すなわちアドレス制御を可能にすることができる。
本実施形態では、ページバッファ１０２の入出力線（上記例で言えばＩＯ＿０〜ＩＯ＿３９）から、すなわちページバッファに直結した部分から独立なデータバスの構成、および独立なアドレス制御としているところが特徴である。
そのため、本実施形態における半導体記憶装置では、以下に述べる特徴的な効果を奏することができる。
【０１３４】
（１）第１の動作モード（本実施形態ではＥＣＣモード）において、バス幅を広げ、高速化できる。
本実施形態の説明では、１回のカラムアドレス入力により、第２の動作モード（通常モード）では、Ｄａｔａ Ｂｕｓに８ビットのデータを転送し、ＥＣＣモードでは２０ビットのデータを転送する場合に説明した。このように、Ａｄｄｒｅｓｓ＿Ｂの入力（選択信号Ｓｅｌ＿ＢのＰＢ制御回路６０への入力）次第では、すなわちページバッファ１０２へのカラムコーディング次第では、簡単にバス幅を広げることができる。例えば、１０２４個のＰＢユニットでカラムアドレスを２アドレスとすれば、ＥＣＣモードではＥＣＣ Ｂｕｓを５１２bitのバス幅に広げてデータ転送できる。
また、ページバッファに直結した部分から独立なデータバスの構成、および独立なアドレス制御としている。そのため、従来のように、Ｄａｔａ Ｂｕｓの一部を共有してＥＣＣ回路へデータ転送する場合に比べて、高速なデータ転送が可能になる。
特に、不良のＰＢユニットについては、ＰＢ制御回路６０が固定データをＥＣＣ Ｂｕｓを介してＥＣＣ回路１０７へ転送するので、ＥＣＣ処理においてカラム置換回路１０４で救済処理した後のデータをＥＣＣ Ｂｕｓを介してＥＣＣ回路１０７に転送する必要はなくなる。そのため、バス幅の拡大されたＥＣＣ Ｂｕｓの径路にカラム置換回路１０４を配置する必要が無くなる。このため、カラム置換回路１０４での救済処理に要する時間だけ、ＥＣＣ処理の際のページバッファからＥＣＣ回路へのデータ転送の時間を短縮できる。また、ＥＣＣ処理に際してＤａｔａ Ｂｕｓ（第２のデータバス）のバス幅を拡大する必要はないので、カラム置換回路１０４の回路規模の増大を抑制できる。
【０１３５】
（２）アドレス制御、アドレスマップの自由度の向上
本実施形態の説明では、通常モードにおいて、１つのカラムアドレスで８ビットのデータ転送する際、例えばＰＢ ４ＩＯユニット３０＿０、と３０＿１に選択信号Ｓｅｌ＿Ａ＜０＞を供給して、ＩＯ線ＩＯ＿０〜ＩＯ＿７のデータをＤａｔａ Ｂｕｓに転送した。これに対して、ＥＣＣモードでは、ＰＢ ４ＩＯユニット３０＿０、と３０＿１に選択信号Ｓｅｌ＿Ｂ＜０＞、Ｓｅｌ＿Ｂ＜１＞と別々のアドレスを割り当てて、全アドレスについて一括でＥＣＣ回路にデータ転送をすることができる。例えば、通常データとパリティデータとが、通常モードにおいて選択信号Ｓｅｌ＿Ａの異なるアドレスに割り付けられていた場合であっても、ＥＣＣモードにおいて選択信号Ｓｅｌ＿Ｂの同じアドレスに割り付けることができ、通常データとパリティデータを一括してＥＣＣ回路に入力することができる。このように、第２の動作モードにおけるアドレス制御が第１の動作モードにおけるアドレス制御に対して独立性が非常に高く、アドレスマップの自由度を高くすることができる。
【０１３６】
また、通常モードではカラムアドレスは選択信号Ｓｅｌ＿Ａ＜０＞〜Ｓｅｌ＿Ａ＜４＞の５つに対し、ＥＣＣモードではカラムアドレスは選択信号Ｓｅｌ＿Ｂ＜０＞、Ｓｅｌ＿Ｂ＜１＞の２つとなった。このことは、通常モードにおける規格（Ｕｓｅｒ Ｓｐｅｃ）では、カラムアドレスが２のｎ乗でない（所謂きりのよくない）値で定められていたとしても、ＥＣＣモードではアドレス空間を２のｎ乗などのきりのよい単位空間へ変換可能であることを意味している。
これにより、ＥＣＣ回路１０７のコード構成、たとえばコード長をいくつにするか、積符号化する場合のコード長構成の最適化などの過程において、自由度をもって設計することができ、より最適なパフォーマンスを引き出すことができる。
【０１３７】
（３）設計変更の容易化
またＥＣＣ回路を内蔵した製品を設計する場合、仮に当該製品の派生製品であってＥＣＣ回路の内蔵が不要な製品を別途設計するような場合、データバス（ＥＣＣバス）、アドレス制御に係るカラムコーディング回路がＥＣＣモードと通常モードでは独立している。これにより、ＥＣＣモードに係る回路と通常モードに係る回路の切り分けが明確であるため、不要なＥＣＣモードに係る回路の削減が容易となり、設計変更が容易になる。
【０１３８】
続いて、図１に示すＮＡＮＤ型フラッシュメモリの第１の動作モード、及び第２の動作モードでの動作について、ページバッファ１０２の概略構成、及び動作フローチャートを参照して説明する。図９は、ページバッファ１０２を構成する各ページバッファを説明するための図である。また、図１０は、ページバッファ１０２の動作を説明するためのフローチャートである。
図９（ａ）には、ページバッファ１０２を構成するＭａｉｎ Ｄａｔａ（通常データ）用のページバッファ１０２ａ、Ｃｏｌｕｍｎ Ｒｅｐａｉｒ ｆｏｒ Ｍａｉｎ Ｄａｔａ（通常データの置換データ）用のページバッファ１０２ｂを模式的に示している。また、図９（ａ）には、ＥＣＣ Ｐａｒｉｔｙ（パリティデータ）用のページバッファ１０２ｃ、及びＰａｒｉｔｙ’ｓ Ｃｏｌｕｍｎ Ｒｅｐａｉｒ（パリティデータの置換データ）用のページバッファ１０２ｄを模式的に示している。
図９（ａ）には、これらページバッファ１０２ａ〜１０２ｄを構成するＰＢ ユニット（図５、及び図６に示すＰＢ制御回路６０、及びビット内部回路５０＿０〜５０＿７を単位とする回路）に番号を付して示している。この番号は、図４（ｂ）に示すＣｏｄｅｌｉｎｎｇ、すなわちＰＢ ユニットの位置を示す選択信号Ｓｅｌ＿Ａの番号である。
【０１３９】
すなわち、ページバッファ１０２ａは、通常データ用のＰＢ ユニットとして、２５６個のＰＢ ユニット０〜ＰＢ ユニット２５５を有し、ページバッファ１０２ｂは、通常データの置換用のＰＢ ユニットとして８個のＰＢ ユニット２５６〜ＰＢ ユニット２６３を有する。
また、ページバッファ１０２ｃは、パリティデータ用のＰＢ ユニットとして、３６個のＰＢ ユニット２６４〜ＰＢ ユニット２９９を有し、ページバッファ１０２ｄは、パリティデータの置換用のＰＢ ユニットとして８個のＰＢ ユニット３００〜ＰＢ ユニット３０７を有する。
【０１４０】
また、ここでは、図９（ｂ）に示す様に、ページバッファ１０２ａのＰＢ ユニット１に接続される８本のビット線、或いは当該８本のビット線に接続されるメモリセルトランジスタに不良があった場合に、ページバッファ１０２ｂのＰＢ ユニット２５６に置換される例を示している。また、図９（ｂ）では、ページバッファ１０２ｃのＰＢ ユニット２６５に接続される８本ビット線、或いは当該８本のビット線に接続されるメモリセルトランジスタに不良があった場合に、ページバッファ１０２ｄのＰＢ ユニット３００に置換される例を示している。
なお、図９（ｂ）において斜線を施して示しているページバッファ１０２ｂにおけるＰＢ ユニット２５７〜２６３は使用されないので、これらはカラム置換回路１０４の制御によりカラムコーディング回路１０３が選択することはなく、すなわち不活性状態となっている。また、同じく図９（ｂ）において斜線を施して示しているページバッファ１０２ｄにおけるＰＢ ユニット３０１〜３０７は使用されないので、これらはパリティカラム置換回路１０５の制御によりＥＣＣカラムコーディング回路１０８が選択することはなく、すなわち不活性状態となっている。
【０１４１】
また、ページバッファ１０２ａにおけるＰＢ ユニット１は、通常モードでは選択されず、置換先のＰＢ ユニット２５６が選択信号Ｓｅｌ＿Ａにより選択される。これにより、読み出しデータＤａｔａ＿Ｏｕｔ＿Ａ（ＰＢ ユニット１から読み出すはずのデータ）が、Ｄａｔａ Ｂｕｓ＿１、Ｄａｔａ Ｂｕｓ＿２、及びＤａｔａ Ｂｕｓ＿３（第２のデータバス）を介してＩ／Ｏパッド１０６から出力される。また、通常モードでは、書き込みデータがＩ／Ｏパッド１０６から入力されると、Ｄａｔａ Ｂｕｓ＿３、Ｄａｔａ Ｂｕｓ＿２、及びＤａｔａ Ｂｕｓ＿１を介してＰＢ ユニット２５５に、書き込みデータＤａｔａ＿Ａ＿Ｉｎ（ＰＢ ユニット１に書き込むはずのデータ）として入力される。このように、ユーザがカラムアドレスを供給して使用できるページバッファの領域はページバッファ１０２ａのＰＢ ユニット０〜２５５までである。つまり、ページバッファ１０２ｂのＰＢ ユニット２５６〜２６３、ページバッファ１０２ｃのＰＢ ユニット２６４〜２９９、及びページバッファ１０２ｄのＰＢ ユニット３００〜３０７は、ユーザがアクセスすることのできないページバッファの領域である。
【０１４２】
また、ページバッファ１０２ａにおけるＰＢ ユニット１は、ＥＣＣモードで選択信号Ｓｅｌ＿Ｂにより選択され、ＬレベルまたはＨレベルのいずれか一方に固定された読み出しデータＤａｔａ＿Ｏｕｔ＿Ｂが、ＥＣＣ Ｂｕｓ＿１、及びＥＣＣ Ｂｕｓ＿２（第１のデータバス）を介してＥＣＣ回路１０７まで転送され、ＥＣＣ処理に用いられる。また、置換先のＰＢ ユニット２５６も選択信号Ｓｅｌ＿Ｂにより選択され、読み出しデータＤａｔａ＿Ｏｕｔ＿Ｂが、ＥＣＣ Ｂｕｓ＿１、ＥＣＣ Ｂｕｓ＿２、及びＥＣＣ Ｂｕｓ＿３を介してＥＣＣ回路１０７まで転送され、ユーザから見たＰＢ ユニット１の読み出しデータとしてＥＣＣ処理に用いられる。また、ＥＣＣモードでは、ＥＣＣ処理が終了すると、ＰＢ ユニット１に書き戻すべきデータがＥＣＣ Ｂｕｓ＿３、ＥＣＣ Ｂｕｓ＿２、およびＥＣＣ Ｂｕｓ＿１（第１のデータバス）を介してＰＢ ユニット２５５に、書き込みデータＤａｔａ＿Ａ＿Ｉｎとして入力される。なお、これらのＥＣＣ処理後のデータのうちＰＢ ユニット０〜２５５のデータは、上述の様に、データバスＤａｔａ＿Ａを介して外部へ誤りのないデータ（Ｃｌｅａｒ Ｄａｔａ）として読み出される。
【０１４３】
また、ページバッファ１０２ａにおけるＰＢ ユニット２６５は、ＥＣＣモードで選択信号Ｓｅｌ＿Ｂにより選択され、ＬレベルまたはＨレベルのいずれか一方に固定された読み出しデータＤａｔａ＿Ｏｕｔ＿Ｂが、ＥＣＣ Ｂｕｓ＿１、及びＥＣＣ Ｂｕｓ＿２（データバスＤａｔａ＿Ｂ）を介してパリティカラム置換回路１０５まで転送される。また、置換先のＰＢ ユニット３００も選択信号Ｓｅｌ＿Ｂにより選択され、読み出しデータＤａｔａ＿Ｏｕｔ＿Ｂが、ＥＣＣ Ｂｕｓ＿１、及びＥＣＣ Ｂｕｓ＿２を介してパリティカラム置換回路１０５まで転送され、置換処理が行われる。こうして、ＰＢ ユニット３００の出力するデータが、ＰＢ ユニット２６５の読み出しデータとしてＥＣＣ Ｂｕｓ＿３を介してＥＣＣ回路１０７に転送され、ＥＣＣ処理に用いられる。また、ＥＣＣモードでは、ＥＣＣ処理が終了すると、ＰＢ ユニット２６５に書き戻すべきデータがＥＣＣ Ｂｕｓ＿３を介してパリティカラム置換回路１０５まで転送され、置換処理した後、ＥＣＣ Ｂｕｓ＿２、およびＥＣＣ Ｂｕｓ＿１（第１のデータバス）を介してＰＢ ユニット３００に、書き込みデータＤａｔａ＿Ｂ＿Ｉｎとして入力される。なお、これらのＥＣＣ処理後のデータは、上述の様に、データバスＤａｔａ＿Ａを介して外部へ読み出されることはない。
【０１４４】
図１０に示すフローチャートを参照して、メモリセルトランジスタへのデータ書き込み動作、メモリセルトランジスタからのデータ読み出し動作について説明する。なお、図１０（ａ）はデータ書込み動作（Ｄａｔａ Ｉｎ）、図１０(ｂ)は、データ読み出し動作（Ｄａｔａ Ｏｕｔ）を、それぞれ示している。また、図１０（ｃ）は、図２に示すランダマイザ、及びＥＣＣ回路１０７におけるデータランダマイズ（Ｄａｔａ Ｒａｎｄｏｍｉｚｅ）、及びエンコード（Ｅｎｃｏｄｅ）処理動作を示している。また、図１０(ｄ)は、ランダマイザ、及びＥＣＣ回路１０７におけるデコード（Ｄｅｃｏｄｅ）、及びデータデランダマイズ（Ｄａｔａ Ｄｅ−Ｒａｎｄｏｍｉｚｅ）処理動作を示している。ここでは、救済置換処理を中心に、ページバッファ１０２のＥＣＣモードにおける動作の詳細について説明する。
【０１４５】
[データ書き込み動作]
ユーザがＩ／Ｏパッド１０６を介してＮＡＮＤ型フラッシュメモリ１０に、所定のコマンド（ライトコマンド）を入力し、アドレス（ここでは、ＰＢ ユニット１を選択するカラムアドレス）入力をし、引き続いて、書き込みデータを入力する（ステップＳＴ１）。
次に、通常データの置換が実行される（ステップＳＴ２）。具体的には、カラム置換回路１０４の制御によりカラムコーディング回路１０３は、ＰＢ ユニット１を選択せず、代わりにＰＢ ユニット２５６を選択し、ＰＢ ユニット２５６には外部からのデータが格納される。
【０１４６】
次に、ユーザが所定時間経過後に、プログラム実行コマンド（Ｐｒｏｇｒａｍ Ｅｘｅｃｕｔｕｉｏｎ Ｃｏｍｍａｎｄ）を与える（Ｉｎｖｏｋｅ）と、通常モード（第２の動作モード）であれば、ステップＳＴ６に進みプログラム処理（ページバッファからビット線を介してメモリセルトランジスタへデータを与える）を実行する。ＥＣＣモード（第１の動作モード）であれば、ステップＳＴ５に進みＥＣＣのエンコード処理を実行する。（ステップＳＴ５）。具体的には次の処理を実行する。
【０１４７】
ここで、図９（ｃ）は、ＥＣＣ処理でのコード構成を示している。ＥＣＣとしてのＤａｔａ部は、ＰＢ ユニット０〜ＰＢ ユニット２６３に格納されたデータであり、パリティ部（ＥＣＣ Ｐａｒｉｔｙ）は、ＰＢ ユニット２６４〜ＰＢ ユニット２９９に格納されたデータからなる。なお、ＰＢ ユニット１に書き込むべきデータは、ＰＢ ユニット２５６に書き込まれて格納され、ＰＢ ユニット１以外のＰＢ ユニット０、ＰＢ ユニット２〜２５５には、それぞれに接続されるビット線を介してメモリセルトランジスタが記憶するデータが読み出されて格納されている。
ＰＢ ユニット０〜ＰＢ ユニット２６３に格納されたデータが、ＥＣＣ Ｂｕｓ＿１、ＥＣＣ Ｂｕｓ＿２、及びＥＣＣ Ｂｕｓ＿３（第１のデータバス）を介して、ランダマイザ、及びＥＣＣ回路１０７に入力（Ｄａｔａ Ｌｏａｄ）される（ステップＳＴ３１）。
【０１４８】
なお、このとき、上述したように、ランダマイザ１０７ｂには、ＰＢ ユニット１からは固定データ（図５に示すＰＢ制御回路６０であればＬデータ、図６に示すＰＢ制御回路６０であればＨデータ）が入力される。また、ランダマイザ１０７ｂには、ＰＢ ユニット２５６からは、ＰＢ ユニット１に書き込むべきだったが実際はＰＢ ユニット２５６に書き込まれたデータが入力される。
ランダマイザ１０７ｂは、ランダマイズ（Ｄａｔａ Ｒａｎｄｏｍｉｚｅ）処理を実行し（ステップＳＴ３２ａ）、ランダマイズ処理後のデータをＥＣＣ回路１０７ａに対して出力する。
ＥＣＣ回路１０７ａは、入力されるランダマイズ処理後のデータに対してエンコード（Ｅｎｃｏｄｅ）処理を実行し、パリティデータを生成（Ｐａｒｉｔｙ Ｇｅｎｅｒａｔｉｏｎ）する（ステップＳＴ３２ｂ）。
【０１４９】
続いて、ランダマイザ、及びＥＣＣ回路１０７は、ＰＢ ユニット０〜３０７にＥＣＣ処理後のデータを書き戻す（Ｄａｔａ Ｓｔｏｒｅ）処理を実行する（ステップＳＴ３３）。ここで、図２に示すランダマイザ１０７ｂがＰＢ ユニット０〜２６３に、パリティ生成回路４１がＰＢ ユニット２６４〜３０７に、それぞれデータを書き戻す。
なお、このとき、ＥＣＣカラムコーディング回路１０８は、パリティカラム置換回路１０５の制御により、ＰＢ ユニット２６５を非選択とし、ＰＢ ユニット３００を選択する。これにより、ＰＢ ユニット２６５に書き戻すべきパリティデータがＰＢ ユニット３００に書き戻される。また、ＰＢ ユニット０〜２６３には、ステップＳＴ３２ａにおいてランダマイズ処理をした後のデータが書き込まれ、ＰＢ ユニット２６４〜３０７にはパリティデータが書き込まれる。このように、図９（ｂ）において斜線を施して示している不活性状態ページバッファには、図５または図６に示す回路により、書き込みがされないようになっている。
【０１５０】
続いて、各ＰＢユニットにおいて、図７に示すラッチ部にメモリセルに書き込むべきデータ（Ｄａｔａ＿ｉ）がラッチされたので、メモリセルトランジスタへのデータ書込み（Ｐｒｏｇｒａｍ ｔｏ Ｍｅｍｏｒｙ Ｃｅｌｌ）処理が開始される（ステップＳＴ６）。
各ＰＢ ユニットでは、書込みが成功するまで、ラッチ部からメモリセルへのデータ印加が繰り返される（ステップＳＴ７）。書き込みが成功すれば、繰り返し処理は終了し（ステップＳＴ７−Ｙｅｓ）、書き込みが成功しなければ、書込みが成功する、まで、ステップＳＴ６に戻ってプログラム処理が実行される（ステップＳＴ７−Ｎｏ）。
【０１５１】
[データ読み出し動作]
ユーザがＩ／Ｏパッド１０６を介して所定のコマンド（リードコマンド）を入力し、アドレス（ここでは、ＰＢ ユニット１を選択するカラムアドレス）を入力する（ステップＳＴ１１）。
次に、各ＰＢ ユニットにおいて、図６に示すビット内部回路の接続点Ｎ１に、メモリセルトランジスタからのデータ（Ｄａｔａ＿ｉ）がセンシングされラッチ部へ読み出される（ステップＳＴ１２）。
また、ビット内部回路のラッチ部にＤａｔａ＿ｉがラッチされる（ステップＳＴ１３）。
その後、通常モード（第２の動作モード）であれば、ステップＳＴ１５に進みセンシング処理が終了する。ＥＣＣモード（第１の動作モード）では、ステップＳＴ１４に進み、ＥＣＣのデコード（Ｄｅｃｏｄｅ）処理を実行する。（ステップＳＴ１４）。具体的には次の処理を実行する。
【０１５２】
ＰＢ ユニット０〜ＰＢ ユニット２９９に格納されたデータが、ＥＣＣ Ｂｕｓ＿１、ＥＣＣ Ｂｕｓ＿２、及びＥＣＣ Ｂｕｓ＿３（第１のデータバス）を介して、ランダマイザ、及びＥＣＣ回路１０７に入力（Ｄａｔａ Ｌｏａｄ）される（ステップＳＴ４１）。
なお、このとき、上述したように、図２に示すＥＣＣ回路１０７ａのシンドローム算出回路３１には、ＰＢ ユニット１からは固定データ（図５に示すＰＢ制御回路６０であればＬデータ、図６に示すＰＢ制御回路６０であればＨデータ）が入力される。また、ＥＣＣ回路１０７ａのシンドローム算出回路３１には、ＰＢ ユニット２５６からは、ＰＢ ユニット１に書き込むべきだったが実際はＰＢ ユニット２５６に書き込まれたデータが入力される。また、パリティカラム置換回路１０５には、ＰＢ ユニット３００からは、ＰＢ ユニット２６５に書き込むべきだったが実際はＰＢ ユニット３００に書き込まれたパリティデータがＥＣＣ Ｂｕｓ＿１、及びＥＣＣ Ｂｕｓ＿２を介して入力され、置換処理した後、ＥＣＣ Ｂｕｓ＿３を介してＥＣＣ回路１０７ａのシンドローム算出回路３１に入力する。
ランダマイザ、及びＥＣＣ回路１０７は、デコード（Ｄｅｃｏｄｅ）処理を実行し、パリティデータに基づいて、ＰＢ ユニット０〜ＰＢ ユニット２６３に格納されたデータの誤りを訂正（Ｅｒｒｏｒ Ｃｏｒｒｅｃｔｉｏｎ）する（ステップＳＴ４２ａ）。
ランダマイザ１０７ｂは、ＥＣＣ処理による訂正後のデータを、デランダマイズ（Ｄｅ−Ｒａｎｄｏｍｉｚｅ）処理を実行する（ステップＳＴ４２ｂ）。
【０１５３】
続いて、ランダマイザ、及びＥＣＣ回路１０７は、ＰＢ ユニット０〜３０７にデランダマイズ処理後のデータを書き戻す（Ｄａｔａ Ｓｔｏｒｅ）処理を実行する（ステップＳＴ４３）。ここで、図２に示すランダマイザ１０７ｂがＰＢ ユニット０〜３０７にデータを書き戻す。
ＰＢ ユニット０〜２６３には、ＥＣＣ処理後のデータ（誤り訂正されたデータ）がそのまま書き戻される。ＰＢ ユニット２６４〜３０７のパリティデータ部についてはユーザーが使用しないため、ＥＣＣ処理後のデータ（誤り訂正されたデータ）を書き戻す必要はないが、書き戻してもよい。パリティカラム置換回路１０５の制御により、ＰＢ ユニット２６５を非選択とし、ＰＢ ユニット３００を選択する。これにより、ＰＢ ユニット２６５に書き戻すべき誤り訂正後のパリティデータをＰＢ ユニット３００に書き戻す。このように、図９（ｂ）において斜線を施して示している不活性状態ページバッファには図５または図６に示す回路により、書き込みがされないようになっている。
【０１５４】
続いて、各ＰＢユニットにおいて、図７に示すラッチ部にメモリセルに書き込むべきデータ（Ｄａｔａ＿ｉ）がラッチされたので、センシング（Ｓｅｎｓｉｎｇ）処理が終了すし、読み出し可能な状態へ移行する（ステップＳＴ１５）。
ＰＢ ユニット０〜ＰＢ ユニット２５５には、選択信号Ｓｅｌ＿Ａが入力され、格納されたデータが、Ｄａｔａ Ｂｕｓ＿１、Ｄａｔａ Ｂｕｓ＿２、及びＤａｔａ Ｂｕｓ＿３を介して、読み出される。このとき、カラムコーディング回路１０３は、カラム置換回路１０４の制御により、ＰＢ ユニット１を非選択とし、ＰＢ ユニット２５６を選択する。ＰＢ ユニット２５６は、ＰＢ ユニット１に書き込むべきだったが実際はＰＢ ユニット２５６に書き込まれたデータを出力する。つまり、不良を有するカラムの置換（Ｄｅｆｅｃｔ Ｃｏｌｕｍｎ Ｒｅｐａｉｒ）が実行される（ステップＳＴ１６）。
このようにして、ユーザがＰＢ ユニット１を介してメモリセルトランジスタへ書き込んだ書き込みデータが、不良救済されて他のメモリセルトランジスタに書き込まれ、更に書き込まれたデータが誤り訂正されて、Ｉ／Ｏパッド１０６から出力される（ステップＳＴ１７）。
【０１５５】
以上説明したように、本発明のＮＡＮＤ型フラッシュメモリ１０（半導体記憶装置）は、ＥＣＣ Ｂｕｓ＿１〜３（第１のデータバス）と、第１のデータバスと異なる本数から構成され、第１のデータバスとは独立して設けられるＤａｔａ Ｂｕｓ＿１〜３（第２のデータバス）と、ページバッファ１０２（データ転送部）と、を備える。ページバッファ１０２は、ＥＣＣモード（第１の動作モード）によりメモリセルとの間でデータを転送する場合、複数のビット線のうち第１のデータバスと同じ本数のビット線と、第１のデータバスとを接続してデータを転送する。一方、ページバッファ１０２は、通常モード（第２の動作モード）によりメモリセルとの間でデータを転送する場合、複数のビット線のうち第２のデータバスと同じ本数のビット線と、第２のデータバスとを接続してデータを転送する
また、データ転送部は、通常メモリセルに接続されるビット線の電位を増幅し、増幅結果をラッチするページバッファ１０２ａ（第１のページバッファ）と、第１のページバッファに接続される通常メモリセルまたはビット線に不良が有る場合に、通常メモリセル、及びビット線とともに置換されるページバッファ１０２ｂ（第３のページバッファ）と、を含んで構成される。また、データ転送部は、パリティメモリセルに接続されるビット線の電位を増幅し、増幅結果をラッチするページバッファ１０２ｃ（第２のページバッファ）を含んで構成される。また、第２のデータバスは、第１のページバッファ、及び第３のページバッファと接続され、第１のデータバスは、第１のページバッファ、第３のページバッファ、及び第２のページバッファと接続される。
【０１５６】
また、半導体記憶装置は、第１のデータバスに接続され、第２のページバッファに接続されるパリティメモリセルまたはビット線に不良が有る場合に、パリティメモリセル、及びビット線とともに置換されるページバッファ１０２ｄ（第４のページバッファ）を備える。また、半導体記憶装置は、第２のデータバスに接続されるとともに、第１のページバッファのうちメモリセルまたはビット線に不良が有るページバッファを第３のページバッファに置換するカラム置換回路１０４（第１の救済置換回路）を備える。また、半導体記憶装置は、第１のデータバスに接続されるとともに、第２のページバッファのうちメモリセルまたはビット線に不良が有るページバッファを第４のページバッファに置換するパリティカラム置換回路１０５（第２の救済置換回路）を備える。また、半導体記憶装置は、第１のデータバスに接続されるとともに、第２のページバッファ、及び前記第４のページバッファの出力データに基づき、前記第１のページバッファ、及び第３のページバッファの出力データの誤りを訂正するＥＣＣ回路１０７ａ（ＥＣＣ回路）を備える。
【０１５７】
また、半導体記憶装置は、第１のページバッファのうちメモリセルまたはビット線に不良が有るページバッファの出力を固定されたデータとするＰＢ制御回路６０（ページバッファ制御回路）を有する。
【０１５８】
また、ページバッファ制御回路は、メモリセルまたはビット線に不良が有る場合、第１のデータバスからの書き込みを許可しない。
【０１５９】
また、第１の動作モードでは、第１のページバッファと、第２の動作モードでの救済置換を前提として存在する第３のページバッファとのうち、メモリセルまたはビット線に不良が有るページバッファについては救済置換を行わずに、ＥＣＣ回路の入力データとして取り扱う。
【０１６０】
また、ビット線を、ｎ（ｎはｐとｑの公倍数であり、ｐ、及びｑはｐ＞ｑである自然数）本のビット線とすると、第１のデータバスはｐ本であり、第２のデータバスはｑ本である。また、データ転送部は、第１の動作モードでは、（ｎ／ｐ）本のアドレス信号が入力されると、ｐ本のビット線とｐ本の第１のデータバスとの接続を行い、一方、第２の動作モードでは、（ｎ／ｑ）本のアドレス信号が入力されると、ｑ本ビット線と第２のデータバスとの接続を行う。なお、上記構成は、論理的空間においての概念を前提としており、物理的ビット線数ｎがｐとｑの公倍数でなくてもよく、余りをダミービット線として処理するなどで対応できる。
【０１６１】
このように、本発明によれば、ＥＣＣ回路１０７ａへのＥＣＣ Ｂｕｓ（第１のデータバス）のバス幅を広くしやすいことから（上記説明では、ＥＣＣ回路へのバス幅は３００ビット）、また、Ｍａｉｎ Ｄａｔａ部の置換回路（カラム置換回路１０４）がこのＥＣＣ Ｂｕｓの途中には不要となるため、ＥＣＣ処理でのデータ転送を高速化することができる。また、Ｍａｉｎ Ｄａｔａ部の置換回路は従来の様に増大しないことから、チップサイズの増大を抑制でき、従来に比べて製造の際のコストを低減できる効果がある。
なお、上記実施形態では、Ｍａｉｎ Ｄａｔａ部の置換回路と比較して、規模が小さいＰａｒｉｔｙ部に専用のＰＣＲ置換システム（パリティカラム置換回路１０５）を用いて説明したが、この構成は必須ではない。もっとも、パリティカラム置換回路１０５は、Ｐａｒｉｔｙ部の不良を救済する方法として有用である。パリティカラム置換回路１０５を用いない場合には、カラム１ビットあたり５０％（０か１か）の確率で１エラー分の訂正ができなくなってしまい、ＥＣＣ処理における訂正能力を損なってしまう。これに対して、上記説明の様に、パリティカラム置換回路１０５を用いてＰａｒｉｔｙ部の不良を救済すると、ＥＣＣ訂正能力を向上できる。
【０１６２】
また、本発明の半導体記憶装置は、第１の動作モード、及び前記第２の動作モードのいずれか一方を選択して実行することが電気的に切り替え可能となるように構成されている。例えば、不図示の不揮発性記憶領域に設けられた動作モード切り替えフラグに、外部、たとえばＩ／Ｏパッド１０６から０または１いずれかの切り替え信号を書き込む構成とする。そして、この切り替え信号が１であれば、ＮＡＮＤ型フラッシュメモリ１０は、製品としてＥＭ ＮＡＮＤとされ、上述したＥＣＣモード（第１の動作モード）で動作する。一方、切り替え信号が０であれば、ＮＡＮＤ型フラッシュメモリ１０は、製品としてＰｕｒｅ ＮＡＮＤとされ、通常モード（第２の動作モード）で動作する。なお、この切り替えフラグは、公知の技術により、例えばユーザに公開されないテストモードを用いて切り替え信号の書き込みが可能となっている。製造者は、ＮＡＮＤ型フラッシュメモリ１０の製造後、このテストモードを用いて、ＮＡＮＤ型フラッシュメモリ１０をＥＭ ＮＡＮＤとＰｕｒｅ ＮＡＮＤのいずれか一方に作り変えることができる。そのため、製品出荷前の段階で、第２の動作モードを備えたＰｕｒｅ ＮＡＮＤと、第１の動作モードを備えたＥＭ ＮＡＮＤとを、製品出荷前の段階で作り分けて、出荷前のテストを行ったり、それぞれの受注に合わせた製品の在庫管理を行なうことができ、生産性の向上を図ることができる。
【０１６３】
以下では、さらに、チップサイズの増大の抑制、テストの簡易化など、生産性の向上を図った半導体記憶装置の実施例について詳述する。
［パリティ領域の開放］
図１１は、ページバッファ１０２を構成する各ページバッファの他の一例を説明するための図である。ページバッファ１０２は、図１と同じくページバッファ１０２ａ〜１０２ｄから構成される。ここで、図１１（ａ）では、ページバッファ１０２におけるＰｕｒｅ ＮＡＮＤ（第２の動作モード）でのカラムアドレスの割り付け、図１１（ｂ）は、ページバッファ１０２におけるＥＭ ＮＡＮＤ（第１の動作モード）でのカラムアドレスの割り付け、をそれぞれ示している。以下、詳細な構成について説明する。
【０１６４】
図１１（ｂ）では、ＥＭ ＮＡＮＤでのページバッファ１０２の構成を示している。つまり、図１１（ｂ）では、ページバッファ１０２を構成するＭａｉｎ Ｄａｔａ（通常データ）、及びＳｐａｒｅ Ｄａｔａ（スペアデータ）用のページバッファ１０２ａ、Ｃｏｌｕｍｎ Ｒｅｐａｉｒ ｆｏｒ Ｍａｉｎ Ｄａｔａ（通常データ、及びスペアデータの置換データ）用のページバッファ１０２ｂを模式的に示している。また、図１１（ｂ）では、ＥＣＣ Ｐａｒｉｔｙ（パリティデータ）用のページバッファ１０２ｃ、及びＰａｒｉｔｙ’ｓ Ｃｏｌｕｍｎ Ｒｅｐａｉｒ（パリティデータの置換データ）用のページバッファ１０２ｄを模式的に示している。なお、ＥＭ ＮＡＮＤでのスペアデータとは、例えば、外部での低次のＥＣＣ処理で使用するＰａｒｉｔｙ領域や、ＮＡＮＤ型フラッシュメモリ１０が行なったプログラム処理の総実行回数や、ＥＣＣ処理により訂正されたビット数などのデータである。これらのデータは、ＮＡＮＤ型フラッシュメモリ１０のユーザにとって、ＮＡＮＤ型フラッシュメモリ１０の製品寿命を知ることができる有用な情報となる。すなわち、ユーザは、ページバッファ１０２ａを含んだメモリアレイ１０１の領域を、通常データ、及びスペアデータ用に使用することができる。
【０１６５】
一方、Ｐｕｒｅ ＮＡＮＤでは、図１１（ａ）に示す様に、ページバッファ１０２ｃを含んだメモリアレイ１０１の領域がスペアデータ用に開放され、ページバッファ１０２ａを含んだメモリアレイ１０１の領域とともに、上述した有用な情報以外に、更に外部のコントローラがＥＣＣ処理を行う際のパリティデータを記憶する領域として使用される。つまり、ユーザは、ページバッファ１０２ａ、及びページバッファ１０２ｃを含んだメモリアレイ１０１の領域を、通常データ、及びスペアデータ用に使用することができる。
【０１６６】
また、図１１（ａ）、及び図１１（ｂ）では、これらページバッファ１０２ａ〜１０２ｄを構成するＰＢ ユニット（図５、及び図６に示すＰＢ制御回路６０、及びビット内部回路５０＿０〜５０＿７を単位とする回路）の８個分に番号を付して示している。
この番号は、図４（ｂ）に示すＣｏｄｅｌｉｎｎｇ、すなわちＰＢ ユニットの位置を示す選択信号Ｓｅｌ＿Ａまたは選択信号Ｓｅｌ＿Ｂの番号である。
【０１６７】
図１１（ｂ）に示す様に、ＥＭ ＮＡＮＤとしてのＮＡＮＤ型フラッシュメモリ１０では、ページバッファ１０２ａは、通常データ、及びスペアデータ用の８個分のＰＢ ユニット（以下、ＰＢ ８ＩＯユニットとする）として、２１１２個のＰＢ ８ＩＯユニットＡ０〜ＰＢ ８ＩＯユニットＡ２１１１を有する。また、ページバッファ１０２ｂは、通常データの置換用のＰＢ ８ＩＯユニットとして１６個のＰＢ ８ＩＯユニットＣＲ０〜ＰＢ ８ＩＯユニットＣＲ１５を有する。また、ページバッファ１０２ｃは、パリティデータ用のＰＢ ８ＩＯユニットとして、４４８個のＰＢ ８ＩＯユニットＰ０〜ＰＢ ８ＩＯユニットＰ４４７を有し、ページバッファ１０２ｄは、パリティデータの置換用のＰＢ ８ＩＯユニットとして１６個のＰＢ ８ＩＯユニットＰＣＲ０〜ＰＢ ８ＩＯユニットＰＣＲ１５を有する。
【０１６８】
ここで、図１１（ｂ）に示すページバッファ１０２ｃは、図１１（ａ）に示すＰｕｒｅ ＮＡＮＤでは、スペアデータ用のＰＢ ８ＩＯユニットとして、４４８個のＰＢ ８ＩＯユニットＡ２０１２〜ＰＢ ８ＩＯユニットＡ２５５９として用いられる。
つまり、Ｐｕｒｅ ＮＡＮＤでは、カラムアドレスＡ０〜Ａ２５５９まで（２０４８＋５１２）のカラムアドレスを有する。この１カラムアドレスのＤａｔａ数（ワード数）は上述の通り、例えば１Ｂｙｔｅ（バイト）である。Ｐｕｒｅ ＮＡＮＤにおいて、純粋なＭａｉｎ Ｄａｔａ部はＡ０〜Ａ２０４７、そして外部のＥＣＣのＰａｒｉｔｙ領域、その他情報領域が、上述のＳｐａｒｅ（スペア）領域であり、この領域をアクセスするには、カラムアドレスＡ２０４８〜Ａ２５５９を使用する。
【０１６９】
すなわち、図１１（ａ）に示すＰｕｒｅ ＮＡＮＤでは、ユーザが外部からＩ／Ｏパッド１０６を介して、選択信号Ｓｅｌ＿Ａに対応するカラムアドレス（図１１（ａ）に示す番号Ａ０〜Ａ２５５９）を与える。これにより、カラムコーディング回路１０３が選択信号Ｓｅｌ＿Ａをページバッファ１０２ａ、及びページバッファ１０２ｃに対して出力し、Ｉ／Ｏパッド１０６を介してデータのアクセスが可能になる。なお、以下、本実施形態でのデータのアクセスとは、ページバッファにおけるＰＢ制御回路６０に対してカラムコーディング回路１０３から選択信号Ｓｅｌ＿Ａを入力し、Ｄａｔａ Ｂｕｓ（第２のデータバス）とＰＢ制御回路６０に接続されるビット線を介して、当該ビット線に接続されるメモリセルトランジスタに対してデータを書き込む動作、メモリセルトランジスタからデータを読み出す動作を言う。
【０１７０】
一方、ＥＭ ＮＡＮＤでは、Ｄａｔａ部はＰｕｒｅ ＮＡＮＤと同じく。カラムアドレスＡ０〜Ａ２０４７が割り当てられるが、Ｓｐａｒｅ部についてはＥＣＣ回路（ＥＣＣ回路１０７ａ）をＣｈｉｐに内蔵しているため、外部でのＥＣＣ処理は不要となる、或いは低次のＥＣＣ処理でＰａｒｉｔｙ領域をそれほど必要としない。そのため、その他のスペア領域としては、図１１（ｂ）に示すように、６４Ｂのみ割り当てるので、Ｐｕｒｅ ＮＡＮＤにおいてカラムアドレスＡ２１１２〜Ａ２５５９が割り当てられる領域は、内部ＥＣＣのＰａｒｉｔｙ用に割り当てられる。なお、物理的には、Ｐｕｒｅ ＮＡＮＤにおいてカラムアドレスＡ２１１２〜Ａ２５５９が割り当てられる領域と、ＥＭ ＮＡＮＤにおいてカラムアドレスＰ０〜Ｐ４４７が割り当てられる領域は、同じメモリセルを有するものである。つまり、図１１（ｂ）に示すＥＭ ＮＡＮＤにおいて、カラムアドレスがＡで始まる領域は、通常外部からアクセス（Ａｃｃｅｓｓ）可能な領域である。一方、カラムアドレスがＰで始まる領域は内蔵ＥＣＣのＰａｒｉｔｙ用領域、カラムアドレスがＣＲで始まる領域はＭａｉｎおよびＳｐａｒｅのＤａｔａ用のＣｏｌｕｍｎ Ｒｅｐａｉｒ領域、カラムアドレスがＰＣＲで始まる領域は、内蔵ＥＣＣのＰａｒｉｔｙ用のＣｏｌｕｍｎ Ｒｅｐａｉｒ領域である。これらの領域は、ＥＭ ＮＡＮＤにおいて外部からアクセス不可能な領域である。
【０１７１】
つまり、図１１（ｂ）に示すＥＭ ＮＡＮＤでは、ユーザが外部からＩ／Ｏパッド１０６を介して、選択信号Ｓｅｌ＿Ａに対応するカラムアドレス（図１１（ｂ）に示す番号Ａ０〜Ａ２１１１）を与える。これにより、カラムコーディング回路１０８が選択信号Ｓｅｌ＿Ａをページバッファ１０２ａに対して、Ｉ／Ｏパッド１０６を介してデータのアクセスが可能になる。
【０１７２】
ただし、ＥＭ ＮＡＮＤでのアクセスの際、データ書込み動作では、ページバッファ１０２ａのＰＢ制御回路６０にメモリセルトランジスタから読み出されたデータのうち、一部のデータが外部からのデータにより書き直される。そして、ＥＣＣカラムコーディング回路１０８が選択信号Ｓｅｌ＿Ｂをページバッファ１０２ａに対して出力し、ページバッファ１０２ａのデータが、ＥＣＣ Ｂｕｓ（第１のデータバス）を介して、ランダマイザ、及びＥＣＣ回路１０７に入力され、ランダマイズ、及びＥＣＣ処理される。そして、ＥＣＣカラムコーディング回路１０８が選択信号Ｓｅｌ＿Ｂをページバッファ１０２ｃに対して出力し、生成されたパリティデータがページバッファ１０２ｃに書き込まれる。その後、メモリセルトランジスタへのプログラムが実行される。
【０１７３】
一方、ＥＭ ＮＡＮＤでのアクセスの際、データ読み出し動作では、ＥＣＣカラムコーディング回路１０８が選択信号Ｓｅｌ＿Ｂをページバッファ１０２ａ、及びページバッファ１０２ｃに対して出力する。これにより、ページバッファ１０２ａ、及びページバッファ１０２ｃのＰＢ制御回路６０にメモリセルトランジスタから読み出されたデータが、ＥＣＣ Ｂｕｓ（第１のデータバス）を介して、ランダマイザ、及びＥＣＣ回路１０７に入力され、ＥＣＣ処理、及びデランダマイズされる。そして、ＥＣＣカラムコーディング回路１０８が選択信号Ｓｅｌ＿Ｂをページバッファ１０２ａに対して出力し、デランダマイズされたデータ（復元後のデータ）がページバッファ１０２ａに書き込まれる。その後、カラムコーディング回路１０３が選択信号Ｓｅｌ＿Ａをページバッファ１０２ａに対して出力し、ページバッファ１０２ａのデータが、Ｄａｔａ Ｂｕｓ（第２のデータバス）、及びＩ／Ｏパッド１０６を介して、外部に出力される。
【０１７４】
このＰｕｒｅ ＮＡＮＤとＥＭ ＮＡＮＤとの切り替えは、例えば、図１において不図示の制御回路において、ＮＡＮＤ型フラッシュメモリ１０の製品としての出荷前に製造者により実行される。例えば、製造者は、ユーザには公開されていないテストモードにより、外部からＩ／Ｏパッド１０６を介して、制御回路の不揮発性記憶部（フラグ）に０または１のデータを書き込む。制御回路は、このフラグが例えば０を記憶する場合、ＮＡＮＤ型フラッシュメモリ１０がＰｕｒｅ ＮＡＮＤとして動作するように各回路を制御する。一方、制御回路は、このフラグが例えば１を記憶する場合、ＮＡＮＤ型フラッシュメモリ１０がＥＭ ＮＡＮＤとして動作するように各回路を制御する。
つまり、ＮＡＮＤ型フラッシュメモリ１０では、製品としてＰｕｒｅ ＮＡＮＤに製造された場合は、出荷後のユーザによるデータのアクセスの際、ＥＭ ＮＡＮＤに製造されたＮＡＮＤ型フラッシュメモリ１０ではアクセスされないページバッファ１０２ｃに対してアクセス可能となる。
【０１７５】
このように、Ｐｕｒｅ ＮＡＮＤにおけるＳｐａｒｅ領域を内蔵ＥＣＣ用のＰａｒｉｔｙ部に置き換えることにより、カラムアドレスＡ０〜Ａ２１１１まではＰｕｒｅ ＮＡＮＤとＥＭ ＮＡＮＤとで共通とすることができ、切替えはこのカラムアドレス以降のカラムアドレス、すなわちカラムアドレスＡ２１１２以降の部分に限定できる特徴をもつ。
つまり、Ｏｎ Ｃｈｉｐ（オンチップ）ＥＣＣ用のＰａｒｉｔｙの領域を開放し、ユーザのＳｐａｒｅ領域に割り当てることができる。例えばＰｕｒｅ ＮＡＮＤでは外部ＥＣＣ用にＭａｉｎ領域に対して、例えば約２０%程度（この値はプロセス世代などにより変化）のＳｐａｒｅ領域を用意する必要があるが、ＥＭ ＮＡＮＤのＰａｒｉｔｙ部を使用できるので、そのオーバヘッド（Ｏｖｅｒｈｅａｄ）は殆どみえなくなる。このように、本発明によれば、Ｓｐａｒｅ領域に対応する分のチップ面積の増大を抑制できるので、チップの製造コストの増大を抑制でき、生産性に向上を行なうことができる。
【０１７６】
［マスク制御機能］
ところで、図１１（ｂ）に示すＥＭ ＮＡＮＤにおいて、ユーザが使用可能なデータ領域（すなわちカラムアドレスＡ０〜Ａ２１１１）を越えてアクセスした場合、内蔵ＥＣＣのパリティデータがアクセスされ、外部のシステムからみるとランダムなデータが出力されることになる。これは外部のシステムに混乱を与える可能性があるため、ユーザがカラムアドレスＡ０〜Ａ２１１１で示す使用可能なデータ領域を越えて、カラムアドレスＰ０〜Ｐ４４７で示す領域にアクセスした場合、次に説明するマスク（ＭＡＳＫ）制御を行う。
図１２は、ＮＡＮＤ型フラッシュメモリのブロック構成の他の一例を示す図である。図１３は、ＮＡＮＤ型フラッシュメモリ１０におけるマスク制御を説明するための図である。
なお、図１２に示すＮＡＮＤ型フラッシュメモリ１０において、図１に示すＮＡＮＤ型フラッシュメモリ１０と同一の回路には同一の符号を付し、その説明を省略する。
【０１７７】
図１２に示すＮＡＮＤ型フラッシュメモリ１０は、アドレス制御回路８５とマスク回路８６とを有している。アドレス制御回路８５は、図１においては不図示の回路であるが、基本的な機能は、従来と同じく（例えば図２１、図２４に示す様に）、ＩＯパッド１０６にユーザが入力するカラムアドレスを、カラムコーディング回路８３に対して供給する回路である。カラムコーディング回路８３は、アドレス制御回路８５からカラムアドレスが供給されると、ページバッファ１０２におけるページバッファユニット（ここでは図１１にＡ０〜Ａ２５５９で示されるページバッファユニット）を入力されるカラムアドレスに対応して選択する。これにより、ページバッファ１０２におけるＰＢ制御回路６０とＤａｔａ Ｂｕｓとが接続され、メモリセルトランジスタからのデータがＩＯパッド１０６へ出力され、或いはメモリセルトランジスタへの書き込みデータがＩＯパッド１０６から入力される。
図１２に示すアドレス制御回路８５は、以上の基本的な機能に加えて、公知の比較回路を有しており、カラムアドレスがページバッファ１０２ａの最終アドレスを超えた、すなわちＡ２１１２となると、例えばＨレベルの最終アドレス信号Ｆｉｎａｌ Ａｄｄｒｅｓｓをマスク回路８６に対して出力する。
【０１７８】
マスク回路８６は、図１３（ａ）に示す構成を有している。すなわち、図１３（ａ）に示す様に、マスク回路８６は、インバータ回路１３１、及びアンド回路１３２を有している。
インバータ回路１３１は、入力がアドレス制御回路８５における比較回路に接続されて最終アドレス信号Ｆｉｎａｌ Ａｄｄｒｅｓｓが入力され、これを論理反転してアンド回路１３２の第２入力端子に対して出力する。アンド回路１３２は、第１入力端子がデータバスＤａｔａ Ｂｕｓ＿３を介してカラム置換回路１０４から入力されるＥＣＣ処理後の誤りのないデータＣｌｅａｒ Ｄａｔａ［７：０］が入力される。また、アンド回路１３２の出力端子は、図１２に示すように、Ｄａｔａ Ｂｕｓ＿３を介してＩ／Ｏパッド１０６に接続される。
以上の構成により、アドレス制御回路８５は、カラムアドレスが決められた最終アドレス（この例ではＡ２１１１）に達すると、一致したか否かを比較回路において判定し、最終アドレス信号Ｆｉｎａｌ Ａｄｄｒｅｓｓをマスク回路８６へ出力する。これにより、マスク回路８６は、ページバッファユニットを示すカラムアドレスが最終アドレス以降のアドレスになった場合（この例では、ページバッファ１０２ｃのうち、最初のページバッファユニットを示すＡ２１１２以降のアドレスになった場合）、ページバッファ１０２ｃのデータをマスクして固定データ０（ＩＯ［７：０］＝００ｈ）を出力することができる。
【０１７９】
図１３（ｂ）、図１３（ｃ）は、それぞれマスク制御を行なわない場合と行う場合における動作タイミングチャートである。
図１３（ｂ）に示す様に、図１２に示すＮＡＮＤ型フラッシュメモリ１０において、マスク制御を行なわずにバーストリード（Ｂｕｒｓｔ Ｒｅａｄ）した場合、図３のようにカラムアドレスに対する外部トグル（Ｔｏｇｇｌｅ）により内部のカラムアドレスがインクリメント（Ｉｎｃｒｅｍｅｎｔ）され、Ｉ／Ｏパッド１０６への出力Ｄａｔａ（上記ＩＯ［８：０］）がトグルの立ち上がりエッジ（Ｒｉｓｅ Ｅｄｇｅ）で出力される動作となる。なお、バーストリードとは，ローアドレスを供給すると共にアクティブコマンドによりワード線を駆動した後に，カラムアドレスを供給して所定数のリードデータを連続して出力する動作モードである。
【０１８０】
ここで、ＥＭ ＮＡＮＤ（第１の動作モード）ではカラムアドレスＡ２１１２以降は内蔵ＥＣＣのパリティデータ（Ｐａｒｉｔｙ Ｄａｔａ）であるので、外部システムからみるとランダムなＤａｔａが出てくることになり、これは外部システムに混乱を与える可能性がある。
そこで、図１３（ｃ）に示す様に、カラムアドレスが内蔵ＥＣＣのパリティ領域（すなわち、ページバッファ１０２ｃ）に達すると、ページバッファ１０２ｃのデータをマスクして固定データ０（ＩＯ［７：０］＝００ｈ）を出力するようにしたものである。
このように、本実施形態のＥＭ ＮＡＮＤにおいては、従来最終アドレスを超えてデータを読み出そうとすると、ユーザがアクセス可能な本来の領域外のアドレス空間であるにも係らず、ＥＣＣ処理におけるパリティ情報がＩ／Ｏパッド１０６に現れることになるという互換性の問題が生じてしまう可能性を、マスク制御により防ぐことが可能となる。
【０１８１】
［第１のリダンダンシー制御機能］
ＥＭ ＮＡＮＤ（第１の動作モードを有する製品）において、パリティ領域（ページバッファ１０２ｃ）に欠陥（Ｄｅｆｅｃｔ）が有る場合、欠陥のあるページバッファユニットはページバッファ１０２ｄのページバッファユニットに置換される。しかしながら、Ｐｕｒｅ ＮＡＮＤ（第２の動作モードを有する製品）では、ページバッファ１０２ｃに欠陥があると、その領域は上述の様にＳｐａｒｅ Ｄａｔａ領域として開放しているため、通常のリダンダンシーシステム（Ｒｅｄｕｎｄａｎｃｙ Ｓｙｓｔｅｍ）により置換を行う。このように、本実施形態では、一部のアドレス空間（Ｐａｒｉｔｙ Ｄａｔａ領域）において製品個別に置換機構が異なる特徴を有している。以下、図１４を参照して説明する。
【０１８２】
図１４は、ＮＡＮＤ型フラッシュメモリ１０におけるリダンダンシー制御を説明するための図である。
図１４（ａ）は、ページバッファ１０２におけるＰｕｒｅ ＮＡＮＤ（第２の動作モード）でのカラムアドレスの割り付けを行なった場合の第１のリダンダンシー制御における置換先ページバッファの割り当てを示している。また、図１４（ｂ）は、ページバッファ１０２におけるＥＭ ＮＡＮＤ（第１の動作モード）でのカラムアドレスの割り付けを行なった場合の第１のリダンダンシー制御における置換先ページバッファの割り当てを示している。以下、詳細な構成について説明する。
【０１８３】
Ｐｕｒｅ ＮＡＮＤでは、図１４（ａ）に示す様に、Ｍａｉｎ Ｄａｔａ領域、及びＳｐａｒｅ Ｄａｔａ領域（カラムアドレスＡ０〜Ａ２５５９により選択されるＰＢ ８ＩＯユニット、及びビット線、メモリセルトランジスタ）に発生した不良ビット（欠陥）は、ページバッファユニットを含んだ形で、置換先をページバッファ１０２ｂにおけるページバッファユニットとして置換される。なお、この場合、ページバッファ１０２ｄにおけるページバッファユニットには置換されることはない。
具体的には、ＰＢ ８ＩＯユニットＡ０〜Ａ２５５９のうちに、メモリセルまたはビット線に不良がある欠陥ＰＢ ８ＩＯユニットがあると、この欠陥ＰＢ ８ＩＯユニットのカラムアドレス（Ａ０〜Ａ２５５９）が、製造後のウエハーテストにおいて検査され、メモリアレイ１０１に設けられた専用領域に書き込まれる。
このメモリアレイ１０１に設けられた専用領域に書き込まれた、欠陥ＰＢ ８ＩＯユニットのカラムアドレス（Ａ０〜Ａ２５５９）は、Ｐｕｒｅ ＮＡＮＤの動作の電源投入時に、ＮＡＮＤ型フラッシュメモリ１０のカラム置換回路１０４に転送され、ラッチされる。カラム置換方式は次に示すようにＰＢ ８ＩＯユニットの選択系を制御するものとして説明するが、たとえば、ＰＢ ８ＩＯユニットの選択制御なしにデータバスの切り替えによりカラム置換するなど他の公知の方式においても適用できる。カラム置換回路１０４は、データ読み出し時に、欠陥ＰＢ ８ＩＯユニットのカラムアドレスが入力されると、カラムコーディング回路１０３を制御して、欠陥ＰＢ ８ＩＯユニットに対して選択信号Ｓｅｌ＿Ａを出力させない。カラムコーディング回路１０３は、換わりにページバッファ１０２ｂにおけるＰＢ ８ＩＯユニットを選択する選択信号Ｓｅｌ＿Ａを出力する。
【０１８４】
このように、Ｐｕｒｅ ＮＡＮＤのデータ読み出し動作では、ページバッファ１０２ａ、及び１０２ｃにおける欠陥ＰＢ ８ＩＯユニットは、選択信号Ｓｅｌ＿Ａにより選択されず、置換先のページバッファ１０２ｂにおけるＰＢ ８ＩＯユニットが選択信号Ｓｅｌ＿Ａにより選択される。これにより、読み出しデータＤａｔａ＿Ｏｕｔ＿Ａ（欠陥ＰＢ ８ＩＯユニットから読み出すはずのデータ）が、Ｄａｔａ Ｂｕｓ（第２のデータバス）を介してＩ／Ｏパッド１０６から出力される。また、Ｐｕｒｅ ＮＡＮＤのデータ書き込み動作では、書き込みデータがＩ／Ｏパッド１０６から入力されると、Ｄａｔａ Ｂｕｓを介して置換先のページバッファ１０２ｂにおけるＰＢ ８ＩＯユニットに、書き込みデータＤａｔａ＿Ａ＿Ｉｎ（欠陥ＰＢ ８ＩＯユニットに書き込むはずのデータ）として入力される。
【０１８５】
一方、ＥＭ ＮＡＮＤでは、図１４（ｂ）に示す様に、Ｍａｉｎ Ｄａｔａ領域、及びＳｐａｒｅ Ｄａｔａ領域（カラムアドレスＡ０〜Ａ２１１１により選択されるＰＢ ８ＩＯユニット、及びビット線、メモリセルトランジスタ）に発生した不良ビット（欠陥）は、ページバッファユニットを含んだ形で、置換先をページバッファ１０２ｂにおけるページバッファユニットとして置換される。また、ＥＣＣ Ｐａｒｉｔｙ部（カラムアドレスＰ０〜Ｐ４４７により選択されるＰＢ ８ＩＯユニット、及びビット線、メモリセルトランジスタ）はページバッファユニットを含んだ形で、置換先をページバッファ１０２ｄにおけるページバッファユニットとして置換される。
つまり、ＮＡＮＤ型フラッシュメモリ１０では、Ｐｕｒｅ ＮＡＮＤでのカラムアドレスＡ２１１２〜Ａ２５５９により選択される領域は、その不良ビットの置換が、Ｐｕｒｅ ＮＡＮＤの場合はページバッファ１０２ｂを含む領域に、ＥＭ ＮＡＮＤの場合はページバッファ１０２ｄを含む領域に、というように置換対象が切り替わる特徴をもつ。
【０１８６】
具体的には、ＰＢ ８ＩＯユニットＡ０〜Ａ２１１１のうちに、メモリセルまたはビット線に不良がある欠陥ＰＢ ８ＩＯユニットがあると、Ｐｕｒｅ ＮＡＮＤと同様、この欠陥ＰＢ ８ＩＯユニットのカラムアドレス（Ａ０〜Ａ２１１１のうちの最大１６個のカラムアドレス）が、製造後のウエハーテストにおいて検査され、メモリアレイ１０１に設けられた専用領域に書き込まれる。
このメモリアレイ１０１に設けられた専用領域に書き込まれた、欠陥ＰＢ ８ＩＯユニットのカラムアドレス（Ａ０〜Ａ２１１１のうちの最大１６個のカラムアドレス）は、ＥＭ ＮＡＮＤの動作の電源投入時に、ＮＡＮＤ型フラッシュメモリ１０のカラム置換回路１０４に転送され、ラッチされる。カラム置換回路１０４は、データ読み出し時に、欠陥ＰＢ ８ＩＯユニットのカラムアドレスが入力されると、カラムコーディング回路１０３を制御して、欠陥ＰＢ ８ＩＯユニットに対して選択信号Ｓｅｌ＿Ａを出力させない。カラムコーディング回路１０３は、換わりにページバッファ１０２ｂにおけるＰＢ ８ＩＯユニットを選択する選択信号Ｓｅｌ＿Ａを出力する。
【０１８７】
また、ＰＢ ８ＩＯユニットＰ０〜Ｐ４４７（Ｐｕｒｅ ＮＡＮＤでのカラムアドレスＡ２１１２〜Ａ２５５９）のうちに、メモリセルまたはビット線に不良がある欠陥ＰＢ ８ＩＯユニットがあると、この欠陥ＰＢ ８ＩＯユニットのカラムアドレス（Ｐ０〜Ｐ４４７のうち最大１６個のカラムアドレス）が、製造後のウエハーテストにおいて検査され、メモリアレイ１０１に設けられた専用領域に書き込まれる。
このメモリアレイ１０１に設けられた専用領域に書き込まれた、欠陥ＰＢ ８ＩＯユニットのカラムアドレス（Ｐ０〜Ｐ４４７のうち最大１６個のカラムアドレス）は、ＥＭ ＮＡＮＤの動作の電源投入時に、ＮＡＮＤ型フラッシュメモリ１０のパリティカラム置換回路１０５に転送され、ラッチされる。パリティカラム置換回路１０５は、ＥＣＣ処理時に、欠陥ＰＢ ８ＩＯユニットのカラムアドレスが入力されると、ＥＣＣカラムコーディング回路１０８を制御して、欠陥ＰＢ ８ＩＯユニットに対して選択信号Ｓｅｌ＿Ｂを出力する。また、カラムコーディング回路１０３は、ページバッファ１０２ｄにおけるＰＢ ８ＩＯユニットを選択する選択信号Ｓｅｌ＿Ｂを出力する。
【０１８８】
ＥＭ ＮＡＮＤのデータ書き込み動作では、ページバッファ１０２ａにおける欠陥ＰＢ ８ＩＯユニットは、Ｐｕｒｅ ＮＡＮＤと同様に、選択信号Ｓｅｌ＿Ａにより選択されず、置換先のページバッファ１０２ｂにおけるＰＢ ８ＩＯユニットが選択信号Ｓｅｌ＿Ａにより選択される。これにより、ＥＭ ＮＡＮＤでは、Ｐｕｒｅ ＮＡＮＤと同様に、書き込みデータがＩ／Ｏパッド１０６から入力されると、Ｄａｔａ Ｂｕｓを介して置換先のページバッファ１０２ｂにおけるＰＢ ８ＩＯユニットに、書き込みデータＤａｔａ＿Ａ＿Ｉｎ（欠陥ＰＢ ８ＩＯユニットに書き込むはずのデータ）として入力される。
その後、ＥＣＣのエンコード処理では、ページバッファ１０２ａにおける欠陥ＰＢ ８ＩＯユニットは、選択信号Ｓｅｌ＿Ｂが入力され、図５または図６に示す回路により固定データをＥＣＣ Ｂｕｓへ出力する。また、置換先のページバッファ１０２ｂにおけるＰＢ ８ＩＯユニットは、選択信号Ｓｅｌ＿Ｂが入力され、欠陥ＰＢ ８ＩＯユニットに書き込むはずのデータをＥＣＣ Ｂｕｓへ出力する。ＥＣＣ回路１０７ａ、及びランダマイザ１０７ｂは、ＥＣＣ＿Ｂｕｓから入力される、これらのデータのランダマイズ処理、及びエンコード処理を実行し、パリティデータを生成する。
【０１８９】
生成されたパリティデータは、ページバッファ１０２ｃに書き戻される。しかしながら、ページバッファ１０２ｃにおけるＰＢ ８ＩＯユニットに欠陥があるとすると、パリティカラム置換回路１０５は、ページバッファ１０２ｃの欠陥ＰＢ ８ＩＯユニットのアドレスと選択信号Ｓｅｌ＿Ｂが一致する場合、ＥＣＣカラムコーディング回路１０８を制御して、ページバッファ１０２ｄのＰＢ ８ＩＯユニットを選択信号Ｓｅｌ＿Ｂにより選択させる。
これにより、置換先のページバッファ１０２ｄのＰＢ ８ＩＯユニットには、パリティデータが書き込みデータＤａｔａ＿Ｂ＿Ｉｎ（欠陥ＰＢ ８ＩＯユニットに書き込むはずのパリティデータ）として入力される。なお、ページバッファ１０２ｃの欠陥ＰＢ ８ＩＯユニットには、パリティカラム置換回路１０５の制御により、ＥＣＣカラムコーディング回路１０８が選択信号Ｓｅｌ＿Ｂを出力するが、図５または図６に示す回路によりデータが書き込まれない構成となっているため、パリティデータが書き戻されることはない。
以降、プログラム処理が実行され、ページバッファ１０２のメモリセルトランジスタにデータが書き込まれる。
【０１９０】
また、ＥＭ ＮＡＮＤのデータ読み出し動作では、まず、デコード処理、及びデランダマイズ処理が実行されるので、ページバッファ１０２におけるＰＢ ８ＩＯユニットは、選択信号Ｓｅｌ＿Ｂにより選択される。ページバッファ１０２ａにおける欠陥ＰＢ ８ＩＯユニットは、図５または図６に示す回路により固定データをＥＣＣ Ｂｕｓに出力し、ページバッファ１０２ｂにおけるＰＢ ８ＩＯユニットは、本来ページバッファ１０２ａにおける欠陥ＰＢ ８ＩＯユニットに書き込むべきデータをＥＣＣ Ｂｕｓに出力する。また、ページバッファ１０２ｃにおける欠陥ＰＢ ８ＩＯユニットは、図５または図６に示す回路により固定データをＥＣＣ Ｂｕｓに出力し、ページバッファ１０２ｄにおけるＰＢ ８ＩＯユニットは、本来ページバッファ１０２ｃにおける欠陥ＰＢ ８ＩＯユニットに書き込むべきパリティデータをＥＣＣ Ｂｕｓに出力する。
【０１９１】
ＥＣＣ回路１０７ａ、及びランダマイザ１０７ｂは、ＥＣＣ＿Ｂｕｓから入力される、これらのデータのデコード処理、及びデランダマイズ処理を実行し、誤り訂正後のデータをページバッファ１０２ａにおけるＰＢ ８ＩＯユニットに、ページバッファ１０２ｂにおけるＰＢ ８ＩＯユニットページに書き戻す。ここで、パリティカラム置換回路１０５は、カラム置換回路１０４が記憶する、ページバッファ１０２ａにおける故障ＰＢ ８ＩＯユニットのカラムアドレスを記憶しない（ここでは、パリティカラム置換回路１０５は、ページバッファ１０２ｃにおける故障ＰＢ ８ＩＯユニットのカラムアドレスを記憶する）。そのため、パリティカラム置換回路１０５の制御により、ＥＣＣカラムコーディング回路１０８は、ページバッファ１０２ａにおける故障ＰＢ ８ＩＯユニット、ページバッファ１０２ｂにおけるＰＢ ８ＩＯユニットに対して選択信号Ｓｅｌ＿Ｂを出力する。ただし、ページバッファ１０２ａにおける故障ＰＢ ８ＩＯユニットは、選択信号Ｓｅｌ＿Ｂによりデータが書き込まれない構成となっているので、データ（固定データ）が書き戻されることはない。ページバッファ１０２ａにおける故障ＰＢ ８ＩＯユニットに書き戻すべきデータは、置換先のページバッファ１０２ｂにおける正常な（故障していない）ＰＢ ８ＩＯユニットに書き戻される。
【０１９２】
以降、ＥＭ ＮＡＮＤのＩ／Ｏパッド１０６へのデータ読み出し動作では、Ｐｕｒｅ ＮＡＮＤと同様、ページバッファ１０２ａにおける欠陥ＰＢ ８ＩＯユニットは、選択信号Ｓｅｌ＿Ａにより選択されず、置換先のページバッファ１０２ｂにおけるＰＢ ８ＩＯユニットが選択信号Ｓｅｌ＿Ａにより選択される。これにより、読み出しデータＤａｔａ＿Ｏｕｔ＿Ａ（欠陥ＰＢ ８ＩＯユニットから読み出すはずのデータ）が、Ｄａｔａ Ｂｕｓ（第２のデータバス）を介してＩ／Ｏパッド１０６から出力される。
【０１９３】
以上、説明した様に、ＥＭ ＮＡＮＤとしての製品（Ｏｎ Ｃｈｉｐ ＥＣＣ）において、ページバッファ１０２ｃを含むパリティ領域の欠陥は、パリティ置換用の領域、すなわちページバッファ１０２ｄを含む領域に置換される。しかしながら、Ｐｕｒｅ ＮＡＮＤとしての製品において、ページバッファ１０２ｃを含む領域に欠陥があると、その領域はユーザにＳｐａｒｅ Ｄａｔａ領域として開放されているため、通常のＲｅｄｕｎｄａｎｃｙ Ｓｙｓｔｅｍにて置換を行う。このように、本実施形態では、一部のアドレス空間、すなわち、ページバッファ１０２ｃを含むパリティ領域が、ＥＭ ＮＡＮＤとＰｕｒｅ ＮＡＮＤとでは置換機構が異なる特徴を有している。
【０１９４】
［第２のリダンダンシー制御機能］
ここでは、Ｐｕｒｅ ＮＡＮＤとしての製品において、ページバッファ１０２ａ、及びページバッファ１０２ｃを含む領域に欠陥がある場合の置換先として、ページバッファ１０２ｄを含む領域を開放し、ページバッファ１０２ｂを含む領域を拡張する方式について説明する。つまり、第１のリダンダンシー制御機能を用いるＰｕｒｅ ＮＡＮＤでは、図１４（ａ）に示すページバッファ１０２ｄは使用されないが、Ｐｕｒｅ ＮＡＮＤとしての製品においてページバッファ１０２ｄを有効に活用する方式を提案する。以下、図１４（ｃ）を参照して説明する。
図１４（ｃ）は、ページバッファ１０２におけるＰｕｒｅ ＮＡＮＤ（第２の動作モード）でのカラムアドレスの割り付けを行なった場合の第２のリダンダンシー制御における置換先ページバッファの割り当てを示している。
【０１９５】
図１４（ｃ）に示す様に、Ｐｕｒｅ ＮＡＮＤでのＰＢ ８ＩＯユニットＡ２１１２〜Ａ２５５９に（選択信号ＳｅＬ＿Ａにより選択されるページバッファユニット）については、ＰＢ ８ＩＯユニットを含むメモリセル等に欠陥が有る場合、置換先としてページバッファ１０２ｄ（すなわち、図１４（ｂ）に示すＰＢ ８ＩＯユニットＰＣＲ０〜ＰＣＲ１５）を開放する。そして、例えば、ＰＢ ８ＩＯユニットＰＣＲ０〜ＰＣＲ１５を、新たにＰＢ ８ＩＯユニットＣＲ１６〜ＣＲ３１として、上述のカラム置換回路１０４において置換処理する。具体的な実施方法は後述するが、例えば、ＰＢ ８ＩＯユニットＡ０〜Ａ２５５９のうちに、メモリセルまたはビット線に不良がある欠陥ＰＢ ８ＩＯユニットがあると、この欠陥ＰＢ ８ＩＯユニットのカラムアドレス（Ａ０〜Ａ２５５９）が、製造後のウエハーテストにおいて検査され、メモリアレイ１０１に設けられた専用領域に書き込まれる。このメモリアレイ１０１に設けられた専用領域に書き込まれた、欠陥ＰＢ ８ＩＯユニットのカラムアドレス（Ａ０〜Ａ２５５９）は、Ｐｕｒｅ ＮＡＮＤの動作の電源投入時に、ＮＡＮＤ型フラッシュメモリ１０のカラム置換回路１０４に転送され、ラッチされる。カラム置換回路１０４は、データ読み出し時に、欠陥ＰＢ ８ＩＯユニットのカラムアドレスが入力されると、カラムコーディング回路１０３を制御して、欠陥ＰＢ ８ＩＯユニットに対して選択信号Ｓｅｌ＿Ａを出力させない。カラムコーディング回路１０３は、換わりにページバッファ１０２ｂ、またはページバッファ１０２ｄにおけるＰＢ ８ＩＯユニットを選択する選択信号Ｓｅｌ＿Ａを出力する。
なお、Ｐｕｒｅ ＮＡＮＤのデータ読み出し動作、及びデータ書込み動作については、置換先のページバッファ１０２ｂ、またはページバッファ１０２ｄとなるだけで、他は上述の第１のリダンダンシー制御と同じであるので、ここでの説明は省略する。
【０１９６】
一方、ＥＭ ＮＡＮＤでは、ＰＢ ８ＩＯユニットＡ０〜Ａ２１１１のうちに、メモリセルまたはビット線に不良がある欠陥ＰＢ ８ＩＯユニットがあると、Ｐｕｒｅ ＮＡＮＤと同様、この欠陥ＰＢ ８ＩＯユニットのカラムアドレス（Ａ０〜Ａ２１１１のうちの最大１６個のカラムアドレス）が、製造後のウエハーテストにおいて検査され、メモリアレイ１０１に設けられた専用領域に書き込まれる。
このメモリアレイ１０１に設けられた専用領域に書き込まれた、欠陥ＰＢ ８ＩＯユニットのカラムアドレス（Ａ０〜Ａ２１１１のうちの最大１６個のカラムアドレス）は、ＥＭ ＮＡＮＤの動作の電源投入時に、ＮＡＮＤ型フラッシュメモリ１０のカラム置換回路１０４に転送され、ラッチされる。カラム置換回路１０４は、データ読み出し時に、欠陥ＰＢ ８ＩＯユニットのカラムアドレスが入力されると、カラムコーディング回路１０３を制御して、欠陥ＰＢ ８ＩＯユニットに対して選択信号Ｓｅｌ＿Ａを出力させない。カラムコーディング回路１０３は、換わりにページバッファ１０２ｂにおけるＰＢ ８ＩＯユニットを選択する選択信号Ｓｅｌ＿Ａを出力する。
【０１９７】
また、ＰＢ ８ＩＯユニットＰ０〜Ｐ４４７（Ｐｕｒｅ ＮＡＮＤでのカラムアドレスＡ２１１２〜Ａ２５５９）のうちに、メモリセルまたはビット線に不良がある欠陥ＰＢ ８ＩＯユニットがあると、この欠陥ＰＢ ８ＩＯユニットのカラムアドレス（Ｐ０〜Ｐ４４７のうち最大１６個のカラムアドレス）が、製造後のウエハーテストにおいて検査され、メモリアレイ１０１に設けられた専用領域に書き込まれる。
このメモリアレイ１０１に設けられた専用領域に書き込まれた、欠陥ＰＢ ８ＩＯユニットのカラムアドレス（Ｐ０〜Ｐ４４７のうち最大１６個のカラムアドレス）は、ＥＭ ＮＡＮＤの動作の電源投入時に、ＮＡＮＤ型フラッシュメモリ１０のパリティカラム置換回路１０５に転送され、ラッチされる。パリティカラム置換回路１０５は、ＥＣＣ処理時に、欠陥ＰＢ ８ＩＯユニットのカラムアドレスが入力されると、ＥＣＣカラムコーディング回路１０８を制御して、欠陥ＰＢ ８ＩＯユニットに対して選択信号Ｓｅｌ＿Ｂを出力する。また、カラムコーディング回路１０３は、ページバッファ１０２ｄにおけるＰＢ ８ＩＯユニットを選択する選択信号Ｓｅｌ＿Ｂを出力する。
【０１９８】
以上説明したように、本実施形態では、Ｐｕｒｅ ＮＡＮＤとしての製品では、ページバッファ１０２ｄを含む領域を、ページバッファ１０２ａまたはページバッファ１０２ｃを含む領域に欠陥がある場合の置換先として開放し、ページバッファ１０２ｂを含む領域を拡張している。そのため、図１４（ａ）に示すＰｕｒｅ ＮＡＮＤであれば、カラムアドレスＡ０〜Ａ２５５９に対して置換先のＰＢ ８ＩＯユニットは１６個しか用意できないが、本実施形態であればカラムアドレスＡ０〜Ａ２５５９に対して置換先のＰＢ ８ＩＯユニットは３２個となるので、リダンダンシーにおける救済確率を向上させることができる。
なお、ＥＭ ＮＡＮＤのデータ読み出し動作、及びデータ書込み動作については、上述の第１のリダンダンシー制御と同じであるので、ここでの説明は省略する。ただし、上記の説明で判るように、開放したページバッファ１０２ｃのうち欠陥あるＰＢ ８ＩＯユニットのカラムアドレスを、カラム置換回路１０４とパリティカラム置換回路１０５との間で重複して記憶することになるので、この点を改善した実施例について後述する。
【０１９９】
［アドレススキャン機能］
接続されるメモリセルトランジスタ、ビット線に欠陥が有るとされた欠陥ページバッファユニット（ここでは欠陥ＰＢ ８ＩＯユニット）の望ましい状態は、以下の通りである。すなわち、Ｄａｔａ部（ページバッファ１０２ａ、及びページバッファ１０２ｃを含む領域）については、欠陥ページバッファユニットはすべて不活性化されることが望ましい。また、置換先であるページバッファ１０２ｂ、及びページバッファ１０２ｄを含む領域のページバッファユニットは置換先として確定しているページバッファユニットのみ活性化され、置換される予定のないページバッファユニットは不活性されることが望ましい。言い換えれば、活性化するページバッファユニットを必要最小限とすることが望ましい。つまり、たとえ使用予定のないページバッファユニットであっても、活性化されたままであればプログラム或いはイレース（Ｅｒａｓｅ）の確認（Ｖｅｒｉｆｙ）対象となるので、動作する必要のない回路（ページバッファユニット、ビット線、及びメモリセルトランジスタ）が動作してしまい、例えば不要な消費電流の増加を招いてしまうことから、使用する必要のないページバッファユニットは不活性化しておくことが望ましい。この望ましい状態にするための機構を以下に提案する。
【０２００】
Ｄａｔａ部における欠陥ＰＢ ８ＩＯユニットの不活性化と、ページバッファ１０２ｂ、及びページバッファ１０２ｄを含む領域のページバッファユニットのうち、置換される予定のないページバッファユニットの不活性、及び置換先として確定しているページバッファユニットの活性化は、アドレススキャン制御を実行することにより実現される。ここで、アドレススキャン制御とは、図５または図６に示すＰＢ制御回路６０に対して、ページバッファユニットが不良であるか否かを示す情報（図５または図６に示すデータ書込み信号Ｄａｔａ＿Ｉｎ＿ＡまたはＤａｔａ＿Ｉｎ＿Ｂ）を、カラムアドレス（選択信号Ｓｅｌ＿ＡまたはＳｅｌ＿Ｂ）を変化させながら転送する制御である。
【０２０１】
以下、アドレススキャン制御について、図１５〜図１７を参照して説明する。
図１５は、アドレススキャン制御における処理のフローチャートであり、図１６は、アドレススキャン制御における主要信号のタイミングチャートであり、図１７は、カラムアドレスＡｄｄ＿Ｂによるアドレスマップである。
ここで、アドレススキャン制御の対象となる回路は各ページバッファユニットにおけるＰＢ制御回路６０（図５または図６に示す回路）であるが、以下では図５に示すＰＢ制御回路６０をアドレススキャン制御の対象となる回路として説明する。また、以下では、図５に示すＰＢ制御回路６０に示す回路図において、インバータ回路６２の出力端子とトランジスタ９４のゲート端子、インバータ回路６３の出力端子とトランジスタ９５のゲート端子は、それぞれ短絡されているものとする。つまり、ＰＢ制御回路６０において、パワーオンリセット信号ＰＯＲ＿ＭｏｄｅがＨレベルである場合、書き込み信号ＤＩ、ｎＤＩ、不良情報信号ＳＤＩ、ｎＳＤＩ、欠陥信号ＰＢ＿Ｄｅｆｅｃｔ、ｎＰＢ＿Ｄｅｆｅｃｔの関係は以下の様になる。すなわち、書き込み信号ＤＩがＨレベルとなると（書き込み信号ｎＤＩはＬレベルを維持する）、不良情報信号ＳＤＩがＨレベルとなり（不良情報信号ｎＳＤＩはＬレベルを維持する）、欠陥信号ＰＢ＿ＤｅｆｅｃｔはＬレベル、欠陥信号ｎＰＢ＿ＤｅｆｅｃｔはＨレベルとなる。これらの欠陥信号の状態は、ＰＢ制御回路６０が良品であることを示す。一方、書き込み信号ＤＩがＬレベルを維持し（書き込み信号ｎＤＩはＨレベルとなる）、不良情報信号ＳＤＩがＬレベルを維持し（不良情報信号ｎＳＤＩはＨレベルとなる）、欠陥信号ＰＢ＿ＤｅｆｅｃｔはＨレベル、欠陥信号ｎＰＢ＿ＤｅｆｅｃｔはＬレベルとなる。これらの欠陥信号の状態は、ＰＢ制御回路６０が不良品であることを示す。
【０２０２】
また、ここでの説明は、カラムアドレス（以下、ここではＡＤＤ＿Ａとする）で示すページバッファユニット（ここでは、図１４（ａ）に示すＰＢ ８ＩＯユニット）に対して、ページバッファユニットが不良であるか否かを示す情報を、選択信号Ｓｅｌ＿Ａを変化させて転送する、Ａｄｄ＿Ａ Ｓｃａｎについて行う。具体的には、以下のような回路動作を前提としてＡｄｄ＿Ａ Ｓｃａｎが実行される。
すなわち、図１２に示すアドレス制御回路８５が、不図示の制御回路から、或いは外部から入力されるクロック信号Ａｄｄ＿ＣＬＫの立ち上がり（Ｒｉｓｉｎｇ Ｅｄｇｅ）に同期させて、カラムアドレスＡＤＤ＿Ａ［１１：０］を初期値（オール０、すなわち００ｈ）からインクリメントさせる。また、アドレス制御回路８５は、カラムアドレスＡＤＤ＿Ａ［１１：０］をカラム置換回路１０４に対して出力する。カラム置換回路１０４は、入力されるカラムアドレスＡＤＤ＿Ａ［１１：０］と、アドレススキャン実行前に記憶された不良ビット情報（欠陥ＰＢ ８ＩＯユニットの不良カラムアドレスＡＤＤ＿Ａ’とする）と、を比較する。
【０２０３】
カラム置換回路１０４は、この比較結果に応じて、カラムコーディング回路１０３を制御して、選択信号Ｓｅｌ＿ＡをＰＢ ８ＩＯユニットに対して出力させる。
また、カラム置換回路１０４は、不図示の制御回路から、或いは外部から入力されるクロック信号Ｄｉｎ＿ＣＬＫの立ち上がり（Ｒｉｓｉｎｇ Ｅｄｇｅ）に同期させて、書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅ、及び書き込みデータＤａｔａ＿Ｉｎ＿Ａを、カラムアドレスＡＤＤ＿Ａに対応するＰＢ ８ＩＯユニットに対して出力する。なお、不図示の制御回路が書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅの入力を、Ｉ／Ｏパッド１０６に接続されるデータ入力回路が書き込みデータＤａｔａ＿Ｉｎ＿Ａの入力を、或いはＩ／Ｏパッド１０６を介して外部の例えばテスタ等が書き込みデータＤａｔａ＿Ｉｎ＿Ａの入力を、行なってもよい。ここでは、カラム置換回路１０４が行うものとする。また、クロック信号Ｄｉｎ＿ＣＬＫの周期はクロック信号ＡＤＤ＿ＣＬＫの周期と同じで、立ち上がり、及び立ち下がりが周期の約１／４周期分遅れるものとする。
すなわち、カラムコーディング回路１０３は、カラム置換回路１０４の比較結果によりカラム置換回路１０４に制御され、ＰＢ ８ＩＯユニットに対して選択信号Ｓｅｌ＿Ａを出力する。また、カラム置換回路１０４は、カラム置換回路１０４自身の比較結果により、書き込みデータＤａｔａ＿Ｉｎ＿Ａを、ＰＢ ８ＩＯユニットに対して出力する。
【０２０４】
続いて、図１５に示すフローチャート、図１６に示すタイミングチャートを用いて、Ａｄｄ＿Ａ Ｓｃａｎを図１４（ａ）に示すＰｕｒｅ ＮＡＮＤに対して実行する一例について説明する。なお、図１６に示すタイミングチャートにおいて、ＤＡＴＡ ＰＢ Ａｄｄ＿Ａ＝００１ｈは、図１４（ａ）におけるページバッファ１０２ａのＰＢ ８ＩＯユニットＡ１であり、ＣＲ［０］ＰＢは、図１４（ａ）におけるページバッファ１０２ｂのＰＢ ８ＩＯユニットＣＲ０である。
ここでは、ページバッファ１０２ａにおいては、ＰＢ ８ＩＯユニットＡ１が欠陥ページバッファユニットであり、Ａｄｄ＿Ａ Ｓｃａｎにより不活性化され、他のＰＢ ８ＩＯユニットＡ０、Ａ２〜Ａ２５５９はＡｄｄ＿Ａ Ｓｃａｎにより活性化される。また、ページバッファ１０２ｂにおいては、ＰＢ ８ＩＯユニットＣＲ０がＡｄｄ＿Ａ Ｓｃａｎにより活性化され、他のＰＢ ８ＩＯユニットＣＲ１〜ＣＲ１５はＡｄｄ＿Ａ Ｓｃａｎにより不活性化される。
なお、Ａｄｄｒｅｓｓ Ｓｃａｎを実施する前には不良ビット情報（ここでは、欠陥ＰＢ ８ＩＯユニットＡ１のアドレスである不良カラムアドレスＡＤＤ＿Ａ’＝００１ｈ）を用意しなければならない。一般的に不良ビット情報は、不揮発性のシステム領域に記録されているので、電源投入時や、あるいは初期化コマンドなどの特殊な外部コマンドなどにより、その記録された不良ビット情報が、カラム置換回路１０４（Ａｄｄ＿Ｂ Ｓｃａｎの場合はパリティカラム置換回路１０５）に転送される。ここでは、電源投入時、パワーオンリセット信号ＰＯＲ＿ＭｏｄｅをＨレベルになり、不良カラムアドレスＡＤＤ＿Ａ’＝００１ｈがカラム置換回路１０４に転送されるものとする。
【０２０５】
また、カラム置換回路１０４は、カラムコーディング回路１０３を制御して、ＰＢ ８ＩＯユニットＡ０〜Ａ２５５９に対して、クロック信号Ａｄｄ＿ＣＬＫの立ち上がりに同期した選択信号Ｓｅｌ＿Ａを順番に出力させる。一方、Ａｄｄ＿Ａ Ｓｃａｎの期間、カラム置換回路１０４は、カラムコーディング回路１０３を制御して、ＰＢ ８ＩＯユニットＣＲ０〜ＣＲ１５に対して、Ｈレベルの選択信号Ｓｅｌ＿Ａを出力させ続ける。
また、カラム置換回路１０４は、クロック信号Ｄｉｎ＿ＣＬＫの立ち上がり、及び立ち上がりに同期させて、書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅを、ＰＢ ８ＩＯユニットＡ０〜Ａ２５５９に対して出力する。一方、カラム置換回路１０４は、置換先と成り得るＰＢ ８ＩＯユニットＣＲ０〜ＣＲ１５に対しては、Ａｄｄ＿Ａ Ｓｃａｎの期間、デフォルト状態として書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅをＬレベルにしている。しかし、カラム置換回路１０４は、比較結果が一致した場合は、クロック信号Ｄｉｎ＿ＣＬＫの立ち上がり、及び立ち上がりに同期させて、書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅを、ＰＢ ８ＩＯユニットＣＲ０〜ＣＲ１５に対して出力する。
【０２０６】
まず、電源投入時、不図示の制御回路、或いはパワーオンリセット信号発生回路が、パワーオンリセット信号ＰＯＲ＿ＭｏｄｅをＨレベルにする。なお、パワーオンリセット信号ＰＯＲ＿Ｍｏｄｅは、Ａｄｄ＿Ａ Ｓｃａｎの期間、Ｈレベルであり、ＰＢ制御回路６０のトランジスタ９６をオンさせている。
時刻ｔ１において、アドレス制御回路８５が、クロック信号Ａｄｄ＿ＣＬＫの立ち上がりに同期させて、カラムアドレスＡＤＤ＿Ａ［１１：０］＝０００ｈ（初期値）をカラム置換回路１０４に対して出力する（図１５（ａ）に示すステップＳＴ５１）。
【０２０７】
カラム置換回路１０４は、入力されるカラムアドレスＡＤＤ＿Ａ［１１：０］と、不良カラムアドレスＡＤＤ＿Ａ’とを比較する（ステップＳＴ５２）。ここでは、カラム置換回路１０４は、入力されるカラムアドレスＡＤＤ＿Ａ［１１：０］＝０００ｈと、不良カラムアドレスＡＤＤ＿Ａ’＝００１ｈと、を比較して一致しないと判定する。
また、カラム置換回路１０４は、両アドレスが一致しないので、書き込みデータＤａｔａ＿Ｉｎ＿ＡをＬレベルに維持する。また、カラム置換回路１０４は、カラムコーディング回路１０３を制御して、ＰＢ ８ＩＯユニットＡ０に入力する選択信号Ｓｅｌ＿ＡをＨレベルに変化させ、ＰＢ ８ＩＯユニットＡ０を選択させる。また、カラム置換回路１０４は、書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅをＨレベルに変化させる。
これにより、ＰＢ ８ＩＯユニットＡ０のＰＢ制御回路６０において、欠陥信号ＰＢ＿ＤｅｆｅｃｔがＬレベル（ＰＢ ８ＩＯユニットＡ０が良品であることを示す）にラッチされる（図１６において不図示）。つまり、ＰＢ ８ＩＯユニットＡ０は、Ｐｕｒｅ ＮＡＮＤとしての製品において活性化される。すなわち、カラムコーディング回路１０３より選択されれば、データ書き込み動作においては、書き込みデータＤａｔａ＿Ｉｎ＿Ａが入力され、データ読み出し動作では、読み出しデータＤａｔａ＿Ｏｕｔ＿Ａを出力することが可能となる。
【０２０８】
一方、ＰＢ ８ＩＯユニットＣＲ０〜ＣＲ１５は、いずれのＰＢ ８ＩＯユニットにおいても書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅがＬレベルに維持されている。そのため、各ＰＢ ８ＩＯユニットのＰＢ制御回路６０において、欠陥信号ＰＢ＿ＤｅｆｅｃｔはＨレベル（デフォルト状態）にラッチされている。なお、このデフォルト状態は、カラム置換回路１０４が、例えば、Ａｄｄ＿Ａ Ｓｃａｎの開始に先立って、ＰＢ ８ＩＯユニットＣＲ０〜ＣＲ１５に対して、カラムコーディング回路１０３を制御してＨレベルの選択信号Ｓｅｌ＿Ａを、また、Ｈレベルの書き込みデータＤａｔａ＿Ｉｎ＿Ａ、及びＨレベルの書き込みデータＤａｔａ＿Ｉｎ＿Ａを、一括して供給することにより実現できる。
【０２０９】
次に、カラム置換回路１０４において、上述の通り、比較結果が一致しないので、ステップＳＴ５５に進む（ステップＳＴ５２−Ｎｏ）。
次に、アドレス制御回路８５が、カラム置換回路１０４に対して出力するカラムアドレスＡｄｄ＿Ａが最終アドレス（最終カラムアドレスＦｉｎａｌ＿Ａｄｄ＿Ａ）と一致するか否かを判定する（ステップＳＴ５５）。ここでは、最終カラムアドレスＦｉｎａｌ＿Ａｄｄ＿Ａ＝９ＦＦｈ（＝２５５９）であるので、一致せず、ステップＳＴ５６に進む（ステップＳＴ５５−Ｎｏ）。
アドレス制御回路８５が、カラム置換回路１０４に対して出力するカラムアドレスＡｄｄ＿Ａを１（００１ｈ）だけインクリメントする（ステップＳＴ５６）。ここでは、カラムアドレスＡｄｄ＿Ａ＝０００ｈを１だけインクリメントして、カラムアドレスＡＤＤ＿Ａ［１１：０］＝００１ｈをカラム置換回路１０４に対して出力する。
【０２１０】
次に、カラム置換回路１０４は、入力されるカラムアドレスＡＤＤ＿Ａ［１１：０］と、不良カラムアドレスＡＤＤ＿Ａ’とを比較する（ステップＳＴ５２）。ここでは、カラム置換回路１０４は、入力されるカラムアドレスＡＤＤ＿Ａ［１１：０］＝００１ｈと、不良カラムアドレスＡＤＤ＿Ａ’＝００１ｈと、を比較して一致していると判定する。
次に、カラム置換回路１０４において、上述の通り、比較結果が一致しているので、ステップＳＴ５３に進む（ステップＳＴ５２−Ｙｅｓ）。
【０２１１】
次に、カラム置換回路１０４は、不良カラムアドレスＡＤＤ＿Ａ’に対応するページバッファ１０２ａにおけるＰＢ ８ＩＯユニットを不活性化する（ステップＳＴ５３）。
ここでは（図１６に示す時刻ｔ２では）、カラム置換回路１０４は、両アドレスが一致しているので、書き込みデータＤａｔａ＿Ｉｎ＿ＡをＬレベルからＨレベルに変化させる。また、カラム置換回路１０４は、カラムコーディング回路１０３を制御して、ＰＢ ８ＩＯユニットＡ１に入力する選択信号Ｓｅｌ＿ＡをＨレベルに変化させ、ＰＢ ８ＩＯユニットＡ１を選択させる。また、カラム置換回路１０４は、書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅをＨレベルに変化させる。
これにより、ＰＢ ８ＩＯユニットＡ１のＰＢ制御回路６０において、欠陥信号ＰＢ＿ＤｅｆｅｃｔがＨレベル（ＰＢ ８ＩＯユニットＡ０が不良品であることを示す）にラッチされる。つまり、ＰＢ ８ＩＯユニットＡ１は、Ｐｕｒｅ ＮＡＮＤとしての製品において不活性化される。すなわち、カラムコーディング回路１０３より選択されることはなく、データ書き込み動作において、書き込みデータＤａｔａ＿Ｉｎ＿Ａが入力されることはなく、また、データ読み出し動作において、読み出しデータＤａｔａ＿Ｏｕｔ＿Ａを出力することもない。
【０２１２】
また、カラム置換回路１０４は、不良カラムアドレスＡＤＤ＿Ａ’に対応するページバッファ１０２ａにおけるＰＢ ８ＩＯユニットの置換先である、ページバッファ１０２ｂにおけるＰＢ ８ＩＯユニットを活性化する（ステップＳＴ５４）。
まず、カラム置換回路１０４は、ステップＳＴ５２において、両アドレスが一致しているので、書き込みデータＤａｔａ＿Ｉｎ＿ＡをＬレベルに維持する。また、カラム置換回路１０４は、ＰＢ ８ＩＯユニットＣＲ０に供給する書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅをＨレベルに変化させる。
これにより、ＰＢ ８ＩＯユニットＣＲ０のＰＢ制御回路６０において、欠陥信号ＰＢ＿ＤｅｆｅｃｔがＬレベル（ＰＢ ８ＩＯユニットＣＲ０が良品であることを示す）にラッチされる。つまり、ＰＢ ８ＩＯユニットＣＲ０は、Ｐｕｒｅ ＮＡＮＤとしての製品において活性化される。すなわち、カラムコーディング回路１０３によりＰＢ ８ＩＯユニットＡ１の置換先として選択され、データ書き込み動作において、本来ＰＢ ８ＩＯユニットＡ１に書き込まれるべき書き込みデータＤａｔａ＿Ｉｎ＿Ａが入力され、また、データ読み出し動作において、本来ＰＢ ８ＩＯユニットＡ１から読み出すべき読み出しデータＤａｔａ＿Ｏｕｔ＿Ａを出力する。
【０２１３】
上述したステップＳＴ５６、ステップＳＴ５２〜ＳＴ５４の動作は、ステップＳＴ５５において、アドレス制御回路８５が、カラム置換回路１０４に対して出力するカラムアドレスＡｄｄ＿Ａが最終アドレス（最終カラムアドレスＦｉｎａｌ＿Ａｄｄ＿Ａ）と一致するまで繰り返される。アドレス制御回路８５が、カラム置換回路１０４に対して出力するカラムアドレスＡｄｄ＿Ａが最終カラムアドレスＦｉｎａｌ＿Ａｄｄ＿Ａ＝９ＦＦｈ（＝２５５９）に一致すれば、Ａｄｄ＿Ａ Ｓｃａｎが終了する（ステップＳＴ５５−Ｙｅｓ）。
【０２１４】
以上説明したＡｄｄ＿Ａ Ｓｃａｎにより、Ｐｕｒｅ ＮＡＮＤにおいて、欠陥ＰＢ ８ＩＯユニットの状態が、Ｄａｔａ部（ページバッファ１０２ａ、及びページバッファ１０２ｃを含む領域）については、欠陥ページバッファユニットはすべて不活性化される。また、置換先であるページバッファ１０２ｂを含む領域のページバッファユニットは、置換先として確定しているページバッファユニットのみ活性化され、置換される予定のないページバッファユニットは不活性される。
【０２１５】
また、以上説明したように、Ｐｕｒｅ ＮＡＮＤにおいて、図５に示すカラムコーディング回路１０３、カラム置換回路１０４、及びアドレス制御回路８５により、コーディング（ページバッファユニットの選択）と、欠陥ページバッファユニットの置換（ページバッファ１０２ｂにおけるページバッファユニットへの置換）が可能である。また、Ａｄｄ＿Ａ Ｓｃａｎにより、上述の通り、欠陥ページバッファユニットはすべて不活性化され、置換される予定のないページバッファユニットは不活性される。
本発明でとりあげるシステムは、上述の通り、Ｐｕｒｅ ＮＡＮＤ、及びＥＭ ＮＡＮＤの製品情報ビットを有し、電気的に切替えが可能な構成となっている。
ＥＭ ＮＡＮＤにおいては、図５に示すＥＣＣカラムコーディング回路１０８、パリティカラム置換回路１０５、及びランダマイザ、及びＥＣＣ回路１０７により、コーディング（ページバッファユニットの選択）と、欠陥ページバッファユニットの置換（ページバッファ１０２ｄにおけるページバッファユニットへの置換）が可能である。また、Ａｄｄ＿Ｂ Ｓｃａｎにより、欠陥ページバッファユニットはすべて不活性化され、置換される予定のないページバッファユニットは不活性される。
【０２１６】
［カラムアドレスＡｄｄ＿Ａ、Ａｄｄ＿Ｂについて個別にスキャンする方式について］
ＥＭ ＮＡＮＤでは、各ページバッファユニットの選択は、図１７に示すカラムアドレスＡｄｄ＿Ｂのアドレスマップに則り行うことができる。
図１７に示す様に、ＥＭ ＮＡＮＤでは、カラムアドレスＡｄｄ＿Ｂを用いることで、図１４（ｂ）に示すＰＢ ８ＩＯユニットＡ０〜Ａ２１１１（ページバッファ１０２ａにおけるＰＢ ８ＩＯユニット）と、ＰＢ ８ＩＯユニットＣＲ０〜ＣＲ１５（ページバッファ１０２ｃにおけるＰＢ ８ＩＯユニット）とを選択できる。
以下、上述した図１４（ａ）に示すＰｕｒｅ ＮＡＮＤにおけるＡｄｄ＿Ａ Ａｃａｎに対応させた形で、図１４（ｂ）に示すＰｕｒｅ ＮＡＮＤにおけるＡｄｄ＿Ｂ Ａｃａｎについて、図１５（ｂ）に示すフローチャートを用いて説明する。
なお、ここでは、上述のＡｄｄ＿Ａ Ｓｃａｎを最終Ａｄｄ＿Ａ＝２１１１として実施したのち、Ａｄｄ＿Ｂ Ｓｃａｎを最終Ａｄｄ＿Ｂ＝１５として実施すする場合について説明する。これは、Ｐｕｒｅ ＮＡＮＤとＥＭ ＮＡＮＤとが電気的に切り替え可能なため、製品の出荷前の試験では、Ｐｕｒｅ ＮＡＮＤとして、Ｄａｔａ部Ａ０〜Ａ２１１１（ＰＢ ８ＩＯユニットＡ０〜Ａ２１１１）についての処理をＡｄｄ＿Ａ Ｓｃａｎで実施し、その後、ＥＭ ＮＡＮＤに切り替えてＡｄｄ＿Ｂ Ｓｃａｎを実施すればよいからである。
このＡｄｄ＿Ｂ Ｓｃａｎでは、Ｐａｒｉｔｙ部Ｐ０〜Ｐ４４７（ＰＢ ８ＩＯユニットＣＲ０〜ＣＲ４４７）に対して、不良Ｐａｒｉｔｙ ＰＢ（欠陥ＰＢ ８ＩＯユニット）を不活性化し、置換対象となっているＰＣＲ（ページバッファ１０２ｄのＰＢ ８ＩＯユニットＰＣＲ０〜ＰＣＲ１５）を活性化する。
【０２１７】
また、Ｐｕｒｅ ＮＡＮＤに対応する形で、以下のような回路動作を前提としてＡｄｄ＿Ｂ Ｓｃａｎが実行される。
すなわち、図１２に示すランダマイザ、及びＥＣＣ回路１０７が、不図示の制御回路から入力されるクロック信号Ａｄｄ＿ＣＬＫの立ち上がり（Ｒｉｓｉｎｇ Ｅｄｇｅ）に同期させて、カラムアドレスＡＤＤ＿Ｂ［３：０］を初期値（オール０、すなわち００ｈ）からインクリメントさせる。また、ランダマイザ、及びＥＣＣ回路１０７は、カラムアドレスＡＤＤ＿Ｂ［３：０］をパリティカラム置換回路１０５に対して出力する。パリティカラム置換回路１０５は、入力されるカラムアドレスＡＤＤ＿Ｂ［３：０］と、アドレススキャン実行前に記憶された不良ビット情報（欠陥ＰＢ ８ＩＯユニットの不良カラムアドレスＡＤＤ＿Ｂ’とする）と、を比較する。
【０２１８】
パリティカラム置換回路１０５は、この比較結果に応じて、ＥＣＣカラムコーディング回路１０８を制御して、選択信号Ｓｅｌ＿ＢをＰＢ ８ＩＯユニットに対して出力させる。
また、パリティカラム置換回路１０５は、不図示の制御回路から入力されるクロック信号Ｄｉｎ＿ＣＬＫの立ち上がり（Ｒｉｓｉｎｇ Ｅｄｇｅ）に同期させて、書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅ、及び書き込みデータＤａｔａ＿Ｉｎ＿Ｂを、カラムアドレスＡＤＤ＿Ｂに対応するＰＢ ８ＩＯユニットに対して出力する。なお、不図示の制御回路が書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅの入力を、Ｉ／Ｏパッド１０６を介して外部の例えばテスタ等が書き込みデータＤａｔａ＿Ｉｎ＿Ｂの入力を、行なってもよい。ここでは、パリティカラム置換回路１０５が行うものとする。また、クロック信号Ｄｉｎ＿ＣＬＫの周期はクロック信号ＡＤＤ＿ＣＬＫの周期と同じで、立ち上がり、及び立ち下がりが周期の約１／４周期分遅れるものとする。
すなわち、ＥＣＣカラムコーディング回路１０８は、パリティカラム置換回路１０５の比較結果によりパリティカラム置換回路１０５に制御され、ＰＢ ８ＩＯユニットに対して選択信号Ｓｅｌ＿Ｂを出力する。また、パリティカラム置換回路１０５は、パリティカラム置換回路１０５自身の比較結果により、書き込みデータＤａｔａ＿Ｉｎ＿Ｂを、ＰＢ ８ＩＯユニットに対して出力する。
【０２１９】
続いて、図１５（ｂ）に示すフローチャートを用いて、Ａｄｄ＿Ｂ Ｓｃａｎを図１４（ｂ）に示すＥＭ ＮＡＮＤに対して実行する一例について説明する。なお、ここでは、ページバッファ１０２ａにおいては、ＰＢ ８ＩＯユニットＡ１が欠陥ページバッファユニットであり、Ａｄｄ＿Ａ Ｓｃａｎにより不活性化され、他のＰＢ ８ＩＯユニットＡ０、Ａ２〜Ａ２１１１はＡｄｄ＿Ａ Ｓｃａｎにより活性化されているものとする。また、ページバッファ１０２ｂにおいては、ＰＢ ８ＩＯユニットＣＲ０がＡｄｄ＿Ａ Ｓｃａｎにより活性化され、他のＰＢ ８ＩＯユニットＣＲ１〜ＣＲ１５はＡｄｄ＿Ａ Ｓｃａｎにより不活性化されているものとする。
なお、Ａｄｄｒｅｓｓ Ｓｃａｎを実施する前には、Ｐｕｒｅ ＮＡＮＤと同様に、不良ビット情報（ここでは、ページバッファ１０２ｃにおける欠陥ＰＢ ８ＩＯユニットＰ０〜Ｐ４４７のカラムアドレスである不良カラムアドレスＡＤＤ＿Ｂ’とする）を用意しなければならない。この不良ビット情報は、上述の様に、Ａｄｄ＿Ｂ Ｓｃａｎの場合はパリティカラム置換回路１０５に転送されている。ここでは、電源投入時、パワーオンリセット信号ＰＯＲ＿ＭｏｄｅをＨレベルになり、不良カラムアドレスＡＤＤ＿Ｂ’がパリティカラム置換回路１０５に転送されるものとする。
【０２２０】
また、パリティカラム置換回路１０５は、ＥＣＣカラムコーディング回路１０８を制御して、ＰＢ ８ＩＯユニットＡ０〜Ａ２１１１、及びＰＢ ８ＩＯユニットＰ０〜Ｐ４４７に対して、クロック信号Ａｄｄ＿ＣＬＫの立ち上がりに同期した選択信号Ｓｅｌ＿Ｂを順番に出力させる。一方、Ａｄｄ＿Ｂ Ｓｃａｎの期間、パリティカラム置換回路１０５は、ＥＣＣカラムコーディング回路１０８を制御して、ＰＢ ８ＩＯユニットＰＣＲ０〜ＰＣＲ１５に対して、Ｈレベルの選択信号Ｓｅｌ＿Ｂを出力させ続ける。
また、パリティカラム置換回路１０５は、クロック信号Ｄｉｎ＿ＣＬＫの立ち上がり、及び立ち上がりに同期させて、書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅを、ＰＢ ８ＩＯユニットＡ０〜Ａ２１１１、及びＰＢ ８ＩＯユニットＰ０〜Ｐ４４７に対して出力する。一方、パリティカラム置換回路１０５は、置換先と成り得るＰＢ ８ＩＯユニットＰＣＲ０〜ＰＣＲ１５に対しては、Ａｄｄ＿Ｂ Ｓｃａｎの期間、デフォルト状態として書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅをＬレベルにしている。しかし、カラム置換回路１０４は、比較結果が一致した場合は、クロック信号Ｄｉｎ＿ＣＬＫの立ち上がり、及び立ち上がりに同期させて、書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅを、ＰＢ ８ＩＯユニットＰＣＲ０〜ＰＣＲ１５に対して出力する。
【０２２１】
まず、電源投入時、不図示の制御回路、或いはパワーオンリセット信号発生回路が、パワーオンリセット信号ＰＯＲ＿ＭｏｄｅをＨレベルにする。なお、パワーオンリセット信号ＰＯＲ＿Ｍｏｄｅは、Ａｄｄ＿ＢＳｃａｎの期間、Ｈレベルであり、ＰＢ制御回路６０のトランジスタ９６をオンさせている。
まず、ランダマイザ、及びＥＣＣ回路１０７が、クロック信号Ａｄｄ＿ＣＬＫの立ち上がりに同期させて、カラムアドレスＡＤＤ＿Ｂ［３：０］＝０００ｈ（初期値）をパリティカラム置換回路１０５に対して出力する（図１５（ｂ）に示すステップＳＴ６１）。
【０２２２】
パリティカラム置換回路１０５は、入力されるカラムアドレスＡＤＤ＿Ｂ［３：０］と、不良カラムアドレスＡＤＤ＿Ｂ’とを比較する（ステップＳＴ６２）。ここでは、カラム置換回路１０４は、入力されるカラムアドレスＡＤＤ＿Ｂ［３：０］＝０００ｈと、不良カラムアドレスＡＤＤ＿Ｂ’と、を比較して一致しないと判定する。
また、パリティカラム置換回路１０５は、両アドレスが一致しないので、書き込みデータＤａｔａ＿Ｉｎ＿ＢをＬレベルに維持する。また、パリティカラム置換回路１０５は、ＥＣＣカラムコーディング回路１０８を制御して、ＰＢ ８ＩＯユニットＢ０（図１７に示すＰＢ ８ＩＯユニットＡ０，Ａ１６、・・・Ａ２０９６、Ｐ０、Ｐ１６、・・・Ｐ４３２）に入力する選択信号Ｓｅｌ＿ＢをＨレベルに変化させ、ＰＢ ８ＩＯユニットＢ０を選択させる。また、パリティカラム置換回路１０５は、書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅをＨレベルに変化させる。ただし、パリティカラム置換回路１０５は、ＰＢ ８ＩＯユニットＡ０，Ａ１６、・・・Ａ２０９６に入力する書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅをＬレベルに維持する。これらのＰＢ ８ＩＯユニットは、既にＡｄｄ＿Ａ Ｓｃａｎにおいて活性化または不活性化されているからである。
【０２２３】
これにより、ＰＢ ８ＩＯユニットＢ０のうち、ＰＢ ８ＩＯユニットＰ０、Ｐ１６、・・・Ｐ４３２のＰＢ制御回路６０において、欠陥信号ＰＢ＿ＤｅｆｅｃｔがＬレベル（ＰＢ ８ＩＯユニットＰ０、Ｐ１６、・・・Ｐ４３２が良品であることを示す）にラッチされる。つまり、ＰＢ ８ＩＯユニットＢ０のうち、ＰＢ ８ＩＯユニットＰ０、Ｐ１６、・・・Ｐ４３２は、ＥＭ ＮＡＮＤとしての製品において活性化される。すなわち、ＥＣＣカラムコーディング回路１０８により選択されれば、ＥＣＣ処理のパリティデータ書き込み動作においては、書き込みデータＤａｔａ＿Ｉｎ＿Ｂが入力され、ＥＣＣ処理のパリティデータ読み出し動作では、読み出しデータＤａｔａ＿Ｏｕｔ＿Ｂを出力することが可能となる。
一方、ＰＢ ８ＩＯユニットＰＣＲ０〜ＰＣＲ１５は、いずれのＰＢ ８ＩＯユニットにおいても書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅがＬレベルに維持されている。そのため、各ＰＢ ８ＩＯユニットのＰＢ制御回路６０において、欠陥信号ＰＢ＿ＤｅｆｅｃｔはＨレベル（デフォルト状態）にラッチされている。なお、このデフォルト状態は、パリティカラム置換回路１０５が、例えば、Ａｄｄ＿Ｂ Ｓｃａｎの開始に先立って、ＰＢ ８ＩＯユニットＰＣＲ０〜ＰＣＲ１５に対して、ＥＣＣカラムコーディング回路１０８を制御してＨレベルの選択信号Ｓｅｌ＿Ｂを、また、Ｈレベルの書き込みデータＤａｔａ＿Ｉｎ＿Ｂ、及びＨレベルの書き込みデータＤａｔａ＿Ｉｎ＿Ｂを、一括して供給することにより実現できる。
【０２２４】
次に、パリティカラム置換回路１０５において、上述の通り、比較結果が一致しないので、ステップＳＴ６５に進む（ステップＳＴ６２−Ｎｏ）。
次に、ランダマイザ、及びＥＣＣ回路１０７が、パリティカラム置換回路１０５に対して出力するカラムアドレスＡｄｄ＿Ｂが最終アドレス（最終カラムアドレスＦｉｎａｌ＿Ａｄｄ＿Ｂ）と一致するか否かを判定する（ステップＳＴ５５）。ここでは、最終カラムアドレスＦｉｎａｌ＿Ａｄｄ＿Ａ＝００Ｆｈ（＝１５）であるので、一致せず、ステップＳＴ６６に進む（ステップＳＴ６５−Ｎｏ）。
ランダマイザ、及びＥＣＣ回路１０７が、パリティカラム置換回路１０５に対して出力するカラムアドレスＡｄｄ＿Ｂを１（００１ｈ）だけインクリメントする（ステップＳＴ６６）。ここでは、カラムアドレスＡｄｄ＿Ｂ＝０００ｈを１だけインクリメントして、カラムアドレスＡＤＤ＿Ｂ［３：０］＝００１ｈをパリティカラム置換回路１０５に対して出力する。
【０２２５】
次に、パリティカラム置換回路１０５は、入力されるカラムアドレスＡＤＤ＿Ｂ［３：０］と、不良カラムアドレスＡＤＤ＿Ｂ’とを比較する（ステップＳＴ６２）。ここでは、パリティカラム置換回路１０５は、入力されるカラムアドレスＡＤＤ＿Ｂ［３：０］＝００１ｈと、不良カラムアドレスＡＤＤ＿Ｂ’と、を比較して一致していると判定するものとする。
次に、パリティカラム置換回路１０５において、比較結果が一致しているので、ステップＳＴ６３に進む（ステップＳＴ６２−Ｙｅｓ）。
【０２２６】
次に、パリティカラム置換回路１０５は、不良カラムアドレスＡＤＤ＿Ｂ’に対応するページバッファ１０２ｃにおけるＰＢ ８ＩＯユニットを不活性化する（ステップＳＴ６３）。
ここでは、パリティカラム置換回路１０５は、両アドレスが一致しているので、不良カラムアドレスＡＤＤ＿Ｂ’に対応するページバッファ１０２ｃにおけるＰＢ ８ＩＯユニットのみ、書き込みデータＤａｔａ＿Ｉｎ＿ＢをＬレベルからＨレベルに変化させる。また、パリティカラム置換回路１０５は、ＥＣＣカラムコーディング回路１０８を制御して、ＰＢ ８ＩＯユニットＢ１（図１７に示すＰＢ ８ＩＯユニットＡ１，Ａ１７、・・・Ａ２０９７、Ｐ１、Ｐ１７、・・・Ｐ４３３）に入力する選択信号Ｓｅｌ＿ＢをＨレベルに変化させ、ＰＢ ８ＩＯユニットＢ１を選択させる。また、パリティカラム置換回路１０５は、書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅをＨレベルに変化させる。ただし、パリティカラム置換回路１０５は、ＰＢ ８ＩＯユニットＡ１，Ａ１７、・・・Ａ２０９７に入力する書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅをＬレベルに維持する。これらのＰＢ ８ＩＯユニットは、既にＡｄｄ＿Ａ Ｓｃａｎにおいて活性化または不活性化されているからである。
【０２２７】
これにより、不良カラムアドレスＡＤＤ＿Ｂ’に対応するページバッファ１０２ｃにおけるＰＢ ８ＩＯユニットのＰＢ制御回路６０において、欠陥信号ＰＢ＿ＤｅｆｅｃｔがＨレベル（ＰＢ ８ＩＯユニットが不良品であることを示す）にラッチされる。つまり、不良カラムアドレスＡＤＤ＿Ｂ’に対応するページバッファ１０２ｃにおけるＰＢ ８ＩＯユニットは、ＥＭ ＮＡＮＤとしての製品において不活性化される。つまり、ＥＣＣカラムコーディング回路１０８により選択されると、データ書き込み動作において、書き込みデータＤａｔａ＿Ｉｎ＿Ｂが入力されることはない。一方、データ読み出し動作において、読み出しデータＤａｔａ＿Ｏｕｔ＿Ｂとして固定データを出力する。
【０２２８】
また、パリティカラム置換回路１０５は、不良カラムアドレスＡＤＤ＿Ｂ’に対応するページバッファ１０２ｃにおけるＰＢ ８ＩＯユニットの置換先である、ページバッファ１０２ｄにおけるＰＢ ８ＩＯユニットを活性化する（ステップＳＴ６４）。
まず、パリティカラム置換回路１０５は、ステップＳＴ６２において、両アドレスが一致しているので、書き込みデータＤａｔａ＿Ｉｎ＿ＢをＬレベルに維持する。また、パリティカラム置換回路１０５は、ＰＢ ８ＩＯユニットＰＣＲ０に供給する書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅをＨレベルに変化させる。
【０２２９】
これにより、ＰＢ ８ＩＯユニットＰＣＲ０のＰＢ制御回路６０において、欠陥信号ＰＢ＿ＤｅｆｅｃｔがＬレベル（ＰＢ ８ＩＯユニットＰＣＲ０が良品であることを示す）にラッチされる。つまり、ＰＢ ８ＩＯユニットＰＣＲ０は、ＥＭ ＮＡＮＤとしての製品において活性化される。すなわち、ＥＣＣカラムコーディング回路１０８により不良カラムアドレスＡＤＤ＿Ｂ’に対応するページバッファ１０２ｃにおけるＰＢ ８ＩＯユニットの置換先として選択され、データ書き込み動作において、本来ページバッファ１０２ｃにおけるＰＢ ８ＩＯユニットに書き込まれるべき書き込みデータＤａｔａ＿Ｉｎ＿Ｂが入力され、また、データ読み出し動作において、本来ページバッファ１０２ｃにおけるＰＢ ８ＩＯユニットから読み出すべき読み出しデータＤａｔａ＿Ｏｕｔ＿Ｂを出力する。
【０２３０】
上述したステップＳＴ６６、ステップＳＴ６２〜ＳＴ６４の動作は、ステップＳＴ６５において、ランダマイザ、及びＥＣＣ回路１０７が、パリティカラム置換回路１０５に対して出力するカラムアドレスＡｄｄ＿Ｂが最終アドレス（最終カラムアドレスＦｉｎａｌ＿Ａｄｄ＿Ｂ）と一致するまで繰り返される。ランダマイザ、及びＥＣＣ回路１０７が、パリティカラム置換回路１０５に対して出力するカラムアドレスＡｄｄ＿Ｂが最終カラムアドレスＦｉｎａｌ＿Ａｄｄ＿Ｂ＝００Ｆｈ（＝１５）に一致すれば、Ａｄｄ＿Ｂ Ｓｃａｎが終了する（ステップＳＴ６５−Ｙｅｓ）。
【０２３１】
以上説明したＡｄｄ＿Ｂ Ｓｃａｎにより、ＥＭ ＮＡＮＤにおいて、欠陥ＰＢ ８ＩＯユニットの状態が、Ｄａｔａ部（ページバッファ１０２ａを含む領域）、及びＰａｒｉｔｙ部（ページバッファ１０２ｃを含む領域）については、欠陥ページバッファユニットはすべて不活性化される。また、置換先であるページバッファ１０２ｃを含む領域のページバッファユニットは、置換先として確定しているページバッファユニットのみ活性化され、置換される予定のないページバッファユニットは不活性される。
【０２３２】
上述のアドレススキャン（Ａｄｄｒｅｓｓ Ｓｃａｎ）では、電源投入後などの初期化シーケンスにおいて、不揮発性のシステム領域に記録された不良ビット情報を、Ａｄｄ＿Ａ Ｓｃａｎではカラム置換回路１０４に、Ａｄｄ＿Ｂ Ｓｃａｎではパリティカラム置換回路１０５に転送する。図１８は、記録された不良ビット情報の転送例を示す図である。
図１８（ａ）は、上述したアドレススキャンでの記録された不良ビット情報の転送例を示す図である。
【０２３３】
図１８（ａ）に示す様に、カラム置換回路１０４は、Ａｄｄ＿Ａ Ｓｃａｎでの不良ビット情報を記憶するＤｅｆｅｃｔ Ｂｉｔ Ｌｔａｃｈ（Ａ０〜Ａ２５５９）１０４Ｌ（以下、ラッチ回路１０４Ｌとする）を有している。ここで、Ａｄｄ＿Ａ Ｓｃａｎでの不良ビット情報とは、図１４（ａ）に示すＰｕｒｅ ＮＡＮＤでのページバッファ１０２ａ、及び１０２ｃにおける欠陥ＰＢ ８ＩＯユニットのカラムアドレス（Ａ０〜Ａ２５５９のうちの複数のビット情報）である。
また、パリティカラム置換回路１０５は、Ａｄｄ＿Ｂ Ｓｃａｎでの不良ビット情報を記憶するＤｅｆｅｃｔ Ｂｉｔ Ｌｔａｃｈ（Ｐ０〜Ｐ４４７）１０５Ｌ（以下、ラッチ回路１０５Ｌとする）を有している。ここで、Ａｄｄ＿Ｂ Ｓｃａｎでの不良ビット情報とは、図１４（ｂ）に示すＥＭ ＮＡＮＤでのページバッファ１０２ｃにおける欠陥ＰＢ ８ＩＯユニットのカラムアドレス（Ｐ０〜Ｐ４４７のうちの複数のビット情報）である。
【０２３４】
また、不揮発性のシステム領域１０２ｂ１には、ＮＡＮＤ型フラッシュメモリ１０の製造後のテスト工程において、製品としてはＰｕｒｅ ＮＡＮＤに電気的に切り替えて動作させ、欠陥ＰＢ ８ＩＯユニットのカラムアドレス（Ａ０〜Ａ２５５９のうちの複数のビット情報）を検出するテストを行った結果、すなわち、Ａｄｄ＿Ａ Ｓｃａｎを行う場合の不良ビット情報が記録される。なお、不揮発性のシステム領域１０２ｂ１としては、例えば、ＮＡＮＤ型フラッシュメモリ１０のメモリアレイ１０１の一部のブロックを用いることができる。
また、不揮発性のシステム領域１０２ｂ２には、ＮＡＮＤ型フラッシュメモリ１０の製造後のテスト工程において、製品としてはＥＭ ＮＡＮＤに電気的に切り替えて動作させ、欠陥ＰＢ ８ＩＯユニットのカラムアドレス（Ｐ０〜Ｐ４４７のうちの複数のビット情報）を検出するテストを行った結果、すなわち、Ａｄｄ＿Ｂ Ｓｃａｎを行う場合の不良ビット情報が記録される。なお、不揮発性のシステム領域１０２ｂ２としては、不揮発性のシステム領域１０２ｂ１と同様、例えば、ＮＡＮＤ型フラッシュメモリ１０のメモリアレイ１０１の一部のブロックを用いることができる。
【０２３５】
このように、上述したカラムアドレスＡｄｄ＿Ａ、Ａｄｄ＿Ｂについて個別にスキャンする方式を採用した場合、Ａｄｄ＿Ａ Ｓｃａｎを行う場合の不良ビット情報と、Ａｄｄ＿Ｂ Ｓｃａｎを行う場合の不良ビット情報とが、それぞれ不揮発性のシステム領域１０２ｂ１、不揮発性のシステム領域１０２ｂ２に記録されることになる。また、Ａｄｄ＿Ａ Ｓｃａｎを行う場合の不良ビット情報と、Ａｄｄ＿Ｂ Ｓｃａｎを行う場合の不良ビット情報とが、それぞれカラム置換回路１０４、パリティカラム置換回路１０５へと転送される。
【０２３６】
以上の方式では、例えば、図１４（ａ）、及び図１４（ｂ）を参照すると、カラムアドレスＡｄｄ＿Ａを使用するＰｕｒａ ＮＡＮＤにおけるＰＢ ８ＩＯユニットＡ２１１２が不良の場合、物理的に同一のＰＢ ８ＩＯユニットであり、カラムアドレスＡｄｄ＿Ｂを使用するＥＭ ＮＡＮＤにおけるＰＢ ８ＩＯユニットＰ０が不良となる。この場合、１つの物理的は同じ不良に対して、不良カラムアドレスＡｄｄ＿Ａと不良カラムアドレスＡｄｄ＿Ｂとの２つのアドレスを個別に、２箇所の不揮発性のシステム領域１０２ｂ１、及び不揮発性のシステム領域１０２ｂ２に不良情報を記録することになる。そこで、不揮発性のシステム領域１０２ｂ１にのみ不良情報を集約させて、製品出荷前の不良ビット検出記録するテスト工程は簡素化できる。
【０２３７】
図１８（ｂ）は、不良ビット情報をカラムアドレスＡｄｄ＿Ａでのマッピング（Ｍａｐｐｉｎｇ）のみに集約したものである。ここでは、パリティカラム置換回路１０５への転送時にはカラムアドレスＡｄｄ＿Ａのマッピング情報をカラムアドレスＡｄｄ＿Ｂのマッピング情報に、Ｄｅｆｅｃｔ Ｂｉｔ Ｉｎｆｏｒｍａｔｉｏｎ Ｃｏｎｖｅｒｓｉｏｎ Ｃｉｒｃｕｉｔ１１０（不良情報ビット変換回路）により変換することを特徴としている。このように、Ｐｕｒｅ ＮＡＮＤでもＥＭ＿ＮＡＮＤでも不良ビット情報に関してはカラムアドレスＡｄｄ＿Ａに集約することができるため、製品出荷前の不良ビットを検出し、及び記録するテスト工程を簡素化できる。
アドレススキャンをＡｄｄ＿Ａ Ｓｃａｎのみで完結させる方式について、以下に説明する。
【０２３８】
［Ａｄｄ＿Ａ Ｓｃａｎのみで完結させる方式］
上述のカラムアドレスＡｄｄ＿Ａ、Ａｄｄ＿Ｂについて個別にスキャンする方式では、アドレスマッピング毎にアドレススキャン（Ａｄｄ＿Ａ Ｓｃａｎ、Ａｄｄ＿Ｂ Ｓｃａｎ）を実施しているが、これをＡｄｄ＿Ａ Ｓｃａｎに集約したシステムを提案する。
ここでは、説明を簡単にするため、ＮＡＮＤ型フラッシュメモリ１０は、簡単な例として、図１４（ｃ）に示すＰｕｒｅ ＮＡＮＤでのカラムリダンダンシー（ＣＲ）構成を採用しているものとする。
このＮＡＮＤ型フラッシュメモリ１０では、図１８に示すカラム置換回路１０４のラッチ回路１０４Ｌには、ＮＡＮＤ型フラッシュメモリ１０がＰｕｒｅ ＮＡＮＤとＥＭ ＮＡＮＤとのいずれのＮＡＮＤに切り替えられるかに関わらず、カラムアドレスＡｄｄ＿ＡのＡ０〜Ａ２５５９までの不良情報（不良カラムアドレスのビット情報）をラッチさせることができる。
【０２３９】
図１９は、カラム置換回路１０４のラッチ回路１０４ＬからＰＢ ８ＩＯユニット（ＰＢ）への不良ビット情報転送径路の一例を示す図である。図１９においては、図面下方に示す様に、ラッチ回路１０４Ｌは、不良情報をラッチする構成として、ＰＢ ８ＩＯユニットＣＲ０〜ＣＲ１５に対応させて、ユニット毎にラッチを有し、またＰＢ ８ＩＯユニットＰＣＲ０〜ＰＣＲ１５に対応させて、ユニット毎にラッチを有している。このユニットごとのラッチは、不良ビットのカラムアドレスを格納するＡｄｄｒｅｓｓ ｉｎｆｏ．格納部と、不良ビット置換をするか否かを示すＥｎａｂｌｅ Ｂｉｔ格納部とを有し、この例では、さらに不良ＩＯ情報をラッチするＩＯ ｉｎｆｏ．格納部を有している。
図１４（ｃ）に示すＰｕｒｅ ＮＡＮＤの構成であれば、ＰＢ ８ＩＯユニットＣＲ０〜ＣＲ１５に対応するラッチには、カラムアドレスＡ０〜Ａ２１１１の不良ビット情報、ＰＢ ８ＩＯユニットＰＣＲ０〜ＰＣＲ１５に対応するラッチには、Ａ２１１２〜Ａ２５５９の不良ビット情報が格納されることになる。
【０２４０】
上述したように、アドレススキャン（Ａｄｄｒｅｓｓ Ｓｃａｎ）では、この不良ビット情報とカラム置換回路１０４に入力されるカラムアドレスＡｄｄ＿Ａとが一致すれば、図１９に示すカラム置換回路１０４における比較回路（Ｃｏｍｐａｒｅ）に比較結果である比較結果信号ＣＲ ＨｉｔがＨレベルとなる。これにより、カラム置換回路１０４における各ドライバ（ＰＢ Ｄｒｉｖｅｒ）は、各ＰＢ ８ＩＯユニットへ不良ビット情報（書き込みイネーブル信号ｆＤｉｎＥｎａｂｌｅ）を転送することができる。
以上の構成であれば、その後、上述したＡｄｄ＿Ａ ＳｃａｎをカラムアドレスＡ０〜Ａ２５５９の範囲で実行するだけで、対応するＣＲ／ＰＣＲに活性化するか不活性化するかの不良情報転送が可能となる。さらに、さらにＮＡＮＤ型フラッシュメモリ１０を、ＥＭ ＮＡＮＤとＰｕｒｅ ＮＡＮＤとのいずれかに切り替えられたかを区別をすることなく、同一のスキャン方式（Ａｄｄ＿Ａ Ｓｃａｎ）で済ますことができるという特徴を有している。そのため、製造後のテスト時間を短縮でき、生産性の向上を図ることができる。
【０２４１】
［Ａｄｄ＿Ａ Ｓｃａｎのみで完結させる方式の他の一例］
以上図１９を用いて説明した実施例では、カラム置換回路１０４にＰＢ ８ＩＯユニットＣＲ０〜ＣＲ１５、及びＰＢ ８ＩＯユニットＰＣＲ０〜ＰＣＲ１５の不良ビット情報を格納する機構を用意しなければならないが、ラッチの個数の増大を改善した方式があり、以下に説明する。この、実施例では、電源投入後などの初期化時に、Ｏｎ Ｃｈｉｐ ＥＣＣの使用／不使用の電気的情報（すなわち、ＮＡＮＤ型フラッシュメモリ１０を製品としてＰｕｒｅ ＮＡＮＤとＥＭ ＮＡＮＤとのいずれの製品にするかを示す情報）をもとに、 アドレススキャン時の不良情報転送先となるページバッファユニット（ＰＢ ８ＩＯユニット）の選択方式を切り替える特徴を有する。
【０２４２】
なお、ここでは、図１４（ａ）に示すＰｕｒｅ ＮＡＮＤの構成へ適用した場合について説明する。図１４（ａ）に示すＰｕｒｅ ＮＡＮＤは、ＰＢ ８ＩＯユニットＡ２１１２〜Ａ２５５９の範囲でも、欠陥ＰＢ ８ＩＯユニットの置換先としてページバッファ１０２ｂのＰＢ ８ＩＯユニットＣＲ０〜ＣＲ１５のみを使用するシステムである。
図２０は、カラム置換回路１０４のラッチ回路１０４ＬからＰＢ ８ＩＯユニット（ＰＢ）への不良ビット情報転送径路の他の一例を示す図である。
図２０（ａ）に示す様に、図１９と比較して、ＰＢ ８ＩＯユニットＰＣＲ０〜ＰＣＲ１５用の不良ビット情報ラッチ、比較回路、及びＰＢ Ｄｒｉｖｅｒが削減されている。
ここで、選択信号ＹＰＣＲ、及びＹＣＲは、ＰＢ制御回路６０の選択信号である。選択信号ＹＰＣＲは、ＰＢ ８ＩＯユニットＰＣＲ０〜ＰＣＲ１５のＰＢ制御回路６０における選択信号Ｓｅｌ＿Ａの端子に、選択信号ＹＣＲはＰＢ ８ＩＯユニットＣＲ０〜ＣＲ１５のＰＢ制御回路６０における選択信号Ｓｅｌ＿Ａの端子に、それぞれ接続されている（図５または図６参照）。すなわち、選択信号Ｙｐｃｒ、及び選択信号Ｙｃｒのいずれかを用いることにより、ページバッファ１０２ｂのＰＢ ８ＩＯユニットを選択するか、ページバッファ１０２ｄのＰＢ ８ＩＯユニットを選択するかを制御できる。
【０２４３】
図２０（ｂ）に示す様に、選択信号Ｙｐｃｒ、及び選択信号Ｙｃｒのいずれを用いるかは、Ａｄｄｒｅｓｓ（カラムアドレス）と製品（Ｐｒｏｄｕｃｔ）に応じて選択できるように構成する。つまり、ＮＡＮＤ型フラッシュメモリ１０を製品としてＰｕｒｅ ＮＡＮＤとする場合、置換先のＰＢ ８ＩＯユニットＣＲ０〜ＣＲ１５におけるＰＢ制御回路６０の選択信号Ｓｅｌ＿Ａの端子に選択信号Ｙｃｒが入力するように切り替える。
一方、ＮＡＮＤ型フラッシュメモリ１０を製品としてＥＭ ＮＡＮＤとする場合、ＰＢ ８ＩＯユニットＡ０〜Ａ２１１１に対しては、置換先のＰＢ ８ＩＯユニットＣＲ０〜ＣＲ１５におけるＰＢ制御回路６０の選択信号Ｓｅｌ＿Ａの端子に選択信号Ｙｃｒが入力するように切り替える。また、ＰＢ ８ＩＯユニットＡ２１１２〜Ａ２５５９に対しては、置換先のＰＢ ８ＩＯユニットＰＣＲ０〜ＰＣＲ１５におけるＰＢ制御回路６０の選択信号Ｓｅｌ＿Ａの端子に選択信号Ｙｐｃｒが入力するように切り替える。このように構成すれば、ＥＭ ＮＡＮＤにおいても、Ａｄｄ＿Ａ Ｓｃａｎのみで済ますことができる。
【０２４４】
このように、本実施形態では、Ｐｕｒｅ ＮＡＮＤかＥＭ ＮＡＮＤのいずれかに電気的に記録された製品情報（切替信号）によって、選択信号Ｙｃｒ、Ｙｐｃｒの制御方式を切り替えることを特徴とする。図２０（ａ）に示す不良ビット情報ラッチ、比較回路、ＰＢ Ｄｒｉｖｅｒは既存のＰｕｒｅ ＮＡＮＤとしての製品において使用されている回路であり、本実施形態では、選択信号Ｙｐｃｒ、Ｙｃｒの選択制御を加えるのみにより、Ｐｕｒｅ ＮＡＮＤ、及びＥＭ ＮＡＮＤにおけるページバッファユニット（ＰＢ ８ＩＯユニットＣＲ０〜ＣＲ１５ＰＢ ８ＩＯユニットＰＣＲ０〜ＰＣＲ１５）の切替え機構を実現できるといえる。また、上述の通り、不良ビット情報ラッチ、比較回路、ＰＢ Ｄｒｉｖｅｒを半減できるため、チップサイズの増大を抑制でき、生産性の向上を図ることができる。
【０２４５】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【０２４６】
１０…ＮＡＮＤ型フラッシュメモリ、１０１…メモリアレイ、１０２，１０２ａ，１０２ｂ，１０２ｃ，１０２ｄ…ページバッファ、１０３…カラムコーディング回路、１０８…ＥＣＣカラムコーディング回路、１０４…カラム置換回路、１０５…パリティカラム置換回路、１０７ａ…ＥＣＣ回路、１０７ｂ…ランダマイザ、１０６，１０６ｃ…Ｉ／Ｏパッド
【図１】
2014142976.tif 000003
【図２】
2014142976.tif 000004
【図３】
2014142976.tif 000005
【図４】
2014142976.tif 000006
【図５】
2014142976.tif 000007
【図６】
2014142976.tif 000008
【図７】
2014142976.tif 000009
【図８】
2014142976.tif 000010
【図９】
2014142976.tif 000011
【図１０】
2014142976.tif 000012
【図１１】
2014142976.tif 000013
【図１２】
2014142976.tif 000014
【図１３】
2014142976.tif 000015
【図１４】
2014142976.tif 000016
【図１５】
2014142976.tif 000017
【図１６】
2014142976.tif 000018
【図１７】
2014142976.tif 000019
【図１８】
2014142976.tif 000020
【図１９】
2014142976.tif 000021
【図２０】
2014142976.tif 000022
【図２１】
2014142976.tif 000023
【図２２】
2014142976.tif 000024
【図２３】
2014142976.tif 000025
【図２４】
2014142976.tif 000026
【図２５】
2014142976.tif 000027