(57)【特許請求の範囲】
【請求項１】
第１動作モードと前記第１動作モードよりも消費電力の少ない第２動作モードとを有する半導体装置であって、
前記第１動作モードの間、内部時間を更新し、前記第２動作モードの間、前記内部時間の更新を停止し、ＲＴＯＳ（real time operating system）を稼動するＣＰＵ（central processing unit）と、
周期的にカウントを繰り返し、前記内部時間を更新させる割り込み信号を前記ＣＰＵに周期的に送信する第１カウンタと、
前記第２動作モードの間、カウント動作を行う第２カウンタと、
前記半導体装置が前記第１動作モードから前記第２動作モードに遷移する際、前記第１動作モードから前記第２動作モードへの遷移開始時における前記第１カウンタの第１カウント値の読み出し、前記第１カウンタにおける前記割り込み信号のマスク、及び前記第２カウンタにおけるカウントの開始を制御する第１回路と、
前記半導体装置が前記第２動作モードから前記第１動作モードに遷移する際、前記第１カウンタにおける前記割り込み信号の前記マスクの解除、及び前記第２カウンタの第２カウント値の読み出しを制御する第２回路と
を備えることを特徴とする半導体装置。
【請求項２】
前記ＲＴＯＳに基づいて、前記ＣＰＵは、前記半導体装置が前記第２動作モードから前記第１動作モードに遷移する際、前記第１カウント値及び前記第２カウント値を用いて、前記内部時間の補正を行う
ことを特徴とする請求項１記載の半導体装置。
【請求項３】
前記第１回路は、前記第１カウント値の前記読み出し、前記割り込み信号の前記マスク、及び前記第２カウンタの前記カウントを、前記第１カウンタのカウント値が同じときに開始する
ことを特徴とする請求項１または２に記載の半導体装置。
【請求項４】
前記第２回路は、前記割り込み信号の前記マスクの前記解除、及び前記第２カウンタの前記第２カウント値の前記読み出しを、前記第１カウンタのカウント値が同じときに開始する
ことを特徴とする請求項１から３のいずれか１つに記載の半導体装置。
【請求項５】
前記第２回路は、前記第２カウンタのカウント値が予め設定された値に達した場合、前記半導体装置を前記第２動作モードから前記第１動作モードに遷移させる
ことを特徴とする請求項１から４のいずれか１つに記載の半導体装置。
【請求項６】
第１動作モードと第１動作モードよりも消費電力の少ない第２動作モードとを有する半導体装置の制御方法であって、
前記半導体装置が前記第１動作モードから前記第２動作モードに遷移する場合に、
第１回路が、ＣＰＵ上で稼動されるＲＴＯＳに基づいて管理される内部時間を更新させる割り込み信号を前記ＣＰＵに周期的に送信する第１カウンタから、前記第１動作モードから前記第２動作モードへの遷移開始時における第１カウント値を読み出す工程と、
前記第１回路が、前記第１カウンタにおいて前記割り込み信号をマスクする工程と、
前記第１回路が、前記第２動作モードの間カウント動作を行う第２カウンタに、カウントを開始させる工程とを備え、
前記半導体装置が前記第２動作モードから前記第１動作モードに遷移する場合に、
第２回路が、前記第１カウンタにおいて前記割り込み信号の前記マスクを解除する工程と、
前記第２回路が、前記第２カウンタから、前記第２動作モードから前記第１動作モードへの遷移開始時における第２カウント値を読み出す工程と
を備えることを特徴とする半導体装置の制御方法。
【請求項７】
前記第１回路が、前記第１カウント値を読み出す前記工程と、
前記第１回路が、前記割り込み信号をマスクする前記工程と、
前記第１回路が、前記第２カウンタに前記カウントを開始させる前記工程と
を前記第１カウンタのカウント値が同じときに開始する
ことを特徴とする請求項６記載の半導体装置の制御方法。
【請求項８】
前記第２回路が、前記割り込み信号の前記マスクを解除する前記工程と、
前記第２回路が、前記第２カウント値を読み出す前記工程と
を前記第１カウンタのカウント値が同じときに開始する
ことを特徴とする請求項６または７に記載の半導体装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、半導体装置及びその制御方法に関する。
【背景技術】
【０００２】
半導体装置のＯＳ（operating system）として、ＲＴＯＳ（real time operating system）が知られている。ＲＴＯＳは、決められた時間内に処理（タスク）が完了することを要求するＯＳとして、組込システム（embedded system）を中心に普及している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第２８０６０８０号公報
【特許文献２】特開２０１１−２３８１５２号公報
【特許文献３】特許第４７９８４４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
信頼性を向上できる半導体装置及びその制御方法を提供する。
【課題を解決するための手段】
【０００５】
実施形態に係る半導体装置は、第１動作モードと第１動作モードよりも消費電力の少ない第２動作モードとを有する。半導体装置は、第１動作モードの間、内部時間を更新し、第２動作モードの間、内部時間の更新を停止し、ＲＴＯＳ（real time operating system）を稼動するＣＰＵ（central processing unit）と、周期的にカウントを繰り返し、内部時間を更新させるタイマー割り込み信号をＣＰＵに周期的に送信する第１カウンタと、第２動作モードの間、カウント動作を行う第２カウンタと、半導体装置が第１動作モードから第２動作モードに遷移する際、第１動作モードから前記第２動作モードへの遷移開始時における第１カウンタの第１カウント値の読み出し、第１カウンタにおけるタイマー割り込み信号のマスク、及び第２カウンタにおけるカウントの開始を制御する第１回路と、半導体装置が第２動作モードから第１動作モードに遷移する際、第１カウンタにおけるタイマー割り込み信号のマスクの解除、及び第２カウンタの第２カウント値の読み出しを制御する復帰処理回路とを備える。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係る半導体装置のブロック図である。
【図２】図２は、第１実施形態に係る半導体装置のフローチャートである。
【図３】図３は、第１実施形態に係る半導体装置のタイミングチャートである。
【図４】図４は、第２実施形態に係る半導体装置のフローチャートである。
【図５】図５は、第３実施形態に係る半導体装置のタイミングチャートである。
【発明を実施するための形態】
【０００７】
以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００８】
１．第１実施形態
第１実施形態に係る半導体装置及びその制御方法について説明する。以下では、半導体装置がＲＴＯＳ（real time operating system）に対応したＭＣＵ（micro control unit）である場合を例に挙げて説明する。
【０００９】
１．１  半導体装置の構成について  
まず、半導体装置の構成について説明する。
【００１０】
図１は、本実施形態に係る半導体装置のブロック図である。
【００１１】
図１に示すように、ＭＣＵ１は外部デバイス１００と接続され、外部デバイス１００からの命令に応答して各種処理（タスク）を行う。本実施形態におけるＭＣＵ１は、タスクを実行していないときに、ＭＣＵ１内の一部の回路への電源供給を停止して、低消費電力状態に遷移する機能を有する。以下、ＭＣＵ１がタスクを実行している状態を「通常モード」と呼び、ＭＣＵ１がタスクを実行しておらず、例えばＣＰＵ２０に電源が供給されていない低消費電力状態を「低電力モード」と呼ぶ。
【００１２】
ＭＣＵ１は、時間管理ユニット１０、ＣＰＵ（central processing unit）２０、メモリ３０、電源制御ユニット４０、クロック・リセット回路５０を備え、それぞれが内部バスを介して互いに接続されている。
【００１３】
時間管理ユニット１０は、ＭＣＵ１内部における時間管理に必要なカウンタの動作を制御する。例えば時間管理ユニット１０は、チックｔｉｃｋの時間管理を行う。チックｔｉｃｋは、ＲＴＯＳにおいて一定周期で行われるタイマー割り込み処理である。ＲＴＯＳでは、チックｔｉｃｋに同期して、ＲＴＯＳの内部時間の更新や実行タスクの切り替えやタイムアウト検出といったタスク制御が行われる。時間管理ユニット１０は、チックｔｉｃｋの周期に同期してＣＰＵ２０、すなわちＲＴＯＳへのタイマー割り込み動作を行う。また、時間管理ユニット１０は、ＭＣＵ１が低電力モードにある場合においても、休止せずに処理を継続することができる。
【００１４】
時間管理ユニット１０は、第１カウンタ１１、第２カウンタ１２、ＲＣＴ発振器１３、カウンタ操作回路１４、休止処理回路１５、及び復帰処理回路１６を含む。
【００１５】
第１カウンタ１１は、チックｔｉｃｋの周期に同期した同期カウンタであり、一定周期（チックｔｉｃｋの周期間隔）でカウントを繰り返す。よって、第１カウンタ１１は、チックｔｉｃｋの周期以上の分解能を有する。また、第１カウンタ１１は、予め設定されたカウント値にてＲＴＯＳへのタイマー割り込み信号（以下、「ｔｉｃｋ割り込み信号」と呼ぶ）を発生させる機能を有する。
【００１６】
第２カウンタ１２は、例えばカウンタ操作回路１４、休止処理回路１５、あるいは復帰処理回路１６の制御により、カウントを開始あるいは停止する。例えば、第２カウンタ１２は、ＣＰＵ２０が低電力モードにある場合に、チックｔｉｃｋの周期と同期して経過時間のカウントを行うインターバルカウントとして機能する。このため、第２カウンタ１２は、第１カウンタと同様に、チックｔｉｃｋの周期以上の分解能を有する。以下では、第１カウンタ１１と第２カウンタとが同じ分解能を有する場合について説明するが、第１カウンタ１１の分解能と第２カウンタの分解能とは異なっていても良い。
【００１７】
ＲＴＣ（real time counter）発振器１３は、第１カウンタ１１及び第２カウンタ１２に、必要なクロック信号を送信する。ＲＴＣ発振器１３は、外部インタフェース（不図示）を含み、例えば外部に設けられた水晶発振器から入力されたクロック信号に応じて動作する。なお、ＲＴＣ発振器１３は、内部に非水晶振動子ベースの発振器機能を含み、それにより動作しても良い。例えば、ＲＴＣ発振器１３は、第１カウンタ１１及び第２カウンタ１２に、これらが同期してカウントアップするためのクロック信号を送信する。
【００１８】
カウンタ操作回路１４は、第１カウンタ１１及び第２カウンタ１２における、カウント値のセット、カウントの開始または停止、及び割り込み信号のマスクまたはマスク解除を行う。
【００１９】
休止処理回路１５は、ＣＰＵ２０からの要求に応じて、ＭＣＵ１が通常モードから低電力モードに遷移する際に、必要な処理（以下、「休止処理」と呼ぶ）を行う。より具体的には、休止処理回路１５は、ＣＰＵ２０から低電力モードに遷移する信号（以下、「休止信号」と呼ぶ）を受信すると、第１カウンタ１１のカウント値を読み出してＣＰＵ２０に送信する処理と、第１カウンタ１１のｔｉｃｋ割り込み信号をマスクする処理と、第２カウンタ１２のカウントを開始させる処理を行う。
【００２０】
復帰処理回路１６は、ＣＰＵ２０からの要求に応じて、ＭＣＵ１が低電力モードから通常モードに復帰する際に、必要な処理（以下、「復帰処理」と呼ぶ）を行う。より具体的には、復帰処理回路１６は、例えばＣＰＵ２０から通常モードに復帰する信号（以下、「復帰信号」と呼ぶ）を受信すると、第１カウンタ１１のｔｉｃｋ割り込み信号のマスクを解除させる処理と、第２カウンタ１２のカウント値を読み出してＣＰＵ２０に送信する処理を行う。
【００２１】
ＣＰＵ２０は、外部デバイス１００の命令に応答して、ＭＣＵ１内における各種タスク制御を司る。ＣＰＵ２０は、ＲＴＯＳを稼動する。ＣＰＵ２０では、ＲＴＯＳにより、タスクのスケジューリングや内部時間の管理が行われている。ＲＴＯＳは、時間管理ユニット１０から送信されたｔｉｃｋ割り込み信号をカウントすることにより、内部時間の更新を行う。ＣＰＵ２０（すなわちＲＴＯＳ）は、例えば実行するタスクが無い状態が予め設定された時間継続すると、ＭＣＵ１を低電力モードへと遷移させる。低電力モードの間、ＣＰＵ２０は休止状態となる。すなわち、ＣＰＵ２０は、電源供給が遮断された状態、あるいは、内部レジスタ等のデータを保持するために最小限の電力を供給されて、タスク処理を実行できない状態となる。ＲＴＯＳは、休止状態の間、ｔｉｃｋ割り込み信号のカウントを実行できないため、内部時間の更新を停止する。
【００２２】
メモリ３０は、例えばＳＲＡＭあるいはｅＤＲＡＭ等の半導体メモリであり、ＣＰＵ２０の作業領域として使用される。また、メモリ３０は、各種タスクの管理テーブルあるいはプログラム等を保持する。
【００２３】
電源制御ユニット４０は、ＭＣＵ１内において必要な電圧を生成し、各回路に供給する。電源制御ユニット４０は、ＭＣＵ１内部の一部の回路への電源供給の停止と再開を制御することにより、低電力モードへ遷移させる機能と、通常モードに復帰させる機能を有する。より具体的には、電源制御ユニット４０は、例えばＣＰＵ２０より休止信号を受信すると、ＣＰＵ２０、メモリ３０、及びクロック・リセット回路５０への電源供給を停止し、低電力モードに遷移させる。また、電源制御ユニット４０は、例えば外部デバイス１００からの信号の受信、あるいは時間管理ユニット１０からの信号に応じて、ＣＰＵ２０及びメモリ３０へ電源の供給を再開し、通常モードに復帰させる。
【００２４】
クロック・リセット回路５０は、例えば外部デバイス１００からの指示に応じて、ＣＰＵ２０や他の周辺機器に対してクロック信号の供給やリセット制御を行う。
【００２５】
１．２  休止処理及び復帰処理について  
次に、休止処理及び復帰処理の流れについて説明する。
【００２６】
図２は、本実施形態に係る半導体装置のフローチャートである。
【００２７】
図２に示すように、まずＣＰＵ２０（すなわちＲＴＯＳ）は、実行するタスクがない状態になると、低電力モードへの遷移を選択し、休止処理を開始する（ステップＳ１１）。具体的には、ＣＰＵ２０は、時間管理ユニット１０に休止信号を送信する。
【００２８】
次に、時間管理ユニット１０は、休止信号を受信するとステップＳ１２〜Ｓ１４の処理を開始する。以下では、時間管理ユニット１０がステップＳ１２〜１４の動作をほとんど同時に開始し、第１カウンタ１１のカウント値が次の値に移行するまでに動作を終了する場合について説明する。なお、本実施形態における「ほとんど同時」のタイミングとは、例えば第１カウンタ１１のカウント値が同じ値にある間におけるタイミングを示す。
【００２９】
具体的には、休止処理回路１５は、休止信号を受信した際の第１カウンタ１１のカウント値Ｘを取り込み、カウント値ＸをＣＰＵ２０に送信する（ステップＳ１２）。ＣＰＵ２０は、受信したカウント値Ｘを、例えばＣＰＵ２０の内部レジスタ、あるいはメモリ３０等に保存する。なお、休止処理回路１５は、カウント値ＸをＣＰＵ２０に送信せずに休止処理回路１５の内部レジスタに保存し、復帰処理時にＣＰＵ２０に送信しても良い。
【００３０】
また休止処理回路１５は、第１カウンタ１１において、ＣＰＵ２０へのｔｉｃｋ割り込み信号の送信を停止あるいは無効状態にする（ステップＳ１３）。以下、信号の送信あるいは受信を、停止あるいは無効状態にすることを「マスクする」と呼ぶ。ＲＴＯＳは、第１カウンタ１１よりｔｉｃｋ割り込み信号を受信できなくなるため、内部時間の更新を停止する。以下、ｔｉｃｋ割り込み信号が無効な状態にある期間を、「ｔｉｃｋ−ｌｅｓｓ期間」と呼ぶ。第１カウンタ１１は、ｔｉｃｋ割り込み信号の送信をマスクするため、同期タイマーとしての機能をストップするが、ｔｉｃｋ−ｌｅｓｓ期間においてもカウントを継続する。
【００３１】
また、休止処理回路１５は、第１カウンタ１１と同期させて、第２カウンタ１２にカウントをスタートさせる（ステップＳ１４）。
【００３２】
次に、ＣＰＵ２０は、カウント値Ｘを受信後、外部デバイス１００あるいは時間管理ユニット１０等からの割り込み信号の受信をマスクする（ステップＳ１５）。なお、休止処理回路１５は、カウント値Ｘとは別に、ＣＰＵ２０が割り込み信号の受信をマスクするための信号を送信しても良い。
【００３３】
次に、電源制御ユニット４０は、ＣＰＵ２０からの指示に応じて、ＣＰＵ２０、メモリ３０、及びクロック・リセット回路５０への電源供給を停止する。なお、電源制御ユニット４０は、電源供給を停止する代わりに、例えば通常モードよりも低く、データ保持に最低限必要な電圧を供給しても良い。これにより、ＭＣＵ１は、低電力モードとなる（ステップＳ１６）。この間、第１カウンタ１１及び第２カウンタ１２は、カウントを継続する。
【００３４】
次に、外部デバイス１００からＭＣＵ１に割り込み信号、すなわちタスク実行のためのコマンド、アドレス、及びデータ信号等が入力される（ステップＳ１７）と、ＭＣＵ１は、低電力モードから通常モードへの復帰処理を開始する（ステップＳ１８）。より具体的には、電源制御ユニット４０は、例えば外部デバイス１００から割り込み信号を受信すると、例えばＣＰＵ２０、メモリ３０、及びクロック・リセット回路５０への電源供給を再開する。
【００３５】
次にＣＰＵ２０は、電源の供給が再開され起動すると、割り込み信号のマスクを解除し、外部デバイス１００あるいは時間管理ユニット１０等からの割り込み信号の受信を有効な状態にする（ステップＳ１９）。
【００３６】
次に、時間管理ユニット１０は、ＣＰＵ２０からの復帰信号を受信するとステップＳ２０及びＳ２１の処理を開始する。以下では、時間管理ユニット１０がステップＳ２０及びＳ２１の動作をほとんど同時に開始し、第１カウンタ１１のカウント値が次の値に移行するまでに動作を終了する場合について説明する。
【００３７】
具体的には、復帰処理回路１６は、ＣＰＵ２０において割り込み信号の受信が有効な状態になった後、第１カウンタ１１において、ｔｉｃｋ割り込み信号のマスクを解除する（ステップＳ２０）。第１カウンタ１１は、ＣＰＵ２０へのｔｉｃｋ割り込み信号の送信を再開し、同期タイマーとしの機能を再開させる。ＲＴＯＳは、ｔｉｃｋ割り込み信号のカウントを再開する。
【００３８】
また、復帰処理回路１６は、第２カウンタ１２のカウント値Ｚを取り込み、カウント値ＺをＣＰＵ２０に送信する（ステップＳ２１）。
【００３９】
次に、ＣＰＵ２０がカウント値Ｚを受信すると、ＲＴＯＳは、カウント値Ｘ及びＺを用いて、低電力モードの期間（以下、「低電力期間」と呼ぶ）の経過時間を算出し、内部時間に加算する（ステップ２２）。これにより、ＲＴＯＳは、内部時間と実時間のずれを補正する。
【００４０】
１．３  内部時間の補正について  
次に、内部時間の補正について説明する。
【００４１】
図３は、本実施形態に係る半導体装置のタイミングチャートである。
【００４２】
図３の例では、第１カウンタ１１のカウント値の分解能を３とし、第１カウンタ１１は、２、１、０、２、１、０、…とカウントダウンを繰り返すものとする。また、第１カウンタ１１は、カウント値が０から２に移行するタイミングでｔｉｃｋ割り込み信号をＣＰＵ２０に送信するものとする。なお、第１カウンタ１１の分解能及びｔｉｃｋ割り込み信号を送信するタイミングは任意に設定できる。
【００４３】
更に、図３の例では、第１カウンタ１１のカウント値が“２”のときに、休止処理回路１５が休止処理を開始する場合を示す。なお、休止処理回路１５は、第１カウンタ１１のいずれのカウント値においても休止処理を開始できる。
【００４４】
図３に示すように、休止処理回路１５は、休止処理を開始したときのカウント値“２”をカウント値ＸとしてＣＰＵ２０に送信する。そして、休止処理回路１５は、第１カウンタ１１におけるｔｉｃｋ割り込み信号の送信をマスクする。これにより以降のｔｉｃｋ割り込み信号は、ＣＰＵ２０に送信されない。また、休止処理回路１５は、第２カウンタ１２においてカウントアップを開始させる。第２カウンタ１２は、第１カウンタ１１と同期してカウントアップするため、実際には、第１カウンタ１１の次のカウント値“１”から同期してカウントアップを開始する。その後、ＭＣＵ１は、低電力モードに遷移する。
【００４５】
次に、通常モードへの復帰処理のタイミングについて説明する。例えばＭＣＵ１は、第２カウンタのカウント値Ｚ−１で復帰処理を開始する。そして、復帰処理回路１６は、第２カウンタ１２のカウント値Ｚの次のカウント（図３の例では、第１カウンタ１１のカウント値が“０”）のときに、復帰処理を開始する。より具体的には、復帰処理回路１６は、第１カウンタ１１において、カウント値“０”のときにｔｉｃｋ割り込み信号のマスクを解除する。従って、休止処理回路１５によるｔｉｃｋ割り込み信号のマスクから、復帰処理回路１６によるｔｉｃｋ割り込み信号のマスク解除までが、ｔｉｃｋ−ｌｅｓｓ期間となる。また、復帰処理回路１６は、カウント値“０”のときに第２カウンタ１２のカウント値Ｚを取り込み、ＣＰＵ２０に送信する。
【００４６】
ＣＰＵ２０では、ＲＴＯＳがカウント値Ｘ及びＺより、経過時間を算出し、これを加算することにより内部時間を補正する。より具体的には、ＲＴＯＳは、ｔｉｃｋ−ｌｅｓｓ期間のｔｉｃｋ割り込み信号のカウント数を算出し、内部時間を補正する。補正するカウント数は、（（３−Ｘ）＋Ｚ）／３（小数点以下切り捨て）となる。ここで分子及び分母の３は第１カウンタ１１の分解能を示している。この結果を加算して、ＲＴＯＳは内部時間を補正する。
【００４７】
１．４  本実施形態に係る効果について  
本実施形態に係る構成であると、信頼性を向上できる。以下、本効果につき説明する。
【００４８】
ＲＴＯＳを用いた低消費電力向けＭＣＵでは、消費電力を低減する方法として、タスクを実行していないときに、ＭＣＵ内の一部の回路（例えばＣＰＵ）への電源供給を停止し、低電力モードに遷移することにより消費電力を削減する方法がある。しかし、例えばＣＰＵを休止状態にしてＲＴＯＳ自体を停止させた場合、ＲＴＯＳに必要な内部時間の更新も停止するため、通常モードに復帰後、内部時間と実時間にずれが生じる。
【００４９】
このため、ＲＴＯＳは、低電力モードに遷移する休止処理の際、１．同期タイマーの停止、２．割り込み信号のマスク、３．ハードウェア機能から現時刻の取得、といった３つのタスクを順に行う。ハードウェア機能とは、例えば、ＭＣＵ内部のＲＴＣ（real time counter）あるいは外部デバイスが保持する機器等である。また、ＲＴＯＳは、通常モードに復帰する復帰処理の際、１．ハードウェア機能から現時刻の取得、２．休止処理時及び復帰処理時の時刻から低電力モードの間の経過時間を算出し、内部時間を補正、３．同期タイマーの再開、といった３つのタスクを順に行う。
【００５０】
但し、ＲＴＯＳは、休止処理あるいは復帰処理を制御する場合、各タスクを順に実行する。このため、例えば休止処理において１．同期タイマー停止から３．現時刻取得までの間、あるいは、復帰処理において１．現時刻取得から３．同期タイマー再開までの間に、ｔｉｃｋ割り込み信号が発生した場合、ＲＴＯＳは、ｔｉｃｋ割り込み信号を取り込むことができないため、チックｔｉｃｋの取りこぼしが生じ、内部時間と実時間にずれが生じる可能性がある。
【００５１】
これに対し、本実施形態にかかる構成では、休止処理を制御する休止処理回路１５及び復帰処理を制御する復帰処理回路１６を備える。そして休止処理回路１５は、第１カウンタ１１（同期タイマー）におけるカウント値の取得、ｔｉｃｋ割り込み信号のマスク、第２カウンタ１２のカウント開始をほとんど同時に行う。また、復帰処理回路１６は、ｔｉｃｋ割り込み信号のマスク解除、第２カウンタ１２のカウント値の取得をほとんど同時に行う。これにより、休止処理及び復帰処理におけるｔｉｃｋの取りこぼしを抑制することができ、通常モード復帰後の内部時間と実時間のずれを抑制することができる。従って、ＲＴＯＳにおける時間制御の信頼性を向上でき、半導体装置の信頼性を向上することができる。
【００５２】
更に本実施形態に係る構成では、低電力モードにおいて、ＣＰＵ及びメモリへの電源供給を停止できるため、半導体装置の消費電力を削減できる。
【００５３】
更に本実施形態に係る構成では、消費電力を削減できるため、例えば電池のように容量が固定の電源を用いた場合、使用期間を長くすることができる。
【００５４】
２．第２実施形態  
次に、第２実施形態に係る半導体装置及びその制御方法について説明する。第１実施形態と異なる点は、第２カウンタ１２のカウント値に応じて、復帰処理回路１６が復帰処理を実行する点である。以下、第１実施形態と異なる点についてのみ説明する。
【００５５】
２．１  半導体装置の構成について  
まず、半導体装置の構成について説明する。全体の構成は、第１実施形態の図１と同じである。以下、各回路において、第１実施形態と異なる点についてのみ説明する。
【００５６】
第２カウンタ１２は、休止処理回路１５の制御により、予め設定されたカウント値Ｚからカウントダウンを開始する。そして、第２カウンタ１２は、予め設定されたカウント値（例えばカウント“０”）に達した場合、例えばＣＰＵ２０等への割り込み信号を発生させる機能を有する。より具体的には、例えば、低電力モードにおいて第２カウンタ１２のカウント値がオーバーフローしてしまうと、内部時間の正確な補正ができなくなる。このため、第２カウンタ１２は予め設定されたカウント値に達すると、復帰処理回路１６、ＣＰＵ２０、あるいは電源制御ユニット４０等に割り込み信号を送信する。そして、この割り込み信号に応じて、ＭＣＵ１は通常モードに復帰する。なお、本実施形態では、第２カウンタ１２がカウントダウンする場合を例に説明するが、第２カウンタ１２の設定は任意に変更できる。
【００５７】
ＣＰＵ２０は、第２カウンタ１２から割り込み信号を受信すると復帰処理を開始する。また、ＣＰＵ２０は、第２カウンタ１２から割り込み信号を受信した場合、内部時間の更新を行った後、再度低電力モードへの遷移を開始する。
【００５８】
２．２  休止処理及び復帰処理について  
本実施形態に係る休止処理及び復帰処理の流れについて説明する。
【００５９】
図４は、本実施形態に係る半導体装置のフローチャートである。
【００６０】
図４に示すように、ステップＳ１１からステップＳ１６までの処理は、第１実施形態の図２と同じである。
【００６１】
次に、外部デバイス１００あるいは第２カウンタ１２から電源制御ユニット４０に割り込み信号が送信される（ステップＳ１７’）と、ＭＣＵ１は、低電力モードから通常モードへの復帰処理を開始する（ステップＳ１８）。
【００６２】
ステップＳ１９からステップＳ２２における復帰処理は、図２と同じである。
【００６３】
次に、ＣＰＵ２０が外部デバイス１００からの割り込み信号により通常モードに復帰した場合(ステップＳ２３＿Ｎｏ)、ＲＴＯＳは、外部デバイス１００からの割り込み信号に応じてタスクを再開する。
【００６４】
他方で、ＣＰＵ２０が第２カウンタ１２からの割り込み信号により通常モードに復帰した場合（ステップＳ２３＿Ｙｅｓ）、ＲＴＯＳは、外部デバイス１００からの割り込み信号を受信していないか確認する。
【００６５】
そして、ＲＴＯＳは、外部デバイス１００からの割り込み信号を受信している場合（ステップＳ２４＿Ｙｅｓ）、外部デバイス１００からの割り込み信号に応じてタスクを再開する。
【００６６】
また、ＣＰＵ２０は、外部デバイス１００からの割り込み信号を受信していない場合(ステップＳ２４＿Ｎｏ)、ステップＳ１１に戻り、再度低電力モードへの遷移を開始する。
【００６７】
２．３  内部時間の補正について  
本実施形態に係る内部時間の補正について説明する。
【００６８】
図５は、本実施形態に係る半導体装置のタイミングチャートである。
【００６９】
図５に示すように、休止処理回路１５は、休止処理を開始したときのカウント値“２”をカウント値ＸとしてＣＰＵ２０に送信する。そして、休止処理回路１５は、第１カウンタ１１におけるｔｉｃｋ割り込み信号をマスクする。
【００７０】
また、休止処理回路１５は、第２カウンタ１２においてカウントダウンを開始させる。第２カウンタ１２は、第１カウンタ１１と同期してカウントダウンするため、実際には、第１カウンタ１１の次のカウント値“１”から同期してカウントダウンを開始する。このときの第２カウンタ１２のカウント値をＺとする。その後、ＭＣＵ１は、低電力モードに遷移する。
【００７１】
次に、通常モードへの復帰処理のタイミングについて説明する。例えば第２カウンタ１２は、カウント値が“０”になると、ＣＰＵ２０、あるいは電源制御ユニット４０等へ割り込み信号を送信する。なお、第２カウンタ１２は、カウント値“０”以降もカウントを継続する。
【００７２】
ＭＣＵ１は、第２カウンタ１２の割り込み信号に応じて復帰処理を開始する。そして、復帰処理回路１６は、第２カウンタ１２のカウント値が“−３”のときに、処理を開始する。より具体的には、復帰処理回路１６は、第２カウンタ１２において、カウント値“−３”のときに第２カウンタ１２のカウント値“−２”を取り込み、これをカウント値ＹとしてＣＰＵ２０に送信する。
【００７３】
ＲＴＯＳは、カウント値Ｘ、Ｙ及びＺより、経過時間を算出する。補正するカウント数は、（（３−Ｘ）＋（Ｚ＋１−Ｙ））／３となる。ここで分子及び分母の３は第１カウンタ１１の分解能を示している。この結果を加算して、ＲＴＯＳは内部時間を補正する。
【００７４】
２．４  本実施形態に係る効果について  
本実施形態に係る構成であると、第１実施形態と同様の効果を得ることができる。
【００７５】
更に、本実施形態に係る構成であると、低電力モード中においても、定期的に通常モードに復帰し、内部時間の補正と、第２カウンタ１２のカウント値のリセットができる。このため、第２カウンタ１２においてカウント値のオーバーフローを抑制できる。従って、カウント値のオーバーフローによる内部時間の補正ミスを抑制することができる。
【００７６】
更に、本実施形態では、第２カウンタ１２のカウント値を定期的にリセットできるため、カウント数の最大値を大きくする必要が無く、第２カウンタ１２を小型化できる。従って、第２カウンタの回路面積を小さくでき、半導体装置のチップ面積増大を抑制できる。
【００７７】
更に、本実施形態では、内部時間の補正と、第２カウンタ１２のカウント値のリセットが定期的に行われるため、低電力モードが長期的に続く場合においても、内部時間の補正ミスを抑制することができる。
【００７８】
３．変形例等
上記実施形態に係る半導体装置は、第１動作モード(通常モード)と第１動作モードよりも消費電力の少ない第２動作モード(低電力モード)とを有する。半導体装置は、第１動作モードの間、内部時間を更新し、第２動作モードの間、内部時間の更新を停止するＲＴＯＳが稼働するＣＰＵ(20@図1)と、周期的にカウントを繰り返し、内部時間を更新させるタイマー割り込み信号(tick割り込み信号)をＣＰＵに周期的に送信する第１カウンタ(11@図1)と、第２動作モードの間、カウント動作を行う第２カウンタ(12@図1)と、第１動作モードから第２動作モードに遷移する際(休止処理)、半導体装置が第１動作モードから前記第２動作モードへの遷移開始時における第１カウンタの第１カウント値(X)の読み出し、第１カウンタにおけるタイマー割り込み信号のマスク、及び第２カウンタにおけるカウントの開始を制御する第１回路(15@図1)と、半導体装置が第２動作モードから第１動作モードに遷移する際(復帰処理)、第１カウンタにおけるタイマー割り込み信号のマスクの解除、及び第２カウンタの第２カウント値(Z)の読み出しを制御する第２回路(16@図1)とを備える。
【００７９】
上記実施形態を適用することにより、信頼性を向上できる半導体装置を提供できる。なお、実施形態は上記説明した形態に限定されるものではなく、種々の変形が可能である。
【００８０】
例えば上記実施形態において、休止処理回路１５及び復帰処理回路１６は、これらの機能を有する１つの回路であっても良い。
【００８１】
例えば上記実施形態において、時間管理ユニット１０は、カウンタを３つ以上備えても良い。例えば第３カウンタを設ける。そして、第２カウンタは、一定周期でカウントを繰り返すものとする。第３カウンタは、第２カウンタのカウント値のサイクル数をカウントするものとしても良い。これにより、低電力モードの間のカウント数（経過時間）を増加させることができる。
【００８２】
例えば上記実施形態において、休止処理回路１５が、ＣＰＵ２０に割り込み信号をマスクさせるための信号を送信しても良い。同様に復帰処理回路１６が、ＣＰＵ２０に割り込み信号のマスクを解除させるための信号を送信しても良い。
【００８３】
例えば上記実施形態は、ＭＣＵに限定されず、内部時間の管理が必要な半導体装置において適用できる。
【００８４】
更に、上記実施形態における「接続」とは、間に例えばトランジスタあるいは抵抗等、他の何かを介在させて間接的に接続されている状態も含む。
【００８５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことが出来る。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００８６】
１…ＭＣＵ、１０…時間管理ユニット、１１…第１カウンタ、１２…第２カウンタ、１３…ＲＴＣ発振器、１４…カウンタ操作回路、１５…休止処理回路、１６…復帰処理回路、２０…ＣＰＵ、３０…メモリ、４０…電源制御ユニット、５０…クロック・リセット回路、１００…外部デバイス。
【図１】
0006377659.tif 000002
【図２】
0006377659.tif 000003
【図３】
0006377659.tif 000004
【図４】
0006377659.tif 000005
【図５】
0006377659.tif 000006