(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-05
(45)【発行日】2022-12-13
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
H03M 7/30 20060101AFI20221206BHJP
G06F 13/12 20060101ALI20221206BHJP
G06F 13/10 20060101ALI20221206BHJP
【FI】
H03M7/30 Z
G06F13/12 330A
G06F13/10 330D
(21)【出願番号】P 2018077621
(22)【出願日】2018-04-13
【審査請求日】2021-01-13
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100121083
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】片山 健太朗
【審査官】北村 智彦
(56)【参考文献】
【文献】特開2003-338761(JP,A)
【文献】特開2015-103077(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03M 7/30
G06F 13/12
G06F 13/10
(57)【特許請求の範囲】
【請求項1】
ネットワークと接続する情報処理装置であって、
メモリと、
前記メモリと接続する処理回路であって、
送信データを圧縮して圧縮データを生成する
と共に、生成した前記圧縮データを前記メモリに記憶させる圧縮部と
、
前記圧縮データのサイズについての前記送信データのサイズに対する比率を算出する算出部と、
前記比率が閾値以上である場合には圧縮前の前記送信データを前記ネットワークに送信すると判定し、前記比率が前記閾値未満である場合には前記圧縮データを前記ネットワークに送信すると判定する判定部であって、前記閾値は、前記圧縮データを前記ネットワークから受信した場合に前記圧縮データを展開して前記送信データを復元する展開部についての前記復元された送信データの出力の速度で前記ネットワークの速度を除算した値を1から減算することによって得られる値である、前記判定部と、
を有する
前記処理回路と、
前記メモリから前記圧縮データを読み出すと共に、前記判定部の判定結果に基づいて、前記圧縮データと
、圧縮前の前記送信データ
とのいずれかを前記ネットワークに送信する処理部と、
を備え
、
前記判定部は、圧縮前の前記送信データを前記ネットワークに送信すると判定した場合には、前記圧縮部による前記圧縮データの前記メモリへの記憶と、前記処理部による前記メモリからの前記圧縮データの読み出しとをスキップさせる、
情報処理装置。
【請求項2】
ネットワークと接続する情報処理装置が、
送信データを圧縮して圧縮データを生成し、
前記圧縮データのサイズについての前記送信データのサイズに対する比率を算出し
、
前記比率が前記閾値未満である場合には
、生成した前記圧縮データを記憶させておいたメモリから前記圧縮データを
読み出して前記ネットワークに送信
し、
前記比率が閾値以上である場合には、生成した前記圧縮データの前記メモリへの記憶と前記メモリからの前記圧縮データの読み出しとをスキップして、圧縮前の前記送信データを前記ネットワークに送信し、
前記閾値は、前記圧縮データを前記ネットワークから受信した場合に前記圧縮データを展開して前記送信データを復元する展開部についての前記復元された送信データの出力の速度で前記ネットワークの速度を除算した値を1から減算することによって得られる値である、
情報処理方法。
【請求項3】
ネットワークと接続するコンピュータに、
送信データを圧縮して圧縮データを生成し、
前記圧縮データのサイズについての前記送信データのサイズに対する比率を算出し
、
前記比率が前記閾値未満である場合には
、生成した前記圧縮データを記憶させておいたメモリから前記圧縮データを
読み出して前記ネットワークに送信
し、
前記比率が閾値以上である場合には、生成した前記圧縮データの前記メモリへの記憶と前記メモリからの前記圧縮データの読み出しとをスキップして、圧縮前の前記送信データを前記ネットワークに送信する、
処理を実行させ、
前記閾値は、前記圧縮データを前記ネットワークから受信した場合に前記圧縮データを展開して前記送信データを復元する展開部についての前記復元された送信データの出力の速度で前記ネットワークの速度を除算した値を1から減算することによって得られる値である、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
CPU(Central Processing Unit)で動作するソフトウェアでは不向きな処理をGPU(Graphics Processing Unit)やFPGA(Field-Programmable Gate Array)等のハードウェア(HW)アクセラレータで行うことで、処理を高速化する技術がある。HWアクセラレータは、ウェブ検索やクラウドサービスなど様々な分野で利用されている。
【0003】
また、WAN(Wide Area Network)広帯域化のためのWAN高速化技術が知られている。
【0004】
WAN高速化技術には、大きく分けて以下の2つのアプローチが取られている。
(1)トランスポート最適化:TCP(Transmission Control Protocol)/UDP(User Datagram Protocol)を改良し、遅延やパケットロスがある場合にもWAN帯域を有効活用可能する。
(2)データ最適化:送信データをWANに送る前に圧縮しておくことで、WAN上を流れるデータ容量を削減し、実効帯域を向上させる。
【0005】
データ最適化は計算量が大きく、CPUで実行する場合にボトルネックになる。そのため、送信データの圧縮処理をFPGAで行うことで高速化している。
【0006】
図1は、データ最適化によるWAN高速化技術の例を説明する図である。
図1では、送信システム11のクライアント12から受信システム21のサーバ23に送信データを送信する場合について説明する。
【0007】
送信システム11は、クライアント12およびWAN高速化部13を有し、受信システム21は、WAN高速化部22およびサーバ23を有する。WAN高速化部13とWAN高速化部22はWAN31を介して接続されている。
【0008】
クライアント12からサーバ23に送信データを送信する場合、クライアント12は、WAN高速化部13に送信データを送信し、WAN高速化部13は、受信した送信データを圧縮して圧縮データを生成する。WAN高速化部13は、圧縮データをWAN31を介してWAN高速化部22に送信する。
【0009】
WAN高速化部22は、受信した圧縮データを展開して送信データを復元する。WAN高速化部22は、送信データをサーバ23に送信する。
【0010】
このように、データ最適化によるWAN高速化技術では、圧縮データをWANへ送出することで、WANの使用帯域を削減できる。
【0011】
高負荷時等のストレージ装置に対するキャッシュ処理に起因して、スループットが低下する等の問題を解消する技術が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0012】
【文献】特開2017-58858号公報
【文献】特開2005-301607号公報
【文献】特開平4-359315号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
情報処理装置がFPGAを用いて送信データの圧縮処理を行う場合、例えば、CPUとFPGA間のバスが逼迫すると性能が低下する。例えば、データの圧縮率が低い場合にバスへの負荷が大きくなり性能が低下する場合がある。
【0014】
1つの側面において、本発明は、データの送信処理において情報処理装置の性能低下の防止を目的とする。
【課題を解決するための手段】
【0015】
実施の形態の情報処理装置は、ネットワークと接続し、メモリと、前記メモリと接続する処理回路と、処理部と、を備える。前記処理回路は、圧縮部と、算出部と、判定部と、を有する。
【0016】
前記圧縮部は、送信データを圧縮して圧縮データを生成すると共に、生成した前記圧縮データを前記メモリに記憶させる。
前記算出部は、前記圧縮データのサイズについての前記送信データのサイズに対する比率を算出する。
前記判定部は、前記比率が閾値以上である場合には圧縮前の前記送信データを前記ネットワークに送信すると判定し、前記比率が前記閾値未満である場合には前記圧縮データを前記ネットワークに送信すると判定する。なお、前記閾値は、前記圧縮データを前記ネットワークから受信した場合に前記圧縮データを展開して前記送信データを復元する展開部についての前記復元された送信データの出力の速度で前記ネットワークの速度を除算した値を1から減算することによって得られる値である。
【0017】
前記処理部は、前記メモリから前記圧縮データを読み出すと共に、前記判定部の判定結果に基づいて、前記圧縮データと、圧縮前の前記送信データとのいずれかを前記ネットワークに送信する。
前記判定部は、圧縮前の前記送信データを前記ネットワークに送信すると判定した場合には、前記圧縮部による前記圧縮データの前記メモリへの記憶と、前記処理部による前記メモリからの前記圧縮データの読み出しとをスキップさせる。
【発明の効果】
【0018】
実施の形態の情報処理装置によれば、データの送信において情報処理装置の性能低下を防止できる。
【図面の簡単な説明】
【0019】
【
図1】データ最適化によるWAN高速化技術の例を説明する図である。
【
図2A】比較例の情報処理装置によるWAN高速化技術を説明する図である。
【
図2B】比較例の情報処理装置によるWAN高速化技術を説明する図である。
【
図2C】比較例の情報処理装置によるWAN高速化技術を説明する図である。
【
図2D】比較例の情報処理装置によるWAN高速化技術を説明する図である。
【
図2E】比較例の情報処理装置によるWAN高速化技術を説明する図である。
【
図2F】比較例の情報処理装置によるWAN高速化技術を説明する図である。
【
図5A】実施の形態の送信処理を説明する図である。
【
図5B】実施の形態の送信処理を説明する図である。
【
図5C】実施の形態の送信処理を説明する図である。
【
図5D】実施の形態の送信処理を説明する図である。
【
図5E】実施の形態の送信処理を説明する図である。
【
図6】実施の形態の圧縮データが送信される場合の送信処理のシーケンス図である。
【
図7】実施の形態の圧縮データが送信されない場合の送信処理のシーケンス図である。
【
図8】実施の形態のCPUの処理のフローチャートである。
【
図9】実施の形態の圧縮部の処理のフローチャートである。
【
図10】実施の形態のスキップ判定部の処理のフローチャートである。
【発明を実施するための形態】
【0020】
以下、図面を参照しながら実施の形態について説明する。
最初に比較例のWAN高速化技術と問題点について説明する。
【0021】
図2A~2Fは、比較例の情報処理装置によるWAN高速化技術を説明する図である。
図2A:情報処理装置51は、CPU52、メインメモリ53、HDD(Hard Disk Drive)54、ネットワークIF(Interface)55、FPGA56、およびDDR(Double-Data-Rate Synchronous)メモリ57を有する。
【0022】
CPU52は、メモリバス61を介してメインメモリ53と接続されている。CPU52は、クライアントアプリ58およびWAN高速化アプリ59をメインメモリ53を利用して実行する。CPU52、HDD54、ネットワークIF55、およびFPGA56は、バス62(例えば、PCI Expressバス)を介して、互いに接続されている。FPGA56は、バス63を介してDDRメモリ57と接続されている。ネットワークIF55は、WANと接続されている。また、送信データはHDD131に記憶されているとする。
【0023】
クライアントアプリ58は、送信データをHDD54から読み出し、送信データと送信データの送信要求をWAN高速化アプリ59に送信する。WAN高速化アプリ59は、送信データをメインメモリ53に送信し、送信データをメインメモリ53に記憶する。
【0024】
図2B:WAN高速化アプリ59を実行するCPU52は、送信データをDDRメモリ57へ転送する。詳細には、CPU52は、送信データをFPGA56に送信し、FPGA56は送信データをDDRメモリ57に記憶する。
【0025】
図2C:FPGA56は、DDRメモリ57から送信データを読み出し、送信データを圧縮して圧縮データを生成する。FPGA56は、DDRメモリ57に圧縮データを記憶する。
【0026】
図2D:FPGA56は、CPU52に処理完了を通知する。
図2E:WAN高速化アプリ59を実行するCPU52は、DDRメモリ57から圧縮データを読み出し、メインメモリ53に記憶する。
【0027】
図2F:WAN高速化アプリ59を実行するCPU52は、メインメモリ53から圧縮データを読み出し、圧縮データをネットワークIF55に送信する。ネットワークIF55は圧縮データをWANを介して送信先に送信する。
【0028】
図3は、比較例の問題点を説明する図である。
情報処理装置51において、FPGA56とDDRメモリ57の間のバス63またはCPU52とFPGA56の間のバス62が逼迫した際に性能が低下する。FPGA56が高並列処理をする場合、FPGA56内の演算機ごとのアクセスタイミングの揺れにより、一時的にバス62、63の負荷が大きくなる場合がある。それにより、情報処理装置51の性能が低下する場合がある。
【0029】
また、データによって圧縮率は変動するが、圧縮率が低い場合は圧縮データのサイズが大きくなるためバス62,63への負担が増し、更なる性能低下に繋がる場合がある。
【0030】
図4は実施の形態の情報処理装置の構成図である。
情報処理装置101は、CPU111、メインメモリ121、HDD131、ネットワークIF141、FPGA151、およびDDRメモリ161を有する。情報処理装置101は、例えば、サーバ等のコンピュータである。
【0031】
CPU111は、メモリバス171を介してメインメモリ121と接続されている。CPU111、HDD131、ネットワークIF141、およびFPGA151は、バス181を介して、互いに接続されている。CPU111は、処理部の一例である。
【0032】
FPGA151は、スキップ判定部152、圧縮部153、およびバッファ154を有する。FPGA151は、バス191を介してDDRメモリ161と接続されている。FPGA151は、再構成可能な集積回路であり、処理回路の一例である。スキップ判定部152は、判定部の一例である。スキップ判定部152および圧縮部153は、算出部の一例である。
【0033】
HDD131は、情報処理装置101で使用されるプログラムやデータ等を記憶する。HDD131は、クライアントアプリ132およびWAN高速化アプリ133を記憶する。クライアントアプリ132は、送信データの送信要求を行うプログラムであり、WAN高速化アプリ133は、送信要求に応じて、送信データまたは圧縮データをネットワークIF141を介して送信先の装置に送信するプログラムである。
【0034】
CPU111は、メインメモリ121を利用してクライアントアプリ132を実行することにより、送信アプリ部として動作する。CPU111は、メインメモリ121を利用してWAN高速化アプリ133を実行することにより、メイン処理部として動作する。
【0035】
ネットワークIF141は、WANと接続し、通信に伴うデータ変換を行う通信インターフェースである。WANは、ネットワークの一例である。
【0036】
図5A~5Eは、実施の形態の送信処理を説明する図である。
図5A~5Eでは、圧縮データが送信されない場合、すなわち圧縮されていない送信データが送信される場合を説明する。
【0037】
図5A:CPU111は、クライアントアプリ132を実行することにより、送信アプリ部112として動作し、WAN高速化アプリ133を実行することにより、メイン処理部113として動作する。また、送信データはHDD131に記憶されているとする。
【0038】
送信アプリ部112は、送信データをHDD131から読み出し、送信データと送信データの送信要求をメイン処理部113に送信する。メイン処理部113は、送信データをメインメモリ121に送信し、送信データをメインメモリ121に記憶する。
【0039】
図5B:CPU111は、送信データをDDRメモリ161へ転送する。詳細には、CPU111は、送信データをFPGA151に送信し、FPGA151は送信データをDDRメモリ161に記憶する。
【0040】
図5C:圧縮部153は、DDRメモリ161から送信データを読み出し、送信データを圧縮して圧縮データを生成する。圧縮部153は、圧縮データをバッファ154に書き込む。圧縮完了時に圧縮部153は、スキップ判定部162に圧縮率を送信する。
【0041】
図5D:スキップ判定部152は、圧縮率に基づいて、送信データまたは圧縮データのいずれかを送信するか判定(スキップ判定)する。ここでは、圧縮率が悪く、圧縮データを送信しないと判定された、すなわち性能低下を起こすと判定されたとする。スキップ判定部152は、スキップ要求をCPU111と圧縮部153に送信する。
【0042】
図5E:FPGA151は、圧縮データに対する残りの処理(圧縮データのDDRメモリ161とCPU111への転送)をスキップする。CPU111は、送信データをメインメモリ121から読み出してネットワークIF141に送信する。
【0043】
実施の形態の情報処理装置101によれば、性能低下が予測される場合に圧縮データのDDRメモリ161やCPU111へ転送をスキップし、CPU111から圧縮前のデータを送信する。このようにして、圧縮されにくいデータが入力された場合やバス性能が一時的に低下した場合に情報処理装置全体の性能が低下することを防ぐことができる。圧縮データのDDRメモリ161やCPU111へ転送をスキップすることで、バス181,191の帯域を節約することが出来る。
【0044】
図6は、実施の形態の圧縮データが送信される場合の送信処理のシーケンス図である。
上述のように、CPU111は、クライアントアプリ132を実行することにより、送信アプリ部112として動作し、WAN高速化アプリ133を実行することにより、メイン処理部113として動作する。
【0045】
ステップS501-i(i=1~3)において、送信アプリ部112は、送信データをHDD131から読み出し、送信データと送信データの送信要求をメイン処理部113に送信する。メイン処理部113は、送信データをメインメモリ121に送信し、送信データをメインメモリ121に記憶する。
【0046】
ステップS502-iにおいて、メイン処理部113は、送信データをFPGA151に送信し、FPGA151は送信データをDDRメモリ161に記憶する。
【0047】
ステップS503において、メイン処理部113は、送信データに対する圧縮処理のリクエストを圧縮部153に送信する。
【0048】
ステップS504-iにおいて、圧縮部153は、圧縮処理のリクエストを受信し、DDRメモリ161から送信データを読み出し、送信データを圧縮して圧縮データを生成する。
【0049】
ステップS505-iにおいて、圧縮部153は、圧縮データをバッファ154に記憶する。
【0050】
ステップS506において、圧縮部153は、圧縮データのサイズと送信データのサイズの比率(以下、圧縮率と呼ぶ)を算出する。すなわち、「圧縮率=圧縮データのサイズ/送信データのサイズ」である。圧縮率の値が小さいほど送信データをより小さく圧縮できていることを示す。圧縮部153は、圧縮データの利用可否の問い合わせと算出した圧縮率をスキップ判定部152に送信する。スキップ判定部152は、圧縮率に基づいて、送信データまたは圧縮データのいずれかを送信するか判定(スキップ判定)する。ここでは、圧縮データを送信すると判定された(OK)とする。尚、圧縮部153は、送信データのサイズと圧縮データのサイズをスキップ判定部152に送信し、スキップ判定部152が圧縮率を算出してもよい。
【0051】
ステップS507において、スキップ判定部152は、圧縮データを送信することを示すOK(圧縮データ転送要求)を圧縮部153に送信する。
【0052】
ステップS508-iにおいて、圧縮部153は、圧縮データをDDRメモリ161に送信する指示をバッファ154に送信する。
【0053】
ステップS509-iにおいて、バッファ154は、記憶している圧縮データをDDRメモリ161に送信し、DDRメモリ161は、圧縮データを記憶する。
【0054】
ステップS510において、圧縮部153は、処理完了通知をメイン処理部に送信する。
【0055】
ステップS511において、メイン処理部113は、DDRメモリ161に圧縮データの読み出しを要求する。
【0056】
ステップS512-iにおいて、メイン処理部113は、DDRメモリ161から圧縮データを受信する。
【0057】
ステップS513において、メイン処理部113は、圧縮データを送信先の装置に送信する。詳細には、メイン処理部113は、圧縮データをネットワークIF141に送信する。ネットワークIF141は、圧縮データを接続されているWANに出力する。
【0058】
図7は、実施の形態の圧縮データが送信されない場合の送信処理のシーケンス図である。
図7では、圧縮データが送信されない場合、すなわち圧縮されていない送信データが送信される場合を説明する。
【0059】
ステップS601-i(i=1~3)において、送信アプリ部112は、送信データをHDD131から読み出し、送信データと送信データの送信要求をメイン処理部113に送信する。メイン処理部113は、送信データをメインメモリ121に送信し、送信データをメインメモリ121に記憶する。
【0060】
ステップS602-iにおいて、メイン処理部113は、送信データをFPGA151に送信し、FPGA151は送信データをDDRメモリ161に記憶する。
【0061】
ステップS603において、メイン処理部113は、送信データの圧縮リクエストを圧縮部153に送信する。
【0062】
ステップS604-iにおいて、圧縮部153は、DDRメモリ161から送信データを読み出し、送信データを圧縮して圧縮データを生成する。
【0063】
ステップS605-iにおいて、圧縮部153は、圧縮データをバッファ154に記憶する。
【0064】
ステップS606において、圧縮部153は、圧縮データのサイズと送信データのサイズの比率(以下、圧縮率と呼ぶ)を算出する。圧縮部153は、圧縮データの利用可否の問い合わせと算出した圧縮率をスキップ判定部152に送信する。スキップ判定部152は、圧縮率に基づいて、送信データまたは圧縮データのいずれかを送信するか判定(スキップ判定)する。ここでは、圧縮データを送信しないと判定された(NG)とする。尚、圧縮部153は、送信データのサイズと圧縮データのサイズをスキップ判定部152に送信し、スキップ判定部152が圧縮率を算出してもよい。
【0065】
ステップS607において、スキップ判定部152は、スキップ要求をメイン処理部113に送信する。また、スキップ判定部152は、圧縮データを送信しないことを示すNGを圧縮部153に送信する(不図示)。なお、スキップ判定部152の代わりに圧縮部153がスキップ要求をメイン処理部113に送信してもよい。
【0066】
ステップS608において、メイン処理部113は、圧縮されていない送信データを送信先の装置に送信する。詳細には、メイン処理部113は、送信データをメインメモリ121から読み出してネットワークIF141に送信する。ネットワークIF141は、送信データを接続されているWANに出力する。
【0067】
図8は、実施の形態のCPUの処理のフローチャートである。
図8は、詳細にはメイン処理部113の処理を示すフローチャートである。
【0068】
ステップS801において、メイン処理部113は、送信アプリ部112から送信データXを受信する。メイン処理部113が送信データを受信すると制御はステップS802に進む。
【0069】
ステップS802において、メイン処理部113は、DDRメモリ161に送信データXを転送する。
【0070】
ステップS803において、メイン処理部113は、メイン処理部113は、送信データXに対する圧縮処理のリクエストを圧縮部153に送信する。そして、メイン処理部113は、FPGA151からの応答を待つ。メイン処理部113がFPGA151から応答を受信したら制御はステップS804に進む。
【0071】
ステップS804において、メイン処理部113は、受信した応答が処理完了通知かスキップ要求か判定する。受信した応答が処理完了通知である場合、制御はステップS805に進み、受信した応答がスキップ要求である場合、制御はステップS806に進む。
【0072】
ステップS805において、メイン処理部113は、送信データXを圧縮した圧縮データをDDRメモリ161から読み出し、圧縮データをネットワークIF141に送信する。
【0073】
ステップS806において、メイン処理部113は、送信データX(圧縮前データ)をメインメモリ121から読み出してネットワークIF141に送信する。
【0074】
図9は、実施の形態の圧縮部の処理のフローチャートである。
ステップS811において、圧縮部153は、メイン処理部113から送信データXの圧縮処理のリクエスト(圧縮リクエスト)を受信する。
【0075】
ステップS812において、圧縮部153は、DDRメモリ161から送信データXを読み出す。
【0076】
ステップS813において、圧縮部153は、送信データXに対して圧縮処理を実行して圧縮データを生成する。圧縮部153は、圧縮データをバッファ153に転送し、バッファ153に圧縮データを記憶する。
【0077】
ステップS814において、圧縮部153は、スキップ判定部152に圧縮データの利用可否を問い合わせる。また、圧縮部153は、問い合わせと一緒に圧縮データXのサイズosizeXおよび圧縮データのサイズcsizeXを送信する。圧縮部153は、圧縮データXの圧縮率を送信してもよい。
【0078】
ステップS815において、圧縮部153は、スキップ判定部152から通知を受信し、通知が圧縮データを送信することを示すOKか圧縮データを送信しないことを示すNGか判定する。通知がOKの場合、制御はステップS816に進み、通知がNGの場合、制御はステップS818に進む。
【0079】
ステップS816において、圧縮部153は、バッファ154に記憶された送信データXを圧縮した圧縮データをDDRメモリ161に転送する。
【0080】
ステップS817において、圧縮部153は、処理完了通知をメイン処理部113に送信する。
【0081】
ステップS818において、圧縮部153は、バッファ154に記憶された送信データXを圧縮した圧縮データを破棄する。
【0082】
ステップS819において、圧縮部153は、スキップ要求をメイン処理部113に送信する。尚、スキップ判定部152がスキップ要求をメイン処理部113に送信する場合は、ステップS819は省略してもよい。
【0083】
図10は、実施の形態のスキップ判定部の処理のフローチャートである。
ステップS821において、スキップ判定部152は、圧縮部153から圧縮データの利用可否の問い合わせを受信する。また、スキップ判定部152は、圧縮部153から送信データXのサイズおよび圧縮データのサイズを受信する。また、スキップ判定部152は、圧縮部153から圧縮率を受信してもよい。
【0084】
ステップS822において、スキップ判定部152は、送信データXのサイズをosizeXとし、圧縮データのサイズをcsizeXとする。
【0085】
ステップS823において、スキップ判定部152は、送信データXの圧縮率R_Xを算出する。圧縮率R_Xは、圧縮率R_X=圧縮データのサイズcsizeX/送信データXのサイズosizeXにより算出される。
【0086】
尚、スキップ判定部152は、圧縮部153から圧縮率を受信した場合には、ステップS822,S823の処理は省略してもよい。
【0087】
ステップS824において、スキップ判定部152は、判定結果retを初期化、すなわち判定結果retを1に設定する。
【0088】
ステップS825において、スキップ判定部152は、圧縮率R_Xが閾値R_th以上であるか判定する。圧縮率R_Xが閾値R_th以上である場合、スキップ判定部152は、判定結果retを0に設定する。圧縮率R_Xが閾値R_th未満である場合、判定結果retは1のままである。
【0089】
閾値R_thは、例えば、閾値R_th=1-WAN速度/展開速度とする。WAN速度は、ネットワークIF141と接続しているネットワーク(WAN)の速度(容量)である。展開速度は、送信データX(または圧縮データ)の送信先の装置において、受信した圧縮データを展開する展開部の性能を示す。展開速度は、展開部の出力データ(すなわち、圧縮データを展開した送信データ)の出力の速度である。閾値R_thは、予め設定されているとする。
【0090】
例えば、WAN速度=10Gbps、展開速度=40Gbpsの場合、閾値R_thは0.75となる。例えば、WAN速度=1Gbps、展開速度=40Gbpsの場合、閾値R_thは0.975となる。圧縮率に基づいて判定することで、送信データが圧縮されにくい場合には、圧縮データが送信されず、バス181,191の負担が低減される。また、WAN速度および展開速度に基づいて判定することで、送信先へのデータの転送速度を考慮した判定を行うことが出来る。
【0091】
また、ステップS825において、スキップ判定部152は、以下のような判定方法を用いて判定結果retを0に設定してもよい。
【0092】
・FPGA側バス帯域重視
スキップ判定部152は、生成された圧縮データのサイズを圧縮データが生成された時刻とともに記録しておく。そして、直近1秒で生成された圧縮データのサイズがFPGA151とDDRメモリ161間のバス191の速度*0.6より大きい場合、スキップ判定部152は、判定結果retを0に設定する。
【0093】
例えば、FPGA151とDDRメモリ161間のバス191の速度が64Gbps(8GB/s)の場合、直近1秒で4.8GByteより大きい圧縮データが生成されていれば、スキップ判定部152は、判定結果retを0に設定する。このように、バス191に余裕が少ない場合に、圧縮データを送信しないことで、バスの逼迫による性能低下を防止できる。
【0094】
・WAN空き容量重視
スキップ判定部152は、送信側である情報処理装置101のデータの入力レートを記録しておく。データの入力レートは、CPU111がネットワークIF141を介して送信先に送信した所定時間(例えば1秒)当たりのデータのサイズである。
【0095】
例えば、直近1秒の入力レートがWAN速度未満である場合、スキップ判定部152は、判定結果retを0に設定する。すなわち、WANの帯域に余裕がある場合には、圧縮データを送信しなくてもよいと考えられるため、圧縮データを送信せずに、バス181,191およびFPGA151の負荷を低減する。
【0096】
ステップS826において、スキップ判定部152は、判定結果retが0であるか否か判定する。判定結果retが0である場合、制御はステップS827に進み、判定結果retが0でない(すなわち、判定結果ret=1)場合、制御はステップS828に進む。
【0097】
ステップS827において、スキップ判定部152は、圧縮データを送信しないことを示すNGを圧縮部153に送信する。
【0098】
ステップS828において、スキップ判定部152は、圧縮データを送信することを示すOKを圧縮部153に送信する。
【0099】
実施の形態の情報処理装置によれば、データの送信において情報処理装置の性能低下を防止できる。
【0100】
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1)
ネットワークと接続する情報処理装置であって、
送信データを圧縮して圧縮データを生成する圧縮部と
前記圧縮データのサイズに基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する判定部と、
を有する処理回路と、
前記判定部の判定結果に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信する処理部と、
を備える情報処理装置。
(付記2)
前記処理回路は、前記判定部の判定結果に基づいて、前記処理回路と接続するメモリに前記圧縮データを記憶する付記1記載の情報処理装置。
(付記3)
前記処理回路は、前記判定部が前記圧縮データを前記ネットワークに送信すると判定した場合のみ、前記メモリに前記圧縮データを記憶する付記2記載の情報処理装置。
(付記4)
前記圧縮データのサイズと前記送信データのサイズの比率を算出する算出部をさらに備え、
前記判定部は、前記比率に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する付記1乃至3のいずれか1項に記載の情報処理装置。
(付記5)
前記判定部は、所定期間内に生成された圧縮データのサイズおよび前記メモリと前記処理回路の間のバスの速度に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する付記1乃至3のいずれか1項に記載の情報処理装置。
(付記6)
ネットワークと接続する情報処理装置が、
送信データを圧縮して圧縮データを生成し、
前記圧縮データのサイズに基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定し、
前記判定の結果に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信する、
情報処理方法。
(付記7)
前記判定の結果に基づいて、前記処理回路と接続するメモリに前記圧縮データを記憶する付記6記載の情報処理方法。
(付記8)
前記圧縮データを前記ネットワークに送信すると判定された場合のみ、前記メモリに前記圧縮データを記憶する付記7記載の情報処理方法。
(付記9)
前記圧縮データのサイズと前記送信データのサイズの比率を算出し、
前記比率に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する付記6乃至8のいずれか1項に記載の情報処理方法。
(付記10)
前記判定する処理は、所定期間内に生成された圧縮データのサイズおよび前記メモリと前記処理回路の間のバスの速度に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する付記6乃至8のいずれか1項に記載の情報処理方法。
(付記11)
ネットワークと接続するコンピュータに、
送信データを圧縮して圧縮データを生成し、
前記圧縮データのサイズに基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定し、
前記判定の結果に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信する、
処理を実行させるプログラム。
(付記12)
前記コンピュータは、前記判定の結果に基づいて、前記処理回路と接続するメモリに前記圧縮データを記憶する付記11記載のプログラム。
(付記13)
前記コンピュータは、前記圧縮データを前記ネットワークに送信すると判定された場合のみ、前記メモリに前記圧縮データを記憶する付記12記載のプログラム。
(付記14)
前記コンピュータは、
前記圧縮データのサイズと前記送信データのサイズの比率を算出し、
前記比率に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する付記11乃至13のいずれか1項に記載のプログラム。
(付記15)
前記コンピュータは、前記判定する処理において、所定期間内に生成された圧縮データのサイズおよび前記メモリと前記処理回路の間のバスの速度に基づいて、前記圧縮データと圧縮前の前記送信データのいずれかを前記ネットワークに送信するかを判定する付記11乃至13のいずれか1項に記載のプログラム。
【符号の説明】
【0101】
101 情報処理装置
111 CPU
121 メインメモリ
131 HDD
132 クライアントアプリ
133 WAN高速化アプリ
141 ネットワークIF
151 FPGA
152 スキップ判定部
153 圧縮部
154 バッファ
161 DDRメモリ
171 メモリバス
181 バス
191 バス