CN117170577A - Cross temperature compensation in non-volatile memory devices - Google Patents
Cross temperature compensation in non-volatile memory devices Download PDFInfo
- Publication number
- CN117170577A CN117170577A CN202310651209.3A CN202310651209A CN117170577A CN 117170577 A CN117170577 A CN 117170577A CN 202310651209 A CN202310651209 A CN 202310651209A CN 117170577 A CN117170577 A CN 117170577A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- read
- determining
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
Abstract
Description
技术领域Technical field
本公开的实施例大体上涉及存储器子系统,且更明确来说,涉及非易失性存储器装置中的交叉温度补偿。Embodiments of the present disclosure relate generally to memory subsystems, and more particularly to cross-temperature compensation in non-volatile memory devices.
背景技术Background technique
存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置及易失性存储器装置。一般来说,主机系统可利用存储器子系统将数据存储在存储器装置处及从所述存储器装置检索数据。A memory subsystem may include one or more memory devices that store data. Memory devices may be, for example, non-volatile memory devices and volatile memory devices. Generally speaking, a host system may utilize a memory subsystem to store data at and retrieve data from a memory device.
发明内容Contents of the invention
一方面,本申请案提供一种系统,其包括:存储器装置;及处理装置,其可操作地耦合到所述存储器装置,所述处理装置用以执行包括以下的操作:对所述存储器装置执行第一读取操作以检索第一数据;从所述第一数据确定指示与所述第一数据相关联的写入温度的第二数据,其中所述写入温度指示在写入操作期间测量的温度;基于所述第二数据确定读取电压值;及使用所述读取电压值对所述存储器装置执行第二读取操作以获得所述第一数据。In one aspect, the present application provides a system that includes: a memory device; and a processing device operably coupled to the memory device, the processing device configured to perform operations including: performing on the memory device a first read operation to retrieve first data; determining from the first data second data indicative of a write temperature associated with the first data, wherein the write temperature is indicative of a temperature measured during a write operation temperature; determining a read voltage value based on the second data; and performing a second read operation on the memory device using the read voltage value to obtain the first data.
在另一方面中,本申请案提供一种方法,其包括:由处理器接收从存储器装置的存储器页面获得的第一数据,其中所述第一数据包括主机数据及写入温度数据,其中所述存储器页面由一组读取命令中的第一读取命令引用;基于所述写入温度数据确定读取电压值;通过将所述读取电压值应用到所述第二存储器页面指示存储器装置对由所述一组读取命令中的第二读取命令引用的第二存储器页面执行读取操作。In another aspect, the present application provides a method that includes receiving, by a processor, first data obtained from a memory page of a memory device, wherein the first data includes host data and write temperature data, wherein the The memory page is referenced by a first read command in a set of read commands; determining a read voltage value based on the write temperature data; instructing a memory device by applying the read voltage value to the second memory page A read operation is performed on a second memory page referenced by a second read command in the set of read commands.
在另一方面中,本申请案提供一种包括指令的非暂时性计算机可读存储媒体,所述指令在由可操作地耦合到存储器的处理装置执行时执行包括以下的操作:对所述存储器装置执行第一读取操作以检索第一数据;从所述第一数据确定指示与所述第一数据相关联的写入温度的第二数据;及基于所述第二数据确定读取电压值;使用所述读取电压值对所述存储器装置执行第二读取操作以获得所述第一数据。In another aspect, the present application provides a non-transitory computer-readable storage medium including instructions that, when executed by a processing device operably coupled to a memory, perform operations including: operating on the memory The apparatus performs a first read operation to retrieve first data; determine second data from the first data indicative of a write temperature associated with the first data; and determine a read voltage value based on the second data ;Perform a second read operation on the memory device using the read voltage value to obtain the first data.
附图说明Description of drawings
从下文给出的详细描述及从本公开的各种实施例的附图将更加完全地理解本公开。The present disclosure will be more fully understood from the detailed description given below and from the accompanying drawings of various embodiments of the disclosure.
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。Figure 1 illustrates an example computing system including a memory subsystem in accordance with some embodiments of the present disclosure.
图2是根据本公开的一些实施例的用于执行写入操作的实例方法的流程图。Figure 2 is a flowchart of an example method for performing a write operation in accordance with some embodiments of the present disclosure.
图3是根据本公开的一些实施例的用于执行读取操作的实例方法的流程图。Figure 3 is a flowchart of an example method for performing a read operation in accordance with some embodiments of the disclosure.
图4是根据本公开的一些实施例的温度补偿数据结构的说明性实例。Figure 4 is an illustrative example of a temperature compensation data structure in accordance with some embodiments of the present disclosure.
图5A是说明根据本公开的一些实施例的电压分布移位的框图。Figure 5A is a block diagram illustrating voltage distribution shifting in accordance with some embodiments of the present disclosure.
图5B是说明根据本公开的一些实施例的电压分布移位的框图。Figure 5B is a block diagram illustrating voltage distribution shifting in accordance with some embodiments of the present disclosure.
图6是本公开的实施例可在其中操作的实例计算机系统的框图。Figure 6 is a block diagram of an example computer system in which embodiments of the present disclosure may operate.
具体实施方式Detailed ways
本公开的方面涉及非易失性存储器装置中的交叉温度补偿。存储器子系统可为存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含例如存储数据的存储器装置的一或多个组件的存储器子系统。主机系统可提供将存储于存储器子系统处的数据且可请求将从存储器子系统检索的数据。Aspects of the present disclosure relate to cross-temperature compensation in non-volatile memory devices. A memory subsystem may be a memory device, a memory module, or a hybrid of memory devices and memory modules. Examples of storage devices and memory modules are described below in conjunction with FIG. 1 . Generally speaking, a host system may utilize a memory subsystem that includes one or more components, such as a memory device that stores data. The host system can provide data to be stored at the memory subsystem and can request data to be retrieved from the memory subsystem.
存储器子系统可包含高密度非易失性存储器装置,其中期望在没有电力被供应到存储器装置时保留数据。非易失性存储器装置的一个实例是与非(NAND)存储器装置。非易失性存储器装置的其它实例在下文结合图1进行描述。非易失性存储器装置是一或多个裸片的封装。每一裸片可包含两个或更多个平面。针对一些类型的非易失性存储器装置(例如NAND装置),每一平面包含一组物理块。在一些实施方案中,每一块可包含多个子块。每一平面承载形成于硅晶片上且通过称为字线及位线的导体接合的存储器单元矩阵,使得字线接合形成存储器单元矩阵的行的多个存储器单元,而位线接合形成存储器单元矩阵的列的多个存储器单元。The memory subsystem may include high-density non-volatile memory devices where it is desirable to retain data when no power is supplied to the memory device. One example of a non-volatile memory device is a NAND memory device. Other examples of non-volatile memory devices are described below in connection with FIG. 1 . A non-volatile memory device is a package of one or more die. Each die may contain two or more planes. For some types of non-volatile memory devices (eg, NAND devices), each plane contains a set of physical blocks. In some implementations, each block may contain multiple sub-blocks. Each plane carries a matrix of memory cells formed on a silicon wafer and bonded by conductors called word lines and bit lines, such that word lines bond multiple memory cells forming rows of the memory cell matrix, and bit lines bond form the memory cell matrix. columns of multiple memory cells.
取决于单元类型,每一存储器单元可存储一或多个二进制信息位,且具有与所存储位的数目相关的各种逻辑状态。逻辑状态可由例如“0”及“1”或此类值的组合的二进制值表示。存储器单元可通过将特定电压施加到存储器单元来编程(被写入),这导致电荷被存储器单元保持,从而允许调制由存储器单元产生的电压分布。称为存储器页面的一组存储器单元可在单个操作中一起进行编程,例如,通过选择连续位线。Depending on the cell type, each memory cell may store one or more bits of binary information, and have various logic states related to the number of bits stored. Logic states may be represented by binary values such as "0" and "1" or combinations of such values. Memory cells can be programmed (written to) by applying a specific voltage to the memory cell, which causes charge to be retained by the memory cell, allowing modulation of the voltage distribution produced by the memory cell. A group of memory cells, called a memory page, can be programmed together in a single operation, for example, by selecting consecutive bit lines.
各种数据操作可由存储器子系统执行。数据操作可为主机起始的操作。举例来说,主机系统可在存储器子系统上起始数据操作(例如写入、读取、擦除等)。主机系统可将存取命令(例如写入命令、读取命令)发送到存储器子系统,例如将数据存储在存储器子系统处的存储器装置上及从存储器子系统上的存储器装置读取数据。如由主机请求指定的要读取或写入的数据在下文称为“主机数据”。主机请求可包含主机数据的逻辑地址信息(例如逻辑块地址(LBA)、命名空间),其是主机系统与主机数据相关联的位置。逻辑地址信息(例如LBA、命名空间)可为主机数据的元数据的部分。元数据还可包含错误-处置数据(例如错误校正码(ECC)码字奇偶校验数据)、数据版本(例如用于区别写入数据的年限)、有效位图(哪些LBA或逻辑传送单元含有有效数据)等。Various data operations can be performed by the memory subsystem. Data operations may be host-initiated operations. For example, the host system may initiate data operations (eg, write, read, erase, etc.) on the memory subsystem. The host system may send access commands (eg, write commands, read commands) to the memory subsystem, such as to store data on and read data from memory devices at the memory subsystem. Data to be read or written as specified by a host request is hereinafter referred to as "host data". The host request may contain logical address information (eg, logical block address (LBA), namespace) of the host data, which is the location where the host system associates the host data. Logical address information (eg, LBA, namespace) may be part of the metadata of the host data. Metadata may also include error-handling data (such as error correction code (ECC) codeword parity data), data versions (such as to distinguish the age of written data), valid bitmaps (which LBAs or logical transfer units contain valid data), etc.
存储器装置包含多个存储器单元,其能够取决于存储器单元类型而存储一或多个信息位。存储器单元可通过将特定电压施加到存储器单元来编程(被写入),这导致电荷被存储器单元保持,所述电压称为“阈值电压”且标示为Vt。A memory device includes a plurality of memory cells capable of storing one or more bits of information depending on the memory cell type. A memory cell can be programmed (written to) by applying a specific voltage to the memory cell, which causes charge to be retained by the memory cell, said voltage being called the "threshold voltage" and denoted Vt.
精确控制由存储器单元存储的电荷的量允许建立多个逻辑电平,从而有效地允许单个存储器单元存储多个信息位。读取操作可通过比较由存储器单元展现的经测量阈值电压(Vt)与一或多个参考电压电平以便在单电平单元(SLC)的两个逻辑电平之间及在多电平单元的多个逻辑电平之间进行区分来执行。在各个实施例中,存储器装置可包含多个部分,包含例如其中子块被配置为SLC存储器的一或多个部分及其中子块被配置为每单元可存储多个信息位的多电平单元(MLC)存储器及/或每单元可存储三个信息位的(三电平单元)TLC存储器的一或多个部分。TLC存储器中的存储器单元的电压电平形成表示存储于每一存储器单元中的三个位的8种不同组合的一组8个编程分布。取决于它们如何配置,子块中的一者中的每一物理页面可包含多个页面类型。举例来说,由单电平单元(SLC)形成的物理页面具有称为下逻辑页面(LP)的单个页面类型。多电平单元(MLC)物理页面类型可包含LP及上逻辑页面(UP),TLC物理页面类型是LP、UP及额外逻辑页面(XP),且QLC物理页面类型是LP、UP、XP及顶部逻辑页面(TP)。举例来说,由QLC存储器类型的存储器单元形成的物理页面可具有总共四个逻辑页面,其中每一逻辑页面可存储与存储于与那个物理页面相关联的其它逻辑页面中的数据相异的数据。Precise control of the amount of charge stored by a memory cell allows multiple logic levels to be established, effectively allowing a single memory cell to store multiple bits of information. A read operation can be performed by comparing the measured threshold voltage (V t ) exhibited by the memory cell to one or more reference voltage levels to operate between two logic levels in a single-level cell (SLC) and in multi-level The unit performs by distinguishing between multiple logic levels. In various embodiments, a memory device may include multiple portions, including, for example, one or more portions of SLC memory in which sub-blocks are configured as multi-level cells that can store multiple bits of information per cell. (MLC) memory and/or one or more portions of (three-level cell) TLC memory that can store three bits of information per cell. The voltage levels of the memory cells in a TLC memory form a set of 8 programming profiles representing 8 different combinations of the three bits stored in each memory cell. Depending on how they are configured, each physical page in one of the sub-blocks can contain multiple page types. For example, a physical page formed from single-level cells (SLC) has a single page type called a lower logical page (LP). Multi-level cell (MLC) physical page types can include LP and upper logical page (UP), TLC physical page types are LP, UP, and extra logical page (XP), and QLC physical page types are LP, UP, XP, and top Logical page (TP). For example, a physical page formed by QLC memory type memory cells may have a total of four logical pages, where each logical page may store data that is different from the data stored in other logical pages associated with that physical page. .
存储器装置可具有比由装置的单元容忍的控制电压的工作范围窄的电压分布。因此,多个分布(在分布之间具有“谷”)可配合到工作电压窗口中,从而允许存储且可靠检测每单元的多个位,例如TLC的23=8个分布(7个谷),MLC的22=4个分布(3个谷)等等。分布以电压间隔(“谷裕度”)散布于分布之间,其中装置的存储器单元都不(或很少)具有其阈值电压。因此,此类谷裕度可用于分离各种电荷状态—单元的逻辑状态可通过在通过施加对应于每一谷的读取电压进行的读取操作期间进行检测来确定。此实际上允许单个存储器单元存储多个信息位:以2N个分布(其还称为电平)操作的存储器单元能够存储N个信息位。在读取操作期间,施加2N-1个读取电压来区分2N个分布。明确来说,读取操作可通过比较由存储器单元展现的所测量的阈值电压VT与对应于存储器装置的已知谷(例如谷的中心)的一或多个参考电压电平来执行。A memory device may have a voltage distribution that is narrower than the operating range of control voltages tolerated by the cells of the device. Therefore, multiple distributions (with "valleys" between distributions) can be fit into the operating voltage window, allowing storage and reliable detection of multiple bits per cell, e.g. 2 3 = 8 distributions (7 valleys) for TLC , 2 2 of MLC = 4 distributions (3 valleys) and so on. Distributions are interspersed between distributions in voltage intervals ("valley margins") where none (or very few) of the device's memory cells have their threshold voltages. Thus, such valley margins can be used to separate various charge states—the logic state of a cell can be determined by detection during a read operation by applying a read voltage corresponding to each valley. This effectively allows a single memory cell to store multiple bits of information: a memory cell operating in 2 N distributions (which are also called levels) is able to store N bits of information. During the read operation, 2 N-1 read voltages are applied to distinguish 2 N distributions. Specifically, a read operation may be performed by comparing the measured threshold voltage VT exhibited by the memory cell to one or more reference voltage levels corresponding to known valleys (eg, centers of valleys) of the memory device.
在某些情况下,存储器系统可在具有变化的温度(例如,在-40到90摄氏度之间)的环境中进行操作。关于存储器单元的写入操作与关于存储器单元的后续读取操作之间的温度变化可影响存储于存储器单元中及从存储器单元读取的电荷。关于存储器单元的写入操作与关于存储器单元的后续读取操作之间的温度的此变化可称为交叉温度。例如,当存储器单元在更热温度范围(60到70℃)下进行编程且在更冷温度范围(20到25℃)下进行读取时或当存储器单元在更冷温度范围(20到25℃)下进行编程且在更热温度范围(65到70℃)下进行读取时,可出现交叉温度条件。出于说明性目的,使用温度范围(20到25℃)及(65到70℃),但其它温度范围也是可能的。In some cases, the memory system may operate in an environment with varying temperatures (eg, between -40 and 90 degrees Celsius). Temperature changes between a write operation on a memory cell and a subsequent read operation on the memory cell can affect the charge stored in and read from the memory cell. This change in temperature between a write operation on a memory cell and a subsequent read operation on the memory cell may be referred to as the crossover temperature. For example, when a memory cell is programmed in a hotter temperature range (60 to 70°C) and read in a cooler temperature range (20 to 25°C) or when a memory cell is programmed in a cooler temperature range (20 to 25°C ) and reading in the hotter temperature range (65 to 70°C), cross-temperature conditions can occur. For illustrative purposes, the temperature ranges (20 to 25°C) and (65 to 70°C) are used, but other temperature ranges are possible.
参考图5A,针对一个实例,如果QLC存储器中的存储器单元在70℃下经编程有对应于数据值‘0100’的2V的电压电平且温度在存储器单元被读取时随着时间推移变成25℃,那么电压电平可能已移位到2.15V。取决于阈值电压范围在存储器单元中是如何定义的,实际读取电压可反映与经编程数据值不同的数据值(例如‘0101’)。此移位可导致原始位错误率(RBER)增加,其可能会超过基础错误校正码(ECC)的错误校正能力。Referring to Figure 5A, for an example, if a memory cell in a QLC memory is programmed at 70°C with a voltage level of 2V corresponding to the data value '0100' and the temperature over time becomes 25°C, then the voltage level may have shifted to 2.15V. Depending on how the threshold voltage range is defined in the memory cell, the actual read voltage may reflect a different data value than the programmed data value (eg, '0101'). This shift can result in an increase in raw bit error rate (RBER), which may exceed the error correction capabilities of the underlying error correction code (ECC).
参考图5B,针对另一实例,如果QLC存储器中的存储器单元在25℃下经编程有对应于数据值‘0100’的2V的电压电平且温度在存储器单元被读取时随着时间推移变成70℃,那么表观电压电平可能已移位到1.85V。取决于阈值电压范围在存储器单元中是如何定义的,表观读取电压可反映不同数据值(例如‘0011’)。此移位可导致原始位错误率(RBER)增加,其可能会超过基础ECC的错误校正能力。Referring to Figure 5B, for another example, if a memory cell in a QLC memory is programmed with a voltage level of 2V corresponding to the data value '0100' at 25°C and the temperature changes over time as the memory cell is read into 70°C, then the apparent voltage level may have shifted to 1.85V. Depending on how the threshold voltage range is defined in the memory cell, the apparent read voltage can reflect different data values (e.g. '0011'). This shift can result in an increase in raw bit error rate (RBER), which may exceed the error correction capabilities of the underlying ECC.
响应于RBER超过基础ECC的错误校正能力,一些系统可执行数据恢复流程以尝试恢复数据。数据恢复流程可包含关于已从存储器装置检索到的数据项的一或多个错误处置操作。在一个实例中,与对存储器单元执行的初始读取操作相比,错误处置操作可包含使用不同参数(例如读取电压的变化)进行的一或多个读取重试。在另一实例中,错误处置操作可包含“深度错误处置技术”,例如具有不同版本的可靠性信息的前向错误校正(FEC)、混合自动重复请求(HARQ)、软位信息请求(例如,关于所存储位的可靠性的数据)、直方图细化(例如谷放置数据)等。In response to the RBER exceeding the error correction capabilities of the underlying ECC, some systems may perform a data recovery process to attempt to recover the data. The data recovery process may include one or more error handling operations regarding data items that have been retrieved from the memory device. In one example, the error handling operation may include one or more read retries using different parameters (eg, changes in read voltage) compared to the initial read operation performed on the memory cell. In another example, error handling operations may include "deep error handling techniques" such as forward error correction (FEC) with different versions of reliability information, hybrid automatic repeat request (HARQ), soft bit information request (e.g., data on the reliability of stored bits), histogram refinement (e.g. valley placement data), etc.
触发率是对实施数据恢复流程的频率的估计。高触发率与不良存储器子系统性能相关联,因为存储器装置要求额外计算及时间资源来检索所存储数据。The trigger rate is an estimate of how often the data recovery process is performed. High trigger rates are associated with poor memory subsystem performance because the memory device requires additional computational and time resources to retrieve stored data.
一些存储器子系统在读取操作期间基于当前存储器装置温度来减小施加读取电压偏移的交叉温度条件的影响。然而,这些系统在写入操作期间未能考虑到存储器装置的温度。因而,这些系统做出可能不正确的假设(例如,使用预定参考温度),从而导致RBER增加且触发率提高。因此,期望用于准确地确定交叉温度补偿值的机制及方法。Some memory subsystems reduce the impact of cross-temperature conditions that impose read voltage offsets based on current memory device temperature during read operations. However, these systems fail to account for the temperature of the memory device during write operations. As a result, these systems make assumptions that may be incorrect (eg, using a predetermined reference temperature), resulting in increased RBER and higher trigger rates. Therefore, mechanisms and methods for accurately determining cross-temperature compensation values are desired.
本公开的方面通过在存储器装置中执行交叉温度补偿来解决上述及其它缺点。在说明性实例中,在写入操作期间,存储器子系统控制器可存储反映存储器装置的当前温度的温度值。此写入温度值可被存储为附加到写入操作的主机数据的元数据。在读取操作期间,存储器子系统控制器可检索写入温度值且确定读取电压以考虑到交叉温度条件。举例来说,控制器可提取先前写入的写入温度值,确定反映写入操作与存储器装置的当前温度之间的温度差的读取偏移电压值,以及在后续读取操作期间比较所述读取偏移电压值与读取电压电平。读取偏移电压值可响应于原始读取操作传回高错误率来确定。Aspects of the present disclosure address the above and other shortcomings by performing cross-temperature compensation in memory devices. In an illustrative example, during a write operation, the memory subsystem controller may store a temperature value that reflects the current temperature of the memory device. This write temperature value can be stored as metadata attached to the host data of the write operation. During a read operation, the memory subsystem controller may retrieve the write temperature value and determine the read voltage to account for cross temperature conditions. For example, the controller may extract a write temperature value for a previous write, determine a read offset voltage value that reflects the temperature difference between the write operation and the current temperature of the memory device, and compare the resulting temperature during subsequent read operations. Describe the read offset voltage value and read voltage level. The read offset voltage value may be determined in response to the original read operation returning a high error rate.
在一些实施例中,存储器子系统控制器可使用温度测量装置(例如热电偶、温度计、红外传感器等)测量温度。温度测量装置可为硬件装置,其是存储器子系统控制器的部分且由存储器子系统控制器操作。在一些实施例中,存储器子系统控制器可从存储器装置检索温度数据。举例来说,存储器装置可包含温度测量装置,且存储器子系统控制器可周期性地轮询(例如,每秒一次)存储器装置以检索温度数据。接着,存储器子系统控制器可将写入温度数据(例如温度值)附加到主机数据,及指示存储器装置将附加写入数据(附加有温度数据的主机数据)编程到存储器位置。在一些实施例中,存储器子系统控制器可将写入温度数据附加到写入命令的每一特定存储器粒度(例如存储器页面、大存储器页面、存储器扇区等)。举例来说,如果写入命令包含五个存储器页面的主机数据,那么存储器页面中的每一者可附加有对应写入温度数据。In some embodiments, the memory subsystem controller may measure temperature using a temperature measurement device (eg, thermocouple, thermometer, infrared sensor, etc.). The temperature measurement device may be a hardware device that is part of and operated by the memory subsystem controller. In some embodiments, the memory subsystem controller may retrieve temperature data from the memory device. For example, a memory device may include a temperature measurement device, and the memory subsystem controller may periodically poll (eg, once per second) the memory device to retrieve temperature data. The memory subsystem controller may then append the write temperature data (eg, the temperature value) to the host data and instruct the memory device to program the additional write data (host data with the temperature data appended) to the memory location. In some embodiments, the memory subsystem controller may append write temperature data to each specific memory granularity of the write command (eg, memory page, large memory page, memory sector, etc.). For example, if a write command contains five memory pages of host data, each of the memory pages may be appended with corresponding write temperature data.
在一些实施例中,响应于接收到读取命令,存储器子系统控制器可首先通过从当前温度值(例如存储器子系统的当前温度)减去默认写入温度值(在存储器子系统的编程及/或校准期间设置、由固件更新设置、由用户输入设置等)(或反之亦然)来确定温度补偿值。接着,存储器子系统控制器可使用温度补偿值确定读取偏移电压值。读取偏移电压值可为施加到基本读取电压值以产生经调整读取电压值的电压偏移值。经调整读取电压值可在读取操作期间经施加到一组存储器单元。为了确定与温度补偿值相关的读取偏移电压值,存储器子系统控制器可在数据结构中执行查找、将公式或方程式应用到读取偏移电压值等。接着,存储器子系统控制器可使用经调整读取电压值执行读取命令及接收由读取命令引用的附加读取数据。In some embodiments, in response to receiving a read command, the memory subsystem controller may first subtract a default write temperature value (during programming and operation of the memory subsystem) from a current temperature value (eg, the current temperature of the memory subsystem). /or set during calibration, set by firmware update, set by user input, etc.) (or vice versa) to determine the temperature compensation value. The memory subsystem controller may then use the temperature compensation value to determine the read offset voltage value. The read offset voltage value may be a voltage offset value applied to the base read voltage value to produce an adjusted read voltage value. The adjusted read voltage value may be applied to a group of memory cells during a read operation. To determine the read offset voltage value associated with the temperature compensation value, the memory subsystem controller may perform a lookup in a data structure, apply a formula or equation to the read offset voltage value, etc. The memory subsystem controller may then execute the read command using the adjusted read voltage value and receive additional read data referenced by the read command.
存储器子系统控制器可从附加读取数据获得写入温度数据且更新与读取命令相关的当前写入温度数据。存储器子系统控制器可对检索到的主机数据执行数据完整性检查以验证存储于存储器页面的存储器单元处的数据不包含任何错误或错误数目低于预定阈值。数据完整性检查可识别一或多个数据完整性指标(例如BEC、RBER等)且比较数据完整性指标的值与阈值准则。如果数据完整性指标满足阈值准则(例如,BEC或RBER值高于阈值)(指示与存储于存储器页面处的数据相关联的高错误率),那么存储器子系统控制器可使用新的当前温度值及来自附加读取数据的写入温度值确定新的温度补偿值。接着,存储器子系统控制器可使用新的温度补偿值确定新的经调整读取电压值且使用所述新的经调整读取电压值执行读取命令。如果数据完整性指标未能满足阈值准则(例如,BEC或RBER值低于阈值),那么存储器子系统控制器可在后续读取命令上使用经调整读取电压值。The memory subsystem controller may obtain the write temperature data from the additional read data and update the current write temperature data associated with the read command. The memory subsystem controller may perform a data integrity check on the retrieved host data to verify that the data stored at the memory cells of the memory page does not contain any errors or that the number of errors is below a predetermined threshold. The data integrity check may identify one or more data integrity indicators (eg, BEC, RBER, etc.) and compare the values of the data integrity indicators to threshold criteria. The memory subsystem controller may use the new current temperature value if the data integrity metric meets the threshold criteria (eg, the BEC or RBER value is above the threshold) (indicating a high error rate associated with the data stored at the memory page) and the written temperature value from the additional read data determines the new temperature compensation value. The memory subsystem controller may then determine a new adjusted read voltage value using the new temperature compensation value and execute the read command using the new adjusted read voltage value. If the data integrity metric fails to meet the threshold criteria (eg, the BEC or RBER value is below the threshold), the memory subsystem controller may use the adjusted read voltage value on subsequent read commands.
本公开的优点包含(但不限于)通过降低归因于交叉温度条件的触发率来改进存储器子系统的性能。由于触发率降低,这可带来存储器子系统的性能、可靠性及操作寿命的改进。Advantages of the present disclosure include, but are not limited to, improving memory subsystem performance by reducing trigger rates due to cross temperature conditions. This results in improvements in memory subsystem performance, reliability and operating life due to reduced trigger rates.
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如存储器装置140)、一或多个非易失性存储器装置(例如存储器装置130)或其组合。Figure 1 illustrates an example computing system 100 including a memory subsystem 110 in accordance with some embodiments of the present disclosure. Memory subsystem 110 may include media such as one or more volatile memory devices (eg, memory device 140), one or more non-volatile memory devices (eg, memory device 130), or a combination thereof.
存储器子系统110可为存储装置、存储器模块或存储装置与存储器模块的混合体。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储装置(UFS)驱动器、安全数字(SD)卡及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)及各种类型的非易失性双列直插式存储器模块(NVDIMM)。Memory subsystem 110 may be a storage device, a memory module, or a hybrid of storage devices and memory modules. Examples of storage devices include solid state drives (SSD), flash drives, universal serial bus (USB) flash drives, embedded multimedia controller (eMMC) drives, universal flash storage (UFS) drives, secure digital (SD ) card and hard disk drive (HDD). Examples of memory modules include dual in-line memory modules (DIMMs), small outline DIMMs (SO-DIMMs), and various types of non-volatile dual in-line memory modules (NVDIMMs).
计算系统100可为例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如飞机、无人机、汽车或其它运输工具)、具有物联网(IoT)能力的装置、嵌入式计算机(例如,包含于运载工具、工业设备或联网商用装置中的嵌入式计算机)或包含存储器及处理装置的此类计算装置的计算装置。Computing system 100 may be, for example, a desktop computer, a laptop computer, a network server, a mobile device, a vehicle (such as an aircraft, drone, automobile, or other vehicle), a device with Internet of Things (IoT) capabilities, an embedded computer Computing devices (eg, embedded computers included in vehicles, industrial equipment, or networked commercial devices) or such computing devices that include memory and processing devices.
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中使用,“耦合到”或“与…耦合”一般指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有中介组件),无论是有线还是无线的,包含例如电连接、光学连接、磁性连接等的连接。Computing system 100 may include a host system 120 coupled to one or more memory subsystems 110 . In some embodiments, host system 120 is coupled to different types of memory subsystems 110 . FIG. 1 illustrates an example of a host system 120 coupled to a memory subsystem 110. As used herein, "coupled to" or "coupled with" generally refers to a connection between components, which may be an indirect communication connection or a direct communication connection (e.g., without intervening components), whether wired or wireless, Includes connections such as electrical connections, optical connections, magnetic connections, etc.
主机系统120可包含处理器芯片组及由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如NVDIMM控制器)及存储协议控制器(例如PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110(例如)将数据写入到存储器子系统110及从存储器子系统110读取数据。Host system 120 may include a processor chipset and a software stack executed by the processor chipset. A processor chipset may include one or more cores, one or more caches, a memory controller (eg, NVDIMM controller), and a storage protocol controller (eg, PCIe controller, SATA controller). Host system 120 uses memory subsystem 110, for example, to write data to and read data from memory subsystem 110.
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、双倍数据速率(DDR)存储器总线、小计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双倍数据率(DDR)的DIMM插槽接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过物理主机接口(例如PCIe总线)与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口存取组件(例如存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。图1将存储器子系统110说明为实例。一般来说,主机系统120可经由相同通信连接、多个单独通信连接及/或通信连接的组合存取多个存储器子系统。Host system 120 may be coupled to memory subsystem 110 via a physical host interface. Examples of physical host interfaces include (but are not limited to) Serial Advanced Technology Attachment (SATA) interface, Peripheral Component Interconnect Express (PCIe) interface, Universal Serial Bus (USB) interface, Fiber Channel, Serial Attached SCSI (SAS) ), double data rate (DDR) memory bus, small computer system interface (SCSI), dual in-line memory module (DIMM) interface (for example, a DIMM slot interface that supports double data rate (DDR)), etc. A physical host interface may be used to transfer data between host system 120 and memory subsystem 110 . When memory subsystem 110 is coupled to host system 120 through a physical host interface (eg, PCIe bus), host system 120 may further utilize an NVM Express (NVMe) interface to access components (eg, memory device 130). The physical host interface may provide an interface for communicating control, address, data, and other signals between memory subsystem 110 and host system 120 . Figure 1 illustrates memory subsystem 110 as an example. Generally speaking, host system 120 may access multiple memory subsystems via the same communication connection, multiple separate communication connections, and/or a combination of communication connections.
存储器装置130、140可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任何组合。易失性存储器装置(例如存储器装置140)可为(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。Memory devices 130, 140 may include any combination of different types of non-volatile memory devices and/or volatile memory devices. Volatile memory devices, such as memory device 140, may be, but are not limited to, random access memory (RAM), such as dynamic random access memory (DRAM) and synchronous dynamic random access memory (SDRAM).
非易失性存储器装置(例如存储器装置130)的一些实例包含“与非”(NAND)型快闪存储器及原位写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可基于体电阻变化结合可堆叠交叉栅格式数据存取阵列来执行位存储。因此,与许多基于快闪的存储器形成对照,交叉点非易失性存储器可执行原位写入操作,其中非易失性存储器单元可在无需事先擦除非易失性存储器单元的情况下进行编程。NAND型快闪存储器包含例如二维NAND(2D NAND)及三维NAND(3D NAND)。Some examples of non-volatile memory devices, such as memory device 130, include NAND-type flash memory and write-in-place memory, such as three-dimensional cross-point ("3D cross-point") memory devices, which are NAND-type flash memories and write-in-place memories. Crosspoint array of volatile memory cells. A crosspoint array of non-volatile memory cells can perform bit storage based on volume resistance changes combined with a stackable cross-gate format data access array. Therefore, in contrast to many flash-based memories, crosspoint non-volatile memories can perform in-place write operations, where the non-volatile memory cells can be programmed without the need to first erase the non-volatile memory cells . NAND flash memories include, for example, two-dimensional NAND (2D NAND) and three-dimensional NAND (3D NAND).
存储器装置130中的每一者可包含一或多个存储器单元阵列。例如单电平单元(SLC)的一种类型的存储器单元每单元可存储一个位。例如多电平单元(MLC)、三电平单元(TLC)、四电平单元(QLC)及五电平单元(PLC)的其它类型的存储器单元每单元可存储多个位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC、PLC或其任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可经分组为页面,其可指代用于存储数据的存储器装置的逻辑单位。对于一些类型的存储器(例如NAND),页面可经分组以形成块。Each of memory devices 130 may include one or more arrays of memory cells. One type of memory cell, such as a single-level cell (SLC), can store one bit per cell. Other types of memory cells, such as multi-level cells (MLC), three-level cells (TLC), four-level cells (QLC), and five-level cells (PLC), can store multiple bits per cell. In some embodiments, each of memory devices 130 may include one or more arrays of memory cells, such as SLC, MLC, TLC, QLC, PLC, or any combination thereof. In some embodiments, a particular memory device may include SLC portions and MLC portions, TLC portions, QLC portions, or PLC portions of memory cells. The memory cells of memory device 130 may be grouped into pages, which may refer to logical units of the memory device for storing data. For some types of memory, such as NAND, pages may be grouped to form blocks.
尽管描述了例如非易失性存储器单元的3D交叉点阵列及NAND型快闪存储器(例如2D NAND、3D NAND)的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选择存储器、其它硫属化物基存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、氧化物基RRAM(OxRAM)、“或非”(NOR)快闪存储器及电可擦除可编程只读存储器(EEPROM)。Although non-volatile memory components such as 3D cross-point arrays of non-volatile memory cells and NAND-type flash memory (eg, 2D NAND, 3D NAND) are described, the memory device 130 may be based on any other type of non-volatile memory. Sexual memory, such as read-only memory (ROM), phase change memory (PCM), self-selecting memory, other chalcogenide-based memories, ferroelectric transistor random access memory (FeTRAM), ferroelectric random access memory (FeRAM), Magnetic random access memory (MRAM), spin transfer torque (STT)-MRAM, conductive bridge RAM (CBRAM), resistive random access memory (RRAM), oxide-based RRAM (OxRAM), NOR ) flash memory and electrically erasable programmable read-only memory (EEPROM).
存储器子系统控制器115(或为了简化起见,控制器115)可与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据及其它此类操作的操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路及/或离散组件、缓冲存储器或其组合。硬件可包含具有用于执行本文中描述的操作的专用(即,硬编码)逻辑的数字电路系统。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。Memory subsystem controller 115 (or, for simplicity, controller 115 ) may communicate with memory device 130 to perform operations such as reading data, writing data, or erasing data at memory device 130 , and other such operations. Memory subsystem controller 115 may include hardware, such as one or more integrated circuits and/or discrete components, buffer memory, or a combination thereof. Hardware may include digital circuitry with dedicated (ie, hard-coded) logic for performing the operations described herein. Memory subsystem controller 115 may be a microcontroller, special purpose logic circuitry (eg, field programmable gate array (FPGA), application specific integrated circuit (ASIC), etc.), or other suitable processor.
存储器子系统控制器115可为处理装置,其包含经配置以执行存储于本地存储器119中的指令的一或多个处理器(例如处理器117)。在说明的实例中,存储器子系统控制器115的本地存储器119包含经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流及例程的指令的嵌入式存储器,所述操作包含处置存储器子系统110与主机系统120之间的通信。Memory subsystem controller 115 may be a processing device that includes one or more processors (eg, processor 117 ) configured to execute instructions stored in local memory 119 . In the illustrated example, local memory 119 of memory subsystem controller 115 includes embedded memory configured to store instructions for executing various processes, operations, logic flows, and routines that control the operation of memory subsystem 110 . The operations include handling communications between memory subsystem 110 and host system 120 .
在说明的实例中,存储器子系统控制器115的本地存储器119包含经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流及例程的指令的嵌入式存储器,所述操作包含处置存储器子系统110与主机系统120之间的通信。In the illustrated example, local memory 119 of memory subsystem controller 115 includes embedded memory configured to store instructions for executing various processes, operations, logic flows, and routines that control the operation of memory subsystem 110 . The operations include handling communications between memory subsystem 110 and host system 120 .
在一些实施例中,本地存储器119可包含存储存储器指针、经提取数据等的存储器寄存器。本地存储器119还可包含用于存储微代码的只读存储器(ROM)。虽然已将图1中的实例存储器子系统110说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而可代替地依赖于外部控制(例如,由外部主机提供或由与存储器子系统分离的处理器或控制器提供)。In some embodiments, local memory 119 may include memory registers that store memory pointers, fetched data, and the like. Local memory 119 may also include read-only memory (ROM) for storing microcode. Although example memory subsystem 110 in FIG. 1 has been illustrated as including memory subsystem controller 115, in another embodiment of the present disclosure, memory subsystem 110 does not include memory subsystem controller 115 and may instead Reliance on external control (e.g., provided by an external host or by a processor or controller separate from the memory subsystem).
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作且可将所述命令或操作转换成指令或适当命令以实现对存储器装置130的所期望存取。存储器子系统控制器115可负责其它操作,例如损耗均衡操作、废弃项目收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓存操作以及与存储器装置130相关联的逻辑块地址(例如逻辑块地址(LBA)、命名空间)与物理地址(例如物理MU地址、物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含用以经由物理主机接口与主机系统120通信的主机接口电路系统。所述主机接口电路系统可将从主机系统接收的命令转换成命令指令以存取存储器装置130,而且还将与存储器装置130相关联的响应转换成用于主机系统120的信息。Generally speaking, memory subsystem controller 115 may receive commands or operations from host system 120 and may convert the commands or operations into instructions or appropriate commands to achieve desired access to memory device 130 . Memory subsystem controller 115 may be responsible for other operations, such as wear leveling operations, discarded item collection operations, error detection and error correction code (ECC) operations, encryption operations, cache operations, and logical block addresses associated with memory device 130 ( For example, address translation between logical block address (LBA), namespace) and physical address (such as physical MU address, physical block address). Memory subsystem controller 115 may further include host interface circuitry to communicate with host system 120 via a physical host interface. The host interface circuitry may convert commands received from the host system into command instructions to access memory device 130 and also convert responses associated with memory device 130 into information for host system 120 .
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如DRAM)及地址电路系统(例如行解码器及列解码器),其可从存储器子系统控制器115接收地址且解码所述地址以存取存储器装置130。Memory subsystem 110 may also include additional circuitry or components not illustrated. In some embodiments, memory subsystem 110 may include a cache or buffer (eg, DRAM) and address circuitry (eg, row decoders and column decoders) that may receive addresses from memory subsystem controller 115 and decode all address to access the memory device 130.
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110是受管理的存储器装置,其包含具有在裸片上的控制逻辑(例如本地控制器135)及用于相同存储器装置封装内的媒体管理的控制器(例如存储器子系统控制器115)的原始存储器装置。受管理的存储器装置的实例是受管理的NAND(MNAND)装置。In some embodiments, memory device 130 includes a local media controller 135 that operates in conjunction with memory subsystem controller 115 to perform operations on one or more memory cells of memory device 130 . An external controller (eg, memory subsystem controller 115) may externally manage memory device 130 (eg, perform media management operations on memory device 130). In some embodiments, memory subsystem 110 is a managed memory device that includes on-die control logic (eg, local controller 135 ) and a controller for media management within the same memory device package (eg, memory The original memory device of the subsystem controller 115). An example of a managed memory device is a managed NAND (MNAND) device.
在一个实施例中,存储器子系统110包含媒体管理组件113,其可用于将写入温度数据附加到用户数据及确定用于对存储器装置130及存储器装置140执行的读取操作的温度补偿值。在一些实施例中,存储器子系统控制器115包含媒体管理组件113的至少一部分。在一些实施例中,媒体管理组件113是主机系统120、应用程序或操作系统的部分。在其它实施例中,本地媒体控制器135包含媒体管理组件113的至少一部分且经配置以执行本文中描述的功能性。媒体管理组件113可经由同步接口与存储器装置130及140直接通信。此外,数据在存储器装置130与存储器装置140之间传送可在存储器子系统110内完成而无需存取主机系统120。In one embodiment, memory subsystem 110 includes a media management component 113 that may be used to append write temperature data to user data and determine temperature compensation values for read operations performed on memory device 130 and memory device 140 . In some embodiments, memory subsystem controller 115 includes at least a portion of media management component 113 . In some embodiments, media management component 113 is part of host system 120, an application, or an operating system. In other embodiments, local media controller 135 includes at least a portion of media management component 113 and is configured to perform the functionality described herein. Media management component 113 may communicate directly with memory devices 130 and 140 via a synchronization interface. Additionally, data transfer between memory device 130 and memory device 140 may be accomplished within memory subsystem 110 without accessing host system 120 .
媒体管理组件113可确定用于对存储器装置130、140执行的每一写入操作的写入温度数据及将写入温度数据附加到对应写入操作的主机数据。媒体管理组件可进一步确定温度补偿值且使用温度补偿值确定要在对存储器装置130、140进行的读取操作期间要使用的读取偏移值。下文描述关于媒体管理组件113的操作的另外细节。The media management component 113 may determine write temperature data for each write operation performed on the memory devices 130, 140 and append the write temperature data to the host data for the corresponding write operation. The media management component may further determine a temperature compensation value and use the temperature compensation value to determine a read offset value to be used during read operations on memory devices 130, 140. Additional details regarding the operation of media management component 113 are described below.
在一些实施例中,存储器子系统控制器115、存储器装置130及/或存储器装置140可包含温度测量装置。温度测量装置可为能够确定温度数据(例如操作温度值)的热电偶、温度计、红外传感器或任何其它工具。在一些实施例中,温度测量装置可为硬件装置,其是存储器子系统控制器115的部分且由存储器子系统控制器115操作。在一些实施例中,温度测量装置可为硬件装置,其是存储器装置130、140的部分且由存储器装置130、140操作。在此类实施例中,存储器装置130、140可周期性地将温度数据发送到媒体管理组件113,及/或媒体管理组件113可请求(例如,使用轮询或其它请求方法)来自存储器装置130、140的温度数据。In some embodiments, memory subsystem controller 115, memory device 130, and/or memory device 140 may include a temperature measurement device. The temperature measuring device may be a thermocouple, thermometer, infrared sensor or any other tool capable of determining temperature data such as an operating temperature value. In some embodiments, the temperature measurement device may be a hardware device that is part of and operated by memory subsystem controller 115 . In some embodiments, the temperature measurement device may be a hardware device that is part of and operated by the memory device 130, 140. In such embodiments, memory devices 130 , 140 may periodically send temperature data to media management component 113 , and/or media management component 113 may request (eg, using polling or other requesting methods) data from memory device 130 , temperature data of 140.
一旦由媒体管理组件113接收,温度数据就可存储于作为温度补偿组件113的部分的寄存器(例如8位寄存器)中、易失性存储器装置(例如存储器装置140)上的特定存储器位置中、本地存储器119上的存储器高速缓存中、数据结构(具有一组数据值、其间的关系及/或可应用到数据值的函数或操作的格式)中等。在一些实施例中,每一后续接收到或确定的温度数据可取代先前存储的温度数据。举例来说,由媒体管理组件113从存储器装置130、140接收到的每一新操作温度值可取代先前存储于存储器子系统控制器115上的存储器高速缓存或寄存器中的操作温度值。在其它实施例中,多组温度数据可由媒体管理组件113存储。Once received by media management component 113, the temperature data may be stored in a register (eg, an 8-bit register) as part of temperature compensation component 113, in a specific memory location on a volatile memory device (eg, memory device 140), locally. In a memory cache on memory 119, a data structure (a format having a set of data values, relationships therebetween, and/or functions or operations applicable to the data values), etc. In some embodiments, each subsequently received or determined temperature data may replace previously stored temperature data. For example, each new operating temperature value received by the media management component 113 from the memory devices 130 , 140 may replace the previously stored operating temperature value in a memory cache or register on the memory subsystem controller 115 . In other embodiments, multiple sets of temperature data may be stored by media management component 113 .
图2是根据本公开的一些实施例的用于执行写入操作的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如运行或执行于处理装置上的指令)或其组合。在一些实施例中,方法200由图1的媒体管理组件113执行。尽管以特定序列或顺序展示,但除非另外指定,否则过程的顺序可修改。因此,所说明实施例应仅被理解为实例,且所说明过程可以不同顺序执行,且一些过程可并行执行。另外,在各个实施例中,可省略一或多个过程。因此,不是每个实施例中都需要所有过程。其它过程流程是可能的。Figure 2 is a flowchart of an example method 200 for performing a write operation in accordance with some embodiments of the present disclosure. Method 200 may be performed by processing logic, which may include hardware (e.g., a processing device, circuitry, special purpose logic, programmable logic, microcode, hardware of a device, integrated circuits, etc.), software (e.g., running or executing on a processing device instructions) or a combination thereof. In some embodiments, method 200 is performed by media management component 113 of FIG. 1 . Although shown in a specific sequence or order, the order of the processes may be modified unless otherwise specified. Accordingly, the illustrated embodiments should be construed as examples only and the illustrated processes may be performed in a different order and some processes may be performed in parallel. Additionally, in various embodiments, one or more processes may be omitted. Therefore, not all procedures may be required in every embodiment. Other process flows are possible.
在操作210处,处理逻辑接收写入命令。写入命令可由主机(例如主机120)或由存储器子系统控制器(例如存储器子系统控制器113)起始。在一些实施例中,响应于接收到写入命令,处理逻辑识别寻址要将由写入命令引用的数据编程到其上的一组存储器单元(例如页面)的一或多个字线。At operation 210, processing logic receives a write command. The write command may be initiated by the host (eg, host 120) or by a memory subsystem controller (eg, memory subsystem controller 113). In some embodiments, in response to receiving a write command, processing logic identifies one or more word lines addressing a set of memory cells (eg, a page) onto which data referenced by the write command is to be programmed.
在操作220处,处理逻辑确定存储器子系统的操作温度。在一些实施例中,处理逻辑通过使用连接到存储器子系统控制器115的温度测量装置执行温度读取来确定存储器装置子系统110的操作温度。举例来说,处理逻辑可从温度测量装置获得操作温度值。At operation 220, processing logic determines the operating temperature of the memory subsystem. In some embodiments, processing logic determines the operating temperature of memory device subsystem 110 by performing a temperature reading using a temperature measurement device connected to memory subsystem controller 115 . For example, processing logic may obtain an operating temperature value from a temperature measurement device.
在一些实施例中,处理逻辑从存储器装置(例如存储器装置130、140)请求来自连接到存储器装置130、140的温度测量装置的操作温度值。响应于请求,处理逻辑可从存储器装置130、140接收从温度测量装置检索的操作温度值。In some embodiments, processing logic requests operating temperature values from a memory device (eg, memory device 130, 140) from a temperature measurement device connected to memory device 130, 140. In response to the request, processing logic may receive from memory device 130, 140 the operating temperature value retrieved from the temperature measurement device.
在一些实施例中,处理逻辑使用轮询方法从存储器装置获得操作温度值。举例来说,处理逻辑可周期性地从存储器装置130、140请求及/或接收操作温度值。操作温度值可存储于例如定位于存储器子系统控制器115或存储器装置140上的存储器高速缓存中。为了在操作220处确定存储器子系统的温度,处理逻辑可检索存储于高速缓存或寄存器上的最近接收到的温度值。In some embodiments, the processing logic obtains the operating temperature value from the memory device using a polling method. For example, processing logic may periodically request and/or receive operating temperature values from memory devices 130, 140. The operating temperature value may be stored, for example, in a memory cache located on memory subsystem controller 115 or memory device 140 . To determine the temperature of the memory subsystem at operation 220, processing logic may retrieve the most recently received temperature value stored on a cache or register.
在操作230处,处理逻辑将操作温度值(例如写入温度值)附加到写入命令的写入数据。写入数据可包含处理逻辑要编程到存储器装置的数据。举例来说,写入温度值可作为元数据被添加到写入数据。可被添加到写入数据的其它元数据包含错误处置数据(例如错误校正码(ECC)码字奇偶校验数据)、数据版本、有效位图(哪些LBA或逻辑传送单元含有有效数据)等。在一些实施例中,处理逻辑可附加由写入操作引用的存储器页面的写入温度值。举例来说,如果写入命令包含要编程到三个存储器页面的写入数据,那么处理逻辑可将操作温度值附加到每一存储器页面的数据。在其它实施例中,写入温度值可附加到任何大小粒度的数据。在一些实施例中,处理逻辑可使用例如ECC码字奇偶校验数据来对操作温度值进行编码。At operation 230, processing logic appends the operating temperature value (eg, the write temperature value) to the write data of the write command. The write data may include data to be programmed by the processing logic into the memory device. For example, a write temperature value may be added to the write data as metadata. Other metadata that can be added to the written data includes error handling data (such as error correction code (ECC) codeword parity data), data version, valid bitmap (which LBAs or logical transfer units contain valid data), etc. In some embodiments, processing logic may append the write temperature value of the memory page referenced by the write operation. For example, if a write command contains write data to be programmed into three memory pages, processing logic may append an operating temperature value to the data for each memory page. In other embodiments, the write temperature value may be appended to the data at any size granularity. In some embodiments, processing logic may encode the operating temperature value using, for example, ECC codeword parity data.
在操作240处,处理逻辑将附加写入数据(例如写入数据及写入温度值)编程到一组经识别的存储器单元。举例来说,附加写入数据可从存储器装置或高速缓存检索且编程到存储器单元上。为了对附加写入数据进行编程,处理逻辑可将特定电压施加到每一存储器单元,这导致电荷由每一存储器单元保持。At operation 240, processing logic programs additional write data (eg, write data and write temperature values) to the identified set of memory cells. For example, additional write data may be retrieved from the memory device or cache and programmed onto the memory cell. To program additional write data, processing logic may apply a specific voltage to each memory cell, which causes charge to be retained by each memory cell.
图3是根据本公开的一些实施例的用于执行读取操作的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如运行或执行于处理装置上的指令)或其组合。在一些实施例中,方法300由图1的媒体管理组件113执行。尽管以特定序列或顺序展示,但除非另外指定,否则过程的顺序可修改。因此,所说明实施例应仅被理解为实例,且所说明过程可以不同顺序执行,且一些过程可并行执行。另外,在各个实施例中,可省略一或多个过程。因此,不是每个实施例中都需要所有过程。其它过程流程是可能的。Figure 3 is a flowchart of an example method 300 for performing a read operation in accordance with some embodiments of the present disclosure. Method 300 may be performed by processing logic, which may include hardware (e.g., a processing device, circuitry, special purpose logic, programmable logic, microcode, hardware of a device, integrated circuits, etc.), software (e.g., running or executing on a processing device instructions) or a combination thereof. In some embodiments, method 300 is performed by media management component 113 of FIG. 1 . Although shown in a specific sequence or order, the order of the processes may be modified unless otherwise specified. Accordingly, the illustrated embodiments should be construed as examples only and the illustrated processes may be performed in a different order and some processes may be performed in parallel. Additionally, in various embodiments, one or more processes may be omitted. Therefore, not all procedures may be required in every embodiment. Other process flows are possible.
在操作310处,处理逻辑接收寻址块的一组存储器页面的一组读取命令。在一个实例中,所述一组读取命令可为针对存储于同一字线上的各个存储器页面或循序存储器页面处的数据的循序读取命令。在另一实例中,所述一组读取命令可为针对存储于存储器装置的不同字线处的数据的随机读取命令。在一些实施例中,所述一组读取命令中的每一读取命令可寻址对应页面。在其它实施例中,每一读取命令可寻址任何大小粒度的存储器。在一些实施例中,处理逻辑可接收寻址块的一组存储器页面的单个读取命令。因此,处理逻辑可发出针对在单个读取命令中引用的每一存储器页面的单独读取命令。At operation 310, processing logic receives a set of read commands addressing a set of memory pages of the block. In one example, the set of read commands may be sequential read commands for data stored at individual memory pages or sequential memory pages on the same word line. In another example, the set of read commands may be random read commands for data stored at different word lines of the memory device. In some embodiments, each read command in the set of read commands may address a corresponding page. In other embodiments, each read command may address memory at any size granularity. In some embodiments, processing logic may receive a single read command that addresses a set of memory pages of a block. Therefore, processing logic may issue separate read commands for each memory page referenced in a single read command.
在操作315处,处理逻辑确定温度补偿值。在一些实施例中,温度补偿值可通过从当前温度值(例如存储器子系统110的当前温度)减去写入温度值(或反之亦然)来计算。因此,为了确定温度补偿值,处理逻辑可确定存储器子系统110的当前温度(使用例如温度测量装置)且确定对应于所述一组读取命令的写入温度值。At operation 315, processing logic determines a temperature compensation value. In some embodiments, the temperature compensation value may be calculated by subtracting the write temperature value from the current temperature value (eg, the current temperature of memory subsystem 110) (or vice versa). Accordingly, to determine the temperature compensation value, processing logic may determine the current temperature of memory subsystem 110 (using, for example, a temperature measurement device) and determine a write temperature value corresponding to the set of read commands.
为了确定写入温度值,处理逻辑可检索存储于寄存器、专用存储器位置、高速缓存等中的最近写入温度值。特定来说,处理逻辑可对存储器页面执行读取操作及从附加温度数据检索写入温度。接着,处理逻辑可将写入温度值存储于寄存器、专用存储器位置、高速缓存等中。写入温度值可从来自每一后续读取命令的附加温度数据更新。从附加温度数据检索写入温度值的此操作可响应于执行读取操作(例如下文论述的操作325)、响应于数据完整性指标未能满足阈值准则(例如下文论述的操作345)或响应于方法300的任何其它操作而执行。To determine the write temperature value, processing logic may retrieve the most recent write temperature value stored in a register, special memory location, cache, etc. Specifically, processing logic may perform read operations on memory pages and retrieve write temperatures from additional temperature data. The processing logic may then store the written temperature value in a register, dedicated memory location, cache, etc. The write temperature value may be updated from additional temperature data from each subsequent read command. This operation of retrieving a written temperature value from the additional temperature data may be in response to performing a read operation (eg, operation 325 discussed below), in response to a data integrity indicator failing to meet threshold criteria (eg, operation 345 discussed below), or in response to Any other operations of method 300 are performed.
在其中尚未知道写入温度值(例如,其未存储于寄存器、专用存储器位置、高速缓存等中)的实施例中,例如当所述一组读取命令中的读取命令中没有一个已被执行时(因此,写入温度值尚未从附加写入数据检索),处理逻辑可使用默认写入温度值确定温度补偿值。默认写入温度值可在存储器子系统110的编程及/或校准期间设置、由固件更新设置、由用户输入设置等。在一些实施例中,默认写入温度值可存储于寄存器、专用存储器位置、高速缓存等中且在所述数据在读取操作期间被检索之后用实际写入温度数据进行更新。In embodiments where the write temperature value is not yet known (e.g., it is not stored in a register, dedicated memory location, cache, etc.), such as when none of the read commands in the set of read commands have been At execution time (so the write temperature value has not yet been retrieved from the additional write data), the processing logic can use the default write temperature value to determine the temperature compensation value. The default write temperature value may be set during programming and/or calibration of the memory subsystem 110, set by a firmware update, set by user input, etc. In some embodiments, the default write temperature value may be stored in a register, dedicated memory location, cache, etc. and updated with actual write temperature data after the data is retrieved during a read operation.
在操作320处,处理逻辑使用温度补偿值确定读取偏移电压值。读取偏移电压值可为施加到基本读取电压值以产生经调整读取电压值的电压偏移值。经调整读取电压值可在读取操作期间被施加到一组存储器单元。为了确定与温度补偿值相关的读取偏移电压值,处理逻辑可在温度补偿数据结构中执行查找、将公式或方程式应用到温度补偿值等。举例来说,图4是根据本公开的一些实施例的温度补偿数据结构410的说明性实例。数据结构410中的每一条目包含温度补偿值(例如5℃、10℃等)及每一温度补偿值的读取电压偏移(例如x1 V、x2 V等)值。在一些实施例中,经确定温度补偿值可存储于作为媒体管理组件113的部分的特定寄存器中、易失性存储器装置(例如存储器装置140)上的专用存储器位置中、本地存储器119上的高速缓存中等。At operation 320, processing logic determines a read offset voltage value using the temperature compensation value. The read offset voltage value may be a voltage offset value applied to the base read voltage value to produce an adjusted read voltage value. The adjusted read voltage value may be applied to a group of memory cells during a read operation. To determine the read offset voltage value associated with the temperature compensation value, processing logic may perform a lookup in the temperature compensation data structure, apply a formula or equation to the temperature compensation value, etc. For example, FIG. 4 is an illustrative example of a temperature compensation data structure 410 in accordance with some embodiments of the present disclosure. Each entry in the data structure 410 includes a temperature compensation value (eg, 5°C, 10°C, etc.) and a read voltage offset (eg, x 1 V, x 2 V, etc.) value for each temperature compensation value. In some embodiments, the determined temperature compensation value may be stored in a special register as part of the media management component 113, in a dedicated memory location on a volatile memory device (eg, memory device 140), in a high-speed drive on local memory 119. Cache is medium.
在操作325处,处理逻辑使用经调整读取电压值执行读取命令。处理逻辑可通过将读取电压偏移值添加到基本读取电压值来确定经调整读取电压值。在实例中,处理逻辑可使用经调整读取电压值指示存储器装置对由读取命令引用的存储器页面执行读取操作。在另一实例中,处理逻辑可将读取电压偏移值发送到存储器装置,其可通过将电压偏移值添加到基本读取值来确定经调整读取电压值。At operation 325, processing logic executes the read command using the adjusted read voltage value. The processing logic may determine the adjusted read voltage value by adding the read voltage offset value to the base read voltage value. In an example, processing logic may use the adjusted read voltage value to instruct the memory device to perform a read operation on the memory page referenced by the read command. In another example, processing logic may send the read voltage offset value to the memory device, which may determine the adjusted read voltage value by adding the voltage offset value to the base read value.
在操作330处,处理逻辑接收附加读取数据。举例来说,存储器装置可检索存储于由读取命令引用的地址处的附加读取数据且将检索到的附加读取数据发送到媒体管理组件113。附加读取数据可包含主机数据及主机数据的写入温度值。At operation 330, processing logic receives additional read data. For example, the memory device may retrieve additional read data stored at an address referenced by the read command and send the retrieved additional read data to media management component 113 . Additional read data may include host data and the write temperature value of the host data.
在操作335处,处理逻辑更新与所述一组读取命令相关的当前写入温度数据。举例来说,处理逻辑可将写入温度数据存储于作为媒体管理组件113的部分的特定寄存器中、易失性存储器装置(例如存储器装置140)上的专用存储器位置中、本地存储器119中等。At operation 335, processing logic updates the current write temperature data associated with the set of read commands. For example, processing logic may store the write temperature data in specific registers as part of media management component 113, in a dedicated memory location on a volatile memory device (eg, memory device 140), in local memory 119, or the like.
在操作340处,处理逻辑对检索到的主机数据执行数据完整性检查。数据完整性检查可验证存储于存储器页面的存储器单元处的数据不包含任何错误或错误数目低于预定阈值。在扫描操作期间,处理逻辑识别一或多个数据完整性指标,例如位错误计数(BEC)或原始位错误率(RBER),其表示存储于数据块处的数据每单位时间经历的位错误的数目。在一些实施例中,在数据完整性检查期间,处理逻辑从页面读取原始码字(即,一系列固定数目的位)。处理逻辑可将码字应用到错误校正码(ECC)解码器以产生经解码码字且将所述经解码码字与原始码字进行比较。处理逻辑可对经解码码字与原始码字之间的翻转位的数目进行计数,其中翻转位的数目与码字中位的总数的比率表示RBER。At operation 340, processing logic performs a data integrity check on the retrieved host data. The data integrity check may verify that the data stored at the memory cells of the memory page does not contain any errors or that the number of errors is below a predetermined threshold. During a scan operation, processing logic identifies one or more data integrity metrics, such as a bit error count (BEC) or a raw bit error rate (RBER), which represents the number of bit errors experienced per unit time by the data stored at the data block. number. In some embodiments, during the data integrity check, processing logic reads the original codeword (ie, a fixed number of bits) from the page. The processing logic may apply the codewords to an error correction code (ECC) decoder to produce decoded codewords and compare the decoded codewords to the original codewords. The processing logic may count the number of flipped bits between the decoded codeword and the original codeword, where the ratio of the number of flipped bits to the total number of bits in the codeword represents the RBER.
在操作345处,处理逻辑确定数据完整性指标的值(例如BEC值、RBER值等)是否满足阈值准则(例如,满足或超过阈值、低于阈值等)。阈值准则可在存储器子系统110的制造期间或在存储器子系统110的编程及/或校准期间进行确定及设置。在一些实施例中,阈值准则可反映处理逻辑是否可使用ECC校正错误。在实例中,处理逻辑可确定RBER值或BEC值是否超过阈值。At operation 345, processing logic determines whether the value of the data integrity indicator (eg, BEC value, RBER value, etc.) meets the threshold criterion (eg, meets or exceeds the threshold, is below the threshold, etc.). Threshold criteria may be determined and set during fabrication of memory subsystem 110 or during programming and/or calibration of memory subsystem 110 . In some embodiments, the threshold criterion may reflect whether processing logic can use ECC to correct errors. In an example, processing logic may determine whether the RBER value or BEC value exceeds a threshold.
如果数据完整性指标满足阈值准则(例如,BEC或RBER值高于阈值)(指示与存储于块处的数据相关联的高错误率),那么处理逻辑继续到操作315,其中处理逻辑使用新的当前温度值及来自操作335的写入温度值确定新的温度补偿值。接着,处理逻辑可使用新温度补偿值确定新的经调整读取电压值且使用所述新的经调整读取电压值执行读取命令。If the data integrity metric meets the threshold criteria (eg, the BEC or RBER value is above the threshold) (indicating a high error rate associated with the data stored at the block), then the processing logic continues to operation 315, where the processing logic uses the new The current temperature value and the written temperature value from operation 335 determine the new temperature compensation value. The processing logic may then determine a new adjusted read voltage value using the new temperature compensation value and execute the read command using the new adjusted read voltage value.
如果数据完整性指标未能满足阈值准则(例如,BEC或RBER值低于阈值),那么处理逻辑继续到操作350,其中处理逻辑从所述一组读取命令选择下一读取命令,且接着,继续到操作325,其中处理逻辑使用经调整读取电压值执行下一读取命令。If the data integrity metric fails to meet the threshold criteria (eg, the BEC or RBER value is below the threshold), then processing logic continues to operation 350, where processing logic selects a next read command from the set of read commands, and then , continuing to operation 325, where the processing logic executes the next read command using the adjusted read voltage value.
图5A是说明根据本公开的一些实施例的电压分布移位的框图。如图5A上展示,电压分布500说明存储四个数据位的16电平QLC存储器单元的两个电平‘0100’及‘0101’。存储器单元可经编程以通过将编程脉冲序列施加到存储器单元直到编程电压电平达到分布501内的值范围来在更热温度范围内存储对应于分布501的逻辑数据值‘0100’。因为与存储器单元相关联的温度随时间推移变成更冷温度范围(例如,在存储器单元被编程的时间与存储器单元被读取的时间之间的时间段内),编程电压电平(或表观读取电压)可能会受到影响且与分布501相关联的编程电压电平移位到分布503。因为分布503落在与逻辑状态值‘0101’相关联的分布(分布505)的范围内,因此存在读取错误的可能性。举例来说,读取电压电平509可经编码为对应于逻辑状态‘0101’而非‘0100’。Figure 5A is a block diagram illustrating voltage distribution shifting in accordance with some embodiments of the present disclosure. As shown in Figure 5A, voltage distribution 500 illustrates the two levels '0100' and '0101' of a 16-level QLC memory cell storing four data bits. A memory cell may be programmed to store logic data value '0100' corresponding to distribution 501 within a hotter temperature range by applying a sequence of programming pulses to the memory cell until the programming voltage level reaches a range of values within distribution 501 . Because the temperature associated with a memory cell changes into a cooler temperature range over time (e.g., during the time period between the time the memory cell is programmed and the time the memory cell is read), the programming voltage level (or table ((read voltage)) may be affected and the programming voltage level associated with distribution 501 shifted to distribution 503. Because distribution 503 falls within the range of the distribution associated with logical state value '0101' (distribution 505), there is a possibility of a read error. For example, read voltage level 509 may be encoded to correspond to logic state '0101' rather than '0100'.
图5B是说明根据本公开的一些实施例的电压分布移位的框图。如图5B上展示,说明存储四个数据位的16电平QLC存储器单元的两个电平‘0100’及‘0011’的电压分布530。存储器单元可经编程以通过将编程脉冲序列施加到存储器单元直到编程电压电平达到分布531内的值范围来在更冷温度范围内存储对应于分布531的逻辑数据值‘0100’。因为与存储器单元相关联的温度随时间推移变成更热温度范围(例如,在存储器单元被编程的时间与存储器单元被读取的时间之间的时间段内),编程电压电平(或表观读取电压)可能会受到影响且与分布531相关联的编程电压电平移位到分布533。因为分布533落在与逻辑状态值‘0011’相关联的分布(分布535)的范围内,因此存在读取错误的可能性。举例来说,读取电压电平539可经编码为对应于逻辑状态‘0011’而非‘0100’。Figure 5B is a block diagram illustrating voltage distribution shifting in accordance with some embodiments of the present disclosure. As shown in FIG. 5B , the voltage distribution 530 of two levels '0100' and '0011' of a 16-level QLC memory cell storing four data bits is illustrated. The memory cell may be programmed to store logic data value '0100' corresponding to distribution 531 in a cooler temperature range by applying a sequence of programming pulses to the memory cell until the programming voltage level reaches a range of values within distribution 531 . Because the temperature associated with a memory cell changes into a hotter temperature range over time (e.g., during the time period between the time the memory cell is programmed and the time the memory cell is read), the programming voltage level (or table ((read voltage)) may be affected and the programming voltage level associated with distribution 531 shifted to distribution 533. Because distribution 533 falls within the range of the distribution associated with logical state value '0011' (distribution 535), there is a possibility of a read error. For example, read voltage level 539 may be encoded to correspond to logic state '0011' rather than '0100'.
图6说明计算机系统600的实例机器,在所述计算机系统内可执行用于致使所述机器执行本文中论述的方法论中的任一或多者的一组指令。在一些实施例中,计算机系统600可对应于主机系统(例如图1的主机系统120),其包含或利用存储器子系统(例如图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的媒体管理组件113的操作)。在替代实施例中,机器可连接(例如联网)到LAN、内联网、外联网及/或因特网中的其它机器。机器可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作,或在云计算基础设施或环境中作为服务器或客户端机器操作。6 illustrates an example machine of a computer system 600 within which a set of instructions may be executed to cause the machine to perform any one or more of the methodologies discussed herein. In some embodiments, computer system 600 may correspond to a host system (eg, host system 120 of FIG. 1 ) that includes or utilizes a memory subsystem (eg, memory subsystem 110 of FIG. 1 ) or may be used to perform the operations of a controller ( For example, the operating system is executed to perform operations corresponding to media management component 113 of FIG. 1). In alternative embodiments, the machine may be connected (eg, networked) to other machines in a LAN, intranet, extranet, and/or the Internet. The machine may operate as a server or client machine in a client-server network environment, as a peer machine in a peer-to-peer (or distributed) network environment, or as a server or client in a cloud computing infrastructure or environment terminal machine operation.
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥或能够(循序或以其它方式)执行指定由所述机器所采取的动作的一组指令的任何机器。此外,虽然说明了单个机器,但术语“机器”还应被视为包含个别地或联合地执行一(或多组)指令以执行本文中论述的方法论中的任一或多者的机器的任何集合。The machine may be a personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), cellular phone, network device, server, network router, switch or bridge or be capable of (sequentially or otherwise) performing specified Any machine that is a set of instructions for an action to be taken by the machine. Furthermore, while a single machine is illustrated, the term "machine" shall also be taken to include any machine that individually or jointly executes one (or more sets) of instructions to perform any one or more of the methodologies discussed herein. gather.
实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM))等)以及数据存储系统618,其经由总线630彼此通信。处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的一处理器或实施指令集组合的多个处理器。处理装置602也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似者。处理装置602经配置以执行用于执行本文中论述的操作及步骤的指令626。计算机系统600可进一步包含网络接口装置608以通过网络620通信。Example computer system 600 includes a processing device 602, main memory 604 (eg, read-only memory (ROM), flash memory, dynamic random access memory (DRAM) (eg, synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), Static memory 606 (eg, flash memory, static random access memory (SRAM), etc.) and data storage system 618 communicate with each other via bus 630 . Processing device 602 represents one or more general-purpose processing devices, such as a microprocessor, central processing unit, or the like. More specifically, the processing device may be a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or a processor that implements other instruction sets or multiple processors implementing a combination of instruction sets. The processing device 602 may 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), a network processor, or the like. Processing device 602 is configured to execute instructions 626 for performing the operations and steps discussed herein. Computer system 600 may further include a network interface device 608 to communicate over network 620.
数据存储系统618可包含其上存储体现本文中描述的方法论或功能中的任一或多者的一或多组指令626或软件的机器可读存储媒体624(也称为计算机可读媒体)。指令626也可在其由计算机系统600执行期间完全或至少部分驻留于主存储器604内及/或处理装置602内,主存储器604及处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618及/或主存储器604可对应于图1的存储器子系统110。Data storage system 618 may include machine-readable storage media 624 (also referred to as computer-readable media) having stored thereon one or more sets of instructions 626 or software embodying any one or more of the methodologies or functions described herein. Instructions 626 may also reside fully or at least partially within main memory 604 and/or within processing device 602 during their execution by computer system 600, which also constitute machine-readable storage media. Machine-readable storage media 624, data storage system 618, and/or main memory 604 may correspond to memory subsystem 110 of FIG. 1 .
在一个实施例中,指令626包含用以实施对应于图1的媒体管理组件113的功能性的指令。虽然在实例实施例中将机器可读存储媒体624展示为单个媒体,但术语“机器可读存储媒体”应理解为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码一组指令以供机器执行并且致使机器执行本公开的方法中的任一者或多者的任何媒体。因此,术语“机器可读存储媒体”应理解为包含(但不限于)固态存储器、光学媒体及磁性媒体。In one embodiment, instructions 626 include instructions to implement functionality corresponding to media management component 113 of FIG. 1 . Although machine-readable storage medium 624 is shown as a single medium in the example embodiment, the term "machine-readable storage medium" should be understood to include a single medium or multiple media that stores one or more sets of instructions. The term "machine-readable storage medium" shall also be taken to include any medium capable of storing or encoding a set of instructions for execution by a machine and causing the machine to perform any one or more of the methods of the present disclosure. Accordingly, the term "machine-readable storage medium" should be understood to include, but is not limited to, solid-state memory, optical media, and magnetic media.
已依据对计算机存储器内的数据位的操作的算法及符号表示呈现前述详细描述的一些部分。这些算法描述及表示是由数据处理领域的技术人员用以向所属领域的其它技术人员最有效地表达其工作实质的方式。算法在本文且通常被设想为导致所期望结果的自相一致的操作序列。操作是需要物理操纵物理量的操作。通常,尽管不是必须的,这些量采取能够被存储、组合、比较及以其它方式操纵的电或磁性信号的形式。已被证明是方便的是,有时主要出于习惯用法的原因,将这些信号称为位、值、元素、符号、字符、项、数字或类似者。Some portions of the foregoing detailed description 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 means used by those skilled in the data processing arts to most effectively convey the substance of their work to other skilled in the art. Algorithms are herein and generally conceived as a self-consistent sequence of operations that lead to a desired result. Operations are operations that require physical manipulation 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, sometimes primarily for reasons of convention, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
然而,应记住,全部这些及类似术语应与适当物理量相关联,且仅为应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,其将表示为计算机系统的寄存器及存储器内的物理(电子)量的数据操纵或变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。However, it should be remembered that all 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 may relate to the actions and processes of a computer system or similar electronic computing device that manipulates or transforms data represented as physical (electronic) quantities within a computer system's registers and memory, similarly represented as a computer system's memory or registers or other This type of information stores other data on physical quantities within the system.
本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的经专门构造,或其可包含由存储于计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储于计算机可读存储媒体中,例如(但不限于)任何类型的磁盘,包含软盘、光盘、CD-ROM及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。The present disclosure also relates to apparatus for performing the operations herein. Such a device may be specially constructed for the intended purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. This 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-ROM and magneto-optical disks, read-only memory (ROM), random access memory (RAM) , EPROM, EEPROM, magnetic or optical card or any type of media suitable for storing electronic instructions, each coupled to the computer system bus.
本文呈现的算法及显示并不固有地与任何特定计算机或其它设备相关。各种通用系统可结合根据本文的教示的程序使用,或可证明为方便的是构造更专门设备来执行方法。多种这些系统的结构将如下文描述中陈述那样出现。另外,本公开并非参考任何特定编程语言进行描述。应了解,多种编程语言可用于实施本文中所描述的本公开的教示。The algorithms and displays presented herein are not inherently related to any particular computer or other device. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized equipment to perform the methods. The structure of a variety of these systems will appear as set forth in the description below. Additionally, the present disclosure is not described with reference to any particular programming language. It should be appreciated that a variety of programming languages may be used to implement the teachings of the present disclosure described herein.
本公开可经提供为计算机程序产品或软件,其可包含其上存储有指令的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于存储呈可由机器(例如计算机)读取的形式的信息的任何机构。举例来说,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器装置等。The disclosure may be provided as a computer program product or software, which may include a machine-readable medium having instructions stored thereon that may be used to program a computer system (or other electronic device) to perform processes in accordance with the disclosure. Machine-readable media includes any mechanism for storing information in a form readable by a machine, such as a computer. By way of example, machine-readable (e.g., computer-readable) media includes machine (e.g., computer)-readable storage media, such as read-only memory ("ROM"), random access memory ("RAM"), magnetic disk storage media, optical Storage media, flash memory devices, etc.
在前述说明书中,已参考本公开的特定实例实施例描述了其实施例。将明白,可在不背离所附权利要求书中所陈述的本公开的实施例的更宽精神及范围的情况下对本公开做出各种修改。因此,说明书及图式应以说明性意义而非限制性意义来看待。In the foregoing specification, embodiments of the present disclosure have been described with reference to specific example embodiments thereof. It will be understood that various modifications may be made to the present disclosure without departing from the broader spirit and scope of the embodiments of the disclosure as set forth in the appended claims. Therefore, the description and drawings should be viewed in an illustrative sense rather than a restrictive sense.
Claims (20)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/830,800 US11966289B2 (en) | 2022-06-02 | 2022-06-02 | Cross-temperature compensation in non-volatile memory devices |
US17/830,800 | 2022-06-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117170577A true CN117170577A (en) | 2023-12-05 |
Family
ID=88934353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310651209.3A Pending CN117170577A (en) | 2022-06-02 | 2023-06-02 | Cross temperature compensation in non-volatile memory devices |
Country Status (2)
Country | Link |
---|---|
US (2) | US11966289B2 (en) |
CN (1) | CN117170577A (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11966289B2 (en) * | 2022-06-02 | 2024-04-23 | Micron Technology, Inc. | Cross-temperature compensation in non-volatile memory devices |
US20240170029A1 (en) * | 2022-11-22 | 2024-05-23 | Micron Technology, Inc. | Memory device heating in cold environments |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130034522A (en) * | 2011-09-28 | 2013-04-05 | 삼성전자주식회사 | Data read method from nonvolatile memory, and apparatus for executing the same |
KR102211126B1 (en) * | 2014-04-17 | 2021-02-02 | 삼성전자주식회사 | Memory System controlling an operation performance and Operating Method thereof |
US20170053714A1 (en) * | 2015-08-19 | 2017-02-23 | Micron Technology, Inc. | Read voltage offset |
US10019158B2 (en) * | 2016-03-15 | 2018-07-10 | Toshiba Memory Corporation | Determination of a read voltage to be applied to a page based on read voltages of other pages |
CN110246533B (en) * | 2018-03-09 | 2020-11-13 | 建兴储存科技(广州)有限公司 | Failure mode detection method and error correction method for solid-state storage device |
US11169583B2 (en) * | 2018-08-07 | 2021-11-09 | Western Digital Technologies, Inc. | Methods and apparatus for mitigating temperature increases in a solid state device (SSD) |
US10761754B2 (en) * | 2018-08-07 | 2020-09-01 | Micron Technology, Inc. | Adjustment of a pre-read operation associated with a write operation |
TWI725368B (en) * | 2018-12-25 | 2021-04-21 | 群聯電子股份有限公司 | Decoding method, memory controlling circuit unit and memory storage device |
US11966289B2 (en) * | 2022-06-02 | 2024-04-23 | Micron Technology, Inc. | Cross-temperature compensation in non-volatile memory devices |
-
2022
- 2022-06-02 US US17/830,800 patent/US11966289B2/en active Active
-
2023
- 2023-06-02 CN CN202310651209.3A patent/CN117170577A/en active Pending
-
2024
- 2024-03-01 US US18/593,189 patent/US20240202071A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230393936A1 (en) | 2023-12-07 |
US11966289B2 (en) | 2024-04-23 |
US20240202071A1 (en) | 2024-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11842772B2 (en) | Voltage bin boundary calibration at memory device power up | |
CN113628663A (en) | Calculating optimized read voltages | |
US20240202071A1 (en) | Cross-temperature compensation in non-volatile memory devices | |
CN113628664A (en) | Improvements to reading soft and hard bits from memory cells | |
US11521699B2 (en) | Adjusting a reliability scan threshold in a memory sub-system | |
CN117642823A (en) | Selective and dynamic deployment of error correction code technology in integrated circuit memory devices | |
CN115373863A (en) | Performance and Deadlock Mitigation During Memory Die Failure Storms | |
CN116230054A (en) | Verifying read level voltage in memory device | |
CN114649035A (en) | Read memory cells roughly programmed via the interleaved two-pass data programming technique | |
US20230266904A1 (en) | Threshold voltage bin calibration at memory device power up | |
US11615008B2 (en) | Temperature and inter-pulse delay factors for media management operations at a memory device | |
US20240355367A1 (en) | Temperature differential-based voltage offset control | |
US12210752B2 (en) | Managing a hybrid error recovery process in a memory sub-system | |
US20240029801A1 (en) | Memory read calibration based on memory device-originated metrics characterizing voltage distributions | |
CN117636922A (en) | Memory device generating metadata characterizing read voltage levels applied relative to voltage distribution | |
US12001680B2 (en) | Utilizing last successful read voltage level in memory access operations | |
US20250239311A1 (en) | Memory device coarse threshold estimate read under multi-plane mode | |
US20250110826A1 (en) | Valley search in read error recovery for a memory device using low-density parity check syndrome weight and auto-read calibration | |
US20240282399A1 (en) | Optimizing read error handling in a memory sub-system | |
US20240272983A1 (en) | Adaptive error recovery when program status failure occurs in a memory device | |
US20250014654A1 (en) | Adaptive temperature compensation for a memory device | |
US20240385926A1 (en) | Temperature sensor management during error handling operations in a memory sub-system | |
US20250231834A1 (en) | Failure count-based read error handling using llr data | |
US20230162810A1 (en) | Optimizing memory access operation parameters | |
US20240161836A1 (en) | Memory read voltage threshold tracking based on memory device-originated metrics characterizing voltage distributions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |