存储装置及其数据处理方法、计算机可读存储介质与流程

文档序号:33454934发布日期:2023-03-15 02:00阅读:27来源:国知局
存储装置及其数据处理方法、计算机可读存储介质与流程

1.本技术涉及存储装置技术领域,特别是涉及存储装置及其数据处理方法、计算机可读存储介质。


背景技术:

2.在存储装置中,通常需要对每一逻辑地址和物理地址进行映射关系的存储,从而在读取数据时,根据映射关系获取到物理地址,按照物理地址从数据存储区域读取数据。
3.目前每一逻辑地址和物理地址均按照一一对应的关系进行记录,在大量数据存储的前提下,对应占用的存储空间也是巨大的。


技术实现要素:

4.本技术主要解决的技术问题是提供存储装置及其数据处理方法、计算机可读存储介质,能够减少映射关系日志在存储装置中占的存储空间,进而提升存储装置的可用存储空间。
5.为了解决上述问题,本技术采用的一种技术方案是提供一种存储装置的数据处理方法,该方法包括:在对第一目标数据进行写入操作时,获取第一目标数据对应的连续的多个第一逻辑地址、以及多个第一逻辑地址分别映射的多个第一物理地址;将多个第一逻辑地址和多个第一物理地址的映射关系压缩形成一个第一日志记录;将第一日志记录写入映射关系日志;其中,映射关系日志用于根据预设时间周期将记录的映射关系更新至内存中。
6.其中,将多个第一逻辑地址和多个第一物理地址的映射关系压缩形成一个第一日志记录,包括:确定多个第一逻辑地址的第一数量;获取多个第一逻辑地址中第一个产生的第一逻辑地址以及对应的第一物理地址;根据第一个产生的第一逻辑地址以及对应的第一物理地址和第一数量,形成一个第一日志记录。
7.其中,该方法还包括:对第二目标数据进行读取操作时,获取第二目标数据对应的多个第二逻辑地址;判断第二逻辑地址是否在第一日志记录内;若是,则利用第一日志记录和第二逻辑地址,确定第二逻辑地址对应的第二物理地址。
8.其中,判断第二逻辑地址是否在第一日志记录内,包括:利用第一数量和第一个产生的第一逻辑地址,计算第一日志记录记载的逻辑地址范围;判断第二逻辑地址是否在逻辑地址范围内。
9.其中,利用第一日志记录和第二逻辑地址,确定第二逻辑地址对应的第二物理地址,包括:确定第二逻辑地址在逻辑地址范围内的目标位置;确定目标位置和第一日志记录中的第一逻辑地址的位置之间的差值;利用差值和第一日志记录中的第一物理地址得到第二物理地址。
10.其中,该方法还包括:在对第三目标数据进行擦除操作时,获取第三目标数据对应的连续的多个第三逻辑地址、以及多个第三逻辑地址映射的第三物理地址;将多个第三逻辑地址和第三物理地址的映射关系压缩形成一个第二日志记录;将第二日志记录写入映射
关系日志。
11.其中,将多个第三逻辑地址和第三物理地址的映射关系压缩形成一个第二日志记录,包括:确定多个第三逻辑地址的第二数量;获取多个第三逻辑地址中第一个产生的第三逻辑地址;根据第一个产生的第三逻辑地址、以及第三物理地址和第二数量,形成第二日志记录。
12.其中,该方法还包括:对第四目标数据进行读取操作时,获取第四目标数据对应的第三逻辑地址;判断第三逻辑地址是否在第二日志记录内;若是,则获取第三物理地址。
13.为了解决上述问题,本技术采用的另一种技术方案是提供一种存储装置,该存储装置包括处理器以及与处理器耦接的存储器;其中,存储器用于存储计算机程序,处理器用于执行计算机程序,以实现如上述技术方案提供的方法。
14.为了解决上述问题,本技术采用的另一种技术方案是提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,计算机程序在被处理器执行时,用于实现如上述技术方案提供的方法。
15.本技术的有益效果是:区别于现有技术的情况,本技术提供一种存储装置的数据处理方法,该方法通过将多个第一逻辑地址和多个第一物理地址的映射关系压缩形成一个第一日志记录的方式,使每一日志记录能记录更多逻辑地址和物理地址的映射关系,从而减少映射关系日志在存储装置中占的存储空间,进而提升存储装置的可用存储空间。
附图说明
16.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
17.图1是本技术提供的存储装置的数据处理方法一实施例的流程示意图;
18.图2是本技术提供的存储装置的数据处理方法另一实施例的流程示意图;
19.图3是本技术提供的存储装置的数据处理方法另一实施例的流程示意图;
20.图4是本技术提供的步骤32一实施例的流程示意图;
21.图5是本技术提供的步骤33一实施例的流程示意图;
22.图6是本技术提供的存储装置的数据处理方法另一实施例的流程示意图;
23.图7是本技术提供的步骤62一实施例的流程示意图;
24.图8是本技术提供的存储装置的数据处理方法另一实施例的流程示意图;
25.图9是本技术提供的存储装置一实施例的结构示意图;
26.图10是本技术提供的计算机可读存储介质一实施例的结构示意图。
具体实施方式
27.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本技术,而非对本技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本技术相关的部分而非全部结构。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的
所有其他实施例,都属于本技术保护的范围。
28.本技术中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
29.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
30.参阅图1,图1是本技术提供的存储装置的数据处理方法一实施例的流程示意图,该方法包括:
31.步骤11:在对第一目标数据进行写入操作时,获取第一目标数据对应的连续的多个第一逻辑地址、以及多个第一逻辑地址分别映射的多个第一物理地址。
32.在一些实施例中,存储装置和外部控制设备连接,可以和外部控制设备进行交互,以完成数据的读取和写入。
33.在进行数据写入时可以顺序写或者随机写。顺序写时,会对应生成连续的的逻辑地址,相应的,会在存储装置的存储空间中对应生成连续的物理地址。
34.因此,本实施例中主要描述顺序写入数据的情形。
35.步骤12:将多个第一逻辑地址和多个第一物理地址的映射关系压缩形成一个第一日志记录。
36.申请人长期研究发现,存储装置将一个逻辑地址和对应的一个物理地址进行记录,生成一个日志记录。则随着写入的数据越多,日志记录越多,则对应在存储装置中占用的存储空间越大。基于此,为了节约存储装置的存储空间,则本技术将多个第一逻辑地址和多个第一物理地址的映射关系压缩形成一个日志记录。
37.步骤13:将第一日志记录写入映射关系日志;其中,映射关系日志用于根据预设时间周期将记录的映射关系更新至内存中。
38.可以理解,映射关系日志中可以记录多个日志记录,如,随机写数据对应产生的日志记录。
39.在一应用场景中,在第一目标数据写入完成后,若再次写入数据,且此时该数据对应的连续的多个逻辑地址、以及多个逻辑地址分别映射的多个物理地址。若检测到多个逻辑地址中第一个生成的逻辑地址与上述的第一目标数据中的最后一个第一逻辑地址是连续的,则将此时的逻辑地址和物理地址对应生成的日志记录,与第一目标数据的日志记录进行融合,生成一个日志记录,从而减少对存储空间的占用。
40.如,前一次的日志记录为a,在本次写入数据时,产生了连续的多个逻辑地址以及对应的物理地址。根据日志记录a可计算出其中记录的最后一个逻辑地址,将最后一个逻辑地址与本次产生的第一个逻辑地址比较,若两个逻辑地址连续,则可直接将本次产生的逻辑地址和物理地址与日志记录a融合,得到新的日志记录b。
41.可以理解,当任一生成一个逻辑地址,可以对该逻辑地址与任一日志记录进行关
联,以确定其是否可以和其中的逻辑地址连续,若是,则将其与物理地址的映射关系写入该日志记录中。
42.可以理解,物理地址是由存储装置设备,不论是顺序写还是随机写,均可以将物理地址进行连续。
43.在本实施例中,通过将多个第一逻辑地址和多个第一物理地址的映射关系压缩形成一个第一日志记录的方式,使每一第一日志记录能记录更多逻辑地址和物理地址的映射关系,从而减少映射关系日志在存储装置中占的存储空间,进而提升存储装置的可用存储空间。
44.参阅图2,图2是本技术提供的存储装置的数据处理方法另一实施例的流程示意图,该方法包括:
45.步骤21:在对第一目标数据进行写入操作时,获取第一目标数据对应的连续的多个第一逻辑地址、以及多个第一逻辑地址分别映射的多个第一物理地址。
46.步骤22:确定多个第一逻辑地址的第一数量。
47.步骤23:获取多个第一逻辑地址中第一个产生的第一逻辑地址以及对应的第一物理地址。
48.步骤24:根据第一个产生的第一逻辑地址以及对应的第一物理地址和第一数量,形成一个第一日志记录。
49.对步骤22-步骤24进行举例说明:
50.在第一目标数据进行写入操作时,得到七个第一逻辑地址,分别为la、lb、lc、ld、le、lf和lg。对应的物理地址为pa、pb、pc、pd、pe、pf和pg,此时,则确定第一数量为7,第一逻辑地址la第一个产生,以及对应的第一物理地址pa。
51.则此时第一日志记录可以表示为(la,pa,7)。
52.综上,若用l表示连续逻辑地址中的第一个,p表示对应的物理地址,n表示逻辑地址数量,则第一日志记录可以表示为(l,p,n)。
53.步骤25:将第一日志记录写入映射关系日志;其中,映射关系日志用于根据预设时间周期将记录的映射关系更新至内存中。
54.在本实施例中,通过将多个第一逻辑地址和多个第一物理地址的映射关系压缩形成一个第一日志记录的方式,使每一日志记录能记录更多逻辑地址和物理地址的映射关系,从而减少映射关系日志在存储装置中占的存储空间,进而提升存储装置的可用存储空间。
55.在按照上述任一实施例的方式进行日志记录后,用以下实施例描述如何根据该日志记录读取数据,具体地,参阅图3,图3是本技术提供的存储装置的数据处理方法另一实施例的流程示意图,该方法包括:
56.步骤31:对第二目标数据进行读取操作时,获取第二目标数据对应的多个第二逻辑地址。
57.可以理解,对第二目标数据的读取操作可以是随机读也可以是顺序读。
58.可以理解,随机写入的数据产生的日志记录方式为一个逻辑地址对应一个日志记录。
59.步骤32:判断第二逻辑地址是否在第一日志记录内。
60.若第二逻辑地址不在第一日志记录内,则说明第二逻辑地址在随机写入数据产生的日志记录中,则可以直接从该日志记录中获得物理地址,从而从该物理地址处得到数据。
61.若第二逻辑地址在第一日志记录内,则执行步骤33。
62.在一些实施例中,参阅图4,步骤32可以是如下步骤:
63.步骤321:利用第一数量和第一个产生的第一逻辑地址,计算第一日志记录记载的逻辑地址范围。
64.步骤322:判断第二逻辑地址是否在逻辑地址范围内。
65.下面对步骤321-步骤322进行举例说明:
66.如,第一日志记录为(la,pa,7),利用第一数量7和第一个产生的第一逻辑地址la,计算第一日志记录记载的逻辑地址范围为la至lg。若第二逻辑地址为lc,在逻辑地址范围内,则执行步骤33。若第二逻辑地址为lh,不在逻辑地址范围内,则继续与其他日志记录比较,以确定对应的物理地址。
67.可以理解,每一第二逻辑地址均与这些日志记录进行遍历比较,以确定对应的物理地址。
68.步骤33:利用第一日志记录和第二逻辑地址,确定第二逻辑地址对应的第二物理地址。
69.利用第一日志记录中记录的第一数量、第一物理地址、第一逻辑地址可以确定第二逻辑地址对应的第二物理地址。
70.在一些实施例中,参阅图5,步骤33可以是如下步骤:
71.步骤331:确定第二逻辑地址在逻辑地址范围内的目标位置。
72.步骤332:确定目标位置和第一日志记录中的第一逻辑地址的位置之间的差值。
73.步骤333:利用差值和第一日志记录中的第一物理地址得到第二物理地址。
74.下面步骤331-步骤333进行举例说明:
75.如,第一日志记录为(la,pa,7),第一日志记录记载的逻辑地址范围为la至lg。若第二逻辑地址为lc,在逻辑地址范围内的目标位置为第三个。则与第一逻辑地址la的位置之间的差值为2。同理,第一日志记录记载的物理地址范围为pa至pg。利用差值2和第一日志记录中的第一物理地址pa,则可以确定第二逻辑地址为lc对应的第一物理地址在该物理范围的第三个,则第二逻辑地址为lc对应的第一物理地址为pc。
76.在本实施例中,对上述对第一日志记录进行解析,以获取第二目标数据对应的第二物理地址,实现从压缩的第一日志记录中读取物理地址,形成数据写入读取的整个流程。在减少映射关系日志在存储装置中占的存储空间的前提下,不影响数据的读取,使提升存储装置的性能。
77.申请人长期研究发现,则进行数据擦除时,同样也会存在逻辑地址与物理地址之间的映射关系,相应的也需要进行记录,基于此,本技术提出图6的技术方案进行说明,具体参阅图6,图6是本技术提供的存储装置的数据处理方法另一实施例的流程示意图,该方法包括:
78.步骤61:在对第三目标数据进行擦除操作时,获取第三目标数据对应的连续的多个第三逻辑地址、以及多个第三逻辑地址映射的第三物理地址。
79.在对数据进行操作时,因数据在之前已经存在逻辑地址与物理地址的映射关系,
实质是对逻辑地址和物理地址的映射关系改变,以使逻辑地址指向一固定值,以此方式表示该数据被擦除,对应的该物理地址上的数据也会被擦除。
80.步骤62:将多个第三逻辑地址和第三物理地址的映射关系压缩形成一个第二日志记录。
81.申请人长期研究发现,存储装置将每一擦除的逻辑地址和对应的一个特殊的物理地址进行记录,生成一个日志记录。则随着擦除的数据越多,日志记录越多,则对应在存储装置中占用的存储空间越大。基于此,为了节约存储装置的存储空间,则本技术将多个第三逻辑地址和一个第三物理地址的映射关系压缩形成一个日志记录。
82.在一些实施例中,参阅图7,步骤62可以是如下步骤:
83.步骤621:确定多个第三逻辑地址的第二数量。
84.步骤622:获取多个第三逻辑地址中第一个产生的第三逻辑地址。
85.步骤623:根据第一个产生的第三逻辑地址、以及第三物理地址和第二数量,形成第二日志记录。
86.对步骤621-步骤623进行举例说明:
87.在对第三目标数据进行擦除操作时,得到七个第三逻辑地址,分别为la、lb、lc、ld、le、lf和lg。此时这些第三逻辑地址对应的第三物理地址为-0,此时,则确定第二数量为7,第三逻辑地址la第一个产生。则此时第二日志记录可以表示为(la,-0,7)。
88.综上,若用l表示连续第三逻辑地址中的第一个,-0表示对应的第三物理地址,n表示逻辑地址数量,则第二日志记录可以表示为(l,-0,n)。
89.步骤63:将第二日志记录写入映射关系日志。
90.在本实施例中,通过将多个第三逻辑地址和第三物理地址的映射关系压缩形成一个第二日志记录的方式,使每一第二日志记录能记录更多擦除数据的逻辑地址和物理地址的映射关系,从而减少映射关系日志在存储装置中占的存储空间,进而提升存储装置的可用存储空间。
91.参阅图8,图8是本技术提供的存储装置的数据处理方法另一实施例的流程示意图,该方法包括:
92.步骤81:对第四目标数据进行读取操作时,获取第四目标数据对应的第四逻辑地址。
93.可以理解,对第四目标数据的读取操作可以是随机读也可以是顺序读。
94.步骤82:判断第四逻辑地址是否在第二日志记录内。
95.若第四逻辑地址不在第二日志记录内,则说明第四逻辑地址对应的物理地址是存在的,也即表示第四目标数据未被擦除。则可以从其他日志记录中获得物理地址,从而从该物理地址处得到数据。
96.若第四逻辑地址在第二日志记录内,则执行步骤83。
97.具体地,可以采用以下方式判断第四逻辑地址是否在第二日志记录内:
98.利用第二数量和第一个产生的第三逻辑地址,计算第二日志记录记载的逻辑地址范围。判断第四逻辑地址是否在逻辑地址范围内,若在,执行步骤83。
99.步骤83:获取第三物理地址。
100.因所有擦除的数据的物理地址指向同一地址,则可直接将第二日志记录中的第三
物理地址作为数据返回。
101.参阅图9,图9是本技术提供的存储装置一实施例的结构示意图。该存储装置90包括处理器91以及与处理器91耦接的存储器92;其中,存储器92用于存储计算机程序,处理器91用于执行计算机程序,以实现以下方法:
102.在对第一目标数据进行写入操作时,获取第一目标数据对应的连续的多个第一逻辑地址、以及多个第一逻辑地址分别映射的多个第一物理地址;将多个第一逻辑地址和多个第一物理地址的映射关系压缩形成一个第一日志记录;将第一日志记录写入映射关系日志;其中,映射关系日志用于根据预设时间周期将记录的映射关系更新至内存中。
103.可以理解,处理器91还用于执行计算机程序,以实现上述任一实施例的方法,这里不做赘述。
104.参阅图10,图10是本技术提供的计算机可读存储介质一实施例的结构示意图。该计算机可读存储介质100用于存储计算机程序101,计算机程序101在被处理器执行时,用于实现以下方法:
105.在对第一目标数据进行写入操作时,获取第一目标数据对应的连续的多个第一逻辑地址、以及多个第一逻辑地址分别映射的多个第一物理地址;将多个第一逻辑地址和多个第一物理地址的映射关系压缩形成一个第一日志记录;将第一日志记录写入映射关系日志;其中,映射关系日志用于根据预设时间周期将记录的映射关系更新至内存中。
106.可以理解,计算机程序101在被处理器执行时,用于实现上述任一实施例的方法,这里不做赘述。
107.本技术提供的技术方案可以应用于基于闪存的存储装置,如ssd(solid state disk或solid state drive,固态硬盘)、ufs(universal flash storage,通用闪存存储)、emmc等,其ftl(flash translation layer,闪存转换层)都采用页映射的方式,和传统块映射的方式相比,采用页映射方式的存储装置具有更好的随机写入性能,但缺点是映射表(用以存放逻辑块在闪存中的物理地址)很大,一般为存储装置容量的1/1024,如1tb的存储装置其映射表大小为1gb。传统ssd一般都配有相应大小的dram(dynamic random access memory,动态随机存取存储器)来存放运行时的映射表,固件更新和查找映射表的速度很快。
108.在一些消费级ssd以及移动存储装置,如ufs、emmc中,出于成本、功耗等因素考虑,它们往往都没有配置dram,在软件设计上采用dram-less的固件架构,具体来说,绝大多数映射表存储在闪存中,存储装置运行时,按需把映射表数据加载到映射表缓存中,一般为几十到几百kb大小的sram(static random-access memory,静态随机存取存储器)。比如要读取一个逻辑地址,先要查找映射表缓存,如果命中,直接获得该逻辑地址对应的物理地址,然后根据该物理地址去读取闪存,获得最终的用户数据。但由于映射表缓存很小,很大概率不会命中缓存,需要临时去闪存中先把映射表数据加载上来,然后再根据物理地址去读用户数据。跟dram的存储装置相比,dram-less的存储装置需要更多次数访问闪存,因此读写性能要差很多,尤其是体现在随机读写性能上。
109.dram-less的存储装置,映射表的更新也是个问题。用户数据的写入、擦除(比如trim)以及存储装置内部的垃圾回收,都会导致映射关系的更新。对dram-less的存储装置,由于映射表在闪存中,很大程度上不可能做到每产生一个映射关系,就去闪存中把对应的
映射关系加载上来,然后更新再写回到闪存,否则写入性能,尤其是随机写入性能将会很糟糕。
110.为解决映射表更新的问题,dram-less的存储装置,往往采用日志的方式,即把产生的映射关系(逻辑地址,物理地址)先纪录在sram的映射关系日志中,等聚集到一定数量后,再集中做更新。
111.映射表更新时,根据映射关系日志,把相应的映射块(加载和更新映射表数据的基本单元,一般为2kb或者4kb)加载到闪存中,用新的映射关系取代旧的映射关系,更新完后最后再写回到闪存。
112.这种延后批量更新的方式,避免了频繁加载和更新闪存,改善了存储装置性能和寿命。本技术提出的方案,采用压缩日志记录的方式,让每条日志记录能存储更多逻辑地址块和物理地址的映射关系,从而减少映射关系日志缓冲区的大小。这对于dram-less结构的存储装置上是很有意义的,因为dram-less结构的存储装置只有有限大小的sram来存储映射关系日志,减小映射关系日志大小就能减少sram的使用。
113.综上,本技术提出的技术方案应用在dram-less的存储装置上时,通过压缩映射关系,大大减小了映射关系日志的大小,从而大大减少存储装置上sram的使用,能够提升存储装置的性能。
114.在本技术所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
115.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
116.另外,在本技术各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
117.上述其他实施方式中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
118.以上所述仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1