(57)【特許請求の範囲】
【請求項１】
関連するクロック信号に応答して関連するバスを介して複数のノードと通信するように構成された複数の通信ポートと、
前記クロック信号を生成し、通信トランザクションを要求するノードから受信したゲーティングヒステリシスを先入れ先出しバッファに記憶し、前記ポートの通信トランザクションに応答して、前記記憶されたゲーティングヒステリシスのうちの最大の値を用いて前記クロック信号のゲーティングヒステリシスを変化させるように構成されたクロック信号生成回路と
を備える装置。
【請求項２】
前記クロック信号生成回路は、前記トランザクションの属性に基づいて前記クロック信号の前記ゲーティングヒステリシスを変化させるように構成される、請求項1に記載の装置。
【請求項３】
前記属性は、前記トランザクションにおいて伝達される前記トランザクションのアドレスおよび/またはペイロードを含む、請求項2に記載の装置。
【請求項４】
前記クロック信号生成回路は、前記クロック信号のゲーティングヒステリシスを変化させる際にトランザクション後遅延を変化させるように構成される、請求項2に記載の装置。
【請求項５】
前記ポートは、データ経路指定ファブリック回路の複数のポートを備え、前記クロック信号生成回路は、前記複数のポートのそれぞれのポートのクロック信号のそれぞれのゲーティングヒステリシスを独立に変化させるように構成される、請求項1に記載の装置。
【請求項６】
請求項1に記載の装置を備える集積回路。
【請求項７】
請求項6に記載の前記集積回路の機能を実現するようにデータ処理システムによって実行することのできるコンピュータ命令を記録するコンピュータ可読記録媒体。
【請求項８】
関連するクロック信号に従ってデータ経路指定ファブリック回路の外部の複数のノードと通信するように構成された複数のポートを備える前記データ経路指定ファブリック回路と、
通信トランザクションを要求するノードから受信した時間遅延を表す値を先入れ先出しバッファに記憶し、前記ポートの通信トランザクションに応答して、前記記憶された値のうちの最大の値を用いて前記ポートのうちの少なくとも1つのクロック信号のゲーティングを遅延させるように構成された制御回路と
を備える装置。
【請求項９】
前記記憶された時間遅延を表す値はプログラム可能な値を含む、請求項8に記載の装置。
【請求項１０】
前記制御回路は、それぞれの時間遅延を表す複数の値を記憶し、前記記憶された値のうちの1つを選択し、前記選択された値に基づいて前記ポートのうちの前記少なくとも1つの前記クロック信号のゲーティングを遅延させるように構成される、請求項8に記載の装置。
【請求項１１】
請求項8に記載の装置を備える集積回路。
【請求項１２】
請求項11に記載の前記集積回路の機能を実現するようにデータ処理システムによって実行することのできるコンピュータ命令を記録するコンピュータ可読記録媒体。
【請求項１３】
関連するクロック信号に応答して関連するバス上で複数のノードと通信するように構成された複数の通信ポートと、
前記クロック信号を生成し、通信トランザクションを要求するノードから受信したゲーティングヒステリシスを先入れ先出しバッファに記憶し、前記ポートの通信トランザクションに応答して、前記記憶されたゲーティングヒステリシスのうちの最大の値を用いて前記クロック信号のゲーティングヒステリシスを変化させる手段と
を備える装置。
【請求項１４】
データ経路指定ファブリック回路の外部の複数のノードと通信するように構成された複数の通信ポートを備える前記データ経路指定ファブリック回路の通信ポートを動作させる方法であって、
通信トランザクションを要求するノードから受信したゲーティングヒステリシスを先入れ先出しバッファに記憶し、前記ポートの通信トランザクションに応答して、前記記憶されたゲーティングヒステリシスのうちの最大の値を用いて前記ポートのクロック信号のゲーティングヒステリシスを変化させるステップを含む方法。
【請求項１５】
前記ポートの通信トランザクションに応答して前記ポートのクロック信号のゲーティングヒステリシスを変化させるステップは、前記トランザクションの属性に基づいてクロック信号のゲーティングヒステリシスを変化させるステップを含む、請求項14に記載の方法。
【請求項１６】
前記属性は、前記トランザクションにおいて伝達される前記トランザクションのアドレスおよび/またはペイロードを含む、請求項15に記載の方法。
【請求項１７】
前記ポートの通信トランザクションに応答して前記ポートのクロック信号のゲーティングヒステリシスを変化させるステップは、前記クロック信号のゲーティングヒステリシスを変化させる際にトランザクション後遅延を変化させるステップを含む、請求項14に記載の方法。
【請求項１８】
前記ポートは、データ経路指定ファブリック回路の複数のポートを備え、前記ポートの通信トランザクションに応答して前記ポートのクロック信号のゲーティングヒステリシスを変化させるステップは、前記複数のポートのそれぞれのポートのクロック信号のそれぞれのゲーティングヒステリシスを独立に変化させるステップを含む、請求項14に記載の方法。
【請求項１９】
データ経路指定ファブリック回路の外部の複数のノードと通信するように構成された複数のポートを備える前記データ経路指定ファブリック回路のポートを動作させる方法であって、
通信トランザクションを要求するノードから受信した時間遅延を表す値を先入れ先出しバッファに記憶するステップと、
前記ポートの通信トランザクションに応答して、前記記憶された値のうちの最大の値を用いて前記ポートのうちの少なくとも1つのクロック信号のゲーティングを遅延させるステップと
を含む方法。
【請求項２０】
前記時間遅延を表す値を記憶するステップは、プログラムされた値を記憶するステップを含む、請求項19に記載の方法。
【請求項２１】
前記時間遅延を表す値を記憶するステップは、それぞれの時間遅延を表す複数の値を記憶するステップを含み、前記記憶された値に基づいて前記ポートのうちの少なくとも1つのクロック信号のゲーティングを遅延させるステップの前に、前記記憶された値のうちの1つを選択するステップが実行され、前記記憶された値に基づいて前記ポートのうちの少なくとも1つのクロック信号のゲーティングを遅延させるステップは、前記選択された値に基づいて前記クロック信号のゲーティングを遅延させるステップを含む、請求項19に記載の方法。
【請求項２２】
前記記憶された値に基づいて前記ポートのうちの少なくとも1つのクロック信号のゲーティングを遅延させるステップの前に、前記少なくとも1つのポートを伴う通信トランザクションを実施するステップが実行される、請求項21に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、電子システムにおけるクロック制御に関し、特に、クロックゲーティング装置およびクロックゲーティング方法に関する。
【背景技術】
【０００２】
電力消費量は、電子システム、特に、ラップトップコンピュータ、ネットブックコンピュータ、およびスマートフォンのような、電池から電力を供給される携帯デバイスでは重要な問題であることが多い。そのようなデバイスは、ディスプレイ背面照明などの機能によって電力を消費するだけでなく、動作時に比較的大量の電力を消費するプロセッサなどの集積回路も含み得る。たとえば、そのような集積回路は、データ処理動作、記憶動作、および転送動作用の時間基準として使用される多数のクロック信号を生成することがあり、そのようなクロック信号を生成する際に比較的大量の電力が費やされる可能性がある。そのようなクロック信号は、内部動作および隣接するデバイスの動作に干渉する恐れがある顕著な信号ノイズを発生させることもある。
【０００３】
クロック信号は一般に、集積回路の電力消費量を低減させるために広く使用されている技術である。Boseらの米国特許第7076681号、Jacobsonらの米国特許第7065665号、Mantorらの米国特許出願第2009/0300388号、および「Adaptive Clock Gating Technique for Low-Power IP Core in SoC Design」と題するChangらの論文は、様々なクロック制御技術を記載している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第7076681号
【特許文献２】米国特許第7065665号
【特許文献３】米国特許出願第2009/0300388号
【非特許文献】
【０００５】
【非特許文献１】Chang et al.「Adaptive Clock Gating Technique for Low-Power IP Core in SoC Design」
【発明の概要】
【課題を解決するための手段】
【０００６】
いくつかの実施形態によれば、装置は、クロック信号に応答してバスを介して通信するように構成された通信ポートと、クロック信号を生成し、ポートの通信トランザクションに応答してクロック信号のゲーティングヒステリシスを変化させるように構成されたクロック信号生成回路とを含む。クロック信号生成回路は、トランザクションのアドレスおよび/またはトランザクションにおいて伝達されるペイロードのようなトランザクションの属性に基づいてクロック信号のゲーティングヒステリシスを変化させるように構成されてもよい。さらなる実施形態では、ポートは、データ経路指定ファブリック回路の複数のポートを含んでもよく、クロック信号生成回路は、複数のポートのそれぞれのポートのクロック信号のそれぞれのゲーティングヒステリシスを独立に変化させるように構成されてもよい。
【０００７】
さらなる実施形態は、関連するクロック信号に従ってデータ経路指定ファブリック回路の外部のノードと通信するように構成された複数のポートを備えるデータ経路指定ファブリック回路を含む装置を提供する。装置は、時間遅延を表す値を記憶し、記憶された値に基づいてポートのうちの少なくとも1つのクロック信号のゲーティングを遅延させるように構成された制御回路をさらに含む。制御回路は、それぞれの時間遅延を表す複数の値を記憶し、記憶された値のうちの1つを選択し、選択された値に基づいてポートのうちの少なくとも1つのクロック信号のゲーティングを遅延させるように構成されてもよい。たとえば、制御回路は、ポートのうちの少なくとも1つを伴う通信トランザクションの属性に基づいて記憶された値のうちの1つを選択するように構成されてもよい。
【０００８】
いくつかの実施形態は、通信ポートを動作させる方法であって、ポートの通信トランザクションに応答してポートのクロック信号のゲーティングヒステリシスを変化させることを含む方法を提供する。ゲーティングヒステリシスを変化させることは、トランザクションのアドレスおよび/またはトランザクションにおいて伝達されるペイロードのようなトランザクションの属性に基づいてゲーティングヒステリシスを変化させることを含んでもよい。ポートは、データ経路指定ファブリック回路の複数のポートを含んでもよく、ゲーティングヒステリシスを変化させることは、複数のバスポートのそれぞれのバスポートのクロック信号のそれぞれのクロックゲーティングヒステリシスを独立に変化させることを含んでもよい。
【０００９】
さらなる実施形態は、データ経路指定ファブリック回路の外部のノードと通信するように構成された複数のポートを備えるデータ経路指定ファブリック回路を動作させる方法を提供する。この方法は、時間遅延を表す値を記憶することと、記憶された値に基づいてポートのうちの少なくとも1つのクロック信号のゲーティングを遅延させることとを含む。時間遅延を示す値を記憶することは、それぞれの時間遅延を表す複数の値を記憶することを含んでもよく、記憶された値に基づいてポートのうちの少なくとも1つのクロック信号のゲーティングを遅延させることの前に、記憶された値のうちの1つを選択することを実行してもよい。クロック信号のゲーティングは、選択された値に基づいて遅延されてもよい。
【図面の簡単な説明】
【００１０】
【図１】調整可能なバスクロックゲーティング遅延を伴う通信ポートを示すブロック図である。
【図２】調整可能なバスクロックゲーティング遅延を伴う通信ポートを示すブロック図である。
【図３】図2の装置の動作を示すタイミング図である。
【図４】可変クロックゲーティングヒステリシスを有するデータ経路指定ファブリック回路を示すブロック図である。
【図５】図4のデータ経路指定ファブリック回路のマスタポートのクロックゲーティング回路を示すブロック図である。
【図６】図5の装置の動作を示すタイミング図である。
【図７】図4のデータ経路指定ファブリック回路のマスタポート用のクロックゲーティング回路を示すブロック図である。
【図８】図4のデータ経路指定ファブリック回路のマスタポート用のクロックゲーティング回路を示すブロック図である。
【図９】図4のデータ経路指定ファブリック回路のスレーブポート用のクロックゲーティング回路を示すブロック図である。
【図１０】図4のデータ経路指定ファブリック回路のスレーブポート用のクロックゲーティング回路を示すブロック図である。
【図１１】図4のデータ経路指定ファブリック回路のスレーブポート用のクロックゲーティング回路を示すブロック図である。
【図１２】図4のデータ経路指定ファブリック回路のスレーブポート用のクロックゲーティング回路を示すブロック図である。
【発明を実施するための形態】
【００１１】
本発明の主題については様々な変形および代替形態が可能であるが、その特定の実施形態が各図面に一例として示されており、それらの実施形態について本明細書において詳しく説明する。しかし、本発明を開示される特定の形態に限定することは意図されておらず、逆に、本発明が、特許請求の範囲によって定義される本発明の趣旨および範囲内のすべての変形形態、均等形態、および代替形態を対象とするものであることを理解されたい。各図の説明全体にわたって同じ参照符号は同じ要素を示す。
【００１２】
本明細書で使用する場合、単数形「a」、「an」、および「the」は、文脈が別段に明確に示すのでなければ、複数形をも含むものとする。「comprises(備える)」および/または「comprising(備える)」という用語は、本明細書において使われる場合、記述する特徴、整数、ステップ、動作、要素および/または構成要素の存在を指定するためのものであって、他の1つまたは複数の特徴、整数、ステップ、動作、要素、構成要素および/またはそのグループの存在も追加も排除するものではないことをさらに理解されたい。ある要素が別の要素に「接続される」または「結合される」というときは、ある要素が別の要素に直接接続または結合されてもよく、あるいは介在する要素が存在してもよいことを理解されたい。さらに、本明細書において使用される「接続される」または「結合される」は、ワイヤレスで接続または結合されることを含んでもよい。本明細書で使用される場合、語「および/または」は、関連する列挙される項目のうちの1つまたは複数の項目のあらゆる組合せを含む。
【００１３】
別段の定義がない限り、本明細書において使用されるすべての用語(技術的用語および科学的用語を含む)は、本発明が属する技術分野の当業者によって広く理解されている意味と同じ意味を有する。一般に使用されている辞書において定義されているような語は、関連する技術分野の文脈におけるそのような語の意味と一致する意味を有するものと解釈すべきであり、本明細書において明確な定義がない限り、理想的な意味または過度に形式的な意味で解釈されるものではないことをさらに理解されたい。
【００１４】
本発明のいくつかの実施形態は、方法、装置、および/またはコンピュータ可読媒体を含む。コンピュータ可読媒体は、命令実行システム、命令実行装置、または命令実行デバイスによって使用できるようにあるいはそのようなシステム、装置、またはデバイスに関連してプログラムコードを含むかまたは記憶することのできる任意の媒体を含んでもよい。コンピュータ使用可能媒体またはコンピュータ可読媒体は、たとえば電子式、磁気式、光学式、電磁式、赤外線式、または半導体のシステム、装置、あるいはデバイスであってもよいがそれらに限らない。コンピュータ可読媒体のより具体的な例(非網羅的なリスト)には、1つまたは複数のワイヤを有する電気的接続部、ポータブルコンピュータディスケット、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュメモリ)、およびコンパクトディスク読取り専用メモリ(CD-ROM)が含まれる。
【００１５】
いくつかの実施形態は、データ処理デバイスによって実行することのできるコンピュータ命令が内部で実施されて、集積回路またはその一部として物理的にインスタンス化することのできる本明細書において説明するような回路の製造命令を生成するコンピュータ可読媒体の形をとってもよい。コンピュータ可読媒体は、ビヘイビアレベル命令、レジスタ転送レベル命令、論理コンポーネントレベル命令、トランジスタレベル命令、レイアウトジオメトリレベル命令を含むがそれらに限らない様々な形をとってもよい命令が内部で実施されてもよい。そのような命令用のデータフォーマットは、Cのようなビヘイビア言語をサポートするフォーマット、VerilogおよびVHDLのようなレジスタ転送レベルRTL言語をサポートするフォーマット、ジオメトリ記述言語をサポートするフォーマット(GDSII、GDSIII、GDSIV、CIF、およびMEBESなど)、ならびに他の適切なフォーマットおよび言語を含んでよいがそれらに限らない。そのような命令は、ソフトIPコアおよび/またはハードIPコアとして提供されてもよい。
【００１６】
各実施形態について、本明細書では本発明のいくつかの実施形態による方法、装置、および/またはコンピュータ可読媒体のフローチャート、ブロック図、およびその他の表現を参照して説明する。フローチャートまたはブロック図の各ブロック、およびそのようなブロックの組合せがプログラム命令および/またはハードウェア動作によって実施されてもよいことが理解されよう。これらのプログラム命令は、処理装置を介して実行される命令が、フローチャートおよび/または1つまたは複数のブロック図のブロックに指定された機能を実施する手段を生成するように、機械を製造する処理装置に供給されてもよい。
【００１７】
図1は、本発明のいくつかの実施形態の一般的な適用例を示している。通信ポート110は、バス115を介して通信トランザクションを実施するように構成されている。バス115は、たとえば、そのようなトランザクションの間にバスクロック信号125に同期して情報を転送するように構成されたシリアルバスまたはパラレルバスであってもよい。バス115は、通信ポート110と他の1つのデバイス(たとえば、別のポート)との間の専用接続部であっても、あるいは3つ以上のデバイスからアクセスすることのできる共有バスであってもよい。通信ポート110は、たとえば、バスクロック信号125またはバスクロック信号から導出された信号に同期してデータを転送するように構成されたバッファまたは他の種類のデータ転送回路を含んでもよい。バスクロック信号125は、たとえば、可変ゲーティングヒステリシス(遅延)を導入することによって、クロック信号125が1つまたは複数の通信トランザクションの後でアクティブのままである時間を変化させるように制御することのできるクロック生成回路120によって生成される。以下に詳しく説明するいくつかの実施形態では、可変クロックゲーティングヒステリシスを使用して、トランザクションの開始時にクロックを有効化するための遅延によって生じることのあるレイテンシを短縮することができる。さらなる実施形態によれば、ゲーティングヒステリシスの量は、バス115上で行われる1つまたは複数のトランザクションの1つまたは複数の属性に応じて適合されてもよい。たとえば、ヒステリシスの量は、トランザクションに関与するアドレスのような通信トランザクションの転送属性、および/または明示的もしくは暗示的なヒステリシス情報のような、トランザクションに応答してポートに伝達される情報に依存してもよい。
【００１８】
図2は、さらなる実施形態による例示的な実装形態を示している。通信ポート210は、ゲーティング可能なクロック信号225に応答してバス215を介してデータを送りかつ受け取るように構成されている。クロックゲーティング回路220は、クロックゲーティング制御信号235に応答してベースクロック信号223からゲーティング可能なクロック信号225を生成する。クロックゲーティング制御回路230は、遅延制御入力231に応答してクロックゲーティング制御信号235を生成する。遅延制御入力231は、たとえば、バス215のトランザクション状態を示す信号を含んでもよく、この信号が、たとえば、遅延のタイミングを調整すべき通信トランザクションが完了したことまたは完了が近いことを示すのに使用されてもよい。遅延制御入力231は、遅延選択入力を含んでもよい。たとえば、遅延制御入力231は、クロックゲーティング制御回路230によって適用すべき特定の遅延のユーザプログラミングを容易にする信号または何らかの他の回路コンポーネントによって生成される遅延選択入力を含んでもよい。遅延制御入力231は、バス215上で行われる1つまたは複数のトランザクションの1つまたは複数の属性を示し、クロックゲーティング制御回路230によって適用すべき特定の遅延を求めるのに使用することのできる信号を含んでもよい。図示のように、クロックゲーティング制御回路230は、単一の遅延を適用してもよく、ならびに/あるいは遅延制御入力231に基づいて複数のトランザクション後遅延のうちの1つを選択的に適用するように構成されてもよい。
【００１９】
上記のように、遅延値は、バス215上の1つまたは複数の通信トランザクションの属性に基づいて選択されてもよい。たとえば、クロックゲーティング制御回路230は、特定の属性と特定の遅延とを相互参照するテーブルを記憶してもよい。いくつかの適用例では、たとえば、あるアドレスをバス215上で行うことのできる通信トランザクションの相対的な頻度と相関させることができると判定されてもよい。たとえば、ゲーティング可能なクロック信号225を有効化する場合、トランザクションをバス215を介して行うべきであると判定された後にある量のレイテンシを導入してもよい。ある送信元アドレスおよび/または宛先アドレスを一気に行われる各トランザクションに関連付けてもよく、すなわち、所与のトランザクションに続いて、以後のトランザクションにおいてゲーティング可能なクロック信号225を再有効化しなくても済むように十分な時間にわたってゲーティング可能なクロック信号225のゲーティングを妨げることが望ましい場合がある。このことは、次のトランザクションが行われる前にゲーティング可能なクロック信号225のゲーティングを妨げるのに十分な長さの遅延値を使用することによって実現されてもよい。これに対して、ある送信元アドレスおよび/または宛先アドレスを相対的に時間間隔を置いて行われるトランザクションに関連付けてもよく、すなわち、所与のトランザクションに続いて非常に短い遅延を使用するかまたは遅延を使用しないことが望ましいことがある。その理由は、ゲーティング可能なクロック信号225をゲーティングすることによる電力消費量の低減が、クロックの有効化に伴うレイテンシの短縮よりも有益である場合があるからである。1つまたは複数のバストランザクションによって伝達されるコンテントのようなアドレス以外のトランザクション属性を、クロックゲーティング遅延を選択するための基礎として使用してもよい。遅延選択入力は、特定の遅延を使用すべきポートを指示する明示的および/または暗示的なメッセージを含んでもよい。概して、そのような入力のいずれか1つまたは組合せを使用して適切なクロックゲーティング遅延を求めるかまたは選択してもよいことが諒解されよう。
【００２０】
図3は、図2の回路の例示的な動作を示している。クロックゲーティング制御信号235のアサートに応じて、ゲーティング可能なクロック信号225が有効化され(すなわち、非ゲーティングされ)、バス215上でバストランザクションを進めるのが可能になる。時間t1にトランザクションを完了した後、クロックゲーティング制御信号235は、このトランザクションに続くある時間期間にわたってアサートされたままになり、それによって、ゲーティング可能なクロック信号225のゲーティング時に時間t2までヒステリシスを導入する。図3に示すように、クロックゲーティング制御信号235のアサートおよび/またはアサート解除を行った後の、ゲーティング可能なクロック信号225の有効化および/またはゲーティング時にレイテンシが存在することがある。図3に示す信号関係が例示のために記載されており、かつ図3に示されている信号が、図3に示されている信号状態に対して反転された信号状態および/または図3に示されている信号レイテンシとは異なる信号レイテンシと立上り論理および/または立下り論理との他の組合せを使用することなどによって、他の方法で実現されてもよいことが諒解されよう。
【００２１】
いくつかの実施形態によれば、上述の方針に沿ったクロックゲーティング制御は、回路内の様々な機能ユニットを相互接続するのに使用されるデータ経路指定ファブリック回路のポートに使用されてもよい。図4は、特に、複数のマスタポート420およびスレーブポート430を有するデータ経路指定ファブリック回路410によって相互接続された複数の機能マスタユニットM0、M1、．．．、MmおよびスレーブS0、S1、．．．、Snを含む回路400の実装形態の一例を示している。マスタユニットM0、M1、．．．、MnおよびスレーブユニットS0、S1、．．．、Snは、様々な処理回路、メモリ回路、インターフェース回路、およびその他の回路を備えてもよい。マスタユニットM0、M1、．．．、Mnおよび/またはスレーブユニットS0、S1、．．．、Snは、たとえば様々なIPコアに対応してもよい。データ経路指定ファブリック回路410は、マスタポート420とスレーブポート430との間でメッセージを選択的に経路指定するクロスバースイッチとして働いてもよい。マスタM0、M1、．．．、Mmの1つと対応する1つのマスタポート420を接続する各バスは、独立に制御されてもよく、かつ独立のクロックドメインを使用してもよい。同じことがスレーブポート420とスレーブS0、S1、．．．、Snを接続するバスにも当てはまる。
【００２２】
図5は、いくつかの実施形態によるマスタポート500の実装形態の一例を示している。マスタポート500は、マスタ520をクロック制御するのに使用されるのと同じゲーティング可能なバスクロック信号535によってクロック制御されるバスインターフェース回路512を含んでもよい。図示のように、ゲーティング可能なバスクロック信号535は、ベースクロック信号531を受け取り、クロックゲーティング制御信号515に応答してベースクロック信号531からゲーティング可能なクロック信号535を生成するクロックゲーティング回路530によって生成されてもよい。いくつかの実施形態では、クロックゲーティング回路530は、マスタポート500と同じデータ経路指定ファブリック回路410に含められてもよい。このような機能は、データ経路指定ファブリック回路410の外側、たとえばマスタ520内で実施されてもよい。マスタポート500は、制御入力501に応答して遅延制御信号505を生成するように構成された遅延制御回路514も含む。遅延制御信号505は、マスタ520によって生成されたクロックコマンド信号525(たとえば、バスクロックをオンにするコマンド)と論理的に組み合わされ、クロックゲーティング制御信号515を生成する。したがって、図示のように、クロックコマンド信号525または遅延制御信号505のいずれかがアサートされた場合、クロックゲーティング制御信号515がアサートされ、ゲーティング可能なバスクロック信号535のゲーティングが妨げられる。
【００２３】
図6は、いくつかの実施形態による図5の回路の動作を示している。クロックコマンド信号525がアサートされたことに応答して、クロックゲーティング制御信号515がアサートされ、ゲーティング可能なクロック信号535が有効化される。その後のバストランザクションが時間t1において完了した後、遅延制御回路514によって導入された遅延が時間t2において満了する前に別のバストランザクションが行われた場合、制御信号505は、ある時間にわたってゲーティング可能なクロック信号535のゲーティングを妨げてさらなるクロックターンオンレイテンシを回避する。図6に示すように、クロックゲーティング制御信号515のアサートおよび/またはアサート解除を行った後の、ゲーティング可能なクロック信号535の有効化および/またはゲーティング時にレイテンシが存在してもよい。図6に示す信号関係が、例示のために記載されており、かつ他の実施形態では変形されてもよいことが諒解されよう。
【００２４】
さらなる実施形態によれば、ポートバスクロック信号に関するトランザクション後クロックゲーティングヒステリシスは、明示的または暗示的な遅延選択入力および/またはバス上で行われる1つまたは複数の通信トランザクションの属性を含むがそれらに限らない様々な異なる入力に応答して制御されてもよい。たとえば、図7に示すように、マスタポート700は、図5に示すような(同じ参照符号によって示される)各コンポーネントを、転送属性(たとえば、アドレス、種類、および他の転送制御情報)および/またはバス540上の1つまたは複数のバストランザクションにおいてマスタポート700に伝達されるペイロードデータ513に応じて動作する遅延制御回路714と一緒に含む。たとえば、遅延制御回路714は、1つまたは複数のバストランザクションの間に伝達される宛先アドレス情報(たとえば、メッセージがアドレス指定されるスレーブポートに関連付けられたアドレス)に基づいて適用すべきクロックゲーティングヒステリシスを選択してもよい。1つまたは複数の宛先アドレスは、たとえば所望のトランザクション後遅延と相関させてもよい。遅延制御回路714は、たとえば、特定のスレーブアドレスと特定のクロックゲーティング遅延とを相互参照し、かつ遅延制御回路714によって適用すべき特定のクロックゲーティング遅延を選択するためにアクセスすることのできる参照用テーブルを記憶してもよい。
【００２５】
さらなる実施形態では、タイプ証印のような他の転送属性を使用してクロックゲーティング遅延を制御してもよい。さらなる実施形態では、ペイロードデータが、クロックゲーティング遅延を調整するための基礎として働いてもよい。たとえば、いくつかの実施形態では、マスタは、マスタポート700によって実施すべき所望のクロックゲーティング遅延を明示的または暗示的に示す値をマスタポート700に渡してもよい。さらなる実施形態によれば、遅延制御入力は、適用すべきクロックゲーティングヒステリシスを判定するときにまとめて処理することのできる複数の通信トランザクションの属性を含んでもよい。たとえば、一連の特定の種類のバストランザクションが動作モードを示してもよく、そのような一連のトランザクションに基づいて最適なゲーティング遅延を選択してもよい。そのような遅延制御入力の組合せをいくつかの実施形態において使用してもよいことがさらに諒解されよう。
【００２６】
図8は、図5を参照して説明したような(同じ参照符号によって示される)各コンポーネントを、ヒステリシスタイマ回路810と、様々な遅延値を保持するように構成された複数のレジスタ820と、タイマ810およびレジスタ820を制御する制御回路830とを含む遅延制御回路814と一緒に含むマスタポート800を示している。トランザクションステータス831、たとえば、バストランザクションが完了するかまたは完了に近づいたことに応答して、制御回路830は、タイマ810に遅延制御信号505をアサートさせてゲーティング可能なバスクロック信号535のゲーティングを妨げてもよい。制御回路830は、図7を参照して説明した転送属性および/またはペイロードデータのような遅延選択入力833に従って選択された遅延値を各レジスタ820からタイマ810に同時にロードしてもよい。トランザクションステータス831がトランザクションが完了したことを示すと、タイマ810は、ロードされた値からカウントを開始し、カウントが特定の状態に達したときに遅延制御信号505をアサート解除することができる。このため、現在未解決のバストランザクションがないときにはゲーティング可能なバスクロック信号535をゲーティングしてもよい。しかし、タイマ810が特定の状態に達する前に新しいバストランザクションが開始した場合、タイマ810を中断してもよい。クロックゲーティング遅延プロセスは、この未解決のトランザクションが終了したときに再開されてもよく、たとえば、このトランザクションの後でヒステリシスタイマ810を再初期化してさらなるクロックゲーティング遅延を再び導入してもよい。さらなる遅延は、直前の遅延と同じであっても、異なっていてもよい。いくつかの実施形態では、ヒステリシスタイマ810によって実現される連続的な遅延の数を制約してもよい。
【００２７】
さらなる実施形態によれば、図4のデータ経路指定ファブリック回路410のスレーブポート430などのスレーブポートにクロックゲーティングヒステリシスを適用してもよい。図9に示すいくつかの実施形態では、スレーブポート900は、バスインターフェース回路912を含んでもよい。バスインターフェース回路912は、ゲーティング可能なバスクロック信号935に同期してバス940を介してスレーブユニット920と通信するように構成されている。ゲーティング可能なバスクロック信号935は、クロックゲーティング回路930によってベースクロック信号931から生成される。スレーブポート900は、ゲーティング可能なバスクロック信号935のトランザクション後のゲーティング時に所望の遅延を生じさせる遅延制御信号905を生成するように構成され遅延制御回路914をさらに含んでもよい。図示の各実施形態では、遅延制御信号905が、スレーブユニット920によって生成されたコマンド信号925と論理的に組み合わされてクロックゲーティング制御信号915が生成され、それによって、たとえば、遅延制御信号905またはコマンド信号925のいずれかがアサートされた場合、クロックゲーティング回路930によってゲーティング可能なクロック信号935のゲーティングが妨げられる。遅延制御回路914は、たとえば、バス940上で行われる通信トランザクションの状態を示す信号を含んでもよい遅延制御入力901に応答して遅延制御信号905を生成する。さらなる実施形態では、遅延制御入力901は、所望の遅延の表示をさらに含んでもよく、遅延制御回路914は、遅延制御信号905を生成する際に複数の遅延のうちの1つを選択的に適用してもよい。
【００２８】
図10を参照すると、たとえば、図9を参照して説明したような(同じ参照符号によって示される)各コンポーネントを含むスレーブポート1000では、遅延制御回路1014は、ファブリックインターフェース回路916の所のマスタポートからスレーブポート1000に伝達される転送属性および/またはペイロードデータ917を受け取ることができ、遅延制御回路1014は遅延をこの情報に基づいて選択してもよい。たとえば、バス940の所にすぐ後に続くトランザクションがある可能性があり、したがって、クロックゲーティングを所与の期間にわたって遅延させ、ゲーティング可能なクロック信号935の再有効化に伴うレイテンシを回避することが望ましいことと、情報に含まれる送信元アドレスを相関させてもよい。ペイロードデータを選択のための基礎として使用してもよい。たとえば、所望のスレーブポートヒステリシスを明示的または暗示的に示す情報をマスタポートからスレーブポート1000に伝達してもよく、そのような情報を使用してクロックゲーティング遅延を選択してもよい。
【００２９】
同様に、バスインターフェース回路912の所で受け取られた転送属性および/またはペイロードデータ919を遅延制御回路1014への制御入力として使用してもよい。たとえば、上記に図5〜図8を参照して説明したマスタポート実施形態と同様に、スレーブポート1000とスレーブユニットとの間を通過したアドレス情報を使用してゲーティング可能なクロック信号935のゲーティングを制御してもよい。いくつかの実施形態では、スレーブユニットは、明示的および/または暗示的な遅延制御情報をスレーブポート1000に渡すように構成されてもよく、スレーブポート1000は、この情報を使用してゲーティング可能なクロック信号935のゲーティングを制御することができる。
【００３０】
図11は、図9を参照して説明したような(同じ参照符号によって示される)各コンポーネントを、ヒステリシスタイマ回路1110と、様々な遅延値を保持するように構成された複数のレジスタ1120と、タイマ1110およびレジスタ1120を制御する制御回路1130とを含む遅延制御回路1114と一緒に含むスレーブポート1100を示している。バストランザクションステータス1131、たとえば、バストランザクションが完了するかまたは完了に近づいたことに応答して、制御回路1130は、タイマ1110に遅延制御信号905をアサートさせてゲーティング可能なバスクロック信号935を有効化状態に維持させてもよい。制御回路1130は、図10を参照して説明した転送属性および/またはペイロードデータのような遅延選択入力1133に従って選択された遅延値を各レジスタ1120からタイマ1110に同時にロードしてもよい。トランザクションが完了すると、タイマ1110は、ロードされた値からカウントを開始し、カウントが特定の状態に達したときに遅延制御信号905をアサート解除することができる。このため、現在未解決のバストランザクションがないときにはゲーティング可能なバスクロック信号935をゲーティングしてもよい。しかし、タイマ1110が特定の状態に達する前に新しいバストランザクションが開始した場合、タイマ1110が中断する。未解決のトランザクションが完了すると、クロックゲーティング遅延プロセスを繰り返すことができ、たとえば、ヒステリシスタイマ1110を再初期化してさらなるクロックゲーティング遅延を再び導入してもよい。さらなる遅延は、直前の遅延と同じであっても、異なっていてもよい。ゲーティング可能なクロック信号935のゲーティングされる期間同士の間にヒステリシスタイマ1110によって導入される連続的な遅延の数を制約してもよい。
【００３１】
図12は、図9を参照して説明したような(同じ参照符号によって示される)各コンポーネントを、スレーブポート1200によって使用すべきクロックゲーティング遅延を暗示的および/または明示的に示すスレーブポートヒステリシス情報1217を受け取るように構成された遅延制御回路121４と一緒に含むスレーブポート1200を示している。たとえば、スレーブポートヒステリシス情報1217は、1つもしくは複数のマスタポートとの通信に関連する転送属性および/または1つもしくは複数のマスタポートによってスレーブポート1200に送られる明示的なヒステリシス要求またはヒステリシスコマンドのような、1つまたは複数のマスタポートからの情報をスレーブポート1200を介して同じスレーブに伝達するプロセスにおいて1つまたは複数のマスタポートによってスレーブポート1200に伝達される情報を含んでもよい。図示のように、遅延制御回路1214は、スレーブポート1200を介して行われた最新のi番目のトランザクションおよび直前のj個のトランザクションに関するスレーブポートヒステリシス情報1216を記憶するように構成されている。たとえば、スレーブポートヒステリシス情報1216は、先入れ先出し(FIFO)バッファに記憶された遅延値(たとえば、クロック周期の数)であってよい。
【００３２】
記憶されたスレーブポートヒステリシス情報1216は、スレーブポート1200を使用して所与のスレーブと通信する複数の異なるマスタポートに関連付けられてもよい。これらの異なるマスタポートは、それぞれの異なるスレーブポートヒステリシス情報をスレーブポート1200に伝達してもよく、たとえば、あるマスタポートが比較的長い所望のクロックゲーティング遅延を使用することをスレーブポート1200に要求するかまたはスレーブポート1200に指示し、一方、別のポートが比較的短い所望のクロックゲーティング遅延を要求するかまたは指示してもよい。遅延制御回路1214は、この変更されたヒステリシス情報をまとめて処理して、ゲーティング可能なクロック信号935にどのクロックゲーティング遅延を適用すべきかを判定してもよい。たとえば、遅延制御回路1214は、記憶された複数のクロックゲーティング遅延値のうちの最大の値に対応するクロックゲーティング遅延をゲーティング可能なクロック信号935に適用して、不要なクロックゲーティングが行われる可能性を低減させてもよい。他の選択基準を適用してもよいこと、および/または記憶されたスレーブポートヒステリシス情報1216の統計的処理またはその他の処理に基づいてクロックゲーティング遅延を生成してもよいことが諒解されよう。
【００３３】
本発明について特に、その例示的な実施形態を参照して図示し説明したが、以下の特許請求の範囲の趣旨および範囲から逸脱せずに形態および詳細面の様々な変更を各実施形態に施せることが理解されよう。
【符号の説明】
【００３４】
110  通信ポート
115  バス
120  クロック生成回路
125  バスクロック信号
210  通信ポート
215  バス
225  ゲーティング可能なクロック信号
230  クロックゲーティング制御回路
231  遅延制御入力
235  クロックゲーティング制御信号
400  回路
410  データ経路指定ファブリック回路
420  マスタポート
430  スレーブポート
500  マスタポート
501  制御入力
505  遅延制御信号
512  バスインターフェース回路
513  ペイロードデータ
514  遅延制御回路
515  クロックゲーティング制御信号
520  マスタ
525  クロックコマンド信号
530  クロックゲーティング回路
535  ゲーティング可能なバスクロック信号
540  バス
700  マスタポート
714  遅延制御回路
800  マスタポート
810  タイマ
820  レジスタ
830  制御回路
831  トランザクションステータス
833  遅延選択入力
900  スレーブポート
901  遅延制御入力
905  遅延制御信号
912  バスインターフェース回路
915  クロックゲーティング制御信号
916  ファブリックインターフェース回路
917  ペイロードデータ
919  ペイロードデータ
920  スレーブユニット
925  コマンド信号
930  クロックゲーティング回路
935  ゲーティング可能なバスクロック信号
940  バス
1000  スレーブポート
1014  遅延制御回路
1100  スレーブポート
1110  ヒステリシスタイマ回路
1114  遅延制御回路
1120  レジスタ
1130  制御回路
1131  バストランザクションステータス
1200  スレーブポート
1214  遅延制御回路
1216、1217  スレーブポートヒステリシス情報
M0、M1、．．．、Mm  マスタユニット
S0、S1、．．．、Sn  スレーブユニット
【図１】
0005629819.tif 000002
【図２】
0005629819.tif 000003
【図３】
0005629819.tif 000004
【図４】
0005629819.tif 000005
【図５】
0005629819.tif 000006
【図６】
0005629819.tif 000007
【図７】
0005629819.tif 000008
【図８】
0005629819.tif 000009
【図９】
0005629819.tif 000010
【図１０】
0005629819.tif 000011
【図１１】
0005629819.tif 000012
【図１２】
0005629819.tif 000013