WO2015037274A1 - Load reduction device, server device and load reduction method - Google Patents

Load reduction device, server device and load reduction method Download PDF

Info

Publication number
WO2015037274A1
WO2015037274A1 PCT/JP2014/063043 JP2014063043W WO2015037274A1 WO 2015037274 A1 WO2015037274 A1 WO 2015037274A1 JP 2014063043 W JP2014063043 W JP 2014063043W WO 2015037274 A1 WO2015037274 A1 WO 2015037274A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
area
packet
unit
storage device
Prior art date
Application number
PCT/JP2014/063043
Other languages
French (fr)
Japanese (ja)
Inventor
秀一 稲葉
Original Assignee
株式会社東芝
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社東芝 filed Critical 株式会社東芝
Publication of WO2015037274A1 publication Critical patent/WO2015037274A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

In the present invention, a load reduction device is provided with a storage device interface unit, a buffer memory unit, a data control unit, a packet generation unit, a communication interface unit, and a data release unit. The storage device interface unit acquires data from a storage device without using a processor. The buffer memory unit stores data. The data control unit causes the buffer memory unit to store data in regions. The packet generation unit generates, for each region, a packet that includes data read out from the buffer memory unit. The communication interface unit sends the packets to a client device. The data release unit releases data from the regions where data, which had been included in the packets received by an external device, has been read out.

Description

負荷軽減装置、サーバ装置及び負荷軽減方法Load reduction device, server device, and load reduction method
 本発明の実施形態は、負荷軽減装置、サーバ装置及び負荷軽減方法に関する。 Embodiments described herein relate generally to a load reduction device, a server device, and a load reduction method.
 サーバ装置は、記憶装置に記憶されたデータからパケットを生成し、生成したパケットを、クライアント装置に向けて通信部から通信回線を介して送信する。ここで、サーバ装置では、記憶装置に記憶されたデータがプロセッサの制御によりバスを介して通信部に転送されているため、プロセッサへの負荷は、大きいものとなっている。そこで、プロセッサへの負荷を軽減(オフロード)することを目的とした負荷軽減装置がある。 The server device generates a packet from the data stored in the storage device, and transmits the generated packet from the communication unit to the client device via the communication line. Here, in the server device, the data stored in the storage device is transferred to the communication unit via the bus under the control of the processor, so that the load on the processor is large. Therefore, there is a load reducing device for the purpose of reducing (offloading) the load on the processor.
特開2005-192216号公報JP 2005-192216 A 特開2001-230812号公報Japanese Patent Laid-Open No. 2001-230812 特開2010-136414号公報JP 2010-136414 A 特開2010-148090号公報JP 2010-148090 A
 プロセッサへの負荷を軽減するため、プロセッサを介さずに記憶装置の制御部から通信部にデータを直接転送する場合にも、信号はサーバ装置内のバスを介して接続される。このため、記憶装置の制御部から通信部への転送レートが低いシステムでは、大量のデータを高速にはクライアント装置に配信することができない、という問題がある。 In order to reduce the load on the processor, even when data is directly transferred from the control unit of the storage device to the communication unit without going through the processor, the signal is connected via the bus in the server device. For this reason, in a system with a low transfer rate from the control unit of the storage device to the communication unit, there is a problem that a large amount of data cannot be distributed to the client device at high speed.
 本発明が解決しようとする課題は、プロセッサを介さずに記憶装置から通信部にデータを直接転送する場合、記憶装置の制御部から通信部への転送レートが低いシステムでも、大量のデータを高速にクライアント装置に配信することができる負荷軽減装置、サーバ装置及び負荷軽減方法を提供することである。 The problem to be solved by the present invention is that when data is directly transferred from a storage device to a communication unit without using a processor, a large amount of data can be transferred at high speed even in a system with a low transfer rate from the control unit of the storage device to the communication unit The present invention provides a load reducing device, a server device, and a load reducing method that can be distributed to client devices.
 実施形態の負荷軽減装置は、記憶装置インタフェース部と、バッファメモリ部と、データ制御部と、パケット生成部と、通信インタフェース部と、データ解放部とを備える。記憶装置インタフェース部は、プロセッサを介さずに記憶装置からデータを取得する。バッファメモリ部は、前記記憶装置から取得されたデータを記憶可能である。データ制御部は、前記記憶装置から取得されたデータを、前記バッファメモリ部に定められた領域毎に、前記バッファメモリ部に書き込んで記憶させる。パケット生成部は、前記バッファメモリ部から前記領域毎にデータを読み出し、前記バッファメモリ部から読み出されたデータを含むパケットを、前記領域毎に生成する。通信インタフェース部は、生成された前記パケットをクライアント装置に送信する。データ解放部は、前記クライアント装置に前記パケットが受信されたか否かを判定し、前記クライアント装置に受信された前記パケットに含まれていたデータが読み出された前記領域から、前記記憶装置から取得されたデータを解放する。 The load reduction device according to the embodiment includes a storage device interface unit, a buffer memory unit, a data control unit, a packet generation unit, a communication interface unit, and a data release unit. The storage device interface unit acquires data from the storage device without using a processor. The buffer memory unit can store data acquired from the storage device. The data control unit writes and stores the data acquired from the storage device in the buffer memory unit for each area defined in the buffer memory unit. The packet generation unit reads data for each area from the buffer memory unit, and generates a packet including the data read from the buffer memory unit for each area. The communication interface unit transmits the generated packet to the client device. The data release unit determines whether or not the packet is received by the client device, and obtains from the storage device from the area from which data included in the packet received by the client device is read Release the recorded data.
 実施形態のサーバ装置は、記憶装置と、実施形態の負荷軽減装置とを備える。記憶装置は、データを記憶する。前記負荷軽減装置は、記憶装置インタフェース部と、バッファメモリ部と、データ制御部と、パケット生成部と、通信インタフェース部と、データ解放部とを備える。記憶装置インタフェース部は、プロセッサを介さずに記憶装置からデータを取得する。バッファメモリ部は、前記記憶装置から取得されたデータを記憶可能である。データ制御部は、前記記憶装置から取得されたデータを、前記バッファメモリ部に定められた領域毎に、前記バッファメモリ部に書き込んで記憶させる。パケット生成部は、前記バッファメモリ部から前記領域毎にデータを読み出し、前記バッファメモリ部から読み出されたデータを含むパケットを、前記領域毎に生成する。通信インタフェース部は、生成されたパケットをクライアント装置に送信する。データ解放部は、前記クライアント装置にパケットが受信されたか否かを判定し、前記クライアント装置に受信されたパケットに含まれていたデータが読み出された前記領域から、前記記憶装置から取得されたデータを解放する。 The server device of the embodiment includes a storage device and the load reduction device of the embodiment. The storage device stores data. The load reducing device includes a storage device interface unit, a buffer memory unit, a data control unit, a packet generation unit, a communication interface unit, and a data release unit. The storage device interface unit acquires data from the storage device without using a processor. The buffer memory unit can store data acquired from the storage device. The data control unit writes and stores the data acquired from the storage device in the buffer memory unit for each area defined in the buffer memory unit. The packet generation unit reads data for each area from the buffer memory unit, and generates a packet including the data read from the buffer memory unit for each area. The communication interface unit transmits the generated packet to the client device. The data release unit determines whether or not a packet is received by the client device, and is acquired from the storage device from the area from which data included in the packet received by the client device is read Free the data.
実施形態における、サーバ装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the server apparatus in embodiment. 実施形態における、負荷軽減装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the load reduction apparatus in embodiment. 実施形態における、パケットを通信メモリ部に書き込むまでの動作手順を示すフローチャートである。It is a flowchart which shows the operation | movement procedure until it writes a packet in a communication memory part in embodiment. 実施形態における、パケットを通信インタフェース部から送信するまでの動作手順を示すフローチャートである。It is a flowchart which shows the operation | movement procedure until it transmits a packet from a communication interface part in embodiment. 実施形態における、パケットを再送するか否かを判定する動作手順を示すフローチャートである。It is a flowchart which shows the operation | movement procedure which determines whether the packet is retransmitted in embodiment. 実施形態における、負荷軽減装置の動作例を分割して示す表である。It is a table | surface which divides | segments and shows the operation example of the load reduction apparatus in embodiment. 実施形態における、負荷軽減装置の動作例を分割して示す表である。It is a table | surface which divides | segments and shows the operation example of the load reduction apparatus in embodiment. 実施形態における、負荷軽減装置の動作例を分割して示す表である。It is a table | surface which divides | segments and shows the operation example of the load reduction apparatus in embodiment. 実施形態における、負荷軽減装置の動作例を分割して示す表である。It is a table | surface which divides | segments and shows the operation example of the load reduction apparatus in embodiment. 実施形態における、負荷軽減装置の動作例を分割して示す表である。It is a table | surface which divides | segments and shows the operation example of the load reduction apparatus in embodiment. 実施形態における、負荷軽減装置の動作例を分割して示す表である。It is a table | surface which divides | segments and shows the operation example of the load reduction apparatus in embodiment. 実施形態における、負荷軽減装置の動作例を分割して示す表である。It is a table | surface which divides | segments and shows the operation example of the load reduction apparatus in embodiment.
 実施形態について図面を参照して詳細に説明する。実施形態の負荷軽減装置、サーバ装置及び負荷軽減方法は、プロセッサを介さずに記憶装置から通信部にデータを直接転送する場合、記憶装置から通信部への転送レートが低いシステムでも、大量のデータを高速に配信することができる。 Embodiments will be described in detail with reference to the drawings. The load reducing device, the server device, and the load reducing method according to the embodiment have a large amount of data even in a system with a low transfer rate from the storage device to the communication unit when the data is directly transferred from the storage device to the communication unit without using a processor. Can be delivered at high speed.
 まず、サーバ装置の構成例について説明する。
 図1には、サーバ装置の構成例がブロック図により示されている。サーバ装置10は、データを含むパケットを生成し、生成したパケットを、通信回線20(ネットワーク)を介してクライアント装置30に送信(配信)する。パケットに含められるデータには、例えば、画像データ(動画像データ、静止画像データ)、音声データ、及び、テキストデータがある。
