CN115938447A - 用于编程重新排序以减轻编程干扰的存储系统和方法 - Google Patents

用于编程重新排序以减轻编程干扰的存储系统和方法 Download PDF

Info

Publication number
CN115938447A
CN115938447A CN202210542560.4A CN202210542560A CN115938447A CN 115938447 A CN115938447 A CN 115938447A CN 202210542560 A CN202210542560 A CN 202210542560A CN 115938447 A CN115938447 A CN 115938447A
Authority
CN
China
Prior art keywords
memory
string
strings
controller
program
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
CN202210542560.4A
Other languages
English (en)
Inventor
D·J·林恩
P·苏贝迪
K·A·库卡迪
M·穆林
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 CN115938447A publication Critical patent/CN115938447A/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/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
    • 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
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5671Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge trapping in an insulator
    • 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/08Address circuits; Decoders; Word-line control circuits
    • 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
    • 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
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5648Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant

Landscapes

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

Abstract

一种存储系统具有组织成字线的存储器。每一字线具有数个串。所述存储系统中的控制器在所述字线中的每一个中改变所述串中的哪一个为最后编程的串。这样做可在所述存储器中的三层级单元用作伪多层级单元时中断屏蔽编程干扰错误。通过中断屏蔽所述编程干扰错误,所述控制器可检测并校正所述错误。

Description

