IP Library Granted Patent US 10,491,672
Granted Patent B2
US 10,491,672 · App. 14/658,741 · Granted Nov 26, 2019

Data transfer device, data receiving system and data receiving method

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,491,672
App. No.
14/658,741
Granted
Nov 26, 2019
Kind
B2
Abstract

The data transfer device receives file data through a network and writes the file data to a storage device on a block basis, in which the communication processor receives a receiving instruction for the file data from an external host CPU and receives the file data via one or more packets from the network according to the receiving instruction, the receiving buffer stores data received in the communication processor therein upon receiving each packet, and the command issuance controller acquires, from the external host CPU, map information indicating a position to write the file data in a storage area of the storage device, specifies data in the receiving buffer for writing according to a data storing status of the receiving buffer, issues a write command for writing a specified data to the storage device and sends it to the storage device.

Claims (54)

1. A data transfer system comprising:

a host CPU configured to specify an identifier of target file data; and

a data transfer device which receives the target file data having the identifier from a communication device in a network and writes the target file data into a storage device, the storage device being configured to manage data on a block basis and arranged outside the host CPU,

wherein the host CPU

reads out map information from a predetermined area of the storage device, the map information including one or more metadata each indicating correspondence between an identifier of file data and an area which the file data is stored in the storage device,

specifies an available area to write the target file data in the storage device based on the map information and a size of the target file data, the available area including a plurality of blocks in the storage device,

generates target metadata indicating correspondence between the specified available area and the identifier of the target file data, and

adds the target metadata into the map information stored in the predetermined area of the storage device,

wherein the data transfer device includes

a receiving buffer configured to store data therein;

a communication processor configured to

receive a reception instruction of the target file data from the host CPU, the reception instruction including the identifier of the target file data and session information indicating a session for reception of the target file data,

establish the session according to the session information with the communication device,

receive a plurality of packets from the network,

check whether a session of each of the received packets coincides with the established session, and

determine an address for writing data of each of the received packets in the receiving buffer based on a relative position of the data within the target file data, the data of each of the received packets being part of the target file data, if the session of each of the received packets coincides with the established session, and write the data of each of the received packets at the determined address in the receiving buffer; and

a command issuance controller to

receive the target metadata from the host CPU,

monitor the receiving buffer to determine whether a block size of continuous data is stored in the receiving buffer at addresses corresponding to the block size in order from a head of the target file data,

issue a write command for writing the block size of continuous data at a corresponding block of the plurality of blocks in the storage device if the block size of continuous data is stored in the receiving buffer, and

send the write command to the storage device which executes the write command, and

wherein the receiving buffer outputs the continuous data of the block size to the storage device to write the block size of continuous data at the corresponding block in the storage device.

2. The system according to claim 1 , wherein

the command issuance controller determines whether an entirety of the data corresponding to each of the blocks is stored in the receiving buffer, and issues the write command for writing the entirety of the data corresponding to each of the blocks when the entirety of the data corresponding to each of the blocks is stored in the receiving buffer.

3. The system according to claim 2 , wherein

the packets received via the session indicated in the session information include sequence numbers and parts of the target file data, and

the command issuance controller

stores the data of each of the received packets at an address corresponding to a sequence number of each of the received packets in the receiving buffer,

manages correspondence between the blocks and the sequence numbers, and

determines whether the entirety of the data corresponding to each of the blocks is stored in the receiving buffer based whether all of the packets including the sequence numbers corresponding to each of the block are received.

4. The system according to claim 1 , wherein the command issuance controller specifies a range of data having been stored continuously from the head of the target file data in the receiving buffer, and transmits first information indicating the specified range to the communication device in the network.

5. The system according to claim 4 , wherein the command issuance controller transmits information indicating a smallest sequence number of data which follows the specified range and which is not yet stored in the receiving buffer.

6. The system according to claim 1 , wherein the session indicated in the session information is a session of TCP/IP.

7. The system according to claim 1 , wherein the transfer device further comprises a notifier to receive a completion notice of execution of the write command from the storage device each time the execution of the write command is completed, and in the case that writing of the target file data is completed, notify a write completion response to the host CPU.

8. The system according to claim 1 , wherein the command issuance controller receives a write request of the target metadata from the host CPU, generates a write command for writing the target metadata into the predetermined area, and sends the write command of the target metadata to the storage device.

9. A data receiving method using a host CPU configured to specify an identifier of target file data: and a data transfer device which receives the target file data having the identifier from a communication device in a network and writes the target file data into a storage device, the storage device being configured to manage data on a block basis and arranged outside the host CPU, the method comprising:

reading out, by the host CPU, map information from a predetermined area of the storage device, the map information including one or more metadata each indicating correspondence between an identifier of file data and an area which the file data is stored in the storage device;

specifying, by the host CPU, an available area to write the target file data in the storage device based on the map information and a size of the target file data, the available area including a plurality of blocks in the storage device;

generating, by the host CPU, target metadata indicating correspondence between the specified available area and the identifier of the target file data;

adding, by the host CPU, the target metadata into the map information stored in the predetermined area of the storage device;

receiving, by the data transfer device, a reception instruction of the target file data from the host CPU, the reception instruction including the identifier of the target file data and session information indicating a session for reception of the target file data;

establishing, by the data transfer device, the session according to the session information with the communication device;

receiving, by the data transfer device, a plurality of packets from the network;

checking, by the data transfer device, whether a session of each of the received packets coincides with the session indicated in the session information;

receiving, by the data transfer device, the target metadata from the host CPU;

determining, by the data transfer device, an address for write of data of each of the received packets in a receiving buffer based on a relative position of the data within the target file data if the session of each of the received packets coincides with the session indicated in the session information, the data of each of the received packets being part of the target file data, and writing the data of each of the received packets at the determined address in the receiving buffer;

monitoring, by the data transfer device, the receiving buffer based on the target metadata to determine whether a block size of continuous data is stored in the receiving buffer at addresses corresponding to the block size in order from a head of the target file data;

issuing, by the data transfer device, a write command for writing the block size of continuous data at a corresponding block of the plurality of blocks in the storage device if the block size of continuous data is stored in the receiving buffer;

sending, by the data transfer device, the write command to the storage device which executes the write command; and

outputting the block size of continuous data from the receiving buffer to the storage device to write the block size of continuous data at the corresponding block in the storage device.

10. The system according to claim 1 , wherein the packets received via the established session include parts of the target file data.

11. The system according to claim 1 , wherein

the packets received via the established session include sequence numbers wherein the sequence numbers are associated with addresses of the receiving buffer, and

the command issuance controller determines the address for writing data of each of the received packets based on the sequence number of each of the received packets.

Assignments (5)
MERGER Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: K.K. PANGEA
Reel/Frame 055659/0471 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 055669/0001 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: K.K. PANGEA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 055669/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2017
From: KABUSHIKI KAISHA TOSHIBA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 043052/0218 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2015
From: KOBAYASHI, YUTA; YAMAURA, TAKAHIRO; YAMAGUCHI, KENSAKU; GOTO, MASATAKA
To: KABUSHIKI KAISHA TOSHIBA
Reel/Frame 035874/0087 →