用于对经擦除的闪存页扫描的方法和系统与流程

文档序号:16468127发布日期:2019-01-02 22:54阅读:119来源:国知局
用于对经擦除的闪存页扫描的方法和系统与流程

本申请根据35u.s.c.§120要求优先权的权益作为于2017年6月26日提交的序列号为62/525,127的标题为“methodandsystemforscanningforerasedflashmemorypages”的美国临时专利申请”的非临时申请,其公开的内容通过引用其整体而并入本文用于所有目的。

本发明涉及一种用于对经擦除的闪存页扫描的方法和系统。



背景技术:

闪存(诸如nand闪存)被组织成每个块包含多个页的块。可以一次一个块顺序地将数据写入闪存块,直到闪存块中的所有页都已经用数据编程。由于在闪存块中所有页已经被编程之前的低主机写入活动或者重启或丢失事件,并非闪存块的所有页都可以处于经编程状态。



技术实现要素:

根据主题技术的方面,提供了一种用于对闪存设备中的经擦除的页扫描的方法。该方法包括接收从闪存设备中的块的页读取的第一码字,并将第一码字提供给第一解码器用于解码。该方法进一步包括从第一解码器接收指示第一码字被成功解码的第一成功指示符,并且响应于接收到第一成功指示符,将来自第一解码器的第一经解码的数据提供给第二解码器用于第一经解码的数据的验证。在从第二解码器接收到指示第一经解码的数据未被验证的第一失败指示符时,基于从第一解码器接收到的第一成功指示符和从第二解码器接收到的第一失败指示符,块的页被识别为处于经擦除状态。

根据主题技术的其他方面,提供了一种用指令编码的处理器可读介质,当指令由处理器来执行时,执行一种方法,该方法包括将第一解码器和第二解码器配置为以扫描配置操作。对于闪存设备中的多个块中的每个块,该方法包括接收从块的第一页读取的第一码字,并将第一码字提供给第一解码器用于解码。该方法进一步包括从第一解码器接收指示第一码字被成功解码的第一成功指示符,并且响应于接收到第一成功指示符,将来自第一解码器的第一经编码的数据提供给第二解码器用于第一经解码的数据的验证。该方法进一步包括从第二解码器接收指示第一经解码的数据未被验证的第一失败指示符,并且基于从第一解码器接收的第一成功指示符和从第二解码器接收的第一失败指示符,将块的页识别为处于经擦除状态。

根据主题技术的方面,提供了一种包括闪存设备的数据存储系统,该闪存设备包括多个块和控制器。对于多个块中的每个块,控制器被配置为接收从块的页读取的第一码字并将第一码字提供给第一解码器用于解码。控制器被进一步配置为如果第一码字被成功解码,则从第一解码器接收成功指示符,或者如果第一码字不可解码,则从第一解码器接收失败指示符。如果从第一解码器接收到失败指示符,则控制器被配置为将页识别为处于经编程状态。如果从第一解码器接收到成功指示符,则控制器被进一步配置为将来自第一解码器的第一经解码的数据提供给第二解码器用于验证,并且如果第一经解码的数据被验证,则从第二解码器接收成功指示符,或者如果第一经解码的数据未被验证,则从第二解码器接收失败指示符。如果从第二解码器接收到成功指示符,则控制器被进一步配置为将页识别为处于经编程状态,并且如果从第二解码器接收到失败指示符,则控制器被进一步配置为将页识别为处于经擦除状态。

根据主题技术的方面,提供了一种包括闪存设备的数据存储系统,该闪存设备包括多个块。数据存储系统包括用于从多个块中的块的页读取第一码字的装置,用于解码从块的页读取的第一码字的装置,以及用于验证从用于解码的装置接收到的经解码的数据的装置。数据存储系统进一步包括用于如果用于解码第一码字的装置成功解码第一码字并且用于验证经解码的数据的装置未验证经解码的数据,则将块的页识别为处于经擦除状态的装置。