用于编程重新排序以减轻编程干扰的存储系统和方法
背景技术
存储系统可用于存储来自主机的数据。存储系统的存储器可组织在多个存储器单元块中,其中每一块包括多个字线。每一字线可组织在多个编程区段或串中。在编程存储器时可能出现的一个问题是在已编程其它存储器单元之后,可能在某些存储器单元中产生错误。这称为“编程干扰”。当字线中的其它串被编程时,可导致给定串中的干扰。
附图说明
图1A为实施例的非易失性存储系统的框图。
图1B为示出实施例的存储模块的框图。
图1C为示出实施例的阶层式存储系统的框图。
图2A为示出根据实施例的示出于图1A中的非易失性存储系统的控制器的组件的框图。
图2B为示出根据实施例的示出于图1A中的非易失性存储系统的组件的框图。
图3为实施例的主机和存储系统的框图。
图4为实施例的编程干扰效应的图示。
图5为实施例的可能性分布的图示。
图6为实施例的编程重新排序方法的图示。
图7为跨编程擦除周期变化的实施例的编程重新排序方法的图示。
图8为跨存储器裸片变化的实施例的编程重新排序方法的图示。
图9为字线的第一串始终首先被编程的实施例的编程重新排序方法的图示。
图10为用于编程重新排序以减轻编程干扰的实施例的方法的流程图。
具体实施方式
以下实施例大体上涉及一种用于编程重新排序以减轻编程干扰的存储系统和方法。在一个实施例中,展示一种包括存储器的存储系统,所述存储器包括多个字线,其中每一字线包括多个串。存储系统还包括控制器,其配置成在多个字线中的每一个中改变多个串中的哪一个为最后编程的串。在另一实施例中,提供一种方法,其包括:将零分配到编程串计数;计算当前串和字线;将数据编程到当前串和字线中;使编程串计数递增;和计算待编程的新当前串和字线,使得至少一个串的编程次序在字线之间变化。在又另一实施例中,提供一种存储系统,其包括:存储器,其包括多个字线,其中每一字线包括多个串;和用于在多个字线中的每一个中改变多个串中的哪一个为最后编程的串的构件。存储器可包括配置成每单元存储X数量个位的存储器单元,其中X为正整数,且在存储器单元用于每单元存储少于X数量个位时中断屏蔽编程干扰错误。改变多个串中的哪一个为最后编程的串允许校正编程干扰。提供其它实施例,且这些实施例中的每一个可单独或组合使用。
现在转向图式,适合用于实施这些实施例的方面的存储系统绘示于图1A至图1C中。图1A为示出根据本文中所描述的主题的实施例的非易失性存储系统100(有时在本文中称为存储装置或仅装置)的框图。参考图1A,非易失性存储系统100包含控制器102和非易失性存储器,所述非易失性存储器可由一或多个非易失性存储器裸片104组成。如本文中所使用,术语“裸片”指代形成在单个半导体衬底上的非易失性存储器单元的集合,和用于管理那些非易失性存储器单元的物理操作的相关联电路。控制器102与主机系统介接,且将用于读取、编程和擦除操作的命令序列传输到非易失性存储器裸片104。
控制器102(其可为非易失性存储器控制器(例如,快闪、电阻式随机存取存储器(ReRAM)、相变存储器(PCM)或磁阻随机存取存储器(MRAM)控制器))可采用以下形式:处理电路、微处理器或处理器和存储计算机可读程序代码(例如,固件)的计算机可读媒体,所述计算机可读程序代码可由例如(微)处理器、逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器和嵌入式微控制器执行。控制器102可配置有硬件和/或固件以执行下文描述和流程图中绘示的各种功能。此外,绘示为在控制器内部的一些组件也可存储在控制器外部,且可使用其它组件。另外,短语“操作性地与……通信”可意指与……直接通信,或通过本文中可或可未绘示或描述的一或多个组件与……间接(有线或无线)通信。
如本文中所使用,非易失性存储器控制器为管理存储在非易失性存储器上的数据且与例如计算机或电子装置等主机通信的装置。非易失性存储器控制器除本文中所描述的特定功能外还可具有各种功能。举例来说,非易失性存储器控制器可格式化非易失性存储器以确保存储器恰当地操作,映射出不良非易失性存储器单元,且分配备用单元来替代未来的故障单元。备用单元的某一部分可用以保存固件来操作非易失性存储器控制器和实施其它特征。在操作中,当主机需要从非易失性存储器读取数据或将数据写入到非易失性存储器时,所述主机可与非易失性存储器控制器通信。如果主机提供待读取/写入数据的逻辑地址,那么非易失性存储器控制器可将从主机接收到的逻辑地址转换成非易失性存储器中的物理地址。(替代地,主机可提供物理地址。)非易失性存储器控制器还可执行各种存储器管理功能,例如但不限于耗损均衡(分布写入以避免耗损原本将会被重复地写入到的特定存储器单元块)和垃圾收集(在块已填满之后,仅将有效数据页移动到新块,如此已填满的块可被擦除和再使用)。此外,权利要求书中所叙述的“构件”的结构可包含例如本文中所描述的控制器的结构中的一些或全部,所述结构视需要编程或制造以使得控制器进行操作以执行所叙述功能。
非易失性存储器裸片104可包含任何合适的非易失性存储媒体,包含ReRAM、MRAM、PCM、NAND快闪存储器单元和/或NOR快闪存储器单元。存储器单元可采用固态(例如,快闪)存储器单元的形式,且可为可一次编程、可少次编程或可多次编程的。存储器单元还可为单层级单元(SLC)、多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)或使用现在已知或稍后开发的其它存储器单元层级技术。此外,存储器单元可以二维或三维方式制造。
控制器102与非易失性存储器裸片104之间的接口可为任何合适的快闪接口,例如切换模式(Toggle Mode)200、400或800。在一个实施例中,存储系统100可为基于卡的系统,例如安全数字(SD)或微安全数字(微SD)卡(或USB、SSD等)。在替代实施例中,存储系统100可为嵌入式存储系统的部分。
虽然在图1A中所示出的实例中,非易失性存储系统100(有时在本文中称为存储模块)包含控制器102与非易失性存储器裸片104之间的单个信道,但本文中所描述的主题不限于具有单个存储器信道。举例来说,在一些存储系统架构(例如图1B和图1C中所绘示的存储系统架构)中,取决于控制器容量,控制器与存储器装置之间可存在2个、4个、8个或更多存储器信道。在本文中所描述的任何实施例中,控制器与存储器裸片之间可存在超过单个信道,即使图中绘示单个信道。
图1B示出包含多个非易失性存储系统100的存储模块200。因此,存储模块200可包含与主机且与存储系统204介接的存储控制器202,所述存储系统204包含多个非易失性存储系统100。存储控制器202与非易失性存储系统100之间的接口可为总线接口,例如串行高级技术附件(SATA)、外围组件互连高速(PCIe)接口或双数据速率(DDR)接口。在一个实施例中,存储模块200可为固态驱动器(SSD)或非易失性双列直插式存储器模块(NVDIMM),例如在服务器PC或便携式计算装置(例如,笔记本计算机和平板计算机)中所发现。
图1C为示出阶层式存储系统的框图。阶层式存储系统250包含多个存储控制器202,其中的每一个控制相应存储系统204。主机系统252可经由总线接口存取存储系统内的存储器。在一个实施例中,总线接口可为非易失性存储器高速(NVMe)接口或以太网光纤信道(FCoE)接口。在一个实施例中,图1C中所示出的系统可为可由多个主机存取的可安装在支架上的大容量大容量存储系统,例如将在数据中心或需要大容量存储的其它位置中所发现。
图2A为更详细地示出控制器102的组件的框图。控制器102包含与主机介接的前端模块108、与一或多个非易失性存储器裸片104介接的后端模块110和执行现在将详细描述的功能的各种其它模块。模块可采用例如以下形式:设计成与其它组件一起使用的经封装功能硬件单元、可由通常执行相关功能的特定功能的(微)处理器或处理电路执行的程序代码(例如,软件或固件)的一部分,或与较大系统介接的自含式硬件或软件组件。控制器102有时在本文中可称为NAND控制器或快闪控制器,但应理解,控制器102可与任何合适的存储器技术一起使用,下文提供了一些存储器技术的实例。
再次参考控制器102的模块,缓冲器管理器/总线控制器114管理随机存取存储器(RAM)116中的缓存器,且控制控制器102的内部总线仲裁。只读存储器(ROM)118存储系统启动代码。虽然在图2A中示出为与控制器102分离定位,但在其它实施例中,RAM 116和ROM118中的一个或两个可定位在控制器内。在又其它实施例中,RAM和ROM的部分可位于控制器102内和位于控制器外部。
前端模块108包含提供与主机或下一层级存储控制器的电接口的主机接口120和物理层接口(PHY)122。主机接口120的类型的选择可取决于正在使用的存储器的类型。主机接口120的实例包含但不限于SATA、SATA高速、串行附接的小型计算机系统接口(SAS)、光纤信道、通用串行总线(USB)、PCIe和NVMe。主机接口120通常促进数据、控制信号和定时信号的传送。
后端模块110包含错误校正码(ECC)引擎124,所述错误校正码引擎124编码从主机接收到的数据字节,且解码和错误校正从非易失性存储器读取的数据字节。命令定序器126产生待传输到非易失性存储器裸片104的命令序列,例如编程和擦除命令序列。独立驱动器冗余阵列(Redundant Array of Independent Drive,RAID)模块128管理RAID奇偶校验的产生和失效数据的恢复。RAID奇偶校验可用作用于将数据写入到存储器装置104中的额外层级的完整性保护。在一些情况下,RAID模块128可为ECC引擎124的一部分。存储器接口130将命令序列提供到非易失性存储器裸片104,且从非易失性存储器裸片104接收状态信息。在一个实施例中,存储器接口130可为双数据速率(DDR)接口,例如切换模式200、400或800接口。快闪控制层132控制后端模块110的总体操作。
存储系统100还包含其它离散组件140,例如外部电接口、外部RAM、电阻器、电容器或可与控制器102介接的其它组件。在替代实施例中,物理层接口122、RAID模块128、媒体管理层138和缓冲器管理/总线控制器114中的一或多个为未必在控制器102中的任选组件。
图2B为更详细地示出非易失性存储器裸片104的组件的框图。非易失性存储器裸片104包含外围电路141和非易失性存储器阵列142。非易失性存储器阵列142包含用于存储数据的非易失性存储器单元。非易失性存储器单元可为任何合适的非易失性存储器单元,包含呈二维和/或三维配置的ReRAM、MRAM、PCM、NAND快闪存储器单元和/或NOR快闪存储器单元。非易失性存储器裸片104进一步包含对数据进行高速缓存的数据高速缓存器156。外围电路141包含将状态信息提供到控制器102的状态机152。
再次返回到图2A,快闪控制层132(其将在本文中称为快闪转译层(FTL),或例如更通常,在存储器可能不是快闪时称为“媒体管理层”)处理快闪错误且与主机介接。确切地说,可为固件中的算法的FTL负责存储器内部管理,且将来自主机的写入转译成存储器104的写入。因为存储器104可具有受限的耐久性,可仅以多页形式写入,和/或除非其作为存储器单元块擦除,否则可能不被写入,所以可能需要FTL。FTL理解存储器104的这些潜在限制,所述潜在限制可能对主机不可见。因此,FTL试图将来自主机的写入转译成存储器104的写入。
FTL可包含逻辑到物理地址(L2P)映射(有时在本文中称为表或数据结构)和所分配的高速缓存存储器。以此方式,FTL将来自主机的逻辑块地址(“LBA”)转译成存储器104中的物理地址。FTL可包含其它特征,例如但不限于断电恢复(使得可在突然掉电的情况下恢复FTL的数据结构)和耗损均衡(使得存储块上的耗损较平均以防止某些块过量耗损,这将导致较大故障机会)。
再次转向图式,图3为实施例的主机300和存储系统(有时在本文中称为装置)100的框图。主机300可采用任何合适形式,包含但不限于计算机、手机、数码相机、平板计算机、可穿戴装置、数字录像机、监测系统等。主机300包括处理器330,其配置成将数据(例如,初始地存储在主机的存储器340(例如,DRAM)中)发送到存储系统100以用于存储在存储系统的存储器104(例如,非易失性存储器裸片)中。虽然主机300和存储系统100在图3中绘示为单独方框,但应注意,存储系统100可集成在主机300中,存储系统100可以可移除地连接到主机300,且存储系统100和主机300可经由网络通信。还应注意,存储器104可集成在存储系统100中或可移除地连接到存储系统100。
如上文所论述,在一个实施例中,存储器104组织成多个块,其中每一块包括多个字线。每一字线组织成多个编程区段或串。此外,存储器104中的单元可配置成每存储器单元(SLC存储器)存储一个位或每存储器单元(MLC)存储器存储多个位。MLC存储器的一些配置可每存储器单元存储两个位,而MLC存储器的其它配置可每存储器单元(TLC)存储器存储三个位或更多(例如,QLC存储器每单元存储4个位)。此外,伪多层级单元(pMLC)存储器指代按以下方式使用的TLC存储器:将存储于每一单元中的位的数目从三减少到二,这可增加持续时间和存储器的可靠性。因此,可能需要在pMLC存储器中存储与TLC存储器中相比更重要的数据。
在编程存储器104时可能出现的一个问题是在已编程其它存储器单元之后,可能在某些存储器单元中产生错误。这称为“编程干扰”。当字线中的其它串被编程时,可导致给定串的干扰。取决于影响的串,对串的干扰效应可出现在编程串之前或之后。一些干扰签名具有特定串模式,且在一些情况下,干扰对串的影响被遮蔽。也就是说,如果干扰在编程串之前出现,那么串中的大部分位将移动到较高层级,在此情况下,位错误可最小化。移动到较高层级的位的数目取决于当前正使用的层级的数目(每单元的位)。因此,当使用存储器104作为pMLC时错误计数上升,所述pMLC为可存储最重要的数据中的一些的所在位置。
更确切地说,在编程之前发生的干扰可由编程操作自身遮蔽。发生遮蔽是因为受干扰的单元大部分转换到高于其被干扰的较高状态。在使数据随机化的情况下,可能性为大部分单元将在远高于干扰错误被干扰的位置处很好的编程。通常,人们将想要尽可能多地遮蔽干扰。除了在从每单元的较高位(例如,TLC)切换到每单元的较低位(例如,pMLC)时中断屏蔽干扰之外,干扰的遮蔽将不是问题。这可为反直观的,因为通常MLC受干扰影响比TLC小。然而,问题是块的使用每单元位的较低编号通常用于重要元数据,例如逻辑到物理地址映射。因此,当针对所述类型的数据中断屏蔽干扰时,结果可能存在问题。由于高于受干扰单元的待编程的状态较少,因此发生中断屏蔽效应。如将在以下实例中进一步解释,在从TLC移动到pMLC时,转至以上状态的受干扰单元的数目从约87.5%改变到仅约75%,从而有效地使干扰加倍。
由于跨同一条带中的多个块的使用通常是相同的,因此当在条带中的一个块中中断屏蔽干扰时,在条带中的所有块中中断屏蔽干扰。因为条带可通常由具有类似性质的裸片(即,在相同晶片上且彼此邻近)形成,所以如果存在与过程有关的问题,那么其导致条带故障的可能性可能增加。此外,干扰可来自编程同一字线中的不同串。如果最后一个串(例如,四串字线中的串3)总是最后编程,那么其它串的对串3的任何干扰将在编程串3之前。因此,如果串之间的交互为相等可能性,那么其将在串3上被最好地遮蔽的机会是最大的,这允许在串3上发生中断屏蔽的更大可能性,其进一步将故障集中到同一条带中。
图4和图5示出TLC存储器和pMLC存储器中的遮蔽问题。在图4中绘示的实例中,擦除存储器单元,且在编程存储器单元之前出现干扰。如图4的左手侧所绘示,在TLC存储器单元的情况下,第一状态存在7/8的机会被恰当地放置,且第二状态存在6/8的机会被恰当地放置。在编程之后,大部分干扰(约87.5%)由TLC编程隐藏。因此,约12.5%的干扰不隐藏。相比而言,在pMLC存储器单元的情况下,在编程之前第一状态存在3/4的机会被恰当地置放于干扰中。此外,在编程后,有约75%的机会移动到问题层级,且约25%的干扰不隐藏。因此,pMLC使用情况中的位错误率(BER)几乎加倍。
此现象在图5中进一步示出。如图5中所绘示,在TLC使用情况下,存在7/8的机会的恰当放置,因为阴影单元具有高于其的七个状态,且数据为随机化的。因此,尽管在编程之前受到干扰,但存储器单元仍可存在八分之七的机会达到正确层级。在图5的右侧中绘示的实例中,存在6/8的机会恰当地放置,因为阴影单元具有高于其的六个状态,且数据模式为随机化的。也就是说,尽管在编程之前受到干扰,但单元仍可存在八分之六的机会达到正确层级。然而,在pMLC使用情况下,存在3/4的机会被恰当地放置,因为阴影单元具有高于其的三个状态,且数据模式为随机化的。因此,尽管在编程之前受到干扰,但单元仍可存在四分之三的机会达到正确层级。
以下实施例可用于解决所述问题。一般来说,在这些实施例中,存储系统100的控制器102配置成改变多个串在多个字线中的每一个中经编程的次序,使得在多个字线中的每一个中编程的最后串变化。以此方式改变编程次序允许以适时方式捕获干扰(例如,其中控制器102中的错误校正操作(例如,XOR)可恢复错误),而非遮蔽所述问题且使其在pMLC使用下出现,可能出现在多个存储器裸片上。也就是说,改变编程次序可在同一字线上更好地突出显示编程干扰,使得较早且在更加方便的时间发现编程干扰,而非使其在pMLC使用下积累且随后明显地增加。改变编程的串次序使得干扰有可能在编程串之后出现。也就是说,改变编程次序可通过改变编程的次序而在同一字线上更好地突出显示编程干扰,使得最后编程的串从字线到字线改变。在其它实施例中,编程次序还可从周期到周期和/或从存储器裸片到存储器裸片改变(例如,以进一步减小归因于可具有串或编程排序敏感性的机构的条带故障的可能性)。也就是说,一些字线比其它字线更加敏感,因此针对不同周期(和/或存储器裸片)以不同串开始可为有益的。此外,可例如针对每一超级块、块或字线使用随机化的开始串。
改变编程次序的实例在图6中绘示。如图6中所绘示,一些字线比其它字线更加敏感,因此针对每一周期以不同串开始将是理想的。在此实例中,每四个字线重复编程模式,其中最后编程的串分别为串3、串0、串1和串2。可使用不同模式类型和频率。此外,如下文将更详细地解释,虽然所有串的编程次序在此实例中变化,但在其它实例中,仅串的最后串或一些子集(例如,除第一串以外的所有串)的编程变化。
如上文所提及,编程次序还可跨编程擦除周期变化。这在图7中绘示,其中开始串等于周期模数4。因此,在第四编程周期之后,重复给定编程模式。同样如上文所提及,编程次序可跨存储器裸片另外或替代地变化。这在图8中绘示,其中开始串等于裸片模数4。因此,在第四存储器裸片之后,重复给定编程模式。应注意,存储器裸片可为逻辑或物理参考,且编程次序可变化以减小条带故障的可能性。
如上文进一步提及,虽然先前实例绘示所有串的编程次序中的变化,但所述变化可仅用于串的一个串或某一其它子集。举例来说,在一个实施例中,仅最后串的编程变化。在另一实例中,串的一些(但不是全部串)的编程变化。这在图9中示出。如图9中所绘示,每一字线中的第一串始终首先编程,而其它串的编程变化。举例来说,当第一串用于验证存储器104,且来自所述验证的信息用于编程其它串时,可能需要此布置。
再次转向图式,图10为用于编程重新排序以减轻编程干扰的实施例的方法的流程图1000。如图10中所绘示,在此方法中,控制器102首先将零分配到串计数(动作1010)。接着,控制器102计算当前串和字线(动作1020)。在一个实施例中,在任何合适的机制可用于执行此计算以计算待编程的当前串和字线时,使用以下公式:
当前串=模数((编程串计数+PE周期+裸片编号+块编号),(串的数目))
当前字线=整数((编程串计数)/(串的数目)),
其中裸片编号可为逻辑或物理编号,其中块编号是任选的,且其中,如果需要串跨平面相同,那么其可为块对/组编号而不是块编号。此外,此处的串的数目指代不同串的数目。当然,这只是一个实施,且可使用其它实施。
接着,控制器102将数据编程到当前串和字线中(动作1040)。控制器102随后确定编程是否成功(动作1050)。如果编程不成功,那么控制器102产生记录/错误报告(动作1070)且结束块的编程(动作1080)。然而,如果编程成功,那么控制器102确定在块中是否存在任何更多串可用(动作1060)。如果不再有串可用,那么结束块的编程(动作1080)。然而,如果存在更多可用串,那么控制器102使编程串计数递增(动作1030)且循环回到动作1020。
存在可与这些实施例一起使用的许多替代方案。举例来说,在以上实例中,当使用TLC存储器作为pMLC存储器时,中断屏蔽编程干扰错误。更一般来说,在使用配置成每单元存储X数量个位以每单元存储少于X数量个位的存储器单元(例如,使用伪TLC存储器的四层级单元(QLC),或用作伪SLC存储器的MLC存储器)时,可中断屏蔽编程干扰错误。
存在可与这些实施例一起使用的几个替代方案。举例来说,在多轮改变编程串的次序之后,可观察到错误重复出现在某一串(例如,串2)上的模式。基于所述观察,所述串可成为将来最后编程的串以帮助减轻编程干扰。
此外,如果观察到编程干扰在块的某一使用条件下出现,那么存储系统100可避免在所述使用条件下使用所述块来遮蔽编程干扰。举例来说,如果观察到在块的某一使用条件下错误在串2上重复出现,那么在串2成为最后编程的串时,可在未来使用所述块的不同使用条件。
此外,如果观察到编程干扰在某一块模式的块内出现,例如块解码器签名的所有块(例如,具有相同模数(块,16)值),那么相同模式的块可能不用于每单元位的较低编号条件,因为其将可能放大干扰。
最后,如上文所提及,可使用任何合适类型的存储器。半导体存储器装置包含易失性存储器装置,例如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”)装置;非易失性存储器装置,例如ReRAM、电可擦除可编程只读存储器(“EEPROM”)、快闪存储器(其还可被视为EEPROM的子集)、铁电随机存取存储器(“FRAM”)和MRAM及能够存储信息的其它半导体元件。每一类型的存储器装置可具有不同的配置。举例来说,快闪存储器装置可以NAND或NOR配置来进行配置。
存储器装置可由无源和/或有源元件以任何组合形成。借助于非限制性实例,无源半导体存储器元件包含ReRAM装置元件,所述ReRAM装置元件在一些实施例中包含电阻率切换存储元件,例如反熔丝、相变材料等,且任选地包含转向元件,例如二极管等。另外,借助于非限制性实例,有源半导体存储器元件包含EEPROM和快闪存储器装置元件,在一些实施例中,所述快闪存储器装置元件包含含有电荷存储区的元件,例如浮动栅极、导电纳米粒子或电荷存储电介质材料。
多个存储器元件可配置成使得其串联连接或使得每一元件可单独地存取。借助于非限制性实例,NAND配置中的快闪存储器装置(NAND存储器)通常含有串联连接的存储器元件。NAND存储器阵列可配置成使得阵列由多个存储器串构成,其中一串由共享单个位线且作为群组被存取的多个存储器元件构成。替代地,存储器元件可配置成使得每一元件可单独地存取,例如NOR存储器阵列。NAND和NOR存储器配置为实例,且存储器元件可以其它方式来配置。
位于衬底内和/或衬底上方的半导体存储器元件可以二维或三维形式布置,例如二维(2D)存储器结构或三维(3D)存储器结构。
在2D存储器结构中,半导体存储器元件布置在单个平面或单个存储器装置层级中。通常,在2D存储器结构中,存储器元件布置在大体上平行于支撑存储器元件的衬底的主表面延伸的平面中(例如,在x-z方向平面中)。衬底可为其上方或其中形成有存储器元件的层的晶片,或可为在存储器元件形成之后附接到存储器元件的载体衬底。作为非限制性实例,衬底可包含例如硅等半导体。
存储器元件可以例如多个行和/或列等有序阵列的形式布置在单个存储器装置层级中。然而,存储器元件可以非规则或非正交配置排列。存储器元件可各自具有两个或更多个电极或接触线,例如位线和字线。
3D存储器阵列布置成使得存储器元件占据多个平面或多个存储器装置层级,由此形成三维结构(即,x、y和z方向上,其中y方向大体上垂直于衬底的主表面,且x和z方向大体上平行于衬底的主表面)。
作为非限制性实例,3D存储器结构可竖直地布置为多个2D存储器装置层级的堆叠。作为另一非限制性实例,3D存储器阵列可布置为多个竖直列(例如,大体上垂直于衬底的主表面(即,在y方向上)延伸的列),其中每一列在每一列中具有多个存储器元件。所述列可例如在x-z平面中以2D配置进行布置,从而产生具有在多个竖直堆叠的存储器平面上的元件的存储器元件的3D布置。呈三维形式的存储器元件的其它配置也可构成3D存储器阵列。
借助于非限制性实例,在3D NAND存储器阵列中,存储器元件可耦合在一起以形成在单个水平(例如,x-z)存储器装置层级内的NAND串。替代地,存储器元件可耦合在一起以形成横穿多个水平存储器装置层级的竖直NAND串。可设想其它3D配置,其中一些NAND串含有单个存储器层级中的存储器元件,而其它串含有跨越多个存储器层级的存储器元件。3D存储器阵列还可设计成NOR配置和ReRAM配置。
通常,在单片3D存储器阵列中,在单个衬底上方形成一或多个存储器装置层级。任选地,单片3D存储器阵列还可具有至少部分在单个衬底内的一或多个存储器层。作为非限制性实例,衬底可包含例如硅等半导体。在单片3D阵列中,构成阵列的每一存储器装置层级的层通常形成在阵列的下伏存储器装置层级的层上。然而,单片3D存储器阵列的相邻存储器装置层级的层可在存储器装置层级之间共享,或在存储器装置层级之间具有插入层。
而且,二维阵列可单独地形成,且随后封装在一起以形成具有多个存储器层的非单片存储器装置。举例来说,可通过在单独的衬底上形成存储器层级且随后将存储器层级彼此堆叠来构造非单片堆叠的存储器。在堆叠之前可将衬底薄化或从存储器装置层级移除,但由于存储器装置层级最初形成于单独的衬底上方,因此所得的存储器阵列不是单片3D存储器阵列。此外,多个2D存储器阵列或3D存储器阵列(单片或非单片)可形成于单独的芯片上且随后封装在一起以形成堆叠芯片存储器装置。
通常需要相关联电路来操作存储器元件并与存储器元件通信。作为非限制性实例,存储器装置可具有用于控制和驱动存储器元件以实现例如编程和读取等功能的电路。此相关联电路可在与存储器元件相同的衬底上和/或在单独的衬底上。举例来说,用于存储器读写操作的控制器可位于单独的控制器芯片上和/或与位于与存储器元件相同的衬底上。
所属领域的技术人员将认识到,本发明不限于所描述的2D和3D结构,而是涵盖如本文中所描述的且如所属领域的技术人员所理解的在本发明的精神和范围内的所有相关存储器结构。
希望将前述详细描述理解为本发明可采用的选定形式的说明,而非对本发明的限定。仅所附权利要求书(包含所有等效物)意图限定所要求的本发明的范围。最后,应注意,本文中所描述的实施例中的任一个的任何方面可单独使用或彼此组合使用。

