説明

プロセッサ装置

【課題】電源供給の状態に基づいて、プロセッサコア毎にクロック信号を供給又は停止する制御を行うことにより消費電力を低減する。
【解決手段】プロセッサ装置1は、複数のプロセッサコア15を搭載するマルチコアプロセッサ11と、電源供給の状態を検知し、クロック信号を供給するあるいは供給しないプロセッサコア15を指定するための制御信号を出力するシステムコントローラ12と、制御信号に基づいて、クロック信号を供給するあるいは供給しないプロセッサコア15の指定を制御する制御回路16とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロセッサ装置に関し、特に、電源供給の状態を検知し、クロック信号を供給するあるいは供給しないプロセッサコアを指定するようにしたプロセッサ装置に関する。
【背景技術】
【0002】
近年、コンピュータの処理性能を増大させるため、1つのチップに複数のプロセッサコアを搭載したマルチコアプロセッサが採用されている。このマルチコアプロセッサを搭載したプロセッサ装置では、複数のプロセッサコアが複数のプログラムを並列に処理することにより、処理性能の向上が図られている。
【0003】
ところが、複数のプロセッサコアが搭載されたプロセッサ装置は、複数のプロセッサコアが同時に動作するため、消費電力の増大が問題となる。
【0004】
そこで、プロセッサコアの使用率に基づいて、使用するプロセッサコアを制御するプロセッサ装置が提案されている(例えば、特許文献1参照)。
【0005】
例えば、ノート型パーソナルコンピュータ等では、使用環境によってはバッテリにより電力を供給することがある。ところが、バッテリにより電力を供給している場合、ACアダプタのように安定して電力を供給できない使用環境であることが多く、プロセッサコアの使用率に基づいて、動作するプロセッサコアを多くすると、バッテリの残量が直ぐに低下してしまう。
【0006】
よって、特許文献1に記載のプロセッサ装置では、電源供給の状態を考慮して消費電量の低減をすることができないという問題があった。
【特許文献1】米国特許出願公開第2007/0188186号明細書
【発明の開示】
【発明が解決しようとする課題】
【0007】
そこで、本発明は、電源供給の状態に基づいて、プロセッサコア毎にクロック信号を供給又は停止する制御を行うことにより消費電力を低減することができるプロセッサ装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一態様によれば、複数のプロセッサコアを搭載するマルチコアプロセッサと、電源供給の状態を検知し、クロック信号を供給するあるいは供給しないプロセッサコアを指定するための制御信号を出力するシステムコントローラと、前記制御信号に基づいて、前記クロック信号を供給するあるいは供給しないプロセッサコアの指定を制御する制御部と、を有することを特徴とするプロセッサ装置を提供することができる。
【発明の効果】
【0009】
本発明のプロセッサ装置によれば、電源供給の状態に基づいて、プロセッサコア毎にクロック信号を供給又は停止する制御を行うことにより消費電力を低減することができる。
【発明を実施するための最良の形態】
【0010】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
図1は、本発明の一実施の形態に係るプロセッサ装置のハードウエアの構成を示すブロック図である。本実施の形態のプロセッサ装置1は、マルチコアプロセッサ11と、システムコントローラ12とが1チップに集積されて構成されている。なお、マルチコアプロセッサ11と、システムコントローラ12とが別々のチップに集積されていてもよい。
【0011】
プロセッサ装置1の外には、システム電源13及び電源マイクロコンピュータ(以下、電源マイコンという)14を有している。システム電源13は、プロセッサ装置1に電力を供給するための電源であり、例えば、ACアダプタ及びバッテリ等である。電源マイコン14は、プロセッサ装置1の電源監視及び制御を行う。また、電源マイコン14は、システム電源13の電源供給の状態を検知し、検知した電源供給の状態の変化に応じて割り込み信号を発生して、システムコントローラ12に通知する。ここで、電源供給の状態の変化とは、電源がACアダプタからバッテリに変化した場合、電源がバッテリからACアダプタに変化した場合、或いは、バッテリの残量が低下した場合等である。
【0012】
マルチコアプロセッサ11は、複数の、ここではプロセッサコアAからプロセッサコアHまで8個のプロセッサコア15と、制御回路16とを有して構成されている。なお、複数のプロセッサコア15は、別々のチップに集積されているマルチプロセッサの構成でもよい。各プロセッサコア15には、後述する制御回路16からクロック信号CLKが供給される。各プロセッサコア15は、このクロック信号CLKに基づいて、演算等の処理を行う。
【0013】
制御回路16には、クロック信号CLKが入力される。制御回路16は、このクロック信号CLKを分配し、各プロセッサコア15に供給する。また、制御回路16には、後述するシステムコントローラ12からの制御信号CSが入力され、制御回路16は、この制御信号CSに基づいて、各プロセッサコア15にクロック信号CLKを個別に供給するか否かの制御を行う。即ち、制御回路16は、制御信号CSに基づいて、クロック信号CLKを供給するかあるいは供給しないプロセッサコア15の指定を制御する。
【0014】
システムコントローラ12は、システムコントローラ12の中のメモリに記憶されるプロセッサコア状態テーブル17及び設定データ18を含んで構成されている。設定データ18には、プロセッサコア15をON又はOFFにするためのデータが格納されている。ここで、プロセッサコア15をONにするとは、プロセッサコア15にクロック信号CLKを供給することであり、プロセッサコア15をOFFにするとは、プロセッサコア15にクロック信号CLKの供給を停止することである。
【0015】
また、システムコントローラ12は、電源マイコン14からのリセット及び割り込み制御等を行うと共に、電源マイコン14からシステム電源13の電源の状態が通知されると、設定データ18を参照して、各プロセッサコア15にクロック信号CLKを個別に供給するか否かの制御を行うための制御信号CSを制御回路16に出力する。
【0016】
図2は、本実施の形態に係るプロセッサ装置のソフトウエアの構成を示すブロック図である。図2に示すように、プロセッサ装置1は、複数のプロセッサコア15を有するハードウエア21と、ハードウエア21上において実行されるプログラム群とから構成されているアプリケーションシステムである。そのシステムにおいて実行されるプログラム群は、オペレーティングシステム(以下、OSという)22と、OS22上に設けられた複数のアプリケーション23とを含んで構成されている。
【0017】
OS22は、複数のアプリケーション23の処理を複数のプロセッサコア15内、動作中のプロセッサコア15のリソースのそれぞれに割り当てる処理を行う。また、OS22は、プロセッサコア15のリソースの開放処理等も行う。ここで、リソースの開放処理とは、全てのプロセッサコア15が、その開放されるリソースを使用できない状態にすることである。また、プロセッサコア15のリソースとは、例えば、ローカルメモリ、演算ユニット及びI/O等である。
【0018】
ここで、システムコントローラ12に含まれるプロセッサコア状態テーブル17について説明する。図3は、プロセッサコア状態テーブルの例を説明するための説明図である。図3に示すように、プロセッサコア15毎にON状態かOFF状態かを示す1ビットの情報が対応付けられている。テーブルの値が0の場合、対応するプロセッサコア15がOFF状態を示し、テーブルの値が1の場合、対応するプロセッサコア15がON状態を示す。図3の例では、プロセッサコアA及びプロセッサコアHがOFF状態であり、プロセッサコアB及びプロセッサコアCがON状態である。
【0019】
上述したように、システムコントローラ12は、このプロセッサコア状態テーブル17を参照し、プロセッサコア15に供給されるクロック信号CLKを制御する。
【0020】
次に、このように構成された実施の形態の動作について説明する。
先ず、システム電源13がONにされた時に、具体的には、ユーザがACアダプタ又はバッテリを用いプロセッサ装置1に電力を供給した時に、所定のプロセッサコア15をOFFにする処理について説明する。図4は、電源ON時のプロセッサコアOFFの処理の流れの例を示すフローチャートである。
【0021】
先ず、システム電源13がONにされると図4の処理が開始される。電源マイコン14は、電源供給源がバッテリか否かを検出する(ステップS1)。電源マイコン14は、システム電源13から供給される電圧のレベルを検知し、電源供給源を検出する。電源供給源がバッテリではない場合、即ち、ACアダプタの場合、NOとなり、通常起動の処理が実行される(ステップS2)。この通常起動の処理とは、全てのプロセッサコア15にクロック信号CLKを供給することである。電源供給源がバッテリの場合、YESとなり、電源マイコン14からシステムコントローラ12にバッテリの駆動を通知する(ステップS3)。
【0022】
システムコントローラ12は、電源マイコン14からバッテリ駆動の通知を受けると、設定データ18を参照して、OFFにするプロセッサコア15を指定し、OS22に通知する(ステップS4)。なお、設定データ18は、複数あってもよい。また、複数ある設定データ18の内、どの設定データを参照するかをユーザにより設定するようにしてもよい。OS22は、指定されたプロセッサコア15のリソース開放処理を実施(ステップS5)した後、システムコントローラ12に指定されたプロセッサコア15のリソース開放処理の完了を通知する(ステップS6)。
【0023】
システムコントローラ12は、OS22からリソース開放処理の完了の通知を受けると、指定したプロセッサコア15にクロック信号CLKの供給を停止する(ステップS7)。最後に、システムコントローラ12は、プロセッサコア状態テーブル17を更新し(ステップS8)、処理を終了する。
【0024】
以上の処理の結果、システム電源13がONされると、電源供給源がACアダプタの場合、全てのプロセッサコア15にクロック信号CLKを供給し、電源供給源がバッテリの場合、システムコントローラ12が指定したプロセッサコア15にクロック信号CLKの供給を停止するようにした。この結果、電源供給源がバッテリの場合、所定のプロセッサコア15だけにクロック信号CLKが供給されるため、消費電力を低減することができる。
【0025】
次に、システム電源13がONにされた時以外に、所定のプロセッサコア15をOFFにする処理について説明する。図5は、電源ON時以外のプロセッサコアOFFの処理の流れの例を示すフローチャートである。ステップS4からステップS8は、上述した図4の処理と同様であるため説明を省略する。
【0026】
先ず、電源マイコン14は、電源供給の状態が変化したか否かを検出する(ステップS11)。電源供給の状態が変化していない場合、NOとなり、継続動作が行われる(ステップS12)。電源供給の状態が変化した場合、YESとなり、電源マイコン14は、システムコントローラ12に割り込み信号を発生して、その変化のあったことを通知する(ステップS13)。
【0027】
システムコントローラ12は、電源マイコン14からの割り込み信号を判別し(ステップS14)、電源供給の状態がACアダプタからバッテリに変化したか否かを検出する(ステップS15)。電源供給の状態がACアダプタからバッテリに変化した場合、YESとなり、上述したステップS4からステップS8が実行される。電源供給状態がACアダプタからバッテリに変化していない場合、NOとなり、システムコントローラ12は、バッテリの残量がスレッショルド(以下、THという)まで低下したか否かを検出する(ステップS16)。具体的には、バッテリの残量が後述する図6の矢印により示すTH1又はTH2以下に低下した場合に、バッテリの残量に応じて、OFFするプロセッサコアの数を動的に徐々に増やす処理が行われる。バッテリの残量がTH以下に低下していない場合、NOとなり、判別異常終了の処理が実行される(ステップS17)。
【0028】
バッテリの残量がTH以下に低下した場合、YESとなり、システムコントローラ12は、演算の処理量が所定値以上になったか否か又は演算の処理量の増加に伴い、OS22からの強制ONの指示があったか否かを検出する(ステップS18)。演算の処理量が所定値以上でなく、かつ、OS22からの強制ONの指示がない場合、NOとなり、上述したステップS4からステップS8が実行される。演算の処理量が所定値以上である又はOS22からの強制ONの指示がある場合、YESとなり、プロセッサコア15を全てONにする処理が実行される(ステップS19)。このプロセッサコア15を全てONにする処理については、後述する図7のステップS23からステップS26において、詳細に説明する。なお、プロセッサコア15を全てONにする処理は、演算の処理量又はOS22から指示に基づいて、停止しているプロセッサコア15の内、所定数だけONにしてもよい。
【0029】
以上の処理の結果、電源供給源がACアダプタからバッテリに変化した場合、及び、バッテリの残量がTH以下に低下した場合、システムコントローラ12が指定したプロセッサコア15にクロック信号CLKの供給を停止するようにした。この結果、所定のプロセッサコア15だけにクロック信号CLKが供給されるため、消費電力を低減することができる。
【0030】
ここで、バッテリの残量に応じて、OFFするプロセッサコアの数を動的に徐々に増やしていく処理について説明する。図6は、バッテリの残量とクロック信号CLKが供給されるプロセッサコアの数との関係の例を説明するための説明図である。図6の例では、プロセッサコアの数が8個として説明する。
【0031】
電源供給源がACアダプタの場合、8個のプロセッサコアにクロック信号CLKが供給される。先ず、電源供給源がACアダプタからバッテリに変化した場合、クロック信号CLKが供給されるプロセッサコアの数を8個から5個にする。バッテリの残量が50%以下になるまでは、クロック信号CLKが供給されるプロセッサコアの数を5個に保ち、バッテリの残量が50%以下、即ち、矢印によって示すTH1以下に低下するとクロック信号CLKが供給されるプロセッサコアの数を4個にする。更に、バッテリの残量が25%以下、即ち、矢印によって示すTH2以下に低下するとクロック信号CLKが供給されるプロセッサコアの数を3個にするように予め設定されている。
【0032】
このように、バッテリの残量に応じて、クロック信号CLKが供給されるプロセッサコアの数を減らすと、処理量は低下するが、消費電力は低減する。OFFにするプロセッサコアの数及び対象プロセッサコアは、システムコントローラ12内の設定データ18に設定される。なお、OFFにするプロセッサコアの数及び対象プロセッサコアは、ユーザにより設定、或いは、変更できるようにしてもよい。即ち、ユーザによっては、処理量を優先させたい、或いは、バッテリを長く持たせたい場合などがある。
【0033】
処理量を優先させたい場合、例えば、ユーザは、OFFにするプロセッサコアの数を2個に設定する。これにより、消費電力の低減の効果は小さくなるが、処理量を増やすことができる。また、バッテリを長く持たせたい場合、例えば、ユーザは、OFFにするプロセッサコアの数を6個に設定する。これにより、処理量は低減するが、バッテリの駆動時間を長くすることができる。
【0034】
次に、プロセッサコアをONにする処理について説明する。図7は、プロセッサコアONの処理の流れの例を示すフローチャートである。ステップS11からステップS14は、上述した図5の処理と同様であるため説明を省略する。
【0035】
先ず、ステップS14において、システムコントローラ12は、電源マイコン14から割り込みを判別した後、電源供給の状態がバッテリからACアダプタに変化したか否かを検出する(ステップS21)。電源供給状態がバッテリからACアダプタに変化していない場合、NOとなり、判別異常終了の処理が実行される(ステップS22)。電源供給状態がバッテリからACアダプタに変化した場合、YESとなり、システムコントローラ12は、プロセッサコア状態テーブル17を参照して、ONにするプロセッサコア15を指定し、OS22に通知する(ステップS23)。このONにするプロセッサコア15を指定する処理は、システムコントローラがプロセッサコア状態テーブル17を参照し、OFFになっているプロセッサコア15を認識することにより実行される。
【0036】
次に、システムコントローラ12は、指定したプロセッサコア15にクロック信号CLKを供給(ステップS24)し、クロック信号CLKを供給したことをOS22に通知する(ステップS25)。最後に、システムコントローラ12は、プロセッサコア状態テーブル17を更新し(ステップS26)、処理を終了する。
【0037】
以上の処理の結果、電源供給源がバッテリからACアダプタに変化した場合、システムコントローラ12が指定したプロセッサコア15にクロック信号CLKを供給するようにした。
【0038】
以上のように、プロセッサ装置1は、電力供給源がバッテリの場合、指定された1以上のプロセッサコア15にクロック信号CLKの供給を停止することができる。また、プロセッサ装置1は、バッテリの残量の低下に伴って、プロセッサコア15にクロック信号CLKの供給を停止することができる。
【0039】
よって、本実施の形態のプロセッサ装置によれば、電源供給の状態に基づいて、プロセッサコア毎にクロック信号を供給又は停止する制御を行うことにより消費電力を低減することができる。
【0040】
なお、本明細書における各フローチャート中の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、あるいは実行毎に異なった順序で実行してもよい。
【0041】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【0042】
【図1】本発明の一実施の形態に係るプロセッサ装置のハードウエアの構成を示すブロック図である。
【図2】本実施の形態に係るプロセッサ装置のソフトウエアの構成を示すブロック図である。
【図3】プロセッサコア状態テーブルの例を説明するための説明図である。
【図4】電源ON時のプロセッサコアOFFの処理の流れの例を示すフローチャートである。
【図5】電源ON時以外のプロセッサコアOFFの処理の流れの例を示すフローチャートである。
【図6】バッテリの残量と駆動しているプロセッサコアの数との関係の例を説明するための説明図である。
【図7】プロセッサコアONの処理の流れの例を示すフローチャートである。
【符号の説明】
【0043】
1 プロセッサ装置、11 マルチコアプロセッサ、12 システムコントローラ、13 システム電源、14 電源マイコン、15 プロセッサコア、16 制御回路、17 プロセッサコア状態テーブル、18 設定データ、21 ハードウエア、22 OS、23 アプリケーション

