(57)【要約】【課題】２つの基準クロックを有するリドライバ及びその動作方法を提供する【解決手段】２基準クロックに設計されたリドライバは、インバウンドエラスティックバッファ及びアウトバウンドエラスティックバッファを含む。  ノースブリッジへの送信データ及びノースブリッジからの受信データは、共通基準クロックアーキテクチャを使用する。  外部ブレードへの送信データ及び外部ブレードからの受信データは、個別基準クロックアーキテクチャを使用する。【選択図】図４
2011519077.tif 000002
【特許請求の範囲】
【請求項１】
２つの基準クロックを有するリドライバであって、前記リドライバは、ＰＣＩエクスプレスリンクを通じて外部コンポーネントをハブに結合し、前記リドライバは、
インバウンドエラスティックバッファであって、
前記リドライバと前記外部コンポーネントとの間のインバウンドエラスティックバッファインターフェース用の個別基準クロックと、
前記ハブと前記リドライバとの間のインバウンドエラスティックバッファインターフェース用の共通基準クロックと、
インバウンド復号器／デスクランブラ、インバウンドスクランブラ／符号化器、およびインバウンド線形シフトレジスタと
を備えるインバウンドエラスティックバッファと、
アウトバウンドエラスティックバッファであって、
前記リドライバと前記外部コンポーネントとの間のアウトバウンドエラスティックバッファインターフェース用の前記個別基準クロックと、
前記ハブと前記リドライバとの間のアウトバウンドエラスティックバッファインターフェース用の前記共通基準クロックと、
アウトバウンド復号器／デスクランブラ、アウトバウンドスクランブラ／符号化器、およびアウトバウンド線形シフトレジスタと
を備えるアウトバウンドエラスティックバッファと、
前記リドライバの外部コンポーネント側および前記リドライバのハブ側に結合されたクロックリカバリロジックと
を備えるリドライバ。
【請求項２】
前記インバウンドエラスティックバッファは、バッファロジックおよびオーバーフロートリップポイントをさらに備え、
前記オーバーフロートリップポイントは、
第１のオーバーフロートリップポイントであって、前記第１のオーバーフロートリップポイントに達し、前記リンクが非アクティブ状態にあるときに、前記バッファロジックは、アイドルデータおよびトレーニング集合全体の一方をデータストリームから除去する、第１のオーバーフロートリップポイントと、
第２のオーバーフロートリップポイントであって、前記第２のオーバーフロートリップポイントに達したときに、前記バッファロジックは、ＤＬＬＰパケットを前記データストリームから除去する、第２のオーバーフロートリップポイントと、
第３のオーバーフロートリップポイントであって、前記第３のオーバーフロートリップポイントに達したときに、前記バッファロジックは、トランザクションレイヤパケットを前記データストリームから除去する、第３のオーバーフロートリップポイントと
を含む
請求項１に記載のリドライバ。
【請求項３】
ＤＬＬＰセマフォをさらに備え、特定のタイプのＤＬＬＰパケットが前記データストリームから除去されたとき、前記バッファロジックは、対応するＤＬＬＰセマフォをセットし、それによって、そのタイプのＤＬＬＰパケットのさらなる除去が防止される
請求項２に記載のリドライバ。
【請求項４】
トランザクションレイヤパケットセマフォをさらに備え、トランザクションレイヤパケットが除去されたとき、トランザクションレイヤパケットセマフォがセットされる
請求項２に記載のリドライバ。
【請求項５】
除去されたトランザクションレイヤパケットに関するシーケンス番号を記憶するローカルレジスタをさらに備え、それによって、前記除去されたトランザクションレイヤパケットが回復されたとき、前記記憶されたシーケンス番号は前記ローカルレジスタから削除され、前記トランザクションレイヤパケットセマフォはリセットされる
請求項４に記載のリドライバ。
【請求項６】
前記インバウンドエラスティックバッファは、
第１のアンダーフロートリップポイントであって、前記第１のアンダーフロートリップポイントに達したときに、前記バッファロジックは、前記インバウンドエラスティックバッファを出る前記データストリームにＳＫＰシンボルを追加する、第１のアンダーフロートリップポイントと、
第２のアンダーフロートリップポイントであって、前記第２のアンダーフロートリップポイントに達したときに、前記バッファロジックは、前記インバウンドエラスティックバッファを出る前記データストリームにアイドルデータを追加する、第２のアンダーフロートリップポイントと
をさらに備える請求項２に記載のリドライバ。
【請求項７】
前記アウトバウンドエラスティックバッファは、
バッファロジックと、
オーバーフロートリップポイントであって、前記オーバーフロートリップポイントに達したときに、前記バッファロジックは、アイドルデータ、トレーニング集合、ＤＬＬＰパケット、およびトランザクションレイヤパケットの１つ又は複数を除去する、オーバーフロートリップポイントと、
アンダーフロートリップポイントであって、前記アンダーフロートリップポイントに達したときに、前記バッファロジックは、前記アウトバウンドエラスティックバッファを出る前記データストリームにＳＫＰシンボルおよびアイドルデータを追加する、アンダーフロートリップポイントと
をさらに備える請求項１に記載のリドライバ。
【請求項８】
前記リドライバは、サーバブレード上にインストールされ、ストレージブレードが、前記ＰＣＩエクスプレスリンクを使用して前記サーバブレードに結合される
請求項１に記載のリドライバ。
【請求項９】
前記リドライバは、第１のサーバブレード上にインストールされ、第２のサーバブレードが、前記ＰＣＩエクスプレスリンクを使用して前記第１のサーバブレードに結合され、前記第２のサーバブレードは、第２の２クロックリドライバを備える
請求項１に記載のリドライバ。
【請求項１０】
前記個別基準クロックは、１００ＭＨｚの低ジッタクロックによって駆動される
請求項１に記載のリドライバ。
【請求項１１】
前記バスは、スペクトラム拡散クロックが使用可能にされたノースブリッジであり、前記外部コンポーネントは、スペクトラム拡散クロックが使用不能にされたストレージブレードである
請求項１に記載のリドライバ。
【請求項１２】
２つの基準クロックを用いるリドライバであって、
前記リドライバは、インバウンドデータ部およびアウトバウンドデータ部を有し、
前記信号コンディショナは、
前記２つの基準クロックを補償するようにインバウンドデータを調整するための手段を備えるインバウンドエラスティックバッファと、
前記２つの基準クロックを補償するようにアウトバウンドデータを調整するための手段を備えるアウトバウンドエラスティックバッファと、
前記リドライバの第１の側に結合された共通基準クロックと、
前記リドライバの第２の側に結合された個別低ジッタ基準クロックと、
前記リドライバの前記第１の側および前記第２の側に結合されたクロックリカバリロジックであって、前記リドライバの前記第１の側に結合された前記クロックリカバリロジックは、前記共通基準クロックを使用し、前記リドライバの前記第２の側に結合された前記クロックリカバリロジックは、前記個別低ジッタ基準クロックを使用する、クロックリカバリロジックと
を備える
リドライバ。
【請求項１３】
前記インバウンドエラスティックバッファは、
インバウンドエラスティックバッファ復元クロックドメインと、
インバウンドエラスティックバッファ共通基準クロックドメインと
を備える請求項１２に記載のリドライバ。
【請求項１４】
前記２つの基準クロックを補償するようにインバウンドデータを調整するための前記手段は、
インバウンド復号器／デスクランブラと、
インバウンドスクランブラ／符号化器と、
インバウンド線形シフトレジスタと
を備え、
これらはすべて、前記インバウンドエラスティックバッファシステムクロックドメインに結合される
請求項１３に記載のリドライバ。
【請求項１５】
個別基準クロックを補償するようにインバウンドデータを調整するための前記手段は、バッファロジックおよびオーバーフロートリップポイントをさらに備え、
前記オーバーフロートリップポイントは、
第１のオーバーフロートリップポイントであって、前記第１のオーバーフロートリップポイントに達したときに、前記バッファロジックは、アイドルデータおよびトレーニング集合の一方をインバウンドデータストリームから除去する、第１のオーバーフロートリップポイントと、
第２のオーバーフロートリップポイントであって、前記第２のオーバーフロートリップポイントに達したときに、前記バッファロジックは、ＤＬＬＰパケットをデータストリームから除去する、第２のオーバーフロートリップポイントと、
第３のオーバーフロートリップポイントであって、前記第３のオーバーフロートリップポイントに達したときに、前記バッファロジックは、トランザクションレイヤパケットを前記データストリームから除去する、第３のオーバーフロートリップポイントと
を備える
請求項１４に記載のリドライバ。
【請求項１６】
前記アウトバウンドエラスティックバッファは、
アウトバウンドエラスティックバッファ共通基準クロックドメインと、
アウトバウンドエラスティックバッファ低ジッタ基準クロックドメインと
を備える請求項１２に記載のリドライバ。
【請求項１７】
非共通基準クロックを補償するように前記アウトバウンドデータを調整するための前記手段は、
アウトバウンド復号器／デスクランブラと、
アウトバウンドスクランブラ／符号化器と、
アウトバウンド線形シフトレジスタと
を備え、
これらはすべて、前記アウトバウンドエラスティックバッファ低ジッタクロックドメインに結合される
請求項１６に記載のリドライバ。
【請求項１８】
個別基準クロックを補償するように前記アウトバウンドデータを調整するための前記手段は、
バッファロジックと、
オーバーフロートリップポイントであって、前記オーバーフロートリップポイントに達したときに、前記バッファロジックは、アイドルデータ、ＤＬＬＰパケット、およびトランザクションレイヤパケットの１つ又は複数を除去する、オーバーフロートリップポイントと、
アンダーフロートリップポイントであって、前記アンダーフロートリップポイントに達したときに、前記バッファロジックは、前記アウトバウンドエラスティックバッファを出る前記データストリームにＳＫＰシンボルおよびアイドルデータを追加する、アンダーフロートリップポイントと
を備える請求項１７に記載のリドライバ。
【請求項１９】
２つの基準クロックを有するリドライバを有するコンピュータシステムを動作させるための方法であって、
インバウンドデータストリームからクロックを復元することと、
前記復元されたクロックをシステムクロックと比較することと、
前記復元されたクロックが高速すぎる場合には、アイドルデータおよびトレーニング集合の一方を前記インバウンドデータストリームから除去することと、
前記復元されたクロックがまだ高速すぎる場合には、ＤＬＬＰパケットを前記インバウンドデータストリームから除去することと、
前記回復されたクロックがまだ高速すぎる場合には、ＴＬＰパケットを前記インバウンド基準ストリームから除去することと、
前記復元されたクロックが低速すぎる場合には、ＳＫＰシンボルを前記インバウンドデータストリームに追加することと、
前記復元されたクロックがまだ低速すぎる場合には、アイドルデータを前記インバウンドデータストリームに追加することと
を含む方法。
【請求項２０】
前記ＤＬＬＰパケットを除去したときにＤＬＬＰセマフォをセットすることと、
前記ＴＬＰパケットを除去したときにＴＬＰセマフォをセットすることと
をさらに含む請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野は、電子アセンブリのタイミング方式である。
【背景技術】
【０００２】
現在のいくつかのサーバブレードでは、記憶容量は限られている。
このようなサーバブレードを有するシステムの記憶容量を増加させるのに使用できる１つのアーキテクチャは、サーバブレードに近接してストレージブレードをインストールすることを伴うものである。
サーバブレード及びスレーブブレードは、ｘ４  ＰＣＩエクスプレス（ＰＣＩｅ）リンクを通じて通信する。
しかしながら、それらブレードと共に使用されるバックプレーンは、共通基準クロックをサポートしていない。
さらに、現在のｘ８６クロックアーキテクチャは、複数の出力周波数を有する低コストの水晶プラスクロック（crystal plus clock）ジェネレータを実施するので、サーバ上だけでなくサーバブレードシステム上のクロック源は、大きな位相ジッタを有する傾向がある。
加えて、ほとんどのチップベンダは、低コストのデジタルＣＤＲ（クロックデータリカバリ）回路機構を実施し、これは、高い位相ジッタ環境では適切に動作しないおそれがある。
【０００３】
現在のブレードアーキテクチャ上では個別基準クロック（ｒｅｆｃｌｋ）が使用されることに起因して、ＳＳＣ（スペクトラム拡散クロック）をサポートすることができない。
スペクトラム拡散クロックを使用するこのようないずれの試みも、おそらくそれらのアーキテクチャを故障に対して脆弱にする。
【発明の概要】
【０００４】
開示するものは、２つの基準クロックを有するリドライバである。
このリドライバは、ストレージブレード等の外部コンポーネントを、サーバブレード上のノースブリッジ又はルートコンプレックス等のハブに結合する。
リドライバは、インバウンドエラスティックバッファを含む。
このインバウンドエラスティックバッファは、リドライバと外部コンポーネントとの間のインバウンドエラスティックバッファインターフェース用の個別基準クロックと、ノースブリッジとリドライバとの間のインバウンドエラスティックバッファインターフェース用の共通基準クロックと、インバウンド復号器／デスクランブラ、インバウンドスクランブラ／符号化器、及びインバウンド線形シフトレジスタとを有する。
リドライバは、アウトバウンドエラスティックバッファをさらに含む。
このアウトバウンドエラスティックバッファは、リドライバと外部コンポーネントとの間のアウトバウンドエラスティックバッファインターフェース用の個別基準クロックと、ノースブリッジとリドライバとの間のアウトバウンドエラスティックバッファインターフェース用の共通基準クロックと、アウトバウンド復号器／デスクランブラ、アウトバウンドスクランブラ／符号化器、及びアウトバウンド線形シフトレジスタとを備える。
最後に、リドライバは、リドライバの外部コンポーネント側及びリドライバのノースブリッジ側に結合されたクロックリカバリロジックを含む。
【０００５】
複数の非共通基準クロックを用いるリドライバも開示される。
このリドライバは、インバウンドデータ部及びアウトバウンドデータ部を有する。
リドライバは、非共通基準クロックを補償するようにインバウンドデータを調整するための手段を備えるインバウンドエラスティックバッファ、及び非共通基準クロックを補償するようにアウトバウンドデータを調整するための手段を備えるアウトバウンドエラスティックバッファを含む。
リドライバは、リドライバの第１の側に結合された共通基準クロック、リドライバの第２の側に結合された低ジッタ基準クロック、並びにリドライバの第１の側及び第２の側に結合されたクロックリカバリロジックをさらに含む。
【図面の簡単な説明】
【０００６】
詳細な説明は次の図面を参照する。
これら図面では、同様の数字は同様のアイテムを参照する。
【０００７】
【図１Ａ】マルチブレードアーキテクチャの一実施形態を示す図である。
【図１Ｂ】マルチブレードアーキテクチャの一実施形態を示す図である。
【図２】スペクトラム拡散クロックで許容された周波数変動を示す図である。
【図３】２つの基準クロックを使用するマルチブレードアーキテクチャの一実施形態を示す図である。
【図４】２基準クロックリドライバアーキテクチャの一実施形態を示す図である。
【図５】高速復元クロックについて２基準クロックリドライバアーキテクチャと共に使用されるエラスティックバッファの動作の一実施形態を示す図である。
【図６】低速復元クロックについてのエラスティックバッファの動作の一実施形態を示す図である。
【図７】２基準クロックアーキテクチャの代替的なアプリケーションを示す図である。
【図８】２基準クロックアーキテクチャの代替的なアプリケーションを示す図である。
【図９】２基準クロックアーキテクチャの代替的なアプリケーションを示す図である。
【図１０】２つの基準クロックを有するコンピュータシステムコンポーネントを動作させるための方法の一実施形態を示すフローチャートである。
【発明を実施するための形態】
【０００８】
本明細書で使用されるように、コンピュータシステムは、任意の個数のアーキテクチャを包含する。
これらのアーキテクチャには、例えば、ブレードサーバシステム、ブレードストレージシステム、ノートブックコンピュータ及びそのドッキングステーション、ＰＣＩエクスプレス拡張システム、並びに共通基準クロックを有しないデバイスを使用できる他の任意のコンピューティングシステムが含まれる。
このようなアーキテクチャの例は、図４及び図７〜図９に提供される。
本明細書で使用されるように、コンピュータは、コンピュータシステムを構成するコンポーネントの一部又はサブセットも包含する。
本明細書で使用されるように、基準クロックには、低級なシステムクロック、低ジッタクロック、及びデータストリームに組み込まれたクロックが含まれる。
本明細書で使用されるように、信号コンディショナには、信号増幅器、リドライバ、及び同様のデバイスが含まれる。
【０００９】
高データ転送速度で動作するＰＣＩエクスプレスのような高速シリアル差動（serial-differential）プロトコルの出現によって、いくつかのアーキテクチャ、特に損失伝送アプリケーションでは、信号完全性が問題となっている。
受信端が、ＰＣＩエクスプレス等の高速信号プロトコルで低ビット誤り率を配信するのに必要とされるマージンを有するように、信号コンディショナを使用して、例えば等化技法及びプリエンファシス／デエンファシス技法を使用することにより信号レベル減衰及び雑音（ジッタ）を調整及び訂正することができる。
１つのこのような信号コンディショナはリドライバである。
【００１０】
スペクトラム拡散クロックは、同期デジタルシステムの設計、特にマイクロプロセッサを含む設計で使用されて、これらのシステムが生成する電磁妨害（ＥＭＩ）のスペクトル密度を低減する。
同期デジタルシステムは、その周期的な性質のために、不可避的に狭い周波数スペクトルを有するクロック信号によって駆動されるシステムである。
実際に、完全なクロック信号は、すべてそのエネルギーが単一の周波数及びその高調波に集中し、したがって、無限のスペクトル密度を有するエネルギーを放射する。
実際の同期デジタルシステムは、クロック周波数及びその高調波にわたって拡散された複数の狭帯域上に電磁エネルギーを放射し、その結果、周波数スペクトルは、一定の周波数において、電磁妨害の規制限度を超える可能性がある。
【００１１】
このＥＭＩ放射問題を回避するために、スペクトラム拡散クロックが使用されて、システムの電磁放出が、電磁両立性（ＥＭＣ）の規制を順守するように再形成される。
スペクトラム拡散クロックは、法定の限度を超えるほど十分なエネルギーをどの１つの帯域にも入れることなく、エネルギーが受信機の多数の周波数帯域に分かれるようにエネルギーを分散させる。
しかしながら、システムクロックを変更することは、クロック／データの位置合わせ不良の危険を冒すので、スペクトラム拡散クロックは、設計者にとって課題を生み出す可能性がある。
【００１２】
スペクトラム拡散クロックは、システムクロックの周波数を前後に少量ゆっくりと変調することによって成し遂げられる。
ＰＣＩエクスプレス仕様は、ダウンスペクトラム拡散クロック（down spread spectrum clocking）を可能にしている。
すなわち、データレートは、３０Ｋｈｚ〜３３Ｋｈｚの範囲内の変調レートにおいて、公称データレート周波数から＋０％〜−０．５％変調することができる。
図２を参照されたい。
しかしながら、たとえスペクトラム拡散クロックが使用可能であっても、ＰＣＩエクスプレス仕様は、依然として、送信機クロック及び受信機クロックが互いの＋／−３００ｐｐｍ内であることを要する。
この要件は、非共通基準クロックを有するシステムでは保証することができない。
【００１３】
ＰＣＩエクスプレスは、ソース同期タイミングアーキテクチャを使用する。
ソース同期タイミングアーキテクチャでは、データ及びクロックの双方が発信元デバイスのドライバから送信される。
受信デバイスは、クロックを復元して、データの同期を可能にする。
ＰＣＩエクスプレスは、転送されるクロックが、ＩＢＭの８Ｂ／１０Ｂ符号化テーブルを使用してデータストリームに組み込まれる方式を使用する。
この符号化メカニズムは、データストリームが、クロックを復元することを可能にするために十分な個数の０から１への遷移及び１から０への遷移を有することを保証する。
このメカニズムは、スキューを最小にする必要性を不要にするが、その代わり、２クロックドメインを生み出す。
すなわち、可能にされた６００ｐｐｍ許容帯域に起因して、ＰＣＩエクスプレス接続により互いに接続された２つのデバイスは、わずかに異なる周波数で動作している可能性があり、おそらくその周波数で動作していることになる。
【００１４】
ブレードアーキテクチャのＳＡＳ記憶容量を増加させるために、任意のＣクラスサーバブレードの隣にインストールするためのストレージブレード製品が提供される。
サーバブレードとストレージブレードとの間の通信は、ｘ４  ＰＣＩエクスプレスリンクを通じて行われる。
直接及び間接の２つの可能なＰＣＩエクスプレスリンク構成が、図１Ａ及び図１Ｂにそれぞれ示される。
図１Ａでは、ハーフハイトのＣクラスサーバブレード１０が、ストレージブレード２０に結合されている。
ＰＣＩエクスプレスバス１８が、サーバブレード１０上のノースブリッジ（ＮＢ）１４からストレージブレード２０上のＳＡＳ制御カード２４へ接続１６及び２６を経由して直接接続されたときに、直接リンクが確立される。
また、カード１０及び２０上には、クロック１２及び２２もそれぞれ示されている。
クロック１２及び２２は、非共通基準クロックであり、このことは、スペクトラム拡散クロックが使用可能であるときにシステム故障につながる可能性があることに留意されたい。
【００１５】
図１Ｂでは、フルハイトのＣクラスサーバブレード３０が、ストレージブレード２０の隣にインストールされている。
Ｃクラスサーバブレード３０上のＰＣＩエクスプレスバス３８は、ノースブリッジ１４からリドライバチップ３２へ接続され、さらに、リドライバチップ３２からストレージブレード２０上のＳＡＳ制御カード２４へ接続されている。
リドライバチップ３２の使用は、ＰＣＩエクスプレスバス３８のトレース長がより長くなることに起因して信号損失が追加されることを考慮したものである。
リドライバチップ３２は、メザニンカード３４上に搭載される。
２つのブレード２０及び３０は、非共通基準クロック２２及び１２をそれぞれ用いる。
【００１６】
サーバ／ストレージブレードアプリケーションにおけるスペクトラム拡散クロックによって提起された問題を解決するために、本明細書で開示するアーキテクチャは、２つの基準クロックを提供する。
このようなアーキテクチャの一例は、ストレージブレード１００がサーバブレード１２０に連結（mate）された図３に示される。
サーバブレード１２０は、例えばＣクラスサーバブレードを含む任意のタイプのサーバブレードとすることができる。
ストレージブレードは、ＰＣＩエクスプレスカード２４、コネクタ２６、及び低ジッタクロック１１０を含む。
低ジッタクロックは、通常、１００ｐｐｍ（１００万分の１）よりも小さな位相ジッタを有する。
これとは対照的に、低コストクロックは、３００ｐｐｍよりも大きな位相ジッタを有する。
低ジッタクロックでは、位相ジッタが低いだけでなく、低ジッタクロックは、電源雑音変調に対して耐性も有し、クロック周波数が非常に安定している。
共通基準クロックを使用しないどのブレードも、スペクトラム拡散クロックに対応できないことに留意されたい。
これは、ＰＣＩデバイスに標準的にインストールされているエラスティックバッファが、復元されたクロックとローカルクロックとの間で６００ｐｐｍしか補償できず、したがって、最大５，６００ｐｐｍまでのスキューを有する可能性があるスペクトラム拡散クロックと共に使用できないからである。
【００１７】
サーバブレード１２０は、ノースブリッジ１４、ＰＣＩエクスプレスリンク１３０、コネクタ１６、カード１５０上に搭載されたリドライバ２００、及びリドライバ２００のノースブリッジ側に結合されたクロック１４０を含む。
図３に示すように、ノースブリッジ１４は、リドライバ２００のノースブリッジ側に共通している基準クロック（クロック１４０）を使用する。
ノースブリッジ１４は、スペクトラム拡散クロックに対応するために、排出速度及び充填速度を調整できるエラスティックバッファを有しないが、リドライバ２００は、図４〜図６について論述するように、このようなエラスティックバッファを有する。
リドライバ２００とノースブリッジ１４との間で共通基準クロックを使用することによって、スペクトラム拡散クロックの利益をノースブリッジ１４に適用することができる。
【００１８】
リドライバ２００のストレージブレード側には、低ジッタクロック２１０が結合されている。
低ジッタ基準クロック２１０及び低ジッタ基準クロック１１０は、同じ回路設計を有する。
上述したアーキテクチャのため、リドライバ２００は、共通基準クロックアーキテクチャ１４０のクロックアーキテクチャと、個別基準クロックアーキテクチャ２１０のクロックアーキテクチャとの２つのクロックアーキテクチャで動作する。
これら２つの基準クロックアーキテクチャを使用することによって、スペクトラム拡散クロックが使用可能である一方のデバイス（例えば、ノースブリッジ１４）及び標準的なクロックでクロック制御される他方のデバイス（例えば、ストレージブレード１００）、又はそれぞれがスペクトラム拡散クロックでクロック制御される２つのデバイス等、２つのデバイスの間のクロック周波数の（わずかな）差がサポートされる。
【００１９】
上で述べたように、同期タイミングアーキテクチャでは、共通クロック源が、バス上のすべてのデバイスにクロックを供給し、そのクロックは、デバイスの送受信機がデータをクロック制御して入出力することを可能にするのに使用される。
このアーキテクチャは、クロックが正確に同時に各デバイスに届くことを要する。
しかしながら、少量のピン間スキューが許容され、これは、デバイス間のスキューを最小にするためにクロックトレースの長さを一致させなければならないことを意味する。
クロックの速度が増加するにつれて、許容されるピン間スキューは減少し、これによって、クロックトレースの一致した配線を達成することはより難しくなる。
【００２０】
２つの基準クロックアーキテクチャ、すなわち共通基準クロックアーキテクチャ及び個別基準クロックアーキテクチャの使用に伴って、データがリドライバ２００をフローするには、データは、共通基準クロックと個別基準クロックとの間の境界を横断しなければならない。
この境界は、図３のリドライバ２００を二分する破線によって比ゆ的に示されている。
この境界を遷移するために、リドライバ２００は、そのインバウンド側及びアウトバウンド側にエラスティックバッファを含む。
この境界を橋渡しすることは、一方のクロックアーキテクチャを使用してエラスティックバッファに受信データを置き、他方のクロックアーキテクチャを使用してそのエラスティックバッファからデータを引き出すことによって成し遂げられる。
これら２つの基準クロックは、わずかに異なる周波数で動作している可能性があり、スペクトラム拡散クロックが、ノースブリッジ１４用に使用可能である可能性があるので、エラスティックバッファは、オーバーフローエラー状態又はアンダーフローエラー状態を経験する可能性がある。
これらのエラーを取り除くために、エラスティックバッファの充填速度及び排出速度を調整することができる。
これらの速度を調整するための１つの手段は、ＰＣＩエクスプレスアーキテクチャで使用される特殊シンボルの追加又は除去を伴う。
これらのシンボルは、ＳＫＰシンボルとして知られており、ＳＫＰ順序集合に見られる。
ＳＫＰ順序集合は、送信機と受信機との間の同期を維持し、オーバーフローエラー状態又はアンダーフローエラー状態を防止するのに使用される。
受信機は、ＳＫＰ文字を廃棄することができる。
ＳＫＰ順序集合は、単一のＣＯＭシンボル及びその後に続く３つのＳＫＰシンボルから成る。
充填速度及び排出速度を調整するための他の手段は、後に論述される。
【００２１】
ＳＫＰ順序集合が送信される速度は、２つのデバイス間で許容される最大周波数許容範囲、すなわち６００ｐｐｍから導出される。
このレベルでは、２つのデバイスのローカルクロックは、１，６６６サイクルごとに１クロックサイクルシフトする。
したがって、送信機は、ＳＫＰ順序集合が１，６６６クロックサイクルごとよりも高い頻度で送信されるようにスケジューリングしなければならない。
ＰＣＩエクスプレス仕様は、ＳＫＰ順序集合の送信間の周期を１，１８０シンボル時間と１，５３８シンボル時間との間として規定している。
エラスティックバッファは、ＳＫＰ順序集合を受信すると、ＳＫＰシンボルを挿入又は除去して、２つのクロックドメイン間の周波数差を補償することができる。
【００２２】
図４は、２つの基準クロックを有するリドライバをより詳細に示す。
図４では、ストレージブレード１００及びノースブリッジ１４を結合するリドライバ２００が示されている。
しかしながら、リドライバ２００は、例えば、任意の２つのブレードタイプを結合することを含めて、他のアプリケーションにも使用することができる。
リドライバ２００は、インバウンドエラスティックバッファ２２０及びアウトバウンドエラスティックバッファ２４０を含む。
ストレージブレード１００からのデータは、インバウンドエラスティックバッファ２２０を通じてノースブリッジ１４へ送信され、ノースブリッジ１４からのデータは、アウトバウンドエラスティックバッファ２４０を通じて送信される。
図４から分かるように、インバウンドエラスティックバッファ及びアウトバウンドエラスティックバッファ２２０／２４０を含むリドライバ２００のノースブリッジ側は、共通基準クロック１４０を使用する。
共通基準信号１４０は、使用可能にされたスペクトラム拡散クロックを有することができる。
リドライバ２００のストレージブレード側は、個別低ジッタクロック２１０を使用する。
低ジッタ基準クロック２１０は、スペクトラム拡散クロックを使用しない。
ストレージブレード１００は、個別低ジッタ基準クロック１１０も使用し、これによっても、スペクトラム拡散クロックは可能ではない。
基準クロック１１０、１４０、及び２１０は、標準的な１００ＭＨｚクロック源を有する。
この標準的な１００ＭＨｚクロック源は、内部ロジック及びＣＤＲ（クロックデータリカバリ）用のより高い周波数クロックを生成するフェーズロックループ（ＰＬＬ）への入力として使用される。
例えば、ＰＬＬ１４５は、１００ＭＨｚを２．５ＧＨｚに変換することができる。
【００２３】
ストレージブレード１００からのデータ１６０は、公称２．５ＧＨｚでインバウンドエラスティックバッファ２２０に入り、インバウンドエラスティックバッファ２２０を出るデータ１６５は、公称２．５ＧＨｚで出る。
同様に、データ１７０は、公称２．５ＧＨｚでアウトバウンドエラスティックバッファ２４０に入り、データ１７５は、公称２．５ＧＨｚでアウトバウンドエラスティックバッファ２４０を出る。
インバウンドデータ１６０は、クロックリカバリ回路２１６によって復元される組み込みクロックを有する。
クロックリカバリ回路２１６は、ローカルクロックＢ信号２１５を使用する。
このローカルクロックＢ信号２１５は、低ジッタ基準クロック２１０に基づいてＰＬＬ２１２の出力から導出される。
ローカルクロックＢ信号２１５は、アウトバウンドエラスティックバッファ２４０からのデータをクロック制御するのにも使用される。
アウトバウンドデータ１７０は、クロックリカバリ回路１４１によって復元される組み込みクロックを有する。
クロックリカバリ回路１４１は、ローカルクロックＡ信号１４５を使用する。
ローカルクロックＡ信号１４５は、共通基準クロックに基づいてＰＬＬ１４２の出力から導出される。
ローカルクロックＡ信号１４５は、インバウンドエラスティックバッファ２２０からのデータをクロック制御するのにも使用される。
【００２４】
ストレージブレード１００は、スペクトラム拡散クロックを使用せず、ノースブリッジ１４は、スペクトラム拡散クロックを（使用可能であるときは）使用するので、インバウンドデータ１６０は、インバウンドデータ１６５よりも常に高速クロックの状態にある。
逆に、アウトバウンドデータ１７０は、アウトバウンドデータ１７５よりも常に低速クロックの状態にある。
送信機（ＴＸ）と受信機（ＲＸ）との間のクロック周波数の差は、５６００ｐｐｍと同程度とすることができる。
これらのクロック差に対応するために、インバウンドエラスティックバッファ２２０及びアウトバウンドエラスティックバッファ２４０は、現在のＰＣＩエクスプレスエラスティックバッファと共に利用可能ではないステップを使用して自身の充填速度及び排出速度を調整できなければならない。
【００２５】
共通タイプのストレージブレードがリドライバ２００を使用して結合されるアプリケーションでは、スペクトラム拡散クロックの使用によって、クロック差のさらなる追加が引き起こされるおそれがあることに留意されたい。
このようなアーキテクチャは図７に示される。
【００２６】
図５は、高速復元クロックについて図４のリドライバ２００と共に使用されるエラスティックバッファの動作の一実施形態を示す。
エラスティックバッファ２２０は、インバウンドデータストリームを受信し、変更されたインバウンドデータストリームを提供する。
エラスティックバッファ２２０は、標準的にハーフフルである、すなわちトリップポイントＡの真下になるように動作させることができる。
高速復元クロックの場合、エラスティックバッファのコンテンツがトリップポイントＡに達したとき、エラスティックバッファ２２０は、中間ポイントに位置し、したがって、ＳＫＰ順序集合を変更できないので、エラスティックバッファ２２０内のバッファロジックは、ＰＣＩエクスプレスリンクがアクティブ状態にある場合（すなわち、リンクが電源投入され、リンクトレーニング状態を通過している場合）に、まず、インバウンドデータストリームからアイドルデータを除去する。
ＰＣＩエクスプレスリンクが、トレーニング状態にある場合、バッファロジックは、トレーニング順序集合全体を除去する。
リンクトレーニングは、リセット後にソフトウェアの関与なしに、すべてのＰＣＩエクスプレスリンク上で自動的に起こることに留意されたい。
ほとんどのリンクトレーニング状態は、１６シンボルトレーニング順序集合の送信を伴う。
各コンポーネントの受信機は、これらの集合を使用して、ビットロック、シンボルロック、及びレーン間スキューを得る。
これらの集合の交換によって、リンクの各端部のコンポーネントがリンク番号、レーン番号、データレート等を取り決めることが助けられる。
トレーニングが完了したとき、リンクは、トランザクションレイヤパケット（ＴＬＰ）を交換できるアクティブ状態に進む。
エラスティックバッファのコンテンツがトリップポイントＢに達した場合、バッファロジックは、インバウンドデータストリームから選択されたデータリンクレイヤパケット（ＤＬＬＰ）を除去する。
ＰＣＩエクスプレスは、各ＤＬＬＰに含まれる情報が、後続の同じタイプのＤＬＬＰにも含まれるように設計され、その結果、通過中に破損又は喪失されるＤＬＬＰのリンク性能に対する影響は最小限にされる。
しかしながら、同じタイプの複数の連続したＤＬＬＰが喪失された場合、性能劣化が起こる（性能劣化は、トランザクションリプレイを引き起こす可能性があり且つ／又は新しいトランザクションの発行を抑制する可能性がある）。
ＤＬＬＰは、スクランブルされていない「ＳＤＰ」フレーミングシンボルで始まり、その後にＤＬＬＰタイプバイトが続く。
エラスティックバッファ２２０内のバッファロジックは、特に、肯定応答、ポスティッドクレジット更新（Posted Credit Update）、非ポスティッドクレジット更新（Non-posted Credit Update）、及び完了クレジット更新（Completion Credit Update）の４つのＤＬＬＰタイプを除去するように設計することができる。
本明細書で説明するフレキシブルバッファは、セマフォを使用して、同じタイプの複数のＤＬＬＰの削除を防止する。
例えば、高速復元クロックによって、バッファロジックはポスティッドクレジット更新ＤＬＬＰを廃棄することができる。
これが起こるとき、内部のポスティッドクレジット更新セマフォがセットされて、（同じ仮想チャネルの）別のポスティッドクレジット更新が通過するまで、ロジックが別のポスティッドクレジット更新を廃棄することが防止される。
２番目の更新は、前のパケットと同じ個数のクレジットを含み、その上、２番目の更新は追加のクレジットも含む場合がある。
２番目のパケットを通過させることによって、アウトバウンドにおけるポスティッドサイクル（posted cycle）の潜在的なボトルネックが除去される。
最後に、エラスティックバッファ２２０のコンテンツがトリップポイントＣに達した場合、バッファロジックは、トランザクションレイヤパケット（ＴＬＰ）をインバウンドデータストリームから廃棄する。
バッファロジックは、ＴＬＰ開始フレーミングシンボル（ＳＴＰ）を探し、ＥＮＤシンボルを検出するまであらゆるシンボルを廃棄することによってこれを成し遂げる。
これによって、送信機は、後続のＴＬＰのナビゲート肯定応答（Navigate Acknowledge）（Ｎａｋ）によるか又は肯定応答（Ａｃｋ）タイムアウトによるかのいずれかで、ＴＬＰをリプレイする。
除去されたＴＬＰのシーケンス番号は、今後のアウトバウンドＡｃｋパケットとの比較のためにローカルレジスタに記憶される。
廃棄されたＴＬＰをリプレイすることに成功したことをアウトバウンドＡｃｋが検証すると、ＴＬＰ処分ロジックは、エラスティックバッファがトリップポイントＣを超えて充填される次の時に備えて自身をリセットする。
これによって、リンク性能を深刻に妨害する可能性のある過度のＴＬＰリプレイが防止される。
【００２７】
低速復元クロックの場合、ＰＣＩエクスプレス仕様は、ＳＫＰ順序集合にＳＫＰシンボルの追加を要請する。
このようなシナリオは図６に示される。
トリップポイントＥにおいて、エラスティックバッファ２２０の上流側及び下流側のコンポーネントに関連したエラスティックバッファ等、通常のエラスティックバッファに関連したバッファロジックは、ＳＫＰシンボルをバッファコンテンツに追加する。
同様に、トリップポイントＥにおいて、エラスティックバッファ２２０に関連したバッファロジックは、ＳＫＰ順序集合をデータストリームに追加する。
リドライバ２００はリンク上の中間バッファであって最終受信機ではないので、リドライバ２００は、ＳＫＰ順序集合のサイズを変更してはならないことに留意されたい。
しかしながら、場合によっては、ＳＫＰシンボルを追加しても、エラスティックバッファ２２０が空になることを防止するのに十分ではない。
ＰＣＩエクスプレスリンクがアクティブ状態にあるとき、ＰＣＩエクスプレス仕様は、論理的なアイドルデータをデータストリームに追加することを可能にしている。
したがって、トリップポイントＦにおいて、リンクがアクティブ状態にあると、バッファロジックは、エクスプレスバッファ２２０を出るデータストリームにアイドルデータを追加する。
【００２８】
ＳＫＰ順序集合の追加並びにＤＬＬＰ及びＴＬＰの削減を可能にするために、リドライバ２００は、図６に示すような１０／８ｂ復号器２２１、デスクランブラ２２２、線形フィードバックシフトレジスタ（ＬＦＳＲ）２２３、ＳＫＰ／アイドル挿入モジュール２２５、スクランブラ２２６、８ｂ／１０ｂ符号化器２２７、及びアウトバウンド線形フィードバックシフトレジスタ（ＬＦＳＲ）２２９等の通常のＰＣＩエクスプレスコンポーネントを含む。
復号器２２１は、１０ビットのインバウンドシンボルを８ビットのバイトに変換し、デスクランブラ２２２は、ＬＦＳＲ２２３を使用して、これらのバイトをスクランブルされていないバイトに変換する。
この時点で、前述のフレーミングシンボルを求めてデータストリームを解析することができる。
ＳＫＰ順序集合は、他のどの順序集合又はパケットの中央にも追加されないことに留意されたい。
データストリームの操作の後、スクランブラ２２６は、アウトバウンドＬＦＳＲ２２９を使用して、バイトを再スクランブルし、８ｂ／１０ｂ符号化器２２７は、８ビットのバイトを変換して１０ビットのシンボルに戻す。
【００２９】
図５及び図６は、インバウンドエラスティックバッファ２２０の動作を示す。
インバウンドエラスティックバッファ２２０は、２基準クロックエラスティックバッファアーキテクチャである。
アウトバウンドエラスティックバッファ２４０も、２基準クロックに設計されたバッファであり、アウトバウンドエラスティックバッファ２４０のオーバーフロー及びアンダーフローを防止するためのアーキテクチャ及び方法は、すべての関連する点において、インバウンドエラスティックバッファ２２０に適用可能なアーキテクチャ及び方法と同様である。
【００３０】
図７〜図９は、リドライバを用いて、複数の接続及び可変長のトレース長にわたって信号の連続性及び忠実度を保証するコンピュータシステムの実施形態を示す。
【００３１】
図１０は、２基準クロックアーキテクチャを有する図３のコンピュータシステム等のコンピュータシステムを動作させるための方法５００の一実施形態を示すフローチャートである。
図１０では、ブロック５０１から開始して、リドライバ２００は、インバウンドデータストリーム（データストリームがストレージブレード１００から発するという意味でインバウンド）を受信する。
このインバウンドデータストリームは、復元クロックを有する。
ブロック５０５において、インバウンドエラスティックバッファ２２０に関連したバッファロジックは、この復元クロックに気付く。
ブロック５１０において、インバウンドエラスティックバッファ２２０は、復元クロックがシステムクロック１４０に比べて高速であるか否かを判断する。
復元クロックが高速である場合、方法５００は、ブロック５１５に移動し、リンクがチェックされ、リンクがアクティブであるか否かが確かめられる。
リンクがアクティブである場合、方法５００はブロック５２０に移動する。
リンクがアクティブでない場合、方法５００は、ブロック５１６に移動して、リンクが「Configuration.Idle」トレーニングサブ状態にあるか否かを判断する。
リンクが「Configuration.Idle」にない場合、ブロック５１８において、バッファ２２０に関連するバッファロジックは、トレーニング順序集合を除去する。
リンクが「Configuration.Idle」サブ状態にある場合、方法５００は、ブロック５１７に移動し、インバウンドバッファ２２０に関連するバッファロジックは、インバウンドデータストリームからアイドルデータを除去する。
この時点で、ロジックは、インバウンドデータをＮＢへ転送する（ブロック５６０）。
ブロック５１７又は５１８に続いて、方法５００はブロック５６０に移動する。
ブロック５２０において、インバウンドバッファ２２０に関連するバッファロジックは、復元クロックがまだ高速すぎるか否かを判断する。
復元クロックがまだ高速すぎる場合、方法５００は、ブロック５２５に移動し、バッファロジックは、ＤＬＬＰシンボルを除去し、対応するセマフォをセットする。
方法５００は、次に、ブロック５３０に移動する。
ブロック５３０において、バッファロジックは、再び、復元クロックが高速すぎるか否かを判断する。
復元クロックがまだ高速すぎる場合、ブロック５３５において、バッファロジックはＴＬＰパケットをデータストリームから除去し、ＴＬＰセマフォをセットする。
方法は、次に、ブロック５６０に移動する。
【００３２】
ブロック５３０に戻って、復元クロックがあまり高速でない場合、方法５００はブロック５６０に移動する。
ブロック５２０に戻って、復元クロックがあまり高速でない場合、方法５００はブロック５６０に移動する。
【００３３】
ブロック５１０に戻って、復元クロックがあまり高速でない場合、方法５００は、ブロック５４０に移動し、インバウンドフレキシブルバッファ２２０に関連するバッファロジックは、復元クロックが低速すぎるか否かを判断する。
復元クロックがあまり低速でない場合、方法５００はブロック５６０に移動する。
復元クロックが低速すぎる場合、方法５００はブロック５４５に移動し、リンクがチェックされ、リンクがアクティブであるか否かが確かめられる。
リンクがアクティブである場合、方法５００はブロック５４６に移動し、アイドルデータが、インバウンドデータストリームに追加される。
リンクがアクティブでない場合、ブロック５４７において、バッファロジックは、ＳＫＰシンボルをインバウンドデータストリームに追加する。
方法は、次に、ブロック５５０に移動し、バッファロジックは、再び、復元クロックが低速すぎるか否かを確かめるためにチェックする。
復元クロックがまだ低速すぎる場合、方法５００はブロック５５５に移動し、バッファロジックは、アイドルデータをインバウンドデータストリームに追加する。
方法は、次に、ブロック５６０に移動し、インバウンドデータストリームは、ノースブリッジ１４に渡される。
【符号の説明】
【００３４】
１０・・・ハーフハイトのＣクラスサーバブレード，
１２、２２、１４０・・・クロック，
１８、３８・・・ＰＣＩエクスプレスバス
１４・・・ノースブリッジ，
２０・・・ストレージブレード，
２４・・・ＳＡＳ制御カード，
３０・・・フルハイトのＣクラスサーバブレード，
３２、２００・・・リドライバ，
３４・・・メザニンカード，
１００・・・ストレージブレード，
１１０、２１０・・・低ジッタ基準クロック，
１２０・・・サーバブレード，
１３０・・・ＰＣＩエクスプレスリンク，
１５０・・・カード，
２２０・・・エラスティックバッファ
【図１Ａ】
2011519077.tif 000003
【図１Ｂ】
2011519077.tif 000004
【図２】
2011519077.tif 000005
【図３】
2011519077.tif 000006
【図４】
2011519077.tif 000007
【図５】
2011519077.tif 000008
【図６】
2011519077.tif 000009
【図７】
2011519077.tif 000010
【図８】
2011519077.tif 000011
【図９】
2011519077.tif 000012
【図１０】
2011519077.tif 000013
【国際調査報告】
2011519077.tif 000014
2011519077.tif 000015