(57)【要約】【課題】動作速度を向上出来る半導体記憶装置を提供すること。【解決手段】動作がプロセッサ２の制御によって自動で行われる半導体記憶装置１であって、不揮発性のメモリセルＭＣを備えたメモリセルアレイと、第１レジスタを保持し、電圧を発生する電源回路１１と、第２レジスタを保持し、前記メモリセルからデータを読み出し増幅するセンスアンプ７と、第３レジスタ３０を保持し、前記電源回路１１と前記センスアンプ７の動作を制御する制御回路１２と、前記第１乃至第３レジスタに命令を与えることにより、前記電源回路１１、前記センスアンプ７、及び前記制御回路１２の動作を制御する前記プロセッサ２とを具備し、前記制御回路１２は、前記第３レジスタ３０で受け取った前記命令をデコードして、デコード結果に基づいて前記電源回路１１及び前記センスアンプ７を直接制御可能である。【選択図】図１
2008181596.tif 000002
【特許請求の範囲】
【請求項１】
動作がプロセッサの制御によって自動で行われる半導体記憶装置であって、
不揮発性のメモリセルを備えたメモリセルアレイと、
第１レジスタを保持し、前記メモリセルへのデータの書き込み、消去、読み出しの少なくともいずれかに使用すべき電圧を発生する電源回路と、
第２レジスタを保持し、前記メモリセルからデータを読み出し、読み出しデータを増幅するセンスアンプと、
第３レジスタを保持し、前記電源回路と前記センスアンプの動作を制御する制御回路と、
前記第１乃至第３レジスタに命令を与えることにより、前記電源回路、前記センスアンプ、及び前記制御回路の動作を制御する前記プロセッサと
を具備し、前記制御回路は、前記第３レジスタで受け取った前記プロセッサの前記命令をデコードして、デコード結果に基づいて前記電源回路及び前記センスアンプを直接制御可能である
ことを特徴とする半導体記憶装置。
【請求項２】
動作がプロセッサの制御によって自動で行われる第１動作モードと、プロセッサの制御によらずに動作が行われる第２動作モードとを備える半導体記憶装置であって、
不揮発性のメモリセルを備えたメモリセルアレイと、
前記メモリセルへのデータの書き込み、消去、読み出しの少なくともいずれかに使用すべき電圧を発生する電源回路と、
前記電源回路を起動させる第１信号と、前記第１動作モードにおいて前記プロセッサから与えられる第２信号とのいずれかを保持可能とされ、前記第２動作モードにおいてリセット状態とされる第１レジスタを備え、前記第１、第２信号のいずれかに基づいて前記電源回路を制御する制御回路と、
前記第１、第２信号のいずれか一方を選択して、選択したいずれか一方を前記第１レジスタに保持させる切り替え回路と、
前記第２信号を発生して、前記電源回路の動作を制御する前記プロセッサと
を具備し、前記切り替え回路は、
前記第１動作モードにおいては前記第１レジスタに前記第２信号を保持させ、
前記第２動作モードから前記第１動作モードに切り替わる際には、前記第１信号を前記第１レジスタに保持させた後に、前記第２信号を保持させる
ことを特徴とする半導体記憶装置。
【請求項３】
前記切り替え回路は、前記第１、第２信号のいずれか一方を選択して前記第１レジスタに与える選択回路と、
前記第１レジスタに保持される信号をデコードして、デコードの結果、前記第１レジスタが前記リセットされた状態であった場合には前記選択回路に前記第１信号を選択させ、前記第１レジスタがリセットされた状態でなかった場合に前記選択回路に前記第２信号を選択させるレジスタ値デコード回路と、
前記レジスタ値デコード回路におけるデコードの結果、前記第１レジスタが前記リセット状態である場合、及び前記プロセッサにより更新信号が与えられた際に、クロックに応答して、前記第１レジスタに対して前記選択回路にて選択された前記第１、第２信号のいずれか一方を取り込むよう命令する更新回路とを備え、
前記第２信号は（Ｍ＋Ｎ）ビット（Ｍは１以上、Ｎは２以上の自然数）の信号であり、
前記制御回路は、前記第２信号のうちの前記Ｎビットを用いて前記電源回路を制御し、
前記電源回路は、前記プロセッサから第３信号が与えられ、前記プロセッサにより前記更新信号が与えられた場合に前記第３信号を取り込む第２レジスタと、
前記第２レジスタに保持される前記第３信号が転送され、前記第１レジスタに保持される前記第２信号のうちの前記Ｍビットの値に応じて、前記第２レジスタから転送される前記第３信号を取り込む第３レジスタと、
前記第３レジスタに保持される前記第３信号に応じて前記電圧を発生する電圧発生部と
を備えることを特徴とする請求項２記載の半導体記憶装置。
【請求項４】
動作がプロセッサの制御によって自動で行われる半導体記憶装置であって、
不揮発性のメモリセルを複数含み、含まれる前記メモリセルが一括して消去される第１メモリブロックと、前記第１メモリブロックよりも少ない数の前記メモリセルを含み、含まれる前記メモリセルが一括して消去される複数の第２メモリブロックとを備えるメモリセルアレイと、
前記メモリセルからデータを読み出して増幅するセンスアンプと、
前記センスアンプで読み出されたデータを用いて、前記メモリセルへのデータの書き込みまたは消去が正常に行われたか否かのベリファイを行うベリファイ回路と、
前記第２メモリブロックについての選択・非選択に関する情報を前記ベリファイ回路へ与える前記プロセッサと
を具備し、前記センスアンプは前記第２メモリブロックからデータを読み出す際、選択された前記第２メモリブロックと、いずれかの非選択の前記第２メモリブロックとにつき連続してデータを読み出し、
前記ベリファイ回路は、非選択の前記第２メモリセルブロックからデータが読み出された際には、読み出されたデータにかかわらず、前記書き込みまたは消去が正常に行われたと判定する
ことを特徴とする半導体記憶装置。
【請求項５】
前記プロセッサから与えられる前記選択・非選択に関する情報は、前記第２メモリブロックが選択された際に、いずれの前記第２メモリブロックが選択されたかを示す情報であり、
前記ベリファイ回路は、前記選択・非選択に関する情報を保持可能なレジスタと、
前記ベリファイが行われる前記メモリセルのアドレスと、前記レジスタに保持される前記情報とを用いて、前記センスアンプでデータが読み出された前記メモリセルが、選択された前記第２メモリブロックに含まれるか否かを判定する判定回路と、
前記センスアンプで読み出されたデータについてのベリファイ結果を保持する保持回路と、
前記判定回路において、選択された前記第２メモリブロックに前記メモリセルが含まれると判定された場合には、前記保持回路に保持される前記ベリファイ結果を出力し、含まれないと判定された場合に、前記保持回路に保持される前記ベリファイ結果にかかわらず前記ベリファイが正常に完了した旨のデータを出力する出力回路と
を備えることを特徴とする請求項４記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体記憶装置に関する。例えば、電荷蓄積層と制御ゲートとを有するＭＯＳトランジスタを含む半導体メモリに関する。
【背景技術】
【０００２】
従来から、電気的にデータの書き換えが可能な不揮発性半導体メモリとしてＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）が知られている。また、マイコンを用いてＥＥＰＲＯＭを制御する手法が知られている（例えば特許文献１参照）。
【０００３】
マイコンによりＥＥＰＲＯＭを制御する場合、プロセッサから与えられる少ビットのアドレス線、データ線、及び書き込み制御線を用いてフラッシュメモリの回路を制御する。従って、制御配線を削減できる利点がある。また、マイコンによる自動制御の内容の変更・修正は、プロセッサを動かすソフトウェアの変更・修正で行われる。そのため、回路自体の修正が不要であり、製造工程のコストを抑えることができるメリットもある。
【０００４】
しかし、自動動作開始コマンドからマイコン起動まで時間差が生じることや、一度に制御できる信号線に限度がある等により、処理が遅くなるというデメリットがあることが問題であった。
【特許文献１】特開２００２−２６９０６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この発明は、動作速度を向上出来る半導体記憶装置を提供する。
【課題を解決するための手段】
【０００６】
この発明の一態様に係る半導体記憶装置は、動作がプロセッサの制御によって自動で行われる半導体記憶装置であって、不揮発性のメモリセルを備えたメモリセルアレイと、第１レジスタを保持し、前記メモリセルへのデータの書き込み、消去、読み出しの少なくともいずれかに使用すべき電圧を発生する電源回路と、第２レジスタを保持し、前記メモリセルからデータを読み出し、読み出しデータを増幅するセンスアンプと、第３レジスタを保持し、前記電源回路と前記センスアンプの動作を制御する制御回路と、前記第１乃至第３レジスタに命令を与えることにより、前記電源回路、前記センスアンプ、及び前記制御回路の動作を制御する前記プロセッサとを具備し、前記制御回路は、前記第３レジスタで受け取った前記プロセッサの前記命令をデコードして、デコード結果に基づいて前記電源回路及び前記センスアンプを直接制御可能である。
【発明の効果】
【０００７】
本発明によれば、動作速度を向上出来る半導体記憶装置を提供出来る。
【発明を実施するための最良の形態】
【０００８】
以下、この発明の実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００９】
［第１の実施形態］  
この発明の第１の実施形態に係る半導体記憶装置について説明する。図１は、本実施形態に係るＮＯＲ型フラッシュメモリのブロック図である。本実施形態に係るＮＯＲ型フラッシュメモリは、第１動作モードと第２動作モードの２つの動作モードを有している。第１動作モードは、ＣＰＵの制御に従ってクロックに同期して、データの読み出し、書き込み、及び消去が自動で行われる動作モードであり、以下、自動動作モードと呼ぶことがある。また第２動作モードは、ＣＰＵの制御によらずに行われる動作モードであり、以下、非自動動作モードと呼ぶことがある。
【００１０】
図示するようにＮＯＲ型フラッシュメモリ１は、マイクロコンピュータ（micro-computer、以下マイコンと呼ぶ）２、入力バッファ３、入出力バッファ４、アドレスバッファ５、メモリセル部６、センスアンプ７、ベリファイ回路８、コマンド解析回路９、発振回路１０、電源回路１１、制御回路１２、及びプロテクト情報保持回路１３を備えている。上記回路ブロック５〜８、１１〜１３の各々は、マイコンからの命令を受信するためのレジスタを有している。またマイコン２と各回路ブロック５〜８、１１〜１３の間の信号の伝達は、データの読み出し時には読み出し用バスを用いて、書き込み時には書き込み用バスを用いて行われる。
【００１１】
マイコン２は、ＣＰＵ２０及びメモリ２１を備えている。メモリ２１は、ＣＰＵ２０において実行される命令を保持している。ＣＰＵ２０は自動動作モードにおいて、メモリ２１に保持される命令を実行して、上記回路ブロック５〜８、１１〜１３の動作を制御する。自動動作モードにおいてＣＰＵ２０が各回路ブロック５〜８、１１〜１３に対して命令を出力すると、各回路ブロック５〜８、１１〜１３ではレジスタによって命令を受信する。そして各回路ブロック５〜８、１１〜１３は、受信した命令をデコードして、与えられた命令を実行する。
【００１２】
入力バッファ３は、外部から与えられるアドレスを受信する。そして受信したアドレスを、アドレスバッファ５及びコマンド解析回路９へ出力する。  
入出力バッファ４は、外部から与えられる書き込みデータ及びコマンドを受信する。そして受信した書き込みデータをベリファイ回路８へ出力し、コマンドをコマンド解析回路９へ出力する。また、ベリファイ回路８から与えられる読み出しデータを外部へ出力する。  
アドレスバッファ５は、入力バッファ３から与えられたアドレスを保持し、メモリセルアレイ６及びコマンド解析回路９へ出力する。
【００１３】
メモリセル部６は、不揮発性のメモリセルを備えており、外部から与えられたデータを記憶する。メモリセル部６は、メモリセルがマトリクス状に配置されたメモリセルアレイと、メモリセルアレイのロウ方向を選択するロウデコーダと、カラム方向を選択するカラムデコーダとを備えている。アドレスバッファから与えられたアドレスは、ロウデコーダ及びカラムデコーダに入力される。図２は、メモリセル部６の備えるメモリセルアレイの回路図である。
【００１４】
図示するようにメモリセルアレイは、（（ｍ＋１）×（ｎ＋１））個（ｍ、ｎは自然数）のメモリセルＭＣを備えている。メモリセルＭＣは、電荷蓄積層（例えばフローティングゲート）と制御ゲートとを含む積層ゲートを備えたＭＯＳトランジスタである。積層ゲートの構造は次の通りである。すなわち、半導体基板上にゲート絶縁膜を介在して電荷蓄積層が形成され、電荷蓄積層上にゲート間絶縁膜を介在して制御ゲートが形成される。電荷蓄積層及び制御ゲートは、例えば多結晶シリコン層を材料に用いて形成され、ゲート絶縁膜は、例えばシリコン酸化膜を材料に用いて形成され、ゲート間絶縁膜は、例えばシリコン酸化膜、またはシリコン酸化膜とシリコン窒化膜との積層構造であるＯＮ膜、ＮＯ膜、またはＯＮＯ膜で形成される。そして、同一行にあるメモリセルＭＣの制御ゲートは、同一のワード線ＷＬ０〜ＷＬｍのいずれかに共通接続される。また同一列にあるメモリセルＭＣのドレインは、同一のビット線ＢＬ０〜ＢＬｎのいずれかに共通接続される。更にメモリセルＭＣのソースは、同一のソース線ＳＬに共通接続される。なお以下では説明の便宜上、ワード線ＷＬ０〜ＷＬｍをワード線ＷＬ、ビット線ＢＬ０〜ＢＬｎをビット線ＢＬと一括して呼ぶことがある。  
そして、図示せぬロウデコーダがワード線ＷＬのいずれかを選択し、カラムデコーダがビット線ＢＬのいずれかを選択する。
【００１５】
図１に戻って説明を続ける。センスアンプ７は、データの読み出し時において、ロウデコーダによって選択されたワード線ＷＬ及びカラムデコーダによって選択されたビット線ＢＬに接続されたメモリセルＭＣからデータを読み出し、増幅する。
【００１６】
ベリファイ回路８は、入出力バッファ４から与えられる書き込みデータを、メモリセルＭＣへ書き込む。またベリファイ回路８は、センスアンプ７で読み出されたデータを、入出力バッファ４を介して外部へ出力する。更にベリファイ回路８は、センスアンプ７で読み出されたデータと書き込みデータとを用いてベリファイ動作を行う。ベリファイ動作とは、データの書き込みまたは消去が正常に行われたか否かの検証を行う動作である。
【００１７】
コマンド解析回路９は、入力バッファ３から与えられたアドレスを元に、入出力バッファ４から与えられたコマンドを解析する。そして、コマンド解析結果をマイコン２及び発振回路１０へ出力する。  
発振回路１０は、コマンド解析結果に基づいてクロックを発生し、マイコン２へ供給する。マイコン２のＣＰＵ２０は、クロックに同期して動作する。  
電源回路１１は、外部から与えられる電圧を昇圧するチャージポンプ回路を備える。そして、マイコン２及び制御回路１２の制御に従って、メモリセルへのデータの書き込み、読み出し、消去に必要な電圧を発生する。  
プロテクト情報保持回路１３は、プロテクト情報を保持する。プロテクト情報とは次のような情報である。メモリセルアレイには、データの更新や消去が行われないようにすべきメモリセルＭＣが含まれる場合がある。これらのメモリセルＭＣを保護すべく、いずれのメモリセルＭＣについてデータの更新・消去を禁止するかを示す情報がプロテクト情報である。プロテクト情報を参照することによって、マイコン２は、アクセス命令がなされたメモリセルＭＣについて、データの更新または消去を行うべきか否かを判断出来る。
【００１８】
制御回路１２は、マイコン２の制御に従って、電源回路１１及びセンスアンプ６の動作を直接制御する。図３は制御回路１２の構成を示すブロック図である。  
図示するように制御回路１２は、レジスタ３０及び制御用デコーダ３１を備えている。レジスタ３０は、マイコン２から与えられるデータ（命令）を保持する。レジスタ３０には、リセット信号として自動動作終了信号が与えられる。自動動作終了信号はマイコン２から与えられる信号であり、前述の自動動作モード時には“０”とされ、非自動動作モード時に“１”とされる。自動動作終了信号が“１”とされることで、レジスタ３０はリセット状態となる。更にレジスタ３０には、更新イネーブル信号がマイコン２から与えられる。更新イネーブル信号が“１”とされることで、レジスタ３０はデータを内部に取り込むことが可能となる。制御用デコーダ３１は、レジスタ３０に保持される命令をデコードする。そしてデコードして得られたデータに基づいて、電源回路１１及びセンスアンプ６の動作を制御する。
【００１９】
上記構成のフラッシュメモリによれば、下記（１）の効果が得られる。  
（１）半導体記憶装置の動作速度を高速化出来る（その１）。  
フラッシュメモリの自動動作は、ステートマシン回路やロジック回路によって実現する手法と、マイコンによる制御によって実現する手法とがある。ロジック回路等で制御する場合には、複数の回路ブロックに対して同時に命令を与えることが出来るため、フラッシュメモリの動作速度を向上できるが、配線が非常に多く、且つ複雑になる。
【００２０】
この点、マイコンによる制御であると、ロジック回路による制御に比べて配線数を大幅に削減出来る。しかし、マイコンは同時に複数の回路ブロックに命令を与えることは出来ない。また、扱えるビット数に制限があるため、一つの動作を行うためには複数の命令やデータを数回にわたって与えなければならない場合もある。従って、ロジック回路による制御に比べて、動作速度は遅くなる。
【００２１】
そこで本実施形態では、電圧の発生動作や、センスアンプにおけるベリファイ動作等、例えばある決まったルーチン的な処理を行う回路ブロックに対しては、マイコンではなくハードウェアを用いて制御をしている。具体的には、マイコン２とは別に新たに制御回路１２を設けている。制御回路１２は、電圧の発生動作やベリファイ動作を実行するように構成された例えばデコーダ（ロジック回路）を内部に備えている。そして、マイコン２によって数ビット（例えば８ビット）の命令を受け取ってデコードし、８ビット以上の複雑な制御命令を発生し、これによって電源回路１１及びセンスアンプ６を制御する。つまり、マイコン２は電圧発生やベリファイ動作に必要な全ての信号を与えることなく、制御回路が詳細な制御信号を自ら生成する。従って、電源回路１１及びセンスアンプ６の制御に関しては、マイコン２による処理を最小限とすることが出来、フラッシュメモリの動作速度を向上出来る。
【００２２】
更に、マイコン２は多くの信号を出力する必要が無くなるため、従来に比べて処理の空き時間が多くなる。そのため、出来た空き時間に別の命令を実行することが可能となる。その結果、従来に比べてより多くの命令をマイコン２は実行することが可能となり、これによってフラッシュメモリの高速化を図ることが出来る。
【００２３】
［第２の実施形態］  
次に、この発明の第２の実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第１の実施形態において、非自動動作モードから自動動作モードに移行する際の、電源回路１１の制御方法に関するものである。図４は、本実施形態に係るＮＯＲ型フラッシュメモリの構成を示すブロック図である。
【００２４】
図示するように本実施形態に係るフラッシュメモリ１は、上記第１の実施形態で説明した図１の構成において、更に切り替え回路１４を設けたものである。切り替え回路１４は、制御回路１２に対して入力すべき命令を切り替えるものである。その他の構成は第１の実施形態と同様であるので説明は省略する。
【００２５】
切り替え回路１４について図５を用いて説明する。図５は、制御回路１２及び切り替え回路１４の構成を示すブロック図である。  
図示するように切り替え回路１４は、選択回路４０、更新回路４１、及びレジスタ値デコーダ４２を備えている。選択回路４０は、レジスタ値デコーダ４２の出力信号に基づいて、マイコン２からのデータ（命令）と起動デコード値とのいずれか一方を選択する。そして選択したいずれか一方を、制御回路１２のレジスタ３０へ与える。マイコン２からのデータとは、マイコン２による制御回路１２の動作命令のことである。起動デコード値とは、電源回路１１におけるチャージポンプ回路を起動させるための命令である。従って制御回路１２は、起動デコード値が与えられた場合には、電源回路１１に対してチャージポンプ回路を起動させるように命令する。起動デコード値は、レジスタ等のメモリ装置によって常時選択回路４０に与えられる信号であっても良いし、または外部からの自動動作コマンドと共に与えられる信号であっても良い。すなわち、例えばコマンド解析回路９において、外部から入力されたコマンド要因信号をデコードして、これにより起動デコードが生成されて切り替え回路１４に与えられても良い。
【００２６】
レジスタ値デコーダ４２は、制御回路１２におけるレジスタ３０の出力信号（すなわちレジスタ３０に保持される命令）をデコードする。デコードの結果、レジスタ３０がリセット状態であった場合には“１”を出力し、それ以外の場合には“０”を出力する。レジスタ値デコーダ４２の出力が“１”である場合には、選択回路４０は起動デコード値を選択し、“０”である場合にはマイコン２からのデータを選択する。
【００２７】
更新回路４１は、ＯＲゲート４３及びＡＮＤゲート４４を備えている。ＯＲゲート４３は、レジスタ値デコーダ４２の出力信号と、マイコン２から与えられる更新イネーブル信号とのＯＲ演算を行う。更新イネーブル信号は、マイコン２がレジスタ３０に対してデータの取り込みを命令する際に“１”とされる信号である。ＡＮＤゲート４４は、ＯＲゲート４３の出力信号と、発振回路１０から与えられるクロックとのＡＮＤ演算を行う。そしてＡＮＤゲート４４の出力信号が、制御回路１２におけるレジスタ３０に対して更新命令として与えられる。すなわち、ＡＮＤゲート３３の出力が“１”である場合に、レジスタ３０は選択回路４０で選択された命令を内部に取り込む。これにより制御用デコーダ３１は、レジスタ３０に新たに取り込まれた命令に基づいて電源回路１１を制御する。
【００２８】
次に、上記構成のフラッシュメモリ２の動作について、特に非自動動作モード（第２動作モード）から自動動作モード（第１動作モード）に移行する際に着目して、図４乃至図７を参照しつつ説明する。図６は、上記フラッシュメモリの動作を示すフローチャートであり、図７は各種信号及びレジスタ３０の状態を示すタイミングチャートである。
【００２９】
まずフラッシュメモリ１が非自動動作モードであったとする（ステップＳ１０、図７における時刻ｔ１以前）。非自動動作モードでは、自動動作コマンドが“０”とされる。自動動作コマンドとは、外部から与えられる命令であり、フラッシュメモリ２を自動動作モードで動作させるための命令である。自動動作コマンドが“０”とされることで、コマンド解析回路９は非自動動作モードで動作すべきことを認識し、その旨を発振回路１０及びマイコン２へ伝える。これにより、発振回路１０はクロックの発生を停止する。またマイコン２は、自動動作終了信号を“１”とする。自動動作終了信号が“１”とされることで、制御回路１２におけるレジスタ３０はリセット状態とされる。また、レジスタ３０がリセット状態であるので、レジスタ値デコーダ４２の出力は“１”である。従って、選択回路４０は起動デコート値を選択して、レジスタ３０へ与える。しかし、この時点ではＡＮＤゲート４４の出力は“０”であるから、レジスタ３０は選択回路４０より与えられる起動デコード値を取り込まない。以上の状態により、マイコン２は非動作状態であり、フラッシュメモリ２は非自動動作モードで動作を行う。
【００３０】
次に、非自動動作モードから自動動作モードに移行すべく、時刻ｔ１において自動動作コマンドとして“１”が入力されたとする（ステップＳ１１）。すると、コマンド解析回路９は自動動作モードで動作すべきことを認識し、その旨を発振回路１０及びマイコン２へ伝える。これにより、発振回路１０はクロックを発生する（ステップＳ１２）。またマイコン２は、自動動作終了信号を“０”とする（ステップＳ１３）。自動動作終了信号が“０”とされることで、制御回路１２におけるレジスタ３０はリセット状態を解除される（ステップＳ１４）。なお、図７では自動動作コマンド信号が“０”から“１”に遷移するタイミングと、自動動作終了信号が“１”から“０”に遷移するタイミングが同時に記載してある。しかし、実際にはマイコン２が起動するには一定の時間が必要であるため、自動動作終了信号の遷移タイミングが遅れることが通常である。
【００３１】
その結果、ＡＮＤゲート４４の出力が“１”となる。すなわち、レジスタ値デコーダ４２の出力は“１”であるから、ＯＲゲート４３の出力は“１”である。その状態でクロックが発生されるため、ＡＮＤゲート４４の出力が“１”となる。これにより、レジスタ３０は選択回路４０から与えられる起動デコード値を内部に取り込む（ステップＳ１５、時刻ｔ２）。
【００３２】
レジスタ３０が起動デコード値を取り込むことによって、制御用デコーダ３１は起動デコード値をデコードして、電源回路１１に対してチャージポンプ回路を起動するよう命令する。同時に、レジスタ３０はリセット状態から解放されるため、レジスタ値デコーダ４２の出力が“０”となる（ステップＳ１６、時刻ｔ３）。
【００３３】
レジスタ値デコーダ４２の出力が“０”に変化したことで、選択回路４０はマイコンからのデータを取り込むようになる（ステップＳ１７、時刻ｔ４）。この時点では、レジスタ値デコーダ４２の出力が“０”であるから、ＯＲゲート４３の出力は“０”であり、レジスタ３０はマイコンのデータを内部には取り込まない。以上により、電源回路１１が自動動作モードで動作する準備が完了する。
【００３４】
その後は、マイコン２から与えられる更新イネーブル信号が“１”とされるタイミングで、レジスタ３０はマイコン２からのデータを内部に取り込む（ステップＳ１８、時刻ｔ５、ｔ６）。これによって、フラッシュメモリ２は自動動作モードで動作する（ステップＳ１９）。その後は、レジスタ３０がマイコン２からのデータを更新イネーブル信号のタイミングで取り込むことで、マイコン２によって制御回路１２の動作が制御される。
【００３５】
自動動作モードから非自動動作モードへの移行は次のようにして行われる。まず自動動作コマンドが“０”とされる。その結果、クロックは停止する。また自動動作終了信号が“１”とされ、更新イネーブル信号は“０”固定とされる。その結果、レジスタ３０はリセット状態とされ、レジスタ値デコーダ４２の出力は“１”となり、レジスタ３０の更新は禁止される。そして選択回路４０は起動デコード値を選択する。その結果、制御回路１２は、マイコン２の制御によらずに動作を行う。
【００３６】
上記のように、この発明の第２の実施形態に係る半導体記憶装置であると、第１の実施形態で説明した（１）の効果に加えて、下記（２）の効果が得られる。  
（２）半導体記憶装置の動作速度を向上出来る（その２）。  
フラッシュメモリの自動動作をロジック回路による制御に比べて処理が遅くなる（オーバーヘッド）デメリットの一つに、チャージポンプ回路の起動の遅れがある。
【００３７】
フラッシュメモリでは通常、自動動作時以外においてチャージポンプ回路は非動作状態とされる。これは、消費電力の低減やノイズ源となることを防止する目的である。従って、フラッシュメモリに自動動作コマンドが入力された際には、まずチャージポンプ回路を起動させる必要がある。この点、チャージポンプ回路の起動をマイコンによって行うには比較的長い時間がかかる。これは次のような理由による。すなわち、非自動動作モードから自動動作モードに移行する直前まで、マイコン２は動作していない。従って、チャージポンプの起動は、  
（ａ）外部から入力された自動動作コマンドをコマンド解析回路９で解析し、  
（ｂ）解析の結果、マイコン２が動作を開始し、  
（ｃ）動作を開始したマイコン２が、メモリ２１からチャージポンプ回路起動命令を読み出す  
ことによって行われる。つまり、自動動作コマンドが入力されたとしても、直ちに起動命令を出すことは難しく、通常、自動動作コマンドの入力から数百ｎｓ程度かかる。
【００３８】
チャージポンプ回路も、起動命令が与えられてから直ぐに起動可能なわけではなく、起動にはある程度の時間が必要である。従って、マイコン２による制御では、自動動作コマンドを入力してからチャージポンプ回路が動作可能となるまで、つまりフラッシュメモリが自動動作可能となるまでの時間が長くなる。
【００３９】
この点、本実施形態に係る構成であると、マイコン２の制御によらずに、チャージポンプ回路を起動するための命令である起動デコード値を制御回路１２へ与えている。そして、起動デコード値を取り込むためのトリガとなる信号を、切り替え回路１４のレジスタ値デコーダ４２及び更新回路４１によって与えている。すなわち、レジスタ３０の命令の取り込みタイミングを、マイコン２から与えられる更新イネーブル信号に依存すると、例え起動デコード値をマイコン２以外から与えてもチャージポンプ回路の起動は遅くなる。そこで本実施形態では、非自動動作モードではレジスタ３０がリセット状態であることを利用して、レジスタ３０の命令取り込みタイミングとして、レジスタ値デコーダ３０の出力を用いている。これにより、マイコン２が動作可能となるよりも早く、レジスタ３０に起動デコード値を入力することが可能となり、チャージポンプ回路を高速に起動させることが出来る。その結果、フラッシュメモリの高速動作が可能となる。
【００４０】
［第３の実施形態］  
次に、この発明の第３の実施形態に係る半導体記憶装置について説明する。本実施形態は上記第２の実施形態において、電源回路１１における電圧更新タイミングに関するものである。フラッシュメモリ２の全体構成は第２の実施形態で説明した図４の通りであるので説明は省略し、以下では第１、第２の実施形態と異なる点についてのみ説明する。図８は本実施形態に係るフラッシュメモリ１の備える制御回路１２、切り替え回路１４、及び電源回路１１の構成を示すブロック図である。
【００４１】
なお、マイコン２から切り替え回路１４に与えられるデータは（Ｍ＋Ｎ）ビットであり、例えばＭ＝１ビット、Ｎ＝７ビットの８ビットである。そして、例えばＭビットは８ビット中の最上位の１ビットであり、Ｎビットは８ビット中の下位の７ビットである。この（Ｍ＋Ｎ）ビットのうち、Ｎビットのデータが電源回路１１の制御情報であり、制御回路１２で用いられる。他方、Ｍビットのデータは電源回路１１における出力電圧の更新タイミングについての情報として用いられる。勿論、ビット数は上記のものに限定されない。
【００４２】
図示するように電源回路１１は、レジスタ５０、フリップフロップ５１、Ｄ／Ａコンバータ、レギュレータ５３、及びＡＮＤゲート５４、５５を備えている。レジスタ５０は、マイコン２から与えられる設定値を保持する。設定値とは、電源回路１１が発生すべき電圧の値に対応したデータである。フリップフロップ５１は、レジスタ５０から設定値が転送され、転送された設定値を保持する。Ｄ／Ａコンバータ５２には基準電源が与えられ、フリップフロップ５１に保持される設定値をデジタル値からアナログ値に変換する。レギュレータ５３は、Ｄ／Ａコンバータ５２で得られた値に従って、設定値に対応した値の電圧を発生し、出力する。ＡＮＤゲート５４は、クロックと更新イネーブル信号とのＡＮＤ演算を行う。そしてＡＮＤゲート５４の演算結果が“１”であるタイミングで、レジスタ５０は設定値を内部に取り込む。ＡＮＤゲート５５は、クロックと、制御回路１２におけるレジスタ３０が保持するデータのＭビットとのＡＮＤ演算を行う。そしてＡＮＤゲート５５の演算結果が“１”であるタイミングで、フリップフロップ５１は設定値を内部に取り込む。
【００４３】
次に、上記構成の電源回路１１の動作について図９を用いて説明する。図９は、電源回路の動作を示すフローチャートである。  
図示するように、まず自動動作モードにおいて（ステップＳ２０）、マイコン２から設定値がレジスタ５０に与えられる（ステップＳ２１）。この際、更新イネーブル信号が“１”であれば（ステップＳ２２、ＹＥＳ）、ＡＮＤゲート５４の出力が“１”となるので、設定値がレジスタ５０に取り込まれる（ステップＳ２３）。更に、更新タイミングであれば、すなわちレジスタ３０に保持される命令のＭビットが“１”であれば（ステップＳ２４、ＹＥＳ）、ＡＮＤゲート５５の出力が“１”となるので、設定値がフリップフロップ５１に取り込まれる（ステップＳ２５）。すると、フリップフロップ５１に保持される設定値に従って、Ｄ／Ａコンバータ５２及びレギュレータ５３により電圧が発生される（ステップＳ２６）。更に次の設定値がある場合には（ステップＳ２７、ＹＥＳ）、マイコン２によって電圧制御の空き時間内に次の設定値がレジスタ５０に与えられ（ステップＳ２８）、ステップＳ２２以降の動作が繰り返される。
【００４４】
以上の動作の具体例について、図１０を用いて説明する。図１０は、制御回路１２におけるレジスタ３０内の命令、電源回路１１におけるレジスタ５０及びフリップフロップ５１内の設定値、及びレギュレータ５３の出力電圧の遷移を示すタイミングチャートである。
【００４５】
図示するように、時刻ｔ１０においてレジスタ３０に電圧Ｖ２を用いた電圧制御１なる命令が与えられ、レジスタ５０には設定値Ｖ２が与えられ、電圧制御１の命令のＭビットが“１”（更新タイミング）であったとする。すると、レジスタ５０内の設定値Ｖ２はフリップフロップ５１にも与えられ、レギュレータ５３によって電圧Ｖ２が出力される。
【００４６】
次にマイコン２は、制御の空き時間である時刻ｔ１１に次の設定値Ｖ３をレジスタ５０に入力したとする。すると、設定値Ｖ３はレジスタ５０に取り込まれるが、更新タイミングではないのでフリップフロップ５１には取り込まれない。
【００４７】
次に時刻ｔ１２において、レジスタ３０に同じく電圧Ｖ２を用いた電圧制御２なる命令が与えられる。この命令は電圧を変更しないため、電圧制御２の命令のＭビットは“０”である。従って、依然、レジスタ５０内の設定値Ｖ３はフリップフロップ５１に取り込まれず、レギュレータ５３は電圧Ｖ２を出力し続ける。
【００４８】
次に時刻ｔ１３において、レジスタに電圧Ｖ３を用いた電圧制御３なる命令が与えられる。この命令は電圧の変更を伴うため、電圧制御３の命令のＭビットは“１”である。すなわち、更新タイミングであるので、レジスタ５０内の設定値Ｖ３がフリップフロップ５１に取り込まれる。これにより、レギュレータ５３は出力電圧をＶ２からＶ３に変更して出力する。
【００４９】
以上のように、この発明の第３の実施形態に係る半導体記憶装置であると、上記第１、第２の実施形態で説明した（１）、（２）の効果に加えて、下記（３）の効果が得られる。  
（３）半導体記憶装置の動作速度を向上出来る（その３）。  
フラッシュメモリの自動動作中には、書き込みや消去、読み出しのために、様々な値の電圧が必要になる。そして電圧の変更は、制御回路１２におけるレジスタ３０を更新するタイミングで行うことが多い。
【００５０】
そこで本実施形態に係る構成では、まず電源回路１１において、設定値を保持可能なレジスタ５０とフリップフロップ５１とを直列に設けている。そして、各々の設定値取り込みタイミングを異なるようにしている。具体的には、まず前段のレジスタ５０については、更新イネーブル信号のタイミングで設定値を取り込むようにしている。また後段のフリップフロップ５１については、レジスタ３０に保持される命令における一部のビットに基づいて、設定値を取り込むようにしている。そのために、レジスタ３０に保持される命令における一部のビットには、制御回路１２による電源回路１１の制御内容ではなく、電源回路１１の電圧更新のトリガとなる意味を持たせている。その上で、マイコン２は、処理が疎である時期に、次の設定値をレジスタ５０に入力する。新たな設定値がレジスタ５０に入力されたとしても、レジスタ３０内の命令における上記トリガが成立するまでは、電源回路１１の出力電圧は変更されることは無い。
【００５１】
以上のように、マイコン２が空き時間に設定値を電源回路１１へ入力することが出来、また予め電源回路１１に設定値を用意しておくことが出来る。そのため、マイコン２の負荷が軽減され、マイコン２の処理効率が向上出来ると共に、電源回路１１は速やかに電圧を変更出来る。その結果、フラッシュメモリの動作速度を向上出来る。
【００５２】
［第４の実施形態］  
次に、この発明の第４の実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第１乃至第３の実施形態のいずれかにおける、ベリファイ回路８の構成及び動作に関するものである。以下では、上記第１乃至第３の実施形態と異なる点についてのみ説明する。図１１は、本実施形態に係るフラッシュメモリ１のメモリセル部６が備えるメモリセルアレイのブロック図である。
【００５３】
図示するようにメモリセルアレイは、３つのレギュラーブロックＲＢＬＫ０〜ＲＢＬＫ２及び４つのブートブロックＢＢＬＫ０〜ＢＢＬＫ３を備えている。以下、レギュラーブロックＲＢＬＫ０〜ＲＢＬＫ２を区別しない場合には単にレギュラーブロックＲＢＬＫと呼び、ブートブロックＢＢＬＫ０〜ＢＢＬＫ３を区別しない場合にはブートブロックＢＢＬＫと呼ぶ。また、レギュラーブロックＲＢＬＫとブートブロックＢＢＬＫとを区別しない場合には、単にブロックと呼ぶ。
【００５４】
レギュラーブロックＲＢＬＫ及びブートブロックＢＢＬＫは、それぞれメモリセルＭＣの集合である。そして、各ブロック内のメモリセルＭＣは、一括して消去が行われる。つまり、ブロックサイズは消去単位に等しい。レギュラーブロックＲＢＬＫとブートブロックＢＢＬＫとの違いは、そのメモリサイズと用途である。まずメモリサイズに関しては、レギュラーブロックＲＢＬＫはブートブロックＢＢＬＫよりもサイズが大きく、例えば１つのレギュラーブロックＲＢＬＫのメモリサイズは、４つのブートブロックＢＢＬＫのメモリサイズの和に等しい。次に用途であるが、レギュラーブロックＲＢＬＫは画像や音声等、ユーザによって頻繁に書き換えられるデータのストレージとして用いられる。他方、ブートブロックＢＢＬＫは、回路ブロックの起動プログラム等、データサイズは小さいが、システムにとって重要なデータの保存用として用いられる。
【００５５】
次に、ベリファイ回路８によるレギュラーブロックＲＢＬＫ及びブートブロックＢＢＬＫのベリファイ動作について、図１２を用いて簡単に説明する。図１２は、レギュラーブロックＲＢＬＫ及びブートブロックＢＢＬＫを示しており、ベリファイ動作時におけるアクセスの様子を示す概念図である。
【００５６】
図示するように、レギュラーブロックＲＢＬＫとブートブロックＢＢＬＫとに関わらず、ベリファイ動作はレギュラーブロックＲＢＬＫのサイズで行われる。本実施形態の例であると、４つのブートブロックＢＢＬＫのメモリサイズ＝１つのレギュラーブロックＲＢＬＫのメモリサイズである。よって、例えばブートブロックＢＢＬＫ２について消去及び消去ベリファイを行う際には、ブートブロックＢＢＬＫ０〜ＢＢＬＫ３の全てについて消去ベリファイが行われる。
【００５７】
次に、本実施形態に係るフラッシュメモリ１の備えるベリファイ回路８の構成について、図１３を用いて説明する。図１３はベリファイ回路８の回路図である。  
図示するようにベリファイ回路８は、レジスタ６０−０〜６０−３、６５、判定回路６２、出力回路６３、及び比較回路６４を備えている。
【００５８】
レジスタ６０−０〜６０−３は、マイコン２から与えられるブートブロック選択信号に基づいて、ブートブロックＢＢＬＫの選択／非選択を示すフラグを立てる。レジスタ６０−０〜６０−３は、それぞれブートブロックＢＢＬＫ０〜ＢＢＬＫ３に対応している。そして、ブートブロックＢＢＬＫ０〜ＢＢＬＫ３のいずれかにつき実際にデータの更新（書き込みまたは消去）が行われ、ベリファイが必要である際には、対応するレジスタ６０−０〜６０−３のいずれかに“１”が保持され、その他には“０”が保持される。このように、実際にデータの更新が行われたブートブロックＢＢＬＫを、以下、選択ブートブロックＢＢＬＫと呼ぶことがある。
【００５９】
例えばブートブロックＢＢＬＫ２に対してデータの更新があったとする。この場合には、選択ブートブロックはブートブロックＢＢＬＫ２である。従って、図１２において説明したように、ベリファイ自体は４つのブートブロックＢＢＬＫ０〜ＢＢＬＫ３の全てについて行われるが、フラグはレジスタ６０−２のみが立てる。従って、レジスタ６０−２のみが“１”を保持し、その他のレジスタ６０−０、６０−１、６０−３は“０”を保持する。
【００６０】
判定回路６２は、ベリファイの行われたメモリセルＭＣが、選択ブートブロックＢＢＬＫに含まれるものであるか否かを判定する。判定回路６２は、ＡＮＤゲート７０−０〜７０−３及びＮＯＲゲート７１を備えている。ＡＮＤゲート７０−０〜７０−３は、それぞれブートブロックＢＢＬＫ０〜ＢＢＬＫ３を示すアドレス信号と、レジスタ６０−０〜６０−３に保持されるフラグとのＡＮＤ演算を行う。ブートブロックＢＢＬＫ０〜ＢＢＬＫ３を示すアドレス信号はマイコン２から与えられ、ベリファイが行われた読み出しデータを保持するメモリセルＭＣのブロックアドレスを示す信号である。すなわち、メモリセルＭＣがブートブロックＢＢＬＫ０に含まれるものである場合には、ブートブロックＢＢＬＫ０を示すアドレス信号が“１”とされ、ブートブロックＢＢＬＫ１に含まれるものである場合には、ブートブロックＢＢＬＫ１を示すアドレス信号が“１”とされる。ＮＯＲゲート７１は、ＡＮＤゲート７０−０〜７０−３の出力及びレギュラーブロック選択信号のＮＯＲ演算を行う。レギュラーブロック選択信号はマイコン２から与えられ、レギュラーブロックＲＢＬＫについてデータの更新があった場合に“１”とされ、それ以外の場合には“０”とされる。
【００６１】
従って、前述のようにブートブロックＢＢＬＫ２に対してデータの更新があったとする。すると、ブートブロックＢＢＬＫ２に含まれるメモリセルＭＣについてベリファイを行っている際には、ブートブロックＢＢＬＫ２を示すアドレス信号が“１”となり、ＡＮＤゲート７０−２の出力が“１”となる。そして、その他のＡＮＤゲート７０−０、７０−１、７０−３の出力は“０”となり、ＮＯＲゲート７１の出力は“０”となる。  
また、レギュラーブロックＲＢＬＫについてデータの更新があった場合にも、ＮＯＲゲート７１の出力は“０”となる。
【００６２】
他方、ブートブロックＢＢＬＫ０、ＢＢＬＫ１、ＢＢＬＫ３に含まれるメモリセルＭＣについてベリファイを行っている際には、それぞれブートブロックＢＢＬＫ０、ＢＢＬＫ１、ＢＢＬＫ３を示すアドレス信号が“１”となる。しかし、レジスタ６０−０、６０−１、６０−３は“０”を保持するため、全てのＡＮＤゲート７０−０〜７０−３の出力は“０”となり、ＮＯＲゲート７１の出力は“１”となる。
【００６３】
比較回路６４は、センスアンプ６で読み出されたデータと、書き込み元データ（消去の場合には“１”）とを比較し、メモリセルＭＣに正確なデータが保持されているか否かを判定する。比較の結果、両者が一致すれば“１”を出力し、不一致であれば“０”を出力する。
【００６４】
レジスタ６５は、比較回路６４における比較結果を保持する。レジスタ６５は、マイコン２から与えられるベリファイ結果更新信号によって比較結果を内部に取り込み、ベリファイ結果リセット信号によってリセットされる。
【００６５】
出力回路６３は、判定回路６２とレジスタ６５に保持される比較結果に基づいて、ベリファイ結果及び書き込みデータを出力する。出力回路６３は、ＡＮＤゲート８０、８１、及びＯＲゲート８２を備えている。ＡＮＤゲート８０は、レジスタに保持される比較結果と、ＮＯＲゲート７１の出力の反転信号とのＡＮＤ演算を行う。ＯＲゲート８２は、ＡＮＤゲート８０の出力とＮＯＲゲート７１の出力とのＯＲ演算を行う。そしてＯＲゲート８２における演算結果が、最終的なベリファイ結果として出力される。ＡＮＤゲート８１は、書き込み元データと、ＮＯＲゲート７１の出力の反転信号とのＯＲ演算を行う。
【００６６】
従って、ＡＮＤゲート７０−０〜７０−３の全ての出力が“０”となってＮＯＲゲート７１の出力が“１”となる場合には、ＮＯＲゲート８２の出力（ベリファイ結果）は強制的に“１”、すなわちベリファイＯＫとなる。またＡＮＤゲート８１の出力（書き込みデータ）は強制的に“０”固定とされる。他方、ＮＯＲゲート７１の出力が“０”となる場合には、ＮＯＲゲート８２及びＡＮＤゲート８１の出力は、それぞれレジスタ６５に保持される比較結果及び書き込み元データに依存する。
【００６７】
次に、メモリセルＭＣのデータ更新時における、上記構成のベリファイ回路８の動作について、図１４を用いて説明する。図１４は、ベリファイ回路８の動作のフローチャートである。なお、以下ではブートブロックＲＢＬＫ及び、レギュラーブロックＲＢＬＫを、区別しない場合にはまとめて選択ブロックと呼ぶことがある。
【００６８】
まず、データが更新されるブロック（選択ブロック）がブートブロックＢＢＬＫである場合（ステップＳ３０、ＹＥＳ）、マイコン２はレジスタ６０−０〜６０−３の設定を開始する（ステップＳ３１）。マイコン２は、ブートブロック番号ｉを“０”として（ステップＳ３２）、ブートブロックＢＢＬＫｉが選択ブロックであり且つプロテクトされていないか否かを判定する（ステップＳ３３）。選択ブロックであるか否かについては、アドレス信号を参照することで把握でき、プロテクトされているか否かについては、プロテクト情報保持回路１３内のプロテクト情報を参照することで把握出来る。
【００６９】
選択ブロックであり且つプロテクトされていない場合には（ステップＳ３３、ＹＥＳ）、当該ブロックについてデータの更新を行うので、マイコン２は当該ブロックに対応するレジスタ６０−０〜６０−３にフラグを立てる（ステップＳ３４）。前述の通り、例えばブートブロックＢＢＬＫ２についてデータの書き込みまたは消去を行う場合には、レジスタ６０−２は“１”を保持する。そしてステップＳ３３〜Ｓ３４の処理を、ｉが最大値（本実施形態では、ブートブロックＢＢＬＫは４つなのでｉ＝４−１＝３、ステップＳ３５）になるまで繰り返す（ステップＳ３６）。
【００７０】
以上により、レジスタ６０−０〜６０−３の設定が終了する。いずれかのブートブロックＢＢＬＫについてデータの更新が行われる場合には、対応するレジスタ６０−０〜６０−３に“１”が保持される。勿論、更新が行われるブートブロックＢＢＬＫ数は１つに限らず、複数個あっても良い。また、ブートブロックＢＢＬＫが選択ブロックであったとしても、当該ブートブロックＢＢＬＫがプロテクトされている場合には、データの更新は行われず、従って当該ブートブロックＢＢＬＫに対応するレジスタ６０−０〜６０−３は“０”を保持したままである。
【００７１】
ステップＳ３５が終了した結果（ステップＳ３５、ＹＥＳ）、データを更新すべきブロックが存在する場合、または選択ブロックがレギュラーブロックＲＢＬＫであり（ステップＳ３０、ＮＯ）、且つ選択ブロックがプロテクトされていない場合（ステップＳ３８、ＹＥＳ）には、選択ブロックについてデータの更新が行われる（ステップＳ３９）。すなわち、選択ブロックについて、データの書き込みまたは消去が行われる。ステップＳ３７、Ｓ３８でＮＯの場合には、処理は終了する。
【００７２】
ステップＳ３９におけるデータの更新が終了すると、次にベリファイ動作が実行される（ステップＳ４０）。まず、マイコン２はロウアドレス及びカラムアドレスを先頭アドレスに設定する（ステップＳ４１）。
【００７３】
例えば、レギュラーブロックＲＢＬＫ０が選択ブロックである場合には、先頭アドレスは、レギュラーブロックＲＢＬＫ０の先頭メモリセルＭＣに対応するアドレスである。最終アドレスは、レギュラーブロックＲＢＬＫ０の最終メモリセルＭＣに対応するアドレスである。
【００７４】
他方、図１２に示すようにブートブロックＢＢＬＫが選択される場合には、先頭アドレスは、ブートブロックＢＢＬＫ０の先頭メモリセルに対応するアドレスである。最終アドレスは、ブートブロックＢＢＬＫ３の最終メモリセルＭＣに対応するアドレスである。これは、前述の通り、ベリファイは４つのブートブロックＢＢＬＫ０〜ＢＢＬＫ３について行われるからである。
【００７５】
そして、上記アドレスに対応するメモリセルＭＣ（これを選択メモリセルと呼ぶ）からデータが読み出され、比較回路６４において比較が行われる。これによって、選択メモリセルについて正常にデータの更新が行われているか否かが検証される。
【００７６】
また、比較回路において比較が行われたメモリセル（選択メモリセル）が選択ブロック内に含まれるものか否かの判定を行う（ステップＳ４２）。なおこの判定については、マイコン２は特になんらの処理も必要としない。なぜなら、ステップＳ４２の処理は判定回路６２が行うからである。前述の通り、ＮＯＲゲート７１の出力が“０”であれば選択メモリセルは選択ブロックに含まれ、“１”であれば選択ブロックに含まれない。
【００７７】
まず、選択メモリセルが選択ブロックに含まれない場合（ステップＳ４２、ＮＯ）について図１５を用いて説明する。図１５はベリファイ回路８のブロック図であり、選択ブロックがブートブロックＢＢＬＫ２であり、選択メモリセルＭＣが非選択のブートブロックＢＢＬＫ０に含まれる場合について示している。
【００７８】
図示するように、レジスタ６０−２に“１”が保持され、レジスタ６０−０、６０−１、６０−３には“０”が保持される。またレギュラーブロック選択信号は当然“０”である。更に、選択メモリセルがブートブロックＢＢＬＫ０に含まれるので、ブートブロックＢＢＬＫ０を示すアドレス信号が“１”とされ、ブートブロックＢＢＬＫ１〜ＢＢＬＫ３を示す信号は“０”である。
【００７９】
すると、判定回路６２では全てのＡＮＤゲート７０−０〜７０−３の出力が“０”となり、ＮＯＲゲート７１の出力が“１”となる。その結果、出力回路６３においてはＮＯＲゲート８２の出力は“１”となる。すなわち、レジスタ６５に保持される比較結果にかかわらず、ベリファイＯＫとされる（ステップＳ４３）。またＡＮＤゲート８１の出力も強制的に所定の値に固定される（ステップＳ４４）。図１５の構成であると、ＡＮＤゲート８１の出力は“０”固定であるが、この値は“１”固定であっても構わない。
【００８０】
次に、選択メモリセルが選択ブロックに含まれる場合（ステップＳ４２、ＹＥＳ）について図１６を用いて説明する。図１６はベリファイ回路８のブロック図であり、選択ブロックがブートブロックＢＢＬＫ２であり、選択メモリセルＭＣが選択ブートブロックＢＢＬＫ２に含まれる場合について示している。
【００８１】
図示するように、選択メモリセルがブートブロックＢＢＬＫ２に含まれるので、ブートブロックＢＢＬＫ２を示すアドレス信号が“１”とされる。従って、判定回路６２ではＡＮＤゲート７０−２の出力が“１”となり、ＮＯＲゲート７１の出力が“０”となる。
【００８２】
よって、出力回路６３のＯＲゲート８２の出力は、ＡＮＤゲート８０の出力、すなわち、レジスタ６５に保持される比較結果によって決まる。すなわち、比較回路が“１”を出力する場合には、ベリファイＯＫとされ、“０”を出力する場合にはベリファイＮＧとされる（ステップＳ４５）。またＡＮＤゲート８１の出力も書き込み元データによって決定される。すなわち、書き込み元データが“１”である場合には、書き込みデータも“１”とされ、“０”である場合には書き込みデータも“０”とされる（ステップＳ４６）。
【００８３】
なお、レギュラーブロックＲＢＬＫが選択ブロックである場合、選択メモリセルは全て選択ブロック内に含まれる。なぜなら、レギュラーブロックＲＢＬＫがベリファイを行う単位だからである。この場合、マイコン２はレギュラーブロック選択信号を“１”とすることで、出力回路６３の出力を、レジスタ６５及び書き込み元データを反映させたものとする。
【００８４】
ステップＳ４４、Ｓ４６の後、ロウアドレス及びカラムアドレスが上記の最終アドレスで無い場合（ステップＳ４７、ＮＯ）には、マイコン２はロウアドレス及びカラムアドレスを次のアドレスに設定して（ステップＳ４８）、ステップＳ４２に戻る。最終アドレスに達し（ステップＳ４７、ＹＥＳ）、且つ別のブロックについてベリファイを行う場合（ステップＳ４８、ＹＥＳ）には、ステップＳ３０に戻って上記処理を繰り返す。行わない場合（ステップＳ４８、ＮＯ）には、処理を完了する。
【００８５】
以上のように、この発明の第４の実施形態に係る半導体記憶装置であると、上記第１乃至第３の実施形態で説明した（１）乃至（３）の効果に加えて、下記（４）の効果が得られる。  
（４）半導体記憶装置の動作速度を向上出来る（その４）。  
ブートブロックＢＢＬＫは、レギュラーブロックＲＢＬＫに対して、例えば本実施形態の場合、１／４のブロックサイズを単位とした細分化領域である。一般的に、マイコン２によってブートブロックＢＢＬＫについてベリファイを行う場合には、選択ブートブロックＢＢＬＫについてのみベリファイを行う。
【００８６】
しかし当然ながら、ベリファイすべき範囲は、ブートブロックＢＢＬＫとレギュラーブロックＲＢＬＫで異なる。従って上記手法であると、マイコン２は、当該アドレスが選択ブートブロックＢＢＬＫ内であるか否かの判定を、１アドレス毎に行わなければならない。更に、複数のブートブロックＢＢＬＫについてデータを更新する場合には、１つのブートブロックＢＢＬＫについてベリファイが終了したか否かの判定の後、次のアドレスについてもブートブロックＢＢＬＫであるか否かの判定を１アドレス毎に行う必要がある。そして本処理は、レギュラーブロックＲＢＬＫについてベリファイを行う場合にも必要となる。マイコン２による判定処理は、通常、少なくとも演算命令と分岐命令の２命令を含む。従って、１６ビットのマイコン２の場合に、（２回の判定処理）×２命令＝４命令を、１６６３６回繰り返さなければならない。その結果、当該アドレスがブートブロックＢＢＬＫであるか否かの判定のために、約２６ｍｓほどの時間を要することとなる。
【００８７】
この点、本実施形態に係る構成であると、上記の４命令が不要となり、ベリファイ動作を高速化出来る。本実施形態では、まずレギュラーブロックＲＢＬＫとブートブロックＢＢＬＫとで、ベリファイを行う単位を共にレギュラーブロックサイズに共通化している。そして、選択ブロックがブートブロックＢＢＬＫである場合には、選択ブートブロックＢＢＬＫのベリファイ結果に対してのみ比較回路６４における比較結果を反映させる。そして、非選択のブートブロックＢＢＬＫのベリファイ結果は出力回路６３によって強制的にベリファイＯＫとする。また、マイコン２は選択メモリセルが選択ブートブロックＢＢＬＫであるか否かの判定を行わず、この判定はベリファイ回路８に設けられた判定回路６２が行っている。以上により、マイコン２の負荷を軽減し、フラッシュメモリの動作速度を向上出来る。
【００８８】
なお、本実施形態ではブートブロックＢＢＬＫのサイズがレギュラーブロックＲＢＬＫのサイズの１／４である場合について説明したが、このサイズに限定されるものでは無い。図１７は、レギュラーブロックＲＢＬＫとブートブロックＢＢＬＫのブロック図である。図示するように、ブートブロックＢＢＬＫはレギュラーブロックＲＢＬＫを（ｋ＋１）に分割したものであっても良い（ｋは正の整数）。この場合のベリファイ回路８の構成を図１８に示す。図示するように、レジスタ６０−０〜６０−ｋには、ブートブロックＢＢＬＫ０〜ＢＢＬＫｋの選択情報が格納される。そしてＡＮＤゲート７０−０〜７０−ｋによって、レジスタ６０−０〜６０−ｋ内のフラグと、ブートブロックＢＢＬＫ０〜ＢＢＬＫｋを示すアドレス信号とのＡＮＤ演算が行われる。
【００８９】
以上のように、この発明の第１乃至第４の実施形態に係る半導体記憶装置によれば、マイコン２によって制御するフラッシュメモリにおいて、その一部をハードウェア化することによって、動作速度を効果的に向上させることが出来る。なお、上記実施形態ではＮＯＲ型フラッシュメモリを例に説明したが、例えばＮＡＮＤ型フラッシュメモリ等にも適用できる。また、上記実施形態では制御回路１２によって電源回路１１及びセンスアンプ７が制御される場合について説明したが、その他の回路ブロックが制御回路１２によって制御されても良い。またその制御内容は、上記実施形態で説明したものに限定されない。更に、上記実施形態ではレギュラーブロック選択時にはレギュラーブロック選択信号によってＮＯＲゲート７１の出漁を“０”としている。しかしながら、レギュラーブロック選択信号を使用する代わりに、レギュラーブロック選択時には、レジスタ６０−１〜６０−３の全てを強制的に“１”とし、且つＢＢＬＫ０〜ＢＢＬＫ３を示す信号を全て強制的に“１”としても良い。
【００９０】
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
【図面の簡単な説明】
【００９１】
【図１】この発明の第１の実施形態に係るフラッシュメモリのブロック図。
【図２】この発明の第１の実施形態に係るフラッシュメモリの備えるメモリセルアレイの回路図。
【図３】この発明の第１の実施形態に係るフラッシュメモリの備える制御回路の回路図。
【図４】この発明の第２の実施形態に係るフラッシュメモリのブロック図。
【図５】この発明の第２の実施形態に係るフラッシュメモリの備える切り替え回路及び制御回路の回路図。
【図６】この発明の第２の実施形態に係るフラッシュメモリの動作を示すフローチャート。
【図７】この発明の第２の実施形態に係るフラッシュメモリの動作時における各種信号のタイミングチャート。
【図８】この発明の第３の実施形態に係るフラッシュメモリの備える切り替え回路、制御回路、及び電源回路の回路図。
【図９】この発明の第３の実施形態に係るフラッシュメモリの動作を示すフローチャート。
【図１０】この発明の第３の実施形態に係るフラッシュメモリの動作時における各種信号のタイミングチャート。
【図１１】この発明の第４の実施形態に係るフラッシュメモリの備えるメモリセルアレイのブロック図。
【図１２】この発明の第４の実施形態に係るフラッシュメモリの備えるメモリセルアレイのブロック図であり、ベリファイ動作の概念を示す図。
【図１３】この発明の第４の実施形態に係るフラッシュメモリの備えるベリファイ回路の回路図。
【図１４】この発明の第４の実施形態に係るフラッシュメモリの動作を示すフローチャート。
【図１５】この発明の第４の実施形態に係るフラッシュメモリの備えるベリファイ回路の回路図。
【図１６】この発明の第４の実施形態に係るフラッシュメモリの備えるベリファイ回路の回路図。
【図１７】この発明の第４の実施形態の変形例に係るフラッシュメモリの備えるメモリセルアレイのブロック図。
【図１８】この発明の第４の実施形態の変形例に係るフラッシュメモリの備えるベリファイ回路の回路図。
【符号の説明】
【００９２】
１…フラッシュメモリ、２…マイコン、３…入力バッファ、４…入出力バッファ、５…アドレスバッファ、６…メモリセル部、７…センスアンプ、８…ベリファイ回路、９…コマンド解析回路、１０…発振回路、１１…電源回路、１２…制御回路、１３…プロテクト情報保持回路、１４…切り替え回路、２０…ＣＰＵ、２１…メモリ、３０、５０、６０−０〜６０−ｋ、６５…レジスタ、３１…制御用デコーダ、４０…選択回路、４１…更新回路、４２…レジスタ値デコーダ、４３、８２…ＯＲゲート、４４、５４、５５、７０−０〜７０−ｋ、８０、８１…ＡＮＤゲート、５１…フリップフロップ、５２…Ｄ／Ａコンバータ、５３…レギュレータ、６２…判定回路、６３…出力回路、６４…比較回路、７１…ＮＯＲゲート
【図１】
2008181596.tif 000003
【図２】
2008181596.tif 000004
【図３】
2008181596.tif 000005
【図４】
2008181596.tif 000006
【図５】
2008181596.tif 000007
【図６】
2008181596.tif 000008
【図７】
2008181596.tif 000009
【図８】
2008181596.tif 000010
【図９】
2008181596.tif 000011
【図１０】
2008181596.tif 000012
【図１１】
2008181596.tif 000013
【図１２】
2008181596.tif 000014
【図１３】
2008181596.tif 000015
【図１４】
2008181596.tif 000016
【図１５】
2008181596.tif 000017
【図１６】
2008181596.tif 000018
【図１７】
2008181596.tif 000019
【図１８】
2008181596.tif 000020