【特許請求の範囲】
【請求項1】
複数のプロセッサコアを搭載するマルチコアプロセッサと、
電源供給の状態を検知し、クロック信号を供給するあるいは供給しないプロセッサコアを指定するための制御信号を出力するシステムコントローラと、
前記制御信号に基づいて、前記クロック信号を供給するあるいは供給しないプロセッサコアの指定を制御する制御部と、
を有することを特徴とするプロセッサ装置。
【請求項2】
前記システムコントローラは、前記クロック信号を供給するあるいは供給しないプロセッサコアを指定するための情報が格納されている設定データを有し、
前記設定データは、ユーザからの指示に応じて設定又は変更可能なことを特徴とする請求項1に記載のプロセッサ装置。
【請求項3】
前記システムコントローラは、前記電源供給の状態がACアダプタからバッテリに変化した又はバッテリの残量が所定値以下まで低下した場合、クロック信号を供給しないプロセッサを指定するための前記制御信号を前記制御部に出力することを特徴とする請求項1又は請求項2に記載のプロセッサ装置。
【請求項4】
前記システムコントローラは、演算の処理量が増大した場合、クロック信号を供給していない全部又は所定数のプロセッサコアに対し、クロック信号を強制供給するための前記制御信号を前記制御部に出力することを特徴とする請求項1から請求項3の何れか1項に記載のプロセッサ装置。
【請求項5】
前記クロック信号を強制供給する場合、前記演算の処理量に応じた所定数のプロセッサコアに対して、前記クロック信号を強制供給することを特徴とする請求項4に記載のプロセッサ装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2009−193536(P2009−193536A)
【公開日】平成21年8月27日(2009.8.27)
【国際特許分類】
【出願番号】特願2008−36415(P2008−36415)
【出願日】平成20年2月18日(2008.2.18)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(390010308)東芝デジタルメディアエンジニアリング株式会社 (192)
【Fターム(参考)】