CN114627959A - 闪存检测方法、闪存检测装置、设备及介质 - Google Patents
闪存检测方法、闪存检测装置、设备及介质 Download PDFInfo
- Publication number
- CN114627959A CN114627959A CN202210293248.6A CN202210293248A CN114627959A CN 114627959 A CN114627959 A CN 114627959A CN 202210293248 A CN202210293248 A CN 202210293248A CN 114627959 A CN114627959 A CN 114627959A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- target
- bit
- flash memory
- 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 504
- 238000001514 detection method Methods 0.000 title claims abstract description 55
- 238000012360 testing method Methods 0.000 claims abstract description 107
- 230000002159 abnormal effect Effects 0.000 claims abstract description 34
- 238000007726 management method Methods 0.000 claims description 62
- 238000003860 storage Methods 0.000 claims description 47
- 238000000034 method Methods 0.000 claims description 44
- 239000002245 particle Substances 0.000 claims description 30
- 239000008187 granular material Substances 0.000 claims description 25
- 238000013500 data storage Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 10
- 238000012423 maintenance Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000008188 pellet Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
Landscapes
- Read Only Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种闪存检测方法、闪存检测装置、设备及介质。闪存检测方法包括:获取当前内存块的第一编码数据和第二编码数据。将第二编码数据与第一编码数据逐比特位进行对比,检测每一比特位上的数据是否相同。若第二编码数据的至少一个比特位上的数据与第一编码数据不同,则将至少一个比特位确定为目标比特位,并记录目标比特位。通过本发明,第二编码数据与第一测试编码数据逐比特位进行对比,能够明确当前内存块在指定测试条件下获取的第二编码数据中是否存在与第一测试编码数据不同的比特位,进而明确发生异常的目标比特位,并将其进行记录,以便后续对当前内存块进行维护或者分析时,能够快速定位该目标比特位,并对其进行针对性维护或者分析。
Description
技术领域
本发明涉及存储计算领域,具体涉及一种闪存检测方法、闪存检测装置、设备及介质。
背景技术
闪存(快闪存储器)是一种电子可擦除可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)。闪存允许在操作中对存储的内存数据执行多次擦或写,并具有非易失性。由于闪存在对内存数据进行擦或写时,能够以内存块为单位对内存数据抹擦,进而当有大量数据写入的需求时,闪存相比于传统EEPROM更具有显著地优势。
在实际应用中,当闪存由于自身原因或者受到外界原因干扰时,则容易导致其内部的存储数据发生位翻转现象,进而导致数据读取时无法正确读取。
相关技术中,为便于管理闪存内的各内存块,则预先对每一个内存块进行检测,确定是否闪存内是否存在无法正确读取的内存块,以便对无法正确读取的内存块进行单独管理、维护或者分析。
但采用该种方式检测闪存时,仅能确定该闪存内是否存在无法正确读取的内存块,但无法确定其无法正确读取的原因,进而导致后续对无法正确读取的内存块进行维护或者分析时,需要消耗大量的时间成本。
发明内容
因此,本发明要解决的技术问题在于克服现有技术中对内存块无法正确读取的原因不明确的缺陷,从而提供一种闪存检测方法、闪存检测装置、设备及介质。
结合第一方面,本发明提供一种闪存检测方法,所述方法包括:
获取当前内存块的第一编码数据和第二编码数据,其中,所述第一编码数据为对照编码数据,所述第二编码数据为在指定测试条件下获取的测试编码数据;
将所述第二编码数据与所述第一编码数据逐比特位进行对比,检测每一比特位上的数据是否相同;
若所述第二编码数据的至少一个比特位上的数据与所述第一编码数据不同,则将所述至少一个比特位确定为目标比特位,并记录所述目标比特位。
在该方式中,通过将第二编码数据与第一测试编码数据逐比特位进行对比,能够确定第二编码数据中各比特位上的数据是否均与第一测试编码数据相同,若第二编码数据的至少一个比特位上的数据与第一编码数据不同,则将第二编码数据中数据与第一测试编码数据不同的目标比特位进行记录,用于明确导致当前内存块无法正确读取的原因,进而后续对当前内存块进行维护或者分析时,能够快速定位该目标比特位上的数据,从而提高维护或者分析的时效性和有效性,能够降低维护或者分析成本。
结合第一方面,在第一方面的第一实施例中,所述方法还包括:
识别所述当前内存块所在闪存的目标闪存颗粒;
根据预置的闪存颗粒与最小内存单元之间的对应关系,确定所述目标闪存颗粒对应的目标最小内存单元,所述目标最小内存单元包括至少一个比特位;
根据所述目标比特位在所述第二编码数据中的编码位置,确定并记录处于异常状态的目标最小内存单元;
其中,所述处于异常状态的目标最小内存单元内包括至少一个目标比特位。
在该方式中,通过识别当前内存块所在闪存的目标闪存颗粒,能够确定当前内存块在存储内存数据时的目标最小内存单位,进而当确定第二编码数据中包含目标比特位时,便可以根据目标比特位在第二编码数据中的编码位置,确定并记录处于异常状态的目标最小内存单元,从而后续分析当前内存块无法正确读取数据的原因时,便可以通过已记录的目标比特位和处于异常状态的目标最小内存单元进行针对性的分析,提高准确度,有助于缩短分析成本。
结合第一方面的第一实施例,在第一方面的第二实施例中,所述方法还包括:将记录的所述目标比特位和记录的所述处于异常状态的目标最小内存单元发送至测试主机。
在该方式中,有助于测试主机明确闪存中各内存块的状态,进而对该闪存的特性进行分析时,能够进行针对性的分析,从而提高分析结果的可靠性和准确性。
结合第一方面、第一方面的第一实施例或第一方面的第二实施例,在第一方面的第三实施例中,所述获取当前内存块的第一编码数据和第二编码数据,包括:
识别所述当前内存块所在闪存的目标闪存颗粒;
根据预置的闪存颗粒与内存管理页之间的对应关系,确定所述目标闪存颗粒对应的目标内存管理页;
根据所述目标内存管理页,对所述目标存储块中每一个内存数据进行编码,得到所述第一编码数据;
在所述指定测试条件下,根据所述目标内存管理页,对所述目标存储块中每一个内存数据进行编码,得到所述第二编码数据。
结合第一方面的第三实施例,在第一方面的第四实施例中,所述获取当前内存块的第一编码数据和第二编码数据,包括:
识别所述当前内存块所在闪存的目标闪存颗粒;
根据预置的闪存颗粒与内存管理页之间的对应关系,确定所述目标闪存颗粒对应的目标内存管理页;
根据所述目标内存管理页,对所述目标存储块中每一个内存数据进行编码,得到所述第一编码数据;
在所述指定测试条件下,根据所述目标内存管理页,对所述目标存储块中每一个内存数据进行编码,得到所述第二编码数据。
结合第一方面,在第一方面的第五实施例中,所述指定测试条件包括以下任意一个或多个测试条件的组合:指定使用寿命周期、指定数据存储状态以及指定可擦写次数。
结合第一方面,在第一方面的第六实施例中,在获取当前内存块的第一编码数据和第二编码数据之前,所述方法还包括:
接收用于检测闪存的测试指令,所述闪存包括所述当前存储块。
结合第二方面,本发明还提供一种闪存检测装置,所述装置包括:
获取单元,用于获取当前内存块的第一编码数据和第二编码数据,其中,所述第一编码数据为对照编码数据,所述第二编码数据为在指定测试条件下获取的测试编码数据;
检测单元,用于将所述第二编码数据与所述第一编码数据逐比特位进行对比,检测每一比特位上的数据是否相同;
存储单元,用于若所述第二编码数据的至少一个比特位上的数据与所述第一编码数据不同,则将所述至少一个比特位确定为。
结合第二方面,在第二方面的第一实施例中,所述装置还包括:
第一识别单元,用于识别所述当前内存块所在闪存的目标闪存颗粒;
第一确定单元,用于根据预置的闪存颗粒与最小内存单元之间的对应关系,确定所述目标闪存颗粒对应的目标最小内存单元,所述目标最小内存单元包括至少一个比特位;
第二确定单元,用于根据所述目标比特位在所述第二编码数据中的编码位置,确定并记录处于异常状态的目标最小内存单元;
其中,所述处于异常状态的目标最小内存单元内包括至少一个目标比特位。
结合第二方面的第一实施例,在第二方面的第二实施例中,所述装置还包括:
存储单元,用于将记录的所述目标比特位和记录的所述处于异常状态的目标最小内存单元发送至测试主机。
结合第二方面、第二方面的第一实施例或第二方面的第二实施例,所述获取单元包括:
第二识别单元,用于识别所述当前内存块所在闪存的目标闪存颗粒;
第三确定单元,用于根据预置的闪存颗粒与内存管理页之间的对应关系,确定所述目标闪存颗粒对应的目标内存管理页;
第一编码单元,用于根据所述目标内存管理页,对所述目标存储块中每一个内存数据进行编码,得到所述第一编码数据;
第二编码单元,用于在所述指定测试条件下,根据所述目标内存管理页,对所述目标存储块中每一个内存数据进行编码,得到所述第二编码数据。
结合第二方面的第三实施例,在第二方面的第四实施例中,若所述目标闪存颗粒为三层式存储单元,则所述目标内存管理页包括多种子内存管理页;
所述第一编码单元包括:
第一编码子单元,用于分别对所述目标存储块内每一个子内存管理页上的内存数据进行编码,得到多组第一编码子数据,所述多组第一编码子数据为所述第一编码数据;
所述第二编码单元包括:
第二编码子单元,用于在所述指定测试条件下,分别对所述目标存储块内每一个子内存管理页上的内存数据进行编码,得到多组第二编码子数据,所述多组第二编码子数据为所述第一编码数据。
结合第二方面,在第二方面的第五实施例中,所述指定测试条件包括以下任意一个或多个测试条件的组合:指定使用寿命周期、指定数据存储状态以及指定可擦写次数。
结合第二方面,在第二方面的第六实施例中,所述装置还包括:
接收单元,用于接收用于检测闪存的测试指令,所述闪存包括所述当前存储块。
根据第三方面,本发明实施方式还提供一种计算机设备,包括存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面及其可选实施方式中任一项的闪存检测方法。
根据第四方面,本发明实施方式还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面及其可选实施方式中任一项的闪存检测方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例提出的一种闪存检测方法的流程图。
图2是根据一示例性实施例提出的另一种闪存检测方法的流程图。
图3是根据一示例性实施例提出的又一种闪存检测方法的流程图。
图4是根据一示例性实施例提出的一种编码示意图。
图5是根据一示例性实施例提出的又一种闪存检测方法的流程图。
图6是根据一示例性实施例提出的一种闪存检测***的结构示意图。
图7是根据一示例性实施例提出的又一种闪存检测方法的流程图。
图8是根据一示例性实施例提出的一种阈值分布示意图。
图9是根据一示例性实施例提出的又一种闪存检测方法的流程图。
图10是根据一示例性实施例提出的一种闪存检测装置的结构框图。
图11是根据一示例性实施例提出的一种计算机设备的硬件结构示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,为便于确定闪存在实际应用中所具有的特性,将其正式应用至计算机设备之前,预先检该闪存的性能。针对闪存所包含的多个内存块,分别检测每一个内存块中的内存数据是否能够正确读取,若存在无法正确读取的内存块,则将其进行记录并单独管理,以后读取该闪存内的存储数据时,能够跳过该无法正确读取的内存块,进而保障获取的内存数据的准确性。
但采用该种方式进行检测,只能明确该内存块无法正确读取,但无法明确其无法正确读取的原因,进而导致后续对无法正确读取的内存块进行维护或者分析时,需要消耗大量的时间成本。
为解决上述问题,本发明实施例中提供一种闪存检测方法,用于计算机设备中,需要说明的是,其执行主体可以是闪存检测装置,该装置可以通过软件、硬件或者软硬件结合的方式实现成为计算机设备的部分或者全部,其中,该计算机设备可以是终端或客户端或服务器,服务器可以是一台服务器,也可以为由多台服务器组成的服务器集群,本申请实施例中的终端可以是智能手机、个人电脑、平板电脑、可穿戴设备以及智能机器人等其他智能硬件设备。下述方法实施例中,均以执行主体是计算机设备为例来进行说明。
本实施例中的计算机设备中,内置有待测试的闪存。由于闪存内能够对内存数据执行读/写操作的最小单位为内存块(Block),因此,在检测闪存时,是针对闪存内包含的每一个内存块进行检测。通过本发明提供的闪存检测方法,针对当前闪存块进行检测时,通过将获取的对比编码数据与获取的测试编码数据逐比特位进行对比,确定测试编码数据各比特位上的数据是否均与对比编码数据相同,进而当存在数据不同的比特位时,则将其进行记录,以便明确导致内存数据无法正确读取的原因,从而后续对当前内存块进行维护或者分析时,能够快速确定并定位该当前存储块的异常原因,以便对其进行针对性维护或者分析。
图1是根据一示例性实施例提出的一种闪存检测方法的流程图。如图1所示,闪存检测方法包括如下步骤S101至步骤S103。
在步骤S101中,获取当前内存块的第一编码数据和第二编码数据。
在本发明实施例中,第一编码数据可以理解为是将当前内存块内的原始数据进过编码后得到的编码数据。由于原始数据是未经过处理的数据,因此,可以将第一编码数据作为对照编码数据。在一示例中,第一编码数据可以是在闪存处于初始状态时,响应于接收到的生成随机数命令,在每一个内存块内随机生成的编码数据。
第二编码数据可以理解为是在当前内存块所在的闪存满足指定测试条件时,针对当前内存块所获取的测试编码数据,以便通过该测试编码数据确定当前内存块是否存在异常。
指定测试条件可以理解为是确定何时对闪存进行检测的测试条件。若闪存的状态满足指定测试条件,则针对闪存中的每一个内存块进行检测,得到每一个内存块对应的第二编码数据。若闪存的状态不满足指定测试条件,则不获取每一个内存块对应的第二编码数据。其中,指定测试条件包括以下任意一个或多个测试条件的组合:指定使用寿命周期(P/E Cycle)、指定数据存储状态(Retention)以及指定读次数(Block Read Cnt)。
在步骤S102中,将第二编码数据与第一编码数据逐比特位进行对比,检测每一比特位上的数据是否相同。
在本发明实施例中,第一编码数据和第二编码数据均为当前内存块的编码数据,但二者获取的时机存在差异。在等待闪存的状态满足指定测试条件的过程中,闪存内的内存数据可能由于闪存的自身特性或者外界驱动该待检测闪存电压不稳定等因素,导致部分比特位(bit)上的数据发生改变。例如,部分比特位上的数据发生位翻转现象。因此,为确定当前内存块的第二编码数据是否发生改变,则将第二编码数据与第一编码数据逐比特位进行对比,检测每一比特位上的数据是否相同,以便明确每一个比特位上的数据是否发生改变。
在步骤S103中,若第二编码数据的至少一个比特位上的数据与第一编码数据不同,则将至少一个比特位确定为目标比特位,并记录目标比特位。
在本发明实施例中,若第二编码数据的至少一个比特位上的数据与第一编码数据不同,则表征在等待闪存的状态满足指定测试条件的过程中,至少一个比特位上的数据发生了改变,因此,将该至少一个比特位确定为目标比特位,并记录目标比特位,以便用户能够根据记录的目标比特位明确导致当前内存块无法正确读取的原因。
通过上述实施例,通过将第二编码数据与第一测试编码数据逐比特位进行对比,能够确定第二编码数据中各比特位上的数据是否均与第一测试编码数据相同,若第二编码数据的至少一个比特位上的数据与第一编码数据不同,则将第二编码数据中数据与第一测试编码数据不同的目标比特位进行记录,用于明确导致当前内存块无法正确读取的原因,进而后续对当前内存块进行维护或者分析时,能够快速定位该目标比特位上的数据,从而提高维护或者分析的时效性和有效性,能够降低维护或者分析成本。
图2是根据一示例性实施例提出的另一种闪存检测方法的流程图。如图2所示,闪存检测方法包括如下步骤。
在步骤S201中,获取当前内存块的第一编码数据和第二编码数据。
在步骤S202中,将第二编码数据与第一编码数据逐比特位进行对比,检测每一比特位上的数据是否相同。
在步骤S203中,若第二编码数据的至少一个比特位上的数据与第一编码数据不同,则将至少一个比特位确定为目标比特位,并记录目标比特位。
在步骤S204中,识别当前内存块所在闪存的目标闪存颗粒。
在本发明实施例中,不同闪存的闪存颗粒不同。市面上闪存颗粒的类型包括以下三种:单层次存储单元(Single-Level Cell,SLC)、双层存储单元(Multi-Level Cell,MLC)和三层式存储单元(Trinary-Level Cell,TLC)。不同的闪存颗粒,闪存在存储内存数据时对应的最小内存单元也不同。例如:若闪存颗粒为SLC,则对应的最小内存单元为1比特位,即,1bit/cell。若闪存颗粒为MLC,则对应的最小内存单元为2比特位,即,2bit/cell。若闪存颗粒为TLC,则对应的最小内存单元为3比特位,即,3bit/cell。
通过识别当前内存块所在闪存的目标闪存颗粒,有助于明确当前内存块在存储内存数据时的目标最小内存单位,进而后续检测当前内存块时,能够确定当前内存块中的多个目标最小内存单元中,是否存在处于异常状态的目标最小内存单元,以便后续提高检测精确度,明确当前内存块中包括目标比特位的目标最小内存单元。其中,处于状态异常的目标最小内存单元可以理解为是至少包括一个目标比特位的目标最小内存单元。
在步骤S205中,根据预置的闪存颗粒与最小内存单元之间的对应关系,确定目标闪存颗粒对应的目标最小内存单元。
在本发明实施例中,每一个目标最小内存单元内包括至少一个目标比特位。根据预置的闪存颗粒与最小内存单元之间的对应关系,在识别到当前内存块存储内存数据的目标闪存颗粒后,确定目标闪存颗粒对应的目标最小内存单元,以便在后续检测的过程中,可以基于每一个目标比特位在第二编码数据中的编码位置,确定当前内存块中处于异常状态的目标最小内存单元。例如:若目标最小内存单元为1比特位,则处于状态异常的目标最小内存单元包括1个目标比特位。若目标最小内存单元为2比特位,则处于状态异常的目标最小内存单元可以包括1个目标比特位或者2个目标比特位。若目标最小内存单元为3比特位,则处于状态异常的目标最小内存单元可以包括至少1个目标比特位,但不大于3个目标比特位。
在步骤S206中,根据目标比特位在第二编码数据中的编码位置,确定并记录处于异常状态的目标最小内存单元。
在本发明实施例中,根据目标最小内存单元所包括的比特位数量,逐比特位检测每一个目标最小内存单元。根据各目标比特位在第二编码数据中的编码位置,确定当前目标最小内存单元内是否包括目标比特位。若当前目标最小内存单元内包括目标比特位,则确定该当前目标最小内存单元为处于异常状态的目标最小内存单元,并将其进行记录,以便后续用户能够明确当前内存块中处于异常状态的具体目标最小内存单元。
通过上述实施例,通过识别当前内存块所在闪存的目标闪存颗粒,能够确定当前内存块在存储内存数据时的目标最小内存单位,进而当确定第二编码数据中包含目标比特位时,便可以根据目标比特位在第二编码数据中的编码位置,确定并记录处于异常状态的目标最小内存单元,从而后续分析当前内存块无法正确读取数据的原因时,便可以通过已记录的目标比特位和处于异常状态的目标最小内存单元进行针对性的分析,提高准确度,有助于缩短分析成本。
图3是根据一示例性实施例提出的又一种闪存检测方法的流程图。如图3所示,闪存检测方法包括如下步骤。
在步骤S301中,获取当前内存块的第一编码数据和第二编码数据。
在步骤S302中,将第二编码数据与第一编码数据逐比特位进行对比,检测每一比特位上的数据是否相同。
在步骤S303中,若第二编码数据的至少一个比特位上的数据与第一编码数据不同,则将至少一个比特位确定为目标比特位,并记录目标比特位。
在步骤S304中,识别当前内存块所在闪存的目标闪存颗粒。
在步骤S305中,根据预置的闪存颗粒与最小内存单元之间的对应关系,确定目标闪存颗粒对应的目标最小内存单元。
在步骤S306中,根据目标比特位在第二编码数据中的编码位置,确定并记录处于异常状态的目标最小内存单元。
在步骤S307中,将记录的目标比特位和记录的处于异常状态的目标最小内存单元发送至测试主机。
在本发明实施例中,测试主机可以理解为是用于管理闪存检测结果的计算机设备。将记录的目标比特位和记录的处于异常状态的目标最小内存单元发送至测试主机,以便后续测试主机能够根据接收到的错误比特位信息明确闪存中具体哪一个内存块在读取数据时存在异常,进而对该闪存的性能、数据存储稳定性等特性进行分析时,能够进行针对性的分析,从而提高分析结果的可靠性和准确性。其中,错误比特位信息包括每一个内存块的目标比特位和/或处于异常状态的目标最小内存单元。
通过上述实施例,有助于测试主机明确闪存中各内存块的状态,进而对该闪存的特性进行分析时,能够进行针对性的分析,从而提高分析结果的可靠性和准确性。
在一实施例中,当前内存块的第一编码数据和第二编码数据可以基于当前内存块所在闪存的目标闪存颗粒进行获取。在读取内存数据进行编码时,闪存颗粒不同,内存块中管理内存数据的内存管理页(page)也不同。并且,不同内存管理页之间所包括的子内存管理页的类型也不同。在一示例中,若闪存颗粒为SLC,则对应的目标内存管理页包括一种子内存管理页。若闪存颗粒为MLC,则对应的目标内存管理页包括两种子内存管理页,例如:lower page(低级内存管理页)和upper page(高级内存管理页)。若闪存颗粒为TLC,对应的目标内存管理页包括三种子内存管理页,例如:lower page、middle page(中级内存管理页)和upper page。
因此,为便于准确编码,当确定闪存的目标闪存颗粒,则根据闪存颗粒与内存管理页之间的对应关系,确定目标闪存颗粒对应的目标内存管理页。根据确定的目标内存管理页,对目标存储块中每一个内存数据进行编码,得到第一编码数据。在指定测试条件下,根据目标内存管理页,对目标存储块中每一个内存数据进行编码,得到第二编码数据。
在另一实施例中,若目标闪存颗粒为三层式存储单元,则对应的目标内存管理页包括多种子内存管理页,例如:lower page、middle page和upper page。不同子内存管理页中所存储的内存数据不同,因此,在编码的过程中,针对每一字线上的内存数据分别通过不同的子内存管理页进行读取、编码,进而得到多组第一编码子数据,多组第一编码子数据即为第一编码数据。不同组编码子数据对应于不同子内存管理页。同理,在指定测试条件下,针对每一字线上的内存数据分别通过不同的子内存管理页进行获取、编码,进而得到多组第二编码子数据,多组第一编码子数据即为第二编码数据。
在一实施场景中,以目标闪存颗粒为三层式存储单元为例,可以采用2-3-2十六进制的方式进行编码,编码过程可以如图4所示。图4是根据一示例性实施例提出的一种编码示意图。Lower、Middle和Upper分别指代lower page、middle page和upper page。由于TLC闪存的每一个最小内存单元中保存3Bit的内存数据,即每一个最小内存单元分别保存相同WL号的三个Page的一个Bit,所以根据写入的不同,每个最小内存单元会是如图4所示的8中状态的任意一种。
通过将各子内存管理页上的内存数据进行读取、编码得到的第一编码数据,可以如下表1所示:
data_pre(0) | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | … |
data_pre(1) | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | … |
data_pre(2) | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | … |
表1
其中,data_pre(0)表示lower page上的内存数据对应的一组第一编码子数据,data_pre(1)表示middle page上的内存数据对应的一组第一编码子数据,data_pre(2)表示upper page上的内存数据对应的一组第一编码子数据。
在指定测试条件下,通过将各子内存管理页上的内存数据进行读取、编码得到的第一编码数据,可以如下表2所示:
data_rd(0) | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | … |
data_rd(1) | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | … |
data_rd(2) | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | … |
表2
其中,data_rd(0)表示lower page上的内存数据对应的一组第二编码子数据,data_rd(1)表示middle page上的内存数据对应的一组第二编码子数据,data_rd(2)表示upper page上的内存数据对应的一组第二编码子数据。
将第二编码数据与第一编码数据逐比特位进行对比时,分别将data_rd(0)与data_pre(0)逐比特位进行对比,将data_rd(1)与data_pre(1)逐比特位进行对比,将data_rd(2)与data_pre(2)逐比特位进行对比,确定每一比特位上的数据是否相同,进而将数据存在不同的比特位确定为目标比特位,并记录该目标比特位。根据目标比特位在第二编码数据中的编码位置,确定并记录处于异常状态的目标最小内存单元。
图5是根据一示例性实施例提出的又一种闪存检测方法的流程图。如图5所示,闪存检测方法包括如下步骤。
在步骤S501中,接收用于检测闪存的测试指令。
在本发明实施例中,闪存包括当前存储块。根据接收到的测试指令对闪存进行测试。
在步骤S502中,获取当前内存块的第一编码数据和第二编码数据。
在步骤S503中,将第二编码数据与第一编码数据逐比特位进行对比,检测每一比特位上的数据是否相同。
在步骤S504中,若第二编码数据的至少一个比特位上的数据与第一编码数据不同,则将至少一个比特位确定为目标比特位,并记录目标比特位。
通过上述实施例,响应于接收到的测试指令,对闪存进行检测,进而避免检测时影响闪存的运行。
在一实施场景中,通过测试主机检测闪存的***结构可以如图6所示。图6是根据一示例性实施例提出的一种闪存检测***的结构示意图。
在该闪存检测***中,包括闪存、承载闪存的测试板卡、测试主机(Host)。
测试板卡中包括微控制单元(Microcontroller Unit,MCU),并运行着闪存控制程序,可以生成测试数据,可以接收测试主机发出的指令实现对闪存执行读写擦命令。闪存的固定采用接插座(socket)的方式,方便更换不同厂家的闪存。测试板卡中具有网络接口,能够实现与测试主机之间的命令及数据交互。
测试主机中运行着控制程序,控制整个检测流程,日志(Log)记录,错误比特位(Error Bit)信息的记录等。测试主机能够通过网络基于交换机与多块测试板卡进行通信,进而同时管理多块测试板卡。错误比特位信息包括:每一个内存块的目标比特位和/或处于异常状态的目标最小内存单元。
在另一实施场景中,结合图6所示的闪存检测***,测试主机端所执行的测试流程可以如图7所示。图7是根据一示例性实施例提出的又一种闪存检测方法的流程图。
在步骤S701中,与测试板卡建立连接。
在步骤S702中,向测试板卡下发随机数生成命令,以控制测试板卡将原始数据存储在闪存内。
在步骤S703中,向测试板卡下发测试命令。
在步骤S704中,判断是否将闪存多个内存块的错误比特位信息全部接收。
在步骤S705中,若接收到部分错误比特位信息,则部分错误比特位信息其进行保存。
在步骤S706中,若接收到全部错误比特位信息,则对闪存的性能进行分析。
在一示例中,测试主机根据接收到的错误比特位信息进行分析时,可以得到如图8所示的阈值分布。图8是根据一示例性实施例提出的一种阈值分布示意图。可以结合闪存的读取偏移功能(Read Offset),获取各内存块在特定偏移范围下的位翻转信息,进而得到如图8所示的阈值分布。
在又一实施场景中,结合图6所示的闪存检测***,测试板卡所在计算机设备端所执行的测试流程可以如图9所示。图9是根据一示例性实施例提出的又一种闪存检测方法的流程图。
在步骤S901中,与测试主机建立连接。
在步骤S902中,判断是否接收到命令。
在本发明实施例中,命令包括测试命令或者随机数生成命令。
在步骤S9031中,若未接收到命令,则等待命令。
在步骤S9032中,若接收到命令,则判断命令是否为随机数生成命令。
在步骤S904中,若是随机数生成命令,则生成随机数。
在本发明实施例中,选定随机种子带入随机函数,生成S个随机数。其中,S为闪存内每一个内存块的目标内存管理页的种类个数。将S个随机数作为随机种子带入随机函数,生成S*N个数据,其中N为每个目标内存管理页上内存数据的个数。将生成的S*N个数据作为原始数据,按照数组形式保存在测试板卡的内存中,每个目标内存管理页上的内存数据连续存放,以便后续对其进行编码得到第一编码数据。
在步骤S905中,若不是随机数生成命令,则判断是否是测试命令。
在步骤S906中,若是测试命令,则确定检测闪存的指定测试条件。
在步骤S907中,将原始数据写入闪存内,获取当前内存块的第一编码数据。
在步骤S908中,判断闪存的状态是否满足指定测试条件。
在步骤S9091中,若闪存的状态不满足指定测试条件,则进行数据准备,以使闪存的状态满足指定测试条件。
在步骤S9092中,若闪存的状态满足指定测试条件,则获取的当前内存块的第二编码数据。
在步骤S910中,将第二编码数据与第一编码数据逐比特位进行对比,确定错误比特位信息。
在步骤S911中,将错误比特位信息发送至测试主机。
在步骤S912中,判断目标内存管理页上的内存数据是否全部读取。
在步骤S913中,判断闪存内的内存块是否全部检测。
在步骤S914中,若接收到命令为其他命令,则处理其他命令。
通过上述实施例,测试主机能够明确每一个的闪存的各内存块内目标内存管理页上存在编码异常的目标比特位、目标比特位的数量以及处于异常状态的目标最小内存单元,进而后续进行分析时,能够明确的目标最小内存单元能够在什么条件下发生位翻转现象,从而提高闪存特性分析的准确性,使得到的分析结果更有助于对闪存进行针对性的维护,提升闪存性能。
基于相同发明构思,本发明还提供一种闪存检测装置。
图10是根据一示例性实施例提出的一种闪存检测装置的结构框图。如图10所示,闪存检测装置包括:获取单元1001、检测单元1002和存储单元1003。
获取单元1001,用于获取当前内存块的第一编码数据和第二编码数据,其中,第一编码数据为对照编码数据,第二编码数据为在指定测试条件下获取的测试编码数据;
检测单元1002,用于将第二编码数据与第一编码数据逐比特位进行对比,检测每一比特位上的数据是否相同;
存储单元1003,用于若第二编码数据的至少一个比特位上的数据与第一编码数据不同,则将至少一个比特位确定为。
在一实施例中,装置还包括:第一识别单元,用于识别当前内存块所在闪存的目标闪存颗粒。第一确定单元,用于根据预置的闪存颗粒与最小内存单元之间的对应关系,确定目标闪存颗粒对应的目标最小内存单元,目标最小内存单元包括至少一个比特位。第二确定单元,用于根据目标比特位在第二编码数据中的编码位置,确定并记录处于异常状态的目标最小内存单元。其中,处于异常状态的目标最小内存单元内包括至少一个目标比特位。
在另一实施例中,装置还包括:存储单元,用于将记录的目标比特位和记录的处于异常状态的目标最小内存单元发送至测试主机。
在又一实施例中,获取单元1001包括:第二识别单元,用于识别当前内存块所在闪存的目标闪存颗粒。第三确定单元,用于根据预置的闪存颗粒与内存管理页之间的对应关系,确定目标闪存颗粒对应的目标内存管理页。第一编码单元,用于根据目标内存管理页,对目标存储块中每一个内存数据进行编码,得到第一编码数据。第二编码单元,用于在指定测试条件下,根据目标内存管理页,对目标存储块中每一个内存数据进行编码,得到第二编码数据。
在又一实施例中,若目标闪存颗粒为三层式存储单元,则目标内存管理页包括多种子内存管理页。第一编码单元包括:第一编码子单元,用于分别对目标存储块内每一个子内存管理页上的内存数据进行编码,得到多组第一编码子数据,多组第一编码子数据为第一编码数据。第二编码单元包括:第二编码子单元,用于在指定测试条件下,分别对目标存储块内每一个子内存管理页上的内存数据进行编码,得到多组第二编码子数据,多组第二编码子数据为第一编码数据。
在又一实施例中,指定测试条件包括以下任意一个或多个测试条件的组合:指定使用寿命周期、指定数据存储状态以及指定可擦写次数。
在又一实施例中,装置还包括:接收单元,用于接收用于检测闪存的测试指令,闪存包括当前存储块。
上述闪存检测装置的具体限定以及有益效果可以参见上文中对于闪存检测方法的限定,在此不再赘述。上述各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图11是根据一示例性实施例提出的一种计算机设备的硬件结构示意图。如图11所示,该设备包括一个或多个处理器1110以及存储器1120,存储器1120包括持久内存、易失内存和硬盘,图11中以一个处理器1110为例。该设备还可以包括:输入装置1130和输出装置1140。
处理器1110、存储器1120、输入装置1130和输出装置1140可以通过总线或者其他方式连接,图11中以通过总线连接为例。
处理器1110可以为中央处理器(Central Processing Unit,CPU)。处理器1110还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器1120作为一种非暂态计算机可读存储介质,包括持久内存、易失内存和硬盘,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的业务管理方法对应的程序指令/模块。处理器1110通过运行存储在存储器1120中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述任意一种闪存检测方法。
存储器1120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据、需要使用的数据等。此外,存储器1120可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器1120可选包括相对于处理器1110远程设置的存储器,这些远程存储器可以通过网络连接至数据处理装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置1130可接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键信号输入。输出装置1140可包括显示屏等显示设备。
一个或者多个模块存储在存储器1120中,当被一个或者多个处理器1110执行时,执行如图1-图9所示的方法。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,具体可参见如图1-图9所示的实施例中的相关描述。
本发明实施例还提供了一种非暂态计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的认证方法。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (10)
1.一种闪存检测方法,其特征在于,所述方法包括:
获取当前内存块的第一编码数据和第二编码数据,其中,所述第一编码数据为对照编码数据,所述第二编码数据为在指定测试条件下获取的测试编码数据;
将所述第二编码数据与所述第一编码数据逐比特位进行对比,检测每一比特位上的数据是否相同;
若所述第二编码数据的至少一个比特位上的数据与所述第一编码数据不同,则将所述至少一个比特位确定为目标比特位,并记录所述目标比特位。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
识别所述当前内存块所在闪存的目标闪存颗粒;
根据预置的闪存颗粒与最小内存单元之间的对应关系,确定所述目标闪存颗粒对应的目标最小内存单元,所述目标最小内存单元包括至少一个比特位;
根据所述目标比特位在所述第二编码数据中的编码位置,确定并记录处于异常状态的目标最小内存单元;
其中,所述处于异常状态的目标最小内存单元内包括至少一个目标比特位。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将记录的所述目标比特位和记录的所述处于异常状态的目标最小内存单元发送至测试主机。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述获取当前内存块的第一编码数据和第二编码数据,包括:
识别所述当前内存块所在闪存的目标闪存颗粒;
根据预置的闪存颗粒与内存管理页之间的对应关系,确定所述目标闪存颗粒对应的目标内存管理页;
根据所述目标内存管理页,对所述目标存储块中每一个内存数据进行编码,得到所述第一编码数据;
在所述指定测试条件下,根据所述目标内存管理页,对所述目标存储块中每一个内存数据进行编码,得到所述第二编码数据。
5.根据权利要求4所述的方法,其特征在于,若所述目标闪存颗粒为三层式存储单元,则所述目标内存管理页包括多种子内存管理页;
所述根据所述目标内存管理页,对所述目标存储块中每一个内存数据进行编码,得到所述第一编码数据,包括:
分别对所述目标存储块内每一个子内存管理页上的内存数据进行编码,得到多组第一编码子数据,所述多组第一编码子数据为所述第一编码数据;
所述在所述指定测试条件下,根据所述目标内存管理页,对所述目标存储块中每一个内存数据进行编码,得到所述第二编码数据,包括:
在所述指定测试条件下,分别对所述目标存储块内每一个子内存管理页上的内存数据进行编码,得到多组第二编码子数据,所述多组第二编码子数据为所述第一编码数据。
6.根据权利要求1所述的方法,其特征在于,所述指定测试条件包括以下任意一个或多个测试条件的组合:指定使用寿命周期、指定数据存储状态以及指定可擦写次数。
7.根据权利要求1所述的方法,其特征在于,在获取当前内存块的第一编码数据和第二编码数据之前,所述方法还包括:
接收用于检测闪存的测试指令,所述闪存包括所述当前存储块。
8.一种闪存检测装置,其特征在于,所述装置包括:
获取单元,用于获取当前内存块的第一编码数据和第二编码数据,其中,所述第一编码数据为对照编码数据,所述第二编码数据为在指定测试条件下获取的测试编码数据;
检测单元,用于将所述第二编码数据与所述第一编码数据逐比特位进行对比,检测每一比特位上的数据是否相同;
存储单元,用于若所述第二编码数据的至少一个比特位上的数据与所述第一编码数据不同,则将所述至少一个比特位确定为。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-7中任一项所述的闪存检测方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的闪存检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210293248.6A CN114627959A (zh) | 2022-03-23 | 2022-03-23 | 闪存检测方法、闪存检测装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210293248.6A CN114627959A (zh) | 2022-03-23 | 2022-03-23 | 闪存检测方法、闪存检测装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114627959A true CN114627959A (zh) | 2022-06-14 |
Family
ID=81904172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210293248.6A Pending CN114627959A (zh) | 2022-03-23 | 2022-03-23 | 闪存检测方法、闪存检测装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114627959A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117012258A (zh) * | 2023-09-26 | 2023-11-07 | 合肥康芯威存储技术有限公司 | 一种存储芯片状态数据的分析装置、方法及介质 |
-
2022
- 2022-03-23 CN CN202210293248.6A patent/CN114627959A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117012258A (zh) * | 2023-09-26 | 2023-11-07 | 合肥康芯威存储技术有限公司 | 一种存储芯片状态数据的分析装置、方法及介质 |
CN117012258B (zh) * | 2023-09-26 | 2024-01-02 | 合肥康芯威存储技术有限公司 | 一种存储芯片状态数据的分析装置、方法及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11030096B2 (en) | Method of identifying and preparing a key block in a flash memory system and memory controller therefor | |
CN107918588A (zh) | 数据储存装置及其数据写入方法 | |
US11644979B2 (en) | Selective accelerated sampling of failure- sensitive memory pages | |
CN114981892A (zh) | 预读取及读取阈值电压优化 | |
US11449266B2 (en) | Memory sub-system event log management | |
CN104094237A (zh) | 存储器设备中的增强的错误校正 | |
CN109164978B (zh) | 闪存管理方法、闪存存储设备及计算机可读存储介质 | |
US11521699B2 (en) | Adjusting a reliability scan threshold in a memory sub-system | |
US10990477B2 (en) | Device and method for controlling the data refresh cycles in reprogrammable non-volatile memories | |
US11379122B2 (en) | Selective relocation of data of a subset of a data block based on distribution of reliability statistics | |
US10747660B2 (en) | Method and system for forming and using memory superblocks based on performance grades | |
CN112447207A (zh) | 基于阈值电压漂移的温度相关斜率管理阈值电压漂移 | |
CN111459708B (zh) | 坏块处理方法及装置 | |
US11922025B2 (en) | Memory device defect scanning | |
CN113741798A (zh) | 数据存储装置及其操作方法 | |
CN114627959A (zh) | 闪存检测方法、闪存检测装置、设备及介质 | |
KR20170009554A (ko) | 테스트 시스템 및 테스트 방법 | |
US20230342084A1 (en) | Generating command snapshots in memory devices | |
CN113936704A (zh) | 基于存储器子***的存储器裸片的温度监测的异常条件检测 | |
CN109901789A (zh) | 数据存储装置、该数据存储装置的操作方法以及存储*** | |
US11450392B2 (en) | Selective read disturb sampling | |
US20230063167A1 (en) | Internal resource monitoring in memory devices | |
US20180261298A1 (en) | Memory system including a delegate page and method of identifying a status of a memory system | |
US11327770B2 (en) | Data storage devices, access device and data processing methods | |
CN109308930A (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 |