説明

半導体装置

【課題】データの誤書換を防止することが可能な低消費電力の半導体装置を提供する。
【解決手段】マイクロコンピュータ1は、電源電圧VCCが正常範囲から外れた場合にリセット信号REを出力する電圧検出器2と、各々がデータを不揮発的に記憶する複数のメモリセルを含むメモリアレイ5と、イレーズコマンドまたはプログラムコマンドに応答して、電圧検出器2の応答時間TR以上の保留時間TSだけ経過した後にデータのイレーズまたはプログラムを実行し、リセット信号REに応答してリセットされる制御部7とを備える。したがって、電圧検出器2の応答時間TRが長い場合でも、データの誤書換を防止できる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は半導体装置に関し、特に、電源電圧が正常範囲から外れた場合にリセットされる半導体装置に関する。
【背景技術】
【0002】
電源電圧が安定しない状態でマイクロコンピュータを使用すると、電源電圧の大きな瞬時的な変動を契機として、マイクロコンピュータが所定の命令列を踏み外して所謂暴走状態になり、意図しないプログラムコードを実行してしまうことがある。
【0003】
製品では電源電圧の変動に関する規定が設けられているので、通常はそのような暴走状態になることはなく、規定が守られていない場合や大きな外来ノイズが発生した場合に問題が発生する。たとえば、マイクロコンピュータの量産時におけるバーンイン工程中などでは、ICソケットに多数のサンプルをアレイ状にセットして動作させるといった劣悪な電源環境となるので、マイクロコンピュータが暴走状態に陥る頻度が高くなる。
【0004】
プログラム領域やデータ領域として不揮発性半導体メモリを持つマイクロコンピュータでは、意図しないイレーズやプログラムは応用セットの動作不良となるため、これを避けるための誤イレーズ、誤プログラムを防止するプロテクト機能が設けられている。しかし、ソフトウェアでイレーズやプログラムを行なうためには、プロテクトもソフトウェアで解除できる必要がある、したがって、正規の手続きに沿ってプロテクトが解除されてイレーズやプログラムのコマンドが発行されてしまえば、そのイレーズやプログラムの実行を防ぐことはできない。
【0005】
つまり、劣悪な電源環境に置かれた不揮発性半導体メモリ搭載マイクロコンピュータは、その電源変動による暴走を機にイレーズやプログラムの処理ルーチンに意図せずジャンプし、その結果として意図しないイレーズやプログラムを実行してしまうことがある。意図しないイレーズやプログラムの実行を防止する従来技術としては、以下のものがある。
【0006】
特許文献1には、電源投入時や障害発生時に、一定期間だけライトイネーブル信号の出力を禁止することにより、プログラムの暴走などによる不揮発性半導体メモリのデータの誤書込み、誤消去によるデータ破壊を防止する方法が開示されている。
【0007】
また特許文献2には、フラッシュメモリシステムに供給される電源電圧が所定の電圧よりも低くなったときに、フラッシュメモリに対する処理を停止させるメモリコントローラおよびフラッシュメモリシステムが開示されている。また特許文献3には、電源電圧が正常範囲内であるか否かをチェックし、正常範囲内でない場合は書込みを行わないID(Identification)システムが開示されている。
【0008】
また特許文献4には、ある電源電圧以上で外部から入力された書込制御信号を出力し、別のある電圧以下で制御信号の出力を接地するスリーステートバッファを有し、メモリのインヒビット端子への書込制御信号の供給を制御することで、メモリの誤書込を防止する方法が開示されている。
【0009】
また特許文献5には、カウンタを用いてCPU(Central Processing Unit)の暴走を検知し、内蔵EEPROM(Electrically Erasable Programmable Read-Only Memory)の書込許可を非アクティブにすることで、内蔵EEPROMへの書込みを禁止するマイクロコンピュータが開示されている。
【0010】
また特許文献6には、データ書換装置からEEPROMに印加される書換電圧が上限と下限の間の範囲にない場合、EEPROMに書換電圧を印加しないことで、不揮発性半導体メモリの書換処理を精度良く行なう車載用システムが開示されている。
【0011】
また特許文献7には、電源電圧を監視して異常を感知した際に出力される電圧不確定信号により、素子外部からのメモリ制御信号を抑止し、書込失敗フラグをセットすることでデータの誤書込を防止する不揮発性半導体メモリ装置が開示されている。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開2001−14872号公報
【特許文献2】特開2007−206775号公報
【特許文献3】特開昭63−249284号公報
【特許文献4】特開平3−263149号公報
【特許文献5】特開平7−44463号公報
【特許文献6】特開平7−211087号公報
【特許文献7】特開平8−22422号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
これらの従来技術はいずれも、電圧検出器によって電圧の異常が検出された場合に、不揮発性半導体メモリのイレーズ動作やプログラム動作を禁止または保留するものであるが、昨今のマイクロコンピュータに求められる性能の1つである超低消費電力を実現することはできない。
【0014】
すなわち、電圧検出器の消費電流を小さくすると応答速度が遅くなり、電圧の異常を検出する前に誤イレーズや誤プログラムが実行されてしまう。逆に、電圧検出器の消費電流を大きくして応答速度を速くすると、誤書換を防止できても消費電力が増大してしまう。
【0015】
それゆえに、この発明の主たる目的は、データの誤書換を防止することが可能な低消費電力の半導体装置を提供することである。
【課題を解決するための手段】
【0016】
この発明に係る半導体装置は、電源電圧が正常範囲から外れた場合にリセット信号を出力する電圧検出器と、各々がデータを不揮発的に記憶する複数のメモリセルを含むメモリアレイと、イレーズコマンドまたはプログラムコマンドに応答して、電圧検出器の応答時間以上の予め定められた時間だけ経過した後にデータのイレーズまたはデータのプログラムを実行し、リセット信号に応答して初期状態にリセットされる制御部とを備えたものである。
【発明の効果】
【0017】
この発明に係る半導体装置では、イレーズコマンドまたはプログラムコマンドに応答して、電圧検出器の応答時間以上の予め定められた時間だけ経過した後にデータのイレーズまたはデータのプログラムを実行し、リセット信号に応答して初期状態にリセットされる制御部が設けられる。したがって、電圧検出器の応答時間が経過した後にデータのイレーズまたはデータのプログラムを行なうので、電圧検出器の消費電流を減らしてもデータの誤書換が生じることがない。よって、データの誤書換を防止することが可能な低消費電力の半導体装置を実現することができる。
【図面の簡単な説明】
【0018】
【図1】この発明の実施の形態1によるマイクロコンピュータの構成を示すブロック図である。
【図2】図1に示した制御部の構成を示すブロック図である。
【図3】図1に示したマイクロコンピュータの動作および効果を示すタイムチャートである。
【図4】この発明の実施の形態2によるマイクロコンピュータの制御部の構成を示すブロック図である。
【図5】実施の形態1の問題点を説明するためのタイムチャートである。
【図6】この発明の実施の形態3によるマイクロコンピュータの制御部の構成を示すブロック図である。
【図7】実施の形態1の他の問題点を説明するためのタイムチャートである。
【図8】この発明の実施の形態4によるマイクロコンピュータの制御部の構成を示すブロック図である。
【発明を実施するための形態】
【0019】
[実施の形態1]
本発明の実施の形態1によるマイクロコンピュータ1は、図1に示すように、電圧検出器2、CPU3、および不揮発性半導体メモリ4を備える。電圧検出器2は、外部電源電圧VCCが正常範囲から外れたことに応じて、マイクロコンピュータ1全体をリセットさせるためのリセット信号REを活性化レベルの「L」レベルにする。電圧検出器2は、外部電源電圧VCCが正常範囲から外れてからリセット信号REを活性化レベルの「L」レベルにするまでに所定の応答時間TRを要する。
【0020】
CPU3は、不揮発性半導体メモリ4に種々のコマンドを与える。不揮発性半導体メモリ4は、メモリアレイ5、チャージポンプ回路6、および制御部7を含む。メモリアレイ5は、複数行複数列に配置された複数のメモリセル(図示せず)を含む。各メモリセルは、データを不揮発的に記憶する。各メモリセルには、固有のアドレスが割り当てられている。チャージポンプ回路6は、制御部7によって制御され、データのイレーズやプログラムに必要な電圧を生成してメモリアレイ5に与える。
【0021】
制御部7は、図2に示すように、タイマ8およびシーケンサ9を含む。タイマ8は、シーケンサ9からの起動信号に応答して計時を開始し、計時を開始してから予め定められた保留時間TSの経過後に計時を終了してアンダーフロー信号を出力する。保留時間TSは、電圧検出器2の応答時間TR以上の時間に設定されている。タイマ8のビット数やカウント周期を調整することにより、保留時間TSが調整される。
【0022】
シーケンサ9は、CPU3からのコマンドに応答してタイマ8に起動信号を与え、タイマ8からのアンダーフロー信号に応答してコマンドの内容(イレーズ、プログラムなど)を実行する。具体的には、シーケンサ9は、CPU3からのイレーズコマンドを受けてから保留時間TSの経過後に、メモリアレイ5のうちの選択されたメモリセルのデータを消去する。また、シーケンサ9は、CPU3からプログラムコマンドを受けてから保留時間TSの経過後に、メモリアレイ5のうちの選択されたメモリセルにデータをプログラムする。
【0023】
また、シーケンサ9は、コマンドを受けた場合であっても、電圧検出器2からのリセット信号REが活性化レベルの「L」レベルにされた場合は初期状態にリセットされる。初期状態にリセットされたシーケンサ9は、リセットされる前に受けたコマンドを実行しない。
【0024】
図3(a)〜(d)は、従来のマイクロコンピュータと本実施の形態1のマイクロコンピュータ1の動作を示すタイムチャートである。ここでは図3(a)に示すように、外部電源電圧VCCが変動して時刻t0において所定のしきい値電圧VTHよりも低下したものとする。図3(a)の実線は外部電源電圧VCCのレベルが一旦低下した後に回復した場合を示し、図3(a)の点線は外部電源電圧VCCのレベルが低下して安定した状態を示している。ここでは、外部電源電圧VCCが安定した状態では、マイクロコンピュータ1は正常に動作するものとする。
【0025】
時刻t0において外部電源電圧VCCがしきい値電圧VTHよりも低下すると、図3(b)に示すように、電圧検出器2によってリセット信号REが非活性化レベルの「H」レベルから活性化レベルの「L」レベルに立ち下げられる。ただし、リセット信号REが実際に「H」レベルから「L」レベルに立ち下げられるのは、時刻t0から電圧検出器2の応答時間TRが経過した後の時刻t4である。リセット信号REが「L」レベルに立ち下げられると、マイクロコンピュータ1がリセットされる。
【0026】
また、時刻t0において外部電源電圧VCCがしきい値電圧VTHよりも低下してマイクロコンピュータ1が暴走し、時刻t0から所定時間TD経過後の時刻t1においてシーケンサ9の動作がプログラムルーチンに到達したとする。この場合、シーケンサ9は、時刻t1にCPU3からのプログラムコマンドを受けた場合と同様に動作する。
【0027】
従来はタイマ8が無かったので、図3(c)に示すように、シーケンサ9は時刻t1から時刻t3までの期間TPRにデータのプログラムを実行する。ただし、プログラム期間TPRのうちの時刻t1から時刻t2までの期間TCPはチャージポンプ回路6が運転される期間であり、この期間TCPは未だデータのプログラムは行なわれない。したがって従来は、時刻t2から時刻t4の期間TERRで誤プログラムが行なわれる恐れがあった。時刻t4以降はリセット信号REによってシーケンサ9がリセットされるので、誤プログラムが開始される恐れはない。
【0028】
この場合、電圧検出器2の消費電流を大きくして応答時間TRを短縮し、時刻t0から時刻t2の間でリセット信号REが「H」レベルから「L」レベルに立ち下げられるようにすれば、シーケンサ9を初期状態にリセットして誤プログラムが行なわれるのを防止することができる。しかし、それではマイクロコンピュータ1の消費電力が増大してしまう。
【0029】
これに対して本実施の形態1ではタイマ8が設けられているので、図3(d)に示すように、シーケンサ9はプログラムコマンドを受けてから所定の保留時間TSが経過し、かつリセット信号REによってリセットされていない場合にデータのプログラムを実行する。
【0030】
したがって、マイクロコンピュータ1が暴走したために発生したプログラムコマンドがシーケンサ9に与えられた場合、シーケンサ9は時刻t4でリセットされるので、データのプログラムは実行されない。マイクロコンピュータ1が暴走したために発生したイレーズコマンドをシーケンサ9が受けた場合も、同様であり、データのイレーズは実行されない。よって、マイクロコンピュータ1の暴走によるデータの誤書換を防止することができる。
【0031】
以上のように、本実施の形態1では、イレーズやプログラムのコマンドを受け付けた場合、タイマ8を起動させて一定期間TSだけイレーズやプログラムの実行を保留する。また、電圧検出器2は、外部電源電圧VCCの低下を検出した場合、応答時間TR(TR≦TS)経過後にマイクロコンピュータ1をリセットする。したがって、外部電源電圧VCCの低下を契機とした暴走が引き起こしたイレーズやプログラムが実行される前にマイクロコンピュータ1がリセットされる。よって、誤イレーズや誤プログラムを抑止することができる。
【0032】
また、外部電源電圧VCCの低下が検出されなかった場合は、コマンドは暴走の結果によるものでは無く、信頼できるソフトウェアによる意図的なものとして、保留時間TSの経過後にイレーズやプログラムが実行される。この場合、CPU3側からは、イレーズやプログラムの実行時間が単に延びたように見える。
【0033】
このようにすることで、電圧検出器2に必要な消費電流を不揮発性半導体メモリ4のコマンドの実行遅延時間に合わせて削減することが可能となり、昨今の重要な要求スペックである低消費電力を実現しつつ、誤イレーズや誤プログラムを防止することができる。
【0034】
なお、この実施の形態1では、コマンドの種類によらずにコマンドの実行を保留したが、イレーズコマンドやプログラムコマンドのようにメモリアレイ5の記憶内容の変更を伴うコマンドを受けた場合だけコマンドの実行を保留し、メモリアレイ5の記憶内容の変更を伴わないコマンドを受けた場合は直ぐにコマンドを実行してもよい。メモリアレイ5の記憶内容の変更を伴わないコマンドとしては、たとえばステータスリードなどがある。これにより、不要なコマンド処理時間の増大を抑えることができる。
【0035】
[実施の形態2]
実施の形態1では、イレーズやプログラムのコマンドを受け付けた場合、常に一定期間TSだけイレーズやプログラムの実行を保留した。これにより、誤イレーズや誤プログラムを防止できる反面、イレーズやプログラムに要する時間が保留時間TS分だけ延びてしまい、イレーズやプログラムの遅いマイクロコンピュータ1となる。
【0036】
そこで、本実施の形態2では、マイクロコンピュータ1の用途に応じてコマンドの実行を遅延をさせるかどうかを選択できるようにする。たとえば、書換速度より信頼性を重視する用途や、外来ノイズの多い環境での使用を想定する用途、マイクロコンピュータの製造工程中のバーンイン工程での動作させる用途には、コマンドの実行を遅延させる。一方、安定した電源電圧VCCで動作させることが可能な用途では、コマンドの実行を遅延させないこととし、イレーズ、プログラムのレスポンスを最大にすることができる。
【0037】
具体的には図4に示すように、制御部7内にレジスタ10が設けられる。コマンドの実行を遅延させる第1のモードでは、レジスタ10に「H」レベルの信号が格納され、コマンドの実行を遅延させない第2のモードでは、レジスタ10に「L」レベルの信号が格納される。レジスタ10の信号は、書換可能になっている。シーケンサ9は、レジスタ10に格納された信号のレベルに基いて、第1のモードまたは第2のモードを実行する。
【0038】
この実施の形態2では、マイクロコンピュータ1の用途に応じてコマンドの実行を遅延をさせるかどうかを選択することができる。
【0039】
なお、レジスタ10の代わりにモード選択用の外部端子を設けてもよい。たとえば、外部端子に外部電源電圧VCCが印加された場合は第1のモードが選択され、外部端子に接地電圧VSSが印加された場合は第2のモードが選択される。シーケンサ9は、外部端子に印加された電圧に基いて、第1のモードまたは第2のモードを実行する。
【0040】
[実施の形態3]
実施の形態1で説明したように、電圧検出器2は、外部電源電圧VCCが所定のしきい値電圧VTHよりも低下した場合、リセット信号REを「H」レベルから「L」レベルに立ち下げる。リセット信号REが実際に「L」レベルに立ち下げられるのは、外部電源電圧VCCがしきい値電圧VTHよりも低下した時刻から所定の応答時間TRが経過した後である。シーケンサ9は、コマンドを受けてから応答時間TR以上の保留時間TSが経過するまでコマンドの実行を保留する。
【0041】
ここで、電圧検出器2の応答時間TRは、図5(a)(b)に示すように、しきい値電圧VTHのレベルに応じて変化する。たとえば、GND<VTH1<VTH2<VCCとすると、TR2≠TR1となる。しきい値電圧がVTH1,VTH2である場合のリセット信号をそれぞれRE1,RE2とする。
【0042】
外部電源電圧VCCが低下してVCC<VTH2となった場合、その時刻t0から応答時間TR2の経過後の時刻t2にリセット信号RE2が「H」レベルから「L」レベルに立ち下げられる。また、外部電源電圧VCCがさらに低下してVCC<VTH1となった場合、その時刻t1から応答時間TR1の経過後の時刻t3にリセット信号RE1が「H」レベルから「L」レベルに立ち下げられる。このとき、TR1≠TR2となる。
【0043】
実施の形態1では、電圧検出器2の応答時間TRは一定であるとして保留時間TSを設定した。しかし、実際には、応答時間TRはしきい値電圧VTHに応じて変化するので、応答時間TRに応じて保留時間TSを変えれば、無駄な保留時間を削減できる。そこで、本実施の形態3では、保留時間TSは変更可能にされる。
【0044】
具体的には図6に示すように、制御部7内にレジスタ11が設けられる。レジスタ11には、ダウンカウント方式のタイマ8のリロード値が格納される。したがって、リロード値を変更することによって保留時間TSを変更することができる。電圧検出器2の応答時間TRが長い場合は、大きなリロード値をレジスタ11に格納してコマンドの保留時間TSを長くする。逆に、電圧検出器2の応答時間TRが短い場合は、小さなリロード値をレジスタ11に格納してコマンドの保留時間TSを短くする。したがって、コマンドの保留時間TSを必要最小限の時間に設定することができ、無駄な保留時間を削減することができる。
【0045】
[実施の形態4]
実施の形態1では、図7(a)に示すように、複数のコマンドCが連続的に発行される場合でも、コマンドCが発行される毎に保留時間TSを設けた。しかし、一度正当なコマンドCが発行された場合、その後に続くコマンドCの発行も正当である可能性が高い。そこで、本実施の形態4では、図7(b)に示すように、複数のコマンドCが連続的に発行される場合、最初のコマンドCが発行されたときは保留時間TSの経過後にコマンドCを実行し、2つ目以降のコマンドCが発行されたときは保留時間TSを設けずにコマンドCを直ぐに実行する。これにより、無駄な保留時間TSを削減することができる。
【0046】
具体的には図8に示すように、制御部7内にタイマ12が追加される。タイマ8は、実施の形態1と同様に使用される。タイマ12は、前回のコマンドCの完了から次のコマンドCの発行までの時間間隔を計るために用いられる。最初のコマンドCが発行されたとき、タイマ12は停止しており、シーケンサ9はタイマ8を用いて保留時間TSを挿入する。タイマ12は、コマンドCの終了の度に起動される。ただし、コマンドCの終了時にタイマ12がカウント中である場合は、タイマ12にリロード値が与えられる。
【0047】
タイマ12がカウント中であるときに次のコマンドCが発行された場合、タイマ8による保留時間TSの挿入は行なわれない。一方、タイマ12がカウントを停止した後に次のコマンドCが発行された場合は、タイマ8による保留時間TSの挿入を行なう。以後、同様の動作を繰り返す。
【0048】
この実施の形態4では、複数のコマンドCが連続的に発行される場合、最初のコマンドCが発行されたときだけ保留時間TSを挿入し、2つ目以降のコマンドが発行された場合は保留時間TSを挿入しないので、コマンド処理性能の低下を初回のコマンドCに対する保留時間TSのみに抑えることができる。
【0049】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0050】
1 マイクロコンピュータ、2 電圧検出器、4 不揮発性半導体メモリ、5 メモリアレイ、6 チャージポンプ回路、7 制御部、8,12 タイマ、9 シーケンサ、10,11 レジスタ。

