(57)【特許請求の範囲】
【請求項１】
可変長パケットを展開したデータバイトを１クロック毎に格納するパケットメモリと、
前記データバイトを前記パケットメモリに１クロック毎に配分するメモリ制御回路とを含み、
前記パケットメモリは、
前記可変長パケットの種別を表す論理チャネル毎に形成される１バイトずつ独立したＭ個のＦＩＦＯメモリの単位を備え、
前記制御回路は、
前記論理チャネル毎のデータ蓄積バイト数が閾値未満であることを１クロック毎に示す判別信号を出力するキュー長管理回路と、
前記ＦＩＦＯメモリに最後に格納したデータバイトのバイト番号の次のバイト番号のＦＩＦＯメモリに書き込むアイドルフレームを生成する生成回路と、
前記判別信号に基づいて前記アイドルフレームを選択的に前記パケットメモリに出力するセレクタ回路とを備え、
前記キュー長管理回路は、前記論理チャネル毎のＭバイト幅の前記ＦＩＦＯメモリに保持されている前記データバイトの書込みバイト数Ｗと前記ＦＩＦＯメモリから読み出されるデータバイトの読出しバイト数Ｒと蓄積バイト数Ｑとに基づいて、新たにＱ＝Ｑ＋Ｗ−Ｒにより算出して前記データ蓄積バイト数を１クロック毎に算出する
ＳＴＭマッピング装置。
【請求項２】
前記アイドルフレームは、前後する可変長パケットの間で前記ＦＩＦＯメモリに隙間なく書き込まれる
請求項１のＳＴＭマッピング装置。
【請求項３】
前記キュー長管理回路は、前記データ蓄積バイト数が前記設定閾値未満であり、且つ、論理チャネルの入力状態が前記可変長パケットの間の区間状態であればセレクト信号ＩＤＬ＝１を出力し、論理チャネルの入力状態がユーザーパケットフレームの途中状態であればセレクト信号ＩＤＬ＝０を出力し、
前記制御回路は、
セレクタ回路を更に備え、
前記セレクタ回路は、前記セレクト信号ＩＤＬ＝１に基づいて前記アイドルフレームを前記パケットメモリに出力する
請求項２のＳＴＭマッピング装置。
【請求項４】
前記セレクト信号ＩＤＬ＝１を出力すれば、前記データ蓄積バイト数にＭが加算される
請求項２または３のＳＴＭマッピング装置。
【請求項５】
前記セレクタ回路は、
前記セレクト信号ＩＤＬに基づいて、Ｍバイト幅のユーザパケットフレーム信号及びＭバイトのいずれのバイトが有効なユーザパケットフレームであるかを示すバイト有効性情報と、前記生成回路が出力するアイドルフレーム信号及びバイト有効性情報とを選択的に出力する
請求項２または３のＳＴＭマッピング装置。
【請求項６】
前記キュー長管理回路は、前記更新蓄積バイト数Ｑと設定閾値Ｑｂｐとの大小比較を行い、Ｑ≦Ｑｂｐであれば論理チャネル毎のバックプレッシャー信号ＢＰ＝０を出力し、Ｑ＞Ｑｂｐであれば論理チャネル毎のバックプレッシャー信号ＢＰ＝１を出力する
請求項１〜５から選択される１請求項のＳＴＭマッピング装置。
【請求項７】
前記キュー長管理回路は、前記更新蓄積バイト数Ｑとメモリ長最大値Ｑｍａｘとの大小比較を行い、Ｑ≦Ｑｍａｘであれば論理チャネル毎のメモリオーバーフローアラーム信号ＯＦＡＬＭ＝０を出力し、Ｑ＞Ｑｍａｘであれば論理チャネル毎のメモリオーバーフローアラーム信号ＯＦＡＬＭ＝１を出力し、更に、前記更新蓄積データバイト数Ｑと０との大小比較を行い、Ｑ≧０であれば論理チャネル毎のメモリアンダーフローアラーム信号ＵＦＡＬＭ＝０を出力し、Ｑ＜０であれば論理チャネル毎のメモリアンダーフローアラーム信号ＵＦＡＬＭ＝１を出力する
請求項６のＳＴＭマッピング装置。
【請求項８】
前記キュー長管理回路は、前記メモリアンダーフローアラーム信号ＵＦＡＬＭを０とするか１とするかを前記更新蓄積バイト数Ｑに基づいて判断し、且つ、セレクト信号ＩＤＬを０とするか１とするかをＥＯＰ信号とＳＯＰ信号とに基づいて並列的に判断する
請求項６または７のＳＴＭマッピング装置。
【請求項９】
前記制御回路は、前記論理チャネル毎のデータ蓄積バイト数に基づいてＭバイト幅単位のアイドルフレームを前記データバイトに続けて隙間なく入力する制御を実行する
請求項１に記載のＳＴＭマッピング装置。
【請求項１０】
Ｍバイト幅で形成されるメモリー領域に可変長パケットのデータバイトを隙間なく詰めて書き込む第１ステップと、
前記メモリー領域に書き込まれているデータバイトの数Ｑを計数する第２ステップと、
前記数Ｑが設定閾値未満であれば前後する可変長パケットの間にＭバイト単位のアイドルフレームを前記メモリー領域に隙間なく書き込む第３ステップ
とを含み、
前記数Ｑは、前記メモリー領域に書き込まれるデータバイト数Ｒと前記メモリーから読み出されるデータバイト数とに基づいてＱ＝Ｑ＋Ｗ−Ｒにより算出される数である
ＳＴＭマッピング方法。
【請求項１１】
Ｍバイト幅の前記データバイトは１クロックごとに読み出され且つ書き込まれ、前記数Ｑは１クロック毎に算出される
請求項１０のＳＴＭマッピング方法。
【請求項１２】
設定閾値がＱｂｐで表され、Ｑ≦Ｑｂｐであれば論理チャネル毎のバックプレッシャー信号ＢＰ＝０を出力し、Ｑ＞Ｑｂｐであれば論理チャネル毎のバックプレッシャー信号ＢＰ＝１を出力する第５ステップ
を更に含む請求項１０または１１から選択される１請求項のＳＴＭマッピング方法。
【請求項１３】
前記第１ステップで前記データバイトを保持するメモリの最大値がＱｍａｘで表され、Ｑ≦Ｑｍａｘであれば論理チャネル毎のメモリオーバーフローアラーム信号ＯＦＡＬＭ＝０を出力し、Ｑ＞Ｑｍａｘであれば論理チャネル毎のメモリオーバーフローアラーム信号ＯＦＡＬＭ＝１を出力し、更に、前記更新蓄積データバイト数Ｑと０との大小比較を行い、Ｑ≧０であれば論理チャネル毎のメモリアンダーフローアラーム信号ＵＦＡＬＭ＝０を出力し、Ｑ＜０であれば論理チャネル毎のメモリアンダーフローアラーム信号ＵＦＡＬＭ＝１を出力する第６ステップ
を更に含む請求項１０または１１から選択される１請求項のＳＴＭマッピング方法。
【請求項１４】
前記メモリアンダーフローアラーム信号ＵＦＡＬＭを０とするか１とするかを前記更新蓄積バイト数Ｑに基づいて判断する第７ステップ
を更に含む請求項１２または１３のＳＴＭマッピング方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＳＴＳ（Synchronous Transport Signal）フレームやＳＴＭ（Synchronous Transfer Module）フレームのペイロードに、データフレームとアイドルフレーム（Idle Frame）を所定の物理チャネルに格納するためのマッピング処理を行うＳＴＭマッピング回路、及び、ＳＴＭマッピング方法に関する。
【０００２】
【技術の背景】
情報通信のトラヒック量は、その増加が求められている。トラヒック量の増加のために、通信回線の伝送速度がより高速化する傾向にある。伝送速度は、ＬＳＩの処理速度、デバイス間のデータ転送速度のような信号処理速度により制限される。その高速化のために、受信信号をパラレル展開して処理する技術が採用されている。例えば、伝送速度が２．４８８Ｇｂｐｓの通信回線から信号を受信した場合、その受信信号を６４本の３８．８８Ｍｂｐｓの信号にパラレル展開すれば、十分に処理可能な速度でその受信信号を取り扱うことができる。
【０００３】
固定長パケットは、ヘッダ部などのオーバーヘッドが大きく、伝送効率が低下する。伝送フレームを可変長にすることにより、伝送効率を高くする技術は、ＷＯ９６−２６５８２号で知られている。ＰＰＰ（Point to Point Protocol）のようにデータ長がパケット毎に異なる可変長パケットを処理する場合には、伝送装置は、可変長パケットをＡＴＭ（Asynchronous Transfer Mode）セルのような固定長の小さなパケットに区切りスイッチング処理を行っている。
【０００４】
Ｔ１Ｘ１などの標準化作業により可変長パケットを固定長パケットに区切らずにそのままで取り扱って、オーバーヘッドを小さくして伝送効率を向上する処理技術が提案されて知られている。このような処理技術として、ＧＦＰ（Generic Framing Procedure）、ＳＤＬ（Simple Data Link）のような処理技術が知られている。
【０００５】
図１３は、ＧＦＰのパケットフォーマットを示している。図１３（ａ）は、ユーザパケットや制御パケットを格納するＧＦＰフレームを示している。本明細書では、このＧＦＰフレームをユーザパケットフレームと呼ぶこととする。このようなパケットフォーマットをＳＤＨフレームのペイロード領域に格納して装置間を転送する。ユーザデータ（User Data）領域１０１に可変長データを収容し、そのパケット長はＰＬＩ（PDU Length Indicator）領域に格納される。コアヘッダ（Core Header）部の長さは、ＰＬＩ値には含まれず、４バイト固定長として規定されている。図１３（ｂ）は、図１３（ａ）のユーザデータ領域１０１に含まれて隣り合う１つのユーザパケットフレームと他の１つのユーザパケットフレームとの間を満たすために挿入されるアイドルフレーム１０３を示している。そのアイドルフレームの長さは、４バイト長であり、そのデータパターンは”００００００００ｈ”、又は、”Ｂ６ＡＢ３１Ｅ０ｈ”として規定されている。
【０００６】
可変長のパケットフレームを取り扱う通信装置の中では、その装置内メモリ量の削減のために、ＳＴＭフレームからＧＦＰフレーム又はＳＤＬフレームを取り出す際に、アイドルフレームを廃棄して出力側で再度ＳＴＭフレームに格納する処理の中で、ＧＦＰフレーム間にアイドルフレームを挿入する処理形態を採用することが多い。
【０００７】
図１４（ａ），（ｂ）と図１５（ａ），（ｂ）は、可変長データの配列を示している。図１４（ａ），（ｂ）と図１５（ａ），（ｂ）とは、図中の１点鎖線で接続している。図１４（ａ）と図１４（ｂ）は、信号を４バイト幅（３２ビット幅）にパラレル展開して処理を行う装置により、ＳＴＭフレームから取り出したＧＦＰフレーム列を示している。図中の矢印方向にデータ列が進行するものとする。第１ユーザパケットフレームは、バイトｐ１−１〜バイトｐ１−２５から形成されそのバイト数は２５である。第２ユーザパケットフレームは、バイトｐ２−１〜バイトｐ２−２６から形成され、そのバイト数は２６である。第３ユーザパケットフレームは、バイトｐ３−１〜バイトｐ３−２３から形成され、そのバイト数は２３である。第１ユーザパケットフレームと第２ユーザパケットフレームとの間には、２個のアイドルフレーム（計８バイト）が挿入され、第２ユーザパケットフレーム２と第３ユーザパケットフレームとの間には３個のアイドルフレーム（計１２バイト）が挿入されている。これらのバイトを装置内部で図１５（ａ），（ｂ）に示されるように並べ替えるとともに、ユーザパケット先頭を示す信号ＳＯＰ（Start of Packet）とユーザパケット後尾を示す信号ＥＯＰ（End of Packet）を生成し、これらの信号形式でスイッチング処理を行うことが多い。
【０００８】
ユーザパケットフレームは、そのペイロードヘッダ部によってユーザパケット信号の宛先毎に種別を区別され、このような種別は論理チャネルと呼ばれる。図１４（ａ）と図１５（ａ）に示される第１ユーザパケットフレーム〜第３ユーザパケットフレームが異なるペイロードヘッダを有するときには、このデータ信号列は３つの論理チャネルで形成されている。第１ユーザパケットフレーム〜第３ユーザパケットフレームが同一のペイロードヘッダを有するときには、このデータ信号列は、一つの論理チャネルで形成されている。次に、図１４（ａ）と図１５（ａ）に示されるユーザパケットフレームを、図１４（ｂ）と図１５（ｂ）のようにバイトの並べ替えを行えば、各ユーザパケットの先頭のバイトデータをパラレル展開された信号列の先頭バイト（図１４（ａ）と図１５（ａ）のＢｙｔｅ０で示される行のバイト）にそれぞれ格納することができ、ユーザパケットの先頭が明らかになり後の処理が容易になる。例えば、ユーザパケット先頭に、予め定められた固定長ビットパターンが挿入されている場合、バイト０（Ｂｙｔｅ０）を監視することによりそのビットパターンを容易に検出することができる。更に、パラレル展開によって一度に処理する４バイトのデータ（図１５（ａ）ではＢｙｔｅ０〜Ｂｙｔｅ３）に複数ユーザパケット分のデータが含まれることがないので、スイッチング処理のような処理操作が容易になる。
【０００９】
ユーザパケットフレームには、最後尾にパッドバイト（Pad Byte）を挿入されて付加され、各ユーザパケットフレーム長はパラレル展開する信号数の整数倍に変換されている。このような変換は、データ幅を調整する役目を持ち、予め決められた”０”と”１”の繰り返しパターン、又は、全て”０”のパターンで構成されていて、パッドバイトそのものには論理的な意味が持たせられているわけではない。また、ＰＬＩ値にはパッドバイト長は含められない。
【００１０】
このような信号形式でスイッチング処理が行われた後に、ＧＦＰフレームを再度ＳＴＭフレームに格納する処理が行われて、ユーザパケットが伝送路に送出される。ＧＦＰフレームのユーザパケットフレームと他のユーザパケットフレームの間に時間間隔がある場合には、アイドルフレームがフレーム単位（４バイト単位）で挿入される。パッドバイトは、取り除かれる。
【００１１】
図１６は、伝送フレームの構成例を例示している。ＳＴＳ−ｎは、ＳＯＮＥＴ（Synchronous Optical Network）で規定される多重化フォーマットである。ＳＴＭ−ｎは、ＳＤＨ（ Synchronous Digital Hierarchy ）で規定される多重化フォーマットである。図１６に示されるように、ＳＴＳの伝送フレームとＳＴＭの伝送フレームには、先頭にＳＯＨ（Section Over Head）領域１０３とＡＵ  ＰＴＲ（Administrative Unit Pointer）領域１０４とが設けられ、それらに続いてペイロード領域１０５が設けられている。例えば、ＳＴＭ−１６は、４８個のＡＵ（Administrative Unit）−３（５１．８４Ｍｂｐｓ）から構成され、ＡＵ−３が１個の物理チャネルとして定義されれば、ぺイロード領域１０５には最大４８物理チャネル分のデータが格納される。また、ペイロード領域１０５には、図１６に示される矢印の順序で物理チャネルのバイトデータがそれぞれ格納される。なお、図１６の各行はそれぞれに８ビット（１バイト）で構成され、伝送路上では１クロックで１物理チャネル分のデータが１バイトずつ送信される。なお、従来のＳＴＭフレームのペイロードにおいて、ＶＣ−３やＶＣ−４のような単位フレームが順番に格納される処理単位は、本発明を表現する技術的用語として本明細書では、特に物理チャネルと呼ばれ、パケットヘッダの宛先毎に区別されるパケット種別である論理チャネルと区別される。
【００１２】
図１７は、特願２００１−０９３５７０に記載されている技術に更に改良を施してキュー長管理を行うために想定されるＳＴＭマッピング回路を示している。このような回路には、所定の論理チャネルにバイト単位でデータを振り分けつつ伝送フレームに格納するためのマッピング処理を行う技術が付加されている。そのＳＴＭマッピング回路は、入力ユーザパケットデータのパケット長を検出しパラレル展開した１バイト毎に有効なバイトデータか、又は、そうでないか（挿入されたパッドバイトであるか）を示すＭビットのバイト有効性情報を生成するパケット長検出回路１１１と、後述されるＭ×Ｍスイッチ１１３でルーティング処理を制御するルーティング情報を生成するルーティング回路１１２と、Ｎ本（Ｎは４８以下の正の整数）の論理チャネル毎にＭ個のバイトデータをＭ個の出力ポートに振り分けるＭ×Ｍスイッチ１１３と、ユーザパケットデータと同時に入力されそのユーザパケットデータのマッピング先を示すチャネル番号信号に基づいて自論理チャネルで処理するパケットデータを取り込むＮ個のパケットフィルタ回路１１４−１〜１１４−Ｎと、Ｍ×Ｍスイッチ１１３で振り分けられたパケットデータを一時的に格納する１チャネルあたりＭ個のＦＩＦＯ（First-in First-out）メモリから成るＭ×Ｎ個のパケットメモリ１１５−１１〜１１５−ＮＭと、パケットデータをパケットメモリ１１５−１１〜１１５−ＮＭに書き込むメモリライト制御回路１１６−１〜１１６−Ｎと、ＳＴＭフレームの物理チャネルにいずれの論理チャネルを割り当てるか記憶するチャネル制御メモリ１１７と、チャネル制御メモリ１１７の設定に従ってパケットメモリより読み出すメモリリード制御回路１１８−１〜１１８−Ｎと、メモリリード制御回路１１８−１〜１１８−Ｎから出力されるパケットデータをチャネル制御メモリ１１７から出力する論理チャネル情報信号１１９に基づいてバイト単位でスイッチングするＭ×Ｍスイッチ１２０−１〜１２０−Ｎと、論理チャネル毎にパケットメモリの蓄積バイト数を監視して０ならばアイドルフレームを生成するアイドルフレーム生成回路１２１−１〜１２１−Ｎと、セレクタ回路１２２−１〜１２２−Ｎと、Ｍ×Ｍスイッチ１２０−１〜１２０−Ｎの出力をチャネル制御メモリ１１７から出力する論理チャネル情報信号１１９に基づいてバイト単位で選択的に出力するセレクタ回路１２３−１〜１２３−Ｎとから構成されている。
【００１３】
ルーティング回路１１２には、パケット長検出回路１１１から出力されるパケットデータ、バイト有効性情報、チャネル情報信号、ＳＯＰ信号、ＥＯＰ信号が入力される。パケット長検出回路１１１は、ルーティング情報、論理チャネル番号、書き込みバイト数、ルーティング最終ポート番号、ＳＯＰ、ＥＯＰを出力する。Ｍ×Ｍスイッチ１１３は、論理チャネル毎に、パケットフレームのパッドバイトを取り除き、その論理チャネルX（Xは１以上Ｎ以下の整数）のパケットメモリ１１５−X１〜１１５−XＭに、１１５−X１、１１５−X２、１１５−X３・・・・・１１５−XＭの順番に１バイトずつ詰めて蓄積されるように並べ替えが行われる。パケットメモリ１１５−X１〜１１５−XＭは、ＳＴＭフレームの物理チャネルに対し任意の論理チャネルを割り当てるために、ある１クロックに０〜Ｍバイトまで、１バイト単位で同一の論理チャネルから読み出しができるように、１バイトずつ独立したＦＩＦＯメモリで構成されている。
【００１４】
チャネル制御メモリ１１７には、ＳＴＭフレームの物理チャネル数を１周期として、その物理チャネルに対して格納を行う論理チャネル番号１〜Ｎが記憶されている。各論理チャネルのメモリリード制御回路１２３−１〜１２３−Ｎは、自論理チャネルを出力する物理チャネルのタイミングで１１５−X１、１１５−X２、１１５−X３・・・・・１１５−XＭの順番で１バイトずつデータを読み出す。パケットメモリ１１５−X１〜１１５−XＭの書き込み数と読み出し数とから論理チャネル毎にパケットメモリ１１５−X１〜１１５−XＭの総蓄積バイト数を１クロック毎に算出し、０であれば、アイドルフレーム生成回路１２１−Ｘでアイドルフレームを生成し、セレクタ回路１２２−Ｘで選択的に出力し、セレクタ回路１２３−１〜１２３−Ｍで選択的に出力し、論理チャネル毎のバイト信号を多重化する。セレクタ回路１２３−１〜１２３−Ｍでのセレクト信号は、論理チャネル情報信号を用いて対応するバイトのチャネル情報に従って、論理チャネル１〜論理チャネルＮを選択的に出力する。
【００１５】
キュー長管理回路を持つアイドルフレーム生成回路１２１−１〜１２１−Ｎは、図１８，１９に示されるように、パケットメモリ１１５−１〜１１５−Ｎに蓄積されている論理チャネルごとのバイト数を算出して、そのバイト数が０であれば４バイトのアイドルフレームの送出が途中で終わっていなかったかを判定することにより、アイドルフレームの何バイト目から出力するかを判定する。また、今度の１クロックではチャネル制御メモリに自論理チャネル用の出力バイトとして設定されているバイト数を識別し、蓄積バイト数が小さい場合には、何バイト分をパケットメモリより読み出すデータとするかを判定し、更に、何バイト分をアイドルフレームとするかを判定する。
【００１６】
このような提案のＳＴＭマッピング回路のアイドルフレーム挿入回路１２１−１〜１２１−Ｎは、その回路規模が増大しないで、処理速度が更に高速化されることが求められる。一連の処理を１クロック毎に連続して行うために追加される回路は、複雑になならず、ディジタル論理回路で高速処理を実現する際に、１クロックで処理可能なロジック段数と動作速度が限定されないで、パラレル展開数を大きくする場合に回路規模の増大を抑制することができる技術の確立が求められる。
【００１７】
アイドルフレームの挿入とパケットの読出しの処理が高速化されることが求められる。更に、アイドルフレームの挿入とパケットの読出しの高速化のために、アイドルフレームの挿入とパケット読出しのための回路の規模が増大することを抑制することができることが望まれる。
【００１８】
【発明が解決しようとする課題】
本発明の課題は、アイドルフレームの挿入とパケットの読出しの処理をより高速化することができるＳＴＭマッピング装置を提供することにある。
本発明の他の課題は、アイドルフレームの挿入とパケットの読出しの高速化のために、アイドルフレームの挿入とパケット読出しのための回路の規模が増大することを抑制することができるＳＴＭマッピング装置を提供することにある。
【００１９】
【課題を解決するための手段】
その課題を解決するための手段が、下記のように表現される。その表現中に現れる技術的事項には、括弧（）つきで、番号、記号等が添記されている。その番号、記号等は、本発明の実施の複数・形態又は複数の実施例のうちの少なくとも１つの実施の形態又は複数の実施例を構成する技術的事項、特に、その実施の形態又は実施例に対応する図面に表現されている技術的事項に付せられている参照番号、参照記号等に一致している。このような参照番号、参照記号は、請求項記載の技術的事項と実施の形態又は実施例の技術的事項との対応・橋渡しを明確にしている。このような対応・橋渡しは、請求項記載の技術的事項が実施の形態又は実施例の技術的事項に限定されて解釈されることを意味しない。
【００２０】
本発明によるＳＴＭマッピング装置は、可変長パケットを展開したデータバイトを１クロック毎に格納するパケットメモリ（１９−１〜１９−Ｎ）と、データバイトをパケットメモリ（１９−１１〜１９−ＮＭ）に１クロック毎に配分するメモリ制御回路とから構成されている。パケットメモリ（１９−１１ 〜１９−ＮＭ）は、可変長パケットの種別を表す論理チャネル毎に形成される１バイトずつ独立したＭ個のＦＩＦＯメモリ（１９−１１〜１９−ＮＭ）を備えている。その制御回路は、論理チャネル毎のデータ蓄積バイト数が閾値未満であることを１クロック毎に示す判別信号を出力するキュー長管理回路（２３−１〜２３−Ｎ）と、ＦＩＦＯメモリ（１９−１１〜１９−ＮＭ）に最後に格納したデータバイトのバイト番号の次のバイト番号のＦＩＦＯメモリ（１９−１１〜１９−ＮＭ）に書き込むＭバイト単位のアイドルフレームを生成する生成回路（２４−１〜２４−Ｎ）と、前記判別信号に基づいて前記Ｍバイト単位のアイドルフレームを選択的に前記パケットメモリに出力するセレクタ回路（２５−１〜２５−Ｎ）とを備えている。
【００２１】
データ蓄積バイト数を管理してメモリ量が適正量以下である場合に、Ｍバイト単位のアイドルフレームを書き込むので、可変長パケットの書き込みの順番と量とが同時的に制御され、回路規模の増大を抑えながら高速の書き込みと読み込みが安全に制御され、書き込み順番の制御の利点をより有効に活用することができる。前後する可変長パケットの間でＦＩＦＯメモリにアイドルフレームを隙間なく書き込むことは、回路規模の増大を抑える。
【００２２】
キュー長管理回路（２３−１〜２３−Ｎ）の適正量の管理は、論理チャネル毎のＭバイト幅のＦＩＦＯメモリ（１９−１１〜１９−１Ｍ）に保持されているデータバイトのＭ個単位の書込みバイト数ＷとＦＩＦＯメモリ（１９−１１〜１９−１Ｍ）から読み出されるデータバイトのＭ個単位の読出しバイト数Ｒと蓄積バイト数Ｑとに基づいて、新たにＱ＝Ｑ＋Ｗ−Ｒにより算出してデータ蓄積バイト数を１クロック毎に算出することを実行している。Ｍ個バイト単位で１クロック毎にデータバイトの差し引き勘定を行って、１クロックの時間範囲で蓄積量を管理している。このような管理は、その安全性を確実にする。
【００２３】
キュー長管理回路（２３−１〜２３−Ｎ）は、データ蓄積バイト数が設定閾値未満であり、且つ、論理チャネルの入力状態が可変長パケットの間の区間状態であればセレクト信号ＩＤＬ＝１を出力し、論理チャネルの入力状態がユーザーパケットフレームの途中状態であればセレクト信号ＩＤＬ＝０を出力する。キュー長管理回路（２３−１〜２３−Ｎ）は、セレクタ回路（２５−１〜２５−Ｎ）を更に備えている。セレクタ回路（２５−１〜２５−Ｎ）は、セレクト信号ＩＤＬ＝１に基づいてアイドルフレームをパケットメモリ（１９−１〜１９−Ｎ）に出力する。セレクト信号ＩＤＬ＝１が出力されれば、データ蓄積バイト数にＭが加算され、キュー長はダイナミックに正しく管理される。
【００２４】
セレクタ回路（２５−１〜２５−Ｎ）は、セレクト信号ＩＤＬに基づいて、Ｍバイト幅のユーザパケットフレーム信号及びＭバイトのいずれのバイトが有効なユーザパケットフレームであるかを示すバイト有効性情報と、生成回路（２４−１〜２４−Ｎ）が出力するアイドルフレーム信号及びバイト有効性情報とを選択的に出力する。
【００２５】
キュー長管理回路（２３−１〜２３−Ｎ）は、更新蓄積バイト数Ｑと設定閾値Ｑｂｐとの大小比較を行い、Ｑ≦Ｑｂｐであれば論理チャネル毎のバックプレッシャー信号ＢＰ［Ｘ］＝０を出力し、Ｑ＞Ｑｂｐであれば論理チャネル毎のバックプレッシャー信号ＢＰ［Ｘ］＝１を出力する。データバイトの配分と量の管理を行うキュー長管理回路（２３−１〜２３−Ｎ）の機能は、そのままに、前段又は後段の回路の制御タイミングのようなバックプレッシャー制御のために用いられ得る。
【００２６】
キュー長管理回路（２３−１〜２３−Ｎ）は、更に、更新蓄積バイト数Ｑとメモリ長最大値Ｑｍａｘとの大小比較を行い、Ｑ≦Ｑｍａｘであれば論理チャネル毎のメモリオーバーフローアラーム信号ＯＦＡＬＭ［Ｘ］＝０を出力し、Ｑ＞Ｑｍａｘであれば論理チャネル毎のメモリオーバーフローアラーム信号ＯＦＡＬＭ［Ｘ］＝１を出力し、更に、前記更新蓄積データバイト数Ｑと０との大小比較を行い、Ｑ≧０であれば論理チャネル毎のメモリアンダーフローアラーム信号ＵＦＡＬＭ［Ｘ］＝０を出力し、Ｑ＜０であれば論理チャネル毎のメモリアンダーフローアラーム信号ＵＦＡＬＭ［Ｘ］＝１を出力する。データバイトの配分と量の管理を行うキュー長管理回路（２３−１〜２３−Ｎ）の機能は、そのままに、安全管理のために用いられ得る。キュー長管理回路（２３−１〜２３−Ｎ）は、メモリアンダーフローアラーム信号ＵＦＡＬＭ［Ｘ］を０とするか１とするかを更新蓄積バイト数Ｑに基づいて判断し、且つ、セレクト信号ＩＤＬを０とするか１とするかをＥＯＰ信号とＳＯＰ信号とに基づいて並列的に判断する。
【００２７】
本発明によるＳＴＭマッピング装置は、Ｍバイト幅で形成されるメモリー領域（１９−１〜１９−Ｎ：図８）に可変長パケットのデータバイトを隙間なく詰めて書き込む第１ステップと、メモリー領域に書き込まれているデータバイトの数Ｑを計数する第２ステップと、数Ｑが設定閾値未満であれば前後する可変長パケットの間にＭバイト単位のアイドルフレームをメモリー領域に隙間なく書き込む第３ステップとから構成されている。数Ｑは、メモリー領域に書き込まれるデータバイト数Ｒとメモリーから読み出されるデータバイト数とに基づいてＱ＝Ｑ＋Ｗ−Ｒにより算出される数である。Ｍバイト幅のデータバイトは１クロックごとに読み出され且つ書き込まれ、数Ｑは１クロック毎に算出される。設定閾値がＱｂｐで表され、Ｑ≦Ｑｂｐであれば論理チャネル毎のバックプレッシャー信号ＢＰ［Ｘ］＝０を出力し、Ｑ＞Ｑｂｐであれば論理チャネル毎のバックプレッシャー信号ＢＰ［Ｘ］＝１を出力する第５ステップが追加されている。
【００２８】
１個の可変長のユーザパケットフレームをパラレル化したＭバイト幅（Ｍは４の倍数且つ２のべき乗）のデータバイトを論理チャネル毎に保持する１バイト幅×Ｍ個のＦＩＦＯメモリから形成され、ユーザパケットフレーム間のパッドバイトが取り除かれた状態でパケットをＦＩＦＯメモリに隙間なく保持するパケットメモリ（１９−１〜１９−Ｎ）の読出しを制御することにより、予め定められた順序でパケットメモリ（１９−１〜１９−Ｎ）からデータバイトを順番に出力することにより、ＳＴＭフレームに設定された物理チャネルに対して、任意の論理チャネルのデータバイトをマッピングしてパケットデータが出力される。
【００２９】
各論理チャネル毎に、キュー長管理回路（２３−１〜２３−Ｎ）で蓄積バイト数を監視し、設定閾値Ｑｉｄｌよりも蓄積バイト数が小さく、且つ、その論理チャネルが、一つのユーザパケットフレームの受信途中ではなく、ユーザパケットフレームと次のユーザパケットフレームとの間の期間であれば、アイドルフレーム挿入信号ＩＤＬ＝１を生成し、ユーザパケットフレームとアイドルフレーム生成回路（２４−１〜２４−Ｎ）で生成するアイドルフレームのいずれかを信号ＩＤＬに基づいてセレクタ回路（２５−１〜２５−Ｎ）で選択し、メモリライト制御回路（２１−１〜２１−Ｎ）でパケットメモリ（１９−１〜１９−Ｎ）に対して書き込む。更に、高速処理できるので、パラレル展開数を大きくしなくてもよく、回路増大を抑えることができる。
【００３０】
キュー長管理回路（２３−１〜２３−Ｎ）は、各チャネル毎に蓄積バイト数Ｑが設定閾値Ｑｉｄｌ未満であるか否かを判定し、且つ、ＳＯＰ信号とＥＯＰ信号とからユーザパケットフレーム間であるか否かを判定するのみで、処理段数が小さく済むので、回路を小型化、高速化することが可能である。メモリの入り口側より空きセルを書き込む方式は、特開平１１−５５２６７などで記されているが、これはＡＴＭのような固定長パケットでの空きセル挿入の方式であり、空きセルの先頭バイトがメモリの異なるバイト番号に変移してゆくことはない。
【００３１】
【発明の実施の形態】
図に対応して、本発明によるＳＴＭマッピング装置の実施の形態は、ＳＴＳ−４８にパケットデータをマッピングするＳＴＭマッピング装置として例示されていて、パケットデータ配分制御回路が、パケットデータ入力回路とパケットデータ出力回路とともに設けられている。そのパケットデータのデータバイトをパラレルに物理的に配列する制御を実行するパケットデータ配列制御回路１は、図１に示されるように、Ｎ個のパケットデータ配列制御回路１−１〜１−Ｎから構成されている。そのパケットデータ入力回路２は、パケットデータ配列制御回路１−１〜１−Ｎに入力的に並列に接続している。パケットデータ配列制御回路１−１〜１−Ｎは、パケットデータ出力回路３に出力的に並列に接続している。
【００３２】
パケットデータ入力回路２は、パケット長検出回路４と、ルーティング回路５と、入力側Ｍ×Ｍスイッチ６とを備えている。パケット長検出回路４に、ユーザパケットフレームデータ列７が入力される。Ｍは、４の倍数であり、且つ、２のべき乗（例示：４，８，１６，・・・）である。入力ユーザパケットフレームデータ列７は、ユーザパケットフレーム列９と論理チャネル信号１１とＳＯＰ１２とＥＯＰ１３とで構成され、これらはパケット長検出回路４に入力される。
【００３３】
パケット長検出回路４は、ユーザパケットフレーム列７のそれぞれのユーザパケットフレーム長をコアヘッダ部のＰＬＩ領域より算出し、パラレル展開された入力信号列７の各１バイトが有効なユーザパケットフレームであるか、あるいはユーザパケットフレームではなくパッドバイトであるかを示すバイト有効性情報１４を生成して出力する。バイト有効性情報１４は、Ｍビットで構成されている。Ｍバイト幅を持つユーザパケットフレーム９は、論理チャネル信号１１とＳＯＰ１２とＥＯＰ１３とバイト有効性情報１４とともにパケット長検出回路４から出力されてルーティング回路５に入力される。
【００３４】
ルーティング回路５は、Ｍ×Ｍスイッチ６がルーティング処理を制御するためのルーティング情報１５を生成し、更に、書込みバイト数１６とＲＴ（ルーティング）最終ポート番号１７とを生成して出力する。ユーザパケットフレーム列９とバイト有効性情報１４とルーティング情報１５とは、論理チャネル信号１１とＳＯＰ１２とＥＯＰ１３と書込みバイト数１６とともに入力側Ｍ×Ｍスイッチ６に入力される。入力側Ｍ×Ｍスイッチ６は、ルーティング情報１５に基づいてユーザパケットフレーム９の並べ替えを行う。
【００３５】
Ｎ個のパケットデータ配列制御回路１−１〜１−Ｎは、それぞれに、パケットフィルタ回路１８−１〜１８−Ｎを備えている。パケットフィルタ回路１８−１〜１８−Ｎは、各々のユーザパケットフレーム９のペイロードヘッダ部に基づいて、そのユーザパケットフレームが属する論理チャネルの論理チャネル番号を判定し、自論理チャネルで処理するパケットデータ９−ＮＭを取り込むことができる。
【００３６】
パケットデータ配列制御回路１−１〜１−Ｎは、Ｍバイト幅のユーザパケットフレーム（Ｍバイト幅データ）９及びアイドルフレームを一時的に格納するＭ個の独立した（First-in First-out）メモリから形成されるＭ個×Ｎチャネル分のパケットメモリ１９−１Ｍ〜１９−ＮＭを備えている。１チャンネルのパケットメモリ１９−１は、８バイトに対応する８個のメモリ要素１９−１１〜１９−１Ｍを備えている。
【００３７】
パケットデータ配列制御回路１は、メモリライト制御回路２１−１〜２１−Ｎを備えている。メモリライト制御回路２１−１〜２１−Ｎは、パケットメモリ１９−１１〜１９−ＮＭにユーザパケットフレームおよびアイドルフレームの各データバイトを書き込む制御を実行する。パケットデータ配列制御回路１は、メモリリード制御回路２２−１を備えている。メモリリード制御回路２２−１は、パケットメモリ１９−１１〜１９−ＮＭからユーザパケットフレームおよびアイドルフレームを読み出す制御を実行する。
【００３８】
パケットデータ配列制御回路１は、キュー長管理回路２３−１〜２３−Ｎを備えている。キュー長管理回路２３−１〜２３−Ｎは、パケットメモリ１９−１１〜１９−ＮＭにそれぞれに蓄積されている論理チャネルごとのユーザパケットフレームおよびアイドルフレームのデータバイトのバイト総数Ｑを１クロック毎にその論理チャネル毎に算出して、論理チャネル毎のバイト総数Ｑが閾値Ｑｉｄｌ以下であり、且つ、その論理チャネルへの入力ユーザパケットフレーム列が、一つのユーザパケットフレームの受信途中ではなく、ユーザパケットフレームと次のユーザパケットフレームとの間の期間の状態であれば、その論理チャネルのアイドルフレーム挿入信号ＩＤＬをＩＤＬ＝１として出力する。そして、その論理チャネルのバイト総数ＱにＭを加算し、それを新しいバイト総数Ｑとする。
【００３９】
パケットデータ配列制御回路１は、アイドルフレーム生成回路２４−１〜２４−Ｎを備えている。パケットフィルタ回路１８−１〜１８−Ｎは、アイドルフレーム生成回路２４−１〜２４−Ｎにそれぞれに接続するとともに、キュー長管理回路２３−１〜２３−Ｎにそれぞれに接続している。アイドルフレーム生成回路２４−１〜２４−Ｎは、論理チャネル毎に、前回到着した最後のユーザデータをルーティングした際に最後のデータバイトとして検出したバイト番号であるルーティング最終ポート番号１７に基づいて、次のバイト番号の物理的位置にアイドルフレームの先頭バイトが格納されるように、バイトをシフトさせたＭバイト幅のアイドルフレームを生成する。更に、アイドルフレーム生成回路からは、バイト有効性情報としてａｌｌ”１”のＭビット幅信号を出力する。
【００４０】
パケットデータ配列制御回路１は、フレーム種別選択用セレクタ回路２５−１〜２５−Ｎを備えている。パケットフィルタ回路１８−１〜１８−Ｎは、アイドルフレーム生成回路２４−１〜２４−Ｎとともにフレーム種別選択用セレクタ回路２５−１〜２５−Ｎに接続している。フレーム種別選択用セレクタ回路２５−１〜２５−Ｎは、パケットフィルタ回路１８−１〜１８−Ｎが出力するユーザパケットフレームと、アイドルフレーム生成回路２４−１〜２４−Ｎが出力するアイドルフレームとを既述のアイドルフレーム挿入信号ＩＤＬ（１又は０）に基づいて選択的に出力する。同様に、Ｍビット幅のバイト有効性情報に関しても、アイドルフレーム挿入信号ＩＤＬに基づいて、パケットフィルタ回路１８−１〜１８−Ｎが出力する信号と、アイドルフレーム生成回路２４−１〜２４−Ｎが出力する信号とを選択出力する。このようにフレーム種別選択用セレクタ回路２５−１〜２５−Ｎにより選択的に出力されるユーザパケットフレーム又はアイドルフレーム、およびバイト有効性情報は、メモリライト制御回路２１−１〜２１−Ｎに入力される。
【００４１】
チャネル制御メモリ２６が設けられている。チャネル制御メモリ２６は、ＳＴＭフレームの物理チャネルにいずれの論理チャネルを割り当てるかを記憶し、論理チャネル情報信号２７をメモリリード制御回路２２−１〜２２−Ｎに送信する。パケットデータ配列制御回路１は、出力側Ｍ×Ｍスイッチ２８−１〜２８−Ｎを備えている。出力側Ｍ×Ｍスイッチ２８−１〜２８−Ｎは、パケットメモリ１９−１１〜１９−ＮＭが格納しているデータバイトをチャネル制御メモリ２８から出力される論理チャネル情報信号２７に基づいてバイト単位でスイッチングを行う。
【００４２】
出力側Ｍ×Ｍスイッチ２８−１〜２８−Ｎは、Ｍ個のセレクタ回路２９−１〜２９−Ｍに出力的に並列的に接続している。セレクタ回路２９−１〜２９−Ｍは、出力側Ｍ×Ｍスイッチ２８−１〜２８−Ｎが出力するデータバイトをチャネル制御メモリ２６から出力される論理チャネル情報信号２７に基づいて、バイト単位で選択的に出力する。
【００４３】
パケット長検出回路４に、Ｍバイト幅のユーザパケットフレームが入力される。そのユーザパケットフレームは、論理チャネル番号（信号）１１を伴っていて、必ずしも同一論理チャネルの一つのユーザパケットが連続していなくても、１クロック毎に異なる論理チャネルのユーザパケットが多重されていてもよい。
【００４４】
パケット長検出回路４は、各論理チャネルのユーザパケットデータのＭ個幅を形成するＭ個のデータバイトが有効なデータであるか無効データ（パッドバイト）であるかを示すＭビットのバイト有効性情報１４を生成している。各到着ユーザパケットフレームのヘッダ部を検出し、例えばＧＦＰであればコアヘッダ部のＰＬＩ値（図１３参照）からユーザパケット全体のバイト長を求め、その値より有効／無効を判定することができる。ルーティング回路５は、バイト有効性情報１４に基づいて、０バイト目〜Ｍ−１バイト目のデータバイトを０〜Ｍ−１バイト目に詰めて並べ替えるためのルーティング情報１５を生成している。
【００４５】
図２は、図１に示されるルーティング回路５を詳細に示し、信号バイト幅であるＭとして、８が例示的に採用されている。ルーティング回路５は、バイト行（第０行〜第７行）ごとに、各データバイトに対応するバイト有効性情報１４に基づいて、有効データ数をカウントする有効バイト数カウント回路３１−１〜３１−７を備えている。ルーティング回路５は、ルーティング結果メモリ３２を備えている。ルーティング結果メモリ３２は、１個のルーティング回路５によりでＮ本の論理チャネルを時分割処理するために、論理チャネル１〜ＮのそれぞれについてＭ個のポート中のどのバイトに最後のデータが書き込まれたか示す最後尾バイト対応信号を保持する。
【００４６】
ルーティング結果メモリ３２は、メモリ制御回路３３に双方向に接続している。メモリ制御回路３３は、ユーザパケットフレームと同時に入力されるチャネル番号１１に基づいてルーティング結果メモリ３２から、その論理チャネルＮの最後のルーティング結果を読み出して出力する。有効バイト数カウント回路３１−１〜３１−７は、メモリ制御回路３３とともに加算器３５−０〜３５−７に接続している。加算器３５−０〜３５−７は、メモリ制御回路３３の出力信号３４と有効バイト数カウント回路の出力信号とを加算する。最終段の有効バイト数カウント回路３１−７は、バイト０からバイト７までの全ての有効バイト数を加算し総有効バイト数を計数してその総有効バイト数を出力する。
【００４７】
その総有効バイト数は、加算器３５−７で、メモリ制御回路３３が出力する出力信号３４に加算される。加算器３８−１〜３８−８が出力する加算値は、バイト０〜バイト７に対応するルーティング情報３６−０〜３６−７として用いられる。最終段の加算器３５−７は、その加算値をルーティング最終ポート番号１７としても出力する。その加算値がＭ（＝８）を超えるときには、その加算値からＭを減算し、０〜Ｍ−１の範囲の値を出力する。有効バイト数カウント回路３１−７が出力する総有効バイト数は、書込みバイト数１６として出力される。ルーティング回路５は、既述の通り、Ｍバイト幅のユーザパケットフレーム９、ＳＯＰ信号１２、ＥＯＰ信号１３、ルーティング最終ポート番号１７、書き込みバイト数１６、論理チャネル番号１１、バイト毎のルーティング情報３６−０〜３６−７を出力する。
【００４８】
入力側Ｍ×Ｍスイッチ６は、バイト０〜バイトＭ−１のルーティング情報３６−０〜３６−７に基づいて、ユーザパケットフレーム９の入力バイト０〜バイトＭ−１のデータバイトとバイト有効性情報と書込みバイト数１６を出力バイト０〜バイトＭ−１に並べ替える。その並べ替えは、同一論理チャネルのユーザパケットフレームデータが、前に到着したその論理チャネルのユーザパケットフレームと間隔があくことなくＦＩＦＯに詰めて蓄積されるように行う。このような並べ替えは、公知の２→１セレクタ回路の組み合わせ又は公知のバニヤンスイッチによっても実現することができる。
【００４９】
パケットフィルタ回路１８−１〜１８−Ｎは、入力側Ｍ×Ｍスイッチ６から出力されたチャネル番号信号１１を監視し、そのチャネル番号信号１１が自論理チャネル番号であれば、そのユーザパケットフレーム９を取り込む回路として形成されている。
【００５０】
パケットメモリ１９−１１〜１９−ＮＭは、論理チャネル毎にＭ個のポート毎に別れたＦＩＦＯ（First-in First-out）メモリから構成され、Ｍ個のデータバイトを順次に格納し、１クロック毎に最大Ｍ個のデータバイトを出力する。１個のＦＩＦＯは１バイト幅を持つ。
【００５１】
メモリライト制御回路２１−１〜２１−Ｎは、ユーザパケットフレームもしくはアイドルフレームをパケットメモリ１９−１１〜１９−ＮＭに書き込む回路であり、ある論理チャネル中でバイト有効性情報＝１のバイトについて書き込みを行う。チャネル制御メモリ２６は、ＳＴＭフレームのＶＣ−３又はＶＣ−４で構成される物理チャネルに対し、どの論理チャネルをマッピングするかを設定するメモリである。
【００５２】
図３は、Ｍ＝８であるチャネル制御メモリ２６を例示している。チャネル制御メモリ２６において、論理ＣＨ（チャネル）１〜ＣＨ４８は、論理チャネル１〜８の８区分に振り分けられて、物理チャネルに対応する対応関係を形成している。メモリ領域が、８チャネルずつ左下より右上に向けて、順番に用意されている。図３に例示されるように、８つの物理ＣＨ１〜物理ＣＨ８は論理ＣＨ１に割り当てられ、５つの物理ＣＨ９〜物理ＣＨ１３は論理ＣＨ２に割り当てられ、３つの物理ＣＨ１４〜物理ＣＨ１６は論理ＣＨ３に割り当てられ、８つの物理ＣＨ１７〜物理ＣＨ２４は論理ＣＨ４に割り当てられ、４つの物理ＣＨ２５〜物理ＣＨ２８は論理ＣＨ５に割り当てられ、４つの物理ＣＨ２９〜物理ＣＨ３２は論理ＣＨ６に割り当てられ、１２個の物理ＣＨ３３〜物理ＣＨ４４は論理ＣＨ７に割り当てられ、４つの物理ＣＨ４５〜物理ＣＨ４８は論理ＣＨ８に割り当てられている。
【００５３】
チャネル制御メモリ２６からは、１クロック毎に処理するＭ（＝８）物理チャネル分の論理チャネル情報信号２７が出力され、論理チャネル情報信号２７は、８個の物理チャネルに割り当てる論理チャネル番号を２進数で表した信号を、例えば８ｂｉｔ×８個の計６４ｂｉｔ幅で出力する。
【００５４】
メモリリード制御回路２２−１〜２２−Ｎは、チャネル制御メモリ２６が出力する論理チャネル情報信号２７に基づいて、ある１クロックで自論理チャネルに割り当てられた物理チャネル数を求め、物理チャネル数分のデータバイト（ユーザパケットフレームもしくはアイドルフレーム）をパケットメモリ１９−１１〜１９−ＮＭから１９−X１、１９−X２、１９−X３・・・・、１９−XＭの順番で１バイトずつ読み出す。前回最後に読み出したメモリのバイト番号を覚えておき、前回読み出したデータに引き続いて、データを読み出す。バイトＭ−１まで読み出したら、バイト０に戻る。また、その論理チャネル毎の読み出しバイト数を出力する。
【００５５】
出力側Ｍ×Ｍスイッチ２８−１〜２８−Ｎは、チャネル制御メモリ２６から出力する論理チャネル情報信号２７に基づいて、メモリリード制御回路２２−１〜２２−Ｎで読み出したユーザパケットフレームもしくはアイドルフレームをバイト単位でスイッチングする。チャネル制御メモリ２６から出力される論理チャネル情報信号２７の中の自論理チャネルの位置を出力ポートとして、スイッチングを行う。スイッチングを制御するルーティング情報は、テーブルで自己生成する。ルーティング情報は、今回読み出しを開始するパケットメモリの先頭バイト番号０〜７と、論理チャネル情報信号２７中の自チャネル出力位置とから定まる。例えば、予め各論理チャネル毎にテーブルに記憶しておき、先頭バイト番号と自論理チャネル出力位置とでテーブルを検索し、ルーティング情報を得る。
【００５６】
図４と図５は、Ｍ＝４のそのようなルーティングテーブル８１を例示している。図５は、１点鎖線で接続されている。図４，５のルーティングテーブル８１は、左側から右側に向かう６つの欄を有している。６つの欄は、チャネル制御メモリ２６から入力される論理チャネル情報信号２７の中の自ＣＨ出力位置と、先頭メモリ番号と、入力ポート０のバイト０に対するルーティング情報と、入力ポート１のバイト１に対するルーティング情報と、入力ポート２のバイト２対するルーティング情報と、入力ポート３のバイト３に対するルーティング情報とを有している。
【００５７】
自ＣＨ出力位置は、論理チャネル情報信号と自ＣＨ番号との比較照合により求められ得る。論理チャネルが１であれば、論理チャネル情報信号＝｛ＣＨ１、ＣＨ１、ＣＨ２、ＣＨ３｝の自ＣＨ出力位置は”１１００”であり、論理チャネルが２であれば、その自ＣＨ出力位置は”００１０”であり、論理チャネルが３であれば、その自ＣＨ出力位置は”０００１”であり、論理チャネルが４であれば、その自ＣＨ出力位置は”００００”である。
【００５８】
ルーティング情報は、２ｂｉｔの２進数であり、ルーティング情報が”００”であれば出力ポート０にルーティングされるようスイッチングが行われ、ルーティング情報が”０１”であれば、出力ポート１にルーティングされるようスイッチングが行われ、ルーティング情報が”１０”であれば、出力ポート２にルーティングされるようスイッチングが行われ、ルーティング情報が”１１”であれば、出力ポート３にルーティングされるようスイッチングが行われる。
【００５９】
一例として、論理チャネル情報信号＝｛ＣＨ１、ＣＨ１、ＣＨ１、ＣＨ１｝であり、先頭メモリ番号が３のときを次に考える。論理チャネル１の自ＣＨ出力位置は１１１１となる。先頭メモリ番号が３であれば、バイト０のデータがルーティング情報”０１”に従って対応する出力ポート１に出力されるようにスイッチングが行われる。同様に、バイト１のデータはルーティング情報”１０”に従って対応する出力ポート２に出力されるようスイッチングが行われ、バイト２のデータはルーティング情報”１１”に従って対応する出力ポート３に出力されるようにスイッチングが行われ、バイト３のデータはルーティング情報”００”に従って対応する出力ポート０に出力されるようスイッチングが行われる。
【００６０】
論理チャネル１以外では、自ＣＨ出力位置は００００となり入力ポートと出力ポートが一致するようスイッチングが行われるが、自バイト数は０であるので各パケットメモリからは何も読み出されず、値としては０がスイッチングされる。
【００６１】
このようにパケットメモリ１９−１１〜１９−ＮＭから読み出され、出力側Ｍ×Ｍスイッチ２８−１〜２８−Ｎにより出力論理チャネルの順序に並び替えられたデータバイトをセレクタ回路２９−１〜２９−Ｍで選択的に出力し、論理チャネル毎のバイト信号を多重化する。セレクト信号としては、論理チャネル情報信号２７が用いられ、対応するバイトのチャネル情報に従って、論理チャネル１〜論理チャネルＮを選択的に出力する。論理チャネル数Ｎ＝４８として、チャネル制御メモリの物理チャネル１〜４８に、同じく論理チャネル１〜４８を順に設定することにより、ＳＴＭフレームのペイロード中に論理チャネル１〜４８を順番にマッピングし、ＶＣ−３×４８チャネルの２．４Ｇｂｐｓフレームのペイロード部を生成する。
【００６２】
ここで、キュー長管理回路２３−１〜２３−Ｎは、それぞれに論理チャネル毎に、書き込みバイト数Ｗと読み出しバイト数Ｒとから、各論理チャネルのパケットメモリへの蓄積バイト数Ｑを算出し、その大きさによりアイドルフレーム挿入の可否判断を行う。これらの処理は、１クロック毎に常時行う。
【００６３】
図６は、論理チャネル毎に配備されるキュー長管理回路２３−１〜２３−Ｎの処理フローを示している。論理チャネル毎にユーザパケット途中であるかユーザパケット間であるかを示すバイト種別判別信号は、下記のように定義されてＰＳＴＡＴで表される。
ＰＳＴＡＴ＝０：その論理チャネルは、ユーザパケットフレームの受信を完了しており、次のユーザパケットフレームとの間の区切りの期間の状態にある。
ＰＳＴＡＴ＝１：その論理チャネルは、ある一つのユーザパケットフレームの受信途中である。
【００６４】
アイドルフレーム挿入閾値は、Ｑｉｄｌで表される。アイドルフレームを挿入するためのアイドルフレーム挿入信号は、下記のように定義されてＩＤＬで表される。
ＩＤＬ＝０：アイドルフレームは挿入されない。
ＩＤＬ＝１：アイドルフレームが挿入される。
【００６５】
バイト種別判別信号ＰＳＴＡＴ、アイドルフレーム挿入閾値Ｑｉｄｌ、アイドルフレーム挿入信号ＩＤＬとが初期化される。アイドルフレーム挿入閾値Ｑｉｄｌは、可変自在に設定される（ステップＡ１）。論理チャネルパケットフィルタからキュー長管理回路に、１クロック毎に、その論理チャネルの書き込みバイト数Ｗが入力される。メモリリード制御回路からキュー長管理回路に、その同じ１クロック毎に、読み出しバイト数Ｒが入力される（ステップＡ２）。書き込みバイト数Ｗの最大値はＭ、その論理チャネルに対して書き込むユーザパケットフレームが無い場合にはＷ＝０である。同様に、読み出しバイト数Ｒの最大値はＭ、その論理チャネルから読み出さない場合にはＲ＝０が入力される。ＱにＷが加算されＲが減算されて、その論理チャネルのパケットメモリへ蓄積されているデータバイト数Ｑが更新蓄積バイト数Ｑとして演算される（ステップＡ３）：
Ｑ＝Ｑ＋Ｗ−Ｒ
【００６６】
そして、そのときにＰＳＴＡＴ＝０であれば、又は、ＳＯＰ＝０（ＳＯＰ＝１を受信していない状態）であり、データバイト数Ｑが閾値Ｑｉｄｌ未満であれば（ステップＡ９のＹｅｓ）、データバイト数ＱにＭバイト幅分のアイドルフレームのバイト数Ｍが加算され、ＩＤＬ＝１が設定され、アイドルフレームを挿入する選択信号がセレクタ回路から出力される（ステップＡ１１）。
【００６７】
一方、ステップＡ９でＮｏ（そのバイトがユーザパケット途中であるか、又は、Ｑ≧Ｑｉｄｌ）であれば、データバイト数Ｑはそのままの値に維持され、ＩＤＬ＝０としてアイドルフレームは挿入されない（ステップＡ１０）。そのときに、ＳＯＰ＝１であれば（ステップＡ４のＹｅｓ）、ＰＳＴＡＴ＝１が設定され（ステップＡ８）、ＥＯＰ＝１であれば（ステップＡ５のＹｅｓ）、ＰＳＴＡＴ＝０が設定され（ステップＡ７）、ＳＯＰ＝１でなく、且つ、ＥＯＰ＝１でなければ（ステップＡ５のＮｏ）、バイト種別判別信号ＰＳＴＡＴは前クロックのＰＳＴＡＴを保持する（ステップＡ６）。
【００６８】
図７は、アイドルフレーム挿入回路２４−１〜２４−Ｎのアイドルフレームパターンを例示していて、Ｍ＝８の場合を例示している。ルーティング最終ポート番号に基づいて、その論理チャネルで最後のデータが格納されたパケットメモリのバイト番号の次のバイトに続いてＭ個の連続したアイドルバイトから形成されるアイドルフレームが隙間なく詰まるようにアイドルフレームパターンがアイドルフレーム生成回路から生成されてセレクタ回路に出力される。
【００６９】
セレクタ回路２５−１〜２５−Ｎは、キュー長管理回路２３−１〜２３−Ｎが出力するアイドルフレーム挿入信号ＩＤＬが１であるときにのみ、アイドルフレーム生成回路２４−１〜２４−Ｎが出力する８バイト幅のアイドルフレームを選択し、ＩＤＬ＝０であれば、パケットフィルタ回路が出力する８バイト幅のユーザパケットデータを選択して出力する。同様に、セレクタ回路２５−１〜２５−Ｎは、キュー長管理回路２３−１〜２３−Ｎが出力するアイドルフレーム挿入信号ＩＤＬが１であるときにのみ、アイドルフレーム生成回路２４−１〜２４−Ｎが出力する８ビット幅のＡｌｌ”１”であるバイト有効性情報を選択し、ＩＤＬ＝０であれば、パケットフィルタ回路が出力する８ビット幅のバイト有効性情報を選択して出力する。
【００７０】
キュー長管理回路２３−１〜２３−Ｎとアイドルフレーム生成回路２４−１〜２４−Ｎとセレクタ回路２５−１〜２５−Ｎとによって、パケットメモリの蓄積バイト数Ｑが、Ｑ＜Ｑｉｄｌであれば、ユーザパケットフレーム間にのみアイドルフレームが挿入されてパケットメモリに蓄積される。メモリライト制御回路は、パケットフレームとアイドルフレームとを区別しないで、パケットメモリに格納して行く。
【００７１】
図８（ａ），（ｂ），（ｃ）と図９（ｄ），（ｅ）は、パケットメモリにユーザパケットフレームとアイドルフレームとを蓄積して行く様子を示していて、Ｍ＝８の場合が例示されている。図８（ａ）は、同一論理チャネルの第１ユーザパケットフレーム（Ｐ１〜Ｐ２７：２７バイト）と第２ユーザパケットフレーム（Ｐ２−１〜Ｐ２−３６：３６バイト）が到着する状態を示していて、パッドバイトは除去されずになお付加されている。図８（ｂ）は、パッドバイトが取り除かれてパケットメモリに蓄積された第１ユーザパケットフレームと第２ユーザパケットフレームの蓄積状況を示している。この場合、Ｑ値はＱｉｄｌ以上である。図８（ｃ）は、パケットメモリよりユーザパケットフレームのバイトデータが読み出され、Ｑ値がＱｉｄｌ未満になった状態を示している。第２ユーザパケットフレームはＰ２−１からＰ２−３６までの３６バイトで形成されていて、ルーティング最終ポート番号は６である。従って、アイドルフレーム生成回路は、バイト０より、”ＡＢ３１Ｅ０Ｂ６ＡＢ３１Ｅ０Ｂ６ｈ”を生成する。図９は、そのように生成されたアイドルフレーム”ＡＢ３１Ｅ０Ｂ６ＡＢ３１Ｅ０Ｂ６ｈ”がセレクタ回路で選択されてパケットメモリのバイト０よりバイト７に順次に書き込まれた状態を示している。このような書き込みによってＱ値がＱｉｄｌ以上になれば、アイドルフレームの挿入動作は停止する。
【００７２】
アイドルフレームをＭバイト分生成することにより、バイト０〜７毎の蓄積バイト数の差は変わらない。つまり、アイドルフレーム挿入後も、ルーティング最終ポート番号＝６である状態が不変に継続され、ルーティング回路５のルーティング結果メモリ３２をそのままに利用することにより、次に到着するユーザパケットフレームを隙間なく詰めこむことができる。アイドルフレーム挿入を行っても、ルーティング結果メモリ３２を書きかえる必要性がなく、ルーティング回路５への制御信号などを設ける必要がない。図９（ｂ）は、更に８バイト分のユーザパケットフレームのバイトデータが読み出された場合に８バイト分のアイドルフレームが更に挿入された状態を示している。
【００７３】
図１１と図１２は、パケットメモリからのデータの読み出し動作を示す。図１１と図１２は、１点鎖線で接続している。これは、メモリ読み出し後のＭ×Ｍスイッチ２８−１〜２８−Ｎの出力信号を示す。図９（ｂ）の２つのアイドルフレームの時間的に先行するアイドルフレームのうちの論理チャネル１の３つのアイドルバイト｛Ｂ６，ＡＢ，３１｝は、時刻（又は時刻幅）Ｔと時刻Ｔ＋１でパケットメモリから出力され、チャネル制御メモリで制御される次の論理チャネルの読出し時刻Ｔ＋２とＴ＋３で、図９（ｂ）の２つのアイドルフレームの残りの１２個のアイドルバイトのうちの１０個のアイドルフレームバイト｛Ｅ０，Ｂ６，ＡＢ，３１，Ｅ０，Ｂ６，ＡＢ，３１，Ｅ０，Ｂ６｝が読み出される。
【００７４】
このような読出し方法によれば、メモリリード制御回路２２−１〜２２−Ｎと出力側Ｍ×Ｍスイッチ２８−１〜２８−Ｎは、ユーザパケットフレームもアイドルフレームも区別することなく、自論理チャネルが割り振られた物理チャネルに対してデータをマッピングすればよく、従来例のメモリリード側で必要であった複雑な処理回路が不要である。
【００７５】
本発明によるＳＴＭマッピング装置は、蓄積バイト数管理によりパケットメモリのバックプレッシャー制御、メモリオーバーフロー監視、メモリアンダーフロー監視の３機能を更に配備している。バックプレッシャー制御は、ＳＴＭマッピング回路の前段にある回路のメモリに対して実行する制御であり、ＢＰ信号＝１が検出されれば、そのメモリに対する読み出しが停止され、ＢＰ信号＝０であれば、そのメモリに対して読み出しが再開される。このような読出停止と読出再開の制御は、ＳＴＭマッピング回路のメモリオーバーフローを回避することができる。一方、メモリオーバーフローの監視とメモリアンダーフローの監視とによって、回路故障監視が更に可能になる。
【００７６】
キュー長管理回路２３−１〜２３−Ｎには、パケットメモリ１９−１１〜１９−ＮＭに蓄積されているデータバイト数を論理チャネル毎に算出し、その値によってアイドルフレーム挿入信号ＩＤＬ＝１、バックプレッシャー信号ＢＰ［Ｎ：１］、メモリオーバーフローアラームＯＦＡＬＭ［Ｎ：１］、メモリアンダーフローアラームＵＦＡＬＭ［Ｎ：１］を出力する機能が付加されている。
【００７７】
アイドルフレーム生成回路２４−１〜２４−Ｎは、既述の通り、前回に到着したユーザパケットフレームの最終バイトがルーティングされてそのバイト番号が示されるルーティング最終ポート番号に基づいて、それの次のバイト番号にアイドルフレーム先頭バイトが格納されるように、バイトがシフトされたＭバイト幅のＭ／４個分のアイドルフレームを生成している。
【００７８】
図１０は、論理チャネル毎に配備されているキュー長管理回路の処理フローを示している。論理チャネル毎にそのときの状態がある一つのユーザパケットフレームの受信途中であるか、あるユーザパケットフレームとその次のユーザパケットフレームとの間の区間の状態であるかを示すバイト種別判別信号はＰＳＴＡＴ（０：二つのユーザパケットフレーム間、１：ユーザパケットフレームの受信途中）で表され、外部より設定されるアイドルフレーム挿入閾値はＱｉｄｌで表され、アイドルフレーム挿入信号はＩＤＬ（０：挿入しない、１：挿入する）で表され、データバイト蓄積数はＱで表され、蓄積バイト数最大値（メモリ長最大値）はＱｍａｘで表され、バックプレッシャー生成閾値はＱｂｐで表されている。
【００７９】
まず、バイト種別判別信号ＰＳＴＡＴ、アイドルフレーム挿入閾値Ｑｉｄｌ、アイドルフレーム挿入信号ＩＤＬ、メモリオーバーフローアラームＯＦＡＬＭ［Ｘ］（Ｘは論理チャネル番号：１以上Ｎ以下の任意の整数）の初期化が行われる。アイドルフレーム挿入閾値Ｑｉｄｌが設定される（ステップＡ１３）。１クロック毎に論理チャネルの書き込みバイト数Ｗと読み出しバイト数Ｒが入力される（ステップＡ１４）。
【００８０】
ＱにＷが加算されＲが減算されて、その論理チャネルのパケットメモリへ蓄積されているデータバイト数Ｑが演算される（ステップＡ１５：Ｑ＝Ｑ＋Ｗ−Ｒ）。Ｑ＞Ｑｍａｘであれば（ステップＡ１６のＹｅｓ）、メモリオーバーフローが起こっているものとして、ＯＦＡＬＭ［Ｘ］＝１が出力される（ステップＡ１７）。Ｑ≦Ｑｍａｘであれば（ステップＡ１６のＮｏ）、メモリオーバーフローは発生しておらず、ＯＦＡＬＭ［Ｘ］＝０が出力される（ステップＡ１８）。
【００８１】
Ｑ＞Ｑｂｐであれば（ステップＡ１９のＹｅｓ）、バックプレッシャー信号ＢＰ［Ｘ］＝１が出力される（ステップＡ２１）。Ｑ≦Ｑｂｐであれば、バックプレッシャー制御は行われず、ＢＰ［Ｘ］＝０が出力される（ステップＡ２０）。一方で、Ｑ＜０であれば（ステップＡ３２のＹｅｓ）、メモリアンダーフローが起こっていると判断されて、ＵＦＡＬＭ［Ｘ］＝１が出力される（ステップＡ３４）。Ｑ≧０であれば（ステップＡ３２のＮｏ）、メモリアンダーフローは発生しておらず、ＵＦＡＬＭ［Ｘ］＝０が出力される（ステップＡ３３）。
【００８２】
ＰＳＴＡＴ＝０、又は、ＳＯＰ＝０（ＳＯＰ＝１を受信していない状態）であり、且つ、Ｑが閾値Ｑｉｄｌ未満であれば（ステップＡ２９のＹｅｓ）、そのＱにアイドルフレームＭバイト幅分を加算し、更に、ＩＤＬ＝１として、アイドルフレームを挿入する選択信号が出力される（ステップＡ３１）。一方で、ステップＡ２９でＮｏ（ユーザパケットフレームの受信途中、もしくはＱ≧Ｑｉｄｌ）であれば、Ｑはそのままの値とされ、ＩＤＬ＝０とされてアイドルフレームは挿入されない（ステップＡ３０）。そのとき、ＳＯＰ＝１であれば（Ａ２３のＹｅｓ）、ＰＳＴＡＴ＝１が設定され（ステップＡ２７）、ＥＯＰ＝１であれば（ステップＡ２４のＹｅｓ）、ＰＳＴＡＴ＝０が設定され（ステップＡ２６）、ＳＯＰ＝１でなく、且つ、ＥＯＰ＝１でなければ（ステップＡ２４のＮｏ）、ＰＳＴＡＴは前クロックでのＰＳＴＡＴに保持される（ステップＡ２５）。
【００８３】
ステップＡ３５で示される処理部分とステップＡ２８で示される処理部分は、そのパラレル処理が可能であるから、ロジック段数はそれほどには増えることなく、バックプレッシャー信号生成、メモリアンダーフロー監視、メモリオーバーフロー監視とが行われ得る。
【００８４】
【発明の効果】
本発明によるＳＴＭマッピング装置は、アイドルフレームの挿入とデータの読出しの処理を回路規模の拡大を抑制しながらより高速化することができる。その高速化のために、アイドルフレームの挿入とデータ読出しのための回路の規模が増大することを抑制することができる。
【００８５】
具体的には、ＧＦＰフレームやＳＤＬフレームなどのユーザパケットフレーム毎に長さが異なる可変長パケットをＳＴＭフレームに格納する場合に、回路が簡単な構成になり、回路規模の削減、処理速度の向上が可能である。アイドルフレームをユーザパケットフレーム間に隙間なく詰め込む場合、１バイトずつ独立したＭ個のＦＩＦＯメモリで構成されるパケットメモリに対し、論理チャネル毎のデータ蓄積バイト数が閾値未満のときに、最後にデータパケットをルーティングした次のバイト番号のメモリからアイドルフレームを書き込む構成を採用することにより、従来必要であったメモリリード側での複雑な処理が不要になり、回路規模が縮小し、更に、処理段数が縮小し、高速処理に対応可能になる。従って、本発明によるＳＴＭマッピング装置は、ＳＴＭマッピング回路を搭載するＳＴＭ／Ｐａｃｋｅｔハイブリッドスイッチ等のラインカード又はスイッチカードにより、より高速な回線を収容することができる。
【００８６】
更に、高速処理が可能であり、通信装置内で従来と同一の速度の回線を取り扱う場合に、主信号のパラレル展開数を大きくする必要が生じ難く、パラレル展開に伴う回路増加規模の増大をより有効に抑えることができる。
【図面の簡単な説明】
【図１】図１は、本発明によるＳＴＭマッピング装置の実施の形態を示す回路ブロック図である。
【図２】図２は、ルーティングを示す回路ブロック図である。
【図３】図３は、物理チャネルと論理チャネルの対応関係を示すテーブルである。
【図４】図４は、チャネルの出力位置と入力ポートの対応関係の一部を示すテーブルである。
【図５】図５は、図４に一連の他の部分を示すテーブルである。
【図６】図６は、本発明によるＳＴＭマッピング装置の動作フローを示すフロー図である。
【図７】図７は、ルーティング情報とポートとの対応関係を示すテーブルである。
【図８】図８（ａ），（ｂ），（ｃ）は、８バイト幅のバイトデータを格納する配列の一部を示す論理テーブルである。
【図９】図９（ｄ），（ｅ）は、図８に一連の他の部分を示す論理テーブルである。
【図１０】図１０は、本発明によるＳＴＭマッピング装置の他の動作フローを示すフロー図である。
【図１１】図１１は、論理チャネルとデータとの対応の一部を示すテーブルである。
【図１２】図１２は、図１１に一連の他の部分を示すテーブルである。
【図１３】図１３（ａ），（ｂ）は、ユーザパケットフレームとその一部のデータをそれぞれに示すフォーマットである。
【図１４】図１４（ａ），（ｂ）は、８バイト幅のバイトデータの配列の一部を示す論理テーブルである。
【図１５】図１５（ａ），（ｂ）は、図１４（ａ），（ｂ）に一連の配列の他の部分を示す論理テーブルである。
【図１６】図１６は、パケットデータの論理チャネルと物理チャネルの関係を示すフォーマットである。
【図１７】図１７は、本発明の前提として提案される技術を示す回路ブロック図である。
【図１８】図１８は、前提的に提案される技術の論理チャネルとデータの配置関係の一部を示すテーブルである。
【図１９】図１９は、図１８に一連の配置関係の他の部分を示すテーブルである。
【符号の説明】
１…パケットデータ配列制御回路
２…パケットデータ入力回路
３…パケットデータ出力回路
（１９−１１〜１９−１Ｍ）〜（１９−Ｎ１〜１９−ＮＭ）…ＦＩＦＯメモリ
２１−１〜２１−Ｎ…メモリライト制御回路
２３−１〜２３−Ｎ…キュー長管理回路
２４−１〜２４−Ｎ…アイドルフレーム生成回路
２５−１〜２５−Ｎ…セレクタ回路
【図１】
0003753016.tif 000002
【図２】
0003753016.tif 000003
【図３】
0003753016.tif 000004
【図４】
0003753016.tif 000005
【図５】
0003753016.tif 000006
【図６】
0003753016.tif 000007
【図７】
0003753016.tif 000008
【図８】
0003753016.tif 000009
【図９】
0003753016.tif 000010
【図１０】
0003753016.tif 000011
【図１１】
0003753016.tif 000012
【図１２】
0003753016.tif 000013
【図１３】
0003753016.tif 000014
【図１４】
0003753016.tif 000015
【図１５】
0003753016.tif 000016
【図１６】
0003753016.tif 000017
【図１７】
0003753016.tif 000018
【図１８】
0003753016.tif 000019
【図１９】
0003753016.tif 000020