throbber
PTO/SB/05 (08-08)
`Approved for use through 06/30/2010. 0MB 0651-0032
`U.S. Patent and Trademark Office; U.S. DEPARTMENT OF COMMERCE
`Under the Paperwork Reduction Act of 1995 no persons are required to respond to a collection of information unless it displays a valid 0MB control number
`0299-0004.01
`UTILITY
`PATENT APPLICATION
`TRANSMITTAL
`(Only for new nonprovlslonal applications under 37 CFR 1. 53(b))
`
`Title
`
`IMPROVED LIFETIME MIXED LEVEL
`NON-VOLATILE MEMORY SYSTEM
`
`Attorney Docket No.
`
`First Inventor
`
`G. R. Mohan Rao
`
`/
`
`\,_
`
`APPLICATION ELEMENTS
`See MPEP chapter 600 concerning utility patent application contents.
`1. [XI Fee Transmittal Form (e.g., PTO/SB/17)
`2. [XI Applicant claims small entity status.
`See 37 CFR 1.27.
`[Total Pages .1.§]
`3.[Xl Specification
`Both the claims and abstract must start on a new page
`(For information on the preferred arrangement, see MPEP 608.0t(a))
`4.[Xl Drawing(s) (35 U.S. C. 113) [Total Sheets§]
`
`5. Oath or Declaration
`[Total Sheets~]
`a.~ Newly executed (original or copy)
`b.
`A copy from a prior application (37 CFR 1.63(d))
`(for continuation/divisional with Box 18 completed)
`i.O DELETION OF INVENTOR(s)
`Signed statement attached deleting inventor(s)
`name in the prior application, see 37 CFR
`1.63(d)(2) and 1.33(b).
`
`6.0 Application Data Sheet. See 37 CFR 1.76
`
`7.0 CD-ROM or CD-R in duplicate, large table or
`Computer Program (Appendix)
`0
`Landscape Table on CD
`
`8. Nucleotide and/or Amino Acid Sequence Submission
`(if applicable, items a. - c. are required)
`a. 0 Computer Readable Form (CRF)
`Specification Sequence Listing on:
`b.
`CD-ROM or CD-R (2 copies); or
`i. 0
`Paper
`ii.O
`
`c.O Statements verifying identity of above copies
`
`Express Mail Label No.
`
`ADDRESS TO:
`
`Commissioner for Patents
`P.O. Box 1450
`Alexandria VA 22313-1450
`ACCOMPANYING APPLICATION PARTS
`
`9.0 Assignment Papers (cover sheet & document(s))
`
`Name of Assignee
`
`10. 0
`
`37 CFR 3.73{b) Statement
`(when there is an assignee)
`
`[XI Power of
`Attorney
`
`11. 0
`
`English Translation Document (if applicable)
`
`12. [XI
`
`Information Disclosure Statement (PTOISBI08 or PT0-1449)
`[XI Copies of citations attached
`
`13. 0
`
`Preliminary Amendment
`
`14. 0
`
`15. 0
`
`Return Receipt Postcard (MPEP 503)
`(Should be specifically itemized)
`
`Certified Copy of Priority Document(s)
`(ifforeign priority is claimed)
`
`16.0 Nonpublication Request under 35 U.S.C. 122(b)(2)(B)(i).
`Applicant must attach form PTO/SB/35 or equivalent.
`
`17. 0
`
`Other:
`
`18. If a CONTINUING APPLICATION, check appropriate box, and supply the requisite information below and in the first sentence of the
`specification following the title, or in an Application Data Sheet under 37 CFR 1. 76:
`
`0
`
`Continuation
`
`0
`
`Divisional
`
`0 Continuation-in-part (CIP}
`
`of prior application No.:
`
`Prior application information: Examiner
`
`Art Unit:
`19. CORRESPONDENCE ADDRESS
`[XI The address associated wtth Customer Number I
`
`70653
`
`OR 0
`
`Correspondence address below
`
`I
`
`I
`I State
`I Telephone I
`
`Name
`
`Address
`
`City
`Country
`
`Signature
`Name
`(Print/Type)
`
`/David M. Mundt/
`David M. Mundt
`
`I Zip Code I
`I Email
`I
`I Date April 25, 2012
`Registration No. I 1
`(Attorney/Agent) 4 ,207
`This collection of information is required by 37 CFR 1.53(b). The information is required to obtain or retain a benefit by the public which is to file (and by the
`USPTO to process) an application. Confidentiality is governed by 35 U.S.C. 122 and 37 CFR 1.11 and 1.14. This collection is estimated to take 12 minutes to
`complete, including gathering, preparing, and submitting the completed application form to the USPTO. Time will vary depending upon the individual case. Any
`comments on the amount of time you require to complete this form and/or suggestions for reducing this burden, should be sent to the Chief Information Officer,
`U.S. Patent and Trademark Office, U.S. Department of Commerce, P.O. Box 1450, Alexandria, VA 22313-1450. DO NOT SEND FEES OR COMPLETED
`FORMS TO THIS ADDRESS. SEND TO: Commissioner for Patents, P.O. Box 1450, Alexandria, VA 22313-1450.
`If you need assistance in completing the form, ca/11-800-PTO-9199 and select option 2.
`
`American LegalNet, Inc.
`www.FormsWorkflow.com
`
`Micron Ex. 1002, p. 1
`Micron v. Vervain
`IPR2021-01547
`
`

`

`IMPROVED LIFETIME MIXED LEVEL NON-VOLATILE MEMORY SYSTEM
`
`NON-PROVISIONAL U.S. PATENT APPLICATION
`
`Atty. Docket No: 0299-0004.01
`
`Inventor: G. R. Mohan Rao
`
`CROSS-REFERENCE TO RELATED APPLICATIONS
`
`[001]
`
`This application is a Non-Provisional Patent Application, claiming
`
`priority under 35 U.S.C. §119(e) to U.S. Provisional Application Serial No.
`
`61/509,257, entitled "Improved Lifetime Mixed Level NAND Flash System,"
`
`filed July 19, 2011, the complete disclosure thereof being incorporated
`
`herein by reference. This application also incorporates by reference the
`
`complete disclosure of United States Pat. No. 7,855,916, entitled
`
`"Nonvolatile Memory Systems with Embedded Fast Read and Write
`
`Memories," filed on October 22, 2008 by inventor G.R. Mohan Rao, and
`
`issued on December 21, 2010. This application also incorporates by
`
`reference
`
`the complete disclosure of United States Pat. Appl. No.
`
`12/915,177, entitled "Nonvolatile Memory Systems with Embedded Fast
`
`Read and Write Memories," filed on October 29, 2010 (US 2011/0060870
`
`Al) by inventor G.R. Mohan Rao.
`
`TECHNICAL FIELD
`
`[002]
`
`This application relates to a system and method for providing reliable
`
`storage through the use of non-volatile memories and, more particularly, to
`
`a system and method of increasing the reliability and lifetime of a NAND
`
`1
`
`Micron Ex. 1002, p. 2
`Micron v. Vervain
`IPR2021-01547
`
`

`

`flash storage system, module, or chip through the use of a combination of
`
`single-level cell (SLC) and multi-level cell (MLC) NAND flash storage without
`
`substantially raising the cost of the NAND flash storage system. The memory
`
`in a total non-volatile memory system may contain some SRAM (static
`
`random-access memory), DRAM (dynamic RAM), RRAM (resistive RAM), PCM
`
`(phase change memory), MAGRAM (magnetic random-access memory),
`
`NAND flash, and one or more HDDs (hard disk drives) when storage of the
`
`order of several terabytes is required. The SLC non-volatile memory can be
`
`flash, PCM, RRAM, MAGRAM or any other solid-state non-volatile memory
`
`as long as it has endurance that is superior to that of MLC flash, and it
`
`provides for data access speeds that are faster than that of MLC flash or
`
`rotating storage media (e.g., HDDs).
`
`BACKGROUND OF THE DISCLOSURE
`
`[003]
`
`Non-volatile memories provide
`
`long-term storage of data. More
`
`particularly, non-volatile memories can retain the stored data even when not
`
`powered. Magnetic (rotating) hard disk drives (HDD) dominate this storage
`
`medium due to lower cost compared to solid state disks (SSD). Optical
`
`(rotating) disks, tape drives and others have a smaller role in long-term
`
`storage systems. SSDs are preferred for their superior performance (fast
`
`access time), mechanical reliability and ruggedness, and portability. Flash
`
`memory, more specifically NAND flash, is the dominant SSD medium today.
`
`[004]
`
`RRAM, PCM, MAGRAM and others, will likely play a larger role in the
`
`future, each of them having their own advantages and disadvantages. They
`
`2
`
`Micron Ex. 1002, p. 3
`Micron v. Vervain
`IPR2021-01547
`
`

`

`may ultimately replace flash memories, initially for use as a "write buffer"
`
`and later to replace "SLC flash" and "MLC flash." MLC NAND flash is a flash
`
`memory technology using multiple levels per cell to allow more bits to be
`
`stored using the same number of transistors. In SLC NAND
`
`flash
`
`technology, each cell can exist in one of two states, storing one bit of
`
`information per cell. Most MLC NAND flash memory has four possible states
`
`per cell, so it can store two bits of information per cell.
`
`[005]
`
`These semiconductor technology driven "flash alternatives,"
`
`i.e.,
`
`RRAM, PCM, MAGRAM and others, have several advantages over any (SLC
`
`or MLC) flash because they: 1) allow data to be written over existing
`
`data (without prior erase of existing data), 2) allow for an erase of individual
`
`bytes or pages (instead of having to erase an entire block), and 3) possess
`
`superior endurance (1,000,000 write-erase cycles compared to typical
`
`100,000 cycles for SLC flash and less than 10,000 cycles for MLC flash).
`
`[006]
`
`HDDs have several platters. Each platter contains 250-5,000 tracks
`
`(concentric circles). Each track contains 64 to 256 sectors. Each sector
`
`contains 512 bytes of data and has a unique "physical (memory) address." A
`
`plurality of sectors is typically combined to form a "logical block" having a
`
`unique "logical address." This logical address is the address at which the
`
`logical block of physical sectors appears to reside from the perspective of an
`
`executing application program. The size of each logical block and its logical
`
`address (and/or address ranges/boundaries) is optimized for the particular
`
`operating system (OS) and software applications executed by the host
`
`processor. A computer OS organizes data as "files." Each file may be located
`
`3
`
`Micron Ex. 1002, p. 4
`Micron v. Vervain
`IPR2021-01547
`
`

`

`(stored) in either a single logical block or a plurality of logical blocks, and
`
`therefore, the location of files typically traverses the boundaries of individual
`
`(physical) sectors. Sometimes, a plurality of files has to be combined and/ or
`
`modified, which poses an enormous challenge for the memory controller
`
`device of a non-volatile memory system.
`
`[007]
`
`SSDs are slowly encroaching on the HDD space and the vast majority
`
`of NAND flash in enterprise servers utilizes a SLC architecture, which
`
`further comprises a NAND flash controller and a flash translation layer
`
`(FTL). NAND flash devices are generally fragmented into a number of
`
`identically sized blocks, each of which is further segmented into some
`
`number of pages. It should be noted that asymmetrical block sizes, as well
`
`as page sizes, are also acceptable within a device or a module containing
`
`devices. For example, a block may comprise 32 to 64 pages, each of which
`
`incorporates 2 - 4 Kbit of memory. In addition, the process of writing data to
`
`a NAND flash memory device is complicated by the fact that, during normal
`
`operation of, for example, single-level storage (SLC), erased bits (usually all
`
`bits in a block with the value of 'l ') can only be changed to the opposite
`
`state (usually 'O') once before the entire block must be erased. Blocks can
`
`only be erased in their entirety, and, when erased, are usually written to 'l'
`
`bits. However, if an erased block is already there, and if the addresses
`
`(block, page, etc.) are allowed, data can be written immediately; if not, a
`
`block has to be erased before it can be written to.
`
`[008]
`
`FTL is the driver that works in conjunction with an existing operating
`
`system (or, in some embedded applications, as the operating system) to
`
`4
`
`Micron Ex. 1002, p. 5
`Micron v. Vervain
`IPR2021-01547
`
`

`

`make linear flash memory appear to the system like a disk drive, i.e., it
`
`emulates a HDD. This is achieved by creating "virtual" small blocks of data,
`
`or sectors, out of flash's large erase blocks and managing data on the flash
`
`so that it appears to be "write in place" when in fact it is being stored in
`
`different locations in the flash. FTL further manages the flash so that there
`
`are clean/ erased places to store data.
`
`[009]
`
`Given the limited number of writes that individual blocks within flash
`
`devices can tolerate, wear leveling algorithms are used within the flash
`
`devices (as firmware commonly known as FTL or managed by a controller) to
`
`attempt to ensure that "hot" blocks, i.e., blocks that are frequently written,
`
`are not rendered unusable much faster than other blocks. This task is
`
`usually performed within a flash translation layer. In most cases, the
`
`controller maintains a lookup table to translate the memory array physical
`
`block address (PBA) to the logical block address (LBA) used by the host
`
`system. The controller's wear-leveling algorithm determines which physical
`
`block to use each time data is programmed, eliminating the relevance of the
`
`physical location of data and enabling data to be stored anywhere within the
`
`memory array and thus prolonging the service life of the flash memory.
`
`Depending on the wear-leveling method used, the controller typically either
`
`writes to the available erased block with the lowest erase count (dynamic
`
`wear leveling); or it selects an available target block with the lowest overall
`
`erase count, erases the block if necessary, writes new data to the block, and
`
`ensures that blocks of static data are moved when their block erase count is
`
`below a certain threshold ( static wear leveling).
`
`5
`
`Micron Ex. 1002, p. 6
`Micron v. Vervain
`IPR2021-01547
`
`

`

`[0010]
`
`MLC NAND flash SSDs are slowly replacing and/ or coexisting with
`
`SLC NAND flash in newer SSD systems. MLC allows a single cell to store
`
`multiple bits, and accordingly, to assume more than two values; i.e., '0' or
`
`'l '. Most MLC NAND flash architectures allow up to four (4) values per cell;
`
`i.e., '00', '01', '10', or '11'. Generally, MLC NAND flash enjoys greater density
`
`than SLC NAND flash, at the cost of a decrease in access speed and lifetime
`
`(endurance). It should be noted, however, that even SLC NAND flash has a
`
`considerably lower lifetime (endurance) than rotating magnetic media (e.g.,
`
`HDDs), being able to withstand only between 50,000 and 100,000 writes,
`
`and MLC NAND flash has a much lower lifetime (endurance) than SLC
`
`NAND flash, being able to withstand only between 3,000 and 10,000 writes.
`
`As is well known in the art, any "write" or "program" to a block in NAND
`
`flash (floating gate) requires an "erase" (of a block) before "write."
`
`[0011]
`
`Despite its limitations, there are a number of applications that lend
`
`themselves to the use of MLC flash. Generally, MLC flash is used in
`
`applications where data is read many times (but written few times) and
`
`physical size is an issue. For example, flash memory cards for use in digital
`
`cameras would be a good application of MLC flash, as MLC can provide
`
`higher density memory at lower cost than SLC memory.
`
`[0012]
`
`When a non-volatile storage system combines HDD, SLC and MLC
`
`(setting aside volatile memory for buffering, caching etc) in a single (hybrid)
`
`system, new improvements and solutions are required to manage the
`
`methods of writing data optimally for improved life time (endurance) of flash
`
`memory. Accordingly, various embodiments of a NAND flash storage system
`
`6
`
`Micron Ex. 1002, p. 7
`Micron v. Vervain
`IPR2021-01547
`
`

`

`that provides long lifetime (endurance) storage at low cost are described
`
`herein.
`
`[0013]
`
`The following description is presented to enable one of ordinary skill in
`
`the art to make and use the disclosure and is provided in the context of a
`
`patent application and its requirements. Various modifications to the
`
`preferred embodiment and the generic principles and features described
`
`herein will be readily apparent to those skilled in the art. Thus, the present
`
`disclosure is not intended to be limited to the embodiments shown, but is to
`
`be accorded the widest scope consistent with the principles and features
`
`described herein.
`
`SUMMARY OF THE DISCLOSURE
`
`[0014]
`
`According to one embodiment of the present disclosure, there is
`
`provided a system for storing data which comprises at least one MLC non(cid:173)
`
`volatile memory module (hereinafter referred to as "MLC module") and at
`
`least one SLC non-volatile memory module (hereinafter referred to as "SLC
`
`module"), each module comprises a plurality of individually erasable blocks.
`
`The data storage system according to one embodiment of the present
`
`disclosure further comprises a controller for controlling both the at least one
`
`MLC module and the at least one SLC module. In particular, the controller
`
`maintains an address map comprising a list of individual logical address
`
`ranges each of which maps to a similar range of physical addresses within
`
`either the at least one MLC module or the at least one SLC module. After
`
`each write to (flash) memory, the controller conducts a data integrity check
`
`7
`
`Micron Ex. 1002, p. 8
`Micron v. Vervain
`IPR2021-01547
`
`

`

`to ensure that the data was written correctly. When the data was not written
`
`correctly, the controller modifies the table so that the range of addresses on
`
`which the write failed is remapped to the next available range of physical
`
`addresses within the at least one SLC module. The SLC module can be
`
`(NAND) flash, PCM, RRAM, MAGRAM or any other solid-state non-volatile
`
`memory as long as it has endurance that is superior to that of MLC flash,
`
`and it provides for data access speeds that are faster than that of MLC flash
`
`or rotating storage media (e.g., HDDs).
`
`[0015]
`
`According to another embodiment of the present disclosure, there is
`
`provided a system for storing data which comprises a controller that is
`
`further adapted to determine which of the blocks of the plurality of the
`
`blocks in the MLC and SLC non-volatile memory modules are accessed most
`
`frequently and wherein the controller segregates those blocks that receive
`
`frequent writes into the at least one SLC non-volatile memory module and
`
`those blocks that receive infrequent writes into the at least one MLC non(cid:173)
`
`volatile module.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0016]
`
`The present disclosure will be more fully understood by reference to
`
`the following detailed description of one or more preferred embodiments
`
`when read in conjunction with the accompanying drawings, in which like
`
`reference characters refer to like parts throughout the views and in which:
`
`[0017]
`
`FIG. 1 is a block diagram of a computer system incorporating one
`
`embodiment of the present disclosure;
`
`8
`
`Micron Ex. 1002, p. 9
`Micron v. Vervain
`IPR2021-01547
`
`

`

`[0018]
`
`FIG. 2 is a drawing depicting a translation table/ address map in
`
`accordance with one embodiment of the present disclosure;
`
`[0019]
`
`FIGS. 3a and 3b are a flow chart illustrating an exemplary method for
`
`use in implementing one embodiment of the present disclosure; and
`
`[0020]
`
`FIG. 4 is a block diagram depicting one embodiment of the present
`
`disclosure for implementation within a NAND flash module.
`
`DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENT
`
`[0021]
`
`The present disclosure is directed to the reliable storage of data in
`
`read and write memory, and, in particular, to the reliable storage of data in
`
`non-volatile memory, such as, for example, NAND flash. Generally, and in
`
`particular regard to NAND flash memory, two separate banks of NAND flash
`
`are maintained by a controller. One bank contains economical MLC NAND
`
`flash, while a second bank contains high endurance SLC NAND flash. The
`
`controller conducts a data integrity test after every write. If a particular
`
`address range fails a data integrity test, the address range is remapped from
`
`MLC NAND flash to SLC NAND flash. As the SLC NAND flash is used to
`
`boost the lifetime (endurance) of the storage system, it can be considerably
`
`lesser in amount than the MLC NAND flash. For example, a system may set
`
`SLC NAND flash equal to 12.5% or 25% of MLC NAND flash (total non(cid:173)
`
`volatile memory storage space = MLC + SLC).
`
`[0022]
`
`Turning to the Figures and to Figure 1 in particular, a computer
`
`system 10 depicting one embodiment of the present disclosure is shown. A
`
`processor 12 is coupled to a device controller 14, such as a chipset, using a
`
`9
`
`Micron Ex. 1002, p. 10
`Micron v. Vervain
`IPR2021-01547
`
`

`

`data link well known in the art, such as a parallel bus or packet-based link.
`
`The device controller 14 provides interface functions to the processor 12. In
`
`some computer systems, the device controller 14 may be an integral part of
`
`the (host) processor 12. The device controller 14 provides a number of
`
`input/ output ports 16 and 18, such as, for example, serial ports (e.g., USB
`
`ports and Firewire ports) and network ports (e.g., Ethernet ports and 802.11
`
`"Wi-Fi" ports). The device controller 14 may also control a bank of, for
`
`example, DRAM 20. In addition, the device controller 14 controls access to
`
`one or more disks 24, such as, for example, a rotating magnetic disk, or an
`
`optical disk, as well as two or more types of NAND flash memory. One type
`
`of NAND flash memory is a MLC NAND flash memory module 26. Another
`
`type of NAND flash memory is a SLC NAND flash memory module 28.
`
`[0023]
`
`The device controller 14 maintains a translation table/address map
`
`which may include address translations for all devices in the computer
`
`system. Nonetheless, the discussion in the present disclosure will be limited
`
`only to NAND flash memory modules. In particular, the device controller 14
`
`maintains a translation table that maps logical computer system addresses
`
`to physical addresses in each one of the MLC- and SLC- NAND flash memory
`
`modules 26 and 28, respectively. As MLC flash memory is less expensive
`
`than SLC flash memory, on a cost per bit basis, the translation table will
`
`initially map all logical NAND flash addresses to the MLC NAND flash
`
`memory module 26. The address ranges within the translation table will
`
`assume some minimum quantum, such as, for example, one block, although
`
`10
`
`Micron Ex. 1002, p. 11
`Micron v. Vervain
`IPR2021-01547
`
`

`

`a smaller size, such as one page could be used, if the NAND flash has the
`
`capability of erasing the smaller size quantum.
`
`[0024]
`
`A "read-modify-write" scheme is used to write data to the NAND flash.
`
`Data to be written to NAND flash is maintained in DRAM 20. After each
`
`write to an address within a particular address range, the device controller
`
`14 will - as time permits - perform a read on the address range to ensure
`
`the integrity of the written data. If a data integrity test fails, the address
`
`range is remapped from the MLC NAND flash memory module 26 to the next
`
`available address range in the SLC NAND flash memory module 28.
`
`[0025]
`
`Figure 2 illustrates one embodiment of a translation table/ address
`
`map of the present disclosure. In Figure 2a, a list of logical address ranges
`
`(RO-RN) is translated to physical address ranges. As illustrated, all of the
`
`logical address ranges are translated to blocks on the MLC NAND flash
`
`memory module 26. However, through the application of a data integrity
`
`verification check ( explained in more detail below) it is determined that, for
`
`example, address range R2 corresponds to failed quanta of data stored in
`
`block 2 of the MLC NAND flash memory module 26. Figure 2b shows the
`
`quanta of data which failed the data integrity verification check (see Figure
`
`2a) remapped to the next available range of physical addresses within the
`
`SLC NAND flash memory module 28, in this example, SLC/block 0.
`
`[0026]
`
`Figures 3a and 3b are a flow chart illustrating a method for utilizing a
`
`NAND flash memory system incorporating one embodiment of the present
`
`disclosure. The method begins in a step 100, when a command to write a
`
`quantum of data stored in DRAM to a particular location in NAND flash
`
`11
`
`Micron Ex. 1002, p. 12
`Micron v. Vervain
`IPR2021-01547
`
`

`

`memory is received. In step 102, the quantum of data is read from DRAM
`
`into memory within the device controller (which acts as the memory
`
`controller). In step 104, both the logical address range and the NAND flash
`
`physical address range to which the quantum of data is to be written, is
`
`read into memory of the device controller. In step 106, the quantum of data
`
`to be written is combined with the contents of the NAND flash memory. In
`
`step 108, the NAND flash physical address range to be written is erased. In
`
`step 110, the combined data is written to the appropriate NAND flash
`
`physical address range. In step 112 the NAND flash physical address range
`
`that was written in step 110 is read into device controller memory.
`
`[0027]
`
`The flowchart continues in Figure 3b. In step 114 the NAND flash
`
`physical address range that was read into device controller memory is
`
`compared with the retained data representing the combination of the
`
`previous contents of the physical address range and the quantum of data to
`
`be written. In step 116, if the retained data matches the newly stored data
`
`in the NAND flash memory, the write was a success, and the method exits in
`
`step 118. However, if the retained data does not match the newly stored
`
`data in the NAND flash memory, the method executes step 120, which
`
`identifies the next quantum of available SLC NAND flash memory addresses.
`
`In step 122, a check is made to determine if additional SLC NAND flash
`
`memory is available, and, if not, the NAND flash memory system is marked
`
`as failed, prompting a system alert step 124. However, if additional SLC
`
`NAND flash memory is available, the failed NAND flash physical address
`
`range is remapped to the next available quantum of SLC NAND flash
`
`12
`
`Micron Ex. 1002, p. 13
`Micron v. Vervain
`IPR2021-01547
`
`

`

`memory in step 126. Execution then returns to step 110, where the write is
`
`repeated.
`
`[0028]
`
`Another application of one embodiment of the present disclosure, not
`
`depicted in any of the drawings, is to allocate "hot" blocks; i.e., those blocks
`
`that receive frequent writes, into the SLC NAND flash memory module 28,
`
`while allocating "cold" blocks; i.e., those blocks that only receive infrequent
`
`writes, into the MLC NAND flash memory module 26. This could be
`
`accomplished within the device controller 14 described above, which could
`
`simply maintain a count of those blocks that are accessed (written to) most
`
`frequently, and, on a periodic basis, such as, for example, every 1000 writes,
`
`or every 10,000 writes, transfer the contents of those blocks into the SLC
`
`NAND flash memory module 28.
`
`[0029]
`
`Figure 4 depicts another embodiment of the present disclosure. The
`
`embodiment is entirely resident within a NAND flash module 50. In
`
`particular, a standard NAND flash interface 52 is managed by flash
`
`translation layer (FTL) logic 54. The flash translation layer (FTL) 54 manages
`
`two NAND flash memory banks 56 and 58, whereby memory bank 56
`
`comprises a plurality of MLC NAND flash memory modules 60a and a
`
`plurality of SLC NAND flash memory modules 62a. Memory bank 58
`
`comprises a plurality of MLC NAND flash memory modules 60b and a
`
`plurality of SLC NAND flash memory modules 62b.
`
`[0030]
`
`This embodiment of the present disclosure could function similarly to
`
`the system level embodiment discussed earlier with reference to Figures 1 -
`
`3b, but the control functions, such as maintenance of the translation
`
`13
`
`Micron Ex. 1002, p. 14
`Micron v. Vervain
`IPR2021-01547
`
`

`

`table/address map (Figure 2), could be conducted within the flash
`
`translation layer (FTL) 54 instead of in a device controller 14.
`
`[0031]
`
`Embodiments of the present disclosure relate to a system and method
`
`of increasing the reliability and lifetime of a NAND flash storage system,
`
`module, or chip through the use of a combination of multi-level cell (MLC)
`
`and single-level cell (SLC) NAND flash storage. The above description is
`
`presented to enable one of ordinary skill in the art to make and use the
`
`disclosure and is provided in the context of a patent application and its
`
`requirements. While this disclosure contains descriptions with reference to
`
`certain illustrative aspects, it will be understood that these descriptions
`
`shall not be construed in a limiting sense. Rather, various changes and
`
`modifications can be made
`
`to
`
`the
`
`illustrative embodiments without
`
`departing from the true spirit, central characteristics and scope of the
`
`disclosure, including those combinations of features that are individually
`
`disclosed or claimed herein. Furthermore, it will be appreciated that any
`
`such changes and modifications will be recognized by those skilled in the art
`
`as an equivalent to one or more elements of the following claims, and shall
`
`be covered by such claims to the fullest extent permitted by law.
`
`14
`
`Micron Ex. 1002, p. 15
`Micron v. Vervain
`IPR2021-01547
`
`

`

`Claims
`
`What is claimed is:
`
`1.
`
`A system for storing data comprising:
`
`at least one MLC non-volatile memory module comprising a plurality
`
`of individually erasable blocks;
`
`at least one SLC non-volatile memory module comprising a plurality of
`
`individually erasable blocks; and
`
`a controller coupled to the at least one MLC non-volatile memory
`
`module and the at least one SLC non-volatile memory module, the
`
`controller maintaining an address map of at least one of the MLC and SLC
`
`non-volatile memory modules, the address map comprising a list of logical
`
`address ranges accessible by a computer system, the list of logical address
`
`ranges having a minimum quanta of addresses, wherein each entry in the
`
`list of logical address ranges maps to a similar range of physical addresses
`
`within either the at least one SLC non-volatile memory module or within the
`
`at least one MLC non-volatile memory module; and
`
`wherein the controller is adapted to determine if a range of addresses
`
`listed by an entry and mapped to a similar range of physical addresses
`
`within the at least one MLC non-volatile memory module, fails a data
`
`integrity test, and, in the event of such a failure, the controller remaps the
`
`entry to the next available equivalent range of physical addresses within the
`
`at least one SLC non-volatile memory module.
`
`15
`
`Micron Ex. 1002, p. 16
`Micron v. Vervain
`IPR2021-01547
`
`

`

`2.
`
`The system of claim 1, wherein the minimal quanta of addresses is
`
`equal to one block.
`
`3.
`
`The system of claim 1, wherein the minimal quanta of addresses is
`
`equal to one page.
`
`4.
`
`The system of claim 1, wherein the MLC non-volatile memory module
`
`is NAND flash memory.
`
`5.
`
`The system of claim 1, wherein the SLC non-volatile memory module
`
`is NAND flash memory.
`
`6.
`
`The system of claim 1, wherein the MLC non-volatile memory module
`
`is resistive random-access memory (RRAM).
`
`7.
`
`The system of claim 1, wherein the SLC non-volatile memory module
`
`is resistive random-access memory (RRAM).
`
`8.
`
`The system of claim 1, wherein the MLC non-volatile memory module
`
`is phase change memory (PCM).
`
`9.
`
`The system of claim 1, wherein the SLC non-volatile memory module
`
`is phase change memory (PCM).
`
`16
`
`Micron Ex. 1002, p. 17
`Micron v. Vervain
`IPR2021-01547
`
`

`

`10. The system of claim 1, wherein the SLC non-volatile memory module
`
`is magnetic random-access memory (MAGRAM).
`
`11. The system of claim 1, wherein the controller is further adapted to
`
`determine which of the blocks of the plurality of the blocks in the MLC and
`
`SLC non-volatile memory modules are accessed most frequently and
`
`wherein the controller allocates those blocks that receive the most frequent
`
`writes to the at least one SLC non-volatile memory module.
`
`12. The system of claim 11, wherein the controller determines which of
`
`the blocks of the plurality of the blocks in the MLC and SLC non-volatile
`
`memory modules are accessed most frequently by maintaining a count of
`
`the number of times each one of said blocks is accessed.
`
`13. The system of claim 12, wherein the controller allocates those blocks
`
`that receive the most frequent writes by transferring the respective contents
`
`of those blocks to the at least one SLC non-volatile memory module.
`
`14. The system of claim 13, wherein the controller causes the transfer of
`
`content on a periodic basis.
`
`17
`
`Micron Ex. 1002, p. 18
`Micron v. Vervain
`IPR2021-01547
`
`

`

`[0032]
`
`A flash controller for managing at least one MLC non-volatile memory
`
`ABSTRACT
`
`module and at least one SLC non-volatile memory module. The flash
`
`controller is adapted to determine if a range of addresses listed by an entry
`
`and mapped to said at least one MLC non-volatile memory module fails a
`
`data integrity test. In the event of such a failure, the controller remaps said
`
`entry to an equivalent range of addresses of said at least one SLC non(cid:173)
`
`volatile memory module. The flash controller is further adapted to determine
`
`which of the blocks in the MLC and SLC non-volatile memory modules are
`
`accessed most frequently and allocating those blocks that receive frequent
`
`writes to the

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket