(57)【要約】    キャッシュミスが発生した場合のデータアクセス遅延時間、及び、キャッシュミスが発生しない場合のパケット処理の実行所要時間を測定する。    測定装置は、キャッシュメモリを用いて通信フローのパケット処理を行う通信処理手段のパケット処理時間を、複数の通信フロー数について測定し、測定結果からキャッシュミスが無い時のパケット処理時間と、キャッシュミスによる処理遅延時間とを算出する制御手段、を備える。
2016056217.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリを用いて通信フローのパケット処理を行う通信処理手段のパケット処理時間を、複数の通信フロー数について測定し、測定結果からキャッシュミスが無い時のパケット処理時間と、キャッシュミスによる処理遅延時間とを算出する制御手段、を備える測定装置。
【請求項２】
前記制御手段は、通信フロー数を増加させていったときのパケット処理時間の変化から、キャッシュミス発生の有無を分ける通信フロー数である閾値を判定し、前記閾値以下の通信フロー数に対する処理時間と、前記閾値以上の通信フロー数に対する処理時間との差異に基づいて、前記キャッシュミスが無い時のパケット処理時間と、前記キャッシュミスによる処理遅延時間とを算出する、請求項１の測定装置。
【請求項３】
前記制御手段は、通信フロー数を増加させていったときの、所定幅区間内の通信フロー数ごとの測定結果から、区間ごとの通信フロー数とパケット処理時間の近似式、並びに、近似式と測定結果との誤差を算出し、当該誤差がピークとなる区間、もしくは、当該誤差が所定の閾値を超える区間の通信フロー数を前記閾値として決定する、請求項２の測定装置。
【請求項４】
前記制御手段は、最初の誤差の局所的なピークに基づいて、キャッシュミスによる処理遅延が発生し始める通信フロー数である第１の閾値を判定し、２番目の誤差の局所的なピークに基づいて、処理遅延が飽和する通信フロー数である、第２の閾値を判定し、前記第１の閾値以下の通信フロー数に対する処理時間と、前記第２の閾値以上の通信フロー数に対する処理時間との差異に基づいて、前記キャッシュミスが無い時のパケット処理時間と、前記キャッシュミスによる処理遅延時間とを算出する、請求項３の測定装置。
【請求項５】
前記制御手段から受信した通信フロー数の通信負荷を発生させて、前記通信処理手段に送信する負荷発生装置と、
前記通信処理手段はパケット処理時間を出力し、前記制御手段は通信フロー数を選択して前記負荷発生装置に送信し、前記通信処理手段から測定結果を受信する請求項１乃至４の何れか１項の測定装置と、を包含する測定システム。
【請求項６】
キャッシュメモリを用いて通信フローのパケット処理を行う通信処理手段のパケット処理時間を、複数の通信フロー数について測定し、測定結果からキャッシュミスが無い時のパケット処理時間と、キャッシュミスによる処理遅延時間とを算出する測定方法。
【請求項７】
通信フロー数を増加させていったときのパケット処理時間の変化から、キャッシュミス発生の有無を分ける通信フロー数である閾値を判定し、前記閾値以下の通信フロー数に対する処理時間と、前記閾値以上の通信フロー数に対する処理時間との差異に基づいて、前記キャッシュミスが無い時のパケット処理時間と、前記キャッシュミスによる処理遅延時間とを算出する、請求項６の測定方法。
【請求項８】
通信フロー数を増加させていったときの、所定幅区間内の通信フロー数ごとの測定結果から、区間ごとの通信フロー数とパケット処理時間の近似式、並びに、近似式と測定結果との誤差を算出し、当該誤差がピークとなる区間、もしくは、当該誤差が所定の閾値を超える区間の通信フロー数を前記閾値として決定する、請求項７の測定方法。
【請求項９】
最初の誤差の局所的なピークに基づいて、キャッシュミスによる処理遅延が発生し始める通信フロー数である第１の閾値を判定し、２番目の誤差の局所的なピークに基づいて、処理遅延が飽和する通信フロー数である、第２の閾値を判定し、前記第１の閾値以下の通信フロー数に対する処理時間と、前記第２の閾値以上の通信フロー数に対する処理時間との差異に基づいて、前記キャッシュミスが無い時のパケット処理時間と、前記キャッシュミスによる処理遅延時間とを算出する、請求項８の測定方法。
【請求項１０】
コンピュータに、キャッシュメモリを用いて通信フローのパケット処理を行う通信処理手段のパケット処理時間を、複数の通信フロー数について測定し、測定結果からキャッシュミスが無い時のパケット処理時間と、キャッシュミスによる処理遅延時間とを算出する処理を、実行させるプログラムを記録する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、測定装置、測定システム、測定方法、および、プログラムに関し、特に、キャッシュミスによる通信処理への影響を測定する測定装置、測定システム、測定方法、および、プログラムに関する。
【背景技術】
【０００２】
Ethernet(登録商標)スイッチやルータは、一定のルールに従ってパケットを転送したり破棄したりするパケット処理機能、すなわち、ネットワークスイッチ機能を実行する。パケット処理機能は、専用プロセッサで実現される場合も有るし、汎用プロセッサで動作するソフトウェアで実現される場合も有る。【０００３】
パケット処理を実行する装置が、パケットを受信し処理する場合、一般的に下記の処理を実行する。
・１: パケットを通信インタフェースから受信する
・２: パケットが属する通信フローを特定する
・３: 当該フローを処理するために必要な情報を参照する
・４: 当該情報に基づき当該パケットを処理する
これらの処理が、プロセッサとキャッシュを含む階層メモリを有する装置で実行される場合、上記処理３における情報参照に伴い発生するメモリアクセスがキャッシュにヒットするか否かによって、所要時間が大幅に異なる。【０００４】
プロセッサが上記処理１〜３を連続的に実行する場合、キャッシュミスが発生するとプロセッサによるパケット処理が一時停止される。その結果、パケット処理全体の所要時間が増加し、パケット処理性能が低下する。【０００５】
そのようなキャッシュミスを低減し、平均処理性能の向上・安定化を図る技術が特許文献１に開示されている。特許文献１のマイクロプロセッサは、パケット処理のためにパイプライン処理機構を使用することでキャッシュミスを低減している。当該マイクロプロセッサは、受信パケットを収容するバッファメモリを4つ持ち、各バッファメモリについて下記処理を並列実行する。
・パケット受信 (上記処理１に相当)
・関連データプリフェッチ(上記処理２および３に相当)
・パケット処理 (上記処理４に相当)
・パケット出力 (上記処理４に相当)
特許文献１のマイクロプロセッサは、処理２において参照するメモリデータに対しプリフェッチを行い、当該データを参照する前にキャッシュにロードしておく。さらに、当該データがキャッシュにロードされるまでの間、当該マイクロプロセッサは、別のパケットの処理を行う。これにより、当該マイクロプロセッサはキャッシュミスを低減する。【０００６】
特許文献２は、ソフトウェアでパケット処理機能を実現する通信システムを開示する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３３７２８７３号公報
【特許文献２】国際公開第２０１２／１２８２８２号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１が開示するマイクロプロセッサは、特別なハードウェア、例えばプリフェッチ制御部、バッファメモリ状態制御部を必要とする。当該特別なハードウェアを備えたプロセッサでパケット処理を行うことは、装置価格の上昇をもたらす。【０００９】
さらに、汎用プロセッサで動作するソフトウェアによりパケット処理機能を実現することを考えた場合、プロセッサに、当該特別なハードウェアを付加することはできない。【００１０】
特別なハードウェアを使用することなく、パケット処理機能において特許文献１と同様の効果を得るためには、パケット処理のロジックを以下のように最適化することが必要である。
・パケット処理において、プロセッサは性能劣化の要因となるメモリデータアクセスについて、当該メモリデータのプリフェッチを行う
・当該メモリデータのプリフェッチ処理中、プロセッサは、別のパケットの処理(もしくは、現在処理中のパケットに関する処理の内、当該メモリデータに依存しない処理)を行う
例えば、上記のパケット処理ロジックの最適化を行うためには、下記の測定値が必要であり、この値をどのように測定するかが課題となる。
・キャッシュミスが発生した場合のデータアクセス遅延時間
・キャッシュミスが発生しない場合の、パケット処理の実行所要時間
無論これらの測定値は、他の目的、例えば、キャッシュメモリの速度や容量の決定にも使用できる。本発明の目的は、上記２つの測定値を得るための、測定装置、測定システム、測定方法、および、プログラムを提供することである。
【課題を解決するための手段】
【００１１】
本発明の一実施形態の測定装置は、キャッシュメモリを用いて通信フローのパケット処理を行う通信処理手段のパケット処理時間を、複数の通信フロー数について測定し、測定結果からキャッシュミスが無い時のパケット処理時間と、キャッシュミスによる処理遅延時間とを算出する制御手段を備える。【００１２】
本発明の一実施形態の測定方法は、キャッシュメモリを用いて通信フローのパケット処理を行う通信処理手段のパケット処理時間を、複数の通信フロー数について測定し、測定結果からキャッシュミスが無い時のパケット処理時間と、キャッシュミスによる処理遅延時間とを算出する。【００１３】
本発明の一実施形態の記録媒体は、コンピュータに、キャッシュメモリを用いて通信フローのパケット処理を行う通信処理手段のパケット処理時間を、複数の通信フロー数について測定し、測定結果からキャッシュミスが無い時のパケット処理時間と、キャッシュミスによる処理遅延時間とを算出する処理を、実行させるプログラムを記録する。
【発明の効果】
【００１４】
本発明にかかる測定装置は、キャッシュミスが発生した場合のデータアクセス遅延時間、及び、キャッシュミスが発生しない場合のパケット処理の実行所要時間を得ることができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、第１の実施の形態にかかる測定システム６０の構成の一例を示す説明図である。
【図２】図２は、測定装置１の構成例を示すブロック図である。
【図３】図３は、負荷発生装置２の構成例を示すブロック図である。
【図４】図４は、測定装置１の詳細な構成例を示すブロック図である。
【図５】図５は、通信処理部２０の動作例を示すフローチャートである。
【図６】図６は、測定制御部１２の動作例を示すフローチャートである。
【図７】図７は、負荷発生部４０の動作例を示すフローチャートである。
【図８】図８は、最適化制御部１１の動作例を示すフローチャート（その１）である。
【図９】図９は、最適化制御部１１の動作例を示すフローチャート（その２）である。
【図１０】図１０は、通信処理部２０によるパケット処理にかかる時間の測定結果の一例を示すグラフである。
【図１１】図１１は、最適化制御部１１が算出する残差平方和の一例を示すグラフである。
【図１２】図１２は、測定装置１が出力する測定出力値の一例を示す表である。
【図１３】図１３は、測定装置１が出力する測定出力値を用いて行える通信処理部２０の処理最適化を、説明する為のパケット処理のタイムシーケンス例を示す模式図である。
【図１４】図１４は、最適化後の通信処理部２０の動作例を示すフローチャート（その１）である。
【図１５Ａ】図１５Ａは、最適化後の通信処理部２０の動作例を示すフローチャート（その２の１）である。
【図１５Ｂ】図１５Ｂは、最適化後の通信処理部２０の動作例を示すフローチャート（その２の２）である。
【図１６】図１６は、第２の実施の形態にかかる測定装置１の構成の一例を示す説明図である。
【発明を実施するための形態】
【００１６】
＜第１の実施の形態＞
[概要]
図１は、本実施の形態にかかる測定システム６０の構成の一例を示す説明図である。図１に例示する測定システム６０は、測定装置１と、負荷発生装置２と、通信ネットワーク３と、を包含する。
【００１７】
測定装置１は、 汎用若しくは専用プロセッサ、及び、キャッシュを含む階層メモリ（いずれも図示されない）を備える装置である。測定装置１は、ネットワークスイッチ機能を実現するパケット処理を当該プロセッサ上で実行して、キャッシュミスが無い時の処理時間と、キャッシュミスによる処理遅延時間と（以降、まとめて、測定出力値と称することがある）を測定する。
【００１８】
これらの測定出力値は、例えば、上述したようにパケット処理の最適化、キャッシュメモリの速度や容量の決定に用いることが出来る。
【００１９】
測定装置１は、例えば、コンピュータとソフトウェアパケット処理機能とで実現される。測定装置１は、専用の論理回路で構成された専用プロセッサを搭載する専用装置であってもよい。
【００２０】
負荷発生装置２は、測定装置１が必要とする通信負荷を発生させる装置である。負荷発生装置２は、例えば、プロセッサとキャッシュを含む階層メモリを含むコンピュータとソフトウェアパケット発生機能とで実現される。負荷発生装置２は、専用の論理回路を搭載する専用装置であってもよい。
【００２１】
通信ネットワーク３は、測定装置１と負荷発生装置２との間を結ぶ通信路である。通信ネットワーク３は、例えば、Ethernet(登録商標) LAN（Local Area Network）により実現される。
【００２２】
図２は、測定装置１の構成例を示すブロック図である。図２に例示する測定装置１は、制御部１０と、通信処理部２０と、通信IF（Interface）部３０と、を備えている。通信IF部３０は一つであっても、複数であってもよい。
【００２３】
制御部１０は、通信処理部２０に関する測定を行うための制御を行う。
【００２４】
通信処理部２０は、ネットワークスイッチとして動作し、通信IF部３０が受信したパケットを受け取り、パケット処理を実行する。通信処理部２０は、受信したパケットが属するフローを特定し、当該フローに関する情報を参照した上で、当該パケットの処理方法を決定し処理する。
【００２５】
通信IF部３０は、測定装置１と通信ネットワーク３とを接続するためのインタフェースであり、通信ネットワーク３で使用されるプロトコルに従い通信を行う。
【００２６】
制御部１０、通信処理部２０、および、通信IF部３０は、論理回路で構成される。制御部１０、通信処理部２０、または、通信IF部３０は、コンピュータである測定装置１のメモリに格納されてプロセッサで実行されるソフトウェアで実現されても良い。
【００２７】
図３は、負荷発生装置２の構成例を示すブロック図である。図３に例示する負荷発生装置２は、負荷発生部４０と、通信IF部５０と、を備えている。通信IF部５０は一つであっても、複数であってもよい。
【００２８】
負荷発生部４０は、測定装置１の制御部１０の指示の下で通信処理部２０の負荷となるパケットを生成・送信する。制御部１０の指示は、例えば、フロー数、送信先情報、送信元情報、送信レート、送信パタン、の一部または全部を含む。
【００２９】
通信IF部５０は、負荷発生装置２と通信ネットワーク３とを接続するためのインタフェースであり、通信ネットワーク３で使用されるプロトコルに従い通信を行う。
【００３０】
図４は、測定装置１の詳細な構成例を示すブロック図である。制御部１０は、最適化制御部１１と、測定制御部１２と、を備える。
【００３１】
最適化制御部１１は、通信処理部２０が実行するパケット処理の所要時間の測定を、測定制御部１２に対して複数回指示し、測定結果を受け取る。最適化制御部１１は、複数回の測定の各々に対し、異なるフロー数での測定を測定制御部１２に指示する。最適化制御部１１は、得られた測定結果を基に更なる測定の必要性や、さらなる測定をする場合のフロー数を決定する。また、最適化制御部１１は、得られた測定結果を基に通信処理部２０がパケット処理中に発生するキャッシュミスに関するフロー数閾値であるキャッシュミスフロー閾値を決定する。
【００３２】
キャッシュミスフロー閾値は、１つもしくは複数の値で構成される閾値である。キャッシュミスフロー閾値は、当該閾値以下のフロー数のパケット処理においてはキャッシュミスの発生が少なく、当該閾値以上のフロー数のパケット処理においては定常的にキャッシュミスが発生するようなフロー数を示す値である。
【００３３】
フロー数の増加に伴って、パケット処理でアクセスされるメモリブロックの集合（以降、ワーキングセットと称する）の容量が増加する。そして、ワーキングセットの容量が、キャッシュメモリの容量を超えると、キャッシュミスが発生する。キャッシュミスフロー閾値は、ワーキングセットの容量が、キャッシュメモリの容量を超えるときのフロー数を近似する値である。
【００３４】
最適化制御部１１は、前述の測定結果から、キャッシュミスフロー閾値を決定する。さらに、最適化制御部１１は、測定結果と決定されたキャッシュミスフロー閾値とから、通信処理部２０に関する下記の測定出力値を決定する。
・キャッシュミスが発生した場合のデータアクセス遅延時間
・キャッシュミスが発生しない場合の、パケット処理を構成するサブ処理の各実行所要時間
なお、ここでのキャッシュミスは、フロー数の増加に伴うワーキングセットの容量増加に起因し定常的に発生するキャッシュミスを指す（以降の説明においても同様である）。“キャッシュミスが発生しない場合”との記述において、必ずしもキャッシュミスの発生は０ではない。例えば、ワーキングセットの容量がキャッシュメモリの容量より十分小さい場合であっても、ワーキングセットに含まれるメモリブロック群の変化に伴いキャッシュミスが発生する可能性がある。測定装置１が測定するデータアクセス遅延時間は、そのようなキャッシュミスによるものではなく、ワーキングセットの容量増加に起因し定常的に発生するキャッシュミスによるものである。
【００３５】
測定制御部１２は、フロー数を入力として受け取り、通信処理部２０および負荷発生部４０を制御して、通信処理部２０が指定されたフロー数の通信を行うときのパケット処理時間を測定する。測定制御部１２は、通信ネットワーク３を通じて負荷発生部４０を制御してもよいし、図示されない制御用のネットワークを通じて制御してもよい。
【００３６】
本実施形態における通信処理部２０は、例えば、IP(Internet Protocol)パケットを処理する。通信処理部２０は、パケットヘッダに含まれる送信元IPアドレス、送信先IPアドレス、上位プロトコル番号、送信先ポート番号、送信元ポート番号（以降、５タプルとも呼称）を使用してフローを特定する。すなわち、通信処理部２０は、５タプルの値（以降、キーとも呼称）が同じパケット群を同じフローに属すると判定する。
【００３７】
本実施形態における通信処理部２０は、フローに関する処理規則としてフローエントリを使用する。フローエントリは、５タプルの値によって識別・特定され、当該５タプルに対応するフローに属するパケットを処理する方法を含む。
【００３８】
パケットを処理する方法は、例えば、パケットを特定の通信IF部３０から出力する、破棄する、測定装置１内もしくは外の図示されないモジュール・装置に通知する、図示されない記憶装置に記憶する、等であってよい。
【００３９】
通信処理部２０は、フローエントリを含むフローテーブルを記憶する。通信処理部２０は、フローテーブルの内容を操作する、すなわちフローエントリを追加・参照・更新・削除するインタフェースを制御部１０に提供する。通信処理部２０は、例えば、測定装置１のメモリ上にハッシュテーブルを使用してフローエントリを記憶する。通信処理部２０が使用するハッシュテーブルは、例えば、Open Addressing方式であってよい。
【００４０】
通信処理部２０は、通信IF部３０が受信したパケットを受け取り、処理する。通信処理部２０は、受信したパケットに対し以下の各処理を実行する。
・A： 当該パケットの５タプルの値を取得する
・B： 当該パケットに対応するフローエントリを探索する
・C： 取得したフローエントリに含まれる処理方法に従って当該パケットを処理する
なお、上記Bにおいて、受信したパケットに対応するフローエントリが見つからない場合、通信処理部２０は、当該パケットを破棄してもよいし、当該事象の発生を測定装置１内もしくは外の図示されないモジュール・装置に通知してもよい。
【００４１】
通信処理部２０は、上記A乃至Cの各々の実行にかかる所要時間の一部もしくは全部を測定する機能を有する。通信処理部２０は、例えば、測定装置１または通信処理部２０のプロセッサが有するサイクル数カウンタを使用して所要時間を測定してもよい。例えば、通信処理部２０は、上記処理Aの開始直前にサイクル数カウンタから値を取得し、かつ処理Aが終了した直後にサイクル数カウンタから値を取得し、取得した値の差から処理Aの所要時間、若しくは、所要サイクル数を測定してもよい。または、通信処理部２０は、実時間タイマを使用して処理時間を測定してもよい。通信処理部２０は、上記A乃至Cの処理単位より細かい粒度で所要時間を測定してもよい。
【００４２】
［動作］ 
次に、図面を参照して、本実施形態の動作について詳細に説明する。
【００４３】
図５は、通信処理部２０が通信IF部３０からパケットを受信し処理する際の動作を示すフローチャートである。本動作は、イベントドリブンで開始されてもよいし、通信処理部２０によるポーリング動作により開始されてもよい。
【００４４】
通信処理部２０は、通信IF部３０からパケットを受信する（ステップＳ１０１）。通信処理部２０は、受信したパケットをすべて処理したかどうか確認し、未処理のパケットがない場合処理を終了する（ステップＳ１０２でＮ）。
【００４５】
通信処理部２０は、未処理のパケットがある場合（ステップＳ１０２でＹ）、最初のパケットの処理を開始し、当該パケットのキーを抽出する（ステップＳ１０３）。例えば、通信処理部２０は、当該パケットの５タプルの値、すなわち、送信元IPアドレス、送信先IPアドレス、上位プロトコル番号、送信先ポート番号、送信元ポート番号、を得る。
【００４６】
通信処理部２０は、当該パケットのキーについてハッシュ値を計算する（ステップＳ１０４）。通信処理部２０は、得られたハッシュ値を基にハッシュテーブルを検索し、当該パケットが属するフローに関するフローエントリを検索する（ステップＳ１０５）。
【００４７】
当該パケットに対するフローエントリが見つかった場合（ステップＳ１０８でＹ）、通信処理部２０は、当該フローエントリで指定された処理方法に従って当該パケットを処理する（ステップＳ１０６）。
【００４８】
当該パケットに対するフローエントリが見つからなかった場合（ステップＳ１０８でＮ）、通信処理部２０は、当該パケットを破棄する（ステップＳ１０７）。通信処理部２０は、当該パケットを破棄する代わりに、もしくは当該パケットを破棄することに加えて、対応するフローエントリが存在しないパケットの発生を測定装置１内もしくは外の図示されないモジュール・装置に通知してもよい。
【００４９】
図６は、測定制御部１２が通信処理部２０によるパケット処理の所要時間を測定する際の動作を示すフローチャートである。本動作は、例えば、最適化制御部１１の要求によって開始される。測定制御部１２は、本動作の開始にあたり、少なくとも測定に使用するフロー数を入力パラメタとして受け取る。
【００５０】
測定制御部１２は、指定されたフロー数のフローエントリを通信処理部２０に設定する（ステップＳ１２１）。測定制御部１２は、設定されるフローエントリのキーを、例えば、重複が発生しない範囲内でランダムに生成してもよいし、連続的に値(例えば送信先ＩＰアドレス)を増やして生成してもよい。設定されるフローエントリの処理方法は、例えば、受信元の通信IF部３０から出力する、受信元とは別の通信IF部３０から出力する、破棄する、のいずれかであってもよい。
【００５１】
測定制御部１２は、通信処理部２０に対し、パケット処理にかかる所要時間の測定開始を指示する（ステップＳ１２２）。なお、通信処理部２０はその動作中常に所要時間の測定を行うこととした場合、本ステップは省略されてもよい。
【００５２】
測定制御部１２は、負荷発生部４０に対し、負荷発生の開始を指示する（ステップＳ１２３）。その際、測定制御部１２は、ステップＳ１２１で生成したキーの集合を負荷発生部４０に入力パラメタとして渡す。もしくは、測定制御部１２と負荷発生部４０があらかじめキー集合の生成アルゴリズムを共有しておき、同じ値の集合を作成するのに必要な入力パラメタのみ測定制御部１２が負荷発生部４０に渡してもよい。
【００５３】
測定制御部１２は、測定が完了するまで待機する（ステップＳ１２４）。測定制御部１２は、例えば、あらかじめ設定された一定時間の経過をもって測定が完了したと判断してもよい。または、測定制御部１２は、測定開始から通信処理部２０で処理されたパケットの数を通信処理部２０から定期的に取得し、あらかじめ設定された閾値に達したことをもって測定が完了したと判断してもよい。
【００５４】
測定制御部１２は、負荷発生部４０に対し、負荷発生の終了を指示する（ステップＳ１２５）。測定制御部１２は、通信処理部２０から測定結果を取得し、最適化制御部１１に渡す（ステップＳ１２６）。
【００５５】
図７は、負荷発生部４０が通信処理部２０の負荷となる通信を発生させる際の動作を示すフローチャートである。本動作は、例えば、測定制御部１２の要求によって開始される。負荷発生部４０は、本動作の開始にあたり、例えば、生成するパケットに使用すべきキーの集合を入力パラメタとして受け取る。
【００５６】
負荷発生部４０は、終了指示があるかどうか確認する（ステップＳ１３１）。終了指示がある場合（ステップＳ１３１でＹ）、負荷発生部４０は本動作を終了する。
【００５７】
終了指示がない場合（ステップＳ１３１でＮ）、負荷発生部４０は、次に送信するパケットに使用するキーを、使用すべきキーの集合から選択する（ステップＳ１３２）。負荷発生部４０は、当該集合内の値がなるべく平均的に使用されるように値の選択を行う。負荷発生部４０は、例えば、当該集合内の要素を一定の順序で並べて置き、その順序にしたがって連続的に値を選択してもよい。その場合、負荷発生部４０は、最後の順番の値に達した場合、最初の値に戻って使用する。また、負荷発生部４０は、当該集合の中からランダムに使用する値を選択してもよい。
【００５８】
負荷発生部４０は、ステップＳ１３２で選択したキーを含むパケットを生成する（ステップＳ１３３）。負荷発生部４０は、５タプル以外のパケットフィールドについて、その値をランダムに生成してもよいし、あらかじめ与えられた値を使用してもよい。また、負荷発生部４０は、アドレスフィールドに関し、通信IF部３０や通信IF部５０で使用されるアドレスを使用してもよい。負荷発生部４０は、それらのアドレスをＯＳ（Operating System、図示されない）や要求元からの入力パラメタの一部として取得してもよい。
【００５９】
負荷発生部４０は、ステップＳ１３３で生成したパケットを通信IF部５０から送信する（ステップＳ１３４）。負荷発生部４０は、この動作を終了指示がある（ステップＳ１３１でＹ）まで、続ける。
【００６０】
図８は、最適化制御部１１が通信処理部２０に関する測定出力値を決定する際の動作を示すフローチャートである。本動作は、例えば、ユーザによって開始されてよい。
【００６１】
最適化制御部１１は、最初の測定で使用するフロー数を選択する（ステップＳ１４１）。最適化制御部１１は、あらかじめ設定された値を選択してもよいし、本動作開始時にユーザによって与えられる値を選択してもよい。
【００６２】
最適化制御部１１は、選択したフロー数を入力パラメタとして測定制御部１２に測定を指示しその結果を受け取る（ステップＳ１４２）。
【００６３】
最適化制御部１１は、本動作において収集した測定結果（ステップＳ１２６の測定結果）を基に、通信処理部２０に関する測定出力値の決定を試行する（ステップＳ１４３）。その方法については図９を用いて後述する。最適化制御部１１は、ステップS１４３において、測定出力値の決定に成功した場合（ステップＳ１４４でＹ）、その処理を終了する。
【００６４】
測定出力値の決定に失敗した場合（ステップＳ１４４でＮ）、最適化制御部１１は、別のフロー数を選択して、次の測定を行って測定出力値の決定を再度試みる（ステップＳ１４５）。
【００６５】
最適化制御部１１は、例えば、最後の測定で使用したフロー数にあらかじめ設定された値を足した値を次の測定で使用することとしてよい。また、最適化制御部１１は所定の回数測定出力値の決定に失敗した場合、測定に使用する値を変更して通信処理部２０に関する測定出力値を決定する際の動作をステップＳ１４１からやり直してもよい。その際、最適化制御部１１は、例えば、ステップＳ１４１で使用する最初の測定で使用するフロー数を前回の動作で使用したものの１／２としてもよい。また、最適化制御部１１は、ステップＳ１４５で使用する測定毎に増やすフロー数を前回の動作で使用したものの１／２もしくは２倍としてもよい。
【００６６】
次に、ステップＳ１４３において、最適化制御部１１が通信処理部２０に関する測定出力値として下記を決定する方法の一例について、図９を参照して説明する。
・キャッシュミスが発生した場合のデータアクセス遅延時間
・キャッシュミスが発生しない場合の、パケット処理を構成するサブ処理の各実行所要時間
最適化制御部１１は、キャッシュミスフロー閾値の決定を試行する（ステップＳ１５１）。以降の説明において、キャッシュミスフロー閾値は、キャッシュミスが増加し始めるフロー数、およびキャッシュミスの増加が終了する（飽和する）フロー数の２つの値で構成される。
【００６７】
最適化制御部１１は、例えば、近似式の誤差の変化率を利用して、キャッシュミスフロー閾値を決定する。通信フローの数を順次増加させて、通信処理部２０のパケット処理のパケット当たりの処理時間を測定した場合、まず、パケット処理のワーキングセット容量がキャッシュメモリの容量を超えてキャッシュミスが発生し始め、処理時間が増加し出す。その後もフロー数の増加に従ってワーキングセット容量が増加し続けると、暫くは、キャッシュミスも増加し続け、それにつれて、パケット処理のパケット当たりの処理時間も増加し続ける。しかし、ワーキングセット容量がさらに増加し続け、定常的にキャッシュミスが発生するようになると、パケット当たりの処理時間の増加が終了する。すなわち、パケット当たりの処理時間の増加率は、キャッシュミスが発生し始めた時点と、キャッシュミスの発生が定常化した時点とで、大きく変化する。最適化制御部１１は、増加率の変化が大きくなると、近似式の誤差が大きくなることを利用してこの増加率の変化を検出し、キャッシュミスフロー閾値を検出する。
【００６８】
具体的に、まず、最適化制御部１１は、所定の数（以降、フロー数閾値判定単位と呼称する）の連続する測定結果について近似式、および、その誤差もしくは誤差に関する統計量（以降、単に誤差と呼称する）を、複数のフロー数について求める。例えば、最適化制御部１１は、フロー数をxとしたとき、xに対する所要時間yは一次方程式y = a x + bで近似されるものとし、近似式の係数導出および誤差を算出する。最適化制御部１１は、この算出に、例えば、最小二乗法を用いてもよい。
【００６９】
最適化制御部１１は、キャッシュミスフロー閾値を、誤差が局所的にピークとなるフロー数として決定してもよい。その際、最適化制御部１１は、誤差数値列を走査してピークを決定してもよいし、あらかじめ与えられた閾値と誤差を比較してピークか否かを判定してもよい。
【００７０】
最適化制御部１１は、例えば、ピークを検出できない場合、もしくはその数があらかじめ与えられたものと異なる場合、現在の測定結果群からは測定出力値を決定することは不可能と判定してもよい（ステップＳ１５４でＮ）。
【００７１】
最適化制御部１１が、キャッシュミスフロー閾値を決定する方法の例を図１０および図１１を参照して説明する。
【００７２】
図１０は、通信処理部２０によるパケット処理にかかる時間の測定結果、例えば、一パケットあたりの平均所要サイクル数の例を示している。このグラフにおいて、Ｘ軸はフロー数、Ｙ軸は測定結果を示す。この例で最適化制御部１１は、フロー数２０００の場合から測定を開始し、以後フロー数を２０００ずつ増やしながら３２０００フローの場合まで測定している。
【００７３】
ここでは、フロー数閾値判定単位を４とした場合について説明する。まず、最適化制御部１１は、測定結果から最初のフロー数閾値判定単位分（例えば、フロー数２０００、４０００、６０００、８０００）の測定結果について、最小二乗法を用いて近似式の係数を導出し残差平方和を求める。次に、最適化制御部１１は、測定結果から２番目のフロー数閾値判定単位分（例えば、フロー数４０００、６０００、８０００、１００００）の測定結果について近似式の係数を導出し残差平方和を求める。最適化制御部１１は、３番目のフロー数閾値判定単位以降についても同様の計算を行う。
【００７４】
その結果、図１１に示すような残差平方和群が得られる。このグラフにおいて、Ｘ軸はフロー数、Ｙ軸は残差平方和を示す。図１１では、最初のフロー数閾値判定単位について近似式の係数を導出した場合の残差平方和は、フロー数２０００の位置にプロットされている。２番目のフロー数閾値判定単位について近似式の係数を導出した場合の残差平方和は、フロー数４０００の位置にプロットされている。３番目のフロー数閾値判定単位について近似式の係数を導出した場合の残差平方和は、フロー数６０００の位置にプロットされている。以下、同様である。
【００７５】
最適化制御部１１は、誤差数値列を走査してフロー数１００００の位置と２００００の位置にピークがあることを検知する。すなわち、最適化制御部１１は、フロー数の区間Ａ（１００００，１２０００，１４０００，１６０００）でキャッシュミスが発生し始め、区間Ｂ（２００００，２２０００，２４０００，２６０００）で、キャッシュミスが定常化し、処理時間の増加が終了したことを検出する。
【００７６】
この場合、最適化制御部１１は、例えば、区間Ａの最小値（１００００）と区間Ｂの最大値（２６０００）をキャッシュミスフロー閾値として決定する。最適化制御部１１は、区間Ａの中央値（１３０００）及び区間Ｂの中央値（２３０００）をキャッシュミスフロー閾値として決定しても良い。最適化制御部１１は、区間Ａ及びＢ内のフロー数群(フロー数閾値判定単位分)の平均値をキャッシュミスフロー閾値として決定しても良い。さらに、最適化制御部１１は、区間Ａの小さい側に隣接する区間の最大値（８０００）と区間Ｂの大きい側に隣接する区間の最小値（２８０００）をキャッシュミスフロー閾値として決定しても良い。
【００７７】
キャッシュミスフロー閾値を決定したとき（Ｓ１５４でＹ）、最適化制御部１１は、キャッシュミスが発生した場合のデータアクセス遅延時間を決定する（ステップＳ１５２）。最適化制御部１１は、キャッシュミスが発生した場合のデータアクセス遅延時間を、大きな方のキャッシュミスフロー閾値以上のフロー数パケット処理所要時間と小さいほうのキャッシュミスフロー閾値以下のフロー数のパケット処理所要時間の差として求める。上記例の場合、最適化制御部１１は、例えば、フロー数２６０００以上の場合のパケット処理所要時間とフロー数１００００以下の場合のパケット処理所要時間の差として求める。
【００７８】
最適化制御部１１は、例えば、下記のいずれかもしくは組み合わせにより、キャッシュミスが発生した場合のデータアクセス遅延時間を決定してよい。
・最適化制御部１１は、キャッシュミスフロー閾値以上のフロー数およびキャッシュミスフロー閾値以下のフロー数における測定結果群それぞれについて最小二乗法を用いて近似式の係数を導出し、得られた２つの係数ｂの差をデータアクセス遅延時間とする。
・最適化制御部１１は、測定を行ったキャッシュミスフロー閾値以上のフロー数群およびキャッシュミスフロー閾値以下のフロー数群のそれぞれから一ずつフロー数を選択する。最適化制御部１１は、例えば、キャッシュミスフロー閾値にもっとも近い値を選択する。そして、最適化制御部１１は、当該フロー数における測定結果の差をデータアクセス遅延時間とする。
【００７９】
次いで、最適化制御部１１は、キャッシュミスが発生しない場合の、パケット処理の実行所要時間を決定する（ステップＳ１５３）。最適化制御部１１は、例えば、キャッシュミスフロー閾値以下のフロー数における測定結果群について最小二乗法を用いて近似式の係数を導出し、当該近似式とフロー数ｘとからパケット処理実行所要時間を決定する。
【００８０】
なお、上記説明では、パケット処理の全体について測定することを前提に説明した。通信処理部２０が、例えば、パケット処理を構成するサブ処理（例えば、図５の各ステップ）単位に、処理時間を区切って出力すれば、最適化制御部１１は、パケット処理に含まれる各サブ処理について上記測定出力値を出力できる。
【００８１】
[測定出力値の利用例]
ここで、本実施の形態の測定装置１が出力する測定出力値を用いて、パケット処理機能（例えば、本実施の形態における通信処理部２０が実行する処理）を最適化する方法について、図１２乃至図１４を用いて説明する。以降の説明において、図１２に示す測定出力値が得られたものとする。図１２は、図５のステップＳ１０４乃至Ｓ１０６についての、「キャッシュミスが発生した場合のデータアクセス遅延時間」と「キャッシュミスが発生した場合の、パケット処理を構成するサブ処理の各実行所要時間」を示す。但し、後者は所要時間の近似式の係数ａ，ｂで表している。
【００８２】
パケット処理機能の最適化は、パケット処理に必要なデータを、プロセッサが参照する前にキャッシュメモリにロードすること、および、当該データがキャッシュにロードされるまでの間プロセッサは別のパケットを処理することにより達成する。パケット処理機能の最適化によりキャッシュミスが低減し、プロセッサ稼働率が向上する。本実施の形態の測定装置１が出力する測定出力値は、その変更設計に有用である。
【００８３】
図１３は、通信処理部２０の処理最適化を説明する為のパケット処理のタイムシーケンス例を示す。本動作変更例では動作変更後の通信処理部２０のプロセッサは、３つのパケットについて並行して処理を行う。３つのパケットは、パケット１、パケット２、パケット３であるとする。
【００８４】
図中、無地の矩形は、１つのパケットに対し１つのサブ処理、すなわち、キー抽出、ハッシュ値計算、等、をプロセッサが実行していることを示す。その所要時間は、測定出力値におけるキャッシュミスが発生しない場合のサブ処理の各実行所要時間である。
【００８５】
周辺部が網掛けされた矩形、例えば、Ｓ１７３の矩形、は、１つのパケットに対する１つのサブ処理用のプリフェッチを実行中であることを示す。その所要時間は、測定出力値におけるキャッシュミスが発生した場合のデータアクセス遅延時間である。但し、最適化後、通信処理部２０は、プリフェッチ命令を発行してプリフェッチを開始すると、すぐに他のパケットの処理に移行する。すなわち、通信処理部２０は、プリフェッチにより発生するデータアクセス遅延時間中、並行して、他のパケットの処理を進める。
【００８６】
いずれの矩形についても、括弧内に所要時間が記載され、矩形の幅、すなわち、時刻軸方向の長さ、が当該所要時間と比例して図示されている。
【００８７】
通信処理部２０の処理最適化のための動作変更は、キャッシュミスが発生し、データアクセス遅延時間があるパケットのサブ処理に関する次の２つの変更である。
・通信処理部２０は、当該サブ処理の実行前に、当該サブ処理においてキャッシュミスを発生させるデータに対しプリフェッチ命令を発行する。
・通信処理部２０は、プリフェッチ実行中に別のパケットのサブ処理を行う。
【００８８】
例えば、キー抽出（ステップＳ１０３）およびハッシュ値計算（ステップＳ１０４）には、キャッシュミスが発生した場合のデータアクセス遅延時間は存在しない。したがって、パケット１についてこれらの処理はすぐに開始可能である（図１３ ステップＳ１７１およびＳ１７２）。
【００８９】
一方、ハッシュテーブル検索の処理（図１３ ステップＳ１７９）には、キャッシュミスが発生した場合のデータアクセス遅延時間が存在する。したがって、ステップＳ１７２の終了後、プロセッサが直ぐにステップＳ１７９を開始した場合、キャッシュミスが発生し当該データアクセス遅延時間の間プロセッサの実行が停止する可能性がある。
【００９０】
そのため、プロセッサは、ステップＳ１７２の終了後、ステップＳ１７９で使用するキャッシュミスを発生させるデータに対しプリフェッチ命令を発行しておく（ステップＳ１７３）。そして、プリフェッチ実行中、プロセッサは次のパケット（パケット２、パケット３）のサブ処理を実行する。
【００９１】
図１３の例では、プロセッサは、ステップＳ１７４乃至ステップＳ１７８でパケット２およびパケット３についてキー抽出およびハッシュ値計算を行っている。以降、同様に、データアクセス遅延時間が存在するサブ処理について、別のパケットのサブ処理で当該アクセス遅延を埋めるよう通信処理部２０のプロセッサの動作が変更される。
【００９２】
図１３で示した動作変更による最適化後の通信処理部２０のパケット処理動作について図１４、図１５Ａおよび図１５Ｂを用いて説明する。
【００９３】
図１４は、最適化後の通信処理部２０が通信IF部３０からパケットを受信し処理する際の動作を示すフローチャートである。本動作は、イベントドリブンで開始されてもよいし、通信処理部２０によるポーリング動作により開始されてもよい。
【００９４】
通信処理部２０は、通信IF部３０からパケットを受信する（ステップＳ１６１）。
【００９５】
通信処理部２０は、受信したパケットに未処理のものが３つ以上残っているか確認する（ステップＳ１６２）。未処理のパケットが３つ以上残っている場合（Ｓ１６２でＹ）、通信処理部２０は、最初の３つのパケットの処理を行う（ステップＳ１６３）。その詳細は後述する。
【００９６】
未処理のパケットが３つ以上残っていない場合（Ｓ１６２でＮ）、通信処理部２０は、残りの未処理のパケットそれぞれについて、図５を用いて説明したステップＳ１０３乃至ステップＳ１０７を実行する（ステップＳ１６４）。
【００９７】
図１５Ａおよび図１５Ｂは、ステップＳ１６３における最適化後の通信処理部２０の動作を示すフローチャートである。
【００９８】
通信処理部２０は、パケット１についてキーを抽出する（ステップＳ１７１）。通信処理部２０は、パケット１のキーについてハッシュ値を計算する（ステップＳ１７２）。通信処理部２０は、パケット１についてのハッシュテーブル検索において使用するデータに対しプリフェッチ命令を発行する（ステップＳ１７３）。
【００９９】
通信処理部２０は、パケット２についてキーを抽出する（ステップＳ１７４）。通信処理部２０は、パケット２のキーについてハッシュ値を計算する（ステップＳ１７５）。通信処理部２０は、パケット２についてのハッシュテーブル検索において使用するデータに対しプリフェッチ命令を発行する（ステップＳ１７６）。
【０１００】
通信処理部２０は、パケット３についてキーを抽出する（ステップＳ１７７）。通信処理部２０は、パケット３のキーについてハッシュ値を計算する（ステップＳ１７８）。通信処理部２０は、パケット１について、得られたハッシュ値を基にハッシュテーブルを検索し、当該パケットが属するフローに関するフローエントリを検索する（ステップＳ１７９）。
【０１０１】
通信処理部２０は、パケット１について、見つかったフローエントリを用いたパケット処理において使用するデータに対しプリフェッチ命令を発行する（ステップＳ１８０）。通信処理部２０は、パケット３についてのハッシュテーブル検索において使用するデータに対しプリフェッチ命令を発行する（ステップＳ１８１）。
【０１０２】
通信処理部２０は、パケット２について、得られたハッシュ値を基にハッシュテーブルを検索し、当該パケットが属するフローに関するフローエントリを検索する（ステップＳ１８２）。
【０１０３】
通信処理部２０は、パケット１について、当該パケットに対するフローエントリが見つかった場合、当該フローエントリで指定された処理方法に従って当該パケットを処理する（ステップＳ１８３）。当該パケットに対するフローエントリが見つからなかった場合、通信処理部２０は、当該パケットを破棄する。
【０１０４】
通信処理部２０は、パケット２について、見つかったフローエントリを用いたパケット処理において使用するデータに対しプリフェッチ命令を発行する（ステップＳ１８４）。通信処理部２０は、パケット３について、得られたハッシュ値を基にハッシュテーブルを検索し、当該パケットが属するフローに関するフローエントリを検索する（ステップＳ１８５）。
【０１０５】
通信処理部２０は、パケット３について、見つかったフローエントリを用いたパケット処理において使用するデータに対しプリフェッチ命令を発行する（ステップＳ１８６）。通信処理部２０は、パケット２について、当該パケットに対するフローエントリが見つかった場合、当該フローエントリで指定された処理方法に従って当該パケットを処理する（ステップＳ１８７）。当該パケットに対するフローエントリが見つからなかった場合、通信処理部２０は、当該パケットを破棄する。
【０１０６】
通信処理部２０は、パケット３について、当該パケットに対するフローエントリが見つかった場合、当該フローエントリで指定された処理方法に従って当該パケットを処理する（ステップＳ１８８）。当該パケットに対するフローエントリが見つからなかった場合、通信処理部２０は、当該パケットを破棄する。
【０１０７】
[効果]
本実施の形態の測定装置１は、キャッシュミスが発生した場合のデータアクセス遅延時間、及び、キャッシュミスが発生しない場合のパケット処理の実行所要時間を得ることができる。
【０１０８】
その第１の理由は、最適化制御部１１の制御により、測定制御部１２が、複数のフロー数について通信処理部２０によるパケット処理にかかる時間を測定しそれらの結果を収集するからである。
【０１０９】
また、第２の理由は、最適化制御部１１が、測定結果群から、キャッシュミスの発生があるフロー数領域とキャッシュミスが無いフロー数領域における所要時間測定結果の差を基に、測定出力値を決定するからである。
【０１１０】
本実施の形態の測定装置１が出力した、キャッシュミスが発生した場合のデータアクセス遅延時間、及び、キャッシュミスが発生しない場合のパケット処理の実行所要時間を用いて、通信処理部２０が実行したようなパケット処理の最適化が可能となる。最適化は、パケット処理がソフトウェアで実現されている場合には比較的容易に可能である。しかし、最適化は、パケット処理がその他の手段、例えば、ファームウェア、論理回路で実現されている場合にも可能である。
【０１１１】
更に、測定装置１が出力した、キャッシュミスが発生した場合のデータアクセス遅延時間、及び、キャッシュミスが発生しない場合のパケット処理の実行所要時間は、通信処理部２０のキャッシュメモリの速度設計、容量設計等、他の目的にも有用である。
【０１１２】
＜第１の実施形態の変形例＞
制御部１０は、必ずしも、最適化制御部１１と測定制御部１２に分離されていなくても良い。制御部１０は、最適化制御部１１と測定制御部１２の両者の機能を果たす一体の論理回路、専用プロセッサ、または、ソフトウェアモジュールであっても良い。
【０１１３】
通信処理部２０と通信IF部３０は、必ずしも、測定装置１に包含されていなくても良い。通信処理部２０は、例えば、測定装置１に接続された別の装置内に存在しても良い。
【０１１４】
キャッシュミスフロー閾値は、１つの値でも良い。最適化制御部１１は、図１１のフロー数対応の残差平方和の推移から、局所的なピークを２つ検出して、その２つのフロー数の中央値をキャッシュミスフロー閾値としても良い。または、最適化制御部１１は、図１１のフロー数対応の残差平方和の推移から、ピークを１つ検出して、その時のフロー数をキャッシュミスフロー閾値としても良い。
【０１１５】
これらの場合、最適化制御部１１は、当該キャッシュミスフロー閾値±所定値のフロー数の処理時間の差異からキャッシュミスが発生した場合のデータアクセス遅延時間を算出すればよい（ステップＳ１５２）。
【０１１６】
＜第２の実施形態＞
図１６は、第２の実施の形態にかかる測定装置１の構成の一例を示す説明図である。本実施の形態の測定装置１は、キャッシュメモリを用いて通信フローのパケット処理を行う通信処理部２０のパケット処理時間を、複数の通信フロー数について測定し、測定結果からキャッシュミスが無い時のパケット処理時間と、キャッシュミスによる処理遅延時間とを算出する制御部１０を備える。
【０１１７】
本実施の形態の測定装置１は、キャッシュミスが発生した場合のデータアクセス遅延時間、及び、キャッシュミスが発生しない場合のパケット処理の実行所要時間を得ることができる。
【０１１８】
その理由は、制御部１０が、複数のフロー数について通信処理部２０によるパケット処理にかかる時間を測定しそれらの結果を収集するからである。
【０１１９】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１２０】
この出願は、2014年10月07日に出願された日本出願特願2014-206486を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１２１】
１    測定装置
２    負荷発生装置
３    通信ネットワーク
１０    制御部
１１    最適化制御部
１２    測定制御部
２０    通信処理部
３０    通信IF部
４０    負荷発生部
５０    通信IF部
６０    測定システム
【図１】
2016056217.tif 000003
【図２】
2016056217.tif 000004
【図３】
2016056217.tif 000005
【図４】
2016056217.tif 000006
【図５】
2016056217.tif 000007
【図６】
2016056217.tif 000008
【図７】
2016056217.tif 000009
【図８】
2016056217.tif 000010
【図９】
2016056217.tif 000011
【図１０】
2016056217.tif 000012
【図１１】
2016056217.tif 000013
【図１２】
2016056217.tif 000014
【図１３】
2016056217.tif 000015
【図１４】
2016056217.tif 000016
【図１５Ａ】
2016056217.tif 000017
【図１５Ｂ】
2016056217.tif 000018
【図１６】
2016056217.tif 000019
【手続補正書】
【提出日】平成29年3月24日(2017.3.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
コンピュータに、キャッシュメモリを用いて通信フローのパケット処理を行う通信処理手段のパケット処理時間を、複数の通信フロー数について測定し、測定結果からキャッシュミスが無い時のパケット処理時間と、キャッシュミスによる処理遅延時間とを算出する処理を、実行させるプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
本発明の一実施形態のプログラムは、コンピュータに、キャッシュメモリを用いて通信フローのパケット処理を行う通信処理手段のパケット処理時間を、複数の通信フロー数について測定し、測定結果からキャッシュミスが無い時のパケット処理時間と、キャッシュミスによる処理遅延時間とを算出する処理を、実行させる。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図１２
【補正方法】変更
【補正の内容】
【図１２】
2016056217.tif 000020
【国際調査報告】
2016056217.tif 000021
2016056217.tif 000022