JP2005071365A - アプリケーションプログラムの特性に基づくバスクロック周波数管理 - Google Patents

アプリケーションプログラムの特性に基づくバスクロック周波数管理 Download PDF

Info

Publication number
JP2005071365A
JP2005071365A JP2004241248A JP2004241248A JP2005071365A JP 2005071365 A JP2005071365 A JP 2005071365A JP 2004241248 A JP2004241248 A JP 2004241248A JP 2004241248 A JP2004241248 A JP 2004241248A JP 2005071365 A JP2005071365 A JP 2005071365A
Authority
JP
Japan
Prior art keywords
electronic device
frequency
clock frequency
clock
devices
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.)
Pending
Application number
JP2004241248A
Other languages
English (en)
Inventor
Andrew H Barr
アンドリュー・エイチ・バール
Ricardo Espinoza-Ibarra
リカルド・エスピノザ−イバラ
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2005071365A publication Critical patent/JP2005071365A/ja
Pending legal-status Critical Current

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/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

【課題】システムの電力/熱バジェットを超えることなく、デバイスの性能を最適化できるようクロック速度を制御する。
【解決手段】様々な要因及び目的に基づいて、システム内の各デバイス(146〜156,106〜108)又はバス(110〜118,124)に対する、或いは複数のデバイス又はバスに対するクロック周波数を自動的に選択する(408,506,708,810,812)周波数マネージャ(158,180,200)である。これらの要因及び目的は、システムの電力/熱バジェットを超えることなくデバイスの性能を最適化することを含むことができる。該周波数マネージャは、従って、これらのデバイス又はバスに対する選択された周波数(複数可)を有するクロック信号を生成し提供する回路(120,182,212)を制御する(410,508,710,814)ことができる。例えばデバイスがフル実装されているわけではないシステム内において、本発明の実施例はフル実装されたシステムが利用する周波数よりも高いクロック周波数を選択することができる(408)。
【選択図】図1A

Description

