JP3753016B2 - STM mapping apparatus and STM mapping method - Google Patents

STM mapping apparatus and STM mapping method Download PDF

Info

Publication number
JP3753016B2
JP3753016B2 JP2001166518A JP2001166518A JP3753016B2 JP 3753016 B2 JP3753016 B2 JP 3753016B2 JP 2001166518 A JP2001166518 A JP 2001166518A JP 2001166518 A JP2001166518 A JP 2001166518A JP 3753016 B2 JP3753016 B2 JP 3753016B2
Authority
JP
Japan
Prior art keywords
memory
byte
bytes
logical channel
packet
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
JP2001166518A
Other languages
Japanese (ja)
Other versions
JP2002359642A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2001166518A priority Critical patent/JP3753016B2/en
Publication of JP2002359642A publication Critical patent/JP2002359642A/en
Application granted granted Critical
Publication of JP3753016B2 publication Critical patent/JP3753016B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、STS(Synchronous Transport Signal)フレームやSTM(Synchronous Transfer Module)フレームのペイロードに、データフレームとアイドルフレーム(Idle Frame)を所定の物理チャネルに格納するためのマッピング処理を行うSTMマッピング回路、及び、STMマッピング方法に関する。
【0002】
【技術の背景】
情報通信のトラヒック量は、その増加が求められている。トラヒック量の増加のために、通信回線の伝送速度がより高速化する傾向にある。伝送速度は、LSIの処理速度、デバイス間のデータ転送速度のような信号処理速度により制限される。その高速化のために、受信信号をパラレル展開して処理する技術が採用されている。例えば、伝送速度が2.488Gbpsの通信回線から信号を受信した場合、その受信信号を64本の38.88Mbpsの信号にパラレル展開すれば、十分に処理可能な速度でその受信信号を取り扱うことができる。
【0003】
固定長パケットは、ヘッダ部などのオーバーヘッドが大きく、伝送効率が低下する。伝送フレームを可変長にすることにより、伝送効率を高くする技術は、WO96−26582号で知られている。PPP(Point to Point Protocol)のようにデータ長がパケット毎に異なる可変長パケットを処理する場合には、伝送装置は、可変長パケットをATM(Asynchronous Transfer Mode)セルのような固定長の小さなパケットに区切りスイッチング処理を行っている。
【0004】
T1X1などの標準化作業により可変長パケットを固定長パケットに区切らずにそのままで取り扱って、オーバーヘッドを小さくして伝送効率を向上する処理技術が提案されて知られている。このような処理技術として、GFP(Generic Framing Procedure)、SDL(Simple Data Link)のような処理技術が知られている。
【0005】
図13は、GFPのパケットフォーマットを示している。図13(a)は、ユーザパケットや制御パケットを格納するGFPフレームを示している。本明細書では、このGFPフレームをユーザパケットフレームと呼ぶこととする。このようなパケットフォーマットをSDHフレームのペイロード領域に格納して装置間を転送する。ユーザデータ(User Data)領域101に可変長データを収容し、そのパケット長はPLI(PDU Length Indicator)領域に格納される。コアヘッダ(Core Header)部の長さは、PLI値には含まれず、4バイト固定長として規定されている。図13(b)は、図13(a)のユーザデータ領域101に含まれて隣り合う1つのユーザパケットフレームと他の1つのユーザパケットフレームとの間を満たすために挿入されるアイドルフレーム103を示している。そのアイドルフレームの長さは、4バイト長であり、そのデータパターンは”00000000h”、又は、”B6AB31E0h”として規定されている。
【0006】
可変長のパケットフレームを取り扱う通信装置の中では、その装置内メモリ量の削減のために、STMフレームからGFPフレーム又はSDLフレームを取り出す際に、アイドルフレームを廃棄して出力側で再度STMフレームに格納する処理の中で、GFPフレーム間にアイドルフレームを挿入する処理形態を採用することが多い。
【0007】
図14(a),(b)と図15(a),(b)は、可変長データの配列を示している。図14(a),(b)と図15(a),(b)とは、図中の1点鎖線で接続している。図14(a)と図14(b)は、信号を4バイト幅(32ビット幅)にパラレル展開して処理を行う装置により、STMフレームから取り出したGFPフレーム列を示している。図中の矢印方向にデータ列が進行するものとする。第1ユーザパケットフレームは、バイトp1−1〜バイトp1−25から形成されそのバイト数は25である。第2ユーザパケットフレームは、バイトp2−1〜バイトp2−26から形成され、そのバイト数は26である。第3ユーザパケットフレームは、バイトp3−1〜バイトp3−23から形成され、そのバイト数は23である。第1ユーザパケットフレームと第2ユーザパケットフレームとの間には、2個のアイドルフレーム(計8バイト)が挿入され、第2ユーザパケットフレーム2と第3ユーザパケットフレームとの間には3個のアイドルフレーム(計12バイト)が挿入されている。これらのバイトを装置内部で図15(a),(b)に示されるように並べ替えるとともに、ユーザパケット先頭を示す信号SOP(Start of Packet)とユーザパケット後尾を示す信号EOP(End of Packet)を生成し、これらの信号形式でスイッチング処理を行うことが多い。
【0008】
ユーザパケットフレームは、そのペイロードヘッダ部によってユーザパケット信号の宛先毎に種別を区別され、このような種別は論理チャネルと呼ばれる。図14(a)と図15(a)に示される第1ユーザパケットフレーム〜第3ユーザパケットフレームが異なるペイロードヘッダを有するときには、このデータ信号列は3つの論理チャネルで形成されている。第1ユーザパケットフレーム〜第3ユーザパケットフレームが同一のペイロードヘッダを有するときには、このデータ信号列は、一つの論理チャネルで形成されている。次に、図14(a)と図15(a)に示されるユーザパケットフレームを、図14(b)と図15(b)のようにバイトの並べ替えを行えば、各ユーザパケットの先頭のバイトデータをパラレル展開された信号列の先頭バイト(図14(a)と図15(a)のByte0で示される行のバイト)にそれぞれ格納することができ、ユーザパケットの先頭が明らかになり後の処理が容易になる。例えば、ユーザパケット先頭に、予め定められた固定長ビットパターンが挿入されている場合、バイト0(Byte0)を監視することによりそのビットパターンを容易に検出することができる。更に、パラレル展開によって一度に処理する4バイトのデータ(図15(a)ではByte0〜Byte3)に複数ユーザパケット分のデータが含まれることがないので、スイッチング処理のような処理操作が容易になる。
【0009】
ユーザパケットフレームには、最後尾にパッドバイト(Pad Byte)を挿入されて付加され、各ユーザパケットフレーム長はパラレル展開する信号数の整数倍に変換されている。このような変換は、データ幅を調整する役目を持ち、予め決められた”0”と”1”の繰り返しパターン、又は、全て”0”のパターンで構成されていて、パッドバイトそのものには論理的な意味が持たせられているわけではない。また、PLI値にはパッドバイト長は含められない。
【0010】
このような信号形式でスイッチング処理が行われた後に、GFPフレームを再度STMフレームに格納する処理が行われて、ユーザパケットが伝送路に送出される。GFPフレームのユーザパケットフレームと他のユーザパケットフレームの間に時間間隔がある場合には、アイドルフレームがフレーム単位(4バイト単位)で挿入される。パッドバイトは、取り除かれる。
【0011】
図16は、伝送フレームの構成例を例示している。STS−nは、SONET(Synchronous Optical Network)で規定される多重化フォーマットである。STM−nは、SDH( Synchronous Digital Hierarchy )で規定される多重化フォーマットである。図16に示されるように、STSの伝送フレームとSTMの伝送フレームには、先頭にSOH(Section Over Head)領域103とAU PTR(Administrative Unit Pointer)領域104とが設けられ、それらに続いてペイロード領域105が設けられている。例えば、STM−16は、48個のAU(Administrative Unit)−3(51.84Mbps)から構成され、AU−3が1個の物理チャネルとして定義されれば、ぺイロード領域105には最大48物理チャネル分のデータが格納される。また、ペイロード領域105には、図16に示される矢印の順序で物理チャネルのバイトデータがそれぞれ格納される。なお、図16の各行はそれぞれに8ビット(1バイト)で構成され、伝送路上では1クロックで1物理チャネル分のデータが1バイトずつ送信される。なお、従来のSTMフレームのペイロードにおいて、VC−3やVC−4のような単位フレームが順番に格納される処理単位は、本発明を表現する技術的用語として本明細書では、特に物理チャネルと呼ばれ、パケットヘッダの宛先毎に区別されるパケット種別である論理チャネルと区別される。
【0012】
図17は、特願2001−093570に記載されている技術に更に改良を施してキュー長管理を行うために想定されるSTMマッピング回路を示している。このような回路には、所定の論理チャネルにバイト単位でデータを振り分けつつ伝送フレームに格納するためのマッピング処理を行う技術が付加されている。そのSTMマッピング回路は、入力ユーザパケットデータのパケット長を検出しパラレル展開した1バイト毎に有効なバイトデータか、又は、そうでないか(挿入されたパッドバイトであるか)を示すMビットのバイト有効性情報を生成するパケット長検出回路111と、後述されるM×Mスイッチ113でルーティング処理を制御するルーティング情報を生成するルーティング回路112と、N本(Nは48以下の正の整数)の論理チャネル毎にM個のバイトデータをM個の出力ポートに振り分けるM×Mスイッチ113と、ユーザパケットデータと同時に入力されそのユーザパケットデータのマッピング先を示すチャネル番号信号に基づいて自論理チャネルで処理するパケットデータを取り込むN個のパケットフィルタ回路114−1〜114−Nと、M×Mスイッチ113で振り分けられたパケットデータを一時的に格納する1チャネルあたりM個のFIFO(First-in First-out)メモリから成るM×N個のパケットメモリ115−11〜115−NMと、パケットデータをパケットメモリ115−11〜115−NMに書き込むメモリライト制御回路116−1〜116−Nと、STMフレームの物理チャネルにいずれの論理チャネルを割り当てるか記憶するチャネル制御メモリ117と、チャネル制御メモリ117の設定に従ってパケットメモリより読み出すメモリリード制御回路118−1〜118−Nと、メモリリード制御回路118−1〜118−Nから出力されるパケットデータをチャネル制御メモリ117から出力する論理チャネル情報信号119に基づいてバイト単位でスイッチングするM×Mスイッチ120−1〜120−Nと、論理チャネル毎にパケットメモリの蓄積バイト数を監視して0ならばアイドルフレームを生成するアイドルフレーム生成回路121−1〜121−Nと、セレクタ回路122−1〜122−Nと、M×Mスイッチ120−1〜120−Nの出力をチャネル制御メモリ117から出力する論理チャネル情報信号119に基づいてバイト単位で選択的に出力するセレクタ回路123−1〜123−Nとから構成されている。
【0013】
ルーティング回路112には、パケット長検出回路111から出力されるパケットデータ、バイト有効性情報、チャネル情報信号、SOP信号、EOP信号が入力される。パケット長検出回路111は、ルーティング情報、論理チャネル番号、書き込みバイト数、ルーティング最終ポート番号、SOP、EOPを出力する。M×Mスイッチ113は、論理チャネル毎に、パケットフレームのパッドバイトを取り除き、その論理チャネルX(Xは1以上N以下の整数)のパケットメモリ115−X1〜115−XMに、115−X1、115−X2、115−X3・・・・・115−XMの順番に1バイトずつ詰めて蓄積されるように並べ替えが行われる。パケットメモリ115−X1〜115−XMは、STMフレームの物理チャネルに対し任意の論理チャネルを割り当てるために、ある1クロックに0〜Mバイトまで、1バイト単位で同一の論理チャネルから読み出しができるように、1バイトずつ独立したFIFOメモリで構成されている。
【0014】
チャネル制御メモリ117には、STMフレームの物理チャネル数を1周期として、その物理チャネルに対して格納を行う論理チャネル番号1〜Nが記憶されている。各論理チャネルのメモリリード制御回路123−1〜123−Nは、自論理チャネルを出力する物理チャネルのタイミングで115−X1、115−X2、115−X3・・・・・115−XMの順番で1バイトずつデータを読み出す。パケットメモリ115−X1〜115−XMの書き込み数と読み出し数とから論理チャネル毎にパケットメモリ115−X1〜115−XMの総蓄積バイト数を1クロック毎に算出し、0であれば、アイドルフレーム生成回路121−Xでアイドルフレームを生成し、セレクタ回路122−Xで選択的に出力し、セレクタ回路123−1〜123−Mで選択的に出力し、論理チャネル毎のバイト信号を多重化する。セレクタ回路123−1〜123−Mでのセレクト信号は、論理チャネル情報信号を用いて対応するバイトのチャネル情報に従って、論理チャネル1〜論理チャネルNを選択的に出力する。
【0015】
キュー長管理回路を持つアイドルフレーム生成回路121−1〜121−Nは、図18,19に示されるように、パケットメモリ115−1〜115−Nに蓄積されている論理チャネルごとのバイト数を算出して、そのバイト数が0であれば4バイトのアイドルフレームの送出が途中で終わっていなかったかを判定することにより、アイドルフレームの何バイト目から出力するかを判定する。また、今度の1クロックではチャネル制御メモリに自論理チャネル用の出力バイトとして設定されているバイト数を識別し、蓄積バイト数が小さい場合には、何バイト分をパケットメモリより読み出すデータとするかを判定し、更に、何バイト分をアイドルフレームとするかを判定する。
【0016】
このような提案のSTMマッピング回路のアイドルフレーム挿入回路121−1〜121−Nは、その回路規模が増大しないで、処理速度が更に高速化されることが求められる。一連の処理を1クロック毎に連続して行うために追加される回路は、複雑になならず、ディジタル論理回路で高速処理を実現する際に、1クロックで処理可能なロジック段数と動作速度が限定されないで、パラレル展開数を大きくする場合に回路規模の増大を抑制することができる技術の確立が求められる。
【0017】
アイドルフレームの挿入とパケットの読出しの処理が高速化されることが求められる。更に、アイドルフレームの挿入とパケットの読出しの高速化のために、アイドルフレームの挿入とパケット読出しのための回路の規模が増大することを抑制することができることが望まれる。
【0018】
【発明が解決しようとする課題】
本発明の課題は、アイドルフレームの挿入とパケットの読出しの処理をより高速化することができるSTMマッピング装置を提供することにある。
本発明の他の課題は、アイドルフレームの挿入とパケットの読出しの高速化のために、アイドルフレームの挿入とパケット読出しのための回路の規模が増大することを抑制することができるSTMマッピング装置を提供することにある。
【0019】
【課題を解決するための手段】
その課題を解決するための手段が、下記のように表現される。その表現中に現れる技術的事項には、括弧()つきで、番号、記号等が添記されている。その番号、記号等は、本発明の実施の複数・形態又は複数の実施例のうちの少なくとも1つの実施の形態又は複数の実施例を構成する技術的事項、特に、その実施の形態又は実施例に対応する図面に表現されている技術的事項に付せられている参照番号、参照記号等に一致している。このような参照番号、参照記号は、請求項記載の技術的事項と実施の形態又は実施例の技術的事項との対応・橋渡しを明確にしている。このような対応・橋渡しは、請求項記載の技術的事項が実施の形態又は実施例の技術的事項に限定されて解釈されることを意味しない。
【0020】
本発明によるSTMマッピング装置は、可変長パケットを展開したデータバイトを1クロック毎に格納するパケットメモリ(19−1〜19−N)と、データバイトをパケットメモリ(19−11〜19−NM)に1クロック毎に配分するメモリ制御回路とから構成されている。パケットメモリ(19−11 〜19−NM)は、可変長パケットの種別を表す論理チャネル毎に形成される1バイトずつ独立したM個のFIFOメモリ(19−11〜19−NM)を備えている。その制御回路は、論理チャネル毎のデータ蓄積バイト数が閾値未満であることを1クロック毎に示す判別信号を出力するキュー長管理回路(23−1〜23−N)と、FIFOメモリ(19−11〜19−NM)に最後に格納したデータバイトのバイト番号の次のバイト番号のFIFOメモリ(19−11〜19−NM)に書き込むMバイト単位のアイドルフレームを生成する生成回路(24−1〜24−N)と、前記判別信号に基づいて前記Mバイト単位のアイドルフレームを選択的に前記パケットメモリに出力するセレクタ回路(25−1〜25−N)とを備えている。
【0021】
データ蓄積バイト数を管理してメモリ量が適正量以下である場合に、Mバイト単位のアイドルフレームを書き込むので、可変長パケットの書き込みの順番と量とが同時的に制御され、回路規模の増大を抑えながら高速の書き込みと読み込みが安全に制御され、書き込み順番の制御の利点をより有効に活用することができる。前後する可変長パケットの間でFIFOメモリにアイドルフレームを隙間なく書き込むことは、回路規模の増大を抑える。
【0022】
キュー長管理回路(23−1〜23−N)の適正量の管理は、論理チャネル毎のMバイト幅のFIFOメモリ(19−11〜19−1M)に保持されているデータバイトのM個単位の書込みバイト数WとFIFOメモリ(19−11〜19−1M)から読み出されるデータバイトのM個単位の読出しバイト数Rと蓄積バイト数Qとに基づいて、新たにQ=Q+W−Rにより算出してデータ蓄積バイト数を1クロック毎に算出することを実行している。M個バイト単位で1クロック毎にデータバイトの差し引き勘定を行って、1クロックの時間範囲で蓄積量を管理している。このような管理は、その安全性を確実にする。
【0023】
キュー長管理回路(23−1〜23−N)は、データ蓄積バイト数が設定閾値未満であり、且つ、論理チャネルの入力状態が可変長パケットの間の区間状態であればセレクト信号IDL=1を出力し、論理チャネルの入力状態がユーザーパケットフレームの途中状態であればセレクト信号IDL=0を出力する。キュー長管理回路(23−1〜23−N)は、セレクタ回路(25−1〜25−N)を更に備えている。セレクタ回路(25−1〜25−N)は、セレクト信号IDL=1に基づいてアイドルフレームをパケットメモリ(19−1〜19−N)に出力する。セレクト信号IDL=1が出力されれば、データ蓄積バイト数にMが加算され、キュー長はダイナミックに正しく管理される。
【0024】
セレクタ回路(25−1〜25−N)は、セレクト信号IDLに基づいて、Mバイト幅のユーザパケットフレーム信号及びMバイトのいずれのバイトが有効なユーザパケットフレームであるかを示すバイト有効性情報と、生成回路(24−1〜24−N)が出力するアイドルフレーム信号及びバイト有効性情報とを選択的に出力する。
【0025】
キュー長管理回路(23−1〜23−N)は、更新蓄積バイト数Qと設定閾値Qbpとの大小比較を行い、Q≦Qbpであれば論理チャネル毎のバックプレッシャー信号BP[X]=0を出力し、Q>Qbpであれば論理チャネル毎のバックプレッシャー信号BP[X]=1を出力する。データバイトの配分と量の管理を行うキュー長管理回路(23−1〜23−N)の機能は、そのままに、前段又は後段の回路の制御タイミングのようなバックプレッシャー制御のために用いられ得る。
【0026】
キュー長管理回路(23−1〜23−N)は、更に、更新蓄積バイト数Qとメモリ長最大値Qmaxとの大小比較を行い、Q≦Qmaxであれば論理チャネル毎のメモリオーバーフローアラーム信号OFALM[X]=0を出力し、Q>Qmaxであれば論理チャネル毎のメモリオーバーフローアラーム信号OFALM[X]=1を出力し、更に、前記更新蓄積データバイト数Qと0との大小比較を行い、Q≧0であれば論理チャネル毎のメモリアンダーフローアラーム信号UFALM[X]=0を出力し、Q<0であれば論理チャネル毎のメモリアンダーフローアラーム信号UFALM[X]=1を出力する。データバイトの配分と量の管理を行うキュー長管理回路(23−1〜23−N)の機能は、そのままに、安全管理のために用いられ得る。キュー長管理回路(23−1〜23−N)は、メモリアンダーフローアラーム信号UFALM[X]を0とするか1とするかを更新蓄積バイト数Qに基づいて判断し、且つ、セレクト信号IDLを0とするか1とするかをEOP信号とSOP信号とに基づいて並列的に判断する。
【0027】
本発明によるSTMマッピング装置は、Mバイト幅で形成されるメモリー領域(19−1〜19−N:図8)に可変長パケットのデータバイトを隙間なく詰めて書き込む第1ステップと、メモリー領域に書き込まれているデータバイトの数Qを計数する第2ステップと、数Qが設定閾値未満であれば前後する可変長パケットの間にMバイト単位のアイドルフレームをメモリー領域に隙間なく書き込む第3ステップとから構成されている。数Qは、メモリー領域に書き込まれるデータバイト数Rとメモリーから読み出されるデータバイト数とに基づいてQ=Q+W−Rにより算出される数である。Mバイト幅のデータバイトは1クロックごとに読み出され且つ書き込まれ、数Qは1クロック毎に算出される。設定閾値がQbpで表され、Q≦Qbpであれば論理チャネル毎のバックプレッシャー信号BP[X]=0を出力し、Q>Qbpであれば論理チャネル毎のバックプレッシャー信号BP[X]=1を出力する第5ステップが追加されている。
【0028】
1個の可変長のユーザパケットフレームをパラレル化したMバイト幅(Mは4の倍数且つ2のべき乗)のデータバイトを論理チャネル毎に保持する1バイト幅×M個のFIFOメモリから形成され、ユーザパケットフレーム間のパッドバイトが取り除かれた状態でパケットをFIFOメモリに隙間なく保持するパケットメモリ(19−1〜19−N)の読出しを制御することにより、予め定められた順序でパケットメモリ(19−1〜19−N)からデータバイトを順番に出力することにより、STMフレームに設定された物理チャネルに対して、任意の論理チャネルのデータバイトをマッピングしてパケットデータが出力される。
【0029】
各論理チャネル毎に、キュー長管理回路(23−1〜23−N)で蓄積バイト数を監視し、設定閾値Qidlよりも蓄積バイト数が小さく、且つ、その論理チャネルが、一つのユーザパケットフレームの受信途中ではなく、ユーザパケットフレームと次のユーザパケットフレームとの間の期間であれば、アイドルフレーム挿入信号IDL=1を生成し、ユーザパケットフレームとアイドルフレーム生成回路(24−1〜24−N)で生成するアイドルフレームのいずれかを信号IDLに基づいてセレクタ回路(25−1〜25−N)で選択し、メモリライト制御回路(21−1〜21−N)でパケットメモリ(19−1〜19−N)に対して書き込む。更に、高速処理できるので、パラレル展開数を大きくしなくてもよく、回路増大を抑えることができる。
【0030】
キュー長管理回路(23−1〜23−N)は、各チャネル毎に蓄積バイト数Qが設定閾値Qidl未満であるか否かを判定し、且つ、SOP信号とEOP信号とからユーザパケットフレーム間であるか否かを判定するのみで、処理段数が小さく済むので、回路を小型化、高速化することが可能である。メモリの入り口側より空きセルを書き込む方式は、特開平11−55267などで記されているが、これはATMのような固定長パケットでの空きセル挿入の方式であり、空きセルの先頭バイトがメモリの異なるバイト番号に変移してゆくことはない。
【0031】
【発明の実施の形態】
図に対応して、本発明によるSTMマッピング装置の実施の形態は、STS−48にパケットデータをマッピングするSTMマッピング装置として例示されていて、パケットデータ配分制御回路が、パケットデータ入力回路とパケットデータ出力回路とともに設けられている。そのパケットデータのデータバイトをパラレルに物理的に配列する制御を実行するパケットデータ配列制御回路1は、図1に示されるように、N個のパケットデータ配列制御回路1−1〜1−Nから構成されている。そのパケットデータ入力回路2は、パケットデータ配列制御回路1−1〜1−Nに入力的に並列に接続している。パケットデータ配列制御回路1−1〜1−Nは、パケットデータ出力回路3に出力的に並列に接続している。
【0032】
パケットデータ入力回路2は、パケット長検出回路4と、ルーティング回路5と、入力側M×Mスイッチ6とを備えている。パケット長検出回路4に、ユーザパケットフレームデータ列7が入力される。Mは、4の倍数であり、且つ、2のべき乗(例示:4,8,16,・・・)である。入力ユーザパケットフレームデータ列7は、ユーザパケットフレーム列9と論理チャネル信号11とSOP12とEOP13とで構成され、これらはパケット長検出回路4に入力される。
【0033】
パケット長検出回路4は、ユーザパケットフレーム列7のそれぞれのユーザパケットフレーム長をコアヘッダ部のPLI領域より算出し、パラレル展開された入力信号列7の各1バイトが有効なユーザパケットフレームであるか、あるいはユーザパケットフレームではなくパッドバイトであるかを示すバイト有効性情報14を生成して出力する。バイト有効性情報14は、Mビットで構成されている。Mバイト幅を持つユーザパケットフレーム9は、論理チャネル信号11とSOP12とEOP13とバイト有効性情報14とともにパケット長検出回路4から出力されてルーティング回路5に入力される。
【0034】
ルーティング回路5は、M×Mスイッチ6がルーティング処理を制御するためのルーティング情報15を生成し、更に、書込みバイト数16とRT(ルーティング)最終ポート番号17とを生成して出力する。ユーザパケットフレーム列9とバイト有効性情報14とルーティング情報15とは、論理チャネル信号11とSOP12とEOP13と書込みバイト数16とともに入力側M×Mスイッチ6に入力される。入力側M×Mスイッチ6は、ルーティング情報15に基づいてユーザパケットフレーム9の並べ替えを行う。
【0035】
N個のパケットデータ配列制御回路1−1〜1−Nは、それぞれに、パケットフィルタ回路18−1〜18−Nを備えている。パケットフィルタ回路18−1〜18−Nは、各々のユーザパケットフレーム9のペイロードヘッダ部に基づいて、そのユーザパケットフレームが属する論理チャネルの論理チャネル番号を判定し、自論理チャネルで処理するパケットデータ9−NMを取り込むことができる。
【0036】
パケットデータ配列制御回路1−1〜1−Nは、Mバイト幅のユーザパケットフレーム(Mバイト幅データ)9及びアイドルフレームを一時的に格納するM個の独立した(First-in First-out)メモリから形成されるM個×Nチャネル分のパケットメモリ19−1M〜19−NMを備えている。1チャンネルのパケットメモリ19−1は、8バイトに対応する8個のメモリ要素19−11〜19−1Mを備えている。
【0037】
パケットデータ配列制御回路1は、メモリライト制御回路21−1〜21−Nを備えている。メモリライト制御回路21−1〜21−Nは、パケットメモリ19−11〜19−NMにユーザパケットフレームおよびアイドルフレームの各データバイトを書き込む制御を実行する。パケットデータ配列制御回路1は、メモリリード制御回路22−1を備えている。メモリリード制御回路22−1は、パケットメモリ19−11〜19−NMからユーザパケットフレームおよびアイドルフレームを読み出す制御を実行する。
【0038】
パケットデータ配列制御回路1は、キュー長管理回路23−1〜23−Nを備えている。キュー長管理回路23−1〜23−Nは、パケットメモリ19−11〜19−NMにそれぞれに蓄積されている論理チャネルごとのユーザパケットフレームおよびアイドルフレームのデータバイトのバイト総数Qを1クロック毎にその論理チャネル毎に算出して、論理チャネル毎のバイト総数Qが閾値Qidl以下であり、且つ、その論理チャネルへの入力ユーザパケットフレーム列が、一つのユーザパケットフレームの受信途中ではなく、ユーザパケットフレームと次のユーザパケットフレームとの間の期間の状態であれば、その論理チャネルのアイドルフレーム挿入信号IDLをIDL=1として出力する。そして、その論理チャネルのバイト総数QにMを加算し、それを新しいバイト総数Qとする。
【0039】
パケットデータ配列制御回路1は、アイドルフレーム生成回路24−1〜24−Nを備えている。パケットフィルタ回路18−1〜18−Nは、アイドルフレーム生成回路24−1〜24−Nにそれぞれに接続するとともに、キュー長管理回路23−1〜23−Nにそれぞれに接続している。アイドルフレーム生成回路24−1〜24−Nは、論理チャネル毎に、前回到着した最後のユーザデータをルーティングした際に最後のデータバイトとして検出したバイト番号であるルーティング最終ポート番号17に基づいて、次のバイト番号の物理的位置にアイドルフレームの先頭バイトが格納されるように、バイトをシフトさせたMバイト幅のアイドルフレームを生成する。更に、アイドルフレーム生成回路からは、バイト有効性情報としてall”1”のMビット幅信号を出力する。
【0040】
パケットデータ配列制御回路1は、フレーム種別選択用セレクタ回路25−1〜25−Nを備えている。パケットフィルタ回路18−1〜18−Nは、アイドルフレーム生成回路24−1〜24−Nとともにフレーム種別選択用セレクタ回路25−1〜25−Nに接続している。フレーム種別選択用セレクタ回路25−1〜25−Nは、パケットフィルタ回路18−1〜18−Nが出力するユーザパケットフレームと、アイドルフレーム生成回路24−1〜24−Nが出力するアイドルフレームとを既述のアイドルフレーム挿入信号IDL(1又は0)に基づいて選択的に出力する。同様に、Mビット幅のバイト有効性情報に関しても、アイドルフレーム挿入信号IDLに基づいて、パケットフィルタ回路18−1〜18−Nが出力する信号と、アイドルフレーム生成回路24−1〜24−Nが出力する信号とを選択出力する。このようにフレーム種別選択用セレクタ回路25−1〜25−Nにより選択的に出力されるユーザパケットフレーム又はアイドルフレーム、およびバイト有効性情報は、メモリライト制御回路21−1〜21−Nに入力される。
【0041】
チャネル制御メモリ26が設けられている。チャネル制御メモリ26は、STMフレームの物理チャネルにいずれの論理チャネルを割り当てるかを記憶し、論理チャネル情報信号27をメモリリード制御回路22−1〜22−Nに送信する。パケットデータ配列制御回路1は、出力側M×Mスイッチ28−1〜28−Nを備えている。出力側M×Mスイッチ28−1〜28−Nは、パケットメモリ19−11〜19−NMが格納しているデータバイトをチャネル制御メモリ28から出力される論理チャネル情報信号27に基づいてバイト単位でスイッチングを行う。
【0042】
出力側M×Mスイッチ28−1〜28−Nは、M個のセレクタ回路29−1〜29−Mに出力的に並列的に接続している。セレクタ回路29−1〜29−Mは、出力側M×Mスイッチ28−1〜28−Nが出力するデータバイトをチャネル制御メモリ26から出力される論理チャネル情報信号27に基づいて、バイト単位で選択的に出力する。
【0043】
パケット長検出回路4に、Mバイト幅のユーザパケットフレームが入力される。そのユーザパケットフレームは、論理チャネル番号(信号)11を伴っていて、必ずしも同一論理チャネルの一つのユーザパケットが連続していなくても、1クロック毎に異なる論理チャネルのユーザパケットが多重されていてもよい。
【0044】
パケット長検出回路4は、各論理チャネルのユーザパケットデータのM個幅を形成するM個のデータバイトが有効なデータであるか無効データ(パッドバイト)であるかを示すMビットのバイト有効性情報14を生成している。各到着ユーザパケットフレームのヘッダ部を検出し、例えばGFPであればコアヘッダ部のPLI値(図13参照)からユーザパケット全体のバイト長を求め、その値より有効/無効を判定することができる。ルーティング回路5は、バイト有効性情報14に基づいて、0バイト目〜M−1バイト目のデータバイトを0〜M−1バイト目に詰めて並べ替えるためのルーティング情報15を生成している。
【0045】
図2は、図1に示されるルーティング回路5を詳細に示し、信号バイト幅であるMとして、8が例示的に採用されている。ルーティング回路5は、バイト行(第0行〜第7行)ごとに、各データバイトに対応するバイト有効性情報14に基づいて、有効データ数をカウントする有効バイト数カウント回路31−1〜31−7を備えている。ルーティング回路5は、ルーティング結果メモリ32を備えている。ルーティング結果メモリ32は、1個のルーティング回路5によりでN本の論理チャネルを時分割処理するために、論理チャネル1〜NのそれぞれについてM個のポート中のどのバイトに最後のデータが書き込まれたか示す最後尾バイト対応信号を保持する。
【0046】
ルーティング結果メモリ32は、メモリ制御回路33に双方向に接続している。メモリ制御回路33は、ユーザパケットフレームと同時に入力されるチャネル番号11に基づいてルーティング結果メモリ32から、その論理チャネルNの最後のルーティング結果を読み出して出力する。有効バイト数カウント回路31−1〜31−7は、メモリ制御回路33とともに加算器35−0〜35−7に接続している。加算器35−0〜35−7は、メモリ制御回路33の出力信号34と有効バイト数カウント回路の出力信号とを加算する。最終段の有効バイト数カウント回路31−7は、バイト0からバイト7までの全ての有効バイト数を加算し総有効バイト数を計数してその総有効バイト数を出力する。
【0047】
その総有効バイト数は、加算器35−7で、メモリ制御回路33が出力する出力信号34に加算される。加算器38−1〜38−8が出力する加算値は、バイト0〜バイト7に対応するルーティング情報36−0〜36−7として用いられる。最終段の加算器35−7は、その加算値をルーティング最終ポート番号17としても出力する。その加算値がM(=8)を超えるときには、その加算値からMを減算し、0〜M−1の範囲の値を出力する。有効バイト数カウント回路31−7が出力する総有効バイト数は、書込みバイト数16として出力される。ルーティング回路5は、既述の通り、Mバイト幅のユーザパケットフレーム9、SOP信号12、EOP信号13、ルーティング最終ポート番号17、書き込みバイト数16、論理チャネル番号11、バイト毎のルーティング情報36−0〜36−7を出力する。
【0048】
入力側M×Mスイッチ6は、バイト0〜バイトM−1のルーティング情報36−0〜36−7に基づいて、ユーザパケットフレーム9の入力バイト0〜バイトM−1のデータバイトとバイト有効性情報と書込みバイト数16を出力バイト0〜バイトM−1に並べ替える。その並べ替えは、同一論理チャネルのユーザパケットフレームデータが、前に到着したその論理チャネルのユーザパケットフレームと間隔があくことなくFIFOに詰めて蓄積されるように行う。このような並べ替えは、公知の2→1セレクタ回路の組み合わせ又は公知のバニヤンスイッチによっても実現することができる。
【0049】
パケットフィルタ回路18−1〜18−Nは、入力側M×Mスイッチ6から出力されたチャネル番号信号11を監視し、そのチャネル番号信号11が自論理チャネル番号であれば、そのユーザパケットフレーム9を取り込む回路として形成されている。
【0050】
パケットメモリ19−11〜19−NMは、論理チャネル毎にM個のポート毎に別れたFIFO(First-in First-out)メモリから構成され、M個のデータバイトを順次に格納し、1クロック毎に最大M個のデータバイトを出力する。1個のFIFOは1バイト幅を持つ。
【0051】
メモリライト制御回路21−1〜21−Nは、ユーザパケットフレームもしくはアイドルフレームをパケットメモリ19−11〜19−NMに書き込む回路であり、ある論理チャネル中でバイト有効性情報=1のバイトについて書き込みを行う。チャネル制御メモリ26は、STMフレームのVC−3又はVC−4で構成される物理チャネルに対し、どの論理チャネルをマッピングするかを設定するメモリである。
【0052】
図3は、M=8であるチャネル制御メモリ26を例示している。チャネル制御メモリ26において、論理CH(チャネル)1〜CH48は、論理チャネル1〜8の8区分に振り分けられて、物理チャネルに対応する対応関係を形成している。メモリ領域が、8チャネルずつ左下より右上に向けて、順番に用意されている。図3に例示されるように、8つの物理CH1〜物理CH8は論理CH1に割り当てられ、5つの物理CH9〜物理CH13は論理CH2に割り当てられ、3つの物理CH14〜物理CH16は論理CH3に割り当てられ、8つの物理CH17〜物理CH24は論理CH4に割り当てられ、4つの物理CH25〜物理CH28は論理CH5に割り当てられ、4つの物理CH29〜物理CH32は論理CH6に割り当てられ、12個の物理CH33〜物理CH44は論理CH7に割り当てられ、4つの物理CH45〜物理CH48は論理CH8に割り当てられている。
【0053】
チャネル制御メモリ26からは、1クロック毎に処理するM(=8)物理チャネル分の論理チャネル情報信号27が出力され、論理チャネル情報信号27は、8個の物理チャネルに割り当てる論理チャネル番号を2進数で表した信号を、例えば8bit×8個の計64bit幅で出力する。
【0054】
メモリリード制御回路22−1〜22−Nは、チャネル制御メモリ26が出力する論理チャネル情報信号27に基づいて、ある1クロックで自論理チャネルに割り当てられた物理チャネル数を求め、物理チャネル数分のデータバイト(ユーザパケットフレームもしくはアイドルフレーム)をパケットメモリ19−11〜19−NMから19−X1、19−X2、19−X3・・・・、19−XMの順番で1バイトずつ読み出す。前回最後に読み出したメモリのバイト番号を覚えておき、前回読み出したデータに引き続いて、データを読み出す。バイトM−1まで読み出したら、バイト0に戻る。また、その論理チャネル毎の読み出しバイト数を出力する。
【0055】
出力側M×Mスイッチ28−1〜28−Nは、チャネル制御メモリ26から出力する論理チャネル情報信号27に基づいて、メモリリード制御回路22−1〜22−Nで読み出したユーザパケットフレームもしくはアイドルフレームをバイト単位でスイッチングする。チャネル制御メモリ26から出力される論理チャネル情報信号27の中の自論理チャネルの位置を出力ポートとして、スイッチングを行う。スイッチングを制御するルーティング情報は、テーブルで自己生成する。ルーティング情報は、今回読み出しを開始するパケットメモリの先頭バイト番号0〜7と、論理チャネル情報信号27中の自チャネル出力位置とから定まる。例えば、予め各論理チャネル毎にテーブルに記憶しておき、先頭バイト番号と自論理チャネル出力位置とでテーブルを検索し、ルーティング情報を得る。
【0056】
図4と図5は、M=4のそのようなルーティングテーブル81を例示している。図5は、1点鎖線で接続されている。図4,5のルーティングテーブル81は、左側から右側に向かう6つの欄を有している。6つの欄は、チャネル制御メモリ26から入力される論理チャネル情報信号27の中の自CH出力位置と、先頭メモリ番号と、入力ポート0のバイト0に対するルーティング情報と、入力ポート1のバイト1に対するルーティング情報と、入力ポート2のバイト2対するルーティング情報と、入力ポート3のバイト3に対するルーティング情報とを有している。
【0057】
自CH出力位置は、論理チャネル情報信号と自CH番号との比較照合により求められ得る。論理チャネルが1であれば、論理チャネル情報信号={CH1、CH1、CH2、CH3}の自CH出力位置は”1100”であり、論理チャネルが2であれば、その自CH出力位置は”0010”であり、論理チャネルが3であれば、その自CH出力位置は”0001”であり、論理チャネルが4であれば、その自CH出力位置は”0000”である。
【0058】
ルーティング情報は、2bitの2進数であり、ルーティング情報が”00”であれば出力ポート0にルーティングされるようスイッチングが行われ、ルーティング情報が”01”であれば、出力ポート1にルーティングされるようスイッチングが行われ、ルーティング情報が”10”であれば、出力ポート2にルーティングされるようスイッチングが行われ、ルーティング情報が”11”であれば、出力ポート3にルーティングされるようスイッチングが行われる。
【0059】
一例として、論理チャネル情報信号={CH1、CH1、CH1、CH1}であり、先頭メモリ番号が3のときを次に考える。論理チャネル1の自CH出力位置は1111となる。先頭メモリ番号が3であれば、バイト0のデータがルーティング情報”01”に従って対応する出力ポート1に出力されるようにスイッチングが行われる。同様に、バイト1のデータはルーティング情報”10”に従って対応する出力ポート2に出力されるようスイッチングが行われ、バイト2のデータはルーティング情報”11”に従って対応する出力ポート3に出力されるようにスイッチングが行われ、バイト3のデータはルーティング情報”00”に従って対応する出力ポート0に出力されるようスイッチングが行われる。
【0060】
論理チャネル1以外では、自CH出力位置は0000となり入力ポートと出力ポートが一致するようスイッチングが行われるが、自バイト数は0であるので各パケットメモリからは何も読み出されず、値としては0がスイッチングされる。
【0061】
このようにパケットメモリ19−11〜19−NMから読み出され、出力側M×Mスイッチ28−1〜28−Nにより出力論理チャネルの順序に並び替えられたデータバイトをセレクタ回路29−1〜29−Mで選択的に出力し、論理チャネル毎のバイト信号を多重化する。セレクト信号としては、論理チャネル情報信号27が用いられ、対応するバイトのチャネル情報に従って、論理チャネル1〜論理チャネルNを選択的に出力する。論理チャネル数N=48として、チャネル制御メモリの物理チャネル1〜48に、同じく論理チャネル1〜48を順に設定することにより、STMフレームのペイロード中に論理チャネル1〜48を順番にマッピングし、VC−3×48チャネルの2.4Gbpsフレームのペイロード部を生成する。
【0062】
ここで、キュー長管理回路23−1〜23−Nは、それぞれに論理チャネル毎に、書き込みバイト数Wと読み出しバイト数Rとから、各論理チャネルのパケットメモリへの蓄積バイト数Qを算出し、その大きさによりアイドルフレーム挿入の可否判断を行う。これらの処理は、1クロック毎に常時行う。
【0063】
図6は、論理チャネル毎に配備されるキュー長管理回路23−1〜23−Nの処理フローを示している。論理チャネル毎にユーザパケット途中であるかユーザパケット間であるかを示すバイト種別判別信号は、下記のように定義されてPSTATで表される。
PSTAT=0:その論理チャネルは、ユーザパケットフレームの受信を完了しており、次のユーザパケットフレームとの間の区切りの期間の状態にある。
PSTAT=1:その論理チャネルは、ある一つのユーザパケットフレームの受信途中である。
【0064】
アイドルフレーム挿入閾値は、Qidlで表される。アイドルフレームを挿入するためのアイドルフレーム挿入信号は、下記のように定義されてIDLで表される。
IDL=0:アイドルフレームは挿入されない。
IDL=1:アイドルフレームが挿入される。
【0065】
バイト種別判別信号PSTAT、アイドルフレーム挿入閾値Qidl、アイドルフレーム挿入信号IDLとが初期化される。アイドルフレーム挿入閾値Qidlは、可変自在に設定される(ステップA1)。論理チャネルパケットフィルタからキュー長管理回路に、1クロック毎に、その論理チャネルの書き込みバイト数Wが入力される。メモリリード制御回路からキュー長管理回路に、その同じ1クロック毎に、読み出しバイト数Rが入力される(ステップA2)。書き込みバイト数Wの最大値はM、その論理チャネルに対して書き込むユーザパケットフレームが無い場合にはW=0である。同様に、読み出しバイト数Rの最大値はM、その論理チャネルから読み出さない場合にはR=0が入力される。QにWが加算されRが減算されて、その論理チャネルのパケットメモリへ蓄積されているデータバイト数Qが更新蓄積バイト数Qとして演算される(ステップA3):
Q=Q+W−R
【0066】
そして、そのときにPSTAT=0であれば、又は、SOP=0(SOP=1を受信していない状態)であり、データバイト数Qが閾値Qidl未満であれば(ステップA9のYes)、データバイト数QにMバイト幅分のアイドルフレームのバイト数Mが加算され、IDL=1が設定され、アイドルフレームを挿入する選択信号がセレクタ回路から出力される(ステップA11)。
【0067】
一方、ステップA9でNo(そのバイトがユーザパケット途中であるか、又は、Q≧Qidl)であれば、データバイト数Qはそのままの値に維持され、IDL=0としてアイドルフレームは挿入されない(ステップA10)。そのときに、SOP=1であれば(ステップA4のYes)、PSTAT=1が設定され(ステップA8)、EOP=1であれば(ステップA5のYes)、PSTAT=0が設定され(ステップA7)、SOP=1でなく、且つ、EOP=1でなければ(ステップA5のNo)、バイト種別判別信号PSTATは前クロックのPSTATを保持する(ステップA6)。
【0068】
図7は、アイドルフレーム挿入回路24−1〜24−Nのアイドルフレームパターンを例示していて、M=8の場合を例示している。ルーティング最終ポート番号に基づいて、その論理チャネルで最後のデータが格納されたパケットメモリのバイト番号の次のバイトに続いてM個の連続したアイドルバイトから形成されるアイドルフレームが隙間なく詰まるようにアイドルフレームパターンがアイドルフレーム生成回路から生成されてセレクタ回路に出力される。
【0069】
セレクタ回路25−1〜25−Nは、キュー長管理回路23−1〜23−Nが出力するアイドルフレーム挿入信号IDLが1であるときにのみ、アイドルフレーム生成回路24−1〜24−Nが出力する8バイト幅のアイドルフレームを選択し、IDL=0であれば、パケットフィルタ回路が出力する8バイト幅のユーザパケットデータを選択して出力する。同様に、セレクタ回路25−1〜25−Nは、キュー長管理回路23−1〜23−Nが出力するアイドルフレーム挿入信号IDLが1であるときにのみ、アイドルフレーム生成回路24−1〜24−Nが出力する8ビット幅のAll”1”であるバイト有効性情報を選択し、IDL=0であれば、パケットフィルタ回路が出力する8ビット幅のバイト有効性情報を選択して出力する。
【0070】
キュー長管理回路23−1〜23−Nとアイドルフレーム生成回路24−1〜24−Nとセレクタ回路25−1〜25−Nとによって、パケットメモリの蓄積バイト数Qが、Q<Qidlであれば、ユーザパケットフレーム間にのみアイドルフレームが挿入されてパケットメモリに蓄積される。メモリライト制御回路は、パケットフレームとアイドルフレームとを区別しないで、パケットメモリに格納して行く。
【0071】
図8(a),(b),(c)と図9(d),(e)は、パケットメモリにユーザパケットフレームとアイドルフレームとを蓄積して行く様子を示していて、M=8の場合が例示されている。図8(a)は、同一論理チャネルの第1ユーザパケットフレーム(P1〜P27:27バイト)と第2ユーザパケットフレーム(P2−1〜P2−36:36バイト)が到着する状態を示していて、パッドバイトは除去されずになお付加されている。図8(b)は、パッドバイトが取り除かれてパケットメモリに蓄積された第1ユーザパケットフレームと第2ユーザパケットフレームの蓄積状況を示している。この場合、Q値はQidl以上である。図8(c)は、パケットメモリよりユーザパケットフレームのバイトデータが読み出され、Q値がQidl未満になった状態を示している。第2ユーザパケットフレームはP2−1からP2−36までの36バイトで形成されていて、ルーティング最終ポート番号は6である。従って、アイドルフレーム生成回路は、バイト0より、”AB31E0B6AB31E0B6h”を生成する。図9は、そのように生成されたアイドルフレーム”AB31E0B6AB31E0B6h”がセレクタ回路で選択されてパケットメモリのバイト0よりバイト7に順次に書き込まれた状態を示している。このような書き込みによってQ値がQidl以上になれば、アイドルフレームの挿入動作は停止する。
【0072】
アイドルフレームをMバイト分生成することにより、バイト0〜7毎の蓄積バイト数の差は変わらない。つまり、アイドルフレーム挿入後も、ルーティング最終ポート番号=6である状態が不変に継続され、ルーティング回路5のルーティング結果メモリ32をそのままに利用することにより、次に到着するユーザパケットフレームを隙間なく詰めこむことができる。アイドルフレーム挿入を行っても、ルーティング結果メモリ32を書きかえる必要性がなく、ルーティング回路5への制御信号などを設ける必要がない。図9(b)は、更に8バイト分のユーザパケットフレームのバイトデータが読み出された場合に8バイト分のアイドルフレームが更に挿入された状態を示している。
【0073】
図11と図12は、パケットメモリからのデータの読み出し動作を示す。図11と図12は、1点鎖線で接続している。これは、メモリ読み出し後のM×Mスイッチ28−1〜28−Nの出力信号を示す。図9(b)の2つのアイドルフレームの時間的に先行するアイドルフレームのうちの論理チャネル1の3つのアイドルバイト{B6,AB,31}は、時刻(又は時刻幅)Tと時刻T+1でパケットメモリから出力され、チャネル制御メモリで制御される次の論理チャネルの読出し時刻T+2とT+3で、図9(b)の2つのアイドルフレームの残りの12個のアイドルバイトのうちの10個のアイドルフレームバイト{E0,B6,AB,31,E0,B6,AB,31,E0,B6}が読み出される。
【0074】
このような読出し方法によれば、メモリリード制御回路22−1〜22−Nと出力側M×Mスイッチ28−1〜28−Nは、ユーザパケットフレームもアイドルフレームも区別することなく、自論理チャネルが割り振られた物理チャネルに対してデータをマッピングすればよく、従来例のメモリリード側で必要であった複雑な処理回路が不要である。
【0075】
本発明によるSTMマッピング装置は、蓄積バイト数管理によりパケットメモリのバックプレッシャー制御、メモリオーバーフロー監視、メモリアンダーフロー監視の3機能を更に配備している。バックプレッシャー制御は、STMマッピング回路の前段にある回路のメモリに対して実行する制御であり、BP信号=1が検出されれば、そのメモリに対する読み出しが停止され、BP信号=0であれば、そのメモリに対して読み出しが再開される。このような読出停止と読出再開の制御は、STMマッピング回路のメモリオーバーフローを回避することができる。一方、メモリオーバーフローの監視とメモリアンダーフローの監視とによって、回路故障監視が更に可能になる。
【0076】
キュー長管理回路23−1〜23−Nには、パケットメモリ19−11〜19−NMに蓄積されているデータバイト数を論理チャネル毎に算出し、その値によってアイドルフレーム挿入信号IDL=1、バックプレッシャー信号BP[N:1]、メモリオーバーフローアラームOFALM[N:1]、メモリアンダーフローアラームUFALM[N:1]を出力する機能が付加されている。
【0077】
アイドルフレーム生成回路24−1〜24−Nは、既述の通り、前回に到着したユーザパケットフレームの最終バイトがルーティングされてそのバイト番号が示されるルーティング最終ポート番号に基づいて、それの次のバイト番号にアイドルフレーム先頭バイトが格納されるように、バイトがシフトされたMバイト幅のM/4個分のアイドルフレームを生成している。
【0078】
図10は、論理チャネル毎に配備されているキュー長管理回路の処理フローを示している。論理チャネル毎にそのときの状態がある一つのユーザパケットフレームの受信途中であるか、あるユーザパケットフレームとその次のユーザパケットフレームとの間の区間の状態であるかを示すバイト種別判別信号はPSTAT(0:二つのユーザパケットフレーム間、1:ユーザパケットフレームの受信途中)で表され、外部より設定されるアイドルフレーム挿入閾値はQidlで表され、アイドルフレーム挿入信号はIDL(0:挿入しない、1:挿入する)で表され、データバイト蓄積数はQで表され、蓄積バイト数最大値(メモリ長最大値)はQmaxで表され、バックプレッシャー生成閾値はQbpで表されている。
【0079】
まず、バイト種別判別信号PSTAT、アイドルフレーム挿入閾値Qidl、アイドルフレーム挿入信号IDL、メモリオーバーフローアラームOFALM[X](Xは論理チャネル番号:1以上N以下の任意の整数)の初期化が行われる。アイドルフレーム挿入閾値Qidlが設定される(ステップA13)。1クロック毎に論理チャネルの書き込みバイト数Wと読み出しバイト数Rが入力される(ステップA14)。
【0080】
QにWが加算されRが減算されて、その論理チャネルのパケットメモリへ蓄積されているデータバイト数Qが演算される(ステップA15:Q=Q+W−R)。Q>Qmaxであれば(ステップA16のYes)、メモリオーバーフローが起こっているものとして、OFALM[X]=1が出力される(ステップA17)。Q≦Qmaxであれば(ステップA16のNo)、メモリオーバーフローは発生しておらず、OFALM[X]=0が出力される(ステップA18)。
【0081】
Q>Qbpであれば(ステップA19のYes)、バックプレッシャー信号BP[X]=1が出力される(ステップA21)。Q≦Qbpであれば、バックプレッシャー制御は行われず、BP[X]=0が出力される(ステップA20)。一方で、Q<0であれば(ステップA32のYes)、メモリアンダーフローが起こっていると判断されて、UFALM[X]=1が出力される(ステップA34)。Q≧0であれば(ステップA32のNo)、メモリアンダーフローは発生しておらず、UFALM[X]=0が出力される(ステップA33)。
【0082】
PSTAT=0、又は、SOP=0(SOP=1を受信していない状態)であり、且つ、Qが閾値Qidl未満であれば(ステップA29のYes)、そのQにアイドルフレームMバイト幅分を加算し、更に、IDL=1として、アイドルフレームを挿入する選択信号が出力される(ステップA31)。一方で、ステップA29でNo(ユーザパケットフレームの受信途中、もしくはQ≧Qidl)であれば、Qはそのままの値とされ、IDL=0とされてアイドルフレームは挿入されない(ステップA30)。そのとき、SOP=1であれば(A23のYes)、PSTAT=1が設定され(ステップA27)、EOP=1であれば(ステップA24のYes)、PSTAT=0が設定され(ステップA26)、SOP=1でなく、且つ、EOP=1でなければ(ステップA24のNo)、PSTATは前クロックでのPSTATに保持される(ステップA25)。
【0083】
ステップA35で示される処理部分とステップA28で示される処理部分は、そのパラレル処理が可能であるから、ロジック段数はそれほどには増えることなく、バックプレッシャー信号生成、メモリアンダーフロー監視、メモリオーバーフロー監視とが行われ得る。
【0084】
【発明の効果】
本発明によるSTMマッピング装置は、アイドルフレームの挿入とデータの読出しの処理を回路規模の拡大を抑制しながらより高速化することができる。その高速化のために、アイドルフレームの挿入とデータ読出しのための回路の規模が増大することを抑制することができる。
【0085】
具体的には、GFPフレームやSDLフレームなどのユーザパケットフレーム毎に長さが異なる可変長パケットをSTMフレームに格納する場合に、回路が簡単な構成になり、回路規模の削減、処理速度の向上が可能である。アイドルフレームをユーザパケットフレーム間に隙間なく詰め込む場合、1バイトずつ独立したM個のFIFOメモリで構成されるパケットメモリに対し、論理チャネル毎のデータ蓄積バイト数が閾値未満のときに、最後にデータパケットをルーティングした次のバイト番号のメモリからアイドルフレームを書き込む構成を採用することにより、従来必要であったメモリリード側での複雑な処理が不要になり、回路規模が縮小し、更に、処理段数が縮小し、高速処理に対応可能になる。従って、本発明によるSTMマッピング装置は、STMマッピング回路を搭載するSTM/Packetハイブリッドスイッチ等のラインカード又はスイッチカードにより、より高速な回線を収容することができる。
【0086】
更に、高速処理が可能であり、通信装置内で従来と同一の速度の回線を取り扱う場合に、主信号のパラレル展開数を大きくする必要が生じ難く、パラレル展開に伴う回路増加規模の増大をより有効に抑えることができる。
【図面の簡単な説明】
【図1】図1は、本発明によるSTMマッピング装置の実施の形態を示す回路ブロック図である。
【図2】図2は、ルーティングを示す回路ブロック図である。
【図3】図3は、物理チャネルと論理チャネルの対応関係を示すテーブルである。
【図4】図4は、チャネルの出力位置と入力ポートの対応関係の一部を示すテーブルである。
【図5】図5は、図4に一連の他の部分を示すテーブルである。
【図6】図6は、本発明によるSTMマッピング装置の動作フローを示すフロー図である。
【図7】図7は、ルーティング情報とポートとの対応関係を示すテーブルである。
【図8】図8(a),(b),(c)は、8バイト幅のバイトデータを格納する配列の一部を示す論理テーブルである。
【図9】図9(d),(e)は、図8に一連の他の部分を示す論理テーブルである。
【図10】図10は、本発明によるSTMマッピング装置の他の動作フローを示すフロー図である。
【図11】図11は、論理チャネルとデータとの対応の一部を示すテーブルである。
【図12】図12は、図11に一連の他の部分を示すテーブルである。
【図13】図13(a),(b)は、ユーザパケットフレームとその一部のデータをそれぞれに示すフォーマットである。
【図14】図14(a),(b)は、8バイト幅のバイトデータの配列の一部を示す論理テーブルである。
【図15】図15(a),(b)は、図14(a),(b)に一連の配列の他の部分を示す論理テーブルである。
【図16】図16は、パケットデータの論理チャネルと物理チャネルの関係を示すフォーマットである。
【図17】図17は、本発明の前提として提案される技術を示す回路ブロック図である。
【図18】図18は、前提的に提案される技術の論理チャネルとデータの配置関係の一部を示すテーブルである。
【図19】図19は、図18に一連の配置関係の他の部分を示すテーブルである。
【符号の説明】
1…パケットデータ配列制御回路
2…パケットデータ入力回路
3…パケットデータ出力回路
(19−11〜19−1M)〜(19−N1〜19−NM)…FIFOメモリ
21−1〜21−N…メモリライト制御回路
23−1〜23−N…キュー長管理回路
24−1〜24−N…アイドルフレーム生成回路
25−1〜25−N…セレクタ回路
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an STM mapping circuit that performs a mapping process for storing a data frame and an idle frame (Idle Frame) in a predetermined physical channel in a payload of an STS (Synchronous Transport Signal) frame or an STM (Synchronous Transfer Module) frame, And an STM mapping method.
[0002]
[Technical background]
The amount of information communication traffic is required to increase. Due to the increase in traffic, the transmission speed of communication lines tends to increase. The transmission speed is limited by a signal processing speed such as an LSI processing speed or a data transfer speed between devices. In order to increase the speed, a technique for processing received signals in parallel is adopted. For example, when a signal is received from a communication line having a transmission speed of 2.488 Gbps, the received signal can be handled at a sufficiently processable speed by parallelly developing the received signal into 64 38.88 Mbps signals. it can.
[0003]
The fixed-length packet has a large overhead such as a header portion, and the transmission efficiency decreases. A technique for increasing transmission efficiency by making a transmission frame variable is known from WO96-26582. When processing variable-length packets having different data lengths for each packet, such as PPP (Point to Point Protocol), the transmission apparatus converts the variable-length packets into small packets of fixed length such as ATM (Asynchronous Transfer Mode) cells. Separation switching processing is performed.
[0004]
A processing technique for improving transmission efficiency by reducing overhead and improving transmission efficiency by handling variable-length packets as they are without being divided into fixed-length packets by standardization work such as T1X1 has been proposed. As such processing techniques, processing techniques such as GFP (Generic Framing Procedure) and SDL (Simple Data Link) are known.
[0005]
FIG. 13 shows a GFP packet format. FIG. 13A shows a GFP frame that stores user packets and control packets. In this specification, this GFP frame is referred to as a user packet frame. Such a packet format is stored in the payload area of the SDH frame and transferred between apparatuses. Variable length data is accommodated in a user data (User Data) area 101, and the packet length is stored in a PLI (PDU Length Indicator) area. The length of the core header portion is not included in the PLI value and is defined as a fixed length of 4 bytes. FIG. 13B shows an idle frame 103 inserted to fill a space between one adjacent user packet frame and another one user packet frame included in the user data area 101 of FIG. Show. The length of the idle frame is 4 bytes long, and the data pattern is defined as “00000000h” or “B6AB31E0h”.
[0006]
Among communication apparatuses that handle variable-length packet frames, when extracting a GFP frame or SDL frame from an STM frame, the idle frame is discarded and converted to an STM frame again on the output side in order to reduce the amount of memory in the apparatus. In the storing process, a processing form in which an idle frame is inserted between GFP frames is often adopted.
[0007]
FIGS. 14A and 14B and FIGS. 15A and 15B show an array of variable-length data. 14 (a) and 14 (b) and FIGS. 15 (a) and 15 (b) are connected by a one-dot chain line in the figure. FIGS. 14A and 14B show a GFP frame sequence extracted from an STM frame by an apparatus that performs parallel processing of a signal with a 4-byte width (32-bit width) and performs processing. Assume that the data string proceeds in the direction of the arrow in the figure. The first user packet frame is formed of bytes p1-1 to p1-25, and the number of bytes is 25. The second user packet frame is formed of bytes p2-1 to p2-26, and the number of bytes is 26. The third user packet frame is formed of bytes p3-1 to p3-23, and the number of bytes is 23. Two idle frames (a total of 8 bytes) are inserted between the first user packet frame and the second user packet frame, and three frames are inserted between the second user packet frame 2 and the third user packet frame. Idle frames (12 bytes in total) are inserted. These bytes are rearranged inside the apparatus as shown in FIGS. 15A and 15B, and a signal SOP (Start of Packet) indicating the head of the user packet and a signal EOP (End of Packet) indicating the tail of the user packet are displayed. Is often generated and switching processing is performed in these signal formats.
[0008]
The type of the user packet frame is distinguished for each destination of the user packet signal by the payload header portion, and such type is called a logical channel. When the first user packet frame to the third user packet frame shown in FIG. 14A and FIG. 15A have different payload headers, this data signal sequence is formed by three logical channels. When the first user packet frame to the third user packet frame have the same payload header, this data signal sequence is formed by one logical channel. Next, if the user packet frames shown in FIGS. 14 (a) and 15 (a) are rearranged as shown in FIGS. 14 (b) and 15 (b), the top of each user packet is displayed. Byte data can be stored in the first byte of the parallel-developed signal sequence (the byte in the row indicated by Byte 0 in FIG. 14A and FIG. 15A), and the beginning of the user packet becomes clear later. Is easy to process. For example, when a predetermined fixed-length bit pattern is inserted at the head of the user packet, the bit pattern can be easily detected by monitoring byte 0 (Byte 0). Furthermore, since 4-byte data (Byte 0 to Byte 3 in FIG. 15A) processed at a time by parallel expansion does not include data for a plurality of user packets, a processing operation such as a switching process is facilitated. .
[0009]
A pad byte (Pad Byte) is inserted and added to the end of the user packet frame, and each user packet frame length is converted to an integral multiple of the number of signals to be developed in parallel. Such conversion has the role of adjusting the data width, and is composed of a predetermined repeating pattern of “0” and “1”, or a pattern of all “0”. There is no specific meaning. The PLI value does not include the pad byte length.
[0010]
After the switching process is performed in such a signal format, a process for storing the GFP frame in the STM frame again is performed, and the user packet is transmitted to the transmission path. When there is a time interval between a user packet frame of a GFP frame and another user packet frame, an idle frame is inserted in units of frames (4 bytes). The pad bite is removed.
[0011]
FIG. 16 illustrates a configuration example of a transmission frame. STS-n is a multiplexing format defined by SONET (Synchronous Optical Network). STM-n is a multiplexing format defined by SDH (Synchronous Digital Hierarchy). As shown in FIG. 16, an SOH (Section Over Head) area 103 and an AU PTR (Administrative Unit Pointer) area 104 are provided at the head of an STS transmission frame and an STM transmission frame, followed by a payload. An area 105 is provided. For example, STM-16 is composed of 48 AUs (Administrative Units) -3 (51.84 Mbps), and if AU-3 is defined as one physical channel, the payload area 105 has a maximum of 48 physical units. Stores data for channels. In the payload area 105, physical channel byte data is stored in the order of the arrows shown in FIG. Each row in FIG. 16 is composed of 8 bits (1 byte), and data for one physical channel is transmitted byte by byte in one clock on the transmission path. In the conventional STM frame payload, a processing unit in which unit frames such as VC-3 and VC-4 are stored in order is a technical term expressing the present invention. It is called and distinguished from a logical channel that is a packet type that is distinguished for each destination of the packet header.
[0012]
FIG. 17 shows an STM mapping circuit that is assumed to perform queue length management by further improving the technique described in Japanese Patent Application No. 2001-093570. To such a circuit, a technique for performing a mapping process for storing data in a transmission frame while distributing data in units of bytes to a predetermined logical channel is added. The STM mapping circuit detects the packet length of the input user packet data, and is an M-bit byte indicating whether it is valid byte data for each byte expanded in parallel or not (whether it is an inserted pad byte). A packet length detection circuit 111 that generates validity information, a routing circuit 112 that generates routing information for controlling routing processing by an M × M switch 113 described later, and N (N is a positive integer of 48 or less) Based on the M × M switch 113 that distributes M byte data to M output ports for each logical channel, and a channel number signal that is input simultaneously with user packet data and indicates a mapping destination of the user packet data. N packet filter circuits 114-1 to 1-1 for capturing packet data to be processed 14-N and M × N packet memories 115-11 each including M FIFO (First-in First-out) memories per channel for temporarily storing packet data distributed by the M × M switch 113 115-NM, memory write control circuits 116-1 to 116-N for writing packet data to the packet memories 115-11 to 115-NM, and channel control for storing which logical channel is assigned to the physical channel of the STM frame Memory 117, memory read control circuits 118-1 to 118-N that read from the packet memory according to the settings of channel control memory 117, and packet data output from memory read control circuits 118-1 to 118-N are channel control memory 117. Based on the logical channel information signal 119 output from M × M switches 120-1 to 120 -N that switch in units, and idle frame generation circuits 121-1 to 121 -N that monitor the number of bytes stored in the packet memory for each logical channel and generate an idle frame if 0. The outputs of the selector circuits 122-1 to 122-N and the M × M switches 120-1 to 120-N are selectively output in units of bytes based on the logical channel information signal 119 output from the channel control memory 117. It consists of selector circuits 123-1 to 123 -N.
[0013]
The routing circuit 112 receives packet data, byte validity information, channel information signal, SOP signal, and EOP signal output from the packet length detection circuit 111. The packet length detection circuit 111 outputs routing information, a logical channel number, the number of write bytes, a routing last port number, SOP, and EOP. The M × M switch 113 removes the pad byte of the packet frame for each logical channel, and adds 115-X1 to the packet memories 115-X1 to 115-XM of the logical channel X (X is an integer of 1 to N). 115-X2, 115-X3,... 115-XM are rearranged so as to be packed and stored one byte at a time. Since the packet memories 115-X1 to 115-XM allocate an arbitrary logical channel to the physical channel of the STM frame, it is possible to read from the same logical channel in units of 1 byte from 0 to M bytes in one clock. In addition, it is composed of an independent FIFO memory byte by byte.
[0014]
The channel control memory 117 stores logical channel numbers 1 to N for storing the physical channels of the STM frame as one cycle. The memory read control circuits 123-1 to 123 -N of each logical channel are in the order of 115 -X 1, 115 -X 2, 115 -X 3... 115 -XM at the timing of the physical channel that outputs its own logical channel. Read data byte by byte. The total number of bytes stored in the packet memory 115-X1 to 115-XM is calculated for each logical channel from the number of writes and the number of reads in the packet memory 115-X1 to 115-XM. An idle frame is generated by the generation circuit 121-X, is selectively output by the selector circuit 122-X, is selectively output by the selector circuits 123-1 to 123-M, and a byte signal for each logical channel is multiplexed. . The select signals in the selector circuits 123-1 to 123 -M selectively output the logical channels 1 to N according to the channel information of the corresponding bytes using the logical channel information signal.
[0015]
As shown in FIGS. 18 and 19, the idle frame generation circuits 121-1 to 121-N having a queue length management circuit calculate the number of bytes for each logical channel stored in the packet memories 115-1 to 115-N. If the number of bytes is calculated, it is determined from which byte of the idle frame to output by determining whether the transmission of the 4-byte idle frame has not been completed. Also, in this one clock, the number of bytes set as output bytes for the own logical channel is identified in the channel control memory. If the number of stored bytes is small, how many bytes are to be read from the packet memory? Further, it is determined how many bytes are used as an idle frame.
[0016]
The idle frame insertion circuits 121-1 to 121-N of the proposed STM mapping circuit are required to further increase the processing speed without increasing the circuit scale. Circuits added to perform a series of processes continuously every clock are not complicated, and the number of logic stages and operation speeds that can be processed in one clock are high when digital logic circuits realize high-speed processing. Without being limited, it is required to establish a technique capable of suppressing an increase in circuit scale when increasing the number of parallel developments.
[0017]
It is required to speed up the idle frame insertion and packet read processing. Furthermore, it is desirable to be able to suppress an increase in the size of the circuit for inserting the idle frame and reading the packet in order to increase the speed of inserting the idle frame and reading the packet.
[0018]
[Problems to be solved by the invention]
An object of the present invention is to provide an STM mapping apparatus that can further speed up the processing of idle frame insertion and packet reading.
Another object of the present invention is to provide an STM mapping device capable of suppressing an increase in the size of an idle frame insertion and packet readout circuit for speeding up idle frame insertion and packet readout. It is to provide.
[0019]
[Means for Solving the Problems]
Means for solving the problem is expressed as follows. Technical matters appearing in the expression are appended with numbers, symbols, etc. in parentheses (). The numbers, symbols, and the like are technical matters constituting at least one embodiment or a plurality of embodiments of the present invention, or a plurality of embodiments, in particular, the embodiments or examples. This corresponds to the reference numbers, reference symbols, and the like attached to the technical matters expressed in the drawings corresponding to. Such reference numbers and reference symbols clarify the correspondence and bridging between the technical matters described in the claims and the technical matters of the embodiments or examples. Such correspondence and bridging does not mean that the technical matters described in the claims are interpreted as being limited to the technical matters of the embodiments or examples.
[0020]
The STM mapping apparatus according to the present invention includes a packet memory (19-1 to 19-N) that stores data bytes obtained by developing variable-length packets every clock, and a packet memory (19-11 to 19-NM) that stores data bytes. And a memory control circuit that distributes every clock. The packet memory (19-11 to 19-NM) includes M FIFO memories (19-11 to 19-NM) that are independent for each byte formed for each logical channel indicating the type of variable-length packet. . The control circuit includes a queue length management circuit (23-1 to 23-N) that outputs a determination signal indicating that the number of stored data bytes for each logical channel is less than the threshold value every clock, and a FIFO memory (19- 11 to 19-NM) generating circuit (24-1) for generating an idle frame in units of M bytes to be written in the FIFO memory (19-11 to 19-NM) of the byte number next to the byte number of the data byte stored last. And 24-N) and a selector circuit (25-1 to 25-N) for selectively outputting the idle frame in units of M bytes to the packet memory based on the determination signal.
[0021]
When the number of bytes of data stored is managed and the amount of memory is less than the appropriate amount, an idle frame in units of M bytes is written, so the order and amount of variable-length packet writing are controlled simultaneously, increasing the circuit scale High-speed writing and reading can be safely controlled while suppressing the problem, and the advantages of controlling the writing order can be utilized more effectively. Writing an idle frame in the FIFO memory without gaps between successive variable-length packets suppresses an increase in circuit scale.
[0022]
Management of an appropriate amount of the queue length management circuit (23-1 to 23-N) is performed in units of M data bytes held in the FIFO memory (19-11 to 19-1M) having a M-byte width for each logical channel. Newly calculated by Q = Q + W−R based on the number of bytes W written, the number R of read bytes R in M units of data bytes read from the FIFO memory (19-11 to 19-1M), and the number Q of accumulated bytes. Thus, the calculation of the number of stored data bytes per clock is executed. Data bytes are subtracted every clock in units of M bytes, and the accumulated amount is managed in a time range of one clock. Such management ensures its safety.
[0023]
The queue length management circuit (23-1 to 23-N) selects the select signal IDL = 1 if the number of stored data bytes is less than the set threshold and the input state of the logical channel is a section state between variable length packets. If the input state of the logical channel is in the middle of the user packet frame, the select signal IDL = 0 is output. The queue length management circuits (23-1 to 23-N) further include selector circuits (25-1 to 25-N). The selector circuits (25-1 to 25-N) output idle frames to the packet memories (19-1 to 19-N) based on the select signal IDL = 1. If the select signal IDL = 1 is output, M is added to the number of stored data bytes, and the queue length is dynamically managed correctly.
[0024]
The selector circuits (25-1 to 25-N), based on the select signal IDL, indicate byte validity information indicating which M byte-wide user packet frame signal and M bytes are valid user packet frames. And the idle frame signal and byte validity information output by the generation circuits (24-1 to 24-N) are selectively output.
[0025]
The queue length management circuit (23-1 to 23-N) compares the update accumulated byte count Q with the set threshold value Qbp, and if Q ≦ Qbp, the back pressure signal BP [X] = 0 for each logical channel. If Q> Qbp, the back pressure signal BP [X] = 1 for each logical channel is output. The functions of the queue length management circuits (23-1 to 23-N) for managing the distribution and amount of data bytes can be used for back pressure control such as the control timing of the preceding or succeeding circuit. .
[0026]
The queue length management circuit (23-1 to 23-N) further compares the update accumulated byte count Q with the memory length maximum value Qmax, and if Q ≦ Qmax, the memory overflow alarm signal OFALM for each logical channel. [X] = 0 is output, and if Q> Qmax, the memory overflow alarm signal OFALM [X] = 1 is output for each logical channel, and the number Q of the update accumulated data bytes is compared with 0. If Q ≧ 0, the memory underflow alarm signal UFALM [X] = 0 is output for each logical channel, and if Q <0, the memory underflow alarm signal UFALM [X] = 1 is output for each logical channel. . The functions of the queue length management circuits (23-1 to 23-N) that manage the distribution and amount of data bytes can be used for safety management as they are. The queue length management circuit (23-1 to 23-N) determines whether the memory underflow alarm signal UFALM [X] is set to 0 or 1 based on the number Q of update accumulated bytes, and the select signal IDL Is determined in parallel based on the EOP signal and the SOP signal.
[0027]
The STM mapping apparatus according to the present invention includes a first step of writing data bytes of a variable-length packet without any gaps in a memory area (19-1 to 19-N: FIG. 8) formed with an M-byte width, and a memory area. A second step of counting the number Q of data bytes being written, and a third step of writing an idle frame in Mbyte units in the memory area without any gap between the variable length packets that follow if the number Q is less than the set threshold value. It consists of and. The number Q is a number calculated by Q = Q + W−R based on the number R of data bytes written to the memory area and the number of data bytes read from the memory. A data byte of M bytes wide is read and written every clock and the number Q is calculated every clock. If the set threshold value is represented by Qbp, if Q ≦ Qbp, the back pressure signal BP [X] = 0 for each logical channel is output, and if Q> Qbp, the back pressure signal BP [X] = 1 for each logical channel. The fifth step of outputting is added.
[0028]
It is formed from 1 byte width × M FIFO memories that hold data bytes of M byte width (M is a multiple of 4 and a power of 2) obtained by parallelizing one variable-length user packet frame for each logical channel, By controlling the reading of the packet memory (19-1 to 19-N) that holds the packet in the FIFO memory without gaps with the pad bytes between the user packet frames removed, the packet memory ( 19-1 to 19-N) sequentially output data bytes, thereby mapping the data bytes of an arbitrary logical channel to the physical channel set in the STM frame and outputting packet data.
[0029]
For each logical channel, the queue length management circuit (23-1 to 23-N) monitors the number of accumulated bytes, the accumulated number of bytes is smaller than the set threshold value Qidl, and the logical channel is one user packet frame. If the period is between the user packet frame and the next user packet frame instead of being received, the idle frame insertion signal IDL = 1 is generated, and the user packet frame and idle frame generation circuits (24-1 to 24- N) selects one of the idle frames generated by the selector circuit (25-1 to 25-N) based on the signal IDL, and the memory memory control circuit (21-1 to 21-N) selects the packet memory (19- 1-19-N). Furthermore, since high-speed processing can be performed, it is not necessary to increase the number of parallel developments, and an increase in circuit can be suppressed.
[0030]
The queue length management circuit (23-1 to 23-N) determines whether or not the number of accumulated bytes Q is less than a set threshold value Qidl for each channel, and between user packet frames based on the SOP signal and the EOP signal. It is possible to reduce the number of processing stages and to reduce the size and speed of the circuit. A method of writing an empty cell from the memory entrance side is described in Japanese Patent Laid-Open No. 11-55267. This is a method of inserting an empty cell in a fixed-length packet such as ATM, and the first byte of the empty cell is There is no transition to a different byte number in memory.
[0031]
DETAILED DESCRIPTION OF THE INVENTION
Corresponding to the figure, the embodiment of the STM mapping apparatus according to the present invention is illustrated as an STM mapping apparatus for mapping packet data to STS-48, and a packet data distribution control circuit includes a packet data input circuit and packet data. It is provided with an output circuit. As shown in FIG. 1, the packet data array control circuit 1 that executes control to physically arrange the data bytes of the packet data in parallel includes N packet data array control circuits 1-1 to 1-N. It is configured. The packet data input circuit 2 is connected in input to the packet data array control circuits 1-1 to 1-N in parallel. The packet data array control circuits 1-1 to 1-N are connected in parallel to the packet data output circuit 3 in output.
[0032]
The packet data input circuit 2 includes a packet length detection circuit 4, a routing circuit 5, and an input side M × M switch 6. A user packet frame data string 7 is input to the packet length detection circuit 4. M is a multiple of 4 and is a power of 2 (example: 4, 8, 16,...). The input user packet frame data string 7 includes a user packet frame string 9, a logical channel signal 11, an SOP 12, and an EOP 13, which are input to the packet length detection circuit 4.
[0033]
The packet length detection circuit 4 calculates each user packet frame length of the user packet frame sequence 7 from the PLI area of the core header portion, and whether each 1 byte of the input signal sequence 7 expanded in parallel is a valid user packet frame. Alternatively, byte validity information 14 indicating whether it is a pad byte instead of a user packet frame is generated and output. The byte validity information 14 is composed of M bits. A user packet frame 9 having an M-byte width is output from the packet length detection circuit 4 together with the logical channel signal 11, SOP 12, EOP 13, and byte validity information 14, and is input to the routing circuit 5.
[0034]
The routing circuit 5 generates routing information 15 for the M × M switch 6 to control routing processing, and further generates and outputs a write byte number 16 and an RT (routing) final port number 17. The user packet frame sequence 9, the byte validity information 14, and the routing information 15 are input to the input side M × M switch 6 together with the logical channel signal 11, the SOP 12, the EOP 13, and the number of write bytes 16. The input side M × M switch 6 rearranges the user packet frames 9 based on the routing information 15.
[0035]
Each of the N packet data array control circuits 1-1 to 1-N includes packet filter circuits 18-1 to 18-N. The packet filter circuits 18-1 to 18-N determine the logical channel number of the logical channel to which the user packet frame belongs based on the payload header part of each user packet frame 9, and process the packet data on the own logical channel. 9-NM can be captured.
[0036]
The packet data array control circuits 1-1 to 1-N are M independent (First-in First-out) M-byte user packet frames (M-byte width data) 9 and idle frames temporarily stored. Packet memories 19-1M to 19-NM for M × N channels formed from the memory are provided. The one-channel packet memory 19-1 includes eight memory elements 19-11 to 19-1M corresponding to 8 bytes.
[0037]
The packet data array control circuit 1 includes memory write control circuits 21-1 to 21-N. The memory write control circuits 21-1 to 21-N execute control to write data bytes of user packet frames and idle frames in the packet memories 19-11 to 19-NM. The packet data array control circuit 1 includes a memory read control circuit 22-1. The memory read control circuit 22-1 executes control for reading user packet frames and idle frames from the packet memories 19-11 to 19-NM.
[0038]
The packet data array control circuit 1 includes queue length management circuits 23-1 to 23-N. The queue length management circuits 23-1 to 23-N store the total number Q of data bytes of user packet frames and idle frames for each logical channel stored in the packet memories 19-11 to 19-NM for each clock. Calculated for each logical channel, the total number of bytes Q for each logical channel is equal to or less than the threshold value Qidl, and the input user packet frame sequence to the logical channel is not in the middle of receiving one user packet frame, If the period is between the packet frame and the next user packet frame, the idle frame insertion signal IDL of the logical channel is output as IDL = 1. Then, M is added to the total number of bytes Q of the logical channel, and this is used as the new total number Q of bytes.
[0039]
The packet data array control circuit 1 includes idle frame generation circuits 24-1 to 24-N. The packet filter circuits 18-1 to 18-N are connected to the idle frame generation circuits 24-1 to 24-N, respectively, and to the queue length management circuits 23-1 to 23-N, respectively. The idle frame generation circuits 24-1 to 24-N, for each logical channel, based on the routing last port number 17 which is the byte number detected as the last data byte when the last user data that arrived last time is routed. An idle frame having a width of M bytes is generated by shifting the bytes so that the first byte of the idle frame is stored in the physical position of the next byte number. Further, an M-bit width signal of all “1” is output from the idle frame generation circuit as byte validity information.
[0040]
The packet data array control circuit 1 includes frame type selection selector circuits 25-1 to 25-N. The packet filter circuits 18-1 to 18-N are connected to the frame type selection selector circuits 25-1 to 25-N together with the idle frame generation circuits 24-1 to 24-N. The frame type selection selector circuits 25-1 to 25-N include user packet frames output from the packet filter circuits 18-1 to 18-N, and idle frames output from the idle frame generation circuits 24-1 to 24-N. Are selectively output based on the above-described idle frame insertion signal IDL (1 or 0). Similarly, regarding the M-bit width byte validity information, the signals output from the packet filter circuits 18-1 to 18-N and the idle frame generation circuits 24-1 to 24-N based on the idle frame insertion signal IDL. Select and output the signal to be output. As described above, the user packet frame or idle frame and byte validity information selectively output by the frame type selection selector circuits 25-1 to 25-N are input to the memory write control circuits 21-1 to 21-N. Is done.
[0041]
A channel control memory 26 is provided. The channel control memory 26 stores which logical channel is assigned to the physical channel of the STM frame, and transmits a logical channel information signal 27 to the memory read control circuits 22-1 to 22-N. The packet data array control circuit 1 includes output side M × M switches 28-1 to 28 -N. The output-side M × M switches 28-1 to 28 -N are arranged in units of bytes based on the logical channel information signal 27 output from the channel control memory 28 for data bytes stored in the packet memories 19-11 to 19 -NM. Switching is performed with.
[0042]
The output side M × M switches 28-1 to 28-N are connected in parallel to M selector circuits 29-1 to 29-M in output. The selector circuits 29-1 to 29 -M, in units of bytes, output the data bytes output from the output side M × M switches 28-1 to 28 -N based on the logical channel information signal 27 output from the channel control memory 26. Selectively output.
[0043]
A user packet frame having an M-byte width is input to the packet length detection circuit 4. The user packet frame is accompanied by a logical channel number (signal) 11, and a user packet of a different logical channel is multiplexed every clock even if one user packet of the same logical channel is not necessarily continuous. Also good.
[0044]
The packet length detection circuit 4 is an M-bit byte validity indicating whether M data bytes forming the M width of user packet data of each logical channel are valid data or invalid data (pad bytes). Information 14 is generated. The header part of each arriving user packet frame is detected. For example, in the case of GFP, the byte length of the entire user packet is obtained from the PLI value (see FIG. 13) of the core header part, and the validity / invalidity can be determined from that value. Based on the byte validity information 14, the routing circuit 5 generates routing information 15 for rearranging data bytes from the 0th byte to the (M−1) th byte into the 0th to (M−1) th bytes.
[0045]
FIG. 2 shows the routing circuit 5 shown in FIG. 1 in detail, and 8 is illustratively adopted as the signal byte width M. The routing circuit 5 counts valid byte count circuits 31-1 to 31-31 for counting the number of valid data for each byte row (0th to 7th rows) based on the byte validity information 14 corresponding to each data byte. -7. The routing circuit 5 includes a routing result memory 32. In the routing result memory 32, the last data is written in any byte in the M ports for each of the logical channels 1 to N in order to perform time division processing on the N logical channels by one routing circuit 5. Holds the last byte corresponding signal.
[0046]
The routing result memory 32 is bidirectionally connected to the memory control circuit 33. The memory control circuit 33 reads and outputs the last routing result of the logical channel N from the routing result memory 32 based on the channel number 11 input simultaneously with the user packet frame. The valid byte count circuits 31-1 to 31-7 are connected to the adders 35-0 to 35-7 together with the memory control circuit 33. Adders 35-0 to 35-7 add the output signal 34 of the memory control circuit 33 and the output signal of the valid byte count circuit. The valid byte count circuit 31-7 at the final stage adds all valid bytes from byte 0 to byte 7, counts the total valid bytes, and outputs the total valid bytes.
[0047]
The total number of valid bytes is added to the output signal 34 output from the memory control circuit 33 by the adder 35-7. The added values output from the adders 38-1 to 38-8 are used as routing information 36-0 to 36-7 corresponding to bytes 0 to 7. The final stage adder 35-7 also outputs the added value as the routing final port number 17. When the added value exceeds M (= 8), M is subtracted from the added value, and a value in the range of 0 to M−1 is output. The total number of valid bytes output from the valid byte count circuit 31-7 is output as 16 write bytes. As described above, the routing circuit 5 includes the M-byte wide user packet frame 9, the SOP signal 12, the EOP signal 13, the routing final port number 17, the number of write bytes 16, the logical channel number 11, the routing information 36- for each byte. Outputs 0 to 36-7.
[0048]
Based on the routing information 36-0 to 36-7 of byte 0 to byte M-1, the input side M × M switch 6 determines the data byte and byte validity of the input byte 0 to byte M-1 of the user packet frame 9. The information and the number of write bytes 16 are rearranged into output byte 0 to byte M-1. The rearrangement is performed so that the user packet frame data of the same logical channel is stored in the FIFO without any gap from the previously arrived user packet frame of the logical channel. Such rearrangement can also be realized by a known combination of 2 → 1 selector circuits or a known banyan switch.
[0049]
The packet filter circuits 18-1 to 18-N monitor the channel number signal 11 output from the input side M × M switch 6, and if the channel number signal 11 is the own logical channel number, the user packet frame 9 It is formed as a circuit that captures.
[0050]
The packet memories 19-11 to 19-NM are composed of first-in first-out (FIFO) memories that are divided into M ports for each logical channel, sequentially storing M data bytes, and one clock. Output a maximum of M data bytes each time. One FIFO has a width of 1 byte.
[0051]
The memory write control circuits 21-1 to 21 -N are circuits for writing user packet frames or idle frames to the packet memories 19-11 to 19 -NM, and write about bytes with byte validity information = 1 in a certain logical channel. I do. The channel control memory 26 is a memory for setting which logical channel is mapped to a physical channel configured by VC-3 or VC-4 of an STM frame.
[0052]
FIG. 3 illustrates the channel control memory 26 where M = 8. In the channel control memory 26, the logical channels (channels) 1 to CH48 are allocated to eight sections of logical channels 1 to 8 to form a correspondence relationship corresponding to the physical channel. Memory areas are prepared in order from the lower left to the upper right for each 8 channels. As illustrated in FIG. 3, eight physical CH1 to physical CH8 are assigned to logical CH1, five physical CH9 to physical CH13 are assigned to logical CH2, and three physical CH14 to physical CH16 are assigned to logical CH3. , 8 physical CH17 to physical CH24 are assigned to logical CH4, 4 physical CH25 to physical CH28 are assigned to logical CH5, 4 physical CH29 to physical CH32 are assigned to logical CH6, 12 physical CH33 to physical CH44 is assigned to logical CH7, and four physical CH45 to physical CH48 are assigned to logical CH8.
[0053]
The channel control memory 26 outputs logical channel information signals 27 for M (= 8) physical channels processed every clock, and the logical channel information signal 27 indicates the logical channel number assigned to the eight physical channels as 2. For example, a signal represented by a decimal number is output in a total 64 bit width of 8 bits × 8.
[0054]
Based on the logical channel information signal 27 output from the channel control memory 26, the memory read control circuits 22-1 to 22-N obtain the number of physical channels assigned to the own logical channel in a certain clock and determine the number of physical channels. Data bytes (user packet frame or idle frame) are read out from the packet memory 19-11 to 19-NM byte by byte in the order of 19-X1, 19-X2, 19-X3,..., 19-XM. The last read byte number of the memory is remembered, and the data is read following the previous read data. After reading up to byte M-1, return to byte 0. In addition, the number of read bytes for each logical channel is output.
[0055]
The output side M × M switches 28-1 to 28 -N receive user packet frames or idles read by the memory read control circuits 22-1 to 22-N based on the logical channel information signal 27 output from the channel control memory 26. Switch frames in bytes. Switching is performed using the position of the own logical channel in the logical channel information signal 27 output from the channel control memory 26 as an output port. Routing information that controls switching is self-generated in a table. The routing information is determined from the first byte numbers 0 to 7 of the packet memory to start reading this time and the own channel output position in the logical channel information signal 27. For example, each logical channel is stored in advance in a table, and the table is searched with the head byte number and the own logical channel output position to obtain routing information.
[0056]
4 and 5 illustrate such a routing table 81 with M = 4. FIG. 5 is connected by a one-dot chain line. The routing table 81 of FIGS. 4 and 5 has six columns from the left side to the right side. The six columns are the own CH output position in the logical channel information signal 27 input from the channel control memory 26, the head memory number, the routing information for byte 0 of input port 0, and the byte 1 of input port 1. Routing information, routing information for byte 2 of input port 2, and routing information for byte 3 of input port 3 are included.
[0057]
The own CH output position can be obtained by comparing and comparing the logical channel information signal and the own CH number. If the logical channel is 1, the own CH output position of the logical channel information signal = {CH1, CH1, CH2, CH3} is “1100”, and if the logical channel is 2, the own CH output position is “0010”. If the logical channel is 3, its own CH output position is “0001”. If the logical channel is 4, its own CH output position is “0000”.
[0058]
The routing information is a 2-bit binary number. If the routing information is “00”, switching is performed so as to be routed to the output port 0. If the routing information is “01”, the routing information is routed to the output port 1. If the routing information is “10”, the switching is performed so as to be routed to the output port 2. If the routing information is “11”, the switching is performed so that the routing is performed to the output port 3. Is called.
[0059]
As an example, consider the following when the logical channel information signal = {CH1, CH1, CH1, CH1} and the top memory number is 3. The own channel output position of the logical channel 1 is 1111. If the head memory number is 3, switching is performed so that the data of byte 0 is output to the corresponding output port 1 according to the routing information “01”. Similarly, switching is performed so that the data of byte 1 is output to the corresponding output port 2 according to the routing information “10”, and the data of byte 2 is output to the corresponding output port 3 according to the routing information “11”. Switching is performed so that the data of byte 3 is output to the corresponding output port 0 according to the routing information “00”.
[0060]
In other than the logical channel 1, the own CH output position is 0000, and switching is performed so that the input port and the output port match. However, since the number of own bytes is 0, nothing is read from each packet memory, and the value is 0. Are switched.
[0061]
The data bytes read from the packet memories 19-11 to 19-NM and rearranged in the order of the output logical channels by the output-side M × M switches 28-1 to 28-N are selected as selector circuits 29-1 to 29-1. 29-M selectively outputs and multiplexes byte signals for each logical channel. As the select signal, a logical channel information signal 27 is used, and logical channels 1 to N are selectively output according to the channel information of the corresponding byte. As the number of logical channels N = 48, the logical channels 1 to 48 are sequentially set in the physical channels 1 to 48 of the channel control memory in order, so that the logical channels 1 to 48 are sequentially mapped in the payload of the STM frame. A payload part of a 2.4 Gbps frame of −3 × 48 channels is generated.
[0062]
Here, the queue length management circuits 23-1 to 23-N calculate the number of stored bytes Q in the packet memory of each logical channel from the number of written bytes W and the number of read bytes R for each logical channel. Then, whether or not an idle frame can be inserted is determined based on the size. These processes are always performed every clock.
[0063]
FIG. 6 shows a processing flow of the queue length management circuits 23-1 to 23-N provided for each logical channel. A byte type determination signal indicating whether a user packet is in the middle or between user packets for each logical channel is defined as follows and represented by PSTAT.
PSTAT = 0: The logical channel has received a user packet frame and is in a state of a period separated from the next user packet frame.
PSTAT = 1: The logical channel is in the middle of receiving one user packet frame.
[0064]
The idle frame insertion threshold is represented by Qidl. An idle frame insertion signal for inserting an idle frame is defined as follows and represented by IDL.
IDL = 0: No idle frame is inserted.
IDL = 1: An idle frame is inserted.
[0065]
The byte type determination signal PSTAT, the idle frame insertion threshold Qidl, and the idle frame insertion signal IDL are initialized. The idle frame insertion threshold value Qidl is set to be variable (step A1). The number of write bytes W of the logical channel is input from the logical channel packet filter to the queue length management circuit every clock. The read byte count R is input from the memory read control circuit to the queue length management circuit for each same clock (step A2). The maximum value of the number W of written bytes is M, and W = 0 when there is no user packet frame to be written to the logical channel. Similarly, the maximum value of the number of read bytes R is M, and R = 0 is input when data is not read from the logical channel. W is added to Q and R is subtracted, and the number of data bytes Q stored in the packet memory of the logical channel is calculated as the update storage byte number Q (step A3):
Q = Q + W−R
[0066]
At that time, if PSTAT = 0, or SOP = 0 (the state where SOP = 1 is not received) and the number of data bytes Q is less than the threshold value Qidl (Yes in step A9), the data The number of bytes M of an idle frame corresponding to the width of M bytes is added to the number of bytes Q, IDL = 1 is set, and a selection signal for inserting an idle frame is output from the selector circuit (step A11).
[0067]
On the other hand, if No in step A9 (the byte is in the middle of the user packet or Q ≧ Qidl), the number of data bytes Q is maintained as it is, and no idle frame is inserted with IDL = 0 (step S9). A10). At that time, if SOP = 1 (Yes in Step A4), PSTAT = 1 is set (Step A8), and if EOP = 1 (Yes in Step A5), PSTAT = 0 is set (Step A7). ) If SOP = 1 and EOP = 1 is not satisfied (No in step A5), the byte type determination signal PSTAT holds the PSTAT of the previous clock (step A6).
[0068]
FIG. 7 illustrates an idle frame pattern of the idle frame insertion circuits 24-1 to 24-N, and illustrates a case where M = 8. Based on the last port number of routing, the idle frame formed from M consecutive idle bytes following the byte number next to the byte number of the packet memory in which the last data is stored in the logical channel is filled without gaps. An idle frame pattern is generated from the idle frame generation circuit and output to the selector circuit.
[0069]
The selector circuits 25-1 to 25-N are configured so that the idle frame generation circuits 24-1 to 24-N only operate when the idle frame insertion signal IDL output from the queue length management circuits 23-1 to 23-N is 1. The 8-byte wide idle frame to be output is selected. If IDL = 0, the 8-byte wide user packet data output from the packet filter circuit is selected and output. Similarly, the selector circuits 25-1 to 25 -N are idle frame generation circuits 24-1 to 24-24 only when the idle frame insertion signal IDL output by the queue length management circuits 23-1 to 23 -N is 1. -N selects 8-bit wide byte validity information output by N, and if IDL = 0, selects and outputs 8-bit wide byte validity information output by the packet filter circuit. .
[0070]
With the queue length management circuits 23-1 to 23-N, the idle frame generation circuits 24-1 to 24-N, and the selector circuits 25-1 to 25-N, if the accumulated byte count Q of the packet memory is Q <Qidl For example, an idle frame is inserted only between user packet frames and stored in the packet memory. The memory write control circuit stores the packet frame and the idle frame in the packet memory without distinguishing them.
[0071]
FIGS. 8 (a), (b), (c) and FIGS. 9 (d), (e) show how user packet frames and idle frames are accumulated in the packet memory, where M = 8. The case is illustrated. FIG. 8A shows a state in which the first user packet frame (P1 to P27: 27 bytes) and the second user packet frame (P2-1 to P2-36: 36 bytes) of the same logical channel arrive. The pad bite is still added without being removed. FIG. 8B shows an accumulation state of the first user packet frame and the second user packet frame accumulated in the packet memory with the pad byte removed. In this case, the Q value is equal to or greater than Qidl. FIG. 8C shows a state where the byte data of the user packet frame is read from the packet memory and the Q value is less than Qidl. The second user packet frame is formed of 36 bytes from P2-1 to P2-36, and the routing final port number is 6. Therefore, the idle frame generation circuit generates “AB31E0B6AB31E0B6h” from byte 0. FIG. 9 shows a state where the idle frame “AB31E0B6AB31E0B6h” thus generated is selected by the selector circuit and sequentially written from byte 0 to byte 7 of the packet memory. If the Q value is equal to or higher than Qidl by such writing, the idle frame insertion operation is stopped.
[0072]
By generating idle frames for M bytes, the difference in the number of accumulated bytes for each byte 0 to 7 does not change. That is, even after the idle frame is inserted, the state where the routing final port number = 6 is kept unchanged. By using the routing result memory 32 of the routing circuit 5 as it is, the user packet frames that arrive next are packed without gaps. Can be swallowed. Even when an idle frame is inserted, there is no need to rewrite the routing result memory 32, and there is no need to provide a control signal or the like to the routing circuit 5. FIG. 9B shows a state where an idle frame of 8 bytes is further inserted when byte data of a user packet frame of 8 bytes is further read.
[0073]
11 and 12 show an operation of reading data from the packet memory. 11 and 12 are connected by a one-dot chain line. This indicates output signals of the M × M switches 28-1 to 28-N after the memory is read. Of the idle frames temporally preceding the two idle frames in FIG. 9B, the three idle bytes {B6, AB, 31} of the logical channel 1 are packets at time (or time width) T and time T + 1. 10 idle frames out of the remaining 12 idle bytes of the two idle frames in FIG. 9B at the read times T + 2 and T + 3 of the next logical channel output from the memory and controlled by the channel control memory The bytes {E0, B6, AB, 31, E0, B6, AB, 31, E0, B6} are read.
[0074]
According to such a reading method, the memory read control circuits 22-1 to 22-N and the output side M × M switches 28-1 to 28-N do not distinguish between the user packet frame and the idle frame, and the self-logic Data may be mapped to the physical channel to which the channel is allocated, and a complicated processing circuit required on the memory read side of the conventional example is unnecessary.
[0075]
The STM mapping apparatus according to the present invention further provides three functions of packet memory back pressure control, memory overflow monitoring, and memory underflow monitoring by managing the number of stored bytes. The back pressure control is a control executed for the memory of the circuit in the previous stage of the STM mapping circuit. When the BP signal = 1 is detected, reading from the memory is stopped, and when the BP signal = 0, Reading is resumed for that memory. Such read stop and read restart control can avoid memory overflow of the STM mapping circuit. On the other hand, monitoring of memory overflow and monitoring of memory underflow further enable monitoring of circuit failure.
[0076]
In the queue length management circuits 23-1 to 23-N, the number of data bytes stored in the packet memories 19-11 to 19-NM is calculated for each logical channel, and the idle frame insertion signal IDL = 1, A function for outputting a back pressure signal BP [N: 1], a memory overflow alarm OFALM [N: 1], and a memory underflow alarm UFARM [N: 1] is added.
[0077]
As described above, the idle frame generation circuits 24-1 to 24-N are routed based on the routing last port number to which the last byte of the previously arrived user packet frame is routed and the byte number is indicated. In order to store the first byte of the idle frame in the byte number, M / 4 idle frames of M bytes wide in which the bytes are shifted are generated.
[0078]
FIG. 10 shows a processing flow of the queue length management circuit provided for each logical channel. For each logical channel, a byte type determination signal indicating whether one user packet frame having a current state is being received or whether it is in a section between a user packet frame and the next user packet frame is It is represented by PSTAT (0: between two user packet frames, 1: in the middle of receiving a user packet frame), an idle frame insertion threshold set from the outside is represented by Qidl, and an idle frame insertion signal is IDL (0: not inserted) , 1: insert), the number of accumulated data bytes is represented by Q, the maximum number of accumulated bytes (maximum memory length) is represented by Qmax, and the back pressure generation threshold is represented by Qbp.
[0079]
First, a byte type determination signal PSTAT, an idle frame insertion threshold Qidl, an idle frame insertion signal IDL, and a memory overflow alarm OFALM [X] (X is a logical channel number: any integer between 1 and N) are initialized. An idle frame insertion threshold value Qidl is set (step A13). The number of write bytes W and the number of read bytes R of the logical channel are input every clock (step A14).
[0080]
W is added to Q and R is subtracted, and the number of data bytes Q stored in the packet memory of the logical channel is calculated (step A15: Q = Q + W−R). If Q> Qmax (Yes in step A16), OFALM [X] = 1 is output (step A17), assuming that a memory overflow has occurred. If Q ≦ Qmax (No in step A16), no memory overflow has occurred and OFALM [X] = 0 is output (step A18).
[0081]
If Q> Qbp (Yes in Step A19), the back pressure signal BP [X] = 1 is output (Step A21). If Q ≦ Qbp, back pressure control is not performed and BP [X] = 0 is output (step A20). On the other hand, if Q <0 (Yes in step A32), it is determined that a memory underflow has occurred, and UFALM [X] = 1 is output (step A34). If Q ≧ 0 (No in step A32), no memory underflow has occurred and UFALM [X] = 0 is output (step A33).
[0082]
If PSTAT = 0 or SOP = 0 (a state where SOP = 1 has not been received) and Q is less than the threshold value Qidl (Yes in step A29), an idle frame M byte width is added to that Q. Further, a selection signal for inserting an idle frame is output with IDL = 1 (step A31). On the other hand, if No in step A29 (during reception of a user packet frame or Q ≧ Qidl), Q is set as it is, IDL = 0 is set, and no idle frame is inserted (step A30). At that time, if SOP = 1 (Yes in A23), PSTAT = 1 is set (Step A27). If EOP = 1 (Yes in Step A24), PSTAT = 0 is set (Step A26). If SOP = 1 and EOP = 1 is not satisfied (No in step A24), PSTAT is held in PSTAT in the previous clock (step A25).
[0083]
Since the processing part shown in step A35 and the processing part shown in step A28 can be processed in parallel, the number of logic stages does not increase so much, and back pressure signal generation, memory underflow monitoring, memory overflow monitoring, Can be done.
[0084]
【The invention's effect】
The STM mapping apparatus according to the present invention can increase the speed of idle frame insertion and data read processing while suppressing an increase in circuit scale. In order to increase the speed, it is possible to suppress an increase in the scale of a circuit for inserting an idle frame and reading data.
[0085]
Specifically, when variable-length packets having different lengths for each user packet frame such as a GFP frame and an SDL frame are stored in the STM frame, the circuit becomes simple, the circuit scale is reduced, and the processing speed is improved. Is possible. When packing idle frames without gaps between user packet frames, the last data is stored when the number of bytes of data stored in each logical channel is less than the threshold for a packet memory composed of M FIFO memories, each byte being independent. By adopting a configuration in which an idle frame is written from the memory of the next byte number to which the packet is routed, complicated processing on the memory read side, which was necessary in the past, is eliminated, the circuit scale is reduced, and the number of processing stages Will be reduced and will be able to handle high-speed processing. Therefore, the STM mapping apparatus according to the present invention can accommodate a higher speed line by a line card such as an STM / Packet hybrid switch or a switch card equipped with an STM mapping circuit.
[0086]
Furthermore, high-speed processing is possible, and it is not necessary to increase the number of parallel developments of the main signal when handling a line with the same speed as before in the communication device. It can be effectively suppressed.
[Brief description of the drawings]
FIG. 1 is a circuit block diagram showing an embodiment of an STM mapping apparatus according to the present invention.
FIG. 2 is a circuit block diagram showing routing.
FIG. 3 is a table showing the correspondence between physical channels and logical channels.
FIG. 4 is a table showing a part of the correspondence relationship between channel output positions and input ports;
FIG. 5 is a table showing another part of the series shown in FIG. 4;
FIG. 6 is a flowchart showing an operation flow of the STM mapping apparatus according to the present invention.
FIG. 7 is a table showing a correspondence relationship between routing information and ports;
FIGS. 8A, 8B, and 8C are logical tables showing a part of an array that stores 8-byte byte data.
9 (d) and 9 (e) are logical tables showing a series of other parts in FIG.
FIG. 10 is a flowchart showing another operation flow of the STM mapping apparatus according to the present invention.
FIG. 11 is a table showing a part of the correspondence between logical channels and data;
FIG. 12 is a table showing a series of other parts shown in FIG. 11;
FIGS. 13A and 13B are formats each showing a user packet frame and part of the data.
FIGS. 14A and 14B are logical tables showing a part of an array of 8-byte byte data.
15 (a) and 15 (b) are logical tables showing other parts of the series of arrays shown in FIGS. 14 (a) and 14 (b).
FIG. 16 is a format showing a relationship between a logical channel and a physical channel of packet data.
FIG. 17 is a circuit block diagram showing a technique proposed as a premise of the present invention.
FIG. 18 is a table showing a part of a logical channel and data arrangement relationship of the technology proposed on the premise.
FIG. 19 is a table showing another part of the arrangement relationship shown in FIG.
[Explanation of symbols]
1 ... Packet data array control circuit
2 ... Packet data input circuit
3 ... Packet data output circuit
(19-11 to 19-1M) to (19-N1 to 19-NM) ... FIFO memory
21-1 to 21-N: Memory write control circuit
23-1 to 23-N: Queue length management circuit
24-1 to 24-N... Idle frame generation circuit
25-1 to 25-N... Selector circuit