应该理解,从下面的详细描述中,主题技术的其它配置对于本领域技术人员来说将变得显而易见,其中主题技术的各种配置以示例的方式被示出和描述。将认识到的,主题技术能够具有其它和不同的配置,并且其若干细节能够在各种其他方面进行修改,所有这些都不脱离主题技术的范围。因此,附图和详细描述被认为本质上是说明性的而不是限制性的。

附图说明

将参考附图进行详细的描述:

图1是示出根据主题技术的方面的数据存储系统的组件的框图;

图2示出根据主题技术的方面的闪存设备的示例块;

图3a示出了根据主题技术的方面的用于确定经擦除的页的过程的流程图;

图3b示出了根据一个或多个实施方式的用于执行对多于一个码字的分析的过程的流程图。

具体实施方式

以下阐述的详细描述旨在作为对主题技术的各种配置的描述,而不旨在表示可以实践主题技术的唯一配置。附图并入于此并构成详细描述的一部分。详细描述包括用于提供对主题技术的透彻理解的目的的具体细节。然而,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践主题技术。在一些实例中,以框图形式示出了已知的结构和组件,以避免模糊主题技术的概念。为了便于理解,类似的组件被标有相同的元件编号。

闪存(诸如nand闪存)被组织成每个块包含多个页的块。可以一次一个块顺序地将数据写入闪存块,直到闪存块中的所有页都已经用数据编程。由于在闪存块中的所有页已经被编程之前的低主机写入活动、或者重启或丢失事件,并非闪存块的所有页都可以处于经编程状态。数据存储系统应该具有寻找在闪存块中的最后编程的页的鲁棒装置。

数据存储系统可以通过读取每个块中的一系列页来完成寻找块中的最后编程的页的任务,逻辑上从每个块中的最后一页开始,然后继续进行剩余页的伪二进制搜索,直到寻找到最后编程的页。对于进行读取操作的每个页,数据存储系统必须确定页是处于经擦除状态还是处于经编程状态。例如,处于经擦除状态的页的比特将全部处于第一逻辑值(例如“1”)。相反,处于经编程状态的页的比特可以具有处于第一逻辑值(例如“1”)的、接近50%的比特和处于第二逻辑值(例如“0”)的、接近50%的比特。此外,处于经编程状态的页应该是使用数据存储系统中的纠错码(error-correctingcode,ecc)解码器而可解码的。

主题技术有利地利用以扫描配置而配置的数据存储系统的硬件和/或软件组件来确定从页读取的数据是否具有表明经擦除状态的全一(1)图案(pattern),或表示经编程状态的不同图案。根据主题技术的方面,ecc解码器被配置,使得其中所有比特都处于第一逻辑值(例如,“1”)的码字是有效码字。另外,被用来验证来自ecc解码器的经解码的数据的检错码(error-detectingcode,edc)解码器被配置,使得其中所有比特都处于第一逻辑状态的经解码的数据无效,并因此不被验证。以此方式,基于ecc解码器成功解码从页读取的码字并且edc解码器未验证来自ecc解码器的经解码的数据,页可以被确定未处于经擦除状态。

图1是示出根据主题技术的方面的数据存储系统110的组件的框图。如图1所示,数据存储系统110包括接口115、控制器120、存储器125、ecc解码器160、ecc编码器166、edc编码器/解码器168、加扰器170、解扰器172和闪存设备130。接口115促进数据存储系统110与主机150之间的数据、命令和/或控制信号的通信。控制器120根据从主机150接收的命令来控制数据存储系统110的操作以在闪存设备130(例如,图示为描绘至少若干设备的闪存设备130(a)、130(b)至130(n))中存储和检索数据。控制器120可以包括单个核心处理器或包括用于执行指令的若干单独计算核心的多核处理器。例如,多核实施方式的计算核心可以并行地执行包括数据存储系统110的固件的部分的各个指令。存储器125(其可以是随机访问存储器(randomaccessmemory,ram))为控制器120提供临时存储空间以处理命令并在主机150和闪存设备130之间传输数据。可以包括存储器、寄存器、逻辑门、一个或多个处理器并且可以与控制器120集成或从控制器120分离的ecc解码器160解码从闪存设备130读取的数据。可以包括存储器、寄存器、逻辑门、一个或多个处理器并且可以与控制器120集成或从控制器120分离的ecc编码器166编码要被写入闪存设备130的数据。下面更详细地描述这些组件中的每一个的操作。

