一种数据写入方法、装置、设备及介质制造方法及图纸

技术编号:24251383 阅读:147 留言:0更新日期:2020-05-22 23:29
本申请公开了一种数据写入方法、装置、设备及介质,包括:当获取到当前页的第一笔数据写请求,则在DDR中申请对应的写缓存,以得到该笔数据写请求对应的数据存储PBA;读取反向表位置标识,对反向表位置标识进行加1操作,以得到目标反向表位置标识;利用目标反向表位置标识查找bitmap对应位置上LUN的可用状态,得到目标表存储PBA;将写数据写入其对应的数据存储PBA对应的写缓存,将每笔写请求对应的LBA依次写入目标表存储PBA对应的写缓存;当DDR中数据量达到写入nand条件,则将写数据写入对应的数据存储PBA对应的固态硬盘存储空间,将对应的LBA写入对应的目标表存储PBA对应的固态硬盘存储空间。这样,能够提升查找反向表存储位置的速度,从而提升数据写入效率。

A data writing method, device, equipment and medium

【技术实现步骤摘要】
一种数据写入方法、装置、设备及介质
本申请涉及数据存储领域,特别涉及一种数据写入方法、装置、设备及介质。
技术介绍
在SSD(即SolidStateDrives,固态硬盘)写数据过程中,不仅仅需要对用户数据进行操作,还需要对固态硬盘现有的内部管理数据进行支撑,例如垃圾回收使用到的反向表等,为垃圾回收提供数据支持,反向表主要是和PBA(即PhysicalBlockAddress,物理块地址)对应的LBA(即LogicalBlockAddress,逻辑块地址)的映射,为了维护反向表,在落nand时,需要将此PBA对应的LBA一起写入。在现有技术中,每个存储页对应一个反向表,而不同的页对应的反向表不同,在写入LBA时,需要查找对应的反向表存储位置,查找反向表的存储位置是按照遍历bitmap方式进行查找,即每个页都要从头遍历bitmap,这样,查找效率低,降低了数据写入效率。
技术实现思路
有鉴于此,本申请的目的在于提供一种数据写入方法、装置、设备及介质,能够提升查找反向表存储位置的速度,从而提升数据写入效率。其具体方案如下:第一方面,本申请公开了一种数据写入方法,应用于固态硬盘,包括:当获取到当前页的第一笔数据写请求,则在DDR中申请对应的写缓存,以得到该笔数据写请求对应的数据存储PBA;读取当前反向表位置标识;其中,所述反向表位置标识用于标识反向表的历史位置;对所述反向表位置标识进行加1操作,以得到目标反向表位置标识;利用所述目标反向表位置标识查找bitmap对应位置上LUN的可用状态,若所述可用状态为可用,则确定当前页对应的反向表存储位置为该LUN,以得到对应的目标表存储PBA,若所述可用状态为不可用,则跳转至所述对所述反向表位置标识进行加1操作的步骤,直到得到所述目标表存储PBA;将当前页的每笔数据写请求对应的写数据写入其对应的所述数据存储PBA对应的写缓存,以及将当前页的每笔数据写请求对应的所述数据存储PBA对应的LBA依次写入所述目标表存储PBA对应的写缓存;当所述DDR中数据量达到写入nand条件,则将所述DDR中所述写数据分别写入对应的所述数据存储PBA对应的固态硬盘存储空间,以及将所述写数据对应的LBA写入对应的所述目标表存储PBA对应的固态硬盘存储空间。可选的,所述将所述反向表位置标识进行加1操作,以得到目标反向表位置标识,包括:对所述反向表位置标识进行加1操作,若加1后的所述反向表位置标识达到预设阈值,则将所述反向表位置标识置0,以得到所述目标反向表位置标识,否则,将加1后的所述反向表位置标识确定为所述目标反向表位置标识。可选的,还包括:预先确定任一所述LUN上的预设PBA为表存储PBA。可选的,还包括:根据坏块表和parity计算得到所述bitmap。可选的,所述当获取到当前页的第一笔数据写请求,则在DDR中申请对应的写缓存,以得到对应的数据存储PBA之后,还包括:更新下一个有效的所述数据存储PBA,以便为下一笔所述数据写请求分配该数据存储PBA。第二方面,本申请公开了一种数据写入装置,应用于固态硬盘,包括:数据存储PBA获取模块,用于当获取到当前页的第一笔数据写请求,则在DDR中申请对应的写缓存,以得到该笔数据写请求对应的数据存储PBA;反向表位置标识读取模块,用于读取当前反向表位置标识;其中,所述反向表位置标识用于标识反向表的历史位置;目标反向表位置标识获取模块,用于对所述反向表位置标识进行加1操作,以得到目标反向表位置标识;目标表存储PBA获取模块,用于利用所述目标反向表位置标识查找bitmap对应位置上LUN的可用状态,若所述可用状态为可用,则确定当前页对应的反向表存储位置为该LUN,以得到对应的目标表存储PBA,若所述可用状态为不可用,则跳转至所述对所述反向表位置标识进行加1操作的步骤,直到得到所述目标表存储PBA;数据缓存模块,用于将当前页的每笔数据写请求对应的写数据写入其对应的所述数据存储PBA对应的写缓存,以及将当前页的每笔数据写请求对应的所述数据存储PBA对应的LBA依次写入所述目标表存储PBA对应的写缓存;数据写入模块,当所述DDR中数据量达到写入nand条件,则将所述DDR中所述写数据分别写入对应的所述数据存储PBA对应的固态硬盘存储空间,将所述写数据对应的LBA写入对应的所述目标表存储PBA对应的固态硬盘存储空间。可选的,所述目标反向表位置标识获取模块,具体用于对所述反向表位置标识进行加1操作,若加1后的所述反向表位置标识达到预设阈值,则将所述反向表位置标识置0,以得到目标反向表位置标识,否则,将加1后的所述反向表位置标识确定为所述目标反向表位置标识。可选的,所述数据写入装置,还包括:表存储PBA确定模块,用于预先确定任一所述LUN上的预设PBA为表存储PBA。第三方面,本申请公开了一种数据写入设备,包括处理器和存储器;其中,所述存储器,用于保存计算机程序;所述处理器,用于执行所述计算机程序,以实现前述的数据写入方法。第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述的数据写入方法。可见,本申请当获取到当前页的第一笔数据写请求,则在DDR中申请对应的写缓存,以得到该笔数据写请求对应的数据存储PBA;读取当前反向表位置标识;其中,所述反向表位置标识用于标识反向表的历史位置;对所述反向表位置标识进行加1操作,以得到目标反向表位置标识;利用所述目标反向表位置标识查找bitmap对应位置上LUN的可用状态,若所述可用状态为可用,则确定当前页对应的反向表存储位置为该LUN,以得到对应的目标表存储PBA,若所述可用状态为不可用,则跳转至所述对所述反向表位置标识进行加1操作的步骤,直到得到所述目标表存储PBA;将当前页的每笔数据写请求对应的写数据写入其对应的所述数据存储PBA对应的写缓存,以及将当前页的每笔数据写请求对应的所述数据存储PBA对应的LBA依次写入所述目标表存储PBA对应的写缓存;当所述DDR中数据量达到写入nand条件,则将所述DDR中所述写数据分别写入对应的所述数据存储PBA对应的固态硬盘存储空间,以及将所述写数据对应的LBA写入对应的所述目标表存储PBA对应的固态硬盘存储空间。这样,在查找当前页对应的反向表存储位置时,利用读取出的反向表位置标识进行查找,读取出的反向表标识了反向表的历史位置,避免了从头遍历bitmap,并在查找过程中更新了反向表位置标识,以便下一页利用更新后的反向表位置标识进行反向表位置查找,能够提升查找反向表存储位置的速度,从而提升数据写入效率。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不本文档来自技高网...

【技术保护点】
1.一种数据写入方法,其特征在于,应用于固态硬盘,包括:/n当获取到当前页的第一笔数据写请求,则在DDR中申请对应的写缓存,以得到该笔数据写请求对应的数据存储PBA;/n读取当前反向表位置标识;其中,所述反向表位置标识用于标识反向表的历史位置;/n对所述反向表位置标识进行加1操作,以得到目标反向表位置标识;/n利用所述目标反向表位置标识查找bitmap对应位置上LUN的可用状态,若所述可用状态为可用,则确定当前页对应的反向表存储位置为该LUN,以得到对应的目标表存储PBA,若所述可用状态为不可用,则跳转至所述对所述反向表位置标识进行加1操作的步骤,直到得到所述目标表存储PBA;/n将当前页的每笔数据写请求对应的写数据写入其对应的所述数据存储PBA对应的写缓存,以及将当前页的每笔数据写请求对应的所述数据存储PBA对应的LBA依次写入所述目标表存储PBA对应的写缓存;/n当所述DDR中数据量达到写入nand条件,则将所述DDR中所述写数据分别写入对应的所述数据存储PBA对应的固态硬盘存储空间,以及将所述写数据对应的LBA写入对应的所述目标表存储PBA对应的固态硬盘存储空间。/n

【技术特征摘要】
1.一种数据写入方法,其特征在于,应用于固态硬盘,包括:
当获取到当前页的第一笔数据写请求,则在DDR中申请对应的写缓存,以得到该笔数据写请求对应的数据存储PBA;
读取当前反向表位置标识;其中,所述反向表位置标识用于标识反向表的历史位置;
对所述反向表位置标识进行加1操作,以得到目标反向表位置标识;
利用所述目标反向表位置标识查找bitmap对应位置上LUN的可用状态,若所述可用状态为可用,则确定当前页对应的反向表存储位置为该LUN,以得到对应的目标表存储PBA,若所述可用状态为不可用,则跳转至所述对所述反向表位置标识进行加1操作的步骤,直到得到所述目标表存储PBA;
将当前页的每笔数据写请求对应的写数据写入其对应的所述数据存储PBA对应的写缓存,以及将当前页的每笔数据写请求对应的所述数据存储PBA对应的LBA依次写入所述目标表存储PBA对应的写缓存;
当所述DDR中数据量达到写入nand条件,则将所述DDR中所述写数据分别写入对应的所述数据存储PBA对应的固态硬盘存储空间,以及将所述写数据对应的LBA写入对应的所述目标表存储PBA对应的固态硬盘存储空间。


2.根据权利要求1所述的数据写入方法,其特征在于,所述将所述反向表位置标识进行加1操作,以得到目标反向表位置标识,包括:
对所述反向表位置标识进行加1操作,若加1后的所述反向表位置标识达到预设阈值,则将所述反向表位置标识置0,以得到所述目标反向表位置标识,否则,将加1后的所述反向表位置标识确定为所述目标反向表位置标识。


3.根据权利要求1所述的数据写入方法,其特征在于,还包括:
预先确定任一所述LUN上的预设PBA为表存储PBA。


4.根据权利要求1所述的数据写入方法,其特征在于,还包括:
根据坏块表和parity计算得到所述bitmap。


5.根据权利要求1至4任一项所述的数据写入方法,其特征在于,所述当获取到当前页的第一笔数据写请求,则在DDR中申请对应的写缓存,以得到对应的数据存储PBA之后,还包括:
更新下一个有效的所述数据存储PBA,以便为下一笔所述数据写请求分配该数据存储PBA。


6.一种数据写入装置,其特征在于...

【专利技术属性】
技术研发人员:李子锋
申请(专利权)人:北京浪潮数据技术有限公司
类型:发明
国别省市:北京;11

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

1