METHOD AND SYSTEM FOR USING DOWNGRADED FLASH DIE FOR CACHE APPLICATIONS
20170271030 · 2017-09-21
Inventors
Cpc classification
International classification
G06F12/08
PHYSICS
Abstract
A method and apparatus for using low-cost un-qualified dies suitable for an SSD cache application in an SSD cache are disclosed. Embodiments of the present invention enable production of a cache-die SSD with sufficient data retention and endurance to meet demands of modern data centers while reducing infrastructure costs. According to one embodiment, a method of identifying and using low-cost un-qualified dies suitable for an SSD cache application in an SSD cache is disclosed. The method includes extracting application data from the SSD cache application, modeling a behavior of the SSD cache application based on the application data, characterizing a first un-qualified die to determine at least one quantified property of the first un-qualified die, and testing the at least one quantified property of the first un-qualified die against the modeled behavior of the SSD cache application to determine if the un-qualified die is suitable for the SSD cache.
Claims
1. A method of identifying and using un-qualified dies suitable for an SSD cache application in an SSD cache, the method comprising: extracting application data from the SSD cache application; modeling a behavior of the SSD cache application based on the application data to produce a modeled behavior; characterizing a first un-qualified die to determine at least one quantified property of the first un-qualified die; and testing the at least one quantified property of the first un-qualified die against the modeled behavior of the SSD cache application to determine if the un-qualified die is suitable for use in the SSD cache.
2. The method of claim 1, further comprising repeating the extracting, the modeling, the characterizing, and the testing until a sufficient number of un-qualified dies are identified to construct an SSD cache meeting prescribed requirements of the SSD cache application.
3. The method of claim 2, further comprising enclosing the sufficient number of un-qualified dies in packaging to form an integrated circuit.
4. The method of claim 3, further comprising constructing a cache-die SSD using the integrated circuit, wherein the cache-die SSD meets a requirement of the modeled behavior of the SSD cache application.
5. The method of claim 3, further comprising: constructing a cache-die SSD using the integrated circuit; testing the cache-die SSD against a requirement of the modeled behavior of the SSD cache application; and generating a specification of the cache-die SSD.
6. The method of claim 5, further comprising tuning the SSD cache application for compatibility with the cache-die SSD.
7. The method of claim 6, further comprising using corresponding device management firmware and software to control and monitor the cache-die SSD for the SSD cache application based on the modeled behavior.
8. The method of claim 3, wherein the un-qualified die comprises a NAND Flash die.
9. The method of claim 3, wherein the un-qualified die is characterized as having an increased noise margin to reduce an error rate of the un-qualified die.
10. The method of claim 3, wherein the un-qualified die is characterized in that a programmed voltage value of the un-qualified die is increased when a charge is placed on a floating gate thereof to mitigate write latency.
11. A solid state drive comprising: a plurality of un-qualified dies for storing data; and an SSD controller, comprising: a first interface for sending data to and receiving data from the plurality of un-qualified dies; a second interface for sending data to and receiving data from a CPU; a first plurality of modules coupled to the first and second interfaces, the first plurality of modules for compressing, for encrypting, and for ECC encoding data for storage using the plurality of un-qualified dies; and a second plurality of modules coupled to the first and second interfaces, the second plurality of modules for ECC decoding, for decrypting, and for decompressing data retrieved from the plurality of un-qualified dies.
12. The solid state drive of claim 11, wherein the plurality of un-qualified dies comprises NAND Flash and the first interface is a NAND Flash interface.
13. The solid state drive of claim 11, wherein the ECC encoding comprises adjustable, on-the fly ECC encoding based on an observed error rate of the plurality of un-qualified dies.
14. The solid state drive of claim 13, wherein the adjustable, on-the fly ECC encoding is configured to use a greater number of redundancy bits when the observed error rate exceeds a threshold.
15. The solid state drive of claim 13, wherein the adjustable, on-the fly ECC encoding is configured to encode fewer bits when the observed error rate exceeds a threshold.
16. The solid state drive of claim 11, wherein the plurality of un-qualified dies comprises an increased noise margin to reduce an error rate thereof.
17. The solid state drive of claim 11, wherein the plurality of un-qualified dies is characterized in that a programmed voltage value of the plurality of un-qualified dies is increased when a charge is placed on a floating gate thereof to mitigate write latency.
18. A cache-die SSD architecture comprising: a PIPE interface configured to communicate with a CPU; a NAND interface communicatively coupled to a plurality of un-qualified NAND cache dies; and an adjustable ECC encoding module coupled to the PIPE interface and the NAND interface, wherein the adjustable ECC encoding module automatically adjusts an encoding rate thereof based on an observed error rate of the plurality of un-qualified NAND cache dies and uses an increased number of redundancy bits when the observed error rate reaches a predetermined threshold.
19. The cache-die SSD architecture of claim 18, further comprising an encryption module communicatively coupled to the PIPE interface and the ECC encoding module, wherein data received by the PIPE interface is encrypted by the encryption module before being sent to the ECC encoding module.
20. The cache-die SSD architecture of claim 19, further comprising a compression module communicatively coupled to the PIPE interface and the encryption module, wherein data received by the PIPE interface is compressed by the compression module before being sent to the encryption module.
Description
BRIEF DESCRIPTION OF THE DRAWINGS:
[0011] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention:
[0012]
[0013]
[0014]
[0015]
[0016]
DETAILED DESCRIPTION:
[0017] Reference will now be made in detail to several embodiments. While the subject matter will be described in conjunction with the alternative embodiments, it will be understood that they are not intended to limit the claimed subject matter to these embodiments. On the contrary, the claimed subject matter is intended to cover alternative, modifications, and equivalents, which may be included within the spirit and scope of the claimed subject matter as defined by the appended claims.
[0018] Furthermore, in the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the claimed subject matter. However, it will be recognized by one skilled in the art that embodiments may be practiced without these specific details or with equivalents thereof. In other instances, well-known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects and features of the subject matter.
[0019] Portions of the detailed description that follow are presented and discussed in terms of a method. Although steps and sequencing thereof are disclosed in a figure herein (e.g.,
[0020] Some portions of the detailed description are presented in terms of procedures, steps, logic blocks, processing, and other symbolic representations of operations on data bits that can be performed on computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, computer-executed step, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
[0021] It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout, discussions utilizing terms such as “accessing,” “writing,” “including,” “storing,” “transmitting,” “traversing,” “associating,” “identifying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Downgraded Flash Die for Use In Flash SSD Cache Applications
[0022] Embodiments of the present invention describe systems and methods for implementing Flash SSD cache devices using downgraded flash dies (as called “ink dies”) to lower the cost of implementing Flash SSD caches in high-volume data storage systems. These Flash SSD cache devices offer sufficient data retention and endurance properties to meet the demands of modern data centers while substantially reducing infrastructure costs.
[0023] The downgraded dies described herein are unqualified Flash dies cut from the same wafer as qualified dies. When the dies are cut from a wafer, each die is tested to determine which if it meets all of the requirements of a qualified die. The dies that do not meet these requirements are un-qualified dies typically having one or more defects therein. Embodiments of the present invention advantageously utilize less expensive un-qualified dies that do not satisfy the data retention requirements of qualified dies. For example, dies may be classified as unqualified if they are unable to store written data for at least 12 months. When implementing a Flash SSD cache device, these data retention requirements may be waived and/or relaxed to the point where the un-qualified dies are acceptable for use.
[0024] With regard to
[0025] Storage path 102 represents a more advanced storage solution comprising a Flash SSD 124 to bridge the gap between high-performance, low-capacity RAM 122 and low-performance, high-capacity HDD 126. In this configuration, the flash SSD holds data temporarily, and the data is eventually flushed to the HDD. As Flash SSDs have decreased in price, this type of storage solution is attractive due to enhanced throughput, IOPS, and enhanced capacity, for example. Recently new technology such as Non-Volatile Dual In-line Memory Module (NVDIMM) 134 has matured for use in enterprise applications to further enhance performance. Storage path 103 includes an NVDIMM 134 between the RAM 132 and Flash SSD 136 and further enhances performance of the storage path.
[0026] With regard to
[0027] The data is then sent to NAND Interface 204 for storage using the ink dies. SSD Controller 213 further comprises a series of modules for processing data stored on Ink Dies 202 and 203. ECC Decoder 210 receives encoded data from NAND Interface 204 and decodes the ECC encoded data. The decoded data is decrypted by Decryption Module 211 and decompressed by Decompression Module 213. The decompressed data is then passed to Host Interface 206 for retrieval by CPU 214.
[0028] SSD Controller 213 may further comprise a data flush module to copy out data from a cache-die SSD to another storage device when triggered to prevent data loss. According to some embodiments of the present invention, a timeout value is defined for a cache-die SSD. When data is stored on the cache-die SSD for longer than the timeout period, the data is automatically flushed out to a hard drive or other archival storage device. According to some embodiments, a watermark or threshold value is defined for a cache-die SSD. When the total data stored on the cache-die SSD reaches the watermark (e.g., 90% of total capacity, for instance), data is automatically flushed out to a hard drive or other archival storage device.
[0029] With regard to
[0030] With regard to
[0031] With regard to
[0032] At step S1, online application data is extracted and analyzed to model the behavior of a given application for recursive modeling (e.g., required data retention, number of reads before data is copied out, and how much valid data is held in a cache-SSD when a page is written). At step S2, characterization of an ink die is extracted and various properties are quantified, such as, but not limited to data retention, program/erase cycle, and temperature range. At step S3, the quantified properties are tested against a predetermined set of rules based on the specific application to verify the ink die (e.g., determine if the ink die is suitable for use in the SSD cache). Ink dies that meet the set of predetermined rules may be used as cache dies. At step S4, multiple cache dies are enclosed together in a package to form an integrated circuit (e.g., a NAND flash chip). At step S5, the integrated circuit is used to construct a cache-die SSD. At step S6, the cache-die SSD is thoroughly tested using a series of programs, and a specification of the cache-die SSD is generated. At step S7, the application is tuned to ensure compatibility with the cache-die SSD, and corresponding device management firmware and software are used to control and monitor the cache-die SSD.
[0033] Steps S1 and S7 of method 500 may be repeated to recursively optimize the hardware and software and ensure a seamless data path. The entire process S1-S7 may be repeated until the application requirements are satisfied.
[0034] Embodiments of the present invention are thus described. While the present invention has been described in particular embodiments, it should be appreciated that the present invention should not be construed as limited by such embodiments, but rather construed according to the following claims.