(57)【要約】【課題】複数のプロセッサと複数の専用の内蔵メモリを備えた情報処理装置において、より小さな消費電力で省電力動作をすることが可能な技術を提供する。【解決手段】  第１の電力モードと、当該第１の電力モードよりも消費電力が少ない第２の電力モードとを切り替えて動作可能な情報処理装置であって、複数のプロセッサと、複数のプロセッサに対応して設けられた複数のメモリと、複数のプロセッサ及び対応する複数のメモリに供給する電力を制御する電力制御手段とを備え、第２の電力モードで動作する場合に、複数のメモリの各々は、当該メモリに対応するプロセッサが読み込むべきプログラムを記憶し、電力制御手段は、複数のプロセッサのうちのいずれかのプロセッサ及び対応するメモリが動作している場合に、当該プロセッサ及びメモリ以外のプロセッサ及びメモリに対する電力の供給を制限する。【選択図】  図１
2018045310.tif 000002
【特許請求の範囲】
【請求項１】
第１の電力モードと、当該第１の電力モードよりも消費電力が少ない第２の電力モードとを切り替えて動作可能な情報処理装置であって、
複数のプロセッサと、
前記複数のプロセッサに対応して設けられた複数のメモリと、
前記複数のプロセッサ及び対応する前記複数のメモリに供給する電力を制御する電力制御手段と
を備え、
前記第２の電力モードで動作する場合に、
前記複数のメモリの各々は、当該メモリに対応するプロセッサが読み込むべきプログラムを記憶し、
前記電力制御手段は、前記複数のプロセッサのうちのいずれかのプロセッサ及び対応する前記メモリが動作している場合に、当該プロセッサ及びメモリ以外のプロセッサ及びメモリに対する電力の供給を制限する
ことを特徴とする情報処理装置。
【請求項２】
前記第２の電力モードにおいて前記複数のプロセッサが読み込むべきプログラムを記憶する、前記複数のプロセッサがそれぞれアクセスすることが可能な共有メモリをさらに備え、
前記複数のプロセッサの各々は、前記第１の電力モードから前記第２の電力モードへの切り替えに応じて、前記第２の電力モードにおける当該プロセッサの動作を規定するプログラムを前記共有メモリから取得して当該プロセッサに対応する前記メモリに記憶させる
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２の電力モードにおいて、前記複数のプロセッサのうちのいずれかのプロセッサは制御プロセッサとして、イベントの発生に応じて、当該イベントを処理するために前記制御プロセッサを除いた前記複数のプロセッサの動作が必要であるか否かを判定し、
前記制御プロセッサを除いた前記複数のプロセッサの動作が必要であると判定されたときは、前記制御プロセッサを除いた前記複数のプロセッサのうちのいずれかのプロセッサに前記イベントの発生を通知するとともに、当該プロセッサへの電力の供給の開始と前記制御プロセッサへの電力の供給の停止を前記電力制御手段に指示する
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記制御プロセッサを除いた前記複数のプロセッサは処理を行う順序が予め定められており、
前記第２の電力モードにおいて、前記制御プロセッサは、前記イベントを処理するために前記制御プロセッサを除いた前記複数のプロセッサの動作が必要であると判定されたときは、前記制御プロセッサを除いた前記複数のプロセッサのうちの前記順序が最初のプロセッサに前記イベントの発生を通知するとともに、当該プロセッサへの電力の供給の開始を前記電力制御手段に指示する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記イベントの発生が通知された前記プロセッサは、
前記イベントの処理を行い、
前記イベントの処理を行った後に、
前記通知されたプロセッサに後続するプロセッサが存在するときは、当該後続するプロセッサに処理をリレーするとともに、当該後続するプロセッサへの電力の供給の開始と前記通知されたプロセッサへの電力の供給の停止を前記電力制御手段に指示し、
前記通知されたプロセッサに後続するプロセッサが存在しないときは、前記制御プロセッサに通知するとともに、前記制御プロセッサへの電力の供給の開始と前記通知されたプロセッサへの電力の供給の停止を前記電力制御手段に指示する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記イベントの発生が通知された前記プロセッサは、
前記イベントの処理を行い、
前記イベントの処理が完了した場合は、前記通知されたプロセッサに後続するプロセッサの有無に関わらず、前記制御プロセッサに通知するとともに、前記制御プロセッサへの電力の供給の開始と前記通知されたプロセッサへの電力の供給の停止を前記電力制御手段に指示する
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記第２の電力モードにおいて、前記イベントを処理するために必要なプロセッサが判明しているときは、
前記制御プロセッサは、前記順序にかかわらず、当該必要な他のプロセッサに前記イベントの発生を通知するとともに、当該必要なプロセッサへの電力の供給の開始と前記制御プロセッサへの電力の供給の停止を前記電力制御手段に指示し、
前記必要なプロセッサは、前記イベントの処理を完了したことに応じて、前記制御プロセッサに通知するとともに、前記制御プロセッサへの電力の供給の開始と当該必要なプロセッサへの電力の供給の停止を前記電力制御手段に指示する
ことを特徴とする請求項４から６のいずれか１項に記載の情報処理装置。
【請求項８】
前記イベントには、タイマーのタイムアウトと、パケットの受信との少なくともいずれかが含まれることを特徴とする請求項３から７のいずれか１項に記載の情報処理装置。
【請求項９】
前記第２の電力モードにおいて、前記複数のプロセッサのうち同時に動作するプロセッサは１つに制限されることを特徴とする請求項１から８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記第１の電力モードにおいて、
前記複数のプロセッサの実行プログラムがメインメモリに配置され、
前記複数のメモリは、前記実行プログラムを一時的に格納するキャッシュとして機能し、
前記複数のプロセッサは、前記実行プログラムに基づき並列して動作する
ことを特徴とする請求項１から９のいずれか１項に記載の情報処理装置。
【請求項１１】
複数のプロセッサと、当該複数のプロセッサに対応して設けられた複数のメモリを備え、第１の電力モードと、当該第１の電力モードよりも消費電力が少ない第２の電力モードとを切り替えて動作可能な情報処理装置の制御方法であって、
前記第２の電力モードで動作する場合に、
前記複数のメモリの各々は、当該メモリに対応するプロセッサが読み込むべきプログラムを記憶し、
前記複数のプロセッサ及び対応する前記複数のメモリに供給する電力を制御する電力制御手段は、前記複数のプロセッサのうちのいずれかのプロセッサ及び対応する前記メモリが動作している場合に、当該プロセッサ及びメモリ以外のプロセッサ及びメモリに対する電力の供給を制限する
ことを特徴とする情報処理装置の制御方法。
【請求項１２】
コンピュータを請求項１から１０のいずれか１項に記載の情報処理装置が備える各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法、コンピュータプログラムに関する。
【背景技術】
【０００２】
近年、様々な情報処理装置において低消費電力化が求められている。一方で、様々な組み込み機器やＰＣにおいて、処理の高速化が求められており、複数のプロセッサ、あるいは複数のコアを搭載したマルチプロセッサ／マルチコアシステムにより、並列、パイプライン処理を行うことで高速な処理が実現されている。
【０００３】
複数のプロセッサを利用して高速な処理を実現しつつ、消費電力を削減するための構成として、リソースの競合が発生して待ち状態にあるプロセッサの動作周波数を低減する手法が知られている（特許文献１）。この構成では、リソースの競合が発生していない場合には、複数のプロセッサが並列処理ないしパイプライン処理をすることで高速に処理を行い、リソースの競合発生時には動作周波数を低下させることで消費電力を低減させている。
【０００４】
他方で、機器の主要機能が動作していない待ち受け時の消費電力を低減させるために、通常のアプリケーション処理を行う通常モードとは別に、通常モードよりも消費電力を低減させた省電力モードを有する機器が増加している。省電力モード時の動作には様々なものがあるが、機器を構成する一部の回路または装置の動作電圧を低下させたり、あるいは電源の供給を停止することにより、消費電力の低減を図ることが実現されている。これにより、機器の一部機能を利用していない場合や、待機時などにおいて、機器を省電力モードにすることで効果的に消費電力を低減することができる。
【０００５】
省電力モード時における消費電力を低減する構成として、省電力モード時において動作電圧の低いメモリに配置したプログラムを実行し、その他のメモリを省電力の状態にすることが知られている（特許文献２参照）。
【０００６】
これらの従来の構成では、通常モードにおいてはＳＤＲＡＭ等の主記憶に配置されたプログラム及びデータを用いて実行する。そして省電力モード時においては、主記憶にはアクセスせずに、主記憶よりも動作電圧の低いＳＲＡＭ等の内部メモリに配置されたプログラムおよびデータのみを使用して省電力モード用のプログラムを実行する。このように利用するメモリを切り替えて動作することで、省電力モード時における消費電力を低減することができる。ここで、ＳＤＲＡＭとはSynchronous Dynamic Random Access Memoryの略称であり、ＳＲＡＭとはStatic Random Access Memoryの略称である。
【０００７】
一方で、省電力モード時において求められる機能が近年増加してきているだけでなく、益々、消費電力の低減が求められており、今後この傾向は続いていくものとみられる。例えば通信機能を備えた情報処理装置においては、省電力モードにおいて通信機能を維持して外部のリモートコントローラからのネットワーク通信に対する応答を返すことが知られている。また、ネットワーク通信により起動要求を受信したことに応じて、通常モードに復帰することも知られている。このような情報処理装置では、ＩＰｖ４による通信待ち受けに加えてＩＰｖ６による通信待ち受けを行うことが求められている。また省電力モード時に、リモートコントローラからのネットワーク通信に対する応答を返すパケット種別が増加することや、ネットワーク通信での起動要求のパケット種別が増加している。このような機能追加の要求の一方で、エコデザイン指令やENERGY STARに代表される省電力規制は年々厳しくなっている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−０７７６４０号公報
【特許文献２】特開２０００−１０５６３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
省電力動作をさせる場合にＳＤＲＡＭ等の主記憶の電源をオフにして、ＳＲＡＭ等の内部メモリに配置されたプログラムおよびデータのみを使用してプログラムを実行すると、省電力効果を得られる一方で、利用可能なメモリ容量は限られる。
【００１０】
他方で情報処理装置は通常モード中に並列、高速に処理するため複数のプロセッサを保持することが増えている。これらプロセッサは個別にキャッシュ等の専用の内蔵メモリを備えていることが一般的となっている。省電力動作させる場合には並列処理や高速処理が求められないため、１つのプロセッサ処理によりＳＲＡＭ等の内蔵メモリやこれらプロセッサ専用の内蔵メモリにプログラムおよびデータを格納して動作させる。
【００１１】
しかし、機能の増加によって、プログラム及びデータが増大すると内蔵のＳＲＡＭや１つのプロセッサの専用メモリだけでは容量が足りなくなる場合があり得る。そこで複数のプロセッサにまたがった動作において、複数のプロセッサ毎に専用で保持する内蔵メモリを利用することで、メモリ容量を確保することが考えられる。しかし、省電力モード中に複数のプロセッサが動作すると消費電力が増大してしまうだけでなく、パフォーマンスや並列動作が求められていない場合であっても複数のプロセッサが同時に動作することとなる。また、特許文献１の構成のようにリソースが競合している場合に消費電力を低減する手法だと、リソースが競合していない場合は並列実行を求められていない場合でも複数のプロセッサは同時に動作して多く電力を消費してしまう。そのため省電力モード中のようなパフォーマンスを求められていない場合において、無駄に電力を消費してしまっているという課題があった。
【００１２】
本発明は上記課題に鑑みなされたものであり、複数のプロセッサと複数の専用の内蔵メモリを備えた情報処理装置において、より小さな消費電力で省電力動作をすることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明による情報処理装置は以下の構成を備える。即ち、
第１の電力モードと、当該第１の電力モードよりも消費電力が少ない第２の電力モードとを切り替えて動作可能な情報処理装置であって、
複数のプロセッサと、
前記複数のプロセッサに対応して設けられた複数のメモリと、
前記複数のプロセッサ及び対応する前記複数のメモリに供給する電力を制御する電力制御手段と
を備え、
前記第２の電力モードで動作する場合に、
前記複数のメモリの各々は、当該メモリに対応するプロセッサが読み込むべきプログラムを記憶し、
前記電力制御手段は、前記複数のプロセッサのうちのいずれかのプロセッサ及び対応する前記メモリが動作している場合に、当該プロセッサ及びメモリ以外のプロセッサ及びメモリに対する電力の供給を制限する。
【発明の効果】
【００１４】
本発明によれば、複数のプロセッサと複数の専用の内蔵メモリを備えた情報処理装置において、より小さな消費電力で省電力動作をすることが可能である。
【図面の簡単な説明】
【００１５】
【図１】情報処理装置のハードウェア構成を示したブロック図
【図２】情報処理装置の消費電力状態の遷移を示した図
【図３】ＭａｉｎＣＰＵの省電力モード移行処理を示した図
【図４】電力制御部の省電力モード移行処理フローを示した図
【図５】制御プロセッサの省電力モード開始時の処理フローを示した図
【図６】アプリプロセッサの省電力モード開始時の処理フローを示した図
【図７】制御プロセッサの省電力モード動作処理フローを示した図
【図８】制御プロセッサの省電力モード動作終了時の動作フローを示した図
【図９】アプリプロセッサの省電力モード動作処理フローを示した図
【発明を実施するための形態】
【００１６】
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。
【００１７】
＜実施形態１＞
（情報処理装置の構成）
本発明の第一の実施形態（実施形態１）に係る情報処理装置１０１のハードウェア構成の例について図１を用いて説明する。情報処理装置１０１はメインシステム部１０２、ネットワークサブシステム部１０３、電力制御部Ａ１０４を有している。
【００１８】
●ネットワークサブシステム部
ネットワークサブシステム部１０３のローカルバス１１６には、ネットワーク１２２に接続してフレームの送受信を行う通信制御部１０５、ネットワークサブシステム部１０３内の処理における一時記憶装置であるローカルＲＡＭ１０７が接続される。ＲＡＭはRandom Access Memory（書込み可能メモリ）の略称である。またネットワークサブシステム部の処理に関わるプログラム（コンピュータプログラム）を実行するプロセッサＡ１１０、プロセッサＢ１１２、プロセッサＣ１１４が接続される。各プロセッサにはキャッシュや命令ＲＡＭ、データＲＡＭ等で構成される専用メモリＡ１１１、専用メモリＢ１１３、専用メモリＣ１１５が接続される。さらに、ネットワークサブシステム部１０３内に接続されるプロセッサＡ１１０、プロセッサＢ１１２、プロセッサＣ１１４及び、その他各ハードウェアの電力を個別に制御する電力制御部Ｂ１０８が接続される。電力制御部Ｂ１０８は各ハードウェアに対して電源投入制御、ハードウェアリセット制御、ネットワークサブシステム部１０３全体が安全に起動・停止するためのシーケンス制御を行う。また、ネットワークサブシステム部１０３が起動中に、個別にプロセッサＡ１１０、プロセッサＢ１１２、プロセッサＣ１１４及び、その他各ハードウェアのクロックの供給・停止を行う。さらに、ネットワークサブシステム部１０３内の処理におけるタイマー処理を行うタイマー１０９が接続される。
【００１９】
情報処理装置１０１が接続するネットワーク１２２は、通信制御部１０５に接続する。なお、ネットワーク１２２は、例えば有線のイーサネット（登録商標）が想定できるが、無線ネットワークや、光ファイバーネットワークや、あるいは、インターネット等の公衆通信網等であってもよい。また、情報処理装置１０１を操作するリモートコントローラ（リモコン、不図示）は、ネットワーク１２２を介してＴＣＰ／ＩＰプロトコルを用いた通信を行えるものとする。ＴＣＰはTransmission Control Protocolの略称であり、ＩＰはInternet Protocolの略称である。
【００２０】
通信制御部１０５は、ネットワーク１２２に対して伝送フレームの送受信を行う。例えばネットワーク１２２がイーサネット（登録商標）の場合、通信制御部１０５は、イーサネット（登録商標）のＭＡＣ処理（伝送メディア制御処理）や、伝送フレームの送受信を行う。
【００２１】
プロセッサＡ１１０、プロセッサＢ１１２、プロセッサＣ１１４は通常電力モードにおいては、汎用的なＴＣＰ／ＩＰプロトコルの通信処理を行う。より具体的にはＩＰｖ４、ＩＰｖ６、ＩＰｓｅｃ、ＩＣＭＰ、ＵＤＰ、ＴＣＰの各通信処理プロトコル処理や、送信フロー制御や輻輳制御、通信エラー制御等を行う。ＩＣＭＰはInternet Control Message Protocolの略称であり、ＵＤＰはUser Datagram Protocolの略称である。プロセッサによる処理と一部の機能をハードウェアによるアクセラレーションを行う構成としてもよい。これらはそれぞれ独立に電源制御可能な構成とすることが望ましい。これらプロセッサは専用メモリＡ１１１、専用メモリＢ、専用メモリＣをメインシステム部１０２内のＲＡＭ１２０に用意されたプログラムの一次キャッシュとして利用したり、命令ＲＡＭ、データＲＡＭとして利用する。またこれらプロセッサは並列、パイプライン処理により通信処理を高速に実行する。
【００２２】
また、プロセッサＡ１１０、プロセッサＢ１１２、プロセッサＣ１１４は、省電力モード動作においては通常電力モード中に行う処理の一部を、電力を制御しながら逐次処理で順番に処理し、省電力待ち受け処理を行う。さらに、通常電力モードにおいてＭａｉｎＣＰＵ１１８やアプリケーション機能部１１７が行っている処理の一部を処理し、リモートコントローラからの遠隔起動や、代理応答処理、また周期的なパケットの送信処理制御を行う。
【００２３】
ローカルＲＡＭ１０７は、通信制御部１０５やプロセッサＡ１１０、プロセッサＢ１１２、プロセッサＣ１１４の処理におけるデータの一時記憶領域に使用される。また動作時のプログラムの格納領域として用いてもよい。後述するように、ローカルＲＡＭ１０７は、省電力モード状態において複数のプロセッサ１１０、１１２、１１４が読み込むべきプログラムを記憶する、各プロセッサがそれぞれアクセスすることが可能な共有メモリとして機能する。ローカルＲＡＭ１０７はメモリサイズの異なる複数のメモリチップで構成し、必要となるサイズに応じて切り替える構成であってもよい。
【００２４】
ネットワークサブシステム部１０３は、ローカルバス１１６と、メインシステム部１０２のシステムバス１１９との間のデータ転送を可能とするバスブリッジ回路１０６を有する。即ち、ネットワークサブシステム部１０３と、メインシステム部１０２とは、それぞれのバス回路が相互に接続されており、通信データの入出力においてバス間転送が行われる仕組みになっている。
【００２５】
●メインシステム部
メインシステム部１０２のシステムバス１１９には、ＭａｉｎＣＰＵ１１８、システムプログラムが格納されているＲＯＭ１２１、システムソフトウェアやアプリケーションソフトウェアの実行時に使用される一時記憶装置であるＲＡＭ１２０が接続される。ＣＰＵはCentral Processing Unit（中央演算処理装置）の略称であり、ＲＯＭはRead Only Memory（読出し専用メモリ）の略称である。ＲＯＭ１２１からＲＡＭ１２０にソフトウェアプログラムが読み込まれ、通常モード時にＭａｉｎＣＰＵ１１８、ネットワークサブシステム部内のプロセッサＡ１１０、プロセッサＢ１１２、プロセッサＣ１１４によって実行される。
【００２６】
また、同じくシステムバス１１９に接続されているアプリケーション機能部１１７は、情報処理装置１０１の特徴的なアプリケーション機能を実現するために使用するハードウェア処理部を表している。
【００２７】
●電力制御部
電力制御部Ａ１０４は、ネットワークサブシステム部１０３及びメインシステム部１０２の電力供給を独立に制御する電力制御部である。電力制御部Ａ１０４は、各装置に対して、電源投入の制御、ハードウェアリセット制御、さらに情報処理装置１０１全体が安全に起動・停止するためのシーケンス制御を行う。また、電力制御部Ａ１０４は、制御信号線でネットワークサブシステム部１０３及びメインシステム部１０２と接続されており、通常電力状態及び省電力モード状態の各状態のモード移行動作制御を行う。
【００２８】
情報処理装置１０１の主要な機能は、メインシステム部１０２で実現される。また、ＭａｉｎＣＰＵ１１８で実行されるアプリケーションプログラムは、ネットワーク通信を行うことが可能である。アプリケーションによる通信は、ＴＣＰ／ＩＰプロトコルをベースとした通信である。前述のように、このＴＣＰ／ＩＰプロトコル処理は、ネットワークサブシステム部１０３において実行される。
【００２９】
省電力モード状態において電力制御部Ｂ１０８は、複数のプロセッサＡ、Ｂ、Ｃのうちのいずれかのプロセッサ及び対応する専用メモリが動作している場合に、当該プロセッサ及び専用メモリ以外のプロセッサ及び専用メモリに対する電力の供給を制限する。これにより、複数のプロセッサと複数の専用のメモリを備えた構成において、動作に必要な最低限のプロセッサないしメモリにしか電力が供給されないため、省電力化を図ることが可能となる。
【００３０】
（消費電力状態）
上記のような構成を有する情報処理装置１０１は、主要機能が非動作であるアイドル状態において、省電力モード状態に移行することを可能とする。これについて、図２を用いて説明する。図２は、情報処理装置１０１の消費電力状態の遷移図である。
【００３１】
２０１は通常電力状態であり、２０２は省電力モード状態を示す。情報処理装置１０１の主要機能が動作中である間は通常電力状態２０１を維持する（２０３）。通常電力状態２０１では、メインシステム部１０２を含む情報処理装置１０１全体に電力が供給される。通常電力状態２０１において主要機能が実行していないアイドル状態になると、省電力モード状態２０２へ移行することが可能となる。
【００３２】
一方、省電力モード状態２０２は、ネットワークサブシステム部１０３と電力制御部Ａ（省電力モード制御部）１０４にだけ電力が供給される。さらにネットワークサブシステム部１０３は動作モードに応じて、必要となるハードウェア資源にのみ電力を供給するように、電力制御部Ａ１０４によって細かく制御を行う。これにより、省電力モード状態２０２は、通常電力状態よりも消費電力が少ない電力モードとなる。メインシステム部１０２は電源がオフの状態であるため、システムバス１１９、ＭａｉｎＣＰＵ１１８、ＲＡＭ１２０、ＲＯＭ１２１は停止していることになる。省電力モード状態２０２から通常電力状態２０１への切り替えは、例えば、情報処理装置１０１がネットワーク１２２からシステムの起動要求を受信した場合（２０５）である。また電力制御部Ａ１０４には、ユーザから操作可能な外部のスイッチと接続され、スイッチの押下によっても省電力モード状態２０２から通常電力状態２０１への移行を行うようにしてもよい。省電力モード状態２０２は、ユーザの設定やネットワークの使用状況に応じて動作する複数のモードを備える。
【００３３】
（ＭａｉｎＣＰＵの省電力モード移行処理）
ここで図３を用いて通常電力状態２０１から省電力モード状態２０２へ遷移する際の、情報処理装置１０１におけるＭａｉｎＣＰＵ１１８が省電力モードへ移行する処理（省電力モード移行処理）について説明する。図３は、ＭａｉｎＣＰＵ１１８の省電力モード移行処理の処理手順を示すフローチャートである。以下の各ステップは、ＭａｉｎＣＰＵ１１８の制御に基づき実行される。
【００３４】
Ｓ３０１においてＭａｉｎＣＰＵ１１８はメインシステム部１０２の制御によって情報処理装置１０１が省電力モードへ移行してよいことを検知したか否かを判定する。省電力モードへ移行してはならない場合（Ｓ３０１でＮＯ）は通常電力モードの処理を継続し、省電力モードへ移行してよい条件を検知するまで情報処理装置１０１は通常電力モードで動作する。省電力モードへの移行を検知した場合（Ｓ３０１でＹＥＳ）、ＭａｉｎＣＰＵ１１８は省電力モード移行処理を開始し、Ｓ３０２へ進む。
【００３５】
Ｓ３０２においてＭａｉｎＣＰＵ１１８は通常電力モードで実施している処理の停止を行い安全に省電力モードへ移行するための準備を行う。ＭａｉｎＣＰＵ１１８は通信処理を実施するためのソケット等が存在している場合はネットワークサブシステム部１０３に対してソケットの終了指示を行う。そしてネットワークサブシステム部１０３の動作を停止する。またアプリケーション機能部１１７が実施している処理がある場合は、ＭａｉｎＣＰＵ１１８はアプリケーション機能部１１７に対して処理の終了要求を行う。通常電力モードで実施している処理の終了準備が整うとＳ３０３へ進む。
【００３６】
Ｓ３０３において、ＭａｉｎＣＰＵ１１８は省電力モードにおいてネットワークサブシステム部１０３内のプロセッサＡ１１０、プロセッサＢ１１２、プロセッサＣ１１４が実行する省電力モード動作用のファームウェアをＲＯＭ１２１からＲＡＭ１２０に読み込んで、展開する。
【００３７】
Ｓ３０４において、ＭａｉｎＣＰＵ１１８は通常電力モードにおけるシステムの情報を省電力モード動作へ引き継ぐため、ＲＡＭ１２０に格納されたシステム情報をネットワークサブシステム部１０３内のローカルＲＡＭ１０７へ設定する。また、その他省電力モード動作として必要になる省電力モードからの起動条件や省電力モード時にファームウェアが必要とする各種パラメータをローカルＲＡＭ１０７へ設定する。本システム情報には、例えばＩＰアドレスやＭＡＣアドレスといった機器の情報や、起動条件となるパケット種別やポート番号といった情報が含まれる。また、その他省電力モード用ファームウェアがアプリケーション処理に必要となるパラメータや、システムの動的に決定される情報として必要なパラメータ、データ、キャッシュ等を設定する。
【００３８】
Ｓ３０５において、ＭａｉｎＣＰＵ１１８はネットワークサブシステム部１０３の省電力モード用の起動指示を行う。省電力モード中に省電力モード全体の制御プロセッサとして動作させるネットワークサブシステム部１０３内のプロセッサＡ１１０に対して省電力モード用の起動指示を行う。なお、本実施形態ではプロセッサＡ１１０を制御プロセッサとして全体の制御を集約し、アプリプロセッサとしてプロセッサＢ１１２、プロセッサＣ１１４を割り当てる例を説明するが、どのようにソフトウェアを構成してもよい。すなわち、プロセッサＢ１１２又はプロセッサＣ１１４が制御プロセッサとして機能するようにしてもよいし、あるいは、複数のプロセッサが協働して制御プロセッサとして動作するようにしてもよい。ネットワークサブシステム部１０３の起動を行うと、図５及び図６を参照して後述する省電力モード動作の初期化処理が完了するのをＳ３０６にて待ち受ける。ネットワークサブシステム部１０３の省電力モード動作の初期化処理が完了すると（Ｓ３０６でＹＥＳ）Ｓ３０７へ進む。
【００３９】
Ｓ３０７においてＭａｉｎＣＰＵ１１８は電力制御部Ａ１０４に対して省電力モード用の電力低減制御指示を行い、処理を終える。以上のフローで省電力モードへ移行するための処理を行う。
【００４０】
（省電力制御部の省電力モード移行処理）
次に図４を用いて、図３のＳ３０７においてＭａｉｎＣＰＵ１１８から指示を受け付けた電力制御部Ａ１０４が、情報処理装置１０１を省電力モード動作へ移行させるための処理（省電力モード移行処理）について説明する。図４は、電力制御部Ａ１０４の省電力モード移行処理の処理手順を示すフローチャートである。以下の各ステップは、電力制御部Ａ１０４の制御に基づき実行される。
【００４１】
Ｓ４０１において電力制御部Ａ１０４は、ＭａｉｎＣＰＵ１１８、ＲＡＭ１２０、ＲＯＭ１２１、アプリケーション機能部１１７を含むメインシステム部１０２全体の電源を遮断する。
【００４２】
Ｓ４０２において、電力制御部Ａ１０４はネットワークサブシステム部１０３の動作クロックの低減を行う。
【００４３】
次に、Ｓ４０３において、電力制御部Ａ１０４はネットワークサブシステム部１０３内の制御プロセッサとして動作するプロセッサＡ１１０に対して動作の開始指示を行い、処理を終了する。以上のフローで省電力モードへの切り替え処理を行う。
【００４４】
（制御プロセッサの省電力モード開始処理）
次に図５を用いて、制御プロセッサとして動作するプロセッサＡ１１０が、省電力モードを開始する処理（省電力モード開始処理）について説明する。図５は制御プロセッサの省電力モード開始処理の処理手順を示すフローチャートである。図５の処理は、図４のＳ４０３において、プロセッサＡ１１０が電力制御部Ａ１０４から省電力モードの開始指示を受けたことに応じて開始される。以下の各ステップは、プロセッサＡ１１０の制御に基づき実行される。
【００４５】
Ｓ５０１において、プロセッサＡ１１０は省電力モード用ファームウェアのうち制御プロセッサとして動作するプロセッサＡ１１０のプログラム及びデータを、キャッシュ等の専用メモリＡ１１１にプリフェッチする。前述のように、プロセッサＡ１１０が使用するプログラムやデータ、キャッシュ等は、図３のＳ３０４において、ローカルＲＡＭ１０７に設定されている。そこで、Ｓ５０１では、ローカルＲＡＭ１０７からこれらの情報を読み出して、専用メモリＡ１１１にプリフェッチする処理を行う。このようにプロセッサＡ１１０は、通常電力状態２０１から省電力モード状態２０２への切り替えに応じて、省電力モード状態２０２におけるプロセッサＡの動作を規定するプログラムをローカルＲＡＭ１０７から取得して専用メモリＡ１１１に記憶させる。その結果、省電力モード状態においては、制御プロセッサに対応する専用メモリには、制御プロセッサが読み込むべきプログラムが記憶されることになる。この際、プロセッサＡ１１０が実行するプログラムはすべて専用メモリＡ１１１に収まることが望ましいが、収まらない場合はローカルＲＡＭ１０７を一部利用してもよい。その場合、省電力モード中にプログラムのロードが発生する場合はプログラムの読み込み先はローカルＲＡＭ１０７である必要がある。省電力モード用ファームウェアのプリフェッチが完了すると、Ｓ５０２へ進む。
【００４６】
Ｓ５０２では、プロセッサＡ１１０は制御プロセッサ処理の省電力モード初期化処理を行う。これは専用メモリの実行時に使用される記憶領域の初期化処理やプロセッサＡ１１０に関するハードウェアの初期化、制御プロセッサプログラム動作の初期化処理である。
【００４７】
次にＳ５０３において、プロセッサＡ１１０はネットワークサブシステム部１０３全体の省電力モード初期化処理を行う。これはネットワークサブシステム部１０３内のタイマー１０９や、通信制御部１０５、ローカルＲＡＭ１０７、電力制御部Ｂ１０８の省電力モード動作設定、プロセッサ間の同期設定等である。
【００４８】
次にＳ５０４において、プロセッサＡ１１０はアプリプロセッサとして動作するプロセッサＢ１１２、プロセッサＣ１１４へ起動指示を行う。本実施形態では制御プロセッサがアプリプロセッサの起動指示を行う例を説明する。もっとも、プロセッサ間の同期やその他処理の初期化において整合性の取れる手法であれば、省電力モード動作開始指示を行う際に一度に起動指示を行ってもよいし、異なる順序で行ってもよい。
【００４９】
Ｓ５０５において、プロセッサＡ１１０はアプリプロセッサからの同期通知の受信の有無を確認して、全てのアプリプロセッサについて同期が完了したか否かを判定する。図６を参照して後述するように、各アプリプロセッサは、省電力モード開始処理において初期化処理が完了したことを同期通知により制御プロセッサへ通知する。プロセッサＡ１１０は同期が完了していない場合（Ｓ５０５でＮＯ）は完了通知が来るまで待ち、完了している場合（Ｓ５０５でＹＥＳ）はＳ５０６へ進む。
【００５０】
Ｓ５０６において、プロセッサＡ１１０は自プロセッサの電力低減指示を電力制御部Ｂ１０８に対して行い、省電力モード開始指示が電力制御部Ａ１０４から行われるまでプロセッサＡのクロックを停止してＳ５０７で待機する。省電力モード開始指示が電力制御部Ａ１０４から行われると電力制御部Ｂ１０８からクロックの供給が再開され、プロセッサＡ１１０は処理を開始しＳ５０８へ進む。
【００５１】
Ｓ５０８においてプロセッサＡ１１０は省電力モード制御を開始するための処理を行う。これはタイマー１０９の開始指示や、アプリプロセッサ（上記の例ではプロセッサＢ１１２、プロセッサＣ１１４）への開始指示、その他省電力モード動作を開始するにあたっての処理を行う。
【００５２】
そしてＳ５０９へ進んで、プロセッサＡ１１０は制御プロセッサの省電力モード動作を実行する。省電力モード動作の終了指示があると処理を終了する。本動作については図７を用いて後述する。以上のフローで制御プロセッサの省電力モード動作前の初期化等の開始処理を行う。
【００５３】
（アプリプロセッサの省電力モード開始処理）
次に、図６を用いてアプリプロセッサとして動作をするプロセッサＢ１１２及びプロセッサＣ１１４の省電力モード開始処理について説明する。図６は、アプリプロセッサの省電力モード開始処理の処理手順を示すフローチャートである。図６の処理は、図５のＳ５０４において、制御プロセッサがアプリプロセッサに起動指示を行ったことに応じて開始される。また、図６の各ステップは、アプリプロセッサとして動作するプロセッサの制御に基づき実行される。プロセッサＢ１１２の省電力モード開始処理と、プロセッサＣ１１４の省電力モード開始処理とは対象となるプログラムをプリフェッチする部分が異なるのみであるため、ここではプロセッサＢ１１２がアプリプロセッサとして動作する例を説明する。
【００５４】
Ｓ６０１において、アプリプロセッサは省電力モード用ファームウェアのうちアプリプロセッサとして動作するプロセッサＢ１１２のプログラム及びデータをキャッシュ等の専用メモリＢ１１３にプリフェッチする。前述のように、プロセッサＢ１１２が使用するプログラムやデータ、キャッシュ等は、図３のＳ３０４においてローカルＲＡＭ１０７に設定されているので、Ｓ６０１ではローカルＲＡＭ１０７からこれらの情報を読み出してプリフェッチする。このように各アプリプロセッサは、通常電力状態２０１から省電力モード状態２０２への切り替えに応じて、省電力モード状態２０２におけるアプリプロセッサの動作を規定するプログラムをローカルＲＡＭ１０７から取得して対応する専用メモリに記憶させる。その結果、省電力モード状態においては、アプリプロセッサに対応する各専用メモリには、各アプリプロセッサが読み込むべきプログラムが記憶されることになる。この際、動作するプログラムおよびデータはプロセッサＢ１１２用のアプリプロセッサプログラムである。プロセッサＢ１１２が実行するプログラムはすべて専用メモリＢ１１３に収まることが望ましいが、収まらない場合はローカルＲＡＭ１０７を一部利用してもよい。その場合、省電力モード中にプログラムのロードが発生する場合はプログラムの読み込み先はローカルＲＡＭ１０７である必要がある。省電力モード用ファームウェアのプリフェッチが完了するとＳ６０２へ進む。
【００５５】
Ｓ６０２では、アプリプロセッサはアプリプロセッサ処理の省電力モード初期化処理を行う。これは実行時に使用される専用メモリＢ１１３の記憶領域の初期化処理やプロセッサＢ１１２に関するハードウェアの初期化、アプリプロセッサプログラム動作の初期化処理である。
【００５６】
Ｓ６０３において、アプリプロセッサはアプリケーションでの周期時間処理に関する初期化を行う。これは制御プロセッサであるプロセッサＡ１１０へ周期時間を通知する設定も含まれる。ここで、周期時間とは、一定時間おきに所定の処理を行うアプリケーションにおける、処理の実行間隔である。なお通知する手法としては、ローカルＲＡＭ１０７を利用してもよいし、別途プロセッサ間通信を用いてもよい。
【００５７】
次にＳ６０４において、アプリプロセッサはアプリケーションに通知するパケット処理の初期化を行う。本実施形態では図３のＳ３０４において、省電力モードへ移行する際のＭａｉｎＣＰＵ１１８からの設定としてアプリケーション処理を行うパケット種別やポート番号を設定する例を説明したが、本ステップで実施してもよい。
【００５８】
Ｓ６０５において、アプリプロセッサはプロセッサ間の同期のため制御プロセッサであるプロセッサＡ１１０へ初期化処理が完了したことを通知する。なお本実施形態では制御プロセッサにのみ通知を行い同期するようにしたが、他のアプリプロセッサ（例えば、プロセッサＣ１１４）との同期を行ってもよいし、同期をしなくても安全に動作可能であれば同期を行う必要はない。
【００５９】
次にＳ６０６において、アプリプロセッサは自プロセッサの電力低減指示を電力制御部Ｂ１０８に行い、省電力モード開始指示が電力制御部Ａ１０４から行われるまでプロセッサＢ１１２のクロックを停止して、Ｓ６０７で待機する。省電力モード開始指示が電力制御部Ａ１０４から行われると（Ｓ６０６でＹＥＳ）電力制御部Ｂ１０８からクロックの供給が再開され、プロセッサＢ１１２は処理を開始してＳ６０８へ進む。なお、本実施形態では電力制御部Ａ１０４から開始指示を受ける動作例を説明しているが、制御プロセッサとなるプロセッサＡ１１０がアプリプロセッサに対して開始の指示を行ってもよい。
【００６０】
Ｓ６０８では、アプリプロセッサの省電力モード動作を実行する。省電力モード動作の詳細は図９を参照して後述する。
【００６１】
なお、アプリプロセッサは制御プロセッサからの通知により動作を行う。そのため、図５のＳ５０４において開始指示（起動指示）を受け付けた直後には、図９を参照して後述するＳ８０３により、再度、自プロセッサの電力低減制御指示を電力制御部Ｂ１０８に対して行う。これによりアプリプロセッサは省電力モードでの動作中は制御プロセッサからの指示があるまでクロックを停止して待機する。また本実施形態ではアプリプロセッサの開始指示後の開始処理はないが、制御プロセッサ処理同様に、アプリケーションの処理として初期化処理の他に開始指示後に行う処理がある場合は別途ステップを追加してもよい。以上のフローで各アプリプロセッサの省電力モード動作前の初期化等の開始処理を行う。
【００６２】
（制御プロセッサの省電力モード動作処理）
次に省電力モード動作中の制御プロセッサであるプロセッサＡ１１０の動作処理について図７を用いて説明する。図７は、制御プロセッサの省電力モード動作処理の処理手順を示すフローチャートである。以下の各ステップは、制御プロセッサ（上記例ではプロセッサＡ１１０）の制御に基づき実行される。
【００６３】
本実施形態では、制御プロセッサは、イベントの発生に応じて、当該イベントを処理するために制御プロセッサを除いた複数のプロセッサ（アプリプロセッサ）の動作が必要であるか否かを判定する。必要であるときは、いずれかのアプリプロセッサにイベントの発生を通知するとともに、当該プロセッサへの電力の供給の開始と制御プロセッサへの電力の供給の停止を電力制御部Ｂ１０８に指示する。これにより、同時に動作するプロセッサの個数を制限して、消費電力を低減させる。なお、後述するように、イベントには、タイマーのタイムアウトと、パケットの受信との少なくともいずれかが含まれる。
【００６４】
図７において、Ｓ７１６〜Ｓ７２２は、アプリケーションにより所定周期に実行される処理を実行するための処理手順を示している。Ｓ７０８〜Ｓ７１４は、受信パケットが特定アプリケーションを対象としたものである場合に、そのアプリケーションを実行しているアプリプロセッサにパケットを渡して処理を行わせるための処理手順を示している。ここで、アプリプロセッサが処理を完了するまで、制御プロセッサへの電力供給は停止される。Ｓ７０２、Ｓ７０３は、通常動作モードに復帰するための処理手順を示している。
【００６５】
省電力モード動作が開始されると、Ｓ７０１において、制御プロセッサは省電力モード終了の信号を受信して検知しているかを判定する。終了の信号を検知していた場合（Ｓ７０１でＹＥＳ）はＳ７０２へ進み、検知していない場合（Ｓ７０１でＮＯ）はＳ７０４へ進む。ここでは情報処理装置１０１のボタン操作や、ネットワーク１２２を経由してリモコン等による操作等に応じて、省電力モード終了の信号を電力制御部Ａ１０４から受信しているかの確認を行う。
【００６６】
Ｓ７０４において、制御プロセッサは通信制御部１０５に接続されているネットワーク１２２のリンク状態の変化があるかどうかをチェックする。具体的には、例えば、Ｅｔｈｅｒｎｅｔで接続されている場合にネットワーク１２２を介して直接接続される機器とのリンクの状態や、通信リンクスピード等に変化があったかなどの物理層（ＰＨＹ）の状態変化を検知する。なお、本実施形態では省電力モード中に動作するプロセッサはポーリング処理を行う例を想定しているため本ステップで直接状態に変化があったかを確認しているが、割り込み制御により実現してもよいし、通信制御部１０５の制御によって実施してもよい。
【００６７】
次にＳ７０５において、制御プロセッサはネットワーク１２２を介して接続されたリモートコントローラからパケットを受信しているかを確認する。パケットを受信していた場合（Ｓ７０５でＹＥＳ）はＳ７０６へ進み、受信していない場合（Ｓ７０５でＮＯ）はＳ７１６へ進む。なおＳ７０４同様、本実施形態では割り込みによる検知ではなくポーリングによる確認でパケットの受信確認を行ったが、割り込みによる確認であってもよい。
【００６８】
Ｓ７１６において、制御プロセッサはタイマー１０９から時刻情報を取得し、Ｓ７１７においてアプリプロセッサが指定したアプリケーションの周期処理時間が経過しているかを判定する。なお、本実施形態では制御プロセッサであるプロセッサＡ１１０が時間の経過を確認するようにしたが、タイマー１０９からの通知によって周期時間の経過を検知して制御プロセッサに通知するようにしてもよい。また前記と同様にタイマー１０９からの割り込みによって時間の経過を通知してもよい。Ｓ７１７においてアプリプロセッサが指定した時間が経過していた場合（Ｓ７１７でＹＥＳ）はＳ７１８へ進み、経過していない場合（Ｓ７１７でＮＯ）はＳ７２２へ進む。Ｓ７２２においては、すべてのアプリプロセッサ分の周期時間経過確認が完了したかを判定する。チェックが完了していない場合（Ｓ７２２でＮＯ）はＳ７１７へ進み、Ｓ７１７とＳ７２２をすべてのチェックが完了するまで繰り返し実行する。そしてすべてのチェックが完了した場合（Ｓ７２２でＹＥＳ）はＳ７０１へ進む。
【００６９】
以上のように、本実施形態では、Ｓ７０１からＳ７２２の処理を継続的に実行して情報処理装置１０１の省電力モード中のイベントのチェックをポーリングによって行う。
【００７０】
なお、本実施形態では制御プロセッサはポーリング処理を継続するためイベントを検知するまでは動き続ける動作例を説明した。もっとも、ネットワークサブシステム部１０３内の電力制御部Ｂ１０８やハードウェアの支援によりプロセッサＡ１１０がイベントを確認する条件が成立した場合にのみ動作し、その他の時間は電力制御部Ｂ１０８への指示でクロックを停止して待機してもよい。例えば、パケットの受信を通信制御部１０５が検知した場合に電力制御部Ｂ１０８へ通知を行い、これに応じて電力制御部Ｂ１０８がプロセッサＡ１１０へのクロック供給を開始し、プロセッサＡは受信パケットの確認を行うようにしてもよい。また周期時間については、タイマー１０９が最小分解能時間の経過する毎に電力制御部Ｂ１０８に通知を行い、プロセッサＡ１１０へクロックの供給を行うようにしてもよい。その際はプロセッサＡ１１０の制御によって自プロセッサの動作停止指示を電力制御部Ｂ１０８に行うようにしてもよいし、一つの要因でクロック供給を行った場合、該当のイベントの確認を行ったら再度クロックの停止を指示してもよい。このように省電力モード中に動作するハードウェアの支援によってイベントの検知漏れがないように動作可能であれば、プロセッサＡ１１０のクロックを供給し続けて動作を継続しなくてもよい。
【００７１】
次に、各イベントを検知した場合の処理手順について説明する。まずＳ７０１において省電力モード終了を検知した場合（Ｓ７０１でＹＥＳ）、Ｓ７０２において、省電力モード終了に至った要因の情報をローカルＲＡＭ１０７へ書き込む。この終了要因の情報は、通常電力モードへの復帰の際に、電力制御部Ａ１０４やＭａｉｎＣＰＵ１１８、アプリケーション機能部がローカルＲＡＭ１０７から読み出し、通常電力モード開始時における処理の判定に利用することができる。そしてＳ７０３において、制御プロセッサの省電力モード終了処理を行い、処理を終える。ここで図８を用いてＳ７０３における制御プロセッサの省電力モード終了処理について説明する。図８は、制御プロセッサが省電力モードを終了する処理の手順を示すフローチャートである。以下の各ステップは、制御プロセッサ（上記例ではプロセッサＡ１１０）の制御に基づき実行される。
【００７２】
Ｓ９０１において、制御プロセッサはアプリプロセッサへ省電力モードの終了通知を行う。これによって安全にアプリプロセッサであるプロセッサＢ、プロセッサＣが終了できるように制御を行う。なお、本通知はすべてのプロセッサＢ、プロセッサＣへ一度に行ってもよいし、順次行ってもよく、安全に通常電力モードへ移行できるフローであればよい。
【００７３】
次にＳ９０２において、制御プロセッサの動作の終了処理を行う。これはネットワークサブシステム部１０３内のハードウェアの停止処理や、制御プロセッサプログラムの終了処理である。
【００７４】
次にＳ９０３において、制御プロセッサは省電力モードの終了通知を行った全てのアプリプロセッサ（上記の例では、プロセッサＢ、プロセッサＣ）から終了処理が完了した通知が来ているかを判定し、通知が来るまで待機する。これによって安全に省電力モードが終了できるように同期処理を行う。全てのプロセッサから完了通知を受け取ったことを確認すると（Ｓ９０３でＹＥＳ）Ｓ９０４へ進む。なお完了通知はどのような手法によって行ってもよく、例えば、ローカルＲＡＭ１０７を用いて通知を行ってもよいし、プロセッサに通知のためのキューを備えてもよいし、その他にネットワークサブシステム部１０３内のハードウェアの支援を受けてもよい。
【００７５】
そしてＳ９０４において、制御プロセッサは通常モード用の電力供給制御指示を電力制御部Ａ１０４に対して行い、処理を終了する。これに応じて、電力制御部Ａ１０４はメインシステム部１０２を起動して、省電力モード状態２０２から通常電力状態２０１へ移行する処理を行う。通常電力状態２０１においては、メインメモリとしてのＲＡＭ１２０に配置された実行プログラムに基づき、複数のプロセッサ１１０、１１２、１１４は動作することができる。例えば、専用メモリＡ、Ｂ、Ｃは、実行プログラムを一時的に格納するキャッシュとして機能し、複数のプロセッサは、実行プログラムに基づき並列して動作するようにしてもよい。これにより、通常電力状態２０１においては、高速な演算処理を実行することが可能となる。
【００７６】
一方、Ｓ７０５において制御プロセッサがパケットの受信を検知した場合（Ｓ７０５でＹＥＳ）、Ｓ７０６へ進む。Ｓ７０６において、受信パケットのプロトコル処理を行う。具体的には、本処理では、制御プロセッサが、受信したパケットを通信制御部１０５からローカルＲＡＭ１０７へ取り出して、ヘッダを解析し、パケットの整合性の確認を行うことや、自装置宛であるかを確認する。またＡＲＰやＰｉｎｇ、ＩＣＭＰｖ６による問い合わせであった場合は、応答するパケット生成し、リモートコントローラに対してネットワーク１２２を介して送信する。
【００７７】
次に、Ｓ７０７において、制御プロセッサは受信パケットに対してまだ処理の継続が必要かを判定し、処理の継続が不要であった場合（Ｓ７０７でＮＯ）はＳ７１５においてパケットを破棄してＳ７１６へ進む。処理の継続が必要であった場合（Ｓ７０７でＹＥＳ）はＳ７０８へ進む。
【００７８】
Ｓ７０８では、制御プロセッサは受信したパケットが省電力モード移行時にＭａｉｎＣＰＵ１１８により設定したパケットの種別ないしポート番号であるかを確認して判定する。通常電力モードへ復帰する要因となるパケットであった場合（Ｓ７０８でＹＥＳ）はＳ７０２へ進み、受信パケットを保持するとともに復帰要因をローカルＲＡＭに記録して、情報処理装置１０１は通常電力モードへの復帰処理を行う。復帰要因のパケットではなかった場合（Ｓ７０８でＮＯ）は、Ｓ７０９へ進む。
【００７９】
Ｓ７０９においては、制御プロセッサはアプリケーションに通知を行うパケット（アプリプロセッサ通知パケット）であるかを判定する。本処理では省電力モード移行時にＭａｉｎＣＰＵによって設定した条件またはアプリプロセッサの初期化処理によって設定した条件に該当するかを判定して、アプリプロセッサ通知パケットに該当するかを判定する。該当する場合（Ｓ７０９でＹＥＳ）はＳ７１０へ進み、該当しない場合（Ｓ７０９でＮＯ）はＳ７１５へ進み受信パケットを破棄する。
【００８０】
一方、Ｓ７１０〜Ｓ７１４では、制御プロセッサが、アプリプロセッサに処理を行わせる処理を行う。本実施形態では、アプリプロセッサには、処理を行う順序が予め割り当てられている。制御プロセッサは、最初の順番のアプリプロセッサに処理権限を渡して、制御プロセッサへの電力供給を停止させる。アプリプロセッサの処理が終了したら、制御プロセッサへの電力供給を再開して、処理可能な状態に戻る。これにより、同時に電力を供給するプロセッサの数を制限して、省電力化を可能にする。
【００８１】
Ｓ７１０において、制御プロセッサは、まず、受信パケットの処理をアプリプロセッサ処理に受け渡すため、あらかじめ決められたアプリプロセッサの処理順序が最初のアプリプロセッサへパケット受信通知を送信する。本実施形態では最初にプロセッサＢへ通知を行う例を説明する。なお、受信パケットの受け渡しは、ローカルＲＡＭ１０７に格納されたままアドレス情報のみを受け渡すなど、プロセッサＢへパケットを受け渡せるならばどのような手法を用いて行ってもよい。また受信パケット処理通知のイベント通知はローカルＲＡＭ１０７を介して行ってもよいし、プロセッサにあらかじめキューを備えておき、そのキューを介して行ってもよい。このように、イベントを通知できるならばどのような手法を用いても構わない。
【００８２】
次に、制御プロセッサは、Ｓ７１１においてパケット受信通知を行うプロセッサＢ１１２の動作を開始するためのクロック供給指示を電力制御部Ｂ１０８に対して行うとともに、Ｓ７１２において自プロセッサの動作停止指示を行う。このようにしてプロセッサＢ１１２のクロック供給を開始する場合はプロセッサＡ１１０のクロック停止を行い、同時に動作するプロセッサ数を制限するように制御する。そのため、無駄な電力消費を低減することができる。なお本実施形態では、受信パケットの処理をどのアプリプロセッサで実施してもよいように、各アプリプロセッサに順番にパケットの受信通知を受け渡していくようにした例を説明しているが、これに限られない。例えば、あらかじめ受信パケット種別に応じてどのプロセッサが処理する必要があるかが判明している場合は、直接その特定のアプリプロセッサへ通知するようにしてもよい。例えばプロセッサＢ１１２はＩＰｖ６パケットの処理を行い、プロセッサＣ１１４はＩＰｖ４パケットの処理をするといったように、ＩＰのバージョンごとに処理をするアプリプロセッサを定めておくことが考えられる。このような場合は、パケットのＩＰバージョンを確認して、そのバージョンに対応するアプリプロセッサへ直接受信通知を行うようにしてもよい。そして、処理を行った特定のアプリプロセッサは、イベントの処理を完了したことに応じて、制御プロセッサに通知するとともに、制御プロセッサへの電力の供給の開始と当該アプリプロセッサへの電力の供給の停止を電力制御部Ｂ１０８に指示する。
【００８３】
また、アプリプロセッサごとに役割が予め定められている場合でもパケット受信通知を順番に受け渡していき、アプリプロセッサにおける判定によって次のプロセッサへ受け渡すか自身で処理するかをアプリプロセッサが判定するようにしてもよい。例えば、プロセッサＢはＩＰｖ６パケットを処理し、プロセッサＣはＩＰｖ４パケットを処理するように役割が定められている場合も、アプリプロセッサへ順にパケット受信通知を送信してもよい。
【００８４】
また、本実施形態では、順番に処理を通知していくため、受信パケット処理の順序にプロセッサＢとプロセッサＣの前後関係がある場合は、優先順位の高いプロセッサに先に通知が行くようにプログラムを配置する。もっとも、アプリプロセッサ間の連携によって処理を行き来させて、複数のアプリプロセッサが処理を分担して実行するようにしてもよい。
【００８５】
次にＳ７１３において、制御プロセッサは受信パケットの処理完了通知をアプリプロセッサから受信するまで待機する。その際、完了通知と合わせてクロックの供給も再開するように制御するため、実際は本ステップでは動作を停止して待ち受けていることとなる。なお、受信パケットについて、プロセッサＢ１１２、プロセッサＣ１１４へと順番に通知する処理を行うため、その場合はプロセッサＣ１１４から完了通知が行われる。但し、プロセッサＢ１１２で処理が完結した場合は、プロセッサＢ１１２から完了通知が行われることとなる。完了通知を受信すると（Ｓ７１３でＹＥＳ）、Ｓ７１４へ進む。
【００８６】
Ｓ７１４において、制御プロセッサは、アプリプロセッサからの完了通知情報を確認し、アプリプロセッサの処理によって通常電力モードへ復帰する必要があるかを判定する。例えば、アプリプロセッサの処理の結果負荷が大きい処理を行う必要が生じた場合、省電力モード中に処理を完結できない場合、省電力モード中に動作可能なハードウェアだけでは処理を完結できない場合等は、通常電力モードに復帰する必要があると判定する。通常電力モードへ復帰する場合（Ｓ７１４でＹＥＳ）はＳ７０２へ進み、復帰しない場合（Ｓ７１４でＮＯ）はＳ７１５へ進む。
【００８７】
一方、Ｓ７１７において制御プロセッサがアプリプロセッサの周期処理時間の経過を検知した場合（Ｓ７１７でＹＥＳ）はＳ７１８へ進み、周期経過を検知したアプリプロセッサへ周期イベント処理通知を行う。次に、Ｓ７１９において、制御プロセッサは周期イベント処理通知を行ったプロセッサの動作開始のために、クロック供給開始指示を電力制御部Ｂ１０８に行う。次に、Ｓ７２０において、制御プロセッサは自プロセッサのクロック停止指示を電力制御部Ｂ１０８へ行う。このようにして、他のプロセッサのクロック供給を開始する場合はプロセッサＡのクロック停止を行い、同時に動作するプロセッサ数を制限するように制御を行う。これにより消費電力を低減することができる。
【００８８】
次にＳ７２１において制御プロセッサは周期処理完了通知をアプリプロセッサから受信するまで待機する。その際、完了通知と合わせてクロックの供給も再開されるように制御するため、実際は本ステップでは動作を停止して待ち受けていることとなる。クロック供給が再開して周期処理完了通知を受け取ると（Ｓ７２１でＹＥＳ）Ｓ７２２へ進む。
【００８９】
本実施形態ではこのようにして周期イベントのアプリプロセッサ通知を行う。そのため複数のプロセッサで同時に周期イベント時間が経過した場合は、プロセッサＢへ通知を行った後、プロセッサＡが完了を検知し、その後プロセッサＣへ処理通知を行うというフローとなる。したがって、プロセッサＢとプロセッサＣの処理の順序が予め定められている場合はその順序どおりになるようにプログラムを配置するか、優先順位を付けて通知を行えるようにしてもよい。また、ひとつの周期イベント処理が複数のプロセッサにまたがって行うプログラムであった場合、複数のアプリプロセッサ間の連携によって処理を行うようにしてもよい。
【００９０】
以上、本実施形態では制御プロセッサによって情報処理装置１０１の省電力動作中の制御フローを示したが、省電力動作可能に同時動作するプロセッサを制限するように制御できるフローであればよい。
【００９１】
（アプリプロセッサの省電力モード動作処理）
次に図９を用いて、アプリプロセッサであるプロセッサＢ及びプロセッサＣの省電力モード動作処理について説明する。図９はアプリプロセッサの省電力モード動作処理の処理手順を示すフローチャートである。以下の各ステップは、アプリプロセッサの制御に基づき実行される。
【００９２】
Ｓ８０１において、アプリプロセッサは省電力モード終了通知を受信したかを判定する。終了通知を検知した場合（Ｓ８０１でＹＥＳ）はＳ８０２へ進み、検知していない場合（Ｓ８０１でＮＯ）はＳ８０３へ進む。
【００９３】
Ｓ８０３においては、アプリプロセッサは自プロセッサの電力低減制御が可能かを判定する。低減制御が可能な場合（Ｓ８０３でＹＥＳ）はＳ８０４へ進み、低減制御できない場合（Ｓ８０３でＮＯ）はＳ８０５へ進む。
【００９４】
Ｓ８０５においては、アプリプロセッサは周知イベント通知を受信したかを判定する。周期イベント通知を受信していた場合（Ｓ８０５でＹＥＳ）はＳ８０６へ進み、受信していない場合（Ｓ８０５でＮＯ）はＳ８０９へ進む。
【００９５】
Ｓ８０９においては、アプリプロセッサは受信パケット処理通知を制御プロセッサから受信して検知したか否かを判定する。受信パケット処理通知を検知している場合（Ｓ８０９でＹＥＳ）はＳ８１０へ進み、検知していない場合（Ｓ８０９でＮＯ）はＳ８０１へ進む。
【００９６】
このようにＳ８０１からＳ８０９のポーリング処理を行うが、実際はクロックを停止して待ち受けているため、いずれかのイベント通知が来た場合にのみポーリングによる確認を行う。
【００９７】
アプリプロセッサは省電力モード終了を検知すると（Ｓ８０１でＹＥＳ）Ｓ８０２へ進み、アプリプロセッサの省電力モード終了処理を行い、処理を終える。本ステップでは安全に通常電力モードへ移行するためのプロセッサの終了処理を行う。
【００９８】
一方、Ｓ８０３でアプリプロセッサは自プロセッサの電力低減制御可能と判断すると（Ｓ８０３でＹＥＳ）、Ｓ８０４において、電力制御部Ｂ１０８に対して自プロセッサのクロックを停止するための指示を行う。本実施形態では本ステップで電力低減制御を行う例を説明しているが、他のプロセッサへの通知を行い、通知を行ったプロセッサのクロック供給の開始を指示すると同時に行うようにしてもよい。このように、同時で動作するプロセッサ数を制限できるように制御できるならば、どのような手法を用いても構わない。
【００９９】
Ｓ８０５においてアプリプロセッサは周期イベント通知を検知すると（Ｓ８０５でＹＥＳ）、Ｓ８０６において、アプリケーション処理によって周期イベント処理を行う。具体的には、本処理では、一定時間ごとにリモートコントローラへパケットを送信したり、アプリケーションの状態を更新するといった処理を行う。また、その他一定時間ごとに必要なアプリケーションの処理を実施する。
【０１００】
次に、Ｓ８０７においてアプリプロセッサは制御プロセッサであるプロセッサＡ１１０へ周期イベントの完了通知を行い、Ｓ８０８において電力制御部ＢへプロセッサＡ１１０のクロック供給開始を行う。その後、本フローではＳ８０９、Ｓ８０１の確認を行った後にＳ８０３での判定を経由して、Ｓ８０４で自プロセッサの電力低減指示を行う。本実施形態ではこのようなフローとしたが、Ｓ８０８と同時に電力低減処理を行うようにしてもよい。
【０１０１】
一方、Ｓ８０９においてアプリプロセッサはパケット受信処理を検知すると（Ｓ８０９でＹＥＳ）、Ｓ８１０において受信パケットの処理を行う。具体的には、本ステップではアプリケーション処理における応答パケットの送信や、リモートコントローラからの指示による状態の更新処理、また通常電力モードへ復帰するためのアプリケーション処理を行う。なお、本実施形態では同時に動作するプロセッサを制限しているため、他のプロセッサがパケットを送受信しているという状況を想定しなくて済むため、通信制御部１０５へのパケット転送の排他制御は不要である。
【０１０２】
次に、Ｓ８１１においてアプリプロセッサはアプリケーション処理がすべて完了しているかを判定する。完了している場合（Ｓ８１１でＹＥＳ）はＳ８１３へ進み、後続するアプリプロセッサの有無に関わらず制御プロセッサへパケット受信処理完了通知を行う。完了していない場合（Ｓ８１１でＮＯ）は、Ｓ８１２へ進み、後続のアプリプロセッサへパケット受信処理をリレーする。本実施形態ではプロセッサＢ１１２、プロセッサＣ１１４の順に処理を行った場合、プロセッサＢ１１２において後続の処理がある場合は、プロセッサＣ１１４へ通知する。他方、プロセッサＣ１１４は後続のプロセッサが存在しないため、プロセッサＡへ通知を行う。またプロセッサＢ１１２でアプリケーション処理が完了した場合は、プロセッサＣへは通知を行わずプロセッサＡへ通知を行う。なお、アプリケーション処理が完了している場合でも、必ずすべてのプロセッサへ通知を行うようにしてもよい。Ｓ８１２またはＳ８１３において通知を行うとＳ８１４において通知を行ったプロセッサの電力供給制御指示を電力制御部Ｂ１０８に対して行い、Ｓ８０１、Ｓ８０３を経由して、Ｓ８０４において自プロセッサの電力低減制御指示を行う。
以上のフローでアプリケーションプロセッサの省電力モード中の動作を行う。
【０１０３】
なお、本実施形態ではアプリプロセッサとして動作を行うプロセッサはプロセッサＢ、プロセッサＣとして説明したが、制御プロセッサとして動作を行うプロセッサＡが自らアプリケーション処理も行うようにしてもよい。また、プロセッサの個数は本実施形態の個数である必要はなく、省電力モード中の動作を分割して各プロセッサに配置し、同時に動作するプロセッサ数をプログラム制御で明示的に制限をして消費電力を抑える構成であればよい。
【０１０４】
本実施形態によれば、情報処理装置１０１において省電力モード動作において大部分のハードウェアの電源供給を遮断することで消費電力を削減する。また複数のプロセッサで処理を分割して動作し、同時に動作するプロセッサを制限して動作する。すなわち、各プロセッサが保持している専用メモリに省電力モード中のプログラムを配置して動作することでプログラム領域を確保するとともに、同時に動作するプロセッサを制限する。これにより、複数のプロセッサにまたがった動作でも消費電力を抑えることができる。また複数のプロセッサで動作する場合でもリソースの排他制御が不要となり、１つのプロセッサ処理を行っている場合に他のプロセッサによるリソースの競合を意識した実装が不要となる。このようにして消費電力を低減しつつ、リソースを有効に活用して動作可能となる。
【０１０５】
また、パケット受信時にアプリプロセッサに順次処理を受け渡していくことで、どのプロセッサに処理を配置しても処理が可能となる。また順次通知していく中で処理が完了した場合は、すべてのアプリプロセッサへ順次通知する前に制御プロセッサに完了通知をすることで効率的に処理が可能となる。同様に周期時間が経過すると該当のアプリプロセッサに直接通知を行うことで、どのプロセッサが処理するか判明している場合にはプロセッサ間の受け渡しを削減でき効率的に処理が可能となる。
【０１０６】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０７】
１０１：マルチプロセッサシステム、１０２：メインシステム部、１０３：ネットワークサブシステム部、１０４：電力制御部Ａ、１０５：通信制御部、１０６：バスブリッジ、１０７：ローカルＲＡＭ、１０８：電力制御部Ｂ、１０９：タイマー、１１０：プロセッサＡ、１１１：専用メモリＡ、１１２：プロセッサＢ、１１３：専用メモリＢ、１１４：プロセッサＣ、１１５：専用メモリＣ、１１６：ローカルバス
【図１】
2018045310.tif 000003
【図２】
2018045310.tif 000004
【図３】
2018045310.tif 000005
【図４】
2018045310.tif 000006
【図５】
2018045310.tif 000007
【図６】
2018045310.tif 000008
【図７】
2018045310.tif 000009
【図８】
2018045310.tif 000010
【図９】
2018045310.tif 000011