(57)【要約】【課題】電圧の過渡現象に対して効果的に対応できるＣＰＵを提供する。【解決手段】中央処理装置（ＣＰＵ）は複数のクロックゾーンを含む。各クロックゾーンは、クロックゾーン内の電源装置の電圧を示す信号を生成する少なくとも１つのセンサと、クロックゾーンに可変周波数クロックを供給するクロック発生器と、少なくとも１つのセンサに応答して、クロック発生器の動作周波数を制御する第１のコントローラであって、１サイクルの待ち時間内の他のクロックゾーンの第１のコントローラからの周波数調整の伝達に応答して動作周波数をさらに制御する、第１のコントローラと、１サイクルの待ち時間を越える他のクロックゾーンからの周波数調整の伝達に応答して、クロック発生器の第１のコントローラからの調整信号と組み合わされるオーバードライブ信号を供給する第２のコントローラと、を備える。【選択図】図１
2005115944.tif 000002
【特許請求の範囲】
【請求項１】
複数のクロックゾーンを含む中央処理装置（ＣＰＵ）であって、
クロックゾーンそれぞれにおいて、
前記クロックゾーン内の電源装置の電圧を示す信号を生成する少なくとも１つのセンサ（１０２）と、
前記クロックゾーンに可変周波数クロックを供給するクロック発生器（１０５）と、
前記少なくとも１つのセンサに応答して前記クロック発生器の動作周波数を制御する第１のコントローラ（１０４）であって、１サイクルの遅延時間内の他のクロックゾーンの第１のコントローラからの周波数調整の伝達に応答して前記動作周波数をさらに制御する第１のコントローラ（１０４）と、
１サイクルの遅延時間の範囲を越える他のクロックゾーンからの周波数調整の伝達に応答して、前記クロック発生器の前記第１のコントローラからの調整信号と組み合わされるオーバードライブ信号を供給する第２のコントローラ（１０３）と
を有するＣＰＵ。
【請求項２】
前記クロック発生器は、クロックサイクルごとに有限のクロック調整のみを実施する
請求項１に記載のＣＰＵ。
【請求項３】
ローカルゾーンそれぞれは、
前記クロックゾーンと他のクロックゾーンとの間の周波数の不一致の記録を保全する周波数不一致ロジックと、
前記クロックゾーンと他のクロックゾーンとの間の位相の不一致の記録を保全する位相不一致ロジックと
を有する
請求項１に記載のＣＰＵ。
【請求項４】
前記位相不一致ロジックによって記録された位相の不一致が閾値を越えている場合に、前記第２のコントローラは、より大きな周波数調整を適用する
請求項３に記載のＣＰＵ。
【請求項５】
ローカルゾーンそれぞれは、
前記ローカルゾーンの前記第１のコントローラにより実行される同時の周波数調整の原因となる１サイクルの遅延時間の範囲を超える他のクロックゾーンからの周波数調整の伝達をフィルタリングするフィルタ
をさらに含む
請求項１に記載のＣＰＵ。
【請求項６】
複数のクロックゾーンを含む中央処理装置（ＣＰＵ）を動作させる方法であって、
クロックゾーンそれぞれにそれぞれの可変周波数クロックを生成すること、
クロックゾーンそれぞれのセンサ（１０２）を動作させることであって、それによって、クロックゾーンそれぞれの電源装置の電圧を示す信号を生成する、クロックゾーンそれぞれのセンサ（１０２）を動作させること、
前記センサにより生成された前記信号に応答して、第１のコントローラ（１０４）により、クロックゾーンそれぞれの前記それぞれの可変周波数クロックを調整すること、
１サイクルの遅延時間内の他のクロックゾーンの周波数調整の伝達に応答して、前記第１のコントローラにより、クロックゾーンそれぞれの前記それぞれの可変周波数クロックを調整すること、および、
１サイクルの遅延時間の範囲を越える他のクロックゾーンからの周波数調整の伝達に応答して、第２のコントローラ（１０３）により、前記第１のクロックコントローラからの調整信号と組み合わされるオーバードライブ信号を生成することによって前記それぞれの可変周波数クロックを調整すること
を含む方法。
【請求項７】
可変周波数クロックそれぞれは、クロックサイクルごとに、有限数の離散的な調整によってのみ調整されうる
請求項６に記載の方法。
【請求項８】
前記第１のコントローラそれぞれにより使用されていない可変周波数クロックそれぞれのクロック調整能力それぞれを決定すること
をさらに含む
請求項７に記載の方法。
【請求項９】
クロックゾーンそれぞれと他のクロックゾーンとの間の周波数の不一致の記録を保全すること、および、
クロックゾーンそれぞれと他のクロックゾーンとの間の位相の不一致の記録を保全すること
をさらに含む
請求項６に記載の方法。
【請求項１０】
クロックゾーンそれぞれの中において、このクロックゾーンそれぞれの第１のコントローラそれぞれにより実行される同時の周波数調整の原因となる１サイクルの遅延時間の範囲を越える他のクロックゾーンからの周波数調整の伝達をフィルタリングすること
をさらに含む
請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の可変周波数クロック発生器のクロック周波数制御を行うＣＰＵに関する。
【０００２】
［関連出願］
本出願は、「CENTRAL PROCESSING UNIT WITH MULTIPLE CLOCK ZONES AND OPERATING METHOD」という発明の名称の米国特許出願第１０／６７９，７２５号に関連する。
【背景技術】
【０００３】
中央処理装置（ＣＰＵ）では、さまざまな論理コンポーネントの動作が、一般にフェーズロックループ（ＰＬＬ）を利用して生成されるシステムクロックによって制御される。
これらのさまざまな論理コンポーネントの動作は、相互に関係しており、したがって、さまざまな回路パスタイミング制約条件が通常存在する。
ＣＰＵの動作中における回路パスに関連した実際のタイミングは、ＣＰＵのさまざまなコンポーネントに供給される電圧に依存する場合がある。
これらのタイミング制約条件を満たすことを確実にし、かつ、ＣＰＵが予想どおりに動作することを確実にするために、システムクロックの周波数は、最悪の場合の基準に従って選択されることがある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
比較的大きく複雑なＣＰＵでは、ＣＰＵのさまざまなコンポーネントに供給される供給電圧が、さまざまな理由から変化することがある。
システムクロックの周波数が、さまざまなコンポーネントのすべての最悪の場合の基準に従って選択されると、システム性能は、かなり制限されるおそれがある。
【課題を解決するための手段】
【０００５】
一実施の形態において、中央処理装置（ＣＰＵ）は複数のクロックゾーンを含む。
各クロックゾーンは、クロックゾーン内の電源装置の電圧を示す信号を生成する少なくとも１つのセンサと、クロックゾーンに可変周波数クロックを供給するクロック発生器と、少なくとも１つのセンサに応答して、クロック発生器の動作周波数を制御する第１のコントローラであって、１サイクルの待ち時間内の他のクロックゾーンの第１のコントローラからの周波数調整の伝達に応答して動作周波数をさらに制御する、第１のコントローラと、１サイクルの待ち時間を越える他のクロックゾーンからの周波数調整の伝達に応答して、クロック発生器の第１のコントローラからの調整信号と組み合わされるオーバードライブ信号を供給する第２のコントローラと、を備える。
【発明を実施するための最良の形態】
【０００６】
いくつかの代表的な実施の形態は、ＣＰＵ内の複数のゾーンに可変周波数クロックを供給するシステムおよび方法を対象としている。
各ゾーンは、１つまたはいくつかの領域電圧検出器を含むことができる。
検出された電圧に応じて、各ゾーン向けに生成されるクロックの周波数は、適宜、変化されることができる。
クロック周波数の変化は、位相コントローラによって実施されることができる。
位相コントローラは、自身のクロック周波数を変更すると、１サイクルの遅延時間でゾーンにその変更を伝達することができる。
周波数調整の伝達を受け取った位相コントローラは、次のサイクル中に自身の周波数を変更して、周波数の不一致に適応することができる。
また、伝達遅延時間のため、それらの他の位相コントローラは、１サイクルの遅延時間の間に存在した周波数の相違によって生成された位相不一致に対処する。
【０００７】
いくつかの代表的な実施の形態では、十分に大きなＣＰＵが使用されるので、選択された位相コントローラは、１サイクルの遅延時間の範囲を越えて配置される。
いくつかの代表的な実施の形態は、各ゾーンのそれぞれの階層コントローラを利用して、１サイクルの遅延時間の範囲を越えて配置された特定の位相コントローラにより、自身のゾーン内のクロック周波数が変更された時に生み出される位相および周波数の不一致に対処する。
いくつかの代表的な実施の形態の解説を容易にするために、最初の調整がなされるゾーンを「開始側」ゾーンと呼び、それ以外のすべてのゾーンを「対象側」ゾーンと呼ぶことにする。
電圧センサに応答して開始側ゾーンで調整が行われた結果、対象側ゾーンは、位相および周波数の不一致を招くが、これらの不一致はゼロにされる。
いくつかの代表的な実施の形態では、階層コントローラが、位相コントローラと連係して、位相および周波数の不一致をゼロにする。
具体的には、各位相コントローラは、単一サイクルの間に自身のゾーンのクロック周波数を調整する有限の能力をもつことができる。
階層コントローラは、位相コントローラの未使用の調整能力を利用して、１サイクルの遅延時間の範囲を越えるゾーンに関連した位相および周波数の不一致をゼロにすることができる。
【０００８】
図１は、代表的な一実施の形態による比較的高いレベルのＣＰＵ１００を示している。
ＣＰＵ１００は、既知のように、多数の機能ブロックおよびコンポーネント（図示せず）を収容することができる。
ＣＰＵ１００は、複数のゾーン（１０１ａから１０１ｄとして図示）に従って、機能ブロックおよびコンポーネントに各クロックを提供する構造を含む。
ゾーン１０１ａから１０１ｄは、伝達遅延時間の量を変化させることによって、互いに区分される。
例えば、ゾーン１０１ａとゾーン１０１ｃとは、１サイクルの遅延時間によって区分され、ゾーン１０１ｂとゾーン１０１ｄとは、１サイクルの遅延時間によって区分される。
ゾーン１０１ａおよびゾーン１０１ｃは、ゾーン１０１ｂおよびゾーン１０１ｄと２サイクル以上の遅延時間によって区分される。
【０００９】
各ゾーンは、それぞれの可変クロック発生器１０５を含む。
可変クロック発生器１０５は、マスタフェーズロックループ（ＰＬＬ）１０６から得られる各ゾーン用のローカルクロックを生成する。
いくつかの代表的な実施の形態では、可変クロック発生器１０５は、単一サイクル内でローカルクロックの周波数を変更する有限の能力をもつことができる。
例えば、可変クロック発生器１０５は、−１「チック」、＋１「チック」および＋２「チック」だけ自身のクロック周期を変更することにより自身の周波数を調整することに限定される場合がある。
ここで、１チックは、マスタＰＬＬ１０６からの入力クロックの周期の適切な分数（例えば１／６４）である。
【００１０】
各位相コントローラ１０４は、１つまたはいくつかの領域電圧検出器１０２（あるいは、温度センサ）から入力信号を受け取り、可変クロック発生器１０５を制御する。
具体的には、各領域電圧検出器１０２は、ＣＰＵの局所エリア内のＣＰＵ電源装置の電圧を監視する。
各局所エリア内の電圧が、その局所エリア内の回路パスタイミング制約条件を保証するのに適した閾値よりも下がると、領域電圧検出器１０２は、電圧状況を示す信号を生成して、位相コントローラ１０４に伝達する。
次に、位相コントローラ１０４は、可変クロック発生器１０５に適切な信号を供給して、領域電圧検出器１０２から信号を受信したのと同じサイクル内で自身の周波数を変更する。
【００１１】
位相コントローラ１０４の１つ（開始側コントローラ）が、自身のゾーン内のローカルクロックの周波数の変更を引き起こすと、その位相コントローラ１０４は、１サイクルの遅延時間内に、この情報を他の位相コントローラ１０４（対象側コントローラ）に伝達する。
例えば、ゾーン１０１ａの位相コントローラ１０４は、自身のクロック周波数の調整をゾーン１０１ｃの位相コントローラ１０４に伝達する。
この伝達は、１サイクルの遅延時間に従って行われるので、このクロック周波数の調整の伝達を受け取った対象側位相コントローラ１０４に関連したクロックも、その周波数調整に関連したクロックに対して位相ずれの状態となる。
この位相ずれを補償するために、対象側位相コントローラ１０４は、一時的に、伝達された周波数調整を越えてクロックの周波数を調整し、位相ずれをゼロにする。
位相ずれがゼロにされると、対象側位相コントローラ１０４は、（反対方向に）別の周波数調整を引き起こし、自身のローカルクロックの周波数を開始側位相コントローラ１０４のクロックの周波数に一致させる。
【００１２】
いくつかの代表的な実施の形態は、階層コントローラ１０３を利用して、２サイクル以上の遅延時間によって区分されたゾーン間の位相および周波数の不一致を管理する。
さらに、可変クロック発生器１０５が自身のクロックの周期を調整できる能力は限られているので、階層コントローラ１０３は、位相コントローラ１０４によって使用されていない調整能力を利用して、１サイクルの遅延時間の範囲を越えるゾーンの位相および周波数の不一致をゼロにする。
階層コントローラ１０３は、（複数の位相コントローラ１０４の調整が衝突することから）必ずしも、任意の特定の時刻に周波数調整を引き起こすことができるとは限らないので、階層コントローラ１０３は、複数サイクルにわたる位相の不一致を累積して、ゾーン１０１間の永続的なクロックスキューを防止することができる。
【００１３】
図２は、代表的な一実施の形態による位相コントローラ１０４に接続された階層コントローラ１０３の一実施態様を示している。
複数の入力ラインは、ローカルクロックの調整を制御する信号を供給する。
「ＣＯＲＥ（コア）」入力ラインは、２サイクル以上の遅延時間によって区分された他のゾーンからの周波数調整の伝達を受け取る。
「Ｒ」で示される入力ラインは、そのローカルゾーンに関連した領域電圧検出器（複数可）１０２からの信号を受け取る。
「Ｄ」ラインは、１サイクルの遅延時間によって区分された他のゾーンからの周波数調整の信号を受け取る。
「ＰＣＳＭ」ラインは、位相コントローラ１０４から階層コントローラ１０３へ、位相コントローラ１０４の状態を出力するのに使用される。
【００１４】
「Ｃ」フィルタ２０１は、「Ｒ」ライン、「Ｄ」ラインおよび「ＣＯＲＥ」ラインから受け取った信号を処理する。
「Ｃ」フィルタ２０１の目的は、「Ｒ」ラインおよび「Ｄ」ラインのいずれかまたは双方からの信号に応答してすでに引き起こされた周波数調整と重複する周波数調整を引き起こすことになる周波数調整の伝達をフィルタリングすることである。
具体的には、別のゾーンの位相コントローラ１０４が、ローカルゾーンの周波数調整と同時に発生した周波数調整を伝達すると、「Ｃ」フィルタ２０１は、その発生を検出し、ＣＯＲＥラインから受け取ったリモートの周波数調整信号をフィルタリングする。
【００１５】
ブロック予測ロジック２０２は、「Ｒ」ライン、「Ｄ」ラインおよび「ＰＣＳＭ」ラインから信号を受け取る。
ブロック予測ロジック２０２は、これらの信号から、未使用の調整能力が利用可能かどうか、すなわち、位相コントローラ１０４が、クロック周波数の上方または下方への最大調整を単独で引き起こすことになるかどうかを判断する。
未使用の調整能力が利用可能でない場合、ブロック予測ロジック２０２は、階層コントローラ１０３が、その時点のサイクルで、限られた周波数調整（仮にあったとしても）しか行うことができないことを示す信号を生成することができる。
ブロック予測ロジック２０２からのこの信号に応答して、周波数不一致ロジック２０３は、複数サイクルにわたる周波数の不一致を追跡する機能を実施する。
例えば、周波数不一致ロジック２０３を利用することによって、階層コントローラ１０３は、位相コントローラ１０４に関連した未使用の調整能力の不足により、リモートの周波数調整に関連した周波数の不一致に直ちに対処できないという可能性の原因を明らかにすることができる。
その上、位相不一致ロジック２０４は、複数サイクルにわたる位相の不一致を累積する。
【００１６】
階層コントローラ状態機械（ＨＣＳＭ）ロジック２０５は、位相コントローラ１０４に伝達されるオーバードライブ信号を生成する。
このオーバードライブ信号は、利用可能な周波数調整能力を利用して、２サイクル以上の遅延時間によって区分されたゾーン間の周波数および位相の不一致をゼロにする。
オーバードライブ信号は、階層コントローラ１０３から位相コントローラ１０４へ伝達され、位相コントローラ１０４において、オーバードライブ信号は、最大調整能力を受ける位相コントローラ１０４の周波数調整と合計される。
【００１７】
図３は、代表的な一実施の形態によるＨＣＳＭロジック２０８によって実施されうる状態および状態遷移を表すマルコフチェーンを示している。
状態遷移に利用される表記において、符号「Ｃ」は、フィルタ２０１によって生成されたフィルタリング信号を指す。
符号「ＦＭ」は、ローカルクロックと「仮想」クロックゾーンとの間に存在する周波数の不一致量を指す。
この「仮想」クロックゾーンは、すべての電圧センサに対する瞬時の応答が行われた場合に、各クロックゾーンの周波数および位相が存在すべき場所を表す。
符号「ＰＭ」は、ローカルクロックとＣＰＵ１００内の仮想クロックとの間に存在する位相の不一致量を指す。
「ＺＥＲＯ」は、位相の不一致（ＰＭ）がゼロに等しい状況を指す。
「ＳＬＯＷ」は、位相の不一致が０チックよりも大きく、１０チック未満である状況を指す。
「ＦＡＳＴ」は、位相の不一致が１０チックよりも大きい状況を指す。
符号「ＯＤ」は、状態遷移が起こるサイクル中に発生する階層コントローラ１０３から位相コントローラ１０４への出力を指す。
【００１８】
状態３０１は、ＨＣＳＭロジック２０８が、位相コントローラ１０４へ伝達されるオーバードライブ信号をその時点で生成していない状態を表す。
状態３０２は、周波数および位相の不一致が、通常の状態に従ってゼロにされる状態を表す。
状態３０３は、位相の不一致が「高速手法」状態に従って対処される状態を表す。
具体的には、十分大きな周波数または位相の不一致が検出されると、ＨＣＳＭロジック２０８は、できるだけ素早くその不一致をゼロにするように試みて、許容可能なレベル内でコア間のクロックスキューを維持しようとする。
したがって、図３に示すような状態遷移は、位相の不一致が、１０チックよりも大きい（すなわちＦＡＳＴ状況が存在する）かどうかと、周波数の不一致量とに大きく依存する。
さまざまなゾーン間の位相の不一致は、所定の離散的なチック数に厳密には限定されないが、位相の不一致は、位相補償の大きな減衰性のために限定されている。
具体的には、状態機械が、いくつかの代表的な実施の形態に従って適切に実施されると、統計的分析を利用することにより、非常にまれな状況を除けばすべて、ゾーン間のクロックスキュー（位相の不一致）が許容可能なレベルで維持されることが実証されうる。
【００１９】
いくつかの代表的な実施の形態は、多くの利点を提供することができる。
具体的には、いくつかの代表的な実施の形態によって、ＣＰＵ内の電圧の過渡現象に対してなされる比較的高速な応答が可能になる。
このような応答を可能にすることによって、タイミングの問題に対して必要とされるガードバンドは、比較的小さくなる。
その上、ＣＰＵ設計におけるタイミング制約条件を分析するための最悪の場合の前提も削減される。
いくつかの代表的な実施の形態によって、このような応答を比較的大きなＣＰＵ上で行うことがさらに可能になる。
さらに、大きなＣＰＵ内のさまざまなコンポーネントのクロックスキュー（位相の不一致）は、周波数調整に関連した過度の位相の不一致に対する適切な応答を使用することによって、許容可能なレベル内に維持されることができる。
【図面の簡単な説明】
【００２０】
【図１】複数のクロックゾーンを有する中央処理装置（ＣＰＵ）を示す図である。
【図２】クロックゾーン間の周波数および位相を同期させる階層コントローラを示す図である。
【図３】階層コントローラの状態機械のマルコフチェーンを示す図である。
【符号の説明】
【００２１】
１００・・・ＣＰＵ
１０１・・・ゾーン
１０２・・・領域電圧検出器
１０３・・・階層コントローラ
１０４・・・位相コントローラ
１０５・・・可変クロック発生器
１０６・・・マスタＰＬＬ
２０１・・・「Ｃ」フィルタ
２０２・・・ブロック予測ロジック
２０３・・・周波数不一致ロジック
２０４・・・位相不一致ロジック
２０５・・・ＨＣＳＭロジック
３０１・・・アイドル状態
３０２・・・状態１
３０３・・・状態２
【図１】
2005115944.tif 000003
【図２】
2005115944.tif 000004
【図３】
2005115944.tif 000005