A system includes memory dice, each having a register to store multiple read voltage levels. A processing device is to test each memory die by verification, via access to the multiple read voltage levels, whether each read voltage level falls within a corresponding relative voltage range. The processing device selects an initial read voltage level that achieves bit error rates not satisfying a threshold criterion at one of a first or a second shortest write-to-read (W2R) delay for the memory die and determines a bit error rate, using the initial read voltage level, of storage units of the memory die. The processing device reports the memory die as defective in response to one of: (i) a read voltage level, of the multiple read voltage levels, failing to verify; or (ii) the bit error rate of one or more storage units of the memory die satisfying the threshold criterion.
|
14. A non-transitory machine-readable storage medium storing instructions, which when executed by a processing device, cause the processing device to, for a memory die of a plurality of memory dice of a memory sub-system:
verify, via access to read voltage levels stored in the memory die, that each read voltage level falls within a corresponding relative voltage range;
select an initial read voltage level, of the read voltage levels, that achieves bit error rates not satisfying a threshold criterion to one of a first, a second, or a third shortest write-to-read (W2R) delay range for the memory die;
cause data to be written to storage units of the memory die;
cause the data to be read, using the initial read voltage level, from the storage units of the memory die; and
determine a bit error rate based on reading of the data from the storage units of the memory die.
7. A method comprising testing, using at least one processing device, a plurality of memory dice of a memory sub-system during manufacturing of the memory sub-system, wherein testing a memory die of the plurality of memory dice comprises:
verifying, via access to read voltage levels stored in the memory die, that each read voltage level falls within a corresponding relative voltage range;
selecting an initial read voltage level, of the read voltage levels, that achieves bit error rates not satisfying a threshold criterion at one of a first, a second, or a third shortest write-to-read (W2R) delay range for the memory die; and
performing a bit error rate check comprising:
writing data to storage units of the memory die;
reading, using the initial read voltage level, the data from the storage units of the memory die; and
determining a bit error rate based on the reading the data from the storage units of the memory die.
1. A system comprising:
a plurality of memory dice, each memory die comprising a register to store multiple read voltage levels for the memory die; and
a processing device coupled to the plurality of memory dice, wherein to test a memory die of the plurality of memory dice, the processing device is to:
verify, via access to the multiple read voltage levels stored in the register of the memory die, whether each read voltage level falls within a corresponding relative voltage range;
select an initial read voltage level, of the multiple read voltage levels, that achieves bit error rates not satisfying a threshold criterion at one of a first or a second shortest write-to-read (W2R) delay range for the memory die;
determine a bit error rate, using the initial read voltage level, of storage units of the memory die, wherein each storage unit comprises one or more codewords; and
report the memory die as defective in response to one of: (i) a read voltage level, of the multiple read voltage levels, failing to verify; or (ii) the bit error rate of one or more storage units of the memory die satisfying the threshold criterion.
2. The system of
verify that a second read voltage level is higher than a first read voltage level of the multiple read voltage levels;
verify that a third read voltage level is higher than the second read voltage level; and
verify that a fourth read voltage level is higher than the third read voltage level.
3. The system of
verify that a second read voltage level falls between a first read voltage level plus a first minimum offset voltage and the first read voltage level plus a first maximum offset voltage;
verify that a third read voltage level falls between the first read voltage level plus a second minimum offset voltage and the first read voltage level plus a second maximum offset voltage, wherein the second minimum offset voltage is greater than the first minimum offset voltage, and wherein the second maximum offset voltage is greater than the first maximum offset voltage; and
verify that a fourth read voltage level falls between the first read voltage level plus a third minimum offset voltage and the first read voltage level plus a third maximum offset voltage, wherein the third minimum offset voltage is greater than the second minimum offset voltage, and wherein the third maximum offset voltage is greater than the second maximum offset voltage.
4. The system of
sequentially write data to a number of the storage units of the memory die until expiration of an optimal W2R delay period;
sequentially read, using the initial read voltage level, the data from the number of the storage units of the memory die until having read the number of the storage units that were previously written, wherein each read operation is performed at the optimal W2R delay period after a corresponding write operation for a storage unit of the number of storage units; and
track the bit error rate based on the sequential reading of the data from the number of the storage units of the memory die.
5. The system of
6. The system of
select a secondary read voltage level of the multiple read voltage levels that achieves bit error rates not satisfying a second threshold criterion at another of the first or the second shortest W2R delay range for the memory die;
determine a second bit error rate, using the secondary read voltage level, of storage units of the memory die; and
report the memory die as defective in response to the second bit error rate of one or more of the storage units of the memory die satisfying the second threshold criterion.
8. The method of
(i) verifying that a second read voltage level is higher than a first read voltage level;
(ii) verifying that a third read voltage level is higher than the second read voltage level;
(iii) verifying that a fourth read voltage level is higher than the third read voltage level; and
reporting the memory die as defective in response to failing to verify one of (i), (ii), or (iii).
9. The method of
(iv) verifying that the second read voltage level falls between the first read voltage level plus a first minimum offset voltage and the first read voltage level plus a first maximum offset voltage;
(v) verifying that the third read voltage level falls between the first read voltage level plus a second minimum offset voltage and the first read voltage level plus a second maximum offset voltage, wherein the second minimum offset voltage is greater than the first minimum offset voltage, and wherein the second maximum offset voltage is greater than the first maximum offset voltage;
(vi) verifying that the fourth read voltage level falls between the first read voltage level plus a third minimum offset voltage and the first read voltage level plus a third maximum offset voltage, wherein the third minimum offset voltage is greater than the second minimum offset voltage, and wherein the third maximum offset voltage is greater than the second maximum offset voltage; and
reporting the memory die as defective in response to failing to verify one of (iv), (v), or (vi).
10. The method of
11. The method of
selecting a secondary read voltage level, of the read voltage levels, that achieves bit error rates not satisfying the threshold criterion at another of the first, the second, or the third shortest W2R delay range for the memory die; and
wherein the performing the bit error rate check further comprises:
writing data to the storage units of the memory die;
reading, using the secondary read voltage level, the data from the storage units of the memory die;
determining a second bit error rate based on the reading of the data from the storage units of the memory die using the secondary read voltage level; and
reporting the memory die as defective in response to the second bit error rate of a threshold number of the storage units satisfying the threshold criterion.
12. The method of
sequentially writing to a plurality of the storage units until expiration of an optimal W2R delay period for the initial read voltage level; and
sequentially reading from the plurality of the storage units until having read the plurality of the storage units that were previously written, wherein each read operation is performed at the optimal W2R delay period after a corresponding write operation for a storage unit of the plurality of the storage units.
13. The method of
15. The non-transitory machine-readable storage medium of
(i) verify that a second read voltage level is higher than a first read voltage level;
(ii) verify that a third read voltage level is higher than the second read voltage level;
(iii) verify that a fourth read voltage level is higher than the third read voltage level; and
report the memory die as defective in response to failing to verify one of (i), (ii), or (iii).
16. The non-transitory machine-readable storage medium of
(iv) verify that the second read voltage level falls between the first read voltage level plus a first minimum offset voltage and the first read voltage level plus a first maximum offset voltage;
(v) verify that the third read voltage level falls between the first read voltage level plus a second minimum offset voltage and the first read voltage level plus a second maximum offset voltage, wherein the second minimum offset voltage is greater than the first minimum offset voltage, and wherein the second maximum offset voltage is greater than the first maximum offset voltage;
(vi) verify that the fourth read voltage level falls between the first read voltage level plus a third minimum offset voltage and the first read voltage level plus a third maximum offset voltage, wherein the third minimum offset voltage is greater than the second minimum offset voltage, and wherein the third maximum offset voltage is greater than the second maximum offset voltage; and
report the memory die as defective in response to failing verify one of (iv), (v), or (vi).
17. The non-transitory machine-readable storage medium of
18. The non-transitory machine-readable storage medium of
select a secondary read voltage level, of the read voltage levels, that achieves bit error rates not satisfying the threshold criterion at another of the first, the second, or the third W2R delay range for the memory die;
again cause data to be written to the storage units of the memory die;
cause the data to be read, using the secondary read voltage level, from the storage units of the memory die;
determine a second bit error rate based on reading the data from the storage units of the memory die using the secondary read voltage level; and
report the memory die as defective in response to the second bit error rate of one or more of the storage units satisfying the threshold criterion.
19. The non-transitory machine-readable storage medium of
cause the data to be sequentially written to a plurality of the storage units until expiration of an optimal W2R delay period for the initial read voltage level; and
cause the data to be sequentially read from the plurality of the storage units until having read the plurality of the storage units that were previously written, wherein each read operation is performed at the optimal W2R delay period after a corresponding write operation for a storage unit of the plurality of the storage units.
20. The non-transitory machine-readable storage medium of
during a last sequential write operation to a last plurality of the storage units of the memory die, cause a delay in sequential writing until expiration of a current optimal W2R delay period; and
cause the data to be sequentially read from the last plurality of the storage units.
|
Embodiments of the disclosure relate generally to memory sub-systems, and more specifically, related to read voltage-assisted manufacturing tests of memory sub-system.
A memory sub-system can include one or more memory components that store data. The memory components can be, for example, non-volatile memory components and volatile memory components. In general, a host system can utilize a memory sub-system to store data at the memory components and to retrieve data from the memory components.
The present disclosure will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the disclosure.
Aspects of the present disclosure are directed to read voltage-assisted manufacturing tests in memory sub-systems. A memory sub-system can be a storage device, a memory module, or a hybrid of a storage device and memory module. Examples of storage devices and memory modules are described below in conjunction with
The memory sub-system can include multiple memory components or memory devices that can store data from the host system. A memory sub-system manufacturing test (sometimes called a “self-test”) is a test flow run at manufacturing time to make sure that the memory sub-system meets a collection of technical specifications, e.g., functionality, temperature robustness, reliability, and the like. Examples of a memory sub-system tested in this way include, but are not limited to, a storage device that includes multiple memory dice or packages, a controller, a printed circuit board, and other components included within or associated with the memory sub-system. The memory sub-system can be incorporated within a larger computing device or drive, but for simplicity, the present disclosure will usually just refer to “memory sub-system.”
In various embodiments, the manufacturing test flow can include, but is not limited to, testing the basic functionality of storage units that make up individual memory dice (or packages), where each storage unit includes one or more codewords. A codeword is a granularity of memory cells at which a memory controller writes to the memory sub-system and on which error-correcting code (ECC) encoding and decoding are performed. The manufacturing test flow can further include testing the pre-condition of the storage units, scanning and mapping out bad physical storage units, scanning and logging the memory health (e.g., via determination of raw bit error rates (RBER) or fail bit count (FBC)), stress test under certain conditions, such as temperature or pressure. The test flow can be executed as a self-test by the memory sub-system itself, or may be performed by an external test device.
The test flow is to be performed during manufacturing or re-manufacturing of the memory sub-system before the memory sub-system is shipped. If the memory sub-system fails during these manufacturing test flows, then the memory sub-system is not shipped. Because the test flow delays shipment of the memory sub-system, manufacturers endeavor to complete these tests as quickly as possible to maximize manufacturing throughput. Testing the quality of the storage unit of the memory sub-system, however, can take a significant amount of time. For example, the bit error rate (BER) of reading various storage units of individual memory dice can vary with time for reasons that will be explained with reference to
For these reasons, manufacturers conventionally test BER at each read voltage level (corresponding to different W2R delays) or only test for a static BER, not taking into account varying W2R delays during testing. Either of these approaches carries certain disadvantages. To test for all read voltage levels (and thus various expected W2R delays) is to perform BER tests on memory dice at read voltage levels corresponding to long W2R delays. In some cases, a single of such memory quality tests can take five hours or more, thus significantly delaying the manufacturing test flow and shipment of memory-based devices or drives. In contrast, to test for a static BER not dependent on time means an inadequate test of memory quality that fails to cover various W2R delays, and potentially missing certain defects. This approach can result in shipping bad memory sub-systems or drives to customers, which is an unwanted outcome.
Aspects of the present disclosure address the above and other deficiencies by taking a staged approach to manufacturing testing, thus seeking to detect certain defects early on and obviating the need for further testing when those defects are discovered. The disclosed testing approach also removes some unneeded testing. With relation to time-consuming testing, the present disclosure is particularly focused on read voltage-assisted manufacturing testing.
In various embodiments, the disclosed testing begins with verifying whether each read voltage level (stored separately on each memory die) falls within a corresponding relative voltage range (or absolute voltage range in another embodiment). If each read voltage level can be verified within a corresponding correct voltage range (whether relative or absolute), then the memory sub-system is expected to operate properly at different W2R delays. The testing may continue with selecting an initial read voltage level that achieves BER below a threshold criterion (e.g., a good BER) at one of a few shortest W2R delays, e.g., at a first, a second, or a third shortest W2R delay range. The testing may then continue with determining a BER, using the initial read voltage level, of storage units of the memory die, e.g., which involves writes and reads to the storage units.
The BER-related test can be repeated using another read voltage level, but focused on a read voltage level that achieves bit error rates not satisfying (e.g., below) the threshold criterion at another range of the shortest W2R delays, to keep testing short. If these BER test(s) are passed, further testing at voltage levels corresponding to longer W2R delays is unlikely to result in defect detection, and can be safely skipped. The testing may then continue with reporting any memory die as defective that either fail to verify one of the read voltage levels or for which a BER satisfies a threshold criterion of one or more storage units, e.g., exceeds a certain threshold value for the BER at the tested read voltage level. Different embodiments can set different numbers of storage units that satisfy the threshold criterion before considering the memory die defective (depending on quality level desired in shipped memory components or devices).
Advantages of the present disclosure include but are not limited to adding additional check criteria of read voltage levels performed before testing BER on the storage units of the memory sub-system. This additional test can effectively detect outlier or defective storage units (or memory dice) before more time-consuming testing is performed. The disclosed methods provide a systematic, efficient, and highly-flexible methodology for determining memory quality during manufacturing tests, which will be discussed with reference to
A memory sub-system 110 can be a storage device, a memory module, or a hybrid of a storage device and memory module. Examples of a storage device include a solid-state drive (SSD), a flash drive, a universal serial bus (USB) flash drive, an embedded Multi-Media Controller (eMMC) drive, a Universal Flash Storage (UFS) drive, and a hard disk drive (HDD). Examples of memory modules include a dual in-line memory module (DIMM), a small outline DIMM (SO-DIMM), and a non-volatile dual in-line memory module (NVDIMM).
The computing environment 100 can include a host system 120 that is coupled to one or more memory sub-systems 110. In some embodiments, the host system 120 is coupled to different types of memory sub-system 110.
The host system 120 can be a computing device such as a desktop computer, laptop computer, network server, mobile device, embedded computer (e.g., one included in a vehicle, industrial equipment, or a networked commercial device), or such computing device that includes a memory and a processing device. The host system 120 can be coupled to the memory sub-system 110 via a physical host interface. Examples of a physical host interface include, but are not limited to, a serial advanced technology attachment (SATA) interface, a peripheral component interconnect express (PCIe) interface, universal serial bus (USB) interface, Fibre Channel, Serial Attached SCSI (SAS), etc. The physical host interface can be used to transmit data between the host system 120 and the memory sub-system 110. The host system 120 can further utilize an NVM Express (NVMe) interface to access the memory components (e.g., memory devices 130) when the memory sub-system 110 is coupled with the host system 120 by the PCIe interface. The physical host interface can provide an interface for passing control, address, data, and other signals between the memory sub-system 110 and the host system 120.
The memory devices can include any combination of the different types of non-volatile memory devices and/or volatile memory devices. The volatile memory devices (e.g., memory device 140) can be, but are not limited to, random access memory (RAM), such as dynamic random access memory (DRAM) and synchronous dynamic random access memory (SDRAM).
An example of non-volatile memory devices (e.g., memory device 130) includes a three-dimensional cross-point (“3D cross-point”) memory device, which is a cross-point array of non-volatile memory cells. A cross-point array of non-volatile memory can perform bit storage based on a change of bulk resistance, in conjunction with a stackable cross-gridded data access array. Additionally, in contrast to many flash-based memories, cross-point non-volatile memory can perform a write in-place operation, where a non-volatile memory cell can be programmed without the non-volatile memory cell being previously erased.
Although non-volatile memory components such as 3D cross-point type memory are described, the memory device 130 can be based on any other type of non-volatile memory, such as negative-and (NAND), read-only memory (ROM), phase change memory (PCM), self-selecting memory, other chalcogenide based memories, ferroelectric random access memory (FeRAM), magneto random access memory (MRAM), negative-or (NOR) flash memory, and electrically erasable programmable read-only memory (EEPROM).
The cells can store one or more bits per cell. In one embodiment, each of the memory devices 130 can include one or more arrays of memory cells such as single level cells (SLCs), multi-level cells (MLCs), triple level cells (TLCs), or quad-level cells (QLCs), or a combination of such. In some embodiments, a particular memory component or device can include an SLC portion, and an MLC portion, a TLC portion, or a QLC portion of memory cells. Each of the memory cells can store one or more bits of data used by the host system 120. Furthermore, the memory cells of the memory devices 130 can be grouped as memory pages or codewords that can refer to a logical unit of the memory component or device used to store data. With some types of memory (e.g., NAND), pages can be grouped to form blocks. Some types of memory, such as 3D cross-point, can group pages across dice and channels to form management units (MUs).
A memory sub-system controller 115 (or controller 115 for simplicity) can communicate with the memory devices 130 to perform operations such as reading data, writing data, or erasing data at the memory devices 130 and other such operations. The memory sub-system controller 115 can include hardware such as one or more integrated circuits and/or discrete components, a buffer memory, or a combination thereof. The hardware can include a digital circuitry with dedicated (i.e., hard-coded) logic to perform the operations described herein. The memory sub-system controller 115 can be a microcontroller, special purpose logic circuitry (e.g., a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc.), or other suitable processor.
The memory sub-system controller 115 can include a processor (processing device) 117 configured to execute instructions stored in local memory 119. In the illustrated example, the local memory 119 of the memory sub-system controller 115 includes an embedded memory configured to store instructions for performing various processes, operations, logic flows, and routines that control operation of the memory sub-system 110, including handling communications between the memory sub-system 110 and the host system 120.
In some embodiments, the local memory 119 can include memory registers storing memory pointers, fetched data, etc. The local memory 119 can also include read-only memory (ROM) for storing micro-code. While the example memory sub-system 110 in
In general, the memory sub-system controller 115 can receive commands or operations from the host system 120 and can convert the commands or operations into instructions or appropriate commands to achieve the desired access to the memory devices 130. The memory sub-system controller 115 can be responsible for other operations such as wear leveling operations, garbage collection operations, error detection and error-correcting code (ECC) operations, encryption operations, caching operations, and address translations between a logical block address and a physical address that are associated with the memory devices 130. The memory sub-system controller 115 can further include host interface circuitry to communicate with the host system 120 via the physical host interface. The host interface circuitry can convert the commands received from the host system into command instructions to access the memory devices 130 as well as convert responses associated with the memory devices 130 into information for the host system 120.
The memory sub-system 110 can also include additional circuitry or components that are not illustrated. In some embodiments, the memory sub-system 110 can include a cache or buffer (e.g., DRAM) and address circuitry (e.g., a row decoder and a column decoder) that can receive an address from the memory sub-system controller 115 and decode the address to access the memory devices 130.
In some embodiments, the memory devices 130 include local media controllers 135 that operate in conjunction with memory sub-system controller 115 to execute operations on one or more memory cells of the memory devices 130. In some embodiments, the memory devices 130 are managed memory devices, which is a raw memory device combined with a local controller (e.g., the local media controller 135) for memory management within the same memory device package or memory die.
In some embodiments, the controller 115 includes an error-correcting code (ECC) encoder/decoder 111 and a manufacturing tester 113. The ECC encoder/decoder 111 can perform ECC encoding for data written to the memory devices 130 and ECC decoding for data read from the memory devices 130, respectively. The ECC decoding can be performed to decode an ECC codeword to correct errors in the raw read data, and in many cases also to report the number of bit errors in the raw read data.
In disclosed embodiments, the memory device 130 further includes one or more registers 137 to store the read voltage levels used for the memory device 130, e.g., which can represent a memory die or package for purposes of this disclosure. Accordingly, when performing read voltage-assisted testing, manufacturing tester 113 can access the multiple read voltage levels for a memory die stored in the one or more registers 137 on the memory die.
In embodiments, the manufacturing tester 113 can operate in conjunction with a processor 117 (together “processing device”) to perform the manufacturing tests disclosed herein and handle logging, reporting (whether or not a memory die, package, or sub-system is defective), and retiring defective memory dice or devices. In alternative embodiments, the example computing environment 100 can further include an external test device 150 (e.g., an external processing device) that performs the manufacturing testing externally instead of the memory sub-system 110 performing the manufacturing tests on itself. Further details with regards to the operations of the manufacturing tester 113 (or optionally the external test device 150) are described below.
In some embodiments, the controller 115 includes at least a portion of the manufacturing tester 113. Further, the controller 115 can include the processor 117 (processing device) configured to execute instructions stored in local memory 119 for performing the operations described herein. In some embodiments, the manufacturing tester 113 is part of the host system 120, an application, or an operating system.
For certain memory types (e.g., NAND, phase change, etc.), the cell threshold voltage (Vt) distributions inherently move as a function of time. Therefore, at a given read level (e.g., the voltage applied to a memory cell as part of a read operation), the RBER can also change as a function of time. In particular, the Vt distribution and RBER can be a function of W2R delay, and the optimal read level or optimal read level voltage range that achieves the low BER also changes as a function of W2R delay.
The three voltage levels of
The test flow of the method 300 can be performed during manufacturing or re-manufacturing of the memory sub-system 110 before the memory sub-system is shipped. Re-manufacturing may occur to a memory sub-system 110 in a device that encountered an anomaly (e.g., damage from flow soldering) and which had to return to a certain point in the manufacturing process to resolve the anomaly. Sometimes a customer returns the memory sub-system that is defective for some reason, which device can also enter re-manufacturing. If the memory sub-system 110 fails during manufacturing or re-manufacturing test flows, then the memory sub-system 110 is not shipped.
With reference to
At operation 322, the processing logic performs a read voltage level order check of each memory die. As discussed, in memories with time-varying BER, there can be L distinct read voltage levels ready to be used and stored in the one or more register 137 of each memory die. To perform the read voltage level order check, the processing logic can identify V1, V2, . . . , VL read voltage levels that cover the ranges of shortest W2R delays, 2nd shortest W2R delays, to the longest W2R delays, respectively. The processing logic can then verify Vt settings of the memory die by verifying that the voltage levels that increase with longer W2R delays also increase in relative voltage, e.g., sequentially that V1<V2< . . . <VL. More specifically, the processing logic can verify that a second read voltage level is higher than a first read voltage level, a third read voltage level is higher than the second read voltage level, and optionally that a fourth read voltage level is higher than the third read voltage level of the multiple read voltage levels. If these inequalities hold true, then the memory die is not defective in its read voltage levels and can continue with manufacturing testing. In contrast, if these inequalities do not hold true, the memory die is regarded as defective and reported as such to a defect memory handler 350.
In various embodiments, the defect memory handler 350 may be a part of the controller 115, and optionally a part of the manufacturing tester 113. The defect memory handler 350 is to handle the logging, reporting, and retiring of storage units (such as a codeword or memory die level) that is determined to be defective via the manufacturing testing described herein. Among other defect criteria (such as program error, and the like), if a physical storage unit has bit error count (or BER) higher than the threshold criterion with a given read voltage and associated W2R delay, the physical storage unit can be marked as bad and retired. A defect table can be stored in the media that contain all bad physical units detected in manufacturing test, and can be used later in runtime by the memory sub-system to manage logical to physically mapping properly, avoiding storing data on bad memory locations. If the number of bad units in a memory die exceeds a threshold, the die may be declared defective and manufacturing test logs such data accordingly.
At operation 324, the processing logic performs a read voltage level separation check for each memory die. For example, the read voltage level should be a reasonable voltage range with respect to a corresponding W2R delay. What is reasonable can be determined by inherent physical and electrical characteristics of a storage unit as determined offline. For example, if V2 is 350 millivolts (mV), then an appropriate range could be 300-400 mV. More generally, for a read voltage level Vi other than V1, let Vi, off_max and Vi, off_min be maximum and minimum allowable offsets between V1 and Vi. Thus, if there is a Vi (i=2, . . . , L) such that (Vi<V1+Vi, off_min) or (Vi>V1+Vi, off_max), the memory die is regarded as defective because Vi is outside a threshold or predetermined voltage range defined by the offsets. Otherwise, if the read voltage level falls within the correct voltage range, then the memory die is not defective and manufacturing testing can continue. If the testing results in detecting a defective memory die, the processing logic reports the defect to the defect memory handler 350 as before. Note that the read voltage levels are specific to each memory die, and, indeed, can vary significantly across the multiple memory dice. Accordingly, the minimum and maximum allowable offsets are also specific for each respective memory die, and can also be stored in the one or more register 137.
With resumed reference to
At operation 330, the processing logic performs other or additional tests procedures, as may be required to complete manufacturing testing, which can include, for example, mechanical tests of the memory dice or of the entire memory device or drive. At operation 340, the processing logic scans and logs memory health data at the termination of all manufacturing testing or the like. One example of such data is the per-CW bit error count histogram for each die (or some sub-die physical units as layered in 3D cross-point memory, plane/block in NAND, and the like). These data can be used for runtime media management in the memory sub-system, and can also be used to improve memory component manufacturing flow, such as screening.
To address the deficiencies in the above-described conventional approach, the graph in
For example, a first series of sequential write operations (W1 to W6) are performed during an optimal W2R delay period 510A followed by a first series of sequential read operations (R1 to R6) to sequentially read the storage units that were previously written. Because a first read operation (R1) corresponds to the first write operation (W1), these memory operations are separated by the optimal W2R delay period 510A. Further, because the last read operation (R6) corresponds to the last write operation (W6), these memory operations are separated by an optimal W2R delay period 515A. This staggered approach can continue by performing a second series of write operations (W1 to W12) during an optimal W2R delay period 510B followed by a second series of read operations (R7 to R12) to sequentially read the storage units that were previously written. Because a first read operation (R7) corresponds to the write operation (W7), these memory operations are separated by the optimal W2R delay period 510B. Further, because the last read operation (R12) corresponds to the last write operation (W12), these memory operations are separated by an optimal W2R delay period 515B. In this way, the timing between each write operation and each corresponding read operation is at a constant pace assuming the optimal W2R delay periods are equal. Accordingly, in an ideal scenario, the optimal W2R periods 510A, 510B are equal to the optimal time periods 515A, 515B, respectively, but non-idealities may create some mismatches of these time periods, which is addressed below with reference to
In embodiments, the write operations and the corresponding read operations (to read the previously written data) are made at an identical constant pace of writing and reading. An “optimal” W2R delay period can be defined as a period of time that it takes to fill up a data bus of write operations. (The optimal W2R delay period can be further adjusted in some embodiments to account for additional delays due to non-idealities in storage units or due to controller delay.) Because it takes this amount of time to queue up the next series of write operations, it is most efficient to perform a certain number of write operations before reading the results of those write operations in order to gather BER results. In this way, the data bus is refilled while the read operations are performed, and the iterative cycle can restart upon completion of reading the previously-written storage units. The memory quality testing approach of
In practical embodiments, there can be non-idealities of division between storage units that causes any given W2R delay period (for a series of write operations) to differ from the optimal W2R delay period. In such cases, the processing device can inject a small additional delay similar to the deliberate wait 522 of
Because read voltage levels of each memory die (or other memory package) can vary across different memory dice, the manufacturing testing of method 600 can be performed iteratively (or in parallel) on each memory die, but with memory-die specific read voltage levels. The method 600 of
At operation 620, the processing logic determines whether any of the read voltage levels fail to verify in operation 610. If yes, there is at least one read voltage level that fails to verify, at operation 625, the processing logic reports the memory die as defective. If no, the read voltage levels all correctly verify, at operation 630, the processing logic selects an initial read voltage level, of the multiple read voltage levels, that achieves bit error rates (BERs) not satisfying (e.g., below) a threshold criterion at one of a first, a second, or a third shortest write-to-read (W2R) delay range for the memory die. This initial read voltage level can correspond, therefore, to one of the first three read voltage levels (V1, V2, or V3), as discussed with reference to
At operation 640, the processing logic determines a bit error rate (BER), using the initial read voltage level, of storage units of the memory die to test memory quality of the memory die. As mentioned, each storage unit can be made up of one or more codewords, the granularity for which the ECC encoder/decoder 111 can verify the correctness of data being stored or retrieved from the memory device 130. The manufacturing performed at operation 640 can be executed as explained with reference to operation 326 of
At operation 650, the processing logic determines whether the BER (determined at operation 640) of one or more storage units satisfies a threshold criterion. This threshold criterion may be a threshold BER value over which the one or more storage units is (or are) considered defective as a result of its diminished memory quality. If the BER does satisfy the threshold criterion of one or more storage units, at operation 625, the processing logic can report the memory die as defective. In some embodiments, a single storage unit satisfying the threshold criterion is sufficient to report the memory die as defective. In others, a threshold number of storage units are to be considered defective before the memory die as a whole is considered defective. For example, a defect table can be updated each time a storage unit is reported as defective (to optionally include identification of each defective storage unit). The memory die is reported as defective when the number of storage units reported (or recorded) as defective exceeds the threshold number. In still further embodiments, the BER for the entire memory die can be averaged over all tested storage units continuously, and when the average BER exceeds the threshold criterion during the testing, the memory die can be reported as defective. Additional methods for employing BER results for individual storage units in comparison to the threshold criterion are envisioned.
Otherwise, the processing logic can continue with, at operation 660, determining whether to test another read voltage level. In one embodiment, the number of read voltage levels is pre-selected and tests for each pre-selected voltage level is completed before reporting that there is no memory failure at operation 665. Because BER can change depending on W2R delay range of a read voltage level (even if only slightly), each test at a different read voltage level can be assessed with reference to a different threshold criterion of BER in some embodiments. Alternatively, or additionally, selection of a subsequent voltage level at operation 660 for which to test can be decided based on a rule or some predefined criteria.
For example, the processing logic can apply a rule to decide whether (and how much) the first BER value exceeds an initial threshold criterion associated with the initial read voltage level. If the first BER does not exceed the initial threshold criterion (e.g., for any storage units), the memory die can be reported as not defective at operation 665. If the first BER exceeds the initial threshold criterion, but is within five to ten percent (or some other low threshold percentage) of the initial threshold criterion, the processing logic can decide, at operation 660, to run a second BER test as a confirmation check on memory quality level. The second BER test can be run at a secondary read voltage level (e.g., at a higher W2R delay range) and thus with a comparison against a second threshold criterion (that is higher than the initial threshold criterion, if only slightly). If the memory die passes this second BER test, there is still no defect for memory quality purposes. This process can be layered into additional tests with different threshold criterion(s) for different read voltage levels. It is intended, however, that the method 600 is not to step through and do a memory quality test using every read voltage level, so as to avoid doing the memory quality test using a read voltage level corresponding to the longer (and certainly the longest) W2R delays.
If the BER-based memory quality test passes at the initial read voltage level and no additional manufacturing testing is to be performed at another read voltage level, at operation 665, the processing logic reports there is no memory die failure. Assuming all the memory dice pass, the processing logic reports the memory device 130 as having passed the read voltage-assisted manufacturing tests. If however, at operation 660, there is another read voltage level to memory quality test (as discussed above), the processing logic loops back to operation 630 to select a subsequent read voltage level for BER testing, followed by operations 640 and 650, performed iteratively.
More specifically, by way of example, at operation 630, the processing logic selects a secondary read voltage level of the multiple read voltage levels that achieves BER below the threshold criterion at another of the first, the second, or the third shortest W2R delay range for the memory die. At operation 650, the processing logic determines a second bit error rate (BER), using the secondary read voltage level, of storage units of the memory die. At operation 625, the processing logic reports the memory die as defective in response the second BER of one or more storage units of the memory die satisfying the threshold criterion. Or, at operation 665, the processing logic reports that there is no memory die failure if the second BER level did not exceed the threshold criterion. This testing can be iterated through for a third voltage level, for example.
At operation 710, the processing logic determines which of the multiple lowest read voltage levels to be tested. This could be a predetermined decision to test one, two, or all three, of the three lowest read voltage levels (V1, V2, or V3), as discussed with reference to
At operation 720, the processing logic determines whether all the selected read voltage levels have been tested. If the answer is yes, at operation 725, the method 700 to perform the memory quality examination is complete. If the answer is no, at operation 730, the processing logic selects the next read voltage level to test. For example, the processing logic can sequentially step through the read voltage levels that have been selected to be tested.
At operation 740, the processing logic sequentially writes data to storage units of the memory die until expiration of an optimal W2R delay period, e.g., the optimal W2R delay period 510A of
In various embodiments, different aspects of the testing at operations 740 and 750 are performed serially and/or in parallel. For example, multiple dice in the sub-system 110 on a single or multiple data buses can allow these operations to be performed in parallel. Write/read of physical storage units in a single memory die (or logical unit) can be sequential in the staggered approach. However, this does not mean the write/read of each storage unit cannot take advantage of a concurrency feature of that memory die (or logical unit). For example, if the memory sub-system 110 supports concurrency of partitions in a die, such concurrency can be leveraged by this manufacturing test flow to minimize manufacturing time.
At operation 755, the processing logic determines the bit error rate (e.g., read BER) based on the reading of the data from the storage units of the memory die. In some embodiments, this BER is the result of operation 640 (
At operation 760, the processing logic determines whether all the storage units of the memory die have been tested. If not, the processing logic loops back to continue the sequentially writing of data to a series of storage units and reading of data from the series of storage units as performed at operations 740 and 750. At operation 770, once all the storage units have been tested, the processing logic can report, to the defect memory handler 350, any outlier or defect detected in the storage units of the memory dice being tested at the selected read voltage level. For example, a defect can be detected in a read BER determined to be above the threshold criterion of a BER value for the corresponding read voltage level. The defect of any one or a group of storage units can be enough to consider the memory die defective, e.g., as discussed in relation to operation 650 of
The machine can be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, a switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
The example computer system 800 includes a processing device 802, a main memory 804 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 806 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage system 818, which communicate with each other via a bus 830.
Processing device 802 represents one or more general-purpose processing devices such as a microprocessor, a central processing unit, or the like. More particularly, the processing device can be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processing device 802 can also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device 802 is configured to execute instructions 826 for performing the operations and steps discussed herein. The computer system 800 can further include a network interface device 808 to communicate over the network 820.
The data storage system 818 can include a machine-readable storage medium 824 (also known as a computer-readable medium) on which is stored one or more sets of instructions 826 or software embodying any one or more of the methodologies or functions described herein. The instructions 826 can also reside, completely or at least partially, within the main memory 804 and/or within the processing device 802 during execution thereof by the computer system 800, the main memory 804 and the processing device 802 also constituting machine-readable storage media. The machine-readable storage medium 824, data storage system 818, and/or main memory 804 can correspond to the memory sub-system 110 of
In one embodiment, the instructions 826 include instructions to implement functionality corresponding to an error determining component (e.g., the manufacturing tester 113 of
Some portions of the preceding detailed descriptions have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations 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, combined, compared, and otherwise manipulated. 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.
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. The present disclosure can 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 systems.
The present disclosure also relates to an apparatus for performing the operations herein. This apparatus can be specially constructed for the intended purposes, or it can include a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program can be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems can be used with programs in accordance with the teachings herein, or it can prove convenient to construct a more specialized apparatus to perform the method. The structure for a variety of these systems will appear as set forth in the description below. In addition, the present disclosure is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages can be used to implement the teachings of the disclosure as described herein.
The present disclosure can be provided as a computer program product, or software, that can include a machine-readable medium having stored thereon instructions, which can be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer). In some embodiments, a machine-readable (e.g., computer-readable) medium includes a machine (e.g., a computer) readable storage medium such as a read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory components, etc.
In the foregoing specification, embodiments of the disclosure have been described with reference to specific example embodiments thereof. It will be evident that various modifications can be made thereto without departing from the broader spirit and scope of embodiments of the disclosure as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
Xie, Tingjun, Chen, Zhengang, Pope, Steven M.
Patent | Priority | Assignee | Title |
10892029, | Jul 12 2019 | Micron Technology, Inc. | Self-adaptive read voltage adjustment using directional error statistics for memories with time-varying error rates |
11107550, | Jul 12 2019 | Micron Technology, Inc. | Self-adaptive read voltage adjustment using boundary error statistics for memories with time-varying error rates |
11410743, | Jul 12 2019 | Micron Technology, Inc. | Self-adaptive read voltage adjustment using directional error statistics for memories with time-varying error rates |
11688485, | Jul 12 2019 | Micron Technology, Inc. | Self-adaptive read voltage adjustment using boundary error statistics for memories with time-varying error rates |
11907580, | Dec 22 2021 | Micron Technology, Inc. | Corrective read of a memory device with reduced latency |
Patent | Priority | Assignee | Title |
20100091537, | |||
20110299317, | |||
20140040704, | |||
20140082459, | |||
20140208062, | |||
20140281121, | |||
20150039842, | |||
20170236562, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Aug 23 2019 | CHEN, ZHENGANG | Micron Technology, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 050178 | /0265 | |
Aug 23 2019 | XIE, TINGJUN | Micron Technology, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 050178 | /0265 | |
Aug 23 2019 | POPE, STEVEN M | Micron Technology, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 050178 | /0265 | |
Aug 27 2019 | Micron Technology, Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Aug 27 2019 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Mar 12 2024 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Sep 22 2023 | 4 years fee payment window open |
Mar 22 2024 | 6 months grace period start (w surcharge) |
Sep 22 2024 | patent expiry (for year 4) |
Sep 22 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Sep 22 2027 | 8 years fee payment window open |
Mar 22 2028 | 6 months grace period start (w surcharge) |
Sep 22 2028 | patent expiry (for year 8) |
Sep 22 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Sep 22 2031 | 12 years fee payment window open |
Mar 22 2032 | 6 months grace period start (w surcharge) |
Sep 22 2032 | patent expiry (for year 12) |
Sep 22 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |