Aspects of the disclosure provide a method and an apparatus that perform a background media scan (bgms) with improved efficiency. In particular, the disclosed bgms processes can monitor data retention performance of a large capacity solid state drive (SSD) without significantly increasing scanning overhead by scanning only some sample pages of a memory block.
|
1. A method of monitoring a non-volatile memory (nvm) using a background media scan (bgms), comprising:
performing the bgms on a plurality of blocks of the nvm during a predetermined bgms scan period, the bgms comprising scanning a sample of pages included in each block of the plurality of blocks, wherein the scanning the sample of pages comprises scanning a first predetermined page, a second predetermined page, and a randomly selected page of a block of the plurality of blocks;
determining a read error among the sample of pages of a block of the plurality of blocks; and
scanning all pages of the block containing the read error.
10. A solid state drive (SSD) comprising:
a non-volatile memory (nvm); and
a processor coupled to the nvm,
wherein the processor is configured to:
perform a background media scan (bgms) on a plurality of blocks of the nvm during a predetermined bgms scan period, the bgms comprising scanning a sample of pages included in each block of the plurality of blocks, wherein the scanning the sample of pages comprises scanning a first predetermined page, a second predetermined page, and a randomly selected page of a block of the plurality of blocks;
determine a read error among the sample of pages in a block of the plurality of blocks; and
scan all pages of the block containing the read error.
2. The method of
randomly selecting a first page of the block;
scanning the first page of the block;
randomly selecting a second page of the block different from the first page; and
scanning the second page of the block.
3. The method of
randomly selecting a first page in a first portion of the block; and
randomly selecting a second page in a second portion of the block different from the first portion.
4. The method of
scanning a page associated with a beginning wordline of a block of the blocks;
scanning a page associated with an ending wordline of the block; and
scanning a page associated with a wordline of the block arranged between the beginning wordline and the ending wordline.
5. The method of
scanning only one page among a plurality of pages associated with a same wordline of each block of the plurality of blocks.
6. The method of
determining a first time when data is written to a block of the plurality of blocks; and
prohibiting writing of data to the block at a second time later than the first time by a predetermined time interval.
7. The method of
increasing the number of times of performing the bgms on the plurality of blocks in the bgms scan period in response to determining the read error.
11. The SSD of
randomly select a first page of the block;
scan the first page of the block;
randomly select a second page of the block different from the first page; and
scan the second page of the block.
12. The SSD of
randomly select a first page in a first portion of the block; and
randomly select a second page in a second portion of the block different from the first portion.
13. The SSD of
scan a page associated with a beginning wordline of a block of the blocks;
scan a page associated with an ending wordline of the block; and
scan a page associated with a wordline of the block arranged between the beginning wordline and the ending wordline.
14. The SSD of
scan only one page among a plurality of pages associated with a same wordline of each block of the plurality of blocks.
15. The SSD of
determine a first time when data is written to a block of the plurality of blocks; and
prohibit writing of data to the block at a second time later than the first time by a predetermined time interval.
16. The SSD of
increase the number of times of performing the bgms on the plurality of blocks in the bgms scan period in response to determining the read error.
|
Aspects of the present disclosure generally relate to data storage devices, and more specifically, to monitoring of memory using a background media scan (BGMS).
In a variety of consumer electronics and computers, solid state drives incorporating non-volatile memories (NVMs) are frequently replacing or supplementing conventional rotating hard disk drives for mass storage. These non-volatile memories may include one or more flash memory devices, the flash memory devices may be logically divided into blocks, and each of the blocks may be further logically divided into addressable pages.
However, flash memory or the like are susceptible to data retention problems. Data retention is the ability of a memory cell or page to retain the stored data over a period of time in an unbiased state. Data retention time can be affected by various factors such as program/erase (P/E) cycles and operating temperature. In general, data retention time decreases as the number of P/E cycles increases. Operating the memory in elevated temperature for an extended period can also reduce data retention time.
The following presents a simplified summary of one or more aspects of the present disclosure, in order to provide a basic understanding of such aspects. This summary is not an extensive overview of all contemplated features of the disclosure, and is intended neither to identify key or critical elements of all aspects of the disclosure nor to delineate the scope of any or all aspects of the disclosure. Its sole purpose is to present some concepts of one or more aspects of the disclosure in a simplified form as a prelude to the more detailed description that is presented later.
Aspects of the disclosure provide a method and an apparatus that perform a background media scan (BGMS) with improved efficiency. In particular, the disclosed BGMS processes can monitor data retention performance of a large capacity solid state drive (SSD) without significantly increasing scanning overhead by scanning only some sample pages of a memory block.
In one aspect of the disclosure, this disclosure relates to a method for a method of monitoring a non-volatile memory (NVM) using a background media scan (BGMS). The method performs the BGMS on a plurality of blocks of the NVM during a predetermined BGMS scan that scans a sample of pages included in each block of the plurality of blocks. The method further determines a read error among the sample of pages of a block of the plurality of blocks. When an error is found in a block, the method scans all pages of the block containing the read error.
In another aspect of the disclosure, this disclosure relates to a solid state drive (SSD) that includes a non-volatile memory (NVM) and a processor coupled to the NVM. The processor is configured to perform a background media scan (BGMS) on a plurality of blocks of the NVM during a predetermined BGMS scan period. The BGMS scans a sample of pages included in each block of the plurality of blocks. The processor is further configured to determine a read error among the sample of pages in a block of the plurality of blocks. If an error is found in a block, the processor is configured to scan all pages of the block containing the read error.
In another aspect of the disclosure, this disclosure relates to a solid state drive (SSD) comprising a non-volatile memory (NVM). The SSD further includes means for performing a background media scan (BGMS) on a plurality of blocks of the NVM during a predetermined BGMS scan period, and the BGMS scans a sample of pages included in each block of the plurality of blocks. The SSD further includes means for determining a read error among the sample of pages of a block of the plurality of blocks and means for scanning all pages of the block containing the read error.
Referring now to the drawings, systems, and methods of using a background media scan (BGMS) for monitoring data retention error of a data storage device or memory device are illustrated. While the BGMS is illustrated using a memory included in a solid state drive (SSD), the present disclosure is not limited as such, but may be extended to other data storage devices. The BGMS processes described in this disclosure can be used to monitor data retention performance of a large capacity SSD without significantly increasing scanning overhead. Moreover, the BGMS processes of the present disclosure can effectively monitor data retention error of a memory block by scanning only some sample pages of the block. The described BGMS processes can also discover and/or fix error locations on the SSD before the error locations are encountered by a host accessing the data storage memory of the SSD.
The SSD 104 includes a host interface 106, a controller 108, a memory 110, a non-volatile memory 112, and a timer 114. The host interface 106 is coupled to the controller 108 and facilitates communication between the host 102 and the controller 108. The SSD 104 may utilize the timer 114 for various functions including, for example, tracking the time when certain data is written to the NVM 112. Additionally, the controller 108 is coupled to the memory 110 and the non-volatile memory 112. The host interface 106 may be any type of communication interface, such as an Integrated Drive Electronics (IDE) interface, a Universal Serial Bus (USB) interface, a Serial Peripheral (SP) interface, an Advanced Technology Attachment (ATA) interface, a Small Computer System Interface (SCSI), an IEEE 1394 (Firewire) interface, or the like. In some embodiments, the host 102 includes the SSD 104. In other embodiments, the SSD 104 is remote with respect to the host 102 or is contained in a remote computing system coupled in communication with the host 102. For example, the host 102 may communicate with the SSD 104 through a wired and/or wireless communication link.
The controller 108 controls operation of the SSD 104. In various embodiments, the controller 108 receives commands from the host 102 through the host interface 106 and performs the commands to transfer data between the host 102 and the non-volatile memory 112. The controller 108 may include any type of processing device, such as a microprocessor, a microcontroller, an embedded controller, a logic circuit, software, firmware, a combination of the above devices, or the like, for controlling the operation of the SSD 104.
In some embodiments, some or all of the functions described herein as being performed by the controller 108 may instead be performed by another element of the SSD 104. In one aspect, the controller 108 can be a special purpose controller specifically configured/programmed to perform any of the functions contained within the application. For example, the SSD 104 may include a microprocessor, a microcontroller, an embedded controller, a logic circuit, a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), software, firmware, or any kind of processing device, for performing one or more of the functions described herein as being performed by the controller 108. In some embodiments, one or more of the functions described herein as being performed by the controller 108 are instead performed by the host 102. In some embodiments, some or all of the functions described herein as being performed by the controller 108 may instead be performed by another element such as a controller in a hybrid drive including both non-volatile memory elements and magnetic storage elements.
The memory 110 may be any memory, computing device, or system capable of storing data. For example, the memory 110 may be a random-access memory (RAM), a dynamic random-access memory (DRAM), a static random-access memory (SRAM), a synchronous dynamic random-access memory (SDRAM), or the like. In various embodiments, the controller 108 uses the memory 110, or a portion thereof, to store data during the transfer of data between the host 102 and the non-volatile memory 112. For example, the memory 110 or a portion of the memory 110 may be a cache memory.
The non-volatile memory (NVM) 112 receives data from the controller 108 and stores the data. The non-volatile memory 112 may include one or more types of non-volatile data storages, such as a flash storage system, a solid state drive, a flash memory card, a secure digital (SD) card, a universal serial bus (USB) memory device, a CompactFlash card, a SmartMedia device, a flash storage array, a flash storage, an erasable programmable read-only-memory (EPROM), an electrically erasable programmable read-only-memory (EEPROM), magnetoresistive random-access memory, non-volatile RAM, ferroelectric RAM, or phase-change RAM, or the like.
In some applications, the NVM 112 may include flash memory that may be written and read in a plurality of blocks. One example of flash memory is the negative-AND (NAND) type flash memory that is commonly used in solid state storage devices and systems. The data storage of the NAND flash is organized in terms of blocks. Each block is divided into a certain number of pages that is the smallest unit that data can be written to the NAND flash. When a page is written with data, it is no longer available for storing new data unless it is first erased. To erase a particular page, the entire block that contains that page is erased. Flash memory can be written and read reliably for a finite number of program/erase (P/E) cycles. However, even before the P/E cycles limit is reached, data retention at the flash memory will deteriorate over time and affect the integrity and reliability of the stored data.
A background media scan (BGMS) may be used to monitor data retention errors at the flash memory so that certain actions may be taken proactively to prevent potential data lost and maintain data integrity. The BGMS also can protect the flash memory from potentially high data retention error caused by cells that are not or rarely read. When a memory cell is not read or rarely read for an extended period, the error level is unknown and therefore proactive measurements would not be performed to maintain data integrity.
The flash memory 200 may be included in the NVM 112 of the SSD 104. When a BGMS is performed on the flash memory (e.g., NVM 112), SSD performance will be affected because some cycle times are used for performing the BGMS. However, the BGMS needs to be performed with significant frequency to detect data retention problem before data integrity is compromised. For example, the BGMS may be performed at least once every twenty-four hours to check all of the pages in all of the blocks in the flash memory. However, as the size of the flash memory included in the SSD continues to increase, the time it takes to scan all of the pages will become a significant overhead that impacts the performance of the SSD 104. Although it is possible to lengthen the time interval between successive BGMSs, doing so may reduce the effectiveness of the BGMS to detect data retention errors.
In one embodiment of the disclosure, only some sample pages of a block are scanned using the BGMS instead of scanning every page such that significant performance impact to the SSD 104 may be avoided or reduced even when a block contains a large number of pages.
At block 504, the SSD may determine a read error occurred in one or more of the scanned pages. The SSD may determine a read error in the sample pages. The read error may be indicative of a data retention error of the page with the read error. In one embodiment, the block 504 may be effectuated with the controller 108, or with the controller 108 in combination with the host 102 as illustrated in
If error is detected, at block 506, the SSD scans all pages of the block containing the read error. That is, if the SSD determines that a read error is present in any of the scanned sample pages, the SSD scans all pages of that block with the page having the read error. In one embodiment, the block 506 may be effectuated with the controller 108, or with the controller 108 in combination with the host 102 as illustrated in
Since the pages in a single memory block tend to have similar data retention error characteristics that are a function of the number of P/E cycles and data retention time on that block, it may not be necessary to scan the entire block to achieve a high level of confidence in detecting critically high levels of data retention errors in the block. Instead, scanning a limited number of pages (e.g., sample pages) may be sufficient to monitor a block as illustrated in
At block 704, the SSD may select one or more ending wordlines of the block. In one example, the last two ending wordlines (e.g., WLn−1 and WLn of
At block 706, the SSD may randomly select wordlines between the selected beginning wordline(s) and ending wordline(s). In one example, two such wordlines may be randomly selected each time a BGMS is performed. In some examples, different wordlines are randomly rotated between the beginning wordlines and ending wordlines in each BGMS. Therefore, all wordlines between the beginning wordlines and ending wordlines will get a chance to be scanned in a random fashion. In one embodiment of the disclosure, the SSD may scan only one of the pages (e.g., an upper page) control by the selected wordline. In one example, referring to
At block 902, an SSD 104 may write data to a memory block 200 at a certain point in time (e.g., a first time point) and start a timer 114. At this instance, it may be assumed that all the pages of this block are available for writing. At decision block 904, the SSD determines whether the timer has expired or not. In one example, the timer may be set to expire in five minutes or any predetermined time period. If it is determined that the timer has not expired, the SSD may write more date to the memory block at block 906; otherwise, writing to the memory block is not allowed or prohibited at block 908 until the timer is reset. The timer may be reset when the SSD performs a garbage collection operation. Garbage collection is a process that removes data from a page that is no longer needed. The SSD may perform garbage collection periodically or on-demand by the host. In a flash memory, data is written in units of pages. When the data in some pages of a block are no longer needed or stale, the pages with good data in that block may be read and rewritten into another previously erased empty block. Then the block with the stale pages may be erased to free those stale pages for storing new data. This process is commonly known as garbage collection or the like.
While the above description contains many specific embodiments of the invention, these should not be construed as limitations on the scope of the invention, but rather as examples of specific embodiments thereof. Accordingly, the scope of the invention should be determined not by the embodiments illustrated, but by the appended claims and their equivalents.
The various features and processes described above may be used independently of one another, or may be combined in various ways. All possible combinations and sub-combinations are intended to fall within the scope of this disclosure. In addition, certain method, event, state or process blocks may be omitted in some implementations. The methods and processes described herein are also not limited to any particular sequence, and the blocks or states relating thereto can be performed in other sequences that are appropriate. For example, described tasks or events may be performed in an order other than that specifically disclosed, or multiple may be combined in a single block or state. The example tasks or events may be performed in serial, in parallel, or in some other suitable manner Tasks or events may be added to or removed from the disclosed example embodiments. The example systems and components described herein may be configured differently than described. For example, elements may be added to, removed from, or rearranged compared to the disclosed example embodiments.
Barndt, Richard David, Chang, Hung-Min, Yeh, Hung-Cheng, Lo, Jerry, Cometti, Aldo Giovanni
Patent | Priority | Assignee | Title |
ER8000, |
Patent | Priority | Assignee | Title |
5097446, | May 23 1988 | Hitachi, Ltd.; Hitachi VLSI Engineering Corp. | Nonvolatile semiconductor memory device |
20080239851, | |||
20090055697, | |||
20100165689, | |||
20130346805, | |||
20160077903, | |||
20170147209, | |||
20170206131, | |||
20180074701, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 09 2016 | BARNDT, RICHARD DAVID | Western Digital Technologies, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 040753 | /0991 | |
Dec 12 2016 | LO, JERRY | Western Digital Technologies, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 040753 | /0991 | |
Dec 12 2016 | YEH, HUNG-CHENG | Western Digital Technologies, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 040753 | /0991 | |
Dec 12 2016 | CHANG, HUNG-MIN | Western Digital Technologies, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 040753 | /0991 | |
Dec 16 2016 | COMETTI, ALDO GIOVANNI | Western Digital Technologies, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 040753 | /0991 | |
Dec 22 2016 | Western Digital Technologies, Inc. | (assignment on the face of the patent) | / | |||
Jan 13 2020 | Western Digital Technologies, INC | JPMORGAN CHASE BANK, N A , AS AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 052915 | /0566 | |
Feb 03 2022 | JPMORGAN CHASE BANK, N A | Western Digital Technologies, INC | RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 | 059127 | /0001 | |
Aug 18 2023 | Western Digital Technologies, INC | JPMORGAN CHASE BANK, N A | PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT | 064715 | /0001 | |
Aug 18 2023 | Western Digital Technologies, INC | JPMORGAN CHASE BANK, N A | PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT | 067045 | /0156 | |
May 03 2024 | Western Digital Technologies, INC | SanDisk Technologies, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 067567 | /0682 | |
Jun 21 2024 | SanDisk Technologies, Inc | SanDisk Technologies, Inc | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 067982 | /0032 | |
Aug 20 2024 | SanDisk Technologies, Inc | JPMORGAN CHASE BANK, N A , AS THE AGENT | PATENT COLLATERAL AGREEMENT | 068762 | /0494 |
Date | Maintenance Fee Events |
Jul 12 2023 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Jan 28 2023 | 4 years fee payment window open |
Jul 28 2023 | 6 months grace period start (w surcharge) |
Jan 28 2024 | patent expiry (for year 4) |
Jan 28 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jan 28 2027 | 8 years fee payment window open |
Jul 28 2027 | 6 months grace period start (w surcharge) |
Jan 28 2028 | patent expiry (for year 8) |
Jan 28 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jan 28 2031 | 12 years fee payment window open |
Jul 28 2031 | 6 months grace period start (w surcharge) |
Jan 28 2032 | patent expiry (for year 12) |
Jan 28 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |