CN112083891B - 一种存储器中数据块的检测方法及相关设备 - Google Patents
一种存储器中数据块的检测方法及相关设备 Download PDFInfo
- Publication number
- CN112083891B CN112083891B CN202011002456.3A CN202011002456A CN112083891B CN 112083891 B CN112083891 B CN 112083891B CN 202011002456 A CN202011002456 A CN 202011002456A CN 112083891 B CN112083891 B CN 112083891B
- Authority
- CN
- China
- Prior art keywords
- data block
- data
- block set
- memory
- source
- 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.)
- Active
Links
Images
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/062—Securing storage 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请提供了一种存储器中数据块的检测方法及相关设备,确定出存储器中可用的数据块,避免向存储器中写入数据误写入存储器中错误的数据块而导致的数据写入错误。该方法包括:将擦除后的第一源数据块集合中的每个数据块写满随机数据,得到第二源数据块集合,将第二源数据块集合中每个数据块的数据写入第一数据块集合,得到第二数据块集合;对第二数据块集合中每个数据块进行数据校验,以确定数据校验正确的第三数据块集合;将写满随机数据的第四源数据块集合中每个数据块的数据写入第一源数据块集合,得到第五源数据块集合;对第五源数据块集合中的每个数据块进行数据校验,以确定出数据校验正确的第四数据块集合。
Description
技术领域
本申请涉及存储领域,尤其涉及一种存储器中数据块的检测方法及相关设备。
背景技术
为了提升NandFlash存储的安全性,在存储数据前需要确定Nand Flash的哪些块是可用的好块。
目前在确定Nand Flash中的好块时,通常对Nand Flash的所有块逐个使用页编程的方式写入数据到整个块的所有页,并且边写边校验,以挑出校验出错的块,对于支持copyback的Nand Flash(其中,copyback是一个命令,发送后,Flash自行完成:将一页中的数据复制到缓存中,然后从缓存中复制到另一页中),在存储数据时为了提升写速度,会使用copyback的方式写入数据,与常用的挑出坏块时的方式不一样,因此可能出现常用的方法无法挑出某些坏块,导致copyback方式写入数据时出错。
发明内容
本申请提供了一种存储器中数据块的检测方法及相关设备,确定出存储器中可用的数据块,避免向存储器中写入数据误写入存储器中错误的数据块而导致的数据写入错误。
本申请第一方面提供了一种存储器中数据块的检测方法,包括:
确定存储器中的第一源数据块集合;
将擦除后的所述第一源数据块集合中的每个数据块写满随机数据,得到第二源数据块集合;
将所述第二源数据块集合中每个数据块的数据写入第一数据块集合,得到第二数据块集合,所述第一数据块集合为所述存储器中除所述第一源数据块集合之外的数据块的集合;
对所述第二数据块集合中每个数据块进行数据校验,以确定出所述第二数据块集合中数据校验正确的第三数据块集合;
确定所述第三数据块集合中的第三源数据块集合,所述第三源数据块集合中的数据块数量与所述第一源数据块集合中的数据块数量相同;
将擦除后的所述第三源数据块集合中的每个数据块写满随机数据,得到第四源数据块集合;
将所述第四源数据块集合中每个数据块的数据写入所述第一源数据块集合,得到第五源数据块集合;
对所述第五源数据块集合中的每个数据块进行数据校验,以确定出所述第五源数据块集合中数据校验正确的第四数据块集合。
可选地,所述确定所述存储器中的第一源数据块集合包括:
获取所述存储器中数据块的有效页数M以及所述存储器在SLC模式下的页数N;
根据所述有效页数M以及所述页数N从所述存储器对应的数据块中进行抽取,得到所述第一源数据块集合。
可选地,所述根据所述有效页数M以及所述页数N从所述存储器对应的数据块中抽取,得到所述第一源数据块集合包括:
通过所述有效页数M与所述页数N的比值确定所述第一源数据块集合中的数据块数量;
基于所述数据块数量从所述存储器对应的数据块中进行抽取,得到所述第一源数据块集合。
可选地,所述基于所述数据块数量从所述存储器对应的数据块中进行抽取,得到所述第一源数据块集合包括:
基于所述数据块数量从所述存储器对应的数据块中进行抽取,得到初始数据块集合;
通过数据读写的方式从所述初始数据块集合中确定出错误的数据块;
将所述初始数据块集合中除所述错误的数据块之外的数据块集合确定为所述第一源数据块集合。
可选地,所述方法还包括:
将所述存储器中除所述第三数据块集合以及所述第四数据块集合之外的数据块标记为坏块;
接收针对于所述存储器的目标操作指令;
响应所述目标操作指令,将目标数据写入所述第三数据块集合中的数据块和/或所述第四数据块集合中的数据块,所述目标数据为与所述目标操作指令对应的待写入所述存储器的数据。
本申请第二方面提供了一种存储器中数据块的检测装置,包括:
确定单元,用于确定存储器中的第一源数据块集合;
写入单元,用于将擦除后的所述第一源数据块集合中的每个数据块写满随机数据,得到第二源数据块集合;
所述写入单元,还用于将所述第二源数据块集合中每个数据块的数据写入第一数据块集合,得到第二数据块集合,所述第一数据块集合为所述存储器中除所述第一源数据块集合之外的数据块的集合;
校验单元,用于对所述第二数据块集合中每个数据块进行数据校验,以确定出所述第二数据块集合中数据校验正确的第三数据块集合;
所述确定单元,还用于确定所述第三数据块集合中的第三源数据块集合,所述第三源数据块集合中的数据块数量与所述第一源数据块集合中的数据块数量相同;
所述写入单元,还用于将擦除后的所述第三源数据块集合中的每个数据块写满随机数据,得到第四源数据块集合;
所述写入单元,用于将所述第四源数据块集合中每个数据块的数据写入所述第一源数据块集合,得到第五源数据块集合;
所述校验单元,用于对所述第五源数据块集合中的每个数据块进行数据校验,以确定出所述第五源数据块集合中数据校验正确的第四数据块集合。
可选地,所述确定单元包括:
获取模块,用于获取所述存储器中数据块的有效页数M以及所述存储器在SLC模式下的页数N;
抽取模块,用于根据所述有效页数M以及所述页数N从所述存储器对应的数据块中进行抽取,得到所述第一源数据块集合。
可选地,所述抽取模块具体用于:
通过所述有效页数M与所述页数N的比值确定所述第一源数据块集合中的数据块数量;
基于所述数据块数量从所述存储器对应的数据块中进行抽取,得到所述第一源数据块集合。
可选地,所述抽取模块基于所述数据块数量从所述存储器对应的数据块中进行抽取,得到所述第一源数据块集合包括:
基于所述数据块数量从所述存储器对应的数据块中进行抽取,得到初始数据块集合;
通过数据读写的方式从所述初始数据块集合中确定出错误的数据块;
将所述初始数据块集合中除所述错误的数据块之外的数据块集合确定为所述第一源数据块集合。
可选地,所述装置还包括:
处理单元,所述处理单元用于:
将所述存储器中除所述第三数据块集合以及所述第四数据块集合之外的数据块标记为坏块;
接收针对于所述存储器的目标操作指令;
响应所述目标操作指令,将目标数据写入所述第三数据块集合中的数据块和/或所述第四数据块集合中的数据块,所述目标数据为与所述目标操作指令对应的待写入所述存储器的数据。
本申请第三方面提供了一种计算机装置,其包括至少一个连接的处理器和存储器,其中,所述存储器用于存储程序代码,所述程序代码由所述处理器加载并执行以实现上述所述的存储器中数据块的检测方法的步骤。
本申请第四方面提供了一种计算机可读存储介质,其包括指令,当其在计算机上运行时,使得计算机执行上述所述的存储器中数据块的检测方法的步骤。
综上所述,可以看出,本申请提供的实施例中,选取存储器中的少量的数据块作为源数据块,并在源数据块中逐个页写入随机数据,将写入随机数据的源数据块中的数据逐个写入存储器中除源数据块之外的其他数据块,之后再读出数据进行校验,得出存储器中数据校验正确的数据块,这样在向存储器中写数据时即可以将数据写入校验正确的数据块,避开存储器中的坏块,解决数据写入出错的问题。
附图说明
图1为本申请实施例提供的存储器中数据块的检测方法的流程示意图;
图2为本请实施例提供的存储器中数据块的检测装置的虚拟结构示意图;
图3为本申请实施例提供的服务器的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个***中,或一些特征向量可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。
下面从存储器中数据块的检测装置的角度对本申请提供的存储器中数据块的检测方法进行说明,该存储器中数据块的检测装置可以为服务器,也可以为服务器中的服务单元,具体不做限定。
请参阅图1,图1为本申请实施例提供的存储器中数据块的检测方法的流程示意图,包括:
101、确定存储器中的第一源数据块集合。
本实施例中,存储器中数据块的检测装置可以确定存储器中的第一源数据块集合,其中,该存储器为NandFlash。
一个实施例中,存储器中数据块的检测装置确定存储器中的第一源数据块集合包括:
获取存储器中数据块的有效页数M以及存储器在SLC模式下的页数N;
根据有效页数M以及页数N从所述存储器对应的数据块中进行抽取,得到第一源数据块集合。
本实施例中,存储器中数据块的检测装置可以获取存储器中数据块的有效页数M以及该存储器在SLC模式下的页数N,具体的可以根据检测软件进行获取,首先人为设定,一般设定方式是在一个数据集中,以存储器(如Nand Flash)的标识(Identity document,ID)为关键字,在检测软件发送读取Nand Flash的ID命令,读取到Nand Flash的ID后,通过NandFlash的ID查找得M和N,当然也还可以通过一系列的NandFlash操作命令来检测出M和N,具体不做限定,只要能得到存储器中数据块的有效页数M以及该存储器在SLC模式下的页数N即可,另外,因为SLC模式下的页写入速度更快,为了提升写速度,都是先写入SLC模式下的页,然后再copyback,当然也还可以是MLC模式下,具体不做限定。在得到有效页数M以及页数N之后,可以根据M和N从存储器对应的数据块中进行抽取,得到第一源数据块集合。具体的,可以通过有效页数M与页数N的比值确定第一源数据块集合中的数据块数量,之后根据该数据块数量从存储器对应的数据块中进行抽取,得到第一源数据块集合,例如该M与N的比值为5,则可以从存储器对应的数据块中抽取5个数据块作为第一源数据块集合,该抽取可以是随机抽取,也可以根据一定的规则进行抽取,具体不做限定,只要能抽取到5个数据块即可。
需要说明的是,当M不能被N整除时,则M/N的比值取整数,例如M/N=3.6,则此时该数据块数量为3,当M/N小于1时,则该数据块数量为M/N+1,该数据块数量为1。
还需要说明的是,在根据数据块数量对存储器对应的数据块进行抽取时,可以将抽取到的初始数据块集合,通过数据读写的方式从初始数据块集合中确定出错误的数据块,之后将初始数据块集合中除错误的数据块之外的数据块集合确定为第一数据块集合。也就是说,在对存储器对应的数据块进行抽取后,可以对抽取到的数据块做一次全块扫描,单纯的写入数据并读取数据进行比较,找出抽取到的数据块中错误的数据块,将无错误的数据块作源数据块,这样可以保证在后续根据该源数据块进行copyback时,更加精准的找到存储器中除第一源数据块集合之外的数据块中的没有出错的数据块。
需要说明的是,上述确定第一源数据块集合中数据块的数量仅为举例说明,当然也还可以采用其他的方式,例如可以直接根据用户的指令来选择,或者根据实际情况进行选择,具体不限定。
102、将擦除后的第一源数据块集合中的每个数据块写满随机数据,得到第二源数据块集合。
本实施例中,存储器中数据块的检测装置在得到第一源数据块集合之后,可以将第一源数据块集合中的每个数据块进行擦除操作,之后将擦除后的第一源数据块集合中的每个数据块写满随机数据,得到第二源数据块集合。可以理解的是,此处可以将第一源数据块集合中每个数据块写满随机数据,当然也还可以写满其他的数据,具体不做限定,只要写入第一源数据块集合中的每个数据块中的数据避免全部都是0xFF(即为自然数255)即可,因为Nand flash在写入前要擦除写入位置所在的块,擦除后整个块存的初始数据就是全部0xFF。在实际应用中,将第一源数据块集合中每个数据块写入随机数,会更能贴合用户在实际使用时写入数据的情况。可以理解的是,在向第一源数据块集合中每个数据块写随机数据时,是通过在源数据块中逐个页的方式写入随机数据的。
103、将第二源数据块集合中每个数据块的数据写入第一数据块集合,得到第二数据块集合。
本实施例中,存储器中数据块的检测装置可以将写满随机数据的第二源数据会集合中每个数据块的数据写入第一数据块集合,得到第二数据块集合,其中,该第一数据块集合为存储器中除第一源数据块集合之外的数据块的集合。也就是说,存储器中数据块的检测装置可以遍历存储器对应的数据块中其他未被抽取作为源数据块的第一数据块集合,将步骤102中写入的随机数据采用copyback的方式再次写入该第一数据块集合中的每个数据块,得到第二数据块集合。
可以理解的是,上面以copyback的方式将源数据块中的数据写入第一数据块集合中的每个数据块中,当然也还可以采用其他的方式写入,例如可以采用NandFlash的直接页编程操作方式写入,就是直接先通过NandFlash读命令读出源数据块中的数据(也即第二源数据块中每个数据块的数据),再通过写命令将读取的源数据块中的数据写入第一数据块集合中的每个数据块。但是支持copyback操作的NandFlash,使用copyback的方式从数据块中读出数据,再写入另一个数据块,能提升写入速度,因为在用户使用过程中写入数据时涉及垃圾回收,在实际使用过程中,可能存在写入一页数据时,需要搬迁其他数据,以回收一个完整的数据块块来,搬迁时使用copyback的方式会提升搬迁速度,增强产品的用户体验。但是当检测坏块时不使用copyback的方式,而实际使用过程中使用了copyback的方式,就会存在检测与实际使用方式不一样,检测的结果不准确,因此只要保证在实际使用过程中写数据至数据块以及检测坏块时使用相同的写入方式即可。
104、对第二数据块集合中每个数据块进行数据校验,以确定出第二数据块集合中数据校验正确的第三数据块集合。
本实施例中,存储器中数据块的检测装置可以对第二数据块集合中每个数据块进行数据校验,以确定出第二数据块集合中数据校验正确的第三数据块集合。例如A数据块为第二数据块集合中的任意一个数据块,其中A数据块中写入的数据为第二源数据块集合中A1数据块的数据,在进行数据校验时,从A数据块中读取数据,并将读取的数据与A1数据块的数据进行比较,如果数据匹配或者差异性未达到预设值,则说明校验通过,确定A数据块为数据校验正确的数据块,若数据不匹配,则说明校验未通过,确定A数据块为数据校验错误的数据块。以此类推,可以校验出第二数据块集合中每个数据块是否正确,得到数据校验正确的第三数据块集合。可以理解的是,为了简便操作,还可以对存储器中的数据块进行编号操作,在数据校验时,直接记录正确的数据块编号即可。
105、确定第三数据块集合中的第三源数据块集合。
本实施例中,存储器中数据块的检测装置在确定第二数据块集合中数据校验正确的第三数据块集合之后,可以从第三数据块集合中抽取第三源数据块集合,其中,第三源数据块集合中的数据块数量与第一源数据块集合中的数据块数量相同。可以理解的是,上述步骤101中已经对从存储器中抽取第一源数据块集合的方式进行了详细说明,此处从第三数据块集合中抽取第三源数据块集合的方式与此类似,具体此处不再赘述。
106、将擦除后的第三源数据块集合中的每个数据块写满随机数据,得到第四源数据块集合。
本实施例中,存储器中数据块的检测装置在得到第三源数据块集合之后,可以将第三源数据块集合中的每个数据块进行擦除操作,之后将擦除后的第三源数据块集合中的每个数据块写满随机数据,得到第四源数据块集合,也即该第四源数据块集合中每个源数据块中写完随机数据。可以理解的是,此处可以将第三源数据块集合中每个数据块写满随机数据,当然也还可以写满其他的数据,具体不做限定,只要写入第三源数据块集合中的每个数据块中的数据避免全部都是0xFF(即为自然数255)即可,因为Nand flash在写入前要擦除写入位置所在的块,擦除后整个块存的初始数据就是全部0xFF。在实际应用中,将第三源数据块集合中每个数据块写入随机数,会更能贴合用户在实际使用时写入数据的情况。
107、将第四源数据块集合中每个数据块的数据写入第一源数据块集合,得到第五源数据块集合。
本实施例中,存储器中数据块的检测装置可以将写满随机数据的第四源数据块集合中每个数据块的数据写入第一源数据块集合,得到第五源数据块集合。也就是说,存储器中数据块的检测装置可以遍历第一源数据块集合中的每个源数据块,将步骤106中写入随机数据的数据块采用copyback的方式再次写入该第一源数据块集合中的每个数据块,得到第五源数据块集合。
108、对第五源数据块集合中的每个数据块进行数据校验,以确定出第五源数据块集合中数据校验正确的第四数据块集合。
本实施例中,存储器中数据块的检测装置可以对第五源数据块集合中每个数据块进行数据校验,以确定出第五源数据块集合中数据校验正确的第四数据块集合。例如B数据块为第五源数据块集合中的任意一个数据块,其中B数据块中写入的数据为第四源数据块集合中B1数据块的数据,在进行数据校验时,从B数据块中读取数据,并将读取的数据与B1数据块的数据进行比较,若数据匹配或者数据差异性未达到预设值,则说明校验通过,确定B数据块为数据校验正确的数据块,若数据不匹配或者数据差异性达到预设值,则说明校验未通过,确定B数据块为数据校验错误的数据块。以此类推,可以校验出第五源数据块集合中每个数据块是否正确,得到数据校验正确的第四数据块集合。可以理解的是,为了简便操作,还可以对存储器中的数据块进行编号操作,在数据校验时,直接记录正确的数据块编号即可。
一个实施例中,存储器中数据块的检测装置在得到第四数据块集合之后,可以将存储器中除第三数据块集合以及第四数据块集合之外的数据块标记为坏块;
接收针对于存储器的目标操作指令,目标操作指令为将目标数据写入存储器的指令;
响应目标操作指令,将目标数据写入第三数据块集合中的数据块和/或第四数据块集合中的数据块。
本实施例中,存储器中数据块的检测装置在确定出存储器中正确的数据块之后,可以将存储器中除正确的数据块之外的数据块标记为坏块,在实际使用过程中,将数据写入正确的数据块即可。也就是说,可以接收针对于存储器的目标操作指令,该目标操作指令为将目标数据写入存储器的指令,之后可以将目标数据写入第三数据块集合中的数据块和/或第四数据块中的数据块。
综上所述,可以看出,本申请提供的实施例中,选取存储器中的少量的数据块作为源数据块,并在源数据块中逐个页写入随机数据,将写入随机数据的源数据块中的数据逐个写入存储器中除源数据块之外的其他数据块,之后再读出数据进行校验,得出存储器中数据校验正确的数据块,这样在向存储器中写数据时即可以将数据写入校验正确的数据块,避开存储器中的坏块,解决数据写入出错的问题。
上面从的存储器中数据块的检测方法的角度对本申请进行说明,下面从存储器中数据块的检测装置的角度对本申请进行说明。
请参阅图2,图2为本申请实施例提供的一种存储器中数据块的检测装置的虚拟结构示意图,包括:
确定单元201,用于确定存储器中的第一源数据块集合;
写入单元202,用于将擦除后的所述第一源数据块集合中的每个数据块写满随机数据,得到第二源数据块集合;
所述写入单元202,还用于将所述第二源数据块集合中每个数据块的数据写入第一数据块集合,得到第二数据块集合,所述第一数据块集合为所述存储器中除所述第一源数据块集合之外的数据块的集合;
校验单元203,用于对所述第二数据块集合中每个数据块进行数据校验,以确定出所述第二数据块集合中数据校验正确的第三数据块集合;
所述确定单元201,还用于确定所述第三数据块集合中的第三源数据块集合,所述第三源数据块集合中的数据块数量与所述第一源数据块集合中的数据块数量相同;
所述写入单元202,还用于将擦除后的所述第三源数据块集合中的每个数据块写满随机数据,得到第四源数据块集合;
所述写入单元202,用于将所述第四源数据块集合中每个数据块的数据写入所述第一源数据块集合,得到第五源数据块集合;
所述校验单元203,用于对所述第五源数据块集合中的每个数据块进行数据校验,以确定出所述第五源数据块集合中数据校验正确的第四数据块集合。
可选地,所述确定单元201包括:
获取模块2011,用于获取所述存储器中数据块的有效页数M以及所述存储器在SLC模式下的页数N;
抽取模块2012,用于根据所述有效页数M以及所述页数N从所述存储器对应的数据块中进行抽取,得到所述第一源数据块集合。
可选地,所述抽取模块2012具体用于:
通过所述有效页数M与所述页数N的比值确定所述第一源数据块集合中的数据块数量;
基于所述数据块数量从所述存储器对应的数据块中进行抽取,得到所述第一源数据块集合。
可选地,所述抽取模块2012基于所述数据块数量从所述存储器对应的数据块中进行抽取,得到所述第一源数据块集合包括:
基于所述数据块数量从所述存储器对应的数据块中进行抽取,得到初始数据块集合;
通过数据读写的方式从所述初始数据块集合中确定出错误的数据块;
将所述初始数据块集合中除所述错误的数据块之外的数据块集合确定为所述第一源数据块集合。
可选地,所述装置还包括:
处理单元204,所述处理单元204用于:
将所述存储器中除所述第三数据块集合以及所述第四数据块集合之外的数据块标记为坏块;
接收针对于所述存储器的目标操作指令;
响应所述目标操作指令,将目标数据写入所述第三数据块集合中的数据块和/或所述第四数据块集合中的数据块,所述目标数据为与所述目标操作指令对应的待写入所述存储器的数据。
综上所述,可以看出,本申请提供的实施例中,选取存储器中的少量的数据块作为源数据块,并在源数据块中逐个页写入随机数据,将写入随机数据的源数据块中的数据逐个写入存储器中除源数据块之外的其他数据块,之后再读出数据进行校验,得出存储器中数据校验正确的数据块,这样在向存储器中写数据时即可以将数据写入校验正确的数据块,避开存储器中的坏块,解决数据写入出错的问题。
图3是本申请实施例提供的一种服务器结构示意图,该服务器300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processingunits,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在服务器300上执行存储介质330中的一系列指令操作。
服务器300还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作***341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由存储器中数据块的检测装置所执行的步骤可以基于该图3所示的服务器结构。
本申请实施例还提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现上述所述存储器中数据块的检测方法的步骤。
本申请实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述存储器中数据块的检测方法的步骤。
本申请实施例还提供了一种终端设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,所述程序代码由所述处理器加载并执行以实现上述所述存储器中数据块的检测方法的步骤。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行上述所述存储器中数据块的检测方法的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种存储器中数据块的检测方法,其特征在于,包括:
确定存储器中的第一源数据块集合;
将擦除后的所述第一源数据块集合中的每个数据块写满随机数据,得到第二源数据块集合;
将所述第二源数据块集合中每个数据块的数据写入第一数据块集合,得到第二数据块集合,所述第一数据块集合为所述存储器中除所述第一源数据块集合之外的数据块的集合;
对所述第二数据块集合中每个数据块进行数据校验,以确定出所述第二数据块集合中数据校验正确的第三数据块集合;
确定所述第三数据块集合中的第三源数据块集合,所述第三源数据块集合中的数据块数量与所述第一源数据块集合中的数据块数量相同;
将擦除后的所述第三源数据块集合中的每个数据块写满随机数据,得到第四源数据块集合;
将所述第四源数据块集合中每个数据块的数据写入所述第一源数据块集合,得到第五源数据块集合;
对所述第五源数据块集合中的每个数据块进行数据校验,以确定出所述第五源数据块集合中数据校验正确的第四数据块集合。
2.根据权利要求1所述的方法,其特征在于,所述确定所述存储器中的第一源数据块集合包括:
获取所述存储器中数据块的有效页数M以及所述存储器在SLC模式下的页数N;
根据所述有效页数M以及所述页数N从所述存储器对应的数据块中进行抽取,得到所述第一源数据块集合。
3.根据权利要求2所述的方法,其特征在于,所述根据所述有效页数M以及所述页数N从所述存储器对应的数据块中抽取,得到所述第一源数据块集合包括:
通过所述有效页数M与所述页数N的比值确定所述第一源数据块集合中的数据块数量;
基于所述数据块数量从所述存储器对应的数据块中进行抽取,得到所述第一源数据块集合。
4.根据权利要求3所述的方法,其特征在于,所述基于所述数据块数量从所述存储器对应的数据块中进行抽取,得到所述第一源数据块集合包括:
基于所述数据块数量从所述存储器对应的数据块中进行抽取,得到初始数据块集合;
通过数据读写的方式从所述初始数据块集合中确定出错误的数据块;
将所述初始数据块集合中除所述错误的数据块之外的数据块集合确定为所述第一源数据块集合。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
将所述存储器中除所述第三数据块集合以及所述第四数据块集合之外的数据块标记为坏块;
接收针对于所述存储器的目标操作指令;
响应所述目标操作指令,将目标数据写入所述第三数据块集合中的数据块和/或所述第四数据块集合中的数据块,所述目标数据为与所述目标操作指令对应的待写入所述存储器的数据。
6.一种存储器中数据块的检测装置,其特征在于,包括:
确定单元,用于确定存储器中的第一源数据块集合;
写入单元,用于将擦除后的所述第一源数据块集合中的每个数据块写满随机数据,得到第二源数据块集合;
所述写入单元,还用于将所述第二源数据块集合中每个数据块的数据写入第一数据块集合,得到第二数据块集合,所述第一数据块集合为所述存储器中除所述第一源数据块集合之外的数据块的集合;
校验单元,用于对所述第二数据块集合中每个数据块进行数据校验,以确定出所述第二数据块集合中数据校验正确的第三数据块集合;
所述确定单元,还用于确定所述第三数据块集合中的第三源数据块集合,所述第三源数据块集合中的数据块数量与所述第一源数据块集合中的数据块数量相同;
所述写入单元,还用于将擦除后的所述第三源数据块集合中的每个数据块写满随机数据,得到第四源数据块集合;
所述写入单元,用于将所述第四源数据块集合中每个数据块的数据写入所述第一源数据块集合,得到第五源数据块集合;
所述校验单元,用于对所述第五源数据块集合中的每个数据块进行数据校验,以确定出所述第五源数据块集合中数据校验正确的第四数据块集合。
7.根据权利要求6所述的装置,其特征在于,所述确定单元包括:
获取模块,用于获取所述存储器中数据块的有效页数M以及所述存储器在SLC模式下的页数N;
抽取模块,用于根据所述有效页数M以及所述页数N从所述存储器对应的数据块中进行抽取,得到所述第一源数据块集合。
8.根据权利要求7所述的装置,其特征在于,所述抽取模块具体用于:
通过所述有效页数M与所述页数N的比值确定所述第一源数据块集合中的数据块数量;
基于所述数据块数量从所述存储器对应的数据块中进行抽取,得到所述第一源数据块集合。
9.根据权利要求8所述的装置,其特征在于,所述抽取模块基于所述数据块数量从所述存储器对应的数据块中进行抽取,得到所述第一源数据块集合包括:
基于所述数据块数量从所述存储器对应的数据块中进行抽取,得到初始数据块集合;
通过数据读写的方式从所述初始数据块集合中确定出错误的数据块;
将所述初始数据块集合中除所述错误的数据块之外的数据块集合确定为所述第一源数据块集合。
10.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算机上运行时,使得计算机执行上述权利要求1至5中任一项所述的存储器中数据块的检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011002456.3A CN112083891B (zh) | 2020-09-22 | 2020-09-22 | 一种存储器中数据块的检测方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011002456.3A CN112083891B (zh) | 2020-09-22 | 2020-09-22 | 一种存储器中数据块的检测方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112083891A CN112083891A (zh) | 2020-12-15 |
CN112083891B true CN112083891B (zh) | 2022-12-06 |
Family
ID=73739533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011002456.3A Active CN112083891B (zh) | 2020-09-22 | 2020-09-22 | 一种存储器中数据块的检测方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112083891B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112802530B (zh) * | 2021-01-12 | 2023-11-21 | 成都佰维存储科技有限公司 | Nand测试方法、装置、可读存储介质及电子设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7012835B2 (en) * | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
US8612777B2 (en) * | 2009-01-09 | 2013-12-17 | Infineon Technologies Ag | Apparatus and method for writing data to be stored to a predetermined memory area |
US20100250875A1 (en) * | 2009-03-25 | 2010-09-30 | Silicon Laboratories Inc. | Eeprom emulation using flash memory |
CN101923900B (zh) * | 2009-06-09 | 2014-06-11 | 北京兆易创新科技股份有限公司 | 一种非易失存储器的擦除方法及装置 |
WO2012022024A1 (zh) * | 2010-08-17 | 2012-02-23 | 成都市华为赛门铁克科技有限公司 | 对存储设备中的数据进行搬移的方法、装置及存储设备 |
CN104091617B (zh) * | 2014-06-17 | 2017-05-03 | 深圳市江波龙电子有限公司 | 一种闪存存储设备检测的方法及装置 |
CN109087676B (zh) * | 2017-06-14 | 2020-10-20 | 北京兆易创新科技股份有限公司 | 一种非易失性存储器的编程方法及装置 |
CN110459259A (zh) * | 2019-07-31 | 2019-11-15 | 至誉科技(武汉)有限公司 | 存储设备写错误纠错能力的测试方法、***及存储介质 |
CN111221747B (zh) * | 2020-01-10 | 2022-02-18 | 深圳市德明利光电有限公司 | 一种随机种子保存的方法、装置、存储介质及计算机设备 |
-
2020
- 2020-09-22 CN CN202011002456.3A patent/CN112083891B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112083891A (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100458693C (zh) | 基于bios读写内存spd的计算机***信息保存和读取方法 | |
JP2018517213A (ja) | メモリにおけるストライプマッピング | |
WO2019174205A1 (zh) | 一种垃圾回收的方法、装置及存储设备 | |
US9727411B2 (en) | Method and processor for writing and error tracking in a log subsystem of a file system | |
CN110727597B (zh) | 一种基于日志排查无效代码补全用例的方法 | |
US10649672B1 (en) | Offloading device maintenance to an external processor in low-latency, non-volatile memory | |
TWI486957B (zh) | Nand快閃記憶體燒錄資料的處理、使用方法及裝置、運行系統 | |
WO2017143843A1 (zh) | 元数据修复方法及装置 | |
CN111933199B (zh) | 基于存储器的数据读写方法、装置及存储介质 | |
CN112083891B (zh) | 一种存储器中数据块的检测方法及相关设备 | |
US11947819B2 (en) | Method and system for testing conversion relationship between block reading and page reading in flash memory chip | |
CN105302679A (zh) | 一种智能终端存储稳定性的检测方法及*** | |
CN111367710A (zh) | 一种eMMC问题还原方法和装置 | |
CN108231134B (zh) | Ram良率补救方法及装置 | |
CN106598769A (zh) | Emmc烧录文件检验的方法及装置 | |
CN110989919B (zh) | 用于存储器***的日志记录机制 | |
CN113470725A (zh) | 一种动态随机存储器的测试方法及装置 | |
US10754566B2 (en) | Data storage device and data storage method | |
CN111309361A (zh) | 数据读写方法及装置、电子设备、存储介质 | |
CN105528932A (zh) | 一种测评用户识字量的方法与设备 | |
CN111949426A (zh) | 一种固件程序错误的检测方法、装置及存储设备 | |
CN111367697A (zh) | 一种错误处理方法及装置 | |
CN111179997B (zh) | 一种半导体存储器测试数据的存储方法及装置 | |
CN112199159B (zh) | 对操作数栈和变量表的读写方法、装置、设备及存储介质 | |
CN109542359B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |