(57)【要約】  ＣＰＵ省電力用ドライバ４１を読み込んだ各コア１１，１２の何れかが省電力モードへ遷移可能となると（Ｓ０１）、当該コア１１は、他方のコア１２にその旨を通知した後に（Ｓ０２）、自らへの電源供給をオフに切り替える（Ｓ０３）。通知を受けたコア１２は、ＳＤＲＡＭ２上のコア１１専有領域２３のサスペンドイメージを作成して、当該領域２３の一部バンク２３１に格納した後に（Ｓ０５）、当該一部バンク２３１をセルフリフレッシュモードに遷移させるとともに、当該領域２３の残りバンク２３２への通電をオフする（Ｓ０６）。
2010035315.tif 000002
【特許請求の範囲】
【請求項１】
電源回路から個別に電力供給を受ける複数のバンクを有する主記憶上の幾つかのバンクを夫々作業領域として専有するとともに、電源回路から電源を個別に受ける複数のコアを有するマルチコアＣＰＵにおける消費電力制御方法であって、
何れかのコアが省電力モードへ遷移可能となると、当該コアは、自らへの電源供給をオフに切り替え、
他のコアは、前記省電力モードへ遷移するコアが専有する前記主記憶上の作業領域のサスペンドイメージを作成して、当該作業領域中の一部のバンクに格納した後に、当該領域をセルフリフレッシュモードに遷移させるとともに、当該作業領域の残りバンクへの通電をオフする
ことを特徴とする消費電力制御方法。
【請求項２】
前記消費電力制御方法において、
省電力モードへ遷移するコアは、他のコアに対して省電力モード遷移を通知し、
前記通知を受けたコアは、前記通知をしたコアが専有する前記主記憶上の作業領域のサスペンドイメージを作成することを特徴とする、請求項１記載の消費電力制御方法。
【請求項３】
前記通知を受けたコアは、前記サスペンドイメージを格納したバンクをセルフリフレッシュモードに遷移させる際に、前記主記憶中の各コアによって共有される共有領域をもリフレッシュモードに遷移させる
ことを特徴とする請求項２記載の消費電力制御方法。
【請求項４】
電源回路から個別に電力供給を受ける複数のバンクを有する主記憶上の幾つかのバンクを夫々作業領域として専有するとともに、電源回路から電源を個別に受ける複数のコアを有するマルチコアＣＰＵにおける消費電力制御のために、各コアによって読み込まれることにより、
省電力モードへ遷移可能となったと自己診断したコアに対して、自らへの電源供給をオフに切り替える手順を実行させ、
他のコアに対して、前記省電力モードへ遷移可能となったコアが専有する前記主記憶上の作業領域のサスペンドイメージを作成する手順，作成したサスペンドイメージを当該作業領域中の一部のバンクに格納する手順，及び、サスペンドイメージを格納したバンクをセルフリフレッシュモードに遷移させるとともに、当該作業領域の残りバンクへの通電をオフする手順を実行させる
ことを特徴とする消費電力制御プログラム。
【請求項５】
複数のコアを有するマルチコアプロセッサと、
それぞれ個別に電力が供給される複数の領域を備えるとともに、前記複数のコアのそれぞれにより占有される複数の作業領域が設定された記憶部と、
前記マルチコアプロセッサ及び前記記憶部に電力を供給する電力供給部とを備える情報処理装置であって、
前記コアはそれぞれ、
省電力モードへ遷移する場合に、他のコアに対して省電力モードへの遷移を通知するとともに、自身への電源供給をオフに切り替え、
他のコアから省電力モード移行の通知を受信した場合、前記通知を発したコアが占有する作業領域に格納された情報を、前記作業領域内の任意の領域内に格納するとともに、前記任意の領域をリフレッシュモードに遷移させる一方、前記作業領域の前記任意の領域を除く領域への通電をオフするように動作することを特徴とする、情報処理システム。
【請求項６】
前記コアは、前記通知を発したコアが占有する作業領域に格納された情報を圧縮し、圧縮された情報を前記作業領域内の任意の領域に格納することを特徴とする、請求項５に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチコアＣＰＵにおいて一方のコアを通常モードから省電力モードへ遷移させるための消費電力制御方法，消費電力制御プログラム及び情報処理システムに関する。
【背景技術】
【０００２】
多くのシステムにおいてＣＰＵ及びメインメモリの消費電力がシステム全体の４０%程度を占めている。従って、ＣＰＵ及びメインメモリの省電力を如何に図るかが、システム全体の省電力化を実現するための要となる。そこで、従来、各種のＣＰＵ及びメインメモリの省電力技術が提案されている。例えば、ＣＰＵコアのクロックを抑えることによって消費電力を抑えるコアスリープや、ＳＤＲＡＭ上のデータ保持が必要なバンクのみに足る電流のみを供給し、残りのバンクへの通電をオフすることによって消費電力を抑えるパーシャルアレイセルフリフレッシュ，等である。
【非特許文献１】インターネット<URL:http://img.jp.fujitsu.com/downloads/jp/jmag/vol55-6/paper04.pdf>2008年8月20日検索
【非特許文献２】インターネット<URL:http://www.elpida.com/pdfs/J0597E10.pdf>2008年8月20日検索
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記した従来におけるＣＰＵ及びメインメモリの省電力技術は、いずれも、シングルコアＣＰＵ向けであった。そのため、マルチコアＣＰＵの利点を活かした提案は未だなく、これらの省電力技術をマルチコアＣＰＵにおける各コア毎に夫々適用せざるを得ない。【０００４】
このように、シングルコア用のパーシャルアレイセルフリフレッシュの技術をそのままマルチコアＣＰＵに適用した場合には、上記省電力技術をシングルコアＣＰＵに適用した場合と全く同じ手順によって、同じ遷移時間を要することになるので、シングルコアの場合と同程度の消費電力量の低減が得られるに過ぎない。【０００５】
そこで、本案は、マルチコアＣＰＵにおける一方のコアを通常モードから省電力モードへ遷移するために、当該コアと他方のコアとを協働させることにより、省電力モードへの遷移時間を短縮させ、もって、マルチコアＣＰＵ全体での消費電力量を低減させることを目的とする。
【課題を解決するための手段】
【０００６】
本案では、何れかのコアが省電力モードへ遷移可能となると、当該コアは、自らへの電源供給をオフに切り替え、他のコアは、前記省電力モードへ遷移可能となったコアが専有する主記憶上の領域のサスペンドイメージを作成して、当該領域中の一部のバンクに格納した後に、当該バンクをセルフリフレッシュモードに遷移させるとともに、当該領域の残りバンクへの通電をオフする。【０００７】
或るコアが省電力モードへ遷移可能となったかどうかは、そのコア自身が自己診断しても良いし、他のコアが診断しても良い。そのコア自身が自己診断した場合には、自らへの電源供給をオフに切り替える処理を実行する前に、その事実を、マスターとして機能する他のコアに通知する必要があるが、その手段としては、主記憶上の共有領域を用いても良いし、ＣＰＵ割り込みを用いても良い。従って、主記憶上の共有領域を用いて通知する場合には、主記憶上に当該共有領域を確保することが必須になるので、マスターとして機能するコア以外の全てのコアが省電力モードへ遷移した場合には、当該共有領域を構成するバンクをもセルフリフレッシュモードに遷移させることが望ましい。【０００８】
また、マスターとしての機能は、特定のコアに固定されていても良いし、各コア間で持ち回りしても良い。例えば、各コアの処理性能に差がある場合には、より処理性能の高いコアにマスターとしての機能が固定される事が望ましい場合があり、各コアの処理性能に差がない場合には、先に省電力モードへ遷移可能となったコアがスレーブとして機能し、他のコアがマスターとして機能することが望ましい場合がある。
【発明の効果】
【０００９】
本案によると、省電力モードへ遷移可能となったコアが自らへの電源供給をオフにする処理と、他のコアがサスペンドイメージを作成して、サスペンドイメージを格納したメモリ領域をセルフリフレッシュモードに遷移させるとともに、他領域への通電をオフする処理とを、並行実行することができる。従って、省電力モードへ遷移完了するまでの所要時間を短くすることができるので、より消費電力量を低減させることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本案が適用されるマルチコアＣＰＵを含むシステムの概略ブロック図である。
【図２】図２は、ＣＰＵ省電力用ドライバに基づいて通常モードから省電力モードへ遷移するために各コアが実行する処理を示す示すフローチャートである。
【図３】図３は、ＣＰＵ省電力用ドライバに基づいて省電力モードから通常モードへ復帰するために各コアが実行する処理を示す示すフローチャートである。
【図４】図４は、通常モードから省電力モードへ遷移する過程におけるＳＤＲＡＭの状態の変化を示す図である。
【図５】図５は、通常モードから省電力モードへ遷移する各段階を、シングルコアＣＰＵにおけるパーシャルアレイセルフリフレッシュと対比して示すタイミングチャートである。
【図６】図６は、シングルコアＣＰＵにおけるパーシャルアレイセルフリフレッシュによって通常モードから省電力モードへ遷移する過程におけるＳＤＲＡＭの状態の変化を示す図である。
【符号の説明】
【００１１】
３    ＯＮＡプリント板
４    ＳＶＰ
５    コンソール
１０    筐体
３１    ＯＮＡ
３３    ＥＥＰＲＯＭ
４１    ＣＰＵ
４３    ハードディスク
４４    ＭＡＣアドレス保存ファイル
【発明を実施するための最良の形態】
【００１２】
以下、本案を実施するための形態を、図面を参照して説明する。
［ハードウェア構成］
図１は、本案による消費電力制御方法が適用されるマルチコアＣＰＵを含むシステムの概略構成を示すブロック図である。もっとも、本案は、複数のコアを備えたチップを備える限り、あらゆるハードウェア構成のシステム，あらゆる構成のマルチコアＣＰＵのチップを供えたシステム，あらゆる種類のＯＳを使用するシステムに適用可能であるので、図１はシステムの一例に過ぎない。例えば、マルチコアＣＰＵには、ハードウェア的に、全く同じ構成（対称）である複数のコアを有するものと、非対称である複数のコアを有するものとがあるが、本案は、その両者に適用可能である。なお、省電力モードへの遷移に際して、遷移対象コア（スレーブ）と他方のコア（マスター）との動作内容に相違があるという意味において、本案が適用されたマルチコアＣＰＵは、「非対称マルチコアＣＰＵ」と呼ばれる場合もある。【００１３】
図１に示すシステムは、マルチコアＣＰＵ１と、マルチコアＣＰＵ１の各コア１１，１２との間の命令及びデータの授受のためにバス接続されたＳＤＲＡＭ２及びＩ／Ｏ３，Ｉ／Ｏ３に接続されたハードディスク４，並びに、これら各部に電力供給を行う電源回路５を、備えている。【００１４】
マルチコアＣＰＵ１は、本例では二つの対称型のコア（コアＡ１１，コアＢ１２）を備えてり、夫々同一のメモリマップを有しているので、夫々、後述するＳＤＲＡＭ２の全領域を見ることができる。なお、各コア１１，１２は、ハード的に非対称であっても構わない。【００１５】
ＳＤＲＡＭ２は、マルチコアＣＰＵ１の各コア１１，１２の作業領域が展開される主記憶装置であり、電源回路から個別に電力供給を受ける複数のバンクからなる記憶領域を有する。ＳＤＲＡＭ２には、図４に示すように、その記憶領域の一部が、コアＡ１１が単独で作業用に使用するコアＡ領域２１，コアＢ１２が単独で作業用に使用するコアＢ領域２３，両コア１１，１２が相互の通信用等のために共用する共有領域２２として、後述するＯＳ４２によって予め確保されている。なお、各領域２１〜２３は、夫々、複数のバンクから構成され、パーシャルアレイセルフリフレッシュの技術に対応し、各バンク毎に電源がオン・オフされるようになっている。また、共用領域２２についは、共用領域を用いない手法による各コア間の通信が可能であれば、不要となる。【００１６】
Ｉ／Ｏ３は、ディスク装置４をはじめとする各種外部機器とのインタフェースである。【００１７】
ディスク装置４は、各種プログラム及びデータファイルを保存している不揮発性の記憶装置である。このディスク装置４に格納されている各種プログラムには、マルチコアＣＰＵ１の各コア１１，１２をしてシステムの各部を動作可能とさせるための基本プログラムであるＯＳ（オペレーションシステム）４２の他、ＣＰＵ省電力用ドライバ４１が含まれている。ＣＰＵ省電力用ドライバ４１を各コア１１，１２が夫々読み込み、ＣＰＵ省電力用ドライバ４１に従って、各コア自身が省電力モードへの遷移対象コアであるか否かに応じた処理を実行することにより、本案の実施の形態による消費電力制御が行われるのである。なお、各コアが実行する処理とは、自身が省電力モードへの遷移対象コアでない場合にはシステム全体の省電力を管理する「マスター」としての処理を、自身が省電力モードへの遷移対象コアである場合には「スレーブ」としての処理を、それぞれ指している。【００１８】
電源供給回路５は、マルチコアＣＰＵ１の各コア１１，１２を始め、各部に対して夫々駆動電力を供給する回路である。この電源供給回路５によって各コア１１，１２及びＳＤＲＡＭ２の各バンクに供給される電力は、何れかのコア１１，１２からの制御により、夫々、オン，オフ，又はデータ保持に必要最小限の量（セルフリフレッシュモード）となるように、切替えられる。
［処理内容］
以下、ＣＰＵ省電力用ドライバ４１を各コア１１，１２が夫々読み込むことによって各コア１１，１２が実行する処理を、図２及び図３のフローチャート及び図４に従って、説明する。
〔通常モードから省電力モードへの遷移時の処理〕
図２に示すように、各コア１１，１２は、夫々、マルチコアＣＰＵの起動時に、ＣＰＵ省電力用ドライバ４１を読み込み、省電力モードへ遷移可能かどうかを自己診断し続ける（Ｓ０１）。なお、省電力モードへ遷移可能かどうかは、各コアが所定の遷移条件、例えば、一定時間に亘ってＣＰＵ使用率が所定閾値以下であることを満たしたかどうかに基づいて、行われる。【００１９】
そして、図４（ａ）に示すように、何れか一方のコアが、他方のコアよりも先に、省電力モードへ移行可能であると自己診断すると、他方のコアに対して、省電力モードへ遷移することを通知する（Ｓ０２）。以後、通知を行ったコアが「スレーブ」として動作し、通知を受けたコアが「マスター」として動作する。以下では、便宜上、コアＢがコアＡに先立って省電力モードへ遷移可能と判断し、コアＢからコアＡに省電力モード遷移が通知された状態、つまりマスターがコアＡであるとし、スレーブがコアＢであるとして説明を行うが、コアＡが先に省電力モードへ移行可能であると自己診断した場合には、コアＡがスレーブとなり、コアＢがマスターになることは言うまでもない。【００２０】
続いて、スレーブとしてのコアＢ１２は、図４（ｂ）に示すように、電力供給回路５から自己に供給される電力をオフすることにより、省電力モードへ遷移する（Ｓ０３）。なお、このＳ０３の処理と後述するＳ０４乃至Ｓ０６の処理とは、夫々を実行するコアが別々であるので、並行して実行されることになる。【００２１】
コアＢ１１から省電力モード移行の通知を受け取ったマスターとしてのコアＡ１１は、自己が専有するＳＤＲＡＭ２のコアＡ領域２１に管理テーブルを作成し、管理テーブルにコアＢの状態、即ち、省電力モードにあることを記録する（Ｓ０４）。【００２２】
続いて、コアＡ１１は、図４（ｃ）に示すように、コアＢが専有するＳＲＲＡＭ２のコアＢ領域２３のメモリデータを圧縮することによって、コアＢ領域２３のサスペンドイメージを作成し、コアＢ領域２３中の一部バンク２３１に格納する（Ｓ０５）。【００２３】
続いて、コアＡ１１は、ＳＲＲＡＭ２におけるコアＢ領域２３中の当該一部バンク２３１及び共用領域２２をセルフリフレッシュモードへ遷移させる（Ｓ０６）。即ち、電力供給回路５からこれら領域２３１，２２を構成する各バンクに供給される電力を、データ保持に要する必要最小限の量に制限する。これとともに、コアＡ１１は、コアＢ領域２３の残りバンク２３２への電力供給をオフに切り替える。【００２４】
なお、コアＢ１１が省電力モードへ遷移可能であると自己診断した後に、マスターとしてのコアＡ１２自身が省電力モードへ遷移可能であると自己診断した場合には、Ｓ０６を実行した後に、コアＡ１２が、自ら、シングルＣＰＵにおける手順と同手順に従ってセルフリフレッシュモードに遷移する。
〔省電力モードから通常モードへの遷移時の処理〕
次に、図３に示すように、特定アプリケーションの起動などにより、コアＡ１１がコアＢ１２の省電力モードから通常モードへの復帰を決定すると（Ｓ１１）、コアＡ１１は、ＳＤＲＡＭ４の省電力モードを解除、即ち、共用領域２２及びコアＢ領域２３の全バンクへの電源供給をオンに戻す（Ｓ１２）。その後、コアＡは、コアＢ領域２３中の一部領域２３１に格納されていたコアＢ１２のサスペンドイメージを展開し、コアＢ領域２３の全体に格納し戻すとともに（Ｓ１３）、コアＢ１２の省電力モードを解除、即ち、コアＢ１２への電源供給をオンに戻す（Ｓ１４）。【００２５】
このようにしてコアＢ１２が省電力モードから復帰すると、コアＢ１２は、コアＡ１１に対して復帰を通知する（Ｓ１５）。【００２６】
コアＢからの通知を受けると、コアＡ１１は、ＳＤＲＡＭ４のコアＡ領域中の管理テーブルに、コアＢの状態、即ち、通常モードであることを記録する（Ｓ１６）。
［比較例］
図６は、シングルコアパーシャルアレイセルフリフレッシュの技術をマルチコアＣＰＵに適用した場合におけるＳＤＲＡＭの状態の変化を示している。即ち、この図６に示すように、ＳＤＲＡＭには、一方のコア（コアＡ）の作業用に占有される領域（コアＡ領域）１００，他方のコア（コアＢ）の作業用に占有される領域（コアＢ領域）１０２，及び、両コア間の通信用に用いられる共有領域１０１が確保されている。そして、一方のコア（コアＢ）が図６（ａ）に示す通常モードから省電力モードに遷移するには、図６（ｂ）の段階において、コアＢ自身が、コアＢ領域１０２上に展開されたメモリデータを圧縮してサスペンドイメージを作成して、図６（ｃ）に示すように、コアＢ領域１０２の一部バンク１０２１へ退避させた後に、当該一部バンク１０２１及び共用領域１０１にセルフリフレッシュ用の電力を供給するとともに、コアＢ領域１０２の残りのバンク１０２２に対する通電をオフしてから、自らへの通電をオフする。
［本実施形態による消費電力の利点］
次に、以上のように構成された本実施形態によるマルチコアＣＰＵにおける消費電力管理方法を、図６に示した、シングルコアＣＰＵにおけるパーシャルアレイセルフリフレッシュの手法をマルチコアＣＰＵに流用する方法と比較して、説明する。【００２７】
図５は、両方法に従った場合のＳＤＲＡＭ４の状態の時間軸（縦軸）に沿った推移を、両者を対比させて示したタイミングチャートである。【００２８】
図５において、（Ａ）の列は、シングルコアＣＰＵにおけるパーシャルアレイセルフリフレッシュの手法をマルチコアＣＰＵに流用する方法によるＳＤＲＡＭ４の状態の時間軸に沿った推移を示し、（Ｂ）の列は、本実施形態によるマルチコアＣＰＵにおける消費電力管理方法によるＳＤＲＡＭ４の状態の時間軸に沿った推移を示す。【００２９】
図５に示すように、Ｔ０のタイミングで、コアＢ１２が省電力モードへ遷移可能であると自己診断すると、本実施形態つまり（Ｂ）によると、次のＴ１のタイミングで、コアＢ１１自身が省電力モードへ遷移して電力供給をオフする処理を実行（Ｓ０３）するのと並行して、コアＡ１２がコアＢのサスペンドイメージを作成してコアＢ領域２３中の一部バンク２３１に格納する処理（Ｓ０５）及び共用領域２２をセルフリフレッシュモード（Ｓ／Ｒ）へ遷移させる処理（Ｓ０６）を実行することができる。これに対して、シングルコアＣＰＵにおけるパーシャルアレイセルフリフレッシュの手法、つまり（Ａ）の手法をマルチコアＣＰＵに流用する方法によると、全ての処理をコアＢ１２自身が実行しなければならないので、Ｔ１のタイミングでは、コア１２への電力供給オフは実行できず、サスペンドイメージを作成してコアＢ領域１０２中の一部バンク１０２１に格納する処理及び共用領域１０１をセルフリフレッシュモード（Ｓ／Ｒ）へ遷移させる処理しか実行できない。【００３０】
次のＴ２のタイミングで、（Ａ）の手法および（Ｂ）の手法共に、サスペンドイメージを格納した一部バンク１０２１，２３１及び共用領域１０１，２２をセルフリフレッシュモード（Ｓ／Ｒ）に遷移させるとともに、コアＢ領域１０２，２３の残りバンク１０２２，２３２をオフに切り替える。本実施形態つまり（Ｂ）の手法では省電力モードへの遷移がＴ２のタイミングで全て完了するのに比して、シングルコアＣＰＵにおけるパーシャルアレイセルフリフレッシュの手法、つまり（Ａ）の手法では、更に、次のＴ３のタイミングにおいてコアＢ１２自身を省電力モードへ遷移させて電力供給をオフする処理を実行しなければならない。【００３１】
このように、本実施形態によると、シングルコアＣＰＵにおけるパーシャルアレイセルフリフレッシュの手法をマルチコアＣＰＵに流用する方法に比較して、より早いタイミングで、省電力モードへの遷移を完了させることができる。従って、その分だけ、消費電力量を低減させることが可能となる。そして、かかる消費電力量低減の効果は、マルチコアＣＰＵ１上のコアの数が多ければ多い程大きくなる。【００３２】
また、ハード的に各コアが非対称である場合に、マスターとして機能するコアの処理性能がスレーブとして機能するコアの処理性能よりも高いと、より早くスレーブを省電力モードへ遷移させることができるので、処理電力量低減の効果が大きくなる。この場合は、マスターとしての機能が処理能力の高いコアに固定されていることが望ましい。【００３３】
また、本実施形態によると、ＯＳ上で実行されるアドインソフトであるＣＰＵ省電力用ドライバ４１によって、消費電力制御がなされるので、省電力モードへの遷移対象であるコア上で実行されるＯＳ４２が省電力モードをサポートしていない場合であっても、当該コアを省電力モードへ遷移させることが可能となる。
【図１】
2010035315.tif 000003
【図２】
2010035315.tif 000004
【図３】
2010035315.tif 000005
【図４】
2010035315.tif 000006
【図５】
2010035315.tif 000007
【図６】
2010035315.tif 000008
【国際調査報告】
2010035315.tif 000009
2010035315.tif 000010