Based on its ruggedness, solid-state flash memory has been accepted as the basis of code and data storage in embedded systems applications for several decades. In more recent years, widespread mainstream acceptance of flash memory in consumer and enterprise applications has created tremendous downward cost pressures on flash memory manufacturers. The flash memory manufacturers have responded to these pressures by compromising on parameters that are most critical for flash memory's continued suitability for code storage in embedded computer applications. In particular, data retention specifications have been decreased from ten years to as low as one year. This is unacceptable for embedded systems applications that depend on flash memory systems to provide reliable code storage for many years of service.
Enabling flash memory systems to continue to reliably support code storage in embedded computer applications requires that wear induced by write requests be minimized. One means of reducing write requests is to reduce the impact of the overhead writes performed by the flash translation layer (FTL) that is used to manage the flash memory while presenting the overall flash memory system as a non-volatile rewritable block device. These overhead write activities may be represented with a measure of Write Amplification Factor (WAF) which is the amount of flash write requests scaled by the amount of write requests performed by the system hosting the flash memory system.
In this dissertation, we present FSAware, a novel algorithmic approach that enhances existing FTL designs. Specifically, FSAware reduces overall WAF by separately supporting the write requests associated with the file data and file system overhead produced by host file system write activities. FSAware distinguishes file data write requests from file system overhead write requests by characterizing the file system installed on the flash memory system by the host system. We consider the File Allocation Table (FAT) format, which is specifically selected for its ubiquity in embedded computer applications. FSAware is applicable to both block-mode and page-mode style FTLs.
In this work, we develop a novel instrumentation technique called FTLProbe to develop empirical (gray box) models of commercially available drives.
Our empirical models are then used to develop WAF equations for file system operations. Simulations of FSAware on commercially available drives are validated with extensions of these WAF equations. Our simulations results show that FSAware can produce a 97% reduction of WAF for a block-mode FTL and a 36% reduction of WAF for a page-mode FTL. Further extension of the WAF equations show that an enhanced FSAware that consolidates meta-data into a single flash allocation unit can theoretically produce a 99% reduction of WAF for a block-mode FTL and a 64% reduction of WAF for a page-mode FTL. With these reductions in overall WAF for file system operations associated with embedded systems, FSAware can form the basis of an ultra-reliable flash memory system for embedded computer applications.
Advisor: Professor David Kaeli
Professor David Kaeli
Professor Peter Desnoyers
Professor Ningfang Mi