CN117012267B - 对ufs所写入数据的验证方法、控制器及介质 - Google Patents

对ufs所写入数据的验证方法、控制器及介质 Download PDF

Info

Publication number
CN117012267B
CN117012267B CN202310801850.0A CN202310801850A CN117012267B CN 117012267 B CN117012267 B CN 117012267B CN 202310801850 A CN202310801850 A CN 202310801850A CN 117012267 B CN117012267 B CN 117012267B
Authority
CN
China
Prior art keywords
read
unit
lba
random number
available
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
Application number
CN202310801850.0A
Other languages
English (en)
Other versions
CN117012267A (zh
Inventor
田磊
宋魏杰
赖鼐
龚晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Miaocun Technology Co ltd
Original Assignee
Zhuhai Miaocun Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhuhai Miaocun Technology Co ltd filed Critical Zhuhai Miaocun Technology Co ltd
Priority to CN202310801850.0A priority Critical patent/CN117012267B/zh
Publication of CN117012267A publication Critical patent/CN117012267A/zh
Application granted granted Critical
Publication of CN117012267B publication Critical patent/CN117012267B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C2029/5602Interface to device under test

Abstract

本发明提出了一种对UFS所写入数据的验证方法、控制器及介质,该方法包括:在主机缓存中生成包括多个可用表单元的映射表,可用表单元与UFS的可用LBA唯一对应,且存储有单元数据;写数据时根据LBA对应的单元数据生成写随机数种子,将根据写随机数种子生成的随机数写入LBA;读数据时根据LBA对应的单元数据生成读随机数种子,通过LBA的读随机数对比读随机数种子生成的随机数完成读写验证。每个LBA对应的单元数据生成的写随机数种子和读随机数种子相同,根据读随机数种子生成的随机数为写入LBA的随机数,主机缓存无需保存写随机数,只需要保存记载有单元数据的映射表,减少了主机缓存的空间需求,在主机缓存容量小于UFS容量时完成读写验证,提高UFS的测试效率。

Description

对UFS所写入数据的验证方法、控制器及介质
技术领域
本发明涉及UFS测试技术领域,特别涉及一种对UFS所写入数据的验证方法、控制器及介质。
背景技术
通用闪存存储器(Universal Flash Storage,UFS)是常用的存储器,在UFS的读写测试过程中,为了模拟用户真实使用主机时存储的数据,相关技术会向UFS写入随机数,并同时将写入的随机数存储在主机的缓存中,在UFS读回随机数后,将读取的随机数与缓存中保存的随机数进行对比验证,从而确定数据读写的准确性。但是UFS的存储容量通常大于主机的缓存,在写随机数的数据量超过缓存容量时,无法采用相关技术完成读写测试,影响UFS的测试效率。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种对UFS所写入数据的验证方法、控制器及介质,能够在主机缓存容量小于UFS容量的情况下完成读写验证,提高UFS的测试效率。
第一方面,本发明实施例提供了一种对UFS所写入数据的验证方法,包括:
在主机缓存中生成映射表,其中,所述映射表包括多个可用表单元,所述可用表单元中存储有单元数据,每个所述可用表单元唯一对应于UFS的可用LBA;
当所述UFS处于写数据状态,根据写表单元的所述单元数据生成写随机数种子,将根据所述写随机数种子生成的随机数写入写LBA,其中,所述写LBA为当前执行写操作的可用LBA,所述写表单元为所述写LBA所对应的所述可用表单元;
当所述UFS处于读数据状态,根据读表单元的所述单元数据生成读随机数种子,从读LBA读取的读随机数,根据所述读随机数比对所述读随机数种子生成的随机数确定所述读LBA的读写验证结果,其中,所述读LBA为当前执行读操作的所述可用LBA,所述读表单元为所述读LBA所对应的所述可用表单元。
根据本发明的一些实施例,所述在主机缓存中生成映射表,包括:
根据所述UFS的容量和所述可用LBA的容量确定所述可用表单元的数量;
根据所述可用表单元的数量和预设的表单元容量在所述主机缓存中生成所述映射表。
根据本发明的一些实施例,所述方法还包括:
在生成所述映射表后,将每个所述可用表单元的所述单元数据置零;
在每次根据所述写表单元的所述单元数据生成所述写随机数种子之前,将所述写表单元的所述单元数据加一。
根据本发明的一些实施例,所述方法还包括:
遍历所述UFS的每个所述可用LBA进行全盘读写验证;
记录每个所述可用LBA所对应的所述读写验证结果;
记录所述读写验证结果表征数据错误的所述可用LBA的位置信息。
第二方面,本发明实施例提供了一种对UFS所写入数据的验证装置,包括:
映射表生成单元,用于在主机缓存中生成映射表,其中,所述映射表包括多个可用表单元,所述可用表单元中存储有单元数据,每个所述可用表单元唯一对应于UFS的可用LBA;
写数据单元,用于当所述UFS处于写数据状态,根据写表单元的所述单元数据生成写随机数种子,将根据所述写随机数种子生成的随机数写入写LBA,其中,所述写LBA为当前执行写操作的可用LBA,所述写表单元为所述写LBA所对应的所述可用表单元;
读数据单元,用于当所述UFS处于读数据状态,根据读表单元的所述单元数据生成读随机数种子,从读LBA读取的读随机数,根据所述读随机数比对所述读随机数种子生成的随机数确定所述读LBA的读写验证结果,其中,所述读LBA为当前执行读操作的所述可用LBA,所述读表单元为所述读LBA所对应的所述可用表单元。
根据本发明的一些实施例,所述映射表生成单元还包括:
数量确定单元,用于根据所述UFS的容量和所述可用LBA的容量确定所述可用表单元的数量;
映射表分配单元,用于根据所述可用表单元的数量和预设的表单元容量在所述主机缓存中生成所述映射表。
根据本发明的一些实施例,还包括:
映射表初始化单元,用于在生成所述映射表后,将每个所述可用表单元的所述单元数据置零;
单元数据变更单元,用于在每次根据所述写表单元的所述单元数据生成所述写随机数种子之前,将所述写表单元的所述单元数据加一。
根据本发明的一些实施例,还包括:
遍历单元,用于遍历所述UFS的每个所述可用LBA进行全盘读写验证;
结果记录单元,用于记录每个所述可用LBA所对应的所述读写验证结果;
位置记录单元,用于记录所述读写验证结果表征数据错误的所述可用LBA的位置信息。
第三方面,本发明实施例提供了一种控制器,包括少一个处理器和用于与所述至少一个处理器通信连接的存储器;所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述第一方面所述的对UFS所写入数据的验证方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上述第一方面所述的对UFS所写入数据的验证方法。
根据本发明实施例的对UFS所写入数据的验证方法,至少具有如下有益效果:在主机缓存中生成映射表,其中,所述映射表包括多个可用表单元,所述可用表单元中存储有单元数据,每个所述可用表单元唯一对应于UFS的可用LBA;当所述UFS处于写数据状态,根据写表单元的所述单元数据生成写随机数种子,将根据所述写随机数种子生成的随机数写入写LBA,其中,所述写LBA为当前执行写操作的可用LBA,所述写表单元为所述写LBA所对应的所述可用表单元;当所述UFS处于读数据状态,根据读表单元的所述单元数据生成读随机数种子,从读LBA读取的读随机数,根据所述读随机数比对所述读随机数种子生成的随机数确定所述读LBA的读写验证结果,其中,所述读LBA为当前执行读操作的所述可用LBA,所述读表单元为所述读LBA所对应的所述可用表单元。根据本发明实施例的技术方案,同一个LBA对应的单元数据所生成的写随机数种子和读随机数种子相同,根据读随机数种子生成的随机数为写入LBA的随机数,主机缓存无需保存写随机数,只需要保存记载有单元数据的映射表,减少了主机缓存的空间需求,在主机缓存容量小于UFS容量时完成读写验证,提高UFS的测试效率。
附图说明
图1是本发明一个实施例提供的控制器的示意图;
图2是本发明一个实施例提供的对UFS所写入数据的验证方法的流程图;
图3是本发明另一个实施例提供的生成映射表的流程图;
图4是本发明另一个实施例提供的初始化映射表的流程图;
图5是本发明另一个实施例提供的全盘测试的流程图;
图6是本发明另一个实施例提供的对UFS所写入数据的验证方法装置的结构图;
图7是本发明另一个实施例提供的控制器的结构图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
本发明实施例提供了一种对UFS所写入数据的验证方法、控制器及介质,其中,对UFS所写入数据的验证方法包括:在主机缓存中生成映射表,其中,所述映射表包括多个可用表单元,所述可用表单元中存储有单元数据,每个所述可用表单元唯一对应于UFS的可用LBA;当所述UFS处于写数据状态,根据写表单元的所述单元数据生成写随机数种子,将根据所述写随机数种子生成的随机数写入写LBA,其中,所述写LBA为当前执行写操作的可用LBA,所述写表单元为所述写LBA所对应的所述可用表单元;当所述UFS处于读数据状态,根据读表单元的所述单元数据生成读随机数种子,从读LBA读取的读随机数,根据所述读随机数比对所述读随机数种子生成的随机数确定所述读LBA的读写验证结果,其中,所述读LBA为当前执行读操作的所述可用LBA,所述读表单元为所述读LBA所对应的所述可用表单元。根据本发明实施例的技术方案,同一个LBA对应的单元数据所生成的写随机数种子和读随机数种子相同,根据读随机数种子生成的随机数为写入LBA的随机数,主机缓存无需保存写随机数,只需要保存记载有单元数据的映射表,减少了主机缓存的空间需求,在主机缓存容量小于UFS容量时完成读写验证,提高UFS的测试效率。
首先,对本发明的实施环境进行示例性说明,本示例并非对具体的硬件结构做出的限定,参照图1,本发明的实施环境包括主机缓存和UFS。
其中,主机缓存中分配有映射表,映射表中包括多个表单元,例如图1中所示包括N个表单元,N为大于1的自然数。映射表的每个表单元记载有单元数据,每个表单元的大小可以根据实际需求调整,例如为了节约空间采用一字节,能够存储单元数据即可。
其中,UFS包括多个逻辑单元块(Logical lock Address,LBA),每个LBA的大小相同,并且LBA的数量与表单元的数量相同。LBA为每次读操作和写操作的对象,例如写数据时逐个LBA写入,读数据时逐个LBA读取。
下面基于附图1所示的实施环境,对本发明实施例的控制方法作进一步阐述。
参照图2,图2为本发明实施例提供的一种对UFS所写入数据的验证方法的流程图,该对UFS所写入数据的验证方法包括但不限于有以下步骤:
S21,在主机缓存中生成映射表,其中,映射表包括多个可用表单元,可用表单元中存储有单元数据,每个可用表单元唯一对应于UFS的可用LBA;
S22,当UFS处于写数据状态,根据写表单元的单元数据生成写随机数种子,将根据写随机数种子生成的随机数写入写LBA,其中,写LBA为当前执行写操作的可用LBA,写表单元为写LBA所对应的可用表单元;
S23,当UFS处于读数据状态,根据读表单元的单元数据生成读随机数种子,从读LBA读取的读随机数,根据读随机数比对读随机数种子生成的随机数确定读LBA的读写验证结果,其中,读LBA为当前执行读操作的可用LBA,读表单元为读LBA所对应的可用表单元。
需要说明的是,映射表的一个可用表单元的大小可以是一个字节,由于UFS包括多个可用LBA,本实施例根据LBA的数量在主机缓存中分配映射表,使得可用表单元的数量与可用LBA的数量相同,确保可用表单元与可用LBA唯一对应。
需要说明的是,单元数据可以是自增的计数值,也可以是每次进行测试时自动生成的数值,能够在一次读写验证测试时维持相同即可。
需要说明的是,在获取到单元数据后,可以根据常见的算法生成写随机数种子,例如根据一个预设好的数值映射规则将单元数据映射得到的数值作为写随机数种子,再根据写随机数种子和预设的随机数生成表达式得到写随机数,在具备单元数据的情况下,本领域技术人员熟知如何生成随机数种子,并且利用随机数种子生成随机数,在此不多做赘述。
需要说明的是,在根据写随机数种子生成随机数并写入对应的写LBA后,主机缓存不再需要保存该随机数,只需要维持单元数据的保存。在读数据时,由于LBA与表单元的唯一映射关系,同一个LBA能够获取到的单元数据与写数据时的单元数据的相同的,因此生成的读随机数种子与写阶段生成的写随机数种子是相同的,根据读随机数种子生成的随机数即为写入的随机数,基于此,当从读LBA获取的读随机数与根据读随机数种子生成的随机数相同,则可以认为读写验证通过,否则验证失败。
示例性地,参考图1所示的实施环境,映射表包括N个表单元,UFS包括N个LBA,每个LBA的大小为4kb,表单元-1与LBA-1唯一对应,则表单元-2与LBA-2唯一对应,则表单元-N与LBA-N唯一对应。在对LBA-1进行写数据时,由于LBA-1与表单元-1对应,从表单元-1获取单元数据-1生成写随机数种子,根据写随机数种子生成一个4kb的随机数后写入LBA-1;在对LBA-1进行读数据时,由于LBA-1与表单元-1对应,从表单元-1获取单元数据-1生成读随机数种子,由于读随机数种子和写随机数种子均由同一个单元数据-1生成,因此二者是相同的,在种子相同的情况下生成的随机数相同,因此根据读随机数种子生成的4kb的随机数与写阶段生成的4kb的随机数是相同的,在此基础上,当从LBA-1所读取的随机数与上述根据读随机数种子生成的4kb的随机数相同,即可认为LBA-1读写一致,验证成功。其余LBA的验证原理类似,在此不重复赘述。
根据上述实施例的技术方案,主机缓存无需保存写随机数,只需要保存数据量较小的映射表,利用表单元与LBA的唯一映射关系,在写阶段根据单元数据生成的写随机数种子生成随机数写入后,在读阶段根据单元数据生成的读随机数种子生成的随机数与LBA中读取的读随机数进行比对,即可确定读写是否一致。例如,通常一个LBA的大小为4kb,以每个表单元的容量为一个字节为例,对于一个64GB的UFS,只需要16MB的映射表即可实现与全部LBA的映射,减少对主机缓存的空间需求。
另外,在一实施例中,参照图3,图2所示的步骤S21还包括但不限于有以下步骤:
S31,根据UFS的容量和可用LBA的容量确定可用表单元的数量;
S32,根据可用表单元的数量和预设的表单元容量在主机缓存中生成映射表。
需要说明的是,LBA的大小通常为4kb,而不同类似的UFS的容量是不同的,因此不同容量的UFS的可用LBA的数量不一定相同,并不能在主机缓存中分配固定大小的映射表来适用所有的UFS。例如,每个可用单元的大小为一字节,则64GB的UFS需要16MB的映射表,128GB的UFS需要32MB的映射表,因此,在进行读写验证测试之前,需要根据UFS的容量和可用LBA的容量确定可用表单元的数量,从而根据映射表的大小在主机缓存中进行相应的空间分配,确保映射表具备足够的可用表单元与可用LBA进行唯一对应。
另外,在一实施例中,参照图4,本发明的实施例还包括但不限于有以下步骤:
S41,在生成映射表后,将每个可用表单元的单元数据置零;
S42,在每次根据写表单元的单元数据生成写随机数种子之前,将写表单元的单元数据加一。
需要说明的是,在生成映射表后,可以对每个可用表单元的单元数据进行置零,并在每次写入时对所有的表单元的单元数据加一,确保每一次写入时获取的单元数据不同,避免不同的LBA采用相同数值的单元数据生成随机数种子,确保测试的准确性。
示例性的,参照图1所示,在将映射表的单元数据置零后,在对LBA-1进行写入之前,将每个单元数据都进行加1,此时全部单元数据的数值均为1,根据数值为1的单元数据-1执行上述实施例的步骤完成LBA-1的写随机数;在对LBA-2进行写入之前,将每个单元数据都进行加1,此时全部单元数据的数值均为2,根据数值为2的单元数据-2执行上述实施例的步骤完成LBA-2的写随机数,以此类推,确保N次写数据采用的单元数据的数值均不相同。
需要说明的是,在通过读数据完成读写验证后,若要继续进行下一次读写验证测试,此时单元数据的数值均为N,可以在此基础上进一步执行上述的加1操作,即第二次读写验证测试时单元数据-1的数值为N+1,当然,也可以再次对单元数据进行置零后重复操作,在此不多做限定。
另外,在一实施例中,参照图5,本发明的实施例还包括但不限于有以下步骤:
S51,遍历UFS的每个可用LBA进行全盘读写验证;
S52,记录每个可用LBA所对应的读写验证结果;
S53,记录读写验证结果表征数据错误的可用LBA的位置信息。
需要说明的是,由于本实施例不需要在主机缓存保存写随机数,因此可以对UFS进行全盘随机写入测试,即在一次测试过程中,根据上述实施例所述的写操作,依次向LBA-1、LBA-2至LBA-N写入随机数后,再从LBA-1读取随机数进行验证、从LBA-2读取随机数进行验证,直到完成LBA-N的读写验证,由于本实施例不需要在主机缓存保存写随机数,因此可以在读数据时再根据单元数据生成一次读随机数种子,再根据上述实施例的方式进行验证,能够利用较小的缓存空间实现UFS的全盘读写验证。
需要说明的是,由于读写验证是逐个LBA进行,因此在读数据阶段,可以记录每个可用LBA的读写验证结果,再进行汇总得到整个UFS的读写验证结果。
需要说明的是,当检测到读写错误时,可以将对应的可用LBA的位置进行记录,例如LBA-1出现错误时记录位置1,LBA-N出现错误时记录位置N,以此类推,能够有效对错误进行定位,便于后续对读写验证结果进行分析。
另外,参照图6,本发明实施例还提供了一种对UFS所写入数据的验证装置,包括但不限于有以下单元:
映射表生成单元610,用于在主机缓存中生成映射表,映射表包括多个可用表单元,可用表单元中存储有单元数据,每个可用表单元唯一对应于UFS的可用LBA;
写数据单元620,用于当UFS处于写数据状态,根据写表单元的单元数据生成写随机数种子,将根据写随机数种子生成的随机数写入写LBA,其中,写LBA为当前执行写操作的可用LBA,写表单元为写LBA所对应的可用表单元;
读数据单元630,用于当UFS处于读数据状态,根据读表单元的单元数据生成读随机数种子,从读LBA读取的读随机数,根据读随机数比对读随机数种子生成的随机数确定读LBA的读写验证结果,其中,读LBA为当前执行读操作的可用LBA,读表单元为读LBA所对应的可用表单元。
需要说明的是,对UFS所写入数据的验证装置的具体原理和效果可以参考图2所示实施例的描述,在此不重复赘述。
另外,在一实施例中,参照图6,映射表生成单元610还包括但不限于有以下单元:
数量确定单元611,用于根据UFS的容量和可用LBA的容量确定可用表单元的数量;
映射表分配单元622,用于根据可用表单元的数量和预设的表单元容量在主机缓存中生成映射表。
需要说明的是,数量确定单元611和映射表分配单元622的具体原理和效果可以参考图3所示实施例的描述,在此不重复赘述。
另外,在一实施例中,参照图6,对UFS所写入数据的验证装置还包括但不限于有以下单元:
映射表初始化单元641,用于在生成映射表后,将每个可用表单元的单元数据置零;
单元数据变更单元642,用于在每次根据写表单元的单元数据生成写随机数种子之前,将写表单元的单元数据加一。
需要说明的是,映射表初始化单元641和单元数据变更单元642的具体原理和效果可以参考图4所示实施例的描述,在此不重复赘述。
另外,在一实施例中,参照图6,对UFS所写入数据的验证装置还包括但不限于有以下单元:
遍历单元651,用于遍历UFS的每个可用LBA进行全盘读写验证;
结果记录单元652,用于记录每个可用LBA所对应的读写验证结果;
位置记录单元653,用于记录读写验证结果表征数据错误的可用LBA的位置信息。
需要说明的是,遍历单元651、结果记录单元652和位置记录单元653的具体原理和效果可以参考图5所示实施例的描述,在此不重复赘述。
另外,如图7所示,图7是本发明一个实施例提供的控制器的结构图。本发明还提供了一种控制器,包括:
处理器701,可以采用通用的中央处理器(Central Processing Unit,CPU)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器702,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器702可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器702中,并由处理器701来调用执行本申请实施例的对UFS所写入数据的验证方法;
输入/输出接口703,用于实现信息输入及输出;
通信接口704,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线705,在设备的各个组件(例如处理器701、存储器702、输入/输出接口703和通信接口704)之间传输信息;
其中处理器701、存储器702、输入/输出接口703和通信接口704通过总线705实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种存储介质,存储介质为计算机可读存储介质,该存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述对UFS所写入数据的验证方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,实现了以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的共享条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本发明权利要求所限定的范围内。

Claims (10)

1.一种对通用闪存存储器UFS所写入数据的验证方法,其特征在于,包括:
在主机缓存中生成映射表,其中,所述映射表包括多个可用表单元,所述可用表单元中存储有单元数据,每个所述可用表单元唯一对应于UFS的可用逻辑单元块LBA;
当所述UFS处于写数据状态,根据写表单元的所述单元数据生成写随机数种子,将根据所述写随机数种子生成的随机数写入写LBA,其中,所述写LBA为当前执行写操作的可用LBA,所述写表单元为所述写LBA所对应的所述可用表单元;
当所述UFS处于读数据状态,根据读表单元的所述单元数据生成读随机数种子,从读LBA读取的读随机数,根据所述读随机数比对所述读随机数种子生成的随机数确定所述读LBA的读写验证结果,其中,所述读LBA为当前执行读操作的所述可用LBA,所述读表单元为所述读LBA所对应的所述可用表单元,同一个所述可用LBA对应的单元数据所生成的所述写随机数种子和所述读随机数种子相同。
2.根据权利要求1所述的对UFS所写入数据的验证方法,其特征在于,所述在主机缓存中生成映射表,包括:
根据所述UFS的容量和所述可用LBA的容量确定所述可用表单元的数量;
根据所述可用表单元的数量和预设的表单元容量在所述主机缓存中生成所述映射表。
3.根据权利要求2所述的对UFS所写入数据的验证方法,其特征在于,所述方法还包括:
在生成所述映射表后,将每个所述可用表单元的所述单元数据置零;
在每次根据所述写表单元的所述单元数据生成所述写随机数种子之前,将所述写表单元的所述单元数据加一。
4.根据权利要求1所述的对UFS所写入数据的验证方法,其特征在于,所述方法还包括:
遍历所述UFS的每个所述可用LBA进行全盘读写验证;
记录每个所述可用LBA所对应的所述读写验证结果;
记录所述读写验证结果表征数据错误的所述可用LBA的位置信息。
5.一种对UFS所写入数据的验证装置,其特征在于,包括:
映射表生成单元,用于在主机缓存中生成映射表,其中,所述映射表包括多个可用表单元,所述可用表单元中存储有单元数据,每个所述可用表单元唯一对应于UFS的可用LBA;
写数据单元,用于当所述UFS处于写数据状态,根据写表单元的所述单元数据生成写随机数种子,将根据所述写随机数种子生成的随机数写入写LBA,其中,所述写LBA为当前执行写操作的可用LBA,所述写表单元为所述写LBA所对应的所述可用表单元;
读数据单元,用于当所述UFS处于读数据状态,根据读表单元的所述单元数据生成读随机数种子,从读LBA读取的读随机数,根据所述读随机数比对所述读随机数种子生成的随机数确定所述读LBA的读写验证结果,其中,所述读LBA为当前执行读操作的所述可用LBA,所述读表单元为所述读LBA所对应的所述可用表单元,同一个所述可用LBA对应的单元数据所生成的所述写随机数种子和所述读随机数种子相同。
6.根据权利要求5所述的对UFS所写入数据的验证装置,其特征在于,所述映射表生成单元还包括:
数量确定单元,用于根据所述UFS的容量和所述可用LBA的容量确定所述可用表单元的数量;
映射表分配单元,用于根据所述可用表单元的数量和预设的表单元容量在所述主机缓存中生成所述映射表。
7.根据权利要求6所述的对UFS所写入数据的验证装置,其特征在于,还包括:
映射表初始化单元,用于在生成所述映射表后,将每个所述可用表单元的所述单元数据置零;
单元数据变更单元,用于在每次根据所述写表单元的所述单元数据生成所述写随机数种子之前,将所述写表单元的所述单元数据加一。
8.根据权利要求5所述的对UFS所写入数据的验证装置,其特征在于,还包括:
遍历单元,用于遍历所述UFS的每个所述可用LBA进行全盘读写验证;
结果记录单元,用于记录每个所述可用LBA所对应的所述读写验证结果;
位置记录单元,用于记录所述读写验证结果表征数据错误的所述可用LBA的位置信息。
9.一种控制器,其特征在于,包括至少一个处理器和用于与所述至少一个处理器通信连接的存储器;所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至4任一项所述的对UFS所写入数据的验证方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至4任一项所述的对UFS所写入数据的验证方法。
CN202310801850.0A 2023-06-30 2023-06-30 对ufs所写入数据的验证方法、控制器及介质 Active CN117012267B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310801850.0A CN117012267B (zh) 2023-06-30 2023-06-30 对ufs所写入数据的验证方法、控制器及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310801850.0A CN117012267B (zh) 2023-06-30 2023-06-30 对ufs所写入数据的验证方法、控制器及介质

Publications (2)

Publication Number Publication Date
CN117012267A CN117012267A (zh) 2023-11-07
CN117012267B true CN117012267B (zh) 2024-03-19

Family

ID=88562835

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310801850.0A Active CN117012267B (zh) 2023-06-30 2023-06-30 对ufs所写入数据的验证方法、控制器及介质

Country Status (1)

Country Link
CN (1) CN117012267B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472294B (zh) * 2023-12-28 2024-04-09 合肥康芯威存储技术有限公司 一种存储器及其数据处理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134684A (en) * 1998-02-25 2000-10-17 International Business Machines Corporation Method and system for error detection in test units utilizing pseudo-random data
US6507808B1 (en) * 1999-06-23 2003-01-14 International Business Machines Corporation Hardware logic verification data transfer checking apparatus and method therefor
CN107332670A (zh) * 2017-08-11 2017-11-07 北京中天信安科技有限责任公司 基于ufs接口的安全控制装置、系统、方法和移动设备
CN113157512A (zh) * 2021-04-29 2021-07-23 山东华芯半导体有限公司 实现大容量ssd在小内存机器上进行数据校验测试的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181641B2 (en) * 2003-09-24 2007-02-20 Hitachi Global Storage Technologies Netherlands, B.V. Data storage verification techniques for disk drivers
US9348537B2 (en) * 2013-09-10 2016-05-24 Qualcomm Incorporated Ascertaining command completion in flash memories
US11487653B2 (en) * 2019-09-27 2022-11-01 Micron Technology, Inc. L2P translation techniques in limited RAM systems to increase random write performance using multiple L2P caches

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134684A (en) * 1998-02-25 2000-10-17 International Business Machines Corporation Method and system for error detection in test units utilizing pseudo-random data
US6507808B1 (en) * 1999-06-23 2003-01-14 International Business Machines Corporation Hardware logic verification data transfer checking apparatus and method therefor
CN107332670A (zh) * 2017-08-11 2017-11-07 北京中天信安科技有限责任公司 基于ufs接口的安全控制装置、系统、方法和移动设备
CN113157512A (zh) * 2021-04-29 2021-07-23 山东华芯半导体有限公司 实现大容量ssd在小内存机器上进行数据校验测试的方法

Also Published As

Publication number Publication date
CN117012267A (zh) 2023-11-07

Similar Documents

Publication Publication Date Title
US9043536B2 (en) Method of recording mapping information, and memory controller and memory storage apparatus using the same
US11216362B2 (en) Data storage device and operating method thereof
US9940189B2 (en) Method and system for data rebuilding and memory control circuit unit thereof
US8954705B2 (en) Memory space management method and memory controller and memory storage device and memory storage using the same
US9613718B2 (en) Detection system for detecting fail block using logic block address and data buffer address in a storage tester
US20120173790A1 (en) Storage system cache with flash memory in a raid configuration
WO2019174205A1 (zh) 一种垃圾回收的方法、装置及存储设备
US11269722B2 (en) Apparatus for diagnosing memory system and operating method thereof
CN117012267B (zh) 对ufs所写入数据的验证方法、控制器及介质
US20200057725A1 (en) Data storage device and operating method thereof
US11474709B2 (en) Managing data for a data storage system
CN104699417A (zh) 数据储存装置以及其数据存取方法
US10579289B2 (en) Memory management method for configuring super physical units of rewritable non-volatile memory modules, memory control circuit unit and memory storage device
US20140156913A1 (en) Data processing method, memory controller and memory storage apparatus
US9858366B2 (en) Simulator and simulating method for flash memory background
US20100262892A1 (en) Data access method for flash meory and storage system and controller thereof
KR20200114212A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN114300032A (zh) 一种检查存储介质失效的方法、装置和固态硬盘
US11016693B2 (en) Block health estimation for wear leveling in non-volatile memories
US9312011B1 (en) Data writing method, memory storage device and memory control circuit unit
US20080195837A1 (en) Data access method, channel adapter, and data access control device
US20170115925A1 (en) Valid data merging method, memory controller and memory storage apparatus
KR20210060867A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20160216893A1 (en) Smart card management method, memory storage device and memory control circuit unit
CN109753441A (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