IP Library Granted Patent US 11,579,812
Granted Patent B2
US 11,579,812 · App. 17/837,858 · Granted Feb 14, 2023

Local data compaction for integrated memory assembly

Inventors: Rakesh Balakrishnan (Bangalore, IN); Eldhose Peter (Bangalore, IN); Akhilesh Yadav (Bangalore, IN)
Assignee: Western Digital Technologies, Inc.
G06F3/0659G06F3/0608G06F3/0679G06F11/1076G06F13/1668G06F13/4027G11C16/10G11C16/26H01L25/18G11C16/0483
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 11,579,812
App. No.
17/837,858
Granted
Feb 14, 2023
Kind
B2
Abstract

An integrated memory assembly comprises a memory die and a control die bonded to the memory die. The memory die includes a memory structure of non-volatile memory cells. The control die is configured to program user data to and read user data from the memory die in response to commands from a memory controller. To utilize space more efficiently on the memory die, the control die compacts fragmented data on the memory die.

Claims (69)

1. A method, comprising:

a control die that is bonded to a memory die receiving a data compaction command, a source block address, a destination block address and a validity map from a memory controller via a communication pathway between the control die and the memory controller, the memory die comprises non-volatile memory cells;

the control die performing a sensing operation on the memory die to sense a first set of data from a source block corresponding to the source block address without being instructed by the memory controller of the address of the first set of data;

based on the validity map, the control die choosing valid fragments of the first set of data and storing the chosen valid fragments of the first set of data on the control die;

the control die performing a sensing operation on the memory die to sense a second set of data from the source block without being instructed by the memory controller of the address of the second set of data;

based on the validity map, the control die choosing valid fragments of the second set of data and storing the chosen valid fragments of the second set of data on the control die;

the control die combining one or more of the valid fragments of the first set of data and one or more of the valid fragments of the second set of data to form a compacted set of data; and

the control die programming the compacted set of data to a destination block corresponding to the destination block address.

2. The method of claim 1 , further comprising:

the control die decoding the valid fragments of the first set of data to reduce errors in the valid fragments of the first set of data without transferring the valid fragments of the first set of data to the memory controller.

3. The method of claim 1 , further comprising:

the control die determining a measure of error for the valid fragments of the first set of data, the control die combining one or more of the valid fragments of the first set of data and one or more of the valid fragments of the second set of data to form the compacted set of data and programming the compacted set of data without decoding and re-encoding the valid fragments of the first set of data if the measure of error is less than a first threshold; and

the control die decoding the valid fragments of the first set of data to reduce errors in the valid fragments of the first set of data and re-encoding the valid fragments of the first set of data prior to the combining if the measure of error is greater than the first threshold.

4. The method of claim 1 , further comprising:

the control die determining a measure of error for the valid fragments of the first set of data, the control die combining one or more of the valid fragments of the first set of data and one or more of the valid fragments of the second set of data to form the compacted set of data and programming the compacted set of data without decoding and re-encoding the valid fragments of the first set of data if the measure of error is less than a first threshold;

the control die decoding the valid fragments of the first set of data to reduce errors in the valid fragments of the first set of data and re-encoding the valid fragments of the first set of data prior to the combining if the measure of error is greater than the first threshold and less than a second threshold; and

the control die transferring the valid fragments of the first set of data to the memory controller for the memory controller to decode the valid fragments of the first set of data and receiving the re-encoded valid fragments of first set of data with a smaller number of errors from the memory controller prior to the combining if the measure of error is greater than the second threshold.

5. The method of claim 4 , wherein:

the measure of error is syndrome weight.

6. The method of claim 1 , further comprising:

the control circuit storing the compacted set of data on the control die prior to the programming of the compacted set of data to the destination block.

7. The method of claim 1 , wherein:

the first set of data, the second set of data and the compacted set of data are pages of data that comprise fragments.

8. The method of claim 1 , wherein:

the compacted set of data comprises all valid data with no gaps of invalid data.

9. The method of claim 1 , further comprising:

the control circuit die fetching the validity map from the memory die.

10. The method of claim 1 , further comprising:

the control circuit receiving from the memory controller an indication of a location in the non-volatile memory cells of the validity map; and

the control circuit die fetching the validity map from the location in the non-volatile memory cells.

11. A method, comprising:

a control die that is directly connected to a memory die receiving a data compaction command, the memory die comprises a memory structure of non-volatile memory cells;

