IP Library Granted Patent US 9,515,658
Granted Patent B1
US 9,515,658 · App. 14/510,733 · Granted Dec 6, 2016

Method and apparatus for implementing configurable streaming networks

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 9,515,658
App. No.
14/510,733
Granted
Dec 6, 2016
Kind
B1
Abstract

A method of configuring a programmable integrated circuit device. A channel source within the virtual fabric is configured to receive input data from a first kernel outside of the virtual fabric and on the programmable integrated circuit device, and a channel sink within the virtual fabric is configured to transmit output data to the first kernel. The configuring of the channel source is modified such that the channel source receives input data from a second kernel in response to detecting a change in operation of the programmable integrated circuit device.

Claims (39)

1. A method of configuring a programmable integrated circuit device, the method comprising:

instantiating a virtual fabric on the programmable integrated circuit device;

configuring a channel source within the virtual fabric to receive input data from a first kernel outside of the virtual fabric and on the programmable integrated circuit device;

configuring a channel sink within the virtual fabric to transmit output data to the first kernel; and

modifying the configuring of the channel source such that the channel source receives input data from a second kernel in response to detecting a change in operation of the programmable integrated circuit device.

2. The method of claim 1 , wherein the first kernel is in a plurality of kernels that are included in a partial reconfiguration block that allows for the plurality of kernels to be removed, added, or exchanged during the modifying.

3. The method of claim 2 , wherein the second kernel is in the plurality of kernels that are included in the partial reconfiguration block.

4. The method of claim 2 , wherein another partial reconfiguration block includes another plurality of kernels that process data during the modifying.

5. The method of claim 1 , wherein:

the virtual fabric includes a plurality basic blocks;

a first subset of the basic blocks is a plurality of channel sources including the channel source;

a second subset of the basic blocks is a plurality of channel sinks including the channel sink;

a third subset of the basic blocks is a plurality of channel buffers.

6. The method of claim 5 , wherein at least one channel buffer in the plurality of channel buffers forms a first-in-first-out memory between one of the plurality of channel sources and one of the plurality of channel sources.

7. The method of claim 5 , wherein a number of channel sources in the plurality of channel sources is greater than or equal to a number of outputs on a plurality of kernels including the first and second kernels on the programmable integrated circuit device.

8. The method of claim 5 , wherein a number of channel sinks in the plurality of channel sinks is greater than or equal to a number of inputs on a plurality of kernels including the first and second kernels on the programmable integrated circuit device.

9. The method of claim 1 , further comprising modifying the configuring of the channel sink by configuring the channel sink to transmit output data to the second kernel.

10. The method of claim 1 , wherein the configuring of the channel source and of the channel sink occurs at runtime.

11. A programmable integrated circuit device configured using a high-level language, the device comprising a plurality of hardware circuits representative of a virtual fabric comprising:

a channel source configured to receive input data from a first kernel outside of the virtual fabric and on the programmable integrated circuit device, wherein:

in response to detecting a change in operation of the programmable integrated circuit device, the configuration of the channel source is modified such that the channel source receives input data from a second kernel after receiving input data from the first kernel; and

a channel sink configured to transmit output data to the kernel.

12. The programmable integrated circuit device of claim 11 , wherein the first kernel is in a plurality of kernels that are included in a partial reconfiguration block that allows for the plurality of kernels to be removed, added, or exchanged during the modifying.

13. The programmable integrated circuit device of claim 12 , wherein the second kernel is in the plurality of kernels that are included in the partial reconfiguration block.

14. The programmable integrated circuit device of claim 12 , wherein another partial reconfiguration block includes another plurality of kernels that process data during the modifying.

15. The programmable integrated circuit device of claim 11 , wherein:

the virtual fabric includes a plurality basic blocks;

a first subset of the basic blocks is a plurality of channel sources including the channel source;

a second subset of the basic blocks is a plurality of channel sinks including the channel sink;

a third subset of the basic blocks is a plurality of channel buffers.

16. The programmable integrated circuit device of claim 15 , wherein at least one channel buffer in the plurality of channel buffers forms a first-in-first-out memory between one of the plurality of channel sources and one of the plurality of channel sources.

17. The programmable integrated circuit device of claim 15 , wherein a number of channel sources in the plurality of channel sources is greater than or equal to a number of outputs on a plurality of kernels including the first and second kernels on the programmable integrated circuit device.

18. The programmable integrated circuit device of claim 15 , wherein a number of channel sinks in the plurality of channel sinks is greater than or equal to a number of inputs on a plurality of kernels including the first and second kernels on the programmable integrated circuit device.

19. The programmable integrated circuit device of claim 11 , wherein the configuring of the channel sink is modified by configuring the channel sink to transmit output data to the second kernel.

20. The programmable integrated circuit device of claim 11 , wherein the channel source and the channel sink are configured at runtime.

21. A programmable integrated circuit device configured using a high-level language, the device comprising a plurality of hardware circuits representative of a virtual fabric comprising:

a channel sink configured to transmit output data to a first kernel outside of the virtual fabric and on the programmable integrated circuit device, wherein:

in response to detecting a change in operation of the programmable integrated circuit device, the configuration of the channel sink is modified such that the channel sink transmits output data to a second kernel after transmitting output to the first kernel; and

a channel source configured to receive input data from the kernel.

Assignments (2)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2014
From: CHEN, DORIS TZU LANG; SINGH, DESHANAND
To: ALTERA CORPORATION
Reel/Frame 034007/0074 →