説明

マイクロプロセッサにおける電圧および周波数変更に関連する動作を管理する方法、データ処理システムおよびコンピュータ・プログラム

【課題】1つ以上の電圧変更および1つ以上の周波数変更と関連付けられた管理動作を提供する。
【解決手段】電圧変更リクエストおよび周波数変更リクエストは、動的電圧および周波数スケーリング(DVFS)動作と関連付けられる。DVFS動作は1つ以上のダイレクト・カレント・アセンブリにより実行されるべくプロセッサにより送信される。1つ以上の電圧変更に関連付けられたシーケンスおよび1つ以上の周波数変更に関連付けられたシーケンスはシステムにより検出される。該シーケンスは、1つ以上の先行する電圧変更リクエストの完了を示す付加的な電圧変更を挿入し得るように動的に改変される。電圧変更リクエストが完了していれば、次に来る1つ以上の電圧変更リクエストを処理することが可能となる。電圧変更リクエストが首尾よく完了させられなかったときには、1つ以上の今後の電圧変更がサスペンドされる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的にはプロセッサに関し、特にマイクロプロセッサ内での動的な電圧および周波数スケーリングに関する。
【背景技術】
【0002】
多くのハイ・エンドのシステム・アーキテクチャは1つ以上のプロセッサに冗長電源を供給する。該システム・アーキテクチャはダイレクト・カレント・アセンブリ(Direct Current Assembly(DCA))などの電流シェアリング電源を含み、このため該DCAはプロセッサと電圧レギュレータ・モジュール(voltage regulator module(VRM))との間にマイクロコントローラを位置づける。電圧変更リクエストがプロセッサによりDCAに対して行われるとき、該リクエスト送信においてエラーが発生し得る。該エラーは、通信チャネルにおけるノイズに起因する該電圧変更リクエストの配信失敗、VRMにおける故障、および、該電圧変更リクエストが成功したか失敗したかを確認するレスポンスの配信失敗のうちの少なくとも1つを含むが、これらに限定はされない。
【発明の概要】
【発明が解決しようとする課題】
【0003】
ハイ・エンドのシステム・アーキテクチャ内で電圧変更リクエストが処理され確認されることを可能にする解決策が幾つか提案されている。第1の提案された解決策は、電圧変更リクエストのステータスを判定するために、各電圧コマンド後に、プロセッサにより“ポーリング”コマンドを発出することを含む。ポーリング・コマンドの発出は、プロセッサとDCAとの間のさらなる帯域幅を利用し、そのことによって、他の動作に指定されている帯域幅を消費する。さらなるプロセッサ帯域幅の消費には、システム電力管理センサのために必要とされる帯域幅が利用されるので、システム・アーキテクチャ内での電力管理の質に悪影響を及ぼす。第2の提案されている解決策は、“完成電圧遷移”信号をDCAからプロセッサに送信することを含む。“完成電圧遷移”信号の送信は各電圧ドメインのためにさらなる入力/出力ピンを必要とし、それらのピンはハイ・エンドのシステム・アーキテクチャのための拡張可能なソリューションをもたらすように共有される。しかし、その1つ以上の入力/出力ピンが共有されると、プロセッサは、どのDCAが“完成電圧遷移”信号を送ったのかを判定するのが困難となる。このため、電圧変更リクエストは完了しない。提案されている解決策は最適でもないし好ましくもない解決策である。
【課題を解決するための手段】
【0004】
1つ以上の電圧変更および1つ以上の周波数変更に関連付けられた動作を管理するための方法、システムおよびコンピュータ・プログラムが開示される。電圧変更リクエストおよび周波数変更リクエストは、動的電圧および周波数スケーリング(dynamic voltage and frequency scaling(DVFS))動作と関連付けられる。周波数変更動作は1つまたは複数のプロセッサにより実行される。電圧変更リクエストは1つ以上のダイレクト・カレント・アセンブリ(DCA)により実行されるべくプロセッサにより送信される。1つ以上の電圧変更動作に関連付けられたシーケンスおよび1つ以上の周波数変更動作に関連付けられたシーケンスはシステムにより検出される。該シーケンスは、1つ以上の先行する電圧変更リクエストの完了を示す付加的な電圧変更リクエストを電圧変更動作のシーケンスの終わりに挿入し得るように動的に改変される。電圧変更リクエストが完了しれいれば、次に来る1つ以上の電圧変更リクエストを処理することが可能となる。電圧変更リクエストが首尾よく完了させられなかったときには、1つ以上の今後の電圧変更がサスペンドされる。
【0005】
本発明の上記のおよび別の目的、特徴、および利点は、次の詳細な書面にされた記述において明らかになるであろう。
【0006】
本発明自体、およびその利点は、実例となる実施態様についての次の詳細な記述を添付図面と関連させて読むことにより最善に理解されるであろう。
【図面の簡単な説明】
【0007】
【図1】本発明の一実施態様に従う、本発明が実施される例としてのハイ・エンドのシステム・アーキテクチャのブロック図表現を提供する。
【図2】本発明の一実施態様に従う、1つ以上の電圧レギュレータ・モジュール、フレキシブル・サポート・プロセッサ(flexible support processor(FSP))、および1つ以上のダイレクト・カレント・アセンブリと関連付けられた1つ以上のマイクロプロセッサのブロック図表現である。
【図3】本発明の一実施態様に従う、動的電圧および周波数スケーリング(DVFS)動作の中で1つ以上のリクエスト(例えば電圧変更リクエストおよび周波数変更リクエスト)を管理するためのプロセスを示すフローチャートである。
【図4】本発明の一実施態様に従う、DVFS動作の実行のためのリクエストの成功または失敗を判定するためのダイレクト・カレント・アセンブリ(DCA)のプロセスを示すフローチャートである。
【図5】本発明の一実施態様に従う、システム・アーキテクチャ内の1つ以上のコンポーネントが故障した時に電圧変更リクエストを管理するためのFSPのプロセスを示すフローチャートである。
【発明を実施するための形態】
【0008】
実例となる実施態様は、1つ以上の電圧変更および1つ以上の周波数変更と関連付けられた動作を管理するための方法、システムおよびコンピュータ・プログラムを提供する。電圧変更リクエストおよび周波数変更リクエストは動的電圧および周波数スケーリング(DVFS)動作と関連付けられる。周波数変更動作は、1つまたは複数のプロセッサにより実行される。電圧変更リクエストは、1つ以上のダイレクト・カレント・アセンブリ(DCA)により実行されるべくプロセッサにより送信される。1つ以上の電圧変更動作に関連付けられたシーケンスおよび1つ以上の周波数変更動作に関連付けられたシーケンスはシステムにより検出される。該シーケンスは、1つ以上の先行する電圧変更リクエストの完了を示す付加的な電圧変更リクエストを電圧変更のシーケンスの終わりに挿入し得るように動的に改変される。電圧変更リクエストが完了していれば、次に来る1つ以上の電圧変更リクエストを処理することが可能となる。電圧変更リクエストが首尾よく完了させられなかったときには、1つ以上の今後の電圧変更がサスペンドされる。
【0009】
本発明の代表的な実施態様についての次の詳細な記述においては、本発明が実施され得る特定の代表的実施態様が、当業者が本発明を実施し得るように充分に詳しく記述されるが、他の実施態様も利用され得るということ、および、本発明の精神および範囲から逸脱せずに論理的、アーキテクチャ的、プログラム的、機械的、電気的変更、およびその他の変更がなされ得るということが理解されるべきである。従って、次の詳細な記述は限定的な意味で解されるべきではなく、本発明の範囲は添付されている請求項およびその同等物により定義される。
【0010】
図面の記述の中では、前の1つまたは複数の図にある同様の要素には同様の名称および参照番号が与えられている。後の図が要素を異なる状況においてあるいは異なる機能で利用する場合には、該要素には図の番号を表す先導数字が別に与えられている。要素に割り当てられた特定の数字は、もっぱら記述を助けるために与えられており、記述される実施態様に関する限定(構造的、あるいは機能的、あるいはその他)を意味するように意図されてはいない。
【0011】
特定のコンポーネント名、装置名およびパラメータ名(例えば本明細書に記載されている実行ユーティリティ/論理などのそれ)のうちの少なくとも1つの使用は単なる例示を目的としているのであって、本発明についての限定を意味するように意図されてはいないということは明らかである。従って本発明は、限定無しに、本明細書においてコンポーネント/装置/パラメータを記述するために利用されるさまざまな術語/技術用語で講じられ得る。本明細書で利用される各々の用語には、その用語が利用される文脈において最も広い解釈が与えられるべきである。
【0012】
ここで図面を、始めに図1を参照すると、1つの実施態様の中で利用される、例としてのハイ・エンドのシステム・アーキテクチャのブロック図表現が描かれている。図示されているように、システム・アーキテクチャ100は1つ以上の中央処理ユニット(そのうちのプロセッサA130およびプロセッサB140が示されている)を含み、各処理ユニットは電圧および周波数制御ユニット(voltage and frequency control unit(VFCU))を含む。プロセッサA130およびプロセッサB140は、各々VFCU135を含む。プロセッサA130およびプロセッサB140の中の電圧および周波数制御ユニット(VFCU135)は、同時に、または互いに独立して、あるいは同時かつ互いに独立して動作する。プロセッサA130およびプロセッサB140は、システム相互接続/バス105を介してフレキシブル・サポート・プロセッサ(FSP)160と呼ばれる標準的サービス・プロセッサと通信する。システム相互接続/バス105にはダイレクト・カレント・アセンブリ(DCA)A170およびDCA B190も接続されている。DCA170の中には1つ以上の電圧レギュレータ・モジュール(VRM)、VRM1 A120およびVRM1 B125があり、マイクロコントローラA172と通信する。同様に、DCA B190の中では、VRM2 A150およびVRM2 B155がマイクロコントローラB192と通信する。
【0013】
システム・アーキテクチャ100の上記のハードウェア・コンポーネントの他に、本発明の種々の特徴が、DCA A170およびDCA B190内に格納されてマイクロコントローラA172およびマイクロコントローラB192により実行されるソフトウェア(またはファームウェア)コードまたはロジックを介して完成/サポートされる。従って、例えば、DCA A170およびDCA B190内に電圧調整(voltage regulation(VR))ユーティリティ145が示されており、これは、電圧調整ロジックを提供するためにマイクロコントローラA172およびマイクロコントローラB192上で実行される。実際の実施においては、それぞれのソフトウェア・コンポーネントの種々の機能を、対応する複合コードがマイクロコントローラA172またはマイクロコントローラB192、あるいはその両方によって実行されるときに、全体として提供する単一の実行可能なコンポーネントを提供するために、VRユーティリティ145は、システム・アーキテクチャ100の中のFSP160および1つ以上の他のコンポーネントのうちの少なくとも1つの動作と結合されあるいは組み込まれ得る。簡単のために、VRユーティリティ145は、以下で記述されるように特定の機能を提供するスタンドアロンまたは独立のソフトウェア/ファームウェア・コンポーネントとして図示され記述される。図1の絵では、VRユーティリティ145はDCA A170およびDCA B190の中に描かれている。VRユーティリティ145は2つの位置に示されているけれども、VRユーティリティ145は単一のユーティリティとして動作する。
【0014】
一実施態様では、VFCU135はDVFS動作を実行するための命令を受け取る。VFCU135は、VRユーティリティ145を実行するマイクロコントローラA172およびマイクロコントローラB192とそれぞれ通信する。VRユーティリティ145によりサポートされるか、または実行されるか、あるいはサポートかつ実行される或る機能は、その機能の実行を完了させるためにプロセッサまたは装置ハードウェアあるいはその両方によって実行される処理ロジックを生成する。記述を簡潔にするために、これらの種々の機能を可能にするコードの全体は、本明細書においてVRユーティリティ145と称される。VRユーティリティ145により提供される、本発明に特有のソフトウェア・コード/命令/ロジックの中には:(a)1つ以上の電圧変更動作のシーケンスおよび1つ以上の周波数変更動作のシーケンスを動的に改変するためのコード/ロジックがあり、ここで該シーケンスの改変は電圧変更を対応する周波数変更動作に対して先へ移すことを含み;(b)1つ以上の電圧変更のシーケンスの終わりにインジケータ電圧変更を自動的に挿入するためのコード/ロジックがあり、(c)該インジケータ電圧変更の実行を検出するためのコード/ロジックがあり、ここで該インジケータ電圧変更の検出は1つ以上の先行する電圧変更リクエストの完了を意味する。この実例となる実施態様によれば、VFCU135がVRユーティリティ145を介してDVFS動作を実行するための命令を受け取ったとき、システム・アーキテクチャ100は、上記機能特徴および付加的な特徴/機能を可能にする一連の機能プロセスを開始する。これらの特徴/機能は、以下で図2−5についての記述の中でより詳しく記述される。
【0015】
当業者は、図1に描かれているハードウェア・コンポーネントおよび基本構成が変化し得ることを理解するであろう。システム・アーキテクチャ100の中の実例としてのコンポーネントは、網羅的であるようには意図されていなくて、本発明を実施するために利用される必須のコンポーネントを強調するための代表的なものである。例えば、描かれているハードウェアの他にあるいはその代わりに、他の装置/コンポーネントが使用され得る。描かれている例は、目下記述されている実施態様または全般的発明あるいはその両方に関してアーキテクチャ上のあるいは他の限定を示唆するように意図されてはいない。図1に描かれているシステム・アーキテクチャは、例えば、ニューヨーク州アーモンク市にあるIBM社の製品であるIBM POWER series(IBM社の登録商標)のマイクロプロセッサと関連付けられ得るけれども、それはIBM社のサーバ、ミニコンピュータ、ワークステーションおよびスーパーコンピュータの多くにおいて主要な中央処理ユニットとして利用されている。
【0016】
ここで図2を参照する。図2は、1つ以上の電圧レギュレータ・モジュールと関連付けられた1つ以上のマイクロプロセッサの間のインターコネクティビティを示す。さらに、マイクロプロセッサは、フレキシブル・サポート・プロセッサおよび1つ以上のダイレクト・カレント・アセンブリと関連付けられている。システム・アーキテクチャ200は、フレキシブル・ハードウェア・サポート・プロセッサ(FSP)260と通信するプロセッサA230およびプロセッサB240を含む。プロセッサA230、プロセッサB240、およびFSP260はダイレクト・カレント・アセンブリ(DCA)A270およびDCA B290と通信する。DCA A270およびDCA B290は電圧レギュレータ・モジュール(VRM)A220およびVRM B250をそれぞれ含む。マイクロコントローラA272はDCA A270内のVRM A220と通信し、マイクロコントローラB292はDCA B290内のVRM B250と通信する。マイクロコントローラA272およびマイクロコントローラB292は、さらに、DCA(DCA A270およびDCA B290)の間での通信を可能にする。DCA A270およびDCA B290は、各々1つ以上の電圧調整スレーブ装置256を含む。システム相互接続バス205は、システム・アーキテクチャ200内でプロセッサ、FSP(プロセッサA230およびプロセッサB240)およびDCA(DCA A270およびDCA B290)を接続するために利用される。システム相互接続バス205は、例えば、業界標準の集積回路間(I2C)インターフェースであってよい。
【0017】
一実施態様では、DCA A270およびDCA B290は、プロセッサA230およびプロセッサB240に電力を提供する。プロセッサA230およびプロセッサB240は、DCAおよび他のコンポーネント(例えばVRM)の少なくとも1つが故障した場合に該プロセッサへの電力供給を確保するために1つ以上のDCA(DCA A270およびDCA B290)から冗長電力接続を受け入れる。(図1の)VRM A120およびVRM B150と同様のVRM A220およびVRM B250は、各々DCA A270およびDCA B290内に位置して、VRユーティリティ(図1の145)から命令を受け取る。プロセッサA230およびプロセッサB240のそれぞれの電圧は、VRM A220およびVRM B250のうちの1つ以上によって制御される。システム・アーキテクチャ200内で1つ以上のコンポーネントが故障すれば、プロセッサ(プロセッサA230およびプロセッサB240)は、それぞれの(1つ以上の)プロセッサの動作に必要とされる電圧を制御するために異なるVRM(すなわち、動作可能なVRM)を使用する。
【0018】
他の1つの実施態様では、1つ以上のプロセッサ(プロセッサA230およびプロセッサB240)に提供される電力は、動的電圧および周波数スケーリング(DVFS)動作を介して制御される。各DVFS動作は、電圧変更リクエスト(または1つ以上の電圧変更動作間の電圧変更遷移)の第1シーケンスと、周波数変更リクエスト(または1つ以上の周波数変更動作間の周波数遷移)の第2シーケンスとから成る。第1シーケンス中の各電圧変更リクエストは第2シーケンス中の周波数変更リクエストと対応する。DVFS動作がプロセッサA230またはプロセッサB240あるいはその両方により受け取られると、VFCU(図1の135)は、電圧変更動作の第1シーケンスを対応する周波数変更の第2シーケンスに対して先へ移す。VFCU(図1の135)は、電圧リクエスト変更をDCA A270またはDCA B290あるいはその両方に送る。追加の電圧変更リクエストは、移された電圧変更動作またはリクエストあるいはその両方の第1シーケンスの終わりに付け加えられる。DVFS動作が実行されるとき、電圧変更リクエスト・データ・パケットの肯定応答は、先行する電圧変更動作の完了を意味するインジケータ電圧変更である。
【0019】
一実施態様では、電圧変更リクエストまたは周波数変更リクエストあるいはその両方はDVFS動作の中で提供される。システム・アーキテクチャ200の中ではDCA A270およびDCA B290は電圧調整スレーブ装置である。DVFS動作はプロセッサA230およびプロセッサB240により開始される。VRM A220およびVRM B250はDVFS動作の開始を求めるリクエスト(電圧変更リクエストおよび周波数変更リクエスト)を受け取り、VRMは、DVFS動作により定められる動作電圧をセットする。DCA A270およびDCA B290はDVFS動作を実行し、DVFSリクエストにより定められているように電力をプロセッサA230およびプロセッサB240に提供する。
【0020】
他の1つの実施態様では、DVFS動作が受け取られると、命令をVRM A220およびVRM B250に伝えるVRユーティリティは、DCA A270およびDCA B290が失敗“NACK”応答または成功“ACK”応答をプロセッサA230およびプロセッサB240に送ることを可能にする。失敗“NACK”応答または成功“ACK”応答は、1つ以上のDCAがDVFS動作の処理/実行を続けるか否かを確認するものである。特に、DCAからプロセッサへの“ACK”(成功)応答は、先行するエラーが無いことと該DVFS動作(電圧変更リクエストまたは周波数変更リクエストあるいはその両方)が始まることとを該プロセッサに伝える。DCAからプロセッサへの“NACK”(失敗)応答は、現在は通信エラー、コンポーネント故障、先行するDVFS動作の処理の未完了の少なくとも一つに起因して、新しいリクエストが容認されない(すなわち、新しいリクエストが始まらない)ことを伝える。
【0021】
一実施態様では、VRユーティリティ145(図1)は、システム・アーキテクチャ200内でのDVFS動作を管理する。1つ以上のDCAが電力を1つ以上のプロセッサに供給する。VRユーティリティは、電力をその1つ以上のプロセッサに供給している1つ以上のDCAを特定するためにVRM A220またはVRM B250あるいはその両方と通信する。例えば、プロセッサA230は電力をDCA A270から受け取っている。VRM A220は、DCA A270によりプロセッサA230に供給される電力を制御する。DCA A270またはVRM A220あるいはその両方が故障し、取り外されたとき、あるいはDCA A270またはVRM A220あるいはその両方との通信が止まったとき、VRユーティリティは、その故障を引き起こしたコンポーネントを特定し、該DVFS動作をその故障したコンポーネントから1つ以上の作動中のコンポーネント(すなわちDCA B290またはVRM B250あるいはその両方)へ移す。該DVFS動作は、利用可能な作動中のコンポーネントを利用して処理される。
【0022】
他の1つの実施態様では、プロセッサからのDVFSリクエストに従っているとき、DCA(例えばDCA A270)が故障するか、または該DCAが使用可能であるか、あるいはその両方である。例えば、プロセッサからのDVFSリクエストに従っている間にDCA A270が故障していれば、プロセッサA230は、DCA A270との通信をN回試みる(この‘N’は予め定められた数である)。N回後に成功応答が受け取られていなければ動作はキャンセルされる。VRユーティリティは、失敗アラートのFSP260への送信を可能にする。該失敗アラートは、取り外されたDCA(DCA A270)を特定する。その取り外されたDCA(例えばDCA A270)に該プロセッサが今後DVFS動作(例えば周波数変更および電圧変更)を発出/送信することは妨げられる。DVFS動作が処理/実行されていなくてDCA A270が取り外されていることをDCA B290が認識しているとき、DCA A270の取り外しを報告する失敗アラートがFSP260に送られる。VRユーティリティによって、FSP260は、今後のDVFS動作をその取り外されたDCA(DCA A270)に送信することを妨げることが可能になる。
【0023】
別の例では、全てのDCA(DCA A270およびDCA B290)が1つ以上のDVFS動作を処理するために利用可能であり、1つ以上の故障が発生する(例えば、システム相互接続バス205内での通信故障またはVRMコンポーネント故障)。DVFS動作中、VRユーティリティは、DCA A270またはDCA B290あるいはその両方がFSP260の初期動作電圧を要求することを可能にする。その後、DCA A270またはDCA B290あるいはその両方は、FSP260から受け取った該初期動作電圧に対して1つ以上の電圧変更動作を実行する。DVFS動作の外で故障が起こったときには、DCA A270またはDCA B290あるいはその両方はFSP260から初期動作電圧を要求する。該初期動作電圧をFSP260から受け取ると、VRユーティリティまたはFSP260あるいはその両方は、DCA A270またはDCA B290あるいはその両方がFSP260により提供された初期動作電圧に対して電圧変更動作を実行することを可能にする。
【0024】
図3−5は、実例としての実施態様の上記プロセスを達成させる種々の方法を示すフローチャートである。図3−5に示されている方法は図1−2に示されているコンポーネントに関して記述され得るけれども、それは単に便宜上のことであって、種々の方法を実行するときにその代わりのコンポーネントまたは構成あるいはその両方が採用され得るということが理解されるべきである。該方法の重要な部分は、プロセッサ(プロセッサA130およびプロセッサB140)の中のVFCU135によって、または、システム・アーキテクチャ100(図1)の中のマイクロコントローラA172およびマイクロコントローラB192上で実行されてシステム・アーキテクチャ100の特定の動作を制御するVRユーティリティ145によって、あるいはその両方によって達成され得る。従って、該方法は、VRユーティリティ145とシステム・アーキテクチャ100内のコンポーネントとの両方の観点から記述される。
【0025】
図3は、DVFS動作内の1つ以上のリクエスト(例えば電圧変更リクエストおよび周波数変更リクエスト)を管理するためのプロセスを描いている。図3のプロセスは開始ブロック300から始まってブロック302に進み、ここで電圧/周波数変更リクエストのシーケンスが受け取られる。ブロック304で、電圧変更リクエストのシーケンスは、対応する周波数変更動作のシーケンスに対して動的に先へ移される。ブロック306で、先行する電圧変更リクエストまたはDVFS動作あるいはその両方の完了を示すために、電圧変更リクエストのシーケンスの終わりにインジケータ電圧変更リクエストが自動的に付け加えられる。ブロック308で、電圧変更リクエストのうちの1つ以上は、1つ以上のプロセッサに電力を供給している各DCAに送られる。
【0026】
ブロック310で、全てのDCAから成功(ACK)応答が検出されたか否かが判定される。成功応答が全てのDCAから検出されたならば、プロセスはブロック316へ続く。ブロック316では、インジケータ電圧に達しているか否かが判定される。もしインジケータ電圧に達しているならばプロセスはブロック322へ続く。もしインジケータ電圧に達していなければプロセスはブロック308に戻る。もし成功応答が全てのDCAからは検出されなければ、プロセスはブロック312へ続く。ブロック312で、電圧変更リクエストは再びN回開始される(ここでNは予め定められた数である)。ブロック314で、全てのDCAからACKが受け取られたか否かが判定される。もし成功応答が全てのDCAから検出されたならば、プロセスはブロック316へ続く。もし成功応答が検出されなければ(すなわち“NACK”応答が受け取られれば)、プロセスはブロック318へ続く。ブロック318で、失敗アラートがFSPに送られる。プロセッサからの1つ以上の今後の電圧変更動作、または1つ以上のDCAへの1つ以上の今後の電圧変更動作、あるいはその両方がブロック320でサスペンドされる。プロセスはブロック322で終了する。
【0027】
DVFS動作の実行を求めるリクエストの成功または失敗を判定するプロセスは図4に描かれている。図4のプロセスは開始ブロック400から始まってブロック402に進み、ここでDVFS動作を開始するためのリクエストが受け取られる。ブロック404で、電圧変更リクエストまたは周波数変更リクエストあるいはその両方が現在ペンディングしているか否かが判定される。もし電圧変更リクエストまたは周波数変更リクエストあるいはその両方が現在ペンディングしていれば、プロセスはブロック410へ続く。ブロック410では失敗(“NACK”)応答がプロセッサに送られる。ブロック412で、DVFS動作の実行を求めるリクエストが再び出され、プロセスはブロック404に戻る。ブロック404で、もし電圧変更リクエストまたは周波数変更リクエストあるいはその両方が現在ペンディングしていなければ、プロセスはブロック406へ続く。ブロック406で、先行する電圧変更リクエストまたは周波数変更リクエストあるいはその両方が失敗したか否かが判定される。もし先行する電圧変更リクエストまたは周波数変更リクエストあるいはその両方が失敗したならば、プロセスはブロック410へ続く。もし先行する電圧変更リクエストまたは周波数変更リクエストあるいはその両方が失敗していなければ、ブロック408で、VRユーティリティは電圧変更リクエストまたはDVFS動作あるいはその両方の実行を可能にする。プロセスはブロック414で終了する。
【0028】
図5は、システム・アーキテクチャ内の1つ以上のコンポーネントが故障した時に電圧変更リクエストを管理するためのプロセスを描いている。図5のプロセスは開始ブロック500から始まってブロック502に進み、ここでコンポーネント故障通知が受け取られる。ブロック504で、1つ以上のDCAが取り外されたかどうかが判定される。もし1つ以上のDCAが取り外されていたならば、プロセスはブロック506へ進む。ブロック506で、その取り外されたDCAとの通信試行はキャンセルされる。ブロック508でFSPに通知がなされる。ブロック510で、その取り外されたDCAに送られた1つ以上の電圧変更リクエストまたは周波数変更リクエストあるいはその両方はキャンセルされる。もし504で1つ以上のDCAが取り外されていなかったならば、プロセスはブロック512へ続く。ブロック512でFSPから初期動作電圧が要求される。該初期動作電圧はブロック514でFSPから受け取られる。該初期動作電圧に対する電圧変更リクエストまたはDVFS動作あるいはその両方がブロック516で完了する。プロセスはブロック518で終了する。
【0029】
上記フローチャートにおいて、該方法のうちの1つ以上は、コンピュータ可読コードを含むコンピュータ可読記憶媒体において、該コンピュータ可読コードが計算装置上で(処理ユニットにより)実行されるときに一連のステップが実行されるように、具体化される。あるインプリメンテーションでは、該方法のいくつかのプロセスは、本発明の精神および範囲から逸脱すること無く、組み合わされ、同時にまたは異なる順序で実行され、あるいはことによると省略される。従って、該方法プロセスは特定のシーケンスで記述され図示されているけれども、プロセスの特定のシーケンスの使用は、本発明に関してどのような限定を示唆するようにも意図されていない。本発明の精神あるいは範囲から逸脱すること無くプロセスのシーケンスに関して変更を行なうことができる。従って、特定のシーケンスの使用は限定的意味に解されるべきではなく、本発明の範囲は、添付されている請求項およびその同等物に及ぶ。
【0030】
当業者に理解されるであろうように、本発明は方法、システムおよびコンピュータ・プログラムのうちの少なくとも1つとして具体化され得る。従って、本発明は、完全にハードウェアの実施態様、完全にソフトウェアの実施態様(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、あるいは、ソフトウェア側面と、本明細書においてごく一般的に“回路”、“モジュール”、“ロジック”あるいは“システム”と称され得るハードウェア側面とを組み合わせた実施態様という形をとることができる。さらに、本発明は、コンピュータで使用可能なプログラム・コードが具体化されている、コンピュータで使用可能な記憶媒体の上のコンピュータ・プログラムという形をとることができる。
【0031】
さらに理解されるであろうように、本発明の実施態様のプロセスは、ソフトウェア、ファームウェア、マイクロコード、あるいはハードウェアの任意の組み合わせを用いて実行され得る。本発明をソフトウェアで実施するのに先立つ予備ステップとして、プログラミング・コード(ソフトウェアでもファームウェアでも)は、通例、固定(ハード)ドライブ、ディスケット、磁気ディスク、光ディスク、磁気テープ、あるいはRAM、ROM、PROMなどの半導体メモリなどの1つ以上の機械可読記憶媒体に格納され、本発明の製造物品になるであろう。該プログラミング・コードを含む該製造物品は、該記憶装置から該コードを直接実行することにより、該コードを該記憶装置からハードディスク、RAMなどの他の記憶装置にコピーすることにより、あるいはデジタル通信リンクおよびアナログ通信リンクなどの伝送型媒体を用いて遠隔実行のために該コードを伝送することにより、使用される。該媒体は、電子、磁気、光学、電磁、赤外線、または半導体システム(あるいは機器または装置)、または伝播媒体であり得る。さらに、該媒体は、該プログラムを、実行システム、機器または装置による使用のためにあるいはこれらと関連しての使用のために包含し、記憶し、伝達し、伝播し、あるいは移送することのできる任意の機器であり得る。本発明の方法は、前記の1つまたは複数の実施態様に従うコードを包含する1つ以上の機械可読記憶装置を、それに包含されているコードを実行するための適切な処理ハードウェアと組み合わせることにより実行され得る。本発明を実行するための機器は、本発明に従ってコード化された1つまたは複数のプログラムへのネットワーク・アクセス(サーバを介しての)を包含するかあるいは有する1つ以上の処理装置および記憶システムとすることができよう。一般的に、コンピュータ、コンピュータ・システム、あるいはデータ処理システムという用語は、記憶媒体からの命令/コードを実行するプロセッサ(あるいは処理ユニット)を有する任意の装置を包含するように広く定義され得る。
【0032】
当業者は、本発明の実例となる実施態様のソフトウェア側面はプログラムとして種々の形で配布され得るということ、および、本発明の実例となる実施態様は該配布を実際に実行するために使用される媒体の具体的タイプに関わらず等しく適用されるということを理解するであろう。例を挙げれば、媒体のタイプの非網羅的リストは、フレキシブル・ディスク、サム・ドライブ、ハード・ディスク・ドライブ、CD ROM、DVDなどの記録可能タイプ(有形)媒体と、デジタルおよびアナログ通信リンクなどの伝送タイプ媒体とを含む。
【0033】
本発明は代表的実施態様に関して記述されたけれども、本発明の範囲から逸脱することなく種々の変更が行われ得るということ、およびその要素の代わりに同等物が用いられ得るということが当業者に理解されるであろう。さらに、特定のシステム、装置またはそのコンポーネントを本発明の教示に、その本質的範囲から逸脱することなく、適合させる多くの改変が行われ得る。従って、本発明は、本発明を実行するために開示された特定の実施態様に限定されなくて、添付されている請求項の範囲に属する全ての実施態様を本発明が含むということが意図されている。さらに、第1、第2等の用語の使用は順序あるいは重要性を示してはいなくて、第1、第2等の用語は要素を他の要素から区別するために使用されている。
【符号の説明】
【0034】
100 システム・アーキテクチャ
101 コアX
103 コアY
105 システム相互接続/バス
120 VRM1A
125 VRM1B
130 プロセッサA
135 VFCユニット
140 プロセッサB
145 VRユーティリティ
150 VRM2A
155 VRM2B
160 FSP
170 DCA A
172 マイクロコントローラA
190 DCA B
192 マイクロコントローラB

【特許請求の範囲】
【請求項1】
1つ以上のプロセッサを有するデータ処理システムにおいて1つ以上の電圧変更リクエストおよび1つ以上の周波数変更リクエストと関連付けられた動作を管理するための方法であって、
プロセッサが電圧変更リクエストおよび周波数変更リクエストのうちの1つ以上を受け取ることと、
1つ以上の電圧変更リクエストと関連付けられた第1シーケンスと1つ以上の周波数変更リクエストと関連付けられた第2シーケンスとを検出することと、
前記1つ以上の電圧変更リクエストを1つ以上の対応する周波数変更リクエストに対して先へ移すことを含む、前記第1シーケンスおよび前記第2シーケンスを動的に改変することと、
前記第1シーケンスの終わりにインジケータ電圧変更を自動的に挿入することと、
前記インジケータ電圧変更の実行を検出することと、
前記インジケータ電圧変更と関連付けられたインジケータ電圧に首尾よく到達したときを検出することとを含み、前記インジケータ電圧の検出は1つ以上の先行する電圧変更リクエストの完了を意味する方法。
【請求項2】
前記1つ以上のプロセッサに電力を供給する1つ以上のダイレクト・カレント・アセンブリ(DCA)を特定することと、
前記電圧変更リクエストおよび前記周波数変更リクエストのうちの1つ以上がダイレクト・カレント・アセンブリ(DCA)内でペンディングしているときを判定することと、
前記電圧変更リクエストおよび前記周波数変更リクエストが動的電圧および周波数スケーリング(DVFS)動作と関連付けられているときに、前記DVFS動作が前記DCAにより受け取られると前記DCAが成功応答および失敗応答のうちの1つを送信することを可能にすることとをさらに含み、前記成功応答は前記DVFS動作の実行が始まることを示し、前記失敗応答は前記DVFS動作の実行が現在始まろうとしていないことを示す請求項1に記載の方法。
【請求項3】
前記DCAから前記プロセッサへの失敗応答の送信を、先行するDVFS動作が前記失敗応答の受け側であるときに、可能にすることをさらに含む請求項2に記載の方法。
【請求項4】
前記失敗応答が送信されると、前記DVFS動作を再び前記DCAにN回出すことであって、Nが所定数である前記出すことと、
前記成功応答が前記DCAから送信されると、前記DVFS動作の実行を可能にすることと、
をさらに含む請求項2に記載の方法。
【請求項5】
前記成功応答が全てのダイレクト・カレント・アセンブリ(DCA)から受け取られたときを判定することと、
前記成功応答が全てのDCAから受け取られると、ペンディングしているDVFS動作およびペンディングしている電圧変更リクエストのうちの1つ以上の実行を可能にすることと、
1つ以上の失敗応答が1つ以上のDCAから受け取られると、失敗アラートをフレキシブル・サポート・プロセッサ(FSP)に送ることと、
をさらに含む請求項1に記載の方法。
【請求項6】
1つ以上のDCAが取り外されているときを判定することと、
1つ以上のDCAが取り外されているときに、
1つ以上のプロセッサと取り外されたDCAとの間の通信試行をキャンセルすることと、
前記1つ以上の取り外されたDCAを特定する通知を前記FSPに送信することと、
前記プロセッサから前記取り外されたDCAへの今後のDVFS動作の送信を前記FSPが妨げることを可能にすることと、
をさらに含む請求項1に記載の方法。
【請求項7】
前記DVFS動作の間あるいは前にコンポーネント故障が発生し、前記1つ以上のDCAが取り外されていないときに、
前記FSPから初期動作電圧を要求することと、
前記FSPから前記初期動作電圧を受け取ることと、
前記初期動作電圧に対しての前記電圧変更リクエストの実行を可能にすることと、
をさらに含む請求項6に記載の方法。
【請求項8】
1つ以上のプロセッサと、
電圧および周波数制御ユニット(VFCU)と、
ダイレクト・カレント・アセンブリ(DCA)と、
電圧レギュレータ・モジュール(VRM)と、
1つ以上の電圧変更および1つ以上の周波数変更と関連付けられた動作を管理するべく実行される命令を含み、前記ダイレクト・カレント・アセンブリ上で実行されるユーティリティと、を含むデータ処理システムであって、前記命令は、
電圧変更リクエストおよび周波数変更リクエストのうちの1つ以上を受け取ることと、
1つ以上の電圧変更リクエストと関連付けられた第1シーケンスと、1つ以上の周波数変更リクエストと関連付けられた第2シーケンスとを検出することと、
前記1つ以上の電圧変更リクエストを1つ以上の対応する周波数変更リクエストに対して先へ移すことを含む、前記第1シーケンスおよび前記第2シーケンスを動的に改変することと、
前記第1シーケンスの終わりにインジケータ電圧変更を自動的に挿入することと、
前記インジケータ電圧変更の実行を検出することと、
前記インジケータ電圧変更と関連付けられたインジケータ電圧に首尾よく到達したときを判定することであって、前記インジケータ電圧の検出は1つ以上の先行する電圧変更リクエストの完了を意味する、前記判定することと、
のためのロジックを提供するデータ処理システム。
【請求項9】
前記1つ以上のプロセッサに電力を供給する1つ以上のダイレクト・カレント・アセンブリ(DCA)を特定することと、
前記電圧変更リクエストおよび前記周波数変更リクエストのうちの1つ以上がダイレクト・カレント・アセンブリ(DCA)内でペンディングしているときを判定することと、
前記電圧変更リクエストおよび前記周波数変更リクエストが動的電圧および周波数スケーリング(DVFS)動作と関連付けられているときに、前記DVFS動作が前記DCAにより受け取られると前記DCAが成功応答および失敗応答のうちの1つを送信することを可能にすることとのためのロジックをさらに含み、前記成功応答は前記DVFS動作の実行が始まることを示し、前記失敗応答は前記DVFS動作の実行が現在始まろうとしていないことを示す請求項8に記載のデータ処理システム。
【請求項10】
前記DCAから前記プロセッサへの失敗応答の送信を、先行するDVFS動作が前記失敗応答の受け側であるときに、可能にすること
のためのロジックをさらに含む請求項9に記載のデータ処理システム。
【請求項11】
前記失敗応答が送信されると、前記DVFS動作を再び前記DCAにN回出すことであって、Nが所定数である前記出すことと、
前記成功応答が前記DCAから送信されると、前記DVFS動作の実行を可能にすることと、
のためのロジックをさらに含む請求項8に記載のデータ処理システム。
【請求項12】
前記成功応答が全てのダイレクト・カレント・アセンブリ(DCA)から受け取られたときを判定することと、
前記成功応答が全てのDCAから受け取られると、ペンディングしているDVFS動作およびペンディングしている電圧変更リクエストのうちの1つ以上の実行を可能にすることと、
1つ以上の失敗応答が1つ以上のDCAから受け取られると、失敗アラートをフレキシブル・サポート・プロセッサ(FSP)に送ることと、
のためのロジックをさらに含む請求項8に記載のデータ処理システム。
【請求項13】
1つ以上のDCAが取り外されているときを判定することと、
1つ以上のDCAが取り外されているときに、
1つ以上のプロセッサと取り外されたDCAとの間の通信試行をキャンセルすることと、
前記1つ以上の取り外されたDCAを特定する通知を前記FSPに送信することと、
前記プロセッサから前記取り外されたDCAへの今後のDVFS動作の送信を前記FSPが妨げることを可能にすることと、
のためのロジックをさらに含む請求項8に記載のデータ処理システム。
【請求項14】
前記DVFS動作の間あるいは前にコンポーネント故障が発生し、前記1つ以上のDCAが取り外されていないときに、
前記FSPから初期動作電圧を要求することと、
前記FSPから前記初期動作電圧を受け取ることと、
前記初期動作電圧に対しての前記電圧変更リクエストの実行を可能にすることと、
のためのロジックをさらに含む請求項13に記載のデータ処理システム。
【請求項15】
1つ以上のプロセッサを有するコンピュータ装置により実行されるコンピュータ・プログラムであって、
電圧変更リクエストおよび周波数変更リクエストのうちの少なくとも1つを受け取る機能と、
1つ以上の電圧変更リクエストと関連付けられた第1シーケンスと、1つ以上の周波数変更リクエストと関連付けられた第2シーケンスとを検出する機能と、
前記1つ以上の電圧変更リクエストを1つ以上の対応する周波数変更リクエストに対して先へ移す機能を含む、前記第1シーケンスおよび前記第2シーケンスを動的に改変する機能と、
前記第1シーケンスの終わりにインジケータ電圧変更を自動的に挿入する機能と、
前記インジケータ電圧変更の実行を検出する機能と、
前記インジケータ電圧変更と関連付けられたインジケータ電圧に首尾よく到達したときを判定する機能であって、前記インジケータ電圧の検出は1つ以上の先行する電圧変更リクエストの完了を意味する、前記判定する機能と、
をコンピュータ装置に実行させるコンピュータ・プログラム。
【請求項16】
前記1つ以上のプロセッサに電力を供給する1つ以上のダイレクト・カレント・アセンブリ(DCA)を特定することと、
前記電圧変更リクエストおよび前記周波数変更リクエストのうちの1つ以上がダイレクト・カレント・アセンブリ(DCA)内でペンディングしているときを判定することと、
前記電圧変更リクエストおよび前記周波数変更リクエストが動的電圧および周波数スケーリング(DVFS)動作と関連付けられているときに、前記DVFS動作が前記DCAにより受け取られると前記DCAが成功応答および失敗応答のうちの1つを送信することを可能にすることと、のためのプログラム・コードをさらに含み、前記成功応答は前記DVFS動作の実行が始まることを示し、前記失敗応答は前記DVFS動作の実行が現在始まろうとしていないことを示す請求項15に記載のコンピュータ・プログラム。
【請求項17】
前記DCAから前記プロセッサへの失敗応答の送信を、先行するDVFS動作が前記失敗応答の受け側であるときに、可能にすること
のためのプログラム・コードをさらに含む請求項16に記載のコンピュータ・プログラム。
【請求項18】
前記失敗応答が送信されると、前記DVFS動作を再び前記DCAにN回出すことと、
前記成功応答が前記DCAから送信されると、前記DVFS動作の実行を可能にすることと、
のためのプログラム・コードをさらに含み、Nは所定数である請求項16に記載のコンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−81800(P2011−81800A)
【公開日】平成23年4月21日(2011.4.21)
【国際特許分類】
【出願番号】特願2010−225316(P2010−225316)
【出願日】平成22年10月5日(2010.10.5)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】