# US 8,788,726 B2 · Data transmission system, storage medium and data transmission program

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,726 B2
- Document ID: US8788726B2
- Status: Granted
- Kind: B2
- Application number: 13/234,564
- Filed: 2011-09-16
- Published: 2012-05-03
- Granted: 2014-07-22
- Earliest claimed: 2010-10-29
- Assignees: Kabushiki Kaisha Toshiba
- Applicants: Shingo Tanaka; Takahiro Yamaura
- Inventors: Shingo Tanaka; Takahiro Yamaura
- Web page: https://patentgrep.com/patent/US8788726B2

## CPC

- G06F 13/4234: {being a memory bus}
- H04L 2001/0094: {Bus}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

A system has a processor configured to be capable of read and write to a main memory, a storage configured to transmit stored data per block on an I/O bus, and a protocol processing apparatus connected to the I/O bus and configured to perform a communication protocol process on behalf of the processor. The processor includes a specifying part configured to specify data per block to be transmitted from the storage, and an indicating part configured to indicate data transfer from the storage to the protocol processing apparatus by specifying address information of the protocol processing apparatus. The protocol processing apparatus includes a receiving part configured to directly receive data transferred per block from the storage to the I/O bus, without relaying the main memory, and a network processing part configured to transmit the data received per block by the receiving part over a network per packet.

## Claims

### Claim 1

A data transmission system comprising:
a processor configured to be capable of read and write to a main memory device;
a data storage apparatus configured to transmit stored data per block; and
a protocol processing apparatus configured to perform a specific communication protocol process on behalf of the processor,
wherein the processor further comprises:
a data specifying part configured to specify data per block to be transmitted from the data storage apparatus; and
a transfer indicating part configured to indicate data transfer from the data storage apparatus to the protocol processing apparatus,
a file-system processing part configured to specify a group of data per block corresponding to a file and a location of valid data in the group of data, based on a file system in the data storage apparatus; and
an valid-data-location notifying part configured to notify the protocol processing part of location information of the valid data,
the protocol processing apparatus comprises
a data receiving part configured to directly receive data transferred per block from the data storage apparatus, without relaying the main memory device;
a network processing part configured to transmit the data received per block by the data receiving part over a network;
a data extracting part configured to extract the valid data based on data per block received by the data receiving part and the location information of the valid data,
wherein the network processing part transmits the valid data extracted by the data extracting part over the network.

### Claim 2

A data transmission system comprising:
a processor configured to be capable of read and write to a main memory device;
a data storage apparatus configured to transmit stored data per block on an I/O bus; and
a protocol processing apparatus connected to the I/O bus and configured to perform a specific communication protocol process on behalf of the processor,
a plurality of connections for data transfer, the connections being virtually set between the data storage apparatus and the protocol processing apparatus,
wherein the processor comprises:
a data specifying part configured to specify data per block to be transmitted from the data storage apparatus;
a transfer indicating part configured to indicate data transfer from the data storage apparatus to the protocol processing apparatus by specifying address information of the protocol processing apparatus;
a connection notifying part configured to notify the protocol processing apparatus of an identifier of a connection to be used for data transmission from the data storage apparatus to the protocol processing apparatus;
a connection selection part configured to select a connection to be used for data transmission from the data storage apparatus to the protocol processing apparatus, based on flow control information from the protocol processing apparatus; and
a data specifying part configured to specify data per block to be transmitted through a connection selected by the connection selection part
the protocol processing apparatus includes:
a data receiving part configured to directly receive data transferred per block from the data storage apparatus to the I/O bus, without relaying the main memory device; and
a network processing part configured to transmit the data received per block by the data receiving part over a network per packet.

### Claim 3 (depends on 2)

The system in claim 2, wherein the protocol processing apparatus further includes a flow-control information notifying part configured to notify the processor of the flow control information for each connection to transfer data equally as much as possible over the connections.

### Claim 4

