US2022066641A1PendingUtilityA1

Write management on flash memory

Assignee: SILICON MOTION INCPriority: Apr 1, 2019Filed: Oct 14, 2021Published: Mar 3, 2022
Est. expiryApr 1, 2039(~12.7 yrs left)· nominal 20-yr term from priority
G06F 2212/7204G06F 3/064G06F 12/0253G06F 3/0679G06F 3/0611G06F 2212/7205G06F 12/0246G06F 3/0631G06F 3/0653G06F 2212/1044G06F 3/0659G06F 3/061G06F 3/0604
61
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method for use in management of a flash memory module is provided. The flash memory module has a plurality of blocks, wherein a portion of the blocks belong to a spare pool. The method includes: preserving at least one erased block in the spare pool for a write operation; monitoring an erasing period regarding the at least one erased block; and performing a replacement operation to replace the at least one erased block when the erase time exceeds a threshold.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method for managing a flash memory module, the flash memory module comprises a plurality of blocks, wherein a portion of the plurality of blocks belongs to a spare pool, and the method comprises:
 preserving at least one erased block in the spare pool to facilitate a writing operation, wherein the spare pool comprises at least one erased block and a plurality of written blocks with invalid data, and a number of the written blocks is greater than a number of the at least one erased block;   monitoring an erasing period of the at least one erased block; and   when the erasing period exceeds a threshold, moving valid data stored in a certain block that does not belong to the spare pool to the at least one erased block and removing the at least one erased block from the spare pool.   
     
     
         2 . The method of  claim 1 , wherein the step of monitoring the erasing period of the at least one erased block comprises:
 creating a timestamp associated with the at least one erased block; and   periodically performing comparison on the threshold according to time information in the timestamp.   
     
     
         3 . The method of  claim 1 , wherein when the erasing period exceeds the threshold, the method further comprises:
 choosing a first block from the plurality of written blocks in the spare pool, and performing an erasing operation on the first block; and   adding a second block storing invalid data to the spare pool after the at least one erased block is removed.   
     
     
         4 . The method of  claim 1 , further comprising:
 performing a garbage collection operation on a plurality of blocks in the flash memory module; and   when the erasing period exceeds the threshold, utilizing recycled data outputted by the garbage collection operation to perform writing on the at least one erased block.   
     
     
         5 . The method of  claim 1 , further comprising:
 if an access command delivered by a host is not received, automatically reading specific data from the flash memory module, and writing the specific data back to the flash memory module.   
     
     
         6 . A controller for managing a flash memory module, wherein the flash memory module comprises a plurality of blocks, a portion of the plurality of blocks belongs to a spare pool, and the controller comprises:
 a storage unit, arranged to store a program code; and   a processing unit, coupled to the storage unit, the processing unit arranged to read the program code from the storage unit in order to execute the program code to perform following operations:
 preserving at least one erased block in the spare pool to facilitate a writing operation, wherein the spare pool comprises at least one erased block and a plurality of written blocks with invalid data, and a number of the written blocks is greater than a number of the at least one erased block; 
 monitoring an erasing period of the at least one erased block; and 
 when the erasing period exceeds a threshold, moving valid data stored in a certain block that does not belong to the spare pool to the at least one erased block and removing the at least one erased block from the spare pool. 
   
     
     
         7 . The controller of  claim 6 , wherein the processing unit executes the program code to create a timestamp associated with the at least one erased block and periodically perform comparison on the threshold according to time information in the timestamp. 
     
     
         8 . The controller of  claim 6 , wherein when the erasing period exceeds the threshold, the processing unit executes the program code to choose a first block from the plurality of written blocks in the spare pool in order to perform an erasing operation on the first block; and when the erasing period exceeds the threshold, the processing unit executes the program code to add a second block storing invalid data to the spare pool after the at least one erased block is removed. 
     
     
         9 . The controller of  claim 6 , wherein the processing unit executes the program code to perform a garbage collection operation on a plurality of blocks in the flash memory module; and when the erasing period exceeds the threshold, the processing unit utilizes recycled data outputted by the garbage collection operation to perform writing on the at least one erased block to execute the alternative operation. 
     
     
         10 . The controller of  claim 6 , wherein the controller is controlled by a host, and the processing unit executes the program code to automatically read specific data from the flash memory module when an access command delivered by the host is not received, and write the specific data back to the flash memory module. 
     
     
         11 . A storage device, comprising:
 a flash memory module, comprising a plurality of blocks, wherein a portion of the plurality of blocks belongs to a spare pool; and   a controller, arranged to access the flash memory module, and comprising:
 a storage unit, arranged to store a program code; and 
 a processing unit, coupled to the storage unit, wherein the processing unit is arranged to read the program code from the storage unit in order to execute the program code, and thereby perform following operations:
 preserving at least one erased block in the spare pool to facilitate a writing operation, wherein the spare pool comprises at least one erased block and a plurality of written blocks with invalid data, and a number of the written blocks is greater than a number of the at least one erased block; 
 monitoring an erasing period of the at least one erased block; and 
 when the erasing period exceeds a threshold, moving valid data stored in a certain block that does not belong to the spare pool to the at least one erased block and removing the at least one erased block from the spare pool. 
 
   
     
     
         12 . The storage device of  claim 11 , wherein the controller is arranged to create a timestamp associated with the at least one erased block; and the controller periodically performs comparison on the threshold according to time information in the timestamp. 
     
     
         13 . The storage device of  claim 11 , wherein when the erasing period exceeds the threshold, the controller is arranged to choose a first block from the plurality of written blocks in the spare pool in order to perform an erasing operation on the first block; and when the erasing period exceeds the threshold, the controller is arranged to add a second block storing invalid data to the spare pool after the at least one erased block is removed. 
     
     
         14 . The storage device of  claim 13 , wherein when the erasing period exceeds the threshold, the controller performs a garbage collection operation on a plurality of blocks in the flash memory module; and the controller utilizes recycled data outputted by the garbage collection operation to perform writing on the at least one erased block. 
     
     
         15 . The storage device of  claim 14 , wherein the controller is controlled by a host, and when an access command delivered by the host is not received, the controller automatically reads specific data from the flash memory module, and writes the specific data back to the flash memory module.

Join the waitlist — get patent alerts

Track US2022066641A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.