IP Library › Granted Patent US 12,405,837
Granted Patent B2
US 12,405,837 · App. 18/485,418 · Granted Sep 2, 2025

Method and system for acceleration or offloading utilizing a unified data pointer

Inventors: Chul Lee (Los Angeles, CA); Hui Zhang (Los Angeles, CA); Shan Xiao (Beijing, CN); Bo Li (Beijing, CN); Ping Zhou (Los Angeles, CA); Fei Liu (Los Angeles, CA)
G06F9/5083G06F9/5027G06F2209/509
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 12,405,837
App. No.
18/485,418
Granted
Sep 2, 2025
Kind
B2
Abstract

Methods, systems, and devices for performing an acceleration process by offloading an operation. The system includes a hardware offloading engine that includes a hardware accelerator for performing the acceleration process. The hardware accelerator has a processor configured to receive a hardware offloading command, the hardware offloading command including an operation code, an input pointer, and an output pointer, in which at least one of the input pointer or the output pointer includes a unified data pointer that includes one or more bits of memory for identifying the source location for the input data or the destination location of the output data, parse the operation code, the input pointer, and the output pointer from the hardware offloading command, retrieve the input data based on the input pointer, and execute an offloaded operation on the input data based on the operation code.

Claims (27)

1. A hardware offloading engine for performing an acceleration process, the hardware offloading engine comprising:

a hardware accelerator for performing the acceleration process, the hardware accelerator having a processor configured to:

receive a hardware offloading command, the hardware offloading command comprising an operation code, an input pointer for identifying a source location for input data for the hardware accelerator, and an output pointer for identifying a destination location of output data from the hardware accelerator, wherein at least one of the input pointer or the output pointer includes a unified data pointer that includes one or more bits of memory for identifying the source location for the input data or the destination location of the output data,

parse the operation code, the input pointer, and the output pointer from the hardware offloading command,

retrieve the input data based on the input pointer, and

execute an offloaded operation on the input data based on the operation code.

2. The hardware offloading engine of claim 1 , wherein the one or more bits of memory of the unified data pointer defines a host device memory, a hardware offloading engine memory, or a non-volatile storage device block to identify the source location of the input data or the destination location of the output data.

3. The hardware offloading engine of claim 1 , wherein the input pointer comprises the unified data pointer and the input pointer further comprises a memory address for the input data.

4. The hardware offloading engine of claim 3 , wherein the unified data pointer includes the one or more bits of memory that is a portion of the memory address to identify the source location of the input data.

5. The hardware offloading engine of claim 4 , wherein an amount of the one or more bits of memory is determined by a number of source locations for the input data.

6. The hardware offloading engine of claim 4 , wherein the one or more bits of memory includes a binary 2-bit identifier, wherein the binary 2-bit identifier includes “00” to identify memory on a host device, “10” to identify memory on the hardware offloading engine, and “11” to identify a non-volatile storage device.

7. The hardware offloading engine of claim 1 , wherein the processor is further configured to write the output data of the offloaded operation based on the output pointer, wherein the output pointer comprises the unified data pointer for identifying the destination location of the output data.

8. The hardware offloading engine of claim 7 , wherein the output pointer further comprises a memory address for the output data.

9. The hardware offloading engine of claim 8 , wherein the unified data pointer includes one or more bits of memory that is a portion of the memory address to identify the destination location of the output data.

10. The hardware offloading engine of claim 9 , wherein an amount of the one or more bits of memory is determined by a number of destination locations for the output data.

11. The hardware offloading engine of claim 9 , wherein the one or more bits of memory includes a binary 2-bit identifier, wherein the binary 2-bit identifier includes “00” to identify memory on a host device, “10” to identify memory on the hardware offloading engine, and “11” to identify a non-volatile storage device.

12. The hardware offloading engine of claim 1 , wherein the hardware accelerator comprises one or more hardware accelerator modules for executing the offloaded operation such that the offloaded operation is offloaded from a host device.

13. A method for performing an acceleration process by offloading an operation to a hardware offloading engine, the method comprising:

receiving a hardware offloading command, the hardware offloading command comprising an operation code, an input pointer for identifying a source location for input data, and an output pointer for identifying a destination location of output data, wherein at least one of the input pointer or the output pointer includes a unified data pointer that includes one or more bits of memory for identifying the source location for the input data or the destination location of the output data,

parsing the operation code, the input pointer, and the output pointer from the hardware offloading command,

retrieving the input data based on the input pointer, and

executing an offloaded operation on the hardware offloading engine on the input data based on the operation code.

14. The method of claim 13 , further comprising writing the output data of the offloaded operation from the hardware offloading engine based on the output pointer, wherein the output pointer includes the unified data pointer that includes the one or more bits of memory for identifying the destination location of the output data.

15. The method of claim 14 , wherein the output pointer further comprises a memory address for the output data.

16. The method of claim 15 , wherein the unified data pointer includes the one or more bits of memory that is a portion of the memory address to identify the destination location of the output data.

17. The method of claim 13 , wherein the retrieving the input data based on the input pointer includes the input pointer comprising the unified data pointer.

18. The method of claim 17 , wherein the input pointer includes a memory address, and wherein the unified data pointer includes the one or more bits of memory that is a portion of the memory address to identify the source location of the input data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2025
From: LEE, CHUL; ZHANG, HUI; ZHOU, PING; LIU, FEI
To: BYTEDANCE INC.
Reel/Frame 071874/0952 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2025
From: XIAO, SHAN; LI, BO
To: CHENGDU OCEAN ENGINE INFORMATION TECHNOLOGY CO., LTD.
Reel/Frame 071875/0296 →
Continuity (1)
Related Publication 20240036940A1 · Feb 1, 2024
References Cited (1)
US 20220114270A1 · Wang · 2022 [cited by examiner]