IP Library Granted Patent US 12,001,879
Granted Patent B2
US 12,001,879 · App. 18/175,281 · Granted Jun 4, 2024

Instruction offload to processor cores in attached memory

Inventor: Ulrich Drepper (Grasbrunn, DE)
Assignee: Red Hat, Inc.
G06F9/4856G06F9/30145G06F9/34G06F9/5016G06F9/505
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,001,879
App. No.
18/175,281
Granted
Jun 4, 2024
Kind
B2
Abstract

A first processing device receives a request to execute a program, determines that an amount of memory modified by one or more instructions of the program satisfies a threshold criterion, and provides the one or more instructions to a second processing device for execution, wherein the second processing device implements an instruction set architecture of the first processing device.

Claims (51)

1. A method comprising:

receiving, by a first processing device, a request to execute a program;

determining that an amount of memory modified by one or more instructions of the program satisfies a threshold criterion; and

providing the one or more instructions to a second processing device for execution, wherein the second processing device implements an instruction set architecture of the first processing device.

2. The method of claim 1 , further comprising:

detecting an indication to execute the one or more instructions; and

responsive to detecting the indication to execute the one or more instructions, causing, by the first processing device, the second processing device to execute the one or more instructions.

3. The method of claim 1 , further comprising:

determining that a number of operations performed by the one or more instructions satisfies a threshold number.

4. The method of claim 1 , wherein providing the one or more instructions to the second processing device further comprises:

determining a memory space updated by the one or more instructions; and

determining a memory module associated with at least a portion of the memory space, wherein the memory module comprises the second processing device.

5. The method of claim 4 , wherein providing the one or more instructions to the second processing device comprises at least one of copying the one or more instructions to a memory area of the memory module, or sending a memory location of the one or more instructions to the memory module.

6. The method of claim 2 , wherein causing the second processing device to execute the one or more instructions comprises at least one of sending a request to the second processing device to execute the one or more instructions, or modifying an area of memory of a memory module comprising the second processing device to cause the second processing device to execute the one or more instructions.

7. The method of claim 1 , further comprising:

receiving a notification from the second processing device that indicates that the one or more instructions are not to be executed by the second processing device; and

executing the one or more instructions by the first processing device.

8. The method of claim 1 , further comprising:

receiving a notification from the second processing device that indicates that the one or more instructions have been executed by the second processing device.

9. The method of claim 8 , further comprising:

providing the one or more instructions to a third processing device for execution;

responsive to detecting an indication to execute the one or more instructions, sending a second notification to the third processing device to cause the third processing device to execute the one or more instructions; and

receiving a third notification from the third processing device that indicates that the one more instructions have been executed by the third processing device.

10. A system comprising:

a memory comprising one or more memory modules; and

a first processing device, operatively coupled to the memory, to:

receive a request to execute a program;

determine that an amount of memory modified by one or more instructions of the program satisfies a threshold criterion; and

provide the one or more instructions to a second processing device for execution, wherein the second processing device implements an instruction set architecture of the first processing device.

11. The system of claim 10 , wherein the first processing device is further to:

detect an indication to execute the one or more instructions; and

responsive to detecting the indication to execute the one or more instructions, cause the second processing device to execute the one or more instructions.

12. The system of claim 10 , wherein the first processing device is further to:

determine that a number of operations performed by the one or more instructions satisfies a threshold number.

13. The system of claim 10 , wherein to provide the one or more instructions to the second processing device, the first processing device is further to:

determine a memory space updated by the one or more instructions; and

determine a memory module associated with at least a portion of the memory space, wherein the memory module comprises the second processing device.

14. The system of claim 13 , wherein to provide the one or more instructions to the second processing device, the first processing device is further to perform at least one of copying the one or more instructions to a memory area of the memory module, or sending a memory location of the one or more instructions to the memory module.

15. The system of claim 11 , wherein to cause the second processing device to execute the one or more instructions, the first processing device is further to perform at least one of sending a request to the second processing device to execute the one or more instructions, or modifying an area of memory of a memory module comprising the second processing device to cause the second processing device to execute the one or more instructions.

16. A non-transitory computer readable medium comprising instructions, which when accessed by a first processing device, cause the first processing device to:

receive a request to execute a program;

determine that an amount of memory modified by one or more instructions of the program satisfies a threshold criterion; and

provide the one or more instructions to a second processing device for execution, wherein the second processing device implements an instruction set architecture of the first processing device.

17. The non-transitory computer readable medium of claim 16 , wherein the first processing device is further to:

detect an indication to execute the one or more instructions; and

responsive to detecting the indication to execute the one or more instructions, cause the second processing device to execute the one or more instructions.

18. The non-transitory computer readable medium of claim 16 , wherein to provide the one or more instructions to the second processing device, the first processing device is further to:

determine a memory space updated by the one or more instructions; and

determine a memory module associated with at least a portion of the memory space, wherein the memory module comprises the second processing device.

19. The non-transitory computer readable medium of claim 18 , wherein to provide the one or more instructions to the second processing device, the first processing device is further to perform at least one of copying the one or more instructions to a memory area of the memory module, or sending a memory location of the one or more instructions to the memory module.

20. The non-transitory computer readable medium of claim 17 , wherein to cause the second processing device to execute the one or more instructions, the first processing device is further to perform at least one of sending a request to the second processing device to execute the one or more instructions, or modifying an area of memory of a memory module comprising the second processing device to cause the second processing device to execute the one or more instructions.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 2, 2024
From: DREPPER, ULRICH
To: RED HAT, INC.
Reel/Frame 065992/0869 →
Continuity (2)
Continuation 16542596 · Aug 16, 2019
Related Publication 20230205576A1 · Jun 29, 2023