Data processing system
DC CAFCFirst Claim
1. A massively parallel data processing apparatus comprising:
- a plurality of computing cells arranged in a multidimensional matrix, the plurality of computing cells capable of simultaneously manipulating a plurality of data, each of the plurality of computing cells including;
an input interface for receiving a plurality of input signals, a plurality of logic members, at least one of the plurality of logic members coupled to the input interface, at least one coupling unit selectively coupling at least one of the plurality of logic members to another of the plurality of logic members as a function of at least one of a plurality of configuration signals to arithmetic-logically configure the computing cell prior to processing the input signals, wherein coupled logic members perform at least one select arithmetic-logic operation on the input signals to process the input signals, the at least one select arithmetic-logic operation being dependent on the at least one of the plurality of configuration signals, a register unit selectively storing a portion of the processed input signals, and an output interface for transmitting the processed input signals, wherein the input interface of at least one of the plurality of computing cells is selectively coupled to the output interface of at least another of the plurality of computing cells; and
a configuration interface for transmitting the plurality of configuration signals to at least some of the plurality of computing cells to arithmetic-logically configure and arithmetic-logically reconfigure the at least some of the plurality of computing cells;
wherein each the plurality of computing cells includes associated internal state information, each of the plurality of computing cells being configured to enable transfer of the state information to at least one other of the plurality of computing cells.
1 Assignment
Litigations
0 Petitions
Accused Products
Abstract
A data processing system, wherein a data flow processor (DFP) integrated circuit chip is provided which comprises a plurality of orthogonally arranged homogeneously structured cells, each cell having a plurality of logically same and structurally identically arranged modules. The cells are combined and facultatively grouped using lines and columns and connected to the input/output ports of the DFP. A compiler programs and configures the cells, each by itself and facultatively-grouped, such that random logic functions and/or linkages among the cells can be realized. The manipulation of the DFP configuration is performed during DFP operation such that modification of function parts (MACROs) of the DFP can take place without requiring other function parts to be deactivated or being impaired.
-
Citations
72 Claims
-
1. A massively parallel data processing apparatus comprising:
-
a plurality of computing cells arranged in a multidimensional matrix, the plurality of computing cells capable of simultaneously manipulating a plurality of data, each of the plurality of computing cells including;
an input interface for receiving a plurality of input signals, a plurality of logic members, at least one of the plurality of logic members coupled to the input interface, at least one coupling unit selectively coupling at least one of the plurality of logic members to another of the plurality of logic members as a function of at least one of a plurality of configuration signals to arithmetic-logically configure the computing cell prior to processing the input signals, wherein coupled logic members perform at least one select arithmetic-logic operation on the input signals to process the input signals, the at least one select arithmetic-logic operation being dependent on the at least one of the plurality of configuration signals, a register unit selectively storing a portion of the processed input signals, and an output interface for transmitting the processed input signals, wherein the input interface of at least one of the plurality of computing cells is selectively coupled to the output interface of at least another of the plurality of computing cells; and
a configuration interface for transmitting the plurality of configuration signals to at least some of the plurality of computing cells to arithmetic-logically configure and arithmetic-logically reconfigure the at least some of the plurality of computing cells;
wherein each the plurality of computing cells includes associated internal state information, each of the plurality of computing cells being configured to enable transfer of the state information to at least one other of the plurality of computing cells. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A massively parallel data processing apparatus comprising:
-
a plurality of computing cells arranged in a multidimensional matrix, the plurality of computing cells capable of simultaneously manipulating a plurality of data, each of the plurality of computing cells including;
an input interface for receiving a plurality of input signals, a plurality of logic members, at least one of the plurality of logic members coupled to the input interface, at least one coupling unit selectively coupling at least one of the plurality of logic members to another of the plurality of logic members a function of at least one of a plurality of configuration signals to arithmetic-lopically configure the computing cell prior to processing the input signals, wherein coupled logic members perform at least one select arithmetic-logic operation on the input signals to process the input signals, the at least one select arithmetic-logic operation being dependent on the at least one of the plurality of configuration signals, a register unit selectively storing a portion of the processed input signals, and an output interface for transmitting the processed input signals, wherein the input interface of at least one of the plurality of computing cells is selectively coupled to the output interface of at least another of the plurality of computing cells;
a configuration interface for transmitting the plurality of configuration signals to at least some of the plurality of computing cells to arithmetic-logically configure and arithmetic-logically reconfigure the at least some of the plurality of computing cells; and
a configuration unit coupled to the configuration interface, the configuration unit generating the plurality of configuration signals, the at least some of the plurality of computing cells being configured as a function of the at least one configuration signal during operation of the massively parallel data processing apparatus such that others of the plurality of computing cells not being configured are not haltered or impaired in their operations. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A massively parallel data processing apparatus comprising:
-
a plurality of computing cells arranged in a multidimensional matrix, the plurality of computing cells capable of simultaneously manipulating a plurality of data, each of the plurality of computing cells including;
an input interface for receiving a plurality of input signals, a plurality of logic members, at least one of the plurality of logic members coupled to the input interface, at least one coupling unit selectively coupling at least one of the plurality of logic members to another of the plurality of logic members a function of at least one of a plurality of configuration signals to arithmetic-logically configure the computing cell prior to processing the input signals, wherein coupled logic members perform at least one select arithmetic-logic operation on the input signals to process the input signals, the at least one select arithmetic-logic operation being dependent on the at least one of the plurality of configuration signals, a resister unit selectively storing a portion of the processed input signals, and an output interface for transmitting the processed input signals, wherein the input interface of at least one of the plurality of computing cells is selectively coupled to the output interface of at least another of the plurality of computing cells;
a configuration interface for transmitting the plurality of configuration signals to at least some of the plurality of computing cells to arithmetic-lopically configure and arithmetic-logically reconfigure the at least some of the plurality of computing cells; and
a configuration unit coupled to the configuration interface, the configuration unit adapted to dynamically reconfigure the massively parallel data processing apparatus. - View Dependent Claims (19, 20)
-
-
21. A massively parallel data processing apparatus comprising:
-
a plurality of computing cells arranged in a multidimensional matrix, the plurality of computing cells capable of simultaneously manipulating a plurality of data, each of the plurality of computing cells including;
an input interface for receiving a plurality of input signals, a plurality of logic members, at least one of the plurality of logic members coupled to the input interface, at least one coupling unit selectively coupling at least one of the plurality of logic members to another of the plurality of logic members a function of at least one of a plurality of configuration signals to arithmetic-logically configure the computing cell prior to processing the input signals, wherein coupled logic members perform at least one select arithmetic-logic operation on the input signals to process the input signals, the at least one select arithmetic-logic operation being dependent on the at least one of the plurality of configuration signals, a register unit selectively storing a portion of the processed input signals, and an output interface for transmitting the processed input signals, wherein the input interface of at least one of the plurality of computing cells is selectively coupled to the output interface of at least another of the plurality of computing cells;
a configuration interface for transmitting the plurality of configuration signals to at least some of the plurality of computing cells to arithmetic-logically configure and arithmetic-logically reconfigure the at least some of the plurality of computing cells; and
a plurality of lines, at least one of the plurality of lines selectively coupling at least one of the plurality of computing cells to an adjacent one of the plurality of computing cells, at least another of the plurality of lines selectively coupling at least one of the plurality of computing cells to a non-adjacent one of the plurality of computing cells;
wherein the at least another of the plurality of lines are divided in a plurality of segments, wherein each of the plurality of segments is connected to at least another one of the plurality of segments by a tristate-bus-driver.
-
-
22. A massively parallel data processing apparatus comprising:
-
a plurality of computing cells arranged in a multidimensional matrix, the plurality of computing cells capable of simultaneously manipulating a plurality of data, each of the plurality of computing cells including;
an input interface for receiving a plurality of input signals, a plurality of logic members, at least one of the plurality of logic members coupled to the input interface, at least one coupling unit selectively coupling at least one of the plurality of logic members to another of the plurality of logic members a function of at least one of a plurality of configuration signals to arithmetic-logically configure the computing cell prior to processing the input signals, wherein coupled logic members perform at least one select arithmetic-logic operation on the input signals to process the input signals, the at least one select arithmetic-logic operation being dependent on the at least one of the plurality of configuration signals, a register unit selectively storing a portion of the processed input signals, and an output interface for transmitting the processed input signals, wherein the input interface of at least one of the plurality of computing cells is selectively coupled to the output interface of at least another of the plurality of computing cells;
a configuration interface for transmitting the plurality of configuration signals to at least some of the plurality of computing cells to arithmetic-logically configure and arithmetic-logically reconfigure the at least some of the plurality of computing cells; and
a plurality of lines, at least one of the plurality of lines selectively coupling at least one of the plurality of computing cells to an adjacent one of the plurality of computing cells, at least another of the plurality of lines selectively coupling at least one of the plurality of computing cells to a non-adjacent one of the plurality of computing cells;
wherein the at least another of the plurality of lines are divided in a plurality of segments, wherein each of the plurality of segments is connected to at least another one of the plurality of segments by a transmission gate.
-
-
23. A massively parallel data processing apparatus comprising:
-
a plurality of computing cells arranged in a multidimensional matrix, the plurality of computing cells capable of simultaneously manipulating a plurality of data, each of the plurality of computing cells including;
an input interface for receiving a plurality of input signals, a plurality of logic members, at least one of the plurality of logic members coupled to the input interface, at least one coupling unit selectively coupling at least one of the plurality of logic members to another of the plurality of logic members a function of at least one of a plurality of configuration signals to arithmetic-logically configure the computing cell prior to processing the input signals, wherein coupled logic members perform at least one select arithmetic-logic operation on the input signals to process the input signals, the at least one select arithmetic-logic operation being dependent on the at least one of the plurality of configuration signals, a register unit selectively storing a portion of the processed input signals, and an output interface for transmitting the processed input signals, wherein the input interface of at least one of the plurality of computing cells is selectively coupled to the output interface of at least another of the plurality of computing cells;
a configuration interface for transmitting the plurality of configuration signals to at least some of the plurality of computing cells to arithmetic-logically configure and arithmetic-logically reconfigure the at least some of the plurality of computing cells; and
a plurality of lines, at least one of the plurality of lines selectively coupling at least one of the plurality of computing cells to an adjacent one of the plurality of computing cells, at least another of the plurality of lines selectively coupling at least one of the plurality of computing cells to a non-adjacent one of the plurality of computing cells;
wherein the said at least another of the plurality of lines are divided in a plurality of segments, wherein each of the plurality of segments is connected to at least another one of the plurality of segments by an electrical switch.
-
-
24. A massively parallel data processing apparatus, comprising:
-
a plurality of computing cells arranged in a multidimensional matrix, each of the plurality of computing cells being arithmetic-logically configurable and reconfigurable, each of the plurality of computing cells capable of processing a first plurality of data words simultaneously with the processing of a second plurality of data words by others of the plurality of computing cells, wherein each of the plurality of computing cells is arithmetic-logically configured by a first configuration signal to perform a first select arithmetic-logic operation, and wherein each of the plurality of computing cells is arithmetic-logically reconfigured to perform a second select arithmetic-logic operation by a second configuration signal different than the first configuration signal, the first select operation being different than the second select operation; and
a plurality of buses, wherein each of the plurality of computing cells are connectable to at least one of the plurality of computing cells using at least one of the plurality of buses;
wherein each the plurality of computing cells includes associated internal state information, one of the plurality of buses being configured to transfer such internal state information between the plurality of computing cells. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A massively parallel data processing apparatus comprising:
-
a plurality of computing cells arranged in a multidimensional matrix, each of the plurality of computing cells being arithmetic-logically configurable and reconfigurable, each of the plurality of computing cells capable of processing a first plurality of data words simultaneously with the processing of a second plurality of data words by others of the plurality of computing cells, wherein each of the plurality of computing cells is arithmetic-logically configured by a first configuration signal to perform a first select arithmetic-logic operation, and wherein each of the plurality of computing cells is arithmetic-logically reconfigured to perform a second select arithmetic-logic operation by a second configuration signal different than the first configuration signal, the first select operation being different than the second select operation; and
a plurality of buses, wherein each of the plurality of computing cells are connectable to at least one of the plurality of computing cells using at least one of the plurality of buses, wherein each of the plurality of computing cells maintaining a first configuration for a first period of time, and wherein at least some of the plurality of computing cells are capable of detecting a need for a reconfiguration.
-
-
38. A massively parallel data processing apparatus, comprising:
-
a programmable logic device, the programmable logic device including a plurality of logic elements arranged in a multidimensional matrix, each of the plurality of logic elements being arithmetic-logically configurable and reconfigurable, each of the plurality of logic elements capable of processing a first plurality of binary signals simultaneously with the processing of a second plurality of binary signals by others of the plurality of logic units, wherein each of the plurality of logic elements is arithmetic-logically configured to perform a first select arithmetic-logic operation by a first configuration signal, and wherein each of the plurality of logic elements is arithmetic-logically reconfigured to perform a second select arithmetic-logic operation by a second configuration signal different than the first configuration signal, the first select operation being different than the second select operation, the programmable logic device further comprising a plurality of buses, wherein each of the plurality of logic elements are connectable to at least one of the plurality of logic elements using at least one of the plurality of buses; and
at least one memory device coupled to the programmable logic device for storing at least one of i) multiple data to be processed by the programmable logic device, and ii) processing results of the programmable logic device;
wherein each the plurality of logic elements includes associated internal state information, one of the plurality of buses being configured to transfer such internal state information between the plurality of logic elements. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46, 47)
-
-
48. A massively parallel data processing apparatus comprising:
-
a programmable logic device, the programmable logic device including a plurality of logic elements arranged in a multidimensional matrix, each of the plurality of logic elements being arithmetic-logically configurable and reconfigurable, each of the plurality of logic elements capable of processing a first plurality of binary signals simultaneously with the processing of a second plurality of binary signals by others of the plurality of logic units, wherein each of the plurality of logic elements is arithmetic-logically configured to perform a first select arithmetic-logic operation by a first configuration signal, and wherein each of the plurality of logic elements is arithmetic-logically reconfigured to perform a second select arithmetic-logic operation by a second configuration signal different than the first configuration signal, the first select operation being different than the second select operation, the programmable logic device further comprising a plurality of buses, wherein each of the plurality of logic elements are connectable to at least one of the plurality of logic elements using at least one of the plurality of buses; and
at least one memory device coupled to the programmable logic device for storing at least one of i) multiple data to be processed by the programmable logic device, and ii) processing results of the programmable topic device, wherein each of the plurality of logic elements maintaining a first configuration for a first period of time, and wherein at least some of the plurality of logic elements are capable of detecting a need for a reconfiguration.
-
-
49. A data processor, comprising:
-
cells arranged in a multi-dimensional pattern;
a first compiler for individually accessing and individually configuring at least some of the cells, the first compiler selectively grouping the at least some of the cells with neighboring cells into functional units to perform a first function, the first compiler further selectively regrouping selected ones of the at least some of the cells into different functional units to perform a second function different than the first function while simultaneously others of the at least some of the cells process data;
wherein each the plurality of cells includes associated internal state information, and each of the plurality of cells is configured to transfer such internal state information to at least one other of the plurality of cells. - View Dependent Claims (50, 51, 52)
-
-
53. A data processor comprising:
-
cells arranged in a multi-dimensional pattern;
a first compiler for individually accessing and individually configuring at least some of the cells, the first compiler selectively grouping the at least some of the cells with neighboring cells into functional units to perform a first function, the first compiler further selectively regrouping selected ones of the at least some of the cells into different functional units to perform a second function different than the first function while simultaneously others of the at least some of the cells process data; and
a priority decoder for determining an order for the first compiler to selectively regroup the selected ones of the at least some of the cells.
-
-
54. A data processor, comprising:
-
cells arranged in a multi-dimensional pattern, at least one of the cells being selectively coupled to a first one of the cells to form a first functional unit at a first time, the first functional unit performing a first function, the at least one of the cells capable of being regrouped with a second one of the cells to form a second functional unit at a second time different from the first time, the second functional unit performing a second function different from the first function, the at least one of the cells regrouping as a function of reconfiguration data; and
a first compiler receiving state information regarding a state of the first functional unit and transmitting reconfiguration data to the at least one of the cells as a function of the received state information;
wherein the state information includes information associated with an internal condition of the cells, and the state information transferrable between the cells. - View Dependent Claims (55, 56, 57, 58)
-
-
59. A data processor comprising:
-
cells arranged in a multi-dimensional pattern, at least one of the cells being selectively coupled to a first one of the cells to form a first functional unit at a first time, the first functional unit performing a first function, the at least one of the cells capable of being regrouped with a second one of the cells to form a second functional unit at a second time different from the first time, the second functional unit performing a second function different from the first function, the at least one of the cells regrouping as a function of reconfiguration data;
a first compiler receiving state information regarding the state of the first functional unit and transmitting reconfiguration data to the at least one of the cells as a function of the received state information; and
a priority decoder determining an order for the first compiler to transmit the reconfiguration data.
-
-
60. A data processor, comprising:
-
cells arranged in a multi-dimensional pattern, at least one of the cells being selectively coupled to a first one of the cells to form a first functional unit at a first time, the first functional unit performing a first function, the at least one of the cells capable of being regrouped with a second one of the cells to form a second functional unit at a second time different from the first time, the second functional unit performing a second function different from the first function, the at least one of the cells regrouping as a function of reconfiguration data;
a first compiler receiving state information regarding the state of the first functional unit and transmitting reconfiguration data to the at least one of the cells as a function of the received state information;
a segmented bus selectively coupling each of the cells to others of the cells; and
wherein the segmented bus including a first segment and a second segment, the first segment providing communication between a first one of the cells and a second one of the cells, the second segment providing communication between a third one of the cells and a fourth one of the cells.
-
-
61. A method for configuring a data processor, the data processor including cells arranged in a multi-dimensional pattern, comprising the steps of:
-
grouping at least some of the cells into functional units;
processing data by the functional units; and
receiving, by a reconfiguration unit, internal state information regarding at least one of the functional units;
wherein the processing of data by the functional units includes transferring state the information regarding at least one of the functional units to another of the functional units. - View Dependent Claims (62, 63, 64)
-
-
65. A method for configuring a data processor, the data processor including cells arranged in a multidimensional pattern, comprising the steps of:
-
individually configuring at least some of the cells to form functional units;
processing data by at least some of the functional units; and
receiving, by a reconfiguration unit, internal state information regarding at least one of the functional units; and
individually reconfiguring at least one cell of at least one of the functional units to form a different functional unit as a function of the state information, while simultaneously others of the functional units continue processing data;
wherein the processing of data by at least some of the functional units includes transferring the state information regarding at least one of the functional units to another of the functional units. - View Dependent Claims (66)
-
-
67. A method for configuring a data processor, the data processor including cells arranged in a multi-dimensional pattern, comprising the steps of:
-
grouping at least some of the cells into functional units;
enabling by a state machine the at least some of the cells;
after the enabling step, processing data by the functional units;
receiving, by a reconfiguration unit, internal state information regarding at least one of the functional units;
transmitting, by the reconfiguration unit, respective configuration data to the at least one of the functional units as a function of the received state information;
disabling by the state machine at least some of the cells of the at least one of the function units while others of the function units are still enabled; and
after the disabling step, reconfiguring at least one of the cells in the at least one of the functional units as a function of the respective configuration data while simultaneously other functional units continue processing data;
wherein the processing of data by the functional units includes transferring the state information regarding at least one of the functional units to another of the functional units. - View Dependent Claims (68, 69)
-
-
70. A method of processing data within a data processor, the data processor including cells arranged in a multi-dimensional pattern, comprising the steps of:
-
grouping at least some of the cells into functional units;
enabling by a state machine a transfer of data between a first plurality of the cells depending on the presence of the data and a state of at least some of the cells, the first plurality of the cells being in a READY state for at least one of i) accepting new data, and ii) transmitting a result; and
disabling by a state machine the transfer of the data depending on the presence of the data and the state of at least some of the cells, the at least some of the cells being in a NOT ready state for accepting the new data and for transmitting the results.
-
-
71. A method for configuring a data processor, the data processor including cells arranged in a multi-dimensional pattern, comprising the steps of:
-
grouping at least some of the cells into functional units;
enabling by a state machine the at least some of the cells;
after the enabling step, processing data by the functional units;
receiving, by a reconfiguration unit, internal state information regarding at least one of the functional units;
disabling by the state machine at least some of the cells of the at least one of the function units while others of the function units are still enabled;
transmitting, by the reconfiguration unit, respective configuration data to the at least one of the functional units as a function of the received state information; and
after the disabling step, reconfiguring at least one of the cells in the at least one of the functional units as a function of the respective configuration data while simultaneously other functional units continue processing data;
wherein the processing of data by at least some of the functional units includes transferring the state information regarding at least one of the functional units to another of the functional units.
-
-
72. A massively parallel data processing apparatus comprising:
-
a plurality of computing cells arranged in a multidimensional matrix, the plurality of computing cells capable of simultaneously manipulating a plurality of data, each of the plurality of computing cells including;
an input interface for receiving a plurality of input signals, a plurality of logic members, at least one of the plurality of logic members coupled to the input interface, at least one coupling unit selectively coupling at least one of the plurality of logic members to another of the plurality of logic members a function of at least one of a plurality of configuration signals, a cell configuration memory adapted to store the at least one of the plurality of configuration signals, a register unit selectively storing a portion of the processed input signals, and an output interface for transmitting the processed input signals, wherein the input interface of at least one of the plurality of computing cells is selectively coupled to the output interface of at least another of the plurality of computing cells; and
a configuration interface for transmitting the plurality of configuration signals to at least some of the plurality of computing cells to arithmetic-logically configure and arithmetic-logically reconfigure the at least some of the plurality of computing cells;
wherein each the plurality of computing cells includes associated internal state information, each of the plurality of computing cells being configured to enable transfer of the state information to at least one other of the plurality of computing cells.
-
Specification