固态硬盘的数据写入方法、其装置及固态硬盘制造方法及图纸

技术编号:37991328 阅读:5 留言:0更新日期:2023-06-30 10:05
本申请实施例提供了一种固态硬盘的数据写入方法、其装置及固态硬盘,其中,该方法包括:获取存储至目标缓存模块中的多个写入数据的逻辑区块地址,目标缓存模块位于固态硬盘的缓存区中;将缓存区中的多个写入数据存储至固态硬盘的固态存储单元中;判断多个写入数据的逻辑区块地址是否连续;在判断结果指示多个写入数据的逻辑区块地址连续的情况下,获取多个写入数据在固态存储单元中的物理区块地址;根据多个写入数据的逻辑区块地址和多个写入数据在固态存储单元中的物理区块地址,生成目标映射表,目标映射表用于将多个写入数据的逻辑区块地址映射至固态存储单元中的物理区块地址。通过本申请,解决了相关技术中固态硬盘的写操作性能较差的问题。写操作性能较差的问题。写操作性能较差的问题。

【技术实现步骤摘要】
固态硬盘的数据写入方法、其装置及固态硬盘


[0001]本申请实施例涉及计算机领域,具体而言,涉及一种固态硬盘的数据写入方法、其装置、计算机可读存储介质及固态硬盘。

技术介绍

[0002]固态硬盘(Solid State Disk或Solid State Drive,简称SSD)的写入数据流程中需要两次修改映射表(L2P表),第一次是把数据从主机(HOST)搬到固态硬盘中动态随机存取存储器(Dynamic Random Access Memory,简称DRAM)的缓存区(Buffer)中的时候,数据管理(Data Management,简称DM)模块需要把L2P表指向数据所在的Buffer地址,第二次是把数据从Buffer中写到闪存(NAND Flash)后,数据写处理(Write Management,简称WM)模块需要把L2P表指向NAND地址。
[0003]相关技术中是DM模块每处理一笔数据,会生成一个缓存项(cache entry),用来记录buffer地址和逻辑区块地址(Logical Block Address,简称LBA),并更新到L2P表。等处理完一个缓存控制模块(Cache Control Block,简称CCB)的数据量后,发送给WM模块进行NAND Flash的数据写入以及再次改表的操作,WM通过遍历CCB中的每一个cache entry然后进行改表操作。具体地,上述改表操作中每写入一个cache entry,均需要循环一遍CCB中的每一个cache entry,并且每次都需要从DRAM中读取LBA进行比较,最后才能确定这CCB中的LBA是否是连续的,这种大量的循环判断和对DRAM的访问极大的影响了固态硬盘的写操作的性能。

技术实现思路

[0004]本申请实施例提供了一种固态硬盘的数据写入方法、其装置、计算机可读存储介质及固态硬盘,以至少解决相关技术中固态硬盘的写操作性能较差的问题。
[0005]根据本申请的一个实施例,提供了一种固态硬盘的数据写入方法,包括:获取存储至目标缓存模块中的多个写入数据的逻辑区块地址,目标缓存模块位于固态硬盘的缓存区中;将缓存区中的多个写入数据存储至固态硬盘的固态存储单元中;判断多个写入数据的逻辑区块地址是否连续;在判断结果指示多个写入数据的逻辑区块地址连续的情况下,获取多个写入数据在固态存储单元中的物理区块地址;根据多个写入数据的逻辑区块地址和多个写入数据在固态存储单元中的物理区块地址,生成目标映射表,目标映射表用于将多个写入数据的逻辑区块地址映射至固态存储单元中的物理区块地址。
[0006]在一个示例性实施例中,获取存储至目标缓存模块中的多个写入数据的逻辑区块地址,目标缓存模块位于固态硬盘的缓存区中,包括:从主机中获取目标命令携带的数据包以及数据包中每个数据的逻辑区块地址;将数据包以及数据包中多个数据的逻辑区块地址存储至缓存区中的至少一个缓存模块中,至少一个缓存模块包括目标缓存模块;获取存储至目标缓存模块中的多个数据的逻辑区块地址。
[0007]在一个示例性实施例中,上述方法还包括:将数据包中的多个数据依次进行拆分,
得到多个拆包数据;按照多个拆包数据的拆分顺序,判断目标拆包数据的逻辑区块地址与前一个拆包数据的逻辑区块地址是否连续,得到判断结果;根据判断结果,生成目标缓存模块的目标标记参数,其中,目标标记参数用于指示目标拆包数据的逻辑区块地址与前一个拆包数据的逻辑区块地址是否连续。
[0008]在一个示例性实施例中,按照多个拆包数据的拆分顺序,判断目标拆包数据的逻辑区块地址与前一个拆包数据的逻辑区块地址是否连续,得到判断结果,包括:按照多个拆包数据的拆分顺序,判断第N个拆包数据的逻辑区块地址与第N

1个拆包数据的逻辑区块地址是否连续,得到判断结果。
[0009]在一个示例性实施例中,根据判断结果,生成目标缓存模块的目标标记参数,包括:根据判断结果,将目标缓存模块中的在先标记参数更新为目标标记参数,其中,在先标记参数用于表示第N

1个拆包数据的逻辑区块地址与第N

2个拆包数据的逻辑区块地址是否连续。
[0010]在一个示例性实施例中,根据判断结果,将目标缓存模块中的在先标记参数更新为目标标记参数,包括:在得到第一判断结果的情况下,根据第一判断结果,生成第一标记参数,并将在先标记参数更新为第一标记参数,其中,第一判断结果为在第N个拆包数据的逻辑区块地址与第N

1个拆包数据的逻辑区块地址连续的情况下得到的判断结果;在得到第二判断结果的情况下,根据第二判断结果,生成第二标记参数,并将在先标记参数更新为第二标记参数,其中,第二判断结果为在第N个拆包数据的逻辑区块地址与第N

1个拆包数据的逻辑区块地址不连续的情况下得到的判断结果。
[0011]在一个示例性实施例中,将数据包中的多个数据依次进行拆分,得到多个拆包数据,包括:将数据包中的多个数据依次进行拆分,得到具有相同大小的多个拆包数据。
[0012]在一个示例性实施例中,将数据包以及数据包中多个数据的逻辑区块地址的存储至缓存区中的至少一个缓存模块中,包括:按照多个拆包数据的拆分顺序,将多个拆包数据中满足预设数量的拆包数据以及满足预设数量的拆包数据的逻辑区块地址依次存储至目标缓存模块中,得到多个写入数据。
[0013]在一个示例性实施例中,按照多个拆包数据的拆分顺序,将多个拆包数据中满足预设数量的拆包数据以及满足预设数量的拆包数据的逻辑区块地址依次存储至目标缓存模块中,得到多个写入数据,包括:将目标拆包数据以及目标拆包数据的逻辑区块地址存储至目标缓存模块中;判断目标缓存模块中当前存储的拆包数据的数量是否满足预设数量;在目标缓存模块中当前存储的拆包数据的数量未满足预设数量的情况下,按照多个拆包数据的拆分顺序,将目标拆包数据的下一个拆包数据以及下一个拆包数据的逻辑区块地址存储至目标缓存模块中;在目标缓存模块中当前存储的拆包数据的数量满足预设数量的情况下,停止向目标缓存模块中的存储操作,得到存储有多个写入数据的目标缓存模块。
[0014]在一个示例性实施例中,将数据包以及数据包中多个数据的逻辑区块地址的存储至缓存区中的至少一个缓存模块中,还包括:根据目标缓存模块的存储容量和每个拆包数据的大小,确定预设数量。
[0015]在一个示例性实施例中,按照多个拆包数据的拆分顺序,将多个拆包数据中满足预设数量的目标写入数据以及目标写入数据的逻辑区块地址依次存储至目标缓存模块中,得到多个写入数据,包括:在每次拆分出拆包数据之后,判断至少一个缓存模块中是否存在
可用缓存模块,其中,可用缓存模块为具有可用存储空间的缓存模块;在至少一个缓存模块中存在可用缓存模块的情况下,确定可用缓存模块为目标缓存模块;将拆分出的当前拆包数据以及当前拆包数据的逻辑区块地址存储至目标缓存模块中,得到存储至目标缓存模块中的写入数据。
[0016]在一个示例性实施例中,按照多个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种固态硬盘的数据写入方法,其特征在于,包括:获取存储至目标缓存模块中的多个写入数据的逻辑区块地址,所述目标缓存模块位于所述固态硬盘的缓存区中;将所述缓存区中的所述多个写入数据存储至所述固态硬盘的固态存储单元中;判断所述多个写入数据的逻辑区块地址是否连续;在判断结果指示所述多个写入数据的逻辑区块地址连续的情况下,获取所述多个写入数据在固态存储单元中的物理区块地址;根据所述多个写入数据的逻辑区块地址和所述多个写入数据在固态存储单元中的物理区块地址,生成目标映射表,所述目标映射表用于将所述多个写入数据的逻辑区块地址映射至所述固态存储单元中的物理区块地址。2.根据权利要求1所述的方法,其特征在于,所述获取存储至目标缓存模块中的多个写入数据的逻辑区块地址,所述目标缓存模块位于所述固态硬盘的缓存区中,包括:从主机中获取目标命令携带的数据包以及所述数据包中每个数据的逻辑区块地址;将所述数据包以及所述数据包中多个数据的逻辑区块地址存储至所述缓存区中的至少一个缓存模块中,所述至少一个缓存模块包括所述目标缓存模块;获取存储至所述目标缓存模块中的多个数据的逻辑区块地址。3.根据权利要求2所述的方法,其特征在于,还包括:将所述数据包中的多个数据依次进行拆分,得到多个拆包数据;按照所述多个拆包数据的拆分顺序,判断目标拆包数据的逻辑区块地址与前一个拆包数据的逻辑区块地址是否连续,得到所述判断结果;根据所述判断结果,生成所述目标缓存模块的目标标记参数,其中,所述目标标记参数用于指示所述目标拆包数据的逻辑区块地址与所述前一个拆包数据的逻辑区块地址是否连续。4.根据权利要求3所述的方法,其特征在于,所述按照所述多个拆包数据的拆分顺序,判断目标拆包数据的逻辑区块地址与前一个拆包数据的逻辑区块地址是否连续,得到所述判断结果,包括:按照所述多个拆包数据的拆分顺序,判断第N个拆包数据的逻辑区块地址与第N

1个拆包数据的逻辑区块地址是否连续,得到所述判断结果。5.根据权利要求4所述的方法,其特征在于,所述根据所述判断结果,生成所述目标缓存模块的目标标记参数,包括:根据所述判断结果,将所述目标缓存模块中的在先标记参数更新为所述目标标记参数,其中,所述在先标记参数用于表示所述第N

1个拆包数据的逻辑区块地址与第N

2个拆包数据的逻辑区块地址是否连续。6.根据权利要求5所述的方法,其特征在于,所述根据所述判断结果,将所述目标缓存模块中的在先标记参数更新为所述目标标记参数,包括:在得到第一判断结果的情况下,根据所述第一判断结果,生成第一标记参数,并将所述在先标记参数更新为所述第一标记参数,其中,所述第一判断结果为在所述第N个拆包数据的逻辑区块地址与第N

1个拆包数据的逻辑区块地址连续的情况下得到的判断结果;在得到第二判断结果的情况下,根据所述第二判断结果,生成第二标记参数,并将所述
在先标记参数更新为所述第二标记参数,其中,所述第二判断结果为在所述第N个拆包数据的逻辑区块地址与第N

1个拆包数据的逻辑区块地址不连续的情况下得到的判断结果。7.根据权利要求3所述的方法,其特征在于,所述将所述数据包中的多个数据依次进行拆分,得到所述多个拆包数据,包括:将所述数据包中的多个数据依次进行拆分,得到具有相同大小的所述多个拆包数据。8.根据权利要求3所述的方法,其特征在于,所述将所述数据包以及所述数据包中多个数据的逻辑区块地址的存储至所述缓存区中的至少一个缓存模块中,包括:按照所述多个拆包数据的拆分顺序,将所述多个拆包数据中满足预设数量的拆包数据以及所述满足预设数量的拆包数据的逻辑区块地址依次存储至所述目标缓存模块中,得到所述多个写入数据。9.根据权利要求8所述的方法,其特征在于,所述按照所述多个拆包数据的拆分顺序,将所述多个拆包数据中满足预设数量的拆包数据以及所述满足预设数量的拆包数据的逻辑区块地址依次存储至所述目标缓存模块中,得到所述多个写入数据,包括:将所述目标拆包数据以及所述目标拆包数据的逻辑区块地址存储至所述目标缓存模块中;判断所述目标缓存模块中当前存储的拆包数据的数量是否满足所述预设数量;在所述目标缓存模块中当前存储的拆包数据的数量未满足所述预设数量的情况下,按照所述多个拆包数据的拆分顺序,将所述目标拆包数据的下一个拆包数据以及所述下一个拆包数据的逻辑区块地址存储至所述目标缓存模块中;在所述目标缓存模块中当前存储的拆包数据的数量满足所述预设数量的情况下,停止向所述目标缓存模块中的存储操作,得到存储有所述多个写入数据的所述目标缓存模块。10.根据权利要求8所述的方法,其特征在于,所述将所述数据包以及所述数据包中多个数据的逻辑区块地址的存储至所述缓存区中的至少一个缓存模块中,还包括:根据所述目标缓存模块的存储容量和每个所述拆包数据的大小,确定所述预设数量。11.根据权利要求8所述的方法,其特征在于,所述按照所述多个拆包数据的拆分顺序,将所述多个拆包数据中满足预设数量的目标写入数据以及所述目标写入数据的逻辑区块地址依次存储至所述目标缓存模块中,得到所述多个写入数据,包括:...

【专利技术属性】
技术研发人员:范瑞春殷军博秦文政
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1