(57)【特許請求の範囲】
【請求項１】
複数のメモリセルをそれぞれ有する複数のセクタであって，各一対のセクタで複数のセクタグループを構成する複数のセクタと，
前記複数のセクタグループのそれぞれの動作として，１ビットのデータを１つの前記セクタの１つの前記メモリセルで記憶する単相セルモード又は前記１ビットのデータを前記セクタグループの一対のセクタにそれぞれ含まれる一対の前記メモリセルで相補データとして記憶する相補セルモードのいずれかを選択し，選択結果を出力するモード判定部と，
前記選択結果に基づいて，前記セクタグループを前記単相セルモード又は相補セルモードで動作させる動作制御部とを有し，
前記モード判定部は，前記セクタグループの一対のセクタが消去状態のときに一方のセクタに書込み要求があるとき当該セクタグループを相補セルモードと判定する半導体記憶装置。
【請求項２】
請求項１において，
前記モード判定部は，前記相補セルモードのセクタグループの他方のセクタに書込み要求があったとき，当該セクタグループを前記単相セルモードと判定する半導体記憶装置。
【請求項３】
請求項１において，
前記モード判定部は，前記複数のセクタのそれぞれに対応して，前記セクタが書込み要求に対応した書込み状態であるか，又は消去要求に対応した消去状態であるかを識別するセクタ状態データを保持するセクタ状態メモリと， 
前記セクタグループを構成する一方のセクタに対応する前記セクタ状態データと他方のセクタに対応する前記セクタ状態データとに基づき，前記選択結果を出力するセクタ状態メモリアクセス制御回路とを有する半導体記憶装置。
【請求項４】
請求項３において，
前記セクタ状態メモリアクセス制御回路は，前記一方のセクタ及び前記他方のセクタの前記セクタ状態データがともに前記消去状態である前記セクタグループの前記一方のセクタに書込み要求があった場合，前記セクタグループについて前記相補セルモードの選択結果を出力し，前記一方のセクタの前記セクタ状態データを書込み状態に変更する半導体記憶装置。
【請求項５】
請求項４において，
前記セクタ状態メモリアクセス制御回路は，前記相補セルモードである前記セクタグループの前記他方のセクタに書込み要求があった場合，前記セクタグループについて前記単相セルモードの選択結果を出力し，前記他方のセクタの前記セクタ状態データを書込み状態に変更する半導体記憶装置。
【請求項６】
請求項１又は３において，
前記動作制御部は，前記選択結果に基づいてデータの書込み又は読み出しを行うセクタを選択するセクタ制御回路と，前記選択結果に基づいて書込みデータの相補データを前記セクタグループの一対のセクタに書込むか又は書込みデータを一方のセクタに書込むライトアンプと，前記選択結果に基づいて前記セクタグループの一対のセクタからの相補データに基づいて読み出しデータを出力するか又は前記一方のセクタからのデータに基づいて前記読み出しデータを出力するリードアンプとを有する半導体記憶装置。
【請求項７】
請求項６において，
前記セクタ制御回路は，前記単相セルモードの場合，入力されたアドレス信号に対応する前記一方のセクタを選択し，前記相補セルモードの場合，前記一方のセクタ及び前記一方のセクタと同じ前記セクタグループを構成する他方のセクタを選択する半導体記憶装置。
【請求項８】
請求項１において，
前記複数のセクタはそれぞれセクタ番号を有し，
前記複数のセクタは，セクタ番号の中間値よりセクタ番号の小さい第１のセクタ群と大きい第２のセクタ群に分けられ，
前記セクタグループは，前記第１のセクタ群のセクタのうちセクタ番号のより小さいセクタと第２のセクタ群のセクタのうちセクタ番号のより大きいセクタから順に一対のセクタを構成し， 
前記セクタ番号の小さいセクタから順に書込み要求が入力され，前記第１のセクタ群のセクタに対する書込み要求に対しては前記相補セルモードでデータを記憶し，前記第２のセクタ群のセクタに対する書込み要求に対しては前記単相セルモードでデータを記憶する半導体記憶装置。
【請求項９】
請求項１において，
前記セクタグループの一対のセクタのいずれか一方のセクタへの書込み要求に応答して前記相補セルモードでデータを記憶した後，前記前記相補セルモードであるセクタグループの他方のセクタへの書込み要求に応答して単相セルモードでデータを記憶する半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，半導体記憶装置に関する。
【背景技術】
【０００２】
一般にフラッシュメモリにおいては，フローティングゲートに電子を注入する又はしない，すなわちプログラムする又はしないことにより，データをメモリセルに記憶する。反対に，フローティングゲートから電子を引き抜く，すなわち消去することによりメモリセルのデータを消去する。通常，メモリセルに１ビットのデータを記憶するフラッシュメモリでは，プログラムされたメモリセルの状態を“０”，消去されたメモリセルの状態を“１”にそれぞれ対応させており，“０”の状態ではメモリセルの閾値電圧は高電圧レベル，“１”の状態ではメモリセルの閾値電圧は低電圧レベルとなる。
【０００３】
メモリセルからデータを読み出す時，プログラム状態の閾値電圧と消去状態の閾値電圧との中間電圧を閾値電圧に設定されたリファレンスセルの電流をリファレンス電流として，読み出しメモリセルのドレイン電流とリファレンス電流とを比較する。そして，読み出したメモリセルのドレイン電流がリファレンス電流よりも大きいか小さいかに応じて，データ“０”又は“１”の判定を行う。しかし，メモリセルの閾値電圧はある程度の広がりをもつ分布をもっているため，リファレンスセルとの閾値マージンを十分に確保できていないメモリセルが存在しており，正しくデータを読み出せないことがある。
【０００４】
これに対処するため，特許文献２〜５では，一対のメモリセルに常に相補的に対となった正と負の論理状態を記憶する方式（以下，相補セルモードと呼ぶ。）が採用されている。相補セルモードで一対のメモリセルにデータを記憶することで，フラッシュメモリからデータを読み出す時，一方のメモリセルをリファレンスセルとして使用して十分な閾値マージンを確保することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２５７１０９号公報
【特許文献２】特開２００５−９２９１５号公報
【特許文献３】特開２００８−８４４２６号公報
【特許文献４】特開平６−２３６６８７号公報
【特許文献５】特開２００５−１４１９０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特に，信頼性が要求されるデータに対しては，全てのメモリ領域を相補セルモードによりメモリセルへ記憶を行うことが有効である。しかし，一対のメモリセルで１ビットのデータを記憶するため，１つのメモリセルで１ビットのデータを記憶する従来の方式（以下，単相セルモードと呼ぶ。）と比較すると，使用可能な記憶容量が半分となってしまい大容量データの記憶には適さない。また，フラッシュメモリに記憶するデータは，データによって信頼性のレベルが異なり，必ずしも全てのデータを相補セルモードで記憶する必要が無く，信頼性のレベルが低いデータについては単相セルモードで記憶する方が良い場合もある。
【０００７】
そこで，本発明の目的は，信頼性が要求されるデータだけでなく大容量データにも対応した半導体記憶装置を提供することとする。
【課題を解決するための手段】
【０００８】
半導体記憶装置の第１の側面は，
複数のメモリセルをそれぞれ有する複数のセクタであって，各一対のセクタで複数のセクタグループを構成する複数のセクタと，
前記複数のセクタグループのそれぞれの動作として，１ビットのデータを１つの前記セクタの１つの前記メモリセルで記憶する単相セルモード又は前記１ビットのデータを前記セクタグループの一対のセクタにそれぞれ含まれる一対の前記メモリセルで相補データとして記憶する相補セルモードのいずれかの選択結果を出力するモード判定部と，
前記選択結果に基づいて，前記セクタグループを前記単相セルモード又は相補セルモードで動作させる動作制御部とを有する半導体記憶装置。
【発明の効果】
【０００９】
半導体記憶装置の第１の側面によれば，信頼性が要求されるデータだけでなく大容量データにも対応することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は，本実施の形態におけるフラッシュメモリのメモリセルアレイを示す図である。
【図２】図２は，本実施の形態におけるフラッシュメモリの構成を示すブロック図である。
【図３】図３は，第１の実施の形態における半導体記憶装置の書込み動作を示すフローチャート図である。
【図４】図４は，第１の実施の形態における下位セクタと上位セクタのセクタ状態を示す図である。
【図５】図５は，第１の実施の形態における書込み方式の判定動作を示す図である。
【図６】図６は，第１の実施の形態におけるフラッシュメモリの下位および上位セクタがともに一括消去状態であるときに，下位セクタ，上位セクタの順に書込み要求があった場合のフラグ信号の波形図である。
【図７】図７は，第１の実施の形態におけるフラッシュメモリの下位および上位セクタがともに一括消去状態であるときに，下位セクタに書込み要求，一括消去要求が順にあった場合のフラグ信号の波形図である。
【図８】図８は，第１の実施の形態における外部電源がオンされたときの各信号の立ち上がりを示す波形図である。
【図９】図９は，第１の実施の形態における内部ＥＲＳコマンドの生成を示すブロック図である。
【図１０】図１０は，第１の実施の形態におけるフラッシュメモリの電源をオンしたときのフラグ信号及び内部フラグ信号の波形を示す波形図である。
【図１１】図１１は，第１の実施の形態における反転データの一括消去動作実施判断のフローチャート図である。
【図１２】図１２は，第１の実施の形態におけるセクタ制御回路（デコーダ）を示す図である。
【図１３】図１３は，第１の実施の形態におけるメモリセルアレイを示す図である。
【図１４】図１４は，第１の実施の形態におけるリードパスを示す図である。
【図１５】図１５は，第１の実施の形態におけるプログラムパスを示す図である。
【図１６】図１６は，第１の実施の形態におけるアンプ制御回路を示す図である。
【図１７】図１７は，第１の実施の形態におけるアンプ制御信号の真理値表を示す図である。
【図１８】図１８は，第２の実施の形態における半導体記憶装置の動作を示すフローチャート図である。
【図１９】図１９は，第２の実施の形態における下位セクタと上位セクタのセクタ状態を示す図である。
【図２０】図２０は，第２の実施の形態における書込み方式の判定動作を示す図である。
【図２１】図２１は，第２の実施の形態におけるフラッシュメモリの下位および上位セクタがともに一括消去状態であるときに，下位セクタ，上位セクタの順に書込み要求があった場合のフラグ信号の波形図である。
【図２２】図２２は，第２の実施の形態における外部電源がオンされたときの各信号の立ち上がりを示す波形図である。
【図２３】図２３は，第２の実施の形態における内部ＥＲＳコマンドの生成を示すブロック図である。
【図２４】図２４は，第２の実施の形態におけるセクタ制御回路（デコーダ）を示す図である。
【図２５】図２５は，第２の実施の形態におけるリードパスを示す図である。
【図２６】図２６は，第２の実施の形態におけるプログラムパスを示す図である。
【図２７】図２７は，第２の実施の形態における上位セクタ向けのアンプ制御回路を示す図である。
【図２８】図２８は，第２の実施の形態における下位セクタ向けのアンプ制御回路を示す図である。
【図２９】図２９は，第２の実施の形態におけるアンプ制御信号の真理値表を示す図である。
【発明を実施するための形態】
【００１１】
以下，図面を用いて本発明の実施の形態について説明する。
【００１２】
図１は，本実施の形態におけるフラッシュメモリのメモリセルアレイを示す図である。
【００１３】
メモリセルアレイ１０は，複数のメモリセルを有する８つのセクタＳｅｃｔｏｒ０〜７と，２つのセクタを組分けした４つのセクタグループＳＧ０〜３とを有する。また，セクタＳｅｃｔｏｒ０〜７はそれぞれセクタ番号０〜７を有し，以下，セクタ番号０〜３を有するセクタＳｅｃｔｏｒ０〜３を下位セクタ，セクタ番号４〜７を有するセクタＳｅｃｔｏｒ４〜７を上位セクタと呼ぶこととする。そして，セクタグループＳＧ０〜３は，セクタＳｅｃｔｏｒ０，１，２，３とＳｅｃｔｏｒ７，６，５，４をそれぞれ組み分けたものである。つまり，セクタグループＳＧ０〜３は，下位セクタと上位セクタを組み分けたものである。
【００１４】
データの書込み方式が単相セルモードの場合には，８つのセクタＳｅｃｔｏｒ０〜７のうち，１つのセクタの１つのメモリセルを選択し，１ビットのデータを書込む。一方，相補セルモードの場合には，８つのセクタＳｅｃｔｏｒ０〜７のうち１つのセクタの１つのメモリセルを選択すると，選択したメモリセルに１ビットのデータが書込まれるだけでなく，同じセクタグループ内にある他方のセクタの１つのメモリセルに対してその反転データが書込まれる。すなわち，相補セルモードでは，一対のセクタに相補データが書込まれる。
【００１５】
また，メモリセルに書込んだデータを消去する場合には，セクタ単位でデータを一括消去する。具体的には，消去するデータを有するセクタを選択し，そのセクタ内にあるメモリセルの状態をすべてプログラム状態“０”にした後に，そのセクタ内にある全メモリセルのデータを消去してメモリセルの状態をすべて消去状態“１”にする。
【００１６】
なお，データの書込み，一括消去は，フラッシュメモリ１０に対して外部からの書込みの要求，一括消去の要求があったときに行われる。さらに，データの書込みとは，データ“０”の書込みは消去状態“１”からプログラム状態“０”へプログラムすることであり，データ“１”の書込みは消去状態“１”のままにすることである。また，各要求で選択されたセクタの状態をそれぞれ書込み状態，一括消去状態と呼ぶこととする。
【００１７】
本実施の形態における半導体記憶装置は，このセクタの状態に基づいて単相セルモード又は相補セルモードのいずれかに判定して，データの書込みを行う。
【００１８】
図２は，本実施の形態におけるフラッシュメモリの構成を示すブロック図である。
【００１９】
コマンド生成回路２０１は，チップイネーブル信号ＣＥＸやライトイネーブル信号ＷＥＸ等のコマンドを外部から供給され，メモリセルからのデータの読み出し，メモリセルへのデータの書込み若しくはセクタ内のメモリセルのデータの一括消去等の要求に応じて，読み出しコマンドＲＤ，書込みコマンドＰＧＭ若しくは一括消去コマンドＥＲＳ等のコマンド信号を出力する。
【００２０】
アドレス入力回路２０２は，外部アドレス信号ＦＡ００〜２０を入力しアドレス選択回路２１０へアドレス信号ＡＤを出力する。
【００２１】
データ入出力回路２０３は，データ端子ＤＩＮ００〜１５を介して書込みデータＤＩを入力し，データ端子ＤＯ００〜１５を介して読み出しデータＤＯを出力する。
【００２２】
動作制御回路２０８は，読み出しコマンドＲＤ，書込みコマンドＰＧＭ，一括消去コマンドＥＲＳ等のコマンド信号に応答して，読み出し動作や書込み動作，一括消去動作等を制御するメモリコア制御信号等のタイミング信号や，メモリセルに書込まれた反転データ等を消去する内部ＥＲＳコマンドを出力する。また，ベリファイ動作のためにデータ入出力回路２０３から入力データ，リードアンプ２２０から出力データＤＯを入力する。
【００２３】
内部アドレス生成回路２０９は，動作制御回路２０８からのタイミング信号に応答してベリファイ動作用内部アドレス信号ＩＡを生成する。
【００２４】
アドレス選択回路２１０は，アドレス信号ＡＤおよび内部アドレス信号ＩＡを入力し，ロウアドレス信号ＲＡおよびコラムアドレス信号ＣＡを出力する。
【００２５】
セクタ状態メモリ２０６、セクタ状態メモリアクセス制御回路２０７およびフラグ信号生成回路２１１は、各セクタグループの動作方式（単相セルモード又は相補セルモード）を判定するモード判定部を構成している。
【００２６】
セクタ状態メモリ２０６は，各セクタのセクタ状態を記憶する不揮発性メモリである。つまり，メモリセルアレイのセクタに対して書込み要求が入力された書込み状態であるか，一括消去要求が入力された状態である一括消去状態であるかを識別するセクタ状態データを保持する。セクタ毎にセクタ状態メモリが設けられており，各セクタ状態メモリは対応するセクタのセクタ状態データに基づいて，それぞれセクタ状態信号を出力する。さらに，セクタ状態メモリ２０６は，各セクタグループの動作方式（単相セルモード又は相補セルモード）を記憶する。
【００２７】
セクタ状態メモリアクセス制御回路２０７は，コマンド信号，ロウアドレス信号ＲＡ，コラムアドレス信号ＣＡ，タイミング信号，フラグ信号生成回路２１１が出力するフラグ信号ｔｗｉｎｓを入力し，セクタ状態メモリ２０６へのセクタ状態データの記憶動作を制御する。さらに，セクタ状態メモリアクセス制御回路２０７は，セクタ状態メモリ２０６が出力するセクタ状態信号に基づいて，各セクタグループの動作を単相セルモード又は相補セルモードに判定する。そして，セクタ状態メモリアクセス制御回路２０７は，その判定結果をセクタ状態メモリ２０６に記憶する。
【００２８】
内部電圧生成回路２０４は外部電源電圧に応じて，Ｘ制御回路２１３等のフラッシュメモリ内部の各回路で使用する複数種類の内部電源電圧を生成する。
【００２９】
パワーオンリセット回路２０５は，外部より電源ＶＤＤを供給されたことを検出し，パワーオンリセット信号ＰＯＲを動作制御回路２０８，フラグ信号生成回路２１１に出力する。
【００３０】
フラグ信号生成回路２１１は，セクタ状態メモリ２０６に記憶されている判定結果（単相セルモード又は相補セルモード）をセクタごとにラッチしてフラグ信号ｔｗｉｎｓを出力する。
【００３１】
メモリセルアレイ２１７は，行方向（水平方向）に延びる複数のワード線とソース線と，列方向（垂直方向）に延びる複数のグローバルビット線および複数のローカルビット線とを有する。なお，詳細な構成に関しては，図１３にて後述する。
【００３２】
セクタ制御回路２１２、ライトアンプ２１９およびリードアンプ２２０はフラグ信号ｔｗｉｎｓに基づきメモリセルアレイ２１７の動作を制御する動作制御部である。
【００３３】
セクタ制御回路２１２は，フラグ信号ｔｗｉｎｓ，メモリコア制御信号，ロウアドレス信号ＲＡおよびコラムアドレス信号ＣＡに基づいて，データの読み出し，書込み又は一括消去等の対象となるセクタを選択する信号ＳＳを出力する。
【００３４】
Ｘ制御回路２１３は，ロウアドレス信号ＲＡをデコードし，メモリセルアレイのワード線の駆動信号ＷＬＳＥＬと，ソース線の駆動信号ＳＬＳを出力する。
【００３５】
Ｙ制御回路２１４は，コラムアドレス信号ＣＡをデコードし，ローカルビット線選択信号ＬＢＳＥＬを出力する。
【００３６】
Ｙ制御回路２１５は，コラムアドレス信号ＣＡをデコードし，グローバルビット線選択信号ＹＳＥＬを出力する。
【００３７】
アンプ制御回路２１６は，メモリコア制御信号，フラグ信号ｔｗｉｎｓおよびロウアドレス信号ＲＡ，書込みコマンドＰＧＭに基づいて，上位セクタ選択信号ＵＳＥＬ，下位セクタ選択信号ＬＳＥＬ，相補パス選択信号ｔｗｉｎ，参照セル選択信号／ｔｗｉｎ，相補出力制御信号／ＲＡｏｕｔＨ，リードアンプイネーブル信号ＲＡｅｎ，書込みコマンドＰＧＭ，書込みクロック信号／ＰＧＭＣＫを出力する。
【００３８】
ライトアンプ２１９は，書込みデータＤＩを受け，書込みコマンドＰＧＭ，書込みクロック信号／ＰＧＭＣＫ，上位セクタ選択信号ＵＳＥＬ，下位セクタ選択信号ＬＳＥＬ，相補パス選択信号ｔｗｉｎ，参照セル選択信号／ｔｗｉｎに基づき，メモリセルアレイに書込みデータを出力する。
【００３９】
リードアンプ２２０は，上位セクタ選択信号ＵＳＥＬ，下位セクタ選択信号ＬＳＥＬ，相補パス選択信号ｔｗｉｎ，参照セル選択信号／ｔｗｉｎ，相補出力制御信号／ＲＡｏｕｔＨ，リードアンプイネーブル信号ＲＡｅｎに基づいて，読み出しデータＤＯを出力する。
【００４０】
コラムスイッチ２１８は，グローバルビット線選択信号ＹＳＥＬに応答して，メモリセルアレイ２１７の所定のグローバルビット線を選択し，ライトアンプ２１９またはリードアンプ２２０に接続する。
【００４１】
［第１の実施の形態］
第１の実施の形態では，使用するセクタの順番がセクタ番号の昇順となるようにアドレス入力回路２０２に外部アドレス信号ＦＡ００〜２０が入力され，データ入出力回路２０３に書込みデータＤＩが入力され，各セクタに書込みデータＤＩが書込まれる。具体的には，まず，セクタＳｅｃｔｏｒ０からセクタＳｅｃｔｏｒ３まで相補セルモードで入力データの書込みが順に開始され，セクタＳｅｃｔｏｒ０〜３に対応するすべての上位セクタＳｅｃｔｏｒ７〜４に入力データの反転データが書込まれる。そして，引き続きデータの書込みが行われる場合には，セクタＳｅｃｔｏｒ４から順にセクタＳｅｃｔｏｒ７まで単相セルモードでデータが書込まれる。ただし，セクタＳｅｃｔｏｒ４からデータの書込みが開始されるとき，上位セクタＳｅｃｔｏｒ４〜７には下位セクタＳｅｃｔｏｒ３〜０の反転データが書込まれているため，単相セルモードで書込みを開始する前に反転データの一括消去を行う。
【００４２】
図３は，第１の実施の形態における半導体記憶装置の書込み動作を示すフローチャート図である。
【００４３】
出荷時のフラッシュメモリでは，全てのメモリセルの状態が消去状態（データ“１”）になっており，セクタ状態メモリ２０６の各セクタのセクタ状態データは一括消去状態となっている。以降，セクタグループの２つのセクタのセクタ状態データが一括消去状態となっていることを，初期状態と呼ぶこととする。
【００４４】
全てのセクタグループが初期状態の場合にデータ入出力回路２０３に書込みデータＤＩが入力され，外部からの書込み要求に応答してコマンド生成回路２０１が書込みコマンドＰＧＭを出力すると，外部アドレス信号ＦＡ００〜２０に基づいてアドレス選択回路２１０で生成されたロウアドレス信号ＲＡにより，セクタ制御回路２１２がセクタＳｅｃｔｏｒ０を選択する（Ｓ３０１）。そして，セクタ状態メモリアクセス制御回路２０７はセクタＳｅｃｔｏｒ０，７のセクタ状態データに基いて相補セルモードと判定し，セクタＳｅｃｔｏｒ０には書込みデータＤＩが書込まれ，セクタＳｅｃｔｏｒ７にはその反転データが書込まれる（Ｓ３０２）。この判定後，外部アドレス信号ＦＡ００〜２０や書込みコマンドＰＧＭに基づき，セクタ状態メモリ２０６に書込まれているセクタＳｅｃｔｏｒ０のセクタ状態データは書込み状態となる。
【００４５】
次に，セクタＳｅｃｔｏｒ０に空き容量が無くなり，さらに書込み要求に応答してコマンド生成回路２０１から書込みコマンドＰＧＭが出力されると，アドレス入力回路２０２に入力された外部アドレス信号ＦＡ００−２０に基づきセクタＳｅｃｔｏｒ１のメモリセルが選択される（Ｓ３０３）。そして，セクタ状態メモリアクセス制御回路２０７はセクタＳｅｃｔｏｒ１，６のセクタ状態データに基いて相補セルモードと判定し，セクタＳｅｃｔｏｒ１には書込みデータＤＩが書込まれ，セクタＳｅｃｔｏｒ６にはその反転データが書込まれる（Ｓ３０４）。この判定後，セクタＳｅｃｔｏｒ１のセクタ状態データは書込み状態となる。以降，セクタＳｅｃｔｏｒ３まで，同様にして書込みデータＤＩが順に書込まれる（Ｓ３０５〜Ｓ３０８）。
【００４６】
このようにステップＳ３０８が終了したときには，セクタＳｅｃｔｏｒ０−７にはすべて相補セルモードで書き込まれ，セクタＳｅｃｔｏｒ０〜３にはデータＤＩ，セクタＳｅｃｔｏｒ４〜７にはその反転データが書込まれている。
【００４７】
さらに書込みデータＤＩを書込む場合には，書込み要求に応答してコマンド生成回路２０１が書込みコマンドＰＧＭを出力すると，アドレス入力回路２０２に入力された外部アドレス信号ＦＡ００−２０に基づき，セクタＳｅｃｔｏｒ４のメモリセルが選択される（Ｓ３０９）。そして，セクタＳｅｃｔｏｒ３，４のセクタ状態データに基いてセクタ状態メモリアクセス制御回路２０７は単相セルモードと判定する。セクタ状態メモリアクセス制御回路２０７の判定結果に基づき，セクタＳｅｃｔｏｒ４に対してコマンド生成回路２０１より書込みコマンドＰＧＭが出力され， セクタＳｅｃｔｏｒ４において消去状態“１”のメモリセルすべてをプログラム状態“０”にする書込みが行われる。そして，セクタＳｅｃｔｏｒ４に対する内部ＥＲＳコマンドが動作制御回路２０７からメモリコア２０７に出力され，セクタＳｅｃｔｏｒ４のすべてメモリセルがプログラム状態“０”から消去状態“１”にする一括消去が行われる。この後に，コマンド生成回路２０１が出力する書込みコマンドＰＧＭに基づき，セクタＳｅｃｔｏｒ４に対して単相セルモードで書込みデータＤＩが書込まれる（Ｓ３１０）。また，セクタ状態メモリアクセス制御回路２０７の判定後，セクタＳｅｃｔｏｒ４のセクタ状態データは書込み状態となる。以降，セクタＳｅｃｔｏｒ５〜７についても同様にして書込みデータＤＩが順に書込まれる（Ｓ３１１〜Ｓ３１６）。
【００４８】
このように第１の実施の形態では，セクタグループＳＧ０のセクタＳｅｃｔｏｒ０，７が最後に相補セルモードから単相セルモードに切り替わるため，信頼性の高いデータについてはセクタＳｅｃｔｏｒ０に優先して書込んでおくことが有効である。
【００４９】
前述のとおり，相補セルモードもしくは単相セルモードの判定を行うのはセクタ状態メモリアクセス制御回路２０７である。セクタ状態メモリアクセス制御回路２０７は，２つのセクタのセクタ状態信号の論理レベルに基づき相補セルモードもしくは単相セルモードを判定している。なお，セクタ状態信号は，セクタ状態データが書込み状態のときＨレベルであり，一括消去状態のときＬレベルである。一方，第１の実施の形態では，入力されたアドレスに該当するセクタ番号が昇順，つまりセクタ番号が０，１，・・・，６，７となるように外部アドレス信号ＦＡ００〜２０が入力され書込みデータＤＩが入力されると，まず相補セルモードで書込みデータＤＩが書込まれる。そして，セクタＳｅｃｔｏｒ３への書込みが終わると，セクタＳｅｃｔｏｒ４からは単相セルモードに切り替わり，書込みデータＤＩが書込まれる。そのため，第１の実施の形態では，このようにして書込みデータＤＩの書込みが行われることを前提として，セクタ状態メモリアクセス制御回路２０７は，下位セクタおよび上位セクタのセクタ状態信号がＬレベルであるときに下位セクタに対して書込みコマンドＰＧＭがあった場合にのみ，相補セルモードと判定する。
【００５０】
そこで次に図４を用いて，１つのセクタグループの下位セクタと上位セクタ（例えばセクタグループＳＧ０の下位セクタＳｅｃｔｏｒ０，上位セクタＳｅｃｔｏｒ７）における，セクタ状態メモリアクセス制御回路２０７の判定結果の遷移について説明する。
【００５１】
図４は，第１の実施の形態における下位セクタと上位セクタのセクタ状態を示す図である。具体的には，図４は，１つのセクタグループ内にある下位セクタと上位セクタそれぞれに対して書込み要求または一括消去要求があった場合における，セクタ状態信号の論理レベルと，セクタ状態メモリアクセス制御回路２０７の判定結果に基づきフラグ信号生成回路２１１から出力されるフラグ信号ｔｗｉｎｓの論理レベルとをあらわしている。なお，フラグ信号ｔｗｉｎｓがＨレベルのときは判定結果が相補セルモードであることを意味し，Ｌレベルのときは判定結果が単相セルモードであることを意味する。
【００５２】
図４では，初期状態を起点とする（Ｓ４０１）。初期状態では，各セクタの全メモリセルの状態が消去状態“１”つまり一括消去状態であるため，下位セクタおよび上位セクタのセクタ状態メモリはともにＬレベルのセクタ状態信号を出力する。この状態では，セクタ状態メモリアクセス制御回路２０７は単相セルモードと判定してセクタ状態メモリ２０６に判定結果を記憶し，フラグ信号生成回路２１１はＬレベルのフラグ信号ｔｗｉｎｓを出力する。
【００５３】
ステップＳ４０１の状態から，下位セクタに対して書込みコマンドＰＧＭを生成した場合（Ｓ４０２），下位セクタのセクタ状態データは一括消去状態から書込み状態になり，下位セクタのセクタ状態メモリからはＨレベルのセクタ状態信号が出力される。このように，下位セクタのセクタ状態信号がＬレベルからＨレベルに切り替わり，上位セクタのセクタ状態信号はＬレベルのままである場合は，セクタ状態メモリアクセス制御回路２０７は相補セルモードと判定してセクタ状態メモリ２０６に判定結果を記憶し，フラグ信号生成回路２１１はＨレベルのフラグ信号ｔｗｉｎｓを出力する。
【００５４】
ステップＳ４０２の状態から上位セクタに対して書込みコマンドＰＧＭが生成された場合（Ｓ４０３），上位セクタのセクタ状態データは一括消去状態から書込み状態になり，上位セクタのセクタ状態メモリからはＨレベルのセクタ状態信号が出力される。このように，下位セクタがＨレベル，上位セクタがＨレベルの状態から，下位セクタ，上位セクタともにセクタ状態信号がＨレベルになる場合は，セクタ状態メモリアクセス制御回路２０７は単相セルモードと判定してセクタ状態メモリ２０６に判定結果を記憶し，フラグ信号生成回路２１１はＬレベルのフラグ信号ｔｗｉｎｓを出力する。
【００５５】
ステップＳ４０３の状態から下位セクタに対して一括消去コマンドＥＲＳが生成された場合（Ｓ４０４），下位セクタのセクタ状態データは書込み状態から一括消去状態になり，下位セクタのセクタ状態メモリのセクタ状態信号はＬレベルとなる。この場合には，セクタ状態メモリアクセス制御回路２０７は単相セルモードと判定し，出力されるフラグ信号ｔｗｉｎｓはＬレベルのままである。
【００５６】
ステップＳ４０４の状態から下位セクタに対して書込みコマンドＰＧＭが生成された場合（Ｓ４０５），下位セクタのセクタ状態データは一括消去状態から書込み状態になり，下位セクタのセクタ状態メモリのセクタ状態信号はＨレベルとなる。この場合は，セクタ状態メモリアクセス制御回路２０７は単相セルモードと判定し，出力されるフラグ信号ｔｗｉｎｓはＬレベルのままである。
【００５７】
ステップＳ４０５の状態から上位セクタに対して一括消去コマンドが生成された場合（Ｓ４０６），上位セクタのセクタ状態データは書込み状態から一括消去状態になり，上位セクタのセクタ状態メモリのセクタ状態信号はＬレベルとなる。この場合には，セクタ状態メモリアクセス制御回路２０７は単相セルモードと判定し，出力されるフラグ信号ｔｗｉｎｓはＬレベルのままである。
【００５８】
ステップＳ４０６の状態から下位セクタに一括消去コマンドが生成された場合（Ｓ４０７），下位セクタのセクタ状態は書込み状態から一括消去状態になり，下位セクタのセクタ状態メモリのセクタ状態信号はＬレベルとなる。この場合には，下位セクタと上位セクタのセクタ状態データは初期状態と同じになりセクタ状態メモリアクセス制御回路２０７は単相セルモードと判定し，出力されるフラグ信号ｔｗｉｎｓはＬレベルのままである。
【００５９】
ステップＳ４０７の状態から今度は上位セクタ，下位セクタに対して順に書込みコマンドが生成された場合（Ｓ４０８，Ｓ４０９），上位セクタ，下位セクタのセクタ状態データは順に一括消去状態から書込み状態になる。そして，上位セクタ，下位セクタのセクタ状態メモリのセクタ状態信号は順にＨレベルとなる。Ｓ４０８，Ｓ４０９いずれにおいても，セクタ状態メモリアクセス制御回路２０７は単相セルモードと判定し，出力されるフラグ信号ｔｗｉｎｓはＬレベルのままである。
【００６０】
ステップＳ４０９の状態から上位セクタ，下位セクタに対して順に一括消去コマンドが生成された場合（Ｓ４１０，Ｓ４１１），上位セクタ，下位セクタのセクタ状態は順に一括消去状態から書込み状態になり，上位セクタ，下位セクタのセクタ状態メモリのセクタ状態信号は順にＨレベルとなる。Ｓ４１０，Ｓ４１１いずれにおいても，セクタ状態メモリアクセス制御回路２０７は単相セルモードと判定し，出力されるフラグ信号ｔｗｉｎｓはＬレベルのままである。なお，Ｓ４１１により下位セクタ，上位セクタのセクタ状態メモリは初期状態となる。
【００６１】
ステップＳ４１１の状態から，下位セクタに書込みコマンドが生成された場合（Ｓ４１２），Ｓ４０２と同様，セクタ状態メモリアクセス制御回路２０７は相補セルモードと判定してセクタ状態メモリ２０６に判定結果を記憶し，フラグ信号生成回路２１１はＨレベルのフラグ信号ｔｗｉｎｓを出力する。
【００６２】
ステップＳ４１２の状態から上位セクタに一括消去コマンドが生成された場合（Ｓ４１３）は，実際には反転データが書込まれているが，見かけ上何も書込みデータＤＩが書込まれていない上位セクタに対して一括消去が行われようとする場合である。ステップＳ４１２の状態では，信頼性の高いデータが書込まれる相補セルモードで下位および上位セクタに書込みが行われたため，書込みデータＤＩが書込まれていない上位セクタに対して一括消去コマンドが生成されても相補セルモードが維持される必要がある。そこで，ステップＳ４１３では，コマンド生成回路２０１で一括消去コマンドＥＲＳが生成されても，ステップＳ４１２でフラグ信号ｔｗｉｎｓがＨレベルであることを検出した動作制御回路２０８がメモリコア２２１に対して一括消去動作を行わず，上位セクタに書込まれている反転データを維持する。そして，上位セクタのセクタ状態データは一括消去状態を維持する。したがって，フラグ信号生成回路２１１が出力するフラグ信号ｔｗｉｎｓはＨレベルのままである。
【００６３】
ステップＳ４１３の状態から下位セクタに一括消去コマンドが生成された場合（Ｓ４１４），下位セクタのセクタ状態データは書込み状態から一括消去状態になり，下位セクタのセクタ状態メモリのセクタ状態信号はＬレベルとなる。この場合，セクタ状態メモリアクセス制御回路２０７は単相セルモードと判定してセクタ状態メモリ２０６に判定結果を記憶し，フラグ信号生成回路２１１はＬレベルのフラグ信号ｔｗｉｎｓを出力する。
【００６４】
このように，下位および上位セクタのセクタ状態データが両方ともＬレベルのときに，下位セクタに対して書込みコマンドＰＧＭがあった場合のみ，セクタ状態メモリアクセス制御回路２０７は相補セルモードと判定する。さらに，相補セルモードのときに上位セクタに対して一括消去コマンドＥＲＳがあった場合，上位セクタのセクタ状態データは一括消去状態を維持するので，セクタ状態メモリアクセス制御回路２０７の判定結果は相補セルモードのままである。そして，セクタ番号の昇順に書込みが行われ，最下位のセクタは最上位のセクタに書込みが行われるまでは，相補セルモードでデータを記憶するので，最下位のセクタは記憶データの信頼性を高くすることができる。
【００６５】
図５は第１の実施の形態における書込み方式の判定動作を示す図である。図５は，セクタ状態メモリアクセス制御回路２０７と，下位セクタ状態メモリ５０１と上位セクタ状態メモリ５０２と下位セクタ単相相補メモリ５０４を有するセクタ状態メモリ２０６と，フラグ信号生成回路２１１とを示している。セクタ状態メモリ２０６とフラグ信号生成回路２１１とは，セクタグループごとに設けられる。
【００６６】
下位セクタ状態メモリ５０１は，下位セクタＳｅｃｔｏｒ０〜３のいずれかのセクタのセクタ状態メモリであり，上位セクタ状態メモリ５０２は下位セクタ状態メモリ５０１の下位セクタと同じセクタグループ内の上位セクタのセクタ状態メモリである。両セクタ状態メモリ５０１，５０２のセクタ状態データは，書込みコマンドＰＧＭと一括消去コマンドＥＲＳに応答して，それぞれの状態に書き換えられる。また，下位セクタ状態メモリ５０１から出力されるセクタ状態信号ｃ１ｏｕｔＬと，上位セクタ状態メモリ５０２から出力されるセクタ状態信号ｃ１ｏｕｔＵとは，セクタ状態メモリアクセス制御回路２０７に供給される。さらに，ＮＯＲゲート５０３を介して，セクタ状態信号ｃ１ｏｕｔＬとｃ１ｏｕｔＵとの否定論理和である単相相補メモリ用のプログラムイネーブル信号ｃ２ＰＧＭｅｎがセクタ状態メモリアクセス制御回路２０７に供給される。
【００６７】
下位セクタ単相相補メモリ５０４は，動作制御回路２０８からアドレス信号ＡＤと書込みコマンドＰＧＭ一括消去コマンドＥＲＳが供給されたときに，下位セクタ状態メモリ５０１と上位セクタ状態メモリ５０２のセクタ状態データに基づいて，単相セルモード又は相補セルモードの判定結果を示す単相相補判定データを格納するメモリであり，Ｈレベル（相補セルモード）又はＬレベル（単相セルモード）の単相相補判定信号ｃ２ｏｕｔＬを出力する。
【００６８】
例えば，初期状態（セクタ状態信号ｃ１ｏｕｔＬ，ｃ１ｏｕｔＵがともにＬレベル（一括消去状態）），すなわちプログラムイネーブル信号ｃ２ＰＧＭｅｎがＨレベルのときに，下位セクタに対して書込みコマンドＰＧＭが生成されると，セクタ状態メモリアクセス制御回路２０７は下位セクタ単相相補メモリ５０４の単相相補判定データをＬレベル（単相セルモード）からＨレベル（相補セルモード）にする。また，セクタ状態信号ｃ１ｏｕｔＬは，書込みコマンドＰＧＭに応答して，Ｈレベル（書込み状態）になる。この状態からさらに，下位セクタに対して一括消去コマンドＥＲＳが生成された場合，又は上位セクタに対して書込みコマンドＰＧＭが生成された場合のいずれかの場合に，セクタ状態メモリアクセス制御回路２０７は，下位セクタ単相相補メモリ５０４の単相相補判定データをＨレベル（相補セルモード）からＬレベル（単相セルモード）になる。
【００６９】
フラグ信号生成回路２１１は，下位セクタ単相相補メモリ５０４の単相相補判定信号ｃ２ｏｕｔＬをコントロールクロック信号ＣｏｎｔｒｏｌＣＬＫの立ち上がりに応答して，ラッチ回路５０４でラッチして，フラグ信号ｔｗｉｎｓを出力する。下位セクタ単相相補メモリ５０４の単相相補判定データはＨレベル（相補セルモード）であれば，フラグ信号はｔｗｉｎｓはＨレベル（相補セルモード）となり，単相相補判定データはＬレベル（単相セルモード）であればフラグ信号はｔｗｉｎｓはＬレベル（単相セルモード）となる。
【００７０】
フラグ信号ｔｗｉｎｓはセクタグループごとに出力される。そこで，セクタグループＳＧ０のセクタＳｅｃｔｏｒ０に対するセクタＳｅｃｔｏｒ７の書込み方式を決めるフラグ信号について説明する場合，フラグ信号はｔｗｉｎｓ＜７＞と表記されることとする。同様にして，セクタグループＳＧ１では，セクタＳｅｃｔｏｒ１に対するセクタＳｅｃｔｏｒ６の書込み方式を決めるフラグ信号はｔｗｉｎｓ＜６＞，セクタグループＳＧ２では，セクタＳｅｃｔｏｒ２に対するセクタＳｅｃｔｏｒ５の書込み方式を決めるフラグ信号はｔｗｉｎｓ＜５＞，セクタグループＳＧ３では，セクタＳｅｃｔｏｒ３に対するセクタＳｅｃｔｏｒ４の書込み方式を決めるフラグ信号はｔｗｉｎｓ＜４＞と表記されることとする。
【００７１】
なお，コントロールクロック信号ＣｏｎｔｒｏｌＣＬＫは，コマンド生成回路２０１で生成される書込みコマンドＰＧＭと一括消去コマンドＥＲＳとの論理和をとったＯＲ信号に応答して，動作制御回路２０８で生成される。また，ラッチ回路５０４は，パワーオンリセット回路２０５から出力され外部電源ＶＤＤの起動中にＨレベルとなるパワーオンリセット信号ＰＯＲに応答して，リセットされる。
【００７２】
図６は第１の実施の形態におけるフラッシュメモリの下位および上位セクタがともに一括消去状態であるときに，下位セクタ，上位セクタの順に書込み要求があった場合のフラグ信号の波形図である。図６では，同じセクタグループ内の下位セクタ，上位セクタの順に時間Ｔ０，Ｔ１で書込みコマンドＰＧＭを生成した後に，下位セクタ，上位セクタの順に時間Ｔ２，Ｔ３で一括消去コマンドＥＲＳを生成し，時間Ｔ４，Ｔ５で再び下位セクタ，上位セクタの順に書込みコマンドＰＧＭを生成している。
【００７３】
時間Ｔ０の下位セクタに対する書込みコマンドＰＧＭの立ち上がりと，その直前の単相相補メモリ用のプログラムイネーブル信号ｃ２ＰＧＭｅｎ（Ｈレベル）に基づき，下位セクタ単相相補メモリ５０４の単相相補判定データは，Ｌレベル（単相セルモード）からＨレベル（相補セルモード）になる。これにより，下位セクタ単相相補メモリ５０４が出力する単相相補判定信号ｃ２ｏｕｔＬもＬレベル（単相セルモード）からＨレベル（相補セルモード）になる。また，時間Ｔ０の下位セクタに対する書込みコマンドＰＧＭの立ち上がりに応答して，下位セクタのセクタ状態メモリ５０１のセクタ状態信号ｃ１ｏｕｔＬはＨレベルとなり，セクタ状態データは書込み状態となる。そして，コントロールクロック信号ＣｏｎｔｒｏｌＣＬＫは，時間Ｔ０でＯＲ信号の立ち上がりに応答して立ち下がり，時間Ｔ０から時間ｔｃｃ後の時間Ｃ０でＨレベルとなる。そして，ラッチ回路５０４は，時間Ｃ０のコントロールクロック信号ＣｏｎｔｒｏｌＣＬＫの立ち上がりに応答して単相相補判定信号ｃ２ｏｕｔＬをラッチし，Ｈレベル（相補セルモード）のフラグ信号ｔｗｉｎｓを出力する。
【００７４】
時間Ｔ１の上位セクタに対する書込みコマンドＰＧＭの立ち上がりに応答して，下位セクタ単相相補メモリ５０４の単相相補判定データはＨレベル（相補セルモード）からＬレベル（単相セルモード）になる。これにより単相相補判定信号ｃ２ｏｕｔＬもＨレベル（相補セルモード）からＬレベル（単相セルモード）になる。このとき，上位セクタのセクタ状態信号ｃ１ｏｕｔＵがＨレベルとなり，セクタ状態メモリ５０２のセクタ状態データは書込み状態となる。そして，コントロールクロック信号ＣｏｎｔｒｏｌＣＬＫは時間Ｔ１後の時間Ｃ１でＨレベルとなる。ラッチ回路５０４は，これに応答して単相相補判定信号ｃ２ｏｕｔＬをラッチし，Ｌレベル（単相セルモード）のフラグ信号ｔｗｉｎｓを出力する。
【００７５】
時間Ｔ２の下位セクタに対する一括消去コマンドＥＲＳの立ち上がりに応答して，下位セクタのセクタ状態信号ｃ１ｏｕｔＬがＬレベルとなり，セクタ状態メモリ５０１のセクタ状態データは一括消去状態となる。このとき，下位セクタ単相相補メモリ５０４の単相相補判定データは，Ｌレベル（単相セルモード）を維持する。そして，コントロールクロック信号ＣｏｎｔｒｏｌＣＬＫは時間Ｃ２でＨレベルとなる。これに応答してラッチ回路５０４がラッチした単相相補判定信号ｃ２ｏｕｔＬはＬレベルであり，出力されるフラグ信号ｔｗｉｎｓはＬレベル（単相セルモード）のままである。
【００７６】
時間Ｔ３の上位セクタに対する一括消去コマンドＥＲＳの立ち上がりに応答して，上位セクタのセクタ状態信号ｃ１ｏｕｔＵがＬレベルとなり，セクタ状態メモリ５０２のセクタ状態データは一括消去状態となる。このとき，下位セクタ単相相補メモリ５０４の単相相補判定データは，Ｌレベル（単相セルモード）を維持する。そして，コントロールクロック信号ＣｏｎｔｒｏｌＣＬＫは，時間Ｃ３でＨレベルとなる。これに応答してラッチ回路５０４がラッチした単相相補判定信号ｃ２ｏｕｔＬはＬレベルであり，出力されるフラグ信号ｔｗｉｎｓはＬレベルのまま（単相セルモード）である。
【００７７】
時間Ｔ４の以降は，時間Ｔ０〜Ｔ２までの動作の繰り返しとなる。
【００７８】
このように，下位セクタ，上位セクタがともに一括消去状態であるときに，下位セクタに書込みコマンドＰＧＭが生成されることで，下位セクタ単相相補メモリ５０４の判定結果は単相セルモードから相補セルモードに切り替わる。さらに上位セクタに書込みコマンドＰＧＭを生成すると下位セクタ単相相補メモリ５０４の判定結果は単相セルモードに切り替わる。
【００７９】
図７は第１の実施の形態におけるフラッシュメモリの下位および上位セクタがともに一括消去状態であるときに，下位セクタに書込み要求，一括消去要求が順にあった場合のフラグ信号の波形図である。図７では，下位セクタに時間Ｔ０，Ｔ１で書込みコマンドＰＧＭ，一括消去コマンドＥＲＳを生成した後に，上位セクタに時間Ｔ２，Ｔ３で書込みコマンドＰＧＭ，一括消去コマンドＥＲＳを生成している。
【００８０】
時間Ｔ０から開始される下位セクタへの書込みコマンドＰＧＭに応答した動作は，図６と同様に行われ，フラグ信号ｔｗｉｎｓはＨレベル（相補セルモード）となる。
【００８１】
時間Ｔ１の下位セクタへの一括消去コマンドＥＲＳの立ち上がりに応答して，下位セクタ単相相補メモリ５０４の単相相補判定データはＨレベル（相補セルモード）からＬレベル（単相セルモード）になる。これにより単相相補判定信号ｃ２ｏｕｔＬもＨレベル（相補セルモード）からＬレベル（単相セルモード）になる。また，下位セクタのセクタ状態信号がＬレベルとなり，セクタ状態メモリ５０１のセクタ状態データは一括消去状態となる。そして，ラッチ回路５０４は，単相相補判定信号ｃ２ｏｕｔＬをラッチし，Ｌレベル（単相セルモード）のフラグ信号ｔｗｉｎｓを出力する。
【００８２】
時間Ｔ２の上位セクタに対する書込みコマンドＰＧＭの立ち上がりに応答して，上位セクタのセクタ状態メモリのセクタ状態信号がＨレベルとなり，セクタ状態データは書込み状態となる。また，単相相補判定データは，Ｌレベル（単相セルモード）を維持する。そして，時間Ｃ２でラッチ回路５０４がラッチした単相相補判定信号ｃ２ｏｕｔＬはＬレベルであり，出力されるフラグ信号ｔｗｉｎｓはＬレベル（単相セルモード）のままである。
【００８３】
時間Ｔ３以降の動作は，図６の時間Ｔ３以降の動作と同様にして行われ，時間Ｔ３，Ｔ４，Ｔ５の上位セクタへの一括消去コマンド，下位セクタへの書込みコマンド，上位セクタへの書込みコマンドに対し，時間Ｃ３，Ｃ４，Ｃ５におけるフラグ信号ｔｗｉｎｓはそれぞれＬレベル（単相セルモード），Ｈレベル（相補セルモード），Ｌレベル（単相セルモード）となる。
【００８４】
このように，下位セクタ，上位セクタがともに一括消去状態であるときに，下位セクタに書込みコマンドＰＧＭが生成されたとき，下位セクタ単相相補メモリ５０４の判定結果は相補セルモードに切り替わる。さらに下位セクタに一括消去コマンドＥＲＳを生成するとフラグ信号生成回路２１０の判定結果は単相セルモードに切り替わる。
【００８５】
図８は第１の実施の形態における外部電源がオンされたときの各信号の立ち上がりを示す波形図である。図８（１）は，下位セクタ，上位セクタともにセクタ状態信号ｃ１ｏｕｔＬ，ｃ１ｏｕｔＵがＨレベル（書込み状態），単相相補判定信号ｃ２ｏｕｔＬがＬレベル（単相セルモード）の場合の波形である。そして，図８（２）は，下位セクタのセクタ状態信号ｃ１ｏｕｔＬとがＨレベル（書込み状態），上位セクタのセクタ状態信号ｃ１ｏｕｔＵがＬレベル（一括消去状態），単相相補判定信号ｃ２ｏｕｔＬがＨレベル（相補セルモード）の場合の波形である。
【００８６】
図８（１）では，オフされていた外部電源ＶＤＤが時間Ｔ１にオンされて立ち上がり，時間Ｔ２にＨレベルとなる。そして，外部電源ＶＤＤの立ち上がりとともに，下位セクタ，上位セクタのセクタ状態信号ｃ１ｏｕｔＬ，ｃ１ｏｕｔＵも立ち上がる。また，外部電源ＶＤＤの立ち上がりに応答してパワーオンリセット信号ＰＯＲが，時間Ｔ１〜Ｔ２間でＨレベルになり，動作制御回路２０８やラッチ回路５０４がリセットされる。そのため，動作制御回路２０８で生成されるコントロールクロック信号ＣｏｎｔｒｏｌＣＬＫとラッチ回路５０４から出力されるフラグ信号ｔｗｉｎｓとは，時間Ｔ２までＬレベルである。
【００８７】
そして，時間Ｔ２でコントロールクロック信号ＣｏｎｔｒｏｌＣＬＫがＨレベルになると，ラッチ回路５０４は単相相補判定信号ｃ２ｏｕｔＬをラッチする。このとき，単相相補判定信号ｃ２ｏｕｔＬはＬレベル（単相セルモード）なので，出力されるフラグ信号ｔｗｉｎｓはＬレベル（単相セルモード）のままである。
【００８８】
一方，図８（２）では，時間Ｔ１からの外部電源ＶＤＤの立ち上がりとともに，下位セクタのセクタ状態信号ｃ１ｏｕｔＬと，単相相補判定信号ｃ２ｏｕｔＬとが立ち上がる。また，パワーオンリセット信号ＰＯＲにより，時間Ｔ１〜Ｔ２の間，コントロールクロック信号ＣｏｎｔｒｏｌＣＬＫとラッチ回路５０４から出力されるフラグ信号ｔｗｉｎｓはＬレベルとなる。
【００８９】
そして，時間Ｔ２でコントロールクロック信号ＣｏｎｔｒｏｌＣＬＫがＨレベルになると，ラッチ回路５０４は，Ｈレベル（相補セルモード）の単相相補判定信号ｃ２ｏｕｔＬをラッチし，Ｈレベル（相補セルモード）のフラグ信号ｔｗｉｎｓを出力する。
【００９０】
このように第１の実施の形態では，外部電源がオンされると，パワーオンリセット信号によりフラグ信号ｔｗｉｎｓがリセットされる。そして，外部電源が立ち上がったときに，ラッチ回路５０４は単相相補判定信号ｃ２ｏｕｔＬをラッチして，外部電源がオフされる直前と同じ電圧レベルのフラグ信号ｔｗｉｎｓを出力する。
【００９１】
図９は第１の実施の形態における内部ＥＲＳコマンドの生成を示すブロック図である。
【００９２】
第１の実施の形態では，図５の回路構成において相補セルモードの場合に，上位セクタに対して書込みコマンドＰＧＭ，もしくは下位セクタに対して一括消去コマンドＥＲＳが生成されたとき，上位セクタへの一括消去が行われる。それに伴って，フラグ信号ｔｗｉｎｓはＬレベル（単相セルモード）になり，セクタ状態メモリ２０６のセクタ状態データが書き換えられ，それと共に上位セクタに書込まれている反転データの一括消去が開始される。そして，反転データの一括消去が完了後，生成されたコマンド信号の動作が開始される。ここで，上位セクタの相補セルデータの一括消去動作している間に，もしフラッシュメモリの電源がオフとなると一括消去が途中で中断してしまう。ところが，フラッシュメモリの電源をオンとしたときは，フラグ信号ｔｗｉｎｓがＬレベル（単相セルモード）であるにもかかわらず，上位セクタにはまだ反転データが一部保持されている状態となってしまう。
【００９３】
そこで，第１の実施の形態では，反転データの一括消去動作を発生させたコマンド信号が生成される前のフラグ信号ｔｗｉｎｓを，内部フラグ信号ｉｎｔ-ｔｗｉｎｓとして，その一括消去動作が完了するまでＥＲＳ用セクタ状態メモリ９０１が保持することとしている。そして，フラッシュメモリの電源をオンとしたとき，フラグ信号ｔｗｉｎｓがＬレベル（単相セルモード）であっても，内部フラグ信号ｉｎｔ-ｔｗｉｎｓがＨレベル（相補セルモード）であれば，未だ一括消去が完了していないので，電源オン後に反転データの一括消去動作を行う。これにより，上位セクタの相補セルデータの一括消去動作している間にフラッシュメモリの電源がオフとなっても，その後電源がオンとなったときに上位セクタの反転データの一括消去動作を完了させることができる。
【００９４】
以下に，上位セクタに書込まれている反転データが一括消去される動作についてまず示す。例として，初期状態のセクタグループの下位セクタ，上位セクタに対して書込みコマンドＰＧＭを順に生成した場合の動作を説明する。
【００９５】
まず下位セクタに対する書込みコマンドＰＧＭが生成されると，下位・上位セクタのセクタ状態データに基づきセクタ状態メモリアクセス制御回路２０７により相補セルモードの判定がなされ，フラグ信号生成回路２１１から出力されるフラグ信号ｔｗｉｎｓはＬレベル（単相セルモード）からＨレベル（相補セルモード）になる。そして，下位セクタのセクタ状態データは，一括消去状態から書込み状態となる。セクタ状態メモリアクセス制御回路２０７は，このフラグ信号ｔｗｉｎｓの立ち上がりに応答して，ＥＲＳ用セクタ状態メモリ９０１に内部フラグ制御信号ｉｎｔ‐ｔｃを出力する。ＥＲＳ用セクタ状態メモリ９０１は，内部フラグ制御信号ｉｎｔ‐ｔｃに応答して，内部フラグ信号ｉｎｔ-ｔｗｉｎｓをＬレベル（単相セルモード）からＨレベル（相補セルモード）にする。
【００９６】
次に，上位セクタに対して書込みコマンドＰＧＭが生成されると，フラグ信号ｔｗｉｎｓはＨレベル（相補セルモード）からＬレベル（単相セルモード）になる。また，上位セクタのセクタ状態データは，上位セクタに対する書込みコマンドＰＧＭに応答して，一括消去状態から書込み状態となる。そして，セクタ状態メモリアクセス制御回路２０７は，フラグ信号ｔｗｉｎｓの立ち下がりに応答して，上位セクタに対する一括消去の開始命令であるＥＲＳ開始信号を動作制御回路２０８に出力する。動作制御回路２０８は，ＥＲＳ開始信号に応答して内部ＥＲＳコマンドを生成し，メモリコア２２１へ出力する。これにより上位セクタの一括消去およびそのベリファイ動作が行われ，完了後，動作制御回路２０８は，ＥＲＳ完了信号をセクタ状態メモリアクセス制御回路２０７へ出力する。セクタ状態メモリアクセス制御回路２０７は，ＥＲＳ完了信号に応答して，ＥＲＳ用セクタ状態メモリ９０１へ内部フラグ制御信号ｉｎｔ‐ｔｃを出力する。ＥＲＳ用セクタ状態メモリ９０１は，内部フラグ制御信号ｉｎｔ‐ｔｃに応答して，内部フラグ信号ｉｎｔ-ｔｗｉｎｓをＨレベル（相補セルモード）からＬレベル（単相セルモード）にする。
【００９７】
このようにして，相補セルモードの場合に，上位セクタに対して書込みコマンドＰＧＭ，もしくは下位セクタに対して一括消去コマンドＥＲＳが生成されたことに応答して，上位セクタに書込まれている反転データが一括消去される間に誤って電源がオフになっても正常に一括消去される。次に，上位セクタの反転データの一括消去動作している間にフラッシュメモリの電源がオフとなった後，電源をオンしたときの動作について具体的に示す。
【００９８】
図１０は第１の実施の形態におけるフラッシュメモリの電源をオンしたときのフラグ信号及び内部フラグ信号の波形を示す波形図である。図１０は，上記と同様に，上位セクタの反転データの一括消去動作を実施中にフラッシュメモリの電源がオフとなった状態から，電源をオンしたときの波形を示している。
【００９９】
時間Ｔ１０に電源ＶＤＤが立ち上がり始め，電源ＶＤＤは時間Ｔ１１にＨレベルとなる。また，これに応答して，コントロールクロック信号ＣｏｎｔｒｏｌＣＬＫ，パワーオン制御クロック信号，内部フラグ信号ｉｎｔ‐ｔｗｉｎｓも時間Ｔ１１にＨレベルとなる。図１０ではフラッシュメモリの電源がオフとなる前上位セクタの一括消去開始時にフラグ信号ｔｗｉｎｓはＬレベル（単相セルモード）となっている。そのため，時間Ｔ１１ではフラグ信号ｔｗｉｎｓはＬレベルのままとなる。
【０１００】
時間Ｔ１１で，動作制御回路２０８からセクタ状態メモリアクセス制御回路２０７に出力されるパワーオン制御クロック信号の立ち上がりに応答し，セクタ状態メモリアクセス制御回路２０７はフラグ信号ｔｗｉｎｓがＬレベル（単相セルモード），内部フラグ信号ｉｎｔ-ｔｗｉｎｓがＨレベル（相補セルモード）であることを検知する。
【０１０１】
そして，セクタ状態メモリアクセス制御回路２０７は時間Ｔ１２でＥＲＳ開始信号をＨレベルにする。これにより，中断されていた上位セクタの反転データの一括消去動作が時間Ｔ１２で再開される。
【０１０２】
メモリコア２２１で反転データの一括消去が完了し，動作制御回路２０８から出力されるＥＲＳ完了信号が時間Ｔ１３に立ち上がると，これに応答して時間Ｔ１４で内部フラグ信号ｉｎｔ-ｔｗｉｎｓが立ち下がる。つまり，再開された相補セルデータの一括消去動作が完了し，上位セクタのセクタ状態データは，すべてのセルが消去状態“１”（一括消去状態）となり，フラグ信号ｔｗｉｎｓと内部フラグ信号ｉｎｔ-ｔｗｉｎｓはともにＬレベル（単相セルモード）となる。
【０１０３】
時間Ｔ１５で，下位セクタに対して書込みコマンドＰＧＭがコマンド生成回路２０１から出力されると，コントロールクロックＣｏｎｔｒｏｌＣＬＫは時間Ｔ１６で立ち上がる。そして，時間Ｔ１６で，セクタ状態メモリから出力される下位，上位セクタのセクタ状態信号に基づいてフラグ信号生成回路２１１から出力されるフラグ信号ｔｗｉｎｓがＬレベル（単相セルモード）からＨレベル（相補セルモード）になる。このとき，セクタ状態メモリアクセス制御回路２０７は，フラグ信号ｔｗｉｎｓがＨレベル（相補セルモード），内部フラグ信号ｉｎｔ−ｔｗｉｎｓがＬレベル（単相セルモード）であることを検知して，時間Ｔ１７に内部フラグ信号ｉｎｔ‐ｔｗｉｎｓをＨレベル（相補セルモード）にする。
【０１０４】
時間Ｔ１８で，上位セクタに対して書込みコマンドＰＧＭがコマンド生成回路２０１から出力されると，コントロールクロックＣｏｎｔｒｏｌＣＬＫは時間Ｔ１９で立ち上がる。そして，時間Ｔ１９で，フラグ信号生成回路２１１から出力されるフラグ信号ｔｗｉｎｓがＨレベル（相補セルモード）からＬレベル（単相セルモード）になる。このフラグ信号ｔｗｉｎｓの立ち下がりに応答して，時間Ｔ２０でＥＲＳ開始信号がＨレベルとなる。これにより，上位セクタの反転データの一括消去動作が開始される。そして，上位セクタの反転データの一括消去が完了し，動作制御回路２０８から出力されるＥＲＳ完了信号が時間Ｔ２１に立ち上がると，これに応答して時間Ｔ２２で内部フラグ信号ｉｎｔ-ｔｗｉｎｓが立ち下がる。このとき，上位セクタの反転データの一括消去が完了し，上位セクタのセクタ状態データは，すべてのセルが消去状態“１”（一括消去状態）となる。
【０１０５】
このようにして，上位セクタの反転データの一括消去中にフラッシュメモリの電源がオフとなり，上位セクタの反転データの一括消去動作が中断されても，電源がオンしたときにフラグ信号ｔｗｉｎｓと内部フラグ信号ｉｎｔ-ｔｗｉｎｓに基づいて反転データの一括消去動作が再開され，各セクタに書込まれているデータの整合性が確保される。
【０１０６】
図１１は第１の実施の形態における反転データの一括消去動作実施判断のフローチャート図である。つまり，図１１は，図１０で行った補正データの一括消去動作の実施をするか否かを判断するためのフローチャートである。
【０１０７】
まず，フラッシュメモリの電源起動時又はコマンド生成回路２０１から書込みコマンドＰＧＭ若しくは一括消去コマンドＥＲＳが出力したとき，フラグ信号ｔｗｉｎｓがＬレベル（単相セルモード）であるか，又はＨレベル（相補セルモード）であるか判断する（Ｓ１１０１）。
【０１０８】
ステップＳ１１０１でフラグ信号ｔｗｉｎｓがＬレベル（単相セルモード）である場合，内部フラグ信号ｉｎｔ-ｔｗｉｎｓがＨレベルであるかＬレベルであるか判断する（Ｓ１１０２）。内部フラグ信号ｉｎｔ-ｔｗｉｎｓがＬレベルである場合は，フラグ信号ｔｗｉｎｓと内部フラグ信号ｉｎｔ-ｔｗｉｎｓはともにＬレベル（単相セルモード）である。これは，上位セクタの反転データの一括消去動作が中断していないことを意味しており，フラッシュメモリは通常動作を行う。一方，内部フラグ信号ｉｎｔ-ｔｗｉｎｓがＨレベル（相補セルモード）である場合は，フラグ信号ｔｗｉｎ（Ｌレベル，単相セルモード）と内部フラグ信号ｉｎｔ-ｔｗｉｎｓ（Ｈレベル，相補セルモード）とで論理レベルが相違している。これは，上位セクタの反転データの一括消去動作が中断された，もしくは上位セクタに対して一括消去コマンドＥＲＳが生成されたことを意味している。そのため，上位セクタに対して内部ＥＲＳ信号が生成され，上位セクタの反転データの一括消去動作が行われる（Ｓ１１０３）。そして，ベリファイ動作（Ｓ１１０４）完了後，内部ＥＲＳ完了信号に応答して，内部フラグ信号ｉｎｔ-ｔｗｉｎｓはＬレベルになり，フラグ信号ｔｗｉｎｓと内部フラグ信号ｉｎｔ-ｔｗｉｎｓはともにＬレベル（単相セルモード）となる（Ｓ１１０５，Ｓ１１０６）。ＥＲＳ用セクタ状態メモリ９０１をＬレベルにするプログラムが完了後，フラグ信号ｔｗｉｎｓと内部フラグ信号ｉｎｔ-ｔｗｉｎｓは共にＬレベル（単相セルモード）となり，フラッシュメモリは通常動作を行う（Ｓ１１０７）。
【０１０９】
一方，ステップＳ１１０１でフラグ信号ｔｗｉｎｓがＨレベル（相補セルモード）である場合，内部フラグ信号ｉｎｔ-ｔｗｉｎｓがＨレベル（相補セルモード）であるか判定する（Ｓ１１０８）。
【０１１０】
内部フラグ信号ｉｎｔ-ｔｗｉｎｓがＬレベル（単相セルモード）である場合，フラグ信号ｔｗｉｎｓはＨレベル（相補セルモード），内部フラグ信号ｉｎｔ-ｔｗｉｎｓがＬレベル（単相セルモード）となる。これは，書込み方式が単相セルモードの状態から相補セルモードに切り替わったことを意味している。つまり，下位および上位セクタが一括消去状態である状態から，下位セクタに対して書込みコマンドＰＧＭが生成され下位セクタが書込み状態に切り替わったのである。この場合，内部フラグ信号ｉｎｔ-ｔｗｉｎｓをフラグ信号ｔｗｉｎｓの論理レベルに合わせるために，セクタ状態メモリアクセス制御回路２０７は，ＥＲＳ用セクタ状態メモリ９０１をＨレベルにする消去動作を行う（Ｓ１１０９）。そして，ＥＲＳ用セクタ状態メモリ９０１のベリファイ動作（Ｓ１１１０）完了後，フラグ信号ｔｗｉｎｓと内部フラグ信号ｉｎｔ-ｔｗｉｎｓはともにＨレベル（相補セルモード）であるため，通常動作を行う。
【０１１１】
ステップＳ１１０８で内部フラグ信号ｉｎｔ-ｔｗｉｎｓがＨレベル（相補セルモード）である場合，フラグ信号ｔｗｉｎｓと内部フラグ信号ｉｎｔ-ｔｗｉｎｓはともにＨレベル（相補セルモード）であるため，通常動作を行う。
【０１１２】
以上のとおり，フラッシュメモリの電源を起動したとき，又はコマンド信号が生成されたとき，フラグ信号ｔｗｉｎｓと内部フラグ信号ｉｎｔ-ｔｗｉｎｓの論理レベルに基づいて，上位セクタに書込まれた反転データの一括消去動作状況の判断が行われる。そして，フラグ信号ｔｗｉｎｓがＬレベル（単相セルモード）で，内部フラグ信号ｉｎｔ-ｔｗｉｎｓがＨレベル（相補セルモード）である場合，上位セクタの反転データの一括消去動作が行われる。なぜならば，この場合は，（Ａ）フラッシュメモリの電源がオフし反転データの一括消去動作が中断された，（Ｂ）相補セルモード時に上位セクタに書込みコマンドＰＧＭが生成された等，に該当し一括消去動作を行う必要があるからである。 
【０１１３】
第１の実施の形態では，相補セルモードのとき，下位セクタを選択すると，下位セクタと同じセクタグループの上位セクタも選択される。そこで，セクタ制御回路２１２について説明する。
【０１１４】
図１２は第１の実施の形態におけるセクタ制御回路（デコーダ）を示す図である。図１２（１）は，セクタＳｅｃｔｏｒ０向けのセクタ制御回路２１２の回路図であり，図１２（２）はセクタＳｅｃｔｏｒ０と同じセクタグループＳＧ０に属するセクタＳｅｃｔｏｒ７向けのセクタ制御回路２１２の回路図である。
【０１１５】
図１２（１）の回路は，アドレス選択回路２１０から３ビットのセクタアドレス信号Ｓｅｃｔｏｒ  Ａｄｄｒｅｓｓ＜０＞，＜１＞，＜２＞が供給される。３ビットのセクタアドレス信号はそれぞれインバータ１２０１〜１２０３を介してＮＡＮＤゲート１２０４へ入力され，インバータ１２０５を介しセクタＳｅｃｔｏｒ０向けの１ビットのセクタ選択信号Ｓｅｃｔｏｒ  Ｓｅｌｅｃｔ＜０＞として出力される。したがって，セクタＳｅｃｔｏｒ０のアドレス信号 “０００”が供給されると，セクタＳｅｃｔｏｒ０のセクタ選択信号Ｓｅｃｔｏｒ  Ｓｅｌｅｃｔ＜０＞はＨレベルとなって出力される。
【０１１６】
図１２（２）の回路は，相補セルモードの場合にセクタＳｅｃｔｏｒ０のアドレス “０００”が供給されると，セクタＳｅｃｔｏｒ７のセクタ選択信号Ｓｅｃｔｏｒ  Ｓｅｌｅｃｔ＜７＞がＨレベルとなりセクタＳｅｃｔｏｒ７も選択されるようにしたものである。図１２（２）の回路は，インバータ１２０６〜１２０８，１２１６，１２１８とトランスファーゲート１２１０〜１２１５とＮＡＮＤゲート１２１７とを有し，アドレス選択回路２１０から出力された３ビットのセクタアドレス信号Ｓｅｃｔｏｒ  Ａｄｄｒｅｓｓ＜０＞，＜１＞，＜２＞と，フラグ信号生成回路２１１から出力されたフラグ信号ｔｗｉｎｓ＜７＞とを入力とする。フラグ信号ｔｗｉｎｓ＜７＞によってトランスファ１２１０〜１２１５のゲートを駆動し，セクタ選択信号のパスを制御している。
【０１１７】
相補セルモードの場合，すなわちフラグ信号がＨレベルの場合，セクタアドレス信号“０００”は，インバータ１２０６〜１２０８とトランスファーゲート１２１１，１２１３，１２１５とを介してＮＡＮＤゲート１２１７に入力し，その結果，インバータ１２１８から出力されるセクタＳｅｃｔｏｒ７のセクタ選択信号Ｓｅｃｔｏｒ  Ｓｅｌｅｃｔ＜７＞はＨレベルとなる。つまり，図１２（１）と（２）の回路にセクタアドレス信号“０００”が入力されると，相補セルモードの場合は，セクタＳｅｃｔｏｒ０を選択するとともにセクタＳｅｃｔｏｒ７も選択される。
【０１１８】
一方，単相セルモードの場合，すなわちフラグ信号がＬレベルの場合，セクタアドレス信号“０００”は，トランスファーゲート１２１０，１２１２，１２１４とを介してＮＡＮＤゲート１２１７に入力し，その結果，インバータ１２１８から出力されるセクタＳｅｃｔｏｒ７のセクタ選択信号Ｓｅｃｔｏｒ  Ｓｅｌｅｃｔ＜７＞はＬレベルとなる。つまり単相セルモードの場合はセクタＳｅｃｔｏｒ７は非選択となる。
【０１１９】
なお，第１の実施の形態では，セクタＳｅｃｔｏｒ１〜３向けのセクタ制御回路２１２は，図１２（１）において，各セクタに対応するセクタアドレス信号の組合せがセクタ制御回路２１２に入力されたときにＮＡＮＤゲート１２０４の入力信号が全てＨレベルとなるように，インバータ１２０１〜１２０３の有無を変更した回路となる。また，セクタＳｅｃｔｏｒ４〜６向けのセクタ制御回路２１２は，図１２（２）において，各セクタが属するセクタグループの下位セクタのセクタアドレス信号がセクタ制御回路２１２に入力された場合，フラグ信号ｔｗｉｎｓがＨレベル（相補セルモード）のときはＮＡＮＤゲート１２１７の入力信号が全てＨレベルとなり，フラグ信号ｔｗｉｎｓがＬレベル（単相セルモード）のときはＮＡＮＤゲート１２１７の入力信号が全てＬレベルとなるよう，領域１２２４〜１２２６のインバータの配置（上側か又は下側か）を変更した回路となる。
【０１２０】
このようにして，相補セルモードでは下位セクタを選択すると，対応する上位セクタも同時に選択される。
【０１２１】
次に第１の実施の形態におけるメモリセルアレイについて説明する。図１３は第１の実施の形態におけるメモリセルアレイを示す図である。
【０１２２】
図１３（１）では，メモリセルアレイ２１７の各セクタＳｅｃｔｏｒ０〜７を縦断する複数のグローバルビット線ＧＢＬが，コラムスイッチ２１８を介してライトアンプ２１９，リードアンプ２２０へ接続していることを示している。グローバルビット線ＧＢＬは，下位セクタのローカルビット線に接続するものと上位セクタのローカルビット線に接続するものの２種類に大別でき，メモリセルアレイ上に交互に配置されている。なお，図２で述べたように，コラムスイッチ２１８は，Ｙ制御回路２１５から出力されるグローバルビット線選択信号ＹＳＥＬに基づき，対応するグローバルビット線ＧＢＬを選択し，ライトアンプ２１９又はリードアンプ２２０に接続する。
【０１２３】
図１３（２）は，図１３（１）の領域１３０１に含まれるセクタＳｅｃｔｏｒ３，４の構成の一部を拡大したものである。メモリセルアレイ２１７は，スタック・ゲート型メモリセル１３０２を１単位として行方向と列方向にマトリクス状に配置したものである。また，メモリセルアレイ２１７は，複数のグローバルビット線ＧＢＬと，複数のローカルビット線ＬＢＬと，複数のワード線ＷＬと，ソース線ＳＬと，コラム選択線ＳＳＥＬとを有する。グローバルビット線ＧＢＬは，ローカルビット線選択信号ＬＢＳＥＬにより駆動されるコラム選択線ＳＳＥＬをゲートとするトランジスタ群１３０３，１３０４を介して，ローカルビット線ＬＢＬと接続する。メモリセル１３０２は，コントロールゲートと，フローティングゲートと，ドレインと，ソースとを有し，ワード線ＷＬをコントロールゲートと接続し，ドレインをローカルビット線ＬＢＬと接続し，ソースをソース線ＳＬと接続する。例えば，メモリセル１３０２をプログラムする場合，ソース線ＳＬを接地し，ワード線ＢＬに高電圧（９Ｖ程度），ローカルビット線に書込み電圧（５Ｖ程度）をそれぞれ印加して，フローティングゲートに電子を注入し，プログラム状態“０”にする。またメモリセル９０２を消去する場合は，ワード線ＷＬに低電圧（ー９Ｖ程度），メモリセルのウェルに高電圧（９Ｖ程度）の電圧を印加し，ローカルビット線及びソース線をフローティング状態にして，フローティングゲートから電子を引き抜き，消去状態“１”にする。
【０１２４】
以上のとおり，メモリセルアレイ２１７は複数のグローバルビット線ＧＢＬとローカルビット線ＬＢＬとソース線ＳＬとワード線ＷＬとを有し，スタック・ゲート型メモリセルにデータが書込まれ，又は消去される。
【０１２５】
図２で示したとおり，ライトアンプ２１９はメモリセルアレイ２１７へのデータ書込みおよび一括消去におけるプログラム動作を行っており，リードアンプ２２０はメモリセルアレイ２１７のデータの読み出しを行っている。ライトアンプ２１９やリードアンプ２２０は，アンプ制御回路２１６から出力される上位セクタ選択信号ＵＳＥＬ，下位セクタ選択信号ＬＳＥＬ，相補パス選択信号ｔｗｉｎ，参照セル選択信号／ｔｗｉｎ，相補出力制御信号／ＲＡｏｕｔＨによってデータパスを制御されている。そこで，図１４〜図１６を用いてリードアンプ２２０，ライトアンプ２１９，アンプ制御回路２１６について以下に説明する。
【０１２６】
図１４は，第１の実施の形態におけるリードパスを示す図である。図１４には，セクタＳｅｃｔｏｒ３のメモリセル１４０１，又はセクタＳｅｃｔｏｒ４のメモリセル１４０２から読み出しを行う場合のリードパスが示されている。
【０１２７】
リードアンプ２２０は，データバスＤＢを介してコラムスイッチ２１８と接続しており，リードパス切替回路１４１１とコンパレータ回路１４１６とを有する。
【０１２８】
リードパス切替回路１４１１は，下位セクタ選択信号ＬＳＥＬによりゲートが駆動されるトランジスタ１４０７と，上位セクタ選択信号ＵＳＥＬによりゲートが駆動されるトランジスタ１４０８と，相補パス選択信号ｔｗｉｎによりゲートが駆動されるトランジスタ１４０９と，参照セル選択信号／ｔｗｉｎによりゲートが駆動されるトランジスタ１４１０とを有する。なお，上位セクタ選択信号ＵＳＥＬ，下位セクタ選択信号ＬＳＥＬ，相補パス選択信号ｔｗｉｎ，参照セル選択信号／ｔｗｉｎについては図１６にて後述する。また，トランジスタ１４１０は，ゲートに所定の電圧がかけられＯＮしているトランジスタ１４０６を介して，メモリセルのプログラム状態の閾値電圧と消去状態の閾値電圧との中間電圧を閾値電圧に設定されたリファレンスメモリセル１４０３を有するリファレンスセルＲＣ１と接続している。
【０１２９】
コンパレータ回路１４１６は，コンパレータ１４１２と，リードアンプイネーブル信号ＲＡｅｎによりゲートが駆動されるトランジスタ１４１３と，相補出力制御信号／ＲＡｏｕｔＨによりゲートが駆動されるトランジスタ１４１４，１４１５とを有する。相補出力制御信号／ＲＡｏｕｔＨについては図１６にて後述する。
【０１３０】
コラムスイッチ２１８は，グローバルビット線ＧＢＬを介してセクタセクタＳｅｃｔｏｒ３，４に接続する。
【０１３１】
セクタＳｅｃｔｏｒ３，４のメモリセル１４０１，１４０２のドレインであるローカルビット線ＬＢＬは，ローカルビット線選択信号ＬＢＳＥＬにより駆動されるコラム選択線ＳＳＥＬをゲートとするトランジスタ１４０４，１４０５を介してグローバルビット線ＧＢＬと接続する。
【０１３２】
セクタＳｅｃｔｏｒ３のメモリセル１４０１を読み出す場合，単相セルモードでは，セクタＳｅｃｔｏｒ３のトランジスタ１４０４のゲートのコラム選択線ＳＳＥＬがＨレベルとなり，トランジスタ１４０４はＯＮとなる。また，後述する図１６のアンプ制御回路により下位セクタ選択信号ＬＳＥＬはＨレベル，上位セクタ選択信号ＵＳＥＬはＬレベル，相補パス選択信号ｔｗｉｎはＬレベル，参照セル選択信号／ｔｗｉｎはＨレベルとなる。その結果，リードパス切替回路１４１１のトランジスタ１４０７がＯＮとなり，メモリセル１４０１のドレインがコンパレータ１４１２のマイナス端子に接続し，リファレンスセルＲＣ１のトランジスタ１４０６とリードパス切替回路１４１１のトランジスタ１４１０とがＯＮとなり，メモリセル１４０３のドレインがコンパレータ１４１２のプラス端子に接続する。このように単相セルモードでは，セクタＳｅｃｔｏｒ３のメモリセルの電流とリファレンスセルＲＣ１の電流とをコンパレータ１４１２で比較する。
【０１３３】
一方で，相補セルモードでは，セクタＳｅｃｔｏｒ３のトランジスタ１４０４のゲートのコラム選択線ＳＳＥＬがＨレベルとなりトランジスタ１４０４はＯＮとなり，セクタＳｅｃｔｏｒ３とペアのセクタＳｅｃｔｏｒ４のトランジスタ１４０５のゲートのコラム選択線ＳＳＥＬもＨレベルとなりトランジスタ１４０５はＯＮとなる。また，後述する図１６のアンプ制御回路により下位セクタ選択信号ＬＳＥＬはＨレベル，上位セクタ選択信号ＵＳＥＬはＬレベル，相補パス選択信号ｔｗｉｎはＨレベル，参照セル選択信号／ｔｗｉｎはＬレベルとなる。その結果，リードパス切替回路１４１１のトランジスタ１４０７がＯＮとなり，メモリセル１４０１のドレインがコンパレータ１４１２のマイナス端子に接続する。さらに，セクタＳｅｃｔｏｒ４のトランジスタ１４０５とリードパス切替回路１４１１のトランジスタ１４０９とがＯＮとなり，メモリセル１４０２のドレインがコンパレータ１４１２のプラス端子に接続する。このように相補セルモードではセクタＳｅｃｔｏｒ３のメモリセルの電流とセクタＳｅｃｔｏｒ４のメモリセルの電流とをコンパレータ１４１２で比較する。
【０１３４】
なお，セクタＳｅｃｔｏｒ３のメモリセル１４０１を読み出す場合，単相セルモード，相補セルモードいずれでも相補出力制御信号／ＲＡｏｕｔＨは後述する図１６のアンプ制御回路によりＨレベルとなる。したがってリードイネーブル信号がＨレベルとなるとき，コンパレータ１４１２から比較結果が出力される。
【０１３５】
セクタＳｅｃｔｏｒ４のメモリセル１４０２を読み出す場合は，単相セルモードではトランジスタ１４０５はＯＮとなる。また，後述する図１６のアンプ制御回路により下位セクタ選択信号ＬＳＥＬはＬレベル，上位セクタ選択信号ＵＳＥＬはＨレベル，相補パス選択信号ｔｗｉｎはＬレベル，参照セル選択信号／ｔｗｉｎはＨレベル，相補出力制御信号／ＲＡｏｕｔＨはＨレベルとなる。つまり，コンパレータ１４１２は，セクタＳｅｃｔｏｒ４のメモリセルの電流と参照セルＲＣ１の電流との比較結果を出力することとなる。
【０１３６】
一方，相補セルモードでは，後述する図１６のアンプ制御回路により相補出力制御信号／ＲＡｏｕｔＨはＬレベルとなりトランジスタ１４１５がＯＮとなる。そのため，コンパレータ１４１２によるセクタＳｅｃｔｏｒ３と４との比較結果によらず， 出力はＨレベルとなる。このようにしているのは，相補セルモードで上位セクタを読み出すのは誤った読み出しであることから，常に出力がＨレベルとするようにしているためである。
【０１３７】
以上のように，図１４では，単相セルモードの場合，下位セクタ選択信号ＬＳＥＬ又は上位セクタ選択信号ＵＳＥＬがＨレベル，相補パス選択信号ｔｗｉｎはＬレベル，参照セル選択信号／ｔｗｉｎはＨレベルとなり，下位セクタ又は上位セクタとリファレンスセルとが比較される。
【０１３８】
一方，相補セルモードの場合，下位セクタ選択信号ＬＳＥＬがＨレベル，上位セクタ選択信号ＵＳＥＬがＬレベル，相補パス選択信号ｔｗｉｎはＨレベル，参照セル選択信号／ｔｗｉｎはＬレベルとなり，下位セクタと上位セクタとが比較される。ただし，相補セルモードでは，上位セクタを読み出すときは誤った読み出しであるため，相補出力制御信号／ＲＡｏｕｔＨをＬレベルにして，比較結果は常にＨレベルとする。
【０１３９】
図１５は，第１の実施の形態におけるプログラムパスを示す図である。図１５には，セクタＳｅｃｔｏｒ３のメモリセル１５０１，又はセクタＳｅｃｔｏｒ４のメモリセル１５０２にプログラムする場合のプログラムパスが示されている。
【０１４０】
ライトアンプ２１９は，プログラムパス切替回路１５１１と，書込みデータＤＩを増幅するプログラムアンプ１５１２とを有し，コラムスイッチ２１８とデータバスＤＢを介して接続する。
【０１４１】
プログラムアンプ１５１２は，書込みデータＤＩとプログラムクロック信号／ＰＧＭＣＫとを入力とするＮＯＲゲート１５１３の出力を入力する。
【０１４２】
プログラムパス切替回路１５１１は，インバータ１５１０と，書込みコマンドＰＧＭによりゲートを駆動するトランジスタ１５０８，１５０９と，下位セクタ選択信号ＬＳＥＬによりゲートが駆動されるトランジスタ１５０５と，上位セクタ選択信号ＵＳＥＬによりゲートが駆動されるトランジスタ１５０６と，相補パス選択信号ｔｗｉｎによりゲートが駆動されるトランジスタ１５０７とを有する。
【０１４３】
コラムスイッチ２１８は，図１４と同様，グローバルビット線ＧＢＬを介してセクタセクタＳｅｃｔｏｒ３，４に接続する。
【０１４４】
セクタＳｅｃｔｏｒ３，４のメモリセル１５０１，１５０２のドレインであるローカルビット線ＬＢＬは，ローカルビット線選択信号ＬＢＳＥＬに駆動されるコラム選択線ＳＳＥＬをゲートとするトランジスタ１５０３，１５０４を介してグローバルビット線ＧＢＬと接続する。
【０１４５】
単相セルモードの場合，セクタＳｅｃｔｏｒ３のメモリセル１５０１をプログラムするときは，下位セクタ選択信号ＬＳＥＬがＨレベル，上位セクタ選択信号ＵＳＥＬがＬレベル，相補パス選択信号がＬレベルとなる。そして，セクタＳｅｃｔｏｒ３のトランジスタ１５０３とプログラムパス切替回路１５０５のトランジスタ１５０５とがＯＮし，トランジスタ１５０６，１５０７はＯＦＦして，プログラムアンプ１５１２がセクタＳｅｃｔｏｒ３のメモリセル１５０１のドレインに書込みデータＤＩ（０又は１）に応じて高電位又は低電位を印加されプログラム又は消去状態のままにされる。一方で，セクタＳｅｃｔｏｒ４のメモリセル１５０２をプログラムするときは，下位セクタ選択信号ＬＳＥＬがＬレベル，上位セクタ選択信号ＵＳＥＬがＨレベル，相補パス選択信号がＬレベルとなる。そして，セクタＳｅｃｔｏｒ４のトランジスタ１５０４とプログラムパス切替回路１５０５のトランジスタ１５０６とがＯＮし，トランジスタ１５０５，１５０７はＯＦＦして，プログラムアンプ１５１２がセクタＳｅｃｔｏｒ４のメモリセル１５０２のドレインに書込みデータＤＩ（０又は１）に応じて高電位又は低電位を印加されプログラム又は消去状態のままにされる。
【０１４６】
相補セルモードの場合，下位セクタ選択信号ＬＳＥＬがＨレベル，上位セクタ選択信号ＵＳＥＬがＬレベル，相補パス選択信号ｔｗｉｎがＨレベルとなる。そして，セクタＳｅｃｔｏｒ３のトランジスタ１５０３とプログラムパス切替回路１５０５のトランジスタ１５０５，１５０７とがＯＮし，トランジスタ１５０６はＯＦＦして，メモリセル１５０１だけでなくメモリセル１５０２もプログラムアンプ１５１２と接続する。これにより，メモリセル１５０１，１５０２は書込みデータＤＩ（０又は１）に応じてプログラム又は消去状態のままにされる。
【０１４７】
以上のように，図１５では，相補セルモードの場合，下位セクタ選択信号ＬＳＥＬと相補パス選択信号ｔｗｉｎがＨレベルとなり，下位セクタに書込みデータＤＩ，上位セクタにその反転データがプログラムされる。単相セルモードの場合は，下位セクタ選択信号ＬＳＥＬ又は上位セクタ選択信号ＵＳＥＬがＨレベルとなり，下位又は上位セクタに書込みデータＤＩがプログラムされる。
【０１４８】
図１６は，第１の実施の形態におけるアンプ制御回路を示す図である。アンプ制御回路２１６は，セクタＳｅｃｔｏｒ４〜７それぞれに対して設けられている。図１６では，セクタＳｅｃｔｏｒ４に対するアンプ制御回路が示されている。
【０１４９】
セクタＳｅｃｔｏｒ４〜７のアンプ制御回路はそれぞれセクタアドレス信号Ｓｅｃｔｏｒ  Ａｄｄｒｅｓｓ＜０＞〜＜２＞とフラグ信号ｔｗｉｎｓ＜４＞〜＜７＞とを入力する。そして図１６に示す回路を介して，アンプ制御回路２１６は上位セクタ選択信号ＵＳＥＬと，上位セクタ選択信号ＵＳＥＬを反転した信号である下位セクタ選択信号ＬＳＥＬと，相補パス選択信号ｔｗｉｎと，相補パス選択信号ｔｗｉｎと書込みコマンドＰＧＭとの否定論理和である参照セル選択信号／ｔｗｉｎと，相補出力制御信号／ＲＡｏｕｔＨとを出力する。なお，これらの信号は，図１４，図１５で説明したようにライトアンプ２１９やリードアンプ２２０でプログラムパス・リードパスの制御に用いられる。
【０１５０】
図１６のセクタＳｅｃｔｏｒ４のアンプ制御回路は，インバータ１６０１〜１６０２，１６０４〜１６０６，１６０８，１６０９，１６１７，１６１９と，ＮＡＮＤゲート１６０３，１６０７，１６１０〜１６１６と，ＮＯＲゲート１６１８とを有する。これらのうち，ＮＡＮＤゲート１６１４〜１６１６，インバータ１６１７，１６１９，ＮＯＲゲート１６１８をＳｅｃｔｏｒ４〜７のアンプ制御回路の間で共有している。
【０１５１】
また，セクタＳｅｃｔｏｒ５〜７のアンプ制御回路は，インバータ１６０４〜１６０６，１６０８，１６０９とＮＡＮＤゲート１６０３，１６０７，１６１０〜１６１３と同様な回路構成を有しており，さらにそれぞれのセクタを選択するセクタアドレス信号Ｓｅｃｔｏｒ  Ａｄｄｒｅｓｓ＜０＞〜＜２＞がアンプ制御回路２１６に入力されたときにＮＡＮＤゲート１６０３に相当するＮＡＮＤゲートの３つ入力がすべてＨレベルとなるように領域１６２０，１６２１にインバータを配置する又はしない回路である。例えば，セクタＳｅｃｔｏｒ４であれば，セクタアドレス信号は“１００”であるので，セクタアドレス信号Ｓｅｃｔｏｒ  Ａｄｄｒｅｓｓ＜０＞，＜１＞に対しインバータ１６０１，１６０２が設けられている。
【０１５２】
ＮＡＮＤゲート１６１４は，ＮＡＮＤゲート１６１１の出力と，ＮＡＮＤゲート１６１１に相当するセクタＳｅｃｔｏｒ５〜７それぞれのＮＡＮＤゲートからの出力との否定論理積を上位セクタ選択信号ＵＳＥＬとして出力する。
【０１５３】
同様にＮＡＮＤゲート１６１５，１６１６は，ＮＡＮＤゲート１６１２，１６１３の出力と，ＮＡＮＤゲート１６１２，１６１３に相当するセクタＳｅｃｔｏｒ５〜７それぞれのＮＡＮＤゲートからの出力との否定論理積を相補パス選択信号ｔｗｉｎ，相補出力制御信号／ＲＡｏｕｔＨの反転信号としてそれぞれ出力する。
【０１５４】
例として，図１６に示すアンプ制御回路２１６にセクタＳｅｃｔｏｒ４のセクタアドレス信号“１００”が入力された場合における各信号の出力について以下に説明する。
【０１５５】
ＳｅｃｔｏｒＡｄｄｒｅｓｓ＜０＞＝“０”，ＳｅｃｔｏｒＡｄｄｒｅｓｓ＜１＞＝“０”，ＳｅｃｔｏｒＡｄｄｒｅｓｓ＜２＞＝“１”が入力されると，セクタＳｅｃｔｏｒ４向けアンプ制御回路に対応するセクタアドレス信号が入力されているため，インバータ１６０８の出力はＨレベルとなる。そのため，ＮＡＮＤゲート１６１１の出力は，フラグ信号ｔｗｉｎｓ＜４＞によって制御されることとみなすことができる。具体的には，フラグ信号ｔｗｉｎｓ＜４＞がＬレベル（単相セルモード）であればＮＡＮＤゲート１６１１の出力はＨレベル，フラグ信号ｔｗｉｎｓ＜４＞がＨレベル（相補セルモード）であればＬレベルとなる。一方，セクタＳｅｃｔｏｒ５〜７のアンプ制御回路におけるＮＡＮＤゲート１６１１に相当するＮＡＮＤゲートの出力は全てＨレベルとなる。したがって，セクタアドレス信号“１００”がアンプ制御回路２１６に入力されたとき，フラグ信号ｔｗｉｎｓ＜４＞がＬレベル（単相セルモード）の場合は上位セクタ選択信号ＵＳＥＬはＨレベル，下位セクタ選択信号ＬＳＥＬはＬレベルとなる。反対に，フラグ信号ｔｗｉｎｓ＜４＞がＨレベル（相補セルモード）の場合は，上位セクタ選択信号ＵＳＥＬはＬレベル，下位セクタ選択信号ＬＳＥＬはＨレベルとなる。
【０１５６】
ＮＡＮＤゲート１６１２には，ＮＡＮＤゲート１６１０の出力とフラグ信号ｔｗｉｎｓ＜４＞が入力されている。セクタアドレス信号“１００”が入力された場合は，ＮＡＮＤゲート１６１０の出力がＨレベルとなるため，ＮＡＮＤゲート１６１２の出力はフラグ信号ｔｗｉｎｓ＜４＞によって制御されることとみなすことができる。具体的には，フラグ信号ｔｗｉｎｓ＜４＞がＬレベル（単相セルモード）であればＮＡＮＤゲート１６０９の出力はＨレベル，フラグ信号ｔｗｉｎｓ＜４＞がＨレベル（相補セルモード）であればＬレベルとなる。一方，セクタＳｅｃｔｏｒ５〜７のアンプ制御回路におけるＮＡＮＤゲート１６１２に相当するＮＡＮＤゲートの出力は全てＨレベルとなる。したがって，セクタアドレス信号“１００”がアンプ制御回路２１６に入力されたとき，フラグ信号ｔｗｉｎｓ＜４＞がＬレベル（単相セルモード）の場合は相補パス選択信号ｔｗｉｎはＬレベルとなる。反対に，フラグ信号ｔｗｉｎｓ＜４＞がＨレベル（相補セルモード）の場合は，相補パス選択信号ｔｗｉｎはＨレベルとなる。
【０１５７】
ＮＡＮＤゲート１６１３には，インバータ１６０８の出力とフラグ信号ｔｗｉｎｓ＜４＞が入力される。セクタアドレス信号“１００”が入力された場合は，インバータ１６０８の出力がＨレベルとなるため，ＮＡＮＤゲート１６１３の出力はフラグ信号ｔｗｉｎｓ＜４＞によって制御されるとみなすことができる。具体的には，フラグ信号ｔｗｉｎｓ＜４＞がＬレベル（単相セルモード）であればＮＡＮＤゲート１６１３の出力はＨレベル，フラグ信号ｔｗｉｎｓ＜４＞がＨレベル（相補セルモード）であればＮＡＮＤゲート１６１０の出力はＬレベルとなる。一方，セクタＳｅｃｔｏｒ５〜７のアンプ制御回路におけるＮＡＮＤゲート１６１３に相当するＮＡＮＤゲートの出力は全てＨレベルとなる。したがって，セクタアドレス信号“１００”がアンプ制御回路２１６に入力されたとき，フラグ信号ｔｗｉｎｓ＜４＞がＬレベル（単相セルモード）の場合はＮＡＮＤゲート１６１６の出力はＬレベル，つまり相補出力制御信号／ＲＡｏｕｔＨはＨレベルとなる。反対に，フラグ信号ｔｗｉｎｓ＜４＞がＨレベル（相補セルモード）の場合はＮＡＮＤゲート１６１６の出力はＨレベル，つまり相補出力制御信号／ＲＡｏｕｔＨはＬレベルとなる。以上の出力結果を，セクタＳｅｃｔｏｒ３のセクタアドレス信号“０１１”が入力された場合の各信号の出力と併せて図１７にまとめる。
【０１５８】
図１７は，第１の実施の形態におけるアンプ制御信号の真理値表を示す図である。セクタＳｅｃｔｏｒ３が選択される場合，単相セルモードのときは下位セクタ選択信号ＬＳＥＬがＨレベル，参照セル選択信号／ｔｗｉｎがＨレベルとなり，相補セルモードのときは下位セクタ選択信号ＬＳＥＬがＨレベル，相補パス選択信号ｔｗｉｎがＨレベルとなる。一方，セクタＳｅｃｔｏｒ４が選択される場合，単相セルモードのときは上位セクタ選択信号ＨＳＥＬがＨレベル，参照セル選択信号／ｔｗｉｎがＨレベルとなり，相補セルモードのときは好ましくないアクセスであるため，相補出力制御信号／ＲＡｏｕｔＨはＬレベルにしている。すなわち，図１４で説明したように，フラグ信号ｔｗｉｎｓ＜４＞がＨレベル（相補セルモード）の場合に，セクタＳｅｃｔｏｒ４（セクタアドレス信号“１００”）に対して読み出し要求があったとき，その要求は誤った読み出し要求であるため，Ｌレベルの相補出力制御信号／ＲＡｏｕｔＨによりトランジスタ１４１４がオフ，トランジスタ１４１５がオンし，リードアンプ２２０の出力は常に消去状態“１”とするようにしている。
【０１５９】
以上のように，アンプ制御回路２１６は，入力されたセクタアドレス信号に基づいて，上位セクタ選択信号ＵＳＥＬと，下位セクタ選択信号ＬＳＥＬと，相補パス選択信号ｔｗｉｎと，セル選択信号／ｔｗｉｎと，相補出力制御信号／ＲＡｏｕｔＨとを出力する。また，これらの信号によりライトアンプ２１９やリードアンプ２２０ではプログラムパス，リードパスが図１４，図１５に示すとおり制御される。
【０１６０】
このように，第１の実施の形態では，セクタ番号の昇順にアドレスが入力されることでまず下位セクタとそのペアの上位セクタに順に相補セルモードで入力データＤＩが書込まれ，上位セクタに書込みが発生してからは単相セルモードに切り替わって，上位セクタに入力データが書込まれる。最上位のセクタに入力データＤＩが書込まれるまでは，それらとペアの最下位セクタとは相補セルモードでデータを記憶するため，信頼性が要求されるデータは最下位のセクタに書込むことが有効である。
【０１６１】
［第２の実施の形態］
第２の実施の形態では，書込みの順番をセクタ番号の昇順とはせずに，どのような順番で書込みが要求されても入力された外部アドレス信号ＦＡ００〜２０に対応するセクタグループに属する下位と上位セクタのセクタ状態データに応じて，相補セルモード又は単相セルモードのいずれかで書込みが行われる。そして，上位セクタへの書込み要求に対しても相補セルモード又は単相セルモードでの書込みを行う。したがって，データに高い信頼性が必要な場合には，下位と上位セクタがともに一括消去状態であるセクタグループのいずれかのセクタに対して，相補セルモードで書込みデータＤＩが書き込まれる。そして，それ以降は反転データが書込まれたセクタに対しては書込み要求を行わないことで，フラッシュメモリは信頼性の高いデータを保持することができる。
【０１６２】
図１８は，第２の実施の形態における半導体記憶装置の動作を示すフローチャート図である。図１８では，例として，出荷時のフラッシュメモリに対して書込み要求がセクタＳｅｃｔｏｒ６，３，７，２，４，０，１，５の順で行われている。
【０１６３】
セクタグループＳＧ１の上位セクタであるセクタＳｅｃｔｏｒ６に対して書込み要求が行われると（Ｓ１８０１），セクタ状態メモリアクセス制御回路２０７はセクタＳｅｃｔｏｒ６，１のセクタ状態データに基いて相補セルモードと判定し，その結果，セクタＳｅｃｔｏｒ６には書込みデータＤＩ，セクタＳｅｃｔｏｒ１にはその反転データが書込まれる（Ｓ１８０２）。そして，セクタ状態メモリ２０６で保持されているセクタＳｅｃｔｏｒ６のセクタ状態データは書込み状態となる。
【０１６４】
同様にして，セクタＳｅｃｔｏｒ３，７，２に対して順に書込みデータＤＩの書込み動作を行うことにより（Ｓ１８０３〜Ｓ１８０８），セクタＳｅｃｔｏｒ３，７，２には書込みデータＤＩが，Ｓｅｃｔｏｒ４，０，５にはその反転データが書込まれる。
【０１６５】
このようにステップＳ１８０８が終了したときには下位セクタＳｅｃｔｏｒ２，３と上位セクタＳｅｃｔｏｒ６，７には書込みデータが，下位セクタＳｅｃｔｏｒ０，１と上位セクタ４，５には反転データが書込まれている。
【０１６６】
ステップＳ１８０８に続いて，セクタグループ３の上位セクタであるセクタＳｅｃｔｏｒ４に対して書込み要求があると（Ｓ１８０９），セクタ状態メモリアクセス制御回路２０７はセクタＳｅｃｔｏｒ４，３のセクタ状態データに基いて単相セルモードと判定する。その結果，セクタＳｅｃｔｏｒ４に対して，消去状態“１”のメモリセルすべてをプログラム状態“０”にする書込み動作と，すべてのメモリセルを消去状態“１”にする一括消去動作が行われる。そして，コマンド生成回路２０１が出力する書込みコマンドＰＧＭに基づき，セクタＳｅｃｔｏｒ４に対して単相セルモードで書込みデータＤＩが書込まれる（Ｓ１８１０）。そして，セクタ状態メモリ２０５に記憶されているセクタＳｅｃｔｏｒ４のセクタ状態データは書込み状態となる。
【０１６７】
この後，セクタＳｅｃｔｏｒ０，１，５について同様にして書込み動作を行うことにより（Ｓ１８１１〜１８１６），セクタＳｅｃｔｏｒ０〜７には単相セルモードで書込みデータＤＩが記憶されることになる。
【０１６８】
このように第２の実施の形態では，任意の順番でセクタを選ぶことが可能であり，下位と上位セクタのセクタ状態データに基づいて書込みデータＤＩの書込み方式が決定される。したがって，第１の実施の形態と異なり，下位セクタに書込みデータＤＩの反転データが書込まれる場合がある。
【０１６９】
そこで次に図１９を用いて，１つのセクタグループの下位セクタと上位セクタにおける，セクタ状態メモリアクセス制御回路２０７の判定結果の遷移について説明する。
【０１７０】
図１９は，第２の実施の形態における下位セクタと上位セクタのセクタ状態を示す図である。
【０１７１】
図１９は，初期状態を起点とする（Ｓ１９０１）。そして，ステップ１９０７までは，図４のステップＳ４０２〜Ｓ４０７と同様に，下位，上位セクタに対して書込み要求，一括消去要求がされ，書込み方式が判定される（Ｓ１９０２〜Ｓ１９０７）。
【０１７２】
下位及び上位セクタがともに初期状態であるステップＳ１９０７に続いて，上位セクタに対して書込みコマンドＰＧＭが生成された場合（Ｓ１９０８），セクタ状態メモリアクセス制御回路２０７は下位セクタ，上位セクタのセクタ状態信号に基づき相補セルモードと判定し，フラグ信号生成回路２１１からＨレベルのフラグ信号ｔｗｉｎｓが出力される。そして，上位セクタのセクタ状態データは一括消去状態から書込み状態になり，上位セクタのセクタ状態メモリからはＨレベルのセクタ状態信号が出力され，下位セクタからはＬレベルのセクタ状態信号が出力される。
【０１７３】
次に，下位セクタに対して書込みコマンドＰＧＭを生成した場合（Ｓ１９０９），セクタ状態メモリアクセス制御回路２０７は単相セルモードと判定し，フラグ信号生成回路２１１からＬレベルのフラグ信号ｔｗｉｎｓが出力される。そして，下位セクタのセクタ状態データは一括消去状態から書込み状態になり，下位セクタのセクタ状態メモリからはＨレベル，上位セクタのセクタ状態メモリからはＨレベルのセクタ状態信号がそれぞれ出力される。
【０１７４】
ステップＳ１９０９の状態から上位セクタ，下位セクタに対して一括消去コマンドＥＲＳが生成された場合（Ｓ１９１０，Ｓ１９１１），Ｓ１９１０，Ｓ１９１１いずれにおいてもセクタ状態メモリアクセス制御回路２０７は単相セルモードと判定し，フラグ信号生成回路２１１から出力されるフラグ信号ｔｗｉｎｓはＬレベルのままである。そして，上位セクタ，下位セクタのセクタ状態データは順に書込み状態（Ｈレベル）から一括消去状態（Ｌレベル）になる。
【０１７５】
さらに，下位及び上位セクタがともに初期状態であるステップＳ１９１１（セクタ状態メモリの出力がともにＬレベル）の状態から下位セクタに対して書込みコマンドＰＧＭが生成された場合（Ｓ１９１２），セクタ状態メモリアクセス制御回路２０７は相補セルモードと判定し，フラグ信号ｔｗｉｎｓはＨレベルに切り替わる。そして，下位セクタのセクタ状態データは一括消去状態から書込み状態になり，下位セクタのセクタ状態メモリのセクタ状態信号はＨレベルとなる。
【０１７６】
このように第２の実施の形態では，下位セクタ，上位セクタのセクタ状態信号がともにＬレベル（一括消去状態）である状態から，いずれか一方のセクタ状態信号がＨレベル（書込み状態）になる場合に，セクタ状態メモリアクセス制御回路２０７は相補セルモードと判定し，これにより出力されるフラグ信号ｔｗｉｎｓはＨレベルになる。つまり，セクタとそのペアのセクタのセクタ状態データに基づいて書込み方式が決まる。したがって，任意のセクタに信頼性の高いデータを相補セルモードで書込み，それ以降はそのセクタとそのペアのセクタに対して書込みを行わないことにより，任意のセクタに信頼性の高いデータを保持させることが可能である。
【０１７７】
次に第２の実施の形態における書込み方式の判定動作について説明する。図２０は，第２の実施の形態における書込み方式の判定動作を示す図である。第２の実施の形態では，図１９で述べたように，同じセクタグループに属する下位セクタと上位セクタとが一括消去状態である場合に，下位又は上位セクタのいずれかに書込み要求があると，相補セルモードで下位および上位セクタに書込みが行われる。そこで図２０では，図５に対してさらに上位セクタ単相相補メモリ２００５とラッチ回路２００７とが設けられている。なお，第１の実施の形態と同様，第２の実施の形態においても，セクタ状態メモリ２０６とフラグ信号生成回路２１１とは，セクタグループごとに設けられる。
【０１７８】
両セクタ状態メモリ２００１，２００２のセクタ状態データは，書込みコマンドＰＧＭと一括消去コマンドＥＲＳに応答して，それぞれの状態に書き換えられる。そして，セクタ状態メモリ２００１，２００２から出力されるセクタ状態信号ｃ１ｏｕｔＬ，ｃ１ｏｕｔＵは，セクタ状態メモリアクセス制御回路２０７に供給される。また，図５と同様に，単相相補メモリ用のプログラムイネーブル信号ｃ２ＰＧＭｅｎがセクタ状態メモリアクセス制御回路２０７に供給される。
【０１７９】
下位セクタ単相相補メモリ２００４と上位セクタ単相相補メモリ２００５とは，動作制御回路２０８からアドレス信号ＡＤと書込みコマンドＰＧＭ又は一括消去コマンドＥＲＳが供給されたときに，両セクタ状態メモリ２００１，２００２のセクタ状態データに基づいて，単相セルモード又は相補セルモードの判定結果を示す単相相補判定データを格納するメモリである。両単相相補メモリ２００４，２００５は，Ｈレベル（相補セルモード）又はＬレベル（単相セルモード）の単相相補判定信号ｃ２ｏｕｔＬ，ｃ２ｏｕｔＵを出力する。
【０１８０】
例えば，初期状態（セクタ状態信号ｃ１ｏｕｔＬ，ｃ１ｏｕｔＵがともにＬレベル（一括消去状態）），すなわちプログラムイネーブル信号ｃ２ＰＧＭｅｎがＨレベルのときに，下位セクタに対して書込みコマンドＰＧＭが生成されると，セクタ状態メモリアクセス制御回路２０７は下位セクタ単相相補メモリ２００４の単相相補判定データをＬレベル（単相セルモード）からＨレベル（相補セルモード）にする。一方，上位セクタ単相相補メモリ２００５はＬレベル（単相セルモード）を維持する。そして，下位セクタ状態メモリ２００１のセクタ状態信号ｃ１ｏｕｔＬは，書込みコマンドＰＧＭに応答して，Ｈレベル（書込み状態）になる。この状態からさらに，下位セクタに対して一括消去コマンドＥＲＳが生成された場合，又は上位セクタに対して書込みコマンドＰＧＭが生成された場合のいずれかの場合，セクタ状態メモリアクセス制御回路２０７は，下位セクタ単相相補メモリ２００４の単相相補判定データをＨレベル（相補セルモード）からＬレベル（単相セルモード）にする。このとき上位セクタ単相相補メモリ２００５の単相相補判定データはＬ（単相セルモード）のままである。
【０１８１】
上記例とは反対に，初期状態のときに上位セクタに対して書込みコマンドＰＧＭが生成されると，上位セクタ単相相補メモリ２００５の単相相補判定データはＬレベル（単相セルモード）からＨレベル（相補セルモード）になるが，下位セクタ単相相補２００４メモリの単相相補判定データはＬレベル（単相セルモード）を維持する。そして，上位セクタ状態メモリ２００２のセクタ状態信号ｃ１ｏｕｔＵは，書込みコマンドＰＧＭに応答して，Ｈレベル（書込み状態）になる。この状態からさらに，上位セクタに対して一括消去コマンドＥＲＳが生成された場合，又は下位セクタに対して書込みコマンドＰＧＭが生成された場合のいずれかの場合に，上位セクタ単相相補メモリ２００５の単相相補判定データはＨレベル（相補セルモード）からＬレベル（単相セルモード）になる。このとき下位セクタ単相相補メモリ２００４の単相相補判定データはＬ（単相セルモード）のままである。
【０１８２】
フラグ信号生成回路２１１は，コントロールクロック信号ＣｏｎｔｒｏｌＣＬＫの立ち上がりに応答して，単相相補メモリ２００４，２００５の単相相補判定信号ｃ２ｏｕｔＬ，ｃ２ｏｕｔＵをラッチ回路２００６，２００７でラッチし，それぞれのフラグ信号ｔｗｉｎｓを出力する。なお，コントロールクロック信号ＣｏｎｔｒｏｌＣＬＫは，図５と同様，ＯＲ信号に応答して動作制御回路２０８で生成される。また，ラッチ回路２００６，２００７は，図５と同様，パワーオンリセット信号ＰＯＲに応答してリセットされる。
【０１８３】
フラグ信号ｔｗｉｎｓは，セクタグループごとに２種類の信号となって出力される。ラッチ回路２００６から出力されるフラグ信号ｔｗｉｎｓ＜４＞〜＜７＞は，それぞれ，セクタＳｅｃｔｏｒ３，２，１，０に対するセクタＳｅｃｔｏｒ４，５，６，７の書込み方式を表す。また，ラッチ回路２００７から出力されるフラグ信号ｔｗｉｎｓ＜０＞〜＜３＞は，それぞれ，セクタＳｅｃｔｏｒ７，６，５，４に対するセクタＳｅｃｔｏｒ０，１，２，３の書込み方式を表す。
【０１８４】
例えば，セクタＳｅｃｔｏｒ０，Ｓｅｃｔｏｒ７のセクタ状態信号がＬレベル（一括消去状態）である場合に，セクタＳｅｃｔｏｒ０に対して書込み要求があると，下位セクタ単相相補メモリ２００４の単相相補判定信号ｃ２ｏｕｔＬはＨレベル（相補セルモード）になる。これにより，セクタＳｅｃｔｏｒ７のフラグ信号ｔｗｉｎｓ＜７＞はＬレベル（単相セルモード）からＨレベル（相補セルモード）となる。このとき，セクタＳｅｃｔｏｒ０のフラグ信号ｔｗｉｎｓ＜０＞はＬレベル（単相セルモード）のままである。
【０１８５】
一方，セクタＳｅｃｔｏｒ０，Ｓｅｃｔｏｒ７のセクタ状態信号がＬレベル（一括消去状態）である場合に，セクタＳｅｃｔｏｒ７に対して書込み要求があると，上位セクタ単相相補メモリ２００５の単相相補判定信号ｃ２ｏｕｔＵはＨレベル（相補セルモード）になる。これにより，セクタＳｅｃｔｏｒ０のフラグ信号ｔｗｉｎｓ＜０＞はＬレベル（単相セルモード）からＨレベル（相補セルモード）となる。このとき，セクタＳｅｃｔｏｒ７のフラグ信号ｔｗｉｎｓ＜７＞はＬレベル（単相セルモード）のままである。
【０１８６】
このようにして，下位セクタと上位セクタのセクタ状態データに基づき，セクタ状態メモリアクセス制御回路２０７は，単相又は相補セルモードの判定を行う。
【０１８７】
図２１は，第２の実施の形態におけるフラッシュメモリの下位および上位セクタがともに一括消去状態であるときに，下位セクタ，上位セクタの順に書込み要求があった場合のフラグ信号の波形図である。図２１では，同じセクタグループ内の下位セクタ，上位セクタの順に時間Ｔ０，Ｔ１で書込みコマンドＰＧＭを生成した後に，下位セクタ，上位セクタの順に時間Ｔ２，Ｔ３で一括消去コマンドＥＲＳを生成し，時間Ｔ４，Ｔ５では上位セクタ，下位セクタの順に書込みコマンドＰＧＭを生成している。
【０１８８】
時間Ｔ０〜Ｔ３については，下位，上位セクタ状態信号ｃ1ｏｕｔＬ，ｃ１ｏｕｔＵと下位セクタ単相相補判定信号ｃ２ｏｕｔＬとフラグ信号ｔｗｉｎｓ＜４＞〜＜７＞の波形は，図６と同様である。また，上位セクタ単相相補判定信号ｃ２ｏｕｔＵとフラグ信号ｔｗｉｎｓ＜０＞〜＜３＞については，Ｌレベルを維持する。また，時間Ｔ３で両セクタ状態メモリ２００１，２００２が初期状態となる。
【０１８９】
時間Ｔ４の上位セクタに対する書込みコマンドＰＧＭの立ち上がりと，その直前の単相相補メモリ用のプログラムイネーブル信号ｃ２ＰＧＭｅｎ（Ｈレベル）に基づき，上位セクタ単相相補メモリ２００５の単相相補判定データは，Ｌレベル（単相セルモード）からＨレベル（相補セルモード）になる。これにより，上位セクタ単相相補メモリ２００５が出力する単相相補判定信号ｃ２ｏｕｔＵもＬレベル（単相セルモード）からＨレベル（相補セルモード）になる。また，時間Ｔ４で上位セクタに対する書込みコマンドＰＧＭの立ち上がりに応答して，上位セクタのセクタ状態メモリ２００２のセクタ状態信号ｃ１ｏｕｔＵはＨレベルとなり，セクタ状態データは書込み状態となる。そして，ラッチ回路２００７は，時間Ｃ４のコントロールクロック信号ＣｏｎｔｒｏｌＣＬＫの立ち上がりに応答して単相相補判定信号ｃ２ｏｕｔＬをラッチし，Ｈレベル（相補セルモード）のフラグ信号ｔｗｉｎｓ＜０＞〜＜３＞を出力する。
【０１９０】
時間Ｔ５の下位セクタに対する書込みコマンドＰＧＭの立ち上がりに応答して，上位セクタ単相相補メモリ２００５の単相相補判定データはＨレベル（相補セルモード）からＬレベル（単相セルモード）になる。これにより単相相補判定信号ｃ２ｏｕｔＵもＨレベル（相補セルモード）からＬレベル（単相セルモード）になる。このとき，下位セクタのセクタ状態信号ｃ１ｏｕｔＬがＨレベルとなり，下位セクタ状態メモリ２００１のセクタ状態データは書込み状態となる。ラッチ回路２００７は，時間Ｃ５のコントロールクロック信号ＣｏｎｔｒｏｌＣＬＫの立ち下がりに応答して単相相補判定信号ｃ２ｏｕｔＬをラッチし，Ｌレベル（単相セルモード）のフラグ信号ｔｗｉｎｓ＜０＞〜＜３＞を出力する。
【０１９１】
このように，下位セクタ，上位セクタがともに一括消去状態であるときに上位セクタに書込みコマンドＰＧＭが生成されることで，上位セクタ単相相補メモリ２００５の判定結果は単相セルモードから相補セルモードに切り替わる。さらに下位セクタに書込みコマンドＰＧＭを生成すると上位セクタ単相相補メモリ２００５の判定結果は単相セルモードに切り替わる。逆に両セクタがともに一括消去状態のとき下位セクタに書込みコマンドＰＧＭが生成されると，上記と逆の動作になる。
【０１９２】
図２２は，第２の実施の形態における外部電源がオンされたときの各信号の立ち上がりを示す波形図である。図２２（１）は，下位セクタ，上位セクタともにセクタ状態信号ｃ１ｏｕｔＬ，ｃ１ｏｕｔＵがＨレベル（書込み状態），単相相補判定信号ｃ２ｏｕｔＬ，ｃ２ｏｕｔＵがＬレベル（単相セルモード）の場合の波形である。そして，図２２（２）は，下位セクタのセクタ状態信号ｃ１ｏｕｔＬがＨレベル（書込み状態），上位セクタのセクタ状態信号ｃ１ｏｕｔＵがＬレベル（一括消去状態），単相相補判定信号ｃ２ｏｕｔＬがＨレベル（相補セルモード），ｃ２ｏｕｔＵがＬレベル（単相セルモード）の場合の波形である。
【０１９３】
図２２（１），（２）のいずれも，図８（１），（２）と同様，外部電源がオンされると，フラグ信号ｔｗｉｎｓはパワーオンリセット信号によりリセットされる。そして，外部電源が立ち上がったときに，セクタ状態信号ｃ１ｏｕｔＬ，ｃ１ｏｕｔＵと単相相補判定信号ｃ２ｏｕｔＬ，ｃ２ｏｕｔＵは外部電源がオフされる直前の状態となる。また，このときラッチ回路２００６，２００７はそれぞれ単相相補判定信号ｃ２ｏｕｔＬ，ｃ２ｏｕｔＵをラッチし，外部電源がオフされる直前と同じ電圧レベルのフラグ信号ｔｗｉｎｓを出力する。
【０１９４】
第２の実施の形態では，第１の実施の形態と同様，相補セルモードで反転データが書込まれているときに，一括消去状態のセクタに対して書込みコマンドＰＧＭが，もしくは書込み状態のセクタに対して一括消去コマンドＥＲＳが生成されると，フラグ信号ｔｗｉｎｓはＬレベル（単相セルモード）になる。例えば，図１９のステップＳ１９０３，１９０４等である。そして，セクタ状態メモリ２００１，２００２のうち一括消去状態から書込み状態に変わる側のセクタに書込まれている反転データが一括消去された後，生成されたコマンド信号の動作が開始される。そのため，第１の実施の形態と同様に，反転データの一括消去中にフラッシュメモリの電源がオフとなった場合に，電源をオンにしても反転データの一括消去動作を完了させることが必要となる。そこで，次に反転データの一括消去動作について説明する。
【０１９５】
図２３は第２の実施の形態における内部ＥＲＳコマンドの生成を示すブロック図である。図９と同様に，フラッシュメモリの電源をオンとしたときにフラグ信号ｔｗｉｎｓ＜０＞〜＜７＞いずれかがＬレベル（単相セルモード）で，対応する内部フラグ信号ｉｎｔ-ｔｗｉｎｓ＜０＞〜＜７＞がＨレベル（相補セルモード）であれば，中断した一括消去動作を再開するために，セクタ状態メモリアクセス制御回路２０７より該当のセクタに対するＥＲＳ開始信号が出力される。そして，一括消去動作が完了すると，動作制御回路２０８よりＥＲＳ完了信号が出力され，ＥＲＳ用セクタ状態メモリ２３０１の内部フラグ信号ｉｎｔ-ｔｗｉｎｓはＬレベル（単相セルモード）になる。また，電源がオンしたときは，セクタ状態メモリアクセス制御回路２０７はパワーオン制御クロック信号に応答して，フラグ信号と内部フラグ信号に基づき，ＥＲＳ開始信号の出力するか，しないかを判断する。
【０１９６】
例えば，セクタＳｅｃｔｏｒ０，Ｓｅｃｔｏｒ７がともに一括消去状態である場合に，セクタＳｅｃｔｏｒ７に書込み要求があるとフラグ信号ｔｗｉｎｓ＜０＞はＬレベル（単相セルモード）からＨレベル（相補セルモード）になる。一方，フラグ信号ｔｗｉｎｓ＜７＞，内部フラグ信号ｉｎｔ-ｔｗｉｎｓ＜０＞，＜７＞はＬレベル（単相セルモード）のままである。また，セクタＳｅｃｔｏｒ７のセクタ状態メモリ２００２は一括消去状態から書込み状態に切り替わるが，セクタＳｅｃｔｏｒ０のセクタ状態メモリ２００１は一括消去状態のままである。そして，フラグ信号ｔｗｉｎｓ＜０＞，＜７＞と内部フラグ信号ｉｎｔ-ｔｗｉｎｓ＜０＞，＜７＞に基づいて，セクタ状態メモリアクセス制御回路２０７は，内部フラグ制御信号ｉｎｔ‐ｔｃ＜０＞を出力する。内部フラグ制御信号ｉｎｔ‐ｔｃ＜０＞に応答して，ＥＲＳ用セクタ状態メモリ２３０１は，内部フラグ信号ｉｎｔ-ｔｗｉｎｓ＜０＞をＨレベル（相補セルモード）にする。そして，フラッシュメモリは上記の書込み要求に対応して，セクタＳｅｃｔｏｒ７には書込みデータＤＩを，セクタＳｅｃｔｏｒ０にはその反転データを書込む。この動作は，図１０の時間Ｔ１６，Ｔ１７の動作と同じである。
【０１９７】
次に，上記の相補セルモードの状態からセクタＳｅｃｔｏｒ７に一括消去要求があると，フラグ信号ｔｗｉｎｓ＜０＞はＨレベル（相補セルモード）からＬレベル（単相セルモード）になる。一方，フラグ信号ｔｗｉｎｓ＜７＞はＬレベル（単相セルモード），内部フラグ信号ｉｎｔ-ｔｗｉｎｓ＜０＞はＨレベル（相補セルモード），内部フラグ信号ｉｎｔ-ｔｗｉｎｓ＜７＞はＬレベル（単相セルモード）のままである。また，セクタＳｅｃｔｏｒ７のセクタ状態メモリ２００２は書込み状態から一括消去状態に切り替わる。このとき，未だセクタＳｅｃｔｏｒ０内の反転データは一括消去されず，反転データがセクタＳｅｃｔｏｒ０に保持されている。そこで，セクタ状態メモリアクセス制御回路２０７は，セクタＳｅｃｔｏｒ０の反転データを一括消去するために，フラグ信号ｔｗｉｎｓ＜０＞，＜７＞と内部フラグ信号ｉｎｔ-ｔｗｉｎｓ＜０＞，＜７＞に基づいて，セクタＳｅｃｔｏｒ０向けＥＲＳ開始信号を出力する。その後は，第１の実施の形態の図９と同様，反転データの一括消去が完了すると動作制御回路２０８は，セクタＳｅｃｔｏｒ０向けＥＲＳ完了信号をセクタ状態メモリアクセス制御回路２０７へ出力する。そして，このＥＲＳ完了信号に応答して，ＥＲＳ用セクタ状態メモリ２３０１は，内部フラグ信号ｉｎｔ-ｔｗｉｎｓ＜０＞をＨレベル（相補セルモード）からＬレベル（単相セルモード）にする。これは図１０の時間Ｔ１１〜Ｔ１４，Ｔ１９〜Ｔ２２と同じ動作である。さらに，フラッシュメモリは通常動作としてセクタＳｅｃｔｏｒ７の一括消去を行い，セクタＳｅｃｔｏｒ７，０のセルはすべて消去状態“１”となる。
【０１９８】
上記例とは反対に，セクタＳｅｃｔｏｒ０が書込み状態，セクタＳｅｃｔｏｒ７が一括消去状態のときの相補セルモードの状態において，セクタＳｅｃｔｏｒ０に対して一括消去要求があった場合の動作は，図９で説明した動作と同様である。この場合は，フラグ信号ｔｗｉｎｓ＜７＞，＜０＞及び内部フラグ信号ｉｎｔ-ｔｗｉｎｓ＜０＞はＬレベル（単相セルモード），内部フラグ信号ｉｎｔ-ｔｗｉｎｓ＜７＞はＨレベル（相補セルモード）となる。このとき，未だセクタＳｅｃｔｏｒ７内の反転データは一括消去されず，反転データがセクタＳｅｃｔｏｒ７に保持されている。そのため，セクタＳｅｃｔｏｒ７の反転データが一括消去された後に，フラッシュメモリは通常動作としてセクタＳｅｃｔｏｒ０の一括消去を行い，セクタＳｅｃｔｏｒ０及びセクタＳｅｃｔｏｒ７のセルはすべて消去状態“１”となる。
【０１９９】
以上のとおり，ペアリングされているセクタ対が相補セルモードの状態において，ペアセクタ対のうち書込み状態のセクタに対して一括消去が要求されると，フラッシュメモリはそのペアの他方のセクタの反転データがすべて削除されてから，一括消去が要求されたセクタに一括消去動作を行う。この反転データの削除動作は，フラグ信号ｔｗｉｎｓがＬレベル，内部フラグ信号ｉｎｔ-ｔｗｉｎｓがＨレベルである場合に行われる。したがって，上記例だけでなく，第２の実施の形態においても第１の実施の形態と同様に，（１）相補セルモードの場合において，反転データが書込まれているセクタに対して書込み要求があった場合，（２）反転データ削除中に電源がオフしその後電源がオンした場合，それぞれにおいて反転データの一括消去が行われる。
【０２００】
第２の実施の形態では，第１の実施の形態と同様，入力されたセクタアドレス信号と単相相補判定結果に基づいて，書込み対象のセクタが決定される。単相セルモードの場合には，入力されたセクタアドレス信号に対応するセクタが選択され，相補セルモードの場合にはさらにそのペアとなるセクタも選択される。そこで図２４を用いてセクタを選択するデコーダについて説明する。
【０２０１】
図２４は第２の実施の形態におけるセクタ制御回路（デコーダ）を示す図である。図２４（１）の回路は，セクタＳｅｃｔｏｒ０向けのセクタ制御回路２１２の回路図である。また，図２４（２）はセクタＳｅｃｔｏｒ０と同じセクタグループＳＧ０に属するセクタＳｅｃｔｏｒ７向けのセクタ制御回路２１２の回路図であり，図１２（２）と同様な回路となっている。図２４（１）の回路は，図２４（２）の回路のインバータ２４２１〜２４２３の配置を変更してインバータ２４０１〜２４０３にした回路である。
【０２０２】
例えば，入力されたセクタアドレス信号が“１１１”である場合，フラグ信号ｔｗｉｎｓ＜０＞，＜７＞がともにＬレベル（単相セルモード）であるときは，セクタＳｅｃｔｏｒ０，７のセクタ選択信号Ｓｅｃｔｏｒ  Ｓｅｌｅｃｔ＜０＞，＜７＞はそれぞれＬレベル，Ｈレベルとなり，セクタＳｅｃｔｏｒ７だけが選択される。一方，すなわちフラグ信号ｔｗｉｎｓ＜０＞，＜７＞がそれぞれＨレベル（相補セルモード），Ｌレベル（単相セルモード）であるときは，セクタＳｅｃｔｏｒ０，７のセクタ選択信号Ｓｅｃｔｏｒ  Ｓｅｌｅｃｔ＜０＞，＜７＞はともにＨレベルとなり，セクタＳｅｃｔｏｒ０，７の両方が選択される。
【０２０３】
以上のように，相補セルモードでは，一方のセクタを選択すると，そのペアのセクタも同時に選択される。
【０２０４】
なお，第１の実施の形態と同様， セクタＳｅｃｔｏｒ１〜３向けのセクタ制御回路２１２は，図２４（１）の回路において，ＮＡＮＤゲート２４１１の入力が相補セルモード（対応するフラグ信号ｔｗｉｎｓ＜１＞〜＜３＞がＨレベル）では全てＨレベル，単相セルモード（対応するフラグ信号ｔｗｉｎｓ＜１＞〜＜３＞がＬレベル）では全てＬレベルとなるように，領域２４１３〜２４１５内でインバータを上側又は下側に配置した回路となる。また，セクタＳｅｃｔｏｒ４〜６向けのセクタ制御回路２１２も同様に，図２４（２）の回路において，ＮＡＮＤゲート２４３１の入力が相補セルモード（対応するフラグ信号ｔｗｉｎｓ＜４＞〜＜６＞がＨレベル）では全てＨレベル，単相セルモード（対応するフラグ信号ｔｗｉｎｓ＜４＞〜＜６＞がＬレベル）では全てＬレベルとなるように，領域２４３３〜２４３５内でインバータを上側又は下側に配置した回路となる。
【０２０５】
図２で示したように，ライトアンプ２１９やリードアンプ２２０は，第１の実施の形態と同様，アンプ制御回路から出力される上位セクタ選択信号ＵＳＥＬ，下位セクタ選択信号ＬＳＥＬ，相補パス選択信号ｔｗｉｎ，参照セル選択信号／ｔｗｉｎ，相補出力制御信号／ＲＡｏｕｔＨによって，プログラムパスやリードパスを制御されている。ただし，第２の実施の形態では，相補パス選択信号ｔｗｉｎは上位相補パス選択信号ｔｗｉｎＵと下位相補パス選択信号ｔｗｉｎＬとに分類される。上位相補パス選択信号ｔｗｉｎＵは，下位セクタに反転データが保持されるときに下位セクタへのリードパスやプログラムパスを制御する信号である。下位相補パス選択信号ｔｗｉｎＬは，上位セクタに反転データが保持されるときに上位セクタへのリードパスやプログラムパスを制御する信号である。なお，各信号の説明については，図２７，図２８にて後述する。以下，図２５〜図２８を用いてリードアンプ２２０，ライトアンプ２１９，アンプ制御回路２１６について順に説明する。
【０２０６】
図２５は第２の実施の形態におけるリードパスを示す図である。図２５には，セクタＳｅｃｔｏｒ３のメモリセル２５０１，又はセクタＳｅｃｔｏｒ４のメモリセル２５０２から読み出しを行う場合のリードパスが示されている。
【０２０７】
リードアンプ２１９は，第１の実施の形態の図１４と同様に，データバスＤＢを介してコラムスイッチ２１８と接続しており，リードパス切替回路２５１２とコンパレータ回路２５１７とを有する。ただし，リードパス切替回路２５１２は，図１４と異なり，上位相補パス選択信号ｔｗｉｎＵによってゲートが駆動されるトランジスタ２５０９と，下位相補パス選択信号ｔｗｉｎＬによってゲートが駆動されるトランジスタ２５１０とを有している。この２つのトランジスタ２５０９及び２５１０があることで，メモリセル２５０１に書込みデータＤＩを書込んだ場合にメモリセル２５０１を相補セルモードで読み出すだけでなく，メモリセル２５０２に書込みデータＤＩを書込んだ場合にもメモリセル２５０２を相補セルモードで読み出すことが可能となっている。以下に２つの例を挙げて相補セルモードの動作を具体的に説明する。
【０２０８】
まず，相補セルモードでセクタＳｅｃｔｏｒ３のメモリセル２５０１に書込みデータＤＩ，セクタＳｅｃｔｏｒ４のメモリセル２５０２にその反転データを書込んだ場合である。メモリセル２５０１を読み出すときは，下位セクタ選択信号ＬＳＥＬがＨレベル，上位セクタ選択信号ＵＳＥＬがＬレベル，上位相補パス選択信号ｔｗｉｎＵはＬレベル，下位相補パス選択信号ｔｗｉｎＬはＨレベル，参照セル選択信号／ｔｗｉｎはＬレベル，相補出力制御信号／ＲＡｏｕｔＨはＨレベルとなる。つまり，リード切替回路２５１２ではトランジスタ２５０７，２５１０がオンし，トランジスタ２５０８，２５０９，２５１１はオフとなる。そして，セクタＳｅｃｔｏｒ３，４はそれぞれコンパレータ２５１３のマイナス入力端子，プラス入力端子と接続し，メモリセル２５０１と２５０２の電流がコンパレータ２５１３で比較される。
【０２０９】
次に，相補セルモードでセクタＳｅｃｔｏｒ４のメモリセル２５０２に書込みデータＤＩ，セクタＳｅｃｔｏｒ３のメモリセル２５０１にその反転データを書込んだ場合である。メモリセル２５０２を読み出すときは，下位セクタ選択信号ＬＳＥＬがＬレベル，上位セクタ選択信号ＵＳＥＬがＨレベル，上位相補パス選択信号ｔｗｉｎＵはＨレベル，下位相補パス選択信号ｔｗｉｎＬはＬレベル，参照セル選択信号／ｔｗｉｎはＬレベル，相補出力制御信号／ＲＡｏｕｔＨはＨレベルとなる。つまり，リード切替回路２５１２ではトランジスタ２５０８，２５０９がオンし，トランジスタ２５０７，２５１０，２５１１はオフとなる。そして，セクタＳｅｃｔｏｒ３，４はそれぞれコンパレータ２５１３のプラス端子，マイナス端子と接続し，メモリセル２５０１と２５０２の電流がコンパレータ２５１３で比較される。
【０２１０】
なお，いずれの場合でも，コンパレータ回路２５１７ではトランジスタ２５１５はオンし，トランジスタ２５１６はオフし，トランジスタ２５１４はリードイネーブル信号がＨレベルとなるときにオンし，コンパレータ２５１３から比較結果が出力される。
【０２１１】
また，上記２つの場合において，相補セルモードにおいて書込みデータＤＩの反転データが書込まれているメモリセルを読み出す場合は，相補出力制御信号／ＲＡｏｕｔＨはＬレベルとなりトランジスタ２５１６がオンし，トランジスタ２５１４がオフするため，コンパレータ回路２５１７の出力がＨレベルとなる。相補セルモードにおいて反転データを読み出すことは誤った読み出しであることから，常に出力がＨレベル，つまり消去状態“１”とするようにしているためである。
【０２１２】
一方，単相セルモードの場合では，図１４と同様に，選択したセクタのメモリセルの電流とリファレンスセルＲＣ１の電流とをコンパレータ２５１３で比較する。具体的には，セクタＳｅｃｔｏｒ３のメモリセル２５０１を読み出すときは，トランジスタ２５０７，２５１１がオンして，メモリセル２５０１がコンパレータ２５１３のマイナス端子に接続し，リファレンスセルＲＣ１のトランジスタ２５０３がコンパレータ２５１３にプラス端子に接続する。そして，セクタＳｅｃｔｏｒ３のメモリセル２５０１の電流とリファレンスセルＲＣ１の電流とが比較される。また，セクタＳｅｃｔｏｒ４のメモリセル２５０２を読み出すときは，トランジスタ２５０８，２５１１がオンして，メモリセル２５０２がコンパレータ２５１３のマイナス端子に接続し，リファレンスセルＲＣ１のトランジスタ２５０３がコンパレータ２５１３にプラス端子に接続する。そして，セクタＳｅｃｔｏｒ４のメモリセル２５０２の電流とリファレンスセルＲＣ１の電流とが比較される。
【０２１３】
以上のように，図２５では，相補セルモードではペアリングされている下位セクタと上位セクタとが比較され，単相セルモードでは，下位セクタ又は上位セクタと参照セルとが比較される。ただし，相補セルモードでは，反転データを保持するセクタを読み出すときは誤った読み出しであるため，比較結果は常にＨレベルとする。
【０２１４】
図２６は，第２の実施の形態におけるプログラムパスを示す図である。図２６には，セクタＳｅｃｔｏｒ３のメモリセル２６０１，又はセクタＳｅｃｔｏｒ４のメモリセル２６０２にプログラムする場合のプログラムパスが示されている。
【０２１５】
ライトアンプ２１９は，第１の実施の形態の図１５と同様，プログラムパス切替回路２６１２と，書込みデータＤＩを増幅するプログラムアンプ２６１３とを有し，コラムスイッチ２１８とデータバスＤＢを介して接続する。ただし，プログラムパス切替回路２６１２には，図１５と異なり，上位相補パス選択信号ｔｗｉｎＵによってゲートが駆動されるトランジスタ２６０７と，下位相補パス選択信号ｔｗｉｎＬによってゲートが駆動されるトランジスタ２６０８とを有している。
【０２１６】
相補セルモードの場合，セクタＳｅｃｔｏｒ３のメモリセル２６０１にプログラムする場合は，下位セクタ選択信号ＬＳＥＬと下位相補パス選択信号ｔｗｉｎＬがＨレベルとなる。つまり，トランジスタ２６０５，２６０８がオンし，メモリセル２６０１，２６０２がプログラムアンプ２６１３に接続する。そして，メモリセル２６０１には書込みデータ，メモリセル２６０２には書込みデータの反転データがプログラムされる。また，セクタＳｅｃｔｏｒ４のメモリセル２６０２にプログラムする場合は，上位セクタ選択信号ＵＳＥＬと上位相補パス選択信号ｔｗｉｎＵがＨレベルとなる。つまり，トランジスタ２６０６，２６０７がオンし，メモリセル２６０１，２６０３がプログラムアンプに接続する。そして，メモリセル２６０１には書込みデータの反転データ，メモリセル２６０２には書込みデータがプログラムされる。
【０２１７】
一方，単相セルモードの場合は，図１５と同様である。すなわち，セクタＳｅｃｔｏｒ３のメモリセル２６０１にプログラムする場合はトランジスタ２６０５がオンし，セクタＳｅｃｔｏｒ４のメモリセル２６０２にプログラムする場合はトランジスタ２６０６がオンし，それぞれプログラムされる。
【０２１８】
以上のように，図２６では，相補セルモードの場合，ペアリングされた下位セクタのメモリセルと上位セクタのメモリセルとがプログラムアンプに接続し，一方のメモリセルに書込みデータ，他方のメモリセルにその反転データがプログラムされる。一方，単相セルモードの場合は，選択されたセクタのメモリセルがプログラムアンプに接続し，書込みデータがプログラムされる。
【０２１９】
図２７は第２の実施の形態における上位セクタ向けのアンプ制御回路を示す図である。また，  図２８は第２の実施の形態における下位セクタ向けのアンプ制御回路を示す図である。図２７には上位セクタのうちセクタＳｅｃｔｏｒ４に対するアンプ制御回路が示されており，図２８にはセクタＳｅｃｔｏｒ４のペアであるセクタＳｅｃｔｏｒ３に対するアンプ制御回路が示されている。
【０２２０】
図２７のアンプ制御回路は，図１６のアンプ制御回路と同様な構成となっている。ただし，図１６のＮＡＮＤゲート１６１５に対応するＮＡＮＤゲート２７１５の出力は下位相補パス選択信号ｔｗｉｎＬとなる。また，図１６のＮＯＲゲート１６１８に対応するＮＯＲゲート２７１８は，下位相補パス選択信号ｔｗｉｎＬと書込みコマンドＰＧＭと後述するセクタＳｅｃｔｏｒ３のアンプ制御回路のＮＡＮＤゲート２８１１の出力とが入力され，相補セル選択信号／ｔｗｉｎを出力する。さらに，図１６のＮＯＲゲート１６１９に対応するＮＯＲゲート２７１９は，図１６のＮＡＮＤゲート１６１６に対応するＮＡＮＤ２７１６の出力である上位セクタ相補出力制御信号ｎｏＵと後述するセクタＳｅｃｔｏｒ３のアンプ制御回路のＮＡＮＤゲート２８１２の出力である下位セクタ相補出力制御信号ｎｏＬとが入力され，相補出力制御信号／ＲＡｏｕｔＨを出力する。
【０２２１】
セクタＳｅｃｔｏｒ５〜７のアンプ制御回路は，図１６と同様に，対応するセクタアドレス信号Ｓｅｃｔｏｒ  Ａｄｄｒｅｓｓ＜０＞〜＜２＞がアンプ制御回路２１６に入力されたときにＮＡＮＤゲート２７０３に相当するＮＡＮＤゲートの３つ入力がすべてＨレベルとなるように領域２７２０，２７２１にインバータを配置する又はしない回路である。例えば，セクタＳｅｃｔｏｒ４であれば，セクタアドレス信号は“１００”であるので，セクタアドレス信号Ｓｅｃｔｏｒ  Ａｄｄｒｅｓｓ＜０＞，＜１＞に対しインバータ２７０１，２７０２が設けられている。
【０２２２】
図２８のセクタＳｅｃｔｏｒ３〜０のアンプ制御回路は，セクタアドレス信号Ｓｅｃｔｏｒ  Ａｄｄｒｅｓｓ＜０＞〜＜２＞とフラグ信号ｔｗｉｎｓ＜３＞〜＜０＞とを入力し，上位セクタ相補パス選択信号ｔｗｉｎＵと下位セクタ相補出力制御信号ｎｏＬとを出力する。
【０２２３】
図２８のセクタＳｅｃｔｏｒ３のアンプ制御回路は，インバータ２８０１，２８０３〜２８０５，２８０７と，ＮＡＮＤゲート２８０２，２８０６，２８０８〜２８１２とを有し，ＮＡＮＤゲート２８１１，２８１２をＳｅｃｔｏｒ０〜３のアンプ制御回路の間で共有されている。
【０２２４】
また，セクタＳｅｃｔｏｒ０〜２のアンプ制御回路は，対応するセクタアドレス信号Ｓｅｃｔｏｒ  Ａｄｄｒｅｓｓ＜０＞〜＜２＞がアンプ制御回路２１６に入力されたときにＮＡＮＤゲート２８０２に相当するＮＡＮＤゲートの３つ入力がすべてＨレベルとなるように領域２８２０，２８２１にインバータを配置する又はしない回路である。例えば，セクタＳｅｃｔｏｒ３であれば，セクタアドレス信号は“０１１”であるので，セクタアドレス信号Ｓｅｃｔｏｒ  Ａｄｄｒｅｓｓ＜０＞，＜１＞に対し領域２８２０，２８２１にインバータが設けられていない。
【０２２５】
ここで，例として図２７，図２８のアンプ制御信号２１６にセクタＳｅｃｔｏｒ４のセクタアドレス信号“１００”が入力された場合における各信号の出力について以下に説明する。なお，第２の実施に形態では，セクタＳｅｃｔｏｒ４が選択された場合，単相セルモードは，フラグ信号ｔｗｉｎｓ＜４＞はＬレベルかつｔｗｉｎｓ＜３＞はＬレベルとなる。また，相補セルモードは，フラグ信号ｔｗｉｎｓ＜４＞がＬレベルかつｔｗｉｎｓ＜３＞がＨレベルである場合（以下相補セルモード１と呼ぶ。），もしくはｔｗｉｎｓ＜４＞がＨレベルかつｔｗｉｎｓ＜３＞がＬレベルである場合（以下相補セルモード２と呼ぶ。）の２通りある。
【０２２６】
ＳｅｃｔｏｒＡｄｄｒｅｓｓ＜０＞＝“０”，ＳｅｃｔｏｒＡｄｄｒｅｓｓ＜１＞＝“０”，ＳｅｃｔｏｒＡｄｄｒｅｓｓ＜２＞＝“１”が入力されると，図２７では，セクタＳｅｃｔｏｒ４向けアンプ制御回路に対応するセクタアドレス信号“１００”が入力されているため，インバータ２７０８の出力はＨレベルとなる。そのため，単相セルモード，相補セルモード１のときは，上位セクタ選択信号ＵＳＥＬはＨレベルとなり，相補セルモード２ではＬレベルとなる。
【０２２７】
ＮＡＮＤゲート２７１２には，ＮＡＮＤゲート２７１０の出力とフラグ信号ｔｗｉｎｓ＜４＞が入力されており，セクタアドレス信号“１００”が入力された場合は，ＮＡＮＤゲート２７１０の出力がＨレベルとなる。そのため，単相セルモード，相補セルモード１ときは，下位セクタ相補パス選択信号ｔｗｉｎＬはＬレベルとなり，相補セルモード２ではＨレベルとなる。
【０２２８】
ＮＡＮＤゲート２７１３には，インバータ２７０８の出力とフラグ信号ｔｗｉｎｓ＜４＞が入力されており，セクタアドレス信号“１００”が入力された場合は，インバータ２７０８の出力がＨレベルとなる。そのため，ＮＡＮＤゲート２７１６から出力される上位セクタ相補出力制御信号ｎｏＵは，単相セルモード，相補セルモード１のときはＬレベルとなり，相補セルモード２ではＨレベルとなる。
【０２２９】
そして，図２８のアンプ制御信号にセクタアドレス信号“１００”が入力された場合，インバータ２８０７の出力はＬレベル，ＮＡＮＤゲート２８０８の出力はＨレベルとなる。したがって，ＮＡＮＤ２８１１から出力される上位セクタ相補パス選択信号ｔｗｉｎＵは，単相セルモード，相補セルモード２のときはＬレベル，相補セルモード１のときはＨレベルとなる。また，ＮＡＮＤゲート２８１２から出力される下位セクタ相補出力制御信号ｎｏＬは，単相セルモード，相補セルモード１，２いずれのときもＬレベルとなる。
【０２３０】
さらに図２７，図２８より，ＮＯＲゲート２７１８から出力される参照セル選択信号／ｔｗｉｎは，単相セルモードのときはＨレベル，相補セルモード１，２のときはＬレベルとなる。また，ＮＯＲゲート２７１９から出力される相補出力制御信号／ＲＡｏｕｔＨは，単相セルモード，相補セルモード１のときＨレベル，相補セルモード２のときＬレベルとなる。以上の出力結果を，セクタＳｅｃｔｏｒ３のセクタアドレス信号“０１１”が入力された場合の各信号の出力と併せて図２９にまとめる。
【０２３１】
図２９は，第２の実施の形態におけるアンプ制御信号の真理値表を示す図である。セクタＳｅｃｔｏｒ３が選択される場合，単相セルモードのときは下位セクタ選択信号ＬＳＥＬがＨレベル，参照セル選択信号／ｔｗｉｎがＨレベルとなり，相補セルモード２のときは，下位セクタ選択信号ＬＳＥＬがＨレベル，下位セクタ相補パス選択信号ｔｗｉｎＬがＨレベルとなり，相補セルモード１のときは好ましくないアクセスであるため，相補出力制御信号／ＲＡｏｕｔＨはＬレベルにしている。セクタＳｅｃｔｏｒ４が選択される場合，単相セルモードのときは上位セクタ選択信号ＵＳＥＬがＨレベル，参照セル選択信号／ｔｗｉｎがＨレベルとなり，相補セルモード１のときは上位セクタ選択信号ＵＳＥＬがＨレベル，上位セクタ相補パス選択信号ｔｗｉｎＵがＨレベルとなり，相補セルモード２のときは好ましくないアクセスであるため，相補出力制御信号／ＲＡｏｕｔＨはＬレベルにしている。このように，セクタＳｅｃｔｏｒ３では相補セルモード１で，セクタＳｅｃｔｏｒ４では相補セルモード２で，相補出力制御信号／ＲＡｏｕｔＨがＬレベルとなる。これは，相補セルモード１の場合にセクタＳｅｃｔｏｒ３（セクタアドレス信号“０１１”）に対して読み出し要求があったとき，その要求は誤った読み出し要求であるため，Ｌレベルの相補出力制御信号／ＲＡｏｕｔＨによりトランジスタ２５１５がオフ，トランジスタ２５１６がオンし，リードアンプ２２０の出力は常に消去状態“１”とするようにしている。また，相補セルモード２の場合にセクタＳｅｃｔｏｒ４（セクタアドレス信号“１００”）に対して読み出し要求があったときも同様である。
【０２３２】
以上のように，アンプ制御回路２１６は，入力されたセクタアドレス信号に基づいて，上位セクタ選択信号ＵＳＥＬと，下位セクタ選択信号ＬＳＥＬと，上位セクタ相補パス選択信号ｔｗｉｎＵと，下位セクタ相補パス選択信号ｔｗｉｎＬと，セル選択信号／ｔｗｉｎと，相補出力制御信号／ＲＡｏｕｔＨとを出力する。また，これらの信号によりライトアンプ２１９やリードアンプ２２０ではプログラムパス，リードパスが図２５，図２６に示すとおり制御される。
【０２３３】
このように，第２の実施の形態では，各セクタに対してどのような順番で書込みが要求されても，選択されたセクタのセクタ及びそのペアのセクタのセクタ状態データに応じて相補セルモード又は単相セルモードのいずれかで書込みが行われる。これにより，フラッシュメモリは信頼性の高いデータだけでなく大容量のデータを任意のセクタに保持することができる。
【０２３４】
以上の実施の形態をまとめると，次の付記のとおりである。
【０２３５】
（付記１）
複数のメモリセルをそれぞれ有する複数のセクタであって，各一対のセクタで複数のセクタグループを構成する複数のセクタと，
前記複数のセクタグループのそれぞれの動作として，１ビットのデータを１つの前記セクタの１つの前記メモリセルで記憶する単相セルモード又は前記１ビットのデータを前記セクタグループの一対のセクタにそれぞれ含まれる一対の前記メモリセルで相補データとして記憶する相補セルモードのいずれかを選択し、選択結果を出力するモード判定部と，
前記選択結果に基づいて，前記セクタグループを前記単相セルモード又は相補セルモードで動作させる動作制御部とを有する半導体記憶装置。
【０２３６】
（付記２）
付記１において，
前記モード判定部は，前記セクタグループの一対のセクタが消去状態のときに一方のセクタに書込み要求があるとき当該セクタグループを相補セルモードと判定する半導体記憶装置。
【０２３７】
（付記３）
付記２において，
前記モード判定部は，前記相補セルモードのセクタグループの他方のセクタに書込み要求があったとき，当該セクタグループを前記単相セルモードと判定する半導体記憶装置。
【０２３８】
（付記４）
付記１において，
前記モード判定部は，前記複数のセクタのそれぞれに対応して，前記セクタが書込み要求に対応した書込み状態であるか，又は消去要求に対応した消去状態であるかを識別するセクタ状態データを保持するセクタ状態メモリと， 
前記セクタグループを構成する一方のセクタに対応する前記セクタ状態データと他方のセクタに対応する前記セクタ状態データとに基づき，前記選択結果を出力するセクタ状態メモリアクセス制御回路とを有する半導体記憶装置。
【０２３９】
（付記５）
付記４において，
前記セクタ状態メモリアクセス制御回路は，前記一方のセクタ及び前記他方のセクタの前記セクタ状態データがともに前記消去状態である前記セクタグループの前記一方のセクタに書込み要求があった場合，前記セクタグループについて前記相補セルモードの選択結果を出力し，前記一方のセクタの前記セクタ状態データを書込み状態に変更する半導体記憶装置。
【０２４０】
（付記６）
付記５において，
前記セクタ状態メモリアクセス制御回路は，前記相補セルモードである前記セクタグループの前記他方のセクタに書込み要求があった場合，前記セクタグループについて前記単相セルモードの選択結果を出力し，前記他方のセクタの前記セクタ状態データを書込み状態に変更する半導体記憶装置。
【０２４１】
（付記７）
付記５において，
前記セクタ状態メモリアクセス制御回路は，前記相補セルモードである前記セクタグループの前記一方のセクタに消去要求があった場合，前記セクタグループについて前記単相セルモードの選択結果を出力し，前記一方のセクタの前記セクタ状態データを消去状態に変更する半導体記憶装置。
【０２４２】
（付記８）
付記６又は７において，
前記動作制御部は，前記選択結果が前記相補セルモードから前記単相セルモードに切り替わったことを検出したら，前記他方のセクタに対して消去を要求する半導体記憶装置。
【０２４３】
（付記９）
付記５において，
前記相補セルモードである前記セクタグループの前記他方のセクタに消去要求があった場合，前記他方のセクタのデータの消去を行わない半導体記憶装置。
【０２４４】
（付記１０）
付記４において，
前記セクタ状態メモリアクセス制御回路は，前記セクタに対する書込み要求に応答して前記セクタ状態データを書込み状態にし，前記セクタに対する消去要求に応答して前記セクタ状態データを消去状態にする半導体記憶装置。
【０２４５】
（付記１１）
付記４において，
前記セクタ状態メモリは，相補セルモードから単相セルモードに切り替わる前記選択結果に応答して行われる前記他方のセクタの消去動作が完了か否かを示す内部フラグ信号を記憶し，
前記セクタ状態メモリアクセス制御回路は，前記他方のセクタへの書込み要求又は前記一方のセクタへの消去要求があったとき，前記選択結果が単相セルモードであり前記内部フラグ信号が未完了である場合前記他方のセクタに対する消去命令信号を出力し，前記消去命令信号による前記他方のセクタのデータの消去が完了したら，前記内部フラグ信号を完了にする半導体記憶装置。
【０２４６】
（付記１２）
付記１又は４において，
前記動作制御部は，前記選択結果に基づいてデータの書込み又は読み出しを行うセクタを選択するセクタ制御回路と，前記選択結果に基づいて書込みデータの相補データを前記セクタグループの一対のセクタに書込むか又は書込みデータを一方のセクタに書込むライトアンプと，前記選択結果に基づいて前記セクタグループの一対のセクタからの相補データに基づいて読み出しデータを出力するか又は前記一方のセクタからのデータに基づいて前記読み出しデータを出力するリードアンプとを有する半導体記憶装置。
【０２４７】
（付記１３）
付記１２において，
前記セクタ制御回路は，前記単相セルモードの場合，入力されたアドレス信号に対応する前記一方のセクタを選択し，前記相補セルモードの場合，前記一方のセクタ及び前記一方のセクタと同じ前記セクタグループを構成する他方のセクタを選択する半導体記憶装置。
【０２４８】
（付記１４）
付記１２において，
前記ライトアンプは，前記単相セルモードの場合，入力されたアドレス信号に対応する前記一方のセクタに前記書込みデータを出力し，前記相補セルモードの場合，前記一方のセクタに前記書込みデータを出力し，前記一方のセクタと同じ前記セクタグループを構成する他方のセクタに前記書込みデータの反転データを出力する半導体記憶装置。
【０２４９】
（付記１５）
付記１２において，
前記リードアンプは，前記単相セルモードの場合，入力されたアドレス信号に対応する前記一方のセクタ内のメモリセルとリファレンスセルとの比較により前記読み出しデータを出力し，前記相補セルモードの場合，前記一方のセクタ内のメモリセルと前記一方のセクタと同じ前記セクタグループを構成する他方のセクタ内のメモリセルとの比較により前記読み出しデータを出力する半導体記憶装置。
【０２５０】
（付記１６）
付記１において，
前記複数のセクタはそれぞれセクタ番号を有し，
前記複数のセクタは，セクタ番号の中間値よりセクタ番号の小さい第１のセクタ群と大きい第２のセクタ群に分けられ，
前記セクタグループは，前記第１のセクタ群のセクタのうちセクタ番号のより小さいセクタと第２のセクタ群のセクタのうちセクタ番号のより大きいセクタから順に一対のセクタを構成し， 
前記セクタ番号の小さいセクタから順に書込み要求が入力され，前記第１のセクタ群のセクタに対する書込み要求に対しては前記相補セルモードでデータを記憶し，前記第２のセクタ群のセクタに対する書込み要求に対しては前記単相セルモードでデータを記憶する半導体記憶装置。
【０２５１】
（付記１７）
付記１において，
前記セクタグループの一対のセクタのいずれか一方のセクタへの書込み要求に応答して前記相補セルモードでデータを記憶した後，前記前記相補セルモードであるセクタグループの他方のセクタへの書込み要求に応答して単相セルモードでデータを記憶する半導体記憶装置。
【符号の説明】
【０２５２】
ＲＤ：読み出しコマンド
ＰＧＭ：書込みコマンド
ＥＲＳ：一括消去コマンド
ｔｗｉｎｓ：フラグ信号
ＵＳＥＬ：上位セクタ選択信号
ＬＳＥＬ：下位セクタ選択信号
ｔｗｉｎ：相補パス選択信号
／ｔｗｉｎ：参照セル選択信号
ｔｗｉｎＵ：上位相補パス選択信号
ｔｗｉｎＬ：下位相補パス選択信号
ＲＡｏｕｔＨ：相補出力制御信号
ｉｎｔ-ｔｗｉｎｓ：内部フラグ信号
ｉｎｔ‐ｔｃ：内部フラグ制御信号
ＷＬ：ワード線
ＳＬ：ソース線
ＬＢＬ：ローカルビット線
ＧＢＬ：グローバルビット線
ＳＳＥＬ：コラム選択線
ＬＢＳＥＬ：ローカルビット線選択信号
ＹＳＥＬ：グローバルビット線選択信号
【図１】
0005919834.tif 000002
【図２】
0005919834.tif 000003
【図３】
0005919834.tif 000004
【図４】
0005919834.tif 000005
【図５】
0005919834.tif 000006
【図６】
0005919834.tif 000007
【図７】
0005919834.tif 000008
【図８】
0005919834.tif 000009
【図９】
0005919834.tif 000010
【図１０】
0005919834.tif 000011
【図１１】
0005919834.tif 000012
【図１２】
0005919834.tif 000013
【図１３】
0005919834.tif 000014
【図１４】
0005919834.tif 000015
【図１５】
0005919834.tif 000016
【図１６】
0005919834.tif 000017
【図１７】
0005919834.tif 000018
【図１８】
0005919834.tif 000019
【図１９】
0005919834.tif 000020
【図２０】
0005919834.tif 000021
【図２１】
0005919834.tif 000022
【図２２】
0005919834.tif 000023
【図２３】
0005919834.tif 000024
【図２４】
0005919834.tif 000025
【図２５】
0005919834.tif 000026
【図２６】
0005919834.tif 000027
【図２７】
0005919834.tif 000028
【図２８】
0005919834.tif 000029
【図２９】
0005919834.tif 000030