IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドの特許一覧

特許7651566クロックウェイク抑制を採用するリングトランスポート
<>
  • 特許-クロックウェイク抑制を採用するリングトランスポート 図1
  • 特許-クロックウェイク抑制を採用するリングトランスポート 図2
  • 特許-クロックウェイク抑制を採用するリングトランスポート 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-17
(45)【発行日】2025-03-26
(54)【発明の名称】クロックウェイク抑制を採用するリングトランスポート
(51)【国際特許分類】
   G06F 13/38 20060101AFI20250318BHJP
   G06F 13/42 20060101ALI20250318BHJP
   G06F 13/36 20060101ALI20250318BHJP
   H04L 12/42 20060101ALI20250318BHJP
【FI】
G06F13/38 320Z
G06F13/42 350Z
G06F13/36 530C
H04L12/42 Z
【請求項の数】 22
(21)【出願番号】P 2022521685
(86)(22)【出願日】2020-10-22
(65)【公表番号】
(43)【公表日】2023-01-18
(86)【国際出願番号】 US2020056851
(87)【国際公開番号】W WO2021081196
(87)【国際公開日】2021-04-29
【審査請求日】2023-09-07
(31)【優先権主張番号】16/659,978
(32)【優先日】2019-10-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】ウィリアム エル. ウォーカー
【審査官】田名網 忠雄
(56)【参考文献】
【文献】米国特許出願公開第2017/0063618(US,A1)
【文献】米国特許出願公開第2013/0254145(US,A1)
【文献】米国特許出願公開第2015/0095688(US,A1)
【文献】国際公開第2010/119616(WO,A1)
【文献】特開平11-032067(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/10 - 13/14
G06F 13/20 - 13/42
H04L 12/42
(57)【特許請求の範囲】
【請求項1】
集積回路(IC)デバイスのリングトランスポートのノードにおいて、前記リングトランスポートを周回するようにクロックウェイク信号を送信するために使用されるワイヤを監視することと、
前記ワイヤの監視によって前記リングトランスポートのアイドル条件を識別したことに応じて、第1の指定された期間の間、前記ノードをクロック抑制状態に構成することと、を含み、
前記クロック抑制状態の間、前記ノードは、前記ノードで受信したクロックウェイク信号のさらなる送信を抑制する、
方法。
【請求項2】
前記リングトランスポートの複数のノードの各ノードにおいて、前記ノードでクロックウェイク信号を受信したことに応じて、クロックゲーティング状態からクロック状態に切り替わることをさらに含む、
請求項1の方法。
【請求項3】
前記アイドル条件は、後続のデータパケットの無いクロックウェイク信号が前記ノードで受信された後に、第2の指定された期間が経過することを含む、
請求項1の方法。
【請求項4】
前記第1の指定された期間を、前記リングトランスポートをクロックするために使用されるクロック信号の第1の指定されたクロックサイクル数として構成することであって、前記第1の指定されたクロックサイクル数は、クロックウェイク信号が前記リングトランスポートを一周するのに必要な期間と少なくとも等しい対応する期間を有する、ことと、
前記第2の指定された期間を、前記クロック信号の第2の指定されたクロックサイクル数として構成することと、をさらに含む、
請求項3の方法。
【請求項5】
前記第1の指定された期間が経過したことと、前記クロック抑制状態の間に前記ノードで受信されたデータトラフィックが無いことと、に応じて、前記ノードを、前記ノードで受信したクロックウェイク信号を転送することが許可される休止状態に構成することをさらに含む、
請求項1の方法。
【請求項6】
前記クロック抑制状態の間に、前記ノードで第1のデータパケットを受信したことに応じて、
前記ノードのスキッドバッファの第1のバッファで前記第1のデータパケットをバッファリングすることと、
前記ノードでクロックウェイク信号を生成して、前記リングトランスポートの次のノードに前記クロックウェイク信号を送信することと、
生成されたクロックウェイク信号の送信に続いて、前記第1のバッファから前記次のノードに前記第1のデータパケットを送信することと、をさらに含む、
請求項1の方法。
【請求項7】
前記第1のデータパケットをバッファリングしている間に、前記ノードで第2のデータパケットを受信したことに応じて、
前記スキッドバッファの第2のバッファで前記第2のデータパケットをバッファリングすることと、
前記第1のデータパケットの送信に続いて、前記第2のデータパケットを前記次のノードに送信することと、をさらに含む、
請求項6の方法。
【請求項8】
リングトランスポートを備える集積回路(IC)デバイスであって、
前記リングトランスポートは、
複数のノードと、
前記複数のノードをリング状に結合するワイヤ相互接続であって、前記リングトランスポートを周回するようにクロックウェイク信号を送信するように構成されたワイヤを含むワイヤ相互接続と、
前記複数のノードのうち選択ノードに結合されたスリープコントローラと、を備え、
前記スリープコントローラは、前記ワイヤの監視によって前記リングトランスポートのアイドル条件を識別したことに応じて、第1の指定された期間の間、前記選択ノードをクロック抑制状態に構成し、
前記クロック抑制状態の間、前記ノードは、前記選択ノードで受信したクロックウェイク信号のさらなる送信を抑制する、
集積回路(IC)デバイス。
【請求項9】
前記複数のノードの各ノードは、前記ノードでクロックウェイク信号を受信したことに応じて、クロックゲーティング状態からクロック状態に切り替わるように構成されている、
請求項8のICデバイス。
【請求項10】
前記アイドル条件は、後続のデータパケットの無いクロックウェイク信号が前記選択ノードで受信された後に、第2の指定された期間が経過することを含む、
請求項8のICデバイス。
【請求項11】
前記第1の指定された期間は、前記リングトランスポートをクロックするために使用されるクロック信号の第1の指定されたクロックサイクル数で表され、前記第1の指定されたクロックサイクル数は、クロックウェイク信号が前記リングトランスポートを一周するのに必要な期間と少なくとも等しい対応する期間を有し、
前記第2の指定された期間は、前記クロック信号の第2の指定されたクロックサイクル数で表される、
請求項10のICデバイス。
【請求項12】
前記スリープコントローラは、前記第1の指定された期間が経過したことと、前記クロック抑制状態の間に前記ノードで受信されたデータトラフィックが無いことと、に応じて、前記選択ノードを休止状態に構成し、
前記休止状態の間、前記選択ノードは、前記選択ノードで受信したクロックウェイク信号を転送することが許可される、
請求項8のICデバイス。
【請求項13】
前記クロック抑制状態の間に、前記選択ノードで第1のデータパケットを受信したことに応じて、
前記選択ノードは、
前記選択ノードのスキッドバッファの第1のバッファで前記第1のデータパケットをバッファリングし、
前記選択ノードでクロックウェイク信号を生成して、前記リングトランスポートの次のノードに前記クロックウェイク信号を送信し、
生成されたクロックウェイク信号の送信に続いて、前記第1のバッファから前記次のノードに前記第1のデータパケットを送信する、
請求項8のICデバイス。
【請求項14】
前記第1のデータパケットをバッファリングしている間に、前記選択ノードで第2のデータパケットを受信したことに応じて、
前記選択ノードは、
前記スキッドバッファの第2のバッファで前記第2のデータパケットをバッファリングし、
前記第1のデータパケットの送信に続いて、前記第2のデータパケットを前記次のノードに送信する、
請求項13のICデバイス。
【請求項15】
前記ICデバイスは、プロセッサを含む、
請求項8のICデバイス。
【請求項16】
複数のノード間でデータパケットをトランスポートするように構成されたリングトランスポートであって、各ノードは、クロック信号によって選択的にクロックされ、各データパケットは、前記リングトランスポートにおいてクロックウェイク信号に先行されている、リングトランスポート、を備えるデバイスであって、
前記複数のノードのうち選択ノードは、前記リングトランスポートが第1の指定された期間の間アイドル条件を満たすことに応じて、前記第1の指定された期間に続く第2の指定された期間中に前記選択ノードで受信したクロックウェイク信号を抑制するように構成されている、
デバイス。
【請求項17】
前記複数のノードの各ノードは、前記ノードでクロックウェイク信号を受信したことに応じて、クロックゲーティング状態からクロック状態に切り替わるように構成されている、
請求項16のデバイス。
【請求項18】
前記アイドル条件は、後続のデータパケットの無いクロックウェイク信号が前記選択ノードで受信された後に、第2の指定された期間が経過することを含む、
請求項16のデバイス。
【請求項19】
前記第の指定された期間は、前記クロック信号の第1の指定されたクロックサイクル数で表され、前記第1の指定されたクロックサイクル数は、クロックウェイク信号が前記リングトランスポートを一周するのに必要な期間と少なくとも等しい対応する期間を有し、
前記第の指定された期間は、前記クロック信号の第2の指定されたクロックサイクル数で表される、
請求項18のデバイス。
【請求項20】
クロックウェイク信号を抑制している間に、前記選択ノードで第1のデータパケットを受信したことに応じて、
前記選択ノードは、
前記選択ノードのスキッドバッファの第1のバッファで前記第1のデータパケットをバッファリングし、
前記選択ノードでクロックウェイク信号を生成して、前記リングトランスポートの次のノードに前記クロックウェイク信号を送信し、
生成されたクロックウェイク信号の送信に続いて、前記第1のバッファから前記次のノードに前記第1のデータパケットを送信する、
請求項16のデバイス。
【請求項21】
前記第1のデータパケットをバッファリングしている間に、前記選択ノードで第2のデータパケットを受信したことに応じて、
前記選択ノードは、
前記スキッドバッファの第2のバッファで前記第2のデータパケットをバッファリングし、
前記第1のデータパケットの送信に続いて、前記第2のデータパケットを前記次のノードに送信する、
請求項20のデバイス。
【請求項22】
記デバイスは、プロセッサを含む、
請求項16のデバイス。
【発明の詳細な説明】
【背景技術】
【0001】
集積回路(IC)デバイスは、多くの場合、リングトランスポートを使用して、リングトランスポートに接続された様々なコンポーネント間でデータ及びコマンドを通信する。一般的なリングトランスポート構成では、リングトランスポートにおいて、各パケットに1クロックサイクル以上先行するクロックウェイク信号が使用される。リングトランスポートのノードでクロックウェイク信号を受信すると、後続のパケットの受信に備えてステージをアクティブにするように機能する。ただし、このようなクロックウェイク信号は、リングトランスポートを無限に周回することが多く、最終的には各ノードが常時クロックされる。これにより、ノードが低電力モードに移行することを抑制し、リングトランスポートが過剰な電力を消費することになる。
【0002】
本開示は、添付図面を参照することによって、より良く理解することができ、その多くの特徴及び利点が当業者に明らかになる。異なる図面で同一の符号が使用されている場合には、類似又は同一のアイテムを示す。
【図面の簡単な説明】
【0003】
図1】本開示のいくつかの実施形態による、スリープコントローラを備えたダブルバッファリングトランスポートを有する集積回路(IC)デバイスを示すブロック図である。
図2】本開示の実施形態による、図1のリングトランスポートのノード及びスリープコントローラをより詳細に示す図である。
図3】本開示のいくつかの実施形態による、図1及び図2のスリープコントローラの動作を表す状態図の一部を表す方法を示すフロー図である。
【発明を実施するための形態】
【0004】
リングトランスポートのコンポーネントのクロック分配は、多くの場合、かなりの電力を消費し、この電力消費は、誤ったクロックウェイク信号がリングトランスポートを無限に周回する従来の実施形態によって悪化し、リングトランスポートがクロックウェイク信号で満たされ、したがって、連続的にクロックされることにつながる。以下の開示は、リングトランスポートを通過する誤ったクロックウェイク信号を抑制する、又は、「潰す(squash)」ように機能するスリープコントローラの実装を通じて、リングトランスポートの電力消費を低減するためのシステム及び技術を説明する。これらの誤ったクロックウェイク信号を抑制する際に、リングトランスポートのノードを非クロック状態に切り替えることができるため、リングトランスポートがアイドル状態の場合にノードの消費電力を低減することができる。
【0005】
少なくとも1つの実施形態では、リングトランスポートは、制御シグナリングのためのワイヤと、データシグナリングのためのワイヤと、を含む複数のワイヤから構成されるワイヤ相互接続を介してリング状に接続された複数のノードを含む。スリープコントローラは、選択ノードに接続されており、ノードで受信されたクロックウェイク信号の転送又は「リピート」に関するノードの動作を制御するように動作する。スリープコントローラは、クロックウェイク信号及びデータパケットについて、制御されるノードのワイヤ相互接続を監視する。ノードがデータトラフィックを受信せずに指定されたアイドル期間が経過すると、スリープコントローラは、ノードをアクティブなクロック抑制状態に構成する。この状態では、ノードは、受信したクロックウェイク信号を抑制するように(すなわち、受信したクロックウェイク信号の転送を控えるように)制御される。少なくとも1つの実施形態では、スリープコントローラは、リングトランスポートを通過する誤ったクロックウェイク信号をクリアするのに十分な期間、ノードをこのクロック抑制状態に維持する。クロック抑制状態の指定された期間が経過すると、スリープコントローラは、休止状態に移行し、休止状態では、ノードは、新たに受信したクロックウェイク信号の転送が許可され、クロックウェイク信号の後にデータパケットが続く場合、スリープコントローラは、アクティブ状態に戻り、ノードはアクティブ動作を実施するように制御される。
【0006】
このように、スリープコントローラは、制御されるノードを介して、アイドル期間後にリングトランスポートから誤ったクロックウェイク信号をアクティブにクリアするように機能し、次に、リングトランスポートに現れる新たなクロックウェイク信号にノードが反応できる状態に戻り、これは、リングトランスポートでのデータトラフィックの再開を示し得る。このアクティブなクロックウェイク信号抑制により、リングトランスポートは、誤ったクロック信号がない場合に実際のアイドル状態に切り替わることが可能になり、したがって、このアイドル状態の間、ノードは、非クロック状態を維持することができ、電力もそれに見合って低減される。
【0007】
図1は、いくつかの実施形態による、アクティブなクロックウェイク抑制を採用するリングトランスポート102を有する集積回路(IC)デバイス100を示す図である。ICデバイス100は、システムオンチップ(SoC)、特定用途向け集積回路(ASIC)等の単一のICチップ、又は、マルチチップモジュール(MCM)等のように共通の基板、回路基板若しくは他のキャリアに搭載された複数のICチップを含み得る。ICデバイス100の例には、中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)、加速処理装置(APU)、デジタル信号プロセッサ(DSP)、他のプロセッサ、及び、1つ以上のICチップに通常実装される他のシステムが含まれる。
【0008】
リングトランスポート102は、図示した4つのノード104-1~104-4等のように、ワイヤ相互接続106を介してリング形状に接続された複数のノード104を含み、それによって、制御及びデータシグナリングが、単方向リング実装の場合には一方向(例えば、時計回り方向108)に、双方向リング実装の場合には何れかの方向にノードからノードに送信される。この制御及びデータシグナリングは、1つのノード104で消費又は抑制されるまで、リング形状を周回し続ける。各ノード104は、ノード104-1~104-4にそれぞれ接続されたコンポーネント110-1~110-4等のような、ICデバイス100の1つ以上のコンポーネント110に接続される。これらのコンポーネント110は、1つ以上の他のノード104に送信するために、対応するノード104を介してデータトラフィックをリングトランスポート102に注入する、又は、他のノード104からリングトランスポート102によって送信されるデータトラフィックを消費する、の一方又は両方を行うように動作する。コンポーネント110は、処理要素、ストレージ要素、バス又はインタフェース要素、入力/出力デバイス要素等のように、ICデバイス100の様々な要素の何れかを含む。
【0009】
ノード104及びコンポーネント110は、クロック分配ツリー114を介してノード104及びコンポーネント110間に分配されるリングクロック信号112(本明細書では「RING_CLK」112とも呼ばれる)に基づいてクロックされる。リングクロック信号112は、例えば、ICデバイス100のシステムクロック、又は、それから派生したリングトランスポート102に固有のクロックであってもよい。リングトランスポート102及び関連するコンポーネント110がアクティブのままであり、したがってICデバイス100に少なくとも最小限の電力が供給されている間クロックされる場合、クロック分配ツリー114及びそのクロックシンクによってかなりの電力が消費される。この不必要な電力消費を回避するために、リングトランスポート102は、RING_CLK112によってクロックされるノード104及びコンポーネント110が、リングトランスポート102上のデータパケットの送信間でクロックゲーティングされるクロックウェイクスキームを採用する。したがって、ノードがリングトランスポート102でデータパケットを送信する準備をしている場合、ノードは、データパケットを表すシグナリングより所定のクロックサイクル数(例えば、1クロックサイクル)だけ先にクロックウェイク信号116(本明細書では「CLK_EN」116とも呼ばれる)を挿入する。したがって、クロックウェイク信号116を受信したノード104は、ノード104及びその関連する1つ以上のコンポーネント110でクロックゲーティングを非アクティブにすることによって、クロックゲーティング状態からクロック状態に切り替えることによって応答し、クロックウェイク信号116に続いてデータパケットを受信して処理する準備ができる。
【0010】
そのようなクロックウェイクシグナリングの使用は、ノード104がデータパケット間の低電力のクロックゲーティングアイドル状態の使用を容易にしながら、アップストリームからのデータトラフィックを直前の通知で受信することを可能にするが、そうでなければ、クロックウェイクシグナリングは、リングトランスポート102全体がクロックされ続けることになることが多く、それによって、低電力アイドル状態に決して移行することができない。説明すると、受信ノードは、所定のデータパケットが次のノードで消費中であると判断できない限り、所定のクロックウェイク信号をそれ以上伝搬すべきでないと次のノードに通知することができない。このように、データパケットに先行するクロックウェイク信号は、後続のデータパケットが消費されて削除された後もリングトランスポートに残る可能性があり、したがって、リングトランスポート102は、最終的にクロックウェイク信号で「満たされる」ことになり、その結果、実質的に、リングトランスポート102が継続的にクロックされる。この誤ったクロックウェイクシグナリングの1つの解決策は、追加のワイヤとロジックとを実装して、所定のノードにおいて、受信したデータパケットが次のノードで消費され、それ以上伝搬されないかどうかを計算できるようにすることと、より高速な回路とワイヤとを使用して、そのインジケータを、クロックを有効にするのに間に合うようにより迅速に次のノードに送ることである。しかし、そのようなワイヤとロジックは、現実的でない場合が多く、クロックウェイクスキームによって達成可能な電力節約を打ち消すほど電力を消費する。
【0011】
各ノードでの追加の高電力配線及びロジックに依存することなく、誤ったクロックウェイクシグナリングの影響を軽減するために、少なくとも1つの実施形態では、リングトランスポート102は、ノード104のうち選択されたノード(例えば、図示した例ではノード104-1)において、スリープコントローラ118を採用する。少なくとも1つの実施形態では、スリープコントローラ118は、関連するノード104-1でのアイドル条件に応じてアクティブなクロック抑制状態に移行するように動作する。このアイドル条件は、例えば、ノード104-1が指定された期間の間アイドル状態であることを含む。このアクティブなクロック抑制状態では、有効なデータパケットが受信されるか、又は、指定された期間が経過するまで、スリープコントローラ118は、受信したクロックウェイク信号116の転送を抑制するように、すなわち、受信したクロックウェイク信号116を「潰す」ようにノード104-1を制御する。アクティブなクロック抑制状態の間に有効なデータパケットが受信されると、スリープコントローラ118は、受信したクロックウェイク信号116を抑制するためのノード104-1の制御を停止し、通常のアクティブ状態に移行する。指定された期間が経過すると、スリープコントローラ118は、休止状態に移行し、ノード104-1は、受信したクロックウェイク信号116をアクティブに抑制するように制御されなくなり(すなわち、ノード104-1は、クロックウェイク信号116を転送することが許可され)、したがって、ノード104-1は、クロックウェイク116及び後続のデータパケットに迅速に応答してアクティブ状態に戻ることができる。このアプローチでは、ノード104-1でクロックウェイク信号116を指定された期間、アクティブに抑制すると、ノード104-1及びスリープコントローラ118は、リングトランスポート102から誤ったクロックウェイク信号116を除去して、休止状態に移行することができる。休止状態では、受信される次のクロックウェイク信号116がデータパケットに先行する有効なクロックウェイク信号116でなければならず、したがって、リングトランスポート102がアクティブなデータ送信に戻ったことをシグナリングする。
【0012】
図2は、いくつかの実施形態による、図1のリングトランスポート102のノード104-1及びスリープコントローラ118の実施形態をより詳細に示す図である。説明を容易にするために、ノード104-1及びスリープコントローラ118は、時計回り方向108にシグナリングを送信する単方向リング構成で示されている(図1)。双方向リング構成の場合、以下に説明するコンポーネント及び動作が、反対方向(例えば、反時計回り)に移動する制御及びデータシグナリングのために複製されることが理解されよう。
【0013】
一実施形態では、ワイヤ相互接続106は、制御シグナリング用のワイヤ及びデータシグナリング用のワイヤを含む、複数のワイヤ(一般に、トレース、リード、導線等とも呼ばれる)を含む。データシグナリング用のワイヤは、データパケットのK個のデータビット(ビットD0~DK-1)(K>=1)を並列に伝送するためのK本のデータワイヤ202、又は、差分シグナリング実装のための2×K本のデータワイヤ202を含む。制御シグナリング用のワイヤは、データパケット用のK本のデータワイヤ上のデータの挿入と併せて、データワイヤ202の状態が有効なデータを表すことを通知するようにアサートされるVALID信号を伝送する有効ワイヤ204を含む。制御シグナリング用のワイヤは、データワイヤ202への対応するデータパケットの挿入より指定のクロックサイクル数(例えば、1クロックサイクル)前にクロックウェイク信号116(例えば、CLK_ENワイヤ206のパルス又は他の一時的なアサーション)を通信するためのCLK_ENワイヤ206をさらに含む。ノード104-1を含むノード104は、ノード104の入力部で受信されたワイヤ相互接続106のシグナリングをバッファリング、増幅及び転送するように機能するリピータ205を実装する。一実施形態では、リピータ205は、各デジタルバッファ208とのワイヤ相互接続のワイヤ毎に1つずつの複数のデジタルバッファ208として実装され、それぞれ、ノード104の入力側の対応するアップストリームワイヤセグメントに接続された入力部と、ノード104の出力側の対応するダウンストリームワイヤセグメントに接続された出力部と、を有する。ワイヤ毎の単一デジタルバッファの実装が示されているが、リピータ205は、本明細書に提供されるガイドラインを使用して、他の回路構成を使用して実装することができる。ノード104の各々は、ノード104の(図に示すように)入力側又は出力側に配置されたスキッドバッファ212をさらに含む。スキッドバッファ212は、デュアルバッファ214,216と、多重化/逆多重化回路218,220と、コントローラ224と、を含み、データワイヤ202で受信された着信データパケットをダウンストリームに転送するためにバッファリングするように動作する。デュアルバッファ214,216により、スキッドバッファ212は、以前に受信したデータパケットが後続のダウンストリーム送信のために処理されている間、着信データパケットをバッファリングすることができる。
【0014】
各ノード104は、ノードのワイヤ相互接続106とそのノードの1つ以上のコンポーネント110との間のインタフェースとして機能するノードインタフェース225をさらに含む。ノードインタフェース225は、ワイヤ相互接続106の様々なワイヤに結合され、コンポーネント110から受信されたデータパケットをダウンストリームノードに送信するためにリングトランスポート102内に注入するように動作し、同時に、注入されたデータパケットに先行するクロックウェイク信号116と、データワイヤ202の状態が有効なデータを表すことを示すのに使用される有効なシグナリングと、を提供するようにCLK_ENワイヤ206及び有効なワイヤ204を制御する。受信側では、ノードインタフェース225は、CLK_ENワイヤ206の入力側でクロックウェイク信号116を受信するように動作し、それに応じて、ノード104又は1つ以上のコンポーネント110でリングクロック信号112に適用されているクロックゲーティングを非アクティブにすることによって、ノード104及び1つ以上のコンポーネント110は、クロックウェイク信号116の受信に続くことが予測されるデータパケットの受信に間に合うようにアクティブにされ、クロックされる。そのようなデータパケットが続く場合、ノードインタフェース225は、データパケットがノードに関連するコンポーネント110を対象としているかどうかを判断し、対象としている場合に、データパケットのデータのコピーを対象のコンポーネント110に提供するように動作する。
【0015】
スリープコントローラ118を参照すると、一実施形態では、このコンポーネントは、ステートマシン226と、リングクロック信号112又はそこから派生したクロックによってクロックされる、アイドルタイマ228及び抑制タイマ230と、を含むカウントダウンタイマのセットとを含む。ステートマシン226は、ハードコードされたロジック、プログラマブルロジック、ファームウェア若しくはハードウェアを実行するプロセッサ、又は、それらの組み合わせを使用して実装される。ステートマシン226は、ノード104-1でクロックウェイク信号116の受信を監視するためにCLK_ENワイヤ206の入力側に結合された入力部と、ノード104-1で有効なデータパケットの受信を監視するために有効なワイヤ204の入力側に結合された入力部(有効なワイヤ204のアサーションが、データワイヤ202によって通知された「データ」が有効であることを通知することを呼び出す)と、CLK_ENワイヤ206のデジタルバッファ208の制御に使用されるスリープ信号232を提供する出力部と、を有し、その結果、スリープ信号232がアサートされ(すなわち、SLEEP=1)、有効な着信データパケットがない(すなわち、VALID=0)場合、この状態の間、デジタルバッファ208を実質的に無効にし、受信したクロックウェイク信号116をリピートしない(すなわち、受信したクロックウェイク信号116を抑制又は「潰す」)。図示した実施形態では、この構成は、CLK_ENワイヤ206のアップストリームセグメントとデジタルバッファ208の入力部との間に配置されたANDゲート234を使用して実装され、それによって、ANDゲート234は、スリープ信号232の反転表現を受信する反転入力部と、CLK_ENワイヤ206のアップストリームセグメントに結合された入力部と、CLK_ENワイヤ206のデジタルバッファ208の入力部として働く出力部と、を有する。他の実施形態では、本明細書で提供される教示に従って、異なるロジック実装が使用される。
【0016】
ノード104-1の動作を制御する際のステートマシン226の動作は、図示した状態図240によって表され、アクティブ状態242と、アイドル状態244と、クロック抑制状態246と、休止状態248と、の4つの動作状態を含む。ステートマシン226は、上記のようにCLK_ENワイヤ206と有効なワイヤ204とを監視して、クロックウェイク信号116(CLK_EN)の存在と、ノード104-1を通過するデータトラフィックと、を検出する。アクティブなデータトラフィックがある間、ステートマシン226はアクティブ状態242のままであり、その間、スリープ信号232がアサート(又はデアサート)されず、したがって、受信されたクロックウェイク信号116は、リピータ205によって転送されることが許可される。クロックウェイク信号116が後続のデータパケット無しで受信された場合、ステートマシン226はアイドル状態244に移行する。アクティブ状態242と同様に、アイドル状態では、スリープ信号232がアサートされないため、受信したクロックウェイク信号116をダウンストリームノードに転送することができる。(ノード104-1で如何なるデータトラフィックも受信せずにアイドルタイマ228によって測定された)アイドル状態244の第1の指定された期間が経過した後等のように指定されたアイドル条件が生じた後に、ステートマシン226は、クロック抑制状態246に移行する。クロック抑制状態246の間、スリープコントローラ118は、ノード104-1で受信されたクロックウェイク信号116を、スリープ信号232をアサートすることによってアクティブに抑制し、それによって、CLK_ENワイヤ206のデジタルバッファ208を実質的に無効にする。これにより、リピータ205がノード104-1の入力側で受信した受信クロックウェイク信号116をリピートするのを防ぐ。
【0017】
データトラフィックがノード104-1で受信されない限り、(抑制タイマ230を介して測定された)第2の指定された期間の間、ステートマシン226は、クロック抑制状態246のままである。この第2の指定された期間は、一実施形態では、リングトランスポート102に存在する誤ったクロックウェイク信号116がノード104-1に到達し、その後、休止状態248に移行する前に抑制されるのを可能にするように予測される期間を表すように選択又は他の方法で指定される。クロック抑制状態246の間に、第2の指定された期間が経過する前にデータトラフィックが受信された場合、ステートマシン226はアクティブ状態に戻る。そうでない場合、休止状態248にある間、ノード104-1がクロックゲーティング状態に切り替わり、ステートマシン226は、リピータ205によって受信されたクロックウェイク信号116のダウンストリーム伝搬を可能にするように、スリープ信号232をデアサートする。クロックウェイク信号116が受信され、データパケットが続く場合、ステートマシン226はアクティブ状態242に戻る。クロックウェイク信号116が受信され、データパケットが続かない場合、ステートマシン226はアイドル状態244に戻る。
【0018】
図3は、いくつかの実施形態による、スリープコントローラ118によって実施されるステートマシン226のアイドル状態からクロック抑制状態、休止状態への遷移を説明する方法300を示す図である。一定のブロックが図3に所定の順序で示されているが、これらのブロックによって表されるプロセスは、同時に又は異なる順序で実行できることに留意されたい。ブロック302は、データパケットが続かないクロックウェイク信号116の受信を検出した後に、ステートマシン226がアイドル状態244に移行することを表す。アイドル状態244に移行したことに応じて、ブロック304で、ステートマシン226は、アイドルタイマ228を、第1の指定された期間を表す値Mにリセットする。第1の指定された期間は、固定又はプログラム可能であってもよく、リングトランスポート102の動作のモデリングから等の様々な考慮事項の何れかに基づいて、又は、リングトランスポート102の実際の動作中のリアルタイムフィードバックに基づいて、指定される。次に、アイドルタイマ228は、リングクロック信号112のサイクル毎にMからカウントダウンする。アイドルタイマ228の経過中、ブロック306で、ステートマシン226は、ノード104-1でのデータパケットの受信を監視する。データパケットが受信されると、ブロック308で、ステートマシン226はアクティブ状態242に戻る。そうでない場合、アイドル状態244に移行した後にMサイクル経過した(すなわち、アイドルタイマ228が経過した)とブロック310で判断されると、ステートマシン226は、ブロック312でクロック抑制状態246に移行する。
【0019】
クロック抑制状態に移行したことに応じて、ブロック314で、ステートマシン226は、抑制タイマ230を、固定又はプログラム可能な第2の指定された期間を表す値Nにリセットする。少なくとも1つの実施形態では、値Nは、リングトランスポート102に存在する誤ったクロックウェイク信号116が全てノード104-1で抑制されるのを可能にするのに十分な(クロックサイクルで測定される)時間として設定される。説明すると、クロックウェイク信号116がリングトランスポート102の回路を完了するのに20クロックサイクル要する場合、値Nは、リングトランスポート102上の任意の所定の誤ったクロックウェイク信号116がノード104-1に到達して、抑制されることができるのに十分な時間を与えるように、例えば22等のように20より少し大きい値に設定することができる。値Nにリセットされると、抑制タイマ230は、リングクロック信号112のサイクル毎にNからカウントダウンされる。
【0020】
さらに、クロック抑制状態246に移行したことに応じて、ステートマシン226は、ブロック316でスリープ信号232をアサートする。次に、スリープ信号232のアサートは、任意の受信したクロックウェイク信号116をリピートしないようにCLK_ENワイヤ206上のデジタルバッファ208を構成し、したがって、クロック抑制状態246の間、ノード104-1で受信された誤ったクロックウェイク信号116を潰す又は抑制する。
【0021】
判別ブロック318で表されるように、ステートマシン226は、抑制タイマ230の経過(すなわち、クロック抑制状態246に移行してからNクロックサイクルが経過したかどうか)を監視する。抑制タイマ230が経過すると、ブロック320で、ステートマシン226は休止状態248に移行し、スリープ信号232をデアサートする。スリープ信号232が休止状態248でデアサートされると、デジタルバッファ208がアクティブにされ、アップストリームノード104から受信したクロックウェイク信号116をダウンストリームノード104に転送することができる。したがって、ブロック322で、ステートマシン226は、ノード104-1でデータパケットの受信を監視し、ブロック324で、ステートマシン226は、後続のデータパケットが無いクロックウェイク信号116の受信を監視する。休止状態248の間にノード104-1でデータパケットを受信すると、ステートマシン226は、ブロック308でアクティブ状態242に戻る。休止状態248の間に、後続データパケットの無いクロックウェイク信号116がノード104-1で受信されると、ステートマシンは、ブロック302でアイドル状態244に戻る。
【0022】
ブロック318に戻ると、クロック抑制状態246の間で、第2の指定期間が経過していない間、ステートマシン226は、ブロック326でデータパケットの受信を監視する。アクティブ状態、アイドル状態及び休止状態では、アクティブなクロックウェイク信号抑制がないことに留意されたい。このように、これらの状態のうち何れかでデータパケットがノード104-1で受信されると、データパケットに先行するクロックウェイク信号がリピータ205によって転送され、次に、受信データパケットが通常通り次のクロックサイクルで処理される。ただし、クロック抑制状態246では、ノード104-1でクロックウェイク信号が抑制される。したがって、データパケットがブロック326のノード104-1で受信されたと検出された場合には、データパケットに先行するクロックウェイク信号が抑制されたことを意味し、したがって、データパケットを処理するリピートされたクロックウェイク信号がないので、データパケットがすぐに処理することができず、ダウンストリームに送信できない。代わりに、ノード104-1は、ダウンストリームノード104-2に向けてリピートされるデータパケットに先行する新しいクロックウェイク信号116を生成する。
【0023】
したがって、クロック抑制状態246中、データパケットの受信に応じて、データパケットは、ブロック328でスキッドバッファ212のデュアルバッファ214,216のうち何れかにバッファリングされ、スリープ信号232は、ブロック330で、CLK_ENワイヤ206上のトライステートデジタルバッファ208を再度アクティブにするようにデアサートされ、ブロック332で、ステートマシン226は、トライステートデジタルバッファ208によって、CLK_ENワイヤ206を介してダウンストリームノード104-2に送信するためのクロックウェイク信号116を生成する。クロックウェイク信号116の生成に続くクロックサイクルの間、ブロック334で、スキッドバッファは、データワイヤ202上でバッファリングされたデータパケットを出力し、生成されたクロックウェイク信号の後、データパケット及び有効な信号をダウンストリームに転送するように有効なワイヤ204をアサートする。さらに、データパケットをリピートできる前に抑制されたクロックウェイク信号116を再生成する必要によって引き起こされる遅延があるので、別のデータパケットがこのプロセス中に受信される可能性がある。したがって、スキッドバッファ212は、他のバッファを利用して、第1の受信パケットが送信されるまでこの第2の受信データパケットを一時的に記憶し、第1の受信パケットが送信された時点で、第2のデータパケットを次のノード104-2に同様に転送するために提供することができる。
【0024】
いくつかの実施形態では、上記の装置及び技術は、図1図3を参照して記載したICデバイス100等のように、1つ以上の集積回路(IC)デバイス(集積回路パッケージ又はマイクロチップとも呼ばれる)を含むシステムに実装される。これらのICデバイスの設計及び製造には、電子設計自動化(EDA)及びコンピュータ支援設計(CAD)ソフトウェアツールが使用される。これらの設計ツールは、通常、1つ以上のソフトウェアプログラムとして表される。1つ以上のソフトウェアプログラムは、回路を製造するための製造システムを設計又は適合するための処理の少なくとも一部を実行するように1つ以上のICデバイスの回路を表すコードで動作するようにコンピュータシステムを操作する、コンピュータシステムによって実行可能なコードを含む。このコードは、命令、データ、又は、命令及びデータの組み合わせを含むことができる。設計ツール又は製造ツールを表すソフトウェア命令は、通常、コンピューティングシステムがアクセス可能なコンピュータ可読記憶媒体に記憶される。同様に、ICデバイスの設計又は製造の1つ以上のフェーズを表すコードは、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体に記憶されてもよいし、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体からアクセスされてもよい。
【0025】
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。このような記憶媒体には、限定されないが、光学媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)若しくはキャッシュ)、不揮発性メモリ(例えば、読取専用メモリ(ROM)若しくはフラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体(例えば、システムRAM又はROM)はコンピューティングシステムに内蔵されてもよいし、コンピュータ可読記憶媒体(例えば、磁気ハードドライブ)はコンピューティングシステムに固定的に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)はコンピューティングシステムに着脱可能に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、ネットワークアクセス可能ストレージ(NAS))は有線又は無線ネットワークを介してコンピュータシステムに結合されてもよい。
【0026】
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行するプロセッシングシステムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行されると、上記の技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ、キャッシュ、ランダムアクセスメモリ(RAM)等のソリッドステート記憶デバイス、又は、他の1つ以上の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
【0027】
一態様によれば、方法は、集積回路(IC)デバイスのリングトランスポートのノードにおいて、リングトランスポートの周囲にクロックウェイク信号を送信するために使用されるワイヤを監視することを含む。この方法は、ワイヤの監視を介してリングトランスポートのアイドル条件を識別したことに応じて、第1の指定された期間、ノードをクロック抑制状態に構成することをさらに含み、クロック抑制状態にある間、ノードは、ノードで受信したクロックウェイク信号のさらなる送信を抑制する。いくつかの実施形態では、この方法は、リングトランスポートの複数のノードの各ノードにおいて、ノードでクロックウェイク信号を受信したことに応じて、クロックゲーティング状態からクロック状態に切り替えることをさらに含む。
【0028】
別の態様によれば、ICデバイスは、複数のノードを有するリングトランスポートと、複数のノードをリング状に結合するワイヤ相互接続と、を含み、ワイヤ相互接続は、リングトランスポートの周囲にクロックウェイク信号を送信するように構成されたワイヤを含む。リングトランスポートは、複数のノードのうち選択ノードに結合されたスリープコントローラをさらに含み、スリープコントローラは、ワイヤの監視によってリングトランスポートのアイドル条件を識別したことに応じて、第1の指定された期間、選択ノードをクロック抑制状態に構成し、クロック抑制状態中、ノードは、選択ノードで受信したクロックウェイク信号のそれ以上の送信を抑制する。いくつかの実施形態では、複数のノードの各ノードは、ノードでクロックウェイク信号を受信したことに応じて、クロックゲーティング状態からクロック状態に切り替わるように構成される。さらに、いくつかの実施形態では、アイドル条件は、後続のデータパケットの無いクロックウェイク信号が選択ノードで受信された後に、第2の指定された期間が経過することを含む。さらに、いくつかの実施形態では、第1の指定された期間は、リングトランスポートをクロックするために使用されるクロック信号の第1の指定されたクロックサイクル数によって表され、第1の指定されたクロックサイクル数は、クロックウェイク信号がリングトランスポートを周回するために必要な期間に少なくとも等しい対応する期間を有し、第2の指定された期間は、クロック信号の第2の指定されたクロックサイクル数で表される。さらに、いくつかの実施形態では、スリープコントローラは、第1の指定された期間の経過及びクロック抑制状態にある間に選択ノードで受信されたデータトラフィックが無いことに応じて、選択ノードを休止状態に構成し、休止状態にある間、選択ノードは、選択ノードで受信したクロックウェイク信号を転送することを許可される。
【0029】
さらに別の態様によれば、デバイスは、複数のノード間でデータパケットをトランスポートするように構成されたリングトランスポートを含み、各ノードはクロック信号によって選択的にクロックされ、各データパケットはリングトランスポートでクロックウェイク信号によって先行される。複数のノードのうち選択ノードは、リングトランスポートが第1の指定された期間アイドル状態であることに応じて、第1の指定された期間に続く第2の指定された期間中に選択ノードで受信したクロックウェイク信号を抑制するように構成される。
【0030】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0031】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。
図1
図2
図3