(57)【要約】【課題】  プロセッサ・コアにおける周波数クロッキングのための方法およびシステムを提供することにある。【解決手段】  このシステムでは、少なくとも１つのプロセッサ・コアが提供され、その少なくとも１つのプロセッサ・コアは、可変周波数でアナログ出力クロック信号を生成するためのクロッキング・サブシステムを有する。デジタル周波数制御データおよびアナログ信号はどちらもその少なくとも１つのプロセッサ・コアに伝送され、そのプロセッサ・コアは受信したアナログ信号およびデジタル周波数制御データを使用して、クロッキング・サブシステムの出力クロック信号の周波数を設定する。好ましい一実現例では、複数コアが非同期的にクロックされ、コア周波数が独立して設定される。【選択図】  図１
2010524103.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ・コアにおける周波数クロッキングのための方法であって、
少なくとも１つのプロセッサ・コアを提供するステップであって、前記少なくとも１つのプロセッサ・コアが、可変周波数でアナログ出力クロック信号を生成するためのクロッキング・サブシステムを有するステップと、
前記少なくとも１つのプロセッサ・コアに
ｉ）所与の周波数のアナログ信号と、
ｉｉ）デジタル周波数制御データと、
を伝送するステップと、
前記少なくとも１つのプロセッサ・コアが、
ｉ）前記アナログ信号および前記デジタル周波数制御データを受信するステップと、
ｉｉ）前記アナログ信号および前記デジタル周波数制御データを使用して、前記クロッキング・サブシステムの前記出力クロック信号の周波数を設定するステップと、
を含む、方法。
【請求項２】
前記プロセッサ・コアがプロセッサ・チップ上にあり、前記プロセッサ・チップがチップ分配ＡＳＩＣを含み、前記伝送ステップが、
所与の周波数を有するアナログ・チップ基準信号を前記チップ分配ＡＳＩＣに伝送するステップと、
前記チップ分配ＡＳＩＣが、
ｉ）出力コア汎用アナログ信号を生成するステップであって、前記コア汎用アナログ信号が前記チップ基準信号の周波数より大きい周波数を有するステップと、
ｉｉ）前記少なくとも１つのプロセッサ・コアに前記コア汎用アナログ信号を伝送するステップと、
を含む、請求項１記載の方法。
【請求項３】
前記プロセッサ・チップがプロセッサ・モジュール上にあり、前記プロセッサ・モジュールがモジュール分配ＡＳＩＣを含み、前記アナログ・チップ基準信号を伝送する前記ステップが、
定義された周波数を有するアナログ１次基準信号を前記モジュール分配ＡＳＩＣに伝送するステップと、
前記モジュール分配ＡＳＩＣが、
ｉ）前記アナログ・チップ基準信号を生成するステップであって、前記アナログ・チップ基準信号の周波数が前記１次基準信号の周波数より大きいステップと、
ｉｉ）前記チップ分配ＡＳＩＣに前記アナログ・チップ基準信号を伝送するステップと、
を含む、請求項２記載の方法。
【請求項４】
前記提供ステップが、複数のプロセッサ・コアを提供するステップであって、前記プロセッサ・コアのそれぞれが、可変周波数でアナログ出力クロック信号を生成するためのそれぞれのクロッキング・サブシステムを有するステップを含み、
前記伝送ステップが、
ｉ）所与の周波数を有するアナログ基準信号をコア分配ＡＳＩＣに伝送するステップと、
ｉｉ）前記コア分配ＡＳＩＣが、出力コア汎用信号を生成するステップであって、前記コア汎用信号が前記基準信号の周波数より大きい周波数を有し、前記複数のプロセッサ・コアのそれぞれに前記コア汎用信号を伝送するステップと、
を含む、請求項１ないし３のいずれかに記載の方法。
【請求項５】
前記提供ステップが、追加の分配ＡＳＩＣを提供するステップを含み、
前記アナログ基準信号を前記コア分配ＡＳＩＣに伝送する前記ステップが、
ｉ）定義された周波数を有するアナログ１次基準信号を前記追加の分配ＡＳＩＣに伝送するステップと、
ｉｉ）前記追加の分配ＡＳＩＣが、前記アナログ・チップ基準信号を生成するステップであって、前記チップ基準信号の周波数が前記アナログ１次基準信号の周波数より大きく、前記コア分配ＡＳＩＣに前記アナログ・チップ基準信号を伝送するステップと、
を含む、請求項４記載の方法。
【請求項６】
プロセッサ・コアにおける周波数クロッキングのためのシステムであって、
少なくとも１つのプロセッサ・コア上の少なくとも１つのクロッキング・サブシステムであって、可変周波数でアナログ出力クロック信号を生成するための少なくとも１つのクロッキング・サブシステムと、
前記少なくとも１つのプロセッサ・コアにデジタル周波数制御データを伝送するためのデジタル伝送ネットワークと、
前記少なくとも１つのプロセッサ・コアに所与の周波数のアナログ信号を伝送するためのアナログ伝送ネットワークと、
を含み、
前記少なくとも１つのクロッキング・サブシステムが、
ｉ）前記アナログ信号および前記デジタル周波数制御データを受信するためのレシーバと、
ｉｉ）前記受信したアナログ信号および前記デジタル周波数制御データを使用して、前記プロセッサ・コアの前記クロッキング・サブシステムの前記出力クロック信号の周波数を設定するためのローカル・クロック・シンセサイザと、
を含む、システム。
【請求項７】
前記少なくとも１つのプロセッサ・コアがプロセッサ・チップ上にあり、前記アナログ伝送ネットワークが、
前記プロセッサ・チップ上のチップ分配ＡＳＩＣであって、所与の周波数を有するチップ基準アナログ信号を受信し、前記チップ基準信号の周波数より大きい周波数を有するコア汎用アナログ信号を生成するためのチップ分配ＡＳＩＣと、
前記チップ分配ＡＳＩＣから前記少なくとも１つのプロセッサ・コアに前記コア汎用アナログ信号を伝送するための第１の接続部と、
を含む、請求項６記載のシステム。
【請求項８】
前記プロセッサ・チップがプロセッサ・モジュール上にあり、前記アナログ伝送ネットワークが、
前記プロセッサ・モジュール上のモジュール分配ＡＳＩＣであって、定義された周波数を有するアナログ・モジュール基準信号を受信し、前記チップ基準信号を生成するためのものであって、前記チップ基準信号の周波数が前記アナログ・モジュール基準信号より大きいモジュール分配ＡＳＩＣと、
前記モジュール分配ＡＳＩＣから前記チップ分配ＡＳＩＣに前記チップ基準信号を伝送するための第２の接続部と、
をさらに含む、請求項７記載のシステム。
【請求項９】
複数のプロセッサ・コアにおける周波数クロッキングのためのシステムであって、前記プロセッサ・コアのそれぞれが、可変周波数でアナログ出力クロック信号を生成するためのそれぞれ１つのクロッキング・サブシステムを含み、
前記デジタル伝送ネットワークが、前記複数のプロセッサ・コアにデジタル周波数制御データを伝送し、
前記アナログ伝送ネットワークが、前記複数のプロセッサ・コアにアナログ信号を伝送し、
前記プロセッサ・コアのそれぞれが、デジタル周波数制御データおよび前記アナログ信号の１つを受信し、前記受信したデジタル周波数制御データおよび前記受信したアナログ信号を使用して、前記プロセッサ・コアの前記それぞれの前記クロッキング・サブシステムの周波数を設定する、請求項６、７、または８記載のシステム。
【請求項１０】
前記アナログ伝送ネットワークが、
ｉ）所与の周波数を有する基準アナログ信号を受信し、前記基準アナログ信号の周波数より大きい周波数を有するチップ・アナログ信号を生成するための第１レベル分配ＡＳＩＣと、
ｉｉ）前記第１レベル分配ＡＳＩＣから前記チップ・アナログ信号を受信し、前記チップ・アナログ信号の周波数より大きい周波数を有する汎用コア信号を生成するための第２レベル分配ＡＳＩＣと、
を含み、
前記プロセッサ・コアのそれぞれが、前記第２レベル分配ＡＳＩＣから前記汎用コア信号を受信する、請求項９記載のシステム。
【請求項１１】
マシンによって読み取り可能なプログラム記憶装置であって、少なくとも１つのプロセッサ・コアにおける周波数クロッキングのための方法ステップを実行するために前記マシンによって実行可能な複数命令からなるプログラムを具体的に実施するプログラム記憶装置であって、前記少なくとも１つのプロセッサ・コアが、可変周波数でアナログ出力クロック信号を生成するためのクロッキング・サブシステムを含み、前記方法ステップが、
前記少なくとも１つのプロセッサ・コアに
ｉ）所与の周波数のアナログ信号と、
ｉｉ）デジタル周波数制御データと、
を伝送するステップと、
前記少なくとも１つのプロセッサ・コアが、
ｉ）前記アナログ信号および前記デジタル周波数制御データを受信するステップと、
ｉｉ）前記アナログ信号および前記デジタル周波数制御データを使用して、前記クロッキング・サブシステムの前記出力クロック信号の周波数を設定するステップと、
を含む、プログラム記憶装置。
【請求項１２】
前記プロセッサ・コアがプロセッサ・チップ上にあり、前記プロセッサ・チップがチップ分配ＡＳＩＣを含み、前記伝送ステップが、
所与の周波数を有するアナログ・チップ基準信号を前記チップ分配ＡＳＩＣに伝送するステップと、
前記チップ分配ＡＳＩＣが、
ｉ）出力コア汎用アナログ信号を生成するステップであって、前記コア汎用アナログ信号が前記チップ基準信号の周波数より大きい周波数を有するステップと、
ｉｉ）前記少なくとも１つのプロセッサ・コアに前記コア汎用アナログ信号を伝送するステップと、
を含む、請求項１１記載のプログラム記憶装置。
【請求項１３】
前記プロセッサ・チップがプロセッサ・モジュール上にあり、前記プロセッサ・モジュールがモジュール分配ＡＳＩＣを含み、前記アナログ・チップ基準信号を伝送する前記ステップが、
定義された周波数を有するアナログ１次基準信号を前記モジュール分配ＡＳＩＣに伝送するステップと、
前記モジュール分配ＡＳＩＣが、
ｉ）前記アナログ・チップ基準信号を生成するステップであって、前記アナログ・チップ基準信号の周波数が前記１次基準信号の周波数より大きいステップと、
ｉｉ）前記チップ分配ＡＳＩＣに前記アナログ・チップ基準信号を伝送するステップと、
を含む、請求項１２記載のプログラム記憶装置。
【請求項１４】
前記方法ステップが、複数のプロセッサ・コアにおける周波数クロッキングのためのものであって、前記プロセッサ・コアのそれぞれが、可変周波数でアナログ出力クロック信号を生成するためのそれぞれのクロッキング・サブシステムを有し、
前記伝送ステップが、
ｉ）所与の周波数を有するアナログ基準信号をコア分配ＡＳＩＣに伝送するステップと、
ｉｉ）前記コア分配ＡＳＩＣが、出力コア汎用信号を生成するステップであって、前記コア汎用信号が前記基準信号の周波数より大きい周波数を有し、前記複数のプロセッサ・コアのそれぞれに前記コア汎用信号を伝送するステップと、
を含む、請求項１１、１２，または１３記載のプログラム記憶装置。
【請求項１５】
前記アナログ基準信号を前記コア分配ＡＳＩＣに伝送する前記ステップが、
定義された周波数を有するアナログ１次基準信号を追加の分配ＡＳＩＣに伝送するステップと、
前記追加の分配ＡＳＩＣが、前記アナログ・チップ基準信号を生成するステップであって、前記チップ基準信号の周波数が前記アナログ１次基準信号の周波数より大きく、前記コア分配ＡＳＩＣに前記アナログ・チップ基準信号を伝送するステップと、
を含む、請求項１４記載のプログラム記憶装置。
【請求項１６】
マルチコア・プロセッサ・チップにおける周波数クロッキングのためのシステムであって、前記コアのそれぞれが、可変周波数でアナログ・クロック信号を生成するためのクロッキング・サブシステムを含み、前記システムが、
前記コアのそれぞれに関連デジタル値を伝送するためのデジタル伝送ネットワークと、
前記コアのそれぞれに関連アナログ信号を伝送するためのアナログ伝送ネットワークと、
を含み、
前記コアのそれぞれが、前記コアに伝送された前記デジタル値および前記アナログ信号を使用して、最適プロセッサ・クロック周波数を前記コア上で生成する、システム。
【請求項１７】
前記アナログ伝送ネットワークが、
ｉ）所与の周波数を有する基準アナログ信号を受信し、前記基準アナログ信号の周波数より大きい周波数を有するチップ・アナログ信号を生成するための第１レベル分配ＡＳＩＣと、
ｉｉ）前記第１レベル分配ＡＳＩＣから前記チップ・アナログ信号を受信し、前記チップ・アナログ信号の周波数より大きい周波数を有する汎用コア信号を生成するための第２レベル分配ＡＳＩＣと、
を含み、
前記プロセッサ・コアのそれぞれが、前記第２レベル分配ＡＳＩＣから前記汎用コア信号を受信する、請求項１６記載のシステム。
【請求項１８】
前記プロセッサ・コアのそれぞれについて、それぞれの識別値および関連最適周波数値を保管するためのメモリ・ユニットをさらに含み、
前記デジタル伝送ネットワークが、前記プロセッサ・コアのそれぞれに関連する前記最適周波数値を前記プロセッサ・コアの前記それぞれに伝送し、
前記プロセッサ・コアのそれぞれが、前記プロセッサ・コアの他のコアによって生成された前記最適プロセッサ・クロック周波数とは無関係に、前記プロセッサ・コアの前記それぞれについて前記最適プロセッサ・クロック周波数を生成し、
前記メモリ・ユニット内の前記最適周波数値が時間の経過につれて変化し、
前記プロセッサ・コアのうちの１つに関連する前記最適周波数値が古い値から新しい値に変化すると、前記デジタル伝送ネットワークが前記プロセッサ・コアのうちの前記１つに前記新しい値を必ず伝送する、請求項１６記載のシステム。
【請求項１９】
複数のプロセッサ・コアを有するプロセッサ・チップに印加された電力を管理する方法であって、前記プロセッサ・コアのそれぞれが可変周波数でアナログ出力クロック信号を生成するためのクロッキング・サブシステムを含み、前記方法が、
前記プロセッサ・コアのそれぞれにアナログ信号およびデジタル周波数制御データを伝送して、前記プロセッサ・コアの前記出力クロック信号の周波数を設定するステップと、
選択された時間に前記プロセッサ・コアのうちの選択されたコアの前記クロッキング・サブシステムをスイッチオフして、前記プロセッサ・チップによる電力消費を管理するステップと、
を含む、方法。
【請求項２０】
前記スイッチ・ステップ中に前記プロセッサ・コアに実質的に一定の電源電圧を印加するステップをさらに含む、請求項１９記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データ処理システムに関し、より具体的には、プロセッサ・コアにおける周波数クロッキングに関する。さらにより具体的には、好ましい実施形態の本発明は、マルチチップ／マルチコア・プロセッサにおけるアナログ多周波クロッキングに関する。
【背景技術】
【０００２】
プロセッサ周波数スケーリングではもはや業界の性能拡大に対処できないので、性能を向上し続けるために、サーバは非常に多数のマルチコア・プロセッサ・チップを活用し始めている。また、マルチチップおよびマルチコア・プロセッサ・サーバ全域に高周波数クロッキングを伝送することに関連する難しさおよびハードウェア・コストの増大とともに信号整合性の懸念により、これは、今後のサーバ・システムに関する擁護しがたい長期戦略になる。クロック分配に関する現況技術は、伝送回線を使用する高速アナログ信号に基づくものである。この技法は、表皮効果、媒体およびコネクタ損失、クロストーク、終端不一致などによりスケーラビリティが限られている。現在の大規模サーバは、たとえば、典型的には２つのコアを含む、１１個以上のプロセッサ・チップを含む。チップ数とチップあたりのコア数はいずれも今後増加することが予想される。複数コアからなる複数チップのための高周波クロック（＞５〜１０ＧＨｚ）の伝送は、既知のボード技術およびコネクタでは実現可能ではない。対称型マルチプロセッサ（ＳＭＰ：Symmetric Multi-processor）など、密結合モードでこの構成を操作する必要性により、新しいクロッキング・パラダイムが必要になるであろう。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
コアが増えるほどマイクロプロセッサ・チップが大きくなるので、チップ全域で領域によってプロセスおよびパラメータが変動することは、各コアがそれぞれ異なるチップ電圧およびクロック周波数設定で最適電力／性能メトリックを有することを意味する。マルチコア・システム内の各コアについて最適性能を得ることは、現在、実現可能ではない。個別コア電圧領域は既知のものであって現況技術であるが、これは、最適コア性能を得るのではなく、チップ・レベルの電力を最適化する働きのみが可能である。コアあたりの個別周波数領域を有するサーバ・システムは、非常に複雑であり、業界では実践されていない。たとえば、複数のオフチップおよびオンチップ発振器が必要である。複数発振器によるＥＭＩ削減に使用されるスペクトル拡散クロッキングにより、「同期拡散（synchronous spreading）」は非常に困難になるかまたは不可能になる。従来技術は、クロックツリーとして知られる配線網全域におけるクロッキング信号の分配に基づくものである。マルチコア・マイクロプロセッサ内のコア数の拡大により、クロックツリーも非常に複雑なものになり、重大なチップ・レイアウト設計の問題をもたらし、最終製品歩留まりの減損および関連する製造コストの増加を引き起こす。
【課題を解決するための手段】
【０００４】
プロセッサ・コアにおける周波数クロッキングのための方法およびシステムが提供される。少なくとも１つのプロセッサ・コアが提供され、その少なくとも１つのプロセッサ・コアは、可変周波数でアナログ出力クロック信号を生成するためのクロッキング・サブシステムを有する。デジタル周波数制御データおよびアナログ信号はどちらもその少なくとも１つのプロセッサ・コアに伝送され、そのプロセッサ・コアは受信したアナログ信号およびデジタル周波数制御データを使用して、クロッキング・サブシステムの出力クロック信号の周波数を設定する。好ましい一実現例では、複数コアが非同期的にクロックされ、コア周波数が独立して設定される。
【０００５】
また、好ましい一実施形態では、複数のプロセッサ・コアが提供され、そのプロセッサ・コアのそれぞれは、可変周波数でアナログ出力クロック信号を生成するためのそれぞれのクロッキング・サブシステムを有する。この好ましい実施形態では、アナログ信号および個別デジタル周波数制御データが各プロセッサ・コアに伝送され、各プロセッサ・コアはそのコアに伝送されたアナログ信号およびデジタル周波数制御データを受信し、受信したアナログ信号およびデジタル制御データを使用して、プロセッサ・コアのクロッキング・サブシステムの出力クロック信号の周波数をローカルに（コア上で）設定する。
【０００６】
本発明の好ましい実施形態は、単一システム基準発振器を有するコンピューティング・システム（サーバ）クロッキング・サブシステムの解決策を提供し、これはＥＭＩ要件を満足するために拡散（スペクトル拡散）することができる。本発明は、各コアへの古典的なマルチカスケード・アナログ・ツリー分配ネットワークおよびデジタル・データ分配ネットワークを介して各コアへのクロック分配を達成する。各コアは両方の入力を取り、そのコア用の精密周波数クロックを生成し、これはそのコアに固有のものになる可能性がある。ローカル・コア・クロック・シンセサイザ周波数は、デジタル信号処理またはその他のデジタル手段を使用する操作の精密コア周波数を設定するためにアナログ・コア・クロック入力に併せて使用されるデジタル制御データによって決定される。この周波数は、サーバ・メーカまたは顧客によって設定されたポリシーに基づいて確立することができる。たとえば、この周波数は、すべてのコアに関する操作の特定の電圧に基づいて各コアの最大能力に設定することができる。
【０００７】
周波数制御情報は中速（１０〜１００Ｍｂ／ｓ）デジタル・データ・ワードとして各コアに送信され、これにより、高速アナログ信号伝送の問題を回避する。周波数制御情報は、デジタル・データの形になっているので、雑音耐性が高く、信号ひずみが低い。周波数制御情報は、個別制御データ・ワード（νデータ）として各コアに送信される。このデータは、サーバのＳＥＥＰＲＯＭからコアの「クロック・シンセサイザ・メモリ」にラッチされ、このＳＥＥＰＲＯＭはサーバ内の各コアに関する重要チップ・データ（ＶＣＤ：vital chipdata）を含む。単一システム基準発振器は中周波（１０〜１００ＭＨｚ）で設定され、これはアナログ伝送回線技法、フェーズ・ロック・ループ（ＰＬＬ：phase lockedloop）および再駆動回路を介して各コアに分配される。アナログ・クロック信号周波数は、高速ひずみ効果を回避するために個別コア・クロック・シンセサイザ以前は中程度に保持される。
【０００８】
システム基準クロック、チップ・クロック、および汎用コア・クロック信号は、安定したコア・クロックを維持するために絶えず必要である。しかし、速度νデータの変更があまり行われず、各コアごとにクロックを生成するために定期的なνデータの更新のみで十分であるように、基本コア動作周波数は滅多に変化しない（特定のスペクトル拡散技法を除く）。
【０００９】
各コアは、他のコアのそれぞれとは非同期に、しかもローカル・キャッシュに関して動作する。チップの種々の領域が非同期になると、領域間でデータを転送するために何らかのハンドシェーク／バッファリングが必要になり、したがって、待ち時間がいくらか追加されることは認識されるであろう。この待ち時間を最小限にするための技法が知られている。それにもかかわらず、その最大周波数で各コアを操作するという正味性能利得は相当なものになる（１０〜２０％）。
【００１０】
本発明は、マルチマイクロプロセッサ・コア・シリコン・チップを使用するものであれば、どの処理プラットフォームにも適用することができる。たとえば、クライアントｕＰプラットフォーム、記憶コントローラ、データ通信スイッチなどである。
【００１１】
本発明の追加の恩恵および利点は、添付図面に関連して示され、本発明の好ましい諸実施形態を明記し示す、以下の詳細な説明を考慮することにより明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】プロセッサ・サブシステムのアナログ多周波クロッキングを示す図である。
【図２】プロセッサ・チップのアナログ多周波クロッキングを示す図である。
【図３】本発明を実施するローカル・コア・クロック・シンセサイザを示す図である。
【図４】マルチコア・グループがＬ２キャッシュを共用する、代替プロセッサ構成を示す図である。
【図５】マルチコア・グループがＬ２キャッシュおよび共通ローカル・クロック発振器を共用する、他の代替プロセッサ構成を示す図である。
【発明を実施するための形態】
【００１３】
図１は、基本システム・クロックとしてサーバ基準発振器（νＲ）を利用する内部クロッキング機能（たとえば、デジタル信号プロセッサ（ＤＳＰ）コア・クロック発振器など）を有する複数のマイクロプロセッサ（ｕＰ）チップ（Ｎ）１０２からなる典型的なコンピューティング・サーバ１００を例示している。マルチチップ・モジュール（ＭＣＭ：Multi-chip Module）またはシステム・ボード上のマスタＰＬＬおよび分配ＡＳＩＣ（特定用途向け集積回路）は、基準クロック信号を逓倍し、再駆動し、ＭＣＭまたはシステム・ボード内の各ｕＰチップに分配する。マスタＰＬＬおよび分配ＡＳＩＣの出力は、プロセッサ・チップ全域に分配されるチップ・クロック信号（νｃｈ）である。
【００１４】
ｕＰ高速クロック（典型的には５〜１０ＧＨｚ）が安定し、プラットフォーム偏差要件（典型的には１０〜１００ｐｐｍ（百万分率））の範囲内に残存することを保証するために、実現可能なアップコンバージョン・レートを使用可能にするのに十分な速度で重大な信号劣化なしにＰＣボード全域で容易に経路指定できるように、基準発振器１０４のクロック周波数（νＲ）は、比較的低い周波数（典型的には１０〜１００ＭＨｚ）である。分配ネットワークは、一般に、アップコンバージョン・ポイントにおける信号再駆動による最良の基準クロック整合性のためにポイントツーポイント（図１に例示されている）である。第１のアップコンバージョンおよび再駆動ポイントは、サーバ内の各マイクロプロセッサ・チップごとにチップ周波数（νｃｈ）クロックを生成するために使用されるマスタＰＬＬ１０６である。マスタＰＬＬは、信号を再駆動するだけでなく、典型的には２〜１０ｘだけ基準発振器を逓倍する。次に、ｕＰチップ・クロック信号は、以下に記載する基本コア・クロックを生成するために各コア・クロック・シンセサイザが使用するために第２レベル分配ＡＳＩＣによりチップ内で分配される。
【００１５】
また、図１は、適切なコントローラ・インターフェース１１０、１１２、および１１４を介してｕＰチップからＩ／Ｏサブシステム、システム・メモリ、および外部システム・クラスタ化ファブリックへの相互接続も示している。クラスタ化ファブリックは、複数ＭＣＭが対称型マルチプロセッシング（ＳＭＰ：symmetric multi-processing）構成に接続される、より大型のマルチプロセッサ・サーバを構築するために複数ＭＣＭをまとめて相互接続するために使用される。ＳＭＰ構成では、メモリはＳＭＰ内のすべてのプロセッサに対してコヒーレントである。この場合、すべてのＭＣＭは単一基準発振器１０４（図１ではＭＣＭの外側に示されている）に同期している。
【００１６】
本発明の好ましい方法は、共通グラス・エポキシ・プリント回路（ＰＣ）ボード上に装着された複数の単一チップ・モジュール（ＳＣＭ：Single Chip Module）上に含まれるｕＰチップの構成について使用することもできる。この代替パッケージ構成は、より小型のシステムに使用することができる。この場合、分配ＡＳＩＣもシステム・ボード上のＳＣＭに装着され、各プロセッサ・チップへの相互接続はシステムＰＣボード配線を介して行われる。
【００１７】
ＭＣＭまたはＰＣボードあるいはその両方は、サーバ内の各コアに関する重要コア周波数データ（ＶＣＤ）を含む。この情報は、典型的には、シリアル電気消去可能プログラマブル読み取り専用メモリ（ＳＥＥＰＲＯＭ：Serial Electrically Erasable Programmable Read Only Memory）に維持される。このＳＥＥＰＲＯＭは、各接続プロセッサ（コア）に関する重要コア周波数データ（νデータ）を含む。「νデータ」は、適切なチップおよびコアの識別コード（Ｉｄ）とともに最適プロセッサ（コア）周波数のデジタル表現である。Ｉｄ情報は、各チップ上のすべてのコアについて、正確なＶＣＤが伝送され、そのチップ上のＶＣＤインターフェース機能に保管されることを保証するために使用される。ＶＣＤは、サービス・エレメント（ＳＥ：Service Element）によって収集された周波数特性データ、電圧特性データ、電力特性などから導出される。
【００１８】
ＳＥは、そのデータを分析して再フォーマットし、適切なデジタル・インターフェース（たとえば、Ｉ２Ｃ）を介してシステムＳＥＥＰＲＯＭにデータをロードする。ＳＥによって収集され分析されたデータの全体は、各コアに関する最適周波数、電圧などを設定して、可能な最高性能または顧客によって確立されたその他のポリシーを達成するために使用される。本発明の新規な一態様は、同じアナログ・クロック信号をすべてのコアに伝送するという現在の手法に対してアップコンバージョンされた基準クロックに併せてローカルに（コア内で）最適プロセッサ周波数を生成するためにデータを使用することである。
【００１９】
各コア／チップに関するデータは、製造プロセスのチップ・テスト／検証ステージ中に入手するかまたはサーバの電源投入シーケンス中のトレーニング・パラダイムの一部として入手することができる。後者の手法は、サーバの初期設定およびセットアップ・プロセスの一部になるであろう。
【００２０】
マルチコア（４）および共用Ｌ２キャッシュを有する代表的なサーバ・プロセッサ・チップ（典型的なサーバの場合、いくつかのうちの１つ）構成は図２の２００に例示されている。プロセッサ・チップ内の４コア・クロック・シンセサイザ２０２は、チップ上に含まれる第２レベル分配ネットワークにより、第２レベルＰＬＬおよび分配ＡＳＩＣ２０４から汎用コア・クロック（νｇｃ）を受信する。汎用コア・クロック信号（νｇｃ）は、マルチドロップ・バス（例示されている）またはポイントツーポイント・スター相互接続を使用して、各コアに伝送される。第２レベル分配ＡＳＩＣ２０４は、汎用コア・クロックを生成するために必要な周波数アップコンバージョン（典型的には１０〜２０ｘ）、再駆動回路、およびＶＣＤインターフェース機能のためのクロック（νｃｈ）を提供する。
【００２１】
ＶＣＤインターフェース機能は、適切なＩｄとともにチップ内の各コアの精密周波数を設定するための適切なデータを受信し保管するために、ＳＥＥＰＲＯＭ（図１を参照）へのＶＣＤインターフェースを含む。ＶＣＤインターフェース機能は、ＳＥＥＰＲＯＭに問い合わせて、（典型的にはＩ２Ｃインターフェースにより）そのコアに関する適切なデータを入手する。これは、この機能を実行するために、Ｉ２Ｃインターフェースに加えて、何らかのＳＲＡＭおよび状態マシンまたは小型のコントローラを含むことができる。また、ＶＣＤインターフェース機能は、適切なコア・シンセサイザのみにνデータを伝送することにより、分配機能を実行する。
【００２２】
νデータ内容の一部として、チップおよびモジュールの通し番号に関連する、固有のチップおよびコアＩｄが含まれる。このコアＩｄは、νデータを適切なポートに経路指定するためにＶＣＤインターフェース機能によって使用される。たとえば、コア「０」のためのνデータは、ポート「Ｄ０」（図２）に経路指定される。νデータは、クロック・シンセサイザに保管され、チップ上のＶＣＤ機能によって更新されるまで、プロセッサ・クロック周波数データとして使用される。いかなる変更も行われる予定がない場合、ＶＣＤインターフェース機能またはＳＥＥＰＲＯＭからいかなるデータも送信されない。νデータは絶えず送信されるのではなく、更新されたときのみ送信される。これは、信号を絶えず送信しなければならない、現況技術のアナログ技法とは対照的である。しかし、安定したコア・クロックを保証するために、アナログ・クロックは絶えず送信される。
【００２３】
各コア２０６は、マイクロプロセッサ、専用キャッシュ２１０、およびコア・クロック・シンセサイザ２０２からなる。コア周波数は、各コアについて、ＶＣＤ内のデジタルνデータおよびコア・クロック・シンセサイザによって設定される。各コアは、それぞれ異なる周波数設定を有する可能性がある。プロセッサ・チップ内のコアの数は、技術および製造プロセスの能力によって決定される。例示のため、図２には４つのコアが示されている。本明細書に記載する技術手法は、コアの数によって容易にスケーリングし、その数は今後おそらく増加するであろう。チップ２００は、Ｉ／Ｏコントローラ、メモリ・コントローラ、およびファブリック・コントローラへの適切なインターフェース２１０、２１２、２１４も含む。
【００２４】
コア・クロック・シンセサイザの設計は図３の３００に例示されている。これは、電圧制御の高速発振器（ＶＣＯ）３０２、低域フィルタ（ＬＰＦ）３０４、デジタル制御の整数Ｎ分周器３０６、デジタル信号プロセッサ（ＤＳＰ）３１２と併せて使用されるデルタシグマ変調器３１０からなる。この配置は、サーバの汎用コア・クロック動作周波数の上下で動作するよう各コア・クロックをチューニングするために使用される、既知のデルタシグマ端数Ｎシンセサイザの変形である。ＶＣＯ動作範囲、中心周波数、および電圧周波数変換特性は、ＶＣＯ設計および技術の一機能である。ＶＣＯは、所望の周波数を達成するために精密な増分でアナログ制御電圧を上下に変化させることにより、精密な端数周波数にチューニングされる。
【００２５】
ＶＣＯのコア・クロック出力の一部分は整数Ｎ分周器に送信され、その分周器はデルタシグマ変調器からの整数Ｎ値により着信コア・クロック周波数を分割する。デルタシグマ変調器は、分割比率の平均が入力された所望の端数分割比率に等しくなるように、時間離散整数値の出力ビット・ストリームを提供する。所望の端数分割比率はＤＳＰによって生成される。ＤＳＰ３１２は、所望のνデータ・デジタル周波数値を適切な端数分割比率に変換し、所望の最適コア周波数を発生させる。基準周波数は、所望の端数分割比率を決定するための基礎である、所望の汎用コア周波数に基づいて工場で設定することができる。
【００２６】
整数Ｎ分周器３０２の分割出力信号は、アナログ位相検出器３１４内の汎用コア周波数「νｇｃ」と位相比較される。２つの信号が一致する場合、いかなる位相訂正信号も生成されず、クロック・シンセサイザ・コア出力は、ＤＳＰに入力されたコアν．データによって定義された所望のコア周波数に等しくなる。不一致が存在する場合、訂正信号電圧が生成され、これは低域フィルタ（ＬＰＦ）３０４を通過して、電圧制御発振器（ＶＣＯ）３０２に印加される前に高周波雑音を除去する。エラー信号は、訂正信号をゼロに励起して、位相検出器で周波数一致を達成するための方向にその出力周波数を変更するようＶＣＯに指示する。
【００２７】
各コアはそれぞれ異なる周波数になる可能性があるので、電磁干渉（ＥＭＩ）に関連する問題は緩和される可能性があり、スペクトル拡散技法の必要性は最小限になる可能性がある。それにもかかわらず、この手法は、ＥＭＩをさらに削減するための現在の技術では入手できない新規なスペクトル拡散技法を提供する。たとえば、ＤＳＰは、体系的に定義済みの量を加算し、データ制御レジスタ３１６内のνデータ値から減算できるであろう。これは、平均値がいつでも基本νデータ値と同じであるように、実行される。各コア・クロック周波数（ＶＣＯ出力）は、各コアごとに独立して選択される、スペクトル拡散発振周波数に基づいて、平均周波数値あたりを発振することになる。この手法により、スペクトル拡散手法は各コアごとに非同期になることができ、それにより全体的なＥＭＩが低下する。代替方法は、スペクトル拡散発振周波数を各コアごとに同じにすることである。ハーモニック・ディザ・ドライバ（harmonic dither driver）はデルタシグマ変調器に固有のものであり、それにより、スペクトル拡散ＥＭＩ緩和を成し遂げるために外部ディザ変調器を追加する必要性を解消する。
【００２８】
もう１つの手法は、その平均あたりで基準発振器を変化させることである。この変形は、位相検出器内の比較のための周波数ベースを変更し、ＶＣＯコア周波数を変化させることになる。
【００２９】
図４は、マルチコア・グループ４０２、４０４がＬ２キャッシュ４０６、４１０を共用する代替プロセッサ・チップ構成（図２に対するもの）を４００で例示している。チップ４００は、Ｉ／Ｏコントローラ、メモリ・コントローラ、およびファブリック・コントローラへの適切なインターフェース（図示せず）も含む。汎用コア・クロック信号（νｇｃ）は各コア・クロック・シンセサイザ４１２にスター接続される。チップ・クロック（νｃｈ）は、マスタＰＬＬおよび分配ＡＳＩＣからＶＣＤインターフェース機能４１４に直接接続されているものとして示されているが、接続点で再駆動回路を含むことができる。図２について論じたデジタル・クロッキング属性および機能はこの構成にも適用される。図４の構成は、キャッシュ内の領域による変動に応じて、共通Ｌ２キャッシュ・クロッキング周波数または個別周波数を有することができるであろう。この配置は、ローカル・プロセッサ／Ｌ１キャッシュ・クロック・グリッドおよびＶdd（電源電圧）グリッドという配線リソースには最適である。
【００３０】
図３に示されている通り、マルチコア・プロセッサ・チップ上のＶＣＯから各コアへまたは複数コアの任意のグルーピングまたはサブセットへの出力信号は、ローカルにアドレス指定可能なスイッチまたは「ゲート制御」が前記コアまたは複数コアのグルーピングへの任意の経路を選択的に遮断できるようにする、普通の相互接続編成を提供する。本発明は電源または電力グリッド電圧の変化またはＶddの変化の使用に基づかないクロック周波数制御の方法を教示するので、事実上、ローカル・コア・クロック（複数も可）からスイッチオフすると、電力グリッド電源電圧に電力変動を誘導せずにきめ細かい電力管理が可能になる。このように、自律センサ回路によるワークロード・モニターはアイドル・コアをオフにするか、またはワークロードを再分配して、物理的に可能な最小電力ポイントで性能を最適化することができる。本発明は、クロック周波数変動に関する従来技術の手法で使用される電圧（または電力）グリッド変動または電圧アイランド設計に関連する雑音の影響を解消するという重大で見分けのつく利点を認識し、具体的に指摘している。
【００３１】
図５は、マルチコア・グループ５０２、５０４がＬ２キャッシュ５０６、５１０および共通ローカル・クロック発振器５１２、５１４を共用する、もう１つの代替プロセッサ・チップ構成を５００で例示している。この構成では、それぞれ４つのコアからなる各コア・グループは、１つのクロック発振器を含む。図５は、コア・クロックが２つのコアに分岐されるが、他の相互接続トポロジ（たとえば、スター）を使用できることを示している。また、このチップは、Ｉ／Ｏコントローラ、メモリ・コントローラ、およびファブリック・コントローラへの適切なインターフェース（図示せず）も含む。図２について論じたデジタル・クロッキング属性および機能はこの構成にも適用される。この構成は、コアのある領域およびローカル共用キャッシュに関する共通ローカル周波数を有する。コアまたはコア・グループによるクロッキングの細分性は、技術の変動、コアのサイズなどの性質に依存する。
【００３２】
本発明は、現在の現況技術では容易に入手可能ではない、あるレベルのスケーラビリティおよびフレキシビリティを可能にする。たとえば、本発明では、最適コア動作周波数はローカル周波数およびＶdd（電源電圧）を変更することによって決定することができ、本発明は、最適動作条件の現場較正（in-field calibration）を可能にする（プロセッサ回路が時間または環境上の動作条件につれて劣化する場合）。
【００３３】
また、本発明は、冗長クロックも可能にし、すなわち、各ローカル・クロック発振器は、ローカル・クロック発振器回路が故障した（または早期製造時に低い歩留まりを示す）場合に汎用システム・クロックまたは他のコアのクロックを使用できるようにする「バイパス」モードを有することができるであろう。本発明では、クロック情報は比較的低速のデジタル・フォーマット（データ）になっている。
【００３４】
本発明では、種々のタイプのキャッシュを使用することができる。たとえば、本発明は、コアと同期しているコア・キャッシュ（Ｌ１）とともに使用することができるが、そのコアとは別個のＶddで使用することができる。また、本発明は、１組のプロセッサ間で非同期的に共用されるキャッシュとともに使用することができ、本明細書ではシステム周波数（ｎｓ）で動作するものとして示されているが、このキャッシュはローカルの独立クロック発振器も有することができるであろう。
【００３５】
本発明では、種々のコア／領域／キャッシュが種々のＶddおよび種々の周波数を有することができ、ローカル・クロック・グリッド（複数も可）が、たとえば、ローカル・クロック・ソースによって駆動することができるか、またはグローバル・チップ・クロック・グリッドがグローバル・チップ・クロックによって駆動することができる。本発明はシステム基準発振器からのグローバル・スペクトル拡散を可能にし、各ローカル・クロック発振器はシステム基準発振器の拡散を追跡して、「位相外れの拡散」の問題を回避することができる。加えて、本発明では、ＤＳＰによるデジタル・スペクトル拡散技法も使用することができる。
【００３６】
本発明の諸態様はコンピュータ・プログラム（computerprogram product）で実施することができ、そのコンピュータ・プログラムは、本明細書に記載した方法の実現を可能にするそれぞれの特徴をすべて含み、コンピュータ・システムにロードされると、これらの方法を実行することができる。これに関連して、コンピュータ・プログラム、ソフトウェア・プログラム、プログラム、またはソフトウェアは、直接または（ａ）他の言語、コード、または表記への変換、または（ｂ）異なる物質的形式による複製のいずれか一方または両方の後、情報処理機能を有するシステムに特定の機能を実行させるための１組の命令を任意の言語、コード、または表記で表した任意の表現を意味する。
【００３７】
本明細書に開示された本発明は上記の諸目的を果たすために十分計算されたものであることは明らかであるが、当業者であれば多数の変更例および実施形態を考案することができることは認識され、特許請求の範囲は、本発明の真の精神および範囲に該当するこのような変更例および実施形態のすべてを含むことが意図されている。
【００３８】
疑いを回避するため、本明細書の詳細な説明および特許請求の範囲全域で使用する「含む（comprising）」という用語は、「のみから構成される（consistingonly of）」という意味として解釈すべきではない。
【図１】
2010524103.tif 000003
【図２】
2010524103.tif 000004
【図３】
2010524103.tif 000005
【図４】
2010524103.tif 000006
【図５】
2010524103.tif 000007
【国際調査報告】
2010524103.tif 000008
2010524103.tif 000009
2010524103.tif 000010
2010524103.tif 000011