(57)【要約】【課題】ＷＳＭ回路を簡略化し、データ書き込み動作の高速化を実現する【解決手段】データ書き換え制御手段であるＷＳＭ回路１３０が第１制御信号である制御信号ＷＲＴにより、データレジスタ手段であるデータレジスタ回路１９０に第１書き込み信号である書き込みパルスデータＰＲＧの格納を指示し、データ書き換え制御手段であるＷＳＭ回路１３０から出力される第２制御信号である制御信号ＣＬＫのタイミングに基づいて、アドレス信号ＡＤＤによって指定されるデータレジスタ手段であるデータレジスタ回路１９０に設けられた所定のレジスタに第１書き込み信号である書き込みパルスデータＰＲＧを格納する。【選択図】　図１
2004022061.tif 000002
【特許請求の範囲】
【請求項１】
記憶するデータ量が１ビット以上である複数のメモリセルが設けられているメモリアレイを有する半導体記憶装置において、
該複数のメモリセルのデータ書き換え動作を制御するデータ書き換え制御手段と、
該メモリアレイにてデータ読み出しの対象のメモリセルを選択するアドレス信号を生成するアドレス生成手段と、
該メモリセルに格納されたデータを読み出すデータ読み出し手段と、
該メモリセルに書き込むデータを一時的に格納するページバッファ手段と、
各メモリセルに対するデータ書き換えを実施するか否かを判断するデータ書き換え論理手段と、
該データ書き換え論理手段から出力されるの第１書き込み信号を格納するデータレジスタ手段と、
該データレジスタ手段から出力される第２書き込み信号に基づいて、該メモリアレイにてデータ書き込みの対象のメモリセルに選択的にデータ書き込みを実行するデータ書き込み手段と、
具備し、
該データ書き換え制御手段は、第１制御信号により、該データレジスタ手段に該第１書き込み信号の格納を指示し、該データレジスタ手段は、該データ書き換え制御手段から出力される第２制御信号のタイミングに基づいて、該アドレス信号によって指定される該データレジスタ手段に設けられた所定のレジスタに該第１書き込み信号を格納することを特徴とする半導体記憶装置。
【請求項２】
前記データレジスタ手段は、格納された前記第１書き込み信号の内容を固定し、前記メモリセルのデータ書き換え動作をセットしない機能が設けられている請求項１に記載の半導体記憶装置。
【請求項３】
前記データ読み出し手段は、複数のアドレスに割り当てられた記憶内容を同時に読み出すページモード読み出し機能が設けられている請求項１記載の半導体記憶装置。
【請求項４】
記憶するデータ量が１ビット以上である複数のメモリセルが設けられているメモリセルを有する半導体記憶装置において、
該複数のメモリセルのデータ書き換え動作を制御するデータ書き換え制御手段と、
該メモリアレイにてデータ読み出しの対象のメモリセルを選択するアドレス信号を生成するアドレス生成手段と、
該メモリセルに格納されたデータを読み出すデータ読み出し手段と、
該メモリセルへの書き込みデータを一時的に格納するページバッファ手段と、
各メモリセルに対するデータ書き換えを実施するか否かを判断するデータ書き換え論理手段と、
具備し、
該ページバッファ手段は、該データ書き換え制御手段により、格納している該書き込みデータを更新するフィードバックが指示されると、該アドレス信号によって指定される該書き込みデータを、該データ書き換え論理手段にて生成されたフィードバックデータに変換する機能を有することを特徴とする半導体記憶装置。
【請求項５】
前記書き込みデータは、前記フィードバックによって、前記メモリセルへのデータ書き込みが実施されないデータに変換される請求項４に記載の半導体記憶装置。
【請求項６】
前記データ読み出し手段は、複数のアドレスに割り当てられた記憶内容を同時に読み出すページモード読み出し機能が設けられている請求項４記載の半導体記憶装置。
【請求項７】
前記書き込みデータは、前記フィードバックによって、前記前記メモリセルにデータ書き込みが実施される前に、前記メモリセルに格納されたデータに変換される請求項４に記載の半導体記憶装置。
【請求項８】
アドレス生成手段にてデータ書き込みのアドレスをページアドレスの先頭に設定する工程と、
データ書き換え制御手段により、メモリアレイをデータ読み出し状態に設定する工程と、
データ読み出し手段により、該メモリアレイのデータ読み出しを実行する工程と、
データ書き込みを行うページ数に含まれるアドレスの数だけ、データの読み出しと、該アドレスの更新とを実行する工程と、
該データ書き換え制御手段により、該メモリアレイをデータ書き込み状態に設定する工程と、
データ書き込み手段により、該メモリアレイのデータ書き込みを実行する工程と、
を包含するデータ書き込み制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のメモリセルが設けられた半導体記憶装置および半導体記装置へのデータ書き込み制御方法に関する。
【０００２】
【従来の技術】
記憶するデータ量が１ビット以上である複数のメモリセルが設けられている多値フラッシュメモリ等の半導体記憶装置では、メモリセルに格納されたデータと、格納されたデータの内容を示すメモリセルの閾値電圧とが各メモリセルにおいて異なるため、それぞれのメモリセルに対してデータを書き込む場合、および、それぞれのメモリセルからデータを読み出す場合に何らかのデータ変換処理が必要になる。
【０００３】
通常、多値フラッシュメモリは、各メモリセルに対する設定可能な閾値電圧が３状態以上あり、それぞれの閾値電圧に対してデータの書込みまたはデータの読み出しを行うために、閾値電圧が１状態の二値メモリにおけるデータの書込みまたはデータの読み出しと比較すると複雑な制御が要求される。
【０００４】
以下、マトリクス状に複数のメモリセルが設けられた多値フラッシュメモリである半導体記憶装置のデータ書き込み動作を説明する。
【０００５】
まず、従来の多値フラッシュメモリの多値データの格納方法を、二値フラッシュメモリのデータの格納方法と比較しながら説明する。
【０００６】
不揮発性半導体メモリである多値フラッシュメモリは、通常、各メモリセルがＭＯＳＦＥＴによって形成されており、それぞれのＭＯＳＦＥＴのフローティングゲート内に蓄積された電荷量によって、それぞれメモリセルの閾値電圧が異なる現象をデータの格納に利用する。
【０００７】
図１０は、一般的な二値フラッシュメモリ内に設けられたメモリセルの閾値電圧の分布を示すグラフである。図１０の横軸はメモリセルの閾値電圧、縦軸はメモリセルの個数をそれぞれ表している。尚、横軸の中央の基準閾値電圧は、データ読出し時のデータ読出し電圧を表している。
【０００８】
代表的な二値フラッシュメモリであるＮＯＲ型フラッシュメモリは、通常、メモリセルのフローティングゲートから電荷が引き抜かれている状態がデータ消去状態であり、その時のデータを「１」とする。メモリセルのフローティングゲートに負の電荷（電子）が注入された状態がデータ書き込み状態で、その時のデータを「０」とする。
【０００９】
これにより、図１０の基準閾値電圧より低い領域は、データ消去状態のメモリセルの分布を示し、基準閾値電圧より高い領域は、データ書込み状態のメモリセルの分布を示す。
【００１０】
データ消去状態のメモリセルは、閾値電圧が低くなり、データ書き込み状態のメモリセルは、閾値電圧が高くなる。このため、メモリセルのコントロールゲートに印加される電圧が同じであれば、データ消去状態のメモリセルには、データ書き込み状態のメモリセルより大きな電流が流れる。このように、データ消去状態のメモリセルおよびデータ書き込み状態のメモリセルのそれぞれの電流値が異なることを利用して、メモリセル内のデータの状態（データの有無等）を確認することがデータ読み出し動作である。尚、後述するデータのベリファイ（検証）動作も基本的にはデータ読み出し動作と同じである。
【００１１】
データ読み出しは、予め上記の基準閾値電圧が設定されているリファレンスセルに流れる電流と、データ読み出しが行われるメモリセルを流れる電流とを検出し、これらの電流値を比較することによって行われる。
【００１２】
このような電流値の比較は、メモリセルおよびリファレンスセルのドレインに接続されているビット線を流れる電流をセンス回路（Ｓｅｎｓｅ　Ａｍｐｌｉｆｉｅｒ）にて検出して、メモリセル内のデータを判定している。
【００１３】
図１１は、一般的な多値フラッシュメモリ内に設けられたメモリセルの閾値電圧の分布の一例を示すグラフである。ここで、図１１は、説明を簡略にするため、１つのメモリセルのデータ量が２ビットである四値フラッシュメモリの場合のグラフである。図１１の横軸はメモリセルの閾値電圧、縦軸はメモリセルの個数をそれぞれ表している。尚、横軸の基準閾値電圧１、２および３は、データ読出し時のデータ読出し電圧を表している。
【００１４】
四値フラッシュメモリ内の各メモリセルは、それぞれのメモリセルがデータ消去状態および３種類のデータ書込み状態の４つの状態を選択的に取り得る。メモリセル内の閾値電圧の最も低い状態がデータ消去状態であり、データ消去状態以外のデータ書き込み状態が２つの異なる閾値電圧によって３段階に分けられる。メモリセルが上記の４つの状態を選択的に取り得る場合、メモリセル内のデータ格納状態を確認するデータ読み出し動作では、図１１に示すように、データ読み出しのための３つの基準となる基準閾値電圧１、２および３が設定されている。
【００１５】
図１１に示すメモリセルでは、１つのメモリセルに２ビットのデータを格納する場合、閾値電圧が低い順にデータを「１１」、「１０」、「０１」、「００」と定義し、データ「１１」がデータ消去状態である。また、データが「１０」、「０１」および「００」となるデータ書き込み状態では、いずれの場合もメモリセルの閾値電圧の分布のバラツキが小さくなるように設定されている。
【００１６】
ところで、図１１に示す四値フラッシュメモリ等の多値フラッシュメモリのメモリセルへのデータ書込み制御おいて以下のような問題点がある。
【００１７】
第１に、メモリセルへのデータ書き込み時に、各データに対応するメモリセルの閾値電圧の分布を比較的狭い範囲（分布のバラツキを小さくする）に抑える。
【００１８】
第２に、メモリセルからデータを読み出す場合の各データに対応する閾値電圧の範囲は、データ書込み時の閾値電圧の範囲より広くなり、各データに対応する下限および上限の基準閾値電圧に対するマージンが小さくなる。
【００１９】
第３に、３つの基準閾値電圧が設けられたメモリセルからデータ読み出し動作を効率的に実行しなければならない。
【００２０】
図１２は、四値フラッシュメモリに対するデータ書き込みアルゴリズムの一例である。図１２に示すデータ書き込みアルゴリズムでは、データ書き込みをＳｔｅｐ１〜３の３段階に分けて実行している。
【００２１】
Ｓｔｅｐ１〜３のいずれの段階でも、メモリセルに対するデータ書き込みの最終的な目標となるデータと、現在のメモリセルのデータ格納状態とを確認し、該当するメモリセルに対するデータ書込み操作を実行するか否かを決定する。また、メモリセルへのデータ書き込み時には、データ書き込み後のデータの経年劣化およびデータ読み出し動作に対するマージンを確保するために、データ読み出し時に使用される基準閾値電圧よりもさらに厳しい閾値電圧が設定される。この閾値電圧は、ベリファイ（検証）動作でも使用される。
【００２２】
ここで、図１２に示すＳｔｅｐ１〜３において、データ書込み動作（Ｐｒｏｇｒａｍ）は、所定のデータ書込みパルスをメモリセルのコントロールゲートとドレインとに印加し、その後、ベリファイ（検証）動作（基準閾値電圧を変更するがデータ読出し動作と同じ動作）を行い、メモリセルの閾値電圧が所望の電圧値に到達したかを検証している。メモリセルの閾値電圧が所望のしきい値電圧に到達していれば、書き込みパルスデータは停止され、所望のしきい値電圧に到達していなければ、さらに書き込みパルスデータが印加される。このように、書き込みパルスデータの印加およびベリファイ（検証）を繰り返しすことによって、メモリセルは所望の閾値電圧に設定される。
【００２３】
図１２に示す最初の段階であるＳｔｅｐ１では、右側の表に記載されたデータ書き込み操作の有無に従い、データ書き込みが実行される。
【００２４】
Ｓｔｅｐ１では、現在のデータが「１１」（消去状態）で、目標のデータが「１０」、「０１」および「００」であるメモリセルに対してデータ書き込み操作を行なう。
【００２５】
データ書き込みを行なうメモリセルの閾値電圧が全て、目標のデータ「１０」の下限の基準閾値電圧１’（図１１に示すデータ読出し時のデータ「１０」に対応する下限の基準閾値電圧１より、高く設定されるベリファイ時の値。以下、同様である）以上になるまで、データ書き込みが実行される。
【００２６】
上記の基準閾値電圧１’は、データ読み出しに使用されるセンス回路の検出精度に対するマージンの確保、および、メモリセルに格納されたデータの経年劣化による閾値電圧の変動に対するデータ読み出し時のマージン確保のために、データ読み出し時に使用される基準閾値電圧１よりも高く設定される。同様の理由により目標のデータ「１０」の上限の基準閾値電圧２’は、図１１に示すデータ読出し時のデータ「１０」に対応する上限の基準閾値電圧２より低く設定される。
【００２７】
例えば、データ書き込み時に、目標のデータ「１０」の基準しきい値２’を超えたメモリセルが発生すると、そのメモリセルは、目標のデータ「１０」のデータ読み出しが保証できる閾値の範囲を超えたオーバープログラムの状態となる。このため、多値フラッシュメモリにおけるメモリセルのデータ書込みでは、データ書き込みの強さ（データ書込み電圧）の制御等によってオーバープログラムの状態のメモリセルを発生させないことが重要である。
【００２８】
次に、Ｓｔｅｐ２では、目標となるデータが「０１」または「００」で、現在のデータが「０１」に達していないメモリセルに対してデータ書き込み操作を行なう。尚、データ書き込み操作の詳細は、Ｓｔｅｐ１と同様である。
【００２９】
Ｓｔｅｐ２では、目標のデータ「０１」の下限の基準閾値電圧２”は、図１１に示すデータ読出し時のデータ「０１」に対応する下限の基準閾値電圧２より高く設定され、目標のデータ「０１」の上限の基準閾値電圧３’は、図１１に示すデータ読出し時のデータ「０１」に対応する上限の基準閾値電圧３より低く設定される。
【００３０】
これにより、データ書き込みを行なうメモリセルの閾値電圧が全て、目標のデータ「０１」の下限の基準閾値電圧２”から上限の基準閾値電圧３’の範囲になるように、データ書き込みが実行される。
【００３１】
最後に行うＳｔｅｐ３では、目標となるデータが「００」で、現在のデータが「００」に達していないメモリセルに対してデータ書き込み操作を行なう。尚、データ書き込み操作の詳細は、Ｓｔｅｐ１と同様である。
【００３２】
Ｓｔｅｐ３では、目標のデータ「００」の下限の基準閾値電圧３”は、図１１に示すデータ読出し時のデータ「００」に対応する下限の基準閾値電圧３より高く設定される。
【００３３】
これにより、データ書き込みを行なうメモリセルの閾値電圧が全て、目標のデータ「００」の下限の基準閾値電圧３”以上になるように、データ書き込みが実行される。
【００３４】
このように、図１２に示すデータ書き込みアルゴリズムにより四値フラッシュメモリのデータ書き込みが実現できる。
【００３５】
次に、メモリセルの閾値電圧の変動によるデータ書込み時のオーバープログラムと同様に問題となるアレイノイズと呼ばれる現象を説明する。
【００３６】
アレイノイズは、例えば、同一のメモリアレイ内の所定のワード線に接続された任意のメモリセルと他のメモリセルとにおいて、任意のメモリセルに対してデータ書込み操作を実施し任意のメモリセルの閾値電圧が変化した場合、データ書込み操作を行っていない他のメモリセルの閾値電圧が見かけ上、変化する現象である。
【００３７】
図１３は、多値フラッシュメモリであるＮＯＲ型フラッシュメモリのメモリアレイの一例の要部を示す構成図である。
【００３８】
図１３に示すメモリアレイに含まれる全てのメモリセルのソース線ＳＲＣは、共通になるように配線され、ワード線ＷＬとビット線ＢＬと直行するように配線されている。
【００３９】
ワード線ＷＬは、各メモリセルのコントロールゲートに共通にそれぞれ接続され、一方、ビット線ＢＬは、各メモリセルのドレインに共通にそれぞれ接続されている。これにより、各メモリセルは、マトリクス状に配置されている。
【００４０】
各メモリセルは、それぞれのメモリセルのドレイン同士およびソース同士が相互に接続され、各ビット線ＢＬに沿って接続されている。例えば、ＣＥＬＬ１１およびＣＥＬＬ２１は、ドレイン同士が接続され、それらのドレインは、ビット線ＢＬ１に接続されている。ＣＥＬＬ２１およびＣＥＬＬ３１は、ソース同士が接続され、それらのソースは、ソース線ＳＲＣに接続されている。ＣＥＬＬ３１およびＣＥＬＬ４１は、ドレイン同士が接続され、それらのドレインは、ビット線ＢＬ１に接続されている。
【００４１】
図１３には、４本のワード線ＷＬ１〜４および４本のビット線ＢＬ１〜４、ソース線ＳＲＣ、そしてそれらに接続されているメモリセルＣＥＬＬ１１〜４４を図示している。
【００４２】
このようなメモリアレイにおいて、全メモリセルのデータが消去された状態から、ワード線ＷＬ２に接続されたメモリセルＣＥＬＬ２１〜２３に、任意のデータを書き込む場合の動作を説明する。尚、ワード線ＷＬ２に接続されたメモリセルＣＥＬＬ２４は、データ書き込みが実施されず、データ消去状態が保持されている。
【００４３】
データ書き込み操作を実施する前は、全メモリセルがデータ消去状態であるので、全メモリセルの閾値電圧は最も低い状態になっている。このため、ワード線ＷＬ２に接続されたメモリセルＣＥＬＬ２１〜ＣＥＬＬ２４に対して、データ読み出し動作（ベリファイ動作）を実施すると、メモリセルＣＥＬＬ２１〜ＣＥＬＬ２４には、比較的大きな電流が流れる。
【００４４】
これにより、ソース線ＳＲＣの電位は、本来の電位、例えば、接地電位からソース線ＳＲＣの寄生抵抗による浮き上がりおよび駆動回路の出力トランジスタの出力抵抗増大等により、比較的大きく浮き上がることになる。
【００４５】
しかし、ワード線ＷＬ２に接続されたメモリセルＣＥＬＬ２１〜ＣＥＬＬ２３にデータ書込みが進行すると、これら３個のメモリセルＣＥＬＬ２１〜ＣＥＬＬ２３の閾値電圧が上昇するため、これら３個のメモリセルＣＥＬＬ２１〜ＣＥＬＬ２３に流れる電流が減少し、ソース線ＳＲＣの接地電位からの浮き上がりは徐々に低減される。
【００４６】
ソース線ＳＲＣの浮き上がりが小さくなると、メモリセルＣＥＬＬ２１〜ＣＥＬＬ２３におけるドレイン〜ソース間の電圧が増加し、データ読み出し動作（ベリファイ動作）時の電流が増えるため、見かけ上、メモリセルＣＥＬＬ２１〜ＣＥＬＬ２３の閾値電圧が低下したようにセンス回路にて検出される。
【００４７】
一方、データ書込み操作が実施されず、閾値電圧が変化しないメモリセルＣＥＬＬ２４も、ソース線ＳＲＣが共通であるために、メモリセルＣＥＬＬ２１〜ＣＥＬＬ２３と同様に、データ読み出し動作時の電流が大きくなり、閾値電圧が低下したかのようにセンス回路にて検出される。
【００４８】
このような現象がアレイノイズである。アレイノイズが起こると、例えば、任意のステップにて、既に、データ書き込みが完了してベリファイ動作もパスしたメモリセルがその後のデータ読み出し動作（ベリファイ動作）にて閾値電圧が低いと判断され、再びデータ書き込み操作が実行される。
【００４９】
このようなアレイノイズによる誤動作は、各メモリセルの閾値電圧を厳密に制御（データに対応する閾値電圧の分布のバラツキを小さくする）する必要のある多値フラッシュメモリでは大きな問題となる。
【００５０】
二値フラッシュメモリでは、再びデータ書き込みが実行される場合、メモリセルの閾値電圧が通常のデータ書き込み状態より高くなるが、閾値電圧が通常より高くなったとしても、図１０に示すように、データ読み出し動作における基準閾値電圧に対してデータに対応する閾値電圧のマージンが大きいため、データ読み出し動作時に、誤動作を起す危険性はほとんどない。
【００５１】
しかし、多値フラッシュメモリでは、データ読み出し動作における基準閾値電圧に対してデータに対応する閾値電圧のマージンが小さいため、図１１に示すように、データ「１０」および「０１」に対応する閾値電圧が高くなりすぎると誤動作を生じ、再びデータ書き込みが実行されてオーバープログラム状態となり、データが目標のデータと異なる場合が生じる。
【００５２】
また、多値フラッシュメモリのデータ書き込みでは、データ書き込み条件を同一にしてデータ書き込み操作を実行してもメモリセルの閾値電圧のシフト量が徐々に減少する問題がある。
【００５３】
この問題を防止するために、多値フラッシュメモリでは、メモリセルに印加する書き込みパルスデータの振幅（電圧値）および周期（印加時間）を調整する操作を行う場合がある。しかし、このような操作が行われ、比較的にデータ書き込みの閾値電圧の低いメモリセルがデータ書き込み操作の早い段階にてデータ書き込み完了と判断されたにも関わらず、その後の段階にてデータ書き込みが未完了と判断される場合がある。このため、データ書き込みが完了しているにも関わらず、データ書き込みが未完了と判断されたメモリセルには、さらに高電圧値および長い印加時間の書き込みパルスデータが印加され、オーバープログラム状態となる可能性が高くなる。
【００５４】
このようなアレイノイズと同様の現象は、電源電圧の変動などによるセンス回路でのセンス特性の変化などによっても生じ得る。
【００５５】
次に、多値フラッシュメモリにおけるデータ書き込み動作の一例を説明する。
【００５６】
多値フラッシュメモリのデータ書き込み動作は、メモリセルの閾値電圧を細かく制御する必要があるから、通常、二値フラッシュメモリのデータ書き込み動作よりも長い時間を必要とする。
【００５７】
このため、多値フラッシュメモリでは、データ書き込み動作の時間を短縮できるように、メモリセルへの書き込みデータを一時的に格納するページバッファ回路が設けられている。以下、ページバッファ回路が設けられた多値フラッシュメモリのデータ書き込み動作について説明する。
【００５８】
図１４は、多値フラッシュメモリのデータ書き込み動作に関係する要部の構成を示すブロック図の一例である。
【００５９】
図１４に示すフラッシュメモリ４００は、ユーザーインターフェイス回路（以後、ＵＩ回路と記述する）４１０を有しており、ＵＩ回路４１０に接続されている制御バス４０１、アドレスバス４０２およびデータバス４０３によって外部から操作される。
【００６０】
ＵＩ回路４１０は、制御バス４０１、アドレスバス４０２およびデータバス４０３を介して外部からの信号を受け取り、その信号を解析してフラッシュメモリ４００内部の動作を制御する。ＵＩ回路４１０は、制御バス４１１、アドレスバス４１２およびデータバス４１３を介してページバッファ回路４２０と接続され、制御バス４１４を介してライト・ステート・マシン回路（以後、ＷＳＭ回路と記述する）４３０と接続されている。
【００６１】
ページバッファ回路４２０は、メモリセルへの書き込みデータを一時的に格納する回路であり、制御バス４１１、アドレスバス４１２およびデータバス４１３を介してＵＩ回路４１０によりデータ書き込みの操作を制御される。
【００６２】
ＷＳＭ回路４３０は、メモリセルのデータ内容の書き換え等が指示された場合に、メモリアレイ４６０等の動作を制御する回路である。ＷＳＭ回路４３０は、制御バス４１４を介してＵＩ回路４１０からの制御信号によって動作内容を指示され、ＷＳＭ回路４３０自体の状態を信号４３１によってＵＩ回路４１０に知らせる。ＷＳＭ回路４３０は、制御バス４３４、４３５および４３６を介して、読み出し回路（Ｓｅｎｓｅ　Ａｍｐｌｉｆｉｅｒ）４４０、書き込み回路４５０およびメモリアレイ４６０にそれぞれ接続されている。読み出し回路４４０、書き込み回路４５０およびメモリアレイ４６０は、読み出しバス４６１を介して、相互に接続されている。
【００６３】
データ書き込み動作がＵＩ回路４１０から指示された場合、ＷＳＭ回路４３０は、制御バス４３２およびアドレスバス４３３を介して、ページバッファ回路４２０に制御信号およびアドレス信号を出力し、ページバッファ回路４２０に格納されているメモリセルへの書き込みデータのデータ読み出しを指示する。ページバッファ回路４２０は、指示されたメモリセルへの書き込みデータをデータバス４２１を介してＷＳＭ回路４３０に出力する。
【００６４】
読み出し回路４４０は、制御バス４３４を介してＷＳＭ回路４３０からの制御信号を受け取り、メモリアレイ４６０内に設けられている各メモリセルのデータ読み出しを実行する。この場合、ＷＳＭ回路４３０は、制御バス４３６およびアドレスバス４３３を介して、メモリアレイ４６０に制御信号およびアドレス信号を出力し、メモリアレイ４６０内のデータ読み出しの対象となるメモリセルを選択し、活性化させる。
【００６５】
メモリアレイ４６０内の選択されたメモリセルのドレインは、読み出しバス４６１に接続されており、読み出し回路４４０は、読み出しバス４６１を介して各メモリセル内の格納データに対応する閾値電圧を確認し、その後、それぞれのメモリセルからの読み出しデータをデータバス４４１を介してＷＳＭ回路４３０に出力する。
【００６６】
ＷＳＭ回路４３０は、データバス４２１を介してページバッファ回路４２０から出力されたデータ書き込みの目標データと、データバス４４１を介して読み出し回路４４０から出力された各メモリセルからの読み出しデータとを受け取り、現在のメモリセルの閾値電圧の値から、それぞれのメモリセルにデータ書き込み操作を実行するか否かを判断し、その判断結果である書き込みパルスデータをデータバス４３７を介して書き込み回路４５０に出力する。
【００６７】
ＷＳＭ回路４３０は、制御バス４３６を介してメモリアレイ４６０に制御信号を出力し、メモリアレイ４６０をデータ書き込みが実行できる状態にした後、制御バス４３５を介して書き込み回路４５０に制御信号を出力し、書き込み回路４５０からメモリアレイ４６０に書き込みパルスデータを印加させる。書き込み回路４５０は、メモリアレイ４６０内の各メモリセルのドレインに接続されている読み出しバス４６１に選択的に高電圧の書き込みパルスデータを印加することによって、それぞれのメモリセルに対して選択的にデータ書き込みを実行する。
【００６８】
以上の手順で、フラッシュメモリ４００のデータ書き込み動作が実現できる。
【００６９】
図１５は、多値フラッシュメモリのデータ書き込み動作に関係する要部の構成を示すブロック図の他の例である。
【００７０】
図１５に示すフラッシュメモリ５００は、図１４に示すフラッシュメモリ４００よりも、さらに効率的にデータ書き込み動作が実施できる。
【００７１】
フラッシュメモリ５００は、複数のアドレスで指定されるデータを同時に読み出して、データ出力時にデータを選択するページモード読み出し機能を有する多値フラッシュメモリである。
【００７２】
フラッシュメモリ５００は、図１４に示すフラッシュメモリ４００と同様に、ＵＩ回路５１０を有しており、ＵＩ回路５１０に接続されている制御バス５０１、アドレスバス５０２およびデータバス５０３によって外部から操作される。
【００７３】
ＵＩ回路５１０は、制御バス５０１、アドレスバス５０２およびデータバス５０３を介して外部からの信号を受け取り、その信号を解析してフラッシュメモリ４００内部の動作を制御する。ＵＩ回路５１０は、制御バス５１１、アドレスバス５１２およびデータバス５１３を介してページバッファ回路５２０と接続され、制御バス５１４を介してＷＳＭ回路５３０と接続されている。
【００７４】
ページバッファ回路５２０は、メモリセルへの書き込みデータを一時的に格納する回路であり、制御バス５１１、アドレスバス５１２およびデータバス５１３を介してＵＩ回路５１０によりデータ書き込みの操作を制御される。
【００７５】
ＷＳＭ回路５３０は、メモリセルのデータ内容の書き換え等が指示された場合に、メモリアレイ５６０等の動作を制御する回路である。ＷＳＭ回路５３０は、制御バス５１４を介してＵＩ回路５１０からの制御信号によって動作内容を指示され、ＷＳＭ回路５３０自体の状態を信号５３１によってＵＩ回路５１０に知らせる。ＷＳＭ回路５３０は、制御バス５３３、５３４、５３５および５３６を介して、多値論理回路５８０、読み出し回路５４０、書き込み回路５５０およびメモリアレイ５６０にそれぞれ接続されている。読み出し回路５４０、書き込み回路５５０およびメモリアレイ５６０は、読み出しバス５６１を介して、相互に接続されている。
【００７６】
アドレス生成回路（Ａｄｄｒｅｓｓ　Ｃｏｎｔｒｏｌｌｅｒ）５７０は、制御バス５３８およびアドレスバス５３９を介して、ＷＳＭ回路５３０から出力される制御信号およびアドレス信号をそれぞれ受け取り内部アドレスを生成する。アドレス生成回路５７０は、アドレスバス５３９にデータ書き込みの先頭アドレスを出力した状態で制御バス５３８に含まれる初期化信号を発行することによりアドレスバス５７１に出力するアドレスを先頭アドレスとしてセットし、その後、制御バス５３８に含まれるクロック信号による制御で、アドレスをインクリメントしてアドレスバス５７１に出力する。
【００７７】
読み出し回路５４０は、制御バス５３４を介してＷＳＭ回路５３０からの制御信号を受け取り、メモリアレイ５６０内に設けられている各メモリセルのデータ読み出しを実行する。この場合、メモリアレイ５６０は、制御バス５３６およびアドレスバス５７１を介して、ＷＳＭ回路５３０から出力される制御信号およびアドレス生成回路５７０から出力されるアドレス信号をそれぞれ受け取り、メモリアレイ５６０内のデータ読み出しの対象となるメモリセルを選択し、活性化させる。
【００７８】
メモリアレイ５６０内の選択されたメモリセルのドレインは、読み出しバス５６１に接続されており、読み出し回路５４０は、読み出しバス５６１を介して各メモリセル内の格納データに対応する閾値電圧を確認し、その後、それぞれのメモリセルからの読み出しデータをデータバス５４１を介してデータマルチプレクス回路（以後、ＭＵＸと記述する）５４５に出力する。
【００７９】
ＭＵＸ回路５４５は、アドレスバス５７１を介して、アドレス生成回路５７０から出力されるアドレス信号を受け取り、このアドレス信号に基づいて、データバス５４１を介して読み出し回路５４０から受け取った読み出しデータを選択し、選択された読み出しデータを、データバス５４６を介して多値論理回路（ＭＬＣ　Ｌｏｇｉｃ）５８０に出力する。
【００８０】
多値論理回路５８０は、制御バス５３３を介してＷＳＭ回路５３０から出力された制御信号と、データバス５２１を介してページバッファ回路５２０から出力されたデータ信号であるデータ書き込みの目標データと、データバス５４６を介してＭＵＸ回路５４５から出力されたデータ信号である選択された読み出しデータとを受け取り、現在のメモリセルの閾値電圧の値から、各メモリセルにデータ書き込み操作を実行するか否かを判断し、その判断結果である書き込みパルスデータをデータバス５８１を介してＷＳＭ回路５３０に出力する。ＷＳＭ回路５３０は、データバス５８１を介して多値論理回路５８０から受け取った書き込みパルスデータに基づいて、メモリアレイ５６０内の各メモリセルにデータ書き込みを実行するか否かを表すデータを、データバス５３７を介して書き込み回路５５０に出力する。
【００８１】
ＷＳＭ回路５３０は、制御バス５３６を介してメモリアレイ５６０に制御信号を出力し、メモリアレイ５６０をデータ書き込みが実行できる状態にした後、制御バス５３５を介して書き込み回路５５０に制御信号を出力し、書き込み回路５５０からメモリアレイ５６０に書き込みパルスデータを印加させる。書き込み回路５５０は、メモリアレイ５６０内の各メモリセルのドレインに接続されているビット線に読み出しバス５６１を介して、選択的に高電圧を印加することにより、書き込みパルスデータに基づいてデータ書き込み操作が選択的に指示されているそれぞれのメモリセルに対してデータ書き込みを実行する。
【００８２】
以上の手順で、フラッシュメモリ５００のデータ書き込み動作が実現できる。
【００８３】
ここで、図１５に示すフラッシュメモリ５００内のページバッファ回路５２０は、フィードバック機能を有している。ページバッファ回路５２０は、制御バス５３２を介してＷＳＭ回路５３０から出力される制御信号に基づいて、アドレスバス５７１を介してアドレス生成回路５７０から出力されるアドレス信号に指示されるデータを、多値論理回路５８０で生成されたフィードバックデータに更新することができる。フィードバックデータは、データバス５８２を介して多値論理回路５８０からページバッファ回路５２０に出力される。
【００８４】
図１６は、四値フラッシュメモリのデータ書き込み操作における多値論理回路５８０の動作の一例を示す真理表である。
【００８５】
図１６に示す真理値表は、データ書き込み操作の有無を判断する多値論理回路５８０の、メモリセル１個あたりの論理を表し、図１２に示すデータ書き込みの３段階の動作と同等の論理を表す。図１６に示す表内のＳｔｅｐは、図１２にて説明した多値フラッシュメモリでのデータ書き込みの各段階（Ｓｔｅｐ１、２および３）に対応する。表内の（目標）は、目標となるデータ、（現在）は、現在のデータを表し、（書込）は、対象のメモリセルにデータ書き込み操作を実行するか否かを示す出力データであり、Ｌの場合はデータ書き込み操作を実行しないこと、Ｈの場合はデータ書き込み操作を実行することを表す。
【００８６】
図１７は、図１６に示す真理値表の論理を実現するための論理回路の一例である。図１７に示す論理回路は、ＮＡＮＤ回路、ＮＯＲ回路、ＡＮＤ回路、ＯＲ回路を有している。図１７に示す論理回路の入力信号および出力信号は、以下のように設定される。
【００８７】
ＳＴＰ［１：０］は、図１６に示す表内のＳｔｅｐを表す信号で、Ｓｔｅｐ１では０１、Ｓｔｅｐ２では１０、Ｓｔｅｐ３では１１を表し、図１７に示すＳＴＰ１は上位ビット、ＳＴＰ０は下位ビットに対応する。例えば、Ｓｔｅｐ１では、ＳＴＰ［１：０］が０１であるので、ＳＴＰ１が０、ＳＴＰ０が１となる。
【００８８】
ＴＧＨ、ＴＧＬは、図１６に示す表内の目標となるデータのそれぞれ上位ビット、下位ビットに相当するものである。例えば、目標となるデータが０１であれば、ＴＧＨが０、ＴＧＬが１となる。
【００８９】
ＲＤＨ、ＲＤＬは、図１６に示す表内の現在のデータのそれぞれ上位ビット、下位ビットに相当するものである。例えば、現在のデータが０１であれば、ＲＤＨが０、ＲＤＬが１となる。
【００９０】
そして、ＰＲＯＧは、出力データを表し、図１６の表内の（書込）に対応し、ＰＲＯＧがＬの場合はデータ書き込み操作を実行せず、ＰＲＯＧがＨの場合はデータ書き込み操作を実行する。
【００９１】
図１４に示すフラッシュメモリ４００と図１５に示すフラッシュメモリ５００との主な相違点は、以下の通りである。
【００９２】
第１に、メモリセルにデータ書き込みを実施するか否かの判定を行う演算を、フラッシュメモリ４００はＷＳＭ回路４３０にて行い、フラッシュメモリ５００は、多値論理回路５８０にて行っている。
【００９３】
第２に、データ書き込みの対象となるメモリセルを選択するアドレスバスを、フラッシュメモリ４００はＷＳＭ回路４３０にて制御し、フラッシュメモリ５００はアドレス生成回路５７０にて制御している。
【００９４】
第３に、フラッシュメモリ５００はページバッファ回路５２０の内容を書き換えるフィードバック機能を有しているが、フラッシュメモリ４００にはその機能がない。
【００９５】
第４に、フラッシュメモリ５００はデータ出力時に、データを選択するページモード読み出し機能を有しているが、フラッシュメモリ４００にはその機能がない。
【００９６】
第１の相違点について説明する。データ書き込みを実施するか否かの判定を行う演算は、図１６および１７で示したように、複雑な論理およびその論理を実行する論理演算回路が必要となる。フラッシュメモリ４００のＷＳＭ回路４３０が汎用性のある演算回路を有していても、通常の演算（ＡＮＤ、ＯＲ、ＮＯＴ、ＮＡＮＤ等）の組み合わせで、データ書き込みを実施するか否かの判定結果を得るには非常に長い処理時間を要する。このため、フラッシュメモリ５００では、上記の演算を専用の多値論理回路５８０で実行し、ＷＳＭ回路５３０は多値論理回路５８０の演算結果を受け取って処理するという手段を用いている。
【００９７】
第２の相違点について説明する。複数のアドレスに及ぶ範囲の各メモリセルが格納しているデータを書き換えるには、制御バスおよびアドレスバスによる内部アドレスの制御が必要となり、この制御方法の一例としては、先頭アドレスからインクリメントする方法が挙げられる。フラッシュメモリ４００は、このようなアドレスバスの制御をＷＳＭ回路４３０で実行する場合、例えばアドレスのインクリメントを実行する場合は、ＷＳＭ回路に加算回路とそれを制御する手段が必要となる。しかし、フラッシュメモリ５００では、そのようなアドレスの制御を専用のアドレス生成回路５７０にて実行する方法を採用している。
【００９８】
第３の相違点について説明する。フラッシュメモリ５００は、ページバッファ回路５２０に前述のフィードバック機能を持たせることにより、メモリアレイ５６０内の各メモリセルからデータ読み出し動作時のそれぞれのメモリセルの閾値電圧が変動することによって生じるオーバープログラムを防止する。前述のアレイノイズのように、例えば、データ書き込み動作にて一度は基準閾値電圧以上に達したと判断されたメモリセルでも、その後のデータ読み出し動作（ベリファイ動作）によって基準閾値電圧に達していないと判断される場合がある。このため、データ書き込み動作にて一度基準閾値電圧以上に達したと判断されたメモリセルには、一連のデータ書き込み動作にて再度データ書き込みが実行されないように、ページバッファ回路５２０に格納されたデータを書き換える手段がある。
【００９９】
フラッシュメモリ５００は、図１６に示す真理値表から明らかなように、目標のデータが「１１」であるメモリセルにはデータ書き込み動作が実行されない。
【０１００】
したがって、例えばデータ書き込みが完了したと判断されたメモリセルに対応するページバッファ回路内のデータを「１１」と書き換えることによって、その後、さらなるデータ書込みパルスの印加は行われず、アレイノイズ等によるオーバープログラムの発生を低減できる。
【０１０１】
このように、フラッシュメモリ５００は、ページバッファ回路５２０に格納されたデータを更新する手段を有しており、ページバッファ回路５２０に格納されたデータの更新データを多値論理回路５８０にて生成している。
【０１０２】
更新データを多値論理回路５８０にて生成しているのは、使用する信号がデータ書き込みの判定に使用する信号と同一であるためであり、別の回路にて上記更新データを用意しても良い。
【０１０３】
第４の相違点について説明する。一般に多値フラッシュメモリは、データ読み出し動作が遅いため、外部回路に対するデータ出力部にページモード読み出し機能、シンクロナスバースト機能等の付加機能をを設けてシステム全体の性能を減少させない仕様にすることが多い。このようなデータ読み出し方法では、一度にデータを読み出すメモリセルの数が通常のデータ読み出しのメモリセルの数よりも多くなるから、ページモード読み出し機能、シンクロナスバースト機能等をデータ書き込みの制御にも用いることでデータ書き込みの高速化が可能となる。
【０１０４】
図１８は、四値フラッシュメモリのデータ書き込み操作において、フィードバック機能にて更新データの生成を行う場合の多値論理回路５８０の動作の一例を示す真理表であり、図１９は、図１８に示す真理値表の論理を実現するための論理回路の一例である。
【０１０５】
図１８に示す真理値表の論理の構成では、必要があれば、ページバッファ回路５２０に格納されたデータを、データ書き込みが実施されない状態である「１１」に書き換える。
【０１０６】
ページバッファ回路５２０に格納されたデータを「１１」に書き換えるのは、メモリセルへのデータ書き込み動作が完全に終了した状態、すなわち、Ｓｔｅｐ１では目標データが「１０」であり、「１０」以上にデータ書き込みが実施された状態、Ｓｔｅｐ２では目標データが「０１」であり、「０１」以上にデータ書き込みが実施された状態、Ｓｔｅｐ３では目標データが「００」であり、「００」にデータ書き込みが実施された状態である。
【０１０７】
これらのメモリセルは、すでに目標の閾値電圧に達しているので、一連のページバッファ回路５２０でのデータ書き込みにおける以後のデータ書き込みは不要となる。
【０１０８】
したがって、ページバッファ回路５２０に格納されたデータを「１１」に書き換えることに不都合は全く無い。これにより、前述のオーバープログラムの発生する可能性を低減できる。
【０１０９】
図１９示す論理回路は、ＮＡＮＤ回路、ＮＯＲ回路、ＡＮＤ回路、ＯＲ回路を有しており、出力信号であるＦＢＫ１およびＦＢＫ０以外の各入力信号の意味は、図１６に示す論理回路と同様である。
【０１１０】
データ書き換え（更新）後のデータＦＢＫ［１：０］は、「１１」へのデータ書き換えが実施される条件で「１１」となり、それ以外の場合は変化しない。ＦＢＫ１は上位ビット、ＦＢＫ０は下位ビットに対応する。
【０１１１】
次に、図１４に示すフラッシュメモリ４００および図１５に示すフラッシュメモリ５００のデータ書き込み制御におけるそれぞれのＷＳＭ回路４３０よび５３０が実行する制御を図２０および２１に示すフローチャートを用いて比較する。
【０１１２】
フラッシュメモリ４００は、単純なデータ書き込みの構成しか備えておらず、メモリセルへのデータ書き込み制御におけるＷＳＭ回路４３０の果たす役割が比較的大きい。
【０１１３】
図２０は、フラッシュメモリ４００において、データ書き込み制御の主な制御のうち１ワードのデータ書き込みを実行するためのフローチャートである。
【０１１４】
尚、図２０に示すフローチャートは、メモリセルへのデータ書き込み動作に必要な制御のうち、フラッシュメモリ５００および後述の本発明のフラッシュメモリの比較に必要な部分だけを記述しており、実際にはさらに多岐にわたる処理が実施される。また、一部の処理は、図２０に示す記述の通りの順序である必要は無い。
【０１１５】
まず始めに、データ書き込みの対象となるメモリセルのアドレスを演算する（Ｓ４０００）。この演算として、最初のデータ書き込みでは、一連のデータ書き込み動作が実行される先頭アドレスをセットし、次のデータ書き込み以降はアドレスをインクリメントするのが最も単純に考えられる。
【０１１６】
次に、演算したアドレスを内部アドレスとしてメモリアレイ４６０に出力する（Ｓ４００１）。その後、メモリアレイ４６０を読み出し状態にして（Ｓ４００２）、メモリセルの読み出しを実行する（Ｓ４００３）。この時、Ｓ４００１にてセットされた内部アドレスで指定されるメモリセルが活性化されて読み出される。
【０１１７】
ここで、ページバッファ回路４２０に格納されたデータを読み出す場合に、特殊な制御が必要であれば、この時点でその制御が必要になるが、図２０に示すフローチャートでは説明を簡単にするため、内部アドレスの変化に応じて、対応するデータが出力されるページバッファ回路４２０を使用する場合について説明する。フラッシュメモリ５００の説明でも同様である。
【０１１８】
次に、ページバッファ回路４２０のデータ読み出し結果とメモリセルのデータ読み出し結果から、各メモリセルへのデータ書き込み操作の実施の可否を判定する（Ｓ４００４）。この演算は、例えば図１６に示す真理値表のような論理構成を演算するものであり、少し複雑な演算となる。
【０１１９】
フラッシュメモリ５００のように専用回路（アドレス生成回路５７０）を設けてこの演算を行なうことができないフラッシュメモリ４００では、この複雑な演算もＷＳＭ回路４３０にて実行する必要がある。
【０１２０】
次に、Ｓ４００４にて生成された書き換えデータを、書き込み回路４５０に出力する（Ｓ４００５）。そして、メモリアレイ４６０をデータ書き込み動作の状態に設定し（Ｓ４００６）、書き込み回路４５０を制御して書き込みを実行する（Ｓ４００７）。
【０１２１】
以上のＷＳＭ回路４３０の制御によって、メモリセルへのデータ書き込み動作が実行される。ページバッファ回路４２０のデータ書き込みでは、データ書き込みの処理を要求されたデータの数だけ繰り返すことで、全てのデータに対するのデータ書き込みが実現できる。
【０１２２】
次に、フラッシュメモリ５００におけるＷＳＭ回路５３０の制御について、図２１に示すフローチャートを用いて説明する。図２１に示すフローチャートでは、１ページ分のデータ書き込みを実行する場合の説明をする。
【０１２３】
まず最初に、アドレスをページアドレスの先頭に設定する（Ｓ５０００）。
【０１２４】
次に、メモリアレイ５６０をデータ読み出し状態に設定する（Ｓ５００１）。その後、メモリアレイ５６０内のメモリセルのデータ読み出しを行なうが（Ｓ５００２）、ページモード読み出しが可能なため、この時点でページ内の全アドレスのデータを同時に読み出すことができる。したがって、データ読み出し以降において、全アドレスのデータは、内部アドレスバスに含まれるアドレスバスの一部であり、ページ内のアドレスを表すアドレスバスによって指定されたデータが、ＭＵＸ回路５４５から出力される。
【０１２５】
次に、メモリアレイ５６０をデータ書き込み状態に設定する（Ｓ５００３）。その後、多値論理回路５８０で生成された書き換えデータを読み出し（Ｓ５００４）、書き込み回路５５０に出力し（Ｓ５００５）、メモリアレイ５６０内のメモリセルへのデータ書き込みを実行する（Ｓ５００６）。その後、アドレスを更新するが、同一ページ内の処理であればデータ読み出し動作は不要なので、Ｓ５００４に戻ってデータ書き込みの操作を繰り返す。
【０１２６】
以上のＷＳＭ回路５３０の制御で、フラッシュメモリ５００の１ページ分のデータ書き込みが実行される。この操作を、データ書き込みが要求されている全データについて実行することによって、一連のメモリセルへのデータ書き込み動作が実現できる。
【０１２７】
図２０および２１のフローチャートから比較すると、フラッシュメモリ５００は、データ書き換えの実施の可否の判定をＷＳＭ回路５３０にて実行する必要がなく、必要な演算は非常に簡単なものになる。
【０１２８】
また、メモリアレイ５６０のデータ読み出し状態とデータ書き込み状態との切り替え回数が少なくなるので、フラッシュメモリ５００内のメモリアレイ５６０等に対する印加電圧の切り替え等の比較的時間のかかる切り替え処理を減少でき、データ書き込み動作の高速化が可能である。
【０１２９】
アドレスの処理も単純なインクリメントが中心なので、専用回路（アドレス生成回路５７０）にて実行することが可能である。
【０１３０】
このように、図１５に示すフラッシュメモリ５００は、図１４に示すフラッシュメモリ４００と比較して、データ書き込み動作の高速化およびＷＳＭ回路５３０の簡素化が達成できる。
【０１３１】
以上のように、従来の多値フラッシュメモリにおいてもデータ書き換えは可能であり、データ書き込み動作の高速化および処理の簡素化も可能となる。
【０１３２】
【発明が解決しようとする課題】
しかしながら、従来の多値フラッシュメモリのデータ書き込み動作では、内部アドレスの生成およびデータのＯＮ／ＯＦＦなどの制御が必要となるため、依然としてアレイノイズの発生のおそれもあり、さらにＷＳＭ回路の回路構成も複雑な構成で大型化し、このためデータ書き込み動作の処理速度が低下する。
【０１３３】
本発明は、このような課題を解決するものであり、その目的は、ＷＳＭ回路を簡略化し、データ書き込み動作の高速化を実現するとともに、アレイノイズの影響を抑制した半導体記憶装置およびデータ書き込み制御方法を提供することにある。
【０１３４】
【課題を解決するための手段】
本発明の半導体記憶装置は、記憶するデータ量が１ビット以上である複数のメモリセルが設けられているメモリアレイを有する半導体記憶装置において、複数のメモリセルのデータ書き換え動作を制御するデータ書き換え制御手段と、メモリアレイにてデータ読み出しの対象のメモリセルを選択するアドレス信号を生成するアドレス生成手段と、メモリセルに格納されたデータを読み出すデータ読み出し手段と、メモリセルに書き込むデータを一時的に格納するページバッファ手段と、各メモリセルに対するデータ書き換えを実施するか否かを判断するデータ書き換え論理手段と、データ書き換え論理手段から出力されるの第１書き込み信号を格納するデータレジスタ手段と、データレジスタ手段から出力される第２書き込み信号に基づいて、メモリアレイにてデータ書き込みの対象のメモリセルに選択的にデータ書き込みを実行するデータ書き込み手段と、具備し、データ書き換え制御手段は、第１制御信号により、データレジスタ手段に第１書き込み信号の格納を指示し、データレジスタ手段は、データ書き換え制御手段から出力される第２制御信号のタイミングに基づいて、アドレス信号によって指定されるデータレジスタ手段に設けられた所定のレジスタに第１書き込み信号を格納するものであり、そのことにより上記目的が達成される。
【０１３５】
また、好ましくは、本発明の半導体記憶装置において、データレジスタ手段は、格納された第１書き込み信号の内容を固定し、メモリセルのデータ書き換え動作をセットしない機能が設けられている。
【０１３６】
さらに、好ましくは、本発明の半導体記憶装置において、データ読み出し手段は、複数のアドレスに割り当てられた記憶内容を同時に読み出すページモード読み出し機能が設けられている。
【０１３７】
本発明の半導体記憶装置は、記憶するデータ量が１ビット以上である複数のメモリセルが設けられているメモリセルを有する半導体記憶装置において、複数のメモリセルのデータ書き換え動作を制御するデータ書き換え制御手段と、メモリアレイにてデータ読み出しの対象のメモリセルを選択するアドレス信号を生成するアドレス生成手段と、メモリセルに格納されたデータを読み出すデータ読み出し手段と、メモリセルへの書き込みデータを一時的に格納するページバッファ手段と、各メモリセルに対するデータ書き換えを実施するか否かを判断するデータ書き換え論理手段と、具備し、ページバッファ手段は、データ書き換え制御手段により、格納している該書き込みデータを更新するフィードバックが指示されると、アドレス信号によって指定される書き込みデータを、データ書き換え論理手段にて生成されたフィードバックデータに変換する機能を有するものであり、そのことにより上記目的が達成される。
【０１３８】
また、好ましくは、本発明の半導体記憶装置において、書き込みデータは、フィードバックによって、メモリセルへのデータ書き込みが実施されないデータに変換される。
【０１３９】
さらに、好ましくは、本発明の半導体記憶装置において、データ読み出し手段は、複数のアドレスに割り当てられた記憶内容を同時に読み出すページモード読み出し機能が設けられている。
【０１４０】
さらに、好ましくは、本発明の半導体記憶装置において、書き込みデータは、フィードバックによって、メモリセルにデータ書き込みが実施される前に、メモリセルに格納されたデータに変換される。
【０１４１】
本発明のデータ書き込み制御方法は、アドレス生成手段にてデータ書き込みのアドレスをページアドレスの先頭に設定する工程と、データ書き換え制御手段により、メモリアレイをデータ読み出し状態に設定する工程と、データ読み出し手段により、メモリアレイのデータ読み出しを実行する工程と、データ書き込みを行うページ数に含まれるアドレスの数だけ、データの読み出しと、アドレスの更新とを実行する工程と、データ書き換え制御手段により、メモリアレイをデータ書き込み状態に設定する工程と、データ書き込み手段により、メモリアレイのデータかきこみを実行する工程と、を包含することにより、上記目的が達成される。
【０１４２】
上記構成により、以下、その作用を説明する。
【０１４３】
本発明の半導体記憶装置は、データレジスタ手段において、データ書き換え制御手段から出力される第２制御信号のタイミングに基づいて、データ書き換え論理手段から受け取った第１書き込み信号をアドレス生成手段から出力されるアドレス信号によって指定されるレジスタに格納し、その後、格納した第１書き込み信号を第２書き込み信号として、直接、データ書き込み手段に出力することによって、データ書き込み動作における多値論理回路、データレジスタ回路および書き込み回路の間のデータ処理が、ＷＳＭ回路を介していないため、簡略化できるとともに、データ処理時間も短縮できる。
【０１４４】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態を説明する。
【０１４５】
図１は、本発明の実施形態の半導体記憶装置である多値フラッシュメモリ１００のデータ書き込み動作に関係する要部の構成を示すブロック図である。
【０１４６】
図１に示すフラッシュメモリ１００は、データレジスタ回路（Ｄａｔａ　Ｒｅｇｉｓｔｅｒ）１９０を有しており、その他の構成は、図１５に示すフラッシュメモリ５００と同様である。また、フラッシュメモリ１００内のメモリアレイ１６０は、図１３に示すメモリアレイの構成と同様である。
【０１４７】
フラッシュメモリ１００は、ページバッファ回路１２０におけるページバッファ書き込み機能および読み出し回路１４０におけるページモード読み出し機能を備えている。
【０１４８】
以下、フラッシュメモリ１００の構成およびその構成に基づくデータ書き込み動作を説明する。
【０１４９】
図１に示すフラッシュメモリ１００は、ＵＩ回路（Ｕｓｅｒ　Ｉｎｔｅｒｆａｃｅ）１１０を有しており、ＵＩ回路１１０に接続されている制御バス１０１、アドレスバス１０２およびデータバス１０３によって外部から操作される。
【０１５０】
ＵＩ回路１１０は、制御バス１０１、アドレスバス１０２およびデータバス１０３を介して外部からの信号を受け取り、その信号を解析してフラッシュメモリ１００内部の動作を制御する。ＵＩ回路１１０は、制御バス１１１、アドレスバス１１２およびデータバス１１３を介してページバッファ回路１２０と接続され、制御バス１１４を介してＷＳＭ回路１３０と接続されている。
【０１５１】
ページバッファ回路１２０は、メモリセルへの書き込みデータを一時的に格納する回路であり、制御バス１１１、アドレスバス１１２およびデータバス１１３を介してＵＩ回路１１０によりデータ書き込みの操作を制御される。
【０１５２】
ＷＳＭ回路１３０は、メモリセルのデータ内容の書き換え等が指示された場合に、メモリアレイ１６０等の動作を制御する回路である。ＷＳＭ回路１３０は、制御バス１１４を介してＵＩ回路１１０からの制御信号によって動作内容を指示され、ＷＳＭ回路１３０自体の状態を信号１３１によってＵＩ回路１１０に知らせる。
ＷＳＭ回路１３０は、制御バス１３３、１３４、１３５、１３６および１３７を介して、多値論理回路１８０、読み出し回路１４０、書き込み回路１５０、メモリアレイ１６０およびデータレジスタ回路１９０にそれぞれ接続されている。読み出し回路１４０、書き込み回路１５０およびメモリアレイ１６０は、読み出しバス１６１を介して、相互に接続されている。
【０１５３】
アドレス生成回路１７０は、制御バス１３８およびアドレスバス１３９を介して、ＷＳＭ回路１３０から出力される制御信号およびアドレス信号をそれぞれ受け取り内部アドレスを生成する。アドレス生成回路１７０は、アドレスバス１３９にデータ書き込みの先頭アドレスを出力し、その後、制御バス１３８に含まれるクロック信号ＣＬＫにより、アドレスをインクリメントしてアドレスバス１７１に出力する。
【０１５４】
読み出し回路１４０は、ページモード読み出し機能が設けられている。読み出し回路１４０は、制御バス１３４を介してＷＳＭ回路１３０からの制御信号を受け取り、メモリアレイ１６０内に設けられている各メモリセルのデータ読み出しを実行する。この場合、メモリアレイ１６０は、制御バス１３６およびアドレスバス１７１を介して、ＷＳＭ回路１３０から出力される制御信号およびアドレス生成回路１７０から出力されるアドレス信号をそれぞれ受け取り、メモリアレイ１６０内のデータ読み出しの対象となるメモリセルを選択し、活性化させる。尚、メモリアレイ１６０は、メモリセル、リファレンスセル、ダミーセル等がアレイ化されている。
【０１５５】
メモリアレイ１６０内の選択されたメモリセルのドレインは、読み出しバス１６１に接続されており、読み出し回路１４０は、読み出しバス１６１を介して各メモリセル内の格納データに対応する閾値電圧を確認し、その後、それぞれのメモリセルからの読み出しデータをデータバス１４１を介してＭＵＸ回路５４５に出力する。
【０１５６】
ＭＵＸ回路１４５は、アドレスバス１７１を介して、アドレス生成回路１７０から出力されるアドレス信号を受け取り、このアドレス信号に基づいて、データバス１４１を介して読み出し回路１４０から受け取った読み出しデータを選択・加工し、選択された読み出しデータを、データバス１４６を介して多値論理回路１８０に出力する。
【０１５７】
多値論理回路１８０は、制御バス１３３を介してＷＳＭ回路１３０から出力された制御信号と、データバス１２１を介してページバッファ回路１２０から出力されたデータ信号であるデータ書き込みの目標データと、データバス１４６を介してＭＵＸ回路１４５から出力されたデータ信号である選択された読み出しデータとを受け取り、現在のメモリセルの閾値電圧の値から、各メモリセルにデータ書き込み操作を実行するか否かを判断し、その判断結果である書き込みパルスデータＰＲＧをデータバス１８１を介してデータレジスタ回路１９０に出力する。
【０１５８】
データレジスタ回路１９０は、制御バス１３７を介してＷＳＭ回路１３０から出力（発行）される制御信号ＷＲＴによって、書き込みパルスデータＰＲＳのラッチが指示される。この時、制御バス１３８を介してＷＳＭ回路１３０から出力されアドレス生成回路１７０を制御する制御信号ＣＬＫがデータレジスタ回路１９０にも入力される。この制御信号ＣＬＫの制御に基づいて、データレジスタ回路１９０は、データバス１８１を介して多値論理回路１８０から受け取った書き込みパルスデータＰＲＧを、アドレスバス１７１を介してアドレス生成回路１７０から受け取ったアドレス信号ＡＤＤによって指定されるデータレジスタ回路１９０内のレジスタに格納する。
【０１５９】
データレジスタ回路１９０は、データバス１９１を介してアドレス信号ＡＤＤによって指定されたレジスタに格納された書き込みパルスデータＰＲＧの内容を含むデータ信号ＰＬＳを書き込み回路１５０に出力する。
【０１６０】
ＷＳＭ回路１３０は、制御バス１３６を介してメモリアレイ１６０に制御信号を出力し、メモリアレイ１６０をデータ書き込みが実行できる状態にした後、制御バス１３５を介して書き込み回路１５０に制御信号を出力し、書き込み回路１５０からメモリアレイ１６０に書き込みパルスデータを印加させる。書き込み回路１５０は、メモリアレイ１６０内の各メモリセルのドレインに接続されているビット線に読み出しバス１６１を介して、選択的に高電圧を印加することにより、書き込みパルスデータに基づいてデータ書き込み操作が選択的に指示されているそれぞれのメモリセルに対してデータ書き込みを実行する。
【０１６１】
以上の手順で、フラッシュメモリ１００のデータ書き込み動作が実現できる。
【０１６２】
ここで、図１に示すフラッシュメモリ１００内のページバッファ回路１２０は、フィードバック機能を有している。ページバッファ回路１２０は、制御バス１３２を介してＷＳＭ回路１３０から出力される制御信号がフィードバックを指示する場合、制御バス１３８を介してＷＳＭ回路１３０から出力される制御信号ＣＬＫに基づいて、アドレスバス１７１を介してアドレス生成回路１７０から出力されるアドレス信号に指示されるデータを、多値論理回路１８０にて生成されたフィードバックデータに書き換えることができる。フィードバックデータは、データバス１８２を介して多値論理回路１８０からページバッファ回路１２０に出力される。
【０１６３】
図１に示す本発明の半導体記憶装置であるフラッシュメモリ１００は、データレジスタ回路１９０において、ＷＳＭ回路１３０から出力される制御信号ＣＬＫに基づいて、多値論理回路１８０から受け取った書き込みパルスデータＰＲＧを、アドレス生成回路１７０から出力されるアドレス信号ＡＤＤによって指定されるレジスタに格納し、その後、格納した書き込みパルスデータＰＲＧをデータＰＬＳとして、直接、書き込み回路１５０に出力する。
【０１６４】
これにより、図１に示すフラッシュメモリ１００は、データ書き込み動作における多値論理回路１８０、データレジスタ回路１９０および書き込み回路１５０の間のデータ処理が、ＷＳＭ回路１３０を介していないため、簡略化できるとともに、データ処理時間も短縮できる。
【０１６５】
図２は、本発明のフラッシュメモリ１００内のデータレジスタ回路１９０の構成図の一例である。図２に示すデータレジスタ回路１９０は、１アドレスに割り当てられるメモリセル数が４個、１ページに４つのアドレスを含む場合の例を示す。
【０１６６】
図２に示すデータレジスタ回路１９０は、レジスタ制御回路（Ｒｅｇｉｓｔｅｒ　Ｃｏｎｔｒｏｌ）、レジスタのセルＲｅｇおよびデータを反転出力させるインバータを有している。
【０１６７】
レジスタ制御回路（Ｒｅｇｉｓｔｅｒ　Ｃｏｎｔｒｏｌ）は、アドレス生成回路１７０がアドレスバス１７１を介して出力するアドレス信号ＡＤＤと、ＷＳＭ回路が制御バス１３７を介して出力する制御信号である書き込み信号ＷＲＴと、ＷＳＭ回路が制御バス１３８を介して出力するアドレス制御信号ＣＬＫとを受け取り、書き込み信号ＷＲ０〜ＷＲ３および読み出し信号ＲＤ０〜３をレジスタの各セルＲｅｇ（例えば、フリップフロップのようなラッチ回路にて構成）に出力する。尚、レジスタのセルＲｅｇは、例えばフリップフロップのようなラッチ回路にて構成されている。
【０１６８】
書き込み信号ＷＲ０〜ＷＲ３により活性化されたレジスタの各セルＲｅｇは、多値論理回路１８０がデータバス１８１を介して出力する書き込みパルスデータＰＲＧ０〜ＰＲＧ３をそれぞれ受け取り、レジスタの所定のセルＲｅｇにてそれぞれラッチする。
【０１６９】
レジスタの各セルＲｅｇは、読み出し信号ＲＤ０〜ＲＤ３によって活性化され、ラッチした書き込みパルスデータＰＲＧ０〜ＰＲＧ３を反転して出力し、さらにインバータにて反転させてデータ信号ＰＬＳ０〜ＰＬＳ３として、データバス１９１に出力する。データ信号ＰＬＳ０〜ＰＬＳ３は、データレジスタ回路１９０に入力される書き込みパルスデータＰＲＧ０〜ＰＲＧ３にそれぞれ対応する。
【０１７０】
このように、データレジスタ回路１９０は、入力される三つの制御信号であるアドレス信号ＡＤＤ、書き込み信号ＷＲＴおよびアドレス制御信号ＣＬＫに基づいて、レジスタ制御回路にて書き込み信号ＷＲ０〜ＷＲ３および読み出し信号ＲＤ０〜ＲＤ３を生成し、レジスタ制御回路がこれらの信号をレジスタの各セルＲｅｇに供給し、レジスタの各セルＲｅｇが書き込み信号ＷＲ０〜ＷＲ３および読み出し信号ＲＤ０〜ＲＤ３に基づいて動作する。そして、データレジスタ回路１９０への入力信号である書き込みパルスデータＰＲＧ０〜ＰＲＧ３をレジスタの各セルＲｅｇ毎に所定の変換処理を行い、出力信号としてデータ信号ＰＬＳ０〜ＰＬＳ３を出力する。
【０１７１】
図３は、図２に示すデータレジスタ回路１９０に使用されるレジスタのセルの構成を示す回路図の一例である。
【０１７２】
図３に示すレジスタのセルは、ＮＡＮＤ回路およびインバータを有しているラッチ回路であり、入力信号である書き込みパルスデータＰＲＧを、読み出し信号ＲＤおよび書き込み信号ＷＲに基づいて制御して、出力信号としてデータ信号ＰＬＳ＃を出力する。
【０１７３】
読み出し信号ＲＤは、読み出し活性化信号で、これによって出力がイネーブルになり、ラッチされた書き込みパルスデータＰＲＧを反転したものがデータ信号ＰＬＳ＃として出力される。データ信号ＰＬＳ＃は、図２にてレジスタの各セルがそれぞれ出力しているデータ信号ＰＬＳ０〜ＰＬＳ３である。
【０１７４】
書き込み信号ＷＲは、書き込み活性化信号で、これによってデータ書き込みがイネーブルになり、書き込みパルスデータＰＲＧで指示されたデータがフリップフロップにラッチされる。
【０１７５】
図４は、図２に示すデータレジスタ回路１９０に使用されるレジスタ制御回路の構成を示す回路図の一例である。
【０１７６】
図４に示すレジスタ制御回路は、インバータおよびＡＮＤ回路を有しており、入力される２ビットのアドレス信号ＡＤＤ０およびＡＤＤ１をデコードして、データ読み出しのために読み出し信号ＲＤ０〜ＲＤ３のいずれかを選択して出力することによって選択的にレジスタの各セルの内容を出力する。
【０１７７】
さらに、図４に示すレジスタ制御回路は、書き込み制御信号ＷＲＴがイネーブルの場合には、アドレス制御信号ＣＬＫの制御によって、データ書き込みのために書き込み信号ＷＲ０〜ＷＲ３のいずれかを選択して出力することによって選択的にレジスタの各セルの内容を出力する。
【０１７８】
図５は、フラッシュメモリ１００のデータ書き込み動作における各信号のタイミングチャートの一例である。
【０１７９】
図５に示すタンミングチャートは、フラッシュメモリ１００のデータ書き込み動作の手順を示しており、各信号での動作の所要時間は考慮していない。図５に示すタンミングチャートは、フラッシュメモリ１００が１ページ内に２アドレスが含まれるページモード読み出し機能を有し、４アドレスまたはそれ以上のデータを格納できるページバッファ回路１２０およびデータレジスタ回路１９０を有する場合に付いて説明する。
【０１８０】
まず始めに、時刻ｔ０にて、ＷＳＭ回路１３０が制御バス１３９に出力する信号Ａｄｄｒｅｓ　Ｉｎｉｔｉａｌｉｚｅ信号により、図５のタイミングチャート内のＡｄｄｒｅｓｓで示される内部アドレス１７１を書き換え、データを演算する最初のアドレスにセットする。この場合、アドレス信号ＡＤＤは、ＡＤＤ０にセットされる。
【０１８１】
次に、時刻ｔ１にて、ＷＳＭ回路１３０が制御バス１３４に出力するＳｅｎｓｅ　Ｅｎａｂｌｅ信号により、１ページ分のメモリセルのデータを読み出し、この場合は２アドレスで指定されるメモリセルの内容が読み出される。
【０１８２】
メモリアレイ１６０内のアドレス信号ＡＤＤ０で指定されるメモリセルに格納されているデータＲＤＡＴ０と、同一ページ内のアドレス信号ＡＤＤ１で指定されるメモリセルに格納されたデータＲＤＡＴ１が読出し回路１４０にて読み出され、データバス１４１に出力される。
【０１８３】
ＭＵＸ回路１４５は、データバス１４１を介して読出し回路１４０から出力された２アドレス分のデータを受け取るが、内部アドレス１７１で指定されているアドレス信号ＡＤＤ０で指定されるデータを、データバス１４６を介して多値論理回路１８０に出力する。
【０１８４】
ページバッファ回路１２０は、アドレス信号ＡＤＤ０で指定されるメモリセルに書き込むデータを、データバス１２１を介して多値論理回路１８０に出力する。
【０１８５】
読み出したデータＲＤＡＴ０とページバッファ回路１２０に格納されていたデータＰＢ０を受けて、多値論理回路１８０は、データ書き込み操作を実施するかか否かを判定し、判定結果である書き込みパルスデータＰＲＧ０を、データバス１８１を介してデータレジスタ回路１９０に出力する。
【０１８６】
また、多値論理回路１８０は、フィードバックデータＦＢＫ０を、データバス１８２を介してページバッファ回路１２０に出力する。
【０１８７】
次に、時刻ｔ２にて、アドレス生成回路１７０を制御するＡｄｄｒｅｓｓ　Ｃｏｎｔｒｏｌ信号を操作する。
【０１８８】
図５に示すタイミングチャートでは、Ａｄｄｒｅｓｓ　Ｃｏｎｔｒｏｌ信号の立下りにてアドレスを更新すると同時に、Ａｄｄｒｅｓｓ　Ｃｏｎｔｒｏｌ信号のＨｉｇｈ期間で、Ｄａｔａ　Ｒｅｇｉｓｔｅｒ　Ｃｏｎｔｒｏｌ信号で示されるデータレジスタ回路１９０への書き込みパルスデータのラッチが行なわれ、Ｆｅｅｄｂａｃｋ　Ｃｏｎｔｒｏｌ信号で示されるページバッファ回路１２０への格納データのフィードバックが実行される。さらに、Ａｄｄｒｅｓｓ　Ｃｏｎｔｒｏｌ信号がＨｉｇｈになると、内部アドレス１７１の示すＡＤＤ０により指定されるデータレジスタ回路の内容は、Ｄａｔａ　Ｒｅｇｉｓｅｒ０信号で示されるように、ＰＲＧ０がラッチされる。
【０１８９】
また、内部アドレス１７１の示すＡＤＤ０により指定されるページバッファ回路１２０の内容は、Ｐａｇｅ　Ｂｕｆｆｅｒ０信号で示されるように、ＦＢＫ０がラッチされる。
【０１９０】
次に、時刻ｔ３にて、Ａｄｄｒｅｓｓ　Ｃｏｎｔｒｏｌ信号を立下げることにより、内部アドレス１７１はアドレス信号ＡＤＤ０と同一ページ内にあるもう一つのアドレス信号ＡＤＤ１に変化する。それに伴い、ＭＵＸ回路１４５はアドレス信号ＡＤＤ１に示されるメモリセルに格納されたデータＲＤＡＴ１を、データバス１４６を介して多値論理回路１８０に出力する。
【０１９１】
また、ページバッファ回路１２０の出力は、アドレス信号ＡＤＤ１に指示されるメモリセルに書き込むデータＰＢ１が出力される。これらのデータＲＤＡＴ１およびＰＢ１を受けて、多値論理回路１８０の出力は、新しい書き換えデータＰＲＧ１と新しいフィードバックデータＦＢＫ１に変化する。ここでも、アドレス信号ＡＤＤ０と同様の操作がアドレス信号ＡＤＤ１に対して実行される。
【０１９２】
その後、アドレスが異なるページに移行した場合は、データ読み出し動作が必要になるが、Ａｄｄｒｅｓｓ　Ｃｏｎｔｒｏｌ信号を制御することによって、内部アドレス１７１の更新、データレジスタ回路１９０へのデータの格納、ページバッファ回路１２０へのフィードバックが同様に実行される。
【０１９３】
図６は、フラッシュメモリ１００のデータ書き込み動作におけるＷＳＭ回路１３０が実行する制御のフローチャートである。
【０１９４】
図６に示すフローチャートにおいて、図５に示す各信号のタイミングチャートの説明は、Ｓ１０００〜Ｓ１００３に示す部分である。
【０１９５】
尚、図６に示すフローチャートは、メモリセルへのデータ書き込み動作に必要な制御のうち、フラッシュメモリ１００および前述した従来技術との比較に必要な部分だけを記述しており、実際にはさらに多岐にわたる処理が実施されている。
また、一部の処理は図６に示す記述の通りの順序である必要は無い。
【０１９６】
まず始めに、内部アドレスをページアドレスの先頭に設定し（Ｓ１０００）、メモリアレイ１６０をデータ読み出し状態にする（Ｓ１００１）。
【０１９７】
次に、メモリセルのデータ読み出しが実行される（Ｓ１００２）。この場合、ページモード読み出し機能を利用するので、１ページに含まれる全メモリ内容が読み出される。
【０１９８】
次に、内部アドレスが更新され（Ｓ１００３）、その制御信号の制御によって、データレジスタ回路１９０へのデータの格納およびページバッファ回路１２０へのフィードバックも実行される。
【０１９９】
このＳ１００３の処理を、１ページに含まれるアドレスの数だけ繰り返す。また、Ｓ１００２のメモリセルのデータ読み出しと、Ｓ１００３のアドレスの更新とを、一度に書き込みの準備をするページの数だけ繰り返す。
【０２００】
次に、データ書き込みの準備が完了すると、メモリアレイ１６０をデータ書き込み状態に設定し（Ｓ１００４）、書き込みを実行する（Ｓ１００５）。
【０２０１】
以上、既に説明した従来技術のデータ書き込み動作の制御と比較すると明らかに、本発明のフラッシュメモリ１００では、ＷＳＭ回路１３０が簡潔な制御を行えば良いように設定されている。
【０２０２】
フラッシュメモリ１００内のＷＳＭ回路１３０では、制御する信号の数が少ないために、データ書き込み動作の高速化も容易となり、回路規模も小型化が可能となる。
【０２０３】
以上の説明では、本発明のフラッシュメモリ１００がページモード読み出し機能を有している場合について説明したが、フラッシュメモリ１００がページモード読み出し機能を有していない場合でも、内部アドレス１７１を変化させるたびにデータ読み出し動作を行えば良く、本発明のフラッシュメモリ１００とほぼ同様の効果が得られる。
【０２０４】
また、本発明のフラッシュメモリ１００において、データレジスタ回路１９０への書き込みパルスデータのラッチと、ページバッファ回路１２０へのフィードバックとの両方をアドレス制御信号で制御する場合について説明したが、必ずしも両方をアドレス制御信号で制御する必要は無く、どちらか一方でも同様の効果が得られる。
【０２０５】
さらに、本発明のフラッシュメモリ１００では、データレジスタ回路１９０およびページバッファ回路１２０の構成、または、データバスおよび制御バスの配線状態により、どちらか一方の動作しか制御できない場合でも、上記の効果を得ることが可能である。
【０２０６】
図７は、データレジスタ回路１９０に使用されるレジスタのセルの構成を示す回路図の他の例である。図７に示すレジスタのセルは、ＮＡＮＤ回路およびインバータを有しているラッチ回路であり、ＷＳＭ回路１３０から出力される制御信号であるリセット信号ＲＳＴＢが追加されている以外は、図３に示すレジスタのセルの構成と同様である。
【０２０７】
図７に示すレジスタのセルのラッチ回路は、アレイノイズ等のデータ読み出し動作における見かけ上のメモリセルの閾値電圧の変動によるメモリセルへのオーバープログラムを抑制することを目的とする。
【０２０８】
図７に示すレジスタのセルのラッチ回路は、データレジスタ回路１９０の動作において、ＷＳＭ回路１３０の制御によって、ラッチされた書き込みデータをリセットすることはできてもセットすることはできないモードを用意する。
【０２０９】
書き込みデータをセットできずに、リセットしか実行しないモードの時は、制御信号であるリセット信号ＲＳＴＢをＬＯＷレベルにする。
【０２１０】
この場合、図７に示すラッチ回路のフリップフロップは、リセットすることはできてもセットすることはできない。リセット信号ＲＳＴＢがＨＩＧＨレベルの場合は、図７に示すラッチ回路のフリップフロップのセットもリセットも可能であり、図３に示すレジスタのセルのラッチ回路と同様の動作を行う。
【０２１１】
図７に示すレジスタのセルのラッチ回路は、各ステップの最初のデータレジスタ回路１９０へのデータの格納時は、リセット信号ＲＳＴＢをＨＩＧＨレベルに設定し、それ以降はリセット信号ＲＳＴＢをＬＯＷレベルに設定する。図７に示すレジスタのセルのラッチ回路は、データレジスタ回路１９０にデータの格納する以外の処理では、図３に示すレジスタのセルのラッチ回路と同様の動作である。
【０２１２】
各ステップの最初において、図７に示すレジスタのセルのラッチ回路は、リセット信号ＲＳＴＢをＨＩＧＨレベルにすることより、図３に示すレジスタのセルのラッチ回路と同様に、データ書き換えを実施するメモリセルに対応するレジスタのセルはセットされ、データ書き換えを実施すべきでないメモリセルに対応するレジスタのセルはリセットされる。
【０２１３】
このため、リセット信号ＲＳＴＢがＨＩＧＨレベルの場合、図７に示すレジスタのセルのラッチ回路を使用したデータレジスタ回路１９０は、図３に示すレジスタのセルのラッチ回路を使用したデータレジスタ回路１９０と同様に、データ書き換えを実施べきか否かをメモリセル単位に設定できる。
【０２１４】
図７に示すレジスタのセルのラッチ回路を使用したデータレジスタ回路１９０は、同一のステップでは、最初のデータレジスタ回路１９０へのデータの格納以降のデータレジスタ回路へのデータの格納は、レジスタのセルがセットされないように、リセット信号ＲＳＴＢをＬＯＷレベルに設定して実行される。
【０２１５】
これにより、図７に示すレジスタのセルのラッチ回路を使用したデータレジスタ回路１９０では、最初のデータ読み出し動作によって、基準閾値電圧を超えていないと判断されたメモリセルに対してはレジスタのセルがセットされ、全てのセットされたレジスタのセルがリセットされると、そのステップにおけるデータ書き込み動作が完了したと判断できる。
【０２１６】
ところで、一度リセットされたレジスタセルが再びセットされる原因としては、前述のアレイノイズの影響および電源電圧の変動などによるセンス結果の変化が原因として考えられるが、多値フラッシュメモリでは、オーバープログラムの原因にもなり、好ましくない。
【０２１７】
図７に示すレジスタのセルのラッチ回路を使用したデータレジスタ回路１９０では、各ステップの最初を除いてレジスタのセルをセットしないことによって、アレイノイズ等に起因するデータ読み出し動作でのメモリセルの閾値電圧の見かけ上の変動の影響を抑制し、メモリセルへのオーバープログラムも防止できる。
【０２１８】
また、図７に示すレジスタのセルのラッチ回路を使用したデータレジスタ回路１９０を採用すると、フラッシュメモリ１００において、データ読み出し動作でのメモリセルの閾値電圧の見かけ上の変動を低減するために用いられたページバッファ回路１２０のフィードバック機能を削除することも可能である。
【０２１９】
次に、図１に示すフラッシュメモリ１００は、図３または７に示すレジスタのセルのラッチ回路を使用したデータレジスタ回路１９０を有する回路構成を用いて、一部の回路（多値論理回路）を変更することによって、フラッシュメモリ１００のような多値フラッシュメモリのデータの取り扱いを、二値フラッシュメモリのデータの取り扱いと見かけ上同じものにすることが可能である。
【０２２０】
一般にフラッシュメモリでは、メモリメルへのデータ書き込み動作は一方向であり、例えば、二値フラッシュメモリでは、メモリセルの閾値電圧の低いほうから高いほうにデータ書き込みが行われ、通常の定義では、データ「１」からデータ「０」へのデータ書き込みしかできない。逆方向にデータを書き換えるには、ブロック単位での消去などが必要になる。
【０２２１】
既に何らかのデータが書き込まれたアドレスにデータの上書きが実行されたとき、二値フラッシュメモリでは、データ「１」のメモリセルにはデータ「０」を書き込むことはできるが、その逆はできない。このため、書き込み前のデータと書き込みが指示されたデータのＡＮＤ（論理和）が書き込み後のデータの状態となる。
【０２２２】
図８は、データ書き込み動作における多値フラッシュメモリのデータと二値フラッシュメモリのデータとの互換性を説明する真理値表の一例である。
【０２２３】
図８に示す真理値表にしめすように、多値フラッシュメモリでは、データ「１０」からデータ「０１」へのデータ書き込みが可能なため、データ上書き時のデータの扱いは柔軟に対応できるが、例えば使用者が二値フラッシュメモリと同様に取り扱うためには、二値フラッシュメモリと同じく、書き込み前のデータと書き込みが指示されたデータのＡＮＤが最終の書き込み後のデータの状態にすることが望ましい。
【０２２４】
前述したように、多値フラッシュメモリでは、ページバッファ回路に格納されたデータと現在のメモリセルの状態（格納データ）から、ページバッファ回路に格納されたデータを、メモリセルの状態（格納データ）に更新することが可能である。
【０２２５】
この機能を利用すると、データ上書きの論理が二値フラッシュメモリと同様になるように、ページバッファ回路に格納されたデータを容易に書き換えることが可能である。
【０２２６】
図１９には、フィードバックデータ生成の論理回路の一例を示したが、図１９に示す論理回路を基にしてデータ上書きの論理の生成を加えると、例えば、図９に示す論理回路として実現できる。
【０２２７】
図９に示す論理回路は、ＮＡＮＤ回路、ＮＯＲ回路、ＡＮＤ回路、ＯＲ回路、インバータを有しており、出力信号であるＦＢＫ１およびＦＢＫ０、各入力信号等は、図１９に示す論理回路と同様である。
【０２２８】
図９に示す論理回路では、データ上書きの論理の生成時には、ＳＴＰ１＝ＳＴＰ０＝Ｌ（Ｌ：ＬＯＷレベルまたは０の意味）とすることにより、他のデータ書き込みＳｔｅｐと区別している。
【０２２９】
図９に示す論理回路は、図１９に示す論理回路にて例示したフィードバック機能用の回路を基にしているが、最終段のＡＮＤ回路（ＡＮＤゲート）により、書き換えデータＦＢＫ［１：０］をＬＯＷレベルに固定できる点が異なる。
【０２３０】
このため、図９に示す論理回路は、ＳＴＰ１＝ＳＴＰ０＝Ｌ、および、現在のメモリセルのデータ読み出し結果がＬＯＷレベルであれば、そのビットはＬＯＷに書き換えられる。
【０２３１】
以上、図８に示す真理値表および図９に示す論理回路によって、前述した図１に示すフラッシュメモリ１００の回路構成およびデータ書き込み制御方法を利用して、多値フラッシュメモリへのデータ上書き時のデータの処理も実行することが可能である。
【０２３２】
【発明の効果】
本発明の半導体記憶装置は、データ書き換え制御手段が第１制御信号により、データレジスタ手段に第１書き込み信号の格納を指示し、データ書き換え制御手段から出力される第２制御信号のタイミングに基づいて、アドレス信号によって指定されるデータレジスタ手段に設けられた所定のレジスタに該第１書き込み信号を格納することによって、ＷＳＭ回路の回路構成を簡略化し、データ書き込み動作の高速化が図れる。
【図面の簡単な説明】
【図１】本発明の実施形態である半導体記憶装置の要部のブロック図である。
【図２】図１の半導体記憶装置が有するデータレジスタ回路の構成図の一例である。
【図３】図２のデータレジスタ回路に使用されるレジスタのセルの回路図の一例である。
【図４】図２のデータレジスタ回路に使用されるレジスタ制御回路の一例である。
【図５】図１の半導体記憶装置のデータ書き込み動作における各信号のタイミングチャートの一例である。
【図６】図１の半導体記憶装置のデータ書き込み動作におけるフローチャートである。
【図７】図２のデータレジスタ回路に使用されるレジスタのセルの回路図の他の例である。
【図８】データ書き込み動作における多値フラッシュメモリのデータと二値フラッシュメモリのデータとの互換性を説明する真理値表の一例である。
【図９】図８の真理値表の論理を実現するための論理回路の一例である。
【図１０】従来の半導体記憶装置のメモリセルの閾値電圧の分布を示すグラフである。
【図１１】従来の他の半導体記憶装置のメモリセルの閾値電圧の分布を示すグラフである。
【図１２】従来の他の半導体記憶装置のデータ書き込みアルゴリズムの一例である。
【図１３】従来の他の半導体記憶装置のメモリアレイの要部を示す構成図の一例である。
【図１４】従来の他の半導体記憶装置の要部のブロック図である。
【図１５】従来のさらに他の半導体記憶装置の要部のブロック図である。
【図１６】従来のさらに他の半導体記憶装置のデータ書き込み動作の論理の一例を示す真理値表である。
【図１７】図１６の真理値表の論理を実現するための論理回路の一例である。
【図１８】従来のさらに他の半導体記憶装置のデータ書き込み動作の論理の他の例を示す真理値表である。
【図１９】図１８の真理値表の論理を実現するための論理回路の一例である。
【図２０】従来の他の半導体記憶装置のデータ書き込み動作におけるフローチャートである。
【図２１】従来のさらに他の半導体記憶装置のデータ書き込み動作におけるフローチャートである。
【符号の説明】
１００　フラッシュメモリ
１０１　制御バス
１０２　アドレスバス
１０３　データバス
１１０　ＵＩ回路
１１１　制御バス
１１２　アドレスバス
１１３　データバス
１１４　制御バス
１２０　ページバッファ回路
１２１　データバス
１３０　ＷＳＭ回路
１３１　信号
１３２　制御バス
１３３　制御バス
１３４　制御バス
１３５　制御バス
１３６　制御バス
１３７　制御バス
１３８　制御バス
１３９　アドレスバス
１４０　読み出し回路
１４１　データバス
１４５　ＭＵＸ回路
１４６　データバス
１５０書き込み回路
１６０　メモリアレイ回路
１６１　読み出しバス
１７０　アドレス生成回路
１７１　アドレスバス
１８０　多値論理回路
１８１　データバス
１８２　データバス
１９０　データレジスタ回路
１９１　データバス
【図１】
2004022061.tif 000003
【図２】
2004022061.tif 000004
【図３】
2004022061.tif 000005
【図４】
2004022061.tif 000006
【図５】
2004022061.tif 000007
【図６】
2004022061.tif 000008
【図７】
2004022061.tif 000009
【図８】
2004022061.tif 000010
【図９】
2004022061.tif 000011
【図１０】
2004022061.tif 000012
【図１１】
2004022061.tif 000013
【図１２】
2004022061.tif 000014
【図１３】
2004022061.tif 000015
【図１４】
2004022061.tif 000016
【図１５】
2004022061.tif 000017
【図１６】
2004022061.tif 000018
【図１７】
2004022061.tif 000019
【図１８】
2004022061.tif 000020
【図１９】
2004022061.tif 000021
【図２０】
2004022061.tif 000022
【図２１】
2004022061.tif 000023