(57)【要約】【課題】  冗長メモリによる不良列の救済効率の向上を図る半導体記憶装置を提供する。【解決手段】  本発明のフラッシュメモリにおける不良列の救済方法は、メモリ領域の偶数列と奇数列とを１組とする不良列のアドレス、不良列の不良が偶数列または奇数列のいずれにあるかを識別する識別情報、および不良列を救済するための冗長メモリ領域の冗長列のアドレスとを含む冗長情報を記憶するステップと、冗長情報に基づき列アドレスが不良列のアドレスに一致するか否かを判定するステップ（Ｓ１０２）と、一致する場合には識別情報に基づき不良列の奇数列を冗長列の一方の列に変換し（Ｓ１０６、Ｓ１０８）、不良列の偶数列を冗長列の他方の列に変換せず、不良列の隣接する偶数列を冗長列の他方の列に変換するステップ（Ｓ１１０）とを有する。【選択図】  図６
2017021872.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶素子を有するメモリ領域と、複数の記憶素子を有する冗長メモリ領域とを有するメモリアレイと、
前記メモリ領域の偶数列と奇数列とを１組とする不良列のアドレス、前記不良列の不良が偶数列または奇数列のいずれにあるかを識別する識別情報、および前記不良列を救済するための前記冗長メモリ領域の冗長列のアドレスとを含む冗長情報を記憶する記憶手段と、
列アドレスに基づき前記メモリアレイの列を選択する列選択手段とを有し、
前記列選択手段は、前記冗長情報に基づき列アドレスが前記不良列のアドレスに一致するか否かを判定し、一致する場合には前記識別情報に基づき前記不良列の一方の列を冗長列の一方の列に変換し、前記不良列の他方の列を冗長列の他方の列に変換せず、前記不良列の隣接する他方の列を冗長列の他方の列に変換する、半導体記憶装置。
【請求項２】
前記不良列の一方の列は、奇数列であり、他方の列は、偶数列である、請求項１に記載の半導体記憶装置。
【請求項３】
前記不良列の一方の列は、偶数列であり、他方の列は、奇数数列である、請求項１に記載の半導体記憶装置。
【請求項４】
前記列選択手段は、奇数ページを選択するときまたは偶数ページを選択するとき、前記識別情報に基づき偶数列または奇数列に不良が存在するかを判定する、請求項１に記載の半導体記憶装置。
【請求項５】
半導体記憶装置はさらに、メモリアレイの選択されたページから読み出されたデータを保持し、または選択されたページにプログラムするデータを保持するページバッファを含み、前記列選択手段は、前記ページバッファに保持された奇数ページまたは偶数ページのデータを選択する、請求項４に記載の半導体記憶装置。
【請求項６】
複数の記憶素子を有するメモリ領域と、複数の記憶素子を有する冗長メモリ領域とを有するメモリアレイと、前記メモリ領域の偶数列と奇数列とを１組とする不良列のアドレス、および前記不良列を救済するための前記冗長メモリ領域の冗長列のアドレスとを含む冗長情報を記憶する記憶手段とを半導体記憶装置における不良列の救済方法であって、
前記不良列の不良が偶数列または奇数列のいずれにあるかを識別する識別情報を前記記憶手段に保持させるステップと、
前記メモリアレイの列を選択するステップとを有し、
前記選択するステップは、前記冗長情報に基づき列アドレスが前記不良列のアドレスに一致するか否かを判定するステップと、一致する場合には前記識別情報に基づき前記不良列の一方の列を冗長列の一方の列に変換し、前記不良列の他方の列を冗長列の他方の列に変換せず、前記不良列の隣接する他方の列を冗長列の他方の列に変換するステップとを有する、不良列の救済方法。
【請求項７】
前記選択するステップは、奇数ページを選択するときまたは偶数ページを選択するとき、前記識別情報に基づき偶数列または奇数列に不良が存在するかを判定するステップを含む、請求項６に記載の不良列の救済方法。
【請求項８】
複数の記憶素子を有するメモリ領域と、複数の記憶素子を有する冗長メモリ領域とを有するメモリアレイとを備えた半導体記憶装置における冗長情報の設定方法であって、
前記メモリ領域の偶数列と奇数列とを１組とする不良列を検出するステップと、
前記検出された不良列の偶数列と奇数列の不良の組み合わせを識別するステップと、
前記検出された不良列を前記冗長メモリ領域の冗長列に変換するためのアドレス情報、および前記識別された不良の組み合わせを示す識別情報を前記半導体記憶装置に設定するステップと、
を有する設定方法。
【請求項９】
前記不良の組み合わせは、偶数列と奇数列に跨る不良、または奇数列と偶数列に跨る不良を識別する、請求項８に記載の設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の記憶素子を含むメモリアレイを備えた半導体記憶装置に関し、特に、不良または欠陥の記憶素子を救済するための冗長方式に関する。
【背景技術】
【０００２】
フラッシュメモリ、ＤＲＡＭ等の半導体メモリでは、集積度が年々増加し、不良または欠陥のない記憶素子を製造することは難しい。このため、メモリチップ上には、製造工程中に発生する記憶素子の物理的な欠陥を見かけ上救済するための冗長スキームが利用される。例えば、ある冗長スキームでは、物理的な欠陥を有する記憶素子のアドレスを冗長メモリ領域の記憶素子のアドレスに変換するアドレス変換回路と、欠陥を有する記憶素子を救済するための冗長メモリ領域とを備えている。欠陥を有する記憶素子と冗長メモリ領域の記憶素子とのアドレス情報は、メモリチップのテスト時または製造出荷時にヒューズＲＯＭやレジスタ等に格納される。そして、欠陥を有する記憶素子のアドレスが入力され、当該アドレスが検出されると、欠陥を有する記憶素子へのアクセスが禁止され、その代わりに冗長メモリ領域の記憶素子がアクセスされ、外部からはあたかも欠陥を有する記憶素子が存在しないようにみえる（例えば、特許文献１、２）。こうした冗長スキームを利用することで、少ない数の記憶素子の欠陥が発生したとしても、良品として扱うことができるため、歩留まりが向上し、メモリのコストを低減することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−３１１４９６号公報
【特許文献２】特開２００２−２８８９９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＮＡＮＤ型のフラッシュメモリでは、複数の記憶素子（メモリセル）が直列に接続されたＮＡＮＤストリングを含むメモリアレイを有しており、メモリアレイからのデータの読出しまたはメモリアレイへのデータのプログラム（書込み）は、ページバッファ／センス回路を介してページ単位で行われる。また、ページ単位で読出しまたはプログラムをする場合、隣接するビット線間の干渉をできるだけ抑制するため、１ページを奇数ページと偶数ページとに分けて使用することも行われている。このようなフラッシュメモリにおいて、メモリアレイの列の不良（例えば、短絡やオープン）が発生した場合、不良を含む偶数列と奇数列とを１組の不良列とし、当該１組の不良列を、冗長メモリ領域の１組の冗長列によって救済している。
【０００５】
図１は、従来のフラッシュメモリにおける不良列の救済方法を説明する図である。図１（Ａ）に示すように、メモリアレイが、列アドレスCol_0の偶数列eと奇数列o、Col_1の偶数列eと奇数列o、Col_2の偶数列eと奇数列oを有する場合において、列アドレスCol_2の偶数列eと奇数列oとの間に不良Ｆ（例えば、短絡）が存在するとき、列アドレスCol_2の偶数列eと奇数列oの１組の不良列が、冗長メモリ領域の冗長列アドレスRed_0を有する１組の偶数列eと奇数ビットoによって救済される。
【０００６】
他方、図１（Ｂ）に示すように、列アドレスCol_1の奇数列oと列アドレスCol_2の偶数列eとの間に跨る不良Ｆが存在する場合には、列アドレスCol_1の偶数列eと奇数列oの１組の不良列と、列アドレスCol_2の偶数列eと奇数列oとの１組の不良列の合計２組の不良列が、冗長メモリ領域の冗長列アドレスRed_0の偶数列eと奇数列oとを有する1組の冗長列と、冗長列アドレスRed_1の偶数列eと奇数列oとを有する１組の冗長列によって救済される。
【０００７】
しかしながら、図１（Ｂ）に示す２組の不良列では、列アドレスCol_1の偶数列eと、列アドレスCol_2の奇数列oは実際には正常であるため、本来、これらの列を救済する必要はない。正常である、列アドレスCol_1の偶数列eと列アドレスCol_2の奇数列oを含めて救済するため、冗長メモリ領域の救済に無駄が生じ、救済効率が低下し、結果的に冗長メモリを増やさなければならず、フラッシュメモリのコストを上昇させてしまう。
【０００８】
本発明は、このような従来の課題を解決するものであり、冗長メモリによる不良列の救済効率の向上を図る半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る半導体記憶装置は、複数の記憶素子を有するメモリ領域と、複数の記憶素子を有する冗長メモリ領域とを有するメモリアレイと、前記メモリ領域の偶数列と奇数列とを１組とする不良列のアドレス、前記不良列の不良が偶数列または奇数列のいずれにあるかを識別する識別情報、および前記不良列を救済するための前記冗長メモリ領域の冗長列のアドレスとを含む冗長情報を記憶する記憶手段と、列アドレスに基づき前記メモリアレイの列を選択する列選択手段とを有し、前記列選択手段は、前記冗長情報に基づき列アドレスが前記不良列のアドレスに一致するか否かを判定し、一致する場合には前記識別情報に基づき前記不良列の一方の列を冗長列の一方の列に変換し、前記不良列の他方の列を冗長列の他方の列に変換せず、前記不良列の隣接する他方の列を冗長列の他方の列に変換する。
【００１０】
好ましくは前記不良列の一方の列は、奇数列であり、他方の列は、偶数列である。好ましくは前記不良列の一方の列は、偶数列であり、他方の列は、奇数数列である。好ましくは前記列選択手段は、奇数ページを選択するときまたは偶数ページを選択するとき、前記識別情報に基づき偶数列または奇数列に不良が存在するかを判定する。好ましくは半導体記憶装置はさらに、メモリアレイの選択されたページから読み出されたデータを保持し、または選択されたページにプログラムするデータを保持するページバッファを含み、前記列選択手段は、前記ページバッファに保持された奇数ページまたは偶数ページのデータを選択する。
【００１１】
本発明に係る不良列の救済方法は、複数の記憶素子を有するメモリ領域と、複数の記憶素子を有する冗長メモリ領域とを有するメモリアレイと、前記メモリ領域の偶数列と奇数列とを１組とする不良列のアドレス、および前記不良列を救済するための前記冗長メモリ領域の冗長列のアドレスとを含む冗長情報を記憶する記憶手段とを半導体記憶装置におけるものであって、前記不良列の不良が偶数列または奇数列のいずれにあるかを識別する識別情報を前記記憶手段に保持させるステップと、前記メモリアレイの列を選択するステップとを有し、前記選択するステップは、前記冗長情報に基づき列アドレスが前記不良列のアドレスに一致するか否かを判定するステップと、一致する場合には前記識別情報に基づき前記不良列の一方の列を冗長列の一方の列に変換し、前記不良列の他方の列を冗長列の他方の列に変換せず、前記不良列の隣接する他方の列を冗長列の他方の列に変換するステップとを有する。好ましくは前記選択するステップは、奇数ページを選択するときまたは偶数ページを選択するとき、前記識別情報に基づき偶数列または奇数列に不良が存在するかを判定するステップを含む。
【００１２】
本発明に係る冗長情報の設定方法は、複数の記憶素子を有するメモリ領域と、複数の記憶素子を有する冗長メモリ領域とを有するメモリアレイとを備えた半導体記憶装置におけるものであって、前記メモリ領域の偶数列と奇数列とを１組とする不良列を検出するステップと、前記検出された不良列の偶数列と奇数列の不良の組み合わせを識別するステップと、前記検出された不良列を前記冗長メモリ領域の冗長列に変換するためのアドレス情報、および前記識別された不良の組み合わせを示す識別情報を前記半導体記憶装置に設定するステップとを有する。好ましくは前記不良の組み合わせは、偶数列と奇数列に跨る不良、または奇数列と偶数列に跨る不良を識別する。
【発明の効果】
【００１３】
本発明によれば、冗長情報として不良列の不良が偶数列または奇数列のいずれにあるかを識別する識別情報を保持し、当該識別情報に基づき冗長列による不良列の救済を行うようにしたので、不良が存在しない偶数列または奇数列の不要な救済をなくすことができ、冗長メモリによる救済効率を向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】従来のフラッシュメモリの不良列の救済方法を模式的に説明する図である。
【図２】本発明の実施例に係るフラッシュメモリの一構成例を示すブロック図である。
【図３】メモリブロックの構成を示す図である。
【図４】ＮＡＮＤストリングユニットの構成を示す図である。
【図５】冗長情報記憶部の冗長情報の一例を示す図である。
【図６】本発明の実施例に係るフラッシュメモリの不良列の救済方法を説明するフローチャートである。
【図７】本実施例の不良列の救済方法の具体的を説明する図である。
【図８】本発明の実施例によるフラッシュメモリの不良列の救済方法を模式的に説明する図である。
【図９】本発明の実施例による冗長情報の設定方法を説明するフローチャートである。
【発明を実施するための形態】
【００１５】
次に、本発明の実施の形態について図面を参照して詳細に説明する。本発明は、種々のタイプの記憶構造を有する不揮発性メモリに適用することができるが、ここでは、好ましい形態として、ＮＡＮＤ型のフラッシュメモリを例示する。
【実施例】
【００１６】
図２は、本発明の実施例に係るＮＡＮＤ型フラッシュメモリの一構成を示す図である。本実施例のフラッシュメモリ１００は、複数のメモリセルが行列状に配列されたメモリアレイ１１０と、外部入出力端子Ｉ／Ｏに接続され入出力データを保持する入出力バッファ１２０と、入出力バッファ１２０からのアドレスデータを受け取るアドレスレジスタ１３０と、入出力バッファ１２０からのコマンドデータや外部制御信号を受け取り、各部を制御する制御部１４０と、メモリアレイ１１０の不良列や不良列を救済する冗長列に関する冗長情報を記憶する冗長情報記憶部１５０と、アドレスレジスタ１３０から行アドレス情報Ａｘを受け取り、行アドレス情報Ａｘのデコード結果に基づきブロックの選択およびワード線の選択等を行うワード線選択回路１６０と、ワード線選択回路１６０によって選択されたページから読み出されたデータを保持したり、選択されたページへの書込みデータを保持するページバッファ／センス回路１７０と、アドレスレジスタ１３０から列アドレス情報Ａｙを受け取り、列アドレス情報Ａｙのデコード結果に基づきページバッファ１７０のデータの選択等を行う列選択制御回路１８０と、データの読出し、プログラムおよび消去等のために必要な種々の電圧（プログラム電圧Vpgm、パス電圧Vpass、読出しパス電圧Vread、消去電圧Versなど）を生成する内部電圧発生回路１９０とを含んで構成される。
【００１７】
メモリアレイ１１０は、列方向に配置されたｍ個のメモリブロックBLK(0)、BLK(1)、・・・、BLK(m-1)を有する。図３は、１つのメモリブロック内の構成を説明する図である。メモリアレイ１１０は、通常のデータの読み書きを行うためのメモリセルが配置されたメモリ領域ＭＭと、メモリ領域ＭＭに含まれる不良列を救済するための冗長用のメモリセルが配置された冗長メモリ領域ＭＲとを有する。１つのメモリブロックには複数のページが含まれ、１つのページには、メモリ領域ＭＭのメモリセルと冗長メモリ領域ＭＲのメモリセルとが形成される。
【００１８】
図４は、１つのメモリブロック内に形成されるＮＡＮＤストリングの一例を示している。１つのメモリブロックは、複数のメモリセルが直列に接続されたＮＡＮＤストリングＮＵを行方向に複数配置して構成される。図の例では、１つのメモリブロックは、ｎ列（ビット）のＮＡＮＤストリングＮＵを含み、そのうちの一部が冗長メモリ領域ＭＲに割り当てられる。例えば、１ページは２Ｋバイトから構成され、例えば、その内の６４バイトが冗長メモリ領域に割り当てられる。偶数番目に配置されたビット線GBL0、GBL2、GBL4、…GBLn-2は、偶数ページを構成し、奇数番目に配置されたビット線GBL1、GBL3、GBL5、…GBLn-1は、奇数ページを構成する。
【００１９】
１つのＮＡＮＤストリングＮＵは、例えば、３２個の直列に接続されたメモリセルMCiと、ソース側選択トランジスタSEL_Sと、ドレイン側選択トランジスタSEL_Dとを含んで構成される。各メモリセルMCiのゲートは、対応するワード線WL0〜WL31にそれぞれ接続され、ソース側選択トランジスタSEL_Sおよびドレイン側選択トランジスタSEL_Dの各ゲートは、ソース側選択線SGS、ドレイン側選択線SGDにそれぞれ接続される。また、ソース側選択トランジスタSEL_Sは、共通ソース線SLに接続され、ドレイン側選択トランジスタSEL_Dは、ビット線GBLに接続される。
【００２０】
ワード線WL0〜WL31、ソース選択線SGS、ドレイン選択線SGDは、ブロック選択線BSELをゲートに共通に入力するブロック選択トランジスタを介してワード線選択回路１６０に接続される。ワード線選択回路１６０は、行アドレスＡｘに基づきブロック選択線BSELを介してブロックを選択し、選択されたブロックのソース側選択線SGS、ドレイン側選択線SGD、ワード線WL0〜WL31を動作状態に応じて適宜駆動する。
【００２１】
メモリセルは、例えば、チャンネル上に形成されたトンネル酸化膜と、トンネル酸化膜上に形成された電荷と蓄積するフローティングゲート（電荷蓄積層）と、フローティングゲート上に誘電体膜を介して形成されたコントロールゲートとを含むＭＯＳ型のトランジスタから構成される。典型的に、フローティングゲートに電荷が蓄積されていないとき、つまりデータ「１」が書込まれているとき、しきい値は負状態にあり、メモリセルは、ノーマリオンである。フローティングゲートに電子が蓄積されたとき、つまりデータ「０」が書き込まれているとき、しきい値は正にシフトし、メモリセルは、ノーマリオフである。メモリセルは、２値データを記憶するもの、あるいは多値データを記憶するものいずれであってもよい。
【００２２】
各ＮＡＮＤストリングＮＵに接続されたビット線GBL0、GBL1、・・・、GBLn-1は、図示しないビット線選択回路を介してページバッファ／センス回路１７０に接続される。好ましい態様では、ビット線選択回路は、読出し時やプログラム時に、偶数ページ（偶数ビット線）または奇数ページ（奇数ビット線）を選択し、選択された偶数ビット線または奇数ビット線をページバッファ／センス回路１６０に接続する。例えば、１ページの読出しを行う場合、奇数ページがＧＮＤ等の基準電位に接地され、偶数ページのビット線の電位または電流がセンス回路によって感知され、次に、偶数ページがＧＮＤ等の基準電位に接地され、奇数ページのビット線の電位または電流がセンス回路によって感知される。このように偶数ページと奇数ページとに分けて読出しまたはプログラムをするような場合、１つのセンス回路は、一対の偶数ビット線および奇数ビット線で共有され、偶数ページおよび奇数ページがそれぞれ１ページを構成するならば、ページバッファ／センス回路１７０は、１ページ分のセンス回路を含み、ページバッファは２ページ分のデータを保持する。例えば、メモリアレイ１１０の１ページが２Ｋバイトであるとき、読出し動作時に、半分の１Ｋバイトの偶数ビットのデータがセンス回路によって感知され、感知されたデータが保持され、次に、半分の１Ｋバイトの奇数ビットのデータがセンス回路によって感知され、感知されたデータが保持される。
【００２３】
また、他の態様では、ページバッファ／センス回路１７０は、ページバッファと同一のデータを保持するキャッシュレジスタを含むことができ、キャッシュレジスタは、転送ゲートを介してページバッファに接続される。ページバッファがメモリアレイの選択されたページに接続されている間に、キャッシュレジスタを介してデータの入出力を行うようにしてもよい。
【００２４】
冗長情報記憶部１５０は、メモリ領域ＭＭに含まれる不良列（不良ビット線）のアドレス情報や、不良列を救済する冗長列のアドレス情報等を記憶する。不良列は、製品出荷時に存在している物理的な欠陥であり、不良列は、例えば、隣接する列間の短絡、列の断線（オープン）、あるいはメモリセルの故障等の欠陥を有する。冗長情報は、不良列のアドレス、不良列の偶数列または奇数列のいずれに不良が存在するのかを識別するためのフラグビット、不良列を救済するための冗長列のアドレス等を含む。このような冗長情報は、製品出荷時に、例えば、ヒューズＲＯＭやその他の不揮発性の媒体に記憶される。
【００２５】
図５は、冗長情報記憶部１５０により記憶される冗長情報の一例である。冗長情報は、不良列の列アドレスと、不良列の属性情報として不良列の偶数列または奇数列のいずれに不良が存在するかを識別するフラグビットと、不良列を救済する冗長列のアドレスとを有する。本実施例では、偶数列と奇数列とを含む１組の不良列を冗長メモリ領域ＭＲの1組の冗長列によって救済するため、不良列の列アドレスには、偶数列と奇数列とが含まれ、フラグビットは、不良列の偶数列と奇数列のいずれかが不良であるかを識別する。ここでは、フラグ「Ｌ」は、少なくとも偶数列が不良を含むことを表し、フラグ「Ｈ」は、奇数列のみが不良を含むことを表す。言い換えれば、メモリアレイの先頭のビット線が偶数ビットから開始するとしたとき、フラグ「Ｌ」は、不良列の不良が偶数ビットから始まることを意味し、フラグ「Ｈ」は、不良列の不良が奇数ビットから始まることを意味する。図５の例では、列アドレスCol_1は、フラグ「Ｈ」であるため、列アドレスCol_1の不良が奇数列であり、列アドレスCol_2は、フラグ「Ｌ」であるため、列アドレスCol_2の不良が偶数列を含む。この列アドレスCol_1と、列アドレスCol_1の不良は、図１（Ｂ）の不良列の関係を表している。
【００２６】
列選択制御回路１８０は、列アドレス情報Ａｙに基づきビット線を選択し、選択されたビット線へのデータの書込み、あるいは選択されたビット線からのデータの読出しを可能にする。また、列選択制御回路１８０は、冗長情報記憶部１５０に記憶された冗長情報に基づき列アドレスＡｙが不良列のアドレスに一致する場合には、これを冗長列のアドレスに変換する。列選択制御回路１８０は、外部から入力された列アドレスに従いランダムな読出しまたはプログラムを行う場合、入力された列アドレスが不良列のアドレスに一致するか否かを判定し、一致する場合には、アドレスポインタを冗長列の列アドレスに移動させる。また、シーケンシャルな読出しまたはプログラムを行う場合、開始列アドレスからインクリメントされた列アドレスが不良列の列アドレスに一致するか否かを判定し、一致する場合には、アドレスポインタを冗長列の列アドレスに移動させる。ここで留意すべきは、列アドレスの変換は、不良列の属性を表すフラグビットの値によって異なる。つまり、フラグが「Ｌ」である場合には、不良列は、図１（Ａ）に示すような偶数列から始まる不良であり、偶数列と奇数列を含む１組の不良列が１組の冗長列によって救済される。これに対し、フラグが「Ｈ」である場合には、不良列は、図１（Ｂ）に示すように奇数列から始まるため、不良が存在しない偶数列が冗長列に置換されずに、不良が存在する奇数列が冗長列によって置換されるように列アドレスが変換される。
【００２７】
次に、本実施例のフラッシュメモリの不良列の救済方法について図６のフローを参照して説明する。外部のコントローラから読出しコマンド、アドレス情報および外部制御信号などがフラッシュメモリに入力されると、制御部１４０は、読出しコマンドに基づき各部の動作を制御する。ここでは、１つの読出し動作の例として、ページバッファ／センス回路１７０によって保持されたデータが連続的に読み出されるものとする。従って、列選択制御回路１８０は、アドレスバッファ１３０から提供された開始列アドレスを１つずつインクリメントさせながら、ページバッファ／センス回路１７０に保持されたデータを読み出すものとする。列アドレスのインクリメントは、ソフトウエアによってアドレスポインタを移動させるもの、あるいはアドレスカウンタを用いるもののいずれであってもよい。
【００２８】
列選択制御回路１８０は、上記したように列アドレスを１つインクリメントし（Ｓ１００）、図５に示す冗長情報を参照し、列アドレスが不良列アドレスに該当するか否かを判定する（Ｓ１０２）。不良列アドレスは、冗長列によって救済または修復されるべき列アドレスである。列アドレスが不良列アドレスに一致しない場合には、ステップＳ１００により列アドレスが１つインクリメントされる。列アドレスが不良列アドレスに一致する場合には、列選択制御回路１８０は、不良列の属性として付加されたフラグビットを参照し、フラグビットが「Ｈ」または「Ｌ」を判定する（Ｓ１０４）。
【００２９】
フラグビットが「Ｌ」であるとき、すなわち不良列が偶数列に存在する場合には、列選択制御回路１８０は、冗長情報に示される冗長列アドレスにアドレスポインタを移動させ（Ｓ１０８）、冗長列に保持されたデータの読出しを行う。すなわち、偶数列と奇数列を有する1組の不良列は、そのまま冗長列によって救済され、偶数ページの読出し動作時には、冗長列の一方の列が読み出され、奇数ページの読出し動作時には、冗長列の他方の列が読み出されるように、アドレスポインタが移動される。
【００３０】
他方、フラグビットが「Ｈ」であるとき、すなわち不良列が奇数列に存在する場合には（Ｓ１０４）、列選択制御回路１８０はさらに、奇数ページの読出し動作か否かを判定する（Ｓ１０６）。偶数ページの読出し動作時には、不良列アドレスを１つインクリメントし（Ｓ１１０）、インクリメントされた不良アドレスを冗長列の一方の列によって救済し、奇数ページの読出し動作時には、不良列アドレスをインクリメントすることなく、冗長列の他方の列によって救済するようにアドレスポンタの移動を制御する（Ｓ１０８）。
【００３１】
なお、本実施例の不良列の救済は、その他のランダム読出し動作時、あるいはランダムないしシーケンシャルなプログラム動作時にも上記と同様に行われる。
【００３２】
図７に具体的な不良列の救済例を示す。ここで、不良列のアドレスは、「０１１００１１」とし、上段は、フラグビットが「Ｌ」のとき（偶数列に不良が存在するとき）の列アドレス変換を示し、下段は、フラグビットが「Ｈ」のとき（奇数列に不良が存在するとき）の列アドレスの変換を示している。
【００３３】
上段に示すようにフラグビットが「Ｌ」の場合、列アドレスが１つずつインクリメントされ、インクリメントされた列アドレスが「０１１００１１」にヒットしたとき、偶数ページの動作であれば、不良列アドレスが冗長列の一方の列アドス（図中、Ｒで示す）に変換され、また、奇数ページの動作であれば、不良列アドレスが冗長列の他方の列アドレス（図中、Ｒで示す）に変換される。
【００３４】
下段に示すようにフラグビットが「Ｈ」の場合、列アドレスが不良列「０１１００１１」にヒットしたとき、奇数ページの動作であれば、不良アドレスが冗長列の一方の列アドレス（図中、Ｒで示す）に変換されるが、偶数ページの動作であれば、不良アドレスが１つインクリメントされ、インクリメントされた不良アドレスが冗長列の他方の列アドレスに変換される。
【００３５】
図８（Ａ）、（Ｂ）は、本実施例の不良列の救済を模式的に示したものであり、図８（Ａ）、（Ｂ）は、それぞれ図１（Ａ）、（Ｂ）に対応する。図１（Ａ）、図８（Ａ）に示すように、列アドレスCol_2の偶数列ｅに不良が存在する場合には、フラグビットが「Ｌ」であり、１組の不良列Col_2が１組の冗長列Red_0によって救済される。一方、図８（Ｂ）に示すように、不良列Col_1の奇数列oと不良列Col_2の偶数列ｅに不良が存在する場合には、フラグビットが「Ｈ」となる。従来の救済方法とは異なり、不良列アドレスCol_1の偶数列eは救済されず、不良列アドレスCol_1の奇数列oと隣接する不良列アドレスCol_2の偶数列eの1組が冗長列Red_0によって救済される。
【００３６】
このように本実施例によれば、偶数列と奇数列とを含む1組の列を列単位で冗長列に救済する方法において、隣接する列に不良が跨る場合であっても、１組の冗長列による救済を可能にすることで、冗長メモリによる救済効率を向上させ、製品の歩留まりを改善させることができる。
【００３７】
なお、上記実施例では、便宜上、ページの先頭が偶数列から開始される例を示したが、これとは異なり、奇数列から開始されるものであっても、本発明は、上記と同様に適用することができる。
【００３８】
次に、本実施例による冗長情報の設定方法について図９のフローを参照して説明する。フラッシュメモリの出荷前に、不良品検査装置あるいは外部のコントローラによって予め決められたテストシーケンス等を実行することで、フラッシュメモリの不良列を検出する（Ｓ２００）。例えば、チップ外部から書込み動作を行い、メモリアレイから読み出したデータと書込みデータとを比較（ベリファイ）し、ベリファイ結果に基づき不良列またはカラム不良等を検出する。あるいは消去コマンドによりブロック単位で消去を行い、消去ベリファイ結果に基づき不良列またはカラム不良を検出する。次に、検出された不良列の不良の態様または組み合わせを識別する（Ｓ２１０）。どのような識別情報にするかは、フラッシュメモリの動作仕様にも依存し得るが、例えば、不良列の不良は、偶数列または奇数列に存在するのかが識別される。あるいは、偶数列から奇数列に跨る不良の組み合わせか、奇数列から偶数列に跨る不良の組み合わせかの識別であってもよい。次に、図５に示すような冗長情報が、フラッシュメモリのヒューズＲＯＭ、あるいはその他の不揮発性記憶部に設定される（Ｓ２２０）。
【００３９】
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４０】
１００：フラッシュメモリ                      １１０：メモリアレイ
１２０：入出力バッファ                        １３０：アドレスレジスタ
１４０：制御部                                １５０：冗長情報記憶部
１６０：ワード線選択回路                      １７０：ページバッファ／センス回路
１８０：列選択制御回路                        １９０：内部電圧発生回路
ＭＭ：メモリ領域                              ＭＲ：冗長メモリ領域
【図１】
2017021872.tif 000003
【図２】
2017021872.tif 000004
【図３】
2017021872.tif 000005
【図４】
2017021872.tif 000006
【図５】
2017021872.tif 000007
【図６】
2017021872.tif 000008
【図７】
2017021872.tif 000009
【図８】
2017021872.tif 000010
【図９】
2017021872.tif 000011