Improving NAND Flash Based Disk Caches
Flash is a widely used storage device that provides high density and low power, appealing properties for general purpose computing. Today, its usual application is in portable special purpose devices such as MP3 players. In this paper we examine its use in the server domain— a more general purpose environment. Aggressive process scaling and the use of multi-level cells continues to improve density ahead of Moore’s Law predictions, making Flash even more attractive as a general purpose memory solution. Unfortunately, reliability limits the use of Flash. To seriously consider Flash in the server domain, architectural support must exist to address this concern. This paper ﬁrst shows how Flash can be used in today’s server platforms as a disk cache. It then proposes two improvements. The ﬁrst improves performance and reliability by splitting Flash based disk caches into separate read and write regions. The second improves reliability by employing a programmable Flash memory controller. It can change the error code strength (number of correctable bits) and the number of bits that a memory cell can store (cell density) according to the demands of the application. Our studies show that Flash reduces overall power consumed by the system memory and hard disk drive up to 3 times while maintaining performance. We also show that Flash lifetime can be improved by a factor of 20 when using a programmable Flash memory controller, if some performance degradation (below 5%) is acceptable.
Today, NAND Flash can be found in handheld devices like cell phones, digital cameras and MP3 players. This has been made possible because of its high density and low power properties. These result from the simple structure of Currently at Intel Flash cells and its nonvolatility. Its popularity has meant that it is the focus of aggressive process scaling and innovation. The rapid rate of improvement in density has suggested other usage models for Flash besides handheld devices, and in recent years, Flash has also emerged as an attractive memory device to integrate into other computing platforms. Flash is used in solid state disks and hybrid disk drives to reduce power consumption and improve performance [1, 3]. Flash is even being considered inside data centers where system memory power and disk drive power are critical concerns. With appropriate support, Flash could dramatically reduce the cost of powering and cooling data centers. However, Flash manageability and reliability are challenging problems that need to be addressed to fully integrate Flash into data centers. Flash wears out as we increase the number of writes/erases. A combined software/hardware effort is required to mitigate these problems. Reliability is especially important in servers deployed in data centers. This paper proposes a hardware assisted software managed disk cache for NAND Flash. We address the shortcomings due to reliability and manageability. Our contributions are as follows: 1. We extend the power and performance analysis for using Flash based disk caches on server platforms described in . We also show that there is negligible overhead in complexity and performance to using Flash. 2. We show that by splitting Flash based disk caches into read and write regions, overall performance and reliability can be improved. 3. We show that a programmable Flash memory controller can improve Flash cell reliability and extend memory lifetime. The ﬁrst programmable parameter is error correction code strength. The second is the Flash cell density—changing from multi-level cells to single level cells.