(57)【要約】      （修正有）【課題】汎用サーバで統計情報処理の自在性とワイヤレート性能を両立させる装置ならびに方法を提供する。【解決手段】指定されたプログラムを汎用プロセッサ１１で実行して当該プログラムに沿った情報処理を行うことにより、汎用的なプログラム環境を提供する汎用機能部１０と、組込プロセッサ３１で統計情報処理命令を実行することにより、統計情報の収集および蓄積に適するプログラム環境を提供する、統計情報処理装置１に増設される拡張機能部２０とを備える。汎用機能部１０が、統計情報処理プログラムを実行することにより、通信トラヒックから取得した統計情報を拡張機能部２０へ転送し、拡張機能部２０が、統計情報処理命令を実行することにより、汎用機能部１０から受け取った統計情報のうちから、蓄積対象となる統計情報を粒度可変命令部３１Ｗにより採取して、統計情報メモリシステム４０へ高速で蓄積する。【選択図】図１
2016025492.tif 000002
【特許請求の範囲】
【請求項１】
通信トラヒックから当該通信トラヒックに関する統計情報を取得するごとに、当該統計情報を順次蓄積する統計情報処理装置であって、
指定されたプログラムを汎用プロセッサで実行して当該プログラムに沿った情報処理を行うことにより、汎用的なプログラム環境を提供する汎用機能部と、
当該統計情報処理装置に増設される回路ユニットからなり、組込プロセッサで統計情報処理命令を実行することにより、前記統計情報の収集および蓄積に適するプログラム環境を提供する拡張機能部とを備え、
前記汎用機能部は、前記プログラムとして統計情報処理プログラムを実行することにより、前記通信トラヒックから取得した前記統計情報を前記拡張機能部へ転送し、
前記拡張機能部は、統計情報を蓄積するための統計情報メモリシステムと、蓄積対象となる統計情報を可変制御可能な採取粒度に基づき採取する粒度可変命令部とを有し、前記統計情報処理命令を実行することにより、前記汎用機能部から受け取った前記統計情報のうちから、蓄積対象となる統計情報を前記粒度可変命令部により採取して、当該統計情報メモリシステムへ蓄積する
ことを特徴とする統計情報処理装置。
【請求項２】
請求項１に記載の統計情報処理装置において、
前記汎用機能部は、前記統計情報を転送する際、前記汎用プロセッサで前記統計情報処理プログラムを実行することにより、前記拡張機能部との間で連携して動作するための転送条件を設定した後、データ転送バスを介したマスタ・スレーブ転送により前記拡張機能部へ前記統計情報の転送し、
前記拡張機能部は、前記統計情報を蓄積する際、前記組込プロセッサで前記統計情報処理命令を実行することにより、前記データ転送バスを介した前記マスタ・スレーブ転送により前記汎用機能部から前記統計情報を受け取って、これら統計情報から前記採取粒度に基づき採取した統計情報を前記統計情報メモリシステムへ蓄積する
ことを特徴とする統計情報処理装置。
【請求項３】
請求項１または請求項２に記載の統計情報処理装置において、
前記統計情報メモリシステムは、時間的粒度の細かい統計値である細粒度統計情報を蓄積する細粒度メモリと、前記細粒度統計情報と比較して時間的粒度の粗い統計値である粗粒度統計情報を蓄積する粗粒度メモリとを有し、
前記粒度可変命令部は、
前記汎用機能部から受け取った統計情報のうちから、可変制御可能な細粒度採取粒度に基づき蓄積対象となる細粒度統計情報を採取して前記細粒度メモリへ転送する細粒度統計採取命令部と、
前記汎用機能部から受け取った統計情報のうちから、可変制御可能な粗粒度採取粒度に基づき蓄積対象となる粗粒度統計情報を採取して前記粗粒度メモリへ転送する粗粒度統計採取命令部とを有する
ことを特徴とする統計情報処理装置。
【請求項４】
通信トラヒックから当該通信トラヒックに関する統計情報を取得するごとに、当該統計情報を順次蓄積する統計情報処理装置で用いられる統計情報処理方法であって、
汎用機能部が、指定されたプログラムを汎用プロセッサで実行して当該プログラムに沿った情報処理を行うことにより、汎用的なプログラム環境を提供する汎用機能ステップと、
拡張機能部が、当該統計情報処理装置に増設される回路ユニットからなり、組込プロセッサで統計情報処理命令を実行することにより、前記統計情報の収集および蓄積に適するプログラム環境を提供する拡張機能ステップとを備え、
前記汎用機能ステップは、前記プログラムとして統計情報処理プログラムを実行することにより、前記通信トラヒックから取得した前記統計情報を前記拡張機能部へ転送し、
前記拡張機能ステップは、前記統計情報処理命令を実行することにより、前記汎用機能部から受け取った前記統計情報のうちから、蓄積対象となる統計情報を可変制御可能な採取粒度に基づき採取して、前記拡張機能部に設けられた、統計情報を蓄積するための統計情報メモリシステムへ蓄積する
ことを特徴とする統計情報処理方法。
【請求項５】
請求項４に記載の統計情報処理方法において、
前記汎用機能ステップは、前記統計情報を転送する際、前記汎用プロセッサで前記統計情報処理プログラムを実行することにより、前記拡張機能部との間で連携して動作するための転送条件を設定した後、データ転送バスを介したマスタ・スレーブ転送により前記拡張機能部へ前記統計情報の転送し、
前記拡張機能ステップは、前記統計情報を蓄積する際、前記組込プロセッサで前記統計情報処理命令を実行することにより、前記データ転送バスを介した前記マスタ・スレーブ転送により前記汎用機能部から前記統計情報を受け取って、これら統計情報から前記採取粒度に基づき採取した統計情報を前記統計情報メモリシステムへ蓄積する
ことを特徴とする統計情報処理方法。
【請求項６】
請求項４または請求項５に記載の統計情報処理方法において、
前記統計情報メモリシステムは、時間的粒度の細かい統計値である細粒度統計情報を蓄積する細粒度メモリと、前記細粒度統計情報と比較して時間的粒度の粗い統計値である粗粒度統計情報を蓄積する粗粒度メモリとを有し、
前記拡張機能ステップは、
前記汎用機能部から受け取った統計情報のうちから、可変制御可能な細粒度採取粒度に基づき蓄積対象となる細粒度統計情報を採取して前記細粒度メモリへ転送する細粒度統計採取命令ステップと、
前記汎用機能部から受け取った統計情報のうちから、可変制御可能な粗粒度採取粒度に基づき蓄積対象となる粗粒度統計情報を採取して前記粗粒度メモリへ転送する粗粒度統計採取命令ステップとを有する
ことを特徴とする統計情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、統計情報処理技術に関し、特にネットワーク全体の最適化や管理を目的として、ネットワークに接続されたサーバ装置などの統計情報処理装置で、通信トラヒックに関する統計情報の取得と蓄積を高速で行うための統計情報蓄積制御技術に関する。
【背景技術】
【０００２】
近年、ネットワークの制御プレーンとデータプレーンを分離するＳＤＮ（Software Defined Networking）関連技術が、将来の柔軟化指向ネットワークを実現するためのキーテクノロジーとして多くの関心を集めており、その影響力はクラウドサービスを提供するためのデータセンタだけに留まらず、通信事業者の広域インフラストラクチャの在り方にまで及んでいる。
【０００３】
ＳＤＮ（Software Defined Network）は、このような背景のもとで提案された新しいネットワーク仕様である。ネットワーク内の各ルータは、それぞれＳＤＮ対応機能を有し、ＳＤＮを介してＳＤＮコントローラ（サーバ）ＳＶと接続されており、ＳＶのソフトウェアによって管理される。これによって、夜間や週末などトラヒック量が減少する場合には不必要な通信回線およびルータを遮断して電力消費を削減でき、ルータ間のトラヒック量を監視しつつ、最適な負荷分散や優先制御を管理できる。
【０００４】
このように、ＳＤＮによれば、ＳＶで各ルータの状況を集中的に把握できるため、管理者はこのネットワーク全体の情報を随時取得しつつ、ＳＶに実装したソフトウェアだけで、ネットワーク内に設置されたすべてのルータを動的かつ一元的に設定・変更することが可能となる。
【０００５】
ＳＤＮ導入の背景としては、ＩＡサーバの高性能化が挙げられる。２０１３年には世界の通信事業者が連携して、ＮＦＶ（Network Functions Virtualization）の構想が提唱されている。ＮＦＶは、特定ベンダの高価なプロプライエタリ・ハードウェア装置ではなく、安価なコモディティ・ハードウェアとネットワーク仮想化技術を用いて、ソフトウェア主体で迅速かつ柔軟にネットワークサービスを提供し、設備投資および運用コストの低減を図るための技術となる。
【０００６】
そのため、ＮＦＶでは、従来のボックス型ＩＰルータやスイッチが提供してきたネットワーク機能のいくつかを、ｘ８６アーキテクチャに代表されるサーバ型の汎用プラットフォームで実現する方向で検討が進められている。従来の装置にもこのような汎用の機能部を備えるものが存在するが、ＮＦＶではプラットフォームの汎用性が特徴としてより鮮明となっている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−５４０２号公報
【特許文献２】特開２００８−２５０８３４号公報
【非特許文献】
【０００８】
【非特許文献１】Peter Phaalほか，”sFlow Version 5”，Jul.2004，http://sflow.org/sflow_version_5.txt
【非特許文献２】Open Networking Foundation，OpenFlow Switch Specification Version 1.3.2，April 26，2013，p.20
【非特許文献３】MICROPROCESSOR report，http://www.linleygroup.com/mpr/article.php?id=10946
【非特許文献４】山崎ほか，”パケット走査のための専用命令セット設計に関する検討”，電子情報通信学会ソサイエティ大会講演論文集，C-12-29，Sep.2013
【発明の概要】
【発明が解決しようとする課題】
【０００９】
前述した汎用プラットフォームは、低コスト、高い柔軟性、およびサービス展開の迅速性など多くの利点を有する一方で、キャリアグレードのサービスを実現する上では性能面に課題が残る。モバイルデータ通信の増大で拡大し続ける近年の膨大なトラヒック量に対応するため、システムに要求されるワイヤレート性能はますます厳しくなってきており、ＩＰルータやスイッチ装置のデータプレーンにおけるインタフェースあたりの帯域幅は１００Ｇｂｐｓを超えて現在も進化を続けている。
【００１０】
しかしながら、汎用プラットフォーム上のソフトウェアのみで前述のデータプレーン処理性能トレンドに追従し続けることは困難である。汎用性の利点を損なうことなくシステムのパフォーマンスを高めるには、高負荷な処理を肩代わりし、ワイヤレートに追従できるハードウェアが必要となる。
ＩＰネットワークにおける負荷の高い処理のひとつに、通信トラヒックを観測して収集・蓄積する統計情報処理がある。通信トラヒックの統計情報は、利用者間の公平性を保つためのＱｏＳ制御や課金システム、通信障害の管理に不可欠な情報リソースである。
【００１１】
このような統計情報を高速で蓄積する統計情報メモリシステムとして、高速で動作が可能な細粒度統計メモリと、安価で大容量搭載が可能な粗粒度統計メモリという異なる２つの特長を有するコンポーネントを組み合わせることによってひとつの統計を構成し、これら細粒度統計メモリと粗粒度統計メモリとの間で高速にデータ通信を行う統計情報蓄積方式が考えられる。
【００１２】
しかしながら、この統計情報メモリシステムは、既存のＩＰルータを対象として、統計情報の取得と蓄積を目的とするカード（回路ユニット）を追加することによりＳＤＮへの対応を前提としているため、ネットワークに接続されたサーバ装置などの統計情報処理装置に搭載するには、統計情報処理装置と連携するための処理方式が必要となる。
【００１３】
すなわち、前述した統計情報蓄積方式の有用性をＳＤＮおよびＮＦＶに適用するためには、オンボードの統計情報メモリシステムだけでは不十分であり、汎用プラットフォームと連携して動作する装置構成および処理方法を明確にする必要がある。また、汎用機能部が備える高い柔軟性を活かすには、拡張ボード側においても統計情報処理の自在性を高めるためのプログラマビリティを備えることが望ましい。
【００１４】
しかし、前述の統計情報メモリシステム自体はハードウェアとして構成されるため、プログラム機能を有していない。したがって、高い帯域においてワイヤレートに追従可能な統計情報メモリシステムを、汎用プラットフォームにアドオンする拡張サブシステムとして実現するためには、統計情報処理の自在性とワイヤレート性能を高いレベルで両立できるシステム構成を考案する必要がある。また、実際に利用する統計情報には、それぞれに応じた要求精度が存在するため、要求精度に応じて統計情報を採取（サンプリング）して蓄積するという適応的な統計情報処理も求められる。
【００１５】
本発明はこのような課題を解決するためのものであり、増設した統計情報メモリシステムを用いて、汎用サーバで統計情報処理の自在性とワイヤレート性能を高いレベルで両立できるとともに、適応的な統計情報処理を実現できる統計情報蓄積制御技術を提供することを目的としている。
【課題を解決するための手段】
【００１６】
このような目的を達成するために、本発明にかかる統計情報処理装置は、通信トラヒックから当該通信トラヒックに関する統計情報を取得するごとに、当該統計情報を順次蓄積する統計情報処理装置であって、指定されたプログラムを汎用プロセッサで実行して当該プログラムに沿った情報処理を行うことにより、汎用的なプログラム環境を提供する汎用機能部と、当該統計情報処理装置に増設される回路ユニットからなり、組込プロセッサで統計情報処理命令を実行することにより、前記統計情報の収集および蓄積に適するプログラム環境を提供する拡張機能部とを備え、前記汎用機能部は、前記プログラムとして統計情報処理プログラムを実行することにより、前記通信トラヒックから取得した前記統計情報を前記拡張機能部へ転送し、前記拡張機能部は、統計情報を蓄積するための統計情報メモリシステム、蓄積対象となる統計情報を可変制御可能な採取粒度に基づき採取する粒度可変命令部とを有し、前記統計情報処理命令を実行することにより、前記汎用機能部から受け取った前記統計情報のうちから、蓄積対象となる統計情報を前記粒度可変命令部により採取して、当該統計情報メモリシステムへ蓄積するようにしたものである。
【００１７】
また、本発明にかかる上記統計情報処理装置の一構成例は、前記汎用機能部が、前記統計情報を転送する際、前記汎用プロセッサで前記統計情報処理プログラムを実行することにより、前記拡張機能部との間で連携して動作するための転送条件を設定した後、データ転送バスを介したマスタ・スレーブ転送により前記拡張機能部へ前記統計情報の転送し、前記拡張機能部は、前記統計情報を蓄積する際、前記組込プロセッサで前記統計情報処理命令を実行することにより、前記データ転送バスを介した前記マスタ・スレーブ転送により前記汎用機能部から前記統計情報を受け取って、これら統計情報から前記採取粒度に基づき採取した統計情報を前記統計情報メモリシステムへ蓄積するようにしたものである。
【００１８】
また、本発明にかかる上記統計情報処理装置の一構成例は、前記統計情報メモリシステムが、時間的粒度の細かい統計値である細粒度統計情報を蓄積する細粒度メモリと、前記細粒度統計情報と比較して時間的粒度の粗い統計値である粗粒度統計情報を蓄積する粗粒度メモリとを有し、前記粒度可変命令部は、前記汎用機能部から受け取った統計情報のうちから、可変制御可能な細粒度採取粒度に基づき蓄積対象となる細粒度統計情報を採取して前記細粒度メモリへ転送する細粒度統計採取命令部と、前記汎用機能部から受け取った統計情報のうちから、可変制御可能な粗粒度採取粒度に基づき蓄積対象となる粗粒度統計情報を採取して前記粗粒度メモリへ転送する粗粒度統計採取命令部とを有するものである。
【００１９】
また、本発明にかかる統計情報処理方法は、通信トラヒックから当該通信トラヒックに関する統計情報を取得するごとに、当該統計情報を順次蓄積する統計情報処理装置で用いられる統計情報処理方法であって、汎用機能部が、指定されたプログラムを汎用プロセッサで実行して当該プログラムに沿った情報処理を行うことにより、汎用的なプログラム環境を提供する汎用機能ステップと、拡張機能部が、当該統計情報処理装置に増設される回路ユニットからなり、組込プロセッサで統計情報処理命令を実行することにより、前記統計情報の収集および蓄積に適するプログラム環境を提供する拡張機能ステップとを備え、前記汎用機能ステップは、前記プログラムとして統計情報処理プログラムを実行することにより、前記通信トラヒックから取得した前記統計情報を前記拡張機能部へ転送し、前記拡張機能ステップは、前記統計情報処理命令を実行することにより、前記汎用機能部から受け取った前記統計情報のうちから、蓄積対象となる統計情報を可変制御可能な採取粒度に基づき採取して、前記拡張機能部に設けられた、統計情報を蓄積するための統計情報メモリシステムへ蓄積するようにしたものである。
【００２０】
また、本発明にかかる上記統計情報処理方法の一構成例は、前記汎用機能ステップが、前記統計情報を転送する際、前記汎用プロセッサで前記統計情報処理プログラムを実行することにより、前記拡張機能部との間で連携して動作するための転送条件を設定した後、データ転送バスを介したマスタ・スレーブ転送により前記拡張機能部へ前記統計情報の転送し、前記拡張機能ステップは、前記統計情報を蓄積する際、前記組込プロセッサで前記統計情報処理命令を実行することにより、前記データ転送バスを介した前記マスタ・スレーブ転送により前記汎用機能部から前記統計情報を受け取って、これら統計情報から前記採取粒度に基づき採取した統計情報を前記統計情報メモリシステムへ蓄積するようにしたものである。
【００２１】
また、本発明にかかる上記統計情報処理方法の一構成例は、前記統計情報メモリシステムは、時間的粒度の細かい統計値である細粒度統計情報を蓄積する細粒度メモリと、前記細粒度統計情報と比較して時間的粒度の粗い統計値である粗粒度統計情報を蓄積する粗粒度メモリとを有し、前記拡張機能ステップは、前記汎用機能部から受け取った統計情報のうちから、可変制御可能な細粒度採取粒度に基づき蓄積対象となる細粒度統計情報を採取して前記細粒度メモリへ転送する細粒度統計採取命令ステップと、前記汎用機能部から受け取った統計情報のうちから、可変制御可能な粗粒度採取粒度に基づき蓄積対象となる粗粒度統計情報を採取して前記粗粒度メモリへ転送する粗粒度統計採取命令ステップとを有するものである。
【発明の効果】
【００２２】
本発明によれば、汎用機能部から拡張機能部に対する統計情報の転送処理が、汎用プロセッサで実行する統計情報処理プログラムと、組込プロセッサで実行する統計情報処理命令とで制御される。したがって、増設した統計情報メモリシステムを用いて、汎用サーバで統計情報処理の自在性とワイヤレート性能を高いレベルで両立することが可能となるとともに、要求精度に応じて統計情報を採取（サンプリング）して蓄積するという適応的な統計情報処理を実現することが可能となる。
【図面の簡単な説明】
【００２３】
【図１】第１の実施の形態にかかる統計情報処理装置の構成を示すブロック図である。
【図２】第１の実施の形態にかかる汎用機能部と拡張機能部との連携動作を示すシーケンス図である。
【図３】第２の実施の形態にかかる統計情報メモリ部の構成を示すブロック図である。
【図４】第２の実施の形態にかかる統計情報メモリ部における統計情報の書き込み／読み出し動作を示すシーケンス図である。
【図５】組込プロセッサの構成例である。
【図６】粒度可変命令部の構成および動作を示す説明図である。
【発明を実施するための形態】
【００２４】
次に、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
まず、図１を参照して、本発明の第１の実施の形態にかかる統計情報処理装置１について説明する。図１は、第１の実施の形態にかかる統計情報処理装置の構成を示すブロック図である。
【００２５】
この統計情報処理装置１は、全体としてサーバ装置など、ｘ８６アーキテクチャに代表されるサーバ型の汎用プラットフォームを有する情報処理装置からなり、通信ネットワーク３上の外部トラヒックから各種統計情報を抽出する機能と、抽出した各種統計情報を蓄積する機能と、蓄積した統計情報を通信ネットワーク３を介して統計情報分析装置２へ転送する機能とを有している。
【００２６】
統計情報処理装置１には、主な機能部として、汎用機能部１０、拡張機能部２０、および統計情報取得部５０とが設けられている。
【００２７】
汎用機能部１０は、全体としてサーバ型の汎用プラットフォームを実現する情報処理機能を有し、統計情報取得部５０で順次抽出した各種統計情報を取得して拡張機能部２０へ転送する機能と、統計情報分析装置２からの読み出し要求に応じて指定された統計情報を拡張機能部２０から読み出して統計情報分析装置２へ送信する機能とを有している。
【００２８】
汎用機能部１０には、主な回路部として、汎用プロセッサ（ＣＰＵ）１１、メモリ制御部１２、ＤＭＡ（Direct Memory Access）制御部１３、バス制御部（マスタ）１４、主記憶部１５、およびネットワークＩ／Ｆ部１６が設けられている。なお、従来のボックス型ＩＰルータやスイッチ装置においても装置の全体制御を目的とした汎用機能部を備えるものが存在するため、そのような装置の汎用機能部１０と見なしてもよい。
【００２９】
汎用プロセッサ１１は、典型的にはｘ８６アーキテクチャに代表され、産業上デファクトスタンダードと見なされる汎用サーバ向けプロセッサで構成されるが、省電力化を目的とした非ｘ８６アーキテクチャの組込プロセッサ、あるいはＡＳＳＰ（Application Specific Standard Produce）のような汎用のＬＳＩ部品で構成してもよい。
ネットワークＩ／Ｆ部１６は、要求性能に応じた帯域幅の通信ポートを１つ以上具備し、電気信号または光信号を送受信してデータ通信を行うことにより、通信ネットワーク３上の外部トラヒックの入出力などを行う機能を有している。
汎用機能部１０におけるこのほかの回路部については、サーバ型の汎用プラットフォームを実現する公知のサーバ装置に搭載されている回路部と同様である。
【００３０】
汎用機能部１０は、このような構成に基づいて、統計情報取得部５０から取得した各種統計情報を転送する際、汎用プロセッサ１１で予め主記憶部１５に格納されている統計情報処理プログラムを実行することにより、拡張機能部２０との間で連携して動作するための転送条件を設定した後、データ転送バスを介したマスタ・スレーブ転送により拡張機能部２０へ統計情報を転送する。
【００３１】
拡張機能部２０は、統計情報処理装置１に対して着脱可能に増設される回路ユニットからなり、汎用機能部１０とマスタ・スレーブ転送用のデータ転送バスＢを介して接続されて、汎用機能部１０からの書き込み要求に応じてデータ転送バスＢから受け取った各種統計情報を高速で蓄積する機能と、受け取った各種統計情報のうちから蓄積対象となる統計情報を採取する採取粒度（サンプリングレート）を可変制御する機能と、汎用機能部１０からの読み出し要求に応じて蓄積しておいた統計情報を読み出してデータ転送バスＢから出力する機能とを有している。
【００３２】
拡張機能部２０には、主な回路部として、バス制御部（スレーブ）２１、ネットワークＩ／Ｆ部２２、および統計情報メモリ部３０が設けられている。
【００３３】
統計情報メモリ部３０は、組込プロセッサ３１、制御回路３２、統計情報メモリシステム４０で構成され、拡張機能部２０にオンボード搭載される。典型的には、統計情報メモリ部３０はＦＰＧＡ（Field Programmable Gate Array）に配置配線された形態で提供されるが、高性能と低消費電力を目的としたＬＳＩまたはＳｏＣ（System on a Chip）の形態で提供されてもよい。
【００３４】
拡張機能部２０は、このような構成に基づいて、汎用機能部１０から受け取った統計情報を蓄積する際、組込プロセッサ３１で例えば汎用機能部１０から予め登録された統計情報処理命令を実行することにより、データ転送バスＢを介したマスタ・スレーブ転送により汎用機能部１０から統計情報を受け取って、統計情報メモリ部３０へ蓄積する。
【００３５】
組込プロセッサ３１には、主な機能部として、粒度可変命令部３１Ｗが設けられている。粒度可変命令部３１Ｗは、例えばＡＳＩＰの専用命令で構成され、汎用機能部１０から受け取った統計情報のうちから、蓄積対象となる統計情報を採取する採取粒度（サンプリングレート）を可変制御する機能と、外部から指定されたパラメータに基づき採取粒度を設定変更する機能とを有している。採取粒度は、プログラムによってパラメータを指定することにより、例えば汎用プロセッサ１１から設定変更可能である。
【００３６】
ネットワークＩ／Ｆ部２２は、要求性能に応じた帯域幅の通信ポートを１つ以上具備し、電気信号または光信号を送受信してデータ通信を行うことにより、統計情報メモリ部３０に収集・蓄積された統計情報を、統計情報分析装置２に送信する機能を有している。
【００３７】
したがって、汎用機能部１０のネットワークＩ／Ｆ部１６と、拡張機能部２０のネットワークＩ／Ｆ部２２を用いて、外部トラヒックおよび統計情報を次のような経路で伝達することができる。まず、外部トラヒックは、ネットワークＩ／Ｆ部１６から入力し、統計情報取得部５０を経由して拡張機能部２０に転送する。また、統計情報は、統計情報取得部５０で外部トラヒックから取得し、汎用機能部１０から拡張機能部２０に転送して蓄積後、ネットワークＩ／Ｆ部２２から統計情報分析部５０に出力する。蓄積対象ではない統計情報に関しては、拡張機能部２０で廃棄される。
【００３８】
統計情報取得部５０は、ＩＰパケットないしフローのスイッチングを実施するモジュールである。典型的には、外部トラヒックにおけるヘッダ情報を分析し、レイヤ２のフォワーディング処理、レイヤ３のルーチング処理、及び、レイヤ４まで含む５−ｔｕｐｌｅｓの解析を行う。ＯｐｅｎＦｌｏｗヘッダを含む１３−ｔｕｐｌｅｓ以上の情報を解析してもよい。また、統計情報取得部５０は、解析された情報をもとに適切な送信先を選択するアウトバウンドの出力制御を実行するとともに、必要に応じてキューイングを行う。
【００３９】
ヘッダ情報、出力キュー情報、ならびにＯｐｅｎＦｌｏｗのＣｏｕｎｔｅｒｓは、本発明における統計情報メモリ部３０が収集・蓄積対象とする統計情報の一種である。また、統計情報取得部５０には厳しい要求性能が求められるため、典型的に専用ＡＳＩＣ（Application Specific Integrated Circuits）を用いてハードウェアモジュールとして構成することが多いが、汎用機能部１０が備えるプログラム機能を用いてソフトウェアモジュールとして構成してもよい。
【００４０】
拡張機能部２０から出力された統計情報は、統計情報分析装置２が定める手順にしたがってネットワークＩ／Ｆ部２２から統計情報分析装置２に送信される。統計情報分析装置２は、統計情報処理装置１の外部に配置される情報処理装置、各汎用サーバで局所的に収集・蓄積された統計情報を取得して統合し、利用者の目的に応じた分析を行う機能を有している。典型的にはサンプリング処理を施したネットワークのフロー統計情報を収集するコレクタや、より高機能な統計情報アナライザとして構成される。この際、統計情報の送信により通信経路の負荷が高まる懸念がある場合は、別途信号分岐装置等を用いることにより、統計情報のみを別の通信経路でコレクタやアナライザに送信する構成としてもよい。
【００４１】
［第１の実施の形態の動作］
次に、図２を参照して、本実施の形態にかかる統計情報処理装置１の動作について説明する。図２は、第１の実施の形態にかかる汎用機能部と拡張機能部との連携動作を示すシーケンス図である。
【００４２】
まず、図２を参照して、統計情報取得部５０で抽出した統計情報を汎用機能部１０で受け取って拡張機能部２０へ転送して蓄積する場合について説明する。
【００４３】
汎用プロセッサ１１は、バス制御部１４およびバス制御部２１に対して、各種転送条件（ウィンドウサイズ、ビット空間、転送先／読込先のベースアドレスおよびオフセット）を設定する（ステップ１００）。この際、バス制御部１４は、典型的にはＰＣＩ  Ｅｘｐｒｅｓｓに代表されるシリアルＩ／Ｏインタフェースで構成されるが、他のシリアルインタフェースで構成してもよい。
【００４４】
次に、汎用プロセッサ１１は、ＤＭＡ制御部１３に対して、主記憶部１５からバス制御部１４への転送を指示する命令を発行する（ステップ１０１）。典型的には、汎用プロセッサ１１が備えるＤＭＡ転送命令を用いることができる。ＤＭＡ転送命令が発行されると、バスの制御権がＤＭＡ制御部１３に移譲される。
【００４５】
この後、汎用機能部１０から拡張機能部２０へのデータ書き込み動作が実行される。まず、メモリ制御部１２は、主記憶部１５から統計情報を読み出し（ステップ１０２）、ＤＭＡ制御部１３およびバス制御部１４に、データ書き込みを指示する（ステップ１０３）。
【００４６】
これに応じて、ＤＭＡ制御部１３は、主記憶部１５から読み出された統計情報をバス制御部１４へＤＭＡ転送し（ステップ１０４）、バス制御部１４は、ＤＭＡ制御部１３からＤＭＡ転送された統計情報を受け取って、使用するシリアルＩ／Ｏインタフェースの規格に準じたマスタ・スレーブ転送により、データ転送バスＢを介してバス制御部２１へ転送する（ステップ１０５）。
【００４７】
これにより、バス制御部２１は、バス制御部１４から受信した統計情報を組込プロセッサ３１の主記憶部（図示せず）に書き込み（ステップ１０６）、組込プロセッサ３１は、主記憶部の統計情報を制御回路３２を介して統計情報メモリシステム４０へ蓄積することになる。
【００４８】
上記のデータ書き込み手順で書き込まれるデータは、統計情報に限定されるものではなく、組込プロセッサ３１が備える統計処理に最適化された命令でもよい。組込プロセッサ３１で動作する命令は、汎用機能部１０の主記憶部１５の特定のバンクに格納されており、前述したようにＤＭＡ転送によって組込プロセッサ３１側の主記憶部にコピーすることで所望の機能を汎用機能部１０側から起動することができる。
【００４９】
本実施の形態は、このような統計処理に最適化された命令を、汎用機能部１０側から組込プロセッサ３１側へＤＭＡ転送して起動する機能を利用して、蓄積対象となる統計情報を採取する採取粒度を可変制御するようにしたものである。
【００５０】
すなわち、前述したステップ１０３〜１０５において、汎用プロセッサ１１は、組込プロセッサ３１の制御データとして、粒度可変命令部３１Ｗが備える命令を書き込む。組込プロセッサ３１で動作する命令は、汎用機能部１０の主記憶部１５の特定の区画に格納されており、前述のようにＤＭＡ転送によって組込プロセッサ３１側の主記憶にコピーすることで所望の機能を汎用機能部１０側から起動する。この手続きは、汎用機能部１０が備えるプログラム機能を用いて、粒度可変命令部３１Ｗが備える命令を組込み関数として呼び出すことで実現できる。
【００５１】
したがって、組込プロセッサ３１が、汎用機能部１０から受け取った統計情報を統計情報メモリシステム４０へ蓄積する際、蓄積対象となる統計情報を採取する採取粒度Ｎを可変制御するようにしたものである。例えば、Ｎ＝１とした場合、サンプリングレートが１／１となり、すべての統計情報が蓄積対象として選択される。一方、Ｎ＝２とした場合、サンプリングレート１／２となり、２つに１つの統計情報が蓄積対象として選択される。これにより、ワイヤレートに追従する統計情報メモリ部３０の性能を損なうことなく、またプログラムによる粒度指定の柔軟性を併せ持つ構成を実現することができる。
【００５２】
次に、図２を参照して、拡張機能部２０に蓄積されている統計情報を読み出して汎用機能部１０へ転送する場合について説明する。
【００５３】
まず、拡張機能部２０のバス制御部２１は、組込プロセッサ３１が統計情報メモリシステム４０から読み出した統計情報を、組込プロセッサ３１の主記憶部から読み出し（ステップ１１０）、データ転送バスＢを介して汎用機能部１０のバス制御部２１へ、マスタ・スレーブ転送により転送する（ステップ１１１）。
【００５４】
バス制御部１４は、バス制御部２１から受信した統計情報をＤＭＡ制御部１３へＤＭＡ転送し（ステップ１１２）、ＤＭＡ制御部１３は、バス制御部１４からＤＭＡ転送された統計情報を受け取る。
メモリ制御部１２は、ＤＭＡ制御部１３から統計情報を読み出し（ステップ１１３）、主記憶部１５に書き込む（ステップ１１４）。
これにより、汎用プロセッサ１１は、拡張機能部２０から読み出された統計情報を主記憶部１５から読み出して、例えばネットワークＩ／Ｆ部１６から通信ネットワーク３を介して統計情報分析装置２へ転送することができる。
【００５５】
［第１の実施の形態の効果］
このように、本実施の形態は、指定されたプログラムを汎用プロセッサ１１で実行して当該プログラムに沿った情報処理を行うことにより、汎用的なプログラム環境を提供する汎用機能部１０と、統計情報処理装置１に増設される回路ユニットからなり、組込プロセッサ３１で統計情報処理命令を実行することにより、統計情報の収集および蓄積に適するプログラム環境を提供する拡張機能部２０とを備え、汎用機能部１０が、統計情報処理プログラムを実行することにより、通信トラヒックから取得した統計情報を拡張機能部２０へ転送し、拡張機能部２０が、統計情報処理命令を実行することにより、汎用機能部１０から受け取った統計情報のうちから、蓄積対象となる統計情報を粒度可変命令部３１Ｗにより採取して、統計情報メモリシステム４０へ高速で蓄積するようにしたものである。
【００５６】
より具体的には、汎用機能部１０が、統計情報を転送する際、汎用プロセッサ１１で統計情報処理プログラムを実行することにより、拡張機能部２０との間で連携して動作するための転送条件を設定した後、データ転送バスＢを介したマスタ・スレーブ転送により拡張機能部２０へ統計情報の転送し、拡張機能部２０が、統計情報を蓄積する際、組込プロセッサ３１で統計情報処理命令を実行することにより、データ転送バスＢを介したマスタ・スレーブ転送により汎用機能部１０から統計情報を受け取って、これら統計情報から前記採取粒度に基づき採取した統計情報を統計情報メモリシステム４０へ蓄積するようにしたものである。
【００５７】
これにより、汎用機能部１０から拡張機能部２０に対する統計情報の転送処理が、汎用プロセッサ１１で実行する統計情報処理プログラムと、組込プロセッサ３１で実行する統計情報処理命令とで制御される。したがって、増設した統計情報メモリシステム４０を用いて、汎用サーバで統計情報処理の自在性とワイヤレート性能を高いレベルで両立することが可能となるとともに、要求精度に応じて統計情報を採取（サンプリング）して蓄積するという適応的な統計情報処理を実現することが可能となる。
【００５８】
［第２の実施の形態］
次に、図３を参照して、本発明の第２の実施の形態にかかる統計情報処理装置１について説明する。図３は、第２の実施の形態にかかる統計情報メモリ部の構成を示すブロック図である。
本実施の形態では、統計情報メモリ部３０の詳細構成について説明する。
【００５９】
統計情報メモリ部３０において、組込プロセッサ３１は、通信線Ｌ１を介して制御回路３２と接続されており、データ通信線Ｌ２、バスブリッジ部３３、およびデータ通信線Ｌ３を介して統計情報メモリシステム４０と接続されている。また、制御回路３２は、制御信号線Ｌ４を介して統計情報メモリシステム４０と接続されているとともに、制御信号線Ｌ５を介してバスブリッジ部３３と接続されている。
【００６０】
統計情報メモリシステム４０には、主な回路部として、１以上の細粒度の統計情報を一時蓄積する細粒度メモリ４１と、１以上の粗粒度の統計情報を蓄積する粗粒度メモリ４２が設けられている。粗粒度メモリ４２は、データ通信を行うためのデータ線４３Ａおよび制御線４３Ｂを介して細粒度メモリ４１に直列的に接続されている。
【００６１】
細粒度メモリ４１は、例えばＦＰＧＡ上のＳＲＡＭおよび制御回路によって形成することが可能である。細粒度蓄積部４１Ａは、必要な細粒度統計情報を並列的に記憶するためのメモリであり、データ転送部４１Ｃは統計情報取得部５０におけるヘッダ解析によって得られた情報を、細粒度蓄積部４１Ａへ転送する回路である。また、細粒度制御部４１Ｂは、粗粒度メモリ４２へデータ転送を行うための制御回路である。
【００６２】
通常、１回のパケット到着に対して、複数の細粒度統計情報を取得して蓄積する必要がある。したがって、細粒度蓄積部４１Ａには、蓄積する各統計項目に対応した複数の待ち行列（キュー）が設けられており、このうちいずれか複数の待ち行列が１回のパケット到着時に一斉同時に更新される。
【００６３】
粗粒度メモリ４２は、例えばＤＲＡＭなど安価で大容量なメモリで構成される。粗粒度蓄積部４２Ａは、粗粒度統計情報を蓄積するメモリであり、細粒度蓄積部４１Ａの待ち行列（キュー）に対応して、各統計項目に対応した記憶領域に分割し管理制御を行う。粗粒度制御部４２Ｂは、ＤＲＡＭ内部のメモリ制御回路である。
【００６４】
統計情報メモリシステム４０の特徴は、各粗粒度統計情報を蓄積する粗粒度メモリ４２と、粗粒度メモリ４２より記憶容量が小さく、かつ高速で動作することにより入力される細粒度統計情報を一時蓄積する細粒度メモリ４１とを直列的に配置して、粗粒度メモリ４２のアクセス周期に合わせて、細粒度メモリ４１で一時蓄積している細粒度統計情報で、粗粒度メモリ４２に蓄積されている粗粒度統計情報を順次更新する点にある。
【００６５】
制御回路３２は、細粒度メモリ４１と粗粒度メモリ４２が保持する各統計情報リソースの読み書きを、両メモリ間で調停するマスタ制御回路である。統計情報メモリシステム４０の構成では、これらメモリのそれぞれに細粒度制御部４１Ｂと粗粒度制御部４２Ｂが設けられており、１つの制御回路３２に対して２つのスレーブ制御回路４１Ｂ，４２Ｂが形成されている。
【００６６】
バスブリッジ部３３は、組込プロセッサ３１が備える独自規格のバスを標準的なデータ通信用のオンチップ・バスに変換するためのモジュールである。独自規格のバスは使用する組込プロセッサの種類によって区々であるが、標準的なバスの典型例としてはＡＸＩ（Advanced eXtensible Interface）が挙げられる。無論、他のバス規格を用いてもよい。
【００６７】
組込プロセッサ３１は、典型的には、オーソドックスなパイプライン構造を備えるＲＩＳＣ（Reduced Instruction Set Computer）アーキテクチャで構成される。一般的なＲＩＳＣ  ＣＰＵを用いて構成する場合、統計情報メモリ部３０における統計情報処理の柔軟性が向上させることができるが、処理能力が低いためワイヤレートに追従させることが困難である。そのため、一般的なＲＩＳＣ  ＣＰＵを用いる場合、通信トラヒックの統計情報を適宜サンプリングすることにより情報量を低減する必要があった。サンプリングによる統計情報処理手法として頻繁に利用されているものとしては、例えば非特許文献１に示すｓＦｌｏｗがある。ｓＦｌｏｗを用いて粗粒度の統計情報を収集および可視化することにより、おおまかなトラヒック変動の傾向を把握することができる。
【００６８】
しかしながら、ｓＦｌｏｗで得られる粗粒度の統計情報は時間解像度が低いため分単位レベルでの変動しか追従することができない。そのため、ネットワークでしばしば問題となるマイクロバーストトラヒックの検出や、障害検出で一般的に目標とされる５０ミリ秒以内の遅延時間における障害対策をすることができない。さらに、非特許文献２のＯｐｅｎＦｌｏｗの標準仕様におけるカウンタの時間解像度はナノ秒レベルのものが規定されており、粗粒度の統計情報だけでは将来的に要求に応えることが困難である。
【００６９】
組込プロセッサ３１を構成する他のデバイスとしては、ネットワークプロセッサ（ＮＰＵ）が挙げられる。非特許文献３には高性能なＮＰＵが例示されている。ＮＰＵを用いて構成する場合、統計情報メモリ部３０における統計情報処理の柔軟性を向上させることができ、処理能力が高いためワイヤレートに追従させることができる。そのため、サンプリング手法だけに依らず、細粒度の統計情報を取り扱うことが可能である。しかしながら、一般的にＮＰＵはチップ面積が大きく、動作周波数が高いため消費電力が大きくなる傾向がある。非特許文献３によると、最新のＮＰＵの消費電力は典型的には５０Ｗを超えるものが多い。したがって、プログラマビリティを有しており、かつ、高性能ではあるが、電力効率に関して優れているとは言い難い。
【００７０】
上述したように、本発明は上記の技術課題についても考慮しており、本発明に特徴的な構成として、粗粒度および細粒度、双方の統計情報処理に最適化された構成を有する組込プロセッサを提案する。必要最小限の基本命令を具備するプリミティブな組込プロセッサを、特定用途向けに最適化できる設計技術として、ＡＳＩＰ（Application Specific Instruction-set Processor）設計手法が知られている。本発明とは用途が異なるが、非特許文献４にはＩＰパケットの解析処理に最適化された命令を有する組込プロセッサの概要構成が開示されている。
【００７１】
ＡＳＩＰを用いて構成する場合、統計情報メモリ部３０における統計情報処理の柔軟性を向上させることができ、性能を最適化することができるため、ワイヤレートに追従させることができる。そのため、サンプリング手法だけに依らず、細粒度の統計情報を取り扱うことが可能である。また、一般的にチップ面積も小さく、動作周波数も低いため消費電力を低く抑えることができる。したがって、本願発明が提案する構成によれば、プログラマビリティを有しており、高性能、かつ電力効率の優れた統計情報メモリ部３０を実現することができる。
【００７２】
［第２の実施の形態の動作］
次に、図４を参照して、本実施の形態にかかる統計情報メモリ部３０の動作について説明する。図４は、第２の実施の形態にかかる統計情報メモリ部における統計情報の書き込み／読み出し動作を示すシーケンス図である。
【００７３】
まず、図４を参照して、統計情報メモリ部３０の組込プロセッサ３１が、汎用機能部１０から受け取った統計情報を統計情報メモリシステム４０へ書き込む場合について説明する。
【００７４】
組込プロセッサ３１は、制御回路３２に対してアドレスを設定することにより、統計情報を書き込むリソースを指定するとともに書き込み制御信号を送信する（ステップ２００）。これに応じて制御回路３２は、統計情報メモリシステム４０に対してページの活性化コマンドを送出するとともに（ステップ２０１）、バスブリッジ部３３を介して統計情報メモリシステム４０の細粒度メモリ４１に、組込プロセッサ３１の主記憶部に保持されている統計情報の転送すなわち書き込みを開始する（ステップ２０２）。
【００７５】
統計情報メモリシステム４０では、書き込まれた統計情報すなわち細粒度統計情報により、時間の経過とともに細粒度メモリ４１のリソースが枯渇するため、細粒度メモリ４１の細粒度統計情報で粗粒度メモリ４２の粗粒度統計情報を更新する統計情報更新処理を、粗粒度メモリ４２側が主体となって周期的に実行する（ステップ２１０）。この際、細粒度統計情報の書き込みなどの処理を逐次実行するため、各統計項目のすべてを一括して更新できる時間をとれないことから、各統計項目のうちから複数の統計項目を順に選択し、これら選択統計項目に関する統計情報更新処理を繰り返し実行することにより、これら統計項目を分割して更新する。
【００７６】
統計情報更新処理において、まず粗粒度メモリ４２は、Ｒｅａｄコマンドを発行して各選択統計項目の粗粒度統計情報の読み出し（Read）を行って（ステップ２１１）、粗粒度メモリ４２から細粒度メモリ４１側へ順に転送し（ステップ２１２）、選択統計項目ごとに粗粒度統計情報と細粒度メモリ４１で一時蓄積されている細粒度統計情報との加算処理（Add）を行う（ステップ２１３）。
【００７７】
次に、細粒度メモリ４１は、Ｗｒｉｔｅコマンドを発行して（ステップ２１４）、選択統計項目ごとに得られた加算結果を新たな粗粒度統計情報として粗粒度メモリ４２側に転送し（ステップ２１５）、各選択統計項目について蓄積されている粗粒度統計情報を新たな粗粒度統計情報で更新（Update）した後（ステップ２１６）、細粒度メモリ４１側の統計をゼロ値にリセット（Reset）する（ステップ２１７）。
【００７８】
このようにして、各統計項目のうちから選択された複数の統計項目ごとに統計情報更新処理が繰り返し実行され（ステップ２１８：ＮＯ）、すべての統計項目について統計情報更新処理が一巡した場合（ステップ２１８：ＹＥＳ）、細粒度メモリ４１は、制御回路３２に対してページ非活性化コマンドを通知する（ステップ２０３）。
これにより、組込プロセッサ３１による、汎用機能部１０から受け取った統計情報の統計情報メモリシステム４０への書き込み処理が終了する。
【００７９】
次に、図４を参照して、統計情報メモリ部３０が統計情報メモリシステム４０から統計情報を読み出す場合について説明する。
組込プロセッサ３１は、制御回路３２に対してアドレスを設定することにより、統計情報を読み出すリソースを指定するとともに読み出し制御信号を送信し（ステップ２２０）、制御回路３２は、統計情報メモリシステム４０の粗粒度メモリ４２対して読み出しを指示する（ステップ２２１）。
【００８０】
これに応じて、粗粒度メモリ４２はＲｅａｄコマンドを発行して、指定されたリソースから粗粒度統計情報を読み出し（ステップ２２２）、バスブリッジ部２０３へ出力する（ステップ２２３）。この後、制御回路３２は、バスブリッジ部２０３へ出力された粗粒度統計情報を組込プロセッサ３１の主記憶部に書き込む（ステップ２２４）
これにより、組込プロセッサ３１による、統計情報メモリシステム４０からの統計情報の読み出し処理が終了する。この後、必要に応じて組込プロセッサ３１が備えるプログラム機能により読み出した統計情報の集計などの処理を行ってもよい。
【００８１】
図５は、組込プロセッサの構成例である。本発明が提案する組込プロセッサ３１は、粗粒度および細粒度、双方の統計情報処理に最適化された構成を有する。この組込プロセッサ３１には、主な回路部として、レジスタ３１Ａ、デコーダ３１Ｂ、演算器３１Ｃ、ロードストア３１Ｄ、およびエンコーダ３１Ｅが設けられているとともに、主記憶部３１Ｍおよび外部Ｉ／Ｆ部３１Ｎが外部接続されており、必要に応じてハードウェアリソースを適宜増やすことができる。
【００８２】
パイプライン段数は、ＡＳＩＰ設計技術によって区々であるが、典型的には複数段（５段以上）のパイプラインで構成される。例えば５段パイプラインの場合、ＩＦ（命令フェッチ）、ＩＤ（命令デコード）、ＥＸ（実行）、ＭＡ（メモリアクセス）、ＷＢ（レジスタ書き戻し）の５つのステージを備える。
【００８３】
図３に示したように、組込プロセッサ３１の内部には、主な機能部として細粒度統計採取命令部３１Ｘおよび粗粒度統計採取命令部３１Ｙを有する粒度可変命令部３１Ｗが設けられており、組込プロセッサ３１のパイプラインでフェッチおよびデコードすることができる。このような構成が必要とされる理由としては、もし適切な粒度で統計情報を選択することができないと、前述のサンプリングに関する問題で言及したように、必要な精度が無い場合異常トラヒックや障害を検出できないなど、高精度の統計リソースが要求されるケースに対応できない。他方、必要以上に細かい粒度で取得してしまうと負荷が大きくシステムのパフォーマンス低下を招きかねない。
【００８４】
以下では、図６を参照して、組込プロセッサ３１で粒度可変命令部３１Ｗを実施する例について、その基本構成を具体的に説明する。図６は、粒度可変命令部の構成および動作を示す説明図である。
図６の上段は、観測するトラヒック（パケット）の流れを示しており、中段は２種類の粒度可変命令、すなわち細粒度統計採取命令部３１Ｘの粒度可変命令ＤＥＮＳＥ＿ＣＯＵＮＴを示し、粗粒度統計採取命令部３１Ｙの粒度可変命令ＳＰＡＲＳＥ＿ＣＯＵＮＴを示している。また、下段は粒度可変命令部３１Ｗが使用する組込プロセッサ３１の追加ハードウェア（演算器およびレジスタ）を示している。
【００８５】
観測する統計情報の数をＮとするとき、サンプリングレートを１／Ｎで表す。簡単のため、本例ではＤＥＮＳＥ＿ＣＯＵＮＴはＮ＝１の場合、すなわちすべての統計情報を取得するように動作するとしている。Ｎ＞１の場合、Ｎの値が大きいほど取得する統計情報の粒度が粗くなる。図６の上段は、Ｎ＝１で全パケットを観測対象としており、Ｎ＝２で全パケットの半分を観測対象としている様子を示している。尚、Ｎ＝０の場合は統計情報を取得しない。
【００８６】
このような単純なサンプリングレートの指定による統計情報粒度の変更方法は、非特許文献１のｓＦｌｏｗをはじめとする公知の技術として広く知られている。しかしながら、従来このような機能を有するネットワーク機器では、必要最小限の対応ハードウェアカウンタと主にソフトウェアで実装しているため、広帯域な用途では性能および精度が不足するという問題があった。
【００８７】
本発明が提案する粒度可変命令部３１Ｗは、ＡＳＩＰの専用命令として設計することにより単位時間あたりソフトウェアで数十〜数百サイクルを要する処理を、１〜数サイクルに低減することができるため、ワイヤレートに追従する統計情報メモリ部３０の性能を損なうことなく、またプログラムによる粒度指定の柔軟性を併せ持つ構成を実現することができる。
【００８８】
したがって、高精度が求められるユースケース（例えば通信障害の検出や課金など）に対しては、細粒度統計採取命令部３１Ｘがワイヤレートに追従しつつ、ノンサンプリングで優先的に細粒度メモリ４１にデータを転送し、逆に精度が求められないユースケース（大域的なトラヒック変動のモニタリングなど）に対しては、粗粒度統計採取命令部３１Ｙがサンプリングで優先的に粗粒度メモリ４２にデータを転送するといった、適応的な統計情報処理およびＱｏＳ制御が可能になる。必要に応じて、中間粒度を処理する命令部を設けることにより、多段構成の粒度可変命令部３１Ｗを構成してもよい。これらの命令セットはプログラムによってパラメータを指定して機能を変更することができるため、未知のユースケースに対しても柔軟に対応することができる。
【００８９】
次に、粒度可変命令部３１Ｗを備える組込プロセッサ３１、および統計情報メモリシステム４０の動作手順について説明する。
まず、前述した図２のステップ１０３〜１０５において、汎用プロセッサ１１は、組込プロセッサ３１の制御データとして、粒度可変命令部３１Ｗが備える命令を書き込む。組込プロセッサ３１で動作する命令は、汎用機能部１０の主記憶部１５の特定の区画に格納されており、前述のようにＤＭＡ転送によって組込プロセッサ３１側の主記憶にコピーすることで所望の機能を汎用機能部１０側から起動する。この手続きは、汎用機能部１０が備えるプログラム機能を用いて、粒度可変命令部３１Ｗが備える命令を組込み関数として呼び出すことで実現できる。
【００９０】
起動された粒度可変命令は、組込プロセッサ３１の主記憶部３１Ｍにおける該当区画から、ロードストア３１Ｄを介してロードされ、パイプラインのＩＦおよびＩＤステージで処理されレディ状態となる。他方、演算対象とする外部トラヒックの統計情報データは、パイプラインのＥＸステージと直結したデータ通信線Ｌ３から入力され、粒度可変命令を極小サイクル数で実行後、ロードストア３１Ｄを介さずに、再度直接、データ通信線Ｌ３に演算結果を出力する。この手順により、柔軟かつ低遅延な統計情報処理が可能となるため、拡張機能部２０の統計情報メモリ部３０にプログラマビリティを具備させることができ、高性能、かつ電力効率の優れた統計情報メモリシステムを構成することができる。
【００９１】
［第２の実施の形態の効果］
このように、本実施の形態は、統計情報メモリシステム４０に、汎用機能部１０から受け取った統計情報からなる、時間的粒度の細かい統計値である細粒度統計情報を、統計項目ごとにそれぞれ一時蓄積する細粒度メモリ４１と、細粒度メモリ４１に対して直列的に配置されて、細粒度統計情報と比較して時間的粒度の粗い統計値である粗粒度統計情報を、統計項目ごとに蓄積する粗粒度メモリ４２とを設け、細粒度メモリ４１は、統計項目ごと、当該統計項目に関する粗粒度統計情報を粗粒度メモリ４２から読み出して、一時蓄積している当該統計項目に関する細粒度統計情報で更新した後、粗粒度メモリ４２へ書き込むようにしたものである。
【００９２】
より具体的には、拡張機能部２０が、統計情報を統計情報メモリシステム４０へ蓄積する際、組込プロセッサ３１で統計情報処理命令を実行することにより、汎用機能部１０から統計情報を受け取るごとに当該統計情報を細粒度統計情報として細粒度メモリ４１へ順次蓄積し、これとは並列して周期的に、当該統計情報メモリシステム４０をページ活性化し、細粒度統計情報により粗粒度統計情報を更新した後、当該統計情報メモリシステム４０をページ非活性化するようにしたものである。
【００９３】
これにより、汎用機能部１０から高速転送され、組込プロセッサ３１および制御回路３２を介して入力される、時間的粒度が細かい細粒度統計情報は、高速動作が可能なＳＲＡＭからなる細粒度メモリ４１に順次蓄積される。また、時間的粒度が粗い粗粒度統計情報については、粗粒度メモリ４２のアクセス周期に合わせて、細粒度メモリ４１で一時蓄積している細粒度統計情報で更新される。
【００９４】
したがって、高速動作可能であるが単位容量当たりの価格が高いＳＲＡＭだけではなく、ＳＲＡＭと比較して動作速度は比較的遅いものの単位容量当たりの価格が低いＤＲＡＭも併用しつつ、新たなパケットが到着するごとに高速で逐次入力される細粒度統計情報を、欠損することなく受け取ることができるとともに、これら細粒度統計情報を統計項目ごとに統計処理して粗粒度統計情報を蓄積することができる。これにより、コストパフォーマンスに優れた、高速動作可能な統計情報メモリシステム４０を実現することが可能となる。
【００９５】
また、本実施の形態は、粒度可変命令部３１Ｗに細粒度統計採取命令部３１Ｘと粗粒度統計採取命令部３１Ｙとを設け、細粒度統計採取命令部３１Ｘにより、汎用機能部１０から受け取った統計情報のうちから、可変制御可能な細粒度採取粒度に基づき蓄積対象となる細粒度統計情報を採取して細粒度メモリ４１へ転送し、粗粒度統計採取命令部３１Ｙにより、汎用機能部１０から受け取った統計情報のうちから、可変制御可能な粗粒度採取粒度に基づき蓄積対象となる粗粒度統計情報を採取して粗粒度メモリ４２へ転送するようにしたものである。
【００９６】
これにより、細粒度統計情報と粗粒度統計情報を、それぞれ別個の細粒度採取粒度および粗粒度採取粒度に基づき採取（サンプリング）して蓄積することができ、要求精度に応じてこれら細粒度採取粒度および粗粒度採取粒度を独立して可変制御することにより、極めて適応的な統計情報処理を実現することが可能となる。
【００９７】
［実施の形態の拡張］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
【００９８】
また、各実施形態の説明において「〜部」と説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手段」、「〜処理」であってもよい。
また、本実施形態で示したハードウェアアシストによる処理の高速性、およびプログラムによる設定面での柔軟性の両立を可能とするような命令セットを、特定用途向けプロセッサが具備する構成を最良の形態と見なしているものの、「〜部」として説明しているものは、ＲＯＭに記憶されたファームウェアおよび再構成型デバイス・素子・基板・配線などのハードウェアで実現されていても構わない。
【００９９】
あるいは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵにより読み出されて実行される。すなわち、プログラムは、本発明の実施形態の「〜部」としてコンピュータを機能させるものである。あるいは、実施形態の「〜手段」の手順や方法をコンピュータに実行させるものである。
【符号の説明】
【０１００】
１…統計情報処理装置、２…統計情報分析装置、３…通信ネットワーク、１０…汎用機能部、１１…汎用プロセッサ、１２…メモリ制御部、１３…ＤＭＡ制御部、１４…バス制御部、１５…主記憶部、１６…ネットワークＩ／Ｆ部、２０…拡張機能部、２１…バス制御部、２２…ネットワークＩ／Ｆ部、３０…統計情報メモリ部、３１…組込プロセッサ、３１Ａ…レジスタ、３１Ｂ…デコーダ、３１Ｃ…演算器、３１Ｄ…ロード／ストア部、３１Ｅ…エンコーダ、３１Ｍ…主記憶部、３１Ｎ…外部Ｉ／Ｆ部、３１Ｗ…粒度可変命令部、３１Ｘ…細粒度統計採取命令部、３１Ｙ…粗粒度統計採取命令部、３２…制御回路、４０…統計情報メモリシステム、４１…細粒度メモリ、４１Ａ…細粒度蓄積部、４１Ｂ…細粒度制御部、４１Ｃ…データ転送部、４２…粗粒度メモリ、４２Ａ…粗粒度蓄積部、４２Ｂ…粗粒度制御部、４３Ａ…データ線、４３Ｂ…制御線、５０…統計情報取得部。
【図１】
2016025492.tif 000003
【図２】
2016025492.tif 000004
【図３】
2016025492.tif 000005
【図４】
2016025492.tif 000006
【図５】
2016025492.tif 000007
【図６】
2016025492.tif 000008