A data transmission system, comprising:
a processor configured to be capable of read and write to a main memory device;
a data storage apparatus configured to transmit stored data per block on an I/O bus; and
a protocol processing apparatus connected to the I/O bus and configured to perform a specific location protocol process on behalf of the processor,
wherein the processor includes:
a data specifying part configured to specify data per block to be transmitted from the data storage apparatus; and
a transfer indicating part configured to indicate data transfer from the data storage apparatus to the protocol processing apparatus by specifying address information of the protocol processing apparatus,
the protocol processing apparatus includes:
a data receiving part configured to directly receive data transferred per block from the data storage apparatus to the I/O bus, without relaying the main memory device; and
a network processing part configured to transmit the data received per block by the data receiving part over a network per packet,
wherein the protocol processing apparatus further includes a re-transfer requesting part configured to request data to be re-transferred to the processor, and
the processor further includes a re-transfer location specifying part configured to specify a file of data to be re-transferred, and an offset location and a length of the file, in response to the request.

### Claim 5

A data transmission system, comprising:
a processor configured to be capable of read and write to a main memory device;
a data storage apparatus configured to transmit stored data per block on an I/O bus; and
a protocol processing apparatus connected to the I/O bus and configured to perform a specific communication protocol process on behalf of the processor,
wherein the processor includes:
a data specifying part configured to specify data per block to be transmitted from the data storage apparatus; and
a transfer indicating part configured to indicate data transfer from the data storage apparatus to the protocol processing apparatus by specifying address information of the protocol processing apparatus,
the protocol processing apparatus includes:
a data receiving part configured to directly receive data transferred per block from the data storage apparatus to the I/O bus, without relaying the main memory device; and
a network processing part configured to transmit the data received per block by the data receiving part over a network per packet,
wherein the transfer indicating part is capable of selectively indicating whether data retrieved from data storage apparatus is transferred or the retrieved data is directly transferred to the data receiving part without relaying the without relaying the main memory device.

### Claim 6

A data transmission system, comprising:
a processor configured to be capable of read and write to a main memory device;
a data storage apparatus configured to transmit stored data per block on an I/O bus; and
a protocol processing apparatus connected to the I/O bus and configured to perform a specific communication protocol process on behalf of the processor,
wherein the processor includes:
a data specifying part configured to specify data per block to be transmitted from the data storage apparatus; and
a transfer indicating part configured to indicate data transfer from the data storage apparatus to the protocol processing apparatus by specifying address information of the protocol processing apparatus,
the protocol processing apparatus includes:
a data receiving part configured to directly receive data transferred per block from the data storage apparatus to the I/O bus, without relaying the main memory device; and
a network processing part configured to transmit the data received per block by the data receiving part over a network per packet,
wherein the processor further includes an error notifying part configured to notify the data receiving part of a transfer error when the processor receives a transfer error signal generated in the data storage apparatus,
when the notification is received from the error notifying part, the data receiving part discards currently received data and waits for data per block that follows the currently received data.

### Claim 7

A storage medium having a data transmission program stored therein, the program being readable by a computer,
wherein the program controls;
a processor configured to be capable of read and write to a main memory device;
a data storage apparatus configured to transmit stored data per block; and
a protocol processing apparatus configured to perform a specific communication protocol process on behalf of the processor,
wherein the program comprising:
specifying data per block to be transmitted from the data storage apparatus;
indicating data transfer from the data storage apparatus to the protocol processing apparatus by specifying address information of the protocol processing apparatus;
directly receiving at the protocol processing apparatus data transferred per block from the data storage apparatus without relaying the main memory device;
transmitting the data received per block at the protocol processing apparatus over a network;
specifying a group of data per block corresponding to a file and a location of valid data in the group of data, based on a file system in the data storage apparatus;
notifying the protocol processing part of location information of the valid data; and
extracting the valid data based on data per block received by the protocol processing apparatus and the location information of the valid data,
wherein the protocol processing apparatus transmits the extracted valid data over the network.

### Claim 8

A storage medium having a data transmission program stored therein, the program being readable by a computer,
wherein the program controls:
a processor configured to be capable of read and write to a main memory device;
a data storage apparatus configured to transmit stored data per block on an I/O bus; and
a protocol processing apparatus connected to the I/O bus and configured to perform a specific communication protocol process on behalf of the processor; and
the program comprising:
specifying data per block to be transmitted from the data storage apparatus;
indicating data transfer from the data storage apparatus to the protocol processing apparatus by specifying address information of the protocol processing apparatus;
directly receiving at the protocol processing apparatus data transferred per block from the data storage apparatus to the I/O bus, without relaying the main memory device;
transmitting the data received per block at the protocol processing apparatus over a network per packet,
setting a plurality of connections for data transfer between the data storage apparatus and the protocol processing apparatus;
notifying the protocol processing apparatus of an identifier of a connection to be used for data transmission from the data storage apparatus to the protocol processing apparatus;
selecting a connection to be used for data transmission from the data storage apparatus to the protocol processing apparatus, based on flow control information from the protocol processing apparatus; and
specifying data per block to be transmitted through a selected connection.

### Claim 9 (depends on 8)

The storage medium in claim 8, wherein the program further comprising:
notifying the processor of the flow control information for each connection to transfer data equally as much as possible over the connections.

### Claim 10

A storage medium having a data transmission program stored therein, the program being readable by a computer,
wherein the program controls:
a processor configured to be capable of read and write to a main memory device;
a data storage apparatus configured to transmit stored data per block on an I/O bus; and
a protocol processing apparatus connected to the I/O bus and configured to perform a specific communication protocol process on behalf of the processor; and
the program comprising:
specifying data per block to be transmitted from the data storage apparatus;
indicating data transfer from the data storage apparatus to the protocol processing apparatus by specifying address information of the protocol processing apparatus;
directly receiving at the protocol processing apparatus data transferred per block from the data storage apparatus to the I/O bus, without relaying the main memory device; and
transmitting the data received per block at the protocol processing apparatus over a network per packet,
wherein the program further comprising:
requesting data to be re-transferred to the processor; and
specifying a file of data to be re-transferred, and an offset location and a length of the file, in response to the request.

### Claim 11

A storage medium having a data transmission program stored therein, the program being readable by a computer,
wherein the program controls:
a processor configured to be capable of read and write to a main memory device;
a data storage apparatus configured to transmit stored data per block on an I/O bus; and
a protocol processing apparatus connected to the I/O bus and configured to perform a specific communication protocol process on behalf of the processor; and
the program comprising:
specifying data per block to be transmitted from the data storage apparatus;
indicating data transfer from the data storage apparatus to the protocol processing apparatus by specifying address information of the protocol processing apparatus;
directly receiving at the protocol processing apparatus data transferred per block from the data storage apparatus to the I/O bus, without relaying the main memory device; and
transmitting the data received per block at the protocol processing apparatus over a network per packet,
wherein the program is capable of selectively indicating whether data retrieved from data storage apparatus is transferred or the retrieved data is directly transferred to the data receiving part without relaying the main memory device.

### Claim 12

A storage medium having a data transmission program stored therein, the program being readable by a computer,
wherein the program controls:
a processor configured to be capable of read and write to a main memory device;
a data storage apparatus configured to transmit stored data per block on an I/O bus; and
a protocol processing apparatus connected to the I/O bus and configured to perform a specific communication protocol process on behalf of the processor; and
the program comprising:
specifying data per block to be transmitted from the data storage apparatus;
indicating data transfer from the data storage apparatus to the protocol processing apparatus by specifying address information of the protocol processing apparatus;
directly receiving at the protocol processing apparatus data transferred per block from the data storage apparatus to the I/O bus, without relaying the main memory device; and
transmitting the data received per block at the protocol processing apparatus over a network per packet,
wherein the program runs on the computer to perform the steps of:
notifying the protocol processing apparatus of a transfer error when the processor receives a transfer error signal generated in the data storage apparatus; and
when receiving the notification of the transfer error, discarding currently received data and waiting for data per block that follows the currently received data.
