(57)【特許請求の範囲】
【請求項１】
パケットベースの通信システム内のノード間でデータを伝送する方法において、
第１のノードにおいて、データ・パケットが１次コード・ワードを受け入れられることを認識することと、
前記第１のノードにおいて、前記１次コード・ワードを前記データ・パケットに格納することと、
前記第１のノードにおいて、前記１次コード・ワードに基づいて１次誤り訂正コードを計算することと、
前記第１のノードにおいて、前記１次誤り訂正コードを前記データ・パケットに格納することと、
前記データ・パケットを第２のノードに伝送することと、
第２のノードにおいて、前記データ・パケット内の前記１次コード・ワードが前記データ・パケットによって供給されるすべてのビット位置を使用してはいないことを認識することと、
前記第２のノードにおいて、第３のノードにアドレス指定されたコード・ワードであって、前記データ・パケットの２次コード・ワードとして伝送できるコード・ワードを識別することと、
前記第２のノードにおいて、前記１次コード・ワードが使用しない前記データ・パケットのビット位置に２次コード・ワードとして前記コード・ワードを格納することと、
前記データ・パケットを前記第３のノードに伝送することと、
前記第３のノードにおいて、前記データ・パケットに含まれる前記２次コード・ワードが前記第３のノードにアドレス指定されていることを認識することと、
前記第３のノードにおいて、前記データ・パケットから前記２次コード・ワードを抽出することとを含み、
前記コード・ワードは、前記データ・パケットが前記１次コード・ワードによってアドレス指定されたノードに経路指定された際に前記データ・パケットが移動する経路が前記第３のノードを通過するかまたは前記第３のノードで終了する場合、あるいは、前記第３のノードに前記コード・ワードを中継できるノードを通過するかまたはそのノードで終了する場合に、前記コード・ワードが前記データ・パケットの２次コード・ワードとして識別されることを特徴とするデータ伝送方法。
【請求項２】
前記第１のノードにおいて前記１次コード・ワードに基づいて１次誤り訂正コードを計算することが、前記１次コード・ワードとデータ・パケットの前記１次コード・ワードによって占有されていないビット位置用の固定ビット・パターンとを使用して前記１次誤り訂正コードを計算することを含むことを特徴とする請求項１に記載のデータ伝送方法。
【請求項３】
前記データ・パケットを第４のノードに伝送することと、
前記第４のノードにおいて、前記データ・パケットに含まれる前記１次コード・ワードが前記第４のノードにアドレス指定されていることを認識することと、
前記第４のノードにおいて、前記１次コード・ワードと前記１次誤り訂正コードを抽出することと、
前記１次コード・ワードと前記固定ビット・パターンとに基づいて誤り訂正コードを計算し、前記計算した誤り訂正コードと前記１次誤り訂正コードとを比較することにより、前記１次コード・ワードの有効性を確認することと、
をさらに含むことを特徴とする請求項２に記載のデータ伝送方法。
【請求項４】
前記第２のノードにおいて、前記１次コード・ワードおよび２次コード・ワードに基づいて結合誤り訂正コードを計算することと、
前記第２のノードにおいて、前記データ・パケット内の前記誤り訂正コードを前記結合誤り訂正コードで置き換えることと、
をさらに含むことを特徴とする請求項１に記載のデータ伝送方法。
【請求項５】
前記データ・パケットの内容に基づいて誤り訂正コードを計算し、前記計算した誤り訂正コードと前記データ・パケットに格納されている前記誤り訂正コードとを比較することにより、前記第２のノードにおいて前記１次コード・ワードを検証することをさらに含むことを特徴とする請求項４に記載のデータ伝送方法。
【請求項６】
前記データ・パケットの内容に基づいて誤り訂正コードを計算し、前記計算した誤り訂正コードと前記データ・パケットに格納されている前記誤り訂正コードとを比較することにより、前記第３のノードにおいて前記２次コード・ワードを検証することをさらに含むことを特徴とする請求項４に記載のデータ伝送方法。
【請求項７】
前記２次コード・ワードは「２次コード・ワードあり」フラグを含み、前記結合誤り訂正コードは該フラグをクリアして計算されることを特徴とする請求項４に記載のデータ伝送方法。
【請求項８】
前記第２のノードにおいて前記２次コード・ワードに基づいて２次誤り訂正コードを計算することと、
前記第２のノードにおいて前記２次誤り訂正コードを前記データ・パケットに格納することと、
前記第３のノードにおいて前記２次誤り訂正コードを抽出することと、
前記２次コード・ワードに基づいて誤り訂正コードを計算し、前記計算した誤り訂正コードと前記２次誤り訂正コードとを比較することにより、前記２次コード・ワードの有効性を確認することと、
をさらに含むことを特徴とする請求項１に記載のデータ伝送方法。
【請求項９】
ネットワーク化装置と、
前記ネットワーク化装置に結合されたネットワーク・インタフェースと、
を備え、
前記ネットワーク・インタフェースが、
データ・パケットを保持し、ネットワーク媒体に結合された転送メモリ領域と、
前記転送メモリ領域と前記ネットワーク化装置に結合されたパケット処理ユニットと、
を備え、
前記パケット処理ユニットが、
ネットワーク・ノードにアドレス指定された１次コード・ワードを前記転送メモリ領域から前記ネットワーク化装置に伝送するための入力１次コード・ワード処理ユニットと、
前記ネットワーク化装置から出力コード・ワードを受信し、前記出力コード・ワードを１次コード・ワードあるいは２次コード・ワードとして前記転送メモリ領域に格納するための出力コード・ワード処理ユニットと、
前記ネットワーク・ノードにアドレス指定された２次コード・ワードを前記転送メモリ領域から前記ネットワーク化装置に伝送するための入力２次コード・ワード処理ユニットと、を備え、
前記入力１次コード・ワード処理ユニットが入力１次コード・ワードの完全性を検証するための１次コード・ワード検証ユニットを含み、前記入力２次コード・ワード処理ユニットが入力２次コード・ワードの完全性を検証するための２次コード・ワード検証ユニットを含み、前記出力コード・ワード処理ユニットが１次コード・ワード誤りコード生成ユニットと２次コード・ワード誤りコード生成ユニットとを含むとともに、
前記１次コード・ワード誤りコード生成ユニットがデータ・パケット誤りコードを生成し、前記１次コード・ワード検証ユニットが、前記１次コード・ワードに基づき、誤りコードを計算し、前記計算した誤りコードと前記データ・パケット誤りコードとを比較することにより、入力１次コード・ワードの完全性を検証し、
前記出力コード・ワード処理ユニットは、さらに、前記入力１次コード・ワードと前記データ・パケット誤りコードとを含むデータ・パケットが前記入力１次コード・ワードによってアドレス指定されたノードに経路指定された際に当該データ・パケットが移動する経路が前記出力コード・ワードがアドレス指定される宛先ノードを通過するかまたは該宛先ノードで終了する場合、あるいは、該宛先ノードに前記２次コード・ワードを中継できるノードを通過するかまたはそのノードで終了する場合に、前記出力コード・ワードを前記データ・パケットの前記２次コード・ワードとして格納することを特徴とするパケット処理ユニットとを有するネットワーク・ノード。
【請求項１０】
前記１次コード・ワード誤りコード生成ユニットが前記１次コード・ワードと前記データ・パケット内の前記１次コード・ワードが使用しないビット位置用の固定ビット・パターンとを使用して前記データ・パケット誤りコードを生成し、前記１次コード・ワード検証ユニットが、前記１次コード・ワードに基づき、前記データ・パケット内の前記１次コード・ワードが使用しない前記ビット位置用の前記固定ビット・パターンを使用して前記誤りコードを計算し、前記計算した誤りコードと前記データ・パケット誤りコードとを比較することにより、入力１次コード・ワードの完全性を検証することを特徴とする請求項９に記載のネットワーク・ノード。
【請求項１１】
前記２次コード・ワード誤りコード生成ユニットが前記２次コード・ワードを使用して２次誤りコードを生成し、前記２次コード・ワード検証ユニットが、前記２次コード・ワードに基づいて誤りコードを計算し、前記計算した誤りコードと前記２次誤りコードとを比較することにより、入力２次コード・ワードの完全性を検証することを特徴とする請求項９に記載のネットワーク・ノード。
【請求項１２】
前記２次コード・ワード誤りコード生成ユニットが、前記データ・パケットに基づいて第１の誤りコードを計算し、前記計算した第１の誤りコードと前記データ・パケット誤りコードとを比較することにより、前記１次コード・ワードの完全性を検証し、前記２次コード・ワードが前記データ・パケットに格納された後で前記データ・パケットに基づいて再計算した誤りコードを生成し、前記２次コード・ワード検証ユニットが、前記データ・パケットに基づいて第２の誤りコードを計算し、前記計算した第２の誤りコードと前記データ・パケット誤りコードとを比較することにより、入力２次コード・ワードの完全性を検証することを特徴とする請求項９に記載のネットワーク・ノード。
【請求項１３】
ネットワーク媒体を介して相互に接続された複数のネットワーク・ノードを含み、前記ネットワーク媒体を介して前記ネットワーク・ノード間を移動するデータ・パケットを有するパケットベースの通信システムにおいて、
前記データ・パケットが、
複数のビット位置と、
第１のネットワーク・ノードで前記複数のビット位置の第１の部分に格納された１次コード・ワードと、
前記第１のネットワーク・ノードとは異なる第２のネットワーク・ノードで前記１次コード・ワードとが格納されている前記複数のビット位置の第２の部分に格納された２次コード・ワードと、
前記第１のネットワーク・ノードにおいて前記１次コードに応じて前記複数のビット位置の第３の部分に格納された、データ・パケット誤りコードと、
を含み、
前記２次コード・ワードは、前記データ・パケットが前記１次コード・ワードによってアドレス指定されたノードに経路指定された際に、前記データ・パケットが移動する経路が通過するかまたは終了するノード、あるいは、前記通過するかまたは終了するノードで中継されるノードにアドレス指定されていることを特徴とするパケットベースの通信システム。
【請求項１４】
前記データ・パケット誤りコードが、前記１次コード・ワードと、前記複数のビット位置のうち前記第１の部分が使用しないビット位置の代わりに使用する固定ビット・パターンとに基づいて計算されることを特徴とする請求項１３に記載のパケットベースの通信システム。
【請求項１５】
前記データ・パケットが、前記複数のビット位置の第４の部分に格納された前記２次コード・ワードに基づく２次誤りコードをさらに含むことを特徴とする請求項１４に記載のパケットベースの通信システム。
【請求項１６】
前記データ・パケット誤りコードが前記１次コード・ワードおよび２次コード・ワードに基づいて計算された結合誤り訂正コードに置き換えられていることを特徴とする請求項１３に記載のパケットベースの通信システム。
【請求項１７】
前記２次コード・ワードは「２次コード・ワードあり」フラグを含み、前記結合誤り訂正コードは該フラグをクリアして計算されることを特徴とする請求項１６に記載のパケットベースの通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パケットベースのネットワーク化通信に関する。より具体的には、本発明は、パケットの未使用ビットを使用して追加情報のデータを伝送する方法を行う通信システムに関する。
【０００２】
【従来の技術】
コンピューティングおよび通信の分野では、定義済みサイズを有するパケットを使用してパケットベースのネットワークによりデータを伝送することが一般的である。多くの場合、パケットで伝送されるデータは、パケット内に定義されたすべてのビット位置を使用するわけではない。
【０００３】
また、コンピューティングの分野では、誤り訂正コード（ error correcting code,ＥＣＣ）をデータ・パケットに関連付けることによりデータ・パケットの完全性を保護することも一般的である。一般的なＥＣＣの１つは、「単一誤り訂正−２重誤り検出」（ＳＥＣ−ＤＥＤ）ハミング・コードであり、これはパケット内の単一ビットの誤りを訂正し、パケット内の２ビットの誤りを検出することができる。当技術分野では既知のように、ＳＥＣ−ＤＥＤハミング・コードは、検出機能と訂正機能をデータ・パケット内に組み込むようにデータ・ビットを変換し、また個別の検査ビットも含む。あまり高性能ではない誤り検出技法では、パリティ・ビットを使用してパケット内においてビットの誤りを検出する。
【０００４】
データを伝達するためにすべてのビット位置を使用するわけではなくても、通常、ＥＣＣは、パケット内のすべてのビット位置について生成される。したがって、パケット全体はＥＣＣによって「固定」され、本来はデータを伝達するために使用可能であるはずのビット位置は、パケット内に格納されたデータの完全性を検証するためのＥＣＣの能力を破壊することをしないで使用することができない。
【０００５】
【発明が解決しようとする課題】
本発明は、データ・パケットによって提供されたすべてのビット位置を使用するわけではない「１次」コード・ワードが格納されたデータ・パケットの未使用空間内に「２次」コード・ワードを追加( piggy backed )することにより、データ・パケットの未使用ビットを使用して追加情報を伝送するための方法および装置である。２次コード・ワードを追加することができる条件は、１）１次コード・ワードが少なくとも１つの２次コード・ワードを格納するためにデータ・パケット内に十分な未使用空間を残していること、２）データ・パケットが１次コード・ワードによってアドレス指定されたネットワーク・ノードに経路指定された際にデータ・パケットが移動する経路が、２次コード・ワードによってアドレス指定されたネットワーク・ノードも通過する（またはそのノードで終了する）か、または２次コード・ワードによってアドレス指定されたネットワーク・ノードへ２次コード・ワードを中継できるネットワーク・ノードを通過する（またはそのノードで終了する）ことである。
【０００６】
本発明は、データ・パケットによって提供されたすべてのビット位置を使用するわけではない「１次」コード・ワードが格納されたデータ・パケットの未使用空間内に「２次」コード・ワードを追加( piggy backed )することにより、データ・パケット内の空間を最大限に利用可能とし、データ伝送の帯域幅を増大することが可能となることを目的とする。
【０００７】
【課題を解決するための手段】
本発明の第１の実施形態では、１次コード・ワードについてＥＣＣが生成される際に、データ・パケット内の未使用ビット位置に対して事前定義されたビット・パターン（すべて０など）を使用する。１次コード・ワードが宛先ノードで受信されると、宛先ノードは、１次コード・ワード・タイプに基づいてどのビットが未使用であるかを判定し、未使用ビットが実際に事前定義ビット・パターンを含まない場合でも事前定義ビット・パターンを使用してＥＣＣを計算する。この実施形態では、データ・パケットに関連するＥＣＣは１次コード・ワードのみを保護する。ＥＣＣで２次コード・ワードを保護することが必要な場合、データ・パケットの未使用ビット位置には２次コード・ワードを保護する個別のＥＣＣを含めなければならない。
【０００８】
第２の実施形態では、データ・パケットの未使用ビット位置に２次コード・ワードが追加される際に、ＥＣＣが再計算される。この実施形態では、データ・パケットに関連するＥＣＣは、１次コード・ワードおよび２次コード・ワードを含むパケット内のすべてのデータを保護する。
【０００９】
【発明の実施の形態】
本発明は、データ・パケットの未使用の予備ビットを使用して追加情報を伝送するための方法および装置である。本発明は、図１に示すようなネットワーク化システム１０のブロック図によって示される。
【００１０】
ネットワーク化システム１０は、ノード１２，１４，１６，１８，２０，２２，２４，２６を含む。各ノードは、ノード２６をノード１２に接続するネットワーク・セグメント２８やノード１２をノード１４に接続するネットワーク・セグメント３２などのネットワーク・セグメントによって隣接するノードに結合される。データ・パケットは、矢印３０が示すように単一時計回り方向にノード間を流れる。ここで使用する「データ・パケット」という用語は、ノード間でデータを伝達するためのデータ構造を指し示すために使用する。対照的に、「コード・ワード」という用語は、データ・パケットが伝達する情報を指し示すために使用する。
【００１１】
コンピューティングの分野では、「コード・ワード」という用語は、データと、関連の誤り訂正および検出ビットの両方を含むものとして使用する場合が多い。しかし、ここで使用するように、「コード・ワード」という用語は、関連の誤り訂正および検出ビットを除く、実際のユーザまたはシステム・データを示す。
【００１２】
ネットワーク化システム１０は、ネットワーク・セグメントによって接続されたノードを有するタイプのシステムを表す。たとえば、ネットワーク化システム１０のノードは、コンピュータ・ワークステーション、プリンタ、サーバなどを有するコンピュータ・ネットワークを表すことができる。あるいは、ネットワーク化システム１０は、個々の中央演算処理装置（ＣＰＵ）がネットワークによってひとまとめに結合されたマルチプロセッサ・システムにすることもできる。ネットワーク化システム１０に関連して本発明を示すが、当業者であれば、本発明はスター・トポロジやリンク・クラスタ・トポロジなどの様々なネットワーク・トポロジに適合させることができることが分かるだろう。
【００１３】
図２は、図１のノード１２を示すブロック図である。ノード１２に関する以下の説明は、ネットワーク化システム１０におけるすべてのノードに適用可能である。ノード１２はネットワーク化装置３４とネットワーク・インタフェース３６とを含み、このネットワーク・インタフェース３６はネットワーク化装置３４に結合されている。ネットワーク・インタフェース３６はパケット処理ユニット３８と転送レジスタ４０とを含む。ネットワーク化装置３４は、コンピュータ・ワークステーション、プリンタ、サーバなど、ネットワークに結合されたどんなタイプの装置でもよい。さらに、ネットワーク化装置３４は、マルチプロセッサ・システム内の中央演算処理装置（ＣＰＵ）を表すことができる。
【００１４】
図１の他のネットワーク・セグメントに加え、ネットワーク・セグメント２８および３０はそれぞれ、転送レジスタ４０に結合された７２ビット・バスである。同期ネットワーク・クロックにより、１つのノードからのデータが次のネットワークにクロックされる。したがって、ネットワークは、ネットワーク・クロック・サイクルごとに各転送レジスタに７２ビットずつ並行して転送する。これらのビットのうち６４ビットはデータ・パケットを伝達し、残りの８ビットは、ＳＥＣ−ＤＥＤハミング・コードなど、データ・パケットを保護する誤り訂正コード（ＥＣＣ）の検査ビットを伝達する。
【００１５】
パケット処理ユニット３８は、ネットワーク化装置３４と転送レジスタ４０との間に結合される。パケット処理ユニット３８は、ネットワーク化装置３４がネットワークによりデータを送信する際にネットワーク化装置３４から転送レジスタ４０にデータを転送し、ノード１２にアドレス指定されたコード・ワードを含むデータ・パケットが転送レジスタ４０で受信される際に転送レジスタ４０からネットワーク化装置３４にデータを転送する。また、パケット処理ユニット３８は、出力データ用の誤り訂正コード（ＥＣＣ）も生成し、また入力データとともに受信したＥＣＣに基づいて入力データを検証する。最後に、パケット処理ユニット３８は、転送レジスタ４０がデータ・パケットを受け入れられるかどうかに基づいて、出力データの流れを規制する。
【００１６】
図３は図２のノードの一部である転送レジスタ４０のフォーマットを示している。ビット位置０〜６３はデータ・パケット４２を保持する。データ・パケット４２内では様々なタイプのコード・ワードを伝送することができる。コード・ワードは、データ・パケットの送信元ノードおよび宛先ノード、ヘッダ情報、ＡＣＫ情報、データ内容などの情報を含むことができる。転送レジスタ４０のビット位置６４〜７１はデータ・パケット用のＥＣＣ４３を保持するために使用し、このＥＣＣ４３はビット位置０〜６３に格納されたデータの完全性を検証するために使用する。
【００１７】
多くの場合、あるノードから別のノードへ転送する必要があるデータ・ブロックはデータ・パケット４２のサイズより大きい。したがって、伝送プロトコルを使用してそのデータ・ブロックを伝送する。たとえば、典型的な伝送プロトコルでは、少なくとも１つのデータ内容コード・ワードが続き、ＡＣＫコード・ワードで終わるヘッダ・コード・ワードなどの一連のコード・ワードを定義する。
【００１８】
たとえば、図４は、図３に示す転送レジスタ４０に格納された典型的なヘッダ・コード・ワード４４を示している。ヘッダ・コード・ワード４４は、送信元ノード、宛先ノード、後続するデータ内容パケットの数、プロトコルが必要とするその他の情報などの情報を含むことができる。通常、ヘッダ・コード・ワードは、パケット内で使用可能なすべてのビット位置を使用するわけではない。たとえば、ヘッダ・コード・ワード４４はビット位置０〜３９を使用し、それにより、ビット位置４０〜６３が未使用のまま残る。前述のように、ＥＣＣ４３は、図４に示すヘッダ・コード・ワード４４を含むデータ・パケットを保護する。
【００１９】
図５は、図３に示す転送レジスタに格納された典型的なデータ内容コード・ワード４６を示している。通常、データ内容コード・ワードはデータ・パケットのすべてのビット位置を使用するが、起こりうる例外として一連のデータ内容コード・ワード内の最後のデータ内容コード・ワードは除く。
【００２０】
多くの伝送プロトコルでは、受信ノードが送信元ノードにＡＣＫコード・ワードを送り返して、受信ノードがすべての情報を正しく受信したことを確認する必要がある。ヘッダ・コード・ワードと同様に、ＡＣＫコード・ワードも通常、データ・パケット内で使用可能なすべてのビット位置を使用するわけではない。
【００２１】
本発明では、「１次」コード・ワードが格納されるデータ・パケットの未使用空間に追加すべき「２次」コード・ワードに備えるものである。待ち行列状況情報やフロー制御情報などの様々なタイプの制御情報を伝達する１つまたは複数のＡＣＫコード・ワードなど、様々なタイプのコード・ワードを２次コード・ワードとして伝送することができる。２次コード・ワードを追加することができる条件は以下の通りである。
１）１次コード・ワードが少なくとも１つの２次コード・ワード（以下に述べるように設けられている場合は２次コード・ワード用の２次ＥＣＣを含む）を格納するためにデータ・パケット内に十分な未使用空間を残していること。
２）データ・パケットが１次コード・ワードによってアドレス指定されたネットワーク・ノードに経路指定された際にデータ・パケットが移動する経路が、２次コード・ワードによってアドレス指定されたネットワーク・ノードも通過（またはそのノードで終了）するか、または２次コード・ワードによってアドレス指定されたネットワーク・ノードへ２次コード・ワードを中継できるネットワーク・ノードを通過する（またはそのノードで終了する）こと。
【００２２】
類推によると、２次コード・ワードは、自分の行きたい方向に行くのかどうかを自動車のドライバに尋ねるヒッチハイカーのようなものである。ドライバがその方向に行く場合、ヒッチハイカーは自動車に乗り込み、自分の行先に達するまでドライバと同乗する。ドライバがヒッチハイカーの行先まで行かない場合、ヒッチハイカーはドライバが行くところまで行って降り、ヒッチハイカーの行先により近いところまで移動させてくれる別の自動車を待つ。
【００２３】
図１に関連して、ノード１８はノード２４に１次コード・ワードを送信し、図４のヘッダ・コード・ワード４４の場合と同様に、その１次コード・ワードはデータ・パケットのすべてのビット位置を使用するわけではないと想定する。さらに、ノード２０はノード２２にコード・ワードを送信する必要があり、そのコード・ワードはノード１８によって送信された１次コード・ワードによって残された未使用空間に収まるものと想定する。データ・パケットがノード２０に達すると、ノード２０は、そのデータ・パケットがノード２２を過ぎて移動し、ノード２０が送信しようとしているコード・ワードを保持する余裕があることを認識する。したがって、ノード２０はそのコード・ワードをパケット内に２次コード・ワードとして追加する。データ・パケットがノード２２に達すると、ノード２２は、そのデータ・パケットがノード２２にアドレス指定された２次コード・ワードを含むことを認識し、そのデータ・パケットから２次コード・ワードを抽出する。次に、データ・パケットはノード２４まで移動し、そこでノード２４によって１次コード・ワードが抽出される。
【００２４】
本発明の新規の特徴の１つは、１次コード・ワードと２次コード・ワードの両方についてＥＣＣが生成され、検証される方法である。第１の実施形態では、１次コード・ワードについてＥＣＣが生成される際に、データ・パケット内の未使用ビット位置に対して事前定義ビット・パターン（すべて０など）を使用する。１次コード・ワードが宛先ノードで受信されると、宛先ノードは、１次コード・ワードのタイプに基づいてどのビットが未使用であるかを判定し、未使用ビットが実際に事前に定義されたビット・パターンを含まない場合でも事前定義ビット・パターンを使用してＥＣＣを検証する。この実施形態では、データ・パケットに関連するＥＣＣは１次コード・ワードのみを保護する。ＥＣＣで２次コード・ワードを保護することが必要な場合、データ・パケットの未使用ビット位置には２次コード・ワードを保護する個別のＥＣＣを含めなければならない。
【００２５】
第２の実施形態では、データ・パケットの未使用ビット位置に２次コード・ワードが追加されると、データ・パケットＥＣＣが再計算される。この実施形態では、データ・パケットに関連するＥＣＣは、１次コード・ワードおよび２次コード・ワードを含むパケット内のすべてのデータを保護する。
【００２６】
図６は、本発明の第１及び第２の実施形態によるパケット処理ユニット３８のブロック図である。パケット処理ユニット３８は、入力１次コード・ワード処理ユニット４８と、出力コード・ワード処理ユニット５０と、入力２次コード・ワード処理ユニット５２とを含む。入力１次コード・ワード処理ユニット４８は、図２の転送レジスタ４０からデータを受信するように配置された１次コード・ワード・アドレス・デコード・ユニット５６と、１次コード・ワード・アドレス・デコード・ユニット５６からデータを受信し、図２のネットワーク化装置３４にデータを供給するように配置された１次コード・ワードＥＣＣ検証ユニット５４とを含む。同様に、入力２次コード・ワード処理ユニット５２は、転送レジスタ４０からデータを受信するように配置された２次コード・ワード・アドレス・デコード・ユニット５８と、２次コード・ワード・アドレス・デコード・ユニット５８からデータを受信し、ネットワーク化装置３４または出力コード・ワード処理ユニット５０のコード・ワード出力バッファおよびスケジューラ・ユニット６２のバッファ６１にデータを供給するように配置された２次コード・ワードＥＣＣ検証ユニット６０とを含む。
【００２７】
出力コード・ワード処理ユニット５０は、コード・ワード出力バッファおよびスケジューラ・ユニット６２と、１次コード・ワードＥＣＣ生成ユニット６４と、２次コード・ワードＥＣＣ生成ユニット６６とを含む。コード・ワード出力バッファおよびスケジューラ・ユニット６２はバッファ６１を含む。１次コード・ワードＥＣＣ生成ユニット６４は、コード・ワード出力バッファおよびスケジューラ・ユニット６２からコード・ワードを受信し、ＥＣＣを含む１次コード・ワードを転送レジスタ４０に供給するように配置されている。同様に、２次コード・ワードＥＣＣ生成ユニット６６は、コード・ワード出力バッファおよびスケジューラ・ユニット６２からコード・ワードを受信し、２次コード・ワードを転送レジスタ４０に供給するように配置されている。上記の第１の実施形態では、２次コード・ワードＥＣＣ検証ユニット６０は、２次コード・ワードのみを保護するＥＣＣも生成することができる。上記の第２の実施形態では、２次コード・ワードＥＣＣ検証ユニット６０は、追加した２次コード・ワードを含めるためにデータ・パケットに関連するデータ・パケットＥＣＣを再計算する。
【００２８】
コード・ワード出力バッファおよびスケジューラ・ユニット６２は、ネットワーク化装置３４からデータを受信し、１次コード・ワードＥＣＣ生成ユニット６４および２次コード・ワードＥＣＣ生成ユニット６６にデータを供給するように配置されている。また、コード・ワード出力バッファおよびスケジューラ・ユニット６２は、転送レジスタ４０が１次コード・ワードを受け入れるのか、２次コード・ワードを受け入れるのか、または両方を受け入れるのかを判定するために転送レジスタ４０を監視するようにも配置されている。
【００２９】
上記の例では、１次コード・ワードは図１のノード１８からノード２４に伝送され、２次コード・ワードは、１次コード・ワードと同じデータ・パケットに２次コード・ワードを追加することによりノード２０からノード２２に伝送された。以下の説明では、本発明の第１の実施形態で上記の例を実現する方法を説明する。
【００３０】
ノード１８が図４のヘッダ・コード・ワード４４などのコード・ワードを送信しようとする際、ノード１８のネットワーク化装置３４は、パケット処理ユニット３８の出力コード・ワード処理ユニット５０のコード・ワード出力バッファおよびスケジューラ・ユニット６２にコード・ワードを伝送する。通常、プロトコルは、そのパケットがコード・ワードを含むかどうかを示すためにデータ・パケット内のフラグ（またはその他のメカニズム）を定義する。この説明のため、データ・パケットの第１のビットは「１次コード・ワードあり」フラグとして定義され、そのパケットが１次コード・ワードを含むことを示すためにセットされ、そのパケットが１次コード・ワードを含まないことを示すためにクリアされるものと想定する。さらに、データ・パケットのすべてのビット位置を使用しない１次コード・ワードをデータ・パケットが含む場合、第１の未使用ビットは「第１の２次コード・ワードあり」フラグとして定義され、そのパケットが第１の２次コード・ワードを含むことを示すためにセットされ、そのパケットが第１の２次コード・ワードを含まないことを示すためにクリアされるものと想定する。第２の２次コード・ワードがデータ・パケット内に存在する場合、１次コード・ワードおよび第１の２次コード・ワードが使用しない第１のビットは「第２の２次コード・ワードあり」フラグとして定義される。同様に、必要に応じて、追加の「ｎ番目の２次コード・ワードあり」フラグを定義することができる。
【００３１】
コード・ワード出力バッファおよびスケジューラ・ユニット６２は、転送レジスタ４０を監視し、その「１次コード・ワードあり」フラグがクリアになっているデータ・パケットを待つことにより、転送レジスタ４０がコード・ワードを受け入れることができる時期を決定する。使用可能なデータ・パケットが識別されると、１次コード・ワードＥＣＣ生成ユニット６４はそのパケットを保護するＥＣＣを生成し、コード・ワードとＥＣＣは転送レジスタ４０内のデータ・パケットに格納される。ただし、この実施形態では、１次コード・ワードが使用していないビット位置に対して固定ビット・パターン（すべて０など）を使用してＥＣＣが生成されることに留意されたい。
【００３２】
次のネットワーク・クロック・サイクルは、ノード１８の転送レジスタ４０の内容をノード２０の転送レジスタ４０に転送する。この例のノード２０は、２次コード・ワードとして伝送可能なコード・ワード（ＡＣＫコード・ワードなど）を伝送しようとしている。このコード・ワードは、ネットワーク化装置３４からコード・ワード出力バッファおよびスケジューラ・ユニット６２に転送される。コード・ワード出力バッファおよびスケジューラ・ユニット６２は、転送レジスタ４０を監視し、データ・パケット内で使用可能なすべてのビットを使用するわけではない１次コード・ワードを転送レジスタ４０が含むことを検出する。この機能を実行するため、コード・ワード出力バッファおよびスケジューラ・ユニット６２は、１次コード・ワードがデータ・パケット内のすべてのビットを使用するわけではないことを判定できなければならない。これは、ルックアップ・テーブルを使用して１次コード・ワードのタイプと１次コード・ワードが使用するビットの数とを突き合わせるか、データ・パケット内の事前定義ビット・パターンを使用して未使用ビットの数を示すか、または本発明を実施するネットワーク・アーキテクチャおよびプロトコルで使用するのに適した他の方法により、実行することができる。
【００３３】
コード・ワードを転送レジスタ４０内のデータ・パケットに２次コード・ワードとして追加できるとコード・ワード出力バッファおよびスケジューラ・ユニット６２が判定した後、コード・ワード出力バッファおよびスケジューラ・ユニット６２は、コード・ワードを２次コード・ワードＥＣＣ生成ユニット６６に転送する。２次コード・ワードＥＣＣ生成ユニット６６は、コード・ワードに基づいてＥＣＣを生成し、転送レジスタ４０に格納されたパケット内にコード・ワードとＥＣＣを挿入する。
【００３４】
また、データ・パケットが転送レジスタ４０で受信される前に１次コード・ワードＥＣＣ生成ユニット６４と２次コード・ワードＥＣＣ生成ユニット６６の両方がそれぞれのコード・ワード用のＥＣＣを生成することも、本発明における第１の実施形態の範囲内である。このような構成では、コード・ワード出力バッファおよびスケジューラ・ユニット６２は１次コード・ワードＥＣＣ生成ユニット６４および２次コード・ワードＥＣＣ生成ユニット６６と協同し、データ・パケットが到着する前にＥＣＣを生成する。データ・パケットが転送レジスタ４０に到着すると、コード・ワードは事前に計算したＥＣＣとともに転送レジスタ４０に転送できる状態になる。
【００３５】
図７は、本発明の第１の実施形態により１次コード・ワードおよび２次コード・ワードが転送レジスタ４０に格納された後の転送レジスタ４０の内容を示している。図７のヘッダ・コード・ワード４４は１次コード・ワードであり、ビット位置０〜３９に格納され、ＡＣＫコード・ワード６８は２次コード・ワードであり、ビット位置４０〜５５に格納される。ＡＣＫＥＣＣ７０はビット位置５６〜６１に格納され、ＡＣＫコード・ワード６８（２次コード・ワード）を保護する。ヘッダＥＣＣ７２はビット位置６４〜７１に格納され、ヘッダ・コード・ワード４４（１次コード・ワード）を保護する。ビット位置６２および６３は未使用である。
【００３６】
次のネットワーク・クロック・サイクルでは、ノード２０の転送レジスタ４０の内容がノード２２の転送レジスタ４０に転送される。この例の場合では、ノード２２は再びデータを送信せずに、転送レジスタ４０内の２次コード・ワードがノード２２にアドレス指定される。１次コード・ワード・アドレス・デコード・ユニット５６は、転送レジスタ４０に格納されたデータ・パケットを調べ、転送レジスタ４０がノード２２にアドレス指定された１次コード・ワードを含まないと判定する。２次コード・ワード・アドレス・デコード・ユニット５８は、転送レジスタ４０に格納されたデータ・パケットを調べ、転送レジスタ４０が１次コード・ワードを含み、したがって、追加した２次コード・ワードも含む可能性があると判定する。次に２次コード・ワード・アドレス・デコード・ユニット５８は、転送レジスタ４０がノード２２にアドレス指定された２次コード・ワードを含むと判定し、転送レジスタ４０から２次コード・ワードを（２次ＥＣＣが存在する場合はその２次ＥＣＣとともに）抽出する。２次コード・ワードＥＣＣ検証ユニット６０は、２次ＥＣＣに基づいて２次コード・ワードの完全性を検証し、２次コード・ワードをネットワーク化装置３４に送信する。
【００３７】
次のネットワーク・クロック・サイクルでは、ノード２４の転送レジスタ４０にデータ・パケットが転送される。１次コード・ワード・アドレス・デコード・ユニット５６は、転送レジスタ４０内のパケットがノード２４にアドレス指定された１次コード・ワードを含むと判定する。１次コード・ワード・アドレス・デコード・ユニット５６は１次コード・ワードとデータ・パケットＥＣＣとを抽出する。１次コード・ワードＥＣＣ検証ユニット５４は、１次コード・ワードと１次コード・ワードが使用しないビット位置用の固定ビット・パターン（すべて０など）に基づいてＥＣＣを計算し、計算したＥＣＣと転送レジスタ４０から取り出したデータ・パケットＥＣＣとを比較するすることにより、１次コード・ワードの完全性を検証する。その後、１次コード・ワードがネットワーク化装置３４に伝送される。
【００３８】
上記の説明では、本発明の第１の実施形態を例として説明してきた。以下の説明では、図６の様々なユニットによって実行される機能を説明するいくつかのフローチャートにより、本発明の第１の実施形態を説明する。
【００３９】
図８は、図６に示す１次コード・ワード・アドレス・デコード・ユニット５６によって実行される機能のフローチャート７４である。ブロック７６は、データ・パケットを転送レジスタ４０に転送するために次のネットワーク・クロック・サイクルを待つ。データ・パケットが到着した後、判断ブロック７８は、「１次コード・ワードあり」フラグと１次コード・ワード（存在する場合）の宛先アドレスを調べることにより、転送レジスタ４０がこのノードにアドレス指定された１次コード・ワードを含むかどうかを判定する。転送レジスタ４０がアドレス指定された１次コード・ワードを含まない場合、「ＮＯ」分岐を取ってブロック７６に戻る。転送レジスタ４０がアドレス指定された１次コード・ワードを含む場合、「ＹＥＳ」分岐を取ってブロック８０に移行する。
【００４０】
ブロック８０は、転送レジスタ４０から１次コード・ワードとデータ・パケットＥＣＣを抽出し、「１次コード・ワードあり」フラグをクリアし、ブロック８２に制御を渡す。ブロック８２は、１次コード・ワードとデータ・パケットＥＣＣを１次コード・ワードＥＣＣ検証ユニット５４に伝送し、ブロック７６に制御を戻す。
【００４１】
図９は、図６に示す１次コード・ワードＥＣＣ検証ユニット５４によって実行される機能のフローチャート８４である。ブロック８６では、１次コード・ワード検証ユニット５４が１次コード・ワードとデータ・パケットＥＣＣを１次コード・ワード・アドレス・デコード・ユニット５６から受信する。ブロック８８では、１次コード・ワードと１次コード・ワードが使用しないデータ・パケット内におけるすべてのビット用の事前定義ビット・パターンとを使用してＥＣＣを計算し、計算したＥＣＣとデータ・パケットＥＣＣとを比較することにより、１次コード・ワードの完全性が検証される。次に、制御が判断ブロック９０に渡り、そこでデータ・パケット内の１次コード・ワードが有効であるかどうかが判定される。
【００４２】
データ・パケット内の１次コード・ワードが有効である場合、「ＹＥＳ」分岐を取ってブロック９２に移行し、そこで１次コード・ワードがネットワーク化装置３４に転送され、制御がブロック８６に戻される。データ・パケット内の１次コード・ワードが無効である場合、「ＮＯ」分岐を取ってブロック９４に移行する。ブロック９４は、データ・パケットの伝送を要求すること、誤りが発生したことをネットワーク化装置３４に通知すること、その他の当技術分野で既知の応答など、無効１次コード・ワードに適したアクションを取る。誤りがデータ・パケットＥＣＣに基づいて訂正可能なタイプである場合、ブロック９４は、誤りを訂正し、訂正した１次コード・ワードをネットワーク化装置３４に伝送することもできる。次にブロック９４は制御をブロック８６に戻す。
【００４３】
図１０は、図６に示す２次コード・ワード・アドレス・デコード・ユニット５８によって実行される機能のフローチャート９６である。ブロック９８は、データ・パケットを転送レジスタ４０に転送するために次のネットワーク・クロック・サイクルを待つ。データ・パケットが到着した後、判断ブロック１００は、１つまたは複数の２次コード・ワードを追加することができる１次コード・ワードを転送レジスタ４０が含むかどうかを判定する。２次コード・ワードを追加することができる１次コード・ワード含まない場合、「ＮＯ」分岐を取ってブロック９８に戻る。２次コード・ワードを追加することができる１次コード・ワード含む場合、「ＹＥＳ」分岐を取って判断ブロック１０２に移行する。
【００４４】
判断ブロック１０２は、「２次コード・ワードあり」フラグと第１の２次コード・ワード（存在する場合）の宛先アドレスを調べることにより、転送レジスタ４０がこのノードにおいてデータ・パケットから抽出すべき１つまたは複数の２次コード・ワードを含むかどうかを判定する。２次コード・ワードがまったく存在しない場合、「ＮＯ」分岐を取ってブロック９８に戻る。２次コード・ワードが存在する場合、「ＹＥＳ」分岐を取ってブロック１０４に移行する。
【００４５】
ただし、１次コード・ワードがこのノードにアドレス指定されているが、２次コード・ワードがさらに移動しなければならないことを２次コード・ワードのアドレスが示す場合、後続の１次コード・ワードに追加できるように２次コード・ワードを抽出しなければならないことに留意されたい。多少異なる構成については以下に詳述するが、この構成では、２次コード・ワードがそのノードにアドレス指定されていない場合、その２次コード・ワードを各ノードで必ず除去し、それを出力コード・ワード処理ユニット５０に伝送することが望ましい場合もある。
【００４６】
ブロック１０４は、２次コード・ワードと２次ＥＣＣ（設けられている場合）を転送レジスタ４０から抽出し、「２次コード・ワードあり」フラグをクリアし、ブロック１０６に制御を渡す。ただし、２次ＥＣＣを含まずに２次コード・ワードを有する２次パケットを伝送することは本発明の範囲内であることに留意されたい。２次パケットとして送信できる非重要データの量を最大限にすることが望ましい状況では、２次ＥＣＣを伝送しない方が有利である可能性がある。ブロック１０６は、２次コード・ワードと２次ＥＣＣを２次コード・ワードＥＣＣ検証ユニット６０に伝送し、制御をブロック１０２に戻す。
【００４７】
次にブロック１０２は、第２の２次コード・ワードを探す。見つかった場合、ブロック１０４および１０６が繰り返され、ブロック１０２が第３の２次コード・ワードを探す。このプロセスは、このノードで抽出すべき２次パケットをそのパケットがまったく含まなくなるまで繰り返し、その時点で「ＮＯ」分岐を取ってブロック９８に移行する。
【００４８】
ただし、第１の２次コード・ワードが転送レジスタ４０から抽出されたが、他の２次コード・ワードがそのまま転送レジスタ４０内に存在し、このノードで抽出されない場合、転送レジスタ４０に２つまたはそれ以上の未使用空間域が存在する可能性があることに留意されたい。したがって、残りの２次コード・ワードをパックし直して単一の未使用空間域を提供することが望ましい場合もある。上記の「ｎ番目の２次コード・ワードあり」フラグの定義を保存するためにも、パックし直すことが必要になる場合もある。
【００４９】
図１１は、図６に示す２次コード・ワードＥＣＣ検証ユニット６０によって実行される機能のフローチャート１０８である。２次ＥＣＣなしで本発明を実施する場合、２次コード・ワードは、図１１に示す機能を実行せずにネットワーク化装置３４またはバッファ６１に直接供給されることになる。
【００５０】
ブロック１１０では、ユニット６０が２次コード・ワードと２次ＥＣＣをユニット５８から受信する。ブロック１１２では、２次コード・ワードに基づいてＥＣＣを計算し、計算したＥＣＣと２次ＥＣＣとを比較することにより、２次コード・ワードの完全性が検証される。次に、制御が判断ブロック１１４に渡り、そこでデータ・パケット内の２次コード・ワードが有効であるかどうかが判定される。
【００５１】
データ・パケット内の２次コード・ワードが有効である場合、「ＹＥＳ」分岐を取ってブロック１１６に移行し、そこで２次コード・ワードがこのノードにアドレス指定されている場合はネットワーク化装置３４に、２次コード・ワードがこのノードにアドレス指定されていない場合はバッファ６１に、２次コード・ワードが転送される。次に、制御がブロック１１０に戻される。
【００５２】
データ・パケット内の２次コード・ワードが無効である場合、「ＮＯ」分岐を取ってブロック１１８に移行する。ブロック１１８は、データ・パケットの伝送を要求すること、誤りが発生したことをネットワーク化装置３４に通知すること、その他の当技術分野で既知の応答など、無効２次コード・ワードに適したアクションを取る。誤りがデータ・パケットＥＣＣに基づいて訂正可能なタイプである場合、ブロック１１８は、誤りを訂正し、訂正した２次コード・ワードを装置３４に伝送することもできる。次にブロック１１８は制御をブロック１１０に戻す。
【００５３】
図１２〜図１４は、ひとまとめになって、図６の出力コード・ワード処理ユニット５０によって実行される機能のフローチャート１２０を示している。フローチャート１２０の説明を簡単にするため、入力１次コード・ワード処理ユニット４８および入力２次コード・ワード処理ユニット５２がそれぞれの機能をまず実行したものと想定する。したがって、このノードで抽出すべきコード・ワードを転送レジスタ４０が含む場合、それは除去され、出力コード・ワード処理ユニット５０は転送レジスタ４０が同じタイプ（１次または２次）の別のコード・ワードを受け入れられることを検出する。このように想定することにより、ノードは、転送レジスタ４０がコード・ワードを含むかどうかを判定するだけで、同じネットワーク・クロック・サイクル中に１次コード・ワードを有する１次パケットと２次パケットの両方を送受信することができる。当業者であれば、図８〜図１４に示す個々のフローチャートを結合し、より同時性を高めて単一ネットワーク・クロック・サイクル中にコード・ワードを送受信できる単一フローチャートにするよう、ここに開示した教示を改造できるだろう。
【００５４】
図１４のブロック１２２は、ネットワーク化装置３４と、入力２次コード・ワード処理ユニット５２の２次コード・ワードＥＣＣ検証ユニット６０からコード・ワードを受信し、それをコード・ワード出力バッファおよびスケジューラ・ユニット６２のバッファ６１に格納する個別の構成要素である。上記のように、２次コード・ワードがこのノードで抽出されたが、このノードにアドレス指定されていない場合、２次コード・ワードＥＣＣ検証ユニット６０からコード・ワードを受信することができる。
【００５５】
ブロック１２４は、データ・パケットを転送レジスタ４０に転送するために次のネットワーク・クロック・サイクルを待つ。次のデータ・パケットが転送レジスタ４０に到着すると、判断ブロック１２６に制御が渡される。判断ブロック１２６は、転送レジスタ４０が１次コード・ワードを含むかどうかを判定する。転送レジスタ４０が１次コード・ワードを含む場合、「ＹＥＳ」分岐を取って判断ブロック１３４に移行する。転送レジスタ４０が１次コード・ワードを含まない場合、「ＮＯ」分岐を取って判断ブロック１３０に移行する。ブロック１３０は、１次コード・ワードとして伝送するのに好適なコード・ワードをコード・ワード出力バッファおよびスケジューラ・ユニット６２のバッファ６１が含むかどうかを判定する。本発明を実施する場合、所与のコード・ワードを１次コード・ワードまたは２次コード・ワードとして伝送できることが望ましい可能性がある。一般に、２次コード・ワードは、１次コード・ワードに追加せずに伝送されないものと思われる。したがって、転送レジスタ４０が空であり、バッファ内の唯一のコード・ワードが２次コード・ワードとして伝送可能なコード・ワードである場合、そのコード・ワードを１次コード・ワードとして伝送することが望ましい場合もある。これに対して、所与のコード・ワードを１次コード・ワードとして伝送できず、次のネットワーク・クロック・サイクル中に１次パケットを伝送するために次のノードに使用可能なデータ・パケットが残ることが望ましい可能性がある。
【００５６】
バッファ６１が１次コード・ワードとして伝送するのに好適なコード・ワードを含まない場合、「ＮＯ」分岐を取ってブロック１２４に移行し、１次コード・ワードは伝送されない。バッファ６１が１次コード・ワードとして伝送するのに好適なコード・ワードを含む場合、「ＹＥＳ」分岐を取ってブロック１３２に移行する。ブロック１３２は、バッファ６１からコード・ワードを取り出し、１次コード・ワードと１次コード・ワードが使用しないデータ・ビット用の事前定義ビット・パターン（すべて０など）に基づいてデータ・パケット用のＥＣＣを計算し、取り出したコード・ワードを１次コード・ワードとして転送レジスタ４０に格納し、計算したＥＣＣをデータ・パケットＥＣＣ用に予約した転送レジスタ４０のビット位置に格納し、「１次コード・ワードあり」フラグをセットする。
【００５７】
この時点で、制御は判断ブロック１３４に渡される。ブロック１３４に達するのは転送レジスタ４０が１次パケットを含む場合である。１次パケットがこのノードからのものである場合、ブロック１３２からブロック１３４に達する。パケットが別のノードからのものである場合、１２６の「ＹＥＳ」分岐からブロック１３４に達する。前述のように、判断ブロック１２６および１３４が最初に実行される前に、このノードにアドレス指定されたコード・ワードは除去されているはずである。
【００５８】
判断ブロック１３４は、転送レジスタ４０に格納されたデータ・パケット上に２次コード・ワードを追加する余裕があるかどうかを判定する。前述のように、１次コード・ワードがデータ内容コード・ワードである場合、パケット内には２次コード・ワード用の余裕がない可能性がある。パケット内の１次コード・ワードがヘッダ・コード・ワードである場合、２次コード・ワードを追加する余裕がある可能性がある。コード・ワード内に余裕がない場合、「ＮＯ」分岐を取ってブロック１２４に戻る。コード・ワード内に余裕がある場合、「ＹＥＳ」分岐を取って判断ブロック１３６に移行する。
【００５９】
ブロック１３６は、２次コード・ワードとして伝送するのに好適なコード・ワードをコード・ワード出力バッファおよびスケジューラ・ユニット６２内のバッファが含むかどうかを判定する。プロトコルによっては、サイズに基づいてコード・ワードのサブクラスを定義することが可能な場合もある。たとえば、８ビット・コード・ワードと、１６ビット・コード・ワードと、４０ビット・コード・ワードと、５０ビット・コード・ワードを定義するプロトコルについて検討する。転送レジスタ４０（６４ビット幅である）が１次コード・ワードとして格納された５０ビット・コード・ワードを含む場合、転送レジスタ４０は、１６ビット・コード・ワードではなく、８ビット・コード・ワードを２次コード・ワードとして受け入れることができる。転送レジスタ４０が４０ビット・コード・ワードを含む場合、８ビットまたは１６ビットいずれかのコード・ワードを２次コード・ワードとして転送レジスタ４０に格納することができる。さらに、２次コード・ワードとして伝送するのに好適なコード・ワードの場合、データ・パケットが１次コード・ワードによってアドレス指定されたネットワーク・ノードに経路指定された際にデータ・パケットが移動する経路は、２次コード・ワードによってアドレス指定されたネットワーク・ノードも通過（またはそのノードで終了）するか、または２次コード・ワードによってアドレス指定されたネットワーク・ノードへ２次コード・ワードを中継できるネットワーク・ノードを通過（またはそのノードで終了）する経路である。
【００６０】
２次コード・ワードとして伝送するのに好適なコード・ワードをバッファ６１が含まない場合、「ＮＯ」分岐を取ってブロック１２４に移行する。２次コード・ワードとして伝送するのに好適なコード・ワードをバッファ６１が含む場合、「ＹＥＳ」分岐を取ってブロック１３８に移行する。ブロック１３８は、バッファ６１からコード・ワードを取り出し、取り出したコード・ワードに基づいて２次コード・ワード用のＥＣＣを計算し、取り出したコード・ワードを２次コード・ワードとして転送レジスタ４０に格納し、計算した２次コード・ワード用のＥＣＣを２次ＥＣＣとして転送レジスタ４０に格納し、「２次コード・ワードあり」フラグをセットする。次に、制御は判断ブロック１３４に戻され、そこで転送レジスタ４０が第２の２次パケットを受け入れられるかどうかを判定する。このプロセスは、２次パケットとしてバッファ６１に格納されたパケットを受け入れる余裕が転送レジスタ４０内にまったくなくなるまで繰り返される。
【００６１】
図１２〜図１４に示すフローチャートのブロック１３８は２次コード・ワードＥＣＣ生成ユニット６６によって実施され、ブロック１３２は１次コード・ワードＥＣＣ生成ユニット６４によって実施され、他のブロックはコード・ワード出力バッファおよびスケジューラ・ユニット６２によって実施される。
【００６２】
上記の説明は本発明の第１の実施形態を説明するものである。第１の実施形態では、１次コード・ワードが使用しないデータ・パケットにおけるすべてのビット用の事前定義ビット・パターンを使用することにより、データ・パケットに関連するＥＣＣが計算される。したがって、データ・パケットに関するＥＣＣは、１次コード・ワードがデータ・パケットに格納される場合にのみ計算される。本発明の第２の実施形態では、２次コード・ワードがデータ・パケットに格納される際にデータ・パケット全体用のＥＣＣが再計算される。
【００６３】
本発明の第２の実施形態により、１次コード・ワードは図１のノード１８からノード２４に伝送され、２次コード・ワードは１次コード・ワードと同じデータ・パケットに２次コード・ワードを追加することによりノード２０からノード２２に伝送されるものと想定する。ノード１８が図４のヘッダ・コード・ワード４４などのコード・ワードを送ろうとしている場合、ノード１８のネットワーク化装置３４は、パケット処理ユニット３８の出力コード・ワード処理ユニット５０のコード・ワード出力バッファおよびスケジューラ・ユニット６２にコード・ワードを伝送する。コード・ワードはコード・ワード出力バッファおよびスケジューラ・ユニット６２のバッファ６１に格納される。コード・ワード出力バッファおよびスケジューラ・ユニット６２は転送レジスタ４０を監視し、その「１次コード・ワードあり」フラグがクリアされたデータ・パケットを待つことにより、転送レジスタ４０がコード・ワードを受け入れることができる時期を決定する。使用可能なデータ・パケットが識別されると、１次コード・ワードＥＣＣ生成ユニット６４はデータ・パケット内のすべてのビット位置を保護するＥＣＣを生成し、コード・ワードと生成されたＥＣＣは転送レジスタ４０内のデータ・パケットに格納される。
【００６４】
次のネットワーク・クロック・サイクルは、ノード１８の転送レジスタ４０の内容をノード２０の転送レジスタ４０に転送する。ノード２０は、２次コード・ワードとして伝送可能なコード・ワード（ＡＣＫコード・ワードなど）を伝送しようとしている。このコード・ワードは、ネットワーク化装置３４からコード・ワード出力バッファおよびスケジューラ・ユニット６２のバッファ６１に転送される。コード・ワード出力バッファおよびスケジューラ・ユニット６２は、転送レジスタ４０を監視し、データ・パケット内で使用可能なすべてのビットを使用するわけではない１次コードを転送レジスタ４０が含み、２次コード・ワードを含まないことを検出する。コード・ワードを転送レジスタ４０内のデータ・パケットに２次コード・ワードとして追加できるとコード・ワード出力バッファおよびスケジューラ・ユニット６２が判定した後、コード・ワード出力バッファおよびスケジューラ・ユニット６２は、コード・ワードを２次コード・ワードＥＣＣ生成ユニット６６に転送する。
【００６５】
２次コード・ワードを転送レジスタ４０に追加すると、データ・パケットにおいて一部のビット位置の値がいくらか変化するので、２次コード・ワードＥＣＣ生成ユニット６６はデータ・パケット全体用のＥＣＣを再計算し、再計算したＥＣＣを転送レジスタ４０に格納し、それにより、１次コード・ワードおよび２次コード・ワードの両方を保護する。しかし、古いＥＣＣが失われる前に、２次コード・ワードＥＣＣ生成ユニット６６は、古いＥＣＣに基づいて転送レジスタ４０の内容を（ノード２０に到着した内容として）検証し、データ・パケットが転送レジスタ４０に到着する前に破損していないことを保証する。
【００６６】
２次コード・ワード内のデータ・ビットの１つが「２次コード・ワードあり」フラグとして使用される場合、そのビットが実際に転送レジスタ４０にセットされる場合でも、このビットがクリアされたＥＣＣを再計算する方が有利である可能性がある。このようにしてＥＣＣを計算することにより、以下に詳述するように、後でＥＣＣの再計算が必要になるのを回避することが可能になるだろう。
【００６７】
図１５は、本発明の第２の実施形態により１次コード・ワードおよび２次コード・ワードと再計算されたＥＣＣが転送レジスタ４０に格納された後の転送レジスタ４０の内容を示している。図７の場合のように、ヘッダ・コード・ワード４４は１次コード・ワードであり、ビット位置０〜３９に格納され、ＡＣＫコード・ワード６８は２次コード・ワードであり、ビット位置４０〜５５に格納される。しかし、本発明の第１の実施形態は１次ＥＣＣおよび２次ＥＣＣに備えるものであるが、本発明の第２の実施形態は、ビット位置６４〜７１に格納された単一のＥＣＣ１４４を使用する。ＥＣＣ１４４は１次コード・ワードとすべての２次コード・ワードを保護する。
【００６８】
次のネットワーク・クロック・サイクルでは、ノード２０の転送レジスタ４０の内容がノード２２の転送レジスタ４０に転送される。ノード２２はデータを送信せず、転送レジスタ４０内の２次コード・ワードはノード２２にアドレス指定される。１次コード・ワード・アドレス・デコード・ユニット５６は、転送レジスタ４０に格納されたデータ・パケットを調べ、転送レジスタ４０がノード２２にアドレス指定された１次コード・ワードを含まないと判定する。２次コード・ワード・アドレス・デコード・ユニット５８は、転送レジスタ４０に格納されたデータ・パケットを調べ、転送レジスタ４０が１次コード・ワードを含み、したがって、追加した２次コード・ワードも含む可能性があると判定する。次にユニット５８は、転送レジスタ４０がノード２２にアドレス指定された２次コード・ワードを含むと判定し、転送レジスタ４０からデータ・パケットを抽出する。２次コード・ワードＥＣＣ検証ユニット６０は、データ・パケット全体用のＥＣＣを計算し、計算したＥＣＣと転送レジスタ４０から取り出したＥＣＣとを比較することにより、２次コード・ワードの完全性を検証する。次に２次コード・ワードＥＣＣ検証ユニット６０は、２次コード・ワードをネットワーク化装置３４に送信する。
【００６９】
ノード２２が少なくとも１つの２次コード・ワードも送信する場合、１次コード・ワードとすべての２次コード・ワードの両方を保護するようにＥＣＣ１４４が再計算される。しかし、ノード２２が２次コード・ワードを送信しない場合、「２次コード・ワードあり」フラグをクリアして、データ・パケットが他の２次コード・ワードを受け入れられることを示すことが必要である。ＥＣＣはフラグがクリアされた状態で生成されたので、ＥＣＣは依然として１次コード・ワードを保護する。ただし、２次コード・ワードを格納するために使用するビット位置の値は変更されない。当然のことながら、２次コード・ワードが除去された際にすべてのビット位置をクリアし、ＥＣＣを再計算することも可能であり、その場合、２次コード・ワードがノード２０で最初に１次コード・ワードに追加された際に「２次コード・ワードあり」フラグをクリアした状態でＥＣＣを計算する必要はなかったはずである。
【００７０】
次のネットワーク・クロック・サイクルでは、ノード２４の転送レジスタ４０にデータ・パケットが転送される。１次コード・ワード・アドレス・デコード・ユニット５６は、転送レジスタ４０内のパケットがノード２４にアドレス指定された１次コード・ワードを含むと判定する。１次コード・ワード・アドレス・デコード・ユニット５６は１次コード・ワードとＥＣＣ１４４とを抽出し、１次コード・ワードＥＣＣ検証ユニット５４は、データ・パケットにおけるすべてのビット位置用のＥＣＣを計算し、計算したＥＣＣと転送レジスタ４０から取り出したＥＣＣとを比較するすることにより、１次コード・ワードの完全性を検証する。その後、１次コード・ワードがネットワーク化装置２４に伝送される。
【００７１】
１次コード・ワードと２次コード・ワードの両方とともにデータ・パケットがノード２４に到着し、「２次コード・ワードあり」フラグがクリアされたという想定でＥＣＣが生成された場合、２次コード・ワードを最初に分析し、次に「２次コード・ワードあり」フラグをクリアするように２次パケット・アドレス・デコード・ユニット５８を構成することができる。したがって、１次コード・ワードＥＣＣ検証ユニット５４がＥＣＣを処理する場合、それはデータ・パケットの内容に対応することになる。２次パケットはそれが追加される１次パケットより先に移動できないので、２次パケットを先に処理することにより、１次パケットが処理された際に必ず「２次コード・ワードあり」フラグがクリアされる。当然のことながら、１次パケットと２次パケットの両方が同じノードにアドレス指定され、その場合にデータ・パケットを１回だけ検証すればよい時期を認識する論理を追加することも当業者にとっては可能であると思われる。
【００７２】
本発明の第１の実施形態については、図８〜図１４に示すフローチャートに関連して説明してきた。第１の実施形態と第２の実施形態との主な違いはＥＣＣを使用してコード・ワードを保護する方法なので、図８〜図１４に関連し、２つの実施形態の違いを指摘することにより、第２の実施形態についても説明する。
【００７３】
前述のように、第２の実施形態では、２次パケットを先に抽出し、次に１次パケットを抽出することが望ましい場合もある。図１０のフローチャート９６は、本発明の第１の実施形態について２次コード・ワード・アドレス・デコード・ユニット５８によって実行される機能を示している。第２の実施形態に応じて機能するようにフローチャート９６を適合させるためには、ブロック１０４は完全なデータ・パケットとデータ・パケットＥＣＣを転送レジスタ４０から抽出しなければならず、ブロック１０４は完全なデータ・パケットとデータ・パケットＥＣＣを２次コード・ワードＥＣＣ検証ユニット６０に伝送しなければならない。
【００７４】
図１１のフローチャート１０８は、本発明の第１の実施形態について２次コード・ワードＥＣＣ検証ユニット６０によって実行される機能を示している。第２の実施形態に応じて機能するようにフローチャート１０８を適合させるためには、ブロック１１０は完全なデータ・パケットとデータ・パケットＥＣＣを図１０のブロック１０６の２次コード・ワード・アドレス・デコード・ユニット５８から受信しなければならない。ブロック１１２は、データ・パケット全体用のＥＣＣを計算し、計算したＥＣＣとデータ・パケットＥＣＣとを比較することにより、２次コード・ワードの完全性の有効性を確認しなければならない。上記のように、「２次コード・ワードあり」フラグをクリアした状態でデータ・パケットＥＣＣを計算することが望ましい場合もある。
【００７５】
図８のフローチャート７４は、本発明の第１の実施形態について１次コード・ワード・アドレス・デコード・ユニット５６によって実行される機能を示している。第２の実施形態に応じて機能するようにフローチャート７４を適合させるためには、ブロック８０は完全なデータ・パケットとデータ・パケットＥＣＣを転送レジスタ４０から抽出しなければならず、ブロック８２は完全なデータ・パケットとデータ・パケットＥＣＣを１次コード・ワードＥＣＣ検証ユニット５４に伝送しなければならない。
【００７６】
図９のフローチャート８４は、本発明の第１の実施形態について１次コード・ワードＥＣＣ検証ユニット５４によって実行される機能を示している。第２の実施形態に応じて機能するようにフローチャート８４を適合させるためには、ブロック８６は完全なデータ・パケットとデータ・パケットＥＣＣを図８のブロック８２から受信しなければならない。ブロック８８は、データ・パケット全体用のＥＣＣを計算し、計算したＥＣＣとデータ・パケットＥＣＣとを比較することにより、１次コード・ワードの完全性の有効性を確認しなければならない。１次コード・ワードが使用しないビット位置用のＥＣＣを計算するために事前定義ビット・パターンを使用する第１の実施形態とは対照的に、第２の実施形態ではデータ・パケットからのすべてのビットを使用してＥＣＣが計算される。
【００７７】
図１２〜図１４のフローチャート１２０は、図６の出力コード・ワード処理ユニット５０によって実行される機能を示している。第２の実施形態に応じて機能するようにフローチャート１２０を適合させるためには、ブロック１３８は、１次コード・ワードとすべての２次コード・ワードに基づいてデータ・パケット全体用のＥＣＣを再計算し、再計算したＥＣＣを転送レジスタ４０に格納するように変更しなければならない。前述のように、すべての「２次コード・ワードあり」フラグをクリアした状態でＥＣＣを計算することが望ましい場合もある。さらに、ＥＣＣを再計算する前に、古いＥＣＣを検証し、１次コード・ワード内の誤りが再計算したＥＣＣによって「隠される」ことがないことを保証しなければならない。
【００７８】
図６および図８〜図１４に示すフローチャートでは、コード・ワードを検証する前に、コード・ワード・アドレスをデコードし、コード・ワードが特定のノードにアドレス指定されているかどうかを判定する機能が実行される。当業者であれば、まずコード・ワードの完全性を検証し、そこに含まれるアドレスが破損していないことを保証することが有利な場合もあることが分かるだろう。
【００７９】
主にＳＥＣ−ＤＥＤハミング・コードなどのＥＣＣに関連して本発明を説明してきたが、当業者であれば、パリティ・コードまたはその他の適切なエラー検出または訂正コードなど、データの完全性を保護する他のコードとともに本発明を使用できることが分かるだろう。
【００８０】
上記の例では、２次コード・ワードが１次コード・ワード上に追加されている。しかし、本発明は、単一の２次コード・ワードを追加することに限定されない。１つのパケットがすでに１次コード・ワードと２次コード・ワードを含むが、他の２次コード・ワードを受け入れるだけの十分な未使用ビット位置も含む場合、ここに開示した教示を使用して、１次コード・ワードと（第１の）２次コード・ワード上に第２の２次コード・ワードを追加することができる。１つのデータ・パケット上に追加することができる２次コード・ワードの数を制限する主な要因は、そのパケット内の未使用ビット位置の数である。
【００８１】
特定のノードにアドレス指定されていない２次コード・ワードを抽出することがそのノードにとって望ましいかどうかは、いくつかの要因によって決まる。第１に、２次コード・ワードによってアドレス指定されていないノードで２次コード・ワードを抽出することは、トポロジに基づいて必要になる場合もある。たとえば、複数の衛星ノードが１つの中央ノードを介して通信するスター・トポロジでは、第１の衛星が中央ノードに第２のコード・ワードを伝送し、次に中央ノードが２次コード・ワードによってアドレス指定されたノード上に２次コード・ワードを中継するだろう。
【００８２】
第２に、１次パケットによってアドレス指定されたノードにデータ・パケットが達した場合、その宛先より前に２次コード・ワードを抽出することが必要になる場合もある。第３に、１次コード・ワードが破損しているが、２次コード・ワードは破損していない場合、２次コード・ワードを早めに抽出し、２次コード・ワードを再伝送することが望ましい場合もある。最後に、各ノードで２次コード・ワードを抽出し、受信または再伝送することが望ましい場合もある。２次コード・ワードを継続的に受信し、ノードにアドレス指定されていないコード・ワードをバッファ６１（図６に示す）に入れることにより、より高レベルのスケジューリング効率とデータ・パケットでのパッキングを達成することが可能である。また、２次コード・ワードを抽出し、スケジュール変更すると、様々なタイプのコード・ワードに優先順位を割り当てる機会も得られ、それにより、優先順位が高いコード・ワードを先に伝送することができ、優先順位が低いコード・ワードは未使用パケット空間が許す限り最終的な宛先の近くに移動できるようになる。
【００８３】
本発明の各実施形態には固有の利点がある。第１の実施形態では、１次コード・ワードを保護するＥＣＣを再計算する必要はない。したがって、第１の実施形態の実施態様は第２の実施形態の実施態様より高速でなければならない。さらに、データ・パケットが到着する前に２次ＥＣＣを計算することは本発明の範囲内である。したがって、２次パケット用の余裕があるデータ・パケットが転送レジスタ４０に到着すると、２次コード・ワードと２次ＥＣＣは直ちに転送レジスタ４０に格納することができる。対照的に、本発明の第２の実施形態では、古いＥＣＣを検証し、新しいＥＣＣを計算して転送レジスタ４０に格納しなければならない。これはいずれも、データ・パケットが転送レジスタ４０に到着するまで発生しない。したがって、第２の実施形態では、ネットワーク・クロック・サイクルはこれらの機能を実行できるだけの十分な低速でなければならず、あるいは追加のレジスタ・ステージを追加し、それにより、待ち時間を増加しなければならない。
【００８４】
本発明の第２の実施形態の主な利点は、空間効率が高いことである。データ・パケットＥＣＣは１次コード・ワードと２次コード・ワードの両方を保護するので、２次ＥＣＣを設けることは不要である。したがって、第１の実施形態で２次ＥＣＣが使用すると思われるビット位置は、第２の実施形態の１次コード・ワードまたは２次コード・ワードのいずれかが使用することができる。
【００８５】
本発明はネットワーク化システムで実施できるが、マルチプロセッサ・コンピュータ・システムで使用すると特に有利である。このようなシステムでは、ネットワーク・プロトコルはそのコンピュータ・システム向けに具体的に設計される傾向があり、したがって、そのプロトコルのフレームワーク内の１次および２次コード・ワード・タイプを定義すると都合がよい。さらに、マルチプロセッサ・コンピュータ・システムでは、一定のデータ・ストリームがプロセッサ間を流れ、それが２次コード・ワードを１次コード・ワード上に追加する多くの機会をもたらす。本発明により２次コード・ワードの伝送を可能にするマルチプロセッサ・プロトコルでは、ヘッダ・コード・ワードおよびデータ内容コード・ワードが１次コード・ワードとして移動し、ＡＣＫコード・ワードが２次コード・ワードとして移動する。すべてのヘッダ・コード・ワードの結果として、結局、ＡＣＫコード・ワードが得られるので、その上に２次コード・ワードを追加することができる１次コード・ワードの数と２次コード・ワードの数が適切に一致する傾向がある。
【００８６】
図１６は、プロセッサ１４８、１５０、１５２、１５４、１５６、１５８、１６０、１６２、１６４、１６６、１６８、１７０、１７２、１７４、１７６、１７８の１６個のプロセッサを有するメッシュ・コンピュータ・システム１４６を示している。各プロセッサは、２ウェイ・ネットワーク・セグメントによって隣接プロセッサにリンクされている。本発明によれば、プロセッサ１５８がプロセッサ１７０に１次パケットを送信し、１次パケットがプロセッサ１６０および１６２を介して経路指定される場合、プロセッサ１６０は２次パケットをプロセッサ１７０に送信することができる。当然のことながら、メッシュ・コンピュータ・システム１４６における本発明の実施形態は、図１のネットワーク化システム１０より複雑なものになる。たとえば、２次パケットを送信するノードは１次パケットの経路を決定できなければならない。しかし、当業者であれば、ここに開示した教示をメッシュ・コンピュータ・システム１４６などのより複雑なシステムに適合させることができるだろう。
【００８７】
要約すると、本発明は、従来浪費されていた空間を使用することにより、ネットワーク帯域幅を増大する。従来技術では、各コード・ワードが個別のデータ・パケットで移動していた。本発明によれば、２次コード・ワードとして追加することができる各コード・ワードは、他のデータを伝達するためにパケットを解放する。第１の実施形態では、１次コード・ワードを保護するＥＣＣは２次コード・ワードによって妨害されず、それにより１次コード・ワード上に２次コード・ワードを追加する際に費やす時間が最小限になる。本発明の第２の実施形態では、データ・パケットＥＣＣが１次コード・ワードと２次コード・ワードの両方を保護し、それが２次ＥＣＣの必要性を解消し、それにより、１次および２次コード・ワードに使用可能なデータ・パケット内の空間が最大限になる。
【００８８】
好ましい実施形態に関連して本発明を説明してきたが、当業者であれば、本発明の精神および範囲を逸脱せずに形式および細部の変更が可能であることが分かるだろう。
【００８９】
以下に本発明の実施の形態を要約する。
【００９０】
１．  パケットベースの通信システム内のノード間でデータを伝送する方法において、
第１のノードにおいてデータ・パケット内の１次コード・ワードが前記データ・パケットによって供給されるすべてのビット位置を使用するわけではないことを認識すること、
前記第１のノードにおいて第２のノードにアドレス指定され、２次コード・ワードとして伝送するのに好適なコード・ワードを識別すること、
前記第１のノードにおいて前記１次コード・ワードが使用しない前記データ・パケットのビット位置に２次コード・ワードとして前記コード・ワードを格納すること、
前記データ・パケットを前記第２のノードに伝送すること、
前記第２のノードにおいて前記データ・パケットに含まれる前記２次コード・ワードが前記第２のノードにアドレス指定されることを認識すること、
前記第２のノードにおいて前記データ・パケットから前記２次コード・ワードを抽出すること
を含むデータ伝送方法。
【００９１】
２．  第３のノードにおいて前記データ・パケットが前記１次コード・ワードを受け入れられることを認識すること、
前記第３のノードにおいて前記１次コード・ワードを前記データ・パケットに格納すること、
前記データ・パケットを前記第１のノードに伝送することをさらに含む上記１に記載のデータ伝送方法。
【００９２】
３．  前記第３のノードにおいて前記１次コード・ワードに基づいて１次誤り訂正コードを計算すること、
前記第３のノードにおいて前記１次誤り訂正コードを前記データ・パケットに格納することをさらに含む上記２に記載のデータ伝送方法。
【００９３】
４．  前記第３のノードにおいて前記１次コード・ワードに基づいて１次誤り訂正コードを計算することが、前記１次コード・ワードと前記１次コード・ワードによって占有されないデータ・パケットのビット位置用の固定ビット・パターンとを使用して前記１次誤り訂正コードを計算することを含む上記３に記載のデータ伝送方法。
【００９４】
５．  前記データ・パケットを第４のノードに伝送すること、
前記第４のノードにおいて前記データ・パケットに含まれる前記１次コード・ワードが第４のノードにアドレス指定されることを認識すること、
前記第４のノードにおいて前記１次コード・ワードと前記１次誤り訂正コードを抽出すること、
前記１次コード・ワードと前記固定ビット・パターンとに基づいて計算される誤り訂正コードを計算し、前記計算した誤り訂正コードと前記１次誤り訂正コードとを比較することにより、前記１次コード・ワードの有効性を確認することをさらに含む上記４に記載のデータ伝送方法。
【００９５】
６．  前記第１のノードにおいて前記１次コード・ワードおよび２次コード・ワードに基づいて結合誤り訂正コードを計算すること、
前記第１のノードにおいて前記データ・パケット内の前記誤り訂正コードを前記結合誤り訂正コードで置き換えること
をさらに含む上記３に記載のデータ伝送方法。
【００９６】
７．  前記データ・パケットの内容に基づいて計算される誤り訂正コードを計算し、前記計算した誤り訂正コードと前記データ・パケットに格納された前記誤り訂正コードとを比較することにより、前記第１のノードにおいて前記１次コード・ワードを検証することをさらに含む上記６に記載のデータ伝送方法。
【００９７】
８．  前記データ・パケットの内容に基づいて計算される誤り訂正コードを計算し、前記計算した誤り訂正コードと前記データ・パケットに格納された前記誤り訂正コードとを比較することにより、前記第２のノードにおいて前記２次コード・ワードを検証することをさらに含む上記６に記載のデータ伝送方法。
【００９８】
９．  前記データ・パケットの内容に基づいて計算される誤り訂正コードを計算し、前記計算した誤り訂正コードと前記データ・パケットに格納された前記誤り訂正コードとを比較することにより、前記第４のノードにおいて前記１次コード・ワードを検証することをさらに含む上記６に記載のデータ伝送方法。
【００９９】
１０．  前記第１のノードにおいて前記２次コード・ワードに基づいて２次誤り訂正コードを計算すること、
前記第１のノードにおいて前記２次誤り訂正コードを前記データ・パケットに格納すること、
前記第２のノードにおいて前記２次誤り訂正コードを抽出すること、
前記２次コード・ワードに基づいて計算される誤り訂正コードを計算し、前記計算した誤り訂正コードと前記１次誤り訂正コードとを比較することにより、前記２次コード・ワードの有効性を確認すること
をさらに含む上記１に記載のデータ伝送方法。
【０１００】
１１．  前記データ・パケットが前記１次コード・ワードによってアドレス指定されたノードに経路指定された際に前記データ・パケットが移動する経路が前記第２のノードを通過するかまたは前記第２のノードで終了する場合、前記第２のノードにアドレス指定されたコード・ワードが２次コード・ワードとして伝送するのに好適なことを特徴とする上記１に記載のデータ伝送方法。
【０１０１】
１２．  前記データ・パケットが前記１次コード・ワードによってアドレス指定されたノードに経路指定された際に前記データ・パケットが移動する経路が前記第２のノードに前記コード・ワードを中継できるノードを通過するかまたはそのノードで終了する場合、前記第２のノードにアドレス指定されたコード・ワードが２次コード・ワードとして伝送するのに好適なことを特徴とする上記１に記載のデータ伝送方法。
【０１０２】
１３．  ネットワーク化装置と、
前記ネットワーク化装置に結合されたネットワーク・インタフェースとを備え、
前記ネットワーク・インタフェースが、
データ・パケットを保持し、ネットワーク媒体に結合された転送メモリ領域と、
前記転送メモリ領域と前記ネットワーク化装置に結合され、ネットワーク・ノードにアドレス指定された１次コード・ワードを前記転送メモリ領域から前記ネットワーク化装置に伝送するための入力１次コード・ワード処理ユニットと、
前記ネットワーク化装置から出力コード・ワードを受信し、前記出力コード・ワードを１次コード・ワードおよび２次コード・ワードとして前記転送メモリ領域に格納するための出力コード・ワード処理ユニットと、
前記ネットワーク・ノードにアドレス指定された２次コード・ワードを前記転送メモリ領域から前記ネットワーク化装置に伝送するための入力２次コード・ワード処理ユニットとを含むパケット処理ユニットと
を有するネットワーク・ノード。
【０１０３】
１４．  前記入力１次コード・ワード処理ユニットが入力１次コード・ワードの完全性を検証するための１次コード・ワード検証ユニットを含み、前記入力２次コード・ワード処理ユニットが入力２次コード・ワードの完全性を検証するための２次コード・ワード検証ユニットを含み、前記出力コード・ワード処理ユニットが１次コード・ワード誤りコード生成ユニットと２次コード・ワード誤りコード生成ユニットとを含む上記１３に記載のネットワーク・ノード。
【０１０４】
１５．  前記１次コード・ワード誤りコード生成ユニットが前記１次コード・ワードと前記１次コード・ワードが使用しない前記データ・パケット内のビット位置用の固定ビット・パターンとを使用してデータ・パケット誤りコードを生成し、前記１次コード・ワード検証ユニットが、前記１次コード・ワードに基づき、前記１次コード・ワードが使用しない前記データ・パケット内の前記ビット位置用の前記固定ビット・パターンを使用して計算される誤りコードを計算し、前記計算した誤りコードと前記データ・パケット誤りコードとを比較することにより、入力１次コード・ワードの完全性を検証する上記１４に記載のネットワーク・ノード。
【０１０５】
１６．  前記２次コード・ワード誤りコード生成ユニットが前記２次コード・ワードを使用して２次誤りコードを生成し、前記２次コード・ワード検証ユニットが、前記２次コード・ワードに基づいて計算される誤りコードを計算し、前記計算した誤りコードと前記２次誤りコードとを比較することにより、入力２次コード・ワードの完全性を検証する上記１４に記載のネットワーク・ノード。
【０１０６】
１７．  前記２次コード・ワード誤りコード生成ユニットが、前記データ・パケットに基づいて計算される第１の誤りコードを計算し、前記計算した第１の誤りコードと前記データ・パケット誤りコードとを比較することにより、前記１次コード・ワードの完全性を検証し、前記２次コード・ワードが前記データ・パケットに格納された後で前記データ・パケットに基づいて再計算した誤りコードを生成し、前記２次コード・ワード検証ユニットが、前記データ・パケットに基づいて計算される第２の誤りコードを計算し、前記計算した第２の誤りコードと前記データ・パケット誤りコードとを比較することにより、入力２次コード・ワードの完全性を検証する上記１４に記載のネットワーク・ノード。
【０１０７】
１８．  ネットワーク媒体によりひとまとめに接続されたネットワーク・ノードを含み、前記ネットワーク媒体により前記ネットワーク・ノード間を移動するデータ・パケットを有するパケットベースの通信システムにおいて、前記データ・パケットが、
複数のビット位置と、
前記複数のビット位置の第１部分に格納された１次コード・ワードと、
前記複数のビット位置の第２部分に格納された２次コード・ワードと
を含むことを特徴とするパケットベースの通信システム。
【０１０８】
１９．  前記データ・パケットが、
前記複数のビット位置の第３部分に格納されたデータ・パケット誤りコードをさらに含む上記１８に記載のパケットベースの通信システム。
【０１０９】
２０．  前記データ・パケット誤りコードが、前記１次コード・ワードと、前記第１部分が使用しない前記複数のビット位置のうちのビット位置の代わりに使用する固定ビット・パターンとに基づいて計算される上記１９に記載のパケットベースの通信システム。
【０１１０】
２１．  前記データ・パケットが、前記２次コード・ワードに基づき、前記複数のビット位置の第４部分に格納された２次誤りコードをさらに含む上記２０に記載のパケットベースの通信システム。
【０１１１】
２２．  前記データ・パケット誤りコードが前記１次コード・ワードおよび２次コード・ワードに基づいて計算される上記１６に記載のパケットベースの通信システム。
【０１１２】
【発明の効果】
本発明によれば、データ・パケットによって提供されたすべてのビット位置を使用するわけではない「１次」コード・ワードが格納されたデータ・パケットの未使用空間内に「２次」コード・ワードを追加( piggy backed )することにより、データ・パケット内の空間が最大限に利用可能となり、データ伝送の帯域幅を増大することが可能である。
【図面の簡単な説明】
【図１】ネットワーク化システムのブロック図である。
【図２】図１のノードを示すブロック図である。
【図３】図２のノードの一部である転送レジスタのフォーマットを示す図である。
【図４】図３に示す転送レジスタに格納された典型的なヘッダ・コードを示す図である。
【図５】図３に示す転送レジスタに格納された典型的なデータ内容コード・ワードを示す図である。
【図６】本発明の第１及び第２の実施形態によるパケット処理ユニットのブロック図である。
【図７】本発明の第１の実施形態により１次および２次コード・ワードが転送レジスタに格納された後の転送レジスタの内容を示す図である。
【図８】図６に示す１次コード・ワード・アドレス・デコード・ユニットによって実行される機能のフローチャートである。
【図９】図６に示す１次コード・ワードＥＣＣ検証ユニットによって実行される機能のフローチャートである。
【図１０】図６に示す２次コード・ワード・アドレス・デコード・ユニットによって実行される機能のフローチャートである。
【図１１】図６に示す２次コード・ワードＥＣＣ検証ユニットによって実行される機能のフローチャートである。
【図１２】図６に示す出力コード・ワード処理ユニットによって実行される機能のフローチャートである。
【図１３】図６に示す出力コード・ワード処理ユニットによって実行される機能のフローチャートである。
【図１４】図６に示す出力コード・ワード処理ユニットによって実行される機能のフローチャートである。
【図１５】本発明の第２の実施形態により１次および２次コード・ワードと再計算されたＥＣＣが転送レジスタ４０に格納された後の転送レジスタの内容を示す図である。
【図１６】１６個のプロセッサを有するメッシュ・コンピュータ・システムを示すブロック図である。
【符号の説明】
１２，１４，１６，１８，２０，２２，２４，２６  ノード
２８，３０      ネットワーク・セグメント
３４    ネットワーク化装置
３６    ネットワーク・インタフェース
３８    パケット処理ユニット
４０    転送レジスタ
４８    入力１次コード・ワード処理ユニット
５０    出力コード・ワード処理ユニット
５２    入力２次コード・ワード処理ユニット
５４    １次コード・ワードＥＣＣ検証ユニット
５６    １次コード・ワード・アドレス・デコード・ユニット
５８    ２次コード・ワード・アドレス・デコード・ユニット
６０    ２次コード・ワードＥＣＣ検証ユニット
６１    バッファ
６２    コード・ワード出力バッファおよびスケジューラ・ユニット
６４    １次コード・ワードＥＣＣ生成ユニット
６６    ２次コード・ワードＥＣＣ生成ユニット
【図１】
0004058168.tif 000002
【図２】
0004058168.tif 000003
【図３】
0004058168.tif 000004
【図４】
0004058168.tif 000005
【図５】
0004058168.tif 000006
【図６】
0004058168.tif 000007
【図７】
0004058168.tif 000008
【図８】
0004058168.tif 000009
【図９】
0004058168.tif 000010
【図１０】
0004058168.tif 000011
【図１１】
0004058168.tif 000012
【図１２】
0004058168.tif 000013
【図１３】
0004058168.tif 000014
【図１４】
0004058168.tif 000015
【図１５】
0004058168.tif 000016
【図１６】
0004058168.tif 000017