CN113921063A - 热区标签和热区离群值检测 - Google Patents

热区标签和热区离群值检测 Download PDF

Info

Publication number
CN113921063A
CN113921063A CN202110525525.7A CN202110525525A CN113921063A CN 113921063 A CN113921063 A CN 113921063A CN 202110525525 A CN202110525525 A CN 202110525525A CN 113921063 A CN113921063 A CN 113921063A
Authority
CN
China
Prior art keywords
block
memory
temperature
blocks
event
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
Application number
CN202110525525.7A
Other languages
English (en)
Inventor
E·梅哈尼克
T·T·埃利亚什
B·戈德堡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN113921063A publication Critical patent/CN113921063A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01KMEASURING TEMPERATURE; MEASURING QUANTITY OF HEAT; THERMALLY-SENSITIVE ELEMENTS NOT OTHERWISE PROVIDED FOR
    • G01K3/00Thermometers giving results other than momentary value of temperature
    • G01K3/08Thermometers giving results other than momentary value of temperature giving differences of values; giving differentiated values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C2029/5002Characteristic

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

用于通过检测存储器装置中的热区标签和热区离群值来改善频繁改变的装置温度条件下的读取性能的方法、装置和系统。可以为所述存储器装置配置多个热区。可以测量对应于打开所述存储器装置的存储块用于编程的第一温度。随后可以测量对应于关闭所述存储块用于编程的第二温度。可以确定所述第一温度与所述第二温度之间的范围。所述范围可以横跨N≥2的所述热区。最终,在N满足阈值的条件下,可以将所述存储块指派到包含所述第二温度的热区。

Description

