IP Library › Granted Patent US 11,941,433
Granted Patent B2
US 11,941,433 · App. 17/180,882 · Granted Mar 26, 2024

Computing apparatus and data processing method for offloading data processing of data processing task from at least one general purpose processor

Inventor: Jiin Lai (New Taipei, TW)
Assignee: VIA Technologies Inc.
G06F9/4856G06F9/3877G06F9/546H04L47/193H04L69/16
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,941,433
App. No.
17/180,882
Granted
Mar 26, 2024
Kind
B2
Abstract

A computing apparatus includes at least one general purpose processor, at least one coprocessor, and at least one application specific processor. The at least one general purpose processor is arranged to run an application, wherein data processing of at least a portion of a data processing task is offloaded from the application running on the at least one general purpose processor. The at least one coprocessor is arranged to deal with a control flow of the data processing without intervention of the application running on the at least one general purpose processor. The at least one application specific processor is arranged to deal with a data flow of the data processing without intervention of the application running on the at least one general purpose processor.

Claims (53)

1. A computing apparatus comprising:

at least one general purpose processor, arranged to run an application to offload data processing of at least a portion of a data processing task from the at least one general purpose processor to at least one coprocessor and at least one specific application processor;

the at least one coprocessor, arranged to deal with a control flow of the data processing of at least the portion of the data processing task without intervention of the application running on the at least one general purpose processor; and

the at least one application specific processor, arranged to deal with a data flow of the data processing of at least the portion of the data processing task without intervention of the application running on the at least one general purpose processor;

wherein the application running on the at least one general purpose processor offloads the data processing by calling an application programming interface (API) function;

wherein the at least one application specific processor is arranged to deal with a kernel function having a kernel identifier, the data processing of at least the portion of the data processing task is arranged to process an object having an object identifier in an object storage device, and parameters of the API function comprise the kernel identifier and the object identifier.

2. The computing apparatus of claim 1 , wherein the control flow running on the at least one coprocessor comprises layers of input/output (I/O) stack.

3. The computing apparatus of claim 1 , wherein the at least one general purpose processor and the at least one coprocessor are heterogeneous processors.

4. The computing apparatus of claim 1 , wherein the at least one application specific processor is a programmable circuit.

5. The computing apparatus of claim 4 , wherein the programmable circuit is a field programmable gate array.

6. The computing apparatus of claim 5 , wherein the at least one general purpose processor, the at least one coprocessor, and the at least one application specific processor are all integrated in a same chip.

7. The computing apparatus of claim 1 , wherein the at least one application specific processor is arranged to deal with a kernel function having a kernel identifier, and the at least one coprocessor comprises:

a programmable circuit, comprising:

a network subsystem, arranged to receive the kernel identifier and an object identifier from a network; and

at least one general purpose processor core, arranged to obtain the kernel identifier and the object identifier from the programmable circuit, and trigger the kernel function having the kernel identifier for processing an object having the object identifier in an object storage device, wherein the at least one application specific processor deals with processing of the object without intervention of the application running on the at least one general purpose processor.

8. The computing apparatus of claim 1 , wherein the at least one coprocessor comprises at least one general purpose processor core, and the computing apparatus further comprises:

a control channel, coupled between pins of the at least one application specific processor and pins of the at least one general purpose processor core, wherein the control channel is arranged to transmit control messages between the at least one application specific processor and the at least one general purpose processor core.

9. The computing apparatus of claim 1 , wherein the at least one coprocessor comprises:

at least one general purpose processor core; and

a programmable circuit, comprising a network subsystem, wherein the network subsystem comprises:

a network handler circuit, arranged to communicate with the at least one general purpose processor core and control a network flow; and

the at least one application specific processor comprises:

at least one accelerator circuit, arranged to receive a data input from the network handler circuit, and deal with the data flow of the data processing of at least the portion of the data processing task according to the data input.

10. The computing apparatus of claim 9 , wherein the at least one accelerator circuit is further arranged to transmit a data output of the at least one accelerator circuit through the network handler circuit.

11. The computing apparatus of claim 9 , wherein the network subsystem further comprises:

a transmission control protocol/internet protocol (TCP/IP) offload engine, arranged to deal with TCP/IP stack between the network handler circuit and a network-attached device.

12. The computing apparatus of claim 9 , wherein the programmable circuit further comprises:

at least one data converter circuit, arranged to deal with data conversion between the network handler circuit and the at least one accelerator circuit, wherein a data format of payload data derived from the network flow is different from a pre-defined data format requested by the at least one accelerator circuit.

13. The computing apparatus of claim 9 , wherein the network handler circuit is arranged to control the network flow between the at least one accelerator circuit and a part of a distributed object storage system.

14. The computing apparatus of claim 9 , wherein the programmable circuit further comprises:

a storage subsystem, comprising:

a storage handler circuit, arranged to communicate with the at least one general purpose processor core and control data access of a storage device;

wherein the at least one accelerator circuit is further arranged to transmit a data output of the at least one accelerator circuit through the storage handler circuit.

15. The computing apparatus of claim 1 , wherein the at least one coprocessor comprises:

at least one general purpose processor; and

a programmable circuit, comprising a storage subsystem, wherein the storage sub system comprises:

a storage handler circuit, arranged to communicate with the at least one general purpose processor core and control data access of a storage device; and

the at least one application specific processor comprises:

at least one accelerator circuit, arranged to receive a data input from the storage handler circuit, and deal with the data flow of the data processing of at least the portion of the data processing task according to the data input.

16. The computing apparatus of claim 15 , wherein the at least one accelerator circuit is further arranged to transmit a data output of the at least one accelerator circuit through the storage handler circuit.

17. The computing apparatus of claim 15 , wherein the storage subsystem further comprises:

a storage controller, arranged to perform actual data access on the storage device.

18. The computing apparatus of claim 15 , wherein the programmable circuit further comprises:

at least one data converter circuit, arranged to deal with data conversion between the storage handler circuit and the at least one accelerator circuit, wherein a data format of a data derived from the storage handler circuit is different from a pre-defined data format requested by the at least one accelerator circuit.

19. The computing apparatus of claim 15 , wherein the programmable circuit further comprises:

a network subsystem, comprising:

a network handler circuit, arranged to communicate with the at least one general purpose processor core and control a network flow;

wherein the at least one accelerator circuit is further arranged to transmit a data output of the at least one accelerator circuit through the network handler circuit.

20. A data processing method comprising:

running an application through at least one general purpose processor to offload data processing of at least a portion of a data processing task from the at least one general purpose processor to at least one coprocessor and at least one specific application processor; and

without intervention of the application running on the at least one general purpose processor, dealing with a control flow of the data processing of at least the portion of the data processing task through the at least one coprocessor and dealing with a data flow of the data processing of at least the portion of the data processing task through the at least one application specific processor;

wherein the application running on the at least one general purpose processor offloads the data processing by calling an application programming interface (API) function;

wherein the at least one application specific processor is arranged to deal with a kernel function having a kernel identifier, the data processing of at least the portion of the data processing task is arranged to process an object having an object identifier in an object storage device, and parameters of the API function comprise the kernel identifier and the object identifier.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2021
From: LAI, JIIN
To: VIA TECHNOLOGIES INC.
Reel/Frame 055347/0371 →
Priority Claims (1)
TW 110102826 · Jan 26, 2021 · national
Continuity (4)
Provisional Application 63019437 · May 4, 2020
Provisional Application 63014697 · Apr 23, 2020
Provisional Application 62993720 · Mar 24, 2020
Related Publication 20210303338A1 · Sep 30, 2021