一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

非易失性存储器的多遍编程的粒度错误报告的制作方法

2022-03-31 10:46:17 来源:中国专利 TAG:


1.本公开的实施例总体上涉及存储器子系统,且更确切地说,涉及非易失性存储器的多遍编程的粒度错误报告。


背景技术:

2.存储器子系统可以是存储系统、存储器模块或存储装置和存储器模块的混合。存储器子系统可包含一或多个存储数据的存储器组件。例如,存储器组件可以是非易失性存储器组件和易失性存储器组件。大体来说,主机系统可利用存储器子系统在存储器组件处存储数据及从存储器组件检索数据。
附图说明
3.根据下文提供的详细描述和本公开的各种实施例的附图将更加全面地理解本公开。
4.图1a示出根据本公开的一些实施例的包含存储器子系统的实例计算环境。
5.图1b是根据本公开的一些实施例的图1a的存储器子系统的框图。
6.图2a是根据本公开的一些实施例的表示在第二遍编程之前和之后编程到一组存储器单元中的状态的图形。
7.图2b是根据本公开的一些实施例的表示在首页不含数据的情况中可以如何读出第二遍编程数据的图形。
8.图3是根据本公开的一些实施例的提供非易失性存储器的多遍编程的粒度错误报告的实例方法的流程图。
9.图4是根据本公开的其它实施例的提供非易失性存储器的多遍编程的粒度错误报告的实例方法的流程图。
10.图5是其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
11.本公开的方面涉及非易失性(nvm)存储器的多遍编程的粒度及精确错误报告。存储器子系统可以是存储装置、存储器模块或存储装置和存储器模块的混合。存储装置和存储器模块的实例在下文结合图1a描述。大体来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供将存储在存储器子系统处的数据,并且可请求从存储器子系统检索的数据。
12.存储器子系统可包含可存储来自主机系统的数据的多个存储器组件。每个存储器组件可包含不同类型的媒体。媒体的实例包含但不限于非易失性存储器的交叉点阵列和基于快闪的存储器,例如单层级单元(slc)存储器、三层级单元(tlc)存储器和四层级单元(qlc)存储器。不同类型的媒体的特性可针对每一媒体类型而不同。与存储器组件相关联的特性的一个实例是数据密度。数据密度对应于存储器组件的每个存储器单元(例如,nand存
储器单元)可以存储的数据(例如,数据位)的量。使用基于快闪的存储器的实例,四层级单元(qlc)可存储四个数据位,而单层级单元(slc)可存储一个数据位。因此,包含qlc存储器单元的存储器组件将具有比包含slc存储器单元的存储器组件高的数据密度。尽管本文所使用的实例涉及qlc存储器,但是在额外实施例中,原理和概念还适用于tlc存储器或其它多层级单元存储器。
13.在qlc存储器中,一组存储器单元中的每一个在多遍编程期间使用16个电压电平(针对16种状态)编程有四个位。在第一遍编程中,下页(lp)、上页(up)和额外逻辑页(xp)中的每一个被编程到所述一组存储器单元中,以完成前三个位的编程,例如,每个位八个状态。在第二遍编程中,编程首页(tp)以完成第四个位的编程,并且在同一物理存储器单元中总共有八个额外状态。
14.然而,通常会有一些情况(例如,电源故障)导致第二遍编程发生故障或没有完成,即使第一遍编程完成且可读。在此情况下,前三个位(lp、up、xp)已经写入,但第四个位(tp)没有写入。更复杂的问题是写入数据的纠错码(ecc)校验(例如,低密度奇偶校验(ldpc))仍然可能通过。这是因为从假设遗漏的tp读取的数据是在第一遍编程期间写入到存储器单元的同一物理位置的前三个位(lp、up、xp)的算术组合。因为数据不存在,例如,tp是空的,当读取请求被填充到nvm存储器中的所述位置时,读取请求中的第二逻辑地址将不匹配在存储器组件的物理地址处存储有数据的逻辑地址。这一地址失配触发存储器控制器检测并向主机报告解码错误,例如,不可校正数据错误。存储器控制器的固件无法分辨这一解码错误是是否真实。因此,存储器控制器通常报告解码错误并停止,使得存取存储器的软件程序暂停,并产生死锁情形。除了执行死锁恢复外没有其它解决方案,死锁恢复在一些情况下需要重新启动软件程序,从而导致用户混乱和生产力下降。
15.本公开的方面通过提供超出报告解码错误之外的额外错误报告粒度来解决上述和其它不足。通过在上述tp页为空的情况下提供空页错误的检测和报告,存储器控制器可触发写入操作的重新启动。写入操作的重新启动可致使主机系统重新发送数据以进行正确编程,例如,通过数据擦除并写入到存储器组件。因此,报告与存储器解码错误不同的错误可产生比从死锁情形和暂停程序恢复好得多的解决方案。
16.在一个实施例中,存储器组件可响应于完成多遍编程中的第二遍编程,写入存储在nvm存储器中的标志字节的多个标志位(例如,从“1”到“0”)。响应于读取请求,存储器控制器可检测读取请求内的第二逻辑地址不匹配与所述一组存储器单元的物理地址相关联的逻辑地址。存储器控制器可接着执行校验,以确定所述多个标志位内的第一值(例如,在写入是一到零的情况下为一)的数目。响应于第一值的数目不满足阈值标准,存储器控制器可向向主机计算装置报告不可校正数据错误,因为tp不是空的。阈值标准可以是第一值的数目大于或等于所述多个标志位的数目的大致50%。然而,如果第一值的数目符合这个阈值标准,那么在第二遍编程后不设置标志位,且tp是空的。在此情形下,存储器控制器可报告空页错误。
17.在额外或替代实施例中,具体地说,在上述检测产生空页错误时,存储器控制器可对第一遍编程的第一数据进行求和以产生组合数据(例如,lp up xp)。存储器控制器可进一步通过对组合数据执行算术运算来计算第二值,例如,在一个实施例中,产生(lp up xp)模2。存储器控制器可接着通过比较第二值与(例如,tp的)第二遍编程的第二数据的第三值
产生差值。存储器控制器可响应于差值满足阈值标准,例如,小于第二值的位的数目的5%到15%,向主机计算装置报告空页错误。否则,如果差值不满足这个阈值标准,那么存储器控制器可向主机计算装置报告不可校正数据错误。
18.图1a示出根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112a到112n。存储器组件112a到112n可以是易失性存储器组件、非易失性存储器组件或其组合。存储器子系统110可以是存储装置、存储器模块或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小外廓dimm(so-dimm)和非易失性双列直插式存储器模块(nvdimm)。
19.计算环境100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1a示出耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120使用存储器子系统110以例如将数据写入到存储器子系统110和从存储器子系统110读取数据。如本文所使用,“耦合到”大体上是指组件之间的连接,连接可为间接通信连接或直接通信连接(例如,无中间组件),无论是有线的还是无线的,包含例如电学、光学、磁性等连接。
20.主机系统120可以是计算装置,例如桌上型计算机、膝上型计算机、网络服务器、移动装置或包含存储器和处理装置的此类计算装置。主机系统120可包含或耦合到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可通过物理主机接口耦合到存储器子系统110。如本文中所使用,“耦合到”大体是指组件之间的连接,所述连接可以是间接通信连接或直接通信连接(例如,不具有中间组件),不管是有线还是无线,包含例如电气、光学、磁性等连接。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行连接的scsi(sas)等。物理主机接口可用于在主机系统120和存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)接口来存取存储器组件112a到112n。物理主机接口可提供用于在存储器子系统110和主机系统120之间传递控制、地址、数据和其它信号的接口。
21.存储器组件112a到112n可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(nand)型快闪存储器。存储器组件112a到112n中的每一个可包含存储器单元(例如,nand存储器单元)的一或多个阵列,例如单层级单元(slc)或多层级单元(mlc)(例如,三层级单元(tlc)或四层级单元(qlc))。在一些实施例中,特定存储器组件可同时包含存储器单元的slc部分和mlc部分。存储器单元中的每一个可存储供主机系统120使用的一或多个数据位(例如,数据块)。尽管描述了非易失性存储器组件(例如nand型快闪存储器),但是存储器组件112a到112n可以基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件112a到112n可以是但不限于随机存取存储器(ram)、只读存储器(rom)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、相变存储器(pcm)、磁随机存取存储器(mram)、或非(nor)快闪存储器、电可擦除可编程只读存储器(eeprom)和非易失性存储器单元的交叉点阵列。非易失性存储器
的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻改变而执行位存储。另外,相比于许多基于快闪的存储器,交叉点非易失性存储器可执行就地写入操作,其中非易失性存储器单元可以在非易失性存储器单元先前没有擦除的情况下进行编程。此外,存储器组件112a到112n的存储器单元可以分组为存储器页或数据块,它们是指用于存储数据的存储器组件的单元。
22.存储器系统控制器115(下文称为“控制器”)可与存储器组件112a到112n通信以执行操作,例如在存储器组件112a到112n处读取数据、写入数据或擦除数据和其它这类操作。控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。控制器115可包含经配置以执行存储在本地存储器119中的指令的处理器(处理装置)117。在所示出的实例中,控制器115的本地存储器119包含嵌入式存储器,其经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程的指令,包含处理存储器子系统110和主机系统120之间的通信。在一些实施例中,本地存储器119可包含存储存储器指标、所获取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。尽管图1中的实例存储器子系统110已被示出为包含控制器115,但是在本公开的另一个实施例中,存储器子系统110无法包含控制器115,而是可以依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
23.一般来说,控制器115可从主机系统120接收命令或操作,并且可将命令或操作转换成指令或适当的命令,以实现对存储器组件112a到112n的所需存取。控制器115可以负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和纠错码(ecc)操作、加密操作、高速缓存操作和与存储器组件112a到112n相关联的逻辑块地址和物理块地址之间的地址转化。控制器115可进一步包含通过物理主机接口与主机系统120通信的主机接口电路系统。主机接口电路系统可将从主机系统接收的命令转换成存取存储器组件112a到112n的命令指令,并将与存储器组件112a到112n相关联的响应转换成主机系统120的信息。
24.存储器子系统110还可包含没有示出的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从控制器115接收地址并对所述地址进行解码以存取存储器组件112a到112n。
25.存储器子系统110包含可用于如本文所公开的非易失性(nvm)存储器的多遍编程的粒度和精确错误报告的错误确定组件113。在一些实施例中,控制器115包含错误确定组件113的至少一部分。例如,控制器115可包含经配置以执行存储在本地存储器119中的用于执行本文中所描述的操作的指令的处理器117(处理装置)。在一些实施例中,错误确定组件113是主机系统120、应用程序或操作系统的部分。
26.错误确定组件113可接收或检测与存储器子系统110的存储器组件112a到112n相关联的错误,所述错误可以处于一或多个数据块(例如,一组存储器单元)的粒度。响应于当读取请求内的逻辑地址不匹配在存储器组件中的物理地址处存储有数据的逻辑地址时验证特定阈值标准,错误确定组件113可向主机系统120报告特定粒度的错误。例如,错误可为空页错误,例如,第二遍编程的tp是空的,或不可校正页错误,例如,存在真实的解码错误。
下文描述了关于错误确定组件113的操作的其它细节。
27.如先前所论述,在qlc存储器中,一组存储器单元中的每一个在多遍编程期间使用16个电压电平(针对16种状态)编程有四个位,如图2a中所示。在第一遍编程中,下页(lp)、上页(up)和额外逻辑页(xp)中的每一个被编程到所述一组存储器单元中,以完成前三个位的编程,例如,每个位八个状态。在第二遍编程中,编程首页(tp)以完成第四个位的编程,且在同一物理存储器单元中总共有八个额外状态。通过在不同的两遍编程中在不同电压电平下编程所述一组状态,相邻状态——通过缩小nand存储器不断接近彼此——不大可能被干扰或被不正确地编程,例如,由于电压状态之间的耦合牵制效应。因此,非易失性存储器的多遍编程减少了写入错误的数目。
28.然而,通常会有一些情况导致第二遍编程发生故障或没有完成,即使第一遍编程完成且可读。可能导致这种情形的最常见情形是第一遍编程完成但是电源故障(或其它写入相关错误)导致第二遍编程未完成。在此情况下,前三个位(lp、up、xp)已经写入,但第四个位(tp)没有写入。更复杂的问题是写入数据的纠错码(ecc)校验(例如,低密度奇偶校验(ldpc))仍然可能通过。这是因为从假设遗漏的tp读取的数据是在第一遍编程期间写入到存储器单元的同一物理位置的前三个位(lp、up、xp)的算术组合。在一个实施例中,所述算术组合是(lp up xp)模二(“2”),但是可以设想其它组合。(lp up xp)的常规ldpc引擎中的ecc校验与(lp up xp)模2的ecc校验一样通过。通过这种方式,尽管写入操作的ecc校验通过,但是数据是不完整的,并且会在控制器尝试读取所述数据时产生错误,如将详细解释的。
29.更确切地说,图2b是根据本公开的一些实施例的表示在首页不含数据的情况下可以如何读出第二遍编程(例如,tp数据)的图形。在深度错误处理的情况下,存储器控制器的固件可能会将读取层级调低约300毫伏。如所示出,其中tp数据为空的tp读取期间的数据读出包含在rl1、rl3、rl5、rl7、rl9、rl11、rl13和rl15处读取,其中“rl”表示“读取层级”。存储器组件可由此基于表1中所示的16状态格雷译码,在读取之间自动为单元分配tp数据,表1是根据lp、up和xp数据的算术组合。例如,在一个实施例中,tp