热区标签和热区离群值检测
背景技术
在电子存储器存储装置的操作期间,期望减少用于管理频繁温度改变的资源开销。举例来说,期望减少每当系统经历交叉温度事件时的数据再生操作。“交叉温度事件”指代由打开块与关闭块或者关闭第一块与关闭第二块之间的温度差异确定的事件。交叉温度事件在某些操作条件下可能变得特别成问题,例如:
1.高幅度和高或低频率的温度改变。
2.较小(相对于总体存储器容量)数目的存储频繁读取的数据的经编程存储器块上的温度改变。
3.跨越频繁电力循环或者软件或硬件装置复位的温度改变。
现有方法根据经编程块或页中的数据的写入(编程)温度来标记那些块或页用于刷新。维持用于写入和读取操作的温度范围表,且当写入温度高于或低于预定阈值时刷新数据以便减少位错误率(BER,bit error rate)。每当检测到交叉温度事件时过早地关闭经编程块(在变成装满经编程数据之前)。在存在高频温度变化的情况下,这可导致存储系统的管理资源饱和,从而造成读取/写入时延的总体增加。
发明内容
本公开涉及用于通过检测热区标签和热区离群值而改善频繁改变的装置温度条件下的读取性能的方法。可以为存储器装置配置热区。可以测量对应于打开存储器装置的存储块用于编程的第一温度,且可以随后测量对应于关闭存储块用于编程的第二温度。第一温度与第二温度之间的范围可以横跨N≥2的热区确定。在N满足阈值的条件下,存储块可以被指派到包含第二温度的热区。
本公开还涉及用于通过检测热区标签和热区离群值而改善频繁改变的装置温度条件下的读取性能的装置。所述装置可包含非易失性存储器阵列、控制器和被配置成实施所公开的解决方案的逻辑。所述逻辑可以测量对应于打开非易失性存储装置阵列的存储块用于编程的第一温度,其中所述第一温度位于多个经预配置热区中的第一个内。“经预配置热区”指代在对块进行编程之前在存储器装置中做出且与装置温度范围相关联的设定。可以根据存储器和/或存储器装置的特定类型定制这些区的数目和范围。
逻辑还可以测量对应于关闭存储块用于编程的第二温度,其中第二温度位于经预配置热区中的第一个的N跃点邻域中的所述多个经预配置热区中的第二个内,其中N≥1。“N跃点邻域”指代在特定热区的一侧或两侧上被配置的若干邻近热区。举例来说,用于区R的N跃点邻域可以仅包含邻近于R的较低温度的N个热区,或可以包含邻近于R且在R上方的N个热区和邻近于R且在R下方的N个热区。除非另外指明,术语N跃点邻域应理解为包含这些选项中的一个或两个。逻辑可以随后将存储块指派到经预配置热区中的第二个。所述多个经预配置热区可以被配置成使得用于N跃点邻域中的热区的存储器读取参数是兼容的。
本公开涉及用于通过检测热区标签和热区离群值而改善频繁改变的装置温度条件下的读取性能的系统。所述系统包含存储器阵列和控制器。控制器可以测量当存储器阵列的块被打开时的第一温度且测量当块被关闭时的第二温度。在所述第一温度与所述第二温度之间的范围横跨多个经预配置热区中的1≤N≤M个邻接热区的条件下,控制器可以为所述块指派对应于包含所述第二温度的所述经预配置热区中的一个的标签。最终,控制器可以将包含同一标签的块重定位为在存储器阵列中邻近。
附图说明
为容易地识别对任何特定元件或动作的论述,附图标记中的一个或多个最高有效数字指的是首次介绍所述元件的图号。
图1是根据一个实施例的存储系统100的框图描绘。
图2是在一个实施例中的存储装置200的框图描绘。
图3A描绘根据一个实施例的存储器阵列300。
图3B描绘根据一个实施例的存储器阵列300的额外方面。
图4描绘存储装置中的编程温度变化400的实例。
图5描绘根据一个实施例的块标记例程500。
图6A描绘根据一个实施例的块标记例程600a。
图6B描绘根据一个实施例的热离群值块处理例程600b。
图7描绘根据一个实施例的块标记例程700。
图8描绘根据一个实施例的块重定位例程800。
图9A描绘根据一个实施例的块标记例程900a。
图9B描绘根据一个实施例的块标记例程900b。
具体实施方式
现代的电子存储装置利用单电平存储器单元(SLC)、多电平存储器单元(MLC)、三电平存储器单元(TLC)和四电平存储器单元(QLC)来存储经编程数据。这些类型的存储器单元,特别是TLC和QLC,对跨越某些阈值的温度变化敏感,本文称为交叉温度事件。交叉温度事件可具有小或大的幅度,且可能以低频或高频发生。现有方法使热区标签与打开的存储器块关联,且由于检测到交叉温度事件而关闭所有此类块(可能过早地,在块完全经编程之前)。这可例如导致存储器装置的存储容量的不良利用率以及写入放大的增加。这也可能给存储器管理资源带来压力。
本文所描述的是以比现有方法可更操作性高效(例如,消耗较少机器资源,例如处理器循环和存储器)的方式管理交叉温度事件和调整存储器读取参数的系统和技术的实施例。也可以改进写入放大和读取性能。利用这些技术的装置可比现有方法更快且更高效地适应变化的温度条件。
在一个实施例中,具有共同或相似读取参数的块是使用基于块被关闭的热区的关系表在逻辑上分组。经编程块基于当它们被关闭时经指派到块的热区标签而相关到群组中。块未过早地关闭(在完全经编程之前)。还描述识别和重定位热离群值块的技术。“热离群值块”指代被识别为已经历极端交叉温度事件的块。
概括地说,维持用于经编程块的若干热区标签。当块编程完成时(当块关闭时)块经指派到热区标签。监视和检测交叉温度事件。当检测到横跨若干(例如,多于两个,且更一般地,N个)相邻热区的温度变化时块被标记为热离群值以用于优先级重定位。“优先级重定位”指代数据从块的区分优先级抽空。
举例来说,可将若干热区标签动态地指派到对应于随时间对装置可预期的经预配置编程温度范围的块。每一热区标签因此使关闭的块与温度范围关联。每一热区标签被指派当读取具有所述标签的块时将应用的读取参数。基于在块被关闭以用于编程的时间测得的温度为块指派热区标签。在多于两个热区在打开块的编程期间交叉的条件下,所述块被标记为热离群值。这可触发块的重定位以及块与指示其离群值状态的特殊热区标签的关联(例如,触发对块的更严格BER测试)。“位错误率”或BER指代所处理的总位数中的错误位数的测量。在某些实施例中,在错误校正码(ECC)解码器已作出一个或多个尝试以校正一个或多个错误位之后计算出BER。
下表1描绘用于热区和热区标签的示例性关联结构。
Figure BDA0003064631010000031
Figure BDA0003064631010000041
表1:热区标签
在读取块时,测量第二温度。此温度可为存储器装置的周围环境的温度,或存储器装置的组件的温度,所述组件例如存储器芯片或存储器裸片。当块被关闭以用于编程时从经指派到块的热区标签获得读取参数,且当读取块时应用这些读取参数。
可以滞后来管理热区,以减轻在块的编程期间温度快速和/或频繁地改变的环境中的温度测量噪声。每一热区与一组读取参数相关联。当打开块被关闭时其被指派对应于块关闭温度的热区的读取参数,或在当打开块时测得的温度与当关闭块时测得的温度之间的范围满足阈值(例如,横跨大于N个热区)的情况下关联到离群值块热区。滞后在此过程中是固有的,因为在这两次测量之间发生的交叉温度事件并不导致块的过早关闭。
在一些实施例中可动态地创建热区,使得如果块在不对应于现有热区的温度下关闭,那么可由于关闭块而创建用于所述温度的新热区。
不同于现有方法,在交叉温度事件的情况下不一定关闭块。而是在块关闭时通过温度确定经指派到块的热区标签。受管理和/或经预配置热区的数目可以按存储器装置的实施方案和使用情况变化。
在同一热区内编程被关闭的块被指派同一热区标签(包含关闭温度的热区的热区标签)。这意味着跨越两个(或可能更多)相邻热区经编程的块将被指派与仅一个热区中经编程的块相同的热区标签,前提是两个块在同一热区中关闭。然而,具有横跨大于N个相邻热区(其中N可配置为≥1)的打开温度和关闭温度范围的块可被处理为热离群值块。可以标记这些热离群值块以用于优先级重定位(意味着这些块中的数据到不是热离群值块的其它块的‘驱逐’)。
因此块的逻辑群组可以基于经指派到块的热区标签来区分。块群组还可以按次要应力影响区分。如果检测到存储器上的额外应力事件,例如长电力切断循环或在高温(例如,高于85℃)的过量操作,那么在此类事件之后编程的块即使在现有关闭块的热区内被关闭,也不会被指派与那些现有关闭块相同的热区标签。实际上,在额外应力事件之后关闭的块可以被指派指示其状态可能较不可靠的热区标签。被指派到此类块的热区标签可以是用于所述块被关闭的热区标签的热区标签,但具有额外标记以指示它们在应力事件之前可能比被指派相同热区标签的块更不可靠。或可以用与热离群值块相关联的热区标签识别此类块。
如果在应力事件之后此存储器块的测试指示数据保持错误超过阈值水平,那么可以如所描述调整热区标签的指派以考虑存储器的增加的不可靠性。举例来说,检测到极端交叉温度事件可以触发存储器装置调度此测试和更新与所有热区/热区标签相关联的读取参数。“极端交叉温度事件”指代针对特定类型的存储器装置和装置的应用被识别为可能使存储器装置的可靠性或性能降级的事情的交叉温度事件。这可包含检测在任何时间周期或阈值时间周期中装置温度处于危险地热或冷状态,或检测块被打开的温度与块被关闭的温度之间的过量范围。针对特定热区标签的测试/更新可以仅在极端交叉温度事件之后当块在相关联热区中被关闭时发生。以此方式,至少针对在极端交叉温度事件之后关闭的块,在极端交叉温度事件之后维持和更新读取参数。取决于实施方案,取决于经编程存储器块如何组织或分布和其它因素,一些交叉温度事件可能不触发读取参数的更新。
可以为存储器装置配置多个热区。可以测量对应于打开存储器装置的存储块用于编程的第一温度。随后可以测量对应于关闭所述存储块用于编程的第二温度。可以确定所述第一温度与第二温度之间的范围。所述范围可以横跨N≥2的热区。在N满足阈值的条件下,存储块可以被指派到包含第二温度的热区。
如果N不满足阈值,那么存储块可以被标记为热离群值块。将存储块标记为热离群值块可以触发数据从存储块的抽空。“数据抽空”指代从一个块复制数据且将所复制数据编程到另一块中。经预配置热区中的每一个可具有近似25℃的范围。适用于被指派到特定热区的存储块的读取参数可以具体来说应用于被指派到特定热区的块。热区可以被配置成使得对于热区的至少一个子集M≥2,用于子集M的任何N个邻近热区的读取参数是兼容的,意味着它们可用以从被指派到邻近组的任何热区的块读取。
包含非易失性存储器阵列、控制器和逻辑的装置可以被配置成实施所公开的技术。装置逻辑可以测量对应于打开非易失性存储装置阵列的存储块用于编程的第一温度,其中所述第一温度位于多个经预配置热区中的第一个内。装置逻辑还可以测量对应于关闭存储块用于编程的第二温度,其中第二温度位于经预配置热区中的第一个的N跃点邻域(N≥1)中的所述多个经预配置热区中的第二个内。装置逻辑可以随后将存储块指派到经预配置热区中的第二个。所述多个经预配置热区可以被配置成使得用于N跃点邻域中的热区的存储器读取参数是兼容的。
装置逻辑还检测交叉温度事件,且由于交叉温度事件而更新用于经预配置热区中的一个或多个的读取参数。可以基于交叉温度事件为极端交叉温度事件的条件来更新读取参数。装置逻辑可以测试用于在交叉温度事件之后关闭的存储块的BER,且区分在交叉温度事件之后关闭的存储块与在交叉温度事件之前关闭的存储块。在交叉温度事件之后关闭的存储块和在交叉温度事件之前关闭的存储块可以被指派到同一热区,但区分于彼此。可以基于在交叉温度事件之后关闭的存储块是特定热区中在交叉温度事件之后第一关闭的存储块的条件来执行BER测试。为了区分在交叉温度事件之后关闭的存储块与在交叉温度事件之前关闭的存储块,可以创建与被指派到在交叉温度事件之前关闭的存储块的同一热区相关联的新热区标签,但被标记以调用相关联存储块上的额外读取验证。
装置逻辑可以将在交叉温度事件之前编程的块的热区标签去活,使得在交叉温度事件之后关闭的存储块不可被指派到在交叉温度事件之前关闭的存储块的热区标签(而是被指派到例如为额外读取验证标记的热区标签)。BER测试和区分可以涉及(a)应用被指派到在交叉温度事件之前关闭的存储块的读取参数以从在交叉温度事件之后关闭的存储块读取数据,(b)将用于在交叉温度事件之前关闭的存储块和在交叉温度事件之后关闭的存储块的BER进行比较,和(c)在所述比较满足阈值的条件下区分在交叉温度事件之后关闭的存储块与在交叉温度事件之前关闭的存储块。区分在交叉温度事件之后关闭的存储块与在交叉温度事件之前关闭的存储块可以独立于交叉温度事件的时间间隔。举例来说,在一些实施方案中,无论持续时间,任何检测到极端交叉温度事件都可足以触发区分过程。
包含存储器阵列和控制器的系统可以操作控制器以当存储器阵列的块被打开时测量第一温度,当所述块被关闭时测量第二温度,且为所述块指派对应于多个经预配置热区中包含所述第二温度的一个的热区标签。用于包含第二温度的热区的热区标签的指派可以所述第一温度与第二温度之间的范围横跨经预配置热区中的1≤N≤M个邻接热区为条件。如果未满足此条件,那么块可以例如被指派到用于热离群值块的热区标签。控制器可以将被指派到相同热区标签的块重定位为在存储器阵列中邻近。
如所提到,控制器可以将所述第一温度与第二温度之间的范围横跨大于M个邻接热区的块标记为热离群值块。控制器可以从具有高优先级的热离群值块抽空数据。控制器可以检测极端交叉温度事件。控制器可以例如先前描述的方式区分在极端交叉温度事件之后关闭且被指派特定热区标签的块与在极端交叉温度事件之前关闭的具有所述特定热区标签的块。控制器可以随后将具有特定标签且在极端交叉温度事件之后关闭的块重定位为在存储器阵列中邻近,不同于具有特定标签且在极端交叉温度事件之前关闭的块。当用于在极端交叉温度事件之后关闭的块中的第一个的BER与用于在极端交叉温度事件之前关闭的块中的一个的BER相比较差时,控制器可以区分在极端交叉温度事件之前关闭的块与在极端交叉温度事件之后关闭的块。
图1是示出存储系统100的一个实施例的示意性框图,所述存储系统可以利用所公开的技术的实施例用于识别一个或多个存储器块中的最后经编程存储器页。存储系统100包含存储装置200、存储控制器104、存储器裸片116、主机102、用户应用程序106、存储客户端108、逻辑地址空间114、元数据118、快闪转译层124、数据总线122、总线120、至少一个主机110,和网络112。
“存储客户端”是指配置成与存储装置通信以便使用存储服务的任何硬件、软件、固件或逻辑组件或模块。存储客户端的实例包含但不限于操作系统、文件系统、数据库应用程序、数据库管理系统(“DBMS”)、服务器应用程序、服务器、卷管理器、核心程序层级进程、用户层级进程、应用程序、移动应用程序、线程、进程以及类似物。
“硬件”是指体现为模拟和/或数字电路系统的功能元件。“固件”是指体现为存储在易失性存储器介质和/或非易失性存储器介质上的处理器可执行指令的逻辑。“软件”指代被实施为电子存储器(例如,读取/写入易失性存储器介质或非易失性存储器介质)中的处理器可执行指令的逻辑。“逻辑”指代电子存储器电路、非暂时性机器可读介质和/或借助于其材料和/或材料能量配置包含可应用于影响装置的操作的控制和/或程序化信号和/或设定和值(例如电阻、阻抗、电容、电感、电流/电压额定值等)的电路。磁性介质、电子电路、电存储器和光学存储器(易失性和非易失性两者)以及固件是逻辑的实例。逻辑专门排除纯信号或软件本身(然而不排除包含软件且由此形成物质的配置的机器存储器)。“易失性存储器”是指易失性存储器介质的简称。在某些实施例中,易失性存储器是指易失性存储器介质和逻辑、控制器、处理器、状态机和/或管理易失性存储器介质并提供对易失性存储器介质的存取的其它周边电路。
“数据块”是指使用存储命令可存取和/或可寻址的物理存储介质上的存储空间的最小物理量。物理存储介质可以是易失性存储器介质、非易失性存储器介质、永久性存储装置、非易失性存储装置、快闪存储介质、硬盘驱动器或类似物。某些常规存储装置将物理存储介质划分成卷或逻辑分区(也称为分区)。每一卷或逻辑分区可包含多个扇区。将一个或多个扇区组织成块(也称为数据块)。在例如那些与
Figure BDA0003064631010000071
操作系统介接的某些存储系统中,数据块称为集群。在例如那些与UNIX、Linux或类似操作系统接口连接的其它存储系统中,数据块简称为块。数据块或集群表示存储介质上的由存储控制器管理的存储空间的最小物理量。块存储装置可使可用于遍及实际存储介质的用户数据存储的n个数据块与逻辑块地址(LBA)相关联,从0到n编号。在某些块存储装置中,逻辑块地址可在每一卷或逻辑分区0到n个的范围内。在常规块存储装置中,逻辑块地址直接映射到一个且仅一个数据块。“用户数据”指代主机引导非易失性存储装置存储或记录的数据。
“存储操作”指代为改变或获得由存储单元的状态特性表示的数据值而在存储器单元上执行的操作。存储操作的实例包含(但不限于)从存储器单元读取数据(或感测存储器单元的状态)、将数据写入(或编程)到存储器单元,和/或将存储于存储器单元中的数据擦除。
“存储命令”是指与存储操作相关的任何命令。存储命令的实例包含但不限于读取命令、写入命令、维护命令、诊断命令、测试模式命令、对策命令以及存储控制器可从主机接收或向另一组件、装置或系统发出的任何其它命令。
“对策”是指配置成减轻负面属性、因素或条件的方法、过程步骤或操作。应注意,在某些情况下,可行的对策是不对所识别的负面属性、因素或条件采取动作。虽然不采取动作可能被视为消极活动,但在本文中将对负面属性、因素或条件的这种响应视为对策。在某些实施例中,对策特定针对特定问题或问题的指示。可使用的对策的实例包含主动改变擦除块的裸片温度、将数据重定位到另一存储位置、调整警报阈值、使用单独的单元电压分布(CVD)表来管理一个或多个物理擦除块,以及不采取动作。
“对策命令”是指配置成实施对策以缓解或逆转存储块的劣化和/或劣化的存储块健康的存储命令。
“特性”是指对象或事物的任何性质、性状、质量或属性。特性的实例包含但不限于条件、使用准备度、使用未准备度、大小、重量、组成、特征集合以及类似物。
“易失性存储器介质”是指配置成保持用于表示零或一的二进制值的可变的实际特征,其中在去除主电源时或除非主电源用于刷新所展现二进制值时,可变的实际特征恢复到不再表示所述二进制值的默认状态。易失性存储器介质的实例包含但不限于动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、双倍数据速率随机存取存储器(DDR RAM)或其它随机存取固态存储器。虽然易失性存储器介质在本文中称为“存储器介质”,但在各种实施例中,易失性存储器介质可更一般地称为易失性存储器。在某些实施例中,可在字节层级下定址存储于易失性存储器介质中的数据,其意味着将易失性存储器介质中的数据组织成各自具有唯一地址(例如逻辑地址)的数据字节(8位)。
“存储器”是指配置成、编程为、设计成、布置成或工程改造成保持数据的任何硬件、电路、组件、模块、逻辑、装置或设备。某些类型的存储器需要可获得恒定电源以存储和保持数据。当电源不可用时,其它类型的存储器保持和/或存储数据。
“不可校正BER”指代指示对被处理的给定数目的位来说不可校正且错误的位的数目的比率的测量。在尝试一种或多种错误校正技术(例如使用错误校正码(ECC)、使用博斯(Bose)、乔杜里(Chaudhuri)、霍克文黑姆(Hocquenghem)(BCH)码、使用低密度奇偶校验(LDPC)算法以及类似物)之后,将不可校正的位视为不可校正的。
“失败位计数”是指针对给定测量单位的错误的位的数目的测量。错误的位是以一个值存储的位,但当读取或感测相同的位时,所述位指示不同的值。失败位计数可针对数据块(例如,4K)、擦除块、页、逻辑擦除块、区、命名空间或类似物测量。换句话说,失败位计数可以是在写入到数据块、物理擦除块或其它存储器单元分组的数据与随后从数据块、物理擦除块或其它存储器单元分组读取的数据之间不同的位的数目。
存储系统100包含由总线120连接的至少一个存储装置200,包含存储控制器104和一个或多个存储器裸片116。在一些实施例中,存储系统100可包含两个或更多个存储装置。“存储装置”是指配置成、编程为、设计成或工程改造成在一段时间内存储数据且在存储装置不使用来自电源的电力时将数据保持在存储装置中的任何硬件、系统、子系统、电路、组件、模块、非易失性存储器介质、硬盘驱动器、存储阵列、装置或设备。存储装置的实例包含但不限于硬盘驱动器、快闪存储器、MRAM存储器、固态存储装置、磁盘簇(JBOD)、快闪簇(JBOF)、外部硬盘、内部硬盘以及类似物。
“存储器裸片”是指在其上制造给定功能电路的一小片半导性材料。通常,通过例如光刻的过程在电子级硅(EGS)或其它半导体(例如GaAs)的单个晶片上大批地生产集成电路。将晶片切割(分割)成许多片,每一片包含电路的一个副本。这些片中的每一个称为裸片或存储器裸片。(在Wikipedia.com上搜索“裸片(集成电路)”,2019年10月9日,2019年11月18日访问。)在一个实施例中,存储器裸片是包含用于操作为非易失性存储器介质和/或非易失性存储器阵列的一个或多个功能电路的裸片。
“非易失性存储器介质”是指配置成在去除主电源之后维持用来表示零或一的二进制值的可改变的物理特性的任何硬件、装置、组件、元件或电路。可改变的物理特性的实例包含但不限于晶体管的阈值电压、存储器单元的电阻电平、通过存储器单元的电流电平、磁极定向、自旋转移力矩以及类似物。可改变的物理特性使得一旦设定,物理特性就保持充分固定,使得当用于非易失性存储器介质的主电源不可用时,可在读取、检索或感测二进制值时测量、检测或感测可变的物理特性。换句话说,非易失性存储器介质是配置使得可在用于非易失性存储器介质的电源被去除且随后恢复之后检索存储在非易失性存储器介质上的数据的存储介质。非易失性存储器介质可包含一个或多个非易失性存储器元件,其可包含但不限于:芯片、封装、平面、存储器裸片以及类似物。非易失性存储器介质的实例包含但不限于:ReRAM、忆阻器存储器、可编程金属化单元存储器、相变存储器(PCM、PCME、PRAM、PCRAM、双向通用存储器、硫属化物RAM或C-RAM)、NAND快闪存储器(例如,2D NAND快闪存储器、3D NAND快闪存储器)、NOR快闪存储器、纳米随机存取存储器(纳米RAM或NRAM)、基于纳米晶线的存储器、基于硅-氧化物的低于10纳米处理存储器、石墨烯存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)、可编程金属化单元(PMC)、导电桥接RAM(CBRAM)、磁阻性RAM(MRAM)、磁性存储介质(例如,硬盘、磁带)、光学存储介质或类似物。尽管非易失性存储器介质在本文中被称作“存储器介质”,但在不同实施例中,非易失性存储器介质可更一般来说被称作非易失性存储器。由于非易失性存储器介质能够在去除电源时存储数据,因此非易失性存储器介质也可称为记录介质、非易失性记录介质、非易失性存储介质、存储装置、非易失性存储器、易失性存储器介质、非易失性存储器介质、非易失性存储装置或类似物。在某些实施例中,可在块层级下寻址存储在非易失性存储器介质中的数据,这意味着将非易失性存储器介质中的数据组织成各自具有唯一逻辑地址(例如,LBA)的数据块。在其它实施例中,可在字节层级下寻址存储在非易失性存储器介质中的数据,这意味着将非易失性存储器介质中的数据组织成各自具有唯一地址(例如逻辑地址)的数据字节(8位)。字节可寻址非易失性存储器介质的一个实例是存储类存储器(SCM)。
“非易失性存储介质”是指配置成在去除主电源后保持用于表示零或一的二元值的可改变的实际特征的任何硬件、装置、组件、元件或电路。非易失性存储介质在本文可与术语非易失性存储器介质互换使用。
“非易失性存储器”是指非易失性存储器介质的简称。在某些实施例中,非易失性存储器介质是指非易失性存储器介质和逻辑、控制器、处理器、状态机和/或管理非易失性存储器介质并提供对非易失性存储器介质的存取的其它周边电路。
“非易失性存储器阵列”是指组织成具有行和列的阵列结构的非易失性存储单元(也称为存储器单元或非易失性存储器单元)集合。存储器阵列可使用行识别符和列识别符来寻址。
“存储器单元”是指配置成在感测、读取或检测存储介质以确定最后一次存储在存储器单元中的二进制值时借助于存储介质的可确定物理特性来表示一个或多个二进制值的一种类型的存储介质。存储器单元和存储单元在本文中可互换地使用。
“存储单元”是指配置成在感测、读取或检测存储介质以确定由存储器单元的可确定特性存储或表示的二进制值时借助于存储介质的可确定特性来表示一个或多个二进制值的一种类型的存储介质。存储单元和存储器单元在本文中可互换地使用。用于将数据存储在存储器单元中的可确定特性的类型可取决于使用的存储器或存储技术的类型而变化。举例来说,在其中每一存储器单元包含具有源极引线、漏极引线和栅极的晶体管的快闪存储器单元中,可确定特性是当施加于栅极时使存储器单元在漏极与源极引线之间传导电流的电压电平。在此实例中,电压电平在本文中称为阈值电压。阈值电压也可称为控制栅极参考电压(CGRV)、读取电压或参考电压。可确定物理特性的实例包含但不限于晶体管的阈值电压、存储器单元的电阻电平、通过存储器单元的电流电平、磁极定向、自旋转移力矩等。存储单元和存储器单元在本文中可互换地使用。“阈值电压”是指当施加于晶体管的栅极电极时使得晶体管在漏极电极与源极电极之间传导电流的电压电平。
每一存储装置200可包含两个或更多个存储器裸片116,例如快闪存储器、纳米随机存取存储器(“纳米RAM或NRAM”)、磁阻性RAM(“MRAM”)、动态RAM(“DRAM”)、相变RAM(“PRAM”)等。在另外的实施例中,数据存储装置200可包含其它类型的非易失性和/或易失性数据存储装置,例如动态RAM(“DRAM”)、静态RAM(“SRAM”)、磁性数据存储装置、光学数据存储装置和/或其它数据存储技术。存储器裸片116可以被配置到非易失性存储器阵列126中。“存储器阵列”是指组织成具有行和列的阵列结构的存储单元(也称为存储器单元)集合。存储器阵列可使用行识别符和列识别符来寻址。
因此,非易失性存储器阵列是具有存储器单元的存储器阵列,所述存储器单元配置使得用来表示所存储数据的存储器单元的特性(例如,阈值电压电平、电阻电平、导电性等)保持存储器单元的性质,而不需要使用电源来维持所述特性。
存储器阵列可使用行识别符和列识别符来寻址。所属领域的技术人员认识到,存储器阵列可包含平面内的存储器单元集合、存储器裸片内的存储器单元集合、平面集合内的存储器单元集合、存储器裸片集合内的存储器单元集合、存储器封装内的存储器单元集合、存储器封装集合内的存储器单元集合,或具有其它已知存储器单元集合架构和配置。“平面”是指准许在使用某些物理行地址和某些物理列地址的两个平面上进行某些存储操作的裸片的分区。
存储器阵列可以包含在存储或存储器系统内的数个组织层级处的存储器单元集合。在一个实施例中,平面内的存储器单元可以组织成存储器阵列。在一个实施例中,存储器裸片的多个平面内的存储器单元可以组织成存储器阵列。在一个实施例中,可将存储器装置的多个存储器裸片内的存储器单元组织成存储器阵列。在一个实施例中,存储系统的多个存储器装置内的存储器单元可以组织成存储器阵列。
存储装置200(在本文中也称为存储装置)可以是如本文所描绘的主机102内的组件,且可使用数据总线122来连接,所述数据总线例如周边组件互连高速(“PCI-e”)总线、串行高级技术附件(“串行ATA”)总线或类似物。在另一实施例中,存储装置200在主机102外部且连接通用串行总线(“USB”)连接、电气电子工程师学会(“IEEE”)1394总线(“FireWire”)等。在其它实施例中,存储装置200使用例如无限频带或PCI高速高级切换(“PCIe-AS”)等外部电气或光学总线扩展或总线联网解决方案使用外围组件互连(“PCI”)高速总线连接到主机102。
在各种实施例中,存储装置200可呈双列直插式存储器模块(“DIMM”)、子卡或微模块的形式。在另一实施例中,存储装置200是机架安装式刀片内的组件。在另一实施例中,存储装置200含于直接集成到较高级组合件(例如,母板、膝上型计算机、图形处理器)上的封装内。“处理器”是指配置成接收、解译、解码以及执行机器指令的任何电路系统、组件、芯片、裸片、封装或模块。处理器的实例可包含(但不限于)中央处理单元、通用处理器、专用处理器、图形处理单元(GPU)、现场可编程门阵列(FPGA)专用集成电路(ASIC)、芯片上系统(SoC)、虚拟处理器、处理器核心等。在另一实施例中,包含存储装置200的个别组件直接集成到更高级组合件上,而无需中间封装。
在另一实施例中,数据存储装置200可经由数据网络连接到主机102,而不是作为DAS直接连接到主机102。举例来说,数据存储装置200可包含存储区域网络(“SAN”)存储装置、网络附接存储(“NAS”)装置、网络共享等。在一个实施例中,存储系统100可包含数据网络,例如因特网、广域网(“WAN”)、城域网(“MAN”)、局域网(“LAN”)、令牌环(token ring)、无线网络、光纤通道网络、SAN、NAS、ESCON等,或网络的任何组合。数据网络还可包含来自IEEE802系列网络技术的网络,例如以太网、令牌环、Wi-Fi、Wi-Max以及类似物。数据网络可包含服务器、开关、路由器、线缆、无线电设备,以及用于促进主机102与数据存储装置200之间的联网的其它设备。
存储系统100包含连接到存储装置200的至少一个主机102。“主机”是指配置成发送和接收存储命令的任何计算装置或计算机装置或计算机系统。主机的实例包含但不限于计算机、膝上型计算机、移动装置、电器、虚拟机、企业服务器、台式计算机、平板计算机、主框架以及类似物。
可以使用多个主机102且其可包含:服务器、存储区域网络(“SAN”)的存储控制器、工作站、个人计算机、笔记本电脑、手持式计算机、超级计算机、计算机集群、网络交换机、路由器或家用电器、数据库或存储设备、数据获取或数据捕获系统、诊断系统、测试系统、机器人、便携式电子装置、无线装置或其类似物。在另一实施例中,主机102可以是客户端,且存储装置200自主地操作以服务于从主机102发送的数据请求。在此实施例中,可以使用计算机网络、系统总线、直接附接存储(DAS)或适于计算机与自主式存储装置200之间的连接的其它通信构件来连接主机102和存储装置200。
所描绘的实施例展示用户应用106与存储客户端108通信(作为主机102的一部分)。在一个实施例中,用户应用程序106是在存储客户端108上或结合所述存储客户端操作的软件应用程序。
存储客户端108管理文件和数据,并利用存储控制器104和相关联存储器裸片116的功能和特征。存储客户端的代表性实例包含但不限于服务器、文件系统、操作系统、数据库管理系统(“DBMS”)、卷管理器以及类似物。存储客户端108与存储装置200内的存储控制器104通信。在一些实施例中,存储客户端108可包含在主机110上操作或以其它方式可经由网络112访问的远程存储客户端。存储客户端可包含但不限于操作系统、文件系统、数据库应用程序、服务器应用程序、核心程序层级进程、用户层级进程、应用程序以及类似物。
存储客户端108可以向主机102和/或用户应用程序106呈现逻辑地址空间114。逻辑地址空间114可包含多个(例如,一系列)逻辑地址。如本文中所使用,逻辑地址是指用于参考存储器资源(例如,数据)的任何识别符,包含但不限于逻辑块地址(LBA)、圆柱/头部/扇区(CHS)地址、文件名、对象识别符、索引节、通用唯一识别符(UUID)、全局唯一识别符(GUID)、散列代码、签名、索引条目、范围、程度或类似物。
“逻辑地址空间”是指存储器资源的逻辑表示。逻辑地址空间可包含多个(例如,一系列)逻辑地址。“逻辑地址”是指用于参考存储器资源(例如,数据)的任何识别符,包含但不限于逻辑块地址(LBA)、圆柱/头部/扇区(CHS)地址、文件名、对象识别符、索引节、通用唯一识别符(UUID)、全局唯一识别符(GUID)、散列代码、签名、索引条目、范围、程度或类似物。逻辑地址不指示数据在存储介质上的物理位置,而是对数据的抽象引用。“逻辑块地址”是指块存储装置中所用来使可用于遍及存储介质的用户数据存储的n个逻辑块中的每一个与地址相关联的值。在某些块存储装置中,逻辑块地址(LBA)可在每一卷或分区0到n个的范围内。在块存储装置中,每一LBA直接映射到特定数据块,且每一数据块映射到物理存储介质上的物理扇区的特定集合。
在一个实施例中,主机102(和/或存储客户端108)的装置驱动器可维持存储客户端108内的元数据118,例如逻辑到物理地址映射结构,以将逻辑地址空间114的逻辑地址映射到存储器裸片116上的存储位置。在另一实施例中,这种元数据118可由存储控制器104存储和维持。装置驱动器可配置成向一个或多个存储客户端提供存储服务。
存储客户端108可包含快闪转译层124。“快闪转译层”是指快闪存储器装置中的逻辑,其包含提供由存储客户端使用的逻辑块地址和存储控制器存储数据的物理块地址的抽象的逻辑到物理地址转译。逻辑到物理转译层将逻辑块地址(LBA)映射到存储在固态存储介质上的数据的物理地址。这一映射允许使用例如块地址的逻辑识别符在逻辑块地址空间中引用数据。逻辑识别符不指示数据在固态存储介质上的物理位置,而是对数据的抽象引用。
快闪转译层124接收经过处理的数据以及一个或多个控制信号以确定快闪转译层队列深度。快闪转译层124可确定适当的物理地址以将数据和命令发送到存储器裸片116和易失性存储器。在某些实施例中,存储客户端108可包含快闪转译层124且可管理与快闪转译层124相关联的元数据118。在一个实施例中,快闪转译层124还从存储器裸片116接收数据输出。
在一个实施例中,存储系统100包含经由一个或多个计算机网络112连接到一个或多个主机110的一个或多个客户端。主机110可为:服务器、SAN的存储控制器、工作站、个人计算机、笔记本电脑、手持式计算机、超级计算机、计算机集群、网络交换机、路由器或家用电器、数据库或存储设备、数据获取或数据捕获系统、诊断系统、测试系统、机器人、便携式电子装置、无线装置或其类似物。网络112可包含因特网、广域网(“WAN”)、城域网(“MAN”)、局域网(“LAN”)、令牌环、无线网络、光纤通道网络、SAN、网络附接存储(“NAS”)、ESCON等,或网络的任何组合。网络112还可包含来自IEEE 802系列网络技术的网络,例如以太网、令牌环、WiFi、WiMax以及类似物。
网络112可包含服务器、开关、路由器、电缆线、无线电,以及用来促进使主机102或主机与主机110或客户端联网的其它仪器。在一个实施例中,存储系统100包含作为对等体经由网络112进行通信的多个主机。在另一实施例中,存储系统100包含作为对等体通过网络112进行通信的多个存储器装置。本领域的技术人员将认识到包含具有一个或多个客户端之间的单个或冗余连接的一个或多个计算机网络和相关仪器的其它计算机网络,或具有一个或多个存储器装置或连接到一个或多个主机的一个或多个存储器装置的其它计算机。在一个实施例中,存储系统100包含在没有主机102的情况下通过网络112连接到主机110的两个或大于两个存储器装置。
在一个实施例中,存储客户端108经由包含输入/输出(I/O)接口的主机接口与存储控制器104通信。举例来说,存储装置200可支持由国际信息技术标准委员会(“INCITS”)维护的ATA接口标准、ATA包接口(“ATAPI”)标准、小型计算机系统接口(“SCSI”)标准和/或光纤通道标准。
在某些实施例中,存储器装置的存储介质被分成卷或分区。每一卷或分区可包含多个扇区。传统上,扇区是512字节的数据。将一个或多个扇区组织成块(在本文中可互换地称为块和数据块两者)。
在一个实例实施例中,数据块包含八个扇区,所述块为4KB。在例如那些与
Figure BDA0003064631010000151
操作系统介接的某些存储系统中,数据块称为集群。在例如那些与UNIX、Linux或类似操作系统接口连接的其它存储系统中,数据块简称为块。块或数据块或集群表示存储介质上的由存储管理器管理的存储空间的最小物理量,所述存储管理器例如存储控制器、存储系统、存储单元、存储装置或类似物。
在一些实施例中,存储控制器104可配置成在一个或多个不对称一次写入存储介质(例如存储器裸片116内的固态存储存储器单元)上存储数据。
“一次写入存储介质”是指在其上写入或编程新数据或对数据的改变之前必须重新初始化(例如,擦除)的例如存储单元的存储介质。换句话说,一次写入存储介质的数据无法被覆写,一次写入存储介质必须在随后将数据写入到一次写入存储介质之前被擦除。
“读取扫描操作”是指进行以识别和缓解或避免或计数数据或存储器单元和/或非易失性存储装置的其它组件中的错误的维护操作。读取扫描操作可互换地称为“读取扫描”或“读取扫描操作”。在一个实施例中,读取扫描操作涉及从存储块中的存储器单元读取数据,或感测所述存储器单元的可确定物理特性或存储器状态。接下来,读取扫描操作检查存储器单元的存储器状态是否有任何错误,校正尽可能多的错误,且确定BER。随后,读取扫描操作确定BER是否满足阈值,例如读取BER阈值。在一个实施例中,读取扫描操作从存储块的每一逻辑页或字线读取数据。在另一实施例中,读取扫描操作选择存储块的不到全部的逻辑页。换句话说,读取扫描操作可对从其中读取数据以用于读取扫描操作的存储块的逻辑页进行采样。如果满足读取BER阈值,那么读取扫描操作可进行数据清理操作或数据刷新操作。在某些实施例中,读取扫描操作可始终包含数据清理操作或数据刷新操作。在其它实施例中,执行数据清理操作或数据刷新操作可以BER满足读取BER阈值为条件。在这种实施例中,读取扫描操作可称为“读取清理”或“读取清理操作”。在这些实施例中,读取扫描操作可有条件地包含数据清理操作。在某些实施例中,读取扫描操作可操作为前台进程,意味着读取扫描操作中断或延迟非易失性存储装置服务于主机的读取命令或写入命令。此外,读取扫描操作可能需要完成对特定存储块的工作,且由此延迟针对所述特定存储块上的数据的主机读取命令。因此,读取扫描操作可能影响主机与非易失性存储装置之间的服务质量水平。
如本文中所使用,“不对称”存储介质是指针对不同存储操作具有不同时延的存储介质。许多类型的固态存储介质(例如,存储器裸片)是不对称的;例如,读取操作可能比写入/编程操作快得多,且写入/编程操作可能比擦除操作快得多(例如,读取存储介质可能比擦除快数百倍,且比编程存储介质快数十倍)。可将存储器裸片116分割成可作为组来擦除的存储器分区(例如,擦除块),以便尤其考虑到存储器裸片116的不对称性质或类似物。
因此,就地修改单个数据片段可包含擦除包含数据的整个擦除块,且将经修改数据连同原始未改变的数据一起重写到擦除块。这可能导致低效的写入放大,从而可能过度磨损存储器裸片116。“写入放大”是指在非易失性存储装置上进行的写入编程操作的测量,其导致比在第一情况下初始地写入数据更多次数地写入任何数据和(特定来说)用户数据。在某些实施例中,写入放大可计数由非易失性存储装置进行的写入操作的数目以便管理和维护存储在非易失性存储装置上的数据。在其它实施例中,写入放大测量在非易失性存储装置上的数据的初始存储之外写入的数据量、位的数目。
因此,在一些实施例中,存储控制器104可配置成异地写入数据。如本文中所使用,“异地”写入数据是指将数据写入到不同介质存储位置,而不是“就地”覆写数据(例如,覆写数据的初始物理位置)。异地修改数据可避免写入放大,这是由于不必擦除和重新复制具有将要修改的数据的擦除块上的现有有效数据。“有效数据”是指存储块的数据,所述数据由主机存储且应保留和维护直到主机指示所述数据不再需要且可以或应该删除为止。此外,异地写入数据可从许多存储操作的时延路径中去除擦除(例如,擦除时延不再是写入操作的主路径的部分)。
由存储管理器管理数据块具体包含针对读取操作、写入操作或维持操作,对特定数据块进行寻址。块存储装置可使可用于遍及存储介质的用户数据存储的n个块与逻辑地址相关联,从0到n编号。在某些块存储装置中,逻辑地址可在每卷或分区0到n个的范围内。
在常规块存储装置中,逻辑地址直接映射到物理存储介质上的特定数据块。在常规块存储装置中,每一数据块映射到物理存储介质上的一组特定物理扇区。然而,某些存储装置并不直接或必定将逻辑地址与特定物理数据块相关联。这些存储装置可模拟常规块存储接口以维持与块存储客户端108的兼容性。
在一个实施例中,存储控制器104提供块I/O模拟层,其充当块装置接口或API。在此实施例中,存储客户端108经由此块装置接口与存储装置通信。在一个实施例中,块I/O模拟层根据此块装置接口从存储客户端108接收命令和逻辑地址。因此,块I/O模拟层提供存储装置与块存储客户端108的兼容性。
在一个实施例中,存储客户端108通过包含直接接口的主机接口与存储控制器104通信。在这一实施例中,存储装置直接交换特定针对非易失性存储装置的信息。“非易失性存储装置”是指配置成在去除主电源之后维持用来表示零或一的二进制值的可改变的物理特性的任何硬件、装置、组件、元件或电路。非易失性存储装置的实例包含但不限于硬盘驱动器(HDD)、固态驱动器(SSD)、非易失性存储器介质以及类似物。
使用直接接口的存储装置可以使用多种组织构造在存储器裸片116中存储数据,所述组织构造包含(但不限于)块、扇区、页、逻辑块、逻辑页、擦除块、逻辑擦除块、ECC码字、逻辑ECC码字或以有利于存储器裸片116的技术特性的任何其它格式或结构。
存储控制器104从存储客户端108接收逻辑地址和命令,并执行相对于存储器裸片116的对应操作。存储控制器104可支持块I/O模拟、直接接口或两者。“存储控制器”指代被配置成管理非易失性存储器介质上的数据操作的任何硬件、装置、组件、元件或电路,且可包含一个或多个处理器、可编程处理器(例如,FPGA)、ASIC、微控制器或类似物。在一些实施例中,存储控制器配置成将数据存储在非易失性存储器介质上和/或从非易失性存储器介质读取数据,以向/从非易失性存储器装置等等传送数据。
图2是存储装置200的框图。存储装置200可包含存储控制器104和非易失性存储器阵列126。非易失性存储器阵列126中的每一存储器裸片116可包含裸片控制器202和呈三维阵列形式的至少一个存储单元阵列210,以及读取/写入电路214。
存储控制器104和/或裸片控制器202可以并入实施所公开的解决方案的逻辑218。“裸片控制器”指代专用于特定存储器裸片的控制逻辑。裸片控制器可以是离散逻辑(例如,不同电路或电路封装)或可为更一般存储控制器中的逻辑子集。
存储单元阵列210可经由行解码器212通过对应于行的字线寻址,且经由列解码器216通过位线寻址。“字线”指代包含存储器单元集合的存储器阵列内的结构。存储器阵列配置使得在读取操作期间读取或感测字线的操作性存储器单元。类似地,存储器阵列配置使得在读取操作期间读取或感测字线的操作性存储器单元。
读取/写入电路214包含多个感测块SB1、SB2、…、SBp(感测电路)启且使得能够并行地读取或编程存储器单元页。“并行”指代在时间上重叠的两个或更多个操作。并行操作包含(但不限于)在时间上同延的操作,并且还指代按任何时间间隔重叠的操作。在某些实施例中,跨存储器阵列的一行的每一存储器单元一起形成物理页。
“位线”指代被配置成递送电压和/或传导电流到存储器阵列的列的电路结构。在一个实施例中,所述列包含NAND串或存储器串且也可被称作通道。在一个实施例中,所述列称为NAND串且所述NAND串包含通道。在一个实施例中,位线在NAND串的漏极端或漏极侧连接到NAND串。存储器阵列可具有沿着存储器阵列的字线用于每一存储器单元的一个位线。
物理页可包含沿着存储器阵列的一行的针对单个平面或针对单个存储器裸片的存储器单元。在一个实施例中,存储器裸片包含由两个相等大小的平面构成的存储器阵列。在一个实施例中,存储器裸片的一个平面的物理页包含四个数据块(例如,16KB)。在一个实施例中,存储器裸片的物理页(也称为“裸片页”)包含各自具有四个数据块(例如,32KB)的两个平面。
经由数据总线122在主机102与存储控制器104之间且经由总线120在存储控制器104与一个或多个存储器裸片116之间传送例如那些使存储操作128发生的命令和数据。
存储单元阵列210可以是二维的(在单个制造平面中的2D布置)或三维的(在多个制造平面中的3D布置)。存储单元阵列210可包括包含3D阵列的存储器单元的一个或多个阵列。在一个实施例中,存储单元阵列210可包含单片三维存储器结构(3D阵列),其中多个存储器层级形成于例如晶片的单个衬底上方(且不在其中),而无介入的衬底。存储单元阵列210可包含在具有安置于硅衬底上方的作用区域的存储器单元阵列的一个或多个物理层级中单片形成的任何类型的非易失性存储器。存储单元阵列210可在具有与存储器单元的操作相关联的电路系统(无论相关联电路系统在衬底上方或衬底内)的非易失性固态驱动器中。
“电路系统”是指具有至少一个分立电路的电路系统、具有至少一个集成电路的电路系统、具有至少一个专用集成电路的电路系统、形成由计算机程序配置的通用计算装置(例如,由至少部分地进行本文中所描述的进程或装置的计算机程序配置的通用计算机,或由至少部分地进行本文中所描述的进程或装置的计算机程序配置的微处理器)的电路系统、形成存储器装置(例如,随机存取存储器的形式)的电路系统或形成通信装置(例如,调制解调器、通信交换机或光电仪器)的电路系统。
字线可包含安置于衬底上方的层中的含有存储器单元的层的区段。多个字线可借助于沟槽或其它非导电隔离特征形成于单层上。
裸片控制器202与读取/写入电路214协作以对存储单元阵列210的存储器单元执行存储器操作,且包含状态机204、地址解码器206以及功率控制208。状态机204提供存储器操作的芯片级控制。
地址解码器206提供由主机或存储控制器104使用的地址接口与由行解码器212和列解码器216使用的硬件地址之间的地址接口。功率控制208在存储器操作期间控制供应到各种控制线的功率和电压。功率控制208和/或读取/写入电路214可以包含用于字线、源栅选择(SGS)晶体管、漏栅选择(DGS)晶体管、位线、衬底(2D存储器结构中)、电荷泵和源极线的驱动器。在某些实施例中,功率控制208可检测突然断电并采取预防动作。功率控制208可以包含各种第一电压生成器(例如,驱动器),以生成本文中所描述的电压。在一个方法中,感测块可包含位线驱动器和感测放大器。
在一些实施方案中,可组合组件中的一些。在各种设计中,除存储单元阵列210外,组件中的一个或多个(单独或以组合方式)可被视为配置成进行本文中所描述的技术的至少一个控制电路或存储控制器。举例来说,控制电路可包含以下中的任一个或组合:裸片控制器202、状态机204、地址解码器206、列解码器216、功率控制208、感测块SB1、SB2、…、SBp、读取/写入电路214、存储控制器104等。
在一个实施例中,主机102是包含一个或多个处理器、一个或多个处理器可读存储装置(RAM、ROM、快闪存储器、硬盘驱动器、固态存储器)的计算装置(例如,膝上型计算机、台式计算机、智能手机、平板计算机、数码相机),所述存储装置存储用于编程存储控制器104以进行本文中所描述的方法的处理器可读代码(例如,软件)。主机还可包含额外系统存储器、与一个或多个处理器通信的一个或多个输入/输出接口和/或一个或多个输入/输出装置,以及本领域中众所周知的其它组件。
相关联电路系统通常用于存储器单元的操作且用于与存储器单元通信。作为非限制性实例,存储器装置可具有用于控制和驱动存储器单元的电路系统以实现例如编程和读取的功能。这一相关联电路系统可与存储器单元位于同一衬底上和/或处于单独衬底上。举例来说,用于存储器读写操作的存储控制器可位于单独的存储控制器芯片上和/或与存储器单元定位于同一衬底上。
所属领域的技术人员将认识到,所公开的技术和装置不限于所描述的二维和三维示例性结构,而是涵盖如本文中所描述且如由所属领域的技术人员所理解的技术的精神和范围内的所有相关存储器结构。
图3A描绘根据一个实施例的存储器阵列300。在所示出的实施例中,将存储器阵列300组织成如由逻辑擦除块317所绘示的逻辑擦除块(LEB)(在本文中也称为“元块”或“超级块”或“存储器元块”)。“存储器元块”指代横跨多个存储器裸片和/或存储器平面的块。这些LEB包含由物理擦除块0 304、物理擦除块n 306、物理擦除块0 307、物理擦除块n 310、物理擦除块0 311以及物理擦除块n 314示出的多个物理擦除块(PEB)。“物理擦除块”是指可以给定时间擦除(例如,由于存储器裸片上的存储单元的布线)的给定存储器裸片内的最小存储单元。
物理擦除块可定位于绘示为裸片0 301、裸片1 302以及裸片n 303的单独存储裸片中。在某些实施例中,将裸片划分成平面。平面可以理解为准许使用某些物理行地址和某些物理列地址并行执行的某些存储操作的裸片的划分。
本领域的技术人员了解物理擦除块与逻辑擦除块之间的关系和差异,且可通过使用速记版本擦除块、块或存储块来指代一个或另一个或两者。本领域的技术人员从提及擦除块的上下文理解是提及物理擦除块还是逻辑擦除块(或元块或超级块)。在本领域中使用的概念和技术和在权利要求书中叙述的概念和技术可同样应用于物理擦除块或逻辑擦除块。
“擦除块”是指逻辑擦除块或物理擦除块。在一个实施例中,物理擦除块表示可以给定时间擦除(例如,由于存储器裸片上的存储单元的布线)的给定存储器裸片内的最小存储单元。在一个实施例中,逻辑擦除块表示可响应于接收擦除命令而由存储控制器擦除的最小存储单元或存储块。在这种实施例中,当存储控制器接收指定特定逻辑擦除块的擦除命令时,存储控制器可同时擦除逻辑擦除块内的每一物理擦除块。应注意,给定逻辑擦除块内的物理擦除块可视为在物理地址空间内为连续的,即使其驻留在单独裸片中也是这样。因此,术语“连续”可能不仅可应用于存储在同一物理介质内的数据,且还可应用于存储在单独介质内的数据。“同时”指代在时间上的任何并行或部分并行的操作。
“存储块”指代组织成使得可并行地对存储单元群组进行存储操作的一组存储单元。可在物理层级或逻辑层级处实施这一组存储单元的组织。因此,在一个实施例中,存储块可包含例如字线的物理页、包含横跨平面和/或存储器裸片的物理页的逻辑页、包含物理页集合的物理擦除块、包含逻辑页集合的逻辑擦除块(LEB),或类似物。存储块在本文中可称为“块”、“存储器块”或LEB。
如本文中所使用,例如物理页、物理字线、物理擦除块、物理平面、物理存储器裸片或类似物的“物理”结构是指系统的控制器、管理器、模块或其它逻辑组件可在装置、系统或设备的组织中的物理抽象的一个或多个层级内的某一层级处控制和/或通信的单个物理结构。类似地,例如逻辑页、逻辑字线、逻辑擦除块、逻辑平面、逻辑存储器裸片或类似物的“逻辑”结构是指系统的控制器、管理器、模块或其它逻辑组件可在装置、系统或设备的组织中的物理抽象的一个或多个层级内的某一层级处控制和/或通信的相同类型的单个物理结构。应注意,“物理”结构和“逻辑”结构中的一个或另一个或两者可具有相异的地址,所述地址可用来相对于具有类似性质和类型的其它结构识别一个“物理”结构或“逻辑”结构。
“逻辑擦除块”是指存储块的另一术语。在某些实施例中,逻辑擦除块是指跨越平面、存储器裸片和/或芯片的逻辑页集合。由于物理页可能并不直接彼此耦合,所以将存储单元的这一组织视为是‘逻辑’的。然而,并行地操作物理页,如同其是单个页一样。以相似方式,可并行地操作多个物理擦除块,如同其是单个擦除块一样,且因此称为逻辑擦除块。术语逻辑擦除块、元块以及超级块在本文中可互换地使用。“逻辑页”是指视为用于存储操作的单个页的物理页集合。“物理页”是指物理页表示给定存储器裸片内的可在单个操作中写入的最小存储块。
例如逻辑擦除块317的逻辑擦除块进一步划分成多个逻辑页(逻辑页316)所述多个逻辑页又包含多个物理页,例如物理页0 305、物理页n 308、物理页0 309、物理页n 312、物理页0 313和物理页n 315。物理页可包含多个包,可将所述包分组成错误校正码(ECC)组块。
在一个实施例中,物理页表示给定裸片内的可以给定时间写入的最小存储块。在一个实施例中,逻辑页是由存储控制器支持的最小可写存储块。(在一个实施例中,存储控制器可包含配置成存储多达一逻辑页的数据的缓冲器;在填充缓冲器时,存储控制器可并行地将缓冲器的内容写入到单个逻辑页。)在一些情况下,当并行地存取多个裸片时,跨多个裸片划分逻辑页可得到针对数据集合的更快存取时间。可将逻辑页配置映射到裸片上或跨多个存储器裸片的任何物理页,就如同逻辑擦除块一样。
在一些实施例中,存储控制器104可使元数据(也称为介质特性)与存储块(逻辑擦除块、物理擦除块、逻辑页和/或物理页)中的一个或多个相关联。“介质特性(删除)”指代特定存储单元集合的属性或统计,例如存储单元集合的编程/擦除循环计数、存储单元集合的读取计数、自从存储单元集合的前一写入的保持时间(也称为数据保持时间)、例如逻辑或物理擦除块的存储单元集合的停留时间(例如,擦除块的编程与擦除块的擦除之间的时间)、存储单元集合的多个先前停留时间的平均、存储单元集合的错误统计,或类似物。存储单元集合的介质特性可以是实质上静态的或可以是动态的,且随时间推移改变。在一个实施例中,介质特性是与非易失性存储器介质的属性相关联的统计、启发式、数学模型、变换或其它描述符。在一个实施例中,介质特性包含或涉及存储装置和/或非易失性存储器介质的品牌、型号、制造商、产品版本或类似物。在又一实施例中,介质特性可包含或涉及存储装置的和/或非易失性存储器介质的环境条件或使用,例如温度、用例(例如,高速缓存用例、存档用例、服务器用例、企业用例、消费者用例等)或类似物。存储控制器104可管理识别逻辑擦除块存储数据的逻辑地址的元数据,以及逻辑地址空间114(图1)内的每一逻辑擦除块、数据块或扇区的相应数目的所存储数据包。存储控制器104可在各种位置中存储元数据或介质特性数据,所述位置包含非易失性存储介质上、易失性存储器中、用每一逻辑擦除块存储的结构中或类似物。
“元数据”是指可用以促进非易失性存储装置的操作的系统数据。元数据与例如由应用程序产生的数据(即,“应用程序数据”)、由用户、主机产生的数据或将由操作系统视为“用户数据”的数据形式形成对比。举例来说,逻辑擦除块可包含元数据,所述元数据指定但不限于使用统计(例如,在逻辑擦除块上进行的编程擦除循环的数目、健康统计(例如,指示已从逻辑擦除块读取受损数据的频率的值)、安全或存取控制参数、序列信息(例如,序列指示符)、持久性元数据标志(例如,指示包含在原子存储操作中)、事务识别符或类似物。在一些实施例中,逻辑擦除块包含识别逻辑擦除块存储数据的逻辑地址的元数据,以及每一逻辑块或扇区的相应数目的所存储数据块/包。在某些实施例中,元数据包含逻辑擦除块的交叉温度、非易失性存储装置的打开逻辑擦除块的平均交叉温度、温度变化率、逻辑擦除块的平均编程擦除计数、逻辑擦除块的不可校正BER(UBER)、BER、逻辑擦除块的失败位计数以及电荷泄漏率。在一个实施例中,元数据可包含介质特性。
“交叉温度”是指存储器单元被读取/感测时存储器单元的裸片温度不同于存储器单元被写入(编程)时同一存储器单元的裸片温度的条件。更一般化地,如前所述,所述术语还可以指代当块被打开与关闭以用于编程时的温度之间的差,或关闭两个不同块之间的温度差。所述术语的意义在上下文中将容易理解。在某些实施例中,交叉温度可由称为交叉温度度量的值表示。在某些类型的非易失性存储器介质(例如NAND存储器单元)中,当存储器单元被写入时的裸片温度与存储器单元被读取时的裸片温度之间的差足够高时,存储器单元的数据可能变得不可读(读取命令导致错误)。目前,非易失性存储装置具有对策,使得可读取存储在经受交叉温度条件的非易失性存储器中的数据,然而,非易失性存储装置应检测交叉温度条件,使得可采用这些对策。
“电荷泄漏率”是指当存储器单元处于被动状态、未读取或写入时电荷从存储器单元泄漏的速率。在一个实施例中,元数据可包含介质特性。
图3B描绘根据一个实施例的存储器阵列300组织的更多细节。存储器阵列300包含多个存储器裸片,例如裸片0 318、裸片1 319等,至裸片n 320。实例描绘划分成物理平面的裸片,例如裸片0 318的平面0 321和平面1 322、裸片1 319的平面0 323和平面1 324等,至裸片n 320的平面0 325和平面1 326。
每一平面可以划分成物理擦除块,图示为平面0 321的物理擦除块0 327至物理擦除块n 328、平面0平面1 322的物理擦除块0 329至物理擦除块n 330、平面0 323的物理擦除块0 331至物理擦除块n 332、平面0平面1 324的物理擦除块0 333至物理擦除块n 334、平面0 325的物理擦除块0 335至物理擦除块n 336,以及平面0平面1 326的物理擦除块0337至物理擦除块n 338。
每一物理擦除块可划分成物理页。举例来说,物理擦除块0 327可包含物理页0339至物理页n 340,物理擦除块0 329可包含物理页0 341至物理页n 342,物理擦除块0331可包含物理页0 343至物理页n 344,物理擦除块0 333可包含物理页0 345至物理页n346,物理擦除块0 335可包含物理页0 347至物理页n 348,物理擦除块0 337可包含物理页0 349至物理页n 350。
存储器阵列300进一步组织成逻辑擦除块(LEB),如由逻辑擦除块/存储块0 351和逻辑擦除块/存储块N 352所示(在本文中也被称为“元块”或“存储块”)。这些LEB包含由物理擦除块0 327、物理擦除块n 328等示出的多个物理擦除块(PEB)。物理擦除块可以位于单独存储裸片中,示出为裸片0 318、裸片1 319和裸片n 320。
本领域的技术人员了解物理擦除块与逻辑擦除块之间的关系和差异,且可通过使用速记名称,例如擦除块、块或存储块来指代一个或另一个或两者。本领域的技术人员从提及擦除块的上下文理解是提及物理擦除块还是逻辑擦除块(或元块或超级块)。在本领域中使用的概念和技术和在权利要求书中叙述的概念和技术可同样应用于物理擦除块或逻辑擦除块。
如本文中所使用,例如物理页、物理字线、物理擦除块、物理平面、物理存储器裸片或类似物的“物理”结构是指系统的控制器、管理器、模块或其它逻辑组件可在装置、系统或设备的组织中的物理抽象的一个或多个层级内的某一层级处控制和/或通信的单个物理结构。类似地,例如逻辑页、逻辑字线、逻辑擦除块、逻辑平面、逻辑存储器裸片或类似物的“逻辑”结构是指系统的控制器、管理器、模块或其它逻辑组件可在装置、系统或设备的组织中的物理抽象的一个或多个层级内的某一层级处控制和/或通信的相同类型的单个物理结构。应注意,“物理”结构和“逻辑”结构中的一个或另一个或两者可具有相异的地址,所述地址可用来相对于具有类似性质和类型的其它结构识别一个“物理”结构或“逻辑”结构。
例如逻辑擦除块/存储块0 351或逻辑擦除块/存储块n 352等逻辑擦除块进一步划分成多个逻辑页(逻辑页353),所述多个逻辑页又包含多个物理页,例如物理页0 339物理页0 341、物理页0 343、物理页0 345、物理页0 347和物理页0 349如所说明。物理页可包含多个包,可将所述包分组成错误校正码(ECC)组块。
在一个实施例中,物理页表示给定裸片内的可以给定时间写入的最小存储块。在一个实施例中,物理页可包含单个字线。
在另一实施例中,逻辑页是由存储控制器支持的最小可写存储块。(在一个实施例中,存储控制器可包含配置成存储多达一逻辑页的数据的缓冲器;在填充缓冲器时,存储控制器可同时将缓冲器的内容写入到单个逻辑页。)在某些实施例中,逻辑页可以简称为字线,应理解逻辑页包含存储器阵列300的每一平面和/或存储器裸片上的一个字线。
在某些实施例中,逻辑页横跨存储器裸片内的平面或横跨多个存储器裸片内的平面。在一些情况下,当并行地存取多个裸片时,跨多个裸片划分逻辑页可得到针对数据集合的更快存取时间。可将逻辑页配置映射到裸片上或跨多个存储器裸片的任何物理页,就如同逻辑擦除块一样。
举例来说,逻辑擦除块可包含元数据,所述元数据指定但不限于使用统计(例如,在逻辑擦除块上进行的编程擦除循环的数目、健康统计(例如,指示已从逻辑擦除块读取受损数据的频率的值)、安全或存取控制参数、序列信息(例如,序列指示符)、持久性元数据标志(例如,指示包含在原子存储操作中)、事务识别符或类似物。在一些实施例中,逻辑擦除块包含识别逻辑擦除块存储数据的逻辑地址的元数据,以及每一逻辑块或扇区的相应数目的所存储数据块/包。
在某些实施例中,元数据包含以下各项中的一个或多个:逻辑擦除块的交叉温度、非易失性存储装置的打开逻辑擦除块的平均交叉温度、温度变化率、逻辑擦除块的平均编程擦除计数、逻辑擦除块的不可校正BER(UBER)、BER、逻辑擦除块的失败位计数以及电荷泄漏率。在一个实施例中,元数据可包含介质特性。
图4描绘在一个实施例中的编程温度变化400的曲线图。曲线图描绘随着执行时间过去从块到块的以摄氏度计的块关闭温度402的变化。块M和块Q在热区3中关闭,但存在对热区5的介入交叉温度事件;同样对于块K和块P,两者在热区4中关闭。对热区5的介入交叉温度事件导致块Q和块P被置于分别与块M和块K不同的块群体中。块M和块Q都与热区3相关联,但用于块Q的热区标签进一步指示将对其相关联的块执行的额外读取验证。因为块Q是在对热区5的交叉温度事件之后在热区3中关闭的第一块,所以可以对块Q执行BER测试且可以相应地设定用于块Q的读取参数。针对热区4为块P调用相似过程。
当对块B和块C进行编程时进入热区0的另一交叉温度事件发生。这是触发块群体的另一分离的极端交叉温度事件。因此,块D将与用于热区3的热区标签相关联,但被标记为与块M或块Q的群体分开。因为交叉温度事件是极端交叉温度事件,所以块D可以被标记用于优先级重定位,或与热离群值块区相关联,例如热区0或热区6。
图5描绘在一个实施例中的块标记例程500。块标记例程500可用以改善具有频繁改变的装置温度条件的操作环境中的读取性能。描绘的动作不应假定为按呈现的次序发生,除非动作取决于将实行的前一动作的结果。如果两个或更多个动作不是以某种方式为彼此的条件,那么本领域技术人员将容易确定它们可以并行地、以时分方式或以不同次序实行。描绘的动作可以例如由首先在图1和图2中介绍的存储控制器104和/或裸片控制器202实行。
在框502处,可以预配置热区以使得用于N跃点邻域中的经预配置热区的存储器读取参数是兼容的。此动作可以得到N跃点邻域内的热区兼容性。兼容读取参数是并非不兼容读取参数的读取参数。“不兼容读取参数”指代在可降级或改变读取参数的交叉温度事件的不同侧上跨越不同热区中关闭的块或同一热区中关闭的块无法可靠地应用的存储器读取参数,例如阈值电压。
在框504处,可以测量对应于开始对存储器块进行编程的时间的第一温度。所述第一温度可以位于经预配置热区中的第一个内。
在框506处,可以测量对应于关闭存储块用于编程的时间的第二温度。第二温度可以位于经预配置热区中的第一个的N跃点邻域中的经预配置热区中的第二个内,其中N≥1。在框508处,可以将存储块指派到经预配置热区中的第二个。
也可以当块打开用于编程时对所述块执行温度跟踪(框510)。温度跟踪可用以检测当块打开时发生的交叉温度事件且确定块是否为热离群值块。
图6A描绘在一个实施例中的块标记例程600a。块标记例程600a可以与图6B中描述的热离群值块处理例程600b结合使用,以配置热区,将存储器块指派到热区,且将与热区相关联的读取参数应用于其中指派的存储块。描绘的动作不应假定为按呈现的次序发生,除非动作取决于将实行的前一动作的结果。如果两个或更多个动作不是以某种方式为彼此的条件,那么本领域技术人员将容易确定它们可以并行地、以时分方式或以不同次序实行。描绘的动作可以例如由首先在图1和图2中介绍的存储控制器104和/或裸片控制器202实行。
在框602处,可以在存储器装置中配置多个热区。此动作导致可以在块标记例程600a和热离群值块处理例程600b的稍后步骤中使用的热区集合。按照框612,热区可以被配置成使得对于热区的至少一个子集M≥2,用于子集M的任何N个邻近热区的读取参数是兼容的。
在框604处,可以测量对应于打开存储器装置的块的第一温度。此动作导致在块标记例程600a和热离群值块处理例程600b的稍后步骤中使用的第一温度。
在框606处,可以测量对应于关闭块用于编程的第二温度。此动作导致在块标记例程600a和热离群值块处理例程600b的稍后步骤中使用的第二温度。
当块打开用于编程时,系统可以跟踪其温度(例如,具有按周期性间隔的温度测量)(框614)。这些测量可用以确定块上是否发生交叉温度事件,且如果是,那么确定交叉温度事件的温度范围和其频率。
在框608处,可以使用来自框604的第一温度和来自框606的第二温度确定第一和第二温度之间的温度范围。所述范围可以横跨N≥2的热区。
在框610处,在N满足阈值的条件下,可以将在框604和框606中测量其温度的存储块指派到在框602中配置且包含框606的第二温度的热区。热离群值块处理例程600b的步骤可以从框610跟随。
图6B描绘在一个实施例中的热离群值块处理例程600b。热离群值块处理例程600b可以与图6A中描述的块标记例程600a结合使用,以配置热区,将存储器块指派到热区,且将与热区相关联的读取参数应用于其中指派的存储块。描绘的动作不应假定为按呈现的次序发生,除非动作取决于将实行的前一动作的结果。如果两个或更多个动作不是以某种方式为彼此的条件,那么本领域技术人员将容易确定它们可以并行地、以时分方式或以不同次序实行。描绘的动作可以例如由首先在图1和图2中介绍的存储控制器104和/或裸片控制器202实行。
热离群值块处理例程600b在框616处接着块标记例程600a继续开始。在框616处,如果N不满足来自框610的阈值,那么可以将存储块标记为热离群值块。如果块经历的交叉温度事件的范围、数目、或频率或其组合不满足条件或阈值,那么也可以将块标记为热离群值块(框620)。这可以导致框622中的数据抽空。按照框622,将存储块标记为热离群值块可以触发从存储块的数据抽空。
在框618处,可以将在图6A中介绍的框612中的与特定热区相关联的读取参数应用于被指派到所述特定热区的存储块。
图7描绘在一个实施例中的块标记例程700。块标记例程700可用以预先配置在N跃点邻域内兼容的热区且将存储块指派到适当热区。描绘的动作不应假定为按呈现的次序发生,除非动作取决于将实行的前一动作的结果。如果两个或更多个动作不是以某种方式为彼此的条件,那么本领域技术人员将容易确定它们可以并行地、以时分方式或以不同次序实行。描绘的动作可以例如由首先在图1和图2中介绍的存储控制器104和/或裸片控制器202实行。
在框702处,可以预配置热区以使得用于N跃点邻域中的经预配置热区的存储器读取参数是兼容的。此动作导致N跃点邻域内的热区的兼容集合。经预配置热区的所有N跃点邻域可以是兼容的,或仅经预配置热区的子集M可以是兼容的。
在框704处,测量对应于打开非易失性存储装置阵列的存储块用于编程的第一温度。所述第一温度可以位于多个经预配置热区中的第一个内。
在框706处,可以测量对应于关闭存储块用于编程的第二温度。第二温度可以位于经预配置热区中的第一个的N跃点邻域中的所述多个经预配置热区中的第二个内,其中N≥1。
在框708处,基于在框706中测量的第二温度,可以将存储块指派到经预配置热区中的第二个。
图8描绘在一个实施例中的块重定位例程800。块重定位例程800可用以基于热区标签重定位存储块。描绘的动作不应假定为按呈现的次序发生,除非动作取决于将实行的前一动作的结果。如果两个或更多个动作不是以某种方式为彼此的条件,那么本领域技术人员将容易确定它们可以并行地、以时分方式或以不同次序实行。描绘的动作可以例如由首先在图1和图2中介绍的存储控制器104和/或裸片控制器202实行。
在框802处,可以测量当存储器阵列的块被打开时的第一温度。此第一温度可以在块重定位例程800的稍后步骤中使用。
在框804处,可以测量当存储器阵列的块被关闭时的第二温度。此第二温度可以在块重定位例程800的稍后步骤中使用。
在框806处,可以为块指派对应于包含来自框804的第二温度的多个经预配置热区中的一个的标签。因此可以在来自框802的第一温度与来自框804的第二温度之间的范围横跨经预配置热区的1≤N≤M个邻接热区的条件下指派标签。
在框808处,可以重定位包含同一标签的块以便在存储器阵列中邻近。
图9A描绘在一个实施例中的块标记例程900a。块标记例程900a可以与图9B的块标记例程900b结合使用以基于BER和交叉温度事件指派热区标签和读取参数。描绘的动作不应假定为按呈现的次序发生,除非动作取决于将实行的前一动作的结果。如果两个或更多个动作不是以某种方式为彼此的条件,那么本领域技术人员将容易确定它们可以并行地、以时分方式或以不同次序实行。描绘的动作可以例如由首先在图1和图2中介绍的存储控制器104和/或裸片控制器202实行。
在框902处,可以检测交叉温度事件。通过在框902处的动作检测到的交叉温度事件可以充当用于开始块标记例程900a的触发。
在框904处,由于在框902中检测到的交叉温度事件而可以更新用于经预配置热区中的一个或多个的读取参数。在一些实施例中,按照框912,步骤框904可以交叉温度事件是极端交叉温度事件为条件。
在框906处,可以针对在框902中检测到的交叉温度事件之后关闭的存储块测试BER。在一个实施例中,如框914中所描述,如果在交叉温度事件之后关闭的存储块是在交叉温度事件之后关闭的第一存储块,且如果所述存储块被指派到与在交叉温度事件之前关闭的块相同的热区,那么可以测试BER。在框916处,在一个实施例中,可以应用被指派到在交叉温度事件之前关闭的存储块的读取参数以从在交叉温度事件之后关闭的存储块读取数据。
在框908处,可以区分在来自框906的交叉温度事件之后关闭的块与在交叉温度事件之前关闭的块。在交叉温度事件之后关闭的块和在交叉温度事件之前关闭的块可以被指派到同一热区。
在一个实施例中,关于块标记例程900b论述的额外步骤可以在框908之后实行且可以随后返回到框910。在框910处,可以将在交叉温度事件之前编程的块的热区标签去活。
图9B描绘在一个实施例中的块标记例程900b。块标记例程900b可以与图9A的块标记例程900a结合使用以创建和指派新热区标签以针对一些存储块调用额外读取验证。描绘的动作不应假定为按呈现的次序发生,除非动作取决于将实行的前一动作的结果。如果两个或更多个动作不是以某种方式为彼此的条件,那么本领域技术人员将容易确定它们可以并行地、以时分方式或以不同次序实行。描绘的动作可以例如由首先在图1和图2中介绍的存储控制器104和/或裸片控制器202实行。
热离群值块处理例程600b在框918处接着块标记例程900a继续开始,其中可以针对在交叉温度事件之前和之后关闭的存储块比较BER。此比较可以允许在随后的步骤中区分块。
若干额外动作可以在框918的BER比较之后发生或涉及所述BER比较。这些额外动作可以不必以特定次序发生,除非是次序暗含了因果关系。
在框920处,如果框918的BER比较满足阈值电压,那么可以区分在交叉温度事件之后关闭的存储块与在交叉温度事件之前关闭的存储块。此区分可以导致如块标记例程900b的稍后步骤中所描述的块指派。
在框922处,可以独立于交叉温度事件的时间间隔而区分在交叉温度事件之后关闭的存储块与在交叉温度事件之前关闭的存储块。此区分可以导致如块标记例程900b的稍后步骤中所描述的块指派。
在框924处,可以创建包含被指派到在交叉温度事件之前关闭的存储块的同一热区的新热区标签。此标签可以应用于存储块以便例如在框926中将它们指派到热区。
在框926处,可以为在交叉温度事件之后关闭的存储块指派在框924中创建的新热区标签。此指派可用以在未来存储操作期间区分存储块。
在框928处,可以配置在框924中创建的新热区标签以调用对与其相关联的存储块的额外读取验证。以此方式配置热区标签可以通过更快速地识别可能由于交叉温度事件而带来数据丢失的存储块来得到改进的性能。一旦框928完成,块标记例程900b就可以返回到如图9A中所描述的块标记例程900a的步骤。
所属领域的技术人员将了解本文公开的技术和其变化可由适合于实施方案的细节的各种形式的逻辑执行。
在本公开内,可将不同实体(其可不同地称为“单元”、“电路”、其它组件等)描述或要求为“配置”成进行一个或多个任务或操作。配置成[执行一个或多个任务]的[实体]的这一表述在本文中用来指结构(即,例如电子电路的物理物体)。更具体来说,此表述用于指示这个结构被布置成在操作期间进行一个或多个任务。即使结构当前未被操作,也可将所述结构称为“配置成”进行一些任务。“被配置成将信用分配到多个处理器的信用分配电路”既定涵盖例如具有在操作期间执行此功能的电路的集成电路,即使所讨论的集成电路当前不在使用(例如,电力供应器未与其连接)。因此,描述或叙述为“配置成”进行一些任务的实体是指实际物体,例如装置、电路、存储可执行以实施任务的程序指令的存储器等。这一短语在本文中并不用来指无形物体。
术语“被配置成”并不旨在意指“可配置成”。举例来说,尽管未编程的FPGA在编程之后“可配置成”执行一些具体功能,但所述未编程的FPGA将不会被视为“被配置成”执行所述功能。
如本文中所使用,术语“基于”用于描述影响确定的一或多个因素。这一术语并不排除额外因素可能影响确定的可能性。也就是说,确定可仅仅基于指定因素或基于指定因素以及其它未指定的因素。考虑短语“基于B来确定A”。此短语指定B为用于确定A或影响A的确定的因素。此短语不排除A的确定还可基于某一其它因素,例如C。此短语还希望涵盖其中仅仅基于B来确定A的实施例。如本文中所使用,短语“基于”与短语“至少部分地基于”同义。
如本文中所使用,短语“响应于”描述触发效果的一个或多个因素。这一短语并不排除额外因素会影响或以其它方式触发效果的可能性。也就是说,效果可能仅仅响应于那些因素,或可能响应于指定因素以及其它未指定因素。考虑短语“响应于B而执行A”。此短语指定B为触发A的执行的因素。此短语不排除还可响应于例如C等某一其它因素来执行A。此短语还既定涵盖其中仅仅响应于B来执行A的实施例。
如本文中所使用,除非另外陈述,否则术语“第一”、“第二”等用作其后的名词的标签,且并不暗示任何类型的排序(例如,空间、时间、逻辑等)。例如,在具有八个寄存器的寄存器组中,术语“第一寄存器”和“第二寄存器”可用来指代八个寄存器中的任两个,而不是例如仅指代逻辑寄存器0和1。
当在权利要求书中使用时,术语“或”用作包含性的或,而非排他性的或。例如,短语“x、y或z中的至少一个”意指x、y和z中的任一个,以及其任何组合。

Claims (20)

1.一种方法,其包括:
测量对应于打开所述存储器装置的存储块用于编程的第一温度;
测量对应于关闭所述存储块用于编程的第二温度;
确定所述第一温度与所述第二温度之间的范围,所述范围横跨N≥2个经预配置热区;以及
在N满足阈值的条件下,将所述存储块指派到包含所述第二温度的热区。
2.根据权利要求1所述的方法,还包括:
如果N不满足所述阈值,那么将所述存储块标记为热离群值块。
3.根据权利要求2所述的方法,其中将所述存储块标记为所述热离群值块触发从所述存储块的数据抽空。
4.根据权利要求1所述的方法,还包括:
当所述块打开用于编程时跟踪所述块的温度;
确定交叉温度事件的数目、一个或多个交叉温度事件的温度范围和交叉温度事件的频率中的一个或多个;以及
有条件地基于交叉温度事件的所述数目、一个或多个交叉温度事件的所述温度范围和交叉温度事件的所述频率中的一个或多个将所述存储块标记为热离群值块。
5.根据权利要求1所述的方法,其中将应用于被指派到特定热区的存储块的读取参数具体来说应用于被指派到所述特定热区的块。
6.根据权利要求5所述的方法,其中所述热区被配置成使得对于所述热区的至少一个子集M≥2,用于所述子集M的任何N个邻近热区的所述读取参数是兼容的。
7.一种装置,其包括:
非易失性存储器阵列;
控制器;以及
第一逻辑,其用以配置所述控制器以:
测量对应于打开所述非易失性存储器阵列的存储块用于编程的第一温度,所述第一温度位于多个经预配置热区中的第一个内;
测量对应于关闭所述存储块用于编程的第二温度,所述第二温度位于所述经预配置热区中的所述第一个的N跃点邻域中的所述多个经预配置热区中的第二个内,其中N≥1;以及
将所述存储块指派到所述经预配置热区中的所述第二个;
其中所述多个经预配置热区被配置成使得用于所述N跃点邻域中的热区的存储器读取参数是兼容的。
8.根据权利要求7所述的装置,还包括用以进行以下操作的第二逻辑:
检测交叉温度事件;以及
由于所述交叉温度事件而更新用于所述经预配置热区中的一个或多个的所述读取参数。
9.根据权利要求8所述的装置,其中所述读取参数的所述更新是以所述交叉温度事件是极端交叉温度事件为条件。
10.根据权利要求7所述的装置,还包括用以进行以下操作的第三逻辑:
检测交叉温度事件;
针对在所述交叉温度事件之后关闭的存储块测试位错误率;以及
区分在所述交叉温度事件之后关闭的所述存储块与在所述交叉温度事件之前关闭的存储块,其中在所述交叉温度事件之后关闭的所述存储块和在所述交叉温度事件之前关闭的所述存储块被指派到同一热区。
11.根据权利要求10所述的装置,其中所述位错误率测试是在以下条件下执行:在所述交叉温度事件之后关闭的所述存储块是在所述交叉温度事件之后的第一关闭存储块,且在所述交叉温度事件之后关闭的所述存储块被指派到与在所述交叉温度事件之前关闭的所述存储块相同的热区。
12.根据权利要求10所述的装置,其中区分在所述交叉温度事件之后关闭的所述存储块与在所述交叉温度事件之前关闭的所述存储块包括:
创建包含被指派到在所述交叉温度事件之前关闭的所述存储块的所述同一热区的新热区标签;
将在所述交叉温度事件之后关闭的所述存储块指派到所述新热区标签;以及
标记所述新热区标签以调用对与所述新热区标签相关联的存储块的额外读取验证。
13.根据权利要求10所述的装置,还包括用以进行以下操作的第四逻辑:
将在所述交叉温度事件之前编程的所述块的所述热区标签去活,使得在所述交叉温度事件之后关闭的存储块不能被指派到在所述交叉温度事件之前关闭的所述存储块的所述热区标签。
14.根据权利要求10所述的装置,其中所述位错误率测试和区分包括:
应用被指派到在所述交叉温度事件之前关闭的所述存储块的读取参数以从在所述交叉温度事件之后关闭的所述存储块读取数据;
将在所述交叉温度事件之前关闭的所述存储块和在所述交叉温度事件之后关闭的所述存储块的位错误速率进行比较;以及
在所述比较满足阈值的条件下区分在所述交叉温度事件之后关闭的所述存储块与在所述交叉温度事件之前关闭的所述存储块。
15.根据权利要求10所述的装置,其中区分在所述交叉温度事件之后关闭的所述存储块与在所述交叉温度事件之前关闭的所述存储块是独立于所述交叉温度事件的时间间隔。
16.一种系统,其包括:
存储器阵列;以及
控制器,其被配置成:
测量当所述存储器阵列的块被打开时的第一温度;
测量当所述块被关闭时的第二温度;
在所述第一温度与所述第二温度之间的范围横跨多个经预配置热区中的1≤N≤M个邻接热区的条件下,为所述块指派对应于包含所述第二温度的所述经预配置热区中的一个的标签;以及
将具有同一标签的块重定位为在所述存储器阵列中邻近。
17.根据权利要求16所述的系统,所述控制器还被配置成:
将所述第一温度与所述第二温度之间的所述范围横跨大于M个邻接热区的块标记为热离群值块。
18.根据权利要求17所述的系统,所述控制器还被配置成:
当所述块打开用于编程时有条件地基于交叉温度事件的数目、一个或多个交叉温度事件的温度范围和交叉温度事件的频率中的一个或多个将所述存储块标记为热离群值块。
19.根据权利要求16所述的系统,所述控制器还被配置成:
检测极端交叉温度事件;
区分在所述极端交叉温度事件之后关闭且被指派特定标签的块与在所述极端交叉温度事件之前关闭的具有所述特定标签的块;以及
将具有所述特定标签且在所述极端交叉温度事件之后关闭的所述块重定位为在所述存储器阵列中邻近,不同于具有所述特定标签且在所述极端交叉温度事件之前关闭的所述块。
20.根据权利要求19所述的系统,所述控制器还被配置成:
在所述极端交叉温度事件之后关闭的所述块中的第一个的位错误率与在所述极端交叉温度事件之前关闭的所述块中的一个的位错误率相比较差的条件下,区分在所述极端交叉温度事件之前关闭的所述块与在所述极端交叉温度事件之后关闭的所述块。
CN202110525525.7A 2020-07-08 2021-05-13 热区标签和热区离群值检测 Pending CN113921063A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/923,849 2020-07-08
US16/923,849 US11210031B1 (en) 2020-07-08 2020-07-08 Thermal region tags and thermal region outlier detection

Publications (1)

Publication Number Publication Date
CN113921063A true CN113921063A (zh) 2022-01-11

Family

ID=79168327

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110525525.7A Pending CN113921063A (zh) 2020-07-08 2021-05-13 热区标签和热区离群值检测

Country Status (2)

Country Link
US (1) US11210031B1 (zh)
CN (1) CN113921063A (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11940892B2 (en) * 2019-12-19 2024-03-26 Micron Technology, Inc. Closing block family based on soft and hard closure criteria
US11842061B2 (en) * 2020-08-19 2023-12-12 Micron Technology, Inc. Open block family duration limited by temperature variation
US11573720B2 (en) * 2020-08-19 2023-02-07 Micron Technology, Inc. Open block family duration limited by time and temperature
US11756625B2 (en) * 2021-03-12 2023-09-12 Micron Technology, Inc. Adaptive temperature compensation for memory devices
US11625295B2 (en) * 2021-05-10 2023-04-11 Micron Technology, Inc. Operating memory device in performance mode
US11670394B2 (en) * 2021-08-18 2023-06-06 Nxp B.V. Temperature exposure detection based on memory cell retention error rate
US20240103737A1 (en) * 2022-09-23 2024-03-28 Micron Technology, Inc. Refreshing a memory block on power up based on an age and/or temperature condition

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10475523B2 (en) 2013-05-31 2019-11-12 Western Digital Technologies, Inc. Updating read voltages triggered by the rate of temperature change
US9165668B1 (en) 2013-07-29 2015-10-20 Western Digital Technologies, Inc. Data retention monitoring using temperature history in solid state drives
US9165670B2 (en) 2013-11-14 2015-10-20 Sandisk Technologies Inc. Data retention detection techniques for a data storage device
US10078546B2 (en) * 2014-10-24 2018-09-18 Micron Technology, Inc. Temperature related error management
US9996281B2 (en) * 2016-03-04 2018-06-12 Western Digital Technologies, Inc. Temperature variation compensation
US10228872B2 (en) * 2016-03-10 2019-03-12 Toshiba Memory Corporation Semiconductor device, and information-processing device
US10379739B1 (en) 2018-03-23 2019-08-13 Western Digital Technologies, Inc. Data storage device read threshold adjustment according to environmental parameters
US10497423B1 (en) * 2018-05-14 2019-12-03 Nanya Technology Corporation Frequency-adjusting circuit, electronic memory, and method for determining a refresh frequency for a plurality of dram chips
US10395728B2 (en) 2018-06-26 2019-08-27 Intel Corporation Demarcation voltage determination via write and read temperature stamps
US11281400B2 (en) * 2019-04-16 2022-03-22 Micron Technology, Inc. Temperature-based storage system organization

Also Published As

Publication number Publication date
US20220011967A1 (en) 2022-01-13
US11210031B1 (en) 2021-12-28

Similar Documents

Publication Publication Date Title
US20210182166A1 (en) Zoned namespace management of non-volatile storage devices
US11385984B2 (en) Variable read scan for solid-state storage device quality of service
US11210031B1 (en) Thermal region tags and thermal region outlier detection
CN110447009B (zh) 用于自适应命令获取聚合的系统和方法
US10877900B1 (en) Enabling faster and regulated device initialization times
US10592141B2 (en) Error characterization for control of non-volatile memory
US11231883B1 (en) Detecting last page written in multi-plane non-volatile memory
US11287989B2 (en) Dynamic allocation of sub blocks
US10998041B1 (en) Calibrating non-volatile memory read thresholds
US20200285391A1 (en) Retention-aware data tiering algorithm for hybrid storage arrays
US10997080B1 (en) Method and system for address table cache management based on correlation metric of first logical address and second logical address, wherein the correlation metric is incremented and decremented based on receive order of the first logical address and the second logical address
CN115904221A (zh) 高速缓存块预算技术
US11755237B2 (en) Overwriting at a memory system
CN114816900A (zh) 用于存储器系统的温度跟踪
US11709617B2 (en) Multi-stage memory device performance notification
US10108470B2 (en) Parity storage management
US20240069741A1 (en) Dynamic wear leveling techniques
US20190310918A1 (en) Meta Data Protection against Unexpected Power Loss in a Memory System
CN114297091A (zh) 存储器装置处的多个快闪转换层
WO2023173369A1 (en) Sorted change log for physical page table compression
US11775422B2 (en) Logic remapping techniques for memory devices
US11837275B2 (en) Techniques for saturating a host interface
US11605434B1 (en) Overwriting at a memory system
US20230367496A1 (en) Block repurposing based on health metrics
US20240160380A1 (en) Techniques for temperature-based access operations

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