Self-reconfigurable parallel processor made from regularly-connected self-dual code/data processing cells
First Claim
1. A programmable logic device comprising:
- (a) a first plurality of input channels,(b) a means of computing the value of a binary state variable from said first plurality of input channels,(c) an internal storage memory accessible as either a serial read serial write shift register or as a parallel read random access memory, depending on the value of said binary state variable,(d) a second plurality of input channels which correspond one to one with said first plurality of input channels,(e) a means of combining said first plurality of input channels and said second plurality of input channels to specify serial input data for said shift register,(f) a means of addressing said random access memory using said second plurality of input channels,(g) a plurality of output channels, each of which correspond to either one of said first plurality of input channels or one of said second plurality of input channels,(h) a means of setting the values of said plurality of output channels by combining said first plurality of input channels with either the serial output or parallel outputs of said internal storage memory, depending on the value of said binary state variable, and(i) a means of shifting said shift register'"'"'s contents based on the value of said binary state variable and an externally applied dock,whereby said programmable logic device can map inputs to output via said internal storage memory, or can present the contents of said memory to certain of its outputs and can load the contents of said memory from certain of its inputs.
1 Assignment
0 Petitions
Accused Products
Abstract
A parallel processing system composed of a regular array of programmable logic devices, each of which can be configured to perform any logical mapping from inputs to outputs. The configuration of each device is specified by a small program memory contained inside each device. Any device'"'"'s program memory can be read or written by any other device connected to it within the array. This facilitates the development of extremely parallel systems whose configuration can be modified at runtime, while distributing control of the array throughout the entire array itself. The resulting system is thus completely self-reconfigurable, avoiding the bottlenecks and critical failure points found in inherently externally-configured systems.
-
Citations
17 Claims
-
1. A programmable logic device comprising:
-
(a) a first plurality of input channels, (b) a means of computing the value of a binary state variable from said first plurality of input channels, (c) an internal storage memory accessible as either a serial read serial write shift register or as a parallel read random access memory, depending on the value of said binary state variable, (d) a second plurality of input channels which correspond one to one with said first plurality of input channels, (e) a means of combining said first plurality of input channels and said second plurality of input channels to specify serial input data for said shift register, (f) a means of addressing said random access memory using said second plurality of input channels, (g) a plurality of output channels, each of which correspond to either one of said first plurality of input channels or one of said second plurality of input channels, (h) a means of setting the values of said plurality of output channels by combining said first plurality of input channels with either the serial output or parallel outputs of said internal storage memory, depending on the value of said binary state variable, and (i) a means of shifting said shift register'"'"'s contents based on the value of said binary state variable and an externally applied dock, whereby said programmable logic device can map inputs to output via said internal storage memory, or can present the contents of said memory to certain of its outputs and can load the contents of said memory from certain of its inputs. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A collection of programmable devices, each connected to a set of identical neighboring programmable devices according to a predetermined notion of neighborhood and a predetermined interconnection scheme, where each said programmable device comprises:
-
(a) a first plurality of input channels, (b) a means of computing the value of a binary state variable from said first plurality of input channels, (c) an internal storage memory accessible as either a serial read serial write shift register or as a parallel read random access memory, depending on the value of said binary state variable, (d) a second plurality of input channels which correspond one to one with said first plurality of input channels, (e) a means of combining said first plurality of input channels and said second plurality of input channels to specify serial input data for said shift register, (f) a means of addressing said random access memory using said second plurality of input channels, (g) a plurality of output channels, each of which correspond to either one of said first plurality of input channels or one of said second plurality of input channels, (h) a means of setting the values of said plurality of output channels by combining said first plurality of input channels with either the serial output or parallel outputs of said internal storage memory, depending on the value of said binary state variable, and (i) a means of shifting said shift register'"'"'s contents based on the value of said binary state variable and an externally applied dock. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A configuration of two programmable devices, called a replicator and a source, each comprising:
-
(a) a first plurality of input channels, (b) a means of computing the value of a binary state variable from said first plurality of input channels, (c) an internal storage memory accessible as either a serial read serial write shift register or as a parallel read random access memory, depending on the value of said binary state variable, (d) a second plurality of input channels which correspond one to one with said first plurality of input channels, (e) a means of combining said first plurality of input channels and said second plurality of input channels to specify serial input data for said shift register, (f) a means of addressing said random access memory using said second plurality of input channels, (g) a plurality of output channels, each of which correspond to either one of said first plurality of input channels or one of said second plurality of input channels, (h) a means of setting the values of said plurality of output channels by combining said first plurality of input channels with either the serial output or parallel outputs of said internal storage memory, depending on the value of said binary state variable, and (i) a means of shifting said shift register'"'"'s contents based on the value of said binary state variable and an externally applied clock, with certain of the inputs of the replicator connected to certain of the outputs of the source, and certain of the outputs of the replicator connected to certain of the inputs of the source, such that; (j) the replicator can, under certain conditions, assert one of the source'"'"'s said first plurality of input channels, to cause the source'"'"'s internal storage memory to act as a shift register, (k) the output of the source'"'"'s internal storage memory is passed to one of the replicator'"'"'s said second plurality of input channels, (l) the replicator'"'"'s internal storage memory is preconfigured such that the data entering said one of the replicator'"'"'s said second plurality of input channels is transferred to one or more of the replicator'"'"'s output channels under certain combinations of inputs on the replicator'"'"'s other inputs, whereby the contents of the source'"'"'s internal storage memory is presented on one or more of the replicator'"'"'s outputs, one bit at a time, in synchronization with the clock input to the source. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification