(57)【特許請求の範囲】
【請求項１】
集積回路（ＩＣ）に関する新たな状態に移行するのに先立ち、前記ＩＣ内の複数のドメインについての予想電力の総和を計算するステップであり、前記新たな状態における個々のドメイン周波数に基づいて、前記複数のドメインの各々について予想電流を計算し、且つ、該予想電流に、前記新たな状態について前記複数のドメインの各々に関連付けられた電圧を乗算することによって、前記総和を計算するステップと、
前記総和を電力制限と比較するステップと、
前記総和が前記電力制限よりも大きい場合に、前記総和と前記電力制限との間の比を計算し、且つ、前記複数のドメイン内の各ドメインに関連付けられた前記個々のドメイン周波数を、少なくとも前記比だけ低下させることによって、前記ＩＣの総瞬時電力を前記電力制限未満に維持するように、前記複数のドメイン内の少なくとも１つのドメインに関連付けられた前記個々のドメイン周波数を低下させるステップと、
を有する方法。
【請求項２】
前記複数のドメインの各々について予想電流を計算することは、電流リーク、目標周波数、及び動的キャパシタンス（Ｃｄｙｎ）に基づく、請求項１に記載の方法。
【請求項３】
前記複数のドメインの各々について予想電流を計算することは、アクティブ電流及び静電流を計算し、該アクティブ電流及び静電流を加算することを有する、請求項１に記載の方法。
【請求項４】
前記アクティブ電流を計算することは、起動状態にある前記ドメイン内の各コアについてのワーストケースのＣｄｙｎを合計し、且つ、前記ワーストケースのＣｄｙｎに、前記ドメインについての前記ドメイン周波数及び前記関連付けられた電圧を乗算することを有する、請求項３に記載の方法。
【請求項５】
前記静電流を計算することは、起動状態にある前記ドメイン内の各コアについてのリークを合計することを有する、請求項３に記載の方法。
【請求項６】
前記リークは、前記ドメインの前記電圧及び温度における推定リークである、請求項５に記載の方法。
【請求項７】
前記複数のドメインの各々で使用すべき周波数を指定する新たな周波数値を、前記複数のドメインの各々に関連付けられたクロック発生器に送信するステップ、を更に有する請求項１に記載の方法。
【請求項８】
前記新たな状態は、前記複数のドメインの各々についてのスリープ状態及び実行状態のうちの１つ以上並びに周波数を含む、請求項１に記載の方法。
【請求項９】
集積回路（ＩＣ）であって、
複数のドメインと、
前記複数のドメインに結合されたユニットであり、前記複数のドメイン内の各ドメインからの要求を受信することに応答して、
新たな状態に移行するのに先立ち、前記複数のドメインについての予想電力の総和を、前記新たな状態における個々のドメイン周波数に基づいて前記複数のドメインの各々についての予想電流を計算し、且つ、該予想電流に、前記新たな状態について前記複数のドメインの各々に関連付けられた電圧を乗算することによって計算し、
前記総和を電力制限と比較し、
前記総和が前記電力制限よりも大きい場合に、前記総和と前記電力制限との間の比を計算し、且つ、前記複数のドメイン内の各ドメインに関連付けられた前記個々のドメイン周波数を、少なくとも前記比だけ低下させることによって、当該ＩＣの総瞬時電力を前記電力制限未満に維持するように、前記複数のドメイン内の少なくとも１つのドメインに関連付けられた前記個々のドメイン周波数を低下させる
ユニットと、
を有する集積回路（ＩＣ）。
【請求項１０】
前記ユニットは、前記複数のドメインの各々についての予想電流を、電流リーク、目標周波数、及び動的キャパシタンス（Ｃｄｙｎ）に基づいて計算する、請求項９に記載のＩＣ。
【請求項１１】
前記ユニットは、前記複数のドメインの各々についての予想電流を、アクティブ電流及び静電流を計算し、該アクティブ電流及び静電流を加算することによって計算する、請求項１０に記載のＩＣ。
【請求項１２】
前記ユニットは、前記アクティブ電流を、起動状態にある前記ドメイン内の各コアについてのワーストケースのＣｄｙｎを合計し、且つ、前記ワーストケースのＣｄｙｎに、前記ドメインについての前記ドメイン周波数及び前記関連付けられた電圧を乗算することによって計算する、請求項１１に記載のＩＣ。
【請求項１３】
前記ユニットは、前記静電流を、起動状態にある前記ドメイン内の各コアについてのリークを合計することによって計算する、請求項１２に記載のＩＣ。
【請求項１４】
前記リークは、前記ドメインの前記電圧及び温度における推定リークである、請求項１３に記載のＩＣ。
【請求項１５】
前記ユニットは、前記複数のドメインの各々で使用すべき周波数を指定する新たな周波数値を、前記複数のドメインの各々に関連付けられたクロック発生器に送信する、請求項９に記載のＩＣ。
【請求項１６】
集積回路（ＩＣ）内の複数のドメインの各ドメインについての新たな周波数を、前記ＩＣについての電力制限と、該各ドメインが入ることを要求する状態に関連するワーストケース電流の決定から導出されるワーストケース電力の計算結果との間の比較に基づいて生成するステップと、
前記複数のドメインの各々に関連付けられたクロック発生器に、前記複数のドメインの各々での使用のために発生すべきクロックの前記新たな周波数を信号伝達するステップと、
を有し、
各ドメインについての前記新たな周波数を生成するステップは、前記ワーストケース電力の計算結果が前記電力制限よりも大きい場合に、前記ワーストケース電力の計算結果と前記電力制限との間の比を計算し、且つ、前記複数のドメイン内の各ドメインに関連付けられた個々のドメイン周波数を、少なくとも前記比だけ低下させることを含む、
方法。
【請求項１７】
前記ワーストケース電流の決定は、電流リーク、目標周波数、及び動的キャパシタンス（Ｃｄｙｎ）に基づいた、前記複数のドメインの各々についての予想電流の計算に基づく、請求項１６に記載の方法。
【請求項１８】
命令を有するコンピュータプログラムであって、前記命令は実行されるときに集積回路に、
集積回路（ＩＣ）に関する新たな状態に移行するのに先立ち、前記ＩＣ内の複数のドメインについての予想電力の総和を、前記新たな状態における個々のドメイン周波数に基づいて、前記複数のドメインの各々について予想電流を計算し、且つ、該予想電流に、前記新たな状態について前記複数のドメインの各々に関連付けられた電圧を乗算することによって計算するステップであり、前記複数のドメインの各々について予想電流を計算することは、電流リーク、目標周波数、及び動的キャパシタンス（Ｃｄｙｎ）に基づく、ステップと、
前記総和を電力制限と比較するステップと、
前記総和が前記電力制限よりも大きい場合に、前記総和と前記電力制限との間の比を計算し、且つ、前記複数のドメイン内の各ドメインに関連付けられた前記個々のドメイン周波数を、少なくとも前記比だけ低下させることによって、前記ＩＣの総瞬時電力を前記電力制限未満に維持するように、前記複数のドメイン内の少なくとも１つのドメインに関連付けられた前記個々のドメイン周波数を低下させるステップと、
を有する方法を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、電力管理の分野に関し、より具体的には、本発明の実施形態は、デバイス（例えば、システム・オン・チップ（ＳＯＣ））に関して予期される電流がそのデバイスの電流内にあるかを決定することに関する。
【背景技術】
【０００２】
高性能ＳｏＣは、一連の電力供給ネットワーク（power  delivery  network；ＰＤＮ）の制約を受ける。１つのそのような制約は、小さいバッテリと、ＳｏＣ上で実行されるプロセスからの高電力消費の短期バーストによってストレスが掛かってそれらバッテリが故障する可能性があることである。ＳｏＣによって消費されている瞬時電力が設定された制限を超えることができるとすると、その瞬時電力は電源及びバッテリに重大な影響を与え得る。また、この制限を超えることは、“ブルースクリーン”にさせたり、又は過電流保護をトリガーしてシステムをシャットダウンさせたりしてしまい得るＩ＊Ｒ電圧降下を生じさせ得る。故に、瞬時電流はシステムに大きな制限を課し得る。
【０００３】
これらのＰＤＮ制約を補うために、数多くの電力管理技術が使用され又は開発されている。電力制限を超えた後に使用できる事後的技術が存在する。これらは、電力制限１（ＰＬ１）、電力制限２（ＰＬ２）、及び電力制限３（ＰＬ３）を含む。ＰＬ１は、システムが過熱することなく耐えることができる長期的なＣＰＵ電力制限である。ＰＬ２は、より高いクロックへの一時的な逸脱（例えば、プログラムをロードしている間の応答性を向上させるために、より速いクロック周波数への迅速なトリップ）に使用される短期的なバースト制限である。ＰＬ３は、チップ上で使用される動的な電圧及び周波数のスケーリング技術である。ＰＬ２が秒単位で測定される一方で、ＰＬ３の制限は、瞬時的な電力使用が装置のバッテリを損傷することを防止するために、ミリ秒単位で監視される。これらの技術はどちらも、電力測定を行うことを必要とし、これらの電力測定に応答して、ＰＬ２及びＰＬ３の双方がＳｏＣの周波数を低下させる。しかしながら、これらの技術は、電力測定を必要とするため、ＳｏＣの瞬時電力が高く上昇するときに、それに応答してそれを抑制するには遅すぎる。
【０００４】
他の１つの事後的アプローチでは、プラットフォームレベルのインタフェースが、瞬時電力制限を超えた時を監視し、該プラットフォームから中央演算処理ユニット（ＣＰＵ）に信号を送信することで、その動作を抑えて電流を瞬時制限未満に持ち込むようにしている。
【０００５】
更なる他の１つの事後的アプローチでは、電圧レギュレータのドメインごとに電流の計算を行って、電流が最大値（制限）を上回っているかを見ている。しかしながら、このアプローチは、複数の電圧レギュレータ（ＶＲ）ドメインには使用されず、故に、パッケージレベルでの電力供給問題には適していない。何故なら、各ＶＲドメイン内で電力を制限することは、ドメインの性能における望ましくなく低下と、より高い制限でのコストの増大とを生じさせ得るからである。しかしながら、これらの技術は性質的に事後的なものであるため、瞬時電流が高くなり過ぎて、より安全なレベルに戻される前に損傷を生じさせてしまうことを、防ぐことができない。
【図面の簡単な説明】
【０００６】
本発明は、以下に与えられる詳細な説明から、及び添付の本発明の様々な実施形態の図面から、より完全に理解されることになるが、これらは、単に説明及び理解のためのものであり、発明を特定の実施形態に限定するように解釈されるべきでない。
【図１】集積回路（ＩＣ）の一実施形態のブロック図である。
【図２Ａ】システム状態遷移を実行するプロセスの一実施形態のフロー図である。
【図２Ｂ】各ドメインについて予想電流を計算することに関する一実施形態のフロー図である。
【図３】電力比較に基づいてシステム状態遷移を実行すべきか決定するプロセスの他の一実施形態のフロー図である。
【図４】全てのドメインについての電力を合計するプロセスの一実施形態のフロー図である。
【図５】ドメインごとの電力計算を実行するプロセスの一実施形態のフロー図である。
【図６】プラットフォーム電力計算を実行するプロセスの一実施形態のフロー図である。
【図７】２つ以上のコアを有し得るプロセッサのブロック図である。
【図８】本発明の一実施形態に従ったＳｏＣのブロック図である。
【発明を実施するための形態】
【０００７】
以下の説明においては、本発明のより完全なる説明を提供するために、数多くの詳細事項が説明される。しかしながら、当業者に明らかになるように、本発明はこれらの具体的詳細事項を用いずに実施されてもよい。また、本明細書を曖昧にしないよう、周知の構造及び装置については、詳細にではなく、ブロック図の形態で示す。
【０００８】
集積回路（ＩＣ）の電力を制限する方法及び装置が開示される。ＩＣは、システム・オン・チップ（ＳｏＣ）、プロセッサ、等々とし得る。電力制限処理は、予防的計算を実行し、トータルのＩＣ瞬時電力を電力制限未満に維持する。
【０００９】
より具体的には、ＩＣに関する新たな状態（例えば、新たな動作点）への移行を行う前に、先を見越して電力計算が行われる。新たな状態への移行する要求が為されるとき、各ドメイン（例えば、電圧レギュレータ（ＶＲ）ドメイン）についての予想電流が計算され、それにその新たな状態に関する目標電圧が乗算されて、その新たな状態にあるときのドメインについての予想電力を表す総和が生成される。一実施形態において、各ドメインについての予想電流は、リーク、動的（dynamic）キャパシタンス（Ｃｄｙｎ）に対する最大電力、新たな状態で使用される目標周波数に基づいて計算される。様々なドメインについての予想電力値の全てが足し合わされて、総予想電力が生成され、それが電力制限と比較される。総予想電力が制限よりも大きい場合、新たな状態（例えば、新たな動作点）の総電力が電力制限未満となるよう、これらのドメインのうちの１つ以上の周波数が低減される。
【００１０】
図１は、集積回路（ＩＣ）の一実施形態のブロック図である。図１を参照するに、集積回路は幾つかのドメインを含んでいる。例えば、命令アーキテクチャ（instruction  architecture；ＩＡ）ドメイン１０３１（例えば、中央演算処理ユニット（ＣＰＵ）ドメイン）、グラフィックスドメイン１０３２、及び例えばドメイン１０３Ｎなどの１つ以上のその他のドメインである。各ドメインが、１つ以上のコア（たとえば、プロセッサコア、実行コア）又は専用ロジックを有し得る。
【００１１】
一実施形態において、電力管理ユニット（Power  Management  Unit；ＰＭＵ）マイクロコントローラ１０１が、ＩＣの電力を制御及び管理する。一実施形態において、ＰＭＵマイクロコントローラ１０１は、ドメインの各々に関するクロックの周波数を指定する。ＰＭＵマイクロコントローラ１０１は、これらの周波数の各々を、ドメインの各々に関連付けられた位相ロックループ（ＰＬＬ）に信号伝達する。例えば、ＰＬＬは、ＩＡドメイン１０３１にクロックを提供するＰＬＬ１０２１と、グラフィックスドメイン１０３２にクロックを提供するＰＬＬ１０２２と、ドメイン１０３Ｎにクロックを提供するＰＬＬ１０２Ｎとを含む。一実施形態において、ＰＭＵマイクロコントローラ１０１はＣＰＵの一部である。
【００１２】
一実施形態において、ドメイン１０３の各々は、ＰＭＵマイクロコントローラ１０１にドメイン固有のシステム状態要求を提供する。例えば、ＩＡドメイン１０３１、グラフィックスドメイン１０３２及びその他のドメイン１０３Ｎは、ＰＭＵマイクロコントローラ１０１にドメイン固有のシステム状態要求１０４１、１０４２、１０４Ｎを提供する。これら固有のシステム状態要求は、特定のドメインが移行後になる状態を指定する。一実施形態において、システム状態要求は、周波数と、スリープ状態又は実行状態のうちの少なくとも一方とを含む。なお、プロセッサコア及びプロセッサコアに関連するドメインのスリープ状態及び実行状態は、技術的によく知られたものである。
【００１３】
受信したドメインシステム状態要求に基づいて、ＰＭＵマイクロコントローラ１０１は、各ドメインについて、移行後にあることになるシステム状態に関する予想電流、及びそのシステム状態にあるドメインに関連する予想電力を計算する。換言すれば、システム状態のあらゆる変化前に、ＰＭＵマイクロコントローラ１０１は、新たな動作点における各ドメインについての予想電流を計算する。なお、各移行の後、一部のドメインは同じ又は異なるシステム状態にあり、故に、ドメインのうちの１つ以上についての予想電力計算結果は、それらの現在の電力使用量に等しいことがある。
【００１４】
ＰＭＵマイクロコントローラは、全てのドメインについての予想電力を合計し、その総和を電力制限と比較する。一実施形態において、この電力制限は瞬時電力制限である。一実施形態において、電力制限は、任意の外部エージェント（例えば、ＢＩＯＳ、内蔵コントローラなど）にて設定される。他の一実施形態において、電力制限は制御ソフトウェアによって設定される。そのような場合、制御ソフトウェアは、静的に、又は実行時に、の何れかで設定を行う。
【００１５】
総和が電力制限を超えない場合、ＰＭＵマイクロコントローラ１０１は何もせず、そのシステム状態への移行を許可する。総和が電力制限を超える場合、ＰＭＵマイクロコントローラ１０１は、移行によって生じる予想電力を低下させるための１つ以上のアクションを起こす。一実施形態において、総和が電力制限を超えるときにＰＭＵマイクロコントローラ１０１によって実行されるアクションのうちの１つは、ドメインの各々について、そのシステム状態の周波数を低減させることである。そして、ＰＭＵマイクロコントローラ１０１は、低減された周波数を、そのドメイン用のクロックを生成するのに使用される対応するクロック発生器（例えば、ＰＬＬ）に信号伝達する。斯くして、ＰＭＵマイクロコントローラ１０１は、ドメイン周波数制御を実行する。
【００１６】
一実施形態において、各ドメインについて、ＰＭＵマイクロコントローラ１０１は、それが要求した新たなシステム状態にあるときにドメインに対して存在すると予期されるアクティブ電流及び静（スタティック）電流の双方を計算する。一実施形態において、ＰＭＵマイクロコントローラ１０１は、動作している全てのコア（すなわち、アイドル状態又はその他のパワーダウン状態（例えば、ゲーティングされた状態）にはないコア）にわたっての、ワーストケースのＣｄｙｎを合計することによって、アクティブ電流を計算する。ワーストケースのＣｄｙｎは、ドメインの実行状態に従って変化する。ＰＭＵマイクロコントローラ１０１は、ワーストケースのＣｄｙｎに、要求されたシステム状態に関連付けられた周波数及び電圧を乗算する。一実施形態において、周波数は、要求システム状態情報の中で指定され、電圧は、ＰＭＵマイクロコントローラ１０１によって、周波数の関数として決定される。
【００１７】
ＰＭＵマイクロコントローラ１０１はまた、ドメインの静電流も決定する。一実施形態において、静電流は、要求された状態におけるドメインのその電圧及び現在の温度（温度センサを用いて測定される）における推定リークを取ることによって決定される。ＰＭＵマイクロコントローラ１０１は、ドメイン内のリークしている全てのコアにわたって推定リークを合計する。ゲーティングされたコアは計数されない。なお、ベースのコアリークは、内部ゲーティングに従って変化し得ることに留意されたい。
【００１８】
要求されたシステム状態にあるドメインについてのアクティブ電流及び静電流が決定されると、ＰＭＵマイクロコントローラ１０１は、アクティブ電流と静電流とを足し合わせる。これは、ドメインについてのワーストケースの電流を表す。
【００１９】
これに代わる一実施形態において、要求されたシステム状態にあるドメインについての電流は、前もって測定された電流に基づいてもよく、その場合、時間をかけて最大電流が特定される。そして、この最大電流が、ドメインについてのワーストケース電流として使用されることになる。
【００２０】
ＰＭＵマイクロコントローラ１０１は、ドメインごとのこのワーストケース電流に、要求されたシステム状態についての（指定された周波数での）その電圧を乗算して、そのドメインについての計算されたワーストケース電力を得る。ＰＭＵマイクロコントローラ１０１は、ドメインの全てについて計算されたワーストケース電力を合計することで、全てのドメインによって要求されているシステム状態を考慮に入れた、ＩＣについての計算されたワーストケース電力を得る。
【００２１】
ＰＭＵマイクロコントローラ１０１は、このトータルでの計算されたワーストケース（予想）電力を電力制限と比較する。計算された電力が電力制限を下回る場合、何のアクションも起こされず、ドメインの各々によって要求されたシステム状態への移行が行われる。計算された電力が電力限界を上回る場合、ＰＭＵマイクロコントローラ１０１は、例えば、ドメインが新たなシステム状態で使用することになる周波数を或る係数だけ低減するなど、１つ以上のアクションを起こす。一実施形態において、この係数は、電力制限と計算された電力との間の比、すなわち、（電力制限）／（計算されたワーストケース電力）である。
【００２２】
一実施形態において、ＰＭＵマイクロコントローラ１０１は、各ドメインの要求周波数をこの比だけ低減させる。すなわち、この低減は、この比を計算し、それを周波数の各々に乗算することによって行われる。一実施形態において、乗算の結果が、切りのいい数でない場合、低減された周波数に対して切り捨てが行われる。これは、新たなシステム状態又は動作点に関連する電力使用量が電力制限未満であることを確保すべきである。そうでない場合、このプロセスが再び繰り返される。
【００２３】
他の一実施形態において、この比はドメインのサブセット（部分集合）のみに適用される。この場合、予想電力を電力制限より下に持っていくために、１つ以上の追加の電力低減アクションを実行する必要があり得る。例えば、一実施形態において、ＳｏＣシステムエージェント（ＳＡ）ドメインにおける周波数は抑えられない。これらは、メモリクロックの周波数を含む。このような場合、補うために、例えば命令アーキテクチャ（ＩＡ）ドメインなどの他のドメインに対して追加の抑制を行わなければならない。更なる他の一実施形態において、各ドメインについての新たな周波数が別の方法で選択される。
【００２４】
図２Ａは、システム状態遷移を実行するプロセスの一実施形態のフロー図である。このプロセスは、ハードウェア（回路、専用ロジック、等々）、ソフトウェア（例えば、汎用コンピュータシステム又は専用マシン上で実行されるものなど）、ファームウェア、又はこれら３つの組み合わせを有し得る処理ロジックによって実行される。
【００２５】
図２Ａを参照するに、集積回路（ＩＣ）に関する新たな状態に移行するのに先立ち、処理ロジックは、ＩＣ内の複数のドメインについての予想電力の総和を、新たな状態における個々のドメイン周波数に基づいて複数のドメインの各々について予想電流を計算し、且つ、該予想電流に、新たな状態について複数のドメインの各々に関連付けられた電圧を乗算することによって計算する（処理ブロック２０１）。一実施形態において、各ドメインの予想電流を計算することは、電流リーク、目標周波数、及び動的キャパシタンス（Ｃｄｙｎ）に基づく。一実施形態において、新たな状態は、周波数と、各ドメインのスリープ状態及び実行状態のうちの１つ以上とを含む。一実施形態において、各ドメインについて予想電流を計算することは、各ドメインについてアクティブ電流及び静電流を計算し、次いでこれら２つを足し合わせることを有する。
【００２６】
図２Ｂは、各ドメインについて予想電流を計算することに関する一実施形態のフロー図である。このプロセスは、ハードウェア（回路、専用ロジック、等々）、ソフトウェア（例えば、汎用コンピュータシステム又は専用マシン上で実行されるものなど）、ファームウェア、又はこれら３つの組み合わせを有し得る処理ロジックによって実行される。図２Ｂを参照するに、このプロセスは、ドメインについてアクティブ電流を計算することを含んでおり、これは、起動状態にあるドメイン内の各コアについてのワーストケースのＣｄｙｎを合計し、且つワーストケースのＣｄｙｎに、ドメインについての周波数及び関連付けられた電圧を乗算することを含む（ブロック２１１）。一実施形態において、関連付けられた電圧は、要求される周波数の関数である。
【００２７】
このプロセスの一部として、処理ロジックはまた、ドメイン内の各コアについてのリーク電流を合計することによって、静電流を計算する（処理ブロック２１２）。これらは、アイドル状態又はパワーダウン状態（例えば、パワーゲーティングされた状態）にあるのではなくて起動状態にあるコアである。一実施形態において、リーク電流は、コア（ドメイン）の電圧及び温度における推定リーク電流である。
【００２８】
図２Ａを再び参照するに、ドメインについての予想電力の総和を計算した後、処理ロジックは、総和を電力制限と比較する（処理ブロック２０２）。次に、処理ロジックは、ドメインについての予想電力の総和が電力制限よりも大きいかを検査する（処理ブロック２１０）。総和が電力制限よりも大きい場合、処理ロジックは処理ブロック２０３に移行し、そこで処理ロジックは、ＩＣの総瞬時電力を電力制限未満に維持するように、複数のドメイン内の少なくとも１つのドメイン（例えば、２つ以上のドメイン、全てのドメイン）に関連付けられた周波数を低下させ、そして、プロセスが処理ブロック２０１に移行し、このプロセスが繰り返される。一実施形態において、複数のドメイン内の各ドメインに関連付けられた個々のドメイン周波数を低下させることは、ドメインについての予想ワーストケース電力の合計と電力制限との間の比を計算し、そして、複数のドメイン内の各ドメインに関連付けられた個々のドメイン周波数を、少なくともこの比だけ低下させることを有する。
【００２９】
一実施形態において、総和が電力制限よりも大きい場合、処理ロジックはまた、総和が電力制限よりも大きいことを指し示す通知を送信する。一実施形態において、この通知はソフトウェア（例えば、オペレーティングシステム、ＢＩＯＳなど）に送られる。一実施形態において、この通知は、ＩＣ上のメモリ（例えば、機械状態レジスタ（ＭＳＲ）、メモリマップ入力／出力（ＭＭＩＯ）レジスタ）内のステータスビットをセットすることによって行われる。他の一実施形態において、この通知は、割り込みの使用を通じて行われる。
【００３０】
処理ブロック２１０を再び参照するに、ドメインについての予想電力の総和が電力制限よりも小さい場合（及び（１つ以上の）ドメインについて選択された１つ以上の周波数が低減された後）、プロセスは処理ブロック２０４に移行し、そこで処理ロジックは、各ドメインで使用すべき周波数を指定する新たな周波数値を、それらのドメインに関連付けられたクロック発生器（ＰＬＬ）に送信する。
【００３１】
ドメインについての予想電力の総和が電力制限よりも小さい場合、処理ロジックは、新たな状態への移行を許可する（処理ブロック２０５）。
【００３２】
図３は、システム状態遷移を実行すべきか決定するプロセスの一実施形態のフロー図である。このプロセスは、ハードウェア（回路、専用ロジック、等々）、ソフトウェア（例えば、汎用コンピュータシステム又は専用マシン上で実行されるものなど）、ファームウェア、又はこれら３つの組み合わせを有し得る処理ロジックによって実行される。一実施形態において、このプロセスは、デバイス（例えば、ＳｏＣ、プロセッサなど）内の電力管理ユニットによって実行される。
【００３３】
図３を参照するに、処理ロジックは、新たなシステム状態に関連する電力３０１（ドメインについての予想電力の総和）が、プラットフォームについての電力制限に関連する電力制限３０２より大きいかを検査する（処理ブロック３１０）。大きくない場合、処理ロジックは処理ブロック３４０に移行し、そこで処理ロジックは新たなシステム状態への移行を実行する。しかしながら、新たなシステム状態に関連する電力３０１が電力制限３０２よりも大きい場合、プロセッサは処理ブロック３２０に移行し、そこで処理ロジックは周波数を低減させる。一実施形態において、この低減は、比を計算し、それを、ドメインの各々によって要求されている周波数の各々に乗算することによって行われる。一実施形態において、この比は、電力制限をドメインの総予想電力で割ったものである。新たなシステム状態に関して要求される周波数の各々にこの比が乗算されて、新たなシステム状態で使用されることになる周波数が生成される。一実施形態において、新たに計算された周波数値の必要な丸めが、これらの値を切り捨てることによって実行される。
【００３４】
周波数を低下させた後、処理ロジックは、新たな動作点を計算し（処理ブロック３３０）、そして処理ブロック３１０に移行してこのプロセスを繰り返す。
【００３５】
図４は、全てのドメインについての電力を合計するプロセスの一実施形態のフロー図である。このプロセスは、ハードウェア（回路、専用ロジック、等々）、ソフトウェア（例えば、汎用コンピュータシステム又は専用マシン上で実行されるものなど）、ファームウェア、又はこれら３つの組み合わせを有し得る処理ロジックによって実行される。一実施形態において、このプロセスは、デバイス（例えば、ＳｏＣ、プロセッサなど）内の電力管理ユニットによって実行される。
【００３６】
図４を参照するに、移行後のドメインの新たな状態における予想電力に基づくドメインごとの電力計算が、例えばＩＡドメイン４０１、グラフィックスドメイン４０２、ＳＡドメイン４０３、及びその他のドメイン４０４などのドメインの各々について実行される。ここで説明されるように、図４には４つのドメインのみが示されているが、デバイスは、それらに関して別々のドメインごとの電力計算が実行されるいっそう多数又は少数のドメインを有し得る。
【００３７】
ドメインの各々についての予想電力計算結果が、合計ロジック４０５によって合計されて、計算された電力が生成される。計算された電力４１０は、システムが新たなシステム状態に移行することができるかを判定するためのＰＭＵロジックへの入力である。
【００３８】
図５は、ドメインごとの電力計算を実行するプロセスの一実施形態のフロー図である。このプロセスは、ハードウェア（回路、専用ロジック、等々）、ソフトウェア（例えば、汎用コンピュータシステム又は専用マシン上で実行されるものなど）、ファームウェア、又はこれら３つの組み合わせを有し得る処理ロジックによって実行される。一実施形態において、このプロセスは、デバイス（例えば、ＳｏＣ、プロセッサなど）内の電力管理ユニットによって実行される。
【００３９】
現在のドメインについて電流及び電圧を計算するロジック５１０が、周波数入力５０１をシステム状態入力５０２とともに受信する。周波数５０１は、新たなシステム状態にあるときにドメインが使用を要求する周波数を表す。コア状態入力が、ドメイン内の異なるコアの新たなシステム状態を表す。図示のように、コア０−Ｎについての状態入力が存在する。なお、一部のドメインが１つのコアのみを有する一方で、他のドメインが２つ以上のコアを有していてもよい。マルチコアドメインの場合、全てのコアが同じ周波数でクロックされているが、これは、ここに説明される教示に関して必要とされるものではない。
【００４０】
ドメイン電流計算器５１０がロジック５２０に周波数５０１を送り、ロジック５２０が、周波数５０１に基づいて、新たな状態に関連付けられる電圧５０３を生成する。一実施形態において、周波数−電圧カーブを使用して、各周波数に一致する電圧を割り当てる。一実施形態において、ロジック５２０は、それに提供される各周波数に関連付けて特定の電圧を指定するテーブルを含む。ロジック５１０は、これらの入力を用いて、新たな状態に関連する予想電流を導出する。ロジック５１０は、予想電流５０４を電圧５０３とともに電力計算ユニット５３０に出力する。電力計算ユニット５３０は、予想電流５０４に電圧５０３を乗算して、ドメインが新たな状態にあるときのワーストケース電力を表す電力５０５を生成する。
【００４１】
図６は、プラットフォーム電力計算を実行するプロセスの一実施形態のフロー図である。このプロセスは、ハードウェア（回路、専用ロジック、等々）、ソフトウェア（例えば、汎用コンピュータシステム又は専用マシン上で実行されるものなど）、ファームウェア、又はこれら３つの組み合わせを有し得る処理ロジックによって実行される。一実施形態において、このプロセスは、デバイス（例えば、ＳｏＣ、プロセッサなど）内の電力管理ユニットによって実行される。
【００４２】
処理ロジックが、構成変化を指し示すインジケーション６０１を受け取る。一実施形態において、インジケーション６０１はバッテリ放電状況に関係する。バッテリが放電するにつれてバッテリが持続できる電力引き出しが低くなり、バッテリが放電するにつれて電圧が低下する。突然の電力放電は突然の電圧低下が生じさせ得るものであり、バッテリが放電されると、電圧閾値を下回る前にバッテリが持続することができる電力排出が低くなる。これを回避するために、ソフトウェアがバッテリ放電に従って制限を設定し、上記インジケーションにおける変更をトリガーする。これは、バッテリ寿命を延ばすことを可能にする。
【００４３】
この構成変化インジケーション６０１に応答して、処理ロジックは、バッテリ充電状態並びに交流（ＡＣ）アダプタ若しくはその他の無制限電源の能力を読み取る（処理ブロック６１０）。この情報を用いて、処理ロジックは、そのバッテリ及びＡＣアダプタを有するプラットフォームに関してこのシステムの最大電力能力（Ｐｓｙｓ＿ｍａｘ）を計算する（処理ブロック６２０）。次に、処理ロジックは、プラットフォーム構成を取得し、プラットフォームの残りの部分（the  rest  of  the  platform）に関連する最大プラットフォーム電力を計算する（処理ブロック６３０）。プラットフォームの残りの部分の最大プラットフォーム電力は、計数されないドメインに関する電力に対応する。次いで、処理ロジックは、システムの計算された最大電力能力からプラットフォームの残りの部分に関する最大電力を差し引いた差として、ＳＯＣ（又はＩＣ）電力バジェット又は制限を設定する。換言すれば、ＰＬ４＝Ｐｓｙｓ＿ｍａｘ−ＰＲＯＰである。
【００４４】
図７は、本発明の実施形態に従った、２つ以上のコアを有し得る、集積メモリコントローラを有し得る、そして、集積グラフィックスを有し得るプロセッサ７００のブロック図である。図７内の実線のボックスは、単一のコア７０２Ａと、システムエージェント７１０と、一組の１つ以上のバスコントローラユニット７１６とを有するプロセッサ７００を示し、必要に応じての破線のボックスの追加部分は、複数のコア７０２Ａ−Ｎと、システムエージェント７１０内の一組の１つ以上の集積メモリコントローラユニット７１４と、専用ロジック７０８とを有する代替的なプロセッサ７００を示す。
【００４５】
故に、プロセッサの様々な実装は、１）専用ロジック７０８が集積グラフィックス及び／又は科学（スループット）ロジック（これは１つ以上のコアを含み得る）であり、コア７０２Ａ−Ｎが１つ以上の汎用コア（例えば、汎用インオーダー（in-order）コア、汎用アウトオブオーダー（out-of-order）コア、これら２つの組み合わせ）であるＣＰＵ、２）コア７０２Ａ−Ｎが主としてグラフィックス及び／又は科学（スループット）を意図した多数の専用コアであるコプロセッサ、及び３）コア７０２Ａ−Ｎが多数の汎用インオーダーコアであるコプロセッサを含み得る。故に、プロセッサ７００は、汎用プロセッサ、コプロセッサ、又は、例えば、ネットワークプロセッサ若しくは通信プロセッサ、圧縮エンジン、グラフィックスプロセッサ、ＧＰＧＰＵ（汎用グラフィックス処理ユニット）、高スループット多数集積コア（many  integrated  core；ＭＩＣ）コプロセッサ（３０以上のコアを含む）、埋込プロセッサ、又はこれらに類するものなどの、特殊用途のプロセッサとし得る。プロセッサ７００は、１つ以上の基板の一部とすることができ、且つ／或いは、例えばＢｉＣＭＯＳ、ＣＭＯＳ、又はＮＭＯＳなどの幾つもあるプロセス技術のうちの何れかを用いて１つ以上の基板上に実装され得る。
【００４６】
一実施形態において、上述のコアの各々は、別個のクロック発生器（例えば、ＰＬＬ）および電圧レギュレータを有する異なる電力ドメインを表す。
【００４７】
一実施形態において、専用ロジック７０８の別の部分が、例えば上述のＰＭＵなどの電力管理ユニット（ＰＭＵ）を有する。
【００４８】
メモリ階層は、コア内の１つ以上のレベルのキャッシュと、一組又は１つ以上の共有キャッシュユニット７０６と、一組の集積メモリコントローラユニット７１４に結合された外部メモリ（図示せず）とを含む。一組の共有キャッシュユニット７０６は、例えばレベル２（Ｌ２）、レベル３（Ｌ３）、レベル４（Ｌ４）若しくはその他のレベルのキャッシュなどの１つ以上の中間レベルのキャッシュ、最終レベルのキャッシュ（ＬＬＣ）、及び／又はこれらの組合せを含み得る。一実施形態において、リングベースのインターコネクトユニット７１２が、集積グラフィックスロジック７０８、一組の共有キャッシュユニット７０６、及びシステムエージェントユニット７１０／（１つ以上の）集積メモリコントローラユニット７１４を相互接続するが、他の実施形態は、これらのユニットを相互接続するために如何なる周知技術を用いてもよい。一実施形態において、１つ以上のキャッシュユニット７０６とコア７０２Ａ−Ｎとの間にコヒーレンスが維持される。
【００４９】
一部の実施形態において、コア７０２Ａ−Ｎのうちの１つ以上はマルチスレッド処理を行うことが可能である。システムエージェント７１０は、コア７０１Ａ−Ｎを連携させて動作させるコンポーネントを含んでいる。システムエージェントユニット７１０は、例えば、電力制御ユニット（ＰＣＵ）及び表示ユニットを含んでいてもよい。ＰＣＵはコア７０２Ａ−Ｎ及び集積グラフィックスロジック７０８の電力状態を安定化させるのに必要なロジック及びコンポーネントであるか、それらを含むかし得る。表示ユニットは、１つ以上の外部接続されたディスプレイを駆動する。
【００５０】
コア７０２Ａ−Ｎは、アーキテクチャ命令セットの観点で同種あるいは異種とし得る。すなわち、コア７０２Ａ−Ｎのうちの２つ以上は同じ命令セットを実行することができ、その他はその命令セットのうちのサブセットのみ又は異なる命令セットのみを実行することができてもよい。
【００５１】
図８は、本発明の一実施形態に従ったＳｏＣ８００のブロック図である。図７においてと同様の要素は、似通った参照符号を有している。また、破線のボックスは、より先端的なＳｏＣにおけるオプション機能である。図８において、（１つ以上の）インターコネクトユニット８０２が、一組の１つ以上のコア２０２Ａ−Ｎと（１つ以上の）共有キャッシュユニット７０６とを含むアプリケーションプロセッサ８１０；システムエージェントユニット７１０；（１つ以上の）バスコントローラユニット７１６；（１つ以上の）集積メモリコントローラユニット７１４；集積グラフィックスロジックと、画像プロセッサと、オーディオプロセッサと、ビデオプロセッサとを含み得る一組若しくは１つ以上のコプロセッサ８２０；スタティックランダムアクセスメモリ（ＳＲＡＭ）ユニット８３０；ダイレクトメモリアクセス（ＤＭＡ）ユニット８３２；及び１つ以上の外部ディスプレイを結合するための表示ユニット８４０；に結合されている。一実施形態において、（１つ以上の）コプロセッサ８２０は、例えば、ネットワークプロセッサ若しくは通信プロセッサ、圧縮エンジン、ＧＰＧＰＵ、高スループットＭＩＣプロセッサ、埋込プロセッサ、又はこれらに類するものなどの、特殊用途のプロセッサを含む。
【００５２】
第１の実施形態例において、方法は、集積回路（ＩＣ）に関する新たな状態に移行するのに先立ち、前記ＩＣ内の複数のドメインについての予想電力の総和を計算するステップであり、前記新たな状態における個々のドメイン周波数に基づいて、前記複数のドメインの各々について予想電流を計算し、且つ、該予想電流に、前記新たな状態について前記複数のドメインの各々に関連付けられた電圧を乗算することによって、前記総和を計算するステップと、前記総和を電力制限と比較するステップと、前記総和が前記電力制限よりも大きい場合に、前記ＩＣの総瞬時電力を前記電力制限未満に維持するように、前記複数のドメイン内の少なくとも１つのドメインに関連付けられた前記個々のドメイン周波数を低下させるステップとを有する。
【００５３】
他の一実施形態例において、第１の実施形態例の事項はオプションで、前記複数のドメインの各々について予想電流を計算することは、電流リーク、目標周波数、及び動的キャパシタンス（Ｃｄｙｎ）に基づく、ことを含み得る。
【００５４】
他の一実施形態例において、第１の実施形態例の事項はオプションで、前記複数のドメインの各々について予想電流を計算することは、アクティブ電流及び静電流を計算し、該アクティブ電流及び静電流を加算することを有する、ことを含み得る。他の一実施形態例において、この実施形態例の事項はオプションで、前記アクティブ電流を計算することは、起動状態にある前記ドメイン内の各コアについてのワーストケースのＣｄｙｎを合計し、且つ、前記ワーストケースのＣｄｙｎに、前記ドメインについての前記周波数及び前記関連付けられた電圧を乗算することを有する、ことを含み得る。他の一実施形態例において、この実施形態例の事項はオプションで、前記関連付けられた電圧は、要求される前記周波数の関数である、ことを含み得る。
【００５５】
他の一実施形態例において、第１の実施形態例の事項はオプションで、前記静電流を計算することは、起動状態にある前記ドメイン内の各コアについてのリークを合計することを有する、ことを含み得る。他の一実施形態例において、この実施形態例の事項はオプションで、前記リークは、前記ドメインの前記電圧及び温度における推定リークである、ことを含み得る。
【００５６】
他の一実施形態例において、第１の実施形態例の事項はオプションで、前記複数のドメイン内の少なくとも１つのドメインに関連付けられた前記個々のドメイン周波数を低下させるステップは、前記電力の総和と前記電力制限との間の比を計算し、且つ、前記複数のドメイン内の各ドメインに関連付けられた前記個々のドメイン周波数を、少なくとも前記比だけ低下させることを有する、ことを含み得る。
【００５７】
他の一実施形態例において、第１の実施形態例の事項はオプションで、前記複数のドメインの各々で使用すべき周波数を指定する新たな周波数値を、前記複数のドメインの各々に関連付けられたクロック発生器（ＰＬＬ）に送信するステップを含み得る。
【００５８】
他の一実施形態例において、第１の実施形態例の事項はオプションで、前記総和が前記電力制限よりも小さい場合に、前記ＩＣを前記新たな状態に移行させることを含み得る。
【００５９】
他の一実施形態例において、第１の実施形態例の事項はオプションで、前記新たな状態は、前記複数のドメインの各々についてのスリープ状態及び実行状態のうちの１つ以上並びに周波数を含む、ことを含み得る。
【００６０】
他の一実施形態例において、第１の実施形態例の事項はオプションで、前記総和が前記電力制限よりも高いと決定したことに応答して通知を送信することを含み得る。
【００６１】
他の一実施形態例において、第１の実施形態例の事項はオプションで、存在する場合に交流アダプタ能力及びバッテリの充電状態のうちの一方以上に基づいて、利用可能な電力を決定し、前記ＩＣについての最大電力能力を計算し、前記複数のドメインには含まれない前記ＩＣの部分についての最大電力を計算し、且つ、前記ＩＣについての前記最大電力能力と、前記複数のドメインには含まれない前記ＩＣの前記部分についての前記最大電力との間の差として、前記電力制限を設定することによって、前記電力制限を決定することを含み得る。
【００６２】
第２の実施形態例において、集積回路（ＩＣ）は、複数のドメインと、前記複数のドメインに結合されたユニットであり、前記複数のドメイン内の各ドメインからの要求を受信することに応答して、新たな状態に移行するのに先立ち、前記複数のドメインについての予想電力の総和を、前記新たな状態における個々のドメイン周波数に基づいて前記複数のドメインの各々についての予想電流を計算し、且つ、該予想電流に、前記新たな状態について前記複数のドメインの各々に関連付けられた電圧を乗算することによって計算し、前記総和を電力制限と比較し、前記総和が前記電力制限よりも大きい場合に、当該ＩＣの総瞬時電力を前記電力制限未満に維持するように、前記複数のドメイン内の少なくとも１つのドメインに関連付けられた前記個々のドメイン周波数を低下させるユニットとを有する。
【００６３】
他の一実施形態例において、第２の実施形態例の事項はオプションで、前記ユニットは、前記複数のドメインの各々についての予想電流を、電流リーク、目標周波数、及び動的キャパシタンス（Ｃｄｙｎ）に基づいて計算する、ことを含み得る。
【００６４】
他の一実施形態例において、第２の実施形態例の事項はオプションで、前記ユニットは、前記複数のドメインの各々についての予想電流を、アクティブ電流及び静電流を計算し、該アクティブ電流及び静電流を加算することによって計算する、ことを含み得る。
【００６５】
他の一実施形態例において、第２の実施形態例の事項はオプションで、前記ユニットは、前記アクティブ電流を、起動状態にある前記ドメイン内の各コアについてのワーストケースのＣｄｙｎを合計し、且つ、前記ワーストケースのＣｄｙｎに、前記ドメインについての前記周波数及び前記関連付けられた電圧を乗算することによって計算する、ことを含み得る。
【００６６】
他の一実施形態例において、第２の実施形態例の事項はオプションで、前記関連付けられた電圧は、要求される前記周波数の関数である、ことを含み得る。
【００６７】
他の一実施形態例において、第２の実施形態例の事項はオプションで、前記ユニットは、前記静電流を、起動状態（例えば、非パワーダウン状態）にある前記ドメイン内の各コアについてのリークを合計することによって計算する、ことを含み得る。
【００６８】
他の一実施形態例において、第２の実施形態例の事項はオプションで、前記リークは、前記ドメインの前記電圧及び温度における推定リークである、ことを含み得る。
【００６９】
他の一実施形態例において、第２の実施形態例の事項はオプションで、前記ユニットは、前記複数のドメイン内の少なくとも１つのドメインに関連付けられた前記個々のドメイン周波数を、前記電力の総和と前記電力制限との間の比を計算し、且つ、前記複数のドメイン内の各ドメインに関連付けられた前記個々のドメイン周波数を、少なくとも前記比だけ低下させることによって低下させる、ことを含み得る。
【００７０】
他の一実施形態例において、第２の実施形態例の事項はオプションで、前記ユニットは、前記複数のドメインの各々で使用すべき周波数を指定する新たな周波数値を、前記複数のドメインの各々に関連付けられたクロック発生器（ＰＬＬ）に送信する、ことを含み得る。
【００７１】
他の一実施形態例において、第２の実施形態例の事項はオプションで、前記総和が前記電力制限よりも小さい場合に、前記ＩＣが前記新たな状態に移行することを含み得る。
【００７２】
他の一実施形態例において、第２の実施形態例の事項はオプションで、前記新たな状態は、前記複数のドメインの各々についてのスリープ状態及び実行状態のうちの１つ以上並びに周波数を含む、ことを含み得る。
【００７３】
第３の実施形態例において、方法は、集積回路（ＩＣ）内の複数のドメインの各ドメインについての新たな周波数を、前記ＩＣについての電力制限と、該各ドメインが入ることを要求する状態に関連するワーストケース電流の決定から導出されるワーストケース電力の計算結果との間の比較に基づいて生成するステップと、前記複数のドメインの各々に関連付けられたクロック発生器に、前記複数のドメインの各々での使用のために発生すべきクロックの前記新たな周波数を信号伝達するステップとを有する。
【００７４】
他の一実施形態例において、第３の実施形態例の事項はオプションで、前記ワーストケース電流の決定は、電流リーク、目標周波数、及び動的キャパシタンス（Ｃｄｙｎ）に基づいた、前記複数のドメインの各々についての予想電流の計算に基づく、ことを含み得る。
【００７５】
第４の実施形態例において、１つ以上の非一時的コンピュータ読み取り可能媒体を有する製造物は、命令を格納し、前記命令は、実行されるときに集積回路に、集積回路（ＩＣ）に関する新たな状態に移行するのに先立ち、前記ＩＣ内の複数のドメインについての予想電力の総和を、前記新たな状態における個々のドメイン周波数に基づいて、前記複数のドメインの各々について予想電流を計算し、且つ、該予想電流に、前記新たな状態について前記複数のドメインの各々に関連付けられた電圧を乗算することによって計算するステップと、前記総和を電力制限と比較するステップと、前記総和が前記電力制限よりも大きい場合に、前記ＩＣの総瞬時電力を前記電力制限未満に維持するように、前記複数のドメイン内の少なくとも１つのドメインに関連付けられた前記個々のドメイン周波数を低下させるステップと、を有する方法を実行させる。
【００７６】
他の一実施形態例において、第４の実施形態例の事項はオプションで、前記複数のドメインの各々について予想電流を計算することは、電流リーク、目標周波数、及び動的キャパシタンス（Ｃｄｙｎ）に基づく、ことを含み得る。
【００７７】
ここに開示される機構の実施形態は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの実装手法の組合せにて実装され得る。本発明の実施形態は、少なくとも１つのプロセッサと、ストレージシステム（揮発性メモリと不揮発性のメモリ及び／又は記憶素子を含む）と、少なくとも１つの入力装置と、少なくとも１つの出力装置とを有するプログラム可能なシステム上で実行されるコンピュータプログラム又はプログラムコードとして実装され得る。
【００７８】
プログラムコードが入力命令に適用されて、ここに記載の機能が実行されて出力情報が生成され得る。出力情報は既知のように１つ以上の出力装置に与えられ得る。この適用の目的で、処理システムは、例えばデジタル信号プロセッサ（ＤＳＰ）、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、又はマイクロプロセッサなどのプロセッサを有する何らかのシステムを含んでいる。
【００７９】
プログラムコードは、処理システムとの伝達のため、ハイレベルの手続き型又はオブジェクト指向のプログラミング言語で実装され得る。プログラムコードはまた、必要に応じて、アセンブリ言語又は機械語で実装されてもよい。実際、ここに記載の機構は、範囲的に、如何なる特定のプログラミング言語にも限定されない。何れの場合も、その言語はコンパイルあるいはインタープリットされた言語であってもよい。
【００８０】
少なくとも１つの実施形態の１つ以上の態様は、機械読み取り可能媒体に格納され、プロセッサ内で様々なロジックを表す表現命令であって、機械によって読み出されるときに該機械にここに記載の技術を実行するロジックを作成させる表現命令によって実装され得る。そのような表現物は、“ＩＰコア”として知られるものであり、有形の機械読み取り可能媒体に格納されて様々な顧客又は製造設備に供給され、実際にロジック又はプロセッサを作成する製造機械にロードされる。
【００８１】
そのような機械読み取り可能記憶媒体は、限定ではなく、機械又は装置によって製造あるいは形成される、非一過性の、有形構成の品目を含み得る。そのような品目は、例えばハードディスクなどの記憶媒体、フロッピーディスク（登録商標）、光ディスク（コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、書換可能コンパクトディスク（ＣＤ−ＲＷ））、磁気光ディスクを含むその他の種類のディスク、例えば読み出し専用メモリ（ＲＯＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）やスタティックランダムアクセスメモリ（ＳＲＡＭ）のようなランダムアクセスメモリ（ＲＡＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ）、フラッシュメモリ、電気的消去可能プログラム可能読み出し専用メモリ（ＥＥＰＲＯＭ）などの半導体デバイス、相変化メモリ（ＰＣＭ）、磁気カード若しくは光カード、又は電子的な命令を格納するのに適したその他の種類の媒体を含む。
【００８２】
従って、本発明の実施形態はまた、命令を格納した、あるいは、ここに記載の構成、回路、装置、プロセッサ及び／又はシステムの機能を規定する例えばハードウェア記述言語（ＨＤＬ）などの設計データを格納した、非一過性の有形の機械読み取り可能媒体をも含む。このような実施形態はプログラムプロダクトとも呼ばれている。
【００８３】
上述の詳細な説明の幾つかの部分は、コンピュータメモリ内のデータビットについての処理のアルゴリズム及び記号表現に関して提示されている。これらのアルゴリズム的記述及び表現は、データ処理技術における当業者が自身の仕事の内容を他の当業者に最も効果的に伝えるために使用する手段である。アルゴリズムは、ここでは、また一般的に、所望の結果をもたらす首尾一貫した一連のステップであると考えられる。それらのステップは、物理量の物理的な操作を必要とするものである。通常、必ずしもそうではないが、それらの量は、格納され、伝送され、結合され、比較され、そしてその他の方法で操作されることが可能な電気的あるいは磁気的な信号の形態をとる。主に一般的用法という理由から、これらの信号をビット、値、エレメント、シンボル、文字、用語、数字、又はこれらに類するものとして参照することは、往々にして好都合であることがわかっている。
【００８４】
しかしながら、留意すべきことには、これら及び同様の用語は全て、適当な物理量に関連付けられるものであり、それらの量に付された簡便なラベルに過ぎない。特に断らない限り、以下の説明から明らかなように、記載全体を通して、例えば“処理する”、“計算する”、“演算する”、“決定する”、“表示する”又はこれらに類するものなどの用語を用いた説明は、コンピュータシステムのレジスタ及びメモリの内部で物理（電子）量として表されるデータを、コンピュータシステムメモリ若しくはレジスタ若しくはその他のそのような情報ストレージ、伝送装置、又は表示装置の内部で同様に物理量として表される他のデータへと、操作・変換するコンピュータシステム又は同様の電子コンピューティング装置の動作及び処理を意味することが認識される。
【００８５】
本発明はまた、ここでの処理を実行する装置に関する。この装置は、要求される目的に合わせて特別に構築されてもよいし、コンピュータに記憶されるコンピュータプログラムによって選択的に起動あるいは再構成される汎用コンピュータを有していてもよい。そのようなコンピュータプログラムは、以下に限られないが例えば、フロッピーディスク（登録商標）、光ディスク、ＣＤ−ＲＯＭ及び磁気光ディスクを含む何らかの種類のディスク、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カード若しくは光カード、又は、電子的な命令を格納するのに好適であり且つコンピュータシステムバスに結合された何らかの種類のメディアなどの、コンピュータ読み取り可能記憶媒体に格納され得る。
【００８６】
ここに提示されたアルゴリズム及びディスプレイは、如何なる特定のコンピュータ又はその他の装置にも本質的に関連付けられるものではない。様々な汎用システムが、ここでの教示に従ったプログラムとともに使用されてもよいし、より専用化された装置を構築して必要な方法ステップを実行することが都合がよいと判明することもある。多様なこれらシステムに必要な構造は、ここでの説明から見えてくるであろう。また、本発明は、特定のプログラミング言語を参照して説明されていない。認識されるように、ここに記載された発明の教示を実装することには、多様なプログラミング言語が使用され得る。
【００８７】
以上の説明を読んだ後に当業者には本発明の多数の改変及び変更が明らかになるであろうが、理解されるべきことには、例示によって図示して説明した如何なる特定の実施形態も、限定するものとして考えられることを意図したものではない。故に、様々な実施形態の細部についての言及は、請求項の範囲を限定することを意図しておらず、請求項それら自体のみが、発明に本質的なものであると考えられる特徴を記載するものである。
【図１】
0006648140.tif 000002
【図２Ａ】
0006648140.tif 000003
【図２Ｂ】
0006648140.tif 000004
【図３】
0006648140.tif 000005
【図４】
0006648140.tif 000006
【図５】
0006648140.tif 000007
【図６】
0006648140.tif 000008
【図７】
0006648140.tif 000009
【図８】
0006648140.tif 000010