1. Technical Field
Apparatuses and methods consistent with the present inventive concept relate generally to data storage devices, and in particular to selectively skipping memory blocks during write operations in solid state data storage devices.
2. Related Art
A data storage system may include various volatile and non-volatile storage devices such as a hard disk drive (HDD), an optical storage drive, and a solid state drive (SSD). An SSD provides increased throughput capability due to its parallel architecture incorporating a plurality of solid state memory devices and data striping across the plurality of memory devices. A representative solid state memory device is illustrated in
The solid state memory device 100 includes a plurality of blocks 110 with each block including a plurality of pages 120. The blocks in the memory device 100 may be divided into planes of even-numbered blocks 130 and odd-numbered blocks 140. In an example embodiment, there are 2,048 blocks per memory device configured with 16 channels, with one channel providing access to an active memory device in that channel.
Conventionally, a solid state memory device contains additional otherwise unused replacement memory areas which are logically mapped to memory locations that are unable to be used. However, this method is inefficient as it results in wasted unused memory in the replacement memory areas. Further, memory locations in the replacement memory may have different characteristics than the memory locations they are logically mapped to as a result of different wear (i.e., different number of read/write/erase cycles) leading to inconsistent results during data read and write operations.
Aspects and features of the present inventive concept will be more apparent by describing example embodiments with reference to the accompanying drawings, in which:
While certain embodiments are described, these embodiments are presented by way of example only, and are not intended to limit the scope of protection. The methods and systems described herein may be embodied in a variety of other forms. Furthermore, various omissions, substitutions, and changes in the form of the example methods and systems described herein may be made without departing from the scope of protection.
Overview
The present inventive concept provides for a mechanism for selectively skipping memory blocks in an SSD so they are not written to or read from. The skipped memory blocks may be referred to as “holes.”
The SSD controller 310 may include a command queue 322, a command interface 316, and a data interface 320. In some example embodiments, the data interface 320 may be separate from the SSD controller 310.
The SSD controller 310 receives commands through the command interface 316 and controls overall operation of the SSD 300. The SSD controller 310, may be configured to perform memory management processes, for example, but not limited to, write memory blocks in a predefined sequence, detect a defective memory block in the plurality of solid state memory devices, mark the detected memory block as defective and store an address of a next non-defective memory block. The data interface 320 buffers incoming and outgoing data to be written to or read from the SSD 300.
In response to data to be written to a marked memory block, the controller may perform operations to skip the marked memory block and write data to, or read data from, the next non-marked memory block.
A storage 312 stores information including, but not limited to, block information identifying defective memory blocks in the plurality of memory devices 100 as well as information identifying a next non-defective memory block. The block information may be embedded in a block information data structure 314 in the storage 312.
The block information data structure 314 may act as, in effect, a “pointer” to the next non-hole block. In this way, any intervening hole(s)/blocks in writing or reading a page that may “span” across two blocks separated by such hole(s)/block(s) may be automatically skipped over.
Selective Skipping of Memory Blocks
Some embodiments of the present inventive concept provide for a mechanism for selectively skipping memory blocks in an SSD so they are not written to and read from. The skipped memory blocks may be referred to as “holes.”
As illustrated in
One of ordinary skill in the art will appreciate that memory blocks marked as holes may similarly be skipped during read operations.
In a multi-plane (i.e., two or more planes) memory device, when the memory blocks in less than all of the planes in a solid state memory devices are defective, the controller may mark the detected memory blocks as defective and skip only the marked memory blocks during a write or read operation to the solid state memory device.
In an example embodiment, if a weak block is detected, its wear can be selectively modulated (i.e., slowed) by periodically marking it as a “hole.” For example, a weaker block can be marked as a “hole” every 2nd write cycle so that it incurs half of program/erase (P/E) cycles as other memory blocks. In one embodiment, the present inventive concept can also be implemented to mark a block as a “hole” every 3rd cycle, 4th cycle, etc. so that different blocks can undergo different wear schedules. Alternatively, in an example embodiment, a block may be marked as a “hole” every n out of m cycles, where n and m are integer values with m>n. The marking may be cleared after a certain number of write cycles are executed. As will be described further below, certain metadata associated with the blocks may be tracked and retained and can be used to determine whether a block is weak. For example, a block may be deemed to be weak if it requires an error correction level of protection that is above a predetermined threshold.
In an example embodiment, at the S-Block level, every other (e.g., 3rd, 4th, etc.) memory block can be marked as a “hole” so that only some the blocks are written each cycle. Those blocks marked as “holes” can alternate/rotate between cycles.
The block information data structure 314 tracks metadata related to each block in the data storage system. There may be 256 blocks in an S-Block. Metadata may include information including, but not limited to, P/E count, read disturb count, low-density parity-check (LDPC) information, E-page format, etc. The E-Page format field may be used to signify the E-Page size in use within the block. The E-Page size is used to reflect the strength of the error correction code (ECC) encoding used (larger ECC equates to smaller E-page size due to more bits devoted for parity data usage).
Within the E-page format field, a special code may be used to signify that a memory block is to be skipped (i.e., treated as a “hole”) in the system so that data is not written to the block. For example, the Block Information data structure may have a code which indexes into another table which provides an E-Page size to the code. One special size may be reserved for a page “hole.” Each page may have a code indicating that it is a “hole.” The code may be used to skip upper pages, first/last pages if they are weak, etc.
During a write or read operation, the block information data structure 314 is read for the block to which data is to be written to or read from (518). If the block information indicates that the block is not a “hole” (520-N), the data is written to or read from the block (522).
If the block information indicates that the block is a “hole” (520-Y), the address of the next non-defective (i.e., “good”) block is read from the block information data structure 314 (524) and the data is written to or read from the non-defective block (522). If there are more blocks to read/write (526-Y), the block information of the next block in the S-block is read (528) and the process continues at operation 520. Otherwise (526-N), the process ends.
During a write or read operation for the current block, the block information data structure is read to obtain the address of the next good block (558) and data is written to or read from the current block (560). If there are more blocks to read/write (562-Y), the address of the next good block that was read from the block information data structure is used to point to the next good block (564) and the process continues at operation 558. Otherwise (562-N), the process ends.
In the method of
If the block information identifies the current block as a good (i.e., non-defective) block (640-N), data is written to or read from the block (660). If there are more blocks to read/write (670-Y), block information for the next block in the S-block is read (650) and the process continues at operation 640. Otherwise (670-N), the process ends.
The example embodiments disclosed herein can be applied to solid state drives, hybrid hard drives, and the like. Solid-state memory may comprise a wide variety of technologies, such as flash integrated circuits, Phase Change Memory (PC-RAM or PRAM), Programmable Metallization Cell RAM (PMC-RAM or PMCm), Ovonic Unified Memory (OUM), Resistance RAM (RRAM), NAND memory, NOR memory, EEPROM, Ferroelectric Memory (FeRAM), MRAM, or other discrete NVM (non-volatile solid-state memory) chips. In addition, other forms of storage, for example, but not limited to, DRAM or SRAM, battery backed-up volatile DRAM or SRAM devices, EPROM, EEPROM memory, etc., may additionally or alternatively be used. As another example, the various components illustrated in the figures may be implemented as software and/or firmware on a processor, ASIC/FPGA, or dedicated hardware. Also, the features and attributes of the specific example embodiments disclosed above may be combined in different ways to form additional embodiments, all of which fall within the scope of the present disclosure.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the protection. The methods and systems described herein may be embodied in a variety of other forms. Various omissions, substitutions, and/or changes in the form of the example methods and systems described herein may be made without departing from the spirit of the protection.
Other embodiments that are apparent to those of ordinary skill in the art, including embodiments which do not provide all of the features and advantages set forth herein, are also within the scope of this disclosure. Accordingly, the scope of the present disclosure is intended to be defined only by reference to the appended claims.
This application claims the benefit of U.S. provisional application No. 61/901,958, filed Nov. 8, 2013, the disclosure of which is hereby incorporated in its entirety by reference.
Number | Name | Date | Kind |
---|---|---|---|
5696927 | MacDonald et al. | Dec 1997 | A |
6240525 | Chiang | May 2001 | B1 |
6856556 | Hajeck | Feb 2005 | B1 |
7126857 | Hajeck | Oct 2006 | B2 |
7430136 | Merry, Jr. et al. | Sep 2008 | B2 |
7447807 | Merry et al. | Nov 2008 | B1 |
7502256 | Merry, Jr. et al. | Mar 2009 | B2 |
7509441 | Merry et al. | Mar 2009 | B1 |
7596643 | Merry et al. | Sep 2009 | B2 |
7653778 | Merry, Jr. et al. | Jan 2010 | B2 |
7685337 | Merry, Jr. et al. | Mar 2010 | B2 |
7685338 | Merry, Jr. et al. | Mar 2010 | B2 |
7685374 | Diggs et al. | Mar 2010 | B2 |
7733712 | Walston et al. | Jun 2010 | B1 |
7765373 | Merry et al. | Jul 2010 | B1 |
7898855 | Merry, Jr. et al. | Mar 2011 | B2 |
7912991 | Merry et al. | Mar 2011 | B1 |
7936603 | Merry, Jr. et al. | May 2011 | B2 |
7962792 | Diggs et al. | Jun 2011 | B2 |
8078918 | Diggs et al. | Dec 2011 | B2 |
8090899 | Syu | Jan 2012 | B1 |
8095851 | Diggs et al. | Jan 2012 | B2 |
8108692 | Merry et al. | Jan 2012 | B1 |
8122185 | Merry, Jr. et al. | Feb 2012 | B2 |
8127048 | Merry et al. | Feb 2012 | B1 |
8135903 | Kan | Mar 2012 | B1 |
8151020 | Merry, Jr. et al. | Apr 2012 | B2 |
8161227 | Diggs et al. | Apr 2012 | B1 |
8166245 | Diggs et al. | Apr 2012 | B2 |
8243525 | Kan | Aug 2012 | B1 |
8254172 | Kan | Aug 2012 | B1 |
8261012 | Kan | Sep 2012 | B2 |
8285919 | Luo et al. | Oct 2012 | B2 |
8296625 | Diggs et al. | Oct 2012 | B2 |
8312207 | Merry, Jr. et al. | Nov 2012 | B2 |
8316176 | Phan et al. | Nov 2012 | B1 |
8341339 | Boyle et al. | Dec 2012 | B1 |
8375151 | Kan | Feb 2013 | B1 |
8392635 | Booth et al. | Mar 2013 | B2 |
8397107 | Syu et al. | Mar 2013 | B1 |
8407449 | Colon et al. | Mar 2013 | B1 |
8423722 | Deforest et al. | Apr 2013 | B1 |
8433858 | Diggs et al. | Apr 2013 | B1 |
8443167 | Fallone et al. | May 2013 | B1 |
8447920 | Syu | May 2013 | B1 |
8458435 | Rainey, III et al. | Jun 2013 | B1 |
8478930 | Syu | Jul 2013 | B1 |
8489854 | Colon et al. | Jul 2013 | B1 |
8503237 | Horn | Aug 2013 | B1 |
8521972 | Boyle et al. | Aug 2013 | B1 |
8549236 | Diggs et al. | Oct 2013 | B2 |
8583835 | Kan | Nov 2013 | B1 |
8601311 | Horn | Dec 2013 | B2 |
8601313 | Horn | Dec 2013 | B1 |
8612669 | Syu et al. | Dec 2013 | B1 |
8612804 | Kang et al. | Dec 2013 | B1 |
8615681 | Horn | Dec 2013 | B2 |
8638602 | Horn | Jan 2014 | B1 |
8639872 | Boyle et al. | Jan 2014 | B1 |
8683113 | Abasto et al. | Mar 2014 | B2 |
8700834 | Horn et al. | Apr 2014 | B2 |
8700950 | Syu | Apr 2014 | B1 |
8700951 | Call et al. | Apr 2014 | B1 |
8706985 | Boyle et al. | Apr 2014 | B1 |
8707104 | Jean | Apr 2014 | B1 |
8713066 | Lo et al. | Apr 2014 | B1 |
8713357 | Jean et al. | Apr 2014 | B1 |
8719531 | Strange et al. | May 2014 | B2 |
8724422 | Agness et al. | May 2014 | B1 |
8725931 | Kang | May 2014 | B1 |
8745277 | Kan | Jun 2014 | B2 |
8751728 | Syu et al. | Jun 2014 | B1 |
8769190 | Syu et al. | Jul 2014 | B1 |
8769232 | Suryabudi et al. | Jul 2014 | B2 |
8775720 | Meyer et al. | Jul 2014 | B1 |
8782327 | Kang et al. | Jul 2014 | B1 |
8788778 | Boyle | Jul 2014 | B1 |
8788779 | Horn | Jul 2014 | B1 |
8788880 | Gosla et al. | Jul 2014 | B1 |
8793429 | Call et al. | Jul 2014 | B1 |
20050022084 | Hii et al. | Jan 2005 | A1 |
20090083591 | Brune et al. | Mar 2009 | A1 |
20090157950 | Selinger | Jun 2009 | A1 |
20100095148 | Cheng | Apr 2010 | A1 |
20100122148 | Flynn et al. | May 2010 | A1 |
20100174849 | Walston et al. | Jul 2010 | A1 |
20100250793 | Syu | Sep 2010 | A1 |
20110066793 | Burd | Mar 2011 | A1 |
20110099323 | Syu | Apr 2011 | A1 |
20110131472 | Antonakopoulos et al. | Jun 2011 | A1 |
20110283049 | Kang et al. | Nov 2011 | A1 |
20120005561 | Trager et al. | Jan 2012 | A1 |
20120159262 | Santana da Costa et al. | Jun 2012 | A1 |
20120239972 | Shibata et al. | Sep 2012 | A1 |
20120260020 | Suryabudi et al. | Oct 2012 | A1 |
20120278531 | Horn | Nov 2012 | A1 |
20120284460 | Guda | Nov 2012 | A1 |
20120324191 | Strange et al. | Dec 2012 | A1 |
20130132638 | Horn et al. | May 2013 | A1 |
20130145106 | Kan | Jun 2013 | A1 |
20130290793 | Booth et al. | Oct 2013 | A1 |
20140059405 | Syu et al. | Feb 2014 | A1 |
20140101369 | Tomlin et al. | Apr 2014 | A1 |
20140115427 | Lu | Apr 2014 | A1 |
20140133220 | Danilak et al. | May 2014 | A1 |
20140136753 | Tomlin et al. | May 2014 | A1 |
20140149826 | Lu et al. | May 2014 | A1 |
20140157078 | Danilak et al. | Jun 2014 | A1 |
20140181432 | Horn | Jun 2014 | A1 |
20140223255 | Lu et al. | Aug 2014 | A1 |
Entry |
---|
Mei-Man L. Syu, et al., U.S. Appl. No. 13/713,561, filed Dec. 13, 2012, 21 pages. |
Number | Date | Country | |
---|---|---|---|
61901958 | Nov 2013 | US |