Counter-based multiplication using processing in memory
AssigneeMicron Technology, Inc.
InventorDmitri Yudanov
Life of this patent
Estimating the term…
Abstract
The present disclosure is directed to systems and methods for a memory device such as, for example, a Processing-In-Memory Device that is configured to perform multiplication operations in memory using a popcount operation. A multiplication operation may include a summation of multipliers being multiplied with corresponding multiplicands. The inputs may be arranged in particular configurations within a memory array. Sense amplifiers may be used to perform the popcount by counting active bits along bit lines. One or more registers may accumulate results for performing the multiplication operations.
Claims23
A system comprising:
- at least one memory device;
- at least one memory array of a memory device;
- a plurality of memory cells of the at least one memory array, the plurality of memory cells accessible via a plurality of bit lines and a plurality of word lines, wherein at least one multiplicand is stored in the memory array and at least one multiplier is stored in the memory device;
- the at least one memory device being configured to:
- generate a sum of the at least one multiplicand based on a plurality of popcount operations performed on the at least one multiplicand, wherein each of the plurality of popcount operations is configured to determine a total number of high bits present in a single word line of the plurality of word lines;
- and
- generate a multiplication result based on the sum and by sequencing through bits of the multiplier.
A system comprising:
- at least one memory device;
- at least one memory array of a memory device;
- a plurality of memory cells of the at least one memory array, the plurality of memory cells accessible via a plurality of bit lines and a plurality of word lines, wherein at least one multiplicand is stored in the memory array and at least one multiplier corresponding to the at least one multiplicand is stored in at least one bit line of the plurality of bit lines in the memory array;
- and
- the memory device is further configured to generate a dot product result of the at least one multiplicand and the at least one multiplier based on a plurality of popcount operations performed on the at least one multiplicand, wherein the plurality of popcount operations are selectively performed by sequencing through bits of the at least one multiplier stored in the at least one bit line of the plurality of bit lines.
A method comprising:
- storing a plurality of multiplicand and corresponding multipliers in a memory device, the memory device comprising a plurality of memory cells accessible via a plurality of bit lines and a plurality of word lines;
- generating a dot product result by summing multiplications of each multiplicand and corresponding multiplier, wherein the dot product result is generated by:
- sequencing through positions of bits of the multipliers;
- selectively applying a plurality of popcount operations on the multiplicands based on the bit value of a current bit position of a corresponding multiplier to generate a popcount result, wherein each one of the plurality of popcount operations is performed on bits of a single word line of the at least one memory array;
- and
- selectively accumulating the at least one popcount result;
- wherein the dot product result is generated upon completing the sequencing.
A method comprising:
- storing at least one summand in a memory array of a memory device, the memory array comprising a plurality of memory cells accessible via a plurality of bit lines and a plurality of word lines;
- generating a fused multiply-accumulation result by multiplying a multiplier by the popcount result of the at least one summand and accumulating it to the sum;
- generating a popcount result by applying a plurality of popcount operations on the at least one summand, wherein each one of the plurality of popcount operations is performed on only one bit of each of the at least one summand;
- and
- selectively accumulating a current sum value with the popcount result by sequencing through at least one bit of the multiplier;
- wherein the fused multiply-accumulation result is generated upon completing the sequencing through the at least one bit of the multiplier.
A system comprising:
- at least one memory device;
- at least one memory array of a memory device;
- a plurality of memory cells of the at least one memory array, the plurality of memory cells accessible via a plurality of bit lines and a plurality of word lines, wherein at least one multiplicand is stored in the memory array and at least one multiplier corresponding to the at least one multiplicand is stored in the memory array;
- and
- the memory device is further configured to generate a dot product result of the at least one multiplicand and the at least one multiplier based on a plurality of popcount operations performed on the at least one multiplicand, wherein the plurality of popcount operations are selectively performed by sequencing through bits of the at least one multiplier, wherein the at least one multiplier is stored along odd-numbered bit lines, and wherein the at least one multiplicand is stored along even-numbered bit lines.
A method comprising:
- storing a plurality of multiplicand and corresponding multipliers in a memory device, the memory device comprising a plurality of memory cells accessible via a plurality of bit lines and a plurality of word lines;
- generating a dot product result by summing multiplications of each multiplicand and corresponding multiplier, wherein the dot product result is generated by:
- sequencing through positions of bits of the multipliers;
- selectively applying a plurality of popcount operations on the multiplicands based on the bit value of a current bit position of a corresponding multiplier to generate a popcount result;
- and
- selectively accumulating the at least one popcount result;
- wherein the dot product result is generated upon completing the sequencing
- wherein the multipliers are stored along odd-numbered bit lines, and
- wherein the multiplicands are stored along even-numbered bit lines.
Dependencies are inferred from the claim text.