本発明は、一般にコンピュータバスに対するクロック信号を生成するための装置及び方法に関し、特に、コンピュータシステムの電力バジェット(又はパワーバジェット、又は電力収支、(power budget))、又は熱バジェット(又はサーマルバジェット、又は熱収支、(thermal budget))を超えることなくコンピュータデバイスの性能を最適化するために、該クロック信号のための周波数を選択する装置及び方法に関する。
本明細書は、下記の同一出願人に所有された米国特許出願に関連する。
すなわち、2003年8月22日に発明者Andrew H. Barr、Ricardo Espinoza-Ibarra、及びKevin Somervillによって出願された「BUS CLOCK FREQUENCY MANAGEMENT BASED ON DEVICE BANDWIDTH CHARACTERISTICS」と題する米国特許出願第10/646,099号、並びに2003年8月22日に発明者Andrew H. Barr、 Ricardo Espinoza-Ibarra、及びKevin Somervillによって出願された「BUS CLOCK FREQUENCY MANAGEMENT BASED ON DEVICE LOAD」と題する米国特許出願第10/646,079号に関連するものである。
プロセッサ、メモリ、及びグラフィックコントローラのような多くの電子デバイスの性能は、これらのデバイスが動作するクロック周波数に依存する。このようなデバイスは典型的には、デバイスにクロック信号を提供するバス又は他の回路に接続される。クロック信号は典型的には、正確にタイミングがとられた方形波パルスの列である。バスのクロック周波数は一般に「バス速度」と呼ばれ、2つの連続するクロックパルス間の期間は、一般に「クロックサイクル」又は「バスサイクル」と呼ばれる。
クロック信号は、デバイスが動作する速度を決定する。典型的にはデバイスは、1クロックサイクル当たりに、固定数の動作を実行する。例えば、プロセッサによっては、4といったような固定された係数により、クロック信号を内部で乗算するものもあるが、クロック信号が、プロセッサが命令を実行する周波数を決定する。同様に、クロック信号は、メモリ、ネットワークインターフェース、ディスクコントローラ、又は他の周辺デバイスに、データを送ることができるか、又はメモリ、ネットワークインターフェース、ディスクコントローラ、又は他の周辺デバイスからデータを取り出すことができる周波数を決定し、従って、デバイスの「帯域幅」を決定する。例えば、メモリが32ビット(4バイト)のデータを一度に受け入れることができるか、又は提供することができ、且つ、そのクロック周波数が200MHzの場合には、メモリの帯域幅は4バイト×200MHz=800Mバイト/秒となる。同様の解析が他のデバイスにも当てはまる。従って一般に、電子デバイスは、より高いクロック周波数又はバス速度で動作する時に、より高い性能を発揮する。より高いクロック周波数で動作するデバイスの製造を可能にする技術の進歩と併せて、絶えず増大している性能レベルの市場需要によって、時が経つにつれて次第により高いデバイスクロック周波数を使用されるようになってきた。
電子デバイスは電力を消費し、熱を放出する。過剰の熱は電子デバイスにダメージを与える可能性があるため、これらデバイスを十分に冷却しなければならない。従って放熱は、特に高密度なシステム内に問題をもたらす。不都合なことに、一般にクロック速度がより高くなるにつれ、電子デバイスにより多くの電力を消費させ、より多く放熱させる。例えば、CMOSノード(電子デバイス内の一般的な構成要素)は、バイナリ状態を変化させる時には常に、その負荷容量を充電又は放電しなければならず、それにより、電流が消費されるか、又は熱の形で蓄えられたエネルギーのうちのいくらかを失う。電子デバイス内のCMOSノードが状態を変更させる速度は、デバイスの動作周波数に関連付けられるため、このようなデバイスによる動的電力消費及び放熱は、一般にデバイスのクロック周波数に比例する。
システムは典型的には、電力/熱バジェット内で動作するように設計される。すなわち、各システムは、これらデバイスによる総計で、所定の最大電力量までをシステム内のデバイスに提供するように、且つ、所定の最大発熱量までを放熱するように設計される。PCIスロット、AGPスロット、又はメモリソケットのような零か又は1つ以上の拡張モジュールを選択的に実装(又は装填)することができる拡張スロットを有するシステムは、典型的には、「ワーストケース」のシナリオ、すなわち、全ての拡張スロットがフル実装されるシナリオを想定した電力/熱バジェットを用いて設計される。例えば、このようなシステムは典型的には、拡張スロット内に実装される可能性のある最大数の拡張モジュールを処理することができる電源を備える。更に、バス速度は、全ての拡張スロットが実装された場合であっても、システムの熱バジェットを越えないようにセットされる。
この保守的な設計哲学は、特にシステムが拡張モジュールによってフル実装されているわけではない場合に、実装されたデバイスのクロック速度を、従って性能を、人為的に制限する。いくつかの又は全ての実装されたデバイスによる潜在的な性能は、無視される。何故ならば、拡張モジュールによってフル実装されているわけではないシステム内において、実装されたデバイスの少なくともいくつかは、システムの電力バジェット又は熱バジェットを超えることなく、より高いクロック周波数で動作するかもしれないからである。従って購入者は、高い性能を引き出すことが可能なデバイスに対して割増料金を払っているにも関わらず、従来技術の設計哲学は、購入者がこういったデバイスの潜在的な性能から十分に利益を得ることを妨げている。
本発明の一態様において、第1の電子デバイスに対するクロック周波数と、第2の電子デバイスに対するクロック周波数とを決定する方法であって、第1及び第2の電子デバイスは、零か又は1つ以上の他の電子デバイスと共にシステムに実装されており、第1の電子デバイスは、第1のバスに接続されており、第2の電子デバイスは、第2のバスに接続されており、システムは、アプリケーションプログラムを実行することが可能となっていることからなる、方法が開示される。本方法は、少なくともアプリケーションプログラムについての情報に基づいて、第1の電子デバイスに対する第1のクロック周波数と、第2の電子デバイスに対する第2のクロック周波数とを自動的に選択するステップを含む。
本発明の他の態様おいて、製品が開示される。該製品は、第1の電子デバイスに対するクロック周波数と第2の電子デバイスに対するクロック周波数とを決定することができるコンピュータ実行可能命令を格納するコンピュータが読み出し可能な媒体を備え、該第1の電子デバイスと該第2の電子デバイスとは、零か又は1つ以上の他の電子デバイスと共にシステム内に実装されており、前記第1の電子デバイスは、第1のバスに接続されており、前記第2の電子デバイスは、第2のバスに接続されており、該システムはアプリケーションプログラムを実行することが可能となっている。コンピュータ実行可能命令はまた、少なくともアプリケーションプログラムについての情報に基づいて、第1の電子デバイスに対する第1のクロック周波数と、第2の電子デバイスに対する第2のクロック周波数とを自動的に選択することも可能である。
本発明の更に他の態様において、第1の電子デバイスに対するクロック周波数と第2の電子デバイスに対するクロック周波数とを決定するための周波数マネージャであって、該第1及び第2の電子デバイスは、零か又は1つ以上の他の電子デバイスと共にシステム内に実装されており、該第1の電子デバイスは、第1のバスに接続されており、該第2の電子デバイスは、第2のバスに接続されており、該システムは、アプリケーションプログラムを実行することが可能となっていることからなる周波数マネージャが開示される。該周波数マネージャは、少なくともアプリケーションプログラムについての情報に基づいて、第1の電子デバイスに対する第1のクロック周波数と、第2の電子デバイスに対する第2のクロック周波数とを自動的に選択する周波数計算機を備える。周波数マネージャはまた、周波数計算機と、第1のクロック信号発生器と、第2のクロック周波数発生器とに接続されたインターフェースを備える。該インターフェースは、第1のクロック周波数でクロック信号を生成するためにコマンドを第1のクロック信号発生器に送ることができ、第2のクロック周波数でクロック信号を生成するためにコマンドを第2のクロック周波数発生器に送ることができる。
システムの電力/熱バジェットを超えることなくクロック速度(複数可)を制御することで、デバイスの性能を最適化できる。
本発明のこれらの及び他の特徴及び利点、並びに本発明の様々な実施形態の構成及び動作は、添付図面を参照して下記に詳細に説明される。図面内では、同じ参照番号は、同一の又は機能的に類似の要素を示し、各アイテムの各参照番号の最初の一桁は、そのアイテムが最初に紹介された図を特定する。
本発明は、システムの電力/熱バジェットを超えることなく、デバイスの性能を最適化するために、システム内の1つ又は複数のデバイスに対する(本明細書においては「クロック周波数(複数可)」とも呼ぶ)クロック速度(複数可)を決定し、制御するための装置及び方法を提供する。デバイスは、ソケットにプラグイン接続される拡張カード又は拡張モジュール、回路基板に恒久的に接続される又はソケットにプラグイン接続されるディスクリート回路又は集積回路、ドーターカード、プロセッサ、メモリ、又はそれに類するもの、又はこれらの組み合わせとすることができる。これらのデバイスは典型的には、クロック信号をデバイスに提供するバス又は他の回路(下記ではまとめて「バス」と呼ばれる)に接続され、このクロック信号が、これらのデバイスが動作する速度、従って、これらデバイスが消費する電力量と、これらデバイスの放熱量とを決定する。本発明の実施形態は、様々な要因及び目的に基づいて、各デバイス又はバスに対する、或いは複数のデバイス又はバスに対するクロック周波数を自動的に選択するために、「周波数マネージャ」及び関連付けられた構成要素、並びに方法を提供する。これらの周波数マネージャ、関連付けられた構成要素、及び方法は従って、選択された周波数(複数可)を有するクロック信号を生成し、これらのデバイス又はバスに提供する回路を制御することができる。
該要因及び目的を、従来技術の保守的な「ワーストケース」の設計哲学を使用して達成できること以上に、システム内のデバイスの性能を最適化するために使用することができる。例えば、デバイスがフル実装されているわけではないシステム内において、本発明の実施形態は、フル実装されたシステムが利用するクロック周波数よりも、より高いクロック周波数を選択することができる。本発明の実施形態によっては、狭帯域のデバイスに対するよりも、広帯域のデバイスに対してより高いクロック周波数を選択するものもあれば、どのデバイスをこれらのアプリケーションプログラムが頻繁にアクセスするかといったような、システムによって実行されるアプリケーションプログラムについての情報を使用して、頻繁にアクセスされるデバイスに対してより高いクロック周波数を選択するものもある。更に他の実施形態では、アプリケーションプログラムがよりメモリを多用するか、それともよりI/Oデバイスを多用するかどうかについての情報を用いて、メモリサブシステム、或いはI/Oサブシステムのいずれかに、より高いクロック周波数を割り振る。
システムのデバイスによって安全に放熱されることができる総熱量は、システムの熱バジェットとして知られている。システムデバイスに、総計でシステムの熱バジェットに等しい熱量を放熱させるクロック速度のセットは、システムの「クロック速度バジェット」として考えることができる。デバイスの放熱は、そのクロック速度に比例するため、システムの熱バジェットはシステムのクロック速度バジェットと等価である。熱バジェットのように、クロック速度バジェットをシステムのデバイス間に割り振ることができる。すなわち、異なるデバイスを、異なるクロック速度で動作させることが可能である。個々のデバイスは、相対的により高い又は低いクロック速度で動作されることができるため、システムの熱バジェット又はクロック速度バジェットをより多く、又はより少なく消費するが、全てのデバイスによる総消費量はバジェットを超えるべきではない。
システムによってそのデバイスに提供されることのできる総電力量は、システムの電力バジェットとして知られている。デバイスの電力消費量はそのクロック速度に比例するため、システム内のデバイスのクロック速度は、デバイスが全体としてシステムの電力バジェットを超えないように選択されるべきである。
システムの電力バジェットを、システムの電源及びシステムの冷却システムの相対的な容量に依存して、システムの熱バジェットよりも大きくすることもできるし、又は小さくすることもできる。従って、これらバジェットの一方が他方を超えるということを前提としないで、システムのデバイスが動作すべきクロック速度を決定する時に、システムの熱バジェットとシステムの電力バジェットとの両方が好ましくは考慮されるべきである。本発明の実施形態は、本質的には、デバイス(複数可)、バス(複数可)、或いは1つ又は複数のデバイス又はバスのグループ(複数可)に対するクロック速度を指定することにより、システムの熱バジェット、電力バジェット、又は両方の一部を、各デバイス又はバスに、或いは1つ又は複数のデバイス又はバスのグループに割り振る。
一例を提供する目的で、本発明は、サーバ又はワークステーションとして使用されることができるような汎用コンピュータに関連して記載される。しかしながら、当業者であれば、本明細書における教示を、他の状況にも適用することができる。その状況においては、デバイス、メモリユニット又はバスは、上記又は下記に例が提示されているクロック周波数で動作する。
図1Aは、本発明の一実施形態が、どのように有利に実施されることができるかを示すための例示的なコンピュータ100のブロック図を含む。コンピュータ100は、1つ又は複数のプロセッサ102及び104、1つ又は複数のメモリユニット106及び108、並びに1つ又は複数のPCIバス110、112、114、116、及び118を備え、これらは全てメモリ&I/Oコントローラ120によって相互に接続されている。プロセッサ102及び104は、好ましくは、(時には「フロントサイドバス」と呼ばれる)プロセッサバス122により、メモリ&I/Oコントローラ120に接続される。
メモリユニット106及び108は、好ましくは、メモリバス124によりメモリ及びI/Oコントローラ120に接続される。メモリユニット106及び108は、メモリバス124に恒久的に接続されることができ、又はソケットを介してバスに接続されることもできる。1つのみのメモリバス124が示されているが、2つ以上のメモリバスを、メモリ&I/Oコントローラ120に接続された付随のメモリユニットと共に有することも可能である。同様に、メモリバス124は、2つのメモリユニット106と108とがそこに接続された状態で示されるが、より多数の、又はより少数のメモリユニットが、どのメモリバスにも接続されることができる。
各PCIバス110〜118は、好ましくは、I/Oアダプタ126、128、130、132、及び134(のそれぞれ)により、並びに同期バス136、138、140、142、及び144(のそれぞれ)により、メモリ&I/Oコントローラ120に接続される。図1Aに示されるように、I/Oアダプタ126のようないくつかのI/Oアダプタは、同期バス136及び138のような2つ以上の同期バスによってメモリ&I/Oコントローラ120に接続されることができ、I/Oアダプタとメモリ&I/Oコントローラとの間により広い帯域幅のパスを提供する。図1Aにもまた示すように、I/Oアダプタ132及び134のようないくつかのI/Oアダプタは、同期バス144のように同期バスを共有することができる。コンピュータシステム100は、I/Oアダプタ126〜134及び同期バス136〜144のような中間ユニットを、PCIバス110〜118と、メモリ&I/Oコントローラ120との間に使用するが、PCIバスをメモリ&I/Oコントローラに直接接続することも許容可能である。バス110〜118は、PCIバスとして示されているが、AGP又はSCSIのような他の標準バスアーキテクチャ、又は所有権があるバスアーキテクチャが使用されることもできる。
図1Aはまた、PCIバス110〜118に接続されたデバイス146、148、150、152、154、及び156も示す。これらデバイス146〜156は、典型的には、ネットワークインターフェース及びディスクコントローラのようなI/Oデバイスであるが、それらを、プロセッサ、メモリ、又はPCIバス110〜118に接続されることができる任意の他のタイプのデバイスとすることもできる。デバイス146〜156は、それぞれのPCIバス110〜118に恒久的に接続されることができるか、又はソケットを介してそれぞれのPCIバスに接続されることもできるか、又は恒久的な接続及びソケットの組み合わせによりそれぞれのPCIバスに接続されることもできる。図1Aに示されるように、PCIバス110、112、116、及び118のようないくつかのPCIバスには、1つのみのデバイスがそれぞれに取り付けられている。一方、PCIバス114には、2つ以上のデバイス150及び152が接続されている。サーバのような高性能コンピュータシステムは、1つのバス当たりに、1つのみのデバイスを有する場合が多い。
メモリ&I/Oコントローラ120は、メモリバス124及び同期バス136〜144に対するクロック信号を生成する。I/Oアダプタ126〜134は、各同期バス136〜144を介して受け取ったクロック信号を使用して、各PCIバス110〜118に対するクロック信号を生成する。一般に、I/Oアダプタ126〜134は、各同期バス136〜144を介して受け取ったクロック信号を乗算器によって乗算することにより、PCIバス110〜118に対するクロック信号を生成する。その生成されたクロック信号は、受け取ったクロック信号よりも大きく、又は小さく、又は等しくされることができる。代替として、I/Oアダプタ126〜134は、同期バス136〜144からのクロック信号を使用することなく、PCIバス110〜118に対するクロック信号を生成することができる。例えば、I/Oアダプタ126〜134は、水晶発振器、周波数シンセサイザ、又は他の適切な回路を使用することができる。
これまで述べたように、コンピュータ100は従来のものである。このようなコンピュータは、HP server rx5670、又はHP server rx2600という商品名で、カリフォルニア州パロアルトに所在のHewlett-Packardから利用可能であり、メモリ&I/Oコントローラ120、及びI/Oアダプタ126〜134は、HP zx1 chipsetという商品名で、利用可能である。コンピュータ100は、単一のモノリシックな(又は一体構造の)メモリ&I/Oコントローラ120と共に示されているが、メモリ&I/Oコントローラの構成要素は、分離した回路として実施されることもできる。例えば、分離したディスクリート回路、又は集積回路を、様々なバス110〜118及び124のそれぞれに対するクロック信号を生成するために使用することができる。
図2は、図1Aに記載されたコンピュータ100のようなコンピュータ内において使用されることができる周波数マネージャ200の一実施形態のブロック図である。周波数マネージャ200は、以下に更に詳細に述べるように、コンピュータと、コンピュータに接続されたデバイス及び/又はメモリとについての情報を得る情報入力202を備える。情報入力202は、デバイス及び/又はメモリ、ROM/EE−PROM、コンソール、サービスプロセッサ、ユーザインターフェース、及び/又はLAN(まとめて204)に直接的に又は間接的に接続されることができ、それにより、情報入力は、この情報を得ることができる。情報入力202により集められた情報は、データベース206に格納される。そのデータベース206は、例えばRAMとすることができる。周波数計算機208が、データベース206に格納されている情報を使用して、以下に更に詳細に述べるように、デバイス及び/又はメモリに対する1つ又は複数のバス周波数を計算する。クロック信号発生器インターフェース210は、クロック信号発生器によって生成されたクロック信号の周波数(複数可)をセットするために、周波数マネージャ200を1つ又は複数のクロック信号発生器212に相互接続する。
図1Aは、接続159を介してメモリ&I/Oコントローラ120に接続された周波数マネージャ158の一実施形態を示す。周波数マネージャ158は、以下に更に詳細に述べるように、デバイス又はメモリユニットについての情報を得るために、デバイス146〜156、メモリユニット106及び108、又はデータベースに照会することができる。この情報に基づいて、周波数マネージャ158は、PCIバス110〜118及びメモリバス124に対して生成されるクロック信号の周波数を制御することができる。PCIバス110〜118及びメモリバス124に接続された1つ又は複数のデバイス又はメモリユニットは、それぞれのバスのクロック信号の周波数で動作する。
図1Aに示される周波数マネージャ158の実施形態は、マイクロプロセッサであることができる制御プロセッサ160と、RAM及び/又はROM162と、オプションのコンソール164及び/又は外部コンソールに対するインターフェース166と、ユーザインターフェース又はそれに類するもの168と、オプションのディップスイッチ170とを備えることができ、これらは全て内部バス172によって相互接続されている。周波数マネージャ158は、RAM/ROM162内に格納されたソフトウェア命令又はファームウェア命令として実施されることができ、前述及び後述のように、プロセッサ160によって実行され、他の構成要素を制御する。周波数マネージャ158は、ハードウェア構成要素160〜172を他の機能と共に共有することができる。例えば、これらのハードウェア構成要素160〜172はまた、電源投入時の自己診断テスト(「POST」)機能を実行することもできるし、又はサービスプロセッサを実行することもできる。
周波数マネージャ158は、接続159を介してコマンド及びクエリを、メモリ&I/Oコントローラ120に送ることができる。これらクエリは、デバイス146〜156及びメモリユニット106〜108についての情報を得るために使用されることができる。周波数マネージャ158は、以下で更に詳細に述べられるように、この情報を自動的に、又はユーザ入力を通して得ることもできる。周波数マネージャ158は、デバイス146〜156及びメモリユニット106〜108についての情報をRAM162内に格納することができる。
メモリ&I/Oコントローラ120により、同期バス136〜144とメモリバス124とに対して生成されるクロック信号の周波数を指定するために、コマンドが使用されることができる。代替として、又は追加として、メモリ&I/Oコントローラ120は、同期バス136〜144を介してこれらのコマンド及びクエリのうちの適切なものを、I/Oアダプタ126〜134に転送することができ、そして必要な時には、I/Oアダプタを通してデバイス146〜156に転送することができる。同様に、メモリ&I/Oコントローラ120は、メモリバス124を介してこれらコマンド及びクエリのうちの適切なものを、メモリユニット106〜108に転送することができる。これら転送されたコマンドは、I/Oアダプタ126〜134に指定されたクロック周波数のクロック信号を生成するよう指示するために使用されることができる。例えば、これらコマンドは、各同期バス136〜144のクロック信号に適用されるための乗算器を指定することができる。以前にも述べたように、I/Oアダプタ126〜134は、PCIバス110〜118に対するクロック信号を生成するために、同期バス136〜144を介して受信したクロック信号に乗算器を適用する。代替として、これらのコマンドは、ローカルなクロック信号発生器を使用して、I/Oアダプタ126〜134によって生成されるためのクロック信号の周波数を明確に指定することができる。
図1Bは、クロックシンセサイザ182に接続された周波数マネージャ180の代替の実施態様を示す。クロックシンセサイザ182は次に、メモリ&I/Oコントローラ120に接続される。この実施形態では、周波数マネージャ180は、マイクロプロセッサ/メモリの組み合わせ、ASIC、FPGA、又はそれらに類するもののような専用の集積回路、又は目的が共有された集積回路、あるいは集積回路の組み合わせとして実施される。周波数マネージャ180は、ROM/EE−PROM、ディップスイッチ、コンソール、サービスプロセッサ、ユーザインターフェース、又はLAN(まとめて184)の任意の組み合わせから入力を受け取ることができる。図1Aを参照して述べた実施形態におけるように、周波数マネージャ180は、デバイス146〜156及びメモリユニット106〜108に照会するために、乗算器の指定等々を行うために、クロックシンセサイザ182を介して、メモリ&I/Oコントローラ120、及びI/Oアダプタ126〜134と通信することができる。
クロックシンセサイザ182は、例えば、I2C I/O拡張器により制御された従来のクロック信号発生器として実施されることができ、このI2C拡張器は、I2Cバス186を介して周波数マネージャ180と通信することができる。この実施形態では、メモリ&I/Oコントローラ120は、内部クロック信号発生器を備えない。その代わりに、メモリ&I/Oコントローラ120は、クロックシンセサイザ182によって生成されたクロック信号を受信し、このクロック信号を使用して、メモリバス124及び同期バス136〜144に対するクロック信号を生成する。
先も触れたように、周波数マネージャ158又は180は、様々な要因及び目的に基づいて、各デバイス146〜156、PCIバス110〜118、又はメモリバス124に対する、或いは複数のこれらデバイス又はバスに対する、クロック周波数を自動的に選択する。(簡単のために、残りの説明は周波数マネージャ158を参照してなされる。しかしながら、その説明はまた周波数マネージャ200にも適用される)。これら要因は、周波数マネージャによって管理されるデバイス又はバスの数と、デバイス又はメモリユニットの放熱特性、特にこれらの特性として、これらデバイス又はメモリユニットが動作するクロック速度に関連する特性、すなわち、これらデバイス又はメモリユニットが動作中に、及び様々なクロック速度で、放熱する度合いと、デバイス又はメモリユニットの標準の、最小の、及び最大の帯域幅の要件と、デバイス又はメモリユニットの電力消費特性と、アプリケーションプログラムがどのデバイス(複数可)を使用するか、どれだけのメモリをアプリケーションプログラムが必要とするか、アプリケーションプログラムがよりメモリを多用するか又はよりI/Oを多用するかどうか、といったデバイス又はメモリユニットを備えたシステムによって実行されるためのアプリケーションプログラムの特性とを含むことができる。周波数マネージャ158の実施形態は、以下に述べられる様々な技法によりデバイス146〜156及びメモリユニット106〜108についてのこの及び他の情報を得ることができる。
図3は、周波数マネージャ158によって、デバイス146〜156又はメモリユニット106〜108のうちの1つ(周波数マネージャ158はそれに対するクロック周波数を選択することができる)についての情報を格納するために使用される例示的なデータ構成300の図である。周波数マネージャ158は、これらデータ構成をRAM162内に格納する。
フィールド302は、デバイス又はメモリユニットの識別子(ID)を含む。フィールド304は、デバイスの又はメモリユニットの機能についての情報を含む。例えば、この情報は、デバイス又はメモリユニットが、ネットワークインターフェース、ディスクコントローラ、グラフィックコントローラ、プロセッサ、又はメモリであることを示すことができる。フィールド306は、デバイス又はメモリユニットの電力消費特性についての情報を含むことができる。これは、最小の、平均の、及び最大の電力消費量、並びにクロック周波数に関連付けられた電力消費量を含むことができる。この関連付けは、例えば、表、もしくは式の形とすることができる。フィールド308は、デバイス又はメモリユニットの放熱特性についての情報を含むことができる。これは、最小の、平均の、及び最大の放熱量、並びにクロック周波数に関連付けられた放熱量を含むことができる。この関連付けは、例えば、表、もしくは式の形とすることができる。フィールド310は、動作周波数の情報を含むことができる。これは、デバイス又はメモリユニットが動作可能な最小の、平均の、及び最大のクロック周波数を含むことができる。フィールド312は、帯域幅、及び他の情報を含むことができる。例えば、これは、ネットワークインターフェースが動作することのできる接続速度と、メモリユニットの記憶容量と、ディスクの最大転送速度とを含むことができる。
周波数マネージャ158の実施形態は、様々な技法によってデバイス146〜156及びメモリユニット106〜108についての情報を得ることができる。例えば、電源投入時の自己診断テスト(「POST」)中に、周波数マネージャ158は、以前にも述べたように、デバイス146〜156及びメモリユニット106〜108の中のレジスタ又は記憶位置に照会することができる。代替として、プロセッサ160により、又はデバイス146〜156及びメモリユニット106〜108により実行されるBIOS命令が、この情報を収集することができ、周波数マネージャ158に報告するか、又はRAM162のような、周波数マネージャによって続けてアクセス可能な位置内に格納することができる。更に、又は代替として、周波数マネージャ158は、この情報をRAM/ROM162、コンソール164、又はディップスイッチ170から得ることができる。例えば、ROM162は、コンピュータ100の製造中にROM内に格納された情報を含むことができる。更に、ユーザ又は自動化されたシステムが、外部インターフェース168を通してこの情報を周波数マネージャ158に提供することもできる。同様に、周波数マネージャ158は、コンピュータ100の電力バジェット及び/又は熱バジェットについての情報を得ることができ、この情報をRAM162内に格納することができる。
周波数マネージャ158がデバイス146〜156及びメモリユニット106〜108について得た情報を用いて、周波数マネージャは、様々な目的に従って、PCIバス110〜118及びメモリバス124に対する、従ってデバイス146〜156に対するクロック周波数を選択することができる。その目的は、全てのデバイスを単一のクロック周波数で動作させることを含むことができ、そのクロック周波数は、システムの電力バジェット及び/又は熱バジェットを超えることなく、可能な最も高いクロック周波数(又は、この可能な最も高いクロック周波数よりも低い都合の良いクロック周波数)となるよう選択されている。
この目的を達成するために、周波数マネージャ158は、データ構成300内に格納されているデバイス146〜156及びメモリユニット106〜108についての情報にアクセスすることができ、このクロック周波数を計算することができる。例えば、周波数マネージャは、任意のクロック周波数を選択することができ、デバイス146〜156及びメモリユニット106〜108が選択されたクロック周波数で動作させられた場合には、これらデバイス及びメモリユニットの対応する総電力消費量及び/又は総放熱量を計算することができる。次に、周波数マネージャ158は、計算された総電力消費量及び/又は総放熱量を、システムの電力バジェット及び/又は熱バジェットと比較することができる。計算された総電力消費量及び/又は総放熱量が対応するバジェットを超える場合には、周波数マネージャ158は、より低いクロック周波数を反復的に選択することができ、バジェット(複数可)を超えないクロック周波数を見つけるまで計算を繰り返すことができる。一方、計算された総電力消費量及び/又は総放熱量が対応するバジェットを超えない場合には、周波数マネージャ158は、より高いクロック周波数を反復的に選択することができ、バジェットを超えるクロック周波数を見つけるまで計算を繰り返して、それより低いクロック周波数を選択することができる。代替として、周波数マネージャ158は、反復手法の代わりに、電力消費量及び/又は放熱量を動作周波数に関連付ける式を使用することができ、最適なクロック周波数に関してこれらの式を解くことができる。
代替として、周波数マネージャ158は、システムの熱バジェット、電力バジェット、又は熱バジェットと電力バジェットとのうちの低い数値の方を、デバイス146〜156及びメモリユニット106〜108の総数で除算して、各デバイス及びメモリユニットに対する熱バジェット又は電力バジェットを計算することもできる。各デバイス146〜156及びメモリユニット106〜108の放熱及び/又は電力消費についての情報を用いて、それぞれのデバイスの又はメモリユニットの動作周波数に関連して、周波数マネージャ158は、平均してデバイスの又はメモリユニットの熱バジェットを超えない、全てのデバイス及びメモリユニットを動作させるための1つのクロック周波数を計算することができる。代替として、周波数マネージャ158は、各デバイス146〜156及びメモリユニット106〜108の熱バジェットに基づいて、デバイス146〜156及びメモリユニット106〜108のそれぞれに対する個別のクロック周波数を計算することができる。
周波数マネージャ158は、クロック周波数を選択すると、先に述べたように、コマンドをメモリ&I/Oコントローラ120に送り、同期バス136〜144及び/又はメモリバス124のクロック周波数をセットすることができる。代替として、先に述べたように、周波数マネージャ158は、コマンドをI/Oアダプタ126〜134に送り、PCIバス110〜118のクロック周波数をセットすることができる。いずれの場合でも、メモリバス124に対するクロック周波数が、PCIバス110〜118に対するクロック周波数と同じである必要はない。
図4は、本発明の一実施形態のフローチャート400である。402においてデバイスの電力消費特性及び/又は放熱特性についての情報を得るために、デバイスが照会される。404において、この情報が受け取られる。代替として、406に示されるように、ユーザインターフェースを介してこの情報を得ることができる。代替として、先に述べたように、この情報をRAM又はROMから得ることもできる。408において、この情報に基づいてクロック周波数が計算される。このクロック周波数は、例えば、デバイスがシステムの電力バジェット及び/又は熱バジェットを超えることなく動作することのできる最も高いクロック周波数であることができる。410において、ハードウェア、ファームウェア、又はソフトウェアが、計算された周波数に従ってクロック信号を生成するようにセットされる。
他の目的(その目的に従って周波数マネージャ158がPCIバス110〜118及びメモリバス124に対するバス周波数を選択することができる)は、デバイスのそれぞれの帯域幅要件に比例して、システムの電力バジェット及び/又は熱バジェットをデバイスの間に割り振ること、すなわち広帯域のデバイスを、狭帯域のデバイスよりも高いクロック速度で動作させることである。この目的を達成させるために、周波数マネージャ158は、上述のように、デバイス146〜156及び/又はメモリユニット106〜108がシステムの電力バジェット又は熱バジェットを超えるえることなく動作することができる高いクロック周波数を選択することができる。次に、周波数マネージャ158は、各デバイス146〜156及びメモリユニット106〜108の帯域幅要件に基づいて、PCIバス110〜118及び/又はメモリバス124のクロック周波数を調整することができる。例えば、周波数マネージャ158は、全てのデバイス146〜156及びメモリユニット106〜108の平均帯域幅要件を計算することができる。従って、帯域幅要件がこの平均よりも上、又は下であるデバイスに対して、周波数マネージャ158は、デバイスの帯域幅要件と平均帯域幅要件との間の差に比例して、それぞれのPCIバス110〜118のクロック周波数を増加又は低減することができる。
周波数マネージャ158は、これらのクロック周波数を選択すると、先に述べたように、コマンドをメモリ&I/Oコントローラ120に、又はI/Oアダプタ126〜134に送り、PCIバス110〜118及びメモリバス124のクロック周波数をセットすることができる。いずれの場合でも、メモリバス124に対するクロック周波数が、PCIバス110〜118に対するクロック周波数と同じである必要はない。
図5は、本発明の一実施形態のフローチャート500である。502において、デバイスの電力消費特性及び/又は放熱特性についての情報を得るために、デバイスが照会される。504において、この情報が受け取られる。代替として、先に述べたように、この情報をRAM又はROMから得ることもできる。506において、この情報に基づいてクロック周波数が計算される。これらのクロック周波数は、例えば、デバイスの相対的な帯域幅要件について調整された、これらデバイスがシステムの電力バジェット及び/又は熱バジェットを超えることなく動作することができる最も高いクロック周波数であることができる。508において、ハードウェア、ファームウェア、又はソフトウェアが、これらの計算された周波数に従ってクロック信号を生成するようにセットされる。
他の目的(その目的に従って周波数マネージャ158がPCIバス110〜118及びメモリバス124に対するバス周波数を選択することができる)は、アプリケーションプログラムによって予期される要求に比例して、システムの電力バジェット又は熱バジェットを割り振ること、すなわち頻繁にアクセスされるデバイスを滅多にアクセスされないデバイスよりも高いクロック速度で動作させることである。この目的を達成させるために、周波数マネージャ158は、上述のように、デバイス146〜156及び/又はメモリユニット106〜108がシステムの電力バジェット又は熱バジェットを超えることなく動作することができる高いクロック周波数を選択することができる。次に、周波数マネージャ158は、どのデバイス又はメモリユニットにアプリケーションプログラムが頻繁にアクセスするか、又は代替として、これらの頻繁にアクセスされるデバイス又はメモリユニットの帯域幅要件に基づいて、PCIバス110〜118及び/又はメモリバス124のクロック周波数を調整することができる。例えば、周波数マネージャ158は、アプリケーションプログラムがアクセスしないデバイス又はメモリユニットを無視することができ、上述のように、残りのデバイス146〜156及び/又はメモリユニット106〜108がシステムの電力バジェット又は熱バジェットを超えることなく動作することができる高いクロック周波数を、選択することができる。これにより、使用されないデバイスにクロック信号が提供されない結果となることができる。代替として、周波数マネージャ158は、最小クロック周波数を、滅多にアクセスされないデバイス及び/又は使用されないデバイスに割り振ることができ、高いクロック周波数を頻繁にアクセスされるデバイスに割り振ることができる。代替として、頻繁にアクセスされるデバイスに対するクロック周波数を、上述のようにデバイスのそれぞれの帯域幅要件に比例して割り振ることができる。
図6は、周波数マネージャ158がアプリケーションプログラム情報を保持するために使用することができる例示的なデータ構成600を示す。このデータ構成600は、例えば、RAM162内に格納されることができる。データ構成600に関する情報を、RAM/ROM162、コンソール164、ディップスイッチ170、又は外部インターフェース168から得ることができる。例えば、個別のアプリケーションプログラムアナライザがアプリケーションプログラムを解析することができ、例えば外部インターフェース168を通して、この情報を周波数マネージャ158に提供することができる。代替として、又は追加として、アプリケーションプログラムを実行しているオペレーティングシステムが、この情報を提供することもできる。
フィールド602は、アプリケーションプログラム名称を含む。フィールド604は、アプリケーションプログラムの版数を含む。フィールド606は、アプリケーションプログラムがメモリをアクセスする頻度についての情報のようなアプリケーションプログラムのメモリ帯域幅特性についての情報を含む。フィールド608は、アプリケーションプログラムによって必要とされるメモリ量のようなアプリケーションプログラムのメモリ使用特性についての情報を含む。フィールド610は、アプリケーションプログラムがI/Oデバイスを利用する頻度についての情報のようなアプリケーションプログラムのI/O帯域幅特性についての情報を含む。フィールド612は、アプリケーションプログラムがアクセスする各デバイスの識別子、及びアプリケーションプログラムがデバイスにアクセスする頻度のような、アプリケーションプログラムのI/Oデバイス利用特性についての情報を含む。
図7は、本発明の一実施形態のフローチャート700である。702において、デバイスの電力消費特性及び/又は放熱特性についての情報を得るために、デバイスが照会される。704において、この情報が受け取られる。代替として、上述のように、この情報をRAM又はROMから得ることもできる。706において、アプリケーションプログラムについての情報が得られる。708において、デバイス及びアプリケーションプログラムについての情報に基づいて、クロック周波数が計算される。これらのクロック周波数は、例えば、デバイスの相対的な帯域幅要件について調整された、プログラムによりアクセスされたデバイスがシステムの電力バジェット及び/又は熱バジェットを超えることなく動作することができる最も高いクロック周波数であることができる。710において、ハードウェア、ファームウェア、又はソフトウェアが、これらの計算された周波数に従ってクロック信号を生成するようにセットされる。
他の目的(その目的に従って周波数マネージャ158がPCIバス110〜118及びメモリバス124に対するバス周波数を選択することができる)は、アプリケーションプログラムによって予期される要求に比例して、システムの電力バジェット及び/又は熱バジェットを割り振ること、すなわち、アプリケーションプログラムによってメモリ(及びI/Oデバイス)に与えられる相対的な負荷に依存して、相対的により高いか又はより低いクロック速度でメモリを動作させる(及び相対的により低いか又はより高いクロック速度でI/Oデバイスを動作させる)ことである。アプリケーションプログラムによってこれらのアイテムに与えられる相対的な負荷についての情報を、例えば、データ構成600から得ることができる。この目的は本質的に、アプリケーションプログラムの予期される要求に依存して、メモリのパフォーマンスをI/Oのパフォーマンスに、又はその逆に交換することである。
この目的を達成するために、周波数マネージャ158は、先に述べたように、アプリケーションプログラムがどのデバイス又はメモリユニットに頻繁にアクセスするか、又は代替として、これらの頻繁にアクセスされるデバイス又はメモリユニットの帯域幅要件に基づいて、PCIバス110〜118及び/又はメモリバス124に対するクロック周波数を選択することができる。次に、周波数マネージャ158はクロック周波数を更に調整することができる。例えば、アプリケーションプログラムがメモリを多用する場合には、周波数マネージャ158は、メモリバス124に対するクロック周波数を上げることができ、PCIバス110〜118に対するクロック周波数を下げることができる。一方、アプリケーションプログラムがI/Oを多用する場合には、周波数マネージャ158は、メモリバス124に対するクロック周波数を下げることができ、PCIバス110〜118に対するクロック周波数を上げることができる。
図8は、本発明の一実施形態のフローチャート800である。802において、デバイスの電力消費特性及び/又は放熱特性についての情報を得るために、デバイスが照会される。804において、この情報が受け取られる。代替として、先に述べたように、この情報をRAM又はROMから得ることもできる。806において、アプリケーションプログラムについての情報が得られる。808において、アプリケーションプログラムがメモリを多用する場合には、制御は812に移り、アプリケーションプログラムがメモリを多用しない場合には、制御は810に移る。810において、デバイス及びアプリケーションプログラムについての情報に基づき、I/Oデバイスに有利にクロック周波数が計算される。すなわち、そうしない場合よりも、I/Oデバイスにより高いクロック周波数を割り振り、メモリユニットにより低いクロック周波数を割り振る。812において、デバイス及びアプリケーションプログラムについての情報に基づき、メモリユニットに有利なようにクロック周波数が計算される。すなわち、そうしない場合よりも、メモリユニットにより高いクロック周波数を割り振り、I/Oデバイスにより低いクロック周波数を割り振る。これらクロック周波数は、例えば、デバイスの相対的な帯域幅要件について調整された、プログラムによりアクセスされたデバイスがシステムの電力バジェット及び/又は熱バジェットを超えることなく動作することができる最も高いクロック周波数であることができ、アプリケーションプログラムの特性に依存してI/Oデバイス又はメモリユニットを有利にすることができる。814において、ハードウェア、ファームウェア、又はソフトウェアが、これらの計算された周波数に従ってクロック信号を生成するようにセットされる。
PCIバス110〜118、PCIデバイス146〜156、メモリバス124、及びメモリユニット106〜108を備えるコンピュータ100に関して、本発明を説明してきたが、本発明の他の実施では、本発明による本発明の装置及び方法は、他のクロック動作させられるバスで使用されるクロック信号に対する、並びに、メモリ、プロセッサ、及びI/Oデバイスを含めた他のクロック動作させられるデバイスで使用されるクロック信号に対する周波数を選択することが可能である。
本発明の周波数マネージャ及び他の態様は、好ましくは、メモリに格納されることができるソフトウェア又はファームウェアにおいて実施され、上述のように、制御プロセッサの動作を制御するか、もしくはパーソナルコンピュータのようなコンピュータ、又は他のシステム内に組み込まれたマイクロプロセッサの動作を制御する。メモリは、マイクロプロセッサを備える集積回路の一部であることができるが、そうである必要はない。ソフトウェア又はファームウェアを、CD−ROM、CD−RW、DVD−ROM、DVD−RW、ZIPディスク、ハードディスク、又はフロッピーディスクのような、取り外し可能な又は固定されたコンピュータ読み出し可能媒体に格納することができる。更に、このソフトウェア又はファームウェアは、コンピュータネットワーク又は電話網のような、無線又は有線の通信リンクを介して伝送されることが可能である。代替として、本発明の周波数マネージャ及び他の態様は、特定用途向け集積回路(ASIC)、又はフィールドプログラマブルゲートアレイ(FPGA)のようなハードウェア内で実施されることも可能である。
本明細書において用いられた用語及び表現は、限定ではなく説明として使用される。従って、これら用語及び表現の使用の際に、図示された又は記載された特徴、あるいはその一部のどの等価物も除外する意図はない。当業者であれば、上述の実施形態に基づいて本発明の更なる特徴及び利点を認識し、その他の変更が本発明の特許請求の範囲内で可能であることを認識するであろう。従って本発明は、添付の特許請求の範囲によって指示されるものを除いて、具体的に図示し説明したものによって限定されるべきではない。本明細書において引用された全ての刊行物及び参照は、その全てが参照により本明細書に明示的に組み込まれる。
本発明の態様を実施することができる例示的なコンピュータのブロック図、及び本発明による周波数マネージャの第1の実施態様のブロック図である。 本発明の態様を実施することができる例示的なコンピュータのブロック図、及び本発明による周波数マネージャの第2の実施態様のブロック図である。 本発明による周波数マネージャの例示的な一実施形態のブロック図である。 本発明の実施形態により使用される例示的なデバイス/メモリ情報データ構成の図である。 本発明の一実施形態の動作を示す例示的なフローチャートである。 本発明の他の実施形態の動作を示す例示的なフローチャートである。 本発明の実施形態により使用される例示的なアプリケーションプログラム情報データ構成の図である。 本発明の他の実施形態の動作を示す例示的なフローチャートである。 本発明の更に他の実施形態の動作を示す例示的なフローチャートである。
符号の説明
106 メモリ
108 メモリ
146 I/Oデバイス
148 I/Oデバイス
150 I/Oデバイス
152 I/Oデバイス
154 I/Oデバイス
156 I/Oデバイス
208 周波数計算機
210 インターフェース
308 熱量についての情報
600 アプリケーションプログラム情報
606 相対的な負荷についての情報
608 相対的な負荷についての情報
610 相対的な負荷についての情報
612 相対的な負荷についての情報
702 デバイスに照会するステップ
704 情報のいくつかを自動的に確認するステップ
708 周波数を自動的に選択するステップ
710 クロック信号をデバイスに提供するステップ
802 デバイスに照会するステップ
804 情報のいくつかを自動的に確認するステップ
810 周波数を自動的に選択するステップ、より高い第2のクロック周波数を選択するステップ
812 周波数を自動的に選択するステップ、より高い第1のクロック周波数を選択するステップ
814 クロック信号をデバイスに提供するステップ

