(57)【要約】【課題】大容量処理および細やかなレート監視ができるレート監視装置を提供する。【解決手段】パケットからパケット情報を抽出するパケット情報抽出部と、パケット情報を格納する第１パケット情報記憶部及び第２パケット情報記憶部と、トークン供給用の識別情報を生成するトークン識別情報生成部と、トークン供給用の識別情報を格納する第１トークン識別情報記憶部及び第２トークン識別情報記憶部と、パケット情報記憶部からパケット情報を読み出し、トークン識別情報記憶部からトークン識別情報を読み出す演算部とを備え、パケット情報抽出部はパケット情報を一方のパケット情報記憶部に格納し、演算部は他方のパケット情報記憶部からパケット情報を読み出し、トークン識別情報生成部はトークン供給用の識別情報を一方のトークン識別情報記憶部に格納し、演算部は他方のトークン識別情報記憶部からトークン供給用の識別情報を読み出す、レート監視装置とした。【選択図】図６
2010098369.tif 000002
【特許請求の範囲】
【請求項１】
パケット情報を含むパケットを受信し、前記パケットからパケット情報を抽出するパケット情報抽出部と、
前記パケット情報を格納する第１パケット情報記憶部と、
前記パケット情報を格納する第２パケット情報記憶部と、
トークン供給用の識別情報を生成するトークン識別情報生成部と、
前記トークン識別情報生成部が生成した前記トークン供給用の識別情報を格納する第１トークン識別情報記憶部と、
前記トークン識別情報生成部が生成した前記トークン供給用の識別情報を格納する第２トークン識別情報記憶部と、
前記第１パケット情報記憶部または第２パケット情報記憶部から前記パケット情報を読み出し、第１トークン識別情報記憶部または第２トークン識別情報記憶部から前記トークン供給用の識別情報を読み出す演算部とを、備え、
前記パケット情報抽出部は、前記抽出したパケット情報を、前記第１パケット情報記憶部および前記第２パケット情報記憶部のうちの一方に格納し、
前記演算部は、前記パケット情報抽出部が前記第１パケット情報記憶部に前記パケット情報を書き込んでいる場合は前記第２パケット情報記憶部から前記パケット情報を読み出し、前記パケット情報抽出部が前記第２パケット情報記憶部に前記パケット情報を書き込んでいる場合は前記第１パケット情報記憶部から前記パケット情報を読み出し、
前記トークン識別情報生成部は、前記生成したトークン供給用の識別情報を、前記第１トークン識別情報記憶部および前記第２トークン識別情報記憶部のうちの一方に格納し、
前記演算部は、前記トークン識別情報生成部が前記第１トークン識別情報記憶部に前記トークン供給用の識別情報を書き込んでいる場合は前記第２トークン識別情報記憶部から前記トークン供給用の識別情報を読み出し、前記トークン識別情報生成部が前記第２トークン識別情報記憶部に前記トークン供給用の識別情報を書き込んでいる場合は前記第１トークン識別情報記憶部から前記トークン供給用の識別情報を読み出す、
レート監視装置。
【請求項２】
識別情報毎にトークン供給情報を格納するトークン供給設定部と、
識別情報毎に疎通可能データ量を格納する疎通可能データ量記憶部と、をさらに備え、
前記演算部は、前記パケット情報及び前記トークン識別情報に基づいて、識別情報毎に、前記トークン供給部からトークン供給情報を読み出し、前記疎通可能データ量記憶部から疎通可能データ量を読み出す、
請求項１に記載のレート監視装置。
【請求項３】
前記パケット情報は、パケットの識別情報と、パケット長を含む、
請求項１又は２に記載のレート監視装置。
【請求項４】
前記演算部は、識別情報毎に、パケット長、トークン供給情報、疎通可能データ量に基づいて、新たな疎通可能データ量を算出する、
請求項３に記載のレート監視装置。
【請求項５】
トークン供給設定部及び疎通可能データ量記憶部は、ＱＤＲ（Quad Data Rate）メモリである、
請求項１乃至４のいずれか１項に記載のレート監視装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、トークンバケット方式のレート監視装置に関する。
【背景技術】
【０００２】
従来パケット転送装置において、入力レート／出力レートの監視を行っているが、今後データの大容量化及び細やかなレート監視の要求が予想される為、要求に対応可能なアーキテクチャが求められている。
【０００３】
パケット転送を行う装置等のインタフェースユニット（Interface Unit）で集線されるデータ容量は年々増大している。
【０００４】
数年前まではＦＥ（Fast Ether：100 Mbps）及びＧｂＥ（Giga Bit Ether：1 Gbps）が主流を占めていたが、近年ではネットワークの大容量化が進みバックボーン（Backbone）を中心に１０ＧｂＥ（10 Giga Bit Ether：10 Gbps）のインタフェース（Interface）も
増えている。
【０００５】
Interface UnitではＱｏＳ（Quality of Service）機能を具備し、ユーザ毎に転送・廃棄のようなPolicing（レート監視）を行っている。
【０００６】
数年前の集線では、ＦＥ及びＧｂＥを束ねるようなインタフェースユニット（Interface Unit）が主流であり、ユニット（Unit）で集線後のデータレートも１０ＧｂＥ程度であったが、近年の大容量化で１０ＧｂＥさらには２０ＧｂＥを束ねるユニット（Unit）が求められると共に、集線したデータの細やかなレート監視が求められている。
【０００７】
一般的なポリシング（Policing）方式では、パケット単位での演算処理及びメモリアクセスを行うことで、レート監視を実現している。しかしながら演算処理速度／メモリアクセスには限界がある為、データの大容量化及び細やかなレート監視の要求に対応できなくなる問題があった。
【特許文献１】特開２００１−３０８８８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
演算処理速度／メモリアクセスには限界がある為、大容量化したデータの処理及び細やかなレート監視においてパケット単位での処理を実現するには、デバイスの進化を待つ必要があった。
【０００９】
本件は、大容量処理および細やかなレート監視ができるレート監視装置を提供することを課題とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、開示のレート監視装置が、提供される。
【００１１】
開示の態様は、
パケット情報を含むパケットを受信し、前記パケットからパケット情報を抽出するパケット情報抽出部と、
前記パケット情報を格納する第１パケット情報記憶部と、
前記パケット情報を格納する第２パケット情報記憶部と、
トークン供給用の識別情報を生成するトークン識別情報生成部と、
前記トークン識別情報生成部が生成した前記トークン供給用の識別情報を格納する第１トークン識別情報記憶部と、
前記トークン識別情報生成部が生成した前記トークン供給用の識別情報を格納する第２トークン識別情報記憶部と、
前記第１パケット情報記憶部または第２パケット情報記憶部から前記パケット情報を読み出し、第１トークン識別情報記憶部または第２トークン識別情報記憶部から前記トークン供給用の識別情報を読み出す演算部とを、備え、
前記パケット情報抽出部は、前記抽出したパケット情報を、前記第１パケット情報記憶部および前記第２パケット情報記憶部のうちの一方に格納し、
前記演算部は、前記パケット情報抽出部が前記第１パケット情報記憶部に前記パケット情報を書き込んでいる場合は前記第２パケット情報記憶部から前記パケット情報を読み出し、前記パケット情報抽出部が前記第２パケット情報記憶部に前記パケット情報を書き込んでいる場合は前記第１パケット情報記憶部から前記パケット情報を読み出し、
前記トークン識別情報生成部は、前記生成したトークン供給用の識別情報を、前記第１トークン識別情報記憶部および前記第２トークン識別情報記憶部のうちの一方に格納し、
前記演算部は、前記トークン識別情報生成部が前記第１トークン識別情報記憶部に前記トークン供給用の識別情報を書き込んでいる場合は前記第２トークン識別情報記憶部から前記トークン供給用の識別情報を読み出し、前記トークン識別情報生成部が前記第２トークン識別情報記憶部に前記トークン供給用の識別情報を書き込んでいる場合は前記第１トークン識別情報記憶部から前記トークン供給用の識別情報を読み出す、
レート監視装置とした。
【００１２】
開示の態様によると、パケット情報記憶部およびトークン識別情報記憶部を複数備えることで、一方で書き込みをしつつ、他方で読み出しをすることができる。
【発明の効果】
【００１３】
開示の実施形態によれば、大容量処理および細やかなレート監視ができるレート監視装置を提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して実施形態について説明する。実施形態の構成は例示であり、開示の実施形態の構成に限定されない。
【００１５】
〔実施形態〕
《標準の構成例》
（構成）
図１は、ネットワーク構成の例を示す図である。
【００１６】
図１のネットワークは、バックボーンネットワーク１００、メトロアクセスネットワーク２００、Ｌ２ＳＷ（Layer 2 Switch）３００、ＡＳＷ（Aggregate Switch）４００、および、端末（ＴＲ： Terminal）５００を含む。Ｌ２ＳＷ３００は、バックボーンネット
ワーク１００とメトロアクセスネットワーク２００とを接続し得る。Ｌ２ＳＷ３００は、メトロアクセスネットワーク２００と端末（ＴＲ： Terminal）５００とを接続し得る。
Ｌ２ＳＷ３００は、メトロアクセスネットワーク２００とＡＳＷ（Aggregate Switch）４００とを接続し得る。ＡＳＷ４００は、Ｌ２ＳＷ３００と端末（ＴＲ）５００とを接続する。端末（ＴＲ）５００は、Ｌ２ＳＷ３００等を経由して、メトロアクセスネットワーク２００、バックボーンネットワーク１００等と通信する。
【００１７】
Ｌ２ＳＷ（Layer 2 Switch）３００は、イーサフレーム（Ether Frame）１０の転送処
理、および、レート監視等を行うことができる。イーサフレーム１０は、送信先アドレス（ＤＡ： Destination Address）、送信元アドレス（ＳＡ： Source Address）、および
、ＶＬＡＮ（Virtual Local Area Network）タグを含む。
【００１８】
図２は、Ｌ２ＳＷの装置の全体構成の例を示す図である。
【００１９】
図２のＬ２ＳＷ（Layer 2 Switch）３００は、４つのＬＩＵ  Ｃａｒｄ（ＬＩＵ  Ｃａｒｄ＃０乃至＃４）３１０、および、ＳＷ（Switch）３７０を有する。各ＬＩＵ  Ｃａｒｄ３１０は、Ingress機能部３２２、Egress機能部３３２、ＩＦ（Interface）３４２、および、４つのポート（Ｐ０乃至Ｐ３）３５２を有する。Ingress機能部３２２は、入力信
号に対する処理を行う。Ingress機能部３２２は、入力レート監視機能（ポリサ、policer）部３２４を有する。Egress機能部３３２は、出力信号に対する処理を行う。Egress機能部３３２は、出力レート監視機能（シェーパ、shaper）部３３４を有する。Ｌ２ＳＷ３００における、ＬＩＵ  Ｃａｒｄ３１０、および、ポート３５２の数は、上記の例に限られず、設置形態等に応じて、任意の数とすることができる。
【００２０】
入力レート監視機能部、および、出力レート監視機能部は、それぞれ、独立した入力レート監視機能（ポリシング、Policing）装置、出力レート監視機能（シェーピング、Shaping）装置とすることもできる。
【００２１】
ＬＩＵ  Ｃａｒｄ３１０の各ポート３５２で入出力されるＬ２  Ｆｒａｍｅは、Ｆｒａｍｅ多重される。Ingress方向では、Ingress機能部のポリサ機能部が入力レート監視（ポリサ）を行う。Egress方向では、Egress機能部のシェーパ機能部が出力レート監視（シェーパ）を行う。
【００２２】
以下、Ingress機能部の入力レート監視（ポリサ）機能部について説明するが、Egress
機能部の出力レート監視（シェーパ）機能部に対しても同様に適用することができる。
【００２３】
〈入力レート監視機能部〉
図３は、入力レート監視機能部の構成の例を示す図である。入力レート監視機能部は、それぞれ、入力レート監視機能（ポリシング、Policing）装置とすることもできる。
【００２４】
入力レート監視機能部３２４は、タイマ（Timer）部１０１０、パケット（Packet）情
報抽出部１０３０、リソース（Resource）供給部１０４０、パケットバッファ（Packet Buffer）部１０５０、演算部１０８０、トークン（Token）供給設定部１１１０、トークン（Token）カウンタ部１１２０を有する。
【００２５】
これらの処理部のうち、任意の複数を、１つの処理部としてもよい。また、これらの処理部のうち任意の１つが、複数の処理部としての処理を行ってもよい。これらの各処理部は、ハードウェアとしても、ソフトウェアとしても実現され得る。以後に記載される構成要素についても同様である。
【００２６】
タイマ部１０１０は、トークン供給タイミング情報及びパケット演算タイミング情報を生成する。
【００２７】
パケット情報抽出部１０３０は、パケットデータからパケット情報を抽出する。パケット情報抽出部１０３０は、パケットデータをパケットバッファ部１０５０に送信する。パケット情報抽出部１０３０は、パケット情報を演算部１０８０に送信する。パケット情報は、ＰＩＤ（Policer ID）およびパケット長を含む。
【００２８】
リソース供給部１０４０は、トークン供給設定部１１１０から許容バースト量及びトークン供給量を受信する。リソース供給部１０４０は、トークンカウンタ部１１２０から現在の疎通可能データ量を受信する。リソース供給部１０４０は、トークン供給設定部１１１０及びトークンカウンタ部１１２０から受信したデータを基に、トークン演算処理（トークン加算処理）を行い、トークンカウンタ部１１２０の現在の疎通可能データ量の更新を行う。
【００２９】
パケットバッファ部１０５０は、パケット情報抽出部１０３０からパケットデータ受信後ポリシング（Policing）処理を行うまでの間、パケットデータを保持する。ポリシング処理は、パケットの廃棄の要否を決定する処理である。
【００３０】
演算部１０８０は、パケット情報抽出部１０３０からパケット情報を受信する。演算部１０８０は、受信したパケット情報のＰＩＤに対応する現在の疎通可能データ量を、トークンカウンタ部１１２０から読み出す。演算部１０８０は、パケット演算処理（ポリシング処理）を行う。
【００３１】
トークン供給設定部１１１０は、ＰＩＤ毎に許容バッファ量およびトークン供給量を格納する。図３の例では、入力レート監視機能部３２４は、トークン供給設定部１１１０を８個有し、８個のＰＩＤを同時に処理できる。トークン供給部１１１０は、内部ＲＡＭ（Random Access Memory）で実現され得る。
【００３２】
トークンカウンタ部１１２０は、ＰＩＤ毎に現在の疎通可能データ量を管理する。図３の例では、入力レート監視機能部３２４は、トークンカウンタ部１１２０を８個有し、８個のＰＩＤを同時に処理できる。トークンカウンタ部１１２０は、内部ＲＡＭ（Random Access Memory）で実現され得る。
【００３３】
（動作）
ネットワーク内のトラフィック（流量）を測定する方式として、トークンバケット方式と呼ばれる方式がある。トークンは、定期的にバケットに補充される流量である。
【００３４】
〈パケットデータ処理〉
パケット情報抽出部１０３０は、パケットデータ（Packet Data、主信号データ）を受
信すると、該パケットデータからパケット情報を抽出する。パケット情報は、ＰＩＤおよびパケット長を含む。パケット情報抽出部１０３０は、抽出したパケット情報を、ポリシング処理を行う演算部１０８０に送信する。また、パケット情報抽出部１０３０は、受信したパケットデータをパケットバッファ部１０５０に格納する。演算部１０８０は、ポリシング処理（ポリシング演算処理）が終了したパケットデータを、パケットバッファ部１０５０から読み出し、後段に送出する。
【００３５】
〈トークン演算処理〉
トークン供給設定部１１１０は、外部からのＣＰＵ設定に従い、ＰＩＤ毎に一定期間（トークン周期）内に通過可能なデータ量（トークン供給量）、許容バースト量、ＰＩＤ有効／無効設定を、書き込み、保持する。
【００３６】
タイマ部１０１０は、トークン供給設定部１１１０及びトークンカウンタ部１１２０がリソース供給部１０４０にデータを送信するタイミングを指示するトークン供給タイミング情報を生成する。タイマ部１０１０は、トークン供給タイミング情報をトークン供給設定部１１１０及びトークンカウンタ部１１２０に送信する。
【００３７】
トークン供給設定部１１１０は、トークン供給タイミング情報に従い、リソース供給部
１０４０に許容バースト量及びトークン供給量に送信する。トークンカウンタ部１１２０は、トークン供給タイミング情報に従い、リソース供給部１０４０に現在の疎通可能データ量を送信する。
【００３８】
リソース供給部１０４０は、現在の疎通可能データ量にトークン供給量を加算し、新たな現在の疎通可能データ量とする。新たな現在の疎通可能データ量が許容バースト量を超える場合は、リソース供給部１０４０は、許容バースト量を新たな現在の疎通可能データ量とする。リソース供給部１０４０は、新たな現在の疎通可能データ量をトークンカウンタ部１１２０に書き込む。
【００３９】
〈パケット演算処理〉
演算部１０８０は、パケット情報抽出部１０３０からパケット情報を受信する。タイマ部１０１０は、パケット演算を行うタイミングを指示するパケット演算タイミング情報を、演算部１０８０に送信する。演算部１０８０は、パケット演算タイミング情報に従い、トークンカウンタ部１１２０からパケット情報のＰＩＤに対応する現在の疎通可能データ量を読み出す。演算部１０８０は、現在の疎通可能データ量からパケット情報に含まれるパケット長を減算し、新たな現在の疎通可能データ量とする。現在の疎通可能データ量がパケット長よりも小さい場合は、演算部１０８０は、減算を行わない。現在の疎通可能データ量が負である場合に、演算部１０８０は減算を行わないとすることもできる。演算部１０８０は、新たな現在の疎通可能データ量を、トークンカウンタ部１１２０に書き込む。
【００４０】
演算部１０８０は、減算を行わなかった場合、当該パケットに対する廃棄フラグと、パケットバッファ部１０５０に格納した当該パケットのパケットデータと、を後段に送出する。廃棄フラグは、対応するパケットを廃棄することが必要であることを意味する。
【００４１】
演算部１０８０は、減算を行った場合、パケットバッファ部１０５０に格納した当該パケットのパケットデータを後段に送出する。このとき、演算部１０８０は、疎通フラグを後段に送出してもよい。疎通フラグは、対応するパケットを廃棄することが不要であることを意味する。
【００４２】
〈タイムチャート〉
図４は、標準の構成例のタイムチャートの例を示す図である。図４の例では、データ容量１０Ｇｂｐｓ、クロック（Clock、CLK）速度２００ＭＨｚのポリシング装置（もしくは、入力レート監視機能部）の例を示す。図４のポリシング装置では、パケットの入力間隔、および、トークン供給間隔が、それぞれ８クロックに１回となる。
【００４３】
図４のタイムチャートの横方向は、時間を示す。クロック速度が２００ＭＨｚであることから、１つのタイムスロットは、２００，０００，０００分の１秒となる。内部クロック（内部ＣＬＫ）は、装置内で、２００，０００，０００分の１秒毎に時間を刻む。パケットのＦＰは、入力パケットのフレームパルスを表す。パケットは、フレームパルスに合わせてポリシング装置に入力される。パケットのＰＩＤは、入力パケットのＰＩＤを示す。図４の例では、ＰＩＤが「ａ」のパケット、「ｂ」のパケットの順に入力される。トークンのＦＰは、トークンのフレームパルスを表す。トークンのＰＩＤは、これから処理するトークンのＰＩＤを示す。ここでは、内部ＲＡＭが８個あるので、８個のトークンを同時に処理できる。図４の例では、ＰＩＤが０乃至７のトークンを同時に処理する。タイマは、タイマ部１０１０が生成する演算タイミング情報を示す。
【００４４】
トークン供給部１１１０の「Write DATA」「Write XEN (Write enable)」「Read DATA
」「Read XEN (Read enable)」は、トークン供給部１１１０に対する読み書きのメモリア
クセスの帯域（タイミング）を示す。
【００４５】
トークンカウンタ部１１２０の「Write DATA」「Write XEN (Write enable)」「Read DATA」「Read XEN (Read enable)」は、トークン供給部１１２０に対する読み書きのメモ
リアクセスの帯域（タイミング）を示す。
【００４６】
書き込みの場合、「Write XEN」が０であるタイムスロットで「Write DATA」を行う。
つまり、メモリアクセスと同時に書き込みが行われる。一方、読み込みの場合、「Read XEN」が０であるタイムスロットの次のタイムスロットで「Read DATA」が行われる。つま
り、メモリアクセスした次のタイムスロットで読み込みが行われる。
【００４７】
図４の最下行のタイムスロット番号を使用して、メモリアクセス帯域割り当てについて説明する。
【００４８】
タイムスロット１で、ＰＩＤが「ａ」の、現在の疎通可能データ量を読み込む。タイムスロット２で、外部から現在の疎通可能データ量を確認する。タイムスロットは、使用不可である。タイムスロット４で、トークン供給部１１１０及びトークンカウンタ部１１２０から、ＰＩＤが０乃至７の、トークン供給量、現在の疎通可能データ量等を読み込む。タイムスロット５は、使用不可である。タイムスロット６で、これから書き込むＰＩＤのトークンカウンタ部１１２０の疎通可能データ量をクリアする。タイムスロット７で、ＰＩＤが「ａ」の、演算処理後の現在の疎通可能データ量を書き込む。タイムスロット８で、ＰＩＤが０乃至７の、演算処理後の現在の疎通可能データ量を書き込む。
【００４９】
よって、入力パケットに対応する現在の疎通可能データ量の更新には、読み出し後５クロック必要である。また、入力パケット及びトークン供給による現在の疎通可能データ量の更新（トークンカウンタ部１１２０の更新）には、３クロック必要である。また、これらの１連のサイクルには、８クロック必要となる。トークン供給間隔は、８クロックに１回であり、内部ＲＡＭが８個存在するので、８クロックに８ＰＩＤを処理できる。
【００５０】
《構成例１》
次に構成例１について説明する。構成例１は、上記の標準の構成例との共通点を有する。従って、主として相違点について説明する。
【００５１】
図５は、標準の構成例のタイムチャートの他の例を示す図である。図４の例では、データ容量１０Ｇｂｐｓ、クロック速度２００ＭＨｚのポリシング装置の例であったが、図５の例では、データ容量２０Ｇｂｐｓ、クロック速度２００ＭＨｚのポリシング装置（もしくは、入力レート監視機能部）の例である。図５の例では、図４の例に対し、２倍のパケットが入力される。図５のポリシング装置では、パケットの入力間隔は４クロックに１回となる。
【００５２】
しかしながら、上述のように、入力パケットに対応する現在の疎通可能データ量の更新には読み出し後５クロック必要である。したがって、図５の例では、現在の疎通可能データ量の更新前に、次の入力パケットが読み込まれる。すると、例えば、ＰＩＤ「ａ」とＰＩＤ「ｂ」とが同じである場合、現在の疎通可能データ量の更新をうまくできなくなる。同じＰＩＤの現在の疎通可能データ量で、トークンカウンタ部への書き込みの前に、別の読み込みを行うことになるからである。
【００５３】
よって、標準の構成では、データ容量２０Ｇｂｐｓ、クロック速度２００ＭＨｚのポリシング装置を実現できない。
【００５４】
構成例１では、インフォキャッシュ、キャッシュレジスタを使用することにより、より大容量及びより細やかなレート監視を実現する。
【００５５】
（構成）
構成例１のネットワーク構成は、図１の標準の構成のネットワーク構成と同様である。また、構成例１のＬ２ＳＷの装置の全体構成は、図２のＬ２ＳＷの装置の全体構成と同様である。
【００５６】
〈入力レート監視機能部〉
図６は、構成例１の入力レート監視機能部の構成の例を示す図である。入力レート監視機能部は、それぞれ、入力レート監視機能（ポリシング、Policing）装置とすることもできる。
【００５７】
入力レート監視機能部３２４は、タイマ（Timer）部２０１０、トークンＰＩＤ（Token
PID）生成部２０２０、パケット（Packet）情報抽出部２０３０、パケットバッファ（Packet Buffer）部２０５０、Ａ面インフォキャッシュ（InfoCash@A）部２０６１、Ｂ面イ
ンフォキャッシュ（InfoCash@B）部２０６２、Ａ面キャッシュレジスタ（CashRegister@A）部２０７１、Ｂ面キャッシュレジスタ（CashRegister@B）部２０７２、演算部２０８０、インフォバッファ部２０９０、トークン（Token）供給設定部２１１０、トークン（Token）カウンタ部２１２０を有する。トークン供給設定部２１１０およびトークンカウンタ部２１２０は、内部メモリにより実現され得る。
【００５８】
タイマ部２０１０は、各種タイミング情報を生成する。演算部２０８０等はタイマ部が生成したタイミング情報に従って、動作する。
【００５９】
トークンＰＩＤ生成部２０２０は、トークン供給を行うトークンのトークンＰＩＤを生成する。
【００６０】
パケット情報抽出部２０３０は、パケットデータからパケット情報を抽出する。パケット情報抽出部２０３０は、パケットデータをパケットバッファ部２０５０に送信する。パケット情報抽出部２０３０は、パケット情報を、Ａ面インフォキャッシュ部２０６１またはＢ面インフォキャッシュ部２０６１に書き込む。書き込み先は、タイマ部２０１０が生成するタイミング情報によって決定される。
【００６１】
パケットバッファ部２０５０は、パケット情報抽出部２０３０からパケットデータ受信後ポリシング処理を行うまでの間、パケットデータを保持する。
【００６２】
Ａ面インフォキャッシュ部２０６１及びＢ面インフォキャッシュ部２０６２は、パケット情報を保持する。タイマ部２０１０が生成するタイミング情報が、パケット情報を保持するインフォキャッシュ部（Ａ面またはＢ面）を決定する。
【００６３】
Ａ面キャッシュレジスタ部２０７１及びＢ面キャッシュレジスタ部２０７２は、トークンＰＩＤ生成部２０２０が生成したトークンＰＩＤを保持する。トークンＰＩＤは、トークン供給を行うトークンのＰＩＤである。タイマ部２０１０が生成するタイミング情報が、トークンＰＩＤを保持するキャッシュレジスタ部（Ａ面またはＢ面）を決定する。
【００６４】
演算部２０８０は、パケット情報、トークンＰＩＤ、トークン供給部２１１０からのデータ、トークンカウンタ部２１２０からのデータを基に、ポリシング演算処理を行う。
【００６５】
インフォバッファ部２０９０は、演算部２０８０の演算結果により、パケットの疎通情
報又は廃棄情報を格納する。パケットの疎通情報又は廃棄情報は、疎通フラグ又は廃棄フラグとして、後段に送出される。
【００６６】
トークン供給設定部２１１０は、ＰＩＤ毎に許容バッファ量およびトークン供給量を格納する。図６の例では、入力レート監視機能部３２４は、トークン供給設定部２１１０を８個有し、８個のＰＩＤを同時に処理できる。トークン供給部２１１０は、内部ＲＡＭ（Random Access Memory）で実現され得る。
【００６７】
トークンカウンタ部２１２０は、ＰＩＤ毎に現在の疎通可能データ量を管理する。図６の例では、入力レート監視機能部３２４は、トークンカウンタ部２１２０を８個有し、８個のＰＩＤを同時に処理できる。トークンカウンタ部２１２０は、内部ＲＡＭ（Random Access Memory）で実現され得る。
【００６８】
（動作）
〈パケットデータ処理〉
パケット情報抽出部２０３０は、パケットデータ（Packet Data、主信号データ）を受
信すると、該パケットデータからパケット情報を抽出する。パケット情報抽出部２０３０は、抽出したパケット情報を、タイマ部２０１０で生成されるタイミング情報に従って、Ａ面インフォキャッシュ部２０６１又はＢ面インフォキャッシュ部２０６２に、書き込む。また、パケット情報抽出部２０３０は、受信したパケットデータをパケットバッファ部２０５０に格納する。
【００６９】
バケットバッファ部２０５０に格納されたパケットデータは、当該パケットデータに対応する疎通フラグ又は廃棄フラグと共に、後段に送出される。
【００７０】
〈ポリシング演算処理〉
トークン供給設定部２１１０は、外部からのＣＰＵ設定に従い、ＰＩＤ毎に一定期間（トークン周期）内に通過可能なデータ量（トークン供給量）、許容バースト量、ＰＩＤ有効／無効設定を、書き込み、保持する。
【００７１】
インフォキャッシュ部は、Ａ面インフォキャッシュ部２０６１及びＢ面インフォキャッシュ部２０６２の２面構成である。パケット情報抽出部２０３０がＡ面インフォキャッシュ部２０６１にパケット情報を書き込んでいるタイミングでは、演算部２０８０は、Ｂ面インフォキャッシュ部２０６２のパケット情報を使用して、演算を行う。逆に、パケット情報抽出部２０３０がＢ面インフォキャッシュ部２０６２にパケット情報を書き込んでいるタイミングでは、演算部２０８０は、Ａ面インフォキャッシュ部２０６１のパケット情報を使用して、演算を行う。
【００７２】
また、キャッシュレジスタ部も、Ａ面キャッシュレジスタ部２０７１及びＢ面キャッシュレジスタ部２０７２の２面構成である。トークンＰＩＤ生成部２０２０がＡ面キャッシュレジスタ部２０７１にトークンＰＩＤを書き込んでいるタイミングでは、演算部２０８０は、Ｂ面キャッシュレジスタ部２０７２のトークンＰＩＤを使用して、演算を行う。逆に、トークンＰＩＤ生成部２０２０がＢ面キャッシュレジスタ部２０７２にトークンＰＩＤを書き込んでいるタイミングでは、演算部２０８０は、Ａ面キャッシュレジスタ部２０７１のトークンＰＩＤを使用して、演算を行う。
【００７３】
演算部２０８０は、インフォキャッシュ部から読み込んだパケット情報のＰＩＤと、キャッシュレジスタ部から読み込んだトークンＰＩＤとを比較して、一致／不一致フラグを生成する。
【００７４】
また、演算部２０８０は、パケットのＰＩＤ（Packet PID、ＰＰＩＤ）と、トークンＰＩＤ（Token PID、ＴＰＩＤ）とを使用して、トークン供給設定部２１１０及びトークン
カウンタ部２１２０に連続アクセスし、ＰＩＤ毎に、許容バースト量、トークン供給量、および、現在の疎通可能データ量を読み出す。
【００７５】
演算部２０８０は、ＰＰＩＤとＴＰＩＤとの一致／不一致フラグと、ＰＰＩＤ毎のパケット長、許容バースト量、トークン供給量、および、現在の疎通可能データ量とを使用して、ポリシング演算を行う。
【００７６】
演算部２０８０は、ＰＩＤ毎に、現在の疎通可能データ量（Ａとする）に、トークン供給量を加算し、新たな現在の疎通可能データ量（Ｂとする）とする。新たな現在の疎通可能データ量が許容バースト量を超える場合は、演算部２０８０は、許容バースト量を新たな現在の疎通可能データ量（Ｂ）とする。
【００７７】
さらに、演算部２０８０は、入力されたパケットのＰＩＤ毎に、演算した現在の疎通可能データ量（Ｂ）から、パケット長を減算し、新たな現在の疎通可能データ量（Ｃとする）とする。現在の疎通可能データ量（Ｂ）がパケット長よりも小さい場合は、演算部２０８０は、減算を行わない。現在の疎通可能データ量（Ｂ）が負である場合に、演算部２０８０は減算を行わないとすることもできる。減算を行わなかったときは、現在の疎通可能データ量（Ｂ）が、新たな現在の疎通可能データ量（Ｃ）となる。
【００７８】
演算部２０８０は、新たな現在の疎通可能データ量（Ｃ）を、トークンカウンタ部２１２０に書き込む。
【００７９】
演算部２０８０は、減算を行わなかった場合、当該パケットに対する廃棄情報をインフォバッファ部２０９０に通知する。演算部２０８０は、減算を行った場合、当該パケットに対する疎通情報をインフォバッファ部２０９０に格納する。
【００８０】
インフォバッファ部２０９０は、タイマ部２０１０からのタイミング情報に従い、パケットの疎通情報又は廃棄情報を、それぞれ、疎通フラグ又は廃棄フラグとして、後段に送出する。
【００８１】
〈処理フロー〉
図７は、全体の処理フローの例を示す図である。
【００８２】
入力レート監視部３２４は、入力されたパケットに対してパケット処理を行い（Ｓ１００）、トークン供給をするトークン処理（Ｓ２００）を行い、これらを基にポリシング処理を行う（Ｓ３００）。パケット処理（Ｓ１００）とトークン処理（Ｓ２００）との順序は、逆になってもよい。また、並行して処理することも可能である。
【００８３】
図８は、図７のパケット処理のフローの例を示す図である。
【００８４】
タイマ部２０１０は、入力パケットの処理のタイミング情報をインフォキャッシュ部に通知する。当該タイミング情報は、入力パケットのパケット情報をＡ面インフォキャッシュ部２０６１に格納するか、Ｂ面インフォキャッシュ部２０６２に格納するかの情報である。
【００８５】
パケット情報抽出部２０３０は、インフォキャッシュ部に通知されたタイミング情報を確認する（Ｓ１０２）。タイミング情報がＢ面の場合（Ｓ１０２；ＮＯ）、以下に記載するＡ面の場合と同様に処理する。タイミング情報がＡ面の場合（Ｓ１０２；ＹＥＳ）、パ
ケット情報抽出部２０３０は、パケットデータの入力があるか否かを確認する（Ｓ１０４）。パケットデータの入力がない場合（Ｓ１０４；ＮＯ）、ステップＳ１１０に進む。
【００８６】
パケットの入力がある場合（Ｓ１０４；ＹＥＳ）、パケット情報抽出部２０３０は、パケットデータをパケットバッファ部２０５０に格納する（Ｓ１０６）。また、パケット情報抽出部２０３０は、入力されたパケットデータからパケット情報を抽出し、Ａ面インフォキャッシュ部２０６１に格納する。
【００８７】
演算部２０８０は、Ｂ面インフォキャッシュ部２０６２にパケット情報が格納されているか否かを確認する（Ｓ１１０）。パケット情報が格納されていない場合（Ｓ１１０；ＮＯ）、パケット処理を終了する。パケット情報が格納されている場合（Ｓ１１０；ＹＥＳ）、演算部２０８０は、Ｂ面インフォキャッシュ部２０６２からパケット情報を取得する。パケット情報は、パケットのＰＩＤとパケット長を含む。
【００８８】
以上が、パケット処理（図７；Ｓ１００）である。
【００８９】
図９は、図７のトークン処理のフローの例を示す図である。
【００９０】
タイマ部２０１０は、トークン供給の処理のタイミング情報をトークンＰＩＤ生成部２０２０に通知する。当該タイミング情報は、トークンＰＩＤをＡ面キャッシュレジスタ部２０７１に格納するか、Ｂ面キャッシュレジスタ部２０７２に格納するかの情報である。
【００９１】
トークンＰＩＤ生成部２０３０は、タイマ部２０１０から通知されたタイミング情報を確認する（Ｓ２０２）。タイミング情報がＢ面の場合（Ｓ２０２；ＮＯ）、以下に記載するＡ面の場合と同様に処理する。タイミング情報がＡ面の場合（Ｓ２０２；ＹＥＳ）、トークンＰＩＤ生成部２０２０は、トークン供給があるか否かを確認する（Ｓ２０４）。トークン供給がない場合（Ｓ１０４；ＮＯ）、ステップＳ２１０に進む。
【００９２】
トークン供給がある場合（Ｓ２０４；ＹＥＳ）、トークンＰＩＤ生成部２０２０は、トークンＰＩＤを生成する（Ｓ１０６）。トークンＰＩＤ生成部２０２０は、生成したトークンＰＩＤを、Ａ面キャッシュレジスタ部２０７１に格納する。
【００９３】
演算部２０８０は、Ｂ面キャッシュレジスタ部２０７２にトークンＰＩＤが格納されているか否かを確認する（Ｓ２１０）。トークンＰＩＤが格納されていない場合（Ｓ２１０；ＮＯ）、トークン処理を終了する。トークンＰＩＤが格納されている場合（Ｓ２１０；ＹＥＳ）、演算部２０８０は、Ｂ面キャッシュレジスタ部２０６２からトークンＰＩＤを取得する。
【００９４】
以上が、トークン処理（図７；Ｓ２００）である。
【００９５】
図１０は、図７のポリシング処理のフローの例を示す図である。
【００９６】
演算部２０８０は、インフォキャッシュ部から取得したパケット情報のＰＩＤと、キャッシュレジスタ部から取得したトークンＰＩＤと、を比較して、一致不一致フラグを生成する（Ｓ３０２）。
【００９７】
演算部２０８０は、取得した各ＰＩＤについて、トークン供給設定部２１１０及びトークンカウンタ部２１２０に連続アクセスし、許容バースト量、トークン供給量、および、現在の疎通可能データ量を読み出す（Ｓ３０４）。
【００９８】
演算部２０８０は、一致／不一致フラグと、ＰＰＩＤ毎のパケット長、許容バースト量、トークン供給量、および、現在の疎通可能データ量とを使用して、ポリシング演算を行う（Ｓ３０６）。
【００９９】
演算部２０８０は、トークンカウンタ部２１２０に、ＰＩＤ毎に、演算結果である現在の疎通可能データ量を、書き込む（Ｓ３０８）。
【０１００】
演算部２０８０は、インフォバッファ部２０９０に、疎通情報、廃棄情報を書き込む（Ｓ３１０）。現在の疎通可能データ量から、パケットのパケット長を減算できなかった場合、そのパケットは、廃棄と判断される。
【０１０１】
インフォバッファ部２０９０は、タイマ部２０１０からのタイミング情報に従って、インフォバッファ部２０９０に格納される疎通情報または廃棄情報を、疎通フラグ又は廃棄フラグとして後段に送出する。同時に、このフラグに対応するパケットデータは、パケットバッファ部から後段に送出される（Ｓ３１２）。
【０１０２】
以上が、ポリシング処理（図７；Ｓ３００）である。
【０１０３】
（具体例）
図１１、図１２、図１３、および、図１４は、パケット入力の動作の具体例を示す図である。
【０１０４】
パケットが４つ連続入力する場合について説明する。このときのパケットのＰＩＤ（ＰＰＩＤ）を、それぞれ入力順に「４」、「１２０」、「１０」、「４」であるとする。このときのトークン供給用のＰＩＤ（ＴＰＩＤ）を「０」、「１」、．．．、「１４」、「１５」であるとする。
【０１０５】
入力パケットの処理のタイミング情報がＡ面である場合、図１２のようにＰＰＩＤはＡ面インフォキャッシュ部２０６１に格納される。また、トークンの処理のタイミング情報がＡ面である場合、トークン供給用のＴＰＩＤは、図１３のように、Ａ面キャッシュレジスタ部２０７１に格納される。ＰＰＩＤとＴＰＩＤとは、それぞれ、格納された際に格納フラグを立てる。
【０１０６】
入力パケットの処理のタイミング情報およびトークンの処理のタイミング情報が、Ｂ面に変わったとき、演算部２０８０は、Ａ面インフォキャッシュ部２０６１からＰＰＩＤを、Ａ面キャッシュレジスタ部２０７１からＴＰＩＤを読み出す。
【０１０７】
演算部２０８０は、読み出したＰＰＩＤ及びＴＰＩＤとを比較して、図１１のように、ＰＩＤ毎に、一致／不一致フラグを生成する。
【０１０８】
演算部２０８０は、Policing回路１〜２０を保有している。演算部２０８０は、その内、Policing回路１乃至１６にＴＰＩＤを格納する。演算部２０８０は、格納した際に格納フラグを立てる。その後、演算部２０８０は、ＰＰＩＤとＴＰＩＤとを比較し、同じＰＩＤがあれば、一致フラグを立てる。同じＰＩＤがなければPolicing回路１７乃至２０にＴＰＩＤを格納し格納フラグと一致フラグを立てる。
【０１０９】
演算部２０８０は、一致／不一致フラグを生成した後、Policing回路１乃至１６と、Policing回路１７乃至２０の一致フラグが立っているＰＩＤに対し、トークン供給設定部２１１０及びトークンカウンタ部２１２０から、読み出したデータを用いてにてポリシング演算を実施する。
【０１１０】
演算部２０８０は、ポリシング演算を実施した結果をトークンカウンタ部２１２０に書き込む。
【０１１１】
図１５は、演算部の演算結果と、インフォバッファ部の格納例を示す図である。
【０１１２】
演算部２０８０は、各ＰＰＩＤについて、パケットの有効／無効の情報と、パケットを廃棄するか否かの情報（疎通／廃棄情報）とを、インフォバッファ部２０９０に格納する。パケットの有効／無効とは、パケットの存在の有無を示す情報である。例えば、パケットが入力されていないときは、無効となる。
【０１１３】
図１６は、パケット入力の動作の別の具体例を示す図である。
【０１１４】
パケットが４つ連続入力する場合について説明する。このときのＰＰＩＤを、それぞれ入力順に「４」、「７」、「７」、「８」であるとする。このときのトークン供給用のＴＰＩＤを「０」、「１」、．．．、「７」であるとする。
【０１１５】
このとき、ＰＰＩＤが「７」であるパケットが、２つ（Packet2及びPacket3）入力されている。また、ＴＰＩＤが「７」であるトークンも存在する。従って、ＰＩＤが「７」の場合の一致フラグは、この２つについて立てられる。
【０１１６】
図１７は、トークン供給設定部の構成例を示す図である。
【０１１７】
トークン供給設定部２１１０は、ＰＩＤ毎に、ＰＩＤの有効又は無効を示す「ｏｎ／ｏｆｆ」設定、許容されるバースト量を示すバースト設定、および、１回当たりのトークン供給量を示すトークン設定の情報を有する。「ｏｎ／ｏｆｆ」設定がｏｆｆの場合は、ＰＩＤが無効であることを意味し、当該ＰＩＤに対してはポリシング演算を行わない。当該ＰＩＤを有するパケットは、破棄されない。トークン供給設定部２１１０は、外部のＣＰＵ等からのアクセスにより、書き換えられ得る。
【０１１８】
図１８は、トークンカウンタ部の構成例を示す図である。
【０１１９】
トークンカウンタ部２１２０は、ＰＩＤ毎に、ＰＩＤの演算中か否かを示す「ｏｎ／ｏｆｆ」設定、現在の疎通可能データ量を示すトークンカウンタの情報を有する。トークンカウンタ部２１２０は、演算部２０８０により、書き換えられ得る。
【０１２０】
〈タイムチャート〉
図１９は、構成例１のタイムチャートの例を示す図である。図１９の例では、データ容量１０Ｇｂｐｓ、クロック（Clock、CLK）速度２００ＭＨｚのポリシング装置（もしくは、入力レート監視機能部）の例を示す。図１９のポリシング装置では、パケットの入力間隔が８クロックに１回、トークン供給間隔が８クロックに４回となる。
【０１２１】
図１９のタイムチャートの横方向は、時間を示す。最上段のタイムスロットは、内部クロック、ＦＰ、パケットのＰＩＤ、トークンのＰＩＤ、Ａ面のインフォキャッシュ部およびキャッシュレジスタ部、Ｂ面のインフォキャッシュ部およびキャッシュレジスタ部に、対するタイムスロットである。中段のタイムスロットは、トークンカウンタ部２１２０の「Write DATA」「Write XEN (Write enable)」「Read DATA」「Read XEN (Read enable)
」に対するタイムスロットである。それぞれの列の記載は、インフォキャッシュ部またはキャッシュレジスタ部に格納されるパケット情報、トークンＰＩＤを示す。
【０１２２】
図１９の例では、パケットが８クロック毎に入力される。また、トークンは８クロックあたり３２個ずつ処理される。
【０１２３】
入力されたパケットからパケット情報が、抽出される。抽出されたパケット情報は、２個ずつ、順に、Ａ面インフォキャッシュ部２０６１、または、Ｂ面インフォキャッシュ部２０６２に格納される。パケット情報は、パケットのＰＩＤ及びパケット長を含む。インフォキャッシュ部に格納できるパケット情報の数は、データ容量等に応じて、可変とすることができる。
【０１２４】
また、トークン供給用のトークンＰＩＤは、トークンＰＩＤ生成部２０２０で生成される。生成されたトークンＰＩＤは、３２個ずつ、順に、Ａ面キャッシュレジスタ部２０７１、または、Ｂ面キャッシュレジスタ部２０７２に格納される。
【０１２５】
図１９の例では、タイムスロット１乃至８で、ＰＩＤが「ａ」であるパケットが入力される。タイムスロット９乃至１６では、ＰＩＤが「ｂ」であるパケットが入力される。これらのパケットのパケット情報は、Ａ面インフォキャッシュ部２０６１に入力される。タイムスロット１７乃至２４で、ＰＩＤが「ｃ」であるパケットが入力される。タイムスロット２５乃至３２では、ＰＩＤが「ｄ」であるパケットが入力される。これらのパケットのパケット情報は、Ｂ面インフォキャッシュ部２０６２に入力される。
【０１２６】
また、タイムスロット９乃至１６では、ＰＩＤが０乃至３１のトークンＰＩＤが生成され、Ａ面キャッシュレジスタ部２０７１に入力される。さらに、タイムスロット１７乃至２４では、ＰＩＤが３２乃至６３のトークンＰＩＤが生成され、Ｂ面キャッシュレジスタ部２０７２に入力される。
【０１２７】
演算部２０８０は、タイムスロット１７及び１８で、トークンカウンタ部２１２０からＰＩＤが「ａ」及び「ｂ」のトークンカウンタ（現在の疎通可能データ量）を、読み出す。また、演算部２０８０は、タイムスロット１９乃至２２で、ＰＩＤが「０」乃至「３１」のトークンカウンタを、読み出す。内部メモリは、８個ずつ存在するので、４クロックで３２個のトークンカウンタを読み出すことができる。
【０１２８】
演算部２０８０は、読み出した情報等に基づいて、ポリシング演算を実行する。演算部２０８０は、タイムスロット２５乃至３０で、演算結果をトークンカウンタ部２１２０に書き込む。
【０１２９】
演算部２０８０は、タイムスロット２７乃至３０で、トークンＰＩＤが「３２」乃至「６３」のトークンカウンタを、読み出す。ここで、先の書き込みと、タイムスロットが重なるが、トークンＰＩＤは０から所定の値（ここでは、１０２３）まで順に大きくなるので、重なったタイムスロットでＰＩＤが重複することはない。
【０１３０】
演算部２０８０は、読み出した情報等に基づいて、ポリシング演算を実行する。演算部２０８０は、タイムスロット３５乃至３８で、演算結果をトークンカウンタ部２１２０に書き込む。
【０１３１】
したがって、図１９の例では、８クロックあたり４回、トークン供給処理ができる。よって、８クロックあたり３２ＰＩＤのトークンを処理できる。
【０１３２】
図２０は、構成例１のタイムチャートの別の例を示す図である。図２０の例では、データ容量２０Ｇｂｐｓ、クロック（Clock、CLK）速度２００ＭＨｚのポリシング装置（もしくは、入力レート監視機能部）の例を示す。図２０のポリシング装置では、パケットの入
力間隔が４クロックに１回、トークン供給間隔が８クロックに２回となる。
【０１３３】
図２０の例では、パケットが４クロック毎に入力される。また、トークンは８クロックあたり１６個ずつ処理される。
【０１３４】
入力されたパケットからパケット情報が、抽出される。抽出されたパケット情報は、４個ずつ、順に、Ａ面インフォキャッシュ部２０６１、または、Ｂ面インフォキャッシュ部２０６２に格納される。パケット情報は、パケットのＰＩＤ及びパケット長を含む。
【０１３５】
また、トークン供給用のトークンＰＩＤは、トークンＰＩＤ生成部２０２０で生成される。生成されたトークンＰＩＤは、１６個ずつ、順に、Ａ面キャッシュレジスタ部２０７１、または、Ｂ面キャッシュレジスタ部２０７２に格納される。
【０１３６】
図２０の例では、タイムスロット１乃至４で、ＰＩＤが「ａ」であるパケットが入力される。タイムスロット５乃至８では、ＰＩＤが「ｂ」であるパケットが入力される。これらのパケットのパケット情報は、Ａ面インフォキャッシュ部２０６１に入力される。タイムスロット９乃至１２で、ＰＩＤが「ｃ」であるパケットが入力される。タイムスロット１３乃至１６では、ＰＩＤが「ｄ」であるパケットが入力される。これらのパケットのパケット情報も、Ａ面インフォキャッシュ部２０６１に入力される。
【０１３７】
また、タイムスロット９乃至１６では、ＰＩＤが０乃至１５のトークンＰＩＤが生成され、Ａ面キャッシュレジスタ部２０７１に入力される。さらに、タイムスロット１７乃至２４では、ＰＩＤが１６乃至３１のトークンＰＩＤが生成され、Ｂ面キャッシュレジスタ部２０７２に入力される。
【０１３８】
演算部２０８０は、タイムスロット１７乃至２０で、トークンカウンタ部２１２０からＰＩＤが「ａ」「ｂ」「ｃ」「ｄ」のトークンカウンタ（現在の疎通可能データ量）を、読み出す。また、演算部２０８０は、タイムスロット２１および２２で、ＰＩＤが「０」乃至「１５」のトークンカウンタを、読み出す。内部メモリは、８個ずつ存在するので、２クロックで１６個のトークンカウンタを読みだすことができる。
【０１３９】
演算部２０８０は、読み出した情報等に基づいて、ポリシング演算を実行する。演算部２０８０は、タイムスロット２５乃至３０で、演算結果をトークンカウンタ部２１２０に書き込む。
【０１４０】
演算部２０８０は、タイムスロット２９および３０で、トークンＰＩＤが「１６」乃至「３１」のトークンカウンタを、読み出す。ここで、先の書き込みと、タイムスロットが重なるが、トークンＰＩＤは０から所定の値（ここでは、１０２３）まで順に大きくなるので、重なったタイムスロットでＰＩＤが重複することはない。
【０１４１】
演算部２０８０は、読み出した情報等に基づいて、ポリシング演算を実行する。演算部２０８０は、タイムスロット３７および３８で、演算結果をトークンカウンタ部２１２０に書き込む。
【０１４２】
したがって、図２０の例では、８クロックあたり２回、トークン供給処理ができる。よって、８クロックあたり１６ＰＩＤのトークンを処理できる。
【０１４３】
（構成例１の作用効果）
構成例１によると、デバイス内部にキャッシュレジスタ等を具備することでメモリアクセスをバースト（連続的）で処理し
、大容量化したデータの処理に対してレート監視を行うことができる。また、構成例１によると、標準の構成に比べて、より頻度の高いトークン供給が可能となる。
【０１４４】
構成例１によれば、より頻度の高いトークン供給を実現することで、より細やかなレート監視を行うことができる。
【０１４５】
《構成例２》
次に構成例２について説明する。構成例２は、上記の標準の構成、構成例１との共通点を有する。従って、主として相違点について説明する。
【０１４６】
構成例１は、内部メモリを使用する構成であったのに対し、構成例２は外部メモリを使用する構成である。
【０１４７】
（構成）
構成例２のネットワーク構成は、図１の標準の構成のネットワーク構成と同様である。また、構成例２のＬ２ＳＷの装置の全体構成は、図２のＬ２ＳＷの装置の全体構成と同様である。
【０１４８】
〈入力レート監視機能部〉
図２１は、構成例２の入力レート監視機能部の構成の例を示す図である。入力レート監視機能部は、それぞれ、入力レート監視機能（ポリシング、Policing）装置とすることもできる。
【０１４９】
入力レート監視機能部３２４は、タイマ（Timer）部３０１０、トークンＰＩＤ（Token
PID）生成部３０２０、パケット（Packet）情報抽出部３０３０、パケットバッファ（Packet Buffer）部３０５０、Ａ面インフォキャッシュ（InfoCash@A）部３０６１、Ｂ面イ
ンフォキャッシュ（InfoCash@B）部３０６２、Ａ面キャッシュレジスタ（CashRegister@A）部３０７１、Ｂ面キャッシュレジスタ（CashRegister@B）部３０７２、演算部３０８０、インフォバッファ部３０９０、ＱＤＲ（Quad Data Rate）メモリ（外部メモリ）によるトークン（Token）供給設定部３１１０、ＱＤＲメモリ（外部メモリ）によるトークン（Token）カウンタ部３１２０を有する。
【０１５０】
トークン供給設定部３１１０、及び、トークンカウンタ部３１２０以外の構成要素については、構成例１の対応する構成要素と同様である。また、トークン供給設定部３１１０、及び、トークンカウンタ部３１２０についても、構成例１では内部メモリであったものが、外部メモリとする以外は同様の機能を有する。
【０１５１】
一般に、外部メモリを使用するとメモリアクセスのレイテンシ（メモリアクセスの遅れ）の問題が発生する。そこで、外部メモリとしてＱＤＲメモリを使用することで、外部レイテンシを吸収する。
【０１５２】
図２１の例では、４個のトークン供給設定部３１１０及び４個のトークンカウンタ部３１２０が存在し、それぞれ、４個のＰＩＤを同時に処理できる。
【０１５３】
（動作）
構成例２の動作は、構成例１の動作と同様であるため、説明を省略する。
【０１５４】
〈タイムチャート〉
図２２は、構成例２のタイムチャートの例を示す図である。図２２の例では、データ容量２０Ｇｂｐｓ、クロック（Clock、CLK）速度２００ＭＨｚのポリシング装置（もしくは
、入力レート監視機能部）の例を示す。図１９のポリシング装置では、パケットの入力間隔が４クロックに１回、トークン供給間隔が８クロックに２回となる。
【０１５５】
図２２のタイムチャートの横方向は、時間を示す。最上段のタイムスロットは、内部クロック、ＦＰ、パケットのＰＩＤ、トークンのＰＩＤ、Ａ面のインフォキャッシュ部およびキャッシュレジスタ部、Ｂ面のインフォキャッシュ部およびキャッシュレジスタ部に、対するタイムスロットである。中段のタイムスロットは、トークンカウンタ部３１２０の「Address」「RPS」「WPS」「Write DATA」「Read DATA」に対するタイムスロットである。「RPS」「WPS」は、それぞれ、内部メモリの「Read Enable」「Write Enable」に相当
する。
【０１５６】
図２２の例では、パケットが４クロック毎に入力される。また、トークンは８クロックあたり１６個ずつ処理される。ＱＤＲメモリでは、１クロックあたり２個のトークンＰＩＤを処理できるからである。
【０１５７】
パケット情報及びトークンＰＩＤの格納は、図２０の例と同様である。
【０１５８】
演算部３０８０は、タイムスロット１８乃至２１で、トークンカウンタ部３１２０からＰＩＤが「ａ」「ｂ」「ｃ」「ｄ」のトークンカウンタ（現在の疎通可能データ量）を、読み出す。また、演算部３０８０は、タイムスロット２１および２２で、ＰＩＤが「０」乃至「１５」のトークンカウンタを、読み出す。ＱＤＲメモリ（外部メモリ）は、４個ずつ存在し、１クロックで２個の連続するトークンカウンタを読み出せるので、２クロックで合計１６個のトークンカウンタを読み出すことができる。
【０１５９】
演算部３０８０は、読み出した情報等に基づいて、ポリシング演算を実行する。演算部３０８０は、タイムスロット２６乃至３１で、演算結果をトークンカウンタ部３１２０に書き込む。
【０１６０】
演算部３０８０は、タイムスロット３０および３１で、トークンＰＩＤが「１６」乃至「３１」のトークンカウンタを、読み出す。ここで、先の書き込みと、タイムスロットが重なるが、ＱＤＲメモリでは、問題とならない。
【０１６１】
演算部３０８０は、読み出した情報等に基づいて、ポリシング演算を実行する。演算部３０８０は、タイムスロット３８および３９で、演算結果をトークンカウンタ部３１２０に書き込む。
【０１６２】
したがって、図２２の例では、８クロックあたり２回、トークン供給処理ができる。よって、８クロックあたり１６ＰＩＤのトークンを処理できる。
【０１６３】
（構成例２の作用効果）
構成例２によると、構成例１のポリシング装置をＱＤＲメモリ（外部メモリ）を使用して、実現することができる。
【０１６４】
構成例２によれば、外部メモリを使用することで、ＰＩＤの数を容易に増加させることが可能となる。
【図面の簡単な説明】
【０１６５】
【図１】図１は、ネットワーク構成の例を示す図である。
【図２】図２は、Ｌ２ＳＷの装置の全体構成の例を示す図である。
【図３】図３は、入力レート監視機能部の構成の例を示す図である。
【図４】図４は、標準の構成例のタイムチャートの例を示す図である。
【図５】図５は、標準の構成例のタイムチャートの他の例を示す図である。
【図６】図６は、構成例１の入力レート監視機能部の構成の例を示す図である。
【図７】図７は、全体の処理フローの例を示す図である。
【図８】図８は、図７のパケット処理のフローの例を示す図である。
【図９】図９は、図７のトークン処理のフローの例を示す図である。
【図１０】図１０は、図７のポリシング処理のフローの例を示す図である。
【図１１】図１１は、パケット入力の動作の具体例を示す図である。
【図１２】図１２は、パケット入力の動作の具体例を示す図である。
【図１３】図１３は、パケット入力の動作の具体例を示す図である。
【図１４】図１４は、パケット入力の動作の具体例を示す図である。
【図１５】図１５は、演算部の演算結果と、インフォバッファ部の格納例を示す図である。
【図１６】図１６は、パケット入力の動作の別の具体例を示す図である。
【図１７】図１７は、トークン供給設定部の構成例を示す図である。
【図１８】図１８は、トークンカウンタ部の構成例を示す図である。
【図１９】図１９は、構成例１のタイムチャートの例を示す図である。
【図２０】図２０は、構成例１のタイムチャートの別の例を示す図である。
【図２１】図２１は、構成例２の入力レート監視機能部の構成の例を示す図である。
【図２２】図２２は、構成例２のタイムチャートの例を示す図である。
【符号の説明】
【０１６６】
１０      イーサフレーム
１００      バックボーンネットワーク（フォトニックネットワーク）
２００      メトロネットワーク（ＩＰネットワーク）
３００      Ｌ２ＳＷ
３１０        ＬＩＵ  ｃａｒｄ
３２２        Ingress機能部
３２４        入力レート監視機能（ポリサ）部
３３２        Egress機能部
３３４        出力レート監視機能（シェーパ）部
３４２        ＩＦ
３５２        ポート
３７０        ＳＷ
４００      ＡＳＷ
５００      端末（ＴＲ）
１０１０      タイマ部
１０３０      パケット情報抽出部
１０４０      リソース供給部
１０５０      パケットバッファ部
１０８０      演算部
１１１０      トークン供給部（内部メモリ）
１１２０      トークンカウンタ部（内部メモリ）
２０１０      タイマ部
２０２０      トークンＰＩＤ生成部
２０３０      パケット情報抽出部
２０５０      パケットバッファ部
２０６１      Ａ面インフォキャッシュ部
２０６２      Ｂ面インフォキャッシュ部
２０７１      Ａ面バッファレジスタ部
２０７２      Ｂ面バッファレジスタ部
２０８０      演算部
２０９０      インフォバッファ部
２１１０      トークン供給部（内部メモリ）
２１２０      トークンカウンタ部（内部メモリ）
３０１０      タイマ部
３０２０      トークンＰＩＤ生成部
３０３０      パケット情報抽出部
３０５０      パケットバッファ部
３０６１      Ａ面インフォキャッシュ部
３０６２      Ｂ面インフォキャッシュ部
３０７１      Ａ面バッファレジスタ部
３０７２      Ｂ面バッファレジスタ部
３０８０      演算部
３０９０      インフォバッファ部
３１１０      トークン供給部（外部メモリ）
３１２０      トークンカウンタ部（外部メモリ）
【図１】
2010098369.tif 000003
【図２】
2010098369.tif 000004
【図３】
2010098369.tif 000005
【図４】
2010098369.tif 000006
【図５】
2010098369.tif 000007
【図６】
2010098369.tif 000008
【図７】
2010098369.tif 000009
【図８】
2010098369.tif 000010
【図９】
2010098369.tif 000011
【図１０】
2010098369.tif 000012
【図１１】
2010098369.tif 000013
【図１２】
2010098369.tif 000014
【図１３】
2010098369.tif 000015
【図１４】
2010098369.tif 000016
【図１５】
2010098369.tif 000017
【図１６】
2010098369.tif 000018
【図１７】
2010098369.tif 000019
【図１８】
2010098369.tif 000020
【図１９】
2010098369.tif 000021
【図２０】
2010098369.tif 000022
【図２１】
2010098369.tif 000023
【図２２】
2010098369.tif 000024