IP Library › Granted Patent US 12,197,744
Granted Patent B2
US 12,197,744 · App. 18/447,774 · Granted Jan 14, 2025

Storage of control data information

Inventors: Maharudra Nagnath Swami (Bangalore, IN); G K Divya (Bangalore, IN); Naveen Menezes (Bangalore, IN); Nitin Jain (Bangalore, IN)
Assignee: Sandisk Technologies, Inc.
G06F3/0619G06F3/064G06F3/0679
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,197,744
App. No.
18/447,774
Filed
Aug 10, 2023
Granted
Jan 14, 2025
Kind
B2
Art Unit
2114
USPC
714/6.11
Abstract

Methods for storing control information for memory operations within spare physical blocks. During formatting of a data storage device, spare memory blocks may be identified within memory dies and placed into a spare block pool. Upon initiation of a block exchange event for a control block, a controller determines whether a spare block is available in the spare block pool. When a spare block is available, data from the control block is copied to the spare block to generate a debug block. The control block may be a MasterIndexPage block. When a spare block is not available, the controller may erase information stored in an oldest debug memory block and copy data from the control block to the oldest debug memory block.

Claims (67)

1. A data storage device, comprising:

a memory interface configured to interface with a non-volatile memory, the non-volatile memory including a plurality of memory blocks, wherein the plurality of memory blocks includes a spare block pool of spare blocks and a control block storing control information; and

an electronic processor configured to:

detect initiation of a control block exchange event,

determine, in response to detecting the initiation of the control block exchange event, whether a spare block is available in the spare block pool, and

generate a debug block by copying, in response to determining the spare block is available in the spare block pool, the control information from the control block to the spare block.

2. The data storage device of claim 1 , wherein the electronic processor is further configured to:

reserve the spare block for storing the control information from the control block.

3. The data storage device of claim 1 , wherein the electronic processor is further configured to:

determine, after a formatting operation of the data storage device, whether spare blocks are present within the non-volatile memory,

set, based on whether spare blocks are present within the non-volatile memory, a flag, and

add the spare blocks to the spare block pool.

4. The data storage device of claim 3 , wherein the electronic processor is configured to determine, in response to detecting the initiation of the block exchange event, whether the spare block is available in the spare block pool based on the flag that is set and associated with the spare block.

5. The data storage device of claim 1 , wherein the electronic processor is configured to:

erase data stored in an oldest debug memory block, and

generate a second debug block by copying the control information from the control block to the oldest debug memory block.

6. The data storage device of claim 5 , wherein the electronic processor is configured to:

determine the oldest debug memory block based on a timestamp associated with the oldest debug memory block.

7. The data storage device of claim 1 , wherein the electronic processor is configured to:

determine, in response to detecting the initiation of the control block exchange event, whether a minimum number of spare blocks are available in the spare block pool, and

generate a plurality of debug blocks by copying, in response to determining the minimum number of spare blocks are available in the spare block pool, the control information from the control block to the minimum number of spare blocks.

8. The data storage device of claim 1 , wherein the electronic processor is configured to:

detect a memory failure event;

determine, in response to detecting the memory failure event, whether the spare block is available in the spare block pool; and

link, in response to determining the spare block is available, the spare block to another memory block included in the plurality of memory blocks.

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

erase data stored in an oldest debug memory block, and

add the oldest debug memory block that is erased to the spare block pool.

10. In a Solid State memory device including memory cells and a controller in communication with the memory cells, a method for memory block recycling, the method comprising:

detecting, by the controller, initiation of a control block exchange event, wherein the control block exchange event is initiated when a control block is full;

determining, when the control block is full, whether a spare block is available in a spare block pool; and

generating a debug block by copying, in response to determining the spare block is available in the spare block pool, control information from the control block to the spare block.

11. The method of claim 10 , further comprising:

determining, after a formatting operation of a non-volatile memory, whether spare blocks are present within the non-volatile memory,

setting, based on whether spare blocks are present within the non-volatile memory, a flag, and

add the spare blocks to the spare block pool.

12. The method of claim 11 , further comprising:

determining, in response to the initiation of the block exchange event, whether the spare block is available in the spare block pool based on the flag that is set and associated with the spare block.

13. The method of claim 10 , further comprising:

erasing data stored in an oldest debug memory block, and

generating a second debug block by copying the control information from the control block to the oldest debug memory block.

14. The method of claim 13 , further comprising:

determining the oldest debug memory block based on a timestamp associated with the oldest memory block.

15. The method of claim 10 , further comprising:

determining, in response to detecting the initiation of the control block exchange event, whether a minimum number of spare blocks are available in the spare block pool, and

generating a plurality of debug blocks by copying, in response to determining the minimum number of spare blocks are available in the spare block pool, the control information from the control block to the minimum number of spare blocks.

16. The method of claim 10 , further comprising:

detecting a memory failure event;

determining, in response to detecting the memory failure event, whether the spare block is available in the spare block pool; and

linking, in response to determining the spare block is available, the spare block to another memory block included in a non-volatile memory.

17. The method of claim 10 , further comprising:

erasing data stored in an oldest debug memory block, and

adding the oldest debug memory block that is erased to the spare block pool.

18. A data storage device, comprising:

a memory interface configured to interface with a non-volatile memory, the non-volatile memory including a plurality of memory blocks, wherein the plurality of memory blocks includes a spare block pool of spare blocks, and wherein at least one memory block is a control block storing control information; and

an electronic processor configured to:

identify, during a formatting operation of the non-volatile memory, a spare block,

reserve, during the formatting operation of the non-volatile memory, the spare block for storing the control information from the control block,

add the spare block to the spare block pool,

detect initiation of a control block exchange event, and

generate a debug block by copying, in response to the control block exchange event, the control information from the control block to the spare block in the spare block pool.

19. The data storage device of claim 18 , wherein the electronic processor is further configured to:

erase, when the spare block pool is empty, data stored in an oldest debug memory block, and

generate a second debug block by copying the control information from the control block to the oldest debug memory block.

20. The data storage device of claim 18 , wherein the electronic processor is configured to:

erase, when the spare block pool is empty and a memory failure event is detected, data stored in an oldest debug memory block, and

add the oldest debug memory block that is erased to the spare 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 Aug 10, 2023
From: SWAMI, MAHARUDRA NAGNATH; DIVYA, G K; MENEZES, NAVEEN; JAIN, NITIN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 064554/0465 →
Continuity (2)
Provisional Application 63386943 · Dec 12, 2022
Related Publication 20240192861A1 · Jun 13, 2024
References Cited (9)
US 8040744B2 · Gorobets et al. · 2011 [cited by applicant]
US 8244960B2 · Paley et al. · 2012 [cited by applicant]
US 9588691B2 · Seppanen · 2017 [cited by applicant]
US 9811413B2 · Ojalvo et al. · 2017 [cited by applicant]
US 9811461B1 · Fenol et al. · 2017 [cited by applicant]
US 11100996B2 · Papa et al. · 2021 [cited by applicant]
US 20160071608A1 · Bronner · 2016 [cited by examiner]
US 20170256328A1 · Ouyang · 2017 [cited by examiner]
WO 2008045839A1 · 2008 [cited by applicant]