接口115可以提供主机150和数据存储系统110之间的物理和电气连接。接口115被配置为经由物理和电气连接促进主机150和数据存储系统110之间的数据、命令和/或控制信号的通信。经由接口115的连接和通信可以基于诸如通用串行总线(universalserialbus,usb)、小型计算机系统接口(smallcomputersysteminterface,scsi)、串行高级技术附件(serialadvancedtechnologyattachment,sata)、迷你sata(mini-sata,msata)、外围组件互连高速(peripheralcomponentinterconnectexpress,pcie)等的标准接口。可替换地,连接和/或通信可以基于专有接口,但是主题技术不限于任何特定类型的接口。

主机150可以是诸如计算机/服务器、智能手机或从数据存储系统110读取数据和将数据写入数据存储系统110的任何其他电子设备的计算设备。主机150可以具有操作系统或向数据存储系统110发出读取和写入命令的其他软件。数据存储系统110可以与主机150集成或可以在主机150的外部。数据存储系统110可以无线地连接到主机150,或者可以物理连接到主机150。

图1示出了多个闪存设备130。数据存储系统110可以包括一个或多个闪存设备130,并且不限于特定数量的闪存设备130。闪存设备130可以各自包括单个闪存芯片或者裸芯。闪存设备130可以被组织在由控制器120通过其从闪存设备130读取数据并将数据写入到闪存设备130的多个通道当中,或者被耦合到单个通道。可以使用nand闪存来实施闪存设备130。闪存设备130可以各自包括用于存储各个闪存设备130的操作参数的一个或多个寄存器。操作参数可以包括:诸如读取电压的读取操作参数;诸如初始脉冲值、增量脉冲值和脉冲宽度的写入操作参数;以及诸如初始脉冲值、增量脉冲值和脉冲宽度的擦除操作参数。

闪存设备130包括分布到诸如闪存块140的存储块中的多个存储器单元。闪存设备130可以具有一个或多个闪存块140,并且闪存设备130可以各自具有相同或不同数量的闪存块140。闪存块140可以被称为数据块或存储器块,并且可由控制器120使用物理块地址来寻址。闪存块140中的每一个被进一步划分成可由控制器120使用物理页地址或从包含参考页的存储块的物理块地址的偏移来寻址的多个数据段或页。页可以存储扇区或其他主机数据单元。闪存块140表示在单个擦除操作中在闪存设备130内被擦除的数据的单元。页表示在读取或写入操作中从闪存设备130读取或写入闪存设备130的数据的单元。虽然按照块和页来描述闪存设备130,但是可以使用其他术语来指代闪存设备内的这些数据单元。

主题技术不限于任何特定容量的闪存。例如,存储块可以各自包括32个、64个、12个8或512个页,或者任何其他数量的页。另外,例如,页可以各自包括512个字节、2kb、4kb或32kb。扇区可以各自包括例如512个字节、4kb或其它大小。每页可以存在一个或多个扇区。

在图1中,存储器125表示在数据存储系统110的操作期间耦合到控制器120并由控制器120使用的易失性存储器。控制器120可以缓冲存储器125中的命令和/或数据。控制器120还可以使用存储器125来存储用于将由主机150使用的逻辑地址转换成与闪存设备130的块和页相对应的物理地址的地址映射表或查找表。也可以由控制器120在存储器125中存储用来管理闪存设备130的其他类型的表、数据、状态指示符等。例如,llr(logarithmiclikelihoodratio,对数似然比)表可以被存储在存储器125中。在不脱离主题技术的范围的情况下,可以使用动态随机访问存储器(dynamicrandomaccessmemory,dram)、静态随机访问存储器(staticrandomaccessmemory,sram)或其他类型的易失性随机访问存储器来实施存储器125。诸如在数据存储系统110被断电之前,控制器120可以周期性地将存储器125的内容存储到一个或多个指定的闪存块140中。

