クロック・リカバリ

埋め込みクロックのシステムでは、受信側のPLL等で生成されたクロックの周波数・位相を受信データ・ストリームに合わせます。その後、このクロックでデータを取り出します。この双方を合わせてクロック・データ・リカバリと呼ぶ場合もあります。

図4-8 レシーバの構成ブロック図

受信データ・ストリ-ムに位相を合わせることから、高速シリアル・インタフェースはジッタの影響を大きく受けることになります。またジッタの影響はクロック・リカバリ回路のPLL特性に依存し、PLLの入力と出力間のジッタ伝達関数で表現されます。

  • カットオフ周波数以下のジッタ成分に追従:ジッタは吸収されます。つまり入力信号の持つ揺らぎと同じ揺らぎを持ったクロックを生成します。その結果、入力データとリカバリされたクロックとの相対的な関係は維持されたままとなり、見掛け上、ジッタが吸収されたことになります。
  • カットオフ周波数以上のジッタ成分に追従できない:ジッタは吸収されません。つまり入力信号が揺らぎを持つのに対し、揺らぎのないクロックを生成します。その結果、入力データはクロックに対して相対的に揺らぎを持つことになります。
  • PLLが特定の周波数にピーキングを持つと逆にジッタが増加:2次PLLは原理上、ピーキングを持ちます。これゆえピーキング特性は管理される必要があります。
  • リファレンス・クロックのジッタの影響も受ける:リファレンス・クロックはPLLを使ってデータ・レートまでクロックを逓倍しますが、そこで使用するPLLもまた上記のようなジッタ特性を持ちます。つまりPLLに入力されるリファレンス・クロックのジッタとジッタ伝達関数に応じて、ジッタの出方が変わります。なお、トランスミッタでもPLLを使用していますが同様なことが生じます。

図4-9 クロック・データ・リカバリのブロック図とそのジッタ特性

エラスティック・バッファ(弾性バッファ)

送信側と受信側の周波数のずれ(偏差)を特定コードの挿抜により吸収します。

受信側のシリアライザまでの物理層は送信データにクロックを同期させてデータを取り込むため、そこで差が出ることはないのですが、それ以降のロジック側が別々のリファレンス・クロックを使用している場合、クロック速度差による影響が生じます。

送信側のデータが受信側よりも速い場合、データの取り込みが間に合わなくなりデータの取り損ない、つまりデータのロストが生じます。逆に送信側のデータが受信側よりも遅い場合、データの取り込みが早く終わる、つまり空のデータや同じデータを2度取り込んでしまうことになります。そのためデータとして影響のないようなダミー文字列をデータの中に含めて送信し、さらにダミー文字(列)を受信側のエラスティック・バッファで挿入・削除することにより、送信側と受信側のクロック周波数偏差を吸収します。

このダミー文字列のことをPCI ExpressやUSB3.0ではSKIPオーダード・セット、SATAではALLIGNプリミティブと呼び、規格により周波数偏移、ダミー文字列およびダミー文字列を挿入する周期が規定されています。また周波数偏移の周期も規定されており、これらからエラスティック・バッファの容量が設計されています。そのため上記のいずれかの要素が異なるとデータの取り損ないが発生する可能性が生じます。

送信側と受信側の周波数のずれは、特にスペクトラム拡散クロック(SSC:Spread Spectrum Clock)を採用し、送信側と受信側で別々のリファレンス・クロック・ソースを持つシステムで顕著です(例:USB3.0、SATA)。それゆえ実際にSSCは相互接続性問題を引き起こす原因の1つになっています。

図4-10 エラスティック・バッファと動作

表4-3 エラスティック・バッファ関係の仕様例

デスクランブラ

送信側のスクランブラで攪拌されたデータを元のデータに変換します。スクランブラでご説明したように、受信側では受信データに対し、送信側と同じ乱数を排他的論理和することで、元のデータに戻すことができます。