# US 2019/0318016 A1 · Concurrent computations operating on same data for cpu cache efficiency

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

- Number: US 2019/0318016 A1
- Document ID: US20190318016A1
- Status: Published application
- Kind: A1
- Application number: 15/955,287
- Filed: 2018-04-17
- Published: 2019-10-17
- Earliest claimed: 2018-04-17
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Ivan Bassov; Philippe Armangau
- Web page: https://patentgrep.com/patent/US20190318016A1

## CPC

- G06F 16/178: Techniques for file synchronisation in file systems
- G06F 16/1744: {using compression, e.g. sparse files}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques for CPU cache efficiency may include performing concurrent processing, such as for first and second data operations, in a synchronized manner that prevents loading the same data chunk into the CPU cache more than once. Processing may include synchronizing the first and second data operations with respect to a first data chunk to ensure that both the first and second data operation processing has completed prior to proceeding with performing such processing on a second data chunk. The first and second data operations may be any two of deduplication, encryption, and compression, performed inline as part of the data path. In one embodiment, the first and second data operations for the first data chunk may be performed in parallel or sequentially where neither data operation proceeds with another data chunk until processing of the first and second data operations is complete for the first data chunk.

## Claims

### Claim 1

A method of performing data processing comprising:
performing first processing for a first data processing operation on a first data chunk;
performing second processing for a second data processing operation on the first data chunk; and
synchronizing the first processing and the second processing with respect to the first data chunk, wherein said synchronizing ensures that both the first processing and the second processing have completed prior to proceeding with performing any of the first processing and the second processing on a second data chunk.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first processing and the second processing for the first data chunk are performed in parallel.

### Claim 3 (depends on 2)

The method of claim 2, wherein one of the first processing and the second processing completes processing for the first data chunk prior to another one of the first processing and the second processing, and wherein said synchronizing does not allow the one of the first and second processing to proceed with processing the second data chunk until the another one of the first processing and the second processing has completed its processing for the first data chunk.

### Claim 4 (depends on 3)

The method of claim 3, wherein the first processing includes digest computation processing and the first data processing operation is data deduplication.

### Claim 5 (depends on 4)

The method of claim 4, wherein the second processing includes performing any of compression and decompression.

### Claim 6 (depends on 5)

The method of claim 5, wherein the first data processing operation and the second data processing operation are performed inline as part of I/O path processing.

### Claim 7 (depends on 6)

The method of claim 6, wherein third processing for a third data processing operation performing on the first data chunk is performed in parallel with the first processing and the second processing.

### Claim 8 (depends on 7)

The method of claim 7, wherein the third data processing operation includes code that performs any of encryption and decryption.

### Claim 9 (depends on 1)

The method of claim 1, wherein the first processing and the second processing for the first data chunk are performed sequentially.

### Claim 10 (depends on 9)

The method of claim 9, wherein the first processing includes digest computation processing and the first data processing operation is data deduplication.

### Claim 11 (depends on 10)

The method of claim 10, wherein the second processing includes performing any of compression and decompression.

### Claim 12 (depends on 11)

The method of claim 11, wherein the first data processing operation and the second data processing operation are performed inline as part of I/O path processing.

### Claim 13 (depends on 12)

The method of claim 12, wherein third processing for a third data processing operation using the first data chunk is performed sequentially after completing the first processing and the second processing for the first data chunk.

### Claim 14 (depends on 13)

The method of claim 13, wherein the third data processing operation includes code that performs any of encryption and decryption.

### Claim 15 (depends on 8)

The method of claim 8, wherein the first data processing operation and the second data processing operation are performed in a single thread of execution.

### Claim 16 (depends on 1)

The method of claim 1, wherein performing one of the first data processing operation and the second data processing operation results in loading the first data chunk in a cache of a first processor that executes code to perform the first processing and the second processing, and wherein the first data chunk remains in the cache of the first processor while at least performing the first data processing operation for the first data chunk and the second data processing for the first data chunk.

### Claim 17

A system comprising:
at least one processor; and
a memory comprising code stored therein that, when executed, performs a method of data processing comprising:
performing first processing for a first data processing operation on a first data chunk;
performing second processing for a second data processing operation on the first data chunk; and
synchronizing the first processing and the second processing with respect to the first data chunk, wherein said synchronizing ensures that both the first processing and the second processing have completed prior to proceeding with performing any of the first processing and the second processing on a second data chunk.

### Claim 18

A computer readable medium comprising code stored thereon that, when executed, performs a method of data processing comprising:
performing first processing for a first data processing operation on a first data chunk;
performing second processing for a second data processing operation on the first data chunk; and
synchronizing the first processing and the second processing with respect to the first data chunk, wherein said synchronizing ensures that both the first processing and the second processing have completed prior to proceeding with performing any of the first processing and the second processing on a second data chunk.
