(57)【特許請求の範囲】
【請求項１】
最小フレーム長がＦmin バイトで最大フレーム長がＦmax バイトの可変長フレームを順次保存しておき、外部から許可バイト数を入力するたびに該許可バイト数を超えない量の未送信データを前記可変長フレーム単位で順次出力する可変長フレームバッファ装置であって、
前記可変長フレームを保存する主信号用メモリと、
前記最大フレーム長Ｆmax 以上の周期を有し、前記可変長フレームのデータが前記主信号用メモリに１バイト書き込まれるたびに計数値を「１」ずつ増加させ、１個の前記可変長フレームの書き込みが終了するたびに該計数値をクリアするバイトカウンタと、
前記最小フレーム長Ｆmin と同一の周期を有し、前記可変長フレームのデータが前記主信号用メモリに１バイト書き込まれるたびに計数値を「１」ずつ増加させる最小フレーム長カウンタと、
該最小フレーム長カウンタの計数値が前記最小フレーム長Ｆmin に達するたびに、前記バイトカウンタの計数値を格納する閾値検索用メモリと、
前記閾値検索用メモリの格納値から前記出力許可バイト数の終端に対応する値Ａを読み出す第１読出処理と、前記値Ａの直前に前記閾値検索用メモリに格納された値Ｂを読み出す第２読出処理と、前記最小フレーム長Ｆmin の整数倍のうち前記出力許可バイト数の終端位置を超えない範囲内で最も大きい値を出力許可バイト数から減算した値Ｍを算出する第１演算処理と、前記最小フレーム長Ｆmin の整数倍のうち前記出力許可バイト数の終端位置を超える範囲内で最も小さい値から送信済バイト数を減算した値Ｎを算出する第２演算処理と、Ｍ＋Ａ≧Ｆmin のときは前記主信号用メモリに格納された未送信データの先頭バイトからＮ−Ａバイト目までを前記主信号用メモリから読み出して出力し且つＭ＋Ａ＜Ｆmin のときは該未送信データの先頭バイトからＮ−Ｆmin −Ｂバイト目までを該主信号用メモリから読み出して出力する出力処理とを行う制御部と、
を備えることを特徴とする可変長フレームバッファ装置。
【請求項２】
前記第１読出処理が、前回までの前記出力処理で出力された前記可変長フレームの総バイト数と前記出力許可バイト数との和を前記最小フレーム長Ｆmin で除算したのち端数を切り上げることによってアドレスを算出し、このアドレスに対応する格納値を前記閾値検索用メモリから読み出す処理であり、且つ、
前記第２読出処理が、該第１読出処理で算出された前記アドレスよりも「１」だけ小さいアドレスに対応する格納値を前記閾値検索用メモリから読み出す処理である、
ことを特徴とする請求項１に記載の可変長フレームバッファ装置。
【請求項３】
最小フレーム長がＦmin バイトで最大フレーム長がＦmax バイトの可変長フレームを順次保存しておき、外部から許可バイト数を入力するたびに該許可バイト数を超えない量の未送信データを前記可変長フレーム単位で順次出力するための可変長フレーム境界検索方法であって、
主信号用メモリに前記可変長フレームを順次保存する第１ステップと、
前記最大フレーム長Ｆmax 以上の周期を有するバイトカウンタを用いて、前記可変長フレームのデータが前記主信号用メモリに１バイト書き込まれるたびに計数値を「１」ずつ増加させ、１個の前記可変長フレームの書き込みが終了するたびに該計数値をクリアする第２ステップと、
前記可変長フレームの最小フレーム長Ｆmin と同一の周期を有する最小フレーム長カウンタを用いて、前記可変長フレームのデータが前記主信号用メモリに１バイト書き込まれるたびに計数値を「１」ずつ増加させる第３ステップと、
該最小フレーム長カウンタの計数値が前記最小フレーム長Ｆmin に達するたびに、閾値検索用メモリに前記バイトカウンタの計数値を格納する第４ステップと、
を含む保存過程と、
前記閾値検索用メモリの格納値から前記出力許可バイト数の終端に対応する値Ａを読み出す第５ステップと、
前記値Ａの直前に前記閾値検索用メモリに格納された値Ｂを読み出す第６ステップと、
前記最小フレーム長Ｆmin の整数倍のうち前記出力許可バイト数の終端位置を超えない範囲内で最も大きい値を出力許可バイト数から減算した値Ｍを算出する第７ステップと、
前記最小フレーム長Ｆmin の整数倍のうち前記出力許可バイト数の終端位置を超える範囲内で最も小さい値から送信済バイト数を減算した値Ｎを算出する第８ステップと、
Ｍ＋Ａ≧Ｆmin のときは前記主信号用メモリに格納された未送信データの先頭バイトからＮ−Ａバイト目を前記主信号用メモリから読み出す可変長フレームの後端であると判定し且つＭ＋Ａ＜Ｆmin のときは該未送信データの先頭バイトからＮ−Ｆmin −Ｂバイト目を該主信号用メモリから読み出す可変長フレームの後端であると判定する判定処理とを行う第９ステップと、
を含む境界検索過程と、
を有することを特徴とする可変長フレーム境界検索方法。
【請求項４】
前記第５ステップが、前回までの前記出力処理で出力された前記可変長フレームの総バイト数と前記出力許可バイト数との和を前記最小フレーム長Ｆmin で除算したのち端数を切り上げることによってアドレスを算出し、このアドレスの格納値を前記閾値検索用メモリから読み出す処理であり、且つ、
前記第６ステップが、該第５ステップで算出された前記アドレスよりも「１」だけ小さいアドレスの格納値を前記閾値検索用メモリから読み出す処理である、
ことを特徴とする請求項３に記載の可変長フレーム境界検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データを可変長フレーム単位で保存・出力する可変長フレームバッファ装置と、メモリに格納された可変長フレームの境界を検索する方法とに関する。この発明は、例えばＰＯＮ(Passive Optical Network) 用加入者端末装置等の通信装置に適用することができる。
【背景技術】
【０００２】
従来より、１台の局側通信装置と複数台の端末側通信装置とを１本の通信チャネルで接続した通信ネットワークが知られている。このような通信ネットワークとしては、例えばＰＯＮがある。この種の通信ネットワークでは、上り通信（端末側通信装置から局側通信装置へのデータ送信）を行うときのタイミング制御が必要になる。複数の端末側通信装置が任意にデータ送信を行ったのでは、異なる端末側通信装置から送信されたデータが通信チャネル内で衝突してしまうからである。したがって、端末側通信装置は、局側通信装置から許可された送信タイミングで、該局側通信装置から許可されたバイト数を超えないデータのみを送信することが許される。このため、一般的な端末側通信装置は、内部に搭載されたバッファ装置に送信用のフレームを一時保存し、局側通信装置から受信した許可信号が示すタイミングおよびバイト数に応じて、フレーム単位で上り通信を行う。
【０００３】
ＰＯＮ等の通信ネットワークでは、通信フレームとして、可変長フレームが使用される。すなわち、ＰＯＮ等の通信ネットワークでは、通信フレームの長さが一定しない。このため、端末側通信装置は、バッファ装置内に格納された可変長フレームの境界を検索する必要がある。そして、上述のように、局側通信装置から許可されたバイト数を超えない範囲内で、可変長フレームを読み出して送信する。
【０００４】
可変長フレームの境界を検索する技術としては、例えば下記特許文献１に記載されたものが知られている。特許文献１の技術では、フレームバッファ、バッファ情報用メモリおよびフレーム番号用バッファを用いて、可変長フレームの境界を少ないアクセス数で検索すること（すなわち、高速で検索すること）を可能にしている（特許文献１の段落００２１〜００３１、図１等参照）。
【特許文献１】特開２００５−２７０２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術では、可変長フレームの境界を高速で検索できる反面、検索用の情報を格納するためのメモリ容量が非常に大きくなってしまう。このため、特許文献１の技術には、バッファ装置の大型化や高価格化を招くという欠点がある。
【０００６】
この発明の課題は、少ないメモリ容量で、可変長フレームの境界を高速検索することができる可変長フレームバッファ装置および可変長フレーム境界検索方法を提供することにある。
【課題を解決するための手段】
【０００７】
（１）第１の発明は、最小フレーム長がＦmin バイトで最大フレーム長がＦmax バイトの可変長フレームを順次保存しておき、外部から許可バイト数を入力するたびに許可バイト数を超えない量の未送信データを可変長フレーム単位で順次出力する可変長フレームバッファ装置に関する。
【０００８】
そして、可変長フレームを保存する主信号用メモリと、最大フレーム長Ｆmax 以上の周期を有し、可変長フレームのデータが主信号用メモリに１バイト書き込まれるたびに計数値を「１」ずつ増加させ、１個の可変長フレームの書き込みが終了するたびに計数値をクリアするバイトカウンタと、最小フレーム長Ｆmin と同一の周期を有し、可変長フレームのデータが主信号用メモリに１バイト書き込まれるたびに計数値を「１」ずつ増加させる最小フレーム長カウンタと、最小フレーム長カウンタの計数値が最小フレーム長Ｆmin に達するたびに、バイトカウンタの計数値を格納する閾値検索用メモリと、閾値検索用メモリの格納値から出力許可バイト数の終端に対応する値Ａを読み出す第１読出処理と、値Ａの直前に閾値検索用メモリに格納された値Ｂを読み出す第２読出処理と、最小フレーム長Ｆmin の整数倍のうち出力許可バイト数の終端位置を超えない範囲内で最も大きい値を出力許可バイト数から減算した値Ｍを算出する第１演算処理と、最小フレーム長Ｆmin の整数倍のうち出力許可バイト数の終端位置を超える範囲内で最も小さい値から送信済バイト数を減算した値Ｎを算出する第２演算処理と、Ｍ＋Ａ≧Ｆmin のときは主信号用メモリに格納された未送信データの先頭バイトからＮ−Ａバイト目までを主信号用メモリから読み出して出力し且つＭ＋Ａ＜Ｆmin のときは未送信データの先頭バイトからＮ−Ｆmin −Ｂバイト目までを主信号用メモリから読み出して出力する出力処理とを行う制御部とを備える。
【０００９】
（２）第２の発明は、最小フレーム長がＦmin バイトで最大フレーム長がＦmax バイトの可変長フレームを順次保存しておき、外部から許可バイト数を入力するたびに許可バイト数を超えない量の未送信データを可変長フレーム単位で順次出力するための可変長フレーム境界検索方法に関する。
【００１０】
そして、主信号用メモリに可変長フレームを順次保存する第１ステップと、最大フレーム長Ｆmax 以上の周期を有するバイトカウンタを用いて、可変長フレームのデータが主信号用メモリに１バイト書き込まれるたびに計数値を「１」ずつ増加させ、１個の可変長フレームの書き込みが終了するたびに計数値をクリアする第２ステップと、可変長フレームの最小フレーム長Ｆmin と同一の周期を有する最小フレーム長カウンタを用いて、可変長フレームのデータが主信号用メモリに１バイト書き込まれるたびに計数値を「１」ずつ増加させる第３ステップと、最小フレーム長カウンタの計数値が最小フレーム長Ｆmin に達するたびに、閾値検索用メモリにバイトカウンタの計数値を格納する第４ステップとを含む保存過程と、閾値検索用メモリの格納値から出力許可バイト数の終端に対応する値Ａを読み出す第５ステップと、値Ａの直前に閾値検索用メモリに格納された値Ｂを読み出す第６ステップと、最小フレーム長Ｆmin の整数倍のうち出力許可バイト数の終端位置を超えない範囲内で最も大きい値を出力許可バイト数から減算した値Ｍを算出する第７ステップと、最小フレーム長Ｆmin の整数倍のうち出力許可バイト数の終端位置を超える範囲内で最も小さい値から送信済バイト数を減算した値Ｎを算出する第８ステップと、Ｍ＋Ａ≧Ｆmin のときは主信号用メモリに格納された未送信データの先頭バイトからＮ−Ａバイト目を主信号用メモリから読み出す可変長フレームの後端であると判定し且つＭ＋Ａ＜Ｆmin のときは未送信データの先頭バイトからＮ−Ｆmin −Ｂバイト目を主信号用メモリから読み出す可変長フレームの後端であると判定する判定処理とを行う第９ステップとを含む境界検索過程とを有する。
【発明の効果】
【００１１】
この発明によれば、主信号用メモリへの書き込みデータが最小フレーム長Ｆmin に達したときのバイトカウンタの計数値を記憶するだけで、可変長フレームの境界を高速検索することができる。したがって、この発明によれば、少ないメモリ容量で、可変長フレームの境界を高速検索することが可能になる。
【発明を実施するための最良の形態】
【００１２】
以下、この発明の実施の形態について、図面を用いて説明する。なお、図中、各構成成分の大きさ、形状および配置関係は、この発明が理解できる程度に概略的に示してあるにすぎず、また、以下に説明する数値的条件は単なる例示にすぎない。
【００１３】
実施形態の構成
図１は、この実施形態に係る可変長フレームバッファ装置の要部構成を概略的に示すブロック図である。
【００１４】
図１に示したように、この実施形態の可変長フレームバッファ装置１００は、主信号用メモリ１１０と、バイトカウンタ１２０と、最小フレーム長カウンタ１３０と、閾値検索用メモリ１４０と、制御回路１５０とを備えている。
【００１５】
主信号用メモリ１１０は、ライトイネーブル信号ＷＥ１が活性化されたときに、アドレス信号ＡＤＤ１で指定された記憶領域に、可変長フレームデータＤｆを保存する。また、主信号用メモリ１１０は、リードイネーブル信号ＲＥ１が活性化されたときに、アドレス信号ＡＤＤ１で指定された記憶領域の可変長フレームデータＤｆを出力する。
【００１６】
バイトカウンタ１２０は、最大フレーム長（ここではＦmax バイトとする）以上の周期を有している。このバイトカウンタ１２０は、ライトイネーブル信号ＷＥ１が活性化されるたびに計数値ＢＣＮＴを「１」ずつ増加させ、且つ、フレーム終了フラグＦｆがセットされるたびに計数値ＢＣＮＴをクリアする。これにより、バイトカウンタ１２０は、可変長フレームデータＤｆが主信号用メモリ１１０に１バイト書き込まれるたびに計数値ＢＣＮＴを「１」ずつ増加させ、且つ、１個の可変長フレームの書き込みが終了するたびに計数値ＢＣＮＴをクリアすることになる（後述）。
【００１７】
最小フレーム長カウンタ１３０は、可変長フレームの最小フレーム長（ここではＦmin バイトとする）と同一の周期を有し、可変長フレームのデータが主信号用メモリ１１０に１バイト書き込まれるたびに、計数値（ここではＦＣＮＴと記す）を「１」ずつ増加させる。さらに、最小フレーム長カウンタ１３０は、計数値ＦＣＮＴが最小フレーム長Ｆmin に達するたびに、ライトイネーブル信号ＷＥ２を活性化する。
【００１８】
閾値検索用メモリ１４０は、ライトイネーブル信号ＷＥ２が活性化されるたびに、アドレス信号ＡＤＤ２で指定された記憶領域に、計数値ＢＣＮＴを格納する。これにより、閾値検索用メモリ１４０は、最小フレーム長カウンタ１３０の計数値ＦＣＮＴが最小フレーム長Ｆmin に達するたびに、バイトカウンタ１２０の計数値ＢＣＮＴを格納することになる。また、閾値検索用メモリ１４０は、リードイネーブル信号ＲＥ２が活性化されたときに、アドレス信号ＡＤＤ２で指定された記憶領域の計数値ＢＣＮＴを出力する。
【００１９】
制御回路１５０は、主信号用メモリ１１０に可変長フレームデータＤｆを書き込む際には、アドレス信号ＡＤＤ１，ＡＤＤ２、ライトイネーブル信号ＷＥ１およびフレーム終了フラグＦｆを制御して、後述のような書き込み処理を実行する。また、制御回路１５０は、主信号用メモリ１１０から可変長フレームデータＤｆを読み出して出力する際には、アドレス信号ＡＤＤ２およびリードイネーブル信号ＲＥ２を制御して後述のような境界検索過程を実行するとともに、アドレス信号ＡＤＤ１およびリードイネーブル信号ＲＥ１を制御して、該当する可変長フレームデータＤｆを主信号用メモリ１１０から読み出し、外部に出力させる。
【００２０】
実施形態の動作
次に、図１に示した可変長フレームバッファ装置１００の動作について説明する。
【００２１】
まず、可変長フレームバッファ装置１００に可変長フレームデータＤｆを格納する際の動作を説明する。
【００２２】
格納動作の開始時、制御回路１５０は、アドレス信号ＡＤＤ１，ＡＤＤ２を、メモリ１１０，１４０の最初のアドレス（例えば「００００」）に設定する。
【００２３】
続いて、制御回路１５０は、主信号用メモリ１１０に可変長フレームデータＤｆを１バイトずつ供給するとともに、アドレス信号ＡＤＤ１をカウントアップして、ライトイネーブル信号ＷＥ１を活性化する。これにより、主信号用メモリ１１０には、最初のアドレスから順に、可変長フレームデータＤｆが１バイトずつ格納されていく。
【００２４】
バイトカウンタ１２０は、ライトイネーブル信号ＷＥ１が非活性化状態から活性化状態に遷移するたびに、計数値ＢＣＮＴを「１」ずつ増加させる。これにより、バイトカウンタ１２０は、主信号用メモリ１１０に１バイトのデータが書き込まれるたびに、計数値ＢＣＮＴを「１」ずつカウントアップすることになる（上述）。
【００２５】
可変長フレーム１個分のデータＤｆの書き込みが終了すると、制御回路１５０は、フレーム終了フラグＦｆをセットする。これにより、バイトカウンタ１２０の計数値ＢＣＮＴが「０」にクリアされる。
【００２６】
最小フレーム長カウンタ１３０は、上述のように、可変長フレームデータＤｆが主信号用メモリ１１０に１バイト書き込まれるたびに計数値ＦＣＮＴを「１」ずつ増加させ、計数値ＦＣＮＴが最小フレーム長Ｆmin に達するとライトイネーブル信号ＷＥ２を活性化する。これにより、そのときのバイトカウンタ１２０の計数値ＢＣＮＴが、閾値検索用メモリ１４０に格納される。
【００２７】
制御回路１５０は、閾値検索用メモリ１４０への書き込みが行われるたびに、アドレス信号ＡＤＤ２の値をカウントアップする。これにより、閾値検索用メモリ１４０には、最初のアドレスから順に、計数値ＢＣＮＴが格納されていく。
【００２８】
以上の動作を、送信すべき可変長フレームデータＤｆの最終バイトが格納されるまで繰り返すことにより、主信号用メモリ１１０への可変長データ書き込みが行われる。
【００２９】
次に、可変長フレームバッファ装置１００から可変長フレームデータＤｆを出力する際の動作を説明する。
【００３０】
まず、可変長フレームバッファ装置１００に、外部から出力許可バイト数（ＰＯＮの端末側通信装置に搭載された可変長フレームバッファ装置の場合であれば、局側通信装置から端末側通信装置に送られた送信許可バイト数）Ｒeqが入力される。
【００３１】
制御回路１５０は、前回までの出力処理で出力された可変長フレームの総バイト数Ｒsum と、今回の出力許可バイト数Ｒeqとの和Ｒsum ＋Ｒeqを演算し、さらに、この演算結果Ｒsum ＋Ｒeqを最小フレーム長Ｆmin で除算する。そして、この演算の商（Ｒsum ＋Ｒeq）／Ｆmin に端数がある場合には、商を切り上げる。
【００３２】
続いて、制御回路１５０は、この商を、アドレス信号ＡＤＤ２として出力するとともに、リードイネーブル信号ＲＥ２を活性化する。これにより、制御回路１５０は、このアドレスの格納データ（バイトカウンタ１２０の計数値ＢＣＮＴ）を、閾値検索用メモリ１４０から読み出すことができる。以下、この格納データを「Ａ」とする。格納データの読み出し後、リードイネーブル信号ＲＥ２は、非活性化状態に戻される。
【００３３】
続いて、制御回路１５０は、上述の商よりも「１」だけ小さい値をアドレス信号ＡＤＤ２として出力するとともに、リードイネーブル信号ＲＥ２を再度活性化する。これにより、このアドレスに対応する格納データが、閾値検索用メモリ１４０から読み出される。以下、この格納データをＢとする。格納データの読み出し後、リードイネーブル信号ＲＥ２は、非活性化状態に戻される。
【００３４】
次に、制御回路１５０は、最小フレーム長Ｆmin の整数倍のうち、出力許可バイト数Ｒeqの終端位置を超えない範囲内で最も大きい値を、出力許可バイト数Ｒeqから減算する。以下、この減算結果を、「Ｍ」とする。この「Ｍ」は、例えば、出力許可バイト数Ｒeqを最小フレーム長Ｆmin で除算したときの余りからオフセット値ＯＳＴ（前回の読み出し終了後に最初に閾値検索用メモリに格納された計数値ＢＣＮＴ、図２参照）を減算することによって算出することができる（後述）。
【００３５】
さらに、制御回路１５０は、最小フレーム長Ｆmin の整数倍のうち、出力許可バイト数Ｒeqの終端位置を超える範囲内で最も小さい値を算出する。以下、この演算結果を「Ｎ」とする。
【００３６】
続いて、制御回路１５０は、Ｍ＋Ａを算出して、最小フレーム長Ｆmin と比較する。そして、Ｍ＋Ａ≧Ｆmin の場合、制御回路１５０は、主信号用メモリ１１０に格納された未送信データの先頭バイトからＮ−Ａバイト目を、主信号用メモリ１１０から読み出す可変長フレームの後端であると判定する。一方、Ｍ＋Ａ＜Ｆmin の場合、制御回路１５０は、主信号用メモリ１１０に格納された未送信データの先頭バイトからＮ−Ｆmin −Ｂバイト目を主信号用メモリ１１０から読み出す可変長フレームの後端であると判定する。
【００３７】
その後、制御回路１５０は、主信号用メモリ１１０における未読出領域の先頭アドレスをアドレス信号ＡＤＤ１として出力するともに、リードイネーブル信号ＲＥ１を活性化する。これにより、最初の１バイトの未送信可変長フレームデータＤｆが、主信号用メモリ１１０から読み出される。さらに、制御回路１５０は、アドレス信号ＡＤＤ１をカウントアップしつつ、上述の判定結果が示す位置（主信号用メモリ１１０から読み出す可変長フレームの後端位置）まで、可変長フレームデータＤｆを１バイトずつ読み出す。読み出されたデータＤｆは、可変長フレームとして、可変長フレームバッファ装置１００から出力される。
【００３８】
実施形態の原理
以下、上述の動作によって送信可能な可変長フレームの終端位置が検出できる理由について、図２および図３を用いて説明する。
【００３９】
以下の説明では、可変長フレームの最小フレーム長Ｆmin を６４バイトとし、最大フレーム長Ｆmax を１５１８バイトとする。また、主信号用メモリ１１０の未読出領域には、６４バイト、９６バイトおよび１２８バイトの可変長フレームが、この順に格納されるものとする。
【００４０】
最初に、可変長フレームＤｆを主信号用メモリ１１０に格納するときの動作原理について説明する。
【００４１】
図２の例では、まず、計数値ＢＣＮＴがクリアされ、最初の可変長フレーム（６４バイト）の格納が開始される。そして、最小フレーム長カウンタ１３０の計数値ＦＣＮＴが最大値「６３」に達したとき（計数は０から始まるので、Ｆmin に相当する計数値は６３である）、計数値「２」が、閾値検索用メモリ１４０のアドレス「ｎ−３」に格納される。
【００４２】
その後、６４バイトの可変長フレームの格納が終了すると、計数値ＢＣＮＴがクリアされ、二番目の可変長フレーム（９６バイト）の格納が開始される。
【００４３】
最小フレーム長カウンタ１３０の計数値ＦＣＮＴが最大値「６３」に達したとき、バイトカウンタ１２０の計数値ＢＣＮＴは「２」である。したがって、閾値検索用メモリ１４０のアドレス「ｎ−２」には、計数値「２」が格納される。
【００４４】
最小フレーム長カウンタ１３０の計数値ＦＣＮＴが次に最大値「６３」に達したとき、バイトカウンタ１２０の計数値ＢＣＮＴは「６６」である。したがって、閾値検索用メモリ１４０のアドレス「ｎ−１」には、計数値「６６」が格納される。
【００４５】
そして、二番目の可変長フレームの格納が終了したとき、バイトカウンタ１２０の計数値ＢＣＮＴがクリアされ、三番目の可変長フレーム（１２８バイト）の格納が開始される。
【００４６】
最小フレーム長カウンタ１３０の計数値ＦＣＮＴが次に最大値「６３」に達したとき、バイトカウンタ１２０の計数値ＢＣＮＴは「３４」である。この計数値「３４」は、閾値検索用メモリ１４０のアドレス「ｎ」に格納される。
【００４７】
図２から解るように、最小フレーム長カウンタ１３０の計数値ＦＣＮＴが最大値「６３」となるタイミングは、主信号用メモリ１１０に格納されるデータＤｆがすべて最小フレーム長の可変長フレームであった場合の、フレーム終端位置に対応している。一方、バイトカウンタ１２０の計数値ＢＣＮＴは、実際に格納された可変長フレームにおける、一つ前の可変長フレームの終端位置からの長さ（バイト数）である。したがって、閾値検索用メモリ１４０に格納される計数値は、主信号用メモリ１１０に格納された可変長フレームの終端位置から、主信号用メモリ１１０の格納データＤｆを最小フレーム長Ｆmin で区切ったときの終端位置までの長さ（バイト数）である。
【００４８】
次に、可変長フレームＤｆを読み出すときの動作原理を説明する。
【００４９】
主信号用メモリ１１０から可変長フレームデータＤｆを読み出す際、上述のように、制御回路１５０は、前回までの出力処理で送信済の可変長フレームの総バイト数Ｒsum と今回の出力許可バイト数Ｒeq（ここではＲeq＝１６３バイトとする）との和Ｒsum ＋Ｒeqを演算し、さらに、この演算結果Ｒsum ＋Ｒeqを最小フレーム長Ｆmin で除算する（商に端数がある場合には切り上げる）。この演算結果は、閾値検索用メモリ１４０に格納された計数値のうち、今回の出力許可バイト数Ｒeqの終端位置に対応するものが格納されたアドレスを示している。上述のように、最小フレーム長カウンタ１３０の計数値ＦＣＮＴが最小フレーム長Ｆmin に達するたびに、そのときのバイトカウンタ１２０の計数値ＢＣＮＴが閾値検索用メモリ１４０に順次格納される。例えば、最小フレーム長カウンタ１３０の計数がｎ周した時点の計数値ＢＣＮＴ（図２の例では「３４」）は、閾値検索用メモリ１４０のｎ番目のアドレスに格納される（図２参照）。すなわち、出力許可バイト数の終端位置が主信号用メモリ１１０の（ｎ−１）×Ｆmin バイト目以降であり且つｎ×Ｆmin バイト目よりも前である場合は、対応する格納値として、ｎ番目の計数値ＢＣＮＴが、値Ａ（＝３４）として、閾値検索用メモリ１４０から読み出される。
【００５０】
これと併せて、閾値検索用メモリ１４０からは、ｎ−１番目の計数値ＢＣＮＴが、値Ｂ（＝６６）として読み出される。
【００５１】
次に、制御回路１５０は、最小フレーム長Ｆmin の整数倍のうち、出力許可バイト数Ｒeqの終端を超えない範囲内で最も大きい値（図２のｍ参照）を求め、さらに、この値ｍを出力許可バイト数Ｒeqから減算した値Ｍを求める。また、上述のように、この「Ｍ」は、出力許可バイト数Ｒeqを最小フレーム長Ｆmin で除算したときの余りからオフセット値ＯＳＴ（図２参照）を減算することによって算出してもよい。以下、この理由を説明する。
【００５２】
前回の読み出し完了位置から値ｍの終端位置までバイト数をΔｍとすると、出力許可バイト数Ｒeqは、Δｍ＋Ｍで与えられる（図２参照）。ここで、Δｍは、ＯＳＴ＋ｒ×Ｆmin （ｒは０または自然数、図２の例ではｒ＝２）で与えられる。したがって、下式（１）が成立する。
【００５３】
Ｒeq＝ＯＳＴ＋ｒ×Ｆmin ＋Ｍ    ・・・（１）
そして、式（１）を変形することにより、下式（２）が成立する。
【００５４】
Ｍ＝Ｒeq−ｒ×Ｆmin −ＯＳＴ
ここで、Ｒeq−ｒ×Ｆmin はＲeqをＦmin で除算したときの余りに等しい。故に、Ｍは、この余りからオフセット値ＯＳＴを減算した値になる。
【００５５】
続いて、制御回路１５０は、最小フレーム長Ｆmin の整数倍のうち、出力許可バイト数Ｒeqを超える範囲内で最も小さい値から送信済バイト数Ｒsum を減算した値Ｎを求める。図２の例では、Ｍ＝３３バイト、Ｎ＝１９４バイトである。
【００５６】
出力できる可変長フレームの終端位置は、以下のようにして検索することができる。
【００５７】
図２から解るように、出力許可バイト数Ｒeqの終端位置は、（ｎ−１）×Ｆmin＋Ｍで与えられる。また、アドレス「ｎ」の格納値（すなわち、上述の値Ａ）に対応する可変長フレーム（すなわち９６バイト可変長フレーム）の終端は、ｎ×Ｆmin −Ａで与えられる。ここで、出力できる可変長フレームは、出力許可バイト数の終端位置の直前に終端位置がある可変長フレームまでである。
【００５８】
したがって、Ｆmin ×（ｎ−１）＋Ｍ≧Ｆmin ×ｎ−Ａ（すなわち、Ｍ＋Ａ≧Ｆmin ）のとき、値Ａに対応する可変長フレームまでの各未送信可変長フレームを出力することが可能である。値Ａに対応する可変長フレームの終端位置は、Ｎ−Ａで与えられる。したがって、制御部１５０は、未送信可変長フレームの先端からＮ−Ａバイト目までの各格納データＤｆを、主信号用メモリ１１０に出力させればよい。
【００５９】
一方、Ｆmin ×（ｎ−１）＋Ｍ＜Ｆmin ×ｎ−Ａ（すなわち、Ｍ＋Ａ＜Ｆmin ）のとき、値Ａに対応する可変長フレームを出力することはできない。図３は、Ｍ＋Ａ＜Ｆmin の場合の一例を示しており、出力許可バイト数Ｒeqが１５７バイトのときの例である（他の条件は図２の場合と同じである）。図３に示したように、Ｍ＋Ａ＜Ｆmin のとき、値Ａに対応する可変長フレーム（すなわち９６バイト可変長フレーム）の終端位置は、出力許可バイト数Ｒeqの終端位置よりも後ろにある。このような場合には、値Ａに対応する可変長フレームよりも１個前の可変長フレーム（すなわち、値Ｂに対応する可変長フレーム）までしか送信することができない。図３から解るように、値Ｂに対応する可変長フレームの終端位置は、（Ｎ−Ｆmin ）−Ｂで与えられる。したがって、制御部１５０は、未送信可変長フレームの先端から（Ｎ−Ｆmin ）−Ｂバイト目までの各格納データＤｆを、主信号用メモリ１１０に出力させればよい。
【００６０】
以上説明したように、この実施形態では、送信可能な可変長フレームの終端位置を検索するために、閾値検索用メモリ１４０から値Ａ，Ｂを読み出すだけでよい。すなわち、この実施形態では、かかる検索のために必要なメモリアクセスは、二回である。したがって、かかる検索を、短時間で行うことができる。なお、この実施形態では、値Ａ，Ｂを同時に読み出したが、最初に値Ａを読み出してＭ＋Ａ＜Ｆmin の場合にのみ値Ｂを読み出すこととしてもよい。
【００６１】
加えて、この実施形態では、閾値検索用メモリ１４０に格納されるのは、最小フレーム長カウンタ１３０の計数値ＦＣＮＴが最大値に達したときの、バイトカウンタ１２０の計数値ＢＣＮＴのみである。すなわち、この実施形態では、可変長フレームデータＤｆ以外の格納データが非常に小さい容量で済むので、可変長フレームバッファ装置の小型化や低価格化を図ることができる。
【図面の簡単な説明】
【００６２】
【図１】実施の形態に係る可変長フレームバッファ装置の要部構成を概略的に示すブロック図である。
【図２】実施の形態に係る可変長フレーム境界検索方法を説明するためのタイミングチャートである。
【図３】実施の形態に係る可変長フレーム境界検索方法を説明するためのタイミングチャートである。
【符号の説明】
【００６３】
１００  可変長フレームバッファ装置
１１０  主信号用メモリ
１２０  バイトカウンタ
１３０  最小フレーム長カウンタ
１４０  閾値検索用メモリ
１５０  制御回路
【図１】
0004674709.tif 000002
【図２】
0004674709.tif 000003
【図３】
0004674709.tif 000004