JP3660494B2 - Communication protocol processing method and communication protocol processing apparatus - Google Patents

Communication protocol processing method and communication protocol processing apparatus Download PDF

Info

Publication number
JP3660494B2
JP3660494B2 JP02201398A JP2201398A JP3660494B2 JP 3660494 B2 JP3660494 B2 JP 3660494B2 JP 02201398 A JP02201398 A JP 02201398A JP 2201398 A JP2201398 A JP 2201398A JP 3660494 B2 JP3660494 B2 JP 3660494B2
Authority
JP
Japan
Prior art keywords
communication protocol
protocol processing
configuration data
atm
communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP02201398A
Other languages
Japanese (ja)
Other versions
JPH11220475A (en
Inventor
哲也 鈴鹿
進 中屋敷
基 阿部
達也 横山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP02201398A priority Critical patent/JP3660494B2/en
Publication of JPH11220475A publication Critical patent/JPH11220475A/en
Application granted granted Critical
Publication of JP3660494B2 publication Critical patent/JP3660494B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、Internet,LAN,ATM等の技術を適用したネットワークを構成する通信装置において通信プロトコルを処理する技術に関するものである。
【0002】
【従来の技術】
近年の通信の大容量化・多様化は、高速かつマルチメディア対応の基幹網によって支えられている。そして、このような基幹網の有力なものの一つは、ATM(Asynchronous Transfer Mode)通信網である。ここで、従来、高速なATM通信を実現するために、通信装置における、物理レイヤ及びデータリンクレイヤといった低位のプロトコル処理を行う論理回路は、一般的にASIC(Application Specific Integrated Circuit)によって実現されてきた。
【0003】
しかし、ATMに限らず、通信プロトコルの仕様はしばしば変更されることがある。たとえば、通信環境の変化に従ってプロトコル仕様の国際標準が変更されることもあれば、適応先の網に固有の運用・管理手順を追加するためにプロトコル仕様が変更されることもある。そして、従来のASICを用いた論理回路によってプロトコル処理を行う構成では、プロトコル仕様が変更されると、これに伴いASICを、製造プロセスのマスクパターンを変更して製造した、ASIC内の論理素子間の物理的接続が異なる新たなASICに交換する必要がある。これは、ASICの動作を決定する、ASIC内の論理素子間の物理的接続は、製造プロセスの段階で固定化されているため、その動作を変更することができないためである。
【0004】
このためASICを用いる技術では、プロトコル仕様の変更に柔軟に対応することができず、プロトコル仕様の変更への対応には長い開発時間とコストがかかる。
【0005】
一方、FPGA(Field Programmable Gate Array)等のプログラム可能な論理デバイスを用いて、プロトコル処理を行う論理回路を構成することにより、プロトコル仕様の変更に柔軟に対応できるようになる。
【0006】
プログラム可能な論理デバイスの論理素子間の接続は、論理素子間の接続の記述(Configuration Dataと呼ぶ)を結線情報用の内部メモリ上に配置することで実現される。このため、内部メモリ上の論理素子間の接続の記述を書き換えることにより、論理素子間の接続を変更し、プログラム可能な論理デバイスに異なる動作を行わせることができる。このため、プログラム可能な論理デバイスを用いる技術によれば、プロトコル仕様の変更に内部メモリの書換えで対応することができるようになる。
【0007】
ここで、このようなプログラム可能な論理デバイスをプロトコル処理に用いる技術としては、たとえば、次の二つの技術が知られている。
【0008】
第1の技術は、藤井他「FPGAを用いたプログラマブルな高速通信ネットワークHUB装置」(電子通信学会技術研究報告 交換システム,SSE95-91,pp127-132,1995年9月)に記述された、 ATM網とメモリーバス網との相互接続に用いられるATMインタフェース装置についてのものである。
【0009】
この装置では、ATMプロトコル及びバス伝送プロトコルのプロトコル処理を行わせるConfiguration Dataが外部記憶装置上に格納されており、このConfiguration Data全体が、装置の立上げ時にFPGAの内部メモリに読込まれ、動作中は内部メモリ上に保持される。
【0010】
この技術では、外部記憶装置上のConfiguration Dataの変更でプロトコル仕様の変更に対応できるようになる。
【0011】
第2の技術は、US特許5414707“Broadband ISDN Processing Method And System”に記載された、複数の通信サービスをサポート可能なATM端末アダプタについてのものである。
【0012】
この技術では、プロトコル処理を行わせるConfiguration Dataが通信サービス毎に外部記憶装置上に格納されている。一方、アダプタは、入力された通信データから、その通信サービスと通信プロトコルを決定して、対応するConfiguration Dataを外部記憶装置から内部メモリにロードする。
【0013】
この技術では、複数の通信プロトコルのプロトコル処理を実現するためのConfiguration Dataの全てを内部メモリにロードすることなく、複数の通信プロトコルに対応しようとするものである。
【0014】
【発明が解決しようとする課題】
前記従来のプログラム可能な論理デバイスをプロトコル処理に用いる技術によれば、プロトコル処理全体を行わせるConfiguration Dataを内部メモリにロードし、これに従って論理回路をプログラム可能な論理デバイス内に形成させる。
【0015】
一方、プログラム可能な論理デバイスは、個々の論理素子の構造が複雑であり、論理素子間の配線の自由度が低く、ASICに比べて集積度が低い。このため、プロトコル処理の規模が大きくなり、これを行わせるConfiguration Dataに従った論理素子間の接続によって実現される論理回路規模が大きくなると、ASICの場合と比べて、プログラム可能な論理デバイスのサイズが大きくなる。また、論理素子間の配線の自由度が低いことなどより、プロトコル処理を行わせるConfiguration Dataに従った論理素子間の接続によって実現される論理回路規模が大きくなると、個々のイベントに対する処理を行う論路回路部分を、その処理に対して最適な構成に形成することができず、処理速度が低下する。なお、イベントに対する処理とは、通信プロトコルに関連するイベント(ATMセル受信、タイムアウト等)発生に対して行う処理(セル受信処理、タイムアウト処理)であり、プロトコル処理は、基本的には、複数のイベントに対する処理の集合である。
【0016】
したがって、前記従来の技術によれば、プロトコル処理の規模が大きい場合、処理速度の低下や、論理デバイスサイズの増大化を招く。
【0017】
そこで、本発明は、プログラム可能な論理デバイスを用いたプロトコル処理を、プロトコル処理の規模が大きい場合でも、処理速度の低下や論理デバイスサイズの増大化を、より抑えて実現することを課題とする。
【0018】
【課題を解決するための手段】
前記課題達成のために、本発明は、たとえば、通信プロトコルの処理を行う通信プロトコル処理装置において、設定された構成データに従った論理回路を形成するプログラマブル論理デバイスを用いて通信プロトコルの処理を行う方法であって、
相互に独立して行われる通信プロトコルの処理の部分毎に、通信プロトコルの処理の部分を行う論理回路を前記プログラマブル論理デバイス上に形成する構成データを用意し
通信プロトコルの処理を実行すべき時点において、動的に、当該時点において実行すべき通信プロトコルの処理の部分を判定し、判定した通信プロトコルの処理の部分に対応する構成データを選択し、前記プログラマブル論理デバイスに設定することを特徴とする通信プロトコル処理方法を提供する。
【0019】
このような通信プロトコル処理方法によれば、全ての通信プロトコル処理を実現する論理回路を形成する構成データを、プログラマブル論理デバイスに設定するのではなく、その時点で行う必要のある通信プロトコル処理の部分を行う論理回路を形成する構成データのみをプログラマブル論理デバイスに設定する。これにより、一度に、プログラム可能な論理デバイス上に形成する論理回路の論理量が少なくても済むようになっている。言い換えるならば、その時点で行う処理すと無関係な処理を行う論理回路をプログラム可能な論理デバイス上に形成しない。
【0020】
したがって、このような方法によれば、プロトコル処理を実現するために必要な、プログラマブル論理デバイスのハード量は少なくて済み、また、プログラマブル論理デバイスを用いてより多数の機能を実現することが可能である。さらに、プログラマブル論理デバイス上に形成される論理回路が大規模化しないので、配線遅延などによる処理の遅延を低減することができる。
【0021】
【発明の実施の形態】
以下、本発明の実施形態について、ATM網への適用を例にとり説明する。また、本実施形態では、論理素子間の接続をプログラム可能な論理デバイスとしてFPGAを用いる場合を例にとる。
【0022】
図1に、ATM通信網の全体構成を示す。
【0023】
図中において、端末(110,110−1,110−2,110−3)間の通信は、ATM交換機(100,100−1,100−2)及び、それらを相互に接続する中継ATM網130を介して実行される。ATM交換機(100)は、Cell RelayやFrame Relayといた各種の通信サービスを提供する回線(120A,120F)を介して端末(110,110−1) と接続している。。
【0024】
ATM交換機(100)は、各種の回線を収容する回線interface(40A,40F,40T,40S)、通信データに対する交換を実行するATMSwitch(101)及び、ATM交換機全体の動作を制御する制御部(102)より構成されている。
【0025】
ATM交換機(100)において、端末からの通信データは、回線interface(40A,40F)により内部回線120L上に収容される。内部回線間の接続は、ATM Switch(101)の交換機能により実現されている。通信データは、その宛先端末により端末と接続する回線interface(40A,40F)または中継ATM網(130)と接続する回線interface(40T)に交換される。また、通信データが後述する信号である場合は、信号回線(120)に交換されて、信号用の回線interface(40S)で終端される。
【0026】
また、制御部(102)は、システムバス(103)により回線interface(40A、40F、40T、40S)及び、ATM Switch(101)に接続している。制御部(102)は、回線interface(40S)で終端された信号に基づいてATM Switch(101)の交換動作及び、回線interface(40A、40F、40T)の回線収容動作を制御する。
【0027】
一方、端末(110)において、回線interface(40A‘)はプロセッサ(111)とCell Relay回線(120A)の間で通信データの受け渡しを実行する。
【0028】
次に、図2に、端末(110)とATM交換機(100)における通信データフロー及び、プロトコルスタックを示す。
【0029】
プロトコルレイヤとしては、物理レイヤ(210)、ATMレイヤ(220)、AAL(ATM Adaptation Layer)(230)及び、上位レイヤ(240)がある。
【0030】
物理レイヤ(210)、ATMレイヤ(220)、AAL(230)は、回線interfaceの機能(200)で処理するレイヤである。上位レイヤ(240)は、端末内のプロセッサ(111)またはATM交換機内の制御部(102)の機能で処理するレイヤある。
【0031】
ATMレイヤ(220)では、ATMセルと呼ばれる53バイト長のパケットにより通信を実現する。物理レイヤ(210)は、物理媒体(光ファイバ等)上でのビット伝送機能と、ATMセルの物理レイヤ伝送へのマッピング機能を提供する。AAL(230)はATMレイヤと上位レイヤ間のマッピングをサポートしている。
【0032】
次に、通信データのフローとしては、User flow(301)、信号flow(302)及びOAM flow(303)がある。
User flow(301)は、端末間でのユーザ情報の通信フローである。
【0033】
端末110が送信する場合は、User用上位レイヤ(241−1)からのユーザ情報がAAL(230−1)で固定長のセルに分解される。この固定長セルは、ATMレイヤ(220―1)でATMセル化され、物理レイヤ210−1によりビット転送される。ATM交換機100では、User flow(301)に対してはATMレイヤ(220−2)の処理が実行される。
【0034】
逆に、端末(110)がUser flow(301)受信する場合は、物理レイヤ(210−1)が転送されてきたビットストリームからATMセルを再構成し、ATMレイヤ(220−1)はそのATMセルに対してATM処理を実行する。AAL(230−1)は、受信したATMセルからユーザ情報を組み立て、User用上位レイヤ(241−1)に渡す。
【0035】
次に、信号flow(302)は、データフローを制御するための信号情報(通信経路、通信品質等)を端末(110)とATM交換機(100)及び、ATM交換機間で転送するフローである。
【0036】
信号情報は信号処理用上位レイヤ(242−1,242−2)により終端される。端末(110)における信号flow(302)の送受信処理は、前記のUser flowの場合と同様である。ATM交換機(100)でも、端末(110)と同様に信号flow(302)が終端される。
【0037】
次に、OAM(Operations And Maintenance)flow(303)は、通信を管理するための管理情報を通信装置間で転送するフローである。
【0038】
管理情報としては、故障の通知、通信品質の監視情報等がある。管理情報は管理用上位レイヤ(243−1,243−2)により終端される。管理情報は1つのATMセルに収まるサイズであり、AAL(230)を必要とせずATMレイヤ(220)と上位レイヤ(240)が直接通信データを受け渡す。
【0039】
ATM交換機(100)に示すように、OAM flow(303)は全ての通信装置で終端されるのではなく、予め設定された通信装置においてのみ終端される。そうでない通信装置では、ATMレイヤ(220−2)の処理を実行するのみで先に転送する。
【0040】
次に、図3に、通信データのフォーマットを示す。
【0041】
以下では、上位レイヤ(240)からATMレイヤ(220)へのデータの流れについて説明する。
【0042】
まず、User flow(301)または信号flow(302)について述べる。
【0043】
User flow(301)または信号flow(302)では、上位レイヤで発生したUser情報または信号情報(245)がAAL(230)に渡される。AALは、受取った情報(245)をAAL Payload(232)とし、これにビットエラー検出符号等の制御情報をAAL Trailer(233)として付与して、AAL−PDU(231)を構成する。そして、その後、231は48バイト毎に分解されて、ATMレイヤ(220)に渡される。ATMレイヤは、AALレイヤからの48バイトデータをCell Payload(31)とし、これに5バイトのCell Header(32)を付加してATM Cell(30)を構成する。
【0044】
Cell Header(32)は、VPI(Virtual Path Identifier)33、VCI(Virtual Channel Identifier)34、PTI(Payload Type Identification)35等からなる。VPI(33)とVCI(34)は、通信フローを識別するためのラベルアドレスである。VPI(33)とVCI(34)により、通信を2レベルでラベル多重することができる。通信の単位はコネクションと呼ばれ、コネクション単位でスイッチングやトラヒック制御が実行される。VPI(33)が同一であるATMセルの通信フローがVPコネクションを形成し、VPI(33)とVCI(34)が同一であるATMセルフローがVCコネクションを形成する。PTI(35)の3ビットはVCコネクション上でのセル種別の識別に用いられる。
【0045】
図4に、端末1(110−1)と端末2(110−2)間のATM通信におけるVPIとVCIによる多重化を示す。端末1(110−1)と端末2(110−2)間のATM回線120上に、VPコネクションとして(310)と(310−1)が多重化されており、更に(310)上のVCコネクションとして(320)と(320−1)が多重化されている。
【0046】
VPコネクション(310)上のATMセルフローとしては、終端点(110−1,110−2)間にわたるVP−End−to−End flow(311)と、コネクションの一部分(例えば、100−1と100−2間)におけるVP−Segment flow(312)がある。VCコネクション(320)上のセルフローも同様に、 VC−End−to−End flow(321)と、VC−Segment flow(322)がある。
【0047】
次に、図3のOAM flow(303)のデータフォーマットについて述べる。
【0048】
OAM flow(303)では、OAM Cell(30‘)により管理情報(246)が転送される。OAM CellのHeader(32’)はUser flow(301)及び信号flow(302)の場合(32)と同様の構成である。OAM CellのPayload(31‘)は、OAM type(36)、OAM function(37)及び、OAM機能固有情報(38)等からなる。上位レイヤ(240)からの管理情報(246)は、OAM機能固有情報38の一部分として転送される。36と37は、OAM Cell(30’)の機能を識別するために使用される。
【0049】
図5は、VCI(34)、PTI(35)、 OAM type(36)及び、OAM function(37)によるATMセルの識別を示す。ATMセルは、VCI値により識別されるVPコネクション上のセル(30−1〜30−8)と、PTI値により識別されるVCコネクション上のセル(30−9〜30−16)に分類される。
【0050】
VCI値が1、2及び、5のセルは、信号セル(30−1)である。信号セル(30−1)は前述の信号情報を転送し、コネクション設定/解除(5−11)を制御するために使用される。
VCI値が3のセルはVP−Segment OAMセル(30−2,30−3)であり、VCI値が4のセルはVP−End−to−End OAMセル(30−4〜30−7)である。OAMセルは、OAM type(36)とOAM function(37)により識別される。OAM type(36)が0001かつ(OAM function37)が0000ならばAIS(Alarm Indication Signal)セル(30−4)であり、OAM type(36)が0001かつOAM function(37)が0001ならばRDI(Remote Defect Indication)セル(30−5)である。AISセル(30−4)とRDIセル(30―5)は通信装置の故障を伝えるために使用され、これによりVP故障管理機能(5−14)がサポートされる。
【0051】
次に、OAM type(36)が0001かつOAM function(37)が1000のOAMセルは、LB(LoopBack)セル(30−2,30−6)である。LBはVPコネクションの端点またはVP−Segmentの端点で折返されてくる。そこで、LBの送受信を監視することで対応する通信経路の正常性を確認できる。この機能は、LoopBack試験(5−12,5−15)と呼ばれる。OAM type(36)が0010のOAMセルはVP−MC(Monitoring Cell)(30−7)である。VP−MC(30−7)を定期的に送信することにより、VPコネクション上を転送されるUserセルの通信品質(流量、廃棄量、ビットエラー率等)を監視する。この機能は、VP性能監視(5−13,5−16)と呼ばれる。
【0052】
次に、VCI値が6のセルは、VP−RM(Resource Management)セル(30−8)である。VP−RMセル(30−8)により、受信端末または網の輻輳状態を送信端末に通知する。VP−RMセル(30−8)は、VPコネクションの帯域を輻輳状態に応じて制御するために使用される。この動的な帯域制御は、ABR(Available Bit Rate)制御(5−17)と呼ばれる。
【0053】
VCI値が31以上のセルは、VCコネクション上のセル(30−9〜30−16)であり、PTI値により機能が識別される。PTI(35)の先頭ビットが0のセルは、Userセル(30−9)である。Userセル(30―9)は端末間でユーザ情報を転送するために使用される(情報転送機能5−18)。PTI値が100のセルはVC−Segment OAMセル(30−10,30−11)であり、PTI値が101のセルはVC−End−to−End OAMセル(30−12〜30−15)である。 OAM type(36)とOAMfunction(37)によるOAMセルの識別は、前記のVPコネクション上のOAMセル(30−2〜30−7)の場合と同様である。ただし、管理の対象はVCコネクションである。PTI値が110のセルは、VC−RMセル(30−16)であり、VCコネクションに対するABR制御(5−24)のために使用される。
【0054】
以下、このようなATM網に適用された回線Interface(図1、40A‘,40A,40F,40T,40S)の詳細について説明する。
【0055】
図6に、回線Interface(40A‘,40A,40F,40T,40S)の構成を示す。
【0056】
図示するように、回線Interface(40)は、上位システム(42)、受信物理レイヤ処理部(41R)、送信物理レイヤ処理部(41T)、ATMプロトコル処理部(10)及び、後述するFPGA(3)に対するConfiguration Dataを格納しているFPGA Program Memory(15)よりなる。
【0057】
上位システム(42)は、上位バス(46)を介して受信物理レイヤ処理部(41R)、送信物理レイヤ処理部(41T)及び、ATMプロトコル処理部(10)に接続しており、これらの動作を制御する。
【0058】
また、上位システム(42)は、Bus bridge(48)を経由してシステムバス(103)に接続しており、制御部(図1の102)とのインタフェース機能ももつ。
【0059】
ここで、上位システム(42)は、上位プロセッサ(43)、上位プロセッサ43のワークエリアである上位Memory(44)及び、上位プロセッサ(43)に対するプログラムを格納しているプロセッサProgram Memory(45)から構成される。
【0060】
受信物理レイヤ処理部(41R)は、受信回線(120R)から受信した通信データに対して物理レイヤ(図2の210)の受信処理を実行する。送信物理レイヤ部(41T)はATMプロトコル処理部(10)からの送信セルに対して物理レイヤの送信処理を実行して、送信回線(120T)上へ送出する。
【0061】
ATMプロトコル処理部(10)は、ATMレイヤ(図3の220)及びAAL(図3の230)の処理を実行する。
【0062】
ATMプロトコル処理部(10)は、イベント受付部(1)、Reconfiguration制御部(2)及び、FPGA(3)より構成される。
【0063】
実際のレイヤ処理は、FPGA(3)内の論理素子によりFPGA WorkMemory(14)を作業エリアとして実行される。FPGA(3)内の論理素子としては、素子間の接続が固定的である固定論理素子(3B)と、素子間の接続がProgram SRAM(3S)上のConfiguration Data(9−x−y)により決定されるプログラマブル論理素子(3L)が設けられている。
【0064】
プログラマブル論理素子(3L)の素子間接続を決定するConfiguration Dataは、FPGA Program Memory(15)からプログラムバス(47)を介してFPGA Program Memory(15)にロードされる。FPGA Program Memory(15)上には、発生イベント(7)と処理対象コネクションのタイプ(8)毎に、当該発生イベント(7)と処理対象コネクションのタイプ(8)に対して行うべき処理を実現する、プログラマブル論理素子(3L)の素子間接続を記述したConfiguration Data(9)が格納されている。固定論理素子(3B)では、全てのイベント(7)/コネクションタイプ(8)で共通の処理が実行される。
【0065】
次に、イベント受付部(1)は、ATMレイヤ及びAAL処理上のイベントの発生を監視し、イベントの情報を内部制御バス(11)によりReconfiguration制御部(2)及びFPGA(3)に通知する。イベント受付部(1)は、上位システム(42)、受信物理レイヤ処理部(41R)及び、送信物理レイヤ処理部(41T)からのイベントを受付けるSystem Interface(1S)、ATMレイヤとAALのプロトコルタイマを実現するタイマ回路(1T)及び、受信物理レイヤ処理部41Rからの受信セルを受取る受信セルFIFO(1R)からなる。
【0066】
次に、Reconfiguration制御部(2)は、FPGAのProgram SRAM(3S)へのConfiguration Dataのロードをイベント発生毎に実行する。Reconfiguration制御部(2)は、イベント受付部(1)からのイベントを分析するイベント分析回路(2E)と、 FPGA Program Memory(15)からFPGAのProgram SRAM(3S)へのConfiguration Data(9−x−y)のロードを実行するProgram loader(2P)から構成される。
【0067】
このような構成において、FPGA(3)は、FPGAのProgram SRAM(3S)へのConfiguration Dataのダウンロード完了後にATMレイヤとAALのレイヤ処理を実行する。
【0068】
先に図2に示したように、FPGA(3)は、ATMレイヤ処理のみを行う場合と(ATM交換機(100)におけるUser flow(301))と、AALまで行う場合(100における信号flow(302))がある。前者の場合FPGA(3)は、受信セルFIFO(1R)からのセルに対してATMレイヤ処理を実行して、送信セルを送信物理レイヤ処理部(41T)へ転送する。後者の場合FPGA(3)は、System Interface(1S)を介して上位Memory(44)にアクセスしてAAL処理を実行する。すなわち、この場合は、FPGA(3)は、上位Memory(44)上の上位レイヤ情報(図3の245,246)をATMセルに分解して送信し、受信ATMセルから上位レイヤ情報を組立てて上位Memory(44)に格納する。
【0069】
以下、ATMプロトコル処理部(10)の行う処理の詳細について説明する。
【0070】
図7に、ATMプロトコル処理部(10)の行う処理のフローを示す。
【0071】
図示するように、ATMプロトコル処理部(10)の行う処理としては、イベント受付部(1)によるイベント受付(60)、 Reconfiguration制御部(2)によるFPGA Program選択(70)とProgram Load(80)及び、FPGA(3)によるProgram実行(90)がある。
【0072】
イベント受付処理(60)は、受信セルFIFO(図6の1R)で実行される処理(6R)、タイマ回路(図6の1T)で実行される処理(6T)及び、System Interface(図6の1S)で実行される処理(6S)から構成される。
【0073】
受信セルFIFO(1R)で実行される処理(6R)では、FIFO中に受信セルがある場合はセル受信信号を発生する(6R−2)。タイマ回路(1T)で実行される処理(6T)では、タイムアウトが存在する場合はタイムアウト信号を発生する(6T−2)。System Interface(1S)で実行される処理(6S)では、上位からのコマンドが存在する場合はコマンド信号を発生する(6S−2)。
【0074】
次に、FPGA Program選択処理(70)では、イベント分析回路(図6の2E)が60から信号を受取って発生イベントを分析する。セル受信信号を受取った場合(72−R)は1R中の受信セルを識別し(73−R)、タイムアウト信号を受取った場合(72−T)はタイムアウトしたタイマを識別し(73−T)、コマンド信号を受取った場合(72−S)はコマンドの種別を識別する(73−S)。
【0075】
そして、イベントの分析後、処理対象コネクションのタイプを識別する(74)。その後、発生イベントと処理対象コネクションに対応したConfiguration DataをFPGA Program Memory(図6の15)上から選択し(75)、Program load信号を発生する(76)。ここで、FPGA Program Memory(図6の15)上の各Configuration Dataは、「通常コネクション上でのUser Cell受信処理」(9−44−11)のように、どのコネクションタイプに対するどのイベントに対する処理という単位毎に記述された、当該処理を実現させる素子間接続を記述した情報である。
【0076】
次に、Program Load処理(80)では、Program loader(図6の2P)が処理81においてProgram load信号を受取り、処理(75)で選択されたConfiguration DataをFPGA ProgramMemory(図6の15)からProgram SRAM(図6の3S)へロードする(84)。ここで、load可能数(83,85)はProgramSRAM(3S)に対するProgram loader(2P)とFPGA(3)間でのアクセス競合を解消するための変数である。load可能数はProgram SRAM(3S)の数(図6の場合は1)で初期化される。load可能数がゼロの場合は、Program loader(2P)がアクセス可能な3Sが存在しないので、再度Program load信号を発する(87)ことにより、本信号に対する処理を保留する。 load可能数が正の場合は、プログラムをロードし(84)、 load可能数をデクリメントし(85)、 load完了信号を発生する(86)。
【0077】
Program実行処理(90)では、FPGA(図6の3)が処理91においてload完了信号を受取り(92)、ロードしたConfiguration Dataに従って形成した素子間接続によって実現される論理回路でATM処理を実行し(93)、 完了したならばload可能数をインクリメントする(94)。
【0078】
ここで、処理93で実行される、一回のConfiguration Dataのロードに対応して行われるATM処理(9)は、「通常コネクション上でのUser Cell受信処理」(9−44−11)のように、どのコネクションタイプに対するどのイベントの処理という単位の処理となる。すなわち、本実施形態では、イベント発生毎に、イベントとコネクションに対応するConfiguration Data(9−x−y)をFPGA Program Memory(15)からProgram SRAM(3S)にロードし、発生イベントと処理対象コネクションに応じたプロトコル処理をFPGA(3)に実行させている。
【0079】
以下、図7のFPGA Program選択処理(70)の詳細について説明する。
【0080】
図8に、このFPGA Program選択処理(70)を行うためのATMプロトコル処理部(10)の構成の詳細を示す。
【0081】
図には、イベント分析回路(2E)が、イベント受付部(1)からの情報に基づき、 イベントに対応するConfiguration Dataアドレス/サイズ(55)を求め、Program loader(2P)へ出力するまでのプロセスに関連するATMプロトコル処理部(10)の部分を示している。
【0082】
図中において、イベント受付部(1)では、 System Interface(1S)、タイマ回路(1T)及び、受信セルFIFO(1R)にイベントの情報が記憶されている。System Interface(1S)で受付けたイベント(上位/下位イベントと呼ぶ)は、コマンド情報としてコマンドレジスタ(50S)に記録される。タイマ回路(1T)で発生したイベント(タイマイベントと呼ぶ)は、タイマ情報としてタイムアウトレジスタ(50T)に記憶される。受信セルFIFO(1R)には、受信セル(50R)がセル受信イベントとして記憶される。
【0083】
ここで、図9にイベントの一覧を示す。
【0084】
イベントID(53)はイベントを一意に識別するための番号であり、本図はイベントIDの一例を示している。
【0085】
図示するように、上位イベント(7−10)としては、LB(LoopBack)試験開始(7−11)等の上位プロセッサ(図6の43)からの命令がある。下位イベント(7−20)としては、VC故障発生(7−21)等の物理レイヤ処理部(図6の41R,41T)における状態変化イベントがある。また、タイマイベント(7−30)としては、警報送信時刻(7−32)等の一定時刻毎のセル送信イベントと、警報解除時刻(7−33)のように一定時刻の受信状態監視による状態変化イベントがある。セル受信イベント(7−40)としては、信号セル受信(7−43)、Userセル受信(7−44)等、図5に示すセル種別と対応したイベントがある。
【0086】
さて、図8のイベント分析回路(2E)は、まず、イベント受付部(1)中のイベント情報によりイベントID(53)とコネクションタイプ(54)を求める。イベントID(53)はイベントID識別部(21)で導出される。上位/下位イベントのイベントIDはコマンドレジスタ(50S)からのコマンドID(51S)に基づいて求められ(21S)、タイマイベントのイベントIDはタイムアウトレジスタ(50T)からのタイマIDに基づいて導出される(21T)。セル受信イベントのイベントIDは、受信セル(50R)のフィールド、VCI(34)、PTI(35)、OAM type(36)及び、OAMfunc(37)を入力(51R)として導出される(21R)。
【0087】
このようにしてイベントIDが導出されると、次に、イベント分析回路(2E)は処理対象のコネクションタイプの識別を行う。
【0088】
図10にコネクションタイプの一例を示す。
【0089】
コネクションは、その上でサポートしている機能によりいくつかのタイプ(54)に分類される。本例では、サポート可能な機能が、トラヒックポリシングを実行するUPC(Usage Parameter Control)(5−1)、装置故障を通知するVC故障管理(5−2)、通信品質を監視するVC性能監視(5−3)、通信経路の正常性を確認するLoopback試験(5−4)、通信量を計測する課金(5−5)、通信輻輳をフィードバック制御するABR制御(5−6)、セル間の送信順序を制御するBuffer制御(5−7)及び、ATMセルheader(図4の32)を書換えるヘッダ変換(5−8)である場合を示している。Buffer制御(5−7)及とヘッダ変換(5−8)は、コネクションのタイプに依らず共通にサポートされる共通機能(5―10)である。5−1〜5−6は、コネクションタイプ(54)によりサポート/非サポートが決まる付加機能(5−0)である。
【0090】
コネクションは、Userセルを転送するもの(8−10,8−20)と、転送しない試験用コネクション(8−30)に分類される。前者は、ABR制御(5−6)を行わない通常コネクション(8−10)と、行うABRコネクション(8−20)に別れる。更に、通常コネクション(8−10)とABRコネクション(8−20)は、VC故障管理(5−2)とVC性能監視(5−3)のサポート状態により細分化される。例えば、タイプ11のコネクション(8―11)ではVC故障管理(5−2)とVC性能監視(5−3)はサポートされず、タイプ12(8−12)上ではVC故障管理(5―2)のみサポートされている。公衆網上での通信では、課金(5−5)は通常コネクション(8−10)とABRコネクション(8−20)でコネクションタイプに依らずサポートされる必要がある。
【0091】
さて、図8のコネクションタイプ識別部(22)は、イベント受付部(1)からのVPI、VCI(52)を入力として、処理対象コネクションのコネクションタイプ(54)を導出する。コネクションタイプ識別部(22)は、コネクション情報Memory(24)上のVPI/VCIとコネクションタイプの対応表を参照して54を求める。Program選択部(23)は、イベントID(53)とコネクションタイプ(54)を入力として、イベント、コネクションタイプに対応するConfiguration Dataのアドレス/サイズ(55)を出力する。Program選択部(23)は、Program情報Memory(25)上のイベントID/コネクションタイプとConfiguration Dataアドレス/サイズの対応表を参照して55を導出する。コネクション情報Memory(24)とProgram情報Memory(25)上の対応表は、回線インタフェース(図6の40)の立ち上げ時に、上位プロセッサ(図6の43)により設定される。
【0092】
次に、このようにして選択され、Program SRAM(3S)にロードされたConfiguration Data(9−x−y)によって素子間の接続が形成されたFPGA(図6の3)が実行する処理の例を図11に示す。
【0093】
Buffer制御(5−7)とヘッダ変換(5−8)は共通機能(図10の5―10)であり、これらを実現するための処理、優先制御(4−7−1)とヘッダ変換(4−8−1)は、固定論理素子(3B)上に予めインプリメントされている。UPC(5−1)〜ABR制御(5−6)は付加機能(図10の5−0)であり、これらを実現するための処理はプログラマブル論理素子(3L)で実行される。すなわち、UPC(5−1)〜ABR制御(5−6)のための処理を実現する素子間の接続を、イベント/コネクションタイプ毎に記述したものがConfiguration Data(x,y)(9−x−y)である。
【0094】
なお、図6の構成において、イベント発生毎にProgram SRAM(3S)上のProgram(x,y)(9−x−y)は更新される。よって、各プログラム9−x−y間においてグローバルに用いるグローバル変数は、FPGA
Work Memory(14)上に配置する必要がある。
【0095】
さて、図11には、4つのConfiguration Dataに対応する処理を例示してある。
【0096】
Configuration Data(9−44−11)は、コネクションタイプ11でのUserセル受信(イベント44)処理である。図10によると、タイプ11のコネクション(図10の8−11)上ではUPC(5−1)と課金(5−5)が付加機能(5−0)としてサポートされている。そこで9−44−11では、UPCによるポリシング(4−1−1)と課金のための計数(4−5−1)のみが実行される。
【0097】
Configuration Data(9−44−25)は前記と同様にUserセル受信処理(イベント44)であるが、コネクションタイプ25に対する処理である。タイプ25のコネクション上では、UPC(5−1)、VC故障管理(5−2)、VC性能監視(5−3)、課金(5−5)及び、ABR制御(5−6)がサポートされている。よってConfiguration Data(9−44−25)では、UPC(5−1)によるポリシング(4−1−2)、VC故障管理(5−2)のためのVC回復監視(4−2−2)、VC性能監視(5−3)のための品質監視(4−3−2)/MC送信制御(4−3‘−2)、課金(5−5)のための計数(4−5−2)及び、ABR制御(5−6)のための輻輳監視(4−6−2)/輻輳設定(4−6’−2)が実行される。
【0098】
Configuration Data(9−47−25)は前記と同様にコネクション25に対する処理であるが、イベントがMC(VC−SG)受信である。そこで、Configuration Data(9−47−25)では、VC性能監視(5−3)のためのMC(VC−SG)受信処理(4−3−3)のみが実行される。
【0099】
このように、本実施形態では、FPGA(3)で実行される処理は発生イベントと処理対象コネクションのタイプによって異なる。
【0100】
すなわち、図12に示す従来のプログラム可能な論理デバイスをプロトコル用いた技術のように、全てのイベント/機能に対する処理を実現するConfiguration Data(9‘)をインプリメントせずに、本実施形態では、FPGA(図1の3)上には発生したイベントの処理に必要なConfiguration Dataのみを、その処理が終了するまでだけインプリメントすることになる。
【0101】
例えば図11では、タイプ11のコネクション上でUserセルを受信した場合は、Configuration Data(9−44−11)がFPGA内にロードされ、ポリシング(4−1−1)と計数(4−5−1)のみがインプリメントされる。その他の処理、VC回復監視(4−2−2)、品質監視(4―3−2)等はFPGA上にインプリメントされない。
【0102】
すなわち、本実施形態では、FPGA(3)のプログラムの発生イベントに応じた動的なConfiguration Dataのロード(Dynamic Reconfigurationと呼ぶ)を行うことにより、一度に、FPGA(3)にインプリメントする論理量が少なくても済むようになっている。言い換えるならば、その時点で処理すべきイベントと無関係な処理に対応する論理部分をFPGA(3)上に形成しない。
【0103】
したがって、このようなDynamic Reconfigurationにより、プロトコル処理を実現するために必要な、FPGA(3)のハード量は少なくて済み、また、FPGA(3)を用いてより多数の機能を実現することが可能である。さらに、FPGA(3)上に形成される論理回路が大規模化しないので、配線遅延などによる処理の遅延を低減することができる。
【0104】
以上、本発明の実施形態について説明した。
【0105】
ところで、以上の実施形態では、FPGA(3)のConfiguration DataをロードするProgram SRAM(3S)を一つだけ備えた場合(図7のLoad可能数の初期値が1の場合)について示した。
【0106】
しかし、Program SRAM(3S)が一つだけであると、Program SRAM(3S)のアクセスにおいて、Program loader(2P)とプログラマブル論理素子(3L)の間で発生する競合によって処理を高速に行えなくなる場合がある。
【0107】
たとえば、図13に示すように、イベント1(7−1)に対するProgram実行(90―1)が完了するまで、イベント2(7−2)のProgram Load(80−2)を開始できずに待たされることにより、処理のスループットを劣化させ、ひいては通信スループットに悪影響を与えることがある。
【0108】
そこで、図14に示すように、Program SRAMを2面(3S−1,3S−2)化して(図7のLoad可能数の初期値を2として)、 Program
LoadとProgram実行の並列化を図るようにすることが好ましい。
【0109】
図14において、セレクタ1(3X−1)は、プログラムバス(47)上の転送終了信号を検出して、プログラムバス(47)と接続するProgram SRAMを切換える。セレクタ2(3S−2)は、FPGA3のプログラマブル論理素子(3L)からの実行終了信号(56)を検出して、プログラマブル論理素子(3L)へ接続するProgram SRAMを切換える。本構成により、Program SRAM(3S−1)上のConfiguration Dataに従ったProgram実行(90)中にProgram SRAM(3S−2)へ次のConfiguration DataをLoadすることができる。
【0110】
すなわち、たとえば図14に示すように、 Program Load(80)の所要時間がProgram実行(90)の所要時間以下であればイベント2‘のProgram Load(80−2’)は、イベント1‘のProgram実行(90−1’)中に完了する。したがって、Program Load(80)のための処理オーバーヘッドは処理のスループットに影響を与えない。なお、155Mbit/sの通信スループットの場合、1つのATM Cell当たりの処理時間は約2.7μsである。
【0111】
また、以上の実施形態は、ATM網への適用を例にとり説明したが、本実施形態は、IP(Internet Protocol)やIP OVER ATM等の他のパケット転送プロトコルを処理する通信装置の回線interface等にも同様に適用することができる。この場合は、IPやIP OVER ATMのプロトコル処理を、FPGA(3)によって行うようにし、FPGA(3)に、IPやIP OVER ATMに従って定まる発生イベントに応じたプログラムを動的にロードを行うようにする。
【0112】
また、以上の実施形態では、ロードするConfiguration Dataの選択を発生イベントから得られる情報(イベントID,コネクションタイプ)に基づいて行ったが、Configuration Data選択のための情報として、プロトコル上の状態番号などのATMプロトコル処理装置の内部情報も利用するようにしてもよい。
【0113】
【発明の効果】
以上のように本発明によれば、プログラム可能な論理デバイスを用いたプロトコル処理を、プロトコル処理全体の規模が大きい場合でも、処理速度の低下や論理デバイスサイズの増大化を、より抑えて実現することができる。
【図面の簡単な説明】
【図1】ATM網の構成を示すブロック図である。
【図2】ATM網におけるプロトコルスタックを示す図である。
【図3】ATMセルのフォーマットを示す図である。
【図4】ATM通信コネクションの形態を示す図である。
【図5】ATMセルの種別を示す図ある。
【図6】本発明の実施形態に係る回線Interfaceの構成を示す図である。
【図7】本発明の実施形態に係るATMプロトコル処理装置の処理を示すフロー図である。
【図8】本発明の実施形態に係るATMプロトコル処理装置においてプログラムを選択するための構成を示した図である。
【図9】本発明の実施形態に係るATM回線インタフェースが処理対象とするイベントの種別を示す図ある。
【図10】本発明の実施形態に係るATMプロトコル処理装置がサポートする機能の一例を示す図である。
【図11】本発明の実施形態においてFPGAが行うプロトコル処理例を示す図である。
【図12】従来技術を適用した場合にFPGAが行うプロトコル処理例を示す図である。
【図13】本発明の実施形態においてFPGA Program SRAMが一つの場合の処理スケジューリングの一例を示す図である。
【図14】本発明の実施形態においてFPGA Program SRAMを2つ備えた場合のFPGAの構成を示すブロック図である。
【図15】本発明の実施形態においてFPGA Program SRAMを2つ備えた場合の処理スケジューリングの一例を示す図である。
【符号の説明】
1・・・イベント受付部、2・・・Reconfiguration制御部、3・・・FPGA、9・・・Configuration Data、10・・・ATMプロトコル処理部、15・・・FPGA Program Memory、40・・・回線interface、41R・・・受信物理レイヤ処理部、41T・・・送信物理レイヤ処理部、42・・・上位システム、46・・・上位バス、100・・・ATM交換機、102・・・制御部、110・・・端末、120・・・ATM回線
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a technology for processing a communication protocol in a communication device constituting a network to which a technology such as Internet, LAN, ATM or the like is applied.
[0002]
[Prior art]
The recent increase in capacity and diversification of communications is supported by high-speed, multimedia-compatible backbone networks. One of such promising backbone networks is an ATM (Asynchronous Transfer Mode) communication network. Heretofore, in order to realize high-speed ATM communication, a logic circuit that performs low-level protocol processing such as a physical layer and a data link layer in a communication apparatus has been generally realized by an ASIC (Application Specific Integrated Circuit). It was.
[0003]
However, the specification of the communication protocol is not limited to ATM and is often changed. For example, the international standard of the protocol specification may be changed according to changes in the communication environment, or the protocol specification may be changed to add an operation / management procedure specific to the network to which it is applied. In a configuration in which protocol processing is performed by a logic circuit using a conventional ASIC, when the protocol specification is changed, the ASIC is manufactured by changing the mask pattern of the manufacturing process. Needs to be replaced with a new ASIC with a different physical connection. This is because the physical connection between the logic elements in the ASIC that determines the operation of the ASIC is fixed at the stage of the manufacturing process, and thus the operation cannot be changed.
[0004]
For this reason, the technology using the ASIC cannot flexibly cope with the change of the protocol specification, and it takes a long development time and cost to cope with the change of the protocol specification.
[0005]
On the other hand, by configuring a logic circuit that performs protocol processing using a programmable logic device such as an FPGA (Field Programmable Gate Array), it becomes possible to flexibly cope with changes in protocol specifications.
[0006]
The connection between the logic elements of the programmable logic device is realized by placing a description of the connection between the logic elements (referred to as configuration data) on the internal memory for connection information. Therefore, by rewriting the description of the connection between the logic elements on the internal memory, the connection between the logic elements can be changed and the programmable logic device can perform different operations. For this reason, according to the technique using the programmable logic device, it becomes possible to cope with the change of the protocol specification by rewriting the internal memory.
[0007]
Here, as a technique for using such a programmable logic device for protocol processing, for example, the following two techniques are known.
[0008]
The first technology is the ATM described in Fujii et al. “Programmable high-speed communication network HUB device using FPGA” (Technical Report of IEICE Technical Report Exchange System, SSE95-91, pp127-132, September 1995) The present invention relates to an ATM interface device used for interconnection between a network and a memory bus network.
[0009]
In this device, Configuration Data for performing protocol processing of the ATM protocol and the bus transmission protocol is stored on the external storage device, and this entire Configuration Data is read into the internal memory of the FPGA when the device is started up and is operating. Is held in internal memory.
[0010]
With this technology, it becomes possible to cope with changes in protocol specifications by changing Configuration Data on an external storage device.
[0011]
The second technique relates to an ATM terminal adapter described in US Pat. No. 5,414,707 “Broadband ISDN Processing Method And System” that can support a plurality of communication services.
[0012]
In this technique, Configuration Data for performing protocol processing is stored on an external storage device for each communication service. On the other hand, the adapter determines the communication service and communication protocol from the input communication data, and loads the corresponding configuration data from the external storage device to the internal memory.
[0013]
With this technology, it is intended to support a plurality of communication protocols without loading all of Configuration Data for realizing protocol processing of a plurality of communication protocols into an internal memory.
[0014]
[Problems to be solved by the invention]
According to the technique using the conventional programmable logic device for protocol processing, Configuration Data for performing the entire protocol processing is loaded into the internal memory, and a logic circuit is formed in the programmable logic device according to this.
[0015]
On the other hand, a programmable logic device has a complicated structure of individual logic elements, has a low degree of freedom in wiring between logic elements, and is less integrated than an ASIC. For this reason, if the scale of the protocol processing increases and the logical circuit scale realized by the connection between the logical elements according to the configuration data for performing this increases, the size of the programmable logical device is larger than that of the ASIC. Becomes larger. In addition, due to the low degree of freedom of wiring between logic elements, when the logic circuit scale realized by the connection between logic elements in accordance with Configuration Data for performing protocol processing increases, the logic for processing individual events The path circuit portion cannot be formed in an optimum configuration for the processing, and the processing speed decreases. The process for an event is a process (cell reception process, timeout process) performed for an event related to a communication protocol (ATM cell reception, timeout, etc.). The protocol process basically includes a plurality of processes. It is a collection of processes for events.
[0016]
Therefore, according to the conventional technique, when the protocol processing scale is large, the processing speed is lowered and the logical device size is increased.
[0017]
Therefore, it is an object of the present invention to realize protocol processing using a programmable logic device while suppressing a decrease in processing speed and an increase in logical device size even when the scale of the protocol processing is large. .
[0018]
[Means for Solving the Problems]
In order to achieve the above object, the present invention performs communication protocol processing using a programmable logic device that forms a logic circuit according to set configuration data, for example, in a communication protocol processing apparatus that performs communication protocol processing. A method,
For each part of the communication protocol processing performed independently of each other, prepare configuration data for forming a logic circuit for performing the communication protocol processing part on the programmable logic device.
At the time when the communication protocol processing is to be executed, the portion of the communication protocol processing to be executed at the time is dynamically determined, the configuration data corresponding to the determined communication protocol processing portion is selected, and the programmable Provided is a communication protocol processing method characterized by being set in a logical device.
[0019]
According to such a communication protocol processing method, the configuration data that forms the logic circuit that realizes all the communication protocol processing is not set in the programmable logic device, but the portion of the communication protocol processing that needs to be performed at that time Only the configuration data that forms the logic circuit that performs is set in the programmable logic device. As a result, the logic amount of the logic circuit formed on the programmable logic device at a time can be reduced. In other words, a logic circuit that performs processing unrelated to processing performed at that time is not formed on a programmable logic device.
[0020]
Therefore, according to such a method, the amount of hardware of the programmable logic device required for realizing the protocol processing can be reduced, and more functions can be realized using the programmable logic device. is there. Furthermore, since the logic circuit formed on the programmable logic device does not increase in scale, processing delay due to wiring delay or the like can be reduced.
[0021]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described taking application to an ATM network as an example. In the present embodiment, an example in which an FPGA is used as a logic device that can program connections between logic elements is taken.
[0022]
FIG. 1 shows the overall configuration of the ATM communication network.
[0023]
In the figure, communication between terminals (110, 110-1, 110-2, 110-3) is performed by an ATM switch (100, 100-1, 100-2) and a relay ATM network 130 connecting them to each other. Run through. The ATM exchange (100) is connected to the terminals (110, 110-1) via lines (120A, 120F) that provide various communication services such as Cell Relay and Frame Relay. .
[0024]
The ATM switch (100) includes a line interface (40A, 40F, 40T, 40S) that accommodates various lines, an ATMS switch (101) that executes exchange for communication data, and a control unit (102 that controls the operation of the entire ATM switch. ).
[0025]
In the ATM exchange (100), communication data from the terminal is accommodated on the internal line 120L by the line interface (40A, 40F). The connection between the internal lines is realized by the switching function of ATM Switch (101). The communication data is exchanged by the destination terminal to the line interface (40A, 40F) connected to the terminal or the line interface (40T) connected to the relay ATM network (130). Further, when the communication data is a signal described later, it is exchanged for the signal line (120) and terminated at the signal line interface (40S).
[0026]
Further, the control unit (102) is connected to the line interface (40A, 40F, 40T, 40S) and the ATM Switch (101) by the system bus (103). The control unit (102) controls the switching operation of the ATM Switch (101) and the line accommodation operation of the line interface (40A, 40F, 40T) based on the signal terminated at the line interface (40S).
[0027]
On the other hand, in the terminal (110), the line interface (40A ′) transfers communication data between the processor (111) and the Cell Relay line (120A).
[0028]
Next, FIG. 2 shows a communication data flow and a protocol stack in the terminal (110) and the ATM switch (100).
[0029]
Protocol layers include a physical layer (210), an ATM layer (220), an AAL (ATM Adaptation Layer) (230), and an upper layer (240).
[0030]
The physical layer (210), ATM layer (220), and AAL (230) are layers processed by the function (200) of the line interface. The upper layer (240) is a layer processed by the function of the processor (111) in the terminal or the control unit (102) in the ATM switch.
[0031]
In the ATM layer (220), communication is realized by a 53-byte packet called an ATM cell. The physical layer (210) provides a bit transmission function on a physical medium (such as an optical fiber) and a function of mapping ATM cells to physical layer transmission. AAL (230) supports mapping between ATM layers and higher layers.
[0032]
Next, the flow of communication data includes User flow (301), signal flow (302), and OAM flow (303).
User flow (301) is a communication flow of user information between terminals.
[0033]
When the terminal 110 transmits, the user information from the User upper layer (241-1) is decomposed into fixed-length cells by the AAL (230-1). This fixed-length cell is converted into an ATM cell by the ATM layer (220-1), and bit-transferred by the physical layer 210-1. In the ATM exchange 100, the ATM layer (220-2) processing is executed for the user flow (301).
[0034]
Conversely, when the terminal (110) receives the user flow (301), the physical layer (210-1) reconstructs the ATM cell from the transferred bit stream, and the ATM layer (220-1) Perform ATM processing on the cell. The AAL (230-1) assembles user information from the received ATM cell and passes it to the upper layer for User (241-1).
[0035]
Next, the signal flow (302) is a flow for transferring signal information (communication path, communication quality, etc.) for controlling the data flow between the terminal (110), the ATM switch (100), and the ATM switch.
[0036]
The signal information is terminated by signal processing upper layers (242-1, 242-2). The transmission / reception process of the signal flow (302) in the terminal (110) is the same as in the case of the user flow. In the ATM switch (100), the signal flow (302) is terminated in the same manner as the terminal (110).
[0037]
Next, OAM (Operations And Maintenance) flow (303) is a flow for transferring management information for managing communication between communication devices.
[0038]
The management information includes failure notification, communication quality monitoring information, and the like. The management information is terminated by the upper management layer (243-1, 243-2). The management information has a size that can be accommodated in one ATM cell, and does not require an AAL (230), and the ATM layer (220) and the upper layer (240) directly transfer communication data.
[0039]
As shown in the ATM switch (100), the OAM flow (303) is not terminated at all communication devices, but is terminated only at a preset communication device. In a communication apparatus that is not so, the transfer is performed first only by executing the processing of the ATM layer (220-2).
[0040]
Next, FIG. 3 shows a format of communication data.
[0041]
Hereinafter, a data flow from the upper layer (240) to the ATM layer (220) will be described.
[0042]
First, User flow (301) or signal flow (302) will be described.
[0043]
In User flow (301) or signal flow (302), User information or signal information (245) generated in an upper layer is passed to AAL (230). The AAL configures the AAL-PDU (231) by adding the received information (245) to the AAL Payload (232) and adding control information such as a bit error detection code to the AAL Trailer (233). Then, 231 is decomposed every 48 bytes and passed to the ATM layer (220). The ATM layer configures the ATM cell (30) by adding 48-byte data header (32) to the 48-byte data from the AAL layer and adding a 5-byte cell header (32) thereto.
[0044]
The cell header (32) includes a VPI (Virtual Path Identifier) 33, a VCI (Virtual Channel Identifier) 34, a PTI (Payload Type Identification) 35, and the like. VPI (33) and VCI (34) are label addresses for identifying communication flows. With VPI (33) and VCI (34), communication can be label-multiplexed at two levels. The unit of communication is called a connection, and switching and traffic control are executed on a connection basis. A communication flow of ATM cells having the same VPI (33) forms a VP connection, and an ATM cell flow having the same VPI (33) and VCI (34) forms a VC connection. Three bits of PTI (35) are used for identifying the cell type on the VC connection.
[0045]
FIG. 4 shows multiplexing by VPI and VCI in ATM communication between the terminal 1 (110-1) and the terminal 2 (110-2). (310) and (310-1) are multiplexed as VP connections on the ATM line 120 between the terminal 1 (110-1) and the terminal 2 (110-2), and a VC connection on (310). (320) and (320-1) are multiplexed.
[0046]
The ATM cell flow on the VP connection (310) includes VP-End-to-End flow (311) between the end points (110-1, 110-2) and a part of the connection (for example, 100-1 and 100-). VP-Segment flow (312). Similarly, the cell flow on the VC connection (320) includes a VC-End-to-End flow (321) and a VC-Segment flow (322).
[0047]
Next, the data format of the OAM flow (303) in FIG. 3 will be described.
[0048]
In OAM flow (303), management information (246) is transferred by OAM Cell (30 ′). The header (32 ′) of the OAM Cell has the same configuration as the case of the user flow (301) and the signal flow (302) (32). Payload (31 ′) of OAM Cell includes OAM type (36), OAM function (37), OAM function specific information (38), and the like. Management information (246) from the upper layer (240) is transferred as part of the OAM function specific information 38. 36 and 37 are used to identify the function of the OAM Cell (30 ′).
[0049]
FIG. 5 shows ATM cell identification by VCI (34), PTI (35), OAM type (36), and OAM function (37). The ATM cells are classified into cells (30-1 to 30-8) on the VP connection identified by the VCI value and cells (30-9 to 30-16) on the VC connection identified by the PTI value. .
[0050]
Cells with VCI values 1, 2, and 5 are signal cells (30-1). The signal cell (30-1) is used for transferring the above-described signal information and controlling connection setting / release (5-11).
Cells with a VCI value of 3 are VP-Segment OAM cells (30-2, 30-3), and cells with a VCI value of 4 are VP-End-to-End OAM cells (30-4 to 30-7). is there. The OAM cell is identified by an OAM type (36) and an OAM function (37). If OAM type (36) is 0001 and (OAM function 37) is 0000, it is an AIS (Alarm Indication Signal) cell (30-4), and if OAM type (36) is 0001 and OAM function (37) is 0001, RDI ( Remote Defect Indication) cell (30-5). The AIS cell (30-4) and the RDI cell (30-5) are used to communicate a communication device failure, thereby supporting the VP failure management function (5-14).
[0051]
Next, OAM cells with OAM type (36) of 0001 and OAM function (37) of 1000 are LB (LoopBack) cells (30-2, 30-6). The LB is returned at the end point of the VP connection or the end point of the VP-Segment. Therefore, the normality of the corresponding communication path can be confirmed by monitoring the transmission / reception of the LB. This function is called the LoopBack test (5-12, 5-15). An OAM cell whose OAM type (36) is 0010 is a VP-MC (Monitoring Cell) (30-7). By periodically transmitting VP-MC (30-7), the communication quality (flow rate, discard amount, bit error rate, etc.) of the User cell transferred over the VP connection is monitored. This function is called VP performance monitoring (5-13, 5-16).
[0052]
Next, a cell having a VCI value of 6 is a VP-RM (Resource Management) cell (30-8). The receiving terminal or the congestion state of the network is notified to the transmitting terminal by the VP-RM cell (30-8). The VP-RM cell (30-8) is used to control the bandwidth of the VP connection according to the congestion state. This dynamic bandwidth control is called ABR (Available Bit Rate) control (5-17).
[0053]
A cell having a VCI value of 31 or more is a cell (30-9 to 30-16) on the VC connection, and the function is identified by the PTI value. The cell in which the first bit of PTI (35) is 0 is the User cell (30-9). The User cell (30-9) is used to transfer user information between terminals (information transfer function 5-18). Cells with a PTI value of 100 are VC-Segment OAM cells (30-10, 30-11), and cells with a PTI value of 101 are VC-End-to-End OAM cells (30-12 to 30-15). is there. The identification of the OAM cell by the OAM type (36) and the OAM function (37) is the same as the case of the OAM cell (30-2 to 30-7) on the VP connection. However, the management target is a VC connection. A cell having a PTI value of 110 is a VC-RM cell (30-16), and is used for ABR control (5-24) for a VC connection.
[0054]
Details of the line interface (FIG. 1, 40A ′, 40A, 40F, 40T, 40S) applied to such an ATM network will be described below.
[0055]
FIG. 6 shows the configuration of the line interface (40A ′, 40A, 40F, 40T, 40S).
[0056]
As shown in the figure, the line interface (40) includes a host system (42), a reception physical layer processing unit (41R), a transmission physical layer processing unit (41T), an ATM protocol processing unit (10), and an FPGA (3 described later). FPGA Program Memory (15) that stores Configuration Data for).
[0057]
The host system (42) is connected to the reception physical layer processing unit (41R), the transmission physical layer processing unit (41T), and the ATM protocol processing unit (10) via the host bus (46). To control.
[0058]
The host system (42) is connected to the system bus (103) via the bus bridge (48) and has an interface function with the control unit (102 in FIG. 1).
[0059]
Here, the host system (42) includes a host processor (43), a host memory (44) that is a work area of the host processor 43, and a processor program memory (45) that stores a program for the host processor (43). Composed.
[0060]
The reception physical layer processing unit (41R) performs reception processing of the physical layer (210 in FIG. 2) on the communication data received from the reception line (120R). The transmission physical layer unit (41T) performs a physical layer transmission process on the transmission cell from the ATM protocol processing unit (10), and sends it to the transmission line (120T).
[0061]
The ATM protocol processing unit (10) executes processing of the ATM layer (220 in FIG. 3) and AAL (230 in FIG. 3).
[0062]
The ATM protocol processing unit (10) includes an event reception unit (1), a reconfiguration control unit (2), and an FPGA (3).
[0063]
The actual layer processing is executed by using the FPGA WorkMemory (14) as a work area by the logic element in the FPGA (3). As the logic elements in the FPGA (3), the fixed logic element (3B) in which the connection between the elements is fixed, and the connection between the elements is based on Configuration Data (9-xy) on the Program SRAM (3S). A programmable logic element (3L) to be determined is provided.
[0064]
Configuration Data for determining the inter-element connection of the programmable logic element (3L) is loaded from the FPGA Program Memory (15) to the FPGA Program Memory (15) via the program bus (47). On the FPGA Program Memory (15), for each occurrence event (7) and type of connection to be processed (8), processing to be performed for the occurrence event (7) and type of connection to be processed (8) is realized. Configuration Data (9) describing inter-element connections of programmable logic elements (3L) is stored. In the fixed logic element (3B), a common process is executed for all events (7) / connection type (8).
[0065]
Next, the event reception unit (1) monitors the occurrence of an event on the ATM layer and AAL processing, and notifies the event information to the Reconfiguration control unit (2) and the FPGA (3) through the internal control bus (11). . The event reception unit (1) includes a system interface (1S) that receives events from the host system (42), the reception physical layer processing unit (41R), and the transmission physical layer processing unit (41T), an ATM layer and an AAL protocol timer. And a reception cell FIFO (1R) that receives a reception cell from the reception physical layer processing unit 41R.
[0066]
Next, the Reconfiguration controller (2) loads Configuration Data to the Program SRAM (3S) of the FPGA every time an event occurs. The Reconfiguration control unit (2) includes an event analysis circuit (2E) that analyzes an event from the event reception unit (1), and Configuration Data (9-x) from the FPGA Program Memory (15) to the FPGA Program SRAM (3S). -Y) It is comprised from Program loader (2P) which performs load.
[0067]
In such a configuration, the FPGA (3) executes the ATM layer and AAL layer processing after the configuration data has been downloaded to the Program SRAM (3S) of the FPGA.
[0068]
As previously shown in FIG. 2, the FPGA (3) performs only ATM layer processing (User flow (301) in the ATM switch (100)), and performs up to AAL (signal flow (302 in 100)). )). In the former case, the FPGA (3) performs ATM layer processing on the cell from the reception cell FIFO (1R), and transfers the transmission cell to the transmission physical layer processing unit (41T). In the latter case, the FPGA (3) accesses the upper memory (44) via the system interface (1S) and executes the AAL process. That is, in this case, the FPGA (3) disassembles the upper layer information (245 and 246 in FIG. 3) on the upper memory (44) into ATM cells and transmits them, and assembles the upper layer information from the received ATM cells. Store in the upper memory (44).
[0069]
Details of the processing performed by the ATM protocol processing unit (10) will be described below.
[0070]
FIG. 7 shows a flow of processing performed by the ATM protocol processing unit (10).
[0071]
As shown in the figure, the ATM protocol processing unit (10) performs event reception (60) by the event reception unit (1), FPGA program selection (70) by the reconfiguration control unit (2), and Program Load (80). And there is Program execution (90) by FPGA (3).
[0072]
The event reception process (60) includes a process (6R) executed in the reception cell FIFO (1R in FIG. 6), a process (6T) executed in the timer circuit (1T in FIG. 6), and a System Interface (in FIG. 6). 1S) and the process (6S) executed.
[0073]
In the process (6R) executed in the reception cell FIFO (1R), if there is a reception cell in the FIFO, a cell reception signal is generated (6R-2). In the process (6T) executed by the timer circuit (1T), if a timeout exists, a timeout signal is generated (6T-2). In the process (6S) executed in the system interface (1S), a command signal is generated when a command from the upper level exists (6S-2).
[0074]
Next, in the FPGA program selection process (70), the event analysis circuit (2E in FIG. 6) receives the signal from 60 and analyzes the generated event. When a cell reception signal is received (72-R), a reception cell in 1R is identified (73-R), and when a timeout signal is received (72-T), a timer that has timed out is identified (73-T). When the command signal is received (72-S), the type of the command is identified (73-S).
[0075]
Then, after analyzing the event, the type of connection to be processed is identified (74). Thereafter, Configuration Data corresponding to the generated event and the connection to be processed is selected from the FPGA Program Memory (15 in FIG. 6) (75), and a Program load signal is generated (76). Here, each Configuration Data on the FPGA Program Memory (15 in FIG. 6) is a process for which event for which connection type as “User Cell reception process on normal connection” (9-44-11). This is information that describes the inter-element connection that realizes the processing described for each unit.
[0076]
Next, in the Program Load process (80), the Program loader (2P in FIG. 6) receives the Program load signal in the process 81, and the Configuration Data selected in the process (75) is transferred from the FPGA Program Memory (15 in FIG. 6) to the Program. The data is loaded into the SRAM (3S in FIG. 6) (84). Here, the loadable number (83, 85) is a variable for eliminating an access conflict between the Program loader (2P) and the FPGA (3) for the Program SRAM (3S). The loadable number is initialized with the number of Program SRAMs (3S) (1 in the case of FIG. 6). If the loadable number is zero, there is no 3S that can be accessed by the program loader (2P), so the program load signal is issued again (87), thereby suspending the processing for this signal. If the loadable number is positive, the program is loaded (84), the loadable number is decremented (85), and a load completion signal is generated (86).
[0077]
In the Program execution process (90), the FPGA (3 in FIG. 6) receives the load completion signal in the process 91 (92), and executes the ATM process in the logic circuit realized by the inter-element connection formed according to the loaded configuration data. (93) If completed, the loadable number is incremented (94).
[0078]
Here, the ATM process (9) executed in response to the single configuration data load executed in the process 93 is like “User Cell reception process on normal connection” (9-44-11). In addition, the processing is a unit of processing of which event for which connection type. That is, in this embodiment, every time an event occurs, Configuration Data (9-xy) corresponding to the event and the connection is loaded from the FPGA Program Memory (15) to the Program SRAM (3S), and the generated event and the processing target connection are loaded. Protocol processing corresponding to the above is executed by the FPGA (3).
[0079]
Details of the FPGA program selection processing (70) in FIG. 7 will be described below.
[0080]
FIG. 8 shows details of the configuration of the ATM protocol processing unit (10) for performing the FPGA program selection processing (70).
[0081]
In the figure, the process until the event analysis circuit (2E) obtains the Configuration Data address / size (55) corresponding to the event based on the information from the event reception unit (1) and outputs it to the Program loader (2P). The part of the ATM protocol processing unit (10) related to the is shown.
[0082]
In the figure, in the event reception unit (1), event information is stored in the system interface (1S), the timer circuit (1T), and the reception cell FIFO (1R). An event received by the System Interface (1S) (referred to as an upper / lower event) is recorded as command information in the command register (50S). An event (referred to as a timer event) that has occurred in the timer circuit (1T) is stored in the timeout register (50T) as timer information. In the reception cell FIFO (1R), the reception cell (50R) is stored as a cell reception event.
[0083]
Here, FIG. 9 shows a list of events.
[0084]
The event ID (53) is a number for uniquely identifying the event, and this figure shows an example of the event ID.
[0085]
As shown in the figure, as the upper event (7-10), there is an instruction from the upper processor (43 in FIG. 6) such as an LB (LoopBack) test start (7-11). As the lower event (7-20), there is a state change event in the physical layer processing unit (41R, 41T in FIG. 6) such as VC failure occurrence (7-21). In addition, the timer event (7-30) includes a cell transmission event at a certain time such as an alarm transmission time (7-32) and a state based on a reception state monitoring at a certain time such as an alarm release time (7-33). There is a change event. As the cell reception event (7-40), there are events corresponding to the cell types shown in FIG. 5, such as signal cell reception (7-43), user cell reception (7-44), and the like.
[0086]
The event analysis circuit (2E) in FIG. 8 first obtains the event ID (53) and the connection type (54) from the event information in the event reception unit (1). The event ID (53) is derived by the event ID identification unit (21). The event ID of the upper / lower event is obtained based on the command ID (51S) from the command register (50S) (21S), and the event ID of the timer event is derived based on the timer ID from the timeout register (50T). (21T). The event ID of the cell reception event is derived from the received cell (50R) field, VCI (34), PTI (35), OAM type (36), and OAMfunc (37) as input (51R) (21R).
[0087]
When the event ID is derived in this way, the event analysis circuit (2E) next identifies the connection type to be processed.
[0088]
FIG. 10 shows an example of the connection type.
[0089]
Connections are classified into several types (54) depending on the functions supported on them. In this example, supported functions are UPC (Usage Parameter Control) (5-1) for executing traffic policing, VC failure management (5-2) for notifying a device failure, and VC performance monitoring (for monitoring communication quality). 5-3) Loopback test (5-4) for confirming the normality of the communication path, billing (5-5) for measuring the traffic, ABR control (5-6) for feedback control of communication congestion, between cells In this example, buffer control (5-7) for controlling the transmission order and header conversion (5-8) for rewriting the ATM cell header (32 in FIG. 4) are shown. Buffer control (5-7) and header conversion (5-8) are common functions (5-10) that are commonly supported regardless of the type of connection. Reference numerals 5-1 to 5-6 denote additional functions (5-0) determined to be supported / not supported by the connection type (54).
[0090]
Connections are classified into those that transfer User cells (8-10, 8-20) and test connections that do not transfer (8-30). The former is divided into a normal connection (8-10) that does not perform ABR control (5-6) and an ABR connection (8-20) that is performed. Further, the normal connection (8-10) and the ABR connection (8-20) are subdivided according to the support states of the VC failure management (5-2) and the VC performance monitoring (5-3). For example, VC failure management (5-2) and VC performance monitoring (5-3) are not supported for type 11 connections (8-11), and VC failure management (5-2) on type 12 (8-12). Only supported). In communication on the public network, the billing (5-5) needs to be supported by the normal connection (8-10) and the ABR connection (8-20) regardless of the connection type.
[0091]
Now, the connection type identification unit (22) in FIG. 8 derives the connection type (54) of the processing target connection by using the VPI and VCI (52) from the event reception unit (1) as inputs. The connection type identification unit (22) obtains 54 by referring to the VPI / VCI and connection type correspondence table on the connection information Memory (24). The Program selection unit (23) receives the event ID (53) and the connection type (54) as inputs, and outputs the address / size (55) of Configuration Data corresponding to the event and connection type. The program selection unit (23) derives 55 by referring to the correspondence table between the event ID / connection type and the configuration data address / size on the program information memory (25). The correspondence table on the connection information Memory (24) and the Program information Memory (25) is set by the host processor (43 in FIG. 6) when the line interface (40 in FIG. 6) is started up.
[0092]
Next, an example of processing executed by the FPGA (3 in FIG. 6) in which connections between elements are formed by Configuration Data (9-xy) selected in this way and loaded into the Program SRAM (3S) Is shown in FIG.
[0093]
Buffer control (5-7) and header conversion (5-8) are common functions (5-10 in FIG. 10). Processing for realizing them, priority control (4-7-1) and header conversion ( 4-8-1) is implemented in advance on the fixed logic element (3B). The UPC (5-1) to ABR control (5-6) are additional functions (5-0 in FIG. 10), and processing for realizing them is executed by the programmable logic element (3L). That is, the configuration data (x, y) (9-x) describes the connection between elements that realize processing for UPC (5-1) to ABR control (5-6) for each event / connection type. -Y).
[0094]
In the configuration of FIG. 6, Program (x, y) (9-xy) on Program SRAM (3S) is updated every time an event occurs. Therefore, global variables used globally between the programs 9-xy are FPGA.
It is necessary to arrange on the work memory (14).
[0095]
FIG. 11 illustrates a process corresponding to four Configuration Data.
[0096]
Configuration Data (9-44-11) is User cell reception (event 44) processing in connection type 11. According to FIG. 10, UPC (5-1) and billing (5-5) are supported as additional functions (5-0) on the type 11 connection (8-11 in FIG. 10). Therefore, in 9-44-11, only UPC policing (4-1-1) and billing count (4-5-1) are executed.
[0097]
Configuration Data (9-44-25) is a User cell reception process (event 44) as described above, but is a process for connection type 25. On the type 25 connection, UPC (5-1), VC failure management (5-2), VC performance monitoring (5-3), billing (5-5), and ABR control (5-6) are supported. ing. Therefore, in Configuration Data (9-44-25), policing (4-1-2) by UPC (5-1), VC recovery monitoring (4-2-2) for VC failure management (5-2), Quality monitoring (4-3-2) for MC performance monitoring (5-3) / MC transmission control (4-3′-2), counting for charging (5-5) (4-5-2) And congestion monitoring (4-6-2) / congestion setting (4-6′-2) for ABR control (5-6) is executed.
[0098]
Configuration Data (9-47-25) is processing for the connection 25 as described above, but the event is MC (VC-SG) reception. Therefore, only MC (VC-SG) reception processing (4-3-3) for VC performance monitoring (5-3) is executed in Configuration Data (9-47-25).
[0099]
As described above, in the present embodiment, the processing executed by the FPGA (3) differs depending on the type of the generated event and the processing target connection.
[0100]
That is, the FPGA does not implement Configuration Data (9 ′) that realizes processing for all events / functions as in the technology using the conventional programmable logic device shown in FIG. (3 in FIG. 1) Above, only Configuration Data necessary for the processing of the generated event is implemented only until the processing is completed.
[0101]
For example, in FIG. 11, when a User cell is received on a type 11 connection, Configuration Data (9-44-11) is loaded into the FPGA, and policing (4-1-1) and counting (4-5) are performed. Only 1) is implemented. Other processes, VC recovery monitoring (4-2-2), quality monitoring (4-3-2), etc. are not implemented on the FPGA.
[0102]
In other words, in the present embodiment, by performing dynamic configuration data loading (called Dynamic Reconfiguration) according to an event generated by the FPGA (3) program, the logic amount to be implemented in the FPGA (3) at a time is reduced. You can do it less. In other words, a logic portion corresponding to processing unrelated to the event to be processed at that time is not formed on the FPGA (3).
[0103]
Therefore, with such Dynamic Reconfiguration, the amount of hardware of FPGA (3) required to realize protocol processing can be reduced, and more functions can be realized using FPGA (3). It is. Furthermore, since the logic circuit formed on the FPGA (3) does not increase in scale, processing delay due to wiring delay or the like can be reduced.
[0104]
The embodiment of the present invention has been described above.
[0105]
By the way, in the above embodiment, the case where only one Program SRAM (3S) for loading the Configuration Data of the FPGA (3) is provided (when the initial value of the loadable number in FIG. 7 is 1) is shown.
[0106]
However, when there is only one Program SRAM (3S), when accessing the Program SRAM (3S), the process cannot be performed at high speed due to the competition that occurs between the Program loader (2P) and the programmable logic element (3L). There is.
[0107]
For example, as shown in FIG. 13, the Program Load (80-2) of the event 2 (7-2) cannot be started until the Program execution (90-1) for the event 1 (7-1) is completed. As a result, the processing throughput may be deteriorated, and thus the communication throughput may be adversely affected.
[0108]
Therefore, as shown in FIG. 14, the Program SRAM is divided into two planes (3S-1, 3S-2) (the initial value of the loadable number in FIG. 7 is set to 2).
It is preferable to parallelize Load and Program execution.
[0109]
In FIG. 14, selector 1 (3X-1) detects a transfer end signal on program bus (47) and switches Program SRAM connected to program bus (47). The selector 2 (3S-2) detects the execution end signal (56) from the programmable logic element (3L) of the FPGA 3, and switches the Program SRAM connected to the programmable logic element (3L). With this configuration, it is possible to load the next configuration data to the program SRAM (3S-2) during program execution (90) according to the configuration data on the program SRAM (3S-1).
[0110]
That is, for example, as shown in FIG. 14, if the time required for Program Load (80) is less than the time required for Program execution (90), Program Load (80-2 ′) of event 2 ′ is Program of event 1 ′. Completed during execution (90-1 '). Therefore, the processing overhead for Program Load (80) does not affect the processing throughput. In the case of a communication throughput of 155 Mbit / s, the processing time per ATM cell is about 2.7 μs.
[0111]
In the above embodiment, application to an ATM network has been described as an example. However, in the present embodiment, a line interface of a communication apparatus that processes other packet transfer protocols such as IP (Internet Protocol) and IP OVER ATM is described. It can be similarly applied to. In this case, the protocol processing of IP or IP OVER ATM is performed by FPGA (3), and the program corresponding to the occurrence event determined according to IP or IP OVER ATM is dynamically loaded into FPGA (3). To.
[0112]
In the above embodiment, selection of Configuration Data to be loaded is performed based on information (event ID, connection type) obtained from an occurrence event. The internal information of the ATM protocol processor may also be used.
[0113]
【The invention's effect】
As described above, according to the present invention, protocol processing using a programmable logic device can be realized with reduced processing speed and increased logical device size even when the overall protocol processing size is large. be able to.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of an ATM network.
FIG. 2 is a diagram showing a protocol stack in an ATM network.
FIG. 3 is a diagram showing a format of an ATM cell.
FIG. 4 is a diagram showing a form of an ATM communication connection.
FIG. 5 is a diagram showing types of ATM cells.
FIG. 6 is a diagram showing a configuration of a line interface according to the embodiment of the present invention.
FIG. 7 is a flowchart showing processing of the ATM protocol processing apparatus according to the embodiment of the present invention.
FIG. 8 is a diagram showing a configuration for selecting a program in the ATM protocol processing apparatus according to the embodiment of the present invention;
FIG. 9 is a diagram showing event types to be processed by the ATM line interface according to the embodiment of the present invention.
FIG. 10 is a diagram illustrating an example of functions supported by the ATM protocol processing apparatus according to the embodiment of the present invention.
FIG. 11 is a diagram illustrating an example of protocol processing performed by the FPGA in the embodiment of the present invention.
FIG. 12 is a diagram illustrating an example of protocol processing performed by the FPGA when a conventional technique is applied.
FIG. 13 is a diagram showing an example of processing scheduling when there is one FPGA Program SRAM in the embodiment of the present invention.
FIG. 14 is a block diagram showing a configuration of an FPGA when two FPGA Program SRAMs are provided in the embodiment of the present invention.
FIG. 15 is a diagram showing an example of processing scheduling when two FPGA Program SRAMs are provided in the embodiment of the present invention.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Event reception part, 2 ... Reconfiguration control part, 3 ... FPGA, 9 ... Configuration Data, 10 ... ATM protocol processing part, 15 ... FPGA Program Memory, 40 ... Line interface, 41R ... reception physical layer processing unit, 41T ... transmission physical layer processing unit, 42 ... host system, 46 ... host bus, 100 ... ATM switch, 102 ... control unit 110 ... Terminal 120 ... ATM line

Claims (5)

通信プロトコルの処理を行う通信プロトコル処理装置であって、
複数の構成データ記憶装置を備え、順次一つの構成データ記憶装置を現用とし、現用の構成データ記憶装置に書き込まれた構成データを読み込み、読み込んだ構成データに従った論理回路を形成するプログラマブル論理デバイスと、
相互に独立して行われる通信プロトコルの処理の部分毎に、通信プロトコルの処理の部分を行う論理回路を前記プログラマブル論理デバイス上に形成する構成データを記憶した二次記憶装置と、
通信プロトコルの処理を実行すべき各時点において、当該時点において実行すべき通信プロトコルの処理の部分に対応する構成データを選択し、選択した構成データを前記二次記憶装置から読み出し、前記複数の構成データ記憶装置のうち、次にプログラマブル論理デバイスが現用とする構成データ記憶装置に書き込む手段と、を有すること
を特徴とする通信プロトコル処理装置。
A communication protocol processing device for processing a communication protocol,
Programmable logic device comprising a plurality of configuration data storage devices, sequentially using one configuration data storage device as the current configuration, reading configuration data written to the current configuration data storage device, and forming a logic circuit according to the read configuration data When,
A secondary storage device storing configuration data for forming a logic circuit for performing a communication protocol processing part on the programmable logic device for each communication protocol processing part performed independently of each other;
At each time point at which communication protocol processing is to be executed, configuration data corresponding to a part of the communication protocol processing to be executed at that time point is selected, the selected configuration data is read from the secondary storage device, and the plurality of configurations A communication protocol processing device comprising: means for writing to a configuration data storage device which is next used by a programmable logic device among data storage devices.
請求項1に記載の通信プロトコル処理装置であって、
通信プロトコルの処理を実行すべき各時点において、当該時点において実行すべき通信プロトコルの処理の部分を判定する判定手段をさらに有し、
前記書き込む手段は、前記判定手段が判定した通信プロトコルの処理の部分に対応する構成データを選択し、選択した構成データを前記二次記憶装置から読み出し、前記複数の構成データ記憶装置のうち、次にプログラマブル論理デバイスが現用とする構成データ記憶装置に書き込むこと
を特徴とする通信プロトコル処理装置。
The communication protocol processing device according to claim 1 ,
At each time point at which communication protocol processing is to be executed, a determination means for determining a portion of communication protocol processing to be executed at that time point,
The writing unit selects configuration data corresponding to the processing portion of the communication protocol determined by the determination unit, reads the selected configuration data from the secondary storage device, and selects the next of the plurality of configuration data storage devices. A communication protocol processing device, wherein the programmable logic device writes to a configuration data storage device currently used.
コネクションを介して通信データを受信する請求項2に記載の通信プロトコル処理装置であって、
伝送路の管理もしくは制御するための処理の開始の指示を発行する制御手段を備え、
前記判定手段は、前記通信プロトコルの処理の部分の判定は、受信した通信データの種類と、前記制御手段より発行された伝送路の管理もしくは制御するための処理の開始の指示の種類と、受信した通信データを伝送するコネクションの種類と、前記通信プロトコル処理装置の状態とのうちの少なくとも一つに基づいて行うこと
を特徴とする通信プロトコル処理装置。
The communication protocol processing device according to claim 2, wherein the communication data is received via a connection.
A control means for issuing an instruction to start a process for managing or controlling the transmission line;
The determination means determines the processing part of the communication protocol by determining the type of received communication data, the type of instruction for starting the process for managing or controlling the transmission path issued by the control means, and receiving The communication protocol processing device is characterized in that it is performed based on at least one of a type of connection for transmitting the communication data and a state of the communication protocol processing device.
ATM(Asynchronous Transfer Mode)セルを受信し、ATMに従った通信プロトコル処理を行い、ATMセルを送信する請求項2に記載の通信プロトコル処理装置であって、
伝送路の管理もしくは制御するための処理の開始の指示を発行する制御手段を備え、
前記判定手段は、前記通信プロトコルの処理の部分の判定を、受信したATMセルの宛先情報と、受信したATMセルの種別情報と、前記制御手段が発行した伝送路の管理もしくは制御するための処理の開始の指示の種類と、前記通信プロトコル処理装置の状態とのうちの少なくとも一つに基づいて行うこと
を特徴とする通信プロトコル処理装置。
The communication protocol processing device according to claim 2, wherein an ATM (Asynchronous Transfer Mode) cell is received, communication protocol processing according to ATM is performed, and an ATM cell is transmitted.
A control means for issuing an instruction to start a process for managing or controlling the transmission line;
The determination means is a process for managing or controlling the received ATM cell destination information, the received ATM cell type information, and the transmission path issued by the control means for determining the processing part of the communication protocol. A communication protocol processing device, which is performed based on at least one of a type of start instruction and a state of the communication protocol processing device.
請求項4に記載の通信プロトコル処理装置を備えたATM(Asynchronous Transfer Mode)交換機であって、
複数の前記通信プロトコル処理装置と、
前記複数の通信プロトコル処理装置間で送受信するATMセルの交換を行うスイッチとを有すること
を特徴とするATM交換機。
An ATM (Asynchronous Transfer Mode) exchange comprising the communication protocol processing device according to claim 4 ,
A plurality of the communication protocol processing devices;
A switch for exchanging ATM cells to be transmitted and received between the plurality of communication protocol processing devices.
JP02201398A 1998-02-03 1998-02-03 Communication protocol processing method and communication protocol processing apparatus Expired - Fee Related JP3660494B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02201398A JP3660494B2 (en) 1998-02-03 1998-02-03 Communication protocol processing method and communication protocol processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02201398A JP3660494B2 (en) 1998-02-03 1998-02-03 Communication protocol processing method and communication protocol processing apparatus

Publications (2)

Publication Number Publication Date
JPH11220475A JPH11220475A (en) 1999-08-10
JP3660494B2 true JP3660494B2 (en) 2005-06-15

Family

ID=12071128

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02201398A Expired - Fee Related JP3660494B2 (en) 1998-02-03 1998-02-03 Communication protocol processing method and communication protocol processing apparatus

Country Status (1)

Country Link
JP (1) JP3660494B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2374756B (en) * 2001-04-20 2004-07-28 Discreet Logic Inc Image processing
GB2374749B (en) 2001-04-20 2005-04-06 Discreet Logic Inc Image data processing
GB2374769B (en) 2001-04-20 2004-07-21 Discreet Logic Inc Network system for data processing systems and data storage systems
JP4740828B2 (en) * 2006-11-24 2011-08-03 株式会社日立製作所 Information processing apparatus and information processing system

Also Published As

Publication number Publication date
JPH11220475A (en) 1999-08-10

Similar Documents

Publication Publication Date Title
US6708210B2 (en) Application programming interfaces and methods enabling a host to interface with a network processor
EP0939573B1 (en) ATM cell transmission scheduling
US7151744B2 (en) Multi-service queuing method and apparatus that provides exhaustive arbitration, load balancing, and support for rapid port failover
US6907040B2 (en) Router apparatus and frame transfer method
US6272144B1 (en) In-band device configuration protocol for ATM transmission convergence devices
EP1131923B1 (en) Multi-protocol conversion assistance method and system for a network accelerator
JP3109591B2 (en) ATM switch
EP0924954B1 (en) ATM cell transmissions
US5459723A (en) Packet management device for fast-packet network
US5483525A (en) Assignment method and apparatus of virtual path and virtual channel identifiers in an asynchronous transfer mode
JPH09116560A (en) Network server
JP2007026437A (en) Method and system for software updating
US6711167B1 (en) ATM communication apparatus controlling method, ATM communication apparatus and recording medium therefor
KR20020025847A (en) Internal communication protocol for data switching equipment
US6658014B1 (en) Packet buffer device and packet assembling method
US6754216B1 (en) Method and apparatus for detecting congestion and controlling the transmission of cells across a data packet switch
US6963563B1 (en) Method and apparatus for transmitting cells across a switch in unicast and multicast modes
JP3660494B2 (en) Communication protocol processing method and communication protocol processing apparatus
US6643285B1 (en) Message based packet switch based on a common, generic bus medium for transport
EP0674825B1 (en) Device for the conversion of data blocks, frame structured, into atm cells and vice versa
US5787075A (en) Switched multi-megabit digital service switching apparatus
US6002688A (en) Circuit for calculating number of idle virtual path identifier and virtual channel identifier
JP2001024661A (en) Multicast system and exchanging method therefor
KR100483546B1 (en) Apparatus and method of multicast switching by ATM cell copying
JPH07154395A (en) Exchange device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040608

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040809

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20040809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050117

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050317

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees