(57)【特許請求の範囲】
【請求項１】
通信プロトコルの処理を行う通信プロトコル処理装置であって、
複数の構成データ記憶装置を備え、順次一つの構成データ記憶装置を現用とし、現用の構成データ記憶装置に書き込まれた構成データを読み込み、読み込んだ構成データに従った論理回路を形成するプログラマブル論理デバイスと、
相互に独立して行われる通信プロトコルの処理の部分毎に、通信プロトコルの処理の部分を行う論理回路を前記プログラマブル論理デバイス上に形成する構成データを記憶した二次記憶装置と、
通信プロトコルの処理を実行すべき各時点において、当該時点において実行すべき通信プロトコルの処理の部分に対応する構成データを選択し、選択した構成データを前記二次記憶装置から読み出し、前記複数の構成データ記憶装置のうち、次にプログラマブル論理デバイスが現用とする構成データ記憶装置に書き込む手段と、を有すること
を特徴とする通信プロトコル処理装置。
【請求項２】
請求項１に記載の通信プロトコル処理装置であって、
通信プロトコルの処理を実行すべき各時点において、当該時点において実行すべき通信プロトコルの処理の部分を判定する判定手段をさらに有し、
前記書き込む手段は、前記判定手段が判定した通信プロトコルの処理の部分に対応する構成データを選択し、選択した構成データを前記二次記憶装置から読み出し、前記複数の構成データ記憶装置のうち、次にプログラマブル論理デバイスが現用とする構成データ記憶装置に書き込むこと
を特徴とする通信プロトコル処理装置。
【請求項３】
コネクションを介して通信データを受信する請求項２に記載の通信プロトコル処理装置であって、
伝送路の管理もしくは制御するための処理の開始の指示を発行する制御手段を備え、
前記判定手段は、前記通信プロトコルの処理の部分の判定は、受信した通信データの種類と、前記制御手段より発行された伝送路の管理もしくは制御するための処理の開始の指示の種類と、受信した通信データを伝送するコネクションの種類と、前記通信プロトコル処理装置の状態とのうちの少なくとも一つに基づいて行うこと
を特徴とする通信プロトコル処理装置。
【請求項４】
ＡＴＭ(Asynchronous Transfer Mode)セルを受信し、ＡＴＭに従った通信プロトコル処理を行い、ＡＴＭセルを送信する請求項２に記載の通信プロトコル処理装置であって、
伝送路の管理もしくは制御するための処理の開始の指示を発行する制御手段を備え、
前記判定手段は、前記通信プロトコルの処理の部分の判定を、受信したＡＴＭセルの宛先情報と、受信したＡＴＭセルの種別情報と、前記制御手段が発行した伝送路の管理もしくは制御するための処理の開始の指示の種類と、前記通信プロトコル処理装置の状態とのうちの少なくとも一つに基づいて行うこと
を特徴とする通信プロトコル処理装置。
【請求項５】
請求項４に記載の通信プロトコル処理装置を備えたＡＴＭ(Asynchronous Transfer Mode)交換機であって、
複数の前記通信プロトコル処理装置と、
前記複数の通信プロトコル処理装置間で送受信するＡＴＭセルの交換を行うスイッチとを有すること
を特徴とするＡＴＭ交換機。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、Internet，LAN，ＡＴＭ等の技術を適用したネットワークを構成する通信装置において通信プロトコルを処理する技術に関するものである。
【０００２】
【従来の技術】
近年の通信の大容量化・多様化は、高速かつマルチメディア対応の基幹網によって支えられている。そして、このような基幹網の有力なものの一つは、ＡＴＭ(Asynchronous Transfer Mode)通信網である。ここで、従来、高速なＡＴＭ通信を実現するために、通信装置における、物理レイヤ及びデータリンクレイヤといった低位のプロトコル処理を行う論理回路は、一般的にＡＳＩＣ(Application Specific Integrated Circuit)によって実現されてきた。
【０００３】
しかし、ＡＴＭに限らず、通信プロトコルの仕様はしばしば変更されることがある。たとえば、通信環境の変化に従ってプロトコル仕様の国際標準が変更されることもあれば、適応先の網に固有の運用・管理手順を追加するためにプロトコル仕様が変更されることもある。そして、従来のＡＳＩＣを用いた論理回路によってプロトコル処理を行う構成では、プロトコル仕様が変更されると、これに伴いＡＳＩＣを、製造プロセスのマスクパターンを変更して製造した、ASIC内の論理素子間の物理的接続が異なる新たなASICに交換する必要がある。これは、ＡＳＩＣの動作を決定する、ＡＳＩＣ内の論理素子間の物理的接続は、製造プロセスの段階で固定化されているため、その動作を変更することができないためである。
【０００４】
このためＡＳＩＣを用いる技術では、プロトコル仕様の変更に柔軟に対応することができず、プロトコル仕様の変更への対応には長い開発時間とコストがかかる。
【０００５】
一方、ＦＰＧＡ(Field Programmable Gate Array)等のプログラム可能な論理デバイスを用いて、プロトコル処理を行う論理回路を構成することにより、プロトコル仕様の変更に柔軟に対応できるようになる。
【０００６】
プログラム可能な論理デバイスの論理素子間の接続は、論理素子間の接続の記述（Configuration Dataと呼ぶ）を結線情報用の内部メモリ上に配置することで実現される。このため、内部メモリ上の論理素子間の接続の記述を書き換えることにより、論理素子間の接続を変更し、プログラム可能な論理デバイスに異なる動作を行わせることができる。このため、プログラム可能な論理デバイスを用いる技術によれば、プロトコル仕様の変更に内部メモリの書換えで対応することができるようになる。
【０００７】
ここで、このようなプログラム可能な論理デバイスをプロトコル処理に用いる技術としては、たとえば、次の二つの技術が知られている。
【０００８】
第１の技術は、藤井他「ＦＰＧＡを用いたプログラマブルな高速通信ネットワークＨＵＢ装置」（電子通信学会技術研究報告  交換システム，SSE95-91，pp127-132，1995年9月）に記述された、 ＡＴＭ網とメモリーバス網との相互接続に用いられるＡＴＭインタフェース装置についてのものである。
【０００９】
この装置では、ＡＴＭプロトコル及びバス伝送プロトコルのプロトコル処理を行わせるConfiguration Dataが外部記憶装置上に格納されており、このConfiguration Data全体が、装置の立上げ時にＦＰＧＡの内部メモリに読込まれ、動作中は内部メモリ上に保持される。
【００１０】
この技術では、外部記憶装置上のConfiguration Dataの変更でプロトコル仕様の変更に対応できるようになる。
【００１１】
第２の技術は、ＵＳ特許５４１４７０７“Broadband ISDN Processing Method And System”に記載された、複数の通信サービスをサポート可能なＡＴＭ端末アダプタについてのものである。
【００１２】
この技術では、プロトコル処理を行わせるConfiguration Dataが通信サービス毎に外部記憶装置上に格納されている。一方、アダプタは、入力された通信データから、その通信サービスと通信プロトコルを決定して、対応するConfiguration Dataを外部記憶装置から内部メモリにロードする。
【００１３】
この技術では、複数の通信プロトコルのプロトコル処理を実現するためのConfiguration Dataの全てを内部メモリにロードすることなく、複数の通信プロトコルに対応しようとするものである。
【００１４】
【発明が解決しようとする課題】
前記従来のプログラム可能な論理デバイスをプロトコル処理に用いる技術によれば、プロトコル処理全体を行わせるConfiguration Dataを内部メモリにロードし、これに従って論理回路をプログラム可能な論理デバイス内に形成させる。
【００１５】
一方、プログラム可能な論理デバイスは、個々の論理素子の構造が複雑であり、論理素子間の配線の自由度が低く、ＡＳＩＣに比べて集積度が低い。このため、プロトコル処理の規模が大きくなり、これを行わせるConfiguration Dataに従った論理素子間の接続によって実現される論理回路規模が大きくなると、ＡＳＩＣの場合と比べて、プログラム可能な論理デバイスのサイズが大きくなる。また、論理素子間の配線の自由度が低いことなどより、プロトコル処理を行わせるConfiguration Dataに従った論理素子間の接続によって実現される論理回路規模が大きくなると、個々のイベントに対する処理を行う論路回路部分を、その処理に対して最適な構成に形成することができず、処理速度が低下する。なお、イベントに対する処理とは、通信プロトコルに関連するイベント（ATMセル受信、タイムアウト等）発生に対して行う処理（セル受信処理、タイムアウト処理）であり、プロトコル処理は、基本的には、複数のイベントに対する処理の集合である。
【００１６】
したがって、前記従来の技術によれば、プロトコル処理の規模が大きい場合、処理速度の低下や、論理デバイスサイズの増大化を招く。
【００１７】
そこで、本発明は、プログラム可能な論理デバイスを用いたプロトコル処理を、プロトコル処理の規模が大きい場合でも、処理速度の低下や論理デバイスサイズの増大化を、より抑えて実現することを課題とする。
【００１８】
【課題を解決するための手段】
前記課題達成のために、本発明は、たとえば、通信プロトコルの処理を行う通信プロトコル処理装置において、設定された構成データに従った論理回路を形成するプログラマブル論理デバイスを用いて通信プロトコルの処理を行う方法であって、
相互に独立して行われる通信プロトコルの処理の部分毎に、通信プロトコルの処理の部分を行う論理回路を前記プログラマブル論理デバイス上に形成する構成データを用意し
通信プロトコルの処理を実行すべき時点において、動的に、当該時点において実行すべき通信プロトコルの処理の部分を判定し、判定した通信プロトコルの処理の部分に対応する構成データを選択し、前記プログラマブル論理デバイスに設定することを特徴とする通信プロトコル処理方法を提供する。
【００１９】
このような通信プロトコル処理方法によれば、全ての通信プロトコル処理を実現する論理回路を形成する構成データを、プログラマブル論理デバイスに設定するのではなく、その時点で行う必要のある通信プロトコル処理の部分を行う論理回路を形成する構成データのみをプログラマブル論理デバイスに設定する。これにより、一度に、プログラム可能な論理デバイス上に形成する論理回路の論理量が少なくても済むようになっている。言い換えるならば、その時点で行う処理すと無関係な処理を行う論理回路をプログラム可能な論理デバイス上に形成しない。
【００２０】
したがって、このような方法によれば、プロトコル処理を実現するために必要な、プログラマブル論理デバイスのハード量は少なくて済み、また、プログラマブル論理デバイスを用いてより多数の機能を実現することが可能である。さらに、プログラマブル論理デバイス上に形成される論理回路が大規模化しないので、配線遅延などによる処理の遅延を低減することができる。
【００２１】
【発明の実施の形態】
以下、本発明の実施形態について、ATM網への適用を例にとり説明する。また、本実施形態では、論理素子間の接続をプログラム可能な論理デバイスとしてFPGAを用いる場合を例にとる。
【００２２】
図１に、ＡＴＭ通信網の全体構成を示す。
【００２３】
図中において、端末（１１０，１１０−１，１１０−２，１１０−３）間の通信は、ＡＴＭ交換機（１００，１００−１，１００−２）及び、それらを相互に接続する中継ＡＴＭ網１３０を介して実行される。ＡＴＭ交換機（１００）は、Ｃｅｌｌ  ＲｅｌａｙやＦｒａｍｅ  Ｒｅｌａｙといた各種の通信サービスを提供する回線（１２０Ａ，１２０Ｆ）を介して端末（１１０，１１０−１） と接続している。。
【００２４】
ＡＴＭ交換機（１００）は、各種の回線を収容する回線ｉｎｔｅｒｆａｃｅ（４０A，４０Ｆ，４０Ｔ，４０Ｓ）、通信データに対する交換を実行するＡＴＭＳｗｉｔｃｈ（１０１）及び、ＡＴＭ交換機全体の動作を制御する制御部（１０２）より構成されている。
【００２５】
ＡＴＭ交換機（１００）において、端末からの通信データは、回線ｉｎｔｅｒｆａｃｅ（４０A，４０Ｆ）により内部回線１２０Ｌ上に収容される。内部回線間の接続は、ＡＴＭ  Ｓｗｉｔｃｈ（１０１）の交換機能により実現されている。通信データは、その宛先端末により端末と接続する回線ｉｎｔｅｒｆａｃｅ（４０A，４０Ｆ）または中継ＡＴＭ網（１３０）と接続する回線ｉｎｔｅｒｆａｃｅ（４０Ｔ）に交換される。また、通信データが後述する信号である場合は、信号回線（１２０）に交換されて、信号用の回線ｉｎｔｅｒｆａｃｅ（４０Ｓ）で終端される。
【００２６】
また、制御部（１０２）は、システムバス（１０３）により回線ｉｎｔｅｒｆａｃｅ（４０A、４０Ｆ、４０Ｔ、４０Ｓ）及び、ＡＴＭ  Ｓｗｉｔｃｈ（１０１）に接続している。制御部（１０２）は、回線ｉｎｔｅｒｆａｃｅ（４０Ｓ）で終端された信号に基づいてＡＴＭ  Ｓｗｉｔｃｈ（１０１）の交換動作及び、回線ｉｎｔｅｒｆａｃｅ（４０A、４０Ｆ、４０Ｔ）の回線収容動作を制御する。
【００２７】
一方、端末（１１０）において、回線ｉｎｔｅｒｆａｃｅ（４０Ａ‘）はプロセッサ（１１１）とＣｅｌｌ  Ｒｅｌａｙ回線（１２０Ａ）の間で通信データの受け渡しを実行する。
【００２８】
次に、図２に、端末（１１０）とＡＴＭ交換機（１００）における通信データフロー及び、プロトコルスタックを示す。
【００２９】
プロトコルレイヤとしては、物理レイヤ（２１０）、ＡＴＭレイヤ（２２０）、ＡＡＬ(ATM Adaptation Layer)（２３０）及び、上位レイヤ（２４０）がある。
【００３０】
物理レイヤ（２１０）、ＡＴＭレイヤ（２２０）、ＡＡＬ（２３０）は、回線ｉｎｔｅｒｆａｃｅの機能（２００）で処理するレイヤである。上位レイヤ（２４０）は、端末内のプロセッサ（１１１）またはＡＴＭ交換機内の制御部（１０２）の機能で処理するレイヤある。
【００３１】
ＡＴＭレイヤ（２２０）では、ＡＴＭセルと呼ばれる５３バイト長のパケットにより通信を実現する。物理レイヤ（２１０）は、物理媒体（光ファイバ等）上でのビット伝送機能と、ＡＴＭセルの物理レイヤ伝送へのマッピング機能を提供する。ＡＡＬ（２３０）はＡＴＭレイヤと上位レイヤ間のマッピングをサポートしている。
【００３２】
次に、通信データのフローとしては、Ｕｓｅｒ  ｆｌｏｗ（３０１）、信号ｆｌｏｗ（３０２）及びＯＡＭ  ｆｌｏｗ（３０３）がある。
Ｕｓｅｒ  ｆｌｏｗ（３０１）は、端末間でのユーザ情報の通信フローである。
【００３３】
端末１１０が送信する場合は、Ｕｓｅｒ用上位レイヤ（２４１−１）からのユーザ情報がＡＡＬ（２３０−１）で固定長のセルに分解される。この固定長セルは、ＡＴＭレイヤ（２２０―１）でＡＴＭセル化され、物理レイヤ２１０−１によりビット転送される。ＡＴＭ交換機１００では、Ｕｓｅｒ  ｆｌｏｗ（３０１）に対してはＡＴＭレイヤ（２２０−２）の処理が実行される。
【００３４】
逆に、端末（１１０）がＵｓｅｒ  ｆｌｏｗ（３０１）受信する場合は、物理レイヤ（２１０−１）が転送されてきたビットストリームからＡＴＭセルを再構成し、ＡＴＭレイヤ（２２０−１）はそのＡＴＭセルに対してＡＴＭ処理を実行する。ＡＡＬ（２３０−１）は、受信したＡＴＭセルからユーザ情報を組み立て、Ｕｓｅｒ用上位レイヤ（２４１−１）に渡す。
【００３５】
次に、信号ｆｌｏｗ（３０２）は、データフローを制御するための信号情報（通信経路、通信品質等）を端末（１１０）とＡＴＭ交換機（１００）及び、ＡＴＭ交換機間で転送するフローである。
【００３６】
信号情報は信号処理用上位レイヤ（２４２−１，２４２−２）により終端される。端末（１１０）における信号ｆｌｏｗ（３０２）の送受信処理は、前記のＵｓｅｒ  ｆｌｏｗの場合と同様である。ＡＴＭ交換機（１００）でも、端末（１１０）と同様に信号ｆｌｏｗ（３０２）が終端される。
【００３７】
次に、ＯＡＭ(Operations And Maintenance)ｆｌｏｗ（３０３）は、通信を管理するための管理情報を通信装置間で転送するフローである。
【００３８】
管理情報としては、故障の通知、通信品質の監視情報等がある。管理情報は管理用上位レイヤ（２４３−１，２４３−２）により終端される。管理情報は１つのＡＴＭセルに収まるサイズであり、ＡＡＬ（２３０）を必要とせずＡＴＭレイヤ（２２０）と上位レイヤ（２４０）が直接通信データを受け渡す。
【００３９】
ＡＴＭ交換機（１００）に示すように、ＯＡＭ  ｆｌｏｗ（３０３）は全ての通信装置で終端されるのではなく、予め設定された通信装置においてのみ終端される。そうでない通信装置では、ＡＴＭレイヤ（２２０−２）の処理を実行するのみで先に転送する。
【００４０】
次に、図３に、通信データのフォーマットを示す。
【００４１】
以下では、上位レイヤ（２４０）からＡＴＭレイヤ（２２０）へのデータの流れについて説明する。
【００４２】
まず、Ｕｓｅｒ  ｆｌｏｗ（３０１）または信号ｆｌｏｗ（３０２）について述べる。
【００４３】
Ｕｓｅｒ  ｆｌｏｗ（３０１）または信号ｆｌｏｗ（３０２）では、上位レイヤで発生したＵｓｅｒ情報または信号情報（２４５）がＡＡＬ（２３０）に渡される。ＡＡＬは、受取った情報（２４５）をＡＡＬ  Ｐａｙｌｏａｄ（２３２）とし、これにビットエラー検出符号等の制御情報をＡＡＬ  Ｔｒａｉｌｅｒ（２３３）として付与して、ＡＡＬ−ＰＤＵ（２３１）を構成する。そして、その後、２３１は４８バイト毎に分解されて、ＡＴＭレイヤ（２２０）に渡される。ＡＴＭレイヤは、ＡＡＬレイヤからの４８バイトデータをＣｅｌｌ  Ｐａｙｌｏａｄ（３１）とし、これに５バイトのＣｅｌｌ  Ｈｅａｄｅｒ（３２）を付加してＡＴＭ  Ｃｅｌｌ（３０）を構成する。
【００４４】
Ｃｅｌｌ  Ｈｅａｄｅｒ（３２）は、ＶＰＩ(Virtual Path Identifier)３３、ＶＣＩ(Virtual Channel Identifier)３４、ＰＴＩ(Payload Type Identification)３５等からなる。ＶＰＩ（３３）とＶＣＩ（３４）は、通信フローを識別するためのラベルアドレスである。ＶＰＩ（３３）とＶＣＩ（３４）により、通信を２レベルでラベル多重することができる。通信の単位はコネクションと呼ばれ、コネクション単位でスイッチングやトラヒック制御が実行される。ＶＰＩ（３３）が同一であるＡＴＭセルの通信フローがＶＰコネクションを形成し、ＶＰＩ（３３）とＶＣＩ（３４）が同一であるＡＴＭセルフローがＶＣコネクションを形成する。ＰＴＩ（３５）の３ビットはＶＣコネクション上でのセル種別の識別に用いられる。
【００４５】
図４に、端末１（１１０−１）と端末２（１１０−２）間のＡＴＭ通信におけるＶＰＩとＶＣＩによる多重化を示す。端末１（１１０−１）と端末２（１１０−２）間のＡＴＭ回線１２０上に、ＶＰコネクションとして（３１０）と（３１０−１）が多重化されており、更に（３１０）上のＶＣコネクションとして（３２０）と（３２０−１）が多重化されている。
【００４６】
ＶＰコネクション（３１０）上のＡＴＭセルフローとしては、終端点（１１０−１，１１０−２）間にわたるＶＰ−Ｅｎｄ−ｔｏ−Ｅｎｄ  ｆｌｏｗ（３１１）と、コネクションの一部分（例えば、１００−１と１００−２間）におけるＶＰ−Ｓｅｇｍｅｎｔ  ｆｌｏｗ（３１２）がある。ＶＣコネクション（３２０）上のセルフローも同様に、 ＶＣ−Ｅｎｄ−ｔｏ−Ｅｎｄ  ｆｌｏｗ（３２１）と、ＶＣ−Ｓｅｇｍｅｎｔ  ｆｌｏｗ（３２２）がある。
【００４７】
次に、図３のＯＡＭ  ｆｌｏｗ（３０３）のデータフォーマットについて述べる。
【００４８】
ＯＡＭ  ｆｌｏｗ（３０３）では、ＯＡＭ  Ｃｅｌｌ（３０‘）により管理情報（２４６）が転送される。ＯＡＭ  ＣｅｌｌのＨｅａｄｅｒ（３２’）はＵｓｅｒ  ｆｌｏｗ（３０１）及び信号ｆｌｏｗ（３０２）の場合（３２）と同様の構成である。ＯＡＭ  ＣｅｌｌのＰａｙｌｏａｄ（３１‘）は、ＯＡＭ  ｔｙｐｅ（３６）、ＯＡＭ  ｆｕｎｃｔｉｏｎ（３７）及び、ＯＡＭ機能固有情報（３８）等からなる。上位レイヤ（２４０）からの管理情報（２４６）は、ＯＡＭ機能固有情報３８の一部分として転送される。３６と３７は、ＯＡＭ  Ｃｅｌｌ（３０’）の機能を識別するために使用される。
【００４９】
図５は、ＶＣＩ（３４）、ＰＴＩ（３５）、 ＯＡＭ  ｔｙｐｅ（３６）及び、ＯＡＭ  ｆｕｎｃｔｉｏｎ（３７）によるＡＴＭセルの識別を示す。ＡＴＭセルは、ＶＣＩ値により識別されるＶＰコネクション上のセル（３０−１〜３０−８）と、ＰＴＩ値により識別されるＶＣコネクション上のセル（３０−９〜３０−１６）に分類される。
【００５０】
ＶＣＩ値が１、２及び、５のセルは、信号セル（３０−１）である。信号セル（３０−１）は前述の信号情報を転送し、コネクション設定／解除（５−１１）を制御するために使用される。
ＶＣＩ値が３のセルはＶＰ−Ｓｅｇｍｅｎｔ  ＯＡＭセル（３０−２，３０−３）であり、ＶＣＩ値が４のセルはＶＰ−Ｅｎｄ−ｔｏ−Ｅｎｄ  ＯＡＭセル（３０−４〜３０−７）である。ＯＡＭセルは、ＯＡＭ ｔｙｐｅ（３６）とＯＡＭ  ｆｕｎｃｔｉｏｎ（３７）により識別される。ＯＡＭ ｔｙｐｅ（３６）が０００１かつ（ＯＡＭ  ｆｕｎｃｔｉｏｎ３７）が００００ならばＡＩＳ(Alarm Indication Signal)セル（３０−４）であり、ＯＡＭ ｔｙｐｅ（３６）が０００１かつＯＡＭ  ｆｕｎｃｔｉｏｎ（３７）が０００１ならばＲＤＩ(Remote Defect Indication)セル（３０−５）である。ＡＩＳセル（３０−４）とＲＤＩセル（３０―５）は通信装置の故障を伝えるために使用され、これによりＶＰ故障管理機能（５−１４）がサポートされる。
【００５１】
次に、ＯＡＭ ｔｙｐｅ（３６）が０００１かつＯＡＭ  ｆｕｎｃｔｉｏｎ（３７）が１０００のＯＡＭセルは、ＬＢ(LoopBack)セル（３０−２，３０−６）である。ＬＢはＶＰコネクションの端点またはＶＰ−Ｓｅｇｍｅｎｔの端点で折返されてくる。そこで、ＬＢの送受信を監視することで対応する通信経路の正常性を確認できる。この機能は、ＬｏｏｐＢａｃｋ試験（５−１２，５−１５）と呼ばれる。ＯＡＭ ｔｙｐｅ（３６）が００１０のＯＡＭセルはＶＰ−ＭＣ(Monitoring Cell)（３０−７）である。ＶＰ−ＭＣ（３０−７）を定期的に送信することにより、ＶＰコネクション上を転送されるＵｓｅｒセルの通信品質（流量、廃棄量、ビットエラー率等）を監視する。この機能は、ＶＰ性能監視（５−１３，５−１６）と呼ばれる。
【００５２】
次に、ＶＣＩ値が６のセルは、ＶＰ−ＲＭ(Resource Management)セル（３０−８）である。ＶＰ−ＲＭセル（３０−８）により、受信端末または網の輻輳状態を送信端末に通知する。ＶＰ−ＲＭセル（３０−８）は、ＶＰコネクションの帯域を輻輳状態に応じて制御するために使用される。この動的な帯域制御は、ＡＢＲ(Available Bit Rate)制御（５−１７）と呼ばれる。
【００５３】
ＶＣＩ値が３１以上のセルは、ＶＣコネクション上のセル（３０−９〜３０−１６）であり、ＰＴＩ値により機能が識別される。ＰＴＩ（３５）の先頭ビットが０のセルは、Ｕｓｅｒセル（３０−９）である。Ｕｓｅｒセル（３０―９）は端末間でユーザ情報を転送するために使用される（情報転送機能５−１８）。ＰＴＩ値が１００のセルはＶＣ−Ｓｅｇｍｅｎｔ  ＯＡＭセル（３０−１０，３０−１１）であり、ＰＴＩ値が１０１のセルはＶＣ−Ｅｎｄ−ｔｏ−Ｅｎｄ  ＯＡＭセル（３０−１２〜３０−１５）である。 ＯＡＭ ｔｙｐｅ（３６）とＯＡＭｆｕｎｃｔｉｏｎ（３７）によるＯＡＭセルの識別は、前記のＶＰコネクション上のＯＡＭセル（３０−２〜３０−７）の場合と同様である。ただし、管理の対象はＶＣコネクションである。ＰＴＩ値が１１０のセルは、ＶＣ−ＲＭセル（３０−１６）であり、ＶＣコネクションに対するＡＢＲ制御（５−２４）のために使用される。
【００５４】
以下、このようなATM網に適用された回線Ｉｎｔｅｒｆａｃｅ（図１、４０Ａ‘，４０Ａ，４０Ｆ，４０Ｔ，４０Ｓ）の詳細について説明する。
【００５５】
図６に、回線Ｉｎｔｅｒｆａｃｅ（４０Ａ‘，４０Ａ，４０Ｆ，４０Ｔ，４０Ｓ）の構成を示す。
【００５６】
図示するように、回線Ｉｎｔｅｒｆａｃｅ（４０）は、上位システム（４２）、受信物理レイヤ処理部（４１Ｒ）、送信物理レイヤ処理部（４１Ｔ）、ＡＴＭプロトコル処理部（１０）及び、後述するＦＰＧＡ（３）に対するConfiguration Dataを格納しているＦＰＧＡ  Ｐｒｏｇｒａｍ  Ｍｅｍｏｒｙ（１５）よりなる。
【００５７】
上位システム（４２）は、上位バス（４６）を介して受信物理レイヤ処理部（４１Ｒ）、送信物理レイヤ処理部（４１Ｔ）及び、ＡＴＭプロトコル処理部（１０）に接続しており、これらの動作を制御する。
【００５８】
また、上位システム（４２）は、Ｂｕｓ  ｂｒｉｄｇｅ（４８）を経由してシステムバス（１０３）に接続しており、制御部（図１の１０２）とのインタフェース機能ももつ。
【００５９】
ここで、上位システム（４２）は、上位プロセッサ（４３）、上位プロセッサ４３のワークエリアである上位Ｍｅｍｏｒｙ（４４）及び、上位プロセッサ（４３）に対するプログラムを格納しているプロセッサＰｒｏｇｒａｍ  Ｍｅｍｏｒｙ（４５）から構成される。
【００６０】
受信物理レイヤ処理部（４１Ｒ）は、受信回線（１２０Ｒ）から受信した通信データに対して物理レイヤ（図２の２１０）の受信処理を実行する。送信物理レイヤ部（４１Ｔ）はＡＴＭプロトコル処理部（１０）からの送信セルに対して物理レイヤの送信処理を実行して、送信回線（１２０Ｔ）上へ送出する。
【００６１】
ＡＴＭプロトコル処理部（１０）は、ＡＴＭレイヤ（図３の２２０）及びＡＡＬ（図３の２３０）の処理を実行する。
【００６２】
ＡＴＭプロトコル処理部（１０）は、イベント受付部（１）、Ｒｅｃｏｎｆｉｇｕｒａｔｉｏｎ制御部（２）及び、ＦＰＧＡ（３）より構成される。
【００６３】
実際のレイヤ処理は、ＦＰＧＡ（３）内の論理素子によりＦＰＧＡ  ＷｏｒｋＭｅｍｏｒｙ（１４）を作業エリアとして実行される。ＦＰＧＡ（３）内の論理素子としては、素子間の接続が固定的である固定論理素子（３Ｂ）と、素子間の接続がＰｒｏｇｒａｍ  ＳＲＡＭ（３Ｓ）上のConfiguration Data（９−ｘ−ｙ）により決定されるプログラマブル論理素子（３Ｌ）が設けられている。
【００６４】
プログラマブル論理素子（３Ｌ）の素子間接続を決定するConfiguration Dataは、ＦＰＧＡ  Ｐｒｏｇｒａｍ  Ｍｅｍｏｒｙ（１５）からプログラムバス（４７）を介してＦＰＧＡ  Ｐｒｏｇｒａｍ  Ｍｅｍｏｒｙ（１５）にロードされる。ＦＰＧＡ  Ｐｒｏｇｒａｍ  Ｍｅｍｏｒｙ（１５）上には、発生イベント（７）と処理対象コネクションのタイプ（８）毎に、当該発生イベント（７）と処理対象コネクションのタイプ（８）に対して行うべき処理を実現する、プログラマブル論理素子（３L）の素子間接続を記述したConfiguration Data（９）が格納されている。固定論理素子（３Ｂ）では、全てのイベント（７）／コネクションタイプ（８）で共通の処理が実行される。
【００６５】
次に、イベント受付部（１）は、ＡＴＭレイヤ及びＡＡＬ処理上のイベントの発生を監視し、イベントの情報を内部制御バス（１１）によりＲｅｃｏｎｆｉｇｕｒａｔｉｏｎ制御部（２）及びＦＰＧＡ（３）に通知する。イベント受付部（１）は、上位システム（４２）、受信物理レイヤ処理部（４１Ｒ）及び、送信物理レイヤ処理部（４１Ｔ）からのイベントを受付けるＳｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（１Ｓ）、ＡＴＭレイヤとＡＡＬのプロトコルタイマを実現するタイマ回路（１Ｔ）及び、受信物理レイヤ処理部４１Ｒからの受信セルを受取る受信セルＦＩＦＯ（１Ｒ）からなる。
【００６６】
次に、Ｒｅｃｏｎｆｉｇｕｒａｔｉｏｎ制御部（２）は、ＦＰＧＡのＰｒｏｇｒａｍ  ＳＲＡＭ（３Ｓ）へのConfiguration Dataのロードをイベント発生毎に実行する。Ｒｅｃｏｎｆｉｇｕｒａｔｉｏｎ制御部（２）は、イベント受付部（１）からのイベントを分析するイベント分析回路（２Ｅ）と、 ＦＰＧＡ  Ｐｒｏｇｒａｍ  Ｍｅｍｏｒｙ（１５）からＦＰＧＡのＰｒｏｇｒａｍ  ＳＲＡＭ（３Ｓ）へのConfiguration Data（９−ｘ−ｙ）のロードを実行するＰｒｏｇｒａｍ  ｌｏａｄｅｒ（２Ｐ）から構成される。
【００６７】
このような構成において、ＦＰＧＡ（３）は、ＦＰＧＡのＰｒｏｇｒａｍ  ＳＲＡＭ（３Ｓ）へのConfiguration Dataのダウンロード完了後にＡＴＭレイヤとＡＡＬのレイヤ処理を実行する。
【００６８】
先に図２に示したように、ＦＰＧＡ（３）は、ＡＴＭレイヤ処理のみを行う場合と（ＡＴＭ交換機（１００）におけるＵｓｅｒ  ｆｌｏｗ（３０１））と、ＡＡＬまで行う場合（１００における信号ｆｌｏｗ（３０２））がある。前者の場合ＦＰＧＡ（３）は、受信セルＦＩＦＯ（１Ｒ）からのセルに対してＡＴＭレイヤ処理を実行して、送信セルを送信物理レイヤ処理部（４１Ｔ）へ転送する。後者の場合ＦＰＧＡ（３）は、Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（１Ｓ）を介して上位Ｍｅｍｏｒｙ（４４）にアクセスしてＡＡＬ処理を実行する。すなわち、この場合は、ＦＰＧＡ(３)は、上位Ｍｅｍｏｒｙ（４４）上の上位レイヤ情報（図３の２４５，２４６）をＡＴＭセルに分解して送信し、受信ＡＴＭセルから上位レイヤ情報を組立てて上位Ｍｅｍｏｒｙ（４４）に格納する。
【００６９】
以下、ＡＴＭプロトコル処理部（１０）の行う処理の詳細について説明する。
【００７０】
図７に、ＡＴＭプロトコル処理部（１０）の行う処理のフローを示す。
【００７１】
図示するように、ＡＴＭプロトコル処理部（１０）の行う処理としては、イベント受付部（１）によるイベント受付（６０）、 Ｒｅｃｏｎｆｉｇｕｒａｔｉｏｎ制御部（２）によるＦＰＧＡ  Ｐｒｏｇｒａｍ選択（７０）とＰｒｏｇｒａｍ  Ｌｏａｄ（８０）及び、ＦＰＧＡ（３）によるＰｒｏｇｒａｍ実行（９０）がある。
【００７２】
イベント受付処理（６０）は、受信セルＦＩＦＯ（図６の１Ｒ）で実行される処理（６Ｒ）、タイマ回路（図６の１Ｔ）で実行される処理（６Ｔ）及び、Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（図６の１Ｓ）で実行される処理（６Ｓ）から構成される。
【００７３】
受信セルＦＩＦＯ（1R)で実行される処理（６Ｒ）では、ＦＩＦＯ中に受信セルがある場合はセル受信信号を発生する（６Ｒ−２）。タイマ回路(1T)で実行される処理（６Ｔ）では、タイムアウトが存在する場合はタイムアウト信号を発生する（６Ｔ−２）。Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（１Ｓ）で実行される処理（６Ｓ）では、上位からのコマンドが存在する場合はコマンド信号を発生する（６Ｓ−２）。
【００７４】
次に、ＦＰＧＡ  Ｐｒｏｇｒａｍ選択処理（７０）では、イベント分析回路（図６の２Ｅ）が６０から信号を受取って発生イベントを分析する。セル受信信号を受取った場合（７２−Ｒ）は１Ｒ中の受信セルを識別し（７３−Ｒ）、タイムアウト信号を受取った場合（７２−Ｔ）はタイムアウトしたタイマを識別し（７３−Ｔ）、コマンド信号を受取った場合（７２−Ｓ）はコマンドの種別を識別する（７３−Ｓ）。
【００７５】
そして、イベントの分析後、処理対象コネクションのタイプを識別する（７４）。その後、発生イベントと処理対象コネクションに対応したConfiguration DataをＦＰＧＡ  Ｐｒｏｇｒａｍ  Ｍｅｍｏｒｙ（図６の１５）上から選択し（７５）、Ｐｒｏｇｒａｍ  ｌｏａｄ信号を発生する（７６）。ここで、ＦＰＧＡ  Ｐｒｏｇｒａｍ  Ｍｅｍｏｒｙ（図６の１５）上の各Configuration Dataは、「通常コネクション上でのＵｓｅｒ  Ｃｅｌｌ受信処理」（９−４４−１１）のように、どのコネクションタイプに対するどのイベントに対する処理という単位毎に記述された、当該処理を実現させる素子間接続を記述した情報である。
【００７６】
次に、Ｐｒｏｇｒａｍ  Ｌｏａｄ処理（８０）では、Ｐｒｏｇｒａｍ  ｌｏａｄｅｒ（図６の２Ｐ）が処理８１においてＰｒｏｇｒａｍ  ｌｏａｄ信号を受取り、処理（７５）で選択されたConfiguration DataをＦＰＧＡ  ＰｒｏｇｒａｍＭｅｍｏｒｙ（図６の１５）からＰｒｏｇｒａｍ  ＳＲＡＭ（図６の３Ｓ）へロードする（８４）。ここで、ｌｏａｄ可能数（８３，８５）はＰｒｏｇｒａｍＳＲＡＭ（３Ｓ）に対するＰｒｏｇｒａｍ  ｌｏａｄｅｒ（２Ｐ）とＦＰＧＡ（３）間でのアクセス競合を解消するための変数である。ｌｏａｄ可能数はＰｒｏｇｒａｍ  ＳＲＡＭ（３Ｓ）の数（図６の場合は１）で初期化される。ｌｏａｄ可能数がゼロの場合は、Ｐｒｏｇｒａｍ  ｌｏａｄｅｒ（２Ｐ）がアクセス可能な３Ｓが存在しないので、再度Ｐｒｏｇｒａｍ  ｌｏａｄ信号を発する（８７）ことにより、本信号に対する処理を保留する。 ｌｏａｄ可能数が正の場合は、プログラムをロードし（８４）、 ｌｏａｄ可能数をデクリメントし（８５）、 ｌｏａｄ完了信号を発生する（８６）。
【００７７】
Ｐｒｏｇｒａｍ実行処理（９０）では、ＦＰＧＡ（図６の３）が処理９１においてｌｏａｄ完了信号を受取り（９２）、ロードしたConfiguration Dataに従って形成した素子間接続によって実現される論理回路でATM処理を実行し（９３）、 完了したならばｌｏａｄ可能数をインクリメントする（９４）。
【００７８】
ここで、処理９３で実行される、一回のConfiguration Dataのロードに対応して行われるＡＴＭ処理（９）は、「通常コネクション上でのＵｓｅｒ  Ｃｅｌｌ受信処理」（９−４４−１１）のように、どのコネクションタイプに対するどのイベントの処理という単位の処理となる。すなわち、本実施形態では、イベント発生毎に、イベントとコネクションに対応するConfiguration Data（９−ｘ−ｙ）をＦＰＧＡ  Ｐｒｏｇｒａｍ  Ｍｅｍｏｒｙ（１５）からＰｒｏｇｒａｍ  ＳＲＡＭ（３Ｓ）にロードし、発生イベントと処理対象コネクションに応じたプロトコル処理をFPGA（３）に実行させている。
【００７９】
以下、図７のＦＰＧＡ  Ｐｒｏｇｒａｍ選択処理（７０）の詳細について説明する。
【００８０】
図８に、このＦＰＧＡ  Ｐｒｏｇｒａｍ選択処理（７０）を行うためのATMプロトコル処理部（１０）の構成の詳細を示す。
【００８１】
図には、イベント分析回路（２Ｅ）が、イベント受付部（１）からの情報に基づき、 イベントに対応するConfiguration Dataアドレス／サイズ（５５）を求め、Ｐｒｏｇｒａｍ  ｌｏａｄｅｒ（２Ｐ）へ出力するまでのプロセスに関連するATMプロトコル処理部（１０）の部分を示している。
【００８２】
図中において、イベント受付部（１）では、 Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（１Ｓ）、タイマ回路（１Ｔ）及び、受信セルＦＩＦＯ（１Ｒ）にイベントの情報が記憶されている。Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（１Ｓ）で受付けたイベント（上位／下位イベントと呼ぶ）は、コマンド情報としてコマンドレジスタ（５０Ｓ）に記録される。タイマ回路（１Ｔ）で発生したイベント（タイマイベントと呼ぶ）は、タイマ情報としてタイムアウトレジスタ（５０Ｔ）に記憶される。受信セルＦＩＦＯ（１Ｒ）には、受信セル（５０Ｒ）がセル受信イベントとして記憶される。
【００８３】
ここで、図９にイベントの一覧を示す。
【００８４】
イベントＩＤ（５３）はイベントを一意に識別するための番号であり、本図はイベントＩＤの一例を示している。
【００８５】
図示するように、上位イベント（７−１０）としては、ＬＢ(LoopBack)試験開始（７−１１）等の上位プロセッサ（図６の４３）からの命令がある。下位イベント（７−２０）としては、ＶＣ故障発生（７−２１）等の物理レイヤ処理部（図６の４１Ｒ，４１Ｔ）における状態変化イベントがある。また、タイマイベント（７−３０）としては、警報送信時刻（７−３２）等の一定時刻毎のセル送信イベントと、警報解除時刻（７−３３）のように一定時刻の受信状態監視による状態変化イベントがある。セル受信イベント（７−４０）としては、信号セル受信（７−４３）、Ｕｓｅｒセル受信（７−４４）等、図５に示すセル種別と対応したイベントがある。
【００８６】
さて、図８のイベント分析回路（２Ｅ）は、まず、イベント受付部（１）中のイベント情報によりイベントＩＤ（５３）とコネクションタイプ（５４）を求める。イベントＩＤ（５３）はイベントＩＤ識別部（２１）で導出される。上位／下位イベントのイベントＩＤはコマンドレジスタ（５０Ｓ）からのコマンドＩＤ（５１Ｓ）に基づいて求められ（２１Ｓ）、タイマイベントのイベントＩＤはタイムアウトレジスタ（５０Ｔ）からのタイマＩＤに基づいて導出される（２１Ｔ）。セル受信イベントのイベントＩＤは、受信セル（５０Ｒ）のフィールド、ＶＣＩ（３４）、ＰＴＩ（３５）、ＯＡＭ  ｔｙｐｅ（３６）及び、OAMｆｕｎｃ（３７）を入力（５１Ｒ）として導出される（２１Ｒ）。
【００８７】
このようにしてイベントIDが導出されると、次に、イベント分析回路（２Ｅ）は処理対象のコネクションタイプの識別を行う。
【００８８】
図１０にコネクションタイプの一例を示す。
【００８９】
コネクションは、その上でサポートしている機能によりいくつかのタイプ（５４）に分類される。本例では、サポート可能な機能が、トラヒックポリシングを実行するＵＰＣ(Usage Parameter Control)（５−１）、装置故障を通知するＶＣ故障管理（５−２）、通信品質を監視するＶＣ性能監視（５−３）、通信経路の正常性を確認するＬｏｏｐｂａｃｋ試験（５−４）、通信量を計測する課金（５−５）、通信輻輳をフィードバック制御するＡＢＲ制御（５−６）、セル間の送信順序を制御するＢｕｆｆｅｒ制御（５−７）及び、ＡＴＭセルｈｅａｄｅｒ（図4の３２）を書換えるヘッダ変換（５−８）である場合を示している。Ｂｕｆｆｅｒ制御（５−７）及とヘッダ変換（５−８）は、コネクションのタイプに依らず共通にサポートされる共通機能（５―１０）である。５−１〜５−６は、コネクションタイプ（５４）によりサポート／非サポートが決まる付加機能（５−０）である。
【００９０】
コネクションは、Ｕｓｅｒセルを転送するもの（８−１０，８−２０）と、転送しない試験用コネクション（８−３０）に分類される。前者は、ＡＢＲ制御（５−６）を行わない通常コネクション（８−１０）と、行うＡＢＲコネクション（８−２０）に別れる。更に、通常コネクション（８−１０）とＡＢＲコネクション（８−２０）は、ＶＣ故障管理（５−２）とＶＣ性能監視（５−３）のサポート状態により細分化される。例えば、タイプ１１のコネクション（８―１１）ではＶＣ故障管理（５−２）とＶＣ性能監視（５−３）はサポートされず、タイプ１２（８−１２）上ではＶＣ故障管理（５―２）のみサポートされている。公衆網上での通信では、課金（５−５）は通常コネクション（８−１０）とＡＢＲコネクション（８−２０）でコネクションタイプに依らずサポートされる必要がある。
【００９１】
さて、図８のコネクションタイプ識別部（２２）は、イベント受付部（１）からのＶＰＩ、ＶＣＩ（５２）を入力として、処理対象コネクションのコネクションタイプ（５４）を導出する。コネクションタイプ識別部（２２）は、コネクション情報Ｍｅｍｏｒｙ（２４）上のＶＰＩ／ＶＣＩとコネクションタイプの対応表を参照して５４を求める。Ｐｒｏｇｒａｍ選択部（２３）は、イベントＩＤ（５３）とコネクションタイプ（５４）を入力として、イベント、コネクションタイプに対応するConfiguration Dataのアドレス／サイズ（５５）を出力する。Ｐｒｏｇｒａｍ選択部（２３）は、Ｐｒｏｇｒａｍ情報Ｍｅｍｏｒｙ（２５）上のイベントＩＤ／コネクションタイプとConfiguration Dataアドレス／サイズの対応表を参照して５５を導出する。コネクション情報Ｍｅｍｏｒｙ（２４）とＰｒｏｇｒａｍ情報Ｍｅｍｏｒｙ（２５）上の対応表は、回線インタフェース（図６の４０）の立ち上げ時に、上位プロセッサ（図６の４３）により設定される。
【００９２】
次に、このようにして選択され、Ｐｒｏｇｒａｍ  ＳＲＡＭ（３Ｓ）にロードされたConfiguration Data（９−ｘ−ｙ）によって素子間の接続が形成されたＦＰＧＡ（図６の３）が実行する処理の例を図１１に示す。
【００９３】
Ｂｕｆｆｅｒ制御（５−７）とヘッダ変換（５−８）は共通機能（図１０の５―１０）であり、これらを実現するための処理、優先制御（４−７−１）とヘッダ変換（４−８−１）は、固定論理素子（３Ｂ）上に予めインプリメントされている。ＵＰＣ（５−１）〜ＡＢＲ制御（５−６）は付加機能（図１０の５−０）であり、これらを実現するための処理はプログラマブル論理素子（３Ｌ）で実行される。すなわち、ＵＰＣ（５−１）〜ＡＢＲ制御（５−６）のための処理を実現する素子間の接続を、イベント／コネクションタイプ毎に記述したものがConfiguration Data（ｘ，ｙ）（９−ｘ−ｙ）である。
【００９４】
なお、図６の構成において、イベント発生毎にＰｒｏｇｒａｍ  ＳＲＡＭ（３Ｓ）上のＰｒｏｇｒａｍ（ｘ，ｙ）（９−ｘ−ｙ）は更新される。よって、各プログラム９−ｘ−ｙ間においてグローバルに用いるグローバル変数は、ＦＰＧＡ
Ｗｏｒｋ  Ｍｅｍｏｒｙ（１４）上に配置する必要がある。
【００９５】
さて、図１１には、４つのConfiguration Dataに対応する処理を例示してある。
【００９６】
Configuration Data（９−４４−１１）は、コネクションタイプ１１でのＵｓｅｒセル受信（イベント４４）処理である。図１０によると、タイプ１１のコネクション（図１０の８−１１）上ではＵＰＣ（５−１）と課金（５−５）が付加機能（５−０）としてサポートされている。そこで９−４４−１１では、ＵＰＣによるポリシング（４−１−１）と課金のための計数（４−５−１）のみが実行される。
【００９７】
Configuration Data（９−４４−２５）は前記と同様にＵｓｅｒセル受信処理（イベント４４）であるが、コネクションタイプ２５に対する処理である。タイプ２５のコネクション上では、ＵＰＣ（５−１）、ＶＣ故障管理（５−２）、ＶＣ性能監視（５−３）、課金（５−５）及び、ＡＢＲ制御（５−６）がサポートされている。よってConfiguration Data（９−４４−２５）では、ＵＰＣ（５−１）によるポリシング（４−１−２）、ＶＣ故障管理（５−２）のためのＶＣ回復監視（４−２−２）、ＶＣ性能監視（５−３）のための品質監視（４−３−２）／ＭＣ送信制御（４−３‘−２）、課金（５−５）のための計数（４−５−２）及び、ＡＢＲ制御（５−６）のための輻輳監視（４−６−２）／輻輳設定（４−６’−２）が実行される。
【００９８】
Configuration Data（９−４７−２５）は前記と同様にコネクション２５に対する処理であるが、イベントがＭＣ（ＶＣ−ＳＧ）受信である。そこで、Configuration Data（９−４７−２５）では、ＶＣ性能監視（５−３）のためのＭＣ（ＶＣ−ＳＧ）受信処理（４−３−３）のみが実行される。
【００９９】
このように、本実施形態では、FPGA(3)で実行される処理は発生イベントと処理対象コネクションのタイプによって異なる。
【０１００】
すなわち、図１２に示す従来のプログラム可能な論理デバイスをプロトコル用いた技術のように、全てのイベント／機能に対する処理を実現するConfiguration Data（９‘）をインプリメントせずに、本実施形態では、ＦＰＧＡ（図１の３）上には発生したイベントの処理に必要なConfiguration Dataのみを、その処理が終了するまでだけインプリメントすることになる。
【０１０１】
例えば図１１では、タイプ１１のコネクション上でＵｓｅｒセルを受信した場合は、Configuration Data（９−４４−１１）がＦＰＧＡ内にロードされ、ポリシング（４−１−１）と計数（４−５−１）のみがインプリメントされる。その他の処理、ＶＣ回復監視（４−２−２）、品質監視（４―３−２）等はＦＰＧＡ上にインプリメントされない。
【０１０２】
すなわち、本実施形態では、FPGA(3)のプログラムの発生イベントに応じた動的なConfiguration Dataのロード（Ｄｙｎａｍｉｃ  Ｒｅｃｏｎｆｉｇｕｒａｔｉｏｎと呼ぶ）を行うことにより、一度に、FPGA(3)にインプリメントする論理量が少なくても済むようになっている。言い換えるならば、その時点で処理すべきイベントと無関係な処理に対応する論理部分をFPGA(3)上に形成しない。
【０１０３】
したがって、このようなＤｙｎａｍｉｃ  Ｒｅｃｏｎｆｉｇｕｒａｔｉｏｎにより、プロトコル処理を実現するために必要な、FPGA(3)のハード量は少なくて済み、また、FPGA(3)を用いてより多数の機能を実現することが可能である。さらに、FPGA(3)上に形成される論理回路が大規模化しないので、配線遅延などによる処理の遅延を低減することができる。
【０１０４】
以上、本発明の実施形態について説明した。
【０１０５】
ところで、以上の実施形態では、FPGA（３）のConfiguration DataをロードするＰｒｏｇｒａｍ  ＳＲＡＭ（３Ｓ）を一つだけ備えた場合（図７のLoad可能数の初期値が１の場合）について示した。
【０１０６】
しかし、Ｐｒｏｇｒａｍ  ＳＲＡＭ（３Ｓ）が一つだけであると、Ｐｒｏｇｒａｍ  ＳＲＡＭ（３Ｓ）のアクセスにおいて、Ｐｒｏｇｒａｍ  ｌｏａｄｅｒ（２Ｐ）とプログラマブル論理素子（３Ｌ）の間で発生する競合によって処理を高速に行えなくなる場合がある。
【０１０７】
たとえば、図１３に示すように、イベント１（７−１）に対するＰｒｏｇｒａｍ実行（９０―１）が完了するまで、イベント２（７−２）のＰｒｏｇｒａｍ  Ｌｏａｄ（８０−２）を開始できずに待たされることにより、処理のスループットを劣化させ、ひいては通信スループットに悪影響を与えることがある。
【０１０８】
そこで、図１４に示すように、Ｐｒｏｇｒａｍ  ＳＲＡＭを２面（３Ｓ−１，３Ｓ−２）化して（図７のLoad可能数の初期値を２として）、 Ｐｒｏｇｒａｍ
ＬｏａｄとＰｒｏｇｒａｍ実行の並列化を図るようにすることが好ましい。
【０１０９】
図１４において、セレクタ１（３Ｘ−１）は、プログラムバス（４７）上の転送終了信号を検出して、プログラムバス（４７）と接続するＰｒｏｇｒａｍ  ＳＲＡＭを切換える。セレクタ２（３Ｓ−２）は、FPGA３のプログラマブル論理素子（３Ｌ）からの実行終了信号（５６）を検出して、プログラマブル論理素子（３Ｌ）へ接続するＰｒｏｇｒａｍ  ＳＲＡＭを切換える。本構成により、Ｐｒｏｇｒａｍ  ＳＲＡＭ（３Ｓ−１）上のConfiguration Dataに従ったProgram実行(90)中にＰｒｏｇｒａｍ  ＳＲＡＭ（３Ｓ−２）へ次のConfiguration DataをＬｏａｄすることができる。
【０１１０】
すなわち、たとえば図１４に示すように、 Ｐｒｏｇｒａｍ  Ｌｏａｄ（８０）の所要時間がProgram実行（９０）の所要時間以下であればイベント２‘のＰｒｏｇｒａｍ  Ｌｏａｄ（８０−２’）は、イベント１‘のＰｒｏｇｒａｍ実行（９０−１’）中に完了する。したがって、Ｐｒｏｇｒａｍ  Ｌｏａｄ（８０）のための処理オーバーヘッドは処理のスループットに影響を与えない。なお、１５５Ｍｂｉｔ／ｓの通信スループットの場合、１つのＡＴＭ  Ｃｅｌｌ当たりの処理時間は約２．７μｓである。
【０１１１】
また、以上の実施形態は、ＡＴＭ網への適用を例にとり説明したが、本実施形態は、ＩＰ(Internet Protocol)やIP OVER ATM等の他のパケット転送プロトコルを処理する通信装置の回線interface等にも同様に適用することができる。この場合は、ＩＰやIP OVER ATMのプロトコル処理を、FPGA(3)によって行うようにし、FPGA(3)に、ＩＰやIP OVER ATMに従って定まる発生イベントに応じたプログラムを動的にロードを行うようにする。
【０１１２】
また、以上の実施形態では、ロードするConfiguration Dataの選択を発生イベントから得られる情報（イベントＩＤ，コネクションタイプ）に基づいて行ったが、Configuration Data選択のための情報として、プロトコル上の状態番号などのＡＴＭプロトコル処理装置の内部情報も利用するようにしてもよい。
【０１１３】
【発明の効果】
以上のように本発明によれば、プログラム可能な論理デバイスを用いたプロトコル処理を、プロトコル処理全体の規模が大きい場合でも、処理速度の低下や論理デバイスサイズの増大化を、より抑えて実現することができる。
【図面の簡単な説明】
【図１】ATM網の構成を示すブロック図である。
【図２】ATM網におけるプロトコルスタックを示す図である。
【図３】ATMセルのフォーマットを示す図である。
【図４】ＡＴＭ通信コネクションの形態を示す図である。
【図５】ＡＴＭセルの種別を示す図ある。
【図６】本発明の実施形態に係る回線Interfaceの構成を示す図である。
【図７】本発明の実施形態に係るＡＴＭプロトコル処理装置の処理を示すフロー図である。
【図８】本発明の実施形態に係るＡＴＭプロトコル処理装置においてプログラムを選択するための構成を示した図である。
【図９】本発明の実施形態に係るＡＴＭ回線インタフェースが処理対象とするイベントの種別を示す図ある。
【図１０】本発明の実施形態に係るＡＴＭプロトコル処理装置がサポートする機能の一例を示す図である。
【図１１】本発明の実施形態においてFPGAが行うプロトコル処理例を示す図である。
【図１２】従来技術を適用した場合にFPGAが行うプロトコル処理例を示す図である。
【図１３】本発明の実施形態においてFPGA Program SRAMが一つの場合の処理スケジューリングの一例を示す図である。
【図１４】本発明の実施形態においてFPGA Program SRAMを２つ備えた場合のFPGAの構成を示すブロック図である。
【図１５】本発明の実施形態においてFPGA Program SRAMを２つ備えた場合の処理スケジューリングの一例を示す図である。
【符号の説明】
１・・・イベント受付部、２・・・Ｒｅｃｏｎｆｉｇｕｒａｔｉｏｎ制御部、３・・・ＦＰＧＡ、９・・・Configuration Data、１０・・・ＡＴＭプロトコル処理部、１５・・・ＦＰＧＡ  Ｐｒｏｇｒａｍ  Ｍｅｍｏｒｙ、４０・・・回線ｉｎｔｅｒｆａｃｅ、４１Ｒ・・・受信物理レイヤ処理部、４１Ｔ・・・送信物理レイヤ処理部、４２・・・上位システム、４６・・・上位バス、１００・・・ＡＴＭ交換機、１０２・・・制御部、１１０・・・端末、１２０・・・ＡＴＭ回線
【図１】
0003660494.tif 000002
【図２】
0003660494.tif 000003
【図３】
0003660494.tif 000004
【図４】
0003660494.tif 000005
【図５】
0003660494.tif 000006
【図６】
0003660494.tif 000007
【図７】
0003660494.tif 000008
【図８】
0003660494.tif 000009
【図９】
0003660494.tif 000010
【図１０】
0003660494.tif 000011
【図１１】
0003660494.tif 000012
【図１２】
0003660494.tif 000013
【図１３】
0003660494.tif 000014
【図１４】
0003660494.tif 000015
【図１５】
0003660494.tif 000016