IP Library Granted Patent US 11,294,702
Granted Patent B2
US 11,294,702 · App. 16/400,945 · Granted Apr 5, 2022

Method and system for processing data using a processing pipeline and processing units

Inventors: Jonathan I. Krasner (Coventry, RI); Steven R. Chalmer (Redwood City, CA); Serge Joseph Pirotte (Coventry, RI); Steven T. McClure (Northborough, MA)
Assignee: EMC IP Holding Company LLC
G06F9/45558G06F9/3851G06F9/3867G06F9/44594G06F9/544G06F2009/4557G06F2009/45583G06F2009/45595
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 11,294,702
App. No.
16/400,945
Filed
May 1, 2019
Granted
Apr 5, 2022
Kind
B2
Art Unit
2196
USPC
718/1
Abstract

A method for processing data includes receiving an offload request by a first virtual machine (VM), issuing, in response to the offload request and based on a processing pipeline, a processing request to a processing unit, and servicing, by the processing unit, the processing request to obtain a result.

Claims (67)

1. A method for processing data, the method comprising:

receiving an offload request by a first virtual machine (VM), wherein the offload request is obtained from an offload component executing in a host operating system;

determining a processing pipeline from a plurality of processing pipelines;

issuing, in response to the offload request and based on the processing pipeline, a processing request to a processing unit, wherein the processing request comprises reference to data;

servicing, by the processing unit, the processing request,

wherein servicing the processing request comprises:

obtaining the data from shared memory using the reference to the data;

generating a result using the data and using the processing pipeline; and

storing the result in the shared memory;

obtaining, by the host operating system, the result from the shared memory;

combining the result with the data to obtain an updated result; and

providing the updated result to an external computing device,

wherein the first VM, the host operating system, and the processing unit are executing on a computing device.

2. The method of claim 1 , further comprising:

receiving a second offload request by a second VM executing on the computing device;

issuing, in response to the second offload request and based on a second processing pipeline, a second processing request to the processing unit; and

servicing, by the processing unit, the second processing request to obtain a second result.

3. The method of claim 2 , further comprising:

prior to issuing the second offload request, obtaining the second processing pipeline from a host operating system by the second VM, wherein the second VM is executing on the host operating system.

4. The method of claim 1 , further comprising:

issuing, in response to the offload request and based on the processing pipeline, a second processing request to the processing unit; and

servicing, by the processing unit, the second processing request to obtain a second result, wherein the second result is based on the result.

5. The method of claim 4 , wherein the processing pipeline specifies at least a first processing task and a second processing task, wherein the processing request is associated with the first processing task and the second processing request is associated with the second processing task.

6. The method of claim 1 , wherein the offload request is issued by an offload component executing in a host operating system, wherein the first VM is executing on the host operating system.

7. The method of claim 6 , wherein the offload request is issued in response to a client request issued by a third VM executing on the host operating system.

8. The method of claim 1 , wherein the processing unit is a graphics processing unit (GPU).

9. The method of claim 1 , wherein the processing pipeline specifies a plurality of processing tasks.

10. The method of claim 9 , wherein at least one processing task of the plurality of tasks is compression or a data integrity calculation.

11. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for processing data, the method comprising:

receiving an offload request by a first virtual machine (VM), wherein the offload request is obtained from an offload component executing in a host operating system;

determining a processing pipeline from a plurality of processing pipelines;

issuing, in response to the offload request and based on the processing pipeline, a processing request to a processing unit, wherein the processing request comprises reference to data;

servicing, by the processing unit, the processing request,

wherein servicing the processing request comprises:

obtaining the data from shared memory using the reference to the data;

generating a result using the data and using the processing pipeline; and

storing the result in the shared memory;

obtaining, by the host operating system, the result from the shared memory;

combining the result with the data to obtain an updated result; and

providing the updated result to an external computing device,

wherein the first VM, the host operating system, and the processing unit are executing on a computing device.

12. The non-transitory computer readable medium of claim 11 , wherein the method further comprises:

issuing, in response to the offload request and based on the processing pipeline, a second processing request to the processing unit,

wherein the processing unit services the second processing request to obtain a second result, wherein the second result is based on the result.

13. The non-transitory computer readable medium of 12 , wherein the processing pipeline specifies at least a first processing task and a second processing task, wherein the processing request is associated with the first processing task and the second processing request is associated with the second processing task.

14. A system, comprising:

a processor;

a plurality of processing units;

shared memory;

a host operating system executing on the processor;

a plurality of virtual machines (VMs) executing on the host operating system;

wherein a first VM of the plurality of VMs is programmed to:

receive an offload request from the host operating system;

determining a processing pipeline of a plurality of processing pipelines;

issue, in response to the offload request and based on the processing pipeline, a processing request to a processing unit of the plurality of processing units, wherein the processing request comprises referenc to data; and

wherein the processing unit is configured to service the processing request to obtain a result and store the result in the shared memory,

wherein servicing the processing request comprises:

obtaining the data from the shared memory using the reference to the data;

generating the result using the data; and

storing the result in the shared memory;

wherein the host operating system is programmed to:

obtain the result from the shared memory;

combining the result with the data to obtain an updated result; and

providing the updated result to an external computing device.

15. The system of claim 14 , wherein the processing unit is a graphics processing unit (GPU).

16. The system of claim 15 , wherein a processing task of the plurality of processing tasks is one of: a compression or a data integrity calculation.

17. The system of claim 14 , wherein the processing pipeline specifies a plurality of processing tasks.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/0001 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2019
From: KRASNER, JONATHAN I.; CHALMER, STEVEN R.; PIROTTE, SERGE JOSEPH; MCCLURE, STEVEN T.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049068/0760 →
Continuity (1)
Related Publication 20200348959A1 · Nov 5, 2020
Cited By (1)
US 12,493,499