Patent ID: 8661072

Claim:
A parallel adder tree for counting the number of ones in a datum in two or more separate population count operations, comprising: a plurality of first adder devices included in a first portion of the parallel adder tree that count the number of ones in the datum and that provide a first partial sum of the number of ones in the datum; and a plurality of second adder devices that utilize the first partial sum to count the number of ones in the datum, that provide a plurality of additional partial sums of the number of ones in the datum, and that provide a final sum of the number of ones in the datum for each one of the two or more separate population count operations such that the two or more separate population count operations are performed simultaneously, the plurality of second adder devices including a first plurality of second adder devices included in the first portion of the parallel adder tree and a second plurality of second adder devices included in a second portion of the parallel adder tree different from the first portion; wherein certain ones of the plurality of first adder devices and the first plurality of second adder devices of the first portion are dedicated to provide a certain one or more of the plurality of additional partial sums, and to provide a first final sum of the number of ones in the datum for at least one of the two or more separate population count operations without being shared with the second portion and without further input to additional adders; and wherein certain ones of the plurality of first adder devices included with the first portion of the parallel adder tree are shared with the second plurality of second adder devices included in the second portion of the parallel adder tree to provide a certain one or more of the plurality of additional partial sums and to provide a second final sum for another at least one of the two or more separate population count operations without being further input to additional adders, the second final sum having a value that is a multiple with respect to the value of bits of the first final sum.