First, a configuration example of the server device will be described.
FIG. 1 is a block diagram illustrating a configuration example of a server device. The server device 10 generates a packet including data, and transmits (distributes) the generated packet to the client device 30 via the communication line 20 (network). Examples of data included in the packet include image data (moving image data and still image data), audio data, and text data.
 サーバ装置10は、バス101と、プロセッサ102と、記憶部103と、記憶装置106と、負荷軽減装置110とを備える。プロセッサ102(中央演算処理装置(CPU:Central Processing Unit))は、記憶部103に記憶されているプログラムに基づいて、バス101を介して、サーバ装置10の各部を制御する。 The server device 10 includes a bus 101, a processor 102, a storage unit 103, a storage device 106, and a load reduction device 110. A processor 102 (Central Processing Unit (CPU)) controls each unit of the server device 10 via the bus 101 based on a program stored in the storage unit 103.
 記憶部103は、各種データを記憶する。この各種データは、例えば、プロセッサ102が動作する際に生成されたパラメータデータでもよい。また、記憶部103は、プロセッサ102を動作させるためのプログラムを記憶してもよい。記憶部103は、半導体メモリでもよい。記憶部103は、一時的な記憶媒体と、非一時的な記憶媒体とのいずれでもよい。 The storage unit 103 stores various data. The various data may be parameter data generated when the processor 102 operates, for example. The storage unit 103 may store a program for operating the processor 102. The storage unit 103 may be a semiconductor memory. The storage unit 103 may be a temporary storage medium or a non-temporary storage medium.
 記憶装置106は、クライアント装置30に送信されるパケットに含まれるデータを、ファイル単位で記憶する。これらのファイルは、ファイル(データ)を識別するための情報(以下、「ファイル識別情報」という。)に基づいて識別される。記憶装置106は、例えば、ハードディスクドライブなどの非一時的な記憶媒体を有していてもよい。記憶装置106は、RAID(Redundant Array of Inexpensive Disks)に基づいて、データを記憶してもよい。 The storage device 106 stores data included in a packet transmitted to the client device 30 in units of files. These files are identified based on information for identifying the file (data) (hereinafter referred to as “file identification information”). The storage device 106 may have a non-transitory storage medium such as a hard disk drive, for example. The storage device 106 may store data based on RAID (Redundant Array of Inexpensive Disks).
 負荷軽減装置110(ハードウェア)は、プロセッサ102を介さずに、記憶装置106からデータを取得する。例えば、負荷軽減装置110は、DMA(Direct Memory Access:ダイレクト・メモリ・アクセス)により、記憶装置106からデータを取得してもよい。負荷軽減装置110は、記憶装置制御部105と、通信部104と、接続部107とを備える。負荷軽減装置110のこれらの各部の間でも、データは、DMAにより転送されてよい。 The load reduction device 110 (hardware) acquires data from the storage device 106 without going through the processor 102. For example, the load reducing device 110 may acquire data from the storage device 106 by DMA (Direct Memory Memory Access). The load reduction device 110 includes a storage device control unit 105, a communication unit 104, and a connection unit 107. Data may also be transferred between these units of the load reducing device 110 by DMA.
 次に、負荷軽減装置110の構成例について説明する。
 図2には、負荷軽減装置の構成例がブロック図により示されている。負荷軽減装置110は、より詳細には、バスインタフェース部111と、記憶装置制御部105と、通信部104と、接続部107とを備える。
Next, a configuration example of the load reducing device 110 will be described.
FIG. 2 is a block diagram illustrating a configuration example of the load reducing device. More specifically, the load reduction device 110 includes a bus interface unit 111, a storage device control unit 105, a communication unit 104, and a connection unit 107.
 記憶装置制御部105は、記憶装置インタフェース部115と、データ制御部114とを備える。データ制御部114は、書込領域カウンタC202を備える。
 接続部107は、バッファメモリ部116と、制御用通信線S301と、書き込み用通信線S302と、読み出し用通信線S303とを備える。制御用通信線S301は、通信部104と記憶装置制御部105との間の通信線である。書き込み用通信線S302は、バッファメモリ部116と記憶装置制御部105との間の通信線である。読み出し用通信線S303は、バッファメモリ部116と通信部104との間の通信線である。
The storage device control unit 105 includes a storage device interface unit 115 and a data control unit 114. The data control unit 114 includes a write area counter C202.
The connection unit 107 includes a buffer memory unit 116, a control communication line S301, a write communication line S302, and a read communication line S303. The control communication line S301 is a communication line between the communication unit 104 and the storage device control unit 105. The write communication line S302 is a communication line between the buffer memory unit 116 and the storage device control unit 105. The read communication line S303 is a communication line between the buffer memory unit 116 and the communication unit 104.
 通信部104は、制御部112と、通信インタフェース部113と、通信メモリ部118とを備える。制御部112(TOE:TCP/IP Offload Engine)は、パケット生成部1121と、データ解放部1122と、インデックスメモリ部117と、ACK受信領域カウンタC201と、読出領域カウンタC203とを備える。なお、制御部112は、データ制御部114が書込領域カウンタC202を備える代わりに、書込領域カウンタC202をさらに備えてもよい。 The communication unit 104 includes a control unit 112, a communication interface unit 113, and a communication memory unit 118. The control unit 112 (TOE: TCP / IP Offload Engine) includes a packet generation unit 1121, a data release unit 1122, an index memory unit 117, an ACK reception area counter C201, and a read area counter C203. The control unit 112 may further include a write area counter C202 instead of the data control unit 114 including the write area counter C202.
 バスインタフェース部111には、バス101(図1を参照)を介して、各種情報が入力される。この各種情報には、例えば、ファイル識別情報が含まれていてもよい。ファイル識別情報は、バス101を介して、プロセッサ102から入力される。バスインタフェース部111は、ファイル識別情報を、記憶装置制御部105及び通信部104に転送する。 Various information is input to the bus interface unit 111 via the bus 101 (see FIG. 1). The various types of information may include, for example, file identification information. The file identification information is input from the processor 102 via the bus 101. The bus interface unit 111 transfers the file identification information to the storage device control unit 105 and the communication unit 104.
 なお、バスインタフェース部111には、記憶装置制御部105及び通信部104の少なくとも一方から、動作状態情報が入力されてもよい。この動作状態情報は、例えば、記憶装置制御部105及び通信部104の少なくとも一方の動作状態を示す情報でもよい。
バスインタフェース部111は、記憶装置制御部105及び通信部104の少なくとも一方から入力された動作状態情報を、バス101を介してプロセッサ102に転送してもよい。
The bus interface unit 111 may receive operation state information from at least one of the storage device control unit 105 and the communication unit 104. This operation state information may be information indicating the operation state of at least one of the storage device control unit 105 and the communication unit 104, for example.
The bus interface unit 111 may transfer operation state information input from at least one of the storage device control unit 105 and the communication unit 104 to the processor 102 via the bus 101.
 バッファメモリ部116には、通信部104により生成されるパケットのサイズ(長さ)に応じて、領域が定められる。以下では、一例として、バッファメモリ部116には、領域1~領域6が定められるものとして説明を続ける。バッファメモリ部116は、データ制御部114から書き込み用通信線S302を介して各領域に書き込まれたデータを、記憶可能である。バッファメモリ部116は、半導体メモリでもよい。 In the buffer memory unit 116, an area is determined according to the size (length) of the packet generated by the communication unit 104. Hereinafter, as an example, the buffer memory unit 116 will be described on the assumption that the areas 1 to 6 are defined. The buffer memory unit 116 can store data written in each area from the data control unit 114 via the write communication line S302. The buffer memory unit 116 may be a semiconductor memory.
 書込領域カウンタC202は、データ制御部114が記憶装置インタフェース部115から取得したデータが書き込まれる領域を示すカウンタである。図2では、書込領域カウンタC202は、領域1~領域6のいずれかを示すインデックス番号を示すカウンタである。
 データ制御部114には、パケット生成部1121から、制御用通信線S301を介してファイル識別情報が入力される。データ制御部114は、ファイル識別情報を、記憶装置インタフェース部115に転送する。この転送の応答として、データ制御部114には、記憶装置インタフェース部115がファイル識別情報に基づいて記憶装置106から取得したデータが、記憶装置インタフェース部115から入力される。
The write area counter C202 is a counter indicating an area in which data acquired by the data control unit 114 from the storage device interface unit 115 is written. In FIG. 2, the write area counter C 202 is a counter indicating an index number indicating one of the areas 1 to 6.
File identification information is input to the data control unit 114 from the packet generation unit 1121 via the control communication line S301. The data control unit 114 transfers the file identification information to the storage device interface unit 115. As a response to this transfer, data acquired from the storage device 106 by the storage device interface unit 115 based on the file identification information is input from the storage device interface unit 115 to the data control unit 114.
 なお、データ制御部114には、バスインタフェース部111から、ファイル識別情報が入力されてもよい。また、データ制御部114は、RAIDに基づいて、記憶装置インタフェース部115を制御してもよい。 Note that file identification information may be input from the bus interface unit 111 to the data control unit 114. Further, the data control unit 114 may control the storage device interface unit 115 based on RAID.
 データ制御部114は、書込領域カウンタC202を更新し、更新した書込領域カウンタC202が示すバッファメモリ部116に定められた領域に、書き込み用通信線S302を介して、記憶装置インタフェース部115から取得したデータを書き込んで記憶させる。 The data control unit 114 updates the write area counter C202, and enters the area defined in the buffer memory unit 116 indicated by the updated write area counter C202 from the storage device interface unit 115 via the write communication line S302. Write and store the acquired data.
 記憶装置インタフェース部115には、ファイル識別情報が、データ制御部114から入力される。記憶装置インタフェース部115は、記憶装置106にアクセスし、ファイル識別情報により識別されるファイルを参照する。記憶装置インタフェース部115は、参照したファイルからデータをパケットサイズ以内で取得する。記憶装置インタフェース部115は、取得したデータを、データ制御部114に転送する。 The file identification information is input from the data control unit 114 to the storage device interface unit 115. The storage device interface unit 115 accesses the storage device 106 and refers to the file identified by the file identification information. The storage device interface unit 115 acquires data from the referenced file within the packet size. The storage device interface unit 115 transfers the acquired data to the data control unit 114.
 なお、記憶装置インタフェース部115は、SATA(Serial Advanced Technology Attachment)規格、又は、SCSI(SmallComputer System Interface)規格に基づいて、記憶装置106にアクセスし、データを取得してもよい。 Note that the storage device interface unit 115 may access the storage device 106 and acquire data based on the SATA (Serial Advanced Technology Attachment) standard or the SCSI (Small Computer System Interface) standard.
 通信インタフェース部113は、通信回線20(図1を参照)を介して、クライアント装置30(図1を参照)との通信を実行する。通信インタフェース部113は、MACアドレス(Media Access Control address)に基づいて、通信回線20上で識別されてもよい。通信インタフェース部113には、読出領域カウンタC203の値が、パケット生成部1121から入力される。通信インタフェース部113は、読出領域カウンタC203の値に基づいて通信メモリ部118からパケットを取得し、取得したパケットをクライアント装置30に送信する。 The communication interface unit 113 performs communication with the client device 30 (see FIG. 1) via the communication line 20 (see FIG. 1). The communication interface unit 113 may be identified on the communication line 20 based on the MAC address (Media Access Control address). The value of the read area counter C203 is input from the packet generation unit 1121 to the communication interface unit 113. The communication interface unit 113 acquires a packet from the communication memory unit 118 based on the value of the read area counter C203, and transmits the acquired packet to the client device 30.
 通信インタフェース部113は、ACK信号をクライアント装置30から受信する。このACK信号(肯定応答)は、サーバ装置10から送信されたパケット(送信済みのパケット)を受信したクライアント装置30から、応答としてサーバ装置10に送信される信号である。ACK信号は、通信インタフェース部113からクライアント装置30に送信されたパケットに、対応付けられている。例えば、ACK信号には、サーバ装置10から送信されたパケットを識別するための情報(パケット識別情報)が含まれていてもよい。
