High-speed, parallel, processor architecture for front-end electronics, based on a single type of ASIC, and method use thereof
First Claim
1. A processor complex for processing data from at least one input, comprising:
- at least a first and second processor, each having a data input and a data output, a data input of the second processor receiving data from the data output of the first processor;
each processor being programmed with a respective algorithm for processing data received from a respective data input;
said first processor being configured to receive raw data and process the raw data according to the respective algorithm programmed therein, and configured to receive other raw data and pass said other raw data to said second processor; and
said second processor being configured to receive said other raw data passed from said first processor and process the other raw data according to the algorithm programmed in said second processor, and said second processor is configured to receive processed data from said first processor and pass the processed data from the data input to the data output of said second processor.
1 Assignment
0 Petitions
Accused Products
Abstract
An array of processors, each having a data input for receiving raw data, and other data input ports for receiving data for other processors of the plurality. Each processor processes data according to an algorithm programmed therein, and either passes the processed data or raw data to the other processors. By using a three dimensional array of processors, data from a large number of inputs can be processed in a high speed manner and funneled to a smaller number of outputs. An efficient microcode and processor architecture allows high speed processing of data using very few clock cycles, and can pass raw data to another processor in a single clock cycle.
-
Citations
39 Claims
-
1. A processor complex for processing data from at least one input, comprising:
-
at least a first and second processor, each having a data input and a data output, a data input of the second processor receiving data from the data output of the first processor; each processor being programmed with a respective algorithm for processing data received from a respective data input; said first processor being configured to receive raw data and process the raw data according to the respective algorithm programmed therein, and configured to receive other raw data and pass said other raw data to said second processor; and said second processor being configured to receive said other raw data passed from said first processor and process the other raw data according to the algorithm programmed in said second processor, and said second processor is configured to receive processed data from said first processor and pass the processed data from the data input to the data output of said second processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for processing and funneling data from an event sensor array having a plurality of sensor outputs, comprising the steps of:
-
providing at least one array stack of data processors, each said data processor stack comprising at least one layer of processors and each processor having a data input receiving data that is output from a respective said sensor, each said data processor being programmed to process the sensor data input thereto according to an algorithm, and each said data processor having a data output for providing processed data therefrom; and providing a pyramid of processors, a base layer thereof having a routing processor with a data input coupled to a data output of a processor in the array stack, and ones of routing processors providing an output to other routing processors, and a fewer number of said routing processors by a reduction factor of four to one providing output data which comprises all of the processed data input to the pyramid, whereby funneling of processed data is carried out, the reduction factor from one layer of said pyramid to a subsequent layer allows logical and arithmetic operations on the data to be routed and carried out in less than about twenty clock cycles. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. In a medical environment, a method of processing data generated by a multi-element sensor detecting emissions from a patient, comprising the steps of:
-
producing a data output from said sensor at a rate of about 50 MHz; converting the data generated by the sensor elements to corresponding digital signals and producing a plurality of parallel digital output signals; inputting the parallel digital output signals to a plurality of data processors; processing the digital output signals in parallel with the data processors to produce a plurality of processed data outputs; and funneling the processed data to a pyramid of processors from four processors to one processor without exceeding twenty clock cycles for each reduction of four to one in proceeding in one of the pyramid layers to a subsequent layer by applying the parallel processed data to a plurality of processors of the pyramid and transferring the processed data to multi-ported neighbor processors so that an output of the pyramid provides serialized processed data corresponding to the parallel data input to the pyramid. - View Dependent Claims (26)
-
-
27. In a high energy particle detector, a method of processing data generated by a multi-element sensor detecting particles, comprising the steps of:
-
producing a data output from said sensor at a rate of about 50 MHz; converting the data generated by the sensor elements to corresponding digital signals, and producing a plurality of parallel digital output signals; inputting the parallel digital signals to a plurality of data processors; processing the digital signals in parallel with the data processors to produce a plurality of processed data outputs; and funneling the processed data to a pyramid of processors from four processors to one processor without exceeding twenty clock cycles for each reduction of four to one in proceeding in one layer of the pyramid to a subsequent layer by applying the parallel processed data to a plurality of processors of the pyramid and transferring the processed data to multi-ported neighbor processors so that an output of the pyramid provides serialized processed data corresponding to the parallel data input to the pyramid. - View Dependent Claims (28)
-
-
29. A method for processing parallel raw data provided at an input data rate on the order of hundreds of megahertz, comprising the steps of:
-
coupling the parallel raw data to a respective number of parallel data processors; transferring the raw data received by each processor to a neighbor processor, and receiving by each processor transferred raw data from a neighbor processor within a maximum of two clock cycles; processing by each processor according to a programmable algorithm the coupled raw data and the transferred raw data according to an algorithm; and while one or more of said processors are carrying out the data processing algorithm, switching new coupled raw data by a busy processor to an idle processor for processing the switched raw data. - View Dependent Claims (30, 31, 32, 33)
-
-
34. A method of processing parallel raw data, comprising the steps of:
-
arranging a plurality of data processors in an x-y array so as to define a stage; arranging a plurality of said stages so as to define a stack of processors; applying the parallel raw data to processors of a first processor stage; exchanging the raw data received by each processor in a stage with neighbor processors and processing by each processor in the stage the applied parallel raw data with the exchanged raw data according to a data processing algorithm, and passing data results to a processor in a second stage; receiving by a processor in said second stage the data results and receiving the parallel raw data by processors in the second stage and exchanging the parallel raw data with neighbor processors in said second stage and switching the data results received from the first stage by said processors in said second stage to an output of the stack of processors; and configuring each said processor in a programmable manner so as to be able to input data thereto and process the data or to switch the data input thereto through the processor without processing. - View Dependent Claims (35, 36, 37, 38, 39)
-
Specification