Claims (10)

  1. 第1の電子デバイスに対するクロック周波数と、第2の電子デバイスに対するクロック周波数とを決定する方法において、
    前記第1の電子デバイスと前記第2の電子デバイスとは、零か又は1つ以上の他の電子デバイスと共にシステム内に実装されており、
    前記第1の電子デバイスは第1のバスに接続されており、前記第2の電子デバイスは第2のバスに接続されており、
    前記システムはアプリケーションプログラムを実行することが可能となっており、該方法は、
    少なくとも前記アプリケーションプログラムについての情報(600)に基づいて、前記第1の電子デバイスに対する第1のクロック周波数と、前記第2の電子デバイスに対する第2のクロック周波数とを自動的に選択するステップ(708、810、812)
    を含む、方法。
  2. 前記自動的に選択された第1のクロック周波数を有する第1のクロック信号を、前記第1の電子デバイスに提供するステップ(710、814)と、前記自動的に選択された第2のクロック周波数を有する第2のクロック信号を、前記第2の電子デバイスに提供するステップとを更に含む、請求項1に記載の方法。
  3. 前記アプリケーションプログラムについての前記情報(600)は、前記アプリケーションプログラムが前記第1の電子デバイスと前記第2の電子デバイスとに与える相対的な負荷についての情報(606、608、610、612)を含む、請求項1に記載の方法。
  4. 前記第1の電子デバイスはメモリ(106、108)であり、前記第2の電子デバイスはI/Oデバイス(146〜156)であることからなる、請求項3に記載の方法。
  5. 前記第1の電子デバイスはメモリ(106、108)であり、前記第2の電子デバイスはI/Oデバイス(146〜156)であり、
    前記第1のクロック周波数と前記第2のクロック周波数とを自動的に選択する前記ステップは、
    前記アプリケーションプログラムが第1のカテゴリのものであれば、
    他の場合よりも高い第1のクロック周波数を選択するステップ(812)と、
    他の場合よりも低い第2のクロック周波数を選択するステップと、
    前記アプリケーションプログラムが第2のカテゴリのものであれば、
    他の場合よりも高い第2のクロック周波数を選択するステップ(810)と、
    他の場合よりも低い第1のクロック周波数を選択するステップ
    とを含むことからなる、請求項1に記載の方法。
  6. 前記システム内に実装された前記第1の電子デバイスについての情報と、前記第2の電子デバイスについての情報と、前記零か又は1つ以上の他の電子デバイスについての情報とのうちの少なくともいくつかを自動的に確認するステップ(704、804)を更に含む、請求項1に記載の方法。
  7. 情報のうちの少なくともいくつかを前記自動的に確認するステップは、
    前記第1の電子デバイスと前記第2の電子デバイスとのうちの少なくとも1つに照会するステップ(702、802)と、
    前記照会するステップに応答して、前記第1の電子デバイスと前記第2の電子デバイスとのうちの少なくとも1つから情報を受け取るステップ
    とを含むことからなる、請求項6に記載の方法。
  8. 前記第1の電子デバイスと、前記第2の電子デバイスと、前記零か又は1つ以上の他の電子デバイスとについての前記情報は、前記第1の電子デバイスと、前記第2の電子デバイスと、前記零か又は1つ以上の他の電子デバイスとのうちの少なくとも1つのデバイスが、クロック周波数に関連して生成する熱量についての情報(308)を含み、該クロック周波数で、対応する前記第1の電子デバイスと、前記第2の電子デバイスと、前記零か又は1つ以上の他の電子デバイスとのうちの少なくとも1つのデバイスが動作することからなる、請求項1に記載の方法。
  9. 第1の電子デバイスに対するクロック周波数と、第2の電子デバイスに対するクロック周波数とを決定するための周波数マネージャにおいて、
    前記第1の電子デバイスと前記第2の電子デバイスとは、零か又は1つ以上の他の電子デバイスと共にシステム内に実装されており、
    前記第1の電子デバイスは、第1のバスに接続されており、前記第2の電子デバイスは、第2のバスに接続されており、
    前記システムは、アプリケーションプログラムを実行することが可能となっており、
    少なくとも前記アプリケーションプログラムについての情報(600)に基づいて、前記第1の電子デバイスに対する第1のクロック周波数と前記第2の電子デバイスに対する第2のクロック周波数とを自動的に選択する周波数計算機(208)と、
    前記周波数計算機と、第1のクロック信号発生器と、第2のクロック周波数発生器とに接続されたインターフェース(210)であって、該インターフェースは、
    前記第1のクロック周波数でクロック信号を生成するために、コマンドを前記第1のクロック信号発生器に送り、
    前記第2のクロック周波数でクロック信号を生成するために、コマンドを前記第2のクロック周波数発生器に送ることからなる、インターフェース
    とを備えることからなる、周波数マネージャ。
  10. 前記アプリケーションプログラムについての前記情報(600)は、前記アプリケーションプログラムが前記第1の電子デバイスと前記第2の電子デバイスとに与える相対的な負荷についての情報を含む、請求項9に記載の周波数マネージャ。
JP2004241248A 2003-08-22 2004-08-20 アプリケーションプログラムの特性に基づくバスクロック周波数管理 Pending JP2005071365A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/646,078 US7149913B2 (en) 2003-08-22 2003-08-22 Bus clock frequency management based on characteristics of an application program

Publications (1)

Publication Number Publication Date
JP2005071365A true JP2005071365A (ja) 2005-03-17

Family

ID=33030210

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004241248A Pending JP2005071365A (ja) 2003-08-22 2004-08-20 アプリケーションプログラムの特性に基づくバスクロック周波数管理

Country Status (3)

Country Link
US (1) US7149913B2 (ja)
JP (1) JP2005071365A (ja)
GB (1) GB2405240B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116862A (ja) * 2007-11-08 2009-05-28 Internatl Business Mach Corp <Ibm> 電子システムの電力管理の方法、システム、およびプログラム(電子システムの電力管理)
US8397097B2 (en) 2008-04-09 2013-03-12 Nec Corporation Computer system and operating method thereof

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10065418A1 (de) * 2000-12-27 2002-07-18 Siemens Ag Integrationsverfahren für Automatisierungskomponenten
US20070150765A1 (en) * 2005-12-26 2007-06-28 Takayuki Ochiai Information processing apparatus having electronic device whose operating speed is controlled, and method of controlling the operating speed of the electronic device
US8166316B2 (en) * 2008-06-27 2012-04-24 Oracle America, Inc. Single interface access to multiple bandwidth and power memory zones
WO2010071634A1 (en) * 2008-12-16 2010-06-24 Hewlett-Packard Development Company, L.P. Clock signals for dynamic reconfiguration of communication link bundles
US20150106649A1 (en) * 2013-10-11 2015-04-16 Qualcomm Innovation Center, Inc. Dynamic scaling of memory and bus frequencies
US10963001B1 (en) * 2017-04-18 2021-03-30 Amazon Technologies, Inc. Client configurable hardware logic and corresponding hardware clock metadata
CN109062715B (zh) * 2018-07-05 2022-02-08 Oppo(重庆)智能科技有限公司 内存时钟频率的确定方法、装置及终端
KR20210032213A (ko) 2019-09-16 2021-03-24 삼성전자주식회사 전력 스텝에 기초한 동적 다이내믹 전압 주파주 스케일링(dvfs) 수행 방법
US11281604B2 (en) * 2020-02-28 2022-03-22 Micron Technology, Inc. Multiple memory type shared memory bus systems and methods

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW282525B (ja) 1994-06-17 1996-08-01 Intel Corp
US5560022A (en) 1994-07-19 1996-09-24 Intel Corporation Power management coordinator system and interface
US5678065A (en) 1994-09-19 1997-10-14 Advanced Micro Devices, Inc. Computer system employing an enable line for selectively adjusting a peripheral bus clock frequency
US5664165A (en) * 1995-04-19 1997-09-02 International Business Machines Corporation Generation of a synthetic clock signal in synchronism with a high frequency clock signal and corresponding to a low frequency clock signal
JP3520611B2 (ja) 1995-07-06 2004-04-19 株式会社日立製作所 プロセッサの制御方法
US5745375A (en) 1995-09-29 1998-04-28 Intel Corporation Apparatus and method for controlling power usage
US5630110A (en) 1996-03-01 1997-05-13 Samsung Electronics Co., Ltd. Method and apparatus for enhancing performance of a processor
US5754867A (en) * 1996-03-20 1998-05-19 Vlsi Technology, Inc. Method for optimizing performance versus power consumption using external/internal clock frequency ratios
JP2923882B2 (ja) 1997-03-31 1999-07-26 日本電気株式会社 クロック供給回路を備える半導体集積回路
US5930496A (en) 1997-09-26 1999-07-27 Compaq Computer Corporation Computer expansion slot and associated logic for automatically detecting compatibility with an expansion card
JPH11184554A (ja) * 1997-12-24 1999-07-09 Mitsubishi Electric Corp クロック制御タイプ情報処理装置
US6070207A (en) 1998-01-26 2000-05-30 Intel Corporation Hot plug connected I/O bus for computer system
US6295568B1 (en) * 1998-04-06 2001-09-25 International Business Machines Corporation Method and system for supporting multiple local buses operating at different frequencies
US6185692B1 (en) 1998-05-12 2001-02-06 International Business Machine Corporation Data processing system and method for dynamically setting bus clock frequency in response to a number of loads
JP3573957B2 (ja) 1998-05-20 2004-10-06 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ内のプロセッサの動作速度制御方法及びコンピュータ
US6134621A (en) 1998-06-05 2000-10-17 International Business Machines Corporation Variable slot configuration for multi-speed bus
US6564279B1 (en) 1998-09-29 2003-05-13 Texas Instruments Incorporated Method and apparatus facilitating insertion and removal of modules in a computer system
US6510473B1 (en) * 1999-08-19 2003-01-21 Micron Technology, Inc. Apparatus and method for automatically selecting an appropriate signal from a plurality of signals, based on the configuration of a peripheral installed within a computing device
US6484222B1 (en) 1999-12-06 2002-11-19 Compaq Information Technologies Group, L.P. System for incorporating multiple expansion slots in a variable speed peripheral bus
US6772263B1 (en) 2000-08-10 2004-08-03 Serverworks Corporation PCI arbiter with hot plug controller support
US6782438B1 (en) 2000-08-31 2004-08-24 Hewlett-Packard Development Company, L.P. IO speed and length programmable with bus population
US6948020B1 (en) 2000-09-29 2005-09-20 International Business Machines Corporation Method and system for increasing control information from GPIOs
US6763478B1 (en) * 2000-10-24 2004-07-13 Dell Products, L.P. Variable clock cycle for processor, bus and components for power management in an information handling system
US6714890B2 (en) * 2000-12-29 2004-03-30 Intel Corporation Method, apparatus, and machine-readable medium to enhance microprocessor performance
DE10127424B4 (de) 2001-06-06 2004-09-02 Infineon Technologies Ag Elektronische Schaltung mit asynchroner Taktung von Peripherieeinheiten
US6963990B2 (en) * 2002-02-05 2005-11-08 International Business Machines Corporation Clock generation for multiple secondary buses of a PCI bridge
US6954813B2 (en) 2002-12-18 2005-10-11 International Business Machines Corporation Method, system and program product for facilitating hotplugging of multiple adapters into a system bus and transparently optimizing configuration of the system bus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009116862A (ja) * 2007-11-08 2009-05-28 Internatl Business Mach Corp <Ibm> 電子システムの電力管理の方法、システム、およびプログラム(電子システムの電力管理)
US8397097B2 (en) 2008-04-09 2013-03-12 Nec Corporation Computer system and operating method thereof

