JP2005033661A - 光パケットのバッファリング装置とそのバッファリング方法 - Google Patents

光パケットのバッファリング装置とそのバッファリング方法 Download PDF

Info

Publication number
JP2005033661A
JP2005033661A JP2003272621A JP2003272621A JP2005033661A JP 2005033661 A JP2005033661 A JP 2005033661A JP 2003272621 A JP2003272621 A JP 2003272621A JP 2003272621 A JP2003272621 A JP 2003272621A JP 2005033661 A JP2005033661 A JP 2005033661A
Authority
JP
Japan
Prior art keywords
optical
optical packet
register
length
output
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.)
Granted
Application number
JP2003272621A
Other languages
English (en)
Other versions
JP3757286B2 (ja
Inventor
Hiroaki Harai
洋明 原井
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.)
National Institute of Information and Communications Technology
Original Assignee
National Institute of Information and Communications Technology
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 National Institute of Information and Communications Technology filed Critical National Institute of Information and Communications Technology
Priority to JP2003272621A priority Critical patent/JP3757286B2/ja
Priority to US10/886,645 priority patent/US7693421B2/en
Publication of JP2005033661A publication Critical patent/JP2005033661A/ja
Application granted granted Critical
Publication of JP3757286B2 publication Critical patent/JP3757286B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/0001Selecting arrangements for multiplex systems using optical switching
    • H04Q11/0005Switch and router aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/0001Selecting arrangements for multiplex systems using optical switching
    • H04Q11/0005Switch and router aspects
    • H04Q2011/0007Construction
    • H04Q2011/002Construction using optical delay lines or optical buffers or optical recirculation

Abstract

【課題】 単位時間当たりに処理するパケット数を多くすることができる光パケットのバッファリング装置とそのバッファリング方法を提供する。
【解決手段】 複数の光路で伝送された非同期到着する可変長パケットを入力し、少数の光路に出力する装置で、出力用の光路において光パケット信号が重ならないようにするために、遅延素子の遅延値と読み取られた光パケット長と光パケット前置期間とを用いて、演算によって一時的に保管する遅延素子を決める制御装置において、図13のように複数の演算器を多段に配置して、遅延時間の決定に必要な処理を、プリフィクスサムオペレーションを並列パイプライン化した演算結果とバッファリング装置のキュー長と光パケット長と光パケット前置期間とを用いて並列処理で行う構成とする。
【選択図】 図13

Description

この発明は、バッファ容量やその保持時間に限りがある光回路を用いて、複数の光パケットを1つの光路に重ならないように導くための光パケットのバッファリング装置とそのバッファリング方法に関している。
多量の情報を効率的に伝送できる光通信技術の進展に伴ない、さらに高いスループットを実現するために、伝送路だけでなく光パケット交換にも光技術が導入されつつある。一般に、光パケット交換では、光パケット転送処理が行われ、これには、光パケットスイッチが用いられる。このための光パケットスイッチの機能は、(1)宛先検索、(2)交換、(3)バッファ管理、(4)バッファリング、(5)経路制御、の5つに大きく分類できる。一般には、上記の(2)あるいは(4)の機能を光化した光パケットスイッチが光パケットスイッチと呼ばれる。これは、光スイッチと光バッファで構成されて、データを光信号のまま転送することにより、広帯域特性をもつ。
また、上記の(3)バッファ管理を改善することにより、光パケットスイッチの転送能力をさらに改善することができる。従来、この(3)バッファ管理には、電子回路による論理回路を用いてきた。これは、実用レベルにある光論理回路がないためである。
バッファ管理の目的のひとつは、光パケットの衝突を防止することである。光パケット交換ネットワークでは、同時に光パケットが光パケットスイッチに到着した場合には、バッファに光パケットを格納して衝突を回避する。図1は、一般的に用いられるバッファの状態を表すキューを示す図である。例えば、現在のインターネットでは、図1のように、優先制御を行なわない光パケット転送が行なわれている。光パケットスイッチに到着した光パケットは、優先度に関係なく、バッファに空きがあればそれに格納される。
また、上記のバッファには、半導体メモリが使われることが多い。しかし、半導体メモリを用いない光パケットスイッチでありながら、バッファをもった光バッファ制御実装方式が、非特許文献1、あるいは、非特許文献2に報告されている。
既に知られている光バッファには、長さの異なる複数の光ファイバが用いられている。これは、遅延時間の異なる光遅延素子であり、その遅延時間の間、光パケットが蓄えられる。この光遅延線に割当てる光パケットを制御することで、光パケット同士の衝突を回避できることは知られている。この際、任意時刻での光パケット取り出しができないため、出力時の光パケットの衝突を防ぐ必要があり、このため、光バッファに入力するに当たり、何らかのバッファ管理手法を用いて遅延時間を管理する必要があった。
また、図2に、従来の光パケットスイッチアーキテクチャの例として、N入力×N出力光パケットスイッチのN個の1入力×N出力バッファレス光パケットスイッチとN個のN入力×1出力バッファからなる構成を示す。それぞれの1入力×N出力スイッチとN入力×1出力バッファは実質的に格子状に接続される。上記の1入力×N出力光パケットスイッチの性能を十分に発揮するN入力×N出力光パケットスイッチを構成するためには、同時に到着する複数の光パケットも充分に短い時間で処理することが必要であり、それゆえ、計算量の少ないバッファ管理方式の適用が重要である。
上記の光パケットスイッチは、光スイッチを用いて構成される。この用途に使用できる光スイッチとしては、図3(a)の模式図に示すような機械式の光スイッチや、図3(b)のブロック図に示すような光半導体を用いた光スイッチ、あるいは、図には示していないが、マッハツェンダー型の光スイッチなどを用いることができることが知られている。
上記の、1入力×N出力バッファレス光パケットスイッチでは、非特許文献4に記載されているように、光宛先検索機能により高速宛先検索が可能である。その結果、N入力×N出力光パケットスイッチは高ノードスループットを示す。しかし、光パケットの衝突を避け、棄却率を改善するためにはバッファが必要であり、N入力×N出力光パケットスイッチの各出力ポートにN入力×1出力バッファが接続されている。
次に、可変長光パケットを処理するバッファ管理法についてより具体的に説明する。この方法については、既によく知られている。たとえば、非特許文献3では、ラウンドロビンスケジューリングを加えた以下の方法によって管理している。
図2に示した出力バッファ型のN入力×N出力の光パケットスイッチでは、N入力×1出力の光バッファとN個の1入力×N出力のスイッチを用いる。伝送量が増加した場合、N入力×1出力の光バッファに同時に最大N光パケットが到着する可能性がある。
これらの光パケットの衝突(重ね合わせ)を防止するために、遅延線バッファを用いる。この場合、すべての光パケットをバッファに格納するには、N個の光パケットの遅延を求める処理を最小光パケット長に相当する時間lmin以内に行わねばならない。すなわち、1光パケットの処理の許容時間は、lmin/Nである。この時間を、単純なラウンドロビンに従ってバッファリングをする場合の1光パケットの処理時間と同等であるようにすると、ラウンドロビンスケジューリングによって、バッファ管理を行なうことができることを示している。
図4(a)に4入力×1出力の光バッファ構成を示す。この場合はN=4である。光遅延素子で構成された光バッファは、ファイバ遅延線を用いたB(=4)個の光遅延素子、N×(B+1)個の光スイッチ、バッファ管理装置(バッファマネージャ)より構成される。B個のファイバ遅延線{d0、d1、d2、d3}は、それぞれ、遅延線の単位長Dの倍数{0、D、2D、3D}の長さを持つ。また、バッファ管理装置からの信号により、ラウンドロビンスケジューリングは、T時間ごとに繰り返すものである。このため、バッファ管理装置は、前段の光スイッチからT時間以上前の離れた時点で光パケットの情報を受け取り、この前もって設けた時間Tの間に、この情報を使って、N個の光パケットのそれぞれに必要な遅延時間を求める。時間Tの間に、連続して到着する光パケットを処理する必要があることから、T≦lminを満たさねばならない。たとえば、図4(a)に示すように、4個の光パケットが到着し、バッファ管理装置により、光パケットA、B、Cはそれぞれ、遅延線d0、d2、d3に格納され、光パケットDは棄却されるものとする。このような制御は、バッファ管理装置が前段の光スイッチを駆動することで実現する。図4(b)に、光パケットAが遅延線d0に切替えられた直後の出力ポートから見た光パケットの位置を示す。図4(c)に示すように光パケットA、B、Cは衝突することなく出力される。この例では、光パケットBが光パケットAよりも先にバッファに到着するが、到着する光パケットはラウンドロビンで順次処理されるため、図4(c)に示した順序で出力される。
以下に、バッファ管理装置の振舞いを図5のフローチャートにしたがって具体的に述べる。その主要部のプログラムを表1に示す。
バッファ管理装置は、内部あるいは出力時の光パケット衝突を避ける処理をする。ここで、ラウンドロビンの繰り返し時間Tの間のあらかじめ決められた時点t0から、光バッファ中のすべての光パケットがバッファを出る時点までの時間tfをfとする。以降で、fをバッファ占有量と呼ぶ。バッファ管理装置は、周期Tごとに、すべてのポートに到着した光パケットの遅延時間を求める。同一周期内に到着した光パケットに与える遅延時間を、ポートk=1、2、・・・、Nの順に求める。ポートkに光パケット長lkの光パケットが時点t0を原点として時間tkで到着したとする。衝突回避のために光パケットに与えられるべき遅延時間tは、t=f−tkである。ここで、遅延線バッファは、離散時間特性を持つことを考えると、光パケットは、次の時間遅延されるべきであることがわかる。(図5のF1)
ここで、関数Ceil(x)は、xを下回らない最小の整数をあらわす。Δk<Bであれば、その光パケットをΔk番目の遅延線に格納する(F2)。また、Δk≧Bであれば、その光パケットを棄却する。このように一部は棄却し、他は格納する光パケットであるので、それに応じてバッファ占有量fを更新する必要が生じる。そこで、光パケットを格納する時には(F4)、
とfを更新する。棄却されるポートを除いて、全ポートの光パケットの遅延を求めた後、さらにmax((f−T),0)を新たなバッファ占有量fとして更新し(F11)、T時間後の次のラウンドロビン周期の光パケット処理に備える。
この様に光遅延線バッファを用いると、ポートkに到着した光パケットは、その直前に格納された光パケット、すなわち、ポートkに到着した光パケットの遅延をもとめる際に用いられるfで示された時間に出力される光パケットとは、次の間隔をもつ。
非特許文献6に木状に遅延線バッファユニットを配置し,それぞれにバッファ管理装置を置く方法が記載されている。これは、上記のラウンドロビン処理と比べてNをポート数として、処理速度がN1/2倍速くなるが、遅延線群を各バッファユニットに置かねばならず、光素子が増大するのが問題である。また、非特許文献5には、光バッファではない、半導体メモリバッファにパケットを格納するための処理を並列処理で行なう方法が記載されている。これは、ラウンドロビン処理と比べて管理装置規模をN倍にすることで、処理速度はlog2N倍速くなる。
葉原 敬士、三条 広明、西沢 秀樹、小川 育夫、須崎 泰正、"波長ルーチング型大容量光パケットスイッチの開発"、 電子情報通信学会技術研究報告(SSE99-148), 2000年2月. David K. Hunter and Meow C. Chia and Ivan Andonovic, "Buffering in OpticalPacket Switches", IEEE/OSA Journal of Lightwave Technology, Vol. 16, No. 12,pp. 2081-2094, December 1998. F. Callegati, "Optical buffers for variable length packets, " IEEECommunications Letters, vol. 4, pp. 292-294, September 2000. N. Wada, H. Harai, W. Chujo, and F. Kubota, "Photonic packet routing based onultiwavelength label switching using fiber Bragg gratings, " ECOC 2000Technical Digest (26th European Conference on Optical Communication), vol. 4(No. 10.4.6), pp. 71-72, September 2000. A. Prakash, S. Sharif, and A. Aziz, "An O_log_ N_ parallel algorithm foroutput queueing, " Proceedings of IEEE INFOCOM 2002. H. Harai, N. Wada, F. Kubota, and W. Chujo, "Contention resolution usingmulti-stage fiber delay line buffer in a photonic packet switch, " Proceedingsof IEEE ICC 2002.
上記に示したラウンドロビン方式は、バッファリングに関するデータ処理をあらかじめ定められたポート順に順次進めるものであり、高速なバッファリングを行うには、データ処理を高速で行う必要があり、バッファリングの速度が制限されていた。また、非特許文献5の記載のように並列に光路数と同じ数の演算器を配置した場合、あるいは、非特許文献6の記載のように木状に遅延線バッファユニットを配置した場合は、それぞれにバッファ管理装置を置き、並行処理を進める方法でも、入力する光路数の増加とともに、演算器当たりの最大処理時間は急速に増大してしまう。
この発明は、データ処理を並行に行ってバッファリングの速度を改善し、入力数が増加しても演算器当たりの最大処理時間の急速な増大をさけることのできる光パケットのバッファリング装置とそのバッファリング方法を提供することができる。
上記目的を達成するための第1の発明は、多数の演算器を用いて演算のスループットを改善した非同期到着する可変長の光パケットのバッファリング装置に関しており、その特徴は、複数の光路で伝送された非同期到着する可変長光パケットを入力し、1つの光路に出力する装置であって、
それぞれの光路の可変長光パケットの光パケット長を読みとる読取手段と、予め用意したクロック信号とそれに引き続く最近の前記可変長光パケットの到着時間との時間差(光パケット前置期間)と、を読みとる読取手段と、上記の光パケットを一時的に保管し、B通りの異なった遅延時間のいずれかを上記の光パケットに与える複数の遅延素子からなるキューと、上記の光パケットを上記の複数の遅延素子に振り分ける光スイッチと、上記の遅延された光パケットを合波する合波器と、合波器に接続された出力用の光路とを含み、
出力用の光路において、入力された光パケットが重ならないようにするために、遅延素子の遅延値と読み取られた光パケット長と光パケット前置期間とを用いて、演算によって一時的に保管する遅延素子を決める制御装置を含み、その制御装置においては、
上記の複数の光路には1からNの順序数nが与えられているものとし、以下においては、対応するものが無いときにはその値をゼロとするものとするとき、
それぞれの光路の光パケット長と光パケット前置期間について、
第1段の演算器とレジスタの並びとして、第(n−1)光路上にある光パケットの光パケット長と光パケット前置期間と、第n光路上の光パケットの光パケット長と光パケット前置期間との演算を行う演算器P(1,n)と、その演算結果を保持するレジスタR(1,n)と、が配置され、
第m(2≦m≦log2 N)段の並びとして、レジスタR(m−1,n−2m-1)あるいはその複写とレジスタR(m−1,n)あるいはその複写との演算を行う演算器P(m,n)と、その演算結果を保持するレジスタR(m,n)と、が設けられ、
M=Nとなる第(M+1)段には、演算器とキュー長の最後尾の情報を保持するレジスタQが設けられ、
さらに、第1の可変長光パケットに与える遅延を、第1光路の光パケット長と光パケット前置期間あるいはその複写とレジスタQの値との演算から決定する演算器P(M+1,1)と、
1より大きいnについて、第nの可変長光パケットに与える遅延を、第nの光路の光パケット長と光パケット前置期間あるいはその複写とレジスタR(M,n−1)とレジスタQの値との演算から決定する演算器P(M+1,n)と、が、設けられ、
演算器P(M+1,1)あるいは、演算器P(M+1,n)の出力によりそれぞれの光路の可変長光パケットに与える遅延時間を調整することにある。
また、第2の発明は、第1の発明の非同期到着する光パケットのバッファリング装置に適用できるバッファリング方法に関しており、その特徴は、上記の光路の数をN、その番号をnとし、
上記の読取手段は、周期Tで読み取りを行い、この読み取り手段を指定された時刻に通過する第n番の光路の光パケットについて、光パケットの長さをln(エルエヌ)とし、光パケット前置期間をtnとし、また、n=0については、ln=tn=0とし、
上記の複数の遅延素子による遅延は、遅延値Dで増加する遅延として並べることができる構成とするとき、
上記の演算器は、入力側のそれぞれの光路の数Nについてそれぞれ備えられており、その1からNのうちの整数nについて、
1)ln-1=0であるとき、tnをtn,1として出力し、あるいは、
n-1=0でないとき、tn-1を出力tn,1とし、
2)また、gn-1=ln-1+tn-1、とし、
3)ln=0であるとき、gn-1 を出力fn,1 とし、あるいは、
n=0でないとき、Δnを(gn-1−tn)/Dを下回らない最小の整数として、(tn+ln+ΔnD)を出力fn,1とすることを特徴とし、請求項1に記載の光パケットのバッファリング装置に用いることである。
また、第3の発明の特徴は、第2の発明の複数の演算器を1段目の演算器と呼ぶものとして、
1段目のそれぞれの演算器P(1,n)には、それぞれの出力(fn,1、tn,1)を一時的に保存するレジスタR(1,n)が設けられており、
3からNのnについて、n番目のレジスタ内容と(n−2)番目のレジスタ内容とを演算し、出力(fn,2、tn,2)を与える2段目のn−2番目の演算器P(2,n)が備えられている装置のバッファリング方法であって、
1)fn-2,1=0であるとき、tn,1をtn,2として出力し、あるいは、
n-2, 1=0でないとき、tn-2,1をtn,2として出力し、
2)また、fn,1=0であるとき、fn-2,1をfn,2として出力し、あるいは、fn,1=0でないときで、
2−1)Δnを(fn-2,1−tn,1)/Dを下回らない最小の整数として、(fn,1+ΔnD)を出力fn,2とする、
ことである。
また、第4の発明の特徴は、第2の発明の複数の演算器を1段目の演算器と呼ぶものとして、1段目のそれぞれの演算器P(1,n)には、それぞれの出力(fn,1、tn,1)を一時的に保存するレジスタR(1,n)が設けられており、2からlog2Nまでの整数mについて、(m−1)段目の演算器が定義されているとき、
m段目の演算器について、β=2m-1として、β+1からNのnについて、前段の演算器P(m−1,n)に接続された上記のn番目のレジスタ内容R(m−1,n)と(n−β)番目のレジスタ内容R(m−1,n−?)とを演算し、出力(fn,m、tn,m)を与えるm段目の(n−β)番目の演算器P(m,n)が備えられている装置のバッファリング方法であって、
1)fn-β,m-1=0であるとき、tn,m-1をtn,mとして出力し、あるいは、
n-β,m-1=0でないとき、tn-β,m-1を出力tn,mとし、
2)また、fn,m-1=0であるとき、fn-β,m-1をfn,mとして出力し、あるいは、
n,m-1=0でないとき、
2−1)Δnを(fn-β,m-1−tn,m-1)/Dを下回らない最小の整数として、(fn,m-1+ΔnD)を出力fn,mとする、
ことである。
また、第5の発明の特徴は、第4の発明の遅延時間を制御するための値Δnを決める方法に関しており、
上記のキューの長さをqとするとき、M=log2N、とするとき、1からNのうちの整数nについて、
1)ln≠0でない場合には、終了し、
n≠0である場合で、レジスタR(M,n−1)にあるfn-1Mについて、
2)fn-1,M=0のときには、臨時の値(temp)を設けて、(temp)=qとし、
n-1,M=0でないときには、(q−tn-1,M)/Dを下回らない最小の整数とfn-1,Mとの和を(temp)とし、
3)((temp)−tn)/Dを下回らない最小の整数をΔnとして、
ΔnがBよりも小さいときは、Δnを遅延素子を指定する情報として出力し、
小さくないときは、それに対応する光パケットを棄却する、
ことである。
また、第6の発明の特徴は、第5の発明のキューの長さを更新する事に関しており、
1)レジスタR(M,N)に保持されたfN,Mについて、
N,M=0が成立する場合は、(q−T)と0との大きいほうを新規のキュー長(qnew)としてその値をレジスタQに保持し、
N,M=0が成立しない場合は、Δを(q−tN,M)/Dを下回らない最小の整数とするとき、
2)このΔが上記のBより小さいときには、fN,M+ΔD−T と、0との大きいほうの値を新規のキュー長としレジスタQに保持し、
このΔがBより小さくないときには、(q−T)を新規のキュー長とし、レジスタQに保持する、
ことである。
また、第7の発明の特徴は、第5の発明のキューの長さを更新する事に関しており、
MTU(最大転送サイズ)が設定されている場合に、
1)レジスタR(M,N)に保持されたfN,MについてfN,M=0が成立する場合は、(q−T)と0との大きいほうを新規のキュー長(qnew)としてその値をレジスタQに保持し、
N,M=0が成立しない場合は、Δを(q−tN,M)/Dを下回らない最小の整数とするとき、
2)このΔがBより小さいときには、(fN,M+ΔD)と、(BD+MTU)との小さいほうからTを引いた値と、0との大きいほうの値を新規のキュー長としてその値をレジスタQに保持し、
このΔがBより小さくないときには、(q−T)を新規のキュー長とし、レジスタQに保持する、
ことである。
また、第8の発明は、第2の発明に関連するものであるが、
上記の光路の数をN、その番号をnとし、周期Tを適当に決めた単位時間(τ)の2の累乗倍、すなわち、T=2aτ(aは非負の整数)に設定し、ただし、Tは単位時間(τ)の整数倍の長さで表される最小パケット長を上回らないものとし、上記の読取手段は、周期Tで読み取りを行い、この読み取り手段を指定された時刻に通過する第n番の光路の光パケットについて、光パケットの長さを単位時間の整数倍の長さで表されるln(エルエヌ)とし、光パケット前置期間を単位時間の整数倍の長さで表されるtnとし、前記の光パケットの長さは、その長さを下回らない、単位時間の整数倍で表すものとし、前記の前置期間はその前置期間を上回らない、単位時間の整数倍で表すものとし、また、n=0については、ln=tn=0とし、
上記の複数の遅延素子による遅延は、遅延値Dで増加する遅延として並べることができる構成とし、Dを2k(kは非負の整数)で与えるとき、また、表記法として、整数xの2進数の下位kビットに相当する整数をx(2)とし、前記の下位kビットを除いた残りの上位ビットで構成される2進数をx(1)とするとき、
上記の演算器は、入力側のそれぞれの光路の数Nについてそれぞれ備えられており、その1からNまでの整数nについて、
1)ln-1=0であるとき、tnをtn,1として出力し、あるいは、
n-1=0でないとき、tn-1を出力tn,1として出力し、
2)また、gn-1=ln-1+tn-1、とし、
3)ln=0であるとき、gn-1をfn,1として出力し、
n=0でないとき、gn-1がtn以下の場合には、gn-1 (1)をΔnとし、
n-1がtn以下でない場合には、(gn-1 (1)+1)をΔnとし、
4)(tn (2)+ln+2kΔn)を出力fn,1とする、
ことである。
また、第9の発明は、第4の発明に関連するものであるが、これらの発明も、TがDの2p(pは整数)=2a-k倍であるときには、除算をしないようにすることによりハードウェア化することを容易にし、データ処理をさらに高速にするものである。その特徴は、1段目のそれぞれの演算器P(1,n)には、それぞれの出力(fn,1、tn,1)を一時的に保存するレジスタR(1,n)が設けられており、2からlog2Nまでの整数mについて、(m−1)段目の演算器が定義されているとき、
m段目の演算器について、β=2m-1として、β+1からNのnについて、前段の演算器P(m−1,n)に接続された上記のn番目のレジスタ内容R(m−1,n)と(n−β)番目のレジスタ内容R(m−1,n−?)とを演算し、出力(fn,m、tn,m)を与えるm段目の(n−β)番目の演算器P(m,n)が備えられている装置のバッファリング方法であって、
1)fn-β,m-1=0であるとき、tn,m-1をtn,mとして出力し、あるいは、
n-β,m-1=0でないとき、tn-β,m-1を出力tn,mとし、
2)また、fn,m-1=0であるとき、fn-β,m-1をfn,mとして出力し、あるいは、
n,m-1=0でないときで、
2−1) fn-β,m-1 (2)がtn,m-1 (2)以下の時には、fn-β,m-1 (1)をΔnとし、
2−2) fn-β,m-1がtn,m-1以下でない時には、(fn-β,m-1 (1)+1)をΔnとし、
3) (fn,m-1+2kΔn)をfn,mとして出力する、ことである。
また、第10の発明は、第5の発明に関連するものであるが、この発明も、TがDの2p(pは整数)倍であるときには、除算をしないようにすることによりハードウェア化することを容易にし、データ処理をさらに高速にするものである。その特徴は、第9の発明において、上記のキューの長さをqとするとき、1からNのうちの整数nについて、M=log2N とするとき、
1)ln≠0でないときには、終了し、
2)ln≠0のときには、
2−1)fn-1,M=0のときで、
(2)がtn (2)以下のときには、q(1)をΔnとし、
(2)がtn (2)以下でないときには、(q(1)+1)をΔnとし、
2−2)fn-1,M=0でないときで、
(2)がtn-1,M (2)以下のときには、q(1)をΔ1とし、
(2)がtn-1,M (2)以下でないときには、(q(1)+1)をΔ1とし、さらに、
2−3−1)fn-1,M (2)がtn (2)以下のときには、(Δ1+fn-1,M (1))をΔnとし、
2−3−2)fn-1,M (2)がtn (2)以下でないときには、(Δ1+1+fn-1,M (1))をΔnとし、
3)ΔnがBよりも小さいときは、Δnを遅延素子を指定する情報として出力し、
小さくないときは、それに対応する光パケットを棄却する、ことである。
また、第11の発明は、第6の発明に関連するものであるが、この発明も、TがDの2p(pは整数)倍であるときには、除算をしないようにすることによりハードウェア化することを容易にし、データ処理をさらに高速にするものである。その特徴は、
M=log2Nとするとき、
1)fN,M=0が成立する場合で
1−1) qがTより大きいときは、(q−T)を新規のキュー長(qnew)とし、
1−2) qがTより大きくないときは、qnew=0とし、
2)fN,M=0でない場合で、
2−1)q(2)がtN,M (2)以下のときには、q(1)をΔとし、
(2)がtN,M (2)以下でないときには、(q(1)+1)をΔとし、
3−1)このΔがBより小さいときで、
3−1−1)fN,M+2kΔがTより大きいときには、(fN,M+2kΔ−T)をqnewとし、
3−1−2)fN,M+2kΔがTより大きくないときには、qnew=0とし、
3−2)このΔがBより小さくないときには、(q−T)をqnewとする、ことである。
また、第12の発明は、第7の発明に関連するものであるが、この発明も、TがDの2p(pは整数)倍であるときには、除算をしないようにすることによりハードウェア化することを容易にし、データ処理をさらに高速にするものである。その特徴は、MTU(最大転送サイズ)が設定されている場合で、
M=log2Nとするとき、
1)fN,M=0が成立する場合で
1−1) qがTより大きいときは、(q−T)を新規のキュー長(qnew)とし、
1−2) qがTより大きくないときは、qnew=0とし、
2)fN,M=0でない場合で、
2−1)q(2)がtN,M (2)以下のときには、q(1)をΔとし、
(2)がtN,M (2)以下でないときには、(q(1)+1)をΔとし、
3−1)このΔがBより小さいときで、
3−1−1)(fN,M+2kΔ)が(2kB+MTU)よりも大きいときは、(2kB+MTU−T)をqnewとし、
3−1−2)(fN,M+2kΔ)が(2kB+MTU)よりも大きくないときで、
3−1−2−1)fN,M+2kΔがTより大きいときには、(fN,M+2kΔ−T)をqnewとし、
3−1−2−2)fN,M+2kΔがTより大きくないときには、qnew=0とし、
3−2)このΔがBより小さくないときには、(q−T)をqnewとする、ことである。
また、第13の発明は、同期のとれた固定長の光パケットを入力して、それぞれの光パケットに異なった遅延時間を与えてひとつの光路に出力する装置であって、その特徴は、
複数の光路から同期固定長光パケットを入力し、それぞれの光パケットにB通りの異なった遅延時間のいずれかを与えてひとつの光路に出力する装置であって、
それぞれの光路の光パケットの有無を読みとる読取手段と、
上記の複数の光パケットを一時的に保管してB通りの異なった遅延時間のいずれかを与える複数の遅延素子からなるキューと、上記の光パケットを上記の複数の遅延素子に振り分ける光スイッチと、上記の複数の遅延素子に光路で接続された合波器と、合波器に接続された出力用の光路とを含み、
出力用の光路において光パケットが重ならないようにするために、遅延素子の遅延値と、読み取られた光パケットの有無情報とを用いて、演算によって一時的に保管する遅延素子を決める制御装置をそなえ、
この制御装置は、
上記の複数の光路には1からNの順序数nが与えられているものとし、以下においては、nについて対応するものが無いときには無視するものとするとき、
それぞれの光路の光パケットの有無情報について、
第1段の演算器とレジスタの並びとして、第(n−1)光路上にある光パケットの光パケットの有無情報と、第n光路上の光パケットの光パケットの有無情報と、の演算を行う演算器P(1,n)と、その演算結果を保持するレジスタR(1,n)と、が配置され、
第m(2≦m≦log2 N)段の並びとして、レジスタR(m−1,n−2m-1)あるいはその複写とレジスタR(m−1,n)あるいはその複写との演算を行う演算器P(m,n)と、その演算結果を保持するレジスタR(m,n)と、が設けられ、
M=Nとなる整数Mについて、第M+1段には、演算器とキュー長の最後尾の情報を保持するレジスタQが設けられ、
さらに、第1の同期固定長光パケットに与える遅延を、第1光路の光パケットの有無情報あるいはその複写とレジスタQの値との演算から決定し、
1より大きいnについて、第nの同期固定長光パケットに与える遅延を演算器P(M+1,n)を用いて、第nの光路の光パケットの有無情報あるいはその複写とレジスタR(M,n−1)とレジスタQの値との演算から
決定することにより、それぞれの光路の同期固定長光パケットに与える遅延時間を調整することである。
また、第14の発明は、同期のとれた固定長の光パケットを入力して、それぞれの光パケットに異なった遅延時間を与えてひとつの光路に出力する装置であって、その特徴は、第13の発明において、
それぞれの光路の光パケットの有無を周期Tごとに読みとる読取手段を備え、第1段のそれぞれの演算器は、ポート(n−1)とポートnへ到着する光パケットの有無にしたがってln-1、lnに、到着時に1、非到着時に0を入力し、
0:=0とし、
1からNまでの整数nについて、
n,1:=ln-1+ln
とする演算を行ない、2つのポートに到着した光パケット数fn,1を出力する演算器であることである。
また、第15の発明は、同期のとれた固定長の光パケットを入力して、それぞれの光パケットに異なった遅延時間を与えてひとつの光路に出力する装置であって、その特徴は、第14の発明において、
1段目のそれぞれの演算器P(1,n)には、それぞれの出力(fn,1)を一時的に保存するレジスタR(1,n)が設けられており、2からlog2Nまでの整数mについて、(m−1)段目の演算器が定義されているとき、m段目の演算器について、
β=2m-1として、β+1からNまでのnについて、前段の演算器P(m−1,n)に接続されたn番目のレジスタR(m−1,n)の値と前段の演算器P(m−1,n−β)に接続された(n−β)番目のレジスタR(m−1,n−β)の値とについて、
n,m:=fn,m-1+fn-β,m-1
とする演算を演算器P(m,n)で行ない、fn,mを出力として与えること、である。
また、第16の発明は、同期のとれた固定長の光パケットを入力して、それぞれの光パケットに異なった遅延時間を与えてひとつの光路に出力する装置であって、その特徴は、第15の発明において、
レジスタR(M,N)に保持されたfN,Mについて、min(q+fN,M ,B−1)と0との大きいほうの値を新規のキュー長(qnew)としてその値をレジスタQに保持する、ことである。
また、第17の発明は、同期のとれた固定長の光パケットを入力して、それぞれの光パケットに異なった遅延時間を与えてひとつの光路に出力する装置であって、その特徴は、第16の発明において、
第(M+1)段目における演算器P(M+1,n)(ただし、1≦n≦N)は、
ポート1からn−1までに到着した光パケット数fn-1,M、と、
ポートnに到着する光パケットの有無ln、と、
キュー長qとを用いて、1からNまでの整数nについて
n=0の場合は、終了し
そうでない場合は、Δn:=q+fn-1,Mとするが、
もし、Δn<Bの場合は、光パケットに、Δnの遅延を与え、
Δn<Bでない場合は、その光パケットを棄却する、
という処理を順に行って遅延Δnの値を、遅延素子を指定する情報として出力することである。
以下にこの発明の実施の形態を図面に基づいて詳細に説明する。以下の例においては、同等のあるいは類似の機能を有する装置等については同じ符号を用いるものとする。
図6に本発明の非同期到着する可変長光パケットのバッファリング装置の概要を示す。図6は、複数の光路で伝送された非同期到着する可変長光パケットを入力し、上記の可変長光パケットのアドレス情報に従った光路に出力する装置であって、光路1から光路4で伝送された光パケット信号を、出力1から出力4に振り分ける装置の構成である。それぞれの光路から入力した信号は、光検出器1で電気信号に変換され、そのヘッダ部の情報が読み込まれ、ルート情報としてルート情報処理器5で処理される。このルート情報は、N=4の1×N光スイッチ3に送られ、振り向ける出力が決められる。光検出器1と1×N光スイッチ3との間にある遅延線2は、光パケット信号と電気信号との同期をとるためのものである。
ここで、N×1バッファ4は、本発明の特徴となるバッファであり、図7に示す構成を持っており、それぞれの光路の可変長光パケットの光パケット長を読みとる読取手段と、予め用意したクロックとそれに引き続く最近の前記可変長光パケットとの時間差(光パケット前置期間)を読みとる読取手段と、上記の光パケットを一時的に保管し、B通りの異なった遅延時間のいずれかを上記の光パケットに与える遅延素子からなるキューと、上記の光パケットを上記の複数の遅延素子に振り分ける光スイッチと、上記の複数の遅延素子に光路で接続された合波器と、合波器に光路で接続された出力用の光路と、を、含んでいる。
図7の光検出器6は、光信号を電気信号に変換することによって光パケット信号の長さl(エル)と光パケットと装置内部で発生した、あるいは外部から供給したクロック信号との間隔(パケット前置期間)tをバッファマネージャ11で読み出すためのものである。このバッファマネージャ11では、上記のlとtの値を用いて、それぞれの光路から伝送された光パケット信号が重ならないように、例えば1つの光路に振り分けるためのデータ処理を行う。この出力は、光スイッチを制御して遅延線9のどれを選択するか決めるものである。それぞれの遅延を通過した光パケット信号は、合波器で合波して出力される。
図6に示した構成では、光パケット信号はそれぞれ2回、電気信号に変換されるが、これは、図8に示す非同期到着する可変長光パケットのバッファリング装置の構成のように、光検出器1で電気信号に変換し、管理情報処理器12により、前記の電気信号を用いて、あるいは、データ処理を施して、1×Nスイッチ3やN×1バッファ13の制御を行うことができる。この場合のN×1バッファ13の構成は、図9に示す様に、N×1バッファ4の構成と比べて、光電変換の回数を減らして光検出器の数を省くことができる。
管理情報処理器12としては、図10(a)あるいは図11(a)の構成のものを用いることができる。
図10(a)のものでは、電気信号に変換された信号の電圧の高低(H/L)を判定し、これを高低の切り替わる時刻を時刻記録器で記録し、この時刻データをレジスタに記録し、このデータをバッファマネージャに定期的に供給する。
また、図11(a)のものでは、電気信号に変換された信号の電圧の高低(H/L)を判定したのち、これを定期的にシフトレジスタに書き込む。この高低の切り替え時期をシフトレジスタの番地を読み出し、クロック信号と比較することで、光パケット信号の長さl(エル)と光パケット間の間隔tを得るものである。
管理情報処理器12としては、図10(b)に示す構成のものを用いることができる。これは、光検出器の出力を分岐し、一方をバッファマネージャへ供給する信号を生成する回路へ振り向け、他方をルート情報を抽出する回路に振り向ける。一方をバッファマネージャへ供給する信号を生成するために、電気信号に変換された信号は、電圧の高低(H/L)を判定し、高低の切り替わる時刻を時刻記録器で記録し、この時刻データをレジスタに記録する。このレジスタは、指定された時刻にある光パケット信号の情報を出力する。この出力は、切換器を用いてルート情報読取器からの出力にしたがって、それぞれのバッファマネージャへ振り向けられる。
管理情報処理器12としては、図11(b)に示す構成のものを用いることができる。これは、光パケット信号を電気信号に変換された信号の電圧の高低(H/L)を判定したのち、これを定期的にシフトレジスタに書き込み、この高低の切り替え時期をシフトレジスタの番地を読み出すことで、光パケット信号の長さl(エル)と光パケット間の間隔を得るものである。
ここで、指定されたバッファリング時刻における光パケット信号の長さl(エル)と光パケットとクロック信号の間隔tについて説明する。まず、バッファリングをT秒ごとに行うもとし、この時間Tは、lの最小の値よりも小さいものとする。すなわち、時刻T0とそれからT時間後の時刻T1との間に、同一のポートに複数のパケットが到着しないよう、Tを決める。このとき、時刻T0と時刻T1との間に光パケット信号が到着しなければ、lは0(ゼロ)であり、tも0である。また、時刻T0と時刻T1との間に到着する光パケット信号の場合は、この光パケット信号に長さをl(エル)とし、時刻T0に近いほうのその光パケット信号とクロック信号の間隔をtとする。つまり、複数の周期に光パケット信号がかかるほど長い場合は、その光パケット信号は、その光パケット信号のかかる最初の周期時刻に属するものとする。
以下で説明するのは、図12に示すように、複数の光路で非同期に伝送された可変長光パケットを、重ならないように調整して1つの光路にまとめて伝送するバッファリング装置である。重ならないようにするためには、到着する光パケット信号の長さとその光パケット信号とクロック信号との間隔から、それぞれの光パケット信号に割り当てる遅延素子をきめて、最適な遅延を与えることによって行う。図12に示した構成の装置では、優先的に光路1の光パケット信号がより遅延が少なくなる構成であるが、他の光路を優先させることは、容易であり、優先させるべき光路があれば、それを図12の光路1と置き換えればよい。ここで、遅延素子の構成については、図12では、0、D、2D、3Dと等差的に並んだものを用いているが、等差的でない場合でも、以下に説明する方法や構成をわずかに変えるだけで、適用することができる。
図12(b)は、光路1から4に与える遅延の一例である。光路4の光パケット信号(信号D)は、棄却したため、図12(b)には記載されていない。このように遅延時間を与えられ、重ならないように調整された光パケット信号は、出力用の光路では、図12(c)のように並ぶ。ここで、さらに長い遅延時間を選択することができれば、光路4の光パケット信号(信号D)を棄却せずに伝送できることは、容易に想像できる。
本発明の主眼とする点は、単位時間あたりにより多くのパケットに対して上記の遅延時間を決定することである。このために、多数の演算器Pijを図13のように配置して、遅延時間の決定に必要な処理を並列に処理する。ここでPijは、i段目の、第j光路に設けられた演算器である。特に明示する場合には、PijをP(i、j)と表示するものとする。
図13においては、IN1からIN8までの8光路の光パケット信号の長さl(エル)と光パケット信号とクロック信号との間隔(パケット前置期間)tから、光パケット信号の棄却率が小さくなる調整を行う。この場合も、その遅延時間が等差的に並んだ遅延素子について示しており、出力となるΔnは、その基礎となる遅延値Dの係数を示している。図13において、丸は演算器であり、四角はレジスタRである。ここで、レジスタとしては、直前の演算器における演算結果を保持するレジスタR(1,1)と、第1光路の上にある光パケットの光パケット長と光パケット前置期間を保持するレジスタR′(1,1)とが配置される。それぞれのレジスタRijについても、添え字(ij)によって、R(i、j)としてその位置を示す。演算器がある場合には、それと同じ添え字になるようにするものとする。このレジスタR′(1,1)は、演算処理のタイミングを調整するためのものであるので、必ずしもこの部分に設ける必要はなく、図26に示す構成で演算を行い、キューにおける位置を更新する演算が行われるまでに、図には記載していないが、よく知られた遅延回路を用いて、そのタイミングの調整が行われればよい。しかし、上記の様に、レジスタR(1,1)と並列させることによって、回路設計を容易にすることができる。
図13に示す構成は、出力用の光路において、入力された光パケットが重ならないようにするために、遅延素子の遅延値と読み取られた光パケット長と光パケット前置期間とを用いて、一時的に保管する遅延素子を決めるためのものである。便宜的に、その複数の光路には、1からNの順序数nを与えて区別するものとする。以下においては、光路の番号について、対応する演算器やレジスタが無いときには、その機能は恒等演算を行うか、あるいは、その保持する値はゼロであるものとする。
このような場合に、それぞれの光路の光パケット長と光パケット前置期間については、以下の構成をもった光パケットのバッファリング装置で演算する。
1) それぞれの光路の可変長光パケットの光パケット長を読みとる読取手段と、予め用意したクロック信号とそれに引き続く最近の前記可変長光パケットの到着時間との時間差(光パケット前置期間)とを読みとる読取手段と、上記の光パケットを一時的に保管し、B通りの異なった遅延時間のいずれかを上記の光パケットに与える複数の遅延素子からなるキューと、上記の光パケットを上記の複数の遅延素子に振り分ける光スイッチと、上記の遅延された光パケットを合波する合波器と、合波器に接続された出力用の光路とを含み、
2)出力用の光路において、入力された光パケットが重ならないようにするために、遅延素子の遅延値と読み取られた光パケット長と光パケット前置期間とを用いて、演算によって一時的に保管する遅延素子を決める制御装置を含み、
3)その制御装置においては、上記の複数の光路には1からNの順序数nが与えられているものとし、以下においては、対応するものが無いときにはその値をゼロとするものとするとき、
それぞれの光路の光パケット長と光パケット前置期間について、
第1段の演算器とレジスタの並びとして、第(n−1)光路上にある光パケットの光パケット長と光パケット前置期間と、第n光路上の光パケットの光パケット長と光パケット前置期間との演算を行う演算器P(1,n)と、その演算結果を保持するレジスタR(1,n)と、が配置され、
4)第m(2≦m≦log2 N)段の並びとして、レジスタR(m−1,n−2m-1)あるいはその複写とレジスタR(m−1,n)あるいはその複写との演算を行う演算器P(m,n)と、その演算結果を保持するレジスタR(m,n)と、が設けられ、
5)2M=Nとなる第(M+1)段には、演算器とキュー長の最後尾の情報を保持するレジスタQが設けられ、
6)さらに、第1の可変長光パケットに与える遅延を、第1光路の光パケット長と光パケット前置期間あるいはその複写とレジスタQの値との演算から決定する演算器P(M+1,1)と、
7)1より大きいnについて、第nの可変長光パケットに与える遅延を、第nの光路の光パケット長と光パケット前置期間あるいはその複写とレジスタR(M,n−1)とレジスタQの値との演算から決定する演算器P(M+1,n)と、が、設けられ、
8)演算器P(M+1,1)あるいは、演算器P(M+1,n)の出力によりそれぞれの光路の可変長光パケットに与える遅延時間を調整することを特徴とする非同期到着する光パケットのバッファリング装置である。
演算器Pijの機能については、後に説明する。N個の要素a1, a2, ・, aN があった場合に、それぞれのプリフィックス和 a1,a1+a2, ・, a1+a2+,・,aN を求めることはプリフィックス和演算(prefix-sum operation)として知られており、N個の演算器を用いて並列処理によりその解を求めることは並列プリフィックス演算として知られている。しかし、その方法を用いてパケットの遅延を求める場合には、演算器あたりlog2N +1回の計算が必要になり、その間に次のパケットの遅延を求めることはできない。また順次、次段にそれぞれの演算結果を送ることによりそのスループットを改善する構成はパイプラインとして知られているが、すでに知られている処理方法を適用しても本発明には用いることができない。本発明に適用するには、特有の演算器の構成が必要で、バッファリング装置やバッファリング方法に応じた演算処理が必要である。
図14に、以下で用いる変数について、そのタイムチャート上での対応を示す。図14(a)は、本発明のバッファリング装置の出力として想定する光パケット信号の並びの一例である。この場合の入力は、8光路で与えられるものとしている。また、図14(b)は、以下の説明において用いられる変数の意味を示している。また、図14(c)は、基礎となる遅延時間の係数で、これが出力となる。
1段目のP1nは、図15に示すフローチャートに従った処理を行う。この処理をプログラムで記述すれば、以下のようになる。
上記の表2においては、光パケットの長さをln(エルエヌ)とし、光パケット前置期間をtnとし、また、n=0については、ln=tn=0とし、上記の複数の遅延素子の遅延は、遅延値Dで増加する遅延として並べることができる構成としている。この1段目の演算器は、入力側のそれぞれの光路の数Nについてそれぞれ備えられており、その1からNまでの整数nについて、以下の処理を行う。
1)ln-1=0であるとき、tnをtn,1として出力し、あるいは、
n-1=0でないとき、tn-1を出力tn,1とし、
2)また、gn-1=ln-1+tn-1、とし、
3)ln=0であるとき、gn-1 を出力fn,1 とし、あるいは、
n=0でないとき、Δnを(gn-1−tn)/Dを下回らない最小の整数として、(tn+ln+ΔnD)を出力fn,1とする。
2段目のP2nは、図16に示すフローチャートに従った処理を行う。この処理をプログラムで記述すれば、以下のようになる。
上記の表3は、3からNまでの整数nについて、n番目のレジスタ内容と(n−2)番目のレジスタ内容とを演算し、出力(fn,2、tn,2)を与える2段目のn−2番目の演算器が備えられている装置のバッファリング方法を示している。ここでは、以下の処理を行う。
1からNのうちの整数nについて、
1)fn-2,1=0であるとき、tn,1をtn,2として出力し、あるいは、
n-2, 1=0でないとき、tn-2,1をtn,2として出力し、
2)また、fn,1=0であるとき、fn-2,1をfn,2として出力し、あるいは、fn,1=0でないときで、
2−1)Δnを(fn-2,1−tn,1)/Dを下回らない最小の整数として、(fn,1+ΔnD)を出力fn,2とする。
3段目のP3nは、図17に示すフローチャートに従った処理を行う。この処理をプログラムで記述すれば、以下のようになる。
一般に、m段目のPmnは、図18に示すフローチャートに従った処理を行う。この処理をプログラムで記述すれば、以下のようになる。
上記の表5は、(m−1)段目の演算器が定義されているとき、m段目の演算器について、β=2m-1として、β+1からNのnについて、前段の演算器に接続された上記のn番目のレジスタ内容と(n−β)番目のレジスタ内容とを演算し、出力(fn,m、tn,m)を与えるm段目の(n−β)番目の演算器が備えられている装置のバッファリング方法を示しており、以下の処理を行う。
2≦m ≦ log2 N、であるとして、
1)fn-β,m-1=0であるとき、tn,m-1をtn,mとして出力し、あるいは、
n-β,m-1=0でないとき、tn-β,m-1を出力tn,mとし、
2)また、fn,m-1=0であるとき、fn-β,m-1をfn,mとして出力し、あるいは、
n,m-1=0でないとき、
2−1)Δnを(fn-β,m-1−tn,m-1)/Dを下回らない最小の整数として、(fn,m-1+ΔnD)を出力fn,mとする。
遅延値が、0、D、2D、・・・(B−1)D、と等差的に並んだ遅延素子を選択するためのデータとして、第n光路の遅延値をΔnDとするとき、このΔnを出力する。このためには、図19に示すフローチャートに従った処理を行う。この処理をプログラムで記述すれば、表6のようになる。ただしこれは、1段目のそれぞれの演算器P(1,n)には、それぞれの出力(fn,1、tn,1)を一時的に保存するレジスタR(1,n)が設けられており、2からlog2Nまでの整数mについて、(m−1)段目の演算器が定義されているとき、m段目の演算器について、β=2m-1として、β+1からNのnについて、前段の演算器P(m−1,n)に接続された上記のn番目のレジスタ内容R(m−1,n)と(n−β)番目のレジスタ内容R(m−1,n−β)とを演算し、出力(fn,m、tn,m)を与えるm段目の(n−β)番目の演算器P(m,n)が備えられている装置に用いるものである。
上記の表6は、上記のキューの長さをqとするとき、1からNのうちの整数nについて、Δnを求める方法を示しており、以下の処理を行う。ただし、以下においてはM=log2Nとする。
1)ln≠0でない場合には、終了し、
n≠0である場合で、レジスタR(M,n−1)にあるfn-1Mについて、
2)fn-1,M=0のときには、臨時の値(temp)を設けて、(temp)=qとし、
n-1,M=0でないときには、(q−tn-1,M)/Dを下回らない最小の整数とfn-1,Mとの和を(temp)とし、
3)((temp)−tn)/Dを下回らない最小の整数をΔnとして、
ΔnがBよりも小さいときは、Δnを出力し、
小さくないときは、それに対応する光パケットを棄却する。
このように、M=log2N、として、M段目の処理結果が得られ得られると同時に別の演算器でキュー長(q)を更新する。これは、図20に示すフローチャートに従った処理を行う。この処理をプログラムで記述すれば、以下のようになる。
一般に、パケット通信では、MTU(最大転送サイズ)が設定されている。上記の表7は、MTUが設定されている場合の手続きについて示している。
1)レジスタR(M,N)に保持されたfN,MについてfN,M=0が成立する場合は、(q−T)と0との大きいほうを新規のキュー長(qnew)としてその値をレジスタQに保持し、
N,M=0が成立しない場合は、Δを(q−tN,M)/Dを下回らない最小の整数とするとき、
2)このΔがBより小さいときには、(fN,M+ΔD)と、(BD+MTU)との小さいほうからTを引いた値と、0との大きいほうの値を新規のキュー長としてその値をレジスタQに保持し、
このΔがBより小さくないときには、(q−T)を新規のキュー長とし、レジスタQに保持する。
MTU(最大転送サイズ)が設定されていない場合や、MTUがあっても処理を高速にするには、下記に示す方法でキュー長を設定することもできる。
1)レジスタR(M,N)に保持されたfN,MについてfN,M=0が成立する場合は、(q−T)と0との大きいほうを新規のキュー長(qnew)としてその値をレジスタQに保持し、
N,M=0が成立しない場合は、Δを(q−tN,M)/Dを下回らない最小の整数とするとき、
2)このΔがBより小さいときには、(fN,M+ΔD-T)と、0との大きいほうの値を新規のキュー長としてその値をレジスタQに保持し、
このΔがBより小さくないときには、(q−T)を新規のキュー長とし、レジスタQに保持する。
上記のフローチャートの処理を高速に実行するためには、半導体回路(ハードウェア)で実現することが望ましい。しかし、ハードウェアを実現するためには、その処理手順をHDL(HardwareDescription Language)で記述して回路化する必要があるが、上記の表6では、最大値を求める関数(max)が使われており、現状ではこの演算を利用することができない。また、上記の処理手順では、除算が使われており、そのため回路が複雑になる、あるいは、処理が遅くなるなどの問題もある。そこで、T=2pD(pは整数)となるように設定すると、これらの問題が解決される。
この場合の、1段目のP1nは、図21に示すフローチャートに従った処理を行う。この処理をプログラムで記述すれば、以下のようになる。
上記の表8においては、上記の光路の数をN、その番号をnとし、周期Tを適当に決めた単位時間(τ)の2の累乗倍、すなわち、T=2aτ(aは非負の整数)に設定し、ただし、Tは単位時間(τ)の整数倍の長さで表される最小パケット長を上回らないものとし、上記の読取手段は、周期Tで読み取りを行い、この読み取り手段を指定された時刻に通過する第n番の光路の光パケットについて、光パケットの長さを単位時間の整数倍の長さで表されるln(エルエヌ)とし、光パケット前置期間を単位時間の整数倍の長さで表されるtnとし、前記の光パケットの長さは、その長さを下回らない単位時間の整数倍で表すものとし、前記の前置期間は、その前置期間を上回らない単位時間の整数倍で表すものとし、また、n=0については、ln=tn=0とし、
上記の複数の遅延素子による遅延は、遅延値Dで増加する遅延として並べることができる構成とし、Dを2k(kは非負の整数)で与えるとき、また、表記法として、整数xの2進数の下位kビットに相当する整数をx(2)とし、前記の下位kビットを除いた残りの上位ビットで構成される2進数をx(1)とするとき、
上記の演算器は、入力側のそれぞれの光路の数Nについてそれぞれ備えられており、その1からNまでの整数nについて、
1)ln-1=0であるとき、tnをtn,1として出力し、あるいは、
n-1=0でないとき、tn-1を出力tn,1として出力し、
2)また、gn-1=ln-1+tn-1、とし、
3)ln=0であるとき、gn-1をfn,1として出力し、
n=0でないとき、gn-1がtn以下の場合には、gn-1 (1)をΔnとし、
n-1がtn以下でない場合には、(gn-1 (1)+1)をΔnとし、
4)(tn (2)+ln+2kΔn)を出力fn,1とする。
2段目、3段目の処理手順については、それぞれ図22、図23に示す。また、これらのプログラムによる記述をそれぞれ、表8、表9に示す。
これらの手順は、一般に、次のようになる。一般に、β=2m-1とする場合に、β+1からNのnについて、前段の演算器P(m−1,n)に接続された上記のn番目のレジスタ内容R(m−1,n)と(n−β)番目のレジスタ内容R(m−1,n−β)とを演算し、出力(fn,m、tn,m)を与えるm段目の(n−β)番目の演算器P(m,n)が備えられている装置のバッファリング方法で、
1)fn-β,m-1=0であるとき、tn,m-1をtn,mとして出力し、あるいは、
n-β,m-1=0でないとき、tn-β,m-1を出力tn,mとし、
2)また、fn,m-1=0であるとき、fn-β,m-1をfn,mとして出力し、あるいは、
n,m-1=0でないときで、
2−1) fn-β,m-1 (2)がtn,m-1 (2)以下の時には、fn-β,m-1 (1)をΔnとし、
2−2) fn-β,m-1がtn,m-1以下でない時には、(fn-β,m-1 (1)+1)をΔnとし、
3) (fn,m-1+2kΔn)をfn,mとして出力する。
また、Δnを出力する段では、図24に示すフローチャートに従って演算処理を行う。これをプログラムで記述すると、次のようになる。
表11では、キューの長さをqとするとき、1からNまでの整数nについて、以下の処理をおこなうものである。
M=log2 N とするとき、
1)ln≠0でないときには、終了し、
2)ln≠0のときには、
2−1)fn-1,M=0のときで、
(2)がtn (2)以下のときには、q(1)をΔnとし、
(2)がtn (2)以下でないときには、(q(1)+1)をΔnとし、
2−2)fn-1,M=0でないときで、
(2)がtn-1,M (2)以下のときには、q(1)をΔ1とし、
(2)がtn-1,M (2)以下でないときには、(q(1)+1)をΔ1とし、さらに、
2−3−1)fn-1,Mがtn (2)以下のときには、(Δ1+fn-1,M (1))をΔnとし、
2−3−2)fn-1,Mがtn (2)以下でないときには、(Δ1+1+fn-1,M (1))をΔnとし、
3)ΔnがBよりも小さいときは、Δnを出力し、
小さくないときは、それに対応する光パケットを棄却する。
また、キュー長を更新する段では、図25に示すフローチャートに従って演算処理を行う。これをプログラムで記述すると、次のようになる。
表12では、以下の手順で演算処理を行う。上記したように、光パケット通信では、一般にMTU(最大転送サイズ)が設定されている。
M=log2Nとするとき、
1)fN,M=0が成立する場合で
1−1) qがTより大きいときは、(q−T)を新規のキュー長(qnew)とし、
1−2) qがTより大きくないときは、qnew=0とし、
2)fN,M=0でない場合で、
2−1)q(2)がtN,M (2)以下のときには、q(1)をΔとし、
(2)がtN,M (2)以下でないときには、(q(1)+1)をΔとし、
3−1)このΔがBより小さいときで、
3−1−1)(fN,M+2kΔ)が(2kB+MTU)よりも大きいときは、(2kB+MTU−T)をqnewとし、
3−1−2)(fN,M+2kΔ)が(2kB+MTU)よりも大きくないときで、
3−1−2−1)fN,M+2kΔがTより大きいときには、(fN,M+2kΔ−T)をqnewとし、
3−1−2−2)fN,M+2kΔがTより大きくないときには、qnew=0とし、
3−2)このΔがBより小さくないときには、(q−T)をqnewとする。
各周期において、キュー長を更新するときにすでにバッファが光パケットで溢れているときには、従来のラウンドロビン方式と同様に新たに到着するパケットを棄却する処理を行う。そうでない場合には、到着するすべての光パケットをキューに追加できると仮定してキュー長の更新を行う。到着したすべての光パケットをキューに適切に格納するための計算を複数の演算器で行う。
上記の非同期可変長光パケット用の光パケットスイッチにおけるバッファリング装置を、同期固定長の光パケット用の光パケットスイッチにおけるバッファリングに用いる場合は、図26の並列演算処理を簡略化して、図27の構成とすることができる。同様に図13に示す構成と同様に、データを順次先送りする点線部分を用いる構成で、変数を上記の同期固定長の場合とした図28の構成とすることができる。図27、28では、その処理において用いる変数の数が少なくなっている。この変数の数を少なく出来るのは、この並列演算の際に、光パケット長が全て同じであることから、上記の処理における光パケット長の代わりに、光パケット個数を用いることが出来るためである。また、それぞれの光パケットは、同期していることから、光パケットの前置期間についての処理を省くことが出来る。このための処理は以下のように行う。
複数の光路から同期固定長光パケットを入力し、それぞれの光パケットにB通りの異なった遅延時間のいずれかを与えてひとつの光路に出力する装置であって、
それぞれの光路の光パケットの有無を読みとる読取手段と、
上記の複数の光パケットを一時的に保管してB通りの異なった遅延時間のいずれかを与える複数の遅延素子からなるキューと、上記の光パケットを上記の複数の遅延素子に振り分ける光スイッチと、上記の複数の遅延素子に光路で接続された合波器と、合波器に接続された出力用の光路とを含み、
出力用の光路において光パケットが重ならないようにするために、遅延素子の遅延値と、読み取られた光パケットの有無情報とを用いて、演算によって一時的に保管する遅延素子を決める制御装置をそなえ、
この制御装置は、
上記の複数の光路には1からNの順序数nが与えられているものとし、以下においては、nについて対応するものが無いときには無視するものとするとき、
それぞれの光路の光パケット数について、
第1段の演算器とレジスタの並びとして、第(n−1)光路上にある光パケットの光パケット数と、第n光路上の光パケットの光パケット数と、の演算を行う演算器P(1,n)と、その演算結果を保持するレジスタR(1,n)と、が配置され、
第m(2≦m≦log2 N)段の並びとして、レジスタR(m−1,n−2m-1)あるいはその複写とレジスタR(m−1,n)あるいはその複写との演算を行う演算器P(m,n)と、その演算結果を保持するレジスタR(m,n)と、が設けられ、
M=Nとなる整数Mについて、第M+1段には、演算器とキュー長の最後尾の情報を保持するレジスタQが設けられ、
さらに、第1の同期固定長光パケットに与える遅延を、第1光路の光パケットの有無情報あるいはその複写とレジスタQの値との演算から決定し、
1より大きいnについて、第nの同期固定長光パケットに与える遅延を演算器P(M+1,n)を用いて、第nの光路の光パケットの有無情報あるいはその複写とレジスタR(M,n−1)とレジスタQの値との演算から決定することにより、それぞれの光路の同期固定長光パケットに与える遅延時間を調整する。
まず、1段目(P1n:2≦n≦N)の演算器P1nについて説明する。ここでは、N個の演算器P1n(ただし、2≦n≦N)に対して、(log2N+1)T時間後以降、(log2N+2)時間後までに、次の処理を行う。ここで、(log2N+1)は、以下の処理を並列処理で行うステップ数であり、Tは、1ステップ当たりの時間である。この処理は、光パケットをそれぞれの遅延素子に振り分けるための光スイッチに到着する前に終了していなくてはならない。
1段目の場合は、ポート(n−1)とポートnへ到着する光パケットの有無を示すln-1、lnに到着時に1を、非到着時に0を入力する。1段目の演算器は、それらの情報を基に下記の処理を行ない、2つのポートに到着した光パケットの有無情報fnを出力する。
開始
0:=0
for each processor n、 in parallel (n:=1 to N)
n,1:=ln-1+ln
終了
また、2段目(P2n:3≦n≦N)の場合は、次のように処理する。
(N−2)個の演算器P2n(ただし、3≦n≦N)に対して、1段目の演算器から得た光パケットの有無情報について、
・ポート(n−1)からポートnに到着した光パケット数を表す、fn,1と、
・ポートmax((n−3),1)からポート(n−2)に到着した光パケット数を表す、fn-2,1と、
を入力する。
また、下記の処理により、ポートmax(n−3,1)からポートnに到着した光パケット数fn,2を出力する。
開始
for each processor n、 in parallel (n:=3 to N)
n,2:=fn,1+fn-2,1
終了
また、3段目(P3n:5≦n≦N)の場合は、次のように処理する。
(N−4)個の演算器P3n(ただし、5≦n≦N)に対して、2段目の演算器から得た光パケットの有無情報について、
・ポート(n−3)からポートnに到着した光パケット数を表す、fn,2と、
・ポートmax((n−7),1)からポート(n−4)に到着した光パケット数を表す、fn-4,2と、
を入力する。
また、ポートmax((n−7),1)からポートnに到着した光パケット数fn,3を次のように求め出力する。
開始
for each processor n、 in parallel (n:=5 to N)
n,3:=fn,2+fn-4,2
終了
一般に、m段目(Pmn:2m-1+1≦n≦N)の場合は次のようにする。
β=2m-1とするとき、(N−2m-1)個の演算器Pmn(ただし、β+1≦n≦N)に対して、(m−1)段目の演算器から得た光パケットの有無情報について、
・ポート(n−2m-1+1)からポートnに到着した光パケット数表す、fn,m-1と、
・ポートmax((n−2m+1),1)からポート(n−2m-1)に到着した光パケット数表す、fn-β,m-1と、を入力する。
また、ポートmax((n−2m+1),1)からnに到着した光パケット数fn,mを次のように求め出力する。
開始
for each processor n、 in parallel (n:=2m-1+1 to N)
n,m:=fn,m-1+fn-β,m-1
終了
以上の処理により、m段の演算器の並列構成におけるパイプライン処理によって、n=1、2、・・・、Nについて、ポート1からポートnまでに到着する光パケット数を求めることができる。
また、(M+1)段目において、遅延を求める。このためのフローチャートを図29に示す。また、このフローチャートに対応するプログラム例を以下に示す。
演算器PM+1,n(ただし、1≦n≦N)については、入力としては、ポート1からn−1までに到着した光パケット数fn-1,M、ポートnに到着する光パケットの有無ln、キュー長qであり、遅延Δnの値を出力する。
開始
for each processor n、 in parallel (n:=1 to N)
begin
if (ln=0) exit;
Δn:=q+fn-1,M;
if (Δn<B) Packet n is given delay Δn;
else Packet n is discarded;
end
終了
遅延の導出と同時に別の演算器Pqで保持されているバッファ占有量の更新を行う。
・入力は、全ポートに到着した光パケット数fN,Mであり、
・内部変数は、Δ、キュー長qで、
・出力は、キュー長qnewである。
new:=max((min(fN,M+q,B)−1,0);
以上の処理をラウンドロビン形式の従来の方法で行う場合は、次のようにすることができる。
開始
for n:=1 to N do
begin
if (ln=0)
begin
if f <B
begin
Packet n is given delay f×T;
f:= f +1;
end
else Packet n is discarded;
end
end
f := max(f−1,0);
終了
このように、従来の方法で、ラウンドロビン型の演算処理では、ループをN回まわす必要があるため、上記の本発明のように並列に演算処理する場合に比べて、1演算器あたりの開始から終了までの処理時間は、長時間である。言い換えると、本発明による演算器の処理時間を単位時間とすると、ラウンドロビン型の演算処理では、ポートあたり1つのパケットを処理するのに、N単位時間かかる。
一般に、種々の光路で伝送された光パケットは、同期がずれているが、既に報告された光同期装置を用いることによって同期した光パケットにすることができる。また、伝送された光パケット最大の光パケット長を、それぞれの光パケット長とすることによって、固定長とすることができる。このような方法により、同期固定長光パケットを用いることができるようになる。
また、前記の同期固定長光パケットを用意する方法は、非同期可変長光パケットの場合でも適用できるものであり、非同期可変長光パケットを、同期固定長光パケットにした後、上記の同期固定長光パケットのバッファリング装置に適用することによっても、非同期可変長光パケットをその出力において重ならないようにバッファリングできることは明らかである。
木状に遅延線バッファユニットを配置し,それぞれにバッファ管理装置を置いた非特許文献6あるいは並列処理により遅延を求める非特許文献5に記載された方法による結果と、本発明の方法による結果とを、N=8,64,256,1024における比較を表13に示す。
ここでN=2kは、入力数であり、Np,TD、Pは、それぞれ、演算器数と処理遅延、演算器あたりの処理時間である。この表13から分かるように、本発明では、用いる演算器数は大きいが、処理遅延(TD)や演算器当たりの処理時間(Tp)を小さくすることができる。また、本発明では、非特許文献5と比べてさらに、演算器あたりの処理時間については、入力数であるN(あるいはk)が増加しても変わらないという特徴がある。このように、処理遅延(TD)や演算器あたりの処理時間を小さくすることができるという特性は、高速なバッファリングを行うために必要である。特に、後者の演算器あたりの処理遅延を小さくできるという特性は、単位時間に数多くの処理を実現するものである。たとえば、N=1024において、非特許文献5では、11単位時間の間に入力あたり1つの処理しかできないが、本発明では、11単位時間の間に入力あたり11の処理ができる。このように、入力数が増加しても演算器当たりの最大処理時間の急速な増大をさけることができることがわかる。これは、本発明の目的とする効果であり、さらにNが大きくなるに従い、この効果はさらに顕著にあらわれる。
一般的に用いられるバッファの状態を表すキューを示す図である。 従来の光パケットスイッチアーキテクチャの例を示す図である。 光パケットスイッチに用いることのできる光スイッチを示す図である。 4入力×1出力の光バッファ構成を示す図である。 従来の光バッファ構成を示す図である。 本発明の光パケットのバッファリング装置を示すブロック図である。 N×1バッファの構成を示すブロック図である。 光パケットのバッファリング装置の構成を示すブロック図である。 N×1バッファの構成を示すブロック図である。 管理情報処理器の構成を示すブロック図である。 管理情報処理器の構成を示すブロック図である。 非同期可変長光パケットのバッファリング装置を説明するためのタイムチャートである。 非同期可変長の場合に用いる並列演算回路のブロック図である。 非同期可変長光パケットのバッファリング装置を説明するためのタイムチャートである。 1段目の並列演算器の演算処理のフローチャートである。 2段目の並列演算器の演算処理のフローチャートである。 3段目の並列演算器の演算処理のフローチャートである。 k段目の並列演算器の演算処理のフローチャートである。 遅延値を出力する段の並列演算器の演算処理のフローチャートである。 キュー長の更新を行う並列演算器の演算処理のフローチャートである。 1段目の並列演算器の演算処理のフローチャートである。 2段目の並列演算器の演算処理のフローチャートである。 3段目の並列演算器の演算処理のフローチャートである。 遅延値を出力する段の並列演算器の演算処理のフローチャートである。 キュー長の更新を行う並列演算器の演算処理のフローチャートである。 非同期可変長の光パケットに用いる他の並列演算回路のブロック図である。 同期固定長の光パケットに用いる並列演算回路のブロック図である。 同期固定長の光パケットに用いる他の並列演算回路のブロック図である。 同期固定長の場合に遅延を求めるためのフローチャートである。
符号の説明
1 光検出器
2 遅延線
3 1×N光スイッチ
4 N×1バッファ
5 ルート情報処理器
6 光検出器
7 遅延線
8 光スイッチ
9 遅延線
10 合波器
11 バッファマネージャ
12 管理情報処理器
13 N×1バッファ

Claims (17)

  1. 複数の光路で伝送された非同期到着する可変長光パケットを入力し、1つの光路に出力する装置であって、
    それぞれの光路の可変長光パケットの光パケット長を読みとる読取手段と、予め用意したクロック信号とそれに引き続く最近の前記可変長光パケットの到着時間との時間差(光パケット前置期間)とを読みとる読取手段と、上記の光パケットを一時的に保管し、B通りの異なった遅延時間のいずれかを上記の光パケットに与える複数の遅延素子からなるキューと、上記の光パケットを上記の複数の遅延素子に振り分ける光スイッチと、上記の遅延された光パケットを合波する合波器と、合波器に接続された出力用の光路とを含み、
    出力用の光路において、入力された光パケットが重ならないようにするために、遅延素子の遅延値と読み取られた光パケット長と光パケット前置期間とを用いて、演算によって一時的に保管する遅延素子を決める制御装置を含み、
    その制御装置においては、上記の複数の光路には1からNの順序数nが与えられているものとし、以下においては、対応するものが無いときにはその値をゼロとするものとするとき、
    それぞれの光路の光パケット長と光パケット前置期間について、
    第1段の演算器とレジスタの並びとして、第(n−1)光路上にある光パケットの光パケット長と光パケット前置期間と、第n光路上の光パケットの光パケット長と光パケット前置期間との演算を行う演算器P(1,n)と、その演算結果を保持するレジスタR(1,n)と、が配置され、
    第m(2≦m≦log2 N)段の並びとして、レジスタR(m−1,n−2m-1)あるいはその複写とレジスタR(m−1,n)あるいはその複写との演算を行う演算器P(m,n)と、その演算結果を保持するレジスタR(m,n)と、が設けられ、
    M=Nとなる第(M+1)段には、演算器とキュー長の最後尾の情報を保持するレジスタQが設けられ、
    さらに、第1の可変長光パケットに与える遅延を、第1光路の光パケット長と光パケット前置期間あるいはその複写とレジスタQの値との演算から決定する演算器P(M+1,1)と、
    1より大きいnについて、第nの可変長光パケットに与える遅延を、第nの光路の光パケット長と光パケット前置期間あるいはその複写とレジスタR(M,n−1)とレジスタQの値との演算から決定する演算器P(M+1,n)と、が、設けられ、
    演算器P(M+1,1)あるいは、演算器P(M+1,n)の出力によりそれぞれの光路の可変長光パケットに与える遅延時間を調整することを特徴とする非同期到着する光パケットのバッファリング装置。
  2. 上記の光路の数をN、その番号をnとし、
    上記の読取手段は、周期Tで読み取りを行い、この読み取り手段を指定された時刻に通過する第n番の光路の光パケットについて、光パケットの長さをln(エルエヌ)とし、光パケット前置期間をtnとし、また、n=0については、ln=tn=0とし、
    上記の複数の遅延素子による遅延は、遅延値Dで増加する遅延として並べることができる構成とするとき、
    上記の演算器は、入力側のそれぞれの光路の数Nについてそれぞれ備えられており、その1からNのうちの整数nについて、
    1)ln-1=0であるとき、tnをtn,1として出力し、あるいは、
    n-1=0でないとき、tn-1を出力tn,1とし、
    2)また、gn-1=ln-1+tn-1、とし、
    3)ln=0であるとき、gn-1 を出力fn,1 とし、あるいは、
    n=0でないとき、Δnを(gn-1−tn)/Dを下回らない最小の整数として、(tn+ln+ΔnD)を出力fn,1とすることを特徴とし、請求項1に記載の光パケットのバッファリング装置に用いる光パケットのバッファリング方法。
  3. 請求項2に記載された複数の演算器を1段目の演算器と呼ぶものとして、
    1段目のそれぞれの演算器P(1,n)には、それぞれの出力(fn,1、tn,1)を一時的に保存するレジスタR(1,n)が設けられており、
    3からNのnについて、n番目のレジスタ内容と(n−2)番目のレジスタ内容とを演算し、出力(fn,2、tn,2)を与える2段目のn−2番目の演算器P(2,n)が備えられている装置のバッファリング方法であって、
    1)fn-2,1=0であるとき、tn,1をtn,2として出力し、あるいは、
    n-2, 1=0でないとき、tn-2,1をtn,2として出力し、
    2)また、fn,1=0であるとき、fn-2,1をfn,2として出力し、あるいは、fn,1=0でないときで、
    2−1)Δnを(fn-2,1−tn,1)/Dを下回らない最小の整数として、(fn,1+ΔnD)を出力fn,2とする、
    ことを特徴とする請求項2に記載の光パケットのバッファリング方法。
  4. 請求項2に記載された複数の演算器を1段目の演算器と呼ぶものとして、
    1段目のそれぞれの演算器P(1,n)には、それぞれの出力(fn,1、tn,1)を一時的に保存するレジスタR(1,n)が設けられており、2からlog2Nまでの整数mについて、(m−1)段目の演算器が定義されているとき、
    m段目の演算器について、β=2m-1として、β+1からNのnについて、前段の演算器P(m−1,n)に接続された上記のn番目のレジスタ内容R(m−1,n)と(n−β)番目のレジスタ内容R(m−1,n−?)とを演算し、出力(fn,m、tn,m)を与えるm段目の(n−β)番目の演算器P(m,n)が備えられている装置のバッファリング方法であって、
    1)fn-β,m-1=0であるとき、tn,m-1をtn,mとして出力し、あるいは、
    n-β,m-1=0でないとき、tn-β,m-1を出力tn,mとし、
    2)また、fn,m-1=0であるとき、fn-β,m-1をfn,mとして出力し、あるいは、
    n,m-1=0でないとき、
    2−1)Δnを(fn-β,m-1−tn,m-1)/Dを下回らない最小の整数として、(fn,m-1+ΔnD)を出力fn,mとする、
    ことを特徴とする請求項2に記載の光パケットのバッファリング方法。
  5. 上記のキューの長さをqとするとき、M=log2N、とするとき、1からNのうちの整数nについて、
    1)ln≠0でない場合には、終了し、
    n≠0である場合で、レジスタR(M,n−1)にあるfn-1Mについて、
    2)fn-1,M=0のときには、臨時の値(temp)を設けて、(temp)=qとし、
    n-1,M=0でないときには、(q−tn-1,M)/Dを下回らない最小の整数とfn-1,Mとの和を(temp)とし、
    3)((temp)−tn)/Dを下回らない最小の整数をΔnとして、
    ΔnがBよりも小さいときは、Δnを遅延素子を指定する情報として出力し、
    小さくないときは、それに対応する光パケットを棄却する、
    ことを特徴とする請求項4に記載の光パケットのバッファリング方法。
  6. 1)レジスタR(N,M)に保持されたfN,Mについて、
    N,M=0が成立する場合は、(q−T)と0との大きいほうを新規のキュー長(qnew)としてその値をレジスタQに保持し、
    N,M=0が成立しない場合は、Δを(q−tN,M)/Dを下回らない最小の整数とするとき、
    2)このΔが上記のBより小さいときには、fN,M+ΔD−T と、0との大きいほうの値を新規のキュー長としレジスタQに保持し、
    このΔがBより小さくないときには、(q−T)を新規のキュー長とし、レジスタQに保持する、
    ことを特徴とする請求項5に記載の光パケットのバッファリング方法。
  7. MTU(最大転送サイズ)が設定されている場合で、
    1)レジスタR(M,N)に保持されたfN,MについてfN,M=0が成立する場合は、(q−T)と0との大きいほうを新規のキュー長(qnew)としてその値をレジスタQに保持し、
    N,M=0が成立しない場合は、Δを(q−tN,M)/Dを下回らない最小の整数とするとき、
    2)このΔがBより小さいときには、(fN,M+ΔD)と、(BD+MTU)との小さいほうからTを引いた値と、0との大きいほうの値を新規のキュー長としてその値をレジスタQに保持し、
    このΔがBより小さくないときには、(q−T)を新規のキュー長とし、レジスタQに保持する、
    ことを特徴とする請求項5に記載の光パケットのバッファリング方法。
  8. 上記の光路の数をN、その番号をnとし、周期Tを適当に決めた単位時間(τ)の2の累乗倍、すなわち、T=2aτ(aは非負の整数)に設定し、ただし、Tは単位時間(τ)の整数倍の長さで表される最小パケット長を上回らないものとし、上記の読取手段は、周期Tで読み取りを行い、この読み取り手段を指定された時刻に通過する第n番の光路の光パケットについて、光パケットの長さを単位時間の整数倍の長さで表されるln(エルエヌ)とし、光パケット前置期間を単位時間の整数倍の長さで表されるtnとし、前記の光パケットの長さは、その長さを下回らない単位時間の整数倍で表すものとし、前記の前置期間は、その前置期間を上回らない単位時間の整数倍で表すものとし、また、n=0については、ln=tn=0とし、
    上記の複数の遅延素子による遅延は、遅延値Dで増加する遅延として並べることができる構成とし、Dを2k(kは非負の整数)で与えるとき、また、表記法として、整数xの2進数の下位kビットに相当する整数をx(2)とし、前記の下位kビットを除いた残りの上位ビットで構成される2進数をx(1)とするとき、
    上記の演算器は、入力側のそれぞれの光路の数Nについてそれぞれ備えられており、その1からNまでの整数nについて、
    1)ln-1=0であるとき、tnをtn,1として出力し、あるいは、
    n-1=0でないとき、tn-1を出力tn,1として出力し、
    2)また、gn-1=ln-1+tn-1、とし、
    3)ln=0であるとき、gn-1をfn,1として出力し、
    n=0でないとき、gn-1がtn以下の場合には、gn-1 (1)をΔnとし、
    n-1がtn以下でない場合には、(gn-1 (1)+1)をΔnとし、
    4)(tn (2)+ln+2kΔn)を出力fn,1とする、
    ことを特徴とする請求項1に記載の非同期到着する光パケットのバッファリング方法。
  9. 請求項8に記載された複数の演算器を1段目の演算器と呼ぶものとして、
    1段目のそれぞれの演算器P(1,n)には、それぞれの出力(fn,1、tn,1)を一時的に保存するレジスタR(1,n)が設けられており、2からlog2Nまでの整数mについて、(m−1)段目の演算器が定義されているとき、
    m段目の演算器について、β=2m-1として、β+1からNのnについて、前段の演算器P(m−1,n)に接続された上記のn番目のレジスタ内容R(m−1,n)と(n−β)番目のレジスタ内容R(m−1,n−?)とを演算し、出力(fn,m、tn,m)を与えるm段目の(n−β)番目の演算器P(m,n)が備えられている装置のバッファリング方法であって、
    1)fn-β,m-1=0であるとき、tn,m-1をtn,mとして出力し、あるいは、
    n-β,m-1=0でないとき、tn-β,m-1を出力tn,mとし、
    2)また、fn,m-1=0であるとき、fn-β,m-1をfn,mとして出力し、あるいは、
    n,m-1=0でないときで、
    2−1) fn-β,m-1 (2)がtn,m-1 (2)以下の時には、fn-β,m-1 (1)をΔnとし、
    2−2) fn-β,m-1がtn,m-1以下でない時には、(fn-β,m-1 (1)+1)をΔnとし、
    3) (fn,m-1+2kΔn)をfn,mとして出力する、
    ことを特徴とする請求項8に記載の光パケットのバッファリング方法。
  10. 上記のキューの長さをqとするとき、1からNのうちの整数nについて、M=log2 N とするとき、
    1)ln≠0でないときには、終了し、
    2)ln≠0のときには、
    2−1)fn-1,M=0のときで、
    (2)がtn (2)以下のときには、q(1)をΔnとし、
    (2)がtn (2)以下でないときには、(q(1)+1)をΔnとし、
    2−2)fn-1,M=0でないときで、
    (2)がtn-1,M (2)以下のときには、q(1)をΔ1とし、
    (2)がtn-1,M (2)以下でないときには、(q(1)+1)をΔ1とし、さらに、
    2−3−1)fn-1,M (2)がtn (2)以下のときには、(Δ1+fn-1,M (1))をΔnとし、
    2−3−2)fn-1,M (2)がtn (2)以下でないときには、(Δ1+1+fn-1,M (1))をΔnとし、
    3)ΔnがBよりも小さいときは、Δnを遅延素子を指定する情報として出力し、
    小さくないときは、それに対応する光パケットを棄却する、
    ことを特徴とする請求項8に記載の光パケットのバッファリング方法。
  11. M=log2Nとするとき、
    1)fN,M=0が成立する場合で
    1−1) qがTより大きいときは、(q−T)新規のキュー長を(qnew)とし、
    1−2) qがTより大きくないときは、qnew=0とし、
    2)fN,M=0でない場合で、
    2−1)q(2)がtN,M (2)以下のときには、q(1)をΔとし、
    (2)がtN,M (2)以下でないときには、(q(1)+1)をΔとし、
    3−1)このΔがBより小さいときで、
    3−1−1)fN,M+2kΔがTより大きいときには、(fN,M+2kΔ−T)をqnewとし、
    3−1−2)fN,M+2kΔがTより大きくないときには、qnew=0とし、
    3−2)このΔがBより小さくないときには、(q−T)をqnewとする、
    ことを特徴とする請求項9に記載の光パケットのバッファリング方法。
  12. MTU(最大転送サイズ)が設定されている場合で、
    M=log2Nとするとき、
    1)fN,M=0が成立する場合で
    1−1) qがTより大きいときは、(q−T)を新規のキュー長(qnew)とし、
    1−2) qがTより大きくないときは、qnew=0とし、
    2)fN,M=0でない場合で、
    2−1)q(2)がtN,M (2)以下のときには、q(1)をΔとし、
    (2)がtN,M (2)以下でないときには、(q(1)+1)をΔとし、
    3−1)このΔがBより小さいときで、
    3−1−1)(fN,M+2kΔ)が(2kB+MTU)よりも大きいときは、(2kB+MTU−T)をqnewとし、
    3−1−2)(fN,M+2kΔ)が(2kB+MTU)よりも大きくないときで、
    3−1−2−1)fN,M+2kΔがTより大きいときには、(fN,M+2kΔ−T)をqnewとし、
    3−1−2−2)fN,M+2kΔがTより大きくないときには、qnew=0とし、
    3−2)このΔがBより小さくないときには、(q−T)をqnewとする、
    ことを特徴とする請求項9に記載の光パケットのバッファリング方法。
  13. 複数の光路から同期固定長光パケットを入力し、それぞれの光パケットにB通りの異なった遅延時間のいずれかを与えてひとつの光路に出力する装置であって、
    それぞれの光路の光パケットの有無を読みとる読取手段と、
    上記の複数の光パケットを一時的に保管してB通りの異なった遅延時間のいずれかを与える複数の遅延素子からなるキューと、上記の光パケットを上記の複数の遅延素子に振り分ける光スイッチと、上記の複数の遅延素子に光路で接続された合波器と、合波器に接続された出力用の光路とを含み、
    出力用の光路において光パケットが重ならないようにするために、遅延素子の遅延値と、読み取られた光パケットの有無情報とを用いて、演算によって一時的に保管する遅延素子を決める制御装置を備え、
    この制御装置は、
    上記の複数の光路には1からNの順序数nが与えられているものとし、以下においては、nについて対応するものが無いときには無視するものとするとき、
    それぞれの光路の光パケット数について、
    第1段の演算器とレジスタの並びとして、第(n−1)光路上にある光パケットの光パケットの有無情報と、第n光路上の光パケットの光パケットの有無情報と、の演算を行う演算器P(1,n)と、その演算結果を保持するレジスタR(1,n)と、が配置され、
    第m(2≦m≦log2 N)段の並びとして、レジスタR(m−1,n−2m-1)あるいはその複写とレジスタR(m−1,n)あるいはその複写との演算を行う演算器P(m,n)と、その演算結果を保持するレジスタR(m,n)と、が設けられ、
    M=Nとなる整数Mについて、第M+1段には、演算器とキュー長の最後尾の情報を保持するレジスタQが設けられ、
    さらに、第1の同期固定長光パケットに与える遅延を、第1光路の光パケットの有無情報あるいはその複写とレジスタQの値との演算から決定し、
    1より大きいnについて、第nの同期固定長光パケットに与える遅延を演算器P(M+1,n)を用いて、第nの光路の光パケットの有無情報あるいはその複写とレジスタR(M,n−1)とレジスタQの値との演算から決定することにより、それぞれの光路の同期固定長光パケットに与える遅延時間を調整することを特徴とする光パケットのバッファリング装置。
  14. それぞれの光路の光パケットの有無を周期Tごとに読みとる読取手段を備え、第1段のそれぞれの演算器は、ポート(n−1)とポートnへ到着する光パケットの有無にしたがってln-1、lnに、到着時に1、非到着時に0を入力し、
    0:=0とし、
    1からNまでの整数nについて、
    n,1:=ln-1+ln
    とする演算を行ない、2つのポートに到着した光パケット数fn,1を出力する演算器であることを特徴とする請求項13に記載の光パケットのバッファリング装置。
  15. 請求項14に記載された複数の演算器を1段目の演算器と呼ぶものとして、1段目のそれぞれの演算器P(1,n)には、それぞれの出力(fn,1)を一時的に保存するレジスタR(1,n)が設けられており、2からlog2Nまでの整数mについて、(m−1)段目の演算器が定義されているとき、m段目の演算器について、
    β=2m-1として、β+1からNまでのnについて、前段の演算器P(m−1,n)に接続されたn番目のレジスタR(m−1,n)の値と前段の演算器P(m−1,n−β)に接続された(n−β)番目のレジスタR(m−1,n−β)の値とについて、
    n,m:=fn,m-1+fn-β,m-1
    とする演算を演算器P(m,n)で行ない、fn,mを出力として与えることを特徴とする請求項14に記載の光パケットのバッファリング装置。
  16. 第(M+1)段目における演算器P(M+1,n)(ただし、1≦n≦N)は、
    ポート1からn−1までに到着した光パケット数fn-1,M、と、
    ポートnに到着する光パケットの有無ln、と、
    キュー長qとを用いて、1からNまでの整数nについて
    n=0の場合は、終了し
    そうでない場合は、Δn:=q+fn-1,Mとするが、
    もし、Δn<Bの場合は、光パケットに、Δnの遅延を与え、
    Δn<Bでない場合は、その光パケットを棄却する、
    という処理を順に行って遅延Δnの値を、遅延素子を指定する情報として出力することを特徴とする請求項15に記載の光パケットのバッファリング装置。
  17. レジスタR(M,N)に保持されたfN,Mについて、(min(q+fN,M ,B)−1)と0との大きいほうの値を新規のキュー長(qnew)としてその値をレジスタQに保持する、
    ことを特徴とする請求項16に記載の光パケットのバッファリング装置。
