(57)【要約】【課題】１つ以上の電圧変更および１つ以上の周波数変更と関連付けられた管理動作を提供する。【解決手段】電圧変更リクエストおよび周波数変更リクエストは、動的電圧および周波数スケーリング（ＤＶＦＳ）動作と関連付けられる。ＤＶＦＳ動作は１つ以上のダイレクト・カレント・アセンブリにより実行されるべくプロセッサにより送信される。１つ以上の電圧変更に関連付けられたシーケンスおよび１つ以上の周波数変更に関連付けられたシーケンスはシステムにより検出される。該シーケンスは、１つ以上の先行する電圧変更リクエストの完了を示す付加的な電圧変更を挿入し得るように動的に改変される。電圧変更リクエストが完了していれば、次に来る１つ以上の電圧変更リクエストを処理することが可能となる。電圧変更リクエストが首尾よく完了させられなかったときには、１つ以上の今後の電圧変更がサスペンドされる。【選択図】図１
2011081800.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のプロセッサを有するデータ処理システムにおいて１つ以上の電圧変更リクエストおよび１つ以上の周波数変更リクエストと関連付けられた動作を管理するための方法であって、
プロセッサが電圧変更リクエストおよび周波数変更リクエストのうちの１つ以上を受け取ることと、
１つ以上の電圧変更リクエストと関連付けられた第１シーケンスと１つ以上の周波数変更リクエストと関連付けられた第２シーケンスとを検出することと、
前記１つ以上の電圧変更リクエストを１つ以上の対応する周波数変更リクエストに対して先へ移すことを含む、前記第１シーケンスおよび前記第２シーケンスを動的に改変することと、
前記第１シーケンスの終わりにインジケータ電圧変更を自動的に挿入することと、
前記インジケータ電圧変更の実行を検出することと、
前記インジケータ電圧変更と関連付けられたインジケータ電圧に首尾よく到達したときを検出することとを含み、前記インジケータ電圧の検出は１つ以上の先行する電圧変更リクエストの完了を意味する方法。
【請求項２】
前記１つ以上のプロセッサに電力を供給する１つ以上のダイレクト・カレント・アセンブリ（ＤＣＡ）を特定することと、
前記電圧変更リクエストおよび前記周波数変更リクエストのうちの１つ以上がダイレクト・カレント・アセンブリ（ＤＣＡ）内でペンディングしているときを判定することと、
前記電圧変更リクエストおよび前記周波数変更リクエストが動的電圧および周波数スケーリング（ＤＶＦＳ）動作と関連付けられているときに、前記ＤＶＦＳ動作が前記ＤＣＡにより受け取られると前記ＤＣＡが成功応答および失敗応答のうちの１つを送信することを可能にすることとをさらに含み、前記成功応答は前記ＤＶＦＳ動作の実行が始まることを示し、前記失敗応答は前記ＤＶＦＳ動作の実行が現在始まろうとしていないことを示す請求項１に記載の方法。
【請求項３】
前記ＤＣＡから前記プロセッサへの失敗応答の送信を、先行するＤＶＦＳ動作が前記失敗応答の受け側であるときに、可能にすることをさらに含む請求項２に記載の方法。
【請求項４】
前記失敗応答が送信されると、前記ＤＶＦＳ動作を再び前記ＤＣＡにＮ回出すことであって、Ｎが所定数である前記出すことと、
前記成功応答が前記ＤＣＡから送信されると、前記ＤＶＦＳ動作の実行を可能にすることと、
をさらに含む請求項２に記載の方法。
【請求項５】
前記成功応答が全てのダイレクト・カレント・アセンブリ（ＤＣＡ）から受け取られたときを判定することと、
前記成功応答が全てのＤＣＡから受け取られると、ペンディングしているＤＶＦＳ動作およびペンディングしている電圧変更リクエストのうちの１つ以上の実行を可能にすることと、
１つ以上の失敗応答が１つ以上のＤＣＡから受け取られると、失敗アラートをフレキシブル・サポート・プロセッサ（ＦＳＰ）に送ることと、
をさらに含む請求項１に記載の方法。
【請求項６】
１つ以上のＤＣＡが取り外されているときを判定することと、
１つ以上のＤＣＡが取り外されているときに、
１つ以上のプロセッサと取り外されたＤＣＡとの間の通信試行をキャンセルすることと、
前記１つ以上の取り外されたＤＣＡを特定する通知を前記ＦＳＰに送信することと、
前記プロセッサから前記取り外されたＤＣＡへの今後のＤＶＦＳ動作の送信を前記ＦＳＰが妨げることを可能にすることと、
をさらに含む請求項１に記載の方法。
【請求項７】
前記ＤＶＦＳ動作の間あるいは前にコンポーネント故障が発生し、前記１つ以上のＤＣＡが取り外されていないときに、
前記ＦＳＰから初期動作電圧を要求することと、
前記ＦＳＰから前記初期動作電圧を受け取ることと、
前記初期動作電圧に対しての前記電圧変更リクエストの実行を可能にすることと、
をさらに含む請求項６に記載の方法。
【請求項８】
１つ以上のプロセッサと、
電圧および周波数制御ユニット（ＶＦＣＵ）と、
ダイレクト・カレント・アセンブリ（ＤＣＡ）と、
電圧レギュレータ・モジュール（ＶＲＭ）と、
１つ以上の電圧変更および１つ以上の周波数変更と関連付けられた動作を管理するべく実行される命令を含み、前記ダイレクト・カレント・アセンブリ上で実行されるユーティリティと、を含むデータ処理システムであって、前記命令は、
電圧変更リクエストおよび周波数変更リクエストのうちの１つ以上を受け取ることと、
１つ以上の電圧変更リクエストと関連付けられた第１シーケンスと、１つ以上の周波数変更リクエストと関連付けられた第２シーケンスとを検出することと、
前記１つ以上の電圧変更リクエストを１つ以上の対応する周波数変更リクエストに対して先へ移すことを含む、前記第１シーケンスおよび前記第２シーケンスを動的に改変することと、
前記第１シーケンスの終わりにインジケータ電圧変更を自動的に挿入することと、
前記インジケータ電圧変更の実行を検出することと、
前記インジケータ電圧変更と関連付けられたインジケータ電圧に首尾よく到達したときを判定することであって、前記インジケータ電圧の検出は１つ以上の先行する電圧変更リクエストの完了を意味する、前記判定することと、
のためのロジックを提供するデータ処理システム。
【請求項９】
前記１つ以上のプロセッサに電力を供給する１つ以上のダイレクト・カレント・アセンブリ（ＤＣＡ）を特定することと、
前記電圧変更リクエストおよび前記周波数変更リクエストのうちの１つ以上がダイレクト・カレント・アセンブリ（ＤＣＡ）内でペンディングしているときを判定することと、
前記電圧変更リクエストおよび前記周波数変更リクエストが動的電圧および周波数スケーリング（ＤＶＦＳ）動作と関連付けられているときに、前記ＤＶＦＳ動作が前記ＤＣＡにより受け取られると前記ＤＣＡが成功応答および失敗応答のうちの１つを送信することを可能にすることとのためのロジックをさらに含み、前記成功応答は前記ＤＶＦＳ動作の実行が始まることを示し、前記失敗応答は前記ＤＶＦＳ動作の実行が現在始まろうとしていないことを示す請求項８に記載のデータ処理システム。
【請求項１０】
前記ＤＣＡから前記プロセッサへの失敗応答の送信を、先行するＤＶＦＳ動作が前記失敗応答の受け側であるときに、可能にすること
のためのロジックをさらに含む請求項９に記載のデータ処理システム。
【請求項１１】
前記失敗応答が送信されると、前記ＤＶＦＳ動作を再び前記ＤＣＡにＮ回出すことであって、Ｎが所定数である前記出すことと、
前記成功応答が前記ＤＣＡから送信されると、前記ＤＶＦＳ動作の実行を可能にすることと、
のためのロジックをさらに含む請求項８に記載のデータ処理システム。
【請求項１２】
前記成功応答が全てのダイレクト・カレント・アセンブリ（ＤＣＡ）から受け取られたときを判定することと、
前記成功応答が全てのＤＣＡから受け取られると、ペンディングしているＤＶＦＳ動作およびペンディングしている電圧変更リクエストのうちの１つ以上の実行を可能にすることと、
１つ以上の失敗応答が１つ以上のＤＣＡから受け取られると、失敗アラートをフレキシブル・サポート・プロセッサ（ＦＳＰ）に送ることと、
のためのロジックをさらに含む請求項８に記載のデータ処理システム。
【請求項１３】
１つ以上のＤＣＡが取り外されているときを判定することと、
１つ以上のＤＣＡが取り外されているときに、
１つ以上のプロセッサと取り外されたＤＣＡとの間の通信試行をキャンセルすることと、
前記１つ以上の取り外されたＤＣＡを特定する通知を前記ＦＳＰに送信することと、
前記プロセッサから前記取り外されたＤＣＡへの今後のＤＶＦＳ動作の送信を前記ＦＳＰが妨げることを可能にすることと、
のためのロジックをさらに含む請求項８に記載のデータ処理システム。
【請求項１４】
前記ＤＶＦＳ動作の間あるいは前にコンポーネント故障が発生し、前記１つ以上のＤＣＡが取り外されていないときに、
前記ＦＳＰから初期動作電圧を要求することと、
前記ＦＳＰから前記初期動作電圧を受け取ることと、
前記初期動作電圧に対しての前記電圧変更リクエストの実行を可能にすることと、
のためのロジックをさらに含む請求項１３に記載のデータ処理システム。
【請求項１５】
１つ以上のプロセッサを有するコンピュータ装置により実行されるコンピュータ・プログラムであって、
電圧変更リクエストおよび周波数変更リクエストのうちの少なくとも１つを受け取る機能と、
１つ以上の電圧変更リクエストと関連付けられた第１シーケンスと、１つ以上の周波数変更リクエストと関連付けられた第２シーケンスとを検出する機能と、
前記１つ以上の電圧変更リクエストを１つ以上の対応する周波数変更リクエストに対して先へ移す機能を含む、前記第１シーケンスおよび前記第２シーケンスを動的に改変する機能と、
前記第１シーケンスの終わりにインジケータ電圧変更を自動的に挿入する機能と、
前記インジケータ電圧変更の実行を検出する機能と、
前記インジケータ電圧変更と関連付けられたインジケータ電圧に首尾よく到達したときを判定する機能であって、前記インジケータ電圧の検出は１つ以上の先行する電圧変更リクエストの完了を意味する、前記判定する機能と、
をコンピュータ装置に実行させるコンピュータ・プログラム。
【請求項１６】
前記１つ以上のプロセッサに電力を供給する１つ以上のダイレクト・カレント・アセンブリ（ＤＣＡ）を特定することと、
前記電圧変更リクエストおよび前記周波数変更リクエストのうちの１つ以上がダイレクト・カレント・アセンブリ（ＤＣＡ）内でペンディングしているときを判定することと、
前記電圧変更リクエストおよび前記周波数変更リクエストが動的電圧および周波数スケーリング（ＤＶＦＳ）動作と関連付けられているときに、前記ＤＶＦＳ動作が前記ＤＣＡにより受け取られると前記ＤＣＡが成功応答および失敗応答のうちの１つを送信することを可能にすることと、のためのプログラム・コードをさらに含み、前記成功応答は前記ＤＶＦＳ動作の実行が始まることを示し、前記失敗応答は前記ＤＶＦＳ動作の実行が現在始まろうとしていないことを示す請求項１５に記載のコンピュータ・プログラム。
【請求項１７】
前記ＤＣＡから前記プロセッサへの失敗応答の送信を、先行するＤＶＦＳ動作が前記失敗応答の受け側であるときに、可能にすること
のためのプログラム・コードをさらに含む請求項１６に記載のコンピュータ・プログラム。
【請求項１８】
前記失敗応答が送信されると、前記ＤＶＦＳ動作を再び前記ＤＣＡにＮ回出すことと、
前記成功応答が前記ＤＣＡから送信されると、前記ＤＶＦＳ動作の実行を可能にすることと、
のためのプログラム・コードをさらに含み、Ｎは所定数である請求項１６に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはプロセッサに関し、特にマイクロプロセッサ内での動的な電圧および周波数スケーリングに関する。
【背景技術】
【０００２】
多くのハイ・エンドのシステム・アーキテクチャは１つ以上のプロセッサに冗長電源を供給する。該システム・アーキテクチャはダイレクト・カレント・アセンブリ（Ｄｉｒｅｃｔ  Ｃｕｒｒｅｎｔ  Ａｓｓｅｍｂｌｙ（ＤＣＡ））などの電流シェアリング電源を含み、このため該ＤＣＡはプロセッサと電圧レギュレータ・モジュール（ｖｏｌｔａｇｅ  ｒｅｇｕｌａｔｏｒ  ｍｏｄｕｌｅ（ＶＲＭ））との間にマイクロコントローラを位置づける。電圧変更リクエストがプロセッサによりＤＣＡに対して行われるとき、該リクエスト送信においてエラーが発生し得る。該エラーは、通信チャネルにおけるノイズに起因する該電圧変更リクエストの配信失敗、ＶＲＭにおける故障、および、該電圧変更リクエストが成功したか失敗したかを確認するレスポンスの配信失敗のうちの少なくとも１つを含むが、これらに限定はされない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ハイ・エンドのシステム・アーキテクチャ内で電圧変更リクエストが処理され確認されることを可能にする解決策が幾つか提案されている。第１の提案された解決策は、電圧変更リクエストのステータスを判定するために、各電圧コマンド後に、プロセッサにより“ポーリング”コマンドを発出することを含む。ポーリング・コマンドの発出は、プロセッサとＤＣＡとの間のさらなる帯域幅を利用し、そのことによって、他の動作に指定されている帯域幅を消費する。さらなるプロセッサ帯域幅の消費には、システム電力管理センサのために必要とされる帯域幅が利用されるので、システム・アーキテクチャ内での電力管理の質に悪影響を及ぼす。第２の提案されている解決策は、“完成電圧遷移”信号をＤＣＡからプロセッサに送信することを含む。“完成電圧遷移”信号の送信は各電圧ドメインのためにさらなる入力／出力ピンを必要とし、それらのピンはハイ・エンドのシステム・アーキテクチャのための拡張可能なソリューションをもたらすように共有される。しかし、その１つ以上の入力／出力ピンが共有されると、プロセッサは、どのＤＣＡが“完成電圧遷移”信号を送ったのかを判定するのが困難となる。このため、電圧変更リクエストは完了しない。提案されている解決策は最適でもないし好ましくもない解決策である。
【課題を解決するための手段】
【０００４】
１つ以上の電圧変更および１つ以上の周波数変更に関連付けられた動作を管理するための方法、システムおよびコンピュータ・プログラムが開示される。電圧変更リクエストおよび周波数変更リクエストは、動的電圧および周波数スケーリング（ｄｙｎａｍｉｃ  ｖｏｌｔａｇｅ  ａｎｄ  ｆｒｅｑｕｅｎｃｙ  ｓｃａｌｉｎｇ（ＤＶＦＳ））動作と関連付けられる。周波数変更動作は１つまたは複数のプロセッサにより実行される。電圧変更リクエストは１つ以上のダイレクト・カレント・アセンブリ（ＤＣＡ）により実行されるべくプロセッサにより送信される。１つ以上の電圧変更動作に関連付けられたシーケンスおよび１つ以上の周波数変更動作に関連付けられたシーケンスはシステムにより検出される。該シーケンスは、１つ以上の先行する電圧変更リクエストの完了を示す付加的な電圧変更リクエストを電圧変更動作のシーケンスの終わりに挿入し得るように動的に改変される。電圧変更リクエストが完了しれいれば、次に来る１つ以上の電圧変更リクエストを処理することが可能となる。電圧変更リクエストが首尾よく完了させられなかったときには、１つ以上の今後の電圧変更がサスペンドされる。
【０００５】
本発明の上記のおよび別の目的、特徴、および利点は、次の詳細な書面にされた記述において明らかになるであろう。
【０００６】
本発明自体、およびその利点は、実例となる実施態様についての次の詳細な記述を添付図面と関連させて読むことにより最善に理解されるであろう。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施態様に従う、本発明が実施される例としてのハイ・エンドのシステム・アーキテクチャのブロック図表現を提供する。
【図２】本発明の一実施態様に従う、１つ以上の電圧レギュレータ・モジュール、フレキシブル・サポート・プロセッサ（ｆｌｅｘｉｂｌｅ  ｓｕｐｐｏｒｔ  ｐｒｏｃｅｓｓｏｒ（ＦＳＰ））、および１つ以上のダイレクト・カレント・アセンブリと関連付けられた１つ以上のマイクロプロセッサのブロック図表現である。
【図３】本発明の一実施態様に従う、動的電圧および周波数スケーリング（ＤＶＦＳ）動作の中で１つ以上のリクエスト（例えば電圧変更リクエストおよび周波数変更リクエスト）を管理するためのプロセスを示すフローチャートである。
【図４】本発明の一実施態様に従う、ＤＶＦＳ動作の実行のためのリクエストの成功または失敗を判定するためのダイレクト・カレント・アセンブリ（ＤＣＡ）のプロセスを示すフローチャートである。
【図５】本発明の一実施態様に従う、システム・アーキテクチャ内の１つ以上のコンポーネントが故障した時に電圧変更リクエストを管理するためのＦＳＰのプロセスを示すフローチャートである。
【発明を実施するための形態】
【０００８】
実例となる実施態様は、１つ以上の電圧変更および１つ以上の周波数変更と関連付けられた動作を管理するための方法、システムおよびコンピュータ・プログラムを提供する。電圧変更リクエストおよび周波数変更リクエストは動的電圧および周波数スケーリング（ＤＶＦＳ）動作と関連付けられる。周波数変更動作は、１つまたは複数のプロセッサにより実行される。電圧変更リクエストは、１つ以上のダイレクト・カレント・アセンブリ（ＤＣＡ）により実行されるべくプロセッサにより送信される。１つ以上の電圧変更動作に関連付けられたシーケンスおよび１つ以上の周波数変更動作に関連付けられたシーケンスはシステムにより検出される。該シーケンスは、１つ以上の先行する電圧変更リクエストの完了を示す付加的な電圧変更リクエストを電圧変更のシーケンスの終わりに挿入し得るように動的に改変される。電圧変更リクエストが完了していれば、次に来る１つ以上の電圧変更リクエストを処理することが可能となる。電圧変更リクエストが首尾よく完了させられなかったときには、１つ以上の今後の電圧変更がサスペンドされる。
【０００９】
本発明の代表的な実施態様についての次の詳細な記述においては、本発明が実施され得る特定の代表的実施態様が、当業者が本発明を実施し得るように充分に詳しく記述されるが、他の実施態様も利用され得るということ、および、本発明の精神および範囲から逸脱せずに論理的、アーキテクチャ的、プログラム的、機械的、電気的変更、およびその他の変更がなされ得るということが理解されるべきである。従って、次の詳細な記述は限定的な意味で解されるべきではなく、本発明の範囲は添付されている請求項およびその同等物により定義される。
【００１０】
図面の記述の中では、前の１つまたは複数の図にある同様の要素には同様の名称および参照番号が与えられている。後の図が要素を異なる状況においてあるいは異なる機能で利用する場合には、該要素には図の番号を表す先導数字が別に与えられている。要素に割り当てられた特定の数字は、もっぱら記述を助けるために与えられており、記述される実施態様に関する限定（構造的、あるいは機能的、あるいはその他）を意味するように意図されてはいない。
【００１１】
特定のコンポーネント名、装置名およびパラメータ名（例えば本明細書に記載されている実行ユーティリティ／論理などのそれ）のうちの少なくとも１つの使用は単なる例示を目的としているのであって、本発明についての限定を意味するように意図されてはいないということは明らかである。従って本発明は、限定無しに、本明細書においてコンポーネント／装置／パラメータを記述するために利用されるさまざまな術語／技術用語で講じられ得る。本明細書で利用される各々の用語には、その用語が利用される文脈において最も広い解釈が与えられるべきである。
【００１２】
ここで図面を、始めに図１を参照すると、１つの実施態様の中で利用される、例としてのハイ・エンドのシステム・アーキテクチャのブロック図表現が描かれている。図示されているように、システム・アーキテクチャ１００は１つ以上の中央処理ユニット（そのうちのプロセッサＡ１３０およびプロセッサＢ１４０が示されている）を含み、各処理ユニットは電圧および周波数制御ユニット（ｖｏｌｔａｇｅ  ａｎｄ  ｆｒｅｑｕｅｎｃｙ  ｃｏｎｔｒｏｌ  ｕｎｉｔ（ＶＦＣＵ））を含む。プロセッサＡ１３０およびプロセッサＢ１４０は、各々ＶＦＣＵ１３５を含む。プロセッサＡ１３０およびプロセッサＢ１４０の中の電圧および周波数制御ユニット（ＶＦＣＵ１３５）は、同時に、または互いに独立して、あるいは同時かつ互いに独立して動作する。プロセッサＡ１３０およびプロセッサＢ１４０は、システム相互接続／バス１０５を介してフレキシブル・サポート・プロセッサ（ＦＳＰ）１６０と呼ばれる標準的サービス・プロセッサと通信する。システム相互接続／バス１０５にはダイレクト・カレント・アセンブリ（ＤＣＡ）Ａ１７０およびＤＣＡ  Ｂ１９０も接続されている。ＤＣＡ１７０の中には１つ以上の電圧レギュレータ・モジュール（ＶＲＭ）、ＶＲＭ１  Ａ１２０およびＶＲＭ１  Ｂ１２５があり、マイクロコントローラＡ１７２と通信する。同様に、ＤＣＡ  Ｂ１９０の中では、ＶＲＭ２  Ａ１５０およびＶＲＭ２  Ｂ１５５がマイクロコントローラＢ１９２と通信する。
【００１３】
システム・アーキテクチャ１００の上記のハードウェア・コンポーネントの他に、本発明の種々の特徴が、ＤＣＡ  Ａ１７０およびＤＣＡ  Ｂ１９０内に格納されてマイクロコントローラＡ１７２およびマイクロコントローラＢ１９２により実行されるソフトウェア（またはファームウェア）コードまたはロジックを介して完成／サポートされる。従って、例えば、ＤＣＡ  Ａ１７０およびＤＣＡ  Ｂ１９０内に電圧調整（ｖｏｌｔａｇｅ  ｒｅｇｕｌａｔｉｏｎ（ＶＲ））ユーティリティ１４５が示されており、これは、電圧調整ロジックを提供するためにマイクロコントローラＡ１７２およびマイクロコントローラＢ１９２上で実行される。実際の実施においては、それぞれのソフトウェア・コンポーネントの種々の機能を、対応する複合コードがマイクロコントローラＡ１７２またはマイクロコントローラＢ１９２、あるいはその両方によって実行されるときに、全体として提供する単一の実行可能なコンポーネントを提供するために、ＶＲユーティリティ１４５は、システム・アーキテクチャ１００の中のＦＳＰ１６０および１つ以上の他のコンポーネントのうちの少なくとも１つの動作と結合されあるいは組み込まれ得る。簡単のために、ＶＲユーティリティ１４５は、以下で記述されるように特定の機能を提供するスタンドアロンまたは独立のソフトウェア／ファームウェア・コンポーネントとして図示され記述される。図１の絵では、ＶＲユーティリティ１４５はＤＣＡ  Ａ１７０およびＤＣＡ  Ｂ１９０の中に描かれている。ＶＲユーティリティ１４５は２つの位置に示されているけれども、ＶＲユーティリティ１４５は単一のユーティリティとして動作する。
【００１４】
一実施態様では、ＶＦＣＵ１３５はＤＶＦＳ動作を実行するための命令を受け取る。ＶＦＣＵ１３５は、ＶＲユーティリティ１４５を実行するマイクロコントローラＡ１７２およびマイクロコントローラＢ１９２とそれぞれ通信する。ＶＲユーティリティ１４５によりサポートされるか、または実行されるか、あるいはサポートかつ実行される或る機能は、その機能の実行を完了させるためにプロセッサまたは装置ハードウェアあるいはその両方によって実行される処理ロジックを生成する。記述を簡潔にするために、これらの種々の機能を可能にするコードの全体は、本明細書においてＶＲユーティリティ１４５と称される。ＶＲユーティリティ１４５により提供される、本発明に特有のソフトウェア・コード／命令／ロジックの中には：（ａ）１つ以上の電圧変更動作のシーケンスおよび１つ以上の周波数変更動作のシーケンスを動的に改変するためのコード／ロジックがあり、ここで該シーケンスの改変は電圧変更を対応する周波数変更動作に対して先へ移すことを含み；（ｂ）１つ以上の電圧変更のシーケンスの終わりにインジケータ電圧変更を自動的に挿入するためのコード／ロジックがあり、（ｃ）該インジケータ電圧変更の実行を検出するためのコード／ロジックがあり、ここで該インジケータ電圧変更の検出は１つ以上の先行する電圧変更リクエストの完了を意味する。この実例となる実施態様によれば、ＶＦＣＵ１３５がＶＲユーティリティ１４５を介してＤＶＦＳ動作を実行するための命令を受け取ったとき、システム・アーキテクチャ１００は、上記機能特徴および付加的な特徴／機能を可能にする一連の機能プロセスを開始する。これらの特徴／機能は、以下で図２−５についての記述の中でより詳しく記述される。
【００１５】
当業者は、図１に描かれているハードウェア・コンポーネントおよび基本構成が変化し得ることを理解するであろう。システム・アーキテクチャ１００の中の実例としてのコンポーネントは、網羅的であるようには意図されていなくて、本発明を実施するために利用される必須のコンポーネントを強調するための代表的なものである。例えば、描かれているハードウェアの他にあるいはその代わりに、他の装置／コンポーネントが使用され得る。描かれている例は、目下記述されている実施態様または全般的発明あるいはその両方に関してアーキテクチャ上のあるいは他の限定を示唆するように意図されてはいない。図１に描かれているシステム・アーキテクチャは、例えば、ニューヨーク州アーモンク市にあるＩＢＭ社の製品であるＩＢＭ  ＰＯＷＥＲ  ｓｅｒｉｅｓ（ＩＢＭ社の登録商標）のマイクロプロセッサと関連付けられ得るけれども、それはＩＢＭ社のサーバ、ミニコンピュータ、ワークステーションおよびスーパーコンピュータの多くにおいて主要な中央処理ユニットとして利用されている。
【００１６】
ここで図２を参照する。図２は、１つ以上の電圧レギュレータ・モジュールと関連付けられた１つ以上のマイクロプロセッサの間のインターコネクティビティを示す。さらに、マイクロプロセッサは、フレキシブル・サポート・プロセッサおよび１つ以上のダイレクト・カレント・アセンブリと関連付けられている。システム・アーキテクチャ２００は、フレキシブル・ハードウェア・サポート・プロセッサ（ＦＳＰ）２６０と通信するプロセッサＡ２３０およびプロセッサＢ２４０を含む。プロセッサＡ２３０、プロセッサＢ２４０、およびＦＳＰ２６０はダイレクト・カレント・アセンブリ（ＤＣＡ）Ａ２７０およびＤＣＡ  Ｂ２９０と通信する。ＤＣＡ  Ａ２７０およびＤＣＡ  Ｂ２９０は電圧レギュレータ・モジュール（ＶＲＭ）Ａ２２０およびＶＲＭ  Ｂ２５０をそれぞれ含む。マイクロコントローラＡ２７２はＤＣＡ  Ａ２７０内のＶＲＭ  Ａ２２０と通信し、マイクロコントローラＢ２９２はＤＣＡ  Ｂ２９０内のＶＲＭ  Ｂ２５０と通信する。マイクロコントローラＡ２７２およびマイクロコントローラＢ２９２は、さらに、ＤＣＡ（ＤＣＡ  Ａ２７０およびＤＣＡ  Ｂ２９０）の間での通信を可能にする。ＤＣＡ  Ａ２７０およびＤＣＡ  Ｂ２９０は、各々１つ以上の電圧調整スレーブ装置２５６を含む。システム相互接続バス２０５は、システム・アーキテクチャ２００内でプロセッサ、ＦＳＰ（プロセッサＡ２３０およびプロセッサＢ２４０）およびＤＣＡ（ＤＣＡ  Ａ２７０およびＤＣＡ  Ｂ２９０）を接続するために利用される。システム相互接続バス２０５は、例えば、業界標準の集積回路間（Ｉ２Ｃ）インターフェースであってよい。
【００１７】
一実施態様では、ＤＣＡ  Ａ２７０およびＤＣＡ  Ｂ２９０は、プロセッサＡ２３０およびプロセッサＢ２４０に電力を提供する。プロセッサＡ２３０およびプロセッサＢ２４０は、ＤＣＡおよび他のコンポーネント（例えばＶＲＭ）の少なくとも１つが故障した場合に該プロセッサへの電力供給を確保するために１つ以上のＤＣＡ（ＤＣＡ  Ａ２７０およびＤＣＡ  Ｂ２９０）から冗長電力接続を受け入れる。（図１の）ＶＲＭ  Ａ１２０およびＶＲＭ  Ｂ１５０と同様のＶＲＭ  Ａ２２０およびＶＲＭ  Ｂ２５０は、各々ＤＣＡ  Ａ２７０およびＤＣＡ  Ｂ２９０内に位置して、ＶＲユーティリティ（図１の１４５）から命令を受け取る。プロセッサＡ２３０およびプロセッサＢ２４０のそれぞれの電圧は、ＶＲＭ  Ａ２２０およびＶＲＭ  Ｂ２５０のうちの１つ以上によって制御される。システム・アーキテクチャ２００内で１つ以上のコンポーネントが故障すれば、プロセッサ（プロセッサＡ２３０およびプロセッサＢ２４０）は、それぞれの（１つ以上の）プロセッサの動作に必要とされる電圧を制御するために異なるＶＲＭ（すなわち、動作可能なＶＲＭ）を使用する。
【００１８】
他の１つの実施態様では、１つ以上のプロセッサ（プロセッサＡ２３０およびプロセッサＢ２４０）に提供される電力は、動的電圧および周波数スケーリング（ＤＶＦＳ）動作を介して制御される。各ＤＶＦＳ動作は、電圧変更リクエスト（または１つ以上の電圧変更動作間の電圧変更遷移）の第１シーケンスと、周波数変更リクエスト（または１つ以上の周波数変更動作間の周波数遷移）の第２シーケンスとから成る。第１シーケンス中の各電圧変更リクエストは第２シーケンス中の周波数変更リクエストと対応する。ＤＶＦＳ動作がプロセッサＡ２３０またはプロセッサＢ２４０あるいはその両方により受け取られると、ＶＦＣＵ（図１の１３５）は、電圧変更動作の第１シーケンスを対応する周波数変更の第２シーケンスに対して先へ移す。ＶＦＣＵ（図１の１３５）は、電圧リクエスト変更をＤＣＡ  Ａ２７０またはＤＣＡ  Ｂ２９０あるいはその両方に送る。追加の電圧変更リクエストは、移された電圧変更動作またはリクエストあるいはその両方の第１シーケンスの終わりに付け加えられる。ＤＶＦＳ動作が実行されるとき、電圧変更リクエスト・データ・パケットの肯定応答は、先行する電圧変更動作の完了を意味するインジケータ電圧変更である。
【００１９】
一実施態様では、電圧変更リクエストまたは周波数変更リクエストあるいはその両方はＤＶＦＳ動作の中で提供される。システム・アーキテクチャ２００の中ではＤＣＡ  Ａ２７０およびＤＣＡ  Ｂ２９０は電圧調整スレーブ装置である。ＤＶＦＳ動作はプロセッサＡ２３０およびプロセッサＢ２４０により開始される。ＶＲＭ  Ａ２２０およびＶＲＭ  Ｂ２５０はＤＶＦＳ動作の開始を求めるリクエスト（電圧変更リクエストおよび周波数変更リクエスト）を受け取り、ＶＲＭは、ＤＶＦＳ動作により定められる動作電圧をセットする。ＤＣＡ  Ａ２７０およびＤＣＡ  Ｂ２９０はＤＶＦＳ動作を実行し、ＤＶＦＳリクエストにより定められているように電力をプロセッサＡ２３０およびプロセッサＢ２４０に提供する。
【００２０】
他の１つの実施態様では、ＤＶＦＳ動作が受け取られると、命令をＶＲＭ  Ａ２２０およびＶＲＭ  Ｂ２５０に伝えるＶＲユーティリティは、ＤＣＡ  Ａ２７０およびＤＣＡ  Ｂ２９０が失敗“ＮＡＣＫ”応答または成功“ＡＣＫ”応答をプロセッサＡ２３０およびプロセッサＢ２４０に送ることを可能にする。失敗“ＮＡＣＫ”応答または成功“ＡＣＫ”応答は、１つ以上のＤＣＡがＤＶＦＳ動作の処理／実行を続けるか否かを確認するものである。特に、ＤＣＡからプロセッサへの“ＡＣＫ”（成功）応答は、先行するエラーが無いことと該ＤＶＦＳ動作（電圧変更リクエストまたは周波数変更リクエストあるいはその両方）が始まることとを該プロセッサに伝える。ＤＣＡからプロセッサへの“ＮＡＣＫ”（失敗）応答は、現在は通信エラー、コンポーネント故障、先行するＤＶＦＳ動作の処理の未完了の少なくとも一つに起因して、新しいリクエストが容認されない（すなわち、新しいリクエストが始まらない）ことを伝える。
【００２１】
一実施態様では、ＶＲユーティリティ１４５（図１）は、システム・アーキテクチャ２００内でのＤＶＦＳ動作を管理する。１つ以上のＤＣＡが電力を１つ以上のプロセッサに供給する。ＶＲユーティリティは、電力をその１つ以上のプロセッサに供給している１つ以上のＤＣＡを特定するためにＶＲＭ  Ａ２２０またはＶＲＭ  Ｂ２５０あるいはその両方と通信する。例えば、プロセッサＡ２３０は電力をＤＣＡ  Ａ２７０から受け取っている。ＶＲＭ  Ａ２２０は、ＤＣＡ  Ａ２７０によりプロセッサＡ２３０に供給される電力を制御する。ＤＣＡ  Ａ２７０またはＶＲＭ  Ａ２２０あるいはその両方が故障し、取り外されたとき、あるいはＤＣＡ  Ａ２７０またはＶＲＭ  Ａ２２０あるいはその両方との通信が止まったとき、ＶＲユーティリティは、その故障を引き起こしたコンポーネントを特定し、該ＤＶＦＳ動作をその故障したコンポーネントから１つ以上の作動中のコンポーネント（すなわちＤＣＡ  Ｂ２９０またはＶＲＭ  Ｂ２５０あるいはその両方）へ移す。該ＤＶＦＳ動作は、利用可能な作動中のコンポーネントを利用して処理される。
【００２２】
他の１つの実施態様では、プロセッサからのＤＶＦＳリクエストに従っているとき、ＤＣＡ（例えばＤＣＡ  Ａ２７０）が故障するか、または該ＤＣＡが使用可能であるか、あるいはその両方である。例えば、プロセッサからのＤＶＦＳリクエストに従っている間にＤＣＡ  Ａ２７０が故障していれば、プロセッサＡ２３０は、ＤＣＡ  Ａ２７０との通信をＮ回試みる（この‘Ｎ’は予め定められた数である）。Ｎ回後に成功応答が受け取られていなければ動作はキャンセルされる。ＶＲユーティリティは、失敗アラートのＦＳＰ２６０への送信を可能にする。該失敗アラートは、取り外されたＤＣＡ（ＤＣＡ  Ａ２７０）を特定する。その取り外されたＤＣＡ（例えばＤＣＡ  Ａ２７０）に該プロセッサが今後ＤＶＦＳ動作（例えば周波数変更および電圧変更）を発出／送信することは妨げられる。ＤＶＦＳ動作が処理／実行されていなくてＤＣＡ  Ａ２７０が取り外されていることをＤＣＡ  Ｂ２９０が認識しているとき、ＤＣＡ  Ａ２７０の取り外しを報告する失敗アラートがＦＳＰ２６０に送られる。ＶＲユーティリティによって、ＦＳＰ２６０は、今後のＤＶＦＳ動作をその取り外されたＤＣＡ（ＤＣＡ  Ａ２７０）に送信することを妨げることが可能になる。
【００２３】
別の例では、全てのＤＣＡ（ＤＣＡ  Ａ２７０およびＤＣＡ  Ｂ２９０）が１つ以上のＤＶＦＳ動作を処理するために利用可能であり、１つ以上の故障が発生する（例えば、システム相互接続バス２０５内での通信故障またはＶＲＭコンポーネント故障）。ＤＶＦＳ動作中、ＶＲユーティリティは、ＤＣＡ  Ａ２７０またはＤＣＡ  Ｂ２９０あるいはその両方がＦＳＰ２６０の初期動作電圧を要求することを可能にする。その後、ＤＣＡ  Ａ２７０またはＤＣＡ  Ｂ２９０あるいはその両方は、ＦＳＰ２６０から受け取った該初期動作電圧に対して１つ以上の電圧変更動作を実行する。ＤＶＦＳ動作の外で故障が起こったときには、ＤＣＡ  Ａ２７０またはＤＣＡ  Ｂ２９０あるいはその両方はＦＳＰ２６０から初期動作電圧を要求する。該初期動作電圧をＦＳＰ２６０から受け取ると、ＶＲユーティリティまたはＦＳＰ２６０あるいはその両方は、ＤＣＡ  Ａ２７０またはＤＣＡ  Ｂ２９０あるいはその両方がＦＳＰ２６０により提供された初期動作電圧に対して電圧変更動作を実行することを可能にする。
【００２４】
図３−５は、実例としての実施態様の上記プロセスを達成させる種々の方法を示すフローチャートである。図３−５に示されている方法は図１−２に示されているコンポーネントに関して記述され得るけれども、それは単に便宜上のことであって、種々の方法を実行するときにその代わりのコンポーネントまたは構成あるいはその両方が採用され得るということが理解されるべきである。該方法の重要な部分は、プロセッサ（プロセッサＡ１３０およびプロセッサＢ１４０）の中のＶＦＣＵ１３５によって、または、システム・アーキテクチャ１００（図１）の中のマイクロコントローラＡ１７２およびマイクロコントローラＢ１９２上で実行されてシステム・アーキテクチャ１００の特定の動作を制御するＶＲユーティリティ１４５によって、あるいはその両方によって達成され得る。従って、該方法は、ＶＲユーティリティ１４５とシステム・アーキテクチャ１００内のコンポーネントとの両方の観点から記述される。
【００２５】
図３は、ＤＶＦＳ動作内の１つ以上のリクエスト（例えば電圧変更リクエストおよび周波数変更リクエスト）を管理するためのプロセスを描いている。図３のプロセスは開始ブロック３００から始まってブロック３０２に進み、ここで電圧／周波数変更リクエストのシーケンスが受け取られる。ブロック３０４で、電圧変更リクエストのシーケンスは、対応する周波数変更動作のシーケンスに対して動的に先へ移される。ブロック３０６で、先行する電圧変更リクエストまたはＤＶＦＳ動作あるいはその両方の完了を示すために、電圧変更リクエストのシーケンスの終わりにインジケータ電圧変更リクエストが自動的に付け加えられる。ブロック３０８で、電圧変更リクエストのうちの１つ以上は、１つ以上のプロセッサに電力を供給している各ＤＣＡに送られる。
【００２６】
ブロック３１０で、全てのＤＣＡから成功（ＡＣＫ）応答が検出されたか否かが判定される。成功応答が全てのＤＣＡから検出されたならば、プロセスはブロック３１６へ続く。ブロック３１６では、インジケータ電圧に達しているか否かが判定される。もしインジケータ電圧に達しているならばプロセスはブロック３２２へ続く。もしインジケータ電圧に達していなければプロセスはブロック３０８に戻る。もし成功応答が全てのＤＣＡからは検出されなければ、プロセスはブロック３１２へ続く。ブロック３１２で、電圧変更リクエストは再びＮ回開始される（ここでＮは予め定められた数である）。ブロック３１４で、全てのＤＣＡからＡＣＫが受け取られたか否かが判定される。もし成功応答が全てのＤＣＡから検出されたならば、プロセスはブロック３１６へ続く。もし成功応答が検出されなければ（すなわち“ＮＡＣＫ”応答が受け取られれば）、プロセスはブロック３１８へ続く。ブロック３１８で、失敗アラートがＦＳＰに送られる。プロセッサからの１つ以上の今後の電圧変更動作、または１つ以上のＤＣＡへの１つ以上の今後の電圧変更動作、あるいはその両方がブロック３２０でサスペンドされる。プロセスはブロック３２２で終了する。
【００２７】
ＤＶＦＳ動作の実行を求めるリクエストの成功または失敗を判定するプロセスは図４に描かれている。図４のプロセスは開始ブロック４００から始まってブロック４０２に進み、ここでＤＶＦＳ動作を開始するためのリクエストが受け取られる。ブロック４０４で、電圧変更リクエストまたは周波数変更リクエストあるいはその両方が現在ペンディングしているか否かが判定される。もし電圧変更リクエストまたは周波数変更リクエストあるいはその両方が現在ペンディングしていれば、プロセスはブロック４１０へ続く。ブロック４１０では失敗（“ＮＡＣＫ”）応答がプロセッサに送られる。ブロック４１２で、ＤＶＦＳ動作の実行を求めるリクエストが再び出され、プロセスはブロック４０４に戻る。ブロック４０４で、もし電圧変更リクエストまたは周波数変更リクエストあるいはその両方が現在ペンディングしていなければ、プロセスはブロック４０６へ続く。ブロック４０６で、先行する電圧変更リクエストまたは周波数変更リクエストあるいはその両方が失敗したか否かが判定される。もし先行する電圧変更リクエストまたは周波数変更リクエストあるいはその両方が失敗したならば、プロセスはブロック４１０へ続く。もし先行する電圧変更リクエストまたは周波数変更リクエストあるいはその両方が失敗していなければ、ブロック４０８で、ＶＲユーティリティは電圧変更リクエストまたはＤＶＦＳ動作あるいはその両方の実行を可能にする。プロセスはブロック４１４で終了する。
【００２８】
図５は、システム・アーキテクチャ内の１つ以上のコンポーネントが故障した時に電圧変更リクエストを管理するためのプロセスを描いている。図５のプロセスは開始ブロック５００から始まってブロック５０２に進み、ここでコンポーネント故障通知が受け取られる。ブロック５０４で、１つ以上のＤＣＡが取り外されたかどうかが判定される。もし１つ以上のＤＣＡが取り外されていたならば、プロセスはブロック５０６へ進む。ブロック５０６で、その取り外されたＤＣＡとの通信試行はキャンセルされる。ブロック５０８でＦＳＰに通知がなされる。ブロック５１０で、その取り外されたＤＣＡに送られた１つ以上の電圧変更リクエストまたは周波数変更リクエストあるいはその両方はキャンセルされる。もし５０４で１つ以上のＤＣＡが取り外されていなかったならば、プロセスはブロック５１２へ続く。ブロック５１２でＦＳＰから初期動作電圧が要求される。該初期動作電圧はブロック５１４でＦＳＰから受け取られる。該初期動作電圧に対する電圧変更リクエストまたはＤＶＦＳ動作あるいはその両方がブロック５１６で完了する。プロセスはブロック５１８で終了する。
【００２９】
上記フローチャートにおいて、該方法のうちの１つ以上は、コンピュータ可読コードを含むコンピュータ可読記憶媒体において、該コンピュータ可読コードが計算装置上で（処理ユニットにより）実行されるときに一連のステップが実行されるように、具体化される。あるインプリメンテーションでは、該方法のいくつかのプロセスは、本発明の精神および範囲から逸脱すること無く、組み合わされ、同時にまたは異なる順序で実行され、あるいはことによると省略される。従って、該方法プロセスは特定のシーケンスで記述され図示されているけれども、プロセスの特定のシーケンスの使用は、本発明に関してどのような限定を示唆するようにも意図されていない。本発明の精神あるいは範囲から逸脱すること無くプロセスのシーケンスに関して変更を行なうことができる。従って、特定のシーケンスの使用は限定的意味に解されるべきではなく、本発明の範囲は、添付されている請求項およびその同等物に及ぶ。
【００３０】
当業者に理解されるであろうように、本発明は方法、システムおよびコンピュータ・プログラムのうちの少なくとも１つとして具体化され得る。従って、本発明は、完全にハードウェアの実施態様、完全にソフトウェアの実施態様（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、あるいは、ソフトウェア側面と、本明細書においてごく一般的に“回路”、“モジュール”、“ロジック”あるいは“システム”と称され得るハードウェア側面とを組み合わせた実施態様という形をとることができる。さらに、本発明は、コンピュータで使用可能なプログラム・コードが具体化されている、コンピュータで使用可能な記憶媒体の上のコンピュータ・プログラムという形をとることができる。
【００３１】
さらに理解されるであろうように、本発明の実施態様のプロセスは、ソフトウェア、ファームウェア、マイクロコード、あるいはハードウェアの任意の組み合わせを用いて実行され得る。本発明をソフトウェアで実施するのに先立つ予備ステップとして、プログラミング・コード（ソフトウェアでもファームウェアでも）は、通例、固定（ハード）ドライブ、ディスケット、磁気ディスク、光ディスク、磁気テープ、あるいはＲＡＭ、ＲＯＭ、ＰＲＯＭなどの半導体メモリなどの１つ以上の機械可読記憶媒体に格納され、本発明の製造物品になるであろう。該プログラミング・コードを含む該製造物品は、該記憶装置から該コードを直接実行することにより、該コードを該記憶装置からハードディスク、ＲＡＭなどの他の記憶装置にコピーすることにより、あるいはデジタル通信リンクおよびアナログ通信リンクなどの伝送型媒体を用いて遠隔実行のために該コードを伝送することにより、使用される。該媒体は、電子、磁気、光学、電磁、赤外線、または半導体システム（あるいは機器または装置）、または伝播媒体であり得る。さらに、該媒体は、該プログラムを、実行システム、機器または装置による使用のためにあるいはこれらと関連しての使用のために包含し、記憶し、伝達し、伝播し、あるいは移送することのできる任意の機器であり得る。本発明の方法は、前記の１つまたは複数の実施態様に従うコードを包含する１つ以上の機械可読記憶装置を、それに包含されているコードを実行するための適切な処理ハードウェアと組み合わせることにより実行され得る。本発明を実行するための機器は、本発明に従ってコード化された１つまたは複数のプログラムへのネットワーク・アクセス（サーバを介しての）を包含するかあるいは有する１つ以上の処理装置および記憶システムとすることができよう。一般的に、コンピュータ、コンピュータ・システム、あるいはデータ処理システムという用語は、記憶媒体からの命令／コードを実行するプロセッサ（あるいは処理ユニット）を有する任意の装置を包含するように広く定義され得る。
【００３２】
当業者は、本発明の実例となる実施態様のソフトウェア側面はプログラムとして種々の形で配布され得るということ、および、本発明の実例となる実施態様は該配布を実際に実行するために使用される媒体の具体的タイプに関わらず等しく適用されるということを理解するであろう。例を挙げれば、媒体のタイプの非網羅的リストは、フレキシブル・ディスク、サム・ドライブ、ハード・ディスク・ドライブ、ＣＤ  ＲＯＭ、ＤＶＤなどの記録可能タイプ（有形）媒体と、デジタルおよびアナログ通信リンクなどの伝送タイプ媒体とを含む。
【００３３】
本発明は代表的実施態様に関して記述されたけれども、本発明の範囲から逸脱することなく種々の変更が行われ得るということ、およびその要素の代わりに同等物が用いられ得るということが当業者に理解されるであろう。さらに、特定のシステム、装置またはそのコンポーネントを本発明の教示に、その本質的範囲から逸脱することなく、適合させる多くの改変が行われ得る。従って、本発明は、本発明を実行するために開示された特定の実施態様に限定されなくて、添付されている請求項の範囲に属する全ての実施態様を本発明が含むということが意図されている。さらに、第１、第２等の用語の使用は順序あるいは重要性を示してはいなくて、第１、第２等の用語は要素を他の要素から区別するために使用されている。
【符号の説明】
【００３４】
１００  システム・アーキテクチャ
１０１  コアＸ
１０３  コアＹ
１０５  システム相互接続／バス
１２０  ＶＲＭ１Ａ
１２５  ＶＲＭ１Ｂ
１３０  プロセッサＡ
１３５  ＶＦＣユニット
１４０  プロセッサＢ
１４５  ＶＲユーティリティ
１５０  ＶＲＭ２Ａ
１５５  ＶＲＭ２Ｂ
１６０  ＦＳＰ
１７０  ＤＣＡ  Ａ
１７２  マイクロコントローラＡ
１９０  ＤＣＡ  Ｂ
１９２  マイクロコントローラＢ
【図１】
2011081800.tif 000003
【図２】
2011081800.tif 000004
【図３】
2011081800.tif 000005
【図４】
2011081800.tif 000006
【図５】
2011081800.tif 000007