(57)【要約】【課題】フレームを送受信する通信装置において、伝送路の利用率が高い場合でもクロック誤差が原因でバッファメモリが溢れることを防止する。【解決手段】フレーム保持手段１１は、送信待ちのフレームを保持する。送信手段１３は、制御信号に基づいてフレーム保持手段１１からフレームを順次取り出し伝送路４ｂへ出力する。送信制御手段１４は、初期動作としてＴクロック（Ｔ≧２）周期で制御信号を発信すると共に、Ｎ×Ｔクロック（Ｎ≧２）毎に待ちフレーム数を取得する。待ちフレーム数がＫ個（Ｋ≧１）の場合、少なくとも一部の発信間隔をＴクロックより短くすることで、次のＮ×Ｔクロックの間にＮ＋Ｋ回の制御信号を発信する。【選択図】図１
2008092018.tif 000002
【特許請求の範囲】
【請求項１】
伝送路を介して非同期でフレームを送受信する通信装置において、
送信待ちの前記フレームを保持するフレーム保持手段と、
前記フレームを送信するタイミングを示す制御信号に基づいて、前記フレーム保持手段から前記フレームを順次取り出し前記伝送路へ出力する送信手段と、
初期動作としてＴクロック（Ｔは２以上の整数）周期で前記制御信号を発信すると共に、Ｎ×Ｔクロック（Ｎは２以上の整数）毎に、前記フレーム保持手段の待ちフレーム数を取得し、前記待ちフレーム数がＫ個（Ｋは１以上の整数）の場合、少なくとも一部の発信間隔をＴクロックより短くすることで、次のＮ×Ｔクロックの間にＮ＋Ｋ回の前記制御信号を発信する送信制御手段と、
を有することを特徴とする通信装置。
【請求項２】
前記送信制御手段は、前記待ちフレーム数がＫ個の場合、Ｎ＋Ｋ回の前記制御信号の発信間隔が高々１クロック差になるように発信間隔を制御する、
ことを特徴とする請求項１記載の通信装置。
【請求項３】
前記送信制御手段は、前記待ちフレーム数がＫ個の場合、Ｔクロック周期による前記制御信号に加えて、Ｋ個の空きタイミングを選択して前記制御信号を発信する、
ことを特徴とする請求項１記載の通信装置。
【請求項４】
前記送信制御手段は、Ｔ÷２クロック周期の分周信号を発信しており、初期動作として前記分周信号を２回発信する毎に前記制御信号を発信すると共に、前記待ちフレーム数がＫ個の場合、前記分周信号のタイミングの中からＫ個の空きタイミングを選択する、
ことを特徴とする請求項３記載の通信装置。
【請求項５】
伝送路を介して非同期でフレームを送受信する通信装置による通信方法において、
フレーム保持手段が保持する送信待ちの前記フレームを順次取り出して前記伝送路へ出力するタイミングを示す制御信号を、初期動作としてＴクロック（Ｔは２以上の整数）周期で発信し、
Ｎ×Ｔクロック（Ｎは２以上の整数）毎に、前記フレーム保持手段の待ちフレーム数を取得し、
前記待ちフレーム数がＫ個（Ｋは１以上の整数）の場合、少なくとも一部の発信間隔をＴクロックより短くすることで、次のＮ×Ｔクロックの間にＮ＋Ｋ回の前記制御信号を発信する、
ことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信装置および通信方法に関し、特に伝送路を介して非同期でフレームを送受信する通信装置および通信方法に関する。
【背景技術】
【０００２】
ネットワークを介して端末装置間でデータを送受信する場合、一方の端末装置が送信したデータはデータリンク層においてフレームに分割され、１つ以上の通信装置によって中継されて、相手方の端末装置へ届けられる。フレームを中継する通信装置としては、例えば、レイヤ２スイッチがある。
【０００３】
ここで、通信装置間のフレームの送受信は、一般に、非同期で行われる。すなわち、送信側通信装置と受信側通信装置とは、それぞれ独立のクロック信号に従って動作し、フレームを送受信するタイミングが一致しない。そのため、個々の通信装置は、フレームを一時的に格納するバッファメモリを設け、フレームの受信と送信との間のタイミングの不一致を吸収している（例えば、特許文献１参照）。非同期ネットワークの規格としては、例えば、イーサネット（登録商標）がある。
【０００４】
しかし、受信側通信装置の動作速度が送信側通信装置の動作速度より遅い場合、伝送路の利用率が高いと、受信側通信装置でフレームが滞留してバッファメモリが溢れる可能性がある。これを防ぐ方法として、受信側通信装置でフレームが滞留しないように、送信側通信装置がフレームの送信間隔を制御する方法がある（例えば、特許文献２参照）。すなわち、送信側通信装置が、予め受信側通信装置の動作速度を考慮し、適切な間隔を空けてフレームを送信する。このように、ネットワークの設計時に個々の通信装置の動作速度や伝送路の帯域を考慮することで、フレームが特定の通信装置で滞留することを防止できる。
【特許文献１】特開２０００−２００１７６号公報
【特許文献２】特開２００２−２７１４２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、通信装置の実際のクロック周波数は、理論上のクロック周波数と厳密には一致しない。なぜならば、理論値と厳密に一致するクロック信号を発生させることは、物理的に困難だからである。例えば、イーサネットの規格では、１００ｐｐｍ（Parts Per Million）、すなわち、０．０１％以内のクロック誤差が許容されている。したがって、送信側通信装置と受信側通信装置との理論上の動作速度が同一であっても、両者の実際の動作速度は厳密には同一でない。
【０００６】
一方、従来の通信装置は、クロック誤差に関して特段の措置を行っていなかった。クロック誤差は微差（１万クロックにつき最大１クロックの差）であるため、伝送路の利用率に余裕がある限り、フレームが滞留する原因にはならないからである。しかしながら、基幹ネットワークのように、伝送路の利用率が極めて高いネットワークでは、クロック誤差が大きな問題となる。すなわち、クロック誤差が原因で、受信側通信装置の動作速度が送信側通信装置の動作速度より遅くなると、受信側通信装置で滞留するフレームが徐々に増加しメモリバッファが溢れてしまう。
【０００７】
そして、このようなクロック誤差によるメモリバッファの溢れは、上記特許文献２に記載の技術では防止することができない。ネットワークの設計時に、通信装置のクロック誤差を知ることは困難だからである。また、通信装置間の接続関係が変化する毎に、フレームが滞留する通信装置や滞留の程度も変化する可能性がある。さらに、フレームの滞留を解消するために特定の通信装置の動作速度を大きく変更すると、他の通信装置で滞留するフレームを増加させてしまう。
【０００８】
本発明はこのような点に鑑みてなされたものであり、クロック誤差が原因でバッファメモリが溢れることを動的に防止し、かつ、クロック誤差の補償による他の通信装置への影響を最小限に抑えることが可能な通信装置および通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では、上記課題を解決するために、図１に示すような通信装置が提供される。本発明に係る通信装置１０は、伝送路４ａ，４ｂを介して非同期でフレームを送受信するものである。通信装置１０は、フレーム保持手段１１、送信手段１３および送信制御手段１４を有している。フレーム保持手段１１は、送信待ちのフレームを保持する。送信手段１３は、フレームを送信するタイミングを示す制御信号に基づいて、フレーム保持手段１１からフレームを順次取り出し伝送路４ｂへ出力する。送信制御手段１４は、初期動作としてＴクロック（Ｔは２以上の整数）周期で制御信号を発信すると共に、Ｎ×Ｔクロック（Ｎは２以上の整数）毎に、フレーム保持手段１１を参照して待ちフレーム数を取得し、待ちフレーム数がＫ個（Ｋは１以上の整数）の場合、少なくとも一部の発信間隔をＴクロックより短くすることで、次のＮ×Ｔクロックの間にＮ＋Ｋ回の制御信号を発信する。
【００１０】
このような通信装置１０によれば、送信制御手段１４により、初期動作としてＴクロック周期の制御信号が発信され、送信手段１３により、制御信号に基づいてフレーム保持手段１１に保持されたフレームが順次送信される。また、送信制御手段１４により、Ｎ×Ｔクロック毎にフレーム保持手段１１が参照され、待ちフレーム数が取得される。待ちフレーム数がＫ個（Ｋは１以上の整数）の場合、少なくとも一部の発信間隔がＴクロックより短く設定されることで、次のＮ×Ｔクロックの間にＮ＋Ｋ回の制御信号が発信される。そして、送信手段１３により、タイミングが変更された制御信号に基づいてフレームが送信される。
【００１１】
また、上記課題を解決するために、伝送路を介して非同期でフレームを送受信する通信装置による通信方法において、フレーム保持手段が保持する送信待ちの前記フレームを順次取り出して前記伝送路へ出力するタイミングを示す制御信号を、初期動作としてＴクロック（Ｔは２以上の整数）周期で発信し、Ｎ×Ｔクロック（Ｎは２以上の整数）毎に、前記フレーム保持手段の待ちフレーム数を取得し、前記待ちフレーム数がＫ個（Ｋは１以上の整数）の場合、少なくとも一部の発信間隔をＴクロックより短くすることで、次のＮ×Ｔクロックの間にＮ＋Ｋ回の前記制御信号を発信する、ことを特徴とする通信方法が提供される。
【００１２】
このような通信方法によれば、初期動作としてＴクロック周期の制御信号が発信され、制御信号に基づいてフレーム保持手段に保持されたフレームが順次送信される。また、Ｎ×Ｔクロック毎にフレーム保持手段１１が参照され待ちフレーム数が取得される。待ちフレーム数がＫ個（Ｋは１以上の整数）の場合、少なくとも一部の発信間隔がＴクロックより短く設定されることで、次のＮ×Ｔクロックの間にＮ＋Ｋ回の制御信号が発信される。その後、タイミングが変更された制御信号に基づいてフレームが送信される。
【発明の効果】
【００１３】
本発明によれば、所定クロック毎に待ちフレーム数を取得し、待ちフレーム数に相当する分だけフレームの送信速度を上げるように制御信号の発信間隔を調整することとした。これにより、クロック誤差が原因で動作速度が送信側通信装置の動作速度より遅い場合でも、滞留するフレームの増加を自動的に抑止できバッファメモリが溢れることを防止できる。したがって、伝送路の利用率が高いときでもフレームの破棄が防止され、ネットワークの品質をより向上させることができる。また、クロック誤差に相当する分だけフレームの送信速度を上げるため、クロック誤差の補償による他の通信装置への影響を最小限に抑えることができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図面を参照して詳細に説明する。まず、本実施の形態の概要を説明し、その後、本実施の形態の具体的な内容を説明する。
図１は、本実施の形態の概要を示す図である。本実施の形態に係る通信装置１０は、通信装置２から通信装置３へ送信されるフレームを中継するものである。通信装置１０は、フレーム保持手段１１、受信手段１２、送信手段１３および送信制御手段１４を有している。受信手段１２は、通信装置２と伝送路４ａを介して接続されている。送信手段１３は、通信装置３と伝送路４ｂを介して接続されている。
【００１５】
フレーム保持手段１１は、送信待ちのフレームを保持する。フレーム保持手段１１は、例えば、ＦＩＦＯ（First In First Out）メモリで構成される。受信手段１２は、伝送路４ａを介して通信装置２が送信したフレームを受信し、フレーム保持手段１１へ順次書き込む。送信手段１３は、送信制御手段１４が発信する制御信号に基づいて、フレーム保持手段１１の先頭から順次フレームを取り出し、通信路４ｂを介して通信装置３へ送信する。
【００１６】
送信制御手段１４は、初期動作としてＴクロック（Ｔ≧２）周期で制御信号を発信する。また、送信制御手段１４は、Ｎ×Ｔクロック（Ｎ≧２）毎に、フレーム保持手段１１が保持する待ちフレームの数を取得する。待ちフレーム数がＫ個（Ｋ≧１）の場合、送信制御手段１４は、次のＮ×Ｔクロックの間にＮ＋Ｋ回の制御信号を発信するように発信間隔を調整する。すなわち、少なくとも一部の送信間隔をＴクロックよりも短くする。
【００１７】
このような通信装置１０によれば、受信手段１２により、通信装置２が送信したフレームが取得され、フレーム保持手段１１に格納される。そして、送信手段１３により、送信制御手段１４によって発信される制御信号に基づいて、フレーム保持手段１１に保持されたフレームが順次通信装置３へ送信される。ここで、送信制御手段１４により、初期動作としてＴクロック周期の制御信号が発信される。また、送信制御手段１４により、Ｎ×Ｔクロック毎にフレーム保持手段１１が参照され、待ちフレーム数が取得される。待ちフレーム数がＫ個の場合、少なくとも一部の発信間隔がＴクロックより短く設定されることで、次のＮ×Ｔクロックの間にＮ＋Ｋ回の制御信号が発信される。
【００１８】
例えば、通信装置２と通信装置１０とは、理論上、または仕様上はクロック周波数が同一であるが、クロック誤差があるために、通信装置１０のクロック周波数の方が遅いとする。この場合、通信装置１０の運用を開始すると、フレーム保持手段１１が保持する待ちフレームの数が徐々に増加する。しかし、Ｎ×Ｔクロック経過すると、送信制御手段１４により制御信号の発信間隔が調整される。これにより、待ちフレーム数の増加が停止する。
【００１９】
このように、クロック誤差が原因で通信装置１０の動作速度が通信装置２の動作速度より遅い場合でも、滞留するフレームの増加を自動的に抑止できバッファメモリが溢れることを防止できる。したがって、伝送路４ａ，４ｂの利用率が高いときでもフレームの破棄が防止され、ネットワークの品質をより向上させることができる。また、クロック誤差に相当する分だけフレームの送信速度を上げるため、クロック誤差の補償による通信装置３への影響を最小限に抑えることができる。
【００２０】
なお、制御信号の発信間隔を短縮する具体的な方法として、例えば、Ｎ＋Ｋ回の制御信号の発信間隔が高々１クロック差になるように、均等に発信間隔を短縮する方法がある。この方法によれば、送信先の通信装置への影響をより抑えることができる。また、通信装置の性能上、フレームの送信速度を大きく上げることができない場合でも、本実施の形態を適用できる。
【００２１】
また、制御信号の発信間隔を短縮する他の具体的な方法として、元のＴクロック周期の制御信号のタイミングを変更せずに、制御信号間の空きタイミングをＫ個選択する方法がある。この方法によれば、１クロック単位の厳密な制御が不要であり、かかる機能を備える回路の実現が容易となる。
【００２２】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
［第１の実施の形態］
図２は、本実施の形態のシステム構成を示す図である。本実施の形態のフレーム転送システムは、端末装置間でデータの送受信を行えるように、複数のレイヤ２スイッチがデータリンク層のフレームを中継するものである。
【００２３】
図２に示すフレーム転送システムは、スイッチ１００，２００，３００および端末装置２１，２２，２３，２４で構成される。スイッチ１００，２００，３００は、レイヤ２スイッチである。端末装置２１，２２，２３，２４は、ユーザが使用する端末装置である。スイッチ１００は、スイッチ２００，３００と接続されている。スイッチ２００は、端末装置２１，２２と接続されている。スイッチ３００は、端末装置２３，２４と接続されている。
【００２４】
スイッチ１００，２００，３００は、フレームに含まれるＭＡＣ（Media Access Control）アドレスに従って、送信元の端末装置から宛先の端末装置まで、フレームを中継する。例えば、端末装置２１が端末装置２２へフレームを送信する場合、端末装置２１、スイッチ２００、端末装置２２の順にフレームが転送される。また、端末装置２１が端末装置２３へフレームを送信する場合、端末装置２１、スイッチ２００、スイッチ１００、スイッチ３００、端末装置２３の順にフレームが転送される。
【００２５】
図３は、スイッチの機能を示すブロック図である。なお、図３にはスイッチ１００のブロック構成を示したが、スイッチ２００，３００も同様のブロック構成で実現できる。スイッチ１００は、通信ポート群１１０、スイッチ部１２０、出力キュー部１３０および送信制御部１４０を有している。
【００２６】
通信ポート群１１０は、２個の通信ポート１１０ａ，１１０ｂで構成される。通信ポート１１０ａ，１１０ｂは、それぞれ１つの物理リンク（ケーブル）を介して、他のスイッチの通信ポートと接続されている。具体的には、通信ポート１１０ａは、スイッチ２００の通信ポートと接続されている。通信ポート１１０ｂは、スイッチ３００の通信ポートと接続されている。通信ポート１１０ａ，１１０ｂは、最大１００Ｍｂｐｓの速度でフレームの送受信を行うことができる。
【００２７】
スイッチ部１２０は、通信ポート１１０ａ，１１０ｂに到来したフレームを取得する。そして、スイッチ部１２０は、取得したフレームの宛先ＭＡＣアドレスを参照して、そのフレームを出力すべき通信ポートを決定する。具体的には、スイッチ部１２０は、端末装置２１，２２宛てのフレームの出力先を通信ポート１１０ａに決定する。また、端末装置２３，２４宛てのフレームの出力先を通信ポート１１０ｂに決定する。その後、スイッチ部１２０は、決定した通信ポートを指定して、フレームを出力キュー部１３０へ送る。
【００２８】
出力キュー部１３０は、通信ポート群１１０を構成する通信ポートと１対１に対応する２個の出力キューを有している。具体的には、出力キュー部１３０は、通信ポート１１０ａに対応する出力キュー１３０ａと、通信ポート１１０ｂに対応する出力キュー１３０ｂとを有している。出力キュー１３０ａ，１３０ｂは、ＦＩＦＯメモリによって実現される。ここで、出力キュー部１３０は、スイッチ部１２０から受け取ったフレームを、指定された通信ポートに対応する出力キューに格納する。また、出力キュー部１３０は、送信制御部１４０から指示されたタイミングで、出力キュー１３０ａ，１３０ｂからフレームを読み出し、対応する通信ポート１１０ａ，１１０ｂへ出力する。
【００２９】
送信制御部１４０は、出力キュー部１３０に、フレームを出力するタイミングを指示する。また、送信制御部１４０は、所定のクロック間隔で、出力キュー１３０ａ，１３０ｂの待ちフレーム数をそれぞれ取得する。送信制御部１４０は、待ちフレーム数を取得する毎に、フレームを出力するタイミングを再計算する。なお、送信制御部１４０は、１２５ＭＨｚのクロック信号に従って動作する。ただし、クロック信号には、最大で１００ｐｐｍのクロック誤差がある可能性がある。
【００３０】
図４は、第１の実施の形態の送信制御部の機能を示すブロック図である。送信制御部１４０は、キュー情報取得部１４１、パラメータ演算部１４２、分周制御部１４３、周期調整部１４４およびフレーム送信管理部１４５を有している。
【００３１】
キュー情報取得部１４１は、１００万フレーム時間毎に、出力キュー部１３０から出力キュー１３０ａ，１３０ｂの待ちフレーム数をそれぞれ取得する。ここで、１フレーム時間とは、１個のフレームを受信するのに要する最短のクロック数である。１フレーム時間は、以下の数式で計算することができる。
【００３２】
１フレーム時間（クロック）＝最短フレーム長（ビット）÷物理伝送速度（ｂｐｓ）×クロック周波数（Ｈｚ）
例えば、物理伝送速度を１００Ｍｂｐｓ、クロック周波数を１２５ＭＨｚ、最短フレーム長を８４バイトとすると、１フレーム時間は８４０クロックとなる。以下、本実施の形態では、１フレーム時間を８４０クロックとする。
【００３３】
パラメータ演算部１４２は、キュー情報取得部１４１から出力キュー１３０ａ，１３０ｂの待ちフレーム数を取得し、出力キュー１３０ａ，１３０ｂそれぞれについて、フレーム出力処理を行うタイミングを再計算する。すなわち、待ちフレーム数をＹ個とすると、次の１００万フレーム時間（＝８４０×１００万クロック）に１００万＋Ｙ回フレーム出力処理を行うようにタイミングを再計算する。
【００３４】
具体的には、パラメータ演算部１４２は、８３９分周でフレーム出力処理を行う回数（Ａ回）と８４０分周でフレーム出力処理を行う回数（Ｂ回）とを計算する。ここで、パラメータＡ，Ｂは、以下の数式で表される関係を有する。
【００３５】
８３９×Ａ＋８４０×Ｂ＝８４０×１００００００
Ａ＋Ｂ＝１００００００＋Ｙ
したがって、パラメータ演算部１４２は、パラメータＡ，Ｂを以下の数式によって求めることができる。
【００３６】
Ａ＝８４０×Ｙ
Ｂ＝１００００００−８３９×Ｙ
分周制御部１４３は、１２５ＭＨｚのクロック信号を８３９分周または８４０分周し、分周周期毎に送信周期信号を発信する。具体的には、パラメータ演算部１４２が計算したパラメータＡ，Ｂの値を用いて、８３９クロック毎の送信周期信号をＡ回、８４０クロック毎の送信周期信号をＢ回発信する。
【００３７】
周期調整部１４４は、分周制御部１４３が発信した送信周期信号を受信する毎に内部カウンタを１ずつ加算する。そして、内部カウンタがＡ＋Ｂに達すると、内部カウンタを０に初期化すると共に、調整周期終了信号をパラメータ演算部１４２に発信する。
【００３８】
フレーム送信管理部１４５は、分周制御部１４３が発信した送信周期信号を受信する毎に、フレーム出力処理を行う。ここで、出力キュー１３０ａ，１３０ｂに格納されたフレームが全て固定長であれば、送信周期信号を受信する毎に１つのフレームを出力すればよい。しかし、伝送路で送受信されるフレームは、一般に可変長である。そこで、フレーム送信管理部１４５は、フレーム長を考慮してフレーム出力処理を行う。可変長フレームの出力処理については、後で詳細に説明する。
【００３９】
次に、以上のような構成のシステムにおいて実行される処理の詳細を説明する。
図５は、可変長フレームを出力するタイミングを示す図である。図５のタイミング図は、送信周期信号の周期が８４０クロックの場合について示したものであるが、送信周期信号の周期が８３９クロックの場合についても同様である。
【００４０】
フレーム送信管理部１４５は、トークンと呼ばれる整数値を保持している。トークンは、初期値が８４であり、送信周期信号の受信時（フレームを送信する場合を除く）に８４ずつ加算される。ここで、送信周期信号の受信時に待ちフレームがある場合、フレーム送信管理部１４５はトークンの正負を確認する。トークンが非負であれば、待ちフレームを１つ出力し、その後、出力したフレームのフレーム長だけトークンを減算する。トークンが負であれば、フレームを出力しない。
【００４１】
図５の例では、時刻ｔ０，ｔ１，ｔ２，・・・が、送信周期信号の受信タイミングを示している。時刻ｔ１と時刻ｔ２との間に５００バイトのフレームが到着し、時刻ｔ２にそのフレームが出力されている。同様に、時刻ｔ８と時刻ｔ９との間に３００バイトのフレームが到着し、時刻ｔ９にそのフレームが出力されている。一方、時刻ｔ４と時刻ｔ５との間に１００バイトのフレームが到着しているが、時刻ｔ４でトークンが負であるため、時刻ｔ５では出力されず時刻ｔ６に出力されている。
【００４２】
このような方法で、可変長フレームの出力処理を実現することができる。ただし、本実施の形態では、可変長フレームの出力処理の方法を上記の方法に限定する必要はなく、他の方法を採用してもよい。
【００４３】
次に、送信制御部１４０によるフレームの送信制御について説明する。なお、以下の説明では、通信ポート１１０ａに到来したフレームを通信ポート１１０ｂから出力する場合、すなわち、出力キュー１３０ｂに格納された待ちフレームを出力する場合について述べる。出力キュー１３０ａに格納された待ちフレームを出力する場合についても、同様の処理で実現できる。
【００４４】
図６は、第１の実施の形態の送信制御処理の流れを示すフローチャートである。以下、図６に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］パラメータ演算部１４２は、周期調整部１４４から調整周期終了信号を受信すると、キュー情報取得部１４１から、出力キュー１３０ｂに格納された待ちフレームの数を取得する。
【００４５】
［ステップＳ１２］パラメータ演算部１４２は、ステップＳ１１で取得した待ちフレーム数を用いて、前述の数式に従って８３９分周の回数（Ａ回）と８４０分周の回数（Ｂ回）とを計算する。
【００４６】
［ステップＳ１３］パラメータ演算部１４２は、ステップＳ１２で計算したパラメータＡ，Ｂの値を、分周制御部１４３と周期調整部１４４とに通知する。
［ステップＳ１４］分周制御部１４３は、ステップＳ１３でパラメータ演算部１４２からパラメータＡ，Ｂの値を取得した後に発信した送信周期信号の発信回数がＡ回未満か否か判断する。発信回数がＡ未満の場合には、処理がステップＳ１５に進められる。発信回数がＡ以上の場合には、処理がステップＳ１６に進められる。
【００４７】
［ステップＳ１５］分周制御部１４３は、前回の送信周期信号から８３９クロック経過後に、送信周期信号を周期調整部１４４とフレーム送信管理部１４５へ発信する。
［ステップＳ１６］分周制御部１４３は、前回の送信周期信号から８４０クロック経過後に、送信周期信号を周期調整部１４４とフレーム送信管理部１４５へ発信する。
【００４８】
［ステップＳ１７］フレーム送信管理部１４５は、分周制御部１４３から送信周期信号を受信すると、前述の方法に従って可変長フレームの出力処理を行う。すなわち、フレーム送信管理部１４５は、トークンが非負の場合には、出力キュー部１３０へ出力キュー１３０ｂに格納されたフレームの送信を指示すると共に、送信したフレームのフレーム長を出力キュー部１３０から取得する。
【００４９】
［ステップＳ１８］周期調整部１４４は、分周制御部１４３から送信周期信号を受信すると、内部カウンタを１加算する。
［ステップＳ１９］周期調整部１４４は、内部カウンタが満了したか否か、すなわち、内部カウンタがステップＳ１３で取得したパラメータＡ，Ｂの合計値（Ａ＋Ｂの値）に達したか否か判断する。内部カウンタが満了した場合には、処理がステップＳ２０に進められる。内部カウンタが満了していない場合には、処理がステップＳ１４に進められる。
【００５０】
［ステップＳ２０］周期調整部１４４は、内部カウンタを０に初期化すると共に、調整周期終了信号をパラメータ演算部１４２へ発信する。
このようにして、パラメータ演算部１４２が、１００万フレーム時間毎に待ちフレーム数を取得し、待ちフレーム数に応じて８３９分周および８４０分周の回数を計算する。次に、分周制御部１４３がパラメータ演算部１４２が計算したパラメータに従って、８３９分周および８４０分周の送信周期信号を発信する。そして、フレーム送信管理部１４５が、送信周期信号を受信する毎に、可変長フレームの出力処理を行う。
【００５１】
図７は、第１の実施の形態の送信周期信号のタイミングを示す図である。上段の（ａ）が待ちフレーム数に応じた調整を行わない場合のタイミングを示しており、下段の（ｂ）が待ちフレーム数に応じた調整を行った場合のタイミングを示している。ここでは、スイッチ１００のクロック周波数がスイッチ２００のクロック周波数よりもＹｐｐｍだけ遅いものとする。
【００５２】
図７に示す通り、調整を行わない場合、８４０クロック周期で１００万回の送信周期信号が発信される。これにより、１００フレーム時間で１００万回のフレーム出力処理が行われる。一方、調整を行った場合、８３９クロック周期で８４０×Ｙ回および８４０クロック周期で１００万−８３９×Ｙ回の送信周期信号が発信される。これにより、１００フレーム時間で１００万＋Ｙ回のフレーム出力処理が行われる。
【００５３】
図８は、出力キュー内の待ちフレーム数の時系列変化を示す図である。上段の（ａ）が待ちフレーム数に応じた調整を行わない場合の時系列変化を示しており、下段の（ｂ）が待ちフレーム数に応じた調整を行った場合の時系列変化を示している。ここでは、スイッチ１００のクロック周波数がスイッチ２００のクロック周波数よりもＹｐｐｍだけ遅く、出力キュー１３０ｂの記憶可能フレーム数が３．５×Ｙ個であるとする。
【００５４】
図８に示す通り、調整を行わない場合、出力キュー１３０ｂの待ちフレーム数が１００万フレーム時間毎に最大Ｙ個ずつ増加する。したがって、伝送路の利用率が極めて高い状態が続くと、３５０万フレーム時間経過後に出力キュー１３０ｂが溢れ、フレームの破棄が発生する。一方、調整を行った場合、出力キュー１３０ｂの待ちフレーム数が１００万フレーム時間経過後にＹ個まで増加するが、その後、フレーム出力処理の間隔が調整されることで待ちフレーム数の増加が停止する。これにより、出力キュー１３０ｂが溢れフレームが破棄されることを防止できる。
【００５５】
このように、第１の実施の形態で述べたスイッチによれば、クロック誤差が原因で動作速度が送信側通信装置の動作速度より遅い場合でも、滞留するフレームの増加を自動的に抑止でき出力キューが溢れることを防止できる。したがって、伝送路の利用率が高いときでもフレームの破棄が防止され、ネットワークの品質をより向上させることができる。
【００５６】
特に、一部のフレーム出力処理の間隔を１クロックだけ短くするようにしたので、他のスイッチへの影響を最小限に抑えることができる。また、スイッチの性能上、フレームの送信速度を大きく上げることができない場合でも本実施の形態を適用できる。
【００５７】
なお、スイッチ１００でフレームの送信速度を上げることで、受信側であるスイッチ２００，３００で新たにフレームの滞留が発生する可能性がある。この場合、スイッチ２００，３００が上記と同様の処理を行うことでフレームの滞留を解消することができる。ここで、送信速度の調整がスイッチ間で連鎖する可能性もあるが、このような連鎖は有限回数で停止すると考えられる。なぜならば、クロック誤差は正負のあるランダムな値であり、多数のスイッチのクロック誤差を合計すると、互いに打ち消し合って０になるからである。
【００５８】
［第２の実施の形態］
次に、本発明の第２の実施の形態を、図面を参照して詳細に説明する。前述の第１の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。第２の実施の形態は、第１の実施の形態における送信周期信号の調整方法を、他の方法に置き換えたものである。
【００５９】
第２の実施の形態のシステム構成は、図２に示した第１の実施の形態のものと同様である。第２の実施の形態のスイッチのブロック構成は、図３に示した第１の実施の形態のものと同様である。ただし、第２の実施の形態では、送信制御部１４０の内部構成および機能が、以下に述べる送信制御部１４０ａに置き換えられる。
【００６０】
図９は、第２の実施の形態の送信制御部の機能を示すブロック図である。送信制御部１４０ａは、キュー情報取得部１４１ａ、パラメータ演算部１４２ａ、分周カウント部１４３ａ、発出制御部１４４ａおよびフレーム送信管理部１４５ａを有している。
【００６１】
キュー情報取得部１４１ａは、１００万フレーム時間毎に、出力キュー部１３０から出力キュー１３０ａ，１３０ｂの待ちフレーム数をそれぞれ取得する。１フレーム時間は、第１の実施の形態と同様に８４０クロックとする。
【００６２】
パラメータ演算部１４２ａは、キュー情報取得部１４１ａから出力キュー１３０ａ，１３０ｂの待ちフレーム数を取得し、出力キュー１３０ａ，１３０ｂそれぞれについて、フレーム出力処理を行うタイミングを再計算する。具体的には、一部のフレーム出力処理を１フレーム時間の半分である４２０分周で行い、残りのフレーム出力処理を１フレーム時間である８４０分周で行うようにする。４２０分周でフレーム出力処理を行う回数（Ａ回）は、以下の数式によって求めることができる。
【００６３】
Ａ＝２×Ｙ
分周カウント部１４３ａは、１２５ＭＨｚのクロック信号を４２０分周し、４２０分周信号を発出制御部１４４ａへ発信する。
【００６４】
発出制御部１４４ａは、分周カウント部１４３ａが発信した４２０分周信号を受信する毎に、内部カウンタを１ずつ加算する。そして、内部カウンタがＡに達するまでは、４２０分周信号に合わせて送信周期信号を発信する。内部カウンタがＡを超えると、４２０分周信号の奇数周期に合わせて送信周期信号を発信する。
【００６５】
フレーム送信管理部１４５ａは、発出制御部１４４ａが発信した送信周期信号を受信する毎に、フレーム出力処理を行う。フレーム出力処理の詳細は、第１の実施の形態で説明したものと同様である。
【００６６】
次に、以上のような構成のシステムにおいて実行される処理の詳細を説明する。なお、第１の実施の形態と同様、通信ポート１１０ａに到来したフレームを通信ポート１１０ｂから出力する場合、すなわち、出力キュー１３０ｂに格納された待ちフレームを出力する場合について述べる。出力キュー１３０ａに格納された待ちフレームを出力する場合についても、同様の処理で実現できる。
【００６７】
図１０は、第２の実施の形態の送信制御処理の手順を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。
［ステップＳ２１］パラメータ演算部１４２ａは、発出制御部１４４ａから調整周期終了信号を受信すると、キュー情報取得部１４１ａから、出力キュー１３０ｂに格納された待ちフレームの数を取得する。
【００６８】
［ステップＳ２２］パラメータ演算部１４２ａは、ステップＳ２１で取得した待ちフレーム数を用いて、前述の数式に従って４２０分周の回数（Ａ回）を計算する。
［ステップＳ２３］パラメータ演算部１４２ａは、ステップＳ２２で計算したパラメータＡの値を発出制御部１４４ａに通知する。
【００６９】
［ステップＳ２４］発出制御部１４４ａは、分周カウント部１４３ａから４２０分周信号を受信するのを待ち、その後、内部カウンタを１加算する。
［ステップＳ２５］発出制御部１４４ａは、内部カウンタが奇数か否か判断する。内部カウンタが奇数の場合には、処理がステップＳ２７に進められる。内部カウンタが偶数の場合には、処理がステップＳ２６に進められる。
【００７０】
［ステップＳ２６］発出制御部１４４ａは、内部カウンタがステップＳ２３で取得したパラメータＡの値以下か否か判断する。内部カウンタがＡの値以下の場合には、処理がステップＳ２７に進められる。内部カウンタがＡの値より大きい場合には、処理がステップＳ２９に進められる。
【００７１】
［ステップＳ２７］発出制御部１４４ａは、送信周期信号をフレーム送信管理部１４５ａへ発信する。
［ステップＳ２８］フレーム送信管理部１４５ａは、発出制御部１４４ａから送信周期信号を受信すると、前述の方法に従って可変長フレームの出力処理を行う。すなわち、フレーム送信管理部１４５ａは、トークンが非負の場合、出力キュー部１３０へ出力キュー１３０ｂに格納されたフレームの送信を指示すると共に、送信したフレームのフレーム長を出力キュー部１３０から取得する。
【００７２】
［ステップＳ２９］発出制御部１４４ａは、内部カウンタが満了したか否か、すなわち、内部カウンタが１００万に達したか否か判断する。内部カウンタが満了した場合、処理がステップＳ３０に進められる。内部カウンタが満了していない場合、処理がステップＳ２４に進められる。
【００７３】
［ステップＳ３０］発出制御部１４４ａは、内部カウンタを０に初期化すると共に、調整周期終了信号をパラメータ演算部１４２ａへ発信する。
このようにして、パラメータ演算部１４２ａが、１００万フレーム時間毎に待ちフレーム数を取得し、待ちフレーム数に応じて４２０分周の回数を計算する。次に、発出制御部１４４ａが、パラメータ演算部１４２ａが計算したパラメータに従って、４２０分周および８４０分周の送信周期信号を発信する。そして、フレーム送信管理部１４５ａが、送信周期信号を受信する毎に、可変長フレームの出力処理を行う。
【００７４】
図１１は、第２の実施の形態の送信周期信号のタイミングを示す図である。上段の（ａ）が待ちフレーム数に応じた調整を行わない場合のタイミングを示しており、下段の（ｂ）が待ちフレーム数に応じた調整を行った場合のタイミングを示している。ここでは、スイッチ１００のクロック周波数がスイッチ２００のクロック周波数よりもＹｐｐｍだけ遅いものとする。
【００７５】
図１１に示す通り、調整を行わない場合、４２０クロック周期の奇数番目、すなわち、８４０クロック周期で１００万回の送信周期信号が発信される。これにより、１００フレーム時間で１００万回のフレーム出力処理が行われる。一方、調整を行った場合、４２０クロック周期で２×Ｙ回および８４０クロック周期で２×１００万−２×Ｙ回の送信周期信号が発信される。これにより、１００フレーム時間で１００万＋Ｙ回のフレーム出力処理が行われる。
【００７６】
出力キュー１３０ｂの待ちフレーム数の時系列変化は、図８に示した第１の実施の形態のものと同様である。すなわち、調整を行うことで、出力キュー１３０ｂの待ちフレーム数の増加が１００万フレーム時間経過後に停止し、出力キュー１３０ｂが溢れフレームが破棄されることを防止できる。
【００７７】
このように、第２の実施の形態で述べたスイッチによれば、クロック誤差が原因で動作速度が送信側通信装置の動作速度より遅い場合でも、滞留するフレームの増加を自動的に抑止でき出力キューが溢れることを防止できる。したがって、伝送路の利用率が高いときでもフレームの破棄が防止され、ネットワークの品質をより向上させることができる。
【００７８】
特に、元のフレーム出力処理のタイミングを変更せず、空きタイミングに送信周期信号を発信するようにしたので、１クロック単位の厳密な制御が不要であり、このような機能を備える回路の実現が容易となる。
【００７９】
なお、前述の第１の実施の形態および第２の実施の形態では、フレームを送受信する通信装置としてレイヤ２スイッチを用いたが、フレームを送受信する機能を有する他の種類の通信装置を用いてもよい。例えば、データリンク層より上位の階層の処理もできるルーター等を用いてもよい。この場合、フレームを受信してから出力キューに格納するまでの間に、データリンク層より上位の階層に関する処理が追加される。
【００８０】
以上、本発明の通信装置および通信方法を図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、本発明に他の任意の構成物や工程が付加されていてもよい。また、本発明は、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【図面の簡単な説明】
【００８１】
【図１】本実施の形態の概要を示す図である。
【図２】本実施の形態のシステム構成を示す図である。
【図３】スイッチの機能を示すブロック図である。
【図４】第１の実施の形態の送信制御部の機能を示すブロック図である。
【図５】可変長フレームを出力するタイミングを示す図である。
【図６】第１の実施の形態の送信制御処理の流れを示すフローチャートである。
【図７】第１の実施の形態の送信周期信号のタイミングを示す図である。
【図８】出力キュー内の待ちフレーム数の時系列変化を示す図である。
【図９】第２の実施の形態の送信制御部の機能を示すブロック図である。
【図１０】第２の実施の形態の送信制御処理の流れを示すフローチャートである。
【図１１】第２の実施の形態の送信周期信号のタイミングを示す図である。
【符号の説明】
【００８２】
２，３，１０  通信装置
４ａ，４ｂ  伝送路
１１  フレーム保持手段
１２  受信手段
１３  送信手段
１４  送信制御手段
【図１】
2008092018.tif 000003
【図２】
2008092018.tif 000004
【図３】
2008092018.tif 000005
【図４】
2008092018.tif 000006
【図５】
2008092018.tif 000007
【図６】
2008092018.tif 000008
【図７】
2008092018.tif 000009
【図８】
2008092018.tif 000010
【図９】
2008092018.tif 000011
【図１０】
2008092018.tif 000012
【図１１】
2008092018.tif 000013