Claims (20)

1.一种存储系统,其包括:
存储器,其包括多个字线,其中每一字线包括多个串;和
控制器,其配置成在所述多个字线中的每一个中改变所述多个串中的哪一个为最后编程的串。
2.根据权利要求1所述的存储系统,其中所述存储器包括配置成每单元存储X数量个位的存储器单元,其中X为正整数,其中在所述存储器单元用于每单元存储少于X数量个位时中断屏蔽编程干扰错误,且其中改变所述多个串中的哪一个为所述最后编程的串允许所述编程干扰错误由所述控制器校正。
3.根据权利要求2所述的存储系统,其中所述存储器包括三层级单元,且其中在所述三层级单元用作伪多层级单元时中断屏蔽所述编程干扰错误。
4.根据权利要求2所述的存储系统,其中所述存储器包括四层级单元,且其中在所述四层级单元用作伪三层级单元时中断屏蔽所述编程干扰错误。
5.根据权利要求2所述的存储系统,其中所述存储器包括多层级单元,且其中在所述多层级单元用作伪单层级单元时中断屏蔽所述编程干扰错误。
6.根据权利要求1所述的存储系统,其中所述控制器进一步配置成在所述多个字线中的每一个中改变所述多个串中的至少一个其它者的编程次序。
7.根据权利要求6所述的存储系统,其中所述控制器进一步配置成在所述多个字线中的每一个中改变所有所述多个串的编程次序。
8.根据权利要求1所述的存储系统,其中所述控制器进一步配置成首先编程所述多个字线中的每一个的第一串。
9.根据权利要求1所述的存储系统,其中所述存储器进一步包括多个存储器裸片,且其中所述控制器进一步配置成跨存储器裸片改变所述多个串中的至少一个的编程次序。
10.根据权利要求1所述的存储系统,其中所述存储器进一步包括存储器单元块,且其中所述控制器进一步配置成跨所述块的编程擦除周期改变所述多个串中的至少一个的编程次序。
11.根据权利要求1所述的存储系统,其中所述存储器进一步包括多个存储器单元块,且其中所述控制器进一步配置成使待编程于所述多个块中的每一个中的起始串随机化。
12.根据权利要求1所述的存储系统,其中所述控制器进一步配置成使待编程于所述多个字线中的每一个中的起始串随机化。
13.根据权利要求1所述的存储系统,其中所述存储器包括三维存储器。
14.在包括存储器的存储系统中,所述存储器包括多个字线,其中每一字线包括多个串,方法包括:
将零分配到编程串计数;
计算当前串和字线;
将数据编程到所述当前串和字线中;
使所述编程串计数递增;和
计算待编程的新当前串和字线,使得至少一个串的编程次序在字线之间变化。
15.根据权利要求14所述的方法,其进一步包括:
确定所述数据是否成功地编程到所述当前串和字线中。
16.根据权利要求15所述的方法,其进一步包括:
响应于确定所述数据未成功地编程到所述当前串和字线中,产生错误报告。
17.根据权利要求15所述的方法,其进一步包括:
响应于确定所述数据成功地编程到所述当前串和字线中,确定是否存在任何更多串可用于编程。
18.根据权利要求17所述的方法,其中响应于确定存在更多串可用于编程而增加所述编程串计数。
19.根据权利要求14所述的方法,其中所述存储器包括配置成每单元存储X数量个位的存储器单元,其中X为正整数,其中在所述存储器单元用于每单元存储少于X数量个位时中断屏蔽编程干扰错误,且其中使所述编程次序变化允许校正所述编程干扰错误。
20.一种存储系统,其包括:
存储器,其包括多个字线,其中每一字线包括多个串;和
用于在所述多个字线中的每一个中改变所述多个串中的哪一个为最后编程的串的构件;
其中所述存储器包括配置成每单元存储X数量个位的存储器单元,其中X为正整数,其中在所述存储器单元用于每单元存储少于X数量个位时中断屏蔽编程干扰错误,且其中改变所述多个串中的哪一个为所述最后编程的串允许校正所述编程干扰。
CN202210542560.4A 2021-10-06 2022-05-18 用于编程重新排序以减轻编程干扰的存储系统和方法 Pending CN115938447A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/495,015 2021-10-06
US17/495,015 US11893243B2 (en) 2021-10-06 2021-10-06 Storage system and method for program reordering to mitigate program disturbs

Publications (1)

Publication Number Publication Date
CN115938447A true CN115938447A (zh) 2023-04-07

Family

ID=85774879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210542560.4A Pending CN115938447A (zh) 2021-10-06 2022-05-18 用于编程重新排序以减轻编程干扰的存储系统和方法

Country Status (2)

Country Link
US (1) US11893243B2 (zh)
CN (1) CN115938447A (zh)

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493457B2 (en) 2004-11-08 2009-02-17 Sandisk Il. Ltd States encoding in multi-bit flash cells for optimizing error rate
US7275140B2 (en) * 2005-05-12 2007-09-25 Sandisk Il Ltd. Flash memory management method that is resistant to data corruption by power loss
US7218552B1 (en) 2005-09-09 2007-05-15 Sandisk Corporation Last-first mode and method for programming of non-volatile memory with reduced program disturb
US8402243B2 (en) * 2010-02-25 2013-03-19 Apple Inc. Dynamically allocating number of bits per cell for memory locations of a non-volatile memory
US8560919B2 (en) 2010-10-22 2013-10-15 Sandisk Technologies Inc. System and method of interleaving data according to an adjustable parameter
KR101962786B1 (ko) 2012-03-23 2019-03-27 삼성전자주식회사 불휘발성 메모리 장치, 메모리 시스템 및 그것의 프로그램 방법
KR20130114297A (ko) * 2012-04-09 2013-10-17 삼성전자주식회사 솔리드 스테이트 드라이브 및 이를 포함하는 전자 장치
US9146856B2 (en) * 2012-04-10 2015-09-29 Micron Technology, Inc. Remapping and compacting in a memory device
US10642505B1 (en) * 2013-01-28 2020-05-05 Radian Memory Systems, Inc. Techniques for data migration based on per-data metrics and memory degradation
US11249652B1 (en) * 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9858002B1 (en) * 2016-05-13 2018-01-02 Seagate Technology Llc Open block stability scanning
US10068656B2 (en) * 2016-12-27 2018-09-04 Sandisk Technologies Llc Non-volatile memory with multi-pass programming
US10908832B2 (en) * 2017-10-31 2021-02-02 Micron Technology, Inc. Common pool management
US10733110B1 (en) * 2017-12-04 2020-08-04 Amazon Technologies, Inc. Collecting statistics for persistent memory
US10922014B1 (en) * 2018-06-05 2021-02-16 Seagate Technology Llc Die access order variation
WO2020087211A1 (en) * 2018-10-29 2020-05-07 Micron Technology, Inc. Slc cache allocation
KR20210025412A (ko) * 2019-08-27 2021-03-09 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 동작 방법
JP2021033848A (ja) * 2019-08-28 2021-03-01 キオクシア株式会社 メモリシステムおよび制御方法
KR20210034274A (ko) * 2019-09-20 2021-03-30 삼성전자주식회사 비휘발성 메모리 장치의 구동 방법 및 이를 수행하는 비휘발성 메모리 장치

