(57)【要約】【課題】セルの分割及び再組み立て中にＡＴＭデータ処理を加速する方法を提供する。【解決手段】本発明の実施態様は、非同期転送モード（ＡＴＭ）データの再組み立てをリアルタイムで実施するためのシステムを含む。このシステムは、セルに分割される情報を含むＡＴＭデータを記憶するための循環バッファと、ＡＴＭセルを分析して、セル・タイプを判定するように構成された複数の並列処理素子と、を備える。ＡＴＭアダプテーション・レイヤ（ＡＡＬ）２セル及びＡＡＬ５セルの再組み立てがリアルタイムで実施される。【選択図】図３
2005253077.tif 000002
【特許請求の範囲】
【請求項１】
非同期転送モード（ＡＴＭ）データをリアルタイムで再度組み立てるためのシステムであって、
複数のセルに分割された情報を含むＡＴＭデータを記憶する循環バッファと、
前記ＡＴＭセルを解析してセル・タイプを判定するように構成され、ＡＴＭアダプテーション・レイヤ（ＡＡＬ）２セル及びＡＡＬ５セルがリアルタイムに再度組み立てられる、複数の並列処理素子と、
を有するシステム。
【請求項２】
前記循環バッファが前記複数の処理素子と同時に通信を行う、請求項１に記載のシステム。
【請求項３】
前記ＡＴＭセルに関連するデータ断片を受信して、記憶するように構成された断片化テーブルをさらに有する、請求項２に記載のシステム。
【請求項４】
前記データ断片を蓄積して、前記データ断片をフレームに組み立てるように構成されたバッファ・マネージャをさらに有する、請求項３に記載のシステム。
【請求項５】
前記セルに関連する統計値を記憶するように構成された統計値メモリをさらに有する、請求項４に記載のシステム。
【請求項６】
前記統計値が、遊休セル、非割り当てセル、運用及び保守（ＯＡＭ）セル、ＡＡＬ２セル、ＡＡＬ５セル、ヘッダ誤り訂正（ＨＥＣ）エラー・セル、フレーム・カウント、バイト・カウント、輻輳情報、ＡＡＬ５ＣＲＣエラー・カウント、及び、資源管理（ＲＭ）セル・カウントから選択される、請求項５に記載のシステム。
【請求項７】
前記統計値が、それぞれ固有のＶＰＩ／ＶＣＩセル・ストリーム毎に収集される、請求項６に記載のシステム。
【請求項８】
前記統計値が、表示用にプロセッサへ周期的に供給される、請求項７に記載のシステム。
【請求項９】
非同期転送モード（ＡＴＭ）データをリアルタイムで再度組み立てるための方法であって、
複数のセルに分割された情報を含むＡＴＭデータを循環バッファに供給するステップと、
前記ＡＴＭデータを前記循環バッファに記憶するステップと、
前記ＡＴＭセルを解析してセル・タイプを判定し、ＡＴＭアダプテーション・レイヤ（ＡＡＬ）２セル及びＡＡＬ５セルがリアルタイムに再度組み立てられる、ステップと、
を有する方法。
【請求項１０】
前記循環バッファと複数の処理素子との間で同時に通信を行うステップをさらに有する、請求項９に記載の方法。
【請求項１１】
前記ＡＴＭセルに関連するデータ断片を受信して、断片化テーブルに記憶するステップをさらに有する、請求項１０に記載の方法。
【請求項１２】
バッファ・マネージャに前記データ断片を蓄積するステップと、
前記データ断片をフレームに組み立てるステップと、
をさらに有する、請求項１１に記載の方法。
【請求項１３】
前記セルに関連する統計値を統計値メモリに記憶するステップをさらに有する、請求項１２に記載の方法。
【請求項１４】
前記統計値が、遊休セル、非割り当てセル、運用及び保守（ＯＡＭ）セル、ＡＡＬ２セル、ＡＡＬ５セル、ヘッダ誤り訂正（ＨＥＣ）エラー・セル、フレーム・カウント、バイト・カウント、輻輳情報、ＡＡＬ５ＣＲＣエラー・カウント、及び、資源管理（ＲＭ）セル・カウントから選択される、請求項１３に記載の方法。
【請求項１５】
前記統計値が、それぞれ固有のＶＰＩ／ＶＣＩセル・ストリーム毎に収集される、請求項１４に記載の方法。
【請求項１６】
前記統計値を表示用にプロセッサへ周期的に供給するステップをさらに有する、請求項１５に記載の方法。
【請求項１７】
非同期転送モード（ＡＴＭ）データをリアルタイムで再度組み立てるためのプログラムを記録したコンピュータ読取可能媒体であって、
該プログラムが、
複数のセルに分割された情報を含むＡＴＭデータを循環バッファに供給するロジックと、
前記ＡＴＭデータを前記循環バッファに記憶するロジックと、
前記ＡＴＭセルを解析してセル・タイプを判定し、ＡＴＭアダプテーション・レイヤ（ＡＡＬ）２セル及びＡＡＬ５セルがリアルタイムに再度組み立てられる、ロジックと、
をコンピュータに実現させる、コンピュータ読取可能媒体。
【請求項１８】
前記プログラムが、前記循環バッファと複数の処理素子の間で同時に通信を実施するロジックをさらにコンピュータに実現させる、請求項１７に記載のコンピュータ読取可能媒体。
【請求項１９】
前記プログラムが、前記ＡＴＭセルに関連するデータ断片を受信して、断片化テーブルに記憶するロジックをさらにコンピュータに実現させる、請求項１８に記載のコンピュータ読取可能媒体。
【請求項２０】
前記プログラムが、
バッファ・マネージャに前記データ断片を蓄積するロジックと、
前記データ断片をフレームに組み立てるロジックと、
をさらにコンピュータに実現させる、請求項１９に記載のコンピュータ読取可能媒体。
【請求項２１】
前記プログラムが、前記セルに関連する統計値を統計値メモリに記憶するロジックをさらにコンピュータに実現させる、請求項２０に記載のコンピュータ読取可能媒体。
【請求項２２】
前記統計値が、遊休セル、非割り当てセル、運用及び保守（ＯＡＭ）セル、ＡＡＬ２セル、ＡＡＬ５セル、ヘッダ誤り訂正（ＨＥＣ）エラー・セル、フレーム・カウント、バイト・カウント、輻輳情報、ＡＡＬ５ＣＲＣエラー・カウント、及び、資源管理（ＲＭ）セル・カウントから選択される、請求項２１に記載のコンピュータ読取可能媒体。
【請求項２３】
前記統計値が、それぞれ固有のＶＰＩ／ＶＣＩセル・ストリーム毎に収集される、請求項２２に記載のコンピュータ読取可能媒体。
【請求項２４】
前記プログラムが、前記統計値を表示用にプロセッサへ周期的に供給するロジックをさらにコンピュータに実現させる、請求項２３に記載のコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非同期転送モードの再組み立て手法に関する。
【背景技術】
【０００２】
非同期転送モード（Asynchronous Transfer Mode、ＡＴＭ）は、絶えず好評を博してきた通信プロトコルであり、高速光ファイバ・ベースの通信ネットワークにとって好適な通信プロトコルとして利用され続けている。ＡＴＭは、「セル」と呼ばれるパケットの送受信によって通信を行うパケット・ベースの通信プロトコルである。各ＡＴＭセルには、ヘッダ部分とペイロード部分が含まれている。ヘッダ部分には、５バイト（「オクテット」とも呼ばれる）の情報が含まれ、ペイロード部分には、４８オクテットの情報が含まれている。ヘッダ部分には、ＡＴＭセルのタイプ及びペイロードを定義する情報が納められている。場合によっては、複数セルのペイロード部分を組み合わせて（一般には、連結によって）、より大きいパケットが形成されることもある。こうした例の１つとして、ＡＴＭアダプテーション・レイヤ５（ATM Adaptation Layer 5、ＡＡＬ５）がある。ＡＴＭＡＡＬ５において、同様のヘッダ情報を備えるいくつかのセルが、そのペイロードを連結されて、より大きいパケットを形成する。一般に、ＡＴＭは、「顧客宅内機器（Customer Premises Equipment、ＣＰＥ）」と呼ばれるネットワーク・エンドポイント間において通信データが行き来する「仮想チャネル・コネクション（Virtual Channel Connection、ＶＣＣ）」と呼ばれるものを用いたコネクション型プロトコルである。
【０００３】
一般に、ＡＴＭでは、分割及び再組み立て（Segmentation and Reassembly、ＳＡＲ）機能が実施され、送信端で通信データをＡＴＭセルに分割し、宛先端でＡＴＭセルから通信データへの再組み立てを行う。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
あいにく、ＡＴＭデータの分割及び再組み立てには、かなりの処理リソースが必要になり、リアルタイムの実施は困難である。この状況が特に厄介になるのは、ＡＴＭネットワークにおいて試験、障害追及、及び、統計値の収集を試みる場合である。
【０００５】
従って、本発明の目的は、セルの分割及び再組み立て中にＡＴＭデータ処理を加速する方法を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の実施態様は、非同期転送モード（ＡＴＭ）データの再組み立てをリアルタイムで実施するためのシステムを含む。このシステムは、セルに分割される情報を含むＡＴＭデータを記憶するための循環バッファ（circular buffer）と、ＡＴＭセルを分析して、セル・タイプを判定するように構成された複数の並列処理素子と、を備える。ＡＴＭアダプテーション・レイヤ（ＡＡＬ）２セル及びＡＡＬ５セルの再組み立てがリアルタイムで実施される。
【０００７】
本発明の他のシステム、方法、コンピュータ読取可能媒体、及び、特徴については、当該技術者であれば、下記の図面及び詳細な説明を検討することにより明らかになるであろう。こうした別のシステム、方法、コンピュータ読取可能媒体、及び、特徴はすべて、この説明に含まれ、本発明の範囲内に含まれ、付属の請求項によって保護されることを意図したものである。
【発明を実施するための最良の形態】
【０００８】
請求項において定義される本発明は、添付の図面を参照することにより理解を深めることが可能になる。図面内のコンポーネントは、必ずしも、互いに一定の比率というわけではなく、代わりに、本発明の原理を明確に例証することに重点が置かれている。
【０００９】
本発明の実施態様による非同期転送モード（ＡＴＭ）・データの再組み立てをリアルタイムで実施するためのシステムは、ソフトウェア（例えば、ファームウェア）、ハードウェア、または、その組み合わせによって実施することが可能である。実施態様の１つでは、ＡＴＭデータの再組み立てをリアルタイムで実施するためのシステムは、主として、ハードウェアとソフトウェアの組み合わせを利用して実施され、この場合、実行可能コードが書替え可能ゲートアレイ（Field Programmable Gate Array、ＦＰＧＡ）で実行される。しかし、その実施方法にもかかわらず、ＡＴＭデータの再組み立てをリアルタイムで実施するためのシステムのソフトウェア部分は、パーソナル・コンピュータ（ＰＣ；ＩＢＭ互換、Ａｐｐｌｅ互換、または、別様の）、ワークステーション、ミニコンピュータ、または、メインフレーム・コンピュータのような専用または汎用コンピュータで実行することが可能である。さらに、非同期転送モード（ＡＴＭ）データの再組み立てをリアルタイムで実施するためのシステムは、例えば、制限するわけではないが、専用プロセッサのような他の処理または計算装置で実施することも可能である。
【００１０】
図１は、ＡＴＭデータの再組み立てをリアルタイムで実施するためのシステムを含む解析装置１５０が設けられている、典型的な非同期転送モード（ＡＴＭ）ネットワーク１００を例示したブロック図である。ネットワーク１００には、コネクション１１６を介してＡＴＭスイッチ１１８に結合されたＡＴＭスイッチ１１４が含まれている。ＡＴＭスイッチ１１４及び１１８は、ＡＴＭ通信規格によりコネクション１１６を介したＡＴＭトラフィックの経路指定を行う働きをする。コネクション１１６は、ネットワーク・ノード・インターフェイス（Network Node Interface、ＮＮＩ）と呼ばれる。当該技術において既知のように、ＮＮＩ１１６は、２つ以上のＡＴＭスイッチを結合して、ＡＴＭ通信ネットワークを形成する。顧客宅内機器（ＣＰＥ）１０２が、コネクション１０４を介してＡＴＭスイッチ１１４に結合されている。コネクション１０４は、ユーザ・ネットワーク・インターフェイス（ＵＮＩ）と呼ばれ、多種多様な通信チャネルを含むことが可能である。例えば、ＵＮＩは、顧客位置とＡＴＭスイッチとの間で通信が行われる任意の通信チャネルとすることが可能であり、例えば、ディジタル加入者線システム（ＤＳＬ）、ケーブル・モデム用同軸コネクション、Ｔ１通信チャネル、光コネクション、または、無線コネクション等とすることが可能である。顧客施設位置１１０には、コネクション１１２を介してＡＴＭスイッチ１１４に結合された顧客宅内機器１０６及び１０８が含まれている。コネクション１１２は、やはり、ユーザ・ネットワーク・インターフェイス（ＵＮＩ）である。さらに、この例では、顧客宅内機器１０６及び１０８がローカル・エリア・ネットワーク（ＬＡＮ）１１５を介して結合されている。
【００１１】
同様に、顧客宅内機器１２４が、ＵＮＩコネクション１２２を介してＡＴＭスイッチ１１８に接続され、顧客宅内機器１２８が、ＵＮＩコネクション１２６を介してＡＴＭスイッチ１１８に接続されている。本発明の実施態様の１つによれば、「分割及び再組み立てロジック」とも呼ばれるＡＴＭデータの再組み立てをリアルタイムで実施するためのシステムを含む解析装置１５０（後述する）は、光ファイバとすることが可能なコネクション１３２を介して、ＵＮＩコネクションの任意の１つまたはＮＮＩコネクション１１６に結合されている。当該技術者には周知のように、従属同期ディジタル・ハイアラキ（plesiochronous digital hierarchy、ＰＤＨ）または同期ディジタル・ハイアラキ（synchronous digital hierarchy、ＳＤＨ）標準に準拠するような、さまざまな物理的媒体を介して、さまざまなユーザ・ネットワーク・インターフェイス・コネクション及びネットワーク・ノード・インターフェイス・コネクションを実施することが可能である。ＡＴＭ通信ネットワークの物理レイヤ・インターフェイスの実施様態を定義する、いくつかの異なる標準が存在する。数多くの媒体、物理レイヤ、プロトコル、及び、サービスが、ＡＴＭセルの転送のため、同じインフラストラクチャ内に共存することが可能であり、全て、本説明に含まれている。この意味するところは、並列に共存するコネクション型及びコネクションレス型のデータが存在するということである。ＡＴＭは、これらのデータ・タイプの全てをサポートするように設計されている。
【００１２】
ＡＴＭネットワークは、情報の転送のため、「仮想回路（virtual circuit、ＶＣ）」と呼ばれるものも利用する。仮想回路（ＶＣ）は、「仮想チャネル・コネクション」（ＶＣＣ）と呼ばれるものを用いて形成される。ＶＣＣは、ネットワークに対するデータの経路指定方法に関係なく、ＡＴＭネットワークにおける任意の送信元と任意の宛先との間に確立される。例えば、顧客宅内機器１２４、１２８、１０２、１０６、及び、１０８は、そのどれもが、ＡＴＭトラフィックの形をなすデータの送信元または宛先とすることが可能な、「エンド・ポイント」とみなされる。基本的に、ＡＴＭは、コネクション型テクノロジである。コネクションは、信号を送ることによって、すなわち、送信元エンド・ポイントから宛先エンド・ポイントまでネットワークを伝搬するセットアップ要求を送ることによって確立される。宛先エンド・ポイントが、コネクションの形成に合意すると、２つのエンド・ポイント間にＶＣＣが確立される。送信元エンド・ポイントと宛先エンド・ポイントに関連した両方のＵＮＩの仮想チャネル識別子（ＶＣＩ）／仮想パス識別子（ＶＰＩ）間、及び、ＡＴＭスイッチ１１４及び１１８のような任意の中間スイッチの適合する入力リンクと対応する出力リンクとの間の対応付けが確定する。ＶＣＣは、２つの通信ＡＴＭエンド・ポイント間のコネクションである。ＶＣＣには、ＡＴＭによる逆多重化（ＩＭＡ）を利用した、いくつかのＡＴＭ  ＶＣリンクの連結を含むことが可能である。ＡＴＭネットワーク内における全ての通信は、セル・シーケンスを保ち、ある一定の質のサービスを提供する同じＶＣＣに沿って進められる。ＡＴＭセル・ヘッダ（後述することになる）における仮想チャネル識別子（ＶＣＩ）が、ネットワークのエンティティ間リンク毎に割り当てられる、すなわち、ＶＣＩは、ネットワークの同じＶＣＣ内において変化する可能性がある。
【００１３】
仮想パス（ＶＰ）は、２つのＡＴＭエンティティ間に設けられた複数ＶＣをグループ化しており、また、多くのＡＴＭ  ＶＰリンクを含むことも可能である。ＶＰに関連したＶＣは、個々のＶＣのアンバンドル操作または処理、または、ＶＣＩの変更を伴うことなく、全体的にスイッチされる。従って、各ＶＣのセル・シーケンスは保たれ、ＶＰのサービスの質は、その最も要求の厳しいＶＣのサービスの質によって決まる。セル・アドレス・メカニズムは、ＶＣＩとＶＰＩの両方を利用するので、異なるＶＰが競合を生じることなく、同じＶＣＩを利用することも可能である。
【００１４】
図２（ａ）は、典型的なＡＴＭセル２００を例示したブロック図である。ＡＴＭセル２００には、５バイト・ヘッダ部分２０２と、４８バイト・ペイロード部分２０４が含まれている。４８バイト・ペイロード部分２０４は、情報フィールドとも呼ばれる。ヘッダ２０２の最初のバイトには、ＮＮＩコネクションの場合、仮想・パス識別子（ＶＰＩ）が含まれており、ＵＮＩコネクションの場合には、ＶＰＩに加えて、汎用フロー制御命令（ＧＦＣ）も含まれている。第２のバイトの４ビットからなる最初の部分には、やはり、仮想・パス識別子が含まれており、第２のバイトの４ビットからなる第２の部分には、仮想・チャネル識別子（ＶＣＩ）が含まれている。ヘッダ２０２の第３のバイトには、第４のバイトの４ビットからなる第１の部分と同様、仮想・チャネル識別子も含まれている。ヘッダ２０２の第４のバイトの３ビットからなる第２の部分には、ペイロード・タイプ（ＰＴ）標識（ＰＴＩ）が含まれており、第４のバイトの１ビットからなる第３の部分には、セル廃棄優先順位（ＣＬＰ）ビットが含まれている。ヘッダ２０２の第５のバイトには、ヘッダ誤り訂正（ＨＥＣ）バイトが含まれている。ＡＴＭセルに関して、バイトは、「オクテット」とも呼ばれる。
【００１５】
図２（ｂ）は、典型的なＡＴＭミニセル２９０を例示したブロック図である。ミニセルは、ＡＡＬ２に特有の構造である。ミニセル２９０は、ＡＴＭセル・ペイロード部分２０４内にあり、２つ以上のＡＴＭセルにまたがる可能性もある。ＡＴＭミニセル２９０には、ヘッダ部分２２２とペイロード部分２２４が含まれている。ヘッダ部分２２２の最初のバイトには、チャネル識別子（ＣＤ）が含まれている。第２のバイトの最初の部分には、長さ標識（length indicator、ＬＩ）が含まれている。第２のバイトの第２の部分、さらに、第３のバイトの最初の部分には、ユーザ間標識（user-user indicator、ＵＵＩ）の一部が含まれている。第３のバイトの第２の部分には、ＡＴＭセルＨＥＣとは異なる、ヘッダ誤り訂正フィールド（header error correction field、ＨＥＣ）が含まれている。
【００１６】
ＡＴＭは、レイヤ・ベースのアーキテクチャである。ＡＴＭプロトコル・スタックに関して、ＡＴＭレイヤは、物理レイヤより上位にある。ＡＴＭレイヤは、全てのサービスに関するセル転送を行い、ＡＴＭアダプテーション・レイヤ（ＡＡＬ）を含んでいる。ＡＴＭアダプテーション・レイヤはＡＡＬレイヤの上のレイヤに対しサービス依存機能を行う。ＡＴＭは、ヘッダ２０２に含まれている識別子（ＶＰＩ／ＶＣＩ）を用いて、トラフィックを送るパケット交換テクノロジである。しかし、他のパケット・テクノロジとは異なり、ＡＴＭは、セルと呼ばれる短い固定長パケットを利用する。上述のように、一般に、各セルは長さが５３バイトである。４８バイトのペイロード部分２０４へのペイロード・データの挿入は、ＡＡＬによって実施される。ＡＡＬは、ＡＴＭに同じフォーマット内に異なるタイプのサービスを有する柔軟性をもたらす。もちろん、ＡＡＬはネットワーク・プロセスではなく、代わりに、ネットワーク終端装置によって実施される。従って、ネットワークのタスクは、そのヘッダ情報に従って、あるポイントから別のポイントにセルの経路指定を行うことにある。２つのＡＴＭアダプテーション・レイヤの区別は、この場合、とりわけ重要になる。ＡＴＭアダプテーション・レイヤ・タイプ２（ＡＡＬ２）は、可変ビット・レート（ＶＢＲ）・タイミング依存サービスを提供する。ＡＡＬ２は、トラフィックの転送に利用されるが、この場合、送信元と宛先との間で強いタイミング関係が要求されるが、ビット・レートの変動はかまわない。例としては、可変ビット・レート音声、及び、カラー動画像データ圧縮標準規格（ＭＰＥＧ）を用いて圧縮されたコード化データがある。
【００１７】
「単純で効率的なアダプテーション・レイヤ（Simple and Efficient Adaptation Layer、ＳＥＡＬ）」とも呼ばれるＡＴＭアダプテーション・レイヤ・タイプ５（ＡＡＬ５）は、局所的な高速ＬＡＮ実施例の要件を満たすように設計されている。ＡＡＬ５は、コネクションレス型またはコネクション型ＶＢＲサービスに利用される。
【００１８】
ＡＡＬ５は、同様のＶＰＩ／ＶＣＩを有する１〜ｎのセルが、そのペイロードを連結されて、より大きいパケットを形成することになるフォーマットである。ＡＡＬ２は、そのフォーマット内に、複数ミニセルが存在するフォーマットである。同様のＶＰＩ／ＶＣＩとチャネル識別子（ＣＩＤ）を有する複数ミニセルが、そのペイロードを連結されて、より大きいパケットを形成する。詳細に後述するように、図３において後述する分割及び再組み立てロジック３００は、ＡＡＬ２セルとＡＡＬ５セルを識別し、光信号（ＯＣ）１２の速度（すなわち、毎秒６２２，０８０メガビット（Ｍｂｐｓ）のライン・レート）に近いか、これを超えるネットワーク速度で、これらのセルの再組み立てをリアルタイムで実施する。
【００１９】
図３は、図１の解析装置１５０によって実施される分割及び再組み立て（ＳＡＲ）ロジック（logic）３００を例示したブロック図である。この実施態様の場合、分割及び再組み立てロジック３００には、少なくとも１つのＬＩＭアナログ・モジュール３０２とＬＩＭディジタル・モジュール３０４を含むライン・インターフェイス・モジュール（ＬＩＭ）３０６が含まれている。本明細書において称される限りにおいて、「モジュール」は、プリント回路カードまたは配線板とすることが可能である。図３に特定の実施例として示されているが、分割及び再組み立てロジックには、任意のプロセッサで実行可能な実行可能ソフトウェアが含まれている。ＬＩＭアナログ・モジュール３０２は、光ファイバとすることが可能なコネクション１３２からＡＴＭセルを受信する。
【００２０】
複数のＬＩＭアナログ・モジュール３０２が、１つのＬＩＭディジタル・モジュール３０４と共に、ＬＩＭインターフェイス・モジュール３０６上に配置されることになる。しかし、例示を簡略化するため、ＬＩＭディジタル・モジュール３０４上のフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）３５０に対する複数のコネクションを備えた、単一のＬＩＭアナログ・モジュール３０２が例示されている。例えば、コネクション３０８及び３１６は、ＬＩＭアナログ・モジュール３０２とＦＰＧＡ３５０の間に示されている。各コネクション３０８及び３１６には、制御情報及びデータが含まれている。例えば、コネクション３０８に関して、コネクション３１２は制御情報を有しており、コネクション３１４は、ＡＴＭセルの形態をなすデータを有している。
【００２１】
リアルタイム分割及び再組み立てロジック（real-time segmentation and reassembly logic）３５５は、いくつかの異なる外部及び組み込みメモリ・モジュールを含むＦＰＧＡ３５０において実施される。例えば、リアルタイム分割及び再組み立てロジック３５５には、後述することになる循環バッファ３４６を含む組み込みメモリ部分が含まれている。しかし、説明しやすいように、循環バッファ３４６は、ＦＰＧＡ外部に示されている。同様に、例示を簡略化するため、ＦＰＧＡ３５０に関連した他のメモリ・モジュールは、ＦＰＧＡ外部に示されている。例えば、ＦＰＧＡ３５０には、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）素子３１８、シンクロナス・ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）３２２、及び、連想メモリ（ＣＡＭ）３２４が含まれている。ＣＡＭのサイズ及び構成は可変である。例えば、８１９２×６４ビットの構成を選択することが可能である。メモリ素子３１８、３２２、及び、３２４は、コネクション３１４に存在するデータに処理を加えて、記憶する。
【００２２】
同様に、コネクション３１６に含まれるデータは、やはり、ＦＰＧＡ３５０に関連している、ＳＲＡＭ３２８、ＳＤＲＡＭ３３２、及び、ＣＡＭ３３４によって処理される。さらに、もう１つのＳＤＲＡＭ素子３２６も、ＦＰＧＡ３５０に関連している。
【００２３】
循環バッファ３４６には、３２個のＡＴＭセル、及び、各セル３４８の「コンテキスト・フィールド」３５４のための記憶空間３４８が含まれている。コンテキスト・フィールド３５４は、情報フィールド３５６にセルに関する情報を含んでおり、また、セルに納められたデータ断片（fragment）に関する情報を含んでいる。この記憶場所は、断片化テーブル３５８と呼ばれる。この例の場合、断片化テーブル３５８には、６つまでの断片を納めることができるが、ＡＡＬ２セルは、理論上は、１１までのミニセルを備えることが可能である。しかし、ＡＡＬ２セルに、７つ以上の断片が含まれるというのはありそうにないことである。断片化テーブル３５８のサイズは可変である。
【００２４】
ＦＰＧＡ３５０は、コネクション・バス３３６、３３８、及び、３４２を介してリンク・レイヤ・プロセッサ３４４に結合されている。バス３３６は、中央演算処理装置（ＣＰＵ）情報を伝送し、一方、ライン・インターフェイス・モジュールＢＵＳ１はコネクション３３８と呼ばれ、ライン・インターフェイス・モジュールＢＵＳ２はコネクション３４２と呼ばれる。
【００２５】
リンク・レイヤ・プロセッサ（ＬＬＰ）３４４は、ライン・インターフェイス・モジュール３０６からのフレーム及びセルを解析し、コネクション３５２を介して、例えばパーソナル・コンピュータに信号を供給して、ＡＴＭ情報を表示させる。
【００２６】
図４は、リアルタイム分割及び再組み立てロジック３５５の動作を例示したブロック図である。ブロック図４００には、循環バッファ３４６、及び、アクセス・アービトレータ（access arbitrator）４０４が含まれている。後述するように、アクセス・アービトレータ４０４は、循環バッファ３４６と後述するいくつかの処理素子との間における情報交換を制御する。並列処理素子には、初期セル・チェック（initial cell check、ＩＣＣ）素子４１２、ＡＡＬ検出素子４１８、ＡＡＬ５処理素子４６２、ＡＡＬ２処理素子４３４、出力素子４４２、及び、統計素子４４８が含まれている。さらに、統計値ＲＡＭ素子４５２が、コネクション４５４を介してＡＡＬ検出素子４１８に結合され、コネクション４５８を介して統計素子４４８に結合されている。バッファ・マネージャ５００が、コネクション４５６を介して出力素子４４２に結合されている。
【００２７】
各素子４１２、４１８、４２６、４３４、４４２、及び、４４８には、それぞれ、キュー（queue、待ち行列）機構４０８、４１６、４２４、４３２、４３８、及び、４４６が含まれている。各キュー機構４０８、４１６、４２４、４３２、４３８、及び、４４６には、２つのカウンタが含まれている。第１のカウンタは、「ヘッド・ポインタ」と呼ばれ、もう１つのカウンタは、「テール・ポインタ」と呼ばれる。ヘッド・ポインタは、循環バッファ３４６に書き込まれ、先行処理素子によって処理された最後のセルを示す。テール・ポインタは、それぞれの並列処理素子によって処理中の現在のセルを示す。セルが、処理素子の１つ４１２、４１８、４２６、４３４、４４２、または、４４８によって処理されている場合、対象セルは、次の処理素子のキューに入れられる。同時に、処理素子は、循環バッファ内に待機中のセルがある限り、次のセルの処理が可能である。
【００２８】
ＬＩＭアナログ・モジュール３０２からの入力セルは、コネクション３１４を介して循環バッファ３４６に供給される。アクセス・アービトレータ４０４は、循環バッファ３４６と処理素子４１２、４１８、４２６、４３４、４４２、及び、４４８との間の通信を制御する。
【００２９】
統計値ＲＡＭ４５２は、本実施例における８０００の固有のＶＰＩ／ＶＣＩペアまでに関する情報及び統計値を記憶し、リンク・レイヤ・プロセッサ３４４（図３）のソフトウェア（図示せず）によって、統計値ＲＡＭ４５２のコンテンツに関わる統計値情報をパーソナル・コンピュータ（ＰＣ）又は他の端末にアクセス及び伝送し、表示することが可能である。
【００３０】
初期セル・チェック（ＩＣＣ）素子４１２は、循環バッファ３４６の入力セルを調べて、ＰＴＩ、ＣＬＰ、ＨＥＣエラー、セル・タイプ、ＶＰＩ／ＶＣＩ、及び、セルに関する統計値を収集するための参照記号として用いられる、セルに割り当てられた索引（index）といった、ＡＴＭレベル情報を判定する。索引は、ＣＡＭ３２４（図３）におけるメモリ・アドレスに対応する数字である。索引は、リアルタイム分割及び再組み立てロジック３５５が、ＶＰＩ／ＶＣＩまたはＶＰＩ／ＶＣＩ＋ＣＩＤのビット・フィールド全体を利用したりせずに、等価ＶＰＩ／ＶＣＩとＶＰＩ／ＶＣＩ＋ＣＩＤを対応付けるために利用する、ラベルのようなトラッキング・メカニズムである。ＣＡＭ３２４（図３）は、逆様のメモリとみなすことが可能である。データが入力されて、アドレスが出力される。このアドレスは、索引と呼ばれるものである。索引は、一意性のＶＰＩ／ＶＣＩまたはＶＰＩ／ＶＣＩ＋ＣＩＤが識別されて、ＣＡＭ３２４に加えられると、必ず、ＣＡＭ３２４から得られる。索引（ＣＡＭアドレス）は、インクリメンタルに割り当てられる。さらに、ＶＰＩ／ＶＣＩ項目は、ユーザがソフトウェア（不図示）を用いてＣＡＭに入力することが可能である。索引は、循環バッファ３４６のコンテキスト部分３５４（図３）に納められる。解析されるセルのＶＰＩ／ＶＣＩをＣＡＭ３２４に提供すると、ＶＰＩ／ＶＣＩの索引の返送またはＣＡＭ３２４に対するＶＰＩ／ＶＣＩの追加がトリガされ、これによって、ＶＰＩ／ＶＣＩが納められた場所を明示する索引が返送される。
【００３１】
ＡＡＬ検出素子４１８は、ＰＴＩ、セル・タイプ、ミニセルＨＥＣ、及び、その索引の統計値ＲＡＭ項目を調べて、もしあれば、解析されるセルのＡＡＬモードを確認する。ＡＡＬモードは、ソフトウェアを用いて入力することも可能であったし、さもなければ、先行セルの検査によってあらかじめ確認された。ＡＡＬ２またはＡＡＬ５セルが検出されると、ＡＡＬ検出素子４１８は、セルにＡＡＬ２またはＡＡＬ５のタグを付ける。
【００３２】
ＡＡＬ５処理素子４２６は、循環バッファ３４６のコンテキスト部分の情報フィールド３５６（図３）におけるセルとしてタグが付けられたＡＡＬ５だけを調べる。ＡＡＬ５処理素子４２６は、セルが、「開始」、「継続」、及び、「終了」パケットのいずれであるかを判定し、その情報を伴う、断片化テーブル３５８の項目を形成する。ＡＡＬ５処理素子４２６は、各フレーム毎に、巡回冗長検査（ＣＲＣ）３２の計算も実施する。
【００３３】
ＡＡＬ２処理素子４３４は、循環バッファ３４６のコンテキスト部分の情報フィールド３５６（図３）におけるセルとしてタグが付けられたＡＡＬ２データだけを調べて、ミニセルが「開始」、「継続」、及び、「終了」パケットのいずれであるかを判定し、その情報を伴う、断片化テーブル３５８の項目を形成する。ＡＡＬ２処理素子４３４は、さらに、ＣＡＭ３２４（図３）のＶＰＩ／ＶＣＩ＋ＣＩＤ探索を実施して、二次索引を確認し、同様のＶＰＩ／ＶＣＩ＋ＣＩＤのミニセルを探知して、突き合わせる。ＡＡＬ２処理素子４３４は、セルに２つ以上のミニセルが存在する場合、断片化テーブル３５８の２つ以上の項目を作成することが可能である。
【００３４】
出力素子４４２は、断片化テーブル３５８の項目を調べて、循環バッファ３４６（図３）のセル・データ３４８からペイロード情報の適合ブロックを読み取り、コネクション４５６を介して、バッファ・マネージャ５００にそのペイロード情報を送る。出力素子４４２は、各フレーム毎に連続フレーム長を計算し、ペイロード情報と共に、そのフレーム長情報をＬＬＰ３４４（図３）に送る。
【００３５】
統計素子４４８は、断片化テーブル３５８の各項目を調べて、遊休セル、非割り当てセル、運用及び保守（ＯＡＭ）セル、資源管理（ＲＭ）セル、ＨＥＣエラー・セル、ＣＬＰ＝１セル、輻輳セル、ＡＡＬ５フレーム、ＡＡＬ５ＣＲＣエラー、ＡＡＬ５バイト・カウント、ＡＡＬ２フレーム、及び、ＡＡＬ２バイト・カウントの数をカウントする。統計素子４４８は、全てのフレームについて、また、ＶＰＩ／ＶＣＩ毎に、この解析を実施する。統計素子４４８の情報は、上述のように統計値ＲＡＭ４５２に送られる。
【００３６】
バッファ・マネージャ５００は、同様のＶＰＩ／ＶＣＩまたはＶＰＩ／ＶＣＩ＋ＣＩＤのセル及び／またはミニセルを蓄積する（索引を介して）。あるフレームが完全であれば、バッファ・マネージャは、図３のリンク・レイヤ・プロセッサ３４４のような下流のプロセッサに対して、そのフレームを完全なフレームとして出力する。
【００３７】
図５は、図４のバッファ・マネージャの働きを例示したブロック図５００である。ストリーム状況リスト（stream status list、ＳＳＬ）５５０、フリー・ブロック・リスト（free block list、ＦＢＬ）５５１、及び、完成メッセージ・リスト（completed message list、ＣＭＬ）５５２は、外部ＳＤＲＡＭ３２６に保持されるリストである。これらのリストは、それぞれ、ＳＳＬマネージャ５２２、ＦＢＬマネージャ５３８、及び、ＣＭＬマネージャ５２４によって管理される。入力バッファ５０４は、コネクション４５６を介して、図４の出力素子４４２からセルまたは断片を受信する。ストリーム状況リスト・マネージャ５２２は、コネクション５０６を介して、そのセルまたは断片が、新しいフレームの開始か、既存のフレームの継続かを判定する。ストリーム状況リスト・マネージャ５２２によって、そのセルまたは断片が新しいフレームであると判定されると、フリー・ブロック・リスト・マネージャ５３８からバッファ番号が得られ、バッファ番号は、その索引としてＳＳＬ５５０に保管される。ストリーム状況リスト・マネージャ５２２によって、そのセルまたは断片が継続であると判定されると、ストリーム状況リスト５５０から既存のバッファ番号が得られる。コア５１２によって、外部ＳＤＲＡＭ３２２内の割り当てられたバッファにデータが書き込まれる。外部ＳＤＲＡＭ３２２は、それぞれ、１つのフレームを保持するのに十分な大きさの、多くのバッファに分割される。
【００３８】
コア５１２は、フレーム全体の書き込みが済んだと判断すると、完成メッセージ・リスト・マネージャ５２４を介して、ＣＭＬ５５２にメッセージを追加する。完成メッセージ・リスト・マネージャ５２４は、出力素子５２０に対して、あるフレームが出力されるのを待っていることを知らせる。出力素子５２０は、コア５１２を介してそのフレームにアクセスし、コネクション３３８を介して、図３のリンク・レイヤ・プロセッサ３４４に対してそのフレームを出力する。
【００３９】
図６Ａ及び図６Ｂは、全体として、リアルタイム分割及び再組み立てロジック３５５の実施態様の１つの働きを例示するフローチャート６００である。フローチャート６００のブロックは、特定のセルに対して図示の順番に実施することが可能であり、２つ以上のセルに対して同時に並行して実施することも可能である。さらに、ブロックは、図示の順序とは異なるように、または、並列に実施することが可能である。
【００４０】
ブロック６０２では、循環バッファ３４６の入力セルが、ＩＣＣ素子４１２（図４）によって調べられる。ブロック６０４では、ＣＡＭ３２４において、セルのＶＰＩ／ＶＣＩを見つけ出して、索引識別子が確認される。ブロック６０６では、セル固有の追加情報が、循環バッファ３４６に納められる。
【００４１】
ブロック６０８では、ＡＡＬ検出素子４１８は、ＣＡＭ３２４からの索引を利用して、メモリに照会し、セルを再組み立てすべきか否かを判定する。ブロック６１０では、データを再組み立てすべきか否かに基づいて、決定がなされる。データを再組み立てすべきではない場合、例えば、セルが、遊休、非割り当て、ＯＡＭセル等であるとみなされる場合には、このセルはＡＡＬ５及びＡＡＬ２再組み立て処理素子をバイパスして、直接ブロック６２６に進む（図６Ｂ）。属性が「開始」と「終了」の両方である全体セルの断片が生成される。次に、ブロック６２８において、この断片が出力素子５２０（図４）によって処理される（図６Ｂ）。ブロック６１０において、データを再組み立てすべきであると判定されると、ブロック６１２では、ＡＡＬ検出素子４１８によって、セル・モードが判定される。セルがＡＡＬ２セルの場合、ブロック６１４では、ＡＡＬ２処理素子４３４（図４）が、ＡＴＭフォーラム仕様に従ってＡＡＬ２セルを解析し、セル内における各ミニセルの位置を求める。
【００４２】
ブロック６１６では、各ミニセル毎に、ＡＡＬ２処理素子４３４（図４）が、ＣＡＭ３２４におけるＶＰＩ／ＶＣＩ＋ＣＩＤの組合せを探索して、新しい（二次）索引を取得し、同様のＶＰＩ／ＶＣＩ＋ＣＩＤを備えたミニセルを探知して、照合する。ブロック６１８では、ブロック６１６で見つけられた索引を利用して、循環バッファ３４６（図３）にアクセスすることにより、セルに関する情報が得られる。ブロック６２２では、ミニセルがより大きいフレームの「開始」、「継続」、及び、「終了」断片のいずれであるかが判定される。ブロック６２６では、断片化テーブル３５８の項目が形成される。
【００４３】
ブロック６１２において、セルがＡＡＬ５セルであると判定されると、ブロック６２４では、そのセルが「開始」、「継続」、及び、「終了」セルのいずれであるかが判定される。ブロック６２６では、ブロック６２２または６２４において確認された情報を伴う、断片化テーブル３５８の項目が作成される。
【００４４】
ブロック６２８では、出力素子４４２が、断片化テーブル３５８の項目を調べて、循環バッファ３４６（図３）に記憶されているセルから適合するペイロード・ブロックを読み取る。ブロック６３２では、バッファ・マネージャ５００が、フレーム事例毎に、ＲＡＭのセルまたはミニセルの断片を蓄積し、より大きいフレームを生成し直す。ブロック６３２では、ＲＡＭが、例えば、それぞれ、２０４８バイトの、１６３８４個のバッファに分割される。各バッファ毎に、断片を蓄積して、１つのフレームを形成することが可能である。このバッファは、ＬＬＰ３４４（図３）にフレームを送る際に、再利用することが可能である。複数フレームが、同じＶＰＩ／ＶＣＩすなわち索引に対応する、ＲＡＭの複数バッファに共存することが可能である。ブロック６３４では、統計素子４４８が、上述の統計値を収集して、統計値ＲＡＭ４５２に供給し、図３のリンク・レイヤ・プロセッサ３４４に出力されるようにする。
【００４５】
当該技術者には明らかなように、本発明の原理からほとんど逸脱することなく、上述の本発明の望ましい実施態様に対して多くの修正及び変更を加えることが可能である。例えば、非同期転送モード・データの再組み立てをリアルタイムに実施するためのシステムは、任意のＡＴＭ通信環境において利用することが可能である。こうした全ての修正及び変更は、本明細書では、付属の請求項において定義される本発明の範囲内に含まれるように意図されている。
【図面の簡単な説明】
【００４６】
【図１】ＡＴＭデータの再組み立てをリアルタイムに実施するためのシステムを含む解析装置が設けられた、典型的なＡＴＭネットワークを示すブロック図である。
【図２】典型的なＡＴＭセルおよびＡＴＭミニセルを示すブロック図である。
【図３】図１の解析装置によって実施されるＳＡＲロジックを示すブロック図である。
【図４】図３のＦＰＧＡに含まれるＳＡＲロジックの動作を示すブロック図である。
【図５】図４のバッファ・マネージャの動作を示すブロック図である。
【図６Ａ】ＳＡＲロジックの一実施態様の動作を示すフローチャートである。
【図６Ｂ】ＳＡＲロジックの一実施態様の動作を示すフローチャートである。
【符号の説明】
【００４７】
１００  ネットワーク
２００  ＡＴＭセル
２０２  ヘッダ
２０４  ペイロード部分
３４６  循環バッファ
４１２、４１８、４２４、４２６、４３４、４４８  処理素子
【図１】
2005253077.tif 000003
【図２】
2005253077.tif 000004
【図３】
2005253077.tif 000005
【図４】
2005253077.tif 000006
【図５】
2005253077.tif 000007
【図６Ａ】
2005253077.tif 000008
【図６Ｂ】
2005253077.tif 000009
【手続補正書】
【提出日】平成17年3月23日(2005.3.23)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
循環バッファ３４６には、３２個のＡＴＭセルのための記憶空間３４８と、各セル３４８のための「コンテキスト・フィールド」３５４が含まれている。コンテキスト・フィールド３５４は、情報フィールド３５６にセルに関する情報を含んでおり、また、セルに納められたデータ断片（fragment）に関する情報を含んでいる。この記憶場所は、断片化テーブル３５８と呼ばれる。この例の場合、断片化テーブル３５８には、６つまでの断片を納めることができるが、ＡＡＬ２セルは、理論上は、１１までのミニセルを備えることが可能である。しかし、ＡＡＬ２セルに、７つ以上の断片が含まれるというのはありそうにないことである。断片化テーブル３５８のサイズは可変である。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図３
【補正方法】変更
【補正の内容】
【図３】
2005253077.tif 000010