CN117789808A - 一种存储器及其坏块纠错方法 - Google Patents
一种存储器及其坏块纠错方法 Download PDFInfo
- Publication number
- CN117789808A CN117789808A CN202410205092.0A CN202410205092A CN117789808A CN 117789808 A CN117789808 A CN 117789808A CN 202410205092 A CN202410205092 A CN 202410205092A CN 117789808 A CN117789808 A CN 117789808A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- memory
- master controller
- storage mode
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000012937 correction Methods 0.000 title claims abstract description 28
- 230000009471 action Effects 0.000 claims abstract description 27
- 238000012545 processing Methods 0.000 claims abstract description 26
- 239000010410 layer Substances 0.000 claims description 55
- 239000002356 single layer Substances 0.000 claims description 44
- 230000008569 process Effects 0.000 claims description 31
- 238000012795 verification Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 8
- 230000009467 reduction Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供了一种存储器及其坏块纠错方法,包括:存储块,其包括问题块与可用块;以及主控器,用以对问题块进行有效数据搬移处理,以将其内部数据搬移至可用块后,暂存于校验清单中;其中,主控器确定存储器处于空闲状态时,执行的动作为依次对校验清单中的问题块进行校验处理;主控器用以生成校验数据,并根据校验数据对问题块进行串行块校验处理;主控器确定问题块不属于被误判的存储块时,执行的动作为确认问题块为坏块,并丢弃;主控器确定问题块属于被误判的存储块时,执行的动作为确认问题块为可用块,并重新放入可用列表中。通过本发明提供的一种存储器及其坏块纠错方法,能够对问题块进行纠错,防止误判。
Description
技术领域
本发明涉及存储领域,特别涉及一种存储器及其坏块纠错方法。
背景技术
内嵌式存储器(Embedded Multi Media Card,eMMC)是一种内置存储系统,其可包括MMC(多媒体卡)接口、快闪存储器(nand-flash)及eMMC主控器。eMMC主控器是以硬件形式实现的,用于执行在主机设备中的闪存管理功能。快闪存储器中可以包括多个存储块(block),存储块可用于存储数据。
存储器在正常使用过程中,其内部固件在运行是可能会产生不可用块(badblock),导致可用块(good block)的数量逐渐减少。尤其是当存储器在特殊环境下时,可能会出现误判的情况,将可用块标记为不可用块。对于这一部分不可用块而言,主控器的纠错能力有限。目前针对可用块的误判进行纠错时,效率较低。因此,存在待改进之处。
发明内容
本发明的目的在于提供一种存储器及其坏块纠错方法,以对问题块进行纠错,防止误判。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明提供了一种存储器,包括:
存储块,其包括问题块与可用块;以及
主控器,用以对所述问题块进行有效数据搬移处理,以将其内部数据搬移至所述可用块后,暂存于校验清单中;
其中,所述主控器确定存储器处于空闲状态时,执行的动作为依次对所述校验清单中的问题块进行校验处理;
所述主控器用以生成校验数据,并根据所述校验数据对问题块进行串行块校验处理;
所述主控器确定问题块不属于被误判的存储块时,执行的动作为确认所述问题块为坏块,并丢弃;
所述主控器确定问题块属于被误判的存储块时,执行的动作为确认所述问题块为可用块,并重新放入可用列表中。
在本发明一实施例中,所述校验数据包括全0数据与全1数据,所述主控器依次根据全0数据、全1数据对问题块进行串行块校验处理。
在本发明一实施例中,所述主控器根据全0数据对问题块进行串行块校验处理时,确定所述问题块不属于被误判的存储块时,执行的动作为确认该问题块为坏块,并丢弃,确定所述问题块属于被误判的存储块时,执行的动作为根据所述全1数据对该问题块进行串行块校验。
在本发明一实施例中,所述主控器用以在单层存储模式下,擦除问题块中的数据,并将全0数据写到问题块中;
所述主控器还用以在单层存储模式下,读取问题块中的全0数据,所述主控器确认问题块不存在问题时,执行的动作为擦除问题块中的数据。
在本发明一实施例中,所述主控器还用以在多层存储模式下,将所述全0数据写到问题块中;
所述主控器还用以在多层存储模式下,读取问题块中的全0数据,所述主控器确认问题块不存在问题时,执行的动作为擦除问题块中的数据。
在本发明一实施例中,所述主控器还用以在单层存储模式下,将所述全0数据写到问题块中;
所述主控器还用以在单层存储模式下,读取问题块中的全0数据,所述主控器确认问题块不存在问题时,执行的动作为在多层存储模式下,擦除问题块中的数据。
在本发明一实施例中,所述主控器还用以在多层存储模式下,将所述全0数据写到问题块中;
所述主控器还用以在多层存储模式下,读取问题块中的全0数据,所述主控器确认问题块不存在问题时,执行的动作为根据全1数据对问题块进行串行块校验。
在本发明一实施例中,所述主控器还用以:
在单层存储模式下,擦除问题块中的数据,并将所述全1数据写到问题块中;
在单层存储模式下,读取问题块中的全1数据,所述主控器确认问题块不存在问题时,执行的动作为擦除问题块中的数据;
在多层存储模式下,将所述全1数据写到问题块中;
在多层存储模式下,读取所述问题块中的全1数据,所述主控器确认问题块不存在问题时,执行的动作为擦除问题块中的数据;
在单层存储模式下,将所述全1数据写到问题块中;
在单层存储模式下,读取问题块中的全1数据,所述主控器确认问题块不存在问题时,执行的动作为在多层存储模式下擦除问题块中的数据;
在多层存储模式下,将所述全1数据写到问题块中;
在多层存储模式下,读取问题块中的全1数据,所述主控器确认问题块不存在问题时,执行的动作为确定问题坏为可用块,并重新放入到可用列表中。
在本发明一实施例中,在所述主控器读取问题块中的全0数据或全1数据时,不启用重读取功能,且对判断条件进行调整,当出现错误位的数量达到预设条件时,表示为该问题块为坏块,其中,所述预设条件表示为出现错误位的数量是原先预设错误位的数量的一半。
本发明还提供了一种存储器的坏块纠错方法,包括:
获取存储器运行时出现错误的存储块,标记为问题块;
对所述问题块进行有效数据搬移处理,以将其内部数据搬移至其他可用块后,暂存于校验清单中;
判断存储器当前是否处于空闲状态,若未处于空闲状态,则进行等待,直至处于空闲状态为止,若处于空闲状态,则依次对所述校验清单中的问题块进行校验处理;
生成校验数据,并根据所述校验数据对问题块进行串行块校验处理,以判断所述问题块是否属于被误判的存储块,若所述问题块不属于被误判的存储块,则所述问题坏为坏块,并丢弃,若所述问题块属于被误判的存储块,则所述问题坏为可用块,并重新放入到可用列表中。
如上所述,本发明提供一种存储器及其坏块纠错方法,当存储器在运行过程中出现问题存储块时,通过输入全0数据与全1数据依次对其进行校验,且在校验过程中采用串行块校验方式进行校验,即通过单层存储模式与多层存储模式的相互配合,完成数据的擦除、写入、读取,进而高效完成问题存储块的校验,能够对问题存储块重新利用。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中存储器的示意图;
图2为本发明一实施例中存储器的坏块纠错方法的流程图;
图3为图2中步骤S40的流程图;
图4为图3中步骤S41的流程图;
图5为图3中步骤S42的流程图。
图中:100、存储器;110、主控器;120、存储块;130、主机接口;140、缓存块;150、寄存器;200、电子设备。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提供了一种存储器100,其可在日常运行阶段对出现问题的存储块120(block)进行纠错校验,防止出现问题的存储块120属于可正常使用的可用块(goodblock),以避免丢弃可用块。例如,当电子设备200处于极端环境温度下时,在高/低温环境下进行读写操作时,存储块120可能会被误判为不可用块,即坏块(bad block),坏块会被丢弃且不再使用,这样会导致存储容量减少,存储器100的寿命缩短。
请参阅图1,在本发明的一个实施例中,存储器100可以包括主控器110、存储块120、主机接口130、缓存块140以及寄存器150。其中,存储块120可以用于存储主机数据的数据块(blcok)。存储块120的大小可以为6MB、18MB等,存储块120的具体大小可根据实际需求进行设定。主控器110可以负责管理存储块120处理读写请求以及处理诸如错误检测与纠正(ECC)、磨损均衡、碎片整理等底层任务。主机接口130可提供标准化的方式使主控器110与电子设备200通信,以接收来自于电子设备200的指令与主机数据。缓存块140是存储器100的内部缓存,可用于缓存即将写入的数据、暂存读取操作返回的数据。寄存器150可用于存储有关存储器特性和功能的信息,如存储容量、通信速度、支持的命令等。电子设备200可以通过访问寄存器150来获取存储器的设备信息和配置设备参数。
请参阅图1,在本发明的一个实施例中,在存储器100运行过程中,需要将来自电子设备200的主机数据写入到存储块120中,在此过程中,主控器110可以对存储块120进行监控,以判断存储块120能否正常完成数据读写等功能。例如,主控器110可以在存储块120执行数据读取操作时,通过ECC(Error Correction Code)错误校验码对其进行数据校验处理,以判断存储块120能够正常实现数据读取操作功能。又例如,在存储块120执行数据写入操作与数据擦除操作时,主控器110可以检查相应的状态位,以确定擦除操作是否成功。当存储块120在运行出现问题时,主控器110可以将其标记为问题块。例如,当存储块120在执行数据写入操作(program)时出现问题时,可以将其标记为写入失败问题块。又例如,当存储块120在执行数据读取操作(read)时出现问题时,可以将其标记为读取失败问题块。再例如,当存储块120在执行数据擦除操作(erase)时出现问题时,可以将其标记为擦除失败问题块。对于同一块存储块120而言,其可能会出现数据写入失败、数据读取失败、数据擦除失败中的一种或几种情况。
在本发明的一个实施例中,当主控器110判断出某一个存储块120为问题块时,主控器110可对该问题块中存储的有效数据进行搬移处理,以将其内部数据搬移至其他可用的存储块120中。之后,主控器110可将该问题块暂存于校验清单中,以便于后续对其进行纠错校验处理。其中,校验清单中的问题块的数量可以为多个,多个问题块可以根据出现问题的时间顺序进行排序。
在本发明的一个实施例中,主控器110在对问题块中的有效数据进行搬移处理时,可以从存储器100中查找或分配一个可用的好块(good block)来存储从坏块中搬移的数据。与此同时,主控器110需要尝试从坏块中最大可能地读取有效数据。例如使用可靠的错误纠正代码(ECC)技术,以消除数据中的任何不一致或错误。在数据搬移过程完成后,主控器110需要更新逻辑到物理的映射表,以确保所有对原始坏块的数据访问都被重定向到新的好块。
在本发明的一个实施例中,主控器110在将问题块暂处于校验清单后,后续需要依次对问题块进行纠错校验处理。在纠错校验处理前,存储器100需要处于空闲状态。例如,当存储器100处于未进行数据读取操作、未进行数据读出操作以及未进行数据擦除操作时,可以表示为存储器100处于空闲状态,反之,当存储器100处于进行数据读取操作、进行数据读出操作、进行数据擦除操作中的任一操作时,可以表示为存储器100处于工作状态。在本实施例中,主控器110需要先判断当前存储器100是否处于空闲状态。当主控器110判断出当前存储器100未处于空闲状态时,需要进行等待,直至存储器100处于空闲状态为止。当主控器110判断出当前存储器100处于空闲状态时,可以依次对校验清单中的问题块进行纠错校验。当然,在纠错校验的过程中,若存储器100需要进行正常工作时,即处于正常状态时,可以暂停纠错校验的流程,直至存储器100处于空闲状态时,再恢复纠错校验的流程。
在本发明的一个实施例中,在纠错校验的流程中,主控器110可以直接生成校验数据。校验数据可以包括全0数据(0x00)、全1数据(0xFF)。全0数据与全1数据可提供特定的二进制模式,以在存储器100的纠错校验流程中检测可能的错误。在生成校验数据后,主控器110可以根据校验数据对问题块进行串行块校验处理,以判断问题块是否属于被误判的存储块120,若问题块不属于被误判的存储块120,则该问题坏为坏块,并丢弃,若问题块属于被误判的存储块120,则该问题坏为可用块,并重新放入到可用列表中。
在本发明的一个实施例中,主控器110可先根据全0数据对问题块进行串行块校验处理,以判断问题块是否属于被误判的存储块120,若问题块不属于被误判的存储块120,则该问题坏为坏块,并丢弃,若问题块属于被误判的存储块120,则根据全1数据对问题块进行串行块校验处理。
在本发明的一个实施例中,存储器100在运行过程中具有多种工作模式,不同的工作模式取决于不同的存储块120可以存储的比特数量,例如SLC模式、MLC模式、TLC模式以及QLC模式,SLC、MLC、TLC和QLC是指存储闪存级别的不同模式。其中,SLC(Single-LevelCell)模式可以表示为存储块120只存储一位数据(0或1)。MLC(Multi-Level Cell)模式可以表示为存储块120可以存储两位数据。TLC(Triple-Level Cell)模式可以表示为存储块120可以存储三位数据。QLC(Quad-Level Cell)模式可以表示为存储块120可以存储四位数据。在本实施例中,可以将存储器100的工作模式区分为单层存储模式与多层存储模式,单层存储模式可以为SLC模式,多层存储模式可以包括MLC模式、TLC模式以及QLC模式。
在本发明的一个实施例中,在通过全0数据对问题块进行串行块校验处理的过程中,主控器110可以在单层存储模式下擦除(erase)问题块中的数据,再将全0数据写到(program)问题块中。具体地,可先将问题块设置为默认状态,在擦除过程中,可以将问题块中的每个存储单元的状态设置为“1”,以对问题块中的数据进行擦除。之后,主控器110可以将全0数据(0x00)写入到问题块中的每个存储单元,以使存储单元的状态从“1”变为“0”,在写入的过程中,会导致电荷被写入存储单元,从而改变其状态。
在本发明的一个实施例中,在单层存储模式下将全0数据写到问题块后,主控器110可以在单层存储模式下,读取(read)问题块中的全0数据,并判断是否存在问题。若问题块存在问题,则表示为该问题块为坏块,并丢弃。若问题块不存在问题,则擦除问题块中的数据。具体地,主控器110在单层存储模式下可以发送一个读命令到指定的问题块地址,问题块的存储单元会返回其保存的数据位。之后,可对数据进行解码处理,数据会被解码和转换为一种可以用于进一步处理的格式。如果读取的是全0数据(0x00),则问题块的存储单元都应该返回“0”。最后,主控器110将读取到的数据与预期的全0数据进行比较。如果所有的数据位都匹配,可以说明数据正确地被读取出来了,可以表示为问题块不存在问题,之后可擦除问题块中的数据,并进行下一步校验。如果发现任何不匹配,那么可能存在一些问题,比如问题块的物理故障、内存控制器的错误等,可以表示为问题块存在问题,该问题块为坏块,并丢弃。
在本发明的一个实施例中,在单层存储模式下擦除问题块中的数据后,主控器110可以在多层存储模式下将全0数据写到问题块中。具体地,主控器110可以执行写入命令,将全0数据(0x00)写入问题块中的每个存储单元。在多层存储模式下,每个存储单元中可能会存储两位、三位以及四位数据中的一种数据,因此每个存储单元的电荷控制需要更精细。
在本发明的一个实施例中,在多层存储模式下将全0数据写到问题块后,主控器110可以在多层存储模式下读取问题块中的全0数据,并判断是否存在问题。若问题块存在问题,则表示为该问题块为坏块,并丢弃。若问题块不存在问题,则擦除问题块中的数据。具体地,主控器110在多层存储模式下可以发送一个读命令到指定的问题块地址,主控器110可以将读取到的数据进行解码。执行解码过程中,数据会被解码和转换为一种可以用于进一步处理的格式。如果读取的是全0数据(0x00),则问题块的存储单元都应该返回“0”。最后,主控器110将读取到的数据与预期的全0数据进行比较。如果所有的数据位都匹配,可以说明数据正确地被读取出来了,可以表示为问题块不存在问题,之后可擦除问题块中的数据,并进行下一步校验。如果发现任何不匹配,那么可能存在一些问题,比如问题块的物理故障、内存控制器的错误等,可以表示为问题块存在问题,该问题块为坏块,并丢弃。
在本发明的一个实施例中,在多层存储模式下擦除问题块中的数据后,主控器110可以在单层存储模式下再次将全0数据写到问题块中。之后,在单层存储模式下读取问题块中的全0数据,并判断是否存在问题。若问题块存在问题,则表示为该问题块为坏块,并丢弃。若问题块不存在问题,则在多层存储模式下擦除问题块中的数据。其中,在单层存储模式下再次将全0数据写到问题块中的过程以及判断过程与上述写入过程类似,在此不做赘述。
在本发明的一个实施例中,在多层存储模式下擦除问题块中的数据后,主控器110可以在多层存储模式下再次将全0数据写到问题块中。之后,在多层存储模式下读取题块中的全0数据,并判断是否存在问题。若问题块存在问题,则表示为该问题块为坏块,并丢弃。若问题块不存在问题,则根据全1数据对问题块进行串行块校验。其中,在多层存储模式下将全0数据写到问题块的的过程以及判断过程与上述写入过程类似,在此不做赘述。当问题块不存在问题时,可以根据全1数据再次对串行块校验,以验证问题块是否属于坏块。
在本发明的一个实施例中,在上述读取问题块中的全0数据的过程中,不启用重读取功能(read retry),能够防止出现误判的情况。正常情况下,存储器100可以提供一定数量的错误容忍能力,允许存在一部分错误位,只有当错误位超出这个范围时,才会被认定为读取失败。同时,对判断条件进行调整,当出现错误位的数量达到预设条件时,表示为该问题块为坏块。其中,预设条件可以表示为出现错误位的数量是原先预设错误位的数量的一半。例如,如果原先预设错误位的数量为8个error bit,那么在当前测试场景下,只要超过4个error bit,就将认定为读取失败。
在本发明的一个实施例中,在根据全1数据再次对问题块进行串行块校验,以验证问题块是否属于坏块的过程中,主控器110可以在单层存储模式下擦除(erase)问题块中的数据,再将全1数据写到(program)问题块中。具体地,可先将问题块设置为默认状态,在擦除过程中,可以将问题块中的每个存储单元的状态设置为“1”,以对问题块中的数据进行擦除。之后,主控器110可以将全1数据(0xFF)写入到问题块中的每个存储单元,由于擦除操作已经将存储单元设置为“1”状态,实际上不再需要执行写入操作。但如果需要明确地进行写入操作,eMMC控制器可以发送写命令,将全1数据(0xFF)写入每个存储单元。
在本发明的一个实施例中,在单层存储模式下将全1数据写到问题块后,主控器110可以在单层存储模式下,读取(read)问题块中的全1数据,并判断是否存在问题。若问题块存在问题,则表示为该问题块为坏块,并丢弃。若问题块不存在问题,则擦除问题块中的数据。具体地,主控器110在单层存储模式下可以发送一个读命令到指定的问题块地址,问题块的存储单元会返回其保存的数据位。之后,可对数据进行解码处理,数据会被解码和转换为一种可以用于进一步处理的格式。如果读取的是全1数据(0xFF),则问题块的存储单元都应该返回“1”。最后,主控器110将读取到的数据与预期的全1数据进行比较。如果所有的数据位都匹配,可以说明数据正确地被读取出来了,可以表示为问题块不存在问题,之后可擦除问题块中的数据,并进行下一步校验。如果发现任何不匹配,那么可能存在一些问题,比如问题块的物理故障、内存控制器的错误等,可以表示为问题块存在问题,该问题块为坏块,并丢弃。
在本发明的一个实施例中,在单层存储模式下擦除问题块中的数据后,主控器110可以在多层存储模式下将全1数据写到问题块中。具体地,主控器110可以执行写入命令,将全1数据(0xFF)写入问题块中的每个存储单元。在多层存储模式下,每个存储单元中可能会存储两位、三位以及四位数据中的一种数据,因此每个存储单元的电荷控制需要更精细。
在本发明的一个实施例中,在多层存储模式下将全1数据写到问题块后,主控器110可以在多层存储模式下读取问题块中的全1数据,并判断是否存在问题。若问题块存在问题,则表示为该问题块为坏块,并丢弃。若问题块不存在问题,则擦除问题块中的数据。具体地,主控器110在多层存储模式下可以发送一个读命令到指定的问题块地址,主控器110可以将读取到的数据进行解码。执行解码过程中,数据会被解码和转换为一种可以用于进一步处理的格式。如果读取的是全1数据(0xFF),则问题块的存储单元都应该返回“1”。最后,主控器110将读取到的数据与预期的全1数据进行比较。如果所有的数据位都匹配,可以说明数据正确地被读取出来了,可以表示为问题块不存在问题,之后可擦除问题块中的数据,并进行下一步校验。如果发现任何不匹配,那么可能存在一些问题,比如问题块的物理故障、内存控制器的错误等,可以表示为问题块存在问题,该问题块为坏块,并丢弃。
在本发明的一个实施例中,在多层存储模式下擦除问题块中的数据后,主控器110可以在单层存储模式下再次将全1数据写到问题块中。之后,在单层存储模式下读取问题块中的全1数据,并判断是否存在问题。若问题块存在问题,则表示为该问题块为坏块,并丢弃。若问题块不存在问题,则在多层存储模式下擦除问题块中的数据。其中,在单层存储模式下再次将全1数据写到问题块中的过程以及判断过程与上述写入过程类似,在此不做赘述。
在本发明的一个实施例中,在多层存储模式下擦除问题块中的数据后,主控器110可以在多层存储模式下再次将全1数据写到问题块中。之后,在多层存储模式下读取题块中的全1数据,并判断是否存在问题。若问题块存在问题,则表示为该问题块为坏块,并丢弃。若问题块不存在问题,则表示问题块属于可用块,即可以正常使用的存储块120,并将其重新放入到可用列表中。
在本发明的一个实施例中,在上述读取问题块中的全1数据的过程中,不启用重读取功能(read retry),能够防止出现误判的情况。正常情况下,存储器100可以提供一定数量的错误容忍能力,允许存在一部分错误位,只有当错误位超出这个范围时,才会被认定为读取失败。同时,对判断条件进行调整,当出现错误位的数量达到预设条件时,表示为该问题块为坏块。其中,预设条件可以表示为出现错误位的数量是原先预设错误位的数量的一半。例如,如果原先预设错误位的数量为8个error bit,那么在当前测试场景下,只要超过4个error bit,就将认定为读取失败。
可见,在上述方案中,当存储器在运行过程中出现问题存储块时,通过输入全0数据与全1数据依次对其进行校验,且在校验过程中采用串行块校验方式进行校验,即通过单层存储模式与多层存储模式的相互配合,完成数据的擦除、写入、读取,进而高效完成问题存储块的校验,能够对问题存储块重新利用。
请参阅图2,本发明还提供了一种存储器的坏块纠错方法,坏块纠错方法可应用于上述存储器120中,以在日常运行阶段对出现问题的存储块120进行纠错校验,防止出现问题的存储块120属于可正常使用的可用块,以避免丢弃可用块。坏块纠错方法可以包括如下步骤:
步骤S10、获取存储器运行时出现错误的存储块,标记为问题块,其中,问题块包括擦除失败问题块、写入失败问题块、读取失败问题块;
步骤S20、对问题块进行有效数据搬移处理,以将其内部数据搬移至其他可用的存储块后,暂存于校验清单中;
步骤S30、判断存储器当前是否处于空闲状态,若未处于空闲状态,则进行等待,直至处于空闲状态为止,若处于空闲状态,则依次对校验清单中的问题块进行校验处理;
步骤S40、生成校验数据,并根据校验数据对问题块进行串行块校验处理,以判断问题块是否属于被误判的存储块,若问题块不属于被误判的存储块,则该问题坏为坏块,并丢弃,若问题块属于被误判的存储块,则该问题坏为可用块,并重新放入到可用列表中,其中,校验数据包括全0数据(0x00)、全1数据(0xFF)。
请参阅图3,在本发明的一个实施例中,当执行步骤S40时,具体地,步骤S40可包括如下步骤:
步骤S41、根据全0数据对问题块进行串行块校验,以判断问题块是否属于被误判的存储块,若问题块不属于被误判的存储块,则该问题坏为坏块,并丢弃,若问题块属于被误判的存储块,则根据全1数据对问题块进行串行块校验;
步骤S42、判断问题块是否属于被误判的存储块,若问题块不属于被误判的存储块,则该问题坏为坏块,并丢弃,若问题块属于被误判的存储块,则该问题坏为可用块,并重新放入到可用列表中。
请参阅图4,在本发明的一个实施例中,当执行步骤S41时,具体地,步骤S41可包括如下步骤:
步骤S411、在单层存储模式下,擦除问题块中的数据,并将全0数据写到问题块中;
步骤S412、在单层存储模式下,读取问题块中的全0数据,并判断是否存在问题,若存在问题,则表示为该问题块为坏块,并丢弃,若不存在问题,则擦除问题块中的数据;
步骤S413、在多层存储模式下,将全0数据写到问题块中;
步骤S414、在多层存储模式下,读取问题块中的全0数据,并判断是否存在问题,若存在问题,则表示为该问题块为坏块,并丢弃,若不存在问题,则擦除问题块中的数据;
步骤S415、在单层存储模式下,将全0数据写到问题块中;
步骤S416、在单层存储模式下,读取问题块中的全0数据,并判断是否存在问题,若存在问题,则表示为该问题块为坏块,并丢弃,若不存在问题,则在多层存储模式下擦除问题块中的数据;
步骤S417、在多层存储模式下,将全0数据写到问题块中;
步骤S418、在多层存储模式下,读取问题块中的全0数据,并判断是否存在问题,若存在问题,则表示为该问题块为坏块,并丢弃,若不存在问题,则根据全1数据对问题块进行串行块校验。
请参阅图5,在本发明的一个实施例中,当执行步骤S42时,具体地,步骤S42可包括如下步骤:
步骤S421、在单层存储模式下,擦除问题块中的数据,并将全1数据写到问题块中;
步骤S422、在单层存储模式下,读取问题块中的全1数据,并判断是否存在问题,若存在问题,则表示为该问题块为坏块,并丢弃,若不存在问题,则擦除问题块中的数据;
步骤S423、在多层存储模式下,将全1数据写到问题块中;
步骤S424、在多层存储模式下,读取问题块中的全1数据,并判断是否存在问题,若存在问题,则表示为该问题块为坏块,并丢弃,若不存在问题,则擦除问题块中的数据;
步骤S425、在单层存储模式下,将全1数据写到问题块中;
步骤S426、在单层存储模式下,读取问题块中的全1数据,并判断是否存在问题,若存在问题,则表示为该问题块为坏块,并丢弃,若不存在问题,则在多层存储模式下擦除问题块中的数据;
步骤S427、在多层存储模式下,将全1数据写到问题块中;
步骤S428、在多层存储模式下,读取问题块中的全1数据,并判断是否存在问题,若存在问题,则表示为该问题块为坏块,并丢弃,若不存在问题,则该问题坏为可用块,并重新放入到可用列表中。
以上公开的本发明实施例只是用于帮助阐述本发明。实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种存储器,其特征在于,包括:
存储块,其包括问题块与可用块;以及
主控器,用以对所述问题块进行有效数据搬移处理,以将其内部数据搬移至所述可用块后,暂存于校验清单中;
其中,所述主控器确定存储器处于空闲状态时,执行的动作为依次对所述校验清单中的问题块进行校验处理;
所述主控器用以生成校验数据,并根据所述校验数据对问题块进行串行块校验处理;
所述主控器确定问题块不属于被误判的存储块时,执行的动作为确认所述问题块为坏块,并丢弃;
所述主控器确定问题块属于被误判的存储块时,执行的动作为确认所述问题块为可用块,并重新放入可用列表中。
2.根据权利要求1所述的存储器,其特征在于,所述校验数据包括全0数据与全1数据,所述主控器依次根据全0数据、全1数据对问题块进行串行块校验处理。
3.根据权利要求2所述的存储器,其特征在于,所述主控器根据全0数据对问题块进行串行块校验处理时,确定所述问题块不属于被误判的存储块时,执行的动作为确认该问题块为坏块,并丢弃,确定所述问题块属于被误判的存储块时,执行的动作为根据所述全1数据对该问题块进行串行块校验。
4.根据权利要求3所述的存储器,其特征在于,所述主控器用以在单层存储模式下,擦除问题块中的数据,并将全0数据写到问题块中;
所述主控器还用以在单层存储模式下,读取问题块中的全0数据,所述主控器确认问题块不存在问题时,执行的动作为擦除问题块中的数据。
5.根据权利要求4所述的存储器,其特征在于,所述主控器还用以在多层存储模式下,将所述全0数据写到问题块中;
所述主控器还用以在多层存储模式下,读取问题块中的全0数据,所述主控器确认问题块不存在问题时,执行的动作为擦除问题块中的数据。
6.根据权利要求5所述的存储器,其特征在于,所述主控器还用以在单层存储模式下,将所述全0数据写到问题块中;
所述主控器还用以在单层存储模式下,读取问题块中的全0数据,所述主控器确认问题块不存在问题时,执行的动作为在多层存储模式下,擦除问题块中的数据。
7.根据权利要求6所述的存储器,其特征在于,所述主控器还用以在多层存储模式下,将所述全0数据写到问题块中;
所述主控器还用以在多层存储模式下,读取问题块中的全0数据,所述主控器确认问题块不存在问题时,执行的动作为根据全1数据对问题块进行串行块校验。
8.根据权利要求7所述的存储器,其特征在于,所述主控器还用以:
在单层存储模式下,擦除问题块中的数据,并将所述全1数据写到问题块中;
在单层存储模式下,读取问题块中的全1数据,所述主控器确认问题块不存在问题时,执行的动作为擦除问题块中的数据;
在多层存储模式下,将所述全1数据写到问题块中;
在多层存储模式下,读取问题块中的全1数据,所述主控器确认问题块不存在问题时,执行的动作为擦除问题块中的数据;
在单层存储模式下,将所述全1数据写到问题块中;
在单层存储模式下,读取问题块中的全1数据,所述主控器确认问题块不存在问题时,执行的动作为在多层存储模式下擦除问题块中的数据;
在多层存储模式下,将所述全1数据写到问题块中;
在多层存储模式下,读取问题块中的全1数据,所述主控器确认问题块不存在问题时,执行的动作为确定问题坏为可用块,并重新放入到可用列表中。
9.根据权利要求8所述的存储器,其特征在于,在所述主控器读取问题块中的全0数据或全1数据时,不启用重读取功能,且对判断条件进行调整,当出现错误位的数量达到预设条件时,表示为该问题块为坏块,其中,所述预设条件表示为出现错误位的数量是原先预设错误位的数量的一半。
10.一种存储器的坏块纠错方法,其特征在于,包括:
获取存储器运行时出现错误的存储块,标记为问题块;
对所述问题块进行有效数据搬移处理,以将其内部数据搬移至其他可用块后,暂存于校验清单中;
判断存储器当前是否处于空闲状态,若未处于空闲状态,则进行等待,直至处于空闲状态为止,若处于空闲状态,则依次对所述校验清单中的问题块进行校验处理;
生成校验数据,并根据所述校验数据对问题块进行串行块校验处理,以判断所述问题块是否属于被误判的存储块,若所述问题块不属于被误判的存储块,则所述问题坏为坏块,并丢弃,若所述问题块属于被误判的存储块,则所述问题坏为可用块,并重新放入到可用列表中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410205092.0A CN117789808A (zh) | 2024-02-26 | 2024-02-26 | 一种存储器及其坏块纠错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410205092.0A CN117789808A (zh) | 2024-02-26 | 2024-02-26 | 一种存储器及其坏块纠错方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117789808A true CN117789808A (zh) | 2024-03-29 |
Family
ID=90402032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410205092.0A Pending CN117789808A (zh) | 2024-02-26 | 2024-02-26 | 一种存储器及其坏块纠错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117789808A (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010004326A1 (en) * | 1999-12-20 | 2001-06-21 | Yukio Terasaki | Memory controller for flash memory system and method for writing data to flash memory device |
US20090259896A1 (en) * | 2008-04-10 | 2009-10-15 | Phison Electronics Corp. | Bad block identifying method for flash memory, storage system, and controller thereof |
CN101859604A (zh) * | 2009-04-10 | 2010-10-13 | 国民技术股份有限公司 | 闪存坏块的利用方法 |
CN104091617A (zh) * | 2014-06-17 | 2014-10-08 | 深圳市江波龙电子有限公司 | 一种闪存存储设备检测的方法及装置 |
US20150187442A1 (en) * | 2013-12-30 | 2015-07-02 | Sandisk Technologies Inc. | Reusing partial bad blocks in nand memory |
US20170125127A1 (en) * | 2015-11-03 | 2017-05-04 | SK Hynix Inc. | Memory system and operating method thereof |
WO2017107160A1 (zh) * | 2015-12-25 | 2017-06-29 | 研祥智能科技股份有限公司 | 基于异构混合内存的nvm坏块识别处理及纠错方法和系统 |
CN110265083A (zh) * | 2018-03-12 | 2019-09-20 | 旺宏电子股份有限公司 | 存储器装置的数据探测方法 |
CN110517718A (zh) * | 2019-08-22 | 2019-11-29 | 深圳忆联信息系统有限公司 | 一种有效筛选颗粒新增坏块的方法及其系统 |
KR20200101884A (ko) * | 2020-08-14 | 2020-08-28 | 에스케이하이닉스 주식회사 | 데이터 저장 시스템 및 그것의 동작 방법 |
CN113223583A (zh) * | 2021-05-14 | 2021-08-06 | 深圳市硅格半导体有限公司 | NAND Flash坏块内数据重读的方法、电子设备及存储介质 |
CN113641309A (zh) * | 2021-08-19 | 2021-11-12 | 深圳忆联信息系统有限公司 | Ssd的弱块识别方法、装置、计算机设备及存储介质 |
-
2024
- 2024-02-26 CN CN202410205092.0A patent/CN117789808A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010004326A1 (en) * | 1999-12-20 | 2001-06-21 | Yukio Terasaki | Memory controller for flash memory system and method for writing data to flash memory device |
US20090259896A1 (en) * | 2008-04-10 | 2009-10-15 | Phison Electronics Corp. | Bad block identifying method for flash memory, storage system, and controller thereof |
CN101859604A (zh) * | 2009-04-10 | 2010-10-13 | 国民技术股份有限公司 | 闪存坏块的利用方法 |
US20150187442A1 (en) * | 2013-12-30 | 2015-07-02 | Sandisk Technologies Inc. | Reusing partial bad blocks in nand memory |
CN104091617A (zh) * | 2014-06-17 | 2014-10-08 | 深圳市江波龙电子有限公司 | 一种闪存存储设备检测的方法及装置 |
US20170125127A1 (en) * | 2015-11-03 | 2017-05-04 | SK Hynix Inc. | Memory system and operating method thereof |
WO2017107160A1 (zh) * | 2015-12-25 | 2017-06-29 | 研祥智能科技股份有限公司 | 基于异构混合内存的nvm坏块识别处理及纠错方法和系统 |
CN110265083A (zh) * | 2018-03-12 | 2019-09-20 | 旺宏电子股份有限公司 | 存储器装置的数据探测方法 |
CN110517718A (zh) * | 2019-08-22 | 2019-11-29 | 深圳忆联信息系统有限公司 | 一种有效筛选颗粒新增坏块的方法及其系统 |
KR20200101884A (ko) * | 2020-08-14 | 2020-08-28 | 에스케이하이닉스 주식회사 | 데이터 저장 시스템 및 그것의 동작 방법 |
CN113223583A (zh) * | 2021-05-14 | 2021-08-06 | 深圳市硅格半导体有限公司 | NAND Flash坏块内数据重读的方法、电子设备及存储介质 |
CN113641309A (zh) * | 2021-08-19 | 2021-11-12 | 深圳忆联信息系统有限公司 | Ssd的弱块识别方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1424631B1 (en) | Hybrid implementation for error correction codes within a non-volatile memory system | |
JP4079506B2 (ja) | 不揮発性半導体メモリシステムの制御方法 | |
US8312250B2 (en) | Dynamic storage of cache data for solid state disks | |
US7755950B2 (en) | Programming methods of memory systems having a multilevel cell flash memory | |
JP4524309B2 (ja) | フラッシュメモリ用のメモリコントローラ | |
US8909982B2 (en) | System and method for detecting copyback programming problems | |
US8732519B2 (en) | Method for using bad blocks of flash memory | |
US9189313B2 (en) | Memory system having NAND-type flash memory and memory controller with shift read controller and threshold voltage comparison module | |
US20080120488A1 (en) | Apparatus and method of managing nonvolatile memory | |
US8589619B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
TWI389122B (zh) | 用來存取一快閃記憶體之方法以及相關之記憶裝置及其控制器 | |
KR101090394B1 (ko) | 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법 | |
US8694748B2 (en) | Data merging method for non-volatile memory module, and memory controller and memory storage device using the same | |
US8214698B2 (en) | Solid state storage system with improved data merging efficiency and control method thereof | |
US8250292B2 (en) | Data writing method for a flash memory, and controller and storage system using the same | |
CN112347001B (zh) | 闪存垃圾回收的校验方法、装置及电子设备 | |
JP2004220068A (ja) | メモリカード及びメモリへのデータ書き込み方法 | |
US8068363B2 (en) | Flash memory apparatus and read operation control method therefor | |
JP2007293917A (ja) | メモリシステムの制御方法 | |
US20180052635A1 (en) | Electronic control apparatus and information storage method for the same | |
CN117789808A (zh) | 一种存储器及其坏块纠错方法 | |
KR20120070408A (ko) | 블록을 관리하는 비휘발성 메모리 장치의 제어 방법 | |
CN115185468A (zh) | 存储器管理方法、存储器控制器及存储器存储装置 | |
US20100042900A1 (en) | Write Failure Handling of MLC NAND | |
CN110162493B (zh) | 存储器管理方法及使用所述方法的储存控制器 |
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 |