Cellular array processor with individual cell-level data-dependent cell control and multiport input memory
AssigneeAlcatel USA, Inc.
InventorSteven G. Morton
Life of this patent
Estimating the term…
Abstract
In an array of processing cells arranged as a single instruction multiple data processor, each processing cell contains logic which enables the cell to determine individually whether it will perform an arithmetic or logic operation or be in an idle condition. This cell-level logic includes a control register whose contents determine the operating or idle condition of the cell, and also includes PUSH/POP/COMPLEMENT stack mechanisms to represent multiple complex levels of conditions, and mechanisms to load the results of a cell-level test or arithmetic instruction into the control register, providing data-dependent control at the cell level.
Claims13
In a processor array of the type including a plurality of individual processing cells arranged in a N.times.M matrix, having M columns and N rows, with said processing cells each connected to neighboring cells in the vertical and horizontal directions to form said array, with said array being coupled to a controller for providing instructions to said array with said controller coupled to a program memory for storage of data and instructions, with said controller being further coupled to inputs of an address generator having outputs coupled to said array for accessing groups of cells in said array, the combination therewith of a processing cell structure for inclusion in said array said processing cell comprising:
- memory means having multiple input ports each for receiving separate input data from said controller and a plurality of output ports,
- an arithmetic logic unit (ALU) having a plurality of input ports each separate one coupled to an output port of said memory means, with said arithmetic logic unit having an output port,
- first register means coupled to said output port of said ALU for determining the status of said cell and for providing status data,
- second register means coupled to said first register means and said controller and operative to receive instructions from said controller and status data from said first register means to store therein a code indicative of an operating condition for said cell said operating condition being selected from an active condition and an idle condition for said cell, whereby said cell has the ability to operate or remain idle depending upon the status data from the first register means and instructions received from said controller.
In a processor array of the type including a plurality of individual processing cells arranged in a N.times.M matrix, having M columns and N rows, with said processing cells each connected to neighboring cells in the vertical and horizontal directions to form said array, with said array being coupled to a controller for providing instructions to said array with said controller coupled to a program memory for storage of data and instructions, with said controller being further coupled to inputs of an address generator having outputs coupled to said array for accessing groups of cells in said array, the combination therewith of a processing cell structure for inclusion in said array said processing cell comprising:
- memory means having multiple input ports each for receiving separate input data from said controller and a plurality of output ports,
- an arithmetic logic unit (ALU) having a plurality of input ports each separate one coupled to an output port of said memory means, with said arithmetic logic unit having an output port,
- register means coupled to said output port of said ALU for determining the status of said cell,
- a control register coupled to said register means and said controller and operative to receive data and instruction from said controller and said register means to store therein as first code indicative of an operating condition for said cell and a second code indicative of an idle condition for said cell, said control register having a first input designated as a POP input for shifting to the right a received binary number and a second input designated as a PUSH input for shifting to the left a test condition result, whereby said cell has the ability to operate or remain idle depending on said data and instructions received.
In a processor array of the type including a plurality of individual processing cells arranged in a N.times.M matrix, having M columns and N rows, with said processing cells each connected to neighboring cells in the vertical and horizontal directions to form said array, with said array being coupled to a controller for providing instructions to said array with said controller coupled to a program memory for storage of data and instructions, with said controller being further coupled to inputs of an address generator having outputs coupled to said array for accessing groups of cells in said array, the combination therewith of a processing cell structure for inclusion in said array said processing cell comprising:
- memory means having multiple input ports each for receiving separate input data from said controller and a plurality of output ports;
- an arithmetic logic unit (ALU) having a plurality of input ports each separate one coupled to an output port of said memory means, with said arithmetic logic unit having an output port;
- first register means coupled to said output port of said ALU for determining the status of said cell and for providing status data;
- second register means coupled to said first register means and said controller and operative to receive instructions from said controller and status data from said first register means to store therein a code indicative of an operating condition for said cell, said operating condition being selected from an active condition and an idle condition for said cell, whereby said cell has the ability to operate or remain idle depending upon the status data from the first register means and instructions received from said controller;
- and
- an array memory having stored therein a number of masks, said number corresponding to the sum of the square of the number of processing cells in a row and the square of the number of processing cells in a column of said array, said controller being operative to select any desired one of said masks by transmitting an address to said saddress generator, whereby any desired cells may be accessed through the selection of the proper mask.
In a processing array of the type including a plurality of individual processing cells arranged in a N.times.M matrix, having M columns and N rows, with said processing cells each connected to neighboring cells in the vertical and horizontal directions to form said array, with said array being coupled to controller for providing instructions to said array with said controller coupled to a program memory for storage of data and instructions, with said controller being further coupled to inputs of an address generator having outputs coupled to said array for accessing groups of cells in said array, the combination therewith of a processing cell structure for inclusion in said array said processing cell comprising:
- memory means having multiple input ports each for receiving separate input data from said controller and a plurality of output ports;
- an arithmetic logic unit (ALU) having a plurality of input ports each separate one coupled to an output port of said memory means, with said arithmetic logic unit having an output port;
- first register means coupled to said output port of said ALU for determining the status of said cell and for providing status data, said first register means including a status register for storing therein the result of an arithmetic operation implemented by said ALU comprising carry, negative zero and overflow;
- second register means coupled to said first register means and said controller and operative to receive instructions from said controller and status data from said first register means to store therein a code indicative of an operating condition for said cell, said operating condition being selected from an active condition and an idle condition for said cell, whereby said cell has the ability to operate or remain idle depending upon the status data from the first register means and instructions received from said controller;
- and
- a programmable logic array for decoding the status of the status data from said status register, the selected state being chosen by the controller with an output coupled to said second register.
Dependencies are inferred from the claim text.