(57)【要約】【課題】低消費電力及び高速アクセスを実現した不揮発性半導体記憶装置を提供する。【解決手段】不揮発性半導体記憶装置は、マトリクス状に配置された複数のメモリセル、及びメモリセルに対しデータ書き込みに必要なバイアス電圧を供給するデータ書き込み手段からなる複数のバンクを有し、所定数のバンクに属する所定数のメモリセルからなる複数のページに論理的に分割されたメモリコアと、データ書き込み手段を制御し、ページに対してデータを書き込むページ書き込みを、所定数のメモリセルからなる書き込み単位毎に行う制御手段とを備える。制御手段は、ページ書き込みを、プログラム動作及びベリファイ動作からなるステップの繰り返しで実行し、ベリファイ動作において正常なデータ書き込みが確認できなかった書き込み単位についてのみ、次ステップ以後においてプログラム動作及びベリファイ動作を実行することを特徴とする。【選択図】図７
2010225228.tif 000002
【特許請求の範囲】
【請求項１】
マトリクス状に配置された複数のメモリセル、及び前記メモリセルに対しデータ書き込みに必要なバイアス電圧を供給するデータ書き込み手段からなる複数のバンクを有し、所定数の前記バンクに属する所定数の前記メモリセルからなる複数のページに論理的に分割されたメモリコアと、
前記データ書き込み手段を制御し、前記ページに対してデータを書き込むページ書き込みを、所定数の前記メモリセルからなる書き込み単位毎に行う制御手段と
を備え、
前記制御手段は、
前記ページ書き込みを、プログラム動作及びベリファイ動作からなるステップの繰り返しで実行し、
前記ベリファイ動作において正常なデータ書き込みが確認できなかった前記書き込み単位についてのみ、次ステップ以後において前記プログラム動作及びベリファイ動作を実行する
ことを特徴とする不揮発性半導体記憶装置。
【請求項２】
マトリクス状に配置された複数のメモリセル、及び前記メモリセルに対しデータ書き込みに必要なバイアス電圧を供給するデータ書き込み手段からなる複数のバンクを有し、所定数の前記バンクに属する所定数の前記メモリセルからなる複数のページに論理的に分割されたメモリコアと、
前記データ書き込み手段を制御し、前記ページに対してデータを書き込むページ書き込みを、所定数の前記メモリセルからなる書き込み単位毎に行う制御手段と、
書き込みデータを検査し、データ書き込みが不要な前記バンクに属するデータ書き込み手段に対して、前記バイアス電圧の供給を抑制するバイアス抑制信号を活性化する書き込みデータ検査手段と
を備え、
前記制御手段は、前記ページ書き込みを、プログラム動作及びベリファイ動作からなるステップの繰り返しで実行し、
所定の前記バンクのデータ書き込み手段は、前記バイアス抑制信号が活性化されている場合、前記バイアス電圧を供給しない
ことを特徴とする不揮発性半導体記憶装置。
【請求項３】
マトリクス状に配置された複数のメモリセル、及び前記メモリセルに対しデータ書き込みに必要なバイアス電圧を供給するデータ書き込み手段からなる複数のバンクを有し、所定数の前記バンクに属する所定数の前記メモリセルからなる複数のページに論理的に分割されたメモリコアと、
前記データ書き込み手段を制御し、前記ページに対してデータを書き込むページ書き込みを、所定数の前記メモリセルからなる書き込み単位毎に行う制御手段と、
異なる前記書き込み単位に属し、かつ、同一の前記バンクに対する書き込みデータを検査し、データ書き込みが不要なデータであった場合、該当する前記バンクのデータ書き込み手段に対して、前記バイアス電圧の供給を抑制するバイアス抑制信号を活性化する書き込みデータ検査手段と
を備え、
前記制御手段は、前記ページ書き込みを、プログラム動作及びベリファイ動作からなるステップの繰り返しで実行し、
所定の前記バンクのデータ書き込み手段は、前記バイアス抑制信号が活性化されている場合、前記バイアス電圧を供給しない
ことを特徴とする不揮発性半導体記憶装置。
【請求項４】
所定の前記書き込み単位において、データ書き込みが不要な前記バンクについては、同一バンクに属する他の前記書き込み単位におけるデータ書き込みを実行する
ことを特徴とする請求項１〜３のいずれか１項記載の不揮発性半導体記憶装置。
【請求項５】
前記プログラム動作及び前記ベリファイ動作は、書き込み単位毎に交互に実行される
ことを特徴とする請求項１〜４のいずれか１項記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置に関し、例えば、可変抵抗素子を用いた電気的書き換え可能な不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
近年、フラッシュメモリの後継候補として、抵抗変化メモリが注目されている。ここで、抵抗変化メモリ装置には、遷移金属酸化物を記録層としてその抵抗値状態を不揮発に記憶する狭義の抵抗変化メモリ（ＲｅＲＡＭ：Resistive RAM）の他、カルコゲナイド等を記録層として用いてその結晶状態（導体）と非晶質状態（絶縁体）の抵抗値情報を利用する相変化メモリ（ＰＣＲＡＭ：Phase Change RAM）も含むものとする。
【０００３】
抵抗変化メモリの可変抵抗素子には、２種類の動作モードがあることが知られている。１つは、印加電圧の極性を切り替えることにより、高抵抗状態と低抵抗状態とを設定するもので、これはバイポーラ型といわれる。もう１つは、印加電圧の極性を切り替えることなく、電圧値と電圧印加時間を制御することにより、高抵抗状態と低抵抗状態の設定を可能とするもので、これはユニポーラ型といわれる。
【０００４】
高密度メモリセルアレイを実現するためには、ユニポーラ型が好ましい。ユニポーラ型の場合、トランジスタを用いることなく、ビット線及びワード線の交差部に可変抵抗素子とダイオード等の整流素子とを重ねるクロスポイント型のメモリセルとすることにより、セルアレイが構成できるからである。更にこのようなメモリセルアレイを三次元的に積層配列することにより、セルアレイ面積を増大させることなく、大容量を実現することが可能になる（特許文献１、非特許文献１参照）。
【０００５】
特許文献１には、半導体基板上にメモリセルアレイが積層された三次元メモリセルアレイ構造を有する相変化メモリ装置が記載されている。この相変化メモリ装置において、選択メモリセルに接続されたビット線を“Ｈ”レベルから“Ｌ”レベルに制御するとともに、選択メモリセルに接続されたワード線を“Ｌ”レベルから“Ｈ”レベルに制御することで、選択メモリセルに電流を流している。この電流を検知することで、二値データの書き込み／読み出しを行っている。
【０００６】
しかし、メモリセルアレイ上の大部分の非選択メモリセルは、選択メモリセルが接続されたワード線及びビット線と異なるワード線及びビット線に接続されており、選択メモリセルとは逆のバイアス電圧が印加される。その結果、非選択メモリセルでリーク電流が生じることになり、電流消費が増大することになる。
【０００７】
また、リーク電流との関係から同時選択できるメモリセル数が制限されるため、フラッシュメモリと同様の数ｋバイト毎のページアクセスを実行するには、チップ内部で、数バイトずつシーケンシャルにアクセスする必要があり、処理速度が遅くなる点も問題となる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２００５−５２２０４５号公報
【非特許文献】
【０００９】
【非特許文献１】M. Johnson, et al., 512-Mb PROM With a Three-Dimensional Array of Diode/Antifuse Memory Cells, IEEE JOURNAL OF SOLID-STATE CIRCUITS, VOL.38 NO.11, NOVEMBER 2003 p.1920.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、低消費電力及び高速アクセスを実現した不揮発性半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一態様に係る不揮発性半導体記憶装置は、マトリクス状に配置された複数のメモリセル、及び前記メモリセルに対しデータ書き込みに必要なバイアス電圧を供給するデータ書き込み手段からなる複数のバンクを有し、所定数の前記バンクに属する所定数の前記メモリセルからなる複数のページに論理的に分割されたメモリコアと、前記データ書き込み手段を制御し、前記ページに対してデータを書き込むページ書き込みを、所定数の前記メモリセルからなる書き込み単位毎に行う制御手段とを備える。前記制御手段は、前記ページ書き込みを、プログラム動作及びベリファイ動作からなるステップの繰り返しで実行し、前記ベリファイ動作において正常なデータ書き込みが確認できなかった前記書き込み単位についてのみ、次ステップ以後において前記プログラム動作及びベリファイ動作を実行することを特徴とする。
【００１２】
本発明の別の一態様に係る不揮発性半導体記憶装置は、マトリクス状に配置された複数のメモリセル、及び前記メモリセルに対しデータ書き込みに必要なバイアス電圧を供給するデータ書き込み手段からなる複数のバンクを有し、所定数の前記バンクに属する所定数の前記メモリセルからなる複数のページに論理的に分割されたメモリコアと、前記データ書き込み手段を制御し、前記ページに対してデータを書き込むページ書き込みを、所定数の前記メモリセルからなる書き込み単位毎に行う制御手段と、書き込みデータを検査し、データ書き込みが不要な前記バンクに属するデータ書き込み手段に対して、前記バイアス電圧の供給を抑制するバイアス抑制信号を活性化する書き込みデータ検査手段とを備える。前記制御手段は、前記ページ書き込みを、プログラム動作及びベリファイ動作からなるステップの繰り返しで実行する。所定の前記バンクのデータ書き込み手段は、前記バイアス抑制信号が活性化されている場合、前記バイアス電圧を供給しないことを特徴とする。
【００１３】
本発明の更に別の一態様に係る不揮発性半導体記憶装置は、マトリクス状に配置された複数のメモリセル、及び前記メモリセルに対しデータ書き込みに必要なバイアス電圧を供給するデータ書き込み手段からなる複数のバンクを有し、所定数の前記バンクに属する所定数の前記メモリセルからなる複数のページに論理的に分割されたメモリコアと、前記データ書き込み手段を制御し、前記ページに対してデータを書き込むページ書き込みを、所定数の前記メモリセルからなる書き込み単位毎に行う制御手段と、異なる前記書き込み単位に属し、かつ、同一の前記バンクに対する書き込みデータを検査し、データ書き込みが不要なデータであった場合、該当する前記バンクのデータ書き込み手段に対して、前記バイアス電圧の供給を抑制するバイアス抑制信号を活性化する書き込みデータ検査手段とを備える。前記制御手段は、前記ページ書き込みを、プログラム動作及びベリファイ動作からなるステップの繰り返しで実行する。所定の前記バンクのデータ書き込み手段は、前記バイアス抑制信号が活性化されている場合、前記バイアス電圧を供給しないことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、低消費電力及び高速アクセスを実現した不揮発性半導体記憶装置を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態に係る不揮発性メモリの機能ブロック図である。
【図２】同実施形態に係る不揮発性メモリのメモリコアを示す図である。
【図３】同実施形態に係る不揮発性メモリのメモリセルアレイの等価回路図である。
【図４】同実施形態に係る不揮発性メモリにおけるデータ書き込み時の各配線に供給される電圧波形図である。
【図５】同実施形態に係る不揮発性メモリにおける各配線の状態とメモリセルに印加されるバイアス電圧及び対象メモリセル数の関係を示す図である。
【図６】同実施形態に係る不揮発性メモリにおけるページ書き込み動作を説明する図である。
【図７】同実施形態に係る不揮発性メモリにおけるページ書き込み動作を説明する図である。
【図８】同実施形態に係る不揮発性メモリのアドレスバッファ及びページレジスタとバンクとの信号接続関係を示す図である。
【図９】同実施形態に係る不揮発性メモリにおけるカラムアドレスの構成を示す図である。
【図１０】同実施形態に係る不揮発性メモリのバンクの内部構成例を示す図である。
【図１１】同実施形態に係る不揮発性メモリにおけるページ書き込み動作のフローチャートである。
【図１２】同実施形態に係る不揮発性メモリにおける他のページ書き込み動作のフローチャートである。
【図１３】本発明の第２の実施形態に係る不揮発性メモリにおけるページ書き込み動作を説明する図である。
【図１４】同実施形態に係る不揮発性メモリのアドレスバッファ及びページレジスタとバンクとの信号接続関係を示す図である。
【図１５】同実施形態に係る不揮発性メモリのページレジスタ周辺の内部構成例を示す図である。
【図１６】同実施形態に係る不揮発性メモリのバンクの内部構成例を示す図である。
【図１７】同実施形態に係る不揮発性メモリにおけるページ書き込み動作時のタイミングチャートである。
【図１８】同実施形態に係る不揮発性メモリのバンクの他の内部構成例を示す図である。
【図１９】同実施形態に係る不揮発性メモリにおけるページ書き込み動作時の他のタイミングチャートである。
【図２０Ａ】本発明の第３の実施形態に係る不揮発性メモリにおけるページ書き込み動作を説明する図である。
【図２０Ｂ】同実施形態に係る不揮発性メモリにおけるページ書き込み動作を説明する図である。
【図２１】同実施形態に係る不揮発性メモリのページレジスタ周辺の内部構成例を示す図である。
【図２２】本発明の第４の実施形態に係る不揮発性メモリにおけるページ書き込み動作を説明する図である。
【図２３】同実施形態に係る不揮発性メモリのアドレスバッファ及びページレジスタとバンクとの信号接続関係を示す図である。
【図２４】同実施形態に係る不揮発性メモリのバンクの内部構成例を示す図である。
【図２５】同実施形態に係る不揮発性メモリにおけるページ書き込み動作時のタイミングチャートである。
【図２６】同実施形態に係る不揮発性メモリにおけるページ書き込み動作のフローチャートである。
【図２７】同実施形態に係る不揮発性メモリにおけるベリファイ動作時のタイミングチャートである。
【図２８】図２７の動作を実現するフローチャートである。
【図２９】本発明の第５の実施形態に係る不揮発性メモリのページレジスタの論理構成を示す図である。
【図３０】同実施形態に係る不揮発性メモリにおけるページ書き込み動作のフローチャートである。
【図３１】同実施形態に係る不揮発性メモリにおけるタスクスケジューリングを示す図である。
【図３２】ＮＡＮＤフラッシュメモリにおけるページ書き込み動作を説明する図である。
【図３３】ＮＡＮＤフラッシュメモリにおけるブロック消去動作を説明する図である。
【図３４】本発明の第１の実施形態に対する比較例におけるページ書き込み動作を説明する図である。
【図３５】本発明の第２の実施形態に対する比較例におけるページ書き込み動作を説明する図である。
【図３６】本発明の第４の実施形態に対する比較例におけるページ書き込み動作を説明する図である。
【図３７】本発明の第５の実施形態に対する比較例におけるタスクスケジューリングを示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら、本発明に係る不揮発性メモリの実施の形態について詳細に説明する。
【００１７】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る不揮発性メモリの機能ブロック図である。
【００１８】
この不揮発性メモリは、メモリコア１００を備える。メモリコア１００は、図２に示すような三次元的に配置された複数のバンクからなる。これらバンクは、それぞれメモリセルアレイ層を複数積層してなる。メモリセルアレイ層は、それぞれロウ方向（図２のｘ方向）に延びる複数のワード線ＷＬと、このワード線ＷＬに交差するカラム方向（図２のｙ方向）に延びる複数のビット線ＢＬと、これらワード線ＷＬ及びビット線ＢＬの各交差部に設けられたメモリセルＭＣを備える。各メモリセルアレイ層は、それぞれのワード線ＷＬ及びビット線ＢＬの一端に設けられたワード線コンタクト及びビット線コンタクトを介して、メモリセルアレイ層の下に配置されたシリコン基板に接続されている。このシリコン基板上には、ビット線ＢＬに接続されるセンスアンプ回路、書き込みデータを一時保持するレジスタ回路、ワード線ＷＬ及びビット線ＢＬのバンク内デコーダを含む各論理回路が配置されている。
【００１９】
また、不揮発性メモリは、外部とのインタフェースとなるコントロールピン情報及びＩ／Ｏピン情報を受ける入力バッファ１１０及び１２０、コマンドを解釈するコマンドデコーダ１３０、入力バッファ１２０から与えられるアドレスを保持するアドレスバッファ１４０、入力バッファ１２０から与えられる入力データを保持するデータバッファ１５０、及びデータを外部に出力する出力バッファ１６０を備える。さらに、制御手段として、メモリコア１００のアクセスを制御するシーケンス制御部１７０、データを保持し、メモリコア１００とのデータ入出力を実行するページレジスタ１８０、メモリコア１００を制御するアレイ制御部１９０ａ、及びページレジスタ１８０を制御するページレジスタ制御部１９０ｂを備える。
【００２０】
入力バッファ１１０は、不揮発性メモリのコントロールピン情報に基づいて、Ｉ／Ｏピンのデータの入出力、コマンド／アドレス／データの識別、書き込み保護等の状態の認識を行う。ここで、コントロールピン情報としては、不揮発性メモリの選択を行うチップ・イネーブル信号／ＣＥｘ、Ｉ／Ｏピン上のコマンド、アドレス、及びデータを不揮発性メモリ内部に取り込むライト・イネーブル信号／ＷＥｘ、Ｉ／Ｏピンからのデータ出力を許可するリード・イネーブル信号／ＲＥｘ、コマンドを不揮発性メモリ内部に取り込む際に使用するコマンド・ラッチ・イネーブ信号ＣＬＥｘ、アドレスあるいは入力データを、不揮発性メモリ内部に取り込む際に使用するアドレス・ラッチ・イネーブル信号ＡＬＥｘ、電源投入直後等の不安定期間において記憶データを保護する際に使用するライト・プロテクト信号／ＷＰｘがある。
【００２１】
入力バッファ１２０は、双方向バスで構成されたＩ／Ｏピンを介し、外部からの入力データを受信する。入力バッファ１２０は、コントロールピン情報に基づいて入力バッファ１１０から送信された信号で制御されるが、この信号に応じて、入力データをコマンドデコーダ１３０、アドレスバッファ１４０、又はデータバッファ１５０のいずれかに振り分ける。
【００２２】
コマンドデコーダ１３０は、入力バッファ１２０から送信されたコマンドを解釈し、必要に応じてシーケンス制御部１７０を起動させる。
【００２３】
アドレスバッファ１４０は、入力バッファ１２０から送信されたアドレスを保持し、アレイ制御部１９０ａやページレジスタ１８０に送信する。最終的に、このアドレスは、メモリセルＭＣのワード線ＷＬ及びビット線ＢＬの選択／非選択の決定に供される。また、アドレスバッファ１４０は、必要に応じてシーケンス制御部１７０の指示を受けてアドレス初期化（Ｐｒｅｓｅｔ）やカウントアップ（ＣｏｕｎｔＵｐ）等を実行する。
【００２４】
データバッファ１５０は、入力バッファ１２０から送信された入力データを一時保持し、この入力データを書き込みデータとして入力データバスＤＩＮ及び内部双方向データバスＭＤＩＯ［７：０］を介してページレジスタ１８０に送信する。一方、データ出力時には、ページレジスタ１８０への書き込みデータ送信を停止し、内部双方向データバスＭＤＩＯ［７：０］における書き込みデータと読み出しデータとの衝突を回避させる。
【００２５】
出力バッファ１６０は、内部双方向データバスＭＤＩＯ［７：０］及び出力データバスＤＯＵＴ［７：０］を介してページレジスタ１８０から送信された読み出しデータを受信し、この読み出しデータを出力データとしてＩ／Ｏピンを介して外部に出力する。出力バッファ１６０は、読み出しデータの他、メモリセルＭＣのＩＤ情報等も出力する。さらに、データ読み出し動作時以外のときには、Ｉ／Ｏピンのドライブを停止させる役割も持つ。
【００２６】
シーケンス制御部１７０は、不揮発性メモリのデータ読み出し／書き込み／消去動作の全てを制御する。その制御には、メモリセルアレイに必要なバイアス電圧の供給の指示や、アドレスレジスタ１４０に対するアドレスの変更指示（ＣｏｕｎｔＵｐ、Ｐｒｅｓｅｔ）等も含まれる。
【００２７】
ページレジスタ１８０は、少なくとも１バイト以上のレジスタから構成される。ページレジスタ１８０は、共通データバスＧＤＩＯ［７：０］を介し、メモリセルアレイに書き込む書き込みデータを保持したり、メモリセルアレイから読み出した読み出しデータを保持したりする。
【００２８】
アレイ制御部１９０ａ及びページレジスタ制御部１９０ｂは、シーケンス制御部１７０からの指示によって起動する。アレイ制御部１９０ａは、メモリセルアレイに対して必要なバイアス電圧の供給をしたり、メモリセルアレイの下部に配置されているセンスアンプ回路の起動やレジスタ回路の動作を制御したりする。一方、ページレジスタ制御部１９０ｂは、ページレジスタ１８０を制御する。
【００２９】
図３は、図２に示すメモリコア１００のメモリセルアレイの等価回路図である。
【００３０】
図３には、３本のワード線ＷＬ、４本のビット線ＢＬ、及びこれらワード線ＷＬ及びビット線ＢＬの各交差部に設けられた１２個のメモリセルＭＣが表されている。各メモリセルＭＣは、アノードがビット線ＢＬに接続されたダイオードＤｉと、このダイオードＤｉのカソード及びワード線ＷＬ間に接続された可変抵抗素子ＶＲとの直列接続からなる。なお、メモリセルＭＣを構成するダイオードＤｉ及び可変抵抗素子ＶＲの配置や極性は、図３の例に限定されるものではない。また、ダイオードＤｉに代えてスイッチトランジスタを配置することもできる。
【００３１】
可変抵抗素子ＶＲは、例えば、電極／遷移金属酸化物／電極からなる構造を有するものなどがあり、電圧、電流、熱等の印加条件によって金属酸化物の抵抗値変化をもたらし、その抵抗値の異なる状態を情報として不揮発に記憶する。この可変抵抗素子ＶＲとしては、より具体的には、カルコゲナイド等のように結晶状態と非晶質状態の相転移により抵抗値を変化させるもの（ＰＣＲＡＭ）、金属陽イオンを析出させて電極間に架橋（Conducting bridge）を形成したり、析出した金属をイオン化して架橋を破壊したりすることで抵抗値を変化させるもの（ＣＢＲＡＭ：Conductive Bridging RAM）、電圧あるいは電流印加により抵抗値が変化するもの（ＲｅＲＡＭ）（電極界面に存在する電荷トラップにトラップされた電荷の存在の有無により抵抗変化が起きるものと、酸素欠損等に起因する伝導パスの存在の有無により抵抗変化が起きるものとに大別される）等を用いることができる。
【００３２】
ユニポーラ型のＲｅＲＡＭの場合、メモリセルＭＣに対するデータの書き込みは、可変抵抗素子ＶＲに、例えば、３．５Ｖ（ダイオードＤｉの電圧降下分を含めると実際には４．５Ｖ程度）の電圧、１０ｎＡ程度の電流を１０ｎｓ−１００ｎｓ程度の時間印加する。これによって、可変抵抗素子ＶＲが高抵抗状態から低抵抗状態へと変化する。以下、この可変抵抗素子ＶＲを高抵抗状態から低抵抗状態へ変化させる動作をセット動作という。
【００３３】
セット動作後の低抵抗状態の可変抵抗素子ＶＲに、例えば、０．８Ｖ（ダイオードＤｉの電圧降下分を含めると実際には１．８Ｖ程度）の電圧、１μＡ−１０μＡ程度の電流を５００ｎｓ−２μｓ程度の時間印加する。これによって、可変抵抗素子ＶＲが低抵抗状態から高抵抗状態へと変化する。以下、この可変抵抗素子ＶＲを低抵抗状態から高抵抗状態へ変化させる動作をリセット動作という。
【００３４】
図４は、図３のようなメモリセルアレイに対するセット／リセット動作時の動作波形を示す図である。
【００３５】
通常、全てのワード線ＷＬ及びビット線ＢＬは、“Ｌ”（０Ｖ）となっている。ここで、選択ビット線ＢＬに対し、セット／リセット動作に必要な電圧Ｖｓｅｔ／Ｖｒｅｓｅｔを印加し、非選択ワード線ＷＬに電圧Ｖｓｅｔ／Ｖｒｅｓｅｔよりも高い電圧ＶｕｓｅｌＷＬを印加する。この場合、選択ワード線ＷＬ及び選択ビット線ＢＬ間に接続された選択メモリセルＭＣのダイオードＤｉには順方向バイアスがかかり、可変抵抗素子ＶＲの抵抗状態は、低抵抗状態あるいは高抵抗状態に遷移する。一方、非選択メモリセルＭＣのダイオードＤｉには逆方向バイアスがかかり、可変抵抗素子ＶＲの抵抗状態は遷移しない。その結果、選択メモリセルＭＣだけにデータを書き込むことが可能となる。
【００３６】
図５は、セット動作時のワード線ＷＬ及びビット線ＢＬの選択／非選択状態と、そのワード線ＷＬ及びビット線ＢＬの交差部に接続されたメモリセルＭＣに印加されるバイアス電圧と、対象となるメモリセルＭＣ数の関係を表している。この図は、ワード線ＷＬ及びビット線ＢＬが各１０２４本、メモリセルＭＣ数が１０２４×１０２４＝１Ｍと仮定したものである。図５から分かるように、非選択ワード線ＷＬ及び非選択ビット線ＢＬに接続されたメモリセルＭＣには、上記の通り、逆方向バイアス（０−ＶｕｓｅｌＷＬ）が印加されており、その対象メモリセルＭＣ数は、１Ｍ−（１Ｋ＋１０２３）となる。つまり、１個の選択メモリセルＭＣに対するデータ書き込みを実行したい場合、バンク内の大多数の非選択メモリセルＭＣに対して逆方向バイアスを印加する必要があり、逆バイアスリークが消費電流増大をもたらす。したがって、これを抑制することで、不揮発性メモリの低消費電力化を図ることができる。
【００３７】
次に、本実施形態におけるページ動作を説明するが、その前に、比較例としてＮＡＮＤフラッシュメモリの書き込み／消去動作について説明する。
【００３８】
図３２は、ＮＡＮＤフラッシュメモリにおける書き込み動作を説明する図である。ＮＡＮＤフラッシュメモリの書き込み動作はページ単位で行われる。
【００３９】
先ず、図３２（１）において、外部から与えられた入力データは書き込みデータとしてキャッシュレジスタ７８２に保持される。キャッシュレジスタ７８２は、少なくともページ長分の記憶領域があり、１ページ分の書き込みデータを保持することができる。
【００４０】
続いて、図３２（２）において、キャッシュレジスタ７８２に保持されている１ページ分の書き込みデータがデータレジスタ７８１にコピーされる。
【００４１】
続いて、図３２（３）において、データレジスタ７８１にコピーされた１ページ分の書き込みデータがメモリセルアレイ７０１の所定の選択ページに対し一括にプログラムされる。
【００４２】
続いて、図３２（４）において、選択ページにプログラムされたデータとデータレジスタ７８１に保持されていた元データとの比較によってベリファイが実行される。ここで、フェールビット数が許容範囲内であった場合、ページ書き込み動作が完了する。一方、フェールビット数が許容範囲外であれば、上記、図３２（３）及び（４）に示す処理が、フェールビット数が許容範囲内になるまで繰り返される。
【００４３】
一方、消去動作については、複数のページ、例えば、３２ページからなるブロック単位で行われる。
【００４４】
図３３（１）において、メモリセルアレイ７０１の所定の選択ブロックが一括に消去された後、図３３（２）において、この選択ブロックとデータレジスタとの比較によってベリファイが実行される。以降、選択ブロックが消去されるまで図３３（１）及び（２）の処理が繰り返される。
【００４５】
図６は、本実施形態に係る不揮発性メモリにおけるページ書き込み動作を説明する図である。
【００４６】
先ず、図６（１）において、外部から与えられた入力データが書き込みデータとしてキャッシュレジスタ１８２に保持される。
【００４７】
続いて、図６（２）において、キャッシュレジスタ１８２に保持されている書き込みデータがデータレジスタ１８１にコピーされる。
【００４８】
続いて、図６（３）〜（４）にかけて、データレジスタ１８１に保持されているデータはいくつかの書き込み単位分のデータに分割され、書き込み単位毎にプログラムされる。例えば、１ページが２ｋバイト、書き込み単位が１２８バイトの場合、最大で１６回繰り返される。以下、書き込み単位に対するプログラム動作又はベリファイ動作１回を“１サイクル”と呼ぶ。
【００４９】
続いて、図６（５）〜（６）にかけて、プログラム動作と同様、書き込み単位毎にベリファイが実行される。ここで、１ページ分のベリファイが実行された後、フェールビット数が許容範囲以内であれば、ページ書き込み動作が完了する。一方、フェールビット数が許容範囲外であれば、上記、図６（３）〜（６）に示す処理が、フェールビット数が許容範囲内になるまで繰り返される。
【００５０】
ページ消去動作については、上記ページ書き込み動作と同様であるため、説明を省略する。
【００５１】
次に、図６（３）〜（６）のページ書き込み動作について、比較例となるページ書き込み動作とともに詳述する。
【００５２】
図７及び図３４は、本実施形態及び比較例における各ステップのプログラム動作及びベリファイ動作を説明する図である。図中の点線による四角は書き込み単位であり、斜線が施してある四角は、データ書き込みが完了した書き込み単位を表し、斜線が施されていない四角はフェールビットの存在などによりデータ書き込みが完了していない書き込み単位を表している。また、図は、１６個の書き込み単位＜０＞〜＜１５＞からなるページに対するページ書き込み動作の場合である。
【００５３】
比較例の場合、図３４（１）〜（３）のとおり、データ書き込みが完了しているか否かに関わらず、全ての書き込み単位に対するシーケンシャルにプログラム動作が実行され、その後、全ての書き込み単位に対するシーケンシャルなベリファイ動作が実行される。したがって、プログラム動作及びベリファイ動作合わせて１ステップあたり３２サイクル要し、３ステップの合計では９６サイクル要することになる。
【００５４】
一方、本実施形態の場合、図７（１）に示す１ステップ目では、比較例と同様に全ての書き込み単位に対するシーケンシャルなプログラム動作が実行され、その後、全ての書き込み単位に対するシーケンシャルなベリファイ動作が実行される。１ステップ目のベリファイでは、書き込み単位＜１＞、＜２＞等、９個の書き込み単位がベリファイをパスしたものとする。このステップは、３２サイクルの処理時間を要する。
【００５５】
続いて、図７（２）に示す２ステップ目では、１ステップ目でベリファイをパスした書き込み単位＜１＞、＜２＞等がスキップされながら、プログラム動作とベリファイ動作が実行される。２ステップ目のベリファイでは、新たに書き込み単位＜４＞、＜７＞等、５個の書き込み単位がベリファイをパスしたものとする。このステップは、１４サイクルの処理時間を要する。
【００５６】
続いて、図７（３）に示す３ステップ目では、２ステップ目まででベリファイをパスした書き込み単位＜１＞、＜２＞等がスキップされながら、プログラム動作とベリファイ動作が実行される。３ステップ目終了時点で、全ての書き込み単位がベリファイをパスしたものとする。このステップは、４サイクルの処理時間を要する。
【００５７】
以上、本実施形態の場合、１〜３ステップを合計５０サイクルで処理することができ、比較例の場合と比べ、処理を高速化することができる。また、これに伴い低消費電力を実現することができる。
【００５８】
次に、図７のページ書き込み動作を実現する不揮発性メモリの内部構成例について説明する。
【００５９】
図８は、本実施形態に係る不揮発性メモリのアドレスバッファ１４０及びページレジスタ１８０と複数のバンクからなるメモリコア１００との信号接続関係を示す図である。ここで、メモリコア１００は、１６個のバンクを有するものとする。また、１ページは、５１２バイトから成り、書き込み単位は、各バンク１バイトずつの合計１６バイトとする。したがって、１ステップは、プログラム動作及びベリファイ動作合わせて最大６４サイクルで処理される。
【００６０】
アドレスバッファ１４０は、ページアドレスＰａｇｅＡｄｄと、１ページ内のカラムアドレスＢｙｔｅＡｄｄ［８：０］の各信号をメモリコア１００の各バンクに対して共通に送信する。
【００６１】
ここで、カラムアドレスＢｙｔｅＡｄｄ［８：０］は、図９に示すとおり、書き込み単位を指定する第１のアドレス部分ＢｙｔｅＡｄｄ［８：４］とバンクを指定する第２のアドレス部分ＢｙｔｅＡｄｄ［３：０］で構成される。
【００６２】
ページレジスタ１８０は、入出力ピン側に接続された内部双方向データバスＭＤＩＯ［７：０］を介して入力バッファ１２０及び出力バッファ１６０とのデータの入出力を行う。また、ページレジスタ１８０は、メモリコア１００側に接続された共通データバスＧＤＩＯ［７：０］を介して各バンクとのデータの入出力を行う。
【００６３】
図１０は、各バンクの内部構成例を示した図である。
【００６４】
アドレスバッファ１４０から送信されたカラムアドレスＢｙｔｅＡｄｄ［８：０］は、必要に応じてバッファ回路１０３を経た後（図１０ではバッファが２個挿入されている）、ローカルカラムアドレスＬｏｃａｌＢｙｔｅＡｄｄ［８：０］としてカラムゲート及びセンスアンプ１０２に送信される。また、カラムアドレスＢｙｔｅＡｄｄ［８：０］のうち、バンクを指定する第２のアドレス部分に相当するＬｏｃａｌＢｙｔｅＡｄｄ［３：０］は、バンクアドレスデコーダ１０６に送信される。
【００６５】
バンクアドレスデコーダ１０６は、カラムアドレスＢｙｔｅＡｄｄ［３：０］の他、アレイ制御部１９０ａから送信された書き込み許可信号ＣＯＲＥＷＥを受けて、この書き込み許可信号ＣＯＲＥＷＥが活性化されており、かつ、第２のアドレス部分に相当するローカルカラムアドレスＬｏｃａｌＢｙｔｅＡｄｄ［３：０］が当該バンクを指定するものであることを条件に、ローカルデータラッチ１０４に対して、データラッチのタイミングを通知する。
【００６６】
この通知を受けたローカルデータラッチ１０４は、このタイミングで、共通データバスＧＤＩＯ［７：０］にある書き込みデータをラッチした後、ローカル書き込みデータＬｏｃａｌＷｒｉｔｅＤａｔａ［７：０］としてカラムゲート及びセンスアンプ１０２に送信する。
【００６７】
最終的に、ローカルカラムアドレスＬｏｃａｌＢｙｔｅＡｄｄ［８：０］及びローカル書き込みデータＬｏｃａｌＷｒｉｔｅＤａｔａ［７：０］を受けたカラムゲート及びセンスアンプ１０２は、これら信号に基づいて、所定のビット線ＢＬを選択するとともに、これ以外の非選択ビット線ＢＬに対して逆方向のバイアス電圧を供給する。
【００６８】
次に、図１１を用いてページ書き込み動作の手順を説明する。
【００６９】
先ず、Ｓ１０１において、書き込み単位毎に用意された図示されないパス記憶ラッチを初期化する。ここで、パス記憶ラッチは、各書き込み単位がベリファイをパスしたか否かを記憶するフラグである。
【００７０】
続いて、Ｓ１０２において、カラムアドレスＢｙｔｅＡｄｄを０に初期化する。
【００７１】
続いて、Ｓ１０３において、カラムアドレスＢｙｔｅＡｄｄで指定された書き込み単位（以下、“対象書き込み単位”と呼ぶ）について、ベリファイをパスしているかを判定する。ここで、ベリファイをパスしている場合、後に説明するＳ１０４及びＳ１０５の処理をスキップする。
【００７２】
続いて、Ｓ１０４において、対象書き込み単位に対する書き込みデータをページレジスタ１８０から各バンクに向けて送信する。
【００７３】
続いて、Ｓ１０５において、バンク毎に、Ｓ１０４で送信された書き込みデータをプログラムする。
【００７４】
続いて、Ｓ１０６において、対象書き込み単位がページ内の最後の書き込み単位かを判断する。最後の書き込み単位でない場合、Ｓ１０７において、次の書き込み単位を対象書き込み単位にするため現在のカラムアドレスＢｙｔｅＡｄｄに１６（書き込み単位長分）加算した後、Ｓ１０３に遷移する。一方、最後の書き込み単位であった場合、Ｓ１０８に遷移する。
【００７５】
続いて、Ｓ１０８において、カラムアドレスＢｙｔｅＡｄｄを０に初期化する。
【００７６】
続いて、Ｓ１０９において、対象書き込み単位について、ベリファイをパスしているかを判定する。ここで、ベリファイをパスしている場合、後に説明するＳ１１０〜Ｓ１１３の処理をスキップする。
【００７７】
続いて、Ｓ１１０において、対象書き込み単位に対するベリファイ動作を実行し、Ｓ１１１において、ベリファイ結果をページレジスタ１８０に送信する。
【００７８】
続いて、Ｓ１１２において、ベリファイの結果を判定し、パスしている場合には、Ｓ１１３において、パス記憶ラッチをセットしておく。
【００７９】
続いて、Ｓ１１４において、対象書き込み単位がページ内の最後の書き込み単位かを判定する。最後の書き込み単位でない場合、Ｓ１１５において、次の書き込み単位を対象書き込み単位にするため現在のカラムアドレスＢｙｔｅＡｄｄに１６（書き込み単位長分）加算した後、Ｓ１０９に遷移する。一方、最後の書き込み単位であった場合、Ｓ１１６に遷移する。
【００８０】
続いて、Ｓ１１６において、全てのパス記憶ラッチがセットされているかを判定する。ここで、全てのパス記憶ラッチがセットされている場合、つまり、全ての書き込み単位がベリファイをパスしている場合、ページ書き込みが正常終了（Ｐａｓs）となる。一方、いずれかのパス記憶ラッチがリセットのままであった場合、つまり、いずれかの書き込み単位がまだベリファイをパスしていない場合、Ｓ１１７に遷移する。
【００８１】
続いて、Ｓ１１７において、最大ステップ数に達したかを判定する。最大ステップ数は、ページ書き込みするための許容時間や、データ書き込みによって生じるメモリセルＭＣのストレスなどを勘案して予め設定しておいた数である。ここで、まだ最大ステップ数に達していない場合、Ｓ１０２に遷移する。一方、最大ステップ数に達した場合、ページ書き込みが失敗したものとして終了する（Ｆａｉｌ）。
【００８２】
［別の手順によるページ書き込み動作］
次に、図１１とは別の手順によってページ書き込み動作する例について説明する。
【００８３】
図１１の場合、全ての書き込み単位に対してシーケンシャルにプログラム動作を実行し、その後、全ての書き込み単位に対してシーケンシャルにベリファイ動作を実行した。
【００８４】
これに対し、図１２に示す例では、書き込み単位毎にプログラム動作及びベリファイ動作を連続して実行し、これをページ内の最後の書き込み単位まで繰り返す。
【００８５】
先ず、Ｓ１５１において、書き込み単位毎に用意されたパス記憶ラッチを初期化する。
【００８６】
続いて、Ｓ１５２において、カラムアドレスＢｙｔｅＡｄｄを０に初期化する。
【００８７】
続いて、Ｓ１５３において、対象書き込み単位について、ベリファイをパスしているかを判定する。ここで、ベリファイをパスしている場合、後に説明するＳ１５４〜Ｓ１６０の処理をスキップする。
【００８８】
続いて、Ｓ１５４において、対象書き込み単位に対する書き込みデータをページレジスタ１８０から各バンクに向けて送信する。
【００８９】
続いて、Ｓ１５５において、対象書き込み単位に対するプログラム動作を実行する。
【００９０】
続いて、Ｓ１５６において、対象書き込み単位に対するベリファイ動作を実行し、Ｓ１５７において、ベリファイ結果をページレジスタ１８０に送信する。
【００９１】
続いて、Ｓ１５８において、ベリファイの結果を判定し、パスしている場合には、Ｓ１５９において、パス記憶ラッチをセットしておく。
【００９２】
続いて、Ｓ１６０において、対象書き込み単位がページ内の最後の書き込み単位かを判定する。最後の書き込み単位でない場合、Ｓ１６１において、次の書き込み単位を対象書き込み単位にするため現在のカラムアドレスＢｙｔｅＡｄｄに１６（書き込み単位長分）加算した後、Ｓ１５３に遷移する。一方、最後の書き込み単位であった場合、Ｓ１６２に遷移する。
【００９３】
続いて、Ｓ１６２において、全てのパス記憶ラッチがセットされているかを判定する。ここで、全てのパス記憶ラッチがセットされている場合、つまり、全ての書き込み単位がベリファイをパスしている場合、ページ書き込みが正常終了（Ｐａｓs）となる。一方、いずれかのパス記憶ラッチがリセットのままであった場合、つまり、いずれかの書き込み単位がまだベリファイをパスしていない場合、Ｓ１６３に遷移する。
【００９４】
続いて、Ｓ１６３において、最大ステップ数に達したかを判定する。ここで、まだ最大ステップ数に達していない場合、Ｓ１５２に遷移する。一方、最大ステップ数に達した場合、ページ書き込みが失敗したものとして終了する（Ｆａｉｌ）。
【００９５】
以上、本実施形態によれば、図１１及び図１２のページ書き込み動作いずれの場合であっても、ベリファイをパスした書き込み単位については、次ステップにおけるプログラム動作及びベリファイ動作がスキップされるため、ページ書き込み動作に要する総サイクル数を削減することができる。その結果、ページ書き込み動作の処理速度を向上させることができ、消費電力も低減することができる。
【００９６】
［第２の実施形態］
次に、本発明の第２の実施形態に係る不揮発性メモリにおけるページ書き込み動作について、比較例とともに説明する。
【００９７】
図３５は、比較例におけるページ書き込み動作を説明する図である。ここで、書き込みデータのうち、斜線が施された書き込みデータについては、書き込みビットが存在することを表す。斜線が施されていない書き込みデータについては、書き込みビットが存在しないことを表す（以下、“ブランクデータ”と呼ぶ）。また、斜線が施されたバンクは、データ書き込み時にバイアス電圧が供給されるバンクを表している。なお、書き込み単位長にあたる１６バイトのデータは、メモリコアが備える１６のバンクにそれぞれ１バイトずつ分散されているものとする。
【００９８】
図３５に示す比較例の場合、書き込みデータがブランクデータであるか否かに関わらず、全てのバンクに対してバイアス電圧が供給される。この場合、データ書き込みの必要がないバンクにおいても、非選択メモリセルに逆方向バイアスがかかり、その分余計なリーク電流が生じることになる。
【００９９】
一方、図１３に示す本実施形態の場合、比較例と異なり、書き込みビットが存在するバンクにのみバイアス電圧が供給され、書き込みビットが存在しないバンクにはバイアス電圧が供給されない。この場合、書き込みデータがブランクデータであるバンクについては、非選択メモリセルにおけるリーク電流が生じないため、比較例の場合に比べて、消費電力の低減を図ることができる。
【０１００】
次に、図１３に示すページ書き込み動作を実現する不揮発性メモリの内部構成について説明する。
【０１０１】
図１４は、本実施形態におけるアドレスバッファ１４０及びページレジスタ２８０と複数のバンクからなるメモリコア２００との信号接続関係を示す図である。
【０１０２】
アドレスバッファ１４０は、メモリコア２００の各バンクに対し、ページアドレスＰａｇｅＡｄｄ及びカラムアドレスＢｙｔeＡｄｄ［８：０］を共通に送信する。また、ページレジスタ２８０は、内部双方向データバスＭＤＩＯ［７：０］を介して送信／受信するデータを、共通データバスＧＤＩＯ［７：０］を介してメモリコア２００の各バンクに受信／送信する。さらに、データ検査手段であるページレジスタ２８０は、メモリコア２００の各バンクに対して、バイアス電圧抑制信号ＩＮＨＩＢＩＴを送信する。このバイアス電圧抑制信号ＩＮＨＩＢＩＴが活性化された場合、対応するバンクへのバイアス電圧の供給が抑制される。
【０１０３】
図１５は、バイアス電圧抑制信号ＩＮＨＩＢＩＴを生成するページレジス２８０の内部構成例を示す図である。
【０１０４】
ページレジスタ２８０は、１ビット毎に、ビットレジスタ２８２を備える。各ビットレジスタ２８２は、データを保持するフリップフロップ２８２ｃを備える。また、内部双方向データバスＭＤＩＯ［７：０］を介して送信された書き込みデータをフリップフロップ２８２ｃに転送するゲーテッドインバータ２８２ｂ、このゲーテッドインバータ２８２ｂを制御する論理ゲート２８２ａを備える。ゲーテッドインバータ２８２ｂは、ビットレジスタ２８２が選択され、かつ、入力許可信号ＩＮＥＮが活性化されたことを条件に、論理ゲート２８２ａによって活性化される。ここで、ページレジスタ２８２の選択は、８つのページレジスタ２８２を１組とする１バイト単位に、カラムアドレスＢｙｔｅＡｄｄ［８：０］を入力とするデコーダ２８１によって行われる。さらに、フリップフロップ２８２ｃが保持する書き込みデータを共通データバスＧＤＩＯ［７：０］に転送するゲーテッドインバータ２８２ｅ、このゲーテッドインバータ２８２ｅを制御する論理ゲート２８２ｄを備える。ゲーテッドインバータ２８２ｅは、ビットレジスタ２８２が選択され、かつ、出力許可信号ＯＵＴＥＮが活性化されたことを条件に、論理ゲート２８２ｄによって活性化される。
【０１０５】
ページレジスタ２８０は、さらに、バイアス電圧抑制信号ＩＮＨＩＢＩＴを生成するために、１バイト分のデータを集約する論理ゲート２８３と、論理ゲート２８３による集約結果を転送する論理ゲート２８４と、この論理ゲート２８４から転送された集約結果を全バイト分集約し、バイアス電圧抑制信号ＩＮＨＩＢＩＴを生成し出力する論理ゲート２８５とを備える。
【０１０６】
論理ゲート２８３は、８入力のＡＮＤゲートであり、各入力は、インバータ２８２ｆを介して、各ビットレジスタ２８２のフリップフロップ２８２ｃに接続されている。
【０１０７】
論理ゲート２８４は、上記論理ゲート２８３の出力と、カラムアドレスＢｙｔｅＡｄｄ［８：０］を入力とするアドレスデコーダ２８４の出力とを入力とするものであり、カラムアドレスＢｙｔｅＡｄｄ［８：０］によって対応するバイトが選択されたことを条件に、論理ゲート２８３の出力信号を論理ゲート２８５に転送する。
【０１０８】
論理ゲート２８５は、バイト毎に設けられた上記論理ゲート２８４の出力を入力とするＯＲゲートであり、各バイトに書き込みビットが存在するか否かを全バイト分集約する役割を持つ。この論理ゲート２８５の出力がバイアス電圧抑制信号ＩＮＨＩＢＩＴであり、この信号は、カラムアドレスＢｙｔｅＡｄｄ［８：０］によって選択されたバイトが、ブランクデータであった場合に活性化される。
【０１０９】
図１６は、図１４に示すバンクの内部構成例を示す図である。
【０１１０】
この内部構成例は、図１０に示す第１の実施形態の場合のバンクの内部構成例に対し、さらに、ローカルデータラッチ２０５を備えた構成例となっている。
【０１１１】
このローカルデータラッチ２０５は、ページレジスタ２８０から送信されるバイアス電圧抑制信号ＩＮＨＩＢＩＴを受信し、このバイアス電圧抑制信号ＩＮＨＩＢＩＴに応じて、バンクアドレスデコーダ１０６から通知されるタイミングで、各バンクに送信するローカルバイアス電圧抑制信号ＬｏｃａｌＩｎｈｉｂｉｔを活性化させる。
【０１１２】
このローカルバイアス電圧抑制信号ＬｏｃａｌＩｎｈｉｂｉｔを受けたカラムゲート及びセンスアンプ２０２は、ローカルバイアス電圧抑制信号ＬｏｃａｌＩｎｈｉｂｉｔの状態に応じて、活性化されている場合には、ビット線ＢＬへのバイアス電圧供給を停止する。
【０１１３】
図１７は、本実施形態に係る不揮発性メモリにおけるページ書き込み動作時のタイミングチャートである。ここで、斜線部分は、信号が不定であることを示す。
【０１１４】
図１７の例では、カラムアドレスＢｙｔｅＡｄｄ［８：０］に合わせ、書き込みデータが共通データバスＧＤＩＯ［７：０］を介して各バンクに供給される。ここで、ページレジスタ２８０は、ブランクデータが共通データバスＧＤＩＯ［７：０］で送信されている間、バイアス電圧抑制信号ＩＮＨＩＢＩＴを活性化させる。図１７の場合、カラムアドレスＢｙｔｅＡｄｄ［８：０］＝１、２、つまり、バンク１及び２の書き込みデータを送信している間がこれに該当する。
【０１１５】
一方、各バンクのローカルデータラッチ２０５では、書き込み許可信号ＣＯＲＥＷＥの立ち下がりのタイミングで、バイアス電圧抑制信号ＩＮＨＩＢＩＴがラッチされ、バンク毎のローカルバイアス電圧抑制信号ＬｏｃａｌＩｎｈｉｂｉｔが活性化される。これを受けたカラムゲート及びセンスアンプ２０２は、ローカルバイアス電圧抑制信号ＬｏｃａｌＩｎｈｉｂｉｔの状態に応じて、ビット線ＢＬに対するバイアス電圧供給を抑制する。
【０１１６】
［別のバンクの内部構成例によるページ書き込み動作］
次に、別のメモリコア２５０のバンクの内部構成例について図１８を用いて説明する。この内部構成例の場合でも、図１３に示すページ書き込み動作を実現できる。
【０１１７】
メモリコア２５０の各バンクは、図１０に示す第１の実施形態の場合のバンクの内部構成例に対し、さらに、論理ゲート２５５を備えた構成となっている。
【０１１８】
論理ゲート２５５は、ローカルデータラッチ１０４から出力されるローカル書き込みデータ［７：０］を入力とするＡＮＤゲートとなっている。この論理ゲート２５５の出力がローカルバイアス電圧抑制信号ＬｏｃａｌＩｎｈｉｂｉｔとなっており、ローカル書き込みデータ［７：０］がブランクデータであった場合に活性化される。ローカルバイアス電圧抑制信号ＬｏｃａｌＩｎｈｉｂｉｔを受けたカラムゲート及びセンスアンプ２０２は、図１６の場合と同様、ローカルバイアス電圧抑制信号ＬｏｃａｌＩｎｈｉｂｉｔの状態に応じて、ビット線ＢＬに対するバイアス電圧供給を抑制する。
【０１１９】
図１９は、図１８に示す内部構成例を使用した場合のページ書き込み動作時のタイミングチャートである。
【０１２０】
図１８のバンクの内部構成の場合、図１９中の矢印で示すように、ローカルデータラッチ１０４から送信されるローカル書き込みデータＬｏｃａｌＷｒｉｔｅＤａｔａ［７：０］の変化を受けてローカルバイアス電圧抑制信号ＬｏｃａｌＩｎｈｉｂｉｔが変化する。例えば、バンク１及び２内のローカル書き込みデータＬｏｃａｌＷｒｉｔｅＤａｔａ［７：０］がＦＦｈ、つまりブランクデータであった場合、ローカルバイアス電圧抑制信号ＬｏｃａｌＩｎｈｉｂｉｔが活性化される。
【０１２１】
この図１８の内部構成例によれば、バイアス電圧抑制信号ＩＮＨＩＢＩＴを生成する必要がないため、図１５、図１６の場合に比べ、内部構成を簡略化することができる。
【０１２２】
以上、本実施形態によれば、図１４〜１７、あるいは図１８〜１９のいずれの実施例においても、書き込みデータがブランクデータであるバンクについては、バイアス電圧の供給を抑制することができるため、その分だけ、非選択メモリセルで生じる電流リークを減少させることができる。したがって、低消費電力の不揮発性メモリを提供することができる。
【０１２３】
［第３の実施形態］
第２の実施形態では、サイクル毎に、各バンクの書き込みデータがブランクデータか否かを判定し、バイアス電圧の供給／停止が制御されていた。しかし、この場合、制御が煩雑になることに加え、例えば、前サイクルでバイアス電圧の供給を停止させ、次サイクルでバイアス電圧の供給を再開させるような場合、バンクを再活性化させるための待ち時間が必要になる。その結果、ページ書き込み動作の処理速度が遅くなる可能性がある。
【０１２４】
そこで、本実施形態では、バンク毎に、全サイクルにおける書き込みビットの存否を判断し、書き込みビットが存在しなくなった時点でそれ以後のサイクルにおけるバイアス電圧の供給を停止させるものである。
【０１２５】
図２０Ａ及び図２０Ｂは、本実施形態におけるページ書き込み動作を説明する図である。図は、Ａ〜Ｃの３回のサイクルでページ書き込み動作を行う場合である。図２０Ａの四角は、書き込み単位であり、斜線が施されている四角は、書き込みビットが存在する書き込み単位を表している。また、図２０Ｂの斜線が施されているバンクは、バイアス電圧が供給されるバンクを表している。
【０１２６】
本実施形態の場合、バンクｉの各サイクルにおける書き込みデータをＡ＜ｉ＞〜Ｃ＜ｉ＞とすると、各サイクルにおいて、これらデータの論理積を取ることで、Ａ＜ｉ＞〜Ｃ＜ｉ＞の全てがブランクデータとなるまで、バイアス電圧を供給される。
【０１２７】
例えば、バンク０の場合、Ａサイクルにおける書き込みデータ以外はブランクデータであるため、Ｂサイクル以後におけるバイアス電圧の供給を停止される。一方、バンク１４の場合、Ｃサイクルにおける書き込みデータがブランクデータでないため、Ｃサイクル終了までの全サイクルについて、書き込みデータがブランクデータであるか否かに関わらずバイアス電圧が供給される。
【０１２８】
図２１は、図２０Ａ及びＢに示すページ書き込み動作を実現するページレジスタ４８０の内部構成例であり、バンクに対するバイアス電圧の供給／停止を制御するバイアス電圧抑制信号ＩＮＨＩＢＩＴを生成するものである。
【０１２９】
本実施形態におけるデータ検査手段であるページレジスタ４８０は、アドレスデコーダ４８６及び論理ゲート４８５が異なる点を除いて、図１５に示す第２の実施形態におけるページレジスタ２８０と同様の構成となっている。
【０１３０】
本実施形態におけるアドレスデコーダ４８６は、カラムアドレスＢｙｔｅＡｄｄ［３：０］のみを入力としている。したがって、カラムアドレスＢｙｔｅＡｄｄ［３：０］で指定されたバンクに割り当てられている全ての書き込みデータを論理ゲート４８５に集約させることができる。また、論理ゲート４８５は、第２の実施形態における論理ゲート２８５とは違いＡＮＤゲートとなっている。この場合、全バイトがブランクデータにならない限り、バイアス電圧抑制信号ＩＮＨＩＢＩＴは活性化されない。その結果、ページ長分のデータのうち、バンクに割り当てられた書き込みデータに書き込みビットが存在する限り、バイアス電圧の供給がされることになる。
【０１３１】
なお、ページレジスタ４８０以外の内部構成については、第２の実施形態と同様であるので、説明を省略する。
【０１３２】
本実施形態によれば、書き込みビットがなくなるまで、各バンクにバイアス電圧が供給されるため、第２の実施形態に比べ、平均消費電力は大きくなるものの、図３４に示す比較例と比べれば１バンクあたりの平均消費電力を低減することができる。また、第２の実施形態のように、バンクを再活性化させる必要がないため、制御を簡略化することができ、再活性化に伴う処理時間を省略でき、高速な動作を実現することができる。
【０１３３】
［第４の実施形態］
次に、本発明の第４の実施形態に係る不揮発性メモリにおけるページ書き込み動作について、比較例とともに説明する。
【０１３４】
図３６は、比較例におけるページ書き込み動作を説明する図である。図３６は、サイクルと書き込みデータ及びバイアス電圧の関係をバンク毎に表したものである。上段は、書き込みデータであり、斜線は書き込みビットが存在することを意味する。一方、下段は、そのバンクに供給されるバイアス電圧であり、斜線はバイアス電圧が供給されていることを意味する。
【０１３５】
比較例の場合、書き込みデータがブランクデータか否かに関わらず、選択ページに関係する全てのバンクにバイアス電圧が供給される。したがって、例えば、バンク０の場合、時刻ｔ２、ｔ５では、書き込みデータがブランクデータであるにも関わらず、バイアス電圧が供給されることになる。
【０１３６】
そこで、本実施形態では、図２２に示すとおり、書き込みデータがブランクデータであった場合、次サイクルにおける書き込みデータを前倒しで書き込ませる。こうすることで、例えば、バンク０において、時刻ｔ０〜ｔ７の８回のサイクルのうち、２回のサイクル（比較例の場合ｔ２、ｔ５におけるサイクル）で書き込みデータがブランクデータであった場合、時刻ｔ５のサイクル終了時点で、すでにバンク０のページ書き込みが完了しているため、時刻ｔ６以後は、バンク０に対するバイアス電圧供給を停止させることができる。この場合、ページ書き込み動作に要するサイクル数は、各バンクが要するサイクル数のうちの最大数（図２２の場合、バンク１４の８回）となるものの、ページ書き込み動作が完了したバンクについては、順次、バイアス電圧の供給が停止されるため、全バンクの平均消費電力を低減することができる。
【０１３７】
次に、図２２に示すページ書き込み動作を実現する不揮発性メモリの内部構成について説明する。
【０１３８】
図２３は、本実施形態におけるアドレスバッファ１４０及びページレジスタ５８０と複数のバンクからなるメモリコア５００との信号接続関係を示す図である。
【０１３９】
アドレスバッファ１４０は、ページアドレスＰａｇｅＡｄｄと、１ページ内のカラムアドレスＢｙｔｅＡｄｄ［８：０］の各信号を出力する。このうち、ページアドレスＰａｇｅＡｄｄについては、メモリコア５００の各バンクに共通に送信される。一方、カラムアドレスＢｙｔｅＡｄｄ［８：０］については、書き込み単位を指定する第１のアドレスＢｙｔｅＡｄｄ［８：４］とバンクを指定する第２のアドレスＢｙｔｅＡｄｄ［３：０］に分割された上で、第１のアドレスＢｙｔｅＡｄｄ［８：４］については、ページレジスタ５８０を経由し、第２のアドレスＢｙｔｅＡｄｄ［３：０］については直接、メモリコア１００の各バンクに共通に送信される。
【０１４０】
ページレジスタ５８０は、入出力ピン側に接続された内部双方向データバスＭＤＩＯ［７：０］を介して入力バッファ１２０及び出力バッファ１６０とのデータの入出力を行う。また、ページレジスタ５８０は、メモリコア１００側に接続された共通データバスＧＤＩＯ［７：０］を介して各バンクとのデータの入出力を行う。
【０１４１】
次に、メモリコア５００のバンクの内部構成例について図２４を参照して説明する。
【０１４２】
アドレスバッファ１４０から送信されたカラムアドレスＢｙｔｅＡｄｄ［３：０］は、必要に応じて挿入されるバッファ回路１０３を経た後、ローカルカラムアドレスＬｏｃａｌＢｙｔｅＡｄｄ［３：０］としてカラムゲート及びセンスアンプ５０２に送信されるとともに、バンクアドレスデコーダ１０６にも送信される。
【０１４３】
バンクアドレスデコーダ１０６は、第２のアドレス部分に相当するＬｏｃａｌＢｙｔｅＡｄｄ［３：０］の他、アレイ制御部１９０ａから送信された書き込み許可信号ＣＯＲＥＷＥを受け、この書き込み許可信号ＣＯＲＥＷＥが活性化されており、かつ、カラムアドレスＢｙｔｅＡｄｄ［３：０］が当該バンクを指定するものであることを条件に、ローカルデータラッチ１０４及びローカルアドレスラッチ５０５にラッチのタイミングを通知する。
【０１４４】
この通知を受けたローカルデータラッチ１０４は、このタイミングで、共通データバスＧＤＩＯ［７：０］にある書き込みデータをラッチした後、ローカル書き込みデータＬｏｃａｌＷｒｉｔｅＤａｔａ［７：０］としてカラムゲート及びセンスアンプ１０２に送信する。
【０１４５】
同様に、ローカルアドレスラッチ５０５は、バンクアドレスデコーダ１０６から通知されたタイミングで、第１のアドレスＢｙｔｅＡｄｄ［８：４］をラッチした後、ローカルカラムアドレスＬｏｃａｌＢｙｔｅＡｄｄ［８：４］としてカラムゲート及びセンスアンプ１０２に送信する。
【０１４６】
なお、データ書き込み動作の際は、出力許可信号ＣＯＲＥＯＵＴＥＮ及び各バンク内部の読み出し許可信号ＣＯＲＥＲＥは非活性状態が維持されている。これによって、バス制御回路５０７及び５０８の出力が停止され、共通データバスＧＤＩＯ［７：０］及びカラムアドレスＢｙｔｅＡｄｄ［８：４］におけるデータ衝突が回避される。
【０１４７】
カラムゲート及びセンスアンプ５０２は、受信したローカルカラムアドレスＬｏｃａｌＢｙｔｅＡｄｄ［８：０］及びローカル書き込みデータＬｏｃａｌＷｒｉｔｅＤａｔａ［７：０］に基づいて、所定のビット線ＢＬを選択し、それ以外のビット線ＢＬを非選択のバイアス電圧でドライブする。
【０１４８】
次に、図２４に示す回路に与える入力波形例について図２５を用いて説明する。ここで、カラムアドレスの第１のアドレス部分ＢｙｔｅＡｄｄ［８：４］を示すポインタをｋ、第２のアドレス部分ＢｙｔｅＡｄｄ［３：０］を示すポインタをｍとしている。
【０１４９】
ページ書き込み動作に先立って、入力された書き込みデータがページレジスタ５８０から各バンクに送信されると同時に、各データのカラムアドレスアドレスＢｙｔｅＡｄｄ［８：４］が送信される。
【０１５０】
ページレジスタ５８０が保持する書き込みデータは、ｋ＝０、ｍ＝０から順番に各バンクへ送信される。図２４の場合、０番地の書き込みデータは、そのまま送信される。
【０１５１】
続いて、ｋ＝０、ｍ＝１に対する書き込みデータを送信しようとするとき、この書き込みデータがブランクデータであるため、ページレジスタ５８０の内部信号であるブランクデータ信号ＢｌａｎｋＤａｔａが活性化される。ブランクデータ信号ＢｌａｎｋＤａｔａが活性化されている場合、書き込み対象となっているメモリセルのデータを改変する必要がない。ここで、次サイクルで書き込む予定のｋ＝１、ｍ＝１に対する書き込みデータに書き込みビットが存在する場合、このデータを、ｋ＝０、ｍ＝０のデータとともに書き込むことができるため、ページ書き込み動作に要する処理時間を短縮することができる。また、データ書き込み時の非選択メモリセルで生じるリーク電流の削減を図ることもできる。
【０１５２】
具体的には、図２５のように、ｋ＝０、ｍ＝１の書き込みデータＤａｔａ［１］を送信しようとする際に、ブランクデータ信号ＢｌａｎｋＤａｔａが活性化されたことを検知した場合、そのまま書き込みデータＤａｔａ［１］をバンクに送信せず、次サイクルで書くべき書き込みデータＤａｔａ［１７］を送信する。また、これにともない、次サイクルの書き込みデータであることを指示するカラムアドレスＢｙｔｅＡｄｄ［８：４］も送信する。内部では、ブランクデータ信号ＢｌａｎｋＤａｔａの検知後、ｋの値を１６（書き込み単位長分）だけインクリメントして次サイクルの書き込みデータを検査し、ブランクデータでない場合、この書き込みデータを送信する。
【０１５３】
その後、ｋの値を、インクリメントする前の値に戻した上で、ｍをインクリメントして、次のカラムアドレスＢｙｔｅＡｄｄ［８：０］のデータを送信する。
【０１５４】
ｍ＝２の場合は、ｋ＝０、１６のデータＤａｔａ［２］、Ｄａｔa［１８］がブランクデータであるため、ｋ＝３２までインクリメントした上で、ｍ＝２、ｋ＝３２のアドレスに対する書き込みデータＤａｔａ［３４］を送信する。
【０１５５】
以下、他のバンクへの書き込みデータ送信も同様に継続される。
【０１５６】
次に、図２６を参照して、本実施形態におけるページ書き込み動作を説明する。なお、図２６に示すページ書き込み動作は、主にシーケンス制御部１７０、ページレジスタ５８０、アレイ制御部１９０ａ及びページレジスタ制御部１９０ｂによって制御される。
【０１５７】
先ず、Ｓ５０１において、ポインタｋを初期化する。実際にはカラムアドレスＢｙｔｅＡｄｄ［８：４］を初期化する。
【０１５８】
続いて、Ｓ５０２において、ポインタｋの値を別途設けられた図示しない一時保存レジスタｔｍｐにその値を退避させる。この値は、書き込みデータとカラムアドレスの送信が終わるまで保持される。
【０１５９】
続いて、Ｓ５０３において、ポインタｍを初期化する。具体的には、カラムアドレスＢｙｔｅＡｄｄ［３：０］を初期化する。これによってバンク0から書き込みデータの転送が開始される。
【０１６０】
続いて、Ｓ５０４において、２つのポインタｋ及びｍで指示されたアドレスの書き込みデータがブランクデータか否かを判定する。具体的には、ブランクデータ信号ＢｌａｎｋＤａｔａが活性化されているかで判定する。その結果、書き込みビットが存在すれば、後に説明するＳ５０５に遷移し、ブランクデータであれば、Ｓ５０６に遷移する。
【０１６１】
続いて、Ｓ５０５において、ポインタｋ及びｍで指示されたカラムアドレスＢｙｔｅＡｄｄ［８：０］と、このアドレスに対する書き込みデータを送信する。具体的には、書き込み許可信号ＣＯＲＥＷＥをトリガとして、各バンクに配置されたローカルアドレスラッチ５０５及びローカルデータラッチ１０４に保持される。
【０１６２】
続いて、Ｓ５０６において、次サイクルにおける書き込みデータの検査に備え、ポインタｋを１６だけインクリメントさせる。このポインタｋのインクリメントは、ｋの値がページ内のアドレスを超えない範囲で許容される。そのため、Ｓ５０７において、ページ内のアドレスを超えたか否かを判定する。ここで、アドレスがページの範囲内であれば、ポインタｋ及びｍで指定されたアドレスに対する書き込みデータの検査をすべくＳ５０４に遷移する。一方、アドレスがページ範囲外であった場合、つまり、対象となるバンクに対するデータ書き込みが完了している場合には、送信済みの他バンクに対する書き込みデータの書き込みに備え、Ｓ５０８に遷移する。
【０１６３】
続いて、Ｓ５０８において、次のバンクに対する書き込みデータを送信するため、Ｓ５０２で退避させたポインタｋの値を一時退避レジスタｔｍｐから復帰させる。
【０１６４】
続いて、Ｓ５０９において、他のバンクに対する書き込みデータの送信を継続するかを判定するため、最終バンクか否かを判定する。ここで、まだ書き込みデータが転送されていないバンクが存在する場合には、次のバンクのアドレスを指定するため、Ｓ５１０において、ポインタｍをインクリメントした後、Ｓ５０４に遷移する。一方、最終バンク（ｍ＝１５）であった場合、全バンクに対する書き込みデータの送信が完了しているため、Ｓ５１１におけるプログラム動作及びＳ５１４におけるベリファイ動作に遷移する。ここで、Ｓ５１１におけるプログラム動作、Ｓ５１２におけるベリファイ動作は既知の動作手順によって実行する。
【０１６５】
続いて、Ｓ５１３において、ベリファイをパスしたかを判定し、パスしている場合には、ページ書き込み動作が完了する。一方、パスしていない場合には、追加書き込みをするかを判定するためＳ５１４に遷移する。
【０１６６】
最後のポインタｋに達していない場合は、次のポインタｋに関係する書込みを実行すべく、Ｓ５１５に遷移してポインタｋをインクリメントした後、Ｓ５０２に遷移する。一方、最後のポインタｋに達した場合はＳ５１６に遷移する。Ｓ５１６では、ポインタｋを初期化して再度書き込むか否かを判断する。具体的には、図示せぬが、時間や書込みストレス回数等であらかじめ決められた値に達したか否かで判断する。実際には、最後のポインタｋにおいてもなお書込みができないメモリセルがある、もしくは許容数を超える書込み不良ビットがある場合である。再度書き込むと判断された場合は、Ｓ５１０１に遷移して、ポインタｋを初期化し、再度フローを実行する。一方、再度書き込まないと判断された場合は、書込み不良として動作を終了する（Ｆａｉｌ）。
【０１６７】
なお、以上の説明では、便宜的に処理を分けて説明しているが、回路動作上同時並行して実行でき  る場合には、同一時刻で処理しても良い。また、動作上問題がなければ若干の前後処理は許容される。
【０１６８】
次に、ベリファイ動作中の、各バンクからページレジスタ１８０へのデータ転送動作について、図２７及び図２８を参照して説明する。
【０１６９】
図２７は、ベリファイ動作中のタイミングチャートであり、図２８は、送信された読み出しデータに対するベリファイ動作のフローを示す。
【０１７０】
出力許可信号ＣＯＲＥＯＵＴＥＮによって、バス制御回路５０７及び５０８を活性化させるとともに、共通データバスＧＤＩＯ［７：０］におけるデータの衝突を回避するため、入力バッファ１２０及びアドレスバッファ１４０の出力を停止させる。カラムアドレスＢｙｔｅＡｄｄ［３：０］で指定されるバンクから、カラムアドレスＢｙｔｅＡｄｄ［８：４］が出力されると共にベリファイデータが共通データバスＧＤＩＯ［７：０］に出力される。このときの共通データバスＧＤＩＯ［７：０］のデータは、ページレジスタ１８０のカラムアドレスＢｙｔｅＡｄｄ［８：０］で指定された所定位置に保持され、ベリファイ結果並びに次の書き込みデータとして供される。
【０１７１】
図２８は、図２７の動作波形をフローチャートとして記述したものである。
【０１７２】
先ず、Ｓ５５１において、ポインタｍを初期化する。具体的にはカラムアドレスＢｙｔｅＡｄｄ［３：０］を初期化する。
【０１７３】
続いて、Ｓ５５２において、出力許可信号ＣＯＲＥＯＵＴＥＮを活性化させ、各バンクからのベリファイデータの出力と、各バンクが持つカラムアドレスＢｙｔｅＡｄｄ［８：４］の出力を許可する。
【０１７４】
続いて、Ｓ５５３において、Ｓ５５２において出力されたデータを所定のレジスタに取り込む。ここでは、ページレジスタ１８０の所定カラムアドレスＢｙｔｅＡｄｄ［８：０］に格納する動作が含まれる。
【０１７５】
続いて、Ｓ５５４において、全バンクのベリファイデータの転送が完了したかを判定し、完了している場合には、一連の送信動作を終了させる（Ｅｎｄ）。一方、完了していない場合には、Ｓ５５５において、ポインタｍをインクリメントさせた後、Ｓ５５３に遷移する。ここでポインタｍのインクリメントとは、具体的には、カラムアドレスＢｙｔｅＡｄｄ［３：０］のカウントアップを含むものである。
【０１７６】
以上のように本実施形態によれば、書き込みデータがブランクデータであった場合に、前倒しで次サイクルにおける書き込みデータが書き込まれるため、ページ書き込み動作の短縮を図ることができる。また、これにともない消費電力を低減することができる。
【０１７７】
［第５の実施形態］
図２９は、本発明の第５の実施形態に係る不揮発性メモリのメモリコア６００及びページレジスタ６８０を概念的にしめしたものである。
【０１７８】
本実施形態において、ページレジスタ６８０は、少なくとも１バイト以上の異なる２つのキャッシュ、キャッシュ１及びキャッシュ２から構成されている。なお、このキャッシュは、３以上であっても構わない。
【０１７９】
不揮発性メモリにデータを書き込む場合、ページレジスタ６８０のうちキャッシュ２の所定のアドレスに所定の書き込みデータが格納される。
【０１８０】
ページ書き込み動作が開始された後は、キャッシュ１のデータはキャッシュ２にミラーリングされ、データ書き込みに供される。このキャッシュ２はデータ書き込み後のベリファイデータを格納する形態であっても、データ書き込み完了まで書き込みデータを保持する形態であってもよい。
【０１８１】
不揮発性メモリの多くは、ページ書き込み動作させる際、ページ長分のデータを一旦、キャッシュ２に保持し、その後、書き込みが開始される。したがって、間欠的に到着するデータを格納する必要がある場合には、最後の書き込みデータの到着を待ってからデータ書き込みを開始する必要がある。
【０１８２】
本実施形態では、この問題を解消し、ページ書き込み動作の高速化を図るものである。
【０１８３】
図３０は、本実施形態におけるページ書き込み動作のフローチャートである。
【０１８４】
先ず、Ｓ６０１において、キャッシュ１に保持されている書き込みデータをキャッシュ２にコピーする。
【０１８５】
続いて、ウォッチドッグタイマ（以下、“ＷＤＴ”と呼ぶ）を初期化する。これは、複数サイクルによってページ書き込み動作が実行されるため、所定時間を経過したデータ書き込みは書き込み不良として処理したい場合に必要となる。この場合、ＷＤＴをページ書き込み動作のバックグラウンドで動作させ、所定時間を経過してもなお書き込み動作が完了していない場合には、強制的に一連の動作を終了させる。なお、ＷＤＴに代えて、書き込みパルスの印加回数やその他時間と電圧から算出される手段で終了させることもできる。
【０１８６】
続くＳ６０３からＳ６１４については、図２５のＳ５０１からＳ５１２と同様であるため、説明を省略する。
【０１８７】
Ｓ６１３のプログラム動作及びＳ６１４のベリファイ動作に続き、Ｓ６１５において、キャッシュ１に対する書き込みデータの追加があった場合、既にデータ書き込みに供されているキャッシュ２の保持データに対する上書きを実行する。なお、キャッシュ１とキャッシュ２の保持データを論理演算し、書き込みデータの追加があったか否かを判断することもできる。
【０１８８】
続いて、Ｓ６１６において、ページ書き込み動作が完了したか否かを判断する。完了している場合はページ書き込み動作を終了する。一方、完了しておらず追加のページ書き込み動作が必要であると判断された場合には、Ｓ６１７に遷移する。
【０１８９】
続いて、Ｓ６１７において、ポインタｋがページの最後に達していない場合には、再度、ページ書き込み動作を実行するため、Ｓ６１９においてポインタｋをインクリメントした後、Ｓ６０４に戻る。また、最終のポインタkにおいてもなお追加で書き込む必要がある、具体的には、Ｓ６１５において検査した追加の書き込みデータがあった場合には、必要に応じてポインタｋを初期化し、Ｓ６０３に戻る。但し、データ書き込みに伴うストレス印加等を考慮して、バックグラウンドで実行されているＷＤＴがあらかじめ設定した上限に達したことを検知した場合には書き込み不良として処置するのが適当である。この判断はＳ６１８で行われる。
【０１９０】
以上の動作をタスクスケジューリングの観点から図３０と図３６に示す比較例を参照しながら説明する。
【０１９１】
図３１は、本実施形態におけるページ書き込み動作のタスクスケジューリングである。ページ長分（５１２バイト）のデータのうち最初のデータ群ｎ０バイト（ｎ０＜＜５１２）を待って書き込みが開始されている。内部ではこのｎ０バイトのデータ書き込みと並行して同一ページに属する別カラムアドレスのデータ群ｎ１バイトをキャッシュ１に保持することができる。ここで、データ群ｎ１が到着した場合、データ群ｎ０バイトのデータ書き込み後、データ群ｎ１バイトのデータ書き込みを連続して行うことができる。
【０１９２】
一方、図３６に示す本実施形態を適用しなかった場合の比較例の場合、データ群ｎ１バイトの到着を待ってデータ書き込み動作が開始されるため、ページ書き込み動作に要する処理時間が増大する。また、データ群の到着を待つ期間Ｔｗａｉｔ、不揮発性メモリを制御するホストと不揮発性メモリとを接続するバスが占有されるため、利便性が低下する点が問題となる。
【０１９３】
その点、本実施形態によれば、データ書き込みと次のデータを待つ動作を並行しておこなうことができるため、ページ書き込み動作の処理時間短縮を図ることができ、これにともなう消費電力の低減を図ることができる。また、ホストと本実施形態に係る不揮発性メモリとの通信によるバス占有時間を短縮できるため、可用性の高い不揮発性メモリを提供することができる。
【０１９４】
［その他］
以上、本発明を実施形態に沿って説明したが、この発明は実施例
に限定されるものではなく、発明の要旨を逸脱しない範囲でその
実施方法を変更することが可能である。
【符号の説明】
【０１９５】
１００、２００、２５０、４００、５００、６００・・・メモリコア、１０１・・・メモリセルアレイ、１０２、２０２、５０２・・・カラムゲート及びセンスアンプ、１０３・・・バッファ回路、１０４、２０５・・・ローカルデータラッチ、１０６・・・バンクアドレスデコーダ、１１０・・・入力バッファ、１２０・・・入力バッファ、１３０・・・コマンドデコーダ、１４０・・・アドレスバッファ、１５０・・・データバッファ、１６０・・・出力バッファ、１７０・・・シーケンス制御部、１８０、２８０、５８０、６８０・・・ページレジスタ、１８１・・・データレジスタ、１８２・・・キャッシュレジスタ、１９０ａ・・・アレイ制御部、１９０ｂ・・・ページレジスタ制御部、２８２・・・ビットレジスタ、２８６、４８６・・・アドレスデコーダ、５０５・・・ローカルアドレスラッチ、５０６・・・バス出力制御回路、５０７、５０８・・・バス制御回路。
【図１】
2010225228.tif 000003
【図２】
2010225228.tif 000004
【図３】
2010225228.tif 000005
【図４】
2010225228.tif 000006
【図５】
2010225228.tif 000007
【図６】
2010225228.tif 000008
【図７】
2010225228.tif 000009
【図８】
2010225228.tif 000010
【図９】
2010225228.tif 000011
【図１０】
2010225228.tif 000012
【図１１】
2010225228.tif 000013
【図１２】
2010225228.tif 000014
【図１３】
2010225228.tif 000015
【図１４】
2010225228.tif 000016
【図１５】
2010225228.tif 000017
【図１６】
2010225228.tif 000018
【図１７】
2010225228.tif 000019
【図１８】
2010225228.tif 000020
【図１９】
2010225228.tif 000021
【図２０Ａ】
2010225228.tif 000022
【図２０Ｂ】
2010225228.tif 000023
【図２１】
2010225228.tif 000024
【図２２】
2010225228.tif 000025
【図２３】
2010225228.tif 000026
【図２４】
2010225228.tif 000027
【図２５】
2010225228.tif 000028
【図２６】
2010225228.tif 000029
【図２７】
2010225228.tif 000030
【図２８】
2010225228.tif 000031
【図２９】
2010225228.tif 000032
【図３０】
2010225228.tif 000033
【図３１】
2010225228.tif 000034
【図３２】
2010225228.tif 000035
【図３３】
2010225228.tif 000036
【図３４】
2010225228.tif 000037
【図３５】
2010225228.tif 000038
【図３６】
2010225228.tif 000039
【図３７】
2010225228.tif 000040