(57)【要約】プロセッサ（１００）は、プロセッサの複数のポイントに配置された複数の電圧ドループ検出器（１３０）を含む。検出器は、リアルタイムで、電圧レベルをモニタリングし、ドループイベントが検出された場合にプロセッサに警告する。複数のドループを同時に検出することができ、検出された各ドループイベントが警告を生成し、この警告をクロック制御モジュール等のプロセッサモジュールに送信し、このプロセッサモジュールが、検出されたドループに基づいて動作する。各検出器は、リングオシレータ（２０６）を用いて、周期信号と、その信号に基づく対応するカウントと、を生成し、信号の周波数は、モニタリングされている対応するポイントにおける電圧に基づいて変化する。【選択図】図７
2021515324.tif 000002
【特許請求の範囲】
【請求項１】
第１検出器（１３０Ａ）によって、プロセッサ（１００）の第１ポイントにおいて第１電圧レベル（２１２）をモニタリングすることであって、前記第１検出器は、第１リングオシレータ（２０６）を含み、前記第１検出器は、前記第１電圧レベルを示す第１カウント（２１４）を生成する、ことと、
前記第１カウントを所定の第１閾値（２１６）と比較して、第１電圧ドループ状態を検出することと、
前記第１電圧ドループ状態を検出したことに応じて、第１クロック信号（１１６）の周波数を調整することと、を含む、
方法。
【請求項２】
前記第１電圧ドループ状態を検出したことに応じて、第２クロック信号（１１８）の周波数を調整することをさらに含む、
請求項１の方法。
【請求項３】
前記第２クロック信号の周波数を調整することは、前記第１クロック周波数を調整することとは異なる大きさで前記第２クロック信号の周波数を調整することを含む、
請求項２の方法。
【請求項４】
前記第１電圧ドループ状態を検出したことに応じて、前記プロセッサがサイクル当たりに実行する動作の数を調整することをさらに含む、
請求項１の方法。
【請求項５】
第２検出器（１３０Ｂ）によって、前記プロセッサの第２ポイントにおいて第２電圧レベルをモニタリングすることであって、前記第２検出器は、第２リングオシレータを含み、前記第２検出器は、前記第２電圧レベルを示す第２カウントを生成する、ことと、
前記第２カウントを所定の第２閾値と比較して、第２電圧ドループ状態を検出することと、
前記第２電圧ドループ状態を検出したことに応じて、第２クロック信号の周波数を調整することと、をさらに含む、
請求項１の方法。
【請求項６】
前記第１閾値は、前記第２閾値とは異なる、
請求項５の方法。
【請求項７】
前記第２クロック信号の周波数を調整することは、前記第１クロック周波数を調整することとは異なる大きさで前記第２クロック信号の周波数を調整することを含む、
請求項５の方法。
【請求項８】
複数の検出器（１３０）によって、プロセッサ（１００）上の複数のポイントにおいて電圧レベルをモニタリングすることであって、各検出器は、リングオシレータ（２０６）を含み、各検出器は、対応する電圧レベルを示すカウント（２１４）を生成する、ことと、
前記カウントを複数の所定の閾値（２１６）と比較して、第１電圧ドループ状態を検出することと、
前記第１電圧ドループ状態に基づいて複数のクロック（１１６，１１８）の周波数を調整することと、を含む、
方法。
【請求項９】
前記検出器は、異なる大きさで前記複数のクロックのうち異なるクロックの周波数を調整する、
請求項８の方法。
【請求項１０】
前記カウントを前記複数の所定の閾値と比較して、第２電圧ドループ状態を検出することと、
前記第２電圧ドループ状態に基いて前記複数のクロックの周波数を調整することと、をさらに含む、
請求項８の方法。
【請求項１１】
前記比較することに基づいて、前記プロセッサが実行する動作の数を低減させることをさらに含む、
請求項８の方法。
【請求項１２】
プロセッサ（１００）上の第１ポイントに配置された第１検出器（１３０Ａ）であって、前記第１検出器は、第１電圧レベル（２１２）をモニタリングし、前記第１検出器は、第１リングオシレータ（２０６）を含み、前記第１検出器は、前記第１電圧レベルを示す第１カウント（２１４）を生成する、第１検出器と、
前記第１カウントを所定の第１閾値（２１６）と比較して、第１電圧ドループ状態を検出する第１比較モジュール（２０８）と、
第１クロック制御モジュール（１２０）と、を備え、
前記第１クロック制御モジュールは、前記第１比較モジュールが前記第１電圧ドループ状態を検出したことに応じて、第１クロック信号（１１６）の周波数を調整する、
モニタリングシステム。
【請求項１３】
前記第１クロック制御モジュールは、前記第１比較モジュールが前記第１電圧ドループ状態を検出したことに応じて、第２クロック信号（１１８）の周波数を調整する、
請求項１２のモニタリングシステム。
【請求項１４】
前記第１クロック制御モジュールは、前記第１クロック周波数とは異なる大きさで前記第２クロック信号の周波数を調整する、
請求項１３のモニタリングシステム。
【請求項１５】
前記プロセッサは、前記第１比較モジュールが前記第１電圧ドループ状態を検出したことに応じて、前記プロセッサがサイクル当たりに実行する動作の数を調整する、
請求項１２のモニタリングシステム。
【請求項１６】
プロセッサ上の第２ポイントに配置された第２検出器（１３０Ｂ）であって、前記第２検出器は、第２電圧レベルをモニタリングし、前記第２検出器は、第２リングオシレータを含み、前記第２検出器は、前記第２電圧レベルを示す第２カウントを生成する、第２検出器と、
前記第２カウントを所定の第２閾値と比較して、第２電圧ドループ状態を検出する第２比較モジュールと、
第２クロック制御モジュールであって、前記第２クロック制御モジュールは、第２クロック信号の周波数を調整する、第２クロック制御モジュールと、をさらに備える、
請求項１２のモニタリングシステム。
【請求項１７】
前記第１閾値は、前記第２閾値とは異なる、
請求項１６のモニタリングシステム。
【請求項１８】
前記第２クロック制御モジュールは、前記第１クロック制御モジュールが前記第１クロック信号の周波数を調整することとは異なる大きさで前記第２クロック信号の周波数を調整する、
請求項１６のモニタリングシステム。
【請求項１９】
前記第１クロック信号は、前記プロセッサのプロセッサコアに供給され、前記第２クロック信号は、前記プロセッサのキャッシュに供給される、
請求項１６のモニタリングシステム。
【請求項２０】
前記プロセッサは、前記第２比較モジュールが前記第２電圧ドループ状態を検出したことに応じて、前記プロセッサが実行する動作の数を低減させる、
請求項１６のモニタリングシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
（関連技術の説明）
最新のプロセッサ設計は、従来の設計と比較して、より多くの電力を消費し、回路密度を高める傾向が続いている。このような傾向により、ノイズや他の変動（プロセッサ負荷の変化による電圧レベルの変化等）に対する許容度が低くなり、プロセッサのパワーバジェットに対する要求が厳しくなる。閾値の大きさを超えると、これらの変動は、電圧「ドループ」と呼ばれる。ドループは、プロセッサの動作に悪影響を与える可能性がある。例えば、ドループは、データ破損、論理ゲートの動作の失敗、命令処理のスローダウン、及び、命令全体の適切な実行の失敗等の望ましくない影響を引き起こす可能性がある。しかしながら、従来のプロセッサ設計における電圧及びドループの検出及びモニタリングは、比較的非効率的である。
【０００２】
本開示は、添付の図面を参照することによって、より良く理解することができ、その多くの特徴及び利点が当業者に明らかになる。異なる図面で同じ符号を使用することは、類似又は同一の要素を示す。
【図面の簡単な説明】
【０００３】
【図１】いくつかの実施形態による、プロセッサの異なるポイントにおける電圧及び電圧ドループを検出及びモニタリングする複数のドループ検出器を含むプロセッサを備える処理システムである。
【図２】いくつかの実施形態による、リングオシレータ及び比較モジュールを用いて、プロセッサのパワーバスにおける電圧をモニタリングする図１のドループ検出器のブロック図である。
【図３】いくつかの実施形態による、図１のプロセッサ上のポイントにおける電圧及びドループイベントの検出及びモニタリングを示す図である。
【図４】いくつかの実施形態による、図１のプロセッサにおけるクロック及びクロックストレッチ信号を示す図である。
【図５】いくつかの実施形態による、図１のドループ検出器に用いられるリングオシレータの出力をカウントするブロック図である。
【図６】いくつかの実施形態による、プロセッサのドループイベントをモニタリングする方法を示すフロー図である。
【図７】いくつかの実施形態による、プロセッサの複数のポイントにおいてドループイベントを同時にモニタリングする方法を示すフロー図である。
【発明を実施するための形態】
【０００４】
本明細書には、１つ以上の電圧／ドループ検出器（複数の検出器）を使用することによって、プロセッサの複数のポイントにおいて電圧及び電圧ドループを検出及びモニタリングする方法及びシステムが開示される。これらの検出器は、プロセッサ全体の様々なポイントに配置され、リアルタイムで、電圧レベルをモニタリングし、ドループイベントが検出された場合にプロセッサに警告する。いくつかの実施形態では、複数のドループが同時に検出され、検出された各ドループイベントが、検出されたドループに基づいて動作するようにプロセッサモジュール（クロック制御モジュール等）に送られる警告を生成する。各検出器は、リングオシレータを用いて、周期信号と、その信号に基づく対応するカウントとを生成し、信号の周波数は、モニタリングされている対応するポイントにおける電圧に基づいて変化する。したがって、入力電圧（例えば、プロセッサに送られる電源電圧）がドループイベントによって低下すると、リングオシレータの周期信号の周波数が低下し、ドループを示すカウントにおいて対応する変化が生じる。また、検出器は、電圧レベルをモニタリングし、ドループイベントの前、最中及び後に電圧の正確な読み出しを提供することにより、プロセッサがドループイベントにより適切に応答することを可能にする。
【０００５】
また、検出器は、リングオシレータから所定の基準値（閾値）カウントを受信する比較モジュールを使用する。この閾値は、指定された許容値であり、この値を下回ると、電源電圧がドループイベントを起こしていると特徴付けられる。リングオシレータからのカウントが閾値を下回ると、比較モジュールは、警告をプロセッサに送信する。次に、プロセッサは、実行している命令の数を減らすこと、又は、１つ以上のシステムクロックにクロックストレッチングを実行することを含むが、これらに限定されない、いくつかの是正措置を行う。さらに、いくつかの実施形態では、これらの検出器は、プロセッサ内に形成され、プロセッサを形成するときと同時に同じプロセスを使用して製造される。さらに他の実施形態では、検出器からのカウント及び警告は、後の分析のためにメモリに記憶される。リングオシレータを用いることにより、ドループ検出器は、比較的小さな回路フットプリントをサポートする。これにより、プロセッサの様々なポイントで複数の検出器を使用することが可能になり、ドループイベントに対するより詳細な応答が可能になるだけでなく、ドループイベントの比較的高速な検出及び改善がサポートされる。
【０００６】
図１は、いくつかの実施形態による、プロセッサの異なるポイントにおける電圧及び電圧ドループを検出及びモニタリングする複数のドループ検出器を含むプロセッサ１０２を備える処理システム１００である。図１は、複数の内部モジュールを含むプロセッサ１０２を示しており、これらの内部モジュールは、第１プロセッサコア１０４と、第２プロセッサコア１０６と、入出力（Ｉ／Ｏ）バッファ１０８と、レベル１（Ｌ１）キャッシュ（メモリ）１１０と、Ｌ２キャッシュ１１２と、Ｌ３キャッシュ１１４と、第１基準クロック１１６と、第２基準クロック１１８と、クロック制御モジュール１２０と、複数のドループ検出器（検出器）１３０Ａ〜１３０Ｆと、を含むが、これらに限定されない。また、プロセッサ１０２は、クロック制御モジュール１２０から各基準クロック１１６，１１８への制御線を含み、これらの制御線は、第１クロック１１６への第１制御線１２２と、第２クロック１１８への第２制御線１２４と、を含む。図示されたプロセッサ１０２のモジュールは、代表的なものに過ぎず、他の実施形態では、プロセッサ１０２は、他のモジュール、デバイス及び回路を含む。
【０００７】
プロセッサ１０２は、概して、電子デバイスに代わってタスクを実行するために、コンピュータプログラムの形式で構成された命令セットを実行するように構成されている。したがって、プロセッサ１０２は、デスクトップ又はラップトップコンピュータ、サーバ、スマートフォン、タブレット、ゲームコンソール等の様々な電子デバイスの何れにも使用され得る。第１コア及び第２コア１０４，１０６は、プロセッサの命令を実行し、互いに独立して動作し、独自のクロックを有し、異なるプロセス、命令及びＩ／Ｏ信号を実行する機能を有する。Ｉ／Ｏバッファ１０８は、プロセッサ１０２内のモジュールとの間の入力信号及び出力信号と、プロセッサ１０２の外部からの信号と、を制御する。
【０００８】
Ｌ１キャッシュメモリ、Ｌ２キャッシュメモリ及びＬ３キャッシュメモリ１１０，１１２，１１４の各々は、概して、データを記憶するように構成されたメモリデバイスであるので、ランダムアクセスメモリ（ＲＡＭ）メモリモジュール、不揮発性メモリデバイス（例えば、フラッシュメモリ）等とすることができる。Ｌ１キャッシュメモリ、Ｌ２キャッシュメモリ及びＬ３キャッシュメモリ１１０，１１２，１１４は、コア１０４，１０６による後の取得のために他のシステムメモリから取得したデータを記憶し、処理システム１００のメモリ階層を形成する。さらに、プロセッサ１０２のメモリ階層は、図１に示されていない追加のキャッシュ等の他のメモリモジュールを含んでもよい。
【０００９】
第１基準クロック及び第２基準クロック１１６，１１８は、対応するコア１０４，１０６及び他のモジュールに対して、安定したシステム同期信号を供給する。クロック制御モジュール１２０は、クロック１１６，１１８の周波数を制御する。異なる実施形態では、クロック１１６，１１８は、同じ又は異なる周波数で動作し、各クロック信号の周波数は、クロック制御モジュール１２０によって指示され、プロセッサ１０２における動作条件に基づいて、低下（クロックストレッチ）又は増加する。
【００１０】
検出器１３０Ａ〜１３０Ｆは、プロセッサ１０２内のポイントにおける電圧をリアルタイムにモニタリングすることによって、ドループイベントを検出する。いくつかの実施形態では、検出器１３０Ａ〜１３０Ｆの各々は、リングオシレータと比較モジュールとを含む。検出器１３０Ａ〜１３０Ｆは、リングオシレータを使用してドループイベントを検出し、その結果、本明細書にさらに説明するようにプロセッサ１０２に送信される警告信号を生成する。リングオシレータは、電源電圧及び周囲温度が安定している場合に、安定した周期信号を生成する。電源電圧又は温度の何れか一方又は両方が変化すると、リングオシレータの周期信号も変化の大きさに正比例して変化する。また、リングオシレータは、リングオシレータの周期信号の単一のクロックサイクルの持続時間を表すカウントを生成する。このカウントは、リングオシレータによって検出された、プロセッサ１０２における電圧レベルの正確な表現である。また、このカウントを使用して、ドループイベントがプロセッサ１０２に送られる間、その前、及び、その後に電圧レベルをモニタリングする。このようにして、プロセッサ１０２に送られる電圧レベルがリアルタイムで測定及び定量され、このデータは、さらなる分析のためにプロセッサ１０２によって使用される。例えば、いくつかの実施形態では、このデータを使用して、異なるドループイベントを特徴付けて、異なるタイプのドループイベントに対する異なる応答をサポートする。比較モジュールは、カウントを受信し、このカウントが所定の閾値レベルを下回った場合に警告を生成する。動作中、ドループ検出器は、カウントをモニタリングし、モニタリングされた電圧の変化によってカウントが変化すると、警告を送信する。
【００１１】
電力がプロセッサ１０２全体に分配される場合に、電源電圧の変動が存在する。したがって、検出器１３０Ａ〜１３０Ｆは、プロセッサ１０２内の複数のポイントに配置され、異なるポイントにおいて電圧レベルを同時にモニタリングする。いくつかの実施形態では、複数の検出器１３０Ａ〜１３０Ｆの各々は、プロセッサ１０２全体に亘ってドループを検出するように、単一のポイントにおいて電圧を感知する。さらに他の実施形態では、単一の検出器１３０Ａがプロセッサ１０２内の複数のポイントに電気的に接続され、複数の位置においてドループをモニタリング及び検出する。
【００１２】
いくつかの実施形態では、クロック制御モジュール１２０は、検出器１３０Ａ〜１３０Ｆから制御信号を受信し、ドループイベントが検出される毎にクロックストレッチング動作を開始するように指示された信号をクロック１１６，１１８に送信する。クロック制御モジュール１２０は、概して、クロックストレッチング技術を使用してクロック１１６，１１８の出力周波数を変更することによって、プロセッサ１０２の基準クロック１１６，１１８を管理するように構成されている。クロックストレッチングが発生すると、クロック１１６，１１８の周波数が低下し、プロセッサ１０２内の全てのモジュールの電力使用量も低減し、コア１０４，１０６がより低速で命令を実行し、電力使用量をさらに減少させ、クロックストレッチング応答を引き起こすドループイベントが緩和される。このようにして、ドループイベントを緩和して、プロセッサ１０２への悪影響を最小限にする。
【００１３】
図２は、いくつかの実施形態による、リングオシレータ２０６及び比較モジュール２０８を用いて、プロセッサ１０２のパワーバス２０４における電圧２１２をモニタリングする図１のドループ検出器１３０Ａのブロック図である。検出器１３０Ａは、電圧検出線２１２を介してローカルパワーバス２０４に電気的に接続されており、図１のプロセッサ１０２のモジュール２０２に電力を供給する。モジュール２０２は、ドループの検出が望まれるプロセッサ１０２のモジュールを表し、図１を参照して説明したように、プロセッサ１０２のコア、キャッシュ、Ｉ／Ｏバッファ等である。別の実施形態では、検出器１３０Ａをパワーピンに接続して、モジュール２０２に供給される電圧を検出する。検出器１３０Ａは、リングオシレータ２０６と比較モジュール２０８とを含み、比較モジュール２０８は、リングオシレータ２０６の出力を閾値２１６と比較し、図１のクロック制御モジュール１２０に送信される応答２１０を生成する。
【００１４】
リングオシレータ２０６は、電源電圧及び周囲温度が安定している場合に、安定した周期信号を生成する。電源電圧又は温度の何れか一方又は両方が変化すると、リングオシレータ２０６の周期信号も変化の大きさに正比例して変化する。リングオシレータ２０６は、カウント２１４を生成し、このカウント２１４は、リングオシレータ２０６によって生成される周期信号の周波数の定量的表現である。一例として、１００ＭＨｚリングオシレータ（すなわち、１００ＭＨｚ信号を生成するリングオシレータ）によって生成されるカウントを１０００とすることができる。リングオシレータ２０６の周期信号が変化すると、対応するカウント２１４も比例して変化する。上記の例に従って、１００ＭＨｚリングオシレータが９５ＭＨｚで動作している場合、カウントを１０５０とすることができる。いくつかの実施形態では、カウント２１４は、リングオシレータ２０６からの出力信号の個々のサイクル毎に一意のカウント２１４を提供するために、クロックサイクル毎にリセットされる。また、いくつかの実施形態では、カウント２１４は、経時的にインクリメントし、結果として、クロックサイクルが低速になるほどカウント２１４が増加し、クロックサイクルが高速になるほどカウント２１４が低減するようになる。或いは、いくつかの実施形態では、カウント２１４は、経時的にデクリメントし、結果として、クロックサイクルが高速になるほどカウント２１４が増加し、クロックサイクルが低速になるほどカウント２１４が低減する。一実施形態では、検出器１３０Ａは、合計持続時間において３ミリボルト（ｍＶ）及び１ナノ秒（ｎｓ）未満のドループを検出する。
【００１５】
また、検出器１３０Ａは、所定の最小基準周波数の十進表現である閾値２１６を含む。比較モジュール２０８は、リングオシレータ２０６からのカウント２１４を入力として使用し、その十進値を入力閾値２１６と比較する。これらの２つの入力から、比較モジュール２０８は、応答２１０を生成し、さらなる動作のために、応答２１０をプロセッサ１０２のクロック制御モジュール１２０に送信する。いくつかの実施形態では、カウント２１４は、プロセッサ１０２による後の取得のためにメモリに記憶される。
【００１６】
動作中、検出器１３０Ａは、電圧検出線２１２をモニタリングする。リングオシレータ２０６は、量子化され、カウント２１４として比較モジュール２０８に送信される周期信号を生成する。また、比較モジュール２０８は、閾値２１６を受信し、２つの値を比較する。公称動作の間（すなわち、ドループがない場合）、カウント２１４は閾値２１６を上回り、比較モジュール２０８は応答２１０を生成しない。ローカルパワーバス２０４上にドループ状態が現れると、リングオシレータ２０６の周期信号の周波数が低下し、カウント２１４を減少させる。比較モジュール２０８は、カウント２１４を閾値２１６と比較し、カウントが閾値２１６を下回ると、クロック制御モジュール１２０に送信される応答２１０を生成する。したがって、検出器１３０Ａ〜１３０Ｆは、プロセッサ１０２上のポイントに印加された電圧をリアルタイムでモニタリングし、ドループイベントの前、最中及び後に正確な電圧データを提供する。
【００１７】
いくつかの実施形態では、カウント２１４は、プロセッサクロックサイクル毎にリセットされる。応答２１０を受信すると、クロック制御モジュール１２０は、本明細書で説明するように、第１クロック１１６及び第２クロック１１８からの信号をストレッチすること、又は、プロセッサ１０２が実行している命令の数を減らすことを含むが、これらに限定されないさらなる動作を行う。他の動作も可能であり、示された実施例は、限定するものではない。
【００１８】
図３は、いくつかの実施形態による、図１のプロセッサ１０２上のポイントにおける電圧及びドループイベント３００の検出及びモニタリングを示す図である。ドループイベント３００は、ドループイベントの一例であるが、より長い又はより短い持続時間又は大きさを有するイベントを含む他のドループイベントも可能である。ドループイベント３００は、横軸３０６にナノ秒（ｎｓ）の時間、及び、縦軸３０４に電圧を有するグラフ上に表示される。このグラフは、１００％の公称電圧３０８の基準線と、（図２に示す）閾値２１６の基準線と、を表示している。図３では、閾値２１６は、公称電圧３０８の９７％に設定されているが、他の値も可能である。この図は、電圧ドループ３０２の波形も表示しており、このドループ３０２は、約１０ｎｓの合計持続時間を有し、約３ｎｓの間、公称電圧レベルの３％未満の大きさを有し、次の５ｎｓを超えると公称電圧３０８に戻る。図１を参照して説明したように、１ｎｓと短く、５０ｍＶの大きさのドループイベントは、プロセッサ１０２の動作において、命令のミスやモジュールの誤動作等の悪影響をもたらす。図２に示す検出器１３０Ａを使用して、ドループイベント３００等のドループを検出及びモニタリングし、応答２１０を図２に示すクロック制御モジュール１２０に送信する。
【００１９】
図４は、いくつかの実施形態による、図１のプロセッサ１０２におけるクロック及びクロックストレッチ信号４００を示す図である。信号４００は、１００％の周波数レベルで動作するクロックのクロック信号４０２を含む。この例では、クロック信号４０２は、１０００のカウント２１４を有する矩形波である。一方、クロック信号４０４は、クロック信号４０２の１００％の周波数レートと比較して低減した周波数レートで動作するクロック（例えば、公称周波数の７５％で動作するクロック）を示している。低減した周波数レートのクロック信号４０４の結果として得られるカウント２１４は１２５０であり、カウント２１４は、経時的にインクリメントし、周波数レートが低減するにつれて増加するカウント２１４を形成する。本明細書で説明するように、クロック信号４０４が元のクロック信号４０２から減速するので、低減したレートのクロック信号４０４は、「クロックストレッチング」とも呼ばれる。ハイブリッドクロック信号４０６は、システムクロックのクロックストレッチングの一例であり、公称レート（例えば、クロック信号４０２）から低減したレート（例えば、クロック信号４０４）に遷移するクロック信号を示している。ハイブリッドクロック信号４０６は、中断又はスプリアスノイズ無しに或る周波数から別の周波数に滑らかに遷移する。いくつかの実施形態では、ハイブリッドクロック信号４０６は、図２に示すように、検出器１３０Ａがドループイベントを検出及びモニタリングし、クロック制御モジュール１２０に対する応答２１０を生成した結果として形成され、クロック制御モジュール１２０は、第１制御線１２２を生成して、第１クロック１１６の周波数レートを低下させる。
【００２０】
図５は、いくつかの実施形態による、図１のドループ検出器１３０Ａ〜１３０Ｆに用いられるリングオシレータ５００の出力をカウントするブロック図である。図５は、１００％の周波数レートで動作する図４のクロック信号４０２と、低下した周波数レートで動作する図４のストレッチクロック信号４０４と、のグラフを含む。所定のサイクルについて、図１の検出器１３０Ａは、図４で説明したクロックの周波数を表すカウント２１４を生成する。少なくとも１つの実施形態では、単一のクロックサイクルがアクティブである場合、カウント２１４がインクリメントされ、結果として、周波数が低いほどカウント２１４が高くなる。他の実施形態では、カウント２１４は、所定の値からデクリメントされ、結果として、周波数が低いほどカウント２１４が小さくなる。クロック信号４０２について、１サイクルのカウント５０２は１０００であり、カウント５０４は、クロックサイクルの終了時にリセットされる。カウントは、クロックサイクル毎に継続し、この例では、０から始まり１０００までインクリメントし、その後リセットされ、クロックが動作し続ける場合に繰り返される継続的なデータフローをもたらす。低減したクロック信号４０４について、カウント５０６は１５００である。これにより、０から始まり１５００までインクリメントした後に０にリセットされ、次に、再びインクリメントし始める継続的なデータフローが生じる。いくつかの実施形態では、カウント２１４は、任意の数で始まり、クロック信号がアクティブである限りデクリメントしてもよい。
【００２１】
図６は、いくつかの実施形態による、図１のプロセッサ１０２のドループイベント３００をモニタリングする方法６００を示すフロー図である。方法６００は、ブロック６０２において、図１で説明したように、プロセッサ１０２における電圧をモニタリングする単一のドループ検出器１３０Ａを含む。この実施形態では、プロセッサ１０２内の１つのポイントに供給される電圧をモニタリングするために使用される単一の検出器１３０Ａが存在する。フロー図は、ブロック６０４に続き、ここで、検出器１３０Ａは、図２で説明したように、リングオシレータ２０６及び比較モジュール２０８を使用することによって検出された電圧に基づいてカウント２１４を生成する。カウント２１４は、リングオシレータ２０６の出力のデジタル表現である。リングオシレータ２０６の出力は、入力電圧又は温度の変化に応じて変化するため、カウント２１４の変化をもたらす。次に、ブロック６０６において、比較モジュール２０８は、カウント２１４及び閾値２１６を入力として受け入れ、２つの値が一致するか異なるかを判別し、異なる場合に、差の大きさを計算する。次に、判別ブロック６１０において、比較モジュールは、カウント２１４が閾値２１６を超えているか否か、及び、その大きさを判別する。このようにして、検出器１３０Ａは、ドループイベントを検出する。ブロック６１０における判別が「いいえ」である場合、フローは開始ブロック６０２に戻る。しかしながら、ブロック６１０における判別が「はい」である場合、ドループイベントが検出され、方法６００はブロック６１２に進む。ブロック６１２において、比較モジュール２０８は、応答２１０を生成し、さらなる動作のために、この応答２１０をプロセッサ１０２のクロック制御モジュール１２０に送信する。最後に、ブロック６１４において、クロック制御モジュール１２０は、第１クロック１１６のクロック周波数を低下させ、電力使用量を制限し、ドループイベントの影響を最小限にする。
【００２２】
図７は、いくつかの実施形態による、図１のプロセッサ１０２の複数のポイントにおいてドループイベント３００を同時にモニタリングする方法７００を示すフロー図である。方法７００は、上述した方法６００と同様であるが、プロセッサ１０２の複数のポイントを同時にモニタリングするために複数の検出器１３０Ａ〜１３０Ｆを使用する。さらに、方法７００は、例えば、プロセッサ１０２内の異なるシステムクロック又は異なるモジュールに影響を与え得る複数の応答を用いる。
【００２３】
方法７００は、ブロック７０２において、図１で説明したように、単一のドループ検出器１３０Ａがプロセッサ１０２において電圧をモニタリングすることを含む。フロー図は、ブロック７０４に進み、ここで検出器１３０Ａは、図２で説明したように、リングオシレータ２０６及び比較モジュール２０８を使用して検出された電圧に基づいてカウント２１４を生成する。カウント２１４は、リングオシレータ２０６の出力のデジタル表現である。リングオシレータ２０６の出力は、入力電圧又は温度の変化に応じて変化するため、カウント２１４の変化をもたらす。次に、ブロック７０６において、比較モジュール２０８は、カウント２１４及び第１閾値７０８を入力として受け入れ、２つの値が一致するか異なるかを判別し、異なる場合、差の大きさを計算する。次に、判別ブロック７１０において、比較モジュールは、カウント２１４が第１閾値７０８を超えているか否か、及び、その大きさを判別する。このようにして、検出器１３０Ａはドループイベントを検出する。ブロック７１０における判別が「いいえ」である場合、フローは開始ブロック７０２に戻る。しかしながら、判別が「はい」である場合、ドループイベントが検出され、方法７００はブロック７１２に進む。ブロック７１２において、比較モジュール２０８は、応答２１０を生成し、さらなる動作のために、この応答２１０をプロセッサ１０２のクロック制御モジュール１２０に送信する。最後に、ブロック７１４において、クロック制御モジュール１２０は、第１クロック１１６のクロック周波数を低下させ、電力使用量を制限し、ドループイベントの影響を最小限にする。
【００２４】
上述したブロック７０２，７０４，７０６，７１０，７１２，７１４と同様に、第２検出器は、第１検出器と同時にプロセッサ１０２内の別のポイントをモニタリングする。方法７００は、ブロック７２２に進み、単一のドループ検出器１３０Ａは、図１で説明したように、プロセッサ１０２において電圧をモニタリングする。フロー図は、ブロック７２４に進み、検出器１３０Ａは、図２で説明したように、リングオシレータ２０６及び比較モジュール２０８を使用して検出された電圧に基づいてカウント２１４を生成する。カウント２１４は、リングオシレータ２０６の出力のデジタル表現である。リングオシレータ２０６の出力は、入力電圧又は温度の変化に応じて変化するため、カウント２１４の変化をもたらす。次に、ブロック７２６において、比較モジュール２０８は、カウント２１４及び第２閾値７２８を入力として受け入れ、２つの値が一致するか異なるかを判別し、異なる場合、差の大きさを計算する。次に、判別ブロック７３０において、比較モジュールは、カウント２１４が第２閾値７２８を超えているか否か、及び、その大きさを判別する。このようにして、検出器１３０Ａはドループイベントを検出する。ブロック７３０における判別が「いいえ」である場合、フローは開始ブロック７２２に戻る。しかしながら、判別が「はい」である場合、ドループイベントが検出され、方法７００はブロック７３２に進む。ブロック７３２において、比較モジュール２０８は、応答２１０を生成し、さらなる動作のために、この応答２１０をプロセッサ１０２のクロック制御モジュール１２０に送信する。最後に、ブロック７３４において、クロック制御モジュール１２０は、第２クロック１１８のクロック周波数を低下させ、電力使用量を制限し、ドループイベントの影響を最小限にする。
【００２５】
第１態様において、方法は、第１検出器によって、プロセッサの第１ポイントで第１電圧レベルをモニタリングすることを含むことができ、第１検出器は、第１リングオシレータを含み、第１検出器は、第１電圧レベルを示す第１カウントを生成し、第１カウントを所定の第１閾値と比較して第１電圧ドループ状態を検出し、第１電圧ドループ状態を検出したことに応じて第１クロック信号の周波数を調整する。
【００２６】
第１態様の一実施形態では、方法は、第１電圧ドループ状態を検出したことに応じて第２クロック信号の周波数を調整することを含む。特定の実施形態では、第２クロック信号の周波数を調整することは、第１クロック周波数を調整することとは異なる大きさで第２クロック信号の周波数を調整することを含む。別の実施形態では、方法は、第１電圧ドループ状態を検出したことに応じて、プロセッサがサイクル当たりに実行する動作の数を調整することを含む。
【００２７】
第１態様の別の実施形態では、方法は、第２検出器によって、プロセッサの第２ポイントにおける第２電圧レベルをモニタリングすることを含み、第２検出器は、第２リングオシレータを含み、第２検出器は、第２電圧レベルを示す第２カウントを生成し、第２カウントを所定の第２閾値と比較して第２電圧ドループ状態を検出し、第２電圧ドループ状態を検出したことに応じて第２クロック信号の周波数を調整する。特定の実施形態では、第１閾値は、第２閾値と異なる。別の特定の実施形態では、第２クロック信号の周波数を調整することは、第１クロック周波数を調整することとは異なる大きさで第２クロック信号の周波数を調整することを含む。
【００２８】
第２態様では、方法は、複数の検出器によって、プロセッサ上の複数のポイントにおける電圧レベルをモニタリングすることを含むことができ、各検出器は、リングオシレータを含み、各検出器は、対応する電圧レベルを示すカウントを生成し、カウントを複数の所定の閾値と比較して第１電圧ドループ状態を検出し、第１電圧ドループ状態に基づいて複数のクロックの周波数を調整する。
【００２９】
第２態様の一実施形態では、検出器は、複数のクロックのうち異なるクロックの周波数を異なる大きさで調整する。別の実施形態では、方法は、カウントを複数の所定の閾値と比較して第２電圧ドループ状態を検出することと、第２電圧ドループ状態に基づいて複数のクロックの周波数を調整することと、を含む。さらに別の実施形態では、方法は、比較に基づいて、プロセッサが実行する動作の数を低減させることを含む。
【００３０】
第３態様では、モニタリングシステムは、プロセッサ上の第１ポイントに配置された第１検出器を含むことができ、第１検出器は、第１電圧レベルをモニタリングし、第１検出器は、第１リングオシレータを含み、第１検出器は、第１電圧レベルを示す第１カウントを生成する。また、システムは、第１カウントを所定の第１閾値と比較して第１電圧ドループ状態を検出する第１比較モジュールと、第１クロック制御モジュールと、を含み、第１クロック制御モジュールは、第１比較モジュールが第１電圧ドループ状態を検出したことに応じて、第１クロック信号の周波数を調整する。
【００３１】
第３態様の一実施形態では、第１クロック制御モジュールは、第１比較モジュールが第１電圧ドループ状態を検出したことに応じて、第２クロック信号の周波数を調整する。特定の実施形態では、第１クロック制御モジュールは、第２クロック信号の周波数を、第１クロック周波数とは異なる大きさで調整する。さらなる実施形態では、プロセッサは、第１比較モジュールが第１電圧ドループ状態を検出したことに応じて、プロセッサがサイクル当たりに実行する動作の数を調整する。
【００３２】
第３態様の別の実施形態では、モニタリングシステムは、プロセッサ上の第２ポイントに配置された第２検出器であって、第２検出器は、第２電圧レベルをモニタリングし、第２検出器は、第２リングオシレータを含み、第２検出器は、第２電圧レベルを示す第２カウントを生成する、第２検出器と、第２カウントを所定の第２閾値と比較して第２電圧ドループ状態を検出する第２比較モジュールと、第２クロック制御モジュールであって、第２クロック制御モジュールは、第２クロック信号の周波数を調整する、第２クロック制御モジュールと、を備える。特定の実施形態では、第１閾値は、第２閾値と異なる。別の特定の実施形態では、第２クロック制御モジュールは、第１クロック制御モジュールが第１クロック信号の周波数を調整することとは異なる大きさで第２クロック信号の周波数を調整する。さらに別の特定の実施形態では、第１クロック信号は、プロセッサのプロセッサコアに供給され、第２クロック信号は、プロセッサのキャッシュに供給される。さらなる特定の実施形態では、プロセッサは、第２比較モジュールが第２電圧ドループ状態を検出したことに応じて、プロセッサが実行する動作の数を低減させる。
【００３３】
概要説明において上述したアクティビティ又は要素の全てが必須ではないこと、特定のアクティビティ又はデバイスの一部が必要とされない場合があること、説明したものに加えて１つ以上のさらなるアクティビティが実行されてもよいし、要素が含まれてもよいことに留意されたい。さらに、アクティビティがリストされる順序は、必ずしもこれらが実行される順序ではない。また、これらの概念は、特定の実施形態を参照して説明されている。しかし、当業者は、添付の特許請求の範囲に記載されている本発明の範囲から逸脱することなく、様々な修正及び変更を行うことができることを理解する。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味でみなされるべきであり、このような全ての修正は、本発明の範囲内に含まれることが意図される。
【００３４】
特定の実施形態に関して、利益、他の利点、及び、問題に対する解決策が上述されている。但し、利益、他の利点、及び、問題に対する解決策、並びに、任意の利益、利点若しくは解決策を生じさせるか、又は、より顕著になる可能性のある任意の特徴（複数可）は、何れか又は全ての請求項の重要な、必要な若しくは不可欠な特徴として解釈されるべきではない。さらに、開示された発明は、本明細書の教示の利益を受ける当業者には明らかな、異なっているが同等の方法で修正され、実施されてもよいので、上記に開示された特定の実施形態は、例示に過ぎない。添付の特許請求の範囲に記載されているもの以外に、本明細書に示されている構造又は設計の詳細に対する制限は意図されない。したがって、上記に開示された特定の実施形態は変更又は修正されてもよく、このような全ての変更は、開示された発明の範囲内であるとみなされることが明らかである。したがって、本明細書において求められる保護は、特許請求の範囲に記載されている通りである。
【図１】
2021515324.tif 000003
【図２】
2021515324.tif 000004
【図３】
2021515324.tif 000005
【図４】
2021515324.tif 000006
【図５】
2021515324.tif 000007
【図６】
2021515324.tif 000008
【図７】
2021515324.tif 000009
【手続補正書】
【提出日】令和2年10月29日(2020.10.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１検出器（１３０Ａ）によって、プロセッサ（１００）の第１ポイントにおいて第１電圧レベル（２１２）をモニタリングすることであって、前記第１検出器は、第１リングオシレータ（２０６）を含み、前記第１検出器は、前記第１電圧レベルを示す第１カウント（２１４）を生成する、ことと、
前記第１カウントを所定の第１閾値（２１６）と比較して、第１電圧ドループ状態を検出することと、
前記第１電圧ドループ状態を検出したことに応じて、第１クロック信号（１１６）の周波数を調整することと、を含む、
方法。
【請求項２】
前記第１電圧ドループ状態を検出したことに応じて、第２クロック信号（１１８）の周波数を調整することをさらに含む、
請求項１の方法。
【請求項３】
前記第２クロック信号の周波数を調整することは、前記第１クロック周波数を調整することとは異なる大きさで前記第２クロック信号の周波数を調整することを含む、
請求項２の方法。
【請求項４】
前記第１電圧ドループ状態を検出したことに応じて、前記プロセッサがサイクル当たりに実行する動作の数を調整することをさらに含む、
請求項１〜３の何れかの方法。
【請求項５】
第２検出器（１３０Ｂ）によって、前記プロセッサの第２ポイントにおいて第２電圧レベルをモニタリングすることであって、前記第２検出器は、第２リングオシレータを含み、前記第２検出器は、前記第２電圧レベルを示す第２カウントを生成する、ことと、
前記第２カウントを所定の第２閾値と比較して、第２電圧ドループ状態を検出することと、
前記第２電圧ドループ状態を検出したことに応じて、第２クロック信号の周波数を調整することと、をさらに含む、
請求項１〜４の何れかの方法。
【請求項６】
前記第１閾値は、前記第２閾値とは異なる、
請求項５の方法。
【請求項７】
前記第２クロック信号の周波数を調整することは、前記第１クロック周波数を調整することとは異なる大きさで前記第２クロック信号の周波数を調整することを含む、
請求項５の方法。
【請求項８】
プロセッサ（１００）上の第１ポイントに配置された第１検出器（１３０Ａ）であって、前記第１検出器は、第１電圧レベル（２１２）をモニタリングし、前記第１検出器は、第１リングオシレータ（２０６）を含み、前記第１検出器は、前記第１電圧レベルを示す第１カウント（２１４）を生成する、第１検出器と、
前記第１カウントを所定の第１閾値（２１６）と比較して、第１電圧ドループ状態を検出する第１比較モジュール（２０８）と、
第１クロック制御モジュール（１２０）と、を備え、
前記第１クロック制御モジュールは、前記第１比較モジュールが前記第１電圧ドループ状態を検出したことに応じて、第１クロック信号（１１６）の周波数を調整する、
モニタリングシステム。
【請求項９】
前記第１クロック制御モジュールは、前記第１比較モジュールが前記第１電圧ドループ状態を検出したことに応じて、第２クロック信号（１１８）の周波数を調整する、
請求項８のモニタリングシステム。
【請求項１０】
前記第１クロック制御モジュールは、前記第１クロック周波数とは異なる大きさで前記第２クロック信号の周波数を調整する、
請求項９のモニタリングシステム。
【請求項１１】
前記プロセッサは、前記第１比較モジュールが前記第１電圧ドループ状態を検出したことに応じて、前記プロセッサがサイクル当たりに実行する動作の数を調整する、
請求項８〜１０の何れかのモニタリングシステム。
【請求項１２】
プロセッサ上の第２ポイントに配置された第２検出器（１３０Ｂ）であって、前記第２検出器は、第２電圧レベルをモニタリングし、前記第２検出器は、第２リングオシレータを含み、前記第２検出器は、前記第２電圧レベルを示す第２カウントを生成する、第２検出器と、
前記第２カウントを所定の第２閾値と比較して、第２電圧ドループ状態を検出する第２比較モジュールと、
第２クロック制御モジュールであって、前記第２クロック制御モジュールは、第２クロック信号の周波数を調整する、第２クロック制御モジュールと、をさらに備える、
請求項８〜１１の何れかのモニタリングシステム。
【請求項１３】
前記第１閾値は、前記第２閾値とは異なる、
請求項１２のモニタリングシステム。
【請求項１４】
前記第２クロック制御モジュールは、前記第１クロック制御モジュールが前記第１クロック信号の周波数を調整することとは異なる大きさで前記第２クロック信号の周波数を調整する、
請求項１２のモニタリングシステム。
【請求項１５】
前記第１クロック信号は、前記プロセッサのプロセッサコアに供給され、前記第２クロック信号は、前記プロセッサのキャッシュに供給される、
請求項１２のモニタリングシステム。
【国際調査報告】
2021515324.tif 000010
2021515324.tif 000011