JP2022530591A - マルチチップモジュール上の物理レイヤインタフェースに対するデスキュー方法 - Google Patents

マルチチップモジュール上の物理レイヤインタフェースに対するデスキュー方法 Download PDF

Info

Publication number
JP2022530591A
JP2022530591A JP2021533834A JP2021533834A JP2022530591A JP 2022530591 A JP2022530591 A JP 2022530591A JP 2021533834 A JP2021533834 A JP 2021533834A JP 2021533834 A JP2021533834 A JP 2021533834A JP 2022530591 A JP2022530591 A JP 2022530591A
Authority
JP
Japan
Prior art keywords
lane
clock
lanes
symbol
phase
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021533834A
Other languages
English (en)
Other versions
JP7359854B2 (ja
Inventor
グプタ ヴァルン
パラスチョウ ミラム
アール. タルボット ジェラルド
ドリン グルナス
トヒディ デイモン
イアン カーペンター エリック
エス. ガルン チャド
クーパー ジェフリー
チョ ハンウー
エイチ. ライケンス トーマス
エフ. ドウ スコット
ジェイ. トレシダー マイケル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATI Technologies ULC
Advanced Micro Devices Inc
Original Assignee
ATI Technologies ULC
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ATI Technologies ULC, Advanced Micro Devices Inc filed Critical ATI Technologies ULC
Publication of JP2022530591A publication Critical patent/JP2022530591A/ja
Priority to JP2023167835A priority Critical patent/JP2023171864A/ja
Application granted granted Critical
Publication of JP7359854B2 publication Critical patent/JP7359854B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/033Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
    • H04L7/0337Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/14Channel dividing arrangements, i.e. in which a single bit stream is divided between several baseband channels and reassembled at the receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines

Abstract

マルチチップモジュール上の物理レイヤインタフェースに対するデスキュー方法を実施するシステム、装置及び方法が開示される。複数の通信レーンに接続された回路は、タイミングウィンドウの最初に、レーンのローカルクロックを対応するグローバルクロックと同期させるように各レーンをトレーニングする。次に、回路は、複数のレーンの全てが不正確なシンボル整合を有すると判別したことに応じて、各々のレーンを単一のステップだけシンボル回転させる。回路は、複数のレーンの全てではないが一部が正確なシンボル整合を有すると判別したことに応じて、不正確なシンボル整合を有するレーンを単一のステップだけシンボル回転させる。回路は、タイミングウィンドウの終わりに到達した場合、正確なシンボル整合を有するレーンをシンボル回転させ、対応するグローバルクロックの位相を調整して、誤ったシンボル回転を補償する。【選択図】図15

Description

最近の半導体チップは、高速且つ効率的な計算を促進する様々な回路及びコンポーネントを含む。半導体チップ内の機能ブロック間で情報を転送する場合、電気信号は、通常、金属トレース上で送信される。第1の機能ブロック内の送信機は、金属トレースにわたって電気信号を送信する。第2の機能ブロック内の受信機は、電気信号を受信する。場合によっては、2つの機能ブロックが同じダイにある。他の場合には、2つの機能ブロックが別々のダイにある。
情報処理システム及び情報処理デバイスの処理速度は、新たなシステム及びデバイスが開発されるにつれて増加し続けている。データ信号及び対応するクロック信号が機能ブロック間で送信される場合、信号は、相互に整合しなくなることがある。信号を再整合することは、通常、大量のレイテンシを伴う。
添付の図面と併せて以下の説明を参照することによって、本明細書で説明する方法及びメカニズムの利点を良好に理解することができる。
送信機及び受信機を含む汎用コンピュータ又は通信システムの一実施形態のブロック図である。 コンピューティングシステムの一実施形態のブロック図である。 物理レイヤインタフェース接続の一実施形態の図である。 同期クロックドメインクロッシングを達成するためにローカルクロックの位相を調整する回路の一実施形態のブロック図である。 同期クロックドメインクロッシングを達成するために利用可能なタイミングマージンを増加させるオプションのFIFOモードを実装する回路の一実施形態のブロック図である。 デシリアライザに使用する回路の一実施形態の図である。 デシリアライザにおいてバレルシフタを使用してシンボルロッキングを実行する一実施形態のタイミング図である。 バレルシフタが単一のステップだけクロック位相をシフトした後の時点の一実施形態のタイミング図である。 バレルシフタが第2のステップだけクロック位相をシフトした後の時点の一実施形態のタイミング図である。 最小レイテンシでリンク全体のデスキューを実行する一実施形態の状態図である。 デシリアライザに使用する回路の一実施形態の図である。 クロックジッタを考慮してタイミングマージンを増加させる2列FIFO回路の一実施形態の図である。 ローカルクロックをグローバルクロックと整合するためのトレーニングを実行する方法の一実施形態を示す一般化されたフローチャートである。 複数のレーンに対して同期クロスドメインクロッシングを達成する方法の一実施形態を示す一般化されたフローチャートである。 低減したレイテンシで複数のレーンにわたってデスキューする方法の一実施形態を示す一般化されたフローチャートである。 回路表現を記憶する非一時的なコンピュータ可読記憶媒体の一実施形態を示すブロック図である。
以下の説明では、本明細書で提示される方法及びメカニズムの十分な理解を提供するために、多数の具体的な詳細が示されている。しかしながら、当業者は、これらの具体的な詳細なしに様々な実施形態が実施され得ることを認識すべきである。いくつかの例では、本明細書で説明するアプローチを曖昧にすることを回避するために、周知の構造、コンポーネント、信号、コンピュータプログラム命令及び技術が詳細に示されていない。説明を簡単且つ明確にするために、図示した要素は必ずしも縮尺通りに描かれていないことが理解されよう。例えば、いくつかの要素の寸法は、他の要素に対して誇張されてもよい。
低減したレイテンシで同期クロックドメインクロッシングを実装するマルチチップモジュール上の物理レイヤインタフェースに対するデスキュー方法のための様々なシステム、装置、方法及びコンピュータ可読媒体が開示される。一実施形態では、複数の通信レーンに接続された回路は、タイミングウィンドウの最初に、レーンのローカルクロックを対応するグローバルクロックと同期させるように各レーンをトレーニング(訓練)する。次に、回路は、複数のレーンの全てが不正確なシンボル整合を有すると判別したことに応じて、各レーンを単一のステップだけシンボル回転させる。複数のレーンの全てではないが一部が正確なシンボル整合を有すると判別したことに応じて、回路は、不正確なシンボル整合を有するレーンを単一のステップだけシンボル回転させる。タイミングウィンドウの終わりに到達すると、回路は、正確なシンボル整合を有するレーンをシンボル回転させ、誤ったシンボル回転を補償するように、対応するグローバルクロックの位相を調整(調節)する。回路は、複数のレーンの全てが正確なシンボル整合を有すると判別したことに応じて、複数のデータシーケンスを生成するように、複数のローカルクロックを使用して複数のデータ信号をサンプリングする。
様々な実施形態では、低減したレイテンシで同期クロックドメインクロッシングを実装する技術が開示される。一実施形態では、回路は、グローバルクロック及びデータ信号を受信しながらローカルクロックを生成する。回路は、グローバルクロックでローカルクロックをサンプリングするレジスタを含む。また、回路は、単一単位間隔(UI)ステップサイズで位相シフトされたバージョンのローカルクロックを生成するバレルシフタを含む。さらに、回路は、バレルシフタを使用して、エッジ遷移が検出されるまでローカルクロックを全ての位相にわたってスウィープする制御ロジックを含む。エッジ遷移が検出された場合、ローカルクロックがグローバルクロックと整合されていることを示す。次いで、制御ロジックは、データ信号をサンプリングするためのセットアップ要件及びホールド要件を満たすように、ローカルクロックの位相を調整する。次に、位相調整されたローカルクロックでデータ信号をサンプリングして、データシーケンスを生成する。
図1を参照すると、送信機105及び受信機110を含む汎用コンピュータ又は通信システム100の一実施形態のブロック図が示されている。一実施形態では、送信機105は、通信チャネル115を介して受信機110にデータを送信する。実施形態に応じて、通信チャネル115は、ケーブル、バックプレーン、1つ以上の金属トレース、又は、他のタイプの通信チャネルである。例えば、一実施形態では、チャネル115は、マルチチップモジュールの2つのチップ間の1つ以上の金属トレースである。物理レイヤにおいて、送信機105と受信機デバイス110との間の通信は、所定の伝送プロトコルに従って単方向又は双方向であってもよい。システム100は、任意の数及びタイプの他のデバイスを含んでもよいことに留意されたい。また、システム100は、システム全体に分散された任意の数の送受信機ペアを含んでもよい。
送信機105及び受信機110は、実施形態に応じて任意のタイプのデバイスであってもよい。例えば、一実施形態では、送信機105は、プロセッシングユニット(例えば、中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU))であり、受信機110は、メモリデバイスである。メモリデバイスは、ダイナミックランダムアクセスメモリ(DRAM)、同期DRAM(SDRAM)、ダブルデータレート(DDR、DDR2、DDR3等)、SDRAM(mDDR3等のモバイルバージョンのSDRAM及び/又はLPDDR2等の低電力バージョンのSDRAMを含む)、RAMBUS DRAM(RDRAM)、スタティックRAM(SRAM)等の任意のタイプのメモリであってもよい。1つ以上のメモリデバイスは、シングルインラインメモリモジュール(SIMM)、デュアルインラインメモリモジュール(DIMM)等のメモリモジュールを形成するように、回路基板に結合されてもよい。或いは、メモリデバイスは、チップオンチップ構成、パッケージオンパッケージ構成又はマルチチップモジュール(MCM)構成でシステムオンチップ(SoC)又は集積回路(IC)内に実装されてもよい。
別の実施形態では、送信機105は、入力/出力(I/O)ファブリックであり、受信機110は、周辺デバイスである。周辺デバイスは、wifi(登録商標)、Bluetooth(登録商標)、セルラ、グローバルポジショニングシステム等の様々なタイプの無線通信のデバイスを含んでもよい。また、周辺デバイスは、RAM記憶装置、ソリッドステート記憶装置又はディスク記憶装置を含む追加の記憶装置を含んでもよい。また、周辺デバイスは、タッチディスプレイスクリーン又はマルチタッチディスプレイスクリーンを含むディスプレイスクリーン、キーボード又は他の入力デバイス、マイクロフォン、スピーカ等のユーザインタフェースデバイスを含んでもよい。他の実施形態では、送信機105及び受信機110は、他のタイプのデバイスである。システム100は、IC、SoC及びMCM等の任意のタイプのシステムであってもよいことに留意されたい。
図2を参照すると、コンピューティングシステム200の一実施形態のブロック図が示されている。図示するように、システム200は、デスクトップコンピュータ210、ラップトップコンピュータ220、サーバ230、モバイルデバイス240、又は、他のチップ、回路、コンポーネント等を表す。他のデバイスが可能であり、考慮される。図示した実施形態では、システム200は、送信機202A~N及び受信機203A~Nの任意のペアを含む。
図3を参照すると、物理レイヤインタフェース接続の一実施形態の図が示されている。図3の左側には、図3の右側のスレーブPCS380にチャネル340を介して接続されたマスタ物理コーディングサブレイヤ(PCS)305が示されている。一実施形態では、マスタPCS305は、マルチチップモジュール(MCM)の第1の集積回路(IC)(すなわち、チップ)上に配置されており、スレーブPCS380は、MCMの第2のIC上に配置されている。例えば、一実施形態では、マスタPCS305は、入力/出力(I/O)半導体ダイの一部であり、スレーブPCS380は、コアコンプレックス半導体ダイの一部である。他の実施形態では、マスタPCS305及びスレーブPCS380は、他のタイプのコンポーネント又は機能ユニットと共に含まれる。
様々な実施形態では、マスタPCS305は、クロックを生成する位相ロックループ(PLL)310を含むかPLL310に結合されており、PLL310は、クロック送信モジュール325及びマスタPCS305内の他のモジュールに結合されている。マスタPCS305は、N個の受信機のアレイ315及びM個の送信機のアレイ335を含み、N及びMは、正の整数であり、N及びMの値は、実施形態に応じて変化する。受信クロックゲーティング(RXCG)モジュール320は、受信機のアレイ315に結合されており、送信クロックゲーティング(TXCG)モジュール330は、送信機のアレイ335に結合されている。一実施形態では、クロックは、マスタPCS305から転送され、マスタPCS305は、PLL310の基準クロックとして使用される。PLL310によって生成されたクロックは、チャネル340を介して転送され、PLL375(スレーブPCS380の)及びダウンストリームロジックの基準クロックとして使用される。一実施形態では、マスタPCS305及びスレーブPCS380によってハーフレートアーキテクチャが利用され、クロックは、データレートの周波数の半分であり、データは、クロックの立ち上がりエッジ及び立ち下りエッジでサンプリングされる。
一実施形態では、マスタ305の送信機のアレイ335は、最も遠いレーン間で1000ミクロン(すなわち、マイクロメートル)よりも大きい幅を有するチャネル340内の対応するレーンに接続されている。また、一実施形態では、マスタ305の受信機のアレイ315は、最も遠いレーン間で1000ミクロンよりも大きい幅を有するパッケージチャネル340内の対応するレーンに接続されている。これは、チャネル340のレーン上で送信される異なるクロックのクロックエッジ間のドリフトをもたらす。
一実施形態では、同期クロックドメインクロッシングは、本明細書で説明する方法及びメカニズムのうち1つ以上を使用して、送信機のアレイ335にわたって達成される。例えば、送信機のアレイ335のレーンが1000ミクロンよりも大きい距離だけ離れている場合であっても、同期クロックドメインクロッシングは、本明細書で提示される技術を使用して達成されると共に、(従来のアプローチと比較して)比較的少ない量のレイテンシをインタフェースに加える。一実施形態では、同期クロックドメインクロッシングを達成するために、スレーブPCS380のローカルクロックは、転送されたコントローラクロックと整合するようにトレーニングされる。本明細書で使用する場合、「ローカルクロック」という用語は、比較的高速のPLLクロックの分割されたバージョンとして定義される。また、本明細書で使用する場合、「コントローラクロック」という用語は、チャネル(例えば、チャネル340)のレーンにわたって分散されたシステムオンチップ(SoC)マスタクロックとして定義される。
一実施形態では、レーン間での送信チャネルスキューを最小にするために、1単位間隔(UI)の粒度で遅延が加えられる。一実施形態では、同期クロッシングを達成するために利用可能なタイミングマージンを増加させるために、任意のファーストインファーストアウト(FIFO)モードが実施される。FIFOモードが有効にされることにより、更なるレイテンシを犠牲にして更なる遅延が利用可能である。しかしながら、これは、送信チャネルスキューを低減させるために利用可能な追加の調整範囲をもたらす。一実施形態では、トレーニングの前に、シンボル開始点がチャネル340の様々な送信レーンにわたって広げられる。トレーニングの後、チャネル340の様々な送信レーン上のシンボル開始点は、互いに1UI内で整合される。
図4を参照すると、同期クロックドメインクロッシングを達成するためにローカルクロックの位相を調整する回路400の一実施形態のブロック図が示されている。一実施形態では、物理レイヤ(PHY)インタフェースについて、入力されたコントローラクロックが位相において固定され、ローカルクロックは、PLL420によって生成された、分割されたバージョン(分割器422を使用した)の高速クロックである。ローカルクロックは、クロックトレーニングユニット425に供給される。クロックトレーニングユニット425の一例は、ブロック405内の制御ロジックとして示される。ブロック405に示すように、ローカルクロックは、バレルシフタ415の使用により位相シフトされる。一実施形態では、複数のローカルクロックが、対応するコントローラクロックと整合するようトレーニングされ、次いで、トレーニングされたローカルクロックは、ブロック430に示すように10/2シリアライザに結合される。
一実施形態では、対応するコントローラクロックに一致するようにローカルクロックの位相をトレーニングするために、2段階のトレーニング方法が実行される。第1段階では、ローカルクロックとコントローラクロックとの間の位相関係が未知である場合にトレーニングステップが実行され、コントローラクロックに対するレーン毎のローカルクロックの位相関係が確立される。トレーニング方法の第2段階では、セットアップ要件及びホールド要件を満たすように、コントローラクロックに対して各ローカルクロックの位相が調整される。
一実施形態では、同期レジスタ417においてローカルクロックをサンプリングするためにコントローラクロックが使用され、同期レジスタ417の出力は、クロックトレーニング有限状態機械(FSM)410に提供される。バレルシフタ415を使用して、サンプラ出力(すなわち、同期レジスタ417の出力)が0から1になるのが検出されるまで、全ての位相にわたってローカルクロックがスウィープされる。サンプラ出力が0から1になるのが検出されると、ローカルクロックがコントローラクロックの+/-1単位間隔(UI)内で整合されることを示す。一実施形態では、1UIは、1xクロックの1/10であり、1UIは、クロックをスウィープするための最小分解能である。一実施形態では、低周波数位相オフセットによるデルタ値を考慮するために、クロックトレーニングFSM410において追加の平均化が実行される。ローカルクロックがコントローラクロックに整合されると、ローカルクロックの位相は、セットアップ要件及びホールドタイミング要件を満たすよう調整される。異なるレーンから生じるデータが比較的低いレイテンシでコントローラクロックに同期されるように、この方法が全てのレーンに対して繰り返される。また、一実施形態では、送信機及びチャネルに起因して生じたスキューを最小にするように、レーン間に遅延が加えられる。
図4に示すアプローチを使用して、フロップ毎のタイミングでデータがコントローラクロックドメインからローカルクロックドメインに渡され、それによって、従来の設計に存在するレイテンシを低減させる。タイミング図440は、コントローラクロックへのローカルクロックのトレーニング前タイミングの一例を示す。タイミング図450は、トレーニング後であって、セットアップ要件及びホールド要件を満たすようにローカルクロックがコントローラクロックに対して調整された後の、ローカルクロックとコントローラクロックとの間で達成されるタイミングの一例を示す。
図5を参照すると、同期クロックドメインクロッシングを達成するために利用可能なタイミングマージンを増加させるオプションのFIFOモードを実施する回路500の一実施形態のブロック図が示されている。一実施形態では、コンピューティングシステムは、潜在的に高いジッタコントローラクロックとレーン生成ローカルクロックとの間のクロックドメインクロッシングを有する。コントローラクロックは、マスタPCSからの並列データ起動クロックとして使用され、レーン生成ローカルクロック(すなわち、ワードクロック)は、PHYインタフェースにおいて並列データキャプチャとして使用される。一実施形態では、コントローラクロックからレーン生成ローカルクロックへの同期クロックドメインクロッシングは、オプションのFIFOバッファによるクロックトレーニングアルゴリズムを介して達成される。トレーニングされたインタフェースでもタイミングを満たすことができないほど、予測されるコントローラクロックジッタが十分に高い場合、一実施形態では、ジッタ許容範囲を増加させるためにFIFOが使用される。一実施形態では、ジッタ許容範囲を2倍にするために、2エントリFIFOが使用される。
一実施形態では、デフォルトモードでは、予測されるコントローラクロックジッタに対する適切なタイミングマージンを保証するために、ローカルクロックは、コントローラクロックとローカルクロックとの間の初期平均差に基づいて、1UI分解能で調整される。一実施形態では、オプションのFIFOモードでは、ハーフレートバージョンのコントローラクロックは、書き込みポインタとしての役割を果たすと共に、ハーフレートバージョンのローカルクロックは、読み出しポインタとして使用される。クロックトレーニングアルゴリズムは、読み出しポインタのプログラム可能な配置のための初期平均書き込み/読み出しポインタ分離を決定する。一実施形態では、適切なタイミングマージンを保証すると共に、予測されるコントローラクロックジッタ規模に基づいて並列データキャプチャインタフェースにおいてレイテンシを最小にするために、読み出しポインタ配置は、1UI分解能で調整される。一実施形態では、ポインタ分離において適切なマージンが存在する場合、レーン毎のスキューを低減させるために、1UIステップサイズでの初期のクロックトレーニングの後に読み出しポインタが更に調整される。データがローカルクロックドメインに渡されると、データは、直列化され、送信レーンを介してチャネルに提供される。
一実施形態では、入力データは、物理コーディングサブレイヤ(PCS)505のドメイン内のフロップ510を介して供給される。コントローラクロックは、フロップ510のクロック入力に供給される。一実施形態では、入力データは、10ビット幅である。しかしながら、他の実施形態では、入力データは、他のビット幅を有してもよい。同様に、他の実施形態では、回路500における他の経路のビット幅は変化してもよい。フロップ510の出力は、送信マクロドメイン507内のフロップ515,520に並列に供給される。ハーフレートコントローラクロックは、フロップ515,520のクロック入力にクロックとして供給される。フロップ515、520の出力は、マルチプレクサ525の入力に供給される。マルチプレクサ525の出力は、フロップ535の入力に結合されている。1xレートローカルクロックは、フロップ535のクロック入力に結合されている。フロップ535の出力は、シリアライザ(図示省略)に供給される。
一実施形態では、高速5xレートクロックは、ワードクロックバレルシフタ540に入力として供給される。一実施形態では、ワードクロックバレルシフタ540は、ローカル1xレートクロックの10個の固有位相(unique phases)を生成する。ワードクロックバレルシフタ540の位相調整された出力は、反転され、次いで、フロップ530のクロックポートに結合される。フロップ530の出力は、反転され、次いで、位相調整されたハーフレートローカルクロックを生成するように、フロップ530の入力に再度結合される。位相調整されたハーフレートローカルクロックは、マルチプレクサ525の選択入力に結合される。1xコントローラクロックは、反転され、フロップ545のクロック入力に結合される。フロップ545の出力は、反転され、次いで、ハーフレートコントローラクロックを生成するように、フロップ545の入力に再度結合される。回路500(図5の)に示すフロップは、任意のタイプの適切なレジスタ(例えば、D型フリップフロップ)を使用して実装されてもよいことに留意されたい。
図6を参照すると、デシリアライザで使用するための回路600の一実施形態の図が示されている。一実施形態では、回路600は、2to10デシリアライザ(2-to-10 deserializer)の一部として実装される。2to10デシリアライザは、入力クロックサイクル当たり2入力ビットを受信し、出力クロックサイクル当たり10出力ビットを生成する。しかしながら、他の実施形態では、回路600は、サイクル当たり他の数の入力ビットを受信し、及び/又は、サイクル当たり他の数の出力ビットを生成する、他のタイプのデシリアライザによる使用のために修正されてもよい。一実施形態では、回路600は、2UIクロック位相を有する1UI粒度を有する2to10デシリアライザの一部としてシンボルロッキングを実行する。一実施形態では、シンボルロッキングは、2つの別個の機能ユニット間のリンクに対するリンクトレーニングの一部として実行される。この技術の使用により、入力される非直列化(デシリアライズ)されたデータは、比較的低いレイテンシで正確なシンボルに再整合される。一実施形態では、このシンボルロッキング技術の使用に関与する2つの態様が存在する。第1の態様は、バレルシフトされたクロック位相を使用して、入力された直列(シリアル)データを非直列化させている。第2の態様は、正確なシンボルを取得するために、入力された直列化されたデータを異なる方法で取り込む。
回路600に示すように、入力された直列データは、フロップ615A~Bによってハーフレートクロックの両方のエッジ上でサンプリングされ、2ビットのデータを取得するために、マルチプレクサ620,622を介してフロップ645に渡される。一実施形態では、非直列化の後、データは、ローカルクロックドメインにあり、コントローラクロックドメインに再度移される。これは、図4の議論において上述したように、同期クロックドメインクロッシングによって達成される。一実施形態では、スレーブのコントローラクロックは、マスタから転送された基準クロックを有するローカルPLLから導出される。
回路600の動作について、入力データは、チャネル605から受信され、2つの組のフロップ615A~Bに結合される。クロック生成ユニット610は、フロップ615Aの入力に結合された0度の位相を有する第1のクロックを生成する。また、クロック生成ユニット610は、フロップ615Bの入力に結合された180度の位相を有する第2のクロックを生成する。フロップ615Bの入力に結合された180度の位相の第2のクロックは、フロップ615Aの入力に結合された0度の位相の第1のクロックに対して180度位相が異なっている。フロップ615Aの出力は、Data1とラベル付けされ、マルチプレクサ620,622の「1」入力に結合される。フロップ615Bの出力は、Data0とラベル付けされ、マルチプレクサ620,622の「0」入力に結合される。マルチプレクサ620,622の選択信号は、シフトデータカウンタ625によって生成され、シフトデータカウンタ625は、奇数カウントに対してフリップする。
シンボル回転が必要であるかどうかをチェックするロジック630は、クロックを回転させるためのシフトデータを生成する。ロジック630からの出力は、シフトデータカウンタ625及びバレルシフタ635に結合される。5xレートクロックも、バレルシフタ635に結合される。バレルシフタ635は、5xレートクロック入力に基づいて、異なる位相を有する複数の1xレートクロックを生成する。バレルシフタ635によって生成された異なる位相を有する複数の1xクロックは、フロップ645間で異なるフロップに供給される。フロップ645の出力は、フロップ650の入力に結合される。フロップ650は、ローカルクロックでクロックされ、フロップ650の出力は、コントローラクロックでクロックされるフロップ655に結合される。奇数シフトの場合、「0」フロップ645からのサンプルが遅延され、よって、入力されたビットによってデータが上書きされないことを保証するために、追加のフロップ640が存在する。
図7を参照すると、デシリアライザにおいてバレルシフタを用いてシンボルロッキングを実行するタイミング図700が示されている。タイミング図700は、(図6の)回路600を使用して、入力された直列データがサンプリングされるタイミングの一例を表すことを意図している。一実施形態では、サンプラからのデータは、タイミング図700に示すように、マルチプレクサ選択時に0/1UI遅延を達成するために、2ビットのデータとして多重化される。2ビットのデータは、ずれたクロック位相で10ビットレジスタに直列に入力される。10ビットレジスタから、ローカルクロックで出力がサンプリングされる。次に、非直列化されたデータは、正確なシンボルタイミングを達成するためにデータを回転する必要があるかどうかを推測するように分析される。タイミング図700の例について行710に示すように、入力されたデータは、a7:0ビット及びx9:8ビットとして、元の位相調整されていないクロックタイミングでサンプリングされ、「a」は、現在のシンボルであり、「x」は、前のシンボルである。正確なシンボルを有するために、a9:0ビットとして入力データをサンプリングすることが目標である。行710に示すように、次のシンボルは、b7:0ビット及びa9:8ビットとしてサンプリングされる。
図8を参照すると、バレルシフタが単一のステップのシンボル回転を実行した後の時点のタイミング図800が示されている。タイミング図800は、単一のシンボル回転ステップが実行された後の或る実施形態についての(図6の)回路600のタイミングを表すことを意図している。タイミング図800と(図7の)タイミング図700との間の相違は、シンボル回転を実行する効果を示す。タイミング図800では、奇数レジスタのクロックに対して位相がシフトされている。レジスタ9は、前のレジスタ0から位相タイミングを取得し、レジスタ1は、前のレジスタ2の位相タイミングを取得し、レジスタ3は、前のレジスタ4の位相タイミングを取得する、等である。したがって、レジスタの半分は、それらのクロックを2UIだけ右にシフトさせる。レジスタの半分のクロックが右にシフトされる間、ローカルクロックは、同一のままである。2UI位相シフトの後、a8:0及びx9は、行810に示すようにサンプリングされたデータである。奇数シフトの場合、フロップ0からのサンプルが遅延されるので、データが最新の入力ビットa9によって上書きされないように、追加のフロップ0_delayが存在する。
図9を参照すると、バレルシフタが第2のステップだけシンボル回転を実行した後の時点のタイミング図900が示されている。タイミング図900は、或る特定の実施形態について、クロック位相が第2のシンボル回転ステップだけシフトされた後の(図6の)回路600を表すことを意図している。タイミング図900と(図8の)タイミング図800との間の相違は、第2のシンボル回転ステップを実行する効果を示す。(図7の)タイミング図700の最初に示す例では、正確なシンボルをサンプリングするために2つのシンボル回転ステップが必要とされる。したがって、レジスタの半分の第1のステージのクロック位相は、正確なシンボルを達成するために、バレルシフタによって2倍回転する。また、偶数の回転は、ローカルクロックを2UIステップだけ移動させる。図900では、実質的に2UIシフトが発生しており、データがa9:0になり、マルチプレクサ620,622が再度シフトされる。この技術により、レイテンシを生じさせることなく、シンボルウィンドウを正確な数のUIステップだけ移動することによって、シンボルがロックされる。図800,900に示すように、クロック毎に2UIだけ移動させることによって、位相が1UIにおいてシフトされている。
図10を参照すると、最小レイテンシでリンク全体のデスキューを実行する一実施形態の状態図1000が示されている。一実施形態では、方法は、受信物理レイヤ(PHY)インタフェースにおけるリンクトレーニングのための状態図1000に従って実装される。レーン上のシンボルを整合するように複数のレーンのレーン毎にシンボルアイの位置を決定するのと同時に、同期データ転送を達成するようにそれらをデスキューする方法が実行される。「シンボルアイ」は、リンクのデータレーン上でのビット遷移に基づく、シンボルのデータ有効周期を指す。従来のアプローチでは、デスキューのためのソース同期クロックスキームは、正確なシンボルを捕捉するためのタイミングを単純化する追加のステージを使用し、追加のステージは、比較的高いレイテンシを生じさせる。しかしながら、状態図1000に関連する方法を使用すると、従来のアプローチと比較して、レイテンシがかなり低減する。一実施形態では、状態図1000に関連するアプローチは、上述した同期クロックドメインクロッシングスキームと共に、2UIクロック位相を有する1UI粒度による2to10デシリアライザによるシンボルロッキングスキームを使用する。
リンクトレーニングの前に、コントローラクロックへのローカルクロックタイミングがタイミングウィンドウの先頭にあるように(すなわち、最大ホールド時間、最小セットアップ時間を満たすように)各レーンをトレーニングするために、同期クロックドメインクロッシングスキームが使用される。このステップは、リンクが確立されるまで繰り返される。本明細書で使用するように、「タイミングウィンドウ」という用語は、対応するデータが有効である期間として定義される。タイミングウィンドウは、データ信号のリーディングエッジ及びトレーリングエッジによって定義される。次いで、リンクが確立された後に、各レーンがチェックされ、以下の何れかのオプションが使用される。全てのレーンが正確なシンボルを有していない場合、状態図1000は、リセット状態1005からアウトアイ状態1015に移動する。アウトアイ状態1015では、各レーンは、バレルシフタを使用して1ステップだけシンボル回転され、コントローラクロックも、確立されたタイミング関係を維持するように、1ステップだけ回転される。次いで、全てのレーンがチェックされる。いくつかのレーンがシンボルロックされている場合、状態図は、状態1010に移動する。状態1010では、シンボルロックされていないレーンについてのローカルクロックは、1UIだけシフトされる。一実施形態では、シンボルロックされていないレーンは、バレルシフタを使用して、1UIだけシフトされる。コントローラクロックが静的であるため、コントローラクロックとローカルクロックとの間のタイミング関係について、セットアップ時間が1UIだけ増加し、ホールド時間が1UIだけ増加する。これは、全てのレーンがタイミングマージンウインドウまでシンボルロックされるまで継続される。タイミングマージンウインドウに到達するまでに一部のレーンが未だシンボルロックされない場合には、状態図1000は、リセット状態1005に再度移動する。そうでなければ、全てのレーンがシンボルロックされる場合、状態図1000は、ロック状態1030に移動する。
リセット状態1005では、いくつかのレーンがシンボルロックされている場合、状態図1000は、状態1010に移動する。状態図1000は、状態1010から分析状態1025に移動する。次いで、状態図1000は、ビギンエンドアイ(begin_end_eye)状態1020に移動し、ビギンエンドアイ状態1020では、シンボル整合されたレーンに対してローカルクロックがシフトされる。この方法は、タイミングウィンドウの最後(すなわち、最小ホールド時間、最大セットアップ時間)に到達するまで使用される。タイミングウィンドウの最後に、全てのロックされたレーン及びコントローラクロックは、誤った回転を補償するよう回転される。新たにロックされたレーンがデスキューされたシンボルに対してロックされる場合、最新のロックされたレーン及びコントローラクロックを除く既存のロックされたレーンは、誤った回転を補償するように回転される。
図11を参照すると、4個の通信レーン1105A~Dにわたるシンボルアイ開始点の一実施形態の図1100が示されている。レーン1105A~Dは、通信チャネルの一部として含まれる任意の数のレーンを表す。4個のレーンが図11に示されているが、この数は、説明のための一例としての役割を果たすことを意図していることを理解されたい。他の実施形態は、他の数のレーンを有してもよく、複数のレーンにわたってシンボルアイを整合するために、本明細書で説明する技術を使用することができる。レーン1105A~Dについてのシンボルアイは、レーン1105A~D内で網掛け長方形として示されている。
レーン1105A~Dに接続されたトレースの長さが一致していないこと、及び/又は、他の要因により、各レーンのシンボルアイは、通常、トレーニング前には異なるレーン1105A~Dで異なる。リセットのためのインアイ(IN_EYE)開始点は、状態図1000(図10の)に関連する方法を実行する制御ロジックの一実施形態の例を表すように、図1100の最上部に示されている。制御ロジックは、整合されていないレーンに対してローカルクロックを回転させることによって、レーン1105A~D毎にシンボルアイを追跡することを試みる。制御ロジックが全てのレーンに対してシンボルアイを追跡する前にレーンのエンドアイ(END_EYE)ポイントに到達する場合、制御ロジックは、レーン1105A~D上で次のシンボルが受信されるときにリセットし、再開する。トレーニングの目的は、各レーンのシンボルアイが他のレーンのシンボルアイと整合するように、レーン1105A~Dのローカルクロックの位相を調整することである。
図12を参照すると、クロックジッタを考慮するために、タイミングマージンを増加させる2エントリFIFO回路1200の一実施形態の図が示されている。一実施形態では、データは、チャネルから受信され、サンプラに提供され、サンプラクロックは、高速PLLクロック(ワードクロックと比較して)である。データが正確にサンプリングされることを保証するために、入力された直列ビットストリームと高速PLLクロックとの間のロックを確立するクロックデータリカバリ(CDR)により開始して、様々なアルゴリズムが実行されている。一実施形態では、ロックを確立した後、入力ビットストリームは、並列データに非直列化される。一実施形態では、入力直列ビットストリームは、10ビット並列データに非直列化される。しかしながら、他の実施形態では、他の数のビットの並列データが生成される。
一実施形態では、非直列化の後、データは、ローカルクロックドメインにあり、コントローラクロックドメインに移動される必要がある。一実施形態では、これは、上述した同期クロックドメインクロッシング技術を使用し、且つ、回路1200を使用することによって達成される。一実施形態では、ローカルクロック(すなわち、ワードクロック)と潜在的に高ジッタのコントローラクロックとの間のクロックドメインクロッシングは、2エントリFIFO回路1200により達成される。ハーフレートローカルクロックは、書き込みポインタとして使用され、ハーフレートバージョンのコントローラクロックは、読み出しポインタとしての役割を果たす。書き込みポインタ及びローカルクロックの両方は、共通の高速クロックから生成される。一実施形態では、書き込みポインタ配置は、1UI分解能で調整される。
一実施形態では、入力直列データは、フロップ1205A~Nの入力に結合される。一実施形態では、入力データは、10個の入力レーンを含む。しかしながら、他の実施形態では、フロップ1205A~Nの数及び回路1200の他のコンポーネントのビット幅を調整することによって、他の数の入力レーンが回路1200によってサポートされてもよい。一実施形態では、ワードクロックバレルシフタ1207は、5つの固有位相及び2UI分解能を有する1xレートクロック出力を生成するためにワードクロックバレルシフタ1207が使用する高速5xレートクロックを受信する。異なる位相を有するそれらの1xレートクロックは、フロップ1205A~Nのクロックポートに結合される。フロップ1205A~Nへのデータ入力は、位相シフトされたクロックを使用してサンプリングされる。
一実施形態では、フロップ1205A~Nからの出力は、フロップ1210の入力ポートに結合される。ワードクロックバレルシフタ1207は、フロップ1210のクロックポートに結合されるローカル1xレートクロックを生成する。フロップ1210の出力は、フロップ1215,1220の入力ポートに結合される。高速5xレートクロックは、書き込みポインタジェネレータ1240に結合される。書き込みポインタジェネレータ1240は、フロップ1215のクロックポートに結合されるハーフレートローカルクロックを生成する。書き込みポインタジェネレータ1240のハーフレートローカルクロックは、ネゲートされ、フロップ1220のクロックポートに結合される。フロップ1215の出力は、マルチプレクサ1225の「0」入力に結合され、フロップ1220の出力は、マルチプレクサ1225の「1」入力に結合される。フロップ1245によって生成されたハーフレートコントローラクロックは、マルチプレクサ1225の選択ポートに結合される。マルチプレクサ1225の出力レーンは、フロップ1235の入力ポートに結合される。1xレートコントローラクロックは、フロップ1235のクロックポートに結合される。フロップ1235からの並列データ出力は、更なる処理のためにコントローラ(図示省略)又は他のコンポーネントに供給される。
図13を参照すると、ローカルクロックをグローバルクロックと整合するようにトレーニングを実行する方法1300の一実施形態が示されている。説明のために、この実施形態におけるステップ及び図14のステップは、順番に示されている。しかしながら、説明する方法の様々な実施形態では、説明する要素のうち1つ以上が、同時に実行され、図示した順序と異なる順序で実行され、完全に省略されることに留意されたい。必要に応じて他の追加の要素も実行される。本明細書で説明する様々なシステム又は装置の何れも、方法1300を実施するように構成されている。
回路は、グローバルクロック信号及びデータ信号を受信する(ブロック1305)。グローバルクロックは、本明細書では「コントローラクロック」とも呼ばれ得ることに留意されたい。いくつかの実施形態では、回路は、複数のグローバルクロック及び複数のデータ信号を受信する。一実施形態では、グローバルクロック及びデータ信号は、受信機能ユニットとは別の機能ユニットにおいて生成される。また、回路は、ローカルクロック信号を生成する(ブロック1310)。例えば、一実施形態では、回路は、ローカルPLLを使用してローカルクロック信号を生成する。
回路は、バレルシフタを用いて1UIステップでローカルクロックを位相にわたってスウィープすると共に、エッジ遷移を検出するように、グローバルクロックによってクロックされたレジスタによりローカルクロックをサンプリングする(ブロック1315)。一実施形態では、レジスタの出力は、エッジ遷移を検出する制御ロジックに結合される。一実施形態では、制御ロジックは、有限状態機械(FSM)を含む。一実施形態では、エッジ遷移は、立ち上がりエッジ遷移(すなわち、低電圧から高電圧への)である。次に、制御ロジックは、エッジ遷移を検出したことに応じて、ローカルクロックがグローバルクロックと整合していると判別する(ブロック1320)。次いで、ローカルクロックの位相は、セットアップ要件及びホールドタイミング要件を満たすように、グローバルクロックに対して調整される(ブロック1325)。次に、データ信号は、位相調整されたローカルクロックを使用してサンプリングされる(ブロック1330)。次いで、サンプリングされたデータは、追加の処理及び/又は記憶のために後続のステージに提供される(ブロック1335)。一実施形態では、サンプリングされたデータは、デシリアライザに提供される。ブロック1335の後、方法1300は終了する。
図14を参照すると、複数のレーンに対して同期クロスドメインクロッシングを達成する方法の一実施形態が示されている。回路は、複数のデータ信号及び複数の対応するグローバルクロック信号を受信する(ブロック1405)。また、回路は、複数のローカルクロック信号を生成する(ブロック1410)。例えば、一実施形態では、回路は、異なるローカルPLLを使用して各ローカルクロック信号を生成する。回路は、バレルシフタを用いて1UIステップにおける位相にわたって各ローカルクロックをスウィープすると共に、エッジ遷移を検出するように、対応するグローバルクロックによってクロックされたレジスタによりローカルクロックをサンプリングする(ブロック1415)。一実施形態では、レジスタの出力は、エッジ遷移を検出する制御ロジックに結合される。一実施形態では、制御ロジックは、有限状態機械(FSM)を含む。一実施形態では、エッジ遷移は、立ち上がりエッジ遷移(すなわち、論理「0」から論理「1」への)である。
次に、制御ロジックは、エッジ遷移を検出したことに応じて、各ローカルクロックが対応するグローバルクロックと整合していると判別する(ブロック1420)。次いで、各ローカルクロックの位相は、セットアップ要件及びホールドタイミング要件を満たすように、対応するグローバルクロックに対して調整される(ブロック1425)。次に、各データ信号は、対応する位相調整されたローカルクロックを使用してサンプリングされる(ブロック1430)。次いで、サンプリングされたデータは、追加の処理及び/又は記憶のために後続のステージに提供される(ブロック1435)。一実施形態では、サンプリングされたデータは、デシリアライザに提供される。ブロック1435の後、方法1400は終了する。
図15を参照すると、低減したレイテンシで複数のレーンにわたってデスキューする方法1500の一実施形態が示されている。複数のレーンの各々は、タイミングウィンドウの最初に(すなわち、最大ホールド時間、最小セットアップ時間)各ローカルクロックをグローバルクロックと同期させるようにトレーニングされる(ブロック1505)。一実施形態では、(図14の)方法1400は、ブロック1505を実施するよう実行される。次に、各レーンのシンボルタイミングがチェックされる(ブロック1510)。何れのレーンも正確なシンボル整合を有していない場合(条件ブロック1515:「レーンなし」)、各レーンは、単一のステップだけシンボル回転される(ブロック1520)。一実施形態では、単一のステップだけ各レーンをシンボル回転させることは、1つおきのクロック(ずれた位相を有するレーンのバレルシフタにより生成されたクロック)を単一単位間隔だけシフトすることを含む。ずれた位相を有するバレルシフタにより生成されたクロックは、レーンから捕捉されたデータサンプルを非直列化するフロップの第1の列に提供される。ブロック1520の後、方法1500は、ブロック1510に戻る。
レーンのいくつかが正確なシンボル整合を有する場合(条件ブロック1515:「いくつかのレーン」)、ロックされていないレーンは、単一のステップだけシンボル回転される(ブロック1525)。一実施形態では、ブロック1520,1525は、(図6の)回路600を使用して実行される。ブロック1525の後、タイミングウィンドウの最後に到達した場合(条件ブロック1530:「はい」)、全てのロックされたレーン及びグローバルクロックは、誤った回転を補償するように回転される(ブロック1535)。ブロック1535の後、方法1500は、ブロック1510に戻る。タイミングウィンドウの最後に到達していない場合(条件ブロック1530:「いいえ」)、方法1500は、ブロック1525に戻る。全てのレーンが正確なシンボル整合を有する場合(条件ブロック1515:「全てのレーン」)、方法1500は終了する。
図16を参照すると、回路表現1605を記憶する非一時的なコンピュータ可読記憶媒体1600の一実施形態を示すブロック図が示されている。一実施形態では、回路製造システム1610は、非一時的なコンピュータ可読記憶媒体1600に記憶された回路表現1605を処理し、回路表現1605に基づいて、任意の数の集積回路1615A~Nを製造する。
非一時的なコンピュータ可読記憶媒体1600は、様々な適切なタイプのメモリデバイス又は記憶装置の何れかを含んでもよい。媒体1600は、インストール媒体(例えば、サムドライブ、CD-ROM)、コンピュータシステムメモリ若しくはランダムアクセスメモリ(例えば、DRAM、DDR RAM、SRAM、EDO RAM、Rambus RAM)、不揮発性メモリ(例えば、フラッシュ、磁気媒体、ハードドライブ、光学記憶装置)、レジスタ、又は、他のタイプのメモリ素子であってもよい。媒体1600は、他のタイプの非一時的なメモリと共に、これらの何れかの組み合わせを含んでもよい。媒体1600は、異なる位置に存在する(例えば、ネットワークを介して接続された異なるコンピュータシステムにおける)2つ以上のメモリ媒体を含んでもよい。
様々な実施形態では、回路表現1605は、これらに限定されないが、VHDL、Verilog、SystemC、System Verilog、RHDL等のハードウェア記述言語を含む、様々な適切なコンピュータ言語の何れかを使用して指定される。回路表現1605は、集積回路1615A~Nのうち1つ以上の少なくとも一部を製造するために、回路製造システム1610によって使用可能である。回路表現1605のフォーマットは、少なくとも1つの回路製造システム1610によって認識可能である。いくつかの実施形態では、回路表現1605は、集積回路1615A~Nの合成及び/又はレイアウトを指定する1つ以上のセルライブラリを含む。
回路製造システム1610は、集積回路を製造するように構成された様々な適切な素子の何れかを含む。これは、例えば、半導体材料を堆積させる(例えば、マスキングを含むことができるウェハー上に)素子、材料を除去する素子、堆積された材料の形状を変える素子、材料を変更する(例えば、材料をドープし、又は、紫外線加工を使用して、比誘電率を変更することによって)素子等を含んでもよい。また、回路製造システム1610は、正確な動作のために製造された回路のテストを実行してもよい。
様々な実施形態では、集積回路1615A~Nは、本明細書で説明する機能の何れかを実行することを含むことができる、回路表現1605によって指定された回路設計に従って動作する。例えば、集積回路1615A~Nは、本明細書で示す回路に示される様々な要素及び/又は本明細書で示す回路の複数のインスタンスの何れかを含んでもよい。更に、集積回路1615A~Nは、他の構成要素と共に、本明細書で説明する様々な機能を実行してもよい。例えば、集積回路1615A~Nは、供給電圧を提供するように構成された電圧供給回路に結合されてもよい(例えば、電圧供給装置自体を含むこととは反対に)。更に、本明細書で説明する機能は、複数の接続された集積回路によって実行されてもよい。
本明細書で使用するように、「回路の設計を指定した回路表現…」という形式のフレーズは、要素を満たすために問題の回路が製造されなければならないことを示唆するわけではない。むしろ、このフレーズは、回路表現が、製造されると、指定された動作を実行するように構成されるか、指定されたコンポーネントを含むことを記述していることを示す。
様々な実施形態では、プログラム命令は、本明細書で説明する方法及び/又はメカニズムを実装するために使用される。例えば、ハードウェアの動作や設計を記述するプログラム命令が書き込まれる。一実施形態では、このようなプログラム命令は、Verilog等のハードウェア設計言語(HDL)によって表される。様々な実施形態では、プログラム命令は、様々な非一時的なコンピュータ可読記憶媒体の何れかに記憶される。記憶媒体は、使用中宇にコンピューティングシステムによってアクセス可能であり、回路製造、プログラム実行又は他のために、プログラム命令をコンピューティングシステムに供給する。一般的に、このようなコンピューティングシステムは、少なくとも1つのメモリと、プログラム命令を実行するように構成された1つ以上のプロセッサと、を含む。
上述した実施形態は、実施形態の非限定的な例に過ぎないことを強調しておきたい。上記の開示が完全に認識されると、多数の変形及び修正が当業者にとって明らかになるであろう。以下の特許請求の範囲は、全てのこのような変形及び修正を包含すると解釈されることが意図される。

Claims (20)

  1. 複数の通信レーンと、
    制御ロジックと、を備え、
    前記制御ロジックは、
    前記複数の通信レーンの各々のレーンが正確なシンボル整合を有するかどうかを判別することと、
    前記複数の通信レーンの全てが不正確なシンボル整合を有すると判別したことに応じて、各々のレーンを単一のステップだけシンボル回転させることと、
    前記複数の通信レーンの全てではないが一部が正確なシンボル整合を有すると判別したことに応じて、不正確なシンボル整合を有するレーンを単一のステップだけシンボル回転させることと、
    前記複数の通信レーンの全てが正確なシンボル整合を有すると判別したことに応じて、複数のローカルクロックを使用して複数のデータ信号をサンプリングして、複数のデータシーケンスを生成することと、
    を行うように構成されている、
    回路。
  2. 前記制御ロジックは、前記複数の通信レーンの全てが正確なシンボル整合を有する前に第1のタイミングウィンドウの終わりに到達したと判別したことに応じて、
    正確なシンボル整合を有するレーンをシンボル回転させ、対応するグローバルクロックの位相を調整して、誤ったシンボル回転を補償することと、
    第2のタイミングウィンドウの最初に、前記複数の通信レーンの各々のレーンが正確なシンボル整合を有するかどうかを判別することと、
    を行うように構成されている、
    請求項1の回路。
  3. 前記回路は、
    前記複数の通信レーンのレーン毎のバレルシフタであって、各バレルシフタは、入力データサンプルを非直列化するために、ずれた位相を有する複数のクロックを生成するように構成されている、バレルシフタと、
    レーン毎の複数の列のレジスタであって、前記ずれた位相を有する複数のクロックは、前記入力データサンプルをサンプリングするためのレジスタの第1の列に結合されている、複数の列のレジスタと、をさらに備える、
    請求項1の回路。
  4. 前記レジスタの第1の列からの出力は、レジスタの第2の列の入力に結合されており、前記レジスタの第2の列の各レジスタは、前記レーンの対応するローカルクロックによってクロックされる、
    請求項3の回路。
  5. 前記レーンを単一のステップだけシンボル回転させることは、前記ずれた位相を有する複数のクロックの1つおきのクロックの位相を単一単位間隔だけシフトすることを含む、
    請求項3の回路。
  6. 前記制御ロジックは、
    前記複数のレーンの各々のレーンが正確なシンボル整合を有するかどうかを判別する前に、タイミングウィンドウの最初に、前記レーンのローカルクロックを対応するグローバルクロックと同期させるように各々のレーンをトレーニングするように構成されている、
    請求項1の回路。
  7. 前記タイミングウィンドウの最初に、前記レーンのローカルクロックを対応するグローバルクロックと同期させるように各々のレーンをトレーニングすることは、
    所定のレジスタを用いて、前記対応するグローバルクロックで前記ローカルクロックをサンプリングすることと、
    所定のバレルシフタを使用して、エッジ遷移が検出されるまで前記ローカルクロックを位相にわたってスウィープすることと、
    前記エッジ遷移を検出したことに応じて、前記ローカルクロックが前記対応するグローバルクロックと整合することを判別することと、
    前記レーン上でデータ信号をサンプリングするためのセットアップ要件及びホールドタイミング要件を満たすように、前記ローカルクロックの位相を調整することと、を含む、
    請求項6の回路。
  8. 前記複数のレーンの各々のレーンが正確なシンボル整合を有するかどうかを判別することと、
    前記複数のレーンの全てが不正確なシンボル整合を有すると判別したことに応じて、各々のレーンを単一のステップだけシンボル回転させることと、
    前記複数のレーンの全てではないがいくつかが正確なシンボル整合を有すると判別したことに応じて、不正確なシンボル整合を有するレーンを単一のステップだけシンボル回転させることと、
    前記複数のレーンの全てが正確なシンボル整合を有すると判別したことに応じて、複数のローカルクロックを使用して複数のデータ信号をサンプリングして、複数のデータシーケンスを生成することと、を含む、
    方法。
  9. 前記方法は、前記複数の通信レーンの全てが正確なシンボル整合を有する前に第1のタイミングウィンドウの終わりに到達したと判別したことに応じて、
    正確なシンボル整合を有するレーンをシンボル回転させ、対応するグローバルクロックの位相を調整して、誤ったシンボル回転を補償することと、
    第2のタイミングウィンドウの最初に、前記複数の通信レーンの各々のレーンが正確なシンボル整合を有するかどうかを判別することと、をさらに含む、
    請求項8の方法。
  10. 前記複数のレーンのレーン毎のバレルシフタを用いて、入力データサンプルを非直列化するために、ずれた位相を有する複数のクロックを生成することと、
    前記入力データサンプルをサンプリングするためのレーン毎のレジスタの第1の列によって、前記ずれた位相を有する複数のクロックを受信することと、をさらに含む、
    請求項8の方法。
  11. レジスタの第2の列の入力において、前記レジスタの第1の列からの出力を受信することをさらに含み、前記レジスタの第2の列の各レジスタは、前記レーンの対応するローカルクロックによってクロックされる、
    請求項10の方法。
  12. 前記レーンを単一のステップだけシンボル回転させることは、前記ずれた位相を有する複数のクロックの1つおきのクロックの位相を単一単位間隔だけシフトすることを含む、
    請求項10の方法。
  13. 前記方法は、前記複数のレーンの各々のレーンが正確なシンボル整合を有するかどうかを判別する前に、タイミングウィンドウの最初に、前記レーンのローカルクロックを対応するグローバルクロックと同期させるように各々のレーンをトレーニングすることを含む、
    請求項8の方法。
  14. 前記タイミングウィンドウの最初に、前記レーンのローカルクロックを対応するグローバルクロックと同期させるように各々のレーンをトレーニングすることは、
    所定のレジスタを用いて、前記対応するグローバルクロックで前記ローカルクロックをサンプリングすることと、
    所定のバレルシフタを使用して、エッジ遷移が検出されるまで前記ローカルクロックを位相にわたってスウィープすることと、
    前記エッジ遷移を検出したことに応じて、前記ローカルクロックが前記対応するグローバルクロックと整合することを判別することと、
    前記レーン上でデータ信号をサンプリングするためのセットアップ要件及びホールドタイミング要件を満たすように、前記ローカルクロックの位相を調整することと、を含む、
    請求項13の方法。
  15. 第1の機能ユニットと、
    複数の通信レーンを有するチャネルと、
    前記チャネルを介して前記第1の機能ユニットに結合された第2の機能ユニットと、を備え、
    前記第1の機能ユニットは、
    前記複数の通信レーンの各々のレーンが正確なシンボル整合を有するかどうかを判別することと、
    前記複数のレーンの全てが不正確なシンボル整合を有すると判別したことに応じて、各々のレーンを単一のステップだけシンボル回転させることと、
    前記複数の通信レーンの全てではないが一部が正確なシンボル整合を有すると判別したことに応じて、不正確なシンボル整合を有するレーンを単一のステップだけシンボル回転させることと、
    前記複数の通信レーンの全てが正確なシンボル整合を有すると判別したことに応じて、複数のローカルクロックを使用して複数のデータ信号をサンプリングして、複数のデータシーケンスを生成することと、
    を行うように構成されている、
    システム。
  16. 前記第1の機能ユニットは、前記複数の通信レーンの全てが正確なシンボル整合を有する前に第1のタイミングウィンドウの終わりに到達したと判別したことに応じて、
    正確なシンボル整合を有するレーンをシンボル回転させ、対応するグローバルクロックの位相を調整して、誤ったシンボル回転を補償することと、
    第2のタイミングウィンドウの最初に、前記複数の通信レーンの各々のレーンが正確なシンボル整合を有するかどうかを判別することと、
    を行うように構成されている、
    請求項15のシステム。
  17. 前記第1の機能ユニットは、
    前記複数の通信レーンのレーン毎のバレルシフタであって、各バレルシフタは、入力データサンプルを非直列化するために、ずれた位相を有する複数のクロックを生成するように構成されている、バレルシフタと、
    レーン毎の複数の列のレジスタであって、前記ずれた位相を有する複数のクロックは、前記入力データサンプルをサンプリングするためのレジスタの第1の列に結合されている、複数の列のレジスタと、をさらに備える、
    請求項15のシステム。
  18. 前記レジスタの第1の列からの出力は、レジスタの第2の列の入力に結合されており、前記レジスタの第2の列の各レジスタは、前記レーンの対応するローカルクロックによってクロックされる、
    請求項17のシステム。
  19. 前記レーンを単一のステップだけシンボル回転させることは、前記ずれた位相を有する複数のクロックの1つおきのクロックの位相を単一単位間隔だけシフトすることを含む、
    請求項17のシステム。
  20. 前記第1の機能ユニットは、
    前記複数のレーンの各々のレーンが正確なシンボル整合を有するかどうかを判別する前に、タイミングウィンドウの最初に、前記レーンのローカルクロックを対応するグローバルクロックと同期させるように各々のレーンをトレーニングするように構成されている、
    請求項15のシステム。
JP2021533834A 2019-04-29 2020-04-27 マルチチップモジュール上の物理レイヤインタフェースに対するデスキュー方法 Active JP7359854B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023167835A JP2023171864A (ja) 2019-04-29 2023-09-28 マルチチップモジュール上の物理レイヤインタフェースに対するデスキュー方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/397,848 US10581587B1 (en) 2019-04-29 2019-04-29 Deskewing method for a physical layer interface on a multi-chip module
US16/397,848 2019-04-29
PCT/US2020/030086 WO2020223159A2 (en) 2019-04-29 2020-04-27 Deskewing method for a physical layer interface on a multi-chip module

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023167835A Division JP2023171864A (ja) 2019-04-29 2023-09-28 マルチチップモジュール上の物理レイヤインタフェースに対するデスキュー方法

Publications (2)

Publication Number Publication Date
JP2022530591A true JP2022530591A (ja) 2022-06-30
JP7359854B2 JP7359854B2 (ja) 2023-10-11

Family

ID=69645793

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021533834A Active JP7359854B2 (ja) 2019-04-29 2020-04-27 マルチチップモジュール上の物理レイヤインタフェースに対するデスキュー方法
JP2023167835A Pending JP2023171864A (ja) 2019-04-29 2023-09-28 マルチチップモジュール上の物理レイヤインタフェースに対するデスキュー方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023167835A Pending JP2023171864A (ja) 2019-04-29 2023-09-28 マルチチップモジュール上の物理レイヤインタフェースに対するデスキュー方法

