IP Library Granted Patent US 7,155,708
Granted Patent B2
US 7,155,708 · App. 10/285,389 · Granted Dec 26, 2006

Debugging and performance profiling using control-dataflow graph representations with reconfigurable hardware emulation

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 7,155,708
App. No.
10/285,389
Granted
Dec 26, 2006
Kind
B2
Abstract

An embodiment of the invention includes a method of simulating a hybrid instruction processor and reconfigurable processor implemented algorithm which utilizes a runtime selectable emulation library that emulates a reconfigurable processor and its resources, and a control-data flow emulator that emulates the reconfigurable logic for the algorithm. Another embodiment of the invention includes a method of simulating a control-dataflow graph that includes building an internal representation of the control-dataflow graph that includes one or more dataflow code blocks, and simulating the control-dataflow graph as a sequence of code block dataflow executions, where control is passed from one code block to another code block based on the output value of the code block until EXIT is reached.

Claims (23)

1. A method of simulating a control-dataflow graph comprising:

building an internal representation of the control-dataflow graph emulating reconfigurable logic for a reconfigurable processor implemented algorithm comprising a current block;

sending a trigger token to the current block, wherein said trigger token initiates execution of the current block in its entirety, wherein execution of the current block progresses from the top of the current block to the bottom of the current block;

providing a plurality of LOAD nodes at the top of the current block for loading the current values of an executing program's variables;

feeding values from the LOAD nodes into a computational portion of the control-dataflow graph;

providing a plurality of STORE nodes at the bottom of the current block for receiving the results of the computational portion of the control-dataflow graph and for storing updated values of the executing program's variables;

producing an output value of the current block, wherein the output value determines subsequent block execution, wherein, except for the output value that determines subsequent block execution, the current block and each subsequent block are independent control-dataflow representations that lack any data connection between the respective control-dataflow graph representations; and

thereafter terminating the current block.

2. The method of claim 1 , wherein said current block comprises an additional node.

3. The method of claim 2 , wherein said additional node is an INITIATE node.

4. The method of claim 2 , wherein said INITIATE node is located at the top of the current block.

5. The method of claim 2 , comprising clearing queues and resetting states of the node in the current block.

6. The method of claim 2 , wherein said node comprises a stateful node.

7. The method of claim 2 , wherein said node writes to a flag register, data register, or on-board memory.

8. The method of claim 7 , comprising executing said node by making a call to a reconfigurable hardware emulator function.

9. The method of claim 1 , comprising setting a fire flag on a fireable node in the current block.

10. The method of claim 9 , comprising firing the fireable node upon which the fire flag is set.

11. The method of claim 9 , wherein there are no fireable nodes in the current block.

12. The method of claim 11 , comprising generating a deadlock error due to the lack of any fireable nodes in the current block.

13. The method of claim 1 , wherein the current block comprises an EXIT.

14. The method of claim 13 , comprising using the output value of the current block to set a new current block.

15. The method of claim 1 , wherein said token comprises a time stamp.

16. The method of claim 1 , wherein the updated values of the executing program's variables stored by the STORE nodes are available for use by subsequent blocks.

Assignments (9)
RELEASE OF SECURITY INTEREST IN SPECIFIED PATENTS Recorded May 22, 2023
From: BARINGS FINANCE LLC, AS COLLATERAL AGENT
To: RPX CORPORATION
Reel/Frame 063723/0139 →
PATENT SECURITY AGREEMENT Recorded May 1, 2023
From: RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 063503/0742 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2020
From: DIRECTSTREAM LLC
To: FG SRC LLC
Reel/Frame 051615/0344 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2019
From: SAINT REGIS MOHAWK TRIBE
To: DIRECTSTREAM, LLC
Reel/Frame 049251/0855 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2017
From: SRC LABS, LLC
To: SAINT REGIS MOHAWK TRIBE
Reel/Frame 043174/0318 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2016
From: SRC COMPUTERS, LLC
To: SRC LABS, LLC
Reel/Frame 037820/0147 →
RELEASE OF SECURITY INTEREST Recorded Feb 11, 2016
From: FREEMAN CAPITAL PARTNERS LP
To: SRC COMPUTERS, LLC
Reel/Frame 037707/0196 →
MERGER Recorded Oct 31, 2013
From: SRC COMPUTERS, INC.
To: SRC COMPUTERS, LLC
Reel/Frame 031523/0088 →
SECURITY AGREEMENT Recorded Sep 23, 2013
From: SRC COMPUTERS, LLC
To: FREEMAN CAPITAL PARTNERS LP
Reel/Frame 031263/0288 →