IP Library › Granted Patent US 12,282,423
Granted Patent B2
US 12,282,423 · App. 18/218,271 · Granted Apr 22, 2025

Data storage device and method for intelligent block allocation

Inventors: Manoj M. Shenoy (Kochi, IN); Lakshmi Sowjanya Sunkavelli (Bangalore, IN); Niranjani Rajagopal (Madurai, IN)
Assignee: Sandisk Technologies, Inc.
G06F12/0238G06F3/0619G06F3/064G06F3/0679G06F12/0246
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,282,423
App. No.
18/218,271
Granted
Apr 22, 2025
Kind
B2
Abstract

Some data storage devices select blocks of memory from a free block pool and randomly allocate the blocks as primary and secondary blocks to redundantly store data in a write operation. However, some blocks, such as blocks on the edge of a plane, may not serve well as primary blocks. One example data storage device presented herein addresses this problem by allocating such blocks as secondary blocks instead of primary blocks.

Claims (52)

1. In a data storage device comprising a memory, a method comprising performing as part of a write operation:

identifying block numbers of blocks chosen for use as primary and secondary blocks for the write operation;

determining whether one or both of the blocks are in a specified range of block numbers; and

in response to determining that only one of the blocks is in the specified range of block numbers;

allocating that block as the secondary block and allocating the other block as the primary block;

performing a write operation in which data is written in both the primary block and secondary block, wherein the data written in the secondary block is redundant to the data written in the primary block, wherein the secondary block has a lower program voltage margin than the primary block, and wherein the data is written in the secondary block without shifting a verify-read voltage upward to attempt to compensate for the lower program voltage margin in the secondary block;

performing a post-write read operation on the data written in the primary block; and

in response to a failure of the post-write read operation on the data written in the primary block:

attempting to read the data written in the secondary block by performing a voltage shift to attempt to compensate for the lower program voltage margin;

performing a garbage collection operation on the secondary block to move the data written in the secondary block to another block; and

releasing the secondary block to a free block pool.

2. The method of claim 1 , wherein the plane edge blocks comprise a plurality of zones, wherein at least two of the plurality of zones comprise different numbers of plane edge blocks.

3. The method of claim 1 , wherein the blocks are chosen from the free block pool.

4. The method of claim 1 , wherein the memory comprises a bit column stacked die.

5. The method of claim 1 , wherein the memory comprises a three-dimensional memory array.

6. The method of claim 1 , wherein the data is written in multi-level cell (MLC) memory in the primary and second blocks.

7. The method of claim 1 , further comprising:

in response to determining that both of the blocks are in the specified range of block numbers, randomly allocating one of the blocks as the primary block and the other block as the secondary block.

8. The method of claim 1 , further comprising:

in response to determining that neither of the blocks is in the specified range of block numbers, randomly allocating one of the blocks as the primary block and the other block as the secondary block.

9. A data storage device comprising:

a memory; and

a processor coupled with the memory and configured to perform as part of a write operation:

select blocks from a free block pool for use as primary and secondary blocks for the write operation;

determine whether one or both of the blocks are plane edge blocks;

in response to determining that only one of the blocks is a plane edge block, allocate that block as the secondary block and allocate the other block as the primary block;

write data in both the primary block and secondary block, wherein the data written in the secondary block is redundant to the data written in the primary block, wherein the secondary block has a lower program voltage margin than the primary block, and wherein the data is written in the secondary block without shifting a verify-read voltage upward to attempt to compensate for the lower program voltage margin in the secondary block;

perform a post-write read operation on the data written in the primary block; and

in response to a failure of the post-write read operation on the data written in the primary block:

attempt to read the data written in the secondary block by performing a voltage shift to attempt to compensate for the lower program voltage margin;

perform a garbage collection operation on the secondary block to move the data written in the secondary block to another block; and

release the secondary block to the free block pool.

10. The data storage device of claim 9 , wherein the processor is further configured to:

in response to determining that both of the blocks are plane edge blocks, randomly allocate one of the blocks as the primary block and the other block as the secondary block.

11. The data storage device of claim 9 , wherein the processor is further configured to:

in response to determining that neither of the blocks is a plane edge block, randomly allocate one of the blocks as the primary block and the other block as the secondary block.

12. The data storage device of claim 9 , wherein the plane edge blocks comprise a plurality of zones, wherein at least two of the plurality of zones comprise different numbers of plane edge blocks.

13. The data storage device of claim 9 , wherein the memory comprises a bit column stacked (BiCS) die.

14. The data storage device of claim 9 , wherein the memory comprises a three-dimensional memory array.

15. The data storage device of claim 9 , wherein the data is written in multi-level cell (MLC) memory in the primary and second blocks.

16. A data storage device comprising:

a memory comprising a primary block and a secondary block, wherein the secondary block comprises a plane edge block; and

means for performing as part of a write operation:

selecting blocks from a free block pool for use as primary and secondary blocks for a write operation;

determining whether one or both of the blocks are plane edge blocks;

in response to determining that only one of the blocks is a plane edge block, allocate that block as the secondary block and allocate the other block as the primary block;

writing data in both the primary block and secondary block, wherein the data written in the secondary block is redundant to the data written in the primary block, wherein the secondary block has a lower program voltage margin than the primary block, and wherein the data is written in the secondary block without shifting a verify-read voltage upward to attempt to compensate for the lower program voltage margin in the secondary block;

performing a post-write read operation on the data written in the primary block; and

in response to a failure of a post-write read operation on the data written in the primary block:

attempting to read the data written in the secondary block by performing a voltage shift to attempt to compensate for the lower program voltage margin;

performing a garbage collection operation on the secondary block to move the data written in the secondary block to another block; and

releasing the secondary block to the free block pool.

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 - DDTL Recorded Nov 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065657/0158 →
PATENT COLLATERAL AGREEMENT- A&R Recorded Nov 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065656/0649 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 5, 2023
From: SHENOY, MANOJ M.; SUNKAVELLI, LAKSHMI SOWJANYA; RAJAGOPAL, NIRANJANI
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 064156/0534 →
Continuity (1)
Related Publication 20250013561A1 · Jan 9, 2025
References Cited (18)
US 8737136B2 · Cometti · 2014 [cited by applicant]
US 8874825B2 · Alrod · 2014 [cited by examiner]
US 9141475B2 · Alrod et al. · 2015 [cited by applicant]
US 9836219B2 · Kim et al. · 2017 [cited by applicant]
US 9846554B1 · Lai et al. · 2017 [cited by applicant]
US 9905302B2 · Karakulak et al. · 2018 [cited by applicant]
US 10008278B1 · Shur · 2018 [cited by examiner]
US 10871924B1 · Lin · 2020 [cited by examiner]
US 10984866B2 · Oh · 2021 [cited by applicant]
US 11551761B1 · Yang et al. · 2023 [cited by applicant]
US 20070016721A1 · Gay · 2007 [cited by examiner]
US 20150301755A1 · Chodem · 2015 [cited by examiner]
US 20160092302A1 · Agarwal · 2016 [cited by examiner]
US 20170031612A1 · Ravimohan · 2017 [cited by examiner]
US 20210366875A1 · Di · 2021 [cited by examiner]
US 20220199156A1 · Sharon · 2022 [cited by examiner]
US 20220404966A1 · Kanno · 2022 [cited by examiner]
Gal et al. “Algorithms and Data Structures for Flash Memories.” Jun. 2005. ACM. ACM Computing Surveys. vol. 37. pp. 138-163. [cited by examiner]