控制器120管理主机150和闪存设备130之间的数据流。控制器120被配置为经由接口115从主机150接收命令和数据。例如,控制器120可以从主机150接收数据和写入命令以在闪存设备130中写入数据。控制器120被进一步配置为经由接口115向主机150发送数据。例如,控制器120可以响应于读取命令而从闪存设备130读取数据并且将数据发送到主机150。控制器120被进一步配置为基于可以从主机150接收到的内部控制算法或其他类型的命令来管理存储在闪存设备130和存储器125中的数据。例如,控制器120被配置为执行诸如垃圾收集(garbagecollection,gc)、纠错、和损耗均衡的操作。本领域技术人员将熟悉在闪存设备中由控制器执行的其他操作,在此不再详细描述。

可以使用被设计和配置为执行本文描述的操作和功能的通用处理器、多核处理器、微控制器、数字信号处理器(digitalsignalprocessor,dsp)、片上系统(system-on-a-chip,soc)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或其他可编程逻辑设备、分立门或者晶体管逻辑设备、分立硬件组件、或者它们的任何组合来实施控制器120。在多核处理器实施方式中,若干计算核心中的每一个可以并行地运行包括数据存储系统110的固件的部分的各个指令。控制器120可以通过执行存储在处理器/机器/计算机可读介质上的一个或多个指令序列来执行本文描述的操作和功能。处理器/机器/计算机可读介质可以是闪存设备130、存储器125或控制器120可以从其读取指令或代码的其他类型的介质。例如,数据存储系统110可以用包括在数据存储系统110的操作期间由控制器120读取和执行的一个或多个指令序列的固件/软件编码的只读存储器(readonlymemory,rom)(诸如eprom或eeprom)。

可以使用被设计和配置为执行本文描述的操作和功能的通用处理器、微控制器、数字信号处理器(dsp)、片上系统(soc)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑设备、分立门或晶体管逻辑设备、分立硬件组件、或者它们的任何组合来实施ecc解码器160、ecc编码器166、edc编码器/解码器168、加扰器170和/或解扰器172。

ecc解码器160、ecc编码器166、edc编码器/解码器168、加扰器170和/或解扰器172可以与控制器120集成,或者可以是单独的。ecc解码器160和ecc编码器166可以被配置为使用ldpc。ecc解码器160和ecc编码器166可以被配置为使用附加的或替代的解码方案。ecc解码器160包括一个或多个硬解码器162和一个或多个软解码器164。硬解码器162可以是保留用于硬解码的解码器。硬解码将读取的比特值限制为“1”或“0”。另一方面,软解码使用从llr表中提取的一个范围的值,例如以提供读取值正确用于迭代解码过程中的可靠性或置信度。llr表允许置信值根据读取结果而被查找。软解码器164可以是保留用于软解码的解码器。在某些实施方式中,可从可用解码器池动态保留硬解码器162的数量和软解码器164的数量。

edc编码器/解码器168可以被配置为使用诸如bch码的检错码来生成用于从主机150接收的数据被写入闪存设备130的奇偶校验数据。主机数据可以包括奇偶校验数据作为提供给ecc编码器166用于编码用于存储在闪存设备130中的数据有效载荷的部分。edc编码器/解码器168可以处理来自ecc解码器160的经解码的数据以基于在将数据存储在闪存设备130之前所添加的奇偶校验数据来验证经解码的数据。验证被提供来帮助确认由ecc解码器160解码的数据被正确解码。

加扰器170可以被配置为基于加载到加扰器170的配置寄存器中的种子值对提供给ecc编码器166的数据有效载荷进行加扰。数据有效载荷可以被加扰以避免比特序列全部被编程为相同逻辑值,这可以减少闪存设备130中的相邻存储器单元之间的干扰。解扰器172可以被配置为解扰由ecc解码器160提供的经解码的数据,以在将经解码的数据提供给edc编码器/解码器168用于验证之前恢复比特顺序。

