IP Library › Granted Patent US 12,230,335
Granted Patent B2
US 12,230,335 · App. 17/838,717 · Granted Feb 18, 2025

Data latch programming algorithm for multi-bit-per-cell memory devices

Inventors: Toru Miwa (Yokohama, JP); Fumiaki Toyama (Cupertino, CA)
Assignee: SANDISK TECHNOLOGIES LLC
G11C16/3459G11C7/1039G11C16/102G11C16/26G11C16/3404
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,230,335
App. No.
17/838,717
Granted
Feb 18, 2025
Kind
B2
Abstract

A multi-stage method for programming an n-bit memory cell array using a fixed number of data latches is disclosed. The fixed number of data latches may be a reduced number of data latches in sense amplifier and data latch (SADL) peripheral circuitry than is required by existing programming techniques. As such, the die area taken up by the SADL circuitry can be reduced, which in turn, reduces overall chip area. The multi-stage programming method may include utilizing a first data latch to receive and store program page data and utilizing a second data latch to store bit information indicating which cells are to be targeted for the multi-stage programming. At each program stage, a respective program loop may be performed with respect to each threshold voltage distribution generated during a prior program stage to create two new threshold voltage distributions from the prior distribution.

Claims (21)

1. A method of multi-stage programming of a multi-bit-per-cell memory array, the method comprising:

receiving first program data corresponding to a first page level into a first data latch;

performing an initial program stage of the multi-stage programming to generate a plurality of threshold voltage distributions from an initial threshold distribution based on the first program data corresponding to the first page level, wherein the initial threshold voltage distribution represents an initial erase state; and

performing one or more additional program stages corresponding to one or more additional page levels, wherein performing each additional program stage comprises receiving additional programming data corresponding to a current additional page level into the first data latch and performing a program loop for each threshold voltage distribution generated during a prior program stage, the performing the program loop comprising splitting the threshold voltage distribution generated during the prior program stage into two new threshold voltage distributions based on data stored in a second data latch and the additional programming data.

2. The method of claim 1 , wherein performing a particular program loop of a current additional program stage for an addressed prior threshold voltage distribution generated during the prior program stage comprises:

determining, based on the data stored in the second data latch, a set of memory cells of the multi-bit-per-cell memory array that is in the addressed prior threshold voltage distribution; and

programming the set of memory cells to shift their threshold voltages to states corresponding to program data currently stored in the first data latch.

3. The method of claim 2 , wherein programming the set of memory cells causes the addressed prior threshold voltage distribution to be split into two new threshold voltage distributions associated with the current additional program stage.

4. The method of claim 3 , wherein each of the two new threshold voltage distributions generated from the addressed prior threshold voltage distribution is shifted towards a higher threshold voltage than a particular prior threshold voltage distribution.

5. The method of claim 2 , wherein determining, based on the data stored in the second data latch, the set of memory cells that is in the addressed prior threshold voltage distribution comprises determining that bit information stored in the second data latch for each memory cell in the set of memory cells comprises a first bit value indicating that the cell has a threshold voltage that falls within the addressed prior threshold voltage distribution.

6. The method of claim 5 , wherein determining the set of memory cells further comprises excluding from the set of memory cells each memory cell associated with bit information in the second data latch comprising a second bit value different from the first bit value.

7. The method of claim 5 , wherein performing the current additional program stage further comprises updating the data stored in the second data latch based on the memory cell programming performed during the particular program loop.

8. The method of claim 5 , wherein updating the data stored in the second data latch comprises updating the bit information corresponding to the set of memory cells to flip each first bit value to a second bit value indicating at least one of: i) that a corresponding cell in the set of memory cells was successfully programmed or ii) that the corresponding cell is not within a next addressed prior threshold voltage distribution associated a next program loop of the current additional program stage.

9. The method of claim 2 , wherein the data stored in the second data latch is internal data load (IDL) information.

10. The method of claim 1 , wherein performing each additional program stage comprises generating a number of new threshold voltage distributions that is twice a number of threshold voltage distributions generated during the prior program stage.

11. A circuit, comprising:

a first data latch configured to receive program data at a corresponding page level; and

a second data latch configured to store bit information indicative of which memory cells of a multi-bit-per-cell memory array to program as part of a multi-stage programming process,

wherein the multi-stage programming process comprises multiple program stages, and

wherein, during a particular program stage, a series of program loops are performed, each program loop comprising identifying a set of memory cells in the multi-bit-per-cell memory array that are within a selected threshold voltage distribution generated during a prior program stage and programming the set of memory cells based on program data for a corresponding page level stored in the first data latch to divide the selected threshold voltage distribution into a plurality of new threshold voltage distributions.

12. The circuit of claim 11 , wherein the multi-stage programming process is performed using only the first data latch and the second data latch among a plurality of data latches contained in the circuit.

Assignments (4)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2022
From: MIWA, TORU; TOYAMA, FUMIAKI
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 060182/0492 →
Continuity (1)
Related Publication 20230402113A1 · Dec 14, 2023
References Cited (8)
US 20080137416A1 · Lee · 2008 [cited by examiner]
US 20080158951A1 · Aritome · 2008 [cited by examiner]
US 20130033938A1 · Park · 2013 [cited by examiner]
US 20150193302A1 · Hyun · 2015 [cited by examiner]
US 20160125922A1 · Chen · 2016 [cited by examiner]
US 20210391012A1 · Masuduzzaman · 2021 [cited by examiner]
US 20230032133A1 · Park · 2023 [cited by examiner]
US 20230091314A1 · Wang · 2023 [cited by examiner]