(57)【要約】  ゲートウェイ装置（２００）は、互いに同期して、ソース・サーバ・モジュールとデスティネーション・サーバ・モジュールの間の非同期媒体を介する同期データのタイムスロット交換を可能にする複数のネットワーク・サーバ・モジュール(２０６Ａ−２０６Ｎ)を含む。ゲートウェイ装置（２００）は同期論理回路、及び同期シリアルデータをフォーマットするためのプロトコルを実施するパケット・アダプテーション・レイヤを含む。データはシリアル−パラレル変換されて、コンテキスト、及び同期データと一緒に更にパケット化される複数のタイムスロット・サブパケットに形成される。パケットは非同期スイッチを通して送信され、その後、サブパケットに逆アセンブルされて、コンテキスト、及び同期データに関連する各サブパケットによってプレイアウト・バッファのキューに入れられる。ゲートウェイ装置（２００）は、同期データが、ソース・タイムスロットからデスティネーション・タイムスロットに、既知の固定遅延を有する非同期スイッチを介して交換されることを可能にする。ゲートウェイ装置（２００）は、同期ドメインと非同期ドメインの間でデータを送信するのに単一の非同期スイッチだけを必要とする。
2007505570.tif 000002
【特許請求の範囲】
【請求項１】
データを処理するための方法であって、
（ａ）ソース・タイムスロットに関連する同期シリアルデータのストリームを複数のパラレルデータ・ユニットに変換すること、
（ｂ）同期インターバルの間に、少なくとも１つのサブパケットを、メモリの中で複数のパラレルデータ・ユニットから構築すること、
（ｃ）デスティネーション・タイムスロット識別子を含むメモリ・コンテキスト情報を、前記ソース・タイムスロットに関連する各サブパケットに対して記憶すること、
（ｄ）データ・パケットをメモリの中で構築し、前記データ・パケットが、前記同期インターバル、複数のサブパケット、及び前記各サブパケットに関連する各メモリ・コンテキスト情報を識別する少なくとも１つの同期タグを含むこと、並びに
（ｅ）前記データ・パケットを受信機構に提供することを含むことを特徴とする方法。
【請求項２】
前記受信機構が非同期スイッチを含み、（ｆ）前記非同期スイッチから前記データ・パケットをデスティネーションにおいて受信し、前記データ・パケットを複数のサブパケットに逆アセンブルすることを更に含むことを特徴とする、請求項１に記載の方法。
【請求項３】
ステップ（ｆ）が、（ｆ１）サブパケットをプレイアウト・メモリ・バッファに、前記サブパケットに関連する前記デスティネーション・タイムスロット識別子に基づいて送信することを含むことを特徴とする、請求項２に記載の方法。
【請求項４】
ステップ（ｆ）が、（ｆ１）サブパケットをプレイアウト・メモリ・バッファの内部のロケーションに、前記サブパケットに関連する同期タグに基づいて送信することを含むことを特徴とする、請求項２に記載の方法。
【請求項５】
ステップ（ｆ）が、（ｆ１）パケットの内部に含まれる多数のサブパケットを決定することを含むことを特徴とする、請求項２に記載の方法。
【請求項６】
前記メモリ・コンテキストが、タイムスロット識別データを含むことを特徴とする、請求項１に記載の方法。
【請求項７】
前記メモリ・コンテキストが、デスティネーション・キュー識別データを含むことを特徴とする、請求項１に記載の方法。
【請求項８】
前記メモリ・コンテキストが、データ・ストリームをイネーブルするためのイネーブル・データを含むことを特徴とする、請求項１に記載の方法。
【請求項９】
前記パケットが、そこに含まれるサブパケットの数を識別するデータを更に含むことを特徴とする、請求項１に記載の方法。
【請求項１０】
前記非同期スイッチが複数のデスティネーション・ポートを含み、前記パケットが、どの前記デスティネーション・ポートに前記パケットが供給されるかを識別するデータを更に含むことを特徴とする、請求項１に記載の方法。
【請求項１１】
ステップ（ｃ）が、（ｃ１）複数の異なるソース・タイムスロットの各々に関連する複数のサブパケットに対するメモリ・コンテキスト情報を記憶することを含むことを特徴とする、請求項２に記載の方法。
【請求項１２】
ステップ（ｃ）が、（ｃ２）複数のソース・タイムスロット識別子と複数のデスティネーション・タイムスロット識別子の間の関連を維持することを含むことを特徴とする、請求項１１に記載の方法。
【請求項１３】
データを処理するための方法であって、
（ａ）各ソース・タイムスロットに関連する複数の同期シリアルデータ・ストリームを、パラレルデータ・ユニットに変換すること、
（ｂ）イングレス・メモリの中で、少なくとも１つのサブパケットを、前記ソース・タイムスロットの１つに関連する前記パラレルデータ・ユニットから構築すること、
（ｃ）前記サブパケットに関連するイングレス・コンテキスト・データを検索して、前記イングレス・コンテキスト・データが、デスティネーション・タイムスロット識別子、キュー識別子、及びイネーブル変数を含むこと、
（ｄ）複数の各キューの中で、複数のサブパケット、及び複数のソース・タイムスロットに関連するイングレス・コンテキスト・データからデータ・パケットを構築し、前記データ・パケットの内部の前記サブパケットが同期インターバルの中で完成し、前記データ・パケットが、ｉ）前記同期インターバルを識別する少なくとも１つの同期タグ、及びｉｉ）前記パケットの中に含まれるサブパケットの数を識別するデータを更に含むこと、並びに
（ｅ）データ・パケットが完成したら直ぐに、前記データ・パケットを受信機構に提供することを含むことを特徴とする方法。
【請求項１４】
ステップ（ｃ）が、（ｃ１）サブパケットが完成したら直ぐに、イングレス・コンテキスト・メモリから前記イングレス・コンテキスト・データを読み出すことを含むことを特徴とする、請求項１３に記載の方法。
【請求項１５】
データを処理するための方法であって、
（ａ）同期論理回路を有する装置、並びに同期ネットワーク・インターフェース、非同期ネットワーク・インターフェース、及び同期論理回路の間で複数の同期信号をルーティングするための非同期スイッチを提供すること、
（ｂ）複数の同期シリアルデータ・ストリームの各々を、異なるソース・タイムスロットから受信すること、
（ｃ）データ・パケットを、前記複数の同期シリアルデータ・ストリームの１つ、及び各サブパケットに関連する各メモリ・コンテキストから各々が導出された複数のサブパケットから構築すること、並びに
（ｄ）前記非同期ネットワーク・インターフェース、及び前記同期ネットワーク・インターフェースの１つへ前記非同期スイッチを通して前記パケットをルーティングすることを含むことを特徴とする方法。
【請求項１６】
データを処理するための方法であって、
（ａ）複数のサブパケット、及び複数のソース・タイムスロットに関連するイングレス・コンテキスト・データを含むデータ・パケットを受信し、前記データ・パケットの内部の前記複数のサブパケットが同期インターバルの中で完成し、前記データ・パケットが、ｉ）前記同期インターバルを識別する少なくとも１つの同期タグ、及びｉｉ）前記パケットの中に含まれるサブパケットの数を識別するデータを更に含むこと、
（ｂ）サブパケットを、エグレス・メモリの内部の複数のプレイアウト・バッファの１つに、前記サブパケットに関連するコンテキスト・データに基づいて書き込むこと、
（ｃ）前記サブパケットを、複数のプレイアウト・バッファの１つの内部の位置に、前記同期タグ、及び固定アドレス・オフセットによって識別された前記同期インターバルに従って書き込むこと、並びに
（ｄ）前記プレイアウト・バッファから前記複数のサブパケットを連続的に読み出すことを含むことを特徴とする方法。
【請求項１７】
（ｅ）前記サブパケットの中の前記データを、シリアル同期データに変換することを更に含むことを特徴とする、請求項１６に記載の方法。
【請求項１８】
サブパケットに関連する前記コンテキスト・データが、デスティネーション・タイムスロット識別子を含み、ステップ（ｂ）が、（ｂ１）サブパケットを、前記エグレス・メモリの内部の複数のプレイアウト・バッファの１つに、前記デスティネーション・タイムスロット識別子に従って書き込むことを含むことを特徴とする、請求項１６に記載の方法。
【請求項１９】
非同期媒体を介した同期データのタイムスロット交換を実行するための方法であって、
（ａ）ソース・タイムスロットに関連する同期シリアルデータを、同期パラレルデータ・ユニットに、同期クロック信号に従って変換すること、
（ｂ）前記同期パラレルデータ・ユニットを第１サブパケットに、前記同期クロック信号に従ってフォーマットし、前記第１サブパケットが、前記同期クロック信号の第１同期インターバルの間に生成されること、
（ｃ）パケットを、前記第１サブパケットを含む複数のサブパケットから生成すること、
（ｄ）前記パケットを非同期媒体を介して非同期的に送信すること、及び
（ｅ）前記複数のサブパケットを前記パケットから抽出し、前記複数のサブパケットを複数のバッファに記憶し、前記各バッファはデスティネーション・タイムスロットに関連し、前記バッファの内部のサブパケットの配置が、前記サブパケットが生成された前記第１同期インターバル、及び固定遅延オフセットによって決定されることを特徴とする方法。
【請求項２０】
非同期媒体を介した同期データのタイムスロット交換を実行するための装置であって、
（ａ）ソース・タイムスロットに関連する同期シリアルデータを、同期パラレルデータ・ユニットへ、同期クロック信号に従って変換するためのシリアル−パラレル・インターフェース、
（ｂ）前記同期パラレルデータ・ユニットを第１サブパケットへ、前記同期クロック信号に従ってフォーマットし、前記第１サブパケットが前記同期クロック信号の第１同期インターバルの間に生成される論理回路、
（ｃ）パケットを、前記第１サブパケットを含む複数のサブパケットから生成するための論理回路、
（ｄ）非同期媒体を介して前記パケット非同期的に送信するための論理回路、
（ｅ）前記複数のサブパケットを前記パケットから抽出し、前記複数のサブパケットを複数のバッファの内部で記憶し、前記各バッファがデスティネーション・タイムスロットと関連する論理回路を含み、
前記バッファの内部の複数のサブパケットの配置が、前記第１同期インターバル、及び固定遅延オフセットを示す値によって決定されることを特徴とする装置。
【請求項２１】
データを転送するための方法であって、
（ａ）複数の同期シリアルデータ・ストリームを各サブパケットへ、第１同期インターバルの間にパケット化し、各サブパケットがソース・タイムスロットに関連すること、
（ｂ）非同期媒体を通して前記複数のサブパケットを非同期的に送信すること、及び
（ｃ）前記複数のサブパケットを同期データ・ストリームへ、前記第１同期インターバルに対して固定遅延オフセット関係を有する第２同期インターバルの間に再変換することを含むことを特徴とする方法。
【請求項２２】
ステップ（ａ）が、（ａ１）前記複数の同期シリアルデータ・ストリームを同期パラレルデータ・ユニットに変換することを含むことを特徴とする、請求項２１に記載の方法。
【請求項２３】
ステップ（ａ）が、（ａ２）前記同期パラレルデータ・ユニットをサブパケットへ、第１同期インターバルの間にフォーマットすることを含むことを特徴とする、請求項２２に記載の方法。
【請求項２４】
ステップ（ｂ）が、（ｂ１）複数のサブパケットからパケットを生成することを含み、
前記パケットが、前記複数のサブパケットが前記同期パラレルデータ・ユニットからフォーマットされる前記第１同期インターバルを識別するデータ、及び各サブパケットに関連するデスティネーション・タイムスロット識別子を含むことを特徴とする、請求項２３に記載の方法。
【請求項２５】
ステップ（ｂ）が、（ｂ２）前記複数のサブパケットを、非同期媒体を通して、前記パケットの一部として非同期的に送信することを含むことを特徴とする、請求項２４に記載の方法。
【請求項２６】
ステップ（ｃ）が、
（ｃ１）前記複数のサブパケットを前記パケットから抽出すること、及び
（ｃ２）前記複数のサブパケットを、前記第１同期インターバル、及び固定遅延オフセットを示す値によって決定される前記バッファの内部に記憶することを含むことを特徴とする、請求項２１に記載の方法。
【請求項２７】
ステップ（ｃ）が、
（ｃ３）前記複数のサブパケットを、前記バッファから複数のパラレルデータ・ユニットとして読み出すこと、及び
（ｃ４）前記パラレルデータ・ユニットを同期シリアルデータ・ストリームに変換することを含むことを特徴とする、請求項２６に記載の方法。
【請求項２８】
データを転送するための装置であって、
（ａ）複数の同期インターバルを定める複数の同期信号のソース、
（ｂ）第１同期インターバルの間に、複数の同期データ・ストリームを各サブパケットにパケット化し、各サブパケットがソース・タイムスロットに関連するインターフェース、
（ｃ）非同期媒体を通して前記複数のサブパケットを非同期的に送信するための機構、及び
（ｄ）前記第１同期インターバルに対して固定遅延オフセット関係を有する第２同期インターバルの間に、前記複数のサブパケットを同期データ・ストリームに再フォーマットするためのインターフェースを含むことを特徴とする装置。
【請求項２９】
（ｂ）が、（ｂ１）前記複数の同期シリアルデータ・ストリームを、同期パラレルデータ・ユニットに変換するための論理回路を含むことを特徴とする、請求項２８に記載の装置。
【請求項３０】
（ｂ）が、（ｂ２）第１同期インターバルの間に、前記同期パラレルデータ・ユニットをサブパケットにフォーマットするための論理回路を含むことを特徴とする、請求項２９に記載の装置。
【請求項３１】
（ｂ）が、（ｂ３）複数のサブパケットからパケットを生成するための論理回路を含み、
前記パケットが、前記複数のサブパケットが前記同期パラレルデータ・ユニットからフォーマットされる前記第１同期インターバルを識別するデータ、及び各サブパケットに関連するデスティネーション・タイムスロット識別子を含むことを特徴とする、請求項３０に記載の装置。
【請求項３２】
（ｄ）が、
（ｄ１）前記複数のサブパケットを前記パケットから抽出するための論理回路、並びに
（ｄ２）前記複数のサブパケットを複数のバッファに記憶し、前記各バッファはデスティネーション・タイムスロットに関連し、前記バッファの内部のサブパケットの配置が、前記第１同期インターバル、及び固定遅延オフセットを表す値によって決定される論理回路を含むことを特徴とする、請求項２８に記載の装置。
【請求項３３】
（ｄ）が、
（ｄ３）前記複数のサブパケットを、前記バッファから、複数のパラレルデータ・ユニットとして読み出すための論理回路、及び
（ｄ４）前記パラレルデータ・ユニットを、同期シリアルデータ・ストリームに変換するための論理回路を含むことを特徴とする、請求項３２に記載の装置。
【請求項３４】
（ａ）非同期スイッチ、
（ｂ）複数のネットワーク・サーバ・モジュールであって、前記非同期スイッチに結合され、
（ｉ）時分割多重化インターフェース、及び
（ii）パケット・アダプテーション論理回路を含む、ネットワーク・サーバ・モジュール、並びに
（ｃ）複数の同期クロック信号のソースであって、前記各ネットワーク・サーバ・モジュールに接続され、前記複数の同期クロック信号が複数の同期インターバルを定める、複数の同期クロック信号のソースを含み、
前記複数のネットワーク・サーバ・モジュールが、前記非同期スイッチを介して同期データの同期タイムスロット交換を実行するように形成されることを特徴とする装置。
【請求項３５】
前記パケット・アダプテーション論理回路が、
前記時分割多重化インターフェースに接続されたイングレス・データメモリ、
イングレス・コンテキスト・メモリ、並びに
前記イングレス・データメモリの中で複数のサブパケットを前記複数の同期インターバルの１つの間に構築するためのサブパケット構築論理回路であって、各サブパケットがソース・タイムスロットに関連し、前記時分割多重化インターフェースを通して受信した同期シリアルデータ・ストリームから導出されるパラレルデータを含むサブパケット構築論理回路を含むことを特徴とする、請求項３４に記載の装置。
【請求項３６】
前記イングレス・コンテキスト・メモリがサブパケットに関連するコンテキスト・データを記憶し、前記コンテキスト・データがデスティネーション・タイムスロット識別子、及びサブパケットに関連するキュー識別子を含むことを特徴とする、請求項３５に記載の装置。
【請求項３７】
前記パケット・アダプテーション論理回路が、
前記非同期スイッチに接続されたイングレス・キュー、及び
前記イングレス・キューの中で、複数のサブパケット、及び各サブパケットに関連する前記各コンテキスト・データを含むパケットを構築するためのパケット構築論理回路を含むことを特徴とする、請求項３６に記載の装置。
【請求項３８】
前記パケットが、そこに含まれる前記複数のサブパケットが構築された前記同期インターバルを識別するデータを更に含むことを特徴とする、請求項３７に記載の装置。
【請求項３９】
前記パケット・アダプテーション論理回路が、
複数のデスティネーション・タイムスロットに関連する複数のプレイアウト・バッファを有するエグレス・データメモリ、及び
パケットを前記非同期スイッチから受信して、そこに含まれる複数のサブパケットを前記エグレス・データメモリの中の複数のプレイアウト・バッファに記憶するためのパケット化論理回路を更に含むことを特徴とする、請求項３４に記載の装置。
【請求項４０】
前記パケット・アダプテーション論理回路が、パラレルデータを前記複数のプレイアウト・バッファから前記時分割多重化インターフェースへ同期的に供給するためのプレイアウト論理回路を更に含むことを特徴とする、請求項３９に記載の装置。
【請求項４１】
非同期スイッチを含むデータ処理システムによって処理するデータを記憶するためのメモリであって、
データのタイムスロット交換を実行できないデータ構造を記憶し、前記データ構造が、
各サブパケットがソース・タイムスロットに関連し、同期シリアルデータ・ストリームから導出されたパラレルデータを含み、各サブパケットが共通の同期インターバルの間に構築される複数のサブパケット、
複数のサブパケットが構築された前記共通の同期インターバルを識別する同期タグ、
前記データ構造の内部に含まれるサブパケットの数を識別するデータ、及び
各サブパケットに関連し、サブパケットに関連する前記ソース・タイムスロットに対応するデスティネーション・タイムスロット識別子を含むコンテキスト・データを含むことを特徴とするメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に通信システムに関し、更に詳細には、同期データ・ストリーム及び非同期データ・ストリームの両方をルーティングする単一のスイッチを利用するゲートウェイ装置に関する。
【背景技術】
【０００２】
電気通信を可能にする２つの根本的に異なる交換技術が存在する。第１に、回線交換技術は、公衆交換電話網（ＰＳＴＮ）と同様に、専用の回線（又は、チャネル）を利用してデータを２点間で伝送する。第２に、パケット交換技術は、「仮想」チャネルを利用して２点間の通信を確立する。仮想通信チャネルは複数の通信プロセスによって同時に共有され、データが伝送されるときだけ利用される。音声伝送及びデータ伝送に対する異なる要求性能が異なる設計優先順位を課すので、音声通信システム（例えば、電話）、並びに企業内電話システムのような関連する商業システム（例えば、構内交換機（ＰＢＸ）、及び自動電話着信分配（ＡＣＤ））の歴史的開発は、回線交換技術に集中してきた。逆に、データ通信システム（例えば、ローカルエリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、及びインターネット）は、主にパケット交換技術に依存してきた。その結果、別々の文化及びネットワーク構造が、リアルタイム音声通信（例えば、回線交換ネットワーク）、及び非リアルタイムデータ伝送（例えば、パケット化データネットワーク）のための設計、開発、アプリケーション、及びサポートに対して発展してきた。
【０００３】
回線交換ネットワーク化トポロジ及びパケット化ネットワークトポロジの固有の相違のために、ゲートウェイとして既知の装置が使用され、回線交換ネットワークとパケット交換ネットワークの間の信号及びデータの交換を容易にする。その種の装置の実施例は、マサチューセッツ州ウェストフォードの Sonus Networks 社に発行された米国特許第6,282,193号、及び米国特許第6,631,238号で見られる。回線交換回路は同期的方法で作動し、一般に１つの時分割多重化（ＴＤＭ）チャネルから他の時分割多重化（ＴＤＭ）チャネルへＴＤＭスイッチを使用して交換されて同期性を維持する。逆に、パケット化ネットワーク（例えば、ＩＰネットワーク、及びＡＴＭネットワーク）は非同期的方法で作動し、一般に１つのパケット化チャネルから他のパケット化チャネルへ非同期パケットスイッチを用いて交換される。そういうものであるから、同期ドメイン及び非同期ドメインの内部の交換、並びに同期ドメインと非同期ドメインの間の交差交換を容易にする従来技術のゲートウェイは、同期データに対する時分割多重化（ＴＤＭ）スイッチ、及び非同期データに対するパケットスイッチの両方を必要とした。
【０００４】
図１は、回線交換ネットワーク２０２及びパケット交換ネットワーク２０４を相互接続し、データの伝送をパケット交換ドメイン及び回線交換ドメインの内部で、及びそれらのドメイン間で容易にする従来技術のゲートウェイ装置１００を示す。図示されるように、装置１００は、パケットスイッチ２１０、時分割多重化スイッチ１１２、パケット・インターフェース論理回路２１４、及び各々がシステムのタイムスロットに関する情報のソース（又は、デスティネーション）として機能できる複数のカード２０５Ａ−２０５Ｎを含む。各カード２０５Ａ−２０５ＮのＴＤＭインターフェース論理回路２１９は、回線交換ネットワーク２０２にＴＤＭトランク２０１によって接続される。ＴＤＭトランク２０１は、標準的な電気通信インターフェースの実施例を示す。ＴＤＭインターフェース論理回路２１９は、種々の電気通信プロトコルを既知の方法で実施してデータ・ストリームを仮想ＤＳＯ回線の形式にするために使用されるフレーマ(framer)及びマッパ(mapper)を含む。ＰＡＤ論理回路２１２は、ＤＳＰを用いて既知の方法で実施されるパケット・アダプテーション論理回路として機能する。図１では、ＴＤＭハイウェイ２０９が、ＰＡＤ論理回路２１２及びＴＤＭインターフェース論理回路２１９をタイムスロット相互接続（ＴＳＩ）論理回路２１３と接続する。
【０００５】
タイムスロット相互接続論理回路２１３は、１つの仮想ＤＳＯ回線からのシリアルデータが他の仮想ＤＳＯ回線へバイト単位で切り替わることを可能にする。ＴＤＭデータ・ストリームはバイト単位で多重化された同期シリアルデータ・ストリームなので、ＴＤＭデータ・ストリームは１つのチャネルから他のチャネルへＴＤＭスイッチ１１２及び適切なタイムスロット相互接続論理回路２１３を使用して交換される。もしＴＤＭデータ・ストリームがパケット・デスティネーションに変換されるなら、タイムスロット相互接続論理回路２１３の出力は他のＴＤＭハイウェイ２０９を介してパケット・アダプテーション・レイヤ（ＰＡＤ）２１２へ提供され、パケット・アダプテーション・レイヤ（ＰＡＤ）２１２はパケットをＤＳＯデータ・ストリームから構築するために機能する。次に、パケット化データはパケットスイッチ２１０へゲートウェイ１００の内部で転送され、その後パケット・インターフェース論理回路２１４へ転送されて、パケット・ネットワーク・トポロジ２０４の内部のデスティネーションへ転送される。従って、従来技術のゲートウェイは、回線ドメインとパケット・ドメインの間で（及び、中で）データを交換するために２つのスイッチ（ＴＤＭスイッチ１１２、及びパケットスイッチ２１０の両方）を必要とする。その種の２重スイッチ・アーキテクチャは、装置のコストを増大させる。
【０００６】
図２は、（タイムスロット相互接続論理回路２１３及びＴＤＭスイッチ１１２が削除されたことを除いて、図１の装置１００に類似の）従来技術のゲートウェイ装置１５０を示す。そういうものであるから、ゲートウェイ１５０は、全ての交換をパケットスイッチ２１０を通して非同期的に実行する。ゲートウェイ装置１５０は設計が単純であるが、データの同期伝送が出来ない。図２では、ＴＤＭハイウェイ２０９は、ＰＡＤ論理回路２１２を実施するために使用されるＤＳＰを、ＴＤＭインターフェース論理回路２１９を実施するために使用されるフレーマ(framer)及びマッパ(mapper)へ直接的に接続する。
【０００７】
加えて、時間に依存するデータ（例えば、音声・画像通信）を流すためのプロトコルが存在する。その種のプロトコルの１つはソースと受信者の間に固定遅延を有する IETF Real Time プロトコル（ＲＴＰ）であるが、その種の遅延は未知量である。未知の固定遅延のために、非同期媒体によってデータを効率的に伝送することは可能ではない。
【０００８】
以前は、種々の試みが、広域ネットワーク全体の同期問題を解決するために、情報の帯域分布の範囲外で可能であるプロトコルを通して行われた。その種のプロトコルの１つが、 Baldwin 等に発行され Lucent Technologies 社に譲渡された米国特許第5,936,967号「Multi-Channel Broadband Adaptation Processing」に記載される。（ＡＡＬ１として既知の）その種の他のプロトコルは、「ITU-T I.363.1 B-ISDN ATM Adaptation Layer specification: Type 1 AAL」, August, 1996、及び 「ATM AAL1 Dynamic Bandwidth Circuit Emulation Service, AF-VTOA-0085.000」 July, 1997 と表題を付けられた公開仕様で定義される。（ＡＡＬ２として既知の）ＡＡＬ１プロトコルに対する改訂が、「ITU-T I.363.2, ATM Adaptation Layer 2 (AAL2)」と表題を付けられた公開仕様で定義される。しかし、上記の識別されたプロトコルは広域アプリケーションと一緒に使用される対象であり、同期情報を含まない。従って、これらのプロトコルは、既知の一定で同じ遅延を有する非同期媒体全体のデータの内部同期には適当でない。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従って、データを回線ドメインとパケット・ドメインの間で（及び、中で）効率的に交換できるゲートウェイ装置及びプロトコルに対する必要性が存在する。
【００１０】
更に、既知の一定で同じ遅延を有する非同期媒体全体のデータの内部同期に適当であるゲートウェイ装置及びプロトコルに対する必要性が存在する。
【００１１】
更に、回線ドメインとパケット・ドメインの間で（及び、中で）データを効率的に交換できるゲートウェイ装置及びプロトコルに対する必要性が存在する。
【００１２】
更に、非同期データ及び同期データの両方を、単一のスイッチを利用して交換できるゲートウェイ装置及びプロトコルに対する必要性が存在する。
【００１３】
更に、全ての同期データ及び非同期データが、データの効率的伝送を固定遅延で非同期媒体を通して可能にする共通のプロトコルを使用してフォーマットされるゲートウェイ装置及びプロトコルに対する必要性が存在する。
【００１４】
更に、全ての同期データ及び非同期データが、データが同期情報によって非同期媒体を通して伝送されることを可能にする共通のプロトコルを使用してフォーマットされるゲートウェイ装置及びプロトコルに対する必要性が存在する。
【００１５】
更に、装置のコストを減少させるゲートウェイ装置に対する必要性が存在する。
【課題を解決するための手段】
【００１６】
本発明は、ＴＤＭ−ＴＤＭタイムスロット交換、及びＴＤＭ−パケット・タイムスロット交換の両方を、ゲートウェイの内部で単一のパケットスイッチを使用して可能にする装置及び技術を開示する。パケットスイッチが、（ＴＤＭ−ＴＤＭ、及びＴＤＭ−パケットを含む）全ての交換を実行する。パケットスイッチは本来的に非同期であり、ＴＤＭドメインから来たデータは同期であるので、同期アグリゲーション(Aggregation)論理回路（ＳＡＬ）と呼ばれる特別な回路が、同期データの系統的フォーマット及び同期的伝送を非同期スイッチ全体で容易にする。ゲートウェイ装置は、互いに（及び、ネットワークと）同期してソース・サーバ・カードとデスティネーション・サーバ・カードの間でのタイムスロット交換を可能にする複数のネットワーク・サーバ・カードを含む。同期論理回路は、シリアル−パラレル・データ変換、及びサブパケット化が起こる同期インターバルの定数を定める特別なクロック信号を生成する。
【００１７】
本発明のプロトコルにより、（より多くのソース・タイムスロットを示す）同期データの複数のストリームが、シリアル−パラレル変換器を使用して、各々が複数バイトを有する複数のサブパケットに変換される。各サブパケットは、単一のソース・タイムスロットに関連する。次に、サブパケットは、タイムスロット・パケット・バッファとして働くイングレス(ingress)・データメモリに記憶される。ネットワーク・サーバ・カードの内部のプロセッサは、ソース・タイムスロットをデスティネーション・タイムスロット及び関係するエグレス(egress)・キューと突き合わせるコンテキスト・テーブルを管理する。その種の「コンテキスト」情報は、テーブルに記憶される。コンテキストは、何れのスイッチ・ポート・データが送信されるかを制御するために使用されるデスティネーション・キューＩＤ、及びデータを受信するデスティネーション・カードでタイムスロットを選択するために使用されるデスティネーション・タイムスロットＩＤを含む。
【００１８】
同期インターバル中にアセンブルされた全てのサブパケット、及び各コンテキスト・データは１又は複数のイングレス(ingress)・キューへ転送され、パケットにアセンブルされる。イングレス(Ingress)制御ステート・マシン論理回路は、完成したサブパケットのイングレス・データメモリからイングレス(ingress)・キューへの適時な読み出しを制御する。もしサブパケットに関連するイネーブル・ビットがイネーブルされなければ、データは廃棄される。さもなければ、サブパケット、及びそれらに関連するコンテキストは、イングレス・キューの中でパケットに形成される。加えて、各パケットは、サブパケットが創出される同期インターバルを識別するデータ（例えば、同期タグ）、及びパケットに含まれるサブパケットの数を識別するデータに関連する。一度サブパケットが同期インターバル中に形成されたら、イングレス・キューにパケットへの形成のために移転したら直ぐに、パケットの形成、及びイングレス・キューからエグレス(egress)・キューへの非同期ポートを介するパケットの伝送が、非同期クロックを使用して非同期的に起こる。
【００１９】
図示される実施例では、イングレス・キュー識別子は、エグレス・キュー識別子、及び非同期スイッチのポート識別子と１対１対応を有する。従って、たった１つの識別変数が、イングレス・キュー、エグレス・キュー、及びデータが提供されるスイッチ・ポートを識別するサブパケットに関連するコンテキストの中で必要である。データは非同期的にスイッチを介してエグレス・キューへ送信され、ここから、エグレス(egress)・ステート・マシン論理回路の制御下で、パケットは個々のサブパケットに逆アセンブルされて、システム内部の各タイムスロットに対する「プレイアウト(play-out)・バッファ」と称する分割(partitioned)メモリのセグメントを含むエグレス(egress)・データメモリに読み出される。
【００２０】
特定のサブパケットに関連するデスティネーション・タイムスロット識別子データは、エグレス(egress)・データＲＡＭの中の何れのプレイアウト・バッファにサブパケットが読み出されるかを識別する。同期タグは、サブパケットが書き込まれるプレイアウト・バッファ内部の位置を決定する。図示される実施例では、たった４つの異なる同期インターバルが存在する。サブパケットは、２つのインターバル・オフセットを有する各プレイアウト・バッファの１つの位置に読み出される。例えば、同期インターバル０の間に構築されたサブパケットは、プレイアウト・バッファの内部に同期インターバル２で配置される。この方法では、サブパケットは常に再生されるか、又はパラレル・データからシリアル同期データへ固定遅延（即ち、２つの同期インターバル）で変換される。この方法では、システム設計者が、同期インターバルの数、及び非同期媒体を通して伝送される同期データに必要なオフセットを最適化する。その結果、イングレス側からの同期データが、非同期スイッチを通して、エグレス側へ一定の固定遅延で伝送される。そういうものであるから、データの同期性が維持される。ソースにおける同期タグの使用が、デスティネーションにおけるコンテキストに対する必要性を除去する。
【００２１】
本発明の第１の側面によると、データを処理するための方法は、（ａ）ソース・タイムスロットに関連する同期シリアルデータのストリームを複数のパラレル・データ・ユニットに変換すること、（ｂ）少なくとも１つのサブパケットをメモリの中で複数のパラレル・データ・ユニットから構築すること、（ｃ）デスティネーション・タイムスロット識別子を含むメモリ・コンテキスト情報を、ソース・タイムスロットに関連する各サブパケットに対して記憶すること、（ｄ）少なくとも１つの同期タグ、複数のサブパケット、及び各サブパケットに関連する各メモリ・コンテキスト情報を含むデータパケットをメモリの中で構築すること、並びに（ｅ）データパケットを受信機構に提供することを含む。
【００２２】
本発明の第２の側面によると、データを処理するための方法は、（ａ）各々がソース・タイムスロットに関連する複数の同期シリアルデータ・ストリームを複数のパラレル・データ・ユニットに変換すること、（ｂ）イングレス・メモリの中で、少なくとも１つのサブパケットを、複数のソース・タイムスロットの１つに関連するパラレル・データ・ユニットから構築すること、（ｃ）サブパケットに関連し、デスティネーション・タイムスロット識別子、キュー識別子、及びイネーブル変数を含むイングレス・コンテキスト・データを検索すること、（ｄ）各キューの中で、データパケットを、サブパケット、及び複数のソース・タイムスロットに関連するイングレス・コンテキスト・データから構築し、パケットの内部のサブパケットは同期インターバルの内部で完成され、データパケットが、ｉ）少なくとも１つの同期タグ、ｉｉ）パケットの中に含まれるサブパケットの数を識別するデータを更に含むこと、並びに（ｅ）データパケットが完成したら直ぐに、データパケットを受信機構へ提供することを含む。
【００２３】
本発明の第３の側面によると、データを処理するための方法は、（ａ）同期信号を同期ネットワーク・インターフェース及び非同期ネットワーク・インターフェースの中でルーティングするための非同期スイッチ及び同期論理回路を有する装置を提供すること、（ｂ）複数の同期シリアルデータ・ストリームを異なるソース・タイムスロットから受信すること、（ｃ）複数の同期シリアルデータ・ストリームの１つ、及び各サブパケットに関連する各メモリ・コンテキストから各々が導出された複数のサブパケットからデータパケットを構築すること、並びに（ｄ）パケットを非同期スイッチを通して非同期ネットワーク・インターフェース、及び同期ネットワーク・インターフェースの１つにルーティングすることを含む。
【００２４】
本発明の第４の側面によると、データを処理するための方法は、（ａ）複数のサブパケット、及び複数のソース・タイムスロットに関連するイングレス・コンテキスト・データを含むデータパケットを受信し、データパケットの内部のサブパケットは同期インターバルの内部で完成され、データパケットがｉ）同期インターバルを識別する少なくとも１つの同期タグ、ｉｉ）パケットの中に含まれるサブパケットの数を識別するデータを更に含むこと、（ｂ）サブパケットを、エグレス・メモリの内部の複数のプレイアウト・バッファの１つに、サブパケットに関連するコンテキスト・データに基づいて書き込むこと、（ｃ）サブパケットを、複数のプレイアウト・バッファの１つの内部の位置に、同期タグによって識別された同期インターバル、及び固定アドレス・オフセットに従って書き込むこと、並びに（ｄ）プレイアウト・バッファからサブパケットを連続的に読み出すことを含む。
【発明を実施するための最良の形態】
【００２５】
本発明の実施例による装置が、図３に示される。装置２００は回線交換ネットワーク２０２とパケット交換ネットワーク２０４を相互接続し、パケット交換ドメインと回線交換ドメインの内部の、及びそれらのドメインを介するデータの伝送を容易にする。装置２００は複数のネットワーク・サーバ・モジュール２０６Ａ−２０６Ｎ、同期論理回路２０８、及び非同期スイッチ２１０を含む。装置２００は、非同期スイッチ２１０をパケット・ネットワーク２０４に相互接続するパケット・インターフェース論理回路２１４を更に含む。
【００２６】
システムを通して遅延を制御し、別々のタイムスロットからの配列を維持するために同期は重要なので、装置２００の同期論理回路２０８は特別な同期クロック信号を全てのサーバ・モジュール２０６Ａ−２０６Ｎに供給する。その種の同期クロック信号は、ネットワーク・クロック信号（又は、非同期スイッチ２１０によって使用されるクロック信号）とは異なる。図示される実施例では、同期論理回路２０８は装置２００の内部の別々のカードで実施されて、特別な同期クロックを生成し、図示される実施例では、特別な同期クロックは約５００Ｈｚの周波数を有し、回線交換ネットワーク２０２の内部の同期ディジタル階層から導出され、及び／又は回線交換ネットワーク２０２の内部の同期ディジタル階層に同期する。以下で説明するように、このクロック信号周波数は、同期インターバル（即ち、以下で更に詳細に説明するように単一のサブパケット（例えば、４バイト）を構成するのに必要である均等な時間）を定める。加えて、同期論理回路２０８は、タイマによって利用される第２の高速なクロック信号を各サーバ・モジュール２０６Ａ−２０６Ｎで生成し、内部クロック信号を各サーバ・モジュールの内部で生成する。また、システム設計者が選択した他のクロック信号周波数も、本発明による同期インターバルを定めるために使用される。
【００２７】
図３に示されるように、各サーバ・モジュール２０６Ａ−２０６Ｎは、ＴＤＭインターフェース論理回路２１９、ＴＤＭハイウェイ２０９、同期アグリゲーション論理回路（ＳＡＬ）２２０、及びパケット・アダプテーション（ＰＡＤ）論理回路２１２を含む。各カード２０６Ａ−２０６ＮのＴＤＭインターフェース論理回路２１９は、回線交換ネットワーク２０２へＴＤＭトランク２０１によって接続される。前記のように、ＴＤＭトランク２０１は標準的な電気通信インターフェースの実施例を示す。図３から図４に示されるＴＤＭインターフェース論理回路２１９は、汎用構成要素（例えば、フレーマ(framer)、マッパ(mapper)、等）を用いて既知の方法で実施され、データをネットワーク２０２から標準的な電気通信インターフェース（例えば、ＯＣ３，ＤＳ３，Ｔ１，Ｅ１，Ｅ３等）へフォーマットして、複数の仮想ＤＳＯリンクをもたらす。図１から図４では、ＴＤＭインターフェース論理回路２１９は、データ・フレーマ(data framer)として実施される。各ＤＳＯリンク（又は、チャネル）は、単一のバイトをフレーム毎に生成する。図示される実施例では、各フレームは１２５マイクロ秒である。各ＤＳＯリンクは６４ｋビット同期バイトのシリアル伝送媒体であり、図示されるように、時分割多重（ＴＤＭ）論理回路２１８へＴＤＭハイウェイ２０９によって接続される。以下で説明するように、ＴＤＭ論理回路２１８は、同期アグリゲーション論理回路（ＳＡＬ）論理回路２２０による使用のために、シリアル同期データ・ストリームをパラレル・バイトに変換する。ＳＡＬ論理回路２２０からの出力は、パケット・アダプテーション（ＰＡＤ）論理回路２１２へ供給されるか、又は非同期スイッチ２１０へ直接的に転送される。図３から図４に示されるＰＡＤ論理回路２１２は、ＤＳＰを用いて既知の方法で実施されるパケット・アダプテーション論理回路として機能する。
【００２８】
［同期アグリゲーション(Aggregation)論理回路］
図４は、各ネットワーク・サーバ２０６Ａ−２０６ＮのＳＡＬ論理回路２２０の要素を詳細に示す。図４では、（パケットスイッチ２１０、同期論理回路２０８、マイクロプロセッサ２２８、ＴＤＭインターフェース論理回路２１９、及びＰＡＤ２１２を除く）全ての論理回路が、同期アグリゲーション論理回路（ＳＡＬ）２２０の一部である。論理回路モジュール２１８Ａ，２１８Ｂ，２１８Ｃ，及び２１８ＤはＳＡＬ論理回路２２０の一部であり、ＴＤＭハイウェイ２０９にインターフェースする。
【００２９】
各２１８Ａ及び２１８Ｃは、各々がレジスタ２３６Ａ−２３６Ｎを有する複数のシリアル−パラレル変換器２３４Ａ−２３４Ｎを順に含む。モジュール２１８Ａの各変換器２３４は、ＴＤＭインターフェース論理回路２１９に接続される。モジュール２１８Ｃの各変換器２３４は、ＰＡＤ論理回路２１２に接続される。インターフェース論理回路モジュール２１８Ａ，２１８Ｃは、各シリアル同期データ・ストリームを、ＤＳＯリンクから複数のパラレル・データ・ユニットに変換する。図示される実施例では、パラレル・データ・ユニットは８−ビット／バイトのサイズであるが、（４−ビット、１６−ビット、又は３２−ビット、等を含む）他のサイズのデータ・ユニットも同様に利用される。レジスタ２３６Ａ−２３６Ｎは、多重化装置２３８に接続される。多重化装置２３８の出力は、ＴＤＭインターフェース論理回路モジュール２１８の出力として働いて、ＳＡＬ論理回路２２０に接続される。
【００３０】
以下で更に詳細に説明するように、図示される実施例では、論理回路モジュール２１８Ａ，２１８Ｂ，２１８Ｃ，及び２１８Ｄに加えて、ＳＡＬ論理回路２２０は、イングレス・データメモリ２４０、イングレス制御論理回路２４２、イングレス・コンテキスト・メモリ２４４、イングレス・キュー２５０Ａ−２５０Ｎ、エグレス・キュー２５４、制御論理回路２５５、イングレス・パケット制御ステート・マシン論理回路２４３、エグレス・パケット制御ステート・マシン論理回路２５７、多重化装置２５８、及びエグレス・データメモリ２６０を含む。
【００３１】
多重化装置２３８のＤＳＯバイト形式の出力は各ＴＤＭ論理回路モジュール２１８Ａ，２１８Ｃの出力として働き、イングレス制御論理回路２４２の制御下でイングレス・データメモリ２４０にクロック同期入力する。図示される実施例では、制御論理回路２４２は、ハードウェア・ステート・マシンとして実施される。イングレス制御論理回路２４２は複数のカウンタを利用して適切なインデックス（又は、メモリ・アドレス）をイングレス・データメモリ２４０に対して連続的に生成し、ネットワーク・サーバ２０６の内部のタイムスロット毎のサブパケットが、同期インターバル毎に生成される。図示される実施例では、イングレス・データメモリ２４０は、１組のデュアルポート・データＲＡＭを用いて実施される。メモリ２４０が単一の分割メモリ（又は、複数のメモリ素子）を用いて実施できることは、当業者には明らかである。
【００３２】
ＳＡＬ論理回路２２０からのデータ出力は、非同期スイッチ２１０によって受け入れ可能な形式にデータをフォーマットするスイッチ・インターフェース２３０に供給される。図示される実施例では、スイッチ・インターフェース２３０、及び非同期スイッチ２１０は、 Xilinx 社の書替え可能なゲートアレイ(field programmable gate array)、及び標準的なメモリ素子、又は市販の非同期スイッチ製品、及びインターフェースを用いて実施される。
【００３３】
図５は、本発明によるイングレス・データメモリ２４０の中のシリアル同期データ・ストリーム３００とシリアル同期データ・ストリーム３００から形成されるサブパケットの関係を示す。図５では、チャネルに対する略号（Ｃｈ）は、タイムスロットを意味するのと同義的に使用される。前記のように、各ＤＳＯリンクが、シリアル同期データ・ストリームを提供する。このデータ・ストリームの内部では、複数のソース・タイムスロットからのデータが存在する。例えば、約１６，０００個のタイムスロットを管理できるネットワーク・サーバ・モジュール２０６では、約１２８本のＤＳＯリンクが存在し、各ＤＳＯリンクは約１２８個のタイムスロットに対するシリアルデータをシステムの内部に収容する。任意の数のＤＳＯリンクがサーバ・モジュール２０６で使用できること、及び任意の数のタイムスロットがシステムの内部でＤＳＯリンクによりシステム設計者が決定したように処理できることは、当業者には明らかである。
【００３４】
概念化されたデータ・ストリーム３００は、同期シリアル入力（ビット０−７）、及び本発明によるＴＤＭ論理回路２１８Ａ（又は、２１８Ｃ）の変換された出力を示す。特に、ストリーム３００は、各チャネル（又は、ＴＤＭ論理回路２１８のモジュールによって処理されるタイムスロット）に対してバイト−０、バイト−１、バイト−２、バイト−３、バイト−Ｎを含む。しかし、その種のバイトはシーケンシャルではなく、図示されるように、他のタイムスロットのバイトと交互配置される。特に、全てのチャネル１からＮに対するバイト−０が読み出されて変換され、次に全てのチャネル１からＮに対するバイト−１が続き、次に全てのチャネル１からＮに対するバイト−２が続く。イングレス・データメモリ２４０の内部では、同じソース・タイムスロットからの複数バイトが、サブパケットにアセンブルされる。以下で説明するように、この方法では、複数のチャネル（又は、タイムスロット）に対する複数のサブパケットが、同時に、同期インターバルの中でアセンブルされる。
【００３５】
図５に示されるように、ストリーム３００からの（Ｃｈ−０，バイト−０に対応する）バイト３０２ＡはＴＤＭ論理回路２１８によってフォーマットされ、イングレス・データメモリ２４０へ多重化入力されて、（Ｃｈ−０，サブパケット−０を表す）サブパケット３１０Ａの一部になる。同様に、（Ｃｈ−１，バイト−０を表す）バイト３０４ＡがＴＤＭ論理回路２１８によって生成され、イングレス・メモリ２４０に（Ｃｈ−１，サブパケット−０を表す）サブパケット３１２Ａの一部として多重化入力される。同様に、バイト３０６Ａ，３０８Ｎが、イングレス・メモリ２４０にサブパケット３１４Ａ，３１６Ａの一部として各々多重化入力される。一度、各チャネルＣｈ−０からＣｈ−Ｎに対するバイト−０が各サブパケットに読み出されたら、各チャネルＣｈ−０からＣｈ−Ｎに対するバイト−１が、サブパケットの構築の間にイングレス・データメモリ２４０へ多重化入力される。特に、（Ｃｈ−０，バイト−１を表す）バイト３０２ＢがＴＤＭ論理回路２１８によって生成され、メモリ２４０へサブパケット３１０Ａの一部として多重化入力される。同様に、（Ｃｈ−１，バイト−１を表す）バイト３０４ＢがＴＤＭ論理回路２１８によって生成され、イングレス・メモリ２４０へサブパケット３１２Ａの一部として多重化入力される。この処理は、各サブパケット３１２Ａ，３１４Ａ，及び３１６Ａに対して継続する。図示される実施例では、各サブパケットは４バイトを含む。サブパケットの各バイトは、同じソース・タイムスロットに関連するデータをシステムの内部に含む。例えば、サブパケット３１０Ａは、（Ｃｈ−０のバイト−０からバイト−３を表す）バイト３０２Ａ−３０２Ｄを含む。サブパケット３１２Ａは、（Ｃｈ−１のバイト−０からバイト−３を表す）バイト３０４Ａ−３０４Ｄを含む。サブパケット３１４Ａは、（Ｃｈ−２のバイト−０からバイト−３を表す）バイト３０６Ａ−３０６Ｄを含む。同じソース・タイムスロットに対する複数のサブパケットは、イングレス・データメモリ２４０の中でアセンブルされる。例えば、サブパケット３１０ＢはＣｈ−０のバイト−４からバイト−７を含み、一方、サブパケット３１２ＢはＣｈ−１のバイト−４からバイト−７を含む。（４−バイト、８−バイト、又は１６−バイト、等を含む）他のサイズのサブパケットが同様に利用できることは、当業者には明らかである。
【００３６】
イングレス・データメモリ２４０の内部におけるサブパケットの構築は、現在の同期インターバルが終了するまで続く。図示された実施例では、ＴＤＭ論理回路２１８は、イングレス・データメモリに供給される１つのバイトを１２５マイクロ秒毎に生成する。従って、４バイトのサブパケットがイングレス・メモリ２４０の中でアセンブルされるインターバルは、少なくとも５００マイクロ秒であり、５００マイクロ秒は、装置２００の同期ドメインの内部の１つの同期インターバルの持続時間でもある。その後、以下で更に詳細に説明されるように、サブパケットはイングレス・キューに転送され、パケットにアセンブルされる。
【００３７】
ＳＡＬ論理回路２２０は、データをソース・タイムスロットからデスティネーション・タイムスロットにネットワーク・サーバ・モジュール２０６の内部でルーティングするための情報を維持するために使用されるイングレス・コンテキスト・メモリ２４４を更に含む。図示される実施例では、各ネットワーク・サーバ・モジュール２０６Ａ−２０６Ｎは、約１６，０００個までのタイムスロットを収容できる。従って、装置２００は、約１６，０００＊Ｎ個までのタイムスロット（ここで、Ｎは装置２００の内部に形成されたネットワーク・サーバ・モジュール２０６の数である）を収容できる。ネットワーク・サーバ２０６のプロセッサ２２８は、サーバ・コンテキスト・テーブルを、ソース・タイムスロットをデスティネーション・タイムスロット（及び、それらの相対的なイングレス／エグレス・キュー）と突き合わせるイングレス・メモリ２４４の中で維持する。イングレス・コンテキスト・メモリ２４４の構造及び内容が、図６に示される。図示されるように、イングレス・データメモリ２４０の中でアセンブルされるデータのサブパケットに関連するソース・タイムスロット識別子３２０が、イングレス・コンテキスト・メモリ２４４へのインデックスとして使用される。ソース・タイムスロット識別子３２０が、イングレス・パケット制御論理回路２４３によって生成される。システムの各ソース・タイムスロットに対して、イネーブル変数３２２、デスティネーション・タイムスロット識別子３２４、及びキュー識別子３２６を含む関連データの対応セットが存在する。
【００３８】
イングレス・コンテキスト・メモリ２４４の中のデータは、装置２００の内部の（又は、装置２００に関連する）中央プロセッサで実行されるプロトコル・ソフトウェアによって書き込まれ更新される。プロトコル・ソフトウェアは、装置２００の内部の種々のネットワーク・サーバ・モジュール２０６の間で処理される全てのタイムスロットを追跡して突き合わせる。その種のプロトコル・ソフトウェアの実施は当業者によって理解されるので、簡潔さのために詳細には記載しない。ネットワーク・サーバ・モジュール２０６のプロセッサ２２８は、イングレス・データメモリ２４０でアセンブルされた各サブパケットに対するイングレス・コンテキスト・メモリ２４４の内部で、コンテキスト・データにアクセスする。図示される実施例では、イネーブル変数３２２は単一ビットで実施され、単一ビットのバイナリ値は、データ・ストリームが他のシステムを通して転送されるか否かを決定する。図示された実施例では、（バイナリ・アドレスで実施される）デスティネーション・タイムスロット識別子３２４が、同じ（又は、他の）ネットワーク・サーバ・モジュール２０６のＳＡＬ論理回路２２０のデコーディング部分によってサブパケットが書き込まれるタイムスロットを識別する。キュー識別子３２６は、サブパケットを含むパケットを非同期スイッチを介してルーティングするために使用される１又は複数のキューを識別し、ビット・マスク（又は、バイナリ・アドレス）を用いて実施される。
【００３９】
ここで記載されるように、システムの内部の異なるソース・タイムスロットに関連する複数のサブパケットが、イングレス・データメモリ２４０の内部で、特定の同期インターバルの間にアセンブルされる。同期インターバルの終わりに、サブパケットが、イングレス・キュー２５０Ａ−２５０Ｎの１つに、イングレス・パケット制御論理回路２４３の制御下で、システムの内部で非同期スイッチ２１０若しくは非同期信号源の何れかによって供給される非同期クロック信号（又は、装置２００が接続されるネットワークの内部のマスタ・クロック）を使用して書き込まれる。この方法では、サブパケットの形成は同期ドメインの中で起こり、一方、パケット３３０の形成は非同期ドメインの中で起こる。イングレス・キュー２５０Ａ−２５０Ｎの内部では、パケットはイングレス・データメモリ２４０から受信したサブパケットから形成される。図示される実施例では、３２個の別々のイングレス・キューが利用される。任意の数のイングレス・キューが設計者の判断と非同期スイッチの能力によって使用されることは、当業者には明らかである。
【００４０】
図７は、イングレス・キュー２５０、及び本発明によってその中に構築されたパケット３３０のフォーマットを概念的に示す。図示されるように、パケット３３０は複数のサブパケット３１０から３１６、及び各サブパケットに関連するデスティネーション・タイムスロット識別子３２４を含む。加えて、パケット３３０は、同期タグ３３２を含むパケット・ヘッダ３３６を含む。以下で説明するように、同期タグ３３２は、そこに含まれるサブパケットが生成されて、デスティネーション・サーバ・モジュール２０６での再生のために別々のＤＳＯリンクからのバイトを整列されるために使用される同期インターバルを識別する。加えて、パケット・ヘッダ３３６は、その特定のパケットに含まれるサブパケットの数を識別するサブパケット・カウント変数３３４を更に含む。図示される実施例では、各パケットは９個までのサブパケットを保持できる。９個より少ないチャネルが所定のソース・サーバ・モジュールからデスティネーション・サーバ・モジュールへ送信されるときに追加遅延が導入されないことを補償するため、空のパケットは同期インターバルの終わりには転送されない。各パケット・ヘッダに含まれるサブパケット・カウントは、デスティネーション・サーバ・モジュールがパケットは一杯か否かを決定することを可能にし、もし一杯でなければ、いくつのサブパケットがそこに含まれるかを決定することを可能にする。９番目のサブパケットがパケット３３０に書き込まれるとき、パケット・ヘッダは更新されて、その中に含まれるサブパケットの数を示す。図示される実施例では、パケット３３０の中の全てのサブパケットが同じ同期インターバル（例えば、各５００マイクロ秒ウィンドウ）の中で生成される。イングレス・キュー２５０に関連するパケット・タイマ（例えば、ホールドダウン(hold down)・タイマ）は、サブパケットを新しい同期インターバルから受信する前に、空のパケットが非同期スイッチ２１０へ転送されることを強制するために使用される。この方法では、パケットは、単一同期インターバルからのサブパケットだけを含む。パケット・ヘッダ３３６は、非同期スイッチ２１０の何れのポートにパケットがルーティングされるかを識別するデスティネーション・キュー・ビットマップ３３８を更に含む。
【００４１】
イングレス・キュー２５０Ａ−２５０Ｎの１つの内部でのパケット３３０の構築に続き、パケットはソース・サーバ・モジュール２０６のスイッチ・インターフェース２３０を介してスイッチ２１０の第１ポートに非同期的に送信される。次に、パケット３３０は、非同期スイッチ２１０の機構を通して、スイッチ２１０の第２ポートにルーティングされる。次に、パケットは、デスティネーション・サーバ・モジュール２０６の他のスイッチ・インターフェース２３０を通って、そこに含まれるエグレス・キュー２５４まで渡される。概念的には、エグレス・キュー２５４の構造、及びその中のパケット３３０の配置は、図７を参照して記載されたイングレス・キュー２５０と実質的に類似である。パケット３３０はエグレス・キュー２５４の内部で逆アセンブルされ、そこに含まれるサブパケットは、エグレス・パケット制御論理回路２５７及び制御論理回路２５５の制御下で動作する多重化装置２５８を介してエグレス・データメモリ２６０へ非同期的に書き込まれる。図示される実施例では、制御論理回路２５７は、サブパケットをエグレス・キュー２５４からエグレス・データメモリ２６０への書き込みをイネーブルするハードウェア・ステート・マシンとして実施される。
【００４２】
図８は、エグレス・メモリ２６０の構造及び内容を概念的に示す。図示される実施例では、エグレス・データメモリ２６０は、１組のデュアルポートＲＡＭを用いて実施される。メモリ２６０が単一の分割メモリ（又は、複数のメモリ素子）を用いて実施できることは、当業者には明らかである。エグレスＴＤＭ制御論理回路２５６は、パケット３３０の中のサブパケットに関連するコンテキスト情報から、エグレス・データメモリ２６０の中の何処にサブパケットが書き込まれるかを決定する。メモリ２６０は、システムの内部に存在する各タイムスロットに対する分割領域を含む。その種の分割領域は、ここではエグレス・メモリ２６０の内部の「プレイアウト」・バッファ２６２Ａ−２６２Ｎと称される。図示される実施例では、エグレス・データメモリ２６０は、１組のデュアルポート・データＲＡＭを用いて実施される。メモリ２６０が単一の分割メモリ（又は、複数のメモリ素子）を用いて実施できることは、当業者には明らかである。
【００４３】
図９は、本発明によるプレイアウト・バッファ２６２の構造、及びその中のデータの配置を概念的に示す。各プレイアウト・バッファ２６２の内部では、同期論理回路２０８によって生成された各同期インターバルに対する配置は、特定のロケーション（又は、同期位置）である。図示される実施例では、各デスティネーション・タイムスロットに関連するプレイアウト・バッファ２６２は、４個のサブパケットを保持し、各々が別々の同期インターバルの間に再生される。従って、プレイアウト・バッファは、４個の同期インターバルの再生データのための能力を有する。
【００４４】
本発明により生成された全てのパケットは、サブパケットが生成された同期インターバルを示す２ビット同期タグでスタンプされる。固定値（例えば、３（０，１，２，３，０，１，．．．））に達した後、同期タグの値は折り返す。同期タグは、同時に受信したバイトを何れのサブパケットが含むかを決定するために使用される。論理回路２０８によって供給される同期クロック信号のために、サブパケットが生成されたときに読み出されるプレイアウト・バッファ・ロケーション（即ち、基準同期インターバル）が知られる。ソースにおける同期タグの使用が、デスティネーションにおけるコンテキストに対する必要性を除去する。エグレス制御論理回路２５６はパケット３３０に関連する同期タグを利用して、何れの同期位置に特定のプレイアウト・バッファ・サブパケットが書き込まれるかを決定する。
【００４５】
サブパケットは、固定オフセットを有するプレイアウト・バッファ・ロケーションの内部のキューに入れられる。図では、サブパケットは、パケット（即ち、各パケットの同期タグの値）を受信したときに再生されたインターバルの後に２個の同期インターバルだけプレイアウト・バッファのキューに入れられる。これは、ソース・モジュール２０６からデスティネーション・モジュール２０６に送信されるサブパケットに対して２個の同期インターバルを許容する。例えば、図９では、同期インターバル０の間に構築されたタイムスロット１，サブパケットＮ＋２が、同期インターバル２（即ち、２個の同期インターバル後）に関連する位置のタイムスロット１に関連するプレイアウト・バッファ２６２に読み出される。同様に、同期インターバル１の間に構築されたタイムスロット１，サブパケットＮ＋３が、同期インターバル３（即ち、２個の同期インターバル後）に関連する位置のタイムスロット１に関連するプレイアウト・バッファ２６２に読み込まれる。この方法では、データが、非同期媒体（例えば、スイッチ）を介して既知の遅延（２個の同期インターバル）で送信される。同期インターバル・オフセットが装置２００を通して遅延に順応するように選択されることは、当業者には明らかである。この固定オフセット遅延は、ソース・サーバ・モジュールからデスティネーション・サーバ・モジュールへのデータの移動におけるシステムの変化によるプレイアウト・バッファのアンダーランを防止する最小値に設定される。更に、その種の技術は、１つのＤＳＯチャネルから受信したデータが、他のＤＳＯチャネルから同時に受信したデータと、ＴＤＭ論理回路２１８によってデスティネーション・サーバ・モジュール２０６で再生されるときに整合されることを保証する。
【００４６】
エグレス・メモリ２６０のプレイアウト・バッファ２６２Ａ−２６２Ｎからのサブパケットは、エグレス制御論理回路２５６の制御下でＴＤＭ論理回路２１８へ同期的に読み出される。図示される実施例では、エグレスＴＤＭ制御論理回路２５６は、複数のカウンタを利用して適切なインデックス（又は、メモリ・アドレス）をエグレス・メモリ２６０の中のプレイアウト・バッファ２６２に対して連続的に生成するハードウェア・ステート・マシンとして実施され、タイムスロット毎（例えば、プレイアウト・バッファ２６２毎）のサブパケットが、ネットワーク・サーバ２０６の内部で同期インターバル毎に読み出される。
【００４７】
図４に示されるように、各ＴＤＭ論理回路２１８Ｂ，２１８Ｄは、パラレル−シリアル変換器２３５Ａ−２３５Ｎを各々が有する複数のレジスタ２３６Ａ−２３６Ｎを順に含む。レジスタ２３６とＴＤＭ論理回路２１８Ｂの変換器２３４のシーケンシャルな各ペアは、ＴＤＭ論理回路２１９に接続される。ＴＤＭ論理回路２１８Ｂは、エグレス・メモリ２６０からの各パラレル・データ・ユニット（又は、バイト）を、データ・フレーマ(data framer)ＴＤＭ論理回路２１９に供給されるシリアル同期データ・ストリームに変換する。ＴＤＭ論理回路２１８Ｄのレジスタ２３６と変換器２３４のシーケンシャルな各ペアは、ＰＡＤ論理回路２１２に接続される。ＴＤＭ論理回路２１８Ｄは、エグレス・メモリ２６０からの各パラレル・データ・ユニット（又は、バイト）を、更に転送するためのＰＡＤ論理回路２１２の中のＤＳＰに供給されるシリアル同期データ・ストリームに変換する。
【００４８】
装置２００の機能要素、及びサーバ・モジュール２０６を詳細に記載したが、図１０Ａ及び図１０Ｂは本発明によるプロトコルを概念的に示す。プロトコルは、ソース・タイムスロットからのシリアル時分割多重化データのパケットへの変換、非同期媒体を介するパケットの伝送、及びパケット化データのデスティネーション・タイムスロットに供給するためのシリアル時分割多重データへの再変換を必要とする。前記のように、完成したシステムでは、複数のソース・タイムスロットからのシリアルデータを収容するサーバ・モジュール２０６の各ＤＳＯリンクを有する多数のタイムスロットが存在する。
【００４９】
図１０Ａでは、（より多くのソース・タイムスロットを示す）シリアル同期データ２２５Ａ−２２５Ｎの複数のストリームがＤＳＯリンクによって受信され、ＴＤＭ論理回路２１８Ａ，２１８ＣによってＤＳＯバイト形式のパラレル・データ・ユニット（又は、バイト）２３５Ａ−２３５Ｄに変換される。次に、バイト２３５Ａ−２３５Ｄはイングレス・データメモリ２４０に多重化入力され、ソース・タイムスロットに関連する複数のバイトは、サブパケット２４５Ａ−２４５Ｄにアセンブルされる。以前に説明したように、複数のサブパケットが同時に同期インターバルの内部で構築され、イングレス・データメモリ２４０がタイムスロット・サブパケット・バッファとして機能することを可能にする。イングレス・コンテキスト・メモリ２４４は、サブパケット２４５Ａ−２４５Ｄにそれぞれ関連する（制御情報、及びルーティング情報を含む）コンテキスト・データ２５５Ａ−２５５Ｄを記憶する。前の同期インターバルの間にイングレス・データメモリ２４０の中でアセンブルされたサブパケット２４５Ａ−２４５Ｄが、各イングレス・コンテキスト・データ２５５Ａ−２５５Ｄと一緒に、サブパケットがパケット２６５（例えば、固定長パケット）に転送されるイングレス・キュー２５０Ａ−２５０Ｎの１つへ非同期的に転送される。サブパケットに関連するコンテキストの中のキュー識別子が使用されて、何れのイングレス・キュー２５０Ａ−２５０Ｎにサブパケットが書き込まれるかを決定する。もしサブパケットに関連するコンテキストの中のイネーブル・ビットがイネーブルされなければ、データは廃棄される。各パケット２６５は、そこにサブパケット含まれるパケットが創出される同期インターバルを識別する関連データ（例えば、同期タグ）、及びパケットの内部に含まれるサブパケットの数を識別するデータを含む。各イングレス・キュー２５０Ａ−２５０Ｎは、非同期スイッチ２１０の異なるポートへ送信されるパケットを生成する。
【００５０】
図１０Ｂを参照すると、非同期スイッチ２１０は、パケット２６５を、デスティネーション・サーバ・モジュール２６０の適切なエグレス・キュー２５４に、パケット２６５のヘッダの中に含まれるデスティネーション・ビットマップに基づいて転送する。デスティネーション・サーバ・モジュールの同期アグリゲーション論理回路は、パケット・カウント値、及びパケット・ヘッダの同期タグを検査して、そこに含まれるサブパケット２４５の数、及びサブパケットが生成された同期インターバルを決定する。各サブパケットに対するデスティネーション・タイムスロット識別子は、エグレス制御論理回路によって検査される。これらの値に基づいて、次にパケット２６５からのサブパケット２４５Ａ−２４５Ｄが、エグレス・メモリ２６０の内部の正しいプレイアウト・バッファ・ロケーションに書き込まれる。各タイムスロットに対する１バイト２３５がプレイアウト・バッファから１２５マイクロ秒フレーム毎に読み出され、パラレル−シリアル変換、及びＤＳＯリンクへの伝送のために、デスティネーション・サーバ・モジュールのＴＤＭ論理回路２１８のデコーディング部分へ送信される。
【００５１】
同期シリアルデータ・ストリームのバイトへの変換、及びそこからのサブパケットの形成は、同期論理回路２０８によって生成された同期クロックを使用して起こることを銘記する。その後、サブパケットのイングレス・キューへの転移、パケットのイングレス・キュー内部での形成、非同期スイッチを通したパケットの伝送、パケットのエグレス・キューへの転移、及びサブパケットのプレイアウト・バッファへの転移が、全て非同期的に非同期クロックを使用して起こる。その後、プレイアウト・バッファからのサブパケットの再生、及びサブパケットの内部のバイトの同期シリアルデータへの再変換が、同期論理回路２０８によって生成された同期クロックを使用して起こる。従って、ここに記載された装置２００によって容易にされたプロトコルが、同期データがフォーマットされ、非同期媒体を介して伝送され、及びシステムとの同期性を維持するために固定遅延を用いて再フォーマットされることをイネーブルする。
【００５２】
上記のデータ・フロー経路は、本発明の装置２００に複数の変化を有する。例えば、もしサブパケットがパケット・ネットワーク（例えば、ＡＴＭネットワーク）への伝送に対してパケット化されたままであれば、データは非同期ネットワーク２０４への伝送のためにＰＡＤ論理回路２１２及びパケット・インターフェース論理回路２１４へ代わりに供給される。また、図４に示されるように、イングレス・キュー２５０Ａ−２５０Ｎの１つからのパケット出力３３０は、非同期スイッチ２１０を通して送信されることなく、直接的にエグレス・キュー２５４へ送信されてもよい。このデータ伝送経路は、ソース・タイムスロット及びデスティネーション・タイムスロットが装置２００の内部で同じネットワーク・サーバ・モジュール２０６によってサービスを提供されるインスタンスの中で利用される。非同期スイッチ２１０を介してパケットを送信するために要求される遅延は必要でないので、パケットの内部のサブパケットは直接的にエグレス・キュー２５４へ送信され、エグレス・メモリ２６０、及びそこに含まれ同じ固定オフセット遅延を有する各プレイアウト・バッファに、まるでデータが同じ同期インターバルの間に生成された他のサブパケットとの同期を失うことを防止するために非同期スイッチ２１０を通してパケットがルーティングされたように、クロック入力される。
【００５３】
［イングレスＴＤＭ制御ステート・マシン論理回路］
図１１は、図４のイングレスＴＤＭ制御ステート・マシン論理回路２４２によって行われる処理を示す流れ図である。論理回路２４２は、その種の機能を、多数の論理回路構成、特注のＡＳＩＣ、書替え可能なゲートアレイ、ディジタル論理回路とＲＯＭ記憶命令の組合せ、又は小規模、中規模、及び大規模な論理回路の組合せを用いて、図１１を参照して記載された機能的挙動を得るためにシステム設計者によって選択されたように実施される。図１１を参照すると、装置２００を初期化又はリセットすると直ぐ、ソース・タイムスロット・カウンタ２７０が、図示されるようにステップ１１００によってゼロにリセットされる。ソース・タイムスロット・カウンタ２７０は、図４に示されるイングレスＴＤＭ制御ステート・マシン論理回路２４２の中のアップカウンタ又はダウンカウンタの何れかとして実施される。ソース・タイムスロット・カウンタはゼロから約１６，３８４までカウントし、同期論理回路２０８によって生成された同期パルスの間に１６回折り返す。次に、ソース・タイムスロット・カウンタ２７０によって生成されたアドレスを使用して、論理回路２４２は書込アドレスを、現在のソース・タイムスロットのサブパケットに対するイングレス・データメモリ２４０の中のＲＡＭの１つに、図示されるようにステップ１１０２によって生成する。データのバイトは、現在のソース・タイムスロットに関連するＴＤＭ論理回路モジュール２１８の１つの中のシリアル−パラレル変換器から、図示されるようにステップ１１０４によって読み出され、イングレス・データメモリ２４０の現在のタイムスロットに対して生成されたアドレスに、図示されるようにステップ１１０６によって書き込まれる。図示される実施例では、同期パルスは約２ミリ秒毎に発生する。もし同期パルスが発生したら、図示されるようにステップ１１０８によって、ソース・タイムスロット・カウンタがステップ１１００と同様にリセットされる。さもなければ、ソース・タイムスロット・カウンタ２７０は、図示されるようにステップ１１１０によってインクリメントされ、前記のように次の同期パルスが論理回路２４２によって検出されるまでステップ１１０２−１１０８が生じる。
【００５４】
［イングレス・パケット制御ステート・マシン論理回路］
図１２は、図４のイングレス・パケット制御ステート・マシン論理回路２４３によって行われる処理を示す流れ図である。また、論理回路２４３も、その種の機能を、多数の論理回路構成、特注のＡＳＩＣ、書替え可能なゲートアレイ、ディジタル論理回路とＲＯＭ記憶命令の組合せ、又は小規模、中規模、及び大規模な論理回路の組合せを用いて、図１２を参照して記載された機能的挙動を得るために実施される。最初に、論理回路２４３が、サブパケット・カウンタ、及び同期タグを、図示されるようにステップ１２００によってゼロにリセットする。次に、論理回路２４３がサブパケット、及びコンテキストを、イングレス・データＲＡＭ２４０、及びコンテキストＲＡＭ２４４から、図示されるようにステップ１２０２によって読み出す。次に、論理回路２４３が、イネーブル・ビットが現在のタイムスロットに対するコンテキストで設定されているか否かを、図示されるようにステップ１２０４によって決定する。もしコンテキストの内部のイネーブル・ビットが設定されたら、データが有効であることを示して、データのサブパケット、及びデスティネーション・タイムスロットＩＤが、ＳＤＵイングレス・キュー２５０の１つに、デスティネーション・キューＩＤによって指定され、ステップ１２０６によって図示されるように書き込まれる。特定のサブパケットに対するデスティネーション・タイムスロットＩＤ、及びデスティネーション・キューＩＤは、現在のタイムスロットに対する特定のサブパケットに関連するコンテキストＲＡＭ２４４に記憶されるコンテキストの一部分であることを銘記する。次に、ステート・マシン論理回路２４３が、ＳＤＵイングレス・キューが最大数のサブパケットを含むか否かを、図示されるようにステップ１２０８によって決定する。もしそうなら、ステート・マシン論理回路２４３は、パケットスイッチ・インターフェース・データ・フォーマッタ２３０がパケットをＳＤＵイングレス・キューからパケットスイッチ２１０へ送信することを、図示されるようにステップ１２１０によって通知する。次に、図示されるようにステップ１２１２によって、パケットスイッチ・インターフェース・データ・フォーマッタ２３０は、パケット・ルーティング・ヘッダ、同期タグ、及びサブパケット・カウントをパケットに追加し、パケットをパケットスイッチ２１０へ転送する。図示される実施例では、ステップ１２１２が論理回路２４３ではなく、インターフェース・データ・フォーマッタ２３０によって実行されることを銘記する。その後、イングレス・パケット制御ステート・マシン論理回路２４３は、その中で維持されるホールドダウン・タイマが満了したか否かを、図示されるようにステップ１２１４によって決定する。図示される実施例では、その種のホールドダウン・タイマは、５００マイクロ秒だけカウントする。もし満了していなければ、論理回路２４３は、同期パルスを受信したか否かを、図示されるようにステップ１２１６によって決定する。もし同期パルスが受信されていたら、サブパケット・カウンタ、及び同期タグが、ステップ１２００を参照して記載されたのと同じ方法でリセットされ、再び処理が始まる。もしステップ１２１６で同期パルスが受信されなければ、サブパケット・カウンタは図示されるようにステップ１２１８によってインクリメントされ、サブパケット、及びコンテキストをイングレス・データＲＡＭ２４０、及びコンテキストＲＡＭ２４４からそれぞれ読み出すために、前記のように、処理がステップ１２０２に進む。
【００５５】
もしステップ１２１４でホールドダウン・タイマが満了していたら、制御ステート・マシン論理回路２４３は、パケットスイッチ・インターフェース・データ・フォーマッタ２３０に、全ての部分パケットをスイッチ２１０へ送信するように、ステップ１２２０によって示されるように通知する。その後、パケットスイッチ・インターフェース・データ・フォーマッタ２３０は、パケット・ルーティング・ヘッダ、同期タグ、及びサブパケット・カウントを各パケットへ追加し、パケットをパケットスイッチ２１０に、図示されるようにステップ１２２２でステップ１２１２と同様に転送する。次に、同期タグ・カウンタが、図示されるようにステップ１２２４でインクリメントされる。その後、処理はステップ１２１４へ戻り、ホールドダウン・タイマが満了したか否かを決定する。
【００５６】
もしステップ１２０４で、現在のタイムスロットに対するサブパケットに関連するコンテキストの内部でイネーブルされたビットが設定されなかったかことを論理回路２４３が決定したら、処理はステップ１２１４まで進み、ホールドダウン・タイマが満了したか否かを決定する。更に、もしステップ１２０８で、ＳＤＵイングレス・キュー２５０は最大数のサブパケットを含まないことを論理回路２４３が決定したら、処理は再びステップ１２１４まで進み、ホールドダウン・タイマが満了したか否かを決定する。
【００５７】
イングレス・パケット制御ステート・マシン論理回路２４３は、図１２を参照して記載された機能アルゴリズムを実行し、タイムスロットに対するサブパケット、及びそれらに関連するコンテキストが系統的にイングレス・キュー２５０にアセンブルされること、並びにここで記載するような同期的方法でパケットスイッチ・データ・フォーマッタ２３０に転送されることを保証する。
【００５８】
［エグレス・パケット制御ステート・マシン論理回路］
図１３は、図４のエグレス・パケット制御ステート・マシン論理回路２５７によって行われる処理を示す流れ図である。論理回路２５７は、その種の機能を、多数の論理回路構成、特注のＡＳＩＣ、書替え可能なゲートアレイ、ディジタル論理回路とＲＯＭ記憶命令の組合せ、又は小規模、中規模、及び大規模な論理回路の組合せを用いて、図１３を参照して記載された機能的挙動を得るために実施される。最初に、ステート・マシン論理回路２５７は、パケットがいつ動作可能になるか（例えば、エグレス・キューがいつ空でなくなるか）を、図示されるようにステップ１３００によって決定する。もしパケットが動作可能なら、パケットはＳＤＵエグレス・キュー２５４から、図示されるようにステップ１３０２によって読み出される。エグレス制御ステート・マシン論理回路２５７は、サブパケット・カウント、及び同期タグを、パケット・ヘッダから、図示されるようにステップ１３０４によって読み出す。次に、論理回路２５７が、パケットの現在のサブパケットに対するデスティネーション・タイムスロットＩＤを、図示されるようにステップ１３０６によって読み出す。次に、ステート・マシン論理回路２５７が、エグレス・データＲＡＭ２６０の中に存在するプレイアウト・バッファに対する書込アドレスを、サブパケットに関連するデスティネーション・タイムスロットＩＤ、及び同期タグを使用して、図示されるようにステップ１３０８によって生成する。次に、サブパケットがプレイアウト・バッファに、生成されたアドレスを利用して、図示されるようにステップ１３１０で書き込まれる。（論理回路２５７によって維持される）サブパケット・カウントは、ステップ１３１０によって示されるようにデクリメントされる。その後、ステート・マシン論理回路２５７は、サブパケット・カウントがゼロに等しいか否かを、図示されるようにステップ１３１２によって決定する。もしサブパケット・カウントがゼロに等しくなければ、処理は現在のサブパケットに対するデスティネーション・タイムスロットＩＤがパケットから読み出されるステップ１３０６へ戻り、処理はステップ１３０６−１３１２を参照して前記したように進む。もし、ステップ１３１２で、サブパケット・カウントがゼロに等しければ、処理はステップ１３００へ戻り、パケットが動作可能であるか否かを決定する。また、もしステップ１３００でパケットが動作可能でなければ、処理は図示されるようにパケットが動作可能になるまで決定ループの中にとどまる。ここに記載するように、図１３を参照して記載された機能を実行するステート・マシン論理回路２５７は、エグレス・キューからプレイアウト・バッファへのデータパケットの系統的配布を保証し、システムとの再同期を可能にする。
【００５９】
［エグレスＴＤＭ制御ステート・マシン論理回路］
図１４は、図４のエグレスＴＤＭ制御ステート・マシン論理回路２５６によって行われる処理を示す流れ図である。論理回路２４２と同様に、論理回路２５６は、その種の機能を、多数の論理回路構成、特注のＡＳＩＣ、書替え可能なゲートアレイ、ディジタル論理回路とＲＯＭ記憶命令の組合せ、又は小規模、中規模、及び大規模な論理回路の組合せを用いて、図１４を参照して記載された機能的挙動を得るために実施される。図１４を参照すると、装置２００を初期化又はリセットすると直ぐ、デスティネーション・タイムスロット・カウンタ２７５が、図示されるようにステップ１４００によってゼロにリセットされる。デスティネーション・タイムスロット・カウンタは、図４に示されるエグレスＴＤＭ制御ステート・マシン論理回路２５６の中のアップカウンタ又はダウンカウンタの何れかとして実施される。デスティネーション・タイムスロット・カウンタはゼロから約１６，３８４までカウントし、同期論理回路２０８によって生成された同期パルスの間に１６回折り返す。次に、デスティネーション・タイムスロット・カウンタ２７５によって生成されたアドレスを使用して、論理回路２５６は読出アドレスを、現在のデスティネーション・タイムスロットのサブパケットに対するプレイアウト・バッファ２６２に、図示されるようにステップ１４０２によって生成する。データのバイトは、プレイアウト・バッファ２６２から、図示されるようにステップ１４０４で読み出され、現在のデスティネーション・タイムスロットに関連するＴＤＭ論理回路モジュール２１８の１つの中のパラレル−シリアル変換器に、図示されるようにステップ１４０６によって書き込まれる。図示される実施例では、同期パルスは約２ミリ秒毎に発生する。もし同期パルスが発生したら、図示されるようにステップ１４０８によって、デスティネーション・タイムスロット・カウンタがステップ１４００と同様にリセットされる。さもなければ、デスティネーション・タイムスロット・カウンタ２７５は、図示されるようにステップ１４１０によってインクリメントされ、前記のように次の同期パルスが論理回路２５６によって検出されるまでステップ１４０２−１４０８が繰り返される。
【００６０】
［従来技術プロトコルによるＳＡＬの利点］
上の記載の観点から、非同期媒体を介する同期伝送で使用するのに更に適する、以前に参照したＡＡＬ１プロトコル及びＡＡＬ２プロトコルによるＳＡＬプロトコルに対して多数の長所が存在することは明らかである。例えば、ＡＡＬ１及びＡＡＬ２は、各サブパケットに対する「長さインジケータ」であってパケット（セル）の中に含まれる要素を含み、それにより変数の大きさのサブパケットの使用を可能にする。ＳＡＬは、長さインジケータを使用しない。しかし、代わりに固定サイズのサブパケットを使用して、サブパケット長さインジケータを送信する必要性を回避する。長さインジケータを回避することはバンド幅効率を増加させ、多重化／逆多重化設計を単純にする。また、固定サイズのサブパケットも、全ての接続識別子をパケットの前に配置する好ましい実施例に利点を有するので、固定サイズのサブパケットは更に容易に処理できる。固定サイズのサブパケットは、一定ビットレートのデータ・ストリーム（ＤＳＯ）を伝送するため更に効率的である。
【００６１】
ＡＡＬ２プロトコルは、２つのパケットの間でサブパケットを分割することに依存する。ＳＡＬはパケットの間のサブパケットの分割をサポートしないが、パケットの内部に完全に適合する固定サイズのサブパケットを代わりに使用する。パケットの間でのサブパケットの分割を回避することによって、ＳＡＬプロトコルは、第２パケットの中のフラグメントに対するサブパケット・ヘッダのオーバーヘッドを回避する。
【００６２】
加えて、ＡＡＬ１プロトコルでは、セルはセルの内部の複数の接続の多重化を許容しない（即ち、サブパケットがない）。ＳＡＬは複数の接続（サブパケット）をセル（パケット）の内部でサポートして、大きなバンド幅効率と小さな遅延を可能にする。
【００６３】
ＳＡＬと同様に、ＡＡＬ１及びＡＡＬ１−ＤＢＣＥＳの両方が、固定サイズのサブパケットの多重化をＡＴＭセルの内部でサポートする。しかし、全てのサブパケットは、１つの構造化されたＤＳ１／Ｅ１  Ｎ＊６４ｋビット／ｓ接続のタイムスロットに対応しなければならない。ＡＡＬ１−ＤＢＣＥＳでは、ＤＳ１／Ｅ１構造の内部に存在するアクティブなタイムスロットが、ＡＡＬ１セルに送信されたビットマスクによって示される。ＡＡＬ１では、ＡＴＭ  ＶＣＣ識別子が、ＤＳ１／Ｅ１構造へ一意に対応する。従って、全てのサブパケットが、同じＮ＊６４ｋビット／ｓ接続に属する。逆に、ＳＡＬは接続識別子を各サブパケットに提供して、同じパケット（又は、同じ同期インターバルの間に生成されたパケット）の内部の任意の接続の同期多重化を可能にする。これは、ＳＡＬがＮ＊６４ｋビット／ｓ（又は、単一の）ＤＳＯ交換をいくつの（又は、何れの）サブパケットがパケットの中に入るかという制限なしにサポートすることを可能にする。その結果、サブパケットは複数のパケットに散布され、遅延を最小化し、バンド幅効率を最大化する。
【００６４】
米国特許第5,936,967号、及びＡＡＬ１仕様書、及びＡＡＬ２仕様書に記載されたプロトコルは、広域アプリケーションを対象とする。逆に、ＳＡＬはローカル・システムの内部での使用に最適化され、ローカルな非同期媒体を介する交換を容易にする。ＳＡＬは広域ネットワークで使用できるが、同じ交換遅延を全ての接続に対して保証すること（又は、Ｎ＊６４ｋビット／ｓの伝送をサポートすること）はできない。ＳＡＬは、同期論理回路２０８によるシステム内部のタイミング情報の正確な分布に依存する。同期クロック信号のスキュー（遅延差）、及びジッタ（遅延変化）は、複数の接続の間で既知の一定で同じ遅延を保証するために、いずれの場所においても同期インターバルの内部でなければならない。例えば、ＳＡＬを広域ネットワークで使用することは、スキュー及びジッタ許容差を超過し、Ｎ＊６４ｋビット／ｓ接続のサブパケットを異なるパケットの中で送信できないようにする。
【００６５】
更に、ＳＡＬプロトコルは、チャネルを非同期媒体（パケットスイッチ）を介して既知の一定で同じ遅延で如何にして交換されるかを教示する。従来技術は一定の遅延を個々の接続に対して（ネットワーク・クロック、適応クロック、又はＳＲＴＳ法を介して）許容するが、遅延は未知であり、接続の間で同じであることは保証されない。これは、例えば、非同期媒体を介するＮ個のＤＳＯ回路のバンドルを交換するスイッチの内部で重要である。これを実行するために、ＳＡＬは各パケットの中の同期インターバル識別子、タイムスタンプ、又はシーケンス番号の包含に依存し、同期（インターバル）信号をゲートウェイ装置全体でＳＡＬパケットとは別に生成して分配する同期論理回路に依存する。もしチャネル間の同期が必要でなければ、シーケンス番号はパケット損失の後の同期を検出して残すだけのために必要である。
【００６６】
以上、本発明の好ましい実施例について図示し記載したが、特許請求の範囲によって定められる本発明の範囲から逸脱することなく種々の変形及び変更がなし得ることは、当業者には明らかであろう。
【図面の簡単な説明】
【００６７】
【図１】従来技術のゲートウェイ、及び従来技術のゲートウェイが利用されるネットワーク環境のブロック図を示す。
【図２】従来技術のゲートウェイの機能構成要素のブロック図を示す。
【図３】本発明によるゲートウェイの機能構成要素のブロック図を示す。
【図４】本発明による同期アグリゲーション論理回路を含むネットワーク・サーバ・モジュールの機能構成要素の論理回路を示す。
【図５】本発明により形成されたシリアル同期データ・ストリームとサブパケットの関係を示す。
【図６】本発明によるイングレス・コンテキスト・メモリ、及びデータの内部配置を示す。
【図７】本発明によるイングレス・キュー、及びパケットの内部配置を示す。
【図８】本発明によるエグレス・メモリの構造、及び内容を示す。
【図９】本発明によるプレイアウト・バッファの構造、及びデータの内部配置を示す。
【図１０Ａ】シリアル時分割多重化データのパケットへの本発明による変換を示す。
【図１０Ｂ】パケット化データのシリアル時分割多重化データへの本発明による変換を示す。
【図１１】図４のイングレスＴＤＭ制御ステート・マシン論理回路によって行われる処理を示す流れ図である。
【図１２】図４のイングレス・パケット制御ステート・マシン論理回路によって行われる処理を示す流れ図である。
【図１３】図４のエグレス・パケット制御ステート・マシン論理回路によって行われる処理を示す流れ図である。
【図１４】図４のエグレスＴＤＭ制御ステート・マシン論理回路によって行われる処理を示す流れ図である。
【符号の説明】
【００６８】
１００，１５０      ゲートウェイ装置
１１２      時分割多重化（ＴＤＭ）スイッチ
１１４      パケット・インターフェース論理回路
２００      装置
２０１      ＴＤＭトランク
２０２      回線交換ネットワーク
２０４      パケット交換ネットワーク
２０５Ａ−２０５Ｎ      カード
２０６Ａ−２０６Ｎ      ネットワーク・サーバ・モジュール
２０８      同期論理回路
２０９      ＴＤＭハイウェイ
２１０      パケットスイッチ
２１２      パケット・アダプテーション（ＰＡＤ）・レイヤ
２１３      タイムスロット相互接続論理回路
２１４      パケット・インターフェース論理回路
２１８Ａ−２１８Ｄ      ＴＤＭ論理回路
２１９      ＴＤＭインターフェース論理回路
２２０      同期アグリゲーション論理回路（ＳＡＬ）
２２５Ａ−２２５Ｎ      シリアル同期データ
２２８      マイクロプロセッサ
２３０      スイッチ・インターフェース
２３４Ａ−２３４Ｎ      シリアル−パラレル変換器
２３５Ａ−２３５Ｄ      パラレル・データ・ユニット
２３６Ａ−２３６Ｎ      レジスタ
２３８      多重化装置
２４０      イングレス・データメモリ
２４２      イングレス制御論理回路
２４３      イングレス・パケット制御ステート・マシン論理回路
２４４      イングレス・コンテキスト・メモリ
２４５Ａ−２４５Ｄ      サブパケット
２５０Ａ−２５０Ｎ      イングレス・キュー
２５４      エグレス・キュー
２５５      制御論理回路
２５５Ａ−２５５Ｄ      コンテキスト・データ
２５６      エグレスＴＤＭ制御論理回路
２５７      エグレス・パケット制御ステート・マシン論理回路
２５８      多重化装置
２６０      エグレス・データメモリ
２６２Ａ−２６２Ｎ      プレイアウト・バッファ
２６５      パケット
３００      シリアル同期データ・ストリーム
３１０      サブパケット
３２０      ソース・タイムスロット識別子
３２２      イネーブル変数
３２４      デスティネーション・タイムスロット識別子
３２６      キュー識別子
３３０      パケット
３３２      同期タグ
３３４      サブパケット・カウント変数
３３６      パケット・ヘッダ
３３８      デスティネーション・キュー・ビットマップ
【図１】
2007505570.tif 000003
【図２】
2007505570.tif 000004
【図３】
2007505570.tif 000005
【図４】
2007505570.tif 000006
【図５】
2007505570.tif 000007
【図６】
2007505570.tif 000008
【図７】
2007505570.tif 000009
【図８】
2007505570.tif 000010
【図９】
2007505570.tif 000011
【図１０Ａ】
2007505570.tif 000012
【図１０Ｂ】
2007505570.tif 000013
【図１１】
2007505570.tif 000014
【図１２】
2007505570.tif 000015
【図１３】
2007505570.tif 000016
【図１４】
2007505570.tif 000017
【国際調査報告】
2007505570.tif 000018