(57)【要約】【課題】データの送信において情報処理装置の性能低下を防止すること。【解決手段】送信データを圧縮して圧縮データを生成し、前記圧縮データのサイズに基づいて、前記圧縮データと圧縮前の前記送信データのいずれかをネットワークに送信するかを判定し、前記判定の結果に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信する。【選択図】図４
2019186821.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークと接続する情報処理装置であって、
送信データを圧縮して圧縮データを生成する圧縮部と
前記圧縮データのサイズに基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する判定部と、
を有する処理回路と、
前記判定部の判定結果に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信する処理部と、
を備える情報処理装置。
【請求項２】
前記処理回路は、前記判定部の判定結果に基づいて、前記処理回路と接続するメモリに前記圧縮データを記憶する請求項１記載の情報処理装置。
【請求項３】
前記処理回路は、前記判定部が前記圧縮データを前記ネットワークに送信すると判定した場合のみ、前記メモリに前記圧縮データを記憶する請求項２記載の情報処理装置。
【請求項４】
前記圧縮データのサイズと前記送信データのサイズの比率を算出する算出部をさらに備え、
前記判定部は、前記比率に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記判定部は、所定期間内に生成された圧縮データのサイズおよび前記メモリと前記処理回路の間のバスの速度に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項６】
ネットワークと接続する情報処理装置が、
送信データを圧縮して圧縮データを生成し、
前記圧縮データのサイズに基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定し、
前記判定の結果に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信する、
情報処理方法。
【請求項７】
ネットワークと接続するコンピュータに、
送信データを圧縮して圧縮データを生成し、
前記圧縮データのサイズに基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定し、
前記判定の結果に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
ＣＰＵ（Central Processing Unit）で動作するソフトウェアでは不向きな処理をＧＰＵ（Graphics Processing Unit）やＦＰＧＡ（Field-Programmable Gate Array）等のハードウェア（ＨＷ）アクセラレータで行うことで、処理を高速化する技術がある。ＨＷアクセラレータは、ウェブ検索やクラウドサービスなど様々な分野で利用されている。
【０００３】
また、ＷＡＮ（Wide Area Network）広帯域化のためのＷＡＮ高速化技術が知られている。
【０００４】
ＷＡＮ高速化技術には、大きく分けて以下の２つのアプローチが取られている。
（１）トランスポート最適化：ＴＣＰ（Transmission Control Protocol）／ＵＤＰ（User Datagram Protocol）を改良し、遅延やパケットロスがある場合にもＷＡＮ帯域を有効活用可能する。
（２）データ最適化：送信データをＷＡＮに送る前に圧縮しておくことで、ＷＡＮ上を流れるデータ容量を削減し、実効帯域を向上させる。
【０００５】
データ最適化は計算量が大きく、ＣＰＵで実行する場合にボトルネックになる。そのため、送信データの圧縮処理をＦＰＧＡで行うことで高速化している。
【０００６】
図１は、データ最適化によるＷＡＮ高速化技術の例を説明する図である。
図１では、送信システム１１のクライアント１２から受信システム２１のサーバ２３に送信データを送信する場合について説明する。
【０００７】
送信システム１１は、クライアント１２およびＷＡＮ高速化部１３を有し、受信システム２１は、ＷＡＮ高速化部２２およびサーバ２３を有する。ＷＡＮ高速化部１３とＷＡＮ高速化部２２はＷＡＮ３１を介して接続されている。
【０００８】
クライアント１２からサーバ２３に送信データを送信する場合、クライアント１２は、ＷＡＮ高速化部１３に送信データを送信し、ＷＡＮ高速化部１３は、受信した送信データを圧縮して圧縮データを生成する。ＷＡＮ高速化部１３は、圧縮データをＷＡＮ３１を介してＷＡＮ高速化部２２に送信する。
【０００９】
ＷＡＮ高速化部２２は、受信した圧縮データを展開して送信データを復元する。ＷＡＮ高速化部２２は、送信データをサーバ２３に送信する。
【００１０】
このように、データ最適化によるＷＡＮ高速化技術では、圧縮データをＷＡＮへ送出することで、ＷＡＮの使用帯域を削減できる。
【００１１】
高負荷時等のストレージ装置に対するキャッシュ処理に起因して、スループットが低下する等の問題を解消する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１７−５８８５８号公報
【特許文献２】特開２００５−３０１６０７号公報
【特許文献３】特開平４−３５９３１５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
情報処理装置がＦＰＧＡを用いて送信データの圧縮処理を行う場合、例えば、ＣＰＵとＦＰＧＡ間のバスが逼迫すると性能が低下する。例えば、データの圧縮率が低い場合にバスへの負荷が大きくなり性能が低下する場合がある。
【００１４】
１つの側面において、本発明は、データの送信処理において情報処理装置の性能低下の防止を目的とする。
【課題を解決するための手段】
【００１５】
実施の形態の情報処理装置は、ネットワークと接続し、処理回路と、処理部と、を備える。前記処理回路は、圧縮部と、判定部と、を有する。
【００１６】
前記圧縮部は、送信データを圧縮して圧縮データを生成する。
前記判定部は、前記圧縮データのサイズに基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する。
【００１７】
前記処理部は、前記判定部の判定結果に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信する。
【発明の効果】
【００１８】
実施の形態の情報処理装置によれば、データの送信において情報処理装置の性能低下を防止できる。
【図面の簡単な説明】
【００１９】
【図１】データ最適化によるＷＡＮ高速化技術の例を説明する図である。
【図２Ａ】比較例の情報処理装置によるＷＡＮ高速化技術を説明する図である。
【図２Ｂ】比較例の情報処理装置によるＷＡＮ高速化技術を説明する図である。
【図２Ｃ】比較例の情報処理装置によるＷＡＮ高速化技術を説明する図である。
【図２Ｄ】比較例の情報処理装置によるＷＡＮ高速化技術を説明する図である。
【図２Ｅ】比較例の情報処理装置によるＷＡＮ高速化技術を説明する図である。
【図２Ｆ】比較例の情報処理装置によるＷＡＮ高速化技術を説明する図である。
【図３】比較例の問題点を説明する図である。
【図４】実施の形態の情報処理装置の構成図である。
【図５Ａ】実施の形態の送信処理を説明する図である。
【図５Ｂ】実施の形態の送信処理を説明する図である。
【図５Ｃ】実施の形態の送信処理を説明する図である。
【図５Ｄ】実施の形態の送信処理を説明する図である。
【図５Ｅ】実施の形態の送信処理を説明する図である。
【図６】実施の形態の圧縮データが送信される場合の送信処理のシーケンス図である。
【図７】実施の形態の圧縮データが送信されない場合の送信処理のシーケンス図である。
【図８】実施の形態のＣＰＵの処理のフローチャートである。
【図９】実施の形態の圧縮部の処理のフローチャートである。
【図１０】実施の形態のスキップ判定部の処理のフローチャートである。
【発明を実施するための形態】
【００２０】
以下、図面を参照しながら実施の形態について説明する。
最初に比較例のＷＡＮ高速化技術と問題点について説明する。
【００２１】
図２Ａ〜２Ｆは、比較例の情報処理装置によるＷＡＮ高速化技術を説明する図である。
図２Ａ：情報処理装置５１は、ＣＰＵ５２、メインメモリ５３、ＨＤＤ（Hard Disk Drive）５４、ネットワークＩＦ（Interface）５５、ＦＰＧＡ５６、およびＤＤＲ（Double-Data-Rate Synchronous）メモリ５７を有する。
【００２２】
ＣＰＵ５２は、メモリバス６１を介してメインメモリ５３と接続されている。ＣＰＵ５２は、クライアントアプリ５８およびＷＡＮ高速化アプリ５９をメインメモリ５３を利用して実行する。ＣＰＵ５２、ＨＤＤ５４、ネットワークＩＦ５５、およびＦＰＧＡ５６は、バス６２（例えば、PCI Expressバス）を介して、互いに接続されている。ＦＰＧＡ５６は、バス６３を介してＤＤＲメモリ５７と接続されている。ネットワークＩＦ５５は、ＷＡＮと接続されている。また、送信データはＨＤＤ１３１に記憶されているとする。
【００２３】
クライアントアプリ５８は、送信データをＨＤＤ５４から読み出し、送信データと送信データの送信要求をＷＡＮ高速化アプリ５９に送信する。ＷＡＮ高速化アプリ５９は、送信データをメインメモリ５３に送信し、送信データをメインメモリ５３に記憶する。
【００２４】
図２Ｂ：ＷＡＮ高速化アプリ５９を実行するＣＰＵ５２は、送信データをＤＤＲメモリ５７へ転送する。詳細には、ＣＰＵ５２は、送信データをＦＰＧＡ５６に送信し、ＦＰＧＡ５６は送信データをＤＤＲメモリ５７に記憶する。
【００２５】
図２Ｃ：ＦＰＧＡ５６は、ＤＤＲメモリ５７から送信データを読み出し、送信データを圧縮して圧縮データを生成する。ＦＰＧＡ５６は、ＤＤＲメモリ５７に圧縮データを記憶する。
【００２６】
図２Ｄ：ＦＰＧＡ５６は、ＣＰＵ５２に処理完了を通知する。
図２Ｅ：ＷＡＮ高速化アプリ５９を実行するＣＰＵ５２は、ＤＤＲメモリ５７から圧縮データを読み出し、メインメモリ５３に記憶する。
【００２７】
図２Ｆ：ＷＡＮ高速化アプリ５９を実行するＣＰＵ５２は、メインメモリ５３から圧縮データを読み出し、圧縮データをネットワークＩＦ５５に送信する。ネットワークＩＦ５５は圧縮データをＷＡＮを介して送信先に送信する。
【００２８】
図３は、比較例の問題点を説明する図である。
情報処理装置５１において、ＦＰＧＡ５６とＤＤＲメモリ５７の間のバス６３またはＣＰＵ５２とＦＰＧＡ５６の間のバス６２が逼迫した際に性能が低下する。ＦＰＧＡ５６が高並列処理をする場合、ＦＰＧＡ５６内の演算機ごとのアクセスタイミングの揺れにより、一時的にバス６２、６３の負荷が大きくなる場合がある。それにより、情報処理装置５１の性能が低下する場合がある。
【００２９】
また、データによって圧縮率は変動するが、圧縮率が低い場合は圧縮データのサイズが大きくなるためバス６２，６３への負担が増し、更なる性能低下に繋がる場合がある。
【００３０】
図４は実施の形態の情報処理装置の構成図である。
情報処理装置１０１は、ＣＰＵ１１１、メインメモリ１２１、ＨＤＤ１３１、ネットワークＩＦ１４１、ＦＰＧＡ１５１、およびＤＤＲメモリ１６１を有する。情報処理装置１０１は、例えば、サーバ等のコンピュータである。
【００３１】
ＣＰＵ１１１は、メモリバス１７１を介してメインメモリ１２１と接続されている。ＣＰＵ１１１、ＨＤＤ１３１、ネットワークＩＦ１４１、およびＦＰＧＡ１５１は、バス１８１を介して、互いに接続されている。ＣＰＵ１１１は、処理部の一例である。
【００３２】
ＦＰＧＡ１５１は、スキップ判定部１５２、圧縮部１５３、およびバッファ１５４を有する。ＦＰＧＡ１５１は、バス１９１を介してＤＤＲメモリ１６１と接続されている。ＦＰＧＡ１５１は、再構成可能な集積回路であり、処理回路の一例である。スキップ判定部１５２は、判定部の一例である。スキップ判定部１５２および圧縮部１５３は、算出部の一例である。
【００３３】
ＨＤＤ１３１は、情報処理装置１０１で使用されるプログラムやデータ等を記憶する。ＨＤＤ１３１は、クライアントアプリ１３２およびＷＡＮ高速化アプリ１３３を記憶する。クライアントアプリ１３２は、送信データの送信要求を行うプログラムであり、ＷＡＮ高速化アプリ１３３は、送信要求に応じて、送信データまたは圧縮データをネットワークＩＦ１４１を介して送信先の装置に送信するプログラムである。
【００３４】
ＣＰＵ１１１は、メインメモリ１２１を利用してクライアントアプリ１３２を実行することにより、送信アプリ部として動作する。ＣＰＵ１１１は、メインメモリ１２１を利用してＷＡＮ高速化アプリ１３３を実行することにより、メイン処理部として動作する。
【００３５】
ネットワークＩＦ１４１は、ＷＡＮと接続し、通信に伴うデータ変換を行う通信インターフェースである。ＷＡＮは、ネットワークの一例である。
【００３６】
図５Ａ〜５Ｅは、実施の形態の送信処理を説明する図である。
図５Ａ〜５Ｅでは、圧縮データが送信されない場合、すなわち圧縮されていない送信データが送信される場合を説明する。
【００３７】
図５Ａ：ＣＰＵ１１１は、クライアントアプリ１３２を実行することにより、送信アプリ部１１２として動作し、ＷＡＮ高速化アプリ１３３を実行することにより、メイン処理部１１３として動作する。また、送信データはＨＤＤ１３１に記憶されているとする。
【００３８】
送信アプリ部１１２は、送信データをＨＤＤ１３１から読み出し、送信データと送信データの送信要求をメイン処理部１１３に送信する。メイン処理部１１３は、送信データをメインメモリ１２１に送信し、送信データをメインメモリ１２１に記憶する。
【００３９】
図５Ｂ：ＣＰＵ１１１は、送信データをＤＤＲメモリ１６１へ転送する。詳細には、ＣＰＵ１１１は、送信データをＦＰＧＡ１５１に送信し、ＦＰＧＡ１５１は送信データをＤＤＲメモリ１６１に記憶する。
【００４０】
図５Ｃ：圧縮部１５３は、ＤＤＲメモリ１６１から送信データを読み出し、送信データを圧縮して圧縮データを生成する。圧縮部１５３は、圧縮データをバッファ１５４に書き込む。圧縮完了時に圧縮部１５３は、スキップ判定部１６２に圧縮率を送信する。
【００４１】
図５Ｄ：スキップ判定部１５２は、圧縮率に基づいて、送信データまたは圧縮データのいずれかを送信するか判定（スキップ判定）する。ここでは、圧縮率が悪く、圧縮データを送信しないと判定された、すなわち性能低下を起こすと判定されたとする。スキップ判定部１５２は、スキップ要求をＣＰＵ１１１と圧縮部１５３に送信する。
【００４２】
図５Ｅ：ＦＰＧＡ１５１は、圧縮データに対する残りの処理(圧縮データのＤＤＲメモリ１６１とＣＰＵ１１１への転送)をスキップする。ＣＰＵ１１１は、送信データをメインメモリ１２１から読み出してネットワークＩＦ１４１に送信する。
【００４３】
実施の形態の情報処理装置１０１によれば、性能低下が予測される場合に圧縮データのＤＤＲメモリ１６１やＣＰＵ１１１へ転送をスキップし、ＣＰＵ１１１から圧縮前のデータを送信する。このようにして、圧縮されにくいデータが入力された場合やバス性能が一時的に低下した場合に情報処理装置全体の性能が低下することを防ぐことができる。圧縮データのＤＤＲメモリ１６１やＣＰＵ１１１へ転送をスキップすることで、バス１８１，１９１の帯域を節約することが出来る。
【００４４】
図６は、実施の形態の圧縮データが送信される場合の送信処理のシーケンス図である。
上述のように、ＣＰＵ１１１は、クライアントアプリ１３２を実行することにより、送信アプリ部１１２として動作し、ＷＡＮ高速化アプリ１３３を実行することにより、メイン処理部１１３として動作する。
【００４５】
ステップＳ５０１−ｉ（ｉ＝１〜３）において、送信アプリ部１１２は、送信データをＨＤＤ１３１から読み出し、送信データと送信データの送信要求をメイン処理部１１３に送信する。メイン処理部１１３は、送信データをメインメモリ１２１に送信し、送信データをメインメモリ１２１に記憶する。
【００４６】
ステップＳ５０２−ｉにおいて、メイン処理部１１３は、送信データをＦＰＧＡ１５１に送信し、ＦＰＧＡ１５１は送信データをＤＤＲメモリ１６１に記憶する。
【００４７】
ステップＳ５０３において、メイン処理部１１３は、送信データに対する圧縮処理のリクエストを圧縮部１５３に送信する。
【００４８】
ステップＳ５０４−ｉにおいて、圧縮部１５３は、圧縮処理のリクエストを受信し、ＤＤＲメモリ１６１から送信データを読み出し、送信データを圧縮して圧縮データを生成する。
【００４９】
ステップＳ５０５−ｉにおいて、圧縮部１５３は、圧縮データをバッファ１５４に記憶する。
【００５０】
ステップＳ５０６において、圧縮部１５３は、圧縮データのサイズと送信データのサイズの比率（以下、圧縮率と呼ぶ）を算出する。すなわち、「圧縮率＝圧縮データのサイズ／送信データのサイズ」である。圧縮率の値が小さいほど送信データをより小さく圧縮できていることを示す。圧縮部１５３は、圧縮データの利用可否の問い合わせと算出した圧縮率をスキップ判定部１５２に送信する。スキップ判定部１５２は、圧縮率に基づいて、送信データまたは圧縮データのいずれかを送信するか判定（スキップ判定）する。ここでは、圧縮データを送信すると判定された（ＯＫ）とする。尚、圧縮部１５３は、送信データのサイズと圧縮データのサイズをスキップ判定部１５２に送信し、スキップ判定部１５２が圧縮率を算出してもよい。
【００５１】
ステップＳ５０７において、スキップ判定部１５２は、圧縮データを送信することを示すＯＫ（圧縮データ転送要求）を圧縮部１５３に送信する。
【００５２】
ステップＳ５０８−ｉにおいて、圧縮部１５３は、圧縮データをＤＤＲメモリ１６１に送信する指示をバッファ１５４に送信する。
【００５３】
ステップＳ５０９−ｉにおいて、バッファ１５４は、記憶している圧縮データをＤＤＲメモリ１６１に送信し、ＤＤＲメモリ１６１は、圧縮データを記憶する。
【００５４】
ステップＳ５１０において、圧縮部１５３は、処理完了通知をメイン処理部に送信する。
【００５５】
ステップＳ５１１において、メイン処理部１１３は、ＤＤＲメモリ１６１に圧縮データの読み出しを要求する。
【００５６】
ステップＳ５１２−ｉにおいて、メイン処理部１１３は、ＤＤＲメモリ１６１から圧縮データを受信する。
【００５７】
ステップＳ５１３において、メイン処理部１１３は、圧縮データを送信先の装置に送信する。詳細には、メイン処理部１１３は、圧縮データをネットワークＩＦ１４１に送信する。ネットワークＩＦ１４１は、圧縮データを接続されているＷＡＮに出力する。
【００５８】
図７は、実施の形態の圧縮データが送信されない場合の送信処理のシーケンス図である。図７では、圧縮データが送信されない場合、すなわち圧縮されていない送信データが送信される場合を説明する。
【００５９】
ステップＳ６０１−ｉ（ｉ＝１〜３）において、送信アプリ部１１２は、送信データをＨＤＤ１３１から読み出し、送信データと送信データの送信要求をメイン処理部１１３に送信する。メイン処理部１１３は、送信データをメインメモリ１２１に送信し、送信データをメインメモリ１２１に記憶する。
【００６０】
ステップＳ６０２−ｉにおいて、メイン処理部１１３は、送信データをＦＰＧＡ１５１に送信し、ＦＰＧＡ１５１は送信データをＤＤＲメモリ１６１に記憶する。
【００６１】
ステップＳ６０３において、メイン処理部１１３は、送信データの圧縮リクエストを圧縮部１５３に送信する。
【００６２】
ステップＳ６０４−ｉにおいて、圧縮部１５３は、ＤＤＲメモリ１６１から送信データを読み出し、送信データを圧縮して圧縮データを生成する。
【００６３】
ステップＳ６０５−ｉにおいて、圧縮部１５３は、圧縮データをバッファ１５４に記憶する。
【００６４】
ステップＳ６０６において、圧縮部１５３は、圧縮データのサイズと送信データのサイズの比率（以下、圧縮率と呼ぶ）を算出する。圧縮部１５３は、圧縮データの利用可否の問い合わせと算出した圧縮率をスキップ判定部１５２に送信する。スキップ判定部１５２は、圧縮率に基づいて、送信データまたは圧縮データのいずれかを送信するか判定（スキップ判定）する。ここでは、圧縮データを送信しないと判定された（ＮＧ）とする。尚、圧縮部１５３は、送信データのサイズと圧縮データのサイズをスキップ判定部１５２に送信し、スキップ判定部１５２が圧縮率を算出してもよい。
【００６５】
ステップＳ６０７において、スキップ判定部１５２は、スキップ要求をメイン処理部１１３に送信する。また、スキップ判定部１５２は、圧縮データを送信しないことを示すＮＧを圧縮部１５３に送信する（不図示）。なお、スキップ判定部１５２の代わりに圧縮部１５３がスキップ要求をメイン処理部１１３に送信してもよい。
【００６６】
ステップＳ６０８において、メイン処理部１１３は、圧縮されていない送信データを送信先の装置に送信する。詳細には、メイン処理部１１３は、送信データをメインメモリ１２１から読み出してネットワークＩＦ１４１に送信する。ネットワークＩＦ１４１は、送信データを接続されているＷＡＮに出力する。
【００６７】
図８は、実施の形態のＣＰＵの処理のフローチャートである。図８は、詳細にはメイン処理部１１３の処理を示すフローチャートである。
【００６８】
ステップＳ８０１において、メイン処理部１１３は、送信アプリ部１１２から送信データＸを受信する。メイン処理部１１３が送信データを受信すると制御はステップＳ８０２に進む。
【００６９】
ステップＳ８０２において、メイン処理部１１３は、ＤＤＲメモリ１６１に送信データＸを転送する。
【００７０】
ステップＳ８０３において、メイン処理部１１３は、メイン処理部１１３は、送信データＸに対する圧縮処理のリクエストを圧縮部１５３に送信する。そして、メイン処理部１１３は、ＦＰＧＡ１５１からの応答を待つ。メイン処理部１１３がＦＰＧＡ１５１から応答を受信したら制御はステップＳ８０４に進む。
【００７１】
ステップＳ８０４において、メイン処理部１１３は、受信した応答が処理完了通知かスキップ要求か判定する。受信した応答が処理完了通知である場合、制御はステップＳ８０５に進み、受信した応答がスキップ要求である場合、制御はステップＳ８０６に進む。
【００７２】
ステップＳ８０５において、メイン処理部１１３は、送信データＸを圧縮した圧縮データをＤＤＲメモリ１６１から読み出し、圧縮データをネットワークＩＦ１４１に送信する。
【００７３】
ステップＳ８０６において、メイン処理部１１３は、送信データＸ（圧縮前データ）をメインメモリ１２１から読み出してネットワークＩＦ１４１に送信する。
【００７４】
図９は、実施の形態の圧縮部の処理のフローチャートである。
ステップＳ８１１において、圧縮部１５３は、メイン処理部１１３から送信データＸの圧縮処理のリクエスト（圧縮リクエスト）を受信する。
【００７５】
ステップＳ８１２において、圧縮部１５３は、ＤＤＲメモリ１６１から送信データＸを読み出す。
【００７６】
ステップＳ８１３において、圧縮部１５３は、送信データＸに対して圧縮処理を実行して圧縮データを生成する。圧縮部１５３は、圧縮データをバッファ１５３に転送し、バッファ１５３に圧縮データを記憶する。
【００７７】
ステップＳ８１４において、圧縮部１５３は、スキップ判定部１５２に圧縮データの利用可否を問い合わせる。また、圧縮部１５３は、問い合わせと一緒に圧縮データＸのサイズosizeXおよび圧縮データのサイズcsizeXを送信する。圧縮部１５３は、圧縮データＸの圧縮率を送信してもよい。
【００７８】
ステップＳ８１５において、圧縮部１５３は、スキップ判定部１５２から通知を受信し、通知が圧縮データを送信することを示すＯＫか圧縮データを送信しないことを示すＮＧか判定する。通知がＯＫの場合、制御はステップＳ８１６に進み、通知がＮＧの場合、制御はステップＳ８１８に進む。
【００７９】
ステップＳ８１６において、圧縮部１５３は、バッファ１５４に記憶された送信データＸを圧縮した圧縮データをＤＤＲメモリ１６１に転送する。
【００８０】
ステップＳ８１７において、圧縮部１５３は、処理完了通知をメイン処理部１１３に送信する。
【００８１】
ステップＳ８１８において、圧縮部１５３は、バッファ１５４に記憶された送信データＸを圧縮した圧縮データを破棄する。
【００８２】
ステップＳ８１９において、圧縮部１５３は、スキップ要求をメイン処理部１１３に送信する。尚、スキップ判定部１５２がスキップ要求をメイン処理部１１３に送信する場合は、ステップＳ８１９は省略してもよい。
【００８３】
図１０は、実施の形態のスキップ判定部の処理のフローチャートである。
ステップＳ８２１において、スキップ判定部１５２は、圧縮部１５３から圧縮データの利用可否の問い合わせを受信する。また、スキップ判定部１５２は、圧縮部１５３から送信データＸのサイズおよび圧縮データのサイズを受信する。また、スキップ判定部１５２は、圧縮部１５３から圧縮率を受信してもよい。
【００８４】
ステップＳ８２２において、スキップ判定部１５２は、送信データＸのサイズをosizeXとし、圧縮データのサイズをcsizeXとする。
【００８５】
ステップＳ８２３において、スキップ判定部１５２は、送信データＸの圧縮率R_Xを算出する。圧縮率R_Xは、圧縮率R_X=圧縮データのサイズcsizeX/送信データＸのサイズosizeXにより算出される。
【００８６】
尚、スキップ判定部１５２は、圧縮部１５３から圧縮率を受信した場合には、ステップＳ８２２，Ｓ８２３の処理は省略してもよい。
【００８７】
ステップＳ８２４において、スキップ判定部１５２は、判定結果retを初期化、すなわち判定結果retを１に設定する。
【００８８】
ステップＳ８２５において、スキップ判定部１５２は、圧縮率R_Xが閾値R_th以上であるか判定する。圧縮率R_Xが閾値R_th以上である場合、スキップ判定部１５２は、判定結果retを０に設定する。圧縮率R_Xが閾値R_th未満である場合、判定結果retは１のままである。
【００８９】
閾値R_thは、例えば、閾値R_th＝１−ＷＡＮ速度／展開速度とする。ＷＡＮ速度は、ネットワークＩＦ１４１と接続しているネットワーク（ＷＡＮ）の速度（容量）である。展開速度は、送信データＸ（または圧縮データ）の送信先の装置において、受信した圧縮データを展開する展開部の性能を示す。展開速度は、展開部の出力データ（すなわち、圧縮データを展開した送信データ）の出力の速度である。閾値R_thは、予め設定されているとする。
【００９０】
例えば、ＷＡＮ速度＝１０Ｇｂｐｓ、展開速度＝４０Ｇｂｐｓの場合、閾値R_thは０．７５となる。例えば、ＷＡＮ速度＝１Ｇｂｐｓ、展開速度＝４０Ｇｂｐｓの場合、閾値R_thは０．９７５となる。圧縮率に基づいて判定することで、送信データが圧縮されにくい場合には、圧縮データが送信されず、バス１８１，１９１の負担が低減される。また、ＷＡＮ速度および展開速度に基づいて判定することで、送信先へのデータの転送速度を考慮した判定を行うことが出来る。
【００９１】
また、ステップＳ８２５において、スキップ判定部１５２は、以下のような判定方法を用いて判定結果retを０に設定してもよい。
【００９２】
・ＦＰＧＡ側バス帯域重視
スキップ判定部１５２は、生成された圧縮データのサイズを圧縮データが生成された時刻とともに記録しておく。そして、直近１秒で生成された圧縮データのサイズがＦＰＧＡ１５１とＤＤＲメモリ１６１間のバス１９１の速度*０．６より大きい場合、スキップ判定部１５２は、判定結果retを０に設定する。
【００９３】
例えば、ＦＰＧＡ１５１とＤＤＲメモリ１６１間のバス１９１の速度が64Gbps(8GB/s)の場合、直近1秒で4.8GByteより大きい圧縮データが生成されていれば、スキップ判定部１５２は、判定結果retを０に設定する。このように、バス１９１に余裕が少ない場合に、圧縮データを送信しないことで、バスの逼迫による性能低下を防止できる。
【００９４】
・ＷＡＮ空き容量重視
スキップ判定部１５２は、送信側である情報処理装置１０１のデータの入力レートを記録しておく。データの入力レートは、ＣＰＵ１１１がネットワークＩＦ１４１を介して送信先に送信した所定時間（例えば１秒）当たりのデータのサイズである。
【００９５】
例えば、直近1秒の入力レートがＷＡＮ速度未満である場合、スキップ判定部１５２は、判定結果retを０に設定する。すなわち、ＷＡＮの帯域に余裕がある場合には、圧縮データを送信しなくてもよいと考えられるため、圧縮データを送信せずに、バス１８１，１９１およびＦＰＧＡ１５１の負荷を低減する。
【００９６】
ステップＳ８２６において、スキップ判定部１５２は、判定結果retが０であるか否か判定する。判定結果retが０である場合、制御はステップＳ８２７に進み、判定結果retが０でない（すなわち、判定結果ret＝１）場合、制御はステップＳ８２８に進む。
【００９７】
ステップＳ８２７において、スキップ判定部１５２は、圧縮データを送信しないことを示すＮＧを圧縮部１５３に送信する。
【００９８】
ステップＳ８２８において、スキップ判定部１５２は、圧縮データを送信することを示すＯＫを圧縮部１５３に送信する。
【００９９】
実施の形態の情報処理装置によれば、データの送信において情報処理装置の性能低下を防止できる。
【０１００】
以上の実施の形態に関し、さらに以下の付記を開示する。
（付記１）
ネットワークと接続する情報処理装置であって、
送信データを圧縮して圧縮データを生成する圧縮部と
前記圧縮データのサイズに基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する判定部と、
を有する処理回路と、
前記判定部の判定結果に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信する処理部と、
を備える情報処理装置。
（付記２）
前記処理回路は、前記判定部の判定結果に基づいて、前記処理回路と接続するメモリに前記圧縮データを記憶する付記１記載の情報処理装置。
（付記３）
前記処理回路は、前記判定部が前記圧縮データを前記ネットワークに送信すると判定した場合のみ、前記メモリに前記圧縮データを記憶する付記２記載の情報処理装置。
（付記４）
前記圧縮データのサイズと前記送信データのサイズの比率を算出する算出部をさらに備え、
前記判定部は、前記比率に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する付記１乃至３のいずれか１項に記載の情報処理装置。
（付記５）
前記判定部は、所定期間内に生成された圧縮データのサイズおよび前記メモリと前記処理回路の間のバスの速度に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する付記１乃至３のいずれか１項に記載の情報処理装置。
（付記６）
ネットワークと接続する情報処理装置が、
送信データを圧縮して圧縮データを生成し、
前記圧縮データのサイズに基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定し、
前記判定の結果に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信する、
情報処理方法。
（付記７）
前記判定の結果に基づいて、前記処理回路と接続するメモリに前記圧縮データを記憶する付記６記載の情報処理方法。
（付記８）
前記圧縮データを前記ネットワークに送信すると判定された場合のみ、前記メモリに前記圧縮データを記憶する付記７記載の情報処理方法。
（付記９）
前記圧縮データのサイズと前記送信データのサイズの比率を算出し、
前記比率に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する付記６乃至８のいずれか１項に記載の情報処理方法。
（付記１０）
前記判定する処理は、所定期間内に生成された圧縮データのサイズおよび前記メモリと前記処理回路の間のバスの速度に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する付記６乃至８のいずれか１項に記載の情報処理方法。
（付記１１）
ネットワークと接続するコンピュータに、
送信データを圧縮して圧縮データを生成し、
前記圧縮データのサイズに基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定し、
前記判定の結果に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信する、
処理を実行させるプログラム。
（付記１２）
前記コンピュータは、前記判定の結果に基づいて、前記処理回路と接続するメモリに前記圧縮データを記憶する付記１１記載のプログラム。
（付記１３）
前記コンピュータは、前記圧縮データを前記ネットワークに送信すると判定された場合のみ、前記メモリに前記圧縮データを記憶する付記１２記載のプログラム。
（付記１４）
前記コンピュータは、
前記圧縮データのサイズと前記送信データのサイズの比率を算出し、
前記比率に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する付記１１乃至１３のいずれか１項に記載のプログラム。
（付記１５）
前記コンピュータは、前記判定する処理において、所定期間内に生成された圧縮データのサイズおよび前記メモリと前記処理回路の間のバスの速度に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する付記１１乃至１３のいずれか１項に記載のプログラム。
【符号の説明】
【０１０１】
１０１    情報処理装置
１１１    ＣＰＵ
１２１    メインメモリ
１３１    ＨＤＤ
１３２    クライアントアプリ
１３３    ＷＡＮ高速化アプリ
１４１    ネットワークＩＦ
１５１    ＦＰＧＡ
１５２    スキップ判定部
１５３    圧縮部
１５４    バッファ
１６１    ＤＤＲメモリ
１７１    メモリバス
１８１    バス
１９１    バス
【図１】
2019186821.tif 000003
【図２Ａ】
2019186821.tif 000004
【図２Ｂ】
2019186821.tif 000005
【図２Ｃ】
2019186821.tif 000006
【図２Ｄ】
2019186821.tif 000007
【図２Ｅ】
2019186821.tif 000008
【図２Ｆ】
2019186821.tif 000009
【図３】
2019186821.tif 000010
【図４】
2019186821.tif 000011
【図５Ａ】
2019186821.tif 000012
【図５Ｂ】
2019186821.tif 000013
【図５Ｃ】
2019186821.tif 000014
【図５Ｄ】
2019186821.tif 000015
【図５Ｅ】
2019186821.tif 000016
【図６】
2019186821.tif 000017
【図７】
2019186821.tif 000018
【図８】
2019186821.tif 000019
【図９】
2019186821.tif 000020
【図１０】
2019186821.tif 000021