(57)【要約】      （修正有）【課題】  源振のクロック周波数に応じて一定の書き込み又は消去時間を確保し、不揮発性メモリの書き込み又は消去動作を安全に行い、不揮発性メモリを保護する集積回路装置を提供する。【解決手段】タイマ３００は、書き込み信号ＷＲＳがアクティブに設定されると、不揮発性メモリ４００の書き込み中又は消去中であることを示すタイマ出力信号ＴＯＳを所定の期間中、アクティブに設定し、プロセッサ１００は、プロセッサ１００をスリープ状態に設定する場合、モード設定回路５００に出力するスリープ要求信号ＳＰＬＲをアクティブに設定し、モード設定回路５００は、スリープ要求信号ＳＰＬＲと、タイマ出力信号ＴＯＳと、を受け、タイマ出力信号ＴＯＳがアクティブに設定されている間は、プロセッサ１００をスリープ状態に設定するスリープ信号ＳＰＬをノンアクティブに設定する。【選択図】      図１
2006004245.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリの書き込み時間又は消去時間を設定するタイマと、
前記タイマに供給するクロックを生成するクロック生成回路と、
命令を実行するプロセッサと、
前記プロセッサからの要求信号に基づいて集積回路装置のモード設定を行うモード設定回路と、
を含み、
前記タイマは、前記プロセッサから出力される前記不揮発性メモリの書き込み信号がアクティブに設定されると、前記不揮発性メモリの書き込み中又は消去中であることを示すタイマ出力信号を所定の期間中、アクティブに設定し、
前記プロセッサは、前記プロセッサをスリープ状態に設定する場合、前記モード設定回路に出力するスリープ要求信号をアクティブに設定し、
前記モード設定回路は、
前記プロセッサから出力される前記スリープ要求信号と、前記タイマから出力される前記タイマ出力信号とを受け、前記スリープ要求信号がアクティブに設定された場合であっても前記タイマ出力信号がアクティブに設定されている間は、前記プロセッサをスリープ状態に設定するスリープ信号をノンアクティブに設定することを特徴とする集積回路装置。
【請求項２】
不揮発性メモリの書き込み時間又は消去時間を設定するタイマと、
前記タイマに供給するクロックを生成するクロック生成回路と、
命令を実行するプロセッサと、
前記プロセッサからの要求信号に基づいて集積回路装置のモード設定を行うモード設定回路と、
を含み、
前記タイマは、前記プロセッサから出力される前記不揮発性メモリの書き込み信号がアクティブに設定されると、前記不揮発性メモリの書き込み中又は消去中であることを示すタイマ出力信号を所定の期間中、アクティブに設定し、
前記プロセッサは、前記不揮発性メモリに接続されるバスを解放する場合、前記モード設定回路に出力するバス解放要求信号をアクティブに設定し、
前記モード設定回路は、
前記プロセッサから出力される前記バス解放要求信号と、前記タイマから出力される前記タイマ出力信号と、を受け、前記バス解放要求信号がアクティブに設定された場合であっても前記タイマ出力信号がアクティブに設定されている間は、前記不揮発性メモリに接続されるバスを解放するバス解放信号をノンアクティブに設定することを特徴とする集積回路装置。
【請求項３】
請求項１または２において、
前記タイマは、タイマ設定レジスタと、カウンタを含み、
前記タイマ設定レジスタには、書き込み時間又は消去時間を設定するためのタイマ設定カウント値が格納され、
前記カウンタは、
前記プロセッサからの書き込み信号がアクティブに設定されると、前記クロック生成回路から出力されるクロックのパルスに応じてパルス数をカウントし、
カウントされたカウント値が前記タイマ設定カウント値と一致した場合、前記タイマ出力信号をノンアクティブに設定し、カウント値を初期値にリセットすることを特徴とする集積回路装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記クロック生成回路は、
低周波数の第１のクロックと前記第１のクロックよりも高周波数の第２のクロックを受け、入力されたクロックのいずれかを選択出力するクロックセレクタと、
前記クロックセレクタの出力クロックの周波数を調整するプリスケーラと、
を含み、
前記プリスケーラは、前記クロックセレクタの出力クロックの周波数の高低に依存せず、所与の周波数の範囲のクロックを前記タイマに出力することを特徴とする集積回路装置。
【請求項５】
不揮発性メモリの書き込み時間又は消去時間を設定するタイマと、
前記タイマに供給するクロックを生成するクロック生成回路と、
命令を実行するプロセッサと、
所定の値までカウントした後に前記プロセッサ及び前記タイマを初期化するリセット信号をアクティブに設定するウォッチドッグタイマと、
を含み、
前記タイマは、前記プロセッサから出力される不揮発性メモリの書き込み信号がアクティブに設定されると、前記不揮発性メモリが書き込み中又は消去中であることを示すタイマ出力信号を所定の期間中、アクティブに設定し、
前記ウォッチドッグタイマは、
前記プロセッサから前記ウォッチドッグタイマのカウント値を初期化するウォッチドッグタイマリセット信号を受け、前記ウォッチドッグタイマリセット信号がアクティブに設定された場合、前記ウォッチドッグタイマのカウント値を初期化して、初期値からカウントを始め、
前記所定の値までカウントする間に前記ウォッチドッグタイマリセット信号がアクティブに設定されない場合は、前記リセット信号をアクティブに設定し、前記タイマを初期化することを特徴とする集積回路装置。
【請求項６】
請求項５において、
前記ウォッチドッグタイマは、前記リセット信号を前記不揮発性メモリに出力することを特徴とする集積回路装置。
【請求項７】
請求項５または６において、
前記プロセッサの命令に基づいてプロセッサのモードを設定するモード設定回路をさらに含み、
前記モード設定回路は、前記タイマから出力される前記タイマ出力信号を受け、前記プロセッサの命令及び前記タイマ出力信号に基づいてプロセッサのモードを設定することを特徴とする集積回路装置。
【請求項８】
請求項７において、
前記プロセッサは、前記プロセッサをスリープ状態に設定する場合、前記モード設定回路に出力するスリープ要求信号をアクティブに設定し、
前記モード設定回路は、
前記プロセッサから出力される前記スリープ要求信号と、前記タイマから出力される前記タイマ出力信号と、を受け、前記スリープ要求信号がアクティブに設定された場合であっても前記タイマ出力信号がアクティブに設定されている間は、前記プロセッサをスリープ状態に設定するスリープ信号をノンアクティブに設定することを特徴とする集積回路装置。
【請求項９】
請求項７または８において、
前記プロセッサは、前記不揮発性メモリに接続されるバスを解放する場合、前記モード設定回路に出力するバス解放要求信号をアクティブに設定し、
前記モード設定回路は、
前記プロセッサから出力される前記バス解放要求信号と、前記タイマから出力される前記タイマ出力信号と、を受け、前記バス解放要求信号がアクティブに設定された場合であっても前記タイマ出力信号がアクティブに設定されている間は、前記不揮発性メモリに接続されるバスを解放するバス解放信号をノンアクティブに設定することを特徴とする集積回路装置。
【請求項１０】
請求項７乃至９のいずれかにおいて、
前記クロック生成回路は、前記クロックセレクタの出力クロックの周波数を調整するプリスケーラをさらに含み、
前記プリスケーラは、前記クロックセレクタの出力クロックの周波数の高低に依存せず、所与の周波数の範囲のクロックを前記タイマに出力することを特徴とする集積回路装置。
【請求項１１】
請求項１乃至１０に記載の集積回路装置を含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路装置及び電子機器に関する。
【背景技術】
【０００２】
システムクロックに基づいて、あらかじめレジスタに格納された値に対してカウント処理をすることで、不揮発性メモリの書き込み時間を計測するタイマが知られている（特許文献１参照）。ところが、システムクロックが変わってしまう場合や複数のクロックを基準クロックとして利用するシステムの場合では、書き込み時間を正確に計測できない問題があった。また、不揮発性メモリに書き込みを行っている最中に、スリープ命令などのシステムクロックを停止させるような命令が出力された場合、不揮発性メモリの制御回路が書き込み動作の状態で停止してしまい、不揮発性メモリに電流が流れ続ける問題が生じた。
【特許文献１】特開平１−１９９３９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、源振のクロック周波数に応じて一定の書き込み又は消去時間を確保し、不揮発性メモリの書き込み又は消去動作を安全に行い、不揮発性メモリを保護する集積回路装置を提供することにある。
【課題を解決するための手段】
【０００４】
本発明は、不揮発性メモリの書き込み時間又は消去時間を設定するタイマと、前記タイマに供給するクロックを生成するクロック生成回路と、命令を実行するプロセッサと、前記プロセッサからの要求信号に基づいて集積回路装置のモード設定を行うモード設定回路と、を含み、前記タイマは、前記プロセッサから出力される前記不揮発性メモリの書き込み信号がアクティブに設定されると、前記不揮発性メモリの書き込み中又は消去中であることを示すタイマ出力信号を所定の期間中、アクティブに設定し、前記プロセッサは、前記プロセッサをスリープ状態に設定する場合、前記モード設定回路に出力するスリープ要求信号をアクティブに設定し、前記モード設定回路は、前記プロセッサから出力される前記スリープ要求信号と、前記タイマから出力される前記タイマ出力信号とを受け、前記スリープ要求信号がアクティブに設定された場合であっても前記タイマ出力信号がアクティブに設定されている間は、前記プロセッサをスリープ状態に設定するスリープ信号をノンアクティブに設定する集積回路装置に関係する。
【０００５】
本発明によれば、不揮発性メモリが書き込み又は消去動作中である場合には、プロセッサからスリープ要求信号がアクティブに設定されても、ノンアクティブなスリープ信号をプロセッサに供給することができる。これにより、不揮発性メモリが書き込み又は消去動作中である場合に、プロセッサがスリープ状態に設定されることを防止でき、不揮発性メモリの保護が可能である。
【０００６】
本発明は、不揮発性メモリの書き込み時間又は消去時間を設定するタイマと、前記タイマに供給するクロックを生成するクロック生成回路と、命令を実行するプロセッサと、前記プロセッサからの要求信号に基づいて集積回路装置のモード設定を行うモード設定回路と、を含み、前記タイマは、前記プロセッサから出力される前記不揮発性メモリの書き込み信号がアクティブに設定されると、前記不揮発性メモリの書き込み中又は消去中であることを示すタイマ出力信号を所定の期間中、アクティブに設定し、前記プロセッサは、前記不揮発性メモリに接続されるバスを解放する場合、前記モード設定回路に出力するバス解放要求信号をアクティブに設定し、前記モード設定回路は、前記プロセッサから出力される前記バス解放要求信号と、前記タイマから出力される前記タイマ出力信号と、を受け、前記バス解放要求信号がアクティブに設定された場合であっても前記タイマ出力信号がアクティブに設定されている間は、前記不揮発性メモリに接続されるバスを解放するバス解放信号をノンアクティブに設定する集積回路装置に関係する。
【０００７】
本発明によれば、不揮発性メモリが書き込み又は消去動作中である場合には、プロセッサからバス解放要求信号がアクティブに設定されても、ノンアクティブなバス解放信号を不揮発性メモリが接続されるバスに供給することができる。これにより、不揮発性メモリが書き込み又は消去動作中である場合に、バスが解放されることを防止でき、不揮発性メモリの保護が可能である。
【０００８】
また、本発明に係る前記タイマは、タイマ設定レジスタと、カウンタを含み、前記タイマ設定レジスタには、書き込み時間又は消去時間を設定するためのタイマ設定カウント値が格納され、前記カウンタは、前記プロセッサからの書き込み信号がアクティブに設定されると、前記クロック生成回路から出力されるクロックのパルスに応じてパルス数をカウントし、カウントされたカウント値が前記タイマ設定カウント値と一致した場合、前記タイマ出力信号をノンアクティブに設定し、カウント値を初期値にリセットするようにしてもよい。
【０００９】
これにより、クロック生成回路からの出力クロックに応じたタイマ設定カウント値を設定できる。また、ファームウェア等によるソフトウェア処理によってタイマ設定カウント値を制御することができる。
【００１０】
また、本発明に係る前記クロック生成回路は、低周波数の第１のクロックと前記第１のクロックよりも高周波数の第２のクロックを受け、入力されたクロックのいずれかを選択出力するクロックセレクタと、前記クロックセレクタの出力クロックの周波数を調整するプリスケーラと、を含み、前記プリスケーラは、前記クロックセレクタの出力クロックの周波数の高低に依存せず、所与の周波数の範囲のクロックを前記タイマに出力するようにしてもよい。
【００１１】
本発明によれば、複数の源振を切り替えることができ、クロック生成回路から出力される周波数を所与の周波数の範囲に設定することができる。これにより、タイマには所与の周波数の範囲に設定されたクロックが供給されるので、本発明の集積回路装置は様々な源振に対して一定の書き込み又は消去時間を確保することができる。
【００１２】
本発明は、不揮発性メモリの書き込み時間又は消去時間を設定するタイマと、前記タイマに供給するクロックを生成するクロック生成回路と、命令を実行するプロセッサと、所定の値までカウントした後に前記プロセッサ及び前記タイマを初期化するリセット信号をアクティブに設定するウォッチドッグタイマと、を含み、前記タイマは、前記プロセッサから出力される不揮発性メモリの書き込み信号がアクティブに設定されると、前記不揮発性メモリが書き込み中又は消去中であることを示すタイマ出力信号を所定の期間中、アクティブに設定し、前記ウォッチドッグタイマは、前記プロセッサから前記ウォッチドッグタイマのカウント値を初期化するウォッチドッグタイマリセット信号を受け、前記ウォッチドッグタイマリセット信号がアクティブに設定された場合、前記ウォッチドッグタイマのカウント値を初期化して、初期値からカウントを始め、前記所定の値までカウントする間に前記ウォッチドッグタイマリセット信号がアクティブに設定されない場合は、前記リセット信号をアクティブに設定し、前記タイマを初期化する集積回路装置に関係する。
【００１３】
本発明によれば、例えばプロセッサ等が暴走した場合、プロセッサは、ウォッチドッグタイマを初期化することができなくなり、その結果、ウォッチドッグタイマがリセット信号をアクティブに設定する。これにより、プロセッサは初期化される。即ち、本発明の集積回路装置は、プロセッサ等の暴走を検知することができるので、不揮発性メモリの書き込み又は消去動作中にプロセッサ等が暴走しても、プロセッサ等を初期化することができる。これにより、プロセッサ等が暴走した場合に不揮発性メモリに電流が長時間流れ続けるような不具合を解消することができる。
【００１４】
また、本発明に係る前記ウォッチドッグタイマは、前記リセット信号を前記不揮発性メモリに出力するようにしてもよい。これにより、プロセッサ等が暴走した場合、不揮発性メモリを初期化することができるので、プロセッサ等が暴走した場合に不揮発性メモリに電流が長時間流れ続けるような不具合を解消することができる
また、本発明は、前記プロセッサの命令に基づいてプロセッサのモードを設定するモード設定回路をさらに含み、前記モード設定回路は、前記タイマから出力される前記タイマ出力信号を受け、前記プロセッサの命令及び前記タイマ出力信号に基づいてプロセッサのモードを設定するようにしてもよい。
【００１５】
これにより、モード設定回路は、不揮発性メモリの書き込み又は消去動作中を判断してモード設定回路の出力を設定することができる。
【００１６】
また、本発明に係る前記プロセッサは、前記プロセッサをスリープ状態に設定する場合、前記モード設定回路に出力するスリープ要求信号をアクティブに設定し、前記モード設定回路は、前記プロセッサから出力される前記スリープ要求信号と、前記タイマから出力される前記タイマ出力信号と、を受け、前記スリープ要求信号がアクティブに設定された場合であっても前記タイマ出力信号がアクティブに設定されている間は、前記プロセッサをスリープ状態に設定するスリープ信号をノンアクティブに設定するようにしてもよい。
【００１７】
また、本発明に係る前記プロセッサは、前記不揮発性メモリに接続されるバスを解放する場合、前記モード設定回路に出力するバス解放要求信号をアクティブに設定し、前記モード設定回路は、前記プロセッサから出力される前記バス解放要求信号と、前記タイマから出力される前記タイマ出力信号と、を受け、前記バス解放要求信号がアクティブに設定された場合であっても前記タイマ出力信号がアクティブに設定されている間は、前記不揮発性メモリに接続されるバスを解放するバス解放信号をノンアクティブに設定するようにしてもよい。
【００１８】
また、本発明に係る前記クロック生成回路は、前記クロックセレクタの出力クロックの周波数を調整するプリスケーラをさらに含み、前記プリスケーラは、前記クロックセレクタの出力クロックの周波数の高低に依存せず、所与の周波数の範囲のクロックを前記タイマに出力するようにしてもよい。
【００１９】
本発明は、上記の集積回路装置を含む電子機器に関係する。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の一実施形態について、図面を参照して説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
【００２１】
１．集積回路装置
図１は、集積回路装置（以下、マイクロコンピュータとも言う）１０００は、プロセッサ１００、クロック生成回路２００、タイマ３００、不揮発性メモリ４００、モード設定回路５００、ウォッチドッグタイマ６００及びラッチ回路７００を含むが、これに限定されない。例えば、集積回路装置１０００は、プロセッサ１００、不揮発性メモリ４００、ラッチ回路７００が省略される構成でもよい。また、不揮発性メモリ４００は、集積回路装置１０００の外に設けられてもよい。なお、以下の図において同符号のものは同様の意味を表す。
【００２２】
集積回路装置１０００には例えばＲＥＳＥＴ端子ＲＳＰが設けられている。ＲＥＳＥＴ端子ＲＳＰにアクティブなリセット信号ＲＳＴ１が入力されると、入力されたリセット信号ＲＳＴ１は論理回路ＯＲを経由し、アクティブなリセット信号ＲＳＴ３として出力される。
【００２３】
プロセッサ１００は、ウォッチドッグタイマ６００を初期化するためのウォッチドッグタイマリセット信号ＷＤＴＲをウォッチドッグタイマ６００に出力する。ウォッチドッグタイマ６００は、プロセッサ１００、タイマ３００、不揮発性メモリ４００及びラッチ回路７００を初期化するためのリセット信号ＲＳＴ２を論理回路ＯＲに出力する。ウォッチドッグタイマ６００は、カウンタを含み、ウォッチドッグタイマ６００のカウンタがオーバーフローまたはアンダーフローを検出すると、ウォッチドッグタイマ６００はリセット信号ＲＳＴ２をアクティブに設定する。論理回路ＯＲは、リセット信号ＲＳＴ１又はＲＳＴ２の少なくとも一方がアクティブに設定された場合、アクティブなリセット信号ＲＳＴ３をプロセッサ１００、タイマ３００、不揮発性メモリ４００及びラッチ回路７００に出力する。他の態様として、リセット信号ＲＳＴ３を例えばプロセッサ１００に供給しない構成でもよい。
【００２４】
プロセッサ１００は、例えば不揮発性メモリ４００にデータの書き込みを行う場合、書き込み信号ＷＲＳをタイマ３００、不揮発性メモリ４００及びラッチ回路７００に出力する。また、不揮発性メモリ４００のデータを消去する場合は、図示されないが消去信号を書き込み信号ＷＲＳと同様にタイマ３００、不揮発性メモリ４００及びラッチ回路７００に出力する。
【００２５】
クロック生成回路２００は、入力される複数のクロックからいずれかを選択するクロックセレクタ２１０と、クロックセレクタ２１０から出力されるクロックを調整するプリスケーラ２２０を含む。クロック生成回路２００は、クロックＣＬＫ３をタイマ３００に供給する。
【００２６】
タイマ３００は、タイマ設定レジスタ３１０及びカウンタ３２０を含む。タイマ３００は、プロセッサ１００からの書き込み信号ＷＲＳがアクティブに設定されると、クロックＣＬＫ３に基づいて、クロックＣＬＫ３のパルス数をカウントし、カウント値に基づいてタイマ出力信号ＴＯＳをモード設定回路５００に出力する。具体的には、タイマ３００は、タイマ３００のカウント値が所定の値に到達するまでは、タイマ出力信号ＴＯＳをアクティブ（例えばハイレベルの信号）に設定し、タイマ３００のカウント値が所定の値に到達すると、タイマ出力信号ＴＯＳをノンアクティブ（例えばローレベルの信号）に設定する。また、タイマ３００は、タイマ３００のカウント値が所定の値に到達すると、書き込み終了信号ＷＥＮＤを不揮発性メモリ４００に出力する。
【００２７】
タイマ３００によって、プロセッサ１００からの書き込み信号ＷＲＳがアクティブに設定されてから所定の期間を検出し、所定の期間の終了を不揮発性メモリ４００に知らせることができる。
【００２８】
不揮発性メモリ４００にデータを書き込む際に、プロセッサ１００は、アドレス情報とデータをラッチ回路７００に出力する。ラッチ回路７００は、プロセッサ１００からのアドレス情報とデータをラッチし、例えば、プロセッサ１００からの書き込み信号ＷＲＳがアクティブに設定されている場合、不揮発性メモリ４００にアドレス情報とデータを出力する。不揮発性メモリ４００にデータを書き込むためには所定の期間が必要である。本実施形態ではラッチ回路７００の働きによって、一時的にアドレス情報とデータをラッチできるので、プロセッサ１００は、不揮発性メモリ４００にデータを書き込むために要する書き込み時間を他の処理に利用できる。他の構成として、ラッチ回路７００は、例えば書き込み信号ＷＲＳがノンアクティブであっても不揮発性メモリ４００にアドレス情報とデータを出力するような構成でもよい。
【００２９】
不揮発性メモリ４００は、プロセッサ１００からの書き込み信号ＷＲＳがアクティブに設定されている場合、ラッチ回路７００からのアドレス情報に基づいて、ラッチ回路７００からのデータを書き込む。
【００３０】
また、プロセッサ１００は、スリープ要求信号ＳＬＰＲとバス解放要求信号ＢＯＲをモード設定回路５００に出力するが、これに限定されない。例えば、プロセッサ１００は、スリープ要求信号ＳＬＰＲまたはバス解放要求信号ＢＯＲをモード設定回路５００に出力しないようにしてもよい。
【００３１】
プロセッサ１００をスリープ状態に設定したい場合、プロセッサ１００はスリープ要求信号ＳＬＰＲをアクティブに設定する。また、プロセッサ１００は、不揮発性メモリ４００にデータを書き込むときに例えば不揮発性メモリ４００に接続されているバスを占有する。このバスを解放する場合には、プロセッサ１００はバス解放要求信号ＢＯＲをアクティブに設定する。
【００３２】
モード設定回路５００は、論理回路ＡＮＤ１、ＡＮＤ２を含み、論理回路ＡＮＤ１には例えばスリープ要求信号ＳＬＰＲが入力され、論理回路ＡＮＤ２には例えばバス開放要求信号ＢＯＲが入力される。また、論理回路ＡＮＤ１、ＡＮＤ２には例えばタイマ出力信号ＴＯＳの反転信号が入力される。モード設定回路５００は、スリープ要求信号ＳＬＰＲがアクティブに設定され、且つ、タイマ３００のタイマ出力信号ＴＯＳがノンアクティブに設定された場合に、モード設定回路５００から出力されるスリープ信号ＳＬＰをアクティブに設定する。なお、モード設定回路５００は、論理回路ＡＮＤ１、ＡＮＤ２の代わり他の論理回路で構成されてもよい。例えば、ＮＡＮＤや、ＮＯＲ等の論理回路で代用が可能である。
【００３３】
同様に、モード設定回路５００は、バス解放要求信号ＢＯＲがアクティブに設定され、且つ、タイマ３００のタイマ出力信号ＴＯＳがノンアクティブに設定された場合に、モード設定回路５００から出力されるバス解放信号ＢＯをアクティブに設定する。
【００３４】
図２は、図１のクロック生成回路２００を示すブロック図である。クロックセレクタ２１０には、低周波数のクロックＣＬＫ１（広義には低周波数の第１のクロック）、クロックＣＬＫよりも周波数の高いクロックＣＬＫ２（広義には高周波数の第２のクロック）及び図１の集積回路装置１０００の外側から入力されるクロックＣＬＫ３が入力される。クロックセレクタ２１０は、クロックＣＬＫ１〜ＣＬＫ３のいずれかを選択し、後段のプリスケーラ２２０に選択したクロックを出力する。プリスケーラ２２０は、クロックセレクタ２１０の出力クロックの周波数を調整し、調整されたクロックをタイマ３００に出力する。
【００３５】
具体的には、クロックＣＬＫ１（例えば周波数が３２ＫＨ）がクロックセレクタ２１０に選択された場合、プリスケーラ２２０は、クロックＣＬＫ１を例えば１／２に分周し、周波数が１６ＫＨｚのクロックをタイマ３００に出力する。また、クロックＣＬＫ２（例えば周波数が４ＭＨｚ）がクロックセレクタ２１０に選択された場合、プリスケーラ２２０は、クロックＣＬＫ２を例えば１／２５６に分周し、周波数が約１６ＫＨｚのクロックをタイマ３００に出力する。
【００３６】
プリスケーラ２２０によって、上述のように例えば１６ＫＨｚのクロック又は約１６ＫＨｚのクロックがタイマ３００に供給される。即ち、タイマ３００には一定の周波数の範囲（所与の周波数の範囲のクロック）のクロックが供給される。これにより、クロック生成回路２００は、クロックセレクタ２１０によって選択されたクロックの周波数に依存せず、タイマ３００に適応した周波数のクロックを供給できる。
【００３７】
２．タイマ
図３は、図１のタイマ３００を説明するために集積回路装置１０００の一部を示すブロック図である。タイマ３００は、プロセッサ１００からアクティブな書き込み信号ＷＲＳを受けると、クロック生成回路２００からクロックＣＬＫ３のパルスのカウントを開始する。タイマ３００は、カウントを開始すると、タイマ出力信号ＴＯＳをアクティブ（例えばハイレベル）に設定する。
【００３８】
タイマ設定レジスタ３１０には、タイマ設定カウント値ＣＮＴ１が格納されている。タイマ設定カウント値ＣＮＴは、例えば、集積回路装置１００が起動した後に、ファームウェア等によって所定の値がタイマ設定レジスタ３１０に書き込まれる。
【００３９】
タイマ３００がカウントを開始すると、タイマ３００のカウンタ３２０は例えばタイマ設定レジスタ３１０からタイマ設定カウント値ＣＮＴ１をロードする。カウンタ３２０は、クロック生成回路２００からのクロックＣＬＫ３のパルスの立ち上がりに応じて、ロードされたタイマ設定カウント値ＣＮＴ１をデクリメント（またはカウントダウンとも言う）する。カウンタ３２０は、クロックＣＬＫ３のパルスの立ち下り（または立ち上がりでもよい）を検出する毎に、タイマ設定カウント値ＣＮＴ１をデクリメントし、カウンタ３２０のカウント値が０のとき、０のカウント値がデクリメントされると、カウンタ３２０がアンダーフロー（またはオーバーフロー）信号を出力する。タイマ３００は、カウンタ３２０がアンダーフロー信号を出力すると、タイマ出力信号ＴＯＳをノンアクティブ（例えばローレベル）に設定し、不揮発性メモリ４００には、書き込み終了信号ＷＥＮＤ（例えばパルス）を出力する。
【００４０】
本実施形態では、クロックＣＬＫ３は所与の周波数の範囲に設定され、例えば周波数がおよそ１６ＫＨｚであるクロックＣＬＫ３がタイマ３００に供給される。タイマ設定レジスタ３１０に格納されるタイマ設定カウント値ＣＮＴ１を、クロックＣＬＫ３の周波数に基づいて設定することで、所望の時間を検出できる。例えば、タイマ３００が、１６ＫＨｚのクロックに対して、クロックのパルスを２５６個カウントした後に書き込み終了信号ＷＥＮＤを出力した場合、カウントが開始されてからおよそ２．５ｍｓ後に書き込み信号ＷＥＮＤが出力されることになる。つまり、パルスのカウント数を決定するタイマ設定カウント値ＣＮＴ１を調整することで、所望の時間を検出できる。また、ファームウェア等で、クロックＣＬＫ３の周波数に基づいてタイマ設定カウント値ＣＮＴ１を調整しタイマ設定レジスタ３１０に格納すれば、所望の時間を一定に獲得することができる。即ち、クロックＣＬＫ３の周波数に応じてプログラマブルにタイマ設定カウント値を調整できるので、クロックＣＬＫ３がさまざまな周波数の場合にも、一定の時間（書き込み時間または消去時間、例えば２．５ｍｓ）を検出することができる。なお、パルスを２５６個カウントする場合は、タイマ３００のカウンタ３２０に例えば８ビットカウンタを用いればよい。
【００４１】
タイマ３００は、不揮発性メモリ４００の書き込み時間（または消去時間）を一定に確保するために、クロックＣＬＫ３をカウントし、書き込み信号ＷＲＳがアクティブに設定されてから一定の期間（例えば２．５ｍｓ）経過した後に書き込み終了信号ＷＥＮＤを不揮発性メモリ４００に出力し、書き込み信号ＷＲＳがアクティブに設定されてから一定の期間（例えば２．５ｍｓ）、タイマ出力信号ＴＯＳをアクティブに設定する。
【００４２】
また、図１の論理回路ＯＲからのリセット信号ＲＳＴ３がアクティブに設定されると、タイマ３００は、カウンタ３２０のカウント値を初期化するがこれに限定されない。例えば、カウンタ３２０のカウント値だけでなく、タイマ設定レジスタ３１０を初期化するようにしてもよい。
【００４３】
なお、図３の構成は、説明の簡略化のため、図１に記載された構成の一部が省略されている。
【００４４】
３．ウォッチドッグタイマ
図４はウォッチドッグタイマ６００を説明するために図１の集積回路装置１０００の一部を示すブロック図である。ウォッチドッグタイマ６００はカウントレジスタ６１０及びカウンタ６２０を含む。例えばファームウェア等によって、所定のウォッチドッグタイマ用カウント値ＣＮＴ２が設定され、ウォッチドッグタイマ用カウント値ＣＮＴ２はカウントレジスタ６１０に格納される。ウォッチドッグタイマ６００のカウンタ６２０は、例えばカウントレジスタ６１０からウォッチドッグタイマ用カウント値をロードし、クロックＣＬＫ１に基づいて、ウォッチドッグタイマ用カウント値ＣＮＴ２をデクリメント（広義にはカウント処理）する。ウォッチドッグタイマ６００のカウンタ６２０は、クロックＣＬＫ１のパルスが入力される毎にウォッチドッグタイマ用カウント値ＣＮＴ２をデクリメントし、カウンタ６２０によるアンダーフローを検出すると、リセット信号ＲＳＴ２をアクティブに設定し、カウンタ６２０を初期化する。
【００４５】
プロセッサ１００は、定期的にウォッチドッグタイマ６００を初期化するために、アクティブなウォッチドッグタイマリセット信号ＷＤＴＲを出力する。アクティブなウォッチドッグタイマリセット信号ＷＤＴＲは、ウォッチドッグタイマ６００がカウント処理を開始してからアンダーフロー（またはオーバーフロー）を検出するまでの期間よりも短い周期でプロセッサ１００から出力される。これにより、プロセッサ１００が正常に動作している場合は、ウォッチドッグタイマ６００のカウンタ６２０がアンダーフロー（またはオーバーフロー）を検出する前にカウンタ６２０が初期化され、初期値（例えばウォッチドッグタイマ用カウント値ＣＮＴ２）からカウントを開始するため、リセット信号ＲＳＴ２はノンアクティブな状態に維持される。ところが、プロセッサ１００が暴走等により、ウォッチドッグタイマリセット信号ＷＤＴＲをアクティブに設定しなくなると、ウォッチドッグタイマ６００のカウンタ６２０はアンダーフロー（またはオーバーフロー）を検出し、アクティブなリセット信号ＲＳＴ２を出力するため、プロセッサ１００等が初期化される。
【００４６】
即ち、ウォッチドッグタイマ６００は、プロセッサ１００が暴走した場合を検知でき、プロセッサ１００の暴走を検知した場合は、プロセッサ１００を初期化することができる。
【００４７】
４．動作
図５は、タイマ３００、ウォッチドッグタイマ６００の動作を示すタイミングチャートである。例えばＡ１に示されるように、リセット信号ＲＳＴ３がアクティブに設定されると、タイマ３００のカウンタ３２０はタイマ設定レジスタ３１０からタイマ設定カウント値ＣＮＴ１をロードする。不揮発性メモリ４００にデータの書き込み（または消去）が行われる場合、Ａ２に示されるように書き込み信号ＷＲＳ（または消去信号）がアクティブに設定される。これによりタイマ３００はアクティブな書き込み信号ＷＲＳを受け、カウンタ３２０のカウント処理（例えばカウント値ＣＮＴ１のデクリメント）を開始しＡ３にしめされるようにタイマ出力信号ＴＯＳをアクティブ（例えばハイレベル）に設定する。
【００４８】
カウンタ３２０は、タイマ設定カウント値ＣＮＴ１をデクリメントし、アンダーフローを検出すると、Ａ４で示されるように書き込み終了信号ＷＥＮＤをアクティブに設定し、Ａ５に示されるようにタイマ設定レジスタ３１０からタイマ設定カウント値ＣＮＴ１をロードする。
【００４９】
書き込み終了信号ＷＥＮＤがアクティブに設定されると、Ａ６に示されるようにタイマ出力信号ＴＯＳはノンアクティブ（例えばローレベル）に設定される。このような動作により、不揮発性メモリ４００に書き込み（または消去）が開始されてから書き込み（または消去）が終了するまでの期間（Ａ７参照）が設定される。クロックＣＬＫ３の周波数に基づいて、タイマ設定カウント値ＣＮＴ１を設定するため、常に一定の期間（例えば、２．５ｍｓ、Ａ７参照）を設定できる。
【００５０】
不揮発性メモリ４００に書き込みを行っている期間にアクティブなスリープ要求信号ＳＬＰＲがプロセッサ１００から出力された場合、タイマ出力信号ＴＯＳがアクティブに設定されているので、モード設定回路５００はスリープ信号ＳＬＰをアクティブに設定せず、ノンアクティブのままを維持する。例えばＡ８で示されるようなタイミングでスリープ要求信号ＳＬＰＲがアクティブに設定された場合、タイマ出力信号ＴＯＳがノンアクティブになるまで、モード設定回路５００の働きによりスリープ信号ＳＬＰはアクティブに設定されない。Ａ６に示されるようにタイマ出力信号ＴＯＳがノンアクティブに設定されると、モード設定回路５００は、Ａ９に示されるタイミングでスリープ信号をアクティブに設定する。
【００５１】
また、プロセッサ１００の暴走等により一定の期間以上ウォッチドッグタイマリセット信号ＷＤＴＲがアクティブに設定されない場合、ウォッチドッグタイマ６００は例えばアンダーフロー（またはオーバーフロー）を検出し、Ａ１０に示されるようにリセット信号ＲＳＴ２をアクティブに設定する。これにより、論理回路ＯＲはＡ１１に示されるようにアクティブなリセット信号ＲＳＴ３を出力する。このアクティブに設定されたリセット信号ＲＳＴ３を受けたタイマ３００は初期化され、初期化されたタイマ３００は例えばＡ１２に示されるタイミングでタイマ出力信号ＴＯＳをノンアクティブに設定する。これにより、プロセッサ１００の暴走等によってタイマ３００の動作が不安定になった場合にも、タイマ３００を初期化でき、タイマ出力信号ＴＯＳをノンアクティブに設定することができる。
【００５２】
上記では、スリープ要求信号ＳＬＰＲについて記載されているが、バス開放要求信号ＢＯＲについても同様の動作が行われる。また、本実施形態では、一例として、ウォッチドッグタイマ６００のカウント処理はカウント値のデクリメントで行われているが、これに限定されない。例えば、ウォッチドッグタイマ６００はカウント値をインクリメントしていき、インクリメントされたカウント値とカウント値ＣＮＴ２との一致検出によってリセット信号ＲＳＴ２を制御するようにしてもよい。
【００５３】
５．比較例
図６は、比較例の集積回路装置（マイクロコンピュータ）１００１の構成を示すブロック図である。集積回路装置１００１は、クロック生成回路２０１、プロセッサ１０１及び不揮発性メモリ４０１を含むが、これに限定されない。例えば、集積回路装置１００１は、不揮発性メモリ４０１を含まない構成でもよい。クロック生成回路２０１は、クロックＣＬＫ１、ＣＬＫ２を受け、クロックＣＬＫ１、ＣＬＫ２の一方を選択し、プロセッサ１０１に供給する。プロセッサ１０１は、データを不揮発性メモリ４０１に書き込む場合、書き込み信号を不揮発性メモリ４０１に出力する。不揮発性メモリ４０１は、データ書き込みの際に所定の書き込み時間を必要とする。そのため、プロセッサ１０１は、クロック生成回路２０１からのクロックに基づいて一定の期間不揮発性メモリ４０１にデータ書き込みを行うように書き込み信号を制御する。
【００５４】
ところが、クロックＣＬＫ１、ＣＬＫ２が想定以外の周波数であった場合などでは、不揮発性メモリ４０１に必要な書き込み時間を正確に確保できない場合がある。この場合、データを正確に書き込めない不具合が発生する。そのため、クロックＣＬＫ１、ＣＬＫ２の周波数は、集積回路装置１００１の設計段階で、使用可能範囲が制限される。
【００５５】
これに対して、本発明の集積回路装置１０００は、クロックＣＬＫ１、ＣＬＫ２の周波数がさまざまな値であっても、正確に不揮発性メモリ４００が必要とする書き込み時間（または消去時間）を確保することができる。このため、応用範囲が広がり、不揮発性メモリ４００のデータ書き込みが正確に行え、集積回路装置の製品精度を高めることができる。
【００５６】
また、比較例の集積回路装置１００１は、不揮発性メモリ４０１に書き込み（または消去）動作中にスリープ命令などによってクロックが停止された場合、不揮発性メモリ４０１に電流が流れたまま、不揮発性メモリ４０１の制御回路が停止してしまい不揮発性メモリ４０１の劣化を引き起こす恐れがある。
【００５７】
これに対して、本実施形態の集積回路装置１０００は、タイマ３００のタイマ出力信号ＴＯＳ及びモード設定回路５００によって、不揮発性メモリ４００の書き込み（または消去）動作中は、スリープ命令を禁止することができる。これにより、不揮発性メモリ４００の劣化を防ぐことができる。
【００５８】
また、比較例の集積回路装置１００１は、プロセッサ１０１が暴走した場合を検知することができない。例えば、不揮発性メモリ４０１に書き込みを行っている最中にプロセッサ１０１が暴走した場合、不揮発性メモリ４０１に必要以上の電流が長時間流れてしまうことになり、不揮発性メモリ４０１を破壊してしまう恐れや、不揮発性メモリ４０１の寿命を格段に短くしてしまう恐れがある。
【００５９】
しかしながら、これに対して本実施形態の集積回路装置１０００はウォッチドッグタイマ６００を備えているため、上記のようなプロセッサ１００の暴走による不揮発性メモリ４００への悪影響を緩和することができる。
【００６０】
６．電子機器
図７は、本実施形態のマイクロコンピュータ（集積回路装置）１０００を含む電子機器２０００を示すブロック図である。電子機器２０００は、表示パネル２１００、表示ドライバ２２００をさらに含むが、これに限定されない。例えば、電子機器２０００は、表示パネル２１００や表示ドライバ２２００を含まない構成でもよい。本実施形態のマイクロコンピュータ１０００を搭載することで、さまざまな源振をもちいても正確に不揮発性メモリにデータを書き込み（または消去）を行うことができ、プロセッサ等の暴走に対しても不揮発性メモリのデータ保持などにおいて非常に耐久性に優れた電子機器２０００を製造することが可能である。
【００６１】
本実施形態では、プリスケーラ２２０の働きにより、タイマ３００に例えば８ビットタイマを用いた場合であっても、高い周波数のクロックＣＬＫ１またはＣＬＫ２に対して一定の書き込みまたは消去時間を確保することができる。
【００６２】
また、不揮発性メモリ４００が書き込みまたは消去動作中の際に、プロセッサ１００が暴走しても、ウォッチドッグタイマ６００の働きによって、書き込みまたは消去動作を停止させることができる。
【００６３】
また、タイマ３００のタイマ設定レジスタ３１０をファームウェア等によって設定することが可能であるため、製品に使用された部品の特性のばらつきによって、例えばＣＲ発振の周波数が個体毎に異なってしまった場合にも一定の書き込みまたは消去時間を設定することができる。
【００６４】
なお、本発明は、上記実施形態で説明されたものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語（第１のクロック、第２のクロック等）として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語（クロックＣＬＫ１、クロックＣＬＫ２）に置き換えることができる。
【図面の簡単な説明】
【００６５】
【図１】本実施形態の集積回路装置を示すブロック図。
【図２】本実施形態のクロック生成回路を示すブロック図。
【図３】本実施形態のタイマを示すブロック図。
【図４】本実施形態のウォッチドッグタイマを示すブロック図。
【図５】本実施形態の集積回路装置の動作をしめすタイミング波形図。
【図６】本実施形態にかかる比較例の集積回路を示す図。
【図７】本実施形態にかかる電子機器を示す図。
【符号の説明】
【００６６】
１００  プロセッサ、２００  クロック生成回路、２１０  クロックセレクタ、
２２０  プリスケーラ、３００  タイマ、３１０  タイマ設定レジスタ、
３２０  カウンタ、４００不揮発性メモリ、５００  モード設定回路、
６００  ウォッチドッグタイマ、６１０  カウントレジスタ、６２０  カウンタ、
１０００  集積回路装置、ＣＬＫ１  第１のクロック、ＣＬＫ２  第２のクロック、
ＣＬＫ３  クロック、ＢＯＲ  バス開放要求信号、ＢＯ  バス開放信号、
ＲＳＴ１〜ＲＳＴ３リセット信号、ＷＤＴＲ  ウォッチドッグタイマリセット信号、
ＷＥＮＤ  書き込み終了信号、ＷＲＳ  書き込み信号
【図１】
2006004245.tif 000003
【図２】
2006004245.tif 000004
【図３】
2006004245.tif 000005
【図４】
2006004245.tif 000006
【図５】
2006004245.tif 000007
【図６】
2006004245.tif 000008
【図７】
2006004245.tif 000009