(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】2019522858
(43)【公表日】20190815
(54)【発明の名称】異なるクロックドメイン間のクロック信号の周波数変更の管理
(51)【国際特許分類】
   G06F 1/12 20060101AFI20190719BHJP
   G06F 1/08 20060101ALI20190719BHJP
【FI】
   !G06F1/12 510
   !G06F1/08
【審査請求】未請求
【予備審査請求】未請求
【全頁数】21
(21)【出願番号】2019501659
(86)(22)【出願日】20160915
(85)【翻訳文提出日】20190301
(86)【国際出願番号】US2016051813
(87)【国際公開番号】WO2018013155
(87)【国際公開日】20180118
(31)【優先権主張番号】15/209,521
(32)【優先日】20160713
(33)【優先権主張国】US
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JP,KE,KG,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
【住所又は居所】アメリカ合衆国 95054 カリフォルニア州、 サンタ クララ、オーガスティン ドライブ 2485
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】スティーヴン コムルシュ
【住所又は居所】アメリカ合衆国 80528−9558 コロラド州、フォート コリンズ、イースト ハーモニー ロード 2950、スイート 300
(72)【発明者】
【氏名】アミタブ メーラ
【住所又は居所】アメリカ合衆国 80528−9558 コロラド州、フォート コリンズ、イースト ハーモニー ロード 2950、スイート 300
(72)【発明者】
【氏名】リチャード マーティン ボーン
【住所又は居所】アメリカ合衆国 80528−9558 コロラド州、フォート コリンズ、イースト ハーモニー ロード 2950、スイート 300
(57)【要約】
プロセッサ(100)は、クロックドメイン(102,103)間で転送されるデータの最小セットアップ時間を維持し、少なくとも1つのクロックドメインのクロック信号の周波数の変更に応じて最小セットアップ時間を維持することを備える。プロセッサは、1つ以上の制御モジュール(122,124)を用いて各クロックドメインのクロックエッジを監視し、データを記憶場所に書き込んだ後に、転送クロックドメインにおいて最小位相数が経過するまで、受信クロックドメインによって記憶場所からデータにアクセスされないことを確実にする。さらに、制御モジュールは、クロックドメインの一方又は両方におけるクロック周波数の変更に応じて最小セットアップ時間を維持する。
【選択図】図1
【特許請求の範囲】
【請求項1】
プロセッサ(100)の第1クロックドメイン(102)において、第1クロック信号(240)の第1エッジに基づいてバッファ(130)の第1エントリにアクセスすることと、
前記プロセッサの第2クロックドメイン(103)において、
前記バッファの前記第1エントリから読み出すために、最小セットアップ時間に基づいて第2クロック信号(241)の第2エッジを選択することであって、前記第2クロック信号は前記第1クロック信号と非同期である、ことと、
選択された第2エッジに応じて前記バッファの前記第1エントリにアクセスすることと、
前記第1クロック信号に対する第1周波数の変更についての要求に応じて、前記最小セットアップ時間を維持するように前記第2クロック信号の第3エッジを選択することと、
選択された第2エッジに応じて前記バッファにアクセスすることと、を含む、
方法。
【請求項2】
前記第2クロック信号に対する第2周波数の変更についての要求に応じて、前記最小セットアップ時間を維持するように前記第2クロック信号の第4エッジを選択することと、
選択された第2エッジに応じて前記バッファにアクセスすることと、をさらに含む、
請求項1の方法。
【請求項3】
前記第2エッジを選択することは、前記第2クロックドメインにおいて前記バッファの第1の以前のアクセスの後の前記第2クロック信号の第1位相数の満了に基づいて前記第2エッジを選択することを含み、
前記第3エッジを選択することは、前記第2クロックドメインにおいて前記バッファの第2の以前のアクセスの後の前記第2クロック信号の第3位相数の満了に基づいて前記第3エッジを選択することを含む、
請求項1の方法。
【請求項4】
前記第1クロック信号は第1周波数であり、前記第2クロック信号は前記第1クロック周波数と異なる第2クロック周波数である、
請求項1の方法。
【請求項5】
前記プロセッサにおける電圧ドループを検出したことに応じて前記第1周波数の変更を要求すること(108)をさらに含む、
請求項1の方法。
【請求項6】
前記プロセッサの電力モードの変更に応じて前記第1周波数の変更を要求すること(107)をさらに含む、
請求項1の方法。
【請求項7】
前記第2エッジを選択することは、
第1調整値に基づいて第3クロック信号の第1位相数をカウントすることと(448)、
前記第1位相数に基づいて前記第2エッジを選択することと(446)、を含む、
請求項1の方法。
【請求項8】
前記第3エッジを選択することは、
第2調整値に基づいて第3クロック信号の第2位相数をカウントすることであって、前記第2調整値は前記第1調整値と異なる、ことと、
前記第2調整値に基づいて前記第3エッジを選択することと、を含む、
請求項7の方法。
【請求項9】
前記第1周波数についての前記要求に応じて、前記第1調整値から前記第2調整値に変更することをさらに含む、
請求項8の方法。
【請求項10】
前記第3クロック信号に基づいて前記第1クロック信号及び前記第2クロック信号を生成することをさらに含む、
請求項8の方法。
【請求項11】
プロセッサ(100)の第1クロックドメイン(102)から先入れ先出し(FIFO)バッファ(130)のデータにアクセスすることと、
前記プロセッサの第2クロックドメイン(103)から前記FIFOバッファの前記データにアクセスするために、複数のクロックサイクルから第1クロックサイクルを選択することであって、前記第1クロックサイクルは、前記データを書き込んだ後に最小セットアップ時間を維持するように選択される、ことと、を含む、
方法。
【請求項12】
先入れ先出し(FIFO)バッファ(130)と、
第1クロック信号(240)の第1エッジに基づいて前記FIFOにアクセスする第1クロックドメイン(102)と、
読み出しモジュール(124)を含む第2クロックドメイン(103)と、を備え、
前記読み出しモジュールは、
前記FIFOの第1エントリにアクセスするために、最小セットアップ時間に基づいて第2クロック信号(241)の第2エッジを選択することであって、前記第2クロック信号は前記第1クロック信号と非同期である、ことと、
選択された第2エッジに応じて前記FIFOの前記第1エントリにアクセスすることと、
前記第1クロック信号に対する第1周波数の変更についての要求に応じて、前記最小セットアップ時間を維持するように前記第2クロック信号の第3エッジを選択することと、
選択された第2エッジに応じて前記FIFOにアクセスすることと、
を行うように構成されている、
プロセッサ(100)。
【請求項13】
前記読み出しモジュールは、
前記第2クロック信号に対する第2周波数の変更についての要求に応じて、前記最小セットアップ時間を維持するように前記第2クロック信号の第4エッジを選択することと、
選択された第2エッジに応じて前記FIFOにアクセスすることと、
を行うように構成されている、
請求項12のプロセッサ。
【請求項14】
前記第2エッジを選択することは、前記第2クロックドメインにおいて前記FIFOの第1の以前のアクセスの後の前記第2クロック信号の第1位相数の満了に基づいて前記第2エッジを選択することを含み、
前記第3エッジを選択することは、前記第2クロックドメインにおいて前記FIFOの第2の以前のアクセスの後の前記第2クロック信号の第2位相数の満了に基づいて前記第3エッジを選択することを含む、
請求項12のプロセッサ。
【請求項15】
前記第1クロック信号は第1周波数であり、前記第2クロック信号は前記第1クロック周波数と異なる第2クロック周波数である、
請求項12のプロセッサ。
【請求項16】
前記プロセッサにおける電圧ドループを検出したことに応じて前記第1周波数の変更を要求する電圧ドループモジュール(108)をさらに備える、
請求項12のプロセッサ。
【請求項17】
前記プロセッサの電力モードの変更に応じて前記第1周波数の変更を要求するように構成された電力制御モジュール(107)をさらに備える、
請求項12のプロセッサ。
【請求項18】
前記読み出しモジュールは、
第1調整値に基づいて第3クロック信号の第1位相数をカウントすることと、
前記第1位相数に基づいて前記第2エッジを選択することと、
によって前記第2エッジを選択するように構成されている、
請求項12のプロセッサ。
【請求項19】
前記読み出しモジュールは、
第2調整値に基づいて第3クロック信号の第2位相数をカウントすることであって、前記第2調整値は前記第1調整値と異なる、ことと、
前記第2調整値に基づいて前記第3エッジを選択することと、
によって前記第3エッジを選択するように構成されている、
請求項18のプロセッサ。
【請求項20】
前記読み出しモジュールは、
前記第1周波数についての前記要求に応じて、前記第1調整値から前記第2調整値に変更するように構成されている、
請求項19のプロセッサ。
【発明の詳細な説明】
【背景技術】
【0001】
プロセッサは、通常、1つ以上のクロック信号を用いて、プロセッサのモジュールでの論理動作を同期させることによって、セットアップエラー、競合状態等のエラーを防止する。典型的なプロセッサは、プロセッサの異なる部分に対して異なるクロック信号を用いており、各プロセッサ部分はクロックドメインと呼ばれる。異なるクロックドメインを用いることによって、プロセッサは、異なる部分を異なる周波数で動作させ、論理動作のタイミングに対して異なる部分を相対的に独立して動作させる。例えば、プロセッサは、異なるクロックドメインを異なる周波数のクロック信号と同期させることによって、処理効率を向上させることができる。さらに、プロセッサは、異なるクロック信号を同期させることなく、異なるクロック信号を異なるクロックドメインに提供することによって、プロセッサにおけるクロック管理及び信号ルーティングを単純化することができる。しかしながら、データがプロセッサのクロックドメイン間で通信される場合に、メタスタビリティエラーが発生する可能性がある。かかるエラーは、フリップフロップのセット等のメタスタビリティ回路をクロックドメイン間に含むことによって改善され、データ転送を実施することが可能である。しかしながら、このようなメタスタビリティ回路は、レイテンシが加わるだけでなく、制御信号遅延に対処するための追加の回路(追加のバッファエントリ等)を必要とする場合がある。また、かかるエラーは、先入れ先出し(FIFO)バッファを用いてクロックドメイン間でデータを転送することによって減らすことができるが、従来のFIFOでは、1つ以上のクロックドメインの電圧ドループ又は電力モードの変更のために、1つのタイムドメインに対するクロック周波数が変更されると、データ転送においてエラーがもたらされる可能性がある。
【0002】
添付の図面を参照することによって本開示をより良く理解することができ、その多くの特徴及び利点が当業者に明らかとなるであろう。異なる図面における同じ参照記号の使用は、類似又は同一のアイテムを示す。
【図面の簡単な説明】
【0003】
【図1】いくつかの実施形態による、1つのクロックドメインでのクロック周波数の変更に応じて、クロックドメイン間のデータ転送の最小セットアップ時間を維持するプロセッサのブロック図である。
【図2】いくつかの実施形態による、図1のプロセッサのクロックドメイン間のデータ転送の最小セットアップ時間を維持するFIFO読み出し/書き込み制御モジュールを示す図である。
【図3】いくつかの実施形態による、図1のプロセッサのクロックドメインでの周波数変更に応じて、最小セットアップ時間を維持する図2のFIFO読み出し/書き込み制御モジュールを示す図である。
【図4】いくつかの実施形態による、図1のプロセッサの先入れ先出し(FIFO)読み出し/書き込み制御モジュールのブロック図である。
【図5】いくつかの実施形態による、1つのクロックドメインでのクロック信号の周波数変更に応じて、プロセッサのクロックドメイン間のデータ転送の最小セットアップ時間を維持する方法のフロー図である。
【発明を実施するための形態】
【0004】
図1〜図5は、プロセッサのクロックドメイン間で転送されるデータの最小セットアップ時間を維持するための技術を示し、少なくとも1つのクロックドメインのクロック信号の周波数変更に応じて最小セットアップ時間を維持することを含む。プロセッサは、各クロックドメインにおいてクロックエッジを監視する1つ以上の制御モジュールを使用して、データが記憶場所に書き込まれた後に転送クロックドメイン内で最小数の位相が経過するまで、当該データが受信クロックドメインによって記憶場所から読み出されないことを確実にすることによって、当該データが記憶場所に正確に記憶されるのに十分なセットアップ時間があることを確実にし、データ転送エラーを減らす。さらに、制御モジュールは、クロック周波数の変更が1つのクロックドメインでの電力モードの変更の結果であるか、電圧ドループの結果であるか、これらの組み合わせであるかどうかにかかわらず、一方又は両方のクロックドメインでのクロック周波数の変更に応じて、最小セットアップ時間を維持する。1つ以上の制御モジュールを用いて最小セットアップ時間を維持することによって、プロセッサは、特に何れかのクロックドメインで転送プロセスを再開することなく、クロック周波数の変更に応じてデータを正確に転送し続ける。プロセッサは、クロックドメイン間の正確なデータ転送をサポートしながら、処理効率を高め、消費電力を削減する。
【0005】
いくつかの実施形態では、データを転送するためにプロセッサによって使用される記憶場所は、複数のエントリを有する先入れ先出し(FIFO)キューである。各クロックドメインは、FIFOにアクセスするためのポインタのセットを管理し、制御モジュールは、各ポインタ値を調整してFIFOに提供するときを管理することによって、FIFOがいつ書き込まれ、いつ読み出されるかを制御する。これにより、制御モジュールは、データを読み出す前に、FIFOに書き込まれたデータについての最小セットアップ時間を確立することを確実にする。例えば、いくつかの実施形態において、制御モジュールは、2つのクロックドメインの「より遅い」クロック信号(つまり、より低い周波数を有する2つのクロックドメインのクロック信号)の1サイクル(1回の完了期間)の最小セットアップ時間を実施する。制御モジュールは、最小セットアップ時間を実施するために、2つのクロック信号のクロックエッジを追跡し、転送クロックドメインにおいて所定の記憶場所に書き込むための書き込みポインタを供給した後に最小セットアップ時間が経過したときにのみ、受信クロックドメインにおいてFIFOの前記所定の記憶場所を読み出すための読み出しポインタをFIFOに提供することを確実にする。最小セットアップ時間の実施は、場合によって、受信クロックドメインの個々のクロックサイクルに対するFIFOからの読み出しを選択的にスキップ又は省略することを制御モジュールに要求する。本明細書でさらに説明するように、制御モジュールを用いて最小セットアップ時間を実施することによって、プロセッサは、クロックドメイン間でデータフローを維持しながら、少なくとも1つのクロックドメインに供給されるクロック信号の周波数を調整する。対照的に、従来のクロックドメイン同期回路は、通常、1つのクロックドメインでのクロック周波数の変更に応じてリセットプロセスを受けることによって、さらなる電力を消費し、データ転送の速度及び効率を低下させる。
【0006】
図1は、いくつかの実施形態による、クロックドメイン間で転送されるデータを記憶するための最小セットアップ時間を維持するプロセッサ100を示す図である。プロセッサ100は、計算可能な様々な電子デバイス(例えば、サーバ、デスクトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータ、計算可能な携帯電話(例えば、「スマートフォン」)、計算可能な時計又は他のウェアラブルアイテム、パーソナルデジタルアシスタント(PDA)、ゲーム機等)に実装されている。図示した例では、プロセッサ100は、コアクロックドメイン102及びL3クロックドメイン103と示された2つのクロックドメインを備える。コアクロックドメイン102は、プロセッサコア(図示省略)の動作に関連するモジュールを含み、このプロセッサコアによるアクセスのためにデータを記憶するレベル2(L2)キャッシュ120を含む。本明細書でさらに説明するように、L3クロックドメイン103は、L2キャッシュ120によるアクセスのためにデータを記憶するレベル3(L3)キャッシュを含む。
【0007】
いくつかの実施形態において、L3キャッシュ126は、コアクロックドメイン102のプロセッサコア用のL2キャッシュ120とメモリ階層を形成する。また、メモリ階層は、プロセッサコア用のL1キャッシュ(図示省略)と、メインメモリ(図示省略)と、を含む。プロセッサ100は、メモリ管理スキームに基づいて異なるレベルのメモリ階層間でデータを転送することによって、プロセッサコアによってアクセスされる可能性の高いデータを、メモリ階層において当該プロセッサコアの近くに移動させ、プロセッサコアによってアクセスされる可能性の低いデータを、メモリ階層において当該プロセッサコアから遠くに移動させる。いくつかの実施形態において、プロセッサ100は、異なるプロセッサコア及び対応するL2キャッシュをサポートするために、コアクロックドメイン102と同様の追加のコアクロックドメイン(図示省略)を含む。各コアクロックドメインは、自身のL1キャッシュ及びL2キャッシュを含む自身のメモリ階層を有するが、プロセッサ100の複数のメモリ階層は、L3キャッシュ126を共有する。
【0008】
プロセッサ100は、コアクロックドメイン102での処理効率を維持しながらL3キャッシュ126の共有を容易にするために、異なるクロック信号をコアクロックドメイン102及びL3クロックドメイン103に供給して、各ドメインの動作を同期させる。図示した例では、コアクロックドメイン102に供給されるクロック信号は「CCLK」と示されており、L3クロックドメイン103に供給されるクロック信号は「L3CLK」と示されている。本明細書でさらに説明するように、クロック信号CCLK,L3CLKは非同期であるため、異なる周波数を有することができるが、クロック信号が共通のPLLソースから得られることから、追跡可能な位相関係を有する。
【0009】
特に、プロセッサ100は、クロック信号CCLK,L3CLKを生成するために、位相同期ループ(PLL)105及びクロックジェネレータ106を用いる。PLL105は、一般的に、基準水晶等のクロック源(図示省略)によって供給される安定した発振信号と位相が同期した「VCO_CLK」と示されるクロック信号を生成するように構成された電圧制御発振回路である。いくつかの実施形態において、PLL105は、互いに位相がずれた複数のクロック信号を供給し、複数のクロック信号のうち選択されたクロック信号を組み合わせることによって、異なる周波数でのクロック信号の生成をサポートする。例えば、いくつかの実施形態において、PLL105は、他のクロック信号と位相が少なくとも45度ずれている8つのクロック信号を供給し、クロック信号の生成に関して1/8整数分周ステップをサポートする。
【0010】
クロックジェネレータ106は、VCO_CLK信号に基づいてクロック信号CCLK,L3CLK信号を生成するように構成されたモジュールである。いくつかの実施形態において、上述したように、PLL105は、互いに位相がずれた複数のクロック信号を供給し、クロックジェネレータ106は、クロック信号毎にクロック周波数を独立して確立する制御シグナリングに基づいて複数のクロック信号を選択的に組み合わせることによって、クロック信号CCLK,L3CLK信号を生成する。図示した例において、制御シグナリングは、動的電圧及び周波数スケーリング(DVFS)モジュール107及び電圧ドループモジュール108と示された2つのモジュールによって提供される。
【0011】
DVFSモジュール107は、概して、コアクロックドメイン102及びL3クロックドメイン103の各々の電力モードを決定し、各々の電力モードに基づいてクロック信号CCLK,L3CLKの各々の周波数を示す、図1において「FREQ」と示された信号として表された制御シグナリングを提供するように構成されている。いくつかの実施形態において、DVFSモジュール107は、クロック信号毎の周波数を除数値として示し、説明のために「fVCO」と示されたVCO_CLKクロック信号の周波数は、この除数値によって除算される。したがって、例えば、DVFSモジュール107は、クロック信号CCLKの周波数を、fVCOを2.5で除算したものとして示し、クロック信号L3CLKの周波数を、fVCOを1.75で除算したものとして示す。例によって示すように、DVFSモジュール107は、クロック信号CCLK,L3CLKの周波数を、各々の電力モードに基づいて独立して設定する。
【0012】
電圧ドループモジュール108は、コアクロックドメイン102及びクロックドメイン103の一方又は両方において基準電圧に対する電圧ドループを検出し、これに応じて、クロック信号CCLK,L3CLKの一方又は両方の周波数の調整を示す、図1において「DROOP」と示された信号として表された制御シグナリングを提供する。電圧ドループモジュール108は、電圧ドループが停止した(すなわち、基準電圧が公称レベルに戻った)のを検出したことに応じて、DROOP信号を介して制御シグナリングを提供し、クロック信号CCLK,L3CLKの一方又は両方の調整を終了させる。
【0013】
クロックジェネレータ106は、DROOP及びFREQ信号に基づいて、クロック信号CCLK,L3CLKの各々の周波数を識別する。いくつかの実施形態において、クロックジェネレータ106は、FREQ信号によって示されるクロック信号毎の公称周波数を識別することによって周波数を識別し、次いで、DROOP信号に基づいてクロック信号の周波数を調整する。例えば、クロックジェネレータ106は、FREQ信号に基づいて、fVCOであるクロック信号CCLKの公称クロック周波数を2で除算するように決定する。さらに、クロックジェネレータ106は、DROOP信号がコアクロックドメイン102における電圧ドループを示すことを判別する。これに応じて、クロックジェネレータ106は、fVCOであるクロック信号CCLKの周波数を2で除算するように調整して、電圧ドループがプロセッサコア又は他のモジュールの誤動作を引き起こさないことを確実にする。また、クロックジェネレータ106は、FREQ信号に基づいて、fVCOであるクロック信号L3CLKの公称周波数を1.75で除算するように決定する。さらに、クロックジェネレータ106は、DROOP信号がL3クロックドメイン103において電圧ドループがないことを示していると判別し、クロック信号L3CLKの周波数を公称周波数に維持する。
【0014】
クロックジェネレータ106は、クロック信号CCLK,L3CLKを各々の決定された周波数で生成する。いくつかの実施形態において、クロックジェネレータ106は、クロック信号CCLK,L3CLKの各々の周波数で各クロック信号を生成するようにVCO_CLK信号の位相シフトバージョンを独立して組み合わせることによって、クロック信号CCLK,L3CLKの各々を生成する。上述したように、クロックジェネレータ106は、クロック信号CCLK,L3CLKが非同期になるように、クロック信号CCLK,L3CLKの各々の周波数を他から独立して設定及び変更する。
【0015】
コアクロックドメイン102及びL3クロックドメイン103は、クロック信号CCLK,L3CLKの非同期性のために、それらの対応するクロック信号のうち1つのみに基づいてデータを直接確実に通信することができない。したがって、コアクロックドメイン102とL3クロックドメイン103との間のデータ通信を容易にするために、プロセッサ100は、複数のエントリを有するFIFO130を含み、各エントリは、コアクロックドメイン102及びL3クロックドメイン103の両方によってアクセスされる、個別にアドレス指定可能な記憶場所に存在する。例えば、いくつかの実施形態において、FIFO130は、3つのエントリを含む。説明を容易にするために、FIFO130は、データをコアクロックドメイン102からL3クロックドメイン103に転送するために用いられ、プロセッサ100は、本明細書で説明する技術に従って、データをL3クロックドメイン103からコアクロックドメイン102に転送するために用いられる他のFIFO(図示省略)を備えると想定する。
【0016】
コアクロックドメイン102及びL3クロックドメイン103の各々は、FIFO130にアクセスするために、読み出し/書き込みモジュール122及び読み出し/書き込みモジュール124と示された読み出し/書き込みモジュールを含む。読み出し/書き込みモジュール122,124の各々は、FIFO130にアクセスするためのポインタのセットを独立して管理する。特に、読み出し/書き込みモジュール122は、書き込みポインタを用いて、書き込まれるFIFO130の次のエントリを示す。読み出し/書き込みモジュール122は、L3クロックドメイン103への転送用のデータをL2キャッシュ120から受信したことに応じて、当該データをFIFO130のエントリに書き込み、次いで、FIFO130の次のエントリを指すように書き込みポインタを調整する。書き込まれたエントリがFIFO130の最後のエントリである場合、読み出し/書き込みモジュール122は、FIFO130の最初のエントリを指すように書き込みポインタを調整する。したがって、FIFO130が3つのエントリを有すると仮定すると、書き込みポインタは、最初にエントリ0を指し、次にエントリ1を指し、その次にエントリ2を指し、そしてエントリ0に戻る。
【0017】
読み出し/書き込みモジュール124は、読み出しポインタを用いて、読み出されるFIFO130の次のエントリを示す。読み出し/書き込みモジュール124は、読み出しポインタによって示されるエントリから読み出しを行い、次に、FIFO130の次のエントリを指すように読み出しポインタを調整する。上述した書き込みポインタと同様に読み出しエントリがFIFO130の最後のエントリである場合、読み出し/書き込みモジュール124は、FIFO130の最初のエントリを指すように読み出しポインタを調整する。
【0018】
読み出し/書き込みモジュール122,124の各々は、これらのクロックドメインに対応するクロック信号(すなわち、クロック信号CCLK,L3CLKの各々)によって同期される。上記で説明したように、これらのクロック信号は非同期である。書き込まれたデータが読み出される前に、書き込まれたデータがFIFO130のエントリに適切に記憶されたことを確実にするために、読み出し/書き込みモジュール124は、クロック信号のエッジを追跡し、FIFO130のエントリに書き込まれたデータの最小セットアップ時間を維持する。読み出し側(データが読み出されているクロックドメイン)のクロック信号がより高い周波数を有するいくつかの実施形態では、読み出し/書き込みモジュール124は、読み出し/書き込みモジュール122によってエントリが書き込まれた後のCCLKクロック信号の少なくとも1クロックサイクルの間、FIFO130のエントリを読み出さないことを確実にする。書き込み側(データをFIFO130に書き込むクロックドメイン)のクロック信号がより高い周波数を有するいくつかの実施形態では、読み出し/書き込みモジュール124は、以前に書き込まれたデータの最小セットアップ時間に達するまでデータを書き込まないことを確実にする。これにより、読み出し/書き込みモジュール122,124は、データが他の読み出し/書き込みモジュールによって読み出される場合に、エントリにおいて当該データが遷移中ではない(すなわち、書き込まれていない)ことを確実にする。さらに、読み出し/書き込みモジュール122,124は、クロック信号CCLK,L3CLKの何れか一方に周波数の変更に応じて最小セットアップ時間を維持することを確実にすることによって、データの再転送又はデータ転送回路のリセットを必要とせずに、クロック周波数の変更に応じた適切なデータ転送を確実にする。
【0019】
いくつかの実施形態において、読み出し/書き込みモジュール124は、クロック信号CCLKのエッジを直接追跡しない。代わりに、図4に関してさらに後述するように、読み出し/書き込みモジュール124は、クロック信号L3CLKとクロック信号VCO_CLKとの間で経過した位相の追跡を続けることによって、又は、クロック信号CCLK,L3CLK信号の何れか一方の周波数における変更の指示を監視することによって、クロック信号CCLKのエッジを間接的に追跡する。読み出し/書き込みモジュール124は、クロック信号の経過した位相及び周波数の両方を監視することによって、最小セットアップ時間の維持を確実にする。特に、クロック信号CCLKのエッジの正確なタイミングは、読み出し/書き込みモジュール124によって直接観測することができないが、読み出し/書き込みモジュール124は、さらに後述するように、経過した位相及び周波数変更の両方の監視によって、少なくとも最小セットアップ時間を実施することができる。
【0020】
図2は、いくつかの実施形態による、エントリをFIFO130から読み出すための最小セットアップ時間を維持する読み出し/書き込みモジュール124の一例を示す図である。特に、図2は、クロック信号CCLK,L3CLK信号の各々の例に対応する波形240,241を示している。波形240,241の各々は、CCLKのサイクル250〜255(波形240)、L3CLKのサイクル260〜267(波形241)に分割されている。また、図2は、サイクル250〜255毎に、読み出し/書き込みモジュール122によって書き込まれるFIFO130の位置を示しており、サイクル260〜267毎に、読み出し/書き込みモジュール124によって読み出されるFIFO130の位置を示している。したがって、図示した例では、読み出し/書き込みモジュール122は、サイクル250中、及び、サイクル253中に再度、FIFO130の位置0に書き込みを行い、読み出し/書き込みモジュールは、サイクル262中、及び、サイクル266中に再度、FIFO130の位置0の読み出しを行う。
【0021】
図2の例では、CCLKの各サイクルがクロック信号の立ち上がりエッジ上で開始すると想定する。したがって、読み出し/書き込みモジュール122は、クロック信号CCLKの立ち上がりエッジの各々に応じて、FIFO130の対応する位置への書き込みを開始する。同様に、L3CLKの各サイクルは、クロック信号の立ち上がりエッジで開始するので、読み出し/書き込みモジュール124は、FIFO130から読み出す場合に、クロック信号L3CLKの立ち上がりエッジに応じて、対応する位置の読み出しを開始する。しかしながら、読み出し/書き込みモジュール124は、FIFO130への書き込みのための最小セットアップ時間の維持を確実にするために、選択されたサイクル(かかるサイクルは、図2において「NO READ」と示されている)中にFIFO130からの読み出しを行わない。
【0022】
図示した例では、クロック信号CCLKは、クロック信号L3CLKよりも遅い周波数であることから、読み出し/書き込みモジュール124は、クロック信号CCLKの各サイクル中にFIFO130のエントリにデータを書き込む。読み出し/書き込みモジュール124は、書き込み毎に1つのCCLKサイクルの最小セットアップ時間を維持するために、クロック信号CCLKのエッジを監視し、最小セットアップ時間を満たさないクロック信号L3CLKのサイクルについてのFIFO130からの読み出しを抑制する。したがって、クロック信号L3CLKのサイクル261では、読み出し/書き込みモジュール124は、FIFO130の位置0から読み出す準備ができている。しかしながら、読み出し/書き込みモジュール124は、サイクル261の開始時に、読み出し/書き込みモジュール122がサイクル250の開始時に位置0への書き込みを開始してからCCLKのフルサイクルが経過していないと判別する。したがって、読み出し/書き込みモジュール124は、例えば、サイクル261中に読み出しポインタをFIFO130に提供しないことによって、サイクル261中でのFIFO130からの読み出しを抑制する。サイクル262では、読み出し/書き込みモジュール124は、読み出し/書き込みモジュール122による位置0への書き込みが開始されてからCCLKのフルサイクルが経過したと判別する。これに応じて、読み出し/書き込みモジュール124は、サイクル262の開始時に(すなわち、立ち上がりエッジに応じて)位置0の読み出しを開始する。
【0023】
サイクル263では、読み出し/書き込みモジュール124は、FIFO130の位置1から読み出す準備ができている。読み出し/書き込みモジュール124は、サイクル251中に位置1が書き込まれてからCCLKのフルサイクルが経過したと判別し、これにより、サイクル263中に位置1を読み出す。サイクル264では、読み出し/書き込みモジュール124は、FIFO130の位置0から読み出す準備ができている。しかしながら、読み出し/書き込みモジュール124は、サイクル264の開始時に、読み出し/書き込みモジュール122がサイクル252の開始時に位置2への書き込みが開始されてからCCLKのフルサイクルが経過していないと判別する。したがって、読み出し/書き込みモジュール124は、サイクル264中でのFIFO130からの読み出しを抑制する。次のサイクル265では、読み出し/書き込みモジュール124は、読み出し/書き込みモジュール122が位置2への書き込みを開始してからCCLKのフルサイクルが経過したと判別する。これに応じて、読み出し/書き込みモジュール124は、サイクル264の開始時に(すなわち、立ち上がりエッジに応じて)位置2の読み出しを開始する。したがって、図2に示す例では、読み出し/書き込みモジュール124は、クロック信号CCLK,L3CLKが非同期であっても、データが読み出される前にFIFO130に書き込まれるデータの最小セットアップ時間を維持する。
【0024】
図2が、FIFO130からの読み出しを行う読み出し/書き込みモジュール124の一例を示していることを理解するであろう。いくつかの実施形態において、読み出し/書き込みモジュール124は、書き込まれたデータの最小セットアップ時間を維持するために、同様にFIFO130への書き込みを行う。特に、読み出し/書き込みモジュール124は、クロック信号L3CLKのサイクルの選択中にデータを書き込むための書き込みポインタをFIFO130に提供する。このサイクルは、以前にエントリに書き込まれたデータの最小セットアップ時間に達した後にデータが読み出し/書き込みモジュール122によって読み出されるまで、データがエントリに書き込まれないことを確実にするように選択される。したがって、読み出し/書き込みモジュールがデータをエントリに書き込む準備ができている所定のクロックサイクルでは、読み出し/書き込みモジュール124は、エントリに書き込まれたデータの最小セットアップ時間に達していないと判別したことに応じて、次のクロックサイクルまでFIFO130への書き込みポインタの供給を抑制することによって、書き込まれたデータの最小セットアップ時間を満たすことを確実にする。
【0025】
いくつかの実施形態において、読み出し/書き込みモジュール124は、クロック信号CCLK,L3CLKのうち1つ以上が周波数変更を受けた場合であっても最小セットアップ時間を維持するように構成されている。いくつかの実施形態による一例を図3に示す。図2と同様に、図3は、クロック信号CCLK,L3CLKの各々の例に対応する波形340,341を示している。波形340,341の各々は、CCLKのサイクル350〜354(波形340)、L3CLKのサイクル360〜367(波形241)に分割されている。図3は、サイクル350〜354毎に、読み出し/書き込みモジュール122によって書き込まれるFIFO130の位置を示しており、サイクル360〜367毎に、読み出し/書き込みモジュール124によって読み出されるFIFO130の位置を示している。
【0026】
図2の例と同様に、図3の例において、読み出し/書き込みモジュール124は、FIFO130への書き込み毎に1つのCCLKサイクルの最小セットアップ時間を維持する。しかしながら、図3の例において、クロック信号CCLKは、時間371で周波数を変更する。周波数の変更は、コアクロックドメイン102の電力モードの変更、電圧ドループモジュール108によって検出されたコアクロックドメイン102における電圧ドループ、又は、これらの組み合わせの結果であってもよい。読み出し/書き込みモジュール124は、周波数の変更に応じて、1つのCCLKクロックサイクルの最小セットアップ時間を維持するように、FIFO130のエントリが読み出されるタイミングを調整する。例えば、L3CLKのサイクル364では、読み出し/書き込みモジュール124は、FIFO130の位置2から読み出す準備ができている。しかしながら、読み出し/書き込みモジュール124は、時間371でのクロック信号CCLKの周波数の低下によってサイクルが長くなったので、クロック信号CCLKのサイクル352中に位置2に書き込まれたデータの最小セットアップ時間に達していないと判別する。読み出し/書き込みモジュール124は、最小セットアップ時間に達していないと判別したことに応じて、サイクル364中でのFIFO130からの読み出しを抑制する。次のサイクル365では、読み出し/書き込みモジュール124は、クロック信号CCLKの調整された周波数の下で、データを位置2へ書き込むための最小セットアップ時間に達したと判別し、これに応じて、位置2から読み出すための読み出しポインタをFIFO130に提供する。したがって、読み出し/書き込みモジュール124は、クロック信号CCLKのエッジの追跡を続けることによって、クロック信号CCLKの周波数が変更された場合であっても最小セットアップ時間を維持するように、FIFO130のエントリを読み出すタイミングを調整する。
【0027】
図4は、いくつかの実施形態による、読み出し/書き込みモジュール124のブロック図である。図示した例では、読み出し/書き込みモジュール124は、さらに後述するように、VCO_CLK信号の経過した位相を追跡することによって、クロック信号CCLKのエッジを追跡する。特に、クロック信号CCLKがVCO_CLK信号に基づいているので、VCO_CLK信号の経過した位相は、クロック信号CCLKのエッジの時間的位置を相対的に示している。したがって、読み出し/書き込みモジュール124は、VCO_CLK信号の経過した位相を追跡することによって、クロック信号CCLKのエッジを直接検知することなく、FIFO130に書き込まれたデータの最小セットアップ時間に達したか否かを識別することができる。
【0028】
図4の例において、読み出し/書き込みモジュール124は、制御モジュール440と、読み出しポインタモジュール442と、書き込みポインタモジュール444と、VCO_CLK位相カウンタ446と、位相カウンタ調整モジュール448と、を備える。読み出しポインタモジュール442は、読み出し/書き込みモジュール124用の読み出しポインタを記憶するように構成されている。読み出しポインタモジュールは、「RD」と示された信号のアサートに応じて、FIFO130の次の位置を指すように読み出しポインタを調整し、読み出しポインタをFIFO130に提供する。これに応じて、FIFO130は、読み出しポインタによって示される位置を読み出し、読み出しデータを、L3キャッシュ126に転送するために読み出し/書き込みモジュール124に提供する。
【0029】
書き込みポインタモジュール444は、読み出しポインタモジュール442と同様に、データをFIFO130に書き込むように構成されている。特に、書き込みポインタモジュール444は、FIFO130に書き込まれるデータと、読み出し/書き込みモジュール124用の書き込みポインタと、を記憶する。読み出しポインタモジュールは、「WRT」と示された信号のアサートに応じて、FIFO130の次の位置を指すように書き込みポインタを調整し、この位置に書き込まれるデータと書き込みポインタとをFIFO130に提供する。これに応じて、FIFO130は、書き込みポインタによって示されたデータ位置に書き込みを行う。
【0030】
制御モジュール440は、図2及び図3に関して上述したように、最小セットアップ時間を維持するために、FIFO130との間でデータを読み書きするためのRD及びWRT信号を生成するように構成されている。特に、FIFO130からの読み出しに関して、制御モジュール440は、本明細書でさらに説明するようにクロック信号CCLKのエッジを識別し、クロック信号L3CLKの立ち上がりエッジと、読み出し/書き込みモジュール122が、読み出されるデータをFIFO130の次のエントリに書き込んでからCCLKの少なくとも1つのクロックサイクルの最小セットアップ時間が経過したと判別したことと、の両方に応じてRD信号をアサートする。制御モジュール440は、クロック信号L3CLKの立ち上がりエッジに応じて、読み出し/書き込みモジュール122が読み出されるデータをFIFO130の次にエントリに書き込んでから少なくとも1つのクロック信号の最小セットアップ時間が経過していないと判別した場合に、RD信号をネゲート状態に維持することによって、FIFO130からの読み出しを抑制する。
【0031】
制御モジュール440は、クロック信号CCLKのエッジを監視するために、VCO_CLK位相カウンタ446及び位相カウンタ調整モジュール448を用いる。VCO_CLK位相カウンタ446は、所定値から0までカウントダウンし、次に当該所定値にリセットするカウンタである。VCO_CLK位相カウンタは、所定値からカウントダウンするために、クロック信号L3CLKの各立ち上がりエッジに応じて、位相カウンタ調整モジュール448によって記憶された調整量だけ、記憶した値を減らす。調整値は、クロック信号CCLKの位相毎のVCO_CLK信号の位相数を反映する。制御モジュール440は、クロック信号CCLKの周波数に基づいて調整量を設定する。特に、クロックジェネレータ106(図1)は、クロック信号CCLKの周波数の変更に応じて、F_CHNG信号を介して変更の指示を提供する。これに応じて、制御モジュール440は、位相カウンタ調整モジュール448において調整値を調整して、新たな周波数でのクロック信号CCLKの位相毎のVCO_CLK信号の新たな位相数を反映させる。
【0032】
VCO_CLK位相カウンタ446は、0に達すると、信号を制御モジュール440にアサートする。信号のアサートは、クロック信号CCLKに対するVCO_CLK信号の位相の関係に基づいているので、クロック信号L3CLKに対するクロック信号CCLKのエッジの相対位置を制御モジュール440に示す。したがって、制御モジュール440は、VCO_CLK位相カウンタ446による信号のアサートに基づいて、読み出し/書き込みモジュール122がデータをFIFO130のエントリへ書き込んだ後に最小セットアップ時間に達したか否かを判別する。さらに、位相カウンタ調整モジュール448がクロック信号CCLKの周波数の変更に基づいて更新されるので、制御モジュール440は、かかる周波数の変更に応じて最小セットアップ時間を維持する。いくつかの実施形態において、読み出し/書き込みモジュール124は、カウンタ446及び調整モジュール448と同様にカウンタ及び調整値を使用して、また、クロック信号CCLKとクロック信号L3CLKとの間の位相及び周波数関係を反映する調整値を使用して、クロック信号CCLKの位相を追跡する。これにより、制御モジュール440は、FIFO130への読み書き毎に、対応するメモリアクセス動作の最小セットアップ時間に達したか否か、したがって、FIFO130の位置にアクセス可能か否かを識別することができる。
【0033】
図5は、いくつかの実施形態による、プロセッサクロックドメイン間でFIFOからデータを読み出すための最小セットアップ時間を維持する方法500のフロー図である。説明のために、方法500は、図1のプロセッサ100における例示的な実装に関して説明される。ブロック502において、L3クロックドメイン103の読み出し/書き込みモジュール124は、コアクロックドメイン102のクロック信号CCLKのエッジを監視する。ブロック504において、読み出し/書き込みモジュールは、クロック信号L3CLKの次の立ち上がりエッジを受信したか否かを識別する。そうでなければ、方法は、ブロック502に戻る。
【0034】
ブロック504に戻り、クロック信号L3CLKの立ち上がりエッジを受信したことに応じて方法フローがブロック506に移行し、読み出し/書き込みモジュール124は、クロック信号CCLKの監視されたエッジに基づいて、読み出されるデータがFIFO130の次のエントリに書き込まれてから最小セットアップ時間に達したか否かを判別する。達している場合、方法フローがブロック508に移行し、読み出し/書き込みモジュール124は、FIFO130の次のエントリを読み出すための読み出しポインタを発行し、読み出しデータをL3キャッシュ126に提供する。方法フローは、ブロック502に戻る。ブロック506に戻ると、最小セットアップ時間に達していない場合には、方法フローがブロック510に移行し、読み出し/書き込みモジュール124は、クロック信号L3CLKの現在のサイクルについて読み出しポインタを発行しないことによって、FIFO130の読み出しを抑制する。
【0035】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0036】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。
【図1】
【図2】
【図3】
【図4】
【図5】
【手続補正書】
【提出日】20190411
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
プロセッサ(100)の第1クロックドメイン(102)において、第1クロック信号(240)の第1エッジに基づいてバッファ(130)の第1エントリにアクセスすることと、
前記プロセッサの第2クロックドメイン(103)において、
前記バッファの前記第1エントリから読み出すために、最小セットアップ時間に基づいて第2クロック信号(241)の第2エッジを選択することであって、前記第2クロック信号は前記第1クロック信号と非同期である、ことと、
選択された第2エッジに応じて前記バッファの前記第1エントリにアクセスすることと、
前記第1クロック信号に対する第1周波数の変更についての要求に応じて、前記最小セットアップ時間を維持するように前記第2クロック信号の第3エッジを選択することと、
選択された第2エッジに応じて前記バッファにアクセスすることと、を含む、
方法。
【請求項2】
前記第2クロック信号に対する第2周波数の変更についての要求に応じて、前記最小セットアップ時間を維持するように前記第2クロック信号の第4エッジを選択することと、
選択された第2エッジに応じて前記バッファにアクセスすることと、をさらに含む、
請求項1の方法。
【請求項3】
前記第2エッジを選択することは、前記第2クロックドメインにおいて前記バッファの第1の以前のアクセスの後の前記第2クロック信号の第1位相数の満了に基づいて前記第2エッジを選択することを含み、
前記第3エッジを選択することは、前記第2クロックドメインにおいて前記バッファの第2の以前のアクセスの後の前記第2クロック信号の第3位相数の満了に基づいて前記第3エッジを選択することを含む、
請求項1の方法。
【請求項4】
前記第1クロック信号は第1クロック周波数であり、前記第2クロック信号は前記第1クロック周波数と異なる第2クロック周波数である、
請求項1の方法。
【請求項5】
前記プロセッサ(108)における電圧ドループを検出したこと、及び、前記プロセッサ(107)の電力モードを変更したことの何れかに応じて前記第1周波数の変更を要求することをさらに含む、
請求項1の方法。
【請求項6】
前記第2エッジを選択することは、
第1調整値に基づいて第3クロック信号の第1位相数をカウントすることと(448)、
前記第1位相数に基づいて前記第2エッジを選択することと(446)、を含
前記第3エッジを選択することは、
第2調整値に基づいて第3クロック信号の第2位相数をカウントすることであって、前記第2調整値は前記第1調整値と異なる、ことと、
前記第2調整値に基づいて前記第3エッジを選択することと、を含む、
請求項1の方法。
【請求項7】
前記第1周波数の変更についての要求に応じて、前記第1調整値から前記第2調整値に変更することをさらに含む、
請求項の方法。
【請求項8】
前記第3クロック信号に基づいて前記第1クロック信号及び前記第2クロック信号を生成することをさらに含む、
請求項の方法。
【請求項9】
先入れ先出し(FIFO)バッファ(130)と、
第1クロック信号(240)の第1エッジに基づいて前記FIFOにアクセスする第1クロックドメイン(102)と、
読み出しモジュール(124)を含む第2クロックドメイン(103)と、を備え、
前記読み出しモジュールは、
前記FIFOの第1エントリにアクセスするために、最小セットアップ時間に基づいて第2クロック信号(241)の第2エッジを選択することであって、前記第2クロック信号は前記第1クロック信号と非同期である、ことと、
選択された第2エッジに応じて前記FIFOの前記第1エントリにアクセスすることと、
前記第1クロック信号に対する第1周波数の変更についての要求に応じて、前記最小セットアップ時間を維持するように前記第2クロック信号の第3エッジを選択することと、
選択された第2エッジに応じて前記FIFOにアクセスすることと、
を行うように構成されている、
プロセッサ(100)。
【請求項10】
前記読み出しモジュールは、
前記第2クロック信号に対する第2周波数の変更についての要求に応じて、前記最小セットアップ時間を維持するように前記第2クロック信号の第4エッジを選択することと、
選択された第2エッジに応じて前記FIFOにアクセスすることと、
を行うように構成されている、
請求項のプロセッサ。
【請求項11】
前記第2エッジを選択することは、前記第2クロックドメインにおいて前記FIFOの第1の以前のアクセスの後の前記第2クロック信号の第1位相数の満了に基づいて前記第2エッジを選択することを含み、
前記第3エッジを選択することは、前記第2クロックドメインにおいて前記FIFOの第2の以前のアクセスの後の前記第2クロック信号の第2位相数の満了に基づいて前記第3エッジを選択することを含む、
請求項のプロセッサ。
【請求項12】
前記第1クロック信号は第1クロック周波数であり、前記第2クロック信号は前記第1クロック周波数と異なる第2クロック周波数である、
請求項のプロセッサ。
【請求項13】
前記プロセッサにおける電圧ドループを検出したこと、及び、前記プロセッサの電力モードを変更したことの何れかに応じて前記第1周波数の変更を要求する電圧ドループモジュール(108)をさらに備える、
請求項のプロセッサ。
【請求項14】
前記読み出しモジュールは、
第1調整値に基づいて第3クロック信号の第1位相数をカウントすることと、
前記第1位相数に基づいて前記第2エッジを選択することと、
によって前記第2エッジを選択するように構成されている、
請求項のプロセッサ。
【請求項15】
前記読み出しモジュールは、
第2調整値に基づいて第3クロック信号の第2位相数をカウントすることであって、前記第2調整値は前記第1調整値と異なる、ことと、
前記第2調整値に基づいて前記第3エッジを選択することと、
によって前記第3エッジを選択するように構成されており
前記読み出しモジュールは、
前記第1周波数の変更についての要求に応じて、前記第1調整値から前記第2調整値に変更するようにさらに構成されている、
請求項14のプロセッサ。
【国際調査報告】