(58)【調査した分野】(Int.Cl.,DB名)
請求項1〜請求項6のいずれか1つに記載の統計情報メモリシステムを備え、当該統計情報メモリシステムで到着したパケットに関する統計情報を蓄積するネットワーク機器。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、前述した従来のIPルータは、ネットワークに設置された各機器に対して独立に制御、設定するものであった。そのため、例えば優先指定や省電力化を目的とした帯域制御や、障害発生時の緊急対策など、ネットワーク全体を再構築する場合には、すべての機器の状況を把握し、さらに各機器ひとつひとつを設定しなければならないという問題があった。
また、ネットワークのトラヒック量は時間によって特徴的な変動をするため、この特徴を利用し、各時間帯において最適なネットワークを再構築することによって大きな省電力化が期待できるが(非特許文献1)、従来のIPルータにおいては、前述のとおりすべての機器の状況を動的に情報収集することが困難である。
【0008】
さらに、従来のIPルータによって構築されたネットワークにおいては、例えば、アプリケーションに対応する優先決め(QoS:Quality of Service)を設定する場合など、管理者はネットワーク内のすべてのIPルータを設定し直さなければならない。限られたネットワーク、LAN網において、この取り決めは過剰なサービスによる無駄な経路、ルータによる電力消費や、設定変更に係る管理者への負荷を引き起こすことがあった。
【0009】
SDN(Software Defined Network)は、このような背景のもとで提案された新しいネットワーク仕様である。
図9は、SDNに基づくネットワークの構成例である。ここでは、ネットワーク内の全てルータR1,R2,R3,R4は、それぞれSDN対応機能を有し、SDNを介してSDNコントローラ(サーバ)SVと接続されており、SVのソフトウェアによって管理される。これによって、夜間や週末などトラヒック量が減少する場合には不必要な通信回線およびルータを遮断して電力消費を削減でき、ルータ間のトラヒック量を監視しつつ、最適な負荷分散や優先制御を管理できる。
【0010】
このように、SDNによれば、SVで各ルータの状況を集中的に把握できるため、管理者はこのネットワーク全体の情報を随時取得しつつ、SVに実装したソフトウェアだけで、ネットワーク内に設置されたすべてのルータを動的かつ一元的に設定・変更することが可能となる。
【0011】
SDNの代表としてOpenFlow(登録商標)が知られている。OpenFlowの環境に設置するルータは、従来のIPルータとハードウェア仕様が異なり、メーカからもIPルータと区別して製造販売されている。したがって、例えばある既存のネットワークをSDN対応に変更しようとする際、すべてのIPルータ機器をSDNに対応するルータに変更して、SDNにおいて要求される動作や処理内容を実現する機能を追加しなければならない。
【0012】
既存のIPルータにおいてSDNに対応するための主な機能の1つとして、自己の動作状況を示す統計情報をパケットから取得し蓄積する機能がある。これは、SVからの要求に応じて、自己の動作状況、具体的には自己で転送したパケットのフローに関する統計情報を通知する必要があるからである。
このような統計情報は、ポートやキューごとに細かく設定されている。
図10は、OpenFlowで必要とされる統計情報例である。IPルータには、これらポートやキューを複数設けられていることから、取得・蓄積すべき統計情報は極めて膨大な数となる。
【0013】
したがって、このような統計情報をパケットから取得して項目ごとに蓄積するには、高速で動作し、かつ大容量のメモリが必要となる。統計情報の蓄積に用いられる一般的な半導体メモリとしては、SRAM(Static Random Access Memory)とDRAM(Dynamic Random Access Memory)がある。SRAMは、高速動作可能であるが高価であり、DRAMは安価であるが動作速度は遅い。したがって、上位装置から逐次高速で入力される膨大な数の統計項目に関する統計情報を、単一のハードウェアコンポーネントで蓄積するのは難しい。
【0014】
従来、パケットから抽出した各種情報を蓄積するメモリ構成として、SRAMとDRAMを組み合わせた技術が提案されている(特許文献1など参照)。
図11は、従来のメモリ構成を示すブロック図である。この例では、SRAM61とDRAM62とを並列的に配置して、蓄積すべき統計情報を識別するためのフロー識別条件については、高速検索を実現するためにSRAM61からなるフローテーブルに蓄積し、これらフロー識別条件のうちのいずれかを満たすパケットから抽出した統計情報についてはDRAM62からなる統計情報テーブルに蓄積している。
【0015】
また、パケットから取得した比較的データ量の小さい固定長のヘッダ情報については、パケットヘッダ蓄積メモリに高速で蓄積し、比較的データ量の大きい可変長のパケットデータについてはパケットデータ蓄積メモリに蓄積している。したがって、上記SRAMやDRAMを用いて、ヘッダ情報についてはSRAM61に蓄積し、パケットデータについてはDRAM62に蓄積することも考えられる。
【0016】
しかしながら、このようなメモリ構成によれば、蓄積すべき情報がその使用目的やデータ量に応じてSRAMまたはDRAMに蓄積されるため、前述したような、使用目的が同じ膨大な量の統計情報を高速で蓄積する必要があるSDNでは、いずれか一方にのみ蓄積が集中し、統計情報を効率よく蓄積できないという問題点があった。
【0017】
このような目的を達成するために、本発明にかかる統計情報メモリシステムは、より安価なメモリ構成で、逐次入力される統計情報を高速かつ効率よく蓄積できる統計情報蓄積技術を提供することを目的としている。
【課題を解決するための手段】
【0018】
このような目的を達成するために、本発明にかかる統計情報メモリシステムは、上位装置から逐次入力される、
統計項目に関する時間的粒度の細かい統計値である細粒度統計情報を、当該統計項目ごとに統計処理することにより時間的粒度の粗い統計値である粗粒度統計情報を計算し、得られた計算結果を新たな粗粒度統計情報として蓄積する統計情報メモリシステムであって、前記
統計項目に関する前記粗粒度統計情報をそれぞれ蓄積する粗粒度メモリと、前記粗粒度メモリに比較して記憶容量が小さく、かつ、高速で動作して、前記上位装置から逐次入力される前記
統計項目に関する前記細粒度統計情報をそれぞれ一時蓄積する細粒度メモリと、前記粗粒度メモリのアクセス周期に合わせて、前記細粒度メモリで一時蓄積している前記細粒度統計情報で、前記粗粒度メモリに蓄積されている前記粗粒度統計情報を順次更新する更新処理部とを備えている。
【0019】
また、本発明にかかる上記統計情報メモリシステムの一構成例は、前記更新処理部が、前記粗粒度メモリのアクセス周期に合わせて、
全ての前記統計項目のうちから更新対象として順に選択した対象統計項目ごとに、前記粗粒度メモリに蓄積されている当該対象統計項目に関する前記粗粒度統計情報を、前記細粒度メモリで一時蓄積している当該対象統計項目に関するすべての前記細粒度統計情報で更新し、得られた粗粒度統計情報を当該対象統計項目に関する新たな粗粒度統計情報として前記粗粒度メモリに書き込むようにしたものである。
【0020】
また、本発明にかかる上記統計情報メモリシステムの一構成例は、前記粗粒度メモリのアクセス周期ごとに、
全ての前記統計項目のうちから更新対象となる前記対象統計項目を逐次選択し、前記更新処理部に対して、当該対象統計項目に関する粗粒度統計情報の更新を指示する更新制御部をさらに備えている。
【0021】
また、本発明にかかる上記統計情報メモリシステムの一構成例は、それぞれ異なる対象統計項目に関する前記粗粒度統計情報の更新を並列的に実行する複数の前記更新処理部を備え、前記更新制御部は、前記粗粒度メモリへのアクセス周期ごとに、
全ての前記統計項目のうちから更新対象となる前記対象統計項目を複数選択し、これら対象統計項目に関する粗粒度統計情報の更新を、前記更新処理部のそれぞれに個別に指示するようにしたものである。
【0022】
また、本発明にかかる上記統計情報メモリシステムの一構成例は、前記細粒度メモリが、前記粗粒度メモリへ更新後の新たな粗粒度統計情報を転送した後、自己に対して新たな細粒度統計情報が蓄積されて、自己が更新されたか否かを検出し、次回の更新処理時に、更新なしが検出されている場合には、前記細粒度メモリと前記粗粒度メモリとの間の通信を遮断するようにしたものである。
【0023】
また、本発明にかかる上記統計情報メモリシステムの一構成例は、前記
統計項目の項目数をN[個]、メモリ間の通信所要時間をTd[s]、パケットのスループットをT[bps]、パケット長をL[bit]、および前記細粒度メモリのビット長をW[bit]とした場合、前記細粒度メモリは、次の式2
W≧N×Td×T/Lを満たす最小のWにNを乗算して得られる記憶容量C=W×N[bit]を有するものである。
【0024】
また、本発明にかかるネットワーク機器は、前述した統計情報メモリシステムを備え、当該統計情報メモリシステムで到着したパケットに関する統計情報を蓄積するものである。
【0025】
本発明にかかる統計情報蓄積方法は、上位装置から逐次入力される、
統計項目に関する時間的粒度の細かい統計値である細粒度統計情報を、当該統計項目ごとに統計処理することにより時間的粒度の粗い統計値である粗粒度統計情報を計算し、得られた計算結果を新たな粗粒度統計情報として蓄積する統計情報蓄積方法であって、前記
統計項目に関する前記粗粒度統計情報を、粗粒度メモリでそれぞれ蓄積するステップと、前記粗粒度メモリに比較して記憶容量が小さく、かつ、高速で動作して、前記上位装置から逐次入力される前記
統計項目に関する前記細粒度統計情報を、細粒度メモリでそれぞれ一時蓄積するステップと、前記粗粒度メモリのアクセス周期に合わせて、前記細粒度メモリで一時蓄積している前記細粒度統計情報で、前記粗粒度メモリに蓄積されている前記粗粒度統計情報を順次更新する更新処理ステップとを備えている。
【発明の効果】
【0026】
本発明によれば、入力回線から新たなパケットが到着するごとに上位装置から高速で逐次入力される、時間的粒度が細かい細粒度統計情報は、高速動作が可能な、例えばSRAMからなる細粒度メモリに順次蓄積される。また、時間的粒度が粗い粗粒度統計情報については、例えばDRAMからなる粗粒度メモリのアクセス周期に合わせて、細粒度メモリで一時蓄積している細粒度統計情報で更新される。
【0027】
したがって、高速動作可能であるが単位容量当たりの価格が高いSRAMだけではなく、SRAMと比較して動作速度は比較的遅いものの単位容量当たりの価格が低いDRAMも併用しつつ、入力回線から新たなパケットが到着するごとに上位装置から高速で逐次入力される細粒度統計情報を、欠損することなく受け取ることができるとともに、これら細粒度統計情報を統計項目ごとに統計処理して粗粒度統計情報を蓄積することができる。これにより、コストパフォーマンスに優れた、高速動作可能な統計情報メモリシステムを実現することが可能となる。
【0028】
また、既存のネットワークをSDN対応に変更しようとする際、すべてのIPルータ機器をSDNに対応するルータに変更しなければならないという問題があった。本発明によれば、既存のIPルータに回路ユニットとして統計情報メモリシステムを追加するだけで、既存のIPルータが持つ資源を活用しつつ、SDNへの対応が可能となる。したがって、ネットワーク全体を極めて容易にSDN対応へ再構築することができるとともに、移行にともなう設備投資を大幅に削減することが可能となる。
【発明を実施するための形態】
【0030】
次に、本発明の実施の形態について図面を参照して説明する。
[第1の実施の形態]
まず、
図1を参照して、本発明の第1の実施の形態にかかる統計情報メモリシステム10について説明する。
図1は、第1の実施の形態にかかる統計情報メモリシステムの構成を示すブロック図である。
【0031】
この統計情報メモリシステム10は、全体として半導体メモリを搭載したFPGA(Field Programmable Gate Array)などの回路ユニットからなり、例えばIPルータなどのネットワーク機器からなる上位装置に実装されて、この上位装置から逐次入力される、各統計項目に関する時間的粒度の細かい統計値を示す細粒度統計情報を、当該統計項目ごとに統計処理することにより時間的粒度の粗い統計値を示す粗粒度統計情報を計算し、得られた計算結果を新たな粗粒度統計情報として蓄積する機能を有している。
【0032】
前述したように、統計情報の蓄積に用いられる一般的な半導体メモリとしては、SRAMとDRAMがある。このうち、SRAMは高速動作可能であるが単位容量当たりの価格が高くて大記憶容量には向かない。一方、DRAMはSRAMと比較して単位容量当たりの価格が低く大記憶容量を容易に実現できるが動作速度は比較的遅い。
【0033】
また、蓄積の対象となる統計情報を、時間的粒度、すなわち統計情報の処理(発生)間隔で分析すると、上位装置から逐次入力される時間的粒度の細かい細粒度統計情報と、これら細粒度統計情報を統計処理して得られる時間的粒度の粗い粗粒度統計情報の2つに分類される。
【0034】
本発明は、このようなSRAMとDRAMが相反する性能を有する点、および統計情報には時間的粒度が異なる2種類の統計情報が存在している点に着目し、SRAMからなる細粒度メモリ11とDRAMからなる粗粒度メモリ12を並列的ではなく直列的に配置して、パケット到着間隔で上位装置から高速で逐次入力される細かい細粒度統計情報については、高速動作が可能な細粒度メモリ11で一時的に蓄積し、粗粒度メモリ12のアクセス周期に合わせて、細粒度メモリ11内の細粒度統計情報で粗粒度メモリ12内の粗粒度統計情報を、順次更新するようにしたものである。
【0035】
[統計情報メモリシステム]
次に、
図1を参照して、本実施の形態にかかる統計情報メモリシステム10の詳細構成について説明する。
この統計情報メモリシステム10は、細粒度メモリ11、粗粒度メモリ12、更新処理部STA、および更新制御部CNTから構成されている。
【0036】
[細粒度メモリ]
細粒度メモリ11は、粗粒度メモリ12に比較して記憶容量が小さく、かつ、高速で動作するSRAMを有し、上位装置から逐次高速で入力される全統計項目に関する細粒度統計情報をそれぞれ一時蓄積する機能を有している。
粗粒度メモリ12は、データ通信を行うためのデータ線13Aおよび制御線13Bを介して細粒度メモリ11と接続されて、細粒度メモリ11に比較して記憶容量が大きいDRAMを有し、全統計項目に関する粗粒度統計情報をそれぞれ蓄積する機能を有している。
【0037】
更新処理部STAは、粗粒度メモリ12のアクセス周期に合わせて、細粒度メモリ11で一時蓄積している細粒度統計情報で、粗粒度メモリ12に蓄積されている粗粒度統計情報を順次更新する機能を有している。
【0038】
より具体的には、更新処理部STAは、粗粒度12メモリのアクセス周期に合わせて、全統計項目のうちから更新対象として順に選択した対象統計項目ごとに、粗粒度メモリ12に蓄積されている当該対象統計項目に関する粗粒度統計情報を、細粒度メモリ11で一時蓄積している当該対象統計項目に関するすべての細粒度統計情報で更新する機能と、得られた粗粒度統計情報を当該対象統計項目に関する新たな粗粒度統計情報として粗粒度メモリ12に書き込む機能とを有している。
【0039】
更新制御部CNTは、粗粒度メモリ12のアクセス周期ごとに、全統計項目のうちから更新対象となる対象統計項目を逐次選択する機能と、更新処理部SATに対して、当該対象統計項目に関する粗粒度統計情報の更新を指示する機能とを有している。
【0040】
細粒度メモリ11には、主な回路部として、細粒度蓄積部11A、細粒度制御部11B(更新制御部CNT)、データ転送部11C、および更新処理部STAが設けられている。なお、本実施の形態では、更新処理部STAを細粒度メモリ11の細粒度蓄積部11Aに設けた場合を例として説明するが、これに限定されるものではなく、他の回路部にあるいは細粒度メモリ11や粗粒度メモリ12と独立して更新処理部STAを設けてもよい。また、本実施の形態では、更新制御部CNTが、細粒度制御部11Bと後述する粗粒度メモリ12の粗粒度制御部12Bで構成される場合を例として説明するが、これに限定されるものではなく、他の回路部にあるいは細粒度メモリ11や粗粒度メモリ12と独立して更新処理部STAを設けてもよい。
【0041】
細粒度蓄積部11Aは、上位装置からデータ転送部11Cに対して逐次高速で入力される細粒度統計情報を一時的に蓄積する機能と、前述した更新処理部STAとを有している。具体的には、細粒度蓄積部11Aにおいて、例えば各統計項目に対応した複数の待ち行列(キュー)が設けられており、データ転送部11Cからの細粒度統計情報は、対応する待ち行列に順次蓄積される。
【0042】
細粒度制御部11Bは、上位装置からの指示に応じてデータ転送部11Cにおける細粒度統計情報の入出力を制御する機能と、データ転送部11Cから細粒度蓄積部11Aへの細粒度統計情報の書き込みを制御する機能と、粗粒度メモリ12からの更新要求に応じて更新処理部STAにおける粗粒度統計情報に関する、粗粒度メモリ12からの読み出し、更新、および粗粒度メモリ12への書き込みを制御する機能(更新制御部CNT)とを有している。
【0043】
データ転送部11Cは、上位装置から逐次高速で入力される細粒度統計情報を受け取って細粒度蓄積部11Aへ書き込む機能と、細粒度蓄積部11Aから細粒度統計情報を読み出して上位装置へ出力する機能とを有している。
【0044】
[粗粒度メモリ]
粗粒度メモリ12には、主な回路部として、粗粒度蓄積部12Aと粗粒度制御部12B(更新制御部CNT)が設けられている。
粗粒度蓄積部12Aは、更新処理部STAにおける粗粒度統計情報の更新処理の開始時に、更新対象として選択された対象統計項目に関する粗粒度統計情報を読み出して細粒度メモリ11へ出力する機能と、更新処理部STAにおける粗粒度統計情報の更新処理の終了時に、対象統計項目に関する細粒度統計情報を細粒度メモリ11から受け取って蓄積する機能とを有している。
【0045】
粗粒度制御部12Bは、粗粒度メモリ12のアクセス周期に合わせて、一定周期で粗粒度統計情報の更新を要求する更新要求を細粒度メモリ11へ出力する機能(更新制御部CNT)と、更新処理部STAにおける粗粒度統計情報の更新処理に同期して、あるいは細粒度メモリ11からの要求に応じて、細粒度蓄積部11Aにおける粗粒度統計情報の読み出し、書き込みを制御する機能とを有している。本実施の形態では、細粒度メモリ11に対する更新要求を粗粒度制御部12Bから出力する場合を例として説明するが、これに限定されるものではなく、他の回路部から更新要求を出力するようにしてもよい。
【0046】
[IPルータ]
図2は、第1の実施の形態にかかる統計情報メモリシステムを実装したIPルータの構成を示すブロック図である。
このIPルータ20は、SDN対応機能を有するパケット転送装置であり、主な機能部として、パケット転送処理部20R、統計情報メモリシステム10、メモリシステム制御部25、およびSDN制御部26が設けられている。
【0047】
パケット転送処理部20Rは、一般的なIPルータが有するパケット転送機能を有しており、統計情報メモリシステム10の上位装置に相当する。このパケット転送処理部20Rには、主な回路部として、パケット入力部21、パケット交換部22、およびパケット出力部23が設けられている。
【0048】
パケット入力部21は、入力回線31に到着したIPパケットのヘッダ情報をルックアップテーブル21Aにより解析処理する機能と、得られた解析結果に基づいて宛先検索部21Bにより到着IPパケットの宛先を検索する機能と、パケット出力部23からの廃棄指示に基づいて宛先検索部21Bによりパケットの廃棄を行う機能とを有している。
【0049】
パケット交換部22は、パケット入力部21で検索した宛先に基づいて、到着パケットに対するヘッダ情報の書き換えやスイッチングを行って、その宛先に対応するパケット出力部23の待ち行列(キュー)へ出力する機能を有している。
パケット出力部23は、出力回線32ごとにパケットを一時蓄積する待ち行列を有し、各待ち行列に蓄積されたパケットを対応する出力回線32へ順次出力する機能と、ハードウェア実装されたリソースを超えるパケットが蓄積された際にはパケット落ち(ドロップ)を行い、さらにはパケット入力部21に対して廃棄指示を行う機能とを有している。
【0050】
統計情報メモリシステム10は、制御バスCBを介したメモリシステム制御部25からの指示に応じて、パケット入力部21およびパケット出力部23で取得された細粒度統計情報を、データバスDBを介して受け取って蓄積する機能と、読み出した細粒度統計情報をデータバスDBを介してパケット出力部23へ出力する機能とを有している
【0051】
メモリシステム制御部25は、IPルータ20の内部動作タイミングに同期して、統計情報メモリシステム10に対する統計情報の書き込み・読み出しを制御する機能を有している。統計情報の読み出しについては、例えば、統計情報メモリシステム10を構成するFPGAあるいは別箇のFPGAにより、粗粒度メモリ12から統計情報を直接読み出して、データバスDBへ出力するようにしてもよい。
なお、統計情報メモリシステム10で用いるクロックCLKについては、統計情報メモリシステム10内部で生成してもよく、メモリシステム制御部25で生成したクロックCLKを統計情報メモリシステム10へ分配するようにしてもよい。
【0052】
SDN制御部26は、パケット入力部21から制御バスCBを介して受け取ったSDNコントローラからの指示に応じて、指定された統計情報の読み出しを制御バスCBを介してメモリシステム制御部25に指示する機能と、統計情報メモリシステム10から出力された統計情報を制御バスCBを介して受け取り、制御バスCBを介してパケット出力部23からSDNコントローラへ送信する機能とを有している。
【0053】
[第1の実施の形態の動作]
次に、図面を参照して、本実施の形態にかかる統計情報メモリシステム10およびこれを実装したIPルータ20の動作について説明する。
まず、
図3を参照して、IPルータ20における統計情報取得動作について説明する。
図3は、IPルータにおける統計情報取得動作を示す説明図である。これら統計情報の取得については、一般的な取得手法を用いて取得される。
【0054】
入力回線31からの到着パケットに関する統計情報は、主にパケット入力部21およびパケット出力部23で取得される。例えば、パケット入力部21では、到着パケットを識別するための到着パケット情報やヘッダ情報の解析結果を示すヘッダ解析情報が取得される。また、パケット出力部23では、出力回線32から送信される出発パケットを識別するための出発パケット情報や、パケット出力部23の待ち行列で廃棄されたパケットに関する廃棄パケット情報が取得される。
【0055】
また、パケット入力部21では、到着パケットの数を示す到着パケット数やパケット長が取得され、5−tupleとよばれる送信元/先IPアドレス、プロトコル番号、送信元/先ポート番号(L3 Src., L3 Dst., #Protocol, L4 Src., L4 Dst.)からなる5つの属性値の組み合せに基づきルックアップテーブル21Aが参照されて、到着パケットのルーティングを示す宛先ルーティング情報や、到着パケットのフローを示すフロー情報が取得される。
【0056】
次に、
図4を参照して、本実施の形態にかかる統計情報メモリシステム10における統計情報の更新動作について説明する。
図4は、統計情報メモリシステムの統計情報更新処理を示すフローチャートである。
【0057】
まず、細粒度メモリ11は、上位装置から高速で逐次入力される細粒度統計情報をデータ転送部11Cにより受け取って、統計項目ごとに設けられた細粒度蓄積部11Aの待ち行列に一時蓄積する(ステップ100)。
この後、時間経過とともに、細粒度蓄積部11Aのリソースが枯渇するため、細粒度メモリ11は、粗粒度メモリ12からの更新要求に基づき、粗粒度メモリ12のアクセス周期に合わせて、ステップ101〜106に示す統計情報更新処理を実行する。
【0058】
まず、更新制御部CNTは、全統計項目のうちの一部を、更新対象となる対象統計項目として選択し、更新処理部STAに対して対象統計項目に関する粗粒度統計情報の更新を指示する(ステップ101)、この際、1回の更新処理では全統計項目を更新できないため、全統計項目のうちの一部を対象統計項目として順選択し、複数回の更新処理で全統計項目を更新している。対象統計項目については、更新制御部CNTが自律的に順次選択してもよく、粗粒度メモリ12からの更新要求からの指示に基づき選択してもよい。
【0059】
続いて、更新処理部STAは、更新制御部CNTからの更新指示に応じて、指定された対象統計項目に関する粗粒度統計情報を粗粒度メモリ12から取得し(ステップ102)、当該対象統計項目に対応する待ち行列に一時蓄積されているすべての細粒度統計情報を粗粒度メモリ12から読み出す(ステップ103)。
【0060】
次に、更新処理部STAは、読み出した当該対象統計項目に関するすべての細粒度統計情報を、当該対象統計項目の粗粒度統計情報に加算することにより、その粗粒度統計情報を一括して更新し(ステップ104)、得られた粗粒度統計情報を当該対象統計項目に関する新たな粗粒度統計情報として粗粒度メモリ12に書き込む(ステップ105)。
この後、更新処理部STAは、当該対象統計項目に対応する待ち行列に一時蓄積されているすべての細粒度統計情報をクリア(消去)し(ステップ106)、ステップ100へ戻って、逐次入力される後続の細粒度統計情報に対する更新処理を繰り返し実行する。
【0061】
[第1の実施の形態の効果]
このように、本実施の形態は、各粗粒度統計情報を蓄積する粗粒度メモリ12と、粗粒度メモリ12より記憶容量が小さく、かつ高速で動作することにより上位装置からの細粒度統計情報を一時蓄積する細粒度メモリ11とを直列的に配置して、更新処理部STAが、粗粒度メモリ12のアクセス周期に合わせて、細粒度メモリ11で一時蓄積している細粒度統計情報で、粗粒度メモリ12に蓄積されている粗粒度統計情報を順次更新するようにしたものである。
【0062】
これにより、入力回線31から新たなパケットが到着するごとに上位装置から高速で逐次入力される、時間的粒度が細かい細粒度統計情報は、高速動作が可能なSRAMからなる細粒度メモリ11に順次蓄積される。また、時間的粒度が粗い粗粒度統計情報については、粗粒度メモリ12のアクセス周期に合わせて、細粒度メモリ11で一時蓄積している細粒度統計情報で更新される。
【0063】
したがって、高速動作可能であるが単位容量当たりの価格が高いSRAMだけではなく、SRAMと比較して動作速度は比較的遅いものの単位容量当たりの価格が低いDRAMも併用しつつ、入力回線31から新たなパケットが到着するごとに上位装置から高速で逐次入力される細粒度統計情報を、欠損することなく受け取ることができるとともに、これら細粒度統計情報を統計項目ごとに統計処理して粗粒度統計情報を蓄積することができる。これにより、コストパフォーマンスに優れた、高速動作可能な統計情報メモリシステムを実現することが可能となる。
【0064】
また、前述したように、SDNの代表であるOpenFlowの環境に設置するルータは、従来のIPルータとハードウェア仕様が異なり、メーカからもIPルータと区別して製造販売されている。したがって、例えばある既存のネットワークをSDN対応に変更しようとする際、すべてのIPルータ機器をSDNに対応するルータに変更しなければならないという問題があった。
【0065】
本実施の形態によれば、既存のIPルータに回路ユニットとして統計情報メモリシステム10を追加するだけで、既存のIPルータが持つ資源を活用しつつ、SDNへの対応が可能となる。したがって、ネットワーク全体を極めて容易にSDN対応へ再構築することができるとともに、移行にともなう設備投資を大幅に削減することが可能となる。
【0066】
また、本実施の形態において、更新処理部STAが、粗粒度メモリ12のアクセス周期に合わせて、全統計項目のうちから更新対象として順に選択した対象統計項目ごとに、粗粒度メモリ12に蓄積されている当該対象統計項目に関する粗粒度統計情報を、細粒度メモリ11で一時蓄積している当該対象統計項目に関するすべての細粒度統計情報で更新し、得られた粗粒度統計情報を当該対象統計項目に関する新たな粗粒度統計情報として粗粒度メモリ12に書き込むようにしてもよい。
【0067】
これにより、1つの対象統計項目に関する更新処理において、項目細粒度メモリ11と粗粒度メモリ12との間で、粗粒度統計情報を読み書きするだけで済む。このため、例えば、細粒度メモリ11で一時蓄積している対象統計項目に関するすべての細粒度統計情報を、順次粗粒度メモリ12へ転送して更新する場合と比較して、極めて効率よく更新処理を実行することが可能となる。
【0068】
また、本実施の形態において、更新制御部CNTが、粗粒度メモリ12のアクセス周期ごとに、全統計項目のうちから更新対象となる対象統計項目を逐次選択し、更新処理部STAに対して、当該対象統計項目に関する粗粒度統計情報の更新を指示するようにしてもよい。
これにより、必要最低限のアクセス周期で、全統計項目に関する粗粒度統計情報を更新することができる。
【0069】
[第2の実施の形態]
次に、
図5および
図6を参照して、本発明の第2の実施の形態にかかる統計情報メモリシステム10における統計情報蓄積動作について説明する。
図5は、第2の実施の形態にかかる統計情報メモリシステムの要部構成を示すブロック図である。
図6は、更新処理動作を示すタイミングチャートである。
【0070】
本実施の形態では、更新処理部STAの構成例として、細粒度メモリ11の細粒度蓄積部11Aにおいて、統計項目ごとに設けられているバンク記憶部BMのそれぞれに、更新処理部STAを分割して設けた構成例について、詳細に説明する。
【0071】
帯域の高い100Gbpsクラスのネットワークトラヒックにおける統計情報の取得蓄積においては、先述のリソースの問題に加えてメモリのバンド(帯域)が大きな技術課題となる。例えば、ルータへのトラヒックを全二重100Gbps、平均パケット長を200バイトとした場合、平均パケットレート到着間隔は16ns(62.5M-pps:Packet Per Second)となる。すなわち平均16ns間隔で表1に示したすべての統計情報を加算、更新する必要がある。現在商用化されるメモリで16ns以下のアクセスタイムを満足するのはレジスタやSRAMであるが、これらはビットあたりの単価が非常に高価であるため大容量の搭載が難しい。一方、DRAMはビット単価、大容量搭載が有利であるものの、ランダムアクセス性能は60ns以上を要してしまうためワイヤーレートにおける統計情報の取得を保証することができない。
【0072】
高速小容量の細粒度統計メモリ11をSRAMで、低速大容量の粗粒度メモリ12をDRAMで構成した場合に発生するもうひとつの問題について説明する。先述のとおりSRAMリソースが枯渇する前にDRAMへデータ転送を行わなければならない。このときSRAMからDRAMへデータ転送するタイミングが各統計について同時に発生するとDRAM側のバンド(帯域)が不足する。SRAMで構成した統計が何時枯渇するかはパケットトラヒック依存のため制御ができない。DRAM側のバンドは、外部トラヒックからSRAMへのバンドに追従ができないため、SRAMとDRAM間の通信についての対策が必要となる。
【0073】
本発明によるもうひとつの特徴は、SRAMとDRAM間のデータ転送と通信制御に関するもので、パケットトラヒック依存ではなく、バンドの低いDRAMに同期した定期的なデータ通信によって課題を解決するものである。
図6には、商用のDDR−SDRAMを用いて粗粒度メモリ12を構成した場合における、SRAMとのデータ通信に関するタイムチャートが示されている。ここでは、DDR−SDRAMのアクセス周期ごとに到来する、ACT(ページの活性化コマンド)からPRE(ページの非活性化コマンド)までの活性期間TPに、REN(Readコマンド)とWEN(Writeコマンド)を4つのバンクA,B,C,Dに対して指示している。
【0074】
各バンクA,B,C,Dにおいて、それぞれのRENからWENまでの期間TA,TB,TC,TDはSRAMとのデータ通信と統計情報の更新を行う時間として割り当てる。したがって、この例においてはACTからPREまでのTPにおいて、4つの統計情報の更新が並列的に行われることとなる。すなわちSRAMとDRAM間のデータ通信に関し、DRAM側が基準となってSRAMの統計情報の更新、並び初期化(リセット)を行う。このようにすれば、外部のネットワークトラヒックに依存することなく、常にDRAMのバンド(帯域)許容内において統計情報の更新が可能となる。
【0075】
[第2の実施の形態の動作]
次に、
図5および
図6を参照して、本実施の形態にかかる更新処理動作について詳細に説明する。
細粒度制御部11Bの更新制御部CNTは、粗粒度メモリ12からの更新要求に応じて、細粒度蓄積部11Aのページ信号PAGEを監視し、細粒度蓄積部11Aの活性状態ACTが終了してから非活性状態PREとなるまでの空き期間TPに、予め選択した対象統計項目に対応するバンク記憶部BMの更新処理部STAに対して統計情報の蓄積を指示する。ここでは、全統計項目から4つずつ順に対象統計項目として選択するものとし、以下では、統計項目A,B,C,Dを対象統計項目として選択した場合を例として説明する。
【0076】
まず、更新制御部CNTは、空き期間TPにおいて、対象統計項目A,B,C,Dと対応する4つのバンク記憶部BMに対し、読み出し制御信号RENとバンク選択信号BANKとを、クロックCLKに同期して順に出力する。この際、更新制御部CNTは、粗粒度メモリ12からの粗粒度統計情報の読み出しタイミングが重ならないよう、1クロック分ずつずらしてRENとBANKとを各バンク記憶部BMに出力する。これにより、各バンク記憶部BMでの計算処理が並列的に実行される。
【0077】
バンク記憶部BMには、細粒度統計情報で粗粒度統計情報を更新するための統計処理部STAがそれぞれ設けられており、RENに同期して粗粒度メモリ12から読み出された粗粒度統計情報DC0を、BENによりゲートGを制御して受け取り、当該バンク記憶部BMに対応する自己の待ち行列Q0から読み出したすべての細粒度統計情報DSを、加算器ADDでDC0に加算して更新して、新たな粗粒度統計情報DC1を計算する。
【0078】
この後、更新制御部CNTは、残りの空き期間TPにおいて、対象統計項目A,B,C,Dと対応する4つのバンク記憶部BMに対し、書き込み信号WENをクロックCLKに同期して順に出力する。この際、更新制御部CNTは、粗粒度メモリ12への粗粒度統計情報の書き込みタイミングが重ならないよう、1クロック分ずつずらしてWENとBANKとを各バンク記憶部BMに出力する。
【0079】
バンク記憶部BMは、更新により得られた粗粒度統計情報DC1を、WENに同期して粗粒度メモリ12へ出力する。これにより、DC0をDSにより更新して得られたDC1が粗粒度メモリ12に書き込まれる。
この際、当該バンク記憶部BMに対応する自己の待ち行列Q1にDC1を蓄積するようにしてもよい。これにより、上位装置からの読み出し要求に応じて粗粒度統計情報DC1を出力する際、粗粒度メモリ12からの読み出しを省くことができ、より高いレスポンスを得ることが可能となる。
【0080】
[第2の実施の形態の効果]
このように、本実施の形態は、それぞれ異なる対象統計項目に関する粗粒度統計情報の更新を並列的に実行する複数の更新処理部STAを備え、更新制御部CNTが、粗粒度メモリ12へのアクセス周期ごとに、全統計項目のうちから更新対象となる対象統計項目を複数選択し、これら対象統計項目に関する粗粒度統計情報の更新を、更新処理部STAのそれぞれに個別に指示するようにしたものである。
これにより、複数の統計項目に関する粗粒度統計情報が、並列的に更新されるため、極めて効率よく更新処理を実行することができる
【0081】
また、本実施の形態において、細粒度メモリ11から粗粒度メモリ12へ更新後の新たな粗粒度統計情報を転送した後、細粒度メモリ11に対して新たな細粒度統計情報が蓄積されて、細粒度メモリ11が更新されたか否かを検出して出力する更新有無検出部を設け、次回の更新処理時に、更新有無検出部が更新なしを示している場合には、更新制御部CNTにより、細粒度メモリ11と粗粒度メモリ12との間の通信を遮断するようにしてもよい。これにより、通信維持による不要な消費電力を削減することができる。
【0082】
[第3の実施の形態]
次に、本発明の第3の実施の形態にかかる統計情報メモリシステム10について説明する。
細粒度メモリ11は、粗粒度メモリ12より記憶容量を小さくできるものの、入力回線31から到着するパケットのパケットレートに応じて、必要とされる記憶容量が変化する。本実施の形態では、入力回線31から到着するパケットのパケットレートと細粒度メモリ11で必要となる記憶容量との関係について詳細に説明する。
【0083】
SRAM(細粒度メモリ11)とDRAM(粗粒度メモリ12)との間で粗粒度統計情報をやり取りするのに要する通信所要時間をTdとする。ここで、DRAMのクロック周波数を400MHzとし、Tdがクロック信号CLKの4周期分に相当する場合、Td=4/(4×10
8)=10[ns]となる。
このため、全統計項目数Nが10万個の場合、全統計項目の粗粒度統計情報を更新するのに要するターンアラウンドタイムはTAT=N×Td=1[ms]となる。
【0084】
一方、IPルータ20におけるパケットのスループットをT[bps]とし、パケット長をL[bit]とした場合、パケットレートはPPS=T/L[pps(Packet Per Second)]となり、パケット当たりの許容遅延時間はD=1/PPSとなる。
したがって、ワイヤーレート条件がT=100G[bps]でL=64[Byte]の場合、オーバーヘッドを20[Byte]とすると、Dは次のようになる。
L=64[Byte]+20[Byte] =672[bit]
PPS=100×10
9/672 ≒148M[pps]
D=1/148M[pps] ≒6.72[ns]
【0085】
また、T=100G[bps]でL=200[Byte]の場合、
L=200[Byte] =1600[bit](平均パケット長とみなす)
PPS=100×10
9/1600 ≒62.5M[pps]
D=1/62.5M[pps] ≒16[ns]
となり、T=100G[bps]でL=1518[Byte]の場合、
L=1518[Byte]+20[Byte] =12304[bit]
PPS=100×10
9/12304 ≒8.2M[pps]
D=1/8.2M[pps] ≒122[ns]
となる。
【0086】
ここで、一般的なDRAMのランダムアクセス性能は60ns以上であるため、例えばT=100G[bps]でL=200[Byte]のワイヤーレート条件には適用できず、SRAMが必要となることが分かる。
【0087】
一方、メモリアクセス回数はM=TAT/Dで求められるため、各ワイヤーレート条件で必要となるSRAMのビット長W[bit]は次のようになる。
M
64B=1×10
-3/(6.72×10
-9) ≒148809[回]<2
18 (=262144)
W
64B=18[bit]
M
200B=1×10
-3/(16×10
-9) ≒62500[回]<2
16 (=65536)
W
200B=16[bit]
M
1518B=1×10
-3/(122×10
-9) ≒8197[回]<2
14 (=16384)
W
1518B=14[bit]
【0088】
したがって、もっとも厳しいワイヤーレート条件である64[Byte]への対応を考慮すると、最大でW=18[bit]のSRAMを用いればよいことが分かる。この際、SRAMに必要とされる記憶容量は、C=W×Nで求められ、次のようになる。
C
64B=18×10
5 =1.8M[bit]
C
200B=16×10
5 =1.6M[bit]
C
1518B=14×10
5 =1.4M[bit]
【0089】
[第3の実施の形態の効果]
以上の計算過程をまとめると、全統計項目数をN[個]、メモリ間の通信所要時間をTd[s]、パケットのスループットをT[bps]、パケット長をL[bit]、およびSRAMのビット長をW[bit]とした場合、SRAMは、次の式(1),式(2)
2
W≧N×Td×T/L …(1)
C=W×N …(2)
で求められる記憶容量C[bit]を有すればよいことが分かる。したがって、Wとして式(1)を満足する最小値を選択して、SRAMの記憶容量Cを決定すれば、与えられたワイヤーレート条件を満足するために必要となる最小限のCを、極めて容易に算出することができる。
【0090】
[実施の形態の拡張]
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
【解決手段】各粗粒度統計情報を蓄積する粗粒度メモリ12と、粗粒度メモリ12より記憶容量が小さく、かつ高速で動作することにより上位装置からの細粒度統計情報を一時蓄積する細粒度メモリ11とを直列的に配置して、更新処理部STAが、粗粒度メモリ12のアクセス周期に合わせて、細粒度メモリ11で一時蓄積している細粒度統計情報で、粗粒度メモリ12に蓄積されている粗粒度統計情報を順次更新する。