(57)【要約】  様々な実施形態で、処理要素（ＰＥ）に、データ・ルータ・アダプタ（ＤＲＡ）および機能パケットを作成する１つまたは複数の要素が含まれる。ＤＲＡは、機能パケット受領時に、関連するルータ・パケットの組を生成する。関連するルータ・パケットのそれぞれは機能パケットのセグメントを含み、機能パケット長以下のルータ・パケット・データ長を有する。一実施形態で、ルータ・パケット・データ長がテーブルに含まれ、システム・パフォーマンス・パラメータ（例えば、帯域幅使用量および／または待ち時間）を変更するために再構成することができる。ＤＲＡは、パケットベース・ネットワークを介する送達のために、関連するルータ・パケットの組をルータに送る。宛先ＤＲＡは関連するルータ・パケットの組を受け取り、関連するルータ・パケットの組から再組み立てされた機能パケットを生成する。宛先ＤＲＡは再組み立てされた機能パケットを宛先要素に送る。
2007529924.tif 000002
【特許請求の範囲】
【請求項１】
機能パケット・ソースから受け取った機能パケットから関連するルータ・パケットの組を生成する段階であって、各ルータ・パケットは、機能パケット長以下のルータ・パケット・データ長を有する、段階と、
関連するルータ・パケットの前記組をルータに送る段階と、
を含むことを特徴とする方法。
【請求項２】
前記機能パケット・ソースから前記機能パケットを受け取る段階であって、前記機能パケットは、機能パケット・ヘッダおよび機能データを含む、段階、
をさらに含むことを特徴とする請求項１記載の方法。
【請求項３】
前記機能パケット・ソースから機能パケット・ヘッダを受け取る段階であって、前記機能パケット・ヘッダは、前記機能パケット長および前記ルータ・パケット・データ長を示す、段階、
をさらに含むことを特徴とする請求項１記載の方法。
【請求項４】
前記機能パケット・ソースから前記機能パケットのセグメントを受け取る段階と、
前記機能パケットの前記セグメントが少なくとも前記ルータ・パケット・データ長と等しい長さを有するかどうかを判定する段階と、
前記機能パケットの前記セグメントが少なくとも前記ルータ・パケット・データ長と等しい長さを有する場合に、前記機能パケットの前記セグメントを含むルータ・パケットを生成するために進行する段階と、
をさらに含むことを特徴とする請求項１記載の方法。
【請求項５】
関連するルータ・パケットの前記組を生成する段階は、
機能パケット・ヘッダから前記機能パケット長および前記ルータ・パケット・データ長を判定する段階、
を含むことを特徴とする請求項１記載の方法。
【請求項６】
関連するルータ・パケットの前記組を生成する段階は、
機能ごとに異なるものとすることのできる事前に保管された機能パケット長情報から前記機能パケット長を判定する段階、
を含むことを特徴とする請求項１記載の方法。
【請求項７】
前記事前に保管された機能パケット長情報を手動で再構成する段階、
をさらに含むことを特徴とする請求項６記載の方法。
【請求項８】
システム・パフォーマンス測定に基づいて前記事前に保管された機能パケット長情報を動的に調整する段階、
をさらに含むことを特徴とする請求項６記載の方法。
【請求項９】
関連するルータ・パケットの前記組を生成する段階は、
前記機能パケットの次のセグメントを選択する段階であって、前記次のセグメントは、前記ルータ・パケット・データ長に関連するセグメント長を有する、段階と、
前記次のセグメントを含むルータ・パケットを生成する段階と、
前記機能パケットのすべてが関連するルータ・パケットの前記組に含まれるまで、繰り返して前記次のセグメントを選択し、前記ルータ・パケットを生成する段階と、
を含むことを特徴とする請求項１記載の方法。
【請求項１０】
関連するルータ・パケットの前記組を生成する段階は、
前記ルータ・パケット・データ長を示すルータ・パケット・ヘッダを生成する段階、
を含むことを特徴とする請求項９記載の方法。
【請求項１１】
関連するルータ・パケットの前記組を送る段階は、
宛先ルータに向けた送達のために関連するルータ・パケットの前記組をソース・ルータに送る段階、
を含むことを特徴とする請求項１記載の方法。
【請求項１２】
ルータから関連するルータ・パケットの組を受け取る段階であって、各ルータ・パケットは、ルータ・パケット・データ長を有し、ルータ・パケットのヘッダは、前記ルータ・パケット・データ長以上の機能パケット長を示す、段階と、
関連するルータ・パケットの前記組から機能パケットを再組み立てする段階と、
前記機能パケットを機能パケット宛先に送る段階と、
を含むことを特徴とする方法。
【請求項１３】
関連するルータ・パケットの前記組における各パケットの前記ルータ・パケット・ヘッダを除去する段階、
をさらに含むことを特徴とする請求項１２記載の方法。
【請求項１４】
前記機能パケットを送る段階は、
再組み立てされたルータ・パケット・データの量が前記機能パケット長と等しい場合に前記機能パケットを送る段階、
を含むことを特徴とする請求項１２記載の方法。
【請求項１５】
ソース・アダプタが機能パケット・ソースから受け取った機能パケットから関連するルータ・パケットの組を生成する段階であって、各ルータ・パケットは、機能パケット長以下のルータ・パケット・データ長を有する、段階と、
前記ソース・アダプタが関連するルータ・パケットの前記組をソース・ルータに送る段階と、
前記ソース・ルータが関連するルータ・パケットの前記組を宛先ルータに向けて送る段階と、
宛先アダプタが関連するルータ・パケットの前記組を前記宛先ルータから受け取る段階と、
前記宛先アダプタが関連するルータ・パケットの前記組から再組み立てされた機能パケットを生成する段階と、
前記宛先アダプタが前記再組み立てされた機能パケットを機能パケット宛先に送る段階と、
を含むことを特徴とする方法。
【請求項１６】
関連するルータ・パケットの前記組を生成する段階は、
前記機能パケット長および前記ルータ・パケット・データ長を判定する段階と、
前記機能パケットの次のセグメントを選択する段階であって、前記次のセグメントは、前記ルータ・パケット・データ長以下のセグメント長を有する、段階と、
前記次のセグメントを含むルータ・パケットを生成する段階と、
前記機能パケット・データのすべてが関連するルータ・パケットの前記組に含まれるまで、繰り返して前記次のセグメントを選択し、前記ルータ・パケットを生成する段階と、
を含むことを特徴とする請求項１５記載の方法。
【請求項１７】
前記再組み立てされた機能パケットを生成する段階は、
関連するルータ・パケットの前記組における各パケットのルータ・パケット・ヘッダを除去する段階、
を含むことを特徴とする請求項１５記載の方法。
【請求項１８】
機能パケット・ソースから機能パケットを受け取るために動作可能な第１データ・バッファと、
前記機能パケットから関連するルータ・パケットの組を生成するために動作可能なルータ・パケット形成モジュールであって、各ルータ・パケットは、機能パケット長以下のルータ・パケット・データ長を有する、ルータ・パケット形成モジュールと、
関連するルータ・パケットの前記組をルータに送るために動作可能なルータ・インターフェイスと、
を含むことを特徴とする装置。
【請求項１９】
関連するルータ・パケットの異なる組を受け取り、機能パケットを再組み立てするために動作可能な第２データ・バッファと、
再組み立てされた機能パケットを機能パケット宛先に送るために動作可能なパケットベース通信要素インターフェイスと、
をさらに含むことを特徴とする請求項１８記載の装置。
【請求項２０】
エア・インターフェイスと前記装置との間のインターフェイスを提供するために動作可能な少なくとも１つのアンテナをさらに含むことを特徴とする請求項１８記載の装置。
【請求項２１】
パケットベース通信を使用して他のルータと通信するために動作可能な少なくとも１つのルータと、
複数の処理要素であって、前記複数の処理要素のうちの選択された処理要素は、
ルータに機能的に接続され、機能パケット・ソースから受け取られた機能パケットから関連するルータ・パケットの組を生成するために動作可能であり、関連するルータ・パケットの前記組をルータに送るために動作可能な少なくとも１つのアダプタであって、各ルータ・パケットは、機能パケット長以下のルータ・パケット・データ長を有する、少なくとも１つのアダプタ、および、
前記アダプタに機能的に接続された少なくとも１つの機能パケット・ソース、
を含む、複数の処理要素と、
を含むことを特徴とする装置。
【請求項２２】
アダプタは、
前記機能パケット・ソースから前記機能パケットを受け取るために動作可能な第１データ・バッファと、
前記機能パケットから関連するルータ・パケットの前記組を生成するために動作可能なルータ・パケット形成モジュールと、
関連するルータ・パケットの前記組を前記ルータに送るために動作可能なルータ・インターフェイスと、
を含むことを特徴とする請求項２１記載の装置。
【請求項２３】
前記アダプタは、
関連するルータ・パケットの異なる組を受け取り、第２機能パケットを再組み立てするために動作可能な第２データ・バッファと、
再組み立てされた機能パケットを機能パケット宛先に送るために動作可能なパケットベース通信要素インターフェイスと、
をさらに含むことを特徴とする請求項２２記載の装置。
【請求項２４】
エア・インターフェイスと前記装置との間のインターフェイスを提供するために動作可能な少なくとも１つのアンテナをさらに含むことを特徴とする請求項２１記載の装置。
【請求項２５】
方法を実行するためのプログラム命令が保管されるコンピュータ読取り可能な媒体であって、電子デバイス内で実行されたとき、前記方法は、
機能パケット・ソースから受け取った機能パケットから関連するルータ・パケットの組を生成する段階であって、各ルータ・パケットは、機能パケット長以下のルータ・パケット・データ長を有する、段階と、
関連するルータ・パケットの前記組をルータに送る段階と、
を実現することを特徴とするコンピュータ読取り可能な媒体。
【請求項２６】
前記方法の実行は、
機能パケット・ヘッダから前記機能パケット長および前記ルータ・パケット・データ長を判定する段階と、
前記機能パケットの次のセグメントを選択する段階であって、前記次のセグメントは、前記ルータ・パケット・データ長に関連するセグメント長を有する、段階と、
前記次のセグメントを含むルータ・パケットを生成する段階と、
前記機能パケットのすべてが関連するルータ・パケットの前記組に含まれるまで、繰り返して前記次のセグメントを選択し、前記ルータ・パケットを生成する段階と、
をさらに実現することを特徴とする請求項２５記載のコンピュータ読取り可能な媒体。
【請求項２７】
前記方法の実行は、
関連するルータ・パケットの第２組を前記ルータから受け取る段階と、
関連するルータ・パケットの前記第２組から第２機能パケットを再組み立てする段階と、
前記第２機能パケットを機能パケット宛先に送る段階と、
をさらに実現することを特徴とする請求項２６記載のコンピュータ読取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の主題は、パケットを再構成する方法および装置に関し、さらに具体的には、変化するサイズおよびパケット・レイテンシ（待ち時間）を有するルータ・パケットを作成するために機能パケットを再構成する方法および装置に関する。
【背景技術】
【０００２】
パケットベースの分散処理システムでは、処理ブロックは、様々な機能を並列におよび／または直列に実行することができる。ソース処理ブロックから宛先処理ブロックに情報を通信するために、ソース処理ブロックは、１つまたは複数のパケットを生成し、このパケットのそれぞれに、パケット・ヘッダおよびデータ部分が含まれる。ソース処理ブロックは、パケットをルータに送り、ルータは、そのパケットを別のルータに送ることができる。パケット・ルーティングは、パケットが宛先ルータに達するまで継続され、この宛先ルータは、そのパケットを宛先処理ブロックに送達する。
【０００３】
通常の分散処理システムでは、ルータ・パケット長が固定されている（すなわち、各ルータ・パケットが同一の長さを有する）。これは、システム内の最小待ち時間または最小遅延のもとである。パケット伝送は、制限されたリソース（例えば、帯域幅およびデータ・バッファ空間）に関する競合に起因する待ち時間もこうむる可能性がある。固定長パケットの使用のゆえに、ソース処理ブロックによって実行される機能が、所与の時間間隔内に単一パケットのデータ容量を超える量の情報を作る場合に、その情報を通信するために複数のパケットが生成され、送られる。複数のパケットの送出は、より多くのパケット・ヘッダ・オーバーヘッドおよびルータ帯域幅のより多い使用を暗示する。ソース処理ブロックによって実行される機能が、比較的遅い速度で情報を作る場合に、その処理ブロックが、１パケットを形成するのに十分な情報を有するまで待つことを要求される場合がある。その結果、システム内により長い待ち時間が導入される。
【０００４】
添付の特許請求の範囲は、本発明の主題の異なる実施形態を具体的に指摘する。しかし、詳細な説明は、図面と共に検討される時に本発明の主題のより完全な理解を提示し、図面では、類似する符号は、複数の図面を通じて類似する項目を指す。
【発明の開示】
【０００５】
様々な実施形態の次の説明では、添付図面を参照するが、添付図面は、本明細書の一部を形成し、実例として、本発明の主題を実践できる特定の実施形態を示す。様々な実施形態を、当業者が本発明の主題を実践できるようにするのに十分に詳細に説明する。他の実施形態を利用できることと、本発明の主題の範囲から逸脱せずに、処理の変更または機械的変更を行えることを理解されたい。本発明の主題のそのような実施形態を、複数の発明または発明的概念が実際に開示される場合に本願の範囲を単一の発明または発明的概念に自発的に限定する意図なしに、本明細書で、個別におよび／または集合的に用語「発明」によって言及する場合がある。様々な実施形態の方法を、同時にまたは連続してのいずれかで、実践において組み合わせることができることが認められるであろう。様々な順列および組合せが、当業者にたやすく明白になるであろう。
【０００６】
本発明の実施形態を、複数のタイプのデバイスおよびパケットベース分散処理システムで実施することができる。例えば、限定ではなく、本発明の実施形態を、ワイヤレス電話機またはワイヤレス・ローカル・エリア・ネットワーク（ＷＬＡＮ）デバイスなどのワイヤレス通信デバイスで実施することができる。その代わりに、本発明の実施形態を、有線の通信デバイスおよび／またはコンピューティング・デバイスで実施することができる。
【０００７】
本発明の実施形態を実施して、単一のデバイス内または複数のデバイスの間の分散システムの処理要素の間で情報を通信することができる。これらの実施形態の一部の例を、下で説明する。これらの例は、例示のためのものであり、これらの実施形態の応用を、これらの例で説明される特定の特性を有するデバイスまたはコンポーネントだけに限定することを意図されたものではない。そうではなく、当業者には、本明細書の説明に基づいて、これらの実施形態を他のタイプのデバイスおよびシステムに適用するために適合させる方法が明白であろう。例えば、説明される実施形態に、主に分散処理システムが含まれるが、本発明の実施形態は、有線またはワイヤレスの通信システム内のパケット交換通信に適用することもできる。
【０００８】
図１は、本発明の主題の実施形態による、通信システム１００の単純化されたブロック図である。本発明の実施形態は、通信システム１００などのシステム内のデバイスで実施することができる。当業者は、本明細書の説明に基づいて、本発明の実施形態を様々な他のタイプの有線またはワイヤレスの通信システムおよび／または計算システムでも実施できることを理解するであろう。図１に示されたシステムは、例示のために与えられたものであり、本発明を特定の種類のシステム内またはシステム構成内での実施に限定するものと解釈してはならない。
【０００９】
通信システム１００に、少なくとも２つのワイヤレス・デバイス１０２，１０４が含まれ、ワイヤレス・デバイス１０２，１０４は、ワイヤレス・リンク１０６を介してネットワーク１０８を用いて通信する。リンク１０６は、様々な実施形態で、半二重リンクまたは全二重リンクとすることができる。ネットワーク１０８に、１つまたは複数のネットワーク・ルータ、コンピューティング・デバイス、アクセス・ポイント、基地局、衛星、および／またはデバイス１０２と１０４との間の通信を容易にする任意の個数の他のタイプの中間局が含まれる。
【００１０】
デバイス１０２，１０４は、例えば、限定ではなく、セル電話機、ラジオ、コンピュータ、携帯情報端末、ポケット・ベル、全地球測位システム（ＧＰＳ）デバイス、および／またはネットワーク１０８を介して通信できる複数の他のタイプのデバイスのうちのいずれかとすることができる。１特定の実施形態で、デバイス１０２，１０４は、Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ（ＩＥＥＥ）８０２．１１標準規格プロトコルまたは別のＷＬＡＮプロトコルの１つまたは複数のバージョンなど、ＷＬＡＮ通信プロトコルを実施できるコンピューティング・デバイスである。デバイス１０２，１０４は、情報を作り、消費する。この情報を、アンテナ１１０，１１２を介するエア・インターフェイスとネットワーク１０８とを介して送り、受け取ることができる。
【００１１】
図２は、本発明の主題の実施形態による、通信デバイス２００の単純化されたブロック図である。図２に示されたデバイス２００では、本発明の実施形態が、おそらくはデバイス２００と別々のデバイス（図示せず）との間のパケット交換通信と共に本発明の実施形態を実施することに加えて、デバイス２００の１つまたは複数の要素の中で行われるパケット交換通信と共に実施される。
【００１２】
デバイス２００に、処理システム２０２、データ・ストレージ２０４、ネットワーク化された回路２０６、ラジオ周波数（ＲＦ）インターフェイス２０８、およびアンテナ２１０が含まれる。処理システム２０２に、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、これらの組合せ、または類似物を含むがこれらに限定されない、複数のタイプのコンピューティング・モジュールのいずれでも含めることができる。
【００１３】
一実施形態で、処理システム２０２は、ソース情報を受け取るか作成する。ソース情報は、デバイス２００によって生成されるか、データ・ストレージ２０４から取り出されるか、ある他の情報プロデューサ（図示せず）から取り出されるものとすることができる。ソース処理システム２０２が、ソース情報をネットワーク化された回路２０６に渡すことができる。
【００１４】
データ・ストレージ２０４は、機械読取り可能な媒体および／または機械書込み可能な媒体を含む物品を表す。例えば、限定ではなく、データ・ストレージ２０４に、ハード・ディスク、フロッピー・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、読取専用メモリ（ＲＯＭ）、フラッシュ・メモリ、コンパクト・ディスクＲＯＭ（ＣＤＲＯＭ）、または処理システム２０２などの機械によって読取り可能であり書込み可能である媒体を含む任意の他のタイプの物品のうちの１つまたは複数を含めることができる。
【００１５】
ネットワーク化された回路２０６に、１つまたは複数のルータ（図３〜図５に関して詳細に説明する）と、１つまたは複数の処理要素（ＰＥ）および／または入出力（Ｉ／Ｏ）ノード（図３〜図５に関して詳細に説明する）とを含めることができる。様々な実施形態で、ネットワーク化された回路２０６は、様々なＰＥおよび／またはＩ／Ｏノードの間のパケットベース通信を実施する。
【００１６】
ＰＥおよび／またはＩ／Ｏノードは、ソース情報を処理システム２０２から受け取り、受け取られたソース情報を消費し、および／または変更することができる。各ＰＥおよび／またはＩ／Ｏノードに、１つまたは複数の機能を含めることができる。これらの機能は、データの生成、操作、および／または移動を含む、複数のデータ関連タスクのどれであっても実行することができる。さらに、これらの機能は、本明細書で「機能パケット」と称するパケットを作ることができる。
【００１７】
さらに、様々な実施形態で、ネットワーク化された回路２０６に、１つまたは複数のルータ（図３および図４に関連して詳細に説明する）が含まれ、このルータは、１つまたは複数のＰＥおよび／またはＩ／Ｏノードからルータ・パケットを受け取り、このルータ・パケットをそれら自体の間でルーティングし、その後、宛先のＰＥまたはＩ／Ｏノードにルーティングする。さらに、様々な実施形態で、ネットワーク化された回路２０６に、１つまたは複数のデータ・ルータ・アダプタ（ＤＲＡ）（図５および図６に関して詳細に説明する）が含まれ、これらのＤＲＡは、ＰＥまたはＩ／Ｏノードに関連する１つまたは複数の機能によって供給される１つまたは複数の機能パケットから、関連するルータ・パケットの組を生成する。様々な実施形態で、ルータ・パケット・データ長は、機能パケット長以下である。さらに、様々な実施形態で、ＤＲＡは、関連するルータ・パケットの組を受け取り、再組み立てされた機能パケットを生成し、再組み立てされた機能パケットをＰＥまたはＩ／Ｏノードに関連する宛先機能に供給することができる。
【００１８】
様々な実施形態で、ルータ・パケット長は、機能ごとの基礎で構成可能である。言い換えると、ＤＲＡは、第１機能について第１長を有するルータ・パケットを作ることができ、第２機能について第２の異なる長さを有するルータ・パケットを作ることができる。可変サイズ・パケットは、特に比較的遅い速度で結果を作る機能について、パケット待ち時間（または遅延）を改善することを可能にする。その場合に、ルータ・パケット長を比較的短く構成することができ、より大きい固定長ルータ・パケットを充てんするのに十分なデータを獲得する必要なしにルータ・パケットを形成でき、送れるようになる。さらに、可変サイズ・パケットは、特に比較的早い速度で結果を作る機能について、ルータ帯域幅をより効率的に使用できるようにする。その場合に、ルータ・パケット長を比較的長く構成することができ、１パケットでより多くのデータを送れるようになり、これによって、ルータ・パケット・ヘッダによって導入されるパケット・オーバーヘッドが減る。
【００１９】
一実施形態で、ネットワーク化された回路２０６は、通信プロトコルの少なくとも一部を実施し、これには、データ符号化／復号化、データ変調／復調、データ暗号化／暗号化解除、および類似物などの機能の実行を含めることができる。例えば、いくつかの実施形態で、ネットワーク化された回路２０６が、ＷＬＡＮインターフェイス、セル電話インターフェイス、ＧＰＳインターフェイス、または類似物のためのプロトコルを実施することができる。いくつかの実施形態で、ネットワーク化された回路２０６が、複数のプロトコルを同時に実施することができる。
【００２０】
ネットワーク化された回路２０６は、多数の用途を有することができる。例えば、ネットワーク化された回路２０６を、通信システムで特定の物理層（ＰＨＹ）実施を開始するように、または通信システムで特定のメディア・アクセス制御層（ＭＡＣ）実施を開始するように構成することができる。その代わりにまたはそれに加えて、ネットワーク化された回路２０６が、様々な実施形態で、イメージ処理、ビデオ処理、サウンド／音声処理、データ処理、および類似物に関連する機能を含む他のデータ処理機能を実行することができる。
【００２１】
いくつかの実施形態で、ネットワーク化された回路２０６の複数の構成が存在することができ、処理システム２０２または他の制御要素が、ネットワーク化された回路２０６の再構成プロセスまたは再プログラミング・プロセスを実行することによって、ネットワーク化された回路２０６の構成を変更することができる。ある構成から別の構成への変更は、例えば、下で詳細に説明するように、ルータ・パケット長の調整を可能にすることができ、および／または通信システムがあるＰＨＹから別のＰＨＹに、あるＭＡＣから別のＭＡＣに、もしくは複数の構成の組合せの間ですばやく切り替えることを可能にすることができる。
【００２２】
いくつかの実施形態では、ネットワーク化された回路２０６が、集積回路の一部である。これらの実施形態の一部で、ネットワーク化された回路２０６が、ネットワーク化された回路２０６以外の回路を含む集積回路ダイに含まれる。例えば、ネットワーク化された回路２０６を、プロセッサ、メモリ、または他の適当な回路を有する集積回路ダイに含めることができる。いくつかの実施形態で、ネットワーク化された回路２０６が、通信デバイスの集積のレベルを高めるために、同一の集積回路ダイ上でＲＦ回路と共存する。さらに、いくつかの実施形態では、ネットワーク化された回路２０６が、複数の集積回路ダイにまたがる。
【００２３】
ＲＦインターフェイス２０８は、エア・インターフェイスを介する送出のためにネットワーク化された回路２０６から受け取った情報を準備し、かつ／あるいは、ＲＦインターフェイス２０８は、ネットワーク化された回路２０６および／または処理システム２０２による検討のためにアンテナ２１０から受け取った情報を準備する。ＲＦインターフェイス２０８には、例えば、限定ではなく、フィルタ、アナログ・デジタル（ＡｔｏＤ）コンバータおよび／またはデジタル・アナログ（ＤｔｏＡ）コンバータ、バッファ、および様々な他の要素を含めることができる。様々な実施形態で、ＲＦインターフェイス２０８は、デバイス２００によって実施されるプロトコルに適当な周波数で動作することができる。いくつかの実施形態では、ＲＦインターフェイス２０８が省略される（例えば、ワイヤレス・インターフェイスを介しては通信しないデバイスの場合）。
【００２４】
デバイス２００に、一実施形態で、少なくとも１つのアンテナ２１０が含まれる。アンテナ２１０に、指向性アンテナおよび／または無指向性アンテナを含めることができる。例えば、限定ではなく、いくつかの実施形態で、アンテナ２１０に、ダイポール・アンテナまたは１／４波長アンテナなどの無指向性アンテナを含めることができる。また、例えば、いくつかの実施形態で、アンテナ２１０に、パラボラ・ディッシュ・アンテナまたは八木アンテナなどの指向性アンテナを含めることができる。いくつかの実施形態で、アンテナ２１０が省略される。いくつかの実施形態で、アンテナ２１０によって送受されるＲＦ信号が、音声信号、データ信号、またはこれらの組合せに対応することができる。赤外線仕様が実施される場合に、発光ダイオード（ＬＥＤ）（図示せず）または他の光伝送デバイスを、アンテナ２１０の代わりに使用することができる。
【００２５】
本発明の実施形態は、別個のソース・デバイス、ルータ、および宛先デバイスを含むシステムまたはネットワークで使用することができる。その代わりにまたはそれに加えて、本発明の実施形態を、単一デバイスのネットワーク化された回路内で使用することができ、この処理回路には、様々なＰＥおよび／またはＩ／Ｏノードとルータとが含まれる。この説明の残りでは、ネットワーク化された回路に関して本発明の実施形態を説明するが、当業者には、本明細書の説明に基づいて、本発明の主題を別個のソース・デバイス、ルータ、および宛先デバイスを含むシステムまたはネットワークに適用するために、開示された実施形態をどのように変更できるかが明白であろう。したがって、この詳細な説明の残りは、本発明の主題の範囲をネットワーク化された回路に限定することを意図したものではない。
【００２６】
図３および図４に、本発明の実施形態をその中で実施できる、ネットワーク化された回路の２つの例を示す。図３および図４に示された例は、本発明の主題をこれらの例のネットワーク化された回路に限定することを意図されたものではない。そうではなく、当業者に明白であるように、本明細書の説明に基づいて、本発明の実施形態を、図示されたものと異なる構成を有する複数のネットワーク化された回路のどれにおいても使用することができる。
【００２７】
図３は、本発明の主題の一実施形態による、ネットワーク化された回路３００の単純化されたブロック図である。ネットワーク化された回路３００に、複数の相互接続されたルータ（「Ｒ」）３０２，３０４，３０６と、複数のＰＥ３１０，３１２、および／またはＩ／Ｏノード３１４とが含まれる。説明を簡単にするために、ＰＥ３１０，３１２、およびＩ／Ｏノード３１４を、これらが互いに通信するのにパケットベース通信プロトコルを使用するので、全体的にパケットベース通信（ＰＢＣ）要素と呼ぶ。
【００２８】
いくつかの実施形態で、各ルータ３０２，３０４，３０６は、単一のＰＢＣ要素３１０，３１２，３１４に結合される。例えば、図３に示されているように、ＰＢＣ要素３１０がルータ３０２に結合され、ＰＢＣ要素３１２がルータ３０４に結合される。他の実施形態では、各ルータが、複数のＰＢＣ要素に結合される。
【００２９】
一実施形態で、ルータは、一緒に直列に接続される。例えば、図３に示されているように、ルータ３０２，３０４が、一緒に直接に相互接続３２０によって結合される。逆に、ルータ３０２，３０６は、ルータ３０４および他の中間ルータ（図示せず）を介して一緒に結合される。他の実施形態では、他の直接相互接続（図示せず）が、様々なルータの間に存在することができる。
【００３０】
本発明のいくつかの実施形態で、ネットワーク化された回路３００に、データを処理するための様々な異なるアーキテクチャを有する様々なタイプの「データ処理」ＰＢＣ要素３１０，３１２を含めることができる。さらに、ネットワーク化された回路３００に、様々なタイプの「Ｉ／Ｏ」ＰＢＣ要素３１４も含めることができ、このＩ／Ｏ  ＰＢＣ要素３１４は、Ｉ／Ｏ機能を実行し、したがって、接続３１６によって示されるように、他の回路と通信するのにネットワーク化された回路３００によって使用されることができ、接続３１６は、情報を回路３００に入力し、および／または回路３００から出力することを可能にする。例えば、Ｉ／Ｏ  ＰＢＣ要素３１４を使用して、ホスト・プロセッサまたはＲＦレシーバもしくはトランスミッタなどのアナログ・フロント・エンドと通信することができる。任意の個数のデータ処理ＰＢＣ要素３１０，３１２ならびに／あるいはＩ／Ｏ  ＰＢＣ要素３１４を、ネットワーク化された回路３００に含めることができ、これらのアーキテクチャを、大きく変更することができる。さらに、特定のＰＢＣ要素に、データ処理機能とＩ／Ｏインターフェイス機能との両方を含めることができる。
【００３１】
いくつかの実施形態で、ＰＢＣ要素は、複数の機能を実行できるものとすることができる。これらの機能のうちの少なくとも一部が、機能パケットを作る。複数の機能のそれぞれが、異なるタイプまたは異なるサイズの機能パケットを使用することができる。
【００３２】
様々な実施形態で、ＰＢＣ要素のうちの少なくとも一部が、機能から受け取られた機能パケットを「ルータ・パケット」に変換し、このルータ・パケットを、ＰＢＣ要素がルータに送る。様々な実施形態で、ルータ３０２，３０４，３０６は、ルータ・パケットを使用して、お互いならびにＰＢＣ要素３１０，３１２，３１４と通信する。例えば、ＰＢＣ要素３１０は、ＰＢＣ要素３１２に送るべき情報を有する場合に、１つまたは複数のルータ・パケットをソース・ルータ３０２に送ることができ、このソース・ルータ３０２は、ＰＢＣ要素３１２への配送のためにそのパケットを宛先ルータ３０４にルーティングする。１つまたは複数の中間ルータが、ソース・ルータと宛先ルータとの間に存在してよい（しなくてもよい）。ルータ・パケットは、任意のサイズを有することができる。
【００３３】
図３に、ルータ／ＰＢＣ要素対の単一の行を含む、１次元回路が示されている。３つのルータ／ＰＢＣ要素対が図示されているが、省略記号によって示されているように、他の実施形態ではより多数またはより少数の対を含めることができる。他の実施形態では、ネットワーク化された回路に、多次元回路（例えば、２次元、３次元、それ以上）を含めることができ、この回路には、ルータ／ＰＢＣ要素対の相互接続された行および列が含まれる。例えば、限定ではなく、図４に、２次元回路を示す。
【００３４】
図４は、本発明の主題のもう１つの実施形態による、ネットワーク化された回路４００の単純化されたブロック図である。ネットワーク化された回路４００に、複数の相互接続されたルータ４０２，４０４，４０６，４０８と、複数のＰＥ４１０，４１２，４１６、および／またはＩ／Ｏノード４１４とが含まれる。説明を簡単にするために、ＰＥ４１０，４１２，４１６、およびＩ／Ｏノード４１４を、これらが図３に関するのと同様に、包括的にＰＢＣ要素と呼ぶ。
【００３５】
いくつかの実施形態で、各ルータ４０２，４０４，４０６，４０８が、単一のＰＢＣ要素４１０，４１２，４１４，４１６に結合される。例えば、図４に示されているように、ＰＢＣ要素４１０がルータ４０２に結合され、ＰＢＣ要素４１２がルータ４０４に結合される。他の実施形態では、各ルータが複数のＰＢＣ要素に結合される。
【００３６】
一実施形態で、ルータは、一緒にトロイダル配置で結合される。例えば、図４に示されているように、ルータ４０２，４０８が、ルータ４０４，４０６ならびに他の中間ルータ（図示せず）を介して一緒に結合される。ルータ４０４，４０８は、相互接続４２２（ルータ４０２の左とルータ４０８の右に図示）によって直接に一緒に結合もされる。
【００３７】
ネットワーク化された回路４００内の様々なルータ（およびＰＢＣ要素）は、最近傍相互接続を用いて行および列に配置され、トロイダル相互接続を形成する。他の実施形態では、他の直接相互接続（図示せず）が様々なルータの間に存在することができる。
【００３８】
本発明のいくつかの実施形態では、ネットワーク化された回路４００に、データを処理するための様々な異なるアーキテクチャを有する様々なタイプのデータ処理ＰＢＣ要素４１０，４１２，４１６を含めることができる。さらに、ネットワーク化された回路４００に、様々なタイプのＩ／Ｏ  ＰＢＣ要素４１４も含めることができ、このＩ／Ｏ  ＰＢＣ要素４１４は、Ｉ／Ｏ機能を実行し、したがって、接続４２４によって示されるように、他の回路と通信するのにネットワーク化された回路４００によって使用されることができ、接続４２４は、情報を回路４００に入力し、または回路４００から出力することを可能にする。例えば、Ｉ／Ｏ  ＰＢＣ要素４１４を使用して、ホスト・プロセッサまたはＲＦレシーバもしくはトランスミッタなどのアナログ・フロント・エンドと通信することができる。任意の個数のデータ処理ＰＢＣ要素４１０，４１２，４１６ならびに／あるいはＩ／Ｏ  ＰＢＣ要素４１４を、ネットワーク化された回路４００に含めることができ、これらのアーキテクチャを、大きく変更することができる。さらに、特定のＰＢＣ要素に、データ処理機能とＩ／Ｏインターフェイス機能との両方を含めることができる。
【００３９】
いくつかの実施形態で、ＰＢＣ要素は、複数の機能を実行することができる。これらの機能のうちの少なくとも一部が、機能パケットを作る。複数の機能のそれぞれが、異なるタイプまたは異なるサイズの機能パケットを使用することができる。
【００４０】
様々な実施形態で、ＰＢＣ要素のうちの少なくとも一部が、機能から受け取られた機能パケットをルータ・パケットに変換し、このルータ・パケットを、ＰＢＣ要素がルータに送る。様々な実施形態で、ルータ４０２，４０４，４０６，４０８は、ルータ・パケットを使用して、お互いならびにＰＢＣ要素４１０，４１２，４１４，４１６と通信する。ルータ・パケットは、任意のサイズを有することができる。
【００４１】
図４に、ルータ／ＰＢＣ要素対の３つの行および列を含む、２次元回路が示されている。省略記号によって示されているように、他の実施形態ではルータ／ＰＢＣ要素対のより多数またはより少数の行および／または列を含めることができる。
【００４２】
図５は、本発明の主題の実施形態による、ＰＢＣ要素５００の単純化されたブロック図である。ＰＢＣ要素５００に、少なくとも１つのデータ・ルータ・アダプタ（ＤＲＡ）５０２が含まれる。さらに、ＰＢＣ要素５００に、少なくとも１つのアクセラレータ５０４および／または少なくとも１つのＩ／Ｏインターフェイス５０６が含まれる。１つのアクセラレータ５０４が図示されているが、より多数のアクセラレータを含めることができ、あるいは、ＰＢＣ要素５００に少なくとも１つのＩ／Ｏインターフェイス５０６が含まれる限り、アクセラレータを除外することができる。同様に、１つのＩ／Ｏインターフェイス５０６が図示されているが、より多数のＩ／Ｏインターフェイスを含めることができ、あるいは、ＰＢＣ要素５００に少なくとも１つのアクセラレータ５０４が含まれる限り、Ｉ／Ｏインターフェイスを除外することができる。
【００４３】
一実施形態で、ＤＲＡ５０２に、ＤＲＡ５０２がアクセラレータ５０４および／またはＩ／Ｏインターフェイス５０６で実行されるソース機能から機能パケットを受け取り、その機能パケットを関連するルータ・パケットの組に変換し、その関連する組をリンク５１０を介してルータ（図示せず）に送ることを可能にするハードウェア、ファームウェア、および／またはソフトウェアが含まれる。さらに、一実施形態で、ＤＲＡ５０２に、ＤＲＡ５０２がルータ（図示せず）からルータ・パケットの関連する組を受け取り、その関連する組を再組み立てされた機能パケットに変換し、再組み立てされた機能パケットをアクセラレータ５０４またはＩ／Ｏインターフェイス５０６（再組み立てされた機能パケット内のデータを使用する機能（すなわち、宛先機能）を実施する）に送ることを可能にするハードウェア、ファームウェア、および／またはソフトウェアが含まれる。ＤＲＡ５０２のより詳細な実施形態を、後で図６に関して説明する。
【００４４】
アクセラレータ５０４に、アクセラレータ５０４がデータ処理機能を実行できるようにするハードウェア、ファームウェア、および／またはソフトウェアが含まれる。アクセラレータ５０４は、様々な異なるアーキテクチャのうちのどれであっても有することができる。さらに、アクセラレータ５０４は、単一の機能を実行することができ、あるいは、複数の機能を順次または並列に実行することができる。例えば、限定ではなく、１つまたは複数のアクセラレータ５０４に、特定の論理機能を実行するように構成できるプログラマブル・ロジック・アレイを含めることができ、１つまたは複数の他のアクセラレータに、機械命令を用いてプログラムできるプロセッサ・コアを含めることができる。もう１つの例として、１つまたは複数のアクセラレータ５０４を使用して、ＰＢＣ要素５００が、データ・フィルタリング、データ符号化および／または復号化、データ変調および／または復調、データ暗号化および／または暗号化解除、および類似物を含む機能のグループからの１つまたは複数の機能を実行することができる。
【００４５】
Ｉ／Ｏインターフェイス５０６は、他の回路と通信するのに使用することができる。例えば、Ｉ／Ｏインターフェイス５０６を使用して、ホスト・プロセッサまたはＲＦレシーバもしくはトランスミッタなどのアナログ・フロント・エンドと通信することができる。
【００４６】
アクセラレータ５０４および／またはＩ／Ｏインターフェイス５０６は、構成可能またはプログラム可能とすることができ、その基礎になるアーキテクチャに基づいて異なるレベルの構成可能性またはプログラム可能性を有することができる。代替実施形態では、アクセラレータ５０４および／またはＩ／Ｏインターフェイス５０６の一部またはすべてを、構成可能でないまたはプログラム可能でないものとすることができる。
【００４７】
いくつかの実施形態で、ＰＢＣ要素５００は、複数のデータ処理および／またはＩ／Ｏ機能を実行できるものとしてよい。様々な実施形態で、ＰＢＣ要素５００は、複数の機能を順次または並列に実行できるものとしてよい。複数の機能のそれぞれが、同一のＰＢＣ要素５００上または他のＰＢＣ要素（図示せず）上の他の機能と別々に通信することができる。様々な実施形態によれば、機能のうちの少なくとも一部が、機能パケットを作り、および／または再組み立てされた機能パケットを消費する。複数の機能のそれぞれが、異なるタイプまたは異なるサイズの機能パケットを作り、転送し、または他の形で利用することができる。
【００４８】
図６は、本発明の主題の実施形態による、ＤＲＡ６００の単純化されたブロック図である。一実施形態で、ＤＲＡ６００に、第１データ・バッファ６０４、ヘッダ情報記憶要素６０６、ヘッダ・パーサおよびジェネレータ・モジュール６０８、ルータ・パケット形成モジュール６１０、ヘッダ除去モジュール６２２、および第２データ・バッファ６２４が含まれる。
【００４９】
ＤＲＡ６００は、ＰＢＣ要素インターフェイス６０２を介して機能パケットを受け取り、ＰＢＣ要素インターフェイス６０２は、１つまたは複数のＰＢＣ要素（例えば、図５のアクセラレータ５０４および／またはＩ／Ｏインターフェイス５０６）からパケットを受け取ることができる。受け取られた機能パケットのデータは、一実施形態で、一時的にデータ・バッファ６０４に保管される。データ・バッファ６０４は、例えば、先入れ先出し（ＦＩＦＯ）バッファとすることができる。
【００５０】
機能パケット・ヘッダは、ヘッダ・パーサおよびジェネレータ・モジュール６０８によって受け取られ、解析される。一実施形態で、ヘッダ・パーサおよびジェネレータ・モジュール６０８は、ヘッダおよび／またはヘッダ内に含まれる情報をヘッダ情報記憶要素６０６に保管する。例えば、ヘッダ・パーサおよびジェネレータ・モジュール６０８は、各機能パケット・ヘッダから、機能パケット長、ルータ・パケット長、および／または他の情報を抽出し、保管することができる。ヘッダ情報記憶要素６０６は、例えば、レジスタの組および／または別のタイプの揮発性もしくは不揮発性のデータ記憶媒体とすることができる。
【００５１】
一実施形態で、機能パケット長とルータ・パケット長との両方が、各機能パケット・ヘッダに含まれる。機能パケットを作る機能は、一実施形態で、事前に保管されたルータ・パケット長テーブルからルータ・パケット長を入手する。この「ルータ・パケット長テーブル」は、当初に、各機能にルータ・パケット長を割り当てるように構成される。例えば、事前に保管されたルータ・パケット長情報は、ＤＲＡ６００がそれから機能パケットを受け取ることのできる様々な機能および／またはＩ／Ｏインターフェイスのいずれかまたはすべてについて同一のまたは異なるルータ・パケット長を示すことができる。
【００５２】
もう１つの実施形態で、ルータ・パケット長を、機能パケット・ヘッダに含めないものとすることができる。その代わりに、どの機能が機能パケットを送るかの知識を用いて、ヘッダ・パーサおよびジェネレータ・モジュール６０８が、ルータ・パケット長テーブルにアクセスして、ルータ・パケット長を判定することができる。この実施形態では、ルータ・パケット長テーブルを、計算モジュール内または他の場所の、ヘッダ情報記憶要素６０６に保管することができる。
【００５３】
様々な機能に関連するルータ・パケット長は、一実施形態で、ルータ・パケット長テーブル内の値を更新できるようにすることによって更新可能である。これによって、サポートされる機能および／またはＩ／Ｏインターフェイスのうちの選択されたもののルータ・パケット長を更新することによって、時々、待ち時間および／またはルータ・パケット帯域幅使用量を調整できるようになる。
【００５４】
一実施形態で、ルータ・パケット長テーブルは、当初に、許容できるエンドツーエンド待ち時間要件に従うデフォルト値に構成される。もう１つの実施形態で、フィードバック・プロセスが、システム・パフォーマンス・パラメータ（例えば、待ち時間および／または帯域幅使用量）を監視し、ルータ・パケット長が、フィードバック情報に基づいてパフォーマンス・パラメータを改善するために動的に調整される。
【００５５】
ヘッダ・パーサおよびジェネレータ・モジュール６０８は、ヘッダ情報に基づいてルータ・パケット・ヘッダを作る。一実施形態で、ルータ・パケット・ヘッダに、とりわけ、ルータ・パケット長に関するフィールドが含まれる。ルータ・パケットは、ルータ・パケット形成モジュール６１０に供給される。
【００５６】
ルータ・パケット形成モジュール６１０は、ルータ・パケット・ヘッダを受け取り、第１ルータ・パケットを形成する。一実施形態で、これに、ルータ・パケット・ヘッダに、データ・バッファ６０４に保管された機能パケットのフラグメントを連結することが含まれる。第１フラグメントに、機能パケット・ヘッダのすべてまたはセグメントが含まれる。ルータ・パケット形成モジュール６１０は、ルータ・インターフェイス６１２を介してルータにルータ・パケットを送る。このルータ・パケットは、関連するルータ・パケットの組の最初のパケットである。
【００５７】
ルータ・パケット形成モジュール６１０は、機能パケット全体が１つまたは複数のルータ・パケットに再パケット化されたかどうかを判定する。そうでない場合には、ルータ・パケット形成モジュール６１０は、ルータ・パケット・ヘッダに、データ・バッファ６０４から抽出された機能パケットの次のフラグメントを連結し、関連するルータ・パケットの組の次のルータ・パケットを送出するプロセスを繰り返す。最後のフラグメントがルータ・パケットにパケット化された時に、このプロセスが完了する。一実施形態で、最後のフラグメントが、ルータ・パケット・データ・フィールド・サイズ未満である場合に、最後のパケットを、先行するパケットより小さくすることができる。他の実施形態では、フィールドの残りを、０、決定可能なパターン、またはランダム・データでパディングする。そのような実施形態では、追加情報をパケット・ヘッダに含めて、受取側が、パケット内にどれだけのパディングが存在するかを判定できるようにすることができる。
【００５８】
前述の議論は、機能パケットを関連するルータ・パケットの組にフラグメント化する方法の一実施形態を与える。下では、関連するルータ・パケットの組を再組み立てして再組み立てされた機能パケットを作る方法の議論を与える。
【００５９】
一実施形態で、着信ルータ・パケットが、ヘッダ除去モジュール６２２によって、ルータ・インターフェイス６２０を介して受け取られる。ヘッダ除去モジュール６２２は、ルータ・パケット・ヘッダをはぎとり、パケットのデータ部分をデータ・バッファ６２４に保管する。一実施形態で、データ・バッファ６２４がＦＩＦＯバッファである。もう１つの実施形態で、ルータ・パケット・ヘッダは、ヘッダ除去モジュール６２２によってはぎとられるのではなく、異なる処理モジュールまたはＰＢＣ要素による後続の除去のために、機能パケット情報と一緒にデータ・バッファ６２４に保管される。
【００６０】
受け取られたルータ・パケットが、関連するルータ・パケットの組の最初のパケットである場合に、一実施形態で、そのルータ・パケットのデータ部分に、機能パケット・ヘッダが含まれる。関連するルータ・パケットの組の残りのルータ・パケットが受け取られた時に、最初の機能パケットの残りのデータが、データ・バッファ６２４内で再組み立てされる。データ・バッファ６２４内のデータが、ＰＢＣ要素インターフェイス６２６を介して宛先ＰＢＣ要素に送出される。したがって、関連するルータ・パケットの組が処理されて、再組み立てされた機能パケットが作成される。
【００６１】
図７は、本発明の主題の実施形態による、関連するルータ・パケットの組を生成する手順のフローチャートである。一実施形態で、この方法が、実質的にＤＲＡ（例えば、図６のＤＲＡ６００）によって実行される。
【００６２】
この方法は、ブロック７０２で、例えばアクセラレータまたはＩ／Ｏインターフェイスなどのソースから機能パケットを受け取ることによって開始される。機能パケットの例を図８に示すが、図８には、さらに、本発明の主題の実施形態による、機能パケット８００の関連するルータ・パケット８０２，８０４，８０６の組への変換が示されている。
【００６３】
機能パケット８００に、ヘッダ・フィールド８１０および機能データ・フィールド８１２が含まれる。一実施形態で、ヘッダ・フィールド８００内の情報は、機能パケット長および／またはルータ・パケット・データ長を示す。機能パケット長の表示は、例えば、総機能パケット長を示す値、または機能データ・フィールド長を示す値とすることができる。同様に、ルータ・パケット・データ長の表示は、例えば、総ルータ・パケット長を示す値、またはルータ・データ・フィールド長を示す値とすることができる。本明細書の説明に基づいて当業者に明白であるように、様々な実施形態で、その代わりに、他の値を使用して、機能パケット長および／またはルータ・パケット・データ長を示すことができる。さらに別の実施形態では、機能パケット長および／またはルータ・パケット・データ長の一方または両方が、機能パケット・ヘッダで示されない。
【００６４】
図７をもう一度参照すると、ブロック７０４で、関連するルータ・パケットの組を生成する。一実施形態で、各ルータ・パケットが、機能パケット長以下のルータ・パケット・データ長を有することができる。関連するルータ・パケットの組は、一実施形態で、次のように生成される。
ａ）機能パケット長およびルータ・パケット・データ長を、機能パケット・ヘッダ（例えば、図８のヘッダ８１０）から判定する。代替実施形態では、ルータ・パケット・データ長が、事前に保管された構成情報と、機能パケットを作ったソース機能またはＩ／Ｏインターフェイスのアイデンティティまたはタイプとに基づいて判定される。
ｂ）一実施形態で、レジスタを機能パケット長に初期化する。
ｃ）ルータ・パケット・データ長以上の長さを有する、ある量の機能パケットを受け取った後に、機能パケットのセグメント（例えば、図８のセグメント８１６）を選択する。このセグメントは、一実施形態で、ルータ・パケット・データ長以下のセグメント長を有する。
ｄ）ルータ・パケット（例えば、パケット８０２）を生成するが、このルータ・パケットには、ヘッダ（例えば、ヘッダ８１４）およびセグメント（例えば、セグメント８１６）が含まれる。
ｅ）一実施形態で、パケット化すべき機能パケット情報がまだ残っているかどうかの判定を行う。一実施形態で、これは、算術論理を使用して、前に初期化されたレジスタ（上のステップｂを参照されたい）内の現在の値からルータ・パケット・データ・フィールド長を減算することによって達成される。ルータ・パケット・データ・フィールド長を減算した後に、算術論理は、減分された値を保持するようにレジスタを更新することができる。比較器論理が、減分された値を評価して、再パケット化のために選択すべき機能パケット情報のセグメントが残っているかどうかを判定することができる。一実施形態で、減分された値が０より大きい場合に、選択すべき少なくとも１つのセグメントが残っている。
ｆ）機能パケットの実質的にすべてが関連するルータ・パケットの組（例えば、パケット８０２，８０４，８０６）に含められるまで、機能パケット内に残っている次のセグメント（例えば、図８のデータ・セグメント８１８，８２０）を繰り返して抽出し、他のルータ・パケット（例えば、パケット８０４，８０６）を繰り返して生成する。
【００６５】
図７をもう一度短く参照すると、ブロック７０６で、関連するルータ・パケットの組を、宛先ルータへの送達のためにソース・ルータに送る。１つまたは複数の中間ルータが、ソース・ルータと宛先ルータとの間に存在することができる。一実施形態で、各ルータ・パケットは、生成された時に、生成が完了するや否や、または関連するパケットの組全体の生成が完了した後に、送ることができる。関連するルータ・パケットの組を送った後に、この方法は終了する。
【００６６】
図７および図８に、ＰＢＣ要素（例えば、アクセラレータまたはＩ／Ｏインターフェイス）から機能パケットを受け取り、後にルータに送られる複数の関連するルータ・パケットの組に機能パケットをフラグメント化する時のＤＲＡ（例えば、図６のＤＲＡ６００）の機能を示した。様々な実施形態で、ＤＲＡは、関連するルータ・パケットの組を受け取り、再組み立てされた機能パケットを生成するためにパケットの組を処理することもできる。このプロセスを、図９および図１０を参照してさらに説明する。
【００６７】
図９は、本発明の主題の実施形態による、再組み立てされた機能パケットを生成する手順のフローチャートである。一実施形態では、この方法が、実質的にＤＲＡ（例えば、図６のＤＲＡ６００）によって実行される。
【００６８】
この方法は、ブロック９０２で、関連するルータ・パケットの組を宛先ルータから受け取ることによって開始される。ルータ・パケットの組の例を、図１０に示すが、図１０には、さらに、本発明の主題の実施形態による、ルータ・パケット１００２，１００４，１００６の組の再組み立てされた機能パケット１０００への変換が示されている。
【００６９】
各ルータ・パケット１００２，１００４，１００６に、ルータ・パケット・ヘッダ・フィールド（例えば、フィールド１０１４）と、機能パケット・セグメント・フィールド（例えば、フィールド１０１８）が含まれる。一実施形態で、ヘッダ・フィールド１０１４内の情報が、機能パケット長および／またはルータ・パケット・データ長を示す。もう１つの実施形態で、機能パケット長が、ルータ・パケット・ヘッダ内で示されない。
【００７０】
図９をもう一度参照すると、ブロック９０４で、再組み立てされた機能パケットを生成する。一実施形態で、再組み立てされた機能パケットの長さは、ルータ・パケット・データ長と等しい。再組み立てされた機能パケットは、一実施形態で、次のように生成される。
ａ）機能パケット長およびルータ・パケット・データ長を、ルータ・パケット・ヘッダ（例えば、図１０のヘッダ１０１４）から判定する。
ｂ）一実施形態で、レジスタを機能パケット長に初期化する。
ｃ）機能パケット・セグメント（例えば、図１０のセグメント１０１６）を、関連するパケットの組のルータ・パケット（例えば、パケット１００２）から抽出する。
ｄ）再組み立てされたパケット（例えば、パケット１０００）を少なくとも部分的に生成するが、このパケットには、機能パケット内で適当な位置に位置決めされた、抽出されたセグメント（例えば、セグメント１０１６）が含まれる。
ｅ）一実施形態で、他の受け取られたルータ・パケットから抽出すべき機能パケット・セグメントがまだ残っているかどうかの判定を行う。一実施形態で、これは、算術論理を使用して、前に初期化されたレジスタ（上のステップｂを参照されたい）内の現在の値からルータ・パケット・データ・フィールド長を減算することによって達成される。ルータ・パケット・データ・フィールド長を減算した後に、算術論理は、減分された値を保持するようにレジスタを更新することができる。比較器論理が、減分された値を評価して、受け取られたルータ・パケットから抽出すべき機能パケット・セグメントが残っているかどうかを判定することができる。一実施形態で、減分された値が０より大きい場合に、抽出すべき少なくとも１つのセグメントが残っている。
ｆ）機能パケットの実質的にすべてが機能パケット（例えば、パケット１０００）に含められるまで、機能パケットに再組み立てされていない次のセグメント（例えば、図１０のセグメント１０１８，１０２０）を繰り返して抽出する。
【００７１】
図９をもう一度短く参照すると、ブロック９０６で、機能パケットをその宛先（例えば、アクセラレータおよび／またはＩ／Ｏインターフェイス）に送る。一実施形態で、パケット全体が再組み立てされるまで、機能パケットのどの部分も送られない。もう１つの実施形態で、ヘッダ（例えば、図１０のヘッダ１０１０）が完成するや否や、機能パケットを送り始めることができる。機能パケットを送った後に、この方法は終了する。
【００７２】
特定の実施形態の前述の説明は、他者が現在の知識を適用することによって包括的な概念から逸脱せずに様々な応用例のために本発明の主題の全般的な性質をたやすく変更でき、および／または適合できるのに十分に本発明の主題の全般的な性質を明らかにする。したがって、そのような適合および変更が、開示された実施形態の同等物の意味および範囲に含まれる。本明細書で使用される文体または用語法は、説明のためのものであって限定ではない。したがって、本発明の主題は、そのような変更、修正、同等物、および変形のすべてを、添付の特許請求の範囲の趣旨および広義の範囲に含まれるものとして含む。
【００７３】
図示され、本明細書で説明した方法に関して上で説明した動作は、開示されたものと異なる順序で実行することができる。また、一部の方法を「終了」を有するものとして説明したが、これらを継続的に実行することができる。
【００７４】
本明細書で説明した様々な手順を、ハードウェア、ファームウェア、またはソフトウェアで実施することができる。ソフトウェア実施は、マイクロコード、アセンブリ言語コード、または高水準言語コードを使用することができる。コードは、実行中または他の時に、１つまたは複数の揮発性または不揮発性のコンピュータ読取り可能な媒体に保管することができる。これらのコンピュータ読取り可能な媒体に、ハード・ディスク、リムーバブル磁気ディスク、リムーバブル光ディスク、磁気カセット、フラッシュ・メモリ・カード、デジタル・ビデオ・ディスク、ベルヌーイ・カートリッジ、ＲＡＭ、ＲＯＭ、および類似物を含めることができる。したがって、上でリストしたものを含むコンピュータ読取り可能な媒体は、電子デバイス内で実行された場合に本発明の主題の実施形態の実現をもたらす方法を実行するための命令を保管することができる。
【図面の簡単な説明】
【００７５】
【図１】本発明の主題の実施形態による、通信システムを示す単純化されたブロック図である。
【図２】本発明の主題の実施形態による、通信デバイスを示す単純化されたブロック図である。
【図３】本発明の主題の実施形態による、ネットワーク化された回路を示す単純化されたブロック図である。
【図４】本発明の主題のもう１つの実施形態による、ネットワーク化された回路を示す単純化されたブロック図である。
【図５】本発明の主題の実施形態による、パケット交換式処理要素を示す単純化されたブロック図である。
【図６】本発明の主題の実施形態による、データ・ルータ・アダプタを示す単純化されたブロック図である。
【図７】本発明の主題の実施形態による、関連するルータ・パケットの組を生成する手順を示すフローチャートである。
【図８】本発明の主題の実施形態による、関連するルータ・パケットの組への機能パケットの変換の例を示す図である。
【図９】本発明の主題の実施形態による、再組み立てされた機能パケットを生成する手順を示すフローチャートである。
【図１０】本発明の主題の実施形態による、再組み立てされた機能パケットへの関連するルータ・パケットの組の変換の例を示す図である。
【図１】
2007529924.tif 000003
【図２】
2007529924.tif 000004
【図３】
2007529924.tif 000005
【図４】
2007529924.tif 000006
【図５】
2007529924.tif 000007
【図６】
2007529924.tif 000008
【図７】
2007529924.tif 000009
【図８】
2007529924.tif 000010
【図９】
2007529924.tif 000011
【図１０】
2007529924.tif 000012
【国際調査報告】
2007529924.tif 000013
2007529924.tif 000014
2007529924.tif 000015