(57)【特許請求の範囲】
【請求項１】
複数の方路各々に対してフレームを送信するフレーム送信装置であって、
前記方路各々に対応付けて、前記方路ごとに前記フレームを蓄積するバッファが設けられたフレーム受信装置のバッファに蓄積されている前記フレームの容量を示す値として、前記フレーム送信装置において演算した値である蓄積容量値各々を記憶する蓄積容量値記憶手段と、
前記方路各々に対応付けて、前記フレーム受信装置が前記バッファに蓄積されているフレームを当該バッファから読み出す周期と、前記フレーム受信装置が当該周期ごとに読み出すフレームの読出容量との対応付け各々を記憶する周期容量記憶手段と、
前記方路各々に対応付けて、前記蓄積容量値記憶手段によって記憶されている蓄積容量値の閾値として、第一の閾値各々と第二の閾値各々とを記憶する閾値記憶手段と、
フレームを送信するごとに、前記蓄積容量値記憶手段によってフレームを送信した方路に対応付けて記憶されている蓄積容量値に、当該フレームの容量を示す値を加算する加算手段と、
前記方路各々について、前記周期容量記憶手段によって記憶されている周期のうち当該方路に対応付けられた周期ごとに、前記蓄積容量値記憶手段によって記憶されている蓄積容量値のうち当該方路に対応付けられた蓄積容量値から、前記周期容量記憶手段によって記憶されているフレームの読出容量のうち当該方路に対応付けられたフレームの読出容量を示す値を減算する減算手段と、
前記蓄積容量値記憶手段によって方路各々について記憶されている蓄積容量値各々を用いてフレームの送信をラウンドロビンにて制御する際に、
前記蓄積容量値記憶手段によって前記方路各々に対応付けて記憶されている蓄積容量値各々が、前記閾値記憶手段によって当該方路各々に対応付けられて記憶されている前記第一の閾値より大きい値であるかを判定し、大きな値であると判定した蓄積容量値が対応付けられた方路に対する送信を停止し、
かつ、
前記蓄積容量値各々が、前記閾値記憶手段によって当該方路各々に対応付けられて記憶されている前記第二の閾値より小さい値であるかを判定し、小さな値であると判定した蓄積容量値が対応付けられた方路に対する送信を、小さな値であると判定されていない蓄積容量値に対応付けられた方路に対する送信に比較して優先する送信制御手段と、
を備えたことを特徴とするフレーム送信装置。
【請求項２】
フレーム受信装置にフレームを送信するフレーム送信装置であって、
前記フレーム送信装置とは別系統のクロック信号に基づいて処理を行うフレーム受信装置のバッファに蓄積されている前記フレームの容量を示す値として、前記フレーム送信装置において演算した値である蓄積容量値を記憶する蓄積容量値記憶手段と、
前記フレーム受信装置が前記バッファに蓄積されているフレームを当該バッファから読み出す周期と、前記フレーム受信装置が当該周期ごとに読み出すフレームの読出容量とを記憶する周期容量記憶手段と、
フレームを送信するごとに、前記蓄積容量値記憶手段によって記憶されている蓄積容量値に、当該フレームの容量を示す値を加算する加算手段と、
前記フレーム送信装置から送信されたフレームを受信するフレーム受信装置から当該フレーム送信装置に送信されたフレームを受信する受信手段と、
前記受信手段によって受信されたフレームからクロック信号を取得するクロック取得手段と、
前記クロック取得手段によって取得されたクロック信号を用いて、前記周期容量記憶手段によって記憶されている周期ごとに、前記蓄積容量値記憶手段によって記憶されている蓄積容量値から、前記周期容量記憶手段によって記憶されている前記フレームの読出容量を示す値を減算する減算手段と、
前記蓄積容量値記憶手段によって記憶されている蓄積容量値を用いてフレームの送信を制御する送信制御手段と、
を備えたことを特徴とするフレーム送信装置。
【請求項３】
フレーム受信装置にフレームを送信するフレーム送信装置であって、
前記フレーム受信装置のバッファに蓄積されている前記フレームの容量を示す値として、前記フレーム送信装置において演算した値である蓄積容量値を記憶する蓄積容量値記憶手段と、
前記フレーム受信装置が前記バッファに蓄積されているフレームを当該バッファから読み出す周期と、前記フレーム受信装置が当該周期ごとに読み出すフレームの読出容量とを記憶する周期容量記憶手段と、
前記フレーム受信装置のバッファが所定の上限値を超過した旨を示す超過情報を前記フレーム受信装置から受信する超過情報受信手段と、
前記超過情報受信手段によって前記超過情報が受信されると、前記蓄積容量値記憶手段によって記憶されている前記蓄積容量値を、前記所定の上限値に補正する補正手段と、
フレームを送信するごとに、前記蓄積容量値記憶手段によって記憶されている蓄積容量値に、当該フレームの容量を示す値を加算する加算手段と、
前記周期容量記憶手段によって記憶されている周期ごとに、前記蓄積容量値記憶手段によって記憶されている蓄積容量値から、前記周期容量記憶手段によって記憶されている前記フレームの読出容量を示す値を減算する減算手段と、
前記蓄積容量値記憶手段によって記憶されている蓄積容量値を用いてフレームの送信を制御する送信制御手段と、
を備えたことを特徴とするフレーム送信装置。
【請求項４】
コンピュータが複数の方路各々に対してフレームを送信するフレーム送信方法であって、
前記コンピュータは、
前記方路各々に対応付けて、前記方路ごとに前記フレームを蓄積するバッファが設けられたフレーム受信装置のバッファに蓄積されている前記フレームの容量を示す値として、前記フレーム送信装置において演算した値である蓄積容量値各々を記憶する蓄積容量値記憶手段と、
前記方路各々に対応付けて、前記フレーム受信装置が前記バッファに蓄積されているフレームを当該バッファから読み出す周期と、前記フレーム受信装置が当該周期ごとに読み出すフレームの読出容量との対応付け各々を記憶する周期容量記憶手段と、
前記方路各々に対応付けて、前記蓄積容量値記憶手段によって記憶されている蓄積容量値の閾値として、第一の閾値各々と第二の閾値各々とを記憶する閾値記憶手段とを有し、
前記コンピュータが、
フレームを送信するごとに、前記蓄積容量値記憶手段によってフレームを送信した方路に対応付けて記憶されている蓄積容量値に、当該フレームの容量を示す値を加算する加算工程と、
前記方路各々について、前記周期容量記憶手段によって記憶されている周期のうち当該方路に対応付けられた周期ごとに、前記蓄積容量値記憶手段によって記憶されている蓄積容量値のうち当該方路に対応付けられた蓄積容量値から、前記周期容量記憶手段によって記憶されているフレームの読出容量のうち当該方路に対応付けられたフレームの読出容量を示す値を減算する減算工程と、
前記蓄積容量値記憶手段によって方路各々について記憶されている蓄積容量値各々を用いてフレームの送信をラウンドロビンにて制御する際に、
前記蓄積容量値記憶手段によって前記方路各々に対応付けて記憶されている蓄積容量値各々が、前記閾値記憶手段によって当該方路各々に対応付けられて記憶されている前記第一の閾値より大きい値であるかを判定し、大きな値であると判定した蓄積容量値が対応付けられた方路に対する送信を停止し、
かつ、
前記蓄積容量値各々が、前記閾値記憶手段によって当該方路各々に対応付けられて記憶されている前記第二の閾値より小さい値であるかを判定し、小さな値であると判定した蓄積容量値が対応付けられた方路に対する送信を、小さな値であると判定されていない蓄積容量値に対応付けられた方路に対する送信に比較して優先する送信制御工程と、
を実行することを特徴とするフレーム送信方法。
【請求項５】
複数の方路各々に対してフレームを送信するフレーム送信装置を制御する処理をコンピュータに実行させるフレーム送信プログラムであって、
前記コンピュータは、
前記方路各々に対応付けて、前記方路ごとに前記フレームを蓄積するバッファが設けられたフレーム受信装置のバッファに蓄積されている前記フレームの容量を示す値として、前記フレーム送信装置において演算した値である蓄積容量値各々を記憶する蓄積容量値記憶手段と、
前記方路各々に対応付けて、前記フレーム受信装置が前記バッファに蓄積されているフレームを当該バッファから読み出す周期と、前記フレーム受信装置が当該周期ごとに読み出すフレームの読出容量との対応付け各々を記憶する周期容量記憶手段と、
前記方路各々に対応付けて、前記蓄積容量値記憶手段によって記憶されている蓄積容量値の閾値として、第一の閾値各々と第二の閾値各々とを記憶する閾値記憶手段とを有し、
前記コンピュータに、
フレームを送信するごとに、前記蓄積容量値記憶手段によってフレームを送信した方路に対応付けて記憶されている蓄積容量値に、当該フレームの容量を示す値を加算する加算手順と、
前記方路各々について、前記周期容量記憶手段によって記憶されている周期のうち当該方路に対応付けられた周期ごとに、前記蓄積容量値記憶手段によって記憶されている蓄積容量値のうち当該方路に対応付けられた蓄積容量値から、前記周期容量記憶手段によって記憶されているフレームの読出容量のうち当該方路に対応付けられたフレームの読出容量を示す値を減算する減算手順と、
前記蓄積容量値記憶手段によって方路各々について記憶されている蓄積容量値各々を用いてフレームの送信をラウンドロビンにて制御する際に、
前記蓄積容量値記憶手段によって前記方路各々に対応付けて記憶されている蓄積容量値各々が、前記閾値記憶手段によって当該方路各々に対応付けられて記憶されている前記第一の閾値より大きい値であるかを判定し、大きな値であると判定した蓄積容量値が対応付けられた方路に対する送信を停止し、
かつ、
前記蓄積容量値各々が、前記閾値記憶手段によって当該方路各々に対応付けられて記憶されている前記第二の閾値より小さい値であるかを判定し、小さな値であると判定した蓄積容量値が対応付けられた方路に対する送信を、小さな値であると判定されていない蓄積容量値に対応付けられた方路に対する送信に比較して優先する送信制御手順と、
を実行させることを特徴とするフレーム送信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、フレーム送信装置、フレーム送信方法およびフレーム送信プログラムに関する。
【背景技術】
【０００２】
従来より、フレーム送信装置からのフレーム送信処理について、様々な手法が用いられている。
【０００３】
例えば、従来の手法では、フレーム送信装置は、フレーム受信装置が有するバッファに蓄積されたフレームの状況（フレーム蓄積情報）を、フレーム受信装置から受信する。そして、フレーム送信装置は、受信したフレーム蓄積情報を用いて、フレーム送信処理を制御していた。
【０００４】
具体的な例をあげて説明すると、フレーム送信装置は、フレーム受信装置からフレーム蓄積情報を短い周期で受信する。そして、フレーム送信装置は、短い周期で受信するフレーム蓄積情報を用いて、フレーム受信装置が有するバッファの蓄積状況に連動したフレーム送信処理を行っていた。
【０００５】
また、例えば、フレーム送信装置にかかる処理負荷やフレーム流量を考慮してフレーム送信処理を制御する手法（処理負荷等を考慮する手法）がある（例えば、特許文献１）。また、例えば、フレーム送信装置がフレームを複数の方路に対して送信する際に、過去に用いた方路を記憶した送信履歴を用いて、次にフレームを送信する方路を選択する手法（送信履歴を用いる手法）がある（例えば、特許文献２）。
【０００６】
【特許文献１】特開２００５−２０３０７号公報（第１−６頁、第１図）
【特許文献２】特開平３−６９２３１号公報（第１−３頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、上記した手法では、フレーム受信装置側の蓄積状況を考慮したフレーム送信処理を行う上で、フレーム受信装置からフレーム送信装置へのトラフィックを軽減することが難しかったという課題があった。
【０００８】
例えば、従来のフレーム送信装置は、フレーム受信装置側の蓄積状況を考慮したフレーム送信処理を行う上で、フレーム受信装置からフレーム蓄積情報を短い周期で受信することが必要であった。このため、フレーム受信装置からフレーム送信装置へのトラフィックを軽減することは困難であった。
【０００９】
なお、例えば、上記した処理負荷等を考慮する手法や、上記した送信履歴を用いる手法は、フレーム受信装置側の蓄積状況を考慮したフレーム送信処理を行うものではない。
【００１０】
そこで、この発明は、上述した従来手法の課題を解決するためになされたものであり、フレーム受信装置からフレーム送信装置へのトラフィックを軽減することが可能であるフレーム送信装置、フレーム送信方法およびフレーム送信プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、複数の方路各々に対してフレームを送信するフレーム送信装置であって、前記方路各々に対応付けて、前記方路ごとに前記フレームを蓄積するバッファが設けられたフレーム受信装置のバッファに蓄積されている前記フレームの容量を示す値として、前記フレーム送信装置において演算した値である蓄積容量値各々を記憶する蓄積容量値記憶手段と、前記方路各々に対応付けて、前記フレーム受信装置が前記バッファに蓄積されているフレームを当該バッファから読み出す周期と、前記フレーム受信装置が当該周期ごとに読み出すフレームの読出容量との対応付け各々を記憶する周期容量記憶手段と、前記方路各々に対応付けて、前記蓄積容量値記憶手段によって記憶されている蓄積容量値の閾値として、第一の閾値各々と第二の閾値各々とを記憶する閾値記憶手段と、フレームを送信するごとに、前記蓄積容量値記憶手段によってフレームを送信した方路に対応付けて記憶されている蓄積容量値に、当該フレームの容量を示す値を加算する加算手段と、前記方路各々について、前記周期容量記憶手段によって記憶されている周期のうち当該方路に対応付けられた周期ごとに、前記蓄積容量値記憶手段によって記憶されている蓄積容量値のうち当該方路に対応付けられた蓄積容量値から、前記周期容量記憶手段によって記憶されているフレームの読出容量のうち当該方路に対応付けられたフレームの読出容量を示す値を減算する減算手段と、前記蓄積容量値記憶手段によって方路各々について記憶されている蓄積容量値各々を用いてフレームの送信をラウンドロビンにて制御する際に、前記蓄積容量値記憶手段によって前記方路各々に対応付けて記憶されている蓄積容量値各々が、前記閾値記憶手段によって当該方路各々に対応付けられて記憶されている前記第一の閾値より大きい値であるかを判定し、大きな値であると判定した蓄積容量値が対応付けられた方路に対する送信を停止し、かつ、前記蓄積容量値各々が、前記閾値記憶手段によって当該方路各々に対応付けられて記憶されている前記第二の閾値より小さい値であるかを判定し、小さな値であると判定した蓄積容量値が対応付けられた方路に対する送信を、小さな値であると判定されていない蓄積容量値に対応付けられた方路に対する送信に比較して優先する送信制御手段と、を備える。
【発明の効果】
【００１２】
フレーム受信装置からフレーム送信装置へのトラフィックを軽減することが可能である。
【発明を実施するための最良の形態】
【００１３】
以下に添付図面を参照して、この発明に係るフレーム送信装置、フレーム送信方法およびフレーム送信プログラムの実施例を詳細に説明する。なお、以下では、実施例１で用いる主要な用語、実施例１に係るフレーム送信装置の概要、フレーム送信装置の構成および処理の流れを順に説明し、その後、その他の実施例について説明する。
【実施例１】
【００１４】
［フレーム送信装置の概要］
まず最初に、図１を用いて、実施例１に係るフレーム送信装置の概要を説明する。図１は、実施例１に係るフレーム送信装置の概要を説明するための図である。
【００１５】
同図に示すように、実施例１に係るフレーム送信装置１００は、フレーム受信装置３００にフレームを送信するものである。なお、図１には、説明の便宜上、フレーム送信装置１００から送信されたフレームを受信するフレーム受信装置３００についても、併せて示した。フレーム受信装置３００は、バッファ３０６を有するものであり、フレーム送信装置１００から受信したフレームをバッファ３０６に格納する。そして、フレーム受信装置３００は、バッファ３０６にフレームを格納した後に、バッファ３０６からフレームを読み出して処理（例えば、他の装置に送信するなど）するものである。
【００１６】
そして、実施例１に係るフレーム送信装置１００は、以下で説明するように、フレーム受信装置３００からフレーム送信装置１００へのトラフィックを軽減することが可能である。
【００１７】
すなわち、実施例１に係るフレーム送信装置１００は、図１に示すように、蓄積容量値を記憶するカウンタ１０１を有する。具体的な例をあげて説明すると、実施例１に係るフレーム送信装置１００では、カウンタ１０１が、蓄積容量値として、「８００バイト」や「１５００バイト」を記憶する。なお、蓄積容量値とは、フレーム受信装置３００のバッファ３０６に蓄積されているフレームの容量を示す値として、フレーム送信装置１００において演算した値である。
【００１８】
そして、実施例１に係るフレーム送信装置１００は、図１に示すように、「周期」と「読出容量」とを記憶する周期容量記憶部１０２を有する。なお、「周期」とは、フレーム受信装置３００がバッファ３０６に蓄積されているフレームをバッファ３０６から読み出す周期を示す。また、「読出容量」とは、フレーム受信装置３００が周期ごとに読み出すフレームの容量を示す。
【００１９】
具体的な例をあげて説明すると、実施例１に係るフレーム送信装置１００では、周期容量記憶部１０２が、周期「１クロック（１２５ＭＨｚ）」と読出容量「１バイト」とを記憶する。
【００２０】
ここで、実施例１に係るフレーム送信装置１００は、蓄積容量値を加算する。具体的には、図１に示すように、実施例１に係るフレーム送信装置１００では、加算部１０３が、フレームを送信するごとに、カウンタ１０１によって記憶されている蓄積容量値に、送信するフレームの容量を示す値を加算する。
【００２１】
例えば、実施例１に係るフレーム送信装置１００が、フレーム受信装置３００に対して「１００バイト」のフレームを送信した場合を例に、具体的に説明する。なお、ここで、カウンタ１０１は、蓄積容量値「８００バイト」を記憶しているものとする。図１に示すように、実施例１に係るフレーム送信装置１００では、加算部１０３が、カウンタ１０１によって記憶されている蓄積容量値「８００バイト」に「１００バイト」を加算し、「９００バイト」とする。
【００２２】
また、実施例１に係るフレーム送信装置１００は、蓄積容量値を減算する。具体的には、図１に示すように、実施例１に係るフレーム送信装置１００では、減算部１０４が、周期容量記憶部１０２によって記憶されている周期ごとに、カウンタ１０１によって記憶されている蓄積容量値を減算する。また、実施例１に係るフレーム送信装置１００では、減算部１０４が、周期容量記憶部１０２によって記憶されている読出容量を示す値を、蓄積容量値から減算する。
【００２３】
例えば、周期容量記憶部１０２が、周期「１クロック（１２５ＭＨｚ）」と読出容量「１バイト」とを記憶する場合を例に、具体的に説明する。なお、ここで、カウンタ１０１は、蓄積容量値「９００バイト」を記憶しているものとする。実施例１に係るフレーム送信装置１００では、減算部１０４は、「１クロック」ごとに、カウンタ１０１によって記憶されている蓄積容量値から「１バイト」減算する。例えば、減算部１０４は、蓄積容量値「９００バイト」から「１バイト」減算し、蓄積容量値「８９９バイト」とする。また、その後、減算部１０４は、「１クロック」経過すると、蓄積容量値「８９９バイト」から「１バイト」減算し、蓄積容量値「８９８バイト」とする。
【００２４】
そして、実施例１に係るフレーム送信装置１００は、カウンタ１０１によって記憶されている蓄積容量値を用いてフレームの送信を制御する。例えば、実施例１に係るフレーム送信装置１００では、送信制御部１０５が、カウンタ１０１によって蓄積容量値「１５００バイト」が記憶されている場合には、フレーム送信処理を停止する。そして、例えば、その後、実施例１に係るフレーム送信装置１００では、送信制御部１０５が、減算部１０４によって蓄積容量値が減算されることで、カウンタ１０１によって蓄積容量値「１５００バイト」未満になった場合に、フレーム送信を再開する。
【００２５】
このようなことから、実施例１に係るフレーム送信装置１００は、上記した如く、フレーム受信装置３００からフレーム送信装置１００へのトラフィックを軽減することが可能である。
【００２６】
具体的には、従来の手法では、フレーム送信装置は、フレーム受信装置が有するバッファのフレーム蓄積情報をフレーム受信装置から受信し、受信したフレーム蓄積情報を用いて、フレームの送信処理を制御していた。
【００２７】
このような従来の手法と比較して、開示のフレーム送信装置１００では、フレーム送信装置１００自身が、フレーム受信装置３００のフレーム蓄積状態をエミュレーションする。そして、フレーム受信装置３００から受信するフレーム蓄積情報ではなく、エミュレーション結果を用いてフレーム送信処理を制御するので、フレーム受信装置３００からフレーム送信装置１００へのトラフィックを軽減することが可能である。
【００２８】
［フレーム送信装置の構成］
次に、図２〜図６を用いて、図１に示したフレーム送信装置１００の構成を説明する。なお、以下では、まず、出力方路毎ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）容量エミュレーション部２００を含むフレーム送信装置１００の全体構成について説明する。そして、フレーム受信装置３００の構成について説明する。その後、出力方路毎ＦＩＦＯ容量エミュレーション部２００の構成について説明する。
【００２９】
［フレーム送信装置の全体構成］
まず、図２を用いて、出力方路毎ＦＩＦＯ容量エミュレーション部２００を含むフレーム送信装置１００の構成について説明する。なお、図２は、実施例１に係るフレーム送信装置１００の構成を説明するためのブロック図である。また、以下では、図２においては、フレーム送信装置１００から送信されたフレームを受信するフレーム受信装置３００の構成についても併せて示した。
【００３０】
図２に示すように、フレーム送信装置１００は、フレームをフレーム受信装置３００に送信する。具体的には、フレーム送信装置１００は、バッファ制御部１１０を有する。また、フレーム送信装置１００では、バッファ制御部１１０が、宛先方路毎バッファ１２１からフレームを読み出し、読み出したフレームをフレーム受信装置３００に送信する。
【００３１】
バッファ制御部１１０は、特に、宛先方路毎バッファ１２１と、多重部１３１と、読出し制御部１３２と、出力方路毎ＦＩＦＯ容量エミュレーション部２００と、を有する。なお、以下では、バッファ制御部１１０は、方路それぞれについて、それぞれ別個の出力方路毎ＦＩＦＯ容量エミュレーション部２００を有するものとして説明する。つまり、バッファ制御部１１０は、方路が「ｎ」個ある場合には、出力方路毎ＦＩＦＯ容量エミュレーション部２００を「ｎ」個有するものとして、説明する。
【００３２】
宛先方路毎バッファ１２１は、読出し制御部１３２と多重部１３１とに接続する。また、宛先方路毎バッファ１２１は、フレーム送信装置１００からフレーム受信装置３００に対して送信されるフレームを記憶する。具体的には、宛先方路毎バッファ１２１は、複数のバッファ（送信側）を有する。また、宛先方路毎バッファ１２１は、複数の方路各々に対して送信されるフレーム各々を、方路毎に異なるバッファ（送信側）各々に記憶する。
【００３３】
例えば、方路が「１」〜「ｎ」まである場合を例に、具体的に説明する。宛先方路毎バッファ１２１は、バッファ（送信側）「方路１」〜「方路ｎ」を有し、バッファ（送信側）「方路１」〜「方路ｎ」各々が、方路「１」〜「ｎ」に対して送信するフレーム各々を記憶する。
【００３４】
なお、実施例１では、宛先方路毎バッファ１２１が、方路が「１」〜「ｎ」各々に対して送信されるフレームを、それぞれ異なるバッファ（送信側）に格納する場合を例に説明するが、本発明はこれに限定されるものではない。例えば、宛先方路毎バッファ１２１は、一つのバッファ（送信側）のみを有し、方路毎に使用することが許される容量と使用している容量とを管理することで、いずれの方路に対して送信されるフレームかを関係なく、当該一つのバッファ（送信側）にフレームを格納してもよい。
【００３５】
また、宛先方路毎バッファ１２１は、フレーム受信装置３００に対して送信されるフレームを、フレーム送信装置１００によって入力されて格納する。なお、フレーム送信装置１００によって宛先方路毎バッファ１２１に入力されるフレームは、例えば、他の装置からフレーム送信装置１００に対して送信されたものが該当する。また、宛先方路毎バッファ１２１が記憶しているフレームは、読出し制御部１３２によって読み出され、読出し制御部１３２によって多重部１３１に送られるものである。
【００３６】
多重部１３１は、宛先方路毎バッファ１２１に接続する。また、多重部１３１は、光回線等を介して、フレーム受信装置３００（振分け部３３１）と接続する。また、多重部１３１は、フレーム受信装置３００に対してフレームを送信する。具体的には、多重部１３１は、読出し制御部１３２によって宛先方路毎バッファ１２１から読み出されたフレームを、フレーム受信装置３００に対して送信する。具体的な例をあげて説明すると、多重部１３１は、読出し制御部１３２によって、宛先方路毎バッファ１２１が有する方路毎に異なるバッファ（送信側）各々から読み出されたフレーム各々を、宛先方路毎バッファ１２１から読出し制御部１３２によって送られて受け取る。そして、多重部１３１は、宛先方路毎バッファ１２１から受け取ったフレームを、多方路多重伝送路を介して方路各々に対して送信する。
【００３７】
なお、多重部１３１が行うフレーム送信処理は、読出し制御部１３２によるフレーム読出処理によって制御されるものである。
【００３８】
読出し制御部１３２（「送信制御手段」とも称する）は、宛先方路毎バッファ１２１と出力方路毎ＦＩＦＯ容量エミュレーション部２００とに接続する。また、読出し制御部１３２は、宛先方路毎バッファ１２１からのフレーム読み出し処理を制御する。また、読出し制御部１３２は、宛先方路毎バッファ１２１から読み出したフレームについての情報を、出力方路毎ＦＩＦＯ容量エミュレーション部２００各々に伝達する。以下では、まず、フレーム読み出し処理について説明し、その後、出力方路毎ＦＩＦＯ容量エミュレーション部２００各々への伝達について説明する。
【００３９】
まず、読出し制御部１３２によるフレーム読み出し処理について説明する。具体的には、読出し制御部１３２は、宛先方路毎バッファ１２１からのフレーム読み出しを、ラウンドロビンにて制御する。
【００４０】
より詳細には、読出し制御部１３２は、出力方路毎ＦＩＦＯ容量エミュレーション部２００各々内（ＦＩＦＯ容量バイトカウンタ部２０３各々）に記憶されている蓄積容量値を用いて、宛先方路毎バッファ１２１からのフレーム読み出しを制御する。なお、ここで、出力方路毎ＦＩＦＯ容量エミュレーション部２００各々内（ＦＩＦＯ容量バイトカウンタ部２０３各々）に記憶されている蓄積容量値各々とは、方路各々について記憶されている蓄積容量値各々を示す。
【００４１】
ここで、具体的な一例をあげて、読出し制御部１３２によるフレーム読み出し処理について説明する。なお、方路は、「１」〜「ｎ」まであるものとする。例えば、読出し制御部１３２は、方路「１」〜「ｎ」に対して送信するフレームを格納しているバッファ（送信側）「方路１」〜「方路ｎ」それぞれから、フレームを順番に読み出す。また、読出し制御部１３２は、バッファ（送信側）「方路１」〜「方路ｎ」それぞれから読み出す処理を繰り返す。
【００４２】
また、読出し制御部１３２は、方路各々に設けられた出力方路毎ＦＩＦＯ容量エミュレーション部２００各々から、Ｆｕｌｌ信号（後述）やＦｕｌｌ解除信号（後述）、Ｅｍｐｔｙ信号（後述）、または、Ｅｍｐｔｙ解除信号（後述）を、受け付ける。そして、読出し制御部１３２は、フレームを読み出す処理を制御する。
【００４３】
なお、ここで、Ｆｕｌｌ信号やＦｕｌｌ解除信号、Ｅｍｐｔｙ信号、Ｅｍｐｔｙ解除信号は、出力方路毎ＦＩＦＯ容量エミュレーション部２００各々（後述するＦＩＦＯ状態判定処理部２１３各々）によって読み出し制御部１３２に送信される情報である。
【００４４】
読出し制御部１３２がＦｕｌｌ信号を受け付けた場合について説明する。読出し制御部１３２は、Ｆｕｌｌ信号が送られた方路について、当該方路に対して送信するフレームを宛先方路毎バッファ１２１から読み出す処理を、停止する。
【００４５】
例えば、方路が「１」〜「ｎ」まである場合を例に、具体的に説明する。また、バッファ（送信側）「方路１」〜「方路ｎ」それぞれは、方路「１」〜「ｎ」に対して送信するフレーム各々を記憶するものとして説明する。また、読出し制御部１３２は、方路「１」についての出力方路毎ＦＩＦＯ容量エミュレーション部２００から、Ｆｕｌｌ信号を受け付けたものとして説明する。ここで、読出し制御部１３２は、バッファ（送信側）「方路１」からフレームを読み出す処理を停止する。つまり、読出し制御部１３２は、バッファ（送信側）「方路１」からのフレーム読み出し処理をスキップし、その他のバッファ（送信側）「方路２」〜「方路ｎ」からのフレーム読み出し処理を繰り返す。
【００４６】
また、読出し制御部１３２がＦｕｌｌ解除信号を受け付けた場合について説明する。読出し制御部１３２は、Ｆｕｌｌ解除信号が送られた方路について、当該方路に対して送信するフレームをバッファ（送信側）から読み出す処理を再開する。
【００４７】
例えば、読出し制御部１３２は、方路「１」についての出力方路毎ＦＩＦＯ容量エミュレーション部２００から、Ｆｕｌｌ信号を受け付け、その後、Ｆｕｌｌ解除信号を受け付けたものとして説明する。ここで、読出し制御部１３２は、バッファ（送信側）「方路１」からフレームを読み出す処理を再開する。つまり、読出し制御部１３２は、バッファ（送信側）「方路１」からのフレーム読み出し処理のスキップを解除し、バッファ（送信側）「方路１」〜「方路ｎ」からのフレーム読み出し処理を繰り返す。
【００４８】
また、読出し制御部１３２がＥｍｐｔｙ信号を受け付けた場合について説明する。読出し制御部１３２は、Ｅｍｐｔｙ信号が送られた方路について、当該方路に対して送信するフレームをバッファ（送信側）から読み出す処理を優先して行う。
【００４９】
例えば、読出し制御部１３２は、方路「１」についての出力方路毎ＦＩＦＯ容量エミュレーション部２００から、Ｅｍｐｔｙ信号を受け付けたものとして説明する。ここで、読出し制御部１３２は、バッファ（送信側）「方路１」からフレームを読み出す処理を、その他のバッファ（送信側）からのフレーム読み出し処理に比較して優先する。つまり、読出し制御部１３２は、バッファ（送信側）「方路１」からのフレーム読み出し処理を、バッファ（送信側）「方路２」〜「方路ｎ」からのフレーム読み出し処理各々に比較して、優先して行う。具体的な例をあげて説明すると、例えば、読出し制御部１３２は、バッファ（送信側）「方路２」〜「方路ｎ」からのフレーム読み出し処理各々が行われる回数各々よりも、バッファ（送信側）「方路１」からのフレーム読み出し処理が行われる回数が多くなるように、フレーム読み出し処理を繰り返す。
【００５０】
また、読出し制御部１３２がＥｍｐｔｙ解除信号を受け付けた場合について説明する。読出し制御部１３２は、Ｅｍｐｔｙ解除信号が送られた方路について、当該方路に対して送信するフレームをバッファ（送信側）から読み出す処理を再開する。
【００５１】
例えば、読出し制御部１３２は、方路「１」についての出力方路毎ＦＩＦＯ容量エミュレーション部２００から、Ｅｍｐｔｙ信号を受け付け、その後、Ｅｍｐｔｙ解除信号を受け付けたものとして説明する。ここで、読出し制御部１３２は、バッファ（送信側）「方路１」からフレームを読み出す処理を、その他のバッファ（送信側）からのフレーム読み出し処理と同等に行う。つまり、読出し制御部１３２は、バッファ（送信側）「方路１」からのフレーム読み出し処理を、バッファ（送信側）「方路２」〜「方路ｎ」からのフレーム読み出し処理各々に比較して、優先することなく、同等の処理として行う。
【００５２】
すなわち、読出し制御部１３２は、Ｆｕｌｌ判定信号を受け付けた場合には、受け付けた方路に対してのフレーム送信を停止する設定を行う。また、読出し制御部１３２は、ＦＵＬＬ判定解除信号を受け付けた場合には、受け付けた方路に対してのフレーム送信を停止する設定を解除する。また、読出し制御部１３２は、Ｅｍｐｔｙ判定信号を受け付けた場合には、受け付けた方路に対してのフレーム送信を優先する設定を行う。また、読出し制御部１３２は、Ｅｍｐｔｙ判定解除信号を受け付けた場合には、受け付けた方路に対してのフレーム送信を優先する設定を解除する。
【００５３】
次に、出力方路毎ＦＩＦＯ容量エミュレーション部２００への伝達について説明する。読出し制御部１３２は、宛先方路毎バッファ１２１からフレームを読み出すごとに、出力方路毎ＦＩＦＯ容量エミュレーション部２００各々に、フレームを読み出したバッファ（送信側）が記憶しているフレームが送信される方路と、読み出したフレームの容量とを伝達する。
【００５４】
例えば、バッファ（送信側）「１」から、「１００」バイトのフレームを読み出した場合を例に、具体的に説明する。読出し制御部１３２は、方路「１」〜「ｎ」各々についての出力方路毎ＦＩＦＯ容量エミュレーション部２００各々に、方路「１」と容量「１００バイト」とを伝達する。
【００５５】
なお、実施例１では、読出し制御部１３２は、すべての出力方路毎ＦＩＦＯ容量エミュレーション部２００に対して、方路と容量とを伝達する手法について説明するが、本発明はこれに限定されるものではない。例えば、読出し制御部１３２は、関係する方路についての出力方路毎ＦＩＦＯ容量エミュレーション部２００にのみ、方路と容量とを伝達してもよい。具体的な例をあげて説明すると、読出し制御部１３２は、バッファ（送信側）「１」からフレームを読み出した場合には、方路「１」についての出力方路毎ＦＩＦＯ容量エミュレーション部２００にのみ、方路と容量とを伝達してもよい。
【００５６】
［フレーム受信装置の構成］
次に、図２を用いて、フレーム受信装置３００の構成について説明する。フレーム受信装置３００は、フレーム送信装置１００から送信されたフレームを受信する。また、フレーム受信装置３００は、出力方路振分け部３１０を有し、出力方路振分け部３１０が、バースト吸収用ＦＩＦＯ３２１に格納されたフレームを読み出す。ここで、出力方路振分け部３１０は、特に、バースト吸収用ＦＩＦＯ３２１と、振分け部３３１を有するものである。
【００５７】
バースト吸収用ＦＩＦＯ３２１は、振分け部３３１に接続している。また、バースト吸収用ＦＩＦＯ３２１は、フレーム送信装置１００から送信されたフレームを記憶する。具体的には、バースト吸収用ＦＩＦＯ３２１は、複数のバッファを有する。また、バースト吸収用ＦＩＦＯ３２１は、フレーム送信装置１００によって複数の方路各々に対して送信されたフレーム各々を、方路毎に異なるバッファ（受信側）各々に蓄積する。
【００５８】
例えば、方路が「１」〜「ｎ」まである場合を例に、具体的に説明する。バースト吸収用ＦＩＦＯ３２１は、バッファ（受信側）「方路１」〜「方路ｎ」を有し、バッファ（受信側）「方路１」〜「方路ｎ」各々が、方路「１」〜「ｎ」に対して送信するフレーム各々を記憶する。
【００５９】
また、バースト吸収用ＦＩＦＯ３２１は、振分け部３３１によってフレームが入力され、フレームを蓄積する。また、バースト吸収用ＦＩＦＯ３２１に蓄積されているフレームは、フレーム受信装置３００によって読み出されるものである。なお、バースト吸収用ＦＩＦＯ３２１に蓄積されているフレームが読み出された場合には、読み出されたフレームはバースト吸収用ＦＩＦＯ３２１から削除され、または、他のフレームによって上書きされるものである。
【００６０】
なお、実施例１では、説明の便宜上、フレーム送信装置１００から送信されるフレームすべては、フレーム受信装置３００に対して送信されるものとする。このため、バースト吸収用ＦＩＦＯ３２１は、フレーム送信装置１００がフレームを送信する方路の数、バッファ（受信側）を有するものとして説明する。
【００６１】
振分け部３３１は、バースト吸収用ＦＩＦＯ３２１と接続する。また、光通信回線などを介して、フレーム送信装置１００と接続している。また、振分け部３３１は、フレーム送信装置１００からフレームを受信する。そして、振分け部３３１は、受信したフレーム各々を、当該フレーム各々が送信された方路毎に、バッファ各々に格納する。
【００６２】
具体的な例をあげて説明すると、振分け部３３１は、フレーム送信装置１００によって方路「１」に対して送信されたフレームを受信すると、当該フレームをバッファ（受信側）「１」に格納する。
【００６３】
なお、図２においては図示しなかったが、フレーム受信装置３００は、フレーム送信装置１００が有するフレーム送信処理に必要な構成部各々を有するものである。これにより、例えば、フレーム受信装置３００は、フレーム送信装置１００から受信したフレームを、他の装置に送信するものである。
【００６４】
［出力方路毎ＦＩＦＯ容量エミュレーション部の構成］
次に、図３〜図６を用いて、出力方路毎ＦＩＦＯ容量エミュレーション部２００の構成について説明する。なお、図３は、実施例１における出力方路毎ＦＩＦＯ容量エミュレーション部２００の構成を説明するためのブロック図である。
【００６５】
なお、実施例１では、出力方路毎ＦＩＦＯ容量エミュレーション部２００は、方路各々について設けられている手法について説明する。なお、出力方路毎ＦＩＦＯ容量エミュレーション部２００各々は、それぞれ割り当てられた方路についての処理のみを行うものである。なお、以下では、特に言及しない限り、方路「１」について処理を行う出力方路毎ＦＩＦＯ容量エミュレーション部２００について説明するものとする。
【００６６】
図３に示すように、出力方路毎ＦＩＦＯ容量エミュレーション部２００は、記憶部として、特に、出力方路帯域設定記憶部２０１と、状態判定閾値設定記憶部２０２と、ＦＩＦＯ容量バイトカウンタ部２０３と、を有する。
【００６７】
出力方路帯域設定記憶部２０１は、減算帯域変換部２１２に接続する。また、出力方路帯域設定記憶部２０１は、図４に示すように、出力帯域を記憶する。具体的な例をあげて説明すると、出力方路帯域設定記憶部２０１は、方路「１」についての出力帯域「１Ｇｂｐｓ」を記憶する。
【００６８】
なお、実施例１では、出力方路帯域設定記憶部２０１は、処理を行う方路についてのみ出力帯域を記憶するものとして説明を行う。しかし、本発明はこれに限定されるものではなく、出力方路帯域設定記憶部２０１は、複数の方路各々について出力帯域各々を記憶してもよい。なお、図４は、実施例１における出力方路帯域設定記憶部に記憶されている方路と出力帯域との一例を説明するための図である。図４では、方路「１」についての出力帯域だけではなく、その他の方路についての出力帯域についても併せて例示した。
【００６９】
また、出力方路帯域設定記憶部２０１が記憶する方路と出力帯域との対応付けは、例えば、フレーム送信装置１００を利用する利用者によって、予め入力されるものである。また、出力方路帯域設定記憶部２０１が方路に対応付けて記憶する出力帯域は、減算帯域変換部２１２によって用いられるものである。
【００７０】
状態判定閾値設定記憶部２０２（「閾値記憶手段」とも称する）は、ＦＩＦＯ状態判定処理部２１３に接続する。また、状態判定閾値設定記憶部２０２は、図５に示すように、判定閾値を記憶する。なお、この判定閾値とは、ＦＩＦＯ容量バイトカウンタ部２０３によって記憶されている蓄積容量値（後述）の閾値である。なお、図５は、実施例１における状態判定閾値設定記憶部２０２に記憶されている判定閾値の一例を説明するための図である。
【００７１】
具体的には、状態判定閾値設定記憶部２０２は、図５に示すように、判定閾値として、Ｆｕｌｌ判定やＥｍｐｔｙ判定に使用する閾値を記憶する。例えば、図５に示す例では、Ｆｕｌｌ判定に使用する閾値（「第一の閾値」とも称する）として、「１８００バイト以上」を記憶する。また、状態判定閾値設定記憶部２０２は、Ｅｍｐｔｙ判定に使用する閾値（「第二の閾値」とも称する）として、「６４バイト以下」を記憶する。
【００７２】
また、状態判定閾値設定記憶部２０２は、図５に示すように、Ｆｕｌｌ判定解除に使用する閾値（Ｆｕｌｌ判定を解除する際に用いる閾値）と、Ｅｍｐｔｙ判定解除に使用する閾値（Ｅｍｐｔｙ判定を解除する閾値）とを記憶する。例えば、図５に示す例では、状態判定閾値設定記憶部２０２は、Ｆｕｌｌ判定解除に使用する閾値として、「１６００バイト以下」を記憶する。また、状態判定閾値設定記憶部２０２は、Ｅｍｐｔｙ判定解除に使用する閾値として、「１２８バイト以上」を記憶する。
【００７３】
なお、ここで、Ｆｕｌｌ判定とは、ＦＩＦＯ状態判定処理部２１３によって、バッファ（受信側）に現在蓄積されている容量以上のフレームを蓄積可能でない状態であると判定されることを示す。このため、Ｆｕｌｌ判定に使用する閾値とは、例えば、バッファ（受信側）に蓄積可能なフレームの上限容量値などが用いられる。
【００７４】
また、Ｅｍｐｔｙ判定とは、ＦＩＦＯ状態判定処理部２１３によって、バッファ（受信側）に現在フレームが蓄積されていない空の状態であると判定されることを示す。このため、Ｅｍｐｔｙ判定に使用する閾値とは、例えば、バッファ（受信側）に蓄積可能なフレームの容量に比較して「０バイト」に近いとみなせる値などが用いられる。
【００７５】
また、Ｆｕｌｌ解除判定とは、ＦＩＦＯ状態判定処理部２１３によってＦｕｌｌ判定がされた後に、バッファ（受信側）に再びフレームを蓄積可能である状態であると判定されることを示す。このため、Ｆｕｌｌ判定に使用する閾値とは、例えば、バッファ（受信側）に蓄積可能なフレームの上限容量から、所定の容量が減算された値などが用いられる。
【００７６】
また、Ｅｍｐｔｙ解除判定とは、ＦＩＦＯ状態判定処理部２１３によってＥｍｐｔｙ判定がされた後に、バッファ（受信側）にフレームが蓄積されて空の状態ではない判定されることを示す。このため、Ｅｍｐｔｙ解除判定に使用する閾値とは、例えば、バッファ（受信側）に蓄積可能なフレームの容量に比較して「０バイト」に近い値から、所定の容量が加算された値などが用いられる。
【００７７】
なお、状態判定閾値設定記憶部２０２が記憶する閾値は、例えば、フレーム送信装置１００を利用する利用者によって、任意の値が予め入力されるものである。また、状態判定閾値設定記憶部２０２が記憶する閾値は、ＦＩＦＯ状態判定処理部２１３によって用いられるものである。
【００７８】
なお、実施例１では、状態判定閾値設定記憶部２０２は、処理を行う方路についてのみ判定閾値を記憶するものとして説明を行う。しかし、本発明はこれに限定されるものではなく、出力方路帯域設定記憶部２０１は、複数の方路各々について判定閾値各々を記憶してもよい。また、実施例１では、特に言及しないが、判定閾値は、方路それぞれに別個の判定閾値を用いてもよく、複数の方路にて同一の判定閾値を用いてもよい。
【００７９】
ＦＩＦＯ容量バイトカウンタ部２０３（「蓄積容量値記憶手段」とも称する）は、蓄積加算制御部２１１と減算帯域変換部２１２とＦＩＦＯ状態判定処理部２１３とに接続する。また、ＦＩＦＯ容量バイトカウンタ部２０３は、蓄積容量値を記憶する。なお、蓄積容量値とは、フレーム受信装置３００のバースト吸収用ＦＩＦＯ３２１に蓄積されているフレームの容量を示す値として、フレーム送信装置１００において演算した値である。
【００８０】
例えば、図６に示すように、ＦＩＦＯ容量バイトカウンタ部２０３は、方路「１」についての蓄積容量値「１５００バイト」を記憶する。なお、図６は、実施例１におけるＦＩＦＯ容量バイトカウンタ部２０３に記憶されている蓄積容量値の一例を説明するための図である。
【００８１】
なお、実施例１では、ＦＩＦＯ容量バイトカウンタ部２０３は、処理を行う方路についてのみ蓄積容量値を記憶するものとして説明を行う。しかし、本発明はこれに限定されるものではなく、ＦＩＦＯ容量バイトカウンタ部２０３は、複数の方路各々について蓄積容量値各々を記憶してもよい。例えば、図６には、方路「１」についての蓄積容量値だけではなく、その他の方路についての蓄積容量値についても併せて例示した。
【００８２】
また、ＦＩＦＯ容量バイトカウンタ部２０３によって記憶されている蓄積容量値は、蓄積加算制御部２１１や減算帯域変換部２１２によって、加算減算されるものである。また、ＦＩＦＯ容量バイトカウンタ部２０３によって記憶されている蓄積容量値は、ＦＩＦＯ状態判定処理部２１３によって用いられるものである。
【００８３】
また、図３に示すように、出力方路毎ＦＩＦＯ容量エミュレーション部２００は、制御部として、特に、蓄積加算制御部２１１と、減算帯域変換部２１２と、ＦＩＦＯ状態判定処理部２１３と、を有する。
【００８４】
蓄積加算制御部２１１（「加算手段」とも称する）は、ＦＩＦＯ状態判定処理部２１３に接続する。また、蓄積加算制御部２１１は、読出し制御部１３２にも接続する。また、蓄積加算制御部２１１は、蓄積容量値に値を加算する。具体的には、蓄積加算制御部２１１は、フレーム送信装置１００がフレームを送信するごとに、ＦＩＦＯ容量バイトカウンタ部２０３によって記憶されている蓄積容量値に、送信したフレームの容量を示す値を加算する。
【００８５】
例えば、蓄積加算制御部２１１は、読出し制御部１３２から、フレームが送信された「方路」と、送信されたフレームの「容量」とを受け付ける。ここで、蓄積加算制御部２１１は、当該蓄積加算制御部２１１が処理を行う方路と、受け付けた方路とが一致するかを判定する。そして、蓄積加算制御部２１１は、方路が一致する場合に、蓄積容量値に、読出し制御部１３２から受け付けた「容量」を加算する。
【００８６】
例えば、方路「１」についての蓄積容量値が「８００バイト」であるものとして説明する。ここで、蓄積加算制御部２１１は、読出し制御部１３２から、方路「１」と容量「１００バイト」とを受け付けると、当該蓄積加算制御部２１１が処理を行う方路「１」と受け付けた方路「１」とが一致するかを判定する。ここで、蓄積加算制御部２１１は、一致すると判定する。そして、蓄積加算制御部２１１は、蓄積容量値「８００バイト」に受け付けた「１００バイト」を加算し、「９００バイト」とする。
【００８７】
減算帯域変換部２１２は、出力方路帯域設定記憶部２０１とＦＩＦＯ容量バイトカウンタ部２０３とに接続する。また、減算帯域変換部２１２は、蓄積容量値から値を減算する。具体的には、減算帯域変換部２１２は、出力方路帯域設定記憶部２０１に記憶されている出力帯域から算出される周期ごとに、ＦＩＦＯ容量バイトカウンタ部２０３によって記憶されている蓄積容量値から、出力帯域から算出される読出容量を減算する。
【００８８】
例えば、方路「ｋ」について、周期「１クロック」と読出容量「１バイト」とである場合を例に、具体的に説明すると、減算帯域変換部２１２は、「ｋ」についての蓄積容量値から、「１クロック」経過する毎に、「１バイト」減算する。なお、「周期」と「読出容量」とは、出力帯域から算出される値であるため、方路各々について算出されるものである。
【００８９】
なお、出力帯域から算出される周期と読出容量について、さらに説明する。例えば、フレーム送信装置１００とフレーム受信装置３００とが１２５ＭＨｚで動作する場合を例に説明する。例えば、出力帯域が「１Ｇｂｐｓ」に対応する「周期」と「減算容量」とは、周期「１クロック」と読出容量「１バイト」となる。つまり、１２５ＭＨｚで動作する装置における「１クロック」ごとに、「１バイト」減算する。また、同様に、例えば、出力帯域が「１００Ｍｂｐｓ」に対応する「周期」と「減算容量」とは、周期「１０クロック」と読出容量「１バイト」となる。つまり、１２５ＭＨｚで動作する装置における「１０クロック」ごとに、「１バイト」減算する。
【００９０】
また、同様に、例えば、装置が１５０ＭＨｚで動作する場合には、例えば、出力帯域が「１Ｇｂｐｓ」に対応する「周期」と「減算容量」とは、周期「６クロック」と読出容量「５バイト」となる。つまり、１５０ＭＨｚで動作する装置における「６クロック」ごとに、「５バイト」減算する。
【００９１】
なお、減算帯域変換部２１２は、出力帯域から算出される周期と読出容量とを用いて減算処理を行う場合には、例えば、周期と読出容量とを記憶部（図には示していない。「周期容量記憶手段」とも称する）に記憶する。具体的な例をあげて説明すると、例えば、減算帯域変換部２１２は、キャッシュやメモリなどの記憶領域を有し、当該記憶領域に周期と読出容量とを記憶する。そして、減算帯域変換部２１２は、記憶領域に記憶している周期と読出容量とを用いて、減算処理を行う。
【００９２】
また、実施例１では、出力帯域から周期と読出容量とを算出する手法について説明したが、本発明はこれに限定されるものではない、例えば、利用者から周期と読出容量とを予め入力されて記憶することにより、減算帯域変換部２１２は、減算処理を行ってもよい。
【００９３】
ＦＩＦＯ状態判定処理部２１３（「送信制御手段」とも称する）は、状態判定閾値設定記憶部２０２とＦＩＦＯ容量バイトカウンタ部２０３とに接続する。また、ＦＩＦＯ状態判定処理部２１３は、状態判定閾値設定記憶部２０２によって記憶されている蓄積容量値を用いて、Ｆｕｌｌ判定や、Ｅｍｐｔｙ判定、Ｆｕｌｌ解除判定、Ｅｍｐｔｙ解除判定を行う。また、ＦＩＦＯ状態判定処理部２１３は、判定結果を読出し制御部１３２に伝える。
【００９４】
具体的には、ＦＩＦＯ状態判定処理部２１３は、ＦＩＦＯ容量バイトカウンタ部２０３によって記憶されている容量蓄積値を読み出す。そして、ＦＩＦＯ状態判定処理部２１３は、蓄積容量値が、状態判定閾値設定記憶部２０２に記憶されている閾値を満たしているかを判定する。そして、ＦＩＦＯ状態判定処理部２１３は、状態判定閾値設定記憶部２０２に記憶されている閾値を満たしていると判定すると、判定結果を読出し制御部１３２に伝達する。
【００９５】
具体的な例をあげて説明すると、ＦＩＦＯ状態判定処理部２１３は、蓄積容量値が「１８００」である場合に、「Ｆｕｌｌ判定」についての閾値「１８００バイト以上」を満たしていると判定する。そして、ＦＩＦＯ状態判定処理部２１３は、Ｆｕｌｌ判定であると判定した旨の情報であるＦｕｌｌ判定信号を、読出し制御部１３２に伝達する。
【００９６】
なお、ＦＩＦＯ状態判定処理部２１３は、例えば、一定周期ごとに判定処理を行う。なお、本発明は、ＦＩＦＯ状態判定処理部２１３が一定周期ごとに判定処理を行う場合に限定されるものではない。例えば、ＦＩＦＯ容量バイトカウンタ部２０３によって記憶されている蓄積容量値に値が加算される毎に判定処理を行ってもよい。また、例えば、ＦＩＦＯ状態判定処理部２１３は、ＦＩＦＯ容量バイトカウンタ部２０３によって記憶されている蓄積容量値に値が減算される毎に判定処理を行ってもよい。
【００９７】
なお、開示のフレーム送信装置１００は、例えば、フレーム送信装置とフレーム受信装置とが物理的に分離している装置において、用いられるものである。例えば、フレーム送信装置とフレーム受信装置とは、装置間、パッケージ間、デバイス間に分散配置され、その間が全出力方路を多重した伝送路にて接続される構成となる。このため、開示のフレーム送信装置１００は、開示のフレーム送信装置１００から送信されるフレームを受信する装置が同一の装置内に存在する場合においても適用することが可能である。
【００９８】
［フレーム送信装置による処理］
次に、図７〜図１０を用いて、フレーム送信装置による処理を説明する。なお、以下では、蓄積容量値加算処理の流れの一例について説明し、続いて、蓄積容量値減算処理の流れの一例について説明する。そして、判定処理の流れの一例について説明し、フレーム送信処理制御の流れの一例について説明する。
【００９９】
［蓄積容量値加算処理］
図７を用いて、実施例１に係るフレーム送信装置１００による蓄積容量値加算処理の流れの一例について説明する。なお、図７は、実施例１に係るフレーム送信装置１００による蓄積容量値加算処理の流れの一例を示すフローチャートである。
【０１００】
図７に示すように、蓄積加算制御部２１１は、読出し制御部１３２から、フレームが送信された「方路」と、送信されたフレームの「容量」とを受け付けると（ステップＳ１０１肯定）。方路が一致するかを判定する（ステップＳ１０２）。つまり、蓄積加算制御部２１１は、当該蓄積加算制御部２１１が処理を行う方路と、受け付けた方路とが一致するかを判定する。
【０１０１】
そして、蓄積加算制御部２１１は、方路が一致する場合には（ステップＳ１０２肯定）、蓄積容量値に、読出し制御部１３２から受け付けた「容量」を加算する（ステップＳ１０３）。例えば、蓄積加算制御部２１１が処理を行う方路が方路「１」であり、方路「１」についての蓄積容量値は、「８００バイト」であるものとする。ここで、蓄積加算制御部２１１は、読出し制御部１３２から、方路「１」と容量「１００バイト」とを受け付けると、蓄積容量値「８００バイト」に「１００バイト」を加算し、「９００バイト」とする。
【０１０２】
一方、蓄積加算制御部２１１は、方路が一致しない場合には（ステップＳ１０２否定）、処理を終了する。
【０１０３】
［蓄積容量値減算処理］
また、図８を用いて、実施例１に係るフレーム送信装置１００による蓄積容量値減算処理の流れの一例ついて説明する。なお、図８は、実施例１に係るフレーム送信装置１００による蓄積容量値減算処理の流れの一例を示すフローチャートである。
【０１０４】
図８に示すように、減算帯域変換部２１２は、周期となると（ステップＳ２０１肯定）、蓄積容量値を減算する（ステップＳ２０２）。つまり、減算帯域変換部２１２は、周期ごとに、ＦＩＦＯ容量バイトカウンタ部２０３によって記憶されている蓄積容量値から、出力帯域から算出される読出容量を減算する。例えば、方路「ｋ」について、周期「１クロック」と読出容量「１バイト」とである場合を例に、具体的に説明すると、減算帯域変換部２１２は、「ｋ」についての蓄積容量値から、「１クロック」経過する毎に、「１バイト」減算する。
【０１０５】
また、減算帯域変換部２１２は、周期となるごとに、蓄積容量値から読出容量を減算する処理を繰り返す。
【０１０６】
［判定処理］
また、図９を用いて、実施例１に係るフレーム送信装置１００による判定処理の流れの一例ついて説明する。なお、図９は、実施例１に係るフレーム送信装置１００による判定処理の流れの一例を示すフローチャートである。
【０１０７】
図９に示すように、ＦＩＦＯ状態判定処理部２１３は、判定タイミングとなると（ステップＳ３０１肯定）、ＦＩＦＯ容量バイトカウンタ部２０３によって記憶されている容量蓄積値を読み出す（ステップＳ３０２）。例えば、ＦＩＦＯ状態判定処理部２１３は、蓄積容量値「１８００」を読み出す。
【０１０８】
そして、ＦＩＦＯ状態判定処理部２１３は、蓄積容量値が、状態判定閾値設定記憶部２０２に記憶されている閾値を満たしているかを判定する（ステップＳ３０３）。そして、ＦＩＦＯ状態判定処理部２１３は、状態判定閾値設定記憶部２０２に記憶されている判定閾値を満たしていると判定すると（ステップＳ３０３肯定）、判定結果を読出し制御部１３２に伝達する（ステップＳ３０４）。例えば、ＦＩＦＯ状態判定処理部２１３は、「Ｆｕｌｌ判定」についての閾値「１８００バイト以上」を満たしていると判定する。そして、ＦＩＦＯ状態判定処理部２１３は、Ｆｕｌｌ判定であると判定した旨の情報であるＦｕｌｌ判定信号を、読出し制御部１３２に伝達する。
【０１０９】
一方、ＦＩＦＯ状態判定処理部２１３は、状態判定閾値設定記憶部２０２に記憶されている判定閾値をいずれも満たさない場合には（ステップＳ３０３否定）、処理を終了する。
【０１１０】
［フレーム送信処理制御］
また、図１０を用いて、実施例１に係るフレーム送信装置１００によるフレーム送信処理制御の流れの一例ついて説明する。なお、図１０は、実施例１に係るフレーム送信装置１００によるフレーム送信処理制御の流れの一例を示すフローチャートである。
【０１１１】
図１０に示すように、読出し制御部１３２は、Ｆｕｌｌ判定信号を受け付けた場合には（ステップＳ４０１肯定）、スキップ処理を行う（ステップＳ４０２）。つまり、読出し制御部１３２は、受け付けた方路に対してのフレーム送信を停止する設定を行う。
【０１１２】
また、読出し制御部１３２は、ＦＵＬＬ判定解除信号を受け付けた場合には（ステップＳ４０１否定およびＳ４０３肯定）、スキップ処理を解除する（ステップＳ４０４）。つまり、読出し制御部１３２は、受け付けた方路に対してのフレーム送信を停止する設定を解除する。
【０１１３】
また、読出し制御部１３２は、Ｅｍｐｔｙ判定信号を受け付けた場合には（ステップＳ４０１否定およびＳ４０３否定およびＳ４０５肯定）、優先割り当て処理を行う（ステップＳ４０６）。つまり、読出し制御部１３２は、受け付けた方路に対してのフレーム送信を優先する設定を行う。
【０１１４】
また、読出し制御部１３２は、Ｅｍｐｔｙ判定解除信号を受け付けた場合には（ステップＳ４０１否定およびＳ４０３否定およびＳ４０５否定およびＳ４０７肯定）、優先割り当て処理を解除する（ステップＳ４０８）。つまり、読出し制御部１３２は、受け付けた方路に対してのフレーム送信を優先する設定を解除する。
【０１１５】
そして、読出し制御部１３２は、方路各々について読み出し制御を行う際の設定を用いて、読み出し処理を制御する（ステップＳ４０９）。
【０１１６】
なお、読出し制御部１３２は、なんら信号を受け付けなかった場合には（ステップＳ４０１否定およびＳ４０３否定およびＳ４０５否定およびＳ４０７否定）、方路各々について読み出し制御を行う際の設定を、信号を受け付けるまで変更しない。
【０１１７】
［実施例１の効果］
上記したように、実施例１によれば、開示のフレーム送信装置１００は、蓄積容量値を記憶する。そして、開示のフレーム送信装置１００は、フレームを送信するごとに、フレームの容量を示す値を蓄積容量値に加算し、周期ごとに読出容量を示す値を蓄積容量値から減算する。そして、開示のフレーム送信装置１００は、蓄積容量値を用いてフレームの送信を制御する。このようなことから、開示のフレーム送信装置１００は、フレーム受信装置３００からフレーム送信装置１００へのトラフィックを軽減することが可能である。
【０１１８】
具体的には、従来の手法では、図１１に示すように、フレーム送信装置は、フレーム受信装置が有するバッファのフレーム蓄積情報をフレーム受信装置から受信し、受信したフレーム蓄積情報を用いて、フレームの送信処理を制御していた。なお、図１１は、実施例１に係るフレーム送信装置１００の効果を説明するための図である。
【０１１９】
このような従来の手法と比較して、開示のフレーム送信装置１００では、フレーム送信装置自身が、フレーム受信装置３００のフレーム蓄積状態をエミュレーションする。そして、フレーム受信装置３００から受信するフレーム蓄積情報ではなく、エミュレーション結果を用いてフレーム送信処理を制御するので、図１２に示すように、フレーム受信装置３００からフレーム送信装置１００へのトラフィックを軽減（または、不要に）することが可能である。
【０１２０】
また、開示のフレーム送信装置１００によれば、従来の手法に比較して、フレーム送信装置１００からフレーム受信装置３００にフレーム蓄積情報を送信しなくても、フレーム送信装置１００のフレーム蓄積情報に応じたフレーム送信処理が可能である。このため、例えば、フレーム受信装置３００からフレーム送信装置１００への通信のため回路や接続配線を削減または簡略化することが可能である。また、開示のフレーム送信装置１００によれば、フレーム受信装置３００にて発生するバーストを最小限に抑えることが可能である。
【０１２１】
また、従来の手法では、アンダーフローを防止するために、伝送路帯域を、「伝送路の実際の帯域＋α」としていた。しかし、このような従来の手法と比較して、開示のフレーム送信装置１００によれば、ある方路（ポート）においてアンダーフローが発生する可能性が高いと判定された場合には（例えば、Ｅｍｐｔｙ判定がされた場合）、当該方路に対する送信を優先的に行うことが可能である。結果、開示のフレーム送信装置１００によれば、多方路多重伝送路の伝送路帯域をΣ全出力方路帯域で実現可能となり、伝送路帯域を＋α以上にアップする必要がなく、動作周波数を抑えることが可能である。なお、Σ出力方路帯域とは、方路各々についての出力帯域の合計となる帯域である。
【０１２２】
また、従来の手法と比較してフレーム受信装置３００側にて、膨大な容量を有するバースト吸収用ＦＩＦＯ部３２１を実装する必要がなくなり、バースト吸収用ＦＩＦＯ部３２１の容量を最大送出バイト長分に抑えることが可能である。
【実施例２】
【０１２３】
さて、これまで、実施例１では、フレーム送信装置１００のクロック信号の偏差（クロック偏差）を解消する手法について特に言及しなかった。しかし、本発明はこれに限定されるものではない。実施例２では、フレーム送信装置１００のクロック偏差を解消する手法について説明する。
【０１２４】
なお、クロック偏差とは、フレーム受信装置３００のクロック信号と比較した場合におけるフレーム送信装置１００のクロック信号のズレである。例えば、クロック偏差は、フレーム送信装置１００とフレーム受信装置３００とが用いるクロック信号が、それぞれ別系統のクロック信号である場合に生じるものである。
【０１２５】
そこで、以下では、図１３および図１４を用いて、実施例２として、クロック信号の偏差を解消する手法について説明する。なお、以下では、実施例２に係るフレーム送信装置１００を説明する上では、実施例１に係るフレーム送信装置１００と同様の点については、簡単に説明し、または、説明を省略する。
【０１２６】
図１３に示すように、実施例２に係るフレーム受信装置３００は、図２に示したフレーム受信装置３００の構成に加えて、送信部（受信装置）４０１をさらに有する。なお、図１３は、実施例２に係るフレーム送信装置を説明するための図である。
【０１２７】
送信部（受信装置）４０１は、光通信回線等を介して、フレーム送信装置１００（受信部（送信装置）４０２）に接続している。また、送信部（受信装置）４０１は、フレームをフレーム送信装置１００に送信する。なお、例えば、送信部（受信装置）４０１は、実施例１に係るフレーム送信装置１００と同様の構成を有するものである。
【０１２８】
また、図１３に示すように、実施例２に係るフレーム送信装置１００は、図２に示した実施例１に係るフレーム送信装置１００の構成に加えて、受信部（送信装置）４０２（「受信手段」とも称する）と、クロック検出部４０３（「クロック検出手段」とも称する）と、をさらに有する。
【０１２９】
受信部（送信装置）４０２は、クロック検出部４０３に接続する。また、受信部（送信装置）４０２は、光通信回線等を介して、フレーム受信装置３００（送信部（受信装置）４０１）に接続している。また、受信部（送信装置）４０２は、フレーム受信装置３００からフレーム送信装置１００に送信されたフレームを受信する。なお、例えば、受信部（送信装置）４０２は、実施例１に係るフレーム受信装置３００と同様の構成を有するものである。
【０１３０】
クロック検出部４０３は、受信部（送信装置）４０２と出力方路毎ＦＩＦＯ容量エミュレーション部２００各々とに接続している。また、クロック検出部４０３は、受信部（送信装置）４０２によってフレームと並走され伝送されるクロックを受信してクロック信号を取得する。また、クロック信号を取得する別方法として、クロックがフレームと並走されない場合はＣＤＲ（クロック・データ・リカバリ）機能を受信部（送信装置）４０２に設けクロックを再生する。そのＣＤＲ機能とは、具体的にＰＬＬ（位相同期回路）によりフレームデータのエッジタイミングを検出し、ＶＣＯ（電圧制御発信器）の発信周波数および位相を調整する機能を用いてクロックを再生してクロック信号を取得する。そして、クロック検出部４０３は、取得したクロック信号を、出力方路毎ＦＩＦＯ容量エミュレーション部２００各々（減算帯域変換部２１２各々）に伝達する。
【０１３１】
減算帯域変換部２１２は、クロック検出部４０３からクロック信号を受信する。そして、減算帯域変換部２１２は、クロック検出部４０３によって検出されたクロック信号を用いて、減算処理を行う。
【０１３２】
なお、実施例２の意義について、付言する。フレーム送信装置１００とフレーム受信装置３００とは、それぞれ独自のクロック信号に基づいて処理を行うものである。そして、フレーム送信装置１００が用いるクロック信号に、フレーム受信装置３００が用いるクロック信号に比較してクロック偏差が生じる場合がある。ここで、クロック偏差が生じると、ＦＩＦＯ容量バイトカウンタ部２０３の蓄積容量値と、バースト吸収用ＦＩＦＯ３２１に実際に蓄積されているフレームの容量とにズレが発生することになる。
【０１３３】
例えば、フレーム送信装置１００が用いるクロック信号に比較して、フレーム受信装置３００が用いるクロック信号が遅い場合には、減算帯域変換部２１２は、実際の周期よりも早い周期で減算処理を行うことになる。また、フレーム送信装置１００が用いるクロック信号に比較して、フレーム受信装置３００が用いるクロック信号が早い場合には、減算帯域変換部２１２は、実際の周期よりも遅い周期で減算処理を行うことになる。結果、ＦＩＦＯ容量バイトカウンタ部２０３の蓄積容量値と、バースト吸収用ＦＩＦＯ３２１に実際に蓄積されているフレームの容量とにズレが発生することになる。実施例２に係るフレーム送信装置１００は、クロック偏差によるズレを防止することが可能となるものである。
【０１３４】
［実施例２に係るフレーム送信装置の処理］
次に、図１４を用いて、実施例２に係るフレーム送信装置１００の処理の流れの一例について説明する。なお、図１４は、実施例２に係るフレーム送信装置１００による処理の流れの一例を説明するためのフローチャートである。
【０１３５】
図１４に示すように、実施例２に係るフレーム送信装置１００では、フレームを受信すると（ステップＳ５０１肯定）、クロック検出部４０３は、クロック信号を取得する（ステップＳ５０２）。そして、クロック検出部４０３は、取得したクロック信号を減算帯域変換部２１２各々に伝達する（ステップＳ５０３）。なお、減算帯域変換部２１２各々は、クロック検出部４０３からクロック信号が伝達されると、伝達されたクロック信号を用いて減算処理を行うものである。
【０１３６】
［実施例２の効果］
上記したように、実施例２によれば、開示のフレーム送信装置１００は、フレーム受信装置３００からフレーム送信装置１００に送信されたフレームを受信し、受信したフレームからクロック信号を取得する。そして、開示のフレーム送信装置１００は、取得したクロック信号を用いて減算処理を行う。これにより、開示のフレーム送信装置１００は、フレーム送信装置１００とフレーム受信装置３００とにクロック信号の偏差が存在する場合に、当該偏差を解消し、フレーム送信装置１００におけるエミュレーションの精度を高めることが可能である。
【実施例３】
【０１３７】
さて、これまで、実施例１と実施例２では、フレーム送信装置１００が、フレーム蓄積情報をフレーム受信装置３００から受信する手法について、特に言及しなかった。しかし、本発明はこれに限定されるものではない。具体的には、フレーム受信装置３００は、バッファ（受信側）に蓄積されているフレームが所定の上限値を超えた場合に、上限値を超えた旨の情報をフレーム送信装置１００に送信してもよい。
【０１３８】
そこで、以下では、図１５と図１６を用いて、実施例３として、フレーム送信装置１００が、上限値を超えた旨の情報をハードまたはファームによりフレーム受信装置３００から通知される手法について説明する。なお、以下では、実施例３に係るフレーム送信装置１００を説明する上では、実施例１または実施例２に係るフレーム送信装置１００と同様の点については、簡単に説明し、または、説明を省略する。
【０１３９】
図１５の（１）に示すように、実施例３におけるフレーム受信装置３００は、バッファ（受信側）に蓄積されているフレームの容量が所定の上限値を超過すると、所定の上限値を超過した旨を示す超過情報をフレーム受信装置３００に送信する。なお、図１５は、実施例３に係るフレーム送信装置を説明するための図である。
【０１４０】
例えば、方路「１」から送信されたフレームを蓄積するバッファ（受信側）「１」の所定の上限値が「１８００バイト」である場合を例に説明する。フレーム受信装置３００は、バッファ（受信側）「１」にフレームが１８００バイト以上蓄積されると、方路「１」についての超過情報（例えば、「バッファＦｕｌｌ」）をフレーム送信装置１００にする。
【０１４１】
実施例３に係るフレーム送信装置１００では、超過情報受信部５０１（「超過情報受信手段」とも称する）と、補正部５０２（「補正手段」とも称する）と、をさらに有する。
【０１４２】
超過情報受信部５０１は、補正部５０２に接続する。また、超過情報受信部５０１は、光通信回線等を介して、フレーム受信装置３００に接続する。また、超過情報受信部５０１は、フレーム受信装置３００から超過情報を受信する。そして、超過情報受信部５０１は、受信した超過情報を、補正部５０２に伝達する。
【０１４３】
例えば、超過情報受信部５０１は、方路「１」についての超過情報（例えば、「バッファＦｕｌｌ」）をフレーム受信装置３００から受信する。そして、超過情報受信部５０１は、方路「１」についての超過情報を、補正部５０２に伝達する。
【０１４４】
補正部５０２は、超過情報受信部５０１とＦＩＦＯ容量バイトカウンタ部２０３とに接続する。また、補正部５０２は、超過情報受信部５０１によって超過情報が受信されると、ＦＩＦＯ容量バイトカウンタ部２０３によって記憶されている蓄積容量値を、所定の上限値に補正する。
【０１４５】
例えば、補正部５０２は、方路「１」についての超過情報が超過情報受信部５０１から伝達される。そして、補正部５０２は、方路「１」について蓄積容量値を、所定の上限値（例えば、「１８００バイト」）に補正する。
【０１４６】
［実施例３に係るフレーム送信装置の処理］
次に、図１６を用いて実施例３に係るフレーム送信装置１００による処理の流れの一例について説明する。なお、図１６は、実施例３に係るフレーム送信装置１００による処理の流れの一例を説明するためのフローチャートである。
【０１４７】
図１６に示すように、実施例３に係るフレーム送信装置１００では、超過情報をフレーム受信装置３００から受信すると（ステップＳ６０１肯定）、補正部５０２は、蓄積容量値を所定の上限値に補正する（ステップＳ６０２）。例えば、方路「１」についての超過情報が超過情報受信部５０１から伝達されると、方路「１」について蓄積容量値を、所定の上限値に補正する。
【０１４８】
［実施例３の効果］
上記したように、実施例３によれば、開示のフレーム送信装置１００は、超過情報をフレーム受信装置３００から受信する。そして、開示のフレーム送信装置１００は、超過情報を受信すると、蓄積容量値を、所定の上限値に補正する。これにより、開示のフレーム送信装置１００によれば、フレーム受信装置３００においてバッファが満杯になったときに、蓄積容量値を補正することができる。つまり、開示のフレーム送信装置１００によれば、フレーム受信装置３００からフレーム送信装置１００へのトラフィックを従来の手法に比較して抑えつつ、フレーム送信装置１００におけるエミュレーションの精度を高めることが可能である。
【実施例４】
【０１４９】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、その他の実施例にて実施されてよいものである。そこで、以下に、その他の実施例について説明する。
【０１５０】
［出力方路毎ＦＩＦＯ容量エミュレーション部］
例えば、実施例１〜実施例３では、バッファ制御部１１０は、方路それぞれについて、出力方路毎ＦＩＦＯ容量エミュレーション部２００を有するものとして説明したが、本発明はこれに限定されるものではない。例えば、バッファ制御部１１０は、一つの出力方路毎ＦＩＦＯ容量エミュレーション部２００が複数の方路について処理を行うことにより、方路の数よりも少ない数の（例えば、１個の）出力方路毎ＦＩＦＯ容量エミュレーション部２００のみ有してもよい。
【０１５１】
［実施例の組み合わせについて］
例えば、実施例１〜実施例３では、（１）フレーム送信装置にてエミュレーションした蓄積容量値を用いてフレーム送信制御を行う手法と、（２）クロック偏差を解消する手法と、（３）フレーム受信装置３００から超過情報を受信する手法と、についてそれぞれ説明した。ここで、実施例１〜実施例３では、特に言及しなかったが、開示のフレーム送信装置１００では、（１）に加えて、（２）と（３）との内、いずれか一方、または、その両方を併せて実施してもよい。
【０１５２】
［システム構成］
また、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については（例えば、図１〜図１６）、特記する場合を除いて任意に変更することができる。
【０１５３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図３を例に説明すると、蓄積加算制御部２１１と減算帯域変換部２１２とを統合してもよい。
【０１５４】
［プログラム］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１７を用いて、上記の実施例と同様の機能を有するフレーム送信プログラムを実行するコンピュータの一例を説明する。なお、図１７は、実施例１に係るフレーム送信装置のプログラムを説明するための図である。
【０１５５】
同図に示すように、実施例１におけるフレーム送信装置３０００は、多重部３００１、読出し制御部３００２、宛先方路毎バッファ３００３、ＣＰＵ３０１０、ＲＯＭ３０１１、ＨＤＤ３０１２、ＲＡＭ３０１３をバス３００９などで接続して構成されている。
【０１５６】
ＲＯＭ３０１１には、上記の実施例１で示した蓄積加算制御部２１１と、減算帯域変換部２１２と、ＦＩＦＯ状態判定処理部２１３と同様の機能を発揮する制御プログラム、つまり、同図に示すように、蓄積加算制御プログラム３０１１ａと、減算帯域変換プログラム３０１１ｂと、ＦＩＦＯ状態判定処理プログラム３０１１ｃと、が予め記憶されている。なお、これらのプログラム３０１１ａ〜３０１１ｃについては、図２や図３に示したフレーム送信装置の各構成要素と同様、適宜統合または分離してもよい。
【０１５７】
そして、ＣＰＵ３０１０が、これらのプログラム３０１１ａ〜３０１１ｃをＲＯＭ３０１１から読み出して実行することにより、図１７に示すように、各プログラム３０１１ａ〜３０１１ｃについては、蓄積加算制御プロセス３０１０ａと、減算帯域変換プロセス３０１０ｂと、ＦＩＦＯ状態判定処理プロセス３０１０ｃとして機能するようになる。なお、各プロセス３０１０ａ〜３０１０ｃは、図２や図３に示した、蓄積加算制御部２１１と、減算帯域変換部２１２と、ＦＩＦＯ状態判定処理部２１３とにそれぞれ対応する。
【０１５８】
そして、ＨＤＤ３０１２には、出力方路帯域設定テーブル３０１２ａと、状態判定閾値設定テーブル３０１２ｂと、蓄積容量値テーブル３０１２ｃと、が設けられている。なお、各テーブル３０１２ａ〜３０１２ｃは、図３に示した、出力方路帯域設定記憶部２０１と、状態判定閾値設定記憶部２０２と、ＦＩＦＯ容量バイトカウンタ部２０３とにそれぞれ対応する。
【０１５９】
そして、ＣＰＵ３０１０は、出力方路帯域設定テーブル３０１２ａと、状態判定閾値設定テーブル３０１２ｂと、蓄積容量値テーブル３０１２ｃと、を読み出してＲＡＭ３０１３に格納し、ＲＡＭ３０１３に格納された出力方路帯域設定データ３０１３ａと、状態判定閾値設定データ３０１３ｂと、蓄積容量値データ３０１３ｃとを用いて、フレーム送信プログラムを実行する。
【０１６０】
［その他］
なお、本実施例で説明したフレーム送信装置は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【０１６１】
以上の実施例１〜４を含む実施形態に関し、更に以下の付記を開示する。
【０１６２】
（付記１）フレーム受信装置にフレームを送信するフレーム送信装置であって、
前記フレーム受信装置のバッファに蓄積されている前記フレームの容量を示す値として、前記フレーム送信装置において演算した値である蓄積容量値を記憶する蓄積容量値記憶手段と、
前記フレーム受信装置が前記バッファに蓄積されているフレームを当該バッファから読み出す周期と、前記フレーム受信装置が当該周期ごとに読み出すフレームの読出容量とを記憶する周期容量記憶手段と、
フレームを送信するごとに、前記蓄積容量値記憶手段によって記憶されている蓄積容量値に、当該フレームの容量を示す値を加算する加算手段と、
前記周期容量記憶手段によって記憶されている周期ごとに、前記蓄積容量値記憶手段によって記憶されている蓄積容量値から、当該周期容量記憶手段によって記憶されている前記フレームの読出容量を示す値を減算する減算手段と、
前記蓄積容量値記憶手段によって記憶されている蓄積容量値を用いてフレームの送信を制御する送信制御手段と、
を備えたことを特徴とするフレーム送信装置。
【０１６３】
（付記２）前記フレーム送信装置は、複数の方路各々に対してフレームを送信するものであり、前記フレーム受信装置は、当該方路各々に対して送信されたフレームを当該方路ごとのバッファ各々に蓄積するものであって、
前記フレーム送信装置は、
前記方路各々に対応付けて、前記蓄積容量値記憶手段によって記憶されている蓄積容量値の閾値として、第一の閾値各々と第二の閾値各々とを記憶する閾値記憶手段をさらに備え、
前記蓄積容量値記憶手段は、前記方路各々に対応付けて、前記蓄積容量値各々を記憶し、
前記周期容量記憶手段は、前記方路各々に対応付けて、前記周期と前記容量との対応付け各々を記憶し、
前記加算手段は、フレームを送信するごとに、前記蓄積容量値記憶手段によってフレームを送信した方路に対応付けて記憶されている蓄積容量値に、当該フレームの容量を示す値を加算し、
前記減算手段は、前記方路各々について、当該方路に対応付けられた前記周期ごとに、当該方路に対応付けられた蓄積容量値から、当該方路に対応付けられた前記読出容量を示す値を減算し、
前記送信制御手段は、前記蓄積容量値記憶手段によって方路各々について記憶されている蓄積容量値各々を用いてフレームの送信をラウンドロビンにて制御する際に、
前記蓄積容量値記憶手段によって前記方路各々に対応付けて記憶されている蓄積容量値各々が、前記閾値記憶手段によって当該方路各々に対応付けられて記憶されている前記第一の閾値より大きい値であるかを判定し、大きな値であると判定した蓄積容量値が対応付けられた方路に対する送信を停止し、
かつ、
前記蓄積容量値各々が、前記閾値記憶手段によって当該方路各々に対応付けられて記憶されている前記第二の閾値より小さい値であるかを判定し、小さな値であると判定した蓄積容量値が対応付けられた方路に対する送信を、小さな値であると判定されていない蓄積容量値に対応付けられた方路に対する送信に比較して優先することを特徴とする付記１に記載のフレーム送信装置。
【０１６４】
（付記３）前記フレーム送信装置と前記フレーム受信装置とは、それぞれ独自のクロック信号に基づいて処理を行うものであって、
前記フレーム送信装置は、
前記フレーム送信装置から送信されたフレームを受信するフレーム受信装置から当該フレーム送信装置に送信されたフレームを受信する受信手段と、
前記受信手段によって受信されたフレームからクロック信号を取得するクロック取得手段と、
をさらに備え、
前記減算手段は、前記クロック取得手段によって取得されたクロック信号を用いて、減算処理を行うことを特徴とする付記１または２に記載のフレーム送信装置。
【０１６５】
（付記４）前記フレーム送信装置は、
前記フレーム受信装置のバッファが所定の上限値を超過した旨を示す超過情報を前記フレーム受信装置から受信する超過情報受信手段と、
前記超過情報受信手段によって前記超過情報が受信されると、前記蓄積容量値記憶手段によって記憶されている前記蓄積容量値を、前記所定の上限値に補正する補正手段と、
をさらに備えることを特徴とする付記１〜３のいずれか一つに記載のフレーム送信装置。
【０１６６】
（付記５）フレーム受信装置にフレームを送信するフレーム送信方法であって、
前記フレーム受信装置のバッファに蓄積されている前記フレームの容量を示す値として、前記フレーム送信装置において演算した値である蓄積容量値を記憶する蓄積容量値記憶部に記憶されている蓄積容量値に、フレームを送信するごとに、当該フレームの容量を示す値を加算する加算工程と、
前記フレーム受信装置が前記バッファに蓄積されているフレームを当該バッファから読み出す周期ごとに、前記蓄積容量値記憶部によって記憶されている蓄積容量値から、前記フレーム受信装置が当該周期ごとに読み出すフレームの読出容量を示す値を減算する減算工程と、
前記蓄積容量値記憶部によって記憶されている蓄積容量値を用いてフレームの送信を制御する送信制御工程と、
を含んだことを特徴とするフレーム送信方法。
【０１６７】
（付記６）フレーム受信装置にフレームを送信するフレーム送信装置を制御する処理をコンピュータに実行させるフレーム送信プログラムであって、
前記フレーム受信装置のバッファに蓄積されている前記フレームの容量を示す値として、前記フレーム送信装置において演算した値である蓄積容量値を記憶する蓄積容量値記憶部に記憶されている蓄積容量値に、フレームを送信するごとに、当該フレームの容量を示す値を加算する加算手順と、
前記フレーム受信装置が前記バッファに蓄積されているフレームを当該バッファから読み出す周期ごとに、前記蓄積容量値記憶部によって記憶されている蓄積容量値から、前記フレーム受信装置が当該周期ごとに読み出すフレームの読出容量を示す値を減算する減算手順と、
前記蓄積容量値記憶部によって記憶されている蓄積容量値を用いてフレームの送信を制御する送信制御手順と、
をコンピュータに実行させることを特徴とするフレーム送信プログラム。
【図面の簡単な説明】
【０１６８】
【図１】実施例１に係るフレーム送信装置の概要を説明するための図である。
【図２】実施例１に係るフレーム送信装置の構成を説明するためのブロック図である。
【図３】実施例１における出力方路毎ＦＩＦＯ容量エミュレーション部の構成を説明するためのブロック図である。
【図４】実施例１における出力方路帯域設定記憶部に記憶されている出力帯域の一例を説明するための図である。
【図５】実施例１における状態判定閾値設定記憶部に記憶されている判定閾値の一例を説明するための図である。
【図６】実施例１におけるＦＩＦＯ容量バイトカウンタ部に記憶されている蓄積容量値の一例を説明するための図である。
【図７】実施例１に係るフレーム送信装置による蓄積容量値加算処理の流れの一例を示すフローチャートである。
【図８】実施例１に係るフレーム送信装置による蓄積容量値減算処理の流れの一例を示すフローチャートである。
【図９】実施例１に係るフレーム送信装置による判定処理の流れの一例を示すフローチャートである。
【図１０】実施例１に係るフレーム送信装置によるフレーム送信処理制御の流れの一例を示すフローチャートである。
【図１１】実施例１に係るフレーム送信装置の効果を説明するための図である。
【図１２】実施例１に係るフレーム送信装置の効果を説明するための図である。
【図１３】実施例２に係るフレーム送信装置を説明するための図である。
【図１４】実施例２に係るフレーム送信装置による処理の流れの一例を説明するためのフローチャートである。
【図１５】実施例３に係るフレーム送信装置を説明するための図である。
【図１６】実施例３に係るフレーム送信装置による処理の流れの一例を説明するためのフローチャートである。
【図１７】実施例１に係るフレーム送信装置のプログラムを説明するための図である。
【符号の説明】
【０１６９】
１００  フレーム送信装置
１１０  バッファ制御部
１２１  宛先方路毎バッファ
１３１  多重部
１３２  読出し制御部
２００  出力方路毎ＦＩＦＯ容量エミュレーション部
２０１  出力方路帯域設定記憶部
２０２  状態判定閾値設定記憶部
２０３  ＦＩＦＯ容量バイトカウンタ部
２１１  蓄積加算制御部
２１２  減算帯域変換部
２１３  ＦＩＦＯ状態判定処理部
３００  フレーム受信装置
３１０  出力方路振分け部
３２１  バースト吸収用ＦＩＦＯ
３３１  振分け部
４０１  送信部（受信装置）
４０２  受信部（送信装置）
４０３  クロック検出部
５０１  超過情報受信部
５０２  補正部
【図１】
0004900317.tif 000002
【図２】
0004900317.tif 000003
【図３】
0004900317.tif 000004
【図４】
0004900317.tif 000005
【図５】
0004900317.tif 000006
【図６】
0004900317.tif 000007
【図７】
0004900317.tif 000008
【図８】
0004900317.tif 000009
【図９】
0004900317.tif 000010
【図１０】
0004900317.tif 000011
【図１１】
0004900317.tif 000012
【図１２】
0004900317.tif 000013
【図１３】
0004900317.tif 000014
【図１４】
0004900317.tif 000015
【図１５】
0004900317.tif 000016
【図１６】
0004900317.tif 000017
【図１７】
0004900317.tif 000018