JP4252379B2 - 可変長フレームバッファ装置 - Google Patents
可変長フレームバッファ装置 Download PDFInfo
- Publication number
- JP4252379B2 JP4252379B2 JP2003190297A JP2003190297A JP4252379B2 JP 4252379 B2 JP4252379 B2 JP 4252379B2 JP 2003190297 A JP2003190297 A JP 2003190297A JP 2003190297 A JP2003190297 A JP 2003190297A JP 4252379 B2 JP4252379 B2 JP 4252379B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- frame
- amount
- address
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
- Communication Control (AREA)
Description
【発明の属する技術分野】
この発明は、可変長フレームデータのバッファリングを行い、送信可能なバーストデータ量をフレーム単位に通知する可変長フレームバッファ装置に関するものである。
【0002】
【従来の技術】
1対N接続の通信形態を採る例えばPON(Passive Optical Network)システムにおいては、1側である親局は、N側の子局に親局への送信時間を許可して通信を行う。そのとき、子局は、送信可能なバーストデータ量を親局に通知して高効率な通信を行えるようにしている。また、例えば、非特許文献1では、上限付きバッファ量の通知によって、低遅延かつ高効率に通信を行う方法が開示されている。
【0003】
ところで、例えば、イーサネット(登録商標)等においては、バーストデータは複数の可変長フレームによって構成されているので、フレームを意識しない場合は、空白となる時間が発生してしまう。したがって、可変長フレームの送信では、送信可能なバーストデータ量をフレーム単位に通知することができれば、空白となる時間を無くすことが可能となり、高効率な通信が行える。
【0004】
【非特許文献1】
「高効率・低遅延を実現するGE−PONグラント/リクエスト方式」(2002年、電子情報通信学会総合大会B−8−44、414頁)
【0005】
【発明が解決しようとする課題】
しかしながら、送信可能なバーストデータ量をフレーム単位に通知する場合には、ある閾値以下のバッファ量をフレーム単位に検索することになるが、この検索時間が大きくなることは、送信可能なバッファ量を通知し、その送信時間が決められている通信形態を採るシステムにおいては、遅延の増大やスループットの低下を招くことになる。したがって、短時間に検索できること、しかも検索時間は常に一定していることが必要であるが、それをどのようにして実現するかが問題である。
【0006】
この発明は、上記に鑑みてなされたもので、可変長フレームデータをバッファリングし、送信可能なバーストデータ量をフレーム単位に通知する際に、ある閾値以下のバッファ量をフレーム単位に検索する処理時間を短縮することのできる可変長フレームバッファ装置を得ることを目的とする。
【0007】
【課題を解決するための手段】
上記目的を達成するため、この発明にかかる可変長フレームバッファ装置は、可変長フレームデータを入力順に格納するフレームバッファと、入力フレーム毎に1つカウントアップするフレーム番号をアドレスとし前記フレームバッファに格納する際の先頭アドレスとフレーム長とを格納するバッファ情報用メモリと、前記フレームバッファと同じアドレス空間を持ち前記フレーム番号を格納するフレーム番号用バッファと、外部からのバッファ量通知要求を受けて、前記フレームバッファの読み出し次先頭アドレスにある閾値を足した値を読み出しアドレスとして前記フレーム番号用バッファに与えてフレーム番号を取得し、それを読み出しアドレスとして前記バッファ情報用メモリからフレームの区切れとなる先頭アドレスを検索し、その検索した先頭アドレスと前記次先頭アドレスとの間のバッファ量を前記バッファ量通知要求に対するバッファ量通知として出力するバッファ量検索手段とを備えることを特徴とする。
【0008】
この発明によれば、可変長フレームデータを格納するフレームバッファと同じアドレス空間にフレーム番号を格納するフレーム番号用バッファを設けたので、バッファ量検索手段は、前記フレームバッファの読み出し次先頭アドレスにある閾値を足した値を読み出しアドレスとして前記フレーム番号用バッファに与えてフレーム番号を取得し、それを読み出しアドレスとして前記バッファ情報用メモリからフレームの区切れとなる先頭アドレスを検索する、という1回の足し算と2回のメモリアクセスのみで、フレーム単位のバッファ量を検索することができる。
【0009】
そして、フレーム間にギャップが設けられる場合には、前記フレームバッファ、前記バッファ情報用メモリおよび前記フレーム番号用バッファへの書き込みをそれぞれ制御する書き込み制御手段は、前記フレームバッファに可変長フレームデータを格納する際にフレーム間ギャップ分のデータを含めて書き込みを制御し、同時に前記フレーム番号用バッファにおいて前記フレーム間ギャップ分の領域にフレーム番号を書き込む制御を行うようにすることができるので、フレーム間ギャップを必要とする通信形態にも対応することができる。
【0010】
また、フレーム間にギャップが設けられる場合には、偏差調整手段を前記書き込み制御手段の入力段に設け、入力する可変長フレームデータの動作クロックを装置間に存在するクロック偏差を考慮した早いクロックに変換し、その変換した早いクロックにて前記書き込み制御手段を動作させることで、装置間にクロック偏差が存在する場合には、そのクロック偏差を調整することができる。
【0011】
一方、前記バッファ量検索手段は、通信許可時間が与えられる場合に、前記フレームバッファの読み出し次先頭アドレスに前記通信許可時間を足した値を読み出しアドレスとして前記フレーム番号用バッファに与えてフレーム番号を取得し、それを読み出しアドレスとして前記バッファ情報用メモリから前記通信許可時間における送信可能なフレーム単位のバッファ量を検索し、その検索した送信可能なフレーム単位のバッファ量を引いた残りのバッファ量について上記したフレーム単位の検索を複数回行うことができるので、実際のバッファ量により近い値のバッファ量を通知することができる。したがって、通信許可時間を与える側では、ほぼ正確なバッファ量を知ることができるので、何らかの帯域制御が行えるようになる。
【0012】
加えて、上記した可変長フレームバッファ装置の複数個のそれぞれが備える前記バッファ量検索手段を相互に関連付けて制御することで前記複数の可変長フレームバッファ装置を跨ったフレーム単位のバッファ量検索を実現することができる。
【0013】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる可変長フレームバッファ装置の好適な実施の形態を詳細に説明する。
【0014】
実施の形態1.
図1は、この発明の実施の形態1である可変長フレームバッファ装置の構成を示すブロック図である。図1に示す可変長フレームバッファ装置は、フレームデータを保持するフレームバッファ1と、フレーム番号を書き込み・読み出しのアドレスとしてフレームバッファ1に保持されたフレームデータの「先頭アドレスとフレーム長」を保持するバッファ情報用メモリ(2portメモリ)2と、フレームバッファ1と同じアドレス空間を持ち入力フレーム毎に1つカウントアップするフレーム番号を格納するフレーム番号用バッファ(2portメモリ)3と、書き込み制御部4と、読み出し制御部5と、実バッファ量管理部6と、フレーム区切れ検索制御部7と、セレクタ8とを備えている。
【0015】
フレームバッファ1、バッファ情報用メモリ2、およびフレーム番号用バッファ3は、それぞれ、2portメモリであって、同じアドレス値で書き込みと読み出しが行えるようになっている。
【0016】
書き込み制御部4は、フレームバッファ1、バッファ情報用メモリ2、およびフレーム番号用バッファ3への書き込みを制御する。書き込み制御部4には、外部から入力フレームデータ14の他に、入力フレームデータ14が有効中であることを示す入力フレームデータバリッド信号15も入力される。
【0017】
読み出し制御部5は、外部からの出力許可信号21に応答してセレクタ8を介してフレーム番号(アドレス)22をバッファ情報用メモリ2に与え、バッファ情報用メモリ2から「先頭アドレス+フレーム長」23とを読み出す。そして、それを読み出しアドレス11としてフレームバッファ1に与え保持されているフレームデータを読み出し、外部に出力パケットデータ(フレームデータ)24と出力パケットデータ24が有効中であることを示す出力フレームイネーブル信号25とを出力する制御を行う。このとき、読み出し制御部5は、フレーム区切れ検索制御部7に対して、次先頭アドレス26を出力するようにしている。
【0018】
実バッファ量管理部6は、フレームバッファ1に対する書き込みアドレス10と読み出しアドレス11とから実バッファ量を管理し、書き込み制御部4に対しては、書き込み禁止信号12を出力し、読み出し制御部5に対しては、フレームデータの有無情報13を出力するようになっている。
【0019】
フレーム区切れ検索制御部7は、外部からのバッファ量通知要求30を受けて、読み出し制御部5からの次先頭アドレス26と予め設定されるバッファ量通知量閾値31とを足した値からなる読み出しアドレス32をフレーム番号用バッファ3に与え、読み出したフレーム番号33をさらにフレーム番号(アドレス)34としてセレクタ8を介してバッファ情報用メモリ2に与え、バッファ情報用メモリ2から“「先頭アドレス」と「フレーム長」”35を読み出し、ある閾値を越えないフレーム単位の区切れを検索し、バッファ量通知要求30に対する応答として外部にバッファ量通知36を出力する。
【0020】
このとき、フレーム区切れ検索制御部7は、セレクタ8に選択信号20を与えてセレクタ8の選択制御も行っている。すなわち、フレーム区切れ検索制御部7は、セレクタ8に与える選択信号20を、外部からのバッファ量通知要求8を受けたときの短期間だけセレクタ8が自フレーム区切れ検索制御部7を選択し、その他の通常期間では読み出し制御部5を選択するように発生する。
【0021】
次に、動作について説明する。まず、図1を参照してフレームメモリ1へのバッファリング動作について説明する。書き込み制御部4は、入力フレームデータ14が入力フレームデータバリッド信号15と共に入力されると、まず、フレームバッファ1に対して書き込みアドレス10を出力し、実バッファ量管理部6からの書き込み禁止信号12の内容を判断する。実バッファ量管理部6は、フレームバッファ1への書き込みアドレス10から書き込み可能な領域の有無を判断する。書き込み制御部4は、実バッファ量管理部6からの書き込み禁止信号12の内容が書き込み可能を示す場合に、入力されたフレームデータ14をフレームバッファ1に書き込む。
【0022】
また、書き込み制御部4は、フレーム番号16を書き込みアドレスとし、フレームバッファ1に書き込みが完了したフレームデータ14の“「先頭アドレス」と「フレーム長」”17をバッファ情報用メモリ2に書き込む。なお、フレーム番号16は、0から始まるカウンタ値であり、バッファ情報用メモリ2に書き込みが完了した後に「+1」される。また、フレーム長17は、入力フレームデータバリッド信号15の長さをカウントした値である。
【0023】
このとき、書き込み制御部4は、バッファ情報用メモリ2に書き込みが完了すると、並行して、フレーム区切れ検索制御部7に対し、「先頭アドレス+フレーム長」の値を末尾アドレス19として通知するようにしている。なお、末尾アドレス19は、次の書き込みアドレス10を保持した値でもよい。
【0024】
さらに、書き込み制御部4は、入力するフレームデータ14をフレームバッファ1に書き込む際、同じ書き込みアドレス10を用いて、フレーム番号用バッファ3に上記のフレーム番号16をデータ18として書き込む。
【0025】
一方、読み出し制御部5は、出力許可信号21をトリガとし、フレームデータを出力する毎に「+1」されるフレーム番号22を読み出しアドレスとしてセレクタ8を介してバッファ情報用メモリ2に与え、バッファ情報用メモリ2からフレームバッファ1の先頭フレームの情報(「先頭アドレス」と「フレーム長」)23を読み出す。そして、その情報(先頭アドレス+フレーム長)23を読み出しアドレス11としてフレームバッファ1に与え、実バッファ量管理部6からのフレーム有無情報13の内容を判断する。実バッファ量管理部6は、フレームバッファ1への読み出しアドレス11からフレームデータの存在有無を判断する。
【0026】
読み出し制御部5は、実バッファ量管理部6からのフレーム有無情報13の内容が「有」であるとき、フレームバッファ1からフレーデータ24を読み出し、出力フレームイネーブル信号25と共に外部に出力する。なお、読み出し制御部5は、実バッファ量管理部7からのフレーム有無情報13がフレームバッファ1が「空」を示す場合は上記の動作は行わない。
【0027】
このとき、読み出し制御部5は、出力時に得た“「先頭アドレス」と「フレーム長」”23から次先頭アドレス26(「先頭アドレス」+「フレーム長」)を演算し、フレーム区切れ検索制御部7に通知するようにしている。この次先頭アドレスは、次の読み出しアドレス11を保持した値でもよい。
【0028】
次に、フレーム単位のバッファ量通知動作について説明する。ここでは、フレーム番号用バッファ3の存在意義を明らかにするため、フレーム番号用バッファ3が在る場合(図2)の他に、フレーム番号用バッファ3が無い場合(図3)についても説明する。図1においてフレーム番号用バッファ3が無い場合には、読み出し制御部5は、フレーム区切れ検索制御部7に破線で示す先頭フレーム番号27を与えることになる。なお、バッファ量通知要求30と出力許可信号21とは、同時に入力されないことを前提としている。
【0029】
図2では、入力するフレームデータ14の書き込み、出力パケットデータ(フレームデータ)24の読み出しを複数回繰り返したときのフレームバッファ1、バッファ情報用メモリ2、フレーム番号用バッファ3の状態の一例が示されている。また、同様に図3では、入力するフレームデータ14の書き込み、出力パケットデータ(フレームデータ)24の読み出しを複数回繰り返したときのフレームバッファ1、バッファ情報用メモリ2の状態の一例が示されている。
【0030】
図1を参照しつつ図2に沿って、フレーム番号用バッファ3が在る場合におけるフレーム単位のバッファ量通知動作について説明する。フレーム区切れ検索制御部7では、予めバッファ量通知量閾値31が設定されている。フレーム区切れ検索制御部7は、バッファ量通知要求30が入力されると、読み出し制御部5が指示する「次先頭アドレス26」に「バッファ量通知量閾値31」を足した値をフレーム番号用バッファ3に与える読み出しアドレス32とし、フレーム番号用バッファ3からフレーム番号33を読み出す。その後、選択信号20を用いてセレクタ8に自フレーム区切れ検索制御部7を選択させ、読み出したフレーム番号33をフレーム番号34としてセレクタ8を介してバッファ情報用メモリ2に与える読み出しアドレスとし、バッファ情報用メモリ2から「先頭アドレスAD3+フレーム長LEN3」35を読み出す。
【0031】
これによって、通知バッファ量38は、「先頭アドレスAD3−次先頭アドレス26」として確定し、フレーム単位のバッファ量通知36として出力されることになる。なお、(末尾アドレス19)−(次先頭アドレス26)<(バッファ量通知量閾値31)の場合は、検索せずに、(末尾アドレス19)−(次先頭アドレス26)の値をフレーム単位のバッファ量通知36の通知バッファ量とする。このように、フレーム番号用バッファ3を備える場合には、1回の足し算と2回のメモリアクセスのみでフレーム単位のバッファ量を検索することが可能となる。
【0032】
次に、図1を参照して図3に沿って、フレーム番号用バッファ3を備えない場合におけるフレーム単位のバッファ量通知動作について説明する。フレーム区切れ検索制御部7は、バッファ量通知要求30が入力されると、選択信号20を用いてセレクタ8に自フレーム区切れ検索制御部7を選択させる。そして、読み出し制御部5からの先頭フレーム番号27をセレクタ8を介してバッファ情報用メモリ2に与える読み出しアドレス(フレーム番号34)としバッファ情報用メモリ2から“「先頭アドレスAD0」と「フレーム長LEN0」”35を読み出し、読み出したフレーム長LEN0とバッファ量通知量閾値31との大小関係を比較する。
【0033】
その結果、フレーム長LEN0が小さい場合は、フレーム番号を+1した読み出しアドレス(フレーム番号34)を与えて再びバッファ情報用メモリ2から“「先頭アドレスAD1」と「フレーム長LEN1」”35を読み出し、前回読み出したフレーム長LEN0に今回読み出したフレーム長LEN1を足した値とバッファ量通知量閾値31との大小関係を比較する。
【0034】
そして、「LEN0+LEN1」の方が小さい場合は、再びフレーム番号を+1した読み出しアドレス(フレーム番号34)を与えて再びバッファ情報用メモリ2から“「先頭アドレスAD2」と「フレーム長LEN2」”35を読み出す。今度も「LEN0+LEN1+LEN2」<(バッファ量通知量閾値31)であるので、再び“「先頭アドレスAD3」と「フレーム長LEN3」”35を読み出す。
【0035】
今の例では、「LEN0+LEN1+LEN2+LEN3」>(バッファ量通知量閾値64)となった時点で通知バッファ量38は、(先頭アドレスAD3)−(次先頭アドレス)として確定し、フレーム単位のバッファ量として通知されることになる。なお、(末尾アドレス19)−(次先頭アドレス26)<(バッファ量通知量閾値31)の場合は、図2にて説明したように検索せず、(末尾アドレス19)−(次先頭アドレス26)の値をバッファ量として通知する。
【0036】
図3に示す例では、フレーム単位のバッファ量通知のために、バッファ情報用メモリ2に対して4回のアクセスが行われている。しかし、実際には、バッファ量通知量閾値31の大きさやフレームバッファ1内のフレーム数の状況によって数百〜数万回以上バッファ情報用メモリ2にアクセスする時間が必要となる可能性がある。さらに、バッファ情報用メモリ2から“「先頭アドレス」と「フレーム長」”23を読み出すたびにフレーム長を足して比較する処理時間も必要となる。
【0037】
したがって、フレーム番号用バッファ3が無い場合には、ある閾値以下のバッファ量をフレーム単位に検索して通知するには、処理時間が膨大にかかるので、送信可能なバッファ量を通知し、その送信時間が与えられて通信する形態を採るシステムにおいては、この検索時間が大きくなることは、遅延の増大やスループットの低下を招くことになる。これに対し、フレーム番号用バッファ3が在る場合には、上記のように、1回の足し算と2回のメモリアクセスでフレーム単位のバッファ量を検索することが可能となり、遅延は極めて小さくなる。
【0038】
また、フレーム番号用バッファ3が無い場合には、フレームバッファ1内に格納されているフレーム数の状況によってはメモリへのアクセス回数が一定とならいことが起こる。これに対し、フレーム番号用バッファ3が在る場合には、固定時間にてフレーム単位のバッファ量を検索することが可能となる。
【0039】
したがって、フレーム番号用バッファ3を設けることによって、送信可能なバッファ量を通知し、その送信時間が与えられて通信する形態を採るシステムにおいては、送信可能なバッファ量の通知を許可された実時間内に送信できるようになる。
【0040】
実施の形態2.
図4は、この発明の実施の形態2である可変長フレームバッファ装置の構成を示すブロック図である。前述した実施の形態1では、フレームバッファ1およびフレーム番号用バッファ3に対してフレームの実バイト数を格納する場合について説明した。ところが、例えばイーサネット(登録商標)のように、送受信するフレームの間にギャップ(IPG:Inter Packet Gap)を設ける通信形態を採用するシステムが存在する。
【0041】
すなわち、この実施の形態2では、IPGの時間も考慮に入れて送信可能なバッファ量の通知を許可された実時間内に送信できる可変長フレームバッファ装置の構成例が示されている。
【0042】
IPGは、例えばイーサネット(登録商標)では12バイト程度であるが、このIPGも同時に書き込み、読み出すことが必要となるので、図4に示す可変長フレームバッファ装置では、図1に示した構成において、書き込み制御部4に代えて書き込み制御部40が設けられ、読み出し制御部5に代えて読み出し制御部41が設けられている。なお、末尾アドレス19に代えて末尾アドレス42となっている。その他は、図1に示した構成と同一ないしは同等であるので、同じ符号が付されている。
【0043】
次に、動作について説明する。まず、図4を参照してフレームメモリ1へのバッファリング動作について説明する。図4において、書き込み制御部40は、まず動作開始時(例えば電源投入後やリセット後)にフレーム番号16であるデータ18を“0”として、フレーム番号用バッファ3のみに、書き込みアドレス10の“0”番地から順にIPG分(例えば12バイト)のデータ(フレーム番号“0”)18を書き込み、待機状態となる。このとき、書き込み制御部40は、IPGの先頭アドレスをフレームの先頭アドレスとして保持しておく。
【0044】
その後、入力フレームデータ14が入力フレームデータバリッド信号15と共に入力されると、書き込み制御部40は、書き込みアドレス10を発行して実バッファ量管理部6からの書き込み禁止信号12にてフレームバッファ1が書き込み可能か否かを判断し、書き込み可能な場合はフレームバッファ1に入力フレームデータ114をIPG領域の後に続けて書き込む。同時にフレーム番号用バッファ3にはフレーム番号“0”であるデータ18を同じアドレス空間に書き込む。
【0045】
このようにフレーム番号用バッファ3とフレームバッファ1に1フレーム分のデータを格納後、「保持していた先頭アドレスと入力フレームデータバリッド信号15の長さをカウントしたフレーム長と」17をフレーム番号(このときは“0”)16をアドレスとしてバッファ情報用メモリ2に書き込む。バッファ情報用メモリ2に書き込みが完了した後、フレーム番号16は+1される。また、並行して、フレーム区切れ検索制御部7に対し、「先頭アドレス+IPG+フレーム長」の値を末尾アドレス42として通知しておく。なお、末尾アドレスは次の書き込みアドレス10を保持した値でもよい。
【0046】
さらに、書き込み制御部40は、次のフレームが到着するまでに、+1されて“1”となっているフレーム番号(データ18)を前記フレーム番号のアドレスに続けてIPG分フレーム番号用バッファ3のみに書き込み、待機状態となる。書き込み制御部40は、以上の動作を繰り返すことになる。
【0047】
一方、読み出し制御部41は、出力許可信号4をトリガとし、フレームを出力する毎に+1されるフレーム番号22を読み出しアドレスとしてセレクタ8を介してバッファ情報用メモリ2に与え、バッファ情報用メモリ2からフレームバッファ1の先頭フレームの情報(「先頭アドレス」と「フレーム長」)23を読み出す。そして、その情報(「先頭アドレス」のみ)を読み出しアドレス11としてフレームバッファ1に与え、実バッファ量管理部6からのフレーム有無情報13の内容を判断する。実バッファ量管理部6は、フレームバッファ1への読み出しアドレス11からフレームデータの存在有無を判断する。
【0048】
読み出し制御部41は、実バッファ量管理部6からのフレーム有無情報13の内容が「有」であるとき、フレームバッファ1からフレーデータ24を読み出し、出力パケットデータ(フレームデータ)24と出力フレームイネーブル信号25とを外部に出力する。このとき、先頭アドレスは、IPGの先頭となっているので、IPG分のアドレスを足したアドレスからフレーム長分のフレームデータ24を読み出すことになる。なお、読み出し制御部41は、実バッファ量管理部7からのフレーム有無情報13がフレームバッファ1が「空」を示す場合は上記の動作は行わない。
【0049】
このとき、読み出し制御部41は、出力時に得た「先頭アドレス+IPG+フレーム長」を用いて次先頭アドレス26を演算し、フレーム区切れ検索制御部7に通知するようにしている。なお、次先頭アドレスは次の読み出しアドレスを保持した値でもよい。
【0050】
次に、図4を参照しつつ図5に沿って、フレーム単位のバッファ量通知動作について説明する。なお、図5は、図4に示す可変長フレームバッファ装置で行われるフレーム単位のバッファ量検索動作を説明する図である。
【0051】
図5では、以上の動作が複数回繰り返されたときのフレームバッファ1、バッファ情報用メモリ2、フレーム番号用バッファ3の状態の一例が示されている。図5に示すように、フレームバッファ1には、IPG領域43とフレームデータ領域44とが交互する形でバッファリングされている。また、フレーム番号用バッファ3でもIPG領域43分のフレーム番号が追加して格納されている。
【0052】
実施の形態2によるフレーム単位のバッファ量通知動作は、IPG領域43が追加されたのみで、動作としては実施の形態1と同じである。つまり、1回の足し算と2回のメモリアクセスのみでフレーム単位のバッファ量を検索することが可能である。
【0053】
このように、実施の形態2によれば、IPGも同時に書き込み、読み出すことができ、IPGの時間も考慮に入れて送信可能なバッファ量の通知を許可された実時間内に送信できるので、IPGを必要としない通信形態に加えて、IPGを必要とする通信形態においても有効な動作が可能となる。
【0054】
実施の形態3.
図6は、この発明の実施の形態3である可変長フレームバッファ装置の構成を示すブロック図である。なお、図6では、図4に示した構成と同一ないしは同等である構成要素には、同一の符号が付されている。ここでは、この実施の形態3に関わる部分を中心に説明する。
【0055】
この実施の形態3では、実施の形態2にて説明したIPGを必要とする通信形態において、フレームデータの動作クロックに装置間において偏差がある場合に対応できる可変長フレームバッファ装置の構成例が示されている。すなわち、図6に示す可変長フレームバッファ装置では、図4に示した構成において、書き込み制御部40の入力段に、偏差調整部45が設けられている。
【0056】
この偏差調整部45は、例えば、IPGが所定の時間よりも少ない場合があるので、フレーム番号用バッファ3のIPG領域にフレーム番号を書き込む際の時間を確保するために、書き込み制御部40を入力フレームデータ14の動作クロックよりも偏差DV以上早いクロックにて動作させ、つまり入力フレームデータ14を少し速いクロックに乗せ変えてフレームバッファ1に書き込む調整を行うようになっている。
【0057】
そのため、偏差調整部45は、入力クロックと出力クロックが別々に設けられるFIFO(First in first out)バッファによって構成され、1フレーム以上書き込まれると、IPG間隔に従って1フレームずつ読み出す動作を行うようになっている。なお、FIFOバッファのサイズは、フレームの破棄が起きないように、1フレームの最大長以上のものを用いるとしている。
【0058】
実施の形態3による可変長フレームバッファ装置の動作は、書き込み制御部40が偏差調整部45の出力クロックと同じクロックにて動作させるということ以外は、実施の形態2と同じである。
【0059】
つまり、実施の形態3によれば、実施の形態2にて説明したIPGを必要とする通信形態において、入力するフレームデータの動作クロックに装置間において偏差がある場合にも支障無く、フレーム番号用バッファ3のIPG領域にフレーム番号を書く時間を確保することが可能となるので、実施の形態2と同様の作用効果が得られる。
【0060】
実施の形態4.
図7は、この発明の実施の形態4である可変長フレームバッファ装置の構成を示すブロック図である。なお、図7では、図4に示した構成と同一ないしは同等である構成要素には、同一の符号が付されている。ここでは、この実施の形態4に関わる部分を中心に説明する。
【0061】
この実施の形態4では、フレーム単位のバッファ量の検索を複数回行う必要が生ずる場合に対応した構成例が示されている。すなわち、図7に示す可変長フレームバッファ装置では、図4に示した構成において、フレーム区切れ検索制御部7に代えて、フレーム区切れ検索制御部70が設けられている。そして、フレーム区切れ検索制御部70には、通信許可時間73が入力され、またバッファ量通知量閾値71は、複数(例えばA、B)設定され、バッファ量通知72を例えばA、Bの2値で行う場合が示されている。
【0062】
フレーム区切れ検索制御部70では、ある通信許可時間73が与えられた場合には、次のようにしてフレーム単位のバッファ量検索を複数回行うようになっている。すなわち、フレーム区切れ検索制御部70は、ある通信許可時間73が与えられると、その通信許可時間73における送信可能なフレーム単位のバッファ量を検索し、その後、その送信可能であったフレーム単位のバッファ量を引いた残りのバッファ量についてある閾値におけるフレーム単位のバッファ量を通知する。このとき、そのフレーム単位のバッファ量の通知が2値以上となる場合もある。
【0063】
次に、図7を参照しつつ図8に沿って、フレーム単位のバッファ量検索を複数回行う場合の動作について説明する。なお、図8は、図7に示す可変長フレームバッファ装置で行われるフレーム単位のバッファ量検索動作を説明する図である。図8では、フレーム区切れ検索制御部70が3回の検索を行う場合が示されている。
【0064】
図8において、まず、1回目の検索では、ある通信許可時間73が与えられた場合に、読み出し制御部41からの次先頭アドレス26にその通信許可時間73を足した値を読み出しアドレス32としてフレーム番号用バッファ3に与え、フレーム番号用バッファ3からフレーム番号33を読み出す。これは図8に示す▲1▼であり、バッファ情報用メモリ2の読み出しアドレス“2”を指示している。そして、そのフレーム番号(図8に示す▲1▼)33によって、バッファ情報用メモリ2から先頭アドレスAD2を読み出し、それを次々先頭アドレスAD2として保持する(1回目検索結果84)。
【0065】
2回目の検索では、1回目の検索結果84である次々先頭アドレスAD2にバッファ量通知量閾値A81を足した値を読み出しアドレスとしてフレーム番号用バッファ3に与え、フレーム番号用バッファ3からフレーム番号33を読み出す。これは図8に示す▲2▼であり、バッファ情報用メモリ2の読み出しアドレス“4”を指示している。そして、そのフレーム番号(図8に示す▲2▼)33によって、バッファ情報用メモリ2から先頭アドレスAD4を読み出し、通知バッファ量A85を「(先頭アドレスAD4)−(次々先頭アドレスAD2)」として得る。
【0066】
3回目の検索では、1回目の検索結果84である次々先頭アドレスAD2にバッファ量通知量閾値B82を足した値を読み出しアドレスとしてフレーム番号用バッファ3に与え、フレーム番号用バッファ3からフレーム番号33を読み出す。これは図8に示す▲3▼であり、バッファ情報用メモリ2の読み出しアドレス“5”を指示している。そして、そのフレーム番号(図8に示す▲3▼)33によって、バッファ情報用メモリ2から先頭アドレスAD5を読み出し、通知バッファ量B86を(先頭アドレスAD5)−(次々先頭アドレスAD2)として得る。その結果、以上3回の検索にて得られた通知バッファ量A85と通知バッファ量B86をバッファ量通知72として出力することになる。
【0067】
このように、実施の形態4によれば、フレーム単位のバッファ量検索を複数回行うことができるので、通信許可時間が与えられたデータ量を差し引いたフレームを単位としたバッファ量を複数のバッファ量通知量閾値を用いて2値以上の値として通知することが可能となる。したがって、次の効果が得られる。
【0068】
すなわち、通信許可時間が与えられたときに、そのとき出力するデータ量を差し引いているので、通知するバッファ量を実際のバッファ量により近い値として通知することができる。また、複数のバッファ量通知量閾値によってバッファ量を通知しているので、例えば送信許可を与える側では、その通知量を参考に次回の送信許可時間を与えるときに自由に選択可能となるので、何らかの帯域制御を行うことが可能となる。なお、実施の形態4では、実施の形態2への適用例を示したが、実施の形態1,3にも同様に適用できることは言うまでもない。
【0069】
実施の形態5.
図9は、この発明の実施の形態5である可変長フレームバッファ装置の構成を示すブロック図である。この実施の形態5では、実施の形態1〜4の機能を有する可変長フレームバッファ装置の複数個を跨ってフレーム単位のバッファ量を検索する可変長フレームバッファ装置の構成例が示されている。
【0070】
図9に示す可変長フレームバッファ装置は、説明を簡単にするため、2つの可変長フレームバッファ装置101,102と検索制御部103とを構成されている。2つの可変長フレームバッファ装置101,102は、実施の形態1〜4にて説明した可変長フレームバッファ装置の構成とほぼ同一である。
【0071】
すなわち、2つの可変長フレームバッファ装置101,102は、それぞれ、入力フレームデータバリッド1,2と入力フレームデータ1,2とをバッファリングし、出力許可信号1,2に応答して出力フレームイネーブル1,2と出力フレームデータ1,2とを出力する。
【0072】
なお、2つの可変長フレームバッファ装置101,102は、一方の可変長フレームバッファ装置101が高優先バッファで、他方の可変長フレームバッファ装置102が低優先バッファであるとしている。高優先と低優先の意味は、高優先のバッファにデータがないときだけ低優先のバッファからデータ出力ができるという意味である。
【0073】
検索制御部103には、外部からバッファ量通知要求104,通知量閾値105が入力され、バッファ量通知閾値106を2つの可変長フレームバッファ装置101,102に与える。そして、2つの可変長フレームバッファ装置101,102は、それぞれ、検索制御部103に実バッファ量1,2を出力し、検索制御部103から検索命令1,2を受けて検索制御部103に検索結果1,2を出力するようになっている。
【0074】
ここで、実施の形態1等で説明した事項との対応関係を示す。実バッファ量1,2は、「(末尾アドレス)−(次先頭アドレス)」に対応し、検索命令1,2はバッファ量通知要求30に対応し、検索結果1,2はバッファ量通知36,72に対応している。そして、検索制御部103は、1回だけフレーム単位のバッファ量検索を行うとしている。
【0075】
次に、図9を参照しつつ図10に沿って、実施の形態5による可変長フレームバッファ装置の動作について説明する。なお、図10は、図9に示す可変長フレームバッファ装置で行われるフレーム単位のバッファ量検索動作を説明するフローチャートである。
【0076】
図10において、検索制御部103は、まず、バッファ量通知要求104が入力されるまで待機状態となる(ステップS101:No)。バッファ量通知要求104が入力されると(ステップS101:Yes)、例えば予め設定された通知量閾値105と「実バッファ量1+実バッファ量2」との大小関係を比較する(ステップS102)。通知量閾値105が「実バッファ量1+実バッファ量2」と等しいもしくは大きい場合は(ステップS102:Yes)、出力するバッファ量通知107を「実バッファ量1+実バッファ量2」とする(ステップS103)。
【0077】
一方、通知量閾値105が「実バッファ量1+実バッファ量2」よりも小さい場合は(ステップS102:No)、通知量閾値105と実バッファ量1,2の一方(ここでは実バッファ1)との大小関係を比較する(ステップS104)。その結果、通知量閾値105<実バッファ量1の場合は(ステップS104:Yes)、バッファ量通知量閾値106=通知量閾値105と設定し(ステップS105)、検索命令1を発行する(ステップS106)。そして、その結果得られた検索結果1をバッファ量通知107として出力する(ステップS107)。
【0078】
また、ステップS104での判断結果、通知量閾値105≧実バッファ量1の場合は(ステップS104:No)、バッファ量通知量閾値106=通知量閾値105−実バッファ量1と設定し(ステップS108)、検索命令2を発行する(ステップS109)。そして、その結果得られた検索結果2を用いて、出力するバッファ量通知107を「実バッファ量1+検索結果2」とする。
【0079】
このように、実施の形態5によれば、複数の可変長フレームバッファ装置を跨ってフレーム単位のバッファ量を検索することが可能となる。これによって、例えば、優先クラス別にフレームバッファ装置を持ち、その優先クラスの規定による出力順序に従って複数フレームバッファ装置を跨ってフレーム単位のバッファ量を検索することができる。
【0080】
【発明の効果】
以上説明したように、この発明によれば、可変長フレームデータを格納するフレームバッファと同じアドレス空間にフレーム番号を格納するフレーム番号用バッファを設けたので、バッファ量検索手段は、前記フレームバッファの読み出し次先頭アドレスにある閾値を足した値を読み出しアドレスとして前記フレーム番号用バッファに与えてフレーム番号を取得し、それを読み出しアドレスとして前記バッファ情報用メモリからフレームの区切れとなる先頭アドレスを検索する、という1回の足し算と2回のメモリアクセスのみで、フレーム単位のバッファ量を検索することができる。したがって、可変長フレームデータをバッファリングし、送信可能なバーストデータ量をフレーム単位に通知する際に、ある閾値以下のバッファ量をフレーム単位に検索する処理時間を短縮することができる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1である可変長フレームバッファ装置の構成を示すブロック図である。
【図2】 図1に示す可変長フレームバッファ装置で行われるフレーム単位のバッファ量検索動作を説明する図である(フレーム番号用バッファが在る場合)。
【図3】 図1に示す可変長フレームバッファ装置で行われるフレーム単位のバッファ量検索動作を説明する図である(フレーム番号用バッファが無い場合)。
【図4】 この発明の実施の形態2である可変長フレームバッファ装置の構成を示すブロック図である。
【図5】 図4に示す可変長フレームバッファ装置で行われるフレーム単位のバッファ量検索動作を説明する図である。
【図6】 この発明の実施の形態3である可変長フレームバッファ装置の構成を示すブロック図である。
【図7】 この発明の実施の形態4である可変長フレームバッファ装置の構成を示すブロック図である。
【図8】 図7に示す可変長フレームバッファ装置で行われるフレーム単位のバッファ量検索動作を説明する図である。
【図9】 この発明の実施の形態5である可変長フレームバッファ装置の構成を示すブロック図である。
【図10】 図9に示す可変長フレームバッファ装置で行われるフレーム単位のバッファ量検索動作を説明するフローチャートである。
【符号の説明】
1 フレームバッファ(2portメモリ)、2 バッファ情報用メモリ(2portメモリ)、3 フレーム番号用バッファ(2portメモリ)、4,40 書き込み制御部、5,41 読み出し制御部、6 実バッファ量管理部、7,70 フレーム区切れ検索制御部、8 セレクタ、31 バッファ量通知量閾値、36 通知バッファ量、45 偏差調整部、101 可変長フレームバッファ装置(高優先)、102 可変長フレームバッファ装置(低優先)、103 検索制御部。
Claims (5)
- 可変長フレームデータを入力順に格納するフレームバッファと、
入力フレーム毎に1つカウントアップするフレーム番号をアドレスとし前記フレームバッファに格納する際の先頭アドレスとフレーム長とを格納するバッファ情報用メモリと、
前記フレームバッファと同じアドレス空間を持ち前記フレーム番号を格納するフレーム番号用バッファと、
外部からのバッファ量通知要求を受けて、前記フレームバッファの読み出し次先頭アドレスにある閾値を足した値を読み出しアドレスとして前記フレーム番号用バッファに与えてフレーム番号を取得し、それを読み出しアドレスとして前記バッファ情報用メモリからフレームの区切れとなる先頭アドレスを検索し、その検索した先頭アドレスと前記次先頭アドレスとの間のバッファ量を前記バッファ量通知要求に対するバッファ量通知として出力するバッファ量検索手段と、
を備えることを特徴とする可変長フレームバッファ装置。 - 前記フレームバッファ、前記バッファ情報用メモリおよび前記フレーム番号用バッファへの書き込みをそれぞれ制御する書き込み制御手段であって、フレーム間にギャップを必要とする場合において、前記フレームバッファに可変長フレームデータを格納する際に前記フレーム間ギャップ分のデータを含めて書き込みを制御し、同時に前記フレーム番号用バッファにおいて前記フレーム間ギャップ分の領域にフレーム番号を書き込む制御を行う書き込み制御手段を備えることを特徴とする請求項1に記載の可変長フレームバッファ装置。
- 前記書き込み制御手段の入力段に設けられ、入力する可変長フレームデータの動作クロックを装置間に存在するクロック偏差を考慮した早いクロックに変換し、その変換した早いクロックにて前記書き込み制御手段を動作させる偏差調整手段を備えることを特徴とする請求項2に記載の可変長フレームバッファ装置。
- 前記バッファ量検索手段は、通信許可時間が与えられる場合に、前記フレームバッファの読み出し次先頭アドレスに前記通信許可時間を足した値を読み出しアドレスとして前記フレーム番号用バッファに与えてフレーム番号を取得し、それを読み出しアドレスとして前記バッファ情報用メモリから前記通信許可時間における送信可能なフレーム単位のバッファ量を検索し、その検索した送信可能なフレーム単位のバッファ量を引いた残りのバッファ量について請求項1に記載の検索を複数回行うことを特徴とする請求項1〜3のいずれか一つに記載の可変長フレームバッファ装置。
- 請求項1〜4のいずれか一つに記載の可変長フレームバッファ装置の複数個と、
前記複数の可変長フレームバッファ装置のそれぞれが備える前記バッファ量検索手段を相互に関連付けて制御することで、前記複数の可変長フレームバッファ装置を跨ったフレーム単位のバッファ量検索を実現する検索制御手段と、
を備えることを特徴とする可変長フレームバッファ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003190297A JP4252379B2 (ja) | 2003-07-02 | 2003-07-02 | 可変長フレームバッファ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003190297A JP4252379B2 (ja) | 2003-07-02 | 2003-07-02 | 可変長フレームバッファ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005027029A JP2005027029A (ja) | 2005-01-27 |
JP4252379B2 true JP4252379B2 (ja) | 2009-04-08 |
Family
ID=34188237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003190297A Expired - Fee Related JP4252379B2 (ja) | 2003-07-02 | 2003-07-02 | 可変長フレームバッファ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4252379B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4674709B2 (ja) * | 2005-09-06 | 2011-04-20 | 株式会社オー・エフ・ネットワークス | 可変長フレームバッファ装置および可変長フレーム境界検索方法 |
JP4584801B2 (ja) * | 2005-09-06 | 2010-11-24 | 株式会社オー・エフ・ネットワークス | 可変長フレームバッファにおける閾値検出装置 |
JP4715645B2 (ja) * | 2006-06-19 | 2011-07-06 | 沖電気工業株式会社 | バッファメモリ |
JP5273830B2 (ja) | 2012-01-24 | 2013-08-28 | Necインフロンティア株式会社 | 伝送方法、伝送装置及び伝送プログラム並びに伝送システム |
-
2003
- 2003-07-02 JP JP2003190297A patent/JP4252379B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005027029A (ja) | 2005-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4603102B2 (ja) | ネットワークスイッチ内のブロックされた出力キューに関するパケットを選択的に廃棄するための方法および装置 | |
JP3734704B2 (ja) | パケット分類エンジン | |
US7315550B2 (en) | Method and apparatus for shared buffer packet switching | |
CN107204198B (zh) | 高速访问双倍速率同步动态随机存储器的控制方法及装置 | |
US7400638B2 (en) | Apparatus and methods for managing packets in a broadband data stream | |
CN108366111B (zh) | 一种用于交换设备的数据包低时延缓存装置与方法 | |
JP2013507022A (ja) | フローアウェアネットワークノード内でデータパケットを処理するための方法 | |
US8306045B2 (en) | Packet forwarding apparatus and method for discarding packets | |
JP2005204092A (ja) | 帯域制御機能を有するストレージスイッチ | |
CN112765054A (zh) | 一种基于fpga的高速数据采集系统及方法 | |
EP3657744B1 (en) | Message processing | |
JP4252379B2 (ja) | 可変長フレームバッファ装置 | |
WO2022222370A1 (zh) | Fc交换机的控制方法、装置、fc交换机和存储介质 | |
WO2020168563A1 (zh) | 一种存储器的管理方法及装置 | |
US8094552B1 (en) | Adaptive buffer for frame based storage communications protocols | |
CN116955247B (zh) | 一种缓存描述符管理装置及其方法、介质、芯片 | |
JP5391449B2 (ja) | 記憶装置 | |
US20020156943A1 (en) | Command issuing apparatus for high-speed serial interface | |
CN110297785A (zh) | 一种基于fpga的金融数据流控装置和流控方法 | |
US7161938B1 (en) | Network switch | |
US6314489B1 (en) | Methods and systems for storing cell data using a bank of cell buffers | |
JP3255113B2 (ja) | パケットスイッチシステム、これを含む集積回路、パケットスイッチ制御方法、パケットスイッチ制御プログラム記録媒体 | |
WO2019095942A1 (zh) | 一种数据传输方法及通信设备 | |
JP2000299686A (ja) | スケジューリング装置 | |
US8073999B2 (en) | Data input-output control apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060615 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081205 |
|
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: 20090120 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090121 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120130 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130130 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130130 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |