In the past several decades, the access time of magnetic disks has improved about 8% per year while processor speeds have improved at an astounding 60% per year. The tremendous performance disparity between disks and processors means that many large-scale applications are limited by the performance of the underlying storage systems. Flash memory is an emerging storage technology that shows tremendous promise to compensate for the limitations of magnetic disk-based storage devices. A key advantage of flash-based storage is that its read-write performance is much better than disk. Flash memory-based storage like solid state drives provides fast random access to all areas of the device. On the other hand, writes to flash memory are much slower than reads. Furthermore, writes to flash must be preceded by an erase unless a clean block is used, and the number of erase cycles is limited. To overcome these drawbacks, a Flash Translation Layer (FTL) is designed to provide dynamic address mapping between logical addresses to physical addresses, wear-leveling, garbage collection, and buffer caching. A small memory buffer in FTL is used to perform these functions.
This project will focus on techniques to use the least amount of memory buffer to achieve high performance and low energy consumption. The research tasks include efficient heuristics for hot and cold data classification and how to reduce memory requirement for wear-leveling and garbage collection. This effort will improve the fundamental understanding of flash memory and will extend the capability of flash memory to support many critical applications.
Flash memory based Solid State Drives (SSDs) are a new type of storage devices which can read and write data in pages (each page is either 4KB or 8KB). SSD has the advantage of random access data in contrast with regular magnetic disk drives which prefer to access data in a sequential manner. The performance of read/write of SSD is about 10 times faster than those of disk drives. Another new storage technology is non-volatile memory (NV-RAM) which in contrast with DRAM has the advantage of maintaining data while loss power. In this project, the PI (Principal Investigator) and his team have investigated how these two new technologies can be used. They have speically investigated 1. How to cnstruct an efficient key-value store with SSD, 2. How to improve read performance of deduped backup data, and 3. How NV-RAM be integrated into new memory/storage hierarchies. For Item 1, key value store has superseded traditional relational databases for many applications. In Key-Value store, an index structure is required to map keys to their associated value first. The team has designed an efficient index structure using SSD to improve the speed of key-value store for data accessing. For Item 2, the team has improved read performance of deduped bakcup data using SSD. For Item 3, they have designed and evaluated new ways of caching both read and write data in NV-RAM to improve both data accessing and to reduce the data traffic between memory and storage devices. A set of new caching algorithms are proposed. These algorithms can be used in future computers which will repalce DRAM with NV-RAM as main memory.