the control die receiving an indication of a source section of the memory structure on the memory die;

the control die performing a sensing operation on the memory die to sense a first set of data from the source section of the memory structure on the memory die;

the control die choosing valid portions of the first set of data and storing the chosen valid portions of the first set of data on the control die;

the control die performing a sensing operation on the memory die to sense a second set of data from the source section of the memory structure on the memory die;

the control die choosing valid portions of the second set of data and storing the chosen valid portions of the second set of data on the control die;

the control die combining valid portions of the first set of data with valid portions of the second set of data to form a compacted set of data; and

the control die programming the compacted set of data to a destination block.

12. The method of claim 11 , further comprising:

the control die decoding at least a portion of the first set of data to reduce errors in the first set of data without transferring the first set of data to the memory controller.

13. The method of claim 11 , further comprising:

the control die determining a measure of error for the valid portions of the first set of data, the control die combining valid portions of the first set of data with valid portions of the second set of data to form the compacted set of data and programming the compacted set of data without decoding and re-encoding the valid portions of the first set of data if the measure of error is less than a first threshold; and

the control die decoding the valid portions of the first set of data to reduce errors in the valid portions of the first set of data and re-encoding the valid portions of the first set of data prior to the combining if the measure of error is greater than the first threshold.

14. The method of claim 13 , wherein:

the measure of error is syndrome weight.

15. The method of claim 11 , further comprising:

the control die determining a measure of error for the valid portions of the first set of data, the control die combining valid portions of the first set of data with valid portions of the second set of data to form the compacted set of data and programming the compacted set of data without decoding and re-encoding the valid portions of the first set of data if the measure of error is less than a first threshold;

the control die decoding the valid portions of the first set of data to reduce errors in the valid portions of the first set of data and re-encoding the valid portions of the first set of data prior to the combining if the measure of error is greater than the first threshold and less than a second threshold; and

the control die transferring the valid portions of the first set of data to the memory controller for the memory controller to decode the valid portions of the first set of data and receiving the re-encoded valid portions of the first set of data with a smaller number of errors from the memory controller prior to the combining if the measure of error is greater than the second threshold.

16. The method of claim 11 , wherein:

the first set of data, the second set of data and the compacted set of data are pages of data that comprise fragments;

the control die choosing valid portions of the first set of data and choosing valid portions of the second set of data comprises the control die choosing valid fragments from the first set of data and choosing valid fragments from the second set of data; and

the control die combining valid portions of the first set of data with valid portions of the second set of data comprises adding the chosen valid fragments from the first set of data to the chosen valid fragments from the second set of data to form a new page of data as the compacted set of data.

17. A method, comprising:

a memory controller sending a compaction command to a control die of an integrated memory assembly, the integrated memory assembly is separate from and in communication with the memory controller, the integrated memory assembly comprises a memory die that includes a three dimensional memory structure of non-volatile memory cells and the control die bonded to the memory die, the control die has a first interface for communicating with the memory controller and a second interface for communicating with the memory die, the second interface is wider than the first interface;

the memory controller sending an indication of a source section of the non-volatile memory cells to the control die;

the control die reading pages of data from the source section in response to the compaction command, the pages of data read have gaps in valid data;

the control die choosing valid data from the pages of data read;

the control die assembling the chosen valid data to form a new page of data that does not contain gaps in valid data; and

the control die programming the new page of data that does not contain gaps in valid data into a destination section of the non-volatile memory cells without transferring the new page to the memory controller.

18. The method of claim 17 , wherein the source section is a source block of the non-volatile memory cells, the method further comprising:

the memory controller identifying that the source block needs compaction based on validity map, the validity map indicates which fragments of the source block are valid; and

the control die using the validity map to choose the valid data from the pages of data read.

19. The method of claim 18 , further comprising:

the memory controller accessing the validity map from the three dimensional memory structure of non-volatile memory cells on the memory die via the control die.

20. The method of claim 17 , wherein:

the control die choosing valid data from the pages of data read based comprises the control die choosing valid fragments from the pages of data read; and

the control die assembling the chosen valid data to form the new page of data comprises adding the chosen valid fragments to the new page.

Assignments (8)
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 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2022
From: BALAKRISHNAN, RAKESH; PETER, ELDHOSE; YADAV, AKHILESH
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 060184/0141 →
Cited By (2)
US 12,388,065 US 12,525,297