Also Published As

Publication number Publication date
US11893243B2 (en) 2024-02-06
US20230106371A1 (en) 2023-04-06

Similar Documents

Publication Publication Date Title
US10002042B2 (en) Systems and methods of detecting errors during read operations and skipping word line portions
US10339000B2 (en) Storage system and method for reducing XOR recovery time by excluding invalid data from XOR parity
US9886341B2 (en) Optimizing reclaimed flash memory
US20170300246A1 (en) Storage System and Method for Recovering Data Corrupted in a Host Memory Buffer
US9582435B2 (en) Memory system and method for efficient padding of memory pages
US11442666B2 (en) Storage system and dual-write programming method with reverse order for secondary block
US11036407B1 (en) Storage system and method for smart folding
US11269725B2 (en) Storage system and method for direct quad-level cell (QLC) programming
WO2021247093A1 (en) Storage system and method for retention-based zone determination
US9678684B2 (en) Systems and methods for performing an adaptive sustain write in a memory system
CN113936726A (zh) 用于平衡四层级单元编码的存储系统和方法
US11789616B2 (en) Storage system and method for dynamic allocation of secondary backup blocks
US11626183B2 (en) Method and storage system with a non-volatile bad block read cache using partial blocks
US11550658B1 (en) Storage system and method for storing logical-to-physical address table entries in a codeword in volatile memory
US11334256B2 (en) Storage system and method for boundary wordline data retention handling
US11507309B2 (en) Storage system and method for using memory allocated in a host for read data as a host memory buffer
US11893243B2 (en) Storage system and method for program reordering to mitigate program disturbs
US11809331B1 (en) Storage system and method for avoiding header to improve parity
US11599277B1 (en) Storage system and method for performing a targeted read scrub operation during intensive host reads
US11915772B1 (en) Data storage device and method for power on reset and read error handling
US11797445B2 (en) Data storage device and method for preventing data loss during an ungraceful shutdown
US11494101B2 (en) Storage system and method for time-duration-based efficient block management and memory access
US11880256B2 (en) Data storage device and method for energy feedback and report generation
US20240143509A1 (en) Data Storage Device and Method for Handling Write Commands in Zoned Storage
US20210373789A1 (en) Storage System, Host, and Method for Optimizing Storage of a Sequence of Images

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