Country Status (6)

Country Link
US (3) US10581587B1 (ja)
EP (1) EP3963846A2 (ja)
JP (2) JP7359854B2 (ja)
KR (2) KR102578608B1 (ja)
CN (1) CN113228554A (ja)
WO (1) WO2020223159A2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10581587B1 (en) * 2019-04-29 2020-03-03 Advanced Micro Devices, Inc. Deskewing method for a physical layer interface on a multi-chip module

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000029828A (ja) * 1998-03-02 2000-01-28 Internatl Business Mach Corp <Ibm> バスのスキュ―を補償するための方法および装置
JP2002300031A (ja) * 2001-04-02 2002-10-11 Fujitsu Ltd サンプリング回路
US20050005051A1 (en) * 2003-07-02 2005-01-06 Wayne Tseng Circuit and method for aligning data transmitting timing of a plurality of lanes
KR20060059615A (ko) * 2004-11-29 2006-06-02 한국전자통신연구원 Pci 익스프레스 프로토콜용 다중채널 스큐 제거 장치
US20070177701A1 (en) * 2006-01-27 2007-08-02 Ati Technologies Inc. Receiver and method for synchronizing and aligning serial streams
JP2008172657A (ja) * 2007-01-15 2008-07-24 Kawasaki Microelectronics Kk 受信装置
WO2012153843A1 (ja) * 2011-05-12 2012-11-15 シャープ株式会社 信号伝送方式及び送信装置
JP2013055502A (ja) * 2011-09-05 2013-03-21 Ricoh Co Ltd シリアル通信回路
US20140218221A1 (en) * 2013-02-05 2014-08-07 Altera Corporation Techniques For Alignment of Parallel Signals
JP2014216981A (ja) * 2013-04-30 2014-11-17 富士通株式会社 受信装置、情報処理装置及びデータ受信方法
US20150078495A1 (en) * 2012-03-13 2015-03-19 Rambus Inc. Clock and Data Recovery Having Shared Clock Generator
US20150293175A1 (en) * 2014-04-10 2015-10-15 Ching-Sheng Chang Method and apparatus for performing de-skew control

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5684794A (en) * 1996-01-25 1997-11-04 Hazeltine Corporation Validation of subscriber signals in a cellular radio network
US6212246B1 (en) * 1996-11-21 2001-04-03 Dsp Group, Inc. Symbol-quality evaluation in a digital communications receiver
US6288656B1 (en) 1999-12-21 2001-09-11 Lsi Logic Corporation Receive deserializer for regenerating parallel data serially transmitted over multiple channels
AU2001253448A1 (en) * 2000-04-11 2001-10-23 Parthus Technologies Plc Method and apparatus for multi-lane communication channel with deskewing capability
US6819683B2 (en) * 2001-01-19 2004-11-16 Lucent Technologies Inc. Communications system and associated deskewing and word framing methods
US6654824B1 (en) * 2001-08-28 2003-11-25 Crossroads Systems, Inc. High-speed dynamic multi-lane deskewer
EP1365555A1 (en) * 2002-05-20 2003-11-26 Texas Instruments Limited Circular buffer for delay compensation in parallel transmission
DE10356127A1 (de) * 2003-12-02 2005-07-07 Robert Bosch Gmbh Einrichtung zur Steuerung eines Speichers
US7995695B2 (en) * 2008-01-04 2011-08-09 Agere Systems Inc. Data alignment method for arbitrary input with programmable content deskewing info
CN103782527B (zh) * 2011-09-12 2016-11-16 英特尔公司 一种服务于机器到机器装置的一个或多个群组的基站、机器到机器装置及信息处理系统
GB2498937A (en) * 2012-01-31 2013-08-07 Texas Instruments Ltd A high data rate SerDes receiver arranged to receive input from a low data rate SerDes transmitter
US9059850B2 (en) * 2012-03-29 2015-06-16 Broadcom Corporation Data alignment over multiple physical lanes
KR101905039B1 (ko) * 2013-01-18 2018-10-08 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 데이터스트림들 중에서 동기화된 시작 심벌 식별자들을 갖는 적어도 두 개의 데이터스트림으로부터의 심벌들을 갖는 소스 블록들을 사용하는 순방향 오류 정정
US9313058B2 (en) * 2013-03-07 2016-04-12 Qualcomm Incorporated Compact and fast N-factorial single data rate clock and data recovery circuits
US20140270024A1 (en) * 2013-03-14 2014-09-18 Nokia Corporation Apparatus and method for detection of time tracking failure
US9755818B2 (en) * 2013-10-03 2017-09-05 Qualcomm Incorporated Method to enhance MIPI D-PHY link rate with minimal PHY changes and no protocol changes
US9203599B2 (en) * 2014-04-10 2015-12-01 Qualcomm Incorporated Multi-lane N-factorial (N!) and other multi-wire communication systems
US9735948B2 (en) * 2013-10-03 2017-08-15 Qualcomm Incorporated Multi-lane N-factorial (N!) and other multi-wire communication systems
EP3063640B1 (en) * 2013-10-30 2020-10-07 Intel Corporation A method, apparatus and system for measuring latency in a physical unit of a circuit
EP2903199B1 (en) * 2014-01-31 2019-03-06 Stichting IMEC Nederland Circuit for symbol timing synchronization
US9191193B1 (en) * 2014-07-18 2015-11-17 Qualcomm Incorporated Clock synchronization
JP7029220B2 (ja) * 2015-02-09 2022-03-03 ベドロック・オートメーション・プラットフォームズ・インコーポレーテッド 多チャネル切り替え能力を有する入力/出力モジュール
US9602271B2 (en) * 2015-06-01 2017-03-21 Globalfoundries Inc. Sub-nanosecond distributed clock synchronization using alignment marker in ethernet IEEE 1588 protocol
US9496879B1 (en) * 2015-09-01 2016-11-15 Qualcomm Incorporated Multiphase clock data recovery for a 3-phase interface
US9485080B1 (en) * 2015-09-01 2016-11-01 Qualcomm Incorporated Multiphase clock data recovery circuit calibration
KR101906149B1 (ko) * 2015-12-30 2018-10-10 어보브반도체 주식회사 개선된 심볼 타이밍 오프셋 보상을 사용하는 블루투스 수신 방법 및 장치
EP3411999A1 (en) * 2016-02-01 2018-12-12 Qualcomm Incorporated Unidirectional clock signaling in a high-speed serial link
US9832006B1 (en) * 2016-05-24 2017-11-28 Intel Corporation Method, apparatus and system for deskewing parallel interface links
US10742390B2 (en) * 2016-07-13 2020-08-11 Novatek Microelectronics Corp. Method of improving clock recovery and related device
US10419246B2 (en) * 2016-08-31 2019-09-17 Qualcomm Incorporated C-PHY training pattern for adaptive equalization, adaptive edge tracking and delay calibration
US10581587B1 (en) * 2019-04-29 2020-03-03 Advanced Micro Devices, Inc. Deskewing method for a physical layer interface on a multi-chip module

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000029828A (ja) * 1998-03-02 2000-01-28 Internatl Business Mach Corp <Ibm> バスのスキュ―を補償するための方法および装置
JP2002300031A (ja) * 2001-04-02 2002-10-11 Fujitsu Ltd サンプリング回路
US20050005051A1 (en) * 2003-07-02 2005-01-06 Wayne Tseng Circuit and method for aligning data transmitting timing of a plurality of lanes
KR20060059615A (ko) * 2004-11-29 2006-06-02 한국전자통신연구원 Pci 익스프레스 프로토콜용 다중채널 스큐 제거 장치
US20070177701A1 (en) * 2006-01-27 2007-08-02 Ati Technologies Inc. Receiver and method for synchronizing and aligning serial streams
JP2008172657A (ja) * 2007-01-15 2008-07-24 Kawasaki Microelectronics Kk 受信装置
WO2012153843A1 (ja) * 2011-05-12 2012-11-15 シャープ株式会社 信号伝送方式及び送信装置
JP2014140090A (ja) * 2011-05-12 2014-07-31 Sharp Corp 信号伝送方式及び送信装置
JP2013055502A (ja) * 2011-09-05 2013-03-21 Ricoh Co Ltd シリアル通信回路
US20150078495A1 (en) * 2012-03-13 2015-03-19 Rambus Inc. Clock and Data Recovery Having Shared Clock Generator
US20140218221A1 (en) * 2013-02-05 2014-08-07 Altera Corporation Techniques For Alignment of Parallel Signals
JP2014216981A (ja) * 2013-04-30 2014-11-17 富士通株式会社 受信装置、情報処理装置及びデータ受信方法
US20150293175A1 (en) * 2014-04-10 2015-10-15 Ching-Sheng Chang Method and apparatus for performing de-skew control

