(57)【要約】      （修正有）【課題】オンチップ・システムに必要とされる急激な周波数の変化を可能とする方法および装置を提供する。【解決手段】オンチップ・システムに対して２倍速クロックが立ち上がるたびに増分される自走カウンタの出力を、クロック整形ロジック・ユニットの比較器に送るステップと、中央処理装置（ＣＰＵ）からの少なくとも一つの入力であって所望の周波数を特定する入力をクロック整形ロジック・ユニットの比較器に送るステップとを備える方法及び装置が提供される。該方法及び装置は、また、自走カウンタの出力と所望の周波数を特定する少なくとも一つの入力とに基づいて、自走カウンタの出力のビット反転されたものと所望の周波数を特定する少なくとも一つの入力とを比較することにより、クロック整形ロジック・ユニットにおいて中央処理装置（ＣＰＵ）クロックを生成するステップを備える。【選択図】図１
2004303235.tif 000002
【特許請求の範囲】
【請求項１】
オンチップ・システムに対して２倍速クロックが立ち上がるたびに増分される自走カウンタの出力を、クロック整形ロジック・ユニットの比較器に送るステップと、
中央処理装置（ＣＰＵ）からの少なくとも一つの入力であって所望の周波数を特定する入力を、前記クロック整形ロジック・ユニットの前記比較器に送るステップと、
前記自走カウンタの出力と前記所望の周波数を特定する前記の少なくとも一つの入力とに基づいて、前記自走カウンタの出力のビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力とを比較することにより、前記クロック整形ロジック・ユニットにおいて中央処理装置（ＣＰＵ）クロックを生成するステップと、
を備える方法。
【請求項２】
請求項１記載の方法であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記ステップが、更に、前記所望の周波数を常に調整するステップを備える方法。
【請求項３】
請求項２記載の方法であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記ステップが、更に、前記自走カウンタの出力の前記ビット反転されたものが前記所望の周波数を特定する前記の少なくとも一つの入力より大きくない場合にのみ入力を反転させるクロック・フロップの出力を用いて、前記中央処理装置（ＣＰＵ）クロックを決定するステップを備える方法。
【請求項４】
請求項１記載の方法であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記ステップが、更に、ハードウェア及びソフトウェアの少なくともいずれかにおいて、前記中央処理装置（ＣＰＵ）で実行するよう求められる作業量の測定値に基づいて前記所望の周波数を調整するステップを備える方法。
【請求項５】
請求項４記載の方法であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記ステップが、更に、前記自走カウンタの出力の前記ビット反転されたものが前記所望の周波数を特定する前記の少なくとも一つの入力より大きくない場合にのみ入力を反転させるクロック・フロップの出力を用いて、前記中央処理装置（ＣＰＵ）クロックを決定するステップを備える方法。
【請求項６】
請求項１記載の方法であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記ステップが、更に、特定の条件が発生する場合に前記所望の周波数を調整するステップを備える方法。
【請求項７】
請求項６記載の方法であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記ステップが、更に、前記自走カウンタの出力の前記ビット反転されたものが前記所望の周波数を特定する前記の少なくとも一つの入力より大きくない場合にのみ入力を反転させるクロック・フロップの出力を用いて、前記中央処理装置（ＣＰＵ）クロックを決定するステップを備える方法。
【請求項８】
請求項１記載の方法であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記ステップが、更に、前記中央処理装置（ＣＰＵ）クロックを高速に保って前記中央処理装置（ＣＰＵ）における処理を終了させてから、低速に戻すステップを備える方法。
【請求項９】
請求項８記載の方法であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記ステップが、更に、前記自走カウンタの出力の前記ビット反転されたものが前記所望の周波数を特定する前記の少なくとも一つの入力より大きくない場合にのみ入力を反転させるクロック・フロップの出力を用いて、前記中央処理装置（ＣＰＵ）クロックを決定するステップを備える方法。
【請求項１０】
請求項１記載の方法であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記ステップが、更に、前記自走カウンタの出力の前記ビット反転されたものが前記所望の周波数を特定する前記の少なくとも一つの入力より大きくない場合にのみ入力を反転させるクロック・フロップの出力を用いて、前記中央処理装置（ＣＰＵ）クロックを決定するステップを備える方法。
【請求項１１】
請求項１記載の方法であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記ステップが、更に、前記自走カウンタの出力の前記ビット反転されたものが前記所望の周波数を特定する前記の少なくとも一つの入力より小さい場合に立ち上がる入力を有するクロック・フロップの出力を用いて、前記中央処理装置（ＣＰＵ）クロックを決定するステップを備える方法。
【請求項１２】
請求項１記載の方法において、コンピュータ読み取り可能なプログラム記憶装置内にコード化された命令であって、コンピュータにより実行される際に前記方法を実行する命令により実行される方法。
【請求項１３】
請求項１記載の方法であって、前記方法を実行するようプログラムされたコンピュータにより実行される方法。
【請求項１４】
請求項１記載の方法であって、オンチップ・システム内で実行される方法。
【請求項１５】
比較器を有するクロック整形ロジック・ユニットと、
前記クロック整形ロジック・ユニットの前記比較器に出力を送ることができる自走カウンタであって、オンチップ・システムに対して２倍速クロックが立ち上がるたびに増分される自走カウンタと、
所望の周波数を特定する少なくとも一つの入力を前記クロック整形ロジック・ユニットの前記比較器に送ることができる中央処理装置（ＣＰＵ）であって、前記クロック整形ロジック・ユニットが、前記自走カウンタの出力と前記所望の周波数を特定する前記の少なくとも一つの入力とに基づいて、前記自走カウンタの出力のビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力とを比較することにより、中央処理装置（ＣＰＵ）クロックを生成することができる中央処理装置（ＣＰＵ）と、
を備える装置。
【請求項１６】
請求項１５記載の装置であって、前記クロック整形ロジック・ユニットが前記所望の周波数を常に調整することが可能である装置。
【請求項１７】
請求項１６記載の装置であって、前記クロック整形ロジック・ユニットが、前記自走カウンタの出力の前記ビット反転されたものが前記所望の周波数を特定する前記の少なくとも一つの入力より大きくない場合にのみ入力を反転させるクロック・フロップの出力を用いて、前記中央処理装置（ＣＰＵ）クロックを決定することが可能である装置。
【請求項１８】
請求項１５記載の装置であって、前記クロック整形ロジック・ユニットが、ハードウェア及びソフトウェアの少なくともいずれかにおいて、前記中央処理装置（ＣＰＵ）で実行するよう求められる作業量の測定値に基づいて、前記所望の周波数を調整することが可能である装置。
【請求項１９】
請求項１８記載の装置であって、前記クロック整形ロジック・ユニットが、前記自走カウンタの出力の前記ビット反転されたものが前記所望の周波数を特定する前記の少なくとも一つの入力より大きくない場合にのみ入力を反転させるクロック・フロップの出力を用いて、前記中央処理装置（ＣＰＵ）クロックを決定することが可能である装置。
【請求項２０】
請求項１５記載の装置であって、前記クロック整形ロジック・ユニットが、特定の条件が起こる場合に前記所望の周波数を調整することが可能である装置。
【請求項２１】
請求項２０記載の装置であって、前記クロック整形ロジック・ユニットが、前記自走カウンタの出力の前記ビット反転されたものが前記所望の周波数を特定する前記の少なくとも一つの入力より大きくない場合にのみ入力を反転させるクロック・フロップの出力を用いて、前記中央処理装置（ＣＰＵ）クロックを決定することが可能である装置。
【請求項２２】
請求項１５記載の装置であって、前記クロック整形ロジック・ユニットが、前記中央処理装置（ＣＰＵ）クロックを高速に保って中央処理装置（ＣＰＵ）における処理を終了させてから、低速に戻すことが可能である装置。
【請求項２３】
請求項２２記載の装置であって、前記クロック整形ロジック・ユニットが、前記自走カウンタの出力の前記ビット反転されたものが前記所望の周波数を特定する前記の少なくとも一つの入力より大きくない場合にのみ入力を反転させるクロック・フロップの出力を用いて、前記中央処理装置（ＣＰＵ）クロックを決定することが可能である装置。
【請求項２４】
請求項１５記載の装置であって、前記クロック整形ロジック・ユニットが、前記自走カウンタの出力の前記ビット反転されたものが前記所望の周波数を特定する前記の少なくとも一つの入力より大きくない場合にのみ入力を反転させるクロック・フロップの出力を用いて、前記中央処理装置（ＣＰＵ）クロックを決定することが可能である装置。
【請求項２５】
請求項１５記載の装置であって、前記クロック整形ロジック・ユニットと、送ることが可能な前記自走カウンタと、前記ＣＰＵとが全てオンチップ・システム内に配置される装置。
【請求項２６】
請求項１５記載の装置であって、前記ＣＰＵがｎビットの数字としてコード化され、所望の周波数が２ｎ通りの離散的なフリップ・フロップ速度のうちの１つを特定し得る装置。
【請求項２７】
オンチップ・システムに対して２倍速クロックが立ち上がるたびに増分される自走カウンタの出力を、クロック整形ロジック・ユニットの比較器に送る手段と、
中央処理装置（ＣＰＵ）からの少なくとも一つの入力であって所望の周波数を特定する入力を、前記クロック整形ロジック・ユニットの前記比較器に送る手段と、
前記自走カウンタの出力と前記所望の周波数を特定する前記の少なくとも一つの入力とに基づいて、前記自走カウンタの出力のビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力とを比較することにより、前記クロック整形ロジック・ユニットにおいて中央処理装置（ＣＰＵ）クロックを生成する手段と、
を備える装置。
【請求項２８】
請求項２７記載の装置であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記手段が、更に、前記所望の周波数を常に調整する手段を備える装置。
【請求項２９】
請求項２８記載の装置であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記手段が、更に、前記自走カウンタの出力の前記ビット反転されたものが前記所望の周波数を特定する前記の少なくとも一つの入力より大きくない場合にのみ入力を反転させるクロック・フロップの出力を用いて、前記中央処理装置（ＣＰＵ）クロックを決定する手段を備える装置。
【請求項３０】
請求項２７記載の装置であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記手段が、更に、ハードウェア及びソフトウェアの少なくともいずれかにおいて、前記中央処理装置（ＣＰＵ）で実行するよう求められる作業量の測定値に基づいて前記所望の周波数を調整する手段を備える装置。
【請求項３１】
請求項３０記載の装置であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記手段が、更に、前記自走カウンタの出力の前記ビット反転されたものが前記所望の周波数を特定する前記の少なくとも一つの入力より大きくない場合にのみ入力を反転させるクロック・フロップの出力を用いて、前記中央処理装置（ＣＰＵ）クロックを決定する手段を備える装置。
【請求項３２】
請求項２７記載の装置であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記手段が、更に、特定の条件が発生する場合に前記所望の周波数を調整する手段を備える装置。
【請求項３３】
請求項３２記載の装置であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記手段が、更に、前記自走カウンタの出力の前記ビット反転されたものが前記所望の周波数を特定する前記の少なくとも一つの入力より大きくない場合にのみ入力を反転させるクロック・フロップの出力を用いて、前記中央処理装置（ＣＰＵ）クロックを決定する手段を備える装置。
【請求項３４】
請求項２７記載の装置であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記手段が、更に、前記中央処理装置（ＣＰＵ）クロックを高速に保って中央処理装置（ＣＰＵ）における処理を終了させてから、低速に戻す手段を備える装置。
【請求項３５】
請求項３４記載の装置であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記手段が、更に、前記自走カウンタの出力の前記ビット反転されたものが前記所望の周波数を特定する前記の少なくとも一つの入力より大きくない場合にのみ入力を反転させるクロック・フロップの出力を用いて、前記中央処理装置（ＣＰＵ）クロックを決定する手段を備える装置。
【請求項３６】
請求項２７記載の装置であって、前記自走カウンタの出力の前記ビット反転されたものと前記所望の周波数を特定する前記の少なくとも一つの入力との比較に基づいて中央処理装置（ＣＰＵ）クロックを前記クロック整形ロジック・ユニットにおいて生成する前記手段が、更に、前記自走カウンタの出力の前記ビット反転されたものが前記所望の周波数を特定する前記の少なくとも一つの入力より大きくない場合にのみ入力を反転させるクロック・フロップの出力を用いて、前記中央処理装置（ＣＰＵ）クロックを決定する手段を備える装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータ・ソフトウェアに関し、より詳細には、オンチップ・クロック・システムに必要とされる急激な周波数の変化を可能とする方法及び装置に関する。
【背景技術】
【０００２】
コンピュータは、典型的に、コンピュータ内部のタイミングの基準となるタイムベースを有する。コンピュータはしばしば、アイドル状態になる。そのようなアイドル・タイム期間には、たいていの場合、コンピュータの電力消費が低減されることが望ましい。
【０００３】
従来のコンピュータのなかには、外部のタイムベースを遅くさせることにより電力消費を低減させるものもある。多くのクロック・チップは、コンピュータ制御による安全な方法で、出力時間間隔の変化をサポートする。コンピュータ制御による安全な方法で出力時間間隔の変化をサポートする従来のクロック・チップの一例としては、Cypress社のＣＹ２２９１がある。
【０００４】
しかし、そのようなオフチップ・クロック発生器は、典型的に、システムの電力を低減するために出力周波数をゆっくりと変化させることしかできない。中央処理装置（ＣＰＵ）の位相ロックループ（ＰＬＬ）はゆっくりと変化するクロックしか利用することができないため、外部クロック・チップは一つの動作周波数から他の動作周波数へと急激に変化することができない。そのような外部の又はオフチップのクロック発生器は、中央処理装置（ＣＰＵ）がスリープ・モード又はアイドル・モードから最高速度へと急激に変化する必要がある場合に用いられることができない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、一つ又はそれ以上の上記の問題を克服し、又は少なくともその影響を低減することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一つの態様において、オンチップ・システムに対して２倍速クロックが立ち上がるたびに増分される自走カウンタの出力をクロック整形ロジック・ユニットの比較器に送るステップと、中央処理装置（ＣＰＵ）からの少なくとも一つの入力であって所望の周波数を特定する入力をクロック整形ロジック・ユニットの比較器に送るステップとを含む方法が提供される。該方法は、また、自走カウンタの出力と所望の周波数を特定する少なくとも一つの入力とに基づいて、自走カウンタの出力をビット反転したものと所望の周波数を特定する少なくとも一つの入力とを比較することにより、クロック整形ロジック・ユニットにおいて中央処理装置（ＣＰＵ）クロックを生成するステップを含み得る。
【０００７】
本発明の他の態様では、オンチップ・システムに対して２倍速クロックが立ち上がるたびに増分される自走カウンタの出力をクロック整形ロジック・ユニットの比較器に送るステップと、中央処理装置（ＣＰＵ）からの少なくとも一つの入力であって所望の周波数を特定する入力をクロック整形ロジック・ユニットの比較器に送るステップとを含む方法をコンピュータで実行する命令によりコード化された、コンピュータ読み取り可能なプログラム記憶装置が提供される。該方法は、また、自走カウンタの出力と所望の周波数を特定する少なくとも一つの入力とに基づいて、自走カウンタの出力をビット反転したものと所望の周波数を特定する少なくとも一つの入力とを比較することにより、クロック整形ロジック・ユニットにおいて中央処理装置（ＣＰＵ）クロックを生成するステップを含み得る。
【０００８】
本発明の更に他の態様では、オンチップ・システムに対して２倍速クロックが立ち上がるたびに増分される自走カウンタの出力をクロック整形ロジック・ユニットの比較器に送るステップと、中央処理装置（ＣＰＵ）からの少なくとも一つの入力であって所望の周波数を特定する入力をクロック整形ロジック・ユニットの比較器に送るステップとを含む方法を実行するようプログラムされたコンピュータが提供される。該方法は、また、自走カウンタの出力と所望の周波数を特定する少なくとも一つの入力とに基づいて、自走カウンタの出力をビット反転したものと所望の周波数を特定する少なくとも一つの入力とを比較することにより、クロック整形ロジック・ユニットにおいて中央処理装置（ＣＰＵ）クロックを生成するステップを含み得る。
【０００９】
本発明の他の態様では、装置が提供される。該装置は、オンチップ・システムであり得る。該装置は、比較器と、クロック整形ロジック・ユニットの比較器に出力を送ることができる自走カウンタとを有するクロック整形ロジック・ユニットを備え、該自走カウンタは、オンチップ・システムに対して２倍速クロックが立ち上がるたびに増分される。該装置は、また、所望の周波数を特定する少なくとも一つの入力をクロック整形ロジック・ユニットに送ることができる中央処理装置（ＣＰＵ）を備え、該クロック整形ロジック・ユニットは、自走カウンタの出力と所望の周波数を特定する少なくとも一つの入力とに基づいて、自走カウンタ出力のビット反転されたものと所望の周波数を特定する少なくとも一つの入力とを比較することにより、中央処理装置（ＣＰＵ）クロックを生成することができる。
【００１０】
以下の実施の形態の詳細な説明を考察することにより、当業者は、本発明及び本発明により実現される更なる利点及び目的を、より完全に理解することができる。図面の簡単な説明により説明される添付の図面が参照される。
【００１１】
本発明は、添付の図面に関連した以下の説明を参照することにより理解され得る。添付の図面において、参照番号の一番左の数字は、個々の参照番号が最初に現れた図面の番号を示す。
【発明を実施するための最良の形態】
【００１２】
本発明は様々な修正及び変形を許容するが、本発明の特定の実施の形態が例として図面に示され、本明細書において詳細に説明される。しかし、本明細書における特定の実施の形態の説明は、本発明を開示された特定の形態に限定するものではなく、本発明は、特許請求の範囲により規定される本発明の趣旨及び範囲に含まれる全ての修正、均等物、及び代替物を含むことが理解されるべきである。
【００１３】
本発明の例としての実施の形態を、以下に記載する。明瞭にするため、本明細書では、実際の実現形態の全ての特徴を記載することはしない。そのような任意の実際の実施の形態の開発にあたっては、例えば実現形態ごとに異なるシステム関連又はビジネス関連の制約に従うことなどの各開発者特有の目的を達成するために、多数の実現形態に固有の決定がなされなければならないことが当然に理解される。更に、そのような開発努力は複雑且つ時間がかかるものであり得るが、本明細書の恩恵を受ける当業者にとっては日常的な仕事であり得る。
【００１４】
本発明に係る方法及び装置の例としての実施の形態が、図１〜１３に示される。本発明の様々な例としての実施の形態において、システムは、中央処理装置（ＣＰＵ）に必要とされる最大動作周波数の２倍の周波数を有するクロックを生成する内部の位相ロックループ（ＰＰＬ）及び／又は外部のクロック・ソースから始まる。この２倍速クロックは、「クロック・フロップ」と呼ばれる単一のフリップ・フロップにクロックを提供する。クロック・フロップ１１５の出力は、中央処理装置（ＣＰＵ）クロック・ツリーの根源であり、全ての演算処理のタイムベースの役割を果たす。
【００１５】
クロック・フロップの入力は、中央処理装置（ＣＰＵ）のクロック速度を決定する。当該入力が、２倍速クロックが変化するたびに変化する場合、クロック・フロップはクロック・ツリーに対し、中央処理装置（ＣＰＵ）の最大動作周波数において方形波である信号を出力する。
【００１６】
入力が全く変化しない場合、中央処理装置（ＣＰＵ）クロックは一定である。この場合、システムは最小限の電力消費状態にある。
クロック・フロップへの入力を決定するロジック・ユニットは、クロック・フロップと同じ２倍速クロックに基づいて動作する。ロジック・ユニットは、「クロック整形ロジック」と呼ばれる。
【００１７】
様々な例としての実施の形態において、中央処理装置（ＣＰＵ）は、中央処理装置（ＣＰＵ）が所望の中央処理装置（ＣＰＵ）クロック周波数を選択するために利用する入出力（Ｉ／Ｏ）レジスタを有する。入出力（Ｉ／Ｏ）レジスタの出力は、クロック整形ロジックに送られる。入出力（Ｉ／Ｏ）レジスタの出力は、クロック整形ロジックに対する全ての入力と同様に、２倍速クロック・ドメインと同期される。２倍速クロック・ドメインと同期された入出力（Ｉ／Ｏ）レジスタの出力は、クロック出力を変化させるために利用される。
【００１８】
クロック整形ロジックは、中央処理装置（ＣＰＵ）からの情報を利用して「１」及び「０」のシーケンスを作成し、クロック・フロップに送る。これらのデータ・アイテムにより、所望の中央処理装置（ＣＰＵ）クロック周波数がもたらされる。
【００１９】
具体的な例として、２倍速クロックは２００ＭＨｚで動作し得る。この場合、クロック・フロップの出力として利用可能な最大周波数は１００ＭＨｚの方形波であるが、中央処理装置（ＣＰＵ）は、中央処理装置（ＣＰＵ）が全ての未処理タスクを実行するために約５，０００万個のクロック・エッジを必要とするに過ぎないことを示し得る。
【００２０】
クロック整形ロジックにこれを実現させる一つの方法は、クロック整形ロジックが１００ＭＨｚで１０個の中央処理装置（ＣＰＵ）クロックを出力し、次いで、中央処理装置（ＣＰＵ）クロックを一定に保ちながら１０クロック時間だけ待機することである。中央処理装置（ＣＰＵ）は、実行と停止を繰返し得る。しかし、これは、負荷に大きな低周波数成分がある場合にも電源が電力を供給しなければならないため、望ましくない。
【００２１】
クロック整形ロジックは、代わりに、より一定の電力消費で中央処理装置（ＣＰＵ）クロックを作成するよう試み得る。クロック整形ロジックは、クロック・フロップに対し「１」及び「０」の異なるシーケンスを送ることにより、これを達成し得る。この場合、クロック整形ロジックは、「１、１、０、０、１、１、０、０、」というように送り得る。その結果、クロック・フロップ１１５からの中央処理装置（ＣＰＵ）クロックは、５０ＭＨｚで動作する方形波となる。
【００２２】
クロック整形ロジックは、クロック整形ロジックが生成するよう求められる全ての周波数について可能な最も一定な電力消費をもたらす、可能な最も対称な波形を計算しようとする。例えば、これは、中央処理装置（ＣＰＵ）クロックにとって望ましい個々の動作周波数について、クロック・フロップに送るパターンをテーブル検索することにより達成され得る。
【００２３】
もう一つの方法は、クロック・フロップへの入力をいつ変化させるかを決定するブレセンハム型アルゴリズムを利用することであり得る。クロック整形ロジックは、「現在値レジスタ」と、新たな現在値を計算するために現在値レジスタに加算する「次プラス・オフセット」と、最初の加算のために現在値レジスタがオーバーフローしてしまった場合に現在値から減算する「次マイナス・オフセット」とを備え得る。これは、非常に良い低周波数特性を持つ中央処理装置（ＣＰＵ）クロックをもたらし得る。しかし、現在値レジスタは、中央処理装置（ＣＰＵ）からの所望の周波数情報が変化する場合にはいつでも、リセット可能でなければならない。次プラス・オフセット及び次マイナス・オフセットは、同時に変化しなければならない。
【００２４】
様々な例としての実施の形態において、一層単純且つ一層強固な機構が利用され得る。図１に示すように、本発明の様々な例としての実施の形態において、矢印１９５で示されるように中央処理装置（ＣＰＵ）１８０にクロック出力１９０を送るクロック整形ロジック・ユニット１５０に対し、矢印１２５で示されるように方形波出力１２０を送る２倍速クロック１１０を備えるオンチップ・システム１００が提供される。クロック整形ロジック・ユニット１５０は、２倍速クロック１１０の方形波出力１２０を受取って自走カウンタ出力１３５及びビット反転（ＴＩＢ）自走出力１４０を出力する自走カウンタ１３０と、比較器１６０とを備え得る。
【００２５】
クロック整形ロジック・ユニット１５０は、自走カウンタ１３０から自走カウンタ出力１３５を受け取り、自走カウンタ出力１３５をビット反転させて、ビット反転（ＴＩＢ）自走カウンタ出力１４０を生成する。比較器１６０は、矢印１４５で示されるようにビット反転（ＴＩＢ）自走カウンタ出力１４０を受取り、また、中央処理装置（ＣＰＵ）１８０の入出力（Ｉ／Ｏ）レジスタ１７０から（中央処理装置（ＣＰＵ）クロック速度選択データ１７５としても知られる）所望の周波数情報１７５を受取る。比較器１６０は、ビット反転（ＴＩＢ）自走カウンタ出力１４０と中央処理装置（ＣＰＵ）１８０の入出力（Ｉ／Ｏ）レジスタ１７０からの所望の周波数情報１７５とを比較し、矢印１９５に示すように中央処理装置（ＣＰＵ）１８０のクロック・フロップ１１５に送られるクロック出力１９０を生成する。
【００２６】
クロック整形ロジック１５０は、自走カウンタ１３０を維持し得る。自走カウンタ１３０は、２倍速クロック１１０が立ち上がるたびに増分する。この自走カウンタ１３０は、中央処理装置（ＣＰＵ）１８０により提供される所望の周波数情報１７５と比較され得る。比較結果は、クロック・フロップ１１５への入力１９０として利用され得る。
【００２７】
もう一つの具体例として、中央処理装置（ＣＰＵ）１８０からの所望の周波数情報１７５は、４ビットの数としてコード化され得る。２進数で表された値「００００」はクロック・フロップ１１５を可能な限り低速で走らせ、値「１１１１」はクロック・フロップ１１５を可能な限り高速で走らせ得る。００００より大きく１１１１より小さい中間の値は、クロック・フロップ１１５を対応する中間の速度で走らせ得る。４ビットの数により、クロック・フロップ１１５の１６通りの速度が特定され得る。同様に、ｎビットの数では、クロック・フロップ１１５の２ｎ通りの速度が特定され得る。
【００２８】
クロック整形ロジック１５０は（例えば、比較器１６０において）、公式「自走カウンタ出力１３５が中央処理装置（ＣＰＵ）クロック速度選択データ１７５より小さい又は等しい場合には、クロック・フロップ１１５への入力１９０を反転させ、そうでない場合には、クロック・フロップ１１５への入力１９０を変化させない。」を用いて、自走カウンタ出力１３５（及び／又はビット反転（ＴＩＢ）自走カウンタ出力１４０）と、中央処理装置（ＣＰＵ）からの中央処理装置（ＣＰＵ）クロック速度選択データ１７５とを比較し得る。
【００２９】
例えば、中央処理装置（ＣＰＵ）１８０が速度１１１１（最大速度）を要求する場合、自走カウンタ出力１３５と、中央処理装置（ＣＰＵ）１８０からの中央処理装置（ＣＰＵ）クロック速度選択データ１７５との比較は、上記の公式によれば、２倍速クロック１１０が立ち上がるたびに、クロック・フロップ１１５への入力１９０を反転させる。これは、ｉ＝１、２、３，４であるとき、全てのビット値ｂｉ（＝０又は１）について、ｂ４ｂ３ｂ２ｂ１＜１１１１であるためである。
【００３０】
同様に、中央処理装置（ＣＰＵ）１８０が速度００００（最低速度）を要求する場合、自走カウンタ出力１３５と、中央処理装置（ＣＰＵ）１８０からの中央処理装置（ＣＰＵ）クロック速度選択データ１７５との比較は、上記の公式によれば、２倍速クロック１１０が１６回立ち上がるうちの１回だけ、クロック・フロップ１１５への入力１９０を反転させる。これは、ｉ＝１、２、３，４であるとき、ｂｉ＝０であるビット値に対してのみ、ｂ４ｂ３ｂ２ｂ１＜００００であるためである。
【００３１】
同様に、中央処理装置（ＣＰＵ）１８０が速度０１１１（半分の速度）を要求する場合、自走カウンタ出力１３５と、中央処理装置（ＣＰＵ）１８０からの中央処理装置（ＣＰＵ）クロック速度選択データ１７５との比較は、上記の公式によれば、２倍速カウンタが立ち上がる最初の８回についてクロック・フロップ１１５への入力１９０を反転させ、その後、２倍速クロック１１０が立ち上がる次の８回についてクロック・フロップへの入力を一定且つ不変に保つ。これは、ｉ＝１、２、３であるとき、ビット値ｂ４＝０且つｂｉ（＝０又は１）に対してのみ、ｂ４ｂ３ｂ２ｂ１＜０１１１であるためである。
【００３２】
しかし、この結果、クロックは８個の中央処理装置（ＣＰＵ）クロックの間にはトグルし、８個の中央処理装置（ＣＰＵ）クロックの間には休むことになる。これでは、上記の望ましくない電力供給と同様の状況である。
【００３３】
様々な例としての実施の形態において、比較は、自走カウンタ出力１３５に対してではなく、むしろ、自走カウンタ１３０のビット反転（ＴＩＢ）出力１４０に対してなされる。自走カウンタ１３０の出力１３５はビットごとに反転させられ、自走カウンタ１３０のビット反転（ＴＩＢ）出力１４０は、中央処理装置（ＣＰＵ）１８０から送られた所望の周波数情報１７５と比較され得る。
【００３４】
図２に示すように、自走カウンタ１３０のオリジナルの出力１３５は（十進２３５及び二進２３０で表すと）、
【００３５】
【数１】
2004303235.tif 000003
【００３６】
である。
自走カウンタ１３０のビット反転（ＴＩＢ）出力１４０は（十進２４５及び二進２４０で表すと）、
【００３７】
【数２】
2004303235.tif 000004
【００３８】
である。
図１に示すように、中央処理装置（ＣＰＵ）１８０が速度１１１１（最高速度）を要求する場合、自走カウンタ１３０のこのビット反転（ＴＩＢ）出力１４０と、中央処理装置（ＣＰＵ）１８０からの中央処理装置（ＣＰＵ）クロック速度選択データ１７５との（例えば、比較器１６０における）比較は、ビット反転（ＴＩＢ）公式「自走カウンタ１３０のビット反転（ＴＩＢ）出力１４０が中央処理装置（ＣＰＵ）クロック速度選択データ１７５より小さい又は等しい場合には、クロック・フロップ１１５への入力１９０を反転させ、そうでない場合には、クロック・フロップ１１５への入力１９０を変化させない。」に従ってなされ得る。
【００３９】
この場合も、図１に示すように、２倍速クロック１１０が立ち上がるたびにクロック・フロップ１１５への入力１９０は反転される。これは、やはり、ｉ＝１、２、３、４である場合に、全てのビット値ｂｉ（＝０又は１）についてｂ４ｂ３ｂ２ｂ１＜１１１１であるためである。クロック・フロップ１１５への入力１９０は、従って、
【００４０】
【数３】
2004303235.tif 000005
【００４１】
のようになる。これは、所望の１００％のデューティ・サイクルをもたらす。
同様に、図３に示すように、中央処理装置（ＣＰＵ）１８０が速度００００（最低速度）を要求する場合、自走カウンタ１３０のビット反転（ＴＩＢ）出力１４０と、中央処理装置（ＣＰＵ）１８０からの中央処理装置（ＣＰＵ）クロック速度選択データ１７５との（例えば、比較器１６０における）比較は、上記のビット反転（ＴＩＢ）公式に従って、再び、図３に示すように、２倍速クロック１１０が１６回立ち上がるごとに１回だけ、クロック・フロップ１１５への入力３９０を反転させる。これはやはり、ｉ＝１、２、３、４である場合に、ｂｉ＝０であるビット値のみについてｂ４ｂ３ｂ２ｂ１＜００００であるためである。クロック・フロップ１１５への入力は、従って、
【００４２】
【数４】
2004303235.tif 000006
【００４３】
のようになる。これは、所望の６．２５％のデューティ・サイクルをもたらす。
しかし、図４に示すように、中央処理装置（ＣＰＵ）１８０が速度０１１１（半分の速度）を要求する場合、自走カウンタ１３０のビット反転（ＴＩＢ）出力１４０と、中央処理装置（ＣＰＵ）１８０からの中央処理装置（ＣＰＵ）クロック速度選択データ１７５との（例えば、比較器１６０における）比較は、上記のビット反転（ＴＩＢ）公式に従って、クロック・フロップ１１５への入力４９０を、図４に示すように、２倍速クロック１１０が２回立ち上がるたびに１回ずつ反転させる。これは、００００＜０１１１であるためにクロック・フロップ１１５への入力４９０が反転され、１０００＞０１１１であるためにクロック・フロップ１１５への入力４９０が変化しないままにされ、０１００＜０１１１であるためにクロック・フロップ１１５への入力４９０が反転され、１１００＞０１１１であるためにクロック・フロップ１１５への入力４９０が変化しないままにされ、００１０＜０１１１であるためにクロック・フロップ１１５への入力４９０が反転され、１０１０＞０１１１であるためにクロック・フロップ１１５への入力４９０が変化しないままにされ、０１１０＜０１１１であるためにクロック・フロップ１１５への入力４９０が反転され、１１１０＞０１１１であるためにクロック・フロップ１１５への入力４９０が変化しないままにされ、０００１＜０１１１であるためにクロック・フロップ１１５への入力４９０が反転され、１００１＞０１１１であるためにクロック・フロップ１１５への入力４９０が変化しないままにされ、０１０１＜０１１１であるためにクロック・フロップ１１５への入力４９０が反転され、１１０１＞０１１１であるためにクロック・フロップ１１５への入力４９０が変化しないままにされ、００１１＜０１１１であるためにクロック・フロップ１１５への入力４９０が反転され、１０１１＞０１１１であるためにクロック・フロップ１１５への入力４９０が変化しないままにされ、０１１１＜０１１１であるためにクロック・フロップ１１５への入力４９０が反転され、１１１１＞０１１１であるためにクロック・フロップ１１５への入力４９０が変化しないままにされる、というようになるためである。クロック・フロップ１１５への入力４９０は、従って、
【００４４】
【数５】
2004303235.tif 000007
【００４５】
のようになる。これは、所望の５０％のデューティ・サイクルをもたらす。
自走カウンタ出力１３５をビット反転させ、該ビット反転（ＴＩＢ）自走カウンタ出力１４０を、中央処理装置（ＣＰＵ）１８０から受取られた所望の周波数情報１７５との比較に用いることにより、クロック整形ロジック１５０は、ブレセンハム型アルゴリズムにより生成され得るクロックの近似値を、より少ないハードウェア・ロジックを用いて計算する。他にも利点がある。ブレセンハム型アルゴリズムでは、中央処理装置（ＣＰＵ）からの所望の周波数情報が変化するたびに、実行状態及び２つのオフセットを変化させる必要がある。それに対し、本発明の様々な例として実施の形態では、中央処理装置（ＣＰＵ）１８０から受取られた所望の周波数情報１７５を、自走カウンタ１３０をリセットすることなく且つ容易にいつでも変化させることができる。
【００４６】
例えば、図５に示すように、中央処理装置（ＣＰＵ）１８０が速度１０１１（４分の３の速度）を要求する場合、自走カウンタ１３０のビット反転（ＴＩＢ）出力１４０と、中央処理装置（ＣＰＵ）１８０からの中央処理装置（ＣＰＵ）クロック速度選択データ１７５との（例えば、比較器１６０における）比較は、上記のビット反転（ＴＩＢ）公式に従って、クロック・フロップ１１５への入力５９０を、２倍速クロック１１０が４回立ち上がるたびに３回反転させる。これは、００００＜１０１１であるためにクロック・フロップ１１５への入力５９０が反転され、１０００＜１０１１であるためにクロック・フロップ１１５への入力５９０が反転され、０１００＜１０１１であるためにクロック・フロップ１１５への入力５９０が反転され、１１００＞１０１１であるためにクロック・フロップ１１５への入力５９０が変化しないままにされ、００１０＜１０１１であるためにクロック・フロップ１１５への入力５９０が反転され、１０１０＜１０１１であるためにクロック・フロップ１１５への入力５９０が反転され、０１１０＜１０１１であるためにクロック・フロップ１１５への入力５９０が反転され、１１１０＞１０１１であるためにクロック・フロップ１１５への入力５９０が変化しないままにされ、０００１＜１０１１であるためにクロック・フロップ１１５への入力５９０が反転され、１００１＜１０１１であるためにクロック・フロップ１１５への入力５９０が反転され、０１０１＜１０１１であるためにクロック・フロップ１１５への入力５９０が反転され、１１０１＞１０１１であるためにクロック・フロップ１１５への入力５９０が変化しないままにされ、００１１＜１０１１であるためにクロック・フロップ１１５への入力５９０が反転され、１０１１＜１０１１であるためにクロック・フロップ１１５への入力５９０が反転され、０１１１＜１０１１であるためにクロック・フロップ１１５への入力５９０が反転され、１１１１＞１０１１であるためにクロック・フロップ１１５への入力５９０が変化しないままにされる、というようになるためである。クロック・フロップ１１５への入力５９０は、従って、
【００４７】
【数６】
2004303235.tif 000008
【００４８】
のようになる。これは、所望の７５％のデューティ・サイクルをもたらす。
同様に、図６に示すように、中央処理装置（ＣＰＵ）１８０が速度００１１（４分の１の速度）を要求する場合、自走カウンタ１３０のビット反転（ＴＩＢ）出力１４０と、中央処理装置（ＣＰＵ）１８０からの中央処理装置（ＣＰＵ）クロック速度選択データ１７５との（例えば、比較器１６０における）比較は、上記のビット反転（ＴＩＢ）公式に従って、クロック・フロップ１１５への入力６９０を、２倍速クロック１１０が４回立ち上がるたびに１回反転させる。これは、００００＜００１１であるためにクロック・フロップ１１５への入力６９０が反転され、１０００＞００１１であるためにクロック・フロップ１１５への入力６９０が変化しないままにされ、０１００＞００１１であるためにクロック・フロップ１１５への入力６９０が変化しないままにされ、１１００＞００１１であるためにクロック・フロップ１１５への入力６９０が変化しないままにされ、００１０＜００１１であるためにクロック・フロップ１１５への入力６９０が反転され、１０１０＞００１１であるためにクロック・フロップ１１５への入力６９０が変化しないままにされ、０１１０＞００１１であるためにクロック・フロップ１１５への入力６９０が変化しないままにされ、１１１０＞００１１であるためにクロック・フロップ１１５への入力６９０が変化しないままにされ、０００１＜００１１であるためにクロック・フロップ１１５への入力６９０が反転され、１００１＞００１１であるためにクロック・フロップ１１５への入力６９０が変化しないままにされ、０１０１＞００１１であるためにクロック・フロップ１１５への入力６９０が変化しないままにされ、１１０１＞００１１であるためにクロック・フロップ１１５への入力６９０が変化しないままにされ、００１１＜００１１であるためにクロック・フロップ１１５への入力６９０が反転され、１０１１＞００１１であるためにクロック・フロップ１１５への入力６９０が変化しないままにされ、０１１１＞００１１であるためにクロック・フロップ１１５への入力６９０が変化しないままにされ、１１１１＞００１１であるためにクロック・フロップ１１５への入力６９０が変化しないままにされる、というようになるためである。クロック・フロップ１１５への入力６９０は、従って、
【００４９】
【数７】
2004303235.tif 000009
【００５０】
のようになる。これは、所望の２５％のデューティ・サイクルをもたらす。
同様に、図７に示すように、中央処理装置（ＣＰＵ）１８０が速度０００１（８分の１の速度）を要求する場合、自走カウンタ１３０のビット反転（ＴＩＢ）出力１４０と、中央処理装置（ＣＰＵ）１８０からの中央処理装置（ＣＰＵ）クロック速度選択データ１７５との（例えば、比較器１６０における）比較は、上記のビット反転（ＴＩＢ）公式に従って、クロック・フロップ１１５への入力７９０を、２倍速クロック１１０が８回立ち上がるたびに１回反転させる。これは、００００＜０００１であるためにクロック・フロップ１１５への入力７９０が反転され、１０００＞０００１であるためにクロック・フロップ１１５への入力７９０が変化しないままにされ、０１００＞０００１であるためにクロック・フロップ１１５への入力７９０が変化しないままにされ、１１００＞０００１であるためにクロック・フロップ１１５への入力７９０が変化しないままにされ、００１０＞０００１であるためにクロック・フロップ１１５への入力７９０が変化しないままにされ、１０１０＞０００１であるためにクロック・フロップ１１５への入力７９０が変化しないままにされ、０１１０＞０００１であるためにクロック・フロップ１１５への入力７９０が変化しないままにされ、１１１０＞０００１であるためにクロック・フロップ１１５への入力７９０が変化しないままにされ、０００１＜０００１であるためにクロック・フロップ１１５への入力７９０が反転され、１００１＞０００１であるためにクロック・フロップ１１５への入力７９０が変化しないままにされ、０１０１＞０００１であるためにクロック・フロップ１１５への入力７９０が変化しないままにされ、１１０１＞０００１であるためにクロック・フロップ１１５への入力７９０が変化しないままにされ、００１１＞０００１であるためにクロック・フロップ１１５への入力７９０が変化しないままにされ、１０１１＞０００１であるためにクロック・フロップ１１５への入力７９０が変化しないままにされ、０１１１＞０００１であるためにクロック・フロップ１１５への入力７９０が変化しないままにされ、１１１１＞０００１であるためにクロック・フロップ１１５への入力７９０が変化しないままにされる、というようになるためである。クロック・フロップ１１５への入力７９０は、従って、
【００５１】
【数８】
2004303235.tif 000010
【００５２】
のようになる。これは、所望の１２．５％のデューティ・サイクルをもたらす。
本発明に係る様々な例示の実施の形態において、クロック周波数は、中央処理装置（ＣＰＵ）に対する負荷の測定に基づいて適応的に変化し得る。ハードウェアに作業待ち行列が保持される場合、作業待ち行列の深さが知られ得る。作業待ち行列に望ましいよりも多くのエントリが溜まり始めたとき、又は、作業待ち行列内の要素が作業待ち行列に長く留まり過ぎているとき、中央処理装置（ＣＰＵ）により設定される所望の周波数値は、増分されて増加し得る。逆に、作業待ち行列が一定時間に渡り空になった後、又は、作業待ち行列内の全てのエントリがかなり新しいものである場合、中央処理装置（ＣＰＵ）に対する所望の周波数値は減分されて減らされ得る。これらの適応的に変化する例示の実施の形態は、中央処理装置（ＣＰＵ）クロックを最高速度まで直接上げた直後にアイドルに戻すのではなく、むしろ、中央処理装置（ＣＰＵ）が与えられた作業を実行するために必要とされるほぼ正しい秒ごとの命令数を実行するまで、中央処理装置（ＣＰＵ）クロックを段階的に変化させる。
【００５３】
本発明に係る様々な例示の実施の形態において、クロック周波数は特別な条件に応じて急激に変化させられ得る。特別な条件は、クロック整形ロジックに対する別個の入力を有し得る。これらの入力は２倍速カウンタ・ドメインに同期され、その後、クロック・フロップに送られるデータを計算するための追加の入力として利用され得る。例えば、サン・マイクロシステムのコペルニクス・チップにおいて、中央処理装置（ＣＰＵ）が実行する作業がないとき、中央処理装置（ＣＰＵ）クロックを遅くすることが望ましい。しかし、入出力（Ｉ／Ｏ）デバイスがオンチップのリソースにアクセスする必要がある場合、中央処理装置（ＣＰＵ）クロックが遅いと、例えばオンチップ・メモリのようなオンチップのリソースに対するアクセスも対応して遅くなる。
【００５４】
コペルニクス・チップにおいて、クロック整形ロジックは、割り込みロジック及びＰＣＩバス・アービターからの信号を受取る。任意の割り込み又はダイレクト・メモリ・アクセス（ＤＭＡ）が未完の場合、中央処理装置（ＣＰＵ）クロックは一時的に最高速度まで上がる。コペルニクス・チップにおいて、クロック整形ロジックは、割り込み及び外部バス動作のためのメモリを有する。これらの特別な条件のためにクロック整形ロジックが中央処理装置（ＣＰＵ）クロックの速度を上げたときはいつでも、クロック整形ロジックは中央処理装置（ＣＰＵ）クロックをその特別な条件が取り除かれた後もしばらく高速で走らせる。この技術により、割り込みが提供された後にソフトウェアが所望のクロック周波数の新しい値を計算することが可能になり、外部バス上でバス・トランザクションが終了した後に内部の先入れ先出し（ＦＩＦＯ）レジスタを空にすることができる。
【００５５】
図８〜１３は、本発明に従って実行される個々の方法８００〜１３００の特定の実施の形態を概略的に図示する。図１〜７は、方法８００〜１３００が実行され得る様々な例示の特定の実施の形態を概略的に図示する。明瞭にするため、及び、本発明の更なる理解のために、方法８００〜１３００は、図１〜７に示される様々な例示の特定の実施の形態との関係において開示される。しかし、以下に更に論じられるように、本発明はそれに限定されるものではなく、幅広い変形を許容する。
【００５６】
図８において、方法８００は、ボックス８２０に示すように、オンチップ・システムに対して２倍速クロックが立ち上がるたびに増分される自走カウンタの出力を、クロック整形ロジック・ユニットの比較器に送ることにより開始される。例えば、図１に示すように、オンチップ・システム１１０の２倍速クロック１１０が立ち上がるたびに増分され得る自走カウンタ１３０の出力１３５は、クロック整形ロジック・ユニット１５０の比較器１６０に送られ得る。様々な代替的な例示の実施の形態において、自走カウンタ１３０及び／又は比較器１６０は、クロック整形ロジック・ユニット１５０から離れているが該ユニットにより制御されるオンチップ・システム１１０に設けられ得る。
【００５７】
方法８００は、ボックス８３０に示すように、中央処理装置（ＣＰＵ）からの少なくとも一つの入力であって所望の周波数を特定する入力を、クロック整形ロジック・ユニットの比較器に送ることにより進行する。例えば、図１に示すように、中央処理装置（ＣＰＵ）１８０の入出力（Ｉ／Ｏ）レジスタ１７０からの少なくとも一つの入力１７５であって中央処理装置（ＣＰＵ）１８０の所望の周波数を特定する入力１７５は、クロック整形ロジック・ユニット１５０の比較器１６０に送られる。
【００５８】
方法８００は、次いで、ボックス８４０に示すように、クロック整形ロジック・ユニットにおいて、自走カウンタの出力と、所望の周波数を特定する少なくとも一つの入力とに基づき、自走カウンタの出力をビット反転したものと所望の周波数を特定する少なくとも一つの入力とを比較することにより、中央処理装置（ＣＰＵ）クロックを生成することにより進行する。例えば、図１に示すように、クロック整形ロジック・ユニット１５０は、クロック・フロップ１１５への入力１９０を生成して中央処理装置（ＣＰＵ）１８０のクロックを駆動し得る。クロック整形ロジック・ユニット１５０は、自走カウンタ１３０の出力１３５と、所望の周波数を特定する少なくとも一つの入力１７５とに基づいて、自走カウンタ１３０の出力１３５のビット反転（ＴＩＢ）されたもの１４０と所望の周波数を特定する少なくとも一つの入力１７５とを比較することにより、クロック・フロップ１１５への入力１９０を生成し得る。
【００５９】
様々な例示の実施の形態において、図９に示すように、また、方法９００のボックス９５０に示すように、所望の周波数が常に調整され得る。様々な代替的な例示の実施の形態において、図１０に示すように、また、方法１０００のボックス１０５０に示すように、所望の周波数は、中央処理装置（ＣＰＵ）で実行するよう求められる作業量の一つ又はそれ以上の測定値に基づいて、ハードウェア及び／又はソフトウェアにおいて調整され得る。様々な他の代替的な例示の実施の形態において、図１１に示すように、また、方法１１００のボックス１１５０に示すように、所望の周波数は、特定の条件が発生する場合に調整され得る。例えば、上記のように、特別な条件はクロック整形ロジックへの別個の入力を有し得る。これらの入力は２倍速カウンタ・ドメインと同期され、その後、クロック・フロップに送られるデータを計算するための追加の入力として利用され得る。例えば、サン・マイクロシステムのコペルニクス・チップにおいて、中央処理装置（ＣＰＵ）クロックが実行すべき作業がないとき、中央処理装置（ＣＰＵ）クロックを遅くすることが望ましい。しかし、入出力（Ｉ／Ｏ）デバイスがオンチップのリソースにアクセスする必要があるとき、中央処理装置（ＣＰＵ）クロックが遅いと、例えばオンチップ・メモリのようなオンチップのリソースに対するアクセスも対応して遅くなる。
【００６０】
更に他の様々な代替的な例示の実施の形態において、図１２に示すように、また、方法１２００のボックス１２５０に示すように、中央処理装置（ＣＰＵ）クロックは、高速を保って中央処理装置（ＣＰＵ）における処理を終了させてから、低速へ戻ることが可能である。例えば、上記のように、コペルニクス・チップにおいて、クロック整形回路は割り込みロジック及びＰＣＩバス・アービターからの信号を受取る。割り込み又はＤＭＡが起こると、中央処理装置（ＣＰＵ）クロックは一時的に最高速度に上がる。コペルニクス・チップにおいて、クロック整形ロジックは、割り込み及び外部バス動作のためのメモリを有する。これらの特別な条件のためにクロック整形ロジックが中央処理装置（ＣＰＵ）クロックの速度を上げるときはいつでも、クロック整形ロジックは中央処理装置（ＣＰＵ）クロックを、特別な条件が取り除かれた後もしばらく高速で走らせたままにする。この技術により、割り込みが提供された後にソフトウェアが所望のクロック周波数のための新たな値を計算することが可能であり、外部バスにおいてバス・トランザクションが終了した後に内部の先入れ先出し（ＦＩＦＯ）レジスタを空にすることが可能である。
【００６１】
様々な例示の実施の形態において、図１３に示すように、また、方法１３００のボックス１３５０に示すように、中央処理装置（ＣＰＵ）クロックは、自走カウンタ出力をビット反転したものが所望の周波数を特定する少なくとも一つの入力より大きくない場合にのみ入力を反転させるクロック・フロップの出力を用いて決定され得る。例えば、上記のように、中央処理装置（ＣＰＵ）１８０がｎビットの数字により特定された速度を要求する場合、自走カウンタ１３０のビット反転（ＴＩＢ）されたｎビットの出力１４０と、中央処理装置（ＣＰＵ）１８０からの中央処理装置（ＣＰＵ）クロック速度選択データ１７５との（例えば、比較器１６０における）比較は、ビット反転（ＴＩＢ）公式「自走カウンタ１３０のビット反転（ＴＩＢ）されたｎビットの出力１４０がｎビットの中央処理装置（ＣＰＵ）クロック速度選択データ１７５より小さい又は等しい場合には、クロック・フロップ１１５への入力１９０を反転させ、そうではない場合には、クロック・フロップ１１５への入力１９０を変化させない。」に従ってなされ得る。
【００６２】
本発明に係る方法、システム及び装置の上記の実施の形態はいずれも、周波数から周波数へと必要に応じて迅速に変化することができるオンチップ・クロック・システムの容易な構築方法を提供する。加えて、本発明に係る方法、システム及び装置の上記の実施の形態はいずれも、中央処理装置（ＣＰＵ）がスリープ・モード又はアイドル・モードから最高速度へと急激に変化することを可能にする。
【００６３】
上記に開示された特定の実施の形態は例示に過ぎず、本発明は修正され得、及び、本明細書の教示による恩恵を受ける当業者にとって明らであるような、異なってはいるが均等である方法で実行され得る。更に、本発明を、特許請求の範囲に記載された以外に、本明細書に示された詳細な構造又はデザインに限定する意図はない。従って、上記に開示された特定の実施の形態は変更又は修正され得ること、及び、それらの変更は全て本発明の範囲及び趣旨に含まれると考えられることが明らかである。特に、（「約ａから約ｂ」又は、同様に「およそａからｂ」又は、同様に「およそａ〜ｂ」の形で）本明細書に開示されたそれぞれの値の範囲は、個々の値の範囲の、ゲオルグ・カントールの言うところの累乗集合（全部分集合の集合）を示すものと理解されるべきである。従って、本明細書において求められる保護範囲は、特許請求の範囲において記載された通りである。
【図面の簡単な説明】
【００６４】
【図１】本発明に係る方法、システム及び装置の様々な実施の形態を概略的に示す。
【図２】本発明に係る方法、システム及び装置の様々な実施の形態を概略的に示す。
【図３】本発明に係る方法、システム及び装置の様々な実施の形態を概略的に示す。
【図４】本発明に係る方法、システム及び装置の様々な実施の形態を概略的に示す。
【図５】本発明に係る方法、システム及び装置の様々な実施の形態を概略的に示す。
【図６】本発明に係る方法、システム及び装置の様々な実施の形態を概略的に示す。
【図７】本発明に係る方法、システム及び装置の様々な実施の形態を概略的に示す。
【図８】本発明に係る方法、システム及び装置の様々な実施の形態を概略的に示す。
【図９】本発明に係る方法、システム及び装置の様々な実施の形態を概略的に示す。
【図１０】本発明に係る方法、システム及び装置の様々な実施の形態を概略的に示す。
【図１１】本発明に係る方法、システム及び装置の様々な実施の形態を概略的に示す。
【図１２】本発明に係る方法、システム及び装置の様々な実施の形態を概略的に示す。
【図１３】本発明に係る方法、システム及び装置の様々な実施の形態を概略的に示す。
【図１】
2004303235.tif 000011
【図２】
2004303235.tif 000012
【図３】
2004303235.tif 000013
【図４】
2004303235.tif 000014
【図５】
2004303235.tif 000015
【図６】
2004303235.tif 000016
【図７】
2004303235.tif 000017
【図８】
2004303235.tif 000018
【図９】
2004303235.tif 000019
【図１０】
2004303235.tif 000020
【図１１】
2004303235.tif 000021
【図１２】
2004303235.tif 000022
【図１３】
2004303235.tif 000023
【外国語明細書】
2004303235000001.pdf