JP2009151778A - ワークロード実行特徴に基づく性能低下のない低パワーのための動的なプロセッサを再構成するための方法、プログラム、およびシステム - Google Patents

ワークロード実行特徴に基づく性能低下のない低パワーのための動的なプロセッサを再構成するための方法、プログラム、およびシステム Download PDF

Info

Publication number
JP2009151778A
JP2009151778A JP2008316674A JP2008316674A JP2009151778A JP 2009151778 A JP2009151778 A JP 2009151778A JP 2008316674 A JP2008316674 A JP 2008316674A JP 2008316674 A JP2008316674 A JP 2008316674A JP 2009151778 A JP2009151778 A JP 2009151778A
Authority
JP
Japan
Prior art keywords
power
throughput
stage
power level
performance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008316674A
Other languages
English (en)
Other versions
JP5336830B2 (ja
Inventor
Benny Caps Louis Jr
ルイス・ベニー・キャップス・ジュニア
Jr Robert H Bell
ロバート・エイチ・ベル・ジュニア
Michael J Shapiro
マイケル・ジェイ・シャピロ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009151778A publication Critical patent/JP2009151778A/ja
Application granted granted Critical
Publication of JP5336830B2 publication Critical patent/JP5336830B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Abstract

【課題】パイプライン型プロセッサを、既存の性能を低下させることなく、減少したパワー消費で動作するように動的に再構成するための、方法、システム、およびプログラムを提供する。
【解決手段】プロセッサ内の個々のユニットまたはステージが所与のワークロードを実行する際に、それらの性能を監視または検出することによって、各ステージは、スループット性能における低下が検出される時点まで高性能回路を使用することが可能であり、その時点でステージは、より少ないパワーを使用する低下した性能スループット要件に合致するように、低性能回路を使用するように再構成される。実行ワークロードの検出された性能特徴の保証に合わせるために、プロセッサを高性能設計から低性能設計へと後退させるように構成することによって、パワー損失を最適化することができる。
【選択図】図2

Description

本発明は、一般に、データ処理システムの分野を対象とする。一態様では、本発明は、パイプライン型プロセッサ・システムにおける動的なパワー制御に関する。
パイプライン型プロセッサの設計では、個々のパイプライン・ステージは、通常、メモリから、およびメモリへの待ち時間を最小にすること、ならびに、各ステージでの帯域幅を最大にすることによって、最大性能を提供するように設計される。しかしながら、典型的なプロセッサの使用では、すべてのステージがあらゆるクロック・サイクルにおいて最大限に機能することを必要としないため、こうしたプロセッサはしばしば「過剰設計」である。プロセッサが可能であればいつでも最大限に実行するように設計された場合、それらの動作によって、大幅なパワー損失を発生させる可能性があり、実際に一部の命令配布に関して性能の低下につながる可能性がある。たとえば、本来、命令レベル並列性(ILP)の低いワークロードを実行する場合、プロセッサ・パイプラインは、フルパワー/高スループット・モードで動作する必要はなく、実際のところ、こうした動作モードはユニット内の待ち時間が長く、不必要にパワーを消費することから、性能に悪影響を及ぼす可能性がある。
したがって、パイプライン型プロセッサ・システムにおいて性能およびパワー損失を制御するためのシステムおよび方法が求められている。加えて、過度のパワー損失なしに必要なレベルの性能およびスループットを提供する、パイプライン型プロセッサ・システムおよび設計も求められている。
当業者であれば、以下の図面および詳細な説明を参照しながら、本明細書の残りの部分を再検討することによって、従来のソリューションの他の制限および欠点が明らかとなるであろう。
本発明の様々な実施形態に従って、動的に構成可能なプロセッサが、プロセッサ内の個々のユニットまたはステージが所与のワークロードを実行した場合に、それらの性能を監視または検出する、プロセッサの設計および方法が示される。動的に構成可能なプロセッサは、高性能設計/モードおよび低性能設計/モードを有する、1つまたは複数のステージを含む。高性能設計/モードは、比較的高いパワー損失レベルでワークロードを実行するために使用されるが、実行ワークロードの検出された性能特徴によって保証された場合、プロセッサは、比較的低いパワー損失レベルでワークロードを実行するための低性能設計/モードの使用に切り替える。実行ワークロードの検出された性能特徴の保証に合わせるために、プロセッサを高性能設計から低性能設計へと後退させるように構成することによって、パワー損失を最適化することができる。選択された諸実施形態では、時間ウィンドウ中のステージ操作の数をカウントすることなどによって、定義された時間ウィンドウの間、個々のパイプライン・ステージ(たとえば、フェッチ、復号、実行、書き戻し、完了)のスループットが監視される。初期には、個々のパイプライン・ステージは高スループット、高パワー設計を使用する。しかしながら、いずれかのステージのスループット・カウントが、そのステージに性能ボトルネックが存在することを示す場合、プロセッサ・パイプラインは、より低いスループット、より低いパワー設計を使用するように、動的に再構成される。
様々な実施形態によれば、1つまたは複数の個々のパイプライン・ステージは、コンピュータ実行可能命令を備えるコンピュータ・プログラム・コードを伴うデータ処理システム内で実装可能な、本明細書に記載された方法または装置あるいはその両方を使用するソフトウェア制御の下で、高スループット、高パワー設計と、低スループット、低パワー設計との間で切り替えるように、動的に構成することができる。実装されるどのような形においても、パイプライン型プロセッサのパワー損失は、高性能モードで動作する複数のパイプライン・ステージについてスループット・レートを測定することによって、制御することができる。例示的実装では、所定のウィンドウ中に、各パイプライン・ステージについてどれだけのステージ・イベントが発生するかをカウントすることによって、スループット・レートが測定される。スループット・レートを経時的に測定することにより、スループット・レートのうちの1つまたは複数を所定の高性能スループットしきい値と比較することなどによって、レートの減少があれば検出することができる。複数のスループット・レートのうちの1つまたは複数が第1の所定のスループット・レートまで減少したことを検出すると、第1のパワー・レベル制御信号が複数のパイプライン・ステージに送信される。様々な実施形態では、パワー制御信号は、すべてのパイプライン・ステージに1ビットのパワー・レベル制御信号としてブロードキャストされるか、または、各パイプライン・ステージに別々のパワー・レベル制御信号として送信されることが可能である。ステージが、様々なスループット・レートおよびパワー・レートを備えた複数レベルの動作を有する場合、動作のレベルを選択するために、複数のパワー・レベル制御信号を実装することができる。第1のパワー・レベル制御信号に応答して、各パイプライン・ステージが低性能モードで動作するように再構成され、それによって複数のパイプライン・ステージによるパワー損失が削減される。低性能モードへの再構成は、各ステージで、第1のパワー・レベル制御信号に応答して第1の低パワー回路を選択することによって、実装可能である。高性能モードに戻すためには、クロック・サイクルのウィンドウ全体にわたって、現在は低性能モードで動作している複数のパイプライン・ステージについてのスループット・レートが監視され、スループット・レートが第2の所定のしきい値レートに合致するかまたはそれを超えた場合を検出し、その時点で、各パイプライン・ステージが高性能モードで動作するように再構成されるように、第2のパワー・レベル制御信号がパイプライン・ステージに送信される。
以下の詳細な説明について以下の図面と共に考察することにより、本発明の選択された諸実施形態について理解し、その多数の目的、特徴、および利点を得ることができる。
プロセッサ・スループットの減少を検出すると、高性能(高パワー)モードから低性能(低パワー)モードに切り替えるようにパイプラインを再構成するために、パイプライン型プロセッサの性能を監視するための方法、システム、およびプログラムが開示されている。複数の動作モードを有するようにユニットを設計すること、および、実行ワークロードのスループットまたはILP特徴を感知することによってモード間を切り替えるためのスキームを採用することによって、性能が必ずしも悪化することなく、実際には向上できるように、サイクル当たりの実行待ち時間と共に、パワー損失を減少させることができる。選択された諸実施形態では、性能モニタは、比較的高いパワー損失レベルでワークロードを実行するためには高性能構成が使用されるが、検出された実行ワークロードの性能特徴によって保証された場合、比較的低いパワー損失レベルでワークロードを実行するために低性能構成が使用されるように動作するように、各パイプライン・ステージがどのように構成されるかを調整する。
次に、本発明の様々な例示的実施形態について、添付の図面を参照しながら詳細に説明する。本明細書に記載された流れ図またはブロック図あるいはその両方は、命令(コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する)が、流れ図あるいはブロック図の1つまたは複数のブロック内に指定された機能/動作を実装するように、汎用コンピュータ、特定用途向けコンピュータ、またはマシンを製造するための他のプログラム可能データ処理装置に提供される、専用のハードウェア回路、ファームウェア、またはコンピュータ・プログラム命令、あるいはそれらすべてによって、全体として、または部分的に、実装可能であることを理解されよう。加えて、以下の説明では様々な細部が示されるが、本発明はこれら特定の細部なしでも実施可能であること、および、実装によって異なる技術または設計関係の制約の遵守などの、デバイス設計者特有の目標を達成するために、本明細書に記載された発明に対して多数の実装特有の意思決定が実行可能であることを理解されよう。こうした開発努力は複雑であり、時間がかかる可能性があるが、それにもかかわらず、本開示の恩恵を有する当業者にとっては日常業務である。たとえば、本発明を限定または不明瞭にすることを避けるために、選択された諸態様は、詳細にではなくブロック図形式で示されている。加えて、本明細書に提供された詳細な説明の一部は、コンピュータ・メモリ内のデータ上のアルゴリズムまたは演算に関して提示されている。こうした記述および表現は、当業者によって、彼等の作業の実態を他の当業者に説明および伝達するために使用される。次に、本発明の様々な例示的実施形態について、図面を参照しながら詳細に説明する。
ここで図1を参照すると、本発明の選択された諸実施形態に従った、性能を低下させることなくプログラム・ワークロードの低パワー実行を提供する、マルチプロセッサ(MP)データ処理システム100の高水準ブロック図が示されている。データ処理システム100は、1つまたは複数のプロセッサ・グループに配列された1つまたは複数の処理ユニットを有し、図に示されるように、プロセッサ・グループ10内に4つの処理ユニット11、21、31、41を含む。対称型マルチプロセッサ(SMP)実施形態では、処理ユニット11、21、31、41のすべてが一般に同一であり、すなわちそれらはすべて、動作のために命令およびプロトコルの同一のセットまたはサブセットを使用し、一般には同じアーキテクチャを有する。処理ユニット11で示されるように、各処理ユニットは、コンピュータを動作させるためにプログラム命令を実行する、1つまたは複数のプロセッサ・コア16a、16bを含むことができる。例示的処理ユニットは、インターナショナル・ビジネス・マシンズ・コーポレーションによって販売されているPOWER5(TM)プロセッサであり、これは、すべて集積回路によって形成された様々な実行ユニット、レジスタ、バッファ、メモリ、および他の機能ユニットを有する、単一集積回路のスーパースカラ・マイクロプロセッサを備える。プロセッサ・コアは、縮小命令セット・コンピューティング(RISC)技法に従って動作可能であり、スーパースカラ・アーキテクチャの性能をさらに向上させるために、命令のパイプライン化およびout−of−order実行の両方を使用可能である。
さらに図1に示されるように、各プロセッサ・コア16a、16bは、高速メモリ・デバイスから構築されるオンボード(L1)キャッシュ・メモリ19a、19b(典型的には別々の命令およびデータ・キャッシュ)を含む。キャッシュは一般に、システム・メモリ61から値をロードするステップが長くなるのを避けることによって処理を高速化するために、プロセッサによって繰り返しアクセスされる可能性のある値を一時的に格納するために使用される。処理ユニットは、キャッシュ・メモリ・コントローラ(図示せず)と共に、それぞれがコア16aおよび16bの一部であるL1キャッシュ19a、19bの両方をサポートする、第2レベル(L2)キャッシュ12などの他のキャッシュを含むことができる。ファブリック・バス50を介してアクセス可能なL3キャッシュ66などの、追加のキャッシュ・レベルを提供することができる。最高(L1)から最低(L3)までの各キャッシュ・レベルは、より多くの情報を連続して格納することができるが、アクセスが長いというペナルティがある。たとえば、プロセッサ・キャッシュ(たとえば16a)内のオンボードL1キャッシュ(たとえば19a)は、格納容量が128キロバイトのメモリを有する可能性があり、L2キャッシュ12は4メガバイトの格納容量を有する可能性があり、L3は132メガバイトの格納容量を有する可能性がある。欠陥のある処理ユニット構成要素の修理/交換を容易にするために、各処理ユニット11、21、31、41は、モジュラ様式で、システム100へのスワップ、インストール、またはシステム100からのスワップ・アウトが容易に実行可能な、交換可能回路ボード、プラグ可能モジュール、または同様のフィールド交換可能ユニット(FRU)の形で、構築することができる。
処理ユニットは、システム相互接続またはファブリック・バス50を介して、システム100の他の構成要素と通信する。ファブリック・バス50は、1つまたは複数のサービス・プロセッサ60、システム・メモリ・デバイス61、メモリ・コントローラ62、共有またはL3システム・キャッシュ、または、様々な周辺デバイス69、あるいはそれらすべてに接続される。プロセッサ・ブリッジ70は、追加のプロセッサ・グループを相互接続するために、オプションで使用可能である。図には示されていないが、データ処理システム100は、システムの基本入力/出力論理を格納し、コンピュータ・システムの電源が最初に投入された(ブートされた)場合に必ず、周辺装置のうちの1つからオペレーティング・システムを探し出してロードする、ファームウェアも含むことが可能であることを理解されよう。
図1に示されるように、データ処理システム100内の各コア(たとえば16a)は、各ステージが同時にタスクを実行できるように複数のパイプライン・ステージが提供されている、パイプライン型構造50を伴うように実装可能である。例示的実装では、パイプライン型構造50は、フェッチ・ステージ51、復号ステージ52、実行ステージ53、書き戻しステージ54、および完了ステージ55を含むことが可能であり、各ステージは1つまたは複数のユニットを含むことができる。パイプラインとして動作する場合、フェッチ・ステージ51は所与のサイクル内で1つまたは複数の命令を取り出し、同じサイクル中に、復号ステージ52は、以前のサイクルでフェッチされた命令を復号する。同時に、実行ステージ53は、以前にフェッチおよび復号された1つまたは複数の命令の結果を計算し、書き戻しステージ54は、以前のサイクルで実行ステージによって要求された任意のレジスタ書き戻し動作を実行し、完了ステージ55は、以前に実行された命令を考慮することによって正しいアーキテクチャ上のマシン状態を維持する。
システム・メモリ・デバイス61(ランダム・アクセス・メモリまたはRAM)は、オペレーティング・システム61Aおよびアプリケーション・プログラム61Bを含む、処理ユニットによって使用されるプログラム命令およびオペランド・データを、揮発性(一時)状態で格納する。加えて、性能モニタ・モジュール61Cは、オペレーティング・システム・モジュールまたはシステム・スーパーバイザなど、ハイパーバイザ構成要素などの、任意の所望の形で、システム・メモリ内に格納することが可能であり、パイプライン型構造50内で検出された性能またはスループット条件に応答して、プロセッサ・コアのパワー消費を最適化するために使用される。性能モニタ・モジュール61Cはシステム・メモリ内の機構として示されているが、当業者であれば、別の方法として、性能モニタ・モジュール61Cがデータ処理システム100の他の構成要素内で実装可能であること、または、性能モニタ・モジュールの個々のインスタンスが、各コアでのパワー損失を別々に制御するために、それぞれの処理コア内で実装可能であることを理解されよう。しかしながら、実装された場合、性能モニタ・モジュール61Cは、プログラム可能レジスタを含む、実行可能命令、コード、または制御論理、あるいはそれらすべてを使用して、いくつかのクロック・サイクル(またはウィンドウ)にわたる所与のパイプライン構造(たとえば8クロック・サイクル内の5イベント)について性能スループットをチェックすること、より低いスループット性能で動作している(たとえば停止していることによる)任意のパイプライン・ステージを検出すること、および、以下でより詳細に説明するように、パイプラインに対して既存の性能レベルを維持しながら、より低いパワー損失で動作する影響を受けるパイプライン・ステージ内で低性能モードまたは回路設計を選択することが可能である。
様々な実施形態では、性能モニタ・モジュールを使用して、スループット(または帯域幅)と待ち時間およびパワーとをトレードオフするように、プロセッサ・コア内の個々のパイプライン・ステージの性能レベルを監視および制御することができる。例示的実施形態は図2に示されており、ここでは、各パイプライン・ステージについてスループットを監視し、検出された個々のステージのスループットに基づいて個々のパイプライン・ステージのパワー消費を制御する、性能モニタ論理220を有する例示的プロセッサ・パイプライン200が、簡略化された概略図の形で示されている。複数のステージを含む任意の所与のパイプライン・アーキテクチャが使用可能である。たとえばパイプライン200は、命令をフェッチおよび転送する命令キャッシュ・フェッチ・ステージ202、フェッチされた命令を復号する命令復号ステージ204、実行および書き戻しフィードバックに基づいて復号された命令を実行する実行ステージ206、レジスタ・ファイルへの書き戻し動作を実行する書き戻しステージ208、ならびに、命令を完了する完了ステージ210を、含むことができる。図2に示されるように、プロセッサ・パイプライン200のフェッチ、復号、実行の発行(execution issue)、書き戻し、および完了の各ステージは、複数の動作モード、または、別々に選択可能な回路または論理、あるいはその両方を有する。たとえばパイプライン200は、(1)パイプライン化された2サイクルにわたってサイクルごとに4つの命令をフェッチすることができる、高パワー、高スループット・モード、および(2)パイプライン化された1サイクルにわたってサイクルごとに2つの命令をフェッチすることができる、低パワー、低スループット・モードなどの、少なくとも2つのモードを有するフェッチ・ステージ202を含むことができる。高パワー、高スループットのフェッチ・モードが第1のフェッチ回路202Aで実装可能である一方で、低パワー、低スループット・モードは第2のフェッチ回路202Bで実装可能である。加えて、復号ステージ204は、(1)パイプライン化された3サイクルにわたって4つの命令を復号する第1の復号回路204A、および(2)パイプライン化された1サイクルにわたって2つの命令を復号する第2の復号回路204Bなどの、2つまたはそれ以上の別々に選択可能な復号回路を有することができる。同様に、命令を実行するために、(1)2サイクルで1つの命令を実行する復号ユニットの2倍のクロック周波数で実行する第1の実行回路206A、および(2)4サイクルで1つの命令を実行する復号ユニットと同じクロック周波数で実行する第2の実行回路206Bなどの、別々に選択可能な回路、モード、あるいは論理、またはそれらすべてを、実行ステージ206で提供することができる。同様に、別々に選択可能な回路、モード、あるいは論理、またはそれらすべてを、レジスタ・ファイルへの様々な数および待ち時間の書き戻しを処理するために書き戻しステージ208へ、ならびに、様々な数および待ち時間の完了命令を処理するために完了ステージ210で、提供することができる。示されたそれぞれのステージでは、高パワー、高スループットの回路またはモードは接尾語「A」と共に示され、低パワー、低スループットの回路またはモードは接尾語「B」と共に示されている。
図2に示されるように、パイプライン・ステージ202、204、206、208、210のそれぞれが、性能モニタ論理220に送信されたサイクル当たりのスループット・カウントを検出することによって各パイプライン・ステージの性能を監視する、論理または回路あるいはその両方を有する。したがって、命令キャッシュ・フェッチ・ステージ202は、フェッチされて命令復号ステージ204に転送された、サイクル当たりの命令の数をカウントし、そのフェッチ・カウント213を性能モニタ220に提供する。同様に、命令復号ステージ204はサイクル当たりの復号イベントをカウントし、この復号カウント215を性能モニタ220に送信するが、実行ステージ206はサイクル当たりの実行イベントをカウントし、実行カウント217を性能モニタ220に提供する。同様に、書き戻しステージ208は、書き戻し動作の数に関する書き戻しカウント219を送信し、これが完了ステージ210に転送されるが、完了ステージ210は実行された完了の数をカウントし、この完了カウント221を性能モニタ220に提供する。熱センサによって生成可能であり、システムの現在のパワー損失状態を示す、パワー損失信号222も示される。信号222は、システムの様々な部分から生じる複数の信号を備えることができる。
パイプライン性能を監視するために任意の所望の技法が使用可能であるが、本発明の選択された諸実施形態は、カウント・ウィンドウ中の各ステージについて動作の数をカウントすることによって、個々のステージの性能を監視する。例示的実装は図3に示されており、ここでは、プログラム可能サイクル・ウィンドウ中にステージで発生したイベントの数をカウントするために各ステージに提供されるスループット・カウンタ300が、簡略化された形で示される。カウントするための任意の所望のウィンドウが使用可能であるが、図示されたスループット・カウンタ300は、8サイクル・シフト・レジスタ302を使用することによって、8サイクル・ウィンドウにわたってステージ・イベントをカウントする。プログラム可能シフト・レジスタ302は、ステージからイベント・カウント指標を受け取るために提供され、各イベント・カウント指標はカウンタ304によって維持される値に追加される。さらにカウンタ304は、レジスタ302からシフト・アウトされたイベント・カウントがカウンタ304から減じられるように、プログラム可能シフト・レジスタ302の出力に結合される。動作時には、シフト・レジスタ302の左端のレジスタ・ビットに入力されたイベント・カウントが、クロックの刻時ごとに次のレジスタ・ビットへとシフトされる。この配置構成では、カウンタ304は、ステージの数と、定常状態、高性能モードで動作する場合、クロック・サイクルごとにステージ内で発生する可能性のある最大イベント数とを掛けた数に等しい、イベント・カウントを出力することになる。たとえば、クロック・サイクルごとに4イベントが発生する可能性があり、レジスタ302が8ステージ長さである場合、最大カウンタ値は「32」とすることができる。しかしながら、ステージがクロック・サイクル中にいずれかのイベントの生成に失敗した場合、カウンタ304はより低いイベント・カウントを出力することになり、それによってそのステージに関するより低い性能スループット信号を発信する。このようにして、スループット・カウンタ300によって生成されるイベント・カウントは、スループット・カウンタ300によって監視されているステージの性能レベルの指標を提供する。
図2を再度参照すると、性能モニタ220はスループット・カウント213、215、217、219、221を使用して、最低の実行ステージの性能レベルに合致するように個々のパイプライン・ステージの性能を調整するために、1つまたは複数の信号を生成する。したがって、性能モニタ220が、プロセッサ・パイプラインのバックエンドが停止したこと(たとえば、未処理のロード・ミスの待機、分岐の誤予測、および実行ユニット待ち時間)をスループット・カウントから決定した場合、フロントエンド・ステージの性能を、高性能、高パワー消費モード(高性能フェッチ回路202Aを使用する)から、低性能、低パワー消費モード(低性能フェッチ回路202Bを使用する)へと切り替えることができる。このような場合、フロントエンドのフェッチ・ステージ202は、低性能回路202Bまたはモードを使用して、より少ない命令を一度に1つフェッチすることも可能であり、パイプラインのバックエンドが全体のスループットを制限しているため、パイプライン200全体に対して同じ性能結果がもたらされる。同様に、フロントエンド・ステージが停止した(たとえば、フェッチ・ステージ202が命令ミスで停止した)場合、後続の復号ステージ204は、復号された後に、フェッチ・ユニットの停止条件によってパイプ内にバブルが出現することになるため、必ずしも高性能、高パワー消費の復号回路204Aを使用し続けて、さらに下方のプロセッサ・パイプライン内で使用するために同じサイクル内で最大数の命令を復号するとは限らない。実行しても性能に影響がない場合、より低い性能の復号回路204Bを使用してより少ない命令を復号することによって、サイクル当たりのパワー損失を減らすことができる。同様に、停止したフロントエンド・ステージの性能レベルに合致させるために、他方のバックエンド・ステージを効果的にパワーダウンすることが可能であり、それによって、パイプライン全体のパワー消費が大幅に削減される。
選択された諸実施形態では、性能モニタ220は、すべてのステージにブロードキャストされる1つまたは複数のパワー・レベル信号224を生成するための制御論理を含む。事実上、制御論理は、スループット・カウント213、215、217、219、221を(単独で、またはプロセッサ・パイプライン200によって消費されているパワーの量を数値化するパワー損失信号222と組み合わせて)、パワー・レベル信号224に合体させる。性能モニタ220内の制御論理は、あるステージが他のステージに比べて低いスループットを有するかどうかを判別するため、および、パイプラインに関して最低のスループットを有するパイプライン・ステージを識別するために、スループット・カウントを使用するように構成することができる。低実行ステージが検出された場合、性能モニタ220内の制御論理は、各ステージに対してより低いパワーの回路または動作モードを選択することによって、最低実行ステージのスループットに合致するように個々のステージの性能を制御するために、1つまたは複数のパワー・レベル信号224を生成する。このようにしてパワー・レベル信号224は、各ステージが高パワー/高スループットまたは低パワー/低スループットのいずれかを提供するように、どの動作モードを使用するべきかをステージに示す。
性能モニタ制御論理を使用して、最低実行パイプライン・ステージの性能スループットに合致するように、個々のパイプライン・ステージのパワー消費を削減することができる。例示の目的で、パイプラインのスループット・カウントが、パイプラインの全体スループットを損なうことなくパワー・レベルを変更できるタイミングを決定するために、イベントしきい値を使用して個々のパイプライン・ステージに提供されるパワー・レベル信号を動的に再構成するための、オペレーティング・システムまたはシステム・スーパーバイザによって使用可能な擬似コードの例が以下に示される。擬似コードは、ソフトウェア、マイクロコード、またはハードウェア論理回路として実装可能である。この擬似コードは、1ステージ当たり1クロック・サイクル当たり4つのイベントが可能な、8サイクルのイベント・カウント・ウィンドウに適している可能性がある。
Figure 2009151778
このコード・シーケンスの例では、高パワー/高性能モードで個々のステージが完全に使用される時点(たとえば、ウィンドウ中のステージからのイベント・カウントが、12のHI_EVENT_THRESHを超えた時点)を定義するため、および、低パワー/低性能モードで個々のステージが完全に使用される時点(たとえば、ウィンドウ中のステージからのイベント・カウントが、16のLO_EVENT_THRESHに等しくなった時点)を定義するために、イベントしきい値が設定される。加えて、高パワー/高性能モードに戻すまでに、低パワー/低性能モードで、どれだけのクロック・サイクルの間、パイプラインを実行するべきかを定義するために、タイムアウト・カウンタしきい値(PL_COUNT_THRESH)が設定され、これによって、パイプラインがより高い全体スループットを有することが可能であるかどうかを判別するための機会がモニタに与えられる。各パイプライン・ステージからのイベント・カウント(たとえば、FetchEventCount、DecodeEventCount、ExecuteEventCount、WritebackEventCount、CompleteEventCount)が、高パワー・イベントしきい値(HI_EVENT_THRESH)と比較され、この比較の結果を使用して、パイプラインの実行を制御するために使用されるパワー・レベル(PL)論理ビットが生成される。図示されたコード・シーケンスでは、高パワー・モード(たとえばPL=1の場合)で動作しているパイプラインは、すべてのステージが高度に利用されていない(たとえば、ステージからのイベント・カウントが高パワー・イベントしきい値、HI_EVENT_THRESHよりも低い)場合、低パワー・モード(たとえばPL=0の場合)に切り替えられる。パイプラインが低パワー・モードに切り替えられた場合(!PL)、リセット・パワー・レベル・タイムアウト・カウンタ(PL_COUNT)が各クロック・サイクルと共に増分され、各パイプライン・ステージからのイベント・カウントは最大の低パワー・イベントしきい値(LO_EVENT_THRESH)と比較されるが、これは一実施形態では、8サイクル・ウィンドウにわたって、各サイクルで2つのイベントがカウントされていることを意味する。この比較が、パイプライン・ステージがそれらの低パワー/低性能モードで完全に使用されていること、および、パワー・レベル・タイムアウト・カウンタがタイムアウト・カウンタしきい値(PL_COUNT_THRESH)と一致するかまたはこれを超えていることを示す場合、高パワー・モードが選択される(PL=1)。システム・パワー損失信号(SYS_POWER)の使用法も示されており、システム熱センサまたは他の高パワー条件によって高(たとえばSYS_POWER=1)に設定されている場合、パワー・レベル信号を低(たとえばPL=0)のままで維持させ、これによってシステム・パワーが低下し、最終的に、パワー損失信号を低(たとえばSYS_POWER=0)に戻す。
個々のパイプライン・ステージの動作を制御するためのパワー・レベル(PL)信号の適用について、図4に示された例を参照しながら示すことが可能であり、この図では、1つまたは複数のパワー・レベル信号412がパイプライン・ステージ402、404、406、408、410に送られてステージの機能を制御する、プロセッサ・パイプライン400が、簡略化された概略図の形で示される。各ステージでは、第1の高パワー、高スループット・モードが第1の回路(接尾語「A」で示される)で実装可能であり、第2の低パワー、低スループット・モードが第2の回路(接尾語「B」で示される)で実装可能である。性能モニタが、完了ユニット410Aが、サイクルあたり平均2またはそれより少ない命令を完了したことを検出した場合、フェッチ、復号、書き戻し、および発行ユニットを高パワー/高スループット・モードで実行する理由がないため、そのステージに低パワー/低スループット・モードを使用することができる。これを実施するために、性能モニタは、完了ステージおよび他のステージに、低減モードまたは低パワー/低スループット・モードで実行を開始するよう命令するための、1つまたは複数のパワー・レベル信号412を発行する。パワー・レベル信号412がすべてのステージに送信される単一信号である実装例では、「低」パワー・レベル信号412を受け取ったステージは、その機能を実行するために低パワー・モードまたは低パワー回路を選択する。したがって、フェッチ・ステージ402Aが「低」パワー・レベル信号412を受け取った場合、このフェッチ・ステージは、(高パワー/高スループット・モードの場合に予定される)サイクル当たり4命令ではなく、サイクル当たり2命令のみがフェッチされるように、低パワー、低スループット回路402Bを使用するように再構成される。同様に、「低」パワー・レベル信号412を受け取る復号ステージ404Aは、2つの低パワー・デコーダ404Bを使用してサイクル当たり最大2命令のみを復号する、低パワー、低スループット・モードに再構成することができる。さらに、「低」パワー・レベル信号412が提供される場合、高性能実行ステージ406Aは、サイクル当たり2命令のみをスケジューリングするように、または低周波数モードで実行するように、低性能実行ステージ406Bとして再構成される。加えて、高パワー書き戻しステージ408Aは、サイクル当たり2命令のみを書き戻すように、低性能書き戻しステージ408Bとして再構成される。このようにして、完了ステージ410のスループットが、サイクル当たり2命令が完了されるまでパイプライン400に関する全体のワークロード実行特徴を低下させる場合、パイプラインの全体性能を劣化させることなく、完了ユニット410の性能レベルに合致するように、他のステージを「下方シフト」させることができる。
理解されるように、パイプライン・ステージは無期限に低性能、低パワー・モードのままとするべきではなく、プログラム実行の段階でワークロードの固有の命令レベル並列性(ILP)が向上する場合に発生するように、より高いスループットからワークロードが恩恵を受ける可能性があることが明らかな場合、パイプラインを高性能モードに戻すことができるメカニズムが提供されるべきである。これは、ステージが低パワー/低スループット・モードで動作する場合、ステージからのスループット・カウントを継続的に監視することによって実施可能である。その後、性能モニタ220(図2に示される)が、低パワー/低スループット・モードのステージが、低パワー/低スループット・モードであることが可能なサイクル当たり最大の命令処理使用率で、またはその付近で平均化していることを検出した場合、パイプライン・ステージを高性能、高パワー・モードに戻るように再構成することができる。このため性能モニタ220は、すべてのステージに、高パワー/高スループット・モードに切り替えるよう命令するための1つまたは複数のパワー・レベル信号224を発行することができる。高パワー/高スループット・モードに戻ると、性能モニタ224は、ワークロード特徴が変化したかどうか、および、ここでさらに命令を並列に処理できるかどうかを判別するために、各ステージからのスループット・カウントの監視を続行する。理解されるように、個々のステージは、同じサイクルまたは異なるサイクルでのモード間で切り替え可能であり、個々のパワー・レベル信号224によって別々に制御することが可能である。
パワー消費の削減に加えて、個々のステージに対してより低い性能回路を選択的に使用するための機能は、時には設計のための「欲張り(greedy)」手法と呼ばれる、最大性能実行用にのみ設計されたパイプライン・ステージに比べて、ある種のワークロードに関するワークロード性能を実際に向上させることができる。たとえば、単一サイクルで4つの命令を復号するように設計されたパイプライン型復号ステージは、2つの命令の復号よりも多くのクロック・サイクルを利用する可能性がある。このケースでは、ワークロードがサイクル当たり2つの命令のみの復号を必要とする場合、待ち時間の短いデコーダは待ち時間の長い(ただしスループットは高い)デコーダよりも動的に好ましいことになる。こうしたワークロードの例は、本来、低い命令レベル並列性(ILP)を有するものであり、ここではフルパワー/高スループットのプロセッサ・パイプラインの実行は不要であり、ユニット内の多くの待ち時間によって性能に悪影響を与え、不必要にパワーを要する可能性がある。
パワー・レベル信号をどのように使用して、高性能モードと低性能モードとを切り替えるように個々のプロセッサ・ステージを動的に再構成できるかを示すために、図5では、パワー・レベル信号に応答して高性能設計および低性能設計を別々に選択できる、実行ステージ500の例示的実装が示されている。図に示されるように、実行ステージ500は、第1の高パワー実行パイプライン回路520、第2の高パワー実行パイプライン回路522、低パワー実行パイプライン回路524、および構成可能実行パイプライン回路526を含む、複数の別々に選択可能な実行回路を含む。高パワー実行パイプライン520および522ならびに構成可能パイプライン526は、追加の回路または周波数倍増を使用し、大幅なパワー損失を犠牲にして、命令実行の待ち時間を減少させることができる。図に示されるように、実行スケジューラ510は、復号された命令501を受け取り、パワー・レベル信号502の値に応じて、実行回路520、522、524、526による実行のためにこの命令を選択的にルーティングする、スケジューリング論理512およびゲーティング論理514、516を含む。概して、パワー・レベル信号は、実行ステージ500が実行回路を使用して、高性能モード(結果としてより高いパワー損失を生じさせる)または低性能モード(結果としてより低いパワー損失を生じさせる)のどちらを実装するかを決定する。図5の単純な実装例で示されるように、「高」に設定され、ゲーティング論理514、516に適用される、単一のパワー・レベル・ビット502は、事実上、実行回路520、522、524、526のすべてを高性能モードの実行ステージ500によって使用可能にする。しかしながら、パワー・レベル・ビット502が「低」に設定された場合、ゲーティング論理514、516は、低パワー実行パイプライン回路524が低性能モードの実行ステージ500によって使用されるように、事実上、第1および第2の高パワー実行パイプライン回路520、522を使用禁止とする。高パワー実行パイプライン回路520、522を選択的に実行可能にすることに加えて、パワー・レベル・ビット502を使用して、構成可能実行ユニット526を別々に構成することができる。パワー・レベル・ビット502は、スケジューリングされた動作を制限するために、スケジューリング論理512内に組み込むこともできる。
もちろん、他の手法を使用して、その現在のスループット・レートを超えてパイプライン全体のスループットを低下させることなく、個々のパイプライン・ステージでのパワー消費および性能を低下させることが可能であることを理解されよう。たとえば個々のパイプライン・ステージは、各ステージのクロッキング・レートを低下させることによって抑制(throttle back)することができる。加えて、または別の方法では、個々のステージが重複リソース(たとえば、ある実行ステージ内の2つの浮動小数点ユニット)を含む場合、そのリソースのうちの1つのみを使用することによって、ステージはより低性能のモードに再構成することができる。
本発明の選択された諸実施形態についてさらに説明するために、図6には、個々のパイプライン・ステージの性能を監視するため、および、パイプライン・ステージを制御するために1つまたは複数のパワー・レベル・ビットを生成するための、例示的方法600の流れ図が示される。ステップ601で、プロセッサが高性能、高パワー・モードで構成されたパイプラインで動作している場合などに、プロセスが開始される。ステップ602で、パイプライン・スループットまたは性能が低下したことを検出するために、パイプライン性能が監視される。これは、時間ウィンドウ中にどれだけのステージ・イベントが発生するかをカウントまたは検出することによって、各ステージについて実行可能であり、このウィンドウは固定するか、またはプログラム可能に調整することができる。このようにして性能モニタは、カウント・ウィンドウ中のフェッチ・ステージで発生するフェッチ・イベントをカウントし、それとは別にカウント・ウィンドウ中の復号ステージで発生する復号イベントをカウントするという具合である。ステップ602の結果は、スループット・カウントまたはイベント・ウィンドウ・カウントが、各パイプライン・ステージについて測定されることである。ステップ603で、各ステージに対するイベント・ウィンドウ・カウントが、性能モニタ内の制御論理を使用して、所定のしきい値と比較される。この比較に基づいて、パイプライン動作を制御するためにパワー・レベル・ビットが生成される。この比較は、単一ステージからのイベント・ウィンドウ・カウントが第1のしきい値よりも低い場合、「低」パワー・レベル・ビットを生成する可能性があり、または、すべてのステージからのイベント・カウントが第1のしきい値よりも低いことを要求する可能性がある。これとは逆に、この比較は、すべてのステージからのイベント・ウィンドウ・カウントが第2のしきい値またはこの値よりも上である場合、「高」パワー・レベル・ビットを生成する可能性がある。ステップ604で、各ステージでどのようにリソースが使用されるかを制御するために、パワー・レベル・ビットがパイプライン・ステージに配布またはブロードキャストされる。ステップ604で、パワー・レベル・ビットが、より低い性能、より低いパワー・モードを実装すべきであることを示す場合、パイプライン・ステージ・リソースは、命令がフェッチ、復号、実行、書き戻し、および完了されるレートを低下させるように構成される。これとは逆に、ステップ604で、パワー・レベル・ビットが、より高い性能、高パワー・モードを実装すべきであることを示す場合、パイプライン・ステージ・リソースは、命令がフェッチ、復号、実行、書き戻し、および完了されるレートを増加させるように構成される。このようにして、方法600が経時的に繰り返されるにつれて、検出されたスループット・カウントを使用して、パイプライン性能(および付随するパワー消費)を低下または増加させるようにパワー・レベル・ビットが調整される。
以上、パイプライン型プロセッサ内の個々のステージのパワー消費を制御するための例示的実装を参照しながら説明してきたが、本明細書に開示された技法は、より広範囲に適用可能であることを理解されよう。たとえば、マルチコア・プロセッサ・システムを、マルチコア・プロセッサ・システムに関する全体のワークロード実行特徴に基づいて、第1の高性能モード(すべてのプロセッサ・コアが動作している)から、第2の低パワー性能モード(選択されたプロセッサ・コアのみが実行可能および動作可能である)へと、動的に再構成することができる。他の例では、そうでない場合はより高速の、よりパワーを必要とする専用グラフィクス・アクセラレータ回路によって処理されることになる、グラフィクス処理要件を処理するために、低性能モードの汎用プロセッサ・コアを選択することができる。
当業者であれば理解されるように、本発明は、全体としてまたは部分的に、方法、システム、またはコンピュータ・プログラム製品として具体化することができる。したがって本発明は、完全なハードウェア実施形態、完全なソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、あるいは、本明細書ではすべてが全体として「回路」、「モジュール」、または「システム」と呼ばれる場合のあるソフトウェア態様とハードウェア態様とを組み合わせた実施形態の、形を取ることができる。さらに本発明は、媒体内で具体化されたコンピュータ使用可能プログラム・コードを有する、コンピュータ使用可能記憶媒体上のコンピュータ・プログラム製品の形を取ることもできる。たとえば、マルチプロセッサ・システム内の各プロセッサ・コアは、検出されたパイプライン・スループットに基づいてパワー消費を減少させるようにパイプライン性能を再構成するための、その独自のプログラミング命令またはコードを有することができる。別の方法として、性能モニタ制御論理は、マルチプロセッサ・システム全体に対して単一の場所で中央に配置することができる。
前述の説明は、例示および説明のために提示されてきた。これは、本発明を網羅すること、または開示された精細な形に限定することを意図するものではない。前述の教示に鑑みて、多くの修正形態および変形形態が可能である。本発明の範囲は、この詳細な説明によってではなく、本明細書に添付された特許請求の範囲によって、限定されることが意図される。前述の仕様および例示的な実装は、本発明の構成物の製造および使用について完全に説明するものである。本発明の多くの実施形態は本発明の趣旨および範囲を逸脱することなく実行可能であるため、本発明は添付された特許請求の範囲内にあるものとする。
本発明の選択された諸実施形態が実装可能な、マルチプロセッサ・コンピュータ・アーキテクチャを示す図である。 いくつかのサイクルの定義されたウィンドウ内のイベントをカウントする性能モニタ論理を備えた、プロセッサ・パイプラインを簡略化された形で示す概略図である。 プログラム可能なサイクル・ウィンドウ内のイベントをカウントするためのカウンタを簡略化された形で示す図である。 1つまたは複数のパワー・レベル信号がパイプラインに送られ、ステージの機能を制御する、プロセッサ・パイプラインを簡略化された形で示す概略図である。 パワー・レベル信号に応答して、高性能設計および低性能設計を別々に選択することが可能な、実行ステージの例示的実装を示す図である。 個々のパイプライン・ステージの性能を監視するため、および、パイプライン・ステージを制御するために1つまたは複数のパワー・レベル・ビットを生成するための、例示的シーケンスを示す流れ図である。
符号の説明
200 プロセッサ・パイプライン
202 lcacheフェッチ
204 命令復号
206 実行
208 書き戻し
210 完了
213 フェッチ
215 復号
217 実行
219 書き戻し
220 性能モニタ
221 完了
222 パワー損失
224 パワー・レベル

Claims (12)

  1. パイプライン型プロセッサ内のパワー損失を制御するための方法であって、
    高性能モードで動作する対応する複数のパイプライン・ステージに関する複数のスループット・レートを測定するステップと、
    前記複数のスループット・レートのうちの1つまたは複数が、第1の所定のスループット・レートまで減少したことを検出するステップと、
    前記複数のスループット・レートが、前記第1の所定のスループット・レートまで減少したことを検出すると同時に、第1のパワー・レベル制御信号を前記複数のパイプライン・ステージに送信するステップと、
    前記第1のパワー・レベル制御信号に応答して、前記複数のパイプライン・ステージを低性能モードで動作するように再構成するステップであって、それにより前記複数のパイプライン・ステージによってパワー損失が減少する、再構成するステップと、
    を含む方法。
  2. 前記複数のスループット・レートが第2の所定のしきい値レートに一致するかまたは超えたことを検出するために、前記複数のパイプライン・ステージに関して前記複数のスループット・レートを監視するステップと、
    前記複数のスループット・レートが、第2の所定のしきい値レートに一致するかまたは超えたことを検出すると同時に、第2のパワー・レベル制御信号を前記複数のパイプライン・ステージに送信するステップと、
    前記第2のパワー・レベル制御信号に応答して、前記複数のパイプライン・ステージを高性能モードで動作するように再構成するステップと、
    を含む、請求項1に記載の方法。
  3. 複数のスループット・レートを測定するステップが、各パイプライン・ステージに関して、所定のウィンドウ中にどれだけのステージ・イベントが発生するかをカウントするステップを含む、請求項1に記載の方法。
  4. 前記複数のスループット・レートのうちの1つまたは複数が、第1の所定のスループット・レートまで減少したことを検出するステップが、前記複数のスループット・レートのうちの1つまたは複数を、所定の高性能スループットしきい値と比較するステップを含む、請求項1に記載の方法。
  5. 第1のパワー・レベル制御信号を送信するステップが、1ビットのパワー・レベル制御信号を前記複数のパイプライン・ステージにブロードキャストするステップを含む、請求項1に記載の方法。
  6. 第1のパワー・レベル制御信号を送信するステップが、別のパワー・レベル制御信号を前記複数のパイプライン・ステージそれぞれに送信するステップを含む、請求項1に記載の方法。
  7. 第1のパワー・レベル制御信号を送信するステップが、対応する複数のパイプライン・ステージのパワー損失モード、レベル、または回路を選択するために、複数のパワー・レベル制御信号を各ステージに送信するステップを含む、請求項1に記載の方法。
  8. 前記複数のパイプライン・ステージを再構成するステップが、前記第1のパワー・レベル制御信号に応答して、各ステージで第1の低パワー回路を選択するステップを含む、請求項1に記載の方法。
  9. パイプライン型プロセッサ内のパワー損失を制御するためのプログラムであって、前記プロセッサに、
    高性能モードで動作する対応する複数のパイプライン・ステージに関する複数のスループット・レートを測定するステップと、
    前記複数のスループット・レートのうちの1つまたは複数が、第1の所定のスループット・レートまで減少したことを検出するステップと、
    前記複数のスループット・レートが、前記第1の所定のスループット・レートまで減少したことを検出すると同時に、第1のパワー・レベル制御信号を前記複数のパイプライン・ステージに送信するステップと、
    前記第1のパワー・レベル制御信号に応答して、前記複数のパイプライン・ステージを低性能モードで動作するように再構成するステップであって、それにより前記複数のパイプライン・ステージによってパワー損失が減少する、再構成するステップと、
    を実行させるプログラム。
  10. データ処理システムであって、
    複数の回路モジュールを備えるプロセッサであって、各回路モジュールが、所定の回路動作を実行し、前記所定の回路動作を実行するための高パワー回路、および前記所定の回路動作を実行するための低パワー回路を備える、プロセッサと、
    前記プロセッサに結合されたデータ・バスと、
    コンピュータ・プログラム・コードを具体化するコンピュータ使用可能媒体であって、前記コンピュータ使用可能媒体は前記データ・バスに結合され、前記コンピュータ・プログラム・コードは、前記プロセッサによって実行可能であり、
    その高パワー回路を使用することによってそれぞれが動作する、対応する複数の回路モジュールに関する複数のスループット・レートを測定するステップと、
    前記複数のスループット・レートのうちの1つまたは複数が、第1の所定のスループット・レートまで減少したことを検出するステップと、
    前記複数のスループット・レートが、前記第1の所定のスループット・レートまで減少したことを検出すると同時に、第1のパワー・レベル制御信号を前記複数の回路モジュールに送信するステップと、
    前記第1のパワー・レベル制御信号に応答して、その低パワー回路を使用することによって各回路モジュールが動作するように、前記複数の回路モジュールを再構成するステップであって、それにより前記複数の回路モジュールによってパワー損失が減少する、再構成するステップと、
    によって、前記プロセッサ内のパワー損失を制御するために構成された、命令を備える、コンピュータ使用可能媒体と、
    を備える、データ処理システム。
  11. 前記複数のスループット・レートが第2の所定のしきい値レートに一致するかまたは超えたことを検出するために、前記複数の回路モジュールに関して前記複数のスループット・レートを監視するステップと、
    前記複数のスループット・レートが、第2の所定のしきい値レートに一致するかまたは超えたことを検出すると同時に、第2のパワー・レベル制御信号を前記複数の回路モジュールに送信するステップと、
    前記第2のパワー・レベル制御信号に応答して、その高パワー回路を使用することによって各回路モジュールが動作するように、前記複数の回路モジュールを再構成するステップと、
    によって、前記プロセッサ内のパワー損失を制御するために構成された、命令をさらに備える、請求項10に記載のデータ処理システム。
  12. 前記複数の回路モジュールが、プロセッサ・コア内に複数のパイプライン型プロセッサ・ステージを備える、請求項10に記載のデータ処理システム。
JP2008316674A 2007-12-19 2008-12-12 ワークロード実行特徴に基づく性能低下のない低パワーのための動的なプロセッサを再構成するための方法、プログラム、およびシステム Expired - Fee Related JP5336830B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/960163 2007-12-19
US11/960,163 US7962770B2 (en) 2007-12-19 2007-12-19 Dynamic processor reconfiguration for low power without reducing performance based on workload execution characteristics

Publications (2)

Publication Number Publication Date
JP2009151778A true JP2009151778A (ja) 2009-07-09
JP5336830B2 JP5336830B2 (ja) 2013-11-06

Family

ID=40790091

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008316674A Expired - Fee Related JP5336830B2 (ja) 2007-12-19 2008-12-12 ワークロード実行特徴に基づく性能低下のない低パワーのための動的なプロセッサを再構成するための方法、プログラム、およびシステム

Country Status (3)

Country Link
US (1) US7962770B2 (ja)
JP (1) JP5336830B2 (ja)
CN (1) CN101464721B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110080540A (ko) * 2010-01-06 2011-07-13 삼성전자주식회사 컴퓨팅 시스템 및 방법
KR20150054152A (ko) * 2013-11-11 2015-05-20 삼성전자주식회사 대칭형 다중 프로세서를 구비한 시스템 온-칩 및 이를 위한 최대 동작 클럭 주파수 결정 방법

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409315B2 (en) * 2004-06-28 2008-08-05 Broadcom Corporation On-board performance monitor and power control system
US20090182986A1 (en) * 2008-01-16 2009-07-16 Stephen Joseph Schwinn Processing Unit Incorporating Issue Rate-Based Predictive Thermal Management
US8010822B2 (en) * 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
US8296773B2 (en) * 2008-06-30 2012-10-23 International Business Machines Corporation Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance
CN101620462A (zh) * 2008-07-03 2010-01-06 鸿富锦精密工业(深圳)有限公司 计算机装置
US8219831B2 (en) 2009-01-28 2012-07-10 Oracle America, Inc. Reducing temperature and power by instruction throttling at decode stage of processor pipeline in time constant duration steps
US20110022870A1 (en) * 2009-07-21 2011-01-27 Microsoft Corporation Component power monitoring and workload optimization
US8918194B2 (en) 2010-03-31 2014-12-23 Panasonic Corporation Mounting-line power control device and mounting-line power control method
US8868944B2 (en) * 2010-04-06 2014-10-21 Ati Technologies Ulc Computing center power and cooling control apparatus and method
WO2012036954A2 (en) * 2010-09-15 2012-03-22 Rambus Inc. Scheduling amongst multiple processors
US8812825B2 (en) * 2011-01-10 2014-08-19 Dell Products L.P. Methods and systems for managing performance and power utilization of a processor employing a fully multithreaded load threshold
CN103210680B (zh) * 2011-11-16 2016-08-24 华为技术有限公司 带宽调整方法、发送芯片及系统
CN102411492B (zh) * 2011-11-25 2014-04-23 北京创毅视讯科技有限公司 一种数据处理的方法和装置
JP5725213B2 (ja) * 2012-01-31 2015-05-27 日本電気株式会社 情報処理装置、及び情報処理装置の使用電力算出方法
US9009506B2 (en) * 2012-03-01 2015-04-14 Nxp B.V. Energy efficient microprocessor platform based on instructional level parallelism
US9442732B2 (en) 2012-03-19 2016-09-13 Via Technologies, Inc. Running state power saving via reduced instructions per clock operation
JP2013205905A (ja) * 2012-03-27 2013-10-07 Fujitsu Ltd 演算処理装置及び演算処理装置の制御方法
WO2014006451A1 (en) 2012-07-03 2014-01-09 Freescale Semiconductor, Inc. Data path configuration component, signal processing device and method therefor
US8959371B2 (en) 2012-07-17 2015-02-17 Freescale Semiconductor, Inc. Techniques for reducing processor power consumption through dynamic processor resource allocation
US8966296B2 (en) * 2012-07-17 2015-02-24 Hewlett-Packard Development Company, L.P. Transitioning a performance state of a processor
US10025686B2 (en) * 2012-10-30 2018-07-17 Intel Corporation Generating and communicating platform event digests from a processor of a system
US9164570B2 (en) * 2012-12-13 2015-10-20 Advanced Micro Devices, Inc. Dynamic re-configuration for low power in a data processor
US9348402B2 (en) 2013-02-19 2016-05-24 Qualcomm Incorporated Multiple critical paths having different threshold voltages in a single processor core
US9170642B2 (en) 2013-03-21 2015-10-27 Applied Micro Circuits Corporation Dynamic power control
US9305632B2 (en) * 2013-04-29 2016-04-05 Qualcomm Incorporated Frequency power manager
US9330011B2 (en) 2013-09-20 2016-05-03 Via Alliance Semiconductor Co., Ltd. Microprocessor with integrated NOP slide detector
US10019260B2 (en) 2013-09-20 2018-07-10 Via Alliance Semiconductor Co., Ltd Fingerprint units comparing stored static fingerprints with dynamically generated fingerprints and reconfiguring processor settings upon a fingerprint match
US10043230B2 (en) * 2013-09-20 2018-08-07 Nvidia Corporation Approach to reducing voltage noise in a stalled data pipeline
US9965279B2 (en) * 2013-11-29 2018-05-08 The Regents Of The University Of Michigan Recording performance metrics to predict future execution of large instruction sequences on either high or low performance execution circuitry
US9755902B2 (en) * 2014-05-20 2017-09-05 Via Alliance Semiconductor Co., Ltd. Dynamic system configuration based on cloud-collaborative experimentation
US9575778B2 (en) 2014-05-20 2017-02-21 Via Alliance Semiconductor Co., Ltd. Dynamically configurable system based on cloud-collaborative experimentation
MX2016015355A (es) * 2014-06-04 2017-04-13 Nexpack Ltd Plataforma energizada por bateria para modulos intercambiables.
US9870226B2 (en) 2014-07-03 2018-01-16 The Regents Of The University Of Michigan Control of switching between executed mechanisms
US10254814B2 (en) * 2014-09-04 2019-04-09 Hewlett Packard Enterprise Development Lp Storage system bandwidth determination
US9569221B1 (en) * 2014-09-29 2017-02-14 Amazon Technologies, Inc. Dynamic selection of hardware processors for stream processing
CN104317557B (zh) * 2014-10-27 2017-01-18 杭州中天微系统有限公司 基于流水线轮动的低峰值功耗嵌入式处理器
GB2539038B (en) * 2015-06-05 2020-12-23 Advanced Risc Mach Ltd Processing pipeline with first and second processing modes having different performance or energy consumption characteristics
GB2539037B (en) * 2015-06-05 2020-11-04 Advanced Risc Mach Ltd Apparatus having processing pipeline with first and second execution circuitry, and method
US10635446B2 (en) 2015-09-24 2020-04-28 Qualcomm Incorporated Reconfiguring execution pipelines of out-of-order (OOO) computer processors based on phase training and prediction
CN108293317B (zh) * 2015-11-27 2019-11-01 株式会社富士 元件供给装置的电源控制装置及电源控制方法
US10417729B2 (en) * 2016-02-12 2019-09-17 Intel Corporation Graphics hardware bottleneck identification and event prioritization
US10310858B2 (en) * 2016-03-08 2019-06-04 The Regents Of The University Of Michigan Controlling transition between using first and second processing circuitry
US20180032418A1 (en) * 2016-08-01 2018-02-01 Futurewei Technologies, Inc. Application-Specific, Performance-Aware Energy Optimization
GB2555586B (en) * 2016-10-31 2019-01-02 Imagination Tech Ltd Performance profiling in a graphics unit
US10423209B2 (en) 2017-02-13 2019-09-24 Apple Inc. Systems and methods for coherent power management
US10613866B2 (en) * 2017-04-04 2020-04-07 The Regents Of The University Of Michigan Method of detecting repetition of an out-of-order execution schedule, apparatus and computer-readable medium
US10325341B2 (en) 2017-04-21 2019-06-18 Intel Corporation Handling pipeline submissions across many compute units
US10761589B2 (en) 2017-04-21 2020-09-01 Intel Corporation Interconnect fabric link width reduction to reduce instantaneous power consumption
US11232014B2 (en) * 2018-04-30 2022-01-25 Hewlett-Packard Development Company, L.P. Countermeasure implementation for processing stage devices
CN109388429B (zh) * 2018-09-29 2024-01-02 古进 Mhp异构多流水线处理器的任务分发方法
CN109542517B (zh) * 2018-11-28 2023-07-18 中国电子科技集团公司第四十七研究所 一种基于指令载荷的流水线动态配置系统及方法
CN109785224B (zh) * 2019-01-29 2021-09-17 华中科技大学 一种基于fpga的图数据处理方法和系统
CN110045989B (zh) * 2019-03-14 2023-11-14 合肥雷芯智能科技有限公司 一种动态切换式低功耗处理器
US11455195B2 (en) 2020-01-03 2022-09-27 International Business Machines Corporation Workload-based cognitive dynamic computing system optimization
CN113535508B (zh) * 2021-06-05 2022-03-18 复旦大学 一种面向risc-v众核处理器的功耗监测电路
TWI792546B (zh) * 2021-09-09 2023-02-11 瑞昱半導體股份有限公司 用於管線化控制的設備以及方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161383A (ja) * 1997-09-05 1999-06-18 Texas Instr Inc <Ti> オンチップ・アクティビティに応答してマイクロプロセッサの電力消費を調節するためのマイクロプロセッサ回路、システム、及び方法
JP2000047872A (ja) * 1998-08-03 2000-02-18 Hitachi Ltd 低消費電力動作機能を備えたマイクロプロセッサ
JP2000322259A (ja) * 1999-05-11 2000-11-24 Hitachi Ltd データ処理装置
US20030126478A1 (en) * 2001-12-28 2003-07-03 Burns James S. Multiple mode power throttle mechanism
JP2006059068A (ja) * 2004-08-19 2006-03-02 Matsushita Electric Ind Co Ltd プロセッサ装置
WO2006037119A2 (en) * 2004-09-28 2006-04-06 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US20060224873A1 (en) * 2005-03-31 2006-10-05 Mccormick James E Jr Acquiring instruction addresses associated with performance monitoring events
JP2007148952A (ja) * 2005-11-30 2007-06-14 Renesas Technology Corp 半導体集積回路

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785826B1 (en) * 1996-07-17 2004-08-31 International Business Machines Corporation Self power audit and control circuitry for microprocessor functional units
US6820209B1 (en) * 1999-07-15 2004-11-16 Apple Computer, Inc. Power managed graphics controller
US6651176B1 (en) * 1999-12-08 2003-11-18 Hewlett-Packard Development Company, L.P. Systems and methods for variable control of power dissipation in a pipelined processor
US7017060B2 (en) 2001-03-19 2006-03-21 Intel Corporation Power management system that changes processor level if processor utilization crosses threshold over a period that is different for switching up or down
EP1554647A1 (en) * 2002-10-11 2005-07-20 Koninklijke Philips Electronics N.V. Vliw processor with power saving
US7167989B2 (en) * 2003-10-14 2007-01-23 Intel Corporation Processor and methods to reduce power consumption of processor components
US7797561B1 (en) * 2006-12-21 2010-09-14 Nvidia Corporation Automatic functional block level clock-gating

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161383A (ja) * 1997-09-05 1999-06-18 Texas Instr Inc <Ti> オンチップ・アクティビティに応答してマイクロプロセッサの電力消費を調節するためのマイクロプロセッサ回路、システム、及び方法
JP2000047872A (ja) * 1998-08-03 2000-02-18 Hitachi Ltd 低消費電力動作機能を備えたマイクロプロセッサ
JP2000322259A (ja) * 1999-05-11 2000-11-24 Hitachi Ltd データ処理装置
US20030126478A1 (en) * 2001-12-28 2003-07-03 Burns James S. Multiple mode power throttle mechanism
JP2006059068A (ja) * 2004-08-19 2006-03-02 Matsushita Electric Ind Co Ltd プロセッサ装置
WO2006037119A2 (en) * 2004-09-28 2006-04-06 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US20060224873A1 (en) * 2005-03-31 2006-10-05 Mccormick James E Jr Acquiring instruction addresses associated with performance monitoring events
JP2007148952A (ja) * 2005-11-30 2007-06-14 Renesas Technology Corp 半導体集積回路

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110080540A (ko) * 2010-01-06 2011-07-13 삼성전자주식회사 컴퓨팅 시스템 및 방법
KR101658792B1 (ko) 2010-01-06 2016-09-26 삼성전자주식회사 컴퓨팅 시스템 및 방법
KR20150054152A (ko) * 2013-11-11 2015-05-20 삼성전자주식회사 대칭형 다중 프로세서를 구비한 시스템 온-칩 및 이를 위한 최대 동작 클럭 주파수 결정 방법
KR102189115B1 (ko) * 2013-11-11 2020-12-09 삼성전자주식회사 대칭형 다중 프로세서를 구비한 시스템 온-칩 및 이를 위한 최대 동작 클럭 주파수 결정 방법

Also Published As

Publication number Publication date
JP5336830B2 (ja) 2013-11-06
CN101464721A (zh) 2009-06-24
CN101464721B (zh) 2012-02-01
US7962770B2 (en) 2011-06-14
US20090164812A1 (en) 2009-06-25

Similar Documents

Publication Publication Date Title
JP5336830B2 (ja) ワークロード実行特徴に基づく性能低下のない低パワーのための動的なプロセッサを再構成するための方法、プログラム、およびシステム
US8001394B2 (en) Method and system of multi-core microprocessor power management and control via per-chiplet, programmable power modes
US9606797B2 (en) Compressing execution cycles for divergent execution in a single instruction multiple data (SIMD) processor
JP4811879B2 (ja) 最大パワーを制御するためのマイクロプロセッサ・リソースの相互排除アクティブ化のためのシステム及び方法
TWI494850B (zh) 通透地提供給作業系統之非對稱多核心處理器系統
TWI455022B (zh) 提高處理器中渦輪加速模式之操作的電源效率之設備、方法及系統
JP4898687B2 (ja) 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置
TWI512448B (zh) 用以啟用處理器等待狀態之指令
CN105144082B (zh) 基于平台热以及功率预算约束,对于给定工作负荷的最佳逻辑处理器计数和类型选择
US8230176B2 (en) Reconfigurable cache
GB2497443B (en) Processor power management based on class and content of instructions
US10078518B2 (en) Intelligent context management
US8370671B2 (en) Saving power by powering down an instruction fetch array based on capacity history of instruction buffer
WO2009006607A1 (en) Dynamically composing processor cores to form logical processors
WO2013137862A1 (en) Dynamically controlling interconnect frequency in a processor
US10515611B2 (en) Performance-based graphics processing unit power management
WO2004095245A2 (en) A method and circuitry for managing power in a simultaneous multithread processor
US10102003B2 (en) Intelligent context management
US20110258419A1 (en) Attaching And Virtualizing Reconfigurable Logic Units To A Processor
JP2010061642A (ja) スレッドのスケジューリングテクニック
Mehta et al. Fetch halting on critical load misses
JP5474926B2 (ja) 電力アウェア・リタイヤメント
Kaxiras et al. Optimizing capacitance and switching activity to reduce dynamic power

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130423

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130703

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130716

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130802

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees