IP Library Granted Patent US 10,922,266
Granted Patent B1
US 10,922,266 · App. 16/743,553 · Granted Feb 16, 2021

Userspace split data-centric heterogeneous computing architecture

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 10,922,266
App. No.
16/743,553
Granted
Feb 16, 2021
Kind
B1
Abstract

One example method includes transmitting, by an application running in a host CPU, a notification to an application in a coprocessor/accelerator indicating that inbound data generated by the application is ready, receiving, by the application in the coprocessor/accelerator, the notification and delegating, by the application in the coprocessor/accelerator, an IO command to the application running in the host CPU, forwarding, by the application running in the host CPU, the IO command to an OS of the host CPU, transmitting, by the OS of the host CPU, an IO request to an IO device, initiating, by the IO device, a P2PDMA to transmit data associated with the IO request to a memory of the coprocessor/accelerator, and processing, by the application in the coprocessor/accelerator, the data.

Claims (43)

1. A non-transitory storage medium having stored therein instructions that are executable by one or more hardware components to perform operations comprising:

transmitting, by an application running in a host CPU, a notification to an application in a coprocessor/accelerator indicating that inbound data generated by the application is ready;

receiving, by the application in the coprocessor/accelerator, the notification and delegating, by the application in the coprocessor/accelerator, an IO command to the application running in the host CPU;

forwarding, by the application running in the host CPU, the IO command to an OS of the host CPU;

transmitting, by the OS of the host CPU, an IO request to an IO device;

initiating, by the IO device, a P2PDMA to transmit data associated with the IO request to a memory of the coprocessor/accelerator; and

processing, by the application in the coprocessor/accelerator, the data.

2. The non-transitory storage medium as recited in claim 1 , wherein the IO command transmitted by the application in the coprocessor/accelerator is sent by way of an RPC stub.

3. The non-transitory storage medium as recited in claim 1 , wherein the IO command transmitted by the application running in the coprocessor/accelerator is received by way of a proxy in the host CPU.

4. The non-transitory storage medium as recited in claim 1 , wherein communication between an RPC stub of the coprocessor/accelerator and a proxy of the host CPU takes place in an application userspace.

5. The non-transitory storage medium as recited in claim 1 , wherein the notification is transmitted by a coordinator module of the application running in the host CPU.

6. The non-transitory storage medium as recited in claim 1 , wherein the IO device comprises one of an SSD, or a NIC.

7. The non-transitory storage medium as recited in claim 1 , wherein forwarding, by the application running in the host CPU, the IO command to an OS of the host CPU, is performed by a proxy of the application running in the host CPU.

8. The non-transitory storage medium as recited in claim 1 , wherein the operations further comprise retrieving the data from an on-chip memory of the IO device.

9. The non-transitory storage medium as recited in claim 1 , wherein after the memory of the coprocessor/accelerator receives the data from the IO device, the data is forwarded, by way of an OS of the application of the coprocessor/accelerator, to a data processor of the application of the coprocessor/accelerator.

10. The non-transitory storage medium as recited in claim 1 , wherein:

the following operations each comprise transmission of a control signal:

transmitting, by the application running in the host CPU, the notification to the application in the coprocessor/accelerator indicating that inbound data generated by the application is ready;

receiving, by the application in the coprocessor/accelerator, the notification and delegating, by the application in the coprocessor/accelerator, the IO command to the application running in the host CPU;

forwarding, by the application running in the host CPU, the IO command to the OS of the host CPU;

transmitting, by the OS of the host CPU, the IO request to the IO device; and

the following operation comprises transmission of a data signal:

initiating, by the IO device, the P2PDMA to transmit the data associated with the IO request to the memory of the coprocessor/accelerator.

11. The non-transitory storage medium as recited in claim 1 , wherein except for the P2PDMA, no other transmission of data is performed.

12. The non-transitory storage medium as recited in claim 1 , wherein:

control operations are performed only in a control plane that includes the host CPU but does not include the coprocessor/accelerator; and

data operations are performed only in a data plane that includes the coprocessor/accelerator but does not include the host CPU.

13. A non-transitory storage medium having stored therein instructions that are executable by one or more hardware components to perform operations comprising:

storing, by an application running in a coprocessor/accelerator, processed data in a memory of the coprocessor/accelerator;

delegating, by the application running in the coprocessor/accelerator, an IO command to an application running in a host CPU;

forwarding, by the application running in the host CPU, the IO command to an OS of the host CPU;

processing, by the OS of the host CPU, the IO command;

initiating, by the OS of the host CPU, an IO request to an IO device; and

initiating, by the IO device, a P2PDMA to transmit the processed data from a memory of the coprocessor/accelerator to an on-chip memory of the IO device.

14. The non-transitory storage medium as recited in claim 13 , wherein the IO command forwarded by the application in the coprocessor/accelerator is sent by way of an RPC stub.

15. The non-transitory storage medium as recited in claim 13 , wherein the IO command forwarded by the application running in the coprocessor/accelerator is received by way of a proxy in the host CPU.

16. The non-transitory storage medium as recited in claim 13 , wherein communication between an RPC stub of the coprocessor/accelerator and a proxy of the host CPU takes place in an application userspace.

17. The non-transitory storage medium as recited in claim 13 , wherein the IO device comprises one of an SSD, or a NIC.

18. The non-transitory storage medium as recited in claim 13 , wherein except for the P2PDMA, no other transmission of data is performed.

19. The non-transitory storage medium as recited in claim 13 , wherein:

control operations are performed only in a control plane that includes the host CPU but does not include the coprocessor/accelerator; and

data operations are performed only in a data plane that includes the coprocessor/accelerator but does not include the host CPU.

20. The non-transitory storage medium as recited in claim 13 , wherein prior to storage of the processed data in the memory of the coprocessor/accelerator, the processed data is transmitted to the memory from a data processor of the coprocessor/accelerator by an OS of the coprocessor/accelerator.

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 (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 IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) 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 IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
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 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2020
From: LIU, JINPENG; HOU, ANDREW ANZHOU; MACLELLAN, CHRISTOPHER S.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051524/0528 →