(57)【要約】【課題】メモリ装置の状態を移行させるためのコードを保持する別のメモリ装置を必要とせず、複数のプロセッサで同時並列にメモリ装置の制御を行わないための同期処理なしに、マルチプロセッサシステムにおける消費電力を低減する。【解決手段】通常の消費電力状態と低消費電力状態に切り換わることがそれぞれ可能な複数のプロセッサが低消費電力状態になった場合、プロセッサが共通にアクセスするメモリ装置を低消費電力状態に切り換え、メモリ装置が低消費電力状態である場合に、プロセッサの少なくとも１つを通常の消費電力状態に切り換えるための割り込み信号が入力されたとき、メモリ装置を通常の消費電力状態に切り換えるメモリ装置モード切り換え部と、メモリ装置が通常の消費電力状態に切り換わるまで、プロセッサの少なくとも１つを通常の消費電力状態に切り換えることを遅延させる割り込み遅延部とを有する。【選択図】図１
2015138342.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが第１の動作状態と第２の動作状態とに切り換わることが可能な複数のプロセッサと、第１の動作状態と第２の動作状態とに切り換わることが可能であり、前記複数のプロセッサが共通にアクセスするメモリ装置とを有するマルチプロセッサシステムであって、
前記複数のプロセッサの動作状態が前記第２の動作状態になった場合、前記メモリ装置の動作状態を前記第１の動作状態から前記第２の動作状態に切り換え、
前記メモリ装置の動作状態が前記第２の動作状態である場合に、前記複数のプロセッサの少なくとも１つを前記第２の動作状態から前記第１の動作状態に切り換えるための割り込み信号が入力されたとき、前記メモリ装置の動作状態を前記第２の動作状態から前記第１の動作状態に切り換える切り換え手段と、
前記切り換え手段によって前記メモリ装置の動作状態が前記第１の動作状態に切り換わるまで、前記複数のプロセッサの少なくとも１つを前記第２の動作状態から前記第１の動作状態に切り換えることを遅延させる遅延手段と、
を有するマルチプロセッサシステム。
【請求項２】
前記複数のプロセッサそれぞれの前記第２の動作状態は、前記複数のプロセッサそれぞれの前記第１の動作状態よりも消費電力が小さい動作状態であることを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項３】
前記メモリ装置の前記第２の動作状態は、前記メモリ装置の前記第１の動作状態よりも消費電力が小さい動作状態であることを特徴とする請求項１又は２記載のマルチプロセッサシステム。
【請求項４】
前記複数のプロセッサそれぞれの前記第１の動作状態は、演算処理を行うことができる状態であり、前記複数のプロセッサそれぞれの前記第２の動作状態は、演算処理を行うことができない状態であることを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項５】
前記メモリ装置の前記第１の動作状態は、前記複数のプロセッサそれぞれによってデータの読み書きができる状態であり、前記メモリ装置の前記第２の動作状態は、前記複数のプロセッサそれぞれによってデータの読み書きができないがデータが保持される状態であることを特徴とする請求項１又は４記載のマルチプロセッサシステム。
【請求項６】
前記切り換え手段は、前記複数のプロセッサでオペレーティングシステムが動作しており、前記オペレーティングシステムの実行すべきタスクがなくなったときに、前記複数のプロセッサを前記第１の動作状態から前記第２の動作状態に切り換えることを特徴とする請求項１〜５の何れか１項に記載のマルチプロセッサシステム。
【請求項７】
前記切り換え手段は、前記複数のプロセッサでオペレーティングシステムが動作しており、前記オペレーティングシステムが定義するアイドルタスクに実行権が渡ったときに、前記複数のプロセッサを前記第１の動作状態から前記第２の動作状態に切り換えることを特徴とする請求項１〜５の何れか１項に記載のマルチプロセッサシステム。
【請求項８】
それぞれが第１の動作状態と第２の動作状態とに切り換わることが可能な複数のプロセッサと、第１の動作状態と第２の動作状態とに切り換わることが可能であり、前記複数のプロセッサが共通にアクセスするメモリ装置とを有するマルチプロセッサシステムの制御方法であって、
前記複数のプロセッサの動作状態が前記第２の動作状態になった場合、前記メモリ装置の動作状態を前記第１の動作状態から前記第２の動作状態に切り換え、
前記メモリ装置の動作状態が前記第２の動作状態である場合に、前記複数のプロセッサの少なくとも１つを前記第２の動作状態から前記第１の動作状態に切り換えるための割り込み信号が入力されたとき、前記メモリ装置の動作状態を前記第２の動作状態から前記第１の動作状態に切り換える切り換え工程と、
前記切り換え工程によって前記メモリ装置の動作状態が前記第１の動作状態に切り換わるまで、前記複数のプロセッサの少なくとも１つを前記第２の動作状態から前記第１の動作状態に切り換えることを遅延させる遅延工程と、
を有するマルチプロセッサシステムの制御方法。
【請求項９】
それぞれが第１の動作状態と第２の動作状態とに切り換わることが可能な複数のプロセッサと、第１の動作状態と第２の動作状態とに切り換わることが可能であり、前記複数のプロセッサが共通にアクセスするメモリ装置とを有するマルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラムであって、
前記複数のプロセッサの動作状態が前記第２の動作状態になった場合、前記メモリ装置の動作状態を前記第１の動作状態から前記第２の動作状態に切り換え、
前記メモリ装置の動作状態が前記第２の動作状態である場合に、前記複数のプロセッサの少なくとも１つを前記第２の動作状態から前記第１の動作状態に切り換えるための割り込み信号が入力されたとき、前記メモリ装置の動作状態を前記第２の動作状態から前記第１の動作状態に切り換える切り換えステップと、
前記切り換えステップによって前記メモリ装置の動作状態が前記第１の動作状態に切り換わるまで、前記複数のプロセッサの少なくとも１つを前記第２の動作状態から前記第１の動作状態に切り換えることを遅延させる遅延ステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを有するマルチプロセッサシステム、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、組込みシステムにおける消費電力の低減は、重要度を増している。機器の状況に応じて、利用しない個々のハードウェアへの電力供給を遮断する、又は、電力の消費をごく少量に抑えるなど細かな制御が行われていることが多い。シングルプロセッサのシステムにおいて、メモリ装置の消費電力を低減するために、メモリコントローラへの供給クロックを制御する技術が知られている（特許文献１参照）。また、複数のプロセッサを有するマルチプロセッサのシステムにおいて、プロセッサやメモリ装置の消費電力を低減する技術が提案されている（特許文献２、３参照）が、消費電力を低減するには、シングルプロセッサのシステムよりも複雑な制御が必要になる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−３０８２４６号公報
【特許文献２】特開２０１０−７９７２９号公報
【特許文献３】特開２０１１−１８１３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
複数のプロセッサと、それらプロセッサが共通にアクセスするメモリ装置とを有するマルチプロセッサシステムにおいて、プロセッサ及びメモリ装置の低消費電力状態への移行や低消費電力状態からの復帰を行う場合、後述する二つの課題があった。一つは、プロセッサがメモリ装置をアクセス不可能な低消費電力状態へ移行させるコードとアクセス可能な通常状態へ移行させるコード、及びそれらに付随するデータを、別のメモリ装置に保持して、処理を行う必要がある。もう一つは、メモリ装置の低消費電力状態への移行や復帰の制御を複数のプロセッサで同時並列に行わないようにする同期処理が必要なことである。
【０００５】
本発明は、前述のマルチプロセッサシステムにて、メモリ装置の状態を移行させるためのコードを保持する別のメモリ装置を必要とせず、且つ複数のプロセッサで同時並列にメモリ装置の制御を行わないための同期処理なしに、消費電力を低減することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るマルチプロセッサシステムは、それぞれが第１の動作状態と第２の動作状態とに切り換わることが可能な複数のプロセッサと、第１の動作状態と第２の動作状態とに切り換わることが可能であり、前記複数のプロセッサが共通にアクセスするメモリ装置とを有するマルチプロセッサシステムであって、前記複数のプロセッサの動作状態が前記第２の動作状態になった場合、前記メモリ装置の動作状態を前記第１の動作状態から前記第２の動作状態に切り換え、前記メモリ装置の動作状態が前記第２の動作状態である場合に、前記複数のプロセッサの少なくとも１つを前記第２の動作状態から前記第１の動作状態に切り換えるための割り込み信号が入力されたとき、前記メモリ装置の動作状態を前記第２の動作状態から前記第１の動作状態に切り換える切り換え手段と、前記切り換え手段によって前記メモリ装置の動作状態が前記第１の動作状態に切り換わるまで、前記複数のプロセッサの少なくとも１つを前記第２の動作状態から前記第１の動作状態に切り換えることを遅延させる遅延手段と、を有する。
【発明の効果】
【０００７】
本発明によれば、メモリ装置の状態を移行させるためのコードを保持する別のメモリ装置を必要とせずに、且つ複数のプロセッサで同時並列にメモリ装置の制御を行わないための同期処理なしに、マルチプロセッサシステムにおける消費電力を低減することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係るマルチプロセッサシステムの構成例を示す図である。
【図２】本実施形態における低消費電力状態への移行処理を示すフローチャートである。
【図３】本実施形態における低消費電力状態からの復帰処理を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態を図面に基づいて説明する。
【００１０】
図１は、本発明の一実施形態におけるマルチプロセッサシステムの構成例を示すブロック図である。本実施形態におけるマルチプロセッサシステムは、メモリ装置１０１、複数のプロセッサ（ＰＵ１、ＰＵ２）１０２、１０３、バス１０４、及び各プロセッサに対応する割り込みコントローラ（ＩＮＴＣ１、ＩＮＴＣ２）１０５、１０６を有する。また、本実施形態におけるマルチプロセッサシステムは、プロセッサモード検出部１０７、メモリ装置モード切り換え部１０８、メモリ装置モード検出部１０９、及び割り込み遅延部１１０を有する。
【００１１】
メモリ装置１０１は、プロセッサ１０２、１０３が共通にアクセスするメモリ装置であり、プロセッサでの処理に係るプログラムコードやデータを記憶するメモリ（例えば、ＤＤＲ  ＳＤＲＡＭ等）、及びメモリに対する制御を行うメモリコントローラを有する。また、メモリ装置１０１は、動作状態（動作モード）として、データの読み書きができる、すなわちデータへのアクセスが可能な通常の消費電力状態（第１の動作状態）と、アクセスが不可能な低消費電力状態（第２の動作状態）とを有する。低消費電力状態（第２の動作状態）は、通常の消費電力状態（第１の動作状態）よりも消費電力が小さい状態である。
【００１２】
アクセスが不可能な低消費電力状態は、データの読み書きはできないが、メモリのデータが保持される状態（例えば、ＤＤＲ３  ＳＤＲＡＭにおけるセルフリフレッシュ状態など）である。なお、データが保持できれば、アクセスが不可能な低消費電力状態において、メモリのアクティブパワーダウンやプリチャージパワーダウンなどのパワーダウン機能を利用してデータを保持するようにしてもよい。また、低消費電力状態では、メモリのデータが保持される状態を保っている限り、メモリコントローラの消費電力も低減することが可能である。
【００１３】
プロセッサ１０２、１０３は、命令に応じた処理を行う。プロセッサ１０２、１０３は、動作状態（動作モード）として、演算処理を行える通常の消費電力状態（第１の動作状態）と、割り込み信号の入力によって通常の消費電力状態に復帰する、演算処理が停止している低消費電力状態（第２の動作状態）とを有する。低消費電力状態（第２の動作状態）は、通常の消費電力状態（第１の動作状態）よりも消費電力が小さい状態である。
【００１４】
プロセッサ１０２、１０３が実行可能な命令には、低消費電力状態に移行する命令が含まれている。プロセッサ１０２、１０３は、自身で低消費電力状態に移行する命令を実行することで低消費電力状態に移行する。プロセッサ１０２、１０３のプログラムコードやデータは、メモリ装置１０１に保持されているので、メモリ装置１０１が低消費電力状態に切り換えた場合、すべてのプロセッサは低消費電力状態になる。
【００１５】
例えば、プロセッサ１０２、１０３における通常の消費電力状態（第１の動作状態）から低消費電力状態（第２の動作状態）への切り換えは、動作しているオペレーティングシステムの実行すべきタスクがなくなったときに行う。また、例えば、動作しているオペレーティングシステムが定義するアイドルタスクに実行権が渡ったときに行うようにしてもよい。バス１０４は、プロセッサ１０２及び１０３とメモリ装置１０１とを接続している。割り込みコントローラ１０５、１０６は、入力された割り込み信号を割り込み遅延部１１０へ伝達する。
【００１６】
プロセッサモード検出部１０７は、第１の状態検出手段として各プロセッサ１０２、１０３の動作状態を検知する。プロセッサモード検出部１０７は、プロセッサ１０２、１０３が通常の消費電力状態（第１の動作状態）及び低消費電力状態（第２の動作状態）のどちらの動作状態であるかを検知する。プロセッサモード検出部１０７は、すべてのプロセッサの動作状態が低消費電力状態（第２の動作状態）になったときに、メモリ装置モード切り換え部１０８を用いてメモリ装置１０１の動作状態を低消費電力状態へ移行させる。また、プロセッサモード検出部１０７は、割り込み遅延部１１０の動作を停止及び再開する機能を有する。
【００１７】
メモリ装置モード切り換え部１０８は、メモリ装置１０１の動作状態を切り換える。メモリ装置モード切り換え部１０８は、プロセッサモード検出部１０７からの指示で、メモリ装置１０１の動作状態を通常の消費電力状態（第１の動作状態）から低消費電力状態（第２の動作状態）へ切り換える。また、メモリ装置モード切り換え部１０８は、割り込み遅延部１１０からの指示で、メモリ装置１０１の動作状態を低消費電力状態（第２の動作状態）から通常の消費電力状態（第１の動作状態）へ切り換える。
【００１８】
メモリ装置モード検出部１０９は、第２の状態検出手段としてメモリ装置１０１の動作状態を検知して割り込み遅延部１１０へ通知する。メモリ装置モード検出部１０９は、メモリ装置１０１が通常の消費電力状態（第１の動作状態）及び低消費電力状態（第２の動作状態）のどちらの動作状態であるかを検知し、割り込み遅延部１１０へ通知する。
【００１９】
割り込み遅延部１１０は、割り込みコントローラ１０５、１０６からのプロセッサ１０２、１０３に対する割り込み信号の入力を受け、受けた割り込み信号を対応するプロセッサ１０２、１０３のみに伝達する。また、割り込み遅延部１１０は、割り込みコントローラ１０５、１０６から受けた割り込み信号のすべてを保留しておく機能を有する。
【００２０】
割り込み遅延部１１０は、メモリ装置モード検出部１０９を用いてメモリ装置１０１の動作状態を検査し、低消費電力状態であった場合にメモリ装置モード切り換え部１０８を用いてメモリ装置１０１の動作状態を通常の消費電力状態に切り換える機能を有する。また、割り込み遅延部１１０は、プロセッサモード検出部１０７によって機能を停止及び再開する機能を有する。割り込み遅延部１１０が機能を停止している間、入力された割り込み信号はプロセッサ１０２又は１０３に伝達されずに保留される。
【００２１】
ここで、割り込み遅延部１１０のすべての割り込み信号を保留する機能は、割り込みコントローラ１０５、１０６と合わせて実現することも可能である。例えば、割り込み遅延部１１０は、割り込み信号の入力の有無だけを保留しておき、割り込みコントローラ１０５又は１０６で保留している期間に発生した割り込み信号をベクタ番号などの形式で提供すればよい。これは、割り込みコントローラ１０５又は１０６から複数の割り込み信号を割り込み遅延部１１０を経由してプロセッサ１０２又は１０３へ入力する形態の場合にも有効である。
【００２２】
また、本実施形態では、割り込みコントローラ１０５又は１０６は、複数の割り込み入力を一つにまとめ、割り込み遅延部１１０へ入力する割り込みコントローラの機能を兼ね備えているとした。これに限らず、割り込み遅延部１１０からプロセッサ１０２又は１０３に入力する割り込み入力の数を複数のまま伝達する構成も実施可能である。この場合、割り込み遅延部１１０は、プロセッサ１０２又は１０３の各々に対して複数の割り込み入力を伝達し、またその伝達を遅延させる機能を有することになる。これは単純に扱う割り込み入力を複数にするだけなので、実施形態の説明は省略する。
【００２３】
また、図１に示したマルチプロセッサシステムの構成は一例であり、プロセッサの数を増加させても実施可能である。また、必要なモジュールを自由に組み合わせることもでき、例えばバス１０４に別の機能部を接続することも可能である。
【００２４】
次に、本実施形態におけるマルチプロセッサシステムにおいて、通常の消費電力状態（第１の動作状態）から低消費電力状態（第２の動作状態）へ切り換える処理について説明する。図２は、本実施形態における低消費電力状態への移行処理を示すフローチャートである。図２に示すフローチャートの処理は、プロセッサモード検出部１０７が、プロセッサ１０２、１０３の何れかのプロセッサの動作状態が通常の消費電力状態から低消費電力状態へ移行したことを契機に開始される。また、図２に示すフローチャートの処理は、複数並行して処理されることはない。
【００２５】
ステップＳ２０１において、プロセッサモード検出部１０７は、割り込み遅延部１１０の動作を停止させ、ステップＳ２０２へ進む。ステップＳ２０２において、プロセッサモード検出部１０７は、プロセッサ１０２、１０３のそれぞれが低消費電力状態に切り換わったか否かを判断する。判断の結果、すべてのプロセッサの動作状態が低消費電力状態である場合にはステップＳ２０３へ進み、一つ以上のプロセッサの動作状態が通常の消費電力状態である場合にはステップＳ２０５へ進む。
【００２６】
ステップＳ２０３において、プロセッサモード検出部１０７は、メモリ装置モード切り換え部１０８を用いて、メモリ装置１０１の動作状態を低消費電力状態へ切り換え、ステップＳ２０４へ進む。ステップＳ２０４において、プロセッサモード検出部１０７は、割り込み遅延部１１０を再開させて、マルチプロセッサシステムにおける低消費電力状態への移行処理を終了する。
【００２７】
ステップＳ２０５において、プロセッサモード検出部１０７は、割り込み遅延部１１０を再開させてステップＳ２０１へ進む。ここで、割り込み遅延部１１０を再開させた後、所定の時間の経過後にステップＳ２０１へ進むようにしてもよい。
【００２８】
なお、図２に示したフローチャートの処理を、ステップＳ２０５の処理後、低消費電力状態への移行処理を終了し、再度、本フローチャートの処理を開始する条件を満たした場合に行うことも可能である。この場合、図２に示したフローチャートの処理をある一定の時間間隔で開始することも可能である。この方式の場合、本実施形態による消費電力の低減効果が多少薄れるが、消費電力を低減できることに変わりはない。
【００２９】
次に、本実施形態におけるマルチプロセッサシステムにおいて、低消費電力状態（第２の動作状態）から通常の消費電力状態（第１の動作状態）へ切り換える処理について説明する。図３は、本実施形態における低消費電力状態からの復帰処理を示すフローチャートである。図３に示すフローチャートの処理は、メモリ装置モード検出部１０９によってメモリ装置１０１の動作状態が低消費電力状態に切り換わったことを検知すると開始される。また、図３に示すフローチャートの処理は、複数並行して処理されることはない。
【００３０】
ステップＳ３０１において、割り込み遅延部１１０は、割り込みコントローラ１０５又は１０６から割り込み信号の入力があったか否かを判断する。割り込み信号の入力があった場合にはステップＳ３０２へ進み、割り込み信号の入力がない場合にはステップＳ３０１へ進む。ステップＳ３０２において、割り込み遅延部１１０は、割り込み信号の入力を保留して、ステップＳ３０３へ進む。これ以降入力されたすべての割り込み信号は、ステップＳ３０４でプロセッサ１０２又は１０３へ伝達するまで保留される。
【００３１】
ステップＳ３０３において、割り込み遅延部１１０は、メモリ装置モード切り換え部１０８を用いて、メモリ装置１０１の動作状態を低消費電力状態から通常の消費電力状態へ切り換え、ステップＳ３０４へ進む。ここで、図２に示したステップＳ２０３においても、メモリ装置モード切り換え部１０８を用いて、メモリ装置１０１の動作状態を切り換えるが、ステップＳ２０１、ステップＳ２０４及びステップＳ２０５の効果により同時に切り換えられることはない。
【００３２】
ステップＳ３０４において、割り込み遅延部１１０は、ステップＳ３０２において保留していた割り込み信号の入力をプロセッサ１０２又は１０３に伝達して、マルチプロセッサシステムを低消費電力状態から通常の消費電力状態へ切り換える処理を終了する。
【００３３】
前述したように図３に示したフローチャートの処理は、メモリ装置モード検出部１０９によってメモリ装置１０１の動作状態が低消費電力状態に切り換わったことを検知すると開始される。よって、ステップＳ３０１での割り込み信号の入力検知からステップＳ３０４で割り込み信号をプロセッサ１０２又は１０３へ伝達するまでに、プロセッサモード検出部１０７によるメモリ装置１０１の動作状態の切り換えは発生しない。
【００３４】
以上のようにして、メモリ装置１０１とは別のメモリ装置を必要とせず、且つ、各プロセッサが複数のプロセッサで同時並列にメモリ装置の制御を行わないための施策なしに、マルチプロセッサシステムにおける消費電力を低減することができる。
【００３５】
（本発明の他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、前述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００３６】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００３７】
１０１：メモリ装置  １０２、１０３：プロセッサ  １０４：バス  １０５、１０６：割り込みコントローラ  １０７：プロセッサモード検出部  １０８：メモリ装置モード切り換え部  １０９：メモリ装置モード検出部  １１０：割り込み遅延部
【図１】
2015138342.tif 000003
【図２】
2015138342.tif 000004
【図３】
2015138342.tif 000005