提高SSD写性能的实现方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:26258919 阅读:23 留言:0更新日期:2020-11-06 17:52
本申请涉及一种提高SSD写性能的实现方法、装置、计算机设备及存储介质,其中该方法包括:获取主机下发的写数据命令;判断所述写数据命令是否需要写入Parity数据;若所述写数据命令需要写入Parity数据,则当前写数据命令先不执行写入操作,只通过异或生成对应的Parity数据;判断所述Parity数据是否已生成;待所述Parity数据生成后,将所述Parity数据与下一笔命令组成Multi‑Plane命令写入Nand Flash中。本发明专利技术实现提高了Multi‑Plane拼接率,进而提高了Cache Program的比例,使得SSD的写性能可以提升30%。

【技术实现步骤摘要】
提高SSD写性能的实现方法、装置、计算机设备及存储介质
本专利技术涉及固态硬盘
,特别是涉及一种提高SSD写性能的实现方法、装置、计算机设备及存储介质。
技术介绍
NANDFlash闪存芯片是SSD(SolidStateDisk)存储数据的主要部分。由于NandFlash具有易失性和耐久性等特点,容易造成数据丢失。因此SSD需要从系统角度考虑增加数据保护能力,提高数据可靠性。磁盘阵列(RedundantArraysofIndependentDisks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意,目前主流SSD都支持通过RAID提高数据保护能力。磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。由于SSD只有一片独立存储体,无法像机械硬盘使用一块独立磁盘保存,因此目前主流厂商是通过BlockRAID来提供数据可靠性,如图1所示,使用31UserData+1Parity的方式进行数据保护,前面31个Block中的数据为有效数据,最后1个Block的数据为UserData异或生成的Parity数据,其中前31组数据中任一数据丢失,都可以通过Parity数据来恢复,提高数据可靠性。在传统技术中,SSD为提高写性能,数据需要通过Multi-Plane的方式写入NandFlash,Multi-Plane的拼接要求写命令必须同时准备好,并且数据刚好写到不同Channel的同一个CE上。而增加了RAID数据保护功能后,最后一笔Parity数据由于需要等前面31组用户数据完成异或操作,生成Parity数据再写入NandFlash,这样造成第31笔用户数据和Parity数据都无法以Multi-Plane的方式写入,导致写性能明显降低。
技术实现思路
基于此,有必要针对上述技术问题,提供一种提高SSD写性能的实现方法、装置、计算机设备及存储介质。一种提高SSD写性能的实现方法,所述方法包括:获取主机下发的写数据命令;判断所述写数据命令是否需要写入Parity数据;若所述写数据命令需要写入Parity数据,则当前写数据命令先不执行写入操作,只通过异或生成对应的Parity数据;判断所述Parity数据是否已生成;待所述Parity数据生成后,将所述Parity数据与下一笔命令组成Multi-Plane命令写入NandFlash中。在其中一个实施例中,所述判断所述写数据命令是否需要写入Parity数据的步骤包括:判断所述写数据命令是否为写入Bank0-Bank5的写数据命令。在其中一个实施例中,在所述判断所述写数据命令是否为写入Bank0-Bank5的写数据命令的步骤之后还包括:若所述写数据命令不是写入Bank0-Bank5的写数据命令,则对于写入Bank6的命令先不执行写操作,只通过异或生成对应的Parity数据;判断所述Parity数据是否已生成;待所述Parity数据生成后,将写入Bank7的所述Parity数据和写入Bank6的数据组成Multi-Plane命令写入NandFlash中;更新对应的映射表信息。在其中一个实施例中,在所述判断所述写数据命令是否为写入Bank0-Bank5的写数据命令的步骤之后还包括:若所述写数据命令为写入Bank0-Bank5的写数据命令,则直接将数据组成Multi-Plane写入NandFlash中并同时生成Parity数据;更新对应的映射表信息。一种提高SSD写性能的实现装置,所述装置包括:获取模块,所述获取模块用于获取主机下发的写数据命令;第一判断模块,所述第一判断模块用于判断所述写数据命令是否需要写入Parity数据;数据生成模块,所述数据生成模块用于若所述写数据命令需要写入Parity数据,则当前写数据命令先不执行写入操作,只通过异或生成对应的Parity数据;第二判断模块,所述第二判断模块用于判断所述Parity数据是否已生成;写入模块,所述写入模块用于待所述Parity数据生成后,将所述Parity数据与下一笔命令组成Multi-Plane命令写入NandFlash中。在其中一个实施例中,第一判断模块还用于:判断所述写数据命令是否为写入Bank0-Bank5的写数据命令。在其中一个实施例中,所述装置还包括第一执行模块,所述第一执行模块用于:若所述写数据命令不是写入Bank0-Bank5的写数据命令,则对于写入Bank6的命令先不执行写操作,只通过异或生成对应的Parity数据;判断所述Parity数据是否已生成;待所述Parity数据生成后,将写入Bank7的所述Parity数据和写入Bank6的数据组成Multi-Plane命令写入NandFlash中;更新对应的映射表信息。在其中一个实施例中,所述装置还包括第二执行模块,所述第二执行模块用于:若所述写数据命令为写入Bank0-Bank5的写数据命令,则直接将数据组成Multi-Plane写入NandFlash中并同时生成Parity数据;更新对应的映射表信息。一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。上述提高SSD写性能的实现方法、装置、计算机设备及存储介质通过获取主机下发的写数据命令;判断所述写数据命令是否需要写入Parity数据;若所述写数据命令需要写入Parity数据,则当前写数据命令先不执行写入操作,只通过异或生成对应的Parity数据;判断所述Parity数据是否已生成;待所述Parity数据生成后,将所述Parity数据与下一笔命令组成Multi-Plane命令写入NandFlash中。本专利技术在写入过程中进行提取预判,当下一笔命令需要写入Parity数据时,当前命令先不执行写入操作,只生成Parity数据,与下一笔命令组成Multi-Plane操作再写入NandFlash。通过这种方式不仅提高了Multi-Plane拼接率,进而提高了CacheProgram的比例,写性能可以提升30%。附图说明图1为传统技术中通过BlockRAID进行数据保护的示意图;图2为传统技术中RAID数据保护下的写命令执行的流程示意图;图3为一个实施例中提高SSD写性能的实现方法的流程示意图;图4为另一个实施例中提高SSD写性能的实现方法的流程示意图;图5为再一个实施例中提高SSD写性能的实现方法的流程示意图本文档来自技高网
...

【技术保护点】
1.一种提高SSD写性能的实现方法,其特征在于,所述方法包括:/n获取主机下发的写数据命令;/n判断所述写数据命令是否需要写入Parity数据;/n若所述写数据命令需要写入Parity数据,则当前写数据命令先不执行写入操作,只通过异或生成对应的Parity数据;/n判断所述Parity数据是否已生成;/n待所述Parity数据生成后,将所述Parity数据与下一笔命令组成Multi-Plane命令写入Nand Flash中。/n

【技术特征摘要】
1.一种提高SSD写性能的实现方法,其特征在于,所述方法包括:
获取主机下发的写数据命令;
判断所述写数据命令是否需要写入Parity数据;
若所述写数据命令需要写入Parity数据,则当前写数据命令先不执行写入操作,只通过异或生成对应的Parity数据;
判断所述Parity数据是否已生成;
待所述Parity数据生成后,将所述Parity数据与下一笔命令组成Multi-Plane命令写入NandFlash中。


2.根据权利要求1所述的提高SSD写性能的实现方法,其特征在于,所述判断所述写数据命令是否需要写入Parity数据的步骤包括:
判断所述写数据命令是否为写入Bank0-Bank5的写数据命令。


3.根据权利要求2所述的提高SSD写性能的实现方法,其特征在于,在所述判断所述写数据命令是否为写入Bank0-Bank5的写数据命令的步骤之后还包括:
若所述写数据命令不是写入Bank0-Bank5的写数据命令,则对于写入Bank6的命令先不执行写操作,只通过异或生成对应的Parity数据;
判断所述Parity数据是否已生成;
待所述Parity数据生成后,将写入Bank7的所述Parity数据和写入Bank6的数据组成Multi-Plane命令写入NandFlash中;
更新对应的映射表信息。


4.根据权利要求2所述的提高SSD写性能的实现方法,其特征在于,在所述判断所述写数据命令是否为写入Bank0-Bank5的写数据命令的步骤之后还包括:
若所述写数据命令为写入Bank0-Bank5的写数据命令,则直接将数据组成Multi-Plane写入NandFlash中并同时生成Parity数据;
更新对应的映射表信息。


5.一种提高SSD写性能的实现装置,其特征在于,所述装置包括:
获取模块,所述获取模块用于获取主机下发的写数据命令;
第一判断模块,所述第一判断模块用于判断所述写数据命令是...

【专利技术属性】
技术研发人员:冷志源王伟良郭芳芳冯元元
申请(专利权)人:深圳忆联信息系统有限公司
类型:发明
国别省市:广东;44

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

1