(57)【特許請求の範囲】
【請求項１】
電荷蓄積層内の両端領域にそれぞれ第１のビットおよび第２のビットを書き込む不揮発性メモリセルを複数配置したメモリセルアレイと、
前記メモリセルアレイに書き込むためのデータを保持する第１の記憶装置と、
前記データをもとに所定の単位に分割され前記第１のビットに書き込むための第１の分割データおよび前記データをもとに前記所定の単位に分割され前記第２のビットに書き込むための第２の分割データを保持する第２の記憶装置と、
前記第１の分割データを前記メモリセルアレイに書き込みを行った後、前記第２の分割データを前記メモリセルアレイに書き込みを行う制御回路と、
前記第１の分割データ中の書き込みデータビットの総数を所定の数と比較する計数回路とを具備し、
前記計数回路は、前記第１の分割データを前記所定単位よりもビット数の小さな書込みウィンドウに分割し、該書込みウィンドウ単位で書込みデータビットを計数して該書込みデータビットが前記書込みウィンドウのビット数の半数以上存在するかを判定し、
前記制御回路は、前記計数回路の比較結果が前記半数よりも大きいことを示すとき、前記第１の分割データを前記書込みウィンドウ単位で反転処理し、該反転処理した第１の分割データを前記第１の分割データとして前記第２の記憶装置に格納した後に前記メモリセルアレイに書き込みを行うとともに、前記反転処理した第１の分割データを前記第１の記憶装置に再格納し、その後、該再格納された前記反転処理した第１の分割データを前記第２の分割データとして前記第２の記憶装置に保持し、前記反転処理した第１の分割データを前記第２の分割データとして前記メモリセルアレイに書き込みを行い、
各前記不揮発性メモリセルにおいて、第１ビットおよび第２ビットとしては同じ論理値のデータが格納され、前記第１ビットは外部アクセスに供されない補助ビットとして用いられ前記第２ビットが外部アクセスされる使用ビットとして用いられる、半導体装置。
【請求項２】
前記制御回路は、前記第２のビットに対してのみベリファイを行う、請求項１記載の半導体装置。
【請求項３】
前記メモリセルアレイは、仮想接地型である請求項１から２のいずれか一項記載の半導体装置。
【請求項４】
前記メモリセルアレイはＳＯＮＯＳ型メモリセルを有する請求項１から３のいずれか一項記載の半導体装置。
【請求項５】
前記第１の記憶装置は、ＳＲＡＭセルがアレイ状に配列したセルアレイである請求項１から４のいずれか一項記載の半導体装置。
【請求項６】
電荷蓄積層内の両端領域に、それぞれ第１のビットおよび第２のビットを書き込む不揮発性メモリセルを複数配置したメモリセルアレイを有する半導体装置の制御方法であって、
前記メモリセルアレイに書き込むためのデータを所定単位で分割して前記第１のビットに書込むべき第１の分割データとして第１の記憶装置に保持するステップと、
前記第１の分割データ中の書き込みデータビットの総数を所定の数と比較するステップと、
前記所定の数と比較するステップの比較結果が前記所定数よりも大きいことを示すとき、前記第１の分割データを反転するステップと、
第２の記憶装置に、前記反転された第１の分割データを保持するステップと、
前記反転された第１の分割データを前記第１の記憶装置に第２の分割データとして保持するステップと、
前記メモリセルアレイの第１のビットに前記反転された第１の分割データを書き込むステップと、
前記第２の記憶装置に、前記第１の記憶装置に保持された前記第２の分割データを保持するステップと、
前記第１の分割データを書き込むステップの後、前記メモリセルアレイのメモリセルの第２ビットに前記第２の分割データを書き込むステップとを有し、
前記反転するステップは、
前記第１の分割データを前記所定単位のビット数よりも小さなビット数の書込みウィンドウ単位で前記書込みデータビットの数を計数するステップと、
前記計数値が前記書込みウィンドウのビット数の過半数よりも大きいとき前記第１の分割データを前記書込みウィンドウ単位で反転するステップとを備え、
各前記メモリセルにおいて、前記第１のビットおよび前記第２のビットには同じ論理値のデータビットが書込まれ、前記第１のビットは外部アクセスに使用されない補助ビットとして用いられ、前記第２のビットが前記外部アクセスされる使用ビットとして用いられる、半導体装置の制御方法。
【請求項７】
複数の前記第１の分割データに対し前記第１の分割データを保持するステップおよび前記反転された第１の分割データを書き込むステップを順次行い、その後、複数の前記第２の分割データに対し前記第２の分割データを保持するステップおよび前記第２の分割データを書き込むステップを順次行う請求項６記載の半導体装置の制御方法。
【請求項８】
前記第２のビットに対してのみベリファイを行うステップを有する請求項６または７記載の半導体装置の制御方法。
【請求項９】
複数の第２の分割データに対し、前記第２の分割データを保持するステップおよび前記第２の分割データを書き込むステップを順次行い、
その後、前記ベリファイを行うステップを行い、
前記ベリファイを行うステップはベリファイデータを前記第１の記憶装置に保持するステップを含む請求項８記載の半導体装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置およびその制御方法に関し、特に１メモリセルに２ビットの電荷蓄積領域を有する半導体装置およびその制御方法に関する。
【背景技術】
【０００２】
近年、データの書換えが可能な半導体装置である不揮発性メモリが広く利用されている。代表的な不揮発性メモリであるフラッシュメモリにおいては、メモリセルを構成するトランジスタが電荷蓄積層と呼ばれるフローティングゲートまたは絶縁膜を有している。そして、電荷蓄積層に電荷を蓄積させることにより、データを記憶する。【０００３】
高記憶容量化のため窒化シリコン層からなるトラップ層に電荷を蓄積させるＳＯＮＯＳ（Silicon Oxide Nitride Oxide Silicon）型フラッシュメモリがある。さらに、その中に、１つのトランジスタの電荷蓄積層内に２つの電荷蓄積領域を有するフラッシュメモリが開発されている。例えば、特許文献１には、ゲート電極と半導体基板の間に２つの電荷蓄積領域を有するメモリセル（トランジスタ）が開示されている。このメモリセルはソースとドレインを入れ替えて対称的に動作させる仮想接地型メモリセルである。そして、１つのメモリセルに２ビットを記憶することができる。【０００４】
特許文献２には、仮想接地型フラッシュメモリにおいて、データの書き込み時間の短縮のため、１メモリセルに１ビットを記憶するモードが開示されている。このモードにおいては、メモリセル内の２つの電荷蓄積領域のうち、一方はデータの記憶に使用しない補助のビット（第１のビット）であり、他方はデータの記憶に使用するビット(第２のビット)である。このモードにおいては、メモリセルの第1のビットが書き込み状態であると、第２のビットの書き込みは非常に高速で行えるという特性を利用している。各ビットの書き込みは、ソースを接地し、ドレインとゲートに高電圧を印加してホットエレクトロン注入現象により行う。第１のビットと第２のビットの書き込みは、ソースとドレインを入れ替えて行う。【０００５】
一方、ＮＡＮＤ型フラッシュメモリは、ページ単位（例えば２ｋＢｙｔｅ）で書き込みと読み出しを一括で行う。そのため、１ページ分のデータを保持するラッチ回路を有しており、ラッチ回路からメモリセルアレイに１ページ分のデータを同時に書き込む。ＮＡＮＤ型フラッシュメモリは、フローティングゲートを電荷蓄積層とするメモリセルが一般的である。そして、メモリセルの書き込みは、フローティングゲート上のコントロールゲートと基板間に高電位を生成してＦＮトンネル現象により行う。【０００６】
【特許文献１】米国特許第６０１１７２５号明細書
【特許文献２】特開２００４−７９６０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
仮想接地型のフラッシュメモリにおいて、ＮＡＮＤ型のインターフェースを有するフラッシュメモリが検討されている。本来のＮＡＮＤ型フラッシュメモリはＦＮトンネル現象を用いるため一度に１ページ分の多数のデータを書き込むことができる。一方、仮想接地型のフラッシュメモリはホットエレクトロン現象を用いデータ書き込みを行うため、書き込みに必要な電流が大きく同時に書き込めるデータ数が少ない。このため、1ページ分のデータの書き込みを短時間で行うことが難しい。仮想接地型で１メモリセルに２ビットを記憶できるフラッシュメモリ（さらに、例えば、ＮＡＮＤ型インターフェースを有するフラッシュメモリ）を、１メモリセルに１ビットを記憶するモードで使用する場合のラッチ回路からメモリセルアレイへのデータの書き込みを短時間で行う方法については、具体的に開示されていない。【０００８】
本発明は、上記課題に鑑み、１メモリセルに２ビットを記憶できるフラッシュメモリにおいて、１メモリセルに１ビットを記憶するモードで使用する場合のデータの書き込み時間を短縮することが可能な半導体装置およびその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、電荷蓄積層内の異なる領域に、第１のビットおよび第２のビットを書き込む不揮発性メモリセルを複数配置したメモリセルアレイと、前記メモリセルアレイに書き込むためのデータを保持する第１の記憶装置と、前記データをもとに所定の単位に分割され前記第１のビットに書き込むための第１の分割データ、および前記データをもとに所定の単位に分割され前記第２のビットに書き込むための第２の分割データ、を保持する第２の記憶装置と、前記第１の分割データを前記メモリセルアレイに書き込みを行った後、前記第２の分割データを前記メモリセルアレイに書き込みを行う制御回路と、を具備する半導体装置である。本発明によれば、書き込むデータを第１の記憶装置に保持し、第１の記憶装置よりデータをロードし、メモリセルアレイの第１のビットに書き込みを行い、その後、同じデータを用いメモリセルアレイの第２のビットに書き込みを行うことにより、書き込み時間を短縮することができる。【００１０】
本発明は、前記制御回路は、複数の前記第１の分割データを順次前記第２の記憶装置に保持し前記メモリセルアレイに書き込みを行い、その後、複数の前記第２の分割データを順次前記第２の記憶装置に保持し前記メモリセルアレイに書き込みを行う半導体装置とすることができる。本発明によれば、より書き込み時間を短縮することができる。【００１１】
本発明は、前記第１の分割データ中の電荷を前記電荷蓄積層に書き込むデータの総数を所定の数と比較する計数回路を具備し、前記制御回路は、前記計数回路の比較結果に応じて、前記第１の分割データを反転処理する半導体装置とすることができる。本発明は、前記制御回路は、前記反転処理した第１の分割データを前記メモリセルアレイに書き込みを行う半導体装置とすることができる。本発明によれば、書き込み電流を消費する “０”を書き込むメモリセルの数を減らすことにより、同時に書き込み処理を行うビット数を多くすることができ、データの書き込み総時間を短縮することができる。【００１２】
本発明は、前記制御回路は、前記反転処理した第１の分割データを前記第１の記憶装置に再格納し、その後、前記反転処理した第１の分割データを前記第２の分割データとして前記第２の記憶装置に保持し、前記反転処理した第１の分割データを前記メモリセルアレイに書き込みを行う半導体装置とすることができる。本発明によれば、第２の分割データを再度反転する必要がなく反転の時間を短縮することができる。【００１３】
本発明は、前記第２のビットは使用ビットであり、前記第１のビットは補助ビットである半導体装置とすることができる。また、本発明は、前記制御回路は、前記第２のビットに対してのみベリファイを行う半導体装置とすることができる。本発明によれば、使用ビットのみベリファイをおこなうことにより、ベリファイの時間を短縮することができる。【００１４】
本発明は、前記メモリセルアレイは、仮想接地型メモリセルを有する半導体装置とすることができる。また、本発明は、前記メモリセルアレイはＳＯＮＯＳ型メモリセルを有する半導体装置とすることができる。本発明によれば、ＳＯＮＯＳ型の仮想接地型フラッシュメモリにおいても、書き込み時間を短縮することができる。【００１５】
本発明は、前記第１の記憶装置は、セルがアレイ状に配列したセルアレイである半導体装置とすることができる。例えば、分割するデータ数を列数とすることができ、簡単な回路構成で、データの分割を行うことができる。【００１６】
本発明は、電荷蓄積層内の異なる領域に、第１のビットおよび第２のビットを書き込む不揮発性メモリセルを複数配置したメモリセルアレイを有する半導体装置の制御方法において、前記メモリセルアレイに書き込むためのデータを第１の記憶装置に保持するステップと、第２の記憶装置に、前記データをもとに所定の単位に分割され前記第１のビットに書き込むための第１の分割データを保持するステップと、前記メモリセルアレイに前記第１の分割データを書き込むステップと、第２の記憶装置に、前記データをもとに所定の単位に分割され前記第２のビットに書き込むための第２の分割データを保持するステップと、前記第１の分割データを書き込むステップの後、前記メモリセルアレイに前記第２の分割データを書き込むステップと、を有する半導体装置の制御方法である。本発明によれば、書き込むデータを第１の記憶装置に保持し、第１の記憶装置よりデータをロードし、メモリセルアレイの第１のビットに書き込みを行い、その後、同じデータを用いメモリセルアレイの第２のビットに書き込みを行うことにより、書き込み時間を短縮することができる。【００１７】
本発明は、複数の前記第１の分割データに対し前記第１の分割データを保持するステップおよび前記第１の分割データを書き込むステップを順次行い、その後、複数の前記第２の分割データに対し前記第２の分割データを保持するステップおよび前記第２の分割データを書き込むステップを順次行う半導体装置の制御方法とすることができる。本発明によれば、より書き込み時間を短縮することができる。【００１８】
本発明は、前記第１の分割データ中の書き込みデータの総数を所定の数と比較するステップと、前記所定の数と比較するステップの比較結果に応じて、前記第１の分割データを反転するステップと、を有する半導体装置の制御方法とすることができる。【００１９】
本発明は、前記第１の分割データを書き込むステップは、第１の分割データを反転するステップで反転処理した第１の分割データを前記メモリセルアレイに書き込むステップである半導体装置の制御方法とすることができる。本発明によれば、書き込み電流を消費する“０”の書き込みセル数を減らすことにより、同時に書き込み処理を行うビット数を多くすることができ、データの書き込み総時間を短縮することができる。【００２０】
本発明は、前記反転処理した第１の分割データを前記第１の記憶装置に保持するステップを有し、前記第２の分割データを保持するステップは、前記第１の記憶装置に保持した前記反転処理した第１の分割データを、前記第２の分割データとして前記第２の記憶装置に保持するステップである半導体装置の制御方法とすることができる。本発明によれば、第２の分割データを再度反転する必要がなく反転の時間を短縮することができる。【００２１】
本発明は、前記第２のビットに対してのみベリファイを行うステップを有する半導体装置の制御方法とすることができる。本発明によれば、使用ビットのみベリファイをおこなうことにより、ベリファイの時間を短縮することができる。【００２２】
本発明は、複数の第２の分割データに対し、前記第２の分割データを保持するステップおよび前記第２の分割データを書き込むステップを順次行い、その後、前記ベリファイを行うステップを行い、前記ベリファイを行うステップはベリファイデータを前記第１の記憶装置に保持するステップを含む半導体装置の制御方法とすることができる。より書き込み時間を短縮することができる。
【発明の効果】
【００２３】
本発明によれば、１メモリセルに２ビットを記憶できるフラッシュメモリにおいて、１メモリセルに１ビットを記憶するモードで使用する場合のデータの書き込み時間を短縮することが可能な半導体装置およびその制御方法を提供することができる。
【図面の簡単な説明】
【００２４】
【図１】図１は実施例１に係るフラッシュメモリのメモリセルアレイおよびＳＲＡＭアレイ周辺のブロック図である。
【図２】図２は実施例１に係るフラッシュメモリのＳＲＡＭアレイ内のキャッシュラッチ回路とメインラッチ回路の回路図である。
【図３】図３は実施例１に係るフラッシュメモリのＷＲセンスアンプブロックの１ｂｉｔ分の回路のブロック図である。
【図４】図４は実施例１に係るフラッシュメモリのＷＲラッチ回路の回路図である。
【図５】図５は実施例１に係るフラッシュメモリ内のＳＲＡＭのＤＭビット線チャージブロックの回路図である。
【図６】図６は実施例１に係るフラッシュメモリ内のＳＲＡＭのＤＣビット線チャージブロックのキャッシュラッチ回路のセンスアンプ回路の回路図である。
【図７】図７は実施例１に係るフラッシュメモリのビットディテクタを示す図である。
【図８】図８は実施例１に係るフラッシュメモリの制御方法を示すフローチャートである。
【図９】図９（ａ）ないし図９（ｆ）は実施例１に係るフラシュメモリの書き込み時のメモリセルの状態を説明するための図である。
【発明を実施するための最良の形態】
【００２５】
以下、図面を用い本発明に係る実施例について説明する。
【実施例１】
【００２６】
実施例１は、ＮＡＮＤ型のインターフェースを有する仮想接地型のフラッシュメモリの例である。メモリセルは特許文献１に記載の不揮発性メモリセルである。すなわち、窒化シリコン膜を電荷蓄積層とするＳＯＮＯＳ型フラッシュメモリセルである。そして、電荷蓄積層内の異なる電荷蓄積領域に、第１のビットおよび第２のビットの２ビットを書き込むことができる。また、このメモリセルは一方のビット（第１のビット）に書き込みが行われていると、他方のビット（第２のビット）の書き込みは高速で行えるという特性を有している。そこで、他方のビット（第２のビット）のみを通常使用ビットとするモードとしても使用することができる。以下、メモリセルの電荷蓄積領域に電荷(電子)を蓄積した場合を“０”、蓄積していない状態を“１”と表す。【００２７】
また、外部との入出力はＮＡＮＤ型のインターフェースであり、データの書き込み、読み出しは１ページ単位で行う。実施例１では、１ページ分のデータは２ｋＢｙｔｅである。しかし、メモリセルアレイへの書き込み、読み出しを行う際は、１ページのデータを３２に分割した分割データ単位で行う。書き込みに必要な電流が大きく同時に書き込めるデータ数が少ないためである。実施例１では、分割データのサイズは５３６ｂｉｔ（このうち、レギュラーデータは５１２ｂｉｔ）である。なお、これらのデータサイズはこの長さに限られるものではない。【００２８】
図１は実施例１に係るフラッシュメモリのメモリセルアレイ２およびＳＲＡＭアレイ４０周辺のブロック図である。メモリセルアレイ２には、図中横方向に伸びる複数のワード線(図示せず)および縦方向に伸びる複数のビット線(図示せず)に沿ってメモリセルが複数配置されている。同じワード線に接続した領域が１ページ分のデータを記憶する領域に相当する。縦方向に複数のページ分の領域が配置されている。１ページ分の領域として、通常メモリ領域（Ｒｅｇｕｌａｒ）、リファレンスメモリ領域（Ｒｅｆ）、スペア領域（Ｓｐａｒｅ）、インディケータビット領域（ＩＢ：Ｉｎｄｉｃａｔｏｒ  Ｂｉｔ）を有している。通常メモリ領域は、フラッシュメモリに記憶するデータを記憶する領域であり、レギュラーデータを記憶する領域である。インディケータビット領域は、後述するように、データを反転して書き込んだか否かを示すフラグ（インディケータビット）を記憶する領域である。リファレンスメモリ領域はデータ読み出し時のレファレンスとして使用するセルを有する領域である。スペア領域はファイル管理データなどを格納するセルを有する領域である。【００２９】
Ｙ−ｓｅｌ＿Ｃｏｒｅ２０は、ビット線を介してメモリセルアレイ２に接続され、１ページ分のデータのうち分割データ（５３６ｂｉｔ）単位のメモリセルを選択する回路である。分割データ（５３６ｂｉｔ）単位を内部アクセスウインドウと呼ぶ。５３６ビットは、レギュラーデータとして５１２ビット、インディケータビット領域に４ビット、スペア領域に１６ビット、リファレンス領域に４ビットが割り当てられている。ＷＲセンスアンプブロック３０は、Ｙ−ｓｅｌ＿Ｃｏｒｅ２０とＤＡＴＡＢで接続され、ＳＲＡＭアレイ４０に保持されたデータを分割データ単位でメモリセルアレイ２に書き込み、または読み出しを行う回路である。【００３０】
ＳＲＡＭアレイ４０は、揮発性メモリセルアレイであり、ＷＲセンスアンプブロック３０に接続されるメインラッチ回路４２と、ＩＯ＿ＳＡ（１５：０）回路８０に接続されキャッシュラッチ回路４１とを有する。図中横方向に伸びる複数のワード線(ＷＬＣ，ＷＬＭ：図示せず)および縦方向に伸びる複数のビット線(ＤＣ，ＤＭ)に沿ってキャッシュラッチ回路４１とメインラッチ回路４２であるＳＲＡＭのセルがアレイ状に配置されている。ここで、ＷＬＣ、ＷＬＭは、それぞれキャッシュラッチ回路４１とメインラッチ回路４２のワード線であり、ＤＣ、ＤＭは、それぞれキャッシュラッチ回路４１とメインラッチ回路４２のビット線である。【００３１】
同じワード線に接続された(同じ行の)セルが内部アクセスウインドウに相当する。すなわち、１行に５３６ビット分のキャッシュラッチ回路４１とメインラッチ回路４２が配置される。図中縦方向に３２行分配置されている。これにより、ＳＲＡＭアレイ４０に１ページ分２ｋＢｙｔｅのキャッシュラッチ回路４１およびメインラッチ回路４２が配置される。ＳＲＡＭアレイ４０には、メモリセルアレイ２に対応して通常メモリ領域（Ｒｅｇｕｌａｒ）、リファレンスメモリ領域（Ｒｅｆ）、スペア領域（Ｓｐａｒｅ）、インディケータビット領域（ＩＢ）が設けられる。さらに、ＳＲＡＭアレイ４０は、ＤＭビット線チャージブロック５０およびＤＣビット線チャージブロック６０を有する。【００３２】
ＤＭビット線チャージブロック５０は、メインラッチ回路４２のセンスアンプ回路を有しており、ＤＭをプリチャージし、メインラッチ回路４２のデータを読み出す。また、ＷＲセンスアンプブロック３０とＳＲＡＭアレイ４０間のデータ転送を制御する回路である。ＷＲセンスアンプブロック３０は、メモリセルアレイ２の書き込み、読み出しデータを保持するＷＲラッチ回路３１、カスコードアンプ３２、ディファレンシャルセンスアンプ３３、ライトアンプ回路３４を有している（図４参照）。ＷＲセンスアンプブロック３０は、ＲＡＭＤＡＴによってＤＭビット線チャージブロック５０に接続され、Ｙ−ｓｅｌ＿ｃｏｒｅ２０を介してメモリセルアレイ２に接続する。【００３３】
ビットディテクタ９０は、ＲＡＭＤＡＴ上のデータ(分割データ)のうち、電荷をメモリセルの電荷蓄積層に書き込むデータ“０”のビット数を計数する回路であり、その結果をもとにＷＲセンスアンプブロック３０を制御する。ＤＣビット線チャージブロック６０は、キャッシュラッチ回路４１のセンスアンプ回路を有しており、ＤＣをプリチャージし、キャッシュラッチ回路４１のデータを読み出す。ＩＯ＿ＳＡ（１５：０）回路８０は、データ入出力回路である。すなわち、Ｙ−ｓｅｌ７２によって選択されたキャッシュラッチ回路４１からデータを読み出し外部Ｉ／Ｏ端子に出力データＤＯＣとして出力する。また、外部Ｉ／Ｏ端子からの入力データＤＩＣをＹ−ｓｅｌ７２により選択されたキャッシュラッチ回路４１に書き込む。Ｘ−ｄｅｃ７０とＹ−ｄｅｃ７１／Ｙ−ｓｅｌ７２はＳＲＡＭアレイ４０のデコーダであり、ＳＲＡＭアレイ４０へのデータの書き込み、読み出しの際、キャッシュラッチ回路４１およびメインラッチ回路４２を選択する。【００３４】
以上の構成により、外部からメモリセルアレイ２にデータを書き込む場合は以下のように行われる。なお、第１のビットおよび第２のビットに書き込む方法、ビットディテクタ９０がデータを反転する方法についてはここでは説明せず後に図８を用い説明する。１ページ分のデータは、ＩＯ＿ＳＡ（１５：０）回路８０を介し、Ｙ−ｓｅｌ７２に選択されたキャッシュラッチ回路４１に保持される。このとき外部からの入力データＤＩＣは入出力バス幅１６ｂｉｔ毎に入力される。キャッシュラッチ回路４１のデータをメインラッチ回路４２に転送する。その後、入力データは、内部アクセスウインドウ分のデータ(分割データ)５３６ｂｉｔ毎に、ＤＭビット線チャージブロック５０により読み出される。入力データは、ＷＲセンスアンプブロック３０のライトアンプを経由し、Ｙｓｅｌ＿ｃｏｒｅ２０で選択されたメモリセルに書き込まれる。これを３２回繰り返すことにより１ページ分の書き込みが完了する。【００３５】
一方、メモリセルアレイ２から外部にデータを読み出す場合は以下のように行われる。内部アクセスウインドウ分のデータ(分割データ)５３６ｂｉｔ毎に、Ｙｓｅｌ＿ｃｏｒｅ２０で選択されたメモリセルからＷＲセンスアンプブロック３０にデータが読み出される。このとき、後述するようにインディケータビットに対応し、データが反転される。データは、ＤＭビット線チャージブロック５０を介し、メインラッチ回路４２に保持される。これを３２回行い、１ページ分のデータはメインラッチ回路４２に保持される。その後、メインラッチ回路４２のデータはキャッシュラッチ回路４１に転送される。データはＹ−ｓｅｌ７２に選択されたキャッシュラッチ回路４１からＩＯ＿ＳＡ（１５：０）を介し外部に出力される。このとき出力データＤＯＣは入出力バス幅１６ｂｉｔ毎で出力される。【００３６】
次に、各回路の構成を説明する。図２は、ＳＲＡＭアレイ４０内の１ｂｉｔ分のキャッシュラッチ回路４１およびメインラッチ回路４２を示す回路図である。図２を参照に、キャッシュラッチ回路４１は、Ｎ−ＦＥＴ４１１および４１２、インバータ４１３および４１４を含む。メインラッチ回路４２は、Ｎ−ＦＥＴ４２１および４２２、インバータ４２３および４２４を含む。キャッシュラッチ回路４１とメインラッチ回路４２はそれぞれワード線ＷＬＣとＷＬＭにより選択される。１本のＷＬＣが選択されると内部アクセスウインドウ分のキャッシュラッチ回路４１が同時に選択される。１本のワード線ＷＬＭが選択されると内部アクセスウインドウ分のメインラッチ回路４２が同時に選択される。【００３７】
キャッシュラッチ回路４１とメインラッチ回路４２の間に、Ｎ−ＦＥＴである転送トランジスタ４３が接続している。ＴＲがハイレベルになると、転送トランジスタ４３はオンし、キャッシュラッチ回路４１とメインラッチ回路４２との間でデータが転送される。ＲＳＴＭとＲＳＴＣは、それぞれキャッシュラッチ回路４１とメインラッチ回路４２をリセットする信号である。【００３８】
図３は、ＷＲセンスアンプブロック３０内の１ｂｉｔ分のブロック図である。図３を参照に、ＷＲセンスアンプブロック３０は、ＷＲラッチ回路３１、カスコードアンプ３２およびディファレンシャルセンスアンプ３３を有する。ＷＲセンスアンプブロック３０は、内部アクセスウインドウ分、設けられる。そして、メモリセルアレイ２の１ページの内、Ｙ−ｓｅｌ＿ｃｏｒｅ２０で選択された内部アクセスウインドウ分のメモリセルに接続される。メモリセルアレイ２内のメモリセルは前述したＳＯＮＯＳ型であり仮想接地型のメモリセルである。メモリセルアレイ２は、ＤＡＴＡＢを介してカスコードアンプ３２に接続される。カスコードアンプ３２は、セル電流を電圧に変換する電流電圧変換回路である。そして、レギュラーデータのメモリセルの電流とレファレンスセル（レファレンスセルアレー内のセル）の電流を電圧に変換する。ディファレンシャルセンスアンプ３３は、レギュラーデータのメモリセルとレファレンスセルの電圧を比較し増幅するセンスアンプである。ＷＲラッチ回路３１は、ＲＡＭＤＡＴに接続され、メモリセルアレイ２のデータ読み込みの際、読み込んだデータを保持する。また、データ書き込みの際、書き込みデータを保持する。【００３９】
図４はＷＲラッチ回路３１を示す回路図である。ＷＲラッチ回路３１は内部アクセスウインドウ分（５３６ビット）設けられる。図４を参照に、ＷＲラッチ回路３１は、反転回路３１０および３２０、電気的に接続・分離するトランスファーゲート３３０および３３１、Ｎ−ＦＥＴ３３６ないし３４０、Ｐ−ＦＥＴ３３２ないし３３５、インバータ３４１を含む。反転回路３１０は、トランスファーゲート３１１、Ｐ−ＦＥＴ３１２およびＮ−ＦＥＴ３１３を含む。そして、メモリセルアレイ２からのデータの読み出し時、インディケータビットに応じて、読み出したデータを反転する回路である。データ読み出しの際、ディファレンシャルセンスアンプ３３の出力がＤＳＩｎ＿ｉｗに入力する。インディケータビットに応じ、ＩＮＤＳ＿ｗおよびＩＮＤＳＢ＿ｗが定まる。インディケータビットのデータが“０”で信号ＩＮＤＳがハイレベルにセットされた場合は、データを反転する。そして、反転または反転しなかったデータは、ＰＤＩＮ、ＰＤＩＮＢｎ＿ｉｗに保持され、ＷＴｗおよびＷＴＢｗがアクティブになると、ＲＡＭＤＡＴｎ＿ｉｗからＲＡＭＤＡＴに出力される。各Ｎ−ＦＥＴ３４０はプルアップされた共通の端子ＭＡＴＣＨ＿ｗに接続されてＷＩＲＥＤ−ＯＲ回路を構成する。【００４０】
反転回路３２０は、トランスファーゲート３２１、Ｐ−ＦＥＴ３２２およびＮ−ＦＥＴ３２３を含む。そして、メモリセルアレイ２への書き込みの際、メインラッチ回路４２に保持されたデータを、インディケータビットに応じ反転する回路である。書き込みデータが端子ＲＡＭＤＡＴｎ＿ｉｗから入力され、インディケータビットに応じＩＮＤＣ＿ｗ、ＩＮＤＣＢ＿ｗが定まる。インディケータビットのデータが“０”で信号ＩＮＤＣがハイレベルにセットされた場合は、データを反転する。そして、反転または反転しなかったデータは、ＰＤＩＮ、ＰＤＩＮＢｎ＿ｉｗに保持され、ライトアンプ回路３４に出力される。また、ＷＴｗおよびＷＴＢｗがアクティブになると、ＲＡＭＤＡＴｎ＿ｉｗからＲＡＭＤＡＴに出力される。【００４１】
ベリファイの際は、まず、ＳＲＡＭアレイ４０からベリファイ対象の書き込みデータをＷＲラッチ回路３１内のノードＰＤＩＮに保持する。このとき、ＰＤＩＮは”０”であればローレベル、“１”であればハイレベルに保持される。次に、ベリファイ対象のメモリセルに対しセンス動作を行いディファレンシャルセンスアンプ３３からセンスデータ（ベリファイデータ）がＤＳＩｎ＿ｉｗに出力され、各ＰＤＩＮにベリファイデータが保持される。このとき、メモリセルに書き込みが正常に行われているとベリファイデータはハイレベルであり、書き込み時にローレベルに保持されていたＰＤＩＮのデータはハイレベルに反転する。これは、対応するメモリセルには追加で書き込む必要がなく、非書き込み対象とされることを意味する。書き込み対象のすべてのメモリセルのデータが“０”に正常に書き込まれると、すべてのＰＤＩＮはハイレベルに反転してＭＡＴＣＨ＿ｗ（マッチ信号）はハイレベルとなる。これは、当該内部アクセスウインドウ分のベリファイはパスしたことを示す。マッチ信号は図示しないラッチ回路に内部アクセスウインドウ単位で保持される。また、ＰＤＩＮに保持されたベリファイデータは元のＳＲＡＭアレイ４０に再格納(保持)される（戻される）。このようにして内部アクセスウインドウ単位のベリファイ動作を1ページ分繰り返し、不図示のラッチ回路に保持されている各マッチ信号がすべてベリファイパスを示すと、追加書き込み動作には移らずにベリファイ動作を終了する。【００４２】
図５は、ＤＭビット線チャージブロック５０の回路図である。図５を参照に、ＤＢビット線チャージブロック５０は、Ｎ−ＦＥＴ５０１ないし５０６、Ｐ−ＦＥＴ５０７ないし５１２、インバータ５１３および５１４を含む。そして、ＤＭビット線チャージブロック５０は、ディファレンシャルセンスアンプ３３が出力したデータのＳＲＡＭアレイ４０への出力、ＳＲＡＭアレイ４０のデータのライトアンプ回路３４への出力を制御する機能を有する。また、ディファレンシャルセンスアンプ３３が出力したデータの増幅機能、メインラッチ回路４２のプリチャージ、センスアンプ機能を有する。【００４３】
メモリセルアレイ２からのデータ読み出しの際、ＤＭビット線チャージブロック５０は、ＲＤＭＢによりビット線ＤＭ（図中ＤＭｉｎｗ、ＤＭＢｉｎｗ）をプリチャージする。ＷＴＰをハイレベルにして、ディファレンシャルセンスアンプ３３が出力したデータをＲＡＭＤＡＴからメインラッチ回路４２に保持させる。メモリセルアレイ２へのデータ書き込みの際、ＳＲＡＭアレイ４０のメインラッチ回路４２に保持されている書き込みデータを内部アクセスウインドウ単位毎にＲＡＭＤＡＴに出力する。なお、ＮＲＳＴＮおよびＰＲＳＴＭは、ＳＲＡＭアレイ４０内のデータをリセットするための信号である。【００４４】
図６はＤＣビット線チャージブロック６０のキャッシュラッチ回路４１のセンスアンプ回路６１の回路図である。図６を参照に、ＤＣビット線チャージブロック６０のセンスアンプ回路６１は、Ｎ−ＦＥＴ６０１および６０２、Ｐ−ＦＥＴ６０３ないし６０６を含む。ＲＤＣＲＢによりビット線ＤＣ（図中ＤＣｉｎｗ、ＤＣＢｉｎｗ）をプリチャージする。データの読み出しの際、ＤＣビット線チャージブロック６０は、キャッシュラッチ回路４１のデータを増幅し、Ｙ−ｓｅｌ７２を介して外部に出力する。データの書き込みの際、外部からＹ−ｓｅｌ７２を介して入力される書き込みデータを増幅し、キャッシュラッチ回路４１に出力する。なお、ＮＲＳＴＣおよびＰＲＳＴＣは、ＳＲＡＭアレイ４０内のデータをリセットするための信号である。【００４５】
図７はビットディテクタ９０を示す図である。図７を参照に、ビットディテクタ９０は、ＭＵＸ９１、書き込みウインドウのデータのうち電荷蓄積層に電荷を書き込むデータ“０”を計数する加算器９２、加算器９２が検出したビット数を所定のビット数と比較する比較部９３および比較部９３の比較結果に応じて、データを反転するかどうかを示すフラグを出力する出力部９４を有する。このとき、フラグが立ったらインディケータビットは書き込まれて“０”に設定される。【００４６】
メモリセルアレイ２へのデータ書き込みは、書き込み時の消費電流を削減するため、内部アクセスウインドウを分割した書き込みウインドウ単位で行うことが好ましい。以下、内部アクセスウインドウ５３６ビットを４分割した場合を例に説明する。この場合、レギュラーデータとして１２８ｂｉｔ、インディケータビットとして１ビット、スペアデータとして４ビット、リファレンスデータとして１ビットの計１３４ビットが一つの書き込みウインドウとなる。なお、この分割は４分割に限られるものではなく、書き込み時の消費電流と書き込み時間を考慮し決められる。【００４７】
メモリセルアレイ２にデータを書き込む際は、書き込みウインドウ分のレギュラーデータのうち“０”の数が６４ｂｉｔより多い場合、レギュラーデータ１２８ｂｉｔを反転する。例えば、ＲＡＭＤＡＴ上の書き込みウインドウ分のレギュラーデータ１２８ｂｉｔのうち “０”が７０ｂｉｔ分あるとする。この場合、“０”の数を加算器９２が計数し、比較部９３において６４ｂｉｔより多いかを比較する。この例では６４ｂｉｔより多いため、比較部９３の出力ＩＮＤＣはハイレベル、ＩＮＤＣＢはローレベルとなる。ＲＡＭＤＡＴ上の７０個のデータ“０”は図４のＷＲラッチ回路３１内の反転回路３２０において反転されてノードＰＤＩＮにハイレベル（ＰＤＩＮＢｎ＿ｉｗはローレベル）が保持される。これにより、これらのビットはメモリセル内の電荷蓄積層に電荷が書き込まれないこととなる。【００４８】
一方、残りの５８個のデータ“１”は同様にＷＲラッチ回路３１においてデータ反転され、ＰＤＩＮにはローレベル（ＰＤＩＮＢｎ＿ｉｗはハイレベル）が保持される。これらのビットはメモリセル内の電荷蓄積層に電荷を書き込むこととなる。また、インディケータビット用のＷＲラッチ回路３１内のＰＤＩＮにはローレベル（ＰＤＩＮＢｎ＿ｉｗはハイレベル）が保持される。この結果、ＷＲラッチ回路３１には６４ｂｉｔ＝５８ｂｉｔ（レギュラーデータ）＋１ｂｉｔ（インディケータビット）＋４ｂｉｔ（スペアデータ）＋１ビット（リファレンスデータ）分のＰＤＩＮにローレベル（ＰＤＩＮＰｎ＿ｉｗはハイレベル）が保持される。仮に、上記反転処理を行わなかった場合、メモリセルの電荷蓄積層に電荷を書き込む“０”のビット数は、７５ｂｉｔ＝７０ｂｉｔ＋０ｂｉｔ＋４ｂｉｔ＋１ｂｉｔとなる。このように、データの反転処理を行うことにより、データ書き込みの際、書き込みを行う“０”のビット数を減らし、の書き込み時間、書き込み電流が削減できる。なお、実施例１ではデータを反転処理するかの判定基準を、書き込みウインドウのレギュラセルの半分６４ｂｉｔとしたが、データ書き込みの際の書き込み時間、書き込み電流を考慮して決めればよい。【００４９】
メモリセルアレイ２からデータを読み出す際は、１ページ分のデータのうち、まず、内部アクセスウインドウ単位のデータが読み出され、ＷＲセンスアンプブロック３０に出力される。このとき、インディケータビットも読み出される。インディケータビットの読み出し信号ＤＳＩ_ＩＢがハイレベル、つまり、反転データを書き込んでいることを示す場合、レギュラーデータのビットのＷＲラッチ回路３１のＩＮＤＳ＿ｗがハイレベル、ＩＮＤＳＢ＿ｗがローレベルに保持される。そして、ＷＲラッチ回路３１の反転回路３１０は、読み出したデータを反転して、元のデータ（外部から入力された書き込みデータ）に戻してＲＡＭＤＡＴに出力する。ＤＳＩ＿ＩＢがローレベルの場合、ＩＮＤＳ＿ｗがローレベルとなり、反転回路３１０は、読み出したデータを反転せずにＲＡＭＤＡＴに出力する。これを、４分割した書き込みウインドウ毎に順に行って、一つの内部アクセスウインドウに対応する反転または非反転のすべてのデータがＲＡＭＤＡＴに出力される。【００５０】
次に、メモリセルアレイ２内のメモリセルの一方のビット（第２のビット）のみにユーザデータを記憶する書き込みモードについて、図８および図９（ａ）ないし図９（ｆ）を用い説明する。図８は書き込み動作のフローチャートであり、図９（ａ）ないし図９（ｆ）はメモリセルアレイ２のメモリセルを模式的に表した図である。図９（ａ）ないし図９（ｆ）においては、同一ワード線１００上（同一ページ分）のメモリセル１０１のうち８個分のみを記載した。各メモリセルの左側が第１のビット（ユーザから入力されるデータの記憶に使用されない補助ビット）、右側が第２のビット（ユーザから入力されるデータの記憶に使用されるビット）である。【００５１】
図９（ａ）を参照に、メモリセルアレイ２内のデータ消去を行い、メモリセルの全てのビットが“１”となっている。ユーザから書き込みコマンドが入力されると、１ページ分（２ｋＢｙｔｅ）の書き込みデータはＳＲＡＭアレイ４０にロードされる（ステップＳ１０）。すなわち、ＳＲＡＭアレイ４０(第１の記憶装置)のメインラッチ回路４２に保持される。【００５２】
次に、ステップＳ１２ないしＳ２４において、第１ビットへの書き込みを行う。１ページ分のデータをＳＲＡＭアレイ４０の列数に相当する内部アクセスウインドウ分のデータに分割する。分割された分割データ（第１の分割データ：レギュラーデータは５１２ｂｉｔ）をＲＡＭＤＡＴに出力する（ステップＳ１２）。このとき、ビットディテクタ９０が、内部アクセスウインドウ分のデータ（第１の分割データ）を４分割した書き込みウインドウ分のレギュラーデータのうち電荷を電荷蓄積層に書き込むデータ“０”のビット数をカウントする（ステップＳ１４）。“０”のビット数が６４より大きければ、インディケータビットデータ（信号ＩＮＤＣ）はハイレベルとなり、小さければローレベルとなる（ステップＳ１６）。信号ＩＮＤＣがハイレベルの場合、ＲＡＭＤＡＴ上のデータは反転されてＷＲラッチ回路３１にロードされる。信号ＩＮＤＣがローレベルの場合、ＲＡＭＤＡＴ上のデータは反転されずＷＲラッチ回路３１にロードされる（ステップＳ１８）。【００５３】
反転または非反転した第１の分割データおよびインディケータビットのデータをＲＡＭＤＡＴおよびＤＭビット線チャージブロック５０を経由し、元のＳＲＡＭアレイ４０に格納する（ステップＳ２０）。なお、非反転の場合は、ステップＳ２０は行わなくても良い。反転または非反転した分割データおよびインディケータビットを、ライトアンプ回路３４を経由し、メモリセルアレイ２内のメモリセルの第１のビットに書き込む（ステップＳ２２）。図９（ｂ）を参照に、各メモリセルの左側のビットに書き込みを行う。この例では、左から１、３、７番目のメモリセルの第１のビットにデータの書き込みを行った。１ページ分の最後の第１の分割データかを判定する（ステップＳ２４）。最後の分割データでなければ、ステップＳ１２に戻り、次の分割データについて、同様の処理を行う。最後の分割データであれば、ステップＳ２６に進む。【００５４】
次に、ステップＳ２６ないしＳ３０において、第２ビットへの書き込みを行う。ＳＲＡＭアレイ４０から分割データ(第２の分割データ)をＷＲセンスアンプブロック３０に保持する（ステップＳ２６）。このとき、ビットディテクタ９０による動作は行わず、この第２の分割データはステップ２０において第１の分割データの反転または非反転処理されたデータと同一となっている。分割データおよびインディケータビットのデータをメモリセルアレイ２内のメモリセルの第２ビットに書き込む（ステップＳ２８）。図９（ｃ）を参照に、左から１、３、７番目のセルの右側のビットに書き込み（プログラム）を行う。１ページ分の最後の分割データかを判定する（ステップＳ３０）。最後の分割データでなければ、ステップＳ２６に戻り、次の分割データについて、同様の処理を行う。最後の分割データであれば、ステップＳ３２に進む。【００５５】
ステップＳ３２ないしＳ３８において、第２ビットのベリファイを行う。ＳＲＡＭアレイ４０から分割データをＷＲラッチ回路３１にロードする（ステップＳ３２）。そして、メモリセルアレイ２から読み出されたセンスデータをＷＲラッチ回路３１のノードＰＤＩＮに保持する。図４を用い説明したように、メモリセルにデータが正常に書き込まれていればＰＤＩＮに保持されているデータは反転し、そうでなければＰＤＩＮに保持されているデータは不変とされる（ステップＳ３４）。このようにＰＤＩＮに保持されたベリファイデータをＳＲＡＭに再格納する（ステップＳ３６）。次に、最後の分割データかを判定する（ステップＳ３８）。最後の分割データでなければステップＳ３２に戻り、次の分割データについて同様の処理を行う。最後の分割データであれば、各分割データ毎のマッチ信号（分割データ毎のベリファイがパスしたかを示す信号）がすべてパスを示しているかを判定する（ステップＳ４０）。Ｙｅｓであれば書き込み動作は終了する。ＮｏであればステップＳ２６に戻って追加書き込み動作を行う。【００５６】
図９（ｄ）を参照に、左から１番目のメモリセルの右側のビット(第２のビット)がフェイルし“１”になっている。ステップＳ４０において、ベリファイがパスしたか判定する。Ｎｏの場合、ステップＳ２６ないしＳ３０において、フェイルビットの書き込みを行う。図９（ｅ）を参照に、左から１番目のメモリセルの右側のビットに書き込み（プログラム）を行う。再度ベリファイを行う（ステップＳ３２ないしＳ３８）。ステップＳ４０でＹｅｓであれば、書き込みを終了する。図９（ｆ）を参照に、左から１、３、７番目のメモリセルの第１のビットおよび第２のビットに“０”が書き込まれている。このように、ユーザが書き込みコマンドを入力すると、第１および第２のビットが消去状態となっているメモリセルアレイ２に対し、書き込み対象とされたメモリセルの第１のビット（補助ビット）に書き込みパルスを印加した後、第２のビットに書き込み動作を行うため、書き込み終了後のメモリセルアレイ２のデータパターンは“１１”または“００”となる。一方、データを読み出す際は、第２のビットのみが読み出せれば良く、図１を用い説明した方法で行われる。【００５７】
実施例１は、メモリセルアレイ２に書き込むためのデータ（２ｋＢｙｔｅ）を保持するＳＲＡＭアレイ４０（第１の記憶装置）を有している。また、メモリセルアレイ２に書き込むためのデータをもとに所定の単位（５３６ｂｉｔ）に分割され第１のビットに書き込むための第１の分割データおよび第２のビットに書き込むための第２の分割データ、を保持するＷＲセンスアンプブロック３０（第２の記憶装置）を有している。そして、ＷＲセンスアンプブロック３０（制御回路）は、第１の分割データをメモリセルアレイ２に書き込みを行った後、第２の分割データをメモリセルアレイ２に書き込みを行っている。【００５８】
また、１ページ分（２ｋＢｙｔｅ）のメモリセルアレイ２に書き込むためのデータをＳＲＡＭアレイ４０に保持する（ステップＳ１０）。このデータをもとに所定の単位（レギュラーデータで５１２ｂｉｔ）に分割され第１のビットに書き込むための分割データ(第１の分割データ)をＷＲセンスアンプブロック３０に保持する（ステップＳ１２）。分割データをメモリセルアレイ２に書き込む（ステップＳ２２）。ＳＲＡＭアレイ４０に保持されたデータをもとに所定の単位（レギュラーデータで５１２ｂｉｔ）に分割され第２のビットに書き込むための分割データ(第２の分割データ)をＷＲセンスアンプブロック３０に保持する（ステップＳ２６）。その後、この分割データをメモリセルアレイ２に書き込んでいる（ステップＳ２８）。【００５９】
これにより、書き込むデータをＳＲＡＭアレイ４０に保持し、ＳＲＡＭアレイ４０よりデータをロードし、メモリセルアレイの第１のビットに書き込みを行い、その後、同じデータを用いメモリセルアレイの第２のビットに書き込みを行うことにより、書き込み時間を短縮することができる。またこのとき、第１のビットに書き込みを行った後、第２のビットに書き込みを行うため、第２のビットの書き込み速度を向上させることができる。【００６０】
また、ステップＳ１２ないしＳ２４およびステップＳ２６ないしＳ４０のように、ＷＲセンスアンプブロック３０（制御回路）は、複数の第１の分割データまたは第２の分割データを順次、ＷＲセンスアンプブロック３０に保持しメモリセルアレイ２に書き込みを行っている。これにより、より書き込み時間を短縮することができる。【００６１】
さらに、ステップＳ１２ないしＳ２４のように、ＷＲセンスアンプブロック３０（制御回路）は、複数の第１の分割データを順次、ＷＲセンスアンプブロック３０(第２の記憶装置)に保持しメモリセルアレイ２に書き込みを行い、その後、ステップＳ２６ないしＳ３４のように、複数の第２の分割データを順次、ＷＲセンスアンプブロック３０(第２の記憶装置)に保持しメモリセルアレイ２に書き込みを行う。これにより、より書き込み時間を短縮することができる。【００６２】
さらに、第１の分割データ中の電荷を電荷蓄積層に書き込むデータ“０”の総数を所定の数と比較するビットディテクタ９０（計数回路）を有している。そして、ＷＲセンスアンプブロック３０（制御回路）は、ビットディテクタ９０の比較結果に応じて、第１の分割データを反転または非反転処理する（ステップＳ１８）。そして、反転または非反転処理した第１の分割データをメモリセルアレイ２に書き込む（ステップＳ２２）。書き込み電流を消費する“０”の書き込み数を減らすことにより、同時に書き込み処理を行うビット数を多くすることができ、書き込み総時間を短縮することができる。【００６３】
さらに、ＷＲセンスアンプブロック３０（制御回路）は、反転または非反転処理した第１の分割データをＳＲＡＭアレイ４０(第１の記憶装置)に再格納し（ステップＳ２０）、ＳＲＡＭアレイ４０は反転または非反転処理した第１の分割データを保持する。そして、反転または非反転処理した第１の分割データは、第２の分割データとしてＳＲＡＭアレイ４０から再度ＷＲセンスアンプブロック３０(第２の記憶装置)に保持され、メモリセルアレイ２に書き込まれる。これにより、第２の分割データを再度反転する必要がなく反転の時間を短縮することができる。【００６４】
さらに、第２のビットは使用ビットであり、第１のビットは補助ビットである。使用ビットである第２のビットに対してのみベリファイおよび追加書き込みを行う（ステップＳ２８、Ｓ３４）。これにより、ベリファイの時間を短縮することができる。【００６５】
さらに、複数の第２の分割データに対し、順次、第２の分割データをＷＲセンスアンプブロック３０に保持し（ステップＳ２６）、第２の分割データをメモリセルアレイ２に書き込む（ステップＳ２８）。その後、複数の第２の分割データが書き込まれたメモリセルに対しベリファイを行う（ステップＳ３２ないしＳ３８）。このとき、ベリファイデータをＳＲＡＭアレイ４０（第１の記憶装置）に保持する（ステップＳ３６）。このように、1ページに対し連続的に書き込みを行い、続いてベリファイを連続的に分けて行う。よって、書き込みおよびベリファイそれぞれで必要な電圧設定を効率良く行うことができ、より書き込み時間を短縮することができる。【００６６】
メモリセルアレイ２は、仮想接地型メモリセルアレイであり、ＳＯＮＯＳ型メモリセルを有する。このように、仮想接地型のＳＯＮＯＳフラッシュメモリにおいても、書き込み時間を短縮することができる。【００６７】
ＳＲＡＭアレイ４０は、セルがアレイ状に配列したセルアレイである。これにより、例えば、分割するデータ数を列数とすることができ、簡単な回路構成で、データの分割を行うことができる。【００６８】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である
【図１】
0004804462.tif 000002
【図２】
0004804462.tif 000003
【図３】
0004804462.tif 000004
【図４】
0004804462.tif 000005
【図５】
0004804462.tif 000006
【図６】
0004804462.tif 000007
【図７】
0004804462.tif 000008
【図８】
0004804462.tif 000009
【図９】
0004804462.tif 000010