(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023124271
(43)【公開日】2023-09-06
(54)【発明の名称】情報転送装置および情報転送方法
(51)【国際特許分類】
H04L 13/08 20060101AFI20230830BHJP
【FI】
H04L13/08
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022027940
(22)【出願日】2022-02-25
(71)【出願人】
【識別番号】000000295
【氏名又は名称】沖電気工業株式会社
(74)【代理人】
【識別番号】110001461
【氏名又は名称】弁理士法人きさ特許商標事務所
(72)【発明者】
【氏名】原田 和久
(57)【要約】
【課題】情報の欠落を抑制する情報転送装置および情報転送方法を提供する。
【解決手段】情報転送装置は、通信部とバッファ部と監視部と読み出し部とギャップ制御部とを備える。通信部はフレームを受信する。バッファ部は通信部が受信したフレームを保存する。監視部は、バッファ部の空き容量を監視し、空き容量の大きさに基づいて、バッファ部にフレームが蓄積されているかを判定する。読み出し部は、バッファ部に保存された複数のフレームの間にインターフレームギャップを挿入して読み出す。ギャップ制御部は、バッファ部にフレームが蓄積されている場合には、読み出し部が複数のフレームの間に挿入するインターフレームギャップの長さを、読み出し部がフレームを読み出した回数に基づいて調節するよう読み出し部を制御する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
フレームを受信する通信部と、
前記通信部が受信した前記フレームを保存するバッファ部と、
前記バッファ部の空き容量を監視し、前記空き容量の大きさに基づいて、前記バッファ部に前記フレームが蓄積されているかを判定する監視部と、
前記バッファ部に保存された複数の前記フレームの間にインターフレームギャップを挿入して読み出す読み出し部と、
前記バッファ部に前記フレームが蓄積されている場合には、前記読み出し部が前記複数のフレームの間に挿入する前記インターフレームギャップの長さを、前記読み出し部が前記フレームを読み出した回数に基づいて調節するよう、前記読み出し部を制御するギャップ制御部と、
を備える、情報転送装置。
【請求項2】
前記ギャップ制御部は、
前記回数が予め定められた規定値である場合には、前記複数のフレームの間に挿入される前記インターフレームギャップの長さを、予め定められた基準長よりも短くするよう前記読み出し部を制御し、
前記読み出し部は、
前記回数が前記規定値でない場合には、前記複数のフレームの間に挿入する前記インターフレームギャップの長さを前記基準長にする、請求項1に記載の情報転送装置。
【請求項3】
前記読み出し部は、
前記バッファ部に前記フレームが蓄積されている場合には、前記フレームを読み出す毎に完了情報を生成し、
前記ギャップ制御部は、
前記読み出し部が前記完了情報を生成する度にカウントを行い、
前記カウントによって得られたカウント値が前記規定値と等しい場合には、前記複数のフレームの間に挿入される前記インターフレームギャップの長さを前記基準長より短縮するよう前記読み出し部を制御し、
前記読み出し部は、
前記カウント値が前記規定値と異なる場合には、前記複数のフレームの間に挿入する前記インターフレームギャップの長さを前記基準長にする、請求項2に記載の情報転送装置。
【請求項4】
前記ギャップ制御部は、
前記規定値以上の予め定められた上限値に前記カウント値が等しくなるまで前記カウントを行い、前記バッファ部に前記フレームが蓄積されている間、前記上限値までの前記カウントを繰り返す、請求項3に記載の情報転送装置。
【請求項5】
前記上限値は10である、請求項4に記載の情報転送装置。
【請求項6】
前記規定値は0から10までの整数のうちの1つの値である、請求項2~請求項5のいずれか一項に記載の情報転送装置。
【請求項7】
前記基準長は12バイトである、請求項2~請求項6のいずれか一項に記載の情報転送装置。
【請求項8】
前記監視部は、
前記空き容量が第1閾値以下である場合には、前記バッファ部に前記フレームが蓄積されていると判定する、請求項1~請求項7のいずれか一項に記載の情報転送装置。
【請求項9】
前記第1閾値は、前記フレームの送信元のクロック周波数と、前記読み出し部の読み出し速度に対応するクロック周波数とに基づいて定められる、請求項8に記載の情報転送装置。
【請求項10】
受信したフレームを蓄積するバッファ部を備える情報転送装置が実行する情報転送方法であって、
前記バッファ部の空き容量を監視し、前記空き容量の大きさに基づいて、前記バッファ部に前記フレームが蓄積されているかを判定する監視ステップと、
前記バッファ部に保存された複数の前記フレームの間にインターフレームギャップを挿入して読み出す読み出しステップと、
前記バッファ部に前記フレームが蓄積されている場合には、前記複数のフレームの間に挿入する前記インターフレームギャップの長さを、前記フレームを読み出した回数に基づいて調節するギャップ制御ステップと、
を含む、情報転送方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、クロック周波数が異なる装置との間で情報通信を行う情報転送装置、および、当該情報転送装置による情報転送方法に関するものである。
【背景技術】
【0002】
従来から、情報通信の分野においてイーサネット(登録商標)などの通信規格が用いられている。イーサネットでは、フレーム単位の非同期通信が装置間で行われる。すると、送信側と受信側の各装置のクロック周波数に差が生じる。各装置には、このようなクロック周波数の差を補うために、受信した情報を一時的に保存するFIFO(First In, First Out)バッファと、送信する情報を一時的に保存するFIFOバッファとが設けられている。以下では、受信した情報を一時的に保存するFIFOバッファを受信側バッファと記載し、送信する情報を一時的に保存するFIFOバッファを送信側バッファと記載する場合もある。
【0003】
情報の転送を行う情報転送装置は、当該情報の送信元の端末装置のクロック周波数で、受信側バッファに当該情報を書き込む。そして、情報転送装置は、当該情報転送装置のクロック周波数で、受信側バッファに蓄えられている情報を読み出し、読み出した情報を送信側バッファに書き込む。更に、情報転送装置は、送信側バッファに蓄えられている情報を、当該情報の転送先の端末装置のクロック周波数で読み出し、読み出した当該情報を転送する。
【0004】
ここで、情報転送装置がFIFOバッファから情報を読み出す際のクロック周波数より、情報転送装置が当該情報を当該FIFOバッファに書き込む際のクロック周波数が高い場合には、次のような問題が発生する。すなわち、全ての情報がFIFOバッファに書き込まれる前にFIFOバッファの空き容量が無くなり、一部の情報がFIFOバッファに書き込まれず、これによって、読み出される情報に欠落が生じる。そのため、従来の情報転送装置は、FIFOバッファから情報を読み出す際にフレームとフレームとの間に挿入するインターフレームギャップ(IFG:Inter Frame Gap)の長さを調整することで、情報の欠落を抑制している。詳細には、情報転送装置は、FIFOバッファに複数のフレームを書き込む際に当該複数のフレームの間に挿入されていたIFGよりも短いIFGを、当該複数のフレームを読み出す際に挿入する(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
近年では、情報転送装置が、省電力機能として、IEEE(Institute of Electrical and Electronics Engineers)802.3azのEEE(Energy Efficient Ethernet)などの機能を有する場合がある。このような情報転送装置は、情報を受信するまではスリープ状態を維持し、情報を受信した際に動作を開始または再開するが、情報の転送処理を開始するまでの間に当該情報に欠落が生じないよう、FIFOバッファに当該情報を蓄積させる必要がある。すると、情報転送装置は、FIFOバッファに情報が蓄積されている状態において情報の読み出しを開始することになる。情報転送装置は、FIFOバッファから情報を読み出す際のクロック周波数より、当該情報を当該FIFOバッファへ書き込む際のクロック周波数が高い場合などには、当該FIFOバッファの空き容量が無くなることを防止するため、当該FIFOバッファから読み出す複数のフレームの間隔を連続して狭める。すなわち、情報転送装置は、当該FIFOバッファから読み出す複数のフレームの間に挿入するIFGを短縮し続ける。これにより、IFGの平均長は、推奨される12バイトより短くなり得る。結果として、情報の送信先には、互いの間隔が狭められた複数のフレームが連続的に送信され続けることになり、情報の送信先のFIFOバッファの空き容量が無くなり、情報の欠落が発生する虞がある。
【0007】
本開示は、上記課題を解決するためになされたものであり、情報の欠落を抑制する情報転送装置および情報転送方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本開示に係る情報転送装置は、フレームを受信する通信部と、前記通信部が受信した前記フレームを保存するバッファ部と、前記バッファ部の空き容量を監視し、前記空き容量の大きさに基づいて、前記バッファ部に前記フレームが蓄積されているかを判定する監視部と、前記バッファ部に保存された複数の前記フレームの間にインターフレームギャップを挿入して読み出す読み出し部と、前記バッファ部に前記フレームが蓄積されている場合には、前記読み出し部が前記複数のフレームの間に挿入する前記インターフレームギャップの長さを、前記読み出し部が前記フレームを読み出した回数に基づいて調節するよう、前記読み出し部を制御するギャップ制御部と、を備える。
【0009】
本開示に係る情報転送方法は、受信したフレームを蓄積するバッファ部を備える情報転送装置が実行する情報転送方法であって、前記バッファ部の空き容量を監視し、前記空き容量の大きさに基づいて、前記バッファ部に前記フレームが蓄積されているかを判定する監視ステップと、前記バッファ部に保存された複数の前記フレームの間にインターフレームギャップを挿入して読み出す読み出しステップと、前記バッファ部に前記フレームが蓄積されている場合には、前記複数のフレームの間に挿入する前記インターフレームギャップの長さを、前記フレームを読み出した回数に基づいて調節するギャップ制御ステップと、を含む。
【発明の効果】
【0010】
本開示に係る情報転送装置および情報転送方法によれば、情報転送装置は、フレームを読み出した回数に基づいてインターフレームギャップの長さを調節する。これにより、バッファ部にフレームが蓄積されている状態における連続したインターフレームギャップの短縮が抑制される。従って、情報転送装置は情報の欠落の発生を抑制することができる。
【図面の簡単な説明】
【0011】
【
図1】実施の形態1に係る情報転送装置を含む情報転送システムの構成例を示す図である。
【
図2】実施の形態1に係る情報転送装置の構成例を示すブロック図である。
【
図3】実施の形態1に係る情報転送装置によるIFGの短縮処理について説明するための図である。
【
図4】実施の形態1におけるIFGの長さの変化例を示す図である。
【
図5】実施の形態1に係る情報転送装置のハードウェア構成を例示する図である。
【
図6】実施の形態1に係る情報転送装置による情報転送処理を例示するフローチャートである。
【
図7】実施の形態2に係る情報転送装置1の構成例を示すブロック図である。
【
図8】実施の形態2に係る情報転送装置によるIFGの短縮処理について説明するための図である。
【
図9】実施の形態2に係る情報転送装置のハードウェア構成を例示する図である。
【
図10】実施の形態3に係る情報転送装置によるIFGの短縮例を示す図である。
【発明を実施するための形態】
【0012】
実施の形態1.
図1は、実施の形態1に係る情報転送装置を含む情報転送システムの構成例を示す図である。情報転送システム100は、情報転送装置1と、複数の端末装置3とを有する。情報転送装置1は、複数の端末装置3の各々と通信を行う。そして、情報転送装置1は、複数の端末装置3のうちのいずれかの端末装置3から受信した情報を、当該複数の端末装置3のうちの他の端末装置3に転送する。複数の端末装置3のうちの全部または一部は、情報転送装置1と同一の装置であってもよく、情報転送装置1は、当該情報転送装置1と同一の装置を介して、情報の宛先である端末装置3に当該情報を送信してもよい。
【0013】
実施の形態1に係る情報転送装置1は、イーサネット(登録商標)によって、複数の端末装置3の各々と通信を行う。すなわち、情報転送装置1は、各端末装置3と有線通信を行い、イーサネットフレーム(Ethernet Frame)単位で情報の送受信を行う。以下では、イーサネットフレームなど、送受信される情報の単位をフレームと記載する。
【0014】
図2は、実施の形態1に係る情報転送装置の構成例を示すブロック図である。情報転送装置1は、複数の通信部10と、複数の受信側バッファ部11と、複数の送信側バッファ部12と、複数の受信側書き込み部13と、複数の受信側読み出し部14と、処理部15と、複数の送信側書き込み部16と、複数の送信側読み出し部17と、クロック生成部18と、監視部19と、ギャップ制御部20とを備える。各送信側バッファ部12はバッファ部の例であり、各送信側書き込み部16は書き込み部の例であり、各送信側読み出し部17は読み出し部の例である。
【0015】
図2の情報転送装置1における各部を互いに接続する破線、および、情報転送装置1と端末装置3とを接続する破線は、各種信号または各種情報等の授受を可能にする信号線、制御線または通信線等を示す。ただし、各部の接続関係は
図2に示すものに限られない。
図2の一点鎖線による四角と、クロック生成部18とを接続する破線は、当該四角に囲まれた受信側読み出し部14と処理部15と送信側書き込み部16とのうちの少なくともいずれかと、クロック生成部18とを接続する信号線、制御線または通信線等を示す。
【0016】
情報転送装置1において、通信部10と受信側バッファ部11と送信側バッファ部12と受信側書き込み部13と受信側読み出し部14と送信側書き込み部16と送信側読み出し部17とは、各端末装置3に対応付けて設けられる。すなわち、各端末装置3と各通信部10と各受信側バッファ部11と各送信側バッファ部12と各受信側書き込み部13と各受信側読み出し部14と各送信側書き込み部16と各送信側読み出し部17とは、1対1に対応する。そのため、通信部10と受信側バッファ部11と送信側バッファ部12と受信側書き込み部13と受信側読み出し部14と送信側書き込み部16と送信側読み出し部17のそれぞれの数は、情報転送システム100に含まれる端末装置3の数と等しい。
【0017】
以下では、理解容易のため、情報転送装置1が2つの端末装置3と通信を行う場合を例に挙げて説明する。当該2つの端末装置3のうちの一方を第1端末装置3A、他方を第2端末装置3Bと記載する場合もある。また、複数の通信部10のうち、第1端末装置3Aと対応する通信部10を第1通信部10Aと記載し、第2端末装置3Bと対応する通信部10を第2通信部10Bと記載する場合もある。複数の受信側バッファ部11のうち、第1端末装置3Aと対応する受信側バッファ部11を第1受信側バッファ部11Aと記載し、第2端末装置3Bと対応する受信側バッファ部11を第2受信側バッファ部11Bと記載する場合もある。複数の送信側バッファ部12のうち、第1端末装置3Aと対応する送信側バッファ部12を第1送信側バッファ部12Aと記載し、第2端末装置3Bと対応する送信側バッファ部12を第2送信側バッファ部12Bと記載する場合もある。複数の受信側書き込み部13のうち、第1端末装置3Aと対応する受信側書き込み部13を第1受信側書き込み部13Aと記載し、第2端末装置3Bと対応する受信側書き込み部13を第2受信側書き込み部13Bと記載する場合もある。複数の受信側読み出し部14のうち、第1端末装置3Aと対応する受信側読み出し部14を第1受信側読み出し部14Aと記載し、第2端末装置3Bと対応する受信側読み出し部14を第2受信側読み出し部14Bと記載する場合もある。更に、複数の送信側書き込み部16のうち、第1端末装置3Aと対応する送信側書き込み部16を第1送信側書き込み部16Aと記載し、第2端末装置3Bと対応する送信側書き込み部16を第2送信側書き込み部16Bと記載する場合もある。複数の送信側読み出し部17のうち、第1端末装置3Aと対応する送信側読み出し部17を第1送信側読み出し部17Aと記載し、第2端末装置3Bと対応する送信側読み出し部17を第2送信側読み出し部17Bと記載する場合もある。
【0018】
各通信部10は、対応する端末装置3と通信を行う。各通信部10は、対応する端末装置3からフレーム単位で情報を受信する。各端末装置3は、情報転送装置1へ情報を送信する際に、複数のフレームの間にインターフレームギャップ(IFG:Inter Frame Gap)を挿入する。各通信部10は、IFGが挿入された当該複数のフレームを、対応する端末装置3から受信する。各通信部10は、対応する端末装置3に、フレーム単位で情報を送信する。各端末装置3に送信される複数のフレームの間には、IFGが挿入される。
【0019】
受信側バッファ部11と送信側バッファ部12は、それぞれ、FIFO(First In, First Out)バッファである。受信側バッファ部11は、対応する端末装置3から情報転送装置1が受信した複数のフレームを保存する。送信側バッファ部12は、対応する端末装置3に情報転送装置1が転送する複数のフレームを保存する。
【0020】
以下では、理解容易のため、情報転送装置1が、第1端末装置3Aから情報を受信し、第2端末装置3Bに当該情報を転送する場合を例に挙げて説明する。第1通信部10Aは、第1端末装置3AからIFGが挿入された複数のフレームを受信する。
【0021】
第1受信側書き込み部13Aは、第1通信部10Aが第1端末装置3Aから受信した複数のフレームを第1受信側バッファ部11Aに書き込む。第1受信側書き込み部13Aは、複数のフレームを第1受信側バッファ部11Aに書き込む際に、当該複数のフレームに挿入されたIFGを削除する。
【0022】
第1受信側読み出し部14Aは、第1受信側バッファ部11Aに保存された複数のフレームの各々を順次読み出す。第1受信側バッファ部11Aは、第1受信側書き込み部13Aが書き込んだ複数のフレームを、第1受信側読み出し部14Aが読み出すまでの間、保存する。第1受信側読み出し部14Aは、各フレームの読み出しの際に、複数のフレームの間にIFGを挿入する。
【0023】
処理部15は、第1受信側読み出し部14Aが読み出したフレームに対して、転送のための各種処理を行う。
【0024】
第2送信側書き込み部16Bは、処理部15による処理後のフレームを、処理部15から取得する。そして、第2送信側書き込み部16Bは、複数のフレームに挿入されているIFGを削除し、IFGの削除後の複数のフレームを第2送信側バッファ部12Bに書き込む。
【0025】
第2送信側読み出し部17Bは、第2送信側バッファ部12Bに保存された複数のフレームの各々を順次読み出す。第2送信側バッファ部12Bは、第2送信側書き込み部16Bが書き込んだ複数のフレームを、第2送信側読み出し部17Bが読み出すまでの間、保存する。第2送信側読み出し部17Bは、各フレームの読み出しの際に、複数のフレームの間にIFGを挿入する。第2通信部10Bは、第2送信側読み出し部17Bが読み出した複数のフレームを第2端末装置3Bに送信する。
【0026】
クロック生成部18は、受信側読み出し部14と処理部15と送信側書き込み部16等の動作の速度を規定するクロックを生成する。クロック生成部18は、生成したクロック信号を、受信側読み出し部14と処理部15と送信側書き込み部16の全部または一部に出力する。なお、クロック生成部18が、受信側読み出し部14と処理部15と送信側書き込み部16の一部の構成要素にクロック信号を出力する場合には、クロック信号を取得した構成要素は、残りの構成要素にクロック信号を出力してもよい。
【0027】
受信側読み出し部14と処理部15と送信側書き込み部16等は、クロック生成部18によって生成されたクロックの周波数に応じた速度で動作を行う。詳細には、受信側読み出し部14は、クロック生成部18が生成したクロックの周波数に応じた速度で、受信側バッファ部11から複数のフレームの各々を読み出す。処理部15は、クロック生成部18が生成したクロックの周波数に応じた速度で各種処理を行う。送信側書き込み部16は、クロック生成部18が生成したクロックの周波数に応じた速度で、複数のフレームの各々を送信側バッファ部12に書き込む。以下では、クロックの周波数をクロック周波数と記載する場合もある。
【0028】
クロック周波数は、情報転送装置1および複数の端末装置3の装置毎に定まる。ここで、実施の形態1における受信側書き込み部13は、対応する端末装置3からの情報から、当該対応する端末装置3のクロック周波数を抽出する。情報転送装置1は、受信側書き込み部13が抽出したクロック周波数を記憶する。受信側書き込み部13は、抽出したクロック周波数で、対応する端末装置3からの複数のフレームを、受信側バッファ部11に書き込む。
【0029】
送信側読み出し部17は、対応する端末装置3のクロック周波数で、送信側バッファ部12から複数のフレームを読み出す。通信部10は、対応する端末装置3のクロック周波数で、当該対応する端末装置3に複数のフレームを送信する。なお、当該対応する端末装置3のクロック周波数は、通信部10が当該対応する端末装置3から情報を受信した際に、受信側書き込み部13によって抽出されている。
【0030】
さて、近年、省電力の観点から、情報転送システム100の全部または一部の装置が、IEEE(Institute of Electrical and Electronics Engineers)802.3azのEEE(Energy Efficient Ethernet)などの機能を具備する。以下では、この機能をスリープ機能と記載する場合もある。
【0031】
実施の形態1では、送信側読み出し部17がスリープ機能を有するものとする。以下、第2送信側読み出し部17Bがスリープ機能を有する場合を例に挙げて説明する。情報転送装置1が、転送先を第2端末装置3Bとする複数のフレームを受信した場合において、第2送信側書き込み部16Bは、処理部15による処理後の当該複数のフレームを第2送信側バッファ部12Bに保存する。このとき、第2送信側書き込み部16Bは、クロック生成部18によるクロック周波数に対応する速度で複数のフレームを第2送信側バッファ部12Bに書き込む。第2送信側読み出し部17Bは、第2送信側書き込み部16Bがフレームを取得するとスリープ状態を解除し起動するが、起動に時間がかかるため、その間に第2送信側バッファ部12Bには情報が蓄積される。従って、第2送信側読み出し部17Bは、第2送信側バッファ部12Bにフレームが蓄積された状態で読み出しを開始する。
【0032】
ここで、第2送信側読み出し部17Bのクロック周波数、すなわち、第2送信側読み出し部17Bの処理速度を規定するクロック周波数は、第2端末装置3Bのクロック周波数と等しいが、クロック生成部18によるクロック周波数と等しいとは限らない。第2送信側読み出し部17Bのクロック周波数より、クロック生成部18によるクロック周波数が高い場合には、第2送信側書き込み部16Bによる第2送信側バッファ部12Bへの情報の書き込み速度が、第2送信側読み出し部17Bの読み出し速度を上回る。そのため、第2送信側読み出し部17Bが第2送信側バッファ部12Bから全ての情報を読み出す前に、第2送信側バッファ部12Bの空き容量が無くなる可能性がある。特に、上述のように、第2送信側読み出し部17Bがスリープ状態を解除して読み出し処理を開始するまでの間に、第2送信側バッファ部12Bに情報が蓄積された状態であると、早期に第2送信側バッファ部12Bの空き容量が無くなり得る。第2送信側バッファ部12Bの空き容量が無くなることにより、第2送信側書き込み部16Bは、一部の情報を第2送信側バッファ部12Bに書き込めなくなり、これにより、第2端末装置3Bに転送される情報に欠落が発生し得る。
【0033】
このような事態を防止するため、監視部19は、送信側バッファ部12における情報の蓄積の有無について監視する。そして、ギャップ制御部20は、送信側バッファ部12に情報が蓄積されている場合であって、後述する第1条件が満たされた場合には、複数のフレームの間に挿入されるIFGの長さを基準長よりも短くするよう送信側読み出し部17を制御する。ここで、基準長は例えば12バイトである。送信側読み出し部17は、送信側バッファ部12に情報が蓄積され、且つ、第1条件が満たされた場合には、ギャップ制御部20からの指示に従い、複数のフレームの間に挿入するIFGの長さを基準長よりも短くする。これにより、送信側読み出し部17は、一定時間の間に読み出すフレームの数を増やし、結果的に、フレームの読み出し速度を上昇させる。
【0034】
実施の形態1における監視部19は、送信側バッファ部12における情報の蓄積の有無についての監視を以下のように行う。監視部19は、送信側バッファ部12の空き容量、または、送信側バッファ部12に蓄積されている情報の量、すなわち情報量に応じて、送信側バッファ部12に情報が蓄積されているか否かを判定する。なお、送信側バッファ部12の全容量は予め定められているため、送信側バッファ部12の空き容量は、送信側バッファ部12に蓄積されている情報量によって一意的に定まる。すなわち、送信側バッファ部12の空き容量と、送信側バッファ部12に蓄積されている情報量とは1対1に対応する。そのため、送信側バッファ部12の空き容量の監視は、送信側バッファ部12に蓄積されている情報量の監視に対応する。そして、送信側バッファ部12の空き容量の大きさに基づく、送信側バッファ部12に情報が蓄積されているかの判定は、送信側バッファ部12に蓄積されている情報量に基づく、送信側バッファ部12に情報が蓄積されているかの判定に対応する。
【0035】
実施の形態1における監視部19は、送信側バッファ部12の空き容量が第1閾値以下であるか否かを判定する。第1閾値は、予め定められていてもよいし、クロック生成部18によるクロック周波数と、当該送信側バッファ部12に対応する端末装置3のクロック周波数とのうちの両方または一方に基づいて定められてもよい。監視部19は、当該空き容量が第1閾値以下である場合には、送信側バッファ部12に情報が蓄積されていると判定する。
【0036】
監視部19は、送信側バッファ部12の空き容量が第1閾値以下であるか否かの判定に代え、送信側バッファ部12に蓄積されている情報量が予め定められた第2閾値より大きいかを判定してもよい。そして、監視部19は、送信側バッファ部12に蓄積されている情報量が第2閾値より大きい場合には、送信側バッファ部12に情報が蓄積されていると判定してもよい。なお、第2閾値は、送信側バッファ部12の全容量の値から第1閾値を差し引いた値であり、第1閾値と第2閾値とは1対1に対応する。そのため、送信側バッファ部12の空き容量が第1閾値以下であるか否かの判定は、送信側バッファ部12に蓄積されている情報の容量が第2閾値より大きいか否かの判定と対応する。
【0037】
ギャップ制御部20は、監視部19から判定結果を取得する。なお、ギャップ制御部20は、送信側バッファ部12に情報が蓄積されている場合のみにおいて監視部19から判定結果を取得してもよい。ギャップ制御部20は、送信側バッファ部12に情報が蓄積されているとの判定結果を監視部19から取得した場合であって、第1条件が満たされた場合には、IFGの長さを基準長よりも短くするよう送信側読み出し部17を制御する。具体的には、ギャップ制御部20は、第2送信側バッファ部12Bに情報が蓄積されているとの判定結果を取得し、且つ、第1条件が満たされた場合には、IFGの長さを基準長よりも短くするよう第2送信側読み出し部17Bを制御する。
【0038】
以下、
図3を参照してIFGの短縮処理について説明する。
図3は、実施の形態1に係る情報転送装置によるIFGの短縮処理について説明するための図である。なお、
図3では、10ギガビットイーサネット(10GE:10 Gigabit Ethernet)におけるフレームを例示する。10GEでは、情報転送装置1は、4レーン(Lane)、すなわち4バイト(Byte)の配列で各端末装置3と通信する。10GEでは、イーサネットフレームの先頭は1レーンに含まれる。
図3における「D」は情報を示し、「I」はIFGを示す。
図3における「D」または「I」が1つ含まれる領域は、1バイトに対応する。
図3において互いに隣接する「D」の集合は、1つのフレームが含む情報を示す。
図3において互いに隣接する「I」の集合は、1つのIFGを示す。
【0039】
図3に示す送信側バッファ部12と送信側書き込み部16と送信側読み出し部17は、互いに対応関係にあるものとする。そして、
図3についての以下の記載における、送信側バッファ部12と送信側書き込み部16と送信側読み出し部17は互いに対応するものとする。
図3では、送信側書き込み部16が処理部15から取得し、送信側バッファ部12に書き込む際の複数のフレームの間には、12バイトのIFGが挿入されている。なお、
図3では、IFGを示す「I」に網掛けを施し、「D」によって示されるフレームが含む情報と、IFGとを区別している。
【0040】
送信側書き込み部16は、
図3において「D」によって示される情報、すなわち、複数のフレームの各々が含む情報を、送信側バッファ部12に書き込む。送信側読み出し部17は、送信側バッファ部12に保存された複数のフレームに、「I」で示されるIFGを挿入して読み出す。
【0041】
ここで、送信側書き込み部16は、書き込みが完了した場合において書き込みの完了を監視部19に通知してもよい。そして、監視部19は、送信側書き込み部16が書き込みを完了した場合において、書き込みの完了を送信側読み出し部17に通知してもよい。あるいは、送信側書き込み部16は、書き込みが完了した場合において書き込みの完了を送信側読み出し部17に通知してもよい。送信側読み出し部17は、書き込みの完了の通知を受けた場合においてフレームの読み出しを開始してもよい。この他、送信側読み出し部17は、送信側書き込み部16による書き込み処理と並行して読み出し処理を行ってもよい。
【0042】
ギャップ制御部20は、監視部19が送信側バッファ部12に情報が蓄積されていると判定した場合であって、第1条件が満たされた場合には、挿入するIFGの長さを基準長よりも短くするよう送信側読み出し部17を制御する。そして、送信側読み出し部17は、ギャップ制御部20からの制御によって、挿入するIFGの長さを基準長よりも短くする。
図3では、フレームの書き込みの際に12バイトであった、αの領域に示されるIFGが、βの領域に示されるように、送信側読み出し部17によって12バイトから8バイトに短縮されている。
【0043】
ここで、送信側読み出し部17がスリープ機能を有する場合には送信側バッファ部12に保存される情報の量は、送信側読み出し部17が読み出しを開始するまで増加し続ける。従来の情報転送装置における送信側読み出し部は、送信側バッファ部に情報が蓄積された状態において、当該送信側バッファ部への情報の書き込み速度が、当該送信側バッファ部からの情報の読み出し速度を上回った場合には、送信側バッファ部の空き容量の確保のため、以下のような処理を行うものであった。すなわち、従来の送信側読み出し部は、読み出す複数のフレームの間に挿入するIFGの長さを、連続して12バイトよりも短くするものであった。すると、従来では、挿入されるIFGの平均長が、推奨される12バイトを下回る可能性があった。これにより、情報の転送先の端末装置3では、当該情報の処理速度が、当該情報を受信する速度に追い付かず、結果として、情報の欠落が生じる可能性があった。実施の形態1に係る情報転送装置1は、このような問題を解決するために、以下の機能を有する。
【0044】
実施の形態1におけるギャップ制御部20は、送信側バッファ部12にフレームが蓄積されている場合において、送信側読み出し部17がフレームを読み出した回数に基づいて、IFGの長さを調節するよう送信側読み出し部17を制御する。なお、実施の形態1では、ギャップ制御部20は、送信側バッファ部12にフレームが蓄積されている場合において、送信側読み出し部17がフレームを読み出した回数が予め定められた規定値と等しい場合には、IFGの長さを基準長よりも短くするよう送信側読み出し部17を制御する。一方、ギャップ制御部20は、送信側読み出し部17がフレームを読み出した回数が規定値と異なる場合には、IFGの長さを基準長以上とするよう送信側読み出し部17を制御する。上述の第1条件は、当該回数が規定値と等しいという条件を指す。実施の形態1では、規定値は1つとするが、複数あってもよい。以下、実施の形態1におけるIFGの長さの調節処理の内容について詳細に説明する。
【0045】
実施の形態1における監視部19は、送信側バッファ部12に情報が蓄積されている場合には、送信側バッファ部12に情報が蓄積されているとの判定結果を、送信側読み出し部17とギャップ制御部20に通知する。監視部19は、送信側バッファ部12に情報が蓄積されていない場合であっても、送信側バッファ部12に情報が蓄積されているか否かの判定結果を、送信側読み出し部17とギャップ制御部20に通知してもよい。送信側読み出し部17は、送信側バッファ部12に情報が蓄積されている場合には、送信側バッファ部12からフレームを読み出す毎に完了情報を生成する。ギャップ制御部20は、送信側読み出し部17から完了情報を取得する。
【0046】
なお、送信側読み出し部17は、送信側バッファ部12に情報が蓄積されていない場合においても、送信側バッファ部12からフレームを読み出す毎に完了情報を生成してもよい。この場合においてギャップ制御部20は、送信側バッファ部12に情報が蓄積されている場合に限り、送信側読み出し部17から完了情報を取得してもよい。
【0047】
実施の形態1では、監視部19は、送信側バッファ部12に情報が蓄積されている場合には、「H(High)」または「1」等の蓄積信号を、送信側読み出し部17とギャップ制御部20とに出力する。また、監視部19は、送信側バッファ部12に情報が蓄積されていない場合には、「L(Low)」または「0」等の非蓄積信号を、送信側読み出し部17とギャップ制御部20とに出力する。以下では、蓄積信号に対応する情報を蓄積情報と記載する場合もある。また、以下では、非蓄積信号に対応する情報を非蓄積情報と記載する場合もある。なお、監視部19は、送信側バッファ部12に情報が蓄積されていない場合には、送信側読み出し部17およびギャップ制御部20の両方または一方に、非蓄積信号も蓄積信号も出力しないものでもよい。
【0048】
実施の形態1では、送信側読み出し部17は、蓄積信号が入力された状態において、各フレームの読み出しを完了する度に、完了情報に対応する「H(High)」または「1」等の完了信号をギャップ制御部20に出力する。また、送信側読み出し部17は、蓄積信号が入力された状態において、各フレームの読み出しを完了しない間は、「L(Low)」または「0」等の未完了信号をギャップ制御部20に出力する。以下では、未完了信号に対応する情報を未完了情報と記載する場合もある。なお、送信側読み出し部17は、各フレームの読み出しを完了しない間は、完了信号も未完了信号もギャップ制御部20に出力しないものでもよい。
【0049】
実施の形態1では、送信側読み出し部17は、非蓄積信号が入力された状態、または、蓄積信号も非蓄積信号も入力されてない状態においては、各フレームの読み出しを完了する場合、または、各フレームの読み出しを完了した場合であっても、完了信号をギャップ制御部20に出力しない。ただし、送信側読み出し部17は、非蓄積信号が入力された状態、または、蓄積信号も非蓄積信号も入力されてない状態においても、各フレームの読み出しを完了する度、完了信号をギャップ制御部20に出力してもよい。この場合において送信側読み出し部17は、非蓄積信号が入力された状態、または、蓄積信号も非蓄積信号も入力されてない状態において、各フレームの読み出しを完了しない間、未完了信号をギャップ制御部20に出力してもよい。この他、送信側読み出し部17は、非蓄積信号が入力された状態、または、蓄積信号も非蓄積信号も入力されてない状態において、各フレームの読み出しを完了する場合、または、各フレームの読み出しを完了した場合には、未完了信号をギャップ制御部20に出力してもよい。
【0050】
ギャップ制御部20は、監視部19から蓄積信号が入力された場合、すなわち、送信側バッファ部12に情報が蓄積されている場合には、送信側読み出し部17から完了信号が入力された回数、すなわち、送信側読み出し部17から完了情報を取得した回数をカウントする。ギャップ制御部20は、カウントによって得られた数値に基づいて、IFGの長さを調節するよう送信側読み出し部17を制御する。なお、カウントによって得られた数値は、送信側バッファ部12に情報が蓄積されている状態において、ギャップ制御部20が送信側読み出し部17から完了情報を取得した回数と等しい。以下では、カウントによって得られた数値をカウント値と記載する場合もある。
【0051】
実施の形態1におけるギャップ制御部20は、カウント値が規定値と等しい場合には、IFGの長さを基準長より短くするよう送信側読み出し部17を制御する。具体的には、ギャップ制御部20は、カウント値が規定値と等しい場合には、「H(High)」または「1」等の短縮フラグを生成し、当該短縮フラグを送信側読み出し部17に出力する。短縮フラグは、IFGの長さを基準長よりも短くするよう指示する短縮指示情報の例である。
【0052】
送信側読み出し部17は、ギャップ制御部20から短縮フラグを取得した場合には、フレーム間に挿入するIFGの長さを、予め定められた長さの分だけ基準長から短くする。当該予め定められた長さは、送受信されるフレームのレーンの数などに基づいて定められ、10GEの場合には、4バイトまたは8バイトなどである。
【0053】
実施の形態1におけるギャップ制御部20は、カウント値が規定値と異なる場合には、IFGの長さを基準長とするよう、あるいは、IFGの長さを基準長より長くするよう送信側読み出し部17を制御する。具体的には、ギャップ制御部20は、カウント値が規定値と異なる場合には、「L(Low)」または「0」等の非短縮フラグを生成し、当該非短縮フラグを送信側読み出し部17に出力する。非短縮フラグは、IFGの長さを基準長以上の長さにするよう指示する非短縮指示情報の例である。送信側読み出し部17は、ギャップ制御部20から非短縮フラグを取得した場合には、フレーム間に挿入するIFGの長さを基準長以上の長さにする。なお、ギャップ制御部20は、カウント値が規定値と異なる場合には、短縮フラグも非短縮フラグも送信側読み出し部17に出力しないものであってもよく、送信側読み出し部17は、ギャップ制御部20から短縮指示情報を取得しない間、フレーム間に挿入するIFGの長さを基準長以上の長さにしてもよい。
【0054】
実施の形態1におけるギャップ制御部20は、送信側バッファ部12にフレームが蓄積されている間、カウント値が予め定められた上限値になるまでカウントを行う。そして、ギャップ制御部20は、送信側バッファ部12にフレームが蓄積されている間、当該カウントを繰り返す。
【0055】
図4は、実施の形態1におけるIFGの長さの変化例を示す図である。なお、
図4では、
図3と同様に、10GEの場合のフレームを例示する。また、
図4では、フレームに含まれる情報を「D」によって示し、IFGを「I」によって示し、「I」を網掛けとする。
図4における「D」または「I」が1つ含まれる領域は、1バイトに対応する。
図4において互いに隣接する「D」の集合は、1つのフレームが含む情報を示す。
図4において互いに隣接する「I」の集合は、1つのIFGを示す。
図4では、カウント値の上限値を3とし、規定値を1とする。なお、
図4についての以下の記載における、送信側バッファ部12と送信側書き込み部16と送信側読み出し部17とは互いに対応するものとする。
【0056】
図4におけるt軸は時間を示す。時点t0より前において送信側読み出し部17およびギャップ制御部20は、監視部19から、「L」によって示される非蓄積信号に対応する非蓄積情報を取得する。時点t0以降において送信側読み出し部17およびギャップ制御部20は、監視部19から、「H」によって示される蓄積信号を取得する。
【0057】
時点t0以降であって時点t1より前において、送信側読み出し部17は、1つ目のフレームの読み出しが完了しないことにより、「L」によって示される未完了信号を生成し、ギャップ制御部20は、当該未完了信号を取得する。時点t1において、送信側読み出し部17は、1つ目のフレームの読み出しの完了に伴い、「H」によって示される完了信号を生成し、ギャップ制御部20は、送信側読み出し部17から当該完了信号を取得する。ギャップ制御部20は、当該完了信号に応じて、カウント値を0から1へと増加させる。
【0058】
ギャップ制御部20は、送信側読み出し部17が1つ目のフレームの読み出しを完了し、送信側読み出し部17から完了信号を取得した時点t1においてカウント値が0であるため、「L」によって示される非短縮フラグを生成する。送信側読み出し部17は、当該非短縮フラグをギャップ制御部20から取得し、1つ目のフレームと2つ目のフレームとの間に挿入するIFGの長さを基準長の12バイトとする。
【0059】
時点t2において、送信側読み出し部17は、2つ目のフレームの読み出しの完了に伴い、「H」によって示される完了信号を生成し、ギャップ制御部20は、送信側読み出し部17から当該完了信号を取得する。ギャップ制御部20は、当該完了信号に応じて、カウント値を1から2へと増加させる。なお、ギャップ制御部20は、時点t1において完了信号を取得後、時点t2までの間、送信側読み出し部17から未完了信号を取得する。
【0060】
ギャップ制御部20は、送信側読み出し部17が2つ目のフレームの読み出しを完了し、送信側読み出し部17から完了信号を取得した時点t2においてカウント値が規定値の1と等しいため、「H」によって示される短縮フラグを生成する。送信側読み出し部17は、当該短縮フラグをギャップ制御部20から取得し、2つ目のフレームと3つ目のフレームとの間に挿入するIFGを12バイトから8バイトに短縮する。
【0061】
時点t3において、カウント値は3であり、送信側読み出し部17は、4つ目のフレームの読み出しの完了に伴い、「H」によって示される完了信号を生成し、ギャップ制御部20は、送信側読み出し部17から当該完了信号を取得する。このとき、カウント値が上限値の3であるため、ギャップ制御部20は、当該完了情報に応じてカウント値を3から0に戻す。また、ギャップ制御部20は、非短縮フラグを生成し、送信側読み出し部17は、ギャップ制御部20が生成した当該非短縮フラグに基づいて、4つ目のフレームと5つ目のフレームとの間に挿入するIFGの長さを基準長の12バイトとする。以降の時点では、上述の処理が繰り返される。
【0062】
以下、実施の形態1に係る情報転送装置1のハードウェア構成について
図5を参照して説明する。
図5は、実施の形態1に係る情報転送装置のハードウェア構成を例示する図である。情報転送装置1は、第1バス40によって互いに接続された、複数の受信側通信インターフェース回路41と、複数の受信側プロセッサ42と、複数の受信側メモリ43とを含む。また、情報転送装置1は、第2バス44によって互いに接続された、複数の送信側通信インターフェース回路45と、複数の送信側プロセッサ46と、複数の送信側メモリ47と、制御用プロセッサ48と、カウンタ49とを含む。更に、情報転送装置1は、第1バス40と第2バス44とに接続された、処理用プロセッサ50およびクロックジェネレータ51を含む。なお、クロックジェネレータ51は、第1バス40および第2バス44に代え、処理用プロセッサ50に接続されてもよい。あるいは、クロックジェネレータ51は、第1バス40および第2バス44の一方に接続されてもよい。
【0063】
受信側メモリ43と送信側メモリ47の各々は、RAM(Random Access Memory)などの書き込みが可能なメモリである。受信側バッファ部11の機能は、受信側メモリ43によって実現することができる。送信側バッファ部12の機能は、送信側メモリ47によって実現することができる。
【0064】
受信側プロセッサ42と送信側プロセッサ46と制御用プロセッサ48と処理用プロセッサ50の各々は、例えば、CPU(Central Processing Unit)またはMPU(Micro Processing Unit)等と、内部メモリとを含むものである。受信側プロセッサ42の内部メモリには、受信側書き込み部13と受信側読み出し部14が処理を行うためのプログラムなどが記憶されている。送信側プロセッサ46の内部メモリには、送信側書き込み部16と送信側読み出し部17が処理を行うためのプログラムなどが記憶されている。制御用プロセッサ48の内部メモリには、監視部19とギャップ制御部20が処理を行うためのプログラムなどが記憶されている。処理用プロセッサ50の内部メモリには、処理部15が処理を行うためのプログラムなどが記憶されている。
【0065】
受信側書き込み部13と受信側読み出し部14の機能は、受信側プロセッサ42によって実現できる。処理部15の機能は、処理用プロセッサ50によって実現できる。送信側書き込み部16と送信側読み出し部17の機能は、送信側プロセッサ46によって実現できる。監視部19の機能は、制御用プロセッサ48によって実現できる。
【0066】
通信部10による情報の受信機能は、受信側通信インターフェース回路41により実現できる。詳細には、通信部10による受信機能は、情報転送装置1の外郭を形成する筐体に設けられたポートと、一端が当該ポートに差し込まれ、他端が端末装置3に接続された通信線と、を介して受信側通信インターフェース回路41により実現できる。通信部10による情報の送信機能は、送信側通信インターフェース回路45により実現できる。詳細には、通信部10による送信機能は、情報転送装置1の外郭を形成する筐体に設けられたポートと、一端が当該ポートに差し込まれ、他端が端末装置3に接続された通信線と、を介して送信側通信インターフェース回路45により実現できる。受信側バッファ部11の機能は、受信側メモリ43によって実現できる。送信側バッファ部12の機能は、送信側メモリ47によって実現できる。
【0067】
クロック生成部18の機能は、クロックジェネレータ51によって実現できる。ギャップ制御部20の機能は、制御用プロセッサ48とカウンタ49によって実現できる。なお、ギャップ制御部20によるカウント機能は、カウンタ49に代え、制御用プロセッサ48がソフトウェアによって実現してもよい。この場合には、情報転送装置1にはカウンタ49が含まれなくともよい。上述の他、情報転送装置1は、その全部または一部が専用のハードウェアであってもよい。
【0068】
図6は、実施の形態1に係る情報転送装置による情報転送処理を例示するフローチャートである。なお、
図6についての以下の記載における、情報の転送先の端末装置3と、送信側バッファ部12と、送信側書き込み部16と、送信側読み出し部17と、通信部10とは互いに対応する。情報転送装置1が、2つ以上の端末装置3に転送する情報を同時に受信した場合には、
図6の処理は、各転送先の端末装置3に対応する送信側書き込み部16と送信側読み出し部17などによって並行して行われてもよい。あるいは、
図6の処理は、転送先毎に直列的に行われてもよい。
【0069】
ステップS1において送信側書き込み部16は、処理部15による処理後の複数のフレームを送信側バッファ部12に書き込む。なお、実施の形態1における送信側書き込み部16は、処理部15から、フレーム、または、フレーム内の1ビットもしくは1バイトを取得する度に、取得した情報を送信側バッファ部12に書き込む。送信側書き込み部16は、情報の書き込みを完了した後、監視部19に書き込みの完了を通知してもよい。
【0070】
ステップS2において監視部19は、送信側バッファ部12の空き容量が第1閾値以下か否かを判定する。監視部19は、送信側書き込み部16が情報の書き込みの完了を監視部19に通知した場合においてステップS2の処理を実行してもよいし、送信側書き込み部16によるステップS1の処理と並行してステップS2の処理を実行してもよい。
【0071】
送信側バッファ部12の空き容量が第1閾値より大きい場合には(ステップS2:NO)、ステップS3においてギャップ制御部20および送信側読み出し部17は、監視部19から非蓄積情報を取得する。ステップS4において送信側読み出し部17は、複数のフレームの間に平均12バイトのIFGを挿入して当該複数のフレームの各々を読み出す。通信部10は、送信側読み出し部17が読み出した各フレームを転送先の端末装置3に送信する。ステップS4の処理後、情報転送装置1はステップS15に処理を移す。
【0072】
送信側バッファ部12の空き容量が第1閾値以下の場合には(ステップS2:YES)、ステップS5においてギャップ制御部20および送信側読み出し部17は、監視部19から蓄積情報を取得する。ステップS6において送信側読み出し部17はフレームを読み出す。ステップS7において送信側読み出し部17は、フレームの読み出しが完了したか否かを判定する。フレームの読み出しが完了していない場合には(ステップS7:NO)、情報転送装置1は、情報転送処理をステップS6に戻す。この場合において送信側読み出し部17は、未完了情報を生成し、ギャップ制御部20は、当該未完了情報を送信側読み出し部17から取得してもよい。
【0073】
フレームの読み出しが完了した場合には(ステップS7:YES)、ステップS8において送信側読み出し部17は、完了情報を生成し、ギャップ制御部20は、送信側読み出し部17から完了情報を取得する。ステップS9においてギャップ制御部20は、カウント値が規定値と等しいか否かを判定する。
【0074】
カウント値が規定値と異なる場合には(ステップS9:NO)、ステップS10において送信側読み出し部17は、ステップS7において読み出しを完了したフレームと、当該フレームの後に読み出すフレームとの間に12バイト以上の長さのIFGを挿入する。通信部10は、送信側読み出し部17が読み出したフレームを送信先の端末装置3に送信する。ステップS10の処理後、情報転送装置1はステップS12に処理を移す。
【0075】
カウント値が規定値と等しい場合には(ステップS9:YES)、ステップS11においてギャップ制御部20は、2つのフレームの間に挿入するIFGの長さを基準長より短くするよう送信側読み出し部17に指示を行う。なお、当該2つのフレームとは、ステップS7において送信側読み出し部17が読み出しを完了したフレームと、当該フレームの後に送信側読み出し部17が読み出すフレームを指す。送信側読み出し部17は、ギャップ制御部20からの指示に基づいて、当該2つのフレームの間に挿入するIFGの長さを基準長より短くする。通信部10は、送信側読み出し部17が読み出しを完了したフレームを送信先の端末装置3に送信する。ステップS11の処理後、情報転送装置1はステップS12に処理を移す。
【0076】
ステップS12においてギャップ制御部20は、カウント値が上限値と等しいか否かを判定する。なお、ステップS1以前に、カウント値は初期値である0に設定されている。カウント値が上限値と等しい場合には(ステップS12:YES)、ステップS13においてギャップ制御部20は、カウント値を初期値へ戻す。ステップS13の処理後、情報転送装置1はステップS15に処理を移す。
【0077】
カウント値が上限値と異なる場合には(ステップS12:NO)、ステップS14においてギャップ制御部20は、カウント値を1だけ増加させる。ステップS14の処理後、情報転送装置1は、ステップS15に処理を移す。
【0078】
なお、情報転送装置1は、ステップS10またはステップS11の処理と、ステップS12から、ステップS13またはステップS14までの処理と、を並行して実行してもよい。
【0079】
ステップS15において送信側読み出し部17は、送信側バッファ部12に読み出しの対象のフレームが残っているか否かを判定する。なお、送信側バッファ部12に読み出しの対象のフレームが残っているか否かの判定は、送信側読み出し部17に代え、監視部19によって実行されてもよい。送信側バッファ部12に読み出しの対象のフレームが残っている場合には(ステップS15:YES)、情報転送装置1は、ステップS2に処理を戻す。
【0080】
ステップS15の処理後のステップS2において送信側バッファ部12の空き容量が第1閾値より大きい場合には、ステップS3においてギャップ制御部20は非蓄積情報を取得するが、その際に、ギャップ制御部20は、カウント値が0でない場合には、カウント値を0に戻してもよい。送信側バッファ部12に読み出しの対象のフレームが残っていない場合には(ステップS15:NO)、情報転送装置1は、情報転送処理を終了する。
【0081】
図6では、ギャップ制御部20は、完了情報を取得した後、カウント値の増加前に、カウント値が上限値または規定値と等しいかの判定を行っているが、ギャップ制御部20は、カウント値の増加後に当該判定を行ってよい。この場合には、情報転送装置1は、ステップS12~ステップS14の処理に代え、ステップS8の処理後であってステップS9の処理前において次の処理を行う。すなわち、情報転送装置1のギャップ制御部20は、カウント値が上限値であるか否かを判定し、カウント値が上限値ない場合にはカウント値を1だけ増加させ、カウント値が上限値である場合にはカウント値を初期値に戻す。この場合においてステップS10およびステップS11の各処理後、情報転送装置1は、ステップS15に処理を移す。
【0082】
図6では、ステップS1において送信側書き込み部16が全てのフレームを送信側バッファ部12に書き込んだ後、ステップS4またはステップS6において送信側読み出し部17がフレームの読み出しを行う処理例を示した。しかし、送信側読み出し部17は、送信側書き込み部16の書き込み処理と並行して読み出し処理を行ってもよい。この場合には、
図6における「END」は「RETURN」に置き換わり、情報転送装置1は、転送先の端末装置3に送信する全てのフレームのうち、最後のフレームを送信するまで、ステップS1~ステップS15の処理を繰り返す。この場合において、送信側書き込み部16は、最後のフレームを書き込むまで、情報の書き込みの完了を監視部19に通知しなくともよい。あるいは、ステップS1において送信側書き込み部16は、送信側読み出し部17に、直接的に、または、監視部19を介して、複数の情報の書き込みを行ったことを通知し、送信側読み出し部17は、送信側書き込み部16からの通知によって起動してもよい。
【0083】
実施の形態2.
実施の形態1に係る情報転送装置1は、送信側バッファ部12から読み出す複数のフレームに挿入するIFGの長さを、フレームの読み出し回数に応じて調節するものであった。これにより、送信側バッファ部12に保存する情報の欠落の抑制と、転送先の端末装置3における情報の欠落の抑制との両立が可能となった。実施の形態2では、送信側バッファ部12から読み出す複数のフレームに代え、または、当該複数のフレームと共に、受信側バッファ部11から読み出す複数のフレームに挿入するIFGの長さを調節する情報転送装置1について説明する。なお、実施の形態2では、実施の形態1における構成要素と同様の構成要素に対し、同一の符号を付すものとする。また、実施の形態2において、実施の形態1における構成と同様の構成、および、実施の形態1における機能と同様の機能等については、特段の事情がない限り説明を省略する。
【0084】
実施の形態2に係る情報転送システム100の構成は、実施の形態1と同様であって、
図1によって例示される。
図7は、実施の形態2に係る情報転送装置1の構成例を示すブロック図である。
図7に示されるように、実施の形態2に係る情報転送装置1は、監視部19およびギャップ制御部20等、実施の形態1と同様の構成要素を含む。実施の形態2では、監視部19とギャップ制御部20の各々の、他の構成要素との接続関係が実施の形態1とは異なるが、他の構成要素の間における接続関係は実施の形態1と同様である。実施の形態2では、監視部19は、受信側バッファ部11と受信側書き込み部13と受信側読み出し部14とギャップ制御部20に接続される。ギャップ制御部20は、受信側読み出し部14と監視部19に接続される。なお、実施の形態2の各構成要素の接続関係は、
図7に示すものに限られない。例えば、監視部19は、実施の形態1と同様に、送信側バッファ部12と送信側書き込み部16と送信側読み出し部17に接続されてもよい。また、ギャップ制御部20は、実施の形態1と同様に、送信側読み出し部17に接続されてもよい。
【0085】
実施の形態2では、受信側読み出し部14がスリープ機能を有する場合について説明する。当該受信側読み出し部14は、受信側書き込み部13がフレームを取得するとスリープ状態を解除し起動するが、起動に時間がかかるため、その間に受信側バッファ部11に情報が蓄積される。従って、受信側読み出し部14は、受信側バッファ部11にフレームが蓄積された状態で読み出しを開始する。
【0086】
クロック生成部18によるクロック周波数が、受信側書き込み部13のクロック周波数より低い場合には、受信側バッファ部11における情報量は増加し続ける。更に、受信側読み出し部14がスリープ機能を有する場合には、読み出し処理の開始時点には受信側バッファ部11に情報が蓄積されているため、受信側バッファ部11の空き容量は、受信側読み出し部14がスリープ機能を有さない場合に比べ、早い段階で小さくなる。そのため、端末装置3から全てのフレームを受信する前に、受信側バッファ部11の空き容量が無くなる可能性がある。これにより、情報転送装置1において情報の欠落が発生する虞がある。
【0087】
しかし、このような事態を回避するために受信側読み出し部14が連続的にIFGを短縮すると、転送先の端末装置3に対応する送信側バッファ部12の空き容量が無くなり、情報が欠落する虞がある。そのため、実施の形態2では、受信側バッファ部11にフレームが蓄積されている状態において第1条件が満たされた場合には、当該受信側バッファ部11に対応する受信側読み出し部14は、2つのフレームの間に挿入するIFGの長さを基準長よりも短くする。一方、受信側バッファ部11にフレームが蓄積されていても第1条件が満たされない場合には、当該受信側バッファ部11に対応する受信側読み出し部14は、2つのフレームの間に挿入するIFGの長さを基準長以上とする。
【0088】
情報転送装置1における各受信側バッファ部11はバッファ部の例であり、各受信側書き込み部13は書き込み部の例であり、各受信側読み出し部14は読み出し部の例である。実施の形態2における第1条件は、受信側読み出し部14がフレームを読み出した回数が規定値と等しいという条件である。実施の形態1~実施の形態2の第1条件は、読み出し部がバッファ部からフレームを読み出した回数が規定値と等しいという条件である。なお、実施の形態2の規定値は、実施の形態1の規定値と等しくともよいし、異なってもよい。
【0089】
実施の形態2における監視部19は、受信側バッファ部11の空き容量が第1閾値以下であるか否かを判定し、受信側バッファ部11における情報の蓄積の有無を判定する。実施の形態2の第1閾値は、予め定められていてもよいし、クロック生成部18によるクロック周波数と、当該受信側バッファ部11に対応する端末装置3のクロック周波数とのうちの両方または一方に基づいて定められてもよい。なお、実施の形態2の第1閾値は、実施の形態1の第1閾値と等しくともよいし、異なってもよい。
【0090】
監視部19は、受信側バッファ部11に蓄積された情報量が第2閾値より大きいか否かを判定することにより、受信側バッファ部11における情報の蓄積の有無を判定してもよい。当該第2閾値は、受信側バッファ部11の全容量の値から、実施の形態2の第1閾値を差し引いた値である。受信側バッファ部11に蓄積された情報量が当該第2閾値より大きいか否かの判定は、受信側バッファ部11の空き容量が、実施の形態2の第1閾値以下である否かの判定と対応する。
【0091】
ギャップ制御部20は、監視部19から判定結果を取得する。ギャップ制御部20は、受信側バッファ部11に情報が蓄積されている場合のみにおいて監視部19から判定結果を取得してもよい。ギャップ制御部20は、受信側バッファ部11に情報が蓄積されているとの判定結果、すなわち蓄積情報を、監視部19から取得した場合であって、第1条件が満たされた場合には、IFGの長さを基準長よりも短くするよう、当該受信側バッファ部11に対応する受信側読み出し部14を制御する。
【0092】
以下、
図8を参照してIFGの短縮処理について説明する。
図8は、実施の形態2に係る情報転送装置によるIFGの短縮処理について説明するための図である。
図8では、10GEにおけるフレームを例示する。
図8における「D」は情報を示し、「I」はIFGを示す。
図8における「D」または「I」が1つ含まれる領域は、1バイトに対応する。
図8において互いに隣接する「D」の集合は、1つのフレームが含む情報を示す。
図8において互いに隣接する「I」の集合は、1つのIFGを示す。
【0093】
図8に示す受信側バッファ部11と受信側書き込み部13と受信側読み出し部14は、互いに対応関係にあるものとする。そして、
図8についての以下の記載における、受信側バッファ部11と受信側書き込み部13と受信側読み出し部14は互いに対応するものとする。
【0094】
受信側書き込み部13は、
図8において「D」によって示される情報、すなわち、複数のフレームの各々が含む情報を、受信側バッファ部11に書き込む。受信側読み出し部14は、受信側バッファ部11に保存された複数のフレームに、「I」で示されるIFGを挿入して読み出す。
【0095】
なお、受信側書き込み部13は、書き込みが完了した場合において書き込みの完了を監視部19に通知し、監視部19は、受信側書き込み部13が書き込みを完了した場合において、書き込みの完了を受信側読み出し部14に通知してもよい。あるいは、受信側書き込み部13は、書き込みが完了した場合において書き込みの完了を受信側読み出し部14に通知してもよい。受信側読み出し部14は、書き込みの完了の通知を受けた場合においてフレームの読み出しを開始してもよい。受信側読み出し部14は、受信側書き込み部13による書き込み処理と並行して読み出し処理を行ってもよい。
【0096】
監視部19は、受信側バッファ部11に情報が蓄積されている場合、すなわち、受信側バッファ部11の空き容量が第1閾値以下である場合には、受信側読み出し部14およびギャップ制御部20に蓄積信号を出力する。また、監視部19は、受信側バッファ部11に情報が蓄積されていない場合、すなわち、受信側バッファ部11の空き容量が第1閾値より大きい場合には、受信側読み出し部14およびギャップ制御部20に非蓄積信号を出力する。監視部19は、受信側バッファ部11に情報が蓄積されていない場合には、受信側読み出し部14およびギャップ制御部20の両方または一方に、非蓄積信号も蓄積信号も出力しないものでもよい。
【0097】
受信側読み出し部14は、蓄積信号が入力された状態において、各フレームの読み出しを完了する度に完了信号をギャップ制御部20に出力する。受信側読み出し部14は、蓄積信号が入力された状態において、各フレームの読み出しを完了しない間は、未完了信号をギャップ制御部20に出力する。なお、受信側読み出し部14は、各フレームの読み出しを完了しない間は、完了信号も未完了信号もギャップ制御部20に出力しないものでもよい。
【0098】
実施の形態2では、受信側読み出し部14は、非蓄積信号が入力された状態、または、蓄積信号も非蓄積信号も入力されてない状態においては、各フレームの読み出しを完了する場合、または、各フレームの読み出しを完了した場合であっても、完了信号をギャップ制御部20に出力しない。ただし、受信側読み出し部14は、非蓄積信号が入力された状態、または、蓄積信号も非蓄積信号も入力されてない状態においても、各フレームの読み出しを完了する度、完了信号をギャップ制御部20に出力してもよい。この場合において受信側読み出し部14は、非蓄積信号が入力された状態、または、蓄積信号も非蓄積信号も入力されてない状態において、各フレームの読み出しを完了しない間、未完了信号をギャップ制御部20に出力してもよい。この他、受信側読み出し部14は、非蓄積信号が入力された状態、または、蓄積信号も非蓄積信号も入力されてない状態において、各フレームの読み出しを完了する場合、または、各フレームの読み出しを完了した場合には、未完了信号をギャップ制御部20に出力してもよい。
【0099】
ギャップ制御部20は、監視部19から蓄積信号が入力された場合、すなわち、受信側バッファ部11に情報が蓄積されている場合には、受信側読み出し部14から完了信号が入力された回数、すなわち、受信側読み出し部14から完了情報を取得した回数をカウントする。ギャップ制御部20は、カウントによって得られた数値、すなわちカウント値に基づいて、IFGの長さを調節するよう受信側読み出し部14を制御する。
【0100】
実施の形態2におけるギャップ制御部20は、カウント値が規定値と等しい場合には、IFGの長さを基準長より短くするよう受信側読み出し部14を制御する。具体的には、ギャップ制御部20は、カウント値が規定値と等しい場合には、短縮フラグを受信側読み出し部14に出力する。
【0101】
受信側読み出し部14は、ギャップ制御部20から短縮フラグを取得した場合には、フレーム間に挿入するIFGの長さを、予め定められた長さの分だけ基準長から短くする。なお、
図8では、フレームの書き込みの際に12バイトであった、αの領域に示されるIFGが、βの領域に示されるように、受信側読み出し部14によって12バイトから8バイトに短縮されている。
【0102】
実施の形態2におけるギャップ制御部20は、カウント値が規定値と異なる場合には、IFGの長さを基準長以上とするよう受信側読み出し部14を制御する。具体的には、ギャップ制御部20は、カウント値が規定値と異なる場合には、非短縮フラグを生成し、当該非短縮フラグを受信側読み出し部14に出力する。受信側読み出し部14は、ギャップ制御部20から非短縮フラグを取得した場合には、フレーム間に挿入するIFGの長さを基準長以上の長さにする。なお、ギャップ制御部20は、カウント値が規定値と異なる場合には、短縮フラグも非短縮フラグも受信側読み出し部14に出力しないものであってもよい。そして、受信側読み出し部14は、ギャップ制御部20から短縮指示情報を取得しない間、フレーム間に挿入するIFGの長さを基準長以上の長さにしてもよい。
【0103】
実施の形態2におけるギャップ制御部20は、受信側バッファ部11にフレームが蓄積されている間、カウント値が予め定められた上限値になるまでカウントを行う。そして、ギャップ制御部20は、受信側バッファ部11にフレームが蓄積されている間、当該カウントを繰り返す。なお、実施の形態2における当該上限値は、実施の形態1におけるカウント値の上限値と等しくともよいし、異なってもよい。
【0104】
実施の形態2におけるIFGの長さの変化例は、実施の形態1と同様、
図4によって示される。なお、
図4についての以下の記載における、受信側バッファ部11と受信側書き込み部13と受信側読み出し部14は互いに対応するものとする。また、
図4を参照する実施の形態2の以下の説明においては、規定値を1とし、上限値を3とする。
【0105】
時点t0より前において受信側読み出し部14およびギャップ制御部20は、監視部19から非蓄積信号を取得する。時点t0以降において受信側読み出し部14およびギャップ制御部20は、監視部19から蓄積信号を取得する。
【0106】
時点t0以降であって時点t1より前において、受信側読み出し部14は、1つ目のフレームの読み出しが完了しないことにより、未完了信号を生成し、ギャップ制御部20は、当該未完了信号を取得する。時点t1において、受信側読み出し部14は、1つ目のフレームの読み出しの完了に伴い、完了信号を生成し、ギャップ制御部20は、当該完了信号を取得する。ギャップ制御部20は、当該完了信号に応じて、カウント値を0から1へと増加させる。
【0107】
ギャップ制御部20は、受信側読み出し部14が1つ目のフレームの読み出しを完了し、受信側読み出し部14から完了信号を取得した時点t1においてカウント値が0であるため、非短縮フラグを生成する。受信側読み出し部14は、当該非短縮フラグをギャップ制御部20から取得し、1つ目のフレームと2つ目のフレームとの間に挿入するIFGの長さを基準長の12バイトとする。
【0108】
時点t2において、受信側読み出し部14は、2つ目のフレームの読み出しの完了に伴い、「H」によって示される完了信号を生成し、ギャップ制御部20は、当該完了信号を取得する。ギャップ制御部20は、当該完了信号に応じて、カウント値を1から2へと増加させる。なお、ギャップ制御部20は、時点t1において完了信号を取得後、時点t2までの間、受信側読み出し部14から未完了信号を取得する。
【0109】
ギャップ制御部20は、受信側読み出し部14が2つ目のフレームの読み出しを完了し、受信側読み出し部14から完了信号を取得した時点t2においてカウント値が規定値の1と等しいため、「H」によって示される短縮フラグを生成する。受信側読み出し部14は、当該短縮フラグをギャップ制御部20から取得し、2つ目のフレームと3つ目のフレームとの間に挿入するIFGを12バイトから8バイトに短縮する。
【0110】
時点t3において、カウント値は3であり、受信側読み出し部14は、4つ目のフレームの読み出しの完了に伴い、完了信号を生成し、ギャップ制御部20は、当該完了信号を取得する。このとき、カウント値が上限値の3であるため、ギャップ制御部20は、当該完了信号に応じてカウント値を3から0に戻す。また、ギャップ制御部20は、非短縮フラグを生成し、受信側読み出し部14は、ギャップ制御部20が生成した当該非短縮フラグに基づいて、4つ目のフレームと5つ目のフレームとの間に挿入するIFGの長さを基準長の12バイトとする。以降の時点では、上述の処理が繰り返される。
【0111】
実施の形態2では、受信側読み出し部14が、受信側バッファ部11から読み出す複数のフレームに挿入するIFGの長さを、フレームを読み出した回数に基づいて調節する例について示した。実施の形態2では、更に、実施の形態1と同様に、送信側読み出し部17が、送信側バッファ部12から読み出す複数のフレームに挿入するIFGの長さを、フレームを読み出した回数に基づいて調節してもよい。
【0112】
図9は、実施の形態2に係る情報転送装置のハードウェア構成を例示する図である。実施の形態2に係る情報転送装置1は、実施の形態1と同様に、第1バス40によって互いに接続された、複数の受信側通信インターフェース回路41と、複数の受信側プロセッサ42と、複数の受信側メモリ43とを含む。また、実施の形態2に係る情報転送装置1は、第2バス44によって互いに接続された、複数の送信側通信インターフェース回路45と、複数の送信側プロセッサ46と、複数の送信側メモリ47とを含む。更に、実施の形態2に係る情報転送装置1は、第1バス40と第2バス44とに接続された、処理用プロセッサ50およびクロックジェネレータ51を含む。なお、クロックジェネレータ51は、第1バス40と第2バス44に代え、処理用プロセッサ50と接続されてもよい。あるいは、クロックジェネレータ51は、第1バス40および第2バス44の一方と接続されてもよい。
【0113】
実施の形態2に係る情報転送装置1は、実施の形態1と同様に、制御用プロセッサ48とカウンタ49とを含むが、実施の形態2では、第1バス40に制御用プロセッサ48とカウンタ49とが接続される。
図9では、第2バス44に代え、第1バス40に第2バス44に制御用プロセッサ48とカウンタ49とが接続された例が示されるが、制御用プロセッサ48とカウンタ49とは、第1バス40と第2バス44とに接続されてもよい。あるいは、実施の形態2に係る情報転送装置は、制御用プロセッサ48とカウンタ49の各々を2つ含んでもよい。情報転送装置1は、制御用プロセッサ48とカウンタ49の組み合わせを2つ含む場合には、一方の組み合わせを第1バス40に、他方の組み合わせを第2バス44に設ける。第1バス40に設けられた制御用プロセッサ48とカウンタ49は、受信側バッファ部11から複数のフレームに挿入するIFGの長さを、受信側読み出し部14に調節させるギャップ制御部20として機能する。第2バス44に設けられた制御用プロセッサ48とカウンタ49は、送信側バッファ部12から複数のフレームに挿入するIFGの長さを、送信側読み出し部17に調節させるギャップ制御部20として機能する。第1バス40に設けられた制御用プロセッサ48は、受信側バッファ部11に情報が蓄積されているかを判定する監視部19としても機能する。第2バス44に設けられた制御用プロセッサ48は、送信側バッファ部12に情報が蓄積されているかを判定する監視部19としても機能する。
【0114】
実施の形態2に係る情報転送処理の流れは、実施の形態1と同様、
図6によって例示される。なお、
図6に示される実施の形態2に係る情報転送処理は、受信側バッファ部11から処理部15を介した送信側バッファ部12への情報の転送処理を指す。以下、
図6を参照して、実施の形態2に係る情報転送処理の流れについて説明する。なお、
図6を参照する以下の説明における、情報の送信元の端末装置3と、通信部10と、受信側バッファ部11と、受信側書き込み部13と、受信側読み出し部14とは互いに対応するものとする。
【0115】
送信元が互いに異なる2つ以上の情報を情報転送装置1が受信した場合には、
図6の処理は、各送信元に対応する受信側書き込み部13と受信側読み出し部14などによって並行して行われてもよい。あるいは、実施の形態2における
図6の処理は、送信元毎に直列的に行われてもよい。
【0116】
ステップS1において受信側書き込み部13は、通信部10が受信した複数のフレームを受信側バッファ部11に書き込む。なお、実施の形態2における受信側書き込み部13は、当該通信部10が、フレーム、または、フレーム内の1ビットもしくは1バイトを受信する度に、当該通信部10が受信した情報を受信側バッファ部11に書き込む。受信側書き込み部13は、情報の書き込みを完了した後、監視部19に書き込みの完了を通知してもよい。
【0117】
ステップS2において監視部19は、受信側バッファ部11の空き容量が第1閾値以下か否かを判定する。監視部19は、受信側書き込み部13が情報の書き込みの完了を監視部19に通知した場合においてステップS2の処理を実行してもよいし、受信側書き込み部13によるステップS1の処理と並行してステップS2の処理を実行してもよい。
【0118】
受信側バッファ部11の空き容量が第1閾値より大きい場合には(ステップS2:NO)、ステップS3においてギャップ制御部20および受信側読み出し部14は、監視部19から非蓄積情報を取得する。ステップS4において受信側読み出し部14は、複数のフレームの間に平均12バイトのIFGを挿入して当該複数のフレームの各々を読み出す。処理部15は、受信側読み出し部14が読み出した各フレームに処理を行う。複数のフレームの転送先に対応する送信側書き込み部16は、処理部15による処理後の各フレームを、対応する送信側バッファ部12に書き込む。ステップS4の処理後、情報転送装置1はステップS15に処理を移す。
【0119】
受信側バッファ部11の空き容量が第1閾値以下の場合には(ステップS2:YES)、ステップS5においてギャップ制御部20および受信側読み出し部14は、監視部19から蓄積情報を取得する。ステップS6において受信側読み出し部14はフレームを読み出す。ステップS7において受信側読み出し部14は、フレームの読み出しが完了したか否かを判定する。フレームの読み出しが完了していない場合には(ステップS7:NO)、情報転送装置1は、情報転送処理をステップS6に戻す。この場合において受信側読み出し部14は、未完了情報を生成し、ギャップ制御部20は、当該未完了情報を受信側読み出し部14から取得してもよい。
【0120】
フレームの読み出しが完了した場合には(ステップS7:YES)、ステップS8において受信側読み出し部14は、完了情報を生成し、ギャップ制御部20は、受信側読み出し部14から完了情報を取得する。ステップS9においてギャップ制御部20は、カウント値が規定値と等しいか否かを判定する。
【0121】
カウント値が規定値と異なる場合には(ステップS9:NO)、ステップS10において受信側読み出し部14は、ステップS7において読み出しを完了したフレームと、当該フレームの後に読み出すフレームとの間に12バイト以上の長さのIFGを挿入する。処理部15は、受信側読み出し部14が読み出した各フレームに処理を行う。フレームの転送先に対応する送信側書き込み部16は、処理部15による処理後の各フレームを、対応する送信側バッファ部12に書き込む。ステップS10の処理後、情報転送装置1はステップS12に処理を移す。
【0122】
カウント値が規定値と等しい場合には(ステップS9:YES)、ステップS11においてギャップ制御部20は、2つのフレームの間に挿入するIFGの長さを基準長より短くするよう受信側読み出し部14に指示を行う。なお、当該2つのフレームとは、ステップS7において受信側読み出し部14が読み出しを完了したフレームと、当該フレームの後に受信側読み出し部14が読み出すフレームを指す。受信側読み出し部14は、ギャップ制御部20からの指示に基づいて、当該2つのフレームの間に挿入するIFGの長さを基準長より短くする。処理部15は、受信側読み出し部14が読み出した各フレームに処理を行う。フレームの転送先に対応する送信側書き込み部16は、処理部15による処理後の各フレームを、対応する送信側バッファ部12に書き込む。ステップS11の処理後、情報転送装置1はステップS12に処理を移す。
【0123】
ステップS12においてギャップ制御部20は、カウント値が上限値と等しいか否かを判定する。なお、ステップS1以前に、カウント値は初期値である0に設定されている。カウント値が上限値と等しい場合には(ステップS12:YES)、ステップS13においてギャップ制御部20は、カウント値を初期値へ戻す。ステップS13の処理後、情報転送装置1はステップS15に処理を移す。
【0124】
カウント値が上限値と異なる場合には(ステップS12:NO)、ステップS14においてギャップ制御部20は、カウント値を1だけ増加させる。ステップS14の処理後、情報転送装置1は、ステップS15に処理を移す。
【0125】
なお、情報転送装置1は、ステップS10またはステップS11の処理と、ステップS12から、ステップS13またはステップS14までの処理と、を並行して実行してもよい。
【0126】
ステップS15において受信側読み出し部14は、受信側バッファ部11に読み出しの対象のフレームが残っているか否かを判定する。なお、受信側バッファ部11に読み出しの対象のフレームが残っているか否かの判定は、受信側読み出し部14に代え、監視部19によって実行されてもよい。受信側バッファ部11に読み出しの対象のフレームが残っている場合には(ステップS15:YES)、情報転送装置1は、ステップS2に処理を戻す。
【0127】
ステップS15の処理後のステップS2において受信側バッファ部11の空き容量が第1閾値より大きい場合には、ステップS3においてギャップ制御部20は非蓄積情報を取得するが、その際に、ギャップ制御部20は、カウント値が0でない場合には、カウント値を0に戻してもよい。受信側バッファ部11に読み出しの対象のフレームが残っていない場合には(ステップS15:NO)、情報転送装置1は、情報転送処理を終了する。
【0128】
図6では、ギャップ制御部20は、完了情報を取得した後、カウント値の増加前に、カウント値が上限値または規定値と等しいかの判定を行っているが、ギャップ制御部20は、カウント値の増加後に当該判定を行ってよい。この場合には、情報転送装置1は、ステップS12~ステップS14の処理に代え、ステップS8の処理後であってステップS9の処理前において次の処理を行う。すなわち、情報転送装置1のギャップ制御部20は、カウント値が上限値であるか否かを判定し、カウント値が上限値ない場合にはカウント値を1だけ増加させ、カウント値が上限値である場合にはカウント値を初期値に戻す。この場合においてステップS10およびステップS11の各処理後、情報転送装置1は、ステップS15に処理を移す。
【0129】
図6では、ステップS1において受信側書き込み部13が全てのフレームを受信側バッファ部11に書き込んだ後、ステップS4またはステップS6において受信側読み出し部14がフレームの読み出しを行う処理例を示した。しかし、受信側読み出し部14は、受信側書き込み部13の書き込み処理と並行して読み出し処理を行ってもよい。この場合には、
図6における「END」は「RETURN」に置き換わり、情報転送装置1は、送信元の端末装置3から受信する全てのフレームのうち、最後のフレームを受信するまで、ステップS1~ステップS15の処理を繰り返す。この場合において受信側書き込み部13は、最後のフレームを書き込むまで、情報の書き込みの完了を監視部19に通知しなくともよい。あるいは、ステップS1において受信側書き込み部13は、受信側読み出し部14に、直接的に、または、監視部19を介して、複数の情報の書き込みを行ったことを通知し、受信側読み出し部14は、受信側書き込み部13からの通知によって起動してもよい。
【0130】
以下、実施の形態1~実施の形態2に係る情報転送装置1による効果について述べる。情報転送装置1は、通信部10とバッファ部と監視部19と読み出し部とギャップ制御部20とを備える。通信部10は、フレームを受信する。バッファ部は、通信部10が受信したフレームを保存する。監視部19は、バッファ部の空き容量を監視し、空き容量の大きさに基づいて、バッファ部にフレームが蓄積されているかを判定する。読み出し部は、バッファ部に保存された複数のフレームの間にIFGを挿入して読み出す。ギャップ制御部20は、バッファ部にフレームが蓄積されている場合には、読み出し部が複数のフレームの間に挿入するIFGの長さを、読み出し部がフレームを読み出した回数に基づいて調節するよう読み出し部を制御する。
【0131】
上記構成によれば、バッファ部にフレームが蓄積されている場合において読み出し部は、ギャップ制御部からの指示に応じて、フレームを読み出した回数に基づいて、複数のフレームの間に挿入するIFGの長さを調節する。これにより、情報転送装置1は、バッファ部にフレームが蓄積されている状態において、複数のフレーム間に挿入するIFGの長さが連続的に基準長より短くなることを抑制できる。バッファ部が送信側バッファ部12であって、読み出し部が送信側読み出し部17である場合には、情報転送装置1は、フレームの転送先における情報の欠落を抑制することができる。バッファ部が受信側バッファ部11であって、読み出し部が受信側読み出し部14である場合には、情報転送装置1は、フレームの転送先の端末装置3に対応する送信側バッファ部12における情報の欠落を抑制することができる。
【0132】
実施の形態1~実施の形態2におけるギャップ制御部20は、読み出し部が完了情報を生成した回数が規定値である場合には、複数のフレームの間に挿入されるIFGの長さを基準長より短くするよう読み出し部を制御する。読み出し部は、完了情報を生成した回数が規定値でない場合には、複数のフレームの間に挿入するIFGの長さを基準長にする。これにより、情報転送装置1は、バッファ部が送信側バッファ部12である場合には、送信側バッファ部12の記憶容量を確保しつつ、転送先の端末装置3における情報の欠落を抑制することができる。情報転送装置1は、バッファ部が受信側バッファ部11である場合には、受信側バッファ部11の記憶容量と送信側バッファ部12の各記憶容量を確保することができ、転送する情報の欠落を抑制することができる。
【0133】
実施の形態1~実施の形態2における読み出し部は、バッファ部にフレームが蓄積されている場合には、フレームを読み出す毎に完了情報を生成する。ギャップ制御部20は、読み出し部が完了情報を生成する度にカウントを行う。ギャップ制御部20は、カウントによって得られたカウント値が規定値である場合には、複数のフレームの間に挿入されるIFGの長さを基準長より短くするよう読み出し部を制御する。読み出し部は、カウント値が規定値でない場合には、複数のフレームの間に挿入するIFGの長さを基準長にする。これにより、ギャップ制御部20は、フレームが読み出された回数を、正確且つ容易にカウントできる。従って、情報転送装置1は、バッファ部が送信側バッファ部12である場合には、送信側バッファ部12の記憶容量を確保し、送信側バッファ部12における情報の欠落を抑制することができる。また、情報転送装置1は、情報の転送先の端末装置3における情報の欠落を抑制することができる。情報転送装置1は、バッファ部が受信側バッファ部11である場合には、受信側バッファ部11と送信側バッファ部12の各記憶容量を確保し、これらにおける情報の欠落を抑制することができる。
【0134】
実施の形態1~実施の形態2におけるギャップ制御部20は、カウント値が、規定値以上の上限値に等しくなるまでカウントを行い、バッファ部にフレームが蓄積されている間、上限値までのカウントを繰り返す。これにより、読み出し部は、上限値の回数において少なくとも1回、フレーム間に挿入するIFGを基準長よりも短くするため、バッファ部の記憶容量の確保が図られる。
【0135】
実施の形態1~実施の形態2の上記基準長は12バイトである。情報転送装置1は、カウント値が規定値である場合には、フレーム間に挿入するIFGの長さを12バイトから短縮することによって、バッファ部の記憶容量を確保し、バッファ部における情報の欠落を抑制することができる。また、情報転送装置1は、カウント値が規定値でない場合には、フレーム間に挿入するIFGの長さを12バイトにすることによって、送信側バッファ部12、または、情報の転送先の端末装置3での情報の欠落を抑制することができる。
【0136】
実施の形態1~実施の形態2における監視部19は、バッファ部の空き容量が第1閾値以下である場合には、バッファ部にフレームが蓄積されていると判定する。これにより、監視部19は、バッファ部におけるフレームの蓄積について容易且つ迅速に判定可能になる。
【0137】
実施の形態1~実施の形態2における第1閾値は、フレームの送信元のクロック周波数と、読み出し部の読み出し速度に対応するクロック周波数とに基づいて定められる。なお、当該フレームの送信元とは、バッファ部が送信側バッファ部12であって、読み出し部が送信側読み出し部17である場合には、処理部15または受信側読み出し部14を指す。バッファ部が受信側バッファ部11であって、読み出し部が受信側読み出し部14である場合には、フレームの送信元とは、情報の送信元の端末装置3を指す。情報転送装置1は、読み出し部のクロック周波数が送信元のクロック周波数より低い場合には、第1閾値を大きくすることにより、バッファ部にフレームが蓄積されていることを速やかに判定できる。従って、読み出し部は、早い段階から、フレーム間に挿入するIFGの長さの調節が可能になる。よって、情報転送装置1は、バッファ部の空き容量が足りないことによる情報の欠落を抑制することが可能になる。
【0138】
上述の他、実施の形態1~実施の形態2におけるギャップ制御部20は、クロック生成部18によるクロック周波数と、端末装置3のクロック周波数との差に基づいて、カウント値の上限値と、規定値の個数とのうちの両方または一方を変更してもよい。読み出し部は、クロック生成部18によるクロック周波数と、端末装置3のクロック周波数との差に基づいて、フレーム間に挿入するIFGの短縮分の長さを変更してもよい。
【0139】
監視部19は、蓄積情報、または、蓄積情報と非蓄積情報とに代え、バッファ部の空き容量を、ギャップ制御部20と読み出し部の両方または一方に通知してもよい。ギャップ制御部20は、空き容量に応じて、規定値の個数と、カウント値の上限値のうちの両方または一方を変更してもよい。読み出し部は、空き容量に応じて、IFGの短縮分の長さを変更してもよい。
【0140】
第1閾値は、段階的に異なる複数の数値であってもよい。この場合において、読み出し部は、各第1閾値以下の空き容量に応じて、IFGの短縮分の長さを変更してもよい。ギャップ制御部20は、各第1閾値以下の空き容量に応じて、規定値の個数と、カウント値の上限値のうちの両方または一方を変更してもよい。
【0141】
実施の形態3.
実施の形態1~実施の形態2は、ギャップ制御部20によるカウント値の上限値を特に限定するものではなかった。実施の形態3では、当該上限値をイーサネットに即した値とすることによって、情報の欠落の抑制効果を向上させる。以下、実施の形態3に係る情報転送装置1について詳述する。なお、実施の形態3では、実施の形態1~実施の形態2における構成要素と同様の構成要素に対し、同一の符号を付すものとする。また、実施の形態3において、実施の形態1~実施の形態2における構成と同様の構成、および、実施の形態1~実施の形態2における機能と同様の機能等については、特段の事情がない限り説明を省略する。
【0142】
図10は、実施の形態3に係る情報転送装置によるIFGの短縮例を示す図である。実施の形態3では、情報転送システム100における各装置が、イーサネットによって、基準のクロック周波数で情報を送受信する場合を例に挙げて説明する。ここでは、基準のクロック周波数を312.5MHz(Mega Hertz)、すなわち、基準のクロック周期を3.2ns(nanosecond)とする。
【0143】
ここで、クロックの周期には誤差が発生する場合があり、イーサネットでは、例えば、-100~100ppm(Parts Per Million)の誤差が発生し得る。イーサネットにおいて通信を行う2つの装置のうち、一方の装置で100ppmの誤差が発生し得、且つ、他方の装置で(-100)ppmの誤差が発生し得る場合には、当該2つの装置間のクロックの誤差は最大200ppmとなる。当該200ppmの誤差は、0.00064nsのクロック周期の誤差に対応する。
【0144】
基準のクロック周期3.2nsの場合において、0.00064nsのクロック周期の誤差によって、当該2つの装置において、5000クロックで1周期分の差が生じる。ここで、10GEにおいて、フレームの最大長が2000バイトである場合を例に挙げて説明する。なお、10GEでは、フレームが4レーンに配置され、1クロックで、4レーンの各々の1バイトの情報が送受信される。すると、2000バイトのフレームは、2000/4である500クロックで送受信される。
【0145】
1周期分の差が生じる5000クロックは、500クロックの10倍であり、2000バイトのフレームは、5000クロックで10フレーム送受信される。ここで、10GEにおいて100ppmの誤差が発生し得る装置を、情報の送信元の端末装置3とし、(-100)ppmの誤差が発生し得る装置を、情報転送装置1の受信側読み出し部14および処理部15等とする。このとき、受信側読み出し部14のクロック周波数は、情報の送信元の端末装置3のクロック周波数よりも最大で200ppmの分だけ低くなり得る。この場合において受信側読み出し部14は、複数のフレームの間に挿入するIFGの長さを、10フレームにおいて1回だけ基準長より短くすれば、受信側バッファ部11にフレームを保存できなくなる事態を抑制できる。
【0146】
次に、10GEにおいて100ppmの誤差が発生し得る装置を、情報転送装置1の処理部15および送信側書き込み部16等とし、(-100)ppmの誤差が発生し得る装置を、情報の転送先の端末装置3とした場合について説明する。このとき、送信側読み出し部17のクロック周波数は、送信側書き込み部16のクロック周波数よりも最大で200ppmの分だけ低くなり得る。この場合において送信側読み出し部17は、複数のフレームの間に挿入するIFGの長さを、10フレームにおいて1回だけ基準長より短くすれば、送信側バッファ部12にフレームを保存できなくなる事態を抑制できる。
【0147】
実施の形態3では、ギャップ制御部20は、読み出し部が2つのフレームの間に挿入するIFGの長さを、10フレームにおいて1回、基準長よりも短くするよう読み出し部を制御する。ここで、ギャップ制御部20は、4レーンで1バイトずつ、すなわち4バイトだけ、IFGを短縮するよう読み出し部を制御する。なお、当該読み出し部とは、送信側読み出し部17および受信側読み出し部14の両方であってもよいし、一方であってもよい。
【0148】
具体的には、ギャップ制御部20は、カウント値の上限値を10とし、バッファ部にフレームが蓄積されている場合において、完了情報の取得に応じ、10までのカウントを繰り返す。なお、当該バッファ部とは、送信側バッファ部12および受信側バッファ部11の両方であってもよいし、一方であってもよい。そして、ギャップ制御部20は、0から10までの任意の1つの値を規定値として、カウント値が規定値と等しい場合において、IFGの長さを基準長から短くするよう、当該バッファ部に対応する読み出し部を制御する。詳細には、当該バッファ部を送信側バッファ部12とする場合には、ギャップ制御部20は、送信側バッファ部12にフレームが蓄積されている状態において、送信側読み出し部17からの完了情報の取得に応じ、0から10までのカウントを繰り返す。そして、ギャップ制御部20は、カウント値が規定値と等しい場合において、IFGの長さを基準長から短くするよう送信側読み出し部17を制御する。一方、当該バッファ部を受信側バッファ部11とする場合には、ギャップ制御部20は、受信側バッファ部11にフレームが蓄積されている状態において、受信側読み出し部14からの完了情報の取得に応じ、0から10までのカウントを繰り返す。そして、ギャップ制御部20は、カウント値が規定値と等しい場合において、IFGの長さを基準長から短くするよう受信側読み出し部14を制御する。
【0149】
図10では、フレームにおける、1クロックで送信される4バイトを、1つの長方形で示す。また、IFGにおける、1クロックで送信される4バイトを、網掛けがされた1つの長方形で示す。
図10に示すように、5000クロック後において、クロックは1周期ずれており、これに応じて、IFGは12バイトから8バイトに短縮されている。
【0150】
以下、実施の形態3に係る情報転送装置1による効果について述べる。実施の形態3にギャップ制御部20は、カウント値が上限値の10に等しくなるまでカウントを行い、バッファ部にフレームが蓄積されている間、当該カウントを繰り返す。また、ギャップ制御部20は、カウント値が0から10までの1つの規定値と等しい場合において、IFGの長さを基準長よりも短くするよう読み出し部を制御する。これにより、10GEにおいて情報転送装置1は、10フレームに1回のみのIFGの短縮によって、バッファ部の容量の確保を図ることができ、バッファ部における情報の欠落を抑制することができる。また、情報転送装置1は、10回のうち9回、IFGを12バイトなどの基準長とするため、情報の転送先の端末装置3または送信側バッファ部12の記憶容量の確保を図ることができる。従って、情報転送装置1は、情報の転送先の端末装置3または送信側バッファ部12での情報の欠落を抑制することができる。
【0151】
実施の形態3に係る情報転送装置1は、上述のクロックの誤差の大きさに基づいて、カウント値の上限値、規定値の個数、IFGの短縮分の長さのうちの少なくともいずれかを変更してもよい。
【0152】
以上、実施の形態について説明したが、本開示の内容は、実施の形態に限定されるものではなく、想定しうる均等の範囲を含む。
【符号の説明】
【0153】
1 情報転送装置、3 端末装置、3A 第1端末装置、3B 第2端末装置、10 通信部、10A 第1通信部、10B 第2通信部、11 受信側バッファ部、11A 第1受信側バッファ部、11B 第2受信側バッファ部、12 送信側バッファ部、12A 第1送信側バッファ部、12B 第2送信側バッファ部、13 受信側書き込み部、13A 第1受信側書き込み部、13B 第2受信側書き込み部、14 受信側読み出し部、14A 第1受信側読み出し部、14B 第2受信側読み出し部、15 処理部、16 送信側書き込み部、16A 第1送信側書き込み部、16B 第2送信側書き込み部、17 送信側読み出し部、17A 第1送信側読み出し部、17B 第2送信側読み出し部、18 クロック生成部、19 監視部、20 ギャップ制御部、40 第1バス、41 受信側通信インターフェース回路、42 受信側プロセッサ、43 受信側メモリ、44 第2バス、45 送信側通信インターフェース回路、46 送信側プロセッサ、47 送信側メモリ、48 制御用プロセッサ、49 カウンタ、50 処理用プロセッサ、51 クロックジェネレータ、100 情報転送システム。