一种提升固态硬盘性能的方法与流程

文档序号:17184951发布日期:2019-03-22 21:15阅读:350来源:国知局
本发明涉及固态硬盘控制技术,特别涉及一种提升固态硬盘性能的方法。
背景技术
::ssd运行期间在处理用户数据的同时,还要处理一些系统数据,而往往在处理系统数据时,ssd会阻塞对于用户数据的响应。其中典型场景之一是固态硬盘设备通常在内存中维护了逻辑到物理地址的映射表,随着用户数据的写入,映射表会不断的更新,系统为了应对掉电后再次上电的映射表重建,会定时的将映射表的全部或者部分写入到nandflash中。这期间现有的策略都是暂停对于映射表的修改和存储时,这就涉及到在此期间映射表处于锁定状态,用户的写请求会被暂停,导致无法响应用户数据的写命令,从而在此操作期间,ssd性能会一定程度的下降。图1是映射表存储期间的写性能抖动示意图,在系统维护中对映射表修改mappingtableflush期间造成短时间的写性能下降也就是写性能抖动。在外部看来此时的ssd的写性能将会下降,整体来看就是写速度不一致存在写性能抖动问题。技术实现要素:针对以上缺陷,本发明目的是如何克服在系统维护中对映射表修改mappingtableflush期间造成的固态硬盘性能抖动问题。为了解决以上问题本发明提出了一种提升固态硬盘性能的方法,其特征在于在固态硬盘系统中增加一个创建临时映射表操作,固态硬盘系统在创建映射表的同时也创建一个空的临时映射表,固态硬盘系统在响应主机下发的写命令过程中,当固态硬盘系统执行到需要更新映射表时,检测到当前映射表处于锁定状态无法执行时,则直接将需要更新到映射表的表项数据更新到临时映射表;映射表解锁时判断临时映射表中是否为空,如果不为空则将临时映射表中的表项数据合并到映射表中,并清空临时映射表。所述的提升固态硬盘性能的方法,其特征在于在固态硬盘系统响应主机的读命令或写命令中在需要检索或更新映射表的操作后增加判断临时映射表是否为空,如果不为空,则增加检索或更新临时映射表的操作,所述检索或更新临时映射表的操作方法与操作映射表的方法保持一致。所述的提升固态硬盘性能的方法,其特征在于映射表和临时映射表的数据结构保持一致。本发明通过增加临时映射表来达到在映射表存储阶段响应用户数据写操作的方法,从而有效提升此阶段ssd的写性能,减少性能抖动,提升固态硬盘性能。附图说明图1是映射表存储期间的写性能抖动示意图;图2是写命令触发的映射表更新示意图;图3是常规数据写入的示意图;具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。固态硬盘内部都维护了一张映射表,该映射表详细记录了flash中已经存储的数据的逻辑地址到物理地址的转换关系,所有的用户数据读写操作都要根据命令的逻辑地址查询映射表后得到相应的物理地址后才能进行相应的针对nandflash的读写操作。图3是常规数据写入的示意图,所有的读写命令wr都需要执行查询映射表获得物理地址后才能执行对nandflash的读写操作;图2是写命令触发的映射表更新示意图,写操作在执行完对nandflash的写操作后还需要增加对映射表的更新操作,映射表需要对新写入数据页的逻辑地址lpa对应的物理地址ppa进行更新操作,只有更新完成后才能答复主机本次写入数据完成。随着用户数据的写入,映射表会不断的更新,系统为了应对掉电后再次上电的映射表重建,会定时的将映射表的全部或者部分写入到nandflash中。映射表存储期间,现有的策略,当出现因系统维护需要需要正在执行将映射表的全部或者部分写入到nandflash,则锁定当前映射表,暂停外部对于映射表的修改操作,此期间用户的写请求会被暂停,因此即使当前写操作已经实际写入到nandflash中,但是由于无法完成映射表的更新操作,只能等待映射表写入nandflash中后才可执行对映射表的更新操作,造成期间暂停响应写操作的问题。实际由于现有的固态硬盘都支持多通道,在系统执行映射表写入nandflash时其它通道还是可以并行执行读写指令的,因此因为无法执行更新或者是访问映射表的操作而完全暂停读写指令的是不合适的。本方案通过新增临时映射表temp_mapping_table,该表应用于在主映射表存储期间,若用户下发写请求,则将写请求产生的映射表修改信息记录到临时映射表中,从而不会影响到同时刻进行中的主映射表的修改,从而不需要进行暂停用户数据写命令的操作,实现此时间段用户命令写操作的快速响应。从外部看,可以大大降低此时刻写性能的下降,保证系统性能的一致性。通过在固态硬盘系统中增加一个创建临时映射表操作,固态硬盘系统在创建映射表的同时也创建一个空的临时映射表,映射表和临时映射表的数据结构保持一致,固态硬盘系统在响应主机下发的写命令过程中,当固态硬盘系统执行到需要更新映射表时,检测到当前映射表处于锁定状态无法执行时,则直接将需要更新到映射表的表项数据更新到临时映射表;映射表解锁时判断临时映射表中是否为空,如果不为空则将临时映射表中的表项数据合并到映射表中,并清空临时映射表。在固态硬盘系统响应主机的读命令或写命令中在需要检索或更新映射表的操作后增加判断临时映射表是否为空,如果不为空,则增加检索或更新临时映射表的操作,所述检索或更新临时映射表的操作方法与操作映射表的方法保持一致。以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。技术特征:技术总结本发明提出了一种提升固态硬盘性能的方法。通过增加临时映射表来达到在映射表存储阶段响应用户数据写操作的方法,从而有效提升此阶段SSD的写性能,减少性能抖动,提升固态硬盘性能。其特征在于在固态硬盘系统响应主机的读命令或写命令中在需要检索或更新映射表的操作后增加判断临时映射表是否为空,如果不为空,则增加检索或更新临时映射表的操作,所述检索或更新临时映射表的操作方法与操作映射表的方法保持一致。其特征在于映射表和临时映射表的数据结构保持一致。技术研发人员:不公告发明人受保护的技术使用者:苏州韦科韬信息技术有限公司技术研发日:2018.11.15技术公布日:2019.03.22
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1