JP2003272621A 2003-07-09 2003-07-09 光パケットのバッファリング装置とそのバッファリング方法 Expired - Lifetime JP3757286B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003272621A JP3757286B2 (ja) 2003-07-09 2003-07-09 光パケットのバッファリング装置とそのバッファリング方法
US10/886,645 US7693421B2 (en) 2003-07-09 2004-07-09 Optical packet buffering device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003272621A JP3757286B2 (ja) 2003-07-09 2003-07-09 光パケットのバッファリング装置とそのバッファリング方法

Publications (2)

Publication Number Publication Date
JP2005033661A true JP2005033661A (ja) 2005-02-03
JP3757286B2 JP3757286B2 (ja) 2006-03-22

Family

ID=34190835

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003272621A Expired - Lifetime JP3757286B2 (ja) 2003-07-09 2003-07-09 光パケットのバッファリング装置とそのバッファリング方法

Country Status (2)

Country Link
US (1) US7693421B2 (ja)
JP (1) JP3757286B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008211530A (ja) * 2007-02-26 2008-09-11 National Institute Of Information & Communication Technology 光パケットバッファ制御装置とその制御方法
KR100997024B1 (ko) * 2007-09-27 2010-11-25 엔비디아 코포레이션 스캔 연산을 수행하기 위한 시스템, 방법 및 컴퓨터 판독가능한 기록 매체

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7742486B2 (en) * 2004-07-26 2010-06-22 Forestay Research, Llc Network interconnect crosspoint switching architecture and method
US7508836B2 (en) * 2004-12-01 2009-03-24 Arm Limited Data processing apparatus and method for handling transactions
KR100675838B1 (ko) * 2004-12-20 2007-01-29 한국전자통신연구원 다중 채널 링크에서 프레임의 순서유지를 포함하는 프레임 전송량 분배 장치, 방법 및 이를 이용한 다중채널 송신기
US20060268692A1 (en) * 2005-05-31 2006-11-30 Bellsouth Intellectual Property Corp. Transmission of electronic packets of information of varying priorities over network transports while accounting for transmission delays
US7965708B2 (en) * 2005-06-07 2011-06-21 Cisco Technology, Inc. Method and apparatus for using meta-packets in a packet processing system
US8559443B2 (en) 2005-07-22 2013-10-15 Marvell International Ltd. Efficient message switching in a switching apparatus
US7881617B2 (en) * 2006-02-24 2011-02-01 Cisco Technology, Inc. Buffering schemes for optical packet processing
US7835649B2 (en) * 2006-02-24 2010-11-16 Cisco Technology, Inc. Optical data synchronization scheme
US20100076941A1 (en) * 2008-09-09 2010-03-25 Microsoft Corporation Matrix-based scans on parallel processors
US8306047B2 (en) * 2009-07-29 2012-11-06 University Of Southern California Packet switch with separate look ahead, computation, and shift phases
JP6249403B2 (ja) * 2014-02-27 2017-12-20 国立研究開発法人情報通信研究機構 光遅延線及び電子バッファ融合型光パケットバッファ制御装置
US10037301B2 (en) * 2015-03-04 2018-07-31 Xilinx, Inc. Circuits and methods for inter-processor communication
US9609402B2 (en) * 2015-03-26 2017-03-28 Amazon Technologies, Inc. Optical transmittal storage networks
US10394743B2 (en) * 2015-05-28 2019-08-27 Dell Products, L.P. Interchangeable I/O modules with individual and shared personalities
EP3420651B1 (en) * 2016-02-26 2023-10-18 Telefonaktiebolaget LM Ericsson (PUBL) Chromatic dispersion compensation
TWI641268B (zh) * 2017-10-16 2018-11-11 中華電信股份有限公司 運用於資料中心網路之光交換系統

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7106967B2 (en) * 2001-09-04 2006-09-12 Doron Handelman Optical packet switching apparatus and methods

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008211530A (ja) * 2007-02-26 2008-09-11 National Institute Of Information & Communication Technology 光パケットバッファ制御装置とその制御方法
KR100997024B1 (ko) * 2007-09-27 2010-11-25 엔비디아 코포레이션 스캔 연산을 수행하기 위한 시스템, 방법 및 컴퓨터 판독가능한 기록 매체

