Method and apparatus for performing neighborhood operations on a processing plane
First Claim
1. Apparatus for performing operations on analog data obtained from a portion of a processing plane, said portion organizable into N rows, where N is an integer greater than one, and M columns, where M is an integer greater than one, said rows and columns forming intersections, said processing plane having information elements at the intersections of selected ones of said rows and columns, said apparatus including:
- storage means for temporarily storing analog data from information elements at M columns and n contiguous rows of said processing plane, where 1<
n<
N, said rows identifiable by n successive integers between 1 and N, to form a n×
M operation plane,n×
m sources of weighting information, associated with a process to be performed on a neighborhood of said processing plane, said neighborhood comprising a plurality of elements arranged as a local subset of n rows and m columns of said processing plane, where 1<
m<
M, said sources of weighting information mapped with a one to one correspondence to the elements of said neighborhood,combining means for simultaneously combining said n×
m sources of weighting information with selected n×
m neighborhoods of said n×
M operation plane, said combining means adapted to associate said sources of weighting information with said analog data such that the row order of the weighting information corresponds to the row order of the analog data and the same weight is used for the same relative position within each of said neighborhoods.
5 Assignments
0 Petitions
Accused Products
Abstract
The present invention is a method and apparatus for performing neighborhood processing operations on an n dimensional processing plane. In a simple, two dimensional, example, an M by N processing plane is successively scanned by rows. The output information from each row is presented on column lines. The analog data resulting from a fixed number of successive scans are temporarily held in a multi-stage analog buffer. A computing array is configured to perform the neighborhood operations or other limited co-operand operations on the shifted data. The computing array examines information from a slice made up of selected numbers of successive rows of the entire array, performs the operations on that portion, and provides a series of output signals representative of the result. The analog buffer is pipelined; information from a new row represents only a single row of new data and the contents of the latch stage containing the oldest information is replaced with this new analog data, causing the information from the transducers of the oldest row to be lost. The operation is then performed on the new slice. This sequence is repeated until all representative slices of the total array have had the neighborhood operations performed on them.
-
Citations
19 Claims
-
1. Apparatus for performing operations on analog data obtained from a portion of a processing plane, said portion organizable into N rows, where N is an integer greater than one, and M columns, where M is an integer greater than one, said rows and columns forming intersections, said processing plane having information elements at the intersections of selected ones of said rows and columns, said apparatus including:
-
storage means for temporarily storing analog data from information elements at M columns and n contiguous rows of said processing plane, where 1<
n<
N, said rows identifiable by n successive integers between 1 and N, to form a n×
M operation plane,n×
m sources of weighting information, associated with a process to be performed on a neighborhood of said processing plane, said neighborhood comprising a plurality of elements arranged as a local subset of n rows and m columns of said processing plane, where 1<
m<
M, said sources of weighting information mapped with a one to one correspondence to the elements of said neighborhood,combining means for simultaneously combining said n×
m sources of weighting information with selected n×
m neighborhoods of said n×
M operation plane, said combining means adapted to associate said sources of weighting information with said analog data such that the row order of the weighting information corresponds to the row order of the analog data and the same weight is used for the same relative position within each of said neighborhoods. - View Dependent Claims (2, 3, 4)
-
-
5. Apparatus for performing operations on analog data obtained from a vector of M analog input signals, where M is an integer greater than one, including:
-
n×
M storage elements for temporarily storing analog data, said elements arranged in n rows of M columns each to form an operating plane, each row representing a separate time sample of said input vector,n×
m sources of weighting information, associated with a process to be performed on a plurality of neighborhoods of said operating plane, each of said neighborhoods comprising a plurality of elements arranged as a local subset of n rows and m columns of said operating plane, were 1<
m<
M, said sources of weighting information mapped with a one to one correspondence to the elements of said neighborhood,combining means for simultaneously combining said n×
m sources of weighting information with selected n×
m neighborhoods of said n×
M operating plane, said combining means adapted to combine said sources of weighting information with said analog data such that the row order of the weighting information corresponds to the row order of the analog data and to combine the same source of weighting information with the analog data in the same relative position within each of said neighborhoods. - View Dependent Claims (6, 7, 8)
-
-
9. Apparatus for performing operations on analog data obtained from a vector of M analog input signals, where M is an integer greater than one, including:
-
n×
M storage elements for temporarily storing analog data, said elements arranged in n rows of M columns each to form an operating plane, each row representing a separate time sample of said input vector, said rows identifiable by n successive integers, the order of said integers indicating the relative time at which said data are sampled,means for selectively storing each new sample of said input vector in the row of said storage elements which si presently storing the oldest one of said samples, n×
m sources of weighting information, associated with a process to be performed on a neighborhood of said operating plane, said neighborhood comprising a plurality of elements arranged as a local subset of n rows and m columns of said operating plane, where 1<
m<
M, each said source of weighting information identifiable by a row and column position within said neighborhood with which it will be used,combining means for simultaneously combining said n×
m sources of weighting information with the analog data in selected n×
m neighborhoods of said n×
M operating plane, said combining means adapted to combine each of said n×
m sources of weighting information with the analog data in the corresponding row and column position within each of said neighborhoods.means, responsive to the storage of each new sample and cooperating with said combining means, for associating said sources of weighting information with said analog data in said combining means such that the row order of the weighting information corresponds to the row order of the analog data. - View Dependent Claims (10, 11, 12)
-
-
13. Apparatus for performing operations on analog data obtained from a vector of M analog input signals, where M is an integer greater than one, including:
-
n×
m storage elements for temporarily storing analog data, said elements arranged in n rows of M columns each to form an operating plane, each row representing a separate time sample of said input vector, said rows identifiable by successive integers between 1 and n, the order of said successive integers indicating the relative time at which said data are sampled,means for selectively storing each new sample of said input vector in the row of said storage elements which is presently storing the oldest one of said samples, n×
m sources of weighting information, associated with a process to be performed on a neighborhood of said operating plane, said neighborhood comprising a plurality of elements arranged as a local subset of n rows and m columns of said operating plane, where 1<
m<
M, each said source of weighting information identifiable by a row and column position within said neighborhood with which it will be used, said row positions being identifiable in order by successive integers between 1 and n,a set of m processing elements associated with each of said storage elements, each of said processing elements having a first input connected to the output of one of said storage elements in the same row as the storage element with which it is associated, a second input connected to the source of weighting information corresponding to the row and column location within the neighborhood computed by said processing element, and an output, means, responsive to the storage of each new sample, for re-associating said sources of weighting information with said processing elements such that the order of the successive integers identifying the rows of storage elements and the order of the successive integers identifying the rows of said sources of weighting information connected to the first and second inputs of said processing elements match, means for combining the outputs of all members of all sets of m processing elements within each column in said operating plane. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A parallel process for computing a neighborhood operation on an input vector of analog voltages, said process including the steps of:
-
temporarily storing analog data from said input vector in storage elements arranged in n rows of M columns each, where n and M are integers greater than 1, to form an operating plane, each row representing a separate time sample of said input vector, said rows identifiable by successive integers indicating the relative time at which said data are sampled, selectively storing each new sample of said input vector in the row of said storage elements which is presently storing the oldest one of said samples, providing n×
m sources of weighting information, where m is an integer greater than one, associated with a process to be performed on a set of neighborhoods of said operating plane, each neighborhood in said set comprising a plurality of elements arranged as a local subset of n rows and m columns of said operating plane, where 1<
m<
M, each said source of weighting information identifiable by a row and column position within said neighborhood with which it will be used, said row positions being identifiable in order by successive integers between 1 and n,re-associating said weighting information with said analog data after the storage of each new ample in a manner so as to match the order of the successive integers identifying the rows of storage elements and the order of the successive integers identifying the rows of said sources of weighting information, simultaneously combining each source of weighting information with the corresponding element of stored data within each of said neighborhoods to form a set of intermediate values, simultaneously combining said intermediate values associated with each of said neighborhoods to form a set of final outputs, one such output for each neighborhood.
-
-
19. A parallel process for computing a neighborhood operation on an input vector of analog voltages, said process including the steps of:
-
temporarily storing analog data from said input vector in capacitive storage elements arranged in n rows of M columns each, to form an operating plane, each row representing a separate time sample of said input vector, selectively storing each new sample of said input vector in the row of said storage elements which si presently storing the oldest one of said samples, providing n×
m sources of voltage representing weighting information associated with a computation to be performed on a set of neighborhoods of said operating plane, each neighborhood in said set comprising a plurality of said storage elements arranged as a local subset of n rows and m columns of said operating plane, where 1<
m<
M, each said source of weighting information identifiable by a row and column position within said neighborhood with which it will be used,distributing the output of each said source of weighting information on a conductor passing along the row containing the processing elements with which it will be used, simultaneously combining in a plurality of processing elements each source of weighting information with the corresponding element of stored data within each of said neighborhoods to form an output current, simultaneously summing the output currents associated with all processing elements of each said neighborhoods to form a set of final output currents, one such output current for each neighborhood.
-
Specification