IP Library Granted Patent US 7,178,130
Granted Patent B2
US 7,178,130 · App. 10/342,888 · Granted Feb 13, 2007

Digital processing architecture using compiled dataflow definition

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,178,130
App. No.
10/342,888
Granted
Feb 13, 2007
Kind
B2
Abstract

A system whereby a data flow language written in relatively high-level description is compiled to a hardware definition. The hardware definition is then used to configure data flow in a target processing system at execution time, or run time. In a preferred embodiment, the target processing system includes a Reduced-Instruction Set Computer (RISC) processor in communication with a finite state machine (FSM), shared memory, on-board memory, and other resources. The FSM is primarily used for accelerating matrix operations and is considered the target machine to be configured according to the dataflow definition. The RISC processor serves as a co-processor to an external central processing unit (CPU) that is a host processor for executing application code. Other embodiments can use aspects of the invention in any other processing architecture. A dataflow language is used to define interconnections among hardware elements in the matrix datapath and controlled by FSM at run time and, thus, to determine hardware functionality at run time. The interconnectivity between the matrix datapath components, elements or resources, is capable of changing every clock cycle to optimize preferred calculations. The dataflow language is used to describe the optimized functions to an application programmer. The dataflow language is also compiled to a hardware definition that is used to create aspects of the desired functionality in silicon.

Claims (35)

1. A method for configuring a digital system, wherein the digital system includes a host processor in communication with a secondary processor, the method comprising:

using a dataflow definition description to create a first interconnectivity of a data path among a plurality of components within the secondary processor prior to a run time;

receiving instructions from an application code that is executed by the host processor at a run time, the application code being created from the dataflow definition description; and

in response to the instructions, using the dataflow definition description to change the first interconnectivity of the data path to a second interconnectivity of the data path among at least a portion of the plurality of components in the secondary processor at run time to achieve a desired function.

2. The method of claim 1 , wherein the secondary processor includes a co-processor.

3. The method of claim 1 , wherein the secondary processor includes a matrix accelerator.

4. The method of claim 1 , wherein:

the plurality of components is coupled to a memory in the secondary processor; and

the dataflow definition description specifies that the data path between at least one of the plurality of components and the memory be maintained for a given interval of time.

5. The method of claim 4 , wherein the given interval of time includes a single processing cycle.

6. The method of claim 4 , wherein the given interval of time includes multiple processing cycles.

7. The method of claim 4 , wherein the given interval of time is a single processing cycle.

8. A system for reconfiguring a data path, the system comprising:

a host processor configured to execute application code and to provide instructions therefrom, the application code being created from a dataflow definition description; and

a co-processor coupled to the host processor, the co-processor having logic configured to:

use the dataflow definition description to create a first interconnectivity of the data path among a plurality of components prior to a run time;

receive the instructions at the run time; and

in response to the instructions, use the dataflow definition description to change the first interconnectivity of the data path to a second interconnectivity of the data path among at least a portion of the plurality of components at run time to achieve a desired function.

9. A method for configuring a digital system by using a definition language, wherein the digital system includes a configurable data path in a co-processor, a controller, and a host processor, the method comprising:

Automatically generating control information from the definition language;

Using the control information to direct execution of the controller at an execution time;

Automatically generating first interconnection information from the definition language; and

Using the first interconnection information to define one or more data paths in the configurable data path prior to the execution time;

Generating second interconnection information from the definition language; and using the second interconnection information to change the one or more datapaths in the configurable data path at the execution time.

10. The method of claim 9 , wherein the controller includes a finite state machine.

11. The method of claim 9 , wherein the definition language is used to generate control logic that is compiled into silicon at a time prior to the execution time.

12. The method of claim 1 , further comprising compiling the dataflow definition description into a hardware definition.

13. The method of claim 12 , further comprising using the hardware definition to create aspects of the desired function in silicon.

14. The method of claim 1 , wherein the first interconnectivity provides a first function different from a second function provided by the second interconnectivity.

15. The method of claim 2 , wherein the co-processor includes a finite state machine.

16. The system of claim 8 , wherein the co-processor includes a matrix accelerator.

17. The system of claim 8 , wherein a matrix datapath in the co-processor includes the plurality of components.

18. The system of claim 8 , wherein the change from the first interconnectivity to the second interconnectivity is configured to occur in one or more of a plurality of processing cycles.

19. The system of claim 8 , further comprising a memory coupled to the plurality of components.

20. The system of claim 8 , wherein the co-processor includes a finite state machine.

Assignments (5)
CORRECTIVE ASSIGNMENT ON REEL 018711, FRAME 0567 Recorded Feb 15, 2007
From: QST HOLDINGS, LLC
To: NVIDIA CORPORATION
Reel/Frame 018923/0630 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2007
From: QST HOLDINGS, L.L.C.
To: NVIDIA CORPORATION
Reel/Frame 018711/0567 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2006
From: TECHFARM VENTURES MANAGEMENT, LLC
To: QST HOLDINGS, LLC
Reel/Frame 018224/0634 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2006
From: QUICKSILVER TECHNOLOGY, INC.
To: TECHFARM VENTURES MANAGEMENT, LLC
Reel/Frame 018194/0515 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2003
From: CHUANG, DAN; FANG, CHE; WU, BICHENG WILLIAM
To: QUICKSILVER TECHNOLOGY, INC.
Reel/Frame 013680/0206 →