Also Published As

Publication number Publication date
US20050041970A1 (en) 2005-02-24
US7693421B2 (en) 2010-04-06
JP3757286B2 (ja) 2006-03-22

Similar Documents

Publication Publication Date Title
JP3757286B2 (ja) 光パケットのバッファリング装置とそのバッファリング方法
US7602790B2 (en) Two-dimensional pipelined scheduling technique
JP2962673B2 (ja) 通信制御装置
USRE43110E1 (en) Pipelined maximal-sized matching cell dispatch scheduling
US7065046B2 (en) Scalable weight-based terabit switch scheduling method
KR20000047434A (ko) 입력/출력 테라비트 스위치들을 위한 rrgs-라운드-로빈 그리디 스케쥴링
EP1668928A1 (en) Matching process
JP4849627B2 (ja) 光パケットバッファ制御装置とその制御方法
Chang et al. Using switched delay lines for exact emulation of FIFO multiplexers with variable length bursts
US6714554B1 (en) Method and system for sorting packets in a network
US7542464B2 (en) Switching network
JP2002094527A (ja) 複数データ同時処理のメモリ書き込み判断回路及び該回路を備えたatmスイッチ
Wang et al. Efficient designs of optical LIFO buffer with switches and fiber delay lines
Zhang et al. An analytical model for shared fiber-delay line buffers in asynchronous optical packet and burst switches
Liu et al. In-order packet scheduling in optical switch with wavelength division multiplexing and electronic buffer
JP2002252628A (ja) パケット出力調停装置
JP2004236236A (ja) 非同期到着する可変長パケットのバッファリング装置とその方法
Cheng et al. On the maximum buffer size achieved in a class of constructions of optical priority queues
JP2007288280A (ja) 同期光パケット交換ネットワークにおける波長割当最適化計算法及び波長割当制御による衝突回避方法
Wang et al. Packets scheduling for optical SDL LIFO buffers
Cheng et al. Constructions of Optical MIMO Priority Queues With Time-Varying Service Capacity
Ng et al. On improving the performance of shared buffered banyan networks
JPH11163882A (ja) Atmスイッチ
Liu et al. Mathematical analysis of the parallel packet switch with a sliding window scheme
KR20080034065A (ko) 다중 채널 입력 큐 스위치 장치와 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051007

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

R150 Certificate of patent or registration of utility model

Ref document number: 3757286

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term