例如,主机150向数据存储系统110发送写入请求以将数据写入闪存设备130。控制器120可以接收并缓冲来自主机150的数据。主机数据可以被传递给edc编码器/解码器168以使用edc码进行处理以生成奇偶校验数据。主机数据与奇偶校验数据一起可以被传递到加扰器170以在由ecc编码器166编码成码字之前被加扰。控制器120可以并且向闪存设备130发出程序命令以将码字写入闪存设备中的块的页中。

在从主机150接收到对于数据的读取命令后,控制器120可以向闪存设备130发出读取命令并接收从闪存设备中的块的页读取的码字。解码器160可以解码码字,并生成经解码的数据和指示码字被成功解码的成功指示符。经解码的数据可以被传递给解扰器172,以在被传递到edc编码器/解码器168用于验证之前重新排序经解码的数据的比特。edc编码器/解码器168验证经解码的数据并生成指示从ecc解码器160接收的经解码的数据正确的成功指示符。然后数据经由接口115被返回到主机150。

ecc解码器160可以被配置为首先使用硬解码器162来解码码字。如果硬解码器162在使用硬解码操作来解码码字时不成功,则可以使用一系列不同的读取电平(例如,七个不同的读取电平)再次读取码字,并且每次读取后将其传递给软解码器164用于迭代软解码操作。如果硬解码器162和软解码器164在解码码字时都没有成功,则生成失败指示符。控制器120可以随后使用其他数据恢复机制(例如,raid)来恢复写入到页的数据。如果edc编码器/解码器168检测到错误成功解码,则上面总结的硬解码和软解码过程也可以被重复。

闪存设备中的闪存块140的页可以处于准备好由控制器120写入的经擦除状态,或者处于包含先前写入页的码字的经编程状态。如上所述,一些闪存块140可以具有处于经编程状态的一些页和处于经擦除状态的一些页。控制器120可能需要确定闪存块140中数据被写入的最后一页,以确定处于经擦除状态的在相应闪存块140中并因此可用于写入数据的下一页。例如,当数据存储系统110被通电时,可以启动扫描程序以扫描每个闪存设备130中的每个闪存块140,以确定哪些页处于经擦除状态并且可用于写入命令。

根据主题技术的方面,识别处于经擦除状态的、闪存设备130中的页的扫描程序可以使用被配置为以扫描配置操作的数据存储系统110的组件来执行。扫描程序可以利用被配置为将具有处于第一逻辑状态(例如,“1”)的所有比特的码字识别为成功解码的有效码字的解码器160(例如,硬解码器162)来生成经解码的数据。例如,处于经擦除状态的页将具有处于逻辑状态“1”的所有比特,并且因此当页被读取时,由处于逻辑状态“1”的所有比特组成的码字将被传递到硬解码器162。可以使用解码器160使用的ecc码(例如,ldpc)的配置参数配置解码器160,该配置参数具有处于与经擦除状态相对应的逻辑状态中的所有比特的码字。因此,解码器160将生成成功指示符,并且当读取了处于经擦除状态的页时,提供包括具有与经擦除状态相对应的逻辑状态的所有比特的经解码的数据。

为了区分可能处于经编程状态的包含使用与用于扫描程序相同的配置参数编码的数据的页,edc编码器/解码器168可以被配置为不接受来自解码器160的具有处于与经擦除状态相对应的逻辑状态的所有比特的经编码的数据。因此,如果edc编码器/解码器168从解码器160接收具有处于经擦除逻辑状态的所有比特的经解码的数据,则edc编码器/解码器168返回失败指示符。根据扫描程序,控制器120将解码器160返回成功指示符和edc编码器/解码器168返回失败指示符的组合识别为将码字从其被读取的页指示为处于经擦除状态。根据扫描程序,来自解码器160和edc编码器/解码器168的指示符的所有其他组合被视为将码字从其读取的页指示为处于经编程状态。

