基于固态硬盘的顺序写方法、装置、电子设备及存储介质制造方法及图纸

技术编号:36504721 阅读:15 留言:0更新日期:2023-02-01 15:29
本发明专利技术提供了一种基于固态硬盘的顺序写方法,所述方法包括:当检测到固态硬盘接收到大数据块时,从所述固态硬盘中的动态存储内存获取所述大数据块对应的多个第一物理地址;根据所述多个第一物理地址和所述大数据块生成大数组和小数组;当所述固态硬盘顺序写所述大数据块时,根据所述大数组和所述小数组修改所述多个第一物理地址,通过一次性读取和更新大数据块对应的全部旧的PBA,大大减少了对DRAM的访问次数和消息交互次数,提升了固态硬盘的顺序写性能。顺序写性能。顺序写性能。

【技术实现步骤摘要】
基于固态硬盘的顺序写方法、装置、电子设备及存储介质


[0001]本专利技术涉及硬盘读写领域,特别是涉及一种基于固态硬盘的顺序写方法、装置、电子设备及存储介质。

技术介绍

[0002]在SSD写的过程中,如果一个LBA被重复写了,那么这个LBA的数据会被写到另外一个新的物理地址上,然后这个LBA对应的旧的物理地址会被标为无效数据,以便进行垃圾回收。
[0003]现有的标记无效数据的方法是:写流程处理一个LBA之前,先把这个LBA对应的PBA从DRAM中读上来,然后把DRAM中的PBA修改成新的,解析旧的PBA,计算出它在VDFB中的位置,把VDFB中对应的位置清零,VDFB存放于DRAM。计算出它的VDFC的位置,把对应的VDFC值减1,VDFC存放于SRAM,而且是等VDFB处理完成后再处理VDFC。这样每写一个LBA的数据,就要进行2次状态机的切换,还需要访问3次DRAM,访问1次SRAM。比如对于一笔128k的写命令,需要进行64次状态机切换,访问96次DRAM,访问32次SRAM。由于频繁的状态机切换和频繁的访问DRAM以及SRAM,导致顺序写性能比较差。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种能够减少切换和访问状态机并提升固态硬盘顺序写性能的基于固态硬盘的顺序写方法、装置、电子设备及存储介质。
[0005]第一方面,提供一种基于固态硬盘的顺序写方法, 所述方法包括:当检测到固态硬盘接收到大数据块时,从所述固态硬盘中的动态存储内存获取所述大数据块对应的多个第一物理地址;根据所述多个第一物理地址和所述大数据块生成大数组和小数组;当所述固态硬盘顺序写所述大数据块时,根据所述大数组和所述小数组修改所述多个第一物理地址。
[0006]在其中一个实施例中,所述根据所述多个第一物理地址和所述大数据块生成大数组和小数组包括:根据所述多个第一物理地址和所述大数据块生成多个小数据块;根据所述多个第一物理地址生成所述大数组;根据所述多个第一物理地址确定所述多个小数据块对应的多个解析结果并根据所述多个解析结果生成所述小数组。
[0007]在其中一个实施例中,所述根据所述多个第一物理地址确定所述多个小数据块对应的多个解析结果并根据所述多个解析结果生成所述小数组包括:遍历每个第一物理地址;确定非易失性内存是否存储有所述第一物理地址对应的小数据块;若否,则生成第一解析结果;
若是,则生成第二解析结果;根据所述多个解析结果生成所述小数组。
[0008]在其中一个实施例中,所述当所述固态硬盘顺序写所述大数据块时,根据所述大数组和所述小数组修改所述多个第一物理地址包括:确定所述小数组中是否存储有所述第二解析结果;若否,则根据所述大数组生成多个第二物理地址并根据所述多个第二物理地址修改所述多个第一物理地址;若是,则根据所述小数组和所述大数组生成第二物理地址和第三物理地址并根据所述第二物理地址和所述第三物理地址修改所述多个第一物理地址。
[0009]在其中一个实施例中,所述根据所述小数组和所述大数组生成第二物理地址和第三物理地址并根据所述第二物理地址和所述第三物理地址修改所述多个第一物理地址之前包括:根据所述小数组和所述大数组修改所述动态存储内存中的多个有效位偏移图;根据所述小数组和所述大数组修改静态存储内存中的多个有效数据数。
[0010]在其中一个实施例中,所述根据所述小数组和所述大数组修改所述动态存储内存中的多个有效位偏移图包括:根据所述解析结果生成所述解析结果对应的位偏移图;根据所述位偏移图和所述第一物理地址修改所述多个有效位偏移图。
[0011]在其中一个实施例中,所述根据所述解析结果生成所述解析结果对应的位偏移图包括:生成所述小数组对应的全局下标并根据所述全局下标开始遍历所述多个解析结果;当确定所述解析结果为所述第一解析结果时,生成第一位偏移图;当确定所述解析结果为所述第二解析结果时,生成第二位偏移图。
[0012]在其中一个实施例中,所述根据所述位偏移图和所述第一物理地址修改所述多个有效位偏移图包括:根据遍历到的第一个第二解析结果从所述多个小数据块中确定目标小数据块;根据所述目标小数据块和所述第一物理地址从所述多个有效位偏移图中确定所述目标小数据块对应的目标位偏移图并根据所述第二位偏移图修改所述目标位偏移图;根据其余第二解析结果从所述多个小数据块中确定其余目标小数据块;根据所述第一物理地址、所述其余目标小数据块和所述第二位偏移图修改其余目标位偏移图。
[0013]在其中一个实施例中,所述根据所述第一物理地址、所述其余目标小数据块和所述第二位偏移图修改其余目标位偏移图包括:根据所述其余目标小数据块和所述第一物理地址从所述多个有效位偏移图中确定所述其余目标小数据块对应的其余目标位偏移图;确定所述目标位偏移图所在的目标偏移位置和所述其余目标位偏移图所在的其余目标偏移位置是否相同;若是,则根据所述第二位偏移图修改所述其余目标位偏移图;
若否,则将所述其余目标位偏移图清零并继续遍历所述其余目标偏移位置。
[0014]在其中一个实施例中,所述根据所述第二位偏移图修改所述其余目标位偏移图包括:向所述固态硬盘发送位偏移图修改消息以供所述固态硬盘根据所述位偏移图修改消息修改多个有效位偏移图;确定所述位偏移图修改消息是否发送成功;若是,则继续遍历所述其余目标位偏移图;若否,则将所述位偏移图修改消息加入消息队列并等待所述位偏移图修改消息发送成功。
[0015]在其中一个实施例中,所述将所述其余目标位偏移图清零并继续遍历所述其余目标偏移位置包括:向所述固态硬盘发送位偏移图清零消息以供所述固态硬盘根据所述位偏移图清零消息将所述其余目标位偏移图清零;确定所述位偏移图清零消息是否发送成功;若是,则检测所述其余目标位偏移图;若否,则将所述位偏移图清零消息加入消息队列并等待所述位偏移图清零消息发送成功。
[0016]在其中一个实施例中,所述检测所述其余目标位偏移图包括:确定所述固态硬盘是否将所述其余目标位偏移图清零;若是,则继续遍历所述多个解析结果;若否,则等待所述固态硬盘将所述其余目标位偏移图清零。
[0017]在其中一个实施例中,所述根据所述小数组和所述大数组修改静态存储内存中的多个有效数据数包括:当修改所述多个有效位偏移图完成后,根据所述第一解析结果和所述第一物理地址从所述多个有效数据数中确定所述第一解析结果对应的第一目标数据数;根据所述第一解析结果和所述第二解析结果修改所述第一目标数据数;根据所述第二解析结果和所述第一物理地址从所述多个有效数据数中确定所述第二解析结果对应的第二目标数据数并将所述第二目标数据数清零。
[0018]在其中一个实施例中,所述根据所述第一解析结果和所述第二解析结果修改所述第一目标数据数包括:当遍历所述小数组时,确定所述第一解析结果之前是否存在所述第二解析结果;若否,则不修改所述第一目标数据数并继续遍历所述多个解析结果;若是,则确定所述第一解析结果之前的所述第二解析结果的解析结果数并根据所述解析本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于固态硬盘的顺序写方法,所述方法包括:当检测到固态硬盘接收到大数据块时,从所述固态硬盘中的动态存储内存获取所述大数据块对应的多个第一物理地址;根据所述多个第一物理地址和所述大数据块生成大数组和小数组;当所述固态硬盘顺序写所述大数据块时,根据所述大数组和所述小数组修改所述多个第一物理地址。2.根据权利要求1所述的方法,其特征在于,所述根据所述多个第一物理地址和所述大数据块生成大数组和小数组包括:根据所述多个第一物理地址和所述大数据块生成多个小数据块;根据所述多个第一物理地址生成所述大数组;根据所述多个第一物理地址确定所述多个小数据块对应的多个解析结果并根据所述多个解析结果生成所述小数组。3.根据权利要求2所述的方法,其特征在于,所述根据所述多个第一物理地址确定所述多个小数据块对应的多个解析结果并根据所述多个解析结果生成所述小数组包括:遍历每个第一物理地址;确定非易失性内存是否存储有所述第一物理地址对应的小数据块;若否,则生成第一解析结果;若是,则生成第二解析结果;根据所述多个解析结果生成所述小数组。4.根据权利要求3所述的方法,其特征在于,所述当所述固态硬盘顺序写所述大数据块时,根据所述大数组和所述小数组修改所述多个第一物理地址包括:确定所述小数组中是否存储有所述第二解析结果;若否,则根据所述大数组生成多个第二物理地址并根据所述多个第二物理地址修改所述多个第一物理地址;若是,则根据所述小数组和所述大数组生成第二物理地址和第三物理地址并根据所述第二物理地址和所述第三物理地址修改所述多个第一物理地址。5.根据权利要求4所述的方法,其特征在于,所述根据所述小数组和所述大数组生成第二物理地址和第三物理地址并根据所述第二物理地址和所述第三物理地址修改所述多个第一物理地址之前包括:根据所述小数组和所述大数组修改所述动态存储内存中的多个有效位偏移图;根据所述小数组和所述大数组修改静态存储内存中的多个有效数据数。6.根据权利要求5所述的方法,其特征在于,所述根据所述小数组和所述大数组修改所述动态存储内存中的多个有效位偏移图包括:根据所述解析结果生成所述解析结果对应的位偏移图;根据所述位偏移图和所述第一物理地址修改所述多个有效位偏移图。7.根据权利要求6所述的方法,其特征在于,所述根据所述解析结果生成所述解析结果对应的位偏移图包括:生成所述小数组对应的全局下标并根据所述全局下标开始遍历所述多个解析结果;当确定所述解析结果为所述第一解析结果时,生成第一位偏移图;
当确定所述解析结果为所述第二解析结果时,生成第二位偏移图。8.根据权利要求7所述的方法,其特征在于,所述根据所述位偏移图和所述第一物理地址修改所述多个有效位偏移图包括:根据遍历到的第一个第二解析结果从所述多个小数据块中确定目标小数据块;根据所述目标小数据块和所述第一物理地址从所述多个有效位偏移图中确定所述目标小数据块对应的目标位偏移图并根据所述第二位偏移图修改所述目标位偏移图;根据其余第二解析结果从所述多个小数据块中确定其余目标小数据块;根据所述第一物理地址、所述其余目标小数据块和所述第二位偏移图修改其余目标位偏移图。9.根据权利要求8所述的方法,其特征在于,所述根据所述第一物理地址、所述其余目标小数据块和所述第二位偏移图修改其余目标位偏移图包括:根据所述其余目标小数据块和所述第一物理地址从所述多个有效位偏移图中确定所述其余目标小数据块对应的其余目标位偏移图;确定所述目标位偏移图所在的目标偏移位置和所述其余目标位偏移图所在的其余目标偏移位置是否相同;若是,则根据所述第二位偏移图修改所述其余目标位偏移图;若否,则将所述其余目标位偏移图清零并继续遍历所述其余目标偏移位置。10.根据权利要求9所述的方法,其特征在于,所述根据所述第二位偏移图修改所述其余目标位偏移图包括:向所述固态硬盘发送位偏移图修改消息以供所述固态硬盘根据所述位偏移图修改消息修改多个有效位偏移图;确定所述位偏移图修改消息是否发送成功;若是,则继续遍历所述其余目标位偏移图;若否,则将所述位偏移图修改消息加入...

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

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

1