(57)【要約】  デジタル処理システムが動作可能な最大の最適なクロック周波数を決定するための方法であって、初期周波数でクロック信号を生成するステップと、上記システムが正確に動作しないクロック周波数が特定されるまで、上記周波数を段階的に増大させ、上記システムの動作を、選択された数の周波数のそれぞれに決定するステップと、上記システムが正確に動作可能な最大クロック周波数を特定するステップと、を含み、上記最大クロック周波数は、上記システムが正確に動作しない周波数であるとして特定された周波数の直前の周波数を含み、上記システムが各周波数においてシステムタイミング制約の範囲内で動作できるか否かを決定し、それにより、上記システムがそれぞれの周波数で正確に動作するか否かを示すためのタイミングモニタが設けられている、方法である。
2007520008.tif 000002
【特許請求の範囲】
【請求項１】
デジタル処理システムが動作可能な最大の最適なクロック周波数を決定するための方法であって、
−初期周波数でクロック信号を生成するステップと、
−前記システムが正確に動作しないクロック周波数が特定されるまで、前記周波数を段階的に増大させ、前記システムの動作を、選択された数の周波数のそれぞれに決定するステップと、
−前記システムが正確に動作可能な最大クロック周波数を特定するステップと、
を含み、
−前記最大クロック周波数は、前記システムが正確に動作しない周波数であるとして特定された周波数の直前の周波数を含み、
−前記システムが各周波数においてシステムタイミング制約の範囲内で動作できるか否かを決定し、それにより、前記システムがそれぞれの周波数で正確に動作するか否かを示すためのタイミングモニタが設けられている、
ことを特徴とする方法。
【請求項２】
最大周波数をメモリ内に記憶するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
デジタル処理システムにおいてクロック発生手段を較正する方法であって、システムが実行している間に請求項１又は２に記載の方法を定期的に実施するとともに、結果として得られる最大周波数を前記クロック発生手段に適用することを含むことを特徴とする方法。
【請求項４】
デジタル処理システムが動作可能な最大の最適なクロック周波数を決定するための装置であって、
−初期周波数でクロック信号を生成するための手段と、
−前記システムが正確に動作しないクロック周波数が特定されるまで、前記周波数を段階的に増大させる手段、及び、前記システムの動作を、選択された数の周波数のそれぞれに決定する手段と、
−前記システムが正確に動作可能な最大クロック周波数を特定するための手段と、
を備え、
−前記最大クロック周波数は、前記システムが正確に動作しない周波数であるとして特定された周波数の直前の周波数を含み、
−前記システムの動作を決定するための前記手段は、前記システムが各周波数においてシステムタイミング制約の範囲内で動作できるか否かを決定し、それにより、前記システムがそれぞれの周波数で正確に動作するか否かを示すためのタイミングモニタを備えている、
ことを特徴とする装置。
【請求項５】
デジタル処理システムが動作している周波数を選択的に変化させる方法であって、
ａ）前記システムがリセットされるときに、前記システムがシステムタイミング制約の範囲内で動作できる最大クロック周波数を決定するとともに、前記最大周波数を記憶するステップと、
ｂ）リセット後に、クロック周波数の増大が必要とされていることを示す信号が受信されるまで、前記最大周波数よりも小さい公称周波数でクロック信号を生成するステップと、
ｃ）前記信号の受信に応じて、必要な時間に亘って前記最大周波数でクロック信号を生成するステップと、
ｄ）前記公称周波数でクロック信号を再び生成するステップと、
を含むことを特徴とする方法。
【請求項６】
前記最大周波数を決定する前記ステップは、請求項１又は２に記載の方法を含んでいることを特徴とする請求項５に記載の方法。
【請求項７】
デジタル処理システムが動作している周波数を選択的に変化させるための装置であって、
ｉ．プログラマブル・クロック発生手段と、
ｉｉ．前記システムがリセットされるときに、前記システムがシステムタイミング制約の範囲内で動作可能な最大クロック周波数を決定するとともに、前記最大周波数を記憶するための手段と、
ｉｉｉ．前記クロック発生手段が、
ａ）リセット後に、クロック周波数の増大が必要とされていることを示す信号が受信されるまで、前記最大周波数よりも小さい公称周波数でクロック信号を生成し、
ｂ）前記信号の受信に応じて、必要な時間に亘って前記最大周波数でクロック信号を生成し、
ｃ）前記公称周波数でクロック信号を再び生成する、
ようにさせる手段と、
を備えることを特徴とする装置。
【請求項８】
システムタイミング制約を監視するためのタイミングモニタを備えていることを特徴とする請求項７に記載の装置。
【請求項９】
クロック信号の周波数を初期周波数から最大周波数まで増大させるための周波数ファインダを備えていることを特徴とする請求項４、７又は８に記載の装置。
【請求項１０】
前記クロック発生手段は、プログラマブル・リングオシレータを含むことを特徴とする請求項４又は７乃至９のいずれか一項に記載の装置。
【請求項１１】
リセットにおいて最大周波数を決定して、クロック周波数の増大の要求を受け取るとともに、前記要求が満了し又は取り消されるまで前記クロック発生手段にクロック信号を最大周波数で生成させるための周波数ファインダ・セレクタを備えていることを特徴とする請求項７に記載の装置。
【請求項１２】
リセットにおいて前記最大周波数を決定し且つ前記クロック発生手段に前記最大周波数でクロック信号を生成させるための周波数ファインダと、前記公称周波数でクロック信号を生成するように配置されて構成される第２のクロック発生手段とを備え、前記第１及び第２のクロック発生手段の出力は、切り換え手段によってクロック出力に対して結合され、前記切り換え手段は、前記クロック周波数を増大するための要求が受け取られるまで前記第２のクロック発生手段を前記クロック出力に対して結合するように構成されており、前記要求に応じて、前記切り換え手段は、前記要求が満了し又は取り消されるまで、前記第１のクロック発生手段の出力が前記クロック出力に対して結合されるようにすることを特徴とする請求項７に記載の装置。
【請求項１３】
前記要求が満了し又は取り消されるときに、前記第１のクロック発生手段を無効にするための手段を備えていることを特徴とする請求項１２に記載の装置。
【請求項１４】
前記第２のクロック発生手段は、外部クロック発生手段を含むことを特徴とする請求項１２又は１３に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、デジタル処理システムをオーバークロックするための方法及び装置に関し、特に、デジタル処理システム又はその一部がプロセスの限界内においてそれら自体を自動的にオーバークロックすることができるようにするための方法及び装置に関する。
【背景技術】
【０００２】
デジタル処理システムは、時間基準としての一つ以上のクロック信号に依存している。プロセッサチップの性能の良く知られた指標は、プロセッサチップが動作する周波数である。高いクロック周波数で動作するプロセッサチップは、低いクロック周波数で動作する等価なプロセッサチップよりも短い時間でより多くの情報を処理することができる。従って、内部遅延、プロセッサの熱破壊、熱的に引き起こされる自動停止による性能の劣化に起因してプロセッサを誤動作させることなく、プロセッサチップをその特定のプロセッサチップが動作できる最大周波数で実行することが望ましい。
【０００３】
どのプロセッサが動作する予定であるかに関するクロック信号の期間は、技術プロセスの点から想定される最悪の状況を考慮に入れて、プロセッサの設計時に決定される。その結果、多くの場合、プロセッサチップは、前述した故障や保護的な停止を示すことなくプロセッサが維持できる最大動作周波数よりもかなり低いクロック周波数で動作するようにコンピュータシステム内に実装される。これは多くの理由によって起こり得る。例えば、プロセッサチップは一般に二つ又は三つの処理速度カテゴリに分類されるため、標準的なクロック速度カテゴリよりも高いクロック速度で実際に実行できる多くのプロセッサチップは、特定のコンピュータのためのクロック速度カテゴリに従うために、低いクロック速度に簡単に設定される。これは「ビニング（ｂｉｎｎｉｎｇ）」として知られており、その結果、組立後に、システムが当初に設定されたクロック速度によって見込まれるよりも十分に高い周波数で実行できるという状況が生じる場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ビニングの欠点は、それが非常に高価であり静的であるという点である。即ち、システムは常に最大（設定）周波数で実行し、従って、最大のエネルギを消費する。
【０００５】
また、内蔵されたクロック発生ユニットがリングオシレータに基づいている電子システムにおいては、設計が実現されたプロセス及び動作状態にオシレータを調整するため、起動時に較正ステップが必要である。従来の技術においては、チップがパワーアップされる度にこの較正をオンラインで行うことができる。他の手法は、較正を１回行い、その後、システムがパワーアップされる度に外部不揮発性メモリから較正情報を検索することである。しかしながら、前者の場合には、システムがパワーアップされる度に較正が必要とされ、これに対し、後者の場合には、較正が静的でありシリコンの経年変化又は変動する動作状態を考慮に入れていない。
【課題を解決するための手段】
【０００６】
本発明の第一の態様によれば、デジタル処理システムが動作可能な最大の最適なクロック周波数を決定するための方法であって、
−初期周波数でクロック信号を生成するステップと、
−上記システムが正確に動作しないクロック周波数が特定されるまで、上記周波数を段階的に増大させ、上記システムの動作を、選択された数の周波数のそれぞれに決定するステップと、
−上記システムが正確に動作可能な最大クロック周波数を特定するステップと、
を含み、
−上記最大クロック周波数は、上記システムが正確に動作しない周波数であるとして特定された周波数の直前の周波数を含み、
−上記システムが各周波数においてシステムタイミング制約の範囲内で動作できるか否かを決定し、それにより、上記システムがそれぞれの周波数で正確に動作するか否かを示すためのタイミングモニタが設けられている、方法が提供される。
【０００７】
本発明は、さらに、デジタル処理システムが動作可能な最大の最適なクロック周波数を決定するための装置であって、
−初期周波数でクロック信号を生成するための手段と、
−上記システムが正確に動作しないクロック周波数が特定されるまで、上記周波数を段階的に増大させる手段、及び、上記システムの動作を、選択された数の周波数のそれぞれに決定する手段と、
−上記システムが正確に動作可能な最大クロック周波数を特定するための手段と、
を備え、
−上記最大クロック周波数は、上記システムが正確に動作しない周波数であるとして特定された周波数の直前の周波数を含み、
−上記システムの動作を決定するための上記手段は、上記システムが各周波数においてシステムタイミング制約の範囲内で動作できるか否かを決定し、それにより、上記システムがそれぞれの周波数で正確に動作するか否かを示すためのタイミングモニタを備えている、
ことを特徴とする装置に拡張される。
【０００８】
好適な実施の形態において、最大周波数は、メモリ内に記憶される。
【０００９】
本発明の一つの実施の形態では、前述した方法が定期的に行われ、クロック発生手段を較正するために出力周波数が使用される。
【００１０】
一つの実施の形態において、先に規定された方法は、デジタル処理システムが動作している周波数を選択的に変更する方法に関して使用される。
【００１１】
従って、本発明の第二の態様によれば、デジタル処理システムが動作している周波数を選択的に変化させる方法であって、
ａ）上記システムがリセットされるときに、上記システムがシステムタイミング制約の範囲内で動作できる最大クロック周波数を決定するとともに、上記最大周波数を記憶するステップと、
ｂ）リセット後に、クロック周波数の増大が必要とされていることを示す信号が受信されるまで、上記最大周波数よりも小さい公称周波数でクロック信号を生成するステップと、
ｃ）上記信号の受信に応じて、必要な時間に亘って上記最大周波数でクロック信号を生成するステップと、
ｄ）上記公称周波数でクロック信号を再び生成するステップと、
を含む方法が提供される。
【００１２】
本発明の好適な実施の形態において、最大周波数を決定するステップは、初期周波数でクロック信号を生成し、上記クロック信号の周波数を増大し、好ましくは段階的に上記クロック信号の周波数を増大し、システムのタイミング制約が満たされないことが測定されるまで、選択された各周波数でシステムタイミング制約を監視し、システムタイミング制約が満たされた最後（最近）の周波数を上記最大周波数として記憶することを含む。
【００１３】
本発明は、さらに、デジタル処理システムが動作している周波数を選択的に変化させるための装置であって、
ｉ．プログラマブル・クロック発生手段と、
ｉｉ．上記システムがリセットされるときに、上記システムがシステムタイミング制約の範囲内で動作可能な最大クロック周波数を決定するとともに、上記最大周波数を記憶するための手段と、
ｉｉｉ．上記クロック発生手段が、
ａ）リセット後に、クロック周波数の増大が必要とされていることを示す信号が受信されるまで、上記最大周波数よりも小さい公称周波数でクロック信号を生成し、
ｂ）上記信号の受信に応じて、必要な時間に亘って上記最大周波数でクロック信号を生成し、
ｃ）上記公称周波数でクロック信号を再び生成する、
ようにさせる手段と、
を備える装置に拡張される。
【００１４】
上記装置は、有益には、システムタイミング制約を監視するためのタイミングモニタを備えている。好適な実施の形態では、上記装置は、リセットにおいて、クロック信号の周波数を初期周波数から最大周波数まで増大させるための周波数ファインダを備えている。上記クロック発生手段は、プログラマブル・リングオシレータを含むものとするとよい。
【００１５】
一つの典型的な実施の形態において、上記装置は、リセットにおいて最大周波数を決定して、クロック周波数の増大の要求を受け取るとともに、上記要求が満了し又は取り消されるまで上記クロック発生手段にクロック信号を最大周波数で生成させるための周波数ファインダ・セレクタを備えている。
【００１６】
代替の典型的な実施の形態において、上記装置は、リセットにおいて上記最大周波数を決定し且つ上記クロック発生手段に上記最大周波数でクロック信号を生成させるための周波数ファインダと、上記公称周波数でクロック信号を生成するように配置されて構成される第２のクロック発生手段とを備え、上記第１及び第２のクロック発生手段の出力は、切り換え手段によってクロック出力に対して結合され、上記切り換え手段は、上記クロック周波数を増大するための要求が受け取られるまで上記第２のクロック発生手段を上記クロック出力に対して結合するように構成されており、上記要求に応じて、上記切り換え手段は、上記要求が満了し又は取り消されるまで、上記第１のクロック発生手段の出力が上記クロック出力に対して結合されるようにする。
【００１７】
上記要求が満了し又は取り消されるときに、上記第１のクロック発生手段を無効にするための手段を備えているものとするとよい。上記第２のクロック発生手段は、外部クロック発生手段を含むものとするとよい。
【００１８】
本発明のこれらの態様及び他の態様は、後述する実施の形態から明らかであり、これらの実施の形態を参照して上記態様について説明する。
【発明を実施するための最良の形態】
【００１９】
ここで、添付図面を参照しながら単なる一例として本発明の実施の形態を説明する。
【００２０】
従って、本発明の一態様は、システム又はシステムの一部がプロセスの限界内においてそれら自体をオーバークロックすることができる機構を提供する。本発明は、システム（又はシステムの一部）が製造されたプロセスコーナ（ｐｒｏｃｅｓｓ  ｃｏｒｎｅｒ）を検出して、システム自体が実行できる最大周波数を決定する。この点において、本発明によれば、システムは、そのような周波数が許可され且つシステムの動作に役立つ度に、そのような周波数でそれ自体をオーバークロックすることができる。
【００２１】
米国特許第５，６３０，１１０号は、特定の最大電圧レベルを有する供給電圧を印加し、その後にクロック速度を初期周波数に設定することを含む、プロセッサ性能を向上させるための方法及び装置について記載している。次に、プロセッサがこの初期周波数で適切に動作しているかどうかが測定される。適切に動作していない場合、周波数は、プロセッサが正確に動作していることが測定されるレベルに達するまで段階的に減少させられる。しかしながら、プロセッサが初期周波数で適切に動作していることが測定される場合、周波数は、プロセッサが正確に動作する最大速度が見出されるまで増大させられる。
【００２２】
米国特許第６，０７６，１７１号は、システムクロック周波数を変化させることにより情報処理システムの電力消費量を制御するための装置について記載している。ユーザによって現在必要とされているＣＰＵ電力は、検出手段によって直接に検出され、また、検出結果に基づいてシステムクロック周波数が動的に変化させられ、それにより、与えられるＣＰＵ電力が所定の電力範囲内に入る。
【００２３】
米国特許出願第２００２／０１１６６５０Ａ１号は、コンピュータによって使用される電力を制御するための方法について記載しており、この方法は、コンピュータの中央プロセッサの動作特性を測定するステップと、中央プロセッサの動作特性が、行われるべき動作によって必要とされる動作特性と著しく異なる時期を決定するステップと、行われるべき動作に見合ったレベルに中央プロセッサの動作特性を変更するステップとを含んでいる。例えば、プロセッサがいわゆるコア周波数及び通常の電圧で動作し且つプロセッサが一つ以上のアイドルモードでのその動作の予め選択された増分よりも多くを費やしていることが測定される場合、電力は浪費されており、動作周波数及び電圧は減少され得る。一方、処理電力が非常に低いために、プロセッサによる実行のために与えられる一連のコマンドを処理することができないという意味において、非常に低い電圧及び周波数でプロセッサが動作していることが測定されることもあり、従って、その場合には、電圧及び周波数が増大され得る。
【００２４】
米国特許第５，７７４，７０４号は、動的な中央プロセッサのクロック調整のための装置を有するコンピュータシステムについて記載している。コントローラは、ＣＰＵの負荷が増大するときにクロック周波数が増大し且つＣＰＵの負荷が減少するときにクロック周波数が減少するようにクロック周波数を調整する。
【００２５】
米国特許第５，１８９，３１４号は、チップがアイドル状態のときの発熱を低減するためにクロック周波数が減少させられる集積回路について記載している。チップがアイドル状態にある間に「節約された」熱は、発生する熱の総てがＩＣパッケージの熱放散能力を超えないという条件で、クロック速度を通常よりも高く増大するその後の使用において利用できる。
【００２６】
米国特許第６，２３０，２７９号は、ユーザコマンドに応じてコンピュータの処理速度を動的に制御するためのシステム及び方法について記載している。ユーザが加速機能又は減速機能を動作させると、それに応じて、コンピュータの処理速度が増大又は減少させられ、結果として得られる処理速度は、現在実行されているアプリケーションプログラムと共に速度管理データとしてデータベースに記録される。従って、そのアプリケーションが再び実行されると、予め記憶された速度管理データに従って処理速度が適合させられる。
【００２７】
我々は、ここで、改良された構成を案出した。
【００２８】
本発明の一つの態様は、基本的には、システムが、有用であると思われるときだけ、より高い周波数で自動的に実行することができるものであって、それは、以下の二つのステップによるものである、という事実を使用する方法である。
−リセット時間に、システムがその最大許容クロック周波数（即ち、そのプロセスコーナ）を特定し、この周波数値が記憶される。
−実行時間（及び、有用であると思われるときだけ、例えば、システムの出力信号が不足している場合）に、より高い周波数が使用され、そうでなければ、公称周波数が使用される（例えば、システムが出力によってブロックされ、そのため、処理速度を増大することが、出力においてトラフィックを増大させることから、望ましい場合）。
【００２９】
プロセスコーナを検出して周波数間での切り換えを行うことができるようにするためには、システムはこれらの動作の両方を実行するための手段を必要とし、また、これをどのようにして達成できるのかを示すために、以下では、二つの典型的な実施の形態が与えられている。
【００３０】
図面の図１を参照すると、本発明の第１の典型的な実施の形態に係る装置は、プログラマブル・リングオシレータ１０と、周波数ファインダ・セレクタ１２と、タイミングモニタ１４と、を備えている。
【００３１】
リングオシレータは、集積回路製造の分野において幅広く知られており、通常は、簡単な反転論理回路をステージ（段）として備えている。各ステージの電流出力は、その後のステージの入力キャパシタンスを閾値電圧まで充電及び放電するために特定の時間を要する。ステージは、縦列に接続されてカスケードループを形成しており、それにより、特定の周波数において、ループの周囲を通る信号に対して１８０°位相シフトが与えられる。ループ利得が十分に大きい場合には、信号が直ちに非線形となり、その結果、様々な目的で使用することができる、特にデジタル信号処理において使用することができる方形波振動が得られる。金属酸化物（ＭＯＳ）集積回路において、リングオシレータは、チャージポンプ回路を駆動するために一般的に使用される。特に、リングオシレータは、ＢｉＣＭＯＳ又はバイポーラにおいて設けられるとともに、純粋なＣＭＯＳ回路においても設けられる。リングオシレータの好ましい用途は、データリカバリ回路及びクロックリカバリ回路又はフェーズロック（位相同期）ループ（ＰＬＬ）回路に設けることである。
【００３２】
本発明のこの典型的な実施の形態において使用されるプログラマブル・リングオシレータ１０は、生成されるべき必要があるクロック信号のクロックサイクルを表すデータを受け取るように、従って、新たな必要とされる周波数が何であるべきかを示すように配置されて構成される可変プログラマブル遅延素子（図示せず）を有している。従って、図１に示される典型的な構成は、既知のプロセッサシステムにおける標準的なリングオシレータモジュールに取って代わり得る。
【００３３】
使用時には、更に図面の図２を参照すると、処理システムがリセットされるときに、周波数ファインダ・セレクタ１２は、総てのタイミング制約が満たされていると仮定されている公称周波数でクロック信号を生成するようにプログラマブル・リングオシレータ１０をプログラムし、それにより、タイミングモニタ１４は、タイミング違反が起こり得ない信号を周波数ファインダ・セレクタ１２に対して送信する。この時点で、周波数ファインダ・セレクタ１２は、タイミング制約が満たされていないことをタイミングモニタ１４が報告するまで（プログラマブル・リングオシレータ１０を適宜に繰り返しプログラムすることにより）段階的に周波数を増大し始める。その後、周波数ファインダ・セレクタ１２は、システムタイミング制約が違反されていることをタイミングモニタ１４が測定しなかった直前の周波数を取得して、この周波数をシステムの最大の可能な実行周波数として記憶させる。
【００３４】
前述した周波数探索はリニアサーチである。しかしながら、探索プロセスをスピードアップさせることができる様々なアルゴリズム（例えば２分探索アルゴリズム）を使用でき、また、本発明はこの点に限定されることを意図していない。
【００３５】
プログラマブル・リングオシレータが技術的に知られていることは認識されるであろうし、また、この種の要素の一例は米国特許第６，２０８，１８２号において説明され且つ図示されている。当業者であれば分かるように、幾つかの異なるタイプ及び構成のプログラマブル・リングオシレータは本発明に係る装置での使用に適しており、また、本発明はこの点に限定されることを意図していない。この要素における唯一の制約は、図１に示される本発明の典型的な実施の形態に関して、公称周波数から例えば高速プロセスコーナ周波数に等しい最大値に至るプログラム可能な周波数（プログラマブル周波数）を有するクロック信号を生成できるということである。
【００３６】
同様に、タイミングモニタも技術的に知られている。例えば、システムタイミング制約違反を検出して報告するための方法及び装置は、米国特許第５，４１８，９３１号に記載されている。当業者であれば分かるように、図面の図１を参照して説明した典型的な構成における使用に適するタイミングモニタは、入力周波数がシステムタイミング制約に違反しているかどうかを検出するだけで済み、また、その実際の制約は特定の例に限定されることを意図していない。
【００３７】
図１の構成における周波数ファインダ・セレクタ１２は、本発明を実施するための制御論理を備えている。
【００３８】
リセット後、実行時間中に、周波数ファインダ・セレクタ１２は、スピードアップ信号が周波数ファインダ・セレクタ１２によって受け取られるまで、公称周波数でクロック信号を生成するようにリングオシレータをプログラムし、スピードアップ信号に応答して、周波数ファインダ・セレクタ１２は、スピードアップ要求が取り消されるまで（前述の決定された）最大周波数でクロック信号を生成するようにリングオシレータ１０をプログラムする。
【００３９】
クロック信号の周波数を増大させることが必要となる場合がある多くの様々な状況が存在する。例えば、より一般的な状況（ストリーミングシステムにおける状況）のうちの一つは、出力が不足状態に陥る（即ち、出力データの準備が未だにできていない）一方で、入力がブロックされるような状況である（即ち、新たな入力データが、処理される現在のデータを待っている）。この場合、前述したオーバークロッキング技術が役に立つ。そのような状況を検出できる幾つかの様々な方法があり、例えば、それは、システムの状態又は（存在する場合には）Ｉ／Ｏ待ち行列の状態を知ることによって行うことができる。また、当業者であれば分かるように、本発明はこの点に限定されることを意図していない。
【００４０】
図面の図３を参照すると、本発明の第２の典型的な実施の形態に係る装置は、プログラマブル・リングオシレータ１０と、周波数ファインダ１６と、タイミングモニタ１４と、クロックマルチプレクサ（Ｍｕｘ）１８と、を備えている。この場合、外部ソースからシステムに対して公称クロック周波数が供給される。この構成も内部クロックオシレータ１０を有しているが、単に最大周波数を生成するためだけのものである。従って、この場合には、内部クロックオシレータに関して最大システム動作周波数を見出すために周波数ファインダ１６だけが（周波数ファインダ・セレクタとは対照的に）設けられる。ここで、「スピードアップ」信号２０によって駆動されるクロックマルチプレクサ１８は、どの周波数（即ち、外部クロック発生器によって発生される公称周波数、又は、内部プログラマブルリングオシレータ１０からの高速周波数）でシステムを動作させる必要があるかを選択するためにプログラマブル・リングオシレータ１０の後で使用される。
【００４１】
図３の構成の動作は、周波数ファインダ１６が内部リングオシレータ１０を介して最大周波数を決定するだけである点を除き、あらゆる点で図１の構成の動作と同様である。周波数ファインダ１６は、公称周波数でクロック信号を生成するように内部プログラマブルリングオシレータ１０をプログラムしない。その代わりに、この信号は外部構成要素によって生成される。また、この場合には、「スピードアップ」信号２０がクロックマルチプレクサ１８に対して印加され、それにより、クロックマルチプレクサ１８は切り換わり、周波数ファインダ１６によって決定され且つプログラマブルリングオシレータ１０によって生成される最大周波数でクロック信号を出力させる。これに対し、図１の構成では、「スピードアップ」信号が周波数ファインダ・セレクタに対して印加され、周波数ファインダ・セレクタによりプログラマブル・リングオシレータがクロック信号を最大周波数で生成する。また、スピードアップ信号は、それが使用において必要とされないときに発振しないようにプログラマブル・リングオシレータ１０へ送信することもでき、それにより電力を節約することもできる。
【００４２】
このように、本発明の前述した態様の方法及び装置は、多くの集積回路が公称周波数よりも十分に高い周波数で動作できるという事実をうまく利用するとともにこの事実の使用を最適化する自動的で且つ比較的安価な方法を提供する。周波数は、必要なときだけその最大値まで増大され、それにより、従来の技術の解決法と比べてエネルギ消耗が減少される。
【００４３】
本発明の他の態様は、リングオシレータの自動較正を定期的に行い、システムが実行しているときにシリコンの経年変化及び変化する動作状態を考慮するようにリングオシレータを適合させるという考えに基づいている。外部構成要素の必要性を避けるため、生成された較正データは、内蔵された不揮発性メモリ内に記憶され、そのため、初期較正ステップ又はデータ検索ステップを必要とすることなくシステムを直ちにパワーアップすることができる。
【００４４】
図面の図４を参照すると、本発明のこの態様の典型的な実施の形態に係る装置は、
−図５に記載されるような動作を正確に順序付けるためのコントローラ（図４のＣＴＲＬＥＲ）と、
−較正期間を決定するための非対称遅延線（図４のＡＤｅｌ）と、
−較正データを決定するためのリング較正モジュール（図４のＲＣＭ）と、
−（例えば）磁気メモリセルから作られた不揮発性レジスタ（ＭＣｅｌｌ）と、
−事象（例えば移行又はパルス）が存在する度に状態を変化させる（１から０へ、及び、逆もまた同様）不揮発性状態スイッチ（例えば、磁気メモリセルから作られている）（図４のＭＳｗｉｔｃｈ）と、
を備えている。
【００４５】
本実施の形態は、図５に示されるように動作する。
【００４６】
リセット後、システムは、新たな較正を開始する前にＫ秒待たなければならない。この場合、ＣＴＲＬＥＲは、信号ｒｅｑＣを立ち上げて、ａｓｋＣが立ち上げられるのを待つ。これらの事象間の遅延は、ＡＤｅｌブロックにより決定される。
−この時点で、新たな較正が行われる。ＣＴＲＬＥＲは、ｇｏ信号により新たな較正を行うようにＲＣＭに命令し、また、ＲＣＭは、ｄｏｎｅ信号によりその完了を信号で伝える。
−ここで、新たな較正データは、現在のところｒｅｑＷ／ａｃｋＷ信号対によって出力に接続されていないメモリセル内に記憶される。
−ここで、新たな較正データは、フリップ信号上の一つの偶数によってＭＳｗｉｔｃｈの状態を反転させることにより送信される（ＲｉｎｇＷ信号）。
−システムは最初の待ち状態に戻る。
【００４７】
ＲＣＭモジュールの典型的な実施の形態が図６に示されている。基本的に、ユニットは、内部プログラマブル・リングオシレータ１０（システムのためのクロックを生成するために使用されるもののコピー）と、タイミングクロージャモニタ１４（信号の周波数がその入力で設計タイミング制約に違反しているかどうかをチェックする）と、周波数ファインダ１２（正確なクロック周波数を見出すために繰り返す）と、を有している。動作形態は、簡単で且つ図３に関して説明した動作形態とほぼ同様であり、図６を参照して更に詳細に説明する。周波数ファインダ１２は、他の二つのモジュールを使用して、タイミング制約によって許可される最大の可能な周波数を見出す（探索は、図６の場合のようにリニアであってもよく、あるいは、異なるアルゴリズムを使用することができる）。この情報は、その後に送信される較正データである。
【００４８】
本発明のこの態様の利点としては、以下のような事実を挙げることができる。
−外部構成要素を要せずして自動的であり、システムが既に実行している間に行われる。
−動作状態及びシリコンの経年変化に適応できる。
【００４９】
尚、前述した実施の形態は、例示的であり、本発明を限定するものではなく、また、当業者であれば添付の請求項により規定される本発明の範囲から逸脱することなく多くの他の実施の形態を考え出すことができる。請求項において、括弧内の任意の参照符号は、請求項を限定するものとして解釈されるべきではない。用語「備えている、含んでいる（ｃｏｍｐｒｉｓｉｎｇ）」及び「備える、含む（ｃｏｍｐｒｉｓｅｓ）」等は、任意の請求項又は明細書に全体として記載された要素又はステップ以外の要素又はステップの存在を排除するものではない。要素の単数の言及は、そのような要素の複数の言及を排除するものではなく、逆もまた同様である。本発明は、幾つかの別個の要素を備えるハードウェアによって実施されてもよく、また、適切にプログラムされたコンピュータによって実施されてもよい。幾つかの手段を列挙する装置の請求項においては、これらの手段のうちの幾つかがハードウェアの一つの同一のアイテム（項目）によって具現化されてもよい。特定の手段が互いに異なる従属請求項に記載されているという事実だけで、これらの手段の組み合わせを有利に使用できないということを示すものではない。
【図面の簡単な説明】
【００５０】
【図１】本発明の第１の典型的な実施の形態に係る装置を示す概略ブロック図である。
【図２】図１の装置のプロセスの流れを示す概略フローチャートである。
【図３】本発明の第２の典型的な実施の形態に係る装置を示す概略ブロック図である。
【図４】本発明の第３の典型的な実施の形態に係る装置を示す概略ブロック図である。
【図５】図４の装置のプロセスの流れを示す概略フローチャートである。
【図６】図４の装置において使用するためのＲＣＭモジュールを示す概略ブロック図である。
【図７】図６のモジュールのプロセスの流れを示す概略フローチャートである。
【図１】
2007520008.tif 000003
【図２】
2007520008.tif 000004
【図３】
2007520008.tif 000005
【図４】
2007520008.tif 000006
【図５】
2007520008.tif 000007
【図６】
2007520008.tif 000008
【図７】
2007520008.tif 000009
【国際調査報告】
2007520008.tif 000010
2007520008.tif 000011
2007520008.tif 000012
2007520008.tif 000013
2007520008.tif 000014