IP Library Granted Patent US 12711024
Granted Patent B2
US 12711024 · App. 18/914,949 · Granted Aug 18, 2026

Apparatus for allowing the protected mSets to continue to be used during control sync (CS) on the base of shadow uLayer

Inventors: Marina Frid (Jerusalem, IL); Vered Kelner (Gan Haim, IL); Igor Genshaft (Bat Yam, IL)
Assignee: Sandisk Technologies, Inc.
G06F11/1469G06F2201/805
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 12711024
App. No.
18/914,949
Granted
Aug 18, 2026
Kind
B2
Abstract

The apparatus for recovery of protected segments (mSets) at run time or after an ungraceful shutdown (UGSD) event, such as in a host memory buffer (HMB) error case, utilizes a shadow structure (e.g., shadow update layer (uLayer)) that is be stored in the memory device (e.g., flash) in an mBlock and is used only for recovery of protected mSets. The approach also allows significantly increasing a number of protected mSets because the proposed shadow uLayer structure avoids flushing all protected mSets at Control Sync (CS). The expected performance gains and reducing of write amplification of control data cover the overhead costs of processing the shadow structure.

Claims (40)

1 . A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller is configured to:

maintain an update layer (uLayer), wherein the uLayer is configured to maintain updates for non-protected segments (mSets), wherein non-protected mSets remain resident in random access memory (RAM) until a control sync (CS) operation; and

maintain a shadow uLayer, wherein the shadow uLayer is configured to maintain updates for protected mSets, wherein protected mSets are stored in the memory device after consolidation, wherein the controller is configured to perform the CS operation, wherein during the CS operation all non-protected mSets are stored in the memory device, and wherein during the CS operation portions of the shadow uLayer (uSlices) are stored in the memory device.

2 . The data storage device of claim 1 , wherein the shadow uLayer is never searched.

3 . The data storage device of claim 1 , wherein the controller is configured to periodically store a portion of the shadow uLayer (uSlice) in the memory device.

4 . The data storage device of claim 1 , wherein the controller is configured to store the protected mSets in the memory device and invalidate the uSlice.

5 . The data storage device of claim 1 , wherein the controller is configured to balance between storing uSlices in the memory device and protected mSets in the memory device.

6 . A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller is configured to:

maintain an update layer (uLayer), wherein the uLayer is configured to maintain updates for non-protected segments (mSets), wherein non-protected mSets remain resident in random access memory (RAM) until a control sync (CS) operation; and

maintain a shadow uLayer, wherein the shadow uLayer is configured to maintain updates for protected mSets, wherein protected mSets are stored in the memory device after consolidation, wherein a correspondence between regions in the uLayer and the shadow uLayer is not 1:1, and wherein a correspondence between regions in the uLayer and uSlices is not 1:1.

7 . The data storage device of claim 6 , wherein RAM for the uLayer and the shadow uLayer is shared.

8 . The data storage device of claim 7 , wherein the controller is configured to select either the uLayer or the shadow uLayer or both for consolidation upon a determination that there are no free items in the shared RAM.

9 . A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller is configured to:

perform an ungraceful shutdown (UGSD) operation;

power up the device;

detect that a UGSD event occurred; and

perform a UGSD mount operation, wherein the UGSD mount operation comprises load valid uSlices from the memory device to random access memory, wherein uSlices are portions of a shadow update layer (uLayer), and wherein the shadow uLayer is configured to maintain updates for protected RAM segments (mSets), and wherein protected mSets are stored in the memory device after consolidation, wherein the uSlices are loaded one by one.

10 . The data storage device of claim 9 , wherein the uSlices are loaded in chronological order.

11 . The data storage device of claim 10 , wherein the controller is configured to replace headers for the shadow uLayer with copies made during a control sync (CS) operation.

12 . The data storage device of claim 9 , wherein the controller is configured to load a non-shadow uLayer as is during UGSD mount.

13 . The data storage device of claim 12 , wherein the controller is configured to replace headers for the uLayer with copies made during a control sync (CS) operation.

14 . The data storage device of claim 9 , wherein the controller is configured to distribute the RAM for the shadow uLayer and a non-shadow uLayer.

15 . A data storage device, comprising:

means to store data; and

a controller coupled to the means to store data, wherein the controller is configured to:

maintain both an update layer (uLayer) and a shadow uLayer, wherein the uLayer corresponds to non-protected segments (mSets) stored in random access memory (RAM) and the shadow uLayer corresponds to protected mSets;

selectively store portions of the shadow uLayer (uSlices) in the means to store data; and

invalidate uSlices upon storing protected mSets to the means to store data, wherein the controller is configured to accumulate updates for the shadow uLayer in a host memory buffer (HMB).

16 . A data storage device, comprising:

means to store data; and

a controller coupled to the means to store data, wherein the controller is configured to:

maintain both an update layer (uLayer) and a shadow uLayer, wherein the uLayer corresponds to non-protected segments (mSets) stored in random access memory (RAM) and the shadow uLayer corresponds to protected mSets;

selectively store portions of the shadow uLayer (uSlices) in the means to store data; and

invalidate uSlices upon storing protected mSets to the means to store data, wherein the controller is configured to save a uSlice multiple times prior to consolidation of the shadow uLayer.