正则ldpc码的特征在于奇偶校验检查结构,其中每个比特是相同数量的奇偶校验检查方程(列权重)的输入并且每个奇偶校验检查方程具有相同数量的输入比特(行权重)。这些代码通常用于许多应用中,但经常被修改以将码字长度减小到期望的或所需的大小。这经常常被称为零填充,其中未使用位置中的比特作为零值被编码并被解码。以这种方式,可以利用全长正则码的相同编码器和解码器在仅知道未使用位置的情况下对经缩短的码字进行操作。

诸如ldpc码的线性块码具有如果输入比特全为零,则将满足所有奇偶校验检查的性质,但是具有偶数行权重的正则ldpc码同样具有如果输入比特全为1,则满足所有奇偶检验检查的性质。这种代码可以被直接用于检测其中(除了擦除操作失败的容许的少量的比特外)所有比特等于1的经擦除的页。本领域技术人员还将认识到可以通过在解码之前简单地反转比特,或者通过在解码器中适当插入1以产生偶数行权重解码操作来以类似方法使用(包括所有ldpc码的)任何线性块码。

其他配置参数可以被用来以扫描配置而配置数据存储系统110。例如,如果在将数据写入闪存设备130时在控制器120内使用零填充,则零填充的数量可以在扫描配置参数中被设置为零。类似地,在标准读取和写入操作期间数据正在被加扰和解扰,用于解扰器172的加扰器种子可以在扫描配置参数中被设置为零。软解码器164可以在扫描配置中被禁用,使得只有硬解码器162处理码字用于扫描程序的目的。由于经编程的数据的实际值对扫描程序不感兴趣,因此通过禁用软解码器164和在硬解码失败时引起的额外读取操作来避免在软解码过程期间引起的额外时间和处理。在扫描配置下,即使硬解码操作后页的实际值未被解码,硬解码失败也会被视为指示页是处于经编程状态。

图2示出了根据主题技术的方面的描绘闪存设备的块的示例。将参考图1的部分,特别是关于闪存设备130来讨论图2。

如图2所示,闪存设备130包括块220、块240和块260。为了解释的目的,这三个块被示为每个包括八页,但是应该理解的是闪存设备130可以包括任何数量的适当的块和/或每个块中包括适当数量的页。

每个块220、块240和块260包括具有经写入的数据并处于经编程状态的不同数量的页。例如,块220包括处于经编程状态的所有八页(例如p0-p7)。块240包括处于经编程状态的五页(例如,p0页-p5页)以及处于经擦除状态的两页(例如,p6和p7)。如图所示,块260包括处于经擦除状态的所有八页(例如,p0-p7)。

在图2的示例中,控制器120可以启动上述扫描程序并扫描块220、块240和块260的页以通过识别处于经擦除状态的在块中的页来确定编程的最后一页。例如,控制器120可以从每个页读取码字并根据上面概述的扫描程序来处理码字以确定页是处于经擦除状态还是处于经编程状态。为了本描述的目的,其中正在读取经擦除的页作为扫描程序的部分的情况下,术语“码字”旨在表示存储在页中的实际码字或具有与实际码字的长度相等的长度的比特序列。因为可以从第一页(例如,p0)开始顺序地写入块的页,所以扫描程序可以从读取块中的最后页开始并且继续在块中以相反顺序读取页,直到页被确定处于经编程状态。其他算法可以由控制器120使用来遍历每个块的页,而不必读取相应块中的每个页。一旦识别出当前处于经擦除状态的在块中的第一页,则扫描程序可以移动到闪存设备中的下一个块。该过程可以被重复,直到已经根据扫描程序扫描了闪存设备中的所有块。

