(57)【要約】高性能コンピュータシステムおよび方法は、修正されたヘッダビット符号化を使用して、マルチレーン通信リンク上でコンピューティングノードの間でデータパケットを伝達する。各データパケットは、フロー制御情報およびエラー検出情報を提供され、次いで、レーンあたりのペイロードに分割される。各ペイロードの同期ヘッダビットは、非隣接場所でペイロードに追加され、それによって、単一の相関バーストエラーが両方のヘッダビットを反転させるであろう確率を減少させる。次いで、ペイロードおよび散在ヘッダビットを含む符号化ブロックは、受信コンピューティングノードによる受信、エラー検出、および再構築のために、複数のレーン上で同時に伝送される。
2017513168.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信レーンを有する通信リンクを使用してデータパケットを伝達するコンピュータ化方法であって、前記方法は、
第１のコンピュータプロセスにおいて、前記データパケットにフロー制御情報およびエラー検出情報を提供し、それによって、フロー制御単位を形成することと、
第２のコンピュータプロセスにおいて、前記データパケットのタイプに応じて、複数のヘッダから伝送ヘッダを選定することであって、前記伝送ヘッダは、複数のビットから成る、ことと、
第３のコンピュータプロセスにおいて、前記フロー制御単位を等しいサイズのペイロードに分割することであって、ペイロードの数は、通信レーンの数に等しく、各ペイロードは、それぞれの通信レーンに関連付けられている、ことと、
第４のコンピュータプロセスにおいて、同じ第１の場所において各ペイロードに前記選定された伝送ヘッダの第１のビットを挿入し、同じ第２の場所において各ペイロードに前記選定された伝送ヘッダの第２のビットを挿入することであって、前記第１および第２の場所は、隣接しておらず、各ペイロードと前記挿入された第１および第２のビットとの組み合わせは、対応する符号化ブロックを形成する、ことと、
第５のコンピュータプロセスにおいて、各符号化ブロックをそのペイロードのそれぞれの通信レーン上で受信機に同時に伝送することと
を含み、
それによって、前記受信機による前記符号化ブロックの受信におけるバーストエラーは、前記第１および第２の場所に応じて検出可能である、方法。
【請求項２】
第６のコンピュータプロセスにおいて、前記受信機内で前記符号化ブロックを再構築し、前記データパケットを回収することをさらに含み、前記回収されたデータパケットは、高性能コンピュータシステムにおける共有計算の一部を前記受信機において行うために使用される、請求項１に記載の方法。
【請求項３】
前記通信リンクは、コンピュータシャーシのバックプレーンにおけるネットワーキングケーブルまたはデータバスを含む、請求項１に記載の方法。
【請求項４】
前記通信リンクは、少なくとも４つの通信レーンを有する、請求項１に記載の方法。
【請求項５】
前記第１の場所は、各ブロックの開始にあり、前記第２の場所は、各ブロックの中間にあり、前記エラー検出情報は、前記ブロックの長さの少なくとも半分の長さを有する巡回冗長検査（ＣＲＣ）であり、それによって、前記ブロック内および連続したブロック間のバーストエラーの検出が改善される、請求項１に記載の方法。
【請求項６】
連続したブロック間のバーストエラーの検出が改善されるように、前記第１の場所は、各ブロックの開始にあり、前記第２の場所は、各ブロックの最後にある、請求項１に記載の方法。
【請求項７】
前記エラー検出情報は、前記ブロックの長さの半分未満の長さを有する巡回冗長検査（ＣＲＣ）であり、前記第１の場所および前記第２の場所は、連続したブロックにおけるバーストエラーが別個に検出されるように、前記ＣＲＣの前記長さによって分離されている、請求項１に記載の方法。
【請求項８】
第１の通信レーンにおける受信されたヘッダビットが第２の通信レーンにおける受信されたヘッダビットと異なることを決定することによって、バーストエラーを検出することをさらに含む、請求項１に記載の方法。
【請求項９】
通信レーンにおける受信されたヘッダビットが無効であることを決定することによって、バーストエラーを検出することをさらに含む、請求項１に記載の方法。
【請求項１０】
複数のコンピューティングノードを備えている高性能コンピュータシステムであって、少なくとも第１のコンピューティングノードおよび第２のコンピューティングノードが、高速低遅延データ通信リンクによって接続されており、前記第１のコンピューティングノードは、パケットプロセッサを含み、前記パケットプロセッサは、
前記データパケットにフロー制御情報およびエラー検出情報を提供し、それによって、フロー制御単位を形成することと、
前記データパケットのタイプに応じて、複数のヘッダから伝送ヘッダを選定することであって、前記伝送ヘッダは、複数のビットから成る、ことと、
前記フロー制御単位を等しいサイズのペイロードに分割することであって、ペイロードの数は、通信レーンの数に等しく、各ペイロードは、それぞれの通信レーンに関連付けられている、ことと、
同じ第１の場所において各ペイロードに前記選定された伝送ヘッダの第１のビットを挿入し、同じ第２の場所において各ペイロードに前記選定された伝送ヘッダの第２のビットを挿入することであって、前記第１および第２の場所は、隣接しておらず、各ペイロードと前記挿入された第１および第２のビットとの組み合わせは、対応する符号化ブロックを形成する、ことと、
各符号化ブロックをそのペイロードのそれぞれの通信レーン上で受信機に同時に伝送することと
を行うように構成され、
それによって、前記符号化ブロックの受信におけるバーストエラーは、前記第１および第２の場所に応じて、前記第２のコンピューティングノード内のパケットプロセッサによって検出可能である、システム。
【請求項１１】
前記第１のコンピューティングノード内の前記パケットプロセッサまたは前記第２のコンピューティングノード内の前記パケットプロセッサは、ＡＳＩＣまたはＦＰＧＡ内に常駐している、請求項１０に記載のシステム。
【請求項１２】
前記第２のコンピューティングノードは、
前記符号化ブロックを再構築し、前記データパケットを回収することと、
前記回収されたデータパケットを使用して、高性能コンピュータシステムにおける共有計算の一部を行うことと
を行うように構成されている、請求項１０に記載のシステム。
【請求項１３】
前記通信リンクは、コンピュータシャーシのバックプレーンにおけるネットワーキングケーブルまたはデータバスを含む、請求項１０に記載のシステム。
【請求項１４】
前記通信リンクは、少なくとも４つの通信レーンを有する、請求項１０に記載のシステム。
【請求項１５】
前記第１の場所は、各ブロックの開始にあり、前記第２の場所は、各ブロックの中間にあり、前記エラー検出情報は、前記ブロックの長さの少なくとも半分の長さを有する巡回冗長検査（ＣＲＣ）であり、それによって、前記ブロック内および連続したブロック間のバーストエラーの検出が改善される、請求項１０に記載のシステム。
【請求項１６】
連続したブロック間のバーストエラーの検出が改善されるように、前記第１の場所は、各ブロックの開始にあり、前記第２の場所は、各ブロックの最後にある、請求項１０に記載のシステム。
【請求項１７】
前記エラー検出情報は、前記ブロックの長さの半分未満の長さを有する巡回冗長検査（ＣＲＣ）であり、前記第１の場所および前記第２の場所は、連続したブロックにおけるバーストエラーが別個に検出されるように、前記ＣＲＣの前記長さによって分離されている、請求項１０に記載のシステム。
【請求項１８】
前記第２のコンピューティングノード内の前記パケットプロセッサは、第１の通信レーンにおける受信されたヘッダビットが第２の通信レーンにおける受信されたヘッダビットと異なることを決定することによって、バーストエラーを検出するようにさらに構成されている、請求項１０に記載のシステム。
【請求項１９】
前記第２のコンピューティングノード内の前記パケットプロセッサは、通信レーンにおける受信されたヘッダビットが無効であることを決定することによって、バーストエラーを検出するようにさらに構成されている、請求項１０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（優先権）
本願は、米国特許出願第１４／２２９，７９６号（２０１４年３月２８日出願）からの優先権を主張し、上記出願の内容は、その全体が参照により本明細書に援用される。
【０００２】
（技術分野）
本発明は、コンピュータシステムにおける多重通信に関し、より具体的には、マルチレーン通信リンクにおいてバーストエラーを検出することおよび訂正することに関する。
【背景技術】
【０００３】
高性能コンピュータ（ＨＰＣ）システムは、互いに通信し、共有された計算を解く多くのコンピューティングノードを有する大規模分散型システムを含む。ノード間の接続は、多くの場合、最大速度またはビットレートでデータレーンと並行してデータのビット（すなわち、１および０）を伝送する高速シリアル相互接続から形成される。高速シリアル相互接続の長期信頼性は、伝送速度が増加するにつれて課題を抱える。具体的には、ビットレートが増加すると、基礎をなす物理媒体によって引き起こされる信号損失における対応する増加がある。この信号損失は、より高い費用の材料を使用して、回路の複雑性を増加させ、信号を活発に繰り返す（またはノード間の物理的距離を縮小する）ことによって、管理される。これらの軽減ツールの全ては、最大限のサービス時間または可用性を用いて、高い平均誤パケット受け入れ時間（ＭＴＴＦＰＡ）を達成しようとする。
【０００４】
信号損失の１つの原因は、デジタル伝送媒体の物理的性質によるものである。データのビットは、電圧を変動させることによって、物理媒体上で伝送される。例えば、＋１Ｖが、１の値を表し得る一方で、−１Ｖは、０の値を表し得、異なるシステムが異なる電圧を使用するであろうが、概念は同じである。電圧は、受信回路によって、ビット値を決定するためにビットレートに従って固定間隔でサンプリングされる。１つの点から別の点にこれらの電圧を運ぶチャネルを形成する物理的材料は、一方の電圧から他方の電圧に遷移するためにわずかな時間を必要とする。この電圧遷移時間により、各伝送されたビットは、次のビットに割り付けられたタイムスロットの中へその電圧値を「スミア」する。電圧遷移周波数（つまり、遷移時間の逆数）がビットレートのほんの何分の一かでも表す場合、このスミアは、サンプリングされた電圧をサンプリング時間におけるその最適値未満に到達させ得、実際に、サンプリングされた電圧に誤ったビット値を示させ得る。これは、例えば、１ビット値（例えば、＋１Ｖ）が、０ビット電圧（−１Ｖ）に強力に適応するための十分な時間を物理媒体に与える長い一連の０ビットに続く場合、一般的である。
【０００５】
この状況は、ビットを伝送するための疑似ランダムビットパターンの使用によって改善される。伝送するためのデータは、多くの場合、伝送された０ビットおよび１ビットのほぼ均等な混合物を提供するための種々の符号化および復号アルゴリズムを通して実行され、それは、長い０ビットまたは１ビットシーケンスの確率を低減させることによって、種々の電気およびデータプロトコル利点を提供する。しかしながら、時折、上で説明されるような最適サンプリング時間に強力な電圧「スミア」および誤ったビット決定を引き起こす、０または１の長期実行を生成することが依然として可能である。
【０００６】
これらの理由により、最小のサンプリングされた１ビット電圧と最大のサンプリングされた０ビット電圧との間のギャップを増加させるために、種々のアルゴリズムが採用される。これらのギャップは、多くの場合、重複する電圧波形のプロットを経時的に使用して視覚化される。これらのプロットは、重複波形の形状が人間の眼の外観に似ているので、「アイダイアグラム」と呼ばれる。サンプリングされた電圧の間の距離を増加させるためのアルゴリズムは、ダイアグラム内で「眼を開かせ」、受信機によるビット認識率を向上させる。
【０００７】
電圧ギャップを増加させるための一般的なアルゴリズムのうちの１つは、決定帰還等化（ＤＦＥ）である。このアルゴリズムは、各ビット（またはいくつかの前のビット）の受信によって引き起こされた「スミア」をサンプリングし、次の信号がビットを決定するためにサンプリングされる前に、該次の受信された信号の電圧にそのスミアの倍数を加算することによって、機能する。この訂正信号を追加することによって、チャネルは、前のビットからのフィードバックを使用することによって、各サンプリングされたビットに対して１ビット電圧を動的に増加させ、かつ０ビット電圧を減少させ、それによって、チャネル電圧を「等化」する。この目的でサンプリングされるスミアされたビットは、「タップ」と呼ばれ、したがって、単一タップおよびマルチタップＤＦＥがある。
【０００８】
ＤＦＥアルゴリズムは、ここで説明されるように、バーストエラーを引き起こし得る。「バーストエラー」は、０または１としての所与のビット値の決定が次のビット値の決定に影響を及ぼすアルゴリズムの場合に起こり、エラーは、１つ以上の後続のビットに伝搬する機会を有し、それによって、エラーの局部的「バースト」を生成する。ＤＦＥの場合、誤って検出されたビット値からのスミアの追加は、次のビットがサンプリングされるときに、間違った方向にチャネル電圧を移動させ、次のビットも誤って検出されるであろう確率を増加させるであろう。ＤＦＥスミア乗数は、典型的には小さく（例えば、例示的システム内の伝送電圧の１０分の１である）、システムは、正しいビット（またはマルチタップシステムでは、一連の正しいビット）を検出した後、最終的にそれ自体を訂正する。しかしながら、訂正は、受信機がバーストエラーによる影響を受けた後のみ起こるであろう。
【０００９】
受信機へのバーストエラーの影響を低減させるために、種々の手段が知られている。チャネルアーキテクチャおよびデータコーディングが、バーストエラー最小化を向上させることができる。具体的には、データストライピングとビット伝送順序とが、バーストエラーの存在下におけるエラー検出および訂正能力に影響を及ぼす。近年、いくつかの規格組織が、信頼性の問題に対処するために、それらの仕様に前方エラー訂正（ＦＥＣ）を組み込む、規格（ＩＥＥＥ  ８０２．３ｂｊおよびＩＦＢＴＡ）を開発している。ＦＥＣは、データストリームの中へのチェックビットの追加を伴い、それによって、有意な追加の遅延という代償を払うが、欠陥ビットの訂正を可能にする。この遅延は、ＨＰＣシステム内のノード間の各ホップにわたって累積する。２５ギガビット／秒（Ｇｂ／ｓ）ビットレートで、例示的な規格ベースのリード・ソロモンＦＥＣコードの遅延の増加は、ホップにつき５０ナノ秒（ｎｓ）を上回る。この増加は、システム性能を劇的に低減させるので、ＨＰＣシステムにおける遅延に敏感なプロトコルに対して、特に、平均的な訂正されていないホップあたりの遅延が１００ナノ秒を十分に下回るプロトコルに対して、容認不可能である。エラー訂正を欠き、結果として生じたバーストエラービットを処理する現状のデータ伝送も、それがシステムクラッシュにつながり得るので、容認不可能である。
【発明の概要】
【課題を解決するための手段】
【００１０】
したがって、上記の不利点に対処するために、本発明の種々の実施形態は、遅延を増加させることなく、決定帰還等化（ＤＦＥ）バーストエラーの存在下でＭＴＴＦＰＡを向上させる、シリアルデータ符号化方式を提供する。推定される最悪の場合の相関バーストエラーおよびランダムエラー性能は、上記で議論されるアプローチの相対的有効性を開示される解決策と比較するために、図４で３つの実施例について描画される。各アプローチは、単一タップＤＦＥ近似を使用する。低いビットエラー率（ＢＥＲ）において、ＤＦＥバーストエラーが信頼性を支配する。従来の訂正されていないＤＦＥ故障までの時間が、一番下の曲線４１として示される。遅延を加算するＦＥＣエラーが訂正された故障までの時間が、一番上の曲線４２として示される。開示される発明の実施形態は、ＦＥＣによって必要とされる遅延を加算することなく、故障までの時間の約４桁の増加を示す、中央の曲線４３を生じる。
【００１１】
１０−１２の標的ＢＥＲにおいて、従来のコードは、増進したコードに対する６億年のＭＴＴＦＰＡと対比して１０万年のＭＴＴＦＰＡを与える。パラメータ（５２８，５１４）を伴うリード・ソロモンＦＥＣは、図４で反映されない追加の遅延を犠牲にするが、最良のＭＴＴＦＰＡを与える。ＦＥＣを用いると、ネットワーク半径が、非常に大きい寸法まで確実に増大する。小〜中半径のネットワークに対して、開示される発明は、ホップあたりの有意な遅延を加算することなく、確実な拡大縮小を可能にする。
【００１２】
したがって、本発明の第１の実施形態では、複数の通信レーンを有する通信リンクを使用してデータパケットを伝達するコンピュータ化方法が提供される。方法は、５つのコンピュータ化プロセスを有する。第１のプロセスでは、本方法は、データパケットにフロー制御情報およびエラー検出情報を提供し、それによって、フロー制御単位を形成する。第２のプロセスでは、本方法は、データパケットのタイプに応じて、複数のヘッダから伝送ヘッダを選定する。伝送ヘッダは、複数のビットを有する。第３のプロセスでは、本方法は、フロー制御単位を等しいサイズのペイロードに分割する。ペイロードの数は、通信レーンの数に等しく、各ペイロードは、それぞれの通信レーンに関連付けられる。第４のプロセスでは、本方法は、同じ第１の場所において各ペイロードに選定された伝送ヘッダの第１のビットを挿入し、同じ第２の場所において各ペイロードに選定された伝送ヘッダの第２のビットを挿入する。第１および第２の場所は、隣接していない。各ペイロードと挿入された第１および第２のビットとの組み合わせは、対応する「符号化ブロック」を形成する。最終的に、第５のプロセスでは、本方法は、各符号化ブロックをそのペイロードのそれぞれの通信レーン上で受信機に同時に伝送する。受信機による符号化ブロックの受信におけるバーストエラーは、第１および第２の場所に応じて検出可能である。
【００１３】
種々の修正および追加が、考慮される。例えば、第６のプロセスは、データパケットを回収するように受信機内で符号化ブロックを再構築し得、回収されたデータパケットは、高性能コンピュータシステムにおける共有計算の一部を受信機において行うために使用される。通信リンクは、コンピュータシャーシのバックプレーンにおけるネットワーキングケーブルまたはデータバスを含み得、少なくとも４つの通信レーンを有し得る。
【００１４】
いくつかのオプションが、符号化ブロック内のヘッダビットの配置のために存在する。したがって、第１の場所は、各ブロックの開始にあり得、第２の場所は、各ブロックの中間にあり、その場合、エラー検出情報は、ブロック内および連続したブロック間のバーストエラーの検出が改善されるように、ブロックの長さの少なくとも半分の長さを有する巡回冗長検査（ＣＲＣ）である。代替として、連続したブロック間のバーストエラーの検出が改善されるように、第１の場所は、各ブロックの開始にあり得、第２の場所は、各ブロックの最後にある。代替として、エラー検出情報は、ブロックの長さの半分未満の長さを有する巡回冗長検査（ＣＲＣ）であり得、第１の場所および第２の場所は、連続したブロックにおけるバーストエラーが別個に検出されるように、ＣＲＣの長さによって分離される。
【００１５】
さらに、本方法はまた、第１の通信レーン内の受信されたヘッダビットが第２の通信レーン内の受信されたヘッダビットと異なることを決定することによって、バーストエラーを検出することを含み得る。代替として、または加えて、本方法は、通信レーン内の受信されたヘッダビットが無効であることを決定することによって、バーストエラーを検出することを含み得る。
【００１６】
上記の方法およびその変形例を実行するための高性能コンピュータ（ＨＰＣ）システムも、開示される。より具体的には、ＨＰＣシステムは、少なくとも第１のコンピューティングノードおよび第２のコンピューティングノードが高速低遅延データ通信リンクによって接続されている複数のコンピューティングノードを含み得る。本方法は、それらの用語が当技術分野で公知であるような特定用途向け集積回路（ＡＳＩＣ）またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）であり得る、種々の接続されたコンピューティングノード内に配置されるパケットプロセッサによって行われ得る。
【００１７】
実施形態の前述の特徴は、添付図面を参照して解釈される、以下の発明を実施するための形態を参照することによって、より容易に理解されるであろう。
【図面の簡単な説明】
【００１８】
【図１】図１は、本発明の一実施形態による、ＨＰＣシステムの論理図を概略的に示す。
【図２】図２は、図１のＨＰＣシステムの物理図を概略的に示す。
【図３】図３は、図１のＨＰＣシステムのブレードシャーシの詳細を概略的に示す。
【図４】図４は、従来技術と比較した、本発明の実施形態による、推定相対平均誤パケット受け入れ時間のプロットである。
【図５】図５は、ＡＳＩＣ間通信リンクの詳細を概略的に示す。
【図６】図６は、２つのバーストエラーを伴う４つの物理レーンにわたる従来のデータストライピングを示す。
【図７】図７は、本発明の実施形態による、修正されたブロック符号化の実施例を概略的に示す。
【図８】図８は、本発明の第２の実施形態による、修正されたブロック符号化の実施例を概略的に示す。
【図９】図９は、本発明の実施形態による、ブロック符号化に行われ得る、より一般的な修正のいくつかの実施例を概略的に示す。
【発明を実施するための形態】
【００１９】
本発明の例証された実施形態によると、高性能コンピュータシステムおよび方法は、修正されたヘッダビット符号化を使用して、マルチレーン通信リンク上でコンピューティングノード間にデータパケットを伝達する。各データパケットは、フロー制御情報およびエラー検出情報を提供され、次いで、レーンごとのペイロードに分割される。各ペイロードに対する同期ヘッダビットは、隣接していない場所においてペイロードに追加され、それによって、単一の相関バーストエラーが両方のヘッダビットを反転させるであろう確率を減少させる。次いで、ペイロードおよび散在させられたヘッダビットを含む符号化ブロックが、受信コンピューティングノードによる受信、エラー検出、および再構築のために、複数のレーン上で同時に伝送される。ここで、本システムの動作を詳細に説明する。
【００２０】
（システムアーキテクチャ）
図１は、本発明の例証的実施形態とともに使用され得る、例示的高性能コンピュータシステム１００の論理図を概略的に示す。具体的には、当業者によって公知であるように、「高性能コンピュータシステム」または「ＨＰＣシステム」は、プロセッサが共通メモリアドレス空間を直接使用して遠隔データにアクセスし得るように、ハードウェア相互接続を使用して緊密に連結される複数のモジュール式コンピューティングリソースを有する、コンピュータシステムである。
【００２１】
ＨＰＣシステム１００は、計算リソースを提供するためのいくつかの論理的コンピューティングパーティション１２０、１３０、１４０、１５０、１６０、１７０と、複数のパーティション１２０−１７０を管理するためのシステムコンソール１１０とを含む。ＨＰＣシステム内の「コンピューティングパーティション」（または「パーティション」）は、単一のオペレーティングシステムインスタンスを実行し、共通メモリアドレス空間を有する計算リソースの管理上の割り付けである。パーティション１２０−１７０は、論理通信ネットワーク１８０を使用してシステムコンソール１１０と通信し得る。計算を行うことを所望する科学者または技術者等のシステムユーザは、これらのリソースを割り付けて管理するためにシステムコンソール１１０を使用するシステムオペレータから、計算リソースを要求し得る。パーティションへの計算リソースの割り付けは、以下で説明される。ＨＰＣシステム１００は、以下でさらに詳細に説明されるように管理上割り当てられる任意の数のコンピューティングパーティションを有し得、多くの場合、利用可能なコンピューティングリソースの全てを包含する１つだけのパーティションを有する。したがって、この図は、本発明の範囲を限定すると見なされるべきではない。
【００２２】
パーティション１６０等の各コンピューティングパーティションは、デスクトップコンピュータと類似する単一のコンピュータデバイスであるかのように論理的に見られ得る。したがって、パーティション１６０は、当技術分野で一緒に使用されるため基本入出力システム（「ＢＩＯＳ」）１９２を使用する、単一のオペレーティングシステム（「ＯＳ」）インスタンス１９１、および１人以上のシステムユーザ用のアプリケーションソフトウェア１９３を含む、ソフトウェアを実行し得る。
【００２３】
したがって、図１にさらに示されるように、コンピューティングパーティションは、１つ以上のプロセッサ１９４、揮発性メモリ１９５、不揮発性記憶装置１９６、および入出力（「Ｉ／Ｏ」）デバイス１９７（例えば、ネットワークカード、ビデオディスプレイデバイス、キーボード等）を含む、システムオペレータによってそれに割り付けられた種々のハードウェアを有する。しかしながら、図１の実施形態のようなＨＰＣシステムでは、各コンピューティングパーティションは、典型的なデスクトップコンピュータよりも多量の処理能力およびメモリを有する。ＯＳソフトウェアは、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｒｅｄｍｏｎｄ，Ｗａｓｈｉｎｇｔｏｎ）によるＷｉｎｄｏｗｓ（登録商標）オペレーティングシステム、またはＬｉｎｕｘ（登録商標）オペレーティングシステムを含み得る。ＢＩＯＳは、Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｓａｎｔａ  Ｃｌａｒａ，Ｃａｌｉｆｏｒｎｉａ）等のハードウェア製造業者によってファームウェアとして提供され得るが、典型的には、以下でさらに詳細に説明されるように、高性能コンピューティングをサポートするようにＨＰＣシステム設計者の必要性に従ってカスタマイズされる。
【００２４】
そのシステム管理役割の一部として、システムコンソール１１０は、コンピューティングパーティション１２０−１７０およびシステムオペレータまたは他のコンピュータシステムの計算能力間のインターフェースの役割を果たす。その目的で、システムコンソール１１０は、システムオペレータの代わりに、とりわけ、以下のことを可能にする、ＨＰＣシステムハードウェアおよびソフトウェアへのコマンドを発行する：１）ハードウェアを起動すること、２）システムコンピューティングリソースをコンピューティングパーティションに分割すること、３）パーティションを初期化すること、４）各パーティションの健全性およびその中で生成される任意のハードウェアまたはソフトウェアエラーを監視すること、５）オペレーティングシステムおよびアプリケーションソフトウェアを種々のパーティションに分配すること、６）オペレーティングシステムおよびソフトウェアを実行させること、７）パーティションの状態またはその中のソフトウェアをバックアップすること、８）アプリケーションソフトウェアをシャットダウンすること、および、９）コンピューティングパーティションまたはＨＰＣシステム１００全体をシャットダウンすること。これらの特定の機能は、「システム動作」と題された以下の節でさらに詳細に説明される。
【００２５】
図２は、図１の実施形態による高性能コンピュータシステム１００の物理図を概略的に示す。図１のＨＰＣシステム１００を備えるハードウェアは、鎖線によって囲繞される。ＨＰＣシステム１００は、企業データネットワーク２１０に接続され、ユーザアクセスを促進する。
【００２６】
ＨＰＣシステム１００は、システムコンソール１１０の機能を果たすシステム管理ノード（「ＳＭＮ」）２２０を含む。管理ノード２２０は、企業またはＨＰＣシステム設計者のいずれかによって提供されるデスクトップコンピュータ、サーバコンピュータ、または他の類似コンピュータデバイスとして実装され得、ＨＰＣシステム１００を制御するために必要なソフトウェア（すなわち、システムコンソールソフトウェア）を含む。
【００２７】
ＨＰＣシステム１００は、企業ローカルエリアネットワーク（「ＬＡＮ」）、仮想プライベートネットワーク（「ＶＰＮ」）、インターネット等、もしくはこれらのネットワークの組み合わせ等の当技術分野で公知の任意のデータネットワークを含み得るデータネットワーク２１０を使用してアクセス可能である。これらのネットワークのうちのいずれかは、数人のユーザが、遠隔で、および／または同時に、ＨＰＣシステムリソースにアクセスすることを可能にし得る。例えば、管理ノード２２０は、Ｗｉｎｄｏｗｓ（登録商標）リモートデスクトップサービスまたはＵｎｉｘ（登録商標）セキュアシェル等の当技術分野で公知のツールを使用して、遠隔ログインを介して企業コンピュータ２３０によってアクセスされ得る。企業がそうしたい場合、ＨＰＣシステム１００へのアクセスが、遠隔コンピュータ２４０に提供され得る。遠隔コンピュータ２４０は、上記のように管理ノード２２０へのログインを介して、または当業者に公知であるようなゲートウェイもしくはプロキシシステムを使用して、ＨＰＣシステムにアクセスし得る。
【００２８】
ＨＰＣシステム１００のハードウェアコンピューティングリソース（例えば、図１に示されるプロセッサ、メモリ、不揮発性記憶装置、およびＩ／Ｏデバイス）は、図２に示されるブレードシャーシ２５２、２５４、２５６、２５８等の１つ以上の「ブレードシャーシ」によって、集合的に提供され、ブレードシャーシは、管理されてコンピューティングパーティションの中へ割り付けられる。ブレードシャーシは、「ブレード」と呼ばれる複数の積重可能モジュール式電子回路基板を収納し、それに給電し、およびそれらの間の高速データ通信を提供するように構成される電子シャーシである。各ブレードは、独立型コンピュータサーバの役割を果たすために十分なコンピュータハードウェアを含む。ブレードシャーシのモジュール式設計は、ブレードが最小限のケーブル敷設および垂直空間を用いて電力およびデータ線に接続されることを可能にする。
【００２９】
したがって、各ブレードシャーシ、例えば、ブレードシャーシ２５２は、ブレードシャーシ２５２内のシステム機能を管理するためのシャーシ管理コントローラ２６０（「シャーシコントローラ」または「ＣＭＣ」とも称される）と、コンピューティングリソースを提供するためのいくつかのブレード２６２、２６４、２６６とを有する。各ブレード、例えば、ブレード２６２は、そのハードウェアコンピューティングリソースをＨＰＣシステム１００の集合的全リソースに提供する。システム管理ノード２２０が、シャーシコントローラ２６０等のシャーシコントローラを使用して、ＨＰＣシステム１００全体のハードウェアコンピューティングリソースを管理する一方で、各シャーシコントローラは、順に、そのブレードシャーシ内のブレードのみのためのリソースを管理する。シャーシコントローラ２６０は、以下でさらに詳細に説明されるローカル管理バス２６８を用いて、ブレードシャーシ２５２の内部のブレード２６２−２６６に物理的および電気的に連結される。他のブレードシャーシ２５４−２５８内のハードウェアも同様に構成される。
【００３０】
シャーシコントローラは、管理接続２７０を使用して互いに通信する。管理接続２７０は、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）通信プロトコルを実行する高速ＬＡＮ、または他のデータバスであり得る。対照的に、ブレードは、コンピューティング接続２８０を使用して互いに通信する。その目的で、コンピューティング接続２８０は、例証的に、Ｓｉｌｉｃｏｎ  Ｇｒａｐｈｉｃｓ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｒｐ．（Ｍｉｌｐｉｔａｓ，Ｃａｌｉｆｏｒｎｉａ）によって開発されたＮＵＭＡＬＩＮＫ等の高帯域幅低遅延システム相互接続を有する。
【００３１】
シャーシコントローラ２６０は、システムハードウェア管理機能をＨＰＣシステムの残りの部分に提供する。例えば、シャーシコントローラ２６０は、ＳＭＮ２２０からシステム起動コマンドを受信し、ローカル管理バス２６８を使用して、ブレード２６２−２６６の各々への起動コマンドを発行することによって応答し得る。同様に、シャーシコントローラ２６０は、ブレード２６２−２６６のうちの１つ以上のものからハードウェアエラーデータを受信し、他のシャーシコントローラによって記憶されたエラーデータと組み合わせて、以降の分析のためにこの情を記憶し得る。図２に示されるもの等のいくつかの実施形態では、ＳＭＮ２２０または企業コンピュータ２３０は、ＨＰＣシステム１００を制御するシステム管理コマンドを処理し、これらのコマンドを他のシャーシコントローラに転送する、単一のマスタシャーシコントローラ２６０へのアクセスを提供される。しかしながら、他の実施形態では、ＳＭＮ２２０は、管理接続２７０に直接連結され、コマンドを各シャーシコントローラに個々に発行する。当業者は、同じタイプの機能性を可能にするこれらの設計の変形例を考慮し得るが、明確にするために、これらの設計のみが提示される。
【００３２】
ブレードシャーシ２５２、そのブレード２６２−２６６のコンピュータハードウェア、およびローカル管理バス２６８は、当技術分野で公知であるように提供され得る。しかしながら、シャーシコントローラ２６０は、ＨＰＣシステム設計者によって提供されるハードウェア、ファームウェア、またはソフトウェアを使用して、実装され得る。各ブレードは、独立型コンピュータサーバの技術分野で公知である、ある程度の量のプロセッサ、揮発性メモリ、不揮発性記憶装置、およびＩ／ＯデバイスをＨＰＣシステム１００に提供する。しかしながら、各ブレードはまた、「システム動作」と題された節でさらに詳細に以下で説明されるように、これらのコンピューティングリソースが一緒にグループ化され、コンピューティングパーティションとして集合的に取り扱われることを可能にするハードウェア、ファームウェア、および／またはソフトウェアも有する。
【００３３】
図２は、４つのシャーシおよび各シャーシ内の３つのブレードを有するＨＰＣシステム１００を示すが、これらの図は本発明の範囲を限定しないことを理解されたい。ＨＰＣシステムは、数十のシャーシおよび数百のブレードを有し得、実際に、ＨＰＣシステムは、多くの場合、非常に大量の緊密に連結されたコンピューティングリソースを提供するため望ましい。
【００３４】
図３は、さらに詳細に単一のブレードシャーシ２５２を概略的に図示する。この図では、直接的な説明に関連しない部品は省略されている。シャーシコントローラ２６０は、システム管理ノード２２０および管理接続２７０へのその接続を伴って示されている。シャーシコントローラ２６０は、シャーシ管理データを記憶するためのシャーシデータ記憶部３０２を提供され得る。いくつかの実施形態では、シャーシデータ記憶部３０２は、揮発性ランダムアクセスメモリ（「ＲＡＭ」）を有し、その場合、たとえコンピューティングパーティションのうちの１つ以上のものが（例えば、ＯＳクラッシュにより）故障したとしても、またはブレードが誤動作したとしても、電力がブレードシャーシ２５２に印加される限り、シャーシデータ記憶部３０２内の各データは、ＳＭＮ２２０によってアクセス可能である。他の実施形態では、シャーシデータ記憶部３０２は、ハードディスクドライブ（「ＨＤＤ」）またはソリッドステードドライブ（「ＳＳＤ」）等の不揮発性記憶装置である。これらの実施形態では、シャーシデータ記憶部３０２内のデータは、ＨＰＣシステムが電源を切られて再起動された後にアクセス可能である。
【００３５】
図３は、議論目的のためのブレード２６２および２６４の具体的実装の関連部分を示す。ブレード２６２は、シャーシレベルでシャーシコントローラによって果たされる機能に類似する様式において、ブレードレベルでシステム管理機能を実行するブレード管理コントローラ３１０（「ブレードコントローラ」または「ＢＭＣ」とも呼ばれる）を含む。シャーシコントローラおよびブレードコントローラの動作についてのさらなる詳細に対して、以下の「システム動作」と題された節を参照されたい。ブレードコントローラ３１０は、シャーシコントローラ２６０との通信を可能にするために、ＨＰＣシステム設計者によって設計されるカスタムハードウェアとして実装され得る。加えて、ブレードコントローラ３１０は、各自のＲＡＭ３１６にその管理機能を実行させ得る。シャーシコントローラ２６０は、図３および前の図に示されるように、ローカル管理バス２６８を使用して各ブレードのブレードコントローラと通信する。
【００３６】
ブレード２６２は、ＲＡＭ３２４、３２６に接続される１つ以上のプロセッサ３２０、３２２も含む。ブレード２６２は、代替として、当技術分野で公知であるように、複数のプロセッサが単一のバス上のＲＡＭの共通セットにアクセスし得るように構成され得る。プロセッサ３２０、３２２は、当技術分野で公知であるように、任意の数の中央処理装置（「ＣＰＵ」）またはコアを含み得ることも理解されたい。ブレード２６２内のプロセッサ３２０、３２２は、Ｉ／Ｏデバイス３３２と通信するデータバス、不揮発性記憶装置３３４と通信するデータバス、および独立型コンピュータシステムで一般的に見出される他のバス等の他のアイテムに接続される。（明確にするために、図３は、プロセッサ３２０からいくつかのデバイスへの接続のみを示す。）プロセッサ３２０、３２２は、例えば、Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎによって製造されたＩｎｔｅｌ（登録商標）ＣｏｒｅＴＭプロセッサであり得る。Ｉ／Ｏバスは、例えば、ＰＣＩまたはＰＣＩ  Ｅｘｐｒｅｓｓ（「ＰＣＩｅ」）バスであり得る。記憶装置バスは、例えば、ＳＡＴＡ、ＳＣＳＩ、またはＦｉｂｒｅ  Ｃｈａｎｎｅｌバスであり得る。他のバス規格、プロセッサタイプ、およびプロセッサ製造業者が、本発明の例証的実施形態に従って使用され得ることが理解されるであろう。
【００３７】
各ブレード（例えば、ブレード２６２および２６４）は、その機能性の大部分を制御する特定用途向け集積回路３４０（「ＡＳＩＣ」、「ハブチップ」、または「ハブＡＳＩＣ」とも称される）を含む。より具体的には、プロセッサ３２０、３２２、ＲＡＭ３２４、３２６、および他のデバイス３３２、３３４を一緒に論理的に接続し、管理されたマルチプロセッサコヒーレント共有分散型メモリＨＰＣシステムを形成するために、プロセッサ３２０、３２２は、ハブＡＳＩＣ３４０に電気的に接続される。したがって、ハブＡＳＩＣ３４０は、ＳＭＮ２２０、シャーシコントローラ２６０、およびブレードコントローラ３１０によって生成されるＨＰＣシステム管理機能と、ブレード２６２のコンピューティングリソースとの間のインターフェースを提供する。
【００３８】
この接続において、ハブＡＳＩＣ３４０は、集積回路の間で信号を渡すためのフィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）３４２または類似プログラマブルデバイスを介して、ブレードコントローラ３１０と接続する。具体的には、信号が、シャーシコントローラ２６０によって発行されるコマンドに応答して、ブレードコントローラ３１０の出力ピン上で生成される。これらの信号は、ＦＰＧＡ３４２によって、ハブＡＳＩＣ３４０のある入力ピンのためのコマンドに変換され、その逆も同様である。例えば、シャーシコントローラ２６０からブレードコントローラ３１０によって受信される「電源オン」信号は、とりわけ、「電源オン」電圧をハブＡＳＩＣ３４０上のあるピンに提供することを必要とし、ＦＰＧＡ３４２がこのタスクを促進する。
【００３９】
ＦＰＧＡ３４２のフィールドプログラマブル性質は、ブレードコントローラ３１０とＡＳＩＣ３４０との間のインターフェースが製造後に再プログラム可能であることを可能にする。したがって、例えば、ブレードコントローラ３１０およびＡＳＩＣ３４０は、ある一般的機能を有するように設計され得、ＦＰＧＡ３４２は、有利なこととして、用途特有の方法でこれらの機能の使用をプログラムするために使用され得る。ブレードコントローラ３１０とＡＳＩＣ３４０との間の通信インターフェースはまた、ハードウェア設計エラーがいずれか一方のモジュールで発見された場合に更新され得、新しいハードウェアが製作されることを要求することなく、迅速なシステム修復をさらに可能にする。
【００４０】
コンピューティングリソースとシステム管理との間のインターフェースとしてのその役割に関連して、ハブＡＳＩＣ３４０は、高速プロセッサ相互接続３４４を介してプロセッサ３２０、３２２にも接続される。一実施形態では、プロセッサ３２０、３２２は、この目的でＩｎｔｅｌ（登録商標）ＱｕｉｃｋＰａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（「ＱＰＩ」）を提供するＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎによって製造され、ハブＡＳＩＣ３４０は、ＱＰＩを使用してプロセッサ３２０、３２２と通信するためのモジュールを含む。他の実施形態は、他のプロセッサ相互接続構成を使用し得る。
【００４１】
各ブレード内のハブチップ３４０は、高帯域幅低遅延データ通信のために、他のブレードへの接続も提供する。したがって、ハブチップ３４０は、異なるブレードシャーシを接続するコンピューティング接続２８０への通信リンク３５０を含む。この通信リンク３５０は、例えば、ネットワーキングケーブルを使用して実装され得る。ハブＡＳＩＣ３４０は、同じブレードシャーシ２５２内の他のブレードへの接続も含む。ブレード２６２のハブＡＳＩＣ３４０は、シャーシコンピューティング接続３５２を介してブレード２６４のハブＡＳＩＣ３４０に接続する。シャーシコンピューティング接続３５２は、ネットワーキングケーブルを使用するのではなく、ブレードシャーシ２５２のバックプレーン上のデータバスとして実装され得、有利なこととして、高性能計算タスクのために必要とされるブレードの間の非常に高速のデータ通信を可能にする。シャーシ間コンピューティング接続２８０およびシャーシ内コンピューティング接続３５２の両方におけるデータ通信は、ＮＵＭＡＬＩＮＫプロトコルまたは類似プロトコルを使用して実装され得る。
【００４２】
（システム動作）
システム管理コマンドは、概して、ＳＭＮ２２０から、管理接続２７０を通ってブレードシャーシ（およびそれらのシャーシコントローラ）へ、次いで、ブレード（およびそれらのブレードコントローラ）へ、最終的に、システムコンピュータハードウェアを使用してコマンドを実装するハブＡＳＩＣＳへ伝搬する。
【００４３】
具体的な実施例として、ＨＰＣシステムの電源を入れるプロセスを考えられたい。本発明の例示的実施形態によると、ＨＰＣシステム１００は、システムオペレータがＳＭＮ２２０から「電源オン」コマンドを発行すると、給電される。ＳＭＮ２２０は、ブレードシャーシ２５２内のシャーシコントローラ２６０等のそれらのそれぞれのシャーシコントローラを介して、このコマンドをブレードシャーシ２５２−２５８の各々に伝搬する。各シャーシコントローラは、順に、ブレード２６２のブレードコントローラ３１０等のそれらのそれぞれのブレードコントローラを介して、そのブレードシャーシ内のそれぞれのブレードのうちの各々に「電源オン」コマンドを発行する。ブレードコントローラ３１０は、ＦＰＧＡ３４２を使用して「電源オン」コマンドをその対応するハブチップ３４０に発行し、ＦＰＧＡ３４２は、ハブチップ３４０のピンのうちの１つの上にハブチップ３４０が初期化することを可能にする信号を提供する。他のコマンドも同様に伝搬する。
【００４４】
ＨＰＣシステムが電源を入れられると、そのコンピューティングリソースは、コンピューティングパーティションに分割され得る。各コンピューティングパーティションに割り付けられるコンピューティングリソースの数量は、管理上の決定である。例えば、企業が、完成させるべきいくつかのプロジェクトを有し得、各プロジェクトは、ある量のコンピューティングリソースを必要とすると予測される。異なるプロジェクトが、処理能力、メモリ、およびＩ／Ｏデバイス使用の異なる割合を必要とし得、異なるブレードが、インストールされた異なる数量のリソースを有し得る。ＨＰＣシステム管理者は、ＨＰＣシステム１００のコンピューティングリソースを区分化するときに、これらを考慮する。コンピューティングリソースを区分化することは、各ブレードのＲＡＭ３１６をプログラムすることによって達成され得る。例えば、ＳＭＮ２２０は、システム構成ファイルを読み取った後、適切なブレードプログラミングコマンドを発行し得る。
【００４５】
ＨＰＣシステム１００の集合的ハードウェアコンピューティングリソースは、任意の管理上の必要性に従って、コンピューティングパーティションに分割され得る。したがって、例えば、単一のコンピューティングパーティションは、１つのブレードシャーシ２５２のブレードのうちのいくつかまたは全て、複数のブレードシャーシ２５２および２５４のブレードの全て、１つのブレードシャーシ２５２のブレードのうちのいくつかおよびブレードシャーシ２５４のブレードの全てのコンピューティングリソース、ＨＰＣシステム１００全体のコンピューティングリソースの全て、ならびに類似の組み合わせを含み得る。ハードウェアコンピューティングリソースは、静的に区分化され得、その場合、ＨＰＣシステム１００全体の再起動が、ハードウェアを再び割り付けるために必要とされる。代替として、かつ優先的に、ハードウェアコンピューティングリソースは、ＨＰＣシステム１００が電源を入れられている間に動的に区分化される。このように、割り付けられていないリソースが、他のパーティションの動作を中断することなく、パーティションに割り当てられ得る。
【００４６】
ＨＰＣシステム１００が適切に区分化されると、各パーティションは、独立型コンピュータシステムの役割を果たすと見なされ得ることに留意されたい。したがって、２つ以上のパーティションが、ＨＰＣシステム１００の内部で論理的計算グループを形成するように組み合わせられ得る。そのようなグループ化は、例えば、特定の計算タスクが、単一のオペレーティングシステムが制御できるよりも多くのプロセッサまたはメモリを割り付けられる場合に、必要であり得る。例えば、単一のオペレーティングシステムが６４個だけのプロセッサを制御することができるが、特定の計算タスクが２５６個のプロセッサの複合能力を必要とする場合、４つのパーティションが、そのようなグループ内でタスクに割り付けられ得る。このグループ化は、各コンピューティングパーティション上に同じソフトウェアをインストールすること、およびパーティションにＶＰＮを提供すること等の当技術分野で公知の技法を使用して、達成され得る。
【００４７】
少なくとも１つのパーティションが作成されると、パーティションが起動され得、そのコンピューティングリソースが初期化され得る。パーティション１６０等の各コンピューティングパーティションは、単一のＯＳ  １９１および単一のＢＩＯＳ  １９２を有すると論理的に見なされ得る。当技術分野で公知であるように、ＢＩＯＳは、利用可能なハードウェアを電気的に探査し、ＯＳが起動することができるように公知の状態に初期化する命令の集合であり、典型的には、各物理的サーバ上のファームウェアチップ内で提供される。しかしながら、単一の論理的コンピューティングパーティション１６０は、いくつかのブレードまたはいくつかのブレードシャーシにさえもまたがり得る。ブレードの内部のプロセッサ３２０または３２２は、特定のパーティションへのその割り付けを強調するために、「コンピューティングノード」または単純に「ノード」と称され得る。物理的ブレードは、複数のプロセッサ３２０、３２２およびメモリ３２４、３２６を有する場合、１つより多くのコンピューティングノードを備え得ることが理解されるであろう。
【００４８】
本発明の実施形態に従ってパーティションを起動することは、在庫から購入されるブレードシャーシにいくつかの修正が行われることを要求する。具体的には、各ブレード内のＢＩＯＳは、同じブレードまたはブレードシャーシ内のものだけではなく、同じコンピューティングパーティション内の他のハードウェアリソースを決定するように修正される。起動コマンドがＳＭＮ２２０によって発行された後、ハブＡＳＩＣ３４０は、ＢＩＯＳ命令を使用して起動プロセスを開始するように、適切な信号をプロセッサ３２０に最終的に提供する。ＢＩＯＳ命令は、順に、ハブＡＳＩＣ３４０から、パーティション内の識別（ノード）番号、ノード相互接続トポロジ、パーティション内の他のノードの中に存在するデバイスのリスト、パーティション内の全てのノードによって使用されるマスタクロック信号等のパーティション情報を取得する。この情報を装備すると、プロセッサ３２０は、以下のステップを含む、ブレード２６２を初期化するために必要とされるあらゆるステップを講じ得る：１）Ｉ／Ｏデバイス３３２および不揮発性記憶装置３３４を初期化すること等の非ＨＰＣ特有のステップと、２）ローカルハードウェアクロックをマスタクロック信号に同期化すること、所与のノード内のＨＰＣ特化ハードウェアを初期化すること、パーティション内の他のどのノードがそのＲＡＭにアクセスし得たかについての情報を含むメモリディレクトリを管理すること、およびパーティション全体の物理的メモリマップを作成すること等のＨＰＣ特有のステップ。
【００４９】
この時点で、各物理的ＢＩＯＳは、パーティションの各自のビュー（ｖｉｅｗ）を有し、各ノード内のコンピューティングリソースの全ては、ロードすべきＯＳのために準備される。次いで、ＢＩＯＳは、マルチプロセッサシステムの技術分野で公知の技法に従って、ＯＳイメージを読み取ってそれを実行する。ＢＩＯＳは、たとえハードウェア自体が複数のブレードシャーシおよびブレードの間で散乱させられたとしても、単一の非常に大型のコンピュータデバイスの中に全て存在している場合のようにパーティションハードウェアのビューをＯＳに提示する。このように、単一のＯＳインスタンスは、そのパーティションに割り当てられるブレードシャーシおよびブレードのうちのいくつか、または好ましくは全てにわたって、それ自身を広げる。異なるオペレーティングシステムが、種々のパーティション上にインストールされ得る。例えば、パーティションが作成された直後に、ＯＳイメージが存在しない場合、ＯＳイメージは、パーティション起動前に、当技術分野で公知のプロセスを使用してインストールされ得る。
【００５０】
ＯＳが安全に実行されると、そのパーティションは、単一の論理コンピュータデバイスとして動作させられ得る。所望の計算を実行するためのソフトウェアが、ＨＰＣシステムオペレータによって種々のパーティションにインストールされ得る。次いで、ユーザが、ＳＭＮ２２０にログインし得る。ＳＭＮ２２０からそれらのそれぞれのパーティションへのアクセスは、例えば、ログイン証明書に基づくボリュームマウンティングおよびディレクトリ許可を使用して制御され得る。システムオペレータは、各パーティションの健全性を監視し、ハードウェアまたはソフトウェアエラーが検出されたときに是正ステップを講じ得る。長期実行アプリケーションプログラムの現在の状態は、システムまたはアプリケーションクラッシュの場合に作業を失うことから保護するように、周期的に、もしくはシステムオペレータまたはアプリケーションユーザのコマンドに応じてのいずれかで、不揮発性記憶装置に保存され得る。システムオペレータまたはシステムユーザは、アプリケーションソフトウェアをシャットダウンするコマンドを発行し得る。ＨＰＣパーティションの他の動作が、当業者に公知であり得る。管理上必要とされるとき、システムオペレータは、コンピューティングパーティションを完全にシャットダウンし、パーティション内のコンピューティングリソースを再び割り付け、または割り付けを解除し、もしくはＨＰＣシステム１００全体の電源を切り得る。
【００５１】
（ＡＳＩＣ間通信）
図５は、ＡＳＩＣ間通信リンク３５０、３５２のさらなる詳細を概略的に示す。ＡＳＩＣ４１０、４２０は、マルチレーンＡＳＩＣ間通信リンク３５０または３５２によって接続される（４つのレーンが描写されている）。各ＡＳＩＣ４１０、４２０は、リンク層（それぞれ、４１１、４２１）と、物理層（それぞれ、４１２、４２２）とを有するものとして示される。ＡＳＩＣ４１０、４２０の他の関連部分は、明確にするために省略されている。物理層４１２、４２２は、各それぞれのノードアクセスを、ノードを接続する物理媒体（例えば、ケーブル配線またはバックプレーン回路）に提供する。リンク層４１１、４２１は、ノードに対する固定ハードウェアアドレスを定義し、これらのハードウェアアドレスを使用してＡＳＩＣ４１０、４２０の間でデータを渡すための論理リンクを確立する、１つ以上のネットワーキングプロトコル（例えば、Ｅｔｈｅｒｎｅｔ（登録商標）またはＮＵＭＡＬＩＮＫ）を提供する。
【００５２】
通信リンク３５０、３５２は、４つの双方向通信レーン、すなわち、レーン０からレーン３を有するものとして描写される。本発明は、４つのレーンの使用に限定されないことを理解されたい。任意の実施形態で使用されるレーンの数は、最小帯域幅要件、最大遅延要件、リンクエラー率、データ再伝送オーバーヘッド、所与の数のレーンを有する物理的コネクタの商業的可用性、および類似要因を含む、いくつかの要因の関数である。各そのようなレーンは、伝送機および受信機を使用して、ＡＳＩＣ４１０とＡＳＩＣ４２０との間の双方向通信を提供する。例えば、レーン０を使用する双方向通信は、２つの一方向チャネル、すなわち、それぞれ、伝送機４１３および受信機４２４を使用してＡＳＩＣ４１０からＡＳＩＣ４２０に送信するものと、それぞれ、伝送機４２３および受信機４１４を使用してＡＳＩＣ４２０からＡＳＩＣ４１０にデータを送信するものによって可能にされる。他のレーンも同様に構築される。
【００５３】
エージェントＡ４１６およびエージェントＢ４２６は、リアルタイムで通信リンク３５０、３５２を管理するために、それらのそれぞれのノードコントローラＡＳＩＣ４１０、４２０上に常駐する、ハードウェアおよびファームウェアサービスである。各エージェント４１６、４２６は、必要リアルタイム性能を達成するために、組み込みパケットプロセッサを使用する。パケットプロセッサは、例えば、より小型のＡＳＩＣまたはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）であり得る。メモリマップドレジスタ（ＭＭＲ）４１５、４２５は、リアルタイム性能が必要とされないときに使用される、ソフトウェア管理用のゲートウェイを提供する。
【００５４】
ここで、上記のようなＮＵＭＡＬＩＮＫを参照して、通信リンク３５０、３５２の動作を説明する。ＡＳＩＣ４１０からＡＳＩＣ４２０への通信のためのメッセージが、最初に形成される。これに関連して、「メッセージ」は、より高レベルの機能の間のデータ転送の単位である。メッセージは、例えば、ＡＳＩＣ４１０に関連付けられるノード内のプロセッサから受信される計算データ、ＡＳＩＣ４１０の別の部分の中の回路によって生成されるシステム保守データ、ＡＳＩＣ４１０がルーティング仲介の役割を果たしている別のノードからのデータ、またはより高レベルのプロトコルへの意味を有する他のそのようなデータを含み得る。ＮＵＭＡＬＩＮＫでは、メッセージは、ヘッドビットによってマークされるビットパケットと、ゼロ以上の追加のデータパケットと、テールビットでマークされるテールパケットを伴う終端とを含む。
【００５５】
ＮＵＭＡＬＩＮＫメッセージは、リンク層４１１において受信され、リンク層４１１は、「フリット」の中へ各１２８ビットパケットを配置する。これに関連して、「フリット」は、リンク層プロトコルにおける伝送の単位であり、リンク層プロトコルは、データフロー制御を提供する、（したがって、フリットは「フロー制御単位」である）。ＮＵＭＡＬＩＮＫリンクでは、各フリットは、８ビットのフロー制御情報および１６ビット巡回冗長検査（ＣＲＣ）とともに１２８ビットパケットから成る。１５２ビットフリットは、物理層４１２に渡され、物理層４１２は、以下で説明されるようにそれを４つの３８ビット「フィット」に分割する。これらのフィットは、物理的通信リンク３５０、３５２上で伝送される。
【００５６】
データの伝送は、２つのＡＳＩＣ４１０、４２０の間で同期させられるクロック信号を使用して起こる。各クロックサイクルで、ＡＳＩＣ４１０の物理層４１２内の伝送機の各々は、通信リンク３５０、３５２内のその関連レーンを使用して、データのフィットをＡＳＩＣ４２０の物理層４２２内の対応する受信機に伝送する。合致した受信機が、同期させられたクロックを使用して、このデータを受信する。
【００５７】
フィットが受信されると、物理層４２２は、それらをフリットに再構築するリンク層４２１にそれらを渡す。この段階で、ＣＲＣがチェックされ、リンクエラーがある場合、エラーフリットがＡＳＩＣ４１０に返される。エラーがない場合、フリットは、さらなる処理のためにＡＳＩＣ４２０の上位層プロトコルに返される。
【００５８】
（物理層コーディング）
物理層４１２、４２２によって使用されるいくつかの伝送符号化は、２つの数、すなわち、ペイロード（有用なデータ）のビットの数、およびそのヘッダを加えたペイロードの合計ビットの数を使用して、記述され得る。したがって、標準的な「６４Ｂ／６６Ｂ」コードは、６６ビットの全伝送長に対して、６４ビット（８バイト）の有用なペイロードと、物理層によって追加されるヘッダ情報の２ビットとを有する。このコードは、殆どの種類の１０ギガビットＥｔｈｅｒｎｅｔ（登録商標）、いくつかの種類のＦｉｂｒｅ  Ｃｈａｎｎｅｌ、およびＩｎｆｉｎｉＢａｎｄで使用される。同様に、Ｓｉｌｉｃｏｎ  Ｇｒａｐｈｉｃｓ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｒｐ．によって使用される「３８Ｂ／４０Ｂ」コードは、データを、３８ビットペイロードが後に続く２ビット同期ヘッダから始まるブロックに編成する。ヘッダ内の「１０」のビット単位値は、ペイロードが制御であり、「０１」の値がデータを表すことを示す。６４Ｂ／６６Ｂでは、ペイロードが、ほぼ等しい数の０ビットおよび１ビットを生じるように、常に符号化（スクランブル）される一方で、３８Ｂ／４０Ｂでは、データペイロードのみがスクランブルされ、制御ペイロードはスクランブルされない。
【００５９】
各コードブロックは、物理レーンにマップされ、次いで、連続的に伝送される。そのようなコードの従来技術の物理層実装では、同期ヘッダビットが最初に伝送され、その後にペイロードが続く。受信機において、ＤＦＥバーストエラーが同期ヘッダ上で開始する、またはそれを交差し、両方のビットを反転させる場合、ブロックペイロード全体が誤って復号される。これは、ペイロードサイズに等しい有効バーストエラー長をもたらす。例えば、反転同期ヘッダを伴う制御ブロック（すなわち、「１０」が伝送されたが、「０１」が受信された）が、データブロックとして扱われる。これは、巡回冗長検査（ＣＲＣ）の残余エラー検出能力を損ない、誤データ受け入れの有限の確率をもたらし得る。
【００６０】
図６は、４つの物理レーンにわたる従来のデータストライピングを示し、２つのバーストエラーを伴っている。データは、コード語の中で伝送され、コード語の各々は、ペイロードにおけるバーストエラーを検出するために使用されるＣＲＣを有する。隣接バーストエラーが検出される場合、コード語を再伝送する要求が送信され得る。この例の図６では、各コード語は、２つのフリットから成り、各コード語の第２のフリットは、ＣＲＣを含む。したがって、コード語「ｃ」６００が、２つのフリット「ｆ」６０２および「ｆ＋１」６０４を有する一方で、コード語「ｃ＋１」６１０は、フリット「ｆ＋２」６１２および「ｆ＋３」６１４を有する。各１５２ビットフリットは、それ自体が４つの３８ビット物理層ブロックに分割され、伝送のために４つの物理レーン（レーン０−レーン３）にわたって分配される。
【００６１】
２ヘッダビットが、シリアル伝送に先立って、物理層４１２プロトコルハンドラによって各ブロックの先頭に追加される。各フリットが３８ビットであるため、この例は、３８Ｂ／４０Ｂ符号化方式を図示する。例えば、ブロック６２０は、４０ビットブロックであり、４０ビットブロックは、２ヘッダビットを加えた、レーン０上で伝送されるフリット６０２の３８ビット部分である。データブロックは、「０１」同期ヘッダから始まり、制御ブロックは、「１０」から始まる。他の同期ヘッダの組み合わせ「００」および「１１」は、プロトコルによって使用されず、それらの検出は、エラー（およびブロックの再伝送）を生成する。ヘッダビットから、フリット６０２、６０４、および６１２がデータフリットである一方で、フリット６１４が制御フリットであることが理解されるであろう。図６は、コード語につき２つのフリットを伴う実施例を示すが、コード語につき他の数のフリットが使用され得、符号化方式の他の長さが使用され得ることが理解されるであろう。
【００６２】
２つのバーストエラー６３０、６４０が、図６を使用して図示される。バーストエラー統計が、独立して、４つのシリアルレーンの各々に適用され、つまり、各レーンのために別個のＤＦＥがあるので、各レーン上のエラーの機会は、各他のレーン上のエラーの機会と無関係である。第１の相関ＤＦＥバーストエラーは、図中で「ｘｘ」６３０によって示され、コード語６１０の中の第１のフリット６１２の同期ヘッダ内のランダムエラーを表す。バースト長が２ビットであるため、両方の同期ヘッダビットが反転される。このバーストエラーは、フリット６１２のヘッダビットに対して「０１」ではなく「１０」を受信機に取得させ、したがって、受信機は、データブロックの代わりに制御ブロックがあった場合のように、対応するブロックを解釈するであろう。このタイプの破損は微妙であり、検出不可能なエラーをもたらし得る。
【００６３】
第２の相関ＤＦＥバーストエラーは、図６で「ｘｘｘｘ」６４０によって示される。この例は、バーストエラーがフリット６１４の第１の同期ヘッダビットの上または前で始まり、バーストエラーが十分な長さを有する場合、同期ヘッダが反転されるであろうことを実証する。したがって、フリット６１４の受信された同期ヘッダは、「１０」の代わりに「０１」となり、フリット６１４の対応するブロックは、制御ブロックの代わりにデータブロックとして受信機物理層４２２によって誤って処理されるであろう。バーストエラーが前のフリット６１２において始まる場合、たとえバーストエラーがフリット６１４において同期ヘッダを反転させるために十分な長さを有していても、不利であることに、検出は、フリット６１２の受信に関して処理される。
【００６４】
（レーン等価チェック）
バーストエラーの問題に対する１つの解決策は、各ブロックの同期ヘッダビットが同じである一方で、各レーンのエラー統計が独立しているという事実に依拠する。１つのレーン上のバーストエラーは、必ずしも他のレーン上でエラーを引き起こすわけではなく、したがって、レーン内の１つ以上の同期ヘッダビットを他のレーン内のものと異ならせ得る。これが起こる場合、受信機は、受信エラーが異なるレーン上で起こったことを決定することができる。このレーン等価チェック、およびエラーフリットの後続の再伝送は、本発明の実施形態では、上位プロトコル層４１１、４２１とは無関係に、物理層４１２、４２２によって行われることができる。しかしながら、このチェックは、個々のレーンの同期ヘッダビットにおいてバーストエラーを検出することしかできず、全てのレーン上のデータの伝送が同時に影響を受ける場合、レーン等価チェックは、単独ではエラー条件の存在を決定するために十分ではない。
【００６５】
（物理的コーディングに対する修正）
本発明の別の実施形態によると、ペイロードの前にヘッダビットを一緒に伝送するのではなく、各コードブロックが、物理レーンにマップされ、次いで、第１の同期ヘッダビットが、ペイロードの前に伝送され、第２のヘッダビットが、ペイロードの後に伝送される。図７は、本発明の実施形態による、修正されたブロック符号化の例を概略的に示す。図７は、伝送されている２つのコード語７００、７１０を示す。コード語７００は、２つのフリット７０２、７０４を備え、コード語７１０は、２つのフリット７１２、７１４を備える。各ブロック（例えば、ブロック７２０）の第１の同期ヘッダビットは、ペイロードに先立って伝送され、第２の同期ヘッダビットは、ペイロードの後で伝送される。したがって、本発明の本実施形態によると、非標準３８Ｂ／４０Ｂデータ形式が取得される。
【００６６】
２つのバーストエラー７３０、７４０が、図７を使用して図示される。第１の相関バーストエラー７３０は、符号化の１つの有利な特徴を図示し、３８Ｂ／４０Ｂコードに対して、長さ４０またはそれより長いバーストエラーは、従来技術で起こる、問題のある長さ２のバーストの代わりに、単一のデータブロックの同期ヘッダの両方のビットを反転させるために要求されるであろう。同様に修正された６４Ｂ／６６Ｂコードに対して、長さ６６またはそれより長いバーストエラーは、両方のビットを反転させるために要求されるであろう。バーストエラー確率がその長さとともに対数的に減少するので、ＭＴＴＦＰＡの数桁の向上が達成される。
【００６７】
バーストエラーは、マルチタップＤＦＥに対して連続している必要はなく、したがって、単一の「バースト」は、エラービットのいくつかの実行を含み得る。第２の実施例７４０は、不連続なバーストエラーがフリット境界（すなわち、フリット７０４および７１２の間の境界）を交差し、いずれの同期ヘッダビットも反転させない、興味深いマルチタップの事例を示す。これは、絶対的に検出可能ではなく、有限のエラー確率を有する状態である、コード語７１０における２つの別個のエラーを生成する。問題は、従来技術のコードおよび本発明の実施形態によるコードの両方に適用可能である。
【００６８】
このエラー事例の有意性を決定するために、我々は、この事象の確率を調査する。デュアルタップＤＦＥに対して、解答は単純であり、全てのエラー履歴が２つの正しい決定（すなわち、２つの正しく受信された同期ヘッダビット）で消去されるため、バーストエラー７４０内のビットエラーの２つの実行は、相関性がない。３つ以上のタップを伴うＤＦＥに対して、エラーが伝搬し続け、解答はさらに複雑である。しかしながら、２つの連続的な正しい決定が、バーストエラーを拡張する確率を有意に低減させる。コード語サイズを制限することが、この事例にさらされることを制御する別の方法である。実際、コード語サイズが１つのフリットに縮小された場合、このさらされることは完全に排除され、最も強力なバーストエラー耐性が実現される。
【００６９】
他の実施形態は、一方または両方の同期ヘッダビットの場所をさらに調節するために、上記の概念を一般化する。例えば、先頭同期ヘッダビット場所が、不変であり得る一方で、末尾同期ヘッダビットは、全体的信頼性が向上させられる点に位置する。図８は、末尾同期ヘッダビットがペイロードの中間に位置する、この解決策の実施例を示す。フリット７０２のデータブロック８００は、同期ヘッダビット「０１」を有し、１ビットは、特定の用途に合わせられ得る距離によって、フリット７０４の次のデータブロックの０ビットから分離される。具体的には、同期ヘッダビットは、フリット境界を横断してさえも互いから遠隔に位置し得る。
【００７０】
より一般的な実施形態では、同期ヘッダビットは、プロトコルによって各ブロック内の同一の非隣接場所で恣意的に固定され得ることを理解されたい。そのような符号化では、第１および第２の同期ヘッダビットは、各連続したブロックに対して同一の場所で各ブロック内に配置され、符号化の差異は、各そのようなビットが占有するように選択される、異なる場所の結果である。しかしながら、第１および第２の同期ヘッダビットは、単一の相関バーストエラーが両方のビットを反転させる低い可能性を有するように、かつバーストエラーによって反転される介在ペイロードビットがコード語ＣＲＣによって検出可能であるように、非隣接で配置される。
【００７１】
したがって、「ｌ」が、第１の同期ヘッダビットの前にあるブロック内のビットの数を表し、「ｍ」が、同期ヘッダビット間のフィールド内のビットの数を表し、「ｎ」が、第２の同期ヘッダビットの後にあるビットの数を表す、「ｌ−ｍ−ｎ」コードが使用され得る。以下では、「ｌ」フィールドは、第１の同期ヘッダビットの前に伝送されるビットを表し、「ｍ」フィールドは、第１および第２の同期ヘッダビットの間に伝送されるビットを表し、「ｎ」フィールドは、第２の同期ヘッダビットの後に伝送されるビットを表す。他の可変設計パラメータは、ＣＲＣ（ＣＲＣエラー範囲）の選択、およびＣＲＣコード語サイズ（コードレート）である。ブロック境界を横断する単一のバーストエラーは、２つの別個のバーストエラーになるが、各々は、異なるコード語の中にあり、各々がＣＲＣ範囲未満である場合に検出可能である。
【００７２】
図９を参照して、３８Ｂ／４０Ｂ符号化方式のための４つの「ｌ−ｍ−ｎ」コード分割、すなわち、従来の分割９１０、マルチフリットコード語アプローチの利益になる２つの分割９２０および９３０、ならびに単一のフリットコード語に有利である分割９４０について議論する。この表記法を用いて、従来技術の分割９１０は、「ｌ−ｍ−ｎ」＝０−０−３８を有し、同期ヘッダを横断する長さ２以上のバーストエラーに悩まされる。上記のように、同期ヘッダに加えられるわずか２ビットの長さのエラーが、長さ４０ビットのブロック全体の誤った処理を引き起こし得る。
【００７３】
１９のＣＲＣエラー検出範囲とともに「ｌ−ｍ−ｎ」＝０−１９−１９を有する、分割符号化９２０を考慮されたい。このコードは、ペイロード内、およびブロック横断部において、バーストエラー耐性を向上させ、以下の特性を有する。第１の同期ヘッダビット上で開始するバーストエラーは、第２の同期ヘッダビットを反転させるために、２０ビット間隔より長くなければならない。レーン等価チェックも、マルチレーン構成において、このエラー条件からリンクに耐性を与える。バーストエラーが「ｍ」フィールド内で開始し、第２の同期ビットを通って伝搬してそれを反転させる場合、ヘッダエラーが生成される。マルチタップＤＦＥバーストエラーが第２の同期ビットを通って伝搬し、それを反転させず、２１ビット間隔未満である場合、エラーは、ＣＲＣ−１９によって直接検出される。バーストエラーが第２の同期ヘッダビット上で開始する場合、同期ヘッダエラーが生成される。バーストエラーが「ｎ」フィールド内のいずれかで開始し、次のデータブロックの第１の同期ヘッダビットを通って次のデータブロックの中へ伝搬し、それを反転させる場合、ヘッダエラーがＣＲＣコード語内で生成される。バーストエラーが次のデータブロックの第１の同期ヘッダビットを通って伝搬し、それを反転させない場合、単一のバーストエラーは、受信機において再マップした後に２つのエラーになる。二重バーストエラー検出特性である、分割長およびＣＲＣに応じて、このエラーは、検出可能である場合もあり、そうではない場合もある。
【００７４】
次に、「ｌ−ｍ−ｎ」＝０−３８−０を有する、分割９３０を考慮されたい。このコードは、フリット横断部におけるバーストエラー耐性を向上させる。第１の同期ヘッダビット上で開始するバーストエラーは、第２の同期ヘッダビットを反転させるために、３９ビット間隔より長くなければならない。レーン等価チェックも、マルチレーン構成において、このエラー条件からリンクに耐性を与える。バーストエラーが「ｍ」フィールド内で開始し、両方の同期ビットを通って伝搬し、一方または両方のいずれかの同期ヘッダビットが反転する場合、同期ヘッダエラーがＣＲＣコード語内で生成される。いずれか一方の同期ヘッダビットを反転させることなく、バーストエラーが伝搬する場合、単一のバーストエラーは、受信機において２つのバーストエラーに再マップする。二重バーストエラー検出特性である、分割長およびＣＲＣに応じて、このエラーは、直接検出可能である場合もあり、そうではない場合もある。
【００７５】
最後に、「ｌ−ｍ−ｎ」＝１１−１６−１１を有する、分割９４０を考慮されたい。本分割は、単一フリットコード語に有利に働き、１６のＣＲＣ範囲を有する。バーストエラーが「ｌ」フィールド内のいずれかで開始し、第１の同期ヘッダビットを通って伝搬してそれを反転させる場合、ヘッダエラーが生成される。バーストエラーが同期ビットを通って伝搬し、それを反転させず、１８ビット間隔未満である場合、これは、ＣＲＣ−１６によって直接検出可能である。第１の同期ヘッダビット上で開始するバーストエラーは、第２の同期ヘッダビットを反転させるために、１７個の追加のビット間隔にわたって伝搬しなければならない。レーン等価チェックも、マルチレーン構成において、このエラー条件からリンクに耐性を与える。バーストエラーが「ｍ」フィールドの最初の１１個の位置で開始し、第２の同期ヘッダビットを通って伝搬してそれを反転させる場合、ヘッダエラーが生成される。バーストエラーが第２の同期ビットを通って伝搬し、それを反転させず、１８ビット間隔未満である場合、これは、ＣＲＣ−１６によって直接検出可能である。バーストエラーが第２の同期ヘッダビット上で開始する場合、同期ヘッダエラーが生成される。バーストエラーが「ｍ」フィールドの最後の５つの位置内または「ｎ」フィールド内のいずれかで開始し、次のコードブロックの中へ伝搬する場合、各コードブロック内のバーストエラーの区画は、ＣＲＣコード語につき１つのフリットという仮定の下で、ＣＲＣ範囲によって試験される。
【００７６】
（改良型コーディングの特性）
シリアルコードが満たさなければならない、いくつかの特性がある。ここで、これらの特性、および本明細書で議論される改良型コードがどのようにしてこれらの特性を満たすかを説明する。
【００７７】
（１）ＤＣ平衡：伝送された１ビットの数は、平均線電圧が使用される物理的材料に対して容認可能であることを確実にするように、ある期間にわたって、伝送された０ビットの数に等しい。データブロックＤＣ平衡は、ＤＣ平衡同期ヘッダを用いて、かつスクランブルされたペイロードを用いて満たされる。制御ブロックＤＣ平衡は、平衡同期ヘッダと、全ての符号化に対してＤＣ平衡を保たれたスクランブルされていないペイロードとを用いて満たされる。ＤＣ平衡は、１つの制御ブロック内で、または複数の順序付けられた制御ブロックにわたって達成されることができる。
【００７８】
（２）実行長限界：プロトコルは、データをサンプリングするときを決定するために使用され、入力信号に対して位相ロックされなければならない受信機クロックに関する問題を回避するために、１ビットまたは０ビットの長期実行を回避する。最悪の場合の並びは、制御ブロックが後に続くデータブロックであり、または逆も同様である。３８Ｂ／４０Ｂでは、制御ブロックペイロードがスクランブルされる場合、７８の最悪の場合の実行長が可能であろう。しかしながら、このコード内の制御ブロックペイロードビットの並びは、スクランブルされず、事前定義される。それは、クロックおよびデータ復旧回路によって要求されるように、実行長制限遷移を保証する様式で定義される。
【００７９】
（３）データランダム性：制御ブロックの順序付けられた並びは、電磁干渉（ＥＭＩ）抑制およびリアルタイム等化器適応のために、可能な程度まで無作為化される。制御の並びが十分にランダムではない場合、システムデータが利用可能ではないときはいつでも、（スクランブルされる）リンク層アイドルが伝送される。この場合、フロー制御は、殆ど空の状態で伝送および受信バッファを保ち、遅延を最小化する。この３８Ｂ／４０Ｂ用途では、リンク層アイドルは、１００％の割合で実行され得、フロー制御は、バッファオーバーフローを防止し、遅延を最小化するために利用され得る。
【００８０】
（４）フレーミング：ブロックは、各ブロックが終了し、次が始まるときを受信機が検出することができるように、フレームに入れられなければならない。フレーミングは、通常、制御ブロックおよびデータブロックの両方の中のランダムペイロードに依拠する。スクランブルされていない３８Ｂ／４０Ｂ制御ブロックを用いる場合、フレーミングは、排他的にデータブロックに依拠する。フロー制御は、制御ブロックの伝送速度を制限する。代替として伝送される一対の順序付けられた制御ブロックは、１つの周期定常の「１０」位置を有することによって、フレーミングを促進する。しかしながら、単一の制御ブロックも使用され得る。
【００８１】
（５）フロー制御：単一の精密スロットル点が、物理層４１２伝送機の中への注入速度を制限し、物理層４２２内の受信ＦＩＦＯバッファが決してオーバーフローしないことを保証する。データは常に、データが取り出されるよりも遅い速度で受信ＦＩＦＯの中に入れられる。受信ＦＩＦＯは常に、殆ど空で、かつ最小限の遅延を伴って動作する。
【００８２】
これらの必要特性に加えて、本発明の種々の実施形態は、以下の所望の特性も満たす。
【００８３】
（１）バーストエラー耐性：同期ヘッダ伝送順序を分割することによって、実施形態は、単一のＤＦＥバーストエラーが同期ヘッダを反転させる確率を有意に低減させる。
【００８４】
（２）エラー増殖：データペイロードの追加のスクランブル／スクランブル解除を使用することは、自己同期化方式で起こるランダムおよびバーストエラー増殖を回避する。開示されるコードは、物理層制御ブロックを使用して、スクランブラ／デスクランブラを明示的に種まきする。
【００８５】
（３）確かな制御ブロック：好ましい符号化は、ハミング距離＝１８を伴う単一の制御ブロック、および４つの符号化メッセージを使用する。符号化メッセージは、スクランブラおよびデスクランブラを同期させ、レーン整列および逆転マーカを送信し、物理層アイドルを送信し、帯域内レーンフェイルオーバーを管理するために使用される。
【００８６】
（４）効率的なデータストライピング：物理レーンの数によって除算されるフリットサイズは、コードブロックサイズを確立する。開示される実施形態では、フリットは、１５２ビットであり、リンク幅は、４つの物理レーンである。したがって、４によって除算される１５２は、３８ビットのコードブロックペイロードサイズを生じさせる。同期ヘッダを用いると、コードブロックサイズは、４０ビットであり、４０のポート幅を有するシリアライザ／デシリアライザに直接接続する。この設計パラメータの選択は、リンクと物理層との間に効率的な低遅延インターフェースを生じさせる。
【００８７】
（５）フロー制御：上で説明される単一の精密スロットル点は、フリットクロックおよびシリアルチャネルクロック周波数の間の不整合を補償する。それは、公称および公差不整合の両方を補償する。これは、いくつかの定義されたフリット対チャネル周波数比にわたって、伝送および受信バッファ遅延を最小化する。公称スロットル率は、（１−フリット対チャネル周波数比）に比例する。
【００８８】
相互接続上のアイドル制御ブロック密度は、最悪の場合の発振器不整合の関数である。フリットクロックとチャネルクロックとの間に厳しい公差がある場合、フロー制御は、効率（制御ブロックの制限された使用）、低遅延（空のバッファ）、および豊富なＥＭＩスペクトル成分を保証する。
【００８９】
（６）増進したエラー検出：全てのレーンは、コードブロックを同期的に伝送し、制御またはデータのいずれか一方を同時に伝送する。これは、伝送された制御／データブロックの同じ順序および数を有する、全てのレーンを保証する。これは、明示的なレーン整列マーカが受信されるときだけでなく、任意のタイプの制御ブロックが受信されるときに、レーン整列チェックを可能にする。これは、本質的に、複数のレーンが使用される場合、同期ヘッダエラーを検出するための機構を提供する。４つ全ての物理レーン内で同時に起こる同期ヘッダエラーの確率は、非常に小さい。１つのレーン内の同期ヘッダエラーは、４つ全てのレーンにわたって受信されたデータまたは制御ブロックを比較することによって検出される。データまたは制御の全てのブロックは、４つ全てのレーン内で同時に起こらなければならない。
【００９０】
（７）レーン整列前のエラー検出および取扱：各物理レーンは、受信されたコードブロックからサイドデータを生成する。データブロックは、整列ＦＩＦＯバッファを通して送信され、制御ブロックは、破棄される。
【００９１】
訂正可能な制御ブロックエラー：各ブロックは、有効制御ヘッダを有し、かつペイロードにおいて９ビット未満のエラーを有する。「訂正可能なエラー」メッセージは、次のデータブロックとともに整列ＦＩＦＯバッファを通して送信される。
【００９２】
訂正不可能な制御ブロックエラー：各ブロックは、有効制御ヘッダを有し、かつペイロードにおいて８ビットより多いエラーを有する。「訂正不可能なエラー」メッセージは、次のデータブロックとともに整列ＦＩＦＯバッファを通して送信される。
【００９３】
ヘッダエラー：ヘッダエラーは、同期ヘッダ値が無効である場合、すなわち、「００」または「１１」である場合に起こる。同期ヘッダエラーを取り扱うための２つの選択可能な動作モードがある。第１のモードでは、ヘッダエラーサイドデータビットが設定され、整列ＦＩＦＯを通してブロックペイロードとともに送信される。ヘッダエラーは、巻き戻しまたはデータ再試行を強制する。第２のモードでは、ペイロードブロックは、それがデータまたは制御であるかどうかを決定するように分析される。ペイロードがデータである場合、ヘッダエラーサイドデータビットが設定され、訂正可能なブロックエラービットが設定され、これらが整列ＦＩＦＯを通して送信され、正常に処理される。ペイロードが制御である場合、ブロックが破棄され、次のデータブロックとともに、ヘッダエラーおよび訂正可能なブロックエラービットが設定される。訂正可能なブロックエラービットは、ヘッダエラーからの強制的な巻き戻しを防止し、整列ＦＩＦＯを通してブロックペイロードとともに送信される。
【００９４】
連続制御ブロックカウンタ：カウンタが、フロー制御およびレーン整列を監視するために提供される。カウント値は、各受信された制御ブロックとともにインクリメントされる。オーバーフロービットを伴うカウント値は、次のデータブロックとともに整列ＦＩＦＯを通して送信され、各データブロックとともにリセットされる。データブロックの隣接連鎖に対して、カウント値は、「０」である。ストリーム内の単一の制御ブロックに対して、次のデータブロックとともに送信される値は、「１」である。最大カウント限界を超える場合、オーバーフロービットが設定され、カウンタは、次のデータブロックがリセットされるまで限界値を保持する。
【００９５】
一意のレーンＩＤ：各レーンは、レーン整列、明示的な追加のスクランブラ／デスクランブラシードの種まき、およびレーン逆転検出のために使用される一意のＩＤを伝送する。
【００９６】
（８）レーン整列後のエラー検出およびエラー取扱：
レーンＩＤ等価チェック：レーン整列マーカは、全てのレーン内で同時に起こらなければならない。この条件が違反される場合、レーン整列エラーカウンタをインクリメントし、物理層をリセットする。このチェックは、単一レーンモードでは適用可能ではない。
【００９７】
連続制御ブロックカウント等価チェック：全てのレーンは、同じ制御ブロックカウント値およびオーバーフロービット値を有していなければならない。この条件が違反される場合、レーン整列が失われ、レーン整列エラーカウンタがインクリメントされ、物理層がリセットされる。このチェックは、単一レーンモードでは適用可能ではない。多重レーン用途では、このチェックは、同期ヘッダを破損するランダムおよびバーストエラーからの追加の保護を提供する。
【００９８】
カウンタオーバーフローエラー：フロー制御エラーカウンタは、適切なレーン内でインクリメントされ、物理層がリセットされる。
【００９９】
同期ヘッダエラー：レーン整列後に同期ヘッダエラーを取り扱うための２つのモードがある。第１のモードでは、ヘッダエラーカウンタが、適切なレーン内でインクリメントされる。第２のモードでは、訂正可能または訂正不可能なヘッダエラーカウンタが、適切なレーン内でインクリメントされる。プロセスは、ヘッダエラーが訂正可能である場合、データを正常にフィルタ処理される。訂正可能ではない場合、物理層をリセットする。ヘッダエラーフィルタリングは、ランダム単一ビットエラーの存在下で、高価な再伝送および物理層リセットを回避する。「連続ブロックカウント等価チェック」は、誤ったフィルタ決定がマルチレーンリンク内の１つ以上のレーンにおいて行われた場合に、物理層リセットを強制する。フィルタ処理された決定は、増進したランダムおよび相関エラー監視のために、ＣＲＣエラー検出と相関させられ得る。
【０１００】
訂正可能な制御ブロックエラー：適切なレーンのための訂正可能エラーカウンタがインクリメントされる。
【０１０１】
訂正不可能な制御ブロックエラー：訂正不可能なエラーカウンタがインクリメントされ、物理層がリセットされる。
【０１０２】
（一般的実装）
上で説明される本発明の実施形態は、例示的にすぎないことを意図しており、多数の変形例および修正が、当業者に明白となるであろう。全てのそのような変形例および修正は、任意の添付の請求項で定義されるように、本発明の範囲内であることを意図している。
【図１】
2017513168.tif 000003
【図２】
2017513168.tif 000004
【図３】
2017513168.tif 000005
【図４】
2017513168.tif 000006
【図５】
2017513168.tif 000007
【図６】
2017513168.tif 000008
【図７】
2017513168.tif 000009
【図８】
2017513168.tif 000010
【図９】
2017513168.tif 000011
【国際調査報告】
2017513168.tif 000012
2017513168.tif 000013
2017513168.tif 000014