# US 2024/0201997 A1 · Enhanced offload to hardware accelerators

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2024/0201997 A1
- Document ID: US20240201997A1
- Status: Published application
- Kind: A1
- Application number: 18/068,030
- Filed: 2022-12-19
- Published: 2024-06-20
- Earliest claimed: 2022-12-19
- Applicants: Texas Instruments Incorporated
- Inventors: Mihir Mody; Kedar Chitnis; Prithvi Shankar Yeyyadi Anantha; Shailesh Ghotgalkar; Donald Steiss; Mohammad Asif Farooqui; Nikhil Sangani; Sriraj Chellappan
- Web page: https://patentgrep.com/patent/US20240201997A1

## CPC

- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/3877: {using a secondary processor, e.g. coprocessor (peripheral processor G06F13/12)}
- G06F 9/5044: {considering hardware capabilities}
- G06F 9/505: {considering the load}
- G06F 2209/509: Offload
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Various embodiments disclosed herein relate to compute offloading by supplying operands to hardware accelerators from central processing units. An example embodiment includes a system configured to perform compute offloading. The system comprises a processing unit configured to write data to a memory and a memory adaptor bridge coupled between the processing unit and the memory. The memory adaptor bridge is configured to, in response to an attempt by the processing unit to write an operand to a memory location mapped to a function of a hardware accelerator, write the operand to a different memory location accessible by the hardware accelerator. The memory adaptor bridge is further configured to obtain a result of the function performed on the operand by the hardware accelerator and provide the result of the function to a memory location accessible by the processing unit.

## Claims

### Claim 1

A system, comprising;
a processing unit; and
a memory adaptor bridge coupled to the processing unit and configured to:
in response to an attempt by the processing unit to write an operand to a memory location mapped to a function of a hardware accelerator, write the operand to a different memory location accessible by the hardware accelerator;
obtain a result of the function performed on the operand by the hardware accelerator; and
provide the result to a memory location accessible by the processing unit.

### Claim 2 (depends on 1)

The system of claim 1, wherein the processing unit comprises a core of a multi-core central processing unit (CPU).

### Claim 3 (depends on 2)

The system of claim 2, wherein the hardware accelerator resides onboard the CPU.

### Claim 4 (depends on 1)

The system of claim 1, wherein the result comprises a first result, wherein the hardware accelerator comprises a first hardware accelerator, and wherein the memory adaptor bridge is further configured to:
in response to the attempt by the processing unit to write the operand to the memory location mapped to the function of the hardware accelerator, write the operand to a different memory location accessible by a second hardware accelerator that provides redundancy with respect to the first hardware accelerator;
obtain a second result of the function performed on the operand by the second hardware accelerator; and
provide a result of a comparison of the first result and the second result to the memory location accessible by the processing unit.

### Claim 5 (depends on 4)

The system of claim 4, wherein based on a determination that a value of the first result matches a value of the second result, the result of the comparison comprises the value, and wherein based on a determination that the value of the first result does not match the value of the second result, the result of the comparison comprises an invalid value.

### Claim 6 (depends on 4)

The system of claim 4, wherein the comparison of the first result and the second result is performed by a logic component external to the memory adaptor bridge.

### Claim 7 (depends on 6)

The system of claim 6, wherein the system further comprises a memory coupled to the memory adaptor bridge, and wherein the different memory location accessible by the hardware accelerator is external to the memory.

### Claim 8 (depends on 1)

The system of claim 1, wherein the result comprises a first result, wherein the hardware accelerator comprises a first hardware accelerator, and wherein the memory adaptor bridge is further configured to:
in response to the attempt by the processing unit to write the operand to the memory location mapped to the function of the hardware accelerator, write the operand to a different memory location accessible by a second hardware accelerator based on a determination that the first hardware accelerator is unavailable;
obtain a second result of the function performed on the operand by the second hardware accelerator; and
provide the second result of the function to the memory location accessible by the processing unit.

### Claim 9 (depends on 1)

The system of claim 1, wherein the hardware accelerator is configured to perform the function in a predetermined number of clock cycles after the memory adaptor bridge writes the operand to the different memory location accessible by the hardware accelerator.

### Claim 10 (depends on 9)

The system of claim 9, wherein the memory adaptor bridge is further configured to delay attempts by the processing unit other than the attempt to write the operand to the memory location mapped to the function of the hardware accelerator until the memory adaptor bridge provides, after the predetermined number of clock cycles, the result of the function to the memory location accessible by the processing unit.

### Claim 11

A method, comprising:
receiving, at a memory adaptor bridge, an attempt by a processing unit to write an operand to a memory location mapped to a function a hardware accelerator;
in response to the attempt by the processing unit to write the operand to the memory location mapped to the function a hardware accelerator, writing the operand to a different memory location accessible by the hardware accelerator;
obtaining a result of the function performed on the operand by the hardware accelerator; and
providing the result of the function to a memory location accessible by the processing unit.

### Claim 12 (depends on 11)

The method of claim 11, wherein the processing unit comprises a core of a multi-core central processing unit (CPU).

### Claim 13 (depends on 12)

The method of claim 12, wherein the hardware accelerator resides onboard the CPU.

### Claim 14 (depends on 11)

The method of claim 11, wherein the result comprises a first result and wherein the hardware accelerator comprises a first hardware accelerator.

### Claim 15 (depends on 14)

The method of claim 14, further comprising:
in response to the attempt by the processing unit to write the operand to the memory location mapped to the function of the hardware accelerator, writing the operand to a different memory location accessible by a second hardware accelerator that provides redundancy with respect to the first hardware accelerator;
obtaining a second result of the function performed on the operand by the second hardware accelerator; and
providing a result of a comparison of the first result and the second result to the memory location accessible by the processing unit.

### Claim 16 (depends on 15)

The method of claim 15, comprising based on determining that a value of the first result matches a value of the second result, providing the value of the first result or the value of the second result as the result of the comparison, and based on determining that the value of the first result does not match the value of the second result, providing an invalid value as the result of the comparison.

### Claim 17 (depends on 15)

The method of claim 15, wherein the comparison of the first result and the second result is performed by a logic component external to the memory adaptor bridge.

### Claim 18 (depends on 14)

The method of claim 14, further comprising:
in response to the attempt by the processing unit to write the operand to the memory location mapped to the function of the hardware accelerator, writing the operand to a different location accessible by a second hardware accelerator based on determining that the first hardware accelerator is unavailable;
obtaining a second result of the function performed on the operand by the second hardware accelerator; and
providing the second result of the function to the memory location accessible by the processing unit.

### Claim 19 (depends on 11)

The method of claim 11, further comprising delaying an attempt by the processing unit to read the result of the function from the memory location accessible by the processing unit for a predetermined number of clock cycles.

### Claim 20

A memory adaptor bridge, comprising:
first circuitry configured to, in response to an attempt by a processing unit to write an operand to a memory location mapped to a function of a hardware accelerator, write the operand to a different memory location accessible by the hardware accelerator; and
second circuitry configured to:
obtain a result of the function performed on the operand by the hardware accelerator; and
provide the result of the function to a memory location accessible by the processing unit.
