(57)【要約】【課題】マルチプロセッサシステムにおける動的周波数スケーリングを提供する。【解決手段】複数のプロセッサコアを有するコンピュータシステムは、動的周波数スケーリングにより、電力とパフォーマンスを管理する。システムは、一つ以上のクラスタ中のアクティブプロセッサコアの総数が所定数量より少ない、および、アクティブプロセッサコアの動作周波数が、所定の最高周波数まで上昇するとき、条件を検出する。システムは、また、一つ以上のクラスタの環境温度測定結果を得る。条件検出後、システムは、環境温度測定結果に基づいて、動作周波数を所定の最高周波数まで増加させ、アクティブプロセッサコアへの供給電圧を同じレベルに維持する。【選択図】  図５
2017528837.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムの操作方法であって、
一つ以上のクラスタ中のアクティブプロセッサコアの総数が所定数量より少ない、および、前記アクティブプロセッサコアの動作周波数がすでに、所定の最高周波数まで上昇している、という条件を検出する工程と、
前記一つ以上のクラスタの環境温度測定結果を得る工程と、
前記条件検出後、前記アクティブプロセッサコアへの供給電圧を同じレベルに維持しつつ、前記環境温度測定結果に基づいて、前記動作周波数を、前記所定の最高周波数まで増加させる工程、
を有することを特徴とする方法。 
【請求項２】
前記動作周波数の増加は、さらに、前記一つ以上のクラスタ中のアクティブプロセッサコアの前記総数に基づくことを特徴とする請求項１に記載の方法。
【請求項３】
前記一つ以上のクラスタ中の全プロセッサコアがアクティブであるとき、前記所定の最高周波数は、前記動作周波数の所定上限であることを特徴とする請求項１に記載の方法。
【請求項４】
増加した動作周波数がもたらす増加した電力消耗は、前記一つ以上のクラスタが、少なくとも一つの非アクティブなプロセッサコアを有することにより生じるＩＲドロップによるものであることを特徴とする請求項１に記載の方法。
【請求項５】
前記環境温度測定結果に基づいて、ルックアップテーブルから、前記所定の最高周波数より高い一つ以上の周波数を識別する工程と、
前記アクティブプロセッサコアを、前記一つ以上の周波数で操作する工程と、
を、さらに有することを特徴とする請求項１に記載の方法。
【請求項６】
前記一つ以上の周波数の識別は、さらに、前記一つ以上のクラスタ中のアクティブプロセッサコアの前記総数に基づくことを特徴とする請求項５に記載の方法。
【請求項７】
前記動作周波数を増加する工程は、さらに、
前記環境温度測定結果が属する温度範囲を識別する工程と、 
前記温度範囲に対応する周波数上で、前記アクティブプロセッサコアを操作する工程と、
を有することを特徴とする請求項１に記載の方法。    
【請求項８】
前記環境温度測定結果に基づいて、周波数の増大量を計算する工程と、
前記周波数の増大量により、前記動作周波数を増加させる工程と、
を、さらに有することを特徴とする請求項１に記載の方法。
【請求項９】
アクティブプロセッサコアは一クラスタに属し、
前記所定数量は、前記一クラスタ中のプロセッサコアの総数以下であること、
を特徴とする請求項１に記載の方法。
【請求項１０】
前記アクティブプロセッサコアは、前記コンピュータシステム中の複数のクラスタに属し、
前記所定数量は、前記コンピュータシステム中のプロセッサコアの総数以下である、
ことを特徴とする請求項１に記載の方法。
【請求項１１】
システムであって、
複数のプロセッサコアを有する一つ以上のクラスタと、
前記一つ以上のクラスタの環境温度測定結果を得る温度センサーと、 
前記一つ以上のクラスタに結合され、前記一つ以上のクラスタのアクティブプロセッサコアの総数が所定数量より少なく、かつ、前記アクティブプロセッサコアの動作周波数がすでに、所定の最高周波数まで上昇している、という条件を検出する管理モジュールと、
前記一つ以上のクラスタ、前記温度センサー、および、前記管理モジュールに結合され、前記条件の検出時、前記環境温度測定結果に基づいて、前記動作周波数を、前記所定の最高周波数まで増加させるとともに、前記アクティブプロセッサコアへの供給電圧を同じレベルに維持する周波数コントローラーと、
を有することを特徴とするシステム。 
【請求項１２】
前記周波数コントローラーは、前記一つ以上のクラスタ中のアクティブプロセッサコアの前記総数、および、前記環境温度測定結果に基づいて、前記動作周波数を増加させることを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記アクティブプロセッサコアの前記総数は一クラスタに属し、
前記所定数量は前記一クラスタ中のプロセッサコアの総数以下であること、
を特徴とする請求項１１に記載のシステム。
【請求項１４】
前記一クラスタは、異機種環境マルチプロセッシング (ＨＭＰ)構造を有する複数のクラスタのひとつであることを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記一クラスタは、完全対称型マルチプロセッシング (ＳＭＰ)構造を有する複数のクラスタの一つであり、
前記複数のクラスタのそれぞれのプロセッサコアの動作周波数は、互いに独立している、
ことを特徴とする請求項１３に記載のシステム。
【請求項１６】
前記アクティブプロセッサコアは複数のクラスタに属し、
前記所定数量は前記システム中のプロセッサコアの総数以下であること、
を特徴とする請求項１１に記載のシステム。
【請求項１７】
前記複数のクラスタはＳＭＰ構造を有し、
前記複数のクラスタのそれぞれのプロセッサコアの動作周波数は、互いに依存すること、
を特徴とする請求項１４に記載のシステム。
【請求項１８】
前記一つ以上のクラスタのそれぞれのプロセッサコアは、同じプロセッサタイプ、あるいは、異なるプロセッサタイプを有することを特徴とする請求項１１に記載のシステム。
【請求項１９】
前記一つ以上のクラスタ中の全プロセッサコアがアクティブであるとき、前記所定の最高周波数は、前記動作周波数の所定上限であることを特徴とする請求項１１に記載のシステム。
【請求項２０】
増加した動作周波数がもたらす増加した電力消耗は、前記一つ以上のクラスタが、少なくとも一つの非アクティブなプロセッサコアを有することにより生じるＩＲドロップによるものであることを特徴とする請求項１１に記載のシステム。
【請求項２１】
複数の温度範囲中のそれぞれに用いられる前記所定の最高周波数より高い一つ以上の周波数を含むルックアップテーブルを保存するメモリを有し、
前記管理モジュールは、さらに、前記環境温度測定結果に基づいて、ルックアップテーブルから周波数を識別し、前記周波数上で、前記アクティブプロセッサコアを操作すること、
を特徴とする請求項１１に記載のシステム。 
【請求項２２】
前記管理モジュールは、さらに、前記環境温度測定結果に基づいて、周波数の増大量を計算するとともに、前記周波数の増大量により、前記動作周波数を増加することを特徴とする請求項１１に記載のシステム。
【請求項２３】
コンピュータシステムの操作方法であって、
一つ以上のクラスタ中のアクティブプロセッサコアの総数が所定数量より少ない、および、前記アクティブプロセッサコアの動作周波数がすでに、特定周波数まで上昇している、という条件を検出する工程と、
前記一つ以上のクラスタの環境温度測定結果を得る工程と、
前記条件検出後、前記環境温度測定結果に基づいて、前記動作周波数を、前記特定周波数まで増加させるとともに、前記アクティブプロセッサコアへの供給電圧を同じレベルに維持する工程と、
を有し、
前記特定周波数は、複数の特定周波数の任意の一つ以上の特定周波数であり、前記複数の特定周波数は、前記一つ以上のクラスタ中の全プロセッサコアがアクティブである場合に対して設定されることを特徴とする方法。 
【請求項２４】
前記動作周波数の増加は、さらに、前記一つ以上のクラスタ中のアクティブプロセッサコアの前記総数に基づくことを特徴とする請求項２３に記載の方法。
【請求項２５】
前記一つ以上の特定周波数は、前記複数の特定周波数の最高特定周波数を含むことを特徴とする請求項２３に記載の方法。 
【請求項２６】
システムであって、
複数のプロセッサコアを有する一つ以上のクラスタと、
前記一つ以上のクラスタの環境温度測定結果を得る温度センサーと、 
前記一つ以上のクラスタのアクティブプロセッサコアの総数が所定数量より少ない、および、前記アクティブプロセッサコアの動作周波数がすでに、特定周波数まで上昇している、という条件を検出する管理モジュールと、
前記条件が検出されるとき、前記環境温度測定結果に基づいて、前記動作周波数を、前記特定周波数まで増加させるとともに、前記アクティブプロセッサコアへの供給電圧を同じレベルに維持する周波数コントローラーと、
を有し、
前記特定周波数は、複数の特定周波数の任意の一つ以上の特定周波数であり、前記複数の特定周波数は、前記一つ以上のクラスタ中の全プロセッサコアがアクティブである場合に対して設定されることを特徴とするシステム。
【請求項２７】
前記動作周波数の増加は、さらに、前記一つ以上のクラスタ中のアクティブプロセッサコアの前記総数に基づくことを特徴とする請求項２６に記載のシステム。
【請求項２８】
前記一つ以上の特定周波数は、前記複数の特定周波数の最高特定周波数を含むことを特徴とする請求項２６に記載のシステム。  
【請求項２９】
コンピュータシステムの操作方法であって、
一つ以上のクラスタ中のアクティブプロセッサコアの総数が所定数量より少ない、および、前記アクティブプロセッサコアの動作周波数がすでに、特定周波数まで上昇しているという条件を検出する工程と、
前記一つ以上のクラスタの環境温度測定結果を得る工程と、
前記条件が検出されるとき、前記環境温度測定結果に基づいて、前記アクティブプロセッサコアへの供給電圧のレベルを低下させ、前記特定周波数で、動作周波数を維持する工程と、
を有し、
前記特定周波数は、複数の特定周波数の任意の一つ以上の特定周波数であり、前記複数の特定周波数は、前記一つ以上のクラスタ中の全プロセッサコアがアクティブである場合に対して設定されることを特徴とする方法。 
【請求項３０】
システムであって、
複数のプロセッサコアを有する一つ以上のクラスタと、
前記一つ以上のクラスタの環境温度測定結果を得る温度センサーと、 
前記一つ以上のクラスタのアクティブプロセッサコアの総数が所定数量より少ない、および、前記アクティブプロセッサコアの動作周波数がすでに、特定周波数まで上昇している、という条件を検出する管理モジュールと、
前記条件が検出されるとき、前記環境温度測定結果に基づいて、前記アクティブプロセッサコアへの供給電圧のレベルを低下させ、前記特定周波数で、動作周波数を維持する周波数コントローラーと、
を有し、
前記特定周波数は、複数の特定周波数の任意の一つ以上の特定周波数であり、前記複数の特定周波数は、前記一つ以上のクラスタ中の全プロセッサコアがアクティブである場合に対して設定される、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、２０１４年９月１７日に出願された米国特許仮出願番号６２/０５１３２７から優先権を主張し、米国特許仮出願は引用によって本願に援用される。
【０００２】
本発明の実施態様は、複数のプロセッサコアを有するシステムにおける電力とパフォーマンス管理に関連する。
【背景技術】
【０００３】
現在、および、新興のモバイル装置の要求下で、低電力コンピューティングが重要になっている。高パフォーマンスを実現するため、たとえば、スマートフォン、タブレット、および、その他の携帯端末のモバイル装置は、ますます、高い電力消耗の先進技術を取り入れている。ランタイムパフォーマンスを向上させる一アプローチは、ダイナミックボルテージと周波数スケーリング (DVFS)であり、ランタイムで、プロセッサの動作周波数と電圧を自動的に調整して、パフォーマンスを強化する技術である。集積回路の電力消耗は、C×V2×Fに比例するので、動作周波数と電圧が増加するとき、電力消耗も増加する。式中、C はトランジスタ容量、V は供給電圧、Fは周波数である。
【０００４】
ある現代のコンピュータシステムは、内蔵電力管理フレームワークを有して、パフォーマンスと電力使用量間の交換を管理する。たとえば、コンピュータシステムは、電力管理ユニットを有し、電力管理ユニットは、ランタイムで、動作周波数と電圧が増加、あるいは、減少して、システムパフォーマンス要求を満たすか、あるいは、節電するかを決定する。電力管理ユニットは、動作周波数と電圧を、実験データに基づいて、システム開発者や製造者により通常決定される所定の上限と下限内に設定する。
【０００５】
先進型コンピュータシステムは、既に、一般的に、マルチプロセッサ機構を採用して、高パフォーマンスを提供する。マルチプロセッサシステムは、一つ以上のクラスタとして組織される複数のプロセッサ (中央処理ユニット(ＣＰＵ)、プロセッサコア、あるいは、コアとも称される)を有する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
マルチプロセッサシステムにおける高パフォーマンスと低電力の要求は、強化された電力管理の必要性を高める。
【課題を解決するための手段】
【０００７】
一実施態様において、コンピュータシステムの方法が提供される。本方法は、一つ以上のクラスタ中のアクティブプロセッサコアの総数が所定数量より少ない、および、アクティブプロセッサコアの動作周波数がすでに、所定の最高周波数まで上昇しているという条件を検出する工程と、一つ以上のクラスタの環境温度測定結果を得る工程と、を有する。本方法は、さらに、条件検出後、環境温度測定結果に基づいて、動作周波数を、所定の最高周波数まで増加させるとともに、アクティブプロセッサコアへの供給電圧を同じレベルに維持する工程、を有する。
【０００８】
別の実施態様において、コンピュータシステムが提供される。コンピュータシステムは、複数のプロセッサコアを有する一つ以上のクラスタと、一つ以上のクラスタの環境温度測定結果を得る温度センサーと、一つ以上のクラスタに結合され、一つ以上のクラスタのアクティブプロセッサコアの総数が所定数量より少なく、かつ、アクティブプロセッサコアの動作周波数がすでに、所定の最高周波数まで上昇している、という条件を検出する管理モジュールと、を有する。コンピュータシステムは、さらに、一つ以上のクラスタ温度センサー、および、管理モジュールに結合される周波数コントローラーを有し、条件の検出時、環境温度測定結果に基づいて、動作周波数を、所定の最高周波数まで増加させるとともに、アクティブプロセッサコアへの供給電圧を同じレベルに維持するように操作する。
【０００９】
さらに別の実施態様において、コンピュータシステムの方法が提供される。本方法は、一つ以上のクラスタ中のアクティブプロセッサコアの総数が所定数量より少ない、および、アクティブプロセッサコアの動作周波数がすでに、特定周波数まで上昇している、という条件を検出する工程と、一つ以上のクラスタの環境温度測定結果を得る工程と、を有する。特定周波数は、複数の特定周波数の任意の一つ以上の特定周波数であり、複数の特定周波数は、一つ以上のクラスタ中の全プロセッサコアがアクティブである場合に対して設定される。本方法は、さらに、条件検出後、環境温度測定結果に基づいて、動作周波数を、特定周波数まで増加させるとともに、アクティブプロセッサコアへの供給電圧を同じレベルに維持する工程を有する。
【００１０】
さらに別の実施態様において、コンピュータシステムが提供される。コンピュータシステムは、複数のプロセッサコアを有する一つ以上のクラスタと、一つ以上のクラスタの環境温度測定結果を得る温度センサーと、一つ以上のクラスタに結合され、一つ以上のクラスタのアクティブプロセッサコアの総数が所定数量より少ない、および、アクティブプロセッサコアの動作周波数がすでに、特定周波数まで上昇しているという条件を検出する管理モジュールと、を有する。特定周波数は、複数の特定周波数の任意の一つ以上の特定周波数であり、複数の特定周波数は、一つ以上のクラスタ中の全プロセッサコアがアクティブである場合に対して設定される。コンピュータシステムは、さらに、一つ以上のクラスタに結合される周波数コントローラー、温度センサー、および、管理モジュールを有し、条件の検出時、環境温度測定結果に基づいて、動作周波数を、特定周波数まで増加させ、アクティブプロセッサコアへの供給電圧を同じレベルに維持するように操作される。
【００１１】
ここで記述される実施態様において、プロセッサコアの動作周波数は、所定の最高周波数、および/または、一つ以上の特定周波数によって制限されない。それは、全プロセッサコアがアクティブであるとき、これらの周波数は、通常、安全操作を確保するために設計されるからである。さらに、プロセッサコアへの供給電圧のレベルを増加することを要求せずに、一つ以上の特定周波数を上回ることができる。このほか、プロセッサコアの動作周波数は、環境温度のリアルタイム検出に基づいて、動的に調整され、これにより、オーバーヒートや熱的問題が回避される。さらに、アクティブプロセッサコアの数量が少ないほど、ＩＲドロップが大きいので、さらに少ないアクティブプロセッサコアに対し、プロセッサコアの動作周波数が特定周波数を上回るまで調整されて、さらに大きい範囲に達する。よって、プロセッサコアは、それらの能力の全範囲、あるいは、増大した範囲上で操作でき、同じレベルの供給電圧が維持されつつ、電源リソースがさらに効果的に用いられる。
【００１２】
さらに別の実施態様において、コンピュータシステムの操作方法が提供される。本方法は、一つ以上のクラスタ中のアクティブプロセッサコアの総数が所定数量より少ない、および、アクティブプロセッサコアの動作周波数がすでに、特定周波数まで上昇している、という条件を検出する工程、および、一つ以上のクラスタの環境温度測定結果を得る工程、を有する。本法は、さらに、条件が検出されるとき、環境温度測定結果に基づいて、アクティブプロセッサコアへの供給電圧のレベルを低下させ、特定周波数で、動作周波数を維持する工程を有する。特定周波数は、複数の特定周波数の任意の一つ以上の特定周波数であり、複数の特定周波数は、一つ以上のクラスタ中の全プロセッサコアがアクティブである場合に対して設定される。
【００１３】
さらに別の実施態様において、コンピュータシステムが提供される。コンピュータシステムは、複数のプロセッサコアを有する一つ以上のクラスタと、一つ以上のクラスタの環境温度測定結果を得る温度センサーと、一つ以上のクラスタのアクティブプロセッサコアの総数が所定数量より少ない、および、アクティブプロセッサコアの動作周波数がすでに、特定周波数まで上昇している、という条件を検出する管理モジュールと、条件が検出されるとき、環境温度測定結果に基づいて、アクティブプロセッサコアへの供給電圧のレベルを減少させ、特定周波数で、動作周波数を維持する周波数コントローラーと、を有する。特定周波数は、複数の特定周波数の任意の一つ以上の特定周波数であり、複数の特定周波数は、一つ以上のクラスタ中の全プロセッサコアがアクティブである場合に対して設定される。
【図面の簡単な説明】
【００１４】
【図１】一実施態様によるマルチプロセッサコンピュータシステムを示す図である。
【図２】図１のコンピュータシステム中のクラスタを示す図である。
【図３】一実施態様によるルックアップテーブルである。
【図４】別の実施態様によるルックアップテーブルである。
【図５】一実施態様による動的周波数スケーリングの方法を示すフローチャートである。
【図６】別の実施態様による動的周波数スケーリングの方法を説明するフローチャートである。
【図７】さらに別の実施態様による動的周波数スケーリングの方法を説明するフローチャートである。
【発明を実施するための形態】
【００１５】
本発明は、例によって説明されるが、この例には限定されない。添付図面中の同一の符号は同一の素子を示す。注意すべきことは、この明細書中の"一" 実施態様は、同一の実施態様に限定される必要がなく、このような参照番号は、少なくとも一つを表示する。さらに、特定特徴、構造、あるいは、特徴が一実施態様と結合して記述されるとき、当業者なら理解できるように、明確に記述されていなくても、このような特徴、構造や特性は、その他の実施態様と結合して実現することができる。
【００１６】
以下の説明において、多くの特定の詳細が記述されている。しかし、理解できることは、本発明の実施態様は、これらの特定の詳細なしでも実現できることである。その他の例において、明細書に対する理解が不明瞭になるのを回避するため、従来の回路、構造と技術は詳述されていない。しかし、理解できることは、当業者なら理解できるように、本発明は、このような特定の詳細なしでも実現することができる。本文の描写により、当業者は、適当な功能を実現することができ、過多な実験が不要である。
【００１７】
注意すべきことは、ここで用いられる“マルチプロセッサコンピュータシステム”は、“マルチコアプロセッサシステム”に相当し、実際の設計に応じて、マルチコアシステム、あるいは、マルチプロセッサシステムである。つまり、提案される方法は、任意のマルチコアシステムとマルチプロセッサシステムに適用される。たとえば、マルチコアシステムに関して、全プロセッサコアは一プロセッサ中に設置される。もう一つ例を挙げると、マルチプロセッサシステムに関して、各プロセッサコアは一プロセッサ中に設置される。よって、各クラスタは、一つ以上のプロセッサの一群として実施される。
【００１８】
本発明の実施態様は、マルチプロセッサコンピュータシステムにおける電力とパフォーマンスを管理するシステムと方法を提供する。システムは一つ以上のクラスタを有し、各クラスタは、一つ以上のプロセッサコアを有する。プロセッサコアは、ＣＰＵ、その他のタイプのプロセッサ、あるいは、コアである。パフォーマンス要求と容量制約の変化に対応して、操作期間中、一つ以上のプロセッサコアの動作周波数は、動的に調整される。通常、所定のシステムの作業負荷下で、パフォーマンス要求は、応答時間とスループットにより定量化される。システムの作業負荷が、並列化され、複数のプロセッサコアに分布される状況下で、作業負荷の増大は、さらに多くのプロセッサコアをオンにして、パフォーマンス要求を満たす。しかし、システム作業負荷が容易に並列化できない状況において、さらに多くのプロセッサコアをオンにするのは、パフォーマンスの改善の助けにならない。一方、動作周波数の増大は、プロセッサ速度を加速し、これにより、応答時間、および/または、スループットに関連するパフォーマンスを増加する。
【００１９】
一実施態様において、動作周波数は、明細書で明記されている最高周波数(すなわち、上限)まで動的に増加する。この所定の最高周波数は、操作パフォーマンスポイント(ＯＰＰ)テーブル、あるいは、システム中で実現するその他の形式のデータ構造、あるいは、ストレージ、あるいは、回路中に保存される。システムの一つ以上のクラスタ中のアクティブプロセッサコアの数量が所定数量（所定数量は、一つ以上のクラスタ中のプロセッサコアの総数より少ない）より少ないとき、所定の最高周波数の超過が許可される。所定の最高周波数は、全プロセッサコアがアクティブである状況のために定義されるので、非アクティブプロセッサコアの存在は、それらのアクティブプロセッサコアが、所定の最高周波数より高い周波数で操作することにより、それらの通常の電力のシェアよりもっと多くを消費することを可能とする。一実施態様において、周波数の増大量は、一つ以上のクラスタの環境温度に基づく。高い温度環境下で、許可される周波数の増大量は小さくなり、低い温度環境下で、大きくなる。別の実施態様において、周波数の増大量は、アクティブプロセッサコアの数量、および、一つ以上のクラスタの環境温度に基づく。さらにアクティブプロセッサコアの数量が多い場合、許可される周波数の増大量は小さくなり、アクティブプロセッサコアの数量が少ない場合、大きくなる。
【００２０】
動作周波数が増加するべき目標周波数は、異なる温度、および/または、アクティブプロセッサコアの数量に対応する複数の動作周波数を定義し記憶する、異なる又は同一のＯＰＰテーブル、又は、システム中のデータ構造又はストレージのその他の形式にしたがって決定される。代わりに、あるいは、追加的に、動作周波数の増加は、ハードウェア、および/または、ソフトウェア形式の、目標周波数を計算する関係式を直接実装することにより達成される。さらに注意すべきことは、一態様において、異なる数量、あるいは、数量範囲のアクティブプロセッサコア、および/または、異なる温度、あるいは、温度範囲に対して、特定 (最高)周波数の異なる群を設定することにより、アクティブプロセッサコア(アクティブプロセッサコアの数量が所定スレショルドより少ないとき)の動作周波数は、特定(最高)周波数を上回る。
【００２１】
追加的、あるいは、代わりに、動作周波数は、本来、マルチプロセッサコンピュータシステムの操作が、一つ以上のその他の特定周波数まで動的に増加する期間中、所定の最高周波数より低い任意の一つ以上の特定周波数に設定される。同様に、これらの一つ以上の特定周波数は、全プロセッサコアがアクティブである状況にも定義されるので、ランタイム中、非アクティブプロセッサコアの存在が、それらのアクティブプロセッサコアを、特定周波数より高い周波数で操作できるようにする。つまり、アクティブプロセッサコアの数量が減少するとき、クラスタのＩＲドロップによって、一つ以上の特定周波数が上回る。一実施態様において、一つ以上の特定周波数のそれぞれの周波数の増大量は、一つ以上のクラスタの環境温度に基づく。高い温度環境下で、許可される周波数の増大量が小さくなり、低い温度環境下で、大きくなる。別の実施態様において、一つ以上の特定周波数のそれぞれの周波数の増大量は、アクティブプロセッサコアの数量、および、一つ以上のクラスタの環境温度に基づく。アクティブプロセッサコアの数量が多くなると、許可される周波数の増大量が小さくなり、アクティブプロセッサコアの数量が少なくなると、大きくなる。
【００２２】
ここで記述される実施態様において、動作周波数の調整前、および、後、アクティブプロセッサコアへの供給電圧は同じレベルで維持される、すなわち、アクティブプロセッサコアの数量にかかわらず、同じ電圧レベルである。安全電圧と称されるこの電圧レベルは、システム中の全プロセッサコアがアクティブである状況に対して設計される。システム中の一つ以上の非アクティブプロセッサコアの存在は、未使用電力の形式であるＩＲドロップを生じさせる。供給電圧の維持は、動作周波数に伴い供給電圧を増減させることよりむしろ、供給電圧を維持することは、回路操作を安定させるだけでなく、高い周波数で操作することにより、未使用電力をアクティブプロセッサコア (全てのプロセッサコアより少ない)により使用させることを可能とする。よって、一実施態様において、動作周波数が増加すると、増加した動作周波数がもたらす増加した電力消耗は、一つ以上のクラスタが、少なくとも一つの非アクティブなプロセッサコアを有することにより生じるＩＲドロップによるものである。本発明の実施態様の更なる詳細は以下で提供される。
【００２３】
一実施態様において、非アクティブプロセッサコアの存在は、所定の最高周波数を維持させ、アクティブプロセッサコアへの供給電圧が減少する。供給電圧が、全プロセッサコアがアクティブである状況に定義されるので、非アクティブプロセッサコアの存在は、それらのアクティブプロセッサコアを、所定の最高周波数で、低レベルの供給電圧を使用して操作させることができる。つまり、アクティブプロセッサコアの数量が減少するとき、クラスタのＩＲドロップのために、供給電圧のレベルが低下する。一実施態様において、電圧の減少量は、一つ以上のクラスタの環境温度に基づく。高い温度環境下で、許可される電圧の減少量が小さくなり、低い温度環境下で、大きくなる。別の実施態様において、電圧の減少量は、アクティブプロセッサコアの数量、および、一つ以上のクラスタの環境温度に基づく。アクティブプロセッサコアの数量が多くなると許可される周波数の増大量が小さくなり、アクティブプロセッサコアの数量が少なくなると、大きくなる。
【００２４】
図１は、一実施態様によるコンピュータシステム１００を示す図である。この例において、コンピュータシステム１００は、マルチプロセッサコンピュータシステムで、Cluster(1), Cluster(2), Cluster(3)…., Cluster(m)として示される一つ以上のクラスタ１０５を有し、m は、任意の正の整数である。図１、および、以下では複数のクラスタが示されているが、理解できることは、システム１００の実施態様は、任意の数量のクラスタ、たとえば、一つのクラスタ (すなわち、m = 1)を有する。よって、特別に記述されない限り (たとえば、“多くの”や“複数の”クラスタというように記述されない限り)、以下で記述される実施態様は、一を含む任意の数量のクラスタに適用される。各クラスタ１０５は、一つ以上のプロセッサコアを有し、且つ、異なるクラスタ１０５は、同じ、あるいは、異なる数量、プロセッサタイプ、および/または、サイズの、プロセッサコアを含む。システム１００は、さらに、共に、管理モジュール１３０により制御される、周波数コントローラー１１０と電源１２０とを有する。管理モジュール１３０が、動作周波数の調整量を決定、識別、あるいは、計算するとき、周波数コントローラー１１０に信号を発信して、動作周波数を変化させる。一実施態様において、動作電圧に調整する前と後、電源１２０は、クラスタ１０５に同じ供給電圧を維持する。一実施態様において、管理モジュール１３０は、少なくとも一部において温度センサー１４０からの温度測定に基づいて、クラスタ１０５の動作周波数を設定する。温度センサー１４０は、クラスタ１０５の環境温度を測定する。たとえば、クラスタ１０５が位置するチップの温度を測定することによる。
【００２５】
記述される動的周波数スケーリングによると、管理モジュール１３０は、所定条件を検出するように操作する。ここで、所定条件は、いつ、動作周波数が所定の最高周波数を上回るまで増加するか定義する。所定条件は、好ましくは、一つ以上のクラスタ１０５中のアクティブプロセッサコアの総数が所定数量より少ないこと、および、アクティブプロセッサコアの動作周波数がすでに、所定の最高周波数まで上昇していること、であるが、これに限定されない。条件の検出時、周波数コントローラー１１０は、環境温度測定結果に基づいて操作し、動作周波数を、所定の最高周波数まで増加させ、電源１２０は、アクティブプロセッサコアへの同じレベルの供給電圧を維持する。
【００２６】
一実施態様において、管理モジュール１３０は、クラスタを操作するため、多くの特定の周波数値にアクセスしている。“特定周波数,” “所定の最高周波数,” “特定周波数値,” 等の用語は、一つ以上のクラスタ１０５中の全プロセッサコアがアクティブである状況で、クラスタ１０５を操作するために定義される周波数値のことを指す。一つ以上のクラスタ１０５中の全プロセッサコアがアクティブであるとき、所定の最高周波数は、動作周波数の上限である。所定の最高周波数を含む特定周波数値は、テーブル (たとえば、ＯＰＰテーブル)、あるいは、管理モジュール１３０にアクセス可能な別の形式の構造中に保存される。パフォーマンス要求が増加するとき、高い周波数設定が動作周波数として用いられる。反対に、パフォーマンス要求が減少するとき、低い周波数が用いられて、電力消耗を減少させる。ここで記述される動的周波数によると、高パフォーマンス要求があるとき、管理モジュール１３０は、動作周波数を所定の最高周波数まで増加させる。
【００２７】
図２は、一実施態様によるクラスタ１０５のひとつを示す図である。クラスタ１０５は、P1, P2, P3,…, Pnとして示される複数のプロセッサコアを含み、nは、１より大きい任意の正の整数である。操作期間中、いくつかのプロセッサコアは非アクティブ(たとえば、黒いブロック中で示されるP1と P2)であり、他はアクティブである(たとえば、P3,…,Pn)。オフである、および/または、ごく少量の電力を消耗する低電力状態であるとき、プロセッサコアは、非アクティブであるとみなされる。クラスタ１０５は、さらに、一つ以上のキャッシュメモリ、たとえば、レベル２(L2)キャッシュ２１０を有し、それぞれ、クラスタ１０５中の全プロセッサコア中の少なくとも一つにアクセス可能である。
【００２８】
クラスタ１０５のプロセッサコアは、同じプロセッサタイプであり、これは、電力消耗とパフォーマンス方面で、プロセッサコアがほぼ同じ特徴を有することを意味する。代わりに、クラスタ１０５中のプロセッサコアは、異なるプロセッサタイプで、電力消耗、および/または、パフォーマンス方面で、それらが異なる特徴を有することを意味する。システム１００が一つ以上のクラスタ１０５を有し、全部のクラスタ１０５中のプロセッサコアが同じプロセッサタイプを有する実施態様において、システム１００は、完全対称型マルチプロセッシング (ＳＭＰ)構造を有するとみなされる。他の実施態様において、同じクラスタ１０５中の、あるいは、異なるクラスタ１０５を横切るプロセッサコアは、異なるプロセッサタイプを有し、システム１００は、異機種環境マルチプロセッシング (ＨＭＰ)構造を有するとみなされる。
【００２９】
以下は、いくつかの実施態様によるシステムにおいて、動作周波数を動的にスケーリングするシステム１００の３個の例示的な実現方式を記述する。第一例示的実現方式において、システム１００はＳＭＰ構造を有し、クラスタ１０５の動作周波数は、互いに依存する。この実施において、管理モジュール１３０が第一条件を検出するとき、周波数スケーリングが、システム１００中の全クラスタ１０５(システム１００が一クラスタしか有さない場合、一クラスタ)に適用される。記述される動的周波数スケーリングによると、以下が真であるとき、第一条件が出現する: (a)アクティブプロセッサコアの動作周波数がすでに、所定の最高周波数まで上昇している、および、(b)システム１００中のアクティブプロセッサコアの総数が所定数量より少ない。第一条件が検出されるとき、システム１００中の全クラスタ１０５の動作周波数は、クラスタ１０５の環境温度測定結果に基づいて、所定の最高周波数まで増加する。(b)中の所定数量は、システム１００中のプロセッサコアの総数より少ない任意の数量である。他の実施態様において、(a)中の所定の最高周波数は、所定の最高周波数より低い特定周波数である。このほか、動的周波数スケーリングは、所定の最高周波数に適用されるだけでなく、所定の最高周波数より低い一つ以上の特定周波数にも適用される。
【００３０】
第二例示的実現方式において、システム１００はＳＭＰ構造を有し、クラスタ１０５の動作周波数は互いに独立している。この実施において、第二条件が検出されるとき、周波数スケーリングが、独立して、各クラスタ１０５に適用される。第三例示的実現方式において、システム１００は、ＨＭＰ構造を有し、クラスタ１０５の操作周波数は互いに独立している。この実施において、第二条件が検出されるとき、周波数スケーリングは、また、各クラスタ１０５に独立して適用される。つまり、第二条件は、第二と第三例示的実現方式両方に用いられる。第二と第三例示的実現方式は、一クラスタだけを有するシステム１００に適用される。記述される動的周波数スケーリングによると、以下が真であるとき、第二条件が出現する: (a)システム１００中の所定クラスタの動作周波数が、既に、所定の最高周波数に達している、および、(b)所定クラスタ中のアクティブプロセッサコアの総数が、所定数量より少ない。第二条件が検出されるとき、所定クラスタの動作周波数は、所定クラスタの環境温度測定結果に基づいて、所定の最高周波数まで増加する。(b)中の所定数量は、所定クラスタ中のプロセッサコアの総数より小さい任意の数量である。他の実施態様において、(a)中の所定の最高周波数は、所定の最高周波数より低い特定周波数である。その上、動的周波数スケーリングは、所定の最高周波数だけでなく、所定の最高周波数より低い一つ以上の特定周波数にも適用される。
【００３１】
一実施態様において、第一条件、あるいは、第二条件が検出されるとき、管理モジュール１３０は、目標周波数を決定して、ルックアップテーブルを用いて、動作周波数を増加させる。ルックアップテーブルは、任意の形式のデータ/ストレージ構造である、および/または、ハードウェア/ソフトウェア形式で実施される。代わりに、あるいは、追加的に、対応する公式を用いて、関連するハードウェア、および/または、ソフトウェアで実施される目標周波数を計算することにより、管理モジュール１３０は、自動的に、動作周波数を増加させる。図３はルックアップテーブル３１０の一実施態様を示す図で、管理モジュール１３０中のメモリ中に保存される、あるいは、管理モジュール１３０によりアクセスが可能である。一実施態様において、表３１０は、温度 (T1, …, Tnにより表示される)により索引がつけられる周波数値のリストを含む。表３１０中の各温度値は、温度範囲を示す。たとえば、表３１０のロウ1 は T1 と F1を含み、温度が T1より低く、動作周波数が F1まで増加することを意味する。ロウ 2は T2 と F2を含み、温度がT2以下であり (および、T1より大きい)、動作周波数がF2まで増加ことを意味する。ここで、T2 > T1 であり、F2 < F1である。温度が Tnより大きい場合 (表３１０中の最高温度値)、動作周波数は F(n+1)まで増加する。表３１０の別のロウのコンテンツも同様に理解できる。一実施態様において、表３１０中の全周波数値は、所定の最高周波数より大きい。一実施態様において、ルックアップテーブルを使用する目的のため、図１の温度センサー１４０による環境温度測定が温度の推定として用いられる。ルックアップテーブルは、上記の任意の第一、第二、あるいは、第三例示的実現方式に用いられる。
【００３２】
周波数が、表３１０中で識別されるとき、システム１００中の一つ以上のクラスタの動作周波数は、一工程、あるいは、代替的に、複数の工程において、識別された周波数に増加される。複数の工程のそれぞれの周波数値が、表３１０中、あるいは、管理モジュール１３０にアクセス可能な別々のデータ構造中に保存される。代わりに、複数の工程のそれぞれの周波数値が、固定の増加量、あるいは、固定の百分率増加として、管理モジュール１３０により計算される。
【００３３】
図４は、別の実施態様によるルックアップテーブル４１０で、管理モジュール１３０中のメモリに保存される、あるいは、管理モジュール１３０にアクセス可能である。一実施態様において、表４１０は周波数値のリストを含み、周波数値のリストは、温度(T1, …, Tnにより示される)により索引付けされるロウとアクティブプロセッサコアの数量 (NP1,….NPkにより示される)により索引付けられるカラムを有する。表４１０中の各温度値は温度範囲を示す。NP1,….NPk の値は、連続した、あるいは、非連続の整数である。たとえば、NP1 = 1 および NP2 = 3である場合、NP2のカラムが、アクティブプロセッサコアの数量が２か３である場合を示す。上述の第一例示的実現方式において、システム１００の全クラスタ中のアクティブプロセッサコアが計算され、アクティブプロセッサコアの数量を得る。上述の第二と第三例示的実現方式において、所定クラスタ (第二条件が検出される)中のアクティブプロセッサコアが計算されて、アクティブプロセッサコアの数量を得る。たとえば、表４１０のロウ 1 カラム 1 は F11を含み、温度がT1より低く、アクティブプロセッサコアの数量はNP1以下、動作周波数は F11まで増加することを意味する。表４１０のロウ 1 カラム 2 は F12を含み、温度T1が以下、アクティブプロセッサコアの数量が NP2以下 (および、NP1より大きい)、動作周波数は F12まで増加することを意味する。ここで、NP2 > NP1 であり、 F12 < F11である。表４１０の別のロウとカラムのコンテンツも同様に理解される。一実施態様において、表４１０中の全周波数値は、所定の最高周波数より高い。
【００３４】
いくつかの実施態様において、表４１０中、各ロウ中の同数のカラム、および、各カラム中の同数のロウを有するのに代わって、周波数値は、温度範囲の各テーブルを有する複数のテーブルを含むデータ構造中に保存される。たとえば、データ構造は、温度 T ≦ T1の第一テーブル、および、T1 < T ≦ T2の第二テーブルを有し、且つ、各テーブルは、異なる数量のアクティブプロセッサコアの周波数値を定義する。いくつかの他の実施態様において、複数のテーブルのそれぞれ、異なる数量のアクティブプロセッサコアに用いられる。たとえば、データ構造は、NP ≦ 2の第一テーブル、および、2 < NP ≦ 4の第二テーブルを含む。異なるテーブルは、同じ、あるいは、異なる数量のエントリーを含む。
【００３５】
周波数が表４１０で識別されるとき、システム１００中の一つ以上のクラスタの動作周波数は、一工程、あるいは、代替的に、複数の工程において、識別された周波数に増加される。複数の工程のそれぞれの周波数値は、表４１０中、あるいは、管理モジュール１３０にアクセス可能な別々のデータ構造中に保存される。代わりに、複数の工程のそれぞれの周波数値は、固定の増加量、あるいは、固定の百分率増加として、管理モジュール１３０により計算される。
【００３６】
さらに別の実施態様において、管理モジュール１３０は、現在の動作周波数と百分率を掛けることにより、周波数の増大量を計算する。たとえば、動作周波数は T ≦ T1 のとき、8% 増加し、T1 < T ≦ T2のとき、5% 増加する。代わりに、環境温度測定結果に加え、アクティブプロセッサコアの数量に基づいて、百分率の増加量が決定される。
【００３７】
目標周波数、あるいは、周波数の増大量が決定され、それにしたがって、動作周波数が増加した後、管理モジュール１３０は、ランタイム中、繰り返し、システム１００の状態を再評価して、第一、あるいは、第二条件が変化したかどうか、温度がすでに変化しているかどうか、アクティブプロセッサコアの数量がすでに変化しているかどうか、等を判断する。再評価結果が、動作周波数が再調整されるべきであると示す場合、管理モジュール１３０は、保存データにアクセスすることにより、あるいは、周波数調整量を計算することにより、アクティブプロセッサコアの動作周波数を決定する。一実施態様において、温度が低く、パフォーマンス要求に符合するとき、動作周波数が増加し、温度が高く、電力消耗が減少するとき減少する。
【００３８】
図５は、一実施態様による動的周波数スケーリングのシステム１００により実行される方法５００を説明するフローチャートである。方法５００は、システム１００ (さらに特に、管理モジュール１３０)が、システム１００の一つ以上のクラスタ中のアクティブプロセッサコアの総数が所定数量より少ない、および、動作周波数がすでに、所定の最高周波数まで上昇している、という条件を検出するとき、工程５１０から開始される。上述の第一例示的実現方式において、システム１００中の全クラスタに対し、アクティブプロセッサコアの総数が計数される。上述の第二、あるいは、例示的実現方式において、システム１００中の所定クラスタに対し、アクティブプロセッサコアの総数が計数される。他の実施態様において、(a)中の所定の最高周波数は、所定の最高周波数より低い特定周波数である。このほか、方法５００は、所定の最高周波数だけでなく、所定の最高周波数より低い一つ以上の特定周波数にも適用される。
【００３９】
工程５２０〜工程５４０に進み、管理モジュール１３０は、測定された環境温度 (T)と一つ以上の温度点を比較して、Ｔが属する温度範囲を識別する。温度T1 < T2 < …< Tn、および、周波数 F1 > F2 > ….> Fn > F(n+1)であると仮定する。温度が高いと、動作周波数が低くなる。温度範囲がTを含むことが発見されるとき、動作周波数が対応する周波数値に調整される。たとえば、T ≦ T1の場合、工程５２２において、動作周波数が F1に調整される; 工程５３２において、T1 < T ≦ T2である場合、動作周波数が F2に調整される;工程５４２において、T(n-1) < T ≦ Tnである場合、動作周波数は Fn に調整される。工程５５０において、T が Tnを超えることが発見される場合、動作周波数は F(n+1)に調整される。一実施態様において、比較は、図５の工程５２０〜工程５４０に示されるように、連続的に実行される。他の実施態様において、比較は、並行して、あるいは、図５と異なる順序で実行される。
【００４０】
一条件(たとえば、上述の第一、あるいは、第二条件)が検出されるとき、あるいは、変化(たとえば、温度変化)が検出されるとき、図５の方法５００は、固定時間間隔で、連続して実行される。動作周波数は、温度測定に基づいて、増加、あるいは、減少するように調整される。アクティブプロセッサコアの数量が周波数調整に考慮されるとき、類似操作が実行される。たとえば、異なる数量のアクティブプロセッサコアに対し、周波数値 F1, F2, …., Fn, F(n+1)は異なってもよい。一実施態様において、動作周波数の調整前後、アクティブプロセッサコアに供給される電圧が同じレベルで維持される。
【００４１】
図６は、一実施態様による動的周波数スケーリングを用いたコンピュータシステムの操作方法６００を説明するフローチャートである。図６を参照すると、方法６００は、一つ以上のクラスタ中のアクティブプロセッサコアの総数が所定数量より少ない、および、アクティブプロセッサコアの動作周波数がすでに、特定周波数、たとえば、所定の最高周波数、あるいは、複数の特定周波数の任意の一つ以上の特定周波数まで上昇している、という条件を検出すること(ブロック６１０)から始まる。複数の特定周波数が設定されて、一つ以上のクラスタ中の全プロセッサコアをアクティブにする。方法６００は、さらに、一つ以上のクラスタの環境温度測定結果を得る工程 (ブロック６２０)を有する。方法６００は、さらに、条件検出後、環境温度測定結果に基づいて、動作周波数を、特定周波数まで増加させ、アクティブプロセッサコアへの供給電圧を同じレベルに維持する工程 (ブロック６３０)を有する。
【００４２】
図７は、一実施態様による動的周波数スケーリングを用いたコンピュータシステムの操作方法７００のフローチャートである。図７を参照すると、方法７００は、一つ以上のクラスタ中のアクティブプロセッサコアの総数が所定数量より少ない、および、アクティブプロセッサコアの動作周波数がすでに、特定周波数まで上昇している、という条件の検出から開始され、特定周波数は、複数の特定周波数の任意の一つ以上の特定周波数である (ブロック７１０)。複数の特定周波数が設定されて、一つ以上のクラスタ中の全プロセッサコアをアクティブにする。方法７００は、さらに、一つ以上のクラスタの環境温度測定結果を得る工程 (ブロック７２０);および、条件が検出されるとき、環境温度測定結果に基づいて、アクティブプロセッサコアへの供給電圧のレベルを低下させ、特定周波数で、動作周波数を維持する工程 (ブロック７３０)を有する。
【００４３】
方法６００と７００は、ハードウェア (たとえば、電気回路、専用のロジック、プログラマブル論理、マイクロコード等)、ソフトウェア (たとえば、指示が処理装置を動かす)、あるいは、それらの組み合わせにより実行される。一実施態様において、方法６００と７００は、図１のコンピュータシステム１００、あるいは、複数のプロセッサコアを含む任意のコンピュータシステムにより実施される。一実施態様において、コンピュータシステム１００は、モバイルコンピューティング、および/あるいは、通信装置(たとえば、スマートフォン、タブレット、ラップトップ等)の一部である。  
【００４４】
図５〜図７のフローチャートの操作は、図１の例示的実施態様を参考にして記述されている。しかし、理解できることは、図５〜図７のフローチャートの操作は、図１を参考にして討論されるもの以外の本発明の実施態様により実行され、図１を参考にして討論される実施態様は、フローチャートを参考にして討論されるものと異なる操作を実行することができる。図５〜図７のフローチャートは、本発明のある実施態様により実行される操作の特定順序を示し、注意すべきことは、このような順序は例であることである(たとえば、他の実施態様は、異なる順序、ある操作の組み合わせ、ある操作の重複で操作を実行する)。
【００４５】
各種機能性コンポーネンツ、あるいは、ブロックはすでに記述されている。当業者なら理解できるように、機能ブロックは、好ましくは、回路 (専用回路、あるいは、汎用回路、回路は、一つ以上のプロセッサ、および、コード化された命令下で操作する)の制御により実施され、通常、ここで記述される機能と操作に関連する回路の操作を制御する方式で設定されるトランジスタを有する。トランジスタの特定構造、あるいは、相互接続は、コンパイラ、たとえば、レジスタ転送語(ＲＴＬ)コンパイラにより決定される。ＲＴＬコンパイラは、アセンブリ言語コードによく似たスクリプトに基づいて操作し、スクリプトを最終回路のレイアウトや製造に用いられる形式にコンパイルする。電子、および、デジタルシステムの設計プロセスにおいて、ＲＴＬは、その便利な使用性と作用で知られている。
【００４６】
ここで記述される実施態様において、全プロセッサコアがアクティブであるとき、これらの周波数は、通常、安全操作を確保するために設計されるので、プロセッサコアの動作周波数は、所定の最高周波数、および/または、一つ以上の特定周波数によって制限されない。さらに、プロセッサコアへの供給電圧のレベルを増加することを要求せずに、一つ以上の特定周波数が上回る。このほか、プロセッサコアの動作周波数は、環境温度のリアルタイム検出に基づいて、動的に調整され、これにより、オーバーヒートや熱的問題を回避する。さらに、アクティブプロセッサコアの数量が少ないほど、ＩＲドロップが大きいので、さらに少ないアクティブプロセッサコアに対し、プロセッサコアの動作周波数が特定周波数を上回るまで調整されて、さらに大きい範囲に達する。よって、プロセッサコアは、それらの能力の全範囲、あるいは、増大した範囲上で操作し、同じレベルの供給電圧が維持されるとき、電源リソースがさらに効果的に用いられる。
【００４７】
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
【図１】
2017528837.tif 000003
【図２】
2017528837.tif 000004
【図３】
2017528837.tif 000005
【図４】
2017528837.tif 000006
【図５】
2017528837.tif 000007
【図６】
2017528837.tif 000008
【図７】
2017528837.tif 000009
【国際調査報告】
2017528837.tif 000010
2017528837.tif 000011