CN117636978A - 存储器块擦除协议 - Google Patents
存储器块擦除协议 Download PDFInfo
- Publication number
- CN117636978A CN117636978A CN202311087474.XA CN202311087474A CN117636978A CN 117636978 A CN117636978 A CN 117636978A CN 202311087474 A CN202311087474 A CN 202311087474A CN 117636978 A CN117636978 A CN 117636978A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory cells
- erased
- determining
- blocks
- 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 title claims abstract description 600
- 238000012545 processing Methods 0.000 claims abstract description 83
- 238000000034 method Methods 0.000 claims abstract description 53
- 230000004044 response Effects 0.000 claims abstract description 30
- 238000003860 storage Methods 0.000 claims description 39
- 230000000977 initiatory effect Effects 0.000 claims description 10
- 238000009826 distribution Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 238000002360 preparation method Methods 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 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
- 239000013641 positive control Substances 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
Abstract
描述与存储器块擦除协议有关的系统和方法。示例系统包含存储器装置,所述存储器装置具有包含多个存储器单元的存储器阵列。所述系统进一步包含耦合到所述存储器装置的处理装置。所述处理装置用于确定与所述存储器阵列相关联的度量的值。响应于确定所述度量的所述值低于预定阈值,所述处理装置进一步用于发起所述存储器装置的擦除协议。所述处理装置进一步用于擦除与所述存储器阵列的一或多个存储器块相关联的存储器单元集合。所述处理装置进一步用于接收针对所述存储器单元第一集合的编程命令。所述处理装置进一步用于响应于接收到所述编程命令,对存储器单元集合执行编程操作。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及基于表征电压分布的存储器装置发起的度量的存储器读取校准。
背景技术
存储器子系统可为存储系统、存储器模块或存储装置和存储器模块的混合。存储器子系统可以包含一或多个存储数据的存储器组件。存储器组件可以例如是非易失性存储器组件和易失性存储器组件。一般来说,主机系统可以利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。
发明内容
在一方面,本公开提供一种系统,其包括:存储器装置,其包括存储器阵列,所述存储器阵列包括多个存储器单元;及处理装置,其耦合到所述存储器装置,所述处理装置执行包括以下操作的操作:确定与所述存储器阵列相关联的度量的值,其中所述存储器阵列进一步包括多个存储器块,且其中第一存储器块包括所述多个存储器单元的存储器单元第一集合;响应于确定所述度量的所述值低于预定阈值,发起所述存储器装置的擦除协议;擦除与所述多个存储器块的一或多个存储器块相关联的存储器单元集合;在擦除所述存储器单元集合之后,接收针对所述存储器单元第一集合的编程命令;及响应于接收到所述编程命令,对所述存储器单元第一集合执行编程操作。
在另一方面,本公开提供一种非暂时性计算机可读存储媒体,其存储可执行指令,所述可执行指令在由管理存储器装置的控制器执行时使得所述控制器:确定与所述存储器装置的存储器阵列相关联的度量的值,其中所述存储器阵列包括多个存储器块,其中所述多个存储器块中的每一存储器块包括多个存储器单元的存储器单元集合,且其中第一存储器块包括存储器单元第一集合;响应于确定所述度量的所述值低于预定阈值,发起存储器装置的擦除协议;擦除与所述多个存储器块的一或多个存储器块相关联的存储器单元集合;在擦除所述存储器单元集合之后,接收针对所述存储器单元第一集合的编程命令;及响应于接收到所述编程命令,对所述存储器单元第一集合执行编程操作。
在另一方面,本公开提供一种方法,其包括:确定与存储器装置相关联的度量的值,其中所述存储器阵列包括多个存储器块,其中所述多个存储器块中的每一存储器块包括多个存储器单元的存储器单元集合,且其中第一存储器块包括存储器单元第一集合;响应于确定所述度量的所述值低于预定阈值,发起所述存储器装置的擦除协议;擦除与所述多个存储器块的一或多个存储器块相关联的存储器单元集合;在擦除所述存储器单元集合之后,接收针对所述存储器单元第一集合的编程命令;及响应于接收到所述编程命令,对所述存储器单元第一集合执行编程操作。
附图说明
根据下文提供的具体实施方式和本公开的各种实施例的附图将更加充分地理解本公开。
图1示出了根据本公开的一些实施方案的包含存储器子系统的示例计算系统。
图2是根据实施例的与存储器子系统的存储器子系统控制器通信的存储器装置的框图。
图3A示意性地示出布置于存储器装置中的存储器单元的集合。
图3B示意性地示出源极-漏极电流对用于两个存储器单元的控制栅极电压的相依性。
图3C示意性地示出用于一组存储器单元的阈值控制栅极电压的示例分布。
图4示意性地示出示例存储器阵列。
图5是根据本公开的一些实施方案的存储器块编程的示例方法的流程图。
图6是根据本公开的一些实施方案的存储器块处理协议的示例方法的流程图。
图7A是根据本公开的一些实施方案的将数据编程到存储器块的示例方法的流程图。
图7B是根据本公开的一些实施方案的存储器块擦除协议的示例方法的流程图。
图8是其中可操作本公开的实施例的示例计算机系统的框图。
具体实施方式
本公开的方面是针对存储器块擦除协议。一或多个存储器装置可为存储器子系统的部分,所述存储器子系统可为存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的示例。一般来说,主机系统可利用存储器子系统,所述存储器子系统包含一或多个组件,例如存储数据的存储器装置。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。
存储器子系统可以包含高密度非易失性存储器装置,其中当没有电力被供应到存储器装置时需要数据的保持。非易失性存储器装置的一个示例为与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它示例。非易失性存储器装置为一或多个裸片的封装。每一裸片可包含两个或更多个平面。对于一些类型的非易失性存储器装置(例如,NAND装置),每个平面包含物理块的集合。在一些实施中,每一块可包含多个子块。每一平面承载形成到硅晶片上并且通过被称为字线和位线的导体连结的存储器单元矩阵,使得字线连结形成存储器单元矩阵的行的多个存储器单元,而位线连结形成存储器单元矩阵的列的多个存储器单元。
取决于单元类型,每一存储器单元可存储一或多个二进制信息位,并且具有与正存储的位数相关的各种逻辑状态。逻辑状态可由例如“0”和“1”或这类值的组合的二进制值表示。可通过将某一电压施加到存储器单元来编程存储器单元(向其写入),这使得存储器单元保持电荷,因此允许调制由存储器单元产生的电压分布。可在单个操作中例如通过选择连续位线一起编程被称为存储器页的一组存储器单元。
为了用数据对存储器单元进行编程,首先擦除存储器单元。按照惯例,在对存储器块的存储器单元进行编程之前立即擦除存储器单元块。在编程之前立即擦除存储器单元块(例如,存储器块)将时延引入到编程操作中。举例来说,在擦除存储器块时暂停写入操作。在擦除存储器块之后,写入操作可以恢复。当编程操作要尽可能快地发生时,这种延迟可能会特别麻烦。
其它常规方法盲目地预擦除存储器块。在此类常规方法中,存储器块被擦除而不考虑将来的编程操作。盲目地擦除存储器块可能会导致进一步的复杂化。举例来说,在单层级单元(SLC)模式中擦除的存储器单元无法用三层级单元(TLC)数据进行编程。相反,在TLC模式中擦除的存储器单元无法用SLC数据进行编程。常规方法可以在SLC模式中盲目地擦除所有可用存储器块(例如,大体上全部可用存储器块)。因此,可能没有剩余的存储器块来服务TLC写入操作。一或多个已擦除存储器块然后在TLC模式中重新擦除,以服务于TLC写入操作。重新擦除给编程操作带来了进一步的时延,并且多次重新擦除操作可能随着时间的推移而损坏存储器单元。
另外,盲目地预擦除存储器块可能会引入数据错误。举例来说,已擦除的存储器单元的电压状态(例如,擦除状态)可以随时间推移而偏移。电压偏移可以使稍后被编程到存储器单元的任何数据有缺陷。在此类示例中,存储于存储器单元中的数据可能无法可靠地读取。常规的解决方案是在编程存储器单元之前验证存储器单元的电压状态。验证过程按照惯例检查存储器块的每一存储器单元和/或每个字线,以确定存储器单元的状态是否偏移超出预定阈值。然而,在执行编程操作(例如,写入操作)之前检查每一存储器单元和/或字线会花费大量时间,再次给编程操作带来时延。同样,当编程操作要尽可能快地发生时,这种时延可能会特别麻烦。如果没有一些常规解决方案中使用的验证,则当写入到随着时间推移经历了电压偏移的已擦除存储器单元时,数据可能不可靠。
本公开的实施方案通过提供改进的存储器块擦除协议来解决上述缺陷和其它缺陷。在一些实施例中,处理装置(例如,存储器子系统控制器、本地媒体控制器等)可以实现改进的协议来擦除存储器块,为可靠地服务写入操作做准备,而不会引入过度的时延。基于与存储器阵列相关联的度量,处理装置可以发起存储器装置的擦除协议。在一些实施例中,度量包含存储器阵列的一或多个存储器块的编程-擦除循环(PEC)计数。在一些实施例中,度量反映存储器装置的所有存储器块的平均PEC计数。擦除协议可以包含预擦除多个存储器块以准备服务写入操作。具体地,当度量(例如,PEC计数)低于预定阈值时,可以激活(例如,发起等)擦除协议。在一些实施例中,可以在存储器装置要尽可能快地服务编程操作时激活擦除协议。这可以包含存储器装置是新的和/或正在进行初始设置程序(例如,初始主机引导等)的时间。
在一些实施例中,擦除协议包含确定可用空闲存储器块的数量(例如,空闲存储器块的数量)。基于有多少存储器块是空闲的(例如,可用的等),空闲存储器块的一部分被擦除。在特定擦除模式(例如SLC)中仅擦除一部分空闲存储器块允许一些存储器块在另一种模式(例如TLC)中保持可用于编程,而不必重新擦除存储器块。在一些实施例中,在接收编程命令之后,对已擦除存储器块执行检查。检查可以是擦除页检查,以检查已擦除存储器块的第一存储器页的存储器单元是否处于已擦除状态。因为存储器单元在块层级被擦除(例如,存储器块的所有存储器单元在一次操作中被擦除),所以逻辑上可以得出存储器块的一个存储器页的存储器单元的擦除状态反映了存储器块的所有存储器单元的擦除状态。在一些实施例中,在擦除页检查之后,已擦除存储器块可以准备好服务写入命令。然后可以将数据编程到已擦除存储器块的存储器单元。
本文中所描述的方法的优点包含但不限于存储器子系统中的改进性能。通过在接收编程命令之前擦除存储器块(例如,预擦除存储器块),可以减少编程操作时延。因此,写入操作可以比使用常规解决方案时允许的速度更快地开始。另外,通过在将数据写入存储器块的存储器单元之前检查存储器块的页,可以验证存储器单元可以基于所述页的存储器单元的擦除状态被可靠地编程。此外,通过仅检查存储器块的页而不是验证存储器块的每个存储器单元、字线和/或页(如在一些常规方法中所做的),与常规方法相比,可以减少编程操作时延,同时仍然为数据编程和/或数据存储提供可靠性。
虽然本文中所描述的示例涉及SLC和/或TLC电压分布,但在各种其它实施方案中,可以针对每个单元存储其它数量的位的存储器页实施类似技术。
图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)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或此类存储器单元阵列的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,以及MLC部分、TLC部分或QLC部分。存储器装置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包含本地媒体控制器135,所述本地媒体控制器结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130为受管理存储器装置,其为具有用于同一存储器装置封装内的媒体管理的控制逻辑(例如,本地控制器135)的原始存储器装置(例如,存储器阵列104)。受管理存储器装置的示例是受管理NAND(MNAND)装置。举例来说,存储器装置130可各自表示具有体现于其上的一些控制逻辑(例如,本地媒体控制器135)的单个裸片。在一些实施例中,可省略存储器子系统110的一或多个组件。
在一个实施例中,存储器子系统110包含块擦除组件113。在一些实施例中,在确定与存储器阵列104相关联的度量(例如,PEC计数)并确定度量的值低于阈值量(例如,平均PEC计数低于预定阈值)后,块擦除组件113可发起存储器装置的擦除协议。如本文所描述,擦除协议可以包含确定有多少存储器块可用于编程操作(例如,空闲)。基于存储器块可用的数量,块擦除组件113可以擦除多个可用存储器块的存储器单元。在一些实施例中,在SLC模式中擦除存储器单元,以准备好服务SLC写入操作。然而,在一些实施例中,存储器单元在TLC模式中被擦除以准备服务TLC写入操作,或者在四层级单元(QLC)模式中被擦除以用于服务QLC写入操作,在N层级单元模式中被擦除以用于服务N层级单元写入操作(其中N是任何整数)等。块擦除组件113可以擦除多个存储器块以形成准备好服务写入操作的存储器块队列。当接收到编程命令(例如,来自主机系统120等)时,块擦除组件113可以检查已擦除存储器块中的电压电平尚未蠕变(例如,漂移等)超过阈值量,因为存储器块被擦除。块擦除组件113可以检查存储器块的第一页的存储器单元以确定存储器单元仍然处于擦除状态。如果存储器单元电压电平不处于用于可靠编程的状态(例如,电压电平已经蠕变、存储器单元不处于擦除状态等),则存储器块被重新擦除并放回到队列中。如果存储器单元电压电平指示存储器单元处于准备好编程的擦除状态,则针对已擦除存储器块的存储器单元执行编程操作(例如,写入操作)。在一些实施例中,块擦除组件113可以在某个时间确定度量(例如,PEC计数)高于(例如,超过)阈值,此时块擦除组件113可以终止擦除协议。下面描述关于块擦除部件113的操作的进一步细节。
图2为根据实施例的呈存储器装置130形式的第一设备与呈存储器子系统(例如,图1的存储器子系统110)的存储器子系统控制器115形式的第二设备通信的简化框图。电子系统的一些示例包含个人计算机、个人数字助理(PDA)、数码相机、数字媒体播放器、数字记录器、游戏、电气设备、交通工具、无线装置、移动电话及类似者。存储器子系统控制器115(例如,存储器装置130外部的控制器)可为存储器控制器或其它外部主机装置。在一些实施例中,存储器子系统控制器115包含块擦除组件113,所述块擦除组件被配置成执行本文中所描述的存储器块擦除操作,包含在对存储器块执行编程操作之前擦除那些块。
存储器装置130包含以行和列逻辑地布置的存储器单元阵列104。逻辑行的存储器单元通常连接到相同存取线(例如,字线),而逻辑列的存储器单元通常选择性地连接到相同数据线(例如,位线)。单个存取线可与超过一个逻辑行的存储器单元相关联,且单个数据线可与超过一个逻辑列相关联。存储器单元阵列104的至少一部分的存储器单元(图1中未展示)能够经编程为至少两个目标数据状态中的一者。
提供行解码电路系统108和列解码电路系统109以解码地址信号。接收地址信号并对其进行解码以存取存储器单元阵列104。存储器装置130还包含输入/输出(I/O)控制电路系统160,其用以管理将命令、地址和数据输入到存储器装置130以及从存储器装置130输出数据和状态信息。地址寄存器114与I/O控制电路系统160和行解码电路系统108以及列解码电路系统109通信以在解码之前锁存地址信号。命令寄存器124与I/O控制电路系统160和本地媒体控制器135通信以锁存传入命令。
控制器(例如,存储器装置130内部的本地媒体控制器135)响应于命令控制对存储器单元阵列104的存取,并生成外部存储器子系统控制器115的状态信息,即,本地媒体控制器135被配置成对存储器单元阵列104执行存取操作(例如,读取操作、编程操作和/或擦除操作)。本地媒体控制器135与行解码电路系统108和列解码电路系统109通信,以响应于地址控制行解码电路系统108和列解码电路系统109。
本地媒体控制器135还与高速缓存寄存器172通信。高速缓存寄存器172锁存由本地媒体控制器135所引导的传入或传出数据以暂时存储数据,同时存储器单元阵列104正忙于分别写入或读取其它数据。在编程操作(例如,写入操作)期间,可将数据从高速缓存寄存器172传递到数据寄存器170以用于传送到存储器单元阵列104;接着可将来自I/O控制电路系统160的新数据锁存在高速缓存寄存器172中。在读取操作期间,数据可从高速缓存寄存器172传递到I/O控制电路系统160以用于输出到存储器子系统控制器115;接着可将新数据从数据寄存器170传递到高速缓存寄存器172。高速缓存寄存器172和/或数据寄存器170可形成存储器装置130的页缓冲器(例如,可形成其一部分)。页缓冲器可进一步包含感测装置(图2中未展示)以感测存储器单元阵列104的存储器单元的数据状态,例如,通过感测连接到所述存储器单元的数据线的状态。状态寄存器122可与I/O控制电路系统160和本地存储器控制器135通信,以锁存状态信息来输出到存储器子系统控制器115。
存储器装置130通过控制链路132从本地媒体控制器135接收存储器子系统控制器115处的控制信号。举例来说,控制信号可包含芯片启用信号CE#、命令锁存启用信号CLE、地址锁存启用信号ALE、写入启用信号WE#、读取启用信号RE#和写入保护信号WP#。取决于存储器装置130的性质,可进一步经由控制链路132接收额外或替代控制信号(未图示)。在一些实施例中,存储器装置130经由多路复用的输入/输出(I/O)总线134从存储器子系统控制器115接收命令信号(其表示命令)、地址信号(其表示地址)和数据信号(其表示数据),且经由I/O总线134将数据输出到存储器子系统控制器115。
例如,可经由I/O控制电路系统160处的I/O总线134的输入/输出(I/O)引脚[7:0]接收命令,且接着可将所述命令写入到命令寄存器124中。可在I/O控制电路系统160处经由I/O总线134的输入/输出(I/O)引脚[7:0]接收地址,且接着可将所述地址写入到地址寄存器114中。可在I/O控制电路系统160处经由用于8位装置的输入/输出(I/O)引脚[7:0]或用于16位装置的输入/输出(I/O)引脚[15:0]接收数据,且接着可将所述数据写入到高速缓存寄存器172中。随后可将数据写入到数据寄存器170中以用于编程存储器单元阵列104。
在实施例中,可省略高速缓存寄存器172,并且可将数据直接写入到数据寄存器170中。还可在用于8位装置的输入/输出(I/O)引脚[7:0]或用于16位装置的输入/输出(I/O)引脚[15:0]上输出数据。虽然可参考I/O引脚,但其可包含实现通过外部装置(例如,存储器子系统控制器115)电连接到存储器装置130的任何导电节点,例如常用的导电衬垫或导电凸块。
所属领域的技术人员应了解,可提供额外的电路系统和信号,并且已简化图2的存储器装置130。应认识到,参考图2所描述的各种块组件的功能可不必分到集成电路装置的不同组件或组件部分。举例来说,集成电路装置的单个组件或组件部分可适于执行图2的超过一个块组件的功能性。替代地,可组合集成电路装置的一或多个组件或组件部分以进行图2的单个块组件的功能性。此外,尽管根据各种信号的接收和输出的流行惯例描述了特定I/O引脚,但应注意,可在各种实施例中使用I/O引脚(或其它I/O节点结构)的其它组合或其它数目个I/O引脚(或其它I/O节点结构)。
存储器子系统110的一或多个存储器装置可例如由利用构建在半导体芯片上的晶体管阵列的NAND存储器装置表示。如图3A中示意性所示,存储器装置的存储器单元可以是晶体管,例如金属氧化物半导体场效应晶体管(MOSFET),其具有源极(S)电极和漏极(D)电极以使电流从中通过。源极电极和漏极电极可连接到导电位线(BL),所述导电位线可由多个存储器单元共享。存储器装置可包含连接到多个字线(WL)和多个位线(BL)的阵列或存储器单元,如通过图4示意性地说明。存储器装置可进一步包含用于选择性地将WL和BL耦合到提供控制栅极和源极-漏极信号的电压源的电路系统,其出于清楚和简明起见从图4省略。
再次参考图3A,存储器单元302和304可分别连接到相同的位线N和两个不同的导电字线M和M+1。存储器单元可进一步具有控制栅极(CG)电极以接收电压信号VCG,从而控制在源极电极与漏极电极之间流动的电流的量值。更具体地说,可存在阈值控制栅极电压VT(在本文中也被称为“阈值电压”或简称为“阈值”),使得对于VCG<VT,源极-漏极电流可能较低,但一旦控制栅极电压超过阈值电压,即VCG>VT,则可大体上增加。同一存储器装置的晶体管可以通过其阈值电压的分布来表征,即P(VT)=dW/dVT,因此dW=P(VT)dVT表示任何给定晶体管的阈值电压在区间[VT,VT+dVT]内的可能性。例如,图3B示意性地示出源极-漏极电流ISD对具有不同阈值控制栅极电压的两个存储器单元,例如存储器单元302(实线)和存储器单元304(虚线)的控制栅极电压的依赖性。
为了使存储器单元为非易失性,单元可进一步配备有导电岛-电荷存储节点,其可通过绝缘层(在图3A中描绘为虚线区)与控制栅极、源电极和漏电极电隔离。响应于恰当选择的正(相对于源电位)控制栅极电压VCG,电荷存储节点可接收电荷Q,所述电荷甚至在存储器单元通电之后也可永久地存储于其上,且因此停止源极-漏极电流。电荷Q可影响阈值电压P(VT,Q)的分布。一般来说,与不带电的电荷存储节点的分布P(VT)相比,电荷Q的存在使阈值电压的分布朝向更高的电压移动。发生这种情况的原因是,可能需要更强的正控制栅极电压VCG来克服电荷存储节点电荷Q的负电位。如果可以选择性地将电荷序列Qk(其中1≤k≤2N)的任何电荷编程(然后在读取操作期间进行检测)到存储器单元中,则存储器单元可用作N位存储单元。电荷Qk优选地被选择为彼此足够不同,以使得任何两个邻近的电压分布P(VT,Qk)和P(VT,Qk+1)不重叠而由谷值裕度分隔开,从而2N个分布P(VT,Qk)与2N-1个谷值裕度间隔开。
图3C示意性地示出能够通过将存储器单元编程为相差单元的电荷存储节点上的电荷量的至少八种电荷状态而存储三个数据位的一组存储器单元的阈值控制栅极电压的分布。图3C展示以23-1=7个谷值裕度VMk分隔开的三层级单元(TLC)的2N=8个不同电荷状态的阈值电压P(VT,Qk)的分布。因此,编程成第k电荷状态(即,具有沉积在其充电存储节点上的电荷Qk)的存储器单元可存储N位的特定组合(例如,对于N=4,0110)。此电荷状态Qk可以在读出操作期间通过检测出谷值裕度VMk内的控制栅极电压VCG足以使单元向源极-漏极电流开放而前一谷线容限VMk-1内的控制栅极电压不足以使单元向源极-漏极电流开放而确定。
存储器装置可通过存储器的每一单元所存储的位数目分类。举例来说,单层级单元(SLC)存储器具有可各自存储一位数据(N=1)的单元。多层级单元(MLC)存储器具有可各自存储最多两位数据(N=2)的单元,三层级单元(TLC)存储器具有可各自存储最多三位数据(N=3)的单元,并且四层级单元(QLC)存储器具有可各自存储最多四位数据(N=4)的单元。一般来说,本文中所描述的操作可应用于具有N位(其中N>1)存储器单元的存储器装置。
例如,TLC可能够处于至少八个电荷状态Qk中的一者(其中第一状态可以是不带电状态Q1=0),其阈值电压分布由谷值裕度VMk分隔开,可以用于读出存储在存储器单元中的数据。举例来说,如果在读取操作期间确定读取阈值电压处于2N-1个谷值裕度的特定谷值裕度内,则可以确定存储器单元处于2N个可能的电荷状态中的特定电荷状态。通过识别单元的右谷值裕度,可确定其所有N位具有什么值。谷值裕度的识别符(例如其坐标,例如中心和宽度的位置)可存储在存储器控制器215的读取电平阈值寄存器中。
如上文中所提及,存储器控制器215可对存储器单元的状态进行编程,并且接着读取可通过将存储器单元的读取阈值电压VT与一或多个读取电平阈值进行比较来读取此状态。可在通过先前编程操作将存储器单元置于其带电状态中的一个中之后执行读取操作,所述先前编程操作可包含一或多个编程遍次。每一编程遍次会将适当编程电压应用于给定字线,以便将适当电荷放置在连接到字线的存储器单元的电荷存储节点上。
编程操作涉及应用于所选择(目标)字线(即,电耦合到目标存储器单元的字线)的编程电压脉冲序列。再次参考图3A,存储器单元的源极(S)电极和漏极(D)电极可连接到被多个存储器单元共享的导电位线。编程操作将经由对应字线(WL)将编程电压脉冲序列应用于控制栅极(CG)。每一编程电压脉冲将感应将电子拉动到电荷存储节点上的电场。在将每一编程脉冲应用于所选择字线之后,可通过读取存储器单元来执行验证操作,以便确定存储器单元的阈值电压VT是否已达到所要值(电压验证电平)。如果存储器单元的阈值电压VT已达到与所要状态相关联的验证电压,则存储器单元所连接的位线可在编程禁止电压下偏置,从而禁止耦合到位线的存储器单元进一步编程,即,以防止存储器单元的阈值电压VT响应于应用于所选择字线的后续编程脉冲进一步向上移位。
图5是根据本公开的一些实施方案的存储器块编程的示例方法500的流程图。方法500可由处理逻辑来执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施方案中,方法500由图1的存储器子系统控制器115和/或本地媒体控制器135执行。
虽然以特定序列或次序来示出,但是除非另外规定,否则可修改操作的次序。因此,所说明实施例应仅作为示例理解,且所说明操作可以不同次序执行,并且一些操作可并行地执行。另外,可在各种实施例中省略一或多个操作。因此,并非在每一实施例中需要所有操作。
在框502处,(例如,图1的块擦除组件113的)处理逻辑确定可用于编程操作的空闲存储器块的数量。在框504处,擦除空闲存储器块的一部分(例如,擦除空闲存储器块的所述部分的存储器单元)。在一些实施例中,在SLC模式中擦除存储器块,以准备好服务SLC写入操作。存储器块的擦除的部分可基于可用的空闲存储器块的数量。在一些示例中,擦除少数(例如,小于一半)的空闲存储器块。因此,如果稍后接收到TLC编程命令,则可以在TLC模式中擦除空闲存储器块,而不用重新擦除已在SLC模式中擦除的存储器块。在一些实施例中,已擦除的空闲存储器块的数量是有上限的。举例来说,在一些例子中,在任一时间仅可擦除预定最大数量的存储器块。给在给定时间可以擦除的存储器块的数量设上限可以通过潜在地缩短编程操作之前存储器单元被擦除的时间,减轻存储器单元处于擦除状态时电压漂移的不利影响。
在框506处,处理逻辑可以接收编程命令。在许多实施例中,编程命令是开始对(例如,已擦除存储器块的)已擦除存储器单元的集合的写入操作的命令。在框508处,处理逻辑可以检查队列中的存储器块是否被擦除。在一些实施例中,处理逻辑检查已擦除存储器块的第一页以确定存储器单元处于擦除状态。通过检查已擦除存储器块的第一页(例如,第一页的存储器单元),处理逻辑可以确定存储器块的所有存储器单元(例如,存储器块的大体上所有存储器单元,几乎所有存储器单元等)处于擦除状态。这是因为存储器单元是在块层级被擦除,这意味着存储器块的所有存储器单元是在一次操作中被擦除的。因此,基于检查存储器块的第一页的存储器单元,可以确定存储器块的所有存储器单元被擦除。如果存储器单元被发现处于擦除状态,那么存储器块可以准备好进行编程。如果存储器单元被发现不处于用于编程的状态,那么存储器块可以重新擦除。
在框510处,处理逻辑执行(例如,在框506处接收到的)编程命令。在一些实施例中,数据经由写入操作被编程到已擦除存储器块。在一些示例中,写入操作是将SLC数据写入到在SLC模式中擦除的存储器块的SLC写入操作。在其它示例中,写入操作是将TLC数据写入到在TLC模式中擦除的存储器块的TLC写入操作,或将N层级单元数据写入到在N层级单元模式中擦除的存储器块的N层级单元写入操作(其中N是如上文中所述的任何整数)。在一些实施例中,编程操作可以是“写入加速”操作,其中在SLC中尽可能快地将数据写入到存储器块。
图6是根据本公开的一些实施方案的存储器块处理协议的示例方法600的流程图。方法600可由处理逻辑来执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法600由图1的存储器子系统控制器115和/或本地媒体控制器135执行。
虽然以特定序列或次序来示出,但是除非另外规定,否则可修改操作的次序。因此,所说明实施例应仅作为示例理解,且所说明操作可以不同次序执行,并且一些操作可并行地执行。另外,可在各种实施例中省略一或多个操作。因此,并非在每一实施例中需要所有操作。
在操作602处,(例如,图1的块擦除组件的)处理逻辑确定PEC计数(例如,存储器装置的所有存储器块的平均PEC计数)是否低于预定阈值。在一些实施例中,阈值对应于存储器装置的寿命的一部分。举例来说,PEC计数低于阈值(例如,存储器装置的总预期PEC寿命的10%)指示存储器装置相对较新。在一些实施例中,如果PEC计数低于阈值,那么处理逻辑可以发起如本文中所描述的存储器块擦除协议。如果处理逻辑确定PEC计数低于阈值,那么方法前进到操作604。否则,方法前进到操作606。在一些实施例中,在发起存储器块擦除协议之后,处理逻辑可以确定PEC计数高于阈值,此时处理逻辑可以终止块擦除协议。
在操作604处,处理逻辑使得在空闲时间(例如,执行操作的处理装置的空闲时间等)期间在SLC模式中预擦除可用存储器块。在一些实施例中,预擦除的存储器块的数量基于可用的存储器块(例如,空闲可编程的存储器块)的数量。举例来说,可用存储器块的预定部分(例如,三分之一)可以被擦除以准备编程。在一些实施例中,预擦除的存储器块的数量是有上限的(例如,预擦除存储器块的预定最大数量)。
在操作606处,处理逻辑可以接收传入数据(例如,主机数据)。在一些实施例中,可以响应于编程命令而接收数据。
在操作608处,处理逻辑确定传入数据是否是SLC数据。传入数据是否是SLC数据可以指示“写入加速”事件,这意味着将尽可能快地写入数据(例如,时延尽可能小)。如果传入数据不是SLC数据(例如,传入数据是TLC数据),那么方法前进到操作610。如果传入数据是SLC数据,那么方法前进到操作620。
在操作610处,处理逻辑确定在TLC模式中擦除的存储器块和/或未被擦除的存储器块是否可用。在一些实施例中,如本文所描述,TLC数据无法写入到在SLC模式中擦除的(例如,存储器块的)存储器单元。类似地,SLC数据无法写入到在TLC模式中擦除的存储器单元。如果存储器块可用(例如,在TLC模式中擦除的存储器块可用,和/或未被擦除的存储器块可用),那么方法前进到操作612。如果存储器块不可用,那么方法前进到操作614。
在操作612处,处理逻辑可以将TLC数据编程到在TLC模式中擦除的存储器块。在未被擦除的块在操作610处被确定为可用的情况下,处理逻辑可在可以对TLC数据进行编程之前首先在TLC模式中擦除存储器块。在对TLC数据进行编程之后,方法可以循环回到操作606。
在操作614处,处理逻辑确定在SLC模式中预擦除的存储器块是否可用。这种存储器块可能已在操作604处擦除。如果SLC预擦除的存储器块可用,那么方法可以前进到操作618。如果SLC预擦除的存储器块不可用,那么方法可以前进到操作616。SLC预擦除的存储器块的不可用性可以指示尚未被擦除的存储器块的可用性。
在操作616处,处理逻辑可以在TLC模式中擦除空闲存储器块(例如,使其被擦除)。TLC擦除的存储器块可以准备好进行操作612处的编程操作。
在操作618处,处理逻辑可以在TLC模式中重新擦除SLC擦除的存储器块(例如,使其重新被擦除)。先前在SLC模式中擦除的存储器块可以在TLC模式中重新擦除,以服务于操作612处的TLC编程。
在操作620处,处理逻辑确定是否要开放新的存储器块。在一些实施例中,所述确定是基于现有的开放块的容量(例如,现有的开放块中可用于写入数据的存储器单元的数量)和/或基于自执行针对现有的开放存储器块的上一次编程操作以来已经过去的时间量。如果要开放新的存储器块,那么方法前进到操作624。如果不要开放新的存储器块,那么方法前进到操作622。
在操作622处,处理逻辑使得传入的(例如,在操作606处接收到的)SLC数据被编程到现有的开放存储器块。在数据编程之后,方法可以循环回到操作606。
在操作624处,处理逻辑确定SLC擦除的(例如,在操作604处擦除的)存储器块是否可用于编程。如果SLC擦除的块不可用,那么方法前进到操作630。在此情况下,在SLC模式中擦除可用的空闲存储器块,以准备好进行SLC编程。如果SLC擦除的块可用,那么方法前进到操作626。
在操作626处,处理逻辑发布如本文中所描述的经擦除页检查。在操作628处,处理逻辑检查已擦除存储器块的第一页(例如,存储器单元子集),以确定存储器块的存储器单元是否处于擦除状态(例如,存储器单元的电压电平尚未蠕变和/或漂移、存储器单元处于适合进行可靠编程的状态,等等)。如果存储器单元处于擦除状态,那么方法前进到操作632。如果存储器单元不处于擦除状态(例如,存储器单元的电压电平已蠕变和/或漂移、存储器单元不处于适合进行可靠编程的状态,等等),那么方法前进到操作630。
在操作630处,处理逻辑使得存储器块在SLC模式中被擦除或重新被擦除。响应于确定存储器单元不处于擦除状态(在操作628处),存储器块可以在SLC模式中被擦除(例如,重新被擦除),以将存储器单元置于擦除状态(例如,适合进行可靠编程的状态)。如上文已描述的,响应于确定擦除的SLC块不可用(在操作624处),在SLC模式中擦除可用的空闲存储器块。
在操作632处,处理逻辑将SLC数据编程到已擦除存储器块。方法然后循环回到操作606。
图7A是根据本公开的一些实施方案的将数据编程到存储器块的示例方法700A的流程图。方法700A可由处理逻辑来执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法700A由图1的存储器子系统控制器115和/或本地媒体控制器135执行。
虽然以特定序列或次序来示出,但是除非另外规定,否则可修改操作的次序。因此,所说明实施例应仅作为示例理解,且所说明操作可以不同次序执行,并且一些操作可并行地执行。另外,可在各种实施例中省略一或多个操作。因此,并非在每一实施例中需要所有操作。
在框710处,(例如,图1的块擦除组件113的)处理逻辑确定与存储器装置相关联的度量的值。在一些实施例中,度量包含存储器装置的多个存储器块的平均编程-擦除循环计数。平均PEC计数可以指示存储器装置的相对寿命。举例来说,低平均PEC计数可以反映存储器装置的大多数存储器块具有低PEC计数,这又指示存储器装置相对较新和/或未被使用。类似地,高平均PEC计数可以反映存储器装置的大多数存储器块具有高PEC计数,这又指示存储器装置相对较旧和/或使用良好。
在框720处,处理逻辑发起如本文中所描述的存储器装置的擦除协议。擦除协议可以响应于确定度量的值(例如,在框710处确定)低于预定阈值而发起。在一些示例中,处理逻辑可以确定存储器装置的平均PEC计数低于阈值(例如,存储器装置的总寿命PEC的10%)。
在框730处,处理逻辑擦除与存储器装置的一或多个存储器块相关联存储器单元集合。在一些实施例中,每一存储器块由存储器单元集合构成,且存储器单元集合进一步被划分成子集(例如,存储器页)。在一些实施例中,在对存储器块执行的擦除操作中擦除存储器块的存储器单元。在许多实施例中,在框730处擦除超过一个存储器块的存储器单元。
在框740处,处理逻辑接收针对存储器块的存储器单元集合的编程命令。在一些实施例中,编程命令是在框730处擦除存储器单元集合之后接收到的。在一些实施例中,处理逻辑进一步确定编程命令是关于将单层级单元数据编程到存储器块的被擦除到SLC擦除状态的存储器单元。在一些实施例中,编程命令是“写入加速”编程命令,这意味着将尽可能快地写入数据。在框750处,处理逻辑对存储器单元集合执行编程操作。
图7B是根据本公开的一些实施方案的存储器块擦除协议的示例方法700B的流程图。方法700B可由处理逻辑来执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法700B由图1的存储器子系统控制器115和/或本地媒体控制器135执行。
虽然以特定序列或次序来示出,但是除非另外规定,否则可修改操作的次序。因此,所说明实施例应仅作为示例理解,且所说明操作可以不同次序执行,并且一些操作可并行地执行。另外,可在各种实施例中省略一或多个操作。因此,并非在每一实施例中需要所有操作。
在框760处,(例如,图1的块擦除组件113的)处理逻辑发起存储器装置的擦除协议。在一些实施例中,如本文所描述,擦除协议是响应于处理逻辑确定度量(例如,反映存储器装置的平均PEC计数的度量)低于预定阈值而发起的。擦除协议可以响应于确定度量高于预定阈值而终止。
在框770处,作为在框760处发起的擦除协议的部分,处理逻辑确定具有空闲存储器单元集合的可用的空闲存储器块的数量。举例来说,处理逻辑可以确定有多少存储器块可用于编程(例如,不以其它方式被使用,和/或未存储正需要或正在使用的数据,等等)。
在框780处,基于在框770处确定的可用的空闲存储器块的数量,处理逻辑擦除可用的空闲存储器块的一部分的存储器单元。举例来说,处理逻辑可以擦除一半的空闲存储器块的存储器单元。在另一示例中,处理逻辑可以擦除三分之一的空闲存储器块的存储器单元。在一些实施例中,处理逻辑仅擦除某一数量的存储器块。举例来说,处理逻辑可以使得存在预定最大数量的已擦除可用空闲存储器块。最大值可以是“上限”,例如三个已擦除存储器块或八个已擦除存储器块,等等。在许多实施例中,在SLC模式中擦除空闲存储器块,以将SLC数据写入到已擦除存储器块的存储器单元。
图8示出计算机系统800的示例机器,其中可执行用于使得机器执行本文讨论的方法中的任何一或多者的指令集。在一些实施方案中,计算机系统800可以对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合至或利用存储器子系统(例如,图1的存储器子系统110),或可以用于执行控制器的操作(例如,执行操作系统以执行与图1的块擦除组件113相对应的操作)。在替代性实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定待由所述机器采取的动作的指令集的任何机器。此外,虽然示出了单个机器,但还应认为术语“机器”包含单独地或共同地执行一组(或多组)指令以执行本文所论述的方法中的任何一种或多种的机器的任何集合。
示例计算机系统800包含处理装置802、主存储器804(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器806(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储系统818,它们经由总线830彼此通信。
处理装置802表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置802也可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似物。处理装置802配置成执行指令826,以用于执行本文中所论述的操作和步骤。计算机系统800可进一步包含网络接口装置808以在网络820上通信。
数据存储系统818可包含机器可读存储媒体824(也被称为计算机可读媒体,例如非暂时性计算机可读媒体),其上存储有体现本文中所描述的方法或功能中的任何一或多者的一或多组指令826或软件。指令826还可在其由计算机系统800执行期间完全或至少部分地驻存在主存储器804内和/或处理装置802内,主存储器804和处理装置802也构成机器可读存储媒体。机器可读存储媒体824、数据存储系统818和/或主存储器804可对应于图1的存储器子系统110。
在一个实施例中,指令826包括实施对应于图1的块擦除组件113的功能性的指令。虽然在示例实施例中将机器可读存储媒体824展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包含能够存储或编码指令集以用于由机器执行且使得机器执行本公开的方法中的任何一或多者的任何媒体。因此应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指将计算机系统的寄存器和存储器内的表示为物理(电子)数的数据操控和变换为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理数的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM和磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自连接到计算机系统总线。
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
本公开可以提供为计算机程序产品或软件,其可以包含在其上存储有可以用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施方案中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,本公开的实施例已经参照其特定示例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本发明的实施例的更广精神和范围的情况下对本发明进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
Claims (20)
1.一种系统,其包括:
存储器装置,其包括存储器阵列,所述存储器阵列包括多个存储器单元;及
处理装置,其耦合到所述存储器装置,所述处理装置执行包括以下操作的操作:
确定与所述存储器阵列相关联的度量的值,其中所述存储器阵列进一步包括多个存储器块,且其中第一存储器块包括所述多个存储器单元的存储器单元第一集合;
响应于确定所述度量的所述值低于预定阈值,发起所述存储器装置的擦除协议;
擦除与所述多个存储器块的一或多个存储器块相关联的存储器单元集合;
在擦除所述存储器单元集合之后,接收针对所述存储器单元第一集合的编程命令;及
响应于接收到所述编程命令,对所述存储器单元第一集合执行编程操作。
2.根据权利要求1所述的系统,其中所述操作进一步包括:
响应于发起所述擦除协议,确定包括所述多个存储器单元的空闲存储器单元集合的空闲存储器块的数量;及
基于空闲存储器块的所述数量,擦除所述空闲存储器块的一部分的存储器单元。
3.根据权利要求1所述的系统,其中所述操作进一步包括:
基于所述存储器单元第一集合的存储器单元第一子集的状态,确定所述存储器单元第一集合被擦除,
其中所述编程操作进一步响应于确定所述第一存储器块的所述存储器单元第一集合被擦除而执行。
4.根据权利要求3所述的系统,其中所述操作进一步包含:
确定所述存储器单元第一子集是否处于擦除状态;及
响应于确定所述存储器单元第一子集不处于所述擦除状态,擦除所述存储器单元第一集合。
5.根据权利要求1所述的系统,其中所述操作进一步包括:
响应于确定所述度量的所述值高于所述预定阈值,终止所述存储器装置的所述擦除协议。
6.根据权利要求1所述的系统,其中所述度量包括所述存储器阵列的所述多个存储器块的平均编程-擦除循环计数。
7.根据权利要求1所述的系统,其中所述操作进一步包括:
确定所述编程命令是关于编程单层级单元SLC数据,且其中所述第一存储器块的所述存储器单元第一集合被擦除到SLC擦除状态。
8.一种非暂时性计算机可读存储媒体,其存储可执行指令,所述可执行指令在由管理存储装置的控制器执行时使得所述控制器:
确定与所述存储器装置的存储器阵列相关联的度量的值,其中所述存储器阵列包括多个存储器块,其中所述多个存储器块中的每一存储器块包括多个存储器单元的存储器单元集合,且其中第一存储器块包括存储器单元第一集合;
响应于确定所述度量的所述值低于预定阈值,发起存储器装置的擦除协议;
擦除与所述多个存储器块的一或多个存储器块相关联的存储器单元集合;
在擦除所述存储器单元集合之后,接收针对所述存储器单元第一集合的编程命令;及
响应于接收到所述编程命令,对所述存储器单元第一集合执行编程操作。
9.根据权利要求8所述的非暂时性计算机可读存储媒体,其中所述控制器进一步用以:
响应于发起所述擦除协议,确定包括所述多个存储器单元的空闲存储器单元集合的空闲存储器块的数量;及
基于空闲存储器块的所述数量,擦除所述空闲存储器块的一部分的存储器单元。
10.根据权利要求8所述的非暂时性计算机可读存储媒体,其中所述控制器进一步用以:
基于所述存储器单元第一集合的存储器单元第一子集的状态,确定所述存储器单元第一集合被擦除,
其中所述编程操作进一步响应于确定所述第一存储器块的所述存储器单元第一集合被擦除而执行。
11.根据权利要求10所述的非暂时性计算机可读存储媒体,其中所述控制器进一步用以:
确定所述存储器单元第一子集是否处于擦除状态;及
响应于确定所述存储器单元第一子集不处于所述擦除状态,擦除所述存储器单元第一集合。
12.根据权利要求8所述的非暂时性计算机可读存储媒体,其中所述控制器进一步用以:
响应于确定所述度量的所述值高于所述预定阈值,终止所述存储器装置的所述擦除协议。
13.根据权利要求8所述的非暂时性计算机可读存储媒体,其中所述度量包括所述存储器阵列的所述多个存储器块的平均编程-擦除循环计数。
14.根据权利要求8所述的非暂时性计算机可读存储媒体,其中所述控制器进一步用以:
确定所述编程命令是关于编程单层级单元SLC数据,且其中所述第一存储器块的所述存储器单元第一集合被擦除到SLC擦除状态。
15.一种方法,其包括:
确定与存储器装置相关联的度量的值,其中所述存储器阵列包括多个存储器块,其中所述多个存储器块中的每一存储器块包括多个存储器单元的存储器单元集合,且其中第一存储器块包括存储器单元第一集合;
响应于确定所述度量的所述值低于预定阈值,发起所述存储器装置的擦除协议;
擦除与所述多个存储器块的一或多个存储器块相关联的存储器单元集合;
在擦除所述存储器单元集合之后,接收针对所述存储器单元第一集合的编程命令;及
响应于接收到所述编程命令,对所述存储器单元第一集合执行编程操作。
16.根据权利要求15所述的方法,其进一步包括:
响应于发起所述擦除协议,确定包括所述多个存储器单元的空闲存储器单元集合的空闲存储器块的数量;及
基于空闲存储器块的所述数量,擦除所述空闲存储器块的一部分的存储器单元。
17.根据权利要求15所述的方法,其进一步包括:
基于所述存储器单元第一集合的存储器单元第一子集的状态,确定所述存储器单元第一集合被擦除,
其中所述编程操作进一步响应于确定所述第一存储器块的所述存储器单元第一集合被擦除而执行。
18.根据权利要求15所述的方法,其进一步包括:
响应于确定所述度量的所述值高于所述预定阈值,终止所述存储器装置的所述擦除协议。
19.根据权利要求15所述的方法,其中所述度量包括所述存储器装置的所述多个存储器块的平均编程-擦除循环计数。
20.根据权利要求15所述的方法,其进一步包括:
确定所述编程命令是关于编程单层级单元SLC数据,且其中所述第一存储器块的所述存储器单元第一集合被擦除到SLC擦除状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/898,333 US20240069735A1 (en) | 2022-08-29 | 2022-08-29 | Memory block erase protocol |
US17/898,333 | 2022-08-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117636978A true CN117636978A (zh) | 2024-03-01 |
Family
ID=89999679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311087474.XA Pending CN117636978A (zh) | 2022-08-29 | 2023-08-28 | 存储器块擦除协议 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240069735A1 (zh) |
CN (1) | CN117636978A (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7103734B1 (en) * | 2003-04-28 | 2006-09-05 | Advanced Micro Devices, Inc. | System and method for identifying empty locations in a scrambled memory |
US9971681B2 (en) * | 2016-06-01 | 2018-05-15 | Nanjing University | Lazy real time garbage collection method |
US10877682B2 (en) * | 2019-01-10 | 2020-12-29 | Western Digital Technologies, Inc. | Non-disruptive cross-protocol live data migration |
JP7321851B2 (ja) * | 2019-09-09 | 2023-08-07 | キオクシア株式会社 | メモリシステムおよびガベッジコレクション制御方法 |
CN111400201B (zh) * | 2020-03-19 | 2022-08-16 | 合肥兆芯电子有限公司 | 快闪存储器的数据整理方法、存储装置及控制电路单元 |
US11372774B2 (en) * | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
-
2022
- 2022-08-29 US US17/898,333 patent/US20240069735A1/en active Pending
-
2023
- 2023-08-28 CN CN202311087474.XA patent/CN117636978A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240069735A1 (en) | 2024-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230176741A1 (en) | Validating read level voltage in memory devices | |
US11967387B2 (en) | Detrapping electrons to prevent quick charge loss during program verify operations in a memory device | |
CN113096712A (zh) | 存储器子系统中的选择栅极维护 | |
US20230060312A1 (en) | Continuous memory programming operations | |
US11664079B2 (en) | Intervallic dynamic start voltage and program verify sampling in a memory sub-system | |
US11574690B2 (en) | Sequential wordline erase verify schemes | |
CN115240742A (zh) | 存储器编程操作中的电力损耗免疫 | |
US20240069735A1 (en) | Memory block erase protocol | |
US20240062827A1 (en) | Low stress refresh erase in a memory device | |
US20220415414A1 (en) | Partial block erase operations in memory devices | |
US11749346B2 (en) | Overwrite mode in memory programming operations | |
US11908523B2 (en) | Express programming using advanced cache register release in a memory sub-system | |
US20230393784A1 (en) | Data path sequencing in memory systems | |
US12002524B2 (en) | Sequential wordline erase verify schemes | |
US20230307055A1 (en) | Concurrent slow-fast memory cell programming | |
US11742036B2 (en) | Reducing maximum programming voltage in memory programming operations | |
US11494084B2 (en) | Managing dielectric stress of a memory device using controlled ramping slopes | |
US20230359388A1 (en) | Memory read calibration based on memory device-originated metadata characterizing voltage distributions | |
US20230067457A1 (en) | Defect detection during erase operations | |
US20240176508A1 (en) | Reliability gain in memory devices with adaptively selected erase policies | |
US20230352107A1 (en) | Single-level cell program-verify, latch-limited data recovery | |
US20240143179A1 (en) | Resuming suspended program operations in a memory device | |
US20230386583A1 (en) | Adaptive porogramming delay scheme in a memory sub-system | |
US20220310158A1 (en) | All levels dynamic start voltage programming of a memory device in a memory sub-system | |
CN115705891A (zh) | 具有脉冲步长以促进擦除暂停的存储器真擦除 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |