CN117882045A - 用于存储器装置的自动vdm调整 - Google Patents
用于存储器装置的自动vdm调整 Download PDFInfo
- Publication number
- CN117882045A CN117882045A CN202280058349.3A CN202280058349A CN117882045A CN 117882045 A CN117882045 A CN 117882045A CN 202280058349 A CN202280058349 A CN 202280058349A CN 117882045 A CN117882045 A CN 117882045A
- Authority
- CN
- China
- Prior art keywords
- vdm
- value
- memory
- memory access
- memory subsystem
- 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
- 230000015654 memory Effects 0.000 claims abstract description 418
- 238000012545 processing Methods 0.000 claims abstract description 131
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 62
- 238000012937 correction Methods 0.000 claims description 8
- 238000011084 recovery Methods 0.000 description 37
- 230000008569 process Effects 0.000 description 28
- 238000003860 storage Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 239000000872 buffer Substances 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4074—Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control 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/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4091—Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一种系统可包含存储器装置和与所述存储器装置耦合的处理装置。所述处理装置可接收命令,且确定所述命令是否包含与所述存储器装置处的读取相关联的电压的值。所述处理装置还可响应于所述命令未能指定所述值,基于在前一写入操作之后的持续时间满足阈值准则,从多个值中选择与所述存储器装置处的所述读取相关联的所述电压的第二值。所述处理装置还可在所述存储器装置的存储器单元处施加具有所述第二值的所述电压以确定所述存储器单元的逻辑状态。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体地,涉及用于存储器系统的并行命令限制器。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。所述存储器装置可例如为非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据以及从存储器装置检索数据。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,各图不应视为将本公开限于特定实施例,而是仅用于解释和理解。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2是用于存储器装置的自动电压分界调整的实例方法的流程图。
图3是用于恢复操作中的自动电压分界调整的实例方法的流程图。
图4是用于存储器装置的自动电压分界调整的实例方法的流程图。
图5是用于恢复操作中的自动电压分界调整的实例方法的流程图。
图6是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的各方面涉及一种用于存储器系统的自动电压分界调整的方法。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的组合。下文结合图1来描述存储装置和存储器模块的实例。通常,主机系统可利用存储器子系统,所述存储器子系统包含一或多个组件,例如存储数据的存储器装置。主机系统可提供待存储于存储器子系统处的数据且可请求从存储器子系统检索数据。
存储器子系统可包含高密度非易失性存储器装置,其中当没有电力被供应到存储器装置时需要数据的保持。非易失性存储器装置的一个实例是三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。下文结合图1描述非易失性存储器装置的其它实例。即,实施例不限于三维交叉点或其它存储器技术。非易失性存储器装置是一或多个裸片的封装。每个裸片可由一或多个分区组成。对于一些类型的非易失性存储器装置(例如,3D交叉点装置),每个分区由一组页组成。每个页由一组存储器单元(“单元”)组成。单元是存储信息的电子电路。取决于单元类型,单元可存储二进制信息的一或多个位,且具有与存储的位数目相关的各种逻辑状态。逻辑状态可由例如“0”和“1”或这类值的组合的二进制值表示。
三维(3D)交叉点存储器装置可将跨裸片和通道的页分组以形成管理单元(MU)。MU可包含主机数据和对应的元数据。存储器子系统控制器可将用户数据和对应的元数据作为管理单元发送到存储器装置以及从存储器装置接收。超级管理单元(SMU)是一起管理的一或多个MU的群组。举例来说,存储器子系统控制器可对SMU执行媒体管理操作(例如,耗损均衡操作、刷新操作等)。存储器子系统控制器还可对SMU执行写入或读取操作。
某些非易失性存储器装置可使用分界电压(或电压分界(VDM))来读取存储于存储器单元处的数据。举例来说,存储器子系统控制器可将VDM施加于存储器单元,且如果特定存储器单元的阈值电压(Vt)被识别为低于所施加的分界电压,则可将存储在所述特定存储器单元处的数据读取为特定值(例如,逻辑‘1’)。如果特定存储器单元的阈值电压被识别为高于分界电压,则可将存储在所述特定存储器单元处的数据读取为另一值(例如,逻辑‘0’)。在某些存储器装置中,多个存储器单元的阈值电压或阈值电压分布可随着时间推移而移位或变化,也称为电压阈值漂移。举例来说,存储逻辑‘1’的存储器单元的阈值电压分布或存储逻辑‘0’的存储器单元的阈值分布可能随着时间推移而漂移,且分布的相应阈值电压可能增大。当存储器单元的阈值电压变化时,分界电压的施加可因变化的阈值电压而产生不正确结果,例如,当存储器单元的阈值从低于VDM漂移到高于VDM时,存储在存储器单元处的数据可能被不正确地解译。某些存储器装置可利用具有不同值(例如,多个VDM电平)的多个VDM来补偿归因于漂移的不准确读数。举例来说,存储器装置可在漂移致使存储器阈值电压增大时选择不同VDM(例如,具有较大量值或较高值的VDM)。当在从主机系统接收的命令中指定不同VDM时,存储器装置可调整VDM,施加VDM,且执行错误校正操作(例如,ECC)直到错误的数目满足存储器装置的错误阈值为止,例如,主机系统可停止发送不同VDM,直到满足错误阈值为止。在此类实例中,施加每个VDM可减缓存储器装置的性能。另外,某些存储器装置可能受限于其可从中选择的VDM值的数目,从而增大使用有限VDM误读存储器单元的几率。
某些存储器装置还可在执行恢复操作且尝试校正损坏的码字——例如一组标准化数据,其中每个码字遵循相同协议——时利用VDM。举例来说,存储器装置可将若干码字存储在一页。存储在所述页的存储器单元处的码字可能随着时间推移因降级或阈值漂移而损坏。存储器装置可能尝试使用与存储在所述页处的与所述页处的所有码字相关联的冗余元数据(例如,异或(XOR)值)对存储在损坏的码字处的数据进行解码。存储器装置可能使用不同VDM来尝试码字的恢复。某些存储器装置可能具有有限数目的VDM供选择,且码字的恢复可能较困难。某些存储器装置还可能对可使用何种VDM值没有限制,从而导致存储器装置超过阈值电压——例如,存储器装置可能将超过或低于存储器单元的操作电压的电压施加到存储器单元。
本公开的各方面通过具有可按自动方式调整VDM的存储器子系统来解决以上及其它不足。举例来说,存储器子系统控制器包含可选择VDM值而不依赖于来自主机系统的命令来指定值的逻辑。举例来说,存储器子系统控制器可从若干可能的VDM中选择最适合于补偿阈值电压漂移的VDM值。为了相对于SMU执行存储器存取操作,存储器子系统可基于自从相对于所述SMU执行最近写入操作以来已流逝的时间段而选择VDM。因此,如果流逝的时间满足(例如,超过)经编程阈值准则,那么存储器子系统控制器可选择不同VDM值——例如,存储器子系统控制器可在自从上一次写入操作以来的时间较高时选择具有较高值的VDM,因为存储器单元可能在较长时间内漂移得较多。存储器子系统控制器还可在额外VDM电压(例如,具有不同值或量值的电压)(而非特定存储器装置)之间进行选择。存储器子系统控制器还可通过针对每个恢复步骤增大VDM——例如,增大VDM直到错误减少或存储器单元的最大操作电压得以满足为止——而使用自动VDM调整以进行恢复。
本公开的优点包含但不限于通过经由自动化选择一个VDM而非接收具有不同VDM的多个命令来减小读取时延。存储器子系统控制器还可从更多的VDM电压而非特定存储器装置中选择,从而允许存储器子系统改善漂移缓解。存储器子系统还可包含监测选定VDM值是超过还是低于存储器单元的操作电压的寄存器。因此,存储器子系统控制器可保护其存储器单元且避免施加超过或低于操作电压的无效VDM电压。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或此类装置的组合。
存储器子系统110可以是存储装置、存储器模块,或存储装置和存储器模块的组合。存储装置的实例包含固态硬盘(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、载具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(IoT)的装置、嵌入式计算机(例如,载具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的多个存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与...耦合”通常是指组件之间的连接,所述连接可以是间接通信连接或直接通信连接(例如不具有居间组件),无论有线或无线,包含例如电连接、光学连接、磁连接等连接。
主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器)以及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110,以例如将数据写入到存储器子系统110和从存储器子系统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可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置的一些实例(例如,存储器装置130)包含“与非”(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2D NAND)和三维NAND(3D NAND)。
存储器装置130中的每一者可包含一或多个存储器单元阵列。一个类型的存储器单元,例如单层级单元(SLC),可每单元存储一个位。其它类型的存储器单元,例如,多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC),可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC、PLC或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分以及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可经分组以形成块。
虽然描述了例如非易失性存储器单元的3D交叉点阵列以及NAND型快闪存储器(例如,2D NAND、3D NAND)的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如,只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、“或非”(NOR)快闪存储器,或电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或简单起见,控制器115)可与存储器装置130通信以执行操作,例如,在存储器装置130处读取数据、写入数据或擦除数据,以及其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。硬件可包含具有用以执行本文所描述的操作的专用(即,硬译码)逻辑的数字电路系统。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子系统控制器115可包含处理装置,所述处理装置包含经配置以执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所说明的实例中,存储器子系统控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流以及例程。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。尽管将图1中的实例存储器子系统110说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,且可能改为依靠(例如由外部主机或由与存储器子系统分开的处理器或控制器提供的)外部控制。
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换成指令或合适的命令,以实现对存储器装置130的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、无用单元收集操作、错误检测和错误校正码(ECC)操作、加密操作、缓存操作,以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)和物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115还可包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换为命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址且解码所述地址以对存储器装置130进行存取。
在一些实施例中,存储器装置130包含结合存储器子系统控制器115操作以在存储器装置130的一或多个存储器单元上执行操作的本地媒体控制器135。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130进行媒体管理操作)。在一些实施例中,存储器子系统110是受管理存储器装置,其为具有裸片上的控制逻辑(例如,本地媒体控制器135)的原始存储器装置130和用于同一存储器装置封装内的媒体管理的控制器(例如,存储器子系统控制器115)。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子系统110包含分界电压(电压分界(VDM))选择器113,所述选择器可允许存储器子系统110从多个可能的VDM中选择最适合于补偿因漂移所致的不准确读数的VDM。在一些实施例中,存储器子系统控制器115包含VDM选择器113的至少一部分。在一些实施例中,VDM选择器113是主机系统110、应用程序或操作系统的部分。在其它实施例中,本地媒体控制器135包含VDM选择器113的至少一部分,且经配置以执行本文中所描述的功能。
VDM选择器113可从若干可能的VDM中选择VDM(例如,相应值的电压)以补偿来自电压阈值漂移的影响。在一些实施例中,存储器子系统控制器115可通过将值写入到某一寄存器而激活VDM选择器。如果VDM选择器113被解除激活,则存储器子系统控制器115可使用默认VDM值——例如基于存储器子系统110的特性的预编程值。举例来说,可基于存储器单元的电压阈值或存储器单元的速率漂移选择默认VDM。在至少一个实施例中,VDM选择器113可为活动的。在此类实施例中,VDM选择器113可基于自从存储器子系统110的给定SMU处的上一次写入操作以来流逝的时间选择VDM。即,VDM选择器113可基于自从上一次写入操作以来流逝的时间针对给定SMU选择不同VDM。VDM选择器113可存储一或多个阈值时间,每个阈值时间与不同VDM值相关联——例如,第一阈值时间可与第一VDM值相关联。如果存储器子系统113确定流逝的时间未超过(例如,满足)阈值时间,则VDM选择器113可继续校验下一阈值时间,直到流逝的时间满足阈值为止。如果流逝的时间未超过任何时间阈值,则VDM选择器113可选择VDM默认值。
VDM选择器113还可选择VDM以用于恢复操作。举例来说,存储器子系统控制器115可使用VDM来尝试恢复损坏的码字。VDM选择器113可以初始VDM值开始,所述初始VDM值例如为通过上文所描述的方法选择的用于初始地读取存储器单元的电压。如果错误校正操作(ECC)确定与码字相关联的错误的数目仍超过错误阈值(例如,码字仍被损坏),则VDM选择器113可将VDM增大到下一可能值。如果相应选定VDM并未恢复损坏的码字,则VDM选择器113可继续增大VDM,直到最大VDM,例如,可选择存储器单元的最大阈值电压或VDM选择器113的最大VDM。
图2是根据本公开的一些实施例的自主地选择用于存储器子系统的VDM的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法200由图1的VDM选择器113执行。尽管以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,所说明实施例仅应理解为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省去一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流也是可能的。
在操作205处,处理逻辑可从主机系统(例如,主机系统120)接收存储器存取命令。在至少一个实施例中,处理逻辑可接收读取命令或写入命令。在一些实施例中,处理逻辑可接收强制写入命令。在一些实施例中,处理逻辑可在执行命令时使用分界电压(VDM或与读取相关联的电压)。举例来说,处理逻辑可在执行读取操作时使用VDM来确定存储器单元的逻辑状态。举例来说,存储器装置可将VDM施加于存储器单元,且如果特定存储器单元的阈值电压(Vt)被识别为低于所述VDM,则可确定所述存储器单元具有第一逻辑值(‘1’),而如果特定存储器单元的阈值电压被识别为高于所述VDM,则可确定所述存储器单元具有第二逻辑值‘0’。在一些实施例中,作为写入操作或强制写入操作的部分,处理逻辑可执行读回操作。在一些实施例中,处理逻辑可经配置以从若干可能的VDM值中选择VDM值,例如从多个值或从多个预定义VDM值中选择VDM值。
在操作210处,处理逻辑可确定来自主机系统的命令是否指定(例如,包括)施加于存储器单元的VDM的值(例如,量值)。在一些实施例中,主机系统可指定在执行读取操作时使用哪一VDM。在此类实施例中,主机系统可发送在命令的VDM读取启用字段中具有值‘1’的命令。如果主机系统不指定使用哪一VDM,则主机系统可发送在VDM读取启用字段中具有值‘0’的命令。因此,处理逻辑可基于读取‘1’或‘0’而确定命令是否指定VDM值。如果处理逻辑读取值‘1’,则处理逻辑可继续进行到操作215。如果处理逻辑读取值‘0’,则处理逻辑可继续进行到操作220。
在操作215处,处理逻辑可使用命令中指定的值。在一些实施例中,处理逻辑可读取命令的VDM_RD字段中指定的值——例如,处理逻辑可读取命令字段以确定选择哪一VDM值。处理逻辑可随后施加具有命令中指定的值的VDM以确定存储器单元的逻辑状态。在至少一个实施例中,当接收到强制写入命令时,处理逻辑可使用预定值。举例来说,处理逻辑可每当接收到强制写入命令时使用第一值(例如,VDM0),即使强制写入命令不包含VDM值也是如此。
在操作220处,处理逻辑可通过从寄存器读取值而确定是否选择VDM电压。在至少一个实施例中,处理逻辑可从寄存器读取值。寄存器处的值可指示第一配置或第二配置。在至少一个实施例中,处理逻辑可将值存储在寄存器处以指示是否利用阈值准则。举例来说,处理逻辑可存储值‘1’以指示使用阈值准则来选择VDM电压。在至少一个实施例中,处理逻辑可存储值‘0’以指示不使用阈值准则。处理逻辑可基于制造时的设置(例如,基于存储器装置的处理能力或读取时延)将所述值写入到寄存器,或基于主机命令或用户输入将所述值写入到寄存器。处理逻辑可随后在接收到命令之后读取寄存器值以确定处理逻辑是否应使用阈值准则来选择VDM。如果处理逻辑在阈值启用的寄存器处读取值‘1’,则处理逻辑可继续进行到操作230。如果处理逻辑在阈值启用寄存器处读取值‘0’,则处理逻辑可继续进行到操作225。
在操作225处,处理逻辑可选择默认VDM值。在至少一个实施例中,VDM可与默认值或量值相关联。举例来说,处理逻辑可在接收到命令之前设置默认VDM值。可基于存储器单元的电压阈值或存储器单元的速率漂移选择默认值。
在操作230处,处理逻辑可基于阈值准则选择VDM的值。在一些实施例中,处理逻辑可基于自从已相对于给定SMU执行的最近写入操作以来流逝的时间段而选择VDM值。举例来说,存储器单元越久时间未写入,漂移可能发生得越多。因此,处理逻辑可跟踪自从上一次写入操作以来流逝的时间以补偿漂移的影响。在至少一个实施例中,可针对每个SMU跟踪自从写入操作以来流逝的时间段。处理逻辑可在其执行写入时存储写入戳(例如,时间值)。处理逻辑还可跟踪当前时间(例如,当前时间戳、SMU时间戳或第二时间值)。因此,当接收到命令时,处理逻辑可获取当前时间与写入操作发生的时间的差,以确定自从写入操作以来流逝的时间。如果处理逻辑接收到写入命令,则处理逻辑可记录新的写入戳。因此,当在记录新的写入戳之后接收到新命令时,处理逻辑可通过获取当前时间与新的写入戳之间的差而确定流逝的时间。处理逻辑可随后将流逝的时间与若干预编程阈值准则(值)进行比较。可通过存储器单元的电压阈值或存储器单元的速率漂移确定这些值。举例来说,处理逻辑可基于存储器单元的漂移速率确定第一阈值和在已流逝第一时间量时要使用的第一VDM,例如,要使用以补偿第一时间期间可能已发生的漂移的第一VDM。在一些实施例中,处理逻辑可将自从最近写入操作以来的所确定时间段与最高阈值准则进行比较。如果处理逻辑确定流逝的时间段未超过最高阈值,则处理逻辑可移到第二最高阈值,以此类推,直到满足阈值或处理逻辑已用完所有可能的阈值准则为止。如果处理逻辑确实用完可能的阈值准则,则处理逻辑可使用默认VDM。如果处理逻辑确实确定流逝的时间段满足阈值,则处理逻辑可选择对应的VDM值。如果处理逻辑接收到后续命令,则处理逻辑可在所存储的写入戳相同但当前时间不同的情况下选择不同的VDM,例如基于流逝的时间段满足较高阈值而选择VDM的第二值。在一些实施例中,对于读取和写入命令,阈值可不同。举例来说,处理逻辑可存储用于读取命令的第一数目的阈值和用于写入命令的第二数目的阈值。即,用于读取操作的阈值准则可具有与用于写入操作的阈值准则不同的值。
在操作235处,处理逻辑可应用在操作230处选择的值。在一些实施例中,处理逻辑可在SMU或MU处将具有选择的值的VDM施加于存储器单元。如上文所描述,处理逻辑可通过施加具有选定值的VDM来确定存储器单元的逻辑值。
图3是根据本公开的一些实施例的自主地选择VDM以用于存储器子系统处的恢复操作的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法300由图1的VDM选择器113执行。尽管以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,所说明实施例仅应理解为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省去一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流也是可能的。
在操作305处,处理逻辑可接收存储在存储器装置的页处的码字。举例来说,存储器装置可将多个码字写入到页,且处理逻辑可从所述页接收所有码字。
在操作310处,处理逻辑可基于处理逻辑所执行的错误操作而确定从页接收的一或多个码字中是否存在错误或损坏的数据。在至少一个实施例中,存储在页处的码字可归因于阈值漂移、媒体降级或其它电噪声而损坏。因此,当处理逻辑尝试读取码字时,如果存储在码字处的一或多个位翻转,则处理逻辑可确定码字被损坏——例如,错误校正操作揭示一或多个错误。如果处理逻辑确定存在错误,则处理逻辑可继续进行到操作320。如果不存在错误,则处理逻辑可继续进行到操作315。
在操作315处,处理逻辑可产生成功状态。在一些实施例中,如果处理逻辑确定不存在错误,则处理逻辑可产生操作的成功状态——例如通知处理逻辑的组件不存在错误且制止执行额外步骤。
在操作320处,作为对损坏的码字的恢复的部分,处理逻辑可选择待施加于存储器单元的VDM电压的值。在至少一些实施例中,处理逻辑可通过施加不同VDM而恢复相应码字(例如,在第一读取期间错误翻转的位可在第二读取期间基于新VDM翻转回来)。在一些实施例中,处理逻辑可在恢复操作之前施加用于读取操作的相同VDM电压,例如,初始VDM。在一些实施例中,可存在处理逻辑可重复310-330的过程的最大次数(例如,用以恢复码字的操作的阈值数目,或恢复步骤的最大数目)。如果处理逻辑确定仍存在可用的恢复步骤,则处理逻辑可继续重复所述过程——例如,当前恢复步骤不匹配阈值数目。在此类实施例中,处理逻辑可选择不同VDM值。在一些实施例中,通过增大先前VDM值来选择VDM值。举例来说,如果处理逻辑在第一步骤中选择VDM的第一电压值,则处理逻辑可针对第二步骤挑选第二电压值(例如,大于第一电压值)。如果处理逻辑确定恢复步骤已用完,则处理逻辑可产生每个码字的状态。
在操作325处,处理逻辑可施加具有在操作320处选择的值的VDM。因此,处理逻辑可确定存储码字的存储器单元的逻辑值。在一些实施例中,应用不同VDM值可使得处理逻辑能够减少码字中的错误——例如,增大VDM值可使得位能够恢复回到其原始值。
在操作330处,处理逻辑可在利用选定的VDM执行读取操作之后执行错误校正操作(ECC)。处理逻辑可确定码字中的错误的数目(或具有错误的码字的数目)是否在所选的相应VDM值下减小。当不满足恢复步骤(例如,恢复操作)的最大数目时,处理逻辑可继续进行以重复操作310-330。
图4是根据本公开的一些实施例的自主地选择用于存储器子系统的VDM的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的VDM选择器113执行。尽管以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,所说明实施例仅应理解为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省去一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流也是可能的。
在操作405处,存储器子系统控制器(例如,存储器子系统控制器115)可从主机系统(例如,主机系统120)接收命令。在至少一个实施例中,接收到的命令可以是读取命令、写入命令或强制写入命令。
在操作410处,存储器子系统控制器可确定接收到的命令是否是强制写入命令在至少一个实施例中,存储器子系统控制器可通过读取命令的命令字段而确定接收到的命令是否是强制写入命令。如果存储器子系统控制器确定命令是强制写入命令,则存储器子系统控制器可继续进行到操作415。如果存储器子系统控制器确定命令不是强制写入命令,则存储器子系统控制器可继续进行到操作420。
在操作410处,存储器子系统控制器可施加具有第一值的VDM(例如,具有第一量值或VDM0的电压)。在至少一个实施例中,每当接收到强制写入命令时,存储器子系统控制器可施加第一VDM。即,当执行写回操作时,存储器子系统控制器可在读取存储于存储器单元处的逻辑值时使用第一VDM。
在操作420处,存储器子系统控制器可确定接收到的命令是否指定要使用的VDM值。在至少一个实施例中,存储器子系统控制器可读取命令的VDM读取启用字段。如果存储器子系统控制器确定命令的读取启用字段存储‘1’,则存储器子系统控制器可继续进行到操作425——例如,确定命令指定VDM值。如果存储器子系统控制器确定命令的读取启用字段存储‘0’,则存储器子系统控制器可继续进行到操作430——例如,确定命令未指定VDM值。
在操作425处,存储器子系统控制器可选择命令中指定的VDM值。举例来说,存储器子系统控制器可基于确定命令在读取启用字段中存储‘1’而读取命令中指定的值。在至少一个实施例中,存储器子系统控制器可将命令中指定的值与存储在存储器子系统控制器的寄存器处的VDM最大值和VDM最小值进行比较。在一些实施例中,VDM最大值和VDM最小值可与存储器子系统的存储器单元的最大和最小操作阈值相关联——例如,存储器单元可在大于VDM最大值电压或小于VDM最小值电压的电压下失效。因此,存储器子系统控制器可利用VDM最大值和VDM最小值来校验每个选定VDM值,包含命令中指定的VDM。如果选定的VDM值高于VDM最大值,则存储器子系统控制器可选择VDM最大值以应用于存储器单元。如果VDM值低于VDM最小值,则存储器子系统控制器可选择VDM最小值以应用于存储器单元。
在操作430处,存储器子系统控制器可确定启用VDM选择。在至少一个实施例中,存储器子系统控制器可将值(例如,启用的读取或写入阈值)存储在寄存器处。在至少一个实施例中,存储器子系统控制器可在寄存器处存储‘1’以启用VDM选择。在一些实施例中,存储器子系统控制器可在寄存器处存储值‘0’以停用VDM选择。在一些实施例中,存储器子系统控制器是启用还是停用VDM选择可取决于存储器单元的电压漂移速率、存储器装置的读取时延或由存储器系统的用户或主机系统选择的偏好。在接收到命令之后,如果存储器子系统控制器在寄存器处读取到值‘0’,则存储器子系统控制器可继续进行到操作435。如果存储器子系统控制器在寄存器处读取到值‘1’,则存储器子系统控制器可继续进行到操作440。
在操作435处,存储器子系统控制器可选择默认VDM值。在至少一个实施例中,默认VDM值可取决于存储器单元的最大阈值电压或存储器单元的阈值漂移速率。举例来说,如果阈值漂移速率高,则存储器子系统控制器可选择相对高的阈值电压——例如,较高VDM值可帮助补偿较高阈值漂移速率。在一些实例中,默认VDM值可以是在本文所描述的其它操作中由存储器子系统控制器使用的第一VDM、第二VDM、第三VDM或第四VDM。
在操作440处,存储器子系统控制器可确定是否满足第一阈值准则。在至少一个实施例中,存储器子系统控制器可基于预定阈值和自从给定SMU处的最近写入操作以来流逝的时间段而选择VDM值。即,存储器子系统控制器可基于何时在相应SMU处执行前一写入操作而针对不同SMU选择不同VDM值。在至少一个实施例中,存储器子系统控制器可从基于存储器单元的最大阈值或阈值漂移速率的阈值准则进行选择。举例来说,存储器子系统控制器可将高阈值用于高VDM,因为自从写入操作以来流逝更多时间,且相比于经过较少时间的情况,漂移更显著。类似地,存储器子系统控制器可从处于VDM最大值与VDM最小值之间的VDM值进行选择。在至少一个实例中,每个VDM阈值存储在一或多个寄存器处——例如,每个VDM阈值在一个寄存器中或每个VDM阈值在不同寄存器中。存储器子系统控制器可将存储在寄存器处的阈值准则与自从最近写入操作以来的时间段进行比较。如参考图2所描述,当在相应SMU处执行写入操作时,存储器子系统控制器可通过存储写入戳而确定流逝的时间段。存储器子系统控制器还可跟踪当前时间(例如,当前时间戳或SMU时间戳)且通过获取当前时间与写入戳的时间之间的差确定流逝的时间。存储器子系统控制器可随后将流逝的时间段与第一阈值进行比较。在一些实施例中,第一阈值可以是最高阈值,例如,与流逝的最长时间段相关联的阈值。如果存储器子系统控制器确定自从上一次写入操作以来流逝的时间大于或等于第一阈值,则存储器子系统控制器可继续进行到操作445且选择第二VDM值(例如,VDM3)。如果存储器子系统控制器确定流逝的时间小于第一阈值,则存储器子系统控制器可继续进行到操作450。
在操作450处,存储器子系统控制器可确定是否满足第二阈值。在至少一个实施例中,存储器子系统控制器可将自从最近写入操作以来流逝的所确定时间段与第二阈值准则进行比较。在至少一个实施例中,第二阈值小于第一阈值——例如,自从写入操作以来流逝的时间较少。在至少一个实施例中,如果存储器子系统控制器确定自从上一次写入操作以来流逝的时间大于或等于第二阈值,则存储器子系统控制器可继续进行到操作455且选择第三VDM值(例如,VDM2)。在至少一个实施例中,第三VDM小于第二VDM,例如,因为较少时间已流逝,所以VDM的量值不大。如果存储器子系统控制器确定流逝的时间段小于第二阈值,则存储器子系统控制器可继续进行到操作460。
在操作460处,存储器子系统控制器可确定是否满足第三阈值。在至少一个实施例中,存储器子系统控制器可将自从上一次写入操作以来流逝的所确定时间与第三阈值准则进行比较。在至少一个实施例中,第三阈值小于第一阈值和第二阈值——例如,自从最近写入操作以来流逝的时间较少。在至少一个实施例中,如果存储器子系统控制器确定自从上一次写入操作以来流逝的时间大于或等于第三阈值,则存储器子系统控制器可继续进行到操作465且选择第四VDM值(例如,VDM1)。在至少一个实施例中,第一VDM小于第二和第三VDM,例如,因为较少时间已流逝,所以VDM的量值不大。如果存储器子系统控制器确定流逝的时间小于第二阈值,则存储器子系统控制器可继续进行到操作470。
在操作470处,存储器子系统控制器可选择默认VDM值。即,存储器子系统可遍历每个存储的阈值准则。如果存储器子系统控制器用完所存储的所有阈值,则存储器子系统控制器可使用默认值来确定存储器单元的逻辑。
图5是根据本公开的一些实施例的自主地选择用于存储器子系统的VDM的实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的VDM选择器113执行。尽管以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,所说明实施例仅应理解为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省去一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流也是可能的。
在操作505处,存储器子系统控制器可确定是否设置码字独立磁盘冗余阵列(raid)启用。在至少一个实施例中,存储器子系统控制器可尝试恢复损坏的码字。在此类实施例中,存储器子系统控制器可读取损坏的码字且尝试将其恢复。在一些实施例中,存储器子系统控制器可读取与页中的所有码字相关联的所有非损坏码字和冗余元数据(例如,奇偶校验位或XOR位)以重构(例如,确定哪些位已反转)码字。即,存储器子系统控制器可读取所有非损坏码字且利用XOR进行比较以确定损坏的码字中的错误在何处。此类操作可称为独立磁盘冗余阵列。因此,如果存储器子系统控制器确定设置了独立磁盘冗余阵列码字读取启用(例如,存储值的寄存器为‘1’),则存储器子系统控制器可继续进行到操作515。如果存储器子系统控制器确定未设置独立磁盘冗余阵列码字读取启用(例如,寄存器存储值‘0’),则存储器子系统控制器可继续进行到操作510。
在操作510处,存储器子系统控制器可利用初始VDM读取所有码字。在至少一个实施例中,当未设置独立磁盘冗余阵列码字读取启用时,存储器子系统控制器可制止读取与页的所有码字相关联的冗余元数据(例如,奇偶校验位或XOR值)。因此,存储器子系统控制器可在初始VDM下读取损坏的码字。在至少一个实施例中,初始VDM可以是存储器子系统控制器执行上一次读取操作的VDM,例如,结合参考图4所描述的操作405-470所选择的上一次电压。
在操作515处,存储器子系统控制器可利用初始VDM读取所有码字(包含非损坏码字和奇偶校验位)。在至少一个实施例中,当设置了独立磁盘冗余阵列码字读取启用时,存储器子系统控制器可读取奇偶校验位。因此,存储器子系统控制器可在初始VDM下读取所有码字。在至少一个实施例中,初始VDM可以是存储器子系统控制器执行上一次读取操作的VDM,例如,结合参考图4所描述的操作405-470所选择的上一次电压。
在操作520处,存储器子系统控制器可确定是否已接收到所有码字。在至少一个实施例中,如果存储器子系统控制器确定已接收到所有码字(例如,存储在给定页处的所有数据),则存储器子系统控制器可继续进行到操作525。如果存储器子系统控制器确定尚未接收到所有码字,则存储器子系统控制器可等待直到接收到所有码字为止——例如,循环回到操作520的开始。
在操作525处,存储器子系统控制器确定接下来是否是恢复步骤。在至少一个实施例中,在初始VDM下读取码字之后,存储器子系统控制器可确定初始VDM下在一或多个码字中存在错误——例如,在VDM下读取数据之后的错误操作可展示一或多个位翻转的逻辑值。在此类实施例中,存储器子系统控制器可继续进行到操作545。在一些实施例中,存储器子系统控制器可确定没有错误或将不执行额外操作,之后尝试恢复码字。在此类实施例中,存储器子系统控制器可继续进行到操作530。
在操作530处,存储器子系统控制器可确定在尝试恢复一或多个损坏的码字之前是否将执行额外步骤。在至少一个实施例中,存储器子系统控制器可通过将位翻转的数目(例如,位翻转计数(BFC))或从逻辑‘0’变到逻辑‘1’的位数目(例如,ZO计数)与阈值进行比较来确定是否要执行额外步骤。在至少一个实施例中,位翻转计数可展示翻转逻辑值(例如,从‘1’到‘0’或从‘0’到‘1’)的位数目。存储器子系统控制器可将BFC与存储器子系统在存储器系统遭遇性能下降之前可容许的翻转位阈值数目进行比较。在至少一个实施例中,存储器子系统控制器可将ZO阈值与存储器系统可容许的从‘0’变到‘1’的位阈值数目进行比较。如果BFC或ZO计数超过或匹配BFC阈值或ZO阈值,则存储器子系统控制器可继续进行到操作585。如果存储器子系统控制器ZO计数或BFC计数小于相应阈值,则存储器子系统控制器可确定损坏的码字的数目。如果存储器子系统控制器确定零(0)个码字被损坏,则存储器子系统控制器可继续进行到步骤535。如果存储器子系统控制器确定存在两个或更多个损坏的码字,则存储器子系统控制器可继续进行到步骤585。如果存储器子系统控制器确定存在一(1)个损坏的码字,则存储器子系统控制器可确定在此步骤处是否启用独立磁盘冗余阵列。如果启用独立磁盘冗余阵列,则存储器系统可应用独立磁盘冗余阵列且继续进行到操作535,或确定独立磁盘冗余阵列码字(例如,奇偶校验位)不可校正且继续进行到操作535。
在操作535处,存储器子系统控制器可产生指示恢复操作的成功的状态。在产生成功状态之后,存储器子系统控制器可继续进行到操作540。
在操作540处,存储器子系统控制器可完成恢复操作。在一个实施例中,存储器子系统控制器可通过收集每个码字的状态来完成操作。如果满足错误阈值,则存储器子系统控制器可触发对主机系统的平和中断。即,如果码字中的错误的数目或损坏的码字的数目大于错误阈值(之后存储器子系统不可操作或具有过多错误的错误数目),则存储器子系统控制器可通知主机系统停止操作且修复损坏的码字。在至少一个实施例中,存储器子系统控制器可确定是否要将数据写回。如果存储器子系统控制器确定要将数据写回,则存储器子系统控制器可选择VDM值,从存储器装置读取数据,且将数据写回。在至少一个实施例中,存储器子系统控制器可基于ZO计数或BFC计数选择VDM值。在此类实施例中,存储器子系统控制器可将不同阈值存储在寄存器处。例如,在类似于参考图4描述的方法的方法中,如果计数超过相应阈值,则存储器子系统控制器可选择与最高阈值相关联的VDM值。即,如果BFC计数或ZO计数较高,则存储器子系统控制器可选择较高VDM,因为可能发生更多漂移。存储器子系统控制器可保持存储器子系统,直到写回操作完成为止。如果存储器子系统控制器确定不要执行写回,则存储器子系统控制器可结束操作。
在操作585处,存储器子系统控制器可完成额外步骤,之后实施恢复。在至少一个实施例中,存储器子系统控制器可在尝试恢复一或多个损坏的码字之前调度读取。举例来说,存储器子系统控制器可调度具有大于阈值的ZO计数或BFC计数的所有码字的读取。在实施例中,存储器子系统控制器可在一或多个码字被破坏时针对具有ECC故障的所有码字调度读取——例如当对于参考操作530所描述的步骤未启用独立磁盘冗余阵列时针对一个码字调度读取。
在操作545处,存储器子系统控制器可确定是否已用完一定数目的恢复步骤——例如,已尝试阈值数目的恢复步骤。在至少一个实施例中,恢复步骤的数目可基于存储器子系统控制器可选择的可能的VDM值的数目。即,在一些实施例中,每个恢复步骤包含施加不同VDM电压,且存储器子系统控制器可继续执行额外恢复步骤直到施加所有可能的VDM为止。如上文所描述,存储器子系统控制器可利用VDM最大值和VDM最小值以确保在恢复步骤期间所施加的VDM不大于或小于用于存储器单元的可操作电压。如果存储器子系统控制器确定所有恢复步骤用完,则存储器子系统控制器可继续进行到操作587。如果存储器子系统控制器确定可能有额外的恢复步骤,则存储器子系统控制器可继续进行到操作550。
在550处,存储器子系统控制器可增大步骤计数以跟踪所执行的恢复步骤的数目。举例来说,每当执行恢复步骤时,存储器子系统控制器可将计数增大一(1)。因此,当恢复步骤数目与可能的恢复步骤的数目相同时,存储器子系统控制器可确定恢复步骤用完。
在操作555处,存储器子系统控制器可在存储器装置处调度读取。在至少一个实施例中,存储器子系统控制器可调度损坏的码字的读取以尝试恢复损坏的码字。在一些实施例中,存储器子系统控制器可调度未损坏码字和独立磁盘冗余阵列码字的读取以尝试恢复损坏的码字。在调度读取之后,存储器子系统控制器可继续进行到操作560。
在操作560处,存储器子系统控制器可确定读取是否已被调度。如果存储器子系统控制器确定读取被调度,则存储器子系统控制器可继续进行到操作565。如果存储器子系统控制器确定读取未被调度(例如,需要额外读取),则存储器子系统控制器可返回到操作525。
在操作565处,存储器子系统控制器可基于前一VDM(例如,初始VDM或前一恢复步骤中利用的VDM)选择VDM值。在至少一个实施例中,每当执行恢复步骤时,存储器子系统控制器可增大VDM的值——例如,当从第一恢复步骤变到第二恢复步骤时,增大到较高VDM。在至少一个实施例中,所述增大可称作偏移。如果偏移为一(1)(例如,在初始恢复步骤之后的恢复步骤),则存储器子系统控制器可将VDM从初始VDM增大到后续第二VDM。如果偏移为二(2),例如,偏移一(1)恢复步骤之后的恢复步骤,则存储器子系统控制器可将VDM从初始值增大到第二VDM之后的VDM,以此类推。因此,存储器子系统控制器可在每个恢复步骤增大VDM且尝试减少漂移影响——例如,较高VDM可减少不准确的读数。在至少一个实施例中,存储器子系统控制器可结合VDM最大值校验选定VDM,以确保选定VDM不超过存储器单元的可操作阈值。如果存储器子系统控制器确定选定的VDM确实超过VDM最大值,则存储器子系统控制器可改为施加最大VDM。举例来说,如果存储器子系统控制器具有初始VDM,所述初始VDM具有最高可能值(例如,VDM3),则存储器子系统控制器可在后续恢复步骤中放弃增大VDM值。
在操作570处,存储器子系统控制器可针对已读取的每个码字执行ECC操作。在一些实施例中,存储器子系统控制器可对码字执行CRC校验。在至少一个实施例中,存储器子系统控制器可在存储器装置的每个通道的每个码字处执行错误操作。在至少一个实施例中,存储器子系统控制器可使用错误校正来确定不同VDM是否减少了错误的数目。
在操作575处,存储器子系统控制器可将所有所请求的码字存储在缓冲器(例如,LBUFF)中。在至少一个实施例中,存储器子系统控制器可基于独立磁盘冗余阵列启用关闭而将所有损坏的码字存储在缓冲器中。在另一实施例中,存储器子系统控制器可在启用独立磁盘冗余阵列时存储所有码字(包含独立磁盘冗余阵列码字/奇偶校验位)。
在操作580处,存储器子系统控制器可将所请求的每个码字的响应状态发送到媒体管理器。
在操作587处,存储器子系统控制器可产生所请求的码字的错误状态——例如,存在多少错误、损坏的码字的数目、恢复的成功等。
在操作590处,存储器子系统控制器可完成参考操作540所描述的错误校正操作——例如,在错误数目超过阈值的情况下触发事件中断。
图6说明计算机系统600的实例机器,在所述计算机系统内可执行一组指令,以用于使所述机器执行本文中所论述的任何一或多个方法。在一些实施例中,计算机系统600可对应于包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)的主机系统(例如,图1的主机系统120),或可用于执行控制器的操作(例如,运行操作系统以执行与图1的用以选择VDM的VDM选择器113相对应的操作)。在替代实施例中,所述机器可连接(例如联网)到LAN、内联网、外联网和/或互联网中的其它机器。所述机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的能力进行操作。
所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥,或能够(顺序或以其它方式)执行指定待由所述机器采取的动作的一组指令的任何机器。此外,尽管说明了单个机器,但还应认为术语“机器”包含分别或共同地执行一组(或多组)指令以执行本文所论述的任何一或多个方法的任何机器集合。
实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或RDRAM等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统618,它们经由总线630彼此通信。
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602还可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置602经配置以执行指令626以用于执行本文所论述的操作和步骤。计算机系统600还可包含网络接口装置608以通过网络620通信。
数据存储系统618可包含机器可读存储媒体624(也称为计算机可读媒体),其上存储有体现本文所描述的任何一或多个方法或功能的一或多组指令626或软件。指令626还可在其由计算机系统600执行的期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。
在一个实施例中,指令626包含用以实施对应于VDM选择器113(例如,图1的VDM选择器113)的功能的指令,以限制在处理装置602处接收到的命令。尽管在实例实施例中将机器可读存储媒体624展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一组或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行且使机器执行本公开的任何一或多个方法的一组指令的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域中的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在此处以及通常被认为是产生所要结果的操作的自洽序列。所述操作是要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。已证明主要出于通用的原因将这些信号称为位、值、元素、符号、字符、项、数字等有时是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可指计算机系统或类似电子计算装置的动作和过程,其操控且将计算机系统的寄存器和存储器内表示为物理(电子)量的数据变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
本公开还涉及用于执行本文中的操作的设备。此设备可出于既定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合存储电子指令的任何类型的媒体,各个媒体耦合到计算机系统总线。
本文中呈现的算法和显示在本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构建更专用设备以执行所述方法是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施本文中所描述的本公开的教示。
本公开可提供为可包含上面存储有指令的机器可读媒体的计算机程序产品或软件,所述指令可用以编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和附图。
Claims (20)
1.一种系统,其包括:
存储器装置;以及
处理装置,其以操作方式与所述存储器装置耦合以执行包括以下的操作:
接收关于所述存储器装置的一组存储器单元的存储器存取命令;
确定所述存储器存取命令是否指定电压分界(VDM)值;
响应于确定所述存储器存取命令未指定所述VDM值,基于自从相对于所述一组存储器单元执行最近写入操作以来流逝的时间段而从多个预定义VDM值中选择所述VDM值;以及
利用所述VDM值用于执行由所述存储器存取命令指定的存储器存取操作。
2.根据权利要求1所述的系统,其中所述处理装置将执行进一步包括以下的操作:
响应于所述存储器存取命令指定VDM值,选择所述命令中指定的所述VDM值;以及
利用所述指定VDM值用于执行由所述存储器存取命令指定的存储器存取操作。
3.根据权利要求1所述的系统,其中所述处理装置将执行进一步包括以下的操作:
确定寄存器是存储第一配置还是第二配置,其中响应于确定所述寄存器存储所述第一配置而从所述多个预定义VDM值中选择所述VDM值。
4.根据权利要求3所述的系统,其中所述处理装置将执行进一步包括以下的操作:
响应于确定所述寄存器存储所述第二配置,从所述多个预定义VDM值中选择第二VDM值,其中所述第三VDM值与默认VDM值相关联。
5.根据权利要求1所述的系统,其中为确定自从所述最近写入操作以来流逝的时间,所述处理装置将执行进一步包括以下的操作:
在所述存储器装置处存储与执行所述前一写入操作相关联的第一时间值;以及
通过获取第二时间值与第一时间之间的差计算持续时间,所述第二时间值与计算所述持续时间的开始处的时间相关联。
6.根据权利要求5所述的系统,其中所述处理装置将执行进一步包括以下的操作:
接收第二存储器存取命令以执行写入操作;
存储与执行对应于第二命令的所述写入操作相关联的第三时间值;以及
通过获得第四时间值与第三时间之间的差而计算第二持续时间,所述第四时间值与计算所述第二持续时间的开始处的时间相关联。
7.根据权利要求1所述的系统,其中所述处理装置将执行进一步包括以下的操作:
接收第二存储器存取命令;
确定所述第二存储器存取命令是否指定VDM;
响应于确定所述存储器存取命令未指定所述VDM值,基于自从相对于所述一组存储器单元执行所述最近写入操作以来流逝的第二时间段而从所述多个预定义VDM值中选择第二VDM值;以及
利用所述第二VDM值用于执行由所述存储器存取命令指定的存储器存取操作。
8.根据权利要求1所述的系统,其中所述存储器存取命令是读取命令或写入命令。
9.一种方法,其包括:
接收关于存储器装置的一组存储器单元的存储器存取命令;
确定所述存储器存取命令是否指定电压分界(VDM)值;
响应于确定所述存储器存取命令未指定所述VDM值,基于自从相对于所述一组存储器单元执行最近写入操作以来流逝的时间段而从多个预定义VDM值中选择所述VDM值;以及
利用所述VDM值用于执行由所述存储器存取命令指定的存储器存取操作。
10.根据权利要求9所述的方法,其进一步包括:
响应于所述存储器存取命令指定VDM值,选择所述命令中指定的所述VDM值;以及
利用所述指定VDM值用于执行由所述存储器存取命令指定的存储器存取操作。
11.根据权利要求9所述的方法,其进一步包括:
确定寄存器是存储第一配置还是第二配置,其中响应于确定所述寄存器存储所述第一配置而从所述多个预定义VDM值中选择所述VDM值。
12.根据权利要求11所述的方法,其进一步包括:
响应于确定所述寄存器存储所述第二配置,从所述多个预定义VDM值中选择第二VDM值,其中所述第三VDM值与默认VDM值相关联。
13.根据权利要求9所述的方法,其中为确定前一写入操作之后的持续时间,所述方法进一步包括:
在所述存储器装置处存储与执行所述前一写入操作相关联的第一时间值;以及
通过获取第二时间值与第一时间之间的差计算所述持续时间,所述第二时间值与计算所述持续时间的开始处的时间相关联。
14.根据权利要求13所述的方法,其进一步包括:
接收第二存储器存取命令以执行写入操作;
存储与执行对应于第二命令的所述写入操作相关联的第三时间值;以及
通过获得第四时间值与第三时间之间的差而计算第二持续时间,所述第四时间值与计算所述第二持续时间的开始处的时间相关联。
15.根据权利要求9所述的方法,其进一步包括:
接收第二存储器存取命令;
确定所述第二存储器存取命令是否指定VDM;
响应于确定所述存储器存取命令未指定所述VDM值,基于自从相对于所述一组存储器单元执行所述最近写入操作以来流逝的第二时间段而从所述多个预定义VDM值中选择第二VDM值;以及
利用所述第二VDM值用于执行由所述存储器存取命令指定的存储器存取操作。
16.根据权利要求1所述的方法,其中所述命令读取命令或写入命令。
17.一种系统,其包括:
存储器装置;
处理装置,其以操作方式与所述存储器装置耦合以执行包括以下的操作:
接收多个码字;
确定所述多个码字中的一或多个码字被损坏;
选择与读取所述一或多个码字相关联的电压的值,所述值至少部分地基于与在前一读取操作中读取所述一或多个码字相关联的电压的第二值;以及
至少部分地基于选择所述值而将具有所述值的所述电压施加到存储损坏的所述一或多个码字的存储器单元。
18.根据权利要求17所述的系统,其中所述处理装置将执行进一步包括以下的操作:
至少部分地基于施加具有所述值的所述电压而对所述一或多个码字执行错误校正操作。
19.根据权利要求17所述的系统,其中所述处理装置将执行进一步包括以下的操作:
确定用以恢复损坏的所述一或多个码字的操作的阈值数目是否得到满足;且
响应于确定操作的所述阈值数目未被满足,选择与读取所述一或多个码字相关联的所述电压的第二值,所述第二值从所述值递增;以及
将具有所述第二值的所述电压施加到存储损坏的所述一或多个码字的存储器单元。
20.根据权利要求19所述的系统,其中所述处理装置将执行进一步包括以下的操作:
响应于确定操作的所述阈值数目得到满足,产生所述多个码字中的每个码字的错误状态。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/463,274 | 2021-08-31 | ||
US17/463,274 US11798614B2 (en) | 2021-08-31 | 2021-08-31 | Automated voltage demarcation (VDM) adjustment for memory device |
PCT/US2022/042080 WO2023034330A1 (en) | 2021-08-31 | 2022-08-30 | Automated vdm adjustment for memory device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117882045A true CN117882045A (zh) | 2024-04-12 |
Family
ID=85287210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280058349.3A Pending CN117882045A (zh) | 2021-08-31 | 2022-08-30 | 用于存储器装置的自动vdm调整 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11798614B2 (zh) |
CN (1) | CN117882045A (zh) |
WO (1) | WO2023034330A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7251160B2 (en) | 2005-03-16 | 2007-07-31 | Sandisk Corporation | Non-volatile memory and method with power-saving read and program-verify operations |
JP5867264B2 (ja) | 2012-04-24 | 2016-02-24 | ソニー株式会社 | 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法 |
KR101629184B1 (ko) * | 2014-12-10 | 2016-06-13 | 현대오트론 주식회사 | Autosar 플랫폼에서의 eeprom 처리속도 향상을 위한 주기함수 호출 방법 |
US10310989B2 (en) | 2017-09-29 | 2019-06-04 | Intel Corporation | Time tracking with patrol scrub |
US10679698B2 (en) | 2018-03-28 | 2020-06-09 | Intel Corporation | Memory preset adjustment based on adaptive calibration |
US10937499B2 (en) | 2019-04-12 | 2021-03-02 | Micron Technology, Inc. | Content addressable memory systems with content addressable memory buffers |
-
2021
- 2021-08-31 US US17/463,274 patent/US11798614B2/en active Active
-
2022
- 2022-08-30 WO PCT/US2022/042080 patent/WO2023034330A1/en active Application Filing
- 2022-08-30 CN CN202280058349.3A patent/CN117882045A/zh active Pending
-
2023
- 2023-09-05 US US18/242,155 patent/US20230410878A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11798614B2 (en) | 2023-10-24 |
US20230410878A1 (en) | 2023-12-21 |
US20230069439A1 (en) | 2023-03-02 |
WO2023034330A1 (en) | 2023-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11544144B2 (en) | Read recovery control circuitry | |
CN113366449A (zh) | 基于存储器子系统的损耗的错误校正码改变 | |
WO2021011416A1 (en) | Read voltage management based on write-to-read time difference | |
US20240086282A1 (en) | Multi-layer code rate architecture for copyback between partitions with different code rates | |
US20240020025A1 (en) | Managing a hybrid error recovery process in a memory sub-system | |
US11996860B2 (en) | Scaled bit flip thresholds across columns for irregular low density parity check decoding | |
US11586502B2 (en) | Performance and deadlock mitigation during a memory die fail storm | |
CN117957519A (zh) | 管理存储器子系统中的存储器单元的写入干扰 | |
US11830545B2 (en) | Data programming techniques to store multiple bits of data per memory cell with high reliability | |
US11798614B2 (en) | Automated voltage demarcation (VDM) adjustment for memory device | |
US11556417B1 (en) | Reduction of errors in data retrieved from a memory device to apply an error correction code of a predetermined code rate | |
US20230317195A1 (en) | Error Correction in a Memory Device having an Error Correction Code of a Predetermined Code Rate | |
US11775381B2 (en) | Redundancy metadata schemes for RAIN protection of large codewords | |
US11842787B2 (en) | Error read flow component | |
US11928353B2 (en) | Multi-page parity data storage in a memory device | |
US11656938B2 (en) | Preemptive read verification after hardware write back | |
US11625295B2 (en) | Operating memory device in performance mode | |
US11709601B2 (en) | Redundancy metadata for multi-plane memory access failure | |
US20240062835A1 (en) | Adaptive integrity scan rates in a memory sub-system based on block health metrics | |
US20230395152A1 (en) | Memory cell voltage level selection | |
WO2021003190A1 (en) | Changing of memory components to be used for a stripe based on an endurance condition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |