Patent ID: 9547589
Date: 2017-01-17
CPC Classifications: G06F,G11C

Claim:
1. An Endurance Translation Layer (ETL) method to increase endurance of a flash memory that has a specified erase-cycle lifetime comprising: creating an ETL in a dynamic-random-access memory (DRAM) buffer that is controlled by a controller and using the ETL to provide temporary storage to reduce flash wear; creating a spare/swap area in the DRAM buffer; operating a controller to use the spare/swap area in the DRAM buffer to merge valid data in a flash memory with new data to generate combined data; and writing the combined data to the flash memory; creating a page status table in the DRAM buffer; operating the controller to use the page status table in the DRAM buffer to record the status of each flash page; when a flash block is erased, setting the page status of each page in the flash block to an empty page; when a page is written, changing the page status to a used page; when the host data writes to a same Logical Page Address, writing data to a new flash page and setting the page status for an old page to a deleted/trimmed page; when a trim command is received from the host, setting a corresponding page status to a deleted/trimmed page; when the page is identified as a bad page, setting the page status to a bad page; during a garbage collection process, not moving pages indicated as deleted/trimmed pages to a new flash block; creating a spare/swap area in the DRAM buffer; operating the controller to use the spare/swap area in the DRAM buffer to merge valid data in flash memory and new data to generate combined data; wherein the page status of each page in a targeted block is examined from the page status table; wherein valid data page has the page status indicating as a used page; the page status not indicating as a bad page, an empty page, or a trimmed page; writing the combined data to the flash memory; whereby a spare/swap function is performed by the controller using the DRAM buffer rather than the flash memory, whereby a spare/swap function is performed by the controller using the DRAM buffer rather than the flash memory.