通信インタフェース部113は、受信したACK信号を、通信メモリ部118に記憶させる。通信インタフェース部113は、クライアント装置30から受信したACK信号以外の信号を、通信メモリ部118に記憶させてもよい。
The communication interface unit 113 receives an ACK signal from the client device 30. This ACK signal (acknowledgment) is a signal transmitted to the server apparatus 10 as a response from the client apparatus 30 that has received the packet transmitted from the server apparatus 10 (transmitted packet). The ACK signal is associated with the packet transmitted from the communication interface unit 113 to the client device 30. For example, the ACK signal may include information (packet identification information) for identifying a packet transmitted from the server device 10.
The communication interface unit 113 stores the received ACK signal in the communication memory unit 118. The communication interface unit 113 may store a signal other than the ACK signal received from the client device 30 in the communication memory unit 118.
 通信メモリ部118は、制御部112と通信インタフェース部113との間で、動作するタイミングや速度に差があることを吸収するために設けられたバッファである。通信メモリ部118は、パケット生成部1121により生成されたパケットと、パケット生成部1121から入力された書込領域カウンタC202の値とを対応付けて記憶する。また、通信メモリ部118は、通信インタフェース部113が受信した信号(例えば、ACK信号)を記憶する。 The communication memory unit 118 is a buffer provided to absorb that there is a difference in operation timing and speed between the control unit 112 and the communication interface unit 113. The communication memory unit 118 stores the packet generated by the packet generation unit 1121 and the value of the write area counter C202 input from the packet generation unit 1121 in association with each other. Further, the communication memory unit 118 stores a signal (for example, an ACK signal) received by the communication interface unit 113.
 インデックスメモリ部117は、バッファメモリ部116に定められた領域を示すインデックスを記憶する。インデックスの項目には、領域の先頭アドレスと、領域サイズ(領域の長さ)と、「次の領域のインデックス番号」とがある。領域サイズは、パケットサイズに応じて定められる。インデックスの例については、図6~図12を用いて後述する。 The index memory unit 117 stores an index indicating an area defined in the buffer memory unit 116. The index items include the start address of the area, the area size (area length), and the “index number of the next area”. The area size is determined according to the packet size. Examples of indexes will be described later with reference to FIGS.
 なお、インデックスの項目「次の領域のインデックス番号」には、連続する次のインデックス番号が割り当てられるとは限らない。これは、サーバ装置10が複数の通信接続(コネクション)を並列に実行している場合には、他の通信接続によりインデックス番号が使用されることがあるためである。以下では、インデックスの項目「次の領域のインデックス番号」は、連続する次のインデックス番号が割り当てられるものとして説明を続ける。 Note that the next consecutive index number is not necessarily assigned to the index item “next area index number”. This is because when the server apparatus 10 executes a plurality of communication connections (connections) in parallel, the index number may be used by another communication connection. In the following description, the index item “next area index number” is assumed to be assigned the next consecutive index number.
 パケット生成部1121には、書込領域カウンタC202の値が、制御用通信線S301を介してデータ制御部114から入力される。パケット生成部1121は、書込領域カウンタC202が示すバッファメモリ部116に定められた領域から、データを読み出す。パケット生成部1121は、読み出したデータを含むパケットを生成する。パケット生成部1121は、生成したパケットと、書込領域カウンタC202の値とを対応付けて、通信メモリ部118に記憶させる。したがって、この生成されたパケットは、対応付けられた書込領域カウンタC202が示すバッファメモリ部116に定められた領域から読み出されたデータを含む。 The value of the write area counter C202 is input to the packet generator 1121 from the data controller 114 via the control communication line S301. The packet generator 1121 reads data from the area defined in the buffer memory unit 116 indicated by the write area counter C202. The packet generation unit 1121 generates a packet including the read data. The packet generation unit 1121 associates the generated packet with the value of the write area counter C202 and stores it in the communication memory unit 118. Therefore, the generated packet includes data read from the area defined in the buffer memory unit 116 indicated by the associated write area counter C202.
 パケット生成部1121は、パケットを通信インタフェース部113から送信させる際、送信する当該パケットに含まれているデータが読み出された領域を示すよう、インデックスメモリ部117に記憶されたインデックス(次の領域のインデックス番号)に基づいて、読出領域カウンタC203を更新する。パケット生成部1121は、読出領域カウンタC203の値を、通信インタフェース部113に出力する。 When the packet generation unit 1121 transmits a packet from the communication interface unit 113, the packet generation unit 1121 indicates an index (next area) stored in the index memory unit 117 to indicate an area from which data included in the packet to be transmitted is read. The read area counter C203 is updated based on the index number). The packet generation unit 1121 outputs the value of the read area counter C203 to the communication interface unit 113.
 パケット生成部1121は、ACK信号を通信インタフェース部113がクライアント装置30から受信する時刻が過ぎてタイムアウトした場合、タイムアウトしたACK信号に対応付けられた送信済みのパケットに含まれていたデータの読み出された領域を示すまで、読出領域カウンタC203を戻す。 When the time at which the communication interface unit 113 receives the ACK signal from the client device 30 has timed out, the packet generation unit 1121 reads the data contained in the transmitted packet associated with the timed-out ACK signal. The read area counter C203 is returned until the designated area is indicated.
 データ解放部1122は、ACK信号を通信インタフェース部113がクライアント装置30から受信した場合、受信したACK信号に対応付けられた送信済みのパケットに含まれていたデータの読み出された領域を示すまで、ACK受信領域カウンタC201を更新する。 When the communication interface unit 113 receives the ACK signal from the client device 30, the data release unit 1122 indicates an area where data included in the transmitted packet associated with the received ACK signal is read. The ACK reception area counter C201 is updated.
 データ解放部1122は、ACK受信領域カウンタC201が示すバッファメモリ部116の各領域から、データを解放する。ここで、データ解放部1122は、ACK受信領域カウンタC201が示すバッファメモリ部116の各領域を示すインデックスを無効にすることにより、データを解放する。例えば、データ解放部1122は、ACK受信領域カウンタC201が示すバッファメモリ部116の各領域を示すインデックスの項目「次の領域のインデックス番号」に「無効(例えば、値0)」を登録することにより、データを解放する。 The data release unit 1122 releases data from each area of the buffer memory unit 116 indicated by the ACK reception area counter C201. Here, the data release unit 1122 releases the data by invalidating the index indicating each area of the buffer memory unit 116 indicated by the ACK reception area counter C201. For example, the data release unit 1122 registers “invalidity (for example, value 0)” in the index item “index number of the next region” indicating each region of the buffer memory unit 116 indicated by the ACK reception region counter C201. , Release the data.
 読出領域カウンタC203は、送信されるパケットに含まれるデータが記憶されている領域を示すカウンタである。図2では、領域1~領域6のいずれかを示すインデックス番号を示すカウンタである。
 ACK受信領域カウンタC201は、受信されたACK信号により識別されるパケットに含まれていたデータが記憶されている領域を示すカウンタである。図2では、領域1~領域6のいずれかを示すインデックス番号を示すカウンタである。
The read area counter C203 is a counter indicating an area in which data included in a transmitted packet is stored. In FIG. 2, the counter indicates an index number indicating one of the areas 1 to 6.
The ACK reception area counter C201 is a counter indicating an area in which data included in the packet identified by the received ACK signal is stored. In FIG. 2, the counter indicates an index number indicating one of the areas 1 to 6.
 次に、動作手順例を説明する。
 図3は、パケットを通信メモリ部に書き込むまでの動作手順を示すフローチャートである。
Next, an operation procedure example will be described.
FIG. 3 is a flowchart showing an operation procedure until a packet is written in the communication memory unit.
 (ステップS1)データ制御部114及び制御部112は、バスインタフェース部111を介して、ファイル識別情報を取得する。制御部112は、ファイル識別情報を、制御用通信線S301を介してデータ制御部114に出力する。データ制御部114は、ファイル識別情報を、記憶装置インタフェース部115に転送する。記憶装置インタフェース部115は、記憶装置106に記憶されているファイルを、ファイル識別情報に基づいて参照する。 (Step S1) The data control unit 114 and the control unit 112 obtain file identification information via the bus interface unit 111. The control unit 112 outputs the file identification information to the data control unit 114 via the control communication line S301. The data control unit 114 transfers the file identification information to the storage device interface unit 115. The storage device interface unit 115 refers to the file stored in the storage device 106 based on the file identification information.
 (ステップS2)記憶装置インタフェース部115は、参照したファイルから、データをパケットサイズ以内で取得する。記憶装置インタフェース部115は、取得したデータを、データ制御部114に転送する。記憶装置インタフェース部115は、参照したファイルから、パケットサイズより大きいサイズでデータを取得し、余分なデータを廃棄して、廃棄せずに残ったデータを転送する場合もある。 (Step S2) The storage device interface unit 115 acquires data from the referenced file within the packet size. The storage device interface unit 115 transfers the acquired data to the data control unit 114. The storage device interface unit 115 may acquire data with a size larger than the packet size from the referenced file, discard excess data, and transfer the remaining data without discarding.
 (ステップS3)データ制御部114は、書込領域カウンタC202を更新し、更新した書込領域カウンタC202が示すバッファメモリ部116に定められた領域に、取得したデータを書き込んで記憶させる。 (Step S3) The data control unit 114 updates the write area counter C202, and writes and stores the acquired data in an area defined in the buffer memory unit 116 indicated by the updated write area counter C202.
 (ステップS4)パケット生成部1121は、書込領域カウンタC202が示すバッファメモリ部116に定められた領域から、データを読み出す。
 (ステップS5)パケット生成部1121は、読み出したデータを含むパケットを生成する。
 (ステップS6)パケット生成部1121は、生成したパケットを、通信メモリ部118に記憶させる。
(Step S4) The packet generation unit 1121 reads data from an area defined in the buffer memory unit 116 indicated by the write area counter C202.
(Step S5) The packet generation unit 1121 generates a packet including the read data.
(Step S6) The packet generation unit 1121 stores the generated packet in the communication memory unit 118.
 (ステップS6)パケット生成部1121は、ファイル識別情報により識別されたファイルの終端までデータを読み出したか否か、を判定する。ファイルの終端までデータを読み出した場合(ステップS6:Yes)、パケット生成部1121は、処理を終了する。
 一方、ファイルの終端まではデータを読み出していない場合(ステップS6:No)、パケット生成部1121は、ステップS3に処理を戻す。
(Step S6) The packet generation unit 1121 determines whether data has been read up to the end of the file identified by the file identification information. When the data is read to the end of the file (step S6: Yes), the packet generator 1121 ends the process.
On the other hand, when data has not been read up to the end of the file (step S6: No), the packet generator 1121 returns the process to step S3.
 図4は、パケットを通信インタフェース部から送信するまでの動作手順を示すフローチャートである。
 (ステップSa1)パケット生成部1121は、パケットを通信インタフェース部113から送信させる際、送信する当該パケットに含まれているデータが読み出された領域を示すよう、読出領域カウンタC203を更新する。パケット生成部1121は、読出領域カウンタC203の値を、通信インタフェース部113に出力する。
FIG. 4 is a flowchart showing an operation procedure until a packet is transmitted from the communication interface unit.
(Step Sa1) When the packet generation unit 1121 transmits a packet from the communication interface unit 113, the packet generation unit 1121 updates the read region counter C203 to indicate the region from which the data included in the packet to be transmitted is read. The packet generation unit 1121 outputs the value of the read area counter C203 to the communication interface unit 113.
 (ステップSa2)通信インタフェース部113は、読出領域カウンタC203が示すバッファメモリ部116に定められた領域から読み出されたデータを含むパケットを、通信メモリ部118から読み出す。 (Step Sa2) The communication interface unit 113 reads, from the communication memory unit 118, a packet including data read from the area defined in the buffer memory unit 116 indicated by the read area counter C203.
 (ステップSa3)通信インタフェース部113は、通信メモリ部118から読み出したパケットを送信可能であるか否かを、所定条件(例えば、TCP/IPプロトコル)に基づいて判定する。通信メモリ部118から読み出したパケットを送信可能である場合(ステップSa3:Yes)通信インタフェース部113は、ステップSa3に処理を進める。一方、通信メモリ部118から読み出したパケットを送信可能でない場合(ステップSa3:No)通信インタフェース部113は、ステップSa3を再実行する。
 (ステップSa4)通信インタフェース部113は、通信メモリ部118から読み出したパケットを、通信回線20を介してクライアント装置30に送信し、処理を終了する。
(Step Sa3) The communication interface unit 113 determines whether or not the packet read from the communication memory unit 118 can be transmitted based on a predetermined condition (for example, TCP / IP protocol). When the packet read from the communication memory unit 118 can be transmitted (step Sa3: Yes), the communication interface unit 113 advances the process to step Sa3. On the other hand, when the packet read from the communication memory unit 118 cannot be transmitted (step Sa3: No), the communication interface unit 113 re-executes step Sa3.
(Step Sa4) The communication interface unit 113 transmits the packet read from the communication memory unit 118 to the client device 30 via the communication line 20, and ends the process.
 図5は、パケットを再送するか否かを判定する動作手順を示すフローチャートである。この動作手順の例では、通信インタフェース部113がパケットごとにACK信号を受信しているが、通信インタフェース部113は、複数のパケットごとにACK信号を受信してもよい。
 (ステップSb1)パケット生成部1121は、ACK信号を通信インタフェース部113がクライアント装置30から受信したか否か、を判定する。ACK信号を通信インタフェース部113がクライアント装置30から受信した場合(ステップSb1:Yes)、パケット生成部1121は、ステップSb4に処理を進める。一方、ACK信号を通信インタフェース部113がクライアント装置30から受信していない場合(ステップSb1:No)、パケット生成部1121は、ステップSb2に処理を進める。
FIG. 5 is a flowchart showing an operation procedure for determining whether or not to retransmit a packet. In the example of the operation procedure, the communication interface unit 113 receives an ACK signal for each packet. However, the communication interface unit 113 may receive an ACK signal for each of a plurality of packets.
(Step Sb1) The packet generation unit 1121 determines whether or not the communication interface unit 113 has received an ACK signal from the client device 30. When the communication interface unit 113 receives the ACK signal from the client device 30 (step Sb1: Yes), the packet generation unit 1121 advances the process to step Sb4. On the other hand, when the communication interface unit 113 has not received the ACK signal from the client device 30 (step Sb1: No), the packet generation unit 1121 advances the processing to step Sb2.
 (ステップSb2)パケット生成部1121は、ACK信号を通信インタフェース部113がクライアント装置30から受信する時刻が過ぎてタイムアウトしたか否か、を判定する。ACK信号を通信インタフェース部113がクライアント装置30から受信する時刻が過ぎてタイムアウトした場合(ステップSb2:Yes)、パケット生成部1121は、ステップSb3に処理を進める。一方、ACK信号を通信インタフェース部113がクライアント装置30から受信する時刻が過ぎておらずタイムアウトしていない場合(ステップSb2:No)、パケット生成部1121は、ステップSb1に処理を戻す。 (Step Sb2) The packet generation unit 1121 determines whether or not the time when the communication interface unit 113 receives the ACK signal from the client device 30 has timed out. When the time when the communication interface unit 113 receives the ACK signal from the client device 30 has passed and timed out (step Sb2: Yes), the packet generation unit 1121 advances the process to step Sb3. On the other hand, when the time when the communication interface unit 113 receives the ACK signal from the client device 30 has not passed and the timeout has not occurred (step Sb2: No), the packet generation unit 1121 returns the process to step Sb1.
 (ステップSb3)パケット生成部1121は、タイムアウトしたACK信号に対応付けられた送信済みのパケットに含まれていたデータの読み出された領域を示すまで、読出領域カウンタC203を戻す。パケット生成部1121は、処理を終了する。 (Step Sb3) The packet generation unit 1121 returns the read area counter C203 until it indicates the area from which data included in the transmitted packet associated with the timed-out ACK signal is read. The packet generator 1121 ends the process.
 (ステップSb4)データ解放部1122は、受信したACK信号に対応付けられた送信済みのパケットに含まれていたデータの読み出された領域を示すまで、ACK受信領域カウンタC201を更新する。 (Step Sb4) The data release unit 1122 updates the ACK reception area counter C201 until it indicates an area from which data included in the transmitted packet associated with the received ACK signal is read.
 (ステップSb5)データ解放部1122は、ACK受信領域カウンタC201が示すバッファメモリ部116の各領域から、データを解放する。ここで、データ解放部1122は、ACK受信領域カウンタC201が示すバッファメモリ部116の各領域を示すインデックスを無効にすることにより、データを解放する。 (Step Sb5) The data release unit 1122 releases data from each area of the buffer memory unit 116 indicated by the ACK reception area counter C201. Here, the data release unit 1122 releases the data by invalidating the index indicating each area of the buffer memory unit 116 indicated by the ACK reception area counter C201.
 次に、負荷軽減装置110の動作例を説明する。
 図6、図7、図8、図9、図10、図11及び図12には、負荷軽減装置の動作例が、分割された表により示されている。つまり、図6~図12には、これらの図の順に連続する動作が示されている。また、図6~図12に示された表では、動作順は、最上段から最下段に向かう順である。また、図6~図12に示された表の各段の説明については、直近の動作からの相違点(差分)についてのみ説明する。
Next, an operation example of the load reducing device 110 will be described.
In FIG. 6, FIG. 7, FIG. 8, FIG. 9, FIG. 10, FIG. 11 and FIG. That is, FIGS. 6 to 12 show operations that are performed in the order of these drawings. In the tables shown in FIGS. 6 to 12, the order of operation is the order from the top to the bottom. 6 to 12 will be described only with respect to differences (differences) from the most recent operation.
 <図6に示す、動作「コネクション時に初期化」>
 パケット生成部1121は、インデックスメモリ部117に記憶されたインデックスを初期化する。ここで、パケット生成部1121は、インデックスの一部のみを初期化してもよい。図6では、パケット生成部1121は、インデックスのうち、インデックス番号1が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(無効,無効,無効)と初期化する。したがって、インデックス番号2~インデックス番号6がそれぞれ示す領域のインデックスは、初期化されておらず「不定」である。
<Operation “Initialization at Connection” shown in FIG. 6>
The packet generator 1121 initializes the index stored in the index memory unit 117. Here, the packet generation unit 1121 may initialize only a part of the index. In FIG. 6, the packet generation unit 1121 sets the index of the area indicated by the index number 1 as the initial value of (area start address, area size, index number of next area) = (invalid, invalid, invalid). Turn into. Therefore, the indexes of the areas indicated by the index numbers 2 to 6 are not initialized and are “undefined”.
 書込領域カウンタC202の値は、インデックス番号0(無効)となっている。読出領域カウンタC203の値は、インデックス番号0(無効)となっている。ACK受信領域カウンタC201の値は、インデックス番号0(無効)となっている。
 バッファメモリ部116に定められた領域1~領域6は、いずれもデータを記憶しておらず、データが不定となっている。
The value of the write area counter C202 is index number 0 (invalid). The value of the read area counter C203 is index number 0 (invalid). The value of the ACK reception area counter C201 is index number 0 (invalid).
None of the areas 1 to 6 defined in the buffer memory unit 116 stores data, and the data is undefined.
 <図6に示す、動作「第1パケットを生成」>
 データ制御部114は、バッファメモリ部116に定められた領域1に、第1パケットに含まれることになるデータを記憶させる。データ制御部114は、書込領域カウンタC202の値(インデックス番号0)を、インデックス番号1に更新する。
 パケット生成部1121は、インデックス番号1が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域1の先頭,領域1サイズ,終端)と更新する。ここで、終端とは、パケットとして送信される最後のデータが記憶されている領域であることを示す。パケット生成部1121は、書込領域カウンタC202の値(インデックス番号1)が示す領域1からデータを取得し、第1パケットを生成する。
 本動作例では、バッファメモリ部116には、パケットに含まれることになるデータが書き込まれているが、生成されたパケット又はその一部が書き込まれてもよい。
<Operation “Generate First Packet” shown in FIG. 6>
The data control unit 114 stores data to be included in the first packet in the area 1 defined in the buffer memory unit 116. The data control unit 114 updates the value of the write area counter C202 (index number 0) to index number 1.
The packet generator 1121 updates the index of the area indicated by the index number 1 as (area start address, area size, index number of next area) = (area 1 start, area 1 size, end). Here, the term “end” indicates an area in which the last data transmitted as a packet is stored. The packet generator 1121 acquires data from the area 1 indicated by the value (index number 1) of the write area counter C202, and generates a first packet.
In this operation example, data to be included in the packet is written in the buffer memory unit 116, but the generated packet or a part thereof may be written.
 <図6に示す、動作「第1パケットを送信」>
 パケット生成部1121は、読出領域カウンタC203の値(インデックス番号0)を、インデックス番号1に更新する。
 通信インタフェース部113は、読出領域カウンタC203の値(インデックス番号1)と同じ書込領域カウンタC202の値(インデックス番号1)に対応付けられて記憶されている第1パケットを、通信メモリ部118から取得し、取得した第1パケットをクライアント装置30に送信する。
<Operation “Send first packet” shown in FIG. 6>
The packet generator 1121 updates the value (index number 0) of the read area counter C203 to the index number 1.
The communication interface unit 113 transmits, from the communication memory unit 118, the first packet stored in association with the value (index number 1) of the write area counter C202 that is the same as the value of the read area counter C203 (index number 1). The acquired first packet is transmitted to the client device 30.
 <図6に示す、動作「第1パケットに対応付けられたACK信号を受信」>
 通信インタフェース部113は、第1パケットに対応付けられたACK信号を受信したとする。
 データ解放部1122は、受信したACK信号に対応付けられた送信済みの第1パケットに含まれていたデータの読み出された領域1を示すインデックス番号1まで、ACK受信領域カウンタC201を更新する。
 データ解放部1122は、インデックス番号1が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域1の先頭,領域1サイズ,無効)と更新する。これにより、バッファメモリ部116に定められた領域1に記憶されていたデータは、解放される。
<Operation “Receiving ACK Signal Associated with First Packet” shown in FIG. 6>
It is assumed that the communication interface unit 113 receives an ACK signal associated with the first packet.
The data release unit 1122 updates the ACK reception area counter C201 up to the index number 1 indicating the area 1 from which the data included in the transmitted first packet associated with the received ACK signal is read.
The data release unit 1122 updates the index of the area indicated by the index number 1 as (area start address, area size, index number of next area) = (area 1 start, area 1 size, invalid). As a result, the data stored in the area 1 defined in the buffer memory unit 116 is released.
 <図7に示す、動作「第2パケットを生成」>
 データ制御部114は、バッファメモリ部116に定められた領域2に、第2パケットに含まれることになるデータを記憶させる。データ制御部114は、書込領域カウンタC202の値(インデックス番号1)を、インデックス番号2に更新する。
 パケット生成部1121は、インデックス番号2が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域2の先頭,領域2サイズ,終端)と更新する。パケット生成部1121は、書込領域カウンタC202の値(インデックス番号2)が示す領域2からデータを取得し、第2パケットを生成する。
<Operation “Generate second packet” shown in FIG. 7>
The data control unit 114 stores data to be included in the second packet in the area 2 defined in the buffer memory unit 116. The data control unit 114 updates the value of the write area counter C202 (index number 1) to index number 2.
The packet generator 1121 updates the index of the area indicated by the index number 2 as (area start address, area size, index number of next area) = (area 2 start, area 2 size, end). The packet generator 1121 acquires data from the area 2 indicated by the value (index number 2) of the write area counter C202, and generates a second packet.
 <図7に示す、動作「第3パケットを生成」>
 データ制御部114は、バッファメモリ部116に定められた領域3に、第3パケットに含まれることになるデータを記憶させる。データ制御部114は、書込領域カウンタC202の値(インデックス番号2)を、インデックス番号3に更新する。
 パケット生成部1121は、インデックス番号2が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域2の先頭,領域2サイズ,インデックス番号3)と更新する。これにより、インデックス番号3が示す領域3に含まれることになるデータは、インデックス番号2が示す領域2に含まれることになるデータに続くことになる。
 パケット生成部1121は、インデックス番号3が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域3の先頭,領域3サイズ,終端)と更新する。パケット生成部1121は、書込領域カウンタC203の値(インデックス番号3)が示す領域3からデータを取得し、第3パケットを生成する。
<Operation “Generate third packet” shown in FIG. 7>
The data control unit 114 stores data to be included in the third packet in the area 3 defined in the buffer memory unit 116. The data control unit 114 updates the value (index number 2) of the write area counter C202 to the index number 3.
The packet generation unit 1121 updates the index of the area indicated by the index number 2 as (area start address, area size, next area index number) = (area 2 start, area 2 size, index number 3). . Thereby, the data included in the area 3 indicated by the index number 3 follows the data included in the area 2 indicated by the index number 2.
The packet generation unit 1121 updates the index of the area indicated by the index number 3 as (area start address, area size, next area index number) = (area 3 start, area 3 size, end). The packet generator 1121 acquires data from the area 3 indicated by the value (index number 3) of the write area counter C203, and generates a third packet.
 <図7に示す、動作「第4パケットを生成」>
 データ制御部114は、バッファメモリ部116に定められた領域4に、第4パケットに含まれることになるデータを記憶させる。データ制御部114は、書込領域カウンタC202の値(インデックス番号3)を、インデックス番号4に更新する。
 パケット生成部1121は、インデックス番号3が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域3の先頭,領域3サイズ,インデックス番号4)と更新する。これにより、インデックス番号4が示す領域4に含まれることになるデータは、インデックス番号3が示す領域3に含まれることになるデータに続くことになる。
 パケット生成部1121は、インデックス番号4が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域4の先頭,領域4サイズ,終端)と更新する。パケット生成部1121は、書込領域カウンタC203の値(インデックス番号4)が示す領域4からデータを取得し、第4パケットを生成する。
 本動作例では、データ制御部114は、第2~第4パケットに含まれることになるデータを、パケット毎に(3回に分けて)バッファメモリ部116に記憶させているが、送信するデータ量が多いために複数のパケットを生成する場合には、インデックス処理を連続して実行し、データの読み込みを連続して実行してもよい。
<Operation “Generate Fourth Packet” shown in FIG. 7>
The data control unit 114 stores data to be included in the fourth packet in the area 4 defined in the buffer memory unit 116. The data control unit 114 updates the value (index number 3) of the write area counter C202 to the index number 4.
The packet generator 1121 updates the index of the area indicated by the index number 3 as (area start address, area size, index number of next area) = (area 3 start, area 3 size, index number 4). . Thereby, the data included in the area 4 indicated by the index number 4 follows the data included in the area 3 indicated by the index number 3.
The packet generation unit 1121 updates the index of the area indicated by the index number 4 as (area start address, area size, index number of next area) = (area 4 start, area 4 size, end). The packet generator 1121 acquires data from the area 4 indicated by the value (index number 4) of the write area counter C203, and generates a fourth packet.
In this operation example, the data control unit 114 stores the data to be included in the second to fourth packets in the buffer memory unit 116 for each packet (divided into three times). When a plurality of packets are generated due to a large amount, index processing may be executed continuously and data reading may be executed continuously.
 <図8に示す、動作「第2パケットを送信」>
 パケット生成部1121は、読出領域カウンタC203の値(インデックス番号1)を、インデックス番号2に更新する。
 通信インタフェース部113は、読出領域カウンタC203の値(インデックス番号2)と同じ書込領域カウンタC202の値(インデックス番号2)に対応付けられて記憶されている第2パケットを、通信メモリ部118から取得し、取得した第2パケットをクライアント装置30に送信する。
<Operation “Send second packet” shown in FIG. 8>
The packet generator 1121 updates the value (index number 1) of the read area counter C203 to the index number 2.
The communication interface unit 113 sends the second packet stored in association with the value (index number 2) of the write area counter C202 that is the same as the value of the read area counter C203 (index number 2) from the communication memory unit 118. The acquired second packet is transmitted to the client device 30.
 <図8に示す、動作「第3パケットを送信」>
 パケット生成部1121は、読出領域カウンタC203の値(インデックス番号2)を、インデックス番号3に更新する。
 通信インタフェース部113は、読出領域カウンタC203の値(インデックス番号3)と同じ書込領域カウンタC202の値(インデックス番号3)に対応付けられて記憶されている第3パケットを、通信メモリ部118から取得し、取得した第3パケットをクライアント装置30に送信する。
<Operation “Send third packet” shown in FIG. 8>
The packet generator 1121 updates the value (index number 2) of the read area counter C203 to the index number 3.
The communication interface unit 113 transmits the third packet stored in association with the value (index number 3) of the write area counter C202 that is the same as the value of the read area counter C203 (index number 3) from the communication memory unit 118. The acquired third packet is transmitted to the client device 30.
 <図8に示す、動作「第4パケットを送信」>
 パケット生成部1121は、読出領域カウンタC203の値(インデックス番号3)を、インデックス番号4に更新する。
 通信インタフェース部113は、読出領域カウンタC203の値(インデックス番号4)と同じ書込領域カウンタC202の値(インデックス番号4)に対応付けられて記憶されている第4パケットを、通信メモリ部118から取得し、取得した第4パケットをクライアント装置30に送信する。
<Operation “Send 4th Packet” shown in FIG. 8>
The packet generator 1121 updates the value (index number 3) of the read area counter C203 to the index number 4.
The communication interface unit 113 transmits the fourth packet stored in association with the value (index number 4) of the write area counter C202 that is the same as the value of the read area counter C203 (index number 4) from the communication memory unit 118. The acquired fourth packet is transmitted to the client device 30.
 <図8に示す、動作「第3パケットに対応付けられたACK信号を受信」>
 通信インタフェース部113は、第3パケットに対応付けられたACK信号を受信したとする。
 データ解放部1122は、受信したACK信号に対応付けられた送信済みの第3パケットに含まれていたデータの読み出された領域3を示すインデックス番号3まで、ACK受信領域カウンタC201を更新する。
<Operation “Receiving ACK Signal Associated with Third Packet” shown in FIG. 8>
It is assumed that the communication interface unit 113 receives an ACK signal associated with the third packet.
The data release unit 1122 updates the ACK reception area counter C201 up to the index number 3 indicating the area 3 from which the data included in the transmitted third packet associated with the received ACK signal is read.
 データ解放部1122は、インデックス番号3より前のインデックス番号2が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域2の先頭,領域2サイズ,無効)と更新する。これにより、バッファメモリ部116に定められた領域2に記憶されていたデータは、解放される。また、データ解放部1122は、インデックス番号3が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域3の先頭,領域3サイズ,無効)と更新する。これにより、バッファメモリ部116に定められた領域3に記憶されていたデータは、解放される。 The data release unit 1122 sets the index of the area indicated by the index number 2 before the index number 3 as (area start address, area size, next area index number) = (area 2 start, area 2 size, invalid ) And update. As a result, the data stored in the area 2 defined in the buffer memory unit 116 is released. Further, the data release unit 1122 updates the index of the area indicated by the index number 3 as (area start address, area size, next area index number) = (area 3 start, area 3 size, invalid). . As a result, the data stored in the area 3 defined in the buffer memory unit 116 is released.
 <図9に示す、動作「第5パケットを生成」>
 データ制御部114は、バッファメモリ部116に定められた領域5に、第5パケットに含まれるデータを記憶させる。データ制御部114は、書込領域カウンタC202の値(インデックス番号4)を、インデックス番号5に更新する。
 パケット生成部1121は、インデックス番号4が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域4の先頭,領域4サイズ,インデックス番号5)と更新する。これにより、インデックス番号5が示す領域5に含まれることになるデータは、インデックス番号4が示す領域4に含まれることになるデータに続くことになる。
 パケット生成部1121は、インデックス番号5が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域5の先頭,領域5サイズ,終端)と更新する。パケット生成部1121は、書込領域カウンタC203の値(インデックス番号5)が示す領域5からデータを取得し、第5パケットを生成する。
<Operation “Generate fifth packet” shown in FIG. 9>
The data control unit 114 stores the data included in the fifth packet in the area 5 defined in the buffer memory unit 116. The data control unit 114 updates the value (index number 4) of the write area counter C202 to the index number 5.
The packet generation unit 1121 updates the index of the area indicated by the index number 4 as (area start address, area size, next area index number) = (area 4 start, area 4 size, index number 5). . Thereby, the data included in the area 5 indicated by the index number 5 follows the data included in the area 4 indicated by the index number 4.
The packet generation unit 1121 updates the index of the area indicated by the index number 5 as (area start address, area size, next area index number) = (area 5 start, area 5 size, end). The packet generator 1121 acquires data from the area 5 indicated by the value (index number 5) of the write area counter C203, and generates a fifth packet.
 <図9に示す、動作「第5パケットを送信」>
 パケット生成部1121は、読出領域カウンタC203の値(インデックス番号4)を、インデックス番号5に更新する。
 通信インタフェース部113は、読出領域カウンタC203の値(インデックス番号5)と同じ書込領域カウンタC202の値(インデックス番号5)に対応付けられて記憶されている第5パケットを、通信メモリ部118から取得し、取得した第5パケットをクライアント装置30に送信する。
<Operation “Send fifth packet” shown in FIG. 9>
The packet generator 1121 updates the value (index number 4) of the read area counter C203 to the index number 5.
The communication interface unit 113 transmits, from the communication memory unit 118, the fifth packet stored in association with the value (index number 5) of the write area counter C202 that is the same as the value of the read area counter C203 (index number 5). The acquired fifth packet is transmitted to the client device 30.
 <図9に示す、動作「第5パケットに対応付けられたACK信号を受信」>
 通信インタフェース部113は、第5パケットに対応付けられたACK信号を受信したとする。
 データ解放部1122は、受信したACK信号に対応付けられた送信済みの第5パケットに含まれていたデータの読み出された領域5を示すインデックス番号5まで、ACK受信領域カウンタC201を更新する。
<Operation “Receiving ACK Signal Associated with Fifth Packet” shown in FIG. 9>
It is assumed that the communication interface unit 113 receives an ACK signal associated with the fifth packet.
The data release unit 1122 updates the ACK reception area counter C201 up to an index number 5 indicating the area 5 from which data included in the transmitted fifth packet associated with the received ACK signal is read.
 データ解放部1122は、インデックス番号5が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域5の先頭,領域5サイズ,無効)と更新する。これにより、バッファメモリ部116に定められた領域5に記憶されていたデータは、解放される。 The data release unit 1122 updates the index of the area indicated by the index number 5 as (area start address, area size, next area index number) = (area 5 start, area 5 size, invalid). As a result, the data stored in the area 5 defined in the buffer memory unit 116 is released.
 <図10に示す、動作「第6パケットを生成」>
 データ制御部114は、バッファメモリ部116に定められた領域6に、第6パケットに含まれるデータを記憶させる。データ制御部114は、書込領域カウンタC202の値(インデックス番号5)を、インデックス番号6に更新する。
 パケット生成部1121は、インデックス番号5が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域5の先頭,領域5サイズ,インデックス番号6)と更新する。これにより、インデックス番号6が示す領域6に含まれることになるデータは、インデックス番号5が示す領域5に含まれることになるデータに続くことになる。
 パケット生成部1121は、インデックス番号6が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域6の先頭,領域6サイズ,終端)と更新する。パケット生成部1121は、書込領域カウンタC203の値(インデックス番号6)が示す領域6からデータを取得し、第6パケットを生成する。
<Operation “Generate Sixth Packet” shown in FIG. 10>
The data control unit 114 stores the data included in the sixth packet in the area 6 defined in the buffer memory unit 116. The data control unit 114 updates the value of the write area counter C202 (index number 5) to the index number 6.
The packet generator 1121 updates the index of the area indicated by the index number 5 as (area start address, area size, index number of next area) = (area 5 start, area 5 size, index number 6). . As a result, the data included in the area 6 indicated by the index number 6 follows the data included in the area 5 indicated by the index number 5.
The packet generation unit 1121 updates the index of the area indicated by the index number 6 as (area start address, area size, index number of next area) = (start of area 6, area 6 size, end). The packet generator 1121 acquires data from the area 6 indicated by the value (index number 6) of the write area counter C203, and generates a sixth packet.
 <図10に示す、動作「第7パケットを生成」>
 データ制御部114は、バッファメモリ部116に定められた領域1に、第7パケットに含まれるデータを記憶させる。データ制御部114は、書込領域カウンタC202の値(インデックス番号6)を、インデックス番号1に更新する。
 パケット生成部1121は、インデックス番号1が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域1の先頭,領域1サイズ,終端)と更新する。パケット生成部1121は、書込領域カウンタC203の値(インデックス番号1)が示す領域1からデータを取得し、第7パケットを生成する。
 なお、インデックスは、繰り返し使用される。したがって、第7パケットを生成する際に更新されたインデックスのうち、領域1の先頭と、領域1サイズとは、第1パケットを生成した際と同じインデックス値になるとは限らない。
<Operation “Generate Seventh Packet” shown in FIG. 10>
The data control unit 114 stores the data included in the seventh packet in the area 1 defined in the buffer memory unit 116. The data control unit 114 updates the value (index number 6) of the write area counter C202 to index number 1.
The packet generator 1121 updates the index of the area indicated by the index number 1 as (area start address, area size, index number of next area) = (area 1 start, area 1 size, end). The packet generator 1121 acquires data from the area 1 indicated by the value (index number 1) of the write area counter C203, and generates a seventh packet.
The index is used repeatedly. Therefore, among the indexes updated when generating the seventh packet, the head of region 1 and the size of region 1 are not necessarily the same index values as when the first packet was generated.
 <図10に示す、動作「第6パケットを送信」>
 パケット生成部1121は、読出領域カウンタC203の値(インデックス番号5)を、インデックス番号6に更新する。
 通信インタフェース部113は、読出領域カウンタC203の値(インデックス番号6)と同じ書込領域カウンタC202の値(インデックス番号6)に対応付けられて記憶されている第6パケットを、通信メモリ部118から取得し、取得した第6パケットをクライアント装置30に送信する。
<Operation “Send sixth packet” shown in FIG. 10>
The packet generator 1121 updates the value (index number 5) of the read area counter C203 to the index number 6.
The communication interface unit 113 transmits, from the communication memory unit 118, the sixth packet stored in association with the value (index number 6) of the write area counter C202 that is the same as the value of the read area counter C203 (index number 6). The acquired sixth packet is transmitted to the client device 30.
 <図10に示す、動作「第7パケットを送信」>
 パケット生成部1121は、読出領域カウンタC203の値(インデックス番号6)を、インデックス番号1に更新する。
 通信インタフェース部113は、読出領域カウンタC203の値(インデックス番号1)と同じ書込領域カウンタC202の値(インデックス番号1)に対応付けられて記憶されている第7パケットを、通信メモリ部118から取得し、取得した第7パケットをクライアント装置30に送信する。
<Operation “Send Seventh Packet” shown in FIG. 10>
The packet generator 1121 updates the value (index number 6) of the read area counter C203 to index number 1.
The communication interface unit 113 transmits, from the communication memory unit 118, the seventh packet stored in association with the value (index number 1) of the writing area counter C202 that is the same as the value of the reading area counter C203 (index number 1). The acquired seventh packet is transmitted to the client device 30.
 <図11に示す、動作「第8パケットを生成」>
 データ制御部114は、バッファメモリ部116に定められた領域2に、第8パケットに含まれるデータを記憶させる。データ制御部114は、書込領域カウンタC202の値(インデックス番号1)を、インデックス番号2に更新する。
 パケット生成部1121は、インデックス番号2が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域2の先頭,領域2サイズ,終端)と更新する。パケット生成部1121は、書込領域カウンタC203の値(インデックス番号2)が示す領域2からデータを取得し、第8パケットを生成する。
<Operation “Generate Eighth Packet” shown in FIG. 11>
The data control unit 114 stores the data included in the eighth packet in the area 2 defined in the buffer memory unit 116. The data control unit 114 updates the value of the write area counter C202 (index number 1) to index number 2.
The packet generator 1121 updates the index of the area indicated by the index number 2 as (area start address, area size, index number of next area) = (area 2 start, area 2 size, end). The packet generator 1121 acquires data from the area 2 indicated by the value (index number 2) of the write area counter C203, and generates an eighth packet.
 <図11に示す、動作「第6パケットのタイムアウト」>
 第6パケットに対応付けられたACK信号を通信インタフェース部113がクライアント装置30から受信する時刻が過ぎて、第6パケットに対応付けられたACK信号が、タイムアウトしたとする。
 パケット生成部1121は、クライアント装置30に正常に受信されたパケットに含まれていたデータの読み出された領域を示すACK受信領域カウンタの値まで、読出領域カウンタC203を戻す。より具体的には、パケット生成部1121は、タイムアウトしていないACK信号に対応付けられた送信済みの第5パケットに含まれていたデータの読み出された領域5を示すインデックス番号5まで、読出領域カウンタC203を戻す。
<Operation “Timeout of Sixth Packet” shown in FIG. 11>
Assume that the time when the communication interface unit 113 receives the ACK signal associated with the sixth packet from the client device 30 has passed, and the ACK signal associated with the sixth packet has timed out.
The packet generator 1121 returns the read area counter C203 to the value of the ACK reception area counter indicating the area from which the data included in the packet normally received by the client device 30 has been read. More specifically, the packet generator 1121 reads up to the index number 5 indicating the area 5 from which the data included in the transmitted fifth packet associated with the ACK signal that has not timed out is read. Returns the area counter C203.
 <図11に示す、動作「第6パケットの再送信」>
 パケット生成部1121は、読出領域カウンタC203の値(インデックス番号5)を、インデックス番号6に更新する。
 通信インタフェース部113は、読出領域カウンタC203の値(インデックス番号6)と同じ書込領域カウンタC202の値(インデックス番号6)に対応付けられて記憶されている第6パケットを、通信メモリ部118から取得し、取得した第6パケットをクライアント装置30に再送信する。
<Operation “Retransmission of Sixth Packet” shown in FIG. 11>
The packet generator 1121 updates the value (index number 5) of the read area counter C203 to the index number 6.
The communication interface unit 113 transmits, from the communication memory unit 118, the sixth packet stored in association with the value (index number 6) of the write area counter C202 that is the same as the value of the read area counter C203 (index number 6). The acquired sixth packet is retransmitted to the client device 30.
 <図11に示す、動作「第6パケットに対応付けられたACK信号を受信」>
 通信インタフェース部113は、再送信済みの第6パケットに対応付けられたACK信号を受信したとする。
 データ解放部1122は、受信したACK信号に対応付けられた再送信済みの第6パケットに含まれていたデータの読み出された領域6を示すインデックス番号6まで、ACK受信領域カウンタC201を更新する。
 データ解放部1122は、インデックス番号6が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域6の先頭,領域6サイズ,無効)と更新する。これにより、バッファメモリ部116に定められた領域6に記憶されていたデータは、解放される。
<Operation “Receiving ACK Signal Associated with Sixth Packet” shown in FIG. 11>
It is assumed that the communication interface unit 113 receives an ACK signal associated with the retransmitted sixth packet.
The data release unit 1122 updates the ACK reception area counter C201 up to the index number 6 indicating the area 6 from which the data included in the retransmitted sixth packet associated with the received ACK signal is read. .
The data release unit 1122 updates the index of the area indicated by the index number 6 as (area start address, area size, next area index number) = (area 6 start, area 6 size, invalid). Thereby, the data stored in the area 6 defined in the buffer memory unit 116 is released.
 <図12に示す、動作「第7パケットの再送信」>
 パケット生成部1121は、読出領域カウンタC203の値(インデックス番号6)を、インデックス番号1に更新する。
 通信インタフェース部113は、読出領域カウンタC203の値(インデックス番号1)と同じ書込領域カウンタC202の値(インデックス番号1)に対応付けられて記憶されている第7パケットを、通信メモリ部118から取得し、取得した第7パケットをクライアント装置30に再送信する。
<Operation “Retransmission of seventh packet” shown in FIG. 12>
The packet generator 1121 updates the value (index number 6) of the read area counter C203 to index number 1.
The communication interface unit 113 transmits, from the communication memory unit 118, the seventh packet stored in association with the value (index number 1) of the writing area counter C202 that is the same as the value of the reading area counter C203 (index number 1). The acquired seventh packet is retransmitted to the client device 30.
 <図12に示す、動作「第8パケットを送信」>
 パケット生成部1121は、読出領域カウンタC203の値(インデックス番号1)を、インデックス番号2に更新する。
 通信インタフェース部113は、読出領域カウンタC203の値(インデックス番号1)と同じ書込領域カウンタC202の値(インデックス番号1)に対応付けられて記憶されている第7パケットを、通信メモリ部118から取得し、取得した第7パケットをクライアント装置30に送信する。
<Operation “Send 8th Packet” shown in FIG. 12>
The packet generator 1121 updates the value (index number 1) of the read area counter C203 to the index number 2.
The communication interface unit 113 transmits, from the communication memory unit 118, the seventh packet stored in association with the value (index number 1) of the writing area counter C202 that is the same as the value of the reading area counter C203 (index number 1). The acquired seventh packet is transmitted to the client device 30.
 <図12に示す、動作「第7パケットに対応付けられたACK信号を受信」>
 通信インタフェース部113は、再送信済みの第7パケットに対応付けられたACK信号を受信したとする。
 データ解放部1122は、受信したACK信号に対応付けられた再送信済みの第7パケットに含まれていたデータの読み出された領域1を示すインデックス番号1まで、ACK受信領域カウンタC201を更新する。
 データ解放部1122は、インデックス番号1が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域1の先頭,領域1サイズ,無効)と更新する。これにより、バッファメモリ部116に定められた領域1に記憶されていたデータは、解放される。
