(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6905596
(24)【登録日】2021年6月29日
(45)【発行日】2021年7月21日
(54)【発明の名称】クロック分周デバイス及びその方法
(51)【国際特許分類】
G06F 1/04 20060101AFI20210708BHJP
【FI】
G06F1/04 570
【請求項の数】18
【全頁数】11
(21)【出願番号】特願2019-546135(P2019-546135)
(86)(22)【出願日】2018年2月20日
(65)【公表番号】特表2020-510253(P2020-510253A)
(43)【公表日】2020年4月2日
(86)【国際出願番号】US2018018718
(87)【国際公開番号】WO2018156485
(87)【国際公開日】20180830
【審査請求日】2021年2月15日
(31)【優先権主張番号】15/441,613
(32)【優先日】2017年2月24日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】ディーペッシュ ジョン
(72)【発明者】
【氏名】スティーブン コムルシュ
(72)【発明者】
【氏名】ヴィーボル ミッタル
【審査官】
松浦 かおり
(56)【参考文献】
【文献】
米国特許出願公開第2012/0187991(US,A1)
【文献】
米国特許出願公開第2012/0169373(US,A1)
【文献】
米国特許出願公開第2004/0119521(US,A1)
【文献】
国際公開第2016/105643(WO,A1)
【文献】
米国特許出願公開第2017/0038789(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/04−1/14
G06F 1/26−1/3296
(57)【特許請求の範囲】
【請求項1】
コアクロックイネーブル信号のセットをクロック分周器回路に入力し、クロック信号を前記クロック分周器回路のトランスミッションゲートマルチプレクサに入力することと、
プロセッサコアでの電圧降下を検出したことに応じて、2つのストレッチイネーブル信号のうち何れかを選択するための選択信号として機能するように、入力クロック信号を送るストレッチアサート信号を前記クロック分周器回路に提供することと、
選択されたストレッチイネーブル信号に基づいて出力クロック信号を生成することであって、前記選択されたストレッチイネーブル信号は、前記コアクロックイネーブル信号のセットをオーバーライドして、前記出力クロック信号のクロック周波数のストレッチを強制する、ことと、を含む、
方法。
【請求項2】
前記コアクロックイネーブル信号のセットを変更して前記ストレッチイネーブル信号を生成することを含む、
請求項1の方法。
【請求項3】
前記コアクロックイネーブル信号のセットを変更することは、
前記コアクロックイネーブル信号のセットを前記クロック分周器回路内で論理的に組み合わせて前記ストレッチイネーブル信号を生成することを含む、
請求項2の方法。
【請求項4】
前記プロセッサコアでの電圧降下を検出した後に、前記プロセッサコアでの電圧上昇を検出したことに応じて、前記ストレッチアサート信号をデアサートして、前記コアクロックイネーブル信号のセットに基づいて前記出力クロック信号を生成することを含む、
請求項2の方法。
【請求項5】
前記出力クロック信号を生成することは、
前記出力クロック信号の周波数を、第1周波数から前記第1周波数よりも小さい第2周波数に変更することを含む、
請求項1の方法。
【請求項6】
前記プロセッサコアでの電圧降下を検出した後に、前記プロセッサコアでの電圧上昇を検出したことに応じて、前記出力クロック信号を、前記第2周波数から前記第2周波数よりも大きい第3周波数に変更することを含む、
請求項5の方法。
【請求項7】
コアクロックイネーブル信号のセットを生成することと、
前記コアクロックイネーブル信号のセットをクロック分周器回路に入力することと、
前記コアクロックイネーブル信号のセットに基づいて第1周波数の第1出力クロック信号を生成することと、
プロセッサコアでの電圧降下を検出したことに応じて、2つのストレッチイネーブル信号のうち何れかを選択するための選択信号として機能するように、トランスミッションゲートマルチプレクサに入力クロック信号を送るストレッチアサート信号を提供することと、
選択されたストレッチイネーブル信号に基づいて第2出力クロック信号を生成することであって、前記選択されたストレッチイネーブル信号は、前記コアクロックイネーブル信号のセットをオーバーライドして、前記第2出力クロック信号のクロック周波数のストレッチを強制する、ことと、を含む、
方法。
【請求項8】
前記コアクロックイネーブル信号のセットを変更してストレッチイネーブル信号を生成することを含む、
請求項7の方法。
【請求項9】
前記プロセッサコアでの電圧降下を検出したことに応じて、前記第2出力クロック信号の周波数を前記第1周波数から前記第1周波数よりも小さい第2周波数に変更することを含む、
請求項7の方法。
【請求項10】
前記電圧降下の後に、前記プロセッサコアでの電圧上昇を検出したことに応じて、前記第2出力クロック信号の周波数を前記第2周波数から前記第2周波数よりも大きい第3周波数に変更することを含む、
請求項9の方法。
【請求項11】
前記プロセッサコアでの電圧降下を検出した後に、前記プロセッサコアでの電圧上昇を検出したことに応じて、前記ストレッチアサート信号をデアサートして、前記コアクロックイネーブル信号のセットに基づいて前記第2出力クロック信号を生成することを含む、
請求項7の方法。
【請求項12】
プロセッサコアと、
前記プロセッサコアでの電圧降下を検出するドループ検出器回路と、
コアクロックイネーブル信号のセットと入力クロック信号とを受信するクロック分周器回路であって、電圧降下を検出したことに応じて、2つのストレッチイネーブル信号のうち何れかを選択するための選択信号として機能するように、入力クロック信号を送るストレッチアサート信号を受信し、前記コアクロックイネーブル信号のセットをオーバーライドしてクロック周波数のストレッチを強制することによって、選択されたストレッチイネーブル信号に基づいて出力クロック信号を生成するクロック分周器回路と、を備える、
プロセッサ。
【請求項13】
前記クロック分周器回路は、前記2つのストレッチイネーブル信号のうち何れかを選択するためのトランスミッションゲートマルチプレクサを含む、
請求項12のプロセッサ。
【請求項14】
前記クロック分周器回路は、前記コアクロックイネーブル信号のセットを前記クロック分周器回路内で論理的に組み合わせて前記2つのストレッチイネーブル信号を生成する、
請求項13のプロセッサ。
【請求項15】
前記クロック分周器回路は、前記ドループ検出器回路が前記プロセッサコアでの電圧降下を検出したことに応じて、前記出力クロック信号の周波数を、第1周波数から前記第1周波数よりも小さい第2周波数に変更する、
請求項12のプロセッサ。
【請求項16】
前記クロック分周器回路は、前記ドループ検出器回路が電圧降下を検出した後に、前記プロセッサコアでの電圧上昇を検出したことに応じて、前記出力クロック信号を、前記第2周波数から前記第2周波数よりも大きい第3周波数に変更する、
請求項15のプロセッサ。
【請求項17】
前記クロック分周器回路は、
前記出力クロック信号の立ち上がりエッジレート又は立ち下りエッジレートのうち少なくとも一方を変更するように構成されたデューティサイクル調整器を含む、
請求項12のプロセッサ。
【請求項18】
前記デューティサイクル調整器は、少なくとも1つの強度制御インバータ(strength-controller inverter)を含む、
請求項17のプロセッサ。
【発明の詳細な説明】
【背景技術】
【0001】
集積回路(IC)マイクロプロセッサデバイス等のデータ処理デバイスは、単一の半導体ダイに製造された多数のデータサブシステムを含むことができる。例えば、ICマイクロプロセッサデバイスは、中央処理装置に加えて、メモリインタフェースサブシステムとグラフィックスアクセラレーションサブシステムとを含むことができる。各データサブシステムは、データプロセッサとして動作することができ、異なる動作周波数の制限を含むことができる。したがって、各データサブシステムが、別のデータサブシステムの周波数と異なり得る各々の周波数で動作するように構成されている場合には、マイクロプロセッサデバイスの計算性能は、通常、改善される。さらに、特定のデータサブシステムが動作を継続している間に当該特定のデータサブシステムの動作周波数を効率的に変更することができると有利である。例えば、マイクロプロセッサは、データサブシステムに提供されるクロック信号の周波数を変更することによって、アクティブ又は公称電力動作モードと低電力動作モードとの間でデータサブシステムを移行させることができる。
【0002】
添付図面を参照することによって、本開示をより良く理解することができ、その多くの特徴及び利点が当業者に明らかになる。異なる図面における同一の符号の使用は、類似又は同一のアイテムを示す。
【図面の簡単な説明】
【0003】
【
図1】少なくともいくつかの実施形態による、クロック分周器を利用する処理システムのブロック図である。
【
図2】いくつかの実施形態による、
図1のプロセッサコアの一部のブロック図である。
【
図3】いくつかの実施形態による、様々なクロック信号の波形図である。
【
図4】いくつかの実施形態による、クロック信号を生成するために使用されるイネーブル信号を調整することによって、電圧ドループに応じてプロセッサでクロック信号を調整する方法のフロー図である。
【発明を実施するための形態】
【0004】
図1〜
図4は、例えば、プロセッサでの電力モードの変化に関連するクロックのランプアップ(ramp ups)及びダウンをサポートするためのクロック分周器を実装する技術を開示している。クロック分周器は、クロックのランプアップ/ダウン用の分周クロックを制御するマルチプレクサを備えたカスケードフリップフロップを使用して構成することができる。しかしながら、クロックパスにフロップを追加するとジッタが増大し、プロセッサの少なくとも1つのモジュールに適用され得る最大クロック周波数(Fmax)に影響が及ぶ。したがって、いくつかの実施形態では、クロック分周器回路は、クロック信号(ClkIn)が2つのイネーブル(CKGEN_EnableA及びCKGEN_EnableB)入力の何れかを選択する選択信号として機能するトランスミッションゲートマルチプレクサ(mux)を含む。クロック除数は、例えば、イネーブル入力に加えられるCKGEN_EnableA及びCKGEN_EnableBビットを変調することによって、0.5の除数増分(例えば、1.0、1.5、2.0、2.5等)で調整することができる。閾値粒度(例えば、0.5の除数増分)でクロック分周を行うことによって、クロック分周器は、CC6のエントリ/イグジット及びスキャンシフトリセットのエントリ/イグジットの間、より遅いクロックのランプアップ/ダウンをサポートする。クロック分周器によってイネーブルされるクロック周波数の遅いランプアップ/ダウンによって、本明細書でdi/dtと呼ばれる場合がある電源電流の急速な変化に関連する問題の緩和を提供する。
【0005】
クロック分周器は、電源ドループを検出することによってトリガされるストレッチアサート信号(例えば、StretchEn)を受信すると、コアクロックイネーブル信号の既存の有効なストリームを変更することによって、レイテンシを減少させたクロックストレッチを可能にする。動作中に、CKGEN_EnableA及びCKGEN_EnableBビットは、クロック周波数のストレッチを強制するために、StrEnアサート(電源ドループによってトリガされる)によって上書きされてもよい。さらに、いくつかの実施形態では、クロック分周器は、デューティサイクルの調整を可能にするデューティサイクル調整器をマルチプレクサ内に含む。クロック分周器内にデューティサイクル調整器を設けることによって、デューティサイクルの調整をサポートするためのさらなるステージを追加することを回避し、これによってジッタが減少する。
【0006】
図1は、少なくともいくつかの実施形態による、クロック分周器を利用する処理システム100のブロック図である。図示した例では、処理システム100は、コンピュートコンプレックス102(「コアコンプレックス」としても知られている)と、キャッシュ階層104と、メモリコントローラ106と、サウスブリッジ108と、を含む。コンピュートコンプレックス102は、
図1の例に示す4つのプロセッサコア111,112,113,114等の複数のプロセッサコアを含む。プロセッサコアは、中央処理装置(CPU)コア、グラフィックス処理装置(GPU)コア、デジタル信号プロセッサ(DSP)コア、又は、これらの組み合わせを含むことができる。コンピュートコンプレックス102のプロセッサコアの数は、4つ未満であってもよいし、4つより多くてもよいことが理解されるであろう。
【0007】
メモリコントローラ106は、キャッシュ階層104とシステムメモリ110との間のインタフェースとして動作する。したがって、キャッシュ階層104にキャッシュされるデータは、通常、「キャッシュライン」と呼ばれるデータのブロックとして操作され、システムメモリ110の物理アドレスを使用してメモリ階層にアドレス指定されるか配置される。キャッシュラインは、キャッシュ階層104からのメモリ要求に応じて、メモリコントローラ106によってシステムメモリ110からアクセスされる。同様に、変更されたデータを含むキャッシュラインがキャッシュ階層104からエビクトされ、システムメモリ110で更新される必要がある場合に、メモリコントローラ106は、このライトバックプロセスを管理する。サウスブリッジ108は、キャッシュ階層104と、メモリコントローラ106と、処理システム100の1つ以上の周辺機器(図示省略)(例えば、ネットワークインタフェース、キーボード、マウス、ディスプレイ、及び、他の入出力デバイス)との間のインタフェースとして動作する。
【0008】
キャッシュ階層104は、2つ以上のレベルのキャッシュを含む。図示した例では、キャッシュ階層104は、3つのキャッシュレベル(すなわち、レベル1(L1)、レベル2(L2)及びレベル3(L3))を含む。L1に関して、コアコンプレックス102は、プロセッサコア毎に小さなプライベートキャッシュを実装しており、これらは、L1キャッシュ121,122,123,124として示されており、
図1に示すように、対応するプロセッサコア111〜114に関連付けられている。L2に関して、コアコンプレックス102は、プロセッサコア毎により大きなプライベートキャッシュを実装しており、これらは、
図1に同様に示すように、プロセッサコア111〜114にそれぞれ対応するL2キャッシュ131,132,133,134として示されている。L2キャッシュ131〜134の各々は、対応するプロセッサコアにとってプライベートであるが、キャッシュ階層104は、L2キャッシュ131〜134間のコヒーレンシを維持するように動作する。いくつかの実施形態では、L2キャッシュ131〜134は、ダイレクトマッピングされてもよいし、nウェイセットアソシアティブキャッシュであってもよい。L3キャッシュレベルに関して、キャッシュ階層104は、コアコンプレックス102のプロセッサコアによって共有され、これにより、少なくともL2キャッシュ131〜134によって共有されるL3キャッシュ140を実装する。L3キャッシュ140のコンポーネントは、少なくとも1つのレベルシフタ142を含むが、これに限定されない。
図3に示すようないくつかの実施形態では、L3キャッシュ140は、プロセッサコア111〜114が異なる周波数及び/又は電圧を有する場合等に、プロセッサコア毎に1つのレベルシフタ142を含む。
【0009】
図1に示すように、4つのプロセッサコア111,112,113,114の各々(例えば、プロセッサコア114)は、クロックメッシュ154(「メッシュクロック」又は「クロックツリー」としても知られる)と、デジタル周波数合成ロジック(DFS)164と、CKGENロジック174と、離散フーリエ変換(DFT)ロジック184と、を含む。プロセッサコア114は、一般に、命令セット(例えば、コンピュータプログラム)を実行して、電子デバイスのために動作を行うように構成されている。プロセッサコアは、命令セットを実行するために、フェッチステート、ディスパッチステージ、実行ユニット、メモリコントローラ、入出力インタフェース、キャッシュ等の1つ以上のモジュールを含む。これらのモジュールの各々は、同期ロジック素子、ロジックゲート及び他のコンポーネントから構成されている。プロセッサコア114は、1つ以上のクロック信号を用いて、これらのコンポーネントの動作を同期させる。いくつかの実施形態では、プロセッサコア114は、同期バージョンのクロック信号をL3キャッシュから受信し、クロックメッシュ154は、様々なバージョンのクロック信号をプロセッサコア114の様々なコンポーネントに分配する。
【0010】
L3キャッシュ140のレベルシフタ142は、PステートクロックをCKGENロジック174に提供する。CKGENロジック174は、プロセッサコア114のクロックスピード及び電力モードの変化(例えば、Cステートの変化)に起因する電源電流の変化(すなわち、di/dtイベント)に関連する問題を管理する。いくつかの実施形態では、DFS164は、Cステート及びスキャンシフトリセットの挙動を管理するための2相DFSである。DFS164は、プロセッサコア114の様々なモジュールに対してクロック分周(Cステートのエントリ及びイグジットのためのクロックのランプアップ又はダウン、スキャンシフトリセットのためのクロック分周及びドループに対する2相ストレッチ等の動作を含む)を実行する。
図2に関してさらに説明するように、各DFS164は、クロックのランプ、分周及びストレッチの個別制御を各プロセッサコアに提供するクロック分周器回路及びデューティサイクル調整器を含む。
【0011】
少なくとも1つの実施形態では、プロセッサコア111,112,113,114は、クロック周波数を緩やかにランプさせて、スキャンシフトリセット中やCステートのエントリ及びイグジットの場合のdi/dt問題を抑制する。高周波に直接切り替えると、消費電力の変化が大きくなり、関連するdi/dtの問題が生じる。特に、プロセッサコア114を起動する場合、スキャンシフト周波数電力は、電力接続が緩やかになる(例えば、オフから最大電力まで100ns以上)ようにすべきである。例えば、CC6のイグジット(すなわち、所定の低電力モードからのイグジット)の間、コアクロックは、オフステートから最大周波数に切り替わる。DFS164内のクロック分周器回路は、大きな除数から開始し、除数を徐々に減少させることにより、クロック周波数を徐々にランプアップさせる。したがって、出力クロック信号の周波数は、除数によって変化する。同様に、CC6のエントリの間、DFS164は、小さい除数から開始し、除数を徐々にランプアップさせることにより、同様にコアクロックをランプさせる。他の実施形態では、スキャンシフトリセットへの切り替えは、CC6のエントリ及びイグジットと同様の方法でコアクロックをランプダウン/アップさせる。
【0012】
いくつかの実施形態では、電源からの消費電力の変化によって生じる電源ドループによって、最大クロック周波数(Fmax)が低下し、又は、特定の周波数に必要なプロセッサ111,112,113,114を動作させるのに必要な電圧(例えば、電圧識別Vid)の上昇をもたらす。電源ドループの影響は、電源ドループの検出時にクロックをストレッチすることによって低減することができる。したがって、ストレッチ制御モジュール(図示省略)は、プロセッサコア114内の1つ以上の位置での電源電圧が指定された閾値量だけ低下したのを検出したことに応じて、クロック信号が「ストレッチされる」べきか(すなわち、電圧ドループに応じてクロック信号の周波数を減少させるべきか)を知らせるために、ストレッチ信号を生成する。例えば、ドループ検出器回路からストレッチアサート信号(すなわち、StretchEn)を受信すると、DFS164は、クロック信号をストレッチし、これにより、検出された電圧ドループに応じてクロック信号の周波数を変化させる。クロックの伸長を実行することによって消費電力が減少し、これにより、ドループが低減し、プロセッサ内のロジックを次のクロックエッジの前に安定させるための時間を長くかけることができる。クロックパス上のプロセス変動によって発生するデューティサイクルの圧縮は、Fmaxに影響を与える。したがって、位相タイミングパスは、クロックのデューティサイクルに影響される。いくつかの実施形態では、DFS164は、シリコン内のデューティサイクルを変調するヒューズ制御デューティサイクル調整器をさらに含む。
【0013】
図2は、いくつかの実施形態による、
図1のプロセッサコア114の一部200のブロック図である。この一部200は、クロック分周器回路202を含む。この回路は、デューティサイクル調整器204と、クロック信号(ClkIn)が2つのイネーブル入力のうち何れかを選択する選択信号として作用するトランスミッションゲートマルチプレクサ(mux)210と、を含む。クロック分周器回路202は、ラッチ212,222,232と、ORゲート242,252と、ANDゲート262,272と、デューティサイクル調整器204と、トランスミッションゲートマルチプレクサ(mux)210と、を含む。
図1に関して上述したように、プロセッサコア114は、L3キャッシュ140のレベルシフタ142からPステートクロック周波数(例えば、ClkIn及びClkX)を受信する。コアクロック(CCLK)イネーブル信号(CKGEN_EnableA及びCKGEN_EnableB)は、DFS164内の立ち上がりエッジフロップへのセットアップ時間を満たすように、CKGEN(例えば、
図1のCKGEN174)内の立ち上がりエッジフロップから駆動される。DFS164のラッチ206,208の各々は、CKGEN_EnableA及びCKGEN_EnableB信号を受信し、これらに対して動作する。ラッチ206は、イネーブル信号CKGEN_EnableAを受信するためのデータ入力と、クロック信号ClkXを受信するためのクロック入力と、出力と、を含む。ラッチ208は、イネーブル信号CKGEN_EnableBを受信するためのデータ入力と、クロック信号ClkXを受信するためのクロック入力と、出力と、を含む。
【0014】
動作中、2つのストレッチイネーブルEN信号(すなわち、Str_ENA、Str_ENB)のうち何れかを選択するクロックストレッチを可能にするために、電源ドループが検出されるとストレッチアサート信号(すなわち、StretchEn)がアサートされる。0.5の増分(例えば、1.0、1.5、2.0、2.5等)でクロックを任意に分周することは、ENビットを変調することによって実施することができる。StretchEn信号を受信すると、StrEnのアサートによって、CKGEN_EnableAビット及びCKGEN_EnableBビットがオーバーライドされ、単一サイクルの100%ストレッチが強制的に行われる。システムは、StretchEnがハイになる場合、CKGEN_EnableA=1及びCKGEN_EnableB=0となるように設計されている。クロック分周器回路202は、0.5の粒度(1.0、1.5、2.0、2.5等)でクロック分周を行うことによって、CC6のエントリ/イグジット及びスキャンシフトのエントリ/イグジットの間、クロックのランプアップ/ランプダウンをサポートする。したがって、クロック分周器回路202は、クロック(すなわち、ClkX)が2つのEN入力(及び、2つのEN入力を制御する関連ロジック)のうち何れかを選択するセレクト(select)として作用するトランスミッションゲートマルチプレクサ210を構成する。クロック分周器回路202によって可能になるクロック周波数の遅いランプアップ/ダウンによって、di/dtの緩和が提供される。
【0015】
また、クロック分周器回路202は、最終的なEN入力をマルチプレクサ210に提供するデューティサイクル調整器204を含む。送信ゲートを駆動するインバータのpチャネル電界効果トランジスタ(pFET)及びnチャネル電界効果トランジスタ(nFET)の強度を個別に変化させることによって、出力(すなわち、ClkOutX)における立ち上がり及び立ち下がりエッジレートを動作中に調整することができる。Fuse/JTAGビット(すなわち、ENN[6:0]、ENP[6:0])を使用してpFET及びnFETの強度を個別に制御することによって、シリコン周波数を改善するためのデューティサイクル変調、又は、シリコンにおける位相パスマージンをテストすることができる。デューティサイクル調整器204をクロック分周器回路202内に配置することによって、デューティサイクルの調整をサポートするためにステージを追加することが回避され、これによりジッタが減少する。
【0016】
図3は、いくつかの実施形態による、様々なクロック信号の波形
図300である。特に、波形
図300は、1で分周された後にストレッチされたクロックの波形を示している。図示した例において、時間302と次の時間304との間でStrEn信号がネゲート状態にある。これは、プロセッサコア114で電圧ドループが検出されなかったことを示している。したがって、時間302と時間304との間では、クロック信号出力ClkOutXの周波数は、クロック分周器回路202のみによって決定される。この場合、クロック分周器回路は、入力クロック信号(すなわち、CLK)の周波数を1で分周した周波数と等しい周波数を有するClkOutXを生成する。
【0017】
時間304において、プロセッサコア114での電圧ドループを示すStrEn信号がアサートされる。これに応じて、ClkOutXの周波数が、2つのイネーブル(EN)入力(すなわち、Str_ENA、Str_ENB)によって制御される。クロック分周器回路202は、ClkOutXの周波数を、時間304の前のその周波数と比較して100%減少させ、これにより電圧ドループに対して調整する。
図3に示すClkOutXの減少した単一クロック周期の後、ClkOutXは、StrEnがハイのままであっても、CLKと同じの周波数に戻る。いくつかの実施形態では、StrEnがハイのままである場合、本開示に含まれない他の手段によってCLK入力がストレッチされる。このようにして、ClkOutXは、CLKをストレッチするシステムにおいて提供される場合よりも高速にストレッチされる。
【0018】
図4は、少なくとも1つの実施形態による、プロセッサコアで電圧ドループを検出したことに応じてクロック信号の周波数を調整する方法400のフロー図である。説明のために、方法400は、
図1のプロセッサコア114及び
図2のクロック分周器回路202における例示的な実施態様に関して説明される。ブロック402において、L3キャッシュ140のレベルシフタ142は、公称周波数設定をクロック信号ClkXに適用する。ブロック404において、CKGEN174は、DFS164内の立ち上がりエッジフロップへのセットアップ時間を満たすように、CCLKイネーブル信号(CKGEN_EnableA及びCKGEN_EnableB)を駆動する。ブロック406において、ドループ検出器回路は、ClkXクロック信号を、その公称周波数と比較してより低い周波数に設定するように、ストレッチアサート信号StretchEnを生成する。
【0019】
ブロック408において、ドループ検出器回路は、電圧ドループが存在するかどうかを識別するために、プロセッサコア114の1つ以上の位置で電圧を監視する。検出されない場合、ドループ検出器回路は、StretchEn信号をネゲート状態に維持する。これに応じて、方法フローはブロック410に進み、DFS164は、CCLKイネーブル信号(すなわち、CKGEN_EnableA及びCKGEN_EnableB)に基づいて、出力クロック信号を生成する。次に、方法フローは、ドループ検出器回路がプロセッサコア114における電圧を継続して監視するように、ブロック408に戻る。
【0020】
ブロック408に戻ると、電圧ドループを検出したことに応じて、ドループ検出器回路は、StretchEn信号をアサートする。これに応じて、方法フローはブロック412に進み、クロック分周器回路202は、2つのストレッチイネーブルEN信号(すなわち、Str_ENA、Str_ENB)に基づいて出力クロック信号を生成し、これにより、より遅い周波数で出力クロック信号を生成する。ENビットを変調することによって、入力クロック信号を0.5の増分(例えば、1.0、1.5、2.0、2.5等)の粒度で分周することができる。一例では、StretchEnのアサートによって、ENビットがオーバーライドされ、単一のサイクルの100%ストレッチが強制的に行われる。したがって、クロック分周器回路202は、クロック(すなわち、ClkX)が2つのEN入力(及び、2つのEN入力を制御する関連ロジック)のうち何れかを選択するセレクトとして作用するトランスミッションゲートマルチプレクサとして動作する。クロック分周器回路202によって可能になるクロック周波数の遅いランプアップ/ダウンによって、dI/dTの緩和が提供される。
【0021】
方法フローはブロック414,416に進み、ドループ検出器回路は、プロセッサコア114での電圧がその公称レベル又は範囲に戻ったかどうかを監視する。戻っていない場合、方法はブロック414に戻る。この場合、クロック分周器回路202は、出力クロック信号ClkOutをClkInの周波数(ClkInは、ブロック412からの最初のクロックストレッチが有効になった後に、クロック分周器回路202の外部のメカニズムによってストレッチされてもよい)に維持する。ブロック416で、ドループ検出器回路が、その公称レベル又は範囲に監視電圧が戻ったことを識別した場合、方法フローはブロック410に進む。ここで、ドループ検出器回路は、StretchEn信号をネゲートして、DFS164を、その公称入力周波数で出力クロック信号を生成するように戻す。
【0022】
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行されると、上記の技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ等のソリッドステート記憶デバイス、キャッシュ、ランダムアクセスメモリ(RAM)、又は、他の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
【0023】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0024】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。