Uniform interface for a functional node in an adaptive computing engine
First Claim
1. A data distributor in a computational unit, wherein the data distributor receives data from a network in an adaptive computing engine and distributes the data to components within the computational unit, the data distributor comprising an input mechanism for receiving the data;
- a distribution mechanism responsive to a control signal for distributing the data to a selected component; and
a control mechanism responsive to a control signal for distributing the data to the selected component in a selected manner.
5 Assignments
0 Petitions
Accused Products
Abstract
A computational unit, or node, in an adaptive computing engine uses a uniform interface to a network to communicate with other nodes and resources. The uniform interface is referred to as a “node wrapper.” The node wrapper includes a hardware task manager (HTM), a data distributor, optional direct memory access (DMA) engine and a data aggregator. The hardware task manager indicates when input and output buffer resources are sufficient to allow a task to execute. The HTM coordinates a nodes assigned tasks using a task lists. A “ready-to-run queue” is implemented as a first-in first-out stack. The HTM uses a top-level finite-state machine (FSM) that communicates with a number of subordinate FSMs to control individual HTM components. The Data Distributor interfaces between the node'"'"'s input pipeline register and various memories and registers within the node. Different types of data distribution are possible based upon the values in service and auxiliary fields of a 50-bit control structure. The Data Aggregator arbitrates among up to four node elements that request access to the node'"'"'s output pipeline register for the purpose of transferring data to the intended destination via the network. The DMA Engine uses a five-register model. The registers include a Starting Address Register, an Address Stride Register, a Transfer Count Register, a Duty Cycle Register, and a Control Register including a GO bit, Target Node number/port number, and DONE protocol. A control node, or “K-node,” is used to control various aspects of the HTM, data distributor, data aggregator and DMA operations within the nodes of the system.
-
Citations
27 Claims
-
1. A data distributor in a computational unit, wherein the data distributor receives data from a network in an adaptive computing engine and distributes the data to components within the computational unit, the data distributor comprising
an input mechanism for receiving the data; -
a distribution mechanism responsive to a control signal for distributing the data to a selected component; and
a control mechanism responsive to a control signal for distributing the data to the selected component in a selected manner. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A data aggregator in a computational unit in an adaptive computing engine is used to aggregate 4data for transfer from the computational unit to the network, wherein the computational unit includes multiple components, wherein each component can request transfer of data to the network, the data aggregator comprising
an output register coupled to the network; - and
an arbiter mechanism for arbitrating priority of the requests from the multiple components. - View Dependent Claims (10, 11, 12, 13)
- and
-
14. A method for distributing data in a computational unit, the method comprising
receiving data from a network in an adaptive computing engine; distributing the data to components within the computational unit according to a control signal for distributing the data to a selected component and according to a control signal for distributing the data to the selected component in a selected manner. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
22. A method for outputting data to a network from a computational unit in an adaptive computing engine, the method comprising
arbitrating among multiple components to select a component'"'"'s output data to transfer to the network.
Specification