(57)【要約】【課題】複数のＣＰＵコアを内蔵するＬＳＩを使用する電子機器において、待機時に遷移する電子機器の低消費電力モードでの消費電力低減と通常動作モードへの復帰イベント検出処理を両立することができる省電力制御システムを提供すること。【解決手段】複数のＣＰＵコアのうち、通常動作モードへの復帰イベント検出用に１つのＣＰＵコアを通常動作モード時よりも低いクロック周波数で動作させ、他のＣＰＵコアはＣＰＵコアが備える低消費電力モードとする。又、機器の低消費電力モード時に動作し続けるＣＰＵコアへ供給するクロック周波数は、他のＣＰＵコアがクロック発振器の周波数変更を制御するよう構成する。【選択図】図１
2007047966.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵを搭載する電子機器において、ＣＰＵは通常動作モードと低消費電力モードを備え、少なくとも１つのＣＰＵへ供給するクロックの周波数を変更可能なクロック生成手段と、ＣＰＵが相互に動作モードを検知可能なＣＰＵ動作モード検知手段と、ＣＰＵが相互に動作モード変更要求を通知可能なＣＰＵ動作モード変更要求通知手段とを備えることを特徴とする省電力制御システム。
【請求項２】
前記クロック生成手段は、プログラムによって生成するクロック周波数を変更可能であることを特徴とする請求項１記載の省電力制御システム。
【請求項３】
前記ＣＰＵは、低消費電力モード中にクロック周波数を変更可能であることを特徴とする請求項１又は２記載の省電力制御システム。
【請求項４】
前記省電力システムのＣＰＵは、ＬＳＩに内蔵されたＣＰＵコアであることを特徴とする請求項１〜３の何れかに記載の省電力制御システム。
【請求項５】
前記ＣＰＵ或はＣＰＵコアは、専用命令によって低消費電力動作モードへ移行可能であり、割り込みによって通常動作モードへ復帰可能であることを特徴とする請求項１〜４の何れかに記載の省電力制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器の省電力制御システムに関するものであり、特に低消費電力動作時にＬＳＩに実装された複数のＣＰＵコアの消費電力を低減する方式に関するものである。
【背景技術】
【０００２】
近年、電子機器は、半導体素子の集積度の向上に伴い、高速化、高機能化を続け、その性能向上は著しい。一方、性能向上に合わせてアプリケーションも高度化を続け、アプリケーションが取り扱うデータも大容量化を続けているため、電子機器に求められる性能は数年前に比べて飛躍的に高くなっている。こうした要求に応えるべく、電子機器に搭載されるＬＳＩは、専用ハードウェア回路によって高速化を図るとともに、ソフトウェア実行性能を向上させるために複数のＣＰＵコアを１つのＬＳＩへ搭載する例も増えてきている。
【０００３】
一方、近年電子機器の消費電力を抑えるために省電力規格を制定し、国際的に取り組みが行われている。省電力規格は機器の動作中だけでなく、動作していない時の消費電力も対象としているため、動作時、待機時を含めた消費電力低減が必要である。電子機器の一種であるプリンタにおいても国際的な省電力規制が適用され、他の電子機器同様動作時の消費電力だけでなく待機電力も抑えることが必要となってきている。
【０００４】
ＣＰＵコアを搭載したＬＳＩにおける低消費電力化の従来技術には、大別すると静的制御方法と動的制御方法がある。静的制御方法は、ＣＰＵを含めたＬＳＩが高速で動作する必要がないことが分かっている場合にソフトウェアによって明示的に低消費電力モードへ遷移させる方法である。又、動的制御方法は、ＣＰＵやＬＳＩの負荷状態をハードウェアによって監視し、動作クロック、電源電圧やしきい値電圧を動的に変化させる方法である。
【０００５】
静的制御方法には使用していない回路ブロックへ供給しているクロックを停止させるクロックゲーティングとＣＰＵコアを専用命令によって低消費電力モードへ遷移させて待機状態とし、割り込みが入ると待機状態を抜けて通常動作モードに復帰させる方法がある。ＣＰＵの低消費電力モード時は必要最低限の回路ブロックのみに動作クロック信号を供給することで消費電力を低減する。
【０００６】
動的制御方法には、動作するアプリケーションが要求する性能からＣＰＵコアが動作するクロックを選択し、動的にクロック周波数を変更する方法がある（例えば、特許文献１参照）。
【０００７】
又、動作クロック周波数の変更と組み合わせてＣＰＵコアを含むＬＳＩの動作電源電圧を変更する方法もある。低い処理性能で良い場合にはＬＳＩへ供給する電源電圧を低くする。
【特許文献１】特開平８−０７６８７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
要求される性能を満たすため、専用ハードウェア回路と複数のＣＰＵコアを内蔵するＬＳＩを搭載した電子機器においては、処理負荷がピークとなる動作を含む通常動作モード時の省電力規格値を満足することよりもむしろ待機時の消費電力を低減させることの方が難しい。その理由は、要求性能を満たすため高い処理能力を持ったハードウェアとＣＰＵの消費電力は高くなる傾向があるが、待機時は処理性能を抑えてでも消費電力をできるだけ下げなければならないからである。
【０００９】
又、電池で動作が必要な携帯機器を除けば、通常動作時の消費電力の低減要求の優先度は下がる。例えば、ＡＣ電源で動作するプリンタにおいては待機時の消費電力を低減することが省電力性能としては優先度が高い。
【００１０】
待機時の消費電力を抑えるためには前述した従来例における静的制御によって十分な省電力効果があれば良い。動的制御を行うためには、実行するアプリケーションの要求性能から最低限必要な処理性能を換算して動作クロックを変更する手段が必要となる。更に、消費電力を低減するためにＬＳＩへ供給する電源電圧を変更する制御を組み合わせることがある。最低限必要な処理性能を算出するためには、アプリケーションから要求性能を指示する手段と要求性能に対して十分な処理性能となるクロック周波数を算出する手段と動的にクロック周波数を変更する手段が必要になる。更に、ＬＳＩへ供給する電源電圧を変更するためには、ＬＳＩ外部に電源電圧変更手段が必要となることと同時に、ＬＳＩ自身も動作する電源電圧範囲を広くしなければならない。
【００１１】
又、待機時に低消費電力モードへ遷移した電子機器は、復帰イベントを検知して通常動作モードへ復帰する必要がある。例えば、プリンタは待機時に低消費電力モードに入ると、ユーザによる操作パネルへのキー入力、ホスト機器から送信されたプリントジョブの受信等を復帰イベントとして検知して通常動作モードへ復帰する必要がある。高速なＣＰＵを搭載した機器では、低消費電力モードから通常動作モードへの復帰イベント監視用に小型低速低消費電力のマイコンを別に用意し、低消費電力モード時は高速なＣＰＵはクロック停止或は電源を遮断するように構成した例もあるが、マイコンが別途必要になるため、マイコン実装のための基板面積の増大、マイコン分のコストアップという欠点がある。
【００１２】
本発明は上記問題に鑑みてなされたものであり、その目的とする処は、複数のＣＰＵコアを内蔵するＬＳＩを使用する電子機器において、待機時に遷移する電子機器の低消費電力モードでの消費電力低減と通常動作モードへの復帰イベント検出処理を両立することができる省電力制御システムを提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、請求項１記載の発明は、複数のＣＰＵを搭載する電子機器において、ＣＰＵは通常動作モードと低消費電力モードを備え、少なくとも１つのＣＰＵへ供給するクロックの周波数を変更可能なクロック生成手段と、ＣＰＵが相互に動作モードを検知可能なＣＰＵ動作モード検知手段と、ＣＰＵが相互に動作モード変更要求を通知可能なＣＰＵ動作モード変更要求通知手段とを備えることを特徴とする省電力制御システムである。
【００１４】
請求項２記載の発明は、請求項１記載の発明において、前記クロック生成手段は、プログラムによって生成するクロック周波数を変更可能であることを特徴とする。
【００１５】
請求項３記載の発明は、請求項１又は２記載の発明において、前記ＣＰＵは、低消費電力モード中にクロック周波数を変更可能であることを特徴とする。
【００１６】
請求項４記載の発明は、請求項１〜３の何れかに記載の発明において、前記省電力システムのＣＰＵは、ＬＳＩに内蔵されたＣＰＵコアであることを特徴とする。
【００１７】
請求項５記載の発明は、請求項１〜５の何れかに記載の発明において、前記ＣＰＵ或はＣＰＵコアは、専用命令によって低消費電力動作モードへ移行可能であり、割り込みによって通常動作モードへ復帰可能であることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、電子機器の待機状態での消費電力を低減させるために、機器に搭載したＬＳＩの複数のＣＰＵコアの１つを低い周波数で動作させ、他のＣＰＵコアは低消費電力モードとするので、従来復帰イベント検知用に必要であったマイコンが不要になるという効果がある。又、従来動的制御を行う場合、ＣＰＵコアのクロック周波数を動的に変更することやＣＰＵコアを搭載するＬＳＩへ供給する電源電圧を動的に変更することによって消費電力を低減する機能に対応したＣＰＵコアが必要であったが、クロックや電源電圧の動的変更に対応可能な機能を持たないＣＰＵコアであっても本発明を構成することができる。従って、ＣＰＵコアの幅広い選択肢を使用者へ提供することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１９】
以下に本発明の実施の形態を添付図面に基づいて説明する。ここでは、プリンタを例として説明を行う。
【００２０】
図４は本発明が実装されるプリンタシステムの概略ブロック図であり、３０１はプリンタ本体であり、ホストＰＣ３０４と接続されている。ホストＰＣとはネットワーク（有線ＬＡＮ、無線ＬＡＮ）やＵＳＢ、ＩＥＥＥ１３９４等を介して接続される。プリンタ３０１は、コントローラ３０２とプリンタエンジン３０３から構成されている。
【００２１】
コントローラは、ホストＰＣ３０４とのインタフェース機能を持ち、ホストＰＣから送信された印刷データを解釈し、画像処理を行い、２値データへ変換してプリンタエンジンへ渡す。プリンタエンジン３０３は、コントローラ３０２から２値化された印字データを受け取り、インクジェットプリンタの場合、プリントヘッドのスキャン制御、インク吐出制御、紙送り制御等を行い、印刷を行う。
【００２２】
図５はコントローラのブロックを示す図である。
【００２３】
コントローラ４０１は、ＵＳＢインタフェースを介してホストＰＣ４１５と、ＩＥＥＥ１３９４インタフェースを介してホストＰＣ４１８と、又、ＬＡＮインタフェースを介して複数のホストＰＣと接続され、更にエンジンインタフェースを介してプリンタエンジン４１３と接続される。
【００２４】
コントローラ４０１は、コントローラチップ４０２とＲＯＭ４０５、ＲＡＭ４０７、操作パネル４０９、ＩＥＥＥ１３９４インタフェース４１７、ＬＡＮコントローラ４１９、拡張インタフェース４２０から構成され、コントローラチップ４０２とＬＡＮコントローラ４１９、ＩＥＥＥ１３９４インタフェース４１７、拡張インタフェース４２０は拡張バスを介して接続される。
【００２５】
コントローラチップ４０２は、いわゆるＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  ａ  Ｃｈｉｐ）であり、ＣＰＵブロック４０３、ＲＯＭコントローラ４０４、ＲＡＭコントローラ４０６、操作パネルインタフェース４０８、バスインタフェース４１６、割り込みコントローラ４１０、画像データ処理ブロック４１１、ＵＳＢインタフェース４１４、エンジンインタフェース４１２から構成されるＬＳＩであり、各ブロックは内部バスによって相互に接続されている。
【００２６】
ＣＰＵブロック４０３は、ここでは同じ種類の２つのＣＰＵコアから構成されるマルチＣＰＵコアブロックであり、各々のＣＰＵコアはＣＰＵ−１  ４０３−１、ＣＰＵ−２  ４０３−２で示され、ＲＯＭ４０５に格納されたプログラムに従って動作し、各種インタフェースを通じてホストＰＣ、プリンタエンジンとの通信や各部の制御を行う。ＲＯＭコントローラ４０４は、接続されたＲＯＭ４０５とのインタフェースを行う。ＲＡＭコントローラ４０６は、接続されたＲＡＭ４０７とのインタフェースを行い、ＲＡＭアクセスタイミングを制御しながら、ＣＰＵブロック４０３や他のブロックからの要求に従い、ＲＡＭへのデータ入出力を行う。
【００２７】
操作パネルインタフェース４０８は、操作キーやＬＥＤ、ＬＣＤを実装した操作パネル４０９とのインタフェースを行い、ユーザからの操作キー入力をＣＰＵブロック４０３へ伝え、ＣＰＵブロック４０３からの命令によってＬＥＤ、ＬＣＤの表示が制御される。バスインタフェース４１６は拡張バスを制御するブロックであり、拡張バスに接続された各コントローラとの通信制御を行う。
【００２８】
割り込みコントローラ４１０は、各ブロックからの割り込み信号を集積してＣＰＵブロック４０３へ割り込み要求として通知する。割り込みはＣＰＵブロック４０３内の各ＣＰＵコア（ＣＰＵ−１  ４０３−１、ＣＰＵ−２  ４０３−２）に個別に通知することができる。画像データ処理ブロック４１１は、ホストＰＣから送信される印刷データをＲＡＭ４０７から読み出し、各インク色のドットデータに変換し、ＲＡＭ４０７へ書き戻すブロックである。エンジンインタフェース４１２は、各インク色のドットデータをＲＡＭ４０７から読み出し、プリンタエンジン４１３へ送信する制御を行う。
【００２９】
ホストＰＣから送信される印刷データは、コントローラの各インタフェースから入力される。ＩＥＥＥ１３９４インタフェース或はＬＡＮコントローラを経由して入力された印刷データは、拡張バスを通じてコントローラチップ４０２のバスインタフェース４１６を経由し、ＲＡＭコントローラ４０６の制御に従ってＲＡＭ４１７へ書き込まれる。ＵＳＢインタフェース４１４は、コントローラチップ４０２に内蔵されており、ホストＰＣ４１５から入力された印刷データは内部バスを通じてＲＡＭコントローラ４０６の制御に従ってＲＡＭ４０７へ書き込まれる。
【００３０】
ＲＡＭ４０７へ書き込まれた印刷データは、ＣＰＵブロック４０３によって通信プロトコルが解釈された後、デコーダ４１０へ渡され、デコードされる。デコードされた印刷データは、画像データ処理ブロックによって各インク色のドットデータに変換された後、エンジンインタフェース４１２を通じてプリンタエンジン４１３へ送信され、紙へ印刷される。
【００３１】
図１は図５に示すＣＰＵブロック４０３の内部ブロック図である。
【００３２】
ＣＰＵブロック４０３は本図では１０１で示され、ＣＰＵコア  ＣＰＵ−１  １０２、ＣＰＵコア  ＣＰＵ−２  １０３、ＣＰＵブロックレジスタ１０４、ＣＰＵクロック発振器１０８から構成され、ＣＰＵブロックレジスタ１０４は、ＣＰＵ−１状態レジスタ１０５、ＣＰＵ−２状態レジスタ１０６、クロック分周設定レジスタ１０７から構成されている。
【００３３】
ＣＰＵ−１  １０２は、ＣＰＵコアであり、内部バスに接続され、内部バスを通じてＲＯＭ４０５やＲＡＭ４０７をはじめ各種ハードウェア資源にアクセス可能である。ＣＰＵブロックレジスタ１０４からはクロック分周設定レジスタ１０７に設定された値、ＣＰＵ−２状態レジスタ１０６に設定された値を読み出し可能である。又、クロック発振器１０８から供給されるクロック−１信号に同期して動作するよう構成されている。又、専用命令によってＣＰＵコアの内部クロックを極力停止して消費電力を低減するＣＰＵ低消費電力モードを備える。更に、ＣＰＵ低消費電力モードからは割り込みによって通常動作モードへ復帰可能な機構を備える。
【００３４】
ＣＰＵ−２  １０３は、ＣＰＵ−１  １０２と同じＣＰＵコアであり、ＣＰＵ−１  １０２と同様内部バスに接続され、内部バスを通じてＲＯＭ４０５やＲＡＭ４０７をはじめ各種ハードウェア資源にアクセス可能である。ＣＰＵブロックレジスタ１０４へはクロック分周設定レジスタ１０７にＣＰＵ−１  １０２の動作クロックの分周比を設定できる。又、ＣＰＵ−１状態レジスタ１０５に設定された値を読み出し可能である。又、クロック発振器１０８から供給されるクロック−２信号に同期して動作するよう構成されている。又、専用命令によってＣＰＵコアの内部クロックを極力停止して消費電力を低減するＣＰＵ低消費電力モードを備える。更に、ＣＰＵ低消費電力モードからは割り込みによって通常動作モードへ復帰可能な機構を備える。
【００３５】
ＣＰＵブロックレジスタ１０４は、ＣＰＵ−１状態レジスタ１０５、ＣＰＵ−２状態レジスタ１０６、クロック分周設定レジスタ１０７から構成されている。
【００３６】
ＣＰＵ−１状態レジスタ１０５は、ＣＰＵ−１  １０２から出力されている内部動作状態を示す信号が接続され、ＣＰＵ−１  １０２が通常動作モードか、内部クロックが殆ど停止する動作モードである低消費電力動作モードかを予め定義された値として保持する。ＣＰＵ−１状態レジスタ１０５は、ＣＰＵ−２  １０３から読み出すことが可能であり、ＣＰＵ−２  １０３は、ＣＰＵ−１の動作状態を知ることができる。
【００３７】
ＣＰＵ−２状態レジスタ１０６は、ＣＰＵ−２  １０３から出力されている内部動作状態を示す信号が接続され、ＣＰＵ−２  １０３が通常動作モードか、内部クロックが殆ど停止する動作モードである低消費電力動作モードかを予め定義された値として保持する。ＣＰＵ−２状態レジスタ１０６は、ＣＰＵ−１  １０２から読み出すことが可能であり、ＣＰＵ−１  １０２は、ＣＰＵ−２の動作状態を知ることができる。
【００３８】
クロック分周設定レジスタ１０７は、ＣＰＵ−２  １０３からクロック分周比を決める値を設定可能であり、ＣＰＵ−１  １０２の動作クロック周波数を変更・設定できる。又、クロック分周設定レジスタ１０７は、ＣＰＵ−１  １０２、ＣＰＵ−２  １０３の各ＣＰＵコアから設定値を読み出し可能である。
【００３９】
クロック発振器１０８は、ＣＰＵ−１  １０２、ＣＰＵ−２  １０３の各ＣＰＵコアの動作クロックであるクロック−１、クロック−２を生成し供給する。ＣＰＵ−１  １０２へ供給するクロック−１は、クロック分周設定レジスタ１０７から出力される信号の組み合わせによって、プリンタの通常動作モード時のクロックの例えば１／２，１／４，１／８等の分周比となるクロックを生成可能である。
【００４０】
一方、ＣＰＵ−２  １０３へ供給するクロック−２に関してはクロック−１のような周波数変更設定機能は持たない。本ブロック図ではクロック分周設定レジスタ１０７は１つのブロックとして記載しているが、前述のようにクロック−１、クロック−２に対して異なる周波数を設定可能なように構成されている。
【００４１】
次に、プリンタがプリント処理を行っていない待機状態から、プリンタの省電力モードである低消費電力モード（以下、「スリープモード」と呼ぶ）へ移行する際に２つのＣＰＵコアを制御する処理動作を図２のフローチャートを参照して説明する。
【００４２】
ＣＰＵブロック１０１内部のＣＰＵ−１，ＣＰＵ−２の動作を図２中、それぞれＣＰＵ−１，ＣＰＵ−２と記した縦のラインに時系列順で示している。縦のラインからもう一方の縦のラインへの実線の矢印はそれぞれＣＰＵ−１状態レジスタ１０５、ＣＰＵ−２状態レジスタ１０６から相手側のＣＰＵコアの状態を読み取る動作を示している。又、破線の矢印は相手側のＣＰＵコアに対して割り込みを掛ける処理を表している。
【００４３】
本実施の形態では、プリンタのスリープモード時はＣＰＵ−１  １０２は、プリンタの通常動作モード時よりも低い動作周波数で動作し、ＣＰＵ−２  １０３は、ＣＰＵ低消費電力モードへ移行し、ＣＰＵコア内部はほぼ停止状態となり、消費電力が低く抑えられる。
【００４４】
図２に示す処理は、プリンタがスリープモードへ移行する処理の中で実行される。
【００４５】
Ｓ１０１はＣＰＵ−１をＣＰＵ低消費電力モードへ移行させる処理である。ＣＰＵ−１が低消費電力モードへ移行する専用命令を実行することによって実現される。Ｓ２０１でＣＰＵ−２は、ＣＰＵ−１がＣＰＵ低消費電力モードに入ったかどうかをＣＰＵ−１状態レジスタ１０５を読み出して判定する。ＣＰＵ−１がＣＰＵ低消費電力モードに入るまで待つ。ＣＰＵ−１がＣＰＵ低消費電力モードに入ると、Ｓ２０２でクロック分周設定レジスタ１０７へ予め定められた値を書き込むことによってＣＰＵ−１のクロック周波数低下設定を実行する。
【００４６】
Ｓ２０２でクロック分周設定レジスタ１０７の設定が完了すると、ＣＰＵ−１へ供給されるクロック−１が通常動作モード時よりも低い動作クロック周波数へ変更される。Ｓ２０１でＣＰＵ−１がＣＰＵ低消費電力モードへ入るまで待つのは、ＣＰＵ−１コアの動作停止はＣＰＵ低消費電力モードへ移行することで保証されるからであり、ＣＰＵ−１の動作中にクロック−１が変化しないようにすることによって予期せぬ異常状態にＣＰＵ−１が陥らないようにするためである。
【００４７】
又、ＣＰＵコアの種類によっては動作クロックのデューティに対する要求が厳しいものがあり、ＣＰＵコアへ供給する動作クロック周波数を動的に切り替える場合、周波数を切り替える瞬間においてもデューティを保障することは一般に難しいためでもある。このように制御することにより、クロック周波数切り替え時にデューティが崩れても問題はない。
【００４８】
次に、Ｓ２０３でＣＰＵ−１へ復帰割り込み要求を発行する。ＣＰＵ−２から割り込みコントローラ４１０内の図示しないレジスタへデータを書き込むことで、ＣＰＵ−１を通常動作モードへ復帰させるための割り込みをＣＰＵ−１に対して掛ける。この割り込みが図２内で破線の矢印で示されたようにＣＰＵ−１へ通知され、ＣＰＵ−１は、Ｓ１０２で通常動作モードへ復帰する。この処理以降、図２に示すようにＣＰＵ−１は、プリンタのスリープモード時に動作する低クロック周波数で動作し、通常動作モード時よりも低い消費電力で動作する。ＣＰＵ−１は、クロック分周設定レジスタ１０７の設定値を読み込むことで、自身のクロック周波数設定を知ることができるため、プリンタのスリープモード中の動作クロックに合わせてタイマーカウント設定等必要に応じて変更することも可能である。
【００４９】
ＣＰＵ−２は、Ｓ２０４でＣＰＵ−１状態レジスタ１０５を読み込み、ＣＰＵ−１がＣＰＵ低消費電力モードから抜けて、通常動作モードへ移行するまで待つ。
【００５０】
ＣＰＵ−２は、Ｓ２０５で専用命令を実行することによって、ＣＰＵ低消費電力モードへ移行する。この処理以降、ＣＰＵ−２はＣＰＵ低消費電力モードとなる。
【００５１】
ＣＰＵ−１は、Ｓ１０３でＣＰＵ−２がＣＰＵ低消費電力モードとなるまで待つ。ＣＰＵ−２がＣＰＵ低消費電力モードへ以降した時点でプリンタのスリープモードでの動作モードとなる。
【００５２】
プリンタのスリープモード中に、例えばユーザがインクタンクの交換を行うと、インクカバーがオープンされたこと、インクタンクが取り外されたこと、新しいインクタンクが装着されたこと等の一連のインク交換に関する処理やユーザによる操作パネルのボタン操作の検出処理等は低クロックで動作中のＣＰＵー１コアで実行されるプログラムによって検知、記憶、対処することができる。これら他にも高いＣＰＵ性能を必要としない処理は低クロック動作のＣＰＵ−１で対応することが可能である。
【００５３】
次に、プリンタがスリープモードから待機状態へ復帰する際の２つのＣＰＵコアを制御する処理動作を図３のフローチャートを参照して説明する。
【００５４】
図３においても図２と同様に各々のＣＰＵコアでの処理動作をそれぞれの縦のラインで時系列順に示す。
【００５５】
図３に示す処理は、ＣＰＵ−１がスリープモードから通常動作モードへ復帰する復帰イベントを検出後開始される。復帰イベントは、例えばユーザからの操作パネルへのボタン操作やホストＰＣから送信された印刷ジョブ受信等がある。
【００５６】
Ｓ３０１はＣＰＵ−１からＣＰＵ−２に対して復帰要求割り込みを発行する処理である。ＣＰＵ−１から割り込みコントローラ４１０内の図示しないレジスタへデータを書き込むことで、ＣＰＵ−２を通常動作モードへ復帰させるための割り込みをＣＰＵ−２に対して掛ける。この割り込みが図３内でＳ３０１からの破線の矢印で示されたようにＣＰＵ−２へ通知され、ＣＰＵ−２は、Ｓ４０１で通常動作モードへ復帰する。この処理以降、図３に示すようにＣＰＵ−２は通常動作モードで動作する。
【００５７】
ＣＰＵ−１は、Ｓ３０２でＣＰＵ−２状態レジスタ１０６を読み込み、ＣＰＵ−２がＣＰＵ低消費電力モードから抜けて通常動作モードへ移行するまで待つ。
【００５８】
ＣＰＵ−１は、Ｓ３０３で専用命令を実行することによってＣＰＵ低消費電力モードへ移行する。
【００５９】
ＣＰＵ−２は、Ｓ４０２でＣＰＵ−１がＣＰＵ低消費電力モードに入ったかどうかをＣＰＵ−１状態レジスタ１０５を読み出して判定する。ＣＰＵ−１がＣＰＵ低消費電力モードに入るまで待つ。ＣＰＵ−１がＣＰＵ低消費電力モードに入ると、Ｓ４０３でクロック分周設定レジスタ１０７へ予め定められた値を書き込むことによってＣＰＵ−１の通常動作クロック周波数設定を実行する。Ｓ４０３でクロック分周設定レジスタ１０７の設定が完了するとＣＰＵ−１へ供給されるクロック−１が通常動作モードクロック周波数へ変更される。
【００６０】
次に、Ｓ４０４でＣＰＵ−１へ復帰割り込み要求を発行する。ＣＰＵ−２から割り込みコントローラ４１０内の図示しないレジスタへデータを書き込むことで、ＣＰＵ−１を通常動作モードへ復帰させるための割り込みをＣＰＵ−１に対して掛ける。この割り込みが図３内で破線の矢印で示されたようにＣＰＵ−１へ通知され、ＣＰＵ−１は、Ｓ３０４で通常動作モードへ復帰する。この処理以降、図３に示すようにＣＰＵ−１はプリンタの通常動作モード時に動作するクロック周波数で動作する。
【００６１】
ＣＰＵ−２は、Ｓ４０５でＣＰＵ−１状態レジスタ１０５を読み込み、ＣＰＵ−１がＣＰＵ低消費電力モードから抜けて通常動作モードへ移行するまで待つ。
【００６２】
この処理以降、ＣＰＵ−１，ＣＰＵ−２共に通常動作モード時のクロック周波数で動作し、プリンタは通常動作モードとなる。
【００６３】
上述したように、本実施の形態においては、プリンタのスリープモード時はＣＰＵ−１  １０２は、プリンタの通常動作モード時よりも低い動作周波数で動作し、ＣＰＵ−２  １０３は、ＣＰＵ低消費電力モードへ移行し、ＣＰＵ内部はほぼ停止状態となるので、ＣＰＵコアで消費される電力はＣＰＵ−２では最低限に抑え、ＣＰＵ−１ではスリープモード中に必要な処理能力を残した状態で低減することができるので、スリープモード用に別途マイコンを用意する必要はない。
【００６４】
又、２つのＣＰＵコア間で相互に相手ＣＰＵの動作状態を確認しながらクロック周波数変更、ＣＰＵ動作モード移行を行うので動作クロック周波数の動的な変更に対応していないＣＰＵコアを使って電子機器の待機状態時、本実施の形態では、プリンタのスリープモード時の消費電力低減への対応が可能となる。
【００６５】
尚、本実施の形態では、ＣＰＵブロックに２個のＣＰＵコアを内蔵する例を示したが、本発明はＣＰＵコアの個数が２個に限定されるものではなく、３個以上のＣＰＵコアを内蔵する場合であっても、スリープモード中に１個のＣＰＵが低いクロック周波数で動作するように他のＣＰＵを本実施の形態のＣＰＵ−２と同様に制御することで実現可能である。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施の形態におけるＣＰＵブロックの内部構成を示すブロック図である。
【図２】本発明の実施の形態におけるプリンタのスリープモードへの移行処理動作を示すフローチャートである。
【図３】本発明の実施の形態におけるプリンタの通常動作モードへの復帰処理動作を示すフローチャートである。
【図４】本発明におけるプリンタシステムの構成を示すブロック図である。
【図５】本発明におけるプリンタのコントローラの構成を示すブロック図である。
【符号の説明】
【００６７】
１０１  ＣＰＵブロック
１０２  ＣＰＵコア  ＣＰＵ−１
１０３  ＣＰＵコア  ＣＰＵ−２
１０４  ＣＰＵレジスタブロック
１０５  ＣＰＵ−１状態レジスタ
１０６  ＣＰＵ−２状態レジスタ
１０７  クロック分周設定レジスタ
１０８  クロック発振器
【図１】
2007047966.tif 000003
【図２】
2007047966.tif 000004
【図３】
2007047966.tif 000005
【図４】
2007047966.tif 000006
【図５】
2007047966.tif 000007