IP Library › Granted Patent US 10,481,814
Granted Patent B1
US 10,481,814 · App. 15/635,646 · Granted Nov 19, 2019

Architecture for asynchronous memory transfer for kernels implemented in integrated circuits

Inventors: Heera Nand (Alwar, IN); Amit Kasat (Hyderabad, IN)
Assignee: XILINX, INC.
G06F3/0629G06F3/0656G06F3/0659G06F3/0673G06F17/5045
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 10,481,814
App. No.
15/635,646
Granted
Nov 19, 2019
Kind
B1
Abstract

Implementing a kernel as circuitry in an integrated circuit can include determining, using a processor, memory access operations and work operations from kernel program code and generating, using the processor, a circuit design from the kernel program code. The circuit design implements a circuit architecture having a memory access circuit configured to perform the memory access operations and an execution circuit configured to perform the work operations concurrently with the memory access operations.

Claims (43)

1. A method for implementing a kernel as circuitry in an integrated circuit, comprising:

determining, using a processor, memory access operations and work operations from kernel program code; and

generating, using the processor, a circuit design from the kernel program code, wherein the circuit design implements a circuit architecture having a memory access circuit configured to perform the memory access operations and an execution circuit configured to perform the work operations concurrently with the memory access operations.

2. The method of claim 1 , wherein the memory access operations comprise read operations and write operations on a global memory.

3. The method of claim 1 , wherein the memory access circuit comprises a read channel and a write channel independent of the read channel.

4. The method of claim 1 , further comprising:

in response to determining a buffer from the kernel program code, generating, within the circuit design, a shared memory, wherein the shared memory is configured to implement the buffer and is accessed by the memory access circuit and the execution circuit.

5. The method of claim 4 , wherein the memory access circuit is configured to exchange data between the shared memory and a global memory.

6. The method of claim 1 , further comprising:

generating, within the circuit design, a read command first-in-first-out memory coupling the execution circuit with the memory access circuit; and

generating, within the circuit design, a write command first-in-first-out memory coupling the execution circuit with the memory access circuit.

7. The method of claim 6 , wherein the execution circuit is configured to send read commands to the memory access circuit via the read command first-in-first-out memory and write commands to the memory access circuit via the write command first-in-first-out memory.

8. The method of claim 1 , further comprising:

in response to determining events within the kernel program code, generating a plurality of status registers for the events within the circuit design, wherein the plurality of status registers are accessible by the memory access circuit and the execution circuit, and wherein the plurality of status registers are updated to indicate status of read operations and write operations.

9. The method of claim 8 , further comprising:

generating, within the circuit design, global status registers indicating status of a read channel and a write channel of the memory access circuit, wherein the global status registers are accessible by the memory access circuit and the execution circuit.

10. An integrated circuit having a hardware architecture for a kernel, wherein the hardware architecture comprises:

a shared memory circuit configured to implement a buffer of the kernel;

a memory access circuit configured to perform memory access operations of the kernel, wherein the memory access operations comprise read operations and write operations that exchange data between a global memory and the shared memory; and

an execution circuit coupled to the memory access circuit and configured to perform work operations of the kernel using the data stored in the shared memory.

11. The integrated circuit of claim 10 , wherein the hardware architecture includes a number of shared memory circuits corresponding to a number of buffers of the kernel.

12. The integrated circuit of claim 10 , wherein the memory access circuit comprises a read channel and a write channel independent of the read channel.

13. The integrated circuit of claim 10 , wherein the hardware architecture further comprises:

a read command first-in-first-out memory coupling the execution circuit with the memory access circuit; and

a write command first-in-first-out memory coupling the execution circuit with the memory access circuit.

14. The integrated circuit of claim 13 , wherein the execution circuit is configured to send read commands to the memory access circuit via the read command first-in-first-out memory and write commands to the memory access circuit via the write command first-in-first-out memory.

15. The integrated circuit of claim 10 , wherein the hardware architecture further comprises:

a plurality of status registers corresponding to events within the kernel, wherein the plurality of status registers are accessible by the memory access circuit and the execution circuit, and wherein the plurality of status registers are updated to indicate status of read operations and write operations.

16. The integrated circuit of claim 15 , wherein the hardware architecture further comprises:

a plurality of global status registers indicating status of a read channel and a write channel of the memory access circuit, wherein the global status registers are accessible by the memory access circuit and the execution circuit.

17. The integrated circuit of claim 10 , wherein the integrated circuit is a programmable integrated circuit.

18. A system for implementing a kernel as circuitry in an integrated circuit, comprising:

a memory configured to store program code; and

a processor coupled to the memory, wherein the processor, in response to executing the program code, is configured to initiate operations including:

determining memory access operations and work operations from kernel program code; and

generating a circuit design from the kernel program code, wherein the circuit design implements a circuit architecture having a memory access circuit configured to perform the memory access operations and an execution circuit configured to perform the work operations concurrently with the memory access operations.

19. The system of claim 18 , wherein the processor is configured to initiate operations further including:

in response to determining a buffer from the kernel program code, generating, within the circuit design, a shared memory, wherein the shared memory is configured to implement the buffer and is accessed by the memory access circuit and the execution circuit;

generating, within the circuit design, a read command first-in-first-out memory coupling the execution circuit with the memory access circuit; and

generating, within the circuit design, a write command first-in-first-out memory coupling the execution circuit with the memory access circuit.

20. The system of claim 18 , wherein the processor is configured to initiate operations further including:

in response to determining events within the kernel program code, generating a plurality of status registers for the events within the circuit design, wherein the plurality of status registers are accessible by the memory access circuit and the execution circuit, and wherein the plurality of status registers are updated to indicate status of read operations and write operations; and

generating, within the circuit design, global status registers indicating status of a read channel and a write channel of the memory access circuit, wherein the global status registers are accessible by the memory access circuit and the execution circuit.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2017
From: NAND, HEERA; KASAT, AMIT
To: XILINX, INC.
Reel/Frame 043022/0304 →
Cited By (1)
US 12,204,940