Patent ID: 7386689

Claim:
An active memory device comprising: a main memory; a plurality of processing elements, each of said plurality of processing elements being associated with a respective portion of said main memory, each of said plurality of processing elements having a single bit data output and a single bit data input; and a plurality of data path circuits, each of said plurality of data path circuits being coupled between said main memory and one of said plurality of processing elements, each of said plurality of data path circuits having a plurality of inputs, a first input of said plurality of inputs being coupled to said single bit output of a respective one of said plurality of processing elements, at least a second input of said plurality of inputs being coupled to a respective one of a plurality of data buses of said main memory, and an output coupled to said single bit input of a respective one of said plurality of processing elements, wherein each of said data path circuits is adapted to receive data from said respective one of said plurality of processing elements a single bit at a time and write said data to said main memory in a horizontal mode, and to receive data stored in said main memory in a horizontal mode and output said data to said respective one of said plurality of processing elements a single bit at a time, wherein each of said data path circuits is further adapted to write data from said plurality of processing elements to said main memory in a vertical mode and read data stored in said main memory in a vertical mode from said main memory to said plurality of processing elements, and wherein each of said plurality of data path circuits further comprises: a first multiplexer having a plurality of inputs, each of said plurality of inputs being coupled to an output of a respective one of a plurality of logic circuits, and an output coupled to said output of said data path circuit; and wherein each of said plurality of logic circuits comprises: a first input, said first input being coupled to said at least a second input of said plurality of inputs of said data path circuit; an output; a second multiplexer having a first input coupled to said first input of said data path circuit and a second input coupled to said input of said logic circuit; a first register having an input coupled to an output of said second multiplexer and an output coupled to said output of said logic circuit; a first tri-state device having an input coupled to said output of said first register and an output coupled to said respective one of said plurality of data buses; and a second tri-state device having an input coupled to said output of said first register and an output coupled to one of said plurality of data buses and a third input of said second multiplexer.