(57)【特許請求の範囲】
【請求項１】
予め定められた演算を実行するハードウェア演算回路と、
前記演算を実行する対象のデータを表す対象データに対する前記演算を開始するように前記ハードウェア演算回路を制御するとともに、開始した前記演算が終了するまで待機する同期方式、および、前記対象データに対する前記演算を開始するように前記ハードウェア演算回路を制御するとともに、開始した前記演算の終了を待機しない非同期方式のいずれかの実行方式で処理を実行する制御部と、
前記対象データの属性または内容に基づいて、前記実行方式として、前記同期方式および前記非同期方式のいずれかに決定する決定部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記属性は、前記対象データのデータサイズであり、
前記決定部は、前記データサイズと予め定められた第１閾値とを比較し、前記同期方式および前記非同期方式のうち、一方を前記データサイズが前記第１閾値より大きい場合の前記実行方式として決定し、他方を前記データサイズが前記第１閾値より大きくない場合の前記実行方式として決定すること、
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記演算をソフトウェアにより実行するソフトウェア演算部をさらに備え、
前記決定部は、さらに、前記データサイズと、予め定められた第２閾値とを比較し、前記ソフトウェア演算部により前記演算を実行するソフトウェア方式および前記ハードウェア演算回路により前記演算を実行するハードウェア方式うち、一方を前記データサイズが前記第２閾値より大きい場合の前記実行方式として決定し、他方を前記データサイズが前記第２閾値より大きくない場合の前記実行方式として決定し、
前記制御部は、さらに、前記実行方式が前記ソフトウェア方式に決定された場合に、前記ソフトウェア演算部が前記演算を実行するように制御すること、
を特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記同期方式および前記非同期方式のそれぞれについて、複数の前記データサイズのデータに対する前記処理の処理負荷を求め、前記同期方式による前記処理の前記処理負荷と、前記非同期方式による前記処理の前記処理負荷との大小関係が入れ替わるときの前記データサイズを前記第１閾値として算出する閾値算出部をさらに備えたこと、
を特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記決定部は、前記処理がリアルタイム処理であることを表す予め定められた識別情報が前記対象データに含まれているか否かを判定し、前記同期方式を、前記識別情報が前記対象データに含まれる場合の前記実行方式として決定すること、
を特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記識別情報を記憶可能な記憶部と、
予め定められたリアルタイム処理である前記処理に関するデータから前記識別情報を検出して前記記憶部に保存する検出部と、をさらに備え、
前記決定部は、前記記憶部から前記識別情報を取得し、取得した前記識別情報が前記対象データに含まれているか否かを判定し、前記同期方式を、前記識別情報が前記対象データに含まれる場合の前記実行方式として決定すること、
を特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記制御部は、さらに、前記同期方式で実行する前記演算である同期演算を、前記同期演算以外の演算より優先して実行するように制御すること、
を特徴とする請求項５に記載の情報処理装置。
【請求項８】
前記決定部は、予め定められた通信プロトコルおよびアドレス情報の少なくとも１つを含む前記識別情報が、前記対象データに含まれているか否かを判定し、前記同期方式を、前記識別情報が前記対象データに含まれる場合の前記実行方式として決定すること、
を特徴とする請求項５に記載の情報処理装置。
【請求項９】
前記決定部は、リアルタイム処理の処理名である前記識別情報が前記対象データに含まれているか否かを判定し、前記同期方式を、前記処理名が前記対象データに含まれる場合の前記実行方式として決定すること、
を特徴とする請求項５に記載の情報処理装置。
【請求項１０】
前記決定部は、前記対象データに含まれる前記処理の処理負荷に関する負荷情報と、予め定められた第３閾値とを比較し、前記同期方式および前記非同期方式のうち、一方を前記負荷情報が前記第３閾値より大きい場合の前記実行方式として決定し、他方を前記負荷情報が前記第３閾値より大きくない場合の前記実行方式として決定すること、
を特徴とする請求項１に記載の情報処理装置。
【請求項１１】
前記制御部は、前記非同期方式で前記処理を実行する場合に、前記非同期方式の前処理を実行し、前記前処理の実行後に前記演算を開始するように前記ハードウェア演算回路を制御し、前記演算の終了が通知されたときに、前記非同期方式の後処理を実行すること、
を特徴とする請求項１に記載の情報処理装置。
【請求項１２】
制御部が、ハードウェア演算回路によって実行される予め定められた演算を実行する対象のデータを表す対象データに対する前記演算を開始するように前記ハードウェア演算回路を制御するとともに、開始した前記演算が終了するまで待機する同期方式、および、前記対象データに対する前記演算を開始するように前記ハードウェア演算回路を制御するとともに、開始した前記演算の終了を待機しない非同期方式のいずれかの実行方式で処理を実行する制御ステップと、
決定部が、前記対象データの属性または内容に基づいて、前記実行方式として、前記同期方式および前記非同期方式のいずれかに決定する決定ステップと、
を含むことを特徴とする情報処理方法。
【請求項１３】
ハードウェア演算回路によって実行される予め定められた演算を実行する対象のデータを表す対象データに対する前記演算を開始するように前記ハードウェア演算回路を制御するとともに、開始した前記演算が終了するまで待機する同期方式、および、前記対象データに対する前記演算を開始するように前記ハードウェア演算回路を制御するとともに、開始した前記演算の終了を待機しない非同期方式のいずれかの実行方式で処理を実行する制御手順と、
前記対象データの属性または内容に基づいて、前記実行方式として、前記同期方式および前記非同期方式のいずれかに決定する決定手順と、
をコンピュータに実行させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プロセッサユニットに対する負荷を低減可能な非同期方式と同期方式とによりハードウェア演算処理を制御して情報を処理する装置、方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、政府機関や企業、教育機関、家庭などで広帯域ネットワークが普及し、情報漏洩やデータ改竄防止のためのネットワークセキュリティへの関心が高まっている。通信路を介して転送される通信データは、暗号化技術やメッセージ認証（ダイジェスト認証、ハッシュ認証、ＨＭＡＣ（Keyed-Hashing for Message Authentication code）認証）技術を用いることで、盗聴や改ざんを防ぎ、セキュリティの向上を図ることができる。
【０００３】
通信データのセキュリティ向上を図るための通信プロトコルの代表的なものとして、ＩＥＴＦ（Internet Engineering Task Force）によって規定されているＩＰｓｅｃやＴＬＳ（Transport Layer Security）、ＩＥＥＥ（The Institute of Electrical and Electronics Engineers, Inc.）によって規定されているＷＥＰ（Wired Equivalent Privacy）などが挙げられる。また、著作物の不正な複製の防止や、個人情報や営業機密情報、国家の防衛に関する機密情報の不正流出を防ぐためにも暗号化技術が用いられている。
【０００４】
また、近年、高精細・高音質を特徴とするデジタル放送やデジタル音楽配信などが普及している。デジタル音声データや画像データ、映像データなど各種デジタルデータは、データ圧縮技術を用いることで、記憶すべきデータ量の削減や、通信路の単位時間当たりのデータ転送容量が削減できる。特に、画像データや映像データの高精細化によってデータ量が増大しているため、圧縮技術は必須の技術となっている。
【０００５】
デジタル画像データやデジタル映像データの代表的な圧縮技術としては、ＪＰＥＧ（Joint Photographic Experts Group）やＭＰＥＧ（Moving Picture Experts Group）（登録商標）が挙げられる。デジタル音声データの代表的な圧縮技術としては、ＡＡＣ（Advanced Audio Coding）（登録商標）や、ＭＰ３（MPEG-1 for Audio Layer-3）、ＡＴＲＡＣ（Adaptive TRansform Acoustic Coding）（登録商標）が挙げられる。
【０００６】
以上のような暗号化やデータ圧縮処理などの演算処理は、汎用のコンピュータ装置に備えられた汎用のＰＵ（Processing Unit）上で、演算を行うための命令列（プログラム）を実行することで実現することが多い。ところが、この方法では、データ量や通信データ速度の増大に伴い、単位時間あたりに処理すべきデータ量が増大し、汎用のＰＵ上で行う演算処理の負荷が増大することになる。
【０００７】
このような問題に対しては、汎用のＰＵとは別に特定の演算処理を行うための装置（以降、ＨＷ演算装置という）を、汎用のコンピュータ装置内に搭載することで、ＰＵによる演算処理負荷を削減することが可能となっている。このように演算処理をＨＷ演算装置で実行することを、ハードウェアオフローディング処理またはハードウェア演算処理と呼ぶことが多い。
【０００８】
ハードウェア演算処理に関して、特許文献１および特許文献２では、暗号化処理やデータ圧縮処理などの演算処理について、ＨＷ演算装置またはＰＵのいずれか処理の速い方で実行するために、ソフトウェア演算処理とハードウェア演算処理とを切り替える技術が提案されている。
【０００９】
一方、汎用ＰＵ上で動作するプログラムからＨＷ演算装置を制御する方式は、同期方式と非同期方式二つに分類することができる。同期方式とは、汎用ＰＵ上で動作するプログラムからＨＷ演算装置に演算処理を依頼した際に、ＨＷ演算装置による処理の終了を待つ処理（以下、ＨＷ演算終了待ち処理という）を行う方式をいう。同期方式は、ＨＷ演算装置で演算処理を行うプログラムで多く採用されている。
【００１０】
また、非同期方式とは、ＨＷ演算装置による処理の終了を待たずに、ハードウェア演算処理までの処理（以下、前処理という）と、ハードウェア演算処理より後の処理（以下、後処理という）が分割して実行される方式をいう。非同期方式では、ハードウェア演算処理前後で処理が分割して実行されるため、前処理が保持しているデータ（例：ハードウェア演算処理に関するパラメータ、ハードウェア演算処理を行う対象のデータ）を後処理に伝えるための処理（以下、非同期化処理という）が必要となる。非同期化処理の例としては、前処理が保持しているデータのうちすべてまたは一部を後処理に渡す、または前処理が保持しているデータのうちすべてまたは一部のデータのメモリアドレスを後処理に渡すという作業が挙げられる。
【００１１】
非特許文献１では、暗号化・復号を行うＨＷ演算装置を非同期方式で制御するためのプログラムについて述べられている。しかし、現状では、非同期方式を採用した例は同期方式と比較して少ない。
【００１２】
非同期方式では同期方式のようにＨＷ演算装置による処理の終了を待つ必要がないため、一般に、同期方式と比較してＨＷ演算装置による演算処理中のＰＵに対する負荷を軽減できるという効果がある。したがって、通常、非同期方式を採用できる場合には、非同期方式のみによりＨＷ演算装置を制御する。
【００１３】
【特許文献１】特開２００６−７６３８号公報
【特許文献２】特開２００４−１８０２５３号公報
【非特許文献１】A.D.Keromytis et al., “The Design of the OpenBSD Cryptographic Framework”，2003 USENIX Annual Technical Conference，USENIX Association,2003
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、演算処理の種類によっては、非同期方式によるＨＷ演算装置の制御が適さない場合がある。例えば、同期方式におけるＨＷ演算終了待ち処理のＰＵに対する負荷よりも、非同期方式における非同期化処理のＰＵに対する負荷のほうが高い場合は、同期方式でＨＷ演算装置を制御したほうがＰＵに対する負荷が減ることになる。すなわち、ＰＵに対する負荷を減らすために非同期方式でＨＷ演算装置を制御するよう設計された装置であっても、かえってＰＵに対する負荷を増大させる場合があるという問題があった。
【００１５】
また、例えば、非同期方式の場合、非同期化処理を行う時間分だけ同期処理より高い処理遅延が発生する。さらに、非同期方式では、ハードウェア演算処理前後で処理が分割されているため、後処理がＰＵ上で実行されるまでの時間の変動が同期方式と比較して大きい。このため、非同期方式では、処理遅延の増加や処理遅延の変動（ジッタ）が発生し、実時間性（リアルタイム性）を要求されるような処理には適さないという問題があった。
【００１６】
本発明は、上記に鑑みてなされたものであって、ハードウェア演算処理を実行する場合の処理負荷の増加や、処理遅延の増加または変動を回避することができる装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
上述した課題を解決し、目的を達成するために、本発明は、予め定められた演算を実行するハードウェア演算回路と、前記演算を実行する対象のデータを表す対象データに対する前記演算を開始するように前記ハードウェア演算回路を制御するとともに、開始した前記演算が終了するまで待機する同期方式、および、前記対象データに対する前記演算を開始するように前記ハードウェア演算回路を制御するとともに、開始した前記演算の終了を待機しない非同期方式のいずれかの実行方式で処理を実行する制御部と、前記対象データの属性または内容に基づいて、前記実行方式として、前記同期方式および前記非同期方式のいずれかに決定する決定部と、を備えたことを特徴とする。
【００１８】
また、本発明は、上記装置を実行することができる方法およびプログラムである。
【発明の効果】
【００１９】
本発明によれば、ハードウェア演算処理を実行する場合の処理負荷の増加や、処理遅延の増加または変動を回避することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明にかかる情報処理する装置、方法およびプログラムの最良な実施の形態を詳細に説明する。
【００２１】
（第１の実施の形態）
第１の実施の形態にかかる情報処理装置は、ハードウェアにより暗号化処理を実行するときに、暗号化するデータの属性（データサイズ）に応じて、同期方式および非同期方式のいずれかの方式を採用して処理を行うものである。なお、第１の実施の形態では、情報処理装置の一例として、ＩＰｓｅｃプロトコルに従い通信処理を行う通信装置を用いた例について説明する。ただし、適用可能な装置はこのような通信処理を実行する通信装置に限られるものではなく、暗号化処理、データ圧縮処理など特定の演算をハードウェアにより実行する機能を備えた装置であれば、あらゆる装置に適用できる。
【００２２】
図１は、第１の実施の形態にかかる通信装置１００を含む通信システムのネットワーク構成図である。図１に示すように、第１の実施の形態の通信システムは、通信装置１００と、通信相手である通信装置２００とが、ＩＰネットワーク３００で接続された構成となっている。また、通信装置１００および通信装置２００は、それぞれ端末装置４００および端末装置５００に接続されている。
【００２３】
通信装置１００は、ＩＰｓｅｃプロトコルに関するパケット処理やデータ処理を行う装置であり、暗号化処理等をハードウェアにより実行する機能を備えている。同図に示すように、通信装置１００は、ＩＰネットワーク３００および端末装置４００に対して、それぞれネットワークインタフェース１３０およびネットワークインタフェース１３１を介して接続する。
【００２４】
通信装置２００は、通信装置１００とＩＰｓｅｃプロトコルによって通信を行う装置である。端末装置４００および端末装置５００は、それぞれ、通信装置１００および通信装置２００を介してデータの送受信を行う装置である。
【００２５】
次に、通信装置１００の詳細な構成について図２を用いて説明する。図２は、第１の実施の形態にかかる通信装置１００の構成を示すブロック図である。同図に示すように、通信装置１００は、主なハードウェア構成として、ＰＵ１０５と、ＨＷ演算部１２０と、メモリ１１０と、ネットワークインタフェース１３０と、ネットワークインタフェース１３１と、を備えている。
【００２６】
これらはすべて共有バス１１１に接続されており、共有バス１１１を介して相互にデータが受け渡される。なお、ネットワークインタフェース１３０、１３１は第１の実施の形態の例を示すために記載されたものであり、通信が必要ない場合には搭載されていなくてもよい。また、ネットワークインタフェースの個数は２つに限られるものではなく、処理内容等に応じて１つまたは３つ以上のネットワークインタフェースを搭載するように構成してもよい。
【００２７】
ＨＷ演算部１２０は、暗号化・復号、データ圧縮・伸張などの特定の演算をハードウェアにより処理する演算回路である。例えば、ＨＷ演算部１２０は、特定の演算処理を行うために専用に作られたＤＳＰ（Digital Signal Processor）やＡＳＩＣ（Application Specific Integrated Circuit）などのデバイスや、特定の演算処理の命令列を記憶装置からロードして回路を構成するプログラマブルなデバイスなどによって構成することができる。
【００２８】
メモリ１１０は、ＰＵ１０５がデータ処理を行う際に、データ処理に関する命令列や、処理対象データを保存するＲＡＭ（Random Access Memory）などの記憶装置である。なお、メモリ１１０はＲＡＭに限られるものではなく、メモリカード、光ディスク、ＨＤＤ（Hard Disk Drive）などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００２９】
ネットワークインタフェース１３０、１３１は、通信装置１００が外部の装置とデータの送受信を行うためのデバイスである。ネットワークインタフェース１３０、１３１は、イーサネット（登録商標）（Ethernet（登録商標））、ＩＳＤＮ（Integrated Services Digital Network）（登録商標）、およびＦＡＸ  Ｍｏｄｅｍなどの有線通信用インタフェース、またはＷｉＦｉ（Wireless Fidelity）（登録商標）（無線ＬＡＮ）および携帯電話などの無線通信用インタフェースなど、一般的に利用されているあらゆるインタフェースにより構成できる。
【００３０】
共有バス１１１は、ＰＵ１０５やメモリ１１０などのデバイス相互でデータの送受信を電磁的または光学的に行うための通信路である。
【００３１】
ＰＵ１０５は、主なソフトウェア構成であるデータサイズ閾値算出部１０１、演算方式決定部１０２、演算制御部１０３、およびネットワーク処理部１０４に関する各タスクを実行するための装置である。
【００３２】
データサイズ閾値算出部１０１は、演算方式決定部１０２がＨＷ演算部１２０の処理で同期方式、非同期方式のいずれを選択するか判断する際の判断基準であるデータサイズ閾値を、実際のデータ処理の前に事前に算出するものである。データサイズ閾値算出処理は、同期方式選択時における処理時間の計測、非同期方式選択時における処理時間の計測、同期方式と非同期方式の計測結果を用いた閾値算出のステップで構成される。
【００３３】
処理時間の計測ステップでは、データサイズ閾値算出部１０１は、データや条件を予め定めたテストシートを利用する。図３および図４は、第１の実施の形態における、処理時間の計測を行うためのテストシート例を示す説明図である。なお、図３および図４は、ＨＷ演算部１２０が暗号化処理を行う場合の例を示している。
【００３４】
各図に示すように、テストシートは、識別情報（Ｎｏ．）と、演算処理の内容を表す処理内容と、計測に用いるデータのデータサイズと、演算方式（同期または非同期）と、データの読み出しアドレスと、データの書き込みアドレスとを含んでいる。なお、処理内容の「ＡＥＳ−ＣＢＣ（暗号化）」とは、ＡＥＳ（Advanced Encryption Standard）方式のＣＢＣ（Cipher Block Chaining）モードで暗号化処理を行うことを意味する。また、「ＤＥＳ−ＣＢＣ（暗号化）」とは、ＤＥＳ（Data Encryption Standard）方式のＣＢＣ（Cipher Block Chaining）モードで暗号化処理を行うことを意味する。
【００３５】
図３および図４では、データサイズの区切りを６４〜２５６ｂｙｔｅとしているが、さらに細かく区切ったデータを用いてもよいし、より粗く区切ったデータを用いてもよい。ただし、粗く区切った場合は、求められるデータサイズ閾値の精度が低くなる可能性が高いため、できるだけ細かく区切るほうが望ましい。
【００３６】
また、実行するテスト回数を効率的に減らすため、ニュートン法などを用いてテストシートのデータサイズを動的に決定してもよい。さらに、読み出しアドレスや書き込みアドレスは、全試行の中で同じものを用いてもよいし、別のものを用いてもよい。別のものを用いる場合は、処理対象のデータが違うことでＨＷ演算部１２０での処理速度が変わらないようにする必要がある。例えば、ＨＷ演算部１２０がデータ圧縮に関する処理を行う場合には、処理対象データのエントロピーが異なると、ＨＷ演算部１２０での処理速度が変わる可能性が高い。そのため、テストでは同じ処理内容については同じデータを用いるのが望ましい。
【００３７】
なお、図３および図４の例では、ＡＥＳ−ＣＢＣ（暗号化）およびＤＥＳ−ＣＢＣ（暗号化）のみを挙げているが、その他のアルゴリズムや復号化の処理を含んでもよい。また、ＨＷ演算部１２０が、暗号化・復号以外のデータ圧縮や伸張アルゴリズムなどの演算を行う場合には、処理内容にそれらの演算の内容を設定するように構成してもよい。
【００３８】
次に、計測結果を用いた閾値算出処理の概要について図５を用いて説明する。図５は、テストシートに従って計測された演算方式ごとのデータサイズと処理時間との関係を示すグラフである。同図は、処理内容として「ＡＥＳ−ＣＢＣ（暗号化）」が指定されたときの、同期方式および非同期方式それぞれについてのデータサイズと処理時間との関係を示す例である。
【００３９】
データサイズ閾値算出部１０１は、図５のように求められた各演算方式の処理時間を結んだ線の交点に対応するデータサイズを、データサイズ閾値として決定する。データサイズ閾値算出処理の詳細については後述する。
【００４０】
また、データサイズ閾値算出部１０１は、算出したデータサイズ閾値を、メモリ１１０などの記憶装置に保存しておく。図６は、第１の実施の形態におけるデータサイズ閾値の保存形式の一例を示す説明図である。
【００４１】
図６に示すように、データサイズ閾値は、テストシートで指示された処理内容ごとに算出される。同図では、処理内容が「ＡＥＳ−ＣＢＣ（暗号化）」のときのデータサイズ閾値として７００ｂｙｔｅが算出され、処理内容が「ＤＥＳ−ＣＢＣ（暗号化）」のときのデータサイズ閾値として８００ｂｙｔｅが算出された例を示している。なお、保存形式は図６のような表形式に限られるものではない。
【００４２】
図２に戻り、演算方式決定部１０２は、データサイズ閾値算出部１０１によって算出された判断基準（データサイズ閾値）と、演算制御部１０３から渡される処理対象データのデータサイズを比較することで、ＨＷ演算部１２０による演算の実行方式（以下、演算方式という）を、同期方式および非同期方式のいずれかに決定する。
【００４３】
演算制御部１０３は、ＨＷ演算部１２０による暗号化・復号、データ圧縮・伸張などの特定の演算処理の実行を制御するものである。具体的には、演算制御部１０３は、ネットワーク処理部１０４から演算に関するパラメータを受け取り、受け取ったパラメータに従ってＨＷ演算部１２０に処理を指示する。演算制御部１０３は、例えば、処理アルゴリズム、処理対象データのメモリ格納領域、および処理対象データサイズなどをパラメータとして受け取る。
【００４４】
ネットワーク処理部１０４は、アプリケーションやシステムの処理を実行する主たる部分であり、演算制御部１０３を用いて、処理の一部、またはすべてをＨＷ演算部１２０に実行させるものである。第１の実施の形態は通信処理の例であるため、ネットワーク処理部１０４は、通信装置１００と外部装置との間でデータの送受信を行うための各種処理を行う。例えば、ネットワーク処理部１０４は、ネットワークインタフェース１３０から受信したデータ（パケット）のヘッダ部分の解析や通信プロトコル処理、ネットワークインタフェース１３０、１３１から送信するためのデータ（パケット）のヘッダ部分の作成や通信プロトコル処理を行う。
【００４５】
なお、通信装置１００は、ＰＵ１０５、メモリ１１０、およびＨＷ演算部１２０のいずれか２つ以上をＳｙｓｔｅｍ  ｏｎ  ｃｈｉｐ（ＳｏＣ）などの半導体デバイスに搭載するように構成してもよい。
【００４６】
次に、このように構成された第１の実施の形態にかかる通信装置１００による各種処理のフローについて説明する。通信装置１００による処理は、事前に実行されるデータサイズ閾値算出処理と、メインのデータ処理である通信処理とに分けられる。通信処理とは、他の装置である通信装置２００との間でＩＰネットワーク３００を介してデータを送受信する処理を意味する。
【００４７】
最初に、データサイズ閾値算出処理について図７を用いて説明する。図７は、第１の実施の形態におけるデータサイズ閾値算出処理の全体の流れを示すフローチャートである。
【００４８】
まず、データサイズ閾値算出部１０１は、現在の時刻をメモリ１１０などに記録する（ステップＳ７０１）。なお、説明の便宜上、本ステップで記録された時刻を、同期方式の場合は時刻Ｔｓｙｎｃ１、非同期方式の場合は時刻Ｔａｓｙｎｃ１という。
【００４９】
次に、データサイズ閾値算出部１０１は、演算制御部１０３に対してテストを指示する（ステップＳ７０２）。このとき、データサイズ閾値算出部１０１は、図３および図４のようなテストシートのうちいずれかによるテストの実行を指示する。
【００５０】
次に、指示を受けた演算制御部１０３は、テストシートの演算方式が同期か非同期かを判断する（ステップＳ７０３）。例えば、図３のテストシートのＮｏ．＝Ｃ１０１の実行が指示された場合は、演算制御部１０３は、演算方式が「同期」であると判断する。また、例えば、図３のテストシートのＮｏ．＝Ｃ１０２の実行が指示された場合は、演算制御部１０３は、演算方式が「非同期」であると判断する。
【００５１】
演算方式が同期の場合は（ステップＳ７０３：ＹＥＳ）、演算制御部１０３は、テストシートの処理内容による演算を開始するようにＨＷ演算部１２０を操作する（ステップＳ７０８）。そして、演算制御部１０３は、ＨＷ演算部１２０による処理が終了するまで待つ（ステップＳ７０９）。
【００５２】
ＨＷ演算部１２０から演算処理の終了通知を受けると、演算制御部１０３は、データサイズ閾値算出部１０１に対して同期方式による処理の終了を通知し（ステップＳ７１０）、処理を終了する。
【００５３】
ステップＳ７０３で、演算方式が非同期であると判断した場合は（ステップＳ７０３：ＮＯ）、演算制御部１０３は、処理状態を保存などの非同期化の前処理を実行する（ステップＳ７１１）。次に、演算制御部１０３は、テストシートの処理内容による演算を開始するようにＨＷ演算部１２０を操作する（ステップＳ７１２）。非同期方式であるため、演算制御部１０３は非同期方式によるＨＷ演算処理を開始したことをデータサイズ閾値算出部１０１に通知して処理を終了する（ステップＳ７１３）。
【００５４】
この後、ＨＷ演算部１２０から演算処理の終了通知を受けると、演算制御部１０３は、データサイズ閾値算出部１０１に対して非同期方式によるＨＷ演算処理の終了を通知する（ステップＳ７１４）。次に、演算制御部１０３は、保存した処理状態を呼び出しなどの非同期化の後処理を実行する（ステップＳ７１５）。後処理が完了すると、演算制御部１０３は、データサイズ閾値算出部１０１に対して非同期方式による処理の終了を通知し（ステップＳ７１６）、処理を終了する。
【００５５】
ステップＳ７０８またはステップＳ７１２で、演算制御部１０３から演算開始の操作を受けたＨＷ演算部１２０は、指示された処理内容の演算処理を実行する（ステップＳ７１７）。例えば、図３のテストシートのＮｏ．＝Ｃ１０１またはＣ１０２の実行が指示された場合、ＨＷ演算部１２０は、アルゴリズムがＡＥＳのＣＢＣモードの暗号化を、メモリ１１０上のアドレスＡ０１から６４ｂｙｔｅ分のデータに対して行い、処理結果のデータをメモリ１１０上のアドレスＡ０２から６４ｂｙｔｅ分の領域に書き込む。
【００５６】
演算処理が終了した場合は、ＨＷ演算部１２０は、演算制御部１０３に演算処理の終了を通知し（ステップＳ７１８）、処理を終了する。
【００５７】
ステップＳ７０２でテストを指示した後、データサイズ閾値算出部１０１は、指示したテストの演算方式が同期か非同期かを判断する（ステップＳ７０４）。非同期の場合は（ステップＳ７０４：ＮＯ）、データサイズ閾値算出部１０１は、演算制御部１０３からＨＷ演算処理の開始通知を受けた時点の時刻Ｔａｓｙｎｃ２を記録する（ステップＳ７０５）。さらに、データサイズ閾値算出部１０１は、演算制御部１０３からＨＷ演算処理の終了通知を受けた時点の時刻Ｔａｓｙｎｃ３を記録する（ステップＳ７０６）。
【００５８】
時刻Ｔａｓｙｎｃ３を記録後、または、ステップＳ７０４で、演算方式が同期であると判断した場合は（ステップＳ７０４：ＹＥＳ）、データサイズ閾値算出部１０１は、演算制御部１０３から処理の終了通知を受けた時点の時刻を記録する（ステップＳ７１９）。なお、説明の便宜上、本ステップで記録された時刻を、同期方式の場合は時刻Ｔｓｙｎｃ２、非同期方式の場合は時刻Ｔａｓｙｎｃ４という。
【００５９】
次に、データサイズ閾値算出部１０１は、テストシートのすべてのデータを処理したか否かを判断し（ステップＳ７２０）、すべてのデータを処理していない場合は（ステップＳ７２０：ＮＯ）、次にデータに対して処理を繰り返す（ステップＳ７０１）。
【００６０】
このようにして、データサイズ閾値算出部１０１は、データサイズの異なるデータごとに各演算方式による演算処理の処理時間を求めるための時刻を記録することができる。なお、各時刻は、テストシートの「Ｎｏ．」それぞれに対応づけられて記録される。
【００６１】
すべてのデータを処理した場合は（ステップＳ７２０：ＹＥＳ）、データサイズ閾値算出部１０１は、記録した各時刻を元にデータサイズ閾値を算出する（ステップＳ７２１）。
【００６２】
ここで、時刻からデータサイズ閾値を求める手順の詳細について説明する。まず、データサイズ閾値算出部１０１は、記録した時刻から、演算方式ごとの処理時間を算出する。データサイズ閾値算出部１０１は、同期方式の処理時間Ｔｓｙｎｃ、および非同期方式の処理時間Ｔａｓｙｎｃを、それぞれ以下の（１）式および（２）式によって算出する。
Ｔｓｙｎｃ＝Ｔｓｙｎｃ２−Ｔｓｙｎｃ１・・・（１）
Ｔａｓｙｎｃ＝（Ｔａｓｙｎｃ２−Ｔａｓｙｎｃ１）＋（Ｔａｓｙｎｃ４−Ｔａｓｙｎｃ３）・・・（２）
【００６３】
上述の図５は、このようにして算出された演算方式ごとの処理時間の一例を示している。この例では、５１２ｂｙｔｅから７６８ｂｙｔｅの間で、ＴｓｙｎｃとＴａｓｙｎｃの値の大小関係が入れ替わっている。データサイズ閾値算出部１０１は、このように大小関係の入れ替わるデータサイズを、処理内容に関するデータサイズ閾値として求める。なお、以下ではこのようにして求めたデータサイズ閾値を、ＳＩＺＥ（処理内容）と表す。例えば、処理内容＝「ＡＥＳ−ＣＢＣ（暗号化）」に対して求めた閾値が７００ｂｙｔｅであった場合は、データサイズ閾値を、ＳＩＺＥ（ＡＥＳ−ＣＢＣ（暗号化））＝７００［ｂｙｔｅ］と表す。
【００６４】
データサイズ閾値算出部１０１は、離散的に取得したＴｓｙｎｃおよびＴａｓｙｎｃそれぞれの系列に対して最小二乗法等で関数フィッティングを行い、その関数の交点のデータサイズをデータサイズ閾値として算出する。
【００６５】
なお、データサイズ閾値の算出方法はこれに限られるものではなく、離散的に取得した値のなかでＴａｓｙｎｃとＴｓｙｎｃの差が最小となるデータサイズをデータサイズ閾値とする方法、交点となるデータサイズの両端のデータでＴａｓｙｎｃとＴｓｙｎｃの差から重み付けした値を使用して閾値を決定する方法など、あらゆる方法を適用できる。
【００６６】
データサイズ閾値算出部１０１は、以上述べた方法により、ＨＷ演算部１２０が処理可能な処理内容のうち全部または一部についてデータサイズ閾値算出処理を実行し、データサイズ閾値であるＳＩＺＥ（処理内容）の値を処理内容ごとに決定する。算出された値（ＳＩＺＥ（処理内容））は演算方式決定部１０２と共有できるようにメモリ１１０等に保存される。データサイズ閾値算出部１０１が算出したデータサイズ閾値を演算方式決定部１０２に通知し、演算方式決定部１０２内に保存するように構成してもよい。
【００６７】
このように、本実施の形態では、演算方式を選択するための判断基準となるデータサイズ閾値を、事前に算出して保存することができる。これにより、ハードウェア構成が異なる場合であっても、構成に応じた最適なデータサイズ閾値を求めることができる。
【００６８】
なお、図５では、データサイズが小さいときに同期処理の処理時間が小さくなる例について説明したが、データサイズが小さいときに非同期処理の処理時間が小さくなる場合についても同様の手法でデータサイズ閾値を算出できる。この場合は、データサイズ閾値より小さい場合に、非同期方式が演算方式として決定される。
【００６９】
次に、通信処理について図８を用いて説明する。図８は、第１の実施の形態における通信処理の全体の流れを示すフローチャートである。
【００７０】
ここでは通信処理の一例として、通信装置１００が受信したパケットのペイロードに対して、ＩＰｓｅｃプロトコル処理としてＡＥＳ−ＣＢＣ（暗号化）処理を施す場合の処理について説明する。
【００７１】
なお、通信装置１００と通信装置２００との間では、ＩＰｓｅｃプロトコルに基づくＳＡ（Security Association）およびＳＰ（Security Policy）が既に設定されているものとする。
【００７２】
まず、通信装置１００のネットワークインタフェース１３１は、端末装置４００から通信装置１００に送信されたＩＰパケットを受信し、パケットを受信したことをネットワーク処理部１０４に伝える。ネットワーク処理部１０４は、受信したパケットのヘッダの解析やＩＰｓｅｃプロトコル処理などのネットワーク処理を行う（ステップＳ８０１）。
【００７３】
次に、ネットワーク処理部１０４は、演算制御部１０３に対して、ＨＷ演算処理に関する指示を行う（ステップＳ８０２）。この例では、ネットワーク処理部１０４は、受信したパケットのペイロードのＡＥＳ−ＣＢＣによる暗号化処理を、ＨＷ演算部１２０で実行することを指示する。
【００７４】
この指示を受けた演算制御部１０３は、演算方式決定部１０２を呼び出す（ステップＳ８０３）。演算方式決定部１０２は、処理対象となるデータ（受信パケットのペイロード）のデータサイズと、データサイズ閾値であるＳＩＺＥ（ＡＥＳ−ＣＢＣ（暗号化））と比較して演算方式を決定する（ステップＳ８０４）。本実施の形態では、演算方式決定部１０２は、処理対象のデータサイズがＳＩＺＥ（ＡＥＳ−ＣＢＣ（暗号化））を超えていた場合に非同期方式、下回っていたら同期方式を演算方式として決定する。
【００７５】
例えば、ＳＩＺＥ（ＡＥＳ−ＣＢＣ（暗号化））＝７００［ｂｙｔｅ］であり、処理対象データサイズ＝５１２ｂｙｔｅである場合は、ＳＩＺＥ（ＡＥＳ−ＣＢＣ（暗号化））に比べて処理対象データサイズが小さいため、演算方式決定部１０２は同期方式を演算方式として決定する。
【００７６】
また、例えば、ＳＩＺＥ（ＡＥＳ−ＣＢＣ（暗号化））＝７００［ｂｙｔｅ］であり、処理対象データサイズ＝１０２４ｂｙｔｅである場合は、ＳＩＺＥ（ＡＥＳ−ＣＢＣ（暗号化））に比べて処理対象データサイズが大きいため、演算方式決定部１０２は非同期方式を演算方式として決定する。
【００７７】
演算方式決定部１０２は、データサイズとＳＩＺＥ（処理内容）とが一致していた場合は、非同期方式または同期方式のいずれか予め定められた演算方式に決定する。なお、演算方式決定部１０２は、このような場合に、同期方式と非同期方式とを交互に採用するなどの動的なルールに従って演算方式を決定するように構成してもよい。
【００７８】
演算方式決定部１０２は、決定した演算方式を演算制御部１０３に通知する（ステップＳ８０５）。通知を受けた演算制御部１０３は、決定された演算方式が同期方式であるか非同期方式であるかを判断する（ステップＳ８０６）。
【００７９】
同期方式の場合は（ステップＳ８０６：ＹＥＳ）、演算制御部１０３は、ＨＷ演算部１２０に対して処理内容を指示して暗号化処理を開始させる（ステップＳ８０７）。その後、演算制御部１０３は、ＨＷ演算部１２０による処理が終了するまで待つ（ステップＳ８０８）。
【００８０】
ＨＷ演算部１２０から演算処理の終了通知を受けると、演算制御部１０３は、ネットワーク処理部１０４に対して同期方式による処理の終了を通知し（ステップＳ８０９）、処理を終了する。
【００８１】
一方、ステップＳ８０６で演算方式が非同期方式であると判断した場合は（ステップＳ８０６：ＮＯ）、演算制御部１０３は、処理状態を保存などの非同期化の前処理を実行する（ステップＳ８１０）。次に、演算制御部１０３は、指示された処理内容による演算を開始するようにＨＷ演算部１２０を操作する（ステップＳ８１１）。非同期方式であるため、演算制御部１０３は非同期方式によるＨＷ演算処理を開始したことをネットワーク処理部１０４に通知して処理を終了する（ステップＳ８１２）。
【００８２】
この後、ＨＷ演算部１２０から演算処理の終了通知を受けると、演算制御部１０３は、保存した処理状態を呼び出しなどの非同期化の後処理を実行する（ステップＳ８１３）。後処理が完了すると、演算制御部１０３は、ネットワーク処理部１０４に対して非同期方式による処理の終了を通知し（ステップＳ８１４）、処理を終了する。
【００８３】
ステップＳ８０７またはステップＳ８１１で、演算制御部１０３から演算開始の操作を受けたＨＷ演算部１２０は、指示された処理内容の演算処理を実行する（ステップＳ８１５）。例えば、ＨＷ演算部１２０は、受け取ったデータアドレスのデータ（パケットのペイロード）に対して、アルゴリズムがＡＥＳのＣＢＣモードの暗号化処理を実行する。
【００８４】
演算処理が終了した場合は、ＨＷ演算部１２０は、演算制御部１０３に演算処理の終了を通知し（ステップＳ８１６）、処理を終了する。
【００８５】
演算制御部１０３に対して演算を指示した後、ネットワーク処理部１０４は、非同期方式によるＨＷ演算処理の開始通知を演算制御部１０３から受け取ったか否かを判断する（ステップＳ８１７）。
【００８６】
非同期方式によるＨＷ演算処理の開始通知を受け取った場合は（ステップＳ８１７：ＹＥＳ）、ネットワーク処理部１０４は処理を終了する。通知を受け取っていない場合は（ステップＳ８１７：ＮＯ）、同期方式により演算が行われていると判断できるため、ネットワーク処理部１０４は、同期処理による演算の終了通知を受けるために処理を続行する。
【００８７】
ステップＳ８０９またはステップＳ８１４で演算制御部１０３から送信された演算処理の終了通知を受けた後、ネットワーク処理部１０４は、暗号化処理後に必要なＩＰｓｅｃプロトコルまたはＩＰプロトコル処理などのネットワーク処理を実行する（ステップＳ８１８）。そして、ネットワーク処理部１０４は、ネットワークインタフェース１３１にパケットの送信を指示する（ステップＳ８１９）。
【００８８】
このように、本実施の形態の方法によれば、処理対象データサイズとデータサイズ閾値とを比較することで、同期方式および非同期方式のうち、いずれか適切な演算方式を選択してデータ処理を行うことができる。
【００８９】
なお、ここでは通信装置１００がエンコード（暗号化）処理を行う場合の処理フローを示したが、デコード（復号）処理を行う場合も同一の構成で同様の処理フローによって実現可能である。また、ここでは通信装置１００のネットワーク処理部１０４が暗号化を含むネットワーク処理を行う場合の例を示したが、ネットワーク処理部１０４がＨＷ演算部１２０を使って暗号化以外の演算処理（例えばデータ圧縮・伸張処理）を行う場合も同様の構成および処理フローで実現可能である。
【００９０】
（変形例１）
上述のデータサイズ閾値算出処理では、データサイズ閾値算出部１０１が時刻の記録を行っていた。すなわち、同期方式を選択したときは、データサイズ閾値算出部１０１が演算制御部１０３に対してテスト指示を行ってから演算制御部１０３の処理終了までの処理時間を、データサイズ閾値算出部１０１が計測して記録している。また、非同期方式を選択したときは、データサイズ閾値算出部１０１が演算制御部１０３に対してテスト指示を行ってから演算制御部１０３がＨＷ演算開始を通知するまでの処理時間、および、演算制御部１０３がＨＷ演算部１２０から処理終了通知を受け取ってから演算制御部１０３の処理終了までの処理時間を、データサイズ閾値算出部１０１が計測して記録している。
【００９１】
このような構成の場合、データサイズ閾値算出部１０１が時刻計測を行うため、演算制御部１０３が時刻計測を行う機能を搭載しておく必要がないという利点がある。
【００９２】
これに対し、演算制御部１０３が時刻を記録し、記録した情報をデータサイズ閾値算出部１０１に渡してデータサイズ閾値算出処理を実行するように構成してもよい。図９は、このように構成された第１の実施の形態の変形例１におけるデータサイズ閾値算出処理の全体の流れを示すフローチャートである。
【００９３】
図９に示すように、本変形例１では、第１の実施の形態のデータサイズ閾値算出処理を表す図７と比較して、時刻を記録する構成部が変更されている。具体的には、図７のステップＳ７０１の時刻記録処理が、図９のステップＳ９０４（Ｔｓｙｎｃ１を記録）、およびステップＳ９０８（Ｔａｓｙｎｃ１を記録）に変更されている。また、図７のステップＳ７０５およびステップＳ７０７の時刻記録処理が、それぞれ図９のＳ９１０（Ｔａｓｙｎｃ２を記録）およびステップＳ９１２（Ｔａｓｙｎｃ３を記録）に変更されている。さらに、図７のステップＳ７１９の時刻記録処理が、図９のステップＳ９０６（Ｔｓｙｎｃ２を記録）、およびステップＳ９１４（Ｔａｓｙｎｃ４を記録）に変更されている
【００９４】
また、上記変更に伴い、演算制御部１０３からデータサイズ閾値算出部１０１への処理開始および終了の通知処理（ステップＳ７１３、ステップＳ７１４）が削除されている。また、データサイズ閾値算出部１０１による演算方式判定処理（ステップＳ７０４）も削除されている。そして、データサイズ閾値算出部１０１が、演算制御部１０３が記録した時刻情報の通知を受けて保存する処理（ステップＳ９１８）が追加されている。
【００９５】
このように、図９の処理フローでは、同期方式を選択したときは、ＨＷ演算部１２０の処理を待つ時間（ステップＳ９０５）に相当する処理時間を、演算制御部１０３が計測して記録している。また、非同期方式を選択したときは、非同期化前処理（ステップＳ９０９）および非同期化後処理（ステップＳ９１３）の処理時間を、演算制御部１０３が計測して記録している。
【００９６】
このような構成の場合、同期方式と非同期方式で共通の処理に関する時間を計測せず、同期方式と非同期方式での処理内容の差分についてのみ計測することができる。このため、処理時間の計測誤差が生じにくいという利点がある。
【００９７】
（変形例２）
上述のデータサイズ閾値算出処理では、処理フローの中で直接処理時間を計測していた。これに対し、プロファイリングという手法を使って処理時間を推定する方法でデータサイズ閾値を算出するように構成してもよい。
【００９８】
プロファイリングとは、ＰＵ１０５上で実行されているプロセスを一定時間間隔で記録（以下、サンプリングという）することで、各プロセスの実行時間を推定する手法である。Ｌｉｎｕｘ（登録商標）に実装されているＯＰｒｏｆｉｌｅが代表的な実装例である。サンプリングによって得られたプロセス毎のサンプル数の比率が、ＰＵ１０５上で実行されているプロセスの実行時間の比率を表している。このため、プロセス毎のサンプル数の大小を比較することによりプロセス毎の実行時間の比率を比較することができる。
【００９９】
プロファイリング手法を用いて閾値を求める場合は、図７のようなデータサイズ閾値算出処理から時刻計測に関する処理を除いた処理についてプロファイリングを行い、同期方式と非同期方式でサンプル数を図５のように比較することで閾値を決定すればよい。
【０１００】
このような構成により、データサイズ閾値算出部１０１および演算制御部１０３に時刻を計測する機能を備える必要がなく、実装が比較的容易になるという利点がある。
【０１０１】
（変形例３）
上述の実施の形態では、データサイズ閾値算出部１０１がデータサイズ閾値算出処理を実行してデータサイズ閾値を算出し、メモリ１１０等に保存していた。これに対し、データサイズ閾値算出処理を行わずに、事前に外部装置等で求められたデータサイズ閾値をメモリ１１０等に保存するように構成してもよい。この場合は、データサイズ閾値算出部１０１が不要となる。なお、データサイズ閾値を任意の値に変更できるように構成してもよい。
【０１０２】
このように、第１の実施の形態にかかる情報処理装置では、ハードウェアにより演算処理を実行するときに、処理対象となるデータのデータサイズに応じて、ＰＵに対する負荷が常に小さくなるように、同期方式と非同期方式のうちいずれか適切な方式を採用して処理を行うことができる。これにより、演算処理負荷の増加を回避することができる。
【０１０３】
（第２の実施の形態）
第２の実施の形態にかかる情報処理装置は、ハードウェアにより実行される特定の演算処理をソフトウェアによっても実行可能とし、データサイズに応じて、ソフトウェア方式、ハードウェア同期方式、およびハードウェア非同期方式のいずれかの方式によって演算処理を実行するものである。
【０１０４】
なお、第２の実施の形態にかかる通信システムのネットワーク構成は、第１の実施の形態のネットワーク構成を示す図１と同様であるため、その説明を省略する。図１０は、第２の実施の形態にかかる通信装置１０００の構成を示すブロック図である。図１０に示すように、通信装置１０００は、主なハードウェア構成として、ＰＵ１００５と、ＨＷ演算部１２０と、メモリ１１０と、ネットワークインタフェース１３０と、ネットワークインタフェース１３１と、を備えている。
【０１０５】
また、同図に示すように、ＰＵ１００５は、データサイズ閾値算出部１００１と、演算方式決定部１００２と、演算制御部１００３と、ネットワーク処理部１０４と、ＳＷ演算部１００６と、を備えている。
【０１０６】
第２の実施の形態では、データサイズ閾値算出部１００１、演算方式決定部１００２、および演算制御部１００３の機能と、ＳＷ演算部１００６を追加したこととが第１の実施の形態と異なっている。その他の構成および機能は、第１の実施の形態にかかる通信装置１００の構成を表すブロック図である図１と同様であるので、同一符号を付し、ここでの説明は省略する。
【０１０７】
ＳＷ演算部１００６は、ＨＷ演算部１２０が実行する暗号化・復号、データ圧縮・伸張などの特定の演算をＰＵ１００５で動作するソフトウェアとして実行するものである。
【０１０８】
データサイズ閾値算出部１００１は、ＨＷ演算部１２０で実行される同期方式および非同期方式（以下、それぞれＨＷ同期方式およびＨＷ非同期方式という）に、ＳＷ演算部１００６で演算を実行するＳＷ演算方式を加えた３つの演算方式のうち、いずれの演算方式を選択するかを判断する際の判断基準であるデータサイズ閾値を算出する。
【０１０９】
図１１および図１２は、第２の実施の形態のデータサイズ閾値算出処理で用いられるテストシート例を示す説明図である。図１１および図１２に示すように、第２の実施の形態では、演算方式として「ＳＷ」が追加されている。演算方式に「ＳＷ」が指定されている場合は、後述する演算制御部１００３は、演算処理をＳＷ演算部１００６で実行するように制御する。
【０１１０】
図１３は、第２の実施の形態のデータサイズ閾値算出部１００１が計測したデータサイズと処理時間との関係を示すグラフである。図１３に示すように、第２の実施の形態では、追加された演算方式であるＳＷ演算方式についても処理時間が計測される。
【０１１１】
データサイズ閾値算出部１００１は、図１３のように求められた各演算方式の処理時間を結んだ線の交点に対応するデータサイズを、データサイズ閾値として決定する。図１３の例では、データサイズ閾値算出部１００１は、交点１３０１に対応するデータサイズを、ＳＷ演算方式と、その他のＨＷ演算部１２０による演算方式（ＨＷ同期方式、ＨＷ非同期方式）とを切り分ける閾値として算出する。また、データサイズ閾値算出部１００１は、交点１３０２に対応するデータサイズを、ＨＷ同期方式と、ＨＷ非同期方式とを切り分ける閾値として算出する。
【０１１２】
図１４は、第２の実施の形態における算出されたデータサイズ閾値の保存形式の一例を示す説明図である。図１４に示すように、第２の実施の形態では、切替内容が追加され、切替内容ごとにデータサイズ閾値が保存される。切替内容とは、いずれの演算方式を切り替える閾値であるかを指定する項目である。同図では、切替内容として、「ｓｗ−ｓｙｎｃ」および「ｓｙｎｃ−ａｓｙｎｃ」を指定した例が示されている。「ｓｗ−ｓｙｎｃ」は、ＳＷ演算方式とＨＷ同期方式とを切り替える閾値であること意味している。また、「ｓｙｎｃ−ａｓｙｎｃ」は、ＨＷ同期方式とＨＷ非同期方式とを切り替える閾値であること意味している。
【０１１３】
図１０に戻り、演算方式決定部１００２は、データサイズ閾値算出部１００１によって算出された判断基準（データサイズ閾値）と、演算制御部１００３から渡される処理対象データのデータサイズを比較することで、ＳＷ演算方式、ＨＷ同期方式、ＨＷ非同期方式のいずれかに演算方式を決定する。
【０１１４】
演算制御部１００３は、暗号化・復号、データ圧縮・伸張などの特定の演算処理を、ＨＷ演算部１２０またはＳＷ演算部１００６実行するように制御するものである。
【０１１５】
次に、第２の実施の形態におけるデータサイズ閾値算出処理について図１５を用いて説明する。図１５は、第２の実施の形態におけるデータサイズ閾値算出処理の全体の流れを示すフローチャートである。
【０１１６】
ステップＳ１５０１からステップＳ１５０２までの、時刻記録処理およびテスト指示処理は、第１の実施の形態にかかる通信装置１００におけるステップＳ７０１からステップＳ７０２までと同様の処理なので、その説明を省略する。
【０１１７】
なお、説明の便宜上、ステップＳ１５０１で記録された時刻を、ＳＷ演算方式の場合は時刻Ｔｓｗ１、同期方式の場合は時刻Ｔｓｙｎｃ１、非同期方式の場合は時刻Ｔａｓｙｎｃ１という。
【０１１８】
テストの指示を受けた演算制御部１００３は、テストシートの演算方式がＳＷ演算方式であるか否かを判断する（ステップＳ１５０３）。例えば、図１１のテストシートのＮｏ．＝Ｃ３０１の実行が指示された場合は、演算制御部１００３は、演算方式がＳＷ演算方式であると判断する。
【０１１９】
演算方式がＳＷ演算方式でない場合は（ステップＳ１５０３：ＮＯ）、演算制御部１００３は、さらに、演算方式がＨＷ同期方式かＨＷ非同期方式かを判断する（ステップＳ１５０４）。例えば、図１１のテストシートのＮｏ．＝Ｃ３０２の実行が指示された場合は、演算制御部１００３は、演算方式がＨＷ同期方式であると判断する。また、例えば、図１１のテストシートのＮｏ．＝Ｃ３０３の実行が指示された場合は、演算制御部１００３は、演算方式がＨＷ非同期方式であると判断する。
【０１２０】
ステップＳ１５１１からステップＳ１５２１までの、同期方式によるテスト処理、非同期方式によるテスト処理、およびＨＷ演算部１２０による演算処理は、第１の実施の形態にかかる通信装置１００におけるステップＳ７０８からステップＳ７１８までと同様の処理なので、その説明を省略する。
【０１２１】
ステップＳ１５０３で、演算方式がＳＷ演算方式であると判断した場合は（ステップＳ１５０３：ＹＥＳ）、演算制御部１００３は、テストシートの処理内容による演算を開始するようにＳＷ演算部１００６を操作する（ステップＳ１５２２）。
【０１２２】
ＳＷ演算部１００６は、指示された処理内容の演算処理を実行する（ステップＳ１５２４）。例えば、図１１のテストシートのＮｏ．＝Ｃ３０１の実行が指示された場合、ＳＷ演算部１００６は、アルゴリズムがＡＥＳのＣＢＣモードの暗号化を、メモリ１１０上のアドレスＡ０１から６４ｂｙｔｅ分のデータに対して行い、処理結果のデータをメモリ１１０上のアドレスＡ０２から６４ｂｙｔｅ分の領域に書き込む。
【０１２３】
演算処理が終了した場合は、ＳＷ演算部１００６は、演算制御部１００３に演算処理の終了を通知し（ステップＳ１５２５）、処理を終了する。
【０１２４】
ＳＷ演算部１００６から演算処理の終了通知を受けると、演算制御部１００３は、データサイズ閾値算出部１００１に対してＳＷ演算方式による処理の終了を通知し（ステップＳ１５２３）、処理を終了する。
【０１２５】
ステップＳ１５０２でテストを指示した後、データサイズ閾値算出部１００１は、指示したテストの演算方式がＳＷ演算方式であるか否かを判断する（ステップＳ１５０５）。ＳＷ演算方式でない場合は（ステップＳ１５０５：ＮＯ）、データサイズ閾値算出部１００１は、さらに演算方式がＨＷ同期方式か否かを判断する（ステップＳ１５０６）。
【０１２６】
演算方式がＨＷ同期方式でない場合、すなわちＨＷ非同期方式の場合は（ステップＳ１５０６：ＮＯ）、データサイズ閾値算出部１００１は、演算制御部１００３からＨＷ演算処理の開始通知を受けた時点の時刻Ｔａｓｙｎｃ２を記録する（ステップＳ１５０７）。さらに、データサイズ閾値算出部１００１は、演算制御部１００３からＨＷ演算処理の終了通知を受けた時点の時刻Ｔａｓｙｎｃ３を記録する（ステップＳ１５１０）。
【０１２７】
時刻Ｔａｓｙｎｃ３を記録後、または、ステップＳ１５０５で演算方式がＳＷ演算方式であると判断した場合（ステップＳ１５０５：ＹＥＳ）、または、ステップＳ１５０６で演算方式がＨＷ同期方式であると判断した場合（ステップＳ１５０６：ＹＥＳ）、データサイズ閾値算出部１００１は、演算制御部１００３から処理の終了通知を受けた時点の時刻を記録する（ステップＳ１５２６）。なお、説明の便宜上、本ステップで記録された時刻を、ＳＷ演算方式の場合はＴｓｗ２、ＨＷ同期方式の場合は時刻Ｔｓｙｎｃ２、ＨＷ非同期方式の場合は時刻Ｔａｓｙｎｃ４という。
【０１２８】
ステップＳ１５２７の完了判定処理は、第１の実施の形態にかかる通信装置１００におけるステップＳ７２０と同様の処理なので、その説明を省略する。
【０１２９】
すべてのデータを処理した場合は（ステップＳ１５２７：ＹＥＳ）、データサイズ閾値算出部１００１は、記録した各時刻を元にデータサイズ閾値を算出する（ステップＳ１５２８）。
【０１３０】
第２の実施の形態では、データサイズ閾値算出部１００１は、ＨＷ同期方式の処理時間ＴｓｙｎｃおよびＨＷ非同期方式の処理時間Ｔａｓｙｎｃを、それぞれ上述の（１）式および（２）式で算出する。また、データサイズ閾値算出部１００１は、ＳＷ演算方式の処理時間Ｔｓｗを、以下の（３）式によって算出する。
Ｔｓｗ＝Ｔｓｗ２−Ｔｓｗ１・・・（３）
【０１３１】
上述の図１３は、このようにして算出された演算方式ごとの処理時間の一例を示している。この例では、２５６ｂｙｔｅから５１２ｂｙｔｅの間で、ＴｓｗとＴｓｙｎｃの値の大小関係が入れ替わっている。データサイズ閾値算出部１００１は、このように大小関係の入れ替わるデータサイズを、ＳＷ演算方式とＨＷ同期方式の処理内容に関するデータサイズの閾値とし、ＳＩＺＥsw-sync（処理内容）と表す。
【０１３２】
例えば、処理内容＝「ＡＥＳ−ＣＢＣ（暗号化）」に対して求めた閾値が３００ｂｙｔｅであった場合は、データサイズ閾値を、ＳＩＺＥsw-sync（ＡＥＳ−ＣＢＣ（暗号化））＝３００［ｂｙｔｅ］と表す。同様にＴｓｙｎｃとＴａｓｙｎｃの関係からＨＷ同期方式とＨＷ非同期方式の処理内容に関するデータサイズの閾値を表すＳＩＺＥsync-async（ＡＥＳ−ＣＢＣ（暗号化））を求めることができる。
【０１３３】
図１４は、算出されたデータサイズ閾値の例を表している。同図は、ＳＩＺＥsw-sync（ＡＥＳ−ＣＢＣ（暗号化））＝３００［ｂｙｔｅ］、ＳＩＺＥsync-async（暗号化））＝７００［ｂｙｔｅ］、ＳＩＺＥsw-sync（ＤＥＳ−ＣＢＣ（暗号化））＝４００［ｂｙｔｅ］、およびＳＩＺＥsync-async（ＤＥＳ−ＣＢＣ（暗号化））＝９００［ｂｙｔｅ］であった場合の例を示している。
【０１３４】
なお、第２の実施の形態でも、第１の実施の形態の変形例１および変形例２と同様の方法でデータサイズ閾値を算出するように構成することができる。
【０１３５】
次に、第２の実施の形態における通信処理について図１６を用いて説明する。図１６は、第２の実施の形態における通信処理の全体の流れを示すフローチャートである。
【０１３６】
ここでは通信処理の一例として、通信装置１０００が受信したパケットのペイロードに対して、ＩＰｓｅｃプロトコル処理としてＡＥＳ−ＣＢＣ（暗号化）処理を施す場合の処理について説明する。また、この例では、データサイズ閾値が、ＳＩＺＥsw-sync（ＡＥＳ−ＣＢＣ（暗号化））＝３００［ｂｙｔｅ］、ＳＩＺＥsync-async（ＡＥＳ−ＣＢＣ（暗号化））＝８００［ｂｙｔｅ］であることを前提とする。
【０１３７】
ステップＳ１６０１からステップＳ１６０３までの、ネットワーク処理および演算指示処理は、第１の実施の形態にかかる通信装置１００におけるステップＳ８０１からステップＳ８０３までと同様の処理なので、その説明を省略する。
【０１３８】
ステップＳ１６０３で演算制御部１００３に呼び出された演算方式決定部１００２は、処理対象となるデータ（受信パケットのペイロード）のデータサイズと、データサイズ閾値であるＳＩＺＥsw-sync（ＡＥＳ−ＣＢＣ（暗号化））およびＳＩＺＥsync-async（ＡＥＳ−ＣＢＣ（暗号化））とを比較して演算方式を決定する（ステップＳ１６０４）。
【０１３９】
本実施の形態では、演算方式決定部１００２は、処理対象のデータサイズがＳＩＺＥsw-sync（ＡＥＳ−ＣＢＣ（暗号化））下回っていた場合にＳＷ演算方式を演算方式として決定する。また、演算方式決定部１００２は、データサイズがＳＩＺＥsw-sync（ＡＥＳ−ＣＢＣ（暗号化））を上回りＳＩＺＥsync-async（ＡＥＳ−ＣＢＣ（暗号化））を下回っていた場合にＨＷ同期方式を演算方式として決定する。さらに、演算方式決定部１００２は、データサイズがＳＩＺＥsync-async（ＡＥＳ−ＣＢＣ（暗号化））を上回っていた場合にＨＷ非同期方式を演算方式として決定する。
【０１４０】
例えば、処理対象データサイズ＝２５６ｂｙｔｅである場合は、ＳＩＺＥsw-sync（ＡＥＳ−ＣＢＣ（暗号化））＝３００に比べて処理対象データサイズが小さいため、演算方式決定部１００２はＳＷ演算方式を演算方式として決定する。また、処理対象データサイズ＝５１２ｂｙｔｅである場合は、ＳＩＺＥsw-sync（ＡＥＳ−ＣＢＣ（暗号化））＝３００ｂｙｔｅを上回り、ＳＩＺＥsync-async（ＡＥＳ−ＣＢＣ（暗号化））＝８００ｂｙｔｅを下回るため、演算方式決定部１００２はＨＷ同期方式を演算方式として決定する。さらに、処理対象データサイズ＝１０２４である場合は、ＳＩＺＥsync-async（ＡＥＳ−ＣＢＣ（暗号化））＝８００ｂｙｔｅを上回るため、演算方式決定部１００２はＨＷ非同期方式を演算方式として決定する。
【０１４１】
演算方式決定部１００２は、決定した演算方式を演算制御部１００３に通知する（ステップＳ１６０５）。通知を受けた演算制御部１００３は、決定された演算方式がＳＷ演算方式であるか否かを判断する（ステップＳ１６０６）。
【０１４２】
演算方式がＳＷ演算方式の場合は（ステップＳ１６０６：ＹＥＳ）、演算制御部１００３は、ＳＷ演算部１００６に対して処理内容を指示して暗号化処理を開始させる（ステップＳ１６０８）。
【０１４３】
ＳＷ演算部１００６は、指示された処理内容の演算処理を実行する（ステップＳ１６０９）。例えば、ＳＷ演算部１００６は、受け取ったデータアドレスのデータ（パケットのペイロード）に対して、アルゴリズムがＡＥＳのＣＢＣモードの暗号化処理を実行する。演算処理が終了した場合は、ＳＷ演算部１００６は、演算制御部１００３に演算処理の終了を通知し（ステップＳ１６１０）、処理を終了する。
【０１４４】
ＳＷ演算部１００６から演算処理の終了通知を受けると、演算制御部１００３は、ネットワーク処理部１０４に対してＳＷ演算方式による処理の終了を通知し（ステップＳ１６１１）、処理を終了する。
【０１４５】
ステップＳ１６０６で、演算方式がＳＷ演算方式でないと判断した場合は（ステップＳ１６０６：ＮＯ）、演算制御部１００３は、さらに、演算方式がＨＷ同期方式かＨＷ非同期方式かを判断する（ステップＳ１６０７）。
【０１４６】
ステップＳ１６１２からステップＳ１６２４までの、同期方式によるＨＷ演算処理、非同期方式によるＨＷ演算処理、ネットワーク処理、およびパケット送信処理は、第１の実施の形態にかかる通信装置１００におけるステップＳ８０７からステップＳ８１９までと同様の処理なので、その説明を省略する。
【０１４７】
このように、第２の実施の形態にかかる情報処理装置では、データサイズに応じて、ソフトウェア方式、ハードウェア同期方式、およびハードウェア非同期方式のいずれかの方式によって演算処理を実行することができる。これにより、より適切な演算方式を採用して演算処理負荷の増加を回避することができる。なお、第２の実施の形態についても、第１の実施の形態の変形例１〜変形例３と同様の方法で変形した構成を実現することができる。
【０１４８】
（第３の実施の形態）
第３の実施の形態にかかる情報処理装置は、ハードウェアにより暗号化処理を実行するときに、暗号化処理を要求した処理がリアルタイム処理か否かによって、同期方式および非同期方式のいずれかの方式を採用して処理を行うものである。
【０１４９】
図１７は、第３の実施の形態にかかる通信装置１７００を含む通信システムのネットワーク構成図である。図１７に示すように、第３の実施の形態の通信システムは、通信装置１７００と、通信相手である通信装置１７２０とが、ＩＰネットワーク３００で接続された構成となっている。また、通信装置１７００および通信装置１７２０は、それぞれサブネット１７３１および１７３２に接続されている。
【０１５０】
サブネット１７３１には、ＶｏＩＰ（Voice over Internet Protocol）端末装置１７４０と、ＳＩＰ（Session Initiation Protocol）プロキシ１７６０とが接続されている。また、サブネット１７３２には、ＶｏＩＰ端末装置１７５０が接続されている。
【０１５１】
ＶｏＩＰ端末装置１７４０は、ＶｏＩＰの呼設定にＳＩＰを用いる通信端末装置である。本実施の形態では、ＶｏＩＰ端末装置１７４０は、ホスト名が「ｐｈｏｎｅ１．ｅｘａｍｐｌｅ．ｃｏｍ」、ＩＰアドレスが「１９２．１６８．１０１．１」に設定されているものとする。
【０１５２】
ＶｏＩＰ端末装置１７５０は、ＶｏＩＰ端末装置１７４０と同様に、ＶｏＩＰの呼設定にＳＩＰを用いる通信端末装置であり、ホスト名が「ｐｈｏｎｅ２．ｅｘａｍｐｌｅ．ｃｏｍ」、ＩＰアドレスが「１９２．１６８．１０１．２」に設定されているものとする。
【０１５３】
ＳＩＰプロキシ１７６０は、ＶｏＩＰ端末装置１７４０およびＶｏＩＰ端末装置１７５０の呼設定を仲介する装置である。なお、通信装置１７００によるリアルタイム通信に関する情報を検出する処理（後述）の精度に影響がないため、ＳＩＰプロキシ１７６０をサブネット１７３２に設置するように構成してもよい。また、ＳＩＰプロキシをサブネット１７３１とサブネット１７３２の両方に設置するように構成してもよい。
【０１５４】
通信装置１７００は、ＩＰｓｅｃプロトコルに関するパケット処理やデータ処理を行う装置であり、暗号化処理等をハードウェアにより実行する機能を備えている。同図に示すように、通信装置１７００は、ＩＰネットワーク３００およびサブネット１７３１内の各装置に対して、それぞれネットワークインタフェース１３０およびネットワークインタフェース１３１を介して接続する。
【０１５５】
通信装置１７２０は、通信装置１７００とＩＰｓｅｃプロトコルによって通信を行う装置である。通信装置１７００および通信装置１７２０の間でＩＰｓｅｃ通信を行うことで、サブネット１７３１とサブネット１７３２とをＩＰｓｅｃによる暗号化された通信路で接続させることができる。
【０１５６】
次に、通信装置１７００の詳細な構成について図１８を用いて説明する。図１８は、第３の実施の形態にかかる通信装置１７００の構成を示すブロック図である。同図に示すように、通信装置１７００は、主なハードウェア構成として、ＰＵ１７０５と、ＨＷ演算部１２０と、メモリ１１０と、ネットワークインタフェース１３０と、ネットワークインタフェース１３１と、を備えている。
【０１５７】
また、同図に示すように、ＰＵ１７０５は、リアルタイム通信検出部１７０１と、演算方式決定部１７０２と、演算制御部１０３と、ネットワーク処理部１７０４と、を備えている。
【０１５８】
第３の実施の形態では、データサイズ閾値算出部１０１に代わりリアルタイム通信検出部１７０１を追加したこと、および、演算方式決定部１７０２とネットワーク処理部１７０４の機能が、第１の実施の形態と異なっている。その他の構成および機能は、第１の実施の形態にかかる通信装置１００の構成を表すブロック図である図１と同様であるので、同一符号を付し、ここでの説明は省略する。
【０１５９】
リアルタイム通信検出部１７０１は、演算方式決定部１７０２がＨＷ演算部１２０の処理で同期方式、非同期方式のいずれを選択するか判断する際の判断基準として、リアルタイム性が要求される通信（以下、リアルタイム通信という）を識別するための識別情報（以下、リアルタイム通信識別情報という）を検出するものである。
【０１６０】
リアルタイム通信検出部１７０１は、まず、通信装置１７００が実行する通信であって、暗号化・復号、データ圧縮・伸張のうちいずれかが必要な通信のうち、リアルタイム通信を検出する。リアルタイム通信の例としては、ＶｏＩＰで音声データを配送する通信が挙げられる。
【０１６１】
具体的には、リアルタイム通信検出部１７０１は、シグナリング（呼設定）通信などの予め定められたリアルタイム通信に関するメッセージを監視する。シグナリング通信を行うプロトコルとしては、ＳＩＰ（Session Initiation Protocol）やＨ．３２３、ＭＧＣＰ（Media Gateway Control Protocol）、ＭＥＧＡＣＯ（Media Gateway Control）プロトコルが代表例として挙げられる。
【０１６２】
そして、リアルタイム通信検出部１７０１は、リアルタイム通信に関するメッセージを受信した場合に、当該メッセージからリアルタイム通信識別情報を抽出する。なお、リアルタイム通信検出部１７０１は、リアルタイム通信識別情報の検出処理を、実際のデータ処理の前に事前に実行し、検出したリアルタイム通信識別情報をメモリ１１０等に保存しておく。
【０１６３】
ここで、リアルタイム通信識別情報の検出処理の概要について図１９を用いて説明する。図１９は、ＳＩＰによるリアルタイム通信に関するメッセージからリアルタイム通信識別情報を検出する処理の一例を示す説明図である。
【０１６４】
同図のメッセージは、通信装置１７００がＳＩＰプロキシ１７６０から受信したＳＩＰの２００  ＯＫレスポンスメッセージの代表的な例を示している。行１９０１には、このメッセージが２００  ＯＫのレスポンスメッセージであることが記されている。行１９０５には、ＶｏＩＰ端末装置１７４０の通信相手であるＶｏＩＰ端末装置１７５０のＩＰｖ４アドレス（１９２．１６８．１０２．１）が記されている。行１９０６には、ＶｏＩＰ通信を行う通信プロトコル（ＲＴＰ）とポート番号（４３２１０）が記されている。
【０１６５】
リアルタイム通信検出部１７０１は、例えば、ＳＩＰのＩＮＶＩＴＥメッセージやＢＹＥメッセージ、これらへの応答である２００  ＯＫなどのレスポンスメッセージ（図１９の例）などを、リアルタイム通信であることを検出するための監視対象のメッセージとして予め定める。そして、リアルタイム通信検出部１７０１は、監視対象のメッセージを受信した場合に、ＶｏＩＰ通信相手のＩＰアドレス（１９２．１６８．１０２．１）と、通信プロトコル（ＲＴＰ）と、ポート番号（４３２１０）とを、受信したメッセージからリアルタイム通信識別情報として抽出する。
【０１６６】
なお、リアルタイム通信検出部１７０１は、ＩＰアドレス、通信プロトコル、およびポート番号に加えて、行１９０２および行１９０３に記されているｔａｇ値（ａｂｃｄｅｆｇ、１２３４５６７）と、行１９０４に記されているＣａｌｌ−ＩＤ（10000001@example.com）を併せて記録する。これにより、同じ通信相手との間で複数の呼が設定されている場合に個々の呼を区別することができる。
【０１６７】
図２０は、リアルタイム通信検出部１７０１が抽出してメモリ１１０等に保存したリアルタイム通信識別情報の一例を示す説明図である。図２０のようにリアルタイム通信識別情報を記録した表（以下、リアルタイム通信識別表という）は、演算方式決定部１７０２が演算処理の同期・非同期を判断するために参照される。
【０１６８】
同図の例では、リアルタイム通信識別表には、レイヤー３プロトコル（L3 Proto）と、送信ＩＰアドレス（Src IP）と、受信ＩＰアドレス（Dst IP）と、レイヤー４プロトコル（L4 Proto）と、送信ポート番号（Src Port）と、受信ポート番号（Dst Port）と、上位プロトコル情報（Upper Info.）とが、リアルタイム通信識別情報として記録されている。「Upper Info.」には、アプリケーションプロトコルに関する情報を記述する。例えば、ＨＴＴＰ（HyperText Transfer Protocol）を用いた動画配信を識別するためにコンテンツに対するＵＲＬ（Uniform Resource Locator）を記述してもよい。
【０１６９】
なお、リアルタイム通信識別情報はこれに限られるものではなく、その他の情報を含むように構成してもよい。また、同図のすべての情報を必ずしも利用する必要はない。すなわち、リアルタイム通信識別情報は、通信処理がリアルタイム処理か否かを判定するための情報を少なくとも含んでいればよい。また、本実施の形態のような通信処理以外の処理を実行する情報処理装置の場合は、その処理の内容に応じて、リアルタイム処理か否かを判定するための情報（リアルタイム識別情報）を、リアルタイム通信識別情報の代わりに取得するように構成すればよい。
【０１７０】
さらに、リアルタイム通信識別情報の保存形式は、保存形式は図６のような表形式に限られるものではない。例えば、リアルタイム通信識別情報を構成する一部または全部の要素に対するハッシュと結びつけて管理する方法、木構造により管理する方法などの他の形式によって保存するように構成してもよい。
【０１７１】
図１８に戻り、演算方式決定部１７０２は、リアルタイム通信検出部１７０１によって抽出されたリアルタイム通信識別情報と、通信パケットの内容とを比較することで、演算方式を、同期方式および非同期方式のいずれかに決定する。
【０１７２】
ネットワーク処理部１７０４は、第１の実施の形態のネットワーク処理部１０４と同様に、演算制御部１０３を用いて、処理の一部、またはすべてをＨＷ演算部１２０に実行させるものである。また、ネットワーク処理部１７０４は、ネットワークインタフェース１３０を介して送受信する通信データを、リアルタイム通信検出部１７０１に渡す機能を備えている。パケットを渡す方法としては、ＦｒｅｅＢＳＤ（登録商標）オペレーティングシステムに搭載されているＢＰＦ（Berkeley Packet Filter）、Ｌｉｎｕｘ（登録商標）オペレーティングシステムに搭載されているＬＳＦ（Linux Socket Filter）などのような従来から用いられているあらゆる方法を適用できる。
【０１７３】
次に、このように構成された第３の実施の形態にかかる通信装置１７００による各種処理のフローについて説明する。通信装置１７００による処理は、事前に実行されるリアルタイム通信検出処理と、通信処理とに分けられる。
【０１７４】
最初に、リアルタイム通信検出処理について図２１を用いて説明する。図２１は、第３の実施の形態におけるリアルタイム通信検出処理の全体の流れを示すフローチャートである。
【０１７５】
まず、リアルタイム通信検出部１７０１は、ネットワーク処理部１７０４に対して、ネットワーク処理部１７０４が送受信したパケットのうちリアルタイム通信検出部１７０１に渡す対象となるパケット（対象パケット）の種類を指示する（ステップＳ２１０１）。
【０１７６】
このとき、リアルタイム通信検出部１７０１は、ネットワーク処理部１７０４が送受信した通信パケットすべてを渡すよう指示してもよいし、リアルタイム通信検出部１７０１が予めリアルタイム処理検出を行う対象の通信パケットの種類を記憶しておき、その種類のパケットのみ渡すよう指示してもよい。
【０１７７】
パケットの種類を限定する方法としては、例えば、ＳＩＰパケットやＨ．２２５（Ｈ．３２３プロトコルで呼設定を行うためのシグナリングプロトコル）などのようにシグナリングプロトコルの種類によって限定する方法や、シグナリングプロトコルが使用するトランスポートプロトコル（例えばＵＤＰ（User Datagram Protocol）、ＴＣＰ（Transmission Control Protocol）、ＳＣＴＰ（Stream Control Transmission Protocol））で限定する方法などを適用できる。
【０１７８】
次に、ネットワーク処理部１７０４は、通信パケットの送受信が行われるまで待機し（ステップＳ２１０２）、対象パケットが送受信されたか否かを判断する（ステップＳ２１０３）。
【０１７９】
対象パケットが送受信されない場合は（ステップＳ２１０３：ＮＯ）、送受信されるまで待機する（ステップＳ２１０２）。対象パケットが送受信された場合は（ステップＳ２１０３：ＹＥＳ）、ネットワーク処理部１７０４は、リアルタイム通信検出部１７０１に対して対象パケットを通知する（ステップＳ２１０４）。
【０１８０】
リアルタイム通信検出部１７０１は、ネットワーク処理部１７０４から通知されたパケットを解析する（ステップＳ２１０５）。そして、リアルタイム通信に関する情報（リアルタイム通信識別情報）が含まれているか否かを判断する（ステップＳ２１０６）。
【０１８１】
リアルタイム通信識別情報が含まれている場合は（ステップＳ２１０６：ＹＥＳ）、そのリアルタイム通信識別情報を取得してメモリ１１０等に記録する（ステップＳ２１０７）。リアルタイム通信検出部１７０１は、リアルタイム通信識別情報を記録する際に、演算方式決定部１７０２から参照できる形で保存する。なお、リアルタイム通信検出部１７０１が、演算方式決定部１７０２からの要求に応じてリアルタイム通信識別情報を取得して、演算方式決定部１７０２に渡すように構成してもよい。また、リアルタイム通信検出部１７０１から演算方式決定部１７０２にリアルタイム通信識別情報を渡して演算方式決定部１７０２内で管理するように構成してもよい。
【０１８２】
通知されたパケットにリアルタイム通信識別情報が含まれていない場合は（ステップＳ２１０６：ＮＯ）、次のパケットを受信後、さらにパケットを解析して処理を繰り返す（ステップＳ２１０５）。
【０１８３】
以上の処理を繰り返し行うことで、通信装置１７００によって実行されるリアルタイム通信を識別するための情報を事前に抽出し、記録することができる。
【０１８４】
なお、リアルタイム通信識別情報を繰り返し記録すると、情報量が増え続けるため、リアルタイム通信検出部１７０１が、リアルタイム処理が終了したことを検出して記録したリアルタイム通信識別情報を削除するように構成してもよい。
【０１８５】
例えば、上述のようにｔａｇ値やＣａｌｌ−ＩＤを記録している場合は、リアルタイム通信検出部１７０１がＳＩＰのＢＹＥメッセージを解析したときに、ＢＹＥメッセージに含まれるｔａｇ値やＣａｌｌ−ＩＤ値と一致するリアルタイム通信識別情報を削除するように構成することができる。これにより、不要となったリアルタイム通信識別情報を削除し、記憶する情報量の増大を防止することができる。
【０１８６】
次に、第３の実施の形態における通信処理について図２２を用いて説明する。図２２は、第３の実施の形態における通信処理の全体の流れを示すフローチャートである。
【０１８７】
ここでは通信処理の一例として、ＶｏＩＰ端末装置１７４０がＶｏＩＰの音声データが含まれるパケットを送信する際に、ＩＰｓｅｃプロトコル処理として暗号化処理を施す場合の処理について説明する。
【０１８８】
第１の実施の形態では、ステップＳ８０４で演算方式決定部１０２が、データサイズとの比較により演算方式を決定する。これに対し、第３の実施の形態では、ステップＳ２２０４で演算方式決定部１７０２が、リアルタイム通信識別表を用いてリアルタイム通信か否かを判定することにより、演算方式を決定する。
【０１８９】
その他の処理は、第１の実施の形態にかかる通信装置１００を表す図８と同様の処理なので、その説明を省略する。以下に、ステップＳ２２０４の詳細について説明する。
【０１９０】
ステップＳ２２０４で、演算方式決定部１７０２は、処理対象の通信パケットのヘッダ内の情報と、記録されているリアルタイム通信識別情報と照合し、リアルタイム通信であるか否かを判断する。そして、演算方式決定部１７０２は、リアルタイム通信であると判断した場合に、演算方式を同期方式に決定する。また、演算方式決定部１７０２は、リアルタイム通信でないと判断した場合に、演算方式を非同期方式に決定する。
【０１９１】
例えば、ヘッダに含まれるＩＰアドレスおよびポート番号とリアルタイム通信識別情報とが一致する場合に、演算方式決定部１７０２は通信がリアルタイム通信であると判断し、演算方式を同期方式に決定する。
【０１９２】
このように、第３の実施の形態にかかる情報処理装置では、暗号化処理を要求した処理がリアルタイム処理か否かによって、同期方式および非同期方式のいずれかの方式を採用して処理を行うことができる。これにより、例えば、リアルタイム性が要求される処理には同期方式を選択することができるため、リアルタイム性が要求される処理に対する遅延やジッタを低減することが可能となる。
【０１９３】
なお、本実施の形態では、シグナリングプロトコルにＳＩＰが使われている場合の例を示しているが、前述のようにＨ．３２３、ＭＧＣＰ、またはＭＥＧＡＣＯなどＳＩＰ以外のシグナリングプロトコルでも、リアルタイム通信のパケットを識別するための情報を取得することで、同様の効果が得られる。
【０１９４】
また、いずれのシグナリングプロトコルに関してリアルタイム通信識別情報を取得するよう実装するかは、実施するネットワーク環境によって適宜変更すればよい。さらに、本実施の形態ではＶｏＩＰによるリアルタイム通信を検出することを例に挙げているが、ＶｏＩＰのような音声通信だけでなく、テレビ会議や映像コンテンツ配信などの映像通信にも対しても同様の方法を適用できる。
【０１９５】
（変形例１）
上述の実施の形態では、リアルタイム通信検出部１７０１が事前にリアルタイム通信識別情報を検出してメモリ１１０等に保存していた。これに対し、リアルタイム通信識別情報の検出処理を行わずに、事前に外部装置等で求められたリアルタイム通信識別情報をメモリ１１０等に保存するように構成してもよい。この場合は、リアルタイム通信検出部１７０１が不要となる。
【０１９６】
事前に保存する方法としては、演算方式決定部１７０２を実現するソフトウェアプログラムの一部として実装する方法や、本装置の実行前に管理者が設定する方法などあらゆる方法を適用できる。また、本装置の動作中に管理者がリアルタイム通信識別情報を追加・削除・修正などの変更を行えるように構成してもよい。
【０１９７】
（変形例２）
第３の実施の形態では、通信処理を例として説明したが、通信以外の用途でデータの暗号化・復号、圧縮・伸張などの演算処理を行う場合にも同様の方法を適用できる。なお、本変形例２は通信処理が必須ではないため、ネットワークインタフェースを搭載しないように構成することができる。
【０１９８】
本変形例２では、ネットワーク処理部１７０４の代わりに、ＨＷ演算部１２０を利用して特定の演算処理を行うアプリケーション処理部を用いた場合の例について説明する。アプリケーション処理部は、演算制御部１０３を介してＨＷ演算部１２０を使って演算処理を行う各種アプリケーション（以下、リアルタイムアプリケーションという）処理を行うものである。
【０１９９】
リアルタイムアプリケーションの例としては、動画の圧縮や伸張を行いながらインタラクティブに動画の編集（ノンリニア編集）を行う動画編集処理や、同じく動画の圧縮や伸張を行うゲーム処理が代表例として挙げられる。
【０２００】
本変形例２の演算方式決定部１７０２は、同期方式、非同期方式のいずれを選択するか判断する際の判断基準と、判断時に参照するリアルタイムアプリケーションごとに予め定められた参照情報とを保持している。
【０２０１】
参照情報とは、判断基準に適用して同期・非同期を判断するために用いる情報であり、採用する判断基準に応じて設定される。例えば、アプリケーションが許容する処理負荷の一つとして、処理の遅延時間（許容遅延）を判断基準とする場合は、アプリケーションごとに予め定められた許容遅延の値が参照情報となる。この場合は、同期・非同期を切り分けるための許容遅延の閾値が判断基準として予め定められる。
【０２０２】
参照情報は、リアルタイムアプリケーションがインストールされたとき、またはリアルタイムアプリケーションが初期化処理を行ったときなどに、実際のデータ処理に先立って設定される。なお、演算方式決定部１７０２が、アプリケーション処理部から演算制御部１０３に渡された処理内容を解析して参照情報を設定するように構成してもよい。例えば、アプリケーションが圧縮または伸張を行う対象のデータに、要求されるビットレートの情報や許容遅延の情報が含まれる場合に、処理内容（データ）から取得したビットレート・許容遅延を保存するように構成することができる。
【０２０３】
図２３は、保存された参照情報の一例を示す説明図である。図２３は、動画伸張処理を同期方式および非同期方式で切り換える場合の参照情報の例を示している。例えば、許容遅延の閾値が１ｓであるとすると、図２３のＮｏ．１のアプリケーションに対しては、演算方式決定部１７０２は許容遅延（５ｓ）が閾値（１ｓ）より大きいため、演算方式を非同期方式に決定する。また、図２３のＮｏ．２のアプリケーションに対しては、演算方式決定部１７０２は許容遅延（１００ｍｓ）が閾値（１ｓ）より小さいため、演算方式を同期方式に決定する。
【０２０４】
このように、通信処理以外のアプリケーションであっても、処理に関連する情報を参照して、当該処理がリアルタイム処理か否かを判断することができる。
【０２０５】
（第４の実施の形態）
第４の実施の形態にかかる情報処理装置は、同期方式による処理を、その他の非同期方式による処理より優先して実行するものである。
【０２０６】
図２４は、第４の実施の形態にかかる通信装置２４００の構成を示すブロック図である。図２４に示すように、通信装置２４００は、主なハードウェア構成として、ＰＵ２４０５と、ＨＷ演算部１２０と、メモリ１１０と、ネットワークインタフェース１３０と、ネットワークインタフェース１３１と、を備えている。
【０２０７】
また、同図に示すように、ＰＵ２４０５は、リアルタイム通信検出部１７０１と、演算方式決定部１７０２と、演算制御部２４０３と、ネットワーク処理部１７０４と、を備えている。
【０２０８】
第４の実施の形態では、演算制御部２４０３の機能が、第３の実施の形態と異なっている。その他の構成および機能は、第３の実施の形態にかかる通信装置１７００の構成を表すブロック図である図１７と同様であるので、同一符号を付し、ここでの説明は省略する。
【０２０９】
演算制御部２４０３は、同期方式による演算を優先するように制御する機能が追加された点が、第３の実施の形態の演算制御部１０３と異なっている。具体的には、演算制御部２４０３は、まず、ＨＷ演算部１２０による演算方式として同期方式を採用した場合に、処理待ちの非同期方式による演算処理が存在するか否かを判定する。そして、演算制御部２４０３は、処理待ちの非同期方式の演算処理が存在する場合に、当該非同期方式による演算処理よりも、同期方式による演算処理を優先して実行するように制御する。
【０２１０】
次に、第４の実施の形態における通信処理について図２５を用いて説明する。図２５は、第４の実施の形態における通信処理の全体の流れを示すフローチャートである。
【０２１１】
ステップＳ２５０１からステップＳ２５０６までの、ネットワーク処理、演算指示処理、演算方式決定処理、および演算方式判定処理は、第３の実施の形態にかかる通信装置１７００におけるステップＳ２２０１からステップＳ２２０６までと同様の処理なので、その説明を省略する。
【０２１２】
ステップＳ２５０６で、演算方式が同期方式であると判断した場合（ステップＳ２５０６：ＹＥＳ）、演算制御部２４０３は、さらに、処理待ちの非同期処理が存在するか否かを判断する（ステップＳ２５０７）。存在する場合は（ステップＳ２５０７：ＹＥＳ）、演算制御部２４０３は、処理待ちの非同期処理より、ＨＷ演算部１２０による同期方式の演算処理を先に実行するように実行順序を変更し、実行中の処理の完了を待つ（ステップＳ２５０８）。
【０２１３】
処理待ちの非同期処理が存在する場合、演算制御部２４０３でリアルタイム性が要求されている同期方式の処理が、その非同期方式の処理がすべて終了するまで待ち続ける必要が生じる。このため、演算制御部２４０３は、処理待ちの非同期処理よりも先に同期方式の処理を行うように実行順序を変更する。
【０２１４】
なお、実行順序を変更する方法としては、同期方式または非同期方式の処理が時分割でスケジューリングされている場合は演算制御部２４０３が同期方式を優先して実行するようにする方法が適用できる。また、ＨＷ演算部１２０または演算制御部２４０３に、ＨＷ演算部１２０で実行する処理のキューを持っている場合は、演算制御部２４０３が同期方式の処理が先に実行されるようにキューの順序を変更する方法が適用できる。
【０２１５】
処理待ちの非同期処理が存在しない場合（ステップＳ２５０７：ＮＯ）、または実行順序を変更後、演算制御部２４０３は、ＨＷ演算部１２０に対して処理内容を指示して暗号化処理を開始させる（ステップＳ２５０９）。
【０２１６】
ステップＳ２５１０からステップＳ２５２１までの処理は、第３の実施の形態にかかる通信装置１７００におけるステップＳ２２０８からステップＳ２２１９までと同様の処理なので、その説明を省略する。
【０２１７】
このように、第４の実施の形態にかかる情報処理装置では、同期方式による処理を、その他の非同期方式による処理より優先して実行することができる。これにより、リアルタイム性が要求される処理に対する遅延やジッタを低減することが可能となる。
【０２１８】
（第５の実施の形態）
第５の実施の形態にかかる情報処理装置は、アプリケーションの名前または種類によって、処理がリアルタイム処理か否かを判定し、判定結果によって同期方式および非同期方式のいずれかの方式を採用して処理を行うものである。
【０２１９】
図２６は、第５の実施の形態にかかる通信装置２６００を含む通信システムのネットワーク構成図である。図２６に示すように、第５の実施の形態の通信システムは、通信装置２６００と、通信相手である通信装置２６２０とが、ＩＰネットワーク３００で接続された構成となっている。また、通信装置２６００および通信装置２６２０は、それぞれサブネット２６３１および２６３２に接続されている。
【０２２０】
サブネット２６３１とサブネット２６３２の間はＩＰネットワーク３００で接続され、通信装置２６００と通信装置２６２０が互いにＩＰ通信を行うことができるよう構成されている通信装置２６００は、リアルタイム通信（例としてはＶｏＩＰやテレビ会議など）やＩＰｓｅｃプロトコルに関するパケット処理を行う装置であり、暗号化処理等をハードウェアにより実行する機能を備えている。通信装置２６２０は、通信装置２６００とＩＰｓｅｃプロトコルによって通信を行う装置である。
【０２２１】
次に、通信装置２６００の詳細な構成について図２７を用いて説明する。図２７は、第５の実施の形態にかかる通信装置２６００の構成を示すブロック図である。同図に示すように、通信装置２６００は、主なハードウェア構成として、ＰＵ２６０５と、ＨＷ演算部１２０と、メモリ１１０と、ネットワークインタフェース１３０と、ネットワークインタフェース１３１と、を備えている。
【０２２２】
また、同図に示すように、ＰＵ２６０５は、リアルタイム通信検出部１７０１と、演算方式決定部２６０２と、演算制御部２６０３と、ネットワーク処理部２６０４と、を備えている。
【０２２３】
第５の実施の形態では、演算方式決定部２６０２、演算制御部２６０３、およびネットワーク処理部２６０４の機能が、第３の実施の形態と異なっている。その他の構成および機能は、第３の実施の形態にかかる通信装置１７００の構成を表すブロック図である図１７と同様であるので、同一符号を付し、ここでの説明は省略する。
【０２２４】
図２８は、第５の実施の形態におけるリアルタイム通信識別表の一例を示す説明図である。図２８では、個別のアプリケーションを識別するアプリケーション情報として、アプリケーション名のみを記述しているが、アプリケーションを識別しうる他の形式で記述してもよい。例えば、アプリケーションが記録された記憶デバイスでアプリケーションの実行ファイルを特定する識別子や、アプリケーションの実行ファイルに対して計算したハッシュ値であってもよい。さらにリアルタイム通信識別表には、第３の実施の形態などと同様にプロトコルやアドレスなどの通信情報を合わせて管理してもよい。
【０２２５】
ネットワーク処理部２６０４は、第１の実施の形態のネットワーク処理部１０４と同様に、演算制御部２６０３を用いて、処理の一部、またはすべてをＨＷ演算部１２０に実行させるものである。本実施の形態では、ネットワーク処理部２６０４は、さらに、受信したパケットに関する情報から、通信を実行しているアプリケーションを識別するための情報（以下、アプリケーション情報という）を抽出する機能を備えている。
【０２２６】
演算制御部２６０３は、ネットワーク処理部２６０４が抽出したアプリケーション情報を演算方式決定部２６０２に通知することにより、演算方式の決定を実行させるように制御する点が、第３の実施の形態の演算制御部１０３と異なっている。
【０２２７】
演算方式決定部２６０２は、リアルタイム通信を行うアプリケーションに関する情報を定めたリアルタイム通信識別情報と、ネットワーク処理部２６０４が抽出したアプリケーション情報とを比較することで、演算方式を、同期方式および非同期方式のいずれかに決定するものである。
【０２２８】
次に、第５の実施の形態における通信処理について図２９を用いて説明する。図２９は、第５の実施の形態における通信処理の全体の流れを示すフローチャートである。
【０２２９】
まず、ネットワーク処理部２６０４は、受信したパケットのヘッダの解析やＩＰｓｅｃプロトコル処理などのネットワーク処理を行う（ステップＳ２９０１）。次に、ネットワーク処理部２６０４は、通信に関与するネットワークアプリケーションを識別する（ステップＳ２９０２）。この処理は、例えばＬｉｎｕｘ（登録商標）のようなソケットＡＰＩを実装したＯＳ（Operating System）であれば、通信に関与したソケットに付随する情報から、該ソケットを開いたアプリケーション情報を抽出する方法により実現できる。
【０２３０】
次に、ネットワーク処理部２６０４は、パケットの演算に必要な情報に加えて、抽出したアプリケーション情報を演算制御部２６０３に通知する（ステップＳ２９０３）。演算制御部２６０３はアプリケーション情報を演算方式決定部２６０２へ通知し、同期処理を行うべきアプリケーションに該当するか否かの判定を依頼する（ステップＳ２９０４）。
【０２３１】
演算方式決定部２６０２は、リアルタイム通信識別表のエントリから、通知されたアプリケーション情報に一致する情報を持つエントリを検索することにより、リアルタイム通信か否かを識別し、演算方式を決定する（ステップＳ２９０５）。具体的には、演算方式決定部２６０２は、一致したエントリが存在すれば同期処理を演算方式として決定する。また、演算方式決定部２６０２は、一致したエントリが無ければ非同期処理を演算方式として決定する。
【０２３２】
なお、リアルタイム通信識別表にアプリケーション情報と共にプロトコルやアドレスなどの通信情報が保存されている場合には、それらを含めてエントリを照合し、同期方式または非同期方式を判断するように構成してもよい。
【０２３３】
ステップＳ２９０６からステップＳ２９２０までの処理は、第３の実施の形態にかかる通信装置１７００におけるステップＳ２２０５からステップＳ２２１９までと同様の処理なので、その説明を省略する。
【０２３４】
このように、第５の実施の形態にかかる情報処理装置では、アプリケーションの名前または種類によって、同期方式および非同期方式のいずれかの方式を採用して処理を行うことができる。これにより、リアルタイム性が要求される処理に対する遅延やジッタを低減することが可能となる。
【０２３５】
次に、第１〜第５の実施の形態にかかる情報処理装置のハードウェア構成について図３０を用いて説明する。図３０は、第１〜第５の実施の形態にかかる情報処理装置のハードウェア構成を示す説明図である。
【０２３６】
第１〜第５の実施の形態にかかる情報処理装置は、ＣＰＵ（Central Processing Unit）５１などの制御装置と、ＲＯＭ（Read Only Memory）５２やＲＡＭ５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、ＨＤＤ、ＣＤ（Compact Disc）ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス６１を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０２３７】
第１〜第５の実施の形態にかかる情報処理装置で実行される情報処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact Disk Recordable）、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０２３８】
また、第１〜第５の実施の形態にかかる情報処理装置で実行される情報処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第１〜第５の実施の形態にかかる情報処理装置で実行される情報処理プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０２３９】
また、第１〜第５の実施の形態の情報処理プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０２４０】
第１〜第５の実施の形態にかかる情報処理装置で実行される情報処理プログラムは、上述した各部（データサイズ閾値算出部、演算方式決定部、演算制御部、ネットワーク処理部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ５１（プロセッサ）が上記記憶媒体から情報処理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
【産業上の利用可能性】
【０２４１】
以上のように、本発明にかかる演算方式を制御して情報を処理する装置、方法およびプログラムは、ハードウェアオフローディングにより演算処理を実行する装置、方法およびプログラムに適している。
【図面の簡単な説明】
【０２４２】
【図１】第１の実施の形態にかかる通信システムのネットワーク構成図である。
【図２】第１の実施の形態にかかる通信装置の構成を示すブロック図である。
【図３】第１の実施の形態におけるテストシート例を示す説明図である。
【図４】第１の実施の形態におけるテストシート例を示す説明図である。
【図５】第１の実施の形態におけるデータサイズと処理時間との関係を示すグラフである。
【図６】第１の実施の形態におけるデータサイズ閾値の保存形式の一例を示す説明図である。
【図７】第１の実施の形態におけるデータサイズ閾値算出処理の全体の流れを示すフローチャートである。
【図８】第１の実施の形態における通信処理の全体の流れを示すフローチャートである。
【図９】第１の実施の形態の変形例１におけるデータサイズ閾値算出処理の全体の流れを示すフローチャートである。
【図１０】第２の実施の形態にかかる通信装置の構成を示すブロック図である。
【図１１】第２の実施の形態におけるテストシート例を示す説明図である。
【図１２】第２の実施の形態におけるテストシート例を示す説明図である。
【図１３】第２の実施の形態におけるデータサイズと処理時間との関係を示すグラフである。
【図１４】第２の実施の形態におけるデータサイズ閾値の保存形式の一例を示す説明図である。
【図１５】第２の実施の形態におけるデータサイズ閾値算出処理の全体の流れを示すフローチャートである。
【図１６】第２の実施の形態における通信処理の全体の流れを示すフローチャートである。
【図１７】第３の実施の形態にかかる通信システムのネットワーク構成図である。
【図１８】第３の実施の形態にかかる通信装置の構成を示すブロック図である。
【図１９】リアルタイム通信識別情報を検出する処理の一例を示す説明図である。
【図２０】リアルタイム通信識別情報の一例を示す説明図である。
【図２１】第３の実施の形態におけるリアルタイム通信検出処理の全体の流れを示すフローチャートである。
【図２２】第３の実施の形態における通信処理の全体の流れを示すフローチャートである。
【図２３】保存された参照情報の一例を示す説明図である。
【図２４】第４の実施の形態にかかる通信装置の構成を示すブロック図である。
【図２５】第４の実施の形態における通信処理の全体の流れを示すフローチャートである。
【図２６】第５の実施の形態にかかる通信システムのネットワーク構成図である。
【図２７】第５の実施の形態にかかる通信装置の構成を示すブロック図である。
【図２８】第５の実施の形態におけるリアルタイム通信識別表の一例を示す説明図である。
【図２９】第５の実施の形態における通信処理の全体の流れを示すフローチャートである。
【図３０】第１〜第５の実施の形態にかかる情報処理装置のハードウェア構成を示す説明図である。
【符号の説明】
【０２４３】
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  通信Ｉ／Ｆ
６１  バス
１００  通信装置
１０１  データサイズ閾値算出部
１０２  演算方式決定部
１０３  演算制御部
１０４  ネットワーク処理部
１０５  ＰＵ
１１０  メモリ
１１１  共有バス
１２０  ＨＷ演算部
１３０、１３１  ネットワークインタフェース
２００  通信装置
３００  ＩＰネットワーク
４００、５００  端末装置
１０００  通信装置
１００１  データサイズ閾値算出部
１００２  演算方式決定部
１００３  演算制御部
１００５  ＰＵ
１００６  ＳＷ演算部
１３０１、１３０２  交点
１７００  通信装置
１７０１  リアルタイム通信検出部
１７０２  演算方式決定部
１７０４  ネットワーク処理部
１７０５  ＰＵ
１７２０  通信装置
１７３１、１７３２  サブネット
１７４０、１７５０  ＶｏＩＰ端末装置
１７６０  ＳＩＰプロキシ
２４００  通信装置
２４０３  演算制御部
２４０５  ＰＵ
２６００  通信装置
２６０２  演算方式決定部
２６０３  演算制御部
２６０４  ネットワーク処理部
２６０５  ＰＵ
２６２０  通信装置
２６３１、２６３２  サブネット
【図１】
0005032219.tif 000002
【図２】
0005032219.tif 000003
【図３】
0005032219.tif 000004
【図４】
0005032219.tif 000005
【図５】
0005032219.tif 000006
【図６】
0005032219.tif 000007
【図７】
0005032219.tif 000008
【図８】
0005032219.tif 000009
【図９】
0005032219.tif 000010
【図１０】
0005032219.tif 000011
【図１１】
0005032219.tif 000012
【図１２】
0005032219.tif 000013
【図１３】
0005032219.tif 000014
【図１４】
0005032219.tif 000015
【図１５】
0005032219.tif 000016
【図１６】
0005032219.tif 000017
【図１７】
0005032219.tif 000018
【図１８】
0005032219.tif 000019
【図１９】
0005032219.tif 000020
【図２０】
0005032219.tif 000021
【図２１】
0005032219.tif 000022
【図２２】
0005032219.tif 000023
【図２３】
0005032219.tif 000024
【図２４】
0005032219.tif 000025
【図２５】
0005032219.tif 000026
【図２６】
0005032219.tif 000027
【図２７】
0005032219.tif 000028
【図２８】
0005032219.tif 000029
【図２９】
0005032219.tif 000030
【図３０】
0005032219.tif 000031