在示例中,通过固件来编程在数据存储系统110中提供的一个或多个寄存器以满足在列出配置参数的上述表中列出的条件。在一个或多个实施方式中,如果(例如,用于执行ldpc码的奇偶校验检查,其可以是其中通过向右循环移位一个位置而获得每行的方阵的)循环矩阵中的列的数量是偶数,则全一(1)全长图案将是有效的ldpc码字。在示例中,零填充的数量被设置为零,并且加扰器170可以被禁用或者加扰器种子被设置为零,使得全一(1s)图案将被传递到edc逻辑168用于验证。通过使用这些配置参数、有利地、当ecc解码器160返回全一数据有效载荷时,其结果是确定性的。此外,用于edc逻辑168的bch种子被设置为零以防止全一图案通过edc检查。

图3a示出了根据一个或多个实施方式的用于确定经擦除的页的过程300的流程图。进一步为了解释的目的,过程300的块在本文中被描述为以串行或线性发生。然而,过程300的多个块可以并行发生。另外,过程300的块不需要以所示的顺序执行和/或过程300的一个或多个块不需要被执行和/或可以被其他操作替换。

图3a中所示的过程可以被配置为处理单个码字或从单个页读取的多达n个数量的码字。控制器120发出读取命令以读取存储在闪存设备130的页中的数据。读取命令可以被引导至闪存设备130的块的最后一页(例如,块220、240或260中的p7页),但可以理解,可以为初始读取命令选择任何适当的页。从块的页读取的码字被接收并传递到ecc解码器用于硬解码(块302)。

如果从ecc解码器160接收到失败指示符(块304),则该页被识别为处于经编程状态(块306),并且该页的处理结束。如果从ecc解码器160接收到成功指示符(块304),则由ecc解码器160生成的经解码的数据被提供给edc编码器/解码器168以验证经解码的数据(块308)。

如果edc编码器/解码器168返回成功指示符以指示经解码的数据已被验证,则该页被识别为处于经编程状态(块312)。如果edc编码器/解码器168返回失败指示符以指示从ecc解码器160接收的经解码的数据未被验证,则该页被识别为处于经擦除状态(块310)。将页识别为处于经擦除状态可以涉及控制器120更新系统数据以反映页的状态。例如,控制器120可以维护所有块的列表,并且包括指示处于经擦除状态的在每个块中的第一页的数据,并因此可用于写入数据。控制器120还可以简单地维护指示可用于写入的下一页的数据结构,并基于扫描程序的结果更新数据结构。

闪存设备130中的块的页可以各自存储多个码字。在这些配置中,控制器120可以确定另一码字的数据是否在页中保持未被处理(块314)。如果另一码字的数据在页中未被处理,则处理返回,并且从页读取下一码字并由控制器120从闪存设备接收该下一码字(块320)。如果没有未处理的码字保持在页中,则扫描处理根据扫描程序确定是否应该扫描块中的另一页(块316)。如果要处理另一页,则该过程返回并且从该页读取来自下一块的码字并由控制器120接收该码字(块302)。如果块中没有页保持要被处理,则对闪存设备中的块的扫描程序结束。然后可以为闪存设备130中的下一块启动过程300。

如上所述,控制器120可以确定用于另一码字的数据在页中保持未被处理(块314)并且对于从页读取的每个码字重复该处理的部分。例如,控制器120可以读取页中多达n个数量的码字,并根据上述在图3a中的步骤比较这些n个数量的读取操作中的每一个的结果。进一步的细节在下面的图3b中被讨论。

图3b示出了根据一个或多个实施方式的用于执行对多于一个码字的分析的过程350的流程图。进一步为了解释的目的,过程350的块在本文中被描述为以串行或线性发生。然而,过程350的多个块可以并行发生。另外,过程350的块不需要以所示的顺序执行和/或过程350的一个或多个块不需要被执行和/或可以被其他操作替换。

如上所述,控制器120可以在使用图3a所示的操作读取并处理n个数量(其中n表示二或更大的非零整数)的码字之后,执行图3b中所示的操作。在每次迭代之后,基于从页读取的每个相应码字的处理,控制器120可以缓冲识别页是否处于经擦除状态的结果(块352)。在所有的码字已经被处理并且基于每个码字识别页的状态之后,控制器120比较结果(块354)。如果码字中的一个产生与其他码字不同的结果,则结果被确定为不确定的,并且该页不被识别为处于经擦除状态(块356)。例如,如果只有码字中的一个导致该页被识别为处于经擦除状态,则该页不由控制器120识别为以经擦除状态开始。如果所有码字产生相同的结果,则页被识别为处于与结果相对应的状态(块358)。例如,如果从页读取的所有码字导致页被识别为处于经擦除状态,则控制器120将页识别为处于经擦除状态。

本领域的技术人员将认识到,可以将这里描述的各种说明性块、模块、元件、组件、方法和算法实施为电子硬件、计算机软件或两者的组合。为了说明硬件和软件的这种可互换性,上面已经根据其功能一般性地描述了各种说明性块、模块、元件、组件、方法和算法。这样的功能被实施为硬件还是软件取决于特定的应用和对整个系统强加的设计约束。熟练的技术人员可以针对每个特定应用以各种方式实施所描述的功能。各种组件和块可以被不同地布置(例如,以不同的顺序布置,或以不同的方式分区),而不脱离主题技术的范围。

应该理解,所公开的过程中的步骤的具体顺序或层次是示例性方法的说明。基于设计偏好,可以理解的是,可以重新布置过程中步骤的具体顺序或层次。一些步骤可能会同时执行。所附方法权利要求以简单顺序呈现了各个步骤的要素,并不意味着限于所呈现的特定顺序或层次。

提供之前的描述是为了使本领域的任何技术人员能够实践本文描述的各个方面。前面的描述提供了主题技术的各种示例,并且主题技术不限于这些示例。这些方面的各种修改对于本领域技术人员而言将是显而易见的,并且本文定义的一般原理可以被应用于其他方面。因此,权利要求不旨在限于本文所示的方面,而是要符合与语言权利要求相一致的全部范围,其中以单数引用元素并非旨在表示“一个且仅一个”,除非具体如此陈述,而是“一个或多个”。除非另有特别陈述,否则术语“一些”是指一个或多个。男性的代词(例如,他的)包括女性和中性(例如,她的和它的),反之亦然。标题和副标题(如果有的话)仅为了方便而使用,并不限制本发明。

诸如“方面”的短语并不意味着这样的方面对于主题技术是必不可少的,或者这样的方面适用于主题技术的所有配置。与方面有关的公开可以适用于所有配置或一个或多个配置。方面可以提供一个或多个示例。诸如方面的短语可以指一个或多个方面,反之亦然。诸如“实施例”的短语并不意味着这样的实施例对于主题技术是必不可少的,或者该实施例适用于主题技术的所有配置与实施例有关的公开可以适用于所有实施例或一个或多个实施例。实施例可以提供一个或多个示例。诸如“实施例”的短语可以指一个或多个实施例,反之亦然。诸如“配置”的短语并不意味着这种配置对于主题技术是必不可少的,或者这种配置适用于主题技术的所有配置。与配置有关的公开可以适用于所有配置或一个或多个配置。配置可以提供一个或多个示例。诸如“配置”的短语可以指一个或多个配置,反之亦然。

本文使用词语“示例性”来表示“用作示例或说明”。本文中描述为“示例性”的任何方面或设计不一定被解释为比其他方面或设计优选或有利。

本领域普通技术人员已知或以后熟知的贯穿本公开所描述的各个方面的元素的所有结构和功能等同物通过引用明确地并入本文,并且旨在要被权利要求所涵盖。而且,在此公开的任何内容都不旨在奉献于公众,不管这些公开是否在权利要求中明确记载。没有权利要求元素是根据35u.s.c.§112第六段的规定而被解释,除非使用短语“用于...的装置”明确地叙述该要素,或者在方法权利要求的情况下使用短语“用于......的步骤”来叙述该要素。此外,到了术语“包括”、“具有”等用在说明书或权利要求书中时,这样的术语旨在当“包含”在用作权利要求中的过渡词时被解释时,以类似于术语“包含”的方式是包含性的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1