CN109189349A - 一种提升固态硬盘复写性能的方法及其系统 - Google Patents
一种提升固态硬盘复写性能的方法及其系统 Download PDFInfo
- Publication number
- CN109189349A CN109189349A CN201811203797.XA CN201811203797A CN109189349A CN 109189349 A CN109189349 A CN 109189349A CN 201811203797 A CN201811203797 A CN 201811203797A CN 109189349 A CN109189349 A CN 109189349A
- Authority
- CN
- China
- Prior art keywords
- lba
- data
- cryptographic hash
- physical address
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Abstract
本发明涉及一种提升固态硬盘复写性能的方法及其系统;其中,提升固态硬盘复写性能的方法,包括以下步骤:S1,SSD控制器接收lba数据到DRAM,同时启用SHA‑1算法生成哈希值H;S2,判断H2P表中是否存在哈希值为H的记录;若是,则进入S3;若不是,则进入S4;S3,从H2P表中获得哈希值H对应的物理地址P2,将L2P表中该lba的物理地址对应为P2;S4,将lba数据写入到当前物理页P中,更新L2P表中该lba的物理地址为P1,并申请新的H2P记录单元并记录该哈希值H对应的物理地址为P1。本发明大大减少闪存的写入操作,大大提升复写情形下的性能,提高了复写的效率,更好地满足了需求,同时还能延长闪存的使用寿命。
Description
技术领域
本发明涉及固态硬盘复写技术领域,更具体地说是指一种提升固态硬盘复写性能的方法及其系统。
背景技术
在多用户态的企业级应用环境以及虚拟机环境中,用户间写入到存储设备的数据内容有很多是相同的。
现有技术中,作为存储设备的SSD,依然按照传统的写入方式存储数据,即按照主机下发的数据依次写入闪存,并利用映射表记住LBA(Logic Block Address)与物理地址的映射关系,供后续读取数据用;这样对于相同的数据重复进行写入,影响了SSD复写性能,降低了工作效率,无法满足需求。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种提升固态硬盘复写性能的方法及其系统。
为实现上述目的,本发明采用于下技术方案:
一种提升固态硬盘复写性能的方法,包括以下步骤:
S1,SSD控制器接收lba数据到DRAM,同时启用SHA-1算法生成哈希值H;
S2,判断H2P表中是否存在哈希值为H的记录;若是,则进入S3;若不是,则进入S4;
S3,从H2P表中获得哈希值H对应的物理地址P2,将L2P表中该lba的物理地址对应为P2;
S4,将lba数据写入到当前物理页P中,更新L2P表中该lba的物理地址为P1,并申请新的H2P记录单元并记录该哈希值H对应的物理地址为P1。
其进一步技术方案为:所述S1之前还包括:SSD固件动态维护一个H2P表,表中每个单元记录一个已写过数据的哈希值H_x和该笔数据所在的物理页ppa_y。
其进一步技术方案为:所述S1包括:主机写入lba,SSD控制器把数据从主机端接收到内部写缓存,接收的同时启用SHA-1算法并行计算数据内容对应的哈希值Ha。
其进一步技术方案为:所述S3包括:
S31,从H2P表中获得哈希值H对应的物理地址P2;
S32,将L2P表中该lba的物理地址对应为P2。
其进一步技术方案为:所述S4包括:
S41,将lba数据写入到当前物理页P中,更新L2P表中该lba的物理地址为P1;
S42,申请新的H2P记录单元并记录该哈希值H对应的物理地址为P1。
其进一步技术方案为:所述S4之后还包括:主机读取lba,SSD查找L2P表得出lba对应的物理页为P1,并将读出的数据传至主机。
一种提升固态硬盘复写性能的系统,包括维护记录单元,接收启用单元,判断单元,获得对应单元,及更新申请单元;
所述维护记录单元,用于SSD固件动态维护一个H2P表,表中每个单元记录一个已写过数据的哈希值H_x和该笔数据所在的物理页ppa_y;
所述接收启用单元,用于SSD控制器接收lba数据到DRAM,同时启用SHA-1算法生成哈希值H;
所述判断单元,用于判断H2P表中是否存在哈希值为H的记录;
所述获得对应单元,用于从H2P表中获得哈希值H对应的物理地址P2,将L2P表中该lba的物理地址对应为P2;
所述更新申请单元,用于将lba数据写入到当前物理页P中,更新L2P表中该lba的物理地址为P1,并申请新的H2P记录单元并记录该哈希值H对应的物理地址为P。
其进一步技术方案为:所述获得对应单元包括获得模块和对应模块;
所述获得模块,用于从H2P表中获得哈希值H对应的物理地址P2;
所述对应模块,用于将L2P表中该lba的物理地址对应为P2。
其进一步技术方案为:所述更新申请单元包括更新模块和申请模块;
所述更新模块,用于将lba数据写入到当前物理页P中,更新L2P表中该lba的物理地址为P1;
所述申请模块,用于申请新的H2P记录单元并记录该哈希值H对应的物理地址为P。
其进一步技术方案为:还包括读取单元,用于主机读取lba,SSD查找L2P表得出lba对应的物理页为P1,并将读出的数据传至主机。
本发明与现有技术相比的有益效果是:采用SSD固件设计中新的数据写入方式,即根据数据内容本身确定之前是否已写过该数据,如果已写过,则无需再写;SSD体现出的处理性能为主机数据写入到内部写缓存的性能,特别的,在SSD稳态写时,SSD表现出的性能提升是成百上千倍的,且能大大减少闪存的写入操作,大大提升复写情形下的性能,提高了复写的效率,更好地满足了需求,同时还能延长闪存的使用寿命。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
图1为现有技术的数据写入示意图;
图2为本发明一种提升固态硬盘复写性能的方法的流程图;
图3为本发明复写数据的示意图;
图4为本发明数据写入的示意图;
图5为本发明一种提升固态硬盘复写性能的系统方框图。
10 维护记录单元 20 接收启用单元
30 判断单元 40 获得对应单元
41 获得模块 42 对应模块
50 更新申请单元 51 更新模块
52 申请模块 60 读取单元
具体实施方式
为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。
如图1到图5所示的具体实施例,其中,如图1所示,现有技术的数据写入示意图,采用传统的写入方式,假设闪存的物理页(ppa)大小等于主机LBA大小(512B),SSD控制器将主机写入的数据依次写到闪存的物理页中,如图1中主机第一次写入lba1,SSD将数据写入到闪存的物理页0中,并且更新L2P表中lba1对应ppa0,然后主机继续写入lba2,并且lba2的数据内容与lba1的数据内容一样(主机复写),SSD并不关心lba2的具体数据内容,按照既定规则将lba2的数据写入到物理页1中,且更新L2P表中lba2对应ppa1,后续主机读取lba1数据时,SSD查L2P表得知对应数据在物理页0中,则将物理页0中数据读出并传输给主机。
其中,既然是复写,那么lba的数据内容是一样的,如图1中所示的lba1已写入到物理页0中,当lba2下发到SSD后,如果SSD能确定出lba2的数据内容与lba1的数据内容完全一样,导致数据重复进行写入,影响了SSD复写性能,降低了工作效率,无法满足需求。
如图2至图4所示,本发明公开了一种提升固态硬盘复写性能的方法,包括以下步骤:
S1,SSD控制器接收lba数据到DRAM,同时启用SHA-1算法生成哈希值H;
S2,判断H2P表中是否存在哈希值为H的记录;若是,则进入S3;若不是,则进入S4;
S3,从H2P表中获得哈希值H对应的物理地址P2,将L2P表中该lba的物理地址对应为P2;
S4,将lba数据写入到当前物理页P中,更新L2P表中该lba的物理地址为P1,并申请新的H2P记录单元并记录该哈希值H对应的物理地址为P1。
其中,在S1之前还包括:SSD固件动态维护一个H2P表,表中每个单元记录一个已写过数据的哈希值H_x和该笔数据所在的物理页ppa_y。
其中,S1包括:主机写入lba,SSD控制器把数据从主机端接收到内部写缓存,接收的同时启用SHA-1算法并行计算数据内容对应的哈希值Ha。
其中,S3包括:
S31,从H2P表中获得哈希值H对应的物理地址P2;
S32,将L2P表中该lba的物理地址对应为P2。
其中,S4包括:
S41,将lba数据写入到当前物理页P中,更新L2P表中该lba的物理地址为P1;
S42,申请新的H2P记录单元并记录该哈希值H对应的物理地址为P1。
其中,S4之后还包括:主机读取lba,SSD查找L2P表得出lba对应的物理页为P1,并将读出的数据传至主机。
本发明SSD确定lba2的数据内容与lba1的数据内容完全一样,那么SSD没有必要将相同的数据写入到新的物理页中(毕竟在基于NVME的SSD中数据写入闪存是相对最耗时的),SSD只需要将L2P表中lba2直接对应到物理页0即可,后续主机读取lba2,SSD按照传统的方式读取,数据也是没有问题的。
如图3至图4所示,举例说明:
1、SSD固件动态维护一个H2P表,表中每个单元记录一个已写过数据的哈希值H_x和该笔数据所在的物理页ppa_y;
2、主机写入lba1,SSD控制器把数据从主机端接收到内部写缓存,接收的同时启用SHA算法并行计算数据内容对应的哈希值Ha(可考虑硬件实现,提升效率);
3、SSD固件搜索H2P表,搜索表中是否已存在Ha,发现不存在,说明该lba对应的数据内容并没有写过,则将该数据写入到闪存物理页0中,同时为H2P表动态申请一个新的记录单元并将Ha与ppa0的对应关系保存到该记录单元,之后还需要将L2P表中lba1对应的物理页信息更新为ppa0,供后续主机读取lba1数据使用;
4、主机写入lba2,该lba数据内容与lba1数据内容不相同,SSD计算出对应哈希值为Hb,SSD用同样方式将该数据写入到闪存物理页1中,并且增加Hb与ppa1的对应关系到H2P表,且更新L2P表中lba2的物理页为ppa1;
5、主机写入lba3,且该lba数据内容与lba2的数据内容,SSD计算出哈希值为Hb,搜索H2P表发现表中已存在Hb,则判断出该数据内容已写过,并且写在物理页1中,则直接更新L2P表中lba3的物理页信息为ppa1;
6、主机读取lba3,SSD查L2P表得出lba3对应的物理页为pp1,并将读出的数据传至主机。
由此可见,在5中lba3的数据在SSD内部并没有实际写闪存的操作,所以在主机复写数据的场景下,SSD体现出的处理性能为主机数据写入到内部写缓存的性能,特别的,在SSD稳态写时,SSD表现出的性能提升是成百上千倍的;而且由于该技术能大大减少闪存的写入操作,所以还能明显延长闪存的使用寿命。
如图5所示,本发明还公开了一种提升固态硬盘复写性能的系统,包括维护记录单元10,接收启用单元20,判断单元30,获得对应单元40,及更新申请单元50;
维护记录单元10,用于SSD固件动态维护一个H2P表,表中每个单元记录一个已写过数据的哈希值H_x和该笔数据所在的物理页ppa_y;
接收启用单元20,用于SSD控制器接收lba数据到DRAM,同时启用SHA-1算法生成哈希值H;
判断单元30,用于判断H2P表中是否存在哈希值为H的记录;
获得对应单元40,用于从H2P表中获得哈希值H对应的物理地址P2,将L2P表中该lba的物理地址对应为P2;
更新申请单元50,用于将lba数据写入到当前物理页P中,更新L2P表中该lba的物理地址为P1,并申请新的H2P记录单元并记录该哈希值H对应的物理地址为P。
其中,获得对应单元40包括获得模块41和对应模块42;
获得模块41,用于从H2P表中获得哈希值H对应的物理地址P2;
对应模块42,用于将L2P表中该lba的物理地址对应为P2。
其中,更新申请单元50包括更新模块51和申请模块52;
更新模块51,用于将lba数据写入到当前物理页P中,更新L2P表中该lba的物理地址为P1;
申请模块52,用于申请新的H2P记录单元并记录该哈希值H对应的物理地址为P。
进一步地,该系统还包括读取单元60,用于主机读取lba,SSD查找L2P表得出lba对应的物理页为P1,并将读出的数据传至主机。
本发明采用SSD固件设计中新的数据写入方式,即根据数据内容本身确定之前是否已写过该数据,如果已写过,则无需再写;SSD体现出的处理性能为主机数据写入到内部写缓存的性能,特别的,在SSD稳态写时,SSD表现出的性能提升是成百上千倍的,且能大大减少闪存的写入操作,大大提升复写情形下的性能,提高了复写的效率,更好地满足了需求,同时还能延长闪存的使用寿命。
上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。
Claims (10)
1.一种提升固态硬盘复写性能的方法,其特征在于,包括以下步骤:
S1,SSD控制器接收lba数据到DRAM,同时启用SHA-1算法生成哈希值H;
S2,判断H2P表中是否存在哈希值为H的记录;若是,则进入S3;若不是,则进入S4;
S3,从H2P表中获得哈希值H对应的物理地址P2,将L2P表中该lba的物理地址对应为P2;
S4,将lba数据写入到当前物理页P中,更新L2P表中该lba的物理地址为P1,并申请新的H2P记录单元并记录该哈希值H对应的物理地址为P1。
2.根据权利要求1所述的一种提升固态硬盘复写性能的方法,其特征在于,所述S1之前还包括:SSD固件动态维护一个H2P表,表中每个单元记录一个已写过数据的哈希值H_x和该笔数据所在的物理页ppa_y。
3.根据权利要求1所述的一种提升固态硬盘复写性能的方法,其特征在于,所述S1包括:主机写入lba,SSD控制器把数据从主机端接收到内部写缓存,接收的同时启用SHA-1算法并行计算数据内容对应的哈希值Ha。
4.根据权利要求1所述的一种提升固态硬盘复写性能的方法,其特征在于,所述S3包括:
S31,从H2P表中获得哈希值H对应的物理地址P2;
S32,将L2P表中该lba的物理地址对应为P2。
5.根据权利要求1所述的一种提升固态硬盘复写性能的方法,其特征在于,所述S4包括:
S41,将lba数据写入到当前物理页P中,更新L2P表中该lba的物理地址为P1;
S42,申请新的H2P记录单元并记录该哈希值H对应的物理地址为P1。
6.根据权利要求1所述的一种提升固态硬盘复写性能的方法,其特征在于,所述S4之后还包括:主机读取lba,SSD查找L2P表得出lba对应的物理页为P1,并将读出的数据传至主机。
7.一种提升固态硬盘复写性能的系统,其特征在于,包括维护记录单元,接收启用单元,判断单元,获得对应单元,及更新申请单元;
所述维护记录单元,用于SSD固件动态维护一个H2P表,表中每个单元记录一个已写过数据的哈希值H_x和该笔数据所在的物理页ppa_y;
所述接收启用单元,用于SSD控制器接收lba数据到DRAM,同时启用SHA-1算法生成哈希值H;
所述判断单元,用于判断H2P表中是否存在哈希值为H的记录;
所述获得对应单元,用于从H2P表中获得哈希值H对应的物理地址P2,将L2P表中该lba的物理地址对应为P2;
所述更新申请单元,用于将lba数据写入到当前物理页P中,更新L2P表中该lba的物理地址为P1,并申请新的H2P记录单元并记录该哈希值H对应的物理地址为P。
8.根据权利要求7所述的一种提升固态硬盘复写性能的系统,其特征在于,所述获得对应单元包括获得模块和对应模块;
所述获得模块,用于从H2P表中获得哈希值H对应的物理地址P2;
所述对应模块,用于将L2P表中该lba的物理地址对应为P2。
9.根据权利要求7所述的一种提升固态硬盘复写性能的系统,其特征在于,所述更新申请单元包括更新模块和申请模块;
所述更新模块,用于将lba数据写入到当前物理页P中,更新L2P表中该lba的物理地址为P1;
所述申请模块,用于申请新的H2P记录单元并记录该哈希值H对应的物理地址为P。
10.根据权利要求7所述的一种提升固态硬盘复写性能的系统,其特征在于,还包括读取单元,用于主机读取lba,SSD查找L2P表得出lba对应的物理页为P1,并将读出的数据传至主机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811203797.XA CN109189349A (zh) | 2018-10-16 | 2018-10-16 | 一种提升固态硬盘复写性能的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811203797.XA CN109189349A (zh) | 2018-10-16 | 2018-10-16 | 一种提升固态硬盘复写性能的方法及其系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109189349A true CN109189349A (zh) | 2019-01-11 |
Family
ID=64944934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811203797.XA Pending CN109189349A (zh) | 2018-10-16 | 2018-10-16 | 一种提升固态硬盘复写性能的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109189349A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113867627A (zh) * | 2021-08-29 | 2021-12-31 | 苏州浪潮智能科技有限公司 | 一种存储系统性能优化方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719099A (zh) * | 2009-11-26 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 减小固态硬盘写入放大的方法及装置 |
CN103514250A (zh) * | 2013-06-20 | 2014-01-15 | 易乐天 | 一种全局重复数据删除的方法和系统及存储装置 |
CN108345433A (zh) * | 2017-01-25 | 2018-07-31 | 三星电子株式会社 | 用于最大化的可去重存储器的方法、存储器系统和产品 |
-
2018
- 2018-10-16 CN CN201811203797.XA patent/CN109189349A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719099A (zh) * | 2009-11-26 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 减小固态硬盘写入放大的方法及装置 |
CN103514250A (zh) * | 2013-06-20 | 2014-01-15 | 易乐天 | 一种全局重复数据删除的方法和系统及存储装置 |
CN108345433A (zh) * | 2017-01-25 | 2018-07-31 | 三星电子株式会社 | 用于最大化的可去重存储器的方法、存储器系统和产品 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113867627A (zh) * | 2021-08-29 | 2021-12-31 | 苏州浪潮智能科技有限公司 | 一种存储系统性能优化方法及系统 |
CN113867627B (zh) * | 2021-08-29 | 2023-08-22 | 苏州浪潮智能科技有限公司 | 一种存储系统性能优化方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10101930B2 (en) | System and method for supporting atomic writes in a flash translation layer | |
US8838936B1 (en) | System and method for efficient flash translation layer | |
US8521949B2 (en) | Data deleting method and apparatus | |
CN104077380B (zh) | 一种重复数据删除方法、装置及系统 | |
CN103049224B (zh) | 将数据导入物理磁带的方法、装置和系统 | |
CN106922188A (zh) | 取消映射存储空间 | |
US9177652B2 (en) | Bad block compensation for solid state storage devices | |
CN102591790B (zh) | 基于固态硬盘的数据存储快照实现方法及固态硬盘 | |
CN108604165A (zh) | 存储装置 | |
CN107273046B (zh) | 一种基于固态盘阵列的数据处理方法及系统 | |
US8429339B2 (en) | Storage device utilizing free pages in compressed blocks | |
CN108491290B (zh) | 一种数据写入方法及装置 | |
CN104834477A (zh) | 基于闪存的数据写入方法和装置 | |
CN107291625B (zh) | 一种用于Nand Flash的指针式逻辑地址映射表实现方法 | |
JP2009043054A5 (zh) | ||
CN102520885B (zh) | 一种混合硬盘的数据管理系统 | |
CN100580669C (zh) | 在Flash存储介质上的关于文件分配表的缓存实现方法 | |
CN102867046B (zh) | 基于固态硬盘的数据库优化方法及系统 | |
CN109189349A (zh) | 一种提升固态硬盘复写性能的方法及其系统 | |
TWI407310B (zh) | 資料儲存裝置及資料存取方法 | |
CN111443874B (zh) | 基于内容感知的固态盘内存缓存管理方法、设备及固态盘 | |
CN103631682A (zh) | 数据备份的实现方法和装置 | |
CN103176753B (zh) | 存储设备及其数据管理方法 | |
CN108733575B (zh) | 一种断电重启后逻辑对物理映像表的重建方法、固态硬盘 | |
CN113126921B (zh) | 一种提高固态盘内3d闪存芯片写性能的优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190111 |
|
RJ01 | Rejection of invention patent application after publication |