Browse Prior Art Database

Passing information from Host to a Flash System to help improve performance and decrease write amplification

IP.com Disclosure Number: IPCOM000236795D
Publication Date: 2014-May-16
Document File: 2 page(s) / 68K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method for passing descriptive information that the Flash controller can use to reduce write amplification and improve performance for a Solid State Drive (SSD).

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 51% of the total text.

Page 01 of 2

Passing information from Host to a Flash System to help improve performance and decrease write amplification

Flash storage is a disruptive technology for both the consumer and the enterprise. Two well-known characteristics of Flash memory present challenges to its effective use in the enterprise. First, Flash degrades as the number of writes increases - basically, it "wears out". Secondly, a particular location within a Flash memory device, once written, may not be rewritten until the entire block in which the location resides has been erased. Flash memory controllers deal with this second characteristic by implementing a log-structured array mechanism. Data written to a particular logical Flash memory address is simply written to the next "available" physical location, and a record of the address mapping (logical to physical) is maintained. If a particular address is later read, the address mapping indicates from which physical location the data should be retrieved. If new data is written to the same logical address, the new data is written to a different physical location and the address mapping is modified to reflect the change. The previously written physical location is marked invalid or "dirty", but the previously written data continues to reside there until the block encompassing the invalid location has been erased.

Because invalid data locations occupy storage resources within Flash memory devices, it is necessary to periodically reclaim these invalid locations. Given a Flash memory block containing both valid and invalid logical data, it is necessary to read the valid data and rewrite it to a new memory location, thereby rendering the entire block invalid (or dirty) and permitting it to be erased and reused. Consider the case in which 25% of a Flash memory block is valid, while 75% is invalid. Reading the valid data (25% of the block capacity) and rewriting it to a new location allows the entire block to be erased and reclaimed. This process is termed Garbage Collection (GC), and it leads to previously written (and still valid) data being rewritten, possibly numerous times over the life of a Flash memory device. Because data may be rewritten multiple times, this phenomenon is known as write amplification (WA).

In order to reduce write amplification, it is advantageous to have each Flash memory block contain entirely valid data or entirely invalid (dirty) data. If no data within a Flash memory block is valid (100% dirty), then no data needs to be moved in order to reclaim the block. The block is simply erased and put back into service for the storage of new data. If all the data within a Flash memory block is valid (0% dirty), then the block is being used to its maximum efficiency and there is no need to do anything to the block. It turns out that frequently written logical addresses tend to "leave behind" a large amount of invalid data, while infrequently written logical addresses tend to leave behind very...