IP Library Granted Patent US 12,242,848
Granted Patent B2
US 12,242,848 · App. 18/202,161 · Granted Mar 4, 2025

Vector population count determination via comparison iterations in memory

Inventor: Sanjay Tiwari (Meridian, ID)
G06F9/3004G06F7/607G06F9/30021G06F9/30036G06F9/30038G06F15/7821G06F15/7839
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,242,848
App. No.
18/202,161
Granted
Mar 4, 2025
Kind
B2
Abstract

Examples of the present disclosure provide apparatuses and methods for determining a vector population count in a memory. An example method comprises determining, using sensing circuitry, a vector population count of a number of fixed length elements of a vector stored in a memory array.

Claims (38)

1. A method, comprising:

determining a vector population count of a number of elements of a vector stored in a memory array, wherein the number of elements of the vector are stored in a portion of a row in the memory array by:

performing a number of comparison iterations in a compute component coupled to the memory array, wherein performing the number of comparison iterations comprises:

determining a reduction vector for each of the number of comparison iterations, wherein determining the reduction vector includes determining a reduction vector width for each of the number of comparison iterations and wherein each of the number of comparison iterations compares a number of bits that correspond to the reduction vector width;

determining a pattern mask for each of the number of comparison iterations; and

performing a half add operation of a first portion and a second portion of the pattern mask for each of the number of comparison iterations.

2. The method of claim 1 , comprising determining a quantity of comparison iterations to perform by calculating log 2 of a number of bits in each of the number of elements.

3. The method of claim 1 , comprising determining an elemental mask for the vector, wherein the elemental mask represents a most significant bit of each of the number of elements.

4. The method of claim 1 , wherein performing the number of comparison iterations includes comparing 2n bits during each respective comparison iteration.

5. The method of claim 1 , wherein performing the number of comparison iterations includes performing a loop that includes shifting a carry of the half add operation to a left one place, and checking for carry values using a BlockOR operation, and performing a second half add operation with the carry values and a sum of the half add operation.

6. An apparatus comprising:

a group of memory cells coupled to a first access line of a memory array and configured to store a number of elements on a portion of the first access line; and

a compute component coupled to the memory array;

wherein the apparatus is configured to:

perform a number of comparison iterations, wherein each of the number of comparison iterations includes:

determining a reduction vector for each of the number of comparison iterations, wherein determining the reduction vector includes determining a reduction vector width for each of the number of comparison iterations and wherein each of the number of comparison iterations compares a number of bits that correspond to the reduction vector width;

determining a pattern mask for each of the number of comparison iterations; and

performing a half add operation of a first portion and a second portion of the pattern mask for each of the number of comparison iterations; and

output a vector population count that indicates how many bits of each of the number of elements have a particular data value in response to performing the number of comparison iterations.

7. The apparatus of claim 6 , wherein the apparatus is configured to determine the number of comparison iterations to perform by calculating log 2 of a number of bits in the number of elements.

8. The apparatus of claim 6 , wherein the apparatus is configured to calculate an output for each of the number of comparison iterations that is used by a subsequent comparison iteration to determine the vector population count.

9. The apparatus of claim 6 , wherein the apparatus is configured to perform at least one of an AND operation, an OR operation, and a SHIFT operation using sensing circuitry to determine the vector population count.

10. An apparatus, comprising:

a group of memory cells coupled to a first access line of a memory array and configured to store a vector comprising a number of elements on a portion of the first access line; and

a compute component coupled to the memory array;

wherein the apparatus is configured to:

perform at least one of an AND operation, an OR operation, and a SHIFT operation using the compute component to determine a vector population count of the number of elements by:

determining a reduction vector for each of a number of comparison iterations, wherein determining the reduction vector includes determining a reduction vector width for each of the number of comparison iterations and wherein each of the number of comparison iterations compares a number of bits that correspond to the reduction vector width;

determining a pattern mask for each of the number of comparison iterations, wherein each of the pattern masks include a first portion of the pattern mask and a second portion of the pattern mask; and

performing a half add operation on the first portion of the pattern mask and the second portion of the pattern mask for each of the number of comparison iterations.

11. The apparatus of claim 10 , wherein the apparatus is configured to output a vector population count for each of the number of elements.

12. The apparatus of claim 10 , wherein the apparatus is configured to determine a most significant bit of each of the number of elements.

13. The apparatus of claim 10 , wherein the apparatus is configured to store elements representing a most significant bit of each of the number of elements as an elemental mask.

14. The apparatus of claim 10 , wherein the apparatus is configured to determine the number of comparison iterations to perform by calculating log 2 of a number of bits in the number of elements.

15. The apparatus of claim 10 , wherein the vector includes 256 bits.

16. The apparatus of claim 15 , wherein the vector includes eight 32 bit elements.

17. The apparatus of claim 15 , wherein the vector includes one 256 bit element.

18. The apparatus of claim 15 , wherein the vector includes four 64 bit elements.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2024
From: MICRON TECHNOLOGY, INC.
To: LODESTAR LICENSING GROUP LLC
Reel/Frame 068806/0637 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2023
From: TIWARI, SANJAY
To: MICRON TECHNOLOGY, INC.
Reel/Frame 063767/0588 →