IP Library › Granted Patent US 12,353,333
Granted Patent B2
US 12,353,333 · App. 18/587,940 · Granted Jul 8, 2025

Pre-fetching address translation for computation offloading

Inventors: Aditya Madhusudan Deshpande (Sunnyvale, CA); Douglas Joseph (Leander, TX); Manisha Gajbe (Folsom, CA); Arun Rodrigues (Albuquerque, NM)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F12/1027G06F2212/306
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,353,333
App. No.
18/587,940
Granted
Jul 8, 2025
Kind
B2
Abstract

Provided are systems, methods, and apparatuses for transferring computational tasks. In one or more examples, the systems, methods, and apparatuses include a first host configured to detect a trigger to offload instruction code from the first host to a second host; identify, based on the trigger, an address translation binding for the instruction code and an address translation binding for application data associated with the instruction code; copy the address translation binding for the instruction code and the address translation binding for the application data to a memory; and transfer control of execution of the instruction code to the second host based on the copying.

Claims (53)

1. A method for transferring computational tasks, the method comprising:

detecting a trigger to offload instruction code from a first host to a second host;

identifying, based on the trigger, an address translation binding for the instruction code and an address translation binding for application data associated with the instruction code;

copying the address translation binding for the instruction code and the address translation binding for the application data to a memory; and

transferring control of execution of the instruction code to the second host based on the copying.

2. The method of claim 1 , wherein the memory includes:

a first buffer configured to hold instruction code address translations; and

a second buffer configured to hold application data address translations.

3. The method of claim 2 , further comprising:

configuring a size of the first buffer based on a size of a first translation lookaside buffer (TLB) of the second host that is configured for storing instruction code segments; and

configuring a size of the second buffer based on a size of a second TLB of the second host that is configured for storing data code segments.

4. The method of claim 3 , wherein transferring control of execution of the instruction code includes issuing an instruction to the second host to copy the address translation binding for the instruction code from the first buffer to the first TLB and copy the address translation binding for the application data from the second buffer to the second TLB.

5. The method of claim 1 , further comprising providing the address translation binding for the instruction code and the address translation binding for the application data to a third host.

6. The method of claim 5 , wherein the memory includes a global address space that is accessible to the first host, the second host, and the third host.

7. The method of claim 5 , wherein transferring control of the execution of the instruction code to the second host includes transferring control of the execution of the instruction code to the second host and the third host.

8. The method of claim 5 , further comprising indicating the offloading of the instruction code in an offload work queue that is accessible to the second host and the third host.

9. The method of claim 5 , wherein:

the first host is an operating system associated with a processing unit of a first device,

the second host is a first accelerator of the first device or a second device different from the first device, and

the third host is a second accelerator of the first device, the second device, or of a third device different from the first device and the second device.

10. A method for assuming computational tasks, the method comprising:

based on an instruction received from a first host, copying:

an address translation binding for instruction code from a first location of a memory to an instruction buffer of a second host; and

an address translation binding for application data from a second location of the memory to a data buffer of the second host;

receiving, at the second host from the first host, control of execution of the instruction code based on the copying; and

executing the instruction code based on receiving the control of the execution.

11. The method of claim 10 , wherein:

the instruction buffer of the second host is a first translation lookaside buffer (TLB) of the second host that is configured for storing instruction code segments, and

the data buffer of the second host is a second TLB of the second host that is configured for storing data code segments.

12. The method of claim 10 , wherein:

the first location of the memory is a first buffer configured to hold instruction code address translations; and

the second location of the memory is a second buffer configured to hold application data address translations.

13. The method of claim 12 , wherein:

a size of the first buffer is based on a size of the instruction buffer of the second host; and

a size of the second buffer is based on a size of the data buffer of the second host.

14. The method of claim 12 , further comprising sharing the address translation binding for the instruction code and the address translation binding for the application data with a third host.

15. The method of claim 14 , wherein the first buffer and the second buffer of the memory are configured in a global address space that is accessible to the first host, the second host, and the third host.

16. The method of claim 14 , further comprising:

identifying an offloading of the instruction code based on an offload work queue that is accessible to the second host and the third host.

17. The method of claim 10 , wherein:

the address translation binding for the instruction code enables the second host to determine a starting address of the instruction code, and

the address translation binding for the application data enables the second host to determine a starting address of the application data.

18. A non-transitory computer-readable medium storing code, the code comprising instructions executable by a processor of a device to:

detect a trigger to offload instruction code from a first host to a second host;

identify, based on the trigger, an address translation binding for the instruction code and an address translation binding for application data associated with the instruction code;

copy the address translation binding for the instruction code and the address translation binding for the application data to a memory; and

transfer control of execution of the instruction code to the second host based on the copying.

19. The non-transitory computer-readable medium of claim 18 , wherein the memory includes:

a first buffer configured to hold instruction code address translations; and

a second buffer configured to hold application data address translations.

20. The non-transitory computer-readable medium of claim 19 , wherein the code includes further instructions executable by the processor to cause the device to:

configure a size of the first buffer based on a size of a first translation lookaside buffer (TLB) of the second host that is configured for storing instruction code segments; and

configure a size of the second buffer based on a size of a second TLB of the second host that is configured for storing data code segments.

Continuity (2)
Provisional Application 63543511 · Oct 10, 2023
Related Publication 20250117337A1 · Apr 10, 2025
References Cited (13)
US 8990527B1 · Linstead · 2015 [cited by examiner]
US 11604594B2 · Narayanan et al. · 2023 [cited by applicant]
US 11704253B2 · Speier et al. · 2023 [cited by applicant]
US 20140101405A1 · Papadopoulou · 2014 [cited by examiner]
US 20200042347A1 · Prosch · 2020 [cited by examiner]
US 20210026774A1 · Lim · 2021 [cited by examiner]
US 20210149815A1 · Gayen et al. · 2021 [cited by applicant]
US 20220011941A1 · Alverti et al. · 2022 [cited by applicant]
US 20220066946A1 · Kotra et al. · 2022 [cited by applicant]
US 20220188165A1 · O'Hare · 2022 [cited by examiner]
US 20240134696A1 · Moshe · 2024 [cited by examiner]
CN 113064697A · 2021 [cited by applicant]
EP 4147427A1 · 2023 [cited by applicant]