(57)【要約】【課題】チップ面積の増加を最小限に抑えてパスワードアンロック機能を実現する。【解決手段】外部からの書き込みデータに対してベリファイを行う機能を有する不揮発性半導体記憶装置であって、メモリセルがマトリクス状に配置され、且つパスワードを記憶するパスワード格納領域を有するメモリセルアレイ１と、外部から入力されるデータを受け取る入力バッファ１１と、前記入力バッファ１１に入力された入力パスワード或いは書き込みデータを保持する第１保持回路と、前記ベリファイ動作時に、前記パスワード格納領域からの読み出しパスワード或いは前記メモリセルアレイ１からの読み出しデータを検知するベリファイセンスアンプ４と、前記入力パスワードと前記読み出しパスワードとが一致するか否かを判定し、或いは前記書き込みデータと前記読み出しデータとが一致するか否かを判定する一致判定回路３００とを含む。【選択図】      図１
2005259291.tif 000002
【特許請求の範囲】
【請求項１】
外部からの書き込みデータに対してベリファイを行う機能を有する不揮発性半導体記憶装置であって、
メモリセルがマトリクス状に配置され、且つパスワードを記憶するパスワード格納領域を有するメモリセルアレイと、
外部から入力されるデータを受け取る入力バッファと、
前記入力バッファに入力された入力パスワード或いは書き込みデータを保持する第１保持回路と、
前記ベリファイ動作時に、前記パスワード格納領域からの読み出しパスワード或いは前記メモリセルアレイからの読み出しデータを検知するベリファイセンスアンプと、
前記入力パスワードと前記読み出しパスワードとが一致するか否かを判定し、或いは前記書き込みデータと前記読み出しデータとが一致するか否かを判定する一致判定回路と
を具備することを特徴とする不揮発性半導体記憶装置。
【請求項２】
前記入力パスワードは、複数の入力パスワードからなり、且つ前記入力バッファに順次入力され、
前記一致判定回路は、前記複数の入力パスワードに夫々対応した複数の一致判定回路を有し、且つ前記各入力パスワードと前記各入力パスワードに対応する前記各読み出しパスワードとが一致するか否かを順次判定することを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項３】
前記各一致判定回路は、直前の入力パスワードが一致した場合に判定を行うことを特徴とする請求項２記載の不揮発性半導体記憶装置。
【請求項４】
前記各一致判定回路は、判定結果を保持する第２保持回路をさらに具備することを特徴とする請求項２又は３記載の不揮発性半導体記憶装置。
【請求項５】
外部から入力される第１アドレスを受け取るアドレスバッファと、
前記読み出しパスワードの第２アドレスを生成するアドレスカウンタと、
前記第１アドレスと前記第２アドレスとを選択するアドレス選択回路とをさらに具備し、
前記各一致判定回路は、前記第１アドレスに対応した前記入力パスワードと前記第２アドレスに対応した前記読み出しパスワードとが一致するか否かを判定することを特徴とする請求項２乃至４のいずれかに記載の不揮発性半導体記憶装置。
【請求項６】
前記第１アドレスに基づいて前記複数の一致判定回路のうち１つを選択するアドレスデコーダと、
前記第２アドレスに基づいて前記複数の一致判定回路のうち１つを選択する判定選択回路とをさらに具備し、
前記各一致判定回路は、前記アドレスデコーダと前記判定選択回路とに選択された場合に判定を行うことを特徴とする請求項５記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置に係り、特にデータ保護機能を備えた不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
不揮発性半導体記憶装置は、記憶領域をマイクロコントローラやＣＰＵの命令コードを格納する命令コード格納領域とユーザデータ格納領域とに分けて利用される場合がある。このような装置において、ユーザデータ格納領域はユーザからの要求にしたがってデータの書き込み、消去或いは読み出しのすべての動作が可能な領域である。
【０００３】
また命令コード格納領域は、例えば携帯電話において工場出荷前に命令コードを書き込んだ後はユーザによる改変ができないように書き込み及び消去を禁止するように設定することが一般的である。これにより、ＣＰＵの暴走等により不揮発性半導体記憶装置が予期せぬ動作状態になった場合でも命令コード格納領域は保護され、命令コードの書き換えや消去がなされないようにすることができる。この機能は、通常のフラッシュメモリにおいては書き込み保護、あるいはプロテクトと呼ばれるものである。
【０００４】
このようなプロテクト機能を実現するためには、例えば、命令コード格納領域の情報を不揮発性ＲＯＭに記憶させ、ＣＰＵがこの不揮発性ＲＯＭの情報を参照することにより、命令コード格納領域の書き換え等を禁止している。
【０００５】
ところで、不揮発性ＲＯＭのデータ書き換えについてもＣＰＵの制御するコマンドで行うため、予期せぬＣＰＵ動作によりプロテクトＲＯＭ３１の書き込み或いは消去が行われるのを禁止する手段が必要である。通常工場等で量産される製品においては、不揮発性半導体記憶装置に実装される前の不揮発性ＲＯＭにＲＯＭライタ等を用いてプロテクト情報を書き込み、この段階で命令コード格納領域をプロテクト状態にして読み出し動作のみ可能とする。
【０００６】
このプロテクト情報の書き込みは、例えば不揮発性ＲＯＭが不揮発性半導体記憶装置に実装された時に動作する電源電圧よりも高い電圧（例えば１２Ｖなど）を所定入力ピン（例えばリセット信号／ＲＥＳＥＴ）に与えながら所定コマンドを入力することで実現している。そして、上記方法以外では、不揮発性ＲＯＭの書き換え等が行えないようにしている。
【０００７】
プロテクト情報が書き込まれた不揮発性ＲＯＭは、例えばプリント基板上に半田付けにより実装される。この実装された基板は、通常、不揮発性ＲＯＭの書き込み或いは消去に必要な高電圧を与える手段を有しておらず、電源電圧程度(例えば、３．３Ｖ)の電圧しか各ピンに入力することができない。したがって、基板実装後は高電圧を与えられないということが事実上の不揮発性ＲＯＭの書き換え等を禁止する手段である。
【０００８】
しかしながら、近年携帯電話等の高機能化に伴い、基板実装後のＣＰＵの命令コードの不具合等による不揮発性ＲＯＭのアップデートの必要性が生じる場合がある。また、工場出荷後のソフトウエア改良等による不揮発性ＲＯＭへの再書き込みをするという要求がある。つまり、高電圧を与えることなく不揮発性ＲＯＭの書き込み或いは消去を実行することが必要となる。このためには、工場出荷前にユーザには消去ができないワンタイムプログラム領域に予め書き込んだ複数ビットのパスワードデータと、外部から入力されるパスワードデータとが一致したときのみ不揮発性ＲＯＭの書き込み或いは消去ができるいわゆるパスワードアンロック機能を用いることが考えられる。
【０００９】
このパスワードアンロック機能を実現するためには、ユーザが消去不可能でかつメモリセルアレイ１とは別のワンタイムプログラム領域と、所定コマンドが入力された場合にワンタイムプログラム領域内に予め書き込んでおいたパスワードデータを読み出すための制御回路と、読み出したデータをセンスするセンスアンプと、上記所定コマンドに引き続いて入力される所定ビット数のパスワードデータをチップ内部に記憶するデータレジスタと、読み出したデータと入力されたデータとの一致不一致を判定する判定回路とを不揮発性半導体記憶装置に新たに設けなければならない。これにより、不揮発性半導体記憶装置のチップ面積の増加をもたらすという問題がある。
【００１０】
また、その他の関連技術として、パスワードデータの入力順序及びパスワードデータの一致を検出するためのシフトレジスタ群を新たに設けてパスワードアンロックを行う技術が開示されている（特許文献１参照）。
【特許文献１】特開２００３−１３２６８８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、上記のような事情に鑑みてなされたもので、ベリファイ動作時に用いられる既存の回路を利用してパスワードアンロック機能を実現することができ、且つチップ面積の増加を最小限に抑えることが可能な不揮発性半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために本発明の一視点に係る不揮発性半導体記憶装置は、外部からの書き込みデータに対してベリファイを行う機能を有する不揮発性半導体記憶装置であって、メモリセルがマトリクス状に配置され、且つパスワードを記憶するパスワード格納領域を有するメモリセルアレイと、外部から入力されるデータを受け取る入力バッファと、前記入力バッファに入力された入力パスワード或いは書き込みデータを保持する第１保持回路と、前記ベリファイ動作時に、前記パスワード格納領域からの読み出しパスワード或いは前記メモリセルアレイからの読み出しデータを検知するベリファイセンスアンプと、前記入力パスワードと前記読み出しパスワードとが一致するか否かを判定し、或いは前記書き込みデータと前記読み出しデータとが一致するか否かを判定する一致判定回路とを含む。
【発明の効果】
【００１３】
本発明によれば、ベリファイ動作時に用いられる既存の回路を利用してパスワードアンロック機能を実現することができ、且つチップ面積の増加を最小限に抑えることが可能な不揮発性半導体記憶装置を提供することができる。
【発明を実施するための最良の形態】
【００１４】
本発明者等は、本発明の開発の過程において、以下に示すような不揮発性半導体記憶装置を開発した。
【００１５】
図１８は、プロテクト機能を備えた不揮発性半導体記憶装置の一例を示すブロック図である。この不揮発性半導体記憶装置は、メモリセルアレイ１と、ロウデコーダ２と、カラムゲート３と、ベリファイ用センスアンプ４と、リード用センスアンプ５と、Ｉ／Ｏバッファ１１と、入力信号バッファ１２，１３と、アドレスバッファ１４と、コマンドデコーダ２１と、タイマ２２と、ステートマシン２３と、アドレス制御回路２４と、データ制御回路２５と、プロテクトＲＯＭ３１と、内部電源制御回路４１とにより構成されている。
【００１６】
この不揮発性半導体記憶装置は、外部から入力信号バッファ１２に入力されるチップイネーブル信号／ＣＥ、アウトプットイネーブル信号／ＯＥ及びライトイネーブル信号／ＷＥの制御信号の組み合わせで書き込み、消去或いは読み出し動作を実行する。
【００１７】
また上記装置は、複数アドレス分のデータが連続して入力された場合、内部で自動的に複数アドレス分のデータを書き込むことのできる動作、すなわちページ書き込み動作(ページ一括書き込み或いはページプログラムともいう)を行う。これは、データ制御回路２５が備えるデータレジスタに複数個の書き込みデータを保持し、この書き込みデータを装置内部で自動的にメモリセルアレイ１に書き込む。
【００１８】
Ｉ／Ｏバッファ１１は、外部から入力されたデータを受け取り、或いはデータバス線DINにデータを出力する。入力信号バッファ１２は、外部から入力されたチップイネーブル信号／ＣＥ、アウトプットイネーブル信号／ＯＥ及びライトイネーブル信号／ＷＥ（／は、ローアクティブであることを示している）を受け取る。入力信号バッファ１３は、外部から入力されたリセット信号／ＲＥＳＥＴを受け取る。アドレスバッファ１４は、外部から入力されたアドレスを受け取る。
【００１９】
コマンドデコーダ２１は、外部から入力されたコマンドを解釈する。そして、コマンドデコーダ２１は、解釈したコマンドに基づいて所定信号を活性化する。ステートマシン２３は、ページ書き込み制御を含む各種制御を行う。
【００２０】
アドレス制御回路２４は、ステートマシン２３の制御に基づいて、入力されたアドレスADDを自動用アドレスA_ADDまたはリード用アドレスR_ADDとして出力する。またアドレス制御回路２４は、１ページのアドレスのうち最後のアドレスが入力された場合、最終アドレス信号AENDを活性化する。
【００２１】
データ制御回路２５は、メモリセルアレイ１に書き込むデータを制御する。さらにデータ制御回路２５は、上記書き込んだデータに対してベリファイを行う。そしてデータ制御回路２５は、ベリファイが正常に終了した場合、ベリファイ信号VERIOKを活性化する。
【００２２】
ベリファイ用センスアンプ４は、選択されたメモリセルに対して所定のデータが正確に書き込まれたか否かを検証するベリファイ動作において、メモリセルアレイ１から読み出されたデータをセンスする。そしてベリファイ用センスアンプ４は、センスした読み出しデータをバス線A_DSBに出力する。リード用センスアンプ５は、通常のリード動作時において、メモリセルアレイ１から読み出されたデータをセンスする。そしてリード用センスアンプ５は、センスした読み出しデータをバス線R_DSBに出力する。
【００２３】
内部電源制御回路４１は、ロウデコーダ２およびカラムゲート３に対して、メモリセルアレイ１からデータを読み出すために必要な所定電圧を供給する。
【００２４】
上記不揮発性半導体記憶装置は、プロテクト機能を実現するために、ブロック或いはセクタと呼ばれる１つの消去単位或いは複数の消去単位ごとに１ビット以上からなる不揮発性ＲＯＭ（プロテクトＲＯＭ３１）を保持しており、このプロテクトＲＯＭ３１をプロテクト状態に設定することによってメモリセルアレイ１内のプロテクト領域への書き込みや消去を禁止している。
【００２５】
このプロテクトＲＯＭ３１の状態は不揮発性半導体記憶装置に対する書き込みや消去のコマンド発行ごとに照合される。そして、プロテクトＲＯＭ３１がプロテクト状態であれば、当該アドレスに対応するブロックへの書き込み或いは消去が実行されず、一方プロテクト状態でなければ、当該アドレスに対応するブロックへの書き込み或いは消去が実行される。この動作は、プロテクトＲＯＭ３１が出力する信号ＧＯにより行われる。このプロテクト機能はハードウエア的に実現しており、ソフトウエア的なプロテクトとは異なる。
【００２６】
図１９は、図１８に示した不揮発性半導体記憶装置における書き込み動作のフローチャートである。ステートマシン２３は、プロテクトＲＯＭ３１を参照してページ書き込みを行う領域がプロテクト状態であるか否かを判定する（ステップ１９ａ）。当該領域がプロテクト状態である場合、ステートマシン２３は、ページ書き込み動作を終了する。一方当該領域がプロテクト状態でない場合、ステートマシン２３は、内部電源制御回路４１を制御して、メモリセルアレイ１に書き込み高電圧を供給する（ステップ１９ｂ）。次にステートマシン２３は、メモリセルアレイ１にデータを書き込む処理を実行する（ステップ１９ｃ）。
【００２７】
次にステートマシン２３は、メモリセルアレイ１に書き込んだデータに対してベリファイを実行する（ステップ１９ｄ）。次にステートマシン２３は、ベリファイ信号VERIOKが活性化された否かを監視する（ステップ１９ｅ）。信号VERIOKが活性化された場合、ステートマシン２３は書き込みデータが正確に書き込まれたと判断して処理を終了する。信号VERIOKが活性化されない場合、ステートマシン２３は再度書き込みを行う。
【００２８】
図２０は、図１８に示した不揮発性半導体記憶装置における消去動作のフローチャートである。ステートマシン２３は、プロテクトＲＯＭ３１を参照してページ書き込みを行う領域がプロテクト状態であるか否かを判定する（ステップ２０ａ）。当該領域がプロテクト状態である場合、ステートマシン２３は、消去動作を終了する。一方当該領域がプロテクト状態でない場合、ステートマシン２３は、既知の消去サブシーケンスを実行する（ステップ２０ｂ）。
【００２９】
次にステートマシン２３は、消去した領域に対してベリファイを実行する（ステップ２０ｃ）。次にステートマシン２３は、ベリファイ信号VERIOKが活性化された否かを監視する（ステップ２０ｄ）。信号VERIOKが活性化された場合、ステートマシン２３は正確に消去が行われたと判断して処理を終了する。信号VERIOKが活性化されない場合、ステートマシン２３は再度消去を行う。
【００３０】
次に、パスワードアンロック動作の一例について説明する。図２１は、複数個のパスワードデータが入力される場合のタイミング図である。不揮発性半導体記憶装置は、アンロックコマンドが入力されるとパスワードアンロック動作を開始する。そして、入力されるパスワードデータ（ＰＷＤ０〜３）を装置内部に保持し、記憶されたパスワードデータとの照合を実行する。そして、パスワードデータが一致した場合に、プロテクトＲＯＭ３１の書き換えを可能にする。
【００３１】
このパスワードアンロック機能を図１８に示した装置に付加する場合、通常のページ書き込みに用いる自動書き込み或いは消去の自動動作とは別に、記憶されているパスワードデータを自動的に読み出す回路と、各パスワードデータの照合を自動的に行う回路とを並列に付加しなければならい。これにより、不揮発性半導体記憶装置のチップ面積が増加してしまう。
【００３２】
以下、このような知見に基づいて構成された本発明の実施の形態について図面を参照して説明する。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００３３】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る不揮発性半導体記憶装置の構成を示すブロック図である。不揮発性半導体記憶装置は、メモリセルアレイ１と、ロウデコーダ２と、カラムゲート３と、ベリファイ用センスアンプ４と、リード用センスアンプ５と、Ｉ／Ｏバッファ１１と、入力信号バッファ１２，１３と、アドレスバッファ１４と、コマンドデコーダ１２１と、ステートマシン１２３，２２３と、アドレス制御回路１２４と、データ制御回路１２５と、自動用バンク選択回路１０１と、リード用バンク選択回路１０２と、アドレス選択スイッチ１０３と、ＯＲ回路１０４〜１１０と、コマンド許可レジスタ１２６と、プロテクトＲＯＭ３１とにより構成されている。
【００３４】
メモリセルアレイ１は、データを記憶する領域（データ領域）と、パスワードデータを記憶する領域（パスワード領域）とを有している。またメモリセルアレイ１は、複数のブロックにより構成されている。不揮発性半導体記憶装置は、データの書き込みをブロック内のページ（例えば１ページは８ワード。１ワードは１６ビット。）単位で行うことができ、データの消去を複数ページを一括したブロック単位で行うことができる。メモリセルアレイ１上には、ロウ方向に延びる複数のワード線ＷＬと、カラム方向に延びる複数のビット線ＢＬとがそれぞれ配置されている（図示せず）。
【００３５】
メモリセルアレイ１には、ワード線ＷＬを介してロウデコーダ２が接続されている。またロウデコーダ２には、内部電源制御回路４１（図示せず）によりワード線ＷＬを駆動するための所定電圧が供給されている。ロウデコーダ２は、アドレスに基づいてワード線ＷＬを活性化する。
【００３６】
メモリセルアレイ１には、ビット線ＢＬを介してカラムゲート３が接続されている。またカラムゲート３には、内部電源制御回路４１により所定電圧が供給されている。カラムゲート３は、アドレスに基づいてビット線ＢＬを選択する。
【００３７】
ベリファイ用センスアンプ４は、選択されたメモリセルに対して所定のデータが正確に書き込まれたか否かを検証するベリファイ動作において、メモリセルアレイ１から読み出されたデータをセンスする。リード用センスアンプ５は、通常のリード動作時において、メモリセルアレイ１から読み出されたデータをセンスする。
【００３８】
Ｉ／Ｏバッファ１１は、外部から入力されたデータを受け取り、データバス線DINにデータを出力する。入力信号バッファ１２は、外部から入力されたチップイネーブル信号／ＣＥ、アウトプットイネーブル信号／ＯＥ及びライトイネーブル信号／ＷＥ（／は、ローアクティブであることを示している）を受け取る。不揮発性半導体記憶装置は、これら制御信号の組み合わせにより、書き込み、消去或いは読み出し動作を実行する。入力信号バッファ１３は、外部から入力されたリセット信号／ＲＥＳＥＴを受け取る。アドレスバッファ１４は、外部から入力されたアドレスを受け取る。
【００３９】
コマンドデコーダ１２１は、外部から入力されたコマンドを解釈する。そして、コマンドデコーダ１２１は、解釈したコマンドに基づいて信号線を活性化する。
【００４０】
ステートマシン１２３は、パスワードアンロック動作の制御を行う。すなわち、コマンドデコーダ１２１がライトイネーブル信号／ＷＥに基づいて出力する信号を監視し、それらを遷移条件として所定回数のメモリセルアレイ１にあらかじめ記憶されたパスワードデータを読み出し、照合する制御を行う。そして、照合結果を出力する制御を行う。
【００４１】
ステートマシン２２３は、従来機能であるページ書き込み動作の制御を行う。このページ書き込み動作は、外部から複数アドレス分のデータが連続して入力された場合に、装置内部で自動的に複数アドレス分のデータを書き込む動作(ページ一括書き込み或いはページプログラムともいう)をいう。具体的には、当該装置が備えるデータレジスタに複数アドレス分の書き込みデータを保持し、この書き込みデータを装置内部で自動的にメモリセルアレイ１に書き込む。さらに、ページ書き込み動作は、選択されたメモリセルに対して所定のデータが正確にプログラムされたか否かを検証するベリファイ動作を含む。以後、外部から複数データが入力されてから検証が終了するまでの動作を自動動作と称する。
【００４２】
アドレス制御回路１２４は、パスワードアンロック動作時、パスワードデータのアドレスを生成する。そしてアドレス制御回路１２４は、ステートマシン１２３の制御に基づいて、上記生成したアドレスを出力するか、外部から入力されたアドレスを出力するかを切り替える。またアドレス制御回路１２４は、パスワードアンロック動作以外の自動動作時、入力されたアドレスを自動用アドレスA_ADDとして出力する。
【００４３】
データ制御回路１２５は、メモリセルアレイ１に書き込むデータを制御する。さらにデータ制御回路１２５は、上記書き込んだデータに対してベリファイを行う。また、パスワードアンロック動作時は、外部から入力されたパスワードデータとメモリセルアレイ１から読み出されたパスワードデータとのベリファイを行う。
【００４４】
自動用バンク選択回路１０１は、パスワードアンロック動作或いはパスワードアンロック動作以外の自動動作時に、１つ或いは複数のバンクに分割されたメモリセルアレイ１のうちいずれか１つのバンクを選択する。リード用バンク選択回路１０２は、通常のリード動作時に、該当するバンクを選択する。
【００４５】
アドレス選択スイッチ１０３は、自動用およびリード用バンク選択信号を受けて、自動用アドレスA_ADDまたはリード用アドレスR_ADDのいずれのアドレスをメモリセルアレイ１内のバンクに転送するかを決定する。
【００４６】
プロテクトＲＯＭ３１は、メモリセルアレイ１内で書き込みや消去が禁止されたブロックに関する情報、すなわちプロテクト状態を格納している。このプロテクトＲＯＭ３１の状態は、書き込みや消去のコマンドが不揮発性半導体記憶装置に対して発行されるごとに参照される。そして、アドレスに対応する領域がプロテクトされている場合は書き込みや消去は行われずにコマンドシーケンスを終了し、一方プロテクトされていない場合は書き込みや消去を実行する。これらの通知は、プロテクトＲＯＭ３１が出力する信号ＧＯにより行われる。パスワードアンロックされると、プロテクトＲＯＭ３１の書き換えが可能となる。プロテクトＲＯＭ３１の内容が書き換えられることにより、メモリセルアレイ１の書き込み禁止領域或いは消去禁止領域を変更することが可能となる。
【００４７】
次に、このように構成された不揮発性半導体記憶装置の動作を、図２に示した不揮発性半導体記憶装置のタイミング図を参照しながら説明する。なお、図２において、“＊”は、無効なライトイネーブル信号／ＷＥと共に入力された無効データを表している
先ずコマンドデコーダ１２１の動作について説明する。コマンドデコーダ１２１は、アンロックコマンド（本実施形態では、アドレス、データ及び３サイクルのライトイネーブル信号／ＷＥ）を受けてパスワード受け取り許可信号UNLKINCMDを活性化する。この信号UNLKINCMDは、従来の機能であるページ書き込み動作による書き込みデータの受け取りを許可するデータ受け取り許可信号PGINCMDとＯＲ回路１０４により論理和を取られてデータ制御回路１２５へ入力される。なお、ページ書き込み動作時は信号UNLKINCMDは活性化されないため、従来機能への影響はない。また、外部から入力されるアンロックコマンドは、３サイクルのライトイネーブル信号／ＷＥに限定されず、アンロックコマンドであることを半導体記憶装置が認識できればよい。
【００４８】
コマンドデコーダ１２１は、アンロックコマンドの次のライトイネーブル信号／ＷＥが入力されると、外部から入力されたパスワードと内部に記憶したパスワードデータとの照合を行う一連の自動動作を開始するためにパスワードアンロック動作指示信号UNLKCMD[0]を活性化する。本実施形態では、例えばパスワードを４回にわけて入力する場合、信号UNLKCMD[0]は、自動動作開始から４回目のパスワードデータの照合が終了するまで活性化される。
【００４９】
またコマンドデコーダ１２１は、信号UNLKCMD[0]を活性化すると共に、１番目のパスワードデータＰＷＤ０照合状態であることを示す信号UNLKCMD[1]も同時に活性化する。次にコマンドデコーダ１２１は、次の有効なライトイネーブル信号／ＷＥが入力されると、上記信号UNLKCMD[1]を非活性化し、且つ２番目のパスワードデータＰＷＤ１照合状態であることを示す信号UNLKCMD[2]を活性化する。さらにコマンドデコーダ１２１は、次の有効なライトイネーブル信号／ＷＥが入力されると、上記信号UNLKCMD[2]を非活性化し、且つ３番目のパスワードデータＰＷＤ２照合状態であることを示す信号UNLKCMD[3]を活性化する。さらにコマンドデコーダ１２１は、次の有効なライトイネーブル信号／ＷＥが入力されると、上記信号UNLKCMD[3]を非活性化し、且つ４番目のパスワードデータＰＷＤ３照合状態であることを示す信号UNLKCMD[4]を活性化する。
【００５０】
上記パスワードデータＰＷＤ０〜３が入力され、内部で照合が完了した後はUNLKCMD[0]乃至UNLKCMD[4]は非活性の状態となる。これにより、不揮発性半導体記憶装置は、パスワードアンロックの自動動作を終了する。内部の自動動作完了通知は、既知の方法、例えばレディービジー信号/RDBYの論理を変更するなどして装置外部に出力することで行う。これにより、外部回路は、パスワードアンロック動作が終了したことを検知することができる。
【００５１】
パスワードアンロック動作のトリガ信号には、上記UNLKCMD[0]乃至UNLKCMD[4]が用いられる。このパスワードアンロック動作は、ステートマシン１２３にて制御される。このステートマシン１２３は、パスワードアンロック動作期間中のみ活性化されるもので、従来機能である例えばページ書き込み或いは消去動作時には非活性状態にある。逆に従来機能のページ書き込み或いは消去動作時には、ステートマシン２２３は活性化状態にあり、ステートマシン１２３は非活性状態にある。
【００５２】
このように、ステートマシン２２３および１２３の動作開始トリガ信号を完全に分離し、且つその回路を完全に分離することで、例えばステートマシンの遷移許可信号が予期せぬ誤動作をした場合においてもパスワードアンロック動作に入らないことを実現することで、セキュリティを向上させることができる。
【００５３】
図３は、ステートマシン１２３の動作を示すフローチャートである。ステートマシン１２３は、装置内のレジスタを初期化する（ステップ３ａ）。次にステートマシン１２３は、アドレス制御回路１２４が備えるアドレスカウンタ回路４０４のカウント値ｎを“０”に設定する（ステップ３ｂ）。次にステートマシン１２３は、パスワードデータＰＷＤｎをメモリセルアレイ１から読み出す制御を実行する（ステップ３ｃ）。次にステートマシン１２３は、外部から入力されたパスワードデータＰＷＤｎと、メモリセルアレイ１から読み出したパスワードデータＰＷＤｎとを照合する制御を実行する（ステップ３ｄ）。
【００５４】
次にステートマシン１２３は、コマンドデコーダ１２１から入力される信号UNLKCMDが、最後のパスワードデータＰＷＤ３照合状態であることを示す信号UNLKCMD[4]が活性化されたか否かを監視する（ステップ３ｅ）。信号UNLKCMD[4]が活性化されていない場合、ステートマシン１２３は、アドレスカウンタ回路４０４のカウント値ｎを１つカウントアップする（ステップ３ｆ）。
【００５５】
次にステートマシン１２３は、ライトイネーブル信号／ＷＥが入力された場合に変化するトリガ信号（本実施形態では、UNLKCMD信号）が入力されるのを監視する（ステップ３ｇ）。トリガ信号が入力されたのを検出すると、ステートマシン１２３は、次のパスワードデータＰＷＤｎ＋１をメモリセルアレイ１から読み出す制御を実行する（ステップ３ｃ）。以後、ステートマシン１２３は、読み出し及び照合動作を繰り返す。そしてステートマシン１２３は、ステップ３ｅにおいて、信号UNLKCMD[4]が活性化された場合、処理を終了する。
【００５６】
図４は、ステートマシン１２３の構成を示すブロック図である。ステートマシン１２３は、最終アドレス検知回路１２３ａと、一致検知回路１２３ｂと、動作検知回路１２３ｃと、タイマー回路１２３ｋとを備えている。
【００５７】
動作検知回路１２３ｃは、パスワードアンロック動作の進行状態を検出する。そして、検出した進行状態に基づいて次の動作に必要な制御信号を生成する。動作検知回路１２３ｃは、全アドレスリセット回路１２３ｄと、アドレスカウントアップ回路１２３ｅと、アドレス切り替え回路１２３ｆと、アドレス選択許可回路１２３ｇと、パスワード受付許可回路１２３ｈと、比較許可回路１２３ｉと、コマンド受付許可回路１２３ｊとを備える。
【００５８】
パスワードアンロック動作開始前は、ステートマシン１２３から出力される信号は非活性状態にある。ステートマシン１２３は、コマンドデコーダ１２１から出力される信号UNLKCMD[0]もしくはUNLKCMD[1]が活性化されたことを検知して動作を開始する。ステートマシン１２３は、信号UNLKCMD[0]が活性化されている間は動作状態にある。
【００５９】
全アドレスリセット回路１２３ｄは、信号UNLKCMD[0]が活性化されると、全アドレスリセット信号ｎ３１を活性化する。この信号ｎ３１は、ＯＲ回路１０９を介して全アドレスリセット信号A_ADDRSTとしてアドレス制御回路１２４が備えるアドレスカウンタ回路４０４に入力される。
【００６０】
アドレス切り替え回路１２３ｆは、信号UNLKCMD[0]が活性化されると、アドレス制御回路１２４が生成したアドレスに切り替えるためのアドレス切り替え信号ｎ４１を活性化する。この信号ｎ４１は、ＯＲ回路１０８を介してアドレス切り替え信号CUTINとしてアドレス制御回路１２４に入力される。
【００６１】
アドレス選択許可回路１２３ｇは、信号UNLKCMD[0]が活性化されると、自動動作用のアドレス信号線を有効にする信号ｎ２１を活性化する。この信号ｎ２１は、ＯＲ回路１０７を介してアドレス線活性信号ADECENとして自動用バンク選択回路１０１に入力される。
【００６２】
パスワード受付許可回路１２３ｈは、信号UNLKCMD[0]が活性化されると、タイマー回路１２３ｋを起動させる。このタイマー回路１２３ｋはパスワードアンロック動作時のみ使用されるものであっても、あるいは図示せぬが自動動作に使用するタイマー回路と共用するものであってもよい。パスワード受付許可回路１２３ｈは、タイマー回路１２３ｋから所定時間が経過した旨の通知があるまで、次パスワード受け取り許可信号NEXTENを非活性状態に保持する。なお、この所定時間は、パスワードデータの語長やその他設計仕様に基づいて決定される。
【００６３】
タイマー回路１２３ｋは、所定時間をカウントすると、所定時間が経過したことを通知する信号を動作検知回路１２３ｃに入力する。この信号が活性化されると、比較許可回路１２３ｉはパスワード比較開始信号ｎ０１を１パルスだけ活性化する。このパルス信号ｎ０１は、データ制御回路１２５に入力される。
【００６４】
パスワード受付許可回路１２３ｈは、パルス信号ｎ０１を検知すると、外部から次のパスワードデータＰＷＤ１を受け取れるようにするために、信号NEXTENを活性化する。また、アドレス切り替え回路１２３ｆは、パルス信号ｎ０１を検知すると、信号ｎ４１を非活性にして外部から入力されるアドレスに切り替える制御を行う。アドレス切り替え回路１２３ｆは、次のパスワードデータＰＷＤ１が入力されるまではこの状態を保持する。
【００６５】
次のパスワードデータＰＷＤ１が外部から入力されると、コマンドデコーダ１２１から出力されるUNLKCMD[1]が非活性化され、同時にUNLKCMD[2]が活性化される。アドレス切り替え回路１２３ｆは、信号UNLKCMD[2]が活性化されると、信号ｎ４１を活性化してアドレス制御回路１２４が生成するアドレスに切り替える制御をする。
【００６６】
アドレスカウントアップ回路１２３ｅは、信号UNLKCMD[2]が活性化されると、１パルスのカウントアップ信号ｎ５１を生成する。このパルス信号ｎ５１は、ＯＲ回路１１０を介してカウントアップ信号A_ADDADVとしてアドレス制御回路１２４内に配置されたアドレスカウンタ回路４０４に入力される。これにより、アドレスカウンタ回路４０４はカウンタ値を例えばバイナリデータ値で１だけカウントアップする。
【００６７】
パスワード受付許可回路１２３ｈは、信号UNLKCMD[2]が活性化されると、信号NEXTENを非活性すると同時にタイマー回路１２３ｋを起動させる。そして、パスワード受付許可回路１２３ｈは、タイマー回路１２３ｋから所定時間が経過したことを通知する信号が入力されるまで、信号NEXTENを非活性の状態に保持する。
【００６８】
その後、ステートマシン１２３は、タイマー回路１２３ｋの所定時間経過検知、パスワードデータ照合、次のパスワードデータ入力待ちの一連の動作を所定回数繰り返す。
【００６９】
最後のパスワードデータＰＷＤ３(本実施例では４回目)が外部から入力されると、コマンドデコーダ１２１から入力される信号UNLKCMD[3]が非活性化、信号UNLKCMD[4]が活性化される。その他動作およびパスワード比較開始信号ｎ０１を生成するまでの動作は上記と同様である。
【００７０】
なお、ステートマシン１２３の動作は、図示せぬが、内部または外部で生成された基準クロック信号の立ち上がり信号もしくは立下り信号に同期して動作タイミングを決定する。またこれに限定されず、ステートマシン１２３は、コマンドデコーダ１２１が出力した信号或いは当該ステートマシン１２３が生成した信号を検知した後、任意の時間で次の信号を生成する回路であってもよい。
【００７１】
次にアドレス制御回路１２４の動作を説明する。半導体記憶装置は、メモリセルアレイ１内にパスワードデータを格納するためのパスワード格納領域を備えている。このパスワード格納領域は、データ読み出し、書き込み及び消去の可能な領域とは少なくともブロックが異なる領域として配置される。このパスワード格納領域は、パスワードアドレス以外の領域を持たないようなセルアレイ構成にしてもよい。あるいはパスワードデータ以外のアドレス領域にユーザが読み出しのみ可能なユーザデータを格納する構成にしてもよい。さらにはパスワードデータ以外の領域は、ユーザが書き込み、追加書き込みおよび読み出しが可能としてもよい。パスワード格納領域内のパスワードデータの消去を禁止する手段であればその方法を問わない。
【００７２】
アドレス制御回路１２４は、パスワードデータ書き込み後は、外部からのコマンド入力ではパスワードデータの読み出しを禁止する構成としている。また、パスワードデータの読み出しは、ステートマシン１２３による制御信号でのみ読み出しが可能であるようにアドレス制御回路１２４を構成することで、データ保護レベルを保持している。
【００７３】
図５は、アドレス制御回路１２４の構成を示すブロック図である。アドレス制御回路１２４は、リード用アドレス制御回路４００と、アドレスラッチ回路４０１と、アドレス選択回路４０２と、アドレス選択回路４０３と、アドレスカウンタ回路４０４とにより構成されている。このうち、アドレスラッチ回路４０１、アドレス選択回路４０２及びアドレスカウンタ回路４０４は、ページ書き込み動作に使用される既存の回路である。
【００７４】
リード用アドレス制御回路４００は、データリード動作時に使用される既存の回路である。リード用アドレス制御回路４００は、通常のデータリード時に動作する。リード用アドレス制御回路４００は、入力されたアドレスをリード用アドレスR_ADDとして出力する。
【００７５】
アドレス制御回路１２４に入力されたアドレスADD<19:0>は、アドレスラッチ回路４０１に入力される。なお本実施形態において、アドレスADDは、例えば２０ビットで構成されている。アドレスラッチ回路４０１は、３つのインバータ回路により構成され、アドレスバッファ１４から入力されたアドレスADD<19:0>をラッチする。このラッチのタイミングは、図示せぬがライトイネーブル信号／ＷＥに基づいて制御される。
【００７６】
アドレスラッチ回路４０１から出力されたアドレスADD<19:0>は、アドレス選択回路４０２に入力される。具体的には、アドレスADD<19:0>の０ビット目はアドレス０選択回路４０２ａの入力端子ＩＮ１に、１ビット目はアドレス１選択回路４０２ｂの入力端子ＩＮ１に、２ビット目はアドレス２選択回路４０２ｃの入力端子ＩＮ１に、３〜１９ビット目はアドレス１選択回路４０２ｄの入力端子ＩＮ１に入力される。
【００７７】
アドレスカウンタ回路４０４は、カウントアップ信号A_ADDADVが活性化されることにより、アドレスのカウントアップを行う。具体的には、アドレスカウンタ回路４０４は、カウントアップ信号A_ADDADVが１パルス入力されると、カウンタ値を例えばバイナリデータ値で１だけカウントアップする。そしてアドレスカウンタ回路４０４は、カウントアップ信号A_ADDADVが入力された回数に応じてカウント値をアドレスとして出力する。
【００７８】
ステートマシン１２３から出力されたカウントアップ信号A_ADDADVは、アドレス０カウンタ４０４ａのカウントアップ端子ＵＰに入力される。ステートマシン１２３から入力された全アドレスリセット信号A_ADDRSTは、ＯＲ回路４０６を介してアドレス０カウンタ４０４ａと、アドレス１カウンタ４０４ｂとのリセット端子ＲＳＴに夫々入力される。また信号A_ADDRSTは、ＯＲ回路４０５を介してアドレス２カウンタ４０４ｃのリセット端子ＲＳＴに入力される。また信号A_ADDRSTは、アドレス１９−３カウンタ４０４ｄのリセット端子ＲＳＴに入力される。
【００７９】
なお、上記アドレスカウンタ回路４０４の回路構成は一例であり、これに限定されるものではない。例えば、公知のリップルキャリー型カウンタ回路或いはキャリールックアヘッド型カウンタ回路などいずれでもかまわない。
【００８０】
ステートマシン２２３から出力されたリセット信号A_PGRST<1:0>の０ビット目は、ＯＲ回路４０６を介してアドレス０カウンタ４０４ａとアドレス１カウンタ４０４ｂとのリセット端子ＲＳＴに夫々入力される。リセット信号A_PGRST<1:0>の１ビット目は、ＯＲ回路４０５を介してアドレス２カウンタ４０４ｃのリセット端子ＲＳＴに入力される。
【００８１】
アドレスカウンタ回路４０４は、全アドレスリセット信号A_ADDRSTが活性化されると、カウント値のリセットを行う。またアドレスカウンタ回路４０４は、信号A_PGRST<0>が活性化されると、８アドレスのうち下位４アドレスのアドレスカウンタをリセットする。またアドレスカウンタ回路４０４は、信号A_PGRST<1>が活性化されると、８アドレスのうち上位４アドレスのアドレスカウンタをリセットする。
【００８２】
アドレスカウンタ回路４０４から出力されたアドレスは、アドレス選択回路４０２に入力される。具体的には、アドレスカウント値の０ビット目はアドレス０選択回路４０２ａの入力端子ＩＮ２に、１ビット目はアドレス１選択回路４０２ｂの入力端子ＩＮ２に、２ビット目はアドレス２選択回路４０２ｃの入力端子ＩＮ２に、３〜１９ビット目はアドレス１選択回路４０２ｄの入力端子ＩＮ２に入力される。
【００８３】
アドレス選択回路４０２は、アドレスラッチ回路４０１から入力端子Ｎ１に入力されるアドレスと、アドレスカウンタ回路４０４から入力端子Ｎ２に入力されるアドレスとのいずれか一方を選択する。この選択動作は、選択端子ＳＥＬに入力されるアドレス切り替え信号CUTINに基づいて行われる。アドレス選択回路４０２は、信号CUTINが活性化された場合、アドレスカウンタ回路４０４から入力されたアドレスを選択する。
【００８４】
アドレス選択回路４０２から出力されたアドレスは、アドレス選択回路４０３に入力される。具体的には、アドレス２選択回路４０２ｃから出力された２ビット目のアドレスは、アドレス２選択回路４０３ａに入力される。アドレス１９−３選択回路４０２ｄから出力された３〜１９ビット目のアドレスは、アドレス１９−３選択回路４０３ｂに入力される。
【００８５】
アドレス選択回路４０３は、パスワードアンロック動作時にはパスワード格納領域を、それ以外の自動動作時にはユーザデータ格納領域を指示するアドレスを出力するように選択動作する。この選択動作は、選択端子ＳＥＬに入力される信号UNLKCMD[0]に基づいて行われる。
【００８６】
本実施形態では、アドレスバスビット最上位の２１ビット目をパスワード格納領域を指示するアドレス線として割り当ており、このアドレス線を活性化することで当該アドレスがパスワード格納領域を表すアドレスであることを示している。この２１ビット目のアドレス線の信号は、パスワードアンロック動作中に活性化される。アドレス２０選択回路４０３ｃは、信号UNLKCMD[0]が活性化された場合に、“１”データ（電源電圧ＶＤＤ）を出力する。
【００８７】
また、アドレス２選択回路４０３ａとアドレス１９−３選択回路４０３ｂは、信号UNLKCMD[0]が活性化された場合に“０”データ（接地電圧ＶＳＳ）を出力し、それ以外はアドレス選択回路４０２から入力されたアドレスをそのまま出力する。
【００８８】
アドレス選択回路４０３は、アドレスカウンタ回路４０４から出力されるアドレスの下位２ビットをそのまま出力するように構成している。この下位２ビットのアドレスが、パスワードデータアドレスを表すとともに、パスワード入力回数を指示する信号ともなる。これにより、外部からのパスワードデータの入力が、アドレス０から所定順序で行われたか否かを判定することが可能となる。
【００８９】
次に、パスワードデータの読み出し動作について説明する。ステートマシン１２３は、信号UNLKCMD[0]により活性化されると、信号ｎ２１を活性化する。この信号ｎ２１は、ステートマシン２２３が出力する自動動作用のアドレス信号線を有効にする信号ｎ２２とＯＲ回路１０７により論理和が取られ、信号ADECENとして自動用バンク選択回路１０１に入力される。自動用バンク選択回路１０１は、アドレス制御回路１２４から出力された自動用アドレスA_ADDを解釈し、自動動作で選択されるバンク選択信号を生成する。
【００９０】
自動用バンク選択回路１０１は、信号ADECENが活性化されると、保護レベル向上のためにパスワードバンク選択信号APWBNKを強制的に活性化する。また自動用バンク選択回路１０１は、ユーザが通常アクセスするユーザデータ格納領域を自動動作で選択する場合には、既存の自動用バンク選択信号ABANKのみを活性化し、パスワード格納領域は選択されないようにする。これらバンク選択信号の活性化は排他的であり、複数の信号線を活性化することはない。また自動動作実行中に読み出し動作を行うデュアルオペレーションを実現するために、既存のリード用バンク選択回路１０２を並列に備えている。
【００９１】
自動用およびリード用バンク選択信号をうけて、アドレス選択スイッチ１０３は自動用アドレスA_ADDまたはリード用アドレスR_ADDのいずれのアドレスをメモリセルアレイ１内のバンクに転送するかを決定する。図６を参照してバンク選択の方法を説明する。ここでは、ユーザデータ格納領域をバンクＡおよびバンクＢとし、パスワード格納領域をバンクＰとして説明する。バンク数は本発明に本質的ではないのでその数を問わない。
【００９２】
パスワードアンロック動作の際には、アドレスバス線ADS_PにアドレスA_ADDが出力される。このアドレスA_ADDは、バンクＰのロウデコーダ２Ｐおよびカラムゲート３Ｐに転送される。ロウデコーダ２Ｐおよびカラムゲート３Ｐには、転送されたアドレスに応じたデータを読み出すために必要な所定電圧が内部電源制御回路４１（図示せず）により供給される。バンクＰから読み出されたパスワードデータは、カラムゲート３Ｐを介して自動用データバス線A_DLに転送される。
【００９３】
このデータバス線A_DLは、既存の動作である書き込みおよび消去のベリファイ動作の際にデータが転送されるバス線であり、このデータバス線A_DLにパスワードデータを転送することでパスワードアンロック動作中の上記デュアルオペレーションを可能としている。また、既存のバス線を使用することで、バスエリアの増加がなくパスワードアンロック動作の実現が可能となる。なお、リード動作によるデータは、リード用データバス線R_DL（図示せず）に転送される。
【００９４】
バス線A_DLに転送されたパスワードデータは、ベリファイ用センスアンプ４に入力される。ベリファイ用センスアンプ４は、所定参照電位と前記バンクＰから読み出されたパスワードデータに応じた電位との微小電位差を比較し、例えば参照電位の方が高い場合には“１”データと判定し、一方参照電位の方が低い場合には“０”データと判定する。そして、ベリファイ用センスアンプ４は、このセンスしたパスワードデータをバス線A_DSBに出力する。このセンス動作の制御は、図示せぬがステートマシン１２３が活性化する制御信号により制御される。また、ステートマシン１２３の外部に備えられる制御回路が所定信号を制御して実施してもよい。
【００９５】
次に、パスワードデータのベリファイ動作について説明する。メモリセルアレイ１から読み出されたパスワードデータと外部から入力されたパスワードデータとのベリファイは、データ制御回路１２５により、ステートマシン１２３が出力する制御信号に基づいて行われる。この制御信号は、ステートマシン１２３が出力するパスワード比較開始信号ｎ０１とステートマシン２２３が出力するベリファイ比較許可信号ｎ０２とがＯＲ回路１０６により論理和が取られた比較許可信号CMPSETからなる。既存の自動動作によるベリファイの制御信号は、信号ｎ０２が信号CMPSETとしてデータ制御回路１２５に伝達される。
【００９６】
図７は、データ制御回路１２５の構成を示すブロック図である。データ制御回路１２５は、複数の判定回路３００〜３０７と、データ入力許可回路３１１と、判定選択回路３１２と、バッファ３０８，３０９とを有する。判定回路３００〜３０７は、夫々データレジスタとベリファイレジスタとを有する。
【００９７】
データ制御回路１２５は、既存の動作として、ライトイネーブル信号／ＷＥとともに与えられたアドレスに応じたデータレジスタにデータを格納し、データレジスタに格納したデータと自動動作によりメモリセルアレイ１から読み出したデータとのベリファイを実施する。ページ書き込み動作を行う場合、データ制御回路１２５は、１ページのアドレス分の判定回路を有する。本実施形態では、１ページが８ワードで構成されているため、データ制御回路１２５は８個の判定回路３００〜３０７を有している。また本実施形態では、このページ書き込み動作時に使用する判定回路３００〜３０７をパスワードアンロック動作時にもその一部または全部を利用する。
【００９８】
またデータ制御回路１２５は、アンロック許可信号UNLKOKとベリファイ信号VERIOKとを出力する。信号UNLKOKは、バッファ３０９を介して出力される。信号VERIOKは、バッファ３０８を介して出力される。
【００９９】
データ入力許可回路３１１は、外部から入力されたアドレスに基づいて該当するデータレジスタにデータ格納を許可するデータ格納許可信号PAGE<0>〜PAGE<7>を生成する。信号PAGE<0>〜PAGE<7>を生成するタイミングは、データラッチ信号PGDLATCHBにより制御される。従来の機能であるページ書き込み動作時において、データ入力許可回路３１１は、データ受け取り許可信号PGINCMDがＯＲ回路１０５を介して信号PGDLATCHBとして入力された場合にデータ格納許可信号PAGE<0>〜PAGE<7>を出力する。
【０１００】
一方、パスワードアンロック動作時において、データ入力許可回路３１１は、パスワード受け取り許可信号UNLKINCMD或いは次パスワード受け取り許可信号NEXTENが信号PGDLATCHBとして入力された場合にデータ格納許可信号PAGE<0>〜PAGE<7>を出力する。この信号PAGE<0>〜PAGE<7>は、夫々判定回路３００〜３０７に入力される。
【０１０１】
例えば、アドレスA_ADDの下位３ビットが（A_ADD<2>，A_ADD<1>，A_ADD<0>）＝（０，０，０）の場合、データ入力許可回路３１１は、信号PAGE<0>を活性化し、それ以外の信号PAGE<1>〜PAGE<7>を非活性化する。またアドレスA_ADDの下位３ビットが（A_ADD<2>，A_ADD<1>，A_ADD<0>）＝（１，１，１）の場合、データ入力許可回路３１１は、信号PAGE<7>を活性化し、それ以外の信号PAGE<0>〜PAGE<6>を非活性化する。
【０１０２】
図８は、判定選択回路３１２の構成を示す回路図である。判定選択回路３１２は、ＮＯＲ回路３２０〜３２３と、ＮＡＮＤ回路３２４〜３３５と、インバータ回路３３６〜３５３とから構成されている。A_ADD<0>はアドレスA_ADDの０ビット目、A_ADD<1>はアドレスA_ADDの１ビット目、A_ADD<2>はアドレスA_ADDの２ビット目の信号を表している。
【０１０３】
判定選択回路３１２は、アドレスカウンタ回路４０４が生成したアドレスに基づいて比較を許可する比較許可信号CMPSET<1>〜CMPSET<7>を生成する。例えば、アドレスA_ADDの下位３ビットが（A_ADD<2>，A_ADD<1>，A_ADD<0>）＝（０，０，０）の場合、判定選択回路３１２は、比較許可信号CMPSET<0>を活性化し、それ以外の信号CMPSET<1>〜PAGE<7>を非活性化する。また判定選択回路３１２は、比較許可信号CMPSETが活性化された場合のみ、信号CMPSET<0>〜CMPSET<7>を活性化する。信号CMPSET<0>〜CMPSET<7>は、夫々判定回路３００〜３０７に入力される。
【０１０４】
図９は、判定選択回路の他の構成例である。データ制御回路１２５は、判定選択回路３１３を備えていてもよい。判定選択回路３１３には、信号UNLKCMD[4:0]（上記信号UNLKCMD[0]と、UNLKCMD[1]と、UNLKCMD[2]と、UNLKCMD[3]と、UNLKCMD[4]とからなる）が入力されている。図１０は、判定選択回路３１３の構成を示す回路図である。判定選択回路３１３は、判定選択回路３１２の構成に加えて、排他的否定論理和回路３５４〜３５７を有している。
【０１０５】
判定選択回路３１３は、パスワード入力回数を記憶するアドレスカウンタ回路４０４を上記アドレス制御回路１２４が備えていない場合に、コマンドデコーダ１２１が出力する信号UNLKCMD[0]乃至UNLKCMD[4]がパスワード入力回数を示す信号であることを利用して、比較許可信号CMPSET<0>〜CMPSET<7>を対応する判定回路３００〜３０7に伝達するものである。これにより、外部から入力されるパスワードデータが順番に入力されない場合は、一致信号COMP<0>〜COMP<7>が活性化されない。例えば、信号CMPSET<0>は、信号UNLKCMD[0]とUNLKCMD[1]とが活性化された場合に、活性化される。
【０１０６】
データ制御回路１２５がこのような構成の判定選択回路３１３を備えた場合、ステートマシン１２３はアドレス切り替え回路１２３を制御する必要が無く、パスワードアンロック動作全期間にわたって上記アドレス切り替え信号ｎ４１は非活性の状態のままである。これにより、ステートマシン１２３の負担を軽減することができる。
【０１０７】
図１１は、判定回路のうち１ビット分の判定回路の構成を示す回路図である。なお図１１において、信号インデックスｉはアドレス<j>で示されるデータビット番号を、信号インデックスｊはアドレス制御回路１２４の出力に基づいたアドレスビット番号を示している。判定回路は、インバータ回路３６０〜３６４と、クロックドインバータ回路３６５，３６６と、排他的ＯＲ回路３６７と、ＮＡＮＤ回路３６８〜３７０と、ＮＯＲ回路３７１とにより構成されている。
【０１０８】
データ線DIN<i>から入力されたデータは、クロックドインバータ回路３６５に入力される。クロックドインバータ回路３６５は、信号PAGE<j>が“１”データの場合に、データを出力する。クロックドインバータ回路３６５から出力されたデータは、データ保持回路３７２に入力される。データ保持回路３７２は、インバータ回路３６２とクロックドインバータ回路３６６とにより構成されている。クロックドインバータ回路３６６は、信号PAGE<j>が“０”データの場合に、データを出力する。すなわち、データ保持回路３７２は、信号PAGE<j>が“０”データになると、入力されたデータを保持する。
【０１０９】
データ保持回路３７２から出力されたデータは、排他的ＯＲ回路３６７に入力される。またバス線A_DSB<i>から入力されたデータは、排他的ＯＲ回路３６７に入力される。排他的ＯＲ回路３６７は、入力された２つのデータを比較する。そして、一致した場合には、“１”データを出力する。
【０１１０】
排他的ＯＲ回路３６７から出力されたデータは、ＮＡＮＤ回路３６８に入力される。また信号
CMPSET<j>は、ＮＡＮＤ回路３６８に入力される。ＮＡＮＤ回路３６８から出力されたデータは、ベリファイ結果保持回路３７３に入力される。ベリファイ結果保持回路３７３は、２つのＮＡＮＤ回路３６９，３７０により構成されている。
【０１１１】
ベリファイ結果保持回路３７３から出力されたデータは、ＮＯＲ回路３７１に入力される。また信号COMP<j-1>は、インバータ回路３６４を介してＮＯＲ回路３７１に入力される。ＮＯＲ回路３７１は、信号COMP<j>を出力する。
【０１１２】
なお、ベリファイ結果保持回路３７３は、保持動作を行う前にリセットされる。このリセットは、リセット信号CMPRSTにより行われる。リセット信号CMPRSTは、インバータ回路３６３を介してベリファイ結果保持回路３７３に入力される。なお信号CMPRSTは、ステートマシン１２３が出力する全アドレスリセット信号ｎ３１がＯＲ回路１１１を介して入力される。
【０１１３】
データレジスタは、所定単位数のデータ保持回路３７２により構成される。同様に、ベリファイレジスタは、所定単位数のベリファイ結果保持回路３７３により構成される。
【０１１４】
パスワードアンロック動作以外の自動動作時は、データ保持回路３７２に格納されたデータは、バス線A_PRG（図示せず）を介して対応するアドレスに基づいてメモリセルアレイ１に書き込まれる。
【０１１５】
図１１を参照して、パスワード判定動作について説明する。判定回路３００は、信号PAGE<0>が活性化された場合に、データバス線DINから入力されたパスワードデータをデータレジスタ（データ保持回路３７２）に格納する。そして、判定回路３００は、データバス線DINから入力されたパスワードデータと、バス線A_DSBから入力されるメモリセルアレイ１から読み出されたパスワードデータとを比較する。
【０１１６】
さらに判定回路３００は、信号CMPSET<0>が活性化された場合に、上記比較結果をベリファイレジスタ（ベリファイ結果保持回路３７３）に格納する。そして判定回路３００は、信号CMPSET<0>が活性化され且つ各データが一致した場合に、一致信号COMP<0>を活性化する。また、判定回路３０１〜３０７は、上記条件に加えて、下位の判定回路の一致信号が活性化された場合に、判定結果を出力する。
【０１１７】
判定回路３００〜３０７は、アドレスカウンタ回路４０４が生成したアドレスに対応した判定回路のみ判定動作を行うように構成されている。これにより、外部から入力されるパスワードデータが順番に入力されない場合は、一致信号COMP<0>〜COMP<7>が活性化されない。
【０１１８】
ステートマシン１２３は、１番目のパスワードデータＰＷＤ０の照合が終了すると、次パスワード受け取り許可信号NEXTENを生成する。コマンドデコーダ１２１は、ライトイネーブル信号／ＷＥが入力されると、所定の回数に相当する信号UNLKCMDを活性化する。ステートマシン１２３は、その状態変化を受け取り、次の状態へ遷移する。その動作は上記図３のフローチャートに示すとおりである。
【０１１９】
データ制御回路１２５は、最終回のパスワード比較開始信号ｎ０１が生成されたことを検知して、全パスワードデータが一致していた場合にのみアンロック許可信号UNLKOKを活性化する。一致していなかった場合は、信号UNLKOKは非活性のままである。なお、ページ書き込み時のベリファイ動作の場合、データ制御回路１２５はベリファイ信号VERIOKを活性化する。
【０１２０】
信号UNLKOKは、一致検知回路１２３ｂに入力される。また、自動用アドレスA_ADDは、最終アドレス検知回路１２３ａに入力されている。最終アドレス検知回路１２３ａは、アドレスがパスワードデータの最終アドレスであるか否かを検知する。この検知結果は、一致検知回路１２３ｂに出力される。一致検知回路１２３ｂは、信号UNLKOKが活性化され、且つ最終アドレス検知回路１２３ａから最終アドレスである通知を受けた場合、パスワードデータが一致したことを動作検知回路１２３ｃに通知する。
【０１２１】
コマンド受付許可回路１２３ｊは、パスワードが一致した通知を受けて、アンロック信号UNLOCKを活性化する。アンロック信号UNLOCKは、コマンド許可レジスタ１２６に入力される。図１２は、コマンド許可レジスタ１２６の構成を示す回路図である。
【０１２２】
コマンド許可レジスタ１２６は、２つのＮＯＲ回路５００，５０１から構成されている。またコマンド許可レジスタ１２６には、信号PONRSTと、信号RESETと、アンロック信号UNLOCKとが入力されている。信号PONRSTは、当該不揮発性半導体記憶装置の電源投入時にのみ活性化される信号である。信号PONRSTは、外部から入力されてもよいし、当該不揮発性半導体記憶装置が生成してもよい。信号RESETは、入力信号バッファ１３に入力された信号／ＲＥＳＥＴから生成される。
【０１２３】
コマンド許可レジスタ１２６は、信号PONRST或いは信号RESETにてセット状態にされる。コマンド許可レジスタ１２６は、セット状態においては、信号ROMENを非活性の状態に保持する。この信号ROMENは、コマンドデコーダ１２１に入力されている。コマンドデコーダ１２１は、信号ROMENが非活性である場合、上記プロテクトＲＯＭ３１の書き換えにかかわるコマンドを受け付けない。したがって、当該装置が電源投入後一度もパスワードアンロック動作により信号UNLOCKが活性化されていない場合、コマンド許可レジスタ１２６は常にセット状態である。すなわち、当該装置は、ロック状態である。
【０１２４】
当該装置にアンロックコマンドが入力され、アンロック動作に成功した場合には、活性化された信号UNLOCKがコマンド許可レジスタ１２６に入力される。これにより、コマンド許可レジスタ１２６は、リセット状態に変更される。コマンド許可レジスタ１２６は、リセット状態においては、信号ROMENを活性の状態に保持する。そして、コマンドデコーダ１２１は、信号ROMENが活性である場合、上記プロテクトＲＯＭ３１の書き換えにかかわるコマンドを受付可能にする。これにより、プロテクトＲＯＭ３１が格納するプロテクト状態を外部回路が書き換えることが可能となる。
【０１２５】
ステートマシン１２３は、全パスワードデータが一致、不一致にかかわらず、最終回のパスワード比較開始信号ｎ０１のパルスを生成したのち信号ｎ０１が非活性状態になったことを受けて、パスワードアンロック動作を終了する動作終了信号を生成する。この動作終了信号は、図示せぬがコマンドデコーダ１２１に通知される。コマンドデコーダ１２１は、動作終了信号が活性化されると、信号UNLKCMD[0]および信号UNLKCMD[4]を非活性化する。この動作終了信号が活性化されたのちに非活性の状態になると、当該装置は初期状態に戻る。
【０１２６】
以上詳述したように本実施形態では、ページ書き込み動作で用いられる回路を、パスワードアンロック動作において共用するようにしている。また、４つのパスワードデータの照合を順序通りに行ったこと、かつ一致不一致の判定結果を記憶するためのシフトレジスタ（選択回路３００〜３０７からなる）を備えている。さらに、外部から入力されるアドレスとは別に、アドレスカウンタ回路４０４によって生成した所定順序を表すアドレスに基づいてパスワード照合結果を出力するようにしている。
【０１２７】
したがって本実施形態によれば、パスワードアンロック機能を備えたことによる回路面積の増加を最小限に抑えることができる。
【０１２８】
またパスワードアンロック動作時において、無効なアドレス及びデータが外部から入力されてもアンロックされることを防止することができるため、データ保護レベルを向上させることができる。
【０１２９】
なお、上記実施形態において、パスワードデータワード数がページ書き込みワード数よりも少ない場合を示したが、両者ワード数が同じ場合においては信号UNLKOKの替わりに信号VERIOKを使用するよう構成してもよい。
【０１３０】
（第２の実施形態）
第２の実施形態は、上記第１の実施形態で説明したパスワードアンロック動作の回路をページ書き込み動作に使用することで、ページ書き込み動作の高速化を実現するものである。なお、回路ブロック図は、図１と同じである。
【０１３１】
コマンドデコーダ１２１は、外部から入力されるページ書き込みコマンドを解釈し、直後に入力される所定数のデータの受け取りを許可するデータ受け取り許可信号PGINCMDを活性化する。この信号PGINCMDは、ページ書き込み動作時は非活性の信号UNLKINCMDとの論理和で生成される信号PGDLATCHBとなってデータ制御回路１２５へ入力される。データ制御回路１２５に所定数のデータが格納されると、コマンドデコーダ１２１はページ書き込みの自動動作を指示する信号PGPRGCMDを活性化する。この信号は、ステートマシン２２３に通知される。その後のページ書き込み動作は既知の動作により行われる。
【０１３２】
図１３は、ステートマシン２２３の構成を示すブロック図である。ステートマシン２２３は、最終アドレス検知回路２２３ａと、一致検知回路２２３ｂと、動作検知回路２２３ｃと、タイマー回路２２３ｊとを備えている。
【０１３３】
動作検知回路２２３ｃは、ページ書き込み動作の進行状態を検出する。そして、検出した進行状態に基づいて次の動作に必要な制御信号を生成する。動作検知回路２２３ｃは、全アドレスリセット回路２２３ｄと、ページアドレスリセット回路２２３ｅと、アドレスカウントアップ回路２２３ｆと、アドレス切り替え回路２２３ｇと、アドレス選択許可回路２２３ｈと、比較許可回路２２３ｉとを備える。
【０１３４】
ページ書き込み動作開始前は、ステートマシン２２３から出力される信号は非活性状態にある。ステートマシン２２３は、コマンドデコーダ１２１から出力される信号PGPRGCMDが活性化されたことを検知して動作を開始する。ステートマシン２２３は、信号PGPRGCMDが活性化されている間は動作状態にある。
【０１３５】
最終アドレス検知回路２２３ａは、アドレス制御回路１２４から入力された自動用アドレスA_ADDが１ページ分のアドレスのうちの最後のアドレスであるか否かを検知する。
【０１３６】
タイマー回路２２３ｊは、所定時間をカウントすると、所定時間が経過したことを通知する信号を動作検知回路２２３ｃに入力する。タイマー回路２２３ｊは、ステートマシン１２３と共用するよう構成されてもよい。
【０１３７】
全アドレスリセット回路２２３ｄは、信号PGPRGCMDが活性化されると、全アドレスリセット信号ｎ３２を活性化する。この信号ｎ３２は、ＯＲ回路１０９を介して全アドレスリセット信号A_ADDRSTとしてアドレス制御回路１２４が備えるアドレスカウンタ回路４０４に入力される。アドレスカウンタ回路４０４は、全アドレスリセット信号A_ADDRSTが活性化されると、カウント値のリセットを行う。
【０１３８】
ページアドレスリセット回路２２３ｅは、２ビットからなるリセット信号A_PGRST<1:0>を生成する。リセット信号A_PGRST<1:0>の０ビット目は、ＯＲ回路４０６を介してアドレス０カウンタ４０４ａとアドレス１カウンタ４０４ｂとのリセット端子ＲＳＴに夫々入力される。リセット信号A_PGRST<1:0>の１ビット目は、ＯＲ回路４０５を介してアドレス２カウンタ４０４ｃのリセット端子ＲＳＴに入力される。
【０１３９】
アドレスカウンタ回路４０４は、信号A_PGRST<0>が活性化されると、８アドレスのうち下位４アドレスに相当するアドレスカウンタをリセットする。具体的には、２０ビットからなるアドレスの場合、０ビット目（最下位ビット）と１ビット目とがリセットされる。またアドレスカウンタ回路４０４は、信号A_PGRST<1>が活性化されると、８アドレスのうち上位４アドレスのアドレスカウンタをリセットする。具体的には、２０ビットからなるアドレスの場合、３ビット目がリセットされる。
【０１４０】
アドレス切り替え回路２２３ｇは、信号PGPRGCMDが活性化されると、アドレス制御回路１２４が生成したアドレスに切り替えるためのアドレス切り替え信号ｎ４２を活性化する。この信号ｎ４２は、ＯＲ回路１０８を介してアドレス切り替え信号CUTINとしてアドレス制御回路１２４に入力される。
【０１４１】
アドレス選択許可回路２２３ｈは、信号PGPRGCMDが活性化されると、自動動作用のアドレス信号線を有効にする信号ｎ２２を活性化する。この信号ｎ２２は、ＯＲ回路１０７を介してアドレス線活性信号ADECENとして自動用バンク選択回路１０１に入力される。
【０１４２】
比較許可回路２２３ｉは、自動動作時のベリファイデータがバス線A_DSBに伝送された後に、ベリファイ比較許可信号ｎ０２（１パルスからなる）を活性化する。この信号ｎ０２は、ＯＲ回路１０６を介して信号CMPSETとしてデータ制御回路１２５に入力される。これにより、装置外部から与えられた書き込みデータとメモリセルアレイ１に書き込まれ且つ直後に読み出されたデータとのベリファイ動作が行われる。
【０１４３】
アドレスカウントアップ回路２２３ｆは、ベリファイ動作が行われた後に、最終アドレス検知回路がベリファイ動作における最終アドレスでないことを通知している場合、次のアドレスのベリファイ動作を行うために１パルスからなるカウントアップ信号ｎ５２を活性化する。このパルス信号ｎ５２は、ＯＲ回路１１０を介してカウントアップ信号A_ADDADVとしてアドレスカウンタ回路４０４に入力される。これにより、アドレスカウンタ回路４０４はカウンタ値を例えばバイナリデータ値で１だけカウントアップする。
【０１４４】
なお、ステートマシン２２３の動作は、図示せぬが、内部または外部で生成された基準クロック信号の立ち上がり信号もしくは立下り信号に同期して動作タイミングを決定する。またこれに限定されず、ステートマシン２２３は、コマンドデコーダ１２１が出力した信号或いは当該ステートマシン２２３が生成した信号を検知した後、任意の時間で次の信号を生成する回路であってもよい。
【０１４５】
次に、このように構成された不揮発性半導体記憶装置の動作を説明する。メモリセルアレイ１へのデータの書き込みは、既知の手段により行われる。例えばメモリセルアレイ１のワード線に昇圧電位を供給し、ビット線には書き込みデータに応じた所定書き込み電圧を供給し、所定時間の書き込みのための電流を供給して、メモリセルのチャネル領域に発生させたホットエレクトロンをメモリセルの浮遊ゲートと呼ばれる領域に注入することでメモリセルの閾値電圧を変化させる方法などである。この一連の制御は図示せぬが前記ステートマシン２２３内に配置されたタイミング生成回路にて制御をおこない、所定のタイミングにて内部電源制御回路４１に通知することでメモリセルのワード線とビット線とが制御される。
【０１４６】
書き込みが終了したのちは、メモリセルアレイ１に所定データが書き込まれたことを確認するため、ベリファイが行われる。ベリファイ動作は、上記第１の実施形態で説明したパスワード判定動作と同様に行われる。ページ書き込みで書き込みできるアドレス数が８でパスワードのアドレス数が４の場合、ベリファイ結果は、比較許可信号CMPSET<0>〜CMPSET<7>に応じてそれぞれの判定回路３００〜３０７が備えるベリファイレジスタに格納される。ベリファイ結果のうち、全アドレスの照合結果は既存の信号VERIOKにて、アドレス０〜３までのベリファイ結果は信号UNLKOKにてステートマシン２２３に通知される。
【０１４７】
また、ベリファイリードは、既知の方法により行われる。例えばメモリセルのワード線に読み出し電圧を供給し、ビット線には所定読み出し電流を供給する。メモリセルに書き込まれたデータに応じた電位がカラムゲート３を介してベリファイ用センスアンプ４に伝達される。ベリファイ用センスアンプ４は、所定参照電位と上記メモリセルに書き込まれたデータに応じた電位との微小電位差を比較して、例えば参照電位が高いと判定した場合には“１”データと判定し、一方参照電位の方が低いと判定した場合には“０”データと判定する。そして、ベリファイ用センスアンプ４は、このセンスしたデータをバス線A_DSBに出力する。このセンス動作の制御は、図示せぬがステートマシン２２３が活性化する制御信号により制御され、所定のタイミングにて内部電源制御回路４１に通知することでメモリセルアレイ１のワード線とビット線とが制御される。
【０１４８】
ベリファイにより信号VERIOKが活性化された状態は、１ページ内の全アドレス分のデータにおけるベリファイ結果が一致していることを示している。よって、ステートマシン２２３は、ページ書き込み動作が正常に完了したものとして、動作終了信号を活性化して図示せぬが動作終了をコマンドデコーダ１２１に通知する。これを受けて、コマンドデコーダ１２１は、信号PGPRGCMDを非活性化する。信号PGPRGCMDを非活性化されると、全アドレスリセット回路２２３ｄは信号ｎ３２を活性化し、アドレス切り替え回路２２３ｇはｎ４２を非活性化し、アドレス選択許可回路２２３ｈはｎ２２を非活性化する。その後、ステートマシン２２３は、動作終了信号を非活性の状態にする。これにより、当該装置は、自動動作を終了して初期状態に戻る。
【０１４９】
また、ベリファイにより信号VERIOKが非活性化でかつ信号UNLKOKが活性化された状態は、８アドレスのうち下位４アドレスにおいてはベリファイ結果が一致し且つ上位４アドレスにおいてはベリファイ結果が不一致であることを示している。この場合、上位４アドレスのデータの再度書き込みが必要であることから、ページアドレスリセット回路２２３ｅはアドレスカウンタ回路４０４の初期値を“４”に設定するために、信号A_PGRST<1>を非活性、信号A_PGRST<0>を活性化する。それとともに、ステートマシン２２３は、上記データに再度書き込みを行うために内部電源制御回路４１を制御して、メモリセルアレイ１に書き込み高電圧を供給する。
【０１５０】
また、ベリファイにより信号VERIOKと信号UNLKOKとの双方が非活性化された状態は、８アドレスのうち上位４アドレスと下位４アドレスとがともにベリファイ結果が不一致であることを示している。この場合、ページアドレスリセット回路２２３ｅは、アドレスカウンタ回路４０４の初期値を“０”に設定するため、信号A_PGRST<1>と信号A_PGRST<0>とをともに活性化する。これにより、再度アドレス０から書き込み動作が行われる。それとともに、ステートマシン２２３は、上記データに再度書き込みを行うために内部電源制御回路４１を制御して、メモリセルアレイ１に書き込み高電圧を供給する。
【０１５１】
図１４は、ステートマシン２２３のページ書き込み動作を示すフローチャートである。ステートマシン２２３は、プロテクトＲＯＭ３１を参照してページ書き込みを行う領域がプロテクト状態であるか否かを判定する（ステップ１４ａ）。当該領域がプロテクト状態である場合、ステートマシン２２３は、ページ書き込み動作を終了する。一方当該領域がプロテクト状態でない場合、ステートマシン２２３は、ステートマシン２２３が備えるレジスタ（図示せず）に記憶された数値ｐを“０”に設定する（ステップ１４ｂ）。次にステートマシン２２３は、アドレスカウンタ回路４０４の初期値を上記数値ｐに設定する（ステップ１４ｃ）。
【０１５２】
次にステートマシン２２３は、内部電源制御回路４１を制御して、メモリセルアレイ１に書き込み高電圧を供給する（ステップ１４ｄ）。次にステートマシン２２３は、メモリセルアレイ１にデータを書き込む処理を実行する（ステップ１４ｅ）。次にステートマシン２２３は、アドレスカウンタ回路４０４のカウント値を１つカウントアップする（ステップ１４ｆ）。次にステートマシン２２３は、メモリセルアレイ１に書き込んだデータが１ページ内の最終アドレスであるかを監視する（ステップ１４ｇ）。最終アドレスでない場合は、ステートマシン２２３はアドレスに基づいて順次データの書き込みを行う。
【０１５３】
最終アドレスである場合は、ステートマシン２２３は以後ベリファイ動作を実行する。先ずステートマシン２２３は、アドレスカウンタ回路４０４の初期値を上記数値ｐに設定する（ステップ１４ｈ）。次にステートマシン２２３は、上記メモリセルアレイ１に書き込んだデータに対してベリファイを行う（ステップ１４ｉ）。次にステートマシン２２３は、アドレスカウンタ回路４０４のカウント値を１つカウントアップする（ステップ１４ｊ）。次にステートマシン２２３は、ベリファイを行ったデータのアドレスが最終アドレスであるかを監視する（ステップ１４ｋ）。最終アドレスでない場合は、ステートマシン２２３はアドレスに基づいて順次データのベリファイを行う。
【０１５４】
最終アドレスである場合は、ステートマシン２２３は信号VERIOKが活性化された否かを監視する（ステップ１４ｌ）。信号VERIOKが活性化された場合、ステートマシン２２３は書き込みデータが正確に書き込まれたと判断して処理を終了する。信号VERIOKが活性化されない場合、ステートマシン２２３は信号UNLKOKが活性化された否かを監視する（ステップ１４ｍ）。信号UNLKOKが活性化されない場合、ステートマシン２２３はアドレスカウンタ回路４０４の初期値を“０”に設定し、再度書き込みを行う。
【０１５５】
一方信号UNLKOKが活性化された場合、ステートマシン２２３は下位４アドレス分の書き込みデータは正確にメモリセルアレイ１に書き込まれたと判断する。そしてステートマシン２２３は、上記数値ｐを“４”に設定する（ステップ１４ｎ）。そして、ステートマシン２２３はアドレスカウンタ回路４０４の初期値を“４”に設定し、以後上位４アドレス分のデータのみ再度書き込みを行う。
【０１５６】
以上詳述したように本実施形態では、上記第１の実施形態で示したパスワードアンロック動作の構成を用いて、ページ書き込み動作を行うようにしている。すなわち、ページ書き込みが正確に行われなかったと判断した場合（信号VERIOKが非活性）、下位４アドレス分のデータが正確に書き込まれたか否かを検知する。そして、下位４アドレス分のデータが正確に書き込まれた場合（信号UNLKOKが活性）、以後上位４アドレス分のデータのみ再度書き込みを行うようにしている。
【０１５７】
したがって本実施形態によれば、パスワードアンロック機能を備えたことによる最小限の回路面積増加を不揮発性半導体記憶装置に負わせるだけで、ページ書き込みの平均書き込み時間を短縮することができる。例えば、ベリファイの結果再度書き込みが必要なビット数がランダムな１ビットである場合、４アドレス分に相当するベリファイにかかる時間として５μｓ程度の短縮が可能となる。
【０１５８】
さらに本実施形態は、ページ書き込み動作に限らず、消去コマンドが入力されたのちに装置内部で自動的に行われる消去前書き込み動作においても同様に適用することができ、消去前書き込み動作、ひいては消去動作も高速化をはかることが可能である。
【０１５９】
（第３の実施形態）
第３の実施形態は、上記第２の実施形態の他の構成例である。図１５は、本発明の第３の実施形態に係るデータ制御回路１２５の構成を示すブロック図である。
【０１６０】
信号VERIOKは、１ページ内のアドレスのうち、パスワードアンロック動作に必要なアドレス以外(上位アドレスと称す)のベリファイ結果が一致している場合に活性化される信号である。一方、信号UNLKOKは、パスワードアンロック動作に必要なアドレス(下位アドレスと称す)のベリファイ結果が一致している場合に活性化される信号である。例えば、信号UNLKOKはアドレス０から３まで、信号VERIOKはアドレス４から７までのベリファイ結果を通知するよう構成する。
【０１６１】
このような構成にするために、一致信号COMP<3>と上記信号PGPRGCMDとを入力に持つＯＲ回路３１４をデータ制御回路１２５に追加する。そして、一致信号COMP<3>の替わりにＯＲ回路３１４の出力信号を判定回路３０４に入力する。これにより、判定回路３０４は、一致信号COMP<3>が活性化されない場合でも、ページ書き込み動作中（信号PGPRGCMDが活性）は一致信号COMP<4>を出力可能となる。
【０１６２】
図１６は、本発明の第３の実施形態に係るステートマシン２２３の構成を示すブロック図である。図１６において、ページアドレスリセット回路２２３ｅから出力された信号A_PGRST<0>は、最終アドレス検知回路２２３ａに入力されている。
【０１６３】
次に、このように構成された不揮発性半導体記憶装置の動作について説明する。ベリファイにより信号VERIOKが非活性化かつ信号UNLKOKが活性化された状態は、８アドレスのうち下位４アドレスにおいてはベリファイ結果が一致し且つ上位４アドレスにおいてはベリファイ結果が不一致であることを示している。この場合、上位４アドレスのデータの再度書き込みが必要であることから、ページアドレスリセット回路２２３ｅはアドレスカウンタ回路４０４の初期値を“４”に設定するために、信号A_PGRST<1>を非活性化し且つ信号A_PGRST<0>を活性化する。また、信号A_PGRST<1:0>は、最終アドレス検知回路２２３ａにも入力されている。最終アドレス検知回路２２３ａは、信号A_PGRST<1>が非活性状態且つ信号A_PGRST<0>が活性状態の場合、最終アドレス値ｅを“７”に設定する。
【０１６４】
また、ベリファイにより信号VERIOKが活性化かつ信号UNLKOKが非活性化された状態は、８アドレスのうち上位４アドレスにおいてはベリファイ結果が一致し且つ下位４アドレスにおいてはベリファイ結果が不一致であることを示している。この場合、下位４アドレスのデータの再度書き込みが必要であることから、ページアドレスリセット回路２２３ｅはアドレスカウンタ回路４０４の初期値を“０”に設定するために、信号A_PGRST<1>を活性化し且つ信号A_PGRST<0>を非活性化する。最終アドレス検知回路２２３ａは、信号A_PGRST<1>が活性状態且つ信号A_PGRST<0>が非活性状態の場合、最終アドレス値ｅを“３”に設定する。
【０１６５】
また、ベリファイにより信号VERIOKと信号UNLKOKとのが共に非活性化された状態は、８アドレスのうち上位４アドレスと下位４アドレスとがともにベリファイ結果が不一致であることを示している。この場合、ページアドレスリセット回路２２３ｅは、アドレスカウンタ回路４０４の初期値を“０”に設定するため、信号A_PGRST<1>と信号A_PGRST<0>とをともに活性化する。これにより、再度アドレス０から書き込み動作が行われる。また最終アドレス検知回路２２３ａは、信号A_PGRST<1>と信号A_PGRST<0>とが活性状態の場合、最終アドレス値ｅを“７”に設定する。
【０１６６】
図１７は、ステートマシン２２３のページ書き込み動作を示すフローチャートである。ステートマシン２２３は、プロテクトＲＯＭ３１を参照してページ書き込みを行う領域がプロテクト状態であるか否かを判定する（ステップ１７ａ）。当該領域がプロテクト状態である場合、ステートマシン２２３は、ページ書き込み動作を終了する。一方当該領域がプロテクト状態でない場合、ステートマシン２２３は、ステートマシン２２３が備えるレジスタ（図示せず）に記憶された数値ｐを“０”に、数値ｅを“７”設定する（ステップ１７ｂ）。次にステートマシン２２３は、アドレスカウンタ回路４０４の初期値を上記数値ｐに設定し、最終アドレス検知回路２２３ａの最終アドレス値を上記数値ｅに設定する（ステップ１７ｃ）。
【０１６７】
次にステートマシン２２３は、内部電源制御回路４１を制御して、メモリセルアレイ１に書き込み高電圧を供給する（ステップ１７ｄ）。次にステートマシン２２３は、メモリセルアレイ１にデータを書き込む処理を実行する（ステップ１７ｅ）。次にステートマシン２２３は、アドレスカウンタ回路４０４のカウント値を１つカウントアップする（ステップ１７ｆ）。次にステートマシン２２３は、メモリセルアレイ１に書き込んだデータが１ページ内の最終アドレスであるかを監視する（ステップ１７ｇ）。最終アドレスでない場合は、ステートマシン２２３はアドレスに基づいて順次データの書き込みを行う。
【０１６８】
最終アドレスである場合は、ステートマシン２２３は以後ベリファイ動作を実行する。先ずステートマシン２２３は、アドレスカウンタ回路４０４の初期値を上記数値ｐに設定する（ステップ１７ｈ）。次にステートマシン２２３は、上記メモリセルアレイ１に書き込んだデータに対してベリファイを行う（ステップ１７ｉ）。次にステートマシン２２３は、アドレスカウンタ回路４０４のカウント値を１つカウントアップする（ステップ１７ｊ）。次にステートマシン２２３は、ベリファイを行ったデータのアドレスが最終アドレスであるかを監視する（ステップ１７ｋ）。最終アドレスでない場合は、ステートマシン２２３はアドレスに基づいて順次データのベリファイを行う。
【０１６９】
最終アドレスである場合は、ステートマシン２２３は信号VERIOKが活性化された否か、かつ信号UNLKOKが活性化された否かを監視する（ステップ１７ｌ）。信号VERIOKと信号UNLKOKとがともに活性化された場合（図中の（１，１））、ステートマシン２２３は書き込みデータが正確に書き込まれたと判断して処理を終了する。
【０１７０】
また、信号VERIOKと信号UNLKOKとがともに非活性化された場合（図中の（０，０））、ステートマシン２２３は、数値ｐを“０”に、数値ｅを“７”設定する（ステップ１７ｍ）。これにより、ステートマシン２２３は、アドレスカウンタ回路４０４の初期値が“０”、最終アドレス検知回路２２３ａの最終アドレス値が“７”としてページ書き込みを実行する。
【０１７１】
また、信号VERIOKが非活性化かつ信号UNLKOKが活性化された場合（図中の（０，１））、ステートマシン２２３は、数値ｐを“４”に、数値ｅを“７”設定する（ステップ１７ｎ）。これにより、ステートマシン２２３は、アドレスカウンタ回路４０４の初期値が“４”、最終アドレス検知回路２２３ａの最終アドレス値が“７”としてページ書き込みを実行する。
【０１７２】
また、信号VERIOKが活性化かつ信号UNLKOKが非活性化された場合（図中の（１，０））、ステートマシン２２３は、数値ｐを“０”に、数値ｅを“３”設定する（ステップ１７ｏ）。これにより、ステートマシン２２３は、アドレスカウンタ回路４０４の初期値が“０”、最終アドレス検知回路２２３ａの最終アドレス値が“３”としてページ書き込みを実行する。
【０１７３】
以上詳述したように本実施形態では、上記第１の実施形態で示したパスワードアンロック動作の構成を用いて、ページ書き込み動作を行うようにしている。すなわち、ページ書き込みが正確に行われなかったと判断した場合（信号VERIOKが非活性）、上位４アドレス分のデータと下位４アドレス分のデータとのうちどちらのアドレス分のデータが正確に書き込まれなかったかを検知する。そして、データが正確に書き込まれなかったアドレス分のデータのみ再度書き込みを行うようにしている。
【０１７４】
したがって本実施形態によれば、パスワードアンロック機能を備えたことによる最小限の回路面積増加を不揮発性半導体記憶装置に負わせるだけで、ページ書き込みの平均書き込み時間を短縮することができる。また、上記第２の実施形態と比較して、ページ書き込みの平均書き込み時間をさらに短縮することができる。
【０１７５】
また本実施形態は、ページ書き込み動作に限らず、消去コマンドが入力されたのちに装置内部で自動的に行われる消去前書き込み動作においても同様に適用することができ、消去前書き込み動作、ひいては消去動作も高速化をはかることが可能である。
【０１７６】
この発明は、上記実施形態に限定されるものではなく、その他、本発明の要旨を変更しない範囲において種々変形して実施可能である。
【図面の簡単な説明】
【０１７７】
【図１】本発明の第１の実施形態に係る不揮発性半導体記憶装置の構成を示すブロック図。
【図２】図１に示した不揮発性半導体記憶装置のタイミング図。
【図３】図１に示したステートマシン１２３の動作を示すフローチャート。
【図４】図１に示したステートマシン１２３の構成を示すブロック図。
【図５】図１に示したアドレス制御回路１２４の構成を示すブロック図。
【図６】メモリセルアレイ１が備えるバンクを選択する方法を説明する図。
【図７】図１に示したデータ制御回路１２５の構成を示すブロック図。
【図８】図７に示した判定選択回路３１２の構成を示す回路図。
【図９】判定選択回路の他の構成例。
【図１０】図９に示した判定選択回路３１３の構成を示す回路図。
【図１１】１ビット分の判定回路の構成を示す回路図。
【図１２】図１に示したコマンド許可レジスタ１２６の構成を示す回路図。
【図１３】本発明の第２の実施形態に係るステートマシン２２３の構成を示すブロック図。
【図１４】図１３に示したステートマシン２２３のページ書き込み動作を示すフローチャート。
【図１５】本発明の第３の実施形態に係るデータ制御回路１２５の構成を示すブロック図。
【図１６】本発明の第３の実施形態に係るステートマシン２２３の構成を示すブロック図。
【図１７】図１６に示したステートマシン２２３のページ書き込み動作を示すフローチャート。
【図１８】プロテクト機能を備えた不揮発性半導体記憶装置の一例を示すブロック図。
【図１９】図１８に示した不揮発性半導体記憶装置における書き込み動作のフローチャート。
【図２０】図１８に示した不揮発性半導体記憶装置における消去動作のフローチャート。
【図２１】複数個のパスワードデータが入力される場合のタイミング図の一例。
【符号の説明】
【０１７８】
１…メモリセルアレイ、１Ａ…バンクＡ、１Ｂ…バンクＢ、１Ｐ…バンクＰ、２，２Ａ，２Ｂ，２Ｐ…ロウデコーダ、３，３Ａ，３Ｂ，３Ｐ…カラムゲート、４…ベリファイ用センスアンプ、５…リード用センスアンプ、１１…Ｉ／Ｏバッファ、１２，１３…入力信号バッファ、１４…アドレスバッファ、２１，１２１…コマンドデコーダ、２２…タイマ、２３，１２３，２２３…ステートマシン、２４，１２４…アドレス制御回路、２５，１２５…データ制御回路、３１…プロテクトＲＯＭ、４１…内部電源制御回路、１０１…自動用バンク選択回路、１０２…リード用バンク選択回路、１０３…アドレス選択スイッチ、１０４〜１１１…ＯＲ回路、１２３ａ，２２３ａ…最終アドレス検知回路、１２３ｂ，２２３ｂ…一致検知回路、１２３ｃ，２２３ｃ…動作検知回路、１２３ｄ，２２３ｄ…全アドレスリセット回路、１２３ｅ，２２３ｆ…アドレスカウントアップ回路、１２３ｆ，２２３ｇ…アドレス切り替え回路、１２３ｇ，２２３ｈ…アドレス選択許可回路、１２３ｈ…パスワード受付許可回路、１２３ｉ，２２３ｉ…比較許可回路、１２３ｊ…コマンド受付許可回路、１２３ｋ，２２３ｊ…タイマー回路、１２６…コマンド許可レジスタ、２２３ｅ…ページアドレスリセット回路、３００〜３０７…判定回路、３０８，３０９…バッファ、３１１…データ入力許可回路、３１２，３１３…判定選択回路、３１４…ＯＲ回路、３２０〜３２３…ＮＯＲ回路、３２４〜３３５…ＮＡＮＤ回路、３３６〜３５３…インバータ回路、３５４〜３５７…排他的否定論理和回路、３６０〜３６４…インバータ回路、３６５，３６６…クロックドインバータ回路、３６７…排他的ＯＲ回路、３６８〜３７０…ＮＡＮＤ回路、３７１…ＮＯＲ回路、３７２…データ保持回路、３７３…ベリファイ結果保持回路、４００…リード用アドレス制御回路、４０１…アドレスラッチ回路、４０２，４０３…アドレス選択回路、４０４…アドレスカウンタ回路、４０５，４０６…ＯＲ回路、５００，５０１…ＮＯＲ回路。
【図１】
2005259291.tif 000003
【図２】
2005259291.tif 000004
【図３】
2005259291.tif 000005
【図４】
2005259291.tif 000006
【図５】
2005259291.tif 000007
【図６】
2005259291.tif 000008
【図７】
2005259291.tif 000009
【図８】
2005259291.tif 000010
【図９】
2005259291.tif 000011
【図１０】
2005259291.tif 000012
【図１１】
2005259291.tif 000013
【図１２】
2005259291.tif 000014
【図１３】
2005259291.tif 000015
【図１４】
2005259291.tif 000016
【図１５】
2005259291.tif 000017
【図１６】
2005259291.tif 000018
【図１７】
2005259291.tif 000019
【図１８】
2005259291.tif 000020
【図１９】
2005259291.tif 000021
【図２０】
2005259291.tif 000022
【図２１】
2005259291.tif 000023