Programming dummy data or performing flash write on partially programmed memory blocks of virtual blocks
Abstract
A controller may detect an event occurring on a solid state device. The event may include at least one of: a program error on a physical block of a first virtual block, a read error on the physical block, or a power cycle of the solid state drive. The controller may program user data stored in the first virtual block onto a second virtual block based on detecting the event. The controller may include the first virtual block in a pool of virtual blocks scheduled for erase operations. When the first virtual block is in the open state, the controller may program dummy data on the first virtual block prior to performing an erase operation on the virtual block, or perform a flash write operation on the first virtual block prior to performing the erase operation on the virtual block.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method comprising:
detecting an event occurring on a solid state drive,
wherein the event includes at least one of:
a program error on a physical block of a first virtual block,
a read error on the physical block, or
a power cycle of the solid state drive;
programming user data stored in the first virtual block onto a second virtual block based on detecting the event; including the first virtual block in a pool of virtual blocks scheduled for erase operations; determining whether the first virtual block is in an open state; and when the first virtual block is in the open state:
programming dummy data on the first virtual block prior to performing an erase operation on the virtual block, or
performing a flash write operation on the first virtual block prior to performing the erase operation on the virtual block.
2 . The method of claim 1 , comprising:
performing the erase operation on the virtual block after programming the dummy data or performing the flash write operation.
3 . The method of claim 1 , comprising:
programming the dummy data as part of a background activity; or performing the flash write operation as part of the background activity.
4 . The method of claim 1 , comprising:
programming the dummy data on unprogrammed wordlines of the physical block.
5 . The method of claim 4 , wherein programming the dummy data comprises:
programming data of a random pattern on the unprogrammed wordlines of the physical block.
6 . The method of claim 4 , wherein programming the dummy data comprises:
programming data of a fixed pattern on the unprogrammed wordlines of the physical block.
7 . The method of claim 1 , wherein performing the flash write operation comprises:
performing the flash write operation on an entirety of the physical block.
8 . The method of claim 1 , comprising:
determining that the virtual block is not in the open state; and performing the erase operation on the virtual block without programming the dummy data or without performing the flash write operation.
9 . A system comprising:
a controller to:
detect an event associated with a virtual block,
wherein the event includes at least one of:
a program error on a physical block of the virtual block,
a read error on the physical block, or
a power cycle of a storage device that includes the virtual block;
determine whether the virtual block is in an open state;
program data on the virtual block, prior to performing an erase operation on the virtual block, when the virtual block is in the open state; and
perform the erase operation on the virtual block, without programming the data on the virtual block, when the virtual block is not in the open state.
10 . The system of claim 9 , wherein, to program the data, the controller is to:
program dummy data as part of a background activity.
11 . The system of claim 10 , wherein, to program the dummy data, the controller is to:
program the dummy data on unprogrammed wordlines of the physical block.
12 . The system of claim 11 , wherein, to program the dummy data, the controller is to:
program data of a random pattern on the unprogrammed wordlines of the physical block.
13 . The system of claim 11 , wherein, to program the dummy data, the controller is to:
program data of a fixed pattern on the unprogrammed wordlines of the physical block.
14 . The system of claim 9 , wherein, to program the data, the controller is to:
perform a flash write operation as part of a background activity.
15 . A non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising:
one or more instructions that, when executed by one or more processors of a controller, cause the controller to:
detect an event associated with a first virtual block,
wherein the event includes at least one of:
a program error on a physical block of the first virtual block,
a read error on the physical block, or
a power cycle of a storage device that includes the first virtual block;
program user data stored in the first virtual block onto a second virtual block based on detecting the event; and
program data on the first virtual block, prior to performing an erase operation on the first virtual block, when the first virtual block is in an open state.
16 . The non-transitory computer-readable medium of claim 15 , wherein, to program the data, the controller is to:
program dummy data as part of a background activity.
17 . The non-transitory computer-readable medium of claim 16 , wherein, to program the dummy data, the controller is to:
program the dummy data on unprogrammed wordlines of the physical block.
18 . The non-transitory computer-readable medium of claim 17 , wherein, to program the dummy data, the controller is to:
program data of a random pattern on the unprogrammed wordlines of the physical block.
19 . The non-transitory computer-readable medium of claim 17 , wherein, to program the dummy data, the controller is to:
program data of a fixed pattern on the unprogrammed wordlines of the physical block.
20 . The non-transitory computer-readable medium of claim 15 , wherein, to program the data, the controller is to:
perform a flash write operation as part of a background activity.Join the waitlist — get patent alerts
Track US2026038599A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.