(57)【要約】【課題】可変長フレームデータをバッファリングし、送信可能なバーストデータ量をフレーム単位に通知する際に、ある閾値以下のバッファ量をフレーム単位に検索する処理時間を短縮すること。【解決手段】可変長フレームデータを格納するフレームバッファ１と同じアドレス空間にフレーム番号を格納するフレーム番号用バッファ３を設け、フレーム区切れ検索制御部７は、フレームバッファ１の読み出し次先頭アドレス２６にある閾値３１を足した値を読み出しアドレス３２としてフレーム番号用バッファ３に与えてフレーム番号３３を取得し、それを読み出しアドレス３４としてバッファ情報用メモリ２からフレームの区切れとなる先頭アドレス２３を検索し、その検索した先頭アドレス２３と次先頭アドレス２６との間のバッファ量をバッファ量通知要求３０に対するバッファ量通知３６として出力する。【選択図】      図１
2005027029.tif 000002
【特許請求の範囲】
【請求項１】
可変長フレームデータを入力順に格納するフレームバッファと、
入力フレーム毎に１つカウントアップするフレーム番号をアドレスとし前記フレームバッファに格納する際の先頭アドレスとフレーム長とを格納するバッファ情報用メモリと、
前記フレームバッファと同じアドレス空間を持ち前記フレーム番号を格納するフレーム番号用バッファと、
外部からのバッファ量通知要求を受けて、前記フレームバッファの読み出し次先頭アドレスにある閾値を足した値を読み出しアドレスとして前記フレーム番号用バッファに与えてフレーム番号を取得し、それを読み出しアドレスとして前記バッファ情報用メモリからフレームの区切れとなる先頭アドレスを検索し、その検索した先頭アドレスと前記次先頭アドレスとの間のバッファ量を前記バッファ量通知要求に対するバッファ量通知として出力するバッファ量検索手段と、
を備えることを特徴とする可変長フレームバッファ装置。
【請求項２】
前記フレームバッファ、前記バッファ情報用メモリおよび前記フレーム番号用バッファへの書き込みをそれぞれ制御する書き込み制御手段であって、フレーム間にギャップを必要とする場合において、前記フレームバッファに可変長フレームデータを格納する際に前記フレーム間ギャップ分のデータを含めて書き込みを制御し、同時に前記フレーム番号用バッファにおいて前記フレーム間ギャップ分の領域にフレーム番号を書き込む制御を行う書き込み制御手段を備えることを特徴とする請求項１に記載の可変長フレームバッファ装置。
【請求項３】
前記書き込み制御手段の入力段に設けられ、入力する可変長フレームデータの動作クロックを装置間に存在するクロック偏差を考慮した早いクロックに変換し、その変換した早いクロックにて前記書き込み制御手段を動作させる偏差調整手段を備えることを特徴とする請求項２に記載の可変長フレームバッファ装置。
【請求項４】
前記バッファ量検索手段は、通信許可時間が与えられる場合に、前記フレームバッファの読み出し次先頭アドレスに前記通信許可時間を足した値を読み出しアドレスとして前記フレーム番号用バッファに与えてフレーム番号を取得し、それを読み出しアドレスとして前記バッファ情報用メモリから前記通信許可時間における送信可能なフレーム単位のバッファ量を検索し、その検索した送信可能なフレーム単位のバッファ量を引いた残りのバッファ量について請求項１に記載の検索を複数回行うことを特徴とする請求項１〜３のいずれか一つに記載の可変長フレームバッファ装置。
【請求項５】
請求項１〜４のいずれか一つに記載の可変長フレームバッファ装置の複数個と、
前記複数の可変長フレームバッファ装置のそれぞれが備える前記バッファ量検索手段を相互に関連付けて制御することで、前記複数の可変長フレームバッファ装置を跨ったフレーム単位のバッファ量検索を実現する検索制御手段と、
を備えることを特徴とする可変長フレームバッファ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、可変長フレームデータのバッファリングを行い、送信可能なバーストデータ量をフレーム単位に通知する可変長フレームバッファ装置に関するものである。
【０００２】
【従来の技術】
１対Ｎ接続の通信形態を採る例えばＰＯＮ（Ｐａｓｓｉｖｅ  Ｏｐｔｉｃａｌ  Ｎｅｔｗｏｒｋ）システムにおいては、１側である親局は、Ｎ側の子局に親局への送信時間を許可して通信を行う。そのとき、子局は、送信可能なバーストデータ量を親局に通知して高効率な通信を行えるようにしている。また、例えば、非特許文献１では、上限付きバッファ量の通知によって、低遅延かつ高効率に通信を行う方法が開示されている。
【０００３】
ところで、例えば、イーサネット（登録商標）等においては、バーストデータは複数の可変長フレームによって構成されているので、フレームを意識しない場合は、空白となる時間が発生してしまう。したがって、可変長フレームの送信では、送信可能なバーストデータ量をフレーム単位に通知することができれば、空白となる時間を無くすことが可能となり、高効率な通信が行える。
【０００４】
【非特許文献１】
「高効率・低遅延を実現するＧＥ−ＰＯＮグラント／リクエスト方式」（２００２年、電子情報通信学会総合大会Ｂ−８−４４、４１４頁）
【０００５】
【発明が解決しようとする課題】
しかしながら、送信可能なバーストデータ量をフレーム単位に通知する場合には、ある閾値以下のバッファ量をフレーム単位に検索することになるが、この検索時間が大きくなることは、送信可能なバッファ量を通知し、その送信時間が決められている通信形態を採るシステムにおいては、遅延の増大やスループットの低下を招くことになる。したがって、短時間に検索できること、しかも検索時間は常に一定していることが必要であるが、それをどのようにして実現するかが問題である。
【０００６】
この発明は、上記に鑑みてなされたもので、可変長フレームデータをバッファリングし、送信可能なバーストデータ量をフレーム単位に通知する際に、ある閾値以下のバッファ量をフレーム単位に検索する処理時間を短縮することのできる可変長フレームバッファ装置を得ることを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、この発明にかかる可変長フレームバッファ装置は、可変長フレームデータを入力順に格納するフレームバッファと、入力フレーム毎に１つカウントアップするフレーム番号をアドレスとし前記フレームバッファに格納する際の先頭アドレスとフレーム長とを格納するバッファ情報用メモリと、前記フレームバッファと同じアドレス空間を持ち前記フレーム番号を格納するフレーム番号用バッファと、外部からのバッファ量通知要求を受けて、前記フレームバッファの読み出し次先頭アドレスにある閾値を足した値を読み出しアドレスとして前記フレーム番号用バッファに与えてフレーム番号を取得し、それを読み出しアドレスとして前記バッファ情報用メモリからフレームの区切れとなる先頭アドレスを検索し、その検索した先頭アドレスと前記次先頭アドレスとの間のバッファ量を前記バッファ量通知要求に対するバッファ量通知として出力するバッファ量検索手段とを備えることを特徴とする。
【０００８】
この発明によれば、可変長フレームデータを格納するフレームバッファと同じアドレス空間にフレーム番号を格納するフレーム番号用バッファを設けたので、バッファ量検索手段は、前記フレームバッファの読み出し次先頭アドレスにある閾値を足した値を読み出しアドレスとして前記フレーム番号用バッファに与えてフレーム番号を取得し、それを読み出しアドレスとして前記バッファ情報用メモリからフレームの区切れとなる先頭アドレスを検索する、という１回の足し算と２回のメモリアクセスのみで、フレーム単位のバッファ量を検索することができる。
【０００９】
そして、フレーム間にギャップが設けられる場合には、前記フレームバッファ、前記バッファ情報用メモリおよび前記フレーム番号用バッファへの書き込みをそれぞれ制御する書き込み制御手段は、前記フレームバッファに可変長フレームデータを格納する際にフレーム間ギャップ分のデータを含めて書き込みを制御し、同時に前記フレーム番号用バッファにおいて前記フレーム間ギャップ分の領域にフレーム番号を書き込む制御を行うようにすることができるので、フレーム間ギャップを必要とする通信形態にも対応することができる。
【００１０】
また、フレーム間にギャップが設けられる場合には、偏差調整手段を前記書き込み制御手段の入力段に設け、入力する可変長フレームデータの動作クロックを装置間に存在するクロック偏差を考慮した早いクロックに変換し、その変換した早いクロックにて前記書き込み制御手段を動作させることで、装置間にクロック偏差が存在する場合には、そのクロック偏差を調整することができる。
【００１１】
一方、前記バッファ量検索手段は、通信許可時間が与えられる場合に、前記フレームバッファの読み出し次先頭アドレスに前記通信許可時間を足した値を読み出しアドレスとして前記フレーム番号用バッファに与えてフレーム番号を取得し、それを読み出しアドレスとして前記バッファ情報用メモリから前記通信許可時間における送信可能なフレーム単位のバッファ量を検索し、その検索した送信可能なフレーム単位のバッファ量を引いた残りのバッファ量について上記したフレーム単位の検索を複数回行うことができるので、実際のバッファ量により近い値のバッファ量を通知することができる。したがって、通信許可時間を与える側では、ほぼ正確なバッファ量を知ることができるので、何らかの帯域制御が行えるようになる。
【００１２】
加えて、上記した可変長フレームバッファ装置の複数個のそれぞれが備える前記バッファ量検索手段を相互に関連付けて制御することで前記複数の可変長フレームバッファ装置を跨ったフレーム単位のバッファ量検索を実現することができる。
【００１３】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる可変長フレームバッファ装置の好適な実施の形態を詳細に説明する。
【００１４】
実施の形態１．
図１は、この発明の実施の形態１である可変長フレームバッファ装置の構成を示すブロック図である。図１に示す可変長フレームバッファ装置は、フレームデータを保持するフレームバッファ１と、フレーム番号を書き込み・読み出しのアドレスとしてフレームバッファ１に保持されたフレームデータの「先頭アドレスとフレーム長」を保持するバッファ情報用メモリ（２ｐｏｒｔメモリ）２と、フレームバッファ１と同じアドレス空間を持ち入力フレーム毎に１つカウントアップするフレーム番号を格納するフレーム番号用バッファ（２ｐｏｒｔメモリ）３と、書き込み制御部４と、読み出し制御部５と、実バッファ量管理部６と、フレーム区切れ検索制御部７と、セレクタ８とを備えている。
【００１５】
フレームバッファ１、バッファ情報用メモリ２、およびフレーム番号用バッファ３は、それぞれ、２ｐｏｒｔメモリであって、同じアドレス値で書き込みと読み出しが行えるようになっている。
【００１６】
書き込み制御部４は、フレームバッファ１、バッファ情報用メモリ２、およびフレーム番号用バッファ３への書き込みを制御する。書き込み制御部４には、外部から入力フレームデータ１４の他に、入力フレームデータ１４が有効中であることを示す入力フレームデータバリッド信号１５も入力される。
【００１７】
読み出し制御部５は、外部からの出力許可信号２１に応答してセレクタ８を介してフレーム番号（アドレス）２２をバッファ情報用メモリ２に与え、バッファ情報用メモリ２から「先頭アドレス＋フレーム長」２３とを読み出す。そして、それを読み出しアドレス１１としてフレームバッファ１に与え保持されているフレームデータを読み出し、外部に出力パケットデータ（フレームデータ）２４と出力パケットデータ２４が有効中であることを示す出力フレームイネーブル信号２５とを出力する制御を行う。このとき、読み出し制御部５は、フレーム区切れ検索制御部７に対して、次先頭アドレス２６を出力するようにしている。
【００１８】
実バッファ量管理部６は、フレームバッファ１に対する書き込みアドレス１０と読み出しアドレス１１とから実バッファ量を管理し、書き込み制御部４に対しては、書き込み禁止信号１２を出力し、読み出し制御部５に対しては、フレームデータの有無情報１３を出力するようになっている。
【００１９】
フレーム区切れ検索制御部７は、外部からのバッファ量通知要求３０を受けて、読み出し制御部５からの次先頭アドレス２６と予め設定されるバッファ量通知量閾値３１とを足した値からなる読み出しアドレス３２をフレーム番号用バッファ３に与え、読み出したフレーム番号３３をさらにフレーム番号（アドレス）３４としてセレクタ８を介してバッファ情報用メモリ２に与え、バッファ情報用メモリ２から“「先頭アドレス」と「フレーム長」”３５を読み出し、ある閾値を越えないフレーム単位の区切れを検索し、バッファ量通知要求３０に対する応答として外部にバッファ量通知３６を出力する。
【００２０】
このとき、フレーム区切れ検索制御部７は、セレクタ８に選択信号２０を与えてセレクタ８の選択制御も行っている。すなわち、フレーム区切れ検索制御部７は、セレクタ８に与える選択信号２０を、外部からのバッファ量通知要求８を受けたときの短期間だけセレクタ８が自フレーム区切れ検索制御部７を選択し、その他の通常期間では読み出し制御部５を選択するように発生する。
【００２１】
次に、動作について説明する。まず、図１を参照してフレームメモリ１へのバッファリング動作について説明する。書き込み制御部４は、入力フレームデータ１４が入力フレームデータバリッド信号１５と共に入力されると、まず、フレームバッファ１に対して書き込みアドレス１０を出力し、実バッファ量管理部６からの書き込み禁止信号１２の内容を判断する。実バッファ量管理部６は、フレームバッファ１への書き込みアドレス１０から書き込み可能な領域の有無を判断する。書き込み制御部４は、実バッファ量管理部６からの書き込み禁止信号１２の内容が書き込み可能を示す場合に、入力されたフレームデータ１４をフレームバッファ１に書き込む。
【００２２】
また、書き込み制御部４は、フレーム番号１６を書き込みアドレスとし、フレームバッファ１に書き込みが完了したフレームデータ１４の“「先頭アドレス」と「フレーム長」”１７をバッファ情報用メモリ２に書き込む。なお、フレーム番号１６は、０から始まるカウンタ値であり、バッファ情報用メモリ２に書き込みが完了した後に「＋１」される。また、フレーム長１７は、入力フレームデータバリッド信号１５の長さをカウントした値である。
【００２３】
このとき、書き込み制御部４は、バッファ情報用メモリ２に書き込みが完了すると、並行して、フレーム区切れ検索制御部７に対し、「先頭アドレス＋フレーム長」の値を末尾アドレス１９として通知するようにしている。なお、末尾アドレス１９は、次の書き込みアドレス１０を保持した値でもよい。
【００２４】
さらに、書き込み制御部４は、入力するフレームデータ１４をフレームバッファ１に書き込む際、同じ書き込みアドレス１０を用いて、フレーム番号用バッファ３に上記のフレーム番号１６をデータ１８として書き込む。
【００２５】
一方、読み出し制御部５は、出力許可信号２１をトリガとし、フレームデータを出力する毎に「＋１」されるフレーム番号２２を読み出しアドレスとしてセレクタ８を介してバッファ情報用メモリ２に与え、バッファ情報用メモリ２からフレームバッファ１の先頭フレームの情報（「先頭アドレス」と「フレーム長」）２３を読み出す。そして、その情報（先頭アドレス＋フレーム長）２３を読み出しアドレス１１としてフレームバッファ１に与え、実バッファ量管理部６からのフレーム有無情報１３の内容を判断する。実バッファ量管理部６は、フレームバッファ１への読み出しアドレス１１からフレームデータの存在有無を判断する。
【００２６】
読み出し制御部５は、実バッファ量管理部６からのフレーム有無情報１３の内容が「有」であるとき、フレームバッファ１からフレーデータ２４を読み出し、出力フレームイネーブル信号２５と共に外部に出力する。なお、読み出し制御部５は、実バッファ量管理部７からのフレーム有無情報１３がフレームバッファ１が「空」を示す場合は上記の動作は行わない。
【００２７】
このとき、読み出し制御部５は、出力時に得た“「先頭アドレス」と「フレーム長」”２３から次先頭アドレス２６（「先頭アドレス」＋「フレーム長」）を演算し、フレーム区切れ検索制御部７に通知するようにしている。この次先頭アドレスは、次の読み出しアドレス１１を保持した値でもよい。
【００２８】
次に、フレーム単位のバッファ量通知動作について説明する。ここでは、フレーム番号用バッファ３の存在意義を明らかにするため、フレーム番号用バッファ３が在る場合（図２）の他に、フレーム番号用バッファ３が無い場合（図３）についても説明する。図１においてフレーム番号用バッファ３が無い場合には、読み出し制御部５は、フレーム区切れ検索制御部７に破線で示す先頭フレーム番号２７を与えることになる。なお、バッファ量通知要求３０と出力許可信号２１とは、同時に入力されないことを前提としている。
【００２９】
図２では、入力するフレームデータ１４の書き込み、出力パケットデータ（フレームデータ）２４の読み出しを複数回繰り返したときのフレームバッファ１、バッファ情報用メモリ２、フレーム番号用バッファ３の状態の一例が示されている。また、同様に図３では、入力するフレームデータ１４の書き込み、出力パケットデータ（フレームデータ）２４の読み出しを複数回繰り返したときのフレームバッファ１、バッファ情報用メモリ２の状態の一例が示されている。
【００３０】
図１を参照しつつ図２に沿って、フレーム番号用バッファ３が在る場合におけるフレーム単位のバッファ量通知動作について説明する。フレーム区切れ検索制御部７では、予めバッファ量通知量閾値３１が設定されている。フレーム区切れ検索制御部７は、バッファ量通知要求３０が入力されると、読み出し制御部５が指示する「次先頭アドレス２６」に「バッファ量通知量閾値３１」を足した値をフレーム番号用バッファ３に与える読み出しアドレス３２とし、フレーム番号用バッファ３からフレーム番号３３を読み出す。その後、選択信号２０を用いてセレクタ８に自フレーム区切れ検索制御部７を選択させ、読み出したフレーム番号３３をフレーム番号３４としてセレクタ８を介してバッファ情報用メモリ２に与える読み出しアドレスとし、バッファ情報用メモリ２から「先頭アドレスＡＤ３＋フレーム長ＬＥＮ３」３５を読み出す。
【００３１】
これによって、通知バッファ量３８は、「先頭アドレスＡＤ３−次先頭アドレス２６」として確定し、フレーム単位のバッファ量通知３６として出力されることになる。なお、（末尾アドレス１９）−（次先頭アドレス２６）＜（バッファ量通知量閾値３１）の場合は、検索せずに、（末尾アドレス１９）−（次先頭アドレス２６）の値をフレーム単位のバッファ量通知３６の通知バッファ量とする。このように、フレーム番号用バッファ３を備える場合には、１回の足し算と２回のメモリアクセスのみでフレーム単位のバッファ量を検索することが可能となる。
【００３２】
次に、図１を参照して図３に沿って、フレーム番号用バッファ３を備えない場合におけるフレーム単位のバッファ量通知動作について説明する。フレーム区切れ検索制御部７は、バッファ量通知要求３０が入力されると、選択信号２０を用いてセレクタ８に自フレーム区切れ検索制御部７を選択させる。そして、読み出し制御部５からの先頭フレーム番号２７をセレクタ８を介してバッファ情報用メモリ２に与える読み出しアドレス（フレーム番号３４）としバッファ情報用メモリ２から“「先頭アドレスＡＤ０」と「フレーム長ＬＥＮ０」”３５を読み出し、読み出したフレーム長ＬＥＮ０とバッファ量通知量閾値３１との大小関係を比較する。
【００３３】
その結果、フレーム長ＬＥＮ０が小さい場合は、フレーム番号を＋１した読み出しアドレス（フレーム番号３４）を与えて再びバッファ情報用メモリ２から“「先頭アドレスＡＤ１」と「フレーム長ＬＥＮ１」”３５を読み出し、前回読み出したフレーム長ＬＥＮ０に今回読み出したフレーム長ＬＥＮ１を足した値とバッファ量通知量閾値３１との大小関係を比較する。
【００３４】
そして、「ＬＥＮ０＋ＬＥＮ１」の方が小さい場合は、再びフレーム番号を＋１した読み出しアドレス（フレーム番号３４）を与えて再びバッファ情報用メモリ２から“「先頭アドレスＡＤ２」と「フレーム長ＬＥＮ２」”３５を読み出す。今度も「ＬＥＮ０＋ＬＥＮ１＋ＬＥＮ２」＜（バッファ量通知量閾値３１）であるので、再び“「先頭アドレスＡＤ３」と「フレーム長ＬＥＮ３」”３５を読み出す。
【００３５】
今の例では、「ＬＥＮ０＋ＬＥＮ１＋ＬＥＮ２＋ＬＥＮ３」＞（バッファ量通知量閾値６４）となった時点で通知バッファ量３８は、（先頭アドレスＡＤ３）−（次先頭アドレス）として確定し、フレーム単位のバッファ量として通知されることになる。なお、（末尾アドレス１９）−（次先頭アドレス２６）＜（バッファ量通知量閾値３１）の場合は、図２にて説明したように検索せず、（末尾アドレス１９）−（次先頭アドレス２６）の値をバッファ量として通知する。
【００３６】
図３に示す例では、フレーム単位のバッファ量通知のために、バッファ情報用メモリ２に対して４回のアクセスが行われている。しかし、実際には、バッファ量通知量閾値３１の大きさやフレームバッファ１内のフレーム数の状況によって数百〜数万回以上バッファ情報用メモリ２にアクセスする時間が必要となる可能性がある。さらに、バッファ情報用メモリ２から“「先頭アドレス」と「フレーム長」”２３を読み出すたびにフレーム長を足して比較する処理時間も必要となる。
【００３７】
したがって、フレーム番号用バッファ３が無い場合には、ある閾値以下のバッファ量をフレーム単位に検索して通知するには、処理時間が膨大にかかるので、送信可能なバッファ量を通知し、その送信時間が与えられて通信する形態を採るシステムにおいては、この検索時間が大きくなることは、遅延の増大やスループットの低下を招くことになる。これに対し、フレーム番号用バッファ３が在る場合には、上記のように、１回の足し算と２回のメモリアクセスでフレーム単位のバッファ量を検索することが可能となり、遅延は極めて小さくなる。
【００３８】
また、フレーム番号用バッファ３が無い場合には、フレームバッファ１内に格納されているフレーム数の状況によってはメモリへのアクセス回数が一定とならいことが起こる。これに対し、フレーム番号用バッファ３が在る場合には、固定時間にてフレーム単位のバッファ量を検索することが可能となる。
【００３９】
したがって、フレーム番号用バッファ３を設けることによって、送信可能なバッファ量を通知し、その送信時間が与えられて通信する形態を採るシステムにおいては、送信可能なバッファ量の通知を許可された実時間内に送信できるようになる。
【００４０】
実施の形態２．
図４は、この発明の実施の形態２である可変長フレームバッファ装置の構成を示すブロック図である。前述した実施の形態１では、フレームバッファ１およびフレーム番号用バッファ３に対してフレームの実バイト数を格納する場合について説明した。ところが、例えばイーサネット（登録商標）のように、送受信するフレームの間にギャップ（ＩＰＧ：Ｉｎｔｅｒ  Ｐａｃｋｅｔ  Ｇａｐ）を設ける通信形態を採用するシステムが存在する。
【００４１】
すなわち、この実施の形態２では、ＩＰＧの時間も考慮に入れて送信可能なバッファ量の通知を許可された実時間内に送信できる可変長フレームバッファ装置の構成例が示されている。
【００４２】
ＩＰＧは、例えばイーサネット（登録商標）では１２バイト程度であるが、このＩＰＧも同時に書き込み、読み出すことが必要となるので、図４に示す可変長フレームバッファ装置では、図１に示した構成において、書き込み制御部４に代えて書き込み制御部４０が設けられ、読み出し制御部５に代えて読み出し制御部４１が設けられている。なお、末尾アドレス１９に代えて末尾アドレス４２となっている。その他は、図１に示した構成と同一ないしは同等であるので、同じ符号が付されている。
【００４３】
次に、動作について説明する。まず、図４を参照してフレームメモリ１へのバッファリング動作について説明する。図４において、書き込み制御部４０は、まず動作開始時（例えば電源投入後やリセット後）にフレーム番号１６であるデータ１８を“０”として、フレーム番号用バッファ３のみに、書き込みアドレス１０の“０”番地から順にＩＰＧ分（例えば１２バイト）のデータ（フレーム番号“０”）１８を書き込み、待機状態となる。このとき、書き込み制御部４０は、ＩＰＧの先頭アドレスをフレームの先頭アドレスとして保持しておく。
【００４４】
その後、入力フレームデータ１４が入力フレームデータバリッド信号１５と共に入力されると、書き込み制御部４０は、書き込みアドレス１０を発行して実バッファ量管理部６からの書き込み禁止信号１２にてフレームバッファ１が書き込み可能か否かを判断し、書き込み可能な場合はフレームバッファ１に入力フレームデータ１１４をＩＰＧ領域の後に続けて書き込む。同時にフレーム番号用バッファ３にはフレーム番号“０”であるデータ１８を同じアドレス空間に書き込む。
【００４５】
このようにフレーム番号用バッファ３とフレームバッファ１に１フレーム分のデータを格納後、「保持していた先頭アドレスと入力フレームデータバリッド信号１５の長さをカウントしたフレーム長と」１７をフレーム番号（このときは“０”）１６をアドレスとしてバッファ情報用メモリ２に書き込む。バッファ情報用メモリ２に書き込みが完了した後、フレーム番号１６は＋１される。また、並行して、フレーム区切れ検索制御部７に対し、「先頭アドレス＋ＩＰＧ＋フレーム長」の値を末尾アドレス４２として通知しておく。なお、末尾アドレスは次の書き込みアドレス１０を保持した値でもよい。
【００４６】
さらに、書き込み制御部４０は、次のフレームが到着するまでに、＋１されて“１”となっているフレーム番号（データ１８）を前記フレーム番号のアドレスに続けてＩＰＧ分フレーム番号用バッファ３のみに書き込み、待機状態となる。書き込み制御部４０は、以上の動作を繰り返すことになる。
【００４７】
一方、読み出し制御部４１は、出力許可信号４をトリガとし、フレームを出力する毎に＋１されるフレーム番号２２を読み出しアドレスとしてセレクタ８を介してバッファ情報用メモリ２に与え、バッファ情報用メモリ２からフレームバッファ１の先頭フレームの情報（「先頭アドレス」と「フレーム長」）２３を読み出す。そして、その情報（「先頭アドレス」のみ）を読み出しアドレス１１としてフレームバッファ１に与え、実バッファ量管理部６からのフレーム有無情報１３の内容を判断する。実バッファ量管理部６は、フレームバッファ１への読み出しアドレス１１からフレームデータの存在有無を判断する。
【００４８】
読み出し制御部４１は、実バッファ量管理部６からのフレーム有無情報１３の内容が「有」であるとき、フレームバッファ１からフレーデータ２４を読み出し、出力パケットデータ（フレームデータ）２４と出力フレームイネーブル信号２５とを外部に出力する。このとき、先頭アドレスは、ＩＰＧの先頭となっているので、ＩＰＧ分のアドレスを足したアドレスからフレーム長分のフレームデータ２４を読み出すことになる。なお、読み出し制御部４１は、実バッファ量管理部７からのフレーム有無情報１３がフレームバッファ１が「空」を示す場合は上記の動作は行わない。
【００４９】
このとき、読み出し制御部４１は、出力時に得た「先頭アドレス＋ＩＰＧ＋フレーム長」を用いて次先頭アドレス２６を演算し、フレーム区切れ検索制御部７に通知するようにしている。なお、次先頭アドレスは次の読み出しアドレスを保持した値でもよい。
【００５０】
次に、図４を参照しつつ図５に沿って、フレーム単位のバッファ量通知動作について説明する。なお、図５は、図４に示す可変長フレームバッファ装置で行われるフレーム単位のバッファ量検索動作を説明する図である。
【００５１】
図５では、以上の動作が複数回繰り返されたときのフレームバッファ１、バッファ情報用メモリ２、フレーム番号用バッファ３の状態の一例が示されている。図５に示すように、フレームバッファ１には、ＩＰＧ領域４３とフレームデータ領域４４とが交互する形でバッファリングされている。また、フレーム番号用バッファ３でもＩＰＧ領域４３分のフレーム番号が追加して格納されている。
【００５２】
実施の形態２によるフレーム単位のバッファ量通知動作は、ＩＰＧ領域４３が追加されたのみで、動作としては実施の形態１と同じである。つまり、１回の足し算と２回のメモリアクセスのみでフレーム単位のバッファ量を検索することが可能である。
【００５３】
このように、実施の形態２によれば、ＩＰＧも同時に書き込み、読み出すことができ、ＩＰＧの時間も考慮に入れて送信可能なバッファ量の通知を許可された実時間内に送信できるので、ＩＰＧを必要としない通信形態に加えて、ＩＰＧを必要とする通信形態においても有効な動作が可能となる。
【００５４】
実施の形態３．
図６は、この発明の実施の形態３である可変長フレームバッファ装置の構成を示すブロック図である。なお、図６では、図４に示した構成と同一ないしは同等である構成要素には、同一の符号が付されている。ここでは、この実施の形態３に関わる部分を中心に説明する。
【００５５】
この実施の形態３では、実施の形態２にて説明したＩＰＧを必要とする通信形態において、フレームデータの動作クロックに装置間において偏差がある場合に対応できる可変長フレームバッファ装置の構成例が示されている。すなわち、図６に示す可変長フレームバッファ装置では、図４に示した構成において、書き込み制御部４０の入力段に、偏差調整部４５が設けられている。
【００５６】
この偏差調整部４５は、例えば、ＩＰＧが所定の時間よりも少ない場合があるので、フレーム番号用バッファ３のＩＰＧ領域にフレーム番号を書き込む際の時間を確保するために、書き込み制御部４０を入力フレームデータ１４の動作クロックよりも偏差ＤＶ以上早いクロックにて動作させ、つまり入力フレームデータ１４を少し速いクロックに乗せ変えてフレームバッファ１に書き込む調整を行うようになっている。
【００５７】
そのため、偏差調整部４５は、入力クロックと出力クロックが別々に設けられるＦＩＦＯ（Ｆｉｒｓｔ  ｉｎ  ｆｉｒｓｔ  ｏｕｔ）バッファによって構成され、１フレーム以上書き込まれると、ＩＰＧ間隔に従って１フレームずつ読み出す動作を行うようになっている。なお、ＦＩＦＯバッファのサイズは、フレームの破棄が起きないように、１フレームの最大長以上のものを用いるとしている。
【００５８】
実施の形態３による可変長フレームバッファ装置の動作は、書き込み制御部４０が偏差調整部４５の出力クロックと同じクロックにて動作させるということ以外は、実施の形態２と同じである。
【００５９】
つまり、実施の形態３によれば、実施の形態２にて説明したＩＰＧを必要とする通信形態において、入力するフレームデータの動作クロックに装置間において偏差がある場合にも支障無く、フレーム番号用バッファ３のＩＰＧ領域にフレーム番号を書く時間を確保することが可能となるので、実施の形態２と同様の作用効果が得られる。
【００６０】
実施の形態４．
図７は、この発明の実施の形態４である可変長フレームバッファ装置の構成を示すブロック図である。なお、図７では、図４に示した構成と同一ないしは同等である構成要素には、同一の符号が付されている。ここでは、この実施の形態４に関わる部分を中心に説明する。
【００６１】
この実施の形態４では、フレーム単位のバッファ量の検索を複数回行う必要が生ずる場合に対応した構成例が示されている。すなわち、図７に示す可変長フレームバッファ装置では、図４に示した構成において、フレーム区切れ検索制御部７に代えて、フレーム区切れ検索制御部７０が設けられている。そして、フレーム区切れ検索制御部７０には、通信許可時間７３が入力され、またバッファ量通知量閾値７１は、複数（例えばＡ、Ｂ）設定され、バッファ量通知７２を例えばＡ、Ｂの２値で行う場合が示されている。
【００６２】
フレーム区切れ検索制御部７０では、ある通信許可時間７３が与えられた場合には、次のようにしてフレーム単位のバッファ量検索を複数回行うようになっている。すなわち、フレーム区切れ検索制御部７０は、ある通信許可時間７３が与えられると、その通信許可時間７３における送信可能なフレーム単位のバッファ量を検索し、その後、その送信可能であったフレーム単位のバッファ量を引いた残りのバッファ量についてある閾値におけるフレーム単位のバッファ量を通知する。このとき、そのフレーム単位のバッファ量の通知が２値以上となる場合もある。
【００６３】
次に、図７を参照しつつ図８に沿って、フレーム単位のバッファ量検索を複数回行う場合の動作について説明する。なお、図８は、図７に示す可変長フレームバッファ装置で行われるフレーム単位のバッファ量検索動作を説明する図である。図８では、フレーム区切れ検索制御部７０が３回の検索を行う場合が示されている。
【００６４】
図８において、まず、１回目の検索では、ある通信許可時間７３が与えられた場合に、読み出し制御部４１からの次先頭アドレス２６にその通信許可時間７３を足した値を読み出しアドレス３２としてフレーム番号用バッファ３に与え、フレーム番号用バッファ３からフレーム番号３３を読み出す。これは図８に示す▲１▼であり、バッファ情報用メモリ２の読み出しアドレス“２”を指示している。そして、そのフレーム番号（図８に示す▲１▼）３３によって、バッファ情報用メモリ２から先頭アドレスＡＤ２を読み出し、それを次々先頭アドレスＡＤ２として保持する（１回目検索結果８４）。
【００６５】
２回目の検索では、１回目の検索結果８４である次々先頭アドレスＡＤ２にバッファ量通知量閾値Ａ８１を足した値を読み出しアドレスとしてフレーム番号用バッファ３に与え、フレーム番号用バッファ３からフレーム番号３３を読み出す。これは図８に示す▲２▼であり、バッファ情報用メモリ２の読み出しアドレス“４”を指示している。そして、そのフレーム番号（図８に示す▲２▼）３３によって、バッファ情報用メモリ２から先頭アドレスＡＤ４を読み出し、通知バッファ量Ａ８５を「（先頭アドレスＡＤ４）−（次々先頭アドレスＡＤ２）」として得る。
【００６６】
３回目の検索では、１回目の検索結果８４である次々先頭アドレスＡＤ２にバッファ量通知量閾値Ｂ８２を足した値を読み出しアドレスとしてフレーム番号用バッファ３に与え、フレーム番号用バッファ３からフレーム番号３３を読み出す。これは図８に示す▲３▼であり、バッファ情報用メモリ２の読み出しアドレス“５”を指示している。そして、そのフレーム番号（図８に示す▲３▼）３３によって、バッファ情報用メモリ２から先頭アドレスＡＤ５を読み出し、通知バッファ量Ｂ８６を（先頭アドレスＡＤ５）−（次々先頭アドレスＡＤ２）として得る。その結果、以上３回の検索にて得られた通知バッファ量Ａ８５と通知バッファ量Ｂ８６をバッファ量通知７２として出力することになる。
【００６７】
このように、実施の形態４によれば、フレーム単位のバッファ量検索を複数回行うことができるので、通信許可時間が与えられたデータ量を差し引いたフレームを単位としたバッファ量を複数のバッファ量通知量閾値を用いて２値以上の値として通知することが可能となる。したがって、次の効果が得られる。
【００６８】
すなわち、通信許可時間が与えられたときに、そのとき出力するデータ量を差し引いているので、通知するバッファ量を実際のバッファ量により近い値として通知することができる。また、複数のバッファ量通知量閾値によってバッファ量を通知しているので、例えば送信許可を与える側では、その通知量を参考に次回の送信許可時間を与えるときに自由に選択可能となるので、何らかの帯域制御を行うことが可能となる。なお、実施の形態４では、実施の形態２への適用例を示したが、実施の形態１，３にも同様に適用できることは言うまでもない。
【００６９】
実施の形態５．
図９は、この発明の実施の形態５である可変長フレームバッファ装置の構成を示すブロック図である。この実施の形態５では、実施の形態１〜４の機能を有する可変長フレームバッファ装置の複数個を跨ってフレーム単位のバッファ量を検索する可変長フレームバッファ装置の構成例が示されている。
【００７０】
図９に示す可変長フレームバッファ装置は、説明を簡単にするため、２つの可変長フレームバッファ装置１０１，１０２と検索制御部１０３とを構成されている。２つの可変長フレームバッファ装置１０１，１０２は、実施の形態１〜４にて説明した可変長フレームバッファ装置の構成とほぼ同一である。
【００７１】
すなわち、２つの可変長フレームバッファ装置１０１，１０２は、それぞれ、入力フレームデータバリッド１，２と入力フレームデータ１，２とをバッファリングし、出力許可信号１，２に応答して出力フレームイネーブル１，２と出力フレームデータ１，２とを出力する。
【００７２】
なお、２つの可変長フレームバッファ装置１０１，１０２は、一方の可変長フレームバッファ装置１０１が高優先バッファで、他方の可変長フレームバッファ装置１０２が低優先バッファであるとしている。高優先と低優先の意味は、高優先のバッファにデータがないときだけ低優先のバッファからデータ出力ができるという意味である。
【００７３】
検索制御部１０３には、外部からバッファ量通知要求１０４，通知量閾値１０５が入力され、バッファ量通知閾値１０６を２つの可変長フレームバッファ装置１０１，１０２に与える。そして、２つの可変長フレームバッファ装置１０１，１０２は、それぞれ、検索制御部１０３に実バッファ量１，２を出力し、検索制御部１０３から検索命令１，２を受けて検索制御部１０３に検索結果１，２を出力するようになっている。
【００７４】
ここで、実施の形態１等で説明した事項との対応関係を示す。実バッファ量１，２は、「（末尾アドレス）−（次先頭アドレス）」に対応し、検索命令１，２はバッファ量通知要求３０に対応し、検索結果１，２はバッファ量通知３６，７２に対応している。そして、検索制御部１０３は、１回だけフレーム単位のバッファ量検索を行うとしている。
【００７５】
次に、図９を参照しつつ図１０に沿って、実施の形態５による可変長フレームバッファ装置の動作について説明する。なお、図１０は、図９に示す可変長フレームバッファ装置で行われるフレーム単位のバッファ量検索動作を説明するフローチャートである。
【００７６】
図１０において、検索制御部１０３は、まず、バッファ量通知要求１０４が入力されるまで待機状態となる（ステップＳ１０１：Ｎｏ）。バッファ量通知要求１０４が入力されると（ステップＳ１０１：Ｙｅｓ）、例えば予め設定された通知量閾値１０５と「実バッファ量１＋実バッファ量２」との大小関係を比較する（ステップＳ１０２）。通知量閾値１０５が「実バッファ量１＋実バッファ量２」と等しいもしくは大きい場合は（ステップＳ１０２：Ｙｅｓ）、出力するバッファ量通知１０７を「実バッファ量１＋実バッファ量２」とする（ステップＳ１０３）。
【００７７】
一方、通知量閾値１０５が「実バッファ量１＋実バッファ量２」よりも小さい場合は（ステップＳ１０２：Ｎｏ）、通知量閾値１０５と実バッファ量１，２の一方（ここでは実バッファ１）との大小関係を比較する（ステップＳ１０４）。その結果、通知量閾値１０５＜実バッファ量１の場合は（ステップＳ１０４：Ｙｅｓ）、バッファ量通知量閾値１０６＝通知量閾値１０５と設定し（ステップＳ１０５）、検索命令１を発行する（ステップＳ１０６）。そして、その結果得られた検索結果１をバッファ量通知１０７として出力する（ステップＳ１０７）。
【００７８】
また、ステップＳ１０４での判断結果、通知量閾値１０５≧実バッファ量１の場合は（ステップＳ１０４：Ｎｏ）、バッファ量通知量閾値１０６＝通知量閾値１０５−実バッファ量１と設定し（ステップＳ１０８）、検索命令２を発行する（ステップＳ１０９）。そして、その結果得られた検索結果２を用いて、出力するバッファ量通知１０７を「実バッファ量１＋検索結果２」とする。
【００７９】
このように、実施の形態５によれば、複数の可変長フレームバッファ装置を跨ってフレーム単位のバッファ量を検索することが可能となる。これによって、例えば、優先クラス別にフレームバッファ装置を持ち、その優先クラスの規定による出力順序に従って複数フレームバッファ装置を跨ってフレーム単位のバッファ量を検索することができる。
【００８０】
【発明の効果】
以上説明したように、この発明によれば、可変長フレームデータを格納するフレームバッファと同じアドレス空間にフレーム番号を格納するフレーム番号用バッファを設けたので、バッファ量検索手段は、前記フレームバッファの読み出し次先頭アドレスにある閾値を足した値を読み出しアドレスとして前記フレーム番号用バッファに与えてフレーム番号を取得し、それを読み出しアドレスとして前記バッファ情報用メモリからフレームの区切れとなる先頭アドレスを検索する、という１回の足し算と２回のメモリアクセスのみで、フレーム単位のバッファ量を検索することができる。したがって、可変長フレームデータをバッファリングし、送信可能なバーストデータ量をフレーム単位に通知する際に、ある閾値以下のバッファ量をフレーム単位に検索する処理時間を短縮することができる。
【図面の簡単な説明】
【図１】この発明の実施の形態１である可変長フレームバッファ装置の構成を示すブロック図である。
【図２】図１に示す可変長フレームバッファ装置で行われるフレーム単位のバッファ量検索動作を説明する図である（フレーム番号用バッファが在る場合）。
【図３】図１に示す可変長フレームバッファ装置で行われるフレーム単位のバッファ量検索動作を説明する図である（フレーム番号用バッファが無い場合）。
【図４】この発明の実施の形態２である可変長フレームバッファ装置の構成を示すブロック図である。
【図５】図４に示す可変長フレームバッファ装置で行われるフレーム単位のバッファ量検索動作を説明する図である。
【図６】この発明の実施の形態３である可変長フレームバッファ装置の構成を示すブロック図である。
【図７】この発明の実施の形態４である可変長フレームバッファ装置の構成を示すブロック図である。
【図８】図７に示す可変長フレームバッファ装置で行われるフレーム単位のバッファ量検索動作を説明する図である。
【図９】この発明の実施の形態５である可変長フレームバッファ装置の構成を示すブロック図である。
【図１０】図９に示す可変長フレームバッファ装置で行われるフレーム単位のバッファ量検索動作を説明するフローチャートである。
【符号の説明】
１  フレームバッファ（２ｐｏｒｔメモリ）、２  バッファ情報用メモリ（２ｐｏｒｔメモリ）、３  フレーム番号用バッファ（２ｐｏｒｔメモリ）、４，４０  書き込み制御部、５，４１  読み出し制御部、６  実バッファ量管理部、７，７０  フレーム区切れ検索制御部、８  セレクタ、３１  バッファ量通知量閾値、３６  通知バッファ量、４５  偏差調整部、１０１  可変長フレームバッファ装置（高優先）、１０２  可変長フレームバッファ装置（低優先）、１０３  検索制御部。
【図１】
2005027029.tif 000003
【図２】
2005027029.tif 000004
【図３】
2005027029.tif 000005
【図４】
2005027029.tif 000006
【図５】
2005027029.tif 000007
【図６】
2005027029.tif 000008
【図７】
2005027029.tif 000009
【図８】
2005027029.tif 000010
【図９】
2005027029.tif 000011
【図１０】
2005027029.tif 000012