Claims (14)

可変長パケットを展開したデータバイトを1クロック毎に格納するパケットメモリと、
前記データバイトを前記パケットメモリに1クロック毎に配分するメモリ制御回路とを含み、
前記パケットメモリは、
前記可変長パケットの種別を表す論理チャネル毎に形成される1バイトずつ独立したM個のFIFOメモリの単位を備え、
前記制御回路は、
前記論理チャネル毎のデータ蓄積バイト数が閾値未満であることを1クロック毎に示す判別信号を出力するキュー長管理回路と、
前記FIFOメモリに最後に格納したデータバイトのバイト番号の次のバイト番号のFIFOメモリに書き込むアイドルフレームを生成する生成回路と、
前記判別信号に基づいて前記アイドルフレームを選択的に前記パケットメモリに出力するセレクタ回路とを備え
前記キュー長管理回路は、前記論理チャネル毎のMバイト幅の前記FIFOメモリに保持されている前記データバイトの書込みバイト数Wと前記FIFOメモリから読み出されるデータバイトの読出しバイト数Rと蓄積バイト数Qとに基づいて、新たにQ=Q+W−Rにより算出して前記データ蓄積バイト数を1クロック毎に算出する
STMマッピング装置。
A packet memory for storing a data byte in which a variable-length packet is expanded every clock;
A memory control circuit for allocating the data bytes to the packet memory every clock;
The packet memory is
A unit of M FIFO memories independent for each byte formed for each logical channel representing the type of the variable-length packet;
The control circuit includes:
A queue length management circuit that outputs a determination signal indicating that the number of stored data bytes for each logical channel is less than a threshold value every clock;
A generation circuit for generating an idle frame to be written in the FIFO memory of the byte number next to the byte number of the data byte stored last in the FIFO memory;
A selector circuit that selectively outputs the idle frame to the packet memory based on the determination signal ;
The queue length management circuit includes a write byte number W of the data bytes held in the FIFO memory having a M-byte width for each logical channel, a read byte number R of data bytes read from the FIFO memory, and a stored byte number. An STM mapping apparatus that newly calculates Q = Q + W−R based on Q and calculates the number of data storage bytes every clock .
前記アイドルフレームは、前後する可変長パケットの間で前記FIFOメモリに隙間なく書き込まれる
請求項1のSTMマッピング装置。
The STM mapping apparatus according to claim 1, wherein the idle frame is written in the FIFO memory without gap between successive variable-length packets.
前記キュー長管理回路は、前記データ蓄積バイト数が前記設定閾値未満であり、且つ、論理チャネルの入力状態が前記可変長パケットの間の区間状態であればセレクト信号IDL=1を出力し、論理チャネルの入力状態がユーザーパケットフレームの途中状態であればセレクト信号IDL=0を出力し、
前記制御回路は、
セレクタ回路を更に備え、
前記セレクタ回路は、前記セレクト信号IDL=1に基づいて前記アイドルフレームを前記パケットメモリに出力する
請求項のSTMマッピング装置。
The queue length management circuit outputs a select signal IDL = 1 if the number of stored data bytes is less than the set threshold value and the input state of the logical channel is a section state between the variable length packets. If the input state of the channel is in the middle of the user packet frame, the select signal IDL = 0 is output,
The control circuit includes:
A selector circuit;
The STM mapping apparatus according to claim 2 , wherein the selector circuit outputs the idle frame to the packet memory based on the select signal IDL = 1.
前記セレクト信号IDL=1を出力すれば、前記データ蓄積バイト数にMが加算される
請求項2または3のSTMマッピング装置。
The STM mapping apparatus according to claim 2 or 3 , wherein if the select signal IDL = 1 is output, M is added to the number of data storage bytes.
前記セレクタ回路は、
前記セレクト信号IDLに基づいて、Mバイト幅のユーザパケットフレーム信号及びMバイトのいずれのバイトが有効なユーザパケットフレームであるかを示すバイト有効性情報と、前記生成回路が出力するアイドルフレーム信号及びバイト有効性情報とを選択的に出力する
請求項2または3のSTMマッピング装置。
The selector circuit is
Based on the select signal IDL, an M byte wide user packet frame signal, byte validity information indicating which M bytes are valid user packet frames, an idle frame signal output by the generation circuit, and 4. The STM mapping apparatus according to claim 2 , wherein byte validity information is selectively output.
前記キュー長管理回路は、前記更新蓄積バイト数Qと設定閾値Qbpとの大小比較を行い、Q≦Qbpであれば論理チャネル毎のバックプレッシャー信号BP=0を出力し、Q>Qbpであれば論理チャネル毎のバックプレッシャー信号BP=1を出力する
請求項1〜5から選択される1請求項のSTMマッピング装置。
The queue length management circuit compares the number Q of update accumulation bytes with a set threshold value Qbp, and outputs a back pressure signal BP = 0 for each logical channel if Q ≦ Qbp, and if Q> Qbp. STM mapping apparatus 1 according to claim selected from claims 1 to 5 for outputting a back pressure signal BP = 1 for each logical channel.
前記キュー長管理回路は、前記更新蓄積バイト数Qとメモリ長最大値Qmaxとの大小比較を行い、Q≦Qmaxであれば論理チャネル毎のメモリオーバーフローアラーム信号OFALM=0を出力し、Q>Qmaxであれば論理チャネル毎のメモリオーバーフローアラーム信号OFALM=1を出力し、更に、前記更新蓄積データバイト数Qと0との大小比較を行い、Q≧0であれば論理チャネル毎のメモリアンダーフローアラーム信号UFALM=0を出力し、Q<0であれば論理チャネル毎のメモリアンダーフローアラーム信号UFALM=1を出力する
請求項のSTMマッピング装置。
The queue length management circuit compares the update accumulated byte count Q with the memory length maximum value Qmax, and outputs a memory overflow alarm signal OFALM = 0 for each logical channel if Q ≦ Qmax, and Q> Qmax If so, the memory overflow alarm signal OFALM = 1 for each logical channel is output, and the update accumulated data byte number Q is compared with 0. If Q ≧ 0, the memory underflow alarm for each logical channel 7. The STM mapping apparatus according to claim 6, wherein a signal UFALM = 0 is output, and if Q <0, a memory underflow alarm signal UFALM = 1 for each logical channel is output.
前記キュー長管理回路は、前記メモリアンダーフローアラーム信号UFALMを0とするか1とするかを前記更新蓄積バイト数Qに基づいて判断し、且つ、セレクト信号IDLを0とするか1とするかをEOP信号とSOP信号とに基づいて並列的に判断する
請求項6または7のSTMマッピング装置。
The queue length management circuit determines whether the memory underflow alarm signal UFALM is set to 0 or 1 based on the update accumulated byte count Q, and sets the select signal IDL to 0 or 1. The STM mapping device according to claim 6 or 7 , wherein the STM mapping device is determined in parallel based on the EOP signal and the SOP signal.
前記制御回路は、前記論理チャネル毎のデータ蓄積バイト数に基づいてMバイト幅単位のアイドルフレームを前記データバイトに続けて隙間なく入力する制御を実行する
請求項1に記載のSTMマッピング装置。
The control circuit executes control to input an idle frame in units of M bytes width following the data bytes without gaps based on the number of data storage bytes for each logical channel.
The STM mapping apparatus according to claim 1 .
Mバイト幅で形成されるメモリー領域に可変長パケットのデータバイトを隙間なく詰めて書き込む第1ステップと、
前記メモリー領域に書き込まれているデータバイトの数Qを計数する第2ステップと、
前記数Qが設定閾値未満であれば前後する可変長パケットの間にMバイト単位のアイドルフレームを前記メモリー領域に隙間なく書き込む第3ステップ
とを含み、
前記数Qは、前記メモリー領域に書き込まれるデータバイト数Rと前記メモリーから読み出されるデータバイト数とに基づいてQ=Q+W−Rにより算出される数である
STMマッピング方法。
A first step of writing data bytes of a variable-length packet in a memory area formed with a width of M bytes without any gaps;
A second step of counting the number Q of data bytes written in the memory area;
Look including a third step of writing without gaps idle frame of M bytes to the memory area between the variable-length packet in which the number Q is longitudinal is less than a set threshold,
The STM mapping method , wherein the number Q is a number calculated by Q = Q + W−R based on the number R of data bytes written to the memory area and the number of data bytes read from the memory .
Mバイト幅の前記データバイトは1クロックごとに読み出され且つ書き込まれ、前記数Qは1クロック毎に算出される
請求項10のSTMマッピング方法。
The STM mapping method according to claim 10 , wherein the data bytes having an M-byte width are read and written every clock, and the number Q is calculated every clock.
設定閾値がQbpで表され、Q≦Qbpであれば論理チャネル毎のバックプレッシャー信号BP=0を出力し、Q>Qbpであれば論理チャネル毎のバックプレッシャー信号BP=1を出力する第5ステップ
を更に含む請求項10または11から選択される1請求項のSTMマッピング方法。
Fifth step of outputting a back pressure signal BP = 0 for each logical channel if the set threshold is represented by Qbp, and if Q ≦ Qbp, and outputting a back pressure signal BP = 1 for each logical channel if Q> Qbp. The STM mapping method according to claim 10 , further comprising:
前記第1ステップで前記データバイトを保持するメモリの最大値がQmaxで表され、Q≦Qmaxであれば論理チャネル毎のメモリオーバーフローアラーム信号OFALM=0を出力し、Q>Qmaxであれば論理チャネル毎のメモリオーバーフローアラーム信号OFALM=1を出力し、更に、前記更新蓄積データバイト数Qと0との大小比較を行い、Q≧0であれば論理チャネル毎のメモリアンダーフローアラーム信号UFALM=0を出力し、Q<0であれば論理チャネル毎のメモリアンダーフローアラーム信号UFALM=1を出力する第6ステップ
を更に含む請求項10または11から選択される1請求項のSTMマッピング方法。
The maximum value of the memory holding the data byte in the first step is represented by Qmax. If Q ≦ Qmax, the memory overflow alarm signal OFALM = 0 is output for each logical channel, and if Q> Qmax, the logical channel is output. The memory overflow alarm signal OFALM = 1 is output for each time, and the number Q of update accumulated data bytes is compared with 0. If Q ≧ 0, the memory underflow alarm signal UFALLM = 0 for each logical channel is set. outputs, 1 STM mapping method of claim selected from claims 10 or 11 further comprising a sixth step of outputting a memory underflow alarm signal UFALM = 1 of each logical channel if Q <0.
前記メモリアンダーフローアラーム信号UFALMを0とするか1とするかを前記更新蓄積バイト数Qに基づいて判断する第7ステップ
を更に含む請求項12または13のSTMマッピング方法。
The STM mapping method according to claim 12 or 13 , further comprising a seventh step of determining whether the memory underflow alarm signal UFALM is set to 0 or 1 based on the number Q of update storage bytes.
JP2001166518A 2001-06-01 2001-06-01 STM mapping apparatus and STM mapping method Expired - Fee Related JP3753016B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001166518A JP3753016B2 (en) 2001-06-01 2001-06-01 STM mapping apparatus and STM mapping method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001166518A JP3753016B2 (en) 2001-06-01 2001-06-01 STM mapping apparatus and STM mapping method

Publications (2)

Publication Number Publication Date
JP2002359642A JP2002359642A (en) 2002-12-13
JP3753016B2 true JP3753016B2 (en) 2006-03-08

Family

ID=19009046

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001166518A Expired - Fee Related JP3753016B2 (en) 2001-06-01 2001-06-01 STM mapping apparatus and STM mapping method

Country Status (1)

Country Link
JP (1) JP3753016B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4925737B2 (en) * 2006-06-13 2012-05-09 富士通株式会社 Destaff equipment
JP4899708B2 (en) * 2006-08-09 2012-03-21 富士通株式会社 Transmission equipment

Also Published As

Publication number Publication date
JP2002359642A (en) 2002-12-13

Similar Documents

Publication Publication Date Title
US7324511B2 (en) Device, method and system for transferring frame
JP4899708B2 (en) Transmission equipment
USRE40809E1 (en) Conversion of contiguous concatenation of virtual concatenation in a synchronous digital communication network
US7957429B2 (en) Transmission system
CA2304118A1 (en) Protocol independent sub-rate device
JPH033448A (en) Switching system
EP1518366A1 (en) Transparent flexible concatenation
KR100440574B1 (en) Variable Length Packet Switch
JP3765899B2 (en) Transmission equipment
US20040013129A1 (en) Method and protocol for packetized optical channel based on digital wrapper
US20040114626A1 (en) System, method and device for time slot status messaging among SONET nodes
JP5320017B2 (en) Transmission equipment
JP3753016B2 (en) STM mapping apparatus and STM mapping method
US7688833B2 (en) Synchronous transmission network node
US7173939B2 (en) STM mapping circuit and method
WO2006062326A1 (en) Transport frame architecture for multi-rate service, multiplexing apparatus for processing the transport frame and method for transmitting it
US20030165153A1 (en) Enhanced transport of ethernet traffic over transport SDH/SONET network
US6377586B1 (en) Time switching circuit of synchronous super high speed transmission apparatus and controlling method thereof
EP1936849A1 (en) Method for mapping and demapping data information over the members of a concatenated group
US20030043838A1 (en) Transmission method allocating a time-division multiplex transmission band according to a channel band of a user packet frame
US7394828B1 (en) Data format conversion for virtual concatenation processing
JP3591586B2 (en) Channel data extraction circuit and method
JP3518454B2 (en) Transmission method and transmission system
KR100725930B1 (en) Transport frame architecture for multi-rate service, Multiplexing Apparatus for processing the transport frame and Method for transmitting it
KR100785781B1 (en) Single platform structure for packet and ethernet over synchronous digital hierarchySDH and frame format method of the same structure

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050301

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050428

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: 20051122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051205

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091222

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091222

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101222

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101222

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111222

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111222

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121222

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121222

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131222

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees