(57)【要約】【課題】プロセッサごとに駆動電圧を設定し、消費電力を抑制することができる電圧設定装置を提供する。【解決手段】電圧設定装置を、電圧制御手段１と、動作状態検出手段２と、駆動電圧設定手段３を備える構成とする。電圧制御手段１は、複数のコアを有するプロセッサのコアごとの駆動電圧を複数段階で制御する。動作状態検出手段２は、プロセッサのコアごとに、駆動電圧ごとの動作状態を検出する。駆動電圧設定手段３は、コアごとに、コアの動作状態に異常が生じた駆動電圧よりも１段階高い駆動電圧を、コアの実運用時の駆動電圧として設定する。【選択図】      図１
2019159476.tif 000002
【特許請求の範囲】
【請求項１】
複数のコアを有するプロセッサの前記コアごとの駆動電圧を複数段階で制御する電圧制御手段と、
前記プロセッサの前記コアごとに、前記駆動電圧ごとの動作状態を検出する動作状態検出手段と、
前記コアごとに、前記コアの動作状態に異常が生じた駆動電圧よりも１段階高い駆動電圧を、前記コアの実運用時の駆動電圧として設定する駆動電圧設定手段と
を備えることを特徴とする電圧設定装置。
【請求項２】
前記電圧制御手段は、前記動作状態検出手段が前記駆動電圧ごとの前記コアの動作状態を検出する際に、電圧の高い側から１段階ずつ電圧を下げることを特徴とする請求項１に記載の電圧設定装置。
【請求項３】
前記電圧制御手段は、前記動作状態検出手段が前記駆動電圧ごとの前記コアの動作状態を検出する際に、前記コアの定格駆動電圧から１段階ずつ電圧を下げることを特徴とする請求項１または２に記載の電圧設定装置。
【請求項４】
前記電圧制御手段は、前記定格駆動電圧で前記コアをそれぞれ動作させ、動作状態検出手段記が前記定格駆動電圧において前記プロセッサのいずれの前記コアにおいても動作状態の異常を検出しなかったときに、他の駆動電圧となるように制御を行うことを特徴とする請求項１から３いずれかに記載の電圧設定装置。
【請求項５】
複数段階の電圧で動作するコアを複数、有するプロセッサと、
請求項１から４いずれかに記載の電圧設定装置と
を備え、
前記電圧設定装置の前記駆動電圧設定手段は、前記プロセッサの前記コアごとの実運用時の駆動電圧を設定することを特徴とする情報処理装置。
【請求項６】
複数のコアを有するプロセッサの前記コアごとの駆動電圧を複数段階で制御し、
前記プロセッサの前記コアごとに、前記駆動電圧ごとの動作状態を検出し、
前記コアごとに、前記コアの動作状態に動作状態に異常が生じた駆動電圧よりも１段階高い駆動電圧を、前記コアの実運用時の駆動電圧として設定することを特徴とする電圧設定方法。
【請求項７】
前記駆動電圧ごとの前記コアの動作状態を検出する際に、電圧の高い側から１段階ずつ電圧を下げることを特徴とする請求項６に記載の電圧設定方法。
【請求項８】
前記駆動電圧ごとの前記コアの動作状態を検出する際に、前記コアの定格駆動電圧から１段階ずつ電圧を下げることを特徴とする請求項６または７に記載の電圧設定方法。
【請求項９】
定格駆動電圧で前記コアをそれぞれ動作させ、
前記定格駆動電圧において前記プロセッサのいずれの前記コアにおいても動作状態の異常を検出しなかったときに、他の駆動電圧となるように制御を行うことを特徴とする請求項６から８いずれかに記載の電圧設定方法。
【請求項１０】
複数のコアを有するプロセッサの前記コアごとの駆動電圧を複数段階で制御する電圧制御処理と、
前記プロセッサの前記コアごとに、前記駆動電圧ごとの動作状態を検出する動作状態検出処理と、
前記コアごとに、前記コアの動作状態に異常が生じた駆動電圧よりも１段階高い駆動電圧を、前記コアの実運用時の駆動電圧として設定する駆動電圧設定処理と
をコンピュータに実行させることを特徴とする電圧設定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサの制御技術に関するものであり、特に、駆動電圧の設定技術に関するものである。
【背景技術】
【０００２】
計算機システムは、多くのＣＰＵ（Central Processing Unit）を用いて構成されることが多く消費電力を抑制するためには、ＣＰＵをより低電圧で動作させることが望ましい。しかし、駆動電圧を下げるとＣＰＵの回路を構成するトランジスタ素子の動作マージンが狭くなり、ＣＰＵの動作が不安定になる恐れがある。そのため、ＣＰＵの駆動電圧は、マージンを考慮した定格電圧として定められた電圧に設定されていることが多い。消費電力の抑制の観点からは、ＣＰＵやコアごとにより低い駆動電圧で動作させることが望ましいが、駆動電圧は、正常に動作する最低電圧以上に設定される必要がある。
【０００３】
計算機システムに用いられるＣＰＵは、複数のコアで構成されている。ＣＰＵの正常に動作し得る駆動電圧は、製造時の特性ばらつきによってＣＰＵ間やコア間で異なることがある。また、同じＣＰＵやコアでも動作環境や経時変化によって正常に動作し得る駆動電圧の範囲は変化し得る。そのため、ＣＰＵやコアごとに正常に動作する駆動電圧を設定する技術があることが望ましく、関連する技術の開発が行われている。そのような、ＣＰＵごとに駆動電圧を設定する技術としては、例えば、特許文献１のような技術が開示されている。
【０００４】
特許文献１は、プロセッサの電圧マージンを診断し、駆動電圧を設定する情報処理装置に関するものである。特許文献１の情報処理装置は、起動時に、各プロセッサにおいて電圧マージン診断プログラムを実行し、プロセッサごとの電圧マージンを確認している。特許文献１の情報処理装置は、確認した電圧マージンを基にプロセッサの駆動電圧を、マージンを持って安定して動作する電圧に設定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−０３４５０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の技術は次のような点で十分ではない。特許文献１の情報処理装置は、ＣＰＵが正常に動作する駆動電圧のマージンを診断し、マージンを持って安定して動作する電圧に、駆動電圧を設定している。そのため、特許文献１の技術では、ＣＰＵは安定して動作はするものの、ＣＰＵのコアごとの消費電力を抑制する上で最適な駆動電圧を設定する技術としては十分ではない。
【０００７】
本発明は、上記の課題を解決するため、プロセッサのコアごとに駆動電圧を設定し、消費電力を抑制することができる電圧設定装置を提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、本発明の電圧設定装置は、電圧制御手段と、動作状態検出手段と、駆動電圧設定手段を備えている。電圧制御手段は、複数のコアを有するプロセッサのコアごとの駆動電圧を複数段階で制御する。動作状態検出手段は、プロセッサのコアごとに、駆動電圧ごとの動作状態を検出する。駆動電圧設定手段は、コアごとに、コアの動作状態に異常が生じた駆動電圧よりも１段階高い駆動電圧を、コアの実運用時の駆動電圧として設定する。
【０００９】
本発明の電圧設定方法は、複数のコアを有するプロセッサのコアごとの駆動電圧を複数段階で制御する。本発明の電圧設定方法は、プロセッサのコアごとに、駆動電圧ごとの動作状態を検出し、コアごとに、コアの動作状態に動作状態に異常が生じた駆動電圧よりも１段階高い駆動電圧を、コアの実運用時の駆動電圧として設定する。
【発明の効果】
【００１０】
本発明によると、プロセッサのコアごとに駆動電圧を設定し、消費電力を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態の構成の概要を示す図である。
【図２】本発明の第２の実施形態の構成の概要を示す図である。
【図３】本発明の第２の実施形態の動作フローを示す図である。
【図４】本発明の第２の実施形態の処理フローを模式的に示した図である。
【発明を実施するための形態】
【００１２】
（第１の実施形態）
本発明の第１の実施形態について図を参照して詳細に説明する。図１は、本実施形態の電圧設定装置の構成の概要を示したものである。本実施形態の電圧設定装置は、電圧制御手段１と、動作状態検出手段２と、駆動電圧設定手段３を備えている。電圧制御手段１は、複数のコアを有するプロセッサのコアごとの駆動電圧を複数段階で制御する。動作状態検出手段２は、プロセッサのコアごとに、駆動電圧ごとの動作状態を検出する。駆動電圧設定手段３は、コアごとに、コアの動作状態に異常が生じた駆動電圧よりも１段階高い駆動電圧を、コアの実運用時の駆動電圧として設定する。
【００１３】
本実施形態の電圧設定装置は、電圧制御手段１によって駆動電圧を複数段階で制御し、動作状態検出手段２においてコアごとの動作状態を検出している。また、本実施形態の電圧設定装置は、駆動電圧設定手段３において、コアの動作状態に異常が生じた駆動電圧よりも１段階高い駆動電圧を、コアごとの実運用時の駆動電圧として設定する。そのため、本実施形態の電圧設定装置によって駆動電圧を設定することで、プロセッサのコアそれぞれは、コアごとの正常に動作可能な最低電圧に近い電圧値で動作する。その結果、本実施形態の電圧設定装置を用いることで、コアごとに駆動電圧を設定し、消費電力を抑制することができる。
【００１４】
（第２の実施形態）
本発明の第２の実施形態について図を参照して詳細に説明する。図２は、本実施形態の情報処理装置の構成の概要を示したものである。本実施形態の情報処理装置は、ホスト１０と、計算エンジン２０を備えている。本実施形態の情報処理装置は、ホスト１０の制御によって計算エンジン２０でコンピュータプログラムを実行する計算機システムである。
【００１５】
ホスト１０は、計算エンジン２０においてのコンピュータプログラムを実行、データの入出力およびその他の情報処理装置におけるデータ処理に係る動作の制御を行う。また、ホスト１０は、計算機エンジン２０のＣＰＵ（Central Processing Unit）のコアの駆動電圧の設定を行う電圧設定部１１を備えている。
【００１６】
電圧設定部１１の構成について説明する。電圧設定部１１は、初期化制御部１２と、試験実行部１３と、駆動電圧設定部１４をさらに備えている。
【００１７】
初期化制御部１２は、情報処理装置の起動時に計算エンジン２０の初期化を制御する。初期化制御部１２は、定格電圧値で動作させた状態で計算エンジン２０の初期化を行う。初期化では、レジスタやメモリに保持されている情報のクリアや、レジスタへの初期値の書き込みなどが行われる。初期化制御部１２は、定格電圧値で動作させた際に、ＣＰＵの各コアの動作確認を行う。
【００１８】
試験実行部１３は、計算エンジン２０のＣＰＵの各コアの駆動電圧を変化させながら、駆動電圧ごとに各コアにおいて試験プログラムを実行させる。試験実行部１３は、試験を実行する際に、ＣＰＵ２１の各コアの駆動電圧を複数段階で制御する。試験実行部１３は、定格電圧で初期化が行われた後、定格電圧から１段階ずつコアの駆動電圧を下げて、駆動電圧ごとに各コアにおいて試験プログラムを実行する。１段階分の下げ幅は、定格電圧値と規格上の駆動電圧の最低値の間に、制御可能な間隔で複数段階の電圧設定値が存在するように設定される。
【００１９】
試験実行部１３は、試験プログラムの実行結果をコアから取得し、あらかじめ保持している基準データと比較する。試験実行部１３は、試験プログラムの実行結果が基準データと一致または基準データとの差が許容されている範囲内であるとき、試験対象のコアが各駆動電圧で正常に動作していると判断する。また、試験実行部１３は、試験プログラムの実行結果と基準データとが不一致または差が許容されている範囲外であるとき、試験対象のコアの動作に異常が生じていると判断する。また、本実施形態の試験実行部１３の機能は、第１の実施形態の電圧制御手段１および動作状態検出手段２に相当する。
【００２０】
駆動電圧設定部１４は、ＣＰＵ２１のコアごとに実運用時の駆動電圧を設定する機能を有する。駆動電圧設定部１４は、試験実行部１３がコアごとに試験プログラムを実行した際に、動作異常が生じた電圧よりも１段階高い電圧を実運用時の駆動電圧として設定する。また、本実施形態の駆動電圧設定部１４の機能は、第１の実施形態の駆動電圧設定手段３に相当する。
【００２１】
電圧設定部１１の各処理は、ＦＰＧＡ（Field Programmable Gate Array）等の半導体装置によって行われてもよく、また、ＣＰＵ上でコンピュータプログラムを実行することで行われてもよい。
【００２２】
計算エンジン２０は、複数のコアを有するＣＰＵ２１と、メモリ２２と、ホストインタフェース２３を備えている。本実施形態のＣＰＵ２１は、コア２４−１、コア２４−２、コア２４−３およびコア２４−４の４個のコアで構成されている。コアの数は、４個以外であってもよい。
【００２３】
ＣＰＵ２１の各コアは、電圧設定部１１の制御により駆動電圧がコアごとにそれぞれ可変である。電圧設定部１１は、ＣＰＵ２１の各コアに電源を供給する電源部を制御することでＣＰＵ２１の各コアの駆動電圧を制御する。
【００２４】
メモリ２２は、ＤＲＡＭ（Dynamic Random Access Memory）等で構成され、ＣＰＵ２１の各コアで実行するプログラムや処理に用いるデータ等を記憶する。
【００２５】
ホストインタフェース２３は、ホスト１０との接続インタフェースである。ホストインタフェース２３とＣＰＵ２１およびメモリ２２は、それぞれバスを介して接続されている。
【００２６】
本実施形態の情報処理装置における初期化動作およびＣＰＵ２１の各コアにおける駆動電圧の設定方法について説明する。
【００２７】
情報処理装置の起動を検知すると、初期化制御部１２は、計算エンジン２０の初期化を実施する（ステップＳ１１）。初期化制御部１２は、ＣＰＵ２１の各コアを定格電圧値で動作させた状態で計算エンジン２０の初期化を行う。初期化では、レジスタやメモリに保持されている情報のクリアや、レジスタへの初期値の書き込みなどが行われる。
【００２８】
また、初期化の際に、初期化制御部１２は、ＣＰＵ２１の各コアを定格電圧値で動作させて試験プログラムを実行する（ステップＳ１２）。試験プログラムは、電圧設定部１１の内部またはホスト１０の記憶領域にあらかじめ保存されている。
【００２９】
初期化制御部１２は、試験命令列や試験データを転送し、メモリ２２の記憶領域に書き込みを行う。また、初期化制御部１２は、各コアに命令カウンタやソフトウェアビジブルレジスタなどをハードウェア情報として転送する。
【００３０】
データの転送が終わると、初期化制御部１２は、コアに試験の実行の要求を送る。試験の実行の要求を受け取ると、コアは、試験プログラムを実行し結果を初期化制御部１２に返送する。
【００３１】
試験プログラムの実行結果を受け取ると、初期化制御部１２は、試験プログラムの実行結果と基準データを比較し、試験結果の確認を行う（ステップＳ１３）。
【００３２】
試験プログラムの実行結果と基準データが一致せずに異常が生じているとき（ステップＳ１４でＮｏ）、初期化制御部１２は、ＣＰＵ２１のログの取得と故障内容の解析を行う（ステップＳ２２）。故障内容の解析を行うと、初期化制御部１２は、ＣＰＵ２１に障害が発生していることを示す情報をホスト１０の表示機能等を介して作業者に通知する（ステップＳ２３）。障害が発生していることが通知されたＣＰＵ２１は、作業者によって交換される。
【００３３】
試験プログラムの実行結果と基準データが一致し、試験に動作しているとき（ステップＳ１４でＹｅｓ）、初期化制御部１２は、ＣＰＵ２１の各コアの初期化の動作を完了する。
【００３４】
ＣＰＵ２１の初期化の動作が完了すると、試験実行部１３は、動作可能な各コアの最低の駆動電圧値を確認する試験を開始する。
【００３５】
試験実行部１３は、いずれかのコアについて定格電圧から１段階下げた電圧に駆動電圧を設定する。本実施形態では、図２で「コア０」として示しているコア２４−１から試験が開始され、コア２４−２、コア２４−３およびコア２４−４の順に試験が行われるものとする。
【００３６】
試験対象のコアの駆動電圧を設定すると、試験実行部１３は、試験対象のコアで試験プログラムを実行する（ステップＳ１５）。
【００３７】
試験プログラムの実行を開始すると、試験実行部１３は、試験命令列や試験データを転送し、メモリ２２の記憶領域に書き込みを行う。また、試験実行部１３は、コアに命令カウンタやソフトウェアビジブルレジスタなどをハードウェア情報として転送する。
【００３８】
データの転送が終わると、試験実行部１３は、コアに試験の実行の要求を送る。試験の実行の要求を受け取ると、コアは、試験プログラムを実行し結果を試験実行部１３に返送する。
【００３９】
試験プログラムの実行結果を受け取ると、試験実行部１３は、試験プログラムの実行結果と基準データを比較し、試験結果を確認する（ステップＳ１６）。試験プログラムの実行結果と基準データが一致するとき、試験実行部１３は、コアが正常に動作したと判断する。
【００４０】
コアが正常に動作したと判断すると（ステップＳ１７でＹｅｓ）、試験実行部１３は、コアの駆動電圧を1段階さらに下げて試験を実行する（ステップＳ２１）。駆動電圧を１段階さらに下げて試験を実行すると、試験実行部１３は、ステップ１６の試験結果の確認の動作を行う。
【００４１】
ステップＳ１６で試験結果の確認を行った際に、コアが正常に動作していなかったとき（ステップＳ１７でＮｏ）、試験実行部１３は、正常に動作しなかった電圧値よりも１段階高い電圧値を対象となるコアの最低電圧値として保存する（ステップＳ１８）。
【００４２】
最低電圧値の設定が完了していないコアがある場合には（ステップＳ１９でＮｏ）、試験実行部１３は、ステップＳ１５からの動作を行い他のコアの最低電圧値の設定を順次、行う。
【００４３】
全てのコアの最低電圧値が設定されると（ステップＳ１９でＹｅｓ）、駆動電圧設定部１４は、各コアの駆動電圧値をそれぞれの最低電圧値に設定する（ステップＳ２０）。各コアの駆動電圧値が設定されると、情報処理装置における通常の処理が開始される。
【００４４】
図４は、各コアの電圧設定を行う際のフローを模式的に示したものである。本実施形態の情報処理装置は、起動後にＣＰＵ２１の各コアの初期化を行い、初期化が完了すると、各コアで駆動電圧を変化させながら試験プログラムを実行する。コアごとに、正常に動作する最低電圧値のデータが取得されると、各コアの駆動電圧が最低電圧値に設定された状態で情報処理装置は、通常のデータ処理等を開始する。
【００４５】
本実施形態の情報処理装置は、電圧設定部１１がＣＰＵ２１の各コアについて正常に動作し得る最低電圧値の情報を取得し、各コアの駆動電圧として設定している。そのため、各コアは、通常のデータ処理等のプログラムを実行する際に、動作し得る中で最も小さい電圧値で動作する。そのため、各コアの消費電力が抑制されるの、ＣＰＵ２１全体での消費電力も抑制される。
【００４６】
また、本実施形態の情報処理装置は、起動するごとにＣＰＵ２１の各コアの駆動電圧を設定するので、動作環境の変化やＣＰＵ２１の各素子の特性の経時変化が生じた場合でも、消費電力を最小化して動作することができる。
【００４７】
また、本実施形態の情報処理装置は、起動するごとにＣＰＵ２１の各コアの駆動電圧を設定するので、ＣＰＵ２１の製造時の特性のばらつきや、環境の変化等による特性の変動に対するマージンを小さく設定しても正常に動作する。そのため、本実施形態の情報処理装置は、各コアの動作電圧を、マージンを広く取る場合に比べて下げることができるので消費電力を抑制した状態で動作することができる。以上より、本実施形態の情報処理装置は、プロセッサのコアごとに駆動電圧を設定することで、消費電力を抑制することができる。
【００４８】
第２の実施形態の情報処理装置では、起動するごとにＣＰＵ２１の各コアの駆動電圧の設定を行っているが、駆動電圧の設定は、装置のメンテナンス後や設置環境の変更後に作業者等の開始入力に基づいて行われてもよい。そのような構成とする場合には、各コアの駆動電圧の情報は、例えば、不揮発性の半導体記憶装置に保存される。
【００４９】
また、第２の実施形態では、駆動電圧の設定を行う際に、定格電圧から１段階ずつ電圧を下げて試験プログラムの実行を行っていが、定格電圧以外から試験プログラムの実行を行ってもよい。例えば、前回、試験を行った際の駆動電圧の値を記憶し、数段階、高い駆動電圧から試験プログラムを実行してもよい。そのような構成とすることで、駆動電圧の設定に要する時間を短縮化することができる。また、駆動電圧を変えながら試験プログラムを実行する際に、電圧を下げる幅を広くして動作に障害が発生する電圧を確認し、最後の１段階に入る電圧の範囲で、電圧を下げる幅を狭くして試験プログラムを実行した結果に基づいて最低電圧値を設定してもよい。そのような構成とすることで、駆動電圧の設定に要する時間の短縮と、最低駆動の設定精度の向上を両立することができる。
【００５０】
第２の実施形態の情報処理装置の例では、計算エンジンは、４個のコアを有する１個のＣＰＵのみを備えているが、ＣＰＵ１個あたりのコアの数は４個以外であってもよく、また、ＣＰＵの数は２個以上であってもよい。
【００５１】
第２の実施形態の電圧設定部１１における各処理は、ＣＰＵ上でコンピュータプログラムを実行することで行われてもよい。電圧設定部１１における各処理を行うコンピュータプログラムは、記録媒体に記録して頒布することもできる。記録媒体としては、例えば、データ記録用磁気テープや、ハードディスクなどの磁気ディスクを用いることができる。また、記録媒体としては、ＣＤ-ＲＯＭ（Compact Disc Read Only Memory）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスクを用いることもできる。不揮発性の半導体記憶装置を記録媒体として用いてもよい。
【符号の説明】
【００５２】
１    電圧制御手段
２    動作状態検出手段
３    駆動電圧設定手段
１０    ホスト
１１    電圧設定部
１２    初期化制御部
１３    試験実行部
１４    電圧設定部
２０    計算エンジン
２１    ＣＰＵ
２２    メモリ
２３    ホストインタフェース
２４−１    コア
２４−２    コア
２４−３    コア
２４−４    コア
【図１】
2019159476.tif 000003
【図２】
2019159476.tif 000004
【図３】
2019159476.tif 000005
【図４】
2019159476.tif 000006