=(lp up xp)模2,其中lp up xp可确定为逻辑“或”运算。
30.8状态xp位8状态up位8状态lp位tp'(读出为:)11110110001110101001000001011100
31.表1
32.在各种实施例中,因为数据不存在,例如,tp是空的,并且因此数据和相关联的逻辑地址不存在,即使实际读出的数据可以通过ecc校验。因此,当读取请求被填充到nvm存储器中的所述位置时,读取请求中的第二逻辑地址将不匹配与存储在存储器组件的物理地址
处的数据相关联的逻辑地址,例如,因为tp的逻辑地址不存在。这一地址失配触发存储器控制器(例如,处理装置)检测(并向主机报告)解码错误,例如,不可校正数据错误。存储器控制器的固件无法分辨这一解码错误是否真实。因此,存储器控制器通常报告解码错误并停止,使得存取存储器的软件程序暂停。响应于死锁情形,可同样引起软件挂机,例如,在死锁情形中,存储器控制器等待另一过程来完成它在存储器位置上的保持,同时所述过程等待存储器控制器结束它的存取。除了执行死锁恢复外没有其它解决方案,死锁恢复在一些情况下需要重新启动软件程序,从而导致用户混乱和生产力下降。然而,因为空tp的情况不是真实的解码错误,这样报告它是不正确的,并且可能会导致已暂停软件程序的最坏情况情形。
33.图1b是根据本公开的一些实施例的图1a的存储器子系统110的框图。在实施例中,存储器子系统110包含耦合到存储器组件112a的控制器115,所述存储器组件描绘为存储器组件112a到112n中的任一个的示例。存储器组件112a可包含本地媒体控制器130、标志字节140(例如,存储在存储器单元内)和rom块150。在一个实施例中,标志字节140是存储器单元群组的lp数据中的tp_programmed_flag字节。本地媒体控制器130可将控制器115、rom块150和标志字节140耦合在一起,如所示。在一个实施例中,本地媒体控制器130将在存储器组件112a的一或多个存储器单元上执行从控制器115接收的操作。
34.在一个实施例中,本地媒体控制器130经由开放式nand快闪接口(onfi)125耦合到控制器115,所述接口在控制器115是ssd控制器且存储器组件112a是存储器的nand组件时是控制器115和存储器组件112a之间的通信接口。此外,在一些实施例中,本地媒体控制器130是包含将转换来自onfi接口的命令(由控制器115发送)以存取存储器单元的硬件状态机的微控制器。例如,本地媒体控制器130可包含体现为状态机的控制逻辑,它通常可能无法改变,并且遵循控制器115所指示的命令或操作。在本公开中,除了存储器单元之外,本地媒体控制器130的状态机进一步用于与rom块150和标志字节140中的一个或两个介接。
35.在各种实施例中,标志字节140包含多个标志位142(例如,48位),其中的一些标志位在成功完成对应的一组存储器单元后写入。因此,在存储器组件112a中针对存储器的每个块可存在标志字节140,为了易于解释,均未示出。响应于多遍编程命令,控制器115可执行到所述一组存储器单元的多遍写入。假设第二遍编程完成,本地媒体控制器130可通过写入标志字节140中的数个标志位142来记录此类完成。在一个实施例中,标志位142全部以值一(“1”)开始,并且在完成tp的第二遍编程后,本地媒体控制器130可将值零(“0”)写入一半或超过一半的标志位142。在另一实施例中,标志位142以值零(“0”)开始,并且响应于第二遍编程的完成,本地媒体控制器130可将值一(“1”)写入一半或超过一半的标志位142。通过这种方式,空页的阈值标准可以是标志位142的第一值(不管是在第一实施例中的一还是在第二实施例中的零)的数目大于特定阈值,例如50%的标志位142(例如,24个位)。换句话说,剩余超过50%的标志位为第一值指示实际数据在第二遍编程期间不可能完成写入,并且因此应该报告为空页错误。
36.另外参考图1b,rom块150可以是存储器组件112a的存储器单元的一部分,在一个实施例中仅作为rom保留以供系统使用。rom块150可含有用于nand装置运算的配置参数的固定数据结构。在实施例中,rom块150可包含查找表152。当写入命令实现且数据被写入到存储器单元的块时,本地媒体控制器130可更新查找表152,以创建写入命令中的逻辑地址
和存储器组件112a中写入数据的物理地址(例如,nand位置)之间的映射。因此,查找表152还可被称为逻辑-物理地址映射表。
37.在实施例中,当随后接收到包含第二逻辑地址的读取请求时,本地媒体控制器130可存取查找表152并确定存储器组件112a中的物理地址。假设第二逻辑地址匹配先前写入命令的逻辑地址。本地媒体控制器130可接着从存储器组件112a中对应于物理地址的位置检索先前写入的数据和逻辑地址。如果这个逻辑地址(从nand位置检索到)不匹配读取请求中的第二逻辑地址,那么控制器115检测到错误并将所述错误报告给主机系统120。所述错误通常是解码错误,例如,不可校正数据错误。但是,如所论述,在错误的原因实际是由第二遍编程不完整所致的空tp的情况下,控制器115可向主机系统120报告空页错误,如参考图3-4将更详细地论述。
38.图3是根据本公开的一些实施例的提供非易失性存储器的多遍编程的粒度错误报告的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1a-1b的控制器115(例如,错误确定组件113)和/或本地媒体控制器130执行。尽管以特定顺序或次序示出,但是除非另外指定,否则过程的次序可以修改。因此,所示实施例应理解为仅作为实例,且所示过程可以不同次序执行,并且一些过程可以同时执行。另外,在各种实施例中,一或多个过程可以省略。因此,并非所有过程在每个实施例中都是需要的。其它过程流程是可能的。
39.在操作310处,响应于完成一组存储器单元的(例如,tp的)第二遍编程,存储器组件将多个标志位写入所述一组存储器单元内。如上文所论述,这些多个标志位可作为值一(“1”)开始,并且在写入时变成值零(“0”)(或者反过来)。如果第二遍编程完成,那么它可将零值写入50%或超过50%的所述多个位,例如,或60%或超过60%,或某一其它百分比,这取决于在完成第二遍编程后写入的位的数目。在操作320处,在接收到读取请求后,处理逻辑可确定读取请求的第二逻辑地址不匹配与存储在所述一组存储器单元的物理地址处的数据相关联的逻辑地址。这一确定通常产生解码错误,例如,不可校正数据错误。然而,实际上,方法300可对错误执行额外诊断,以确定错误是不是由空tp所致。
40.另外参考图3,在操作330处,处理逻辑可确定多个标志位内的第一值的数目,例如,先前论述的第一实施例中的值一(“1”)的数目。例如,如果值一的数目超过50%的所述多个标志位,那么第二遍编程未完成,并且空页错误是要报告的适当错误。在操作340处,处理逻辑可确定第一值的数目是否满足阈值标准,例如,大于或等于大致所述多个标志位的数目的50%。在操作350处,响应于第一值的数目不满足阈值标准(例如,标志位小于50%的一的数目),处理逻辑可向计算装置报告不可校正数据错误,例如,由以下事实所致:标志位的数目指示第二遍编程完成。在操作360处,响应于第一值的数目满足阈值标准(例如,标志位大于或等于50%的一的数目),处理逻辑可向主机计算装置报告空页错误,例如,在第二遍编程期间编程的首页是空的。
41.图4是根据本公开的其它实施例的提供非易失性存储器的多遍编程的粒度错误报告的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,
在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1a-1b的控制器115(例如,错误确定组件113)和/或本地媒体控制器130执行。尽管以特定顺序或次序示出,但是除非另外指定,否则过程的次序可以修改。因此,所示实施例应理解为仅作为实例,且所示过程可以不同次序执行,并且一些过程可以同时执行。另外,在各种实施例中,一或多个过程可以省略。因此,并非所有过程在每个实施例中都是需要的。其它过程流程是可能的。
42.在操作410处,响应于具有逻辑地址的写入请求,处理逻辑可执行一组存储器单元的多遍编程。在操作420处,在接收到读取请求后,处理逻辑可确定读取请求内的第二逻辑地址不匹配与存储在所述一组存储器单元的物理地址处的数据相关联的逻辑地址。这一确定通常产生解码错误,例如,不可校正数据错误。然而,实际上,方法400可对错误执行额外诊断,以确定错误是不是由空tp所致。方法400可为图3的方法300到额外或替代实施例,以响应于逻辑寻址的失配而提供更加粒度的错误报告。
43.在操作430处,处理逻辑可对第一遍编程的第一数据进行求和以产生组合数据,例如,其中所述第一数据包含下页(lp)、上页(up)和额外页(xp)中的每一个的数据的子部分。例如,第一数据的求和可通过逻辑“或”运算执行。在操作440处,处理逻辑可进一步通过对组合数据执行算术运算来产生(或计算)第一值。在一个实施例中,算术运算是模n,因此第一值可以是(lp up xp)模n(其中n是2、4、6等等),或者对第一数据的组合进行某一其它算术运算的结果。在操作450处,处理逻辑可通过比较第一值与第二遍编程的第二数据的第二值来产生差值。例如,第二值可以是从对应于第二遍编程的逻辑地址的地址读出的数据。如先前所论述,当tp为空时,读出的第二数据可与第一数据的算术组合相同或类似,例如,lp up xp的组合。在一个实施例中,例如,差值的确定可通过使用xor运算来执行。
44.继续参考图4,在操作460处,处理逻辑可确定差值是否满足阈值标准,例如,小于第一值的位的数目的5%到15%。在一个实施例中,例如,这一阈值标准可以在500-700个位之间。因为当首页为空时,第二数据应该与对组合第一数据进行的算术运算大致相同,所以可以选定这个阈值标准。如上文所论述,在一个实施例中,由此当tp为空时读出为第二数据的内容可与(lp up xp)模2大致相同。在操作470处,响应于差值不满足阈值标准,处理逻辑可向主机计算装置报告不可校正数据错误,例如,真实解码错误已发生,因为算术已验证首页不为空。在操作480处,响应于差值满足阈值标准,处理逻辑可报告空页错误,例如,在第二遍编程期间编程的首页是空的。
45.方法400可以提供作为方法300的替代方案,或者可以提供作为图3的方法300的确认校验。如果作为确认校验,那么方法400可在方法300产生空页错误之后执行,例如,以在向主机系统120报告所述错误之前确认它是空页错误。这种双重校验方法可以是有利的,因为方法300可通过对多个标志位142进行单次读取以确定第二遍编程是否完成而快速执行。但是,因为标志位142也可能经受写入错误,所以方法400的确认校验实现在报告所述错误为空页之前能够确保首页是空的。相比于方法300,方法400的额外数据读取和算术步骤更为资源密集型,但是如果有任何额外的等待时间能够确保报告正确的错误并且响应于所述错误采取正确的动作,则值得付出努力。
46.图5示出计算机系统500的实例机器,所述实例机器内可以执行用于使机器执行本文所论述的方法中的任何一或多个的一组指令。在一些实施例中,计算机系统500可对应于
主机系统(例如,图1a的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1a-1b的存储器子系统110),或者可用于执行控制器115的操作(例如,以执行操作系统,从而执行对应于图1a的错误确定组件113的操作)。在替代实施例中,所述机器可以在lan、内联网、外联网和/或互联网中连接(例如,联网)到其它机器。所述机器可以客户端-服务器网络环境中的服务器或客户端机器的资格操作,作为对等(或分布式)网络环境中的对等机器操作,或作为云计算基础设施或环境中的服务器或客户端机器操作。
47.所述机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂巢式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(依序或以其它方式)指定将由所述机器采取的动作的一组指令的任何机器。另外,尽管示出单个机器,但术语“机器”还应被认为包含机器的任何集合,所述机器的集合单独地或共同地执行一组(或多组)指令以执行本文论述的方法中的任何一或多个。
48.实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器506(例如,快闪存储器、静态随机存取存储器(sram)等),以及数据存储系统518,它们经由总线530彼此通信。
49.处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502还可以是一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置502经配置以执行用于执行本文中所论述的操作和步骤的指令526。计算机系统500可进一步包含经由网络520通信的网络接口装置508。
50.数据存储系统518可包含机器可读存储媒体524(也被称为计算机可读媒体),在其上存储一组或多组指令526或体现本文中所描述的方法或功能中的任何一或多个的软件。指令526在由同样构成机器可读存储媒体的计算机系统500、主存储器504和处理装置502执行期间还可完全地或至少部分地驻存在主存储器504内和/或处理装置502内。机器可读存储媒体524、数据存储系统518和/或主存储器504可对应于图1a-1b的存储器子系统110。
51.在一个实施例中,指令526包含实施对应于错误确定组件(例如,图1a的错误确定组件113)或本地媒体控制器130的固件的功能性的指令。尽管在实例实施例中机器可读存储媒体524示出为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一组或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的一组指令且使机器执行本公开的方法中的任何一或多个的任何媒体。术语“机器可读存储媒体”因此应被认为包含但不限于固态存储器、光学媒体和磁性媒体。
52.先前详细描述的一些部分已经关于计算机存储器内的数据位的操作的算法和符号表示呈现。这些算法描述和表示是数据处理领域中的技术人员用来将他们的工作内容传达给本领域的其他技术人员的最有效方式。此处且一般来说,算法被设想为产生所需结果的操作的自一致序列。所述操作是需要物理量的物理操控的那些操作。通常但是不一定,这些量采取能够存储、组合、比较和以其它方式操控的电气或磁性信号的形式。已经证实,将这些信号称为位、值、元件、符号、字符、项、数字等等有时是方便的,主要是出于常用的原
因。
53.然而,应牢记,所有这些和类似术语与适当物理量相关联,且仅为应用于这些量的方便的标签。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
54.本公开还涉及用于执行本文中的操作的设备。此设备可以出于所需目的而专门构造,或其可以包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、cd-rom和磁光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,它们分别耦合到计算机系统总线。
55.本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将从下文描述中呈现用于各种这些系统的结构。此外,并不参考任何特定编程语言来描述本公开。应了解,可以使用多种编程语言来实施如本文所描述的本公开的教示内容。
56.本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
57.在前述说明书中,本公开的实施例已经参考其特定实例实施例进行描述。将显而易见的是,可在不脱离所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对其进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献