US2026038599A1PendingUtilityA1

Programming dummy data or performing flash write on partially programmed memory blocks of virtual blocks

Assignee: MICROCHIP TECH INCPriority: Jul 31, 2024Filed: Jan 14, 2025Published: Feb 5, 2026
Est. expiryJul 31, 2044(~18 yrs left)· nominal 20-yr term from priority
G11C 16/102G11C 16/08G11C 16/16G06F 11/0751G06F 11/073G11C 29/82G11C 2029/0409G06F 2212/1032G06F 11/0727G06F 11/0793G06F 12/0246G11C 16/10
53
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
What 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.