# US 11,029,950 B2 · Reducing latency of common source data movement instructions

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

- Number: US 11,029,950 B2
- Document ID: US11029950B2
- Status: Granted
- Kind: B2
- Application number: 16/502,231
- Filed: 2019-07-03
- Published: 2021-01-07
- Granted: 2021-06-08
- Earliest claimed: 2019-07-03
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Yossi Shapira; Yair Fried; Eyal Naor; Amir Turi
- Web page: https://patentgrep.com/patent/US11029950B2

## CPC

- G06F 9/30032: {Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE}
- G06F 9/3004: {to perform operations on memory}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A move data instruction to move data from one location to another location is obtained. Based on obtaining the move data instruction, a determination is made as to whether the data to be moved is located in a buffer. The buffer is configured to maintain the data for use by multiple move data instructions. The buffer is used to move the data from the one location to the other location, based on determining that the data to be moved is in the buffer.

## Claims

### Claim 1

A computer program product for facilitating processing within a computing environment, the computer program product comprising:
at least one computer readable storage medium readable by at least one processing circuit and storing instructions for performing a method comprising:
obtaining a move data instruction, the move data instruction to move data from one location to another location;
determining, based on obtaining the move data instruction, whether the data to be moved is already located in a buffer based on a previous move data instruction, the buffer configured to maintain the data for use by multiple move data instructions, wherein the data in the buffer is the same data to be moved for the previous move data instruction and the move data instruction; and
using the buffer to move the data from the one location to the other location, based on determining that the data to be moved is in the buffer, wherein the data is not re-written to the buffer.

### Claim 2 (depends on 1)

The computer program product of claim 1, wherein the method further comprises setting a pointer to the buffer to use the buffer to move the data from the one location to the other location, based on determining that the data to be moved is in the buffer.

### Claim 3 (depends on 1)

The computer program product of claim 1, wherein the using comprises copying the data from the buffer to the other location at a select time to complete the move data instruction.

### Claim 4 (depends on 1)

The computer program product of claim 1, wherein the buffer comprises a valid indicator, the valid indicator set to a select value indicates that the data stored in the buffer is valid.

### Claim 5 (depends on 1)

The computer program product of claim 1, wherein the buffer includes a plurality of entries, and an entry of the plurality of entries includes data for a particular source of the data.

### Claim 6 (depends on 5)

The computer program product of claim 5, wherein the entry includes an indication of the particular source of the data, the data, and a valid indicator indicating validity of the data.

### Claim 7 (depends on 1)

The computer program product of claim 1, wherein the method further comprises reading the data to be moved from memory and writing the data read from memory into the buffer, based on execution of the previous move data instruction.

### Claim 8 (depends on 1)

The computer program product of claim 1, wherein the method further comprises reading the data from memory and writing the data to another buffer, based on determining that the data to be moved is not in the buffer, the other buffer being separate from the buffer and used in moving the data from the one location to the other location.

### Claim 9 (depends on 8)

The computer program product of claim 8, wherein the method further comprises storing the data read from memory in the buffer, based on determining that the data to be moved is not in the buffer, wherein the buffer is used in execution of another move data instruction.

### Claim 10 (depends on 1)

The computer program product of claim 1, wherein the one location and the other location are specified by the move data instruction.

### Claim 11

A computer system for facilitating processing within a computing environment, the computer system comprising:
a memory;
a processor in communication with the memory; and
a buffer coupled to the processor, the buffer configured to maintain data for use by a multiple move data instructions, wherein the computer system is configured to perform a method, said method comprising:
obtaining, by the processor, a move data instruction, the move data instruction to move data from one location to another location;
determining, based on obtaining the move data instruction, whether the data to be moved is already located in the buffer based on a previous move data instruction, wherein the data in the buffer is the same data to be moved for the previous move data instruction and the move data instruction; and
using the buffer to move the data from the one location to the other location, based on determining that the data to be moved is in the buffer, wherein the data is not re-written to the buffer.

### Claim 12 (depends on 11)

The computer system of claim 11, wherein the buffer includes a plurality of entries, and an entry of the plurality of entries includes data for a particular source of the data.

### Claim 13 (depends on 11)

The computer system of claim 11, wherein the method further comprises reading the data to be moved from memory and writing the data read from memory into the buffer, based on execution of the previous move data instruction.

### Claim 14 (depends on 11)

The computer system of claim 11, wherein the method further comprises reading the data from memory and writing the data to another buffer, based on determining that the data to be moved is not in the buffer, the other buffer being separate from the buffer and used in moving the data from the one location to the other location.

### Claim 15 (depends on 14)

The computer system of claim 14, wherein the method further comprises storing the data read from memory in the buffer, based on determining that the data to be moved is not in the buffer, wherein the buffer is used in execution of another move data instruction.

### Claim 16

A computer-implemented method of facilitating processing within a computing environment, the computer-implemented method comprising:
obtaining a move data instruction, the move data instruction to move data from one location to another location;
determining, based on obtaining the move data instruction, whether the data to be moved is already located in a buffer based on a previous move data instruction, the buffer configured to maintain the data for use by multiple move data instructions, wherein the data in the buffer is the same data to be moved for the previous move data instruction and the move data instruction; and
using the buffer to move the data from the one location to the other location, based on determining that the data to be moved is in the buffer, wherein the data is not re-written to the buffer.

### Claim 17 (depends on 16)

The computer-implemented method of claim 16, wherein the buffer includes a plurality of entries, and an entry of the plurality of entries includes data for a particular source of the data.

### Claim 18 (depends on 16)

The computer-implemented method of claim 16, further comprising reading the data to be moved from memory and writing the data read from memory into the buffer, based on execution of the previous move data instruction.

### Claim 19 (depends on 16)

The computer-implemented method of claim 16, further comprising reading the data from memory and writing the data to another buffer, based on determining that the data to be moved is not in the buffer, the other buffer being separate from the buffer and used in moving the data from the one location to the other location.

### Claim 20 (depends on 19)

The computer-implemented method of claim 19, further comprising storing the data read from memory in the buffer, based on determining that the data to be moved is not in the buffer, wherein the buffer is used in execution of another move data instruction.