Also Published As

Publication number Publication date
US20050044440A1 (en) 2005-02-24
GB0417993D0 (en) 2004-09-15
GB2405240A (en) 2005-02-23
US7149913B2 (en) 2006-12-12
GB2405240B (en) 2006-07-12

Similar Documents

Publication Publication Date Title
JP2005071366A (ja) デバイス負荷に基づいたバスクロック周波数管理
JP2005071367A (ja) デバイスの帯域幅特性に基づいたバスクロック周波数管理
US7124315B2 (en) Blade system for using multiple frequency synthesizers to control multiple processor clocks operating at different frequencies based upon user input
US7337018B2 (en) Heat sink fan management based on performance requirements
CN104238712B (zh) 分布式功率输送
KR101173730B1 (ko) 동적 전력 감소
US8032768B2 (en) System and method for smoothing power reclamation of blade servers
US7055044B2 (en) System and method for voltage management of a processor to optimize performance and power dissipation
US20040030944A1 (en) System, method and apparatus for the frequency management of blades in a bladed architecture based on performance requirements
JP2005071365A (ja) アプリケーションプログラムの特性に基づくバスクロック周波数管理
US6983386B2 (en) Voltage management of blades in a bladed architecture system based on thermal and power budget allocation
TW200904061A (en) System and method for power management in a computing device for PoE
US20040030942A1 (en) Voltage modulation in conjunction with performance optimization at processor level
CN109388488B (zh) 计算机系统中的功率分配
US7076671B2 (en) Managing an operating frequency of processors in a multi-processor computer system
CN110096123A (zh) 一种具有可分级调整散热功能的电子装置
US7389435B2 (en) System and method for the frequency management of computer systems to allow capacity on demand
JP2020047247A (ja) 電力リソースを動的に割り当て、最適化する方法及びシステム
US7080263B2 (en) Voltage management of processors in a bladed system based on number of loaded processors
US20060271804A1 (en) Power consumption control for information handling system
CN103375420A (zh) 机柜系统及其风扇控制系统及其控制方法
US11733764B2 (en) Devices capable of detecting and allocating power and associated method
US20140122799A1 (en) Storage device and power saving method thereof
US11915061B2 (en) Datacenter efficiency management system for migrating workload across nodes based on workload performance efficiency ranking
US7707450B1 (en) Time shared memory access

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070109

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070316

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070322

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070405

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071009

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080107

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080212