<Operation “Receiving ACK Signal Associated with Seventh Packet” shown in FIG. 12>
It is assumed that the communication interface unit 113 receives an ACK signal associated with the retransmitted seventh packet.
The data release unit 1122 updates the ACK reception area counter C201 up to the index number 1 indicating the area 1 from which the data included in the retransmitted seventh packet associated with the received ACK signal is read. .
The data release unit 1122 updates the index of the area indicated by the index number 1 as (area start address, area size, index number of next area) = (area 1 start, area 1 size, invalid). As a result, the data stored in the area 1 defined in the buffer memory unit 116 is released.
 <図12に示す、動作「第8パケットに対応付けられたACK信号を受信」>
 通信インタフェース部113は、送信済みの第8パケットに対応付けられたACK信号を受信したとする。
 データ解放部1122は、受信したACK信号に対応付けられた送信済みの第8パケットに含まれていたデータの読み出された領域2を示すインデックス番号2まで、ACK受信領域カウンタC201を更新する。
 データ解放部1122は、インデックス番号2が示す領域のインデックスを、(領域の先頭アドレス,領域サイズ,次の領域のインデックス番号)=(領域2の先頭,領域2サイズ,無効)と更新する。これにより、バッファメモリ部116に定められた領域2に記憶されていたデータは、解放される。
<Operation “Receiving ACK Signal Associated with Eighth Packet” shown in FIG. 12>
It is assumed that the communication interface unit 113 receives an ACK signal associated with the transmitted eighth packet.
The data release unit 1122 updates the ACK reception area counter C201 up to the index number 2 indicating the area 2 from which the data included in the transmitted eighth packet associated with the received ACK signal is read.
The data release unit 1122 updates the index of the area indicated by the index number 2 as (area start address, area size, next area index number) = (area 2 start, area 2 size, invalid). As a result, the data stored in the area 2 defined in the buffer memory unit 116 is released.
 <図12に示す、動作「ディスコネクト」>
 通信インタフェース部113は、クライアント装置30との通信を切断(ディスコネクト)する。図12に示す例では、未送信のデータは無い。仮に、未送信のデータが有る場合には、データ解放部1122は、ACK受信領域カウンタC201が示すバッファメモリ部116の各領域を示すインデックスを無効にすることにより、未送信のデータを解放する。
<Operation "Disconnect" shown in FIG. 12>
The communication interface unit 113 disconnects (disconnects) communication with the client device 30. In the example shown in FIG. 12, there is no untransmitted data. If there is untransmitted data, the data release unit 1122 releases the untransmitted data by invalidating the index indicating each area of the buffer memory unit 116 indicated by the ACK reception area counter C201.
 以上のように、負荷軽減装置110は、記憶装置インタフェース部115と、バッファメモリ部116と、データ制御部114と、パケット生成部1121と、通信インタフェース部113と、データ解放部1122とを備える。記憶装置インタフェース部115は、プロセッサ102を介さずに記憶装置106からデータを取得する。バッファメモリ部116は、記憶装置106から取得されたデータを記憶可能である。データ制御部114は、記憶装置106から取得されたデータを、バッファメモリ部116に定められた領域毎に、バッファメモリ部116に書き込んで記憶させる。パケット生成部1121は、バッファメモリ部116から領域毎にデータを読み出し、バッファメモリ部116から読み出されたデータを含むパケットを、領域毎に生成する。通信インタフェース部113は、生成されたパケットをクライアント装置30に送信する。データ解放部1122は、クライアント装置30にパケットが受信されたか否か(通信インタフェース部がクライアント装置30からACK信号を受信したか否か)を判定し、クライアント装置30に受信されたパケットに含まれていたデータが読み出された領域から、記憶装置106から取得されたデータを解放する(インデックスを無効にする)。
 サーバ装置10は、記憶装置106と、負荷軽減装置110とを備える。記憶装置106は、データを記憶する。
As described above, the load reduction device 110 includes the storage device interface unit 115, the buffer memory unit 116, the data control unit 114, the packet generation unit 1121, the communication interface unit 113, and the data release unit 1122. The storage device interface unit 115 acquires data from the storage device 106 without using the processor 102. The buffer memory unit 116 can store data acquired from the storage device 106. The data control unit 114 writes and stores the data acquired from the storage device 106 in the buffer memory unit 116 for each area defined in the buffer memory unit 116. The packet generation unit 1121 reads data from the buffer memory unit 116 for each region, and generates a packet including the data read from the buffer memory unit 116 for each region. The communication interface unit 113 transmits the generated packet to the client device 30. The data release unit 1122 determines whether or not the client device 30 has received a packet (whether or not the communication interface unit has received an ACK signal from the client device 30), and is included in the packet received by the client device 30. The data acquired from the storage device 106 is released (the index is invalidated) from the area where the data that has been read is read.
The server device 10 includes a storage device 106 and a load reduction device 110. The storage device 106 stores data.
 負荷軽減方法は、負荷軽減装置110における負荷軽減方法であって、記憶装置インタフェース部115が実行するステップと、データ制御部114が実行するステップと、パケット生成部1121が実行するステップと、通信インタフェース部113が実行するステップと、データ解放部1122が実行するステップとを有する。記憶装置インタフェース部115が実行するステップでは、記憶装置インタフェース部115が、プロセッサを介さずに記憶装置106からデータを取得する。データ制御部114が実行するステップでは、データ制御部114が、記憶装置106から取得されたデータを、バッファメモリ部116に定められた領域毎に、バッファメモリ部116に書き込んで記憶させる。パケット生成部1121が実行するステップでは、パケット生成部1121が、バッファメモリ部116から領域毎にデータを読み出し、バッファメモリ部116から読み出されたデータを含むパケットを、領域毎に生成する。通信インタフェース部113が実行するステップでは、生成されたパケットをクライアント装置30に送信する。データ解放部1122が実行するステップでは、データ解放部1122が、クライアント装置30にパケットが受信されたか否か(通信インタフェース部がクライアント装置30からACK信号を受信したか否か)を判定し、クライアント装置30に受信されたパケットに含まれていたデータが読み出された領域から、記憶装置106から取得されたデータを解放する(インデックスを無効にする)。 The load reduction method is a load reduction method in the load reduction device 110, and includes a step executed by the storage device interface unit 115, a step executed by the data control unit 114, a step executed by the packet generation unit 1121, and a communication interface. And a step executed by the data release unit 1122. In the step executed by the storage device interface unit 115, the storage device interface unit 115 acquires data from the storage device 106 without using a processor. In the step executed by the data control unit 114, the data control unit 114 writes and stores the data acquired from the storage device 106 in the buffer memory unit 116 for each area defined in the buffer memory unit 116. In the step executed by the packet generation unit 1121, the packet generation unit 1121 reads data for each area from the buffer memory unit 116, and generates a packet including the data read from the buffer memory unit 116 for each area. In the step executed by the communication interface unit 113, the generated packet is transmitted to the client device 30. In the step executed by the data release unit 1122, the data release unit 1122 determines whether or not the client device 30 has received a packet (whether or not the communication interface unit has received an ACK signal from the client device 30), and the client The data acquired from the storage device 106 is released from the area from which the data included in the packet received by the device 30 is read (index is invalidated).
 この構成により、記憶装置インタフェース部115は、プロセッサ102を介さずに記憶装置106からデータを取得する。データ制御部114は、記憶装置106から取得されたデータを、バッファメモリ部116に定められた領域毎に、バッファメモリ部116に書き込んで記憶させる。データ解放部1122は、クライアント装置30にパケットが受信されたか否かを判定し、クライアント装置30に受信されたパケットに含まれていたデータが読み出された領域から、記憶装置106から取得されたデータを解放する。 With this configuration, the storage device interface unit 115 acquires data from the storage device 106 without using the processor 102. The data control unit 114 writes and stores the data acquired from the storage device 106 in the buffer memory unit 116 for each area defined in the buffer memory unit 116. The data release unit 1122 determines whether or not a packet is received by the client device 30, and is acquired from the storage device 106 from an area from which data included in the packet received by the client device 30 is read. Free the data.
 これにより、負荷軽減装置110、サーバ装置10及び負荷軽減方法は、プロセッサを介さずに記憶装置から通信部にデータを直接転送する(例えば、DMA転送を実行する)場合、記憶装置106から通信部104への転送レートが低いシステムでも、大量のデータを高速にクライアント装置30に配信することができる。 As a result, the load reducing device 110, the server device 10 and the load reducing method allow the data transfer from the storage device 106 to the communication unit when the data is directly transferred from the storage device to the communication unit without going through the processor (for example, performing DMA transfer). Even in a system with a low transfer rate to 104, a large amount of data can be distributed to the client device 30 at high speed.
 つまり、負荷軽減装置110、サーバ装置10及び負荷軽減方法は、コネクション毎に確保する記憶領域がインデックスを記憶するための領域のみであり、パケットに含められるデータについてはバッファメモリ部116(共通部分)に記憶されている。これにより、負荷軽減装置110、サーバ装置10及び負荷軽減方法は、メモリを効率良く使うので、大容量のメモリを使用しなくても(転送レートが低いシステムでも)、大量のデータを高速にクライアント装置30に配信することができる。 That is, in the load reduction device 110, the server device 10, and the load reduction method, the storage area secured for each connection is only the area for storing the index, and the data included in the packet is the buffer memory unit 116 (common part). Is remembered. As a result, the load reducing device 110, the server device 10 and the load reducing method use memory efficiently, so that a large amount of data can be transferred to a client at high speed without using a large capacity memory (even in a system with a low transfer rate). It can be delivered to the device 30.
 データ制御部114は、記憶装置106から取得されたデータを、バッファメモリ部116に定められた領域毎にバッファメモリ部116に記憶させ、記憶装置106から取得されたデータが記憶された領域を示す書込領域カウンタC202を更新してもよい。パケット生成部1121は、更新された書込領域カウンタC202が示す領域からデータを読み出し、読み出されたデータを含むパケットを生成してもよい。 The data control unit 114 stores the data acquired from the storage device 106 in the buffer memory unit 116 for each region defined in the buffer memory unit 116, and indicates the region where the data acquired from the storage device 106 is stored. The writing area counter C202 may be updated. The packet generator 1121 may read data from the area indicated by the updated write area counter C202 and generate a packet including the read data.
 データ解放部1122は、パケットに含まれているデータが読み出された領域を示す読出領域カウンタC203を、通信インタフェース部113から当該パケットが送信される際に更新してもよい。データ解放部1122は、送信済みのパケットがクライアント装置30に受信されていない(通信インタフェース部がクライアント装置30からACK信号を受信していない)場合には、クライアント装置30に受信されていない当該送信済みのパケットに含まれていたデータが読み出された領域を示すまで、読出領域カウンタC203を戻してもよい。 The data release unit 1122 may update the read area counter C203 indicating the area from which the data included in the packet is read when the packet is transmitted from the communication interface unit 113. If the transmitted packet has not been received by the client device 30 (the communication interface unit has not received an ACK signal from the client device 30), the data release unit 1122 performs the transmission that has not been received by the client device 30. The read area counter C203 may be returned until it indicates the area from which the data contained in the completed packet has been read.
 以上述べた少なくともひとつの実施形態の負荷軽減装置によれば、プロセッサを介さずに記憶装置から通信部にデータを直接転送する場合、記憶装置から通信部への転送レートが低いシステムでも、大量のデータを高速に配信することが可能となる。 According to the load reducing device of at least one embodiment described above, when data is directly transferred from the storage device to the communication unit without using a processor, a large amount of data is transferred even in a system having a low transfer rate from the storage device to the communication unit. Data can be distributed at high speed.
 以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。 Although several embodiments of the present invention have been described above, these embodiments are presented as examples and are not intended to limit the scope of the invention. These embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the spirit of the invention. These embodiments and their modifications are included in the scope and gist of the invention, and are also included in the invention described in the claims and the equivalents thereof.
 例えば、実施形態のサーバ装置は、少なくともその一部が、クラウドサーバ装置により構成されていてもよい。すなわち、実施形態のサーバ装置が実行する処理の少なくとも一部は、クラウド・コンピューティングにより実行されてもよい。 For example, at least a part of the server device of the embodiment may be configured by a cloud server device. That is, at least a part of the processing executed by the server device of the embodiment may be executed by cloud computing.
 このクラウド・コンピューティングには、アプリケーション(ソフトウェア)をサービスとして提供するSaaS(Software as a Service)と、アプリケーションを稼働させるための基盤(プラットフォーム)をサービスとして提供するPaaS(Platform as a Service)と、サーバ装置、中央演算処理装置及びストレージなどのリソースをサービス(パブリッククラウド)として提供するIaaS(Infrastructure as a Service)とのうち、少なくとも一つが含まれていてもよい。例えば、このクラウド・コンピューティングには、クラウド・サービス提供層(PaaS)により、インターネットを介した遠隔操作が含まれていてもよい。 This cloud computing includes SaaS (Software as a Service) that provides an application (software) as a service, PaaS (Platform as a Service as a service) that provides a platform (platform) for running an application, At least one of IaaS (Infrastructure 演算 as ASService) that provides resources such as a server device, a central processing unit, and a storage as a service (public cloud) may be included. For example, this cloud computing may include remote operation via the Internet by a cloud service providing layer (PaaS).
 実施形態のサーバ装置は、その監視、障害対応及び運用のうち少なくとも一つが、代行サービスにより行われていてもよい。例えば、ASP(Application Service Provider)が代行して、実施形態のサーバ装置を監視、障害対応及び運用してもよい。また、実施形態のサーバ装置は、その監視、障害対応及び運用が、複数の主体によりされてもよい。 In the server device according to the embodiment, at least one of monitoring, failure handling, and operation may be performed by a proxy service. For example, an ASP (Application Service Provider) may act on behalf of the server device of the embodiment to monitor, troubleshoot and operate. In addition, the server device of the embodiment may be monitored, handled by a failure, and operated by a plurality of entities.

Claims (5)

  1.  プロセッサを介さずに記憶装置からデータを取得する記憶装置インタフェース部と、
     前記記憶装置から取得されたデータを記憶可能であるバッファメモリ部と、
     前記記憶装置から取得されたデータを、前記バッファメモリ部に定められた領域毎に、前記バッファメモリ部に書き込んで記憶させるデータ制御部と、
     前記バッファメモリ部から前記領域毎にデータを読み出し、前記バッファメモリ部から読み出されたデータを含むパケットを、前記領域毎に生成するパケット生成部と、
     生成された前記パケットをクライアント装置に送信する通信インタフェース部と、
     前記クライアント装置に前記パケットが受信されたか否かを判定し、前記クライアント装置に受信された前記パケットに含まれていたデータが読み出された前記領域から、前記記憶装置から取得されたデータを解放するデータ解放部と、
     を備える負荷軽減装置。
    A storage device interface unit for acquiring data from the storage device without going through a processor;
    A buffer memory unit capable of storing data acquired from the storage device;
    A data control unit that writes and stores data acquired from the storage device in the buffer memory unit for each area defined in the buffer memory unit;
    A packet generation unit that reads out data for each region from the buffer memory unit and generates a packet including the data read from the buffer memory unit for each region;
    A communication interface unit for transmitting the generated packet to a client device;
    Determine whether the client device has received the packet, and release the data acquired from the storage device from the area from which the data contained in the packet received by the client device has been read A data release unit to perform,
    A load reducing device comprising:
  2.  前記データ制御部は、前記記憶装置から取得されたデータを、前記バッファメモリ部に定められた領域毎に前記バッファメモリ部に記憶させ、前記記憶装置から取得されたデータが記憶された前記領域を示す書込領域カウンタを更新し、
     前記パケット生成部は、更新された前記書込領域カウンタが示す前記領域からデータを読み出し、読み出されたデータを含むパケットを生成する、請求項1に記載の負荷軽減装置。
    The data control unit stores the data acquired from the storage device in the buffer memory unit for each region defined in the buffer memory unit, and stores the region in which the data acquired from the storage device is stored. Update the writing area counter shown
    The load reducing device according to claim 1, wherein the packet generation unit reads data from the area indicated by the updated write area counter, and generates a packet including the read data.
  3.  前記データ解放部は、パケットに含まれているデータが読み出された前記領域を示す読出領域カウンタを、前記通信インタフェース部から当該パケットが送信される際に更新し、当該送信済みのパケットが前記クライアント装置に受信されていない場合には、前記クライアント装置に受信されていない当該送信済みのパケットに含まれていたデータが読み出された前記領域を示すまで、前記読出領域カウンタを戻す、請求項1又は請求項2に記載の負荷軽減装置。 The data release unit updates a read area counter indicating the area from which data included in a packet has been read when the packet is transmitted from the communication interface unit, and the transmitted packet is If not received by the client device, the read area counter is returned until it indicates the area from which data contained in the transmitted packet not received by the client apparatus is read. The load reducing device according to claim 1 or 2.
  4.  データを記憶する記憶装置と、
     請求項1から請求項3のいずれか一項に記載の負荷軽減装置と、
     を備える、サーバ装置。
    A storage device for storing data;
    The load reducing device according to any one of claims 1 to 3,
    A server device comprising:
  5.  負荷軽減装置における負荷軽減方法であって、
     記憶装置インタフェース部が、プロセッサを介さずに記憶装置からデータを取得するステップと、
     データ制御部が、前記記憶装置から取得されたデータを、バッファメモリ部に定められた領域毎に、前記バッファメモリ部に書き込んで記憶させるステップと、
     パケット生成部が、前記バッファメモリ部から前記領域毎にデータを読み出し、前記バッファメモリ部から読み出されたデータを含むパケットを、前記領域毎に生成するステップと、
     通信インタフェース部が、生成された前記パケットをクライアント装置に送信するステップと、
     データ解放部が、前記クライアント装置に前記パケットが受信されたか否かを判定し、前記クライアント装置に受信された前記パケットに含まれていたデータが読み出された前記領域から、前記記憶装置から取得されたデータを解放するステップと、
     を有する、負荷軽減方法。
    A load reduction method in a load reduction device,
    A storage device interface unit acquiring data from the storage device without going through a processor;
    A step of writing and storing data acquired from the storage device in the buffer memory unit for each area defined in the buffer memory unit;
    A packet generation unit that reads data for each area from the buffer memory unit, and generates a packet including the data read from the buffer memory unit for each area;
    A communication interface unit transmitting the generated packet to a client device;
    A data release unit determines whether or not the packet is received by the client device, and obtains from the storage device from the area from which data included in the packet received by the client device is read Releasing released data; and
    A method of reducing the load.
PCT/JP2014/063043 2013-09-10 2014-05-16 Load reduction device, server device and load reduction method WO2015037274A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013187651A JP2015055933A (en) 2013-09-10 2013-09-10 Load reduction device, server device, and load reduction method
JP2013-187651 2013-09-10

Publications (1)

Publication Number Publication Date
WO2015037274A1 true WO2015037274A1 (en) 2015-03-19

Family

ID=52665399

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/063043 WO2015037274A1 (en) 2013-09-10 2014-05-16 Load reduction device, server device and load reduction method

Country Status (2)

Country Link
JP (1) JP2015055933A (en)
WO (1) WO2015037274A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10116244A (en) * 1996-08-21 1998-05-06 Matsushita Graphic Commun Syst Inc Method and device for data transfer
JP2003323333A (en) * 2002-05-07 2003-11-14 Pfu Ltd Memory device and its control method
JP2007110680A (en) * 2005-09-15 2007-04-26 Matsushita Electric Ind Co Ltd Communication apparatus, communication program, communication control method, and recording medium
WO2013038730A1 (en) * 2011-09-13 2013-03-21 株式会社東芝 Data transferring apparatus, data transmitting system, data transmitting method, and program

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010124205A (en) * 2008-11-19 2010-06-03 Nec Corp Switching device, switch of switching device, and method and program for controlling switching device
JP5611889B2 (en) * 2011-05-17 2014-10-22 株式会社東芝 Data transfer device, data transmission system, and data transmission method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10116244A (en) * 1996-08-21 1998-05-06 Matsushita Graphic Commun Syst Inc Method and device for data transfer
JP2003323333A (en) * 2002-05-07 2003-11-14 Pfu Ltd Memory device and its control method
JP2007110680A (en) * 2005-09-15 2007-04-26 Matsushita Electric Ind Co Ltd Communication apparatus, communication program, communication control method, and recording medium
WO2013038730A1 (en) * 2011-09-13 2013-03-21 株式会社東芝 Data transferring apparatus, data transmitting system, data transmitting method, and program

Also Published As

Publication number Publication date
JP2015055933A (en) 2015-03-23

Similar Documents

Publication Publication Date Title
WO2018102967A1 (en) Control method, storage device and system for data read/write command in nvme over fabric architecture
JP5204195B2 (en) Data transmission system and data transmission program
US20190079895A1 (en) System and method for maximizing bandwidth of pci express peer-to-peer (p2p) connection
US20160026605A1 (en) Registrationless transmit onload rdma
JP2018185814A5 (en)
US10540307B1 (en) Providing an active/active front end by coupled controllers in a storage system
JP5611889B2 (en) Data transfer device, data transmission system, and data transmission method
TW202016744A (en) Host, nvme ssd and method for storage service
TW200814672A (en) Method and system for a user space TCP offload engine (TOE)
JP6299266B2 (en) Data storage method, storage system, program, and storage apparatus
WO2021063160A1 (en) Solid state disk access method and storage device
JP2015179328A (en) Data transfer device, data receiving system, and data receiving method
US10601692B2 (en) Integrating a communication bridge into a data processing system
JP5304674B2 (en) Data conversion apparatus, data conversion method and program
JP5880551B2 (en) Retransmission control system and retransmission control method
WO2017210015A1 (en) Improving throughput in openfabrics environments
US20150199298A1 (en) Storage and network interface memory share
TWI666901B (en) Data transmission method and host system using the same
WO2015037274A1 (en) Load reduction device, server device and load reduction method
JP2018504689A5 (en)
US10686754B2 (en) In-band LDAP over FICON
US20120036217A1 (en) Data conversion device and data conversion method
US11880570B1 (en) Storage system, data transmission method, and network interface
JP6011727B2 (en) Data transfer apparatus, data transfer method, and information processing apparatus
JP2006155398A (en) Method and device for mediating data

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14843453

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14843453

Country of ref document: EP

Kind code of ref document: A1