1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係る不揮発性メモリ(14)は、以下のように構成される。
すなわち、不揮発性メモリセルが配列されて成るメモリアレイ(149)と、供給された電源電圧を昇圧して出力するためのチャージポンプ(152)と、上記メモリアレイへのデータ書き込み又は消去動作のために上記チャージポンプの出力電圧を選択するディストリビュータ(151)と、上記チャージポンプと上記ディストリビュータとの動作を制御可能なシーケンサ(145)とを含む。このとき、電源電圧レベルに対応して予め設定された複数の電源電圧モードの中から選択的に指定された電源電圧モードを上記シーケンサに指示するとともに、上記シーケンサに指示した電源電圧モードと、実際に供給された電源電圧との不整合を検出し、その検出結果に基づいて、上記シーケンサによる上記チャージポンプと上記ディストリビュータとの動作を制限可能なアナライザ(146)を設ける。
上記の構成によれば、電源電圧モードに応じてディストリビュータ及びチャージポンプの制御シーケンスを切り替えることができるので、電源電圧モードに対して電源電圧Vccが適切な範囲にあれば過剰昇圧や昇圧不足が起きない。これにより電源電圧レベルに対応して予め設定された複数の電源電圧モードにおいて、不揮発性メモリの安定動作を確保することができる。また、上記シーケンサに指示した電源電圧モードと、実際に供給された電源電圧との不整合を検出し、その検出結果に基づいて、上記シーケンサによる上記チャージポンプと上記ディストリビュータとの動作を制限することができるので、例えば低Vccモードにおいて、誤って高Vccが印加されてデバイス破壊が起きるのを回避することができる。
〔2〕上記〔1〕において、上記アナライザは、上記シーケンサに指示した電源電圧モードと、実際に供給された電源電圧との不整合の検出結果に基づいて、上記シーケンサによる上記チャージポンプと上記ディストリビュータとの動作を制限可能なエラー信号をアサートするように構成することができる。また、上記シーケンサは、上記メモリアレイへの書き込み又は消去中に、上記アナライザによって上記エラー信号がアサートされた場合に、上記チャージポンプの電荷が放電されるのを待って上記ディストリビュータを初期化するように構成することができる。これにより、上記チャージポンプに不所望な電荷が蓄積されることがないので、デバイス破壊を回避することができる。
〔3〕上記〔2〕において、上記アナライザによって上記シーケンサに指示された電源電圧モードに応じて、上記メモリアレイへの書き込み速度及び消去速度を異ならせることにより、上記シーケンサに指示された電源電圧モードに応じた速度で書き込みや消去を行うことができる。
〔4〕上記〔3〕において、上記アナライザは、上記シーケンサによる制御期間中、上記シーケンサに対してそれまでの電源電圧モードを維持させるための保持回路を含んで構成することができる。上記保持回路を含むことにより、シーケンサによる制御期間中において、電源電圧モードが不所望に切り替わるのを防止することができるので、回路誤動作の防止することができ、また、ベリファイの信頼性を確保できる。
〔5〕本発明の別の実施の形態に係る不揮発性メモリ(14)は、以下のように構成される。
すなわち、不揮発性メモリセルが配列されて成るメモリアレイ(149)と、供給された電圧を昇圧して出力するためのチャージポンプ(152)と、上記メモリアレイへのデータ書き込み又は消去動作のために上記チャージポンプの出力電圧を選択するディストリビュータ(151)と、上記チャージポンプと上記ディストリビュータとの動作を制御可能なシーケンサ(145)とを含む。このとき、予め設定された基準レベルと実際に供給された電源電圧との比較結果に基づいて電源電圧モードを決定し、当該電源電圧モードを上記シーケンサに指示するとともに、上記シーケンサに指示した上記電源電圧モードと、実際に供給された電源電圧との不整合を検出し、その検出結果に基づいて、上記シーケンサによる上記チャージポンプと上記ディストリビュータとの動作を制限可能なアナライザ(146)を設ける。
上記の構成によれば、予め設定された基準レベルと実際に供給された電源電圧との比較結果に基づいて電源電圧モードが決定されるため、電源電圧モードを指定することなく、適切な電源電圧モードが自動的に決定される。これにより、電源電圧レベルに対応して予め設定された複数の電源電圧モードにおいて、不揮発性メモリの安定動作を図ることができる。また、上記シーケンサに指示した上記電源電圧モードと、実際に供給された電源電圧との不整合を検出し、その検出結果に基づいて、上記シーケンサによる上記チャージポンプと上記ディストリビュータとの動作が制限されることにより、例えば低Vccモードにおいて、誤って高Vccが印加されてデバイス破壊が起きるのを回避することができる。
〔6〕上記〔5〕において、上記アナライザは、上記シーケンサに指示した電源電圧モードと、実際に供給された電源電圧との不整合の検出結果に基づいて、上記シーケンサによる上記チャージポンプと上記ディストリビュータとの動作を制限可能なエラー信号をアサートするように構成することができる。また、上記シーケンサは、上記メモリアレイへの書き込み又は消去中に、上記アナライザによって上記エラー信号がアサートされた場合に、上記チャージポンプの電荷が放電されるのを待って上記ディストリビュータを初期化するように構成することができる。これにより、上記チャージポンプに不所望な電荷が蓄積されることがないので、デバイス破壊を回避することができる。
〔7〕本発明の代表的な実施の形態に係るデータ処理装置(10)は、不揮発性記憶部(14)と、上記不揮発性記憶装置にアクセス可能な中央処理装置(11)とを含む。このとき、上記不揮発性記憶部には、不揮発性メモリセルが配列されて成るメモリアレイ(149)と、供給された電源電圧を昇圧して出力するためのチャージポンプ(152)と、上記メモリアレイへのデータ書き込み又は消去動作のために上記チャージポンプの出力電圧を選択するディストリビュータ(151)と、上記チャージポンプと上記ディストリビュータとの動作を制御可能なシーケンサ(145)とを設ける。また上記不揮発性記憶部には、電源電圧レベルに対応して予め設定された複数の電源電圧モードの中から選択的に指定された電源電圧モードを上記シーケンサに指示するアナライザ(146)を設ける。上記アナライザは、上記シーケンサに指示した電源電圧モードと、実際に供給された電源電圧との不整合を検出し、その検出結果に基づいて、上記シーケンサによる上記チャージポンプと上記ディストリビュータとの動作を制限可能なエラー信号をアサートする
上記の構成によれば、電源電圧モードによりディストリビュータ及びチャージポンプの制御シーケンスを切り替えているため、電源電圧モードに対して電源電圧Vccが適切な範囲にあれば過剰昇圧や昇圧不足が起きない。また、上記シーケンサに指示した電源電圧モードと、実際に供給された電源電圧との不整合を検出し、その検出結果に基づいて、上記シーケンサによる上記チャージポンプと上記ディストリビュータとの動作を制限することができるので、例えば低Vccモードにおいて、誤って高Vccが印加されてデバイス破壊が起きるのを回避することができる。これにより、データ処理装置の信頼性の向上を図ることができる。
〔8〕上記〔7〕において、上記電源電圧モードとして、対応する電源電圧レベルが互いに異なる第1電源電圧モードと第2電源電圧モードとを含む。このとき、上記第1電源電圧モードで回路動作可能な最低電圧と、上記第2電源電圧モードで回路動作可能な最大電圧と、実際に供給された電源電圧との関係を検出するディテクタを設けることにより、上記第1電源電圧モードで回路動作可能な最低電圧と、上記第2電源電圧モードで回路動作可能な最大電圧と、実際に供給された電源電圧との関係を容易に検出することができる。また上記アナライザは、上記ディテクタでの検出結果と上記電源電圧モードとに基づいて、上記電源電圧モードと、実際に供給された電源電圧との不整合を検出し、その検出結果に基づいて、上記シーケンサによる上記チャージポンプと上記ディストリビュータとの動作を制限可能なエラー信号をアサートするように構成することができる。
〔9〕本発明の別の実施の形態に係るデータ処理装置(10)は、不揮発性記憶部と、上記不揮発性記憶装置にアクセス可能な中央処理装置とを含む。このとき、上記不揮発性記憶部には、不揮発性メモリセルが配列されて成るメモリアレイ(149)と、供給された電源電圧を昇圧して出力するためのチャージポンプ(152)と、上記メモリアレイへのデータ書き込み又は消去動作のために上記チャージポンプの出力電圧を選択するディストリビュータ(151)と、上記チャージポンプと上記ディストリビュータとの動作を制御可能なシーケンサ(145)とを設ける。また上記不揮発性記憶部には、電源電圧レベルに対応して予め設定された複数の電源電圧モードの中から選択的に指定された電源電圧モードを上記シーケンサに指示するとともに、上記シーケンサに指示した電源電圧モードと、実際に供給された電源電圧との不整合を検出し、その検出結果に基づいて、上記シーケンサによる上記チャージポンプと上記ディストリビュータとの動作を制限可能なエラー信号をアサートするアナライザを設ける。
上記の構成によれば、予め設定された基準レベルと実際に供給された電源電圧との比較結果に基づいて電源電圧モードが決定されるため、電源電圧モードを指定することなく、適切な電源電圧モードが自動的に決定される。また、上記シーケンサに指示した上記電源電圧モードと、実際に供給された電源電圧との不整合を検出し、その検出結果に基づいて、上記シーケンサによる上記チャージポンプと上記ディストリビュータとの動作が制限されることにより、例えば低Vccモードにおいて、誤って高Vccが印加されてデバイス破壊が起きるのを回避することができる。これにより、データ処理装置の信頼性の向上を図ることができる。
〔10〕上記〔9〕において、上記電源電圧モードとして、対応する電源電圧レベルが互いに異なる第1電源電圧モードと第2電源電圧モードとを含むとき、上記第1電源電圧モードで回路動作可能な最低電圧と、上記第2電源電圧モードで回路動作可能な最大電圧と、実際に供給された電源電圧との関係を検出するディテクタ(123)を含む。上記ディテクタにより、上記第1電源電圧モードで回路動作可能な最低電圧と、上記第2電源電圧モードで回路動作可能な最大電圧と、実際に供給された電源電圧との関係を容易に検出することができる。上記アナライザ(146)は、上記ディテクタでの検出結果と上記電源電圧モードとに基づいて、上記電源電圧モードと、実際に供給された電源電圧との不整合を検出し、その検出結果に基づいて、上記シーケンサによる上記チャージポンプと上記ディストリビュータとの動作を制限可能なエラー信号をアサートするように構成することができる。
〔11〕所定のプログラムを実行するマイクロコンピュータを搭載して成るマイクロコンピュータ応用システムにおいて、上記マイクロコンピュータとして、上記〔7〕乃至〔10〕記載のデータ処理装置を適用することにより、マイクロコンピュータ応用システムの信頼性の向上を図ることができる。
2.実施の形態の詳細
実施の形態について更に詳述する。
《実施の形態1》
図1には、本発明にかかるデータ処理装置の一例とされるマイクロコンピュータ(「マイクロコントロールユニット」と称されることもある)が示される。
図1に示されるマイクロコンピュータ10は、特に制限されないが、CPU(中央処理装置)11、電源管理ユニット(PMU)12、メインシーケンサ(Main Sequencer)13、フラッシュメモリ14を含み、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。図1には、主としてフラッシュメモリ14への書き込み及び消去に関連するブロック構成が示される。
上記CPU11は、フラッシュメモリ14内のプログラムに従って所定の演算処理を実行する。CPU11からフラッシュメモリ14への書き込み及び消去は、メインシーケンサ13を介して行われる。メインシーケンサ13は、ステータスレジスタ(status reg.)131、モードレジスタ(mode reg.)132、コマンドレジスタ(cmd reg.)133を含み、CPU11からの命令に従ってフラッシュメモリ14の動作をシーケンシャルに制御する。ステータスレジスタ131にはメインシーケンサ13のステータスが設定され、モードレジスタ132には、高Vccモードや低VccモードなどのVccモードが設定され、コマンドレジスタ133には、CPU11から発行された書き込みコマンドや消去コマンドなどの各種コマンドが設定される。
電源管理ユニット12は、レギュレータ(Regurator)121、ノイズフィルタ(Noise Filter)122、ディテクタ(Detector)123を含み、このマイクロコンピュータ10における電源管理を行う。ノイズフィルタ122は、低電位側電源電圧Vss(グランドレベル)を基準とする高電位側電源電圧Vccに含まれるノイズを低減する。レギュレータ121は、ノイズフィルタ122から出力された高電位側電源電圧Vccを降圧して内部電源電圧Vddを形成する。この内部電源電圧Vddは、CPU11、メインシーケンサ13、及びフラッシュメモリ14に伝達される。ディテクタ123は、ノイズフィルタ122から出力された高電位側電源電圧Vccを検出し、その検出結果Vcc_detect_H,Vcc_detect_Lを出力する。Vcc_detect_H,Vcc_detect_Lの論理は、図2に示される真理値表に基づいて決定される。
図2には、ディテクタ123の出力論理の真理値表が示される。「H」はハイレベル(論理値“1”)を示し、「L」はローレベル(論理値“0”)を示す。高Vccモードで回路動作可能な最低電圧を「VccHmin」とし、低Vccモードで回路動作可能な最大電圧を「VccLmax」とした場合に、Vcc<VccHminが成立すれば、Vcc_detect_H,Vcc_detect_Lは、L,Lとされる。VccHmin≦Vcc<VccLmaxが成立する場合、Vcc_detect_H,Vcc_detect_Lは、L,Hとされる。VccLmax≦Vccが成立する場合、Vcc_detect_H,Vcc_detect_Lは、H,Hとされる。
フラッシュメモリ14は、I/Oコントロール回路141、発振器(OSC)144、サブシーケンサ(Sub Sequencer)145、Vccアナライザ(Vcc Analyzer)146、センスアンプ(Sense Amp)147、カラムデコーダ(Y Dec)148、フラッシュメモリアレイ(Flash Memory Array)149、ローデコーダ(X Dec)150を含む。また、フラッシュメモリ14には、ディストリビュータ(Distributer)151、チャージポンプ回路152が設けられる。
I/Oコントロール回路(I/O Control)141は、フラッシュメモリ14における信号入出力を制御する機能を有し、I/Oバッファ(I/O Buff)142と、アドレスバッファ(Address Buff)143とを含む。発振器144は、クロック信号Clockを生成する。生成されたクロック信号Clockは、サブシーケンサ145に伝達される。サブシーケンサ145は、ディストリビュータ151やチャージポンプ回路152の動作をシーケンシャルに制御する。Vccアナライザ146は、Vcc_mode、Vcc_detect_L、Vcc_detect_Hの整合性をチェックし、不整合を生じた場合、エラー信号Vcc_errをアサートする。エラー信号Vcc_errのアサート状態は、メインシーケンサ13によってクリアされるまで保持される。センスアンプ147は、カラムデコーダ148の出力に基づいてフラッシュメモリアレイ149から選択的に出力された信号をリファレンスレベルと比較することで読み出しデータを得る。カラムデコーダ148は、カラムアドレスをデコードすることでカラム系の選択信号を形成する。フラッシュメモリアレイ149は、複数のフラッシュメモリセルが、行方向及び列方向に配列されて成る。この不揮発性メモリセルは、コントロールゲート、フローティングゲート、ドレイン、ソースの各電極を有する。列方向に配置された複数のフラッシュメモリセルのドレインは共通接続されて、副ビット線セレクタを介してビット線に結合される。複数のフラッシュメモリセルのソースは、共通ソース線に接続される。上記共通ソース線に接続されるフラッシュメモリセルが1ブロックを構成し、それらは半導体基板の共通のウエル領域内に形成されて消去の単位とされる。一方、行方向に並んだ複数のフラッシュメモリセルのコントロールゲートは行単位でワード線に接続される。ローデコーダ150は、アドレスバッファ143を介して伝達されたローアドレスをデコードすることでフラッシュメモリアレイ149におけるワード線を選択レベルに駆動する。チャージポンプ回路152は、複数のチャージポンプPump 0〜Pump L(ここで「L」は0を除く正の整数)を意味する)を含む。複数のチャージポンプPump 0〜Pump Lは、それぞれ所定の出力電圧V0〜VLを形成する。この出力電圧V0〜VLはディストリビュータ151に伝達される。ディストリビュータ151は、サブシーケンサ145の出力に応じて、複数のチャージポンプPump 0〜Pump Lの出力電圧V0〜VLを選択的に、カラムデコーダ148,ローデコーダ150に伝達する。
上記の構成において、供給される電源電圧は、回路によって相違する。
例えばパワーマネージメントユニット12では、低電位側電源電圧Vssを基準とする高電位側電源電圧Vccや内部電源電圧Vddが使用される。CPU11、メインレギュレータ13、I/Oコントローラ141、発振器144、サブシーケンサ145、Vccアナライザ146には、低電位側電源電圧Vssを基準とする内部電源電圧Vddが印加されて動作する。センスアンプ147、カラムデコーダ148、フラッシュメモリ149、ローデコーダ150、ディストリビュータ151、チャージポンプ回路152には、低電位側電源電圧Vssを基準とする高電位側電源電圧Vccや内部電源電圧Vddに加えて、チャージポンプ回路152で生成された高電圧が印加される。
図3には、Vccアナライザ146におけるVcc整合確認結果の出力論理の真理値表が示される。
Vcc_mod_latchedと、Vcc_detect_H,Vcc_detect_Lとに不整合を生じた場合、Vccアナライザ146によって、Vcc_errがハイレベル(H)にアサートされる。例えばユーザ指定によってVcc_mod_latchedがHとされているにもかかわらず、検出結果Vcc_detect_H,Vcc_detect_LがL,Lの場合(Vcc<VccHmin)には、不整合を生じているため、Vccアナライザ146によって、Vcc_errがハイレベル(H)にアサートされる。また、ユーザ指定によってVcc_mod_latchedがLとされているにもかかわらず、検出結果Vcc_detect_H,Vcc_detect_LがH,Hの場合(VccLmax≦Vcc)には、不整合を生じているため、Vccアナライザ146によって、Vcc_errがハイレベル(H)にアサートされる。Vcc_errの論理は、メインシーケンサ13によってクリアされるまで、Vccアナライザ146によって保持される。尚、Vcc_mod_latchedと、Vcc_detect_H,Vcc_detect_Lとが整合する場合には、Vcc_errはローレベル(L)にネゲートされる。
サブシーケンサ145の各ステート長をVccモードに応じて切り替える必要がある。また、Vccモードに応じて状態遷移も異なる。そのため、各状態の途中でVccモードが切り替わると、タイマーの誤動作、電源やディストリビュータ内の想定外の電圧状態によるデバイス破壊を起こす可能性がある。このような事態を防ぐには、サブシーケンサ145が書き込み/消去/ベリファイ等の制御期間中において、メインシーケンサ13から伝達されたVcc_modeの論理変化をサブシーケンサ145に伝達しないようにすればよい。これを実現するには、メインシーケンサ13から伝達されたVcc_modeを保持するためのVcc_mode保持回路をVccアナライザ146内に設ければ良い。図4には、上記Vcc_mode保持回路の構成例が示される。Vccアナライザ146内のVcc_mode保持回路146Aは、セレクタ1461,1462と、フリップフロップ1463とを含む。サブシーケンサ145が書き込み/消去/ベリファイ等の制御を行っているか否かは、サブシーケンサ145からState信号によってVccアナライザ146に伝達される。サブシーケンサ145が書き込み/消去/ベリファイ等の制御を行っている場合、State信号によってビジー(BSY)状態であることが示される。セレクタ1461は、サブシーケンサ145からのState信号がビジー(BSY)か否かによって「1’b1」と「1’b0」と選択する。セレクタ1462は、セレクタ1461の出力が「1’b0」の場合に、Vcc_modeの論理を選択的にフリップフロップ1463に伝達し、セレクタ1461の出力が「1’b1」の場合に、フリップフロップ1463の出力を当該フリップフロップの入力とすることで、フリップフロップ1463を保持状態とする。つまり、Vcc_mode_latchedの論理が固定される。この保持状態は、サブシーケンサ145が書き込み/消去/ベリファイ等の制御を行っていない状態がstate信号によって示されるまで維持される。
図5には、メインシーケンサ13における主要処理のフローチャートが示される。
メインシーケンサ13は、CPU11から書き込み(又は消去)コマンドが伝達されると、それに応じてコマンドレジスタ133の設定を行い(501)、フラッシュメモリ14からの終了応答を待つ(502)。フラッシュメモリ14内のサブシーケンサ145は、コマンドレジスタ133の設定内容に応じて、フラッシュメモリアレイ149の書き込み(又は消去)制御を行い、その書き込み(又は消去)が完了した時点でメインシーケンサ13に終了応答を返す。メインシーケンサ13は、サブシーケンサ145から終了応答を受け取ると、コマンドレジスタ133をクリアし(503)、その後、エラー信号Vcc_errの論理に基づいて、Vccアナライザ146によってVccエラーが検出されているか否かの判別を行う(504)。メインシーケンサ13は、Vccアナライザ146によってエラー信号Vcc_errがアサートされていた場合、Vccエラーを生じていると判断し(Y)、ステータスレジスタ131を介して、CPU11にVccエラーステータスを返す(511)。また、メインシーケンサ13は、Vccアナライザ146によってエラー信号Vcc_errがアサートされていない場合、Vccエラーを生じていないと判断し(N)、フラッシュメモリのしきい値Vthが書き込みレベル(又は消去レベル)に到達したか否かを確認するため、コマンドレジスタ133に、書き込みベリファイコマンド(又は消去ベリファイコマンド)の設定を行う(505)。そしてフラッシュメモリ14からの終了応答を待つ(506)。フラッシュメモリ14内のサブシーケンサ145は、コマンドレジスタ133の設定内容に応じて、フラッシュメモリアレイ149の書き込みベリファイ(又は消去ベリファイ)を行い、その書き込みベリファイ(又は消去ベリファイ)が終了した時点で、サブシーケンサ145からメインシーケンサ13に終了応答を返す。メインシーケンサ13は、サブシーケンサ145から終了応答を受け取ると、コマンドレジスタ133をクリアし(507)、その後、その後、エラー信号Vcc_errの論理に基づいて、Vccアナライザ146によってVccエラーが検出されているか否かの判別を行う(508)。メインシーケンサ13は、Vccアナライザ146によってエラー信号Vcc_errがアサートされていた場合、Vccエラーを生じていると判断し(Y)、CPU11に対してVccエラーステータスを返す(511)。また、メインシーケンサ13は、Vccアナライザ146によってエラー信号Vcc_errがアサートされていない場合、Vccエラーを生じていないと判断し(N)、フラッシュメモリアレイ149の書き込みベリファイ(又は消去ベリファイ)の結果に基づいて、フラッシュメモリのしきい値Vthが所望レベルに達しているか否かの判別を行う(509)。この判別において、フラッシュメモリのしきい値Vthが所望レベルに達している(Y)と判断した場合、CPU11に対して終了ステータスを返す(510)。また、メインシーケンサ13は、上記ステップ509の判別において、フラッシュメモリのしきい値Vthが所望レベルに達していない(N)と判断した場合には、上記ステップ501の処理に戻り、再び書き込み(又は消去)を実行するためにコマンドレジスタ133の設定を行い(501)、フラッシュメモリ14からの終了応答を待つ(502)。以下、上記ステップ509の判別において、フラッシュメモリのしきい値Vthが所望レベルに達している(Y)と判断されるまで、書き込み(又は消去)と、書き込みベリファイ(又は消去ベリファイ)が繰り返される。
図6には、サブシーケンサ145における主要処理のフローチャートが示される。
サブシーケンサ145は、メインシーケンサ13におけるコマンドレジスタ133が設定されると、設定されたコマンドに応じた処理を制御する。
サブシーケンサ145は、エラー信号Vcc_errの論理に基づいて、Vccアナライザ146によってVccエラーが検出されているか否かの判別を行う(601)。Vccアナライザ146によってエラー信号Vcc_errがアサートされていない場合にはVccエラーが検出されていない(N)と判断し、Vccモードに応じて、ディストリビュータ151のシーケンスが制御される。すなわち、Vccアナライザ146によって低Vccモードが指示された場合には、ディストリビュータ151を制御して、低Vccモードに対応するバイアス印加のための電圧選択が行われ(602)、Vccアナライザ146によって高Vccモードが指示された場合には、ディストリビュータ151を制御して、高Vccモードに対応するバイアス印加のための電圧選択が行われる(603)。
次に、サブシーケンサ145は、再びエラー信号Vcc_errの論理に基づいて、Vccアナライザ146によってVccエラーが検出されているか否かの判別を行う(604)。Vccアナライザ146によってエラー信号Vcc_errがアサートされていない場合にはVccエラーが検出されていない(N)と判断し、Vccモードに応じて、チャージポンプが起動される。Vccアナライザ146によって低Vccモードが指示されている場合には、ディストリビュータ151を制御して、低Vccモードに対応するチャージポンプ制御が行われ(605)、Vccアナライザ146によって高Vccモードが指示されている場合には、高Vccモードに対応するチャージポンプが起動される(606)。
チャージポンプの起動後、サブシーケンサ145は、再びエラー信号Vcc_errの論理に基づいて、Vccアナライザ146によってVccエラーが検出されているか否かの判別を行う(607)。Vccアナライザ146によってエラー信号Vcc_errがアサートされていない場合にはVccエラーが検出されていない(N)と判断し、Vccモードに応じたチャージポンプのセットアップの完了を待つ。チャージポンプの出力が所定の電圧レベルに達するまで待つ必要がある。Vccアナライザ146によって低Vccモードが指示されている場合には、低Vccモードに応じたチャージポンプのセットアップの完了を待ち(608)、Vccアナライザ146によって高Vccモードが指示されている場合には、高Vccモードに応じたチャージポンプのセットアップの完了を待つ(609)。
チャージポンプのセットアップ完了後、サブシーケンサ145は、再びエラー信号Vcc_errの論理に基づいて、Vccアナライザ146によってVccエラーが検出されているか否かの判別を行う(610)。Vccアナライザ146によってエラー信号Vcc_errがアサートされていない場合にはVccエラーが検出されていない(N)と判断し、ディストリビュータ151を介して、バイアスのための電圧供給を行う(611)。
そして、チャージポンプがオフされ(612)、チャージポンプの電荷が放電されるのを待って(613)、ディストリビュータ151が初期化され(614)、終了応答がメインシーケンサ615に伝達される(615)。
また、上記ステップ601の判別において、Vccアナライザ146によってエラー信号Vcc_errがアサートされている場合にはVccエラーが検出されている(Y)と判断し、終了応答がメインシーケンサ615に伝達される(615)。
上記ステップ604の判別において、Vccアナライザ146によってエラー信号Vcc_errがアサートされている場合にはVccエラーが検出されている(Y)と判断し、ディストリビュータ151が初期化される(614)。
上記ステップ607の判別において、Vccアナライザ146によってエラー信号Vcc_errがアサートされている場合や、上記ステップ610の判別において、Vccアナライザ146によってエラー信号Vcc_errがアサートされている場合には、Vccエラーが検出されている(Y)と判断し、チャージポンプがオフされる(612)。
電源電圧モードに応じてサブシーケンサ145の各ステートが切り替えられ、また、電源電圧モードに応じて状態遷移も異なる。高Vccモードに対応する電圧選択が行われた場合には、低Vccモードに対応する電圧選択が行われた場合に比べて高速動作が可能になり、フラッシュメモリアレイ149への書き込みや消去を短時間で完了することができる。
図7には、高電位側電源電圧Vccの適正範囲とVccモード指定との関係が示される。
Vccのサポート範囲、低Vccモードに対応した制御が必要な範囲、高Vccモードに対応した制御が必要な範囲は、図7(A)に示される。
Vccのサポート範囲はVccmin以上、Vccmax以下である。VccがVccmin以上、VccLmax以下では低Vccモードに対応した制御が必要である。VccがVccLmaxより高い時に低Vccモードに対応した制御を行うと過剰昇圧となりデバイス破壊が起きる。VccがVccHmin以上、Vccmax以下では高Vccモードに対応した制御が必要である。VccがVccHminより低い時に高Vccモードに対応した制御を行うと必要な昇圧レベルに到達しないため、書き込みや消去ができない。
低Vccモード及び高Vccモードにおける制御は、図7(B)に示されるように行われる。図7(B)において横軸は時間である。
Vccモード(低Vccモード/高Vccモード)は、ユーザによりメインシーケンサ13におけるVccモードレジスタ132に設定される。
Vccモードレジスタ132に低Vccモードが設定され、書き込み/消去開始から書き込み/消去終了までVccがVccmin以上VccLmax以下であった場合、低Vccモードで書き込み/消去を実施し、正常終了する(正常ケース1)。
Vccモードレジスタ132に低Vccモードが設定され、書き込み/消去開始時にVccがVccLmaxを超えていた場合、Vccアナライザ146によってVcc不整合が検出され、Vcc_errがアサートされる。この場合、図5におけるステップ504又は508の判別でVccエラーを生じていると判断され、ステータスレジスタ131を介して、CPU11にVccエラーステータス(エラー通知)が返される。この場合、CPU11にエラー通知されるのみで、書き込み/消去は行われない(異常ケース1)。
Vccモードレジスタ132に低Vccモードが設定され、書き込み/消去中にVccがVccLmaxを超えた場合には、図6におけるステップ607又は610の判別でVccエラーを生じていると判断され、チャージポンプがオフされ(612)、チャージポンプの電荷が放電されるのを待って(613)、ディストリビュータ151が初期化され(614)、終了応答がメインシーケンサ615に伝達される(615)。ステータスレジスタ131を介して、CPU11にVccエラーステータス(エラー通知)が返される(異常ケース2)。
Vccモードレジスタ132に高Vccモードが設定され、書き込み/消去開始から書き込み/消去終了までVccがVccHmin以上Vccmax以下であった場合、高Vccモードで書き込み/消去を実施し、正常終了する(正常ケース2)。
Vccモードレジスタ132に高Vccモードが設定され、書き込み/消去開始時にVccがVccHminより低かった場合、Vccアナライザ146によってVcc不整合が検出され、Vcc_errがアサートされる。この場合、図5におけるステップ504又は508の判別でVccエラーを生じていると判断され、ステータスレジスタ131を介して、CPU11にVccエラーステータス(エラー通知)が返される。書き込み/消去は開始されない(異常ケース3)。
Vccモードレジスタ132に高Vccモードが設定され、書き込み/消去中にVccがVccHminより低くなった場合、図6におけるステップ607又は610の判別でVccエラーを生じていると判断され、チャージポンプがオフされ(612)、チャージポンプの電荷が放電されるのを待って(613)、ディストリビュータ151が初期化され(614)、終了応答がメインシーケンサ615に伝達される(615)。ステータスレジスタ131を介して、CPU11にVccエラーステータス(エラー通知)が返される(異常ケース4)。
ここで、異常ケース3や異常ケース4では、そのまま、高Vccモードで制御を継続しても、必要な昇圧レベルに到達せず書き込み/消去は正常に行われないが、デバイス破壊は起きない。したがって、異常ケース3や異常ケース4の場合には、放電処理等はせずに、Vccアナライザ146においてそれまでの高Vccモードから低Vccモードに切り替えてから、制御を継続するようにしても良い。
実施の形態1によれば、以下の作用効果を奏する。
(1)Vccモードによりディストリビュータ及びチャージポンプの制御シーケンスを切り替えており、また、待ち時間もVccモードにより切り替えているため、Vccモードに対して電源電圧Vccが適切な範囲にあれば過剰昇圧や昇圧不足が起きない。これにより、電源電圧レベルに対応して予め設定された複数の電源電圧モードにおいて不揮発性メモリの安定動作を図ることができる。
(2)ユーザは低Vccモードを指定してVcc不整合のエラー通知を受信した場合(異常ケース1、異常ケース2)、高Vccモードを指定し直して再度書き込み/消去をやり直すことにより、正常に書き込み/消去が可能である。同様に高Vccモードを指定し、Vcc不整合のエラー通知を受信した場合(異常ケース3、異常ケース4)、低Vccモードを指定し直して再度書き込み/消去をやり直すことにより、正常に書き込み/消去が可能である。すなわち、VccminからVccmaxまでのVccにおいて書き込み/消去が可能である。
(3)メインシーケンサ13から伝達されたVcc_modeを保持するためのVcc_mode保持回路をVccアナライザ146内に設けているので、サブシーケンサ145が書き込み/消去/ベリファイ等の制御期間中において、メインシーケンサ13から伝達されたVcc_modeの論理変化がサブシーケンサ145には伝達されない。これにより、書き込みや消去中(ベリファイを含む)に電源電圧モードが切り替わるのを防止することができるので、回路誤動作の防止することができ、また、ベリファイの信頼性を確保できる。
(4)上記(1)〜(3)の作用効果により、フラッシュメモリ14の信頼性を向上させることができる。そしてそのようなフラッシュメモリ14を備えるマイクロコンピュータ10の信頼性の向上を図ることができる。
《実施の形態2》
実施の形態1では、Vcc不整合が発生した場合、エラーを通知し、ユーザはそれを見てVccモードを指定し直すことで、VccminからVccmaxまでサポートする。これに対して実施の形態2では、Vccモードを指定し直すことなく、VccminからVccmaxまでサポートする。
図8には、メインシーケンサ13における主要処理のフローチャートが示される。
図8に示される主要処理のフローチャートが、図5に示される場合と大きく相違するのは、ステップ811,812でモードレジスタ132の設定内容を変更してからコマンドレジスタ133の設定に戻るようになっている点である。
ステップ800では、ユーザのリクエストに応じて、モードレジスタ132の初期設定が行われる。ステップ801〜810は、図5におけるステップ501〜510に対応する。
図9には、高電位側電源電圧Vccの適正範囲とVccモード指定との関係が示される。図9において横軸は時間である。
Vccモード(低Vccモード/高Vccモード)の初期値は、実施の形態1の場合と同様にユーザがメインシーケンサのVccモードレジスタに設定する。
低Vccモードがユーザにより設定され、書き込み/消去開始から書き込み/消去終了までVccがVccmin以上VccLmax以下であった場合、低Vccモード制御で書き込み/消去を実施し、正常終了する(正常ケース1)。
低Vccモードがユーザにより設定され、書き込み/消去開始時にVccがVccLmaxを超えていた場合、メインシーケンサはVccモードレジスタを高Vccモードに変更して書き込み/消去を実施し、正常終了する(正常ケース1−1)。
低Vccモードがユーザにより設定され、書き込み/消去中にVccがVccLmaxを超えた場合、放電処理を実施した後、メインシーケンサはVccモードレジスタを高Vccモードに変更して書き込み/消去を再度実施し、正常終了する(正常ケース1−2)。
高Vccモードがユーザにより設定され、書き込み/消去開始から書き込み/消去終了までVccがVccHmin以上Vccmax以下であった場合、高Vccモードで書き込み/消去を実施し、正常終了する(正常ケース2)。
高Vccモードがユーザにより設定され、書き込み/消去開始時にVccがVccHminより低かった場合、メインシーケンサはVccモードレジスタを低Vccモードに変更して書き込み/消去を実施し、正常終了する(正常ケース2−3)。
高Vccモード制御がユーザにより設定され、書き込み/消去中にVccがVccHminより低くなった場合、放電処理を実施した後、メインシーケンサはVccモードレジスタを低Vccモードに変更して書き込み/消去を再度実施し、正常終了する(正常ケース2−4)。
実施の形態2によれば、以下の特有な効果を奏する。
実施の形態1では、Vcc不整合が発生した場合、エラーを通知し、ユーザが指定するVccモードを指定し直すことでVccminからVccmaxまでサポートする。これに対して実施の形態2によれば、ユーザがVccモードを指定し直すことなく、VccminからVccmaxまでサポートすることが可能となる。
《実施の形態3》
実施の形態1及び実施の形態2では、ユーザがVccモード又はVccモードの初期値を指定したが、以下に述べるように、高電位側電源電圧Vccの検出レベルに応じてVccモードを自動的に判定するように構成することができる。
例えば図10に示されるように、Vccモードを判定するための基準レベルVccJを設定する。VccJはVccHminより高く、VccLmaxより低く設定する。書き込み/消去開始時にVccモードの判定を行い、高電位側電源電圧VccがVccJよりも低い場合は低Vccモードと判定し、高電位側電源電圧VccがVccJ以上であれば高Vccモードと判定するように回路を構成すればよい。
図11には、高電位側電源電圧Vccの検出レベルに応じてVccモードを自動的に判定可能なマイクロコンピュータが示される。図11に示されるマイクロコンピュータ10が図1に示されるのと大きく相違するのは、パワーマネージメントユニット12からVccアナライザ146に対して、Vcc_detect_L/Hに加えて、Vcc_detect_Jが伝達される点である。尚、本例では、Vccモードを自動的に判定するようにしているため、図1に示されるモードレジスタ132に相当するものは省略されている。
Vcc_detect_Jの論理は、パワーマネージメントユニット12内のディテクタ123において、図12に示される真理値表に従って決定される。すなわち、ディテクタ123は、高電位側電源電圧VccがVccJよりも低い場合はVcc_detect_JをL(ローレベル)とし、高電位側電源電圧VccがVccJ以上であればVcc_detect_JをH(ハイレベル)とする。
Vccアナライザ146は、伝達されたVcc_detect_Jをラッチして、Vcc_mode_latchedを形成する。Vcc_mode_latched生成回路はこれまで説明した実施の形態と同様、図4に示される。ただし、図4に示すVCC_modeの代わりにVcc_detect_Jを接続する。Vccアナライザ146は、図13に示されるように、Vcc_detect_Jがローレベルであれば、Vcc_mode_latchedをローレベルとし、Vcc_detect_Jがハイレベルであれば、Vcc_mode_latchedをハイレベルとする。ただし、これまで説明した実施の形態と同様、サブシーケンサ145が書き込み/消去/ベリファイ等の制御を行っていない状態がstate信号によって示されるまで維持される。
また、Vccアナライザ146は、Vcc_mode_latched、Vcc_detect_L、Vcc_detect_Hの整合性をチェックし、不整合を生じた場合、メインシーケンサ13に対してエラー信号Vcc_errをアサートする。Vccアナライザ146におけるVcc整合確認結果の出力論理は、図3の真理値表に基づいて決定される。Vcc_mode_latchedと、Vcc_detect_H,Vcc_detect_Lとに不整合を生じた場合、Vccアナライザ146によって、Vcc_errがハイレベル(H)にアサートされる。例えばVcc_mode_latchedがHとされているにもかかわらず、検出結果Vcc_detect_H,Vcc_detect_LがL,Lの場合(Vcc<VccHmin)には、不整合を生じているため、Vccアナライザ146によって、Vcc_errがハイレベル(H)にアサートされる。また、Vcc_mode_latchedがLとされているにもかかわらず、検出結果Vcc_detect_H,Vcc_detect_LがH,Hの場合(Vccmax≦Vcc)には、不整合を生じているため、Vccアナライザ146によって、Vcc_errがハイレベル(H)にアサートされる。Vcc_errの論理は、メインシーケンサ13によってクリアされるまで、Vccアナライザ146によって保持される。尚、Vcc_mode_latchedと、Vcc_detect_H,Vcc_detect_Lとが整合する場合には、Vcc_errはローレベル(L)にネゲートされる。
図14には、図11に示されるメインシーケンサ13における主要処理のフローチャートが示される。
図14に示されるフローチャートが、図5に示されるのと大きく相違するのは、ステップ504及び508のVccエラー判別、並びにステップ511のVccエラーステータスを返す処理に相当するものが省略されている点である。
尚、図14におけるステップ1401〜1403の処理は、図5におけるステップ501〜503の処理に相当し、図14におけるステップ1405〜1407の処理は、図5におけるステップ505〜507の処理に相当し、図14におけるステップ1409,1410の処理は、図5におけるステップ509,510の処理に相当する。
図15には、図11に示されるサブシーケンサ145における主要処理のフローチャートが示される。
図11に示されるサブシーケンサ145は、Vccアナライザ146から伝達されたVcc_mode_latchedの論理を判定する(1501)。Vcc_mode_latchedがローレベルの場合には低Vccモードとされ、Vcc_mode_latchedがハイレベルの場合には高Vccモードとされる。図15におけるステップ1502〜1515までの処理は、図6におけるステップ602〜615までの処理と同様とされる。ただし、ステップ1504の判別においてVccエラーが検出されている(Y)と判断された場合には、ディストリビュータ151が初期化された後に(1518)、ステップ1501のVcc_mode_latched論理判定に戻される。また、ステップ1507,1510の判別においてVccエラーが検出されている(Y)と判断された場合には、チャージポンプがオフされる(1516)。そしてチャージポンプの電荷が放電されるのを待って(1517)、ディストリビュータ151が初期化された後に(1518)、ステップ1501のVcc_mode_latched論理判定に戻され、再びVccアナライザ146から伝達されたVcc_mode_latchedの論理判定が行われる。
実施の形態3によれば、以下の特有な効果を奏する。
(1)高電位側電源電圧Vccの検出レベルに応じてVccモードを自動的に判定することができるので、ユーザがVccモードを指定することなく、VccminからVccmaxまでをサポートすることが可能になる。
(2)パワーマネージメントユニット12からVccアナライザ146に対して、Vcc_detect_L/Hに加えて、Vcc_detect_Jが伝達される。Vccアナライザ146において、Vcc_mode_latchedはVcc_detect_Jをラッチすることにより生成され、Vcc_mode_latched、Vcc_detect_L、Vcc_detect_Hの整合性をチェックし、不整合を生じた場合、エラー信号Vcc_errをアサートするようにしている。このため、フラッシュメモリ14の信頼性を向上させることができる。そしてそのようなフラッシュメモリ14を備えるマイクロコンピュータ10の信頼性の向上を図ることができる。
《実施の形態4》
実施の形態1〜3のマイクロコンピュータ10は、種々のマイクロコンピュータ応用システムに適用することができる。例えば図16に示されるように、自動車1601のエンジン制御用ボード1602に適用することができる。適用されたマイクロコンピュータ10では、マイクロコンピュータ応用システム毎に作成された所定の制御用プログラムが実行される。
エンジン制御用ボード1602は、エンジンコントロールユニット(Engine Control Unit,ECU)とも称され、主に自動車1601における点火系と燃料系の制御を行っている。オートマチック車ではトランスミッションを含むパワートレイン全体の制御も行う。さらに、エンジンに対するほぼ全ての制御を行う場合もある。このようなエンジン制御用ボード1602において、実施の形態1〜3のマイクロコンピュータ10が搭載される。
また、実施の形態1〜3のマイクロコンピュータ10は、図17に示されるように、家電製品の一例とされる洗濯機1701の制御用ボード1702に適用することができる。この制御用ボード1702では、洗濯機に搭載されたインバータモータの制御が行われる。
図16に示されるエンジン制御用ボード1602や、図17に示される家電制御用ボード1702においては、フラッシュメモリ14を備えるマイクロコンピュータ10の信頼性により、マイクロコンピュータ応用システムの信頼性の向上を図ることができる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、フラッシュメモリ14が不揮発性メモリとして単体で提供される場合においても本発明を適用することができる。