【特許請求の範囲】
【請求項1】
電源電圧が正常範囲から外れた場合にリセット信号を出力する電圧検出器と、
各々がデータを不揮発的に記憶する複数のメモリセルを含むメモリアレイと、
イレーズコマンドまたはプログラムコマンドに応答して、前記電圧検出器の応答時間以上の予め定められた時間だけ経過した後に前記データのイレーズまたは前記データのプログラムを実行し、前記リセット信号に応答して初期状態にリセットされる制御部とを備える、半導体装置。
【請求項2】
前記制御部は、前記イレーズコマンドまたは前記プログラムコマンドに応答して計時を開始し、計時開始から前記予め定められた時間が経過したことに応じて計時を終了するタイマを含み、前記タイマの計時の終了後に前記データのイレーズまたは前記データのプログラムを実行する、請求項1に記載の半導体装置。
【請求項3】
前記予め定められた時間は変更可能になっている、請求項1または請求項2に記載の半導体装置。
【請求項4】
さらに、第1および第2のモードのうちのいずれか1つのモードが選択可能になっており、
前記制御部は、
前記第1のモードが選択された場合は、前記イレーズコマンドまたは前記プログラムコマンドに応答して前記予め定められた時間が経過した後に前記データのイレーズまたは前記データのプログラムを実行し、
前記第2のモードが選択された場合は、前記イレーズコマンドまたは前記プログラムコマンドに応答して前記予め定められた時間の経過を待たずに前記データのイレーズまたは前記データのプログラムを実行する、請求項1から請求項3までのいずれかに記載の半導体装置。
【請求項5】
前記制御部は、前記メモリアレイの記憶内容の変更を伴わないコマンドを受けた場合は、前記コマンドに応答して前記予め定められた時間の経過を待たずに前記コマンドを実行する、請求項1から請求項3までのいずれかに記載の半導体装置。
【請求項6】
前記制御部は、複数の前記イレーズコマンドまたは複数の前記プログラムコマンドを連続的に受けた場合は、最初の前記イレーズコマンドまたは前記プログラムコマンドを受けてから前記予め定められた時間が経過した後に前記データのイレーズまたは前記データのプログラムを行ない、2つ目以降の前記イレーズコマンドまたは前記プログラムコマンドに応答して前記予め定められた時間の経過を待たずに前記データのイレーズまたは前記データのプログラムを行なう、請求項1から請求項3までのいずれかに記載の半導体装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−30244(P2013−30244A)
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願番号】特願2011−165685(P2011−165685)
【出願日】平成23年7月28日(2011.7.28)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】