特許第6100340号(P6100340)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ インテル コーポレイションの特許一覧

特許6100340リンクレイヤ信号同期のための装置、方法及びコンピュータプログラム
<>
  • 特許6100340-リンクレイヤ信号同期のための装置、方法及びコンピュータプログラム 図000002
  • 特許6100340-リンクレイヤ信号同期のための装置、方法及びコンピュータプログラム 図000003
  • 特許6100340-リンクレイヤ信号同期のための装置、方法及びコンピュータプログラム 図000004
  • 特許6100340-リンクレイヤ信号同期のための装置、方法及びコンピュータプログラム 図000005
  • 特許6100340-リンクレイヤ信号同期のための装置、方法及びコンピュータプログラム 図000006
  • 特許6100340-リンクレイヤ信号同期のための装置、方法及びコンピュータプログラム 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6100340
(24)【登録日】2017年3月3日
(45)【発行日】2017年3月22日
(54)【発明の名称】リンクレイヤ信号同期のための装置、方法及びコンピュータプログラム
(51)【国際特許分類】
   H04L 7/00 20060101AFI20170313BHJP
   G06F 1/12 20060101ALI20170313BHJP
【FI】
   H04L7/00 500
   G06F1/12 510
【請求項の数】22
【外国語出願】
【全頁数】16
(21)【出願番号】特願2015-200721(P2015-200721)
(22)【出願日】2015年10月9日
(65)【公開番号】特開2016-96537(P2016-96537A)
(43)【公開日】2016年5月26日
【審査請求日】2015年11月19日
(31)【優先権主張番号】14/537,618
(32)【優先日】2014年11月10日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】593096712
【氏名又は名称】インテル コーポレイション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(74)【代理人】
【識別番号】100112759
【弁理士】
【氏名又は名称】藤村 直樹
(72)【発明者】
【氏名】マーク エス. ビリッテルラ
【審査官】 森谷 哲朗
(56)【参考文献】
【文献】 特開平05−130094(JP,A)
【文献】 特開2003−143117(JP,A)
【文献】 国際公開第2009/081472(WO,A1)
【文献】 特開平05−260029(JP,A)
【文献】 特開2000−353027(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/00
G06F 1/12
(57)【特許請求の範囲】
【請求項1】
リンクレイヤ信号同期のための装置であって、
リンクレイヤの送信ドメインにおける第1周波数を有する送信クロック及び前記リンクレイヤの受信ドメインにおける第2周波数を有する受信クロックに対して、コアクロック周波数を有する前記装置のコアクロックを比較し前記の比較の結果に基づいて、同期したリンク転送送信クロック及び同期したリンク転送受信クロックをそれぞれ生成するクロック同期論理部と
前記同期したリンク転送送信クロックを利用して前記装置から他の装置へ第1データを送信する送信論理部と、
前記同期したリンク転送受信クロックを利用して前記装置に関する第2データを前記他の装置から受信する受信論理部と
を有し、前記クロック同期論理部は、前記送信クロックの正エッジの検出に基づいて第1ゲーティングデバイスにイネーブル信号を出力することに基づいて前記同期したリンク転送送信クロックを生成し、前記受信クロックの正エッジの検出に基づいて第2ゲーティングデバイスにイネーブル信号を出力することに基づいて前記同期したリンク転送受信クロックを生成する、装置。
【請求項2】
前記コアクロック周波数が、前記第1及び第2周波数と異なる、請求項1に記載の装置。
【請求項3】
前記装置はリンク転送論理部を更に有し、前記クロック同期論理部は前記リンク転送論理部に関連付けられ、前記リンク転送論理部は前記送信論理部と前記受信論理部とを有する、請求項1に記載の装置。
【請求項4】
前記送信論理部はメモリバッファと前記メモリバッファに結合されるシリアライザ(SerDes)とを有し、前記メモリバッファは先入れ先出し(FIFO)メモリデバイスを有する、請求項3に記載の装置。
【請求項5】
前記送信クロックは前記第1周波数を有するSerDesクロックを有し、前記送信論理部は、前記同期したリンク転送送信クロックに従って前記第1データを前記メモリバッファに提供し、前記送信クロックに従って前記メモリバッファからの前記第1データを前記SerDesへ転送する、請求項4に記載の装置。
【請求項6】
前記受信論理部はメモリバッファと前記メモリバッファに結合されるデシリアライザ(SerDes)とを有する、請求項3に記載の装置。
【請求項7】
前記受信クロックは前記第2周波数を有するSerDesクロックを有し、前記受信論理部は、前記受信クロックに従って前記SerDesから前記メモリバッファへ前記第2データを提供し、前記同期したリンク転送受信クロックに従って前記メモリバッファからの前記第2データを転送する、請求項6に記載の装置。
【請求項8】
前記メモリバッファは先入れ先出し(FIFO)メモリデバイスを有する、請求項7に記載の装置。
【請求項9】
前記クロック同期論理部は、前記第1ゲーティングデバイスと前記第1ゲーティングデバイスに結合される正エッジ検出部とを更に有し、前記クロック同期論理部は、前記正エッジ検出部の入力のために前記送信クロックを提供し、及び、前記正エッジ検出部と前記第1ゲーティングデバイスとの入力のために前記コアクロックを提供する、請求項1に記載の装置。
【請求項10】
前記正エッジ検出部は、前記正エッジの不存在に基づいて前記イネーブル信号をキャンセルする、請求項9に記載の装置。
【請求項11】
前記第1ゲーティングデバイスは、前記イネーブル信号の存否に基づいて前記コアクロックを修正し、前記同期したリンク転送送信クロックを提供するように修正されたコアクロックを出力する、請求項10に記載の装置。
【請求項12】
前記クロック同期論理部は、前記第2ゲーティングデバイスと前記第2ゲーティングデバイスに結合される正エッジ検出部とを更に有し、前記クロック同期論理部は、前記正エッジ検出部の入力のために前記受信クロックを提供し、及び、前記正エッジ検出部と前記第2ゲーティングデバイスとの入力のために前記コアクロックを提供する、請求項1に記載の装置。
【請求項13】
前記正エッジ検出部は、前記正エッジの不存在に基づいて前記イネーブル信号をキャンセルする、請求項12に記載の装置。
【請求項14】
前記第2ゲーティングデバイスは、前記イネーブル信号の存否に基づいて前記コアクロックを修正し、前記同期したリンク転送受信クロックを提供するように修正されたコアクロックを出力する、請求項13に記載の装置。
【請求項15】
前記装置は、コンピュータシステムの相互接続ファブリックのリンクレイヤのスイッチを有する、請求項1ないし14のうち何れか1項に記載の装置。
【請求項16】
前記装置は、コンピュータシステムの相互接続ファブリックのホストファブリックインタフェース(HFI)デバイスを有する、請求項1に記載の装置。
【請求項17】
前記HFIデバイスは、前記コンピュータシステムの中央処理ユニット(CPU)と同じダイに共存する、請求項16に記載の装置。
【請求項18】
前記HFIデバイスは、前記コンピュータシステムの中央処理ユニット(CPU)とは異なるダイに存在し、及び、前記コンピュータシステムの前記CPUと同じパッケージ内に存在する、請求項16に記載の装置。
【請求項19】
リンクレイヤ信号同期のための方法であって、
リンク転送論理部に関連する送信クロック及び受信クロックを、前記リンク転送論理部を有する第1演算ノードのコアにより提供されるコアクロックと比較するステップであって、前記送信クロックはリンクレイヤの送信ドメインにおいて第1周波数を有し、前記受信クロックはリンクレイヤの受信ドメインにおいて第2周波数を有する、ステップ
前記の比較の結果に基づいて、リンク転送送信クロック及びリンク転送受信クロックをそれぞれ生成するステップであって、前記送信クロックの正エッジの検出に基づいて第1ゲーティングデバイスにイネーブル信号を出力することに基づいて前記リンク転送送信クロックを生成し、前記受信クロックの正エッジの検出に基づいて第2ゲーティングデバイスにイネーブル信号を出力することに基づいて前記リンク転送受信クロックを生成する、ステップ;
前記リンク転送送信クロック及び前記リンク転送受信クロックに従って、前記リンク転送論理部を介して、前記第1演算ノード及び第2演算ノード間でデータを転送するステップ;
を有する方法。
【請求項20】
前記リンク転送論理部を介して前記第1及び第2演算ノード間でデータを転送することが、前記リンク転送論理部の送信論理部を介して、前記リンク転送送信クロックに従って前記第1演算ノードから前記第2演算ノードへ第1データを送信すること、及び、前記リンク転送受信クロックに従って、前記第1演算ノードの前記リンク転送論理部の受信論理部を介して、前記2演算ノードから第2データを受信することを含む、請求項19に記載の方法。
【請求項21】
請求項19又は20に記載の方法を装置のコンピュータに実行させるコンピュータプログラム。
【請求項22】
請求項21に記載のコンピュータプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願の開示による実施形態は一般にコンピュータ相互接続アーキテクチャに関連し、特に、リンクレイヤ相互接続ファブリックにおける信号同期のための技術及び構成に関連する。
【背景技術】
【0002】
コンピュータシステムは、そのパーツ及びそれらの関係を指定しかつシステムコンポーネント(例えば、ノード)間の相互接続を規定するコンピュータアーキテクチャを有する。アーキテクチャは、ホストファブリックインタフェース(HFI)、リンク、スイッチ、ゲートウェイ及び管理モデルのようなコンポーネントを含んでもよい。相互接続は、物理レイヤ(PHY)やリンクレイヤ(しばしばレイヤ2として言及される)等を含む複数のレイヤを含む相互接続階層で構成されてもよい。ノードがファブリックにつながって他のサーバーやコンピューティングデバイスにパケットを送受信するように、HFIはアーキテクチャの物理及びリンクレイヤを実現する論理部を含んでよい。リンクは、HFIをスイッチに、スイッチを他のスイッチに、又は、スイッチをゲートウェイに接続するポイントツーポイント相互接続を含んでよい。
【0003】
リンクレイヤ論理部は、様々なクロック周波数でリンクレイヤを介して(例えば、リンク転送送信論理部及びリンク転送受信論理部を介して)通過するデータ及び制御信号を同期させるように構成されてもよい。例えば、リンクレイヤ論理部は、チップコア(例えば、ホストプロセッサ)論理周波数と、(例えば、送信シリアライザ-デシリアライザ(SerDes)パラレルインタフェースの)リンク送信ドメインの送信(Tx)周波数と、(例えば、受信SerDesパラレルインタフェースの)リンク受信ドメインの受信(Rx)周波数とを使用してもよい。こられの周波数は、異なるかもしれないし、リンクレイヤ論理部を通過する信号の同期を必要とするかもしれない。例えば、チップコア周波数はTx又はRx周波数と異なる(典型的にはそれらよりも高い)。Tx及びRx周波数が相違し、その結果それら2つの周波数の間に異なる位相関係が生じるかもしれない。更に、(例えば、制御信号のような)信号がドメイン境界を越えて(例えば、受信及び送信ドメインの間で、或いは、チップコアドメインと受信又は送信ドメインとの間で)行きつ戻りつすることを必要とするかもしれない。しかしながら、ドメイン境界を越える際に信号に遅延が付加されてしまう。
【図面の簡単な説明】
【0004】
添付図面に関連する以下の詳細な記述により実施形態は更に理解されるであろう。説明を促すため、同様な参照番号は同様な構造要素を示すものとする。実施形態は例示として説明され、添付図面に限定するようには説明されていない。
図1】相互接続アーキテクチャの様々なコンポーネントを示す一実施形態によるコンピューティングシステム例100の上位概念的なブロック図である。
図2】一実施形態によるリンクレイヤ論理モジュールの概略図である。
図3】リンクレイヤ論理モジュールに信号同期をもたらすように構成される一実施形態によるクロック同期論理部を示すブロック図である。
図4】一実施形態によるリンクレイヤ論理モジュールの送信側の信号同期を説明するための概略図である。
図5】演算ノードに関連するリンクレイヤ論理モジュールにおける信号同期のための一実施形態によるプロセスフローチャートである。
図6】演算ノード及び相互接続ファブリックを含むコンピューティングシステムのような図1-5の様々なコンポーネントを有する一実施形態による適切なコンピューティングデバイス例を概略的に示す。
【発明を実施するための形態】
【0005】
本開示の実施形態はリンクレイヤ相互接続アーキテクチャにおける信号同期のための技術及び構成を含む。以下の説明では、当業者が自身の仕事を他の当業者に伝えるために当業者により一般的に使用される用語を用いて、例示的な実現手段の様々な形態が説明される。しかしながら、本開示の実施形態は説明される形態のうちの一部分のみにより実施されてもよいことは、当業者にとって明らかであろう。説明の目的で、具体的な数値、材料及び構成が、例示の実現手段の更なる理解を促すために述べられる。しかしながら、本開示の実施形態は具体的なそのような詳細事項によらずに実施されてもよいことは、当業者にとって明らかであろう。また、例示的な実現手段の説明を曖昧にしないように、周知の事項は省略又は簡略化される。
【0006】
以下の詳細な説明において、本願の一部をなす添付図面が参照され、図中、同様な番号は同様な部分を示し、本開示の対象事項が実施され得る例示的な実施形態が図示されている。他の実施形態が使用されてもよいこと、及び、本開示の範囲から逸脱することなく、構造的又は論理的な変更がなされてもよいことが、理解されるべきである。従って、以下の詳細な説明は限定的な意味にとるべきではなく、実施形態の範囲は添付の特許請求の範囲及びその均等物により規定される。
【0007】
本開示の目的において、「A及び/又はB」という言い回しは、(A)、(B)又は(A及びB)を意味する。本開示の目的において、「A、B、及び/又はC」という言い回しは、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)、又は(A、B、及びC)を意味する。
【0008】
本説明は、平面視/底面視、中/外、上/下などのような透視図法に基づく記述を使用するかもしれない。そのような記述は、説明を促すために使用されているに過ぎず、本願で説明される実施形態の適用の仕方を特定の方向に限定するようには意図されていない。
【0009】
本説明は「一実施形態において」或いは「実施形態において」のような言い回しを使用し、それら各々は同一又は異なる実施形態のうちの1つ以上を指す。更に、本開示の実施形態に関して使用される「構成する」、「含む」、「有する」のような用語は類義語である。
【0010】
「〜に結合される」という用語がその派生語とともに本願において使用されるかもしれない。「結合される」は以下のうちの1つ以上を意味してよい。「結合される」は2つ以上の要素が直接的に物理的又は電気的に接触しいていることを意味してもよい。しかしながら、「結合される」は、2つ以上の要素が互いに間接的につながっているが、依然として互いに協調又は相互作用することを意味してもよく、また、1つ以上の他の要素が、互いに結合されるべき要素間に結合又は接続されることを意味してもよい。「直接的に結合される」という用語は2つ以上の要素が直接的に接していることを意味してもよい。
【0011】
図1は、相互接続アーキテクチャの様々なコンポーネントを示す一実施形態によるコンピューティングシステム例100の上位概念的なブロック図である。図示されるように、システム100は、相互接続ファブリック104を介して、他のシステム、サブシステム、ノード、ネットワーク等に接続される演算ノード(又はコンピュータノード)102を含む。ノード102は、例えば、実行するソフトウェアのタイプに依存する多数の様々な機能を有するホストのような、任意のタイプのノードを含んでもよい。ノード102は、例えばマルチコアマイクロプロセッサのようなマルチコア又はシングルコアを有する集積回路として実現されるコア106(例えば、中央処理ユニット(CPU)のようなプロセッサ)を含んでもよい。特許請求の範囲を含む本願の目的に関し、文脈上明示的に別意であることを必要としない限り、「プロセッサ」及び「コア」という用語は類義語と考えられてよい。ノード102は、ノードの機能を実現するのに必要な適切な他のコンポーネント108(例えば、メモリ、ペリフェラルデバイス等)を含んでもよい。コンピューティングシステム例100の更なる詳細な説明は後述の図6に関連して説明される。
【0012】
相互接続ファブリック104は1つ以上のHFI110を含んでもよく、HFI110は、ノード102がファブリック104につながりかつ他のノード、サーバー又は他のデバイスと情報(データ)を送受信してもよいように、アーキテクチャの物理及びリンクレイヤを実現する論理部を含む。HFI110は、オペレーティングシステム及び仮想マシンマネジャ(VMM)のサポートのための適切なハードウェアインタフェース及びドライバを含んでよい。HFI110は、通信プロトコルや、ノード102と他のシステム、ノード、デバイス等との間の通信に関連する他の処理を実行するために特化された論理部を含んでもよい。
【0013】
HFI110は、他のシステム及びノード等と通信するための論理部(例えば、リンクレイヤ論理部120)を含んでもよい。HFI110は、リンクレイヤ論理部120を利用して、他のHFI及びゲートウェイと通信してもよく、他のHFI及びゲートウェイは、他のノード(例えば、ノード106)に関連付けられ、かつ、ファブリック104に含まれる「スイッチ112」及び/又は「追加的なリンク及びスイッチ114」を介するようなリンク及びスイッチを介して相互接続される。上述したように、リンクレイヤ論理部120を有するHFI110は、コア(CPU)106と同じダイ上に存在してもよい。一実施形態において、リンクレイヤ論理部120を有するHFI110は、コア(CPU)106と異なるダイ上に存在するが、同じパッケージ内に存在してもよい。
【0014】
図示されるように、スイッチ112もリンクレイヤ論理部122を有し、リンクレイヤ論理部122は、例えば、追加的なリンク及びスイッチ114を介して相互接続されるHFI及びゲートウェイを介して、ノード116のような他のネットワークコンポーネントと通信するように構成されてもよい。リンクレイヤ論理部120及び122を通る信号(例えば、データ及び/又は制御信号)を同期させる技術が、以下において詳細に説明される。
【0015】
図2は一実施形態によるリンクレイヤ論理モジュール200の概略図である。リンクレイヤ論理モジュール200は図1に関連して説明されるリンクレイヤ論理部120又は122と同様であってよい。リンクレイヤ論理モジュール200はリンク転送論理部202を有し、リンク転送論理部202は、リンクレイヤ論理モジュール200に関連する演算ノード(例えばノード102)と図1に関連して説明されるノード116のような他の装置との間でデータを転送する。リンク転送論理部202は、関連するノードのチップコア206から他のノードへデータを送信する送信(Tx)論理部204を有してもよい。リンク転送論理部202は、他の装置からコア206のためのデータを受信する受信(Rx)論理部208を更に有してもよい。
【0016】
送信論理部204は、メモリバッファ210(例えば、先入れ先出し(FIFO)メモリデバイス)と、例えば、メモリバッファ210に結合されるシリアライザ(又は直列化部)(SerDes)212のようなデータ変換部とを有してもよい。SerDes212は、実際の送信レート(例えば、第1周波数レート)でSerDes送信(Tx)クロックパルス波(波形)(「SerDesTxクロック214」と言及されてもよい)を生成するSerDesクロック生成部を含んでもよい。
【0017】
受信論理部208は、メモリバッファ216(例えば、他の先入れ先出し(FIFO)メモリデバイス)と、例えば、メモリバッファ216に結合されるデシリアライザ(直列化復元部)(SerDes)218のようなデータ変換インタフェースとを有してもよい。SerDes218は、実際の受信レート(例えば、第2周波数レート)でSerDes受信(Rx)クロックパルス波(波形)(「SerDesRxクロック220」と言及されてもよい)を生成するSerDesクロック生成部を含んでもよい。一実施形態において、SerDesTxクロック214は、リンクレイヤ論理部に関連する内部クロック・データ復元(CDR)回路により生成されてもよい。Rx側において、SerDesRxクロック220は、受信されるデータストリームとともに提供されるクロックデータを復元するCDR回路により生成されてもよい。
【0018】
コア206は、第3周波数レートでコアクロックパルス波(波形)(以下において、「コアクロック222」と言及されてもよい)を生成するコアクロック生成部を含んでもよい。一実施形態において、第1、第2及び第3周波数レートは相違していてもよい。例えば、コアクロック222の第3周波数レートは、SerDesTxクロック214及びSerDesRxクロック220の第1及び第2周波数レートより高くてもよい。第1及び第2周波数レートも相違していてよい。例えば、リンクレイヤ論理モジュール200によるデータの送信に関連するパルス波形はリンクレイヤ論理モジュール200に関連するノード(例えば、図1のノード102)において生成される一方、リンクレイヤ論理モジュール200によるデータの受信に関連するパルス波形は、リンクレイヤ論理モジュール200により受信されるデータを提供する別のノード(例えば、116)において生成されてもよい。従って、第1及び第2周波数レートは異なっていてもよい。一例において、第1及び第2周波数は、100万分の1(ppm)の差分だけ異なっていてもよい。別の例において、第1及び第2周波数は、例えば2倍以上のように、非常に異なっていてもよい。
【0019】
一実施形態において、リンクレイヤ論理モジュール200はリンク転送モジュール202に関連するクロック同期論理部230を含み、クロック同期論理部230は、コアクロック222を、SerDesTxクロック214又はSerDesRxクロック220と比較し、周期的な比較の結果に基づいて、データ転送においてリンク転送論理部により使用される同期リンク転送送信(Tx)クロック又は同期リンク転送受信(Rx)クロックをそれぞれ生成するように、コアクロック222を調整する。リンク転送論理部202は、リンク転送Txクロック又はリンク転送Rxクロックにそれぞれ従って、関連するノード(例えば、102)のコア206と他のノードとの間でデータを送信又は受信するような転送を行うように構成されてもよい。
【0020】
すなわち、上記の比較の結果として、クロック同期論理部230は、コアクロックの周期に等しい時間で隔てられたエッジを有するリンク転送Txクロック232を提供し、コアクロックの周期に等しい時間で隔てられたエッジを有するリンク転送Rxクロック234を提供する。従って、リンクレイヤ論理モジュール200を介して送受信されるデータ信号240、242、及び、送信論理部204と受信論理部208との間を通る制御信号244、246(再送要求など)は、同期したリンク転送Tx及びRxクロックに従って同期させられる。
【0021】
更に具体的に言えば、送信論理部204は、リンク転送Txクロック232に従って、進行するデータをメモリバッファ210に提供し、SerDesTxクロック214に従って、メモリバッファ210からのデータをSerDes212に転送する。
【0022】
逆に、受信論理部208は、SerDesRxクロック220に従って、到来するデータをSerDes218からメモリバッファ216へ提供し、リンク転送Rxクロック234に従って、メモリバッファ216からのデータを転送する。クロック同期モジュール230により提供される同期化技術については図3-4に関連して更に後述される。
【0023】
図3は、リンクレイヤ論理モジュールに信号同期をもたらすように構成される一実施形態によるクロック同期論理部300を示すブロック図である。説明の目的で、リンク転送論理部の受信論理部(受信側)に対するクロック同期化技術を説明する。説明される技術は、図2に関して説明されるリンク転送論理モジュールの送信側に対して使用されてもよいことが、認められるであろう。説明されるクロック同期論理部は、ハードウェアソリューション、又は、ハードウェア及びソフトウェアソリューションの組み合わせとして実現されてもよい。
【0024】
図示されるように、受信論理部(例えば、208)の受信データ変換部インタフェース(例えば、デシリアライザ(SerDes))302は、到来するデータを受信して変換する。SerDes302は、SerDesRxクロック312に従って、SerDes302のクロック周波数レートで、到来する(書き込み)データをメモリバッファデバイス(例えば、FIFO)304に入力する。後述するように、リンク転送Rxクロック322に従って、リンク転送Rx周波数レートで、データは、メモリバッファデバイス304からRxパイプライン306へ読み出される。
【0025】
クロック同期論理部300は、ゲーティングデバイス(又はゲートデバイス)310に結合される正エッジ検出部308を有してもよい。図2に関連して説明されるように、SerDes302は、第2周波数レートの受信パルス波形を有するSerDesRxクロック312を提供するように構成されるSerDesRxクロック生成部340を含む。SerDesRxクロック312は、正エッジ検出部308に対する入力を提供する。コア生成部(図示せず)は、正エッジ検出部308及びゲーティングデバイス310への入力のために、第3周波数レートを有するコアクロック314を提供する。
【0026】
正エッジ検出部308は、SerDesRxクロック312のエッジ(例えば、正のエッジ(ポジティブエッジ又は立ち上がりエッジ)320)を検出し、正のエッジの検出に基づいてゲーティングデバイス310にイネーブル信号を出力するように、或いは、SerDesRxクロック312における正のエッジの不存在に基づいてイネーブル信号を提供しないように(例えば、イネーブル信号316をキャンセルするように)構成される。ゲーティングデバイス310は、イネーブル信号316の存否に基づいてコアクロック314を修正し、リンク転送受信周波数レートを有する同期したリンク転送Rxクロック322を有する修正されたコアクロックを出力する。
【0027】
従って、リンク転送Rxクロック322は、SerDesRxクロック312における正エッジが検出されなかったこと(非検出)に基づいてパルス324を欠落させることにより、SerDesRxクロック312と時間周期を整合(同期)させてもよい。
【0028】
図4は、一実施形態によるリンクレイヤ論理モジュール400の送信側の信号同期を説明するための概略図である。信号の同期化は、図3に関連して説明されるものと同様な方法で実行されてよい。より具体的に言えば、送信パルス波形(例えば、SerDesTxクロック450)に同期されるリンク転送Txクロック422は、図4に関して説明されるように、類似した方法で生成されてもよい。図2-3に関連して説明されるリンク転送論理部の転送論理部は、Txメモリバッファ402(例えば、メモリバッファ216のようなFIFOデバイス)と、メモリバッファ402に結合されるシリアライザ(SerDes)404のようなデータ変換部とを有してもよい。上述したように、SerDes404はSerDesTxクロック生成部440を有し、SerDesTxクロック生成部440は、第1周波数レートの送信パルス波形を有するSerDesTxクロック450を提供するように構成される。リンクレイヤ転送論理部により送信されるデータ410は、後述のように生成される同期したリンク転送Txクロック422に従ってTxメモリバッファ402に提供される(書き込みポインタ414により示されるように書き込まれる)。入力データ410を有するデータ420は、SerDesクロック450に従って第1周波数レートでTxメモリバッファ402からSerDes404へ転送される(例えば、読み込みポインタ416により示されるように、読み出される)。
【0029】
リンク転送Txクロック422は図3に関連して説明される技術を用いてSerDesTxクロック450に同期させられてもよい。例えば、クロック同期論理部は、Txゲーティングデバイス462と、Txゲーティングデバイス460に結合されるTx正エッジ検出部460とを有してもよい。SerDesTxクロック生成部440は、Tx正エッジ検出部460の入力のためにSerDesTxクロック450を提供し、コアクロック生成部(図示せず)は、Tx正エッジ検出部460及びTxゲーティングデバイス462に対する入力のためにコアクロック452を提供してもよい。
【0030】
Tx正エッジ検出部460は、SerDesTxクロック450における正エッジ470の検出に基づいてTxゲーティングデバイス462にイネーブル信号464を提供し、或いは、SerDesTxクロック450における正エッジ470の不存在に基づいてイネーブル信号464をキャンセルしてもよい。Txゲーティングデバイス462は、イネーブル信号464の存否に基づいてコアクロック452を修正し、SerDesTxクロック450の第1周波数レートに同期した修正されたコアクロック(例えば、同期したリンク転送Txクロック422)を出力する。従って、リンク転送Txクロック422を有する修正されたコアクロックは、図4に示されるような送信パルス波形を有するSerDesTxクロック452に同期させられる。
【0031】
図5は、演算ノード(又はコンピューティングノード)に関連するリンクレイヤ論理モジュールにおける信号同期のための一実施形態によるプロセスフローチャートである。プロセス500は図1-4に関連して説明される実施形態とともに動作してもよい。プロセス500は図1-4に関連して説明されるリンク転送論理部により実行されてもよい。
【0032】
ブロック502において、プロセス500は、リンク転送論理部を有する第1演算ノードのコアにより提供されるコアクロックに対して、リンク転送論理部に関連する送信又は受信クロック生成部によりそれぞれ提供されるクロックパルス波形(クロック)を比較することを含む。
【0033】
ブロック504において、プロセス500は、比較の結果に基づいて、同期したリンク転送送信クロック又は同期したリンク転送受信クロックをそれぞれ生成するように、コアクロックを修正することを含む。
【0034】
ブロック506において、プロセス500は、図3-4に関連して説明したように、生成された同期したクロックに従って、リンク転送論理部を介して、第1演算ノードと第2演算ノードとの間でデータを転送することを含む。
【0035】
図6は、演算ノード102及び相互接続ファブリック104を含むコンピューティングシステム100のような図1-5の様々なコンポーネント(又は要素)を有する一実施形態による適切なコンピューティングデバイス例600を概略的に示す。図示されるように、コンピューティングデバイス600は、1つ以上のプロセッサ又はプロセッサコア602及びシステムメモリ604を含んでよい。上述したように、特許請求の範囲を含む本願の目的に関し、「プロセッサ」及び「プロセッサコア」のような用語は、文脈上明らかに別意であることを必要としない限り、類義語と考えられてよい。プロセッサ602は、中央処理ユニット(CPU)及びマイクロプロセッサ等のような任意のタイプのプロセッサを含んでよい。プロセッサ602は、例えばマルチコアプロセッサのようなマルチコアを有する集積回路として実現されてもよい。コンピューティングデバイス600は、(例えば、ディスケット、ハードドライブ、揮発性メモリのような)大容量ストレージデバイス606を含んでもよい(例えば、ストレージデバイスは、ダイナミックランダムアクセスメモリ(DRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、ディジタル多用途ディスク(DVD)等であってもよい)。一般に、システムメモリ604及び/又は大容量ストレージデバイス606は一時的及び/又は永続的な任意のタイプのストレージであってもよく、例えば、揮発性及び不揮発性メモリ、光学的、磁気的及び/又はソリッドステートの大容量ストレージを含んでよいが、これらに限定されない。揮発性メモリは、例えばスタティック及び/又はダイナミックランダムアクセスメモリを含んでもよいが、これに限定されない。不揮発性メモリは、電気的に消去可能でプログラム可能なリードオンリメモリ、相変化メモリ、抵抗メモリ等を含んでもよいが、これらに限定されない。
【0036】
コンピューティングデバイス600は、入力/出力デバイス608及び通信インタフェース610を更に含んでもよく、入力/出力デバイス(I/Oデバイス)は、例えば、ディスプレイ(例えば、タッチスクリーンディスプレイ)、キーボード、カーソル制御部、リモートコントローラ、ゲームコントローラ、画像取得装置などであり、通信インタフェース610は、例えば、ネットワークインタフェースカード、モデム、赤外線受信部、無線受信部(例えば、ブルートゥース)等であってもよい。
【0037】
通信インタフェース610は、GSM(a Global System for Mobile Communication)、GPRS(General Packet Radio Service)、UMTS(Universal Mobile Telecommunications System)、HSPA(High Speed Packet Access)、E-HSPA(Evolved HSPA)、又は、LTE(Long-Term Evolution)のネットワークに応じてデバイス600を動作させるように構成される通信チップ(図示せず)を含んでもよい。通信チップは、EDGE(Enhanced Data for GSM Evolution)、GERAN(GSM EDGE Radio Access Network)、UTRAN(Universal Terrestrial Radio Access Network)、又は、E-UTRAN(Evolved UTRAN)に応じて動作するように構成されてもよい。通信チップは、CDMA(Code Division Multiple Access)、TDMA(Time Division Multiple Access)、DECT(Digital Enhanced Cordless Telecommunications)、EV-DO(Evolution-Data Optimized)及びそれらの派生物に加えて、3G、4G、5G及びそれ以降のように指定される他の任意の無線プロトコルに従って動作するように構成されてもよい。通信インタフェース610は他の実施形態において他の無線プロトコルに従って動作してもよい。
【0038】
上記のコンピューティングデバイス600の要素は、1つ以上のバスを表現するシステムバスを介して互いに結合されてもよい。複数のバスがある場合には、それらは1つ以上のバスブリッジ(図示せず)によりブリッジ又は橋渡しされてもよい。これらの要素の各々は当該技術分野で既知の通常の機能を実行してよい。特に、システムメモリ604及び大容量ストレージデバイス606は、オペレーティングシステムを実現する論理装置、及び/又は、コンピューティングデバイス600の動作のためのアプリケーションを保存するように使用され、論理装置及びアプリケーションはまとめて演算論理部622のように言及される。様々な要素は、プロセッサ602によりサポートされるアセンブラ命令、又は、そのような命令にコンパイルされる高級言語により実現されてもよい。
【0039】
実施形態では、図示されるように、(例えば、通信インタフェース610のような)コンピューティングデバイス600の要素の内の少なくとも幾つかは、相互接続ファブリック104の幾つかのコンポーネントを含んでもよい。相互接続ファブリック104のそれらのコンポーネントは、図2-5に関連して説明される信号を同期させるように構成されるリンクレイヤ論理部120(122)を含んでよい。
【0040】
演算論理部622のプログラミング命令の永続的なコピーは、例えばコンパクトディスク(CD)のような配布媒体(図示せず)により或いは((不図示の)配信サーバーから)通信インタフェースにより使用環境(フィールド)において、或いは、工場において、大容量ストレージデバイス606内に配置されてもよい。すなわち、エージェントプログラムの実装を含む1つ以上の配布媒体が、エージェントを配布するため及び様々なコンピューティングデバイスをプログラムするために使用されてもよい。
【0041】
要素608、610、612の個数、能力及び/又は容量は、例えば、コンピューティングデバイス600が単独のサーバーであるか否か、サーバーの集合であるか否か等のようなコンピューティングデバイスにより提供される機能及びパフォーマンスに応じて、様々な実施形態において異なってもよい。それらの構成自体は別途知られているので、更には説明されない。
【0042】
一実施形態において、少なくとも1つのプロセッサ602は、演算論理部622を有するメモリ604と一緒にパッケージされ、システムインパッケージ(SiP)又はシステムオンチップ(SoC)を形成するように構成されてもよい。
【0043】
様々な実施形態に関し、本開示による様々な具体例を説明する。
【0044】
具体例1は、リンクレイヤ信号同期のための装置であり、クロック同期論理部を有し、前記クロック同期論理部は:第1周波数を有する前記装置の送信クロック又は第2周波数を有する前記装置の受信クロックに対して、コアクロック周波数を有する前記装置のコアクロックを比較し;及び、前記の比較の結果に基づいて、同期したリンク転送送信クロック又は同期したリンク転送受信クロックをそれぞれ生成する。
【0045】
具体例2は具体例1の対象事項を含み、前記コアクロック周波数が、前記第1及び第2周波数と異なることを更に特徴とする。
【0046】
具体例3は具体例1の対象事項を含み、前記装置はリンク転送論理部を更に有し、前記クロック同期論理部は前記リンク転送論理部に関連付けられ、前記リンク転送論理部は、前記装置から他の装置へ第1データを送信する送信論理部と、前記他の装置から前記装置に関する第2データを受信する受信論理部とを有し、前記同期したリンク転送送信クロック及び前記同期したリンク転送受信クロックは、前記第1データの送信及び前記第2データの受信において前記リンク転送論理部によりそれぞれ使用されることを更に特徴とする。
【0047】
具体例4は具体例3の対象事項を含み、前記送信論理部はメモリバッファと前記メモリバッファに結合されるシリアライザ(SerDes)とを有し、前記メモリバッファは先入れ先出し(FIFO)メモリデバイスを有することを更に特徴とする。
【0048】
具体例5は具体例4の対象事項を含み、前記送信クロックは前記第1周波数を有するSerDesクロックを有し、前記送信論理部は、前記同期したリンク転送送信クロックに従って前記第1データを前記メモリバッファに提供し、前記送信クロックに従って前記メモリバッファからの前記第1データを前記SerDesへ転送することを更に特徴とする。
【0049】
具体例6は具体例3の対象事項を含み、前記受信論理部はメモリバッファと前記メモリバッファに結合されるデシリアライザ(SerDes)とを有することを更に特徴とする。
【0050】
具体例7は具体例6の対象事項を含み、前記受信クロックは前記第2周波数を有するSerDesクロックを有し、前記受信論理部は、前記受信クロックに従って前記SerDesから前記メモリバッファへ前記第2データを提供し、前記同期したリンク転送受信クロックに従って前記メモリバッファからの前記第2データを転送することを更に特徴とする。
【0051】
具体例8は具体例7の対象事項を含み、前記メモリバッファは先入れ先出し(FIFO)メモリデバイスを有することを更に特徴とする。
【0052】
具体例9は具体例1の対象事項を含み、前記クロック同期論理部は、ゲーティングデバイスと前記ゲーティングデバイスに結合される正エッジ検出部とを更に有し、前記クロック同期論理部は、前記正エッジ検出部の入力のために前記送信クロックを提供し、及び、前記正エッジ検出部と前記ゲーティングデバイスとの入力のために前記コアクロックを提供することを更に特徴とする。
【0053】
具体例10は具体例9の対象事項を含み、前記正エッジ検出部は、前記送信クロックの正エッジの検出に基づいて前記ゲーティングデバイスにイネーブル信号を出力し、或いは、前記正エッジの不存在に基づいて前記イネーブル信号をキャンセルすることを更に特徴とする。
【0054】
具体例11は具体例10の対象事項を含み、前記ゲーティングデバイスは、前記イネーブル信号の存否に基づいて前記コアクロックを修正し、前記同期したリンク転送送信クロックを提供するように修正されたコアクロックを出力することを更に特徴とする。
【0055】
具体例12は具体例1の対象事項を含み、前記クロック同期論理部は、ゲーティングデバイスと前記ゲーティングデバイスに結合される正エッジ検出部とを更に有し、前記クロック同期論理部は、前記正エッジ検出部の入力のために前記受信クロックを提供し、及び、前記正エッジ検出部と前記ゲーティングデバイスとの入力のために前記コアクロックを提供することを更に特徴とする。
【0056】
具体例13は具体例12の対象事項を含み、前記正エッジ検出部は、前記受信クロックの正エッジの検出に基づいて前記ゲーティングデバイスにイネーブル信号を出力し、或いは、前記正エッジの不存在に基づいて前記イネーブル信号をキャンセルすることを更に特徴とする。
【0057】
具体例14は具体例13の対象事項を含み、前記ゲーティングデバイスは、前記イネーブル信号の存否に基づいて前記コアクロックを修正し、前記同期したリンク転送受信クロックを提供するように修正されたコアクロックを出力することを更に特徴とする。
【0058】
具体例15は具体例10の対象事項を含み、前記装置は、コンピュータシステムの相互接続ファブリックのリンクレイヤのスイッチを有することを更に特徴とする。
【0059】
具体例16は具体例10の対象事項を含み、前記装置は、コンピュータシステムの相互接続ファブリックのホストファブリックインタフェース(HFI)デバイスを有することを更に特徴とする。
【0060】
具体例17は具体例16の対象事項を含み、前記HFIデバイスは、前記コンピュータシステムの中央処理ユニット(CPU)と同じダイに共存することを更に特徴とする。
【0061】
具体例18は具体例16の対象事項を含み、前記HFIデバイスは、前記コンピュータシステムの中央処理ユニット(CPU)とは異なるダイに存在し、及び、前記コンピュータシステムの前記CPUと同じパッケージ内に存在することを更に特徴とする。
【0062】
具体例19は、リンクレイヤ信号同期のための方法であって:リンク転送論理部に関連する送信及び受信クロックを、前記リンク転送論理部を有する第1演算ノードのコアにより提供されるコアクロックと比較するステップ;前記の比較の結果に基づいて、リンク転送送信クロック又はリンク転送受信クロックをそれぞれ生成するステップ;及び前記リンク転送送信又は受信クロックに従って、前記リンク転送論理部を介して、前記第1演算ノード及び第2演算ノード間でデータを転送するステップ;を有する。
【0063】
具体例20は具体例19の対象事項を含み、前記リンク転送論理部を介して前記第1及び第2演算ノード間でデータを転送することが、前記リンク転送論理部の送信論理部を介して、前記リンク転送送信クロックに従って前記第1演算ノードから前記第2演算ノードへ第1データを送信し、前記リンク転送受信クロックに従って、前記第1演算ノードの前記リンク転送論理部の受信論理部を介して、前記2演算ノードから第2データを受信することを含むことを更に特徴とする。
【0064】
具体例21は、リンクレイヤ信号同期のための装置であって:コア;前記装置及び他の装置の間でデータをやりとりするリンク転送論理部を有する前記コアに結合されるリンクレイヤであって、前記リンク転送論理部は、第1周波数を有する送信クロックと第2周波数を有する受信クロックとを提供する、リンクレイヤ;及び前記リンク転送論理部に関連するクロック同期論理部であって、送信又は受信クロックに対して、前記装置のコアクロック周波数を有するコアクロックを比較し、及び、前記の比較の結果に基づいて、前記リンク転送論理部により使用される同期したリンク転送送信クロック又は同期したリンク転送受信クロックをそれぞれ生成する同期論理部;を有する。
【0065】
具体例22は具体例21の対象事項を含み、データを転送する前記リンク転送論理部は、前記装置から前記他の装置へ第1データを送信する送信論理部と、前記装置のための第2データを前記他の装置から受信する受信論理部とを有することを更に特徴とする。
【0066】
具体例23は具体例22の対象事項を含み、前記送信論理部は、メモリバッファと前記メモリバッファに結合されるシリアライザ(SerDes)とを有し、前記送信クロックは前記第1周波数を有するSerDesクロックを有し、前記送信論理部は、前記同期したリンク転送送信クロックに従って前記第1データを前記メモリバッファに提供し、前記SerDesクロックに従って前記メモリバッファからの前記第1データを前記SerDesに転送することを更に特徴とする。
【0067】
具体例24は具体例22の対象事項を含み、前記受信論理部は、メモリバッファと前記メモリバッファに結合されるシリアライザ-デシリアライザ(SerDes)とを有し、前記受信クロックは前記第2周波数を有するSerDesクロックを有し、前記受信論理部は、前記SerDesクロックに従って前記SerDesから前記メモリへ前記第2データを提供し、前記同期したリンク転送受信クロックに従って前記メモリバッファからの前記第2データを転送することを更に特徴とする。
【0068】
具体例25は具体例21の対象事項を含み、前記装置が演算ノードであることを更に特徴とする。
【0069】
様々な実施形態は、上記の実施形態についての代替的な(「又は」の)形態を接続する形式(「及び」は「及び/又は」であってもよい)で含む上記の実施形態の適切な任意の組み合わせを含んでもよい。更に、実施形態は、そこに命令を有する1つ以上の製品(例えば、非一時的なコンピュータ読み取り可能な媒体)を包含してもよく、命令は、実行される場合に、上記の何れかの実施形態の動作を生じさせる。更に、ある実施形態は、上記の実施形態の様々な処理を実行する適切な任意の手段を有する装置又はシステムを含んでもよい。
【0070】
要約書に記載されるものを含む説明される実現手段についての上記の記述は、網羅的であるようには意図されておらず、本開示の実施形態を開示された厳密な形態に限定するようにも意図されていない。具体的な実現手段及び具体例は本願では説明の目的で記述されているに過ぎず、当業者が認めるように、本開示の範囲内で様々な等価な変形が可能である。
【0071】
それらの変形は上記の詳細な説明の観点から本開示の実施形態にしたいてなされてよい。特許請求の範囲で使用される用語は、本開示の様々な実施形態を、明細書及び特許請求の範囲に記載される具体的な実現手段に限定するように解釈されるべきではない。むしろその範囲は、請求項の解釈についての確立された原理に従って解釈される特許請求の範囲により全体的に決定される。
図1
図2
図3
図4
図5
図6