(57)【要約】【課題】フラッシュメモリ等の不揮発性メモリの誤書き込み、誤消去を防止する半導体装置を提供する。【解決手段】内部リセット信号を正論理で保持するレジスタと負論理で保持するレジスタとを複数設け、これらの出力信号と、外部リセット信号とを入力し、これらの信号のいずれかがリセット状態である場合に活性化し、これらの信号のいずれもリセット状態でない場合に非活性化するメモリリセット信号を出力するメモリリセット信号を出力するメモリリセット信号生成回路と、メモリリセット信号を入力し、メモリリセット信号が活性化しているときにリードライトアクセス、消去動作が禁止される不揮発性メモリと、を備える。【選択図】図１
2012073755.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ内部リセット信号を保持して内部リセット保持信号を出力する複数の内部リセット信号保持レジスタと、
外部リセット信号又は前記複数の内部リセット信号保持レジスタがそれぞれ出力する複数の内部リセット保持信号のいずれかがリセット状態を示しているときに活性化し、前記外部リセット信号及び前記複数の内部リセット保持信号のいずれも非リセット状態のときに非活性化するメモリリセット信号を出力するメモリリセット信号生成回路と、
前記メモリリセット信号を入力し、前記メモリリセット信号が活性化しているときにリードライトアクセス、消去動作が禁止され、前記メモリリセット信号が非活性化しているときに、リードライトアクセス、消去動作が許可される不揮発性メモリと、
を備えることを特徴とする半導体装置。
【請求項２】
前記複数の内部リセット信号保持レジスタは、前記外部リセット信号の活性化によりリセット状態に初期設定されることを特徴とする請求項１記載の半導体装置。
【請求項３】
前記複数の内部リセット信号保持レジスタは、前記内部リセット保持信号を正論理で保持する複数の第１内部リセット信号保持レジスタと、前記内部リセット保持信号を負論理で保持する複数の第２内部リセット信号保持レジスタと、を備えることを特徴とする請求項１又は２記載の半導体装置。
【請求項４】
前記複数の第１内部リセット信号保持レジスタの数と、前記複数の第２内部リセット信号レジスタの数と、が同数であることを特徴とする請求項３記載の半導体装置。
【請求項５】
前記複数の第１内部リセット信号保持レジスタの数及び前記複数の第２内部リセット信号保持レジスタの数が共に５個以上であることを特徴とする請求項３又は４記載の半導体装置。
【請求項６】
前記複数の第１内部リセット信号保持レジスタの数及び前記複数の第２内部リセット信号保持レジスタの数が共に１０個以上であることを特徴とする請求項３又は４記載の半導体装置。
【請求項７】
前記複数の内部リセット信号保持レジスタは、それぞれ、動作時には常時クロック信号が入力され、前記内部リセット信号及び前記外部リセット信号の論理レベルによって常時データが更新されるデータフリップフロップであることを特徴とする請求項１乃至６いずれか１項記載の半導体装置。
【請求項８】
前記不揮発性メモリから読み出したデータを一時的に保存する揮発性メモリと、
制御部と、
をさらに備え、
前記制御部は、
前記不揮発性メモリからデータを読み出す場合に、
前記内部リセット信号を非活性化して前記複数の内部リセット信号保持レジスタをいずれも非リセット状態に設定して前記不揮発性メモリのリセット状態を解除し、
前記不揮発性メモリのリセット状態を解除した後、前記不揮発性メモリのデータを前記揮発性メモリに転送し、
前記揮発性メモリに転送した後、前記内部リセット信号を活性化して前記複数の内部リセット信号保持レジスタをいずれもリセット状態に設定して前記不揮発性メモリへのアクセスを禁止し、
前記不揮発性メモリからの読み出しに代えて、前記揮発性メモリから前記揮発性メモリに転送されたデータを読み出すことを特徴とする請求項１乃至７いずれか１項記載の半導体装置。
【請求項９】
前記揮発性メモリは、前記不揮発性メモリから転送されたデータを電源が切断されない限り保持し、
前記制御部は、次に不揮発性メモリからのデータの読出しが必要になった場合、不揮発性メモリのリセット状態を維持したまま、前記不揮発性メモリからの読み出しに代えて、前記揮発性メモリから前記転送されたデータを読み出すことを特徴とする請求項８記載の半導体装置。
【請求項１０】
前記制御部は、
前記不揮発性メモリのデータを更新する場合に、
前記内部リセット信号を非活性化して前記複数の内部リセット信号保持レジスタをいずれも非リセット状態に設定して前記不揮発性メモリのリセット状態を解除し、
前記リセット状態を解除した後に前記不揮発性メモリのデータを更新し、
前記データの更新の後に、前記内部リセット信号を活性化して前記複数の内部リセット信号保持レジスタをいずれもリセット状態に設定して前記不揮発性メモリへのアクセスを禁止することを特徴とする請求項８又は９記載の半導体装置。
【請求項１１】
前記揮発性メモリが、ＲＡＭ、ラッチ回路、フリップフロップ回路、レジスタ回路のいずれかであることを特徴とする請求項８乃至１０いずれか１項記載の半導体装置。
【請求項１２】
前記揮発性メモリについて、前記半導体装置に内蔵する揮発性メモリに代えて、前記半導体装置の外部に接続された揮発性メモリを用いることを特徴とする請求項８乃至１１いずれか１項記載の半導体装置。
【請求項１３】
前記不揮発性メモリがフラッシュメモリであることを特徴とする請求項１乃至１２いずれか１項記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを内蔵する半導体装置に関する。特に、フラッシュメモリを内蔵する半導体装置に関する。
【背景技術】
【０００２】
フラッシュメモリなどの不揮発性メモリを備えた半導体装置では、ノイズや電源の瞬断などにより記憶データが書き換えられてしまうおそれがあることが知られている。このような誤書き込みを防ぐため、例えば、内部に不揮発性メモリを用いたＵＳＢメモリなどのメモリシステムとしては、半導体装置の外部にライトプロテクトスイッチを設け、ライトプロテクトスイッチの設定により誤書き込みを防ぐことも行われている。しかし、これらは、半導体装置の外部に誤書き込みを防ぐセキュリティシステムを設けたり、ライトプロテクトスイッチを人為的に操作する等の取り扱いが必要になったりする。
【０００３】
また、特許文献１には、不揮発性メモリを備えた半導体装置の内部にノイズや電源瞬断などによる誤書き込みを防止する機能を備えたメモリ制御回路が記載されている。図５は、特許文献１に記載の従来の不揮発性メモリに対する誤書き込み防止回路の回路図である。図５に示す誤書き込み防止回路は、たとえばレジスタを構成する２個のラッチ回路９１１、９１２および２個のゲート９１３、９１４を備えている。図示しないリセット発生回路から供給されるリセット信号は、第１のラッチ回路９１１のクリア端子ＣＬＫおよび第２のラッチ回路９１２のセット端子ＳＥＴに供給される。したがって、リセット信号がアサートされると、第１のラッチ回路９１１の出力端子Ｑからは“０”が出力され、第２のラッチ回路９１２の出力端子Ｑからは“１”が出力される。
【０００４】
第１のラッチ回路９１１の出力端子Ｑからの出力信号は、第２のラッチ回路９１２の入力端子Ｄに供給される。第２のラッチ回路９１２の出力端子Ｑからの出力信号は、第１のゲート９１３に入力される。また、図示しないＣＰＵから供給されるレジスタ設定データも、第１のゲート９１３に入力される。第１のゲート９１３はアンド・ゲートであり、その出力信号は第１のラッチ回路９１１の入力端子Ｄに供給される。したがって、第２のラッチ回路９１２の出力信号が“１”のときに、レジスタ設定データが第１のラッチ回路９１１に入力される。第２のラッチ回路９１２の出力信号が“０”のときには、第１のラッチ回路９１１の入力信号は“０”である。
【０００５】
図示しないＣＰＵから供給されるライト信号は、第２のゲート９１４に供給される。また、第１のラッチ回路９１１の出力端子Ｑからの出力信号も、第２のゲート９１４に供給される。第２のゲート９１４はナンド・ゲートであり、図示しない不揮発性メモリへ不揮発性メモリライト信号を出力する。特に限定しないが、この従来例では、ライト信号および不揮発性メモリライト信号は、ロー・アクティブであり、“０”のときにアサートされたことになる。なお、特に限定しないが、この従来例においてその他の信号はハイ・アクティブである。
【０００６】
したがって、第１のラッチ回路９１１の出力信号が“１”のときに、ライト信号のアサートまたはネゲートに応じて、不揮発性メモリライト信号がアサートまたはネゲートされる。第１のラッチ回路９１１の出力信号が“０”のときには、不揮発性メモリライト信号は常にネゲートされた状態となる。また、図示しないＣＰＵの書き込み命令に対して図示しない不揮発性メモリから供給されるレジスタ書き込み許可信号は、第１のラッチ回路９１１および第２のラッチ回路９１２のイネーブル端子ＥＮに供給される。また、図示しないクロック発生回路から供給されるクロック信号は、第１のラッチ回路９１１および第２ のラッチ回路９１２のクロック端子に供給される。
【０００７】
次に、図５に記載の従来の誤書き込み防止回路の動作について説明する。まず、リセット信号がアサートされると、第１のラッチ回路９１１の出力は“０”となるので、不揮発性メモリライト信号は“１”、すなわちネゲートされた状態となり、不揮発性メモリにはライト信号が供給されない。つまり、不揮発性メモリにデータを書き込むことはできない。また、リセットにより第２のラッチ回路９１２の出力が“１”となり、レジスタ設定データが第１のゲート９１３を介して第１のラッチ回路９１１に入力されるので、レジスタに“０”または“１”を書き込むことが可能である。したがって、この状態が書き込み禁止状態である。
【０００８】
書き込み禁止状態でレジスタに対して書き込みが行われると、レジスタ書き込み許可信号に同期して、レジスタ設定データが第１のラッチ回路９１１にラッチされる。たとえば、レジスタ設定データが“１”であれば、第１のラッチ回路９１１から“１”が出力されるので、ライト信号がアサートされると、第２のゲート９１４から出力される不揮発性メモリライト信号もアサートされる。つまり、不揮発性メモリにデータを書き込むことができる。また、第２のラッチ回路９１２にも“１”がラッチされ、第２のラッチ回路９１２の出力が“１”であるので、レジスタへの書き込みが可能な状態のままである。したがって、この状態が書き込み許可状態である。
【０００９】
一方、レジスタ設定データが“０”であれば、第１のラッチ回路９１１に“０”がラッチされ、第１のラッチ回路９１１から“０”が出力される。それによって、ライト信号がアサートされても、第２のゲート９１４から出力される不揮発性メモリライト信号はネゲートされたままになる。つまり、不揮発性メモリにデータを書き込むことはできない。また、第２のラッチ回路９１２に“０”がラッチされ、第２のラッチ回路９１２の出力が“０”になるので、第１のラッチ回路９１１には常に“０”が入力される。つまり、リセットにより第２のラッチ回路９１２を“１”にセットするまでは、レジスタへの書き込みができない状態がつづき、不揮発性メモリにデータを書き込むことができない。したがって、この状態が誤書き込み防止状態である。
【００１０】
なお、書き込み禁止状態から書き込み許可状態を経て誤書き込み防止状態へ移行してもよいし、書き込み禁止状態においてレジスタに“０”を書き込むことにより、書き込み禁止状態から誤書き込み防止状態へ直接移行してもよい。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００４−２１３１０３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
以下の分析は本発明により与えられる。フラッシュメモリなどの不揮発性メモリを備えた半導体装置では、電源の投入や切断が緩慢であったりする場合に、不揮発性メモリに対する制御信号の状態が不安定になり、不揮発性メモリに誤ったデータが書き込まれたり、不揮発性メモリに記憶したデータが消失してしまう恐れがある。特許文献１のように、誤書き込み防止用のレジスタを設けても、電源の投入や切断が緩慢であったりする場合は、ラッチ回路に保持しているデータ自体が不定になり、かつ、ライト信号等の制御信号の状態も不定になると誤った書き込み動作が行われたり、意図せぬ消去動作が行われる可能性がある。
【課題を解決するための手段】
【００１３】
本発明の１つの側面による半導体装置は、それぞれ内部リセット信号を保持して内部リセット保持信号を出力する複数の内部リセット信号保持レジスタと、外部リセット信号又は前記複数の内部リセット信号保持レジスタがそれぞれ出力する複数の内部リセット保持信号のいずれかがリセット状態を示しているときに活性化し、前記外部リセット信号及び前記複数の内部リセット保持信号のいずれも非リセット状態のときに非活性化するメモリリセット信号を出力するメモリリセット信号生成回路と、前記メモリリセット信号を入力し、前記メモリリセット信号が活性化しているときにリードライトアクセス、消去動作が禁止され、前記メモリリセット信号が非活性化しているときに、リードライトアクセス、消去動作が許可される不揮発性メモリと、を備える。
【発明の効果】
【００１４】
本発明によれば、電源の投入や切断時等にレジスタの保持するデータが不定になったとしても、複数の内部リセット信号保持レジスタの保持しているデータがすべて一致してリセット解除にならない限り、不揮発性メモリに対して意図せざるライトアクセスや消去動作が行われることがないので、不揮発性メモリに対する誤書き込みや誤消去の発生を防ぐことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施例による不揮発性メモリとそのリセット制御部の回路ブロック図である。
【図２】一実施例による半導体装置全体の機能ブロック図である。
【図３】一実施例による不揮発性メモリに対する制御フローチャートである。
【図４】参考例によるリセット制御部の回路ブロック図である。
【図５】特許文献１に記載の従来のメモリ制御回路における誤書き込み防止回路の回路図である。
【発明を実施するための形態】
【００１６】
本発明の具体的な実施例の詳細について説明する前に、本発明の実施形態の概要について説明する。本発明の実施形態では、内部リセット信号を保持する複数の内部リセット信号保持レジスタを設ける。内部リセット信号保持レジスタを複数設けるのは、電源の投入時や切断時等に電源電圧が不安定な状態になり、かつ、不完全な状態で電源が供給されているときに、複数のレジスタが一致してリセット状態を解除する方向に反転してしまわない限り、不揮発性メモリのリセット状態が解除されるのを防ぐためである。
【００１７】
不完全な状態で電源が供給されているときに、リセット信号が解除され、かつ、書き込み信号や消去信号が不安定な状態であると、不揮発メモリの誤書き込みや誤消去が発生する恐れがある。本発明の実施形態によれば、内部リセット信号を保持する複数のレジスタがすべて一致してリセット解除にならない限り、不揮発性メモリはリセット状態になる。また、不揮発性メモリはリセット状態のとき、たとえ書き込み信号や消去信号がアクティブになったとしても、不揮発性メモリへのアクセスは禁止され、不揮発性メモリは安定した状態に保持される。したがって、内部リセット信号保持レジスタの保持しているデータが不定になるような状態が発生した場合においても、内部リセット信号保持レジスタを複数設けることにより確率的に全部が一致してリセット解除の方向にデータが転び、リセットが解除され、不揮発性メモリに対する誤書き込み、誤消去が発生することを防ぐことができる。
【００１８】
特に、内部リセット信号を正論理で保持するレジスタと負論理で保持するレジスタを設けることが好ましい。複数のレジスタが不定となった場合に、一致してリセット状態を解除する方向に反転してしまうのを防ぐためである。
【００１９】
以下、実施例に即して詳細に説明する。
【実施例１】
【００２０】
［実施例１全体の構成］
図２は、実施例１の半導体装置全体の機能ブロック図である。半導体装置１は、半導体装置１全体やフラッシュメモリ２に対するアクセスを制御する制御部となるＣＰＵ４を備えている。フラッシュメモリ２は不揮発性メモリの一例であり、比較的小容量のデータを電源遮断後も記憶するメモリである。また、半導体装置１は、電源が遮断されると記憶内容が失われる揮発性メモリである内蔵ＲＡＭ５と、書き換えのできない読出し専用のメモリである内蔵ＲＯＭ６と、半導体装置の様々な機能を実現する周辺回路７を備えている。
【００２１】
さらに、ＣＰＵ４、フラッシュメモリ２、ＲＡＭ５、ＲＯＭ６、周辺回路７は、内部バス８を介して相互に接続されている。また、外部インターフェース部９を介して半導体装置１の外部に設けられた外部ＲＡＭ１１、外部ＲＯＭ１２に接続されている。外部インターフェース部９と外部ＲＡＭ１１、外部ＲＯＭ１２との間は、外部バス１０−１、１０−２によって接続される。例えば、内蔵ＲＡＭ５には、比較的高速にアクセスができるＳＲＡＭを用い、外部ＲＡＭ１１には、より大容量が記憶できるＤＲＡＭを用いることもできる。なお、ＣＰＵ４のプログラムは、内蔵ＲＡＭ５や内蔵ＲＯＭ６、外部ＲＡＭ１１、外部ＲＯＭ１２等のメモリに格納される。特に限定されないが、この実施例１では、フラッシュメモリ２には、ＣＰＵ４のプログラムは格納しない。
【００２２】
また、半導体装置１には、外部リセット端子が設けられ、外部から半導体装置１全体を初期設定するリセット信号が入力される。なお、半導体装置１には、外部リセット端子以外にも、クロック端子やデータの入出力端子、制御信号入力端子等が設けられているが、図２では記載を省略している。外部リセット端子から入力された外部リセット信号はＣＰＵ４に接続されると共にリセット制御部３に接続される。
【００２３】
リセット制御部３は、フラッシュメモリ２にメモリリセット信号を出力し、このメモリリセット信号の論理レベルによってフラッシュメモリ２のリセット状態を制御する。また、リセット制御部３には、ＣＰＵ４から内部リセット信号が接続されている。ＣＰＵ４は内部リセット信号によりフラッシュメモリ２のリセット状態を制御することができる。外部リセット信号がアクティブになると、リセット制御部３は、無条件にフラッシュメモリをリセット状態に設定する。また、外部リセット信号がアクティブになるとＣＰＵ４もリセットされる。
【００２４】
また、ＣＰＵ４は、内部リセット信号をアクティブにすることによりフラッシュメモリをリセット状態に設定することができる。半導体装置１が動作しているときは、リセット制御部３には、システムクロックが常時供給され、外部リセット信号または内部リセット信号のいずれかがアクティブになるとフラッシュメモリ２はリセット状態に設定される。また、外部リセット信号、内部リセット信号のいずれもが、非活性状態（インアクティブ）になるとフラッシュメモリのリセット状態は解除される。また、半導体装置１の動作が停止してシステムクロックが停止すると、リセット制御部３はリセット信号の状態を保持する。
【００２５】
フラッシュメモリ２は、リセット制御部３が出力するメモリリセット信号がアクティブのときは、リセット信号以外のフレッシュメモリ２に対する制御信号の論理レベルにかかわらず、安定したリセット状態となり、リードライトアクセスや消去動作が禁止される。また、メモリリセット信号がインアクティブであるときは、フラッシュメモリ２に対する他の制御信号の論理レベルによって、フラッシュメモリ２に対するリードライトアクセスや消去動作が可能となる。
【００２６】
［実施例１のリセット制御部と不揮発性メモリの構成］
図１は、実施例１の不揮発性メモリ（フラッシュメモリ）２とそのリセット制御部３のより詳細な回路ブロック図である。図１において、外部リセット信号ＥＸ＿ＲＳＴＢは、データフリップフロップ３４のデータ入力端子Ｄ、及びメモリリセット信号生成回路（論理ＡＮＤ回路）３１に接続される。外部リセット信号ＥＸ＿ＲＳＴＢは、アクティブロウの信号である。
【００２７】
また、データフリップフロップ３４のデータ出力端子Ｑは、データフリップフロップ３５のデータ入力端子Ｄに接続される。さらに、データフリップフロップ３５のデータ出力端子Ｑは、ｎ個の第１内部リセット信号保持レジスタ３２−１〜３２−ｎとｎ個の第２内部リセット信号保持レジスタ３３−１〜３３−ｎの、それぞれ、第１のデータ入力端子に接続される。なお、データフリップフロップ３４と３５には、それぞれクロック信号として半導体装置１の動作時に供給され、半導体装置１の動作停止時には供給が停止されるシステムクロック信号Ｓｙｓｔｅｍ＿Ｃｌｏｃｋが接続されている。
【００２８】
図１において、各第１内部リセット信号保持レジスタ３２−１〜３２−ｎと各第２内部リセット信号保持レジスタ３３−１〜３３−ｎには、それぞれ第２のデータ入力端子が設けられ、各第２のデータ入力端子には、内部リセット信号ＣＴＲＬ２が接続される。内部リセット信号ＣＴＲＬ２は、ＣＰＵ４が出力する制御信号（フラッシュメモリ２に対する内部リセット信号）であり、アクティブロウの信号である。各第１内部リセット信号保持レジスタ３２−１〜３２−ｎはリセット信号を正論理で保持するレジスタであり、各第２内部リセット信号保持レジスタ３３−１〜３３−ｎはリセット信号を負論理で保持するレジスタである。第１内部リセット信号保持レジスタと第２内部リセット信号保持レジスタの数はそれぞれｎ個である。ｎの数は、多いほど誤書き込みが生じる可能性を減じることが出来るが、ｎの数が多いほど回路規模は大きくなるので、５〜１０程度の値であることが好ましい。詳細は後で詳しく説明する。
【００２９】
各第１内部リセット信号保持レジスタ３２−１〜３２−ｎ、第２内部リセット信号保持レジスタ３３−１〜３３−ｎは、それぞれ第１のデータ入力端子に接続されたデータフリップフロップ３５のデータ出力端子Ｑの出力信号と、第２のデータ入力端子に接続された内部リセット信号ＣＴＲＬ２の論理ＡＮＤを取る論理ＡＮＤ回路３６と、リセット信号の論理を保持するデータフリップフロップ回路３７を備えている。
【００３０】
データフリップフロップ回路３７にリセット信号の論理を負論理で保持する第２内部リセット信号保持レジスタ３３−１〜３３−ｎは、論理ＡＮＤ回路３６の出力信号がそのまま内部のデータフリップフロップ回路３７のデータ入力端子Ｄに接続され、データフリップフロップ回路３７のデータ出力端子Ｑの出力信号がそのまま内部リセット保持信号として出力される。また、データフリップフロップ回路３７にリセット信号の論理を正論理で保持する第１内部リセット信号保持レジスタ３２−１〜３２−ｎは、それぞれ、論理ＡＮＤ回路３６の出力信号をインバータ３８で反転してデータフリップフロップ回路３７のデータ入力端子Ｄに接続され、データフリップフロップ回路３７のデータ出力端子Ｑの出力信号がインバータ３９で反転されて内部リセット保持信号として出力される。
【００３１】
なお、第１内部リセット信号保持レジスタ３２−１〜３２-ｎ及び第２内部リセット信号保持レジスタ３３−１〜３３−ｎの各データフリップフロップ回路３７には、クロック信号としてシステムクロック信号Ｓｙｓｔｅｍ＿Ｃｌｏｃｋが接続され、システムクロック信号Ｓｙｓｔｅｍ＿Ｃｌｏｃｋに同期して常時データが更新される。ただし、電源が維持されている場合であっても、ＣＰＵ２が停止し、半導体装置１全体の動作が停止しているときは、システムクロック信号Ｓｙｓｔｅｍ＿Ｃｌｏｃｋも停止し、データフリップフロップ回路３７に維持しているデータは保持される。
【００３２】
メモリリセット信号生成回路３１は、外部リセット信号ＥＸ＿ＲＳＴＢと各第１内部リセット信号保持レジスタと各第２内部リセット信号保持レジスタがそれぞれ保持する内部リセット保持信号との論理ＡＮＤを取る回路である。メモリリセット信号生成回路３１は、アクティブロウのメモリリセット信号ＭＲＢを出力する。すなわち、メモリリセット信号生成回路３１は、外部リセット信号ＥＸ＿ＲＳＴＢと各第１内部リセット信号保持レジスタと各第２内部リセット信号保持レジスタがそれぞれ保持する内部リセット保持信号のうち、少なくとも一つがロウレベルを出力した場合には、ロウレベルを出力し、メモリリセット信号ＭＲＢを活性化させる。また、外部リセット信号ＥＸ＿ＲＳＴＢと各内部リセット保持信号が一致してハイレベルを出力した場合には、ハイレベルを出力し、メモリリセット信号ＭＲＢを非活性化させる。
【００３３】
メモリリセット信号ＭＲＢはリセット制御部３全体の出力信号となり、フラッシュメモリ２のリセット端子ＲＥＳＥＴＢに接続される。フラッシュメモリ２のリセット端子ＲＥＳＥＴＢはアクティブロウのメモリリセット信号ＭＲＢの入力端子であり、ロウレベルが入力されるとフラッシュメモリ２は他の制御信号ＣＯＭＭＡＮＤ、アドレス信号ＡＤＲ、データ信号ＤＡＴＡの論理レベルの如何にかかわらず、データのリードライトや消去が禁止され、内部のデータを安定した状態で保持する。一方、リセット端子ＲＥＳＥＴＢにハイレベルが入力されると、他の制御信号ＣＯＭＭＡＮＤ、アドレス信号ＡＤＲ、データ信号ＤＡＴＡの論理レベルによってリードライト動作や一括消去動作等のフラッシュメモリ２に対する外部からのアクセスが可能となる。
【００３４】
［実施例１と参考例１の比較］
ここで、図１に示す実施例１のリセット制御部３の効果を説明するため、参考例となる図４のリセット制御部３００について説明する。図４に示す参考例では、図１に示す実施例１と構成がほぼ同一である部分については、実施例１と同一の符号を付し、詳細な説明は省略する。
【００３５】
図４において、フラッシュメモリ２の構成は図１に示す実施例１と同一である。図１に示す実施例１の複数の第１内部リセット信号保持レジスタ３２−１〜３２−ｎと第２内部リセット信号保持レジスタ３３−１〜３３−ｎが、図４の参考例１では、論理ＡＮＤ回路３３１とデータフリップフロップ３３２に置き換わり、図１のメモリリセット信号生成回路３１が図４では論理ＡＮＤ回路３３３に置き換わっている。
【００３６】
図４のリセット制御部３００によれば、データフリップフロップ３３２によって、内部リセット信号ＣＴＲＬ２または、外部リセット信号ＥＸ＿ＲＳＴＢによるリセット信号を保持し、これと外部リセット信号ＥＸ＿ＲＳＴＢとの論理ＡＮＤを取ってメモリリセット信号として出力している。
【００３７】
図４の参考例１のリセット制御部３００は、基本的な機能としては、リセット信号の保持をデータフリップフロップ３３２により保持し、内部リセット信号または外部リセット信号によりフラッシュメモリに対してリセットを行うことができるので、データフリップフロップ３３２に保持されているデータが常に正しいのであれば、この参考例の回路でも問題は生じない。すなわち、電源切断時や電源投入時に、データフリップフロップ３３２の出力が常にロウレベルを維持することができれば、フラッシュメモリ２をリセット状態に維持できるので問題は生じないが、電源切断時に電源が不安定な状態になれば、データフリップフロップ３３２のデータが反転する恐れが生じる。また、電源投入時に電源投入が緩慢であり、パワーオンリセットが働かなかった場合、外部リセット信号を入力するまでは、データフリップフロップ３３２のデータは不定になる。すると、フラッシュメモリ２はリセット状態が解除され、他の制御信号等の論理レベルによっては、誤書き込みや誤消去が発生する恐れがある。
【００３８】
一方、図１に示す実施例１のリセット制御部３は、内部リセット信号を２ｎ個の内部リセット信号保持レジスタ３２−１〜３２−ｎ、３３−１〜３３−ｎによって保持している。そして、フラッシュメモリ２に対するリセット信号が解除されるのは、２ｎ個の内部リセット信号保持レジスタのすべてがリセット解除で状態が一致した場合のみである。したがって、電源投入時に電源投入が緩慢であり、パワーリセットが働かなかった場合であって、内部リセット信号保持レジスタの保持データが不定となった場合に、２ｎ個の内部リセット信号保持レジスタが一致してリセット解除となる可能性は低い。よって、回路の状態が不定となった場合には、フラッシュメモリはリセット状態に維持される可能性が高く、誤書き込みや誤消去が発生する可能性を低くすることができる。
【００３９】
ここで、２ｎ個設ける内部リセット信号保持レジスタの数について説明する。内部リセット信号を正論理で保持する第１内部リセット信号保持レジスタと負論理で保持する第２内部リセット信号保持レジスタの数を同数のｎとして、第１内部リセット信号保持レジスタと第２内部リセット信号保持レジスタのペアをｎ組設けるとする。
【００４０】
電源切断時や電源投入時等に内部回路の状態が不定になった場合、内部リセット信号保持レジスタが保持するデータについてハイレベル（リセットが解除される方向）に転ぶ確率をｐ（０≦ｐ≦１）とすると、各ペアに対して不具合が発生する方向（リセットが解除される方向）に値が転ぶ確率は、ｐ・（１−ｐ）で表される。すべてのペアが不具合発生方向に値が転ぶ確率は、｛ｐ・（１−ｐ）｝ｎで表される。ここで、ｐ・（１−ｐ）の最大値は、０≦ｐ≦１の範囲では、１／４（ｐ＝１／２の時）である。したがって、式（１）が成立する。
【００４１】
｛ｐ・（１−ｐ）｝ｎ≦（１／４）ｎ      式（１）
【００４２】
不具合が発生する方向に内部リセット信号保持レジスタがすべて転ぶ確率を１０００ｐｐｍ（＝１０−３）以下に抑え込みたい場合は、（１／４）ｎ≦１０−３を満たす最小の整数ｎを求めるとｎ＝５となる。よって、第１内部リセット信号保持レジスタ及び第２内部リセット信号保持レジスタの数をそれぞれ５以上に設定すれば、保持レジスタの保持するデータがすべて不定になったときに、誤ってリセット信号が解除されてしまう確率を１０００ｐｐｍ以下にすることができる。なお、リセットが解除されても、必ず誤書き込みや誤消去が発生する訳ではないので、実際に誤書き込みや誤消去が発生する確率は、さらに低くなる。
【００４３】
さらに、不具合が発生する方向に内部リセット信号保持レジスタがすべて転ぶ確率を１ｐｐｍ（＝１０−６）以下に抑え込みたい場合は、（１／４）ｎ≦１０−６を満たす最小の整数ｎを求めるとｎ＝１０となる。よって、第１内部リセット信号保持レジスタ及び第２内部リセット信号保持レジスタの数をそれぞれ１０以上に設定すれば、誤ってリセット信号が解除されてしまう確率を１ｐｐｍ以下にすることができる。
【００４４】
［実施例１の動作］
次に、さらに詳しく実施例１の動作について説明する。図３は、実施例１による不揮発性メモリ２に対する制御フローチャートである。図３のフローチャートにおいて、半導体装置１に電源が接続され電源が投入された後、ステップＳ１で外部リセットにより半導体装置１全体が初期化される。このステップＳ１は、半導体装置１を含めたシステムとして、パワーオンリセット機能が備わっている場合には、パワーオンリセットにより行われる。システムにパワーオンリセットの機能が備わっていても、電源の立ち上がりが緩慢である等の理由でパワーオンリセットの機能がうまく働かなかった場合には、外部リセット端子から改めて外部リセット信号が入力される。
【００４５】
なお、パワーオンリセットが働いた場合を除いて、電源が接続されてから、ステップＳ１により半導体装置１全体が初期化されるまでは、複数の内部リセット信号保持レジスタのうち、少なくとも１つがリセット状態に転んでいれば、フラッシュメモリ２はリセット状態に保持される。従って、半導体装置１が初期設定されるまでの間にフラッシュメモリ２が誤書き込みや誤消去されることを防ぐことができる。なお、ステップＳ１は半導体装置１の外部から入力される外部リセット信号に基づく動作であるが、以下のステップＳ２以降の処理はすべて、ＣＰＵ４がフラッシュメモリ２に関連して実行する処理である。
【００４６】
ステップＳ２では、ＣＰＵが動作を開始し、フラッシュメモリ２のリセット状態を解除する。なお、ここでフラッシュメモリ２のリセット状態を解除するのは、フラッシュメモリのデータを読み出す必要があるからである。もし、フラッシュメモリ２に対するアクセスが必要ない場合は、フラッシュメモリに対するリセット状態を保持しておけばよい。
【００４７】
ステップＳ３では、フラッシュメモリ２から揮発性メモリへデータを転送する。好ましくは、フラッシュメモリ２のすべてのアドレスのデータを揮発性メモリへあらかじめデータを転送する。ここでフラッシュメモリのすべてのアドレスのデータを揮発性メモリへ転送するのは、後で説明するように一端、揮発性メモリにすべてのデータを転送した後は、フラッシュメモリをリセット状態に設定してアクセス禁止にして、フラッシュメモリに代えて、揮発性メモリから転送されたデータをリードできるようにするためである。好ましくは、フラッシュメモリ２は、データ容量が比較的小規模なメモリであり、フラッシュメモリ２に格納されているデータをすべて揮発性メモリの特定のアドレスに転送する。転送するアドレスはあらかじめ回路により固定されていてもよいし、ＣＰＵがプログラムによって自由に設定できるようにしてもよい。
【００４８】
なお、フラッシュメモリのデータを転送する揮発性メモリとして、内蔵ＲＡＭ５を用いる場合は、内蔵ＲＡＭ５が、ＣＰＵ４が必要とするフラッシュメモリ以外のデータやプログラム等も格納可能な汎用的なリードライトメモリであるならば、あらかじめ、フラッシュメモリのデータを転送するアドレスを決めておく必要がある。また、揮発性メモリとして、内蔵ＲＡＭ５（図２参照）の他にフラッシュメモリのコピーデータ保持専用の揮発性メモリを設け、そのコピーデータ保持専用の揮発性メモリにフラッシュメモリのコピーデータを転送してもよい。この揮発性メモリは、ＲＡＭの他、フリップフロップやレジスタ等により構成されているメモリであってもよい。さらには、半導体装置１に内蔵する揮発性メモリに代えて、外部ＲＡＭ１１等の半導体装置１の外部に設けた揮発性メモリにフラッシュメモリのコピーデータを転送してもよい。
【００４９】
次にステップＳ４では、ＣＰＵ４は、内部リセット信号をアクティブにして、フラッシュメモリをリセット状態に再設定する。ここで、フラッシュメモリをリセット状態に再設定するのは、フラッシュメモリのデータをプロテクトして誤書き込みや誤消去が発生することを防ぐためである。フラッシュメモリはリセット状態に設定されると、外部からのアクセスは禁止され、保持されているデータを安定したストレスのない状態で保護する。
【００５０】
次に、ステップＳ５では、フラッシュメモリに格納したデータに対する読出し要求があるか否かをチェックする。読出し要求がなければステップＳ７へ進み、読出し要求がある場合は、ステップＳ６へ進む。ステップＳ６では、フラッシュメモリ２から直接のデータ読出しを行わず、ステップＳ３で、あらかじめフラッシュメモリ１から揮発性メモリに転送したおいたデータから読出しを行う。
【００５１】
ステップＳ７では、フラッシュメモリに対する書込み要求があるか否かチェックする。書込み要求がなければ、ＣＰＵ４は他の処理を行い、処理が終わるとステップＳ５へ戻る。ステップＳ７でフラッシュメモリに対する書込み要求があると判断したときは、ステップＳ９へ進む。
【００５２】
ステップＳ９では、ＣＰＵ４は、フラッシュメモリのデータを更新する前にフラッシュメモリのデータのコピーが保存されている揮発性メモリに対して書き込みを行う。続いて、ステップＳ１０では、フラッシュメモリ２に対するライトアクセスを可能にするため、ＣＰＵ４は、内部リセット信号ＣＴＲＬ２にハイレベルを出力してフラッシュメモリ２のリセットを解除する。続いてステップＳ１１では、揮発性メモリのデータをフラッシュメモリ２へデータ転送を行い、フラッシュメモリ２のデータを更新する。
【００５３】
ステップＳ１１でフラッシュメモリ２のデータを更新した後は、ステップＳ４に戻り、フラッシュメモリ２をリセット状態に戻す。フラッシュメモリ２をリセット状態に戻すことにより、フラッシュメモリに対する誤書き込みや誤消去が発生しないようにフラッシュメモリ２のデータをプロテクトする。その後は、ステップＳ５に戻り、必要な処理を行う。他にＣＰＵ４の実行が必要な処理がなければ、必要な処理が生じるまで待機する。
【００５４】
なお、上記の実施例では、フラッシュメモリが比較的小容量であり、ＣＰＵのプログラム自体は、フラッシュメモリには、設けない例について説明したが、例えば、図３に記載したプログラムのみを内蔵ＲＯＭ６に搭載し、それ以外のプログラムをフラッシュメモリに搭載し、システムリセット時には、フラッシュメモリに格納されたプログラムを内蔵ＲＡＭ５に転送し、内蔵ＲＡＭ５に転送されたプログラムをＣＰＵ４が実行するようにすれば、いわゆるフラッシュメモリを内蔵した１チップマイクロコントローラ、１チップマイクロコンピュータ等に本発明を応用することも可能である。
【００５５】
なお、本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００５６】
１：半導体装置
２：フラッシュメモリ（不揮発性メモリ）
３、３００：リセット制御部
４：ＣＰＵ（制御部）
５：内蔵ＲＡＭ（揮発性メモリ）
６：内蔵ＲＯＭ
７：周辺回路
８：内部バス
９：外部インターフェース部
１０−１、１０−２：外部バス
１１：外部ＲＡＭ
１２：外部ＲＯＭ
３１：メモリリセット信号生成回路（論理ＡＮＤ回路）
３２−１〜３２−ｎ：第１内部リセット信号保持レジスタ
３３−１〜３３−ｎ：第２内部リセット信号保持レジスタ
３４、３５、３７、３３２：データフリップフロップ回路
３６、３３１、３３３：論理ＡＮＤ回路
３８、３９：インバータ
９１１：第１のラッチ回路
９１２：第２のラッチ回路
９１３：第１のゲート
９１４：第２のゲート
【図１】
2012073755.tif 000003
【図２】
2012073755.tif 000004
【図３】
2012073755.tif 000005
【図４】
2012073755.tif 000006
【図５】
2012073755.tif 000007