(57)【要約】【課題】平均して所定の帯域となるように無効領域を挿入すること。【解決手段】メモリ１０１は、パケットがパラレル化されたパラレル化データを格納する先入れ先出しのメモリである。出力部１０２は、メモリ１０１に格納されたパラレル化データを所定のバス幅で読み出して出力し、メモリ１０１からパラレル化データを読み出さない期間においては無効領域を出力する。制御部１０３は、出力部１０２から出力されるパケットの帯域が平均して所定の帯域となるように出力部１０２によるパラレル化データの読み出しおよび非読み出しを制御する。【選択図】図１
2017041737.tif 000002
【特許請求の範囲】
【請求項１】
パケットがパラレル化されたパラレル化データを格納する先入れ先出しのメモリと、
前記メモリに格納された前記パラレル化データを前記パラレル化データに対応するバス幅で読み出して出力し、前記メモリから前記パラレル化データを読み出さない期間においては無効領域を出力する出力部と、
設定された所定の帯域で前記出力部から前記パケットが出力されるように、前記出力部による前記パラレル化データの読み出しおよび非読み出しの制御を行う制御部と、
を備えることを特徴とするパケット帯域制御回路。
【請求項２】
前記制御部は、前記読み出しと前記非読み出しとを前記パケットのデータ長より短い周期で切り替えることにより前記制御を行うことを特徴とする請求項１に記載のパケット帯域制御回路。
【請求項３】
前記制御部は、前記出力部から出力された前記パケットの量を検出し、検出した前記パケットの量と、前記所定の帯域に基づく前記出力部による前記パラレル化データの一定時間内の読み出し量と、の比較結果に基づいて前記制御を行うことを特徴とする請求項１または２に記載のパケット帯域制御回路。
【請求項４】
パケットがパラレル化されたパラレル化データをメモリに格納し、
前記メモリに格納した前記パラレル化データを前記パラレル化データに対応するバス幅で読み出して出力し、前記メモリから前記パラレル化データを読み出さない期間においては無効領域を出力し、
設定された所定の帯域で前記パケットを出力するように、前記メモリからの前記パラレル化データの読み出しおよび非読み出しの制御を行う、
ことを特徴とするパケット帯域の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット帯域制御回路およびパケット帯域の制御方法に関する。
【背景技術】
【０００２】
従来、入力された各パケットの間に無効領域（ＧＡＰ）を挿入して出力することによりパケットの帯域を制御する技術が知られている。また、帯域固定方式での通信時に、読み出したデータの積算量が所定量を超えた場合に、超過したデータ分だけ次回のデータ読み出し時の所定値を小さくする帯域制御方法が知られている（たとえば、下記特許文献１参照。）。また、ユーザデータの帯域に対応するユーザデータと併せて、ネットワークの性能評価を行うための評価帯域からユーザデータの帯域を減算した算出帯域に相当する試験データを送信する負荷試験方法が知られている（たとえば、下記特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１３１２７９号公報
【特許文献２】特開２００９−１３５８２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、帯域制御の対象がパラレルデータである場合に、パラレルデータのバス幅に起因する帯域の誤差が生じる。このため、たとえば一定期間におけるパケットの平均の帯域が、設定された所定の帯域となるように無効領域を挿入することができないという問題がある。
【０００５】
１つの側面では、本発明は、平均して所定の帯域となるように無効領域を挿入することができるパケット帯域制御回路およびパケット帯域の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、パケットがパラレル化されたパラレル化データをメモリに格納し、前記メモリに格納した前記パラレル化データを前記パラレル化データに対応するバス幅で読み出して出力し、前記メモリから前記パラレル化データを読み出さない期間においては無効領域を出力し、設定された所定の帯域で前記パケットを出力するように、前記メモリからの前記パラレル化データの読み出しおよび非読み出しの制御を行うパケット帯域制御回路およびパケット帯域の制御方法が提案される。
【発明の効果】
【０００７】
本発明の一側面によれば、平均して所定の帯域となるように無効領域を挿入することができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態にかかるパケット帯域制御回路の一例を示す図である。
【図２】図２は、実施の形態にかかるパケット帯域制御回路による帯域制御の対象のパケットの一例を示す図である。
【図３】図３は、実施の形態にかかるパケット帯域制御回路による帯域制御の対象のパケットのパラレル化の一例を示す図である。
【図４】図４は、実施の形態にかかるパケット帯域制御回路によるパケット帯域の制御の一例を示す図である。
【図５】図５は、実施の形態にかかるパケット帯域制御回路の実施例を示す図である。
【図６】図６は、実施の形態にかかる基準時間設定データベースの一例を示す図である。
【図７】図７は、実施の形態にかかるＥＮ生成部による処理の一例を示すフローチャートである。
【図８】図８は、実施の形態にかかるＥＮ生成部によるＥＮの生成および帯域の一例を示す図である。
【図９】図９は、実施の形態にかかるＥＮ補正部による処理の一例を示すフローチャートである。
【図１０】図１０は、実施の形態にかかるＥＮ制御部による処理の一例を示すフローチャートである。
【図１１】図１１は、実施の形態にかかるパケット帯域制御回路による処理の流れを示す図である。
【図１２】図１２は、実施の形態にかかるパケット帯域制御回路の処理のタイムチャートを示す図である。
【図１３】図１３は、実施の形態にかかるパケット帯域制御回路による帯域制御の一例を示す図である。
【図１４】図１４は、実施の形態にかかるパケット帯域制御回路を適用可能な装置の一例を示す図である。
【図１５】図１５は、実施の形態にかかるシェルフ装置におけるデータの送受信の一例を示す図である。
【図１６】図１６は、実施の形態にかかるシェルフ装置におけるデータの送受信の他の例を示す図である。
【図１７】図１７は、実施の形態にかかるシェルフ装置に格納される通信カードの一例を示す図（その１）である。
【図１８】図１８は、実施の形態にかかるシェルフ装置に格納される通信カードの一例を示す図（その２）である。
【図１９】図１９は、実施の形態にかかるシェルフ装置に格納される通信カードの他の例を示す図である。
【図２０】図２０は、実施の形態にかかるシェルフ装置に格納される通信カードのさらに他の例を示す図である。
【発明を実施するための形態】
【０００９】
以下に図面を参照して、本発明にかかるパケット帯域制御回路およびパケット帯域の制御方法の実施の形態を詳細に説明する。
【００１０】
（実施の形態）
（実施の形態にかかるパケット帯域制御回路）
図１は、実施の形態にかかるパケット帯域制御回路の一例を示す図である。図１に示すように、実施の形態にかかるパケット帯域制御回路１００は、たとえば、メモリ１０１と、出力部１０２と、制御部１０３と、を備える。
【００１１】
メモリ１０１には、パケット帯域制御回路１００による帯域制御の対象のパケットが格納される。メモリ１０１に格納されるパケットは、所定のビット幅でパラレル化されたパラレル化データである。また、メモリ１０１に格納されるパケットは、一例としては試験用のパケットとすることができる。この場合の試験は、一例としては、通信デバイスに試験用のパケットを処理させ、通信デバイスが正常に動作するか否かを判定する試験とすることができる。
【００１２】
出力部１０２は、制御部１０３からの制御に従って、メモリ１０１に格納されたパケットを読み出す。そして、出力部１０２は、読み出したパケットを出力する。また、出力部１０２は、メモリ１０１に格納されたパケットを読み出さない期間においては無効領域を出力する。無効領域は、たとえばパケット（有効データ）を含まない信号（ＧＡＰ）である。一例としては、無効領域は、“０００００…”や“１１１１１…”などの無効なデータである。また、メモリ１０１に格納されたパケットはパラレルデータであるため、出力部１０２によるパケットの読み出しは、メモリ１０１に格納されたパラレルのパケット（パラレル化データ）に対応するバス幅の単位で行われる。
【００１３】
制御部１０３は、パケット帯域制御回路５００に対して設定された所定の帯域で出力部１０２からパケットが出力されるように、出力部１０２によるパケットの読み出しおよび非読み出しを制御する。パケットの読み出しおよび非読み出しの制御は、たとえば、メモリ１０１からパケットを読み出して出力する状態と、メモリ１０１からパケットを読み出さずに無効領域を出力する状態と、を切り替える制御である。所定の帯域は、パケット帯域制御回路１００による帯域制御の目標値である。
【００１４】
たとえば、制御部１０３は、所定の帯域に基づいて、一定時間内における出力部１０２によるパケットの読み出す量を計算し、計算した読み出し量に基づいて出力部１０２によるパケットの読み出しおよび非読み出しを制御する。制御部１０３によって出力部１０２がパケットを読み出さないように制御されている間は、出力部１０２から無効領域が出力されることになる。パケット帯域制御回路１００による制御後の帯域は、一定期間内に出力部１０２から出力されたパケットと無効領域との量の比率によって制御される。
【００１５】
このように、実施の形態にかかるパケット帯域制御回路１００によれば、設定された所定の帯域で出力部１０２から出力されるパケットが出力されるように、出力部１０２によるパケットの読み出しおよび非読み出しを制御することができる。これにより、出力部１０２によるパケットの読み出しが所定のバス幅の単位で行われる構成において、パケットが平均して所定の帯域となるように無効領域を挿入することができる。すなわち、バス幅に起因する帯域誤差を吸収して所定の帯域となるようにすることができる。このため、たとえば帯域制御の対象を試験用のパケットとする場合に、試験の条件としてのパケットの帯域を精度よく調整し、品質の高い試験を行うことが可能になる。
【００１６】
また、制御部１０３は、出力部１０２によるパケットの読み出しおよび非読み出しを、パケットのデータ長より短い周期で切り替える制御を行うようにしてもよい。これにより、パケットの途中にも無効領域を挿入することができる。このため、出力部１０２によるパケットの読み出しが所定のバス幅の単位で行われる構成において、短い期間においてもパケットの帯域を精度よく調整することができる。
【００１７】
また、制御部１０３は、出力部１０２から出力されるパケットの量を検出し、検出したパケットの量と、設定帯域に基づく出力部１０２によるパケットの一定時間内の読み出し量と、の比較結果に基づいてパケットの読み出しおよび非読み出しの制御を行ってもよい。これにより、出力部１０２によるパケットの読み出しが所定のバス幅の単位で行われることによる帯域の微小な誤差が生じても、その誤差を補償し、パケットの帯域を精度よく調整することができる。
【００１８】
（実施の形態にかかるパケット帯域制御回路による帯域制御の対象のパケット）
図２は、実施の形態にかかるパケット帯域制御回路による帯域制御の対象のパケットの一例を示す図である。実施の形態にかかるパケット帯域制御回路１００は、たとえば図２に示すパケット２００の帯域を制御する。パケット２００は、一例としてはイーサネット（登録商標）のイーサパケットである。パケット２００は、プリアンブル２１０と、ヘッダ２２０と、ペイロード２３０と、ＦＣＳ２４０と、を含む。プリアンブル２１０は、パケット２００の先頭に格納される所定パターンである。プリアンブル２１０のデータ長はたとえば８［ｂｙｔｅ］である。
【００１９】
ヘッダ２２０は、宛先ＭＡＣ２２１と、送信元ＭＡＣ２２２と、タイプ２２３と、を含む。宛先ＭＡＣ２２１は、パケット２００の宛先を示すＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ：メディアアクセス制御）アドレスである。宛先ＭＡＣ２２１のデータ長はたとえば６［ｂｙｔｅ］である。送信元ＭＡＣ２２２は、パケット２００の送信元を示すＭＡＣアドレスである。送信元ＭＡＣ２２２のデータ長はたとえば６［ｂｙｔｅ］である。タイプ２２３は、ペイロード２３０の種別を示す情報である。タイプ２２３のデータ長はたとえば２［ｂｙｔｅ］である。また、タイプ２２３の部分には、ペイロード２３０のデータ長を示す情報が格納されてよい。
【００２０】
ペイロード２３０は、パケット２００による伝送対象のデータ（たとえばユーザデータ）である。ペイロード２３０のデータ長は可変長である。ＦＣＳ２４０（Ｆｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ：フレームチェックシーケンス）は、パケット２００の受信側においてパケット２００の誤り検出や誤り訂正を行うためのチェックサムである。
【００２１】
ＧＡＰ２５０は、パケット２００と、パケット２００の次のパケットと、の間に設けられる無効領域、すなわちＩＦＧ（Ｉｎｔｅｒ  Ｆｒａｍｅ  Ｇａｐ：フレーム間ギャップ）である。
【００２２】
（実施の形態にかかるパケット帯域制御回路による帯域制御の対象のパケットのパラレル化）
図３は、実施の形態にかかるパケット帯域制御回路による帯域制御の対象のパケットのパラレル化の一例を示す図である。図３において、図２に示した部分と同様の部分については同一の符号を付して説明を省略する。また、図３において、横方向は時間の経過を示す。クロック３０１は、パケット帯域制御回路１００からのデータの読み出しに用いられるクロックである。したがって、パケット帯域制御回路１００からのデータの読み出し周期はクロック３０１に同期する。
【００２３】
たとえばＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのプロセッサ内においては、パケット処理に要する時間を確保するために、パケット帯域制御回路１００による帯域制御の対象のパケット２００はパラレルデータ化される。図３に示すパラレルデータ３１０は、図２に示したパケット２００をパラレル化したものである。バス幅３０２は、クロック３０１の周期ごとに処理されるデータ幅である。一例としては、バス幅３０２は６４［ｂｙｔｅ］である。
【００２４】
図３に示すように、パケット２００のヘッダ２２０、ペイロード２３０、ＦＣＳ２４０およびＧＡＰ２５０は、バス幅３０２の単位で区切られることによりパラレルデータ３１０に変換される。
【００２５】
ここで、パラレルデータ３１０の帯域を制御する場合に、制御目標である設定帯域に応じてパケットごとにＧＡＰのデータ長を計算すると、計算したＧＡＰのデータ長がバス幅３０２で割り切れない場合がある。この場合に、バス幅３０２より小さい単位でのＧＡＰのデータ長の調整を行うことはできない。このため、設定帯域に基づき計算したデータ長のＧＡＰを挿入することはできず、パラレルデータ３１０の制御後の帯域と設定帯域との間に誤差が生じることになる（たとえば図１３のタイムチャート１３０２を参照）。これに対して、パケット帯域制御回路１００によれば、このような誤差を抑制しつつパラレルデータ３１０の帯域を制御することができる。
【００２６】
（実施の形態にかかるパケット帯域制御回路によるパケット帯域の制御）
図４は、実施の形態にかかるパケット帯域制御回路によるパケット帯域の制御の一例を示す図である。図４に示す出力データ４００は、実施の形態にかかるパケット帯域制御回路１００によって帯域制御されて出力されるデータである。
【００２７】
図４に示す例では、出力データ４００には、パケット４１１〜４１３（パケットＡ〜Ｃ）が含まれる。パケット４１１〜４１３は、図２に示したペイロード２３０のデータ長に応じて互いにパケット長が異なる。ＧＡＰ４２１〜４３５は、出力データ４００に対してパケット帯域制御回路１００が挿入したＧＡＰである。
【００２８】
図４に示すように、パケット帯域制御回路１００は、パケット長より短い周期でパケットの読み出しおよび非読み出しを制御することにより、パケット内（１パケットの途中）にもＧＡＰを挿入する。たとえば、パケット４１１（パケットＡ）に対してはＧＡＰ４２１〜４２３が挿入されている。また、パケット４１２にはＧＡＰ４２５が挿入されている。また、パケット４１３にはＧＡＰ４２７〜４３５が挿入されている。これにより、図３に示したバス幅３０２による帯域の誤差を抑制することができる。
【００２９】
（実施の形態にかかるパケット帯域制御回路の実施例）
図５は、実施の形態にかかるパケット帯域制御回路の実施例を示す図である。図１に示したパケット帯域制御回路１００は、たとえば図５に示すパケット帯域制御回路５００により実現することができる。図５に示すパケット生成回路１１は、パケット帯域制御回路５００による帯域制御の対象のパラレルデータ化されたパケットを生成する回路である。パケット帯域制御回路５００は、パケット帯域制御回路１００によって生成されたパケット（パラレルデータ）の帯域を制御し、帯域を制御したパケットを出力する。
【００３０】
パケット帯域制御回路５００には、パケット生成回路１１からのパケットと、ＣＬＫと、が入力される。ＣＬＫは、パケット帯域制御回路５００における動作タイミングの基準となる基準クロックである。たとえば、ＣＬＫは図３に示したクロック３０１である。また、パケット帯域制御回路５００には、たとえば外部の制御装置により、設定帯域（ＢＡＮＤ）と、周期と、バス幅と、が設定される。
【００３１】
設定帯域は、パケット帯域制御回路５００が制御するパケットの帯域の目標値（一例としては１０［Ｇｂｐｓ］）である。周期は、ＣＬＫの周期、すなわちパケット帯域制御回路５００の動作タイミングの１サイクル分の長さ（一例としては１６［ｎｓ］）である。バス幅は、パケット帯域制御回路５００が帯域制御を行うパケットのパラレルデータのバス幅（一例としては６４［ｂｙｔｅ］）である。たとえば、パケット帯域制御回路５００に設定されるバス幅は図３に示したバス幅３０２である。
【００３２】
パケット帯域制御回路５００は、たとえば、デマルチプレクサ５０１と、ＦＩＦＯメモリ５０２と、マルチプレクサ５０３と、フリップフロップ５０４と、ライトポインタ５０５と、ＦＩＦＯ使用量チェック部５０６と、を備える。また、パケット帯域制御回路５００は、ＲＤＹＴ生成部５０７と、ＲＤＹＴタイミング調整部５０８と、基準時間決定部５０９と、周期カウンタ５１０と、を備える。また、パケット帯域制御回路５００は、読出可能バイト数計算部５１１と、ＥＮ生成部５１２と、読出有効バイト数通知部５１３と、ＥＮ補正部５１４と、ＥＮ制御部５１５と、リードポインタ５１６と、を備える。
【００３３】
図１に示したメモリ１０１は、たとえばＦＩＦＯメモリ５０２により実現することができる。図１に示した出力部１０２は、たとえばマルチプレクサ５０３、フリップフロップ５０４およびリードポインタ５１６により実現することができる。図１に示した制御部１０３は、たとえば基準時間決定部５０９、周期カウンタ５１０、読出可能バイト数計算部５１１、ＥＮ生成部５１２、読出有効バイト数通知部５１３、ＥＮ補正部５１４およびＥＮ制御部５１５により実現することができる。
【００３４】
デマルチプレクサ５０１には、パケット生成回路１１によって生成されたパケット（ＤＡＴＡＩＮ，ＳＯＰＩＮ，ＥＯＰＩＮ，ＥＮＡＩＮ，ＭＴＹＩＮ，ＥＲＲＩＮ，ＣＨＮＩＮ，ＰＫＴＬＩＮ）が入力される。たとえば、パケットに含まれるＤＡＴＡＩＮは、図２に示したヘッダ２２０およびペイロード２３０の信号である。パケットに含まれるＳＯＰＩＮは、パケットの末尾を示す信号である。パケットに含まれるＥＯＰＩＮは、パケットの先頭を示す信号である。
【００３５】
パケットに含まれるＥＮＡＩＮは、有効データ（ＤＡＴＡ）が入力されているか否かを示す信号である。パケットに含まれるＭＴＹＩＮは、ヘッダ２２０およびペイロード２３０（ＤＡＴＡ）における空き領域の量を示す信号である。その他、パケットには、たとえばＥＲＲＩＮ、ＣＨＮＩＮ、ＰＫＴＬＩＮなどの各種の信号が含まれていてもよい。
【００３６】
デマルチプレクサ５０１は、入力されたパケットを、ライトポインタ５０５からの書き込み指示に従って、ＦＩＦＯメモリ５０２に書き込み可能なフォーマットに変換してＦＩＦＯメモリ５０２に書き込む。データ１２は、ＦＩＦＯメモリ５０２に書き込まれた６４０［ｂｉｔ］のデータである。図５に示す例では、データ１２は、ＤＡＴＡＩＮに対応するＤＡＴＡと、ＥＲＲＩＮに対応するＥＲＲと、ＣＨＮＩＮに対応するＣＨＮと、ＰＫＴＬＩＮに対応するＰＫＴＬと、を含む。また、データ１２は、ＳＯＰＩＮに対応するＳＯＰと、ＥＯＰＩＮに対応するＥＯＰと、ＥＮＡＩＮに対応するＥＮＡと、ＭＴＹＩＮに対応するＭＴＹと、を含む。たとえばＤＡＴＡは、１サイクル分の５１２［ｂｉｔ］（６４［ｂｙｔｅ］）の有効データである。
【００３７】
ＦＩＦＯメモリ５０２は、パケット帯域制御回路５００による帯域制御の対象のパケットを格納するＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ：先入れ先出し）のメモリ（バッファ）である。ＦＩＦＯメモリ５０２における１〜７６８の数値はＦＩＦＯメモリ５０２のアドレスを示している。ＦＩＦＯメモリ５０２における書き込み先のポインタや読み出し先のポインタは、このアドレス（１〜７６８）によって指定される。
【００３８】
マルチプレクサ５０３は、リードポインタ５１６からの読み出し指示に従って、ＦＩＦＯメモリ５０２からの有効データの読み出しを行う。パケット帯域制御回路５００によるパケットの帯域制御は、マルチプレクサ５０３における有効データの読み出しを制御することによって行われる。ＦＩＦＯメモリ５０２からの有効データの読み出しは、ＣＬＫが示すサイクルごとに、パケット帯域制御回路５００におけるパラレルデータ処理のバス幅（たとえば６４［ｂｙｔｅ］）の単位で行われる。したがって、マルチプレクサ５０３から読み出されるデータには、無効なデータ領域が存在する場合がある。
【００３９】
マルチプレクサ５０３は、ＦＩＦＯメモリ５０２から読み出した有効データを、それぞれのデータ（ＤＡＴＡＯＵＴ，ＥＲＲＯＵＴ，ＣＨＮＯＵＴ，ＰＫＴＬＯＵＴ，ＳＯＰＯＵＴ，ＥＯＰＯＵＴ，ＥＮＯＵＴ，ＭＴＹＯＵＴ）に分割する。そして、マルチプレクサ５０３は、分割したデータをフリップフロップ５０４へ出力する。また、マルチプレクサ５０３は、有効データ（分割したデータ）を出力しない場合はＧＡＰをフリップフロップ５０４へ出力する。ＧＡＰは、一例としては、“０００００…”や“１１１１１…”などの無効なデータ（無効領域）である。
【００４０】
フリップフロップ５０４（ＦＦ：Ｆｌｉｐ  Ｆｌｏｐ）は、マルチプレクサ５０３から出力されたデータ（ＤＡＴＡＯＵＴ，ＥＲＲＯＵＴ，ＣＨＮＯＵＴ，ＰＫＴＬＯＵＴ，ＳＯＰＯＵＴ，ＥＯＰＯＵＴ，ＥＮＯＵＴ，ＭＴＹＯＵＴ）をラッチ出力する。たとえばマルチプレクサ５０３によって読み出されて出力されるデータが６４［ｂｙｔｅ］（６４０［ｂｉｔ］）幅のパラレルデータである場合は、各ビットに対応して６４０個のフリップフロップ５０４が設けられる。これにより、帯域制御された６４［ｂｙｔｅ］幅のパラレルデータ（ＤＡＴＡＯＵＴ，ＥＲＲＯＵＴ，ＣＨＮＯＵＴ，ＰＫＴＬＯＵＴ，ＳＯＰＯＵＴ，ＥＯＰＯＵＴ，ＥＮＯＵＴ，ＭＴＹＯＵＴ）がパケット帯域制御回路５００の後段へ出力される。
【００４１】
フリップフロップ５０４によるデータのラッチは、後述するＥＮ制御部５１５からのＥＮ（“Ｈｉｇｈ”）に基づいて行われる。これにより、マルチプレクサ５０３から出力されたデータを、ＦＩＦＯメモリ５０２から有効データが読み出されている間のみ出力することができる。
【００４２】
ライトポインタ５０５は、ＦＩＦＯ使用量チェック部５０６から通知された書き込み先のアドレスを指定して、デマルチプレクサ５０１に対してＦＩＦＯメモリ５０２へのデータの書き込みを指示する。また、ライトポインタ５０５は、パケット生成回路１１から入力されるデータのＥＮＡＩＮに基づいて、パケット生成回路１１から有効データが入力されている期間（ＥＮＡＩＮ＝Ｈｉｇｈの期間）にのみデマルチプレクサ５０１にデータの書き込みを指示する。また、ライトポインタ５０５によるデマルチプレクサ５０１への書き込みの指示はＦＩＦＯ使用量チェック部５０６へ通知される。
【００４３】
ＦＩＦＯ使用量チェック部５０６は、ライトポインタ５０５から通知された書き込みの指示と、リードポインタ５１６から通知された読み出しの指示と、に基づいてＦＩＦＯメモリ５０２に格納されているデータの量（ＦＩＦＯ使用量）を検出する。また、ＦＩＦＯ使用量チェック部５０６は、ライトポインタ５０５から通知された書き込みの指示と、リードポインタ５１６から通知された読み出しの指示と、に基づいてＦＩＦＯメモリ５０２における次の書き込み先のアドレスをライトポインタ５０５に通知する。
【００４４】
また、ＦＩＦＯ使用量チェック部５０６は、ＦＩＦＯメモリ５０２にデータが格納されている場合は、ＦＩＦＯメモリ５０２からデータを読み出し可能であることをＥＮ生成部５１２へ通知する。また、ＦＩＦＯ使用量チェック部５０６は、ＦＩＦＯメモリ５０２に格納されているデータの量が一定量以上になると、ＲＤＹＴ生成部５０７に対して、パケットの入力停止の指示を行う。
【００４５】
ＲＤＹＴ生成部５０７は、ＦＩＦＯ使用量チェック部５０６からパケットの入力停止の指示があると、パケットの入力停止を要求する信号であるＲＤＹＴを生成する。そして、ＲＤＹＴ生成部５０７は、生成したＲＤＹＴをＲＤＹＴタイミング調整部５０８へ出力する。ＲＤＹＴタイミング調整部５０８は、ＲＤＹＴ生成部５０７から出力されたＲＤＹＴを、セグメント単位のタイミングに合うようにパケット帯域制御回路５００の前段へ出力することにより、パケット生成回路１１からのパケットの入力を停止させる。なお、セグメントはパケットの先頭から最後までの単位である。
【００４６】
これにより、パケット生成回路１１からパケット帯域制御回路５００へ入力されるデータがＦＩＦＯメモリ５０２に入りきらなくなることを回避することができる。ＲＤＹＴタイミング調整部５０８によるＲＤＹＴの出力先は、たとえばパケット生成回路１１、またはパケット生成回路１１を制御する回路である。
【００４７】
基準時間決定部５０９は、パケット帯域制御回路５００に対して設定された設定帯域に応じた基準時間を、基準時間設定データベース５０９ａを参照することにより決定する。基準時間は、パケット帯域制御回路５００による帯域の制御周期の長さである。以下、基準時間ごとの各制御周期を基準期間と称する。基準時間設定データベース５０９ａは、設定帯域と基準時間との対応関係を記憶するデータベースである。基準時間設定データベース５０９ａについては後述する（たとえば図６参照）。基準時間決定部５０９は、決定した基準時間を周期カウンタ５１０および読出可能バイト数計算部５１１へ通知する。
【００４８】
周期カウンタ５１０は、パケット帯域制御回路５００へ入力されたＣＬＫと、基準時間決定部５０９から通知された基準時間と、に基づいて基準時間パルスを生成する。基準時間パルスは、基準時間の周期、すなわち基準期間（制御周期）の区切りを示すパルスである。周期カウンタ５１０は、生成した基準時間パルスをＥＮ生成部５１２、ＥＮ補正部５１４およびＥＮ制御部５１５へ出力する。一例として、基準時間が６４［μｓ］であり、ＣＬＫの周期が１６［ｎｓ］であるとする。この場合に、周期カウンタ５１０は、たとえばＣＬＫの立ち上がり回数をカウントし、カウント値が６４［μｓ］／１６［ｎｓ］＝４０００回に達するごとにパルスを生成してカウント値をリセットすることにより基準時間パルスを生成することができる。
【００４９】
読出可能バイト数計算部５１１は、有効データおよびＧＡＰの読み出し可能な各バイト数の計算を行う。たとえば、読出可能バイト数計算部５１１は、下記（１）式によって、基準時間決定部５０９から通知された基準時間（基準期間）ごとに読み出し可能な有効データのバイト数（データ読出可能バイト数）を計算する。
【００５０】
データ読出可能バイト数＝設定帯域×基準時間／８［ｂｉｔ］…（１）
【００５１】
また、読出可能バイト数計算部５１１は、下記（２）式によって、基準時間決定部５０９から通知された基準時間（基準期間）ごとに読み出し可能なＧＡＰのバイト数（ＧＡＰ読出可能バイト数）を計算する。なお、ＧＡＰの読み出しとは、有効データの非読み出し、すなわち無効領域の出力である。
【００５２】
ＧＡＰ読出可能バイト数＝基準時間×バス幅／周期−データ読出可能バイト数…（２）
【００５３】
上記（１）式における設定帯域は、パケット帯域制御回路５００に対して設定された設定帯域である。上記（１）式および上記（２）式における基準時間は、基準時間決定部５０９から通知された基準時間である。上記（２）式におけるバス幅は、パケット帯域制御回路５００に設定されたバス幅である。上記（２）式における周期は、パケット帯域制御回路５００に設定されたＣＬＫの周期である。
【００５４】
一例として、設定帯域を１０［Ｇｂｐｓ］、基準時間を６４［μｓ］、周期を１６［ｎｓ］、バス幅を６４［ｂｙｔｅ］とする。この場合に、読出可能バイト数計算部５１１は、上記（１）式により、データ読出可能バイト数を（１０［Ｇｂｐｓ］×６４［μｓ］）／８［ｂｉｔ］＝８０００［ｂｙｔｅ］と計算する。また、読出可能バイト数計算部５１１は、上記（２）式により、ＧＡＰ読出可能バイト数を（６４［μｓ］×６４［ｂｙｔｅ］）／１６［ｎｓ］−８０００［ｂｙｔｅ］＝１７６０００［ｂｙｔｅ］と計算する。
【００５５】
読出可能バイト数計算部５１１は、計算したデータ読出可能バイト数およびＧＡＰ読出可能バイト数をＥＮ生成部５１２へ通知する。また、読出可能バイト数計算部５１１は、計算したデータ読出可能バイト数をＥＮ補正部５１４へ通知する。
【００５６】
ＥＮ生成部５１２は、読出可能バイト数計算部５１１から通知されたデータ読出可能バイト数およびＧＡＰ読出可能バイト数の比率を計算し、有効データの読み出し量とＧＡＰの読み出し量との比率が計算した比率に近づくようにＥＮを生成する。ＥＮは、リードポインタ５１６およびマルチプレクサ５０３による有効データの読み出しを制御するイネーブル信号である。たとえば、ＥＮは、値が“Ｈｉｇｈ”である場合は有効データを読み出すことを指示し、値が“Ｌｏｗ”である場合は有効データを読み出さない、すなわちＧＡＰを読み出すことを指示する。
【００５７】
また、ＥＮ生成部５１２は、周期カウンタ５１０から出力される基準時間パルスが示す基準時間（基準期間）ごとにＥＮの調整を行う。また、ＥＮ生成部５１２は、マルチプレクサ５０３から出力されるデータにおけるＭＴＹを取得し、取得したＭＴＹに基づくＥＮの調整を行う。また、ＥＮ生成部５１２は、たとえば、ＦＩＦＯメモリ５０２からデータを読み出し可能であることがＦＩＦＯ使用量チェック部５０６から通知されている期間においてのみ、有効データを読み出すことを指示するＥＮを生成する。ＥＮ生成部５１２によるＥＮの生成については後述する（たとえば図７，図８参照）。
【００５８】
読出有効バイト数通知部５１３は、マルチプレクサ５０３によってＦＩＦＯメモリ５０２から有効データが読み出されるごとに、読み出された有効データのバイト数をカウントする。たとえば、読出有効バイト数通知部５１３は、ＥＮ制御部５１５から出力されたＥＮが“Ｈｉｇｈ”である期間において、マルチプレクサ５０３から出力されるデータにおけるＤＡＴＡのバイト数をカウントする。そして、読出有効バイト数通知部５１３は、カウントしたバイト数を読出有効データバイト数としてＥＮ補正部５１４へ通知する。
【００５９】
ＥＮ補正部５１４は、読出可能バイト数計算部５１１から通知されたデータ読出可能バイト数と、読出有効バイト数通知部５１３から通知された読出有効データバイト数と、の比較に基づくＥＮ補正信号をＥＮ制御部５１５へ出力する。また、ＥＮ補正部５１４は、周期カウンタ５１０から出力される基準時間パルスが示す基準時間（基準期間）ごとにＥＮ補正信号の更新を行う。
【００６０】
ＥＮ補正信号は、基準時間内に現れる、上述したバス幅に起因する帯域の誤差を吸収するためのＥＮ補正信号であって、ＥＮ生成部５１２により生成されたＥＮをＥＮ制御部５１５に制御（補正）させる指示信号である。一例としては、ＥＮ補正信号は、ＡＤＤ＿ＥＮおよびＤＥＬ＿ＥＮの２つの信号により実現される。ＡＤＤ＿ＥＮは、値が“Ｈｉｇｈ”である場合はＥＮ（“Ｈｉｇｈ”）を追加し、値が“Ｌｏｗ”である場合はＥＮ（“Ｈｉｇｈ”）を追加しないことを指示する。また、ＤＥＬ＿ＥＮは、値が“Ｈｉｇｈ”である場合はＥＮ（“Ｈｉｇｈ”）を削除し、値が“Ｌｏｗ”である場合はＥＮ（“Ｈｉｇｈ”）を削除しないことを示す。ＥＮ補正部５１４によるＥＮ補正信号の出力については後述する（たとえば図９参照）。
【００６１】
ＥＮ制御部５１５は、ＥＮ生成部５１２から出力されたＥＮを、ＥＮ補正部５１４から出力されたＥＮ補正信号に基づいて制御する。そして、ＥＮ制御部５１５は、制御したＥＮを、フリップフロップ５０４、読出有効バイト数通知部５１３およびリードポインタ５１６へ出力する。また、ＥＮ制御部５１５は、周期カウンタ５１０から出力される基準時間パルスが示す基準時間（基準期間）ごとにＥＮの制御を行う。ＥＮ制御部５１５によるＥＮの制御については後述する（たとえば図１０参照）。
【００６２】
リードポインタ５１６は、読み出し先のアドレスを指定して、マルチプレクサ５０３に対してＦＩＦＯメモリ５０２からのデータの読み出しを指示する。また、リードポインタ５１６は、ＥＮ制御部５１５から出力されたＥＮが“Ｈｉｇｈ”になっている場合にのみマルチプレクサ５０３に対してデータの読み出しを指示する。また、リードポインタ５１６によるマルチプレクサ５０３への読み出しの指示はＦＩＦＯ使用量チェック部５０６へ通知される。
【００６３】
（実施の形態にかかる基準時間設定データベース）
図６は、実施の形態にかかる基準時間設定データベースの一例を示す図である。図５に示した基準時間決定部５０９は、たとえば図６に示す基準時間設定データベース５０９ａにアクセス可能である。基準時間設定データベース５０９ａは、パケット帯域制御回路５００の内部のメモリに記憶されていてもよいし、パケット帯域制御回路５００の外部のメモリに記憶されていてもよい。
【００６４】
図６に示す基準時間設定データベース５０９ａにおいては、設定帯域［Ｇｂｐｓ］の範囲と、基準時間と、が対応付けられている。たとえば、設定帯域の１０［Ｇｂｐｓ］以上の範囲には基準時間として６４［μｓ］が対応付けられている。また、設定帯域の９［Ｇｂｐｓ］以上、１０［Ｇｂｐｓ］未満の範囲には基準時間として７１［μｓ］が対応付けられている。基準時間設定データベース５０９ａは、たとえば下記（３）式に基づいて作成することができる。
【００６５】
基準時間＝８００００［ｂｙｔｅ］×８［ｂｉｔ］×１０＾６／設定帯域［Ｇｂｐｓ］  …（３）
【００６６】
図６に示すように、基準時間設定データベース５０９ａにおいては、設定帯域が低いほど長い基準時間が対応付けられている。これにより、設定帯域が低い場合は長い基準期間で帯域を制御し、帯域を精度よく制御することが可能になる。
【００６７】
（実施の形態にかかるＥＮ生成部による処理）
図７は、実施の形態にかかるＥＮ生成部による処理の一例を示すフローチャートである。図５に示したＥＮ生成部５１２は、たとえば図７に示す各ステップを実行することによりＥＮを生成する。まず、ＥＮ生成部５１２は、周期カウンタ５１０から基準時間パルスが入力されたか否かを判断し（ステップＳ７０１）、基準時間パルスが入力されるまで待つ（ステップＳ７０１：Ｎｏのループ）。
【００６８】
ステップＳ７０１において、基準時間パルスが入力されると（ステップＳ７０１：Ｙｅｓ）、ＥＮ生成部５１２は、ステップＳ７０２へ移行する。すなわち、ＥＮ生成部５１２は、読出可能バイト数計算部５１１から通知されたデータ読出可能バイト数を、読出可能バイト数計算部５１１から通知されたＧＡＰ読出可能バイト数で除算した値をＸおよびＸ’に格納する（ステップＳ７０２）。これにより、今回の基準期間（制御周期）において読み出すべき有効データとＧＡＰの比率を得ることができる。基準期間は、基準時間ごとの期間、すなわち基準時間パルスによって区切られた期間である。
【００６９】
つぎに、ＥＮ生成部５１２は、周期カウンタ５１０から基準時間パルスが入力されたか否かを判断する（ステップＳ７０３）。基準時間パルスが入力されていない場合（ステップＳ７０３：Ｎｏ）は、ＥＮ生成部５１２は、ステップＳ７０５へ移行する。基準時間パルスが入力された場合（ステップＳ７０３：Ｙｅｓ）は、ＥＮ生成部５１２は、ステップＳ７０４へ移行する。すなわち、ＥＮ生成部５１２は、読出可能バイト数計算部５１１から通知されたデータ読出可能バイト数を、読出可能バイト数計算部５１１から通知されたＧＡＰ読出可能バイト数で除算した値をＸに格納する（ステップＳ７０４）。
【００７０】
つぎに、ＥＮ生成部５１２は、ＥＭＰＴＹの値をＭＴＹ’だけ増加させる（ステップＳ７０５）。ＥＭＰＴＹは、マルチプレクサ５０３から出力される有効データにおける空き領域の蓄積量を示す情報である。ＭＴＹ’は、ＥＭＰＴＹの値を変化させるために用いられる情報である。ＥＭＰＴＹおよびＭＴＹ’の初期値は０とする。
【００７１】
つぎに、ＥＮ生成部５１２は、Ｘの値が１以上であるか否かを判断する（ステップＳ７０６）。これにより、今回の基準期間内において読み出すべき有効データの残りのバイト数が、今回の基準期間内において読み出すべきＧＡＰの残りのバイト数以上であるか否かを判断することができる。
【００７２】
ステップＳ７０６において、Ｘの値が１以上である場合（ステップＳ７０６：Ｙｅｓ）は、ＥＮ生成部５１２は、有効データを読み出すことを指示する“Ｈｉｇｈ”（データ出力）をＥＮに設定する（ステップＳ７０７）。上述したように、ＥＮは、ＥＮ生成部５１２がＥＮ制御部５１５へ出力する信号である。また、ＥＮ生成部５１２は、マルチプレクサ５０３から出力される有効データにおけるＭＴＹ（空き領域の量）の値をＭＴＹ’に格納する（ステップＳ７０８）。つぎに、ＥＮ生成部５１２は、Ｘの値を１だけ減少させ（ステップＳ７０９）、ステップＳ７０３へ戻る。
【００７３】
ステップＳ７０６において、Ｘの値が１未満である場合（ステップＳ７０６：Ｎｏ）は、ＥＮ生成部５１２は、ＥＭＰＴＹが６４以上であるか否かを判断する（ステップＳ７１０）。ＥＭＰＴＹが６４未満である場合（ステップＳ７１０：Ｎｏ）は、ＥＮ生成部５１２は、ＧＡＰを読み出すことを指示する“Ｌｏｗ”（ＧＡＰ出力）をＥＮに設定する（ステップＳ７１１）。つぎに、ＥＮ生成部５１２は、Ｘの値をＸ’だけ増加させ（ステップＳ７１２）、ステップＳ７０３へ戻る。
【００７４】
ステップＳ７１０において、ＥＭＰＴＹが６４以上である場合（ステップＳ７１０：Ｙｅｓ）は、ＦＩＦＯメモリ５０２から読み出されて出力された有効データに含まれる空き領域の蓄積量が、ＤＡＴＡの１サイクル分に達したと判断することができる。この場合は、ＥＮ生成部５１２は、有効データを読み出すことを指示する“Ｈｉｇｈ”（データ出力）をＥＮに設定する（ステップＳ７１３）。また、ＥＮ生成部５１２は、マルチプレクサ５０３から出力されるデータにおけるＭＴＹ（空き領域の量）の値をＭＴＹ’に格納する（ステップＳ７１４）。また、ＥＮ生成部５１２は、ＥＭＰＴＹの値を６４だけ減少させ（ステップＳ７１５）、ステップＳ７１２へ移行する。
【００７５】
また、ＥＮ生成部５１２は、ステップＳ７０６において、ＦＩＦＯメモリ５０２からデータを読み出し可能であることがＦＩＦＯ使用量チェック部５０６から通知されていない場合には、Ｘの値が１以上であってもステップＳ７１１へ移行するようにしてもよい。これにより、ＦＩＦＯメモリ５０２からデータを読み出し可能でない場合はＦＩＦＯメモリ５０２からデータを読み出さないようにすることができる。
【００７６】
このように、ＥＮ生成部５１２は、データ読出可能バイト数／ＧＡＰ読出可能バイト数をＸの初期値として設定し、Ｘが１以上である場合は有効データを読み出し、Ｘが１未満である場合はＧＡＰを読み出すようにＥＮを生成する。そして、ＥＮ生成部５１２は、データを出力する場合はＸを１だけ減少させ、ＧＡＰを読み出す場合はＸをデータ読出可能バイト数／ＧＡＰ読出可能バイト数（Ｘ’）だけ増加させる。これにより、読み出される有効データとＧＡＰの比率を、読出可能バイト数計算部５１１から通知されたデータ読出可能バイト数のＧＡＰ読出可能バイト数の比率に近づくように制御することができる。
【００７７】
すなわち、パケット帯域制御回路５００は、有効データの出力量とＧＡＰの出力量との設定領域に基づく比率（Ｘ’）を計算し、有効データの出力量とＧＡＰの出力量との比率が計算した比率に近づくように有効データの読み出しと非読み出しとを切り替える。
【００７８】
また、ＥＮ生成部５１２は、有効データを読み出す場合に、マルチプレクサ５０３から出力される有効データにおけるＭＴＹの蓄積量をＥＭＰＴＹとして保持しておく。すなわち、ＥＭＰＴＹは、マルチプレクサ５０３から出力される有効データにおける空き領域の蓄積量を示す。ＥＮ生成部５１２は、ＥＭＰＴＹが６４バイト以上になると、すなわち読み出された有効データにおける空き領域（空出し部分）の蓄積量が１サイクル分のデータ量以上になると、Ｘが１未満であっても有効データを読み出すように制御する。これにより、読み出された有効データにおける空き領域に起因する、読み出された有効データの帯域における設定帯域とのずれを補償することができる。
【００７９】
（実施の形態にかかるＥＮ生成部によるＥＮの生成および帯域）
図８は、実施の形態にかかるＥＮ生成部によるＥＮの生成および帯域の一例を示す図である。図８に示すテーブル８００は、基準時間（基準期間）ごとの、ＥＮ生成部５１２によるＥＮの生成結果と、読み出される有効データの帯域の計算結果と、を示している。テーブル８００のＸおよびＥＭＰＴＹは、図７に示したＸおよびＥＭＰＴＹである。テーブル８００のデータ出力／ＧＡＰ出力は、ＥＮの設定結果である。すなわち、データ出力はＥＮ＝“Ｈｉｇｈ”に対応し、ＧＡＰ出力はＥＮ＝“Ｌｏｗ”に対応する。
【００８０】
また、テーブル８００に示す例では、設定帯域を１０［Ｇｂｐｓ］とし、ＣＬＫの周期を３２［ｎｓ］としている。また、データ読出可能バイト数を８００００［ｂｙｔｅ］とし、ＧＡＰ読出可能バイト数を４８０００［ｂｙｔｅ］とし、ＤＡＴＡのバス幅を６４［ｂｙｔｅ］としている。また、ここでは有効データのＭＴＹは常に０であったとする。テーブル８００の各行におけるサイクル８０１，８０２，８０３，８０４，…は、基準時間に基づく１番目、２番目、３番目、４番目、…の基準期間を示している。
【００８１】
たとえば、サイクル８０１においては、Ｘの値は８００００／４８０００＝１．６６６６６７（≧１）となる。このため、ＥＮ生成部５１２は、ＥＮを“Ｈｉｇｈ”（データ出力）に設定する。したがって、先頭から読出した有効データの量は６４［ｂｙｔｅ］×８［ｂｉｔ］＝５１２［ｂｉｔ］である。また、先頭からの経過時間は１サイクル分の３２［ｎｓ］である。このため、先頭からの帯域は、５１２［ｂｉｔ］／３２［ｎｓ］＝１６［Ｇｂｐｓ］となる。
【００８２】
サイクル８０１の次のサイクル８０２においては、Ｘの値は１．６６６６６７−１＝０．６６６６６７（＜１）となる。このため、ＥＮ生成部５１２は、ＥＮを“Ｌｏｗ”（ＧＡＰ出力）に設定する。したがって、先頭から読出した有効データの量はサイクル８０１から変わらず６４［ｂｙｔｅ］×８［ｂｉｔ］＝５１２［ｂｉｔ］である。また、先頭からの経過時間は２サイクル分の６４［ｎｓ］である。このため、先頭からの帯域は、５１２［ｂｉｔ］／６４［ｎｓ］＝８［Ｇｂｐｓ］となる。
【００８３】
サイクル８０２の次のサイクル８０３においては、Ｘの値は０．６６６６６７＋１．６６６６６７＝２．３３３３３３（≧１）となる。このため、ＥＮ生成部５１２は、ＥＮを“Ｈｉｇｈ”（データ出力）に設定する。したがって、先頭から読出した有効データの量は６４［ｂｙｔｅ］×８［ｂｉｔ］×２＝１０２４［ｂｉｔ］である。また、先頭からの経過時間は３サイクル分の９６［ｎｓ］である。このため、先頭からの帯域は、１０２４［ｂｉｔ］／９６［ｎｓ］＝１０．６６６６６６６７［Ｇｂｐｓ］となる。
【００８４】
サイクル８０３の次のサイクル８０４においては、Ｘの値は２．３３３３３３−１＝１．３３３３３３（≧１）となる。このため、ＥＮ生成部５１２は、ＥＮを“Ｈｉｇｈ”（データ出力）に設定する。したがって、先頭から読出した有効データの量は６４［ｂｙｔｅ］×８［ｂｉｔ］×３＝１５３６［ｂｉｔ］である。また、先頭からの経過時間は４サイクル分の１２８［ｎｓ］である。このため、先頭からの帯域は、１５３６［ｂｉｔ］／１２８［ｎｓ］＝１２［Ｇｂｐｓ］となる。
【００８５】
以降のサイクルにおいても同様に、ＥＮ生成部５１２はＥＮを生成する。このように、ＤＡＴＡのバス幅が６４［ｂｙｔｅ］であることから、６４［ｂｙｔｅ］未満のデータ量の調整をＥＮ生成部５１２において行うことができず、実際の帯域は設定帯域の１０［Ｇｂｐｓ］に対してずれる。なお、テーブル８００の８サイクルでの帯域に示すように、長い周期で計算した帯域は１０［Ｇｂｐｓ］となっている。また、図８に示した例では有効データのＭＴＹが常に０であるため、ＥＭＰＴＹも常に０となっている。
【００８６】
（実施の形態にかかるＥＮ補正部による処理）
図９は、実施の形態にかかるＥＮ補正部による処理の一例を示すフローチャートである。図５に示したＥＮ補正部５１４は、たとえば図９に示す各ステップを実行することにより、ＥＮ制御部５１５へのＥＮ補正信号の出力を行う。まず、ＥＮ補正部５１４は、周期カウンタ５１０から基準時間パルスが入力されたか否かを判断し（ステップＳ９０１）、基準時間パルスが入力されるまで待つ（ステップＳ９０１：Ｎｏのループ）。
【００８７】
ステップＳ９０１において、基準時間パルスが入力されると（ステップＳ９０１：Ｙｅｓ）、ＥＮ補正部５１４は、読出可能バイト数計算部５１１から通知されたデータ読出可能バイト数をＥＸＰ＿ＤＡＴＡに格納する（ステップＳ９０２）。ＥＸＰ＿ＤＡＴＡは、データ読出可能バイト数と、実際に読み出された有効データのバイト数（初期状態では０）と、の差を示す情報である。
【００８８】
つぎに、ＥＮ補正部５１４は、周期カウンタ５１０から基準時間パルスが入力されたか否かを判断する（ステップＳ９０３）。基準時間パルスが入力されていない場合（ステップＳ９０３：Ｎｏ）は、ＥＮ補正部５１４は、ステップＳ９１０へ移行する。基準時間パルスが入力された場合（ステップＳ９０３：Ｙｅｓ）は、ＥＮ補正部５１４は、ＥＸＰ＿ＤＡＴＡが０より大きいか否かを判断する（ステップＳ９０４）。
【００８９】
ステップＳ９０４において、ＥＸＰ＿ＤＡＴＡが０より大きい場合（ステップＳ９０４：Ｙｅｓ）は、前回の基準期間内において、実際に読み出された有効データのバイト数がデータ読出可能バイト数より少なかったと判断することができる。この場合は、ＥＮ補正部５１４は、ＡＤＤ＿ＥＮに“Ｈｉｇｈ”を設定し、ＤＥＬ＿ＥＮに“Ｌｏｗ”を設定する（ステップＳ９０５）。これにより、今回の基準期間内において、実際に読み出される有効データのバイト数をデータ読出可能バイト数より多くする制御を行うことができる。なお、初回のステップＳ９０４においては、ステップＳ９０２によってＥＸＰ＿ＤＡＴＡにデータ読出可能バイト数が格納されているため、ＥＸＰ＿ＤＡＴＡが０より大きいと判断される。この場合にも同様に、ＥＮ補正部５１４は、ステップＳ９０５において、ＡＤＤ＿ＥＮに“Ｈｉｇｈ”を設定し、ＤＥＬ＿ＥＮに“Ｌｏｗ”を設定する。
【００９０】
ステップＳ９０４において、ＥＸＰ＿ＤＡＴＡが０より大きくない場合（ステップＳ９０４：Ｎｏ）は、ＥＮ補正部５１４は、ＥＸＰ＿ＤＡＴＡが０であるか否かを判断する（ステップＳ９０６）。ＥＸＰ＿ＤＡＴＡが０である場合（ステップＳ９０６：Ｙｅｓ）は、前回の基準期間内において、実際に読み出された有効データのバイト数がデータ読出可能バイト数と等しかったと判断することができる。この場合は、ＥＮ補正部５１４は、ＡＤＤ＿ＥＮおよびＤＥＬ＿ＥＮに“Ｌｏｗ”を設定する（ステップＳ９０７）。これにより、今回の基準期間内において、実際に読み出される有効データのバイト数がデータ読出可能バイト数に近くなるようにする制御を行うことができる。
【００９１】
ステップＳ９０６において、ＥＸＰ＿ＤＡＴＡが０でない場合（ステップＳ９０６：Ｎｏ）は、前回の基準期間内において、実際に読み出された有効データのバイト数がデータ読出可能バイト数より多かったと判断することができる。この場合は、ＥＮ補正部５１４は、ＡＤＤ＿ＥＮに“Ｌｏｗ”を設定し、ＤＥＬ＿ＥＮに“Ｈｉｇｈ”を設定する（ステップＳ９０８）。これにより、今回の基準期間内において、実際に読み出される有効データのバイト数をデータ読出可能バイト数より少なくする制御を行うことができる。
【００９２】
ステップＳ９０５，Ｓ９０７，Ｓ９０８のいずれかによってＡＤＤ＿ＥＮおよびＤＥＬ＿ＥＮを設定すると、ＥＮ補正部５１４は、読出可能バイト数計算部５１１から通知されたデータ読出可能バイト数をＥＸＰ＿ＤＡＴＡに格納する（ステップＳ９０９）。これにより、ＥＮ補正部５１４は、２回目以降の基準期間ごとに、ＥＸＰ＿ＤＡＴＡにデータ読出可能バイト数を格納することができる。
【００９３】
つぎに、ＥＮ補正部５１４は、読出有効バイト数通知部５１３から通知された読出有効データバイト数をＯＵＴ＿ＤＡＴＡに格納する（ステップＳ９１０）。つぎに、ＥＮ補正部５１４は、ＥＸＰ＿ＤＡＴＡの値をＯＵＴ＿ＤＡＴＡの値だけ減らし（ステップＳ９１１）、ステップＳ９０３へ戻る。ステップＳ９１０，Ｓ９１１により、ＥＮ補正部５１４は、ＥＸＰ＿ＤＡＴＡの値を、実際に読み出された有効データのバイト数だけ減らしていくことができる。
【００９４】
このように、ＥＮ補正部５１４は、前回の基準期間内において読み出された有効データのバイト数がデータ読出可能バイト数より多かった場合は、今回の基準期間内において読み出される有効データのバイト数を増やすようにＥＮ補正信号の出力を行う。また、ＥＮ補正部５１４は、前回の基準期間内において読み出された有効データのバイト数がデータ読出可能バイト数より少なかった場合は、今回の基準期間内において読み出される有効データのバイト数を減らすようにＥＮ補正信号の出力を行う。
【００９５】
すなわち、読み出されたパケットのバイト数の検出結果と、設定帯域に基づく出力部１０２によるパケットの一定時間内の読み出し量（データ読出可能バイト数）と、の比較結果に基づいてパケットの読み出しおよび非読み出しの制御を行うことができる。これにより、ＦＩＦＯメモリ５０２から読み出されて出力されるパケットの帯域が平均して設定帯域となるように、ＦＩＦＯメモリ５０２からのパケットの読み出しおよび非読み出しを制御することができる。
【００９６】
（実施の形態にかかるＥＮ制御部による処理）
図１０は、実施の形態にかかるＥＮ制御部による処理の一例を示すフローチャートである。図５に示したＥＮ制御部５１５は、たとえば図１０に示す各ステップを実行することにより、ＥＮ補正部５１４から出力されたＥＮ補正信号（ＡＤＤ＿ＥＮおよびＤＥＬ＿ＥＮ）に基づいて、ＥＮ生成部５１２から出力されたＥＮを制御する。そして、ＥＮ制御部５１５は、制御後のＥＮをＥＮ＿ＯＵＴとしてフリップフロップ５０４、リードポインタ５１６および読出有効バイト数通知部５１３へ出力する。
【００９７】
まず、ＥＮ制御部５１５は、周期カウンタ５１０から基準時間パルスが入力されたか否かを判断する（ステップＳ１００１）。基準時間パルスが入力されていない場合（ステップＳ１００１：Ｎｏ）は、ＥＮ制御部５１５は、ＥＮ生成部５１２から出力されたＥＮをそのままＥＮ＿ＯＵＴに設定し（ステップＳ１００２）、ステップＳ１００１へ戻る。
【００９８】
ステップＳ１００１において、基準時間パルスが入力された場合（ステップＳ１００１：Ｙｅｓ）は、ＥＮ制御部５１５は、ステップＳ１００３へ移行する。すなわち、ＥＮ制御部５１５は、ＥＮ補正部５１４からのＡＤＤ＿ＥＮが“Ｌｏｗ”であり、かつＥＮ補正部５１４からのＤＥＬ＿ＥＮが“Ｈｉｇｈ”であるか否かを判断する（ステップＳ１００３）。これにより、ＥＮ生成部５１２からのＥＮ（“Ｈｉｇｈ”）を削除すべきか否かを判断することができる。
【００９９】
ステップＳ１００３において、ＡＤＤ＿ＥＮが“Ｌｏｗ”であり、かつＤＥＬ＿ＥＮが“Ｈｉｇｈ”である場合（ステップＳ１００３：Ｙｅｓ）は、ＥＮ制御部５１５は、ＥＮ生成部５１２からのＥＮが“Ｈｉｇｈ”であるか否かを判断する（ステップＳ１００４）。ＥＮが“Ｈｉｇｈ”でない場合（ステップＳ１００４：Ｎｏ）は、ＥＮ制御部５１５は、ＥＮ生成部５１２から出力されたＥＮ（“Ｌｏｗ”）をそのままＥＮ＿ＯＵＴに設定し（ステップＳ１００５）、ステップＳ１００４へ戻る。
【０１００】
ステップＳ１００４において、ＥＮが“Ｈｉｇｈ”である場合（ステップＳ１００４：Ｙｅｓ）は、ＥＮ制御部５１５は、“Ｌｏｗ”をＥＮ＿ＯＵＴに設定し（ステップＳ１００６）、ステップＳ１００１へ戻る。ステップＳ１００４〜Ｓ１００６により、ＥＮ制御部５１５は、ＥＮ生成部５１２から出力されたＥＮを一度“Ｈｉｇｈ”から“Ｌｏｗ”に変換して出力、すなわちＥＮ生成部５１２からのＥＮ（“Ｈｉｇｈ”）を１回削除することができる。このため、今回の基準期間内において、実際に読み出される有効データのバイト数をデータ読出可能バイト数より少なくすることができる。
【０１０１】
ステップＳ１００３において、ＡＤＤ＿ＥＮが“Ｌｏｗ”でなく、またはＤＥＬ＿ＥＮが“Ｈｉｇｈ”でない場合（ステップＳ１００３：Ｎｏ）は、ＥＮ制御部５１５は、ステップＳ１００７へ移行する。すなわち、ＥＮ制御部５１５は、ＥＮ補正部５１４からのＡＤＤ＿ＥＮが“Ｈｉｇｈ”であり、かつＥＮ補正部５１４からのＤＥＬ＿ＥＮが“Ｌｏｗ”であるか否かを判断する（ステップＳ１００７）。これにより、ＥＮ生成部５１２からのＥＮに対してＥＮ（“Ｈｉｇｈ”）を追加すべきか否かを判断することができる。
【０１０２】
ステップＳ１００７において、ＡＤＤ＿ＥＮが“Ｈｉｇｈ”であり、かつＤＥＬ＿ＥＮが“Ｌｏｗ”である場合（ステップＳ１００７：Ｙｅｓ）は、ＥＮ制御部５１５は、ＥＮ生成部５１２からのＥＮが“Ｌｏｗ”であるか否かを判断する（ステップＳ１００８）。ＥＮが“Ｌｏｗ”でない場合（ステップＳ１００８：Ｎｏ）は、ＥＮ制御部５１５は、ＥＮ生成部５１２から出力されたＥＮ（“Ｈｉｇｈ”）をそのままＥＮ＿ＯＵＴに設定し（ステップＳ１００９）、ステップＳ１００８へ戻る。
【０１０３】
ステップＳ１００８において、ＥＮが“Ｌｏｗ”である場合（ステップＳ１００８：Ｙｅｓ）は、ＥＮ制御部５１５は、“Ｈｉｇｈ”をＥＮ＿ＯＵＴに設定し（ステップＳ１０１０）、ステップＳ１００１へ戻る。ステップＳ１００８〜Ｓ１０１０により、ＥＮ制御部５１５は、ＥＮ生成部５１２から出力されたＥＮを一度“Ｌｏｗ”から“Ｈｉｇｈ”に変換して出力、すなわちＥＮ生成部５１２からのＥＮに対してＥＮ（“Ｈｉｇｈ”）を１回追加することができる。このため、今回の基準期間内において、実際に読み出される有効データのバイト数をデータ読出可能バイト数より多くすることができる。
【０１０４】
ステップＳ１００７において、ＡＤＤ＿ＥＮが“Ｈｉｇｈ”でなく、またはＤＥＬ＿ＥＮが“Ｌｏｗ”でない場合（ステップＳ１００７：Ｎｏ）は、ＥＮ制御部５１５は、ステップＳ１０１１へ移行する。すなわち、ＥＮ制御部５１５は、ＥＮ生成部５１２から出力されたＥＮをそのままＥＮ＿ＯＵＴに設定し（ステップＳ１０１１）、ステップＳ１００１へ戻る。これにより、今回の基準期間内において、実際に読み出される有効データのバイト数をデータ読出可能バイト数に近づけることができる。
【０１０５】
このように、ＥＮ制御部５１５は、ＥＮ補正部５１４からのＡＤＤ＿ＥＮが“Ｌｏｗ”であり、かつＤＥＬ＿ＥＮが“Ｈｉｇｈ”である場合に、ＥＮ生成部５１２からのＥＮ（“Ｈｉｇｈ”）を削除する。また、ＥＮ制御部５１５は、ＥＮ補正部５１４からのＡＤＤ＿ＥＮが“Ｈｉｇｈ”であり、かつＤＥＬ＿ＥＮが“Ｌｏｗ”である場合に、ＥＮ生成部５１２からのＥＮに対してＥＮ（“Ｈｉｇｈ”）を追加する。これにより、ＥＮ制御部５１５は、ＥＮ補正部５１４から出力されたＥＮ補正信号（ＡＤＤ＿ＥＮおよびＤＥＬ＿ＥＮ）に基づいて、ＥＮ生成部５１２から出力されたＥＮを制御することができる。
【０１０６】
（実施の形態にかかるパケット帯域制御回路による処理）
図１１は、実施の形態にかかるパケット帯域制御回路による処理の流れを示す図である。実施の形態にかかるパケット帯域制御回路５００による処理は、たとえば図１１に示す各ステップのようになる。
【０１０７】
まず、パケット帯域制御回路５００は、たとえば外部からの制御によりインプット条件を設定する（ステップＳ１１０１）。ステップＳ１１０１によって設定されるインプット条件には、上述した設定帯域、バス幅、ＣＬＫの周期などが含まれる。つぎに、パケット帯域制御回路５００は、基準期間を決定する（ステップＳ１１０２）。ステップＳ１１０２は、たとえばステップＳ１１０１によって設定された設定帯域に基づいて基準時間決定部５０９が基準時間設定データベース５０９ａを参照することによって実行される。
【０１０８】
また、パケット帯域制御回路５００は、ステップＳ１１０２によって決定された基準時間に基づく基準時間パルスを生成する（ステップＳ１１０３）。ステップＳ１１０３は、たとえば周期カウンタ５１０によって基準時間およびＣＬＫを用いて実行される。ステップＳ１１０３によって生成された基準時間パルスは、たとえばステップＳ１１０６，Ｓ１１０８，Ｓ１１１０において用いられる。
【０１０９】
ステップＳ１１０２のつぎに、パケット帯域制御回路５００は、ステップＳ１１０２によって決定された基準時間に基づいて、データ読出可能バイト数およびＧＡＰ読出可能バイト数を計算する（ステップＳ１１０４）。ステップＳ１１０４は、たとえば読出可能バイト数計算部５１１によって実行される。
【０１１０】
また、パケット帯域制御回路５００は、ステップＳ１１０４によって計算されたデータ読出可能バイト数に基づいて、基準時間内の読出バイト数（たとえば図９に示したＥＸＰ＿ＤＡＴＡ）を決定する（ステップＳ１１０５）。ステップＳ１１０５は、たとえばＥＮ補正部５１４によって実行される。
【０１１１】
つぎに、パケット帯域制御回路５００は、ステップＳ１１０５によって決定した読出バイト数（ＥＸＰ＿ＤＡＴＡ）に基づくＥＮ補正処理を実行する（ステップＳ１１０６）。ステップＳ１１０６のＥＮ補正処理は、たとえば図９に示した処理である。また、パケット帯域制御回路５００は、ステップＳ１１０３によって生成した基準時間パルスに基づいてＥＮ補正処理を行う。また、パケット帯域制御回路５００は、ステップＳ１１１４の後においては、ステップＳ１１０６において、ステップＳ１１１４によって計算されたＯＵＴ＿ＤＡＴＡに基づくＥＮ補正処理を行う。ステップＳ１１０６は、たとえばＥＮ補正部５１４によって実行される。
【０１１２】
また、パケット帯域制御回路５００は、ステップＳ１１０６のＥＮ補正処理により、ＥＮ補正信号を生成する（ステップＳ１１０７）。ＥＮ補正信号は、たとえば図９に示した上述したＡＤＤ＿ＥＮおよびＤＥＬ＿ＥＮである。ステップＳ１１０７は、たとえばＥＮ補正部５１４によって実行される。
【０１１３】
また、パケット帯域制御回路５００は、ステップＳ１１０３によって生成した基準時間パルスに基づいてＥＮ生成処理を行う（ステップＳ１１０８）。ステップＳ１１０８のＥＮ生成処理は、たとえば図７に示した処理である。また、ステップＳ１１０８のＥＮ生成処理には、たとえばステップＳ１１０４によって計算されたデータ読出可能バイト数およびＧＡＰ読出可能バイト数が用いられる。ステップＳ１１０８は、たとえばＥＮ生成部５１２によって実行される。パケット帯域制御回路５００は、ステップＳ１１０８のＥＮ生成処理により、上述したＥＮ（イネーブル信号）を生成する（ステップＳ１１０９）。
【０１１４】
ステップＳ１１０７のつぎに、パケット帯域制御回路５００は、ステップＳ１１０７によって生成したＥＮ補正信号に基づいて、ステップＳ１１０９によって生成したＥＮを制御するＥＮ制御処理を行う（ステップＳ１１１０）。ステップＳ１１１０のＥＮ制御処理は、たとえば図１０に示した処理である。ステップＳ１１１０は、たとえばＥＮ制御部５１５によって実行される。
【０１１５】
また、パケット帯域制御回路５００は、ステップＳ１１０３によって生成した基準時間パルスに基づいてステップＳ１１１０のＥＮ制御処理を行う。パケット帯域制御回路５００は、ステップＳ１１１０のＥＮ制御処理により、出力イネーブルを生成する（ステップＳ１１１１）。出力イネーブルは、たとえば図１０に示したＥＮ＿ＯＵＴであって、ＦＩＦＯメモリ５０２からの有効データの読出を制御するＥＮである。ステップＳ１１１１は、たとえばＥＮ制御部５１５によって実行される。
【０１１６】
つぎに、パケット帯域制御回路５００は、ステップＳ１１１１によって生成されたＥＮ＿ＯＵＴ（ＥＮ）が“Ｈｉｇｈ”であるか否かを判断する（ステップＳ１１１２）。ＥＮ＿ＯＵＴ（ＥＮ）が“Ｈｉｇｈ”である場合（ステップＳ１１１２：Ｙｅｓ）は、パケット帯域制御回路５００は、後段へのデータ出力を行う（ステップＳ１１１３）。ステップＳ１１１３のデータ出力は、たとえばリードポインタ５１６、マルチプレクサ５０３およびフリップフロップ５０４により、ＦＩＦＯメモリ５０２から有効データを読み出すことによって実行される。
【０１１７】
つぎに、パケット帯域制御回路５００は、ステップＳ１１１３のデータ出力によって実際に読み出された有効データのバイト数である読出有効データバイト数をカウントする（ステップＳ１１１４）。ステップＳ１１１４によって計算された読出有効データバイト数は、ステップＳ１１０６のＥＮ補正処理へフィードバックされる。フィードバックされた読出有効データバイト数は、たとえば図１０に示したＯＵＴ＿ＤＡＴＡとしてＥＮ補正部５１４によって用いられる。ステップＳ１１１４は、たとえば読出有効バイト数通知部５１３によって実行される。パケット帯域制御回路５００は、ステップＳ１１１３の後に、ステップＳ１１１４を実行するとともにステップＳ１１０６へ戻る。
【０１１８】
ステップＳ１１１２において、ＥＮ＿ＯＵＴ（ＥＮ）が“Ｈｉｇｈ”でない場合（ステップＳ１１１２：Ｎｏ）は、パケット帯域制御回路５００は、データ出力を行わずに、ステップＳ１１０６へ戻る。すなわち、この場合は、パケット帯域制御回路５００はＧＡＰを出力する。
【０１１９】
（実施の形態にかかるパケット帯域制御回路の処理のタイムチャート）
図１２は、実施の形態にかかるパケット帯域制御回路の処理のタイムチャートを示す図である。図１２において、横方向は時間の経過を示す。図１２に示す基準期間１２０１は、基準時間決定部５０９によって決定された基準時間ごとの基準時間（制御周期）である。基準時間パルス１２１０は、周期カウンタ５１０から出力される基準時間パルスであって、基準期間１２０１の各先頭において立ち上がるパルスである。ＥＸＰ＿ＤＡＴＡ１２２０は、図９に示したＥＮ補正部５１４のＥＸＰ＿ＤＡＴＡである。
【０１２０】
データ読出可能バイト数格納タイミング１２３０は、ＥＮ補正部５１４が基準時間決定部５０９から通知されたデータ読出可能バイト数をＥＸＰ＿ＤＡＴＡに格納するタイミングである。データ読出可能バイト数格納タイミング１２３０に示すように、ＥＮ補正部５１４は、基準時間パルス１２１０の周期ごとにデータ読出可能バイト数をＥＸＰ＿ＤＡＴＡに格納する。たとえば、データ読出可能バイト数格納タイミング１２３０が示す１つ目のタイミングは、図９に示したステップＳ９０２のタイミングである。また、データ読出可能バイト数格納タイミング１２３０が示す２つ目以降のタイミングは、図９に示したステップＳ９０９のタイミングである。
【０１２１】
ＥＮ＿ＯＵＴ１２４０は、ＥＮ制御部５１５が出力するＥＮである。有効データ１２５０は、ＦＩＦＯメモリ５０２から読み出されて出力される有効データである。有効データ１２５０は、ＥＮ＿ＯＵＴ１２４０が“Ｈｉｇｈ”のタイミングで発生する。そして、有効データ１２５０が読み出されるごとに、読み出された有効データ１２５０のバイト数を示す読出有効データバイト数がＥＸＰ＿ＤＡＴＡ１２２０から減算される。この減算は、たとえば図９に示すステップＳ９１０，Ｓ９１１に対応する。
【０１２２】
理想有効データ出力１２０２は、２回目以降の基準期間１２０１における有効データ１２５０の理想的な状態における出力を示している。理想的な状態とは、有効データ１２５０の出力帯域と設定帯域との間のバス幅に起因するずれがない状態である。
【０１２３】
ＥＮ補正部５１４は、２回目以降の基準時間パルス１２１０のタイミングｔ１〜ｔ３において、ＥＸＰ＿ＤＡＴＡ１２２０の判定を行う。ケース１２６１〜１２６３は、タイミングｔ１における判定において、ＥＸＰ＿ＤＡＴＡ１２２０が０であった場合と、ＥＸＰ＿ＤＡＴＡ１２２０が０より小さかった場合と、ＥＸＰ＿ＤＡＴＡ１２２０が０より大きかった場合と、を示す。このケース１２６１〜１２６３は、それぞれ図９に示したステップＳ９０７、ステップＳ９０８およびステップＳ９０５に対応する。ケース１２６１〜１２６３のそれぞれにおけるＡＤＤ＿ＥＮ１２７１およびＤＥＬ＿ＥＮ１２７２は、ＥＮ補正部５１４が出力するＥＮ補正信号である。
【０１２４】
ケース１２６１において、ＥＮ補正部５１４は、ＥＸＰ＿ＤＡＴＡ１２２０が０であるため、ＡＤＤ＿ＥＮ１２７１およびＤＥＬ＿ＥＮ１２７２を“Ｌｏｗ”に設定する。このため、ＥＮ制御部５１５は、ＥＮ生成部５１２から出力されたＥＮをそのままＥＮ＿ＯＵＴ１２４０として出力する。したがって、有効データ１２５０は、理想有効データ出力１２０２と同様に出力される。
【０１２５】
ケース１２６２において、ＥＮ補正部５１４は、ＥＸＰ＿ＤＡＴＡ１２２０が０より小さいため、ＡＤＤ＿ＥＮ１２７１を“Ｌｏｗ”に設定し、ＤＥＬ＿ＥＮ１２７２を“Ｈｉｇｈ”に設定する。このため、ＥＮ制御部５１５は、ＥＮ生成部５１２から出力されたＥＮのうちの、最初に“Ｈｉｇｈ”となっているＥＮを“Ｌｏｗ”にしたＥＮ＿ＯＵＴ１２４０を出力する。したがって、有効データ１２５０は、理想有効データ出力１２０２から最初の有効データ１２５０を削除したものになる。
【０１２６】
ケース１２６３において、ＥＮ補正部５１４は、ＥＸＰ＿ＤＡＴＡ１２２０が０より大きいため、ＡＤＤ＿ＥＮ１２７１を“Ｈｉｇｈ”に設定し、ＤＥＬ＿ＥＮ１２７２を“Ｌｏｗ”に設定する。このため、ＥＮ制御部５１５は、ＥＮ生成部５１２から出力されたＥＮのうちの、最初に“Ｌｏｗ”となっているＥＮを“Ｈｉｇｈ”にしたＥＮ＿ＯＵＴ１２４０を出力する。したがって、有効データ１２５０は、理想有効データ出力１２０２に有効データ１２５０を追加したものになる。
【０１２７】
タイミングｔ１におけるＥＸＰ＿ＤＡＴＡ１２２０の判定結果に応じたケース１２６１〜１２６３について説明したが、タイミングｔ２以降も同様の処理が行われる。これにより、パケット帯域制御回路５００から出力されるパケットが、平均して設定帯域となるようにすることができる。
【０１２８】
（実施の形態にかかるパケット帯域制御回路による帯域制御）
図１３は、実施の形態にかかるパケット帯域制御回路による帯域制御の一例を示す図である。図１３において、図３に示した部分と同様の部分については同一の符号を付して説明を省略する。また、図１３に示す例では、設定帯域が７［Ｇｂｐｓ］であり、実際の帯域はクロック３０１（３２［ｎｓ］）の２０サイクル分の６４０［ｎｓ］の期間で計算するとする。
【０１２９】
図１３に示すヘッダ２２０ａ，２２０ｂ，２２０ｃは、それぞれ１番目、２番目、３番目のパケットのヘッダであって、それぞれ図２に示したヘッダ２２０に対応する。ペイロード２３０ａ，２３０ｂ，２３０ｃは、それぞれ１番目、２番目、３番目のパケットのペイロードであって、それぞれ図２に示したペイロード２３０に対応する。ＦＣＳ２４０ａ，２４０ｂは、それぞれ１番目、２番目のパケットのＦＣＳであって、それぞれ図２に示したＦＣＳ２４０に対応する。
【０１３０】
タイムチャート１３０１は、バス幅３０２に起因する制限がないと仮定した場合における帯域制御を参考として示している。タイムチャート１３０１のように、ＧＡＰをバス幅３０２の６４［ｂｙｔｅ］未満の単位で挿入できると仮定すると、制御後の帯域は、有効データ量／時間＝４４８０［ｂｉｔ］／６４０［ｎｓ］＝７［Ｇｂｐｓ］となる。このため、制御後の帯域を設定帯域の７［Ｇｂｐｓ］と一致させることができる。
【０１３１】
タイムチャート１３０２は、バス幅３０２に起因する制限がある場合における従来の帯域制御を参考として示している。パラレルデータにおいては、ＧＡＰをバス幅３０２の６４［ｂｙｔｅ］未満の単位で挿入することはできないため、タイムチャート１３０２の例において、制御後の帯域は、有効データ量／時間＝４５４０［ｂｉｔ］／６４０［ｎｓ］≒７．１［Ｇｂｐｓ］となる。このため、実際の帯域と設定帯域の７［Ｇｂｐｓ］との間で誤差が生じる。
【０１３２】
タイムチャート１３０３は、バス幅３０２に起因する制限がある場合における、実施の形態にかかるパケット帯域制御回路１００，５００による帯域制御を示している。パケット帯域制御回路１００，５００によれば、タイムチャート１３０３のように、設定帯域に基づいてペイロード等のパケットの途中にもＧＡＰを挿入することができる。これにより、制御後の帯域は、有効データ量／時間＝４４８０［ｂｉｔ］／６４０［ｎｓ］＝７［Ｇｂｐｓ］となる。このため、バス幅３０２に起因する制限があっても、制御後の帯域を設定帯域の７［Ｇｂｐｓ］と一致させることができる。
【０１３３】
（実施の形態にかかるパケット帯域制御回路を適用可能な装置）
図１４は、実施の形態にかかるパケット帯域制御回路を適用可能な装置の一例を示す図である。実施の形態にかかるパケット帯域制御回路１００，５００は、たとえば図１４に示すシェルフ装置１４００に適用することができる。シェルフ装置１４００は、通信カードを挿入可能な複数のスロットを備える。図１４に示す例では、シェルフ装置１４００の各スロットには、制御パッケージ１４０１、ＳＷパッケージ１４０２および回線パッケージ１４０３〜１４０７が格納されている。なお、ＳＷパッケージ１４０２は回線パッケージの機能を兼ね備えていてもよい。
【０１３４】
パケット帯域制御回路１００，５００は、たとえばシェルフ装置１４００においてスロット間でデータの送受信を行う装置に適用することができる。一例としては、パケット帯域制御回路１００，５００は、他のスロットへデータを送信するパッケージに代えてスロットに実装することで適用することができる。
【０１３５】
（実施の形態にかかるシェルフ装置におけるデータの送受信）
図１５は、実施の形態にかかるシェルフ装置におけるデータの送受信の一例を示す図である。図１５において、図１４に示した部分と同様の部分については同一の符号を付して説明を省略する。図１５に示すバックワイヤリングボード１５０１（ＢＷＢ：Ｂａｃｋ  Ｗｉｒｉｎｇ  Ｂｏａｒｄ）は、シェルフ装置１４００に格納された各通信カードを接続する制御ボードである。制御バス１５０２は、シェルフ装置１４００の各通信カードの間の通信を制御するためのバックワイヤリングボード１５０１の制御バスである。
【０１３６】
図１５に示す例では、シェルフ装置１４００に対して、制御パッケージ１４０１と、回線パッケージ１４０３，１４０４と、回線パッケージ１４０６，１４０７と、を含む各通信カードが格納されている。そして、たとえば回線パッケージ１４０３，１４０４が互いに回線データの送受信１５０３を行っている。また、回線パッケージ１４０６，１４０７が互いに回線データの送受信１５０４を行っている。このように、シェルフ装置１４００においては、回線パッケージ間で回線データの送受信が行われる。
【０１３７】
図１６は、実施の形態にかかるシェルフ装置におけるデータの送受信の他の例を示す図である。図１６において、図１５に示した部分と同様の部分については同一の符号を付して説明を省略する。図１６に示す例では、シェルフ装置１４００に対して、制御パッケージ１４０１と、ＳＷパッケージ１４０２と、回線パッケージ１４０３，１４０６，１４０７と、を含む各通信カードが格納されている。そして、たとえば回線パッケージ１４０３，１４０６，１４０７が、ＳＷパッケージ１４０２を介して互いに回線データの送受信１６０１を行っている。このように、シェルフ装置１４００においては、回線パッケージ間でＳＷパッケージ経由の回線データの送受信が行われてもよい。
【０１３８】
（実施の形態にかかる通信カード）
図１７および図１８は、実施の形態にかかるシェルフ装置に格納される通信カードの一例を示す図である。たとえば図１５に示したように回線パッケージ１４０３，１４０４の間でデータの送受信を行う場合に、図１７に示すパッケージ１７００を回線パッケージ１４０３に適用し、図１８に示すパッケージ１８００を回線パッケージ１４０４に適用することができる。
【０１３９】
図１７に示すように、パッケージ１７００は、ＣＰＵ１７０１と、ブート／アプリ格納部１７０２と、コンソール１７０３と、ＣＰＵバス制御部１７０４と、ＣＰＵバス１７０５と、パケットデータ格納部１７０６と、パケット生成部１７０７と、を備える。また、パッケージ１７００は、帯域制御部１７０８と、パケットフレーム組立部１７０９と、インタフェース変換部１７１０と、接続インタフェース切替部１７１１と、接続インタフェース１７１２と、ＢＷＢコネクタ１７１３と、を備える。
【０１４０】
ＣＰＵ１７０１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央処理装置）は、パッケージ１７００の全体の制御を司る。たとえば、ＣＰＵ１７０１は、ブート／アプリ格納部１７０２（ＢＯＯＴ／ＡＰＬ）に格納されたブートプログラムやアプリケーションを実行することによりパッケージ１７００の全体の制御を行う。コンソール１７０３（ＣＮ）は、たとえばパッケージ１７００に対する指示入力や、パッケージ１７００からの情報出力が可能なコンソールである。
【０１４１】
ＣＰＵバス制御部１７０４は、ＣＰＵバス１７０５による各部の通信を制御する。図１７に示す例では、ＣＰＵバス１７０５により、ＣＰＵ１７０１、ＣＰＵバス制御部１７０４、パケットデータ格納部１７０６および帯域制御部１７０８が接続されている。パケットデータ格納部１７０６は、パッケージ１７００によって送信するためのパケットデータを格納する。
【０１４２】
パケット生成部１７０７は、外部から入力されたパケットデータ、またはＣＰＵ１７０１の制御によってパケットデータ格納部１７０６に格納されたデータを含むパケットフレームを生成する。そして、パケット生成部１７０７は、生成したパケットフレームを所定のビット幅に分割することによりパケットフレームをパラレルデータに変換し、パラレルデータに変換したパケットフレームを帯域制御部１７０８へ出力する。
【０１４３】
帯域制御部１７０８は、ＣＰＵ１７０１から設定された帯域（設定帯域）に従って、パケット生成部１７０７から出力されたパケットフレームの帯域を制御する。そして、帯域制御部１７０８は、帯域を制御したパケットフレームをパケットフレーム組立部１７０９へ出力する。実施の形態にかかるパケット帯域制御回路１００，５００は、たとえば帯域制御部１７０８に適用することができる。
【０１４４】
パケットフレーム組立部１７０９は、帯域制御部１７０８から出力されたパケットフレームの組み立てを行い、組み立てたパケットフレームをインタフェース変換部１７１０へ出力する。パケットフレームの組み立ては、たとえば、図５に示したＤＡＴＡＯＵＴ，ＥＲＲＯＵＴ，ＣＨＮＯＵＴ，ＰＫＴＬＯＵＴ，ＳＯＰＯＵＴ，ＥＯＰＯＵＴ，ＥＮＯＵＴ，ＭＴＹＯＵＴを所定のフォーマットとなるように結合する処理である。
【０１４５】
インタフェース変換部１７１０は、パケットフレーム組立部１７０９から出力されたパケットフレームを、インタフェース１７１０ａ〜１７１０ｃのうちの送信先に対応するインタフェースのデータ形式に変換する。そして、インタフェース変換部１７１０は、データ形式を変換したパケットフレームを、インタフェース１７１０ａ〜１７１０ｃのうちの送信先に対応するインタフェースから接続インタフェース切替部１７１１へ出力する。
【０１４６】
接続インタフェース切替部１７１１は、インタフェース変換部１７１０のインタフェース１７１０ａ〜１７１０ｃから出力される各パケットフレームを切り替えて接続インタフェース１７１２へ出力する。接続インタフェース１７１２は、バックワイヤリングボード１５０１との間の接続インタフェースである。接続インタフェース１７１２は、接続インタフェース切替部１７１１から出力されたパケットフレームを、ＢＷＢコネクタ１７１３を介してバックワイヤリングボード１５０１へ出力することにより送信先へ送信する。ＢＷＢコネクタ１７１３は、バックワイヤリングボード１５０１に対してパッケージ１７００を差し込んで接続するためのコネクタである。
【０１４７】
図１８に示すように、パッケージ１８００は、ＣＰＵ１８０１と、ＢＷＢコネクタ１８０２と、接続インタフェース１８０３と、接続インタフェース終端部１８０４と、パケット送信部１８０５と、物理層処理部１８０６と、を備える。また、パッケージ１８００は、ポート群１８０７と、パケット受信部１８０８と、接続インタフェース生成部１８０９と、ＣＰＵバス１８１０と、を備える。
【０１４８】
ＣＰＵ１８０１は、パッケージ１８００の全体の制御を司る。パケット送信部１８０５およびパケット受信部１８０８は、ＣＰＵバス１８１０によってＣＰＵ１８０１と接続されている。ＢＷＢコネクタ１８０２は、バックワイヤリングボード１５０１に対してパッケージ１８００を差し込んで接続するためのコネクタである。
【０１４９】
接続インタフェース１８０３は、バックワイヤリングボード１５０１との間の接続インタフェースである。接続インタフェース１８０３は、バックワイヤリングボード１５０１およびＢＷＢコネクタ１８０２を介して、図１７に示したパッケージ１７００から送信されたパケットフレームを受信する。そして、接続インタフェース１８０３は、受信したパケットフレームを接続インタフェース終端部１８０４へ出力する。また、接続インタフェース１８０３は、接続インタフェース生成部１８０９から出力されたパケットフレームを、ＢＷＢコネクタ１８０２を介してバックワイヤリングボード１５０１へ出力することにより送信先へ送信する。
【０１５０】
接続インタフェース終端部１８０４は、接続インタフェース１８０３から出力されたパケットフレームのインタフェースを終端する。そして、接続インタフェース終端部１８０４は、終端したパケットフレームをパケット送信部１８０５へ出力する。パケット送信部１８０５は、接続インタフェース終端部１８０４から出力されたパケットフレームを物理層処理部１８０６へ出力することによりポート群１８０７から送信する。このとき、パケット送信部１８０５は、パケットフレームをパラレルからシリアルに変換して出力する。
【０１５１】
物理層処理部１８０６（ＰＨＹ）は、接続インタフェース終端部１８０４から出力されたパケットフレームの物理層（Ｌ１）の処理を行い、物理層の処理を行ったパケットフレームをポート群１８０７の対応するポートから送信する。また、物理層処理部１８０６は、ポート群１８０７に含まれるポートから受信したパケットフレームの物理層の処理を行い、物理層の処理を行ったパケットフレームをパケット受信部１８０８へ出力する。
【０１５２】
すなわち、パッケージ１７００，１８００の内部においてパケットフレームはパラレルデータであるが、ポート群１８０７から送信されるパケットフレームやポート群１８０７によって受信されるパケットフレームはシリアルデータである。
【０１５３】
パケット受信部１８０８は、物理層処理部１８０６から出力されたパケットフレームの受信処理を行う。このとき、パケット受信部１８０８は、パケットフレームをシリアルからパラレルへ変換する。そして、パケット受信部１８０８は、受信処理によって得られたパケットフレームを接続インタフェース生成部１８０９へ出力する。接続インタフェース生成部１８０９は、パケット受信部１８０８から出力されたパケットフレームの接続インタフェースを生成する。そして、接続インタフェース生成部１８０９は、生成した接続インタフェースに基づくパケットフレームを接続インタフェース１８０３へ出力する。
【０１５４】
たとえば、パッケージ１７００からパッケージ１８００へパケットフレームを伝送し、そのパケットフレームをパッケージ１８００から送信する構成の試験を行うとする。この場合に、パッケージ１７００の帯域制御部１７０８によってパケットフレームの帯域を制御することで、帯域（ビットレート）を精度よく調整したパケットフレームによる試験が可能になる。
【０１５５】
回線パッケージ１４０３，１４０４の間でデータの送受信を行う場合について説明したが、ＳＷパッケージ１４０２および回線パッケージ１４０３〜１４０７のうちの他の組み合わせでデータの送受信を行う場合についても同様である。
【０１５６】
図１７に示したパケット生成部１７０７、帯域制御部１７０８およびパケットフレーム組立部１７０９などの処理部は、たとえばＦＰＧＡなどのデジタル回路により実現することができる。また、図１８に示したパケット送信部１８０５およびパケット受信部１８０８などの処理部は、たとえばＦＰＧＡなどのデジタル回路により実現することができる。
【０１５７】
この場合に、ＦＰＧＡなどのデジタル回路においては、高速なシリアル伝送に対応してパケットフレームに対する処理時間を確保するために、パケットフレームがパラレルデータ化される。これに対して、パケット帯域制御回路１００，５００によれば、帯域制御の対象のパケットがパラレルデータであっても帯域を精度よく制御することができる。
【０１５８】
図１９は、実施の形態にかかるシェルフ装置に格納される通信カードの他の例を示す図である。図１９において、図１８に示した部分と同様の部分については同一の符号を付して説明を省略する。ＳＷパッケージ１４０２および回線パッケージ１４０３〜１４０７のそれぞれは、たとえば図１９に示すパッケージ１９００により実現されてもよい。
【０１５９】
パッケージ１９００は、ＣＰＵ１８０１と、ＢＷＢコネクタ１８０２と、接続インタフェース１８０３と、接続インタフェース終端部１８０４と、パケット送信部１８０５と、物理層処理部１８０６と、を備える。また、パッケージ１９００は、ポート群１８０７と、パケット受信部１８０８と、接続インタフェース生成部１８０９と、帯域制御部１９１０と、スイッチ１９０１と、を備える。
【０１６０】
スイッチ１９０１は、第１経路と第２経路とに切り替えて設定可能である。たとえば、スイッチ１９０１は、第１経路に設定されると、接続インタフェース終端部１８０４のインタフェース（Ｉｎｆ１）から出力されたパケットフレームを第１パケット送信デバイス１９１１のインタフェース（Ｉｎｆ１）へ出力する。また、スイッチ１９０１は、第２経路に設定されると、帯域制御部１９１０のインタフェース（Ｉｎｆ１）から出力されたパケットフレームを第１パケット送信デバイス１９１１のインタフェース（Ｉｎｆ１）へ出力する。たとえば、スイッチ１９０１は、ＣＰＵ１８０１からの制御により、運用時には第１経路に設定され、試験時には第２経路に設定される。
【０１６１】
パケット送信部１８０５は、第１パケット送信デバイス１９１１と、スイッチ１９１２と、第２パケット送信デバイス１９１３と、を備える。第１パケット送信デバイス１９１１は、接続インタフェース終端部１８０４のインタフェース（Ｉｎｆ１）から出力されたパケットフレームを、第１パケット送信デバイス１９１１のインタフェース（Ｉｎｆ１）により受信する。そして、第１パケット送信デバイス１９１１は、受信したパケットフレームを、第１パケット送信デバイス１９１１のインタフェース（Ｉｎｆ２）からスイッチ１９１２へ出力する。
【０１６２】
スイッチ１９１２は、第１経路と第２経路とに切り替えて設定可能である。たとえば、スイッチ１９１２は、第１経路に設定されると、第１パケット送信デバイス１９１１のインタフェース（Ｉｎｆ２）から出力されたパケットフレームを第２パケット送信デバイス１９１３のインタフェース（Ｉｎｆ２）へ出力する。また、スイッチ１９１２は、第２経路に設定されると、帯域制御部１９１０のインタフェース（Ｉｎｆ２）から出力されたパケットフレームを第２パケット送信デバイス１９１３のインタフェース（Ｉｎｆ２）へ出力する。たとえば、スイッチ１９１２は、ＣＰＵ１８０１からの制御により、運用時には第１経路に設定され、試験時には第２経路に設定される。
【０１６３】
第２パケット送信デバイス１９１３は、スイッチ１９１２から出力されたパケットフレームを、第２パケット送信デバイス１９１３のインタフェース（Ｉｎｆ２）により受信する。そして、第２パケット送信デバイス１９１３は、受信したパケットフレームを物理層処理部１８０６へ出力する。
【０１６４】
パケット受信部１８０８は、第１パケット受信デバイス１９２１と、スイッチ１９２２と、第２パケット受信デバイス１９２３と、を備える。第１パケット受信デバイス１９２１は、物理層処理部１８０６から出力されたパケットフレームを、第１パケット受信デバイス１９２１のインタフェース（Ｉｎｆ３）からスイッチ１９２２へ出力する。
【０１６５】
スイッチ１９２２は、第１経路と第２経路とに切り替えて設定可能である。たとえば、スイッチ１９２２は、第１経路に設定されると、第１パケット受信デバイス１９２１のインタフェース（Ｉｎｆ３）から出力されたパケットフレームを第２パケット受信デバイス１９２３のインタフェース（Ｉｎｆ３）へ出力する。また、スイッチ１９２２は、第２経路に設定されると、帯域制御部１９１０のインタフェース（Ｉｎｆ３）から出力されたパケットフレームを第２パケット受信デバイス１９２３のインタフェース（Ｉｎｆ３）へ出力する。たとえば、スイッチ１９２２は、ＣＰＵ１８０１からの制御により、運用時には第１経路に設定され、試験時には第２経路に設定される。
【０１６６】
第２パケット受信デバイス１９２３は、スイッチ１９２２から出力されたパケットフレームを、第２パケット受信デバイス１９２３のインタフェース（Ｉｎｆ３）により受信する。そして、第２パケット受信デバイス１９２３は、受信したパケットフレームを接続インタフェース生成部１８０９へ出力する。
【０１６７】
帯域制御部１９１０は、ＣＰＵ１８０１からの制御により、帯域を制御したパケットフレーム（試験パケット）をスイッチ１９０１，１９１２，１９２２へ出力する。たとえば、ＣＰＵ１８０１は、試験時に、スイッチ１９０１を第２経路に設定するとともに、帯域を制御したパケットフレームを帯域制御部１９１０からスイッチ１９０１へ出力させる。これにより、たとえば、精度よく所望の帯域に制御したパケットフレームを第１パケット送信デバイス１９１１および第２パケット送信デバイス１９１３によって処理させる試験を行うことができる。実施の形態にかかるパケット帯域制御回路１００，５００は、たとえば帯域制御部１９１０に適用することができる。
【０１６８】
また、たとえば、ＣＰＵ１８０１は、試験時に、スイッチ１９１２を第２経路に設定するとともに、帯域を制御したパケットフレームを帯域制御部１９１０からスイッチ１９１２へ出力させる。これにより、たとえば、精度よく所望の帯域に制御したパケットフレームを第２パケット送信デバイス１９１３によって処理させる試験を行うことができる。
【０１６９】
また、たとえば、ＣＰＵ１８０１は、試験時に、スイッチ１９２２を第２経路に設定するとともに、帯域を制御したパケットフレームを帯域制御部１９１０からスイッチ１９２２へ出力させる。これにより、たとえば、精度よく所望の帯域に制御したパケットフレームを第２パケット受信デバイス１９２３によって処理させる試験を行うことができる。
【０１７０】
また、物理層処理部１８０６とパケット受信部１８０８との間にスイッチをさらに設け、帯域制御部１９１０から第１パケット受信デバイス１９２１へ帯域を制御したパケットフレームを入力可能にしてもよい。これにより、たとえば、精度よく所望の帯域に制御したパケットフレームを第１パケット受信デバイス１９２１および第２パケット受信デバイス１９２３によって処理させる試験を行うことができる。
【０１７１】
図２０は、実施の形態にかかるシェルフ装置に格納される通信カードのさらに他の例を示す図である。図２０において、図１８，図１９に示した部分と同様の部分については同一の符号を付して説明を省略する。ＳＷパッケージ１４０２および回線パッケージ１４０３〜１４０７のそれぞれは、たとえば図２０に示すパッケージ２０００により実現されてもよい。
【０１７２】
パッケージ２０００は、ＣＰＵ１８０１と、ＢＷＢコネクタ１８０２と、接続インタフェース１８０３と、接続インタフェース終端部１８０４と、パケット送信部１８０５と、物理層処理部１８０６と、を備える。また、パッケージ２０００は、ポート群１８０７と、パケット受信部１８０８と、接続インタフェース生成部１８０９と、を備える。
【０１７３】
第１パケット送信デバイス１９１１は、送信回路２０１１と、帯域制御部２０１２と、スイッチ２０１３と、を備える。送信回路２０１１は、接続インタフェース終端部１８０４から出力されたパケットフレームをスイッチ２０１３へ出力する。
【０１７４】
スイッチ２０１３は、第１経路と第２経路とに切り替えて設定可能である。たとえば、スイッチ２０１３は、第１経路に設定されると、送信回路２０１１から出力されたパケットフレームを、第１パケット送信デバイス１９１１のインタフェース（Ｉｎｆ１）から第２パケット送信デバイス１９１３のインタフェース（Ｉｎｆ１）へ出力する。また、スイッチ２０１３は、第２経路に設定されると、帯域制御部２０１２から出力されたパケットフレームを、第１パケット送信デバイス１９１１のインタフェース（Ｉｎｆ１）から第２パケット送信デバイス１９１３のインタフェース（Ｉｎｆ１）へ出力する。たとえば、スイッチ２０１３は、ＣＰＵ１８０１からの制御により、運用時には第１経路に設定され、試験時には第２経路に設定される。
【０１７５】
帯域制御部２０１２は、ＣＰＵ１８０１からの制御により、帯域を制御したパケットフレーム（試験パケット）をスイッチ２０１３へ出力する。実施の形態にかかるパケット帯域制御回路１００，５００は、たとえば帯域制御部２０１２に適用することができる。たとえば、ＣＰＵ１８０１は、試験時に、スイッチ２０１３を第２経路に設定するとともに、帯域を制御したパケットフレームを帯域制御部２０１２からスイッチ２０１３へ出力させる。これにより、たとえば、精度よく所望の帯域に制御したパケットフレームを第２パケット送信デバイス１９１３によって処理させる試験を行うことができる。
【０１７６】
第１パケット受信デバイス１９２１は、受信回路２０２１と、帯域制御部２０２２と、スイッチ２０２３と、を備える。受信回路２０２１は、物理層処理部１８０６から出力されたパケットフレームを受信する。そして、受信回路２０２１は、受信したパケットフレームをスイッチ２０２３へ出力する。
【０１７７】
スイッチ２０２３は、第１経路と第２経路とに切り替えて設定可能である。たとえば、スイッチ２０２３は、第１経路に設定されると、受信回路２０２１から出力されたパケットフレームを、第１パケット受信デバイス１９２１のインタフェース（Ｉｎｆ２）から第２パケット受信デバイス１９２３のインタフェース（Ｉｎｆ２）へ出力する。また、スイッチ２０２３は、第２経路に設定されると、帯域制御部２０２２から出力されたパケットフレームを、第１パケット受信デバイス１９２１のインタフェース（Ｉｎｆ２）から第２パケット受信デバイス１９２３のインタフェース（Ｉｎｆ２）へ出力する。
【０１７８】
帯域制御部２０２２は、ＣＰＵ１８０１からの制御により、帯域を制御したパケットフレーム（試験パケット）をスイッチ２０２３へ出力する。実施の形態にかかるパケット帯域制御回路１００，５００は、たとえば帯域制御部２０２２に適用することができる。たとえば、ＣＰＵ１８０１は、試験時に、スイッチ２０２３を第２経路に設定するとともに、帯域を制御したパケットフレームを帯域制御部２０２２からスイッチ２０２３へ出力させる。これにより、たとえば、精度よく所望の帯域に制御したパケットフレームを第２パケット受信デバイス１９２３によって処理させる試験を行うことができる。
【０１７９】
以上説明したように、パケット帯域制御回路およびパケット帯域の制御方法によれば、平均して所定の帯域となるように無効領域を挿入することができる。これにより、たとえば、パケットの帯域を所定の帯域に精度よく調整することができる。このため、たとえば帯域制御の対象を試験用のパケットとする場合に、試験の条件としてのパケットの帯域を精度よく調整し、品質の高い試験を行うことが可能になる。
【０１８０】
たとえば、従来、ＦＰＧＡなどのデバイス内におけるパケットの処理は、処理時間を確保するために、パケットをパラレルデータに変換した状態で行われる。たとえば、このパラレルデータに対するパケット疎通試験等を行う際に、一定の帯域を持つパラレルデータを生成することを要する場合があるが、この生成したパラレルデータには、上述したバス幅に起因する帯域の誤差が含まれる。
【０１８１】
これは、パケット長単位で無効期間（ＧＡＰ）の長さを計算すると、パケット長によって誤差が生じ、その誤差を含むパケットが連結され、全体としても設定帯域に対して誤差を含んだデータが生成されるためである。その結果として設定帯域に対してずれを有するデータで試験を行うこととなり、試験品質が低くなる。
【０１８２】
これに対して、上述した実施の形態によれば、パケットデータをバッファリングするＦＩＦＯメモリを用いて、生成されたパケットをＦＩＦＯメモリに常時書き込んでおくことができる。そして、ＦＩＦＯメモリから一定時間内に読み出すべきデータ量を設定帯域から計算し、計算したデータ量を基準時間内で均等に読み出すことができる。これにより、読み出されるデータの帯域は均等に設定帯域に等しくなる。
【０１８３】
また、データは規定のバス幅単位で読み出されるため、パケット長により最後尾に無効な領域が生じ、全体の帯域に微小な誤差が生じることがある。これに対して、上述した実施の形態によれば、実際に出力されるデータの帯域を検出し、検出結果に基づいてＦＩＦＯメモリからのデータの読み出しを制御することで、この微小な誤差を吸収し、設定帯域を確保することができる。
【０１８４】
上述した各実施の形態に関し、さらに以下の付記を開示する。
【０１８５】
（付記１）パケットがパラレル化されたパラレル化データを格納する先入れ先出しのメモリと、
前記メモリに格納された前記パラレル化データを前記パラレル化データに対応するバス幅で読み出して出力し、前記メモリから前記パラレル化データを読み出さない期間においては無効領域を出力する出力部と、
設定された所定の帯域で前記出力部から前記パケットが出力されるように、前記出力部による前記パラレル化データの読み出しおよび非読み出しの制御を行う制御部と、
を備えることを特徴とするパケット帯域制御回路。
【０１８６】
（付記２）前記制御部は、前記読み出しと前記非読み出しとを前記パケットのデータ長より短い周期で切り替えることにより前記制御を行うことを特徴とする付記１に記載のパケット帯域制御回路。
【０１８７】
（付記３）前記制御部は、前記パケットの出力量と前記無効領域の出力量との前記所定の帯域に基づく比率を計算し、前記出力部からの前記パケットの出力量と前記出力部からの前記無効領域の出力量との比率が計算した前記比率に近づくように前記読み出しと前記非読み出しとを切り替えることにより前記制御を行うことを特徴とする付記１または２に記載のパケット帯域制御回路。
【０１８８】
（付記４）前記制御部は、前記出力部から出力された前記パケットの量を検出し、検出した前記パケットの量と、前記所定の帯域に基づく前記出力部による前記パラレル化データの一定時間内の読み出し量と、の比較結果に基づいて前記制御を行うことを特徴とする付記１〜３のいずれか一つに記載のパケット帯域制御回路。
【０１８９】
（付記５）前記制御部は、前記一定時間の周期ごとに、前回の前記周期において検出した前記パケットの量と前記一定時間内の読み出し量との比較結果に基づいて前記制御を行うことを特徴とする付記４に記載のパケット帯域制御回路。
【０１９０】
（付記６）前記制御部は、前記一定時間の長さを前記所定の帯域に基づいて設定することを特徴とする付記５に記載のパケット帯域制御回路。
【０１９１】
（付記７）前記パケットは試験用のパケットであることを特徴とする付記１〜５のいずれか一つに記載のパケット帯域制御回路。
【０１９２】
（付記８）パケットがパラレル化されたパラレル化データをメモリに格納し、
前記メモリに格納した前記パラレル化データを前記パラレル化データに対応するバス幅で読み出して出力し、前記メモリから前記パラレル化データを読み出さない期間においては無効領域を出力し、
設定された所定の帯域で前記パケットを出力するように、前記メモリからの前記パラレル化データの読み出しおよび非読み出しの制御を行う、
ことを特徴とするパケット帯域の制御方法。
【符号の説明】
【０１９３】
１１  パケット生成回路
１２  データ
１００，５００  パケット帯域制御回路
１０１  メモリ
１０２  出力部
１０３  制御部
２００，４１１〜４１３  パケット
２１０  プリアンブル
２２０，２２０ａ，２２０ｂ，２２０ｃ  ヘッダ
２２１  宛先ＭＡＣ
２２２  送信元ＭＡＣ
２２３  タイプ
２３０，２３０ａ，２３０ｂ，２３０ｃ  ペイロード
２４０，２４０ａ，２４０ｂ  ＦＣＳ
２５０，４２１〜４３５  ＧＡＰ
３０１  クロック
３０２  バス幅
３１０  パラレルデータ
４００  出力データ
５０１  デマルチプレクサ
５０２  ＦＩＦＯメモリ
５０３  マルチプレクサ
５０４  フリップフロップ
５０５  ライトポインタ
５０６  ＦＩＦＯ使用量チェック部
５０７  ＲＤＹＴ生成部
５０８  ＲＤＹＴタイミング調整部
５０９  基準時間決定部
５０９ａ  基準時間設定データベース
５１０  周期カウンタ
５１１  読出可能バイト数計算部
５１２  ＥＮ生成部
５１３  読出有効バイト数通知部
５１４  ＥＮ補正部
５１５  ＥＮ制御部
５１６  リードポインタ
８００  テーブル
８０１〜８３５，…  サイクル
１２０１  基準期間
１２０２  理想有効データ出力
１２１０  基準時間パルス
１２２０  ＥＸＰ＿ＤＡＴＡ
１２３０  データ読出可能バイト数格納タイミング
１２４０  ＥＮ＿ＯＵＴ
１２５０  有効データ
１２６１〜１２６３  ケース
１２７１  ＡＤＤ＿ＥＮ
１２７２  ＤＥＬ＿ＥＮ
１３０１〜１３０３  タイムチャート
１４００  シェルフ装置
１４０１  制御パッケージ
１４０２  ＳＷパッケージ
１４０３〜１４０７  回線パッケージ
１５０１  バックワイヤリングボード
１５０２  制御バス
１５０３，１５０４，１６０１  送受信
１７００，１８００，１９００，２０００  パッケージ
１７０１，１８０１  ＣＰＵ
１７０２  ブート／アプリ格納部
１７０３  コンソール
１７０４  ＣＰＵバス制御部
１７０５，１８１０  ＣＰＵバス
１７０６  パケットデータ格納部
１７０７  パケット生成部
１７０８，１９１０，２０１２，２０２２  帯域制御部
１７０９  パケットフレーム組立部
１７１０  インタフェース変換部
１７１０ａ，１７１０ｂ，１７１０ｃ  インタフェース
１７１１  接続インタフェース切替部
１７１２，１８０３  接続インタフェース
１７１３，１８０２  ＢＷＢコネクタ
１８０４  接続インタフェース終端部
１８０５  パケット送信部
１８０６  物理層処理部
１８０７  ポート群
１８０８  パケット受信部
１８０９  接続インタフェース生成部
１９０１，１９１２，１９２２，２０１３，２０２３  スイッチ
１９１１  第１パケット送信デバイス
１９１３  第２パケット送信デバイス
１９２１  第１パケット受信デバイス
１９２３  第２パケット受信デバイス
２０１１  送信回路
２０２１  受信回路
【図１】
2017041737.tif 000003
【図２】
2017041737.tif 000004
【図３】
2017041737.tif 000005
【図４】
2017041737.tif 000006
【図５】
2017041737.tif 000007
【図６】
2017041737.tif 000008
【図７】
2017041737.tif 000009
【図８】
2017041737.tif 000010
【図９】
2017041737.tif 000011
【図１０】
2017041737.tif 000012
【図１１】
2017041737.tif 000013
【図１２】
2017041737.tif 000014
【図１３】
2017041737.tif 000015
【図１４】
2017041737.tif 000016
【図１５】
2017041737.tif 000017
【図１６】
2017041737.tif 000018
【図１７】
2017041737.tif 000019
【図１８】
2017041737.tif 000020
【図１９】
2017041737.tif 000021
【図２０】
2017041737.tif 000022