(57)【要約】【課題】後からの光パケットを前のより先に出力することで、パケット落ち確率を減らすことができ、平面実装の容易な制御回路を、実時間制御可能になるように構成する。【解決手段】パケット情報を読み取る読取器、あるいは、光パケット検出器と、光遅延素子と、入力端側切換器と、合流器と、入力端側切換器と出力端側切換器とを制御する光バッファ制御装置と、パケット優先度制御装置とを備え、光バッファ制御装置出力する光パケットの有無を示す管理テーブルを備え、１）上記のテーブルは、遅延時間が減少する方向に順送りされ、２）周期ＴＬで、入力端からの新たな入力パケットの有無を確認し、３）各光遅延素子の短い順に、４）最も優先度の高い光パケットを選択し、５）管理テーブルに空セルを見出し、６）空セルがあれば、入力パケットが占有するセル位置に、出力情報を記し、７）入力端側切換器を制御する。【選択図】図２
2008211530.tif 000002
【特許請求の範囲】
【請求項１】
光パケットを入力するＮ個の入力端と、
光パケットを出力する出力端と、
光パケットに付加されたパケット情報を読み取る読取器、あるいは、光パケットを測定してパケット情報を取得する光パケット検出器と、
異なる遅延時間の短い順に順序付けされ光遅延素子識別符号の付された複数（Ｂ）の光遅延素子と、
上記の入力端と上記の複数の光遅延素子との光接続を切り換える入力端側切換器と、
上記の出力端と上記の光遅延素子とを接続する合流器と、
入力端側切換器と出力端側切換器とを制御する光バッファ制御器と、
競合する光パケットから優先して出力する光パケットを選択するための制御を行うパケット優先度制御器とを備え、
さらに、入力端から入力した光パケット列を出力端から出力する構成を備え、
それぞれの光パケットにそれぞれの遅延時間を与えて光パケットの出力端での衝突を抑制するバッファ装置であって、
上記の光バッファ制御器は、
出力端から出力される光パケットの出力順に、出力する光パケットの有無を示す出力情報が時系列に従って記され予め決められた時間単位ＴＨで管理される複数のセルからなる管理テーブルを備え、
（１）上記のテーブルに記されたそれぞれの出力情報は、時間の経過とともに遅延時間が減少する方向に順送りされ、
（２）各入力端での入力光パケットの最小パケット長と最小パケット間隔との和や出力端での光パケットの最小パケット長と最小パケット間隔との和以下である予め決められた周期ＴＬでで、それぞれの入力端からの新たな入力パケットの有無を確認し、
（３）入力された光パケットについて、上記の各光遅延素子の短い順に、
（４）上記の管理テーブルの、当該光遅延素子の遅延時間に当該光遅延素子のオフセット分である所定の時間を加えた時間に該当する位置に該入力パケット分の連続した空セルを見出し、
（５）空セルが見出された光パケットが複数ある場合には、最も優先度の高い光パケットを選択し、上記の空セルの位置から、上記の入力パケットが占有するセル位置に、出力情報を記し、
（６）入力パケットのあった入力端と該光遅延素子番号とを上記の所定の時間後に、上記の入力端側切換器を用いて接続すし、
（７）入力された光パケット用に空セルを見出せずに残っていれば、次の光遅延素子について（３）以降を繰り返し、次の光遅延素子がなければ、空セルを見出せずに残った光パケットは出力できないものとして棄却する、
ことを特徴とする光パケットバッファ装置。
【請求項２】
上記の合流器は、上記の出力端と上記の光遅延素子との接続を切り換える出力端側切換器であって、
上記の光バッファ制御器は、
出力端から出力される光パケットの出力順に、光遅延素子識別符号が時系列に従って記され予め決められた時間単位ＴＨで管理される複数のセルからなる管理テーブルを備え、
（１）上記のテーブルに記されたそれぞれの光遅延素子識別符号は、時間の経過とともに遅延時間が減少する方向に順送りされ、
（２）上記の出力端側切換器を用いて上記の管理テーブルから排出される光遅延素子識別符号の光遅延素子と出力端とを接続し、
（３）各入力端での入力光パケットの最小パケット長と最小パケット間隔との和や出力端での光パケットの最小パケット長と最小パケット間隔との和以下である予め決められた周期ＴＬで、それぞれの入力端からの新たな入力パケットの有無を確認し、
（４）入力された光パケットについて、上記の各光遅延素子の短い順に、
（５）上記の管理テーブルの、当該光遅延素子の遅延時間に当該光遅延素子のオフセット分である所定の時間を加えた時間に該当する位置に該入力パケット分の連続した空セルを見出し、
（６）空セルが見出された光パケットが複数ある場合には、最も優先度の高い光パケットを選択し、上記の空セルの位置から、上記の入力パケットが占有するセル位置に、該光遅延素子番号を記し、
（７）入力パケットのあった入力端と該光遅延素子番号とを上記の所定の時間後に、上記の入力端側切換器を用いて接続し、
（８）入力された光パケット用に空セルを見出せずに残っていれば次の光遅延素子について（４）以降を繰り返し、次の光遅延素子がなければ、空セルを見出せずに残った光パケットは出力できないものとして棄却する、
ことを特徴とする請求項１に記載の光パケットバッファ装置。
【請求項３】
上記の光バッファ制御器は、用いる光遅延素子数（Ｂ）と同数の機能ブロックを備え、
遅延時間の短い光遅延素子から順に光遅延素子に自然数の序数を与えるとき、
隣り合う序数の光遅延素子間の遅延時間差は、出力端での最大パケット長と最小パケット間隔の和を周期ＴＨの整数倍に切り上げたものと周期ＴＨと周期ＴＬとの和以上であって、
それぞれの機能ブロックは、作業用ＦＩＦＯと、該作業用ＦＩＦＯの作業結果を保存するＦＩＦＯと、該入力端と同じ序数を有するパケット送出可能判定器と、を備え、
前記パケット送出可能判定器は、Ｂから該光遅延素子の序数を引いたものにＴＬを掛けたオフセット時間後に、それぞれの入力端からそれぞれの光遅延素子にパケットを送出することが可能かどうかを判定するものであり、
ＦＩＦＯと作業用ＦＩＦＯの接続をさらに機能ブロック間での接続で上記の管理テーブルを構成し、
周期ＴＬで、
ＦＩＦＯは、前段の機能ブロックの作業用ＦＩＦＯに保持情報を引き渡し、
初段の機能ブロックのパケット送出可能判定器には、対応する入力端からのパケット情報が引き渡され、
終段以外の機能ブロックのｎ目（１≦ｎ≦Ｎ）のパケット送出可能判定器は、ＴＬの遅延時間を与えた後に、次段の機能ブロックのｎ番目のパケット送出可能判定器に判定するパケット情報を引き渡し、
パケット送出可能判定器は、上記の管理テーブルに該入力からの入力パケット分の連続した空セルがあるかどうかを判定し、１）無い場合もしくは、他の入力からのパケットが送出可能で当該パケットより優先度の高い場合は入力パケット情報を次段の機能ブロックのパケット送出可能判定器に送り、２）ある場合には、上記の空セルの位置から、入力パケットが占有するセル位置に、当該機能ブロックに対応する光遅延素子識別符号を記し、パケット送出可能判定器が引き渡すパケット情報から当該パケットを出力する旨記載した情報を削除して、当該機能ブロックに対応する光遅延素子識別符号を追加して、次段の機能ブロックのパケット送出可能判定器に送り、
終段の機能ブロックのパケット送出可能判定器の出力に当該パケットを出力する旨が記載されていた場合には、当該パケットは出力できないものとして落し、そうでない場合には当該出力に含まれた光遅延素子識別符号により識別される遅延線に当該パケットを導くよう、入力端側切替器を制御し、各機能ブロックでの処理を同時に、かつ周期ＴＬで行なうパイプライン処理による方法であることを特徴とする請求項１に記載の光パケットバッファ装置。
【請求項４】
入力端は、Ｐ個の入力端のそれぞれに光パケットが非同期到着する入力端で、
上記の光パケット長はそれぞれ可変長で、ｉ番目（１≦ｉ≦Ｐ）の入力端の光パケットについて、その最小パケット長をｍiとし、最大パケット長をＭiとし、また、最小パケット間隔をＩiとし、
上記の入力端のいずれかに到着した光パケットを、光パケットのまま、１つの出力に、到着した光パケットの内の最小パケット間隔Ｉoで出力する装置であって、  
１≦ｉ≦Ｐでのｍiの最小値をｍ、Ｍiの最大値をＭ、ＩiやＩoの最小値をＩとし、１≦ｉ≦Ｐそれぞれのパケットのピッチ（ｍi＋Ｉi）とピッチ（ｍ＋Ｉo）との最小値をｍｉｎｍＩとするとき、
上記の読取器は、
周期ＴＬをｍｉｎｍＩより短いクロック信号とするとき、周期ＴＬ内の位置をＴＬの整数分の１の周期ＴＨを単位とする精度で読み取るものであって、
それぞれの入力端の可変長光パケットの光パケット長を読みとる光パケット長読取手段と、
光パケットの始点の位置を読みとる光パケット位置読取手段と、を備え、
上記の複数の異なった遅延時間を短い順にＤj（１≦ｊ≦Ｂ）とするとき、
上記の管理テーブルは、周期ＴＬで、上記の遅延手段の使用状況と出力予定を管理するＦＩＦＯであって、
さらに、上記のＦＩＦＯは、最大の遅延量ＤBに出力端での最大パケット長と最小パケット間隔を加えたものでの周期ＴＨ刻みの将来の各時点で各遅延線の出力の有無を管理するものであって、
（１）入力された光パケットに付加されたパケット情報を読み取るか、光パケットを計測してパケット情報を取得し、
（２）上記の光バッファ制御器は、各入力から新たに入力されたパケットを、各遅延線について順次、当該遅延線に振り分けた場合、出力の時点で他の遅延線から出力されるパケットとＩo以上の間隔を保てるかという出力可能性を、上記のＦＩＦＯの途中の当該遅延線の遅延量とオフセットに相当する部分の情報と照らし合わせて判定し、
（３）さらに、上記の光バッファ制御器は、当該遅延線に出力可能な入力されたパケットのうち最も優先度の高いものを当該遅延線に出力するものとし、
（４）また、上記の光バッファ制御器は、上記の判定の結果に応じてＦＩＦＯの当該途中の情報を更新し、当該パケットを当該遅延線に振り分ける入力端側切換器の制御信号を発生し、
（５）当該パケットがやがて出力端側切換器に到達する時点で、ＦＩＦＯの出力に記録された遅延線情報により、出力端側切換器を制御する、
ことを特徴とする請求項１あるいは２に記載の光パケットバッファ装置。
【請求項５】
請求項４に記載の光パケットバッファ装置であって、
出力可能性の判定を遅延線の短い順に行い、
ＫをＭ＋Ｉoが占めるＴＬの周期の最大数としたとき、
ＤiとＤi+1の差が（Ｋ＋１）×ＴＬ以上であれば、ｉ番目以前と（ｉ＋１）番目以降の出力可能性の確認を別のパイプラインステージで行う、という周期ＴＬのパイプライン処理を用いたことを特徴とする光パケットバッファ装置。
【請求項６】
請求項５に記載の光パケットバッファ装置であって、
ＤiとＤi+1の差が（Ｋ＋１）×ＴＬ未満となる場合はＤi+1とＤi+2の差が（Ｋ＋１）×ＴＬ以上となる遅延量の遅延線を用いたことを特徴とする光パケットバッファ装置。
【請求項７】
請求項５の光パケットバッファ装置において、
遅延線の遅延量は、
ＤiとＤi+1との差が（Ｋ＋１）×ＴＬ以上であることを特徴とする光パケットバッファ装置。
【請求項８】
光遅延素子で遅延される光パケットの実際の遅延を測定する遅延時間測定部と、ＦＩＦＯ長調整部と、遅延時間測定用パケット発生部とをさらに備え、
ＦＩＦＯ長調整部は、出力端側切換器を制御する管理テーブルの長さを遅延線の実際の遅延に応じて調整することを特徴とする請求項１から７のいずれかに記載された光パケットバッファ装置。
【請求項９】
請求項２に記載の光パケット合成出力装置における光バッファ制御装置において、
複数の出力端と、
それぞれの出力端について上記の光遅延素子との接続を電気的に切り換える出力端側切換器と、
それぞれの出力端について出力される光パケットの出力順に、光遅延素子識別符号が時系列に従って記され予め決められた時間単位ＴＨで管理され、それぞれの出力端用にそれぞれ複数のセルからなる管理テーブルを備え、
パケット情報は当該パケットが出力される出力端を特定する情報を含み、
各出力端に対してそれぞれに（１）〜（８）の動作を繰り返し、その際、（５）における動作は、
「（５）該入力パケットの出力される出力端用の上記の管理テーブルの、当該光遅延素子の遅延時間と当該光遅延素子のオフセット分である所定の時間とを加えた時間に該当する位置に、該入力パケット分の連続した空セルを見出し、
それ以外の管理テーブルの該時間に該当する部分に該入力パケットと同一の入力端からの入力がないことを確認し、」、とするものであり、
さらに、（６）においては、「空セルが見出された」の代わりに、「空セルが見出され入力端の衝突がないことが確認された」、とするものであり、
さらに、（８）においては、「入力された光パケット用に空セルを見出せずに」の代わりに、「入力された光パケット用に遅延素子の衝突がない空セルを見出せずに」、とするものである、
ことを特徴とする、光パケットバッファ装置。
【請求項１０】
請求項１に記載の光パケットバッファ装置の制御方法であって、
（１）上記のテーブルに記されたそれぞれの出力情報を、時間の経過とともに遅延時間が減少する方向に順送りするステップと、
（２）上記の時間単位ＴＨの整数倍であり、かつ各入力端での入力光パケットの最小パケット長と最小パケット間隔との和や出力端での光パケットの最小パケット長と最小パケット間隔との和以下である予め決められた周期ＴＬで、それぞれの入力端からの新たな入力パケットの有無を確認するステップと、
（３）入力された光パケットについて、上記の各光遅延素子の短い順に、上記の管理テーブルの、当該光遅延素子の遅延時間に当該光遅延素子のオフセット分である所定の時間を加えた時間に該当する位置に該入力パケット分の連続した空セルを見出すステップと、
（４）空セルが見出された光パケットが複数ある場合には、最も優先度の高い光パケットを選択し、上記の空セルの位置から、上記の入力パケットが占有するセル位置に、出力情報を記すステップと、
（５）入力パケットのあった入力端と該光遅延素子番号とを上記の所定の時間後に、上記の入力端側切換器を用いて接続するステップと、
（６）入力された光パケット用に空セルを見出せずに残っていれば次の光遅延素子について（３）以降を繰り返し、次の光遅延素子がなければ、空セルを見出せずに残った光パケットは出力できないものとして棄却するステップと、
を含むことを特徴とする光パケットバッファ装置の制御方法。
【請求項１１】
請求項２に記載の光パケットバッファ装置の制御方法であって、
（１）上記のテーブルに記されたそれぞれの光遅延素子識別符号を、時間の経過とともに遅延時間が減少する方向に順送りするステップと、
（２）上記の出力端側切換器を用いて上記の管理テーブルから排出される光遅延素子識別符号の光遅延素子と出力端とを接続するステップと、
（３）上記の時間単位ＴＨの整数倍であり、かつ各入力端での入力光パケットの最小パケット長と最小パケット間隔との和や出力端での光パケットの最小パケット長と最小パケット間隔との和以下である予め決められた周期ＴＬで、それぞれの入力端からの新たな入力パケットの有無を確認するステップと、
（４）入力された光パケットについて、上記の各光遅延素子の短い順に、上記の管理テーブルの、当該光遅延素子の遅延時間に当該光遅延素子のオフセット分である所定の時間を加えた時間に該当する位置に該入力パケット分の連続した空セルを見出すステップと、
（５）空セルが見出された光パケットが複数ある場合には、最も優先度の高い光パケットを選択し、上記の空セルの位置から、上記の入力パケットが占有するセル位置に、該光遅延素子番号を記すステップと、
（６）入力パケットのあった入力端と該光遅延素子番号とを上記の所定の時間後に、上記の入力端側切換器を用いて接続するステップと、
（７）入力された光パケットが残っていれば次の光遅延素子について（４）以降を繰り返し、次の光遅延素子がなければ残りの光パケットは出力できないものとして棄却するステップと、
を含むことを特徴とする光パケットバッファ装置の制御方法。
【請求項１２】
請求項３に記載の光パケットバッファ装置の制御方法であって、
周期ＴＬで、
（１）ＦＩＦＯが、前段の機能ブロックの作業用ＦＩＦＯに保持情報を引き渡し、
初段の機能ブロックのパケット送出可能判定器には、対応する入力端からのパケット情報が引き渡され、
終段以外の機能ブロックのｎ番目（１≦ｎ≦Ｎ）のパケット送出可能判定器は、ＴＬの遅延時間を与えた後に、次段の機能ブロックのｎ番目のパケット送出可能判器に判定するパケット情報を引き渡すステップと、
（２）パケット送出可能判定器が、上記の管理テーブルに該入力からの入力パケット分の連続した空セルがあるかどうかを判定し、Ａ）無い場合もしくは、他の入力からのパケットが送出可能で当該パケットより優先度の高い場合は入力パケット情報を次段の機能ブロックのパケット送出可能判定器に送り、Ｂ）ある場合には、上記の空セルの位置から、入力パケットが占有するセル位置に、当該機能ブロックに対応する光遅延素子識別符号を記し、パケット送出可能判定器が引き渡すパケット情報から当該パケットを出力する旨記載した情報を削除して、当該機能ブロックに対応する光遅延素子識別符号を追加して、次段の機能ブロックのパケット送出可能判定器に送り、
終段の機能ブロックのパケット送出可能判定器の出力に当該パケットを出力する旨が記載されていた場合には、当該パケットは出力できないものとして落し、そうでない場合には当該出力に含まれた光遅延素子識別符号により識別される遅延線に当該パケットを導くよう、入力端側切替器を制御するステップと、
を含むことにより、各機能ブロックでの処理を同時に、かつ周期ＴＬで行なうパイプライン処理による方法であることを特徴とする光パケットバッファ装置の制御方法。
【請求項１３】
請求項４に記載の光パケットバッファ装置の制御方法であって、
（１）入力された光パケットに付加されたパケット情報を読み取るか、光パケットを計測してパケット情報を取得するステップと、
（２）上記の光バッファ制御器が、各入力から新たに入力されたパケットを、各遅延線について順次、当該遅延線に振り分けた場合、出力の時点で他の遅延線から出力されるパケットとＩo以上の間隔を保てるかという出力可能性を、上記のＦＩＦＯの途中の当該遅延線の遅延量に相当する部分の情報と照らし合わせて判定するステップと、
（３）さらに、上記の光バッファ制御器は、当該遅延線に出力可能な入力されたパケットのうち最も優先度の高いものを当該遅延線に出力するステップと、
（４）また、上記の光バッファ制御器は、上記の判定の結果に応じてＦＩＦＯの当該途中の情報を更新し、当該パケットを当該遅延線に振り分ける入力端側切換器の制御信号を発生するステップと、
（５）当該パケットがやがて出力端側切換器に到達する時点で、ＦＩＦＯの出力に記録された遅延線情報により、出力端側切換器を制御するステップと、
を含むことを特徴とする光パケットバッファ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、光通信において、光パケットを電気信号で制御して光のまま中継する際に用いるもので、入力端から入力した光パケットを出力端に出力する際に、光パケットに選択的に遅延時間を与えてパケット間の衝突がないようにした光パケットバッファ制御装置とその制御方法に関している。
【背景技術】
【０００２】
光は電気に比べて圧倒的に広い帯域を持っているため、インターネット幹線の速度が指数的に増加している現在、光の広帯域性を利用した光ルータ・光スイッチの実用化が期待されている。
【０００３】
光ルータ・スイッチの問題点は、同じ出力先に出力すべき複数のパケットが同時に到着した場合に、出力できないパケットを待たせるためのバッファである。バッファは電気回路ではメモリにより容易に実現可能だが、バッファのために光パケットを電気パケットに変換したのでは光の広帯域性は失われ単なる電気ルータになってしまうため、パケットを光のまま待たせる光バッファが必要である。
【０００４】
光バッファは光ファイバ遅延線により実現可能であるが（特許文献１）、多量のパケットをバッファするには長大な光ファイバが必要となる。これまで、インターネット幹線では幹線速度に比例して０．１秒〜１秒程度分のバッファが必要といわれてきたが、これには数万〜数十万Kmの光ファイバが必要である。しかし最近、インターネット幹線では負荷率が７０〜９０%程度でよければ十数〜数十パケットのバッファで十分であることが指摘され（非特許文献１）、またテラビット級でパケットをエンコードすることで１パケットに必要な光ファイバ長が短く済み（特許文献２）実用的な数と長さの光ファイバによる光バッファでパケット落ち確率を十分小さくできることが示され（非特許文献２）、実用的な光ルータが作成できることがわかった。また、光は電気に比べて圧倒的に広帯域であるため、負荷率が７０〜９０％であっても電気ルータより遥かに高速となる。
【０００５】
ただ、少数の光ファイバ遅延線でパケット落ち確率を低くするためには、長い遅延線にパケットを振り分けたあと、その途中の短い遅延線の遅延量に相当する部分に空があるときは、当該短い遅延線にパケットを振り分け、場合によってはパケットの入力の順序と出力の順序が異なる、パケット順序の入れ替えを許すバッファ制御方式が必要となる。また、テラビット級でパケットをエンコードした場合パケットは数ｎｓ〜数十ｎｓとなるため、高速なバッファ制御方式が必要である。
【０００６】
これまでパケット順序入れ替えを許さない場合には高速な制御方式が提案（特許文献３）されており、特許文献１ではシフトレジスタによるＦＩＦＯで遅延線の状態を管理することは提案されているが、具体的な制御方式の記述はない。
【０００７】
パケット順序入れ替えを許すバッファ制御方式が困難であることの理由としては、パケットをなるべく密に詰めるため特許文献３のように遅延線の長さの差がパケットより短いことや、特許文献１のようにＡＴＭ方式では、異なる通信に属するパケット（セル）の順序入れ替えは許されるが同一通信に属するパケット（セル）の順序入れ替えは許されず、制御はより複雑になるといったことが挙げられる。
【０００８】
しかし、負荷率が７０〜９０%程度でよければ遅延線の長さの差は大きくてよく、インターネットではパケット順序入れ替えは一般に許されている。
【０００９】
そこで、本発明は、パケット順序入れ替えを許すバッファ制御を、遅延線の長さの差が大きい場合ことを利用して並列化する方法について述べる。バッファの形態としては、非特許文献２にあるように、出力ごとに個別にバッファを持つ個別バッファ方式と、全出力で一つのバッファを共有する共通バッファ方式があるが、前者の制御方式の単純な拡張で後者も制御できる。
【００１０】
【特許文献１】米国特許第５４６９２８４号
【特許文献２】特願２００６−６３３１３号
【特許文献３】特開２００４−２３６２３６号公報
【非特許文献１】M. Enachescu, Y. Ganjali, A. Goel, N. McKeown, T. Roughgarden, "Routers with Very Small Buffers", ACM SIGCOMM Computer Communication Review, Vol 35, No. 2, July 2005.
【非特許文献２】太田 昌孝、「光パケット多重ルータのファイバー遅延線による光バッファ構成」、信学技報  PN、2006年 3月．
【発明の開示】
【発明が解決しようとする課題】
【００１１】
複数の光ファイバ遅延線を光スイッチで切替ることで実現された光バッファの制御の際に、パケットの順序の入れ替えを許し、ある遅延線の途中の、より短い遅延線の遅延量に相当する部分に空きがある場合、後から来たパケットを前のパケットより短い遅延線に通し、結果的に前のパケットより先に出力させることで、特にファイバ遅延線長の差が大きいときパケット落ち確率を減らすことができる、という報告をもとに、このための平面実装の容易な制御回路を、しかも実時間制御可能になるように構成する。
【発明の効果】
【００１２】
この発明では、ＴＬ単位の周期で処理することにより、各周期で該周期内に始点があり同時に考慮すべきパケットが各入力や各出力につき１個以下で済む。このため、処理回路が簡素化でき、また、処理速度の向上を図れる。
【００１３】
遅延線の遅延量に出力端での最大パケット長と最小パケット間隔とＴＬとを加えた以上の間隔があれば、その間隔の前後にある遅延線に同じＴＬのクロック周期に該周期内に始点があるパケットを振り分けても、当該それらのパケット同士が衝突することはないため、出力可能性の判定を並列に行え、また、遅延量の間隔がさらにＴＬ以上大きければ、周期ＴＬでのパイプライン処理によりＴＬ時間で遅延線相互の影響を考慮すべき遅延線の数を減らせる。
【００１４】
遅延線を遅延量の順に並べた時、上記の間隔以下の遅延量の差が続く区間が短かければ、パイプライン処理の各ステージで考慮すべき遅延線数も少なくなる。特に、全遅延線の遅延量の差が上記の間隔以上であれば、パイプラインの各ステージで考慮すべき遅延線の数は１個となる。
【００１５】
また、通常のパケットをそのまま利用して、あるいは、遅延量計時用パケットを発生させ、遅延線やバッファの出力などをモニタして入力のタイミングと比較することで、経時や温度による遅延線の遅延量の変化を計測し、それにあわせてＦＩＦＯの長さを調節することで、経時や温度による遅延線の遅延量の変化を許容できる。この際、ＦＩＦＯを長くするときには適切なデータをつめ、短くするときには適切にデータを削ることを行う。
【課題を解決するための手段】
【００１６】
本発明の光パケットバッファ装置は、同期あるいは非同期、または、固定長あるいは可変長の光パケットの入力を許すものであって、光パケットを入力する入力端と、光パケットを出力する出力端と、光パケットに付加されたパケット情報を読み取る読取器、あるいは、光パケットを測定してパケット情報を取得する光パケット検出器と、異なる遅延時間の短い順に順序付けされ光遅延素子識別符号の付された複数（Ｂ）の光遅延素子と、上記の複数の入力端と上記の光遅延素子との接続を電気的に切り換える入力端側切換器と、上記の出力端と上記の光遅延素子との接続する合流器と、入力端側切換器と出力端側切換器とを電気的に制御する光バッファ制御器と、競合する光パケットから優先的に選択するための制御を行うパケット優先度制御装置とを備え、
さらに、入力端から入力した複数の光パケットを出力端から出力する構成を備え、それぞれの光パケットにそれぞれの遅延時間を与えて光パケットの衝突を抑制する合成出力装置である。
以下ではまず、出力ごとにバッファ装置を持つ個別バッファ方式の光パケットバッファ装置の制御について、記述する。
上記の光バッファ制御器は、出力端から出力される光パケットの出力順に、出力する光パケットの有無を示す出力情報が時系列に従って記され予め決められた時間単位ＴＨで管理される複数のセルからなる管理テーブルを備えている。
また、その制御においては、
（１）上記のテーブルに記されたそれぞれの出力情報は、時間の経過とともに遅延時間が減少する方向に順送りされ、
（２）各入力端での入力光パケットの最小パケット長と最小パケット間隔との和や出力端での光パケットの最小パケット長と最小パケット間隔との和以下である予め決められた周期ＴＬで、それぞれの入力端からの新たな入力パケットの有無を確認し、
（３）入力された光パケットについて、上記の各光遅延素子の短い順に、
（４）上記の管理テーブルの、当該光遅延素子の遅延時間に当該光遅延素子のオフセット分である所定の時間を加えた時間に該当する位置に該入力パケット分の連続した空セルを見出し、
（５）空セルが見出された光パケットが複数ある場合には、最も優先度の高い光パケットを選択し、上記の空セルの位置から、上記の入力パケットが占有するセル位置に、出力情報を記し、
（６）入力パケットのあった入力端と該光遅延素子番号とを上記の所定の時間後に、上記の入力端側切換器を用いて接続し、
（７）入力された光パケット用に空セルを見出せずに残っていれば次の光遅延素子について（３）以降を繰り返し、次の光遅延素子がなければ、空セルを見出せずに残った光パケットは出力できないものとして棄却し、入力パケットのあった入力端と該光遅延素子番号とを上記の所定の時間後に、上記の入力端側切換器を用いて接続するものである。
この光パケットバッファ装置で用いる光パケット情報は、パケット長、パケット到着時刻、あるいは、パケット優先順位である。
【００１７】
また、本発明の光パケットバッファ装置は、周期ＴＬごとに、上記の管理テーブルを一括で更新するものであって、上記の合流器は、上記の出力端と上記の光遅延素子との接続を電気的に切り換える出力端側切換器であって、上記の光バッファ制御器は、出力端から出力される光パケットの出力順に、光遅延素子識別符号が時系列に従って記され予め決められた時間単位ＴＨで管理される複数のセルからなる管理テーブルを備えるものである。
また、その制御においては、
（１）上記のテーブルに記されたそれぞれの光遅延素子識別符号は、時間の経過とともに遅延時間が減少する方向に順送りされ、
（２）上記の出力端側切換器を用いて上記の管理テーブルから排出される光遅延素子識別符号の光遅延素子と出力端とを接続し、
（３）各入力端での入力光パケットの最小パケット長と最小パケット間隔との  和や出力端での光パケットの最小パケット長と最小パケット間隔との和以下である予め決められた周期ＴＬで、それぞれの入力端からの新たな入力パケットの有無を確認し、
（４）入力された光パケットについて、上記の各光遅延素子の短い順に、
（５）上記の管理テーブルの、当該光遅延素子の遅延時間に当該光遅延素子のオフセット分である所定の時間を加えた時間に該当する位置に該入力パケット分の連続した空セルを見出し、
（６）空セルが見出された光パケットが複数ある場合には、最も優先度の高い光パケットを選択し、上記の空セルの位置から、上記の入力パケットが占有するセル位置に、該光遅延素子番号を記し、
（７）入力パケットのあった入力端と該光遅延素子番号とを上記の所定の時間後に、上記の入力端側切換器を用いて接続し、
（８）入力された光パケット用に空セルを見出せずに残っていれば次の光遅延素子について（４）以降を繰り返し、次の光遅延素子がなければ、空セルを見出せずに残った光パケットは出力できないものとして棄却し、入力パケットのあった入力端と該光遅延素子番号とを上記の所定の時間後に、上記の入力端側切換器を用いて接続するものである。
【００１８】
また、本発明の光パケットバッファ装置は、周期TLごとに管理テーブルをシフトしながら更新するパイプライン処理を行うものであって、上記の光バッファ制御器は、用いる光遅延素子数（Ｂ）と同数の機能ブロックを備えるものである。また、さらに、遅延時間の短い光遅延素子から順に光遅延素子に自然数の序数を与えるとき、隣り合う序数の光遅延素子間の遅延時間差は、最大パケット長と最小パケット間隔と周期ＴＬとの和以上であって、それぞれの機能ブロックは、作業用ＦＩＦＯと、該作業用ＦＩＦＯの作業結果を保存するＦＩＦＯと、それぞれの光遅延素子にパケットを送出することが可能かどうかを判定し該光遅延素子と同じ序数を有するパケット送出可能判定器と、を備えるものである。ＦＩＦＯの長さは０でもよい。  特に、ＦＩＦＯと作業用ＦＩＦＯの接続をさらに機能ブロック間での接続で上記の管理テーブルを構成し、周期ＴＬで、ＦＩＦＯは、前段の機能ブロックの作業用ＦＩＦＯに保持情報を引き渡し、初段の機能ブロックのパケット送出可能判定器には、対応する入力端からのパケット情報が引き渡し、終段以外の機能ブロックのｎ番目（１≦ｎ≦Ｎ）のパケット送出可能判定器は、ＴＬの遅延時間を与えた後に、次段の機能ブロックのｎ番目のパケット送出可能判定器に判定するパケット情報を引き渡す。
また、パケット送出可能判定器は、上記の管理テーブルに該入力からの入力パケット分の連続した空セルがあるかどうかを判定し、１）無い場合もしくは、他の入力からのパケットが送出可能で当該パケットより優先度の高い場合は入力パケット情報を次段の機能ブロックのパケット送出可能判定器に送り、２）ある場合には、上記の空セルの位置から、入力パケットが占有するセル位置に、当該機能ブロックに対応する光遅延素子識別符号を記し、パケット送出可能判定器が引き渡すパケット情報から当該パケットを出力する旨記載した情報を削除して、当該機能ブロックに対応する光遅延素子識別符号を追加して、次段の機能ブロックのパケット送出可能判定器に送る。
このようにして、各機能ブロックでの処理を同時に、かつ周期ＴＬで行なうパイプライン処理による方法を用いる。
【００１９】
より限定的には、本発明の光パケットバッファ装置では、入力端は、Ｐ個の入力端のそれぞれに光パケットが非同期到着する入力端で、上記の光パケット長はそれぞれ可変長で、ｉ番目（１≦ｉ≦Ｐ）の入力端の光パケットについて、その最小パケット長をｍiとし、最大パケット長をＭｉとし、また、最小パケット間隔をＩiとし、光パケットの入力の無い入力端については、上記のそれぞれの定義は行なわないとするとき、上記の入力端のいずれかに到着した光パケット列を、光パケットのまま、１つの出力に、到着した光パケットの内の最小パケット間隔Ｉｏで出力する装置である。
１≦ｉ≦Ｐでのｍｉの最小値をｍ、Ｍiの最大値をＭ、ＩiやＩｏの最小値をＩとし、１≦ｉ≦Ｐそれぞれのパケットのピッチ（ｍi＋Ｉi）とピッチ（ｍ＋Ｉｏ）との最小値をｍｉｎｍＩとするとき、上記の読取器は、周期ＴＬをｍｉｎｍＩより短いクロック信号とするとき、周期ＴＬ内の位置をＴＬの整数分の１の周期ＴＨを単位とする精度で読み取るものであって、それぞれの入力端の可変長光パケットの光パケット長を読みとる光パケット長読取手段と、光パケットの始点の位置を読みとる光パケット位置読取手段と、を備える。
また、上記の複数の異なった遅延時間を短い順にＤj（１≦ｊ≦Ｂ）とするとき、上記の管理テーブルは、周期ＴＬで、上記の遅延手段の使用状況と出力予定を管理するＦＩＦＯであって、さらに、上記のＦＩＦＯは、最大の遅延量ＤBに出力端での最大パケット長と最小パケット間隔を加えた時までの周期ＴＨ刻みの各時点で各遅延線の出力の有無を管理するものである。
また、その制御においては、
（１）入力された光パケットに付加されたパケット情報を読み取るか、光パケットを計測してパケット情報を取得し、
（２）上記の光バッファ制御器は、各入力から新たに入力されたパケットを、各遅延線について順次、当該遅延線に振り分けた場合、出力の時点で他の遅延線から出力されるパケットとＩｏ以上の間隔を保てるかという出力可能性を、上記のＦＩＦＯの途中の当該遅延線の遅延量とオフセットに相当する部分の情報と照らし合わせて判定し、
（３）さらに、上記の光バッファ制御器は、当該遅延線に出力可能な入力されたパケットのうち最も優先度の高いものを当該遅延線に出力するものとし、
（４）また、上記の光バッファ制御器は、上記の判定の結果に応じてＦＩＦＯの当該途中の情報を更新し、当該パケットを当該遅延線に振り分ける入力端側切換器の制御信号を発生し、
（５）当該パケットがやがて出力端側切換器に到達する時点で、ＦＩＦＯの出力に記録された遅延線情報により、出力端側切換器を制御するものである。
【００２０】
また、本発明の光パケットバッファ装置では、
出力可能性の判定を遅延線の短い順に行い、ＫをＭ＋Ｉｏが占めるＴＬの周期の最大数としたとき、ＤiとＤi+1の差が（Ｋ＋１）×ＴＬ以上であれば、ｉ番目以前と（ｉ＋１）番目以降の出力可能性の確認を別のパイプラインステージで行う、という周期ＴＬのパイプライン処理を用いる。
【００２１】
また、本発明の光パケットバッファ装置では、
ＤiとＤi+1の差が（Ｋ＋１）×ＴＬ未満となる場合はＤi+1とＤi+2の差が（Ｋ＋１）×ＴＬ以上となる遅延量の遅延線を用いる。
【００２２】
また、上記の光パケットバッファ装置においては、遅延線の遅延量は、ＤiとＤi+1との差が（Ｋ＋１）×ＴＬ以上であるものとする。
【００２３】
また、本発明の光パケットバッファ装置は、遅延素子の遅延特性の変動の影響を補正するものであり、光遅延素子で遅延される光パケット信号の実際の遅延を測定する遅延時間測定検出部と、ＦＩＦＯ長調整部と、遅延時間測定用パケット発生部とをさらに備え、ＦＩＦＯ長調整部は、出力端側切換器を制御する管理テーブルの長さを遅延線の実際の遅延量に応じて調整するものである。
【００２４】
共通バッファ方式の光パケットバッファ装置の制御も、同様に行える。このとき、共通バッファ方式のバッファには  複数の出力端があるため、個別バッファ方式の場合の装置構成と異なり、
それぞれの出力端について上記の光遅延素子との接続を電気的に切り換える出力端側切換器と、それぞれの出力端について出力される光パケットの出力順に、光遅延素子識別符号が時系列に従って記され予め決められた時間単位ＴＨで管理される複数のセルからなる管理テーブルを備え、
パケット情報は、当該パケットから読み取った情報、あるいはそれをもとに経路表検索等を行った結果を元に、該パケットがどの出力端に出力されるべきかの情報を備える、必要がある。マルチキャストを行う場合、一つのパケットについて出力端は複数になる。
また、ある入力パケットをある遅延素子に出力可能かどうかの判定では、該入力パケットの出力されるべき出力端に対応する上記の管理テーブルの、当該光遅延素子の遅延時間に当該光遅延素子のオフセット分である所定の時間を加えた時間に該当する位置に該入力パケット分の連続した空セルを見出し、
それ以外の出力端に対応する管理テーブルの該時間に該当する部分に該遅延素子が使用されてないことを確認する必要がある。
【発明を実施するための最良の形態】
【００２５】
以下に、この発明の実施の形態を図面に基づいて詳細に説明する。以下の説明においては、同じ機能あるいは類似の機能をもった装置に、特別な理由がない場合には、同じ符号を用いるものとする。
【００２６】
まず、本発明の光パケットバッファ装置の概略を図１と図２のブロック図に示す。
【００２７】
図１では、光パケットを入力する入力端１１と、光パケットを出力する出力端１６と、光パケットに付加されたパケット情報を読み取る読取器１７、あるいは、光パケットを測定してパケット情報を取得する光パケット検出器１８と、異なる遅延時間の短い順に順序付けされ光遅延素子識別符号の付された複数（Ｂ）の光遅延素子１４と、上記の複数の入力端と上記の光遅延素子との接続を電気的に切り換える入力端側切換器１３と、上記の出力端と上記の光遅延素子との接続する合流器１５と、入力端側切換器と出力端側切換器とを電気的に制御する光バッファ制御器１９ａと、を備えるものである。光遅延素子１２は、電気的な処理の時間、光パケットを遅延させて整合させるためのものである。
【００２８】
また、図２では、上記の合流器は、上記の出力端と上記の光遅延素子との接続を電気的に切り換える出力端側切換器２０であって、これは光バッファ制御器１９ｂで制御される。
【００２９】
ここで、以下では、光ルータの入出力ポート数をＰ、光スイッチ等を制御する高速回路のクロック周期をＴH、ｍとＭは自然数で最小パケット到着間隔（最小パケット長と最小パケット間隔の和）がｍＴH以上（ｍ＋１）ＴH未満、最大パケット長と最小パケット間隔の和がＭＴH以下（Ｍ−１）ＴHより以上となるものとし、光バッファの光ファイバ遅延線の本数をＮ、各光ファイバ遅延線の遅延量をＤｉＴH（１≦ｉ≦Ｎ）とし、Ｄｉはｉに対し単調に増加するものとする。
【００３０】
また、具体的な数値例としては、まず、１０Ｇｂｐｓ×１００波長を使用しヘッダに３波長を使用するものとすると、４８ビットのヘッダを３波長で１６ビットずつエンコードし各波長でスタートビット等に４ビット使用したとして、最小パケット長は２ｎｓになり、インターネットで一般的な最大パケット長１５００Ｂをそのまま使用すると最大パケット長は１２ｎｓとなる。最小パケット間隔は、光スイッチの切り替え時間に、制御タイミングの誤差、光ファイバ遅延線の遅延量の誤差、伝送中の分散による波長間の時間のずれ等を加味したもので、小さいほど実効速度が上昇するので、平均パケット長程度以下にすべきである。現在のインターネット幹線の平均パケット長は５００Ｂ  、４ｎｓ程度であり、分散による群遅延差を１ｎｓとしその他の誤差を加味して、最小パケット間隔は例えば３ｎｓ程度とする。制御タイミングの誤差は制御クロックＴH以上になるため、ＴHは最小パケット間隔より十分小さくする必要があり、例えば０．５ｎｓとする。
【００３１】
上述のように、ＴHは極力小さくする必要があり、例えば０．５ｎｓとなるが、全回路をこのクロックで駆動する必要はない。最小パケット長と最小パケット間隔の和である最小パケット到着間隔以下の時間間隔では、各入力ポートにはたかだか１個のパケットしか到着せず、出力ポートにもたかだか１個のパケットしか出力されない。そこで、バッファ制御回路は、実装を容易にするため、最小パケット間隔かそれを少し下回る程度の周期ＴL（＝ｌＴH、ｌ≦ｍＴH、ｌは整数とする）のクロックで駆動すればよい。上記の数値例では、ＴLは５ｎｓとできる。
【００３２】
光ルータ・スイッチの各入力ポートではＴLの各クロック周期で、たかだか一個の新規パケットが到着するが、パケットが到着した場合、そのパケットがＴLの周期の先頭からＴHで数えてどのタイミングで入力され、ＴHで数えてどれだけの長さ続き、どの出力ポートへ出力するか、をヘッダ情報や実測等により調べる。ＴLの各周期でのパケットの情報は、ＴH単位のｌビットでパケットデータの存否を表すこともできるし、ＴLの周期のＴHで数えてのパケットの始まるタイミング（ｌｏｇ2ｌビットの情報）とＴHで数えてのパケットの長さ（ｌｏｇ2Ｍビットの情報）で表現してもよい。ここでは、前者の場合をデコード表現、後者の場合をエンコード表現と呼ぶ。
【００３３】
バッファ制御のためには、新たに入力されたパケットを、遅延線内の既存のパケットが出力される時点で最小パケット間隔を加味して出力の衝突がないよう、適切な遅延線に入力する必要があり、パケットの衝突の検出が重要である。デコード表現の場合、パケットの重なりは各タイミングでの排他的論理和で検出できるが、パケットは一般に複数のＴLの周期にまたがるため、パケット最大長を考慮して複数のＴLの周期での確認が必要である。エンコード表現の場合、パケットの重なりはパケットの始まるタイミングと終わるタイミング（始まるタイミング＋長さ）を比較することで行えるが、やはり複数のＴLの周期での確認が必要である。この周期の数をKとする。Kはｌと最大パケット長により決まり、Ｋ＝ｆｌｏｏｒ（（Ｍ−２）／ｌ）＋２となる。パケットに優先度が付加されている場合等には、パケットの表現にもその情報を付加する。
【実施例１】
【００３４】
図３は、図１の光パケットバッファ装置の光バッファ制御器１９ａの構成を示すブロック図である。また、図４は、図２の光バッファ制御器１９ｂの構成を示すブロック図である。その相違点は、最短遅延線用の機能ブロックのセル内容を図３では棄却し、図４では、出力する点にある。
【００３５】
上記の光バッファ制御器１９ａは、複数の機能ブロックが接続されたものであり、それぞれの機能ブロックには、ＲＡＭとポインタの組み合わせやシフトレジスタにより構成されたＦＩＦＯ１と、作業用のＦＩＦＯ２と、パケット送出可能判定器３（図中３ａ、３ｂ、３ｃと示す）とパケット優先度制御器４を備えるものである。それぞれの機能ブロックのＦＩＦＯ１と作業用のＦＩＦＯ２の直列接続は、以下で述べる管理テーブル５を形成する。各機能ブロックのＦＩＦＯ１と作業用のＦＩＦＯ２が、管理テーブルのそれぞれのセルに対応する。つまり、この管理テーブル５では、出力端から出力される光パケットの出力順に、出力する光パケットの有無を示す出力情報が時系列に従って記され予め決められた時間単位ＴＨで管理される複数のセルを構成要素とする。
【００３６】
また、この管理テーブル５は、パケット情報処理器６で管理される。パケット情報処理器６は、各機能ブロックのパケット送出可能判定器３とパケット優先度制御器４を単位として直列に接続したものである。このパケット情報処理器６での管理は、以下のように行う。
【００３７】
まず、図３の場合の制御は、以下のように行う。
（１）上記のテーブルに記されたそれぞれの出力情報は、時間の経過とともに遅延時間が減少する方向に順送りされ、
（２）上記の時間単位ＴＨの整数倍であり、かつ入力光パケットの最小パケット長と最小パケット間隔との和以下である予め決められた周期ＴＬで、それぞれの入力端からの新たな入力パケットの有無を確認し、
（３）入力された光パケットについて、上記の各光遅延素子の短い順に、
（４）上記の管理テーブルの、当該光遅延素子の遅延時間に当該光遅延素子のオフセット分である所定の時間を加えた時間に該当する位置に該入力パケット分の連続した空セルを見出し、
（５）空セルが見出された光パケットが複数ある場合には、最も優先度の高い光パケットを選択し、上記の空セルの位置から、上記の入力パケットが占有するセル位置に、出力情報を記し、
（６）入力パケットのあった入力端と該光遅延素子番号とを上記の所定の時間後に、上記の入力端側切換器を用いて接続し入力された光パケット用に空セルを見出せずに残っていれば次の光遅延素子について（３）以降を繰り返し、次の光遅延素子がなければ、空セルを見出せずに残った光パケットは出力できないものとして棄却する。
【００３８】
また、図４の場合の制御は、以下のように行う。
（１）上記のテーブルに記されたそれぞれの光遅延素子識別符号は、時間の経過とともに遅延時間が減少する方向に順送りされ、
（２）上記の出力端側切換器を用いて上記の管理テーブルから排出される光遅延素子識別符号の光遅延素子と出力端とを接続し、
（３）各入力端での入力光パケットの最小パケット長と最小パケット間隔との和や出力端での光パケットの最小パケット長と最小パケット間隔との和以下である予め決められた周期ＴＬで、それぞれの入力端からの新たな入力パケットの有無を確認し、
（４）入力された光パケットについて、上記の各光遅延素子の短い順に、
（５）上記の管理テーブルの、当該光遅延素子の遅延時間に当該光遅延素子のオフセット分である所定の時間を加えた時間に該当する位置に該入力パケット分の連続した空セルを見出し、
（６）空セルが見出された光パケットが複数ある場合には、最も優先度の高い光パケットを選択し、上記の空セルの位置から、上記の入力パケットが占有するセル位置に、該光遅延素子番号を記し、
（７）入力パケットのあった入力端と該光遅延素子番号とを上記の所定の時間後に、上記の入力端側切換器を用いて接続し、
（８）入力された光パケット用に空セルを見出せずに残っていれば次の光遅延素子について（４）以降を繰り返し、次の光遅延素子がなければ、空セルを見出せずに残った光パケットは出力できないものとして棄却する。
【００３９】
より限定的に言えば、次のように成る。
入力端は、Ｐ個の入力端のそれぞれに光パケットが非同期到着する入力端で、上記の光パケット長はそれぞれ可変長で、ｉ番目（１≦ｉ≦Ｐ）の入力端の光パケットについて、その最小パケット長をｍiとし、最大パケット長をＭｉとし、また、最小パケット間隔をＩiとし、光パケットの入力の無い入力端については、上記のそれぞれの定義は行なわないとする。
上記の入力端のいずれかに到着した光パケット列を、光パケットのまま、１つの出力に、到着した光パケットの内の最小パケット間隔Ｉｏで出力する装置であって、  
１≦ｉ≦Ｐでのｍｉの最小値をｍ、Ｍiの最大値をＭ、ＩiやＩｏの最小値をＩとし、１≦ｉ≦Ｐそれぞれのパケットのピッチ（ｍi＋Ｉi）とピッチ（ｍ＋Ｉｏ）との最小値をｍｉｎｍＩとする。
このとき、上記の読取器は、周期ＴＬをｍｉｎｍＩより短いクロック信号とするとき、周期ＴＬ内の位置をＴＬの整数分の１の周期ＴＨを単位とする精度で読み取るものであって、それぞれの入力端の可変長光パケットの光パケット長を読みとる光パケット長読取手段と、光パケットの始点の位置を読みとる光パケット位置読取手段と、を備え、
上記の複数の異なった遅延時間を短い順にＤj（１≦ｊ≦Ｂ）とするとき、上記の管理テーブルは、周期ＴＬで、上記の遅延手段の使用状況と出力予定を管理するＦＩＦＯであって、さらに、上記のＦＩＦＯは、最大の遅延量ＤBに出力端での最大パケット長と最小パケット間隔を加えた時までの周期ＴＨ刻みの各時点で各遅延線の出力の有無を管理するものである。また、
（１）入力された光パケットに付加されたパケット情報を読み取って電気信号にするか、光パケットを計測してパケット情報を取得し、
（２）上記の光バッファ制御器は、各入力から新たに入力されたパケットを、各遅延線について順次、当該遅延線に振り分けた場合、出力の時点で他の遅延線から出力されるパケットとＩｏ以上の間隔を保てるかという出力可能性を、上記のＦＩＦＯの途中の当該遅延線の遅延量とオフセットに相当する部分の情報と照らし合わせて判定し、
（３）さらに、上記の光バッファ制御器は、当該遅延線に出力可能な入力されたパケットのうち最も優先度の高いものを当該遅延線に出力するものとし、
（４）また、上記の光バッファ制御器は、上記の判定の結果に応じてＦＩＦＯの当該途中の情報を更新し、当該パケットを当該遅延線に振り分ける入力端側切換器の制御信号を発生し、
（５）当該パケットがやがて出力端側切換器に到達する時点で、ＦＩＦＯの出力に記録された遅延線情報により、出力端側切換器を制御する。
【００４０】
上記の管理例を図８、９、１０に示す。始めに図８の状態であったとするとき、つぎの周期ＴＬである図９のように新たな光パケットが入力した時には、遅延線１の担当できるセル領域はふさがっているが２の担当できるセル領域が空いているので、管理テーブルには、その位置に２が記入される。さらにつぎの周期ＴＬである図１０のように新たな光パケットが２つ入力した時には、どちらのパケットにとっても遅延線３の担当できるセル領域が空いているので、優先度の低い方が棄却され、優先度の高い光パケットが残され、管理テーブルには、その位置に３が記入される。
【実施例２】
【００４１】
図５と６に、ＴLのパイプライン周期を持つ光バッファ制御器を示す。図５は、パイプライン処理を行う場合の図１の光バッファ制御器１９ａの構成を示すブロック図である。また、図４は、パイプライン処理を行う場合の図２の光バッファ制御器１９ｂの構成を示すブロック図である。その相違点は、最短遅延線用の機能ブロックのセル内容を図５では棄却し、図６では、出力する点にある。入力されたパケットの情報はパイプラインの左から右に流れ、遅延線の使用状況はパイプラインの右から左に流れる。
【００４２】
また、図１１から図１５に、パイプライン処理を行う場合の管理テーブルの管理例を示す。まず図１１の状態であったとして、次の周期ＴＬの後に、光パケット情報は右から左へ流れるが、図１２の場合は、空きが見つからず、さらに次の周期ＴＬの後に、図１３の様に、優先度の高いＢ２が遅延素子１に向けに予約され、さらに次の周期ＴＬの後に、図１４の様に、Ａ２とＡ１用に、それぞれ遅延素子２と３が予約される。また、図１５に示すように、光パケット情報が順送りで、押し出される際に、記録された遅延素子情報で入力端切換器により入力端側とそれぞれの遅延素子とを接続する。
【００４３】
上記の光バッファ制御器は、用いる光遅延素子数（Ｂ）と同数の機能ブロックを備え、遅延時間の短い光遅延素子から順に光遅延素子に自然数の序数を与えるとき、隣り合う序数の光遅延素子間の遅延時間差は、最大パケット長と最小パケット間隔と周期ＴＬとの和以上であって、それぞれの機能ブロックは、作業用ＦＩＦＯと、該作業用ＦＩＦＯの作業結果を保存するＦＩＦＯと、それぞれの光遅延素子にパケットを送出することが可能かどうかを判定し該光遅延素子と同じ序数を有するパケット送出可能判定器と、を備えるものであり、ＦＩＦＯと作業用ＦＩＦＯの接続をさらに機能ブロック間での接続で上記の管理テーブルを構成し、
周期ＴＬで、
ＦＩＦＯは、前段の機能ブロックの作業用ＦＩＦＯに保持情報を引き渡し、ｎ番目（１≦ｎ≦Ｎ）のパケット送出可能判定器は、ＴＬの遅延時間を与えた後に、次段の機能ブロックのｎ番目のパケット送出可能判器に判定するパケット情報を引き渡し、
パケット送出可能判定器は、上記の管理テーブルに該入力からの入力パケット分の連続した空セルがあるかどうかを判定し、１）無い場合もしくは、他の入力からのパケットが送出可能で当該パケットより優先度の高い場合は入力パケット情報を次段の機能ブロックのパケット送出可能判定器に送り、２）ある場合には、上記の空セルの位置から、入力パケットが占有するセル位置に、当該機能ブロックに対応する光遅延素子識別符号を記し、パケット送出可能判定器が引き渡すパケット情報から当該パケットを出力する旨記載した情報を削除して、次段の機能ブロックのパケット送出可能判定器に送り、
各機能ブロックでの処理を同時に、かつ周期ＴＬでパイプライン処理を行なう。
【００４４】
入力ポート制御回路はパケットのタイミングと長さの情報を対応する出力ポートのバッファ制御回路に送る。バッファ制御回路は各入力ポートからの情報を元に、現在の各遅延線上の空き情報をＦＩＦＯによりＴH単位で管理しつつ、各パケットを受け入れ可能な遅延線を探し、対応するＰ：１のマルチプレクサを制御してその遅延線に導く。また、出力すべきパケットが遅延線の出口に到着する前後にＮ：１のマルチプレクサを制御して、出力ポートに導く。
【００４５】
遅延線の空き情報の管理はＴHでの周期単位でデコード表現と同様にＦＩＦＯで行える。ＦＩＦＯは、ＴHで駆動されるシフトレジスタで管理した場合、遅延量をＴHで割っただけの段数が必要なので、ある程度のワード幅のＲＡＭとＲＡＭの入出力ポインタを用いるのが、ワード幅だけ低速で済むこともあり現実的であろう。そのままではＦＩＦＯの遅延量はＴH×（ＲＡＭのワード幅）単位になるが、ＲＡＭの入力か出力にＲＡＭのワード幅に応じたバッファとシフト回路を置くことで、ＦＩＦＯの遅延量をビット単位で制御できる。シフト量をビット単位で可変にすれば、ＦＩＦＯの遅延量は、ＲＡＭの容量内ならビット単位で自由に動的に増減できる。
【００４６】
ＦＩＦＯの出力は、バッファ制御回路ではＴL単位で使用される。各タイミングでの空き情報は各遅延線につきＴHごとに１ビットで管理できるが、さらに、出力の時点で塞がっている遅延線はたかだか１本であることを考慮すると、ｌｏｇ2（Ｎ＋１）ビット幅のＦＩＦＯを遅延線の数だけ直列接続すれば全遅延線の使用状況は把握できる。
【００４７】
遅延線の空き情報の管理は、ＴLの各周期で、エンコード表現と同様に、パケットの始まるタイミングと長さを（ｌｏｇ2ｌ＋ｌｏｇ2Ｍ）ビットのＦＩＦＯを使用して管理することもできる。この場合さらに、パケットごとにどの遅延線を使用しているかのｌｏｇ2（Ｎ＋１）ビットの情報が必要となる。
【００４８】
図５と６で、機能ブロックは各遅延線に対応し、入力ポートからのパケットが対応する遅延線に出力可能かどうか判定する。機能ブロックは最短遅延線に対応するブロックを左端に、遅延線の長さの順に並んでいるものとする。
【００４９】
機能ブロックの中で、ＦＩＦＯ部は、遅延線内に含まれるパケットの情報をＴH単位で保持し、その情報はＴLの単位で右から左へずれてゆく。図６で、最終段のＦＩＦＯ部の出力は、図１の出力ポート側のＮ：１マルチプレクサを制御し、出力すべき遅延線を選択させる。
【００５０】
作業用ＦＩＦＯ部は、パケット送出可能判定で見る必要のあるＫ段のＦＩＦＯの機能を持ち、Ｋ×ＴLの間の遅延線の状態を保持する。
【００５１】
パケット送出可能判定部は、左側から入力されるパケットと作業用ＦＩＦＯ部の情報を比較し、まずそのパケットを遅延線に入力可能か判断する。入力可能であった場合は、パケット優先度制御部で他の入力ポートからの入力可能なパケットと優先付けをし、最も優先度の高いパケットだけを機能ブロックに対応する遅延線に出力するようにする。
【００５２】
その後、選択されたパケットが出力されるとして、作業用ＦＩＦＯ部の状態を更新する。作業用ＦＩＦＯ部は、最も古い遅延線の状態をＦＩＦＯに渡し、次の状態を前段のＦＩＦＯから受け取る。遅延線をエンコード表現に準じた形式で表現している場合、長いパケットの情報を次段に送った後もパケットの後ろの部分が残っていることを状態として残す必要がある。パケット列も前段から受け取り次段に渡すが、次段に渡す場合、パケットが出力できる場合には、パケットは空とし、かわりにそのパケットに使用すべき遅延線の番号を次段に渡す。最終段からのパケット列が空でなければそのパケットはどの遅延線も使用できずバッファあふれにより落とされるパケットである。またパケット列が空で遅延線の番号が入っていた場合、その情報に従い入力ポート側Ｐ：１マルチプレクサ制御を制御する。この信号にはパケットが入力されてからＮ×ＴLの遅れがあるが、その間パケットは遅延線で遅らせておく。
【００５３】
パケット優先度制御部は、各入力ポートからのパケットのどれを優先して出力するかを決めるもので、例えば公平に行う場合にはラウンドロビン等で、パケットが優先度情報等を持っている場合にはそれも考慮に入れて、決定する。
【００５４】
機能ブロック間のＦＩＦＯ部の遅延は、対応する遅延線の遅延量の差から、作業用ＦＩＦＯの遅延にパケット送出可能判定部の遅延の和である（Ｋ＋１）×ＴLを減じたものとなる。ｉ番目とｉ＋１番目の遅延素子の遅延時間ＤiとＤi+1の差が（Ｋ＋１）×ＴLと等しい遅延の場合はＦＩＦＯ部の遅延は０となり、ｉ番目とｉ＋１番目の作業用ＦＩＦＯが直結されることを意味する。ｉ番目とｉ＋１番目の遅延素子の遅延時間ＤiとＤi+1の差が（Ｋ＋１）×ＴLより小さい場合は、ＦＩＦＯ部の遅延は負となり実現できないが、この意味するところは、あるＴLの期間にｉ番目の遅延線にどうパケットが送出されたかにより変化した遅延線の状態が、同じ期間にｉ＋１番目の遅延線にどのパケットが出力できるかに影響するので、同一のパイプライン周期にｉ番目とｉ＋１番目の遅延線の計算を直列に行わなければいけなくなるということであり、パイプラインクロック速度によっては動作が間に合わなくなる。ＤiとＤi+1の差とＤi+1とＤi+2の差がどちらも（Ｋ＋１）×ＴLより小さい場合などはさらに多段の直列計算が必要になる。
【００５５】
そこで、このように遅延が近接した遅延線は極力もたないようにすることで、高速な制御が可能となる。
【００５６】
なお、光ファイバ遅延線の遅延量は温度等によりゆるやかに変化するが、最小パケット間隔のマージンにＴH以上の余裕があれば、光ファイバ遅延線や光バッファの出力等をモニタして入力されたパケットや測定用のパケットの実際の遅延を計測し、それにあわせてＦＩＦＯの遅延量を増減することで、これに対応することができる。
【００５７】
図５と６の回路は、容易に2次元配置可能だが、作業用ＦＩＦＯ部やパケット優先度制御部とP個のパケット送出可能判定部との間の通信にロジック段数のオーダーにしてlog2P、距離のオーダーにして2次元配置を工夫してもsqrt(Ｐ)程度の遅延が発生するので、Pが極めて大きい場合にはパイプラインクロックが遅くなりすぎる可能性がある。
【００５８】
図７にパイプライン処理のフローチャートを示す。ここで、
Ｃ１：パイプライン周期（最小パケット間隔以下）ごとに以下を繰り返し
については、繰り返し行うものであり、
Ｃ２：各遅延線について並列に
Ｃ３：各入力について並列に
Ｃ４：各入力について並列に
Ｃ５：各入力について並列に
Ｃ６：各入力について並列に
については、同時に並列に行うものであり、
Ｓ１：パケットがあればパケットと作業用ＦＩＦＯとの重なりチェック
Ｓ２：作業用ＦＩＦＯと重なりのないパケットで最も優先度の高いものを選択
Ｓ３：選択されたパケット情報と遅延線情報を作業用ＦＩＦＯに出力
Ｓ４：選択されたパケット情報を空にし現遅延線情報の入力ポート制御に書き換え
については、入力した光パケットの入力と、優先処理である。
また、
Ｐ１：入力されたパケットのパケット情報の取得
Ｐ２：中継
Ｐ３：パケット情報の更新（左から右に）
Ｐ４：中継
Ｐ５：パケット情報により選択された遅延線の入力ポートを制御
は、パケット情報の処理であり、
Ｂ１：遅延線空情報の送出
Ｂ２：中継
Ｂ３：作業用ＦＩＦＯの更新（右から左に）
Ｂ４：ＦＩＦＯの更新（右から左に）
Ｂ５：中継
Ｂ６：光バッファ出力部で選択された遅延線を出力
は、管理テーブルの処理である。
【００５９】
図６の回路のシミュレータを、ＶＨＤＬ風のＣ言語で実装し、動作を確認した。１節の数値例をもとに、平均パケット長を最小パケット長と最大パケット長間の一様分布とし、入力パケット間隔を指数分布とし、ラウンドロビンスケジュールされる８入力で負荷率７５％の場合の、等差級数的遅延線（交差は最大パケット長＋最小パケット間隔とその３倍）と等比級数的遅延線（公差は１．５（ただし、最小遅延差は最大パケット長＋最小パケット間隔）と２）とした場合の遅延線数とパケット落ち確率のグラフを図２０に示した。
【実施例３】
【００６０】
共通バッファ方式の実施例として、図２１のブロック図の光パケットバッファ装置を図６のブロック図の光バッファ制御装置で制御した例を示す。また、図２２に複数の出力端をもった光パケットバッファ装置を用いた光ルータを示す。図６で、光パケット情報は当該パケットを出力すべき１つもしくは複数の出力端の情報を含み、ＦＩＦＯ１と作業用ＦＩＦＯ２は全出力端に対応する情報を持ち、パケット送出可能判定器３は各パケットを出力すべき出力端の該パケットが占める部分のセルに空きがあることと、その他の遅延線の同じ部分のセルで機能ブロックに対応する遅延素子が使われてないことを確認する。管理テーブルの管理の様子は、周期ＴＬごとの動作を図２３から図３２までに順次示す。タイミングは基本的には出力端が一個の場合と同じであるが、図２６では、出力端Ａ向けのパケットＢ２Ａが出力端Ｂへの遅延線３のパケットと重なるにもかかわらず遅延線１に振り分けられており、同様に出力端Ｂ向けのＢ１Ｂが出力端Ａ向けの遅延線３のパケットと重なるにもかかわらず遅延線２に振り分けられている。図２７では、Ａ、Ｂ両出力へのマルチキャストパケットＡ３Ｍが、Ａ、Ｂ両出力向けに遅延線２に振り分けられている。図２８では遅延線２からのマルチキャストパケットがＡ、Ｂ両出力端に出力されている。図２９の、Ａ、Ｂ両出力へのマルチキャストパケットＢ３Ｍは、図３０で出力端Ｂ向けに遅延線２に振り分けられるが出力端Ａ向けでは遅延線３と衝突するため、パケット情報は該パケットが出力端Ｂ向けに遅延線２に振り分けられるべきとの情報（Ｌ２）と、該パケットが出力端Ａ向けに出力されるべきとの情報（Ｂ３Ａ）とされ、図３１に引き継がれ、図３２で、該パケットは出力端Ａにも出力されるべく遅延線３に振り分けられ、該パケットを遅延線２と３に振り分けるべきとの指令（Ｌ２３）となる。
【産業上の利用可能性】
【００６１】
一般に遅延素子の遅延特性は、気温などの使用条件により、変動することが知られている。このような変動があった場合、光パケットの端の部分で他のパケットとの衝突や、入力側あるいは出力側の切換器との不整合が生じる場合がある。
【００６２】
これを防ぐためには、光パケット間隔にマージンを設けて制御することが求められる。このような目的で用いる光パケットバッファ装置として、図１６に示す装置を用いることができる。この装置では、入力あるいは遅延時間測定用パケット発生器２３で発生されたパケットと、合流器あるいは出力側切換器から出力される光パケットの遅延を遅延時間測定部２１で検出し、この遅延時間を図１７に示すように、ＦＩＦＯ長調整部２２で機能ブロック用に変換した後、ＦＩＦＯ長の調整に用いることで上記のマージンとすることができる。
【００６３】
例えば、図１８に示すように、遅延線の実際の遅延と管理テーブルで期待する遅延とのずれが生じる場合には、図１９に示すように、遅延線に対応する作業用ＦＩＦＯの位置を前後のＦＩＦＯの長さを調節してずらし、前後のＦＩＦＯに空きが生じる場合にはずれが無いように前後のセルの内容をコピーし、余ったセルは捨ててよい。
【図面の簡単な説明】
【００６４】
【図１】本発明の光パケットバッファ装置を示すブロック図である。
【図２】本発明の光パケットバッファ装置を示すブロック図である。
【図３】図１の光パケットバッファ装置の光バッファ制御器の構成を示すブロック図である。
【図４】図２の光パケットバッファ装置の光バッファ制御器の構成を示すブロック図である。
【図５】ＴLのパイプライン周期を持つ光バッファ制御器を示すブロック図である。
【図６】ＴLのパイプライン周期を持つ光バッファ制御器を示すブロック図である。
【図７】パイプライン処理のフローチャートである。
【図８】管理テーブルの管理例を始めの状態を示すタイミング図である。
【図９】管理テーブルの管理例でＴＬ後の状態を示すタイミング図である。
【図１０】管理テーブルの管理例でさらにＴＬ後の状態を示すタイミング図である。
【図１１】パイプライン処理を行う場合の管理テーブルの管理例で始めの状態を示す模式図である。
【図１２】パイプライン処理を行う場合の管理テーブルの管理例でＴＬ後の状態を示すタイミング図である。
【図１３】パイプライン処理を行う場合の管理テーブルの管理例でさらにＴＬ後の状態を示すタイミング図である。
【図１４】パイプライン処理を行う場合の管理テーブルの管理例でさらにＴＬ後の状態を示すタイミング図である。
【図１５】パイプライン処理を行う場合の管理テーブルの管理例で、光パケット情報が順送りで、押し出される際に、記録された遅延素子情報で入力端切換器を制御すること示すタイミング図である。
【図１６】光パケット間隔にマージンを設けて制御するための光パケットバッファ装置を示すブロック図である。
【図１７】合流器あるいは出力側切換器から出力される光パケットと、周期ＴＬに連動したクロックとのずれをＦＩＦＯ長の調整に用いる際の信号線を示すブロック図である。
【図１８】図１６に示す光パケットバッファ装置の管理例を示すタイミング図である。
【図１９】図１６に示す光パケットバッファ装置の管理例を示すタイミング図である。
【図２０】遅延線数とパケット落ち確率のシミュレーション結果を示す図である。
【図２１】図２で出力端を複数にした本発明の光パケットバッファ装置を示すブロック図である。
【図２２】複数の出力端をもった光パケットバッファ装置を用いた光ルータを示すブロック図である。
【図２３】複数の出力端をもった光パケットバッファ装置の最初の状態の例のタイミング図である。
【図２４】複数の出力端をもった光パケットバッファ装置の図２３の次のＴＬの周期の最初の状態の例のタイミング図である。
【図２５】複数の出力端をもった光パケットバッファ装置の衝突判定の後パケットを出力し、ＦＩＦＯを更新する例のタイミング図である。
【図２６】複数の出力端をもった光パケットバッファ装置の図２５の次のＴＬの周期の最初の状態の例のタイミング図である。
【図２７】複数の出力端をもった光パケットバッファ装置の衝突判定の後パケットを出力し、ＦＩＦＯを更新する例のタイミング図である。
【図２８】複数の出力端をもった光パケットバッファ装置の図２６の次のＴＬの周期の最初の状態の例のタイミング図である。
【図２９】複数の出力端をもった光パケットバッファ装置の図２８の次のＴＬの周期の最初の状態の例のタイミング図である。
【図３０】複数の出力端をもった光パケットバッファ装置の衝突判定の後パケットを出力し、ＦＩＦＯを更新する例のタイミング図である。
【図３１】複数の出力端をもった光パケットバッファ装置の図２９の次のＴＬの周期の最初の状態の例のタイミング図である。
【図３２】複数の出力端をもった光パケットバッファ装置の衝突判定の後パケットを出力し、ＦＩＦＯを更新する例のタイミング図である。
【符号の説明】
【００６５】
１  ＦＩＦＯ
２  作業用のＦＩＦＯ
３  パケット送出可能判定器
４  パケット優先度制御器
５  管理テーブル
６  パケット情報処理器
７  パケット情報用パイプラインレジスタ
１０  クロック供給部
１１  入力端
１２  光遅延素子
１３  入力端側切換器
１４  光遅延素子
１５  合流器
１６  出力端
１７  読取器
１８  光パケット検出器
１９ａ、１９ｂ  光バッファ制御器
２０  出力端側切換器
２１  遅延時間測定部
２２  ＦＩＦＯ長調整部
２３  遅延時間測定用パケット発生部
【図１】
2008211530.tif 000003
【図２】
2008211530.tif 000004
【図３】
2008211530.tif 000005
【図４】
2008211530.tif 000006
【図５】
2008211530.tif 000007
【図６】
2008211530.tif 000008
【図７】
2008211530.tif 000009
【図８】
2008211530.tif 000010
【図９】
2008211530.tif 000011
【図１０】
2008211530.tif 000012
【図１１】
2008211530.tif 000013
【図１２】
2008211530.tif 000014
【図１３】
2008211530.tif 000015
【図１４】
2008211530.tif 000016
【図１５】
2008211530.tif 000017
【図１６】
2008211530.tif 000018
【図１７】
2008211530.tif 000019
【図１８】
2008211530.tif 000020
【図１９】
2008211530.tif 000021
【図２０】
2008211530.tif 000022
【図２１】
2008211530.tif 000023
【図２２】
2008211530.tif 000024
【図２３】
2008211530.tif 000025
【図２４】
2008211530.tif 000026
【図２５】
2008211530.tif 000027
【図２６】
2008211530.tif 000028
【図２７】
2008211530.tif 000029
【図２８】
2008211530.tif 000030
【図２９】
2008211530.tif 000031
【図３０】
2008211530.tif 000032
【図３１】
2008211530.tif 000033
【図３２】
2008211530.tif 000034