(57)【特許請求の範囲】
【請求項１】
高帯域幅チャネル内に低帯域幅チャネルを生成する装置であって、
シリアル高帯域幅チャネルをシリアルデータストリームから出力高帯域幅パラレルデータストリームに変換するデシリアライザと、
前記低帯域幅チャネル用の追加のパケットを保持するメモリと、
前記低帯域幅チャネル用の前記追加のパケットを送信している間、高帯域幅パラレルデータストリームを保持するメモリと、
パラレルデータストリームをシリアルデータストリームに変換するシリアライザと、
前記高帯域幅パラレルデータストリームを受け取り、追加のパケットが送信されていないときには前記高帯域幅パラレルデータストリームを前記シリアライザにルーティングし、前記低帯域幅チャネルを形成する追加のパケットを送信している間は前記追加のパケットを保持するメモリの出力を前記シリアライザにルーティングする制御ロジックと、を備え、
前記制御ロジックは、前記追加のパケットが該パケットの前後に所定の最小のパケット間ギャップが存在する態様で前記高帯域幅パラレルデータストリーム中に挿入され、且つ、前記追加のパケットが、先に挿入された追加のパケットに続く、保持タイマで規定される既定の間隔以降に挿入され、且つ、前記挿入によって生じた待ち時間を補償するために、前記追加のパケットの挿入に引き続き前記高帯域幅パラレルデータストリーム内のパケットの間のパケット間ギャップを減少させる、ようにルーティングする
ことを特徴とする装置。
【請求項２】
前記制御ロジックは状態マシンを使用する請求項１に記載の装置。
【請求項３】
前記高帯域幅パラレルデータストリームを保持するメモリは、先入れ先出しメモリとして構成される請求項１に記載の装置。
【請求項４】
前記制御ロジックは、
前記追加のパケットメモリの出力と前記先入れ先出しメモリの出力との間で選択する第１のマルチプレクサと、
前記デシリアライザの出力と前記第１のマルチプレクサの出力との間で選択し、出力を前記シリアライザに供給する第２のマルチプレクサと、
を備える請求項１に記載の装置。
【請求項５】
前記制御ロジックによって制御され、入力を前記デシリアライザの出力に接続するレジスタと、
前記制御ロジックによって制御され、前記追加のパケットを保持するメモリと前記レジスタ出力との間で選択する第１のマルチプレクサと、
前記先入れ先出しメモリに供給される前記第１のマルチプレクサの出力と、
前記制御ロジックが制御し、前記レジスタの出力と前記先入れ先出しメモリの出力との間で選択する第２のマルチプレクサと、
前記シリアライザに供給される前記第２のマルチプレクサの出力と、
をさらに備える請求項３に記載の装置。
【請求項６】
前記低帯域幅チャネルのための追加のパケットを保持するメモリは前記先入れ先出しメモリの一部である請求項３に記載の装置。
【請求項７】
前記シリアライザは光出力を有する請求項１に記載の装置。
【請求項８】
前記シリアライザは電気出力を有する請求項１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパケット交換デジタルネットワークの技術に関する。より具体的には、本発明は高帯域幅チャネル内に低帯域幅一方向データストリームを挿入することに関する。
【背景技術】
【０００２】
デジタルネットワークを含む多くの用途では、管理、および／または、モニタリング、測定の各機能のためにチャネルが必要である。これらの機能において、高帯域幅チャネルにデバイスを接続することが一般的である。デバイスはいくつかの機能を行い、その結果低帯域幅データストリームが生成される。この低帯域幅データストリームの処理には、ワイヤレスリンク、または、高速スイッチ上のポートなど、別の通信チャネルにデバイスを接続する必要がある。測定機能と管理機能が内蔵されたスイッチやルータなどのデバイスにおいては、追加のリソースはこれらの機能に通信機能を提供するための専用になっている。どちらの場合でも、追加のリソースは低帯域幅のデータストリームをネットワークに戻すプロセスに固定されている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
高帯域幅チャネル内に低帯域幅チャネルを生成する方法および装置を提供すること。
【課題を解決するための手段】
【０００４】
送信すべきデータがあるときには余分の帯域幅は低帯域幅チャネルのためだけに使用し、低帯域幅チャネル上で送信すべきパケットがないときには、高帯域幅チャネルに最小の待ち時間を導入し、低帯域幅チャネル上でパケットを送信する影響を他の通過トラフィックの間に吸収し配分するように、低帯域幅チャネルを高帯域幅チャネル内に作成する。
【発明を実施するための最良の形態】
【０００５】
本発明を、特定な例としての実施形態に関して説明する。
【０００６】
本発明は、パケットを高帯域幅パケットストリーム内に挿入することによって低帯域幅チャネルを生成する。低帯域幅チャネルは、パケットを既定の間隔で挿入することによって高帯域幅チャネル内に作成する。この挿入により高帯域幅チャネルに待ち時間が導入される。この待ち時間は一定ではないが、挿入されたパケットに続いて入ってくる高帯域幅チャネル内のパケットの間のパケット間ギャップを最小化することで回復される。挿入されたパケットを送信し低帯域幅チャネルを形成している間、到着する高帯域幅パケットはエラスティックバッファ内に記憶される。
【０００７】
高速道路のトラフィックに入る比喩を考えてみると、入ってくるトラフィックは、「割り込む」（マージ）ことによって、高速道路のトラフィックに参加する。高速道路の車の間に充分な空間があれば問題はない。しかしラッシュアワーの時には、トラフィックへの参加は難しくなる。渋滞している高速道路に入るときには、入ってくる車の後ろに続く車は速度を落として空間を作らなければならない場合がしばしばある。しかし、もっと後ろの車はこのことに気づかない場合がある。トラフィックは速度を落とし、速度が落ちたために車の間のギャップが小さくなることによって、車が入ってきたことを補償する。昔は計測ライトがなかったため、このような割り込みはしばしば大混乱を巻き起こした。計測ライトの導入により、車が既定の頻度で高速道路に入るようになったという意味で状況は改善した。これによって、「入ってくる」車が既存のトラフィックに与える影響が緩和された。本発明は、パケットが比較的低速で注入されるときに、充分に使用率が低いリンク容量に依存する。
【０００８】
種々のイーサネットネットワーク研究により、帯域幅の使用量が容量の３０％以下の場合、イーサネットはよく機能することが示されている。使用率が高くなると衝突が起き、混雑につながる。再送信によりトラフィックが増え、さらに衝突が増えて、通過できるトラフィックは非常に少なくなってしまう。バックボーンネットワークやドメイン間リンクでは、送信の発信元が少ないとトラフィックははるかにスムーズになり、このようなリンクの使用率は容量の６０％から７０％に達する。トラフィックが集中するスイッチにおいて競合するパーティが少ないため衝突も減る。使用率が高くなり時々トラフィックが爆発すると、ルータにおいて実質的なパケットのロスにつながる可能性がある。基本的なイーサネットの最大パケットサイズは１５３６バイトであるが、典型的なトラフィックは一定範囲のパケットサイズを含む。すなわち、ルータのパケット交換機能はトラフィックパターンおよびリンクの帯域幅と一致しなければならない。言い換えれば、通信リンクを、１秒あたりのパケット数またはリンク容量についてルータの機能の１００％近くに駆動すると、実質的なパケットのロスになる。パケットロスの意味は非常に深刻である。パケットロスはなだれ効果を起こし、再送信が起きてさらにトラフィックを増やす結果になる場合がある。したがって、殆どのネットワーク計画者は、通信回線を１００％の容量で運用するのではなく、わずかな緩み、余分な容量を残しておく。この余分な容量の一部が、本発明が提案する低帯域幅チャネルとして使用可能である。この低帯域幅チャネルは通信回線の全帯域幅の１％しか使用しない。
【０００９】
本発明は、保持タイマを指定することによって、低帯域幅チャネルの上側の帯域幅を定義する。保持タイマはパケットを１つだけしか送信できない間隔を定義する。保持タイマの時間が終了すると、低帯域幅チャネル上で別のパケットを送信することができる。これは、高帯域幅パケットストリームが、挿入された以前のパケットを吸収するという条件の下でだけ発生しうる。すなわち、追加のパケット（extra packet）がストリームに挿入される前に、高帯域幅パケットストリームが変化しない状態に戻らなければならない。もちろん、追加のパケット挿入は、高帯域幅パケットストリーム内に小さな一時的な遅延を起こす。クロックサイクルにおける保持タイマ遅延は（文字(character:キャラクタ)。送信される各文字は１クロックサイクルを必要とする）、次のように計算される。
【００１０】
保持タイマ(hold timer)＝パケット（単位はバイト）×高帯域幅チャネル速度／低帯域幅チャネル速度
たとえば、挿入されたパケットサイズが１．５Ｋｂｙｔｅであり、高帯域幅チャネル帯域幅が１Ｇｂｐｓ、低帯域幅チャネルは高帯域幅チャネル容量の１％すなわち１０Ｍｂｐｓである場合、保持タイマは約１５０，０００クロックサイクルになる。１Ｇｂｐに対するバイトごとのクロックサイクルは、ビットストリームの８Ｂ／１０Ｂエンコーディングの場合１０ｎｓｅｃである。すなわちこの例では、１．５ｍｓｅｃ未満の高帯域幅パケットストリームには他のパケットは導入できない。パケットサイズが小さければ保持タイマ値も小さくなり、より頻繁に挿入できる。しかし小さなパケットを選択すると１秒当たりのパケット数が増加し、ルータの１秒あたりのパケット数の限度に近くなるとルータの処理能力に影響を与えうる。
【００１１】
保持タイマをパケットサイズと帯域幅の固定された関数として定義する代わりに、保持タイマはランダム係数を組み込むことができる。この場合、上記の計算された保持タイマは、上限と下限の間をランダムに変動する平均値となる。たとえば、保持タイマは平均の±２０％内であってもよい。保持タイマのランダム化により、同じサイズのパケットをトラフィック内に挿入するとき、トラフィックフローの同期化を防ぐことができる。この保持タイマのランダム化がフローの同期化に影響を与えることは証明されていないが、トラフィックフローに関する種々の研究により、一般的には同期化はネットワーク全体の安定に悪影響を与えうることが示されている。
【００１２】
他の重要なパラメータはパケット間のギャップである。これは、２つの連続するパケットまたはフレーム（たとえばイーサネットフレーム）の間のギャップである。１Ｇｂｐｓイーサネットにおいては、最小のパケット間ギャップは９６ｎｓｅｃでなければならない。追加のパケット（実際にはフレーム化されたパケット）を高帯域幅ストリームに挿入することから生じる影響を低減する唯一の方法は、続くパケットの、最小よりも大きなパケット間ギャップを低減することである。もちろん、最小ギャップは特定の標準が定義する最小ギャップより大きいギャップと定義することができる。これは、回線カードが、標準が定義する最小ギャップを処理する問題を有している場合、必要になる場合がある。保持タイマと同様に、最小ギャップにもランダム係数を組み込み、起きる可能性のある有害なトラフィックの同期化を避けることができる。しかし、これが必要かどうかを決定するために研究しなければならない。
【００１３】
図１は、追加のパケット（フレーム）１１０と１１２を高帯域幅パケットストリーム１００に挿入する方法を示す。ここで「パケット」は、ＩＰパケットだけではなく、ＩＰパケットを含んでいてもよいフレームであることを繰り返しておく必要がある。イーサネットの場合、これは、すでにたとえば８Ｂ／１０Ｂエンコーディングでエンコードされた実際のイーサネットフレームである。エンコーディングのタイプは通過するトラフィックが使用するエンコーディングのタイプに依存する。図１では、影響を受けないパケットは色をつけずに示し、遅延したパケットは灰色、挿入された追加のパケットは黒で示した。
【００１４】
ｔ０においては、追加なパケット１１０は送信の準備ができている。このときまでに、既定の保持タイマの時間が終了している。すなわち、追加のパケットを挿入する次のチャンスは、高帯域幅チャネルがＩＤＬＥ文字を送信するときである。ｔ０では、パケットＰ０が送信されている。ｔ１においてＰ０の送信と最小ギャップが終わった後、新しいパケットＥＰ１を挿入することができる。同時に、本発明では、入ってくるトラフィックを、後から再送信するためにエラスティックバッファに吸収しなければならない。図１の例では、Ｐ０とＰ１の間に入ってくるトラフィックは、最小より大きなパケット間ギャップを有する。本発明はこのギャップを最小化し、パケットＰ１が来るまで追加のＩＤＬＥ文字をドロップする。追加のパケットが送信プロセスにあるときに、Ｐ１とＰ２の間の最小ギャップに送信される追加のパケットと同様に、Ｐ１パケットはエラスティックバッファに入る。また、Ｐ３パケットが遅延なく移動するように、Ｐ２とＰ３の間のギャップも低減される。ＥＰ１パケットの挿入による影響を受ける（遅延される）のはＰ１とＰ２だけであって、Ｐ３は遅延されない。本発明では、ｔ１でパケットストリーム１２０として示すように上記の保持タイマを開始させる。パケットストリーム１３０はランダム係数を保持タイマに追加した状況を示す。ｔ２では、別の追加のパケットＥＰ２  １１２の送信準備ができている。しかしこのとき、低帯域幅チャネル基準を満たしていないので、保持タイマの時間が終了するｔ３まで待たなければならない。ｔ３の後、プロセスが繰り返される。すなわちｔ４で追加のパケットがストリームに挿入される。以下同様である。新しい追加のパケットを吸収する速度は、パケット間のギャップサイズに依存することに注意されたい。ギャップが大きければ新しいパケットをより早く「吸収」する。また、入ってくるトラフィックが通常の（１．５Ｋバイト）イーサネットフレームまたは大きな（９Ｋバイト）イーサネットフレームのどちらを含むかは関係がない。しかし、破裂したイーサネットフレームは分解されない。
【００１５】
本発明の第１の実施形態を図２から図５に示す。ここではゼロ遅延を導入する。本発明の第２の実施形態を図６から図８に示し、２文字の遅延を使用する。本発明の第３の実施形態を図９から図１１に示し、任意の遅延を使用する。
【００１６】
本発明は種々の形態で実装できるが、本発明はまた、たとえばＧＢＩＣまたはギガビットインタフェースコンバータとして知られるものなど、業界標準のインタフェースコンバータモジュールに代わるものとして適した、非常に集積度の高い形態での実装にも適している。現在のＧＢＩＣは基本的には、１つの媒体タイプ（光、より対線など）を別の媒体タイプに変換するトランシーバである。本発明を含む代替のＧＢＩＣを提供することにより、低帯域幅チャネルを必要とする多くの用途が可能になる。このような用途には、多くのネットワークモニタリング用途が含まれる。
【００１７】
図２から図５のゼロ遅延ソリューションでは、通常は回線速度で動作する（シリアライザ、マルチプレクサ、デシリアライザが導入する待ち時間以外には、通過するトラフィックに待ち時間は導入されない）。図２に示すように、追加のパケット２６０はバッファからトラフィックストリームに注入する。
【００１８】
図６から図８に示す２文字遅延は、通常の動作については２文字の最小の遅延を導入する（すなわち通過するトラフィックは２文字だけ遅延する）。図６に示すように、追加のパケットは送信前にＦＩＦＯバッファ６５０にコピーされる。
【００１９】
図９から図１１の任意の遅延ソリューションは、たとえばパケットヘッダの更新、ヘッダの一部の除去など、転送前にデータの操作を必要とするタイプの用途には重要である。
【００２０】
この説明は代表的な実施形態を含むが、主な焦点は、次に詳細に説明するゼロ遅延ソリューションである。
【００２１】
シリアルビットストリームをパラレルｎビットワードにデシリアライズするときは常に、ｎビットすべてが到着した後で結果をさらに転送してさらに処理するだけである（再シリアライズだけの場合もある）。すなわち、ビットストリームのデシリアライズを行いついで再シリアライズすると、少なくとも１ワードサイクルまたはｎビットの遅延が導入される。実際には、「ゼロ遅延」ソリューションと呼んでいる場合でも、シリアライザとデシリアライザは各々、合計約２ワードサイクルについて（ギガビットイーサネットの例では２０ｎｓ）、複数のビット回の内部待ち時間を有すると予想される。さらに、本発明は、たとえば、ギガビットのイーサネットでは１２５ＭＨｚなどのワード速度でオンチップメモリを読み出し、書き込み、アイドル文字を検出しなければならない。これは最新のＣＭＯＳプロセスでは問題ではないであろう。しかし１０Ｇｂのイーサネットなどより速いインタフェースでは、より広いマルチワードパラレルストリームが必要になる場合があり、これは、１ワードあたり１ワードサイクル（ｎビット）の追加のＳＥＲ／ＤＥＳ待ち時間を招く。もちろん、絶対項ではこれらのサイクルは１０ｘ速くなる。
【００２２】
ゼロ遅延
図２から図５は、本発明のゼロ遅延（待ち時間）実施形態を示す。図２を参照すると、入ってくるパケットのストリームはインタフェース２１１に入る。これはシリアルビットストリームなので（１ギガビットのイーサネットでは実際の１．２５Ｇｂｐの回線速度で移動する）、デシリアライザ２１０によりパラレルなビットストリームにデシリアライズされる。８Ｂ／１０Ｂエンコーディングを使用する場合（たとえば１ギガビット／秒イーサネット）、ストリームは１０パラレルビットストリームにデシリアライズされる２１２。ストリームはシステム状態に応じて３つの異なるルートに移動する。
【００２３】
デシリアライズ化は、高速データを低速度で処理するよく知られた技術である。たとえば、１ギガビットのイーサネットでは、データは１．２５ＧＨｚではなく１２５ＭＨｚで処理することができる。他に送信されているパケットがない場合やＦＩＦＯバッファ２５０が空の場合（すなわち主なパケットストリームに以前に挿入されたパケットの影響がない場合）、制御ロジック２３０の状態は図４の初期状態−Ｓ０である。図４に説明された状態マシンは、制御ロジック２３０がイベントに基づいて１つの状態から別の状態に遷移するところを示す。図５は状態遷移の例を示す。図２は基本構成ブロックを示し、図３はＦＩＦＯバッファポインタの遷移の様子を示す。
【００２４】
状態マシンは本発明を理解するための例および助けとして提供されているが、本発明の実行においては状態マシンは必ずしも必要ではないことに注意されたい。本明細書に説明する概念を実装する固定ロジックを使用すると、よりコンパクトな実施形態が得られる。
【００２５】
同様に、例としてＦＩＦＯを使用したが、任意のエラスティックバッファを使用することができる。ハードウェア実装は、たとえば読み出しと書き込みのポインタの直接制御を必要とせず、シングルポートバッファを使用することができる。
【００２６】
状態Ｓ０では、入ってくるパケットストリームデータは「高速経路」を使用する。これはインタフェース２１２からインタフェース２７１を介してマルチプレクサＭＵＸ２７０に移動する。ＭＵＸ２７０は状態０なので、入ってくるデータ２７１をインタフェース２７３と２２１を介してシリアライザ２２０に転送し、シリアライザ２２０は一端でパラレルストリームを変換して１つのシリアルストリームに戻すことができる２２２。シリアライザ２２０の出力は典型的には外部のネットワーク装置に接続し、電気インタフェースまたは光インタフェースを提供することができる。
【００２７】
図５の例を参照すると、時間ｔ０において入ってくるパケットＰ０は上記の高速経路を使用して通過する。制御ロジック２３０は状態Ｓ０にある。ｔ１では、保留時間が終了し（図５）、制御ロジック２３０はＳ０状態からＳ１状態に移動する（「イベント：保持タイマの時間終了」図４、図５）。ｔ２では、追加のパケット（図５）をストリーム内に注入する準備ができている（「イベント：追加のパケットの準備完了」）。制御ロジック２３０の状態マシンは状態Ｓ３に切り替わる（図４と図５）。この時点で、制御ロジック２３０は追加のパケットを注入するタイミングの感知を開始する。感知は、制御ロジック２３０を通過する個別の文字２３１をチェックすることで行う。
【００２８】
図２のデシリアライザの後２１２、データは３つの異なる経路をとることができる。第１の経路は上に説明した高速経路である。第２の経路２５１はＦＩＦＯバッファ２５０にいたる。第３の経路２３１は制御ロジック２３０に入る。制御ロジック２３０は追加のパケットを注入する可能性を示すＩＤＬＥ文字を感知する。制御ロジック２３０は最小ギャップに一致するＩＤＬＥ文字をカウントする。これは、図４と図５の状態Ｓ３で発生する。最小ギャップに一致すると「イベント：現在のギャップ(current gap)＝＝最小ギャップ(minimum gap)」が生成され、状態マシンは状態Ｓ４に切り替わる（パケットをストリームに挿入し、入ってくるトラフィックをＦＩＦＯ内に吸収しはじめる）。ギガビットのイーサネットでは、ＩＤＬＥ文字は２つの異なるコーディンググループから来ることに注意されたい。すなわち、２つの異なるＩＤＬＥがある。どちらのＩＤＬＥを使用するかは、送信された文字の全ストリームのＤＣ信号バランスに依存する。たとえば、注入されたパケットの次に１つのタイプのＩＤＬＥがあり、挿入されたパケットのＩＤＬＥのすぐ後に続くＩＤＬＥがＦＩＦＯ内にある場合、これらのＩＤＬＥは挿入されたパケットに続くＩＤＬＥによって置き換えなければならない。この方法で、適切なＤＣ信号バランスが保存される。さらに、ＩＤＬＥは単一の文字ではなく２つの文字である。ｔ３では追加のパケット２６０を挿入する。同時に新しい保持タイマが開始し、現在のギャップカウンタは０に設定され、ＦＩＦＯ２５０Ｒ（読み出し）ポインタが保存され、新しいＲポインタが追加のパケットの最初を指す（図３）
同時に、入ってくるパケットデータはＦＩＦＯ２５０に転送２５１されるが、ＭＵＸ２８０に転送されることはない。これはＭＵＸ２８０の状態が０であり、インタフェース２８２は、ＭＵＸ２８０の状態が１である場合だけデータを転送できるためである。本発明のＲポインタは追加のパケットを指すため、Ｗ（書き込み）ポインタはこの時点では進まない。データはＦＩＦＯ２５０の中の同じ場所に書き込まれるが、読み出しは追加のパケットバッファから行われる。
【００２９】
「イベント：追加のパケットの準備完了」が「イベント：保持タイマ時間終了」より前に発生した場合には（図４）、制御ロジック２３０の状態はＳ０→Ｓ２→Ｓ３に変わることに注意されたい。これらの２つのイベントが起きると、制御ロジック２３０は状態Ｓ４に切り替わる。
【００３０】
制御ロジック２３０が状態Ｓ４に入ると、インタフェース２３２から２７４を介して信号を送信し、ＭＵＸ２７０の状態を１に変え、また２３６から２８４を介して信号を送信しＭＵＸ２８０を状態０に設定する。同時に、信号２３５から２６２を介して、追加のパケット２６０を文字ごとに送信するプロセスを開始する。ｔ３ではＲポインタは追加のパケットデータを指している。追加のパケット文字はインタフェース２６１から２８１を介してＭＵＸ２８０に移動し、ついでこれらの文字は、インタフェース２８３から２７２を介してＭＵＸ２７０に転送される。ＭＵＸ２７０は状態１であるので、データはインタフェース２７３から２２１を介してシリアライザ２２０に移動し、インタフェース２２２を介して出る。ｔ４でパケットＰ１が到着する。「イベント：開始フレーム」が生成され、制御ロジック２３０は状態Ｓ５に遷移する。ＦＩＦＯ２５０はＰ１文字を蓄積しはじめ、すなわち、Ｗポインタが進み始める。すなわち、ギャップｔ３−ｔ４はパケットのストリームから除去されており、追加のパケットが挿入されたことが、入ってくるパケットストリームの遅延に与える影響を補償する。図５に示された例では、このギャップ（ｔ３−ｔ４）は不十分で新しく挿入された追加のパケットの影響を完全に吸収することができず、影響を補償するにはより多くのパケット間ギャップを使用する必要がある。
【００３１】
ここで次の状態への遷移、たとえば、Ｓ３→Ｓ４またはＳ５→Ｓ４は、構成された最小ギャップが一致したときだけ起きることに注意されたい。すなわち、たとえば、Ｐ０とＰ１の間の実際の最小ギャップ（標準により定義される）が、構成された最小ギャップより小さい場合、パケットはＰ０の後には挿入できない。追加のパケットは、充分に大きなパケット間ギャップが現れるまで待たなければならない。特定の標準が定義するよりも大きな構成可能最小ギャップを有するオプションは、標準の定義された最小ギャップが受信側端にストレスを与えすぎる配置のために残されている。通常の状況では、構成可能最小ギャップは標準が定義するギャップに等しいことが仮定されている。簡略のために、本発明で最小ギャップと言うときはいつでも、構成可能最小ギャップを指す。
【００３２】
追加のパケットの後には少なくとも最小ギャップが続かなければならない。パケットＰ０とＰ１の間のギャップは小さすぎて、挿入された追加のパケットに続くギャップを収容できないので、最小ギャップを追加のパケットの一部として含める必要がある。追加のパケット（ｔ３−ｔ４）を挿入した影響は、ＦＩＦＯ２５０が独自のＷポインタを進ませないことだけによって吸収される。
【００３３】
ＦＩＦＯ２５０がパケットＰ１を吸収すると、ＦＩＦＯは、Ｐ１に続く最小ギャップがｔ５において一致するまでＰ１に続くＩＤＬＥ文字を受け入れる。ｔ５では、「イベント：現在のギャップ＝＝最小ギャップ」が生成され、制御ロジック（２３０）は遷移して状態Ｓ４に戻り、追加のＩＤＬＥ文字を除去する。ＦＩＦＯ（２５０）は新しいパケットＰ２（ｔ６）の到着までＩＤＬＥ文字をスキップする。ここでも再び、ギャップｔ５−ｔ６を使用して、追加のパケットの挿入による影響を補償する。ｔ６では新しいパケットＰ２が到着し、「イベント：開始フレーム」が生成される。このイベントにより、制御ロジック（２３０）状態マシンは状態Ｓ５に遷移し、ここでＦＩＦＯは入ってくるパケットを後から送信するために保存する。
【００３４】
時間ｔ７において、最小ギャップを伴う追加のパケットを最終的に送信する。制御ロジック２３０は２３６−２８４インタフェースを介してＭＵＸ２８０を状態１に切り替え、ＲポインタをＦＩＦＯ２５０の最初に設定する（図３、状態Ｓ６、Ｓ７）。「イベント：挿入の終了」が生成され、制御ロジック２３０の状態マシンは状態Ｓ６に遷移する。このとき、データはＦＩＦＯ２５０から送信されている。ＦＩＦＯのＲポインタは第１の文字に設定され、これはＦＩＦＯ内に保存されるパケットＰ１の第１の文字となる。この間、ＦＩＦＯ２５０はパケットＰ２を受け入れ、記憶する２５１。ｔ８では、最小ギャップが続くパケットＰ２が到着する。「イベント：現在のギャップ＝＝最小ギャップ」が生成され、状態マシンは状態Ｓ７に遷移する（ＦＩＦＯを空にしている間ＩＤＬＥ文字をスキップする）。
【００３５】
時間ｔ９では、ＦＩＦＯ２５０からの最後の文字が送信される。これはＦＩＦＯ内に保存されている実際の最後の文字ではないことに注意されたい。最後の文字とは、ＦＩＦＯから読み出すことのできる文字であることを意味する。この時点で、Ｒポインタは、Ｗポインタより２文字遅れている。最小ギャップが到着した後ＩＤＬＥ文字を受信しているので、Ｗポインタは進んでいない。すなわち、ｔ８とｔ９の間のＩＤＬＥ文字は、入ってくるパケットストリームからは意図的にドロップされている。ｔ９で最後に受信した２つの文字がＩＤＬＥを表している場合、次のクロックサイクル（次の文字）において、高速経路に切り替えても安全である。入ってくるパケットストリームから失われる可能性のあるものはこのＩＤＬＥだけである（すなわち２文字は１つのＩＤＬＥを表す）。これが実際に必要なことなのでこれでよい。この場合、「イベント：ＦＩＦＯ＝＝２」と「イベント：最後に受信した文字＝＝ＩＤＬＥ」が生成され、制御ロジック状態マシンは状態Ｓ０（高速経路）に戻る。制御ロジック２３０はインタフェース２３２から２７４を介してＭＵＸ２７０を状態０に切り替え、パケットストリームを高速経路に従わせる（２１２−２７１−２７３−２２１−２２２）。
【００３６】
図示されているように、パケットＰ３はｔ９の後に到着する。しかし偶然最後に受信した文字がパケットＰ３の開始フレーム文字である場合、パケット間のギャップが充分に長くなり、高速経路に切り替えられるようになるまでＦＩＦＯ経路にとどまる以外の選択肢はない（最小ギャップ、プラス、１つのＩＤＬＥを表す２つの追加の文字）。これは本発明の非常に重要な要素である。ＦＩＦＯ経路から高速経路への切り替えは、受信されているがまだ送信されていないＩＤＬＥを表す２つの文字がドロップできるときだけに発生する。ドロップできる文字はＩＤＬＥだけである（各々が２文字である）。もちろん、最小ギャップがすでに送信されていると仮定されている。性質からＦＩＦＯ経路は常に高速経路より少なくとも２つ文字遅い。すなわち、Ｒポインタは２文字以上、Ｗポインタより遅れる。
【００３７】
２文字の遅延
２文字遅延（ＩＤＬＥのサイズ）を使用する本発明の実施形態を図６から図８に示す。図６に示すように、この実施形態は、出力６４２がＦＩＦＯ６５０に供給されるか、または、ＭＵＸ６８０とシリアライザ６２０を介してロジックを出る経路においてレジスタ６４０を使用する。この実施形態とゼロ遅延実施形態の間の違いは２つである。この実施形態の高速経路ではレジスタ６４０は永久２文字遅延を導入し、追加のパケットは別のメモリからパケットストリームに注入されるのではなく、まずＦＩＦＯ６５０にコピーされる。これにより、メモリコントローラの実装とＦＩＦＯ６５０の管理を簡単にできる。図６から図８は、この実施形態に適切な状態マシンと例としての状態遷移を示す構成図である。
【００３８】
任意遅延ソリューション
任意遅延ソリューションを使用する本発明の実施形態は、ゼロ遅延のオプションを伴わない、ゼロ遅延の簡略化されたバージョンである。図９から図１１は、遅延を必要とする用途に適用可能なこの実施形態を示す。たとえば、パケットヘッダ内の情報を放出し修正する前に、ＩＰヘッダまたは全パケットの操作が必要となる場合である。これは概念においては、パケットスイッチが使用する記憶と転送の技術に似ている。追加のパケット２４０とパケットストリーム２１１の両方がＦＩＦＯ２５０に記憶され、図１１による状態マシンの制御の下で選択的にシリアライザ２２０にルーティングされる。
【００３９】
上の本発明の記述は、説明のために提供されたものであり、包括的なものではなく、本発明を、開示されたとおりの実施形態に限定することを目的としたものでもない。したがって、本発明の範囲は付随する請求項によって定義されるものである。
【図面の簡単な説明】
【００４０】
【図１】パケット挿入を示す図。
【図２】本発明の第１の実施形態の構成図。
【図３】本発明の第１の実施形態のＦＩＦＯポインタを示す図。
【図４】本発明の第１の実施形態に適した状態マシンを示す図。
【図５】本発明の第１の実施形態における状態遷移を示す図。
【図６】本発明の第２の実施形態の構成図。
【図７】本発明の第２の実施形態に適した状態マシンを示す図。
【図８】本発明の第２の実施形態の状態遷移を示す図。
【図９】本発明の第３の実施形態の構成図。
【図１０】本発明の第３の実施形態の状態遷移を示す図。
【図１１】本発明の第３の実施形態に適した状態マシンを示す図。
【図１】
0004709526.tif 000002
【図２】
0004709526.tif 000003
【図３】
0004709526.tif 000004
【図４】
0004709526.tif 000005
【図５】
0004709526.tif 000006
【図６】
0004709526.tif 000007
【図７】
0004709526.tif 000008
【図８】
0004709526.tif 000009
【図９】
0004709526.tif 000010
【図１０】
0004709526.tif 000011
【図１１】
0004709526.tif 000012