Also Published As

Publication number Publication date
EP3963846A2 (en) 2022-03-09
KR102502615B1 (ko) 2023-02-23
US10581587B1 (en) 2020-03-03
CN113228554A (zh) 2021-08-06
JP7359854B2 (ja) 2023-10-11
US20210111861A1 (en) 2021-04-15
WO2020223159A2 (en) 2020-11-05
KR102578608B1 (ko) 2023-09-14
US10873445B2 (en) 2020-12-22
KR20210089773A (ko) 2021-07-16
US20200344039A1 (en) 2020-10-29
WO2020223159A3 (en) 2020-12-10
JP2023171864A (ja) 2023-12-05
US11283589B2 (en) 2022-03-22
KR20230030028A (ko) 2023-03-03

Similar Documents

Publication Publication Date Title
US8832336B2 (en) Reducing latency in serializer-deserializer links
US8073090B2 (en) Synchronous de-skew with programmable latency for multi-lane high speed serial interface
US7796652B2 (en) Programmable asynchronous first-in-first-out (FIFO) structure with merging capability
US8942333B2 (en) Apparatus and methods for clock alignment for high speed interfaces
US7571340B2 (en) Eliminating receiver clock drift caused by voltage and temperature change in a high-speed I/O system that uses a forwarded clock
US7198197B2 (en) Method and apparatus for data acquisition
JPWO2011077573A1 (ja) 信号受信回路、メモリコントローラ、プロセッサ、コンピュータ及び位相制御方法
EP1813039A2 (en) Method and apparatus for aligning data in a wide, high-speed, source synchronous parallel link
TW201104682A (en) Apparatus and method for data strobe and timing variation detection of an SDRAM interface
US7242737B2 (en) System and method for data phase realignment
JP2023171864A (ja) マルチチップモジュール上の物理レイヤインタフェースに対するデスキュー方法
US7593498B2 (en) Method and apparatus for automatic rate identification and channel synchronization in a master-slave setting for high data throughput applications
CN112052203A (zh) 半导体装置、半导体系统和操作半导体装置的方法
US9721627B2 (en) Method and apparatus for aligning signals
US8718215B2 (en) Method and apparatus for deskewing data transmissions
US20230421161A1 (en) Clock data recovery circuits and electronic systems that support data-based clock recovery
US20230305979A1 (en) Periodic receiver clock data recovery with dynamic data edge
JP2011254386A (ja) データ受信回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211025

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230314

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230822

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230825

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230928

R150 Certificate of patent or registration of utility model

Ref document number: 7359854

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150