# US 10,372,667 B2 · Communication apparatus and control method thereof

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

- Number: US 10,372,667 B2
- Document ID: US10372667B2
- Status: Granted
- Kind: B2
- Application number: 15/189,602
- Filed: 2016-06-22
- Published: 2016-12-29
- Granted: 2019-08-06
- Earliest claimed: 2015-06-24
- Assignees: Canon Kabushiki Kaisha
- Applicants: Canon Kabushiki Kaisha
- Inventors: Akihisa Kinoshita
- Web page: https://patentgrep.com/patent/US10372667B2

## CPC

- G06F 15/1735: {Network adapters, e.g. SCI, Myrinet (protocol engines H04L69/12)}
- H04L 1/1874: {Buffer management}
- H04L 1/188: {Time-out mechanisms}
- H04L 69/163: In-band adaptation of TCP data exchange; In-band control procedures
- 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)

## Abstract

A communication apparatus includes the first memory unit which stores data to be a sending target to another communication apparatus and the second memory unit accessible at higher speed than the first memory unit, and transfers the sending target data to the second memory unit concurrently with transfer of the data to the first memory unit. The communication apparatus sends the sending target data from the second memory unit to the other communication apparatus and discards the data from the second memory unit after that sending and before receiving a response to the data from the other communication apparatus. When resending the data, resending processing to the other communication apparatus is performed based on the data transferred to the first memory unit.

## Claims

### Claim 1

A communication apparatus comprising:
a first memory configured to store data to be sent to another communication apparatus;
a second memory accessible at higher speed than the first memory;
one or more processors; and
a memory coupled to the one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the communication apparatus to:
transfer the data to the second memory concurrently with transfer of the data to the first memory;
send the transferred data from the second memory to the another communication apparatus;
discard the data from the second memory after the sending and before receiving a response to the data from the another communication apparatus; and
in a case where the communication apparatus is to resend the data, resend the data to the another communication apparatus based on the data transferred to the first memory.

### Claim 2 (depends on 1)

The communication apparatus according to claim 1, wherein the instructions, when executed by the one or more processors, further cause the communication apparatus to:
receive the response to the data from the another communication apparatus; and
discard the data from the first memory when the response is received.

### Claim 3 (depends on 1)

The communication apparatus according to claim 1, wherein the instructions, when executed by the one or more processors, further cause the communication apparatus to generate a packet including the data based on the data,
wherein sending the transferred data including sending the generated packet.

### Claim 4 (depends on 3)

The communication apparatus according to claim 3, wherein the generated packet includes a header portion generated based on the data,
wherein the header portion is stored in the first memory, and
wherein the instructions, when executed by the one or more processors, further cause the communication apparatus to regenerate a packet based on the data and the header portion stored in the first memory when the data is resent.

### Claim 5 (depends on 4)

The communication apparatus according to claim 4, wherein the instructions, when executed by the one or more processors, further cause the communication apparatus to send the regenerated packet to the another communication apparatus.

### Claim 6 (depends on 1)

The communication apparatus according to claim 1, wherein the first memory comprises a buffer formed by a DRAM, and
wherein the second memory comprises a buffer formed by an SRAM.

### Claim 7 (depends on 1)

The communication apparatus according to claim 1,
wherein the instructions, when executed by the one or more processors, further cause the communication apparatus to generate the data, and
the communication apparatus further comprising a third memory configured to store the generated data,
wherein the instructions, when executed by the one or more processors, further cause the communication apparatus to transfer the data from the third memory to the second memory concurrently with transfer of the data from the third memory to the first memory.

### Claim 8 (depends on 7)

The communication apparatus according to claim 7, wherein the instructions, when executed by the one or more processors, further cause the communication apparatus to discard the data from the third memory when the data is transferred from the third memory to both the first memory and the second memory.

### Claim 9 (depends on 1)

The communication apparatus according to claim 1, wherein the instructions, when executed by the one or more processors, further cause the apparatus to cause the communication apparatus to perform DMA (Direct Memory Access) transfer.

### Claim 10 (depends on 1)

The communication apparatus according to claim 1, wherein the instructions, when executed by the one or more processors, further cause the apparatus to cause the communication apparatus to determine whether to use the second memory,
wherein in a case that it is determined not to use the second memory, transfer the data to the first memory without transferring the data to the second memory, and
send the data from the first memory to the another communication apparatus.

### Claim 11 (depends on 10)

The communication apparatus according to claim 10, wherein the instructions, when executed by the one or more processors, further cause the apparatus to cause the communication apparatus to determine whether to use the second memory based on one of a communication rate and a packet loss rate of a connection between the communication apparatus and the another communication apparatus.

### Claim 12 (depends on 10)

The communication apparatus according to claim 10, wherein the instructions, when executed by the one or more processors, further cause the apparatus to cause the communication apparatus to determine whether to use the second memory based on at least one of a destination address, a destination port number, and a transmission source port number of the data.

### Claim 13 (depends on 10)

The communication apparatus according to claim 10, wherein the instructions, when executed by the one or more processors, further cause the communication apparatus to determine whether to use the second memory based on predetermined size information according to the data.

### Claim 14 (depends on 10)

The communication apparatus according to claim 10, wherein the instructions, when executed by the one or more processors, further cause the communication apparatus to determine whether to use the second memory based on a type of the data.

### Claim 15 (depends on 10)

The communication apparatus according to claim 10, wherein the instructions, when executed by the one or more processors, further cause the communication apparatus to determine whether to use the second memory based on a free capacity of the second memory.

### Claim 16

A control method of a communication apparatus, the method comprising:
transferring data to be sent to another communication apparatus to a second memory accessible at higher speed than a first memory concurrently with transfer of the data to the first memory;
sending the transferred data from the second memory to the another communication apparatus;
discarding the data from the second memory after sending the data and before receiving a response to the data from the another communication apparatus; and
in a case where the communication apparatus is to resend the data, resending the data to the another communication apparatus based on the data transferred to the first memory.

### Claim 17

A non-transitory computer-readable storage medium which stores a program causing a computer to execute a control method of a communication apparatus, the control method comprising:
transferring data to be sent to another communication apparatus to a second memory accessible at higher speed than a first memory concurrently with transfer of the data to the first memory;
sending the transferred data from the second memory to the another communication apparatus;
discarding the data from the second memory after sending the data and before receiving a response to the data from the another communication apparatus; and
in a case where the communication apparatus is to resend the data, resending the data to the another communication apparatus based on the data transferred to the first memory.
