(57)【要約】【課題】メインシステムとサブシステムとから構成されるマルチプロセッサ／マルチコアシステムにおいて、省電力モード時にオフされるメモリが共有メモリである場合にも、安全に省電力／通常モードに移行する。【解決手段】システムが省電力／通常モードに状態遷移する際に、サブシステムはメインシステムからの状態遷移する通知を受信し、共有メモリへのアクセスを停止／開始を切り替え、メインシステムに状態遷移した通知を送信する。【選択図】  図１
2010079729.tif 000002
【特許請求の範囲】
【請求項１】
メインシステムと、
サブシステムと、
前記メインシステムと前記サブシステムとの間の通信を中継する中継手段と、
前記メインシステムと前記サブシステムとがアクセスする第１の共有メモリと、
前記メインシステムと前記サブシステムとがアクセスする第２の共有メモリと、
を備え、
第１のモードにおいて前記メインシステムと前記サブシステムとが前記第１の共有メモリにアクセスし、第２のモードにおいて、前記第１の共有メモリの消費電力を低下させ前記メインシステムと前記サブシステムとが前記第２の共有メモリにアクセスする情報処理システムあって、
前記メインシステムが、
前記第１のモードから前記第２のモードへの切り替えを行う場合、該切替をサブシステムに通知する通知手段と、
該通知に対する前記サブシステムからの応答を受信する第１の受信手段と、
前記第２のモードに移行する際に、前記第１の共有メモリの消費電力を低下させる制御を行うメモリ制御手段と
を備え、
前記サブシステムが、
前記メインシステムからの第１のモードから前記第２のモードへの前記切替の通知を受信する第２の受信手段と、
前記通知に応じて、アクセス先を前記第１の共有メモリから前記第２の共有メモリへ切り替える制御を行う切替制御手段と、
前記アクセス先を切り替える制御が完了した後、前記通知に対する応答を前記メインシステムに送信する送信手段と
を備えることを特徴とする情報処理システム。
【請求項２】
前記サブシステムが、
前記第２のモードから前記第１のモードへ復帰すべきか否かを判定する判定手段をさらに備え、
前記送信手段は、前記判定手段が前記第１のモードへ復帰すべきと判定した場合に、前記メインシステムに復帰要求を送信することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記サブシステムが、
外部装置と通信するための通信手段をさらに備え、
前記判定手段が、前記通信手段で受信したデータに基づいて、前記第２のモードから前記第１のモードへ復帰すべきか否かを判定することを特徴とする請求項２に記載の情報処理システム。
【請求項４】
前記メインシステムでは、前記第１の受信手段が前記復帰要求を前記サブシステムから受信すると、前記メモリ制御手段は前記第１の共有メモリを前記消費電力を低下させた状態から通常の動作状態に復帰させ、前記通知手段が、前記通常の動作状態への復帰を前記サブシステムに通知し、
前記サブシステムでは、前記復帰の通知に応じて、前記切替制御手段が、アクセス先を前記第２の共有メモリから前記第１の共有メモリへ切り替えることを特徴とする請求項２または３に記載の情報処理システム。
【請求項５】
メインシステムと、
サブシステムと、
前記メインシステムと前記サブシステムとの間の通信を中継する中継手段と、
前記メインシステムと前記サブシステムとがアクセスする第１の共有メモリと、
前記メインシステムと前記サブシステムとがアクセスする第２の共有メモリと
を備え、
第１のモードにおいて前記メインシステムと前記サブシステムとが前記第１の共有メモリにアクセスし、第２のモードにおいて、前記第１の共有メモリの消費電力を低下させ前記メインシステムと前記サブシステムとが前記第２の共有メモリにアクセスする情報処理システムの制御方法であって、
前記メインシステムにおいて、
前記第１のモードから前記第２のモードへの切り替えを行う場合、該切替をサブシステムに通知する工程と、
該通知に対する前記サブシステムからの応答を受信する工程と、
前記第２のモードに移行する際に、前記第１の共有メモリの消費電力を低下させる制御を行う工程と、
前記サブシステムにおいて、
前記メインシステムからの第１のモードから前記第２のモードへの前記切替の通知を受信する工程と、
前記通知に応じて、アクセス先を前記第１の共有メモリから前記第２の共有メモリへ切り替える制御を行う工程と、
前記アクセス先を切り替える制御が完了した後、前記通知に対する応答を前記メインシステムに送信する工程と
を備えることを特徴とする情報処理システムの制御方法。
【請求項６】
前記サブシステムにおいて、
前記第２のモードから前記第１のモードへ復帰すべきか否かを判定する工程と、
前記第１のモードへ復帰すべきと判定された場合に、前記メインシステムに復帰要求を送信する工程と
をさらに備えることを特徴とする請求項５に記載の情報処理システムの制御方法。
【請求項７】
前記サブシステムにおいて、外部装置と通信する通信工程をさらに備え、
前記判定工程では、前記通信工程で受信したデータに基づいて、前記第２のモードから前記第１のモードへ復帰すべきか否かを判定することを特徴とする請求項６に記載の情報処理システム。
【請求項８】
前記メインシステムにおいて、
前記復帰要求を前記サブシステムから受信する工程と、
前記復帰要求の受信に応じて、前記第１の共有メモリを前記消費電力を低下させた状態から通常の動作状態に復帰させる工程と、
前記通常の動作状態への復帰を前記サブシステムに通知する工程と、
前記サブシステムにおいて、
前記復帰の通知に応じて、アクセス先を前記第２の共有メモリから前記第１の共有メモリへ切り替える工程と
をさらに備えることを特徴とする請求項６又は７に記載の情報処理システムの制御方法。
【請求項９】
メインシステムと、サブシステムと、前記メインシステムと前記サブシステムとの間の通信を中継する中継手段と、前記メインシステムと前記サブシステムとがアクセスする第１の共有メモリと、前記メインシステムと前記サブシステムとがアクセスする第２の共有メモリとを備える情報処理システムに請求項５乃至８のいずれか１項に記載の方法を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム及びその制御方法、並びに、コンピュータプログラムに関する。
【背景技術】
【０００２】
近年、様々な情報処理機器において低消費電力化が求められている。そこで機器の消費電力を低減させるために、通常のアプリケーション処理を行う通常モードとは別に、通常モードよりも消費電力を低減させた省電力モードを有する機器が増加している。
【０００３】
省電力モード時の動作には様々なものがあるが、一般に、機器を構成する一部の回路、装置の動作電圧を低下、あるいは電源の供給を停止することにより消費電力の低減を図る。これにより、機器の一部機能を利用していない場合や、待機時などにおいて、機器を省電力モードにすることによって効果的に消費電力を低減することができる。
【０００４】
省電力モード時における消費電力を低減する技術として、省電力モード時において動作電圧の低いＳＲＡＭに配置したプログラムを実行し、その他のメモリを省電力の状態にするものが提案されている（特許文献１、特許文献２を参照）。
【０００５】
これらの提案技術では、通常モード時においてはＳＤＲＡＭに配置されたプログラムおよびデータを用いて実行する。そして省電力モード時においては、ＳＤＲＡＭにはアクセスせずに、ＳＤＲＡＭよりも動作電圧の低いＳＲＡＭに配置されたプログラムおよびデータのみを使用して省電力モード用のプログラムを実行する。これにより、ＳＤＲＡＭをセルフ・リフレッシュのような省電力状態にできるため、省電力モード時における消費電力を低減することができる。
【０００６】
一方で、様々な組込機器やＰＣにおいて、複数のプロセッサ、あるいは複数のコアを搭載したマルチプロセッサ／マルチコアシステムが近年増加してきており、今後この傾向は加速していくものとみられる。このようなマルチプロセッサ／マルチコアシステムにおいても、低消費電力化が求められている。
【特許文献１】特開２０００−１０５６３９号公報
【特許文献２】特開２００５−１１１７１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
共有メモリを持つマルチプロセッサ／マルチコアシステムでは、複数のプロセッサ／コアから共有メモリに対してアクセスが行われる。そのため、省電力モード時に共有メモリを省電力状態にする場合、省電力モード移行時に全てのプロセッサ／コアからの共有メモリへのアクセスを停止した後で省電力状態にする必要がある。共有メモリへのアクセスを停止していないプロセッサ／コアがあった場合、共有メモリに対しての不正なアクセスやデータの不整合が発生し、システムが正常に動作しなくなる虞がある。
【０００８】
さらに、省電力モードから通常モードに復帰する際においても、共有メモリを通常状態にした後に、各プロセッサ／コアは共有メモリへのアクセスを開始しなくてはならない。
【０００９】
そこで、マルチプロセッサ／マルチコアシステムにおいて、省電力モードに移行する際、あるいは通常モードに復帰する際に、共有メモリへのアクセスを安全に停止／開始する省電力モード制御が求められる。
【課題を解決するための手段】
【００１０】
そこで上記問題を解決するための本発明は、
メインシステムと、
サブシステムと、
前記メインシステムと前記サブシステムとの間の通信を中継する中継手段と、
前記メインシステムと前記サブシステムとがアクセスする第１の共有メモリと、
前記メインシステムと前記サブシステムとがアクセスする第２の共有メモリと、
を備え、
第１のモードにおいて前記メインシステムと前記サブシステムとが前記第１の共有メモリにアクセスし、第２のモードにおいて、前記第１の共有メモリの消費電力を低下させ前記メインシステムと前記サブシステムとが前記第２の共有メモリにアクセスする情報処理システムあって、
前記メインシステムが、
前記第１のモードから前記第２のモードへの切り替えを行う場合、該切替をサブシステムに通知する通知手段と、
該通知に対する前記サブシステムからの応答を受信する第１の受信手段と、
前記第２のモードに移行する際に、前記第１の共有メモリの消費電力を低下させる制御を行うメモリ制御手段と
を備え、
前記サブシステムが、
前記メインシステムからの第１のモードから前記第２のモードへの前記切替の通知を受信する第２の受信手段と、
前記通知に応じて、アクセス先を前記第１の共有メモリから前記第２の共有メモリへ切り替える制御を行う切替制御手段と、
前記アクセス先を切り替える制御が完了した後、前記通知に対する応答を前記メインシステムに送信する送信手段と
を備える。
【発明の効果】
【００１１】
本発明によれば、マルチプロセッサ／マルチコアシステムにおいて、省電力モードに移行する際、あるいは通常モードに復帰する際に、共有メモリへのアクセスを安全に停止／開始する省電力モード制御を提供することができる。
【発明を実施するための最良の形態】
【００１２】
＜実施形態１＞
本発明の実施形態１における情報処理システムの構成図を図１に示す。図１において、情報処理システム１０１はメインシステム１０２、サブシステム１０３、ＳＤＲＡＭ１０４、ＣＰＵ間通信レジスタ１０５、ＲＯＭ１０６、ＳＲＡＭ１０７、ＳＲＡＭ１０８から構成される。
【００１３】
メインシステム１０２は、メインＣＰＵ１０９とアプリケーション機能部１１３を有する。アプリケーション機能部１１３は、アプリケーション機能を実現するために、メインＣＰＵ１０９によって制御されるハードウェア装置である。
【００１４】
例えば、情報処理システム１０１が印刷装置であれば、アプリケーション機能として印刷が実現され、印刷エンジンなどがアプリケーション機能部１１３に相当する。メインＣＰＵ１０９がＳＤＲＡＭ１０４上に配置された通常モード用プログラムを実行し、アプリケーション機能部１１３を制御することで、メインシステム１０２は通常モード時においてアプリケーション機能を実現する。
【００１５】
サブシステム１０３は、サブＣＰＵ１１０と通信部１１１とを含む。サブＣＰＵ１１０がＳＤＲＡＭ１０４に配置された通常モード用プログラムを実行し、通信部１１１を制御することで、ネットワーク１１２上の他の装置との通信を行うことができる。
【００１６】
ＳＤＲＡＭ１０４は、メインシステム１０２とサブシステム１０３からアクセスすることができる第１の共有メモリである。ＳＤＲＡＭ１０４は、メインシステム１０２とサブシステム１０３からアクセス可能な通常状態と、アクセスすることができない代わりに消費電力を低下させた省電力状態とを有する。情報処理システム１０１が第１のモードである通常モード時には、ＳＤＲＡＭ１０４には通常の電力供給が行われ通常状態をとる。情報処理システム１０１が第２のモードである省電力モード時には、ＳＤＲＡＭ１０４は省電力状態をとる。メインシステム１０２は、ＳＤＲＡＭ１０４を通常動作状態から省電力動作状態への状態遷移と、省電力動作状態から通常動作状態への状態遷移との制御を行う。
【００１７】
ＳＤＲＡＭ１０４の省電力状態はセルフリフレッシュモードであっても、電源が供給されない状態であってもよい。以降では、セルフリフレッシュモードとして説明する。またＳＤＲＡＭ１０４には、メインシステム１０２とサブシステム１０３の通常モード用のプログラムおよびデータが配置される。
【００１８】
ＣＰＵ間通信レジスタ１０５は、メインＣＰＵ１０９とサブＣＰＵ１１０との間のＣＰＵ間通信を中継する。一方のＣＰＵがＣＰＵ間通信レジスタ１０５に所定の命令を書き込むと、もう一方のＣＰＵに割り込みが発生し、もう一方のＣＰＵは所定の命令を読み込むことができる。ＣＰＵ間通信レジスタ１０５を介して、メインシステム１０２とサブシステム１０３は通信を行う。
【００１９】
ＲＯＭ１０６はメインシステム１０２からアクセス可能なメモリである。ＲＯＭ１０６には、起動時にＳＤＲＡＭ１０４、ＳＲＡＭ１０７、ＳＲＡＭ１０８に展開され実行されるメインシステム１０２とサブシステム１０３のプログラムおよびデータが格納されている。
【００２０】
ＳＲＡＭ１０７はメインシステム１０２からアクセス可能なメモリである。ＳＲＡＭ１０７には、メインシステム１０２の省電力モード用のプログラムおよびデータが配置される。ＳＲＡＭ１０８はメインシステム１０２とサブシステム１０３からアクセス可能な第２の共有メモリである。ＳＲＡＭ１０８には、サブシステム１０３の割り込みベクタと割り込みハンドラ、さらに省電力モード用プログラムおよびデータが配置される。
【００２１】
まず、情報処理システム１０１の起動時の処理を説明する。メインシステム１０２は最初にＲＯＭ１０６上に配置されたプログラムを実行する。メインＣＰＵ１０９は実行を開始すると、まず、ＲＯＭ１０６に配置されたメインシステム１０２とサブシステム１０３の通常モード用プログラムおよびデータをＳＤＲＡＭ１０４上に展開する。続いてメインシステム１０２の省電力モード用のプログラムをＳＲＡＭ１０７上に展開し、サブシステム１０３の省電力モード用のプログラムをＳＲＡＭ１０８上に展開する。
【００２２】
メインシステム１０２はその後、ＳＤＲＡＭ１０４上に配置したプログラムの実行を開始して、サブシステムを起動する。サブシステム１０３が起動されると、サブシステム１０３はＳＲＡＭ１０８に配置されたベクタテーブルのリセットベクタを参照し、ＳＤＲＡＭ１０４に配置された通常モード用プログラムにジャンプする。
【００２３】
サブシステム１０３は通常モード用プログラムの実行を開始すると、ＣＰＵ間通信レジスタ１０５を介して、メインシステム１０２に実行を開始したことを通知する。これらの処理を終えるとメイン情報処理システム１０１とサブシステム１０２は通常モード用のプログラムを開始し、情報処理システム１０１は通常モードの処理を行う。
【００２４】
情報処理システム１０１が通常モードであるとき、メインシステム１０２とサブシステム１０３はＳＤＲＡＭ１０４に配置された通常モード用プログラムを実行する。メインシステム１０２はアプリケーション機能を実現する。サブシステム１０３の通常モード用のプログラムは、組み込みＯＳと複数の通常モード用タスクと通常モード用割り込みプログラムとから構成される。組み込みＯＳは複数の通常モード用タスクの中から実行するタスクを決定し、組み込みＯＳが実行するタスクを切り替えることによって、サブシステム１０３は処理を行う。
【００２５】
サブシステム１０３で割り込みが発生した際には、ＳＲＡＭ１０８上の割り込みハンドラからＳＤＲＡＭ１０４上の通常モード用割り込みプログラムにジャンプすることによって割り込みに対する処理を行う。サブシステム１０３への割り込みは、ＣＰＵ間通信レジスタ１０５や通信部１１１から発生する。
【００２６】
通信部１１１のＤＭＡ転送先は通常モード時においてＳＤＲＡＭ１０４上の領域を使用する。また、通常モードにおいてサブＣＰＵ１１０がプログラムを実行する上で使用するスタックポインタはＳＤＲＡＭ１０４の領域を用いる。
【００２７】
発明の実施形態１では、メインシステム１０２からの指示により情報処理システム１０１が省電力モードに移行する。省電力モードに移行する条件としては、アプリケーション機能の動作が停止してから一定時間経過後や、ユーザが指示した場合などが想定される。情報処理システム１０１が省電力モードの際は、サブシステム１０３が通信部１１１を動作させる。そして、通信部１１１がネットワーク１１２からの特定パケットを受信すると、情報処理システム１０１は省電力モードから通常モードへと復帰する。
【００２８】
以降で、本発明の実施形態１における情報処理システム１０１の通常モードから省電力モードへの移行方法と、情報処理システム１０１の省電力モードから通常モードへの復帰方法について説明する。
【００２９】
まず、通常モードから省電力モード移行方法について説明する。図２のシーケンス図は、情報処理システム１０１が通常モードから省電力モードに移行する際のメインシステム１０２とサブシステム１０３の処理のやりとりを示す。メインシステム１０２とサブシステム１０３間の通信はＣＰＵ間通信レジスタ１０５を用いて行われる。情報処理システム１０１が通常モードから省電力モードに移行する際、まずメインシステム１０２がサブシステム１０３に対して、ステップＳ２０１で省電力モード移行要求を送信する。
【００３０】
サブシステム１０３は省電力モード移行要求を受信すると、ステップＳ２０２でＳＤＲＡＭ１０４へのアクセスを停止し、ＳＲＡＭ１０８に配置された省電力モード用プログラムの実行を開始する。サブシステム１０３は省電力モード用プログラムの実行を開始した後に、ステップＳ２０３において、省電力モード移行要求に対する応答として、メインシステム１０２へ省電力モード移行完了を通知する。
【００３１】
このときのメインシステム１０２とサブシステム１０３の処理の詳細を次に述べる。図３はメインシステム１０２が省電力モードに移行する際のフローチャートである。図３で示される省電力モードに移行するためのプログラムは、ステップＳ３０１からステップＳ３０３はＳＤＲＡＭ１０４に配置され、ステップＳ３０４からステップＳ３０６はＳＲＡＭ１０７に配置される。
【００３２】
まず、ステップＳ３０１でメインシステム１０２はＣＰＵ間通信レジスタ１０５を介してサブシステム１０３に省電力モード移行要求を送信する。その後、ステップＳ３０２でサブシステム１０３からの省電力モード移行完了の通知を待つ。メインシステム１０２はＣＰＵ間通信レジスタ１０５を介してサブシステム１０３から省電力モード移行完了の通知を受信する（第１の受信）。
【００３３】
受信後、メインシステム１０２はＳＤＲＡＭ１０４をセルリフレッシュモードで動作できるように、ステップＳ３０３でＳＤＲＡＭ１０４に配置されたプログラムからＳＲＡＭ１０７に配置されたプログラムにジャンプする。メインシステム１０２とサブシステム１０３はそれ以降、ＳＤＲＡＭ１０４にアクセスしないため、ステップＳ３０４でメモリ制御を行ってＳＤＲＡＭ１０４をセルフリフレッシュモードにする。メインシステム１０２はさらに消費電力を低下させるために、ステップＳ３０５でアプリケーション機能部を省電力状態にし、さらにステップＳ３０６でメインＣＰＵ１０９のクロックをダウンする。以上の省電力モード移行処理を終えると、省電力モード用プログラムの実行を開始し省電力モードとなる。
【００３４】
図４のフローチャートに、サブシステム１０３が省電力モード移行要求を受信してから省電力モードに移行完了するまでの動作を示す。図４に示されるステップＳ４０１からステップＳ４０８の処理は、ＳＤＲＡＭ１０４上に配置され、ステップＳ４０９からステップＳ４１０の処理は、ＳＲＡＭ１０８に配置されている。これらの処理はＳＤＲＡＭ１０４に配置されたプログラムとＳＲＡＭ１０８に配置されたプログラムからなる切替タスクによって実行される。
【００３５】
サブシステム１０３はＣＰＵ間通信レジスタ１０５を介してステップＳ４０１で省電力モード移行要求を受信する（第２の受信）。続いて、省電力モード時においてＳＤＲＡＭ１０４にアクセスしないようにするために、ステップＳ４０２からステップＳ４０７において、ＳＤＲＡＭ１０４へのアクセスを停止する処理を行った後、ＳＲＡＭ１０８に配置されたプログラムを実行する。
【００３６】
ステップＳ４０２で省電力モードにおいてＳＤＲＡＭ１０４に配置されたタスクにディスパッチしないようにする。サブシステムは組み込みＯＳのタスクスケジューリング機能を停止、あるいは切替タスクの優先度を十分に上げることによりＳＤＲＡＭ１０４に配置されたタスクが実行されないようにする。さらにステップＳ４０３で割り込みも禁止する。
【００３７】
続いてステップＳ４０４において、通信部１１１のＤＭＡ転送先をＳＤＲＡＭ１０４上からＳＲＡＭ１０８上に変更する。このとき必要に応じて、通信部１１１のＤＭＡ転送を一時的に停止する。また、通信部１１１で送信前パケットが残っている場合、通常モードでの処理を再開したときにパケットを送信しても情報が古いため、送信前パケットをキャンセルする。
【００３８】
ステップＳ４０５でスタックポインタを変更する。まず、通常モードに復帰した際に元のスタックポインタの位置に戻せるようにするために、現在のスタックポインタをＳＤＲＡＭ１０４上に保存する。それから、スタックポインタをＳＲＡＭ１０８上の所定のアドレスに移動する。これにより、サブシステム１０３のアクセス先のＳＤＲＡＭ１０４からＳＲＡＭ１０８への切替制御を実現できる。
【００３９】
ステップＳ４０６でＣＰＵ間通信レジスタ１０５と通信部１１１に関する割り込みハンドラから省電力モード用プログラムにジャンプするようにし、ＳＤＲＡＭ１０４へのアクセスしないようにする。ＳＤＲＡＭ１０４へのアクセスができなくなる前に、サブＣＰＵ１１０のキャッシュ上のデータをＳＤＲＡＭ１０４に書き込んでいないと、通常モードへ復帰した場合、データの不整合が発生する可能性がある。そこで、ステップＳ４０７でキャッシュのフラッシュを行い、キャッシュがフラッシュされるまで十分に待つ。
【００４０】
ステップＳ４０８でＳＲＡＭ１０８上に配置された省電力モード用プログラムへジャンプ、またはＳＲＡＭ１０８上に配置された関数をコールすることで省電力モード用プログラムの実行を開始する。これにより、ＳＤＲＡＭ１０４へのアクセスは発生しなくなる。
【００４１】
ステップＳ４０８までの処理を行うと、サブシステム１０３はステップＳ４０９において、ＣＰＵ間通信レジスタ１０５を介してメインシステム１０２に省電力モード移行完了を通知する。最後に、サブシステム１０３はステップＳ４１０でＣＰＵ間通信レジスタ１０５と通信部１１１の割り込みを許可する。これにより、通信部１１１で再びパケットを受信できるようになる。また、ステップＳ４０４でＤＭＡ転送を一時的に停止した場合、ここで通信部１１１のＤＭＡ転送の再開を行う。
【００４２】
これらの処理を行うことでサブシステム１０３は省電力モードに移行することができる。以降の省電力モード時の処理においてもサブシステム１０３は切替タスクにて処理を続ける。
【００４３】
次に本発明の実施形態１における、メインシステム１０２とサブシステム１０３の省電力モード時における動作について説明する。メインシステム１０２は、サブシステム１０３からの通常モードへ復帰する条件を満たしたことの通知を受信するまで待つ。
【００４４】
一方で、サブシステム１０３はネットワーク１１２を介して外部の他の装置からのパケットを通信部１１１で受信する。そして特定のパケットが受信されるまで受信し続ける。サブシステム１０３は、特定パケットを受信すると、通常モード復帰処理を開始する。
【００４５】
以降では、情報処理システム１０１が省電力モードから通常モードへ復帰する処理について説明する。
【００４６】
図５に、情報処理システム１０１が省電力モードから通常モードへ復帰する際のメインシステム１０２とサブシステム１０３のシーケンスを示す。メインシステム１０２とサブシステム１０３の通信はＣＰＵ間通信レジスタ１０５を介して行われる。
【００４７】
省電力モード時において、サブシステム１０３は通常モードへの復帰するか否かを判定している。サブシステム１０３は通常モードへの復帰条件として特定パケットを受信すると、ステップＳ５０１でメインシステム１０２に通常モード復帰要求を送信する。
メインシステム１０２は通常モード移行要求を受信すると、ステップＳ５０２においてＳＤＲＡＭ１０４を通常状態にする。ＳＤＲＡＭ１０４を通常状態にすることにより、ＳＤＲＡＭ１０４へ記憶されたデータへのアクセスが可能となる。
【００４８】
メインシステム１０２は、ＳＤＲＡＭ１０４をアクセス可能な状態にすると、ステップＳ５０３でサブシステム１０３にＳＤＲＡＭ１０４が通常状態になったことの通知を行う。サブシステム１０３は、ＳＤＲＡＭ１０４が通常状態になったことの通知を受信すると、ステップＳ５０４でＳＲＡＭ１０８上でのプログラム実行から、ＳＤＲＡＭ１０４に配置された通常モード用のプログラムへと切り替える。
【００４９】
サブシステム１０３は通常モードへの移行を完了すると、ステップＳ５０５でメインシステム１０２へ通常モード移行完了の通知を行い、情報処理システム１０１は通常モードへの復帰を完了する。
【００５０】
このときのメインシステム１０２とサブシステム１０３の処理の詳細を次に述べる。図６にメインシステム１０２が省電力モードから通常モードに復帰する際のフローチャートを示す。図６に示される処理のステップＳ６０１からステップＳ６０４のプログラムは、ＳＲＡＭ１０７に配置されており、ステップＳ６０５からステップＳ６０７のプログラムはＳＤＲＡＭ１０４に配置される。いずれのプログラムもメインＣＰＵ１０９によって実行される。
【００５１】
メインシステム１０２はステップＳ６０１でサブシステム１０３から通常モード復帰要求を受信すると、ステップＳ６０２でメインＣＰＵ１０９のクロックを上げ、さらにステップＳ６０３でアプリケーション機能部を通常状態にする。そしてメインシステム１０２はステップＳ６０４においてセルフリフレッシュモードであるＳＤＲＡＭ１０４を通常状態に戻し、ＳＤＲＡＭ１０４へのアクセスを可能にする。
【００５２】
メインシステム１０２はＳＤＲＡＭ１０４にアクセス可能になると、ステップＳ６０５においてＳＤＲＡＭ上に配置されたプログラムの実行を開始する。メインシステム１０２はステップＳ６０６で、サブシステム１０３にＳＤＲＡＭ１０４を通常状態にしたことを通知する。
【００５３】
その後、ステップＳ６０７でメインシステム１０２はサブシステム１０３からの通常モード移行完了の通知を待つ。メインシステム１０２が、ステップＳ６０７でサブシステム１０３から通常モード移行完了を受信すると、通常モード用のプログラムを実行し、情報処理システム１０１は通常モードへの復帰を完了する。
【００５４】
図７にサブシステム１０３が省電力モードから通常モードに復帰する際のフローチャートを示す。ステップＳ７０１からステップＳ７０４の処理はＳＲＡＭ１０８に配置されており、ステップＳ７０４からステップＳ７１０の処理はＳＤＲＡＭ１０４に配置されている。これらの処理も引き続き、切替タスク内で行う。
【００５５】
サブシステム１０３は省電力モード時において、特定パケットを受信し、通常モードへの復帰条件を満たすと、まず、ステップＳ７０１でメインシステム１０２に通常モード復帰要求を送信する。その後、ステップＳ７０２でサブシステム１０３はメインシステム１０２からＳＤＲＡＭ１０４を通常状態にした通知を待つ。
【００５６】
サブシステム１０３は、ステップＳ７０２でメインシステム１０２からＳＤＲＡＭ１０４を通常状態にしたことの通知を受信すると、ステップＳ７０３からＳ７０７でＳＤＲＡＭ１０４上に配置されたプログラムおよびデータを使った実行への切替を行う。
【００５７】
ステップＳ７０３でＣＰＵ間通信レジスタ１０５と通信部１１１に関する割り込みを禁止する。その後、サブシステム１０３は、ステップＳ７０４でＳＲＡＭ１０８に配置されたプログラムからＳＤＲＡＭ１０４上に配置されたプログラムへジャンプ、または関数のコールを行う。
【００５８】
続いてステップＳ７０５でスタックポインタを、省電力モードに移行する際に保存しておいたＳＤＲＡＭ１０４上のアドレスに戻す。さらにサブシステム１０４は、ステップＳ７０６でＣＰＵ間通信レジスタ１０５と通信部１１１からの割り込みのハンドラを通常モード用のプログラムにジャンプするように切り替え、ステップＳ７０７で通信部１１１のＤＭＡ転送先をＳＤＲＡＭ１０４上に戻す。ＤＭＡ転送先を変更する際に、必要に応じてＤＭＡ転送の一時停止を行う。これにより通信部１１１の通信準備が整い、サブシステム１０３のアクセス先のＳＲＡＭ１０８からＳＤＲＡＭ１０４への切替制御を実現できる。
【００５９】
サブシステム１０３はこれらの切り替え処理を終えると、ステップＳ７０８においてメインシステム１０２に通常モードへの復帰を完了した通知を行う。
【００６０】
続いて、サブシステム１０３は通信部１１１における通信を再開するために、ステップＳ７０９でＣＰＵ間通信レジスタ１０５と通信部１１１の割り込みの許可する。さらにステップＳ７１０で組み込みＯＳのタスクのスケジューリングを有効にする。これにより切替タスクはその処理を終えて、他のタスクが実行される。これにより通常モードに復帰し、通常モード時の処理を再開する。
【００６１】
＜実施形態２＞
本発明の実施形態２のシステム構成図は、実施形態１と同様に図１で示される。実施形態２と実施形態１の異なる点は、通常モードから省電力モードに移行する際のサブシステム１０３の処理、および省電力モードから通常モードに移行する際のサブシステム１０３の処理である。メインシステム１０２とサブシステム１０３とのやりとりのシーケンス、およびメインシステム１０２の処理については実施形態１と同じである。
【００６２】
サブシステム１０３が通常モードから省電力モードに移行し、省電力モードで所定のパケットを受信後、省電力モードから通常モードに復帰する処理の説明をする。尚、実施形態１と同じである点については説明を省略する。
【００６３】
サブシステム１０３における省電力モードへの移行、省電力モード時の処理、通常モードへの復帰は、移行タスク、省電力モードタスク、復帰タスクによって実行される。それぞれのフローチャートを図８、図９、図１０に示す。移行タスクと復帰タスクはＳＤＲＡＭ１０４に配置され、省電力モードタスクはＳＲＡＭ１０８に配置される。
【００６４】
まず、通常モードから省電力モードに移行する際は、サブシステム１０３において移行タスクが実行される。図８を用いて、移行タスクのフローチャートについて説明する。
【００６５】
サブシステム１０３はＣＰＵ間通信レジスタ１０５を介してステップステップＳ８０１で省電力モード移行要求を受信する。ステップステップＳ８０２からステップステップＳ８０５の処理は、実施形態１のステップＳ４０３からステップＳ４０６と同様である。
【００６６】
ステップステップＳ８０５までの処理を行った後、ＳＲＡＭ１０８に配置されたプログラムの実行を開始するために、ステップステップＳ８０６で移行タスクから省電力モードタスクにタスク実行を切り替える。省電力モードタスクはＳＲＡＭ１０８に配置されている。
【００６７】
省電力モードタスクに切り替わった後の処理を、図９のフローチャートを用いて説明する。省電力モードタスクは、まずステップステップＳ９０１において組み込みＯＳのタスクスケジューリング機能の停止、あるいは省電力モードタスクの優先度を十分に上げるなどして、ＳＤＲＡＭ１０４に配置されたタスクにディスパッチしないようにする。
ステップステップＳ９０２でキャッシュのフラッシュを行い、フラッシュ完了まで十分に待つ。これにより、ＳＤＲＡＭ１０４へのアクセスを停止することができる。ＳＤＲＡＭ１０４へのアクセスを停止できると、ステップステップＳ９０３においてメインシステムに省電力モード移行完了を通知する。
【００６８】
省電力モード移行の最後の処理としてステップステップＳ９０４でＣＰＵ間通信レジスタ１０５と通信部１１１の割り込みを許可する。これにより、実施形態１と同様に、通信部１１１でパケット受信を再開でき、省電力モードの移行が完了する。情報処理システム１０１は省電力モードとして処理を行う。
【００６９】
省電力モード時において、サブシステム１０３で実行される省電力モードタスクは所定のパケットの受信をステップステップＳ９０５で待つ。省電力モードタスクは通信部１１１からネットワーク１１２を介して、所定のパケットを受信すると、省電力モードから通常モードへの復帰処理を行う。
【００７０】
復帰処理について図９のステップステップＳ９０６から説明する。これらの処理は引き続き、省電力モードタスクで行われる。省電力モードタスクは、所定パケット受信後、ステップステップＳ９０６において通常モード復帰要求を、メインシステム１０２に送信する。その後、ステップステップＳ９０７でサブシステム１０３はメインシステム１０２からＳＤＲＡＭ１０４を通常状態にした通知を待つ。
【００７１】
サブシステム１０３は通知を受信後、ステップステップＳ９０８でＣＰＵ間通信レジスタ１０５と通信部１１１に関する割り込みを禁止する。その後、サブシステム１０３は、ステップステップＳ９０９でタスクのスケジューリングを再開させるとともに、ステップステップＳ９１０で復帰タスクにタスクを切り替える。
【００７２】
通常モードへの復帰処理の続きを、図１０を用いて説明する。図１０は復帰タスクの処理のフローチャートである。復帰タスクはＳＤＲＡＭ１０４に配置されている。
復帰タスクの処理、ステップＳ１００１からステップＳ１００５の処理は、実施形態１におけるステップＳ７０５からステップＳ７０９と同じである。ステップＳ１００５までの処理を行い、復帰タスクはその処理を終え、他のタスクが実行されることによって、通常モード用のプログラムを再開する。これにより情報処理システム１０１は通常モードへの復帰を完了する。
【００７３】
以上の各実施形態によれば、マルチプロセッサ／マルチコアシステムが省電力モードに移行する際に、共有メモリへの不正なアクセスや、共有メモリのデータの不整合を生じさせることなく、共有メモリを省電力状態にすることができる。また、通常モードに移行する際においても、共有メモリへの不正なアクセスや、共有メモリのデータの不整合を生じることなく、共有メモリへのアクセスを再開することができる。
【００７４】
［その他の実施形態］
本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【００７５】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
【００７６】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。
【図面の簡単な説明】
【００７７】
【図１】本発明の実施形態１におけるシステムの構成の一例を示す図である。
【図２】本発明の実施形態１における省電力モード移行時のメインシステム１０２とサブシステム１０３の動作の一例を示すシーケンス図である。
【図３】本発明の実施形態１におけるメインシステム１０２の省電力モード移行時の動作の一例を示すフローチャートである。
【図４】本発明の実施形態１におけるサブシステム１０３の省電力モード移行時の動作の一例を示すフローチャートである。
【図５】本発明の実施形態１における通常モード復帰時のメインシステム１０２とサブシステム１０３の動作の一例を示すシーケンス図である。
【図６】本発明の実施形態１におけるメインシステム１０２の通常モード復帰時の動作の一例を示すフローチャートである。
【図７】本発明の実施形態１におけるサブシステム１０３の通常モード復帰時の動作の一例を示すフローチャートである。
【図８】本発明の実施形態２におけるサブシステム１０３の移行タスクの動作の一例を示すフローチャートである。
【図９】本発明の実施形態２におけるサブシステム１０３の省電力モードタスクの動作の一例を示すフローチャートである。
【図１０】本発明の実施形態２におけるサブシステム１０３の復帰タスクの動作の一例を示すフローチャートである。
【符号の説明】
【００７８】
１０１  システム
１０２  メインシステム
１０３  サブシステム
１０４  ＳＤＲＡＭ
１０５  ＣＰＵ間通信レジスタ
１０６  ＲＯＭ
１０７  ＳＲＡＭ
１０８  ＳＲＡＭ
１０９  メインＣＰＵ
１１０  サブＣＰＵ
１１１  通信部
１１２  ネットワーク
【図１】
2010079729.tif 000003
【図２】
2010079729.tif 000004
【図３】
2010079729.tif 000005
【図４】
2010079729.tif 000006
【図５】
2010079729.tif 000007
【図６】
2010079729.tif 000008
【図７】
2010079729.tif 000009
【図８】
2010079729.tif 000010
【図９】
2010079729.tif 000011
【図１０】
2010079729.tif 000012