本发明涉及固态硬盘写性能技术领域,更具体地说是指一种提升固态硬盘写性能的方法及其系统。
背景技术:
为了提升固态硬盘写性能,现有固态硬盘固件通常在下发写节点的时候,先将写节点存放在一块写缓存区域中;当新的写命令下发时,会先将该命令节点在写缓存区域中进行命中检测;如果该命令节点命中写缓存区域中的某些节点,即该命令需要写入的数据区域与之前的某些命令写范围有重合,则采取将命中的节点的数据缓存地址重映射到当前命令的数据缓存地址,然后释放当前命令节点的方法,节约一次命令节点下发和数据写入闪存的时间,从而达到提升固态硬盘写性能的目;但该方法中,对命令节点在写缓存区域的命中检测采用依次检索写缓存节点链表的方法,每次命中检测需要遍历写缓存节点链表,命中检测效率较低;因此,无法满足需求。
技术实现要素:
本发明的目的在于克服现有技术的缺陷,提供一种提升固态硬盘写性能的方法及其系统。
为实现上述目的,本发明采用于下技术方案:
一种提升固态硬盘写性能的方法,包括以下步骤:
s1,接收主机下发的写命令,并解析为逻辑页地址为x的节点;
s2,对节点的逻辑页地址进行运算,找出待检索的节点链表;
s3,根据命中次数对检索链表上的节点进行冷热程度的排序,将命中次数多的节点排在链表前部位置,称之为热节点;将命中次数少的节点排在链表后部位置,称之为冷节点;
s4,在新排序后的节点检索链表中查找逻辑页地址与传入节点匹配的节点;若出现命中,则取出命中的节点,进行数据缓存地址重映射和新节点释放操作;若未出现命中,则将节点写入写缓存区域。
其进一步技术方案为:所述s1中,所述接收主机下发的写命令为固件接收。
其进一步技术方案为:所述s2中,所述对节点的逻辑页地址进行运算为对节点的逻辑页地址进行对n的取模运算。
其进一步技术方案为:所述s3中,所述根据命中次数对检索链表上的节点进行冷热程度的排序为软件后台根据命中次数对检索链表上的节点进行冷热程度的排序。
其进一步技术方案为:所述s4中,所述将节点写入写缓存区域包括:接收主机下发的写命令,解析为逻辑页地址为x的节点,写缓存区域内部共占用n个节点位置,对节点的逻辑页地址进行对n的取模运算,将该节点按照取模运算结果挂在相应的节点检索链表尾部。
一种提升固态硬盘写性能的系统,包括:接收解析单元,运算单元,排序单元,及检索单元;
所述接收解析单元,用于接收主机下发的写命令,并解析为逻辑页地址为x的节点;
所述运算单元,用于对节点的逻辑页地址进行运算,找出待检索的节点链表;
所述排序单元,根据命中次数对检索链表上的节点进行冷热程度的排序,将命中次数多的节点排在链表前部位置,称之为热节点;将命中次数少的节点排在链表后部位置,称之为冷节点;
所述检索单元,用于在新排序后的节点检索链表中查找逻辑页地址与传入节点匹配的节点;若出现命中,则取出命中的节点,进行数据缓存地址重映射和新节点释放操作;若未出现命中,则将节点写入写缓存区域。
其进一步技术方案为:所述接收解析单元中,所述接收主机下发的写命令为固件接收。
其进一步技术方案为:所述运算单元中,所述对节点的逻辑页地址进行运算为对节点的逻辑页地址进行对n的取模运算。
其进一步技术方案为:所述排序单元中,所述根据命中次数对检索链表上的节点进行冷热程度的排序为软件后台根据命中次数对检索链表上的节点进行冷热程度的排序。
其进一步技术方案为:所述检索单元中,所述将节点写入写缓存区域包括:接收主机下发的写命令,解析为逻辑页地址为x的节点,写缓存区域内部共占用n个节点位置,对节点的逻辑页地址进行对n的取模运算,将该节点按照取模运算结果挂在相应的节点检索链表尾部。
本发明与现有技术相比的有益效果是:根据命中次数对写缓存区域中的节点链表进行冷热程度排序,将命中次数多的节点排在检索链表前部,称之为热节点,将命中次数少的节点排在检索链表后部,称之为冷节点,在命中节点检索时,会先对热节点进行逻辑页地址的匹配,从而缩短命中检索时间,提高节点检索效率,进而达到提升固态硬盘写性能的目的,更好地满足需求。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
图1为写缓存区域节点刷新流程示意图;
图2为现有技术中写缓存区域节点命中检测流程示意图;
图3为本发明一种提升固态硬盘写性能的方法流程图;
图4为图3的应用示意图;
图5本发明一种提升固态硬盘写性能的系统方框图。
具体实施方式
为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。
如图1到图5所示的具体实施例,其中,如图1所示的,写缓存区域节点刷新流程示意图,固态硬盘执行写命令时对写缓存区域中的节点进行刷新:固件收到主机下发的写命令,解析为逻辑页地址为x的节点,写缓存区域内部共占用n个节点位置(其中,增大写缓存节点数n可提高命中检测效率),对写节点的逻辑页地址进行对n的取模运算,从而决定改节点挂载写缓存区域的哪一条节点检索链表,将该节点按照取模运算结果挂在相应的节点检索链表尾部。
如图2所示的,固态硬盘执行写命令时对写缓存区域中的节点进行命中检测的流程:
固件接收到主机下发的写命令,解析为逻辑页地址为x的节点;
对写节点的逻辑页地址进行对n的取模运算,找到待检索的节点链表;
遍历节点检索链表,在链表中依次查找逻辑页地址与传入节点匹配的节点;
若出现命中情形,则取出命中的节点,进行数据缓存地址重映射和新节点释放等操作;若未出现命中情形,则按照图1中的步骤进入写缓存区域节点刷新流程。
其中,上述流程中在写缓存区域中的每一条节点检索链表上的节点权重保持一致,因此在对新下发的写节点进行命中检测时,需要遍历节点检索链表上的全部节点,进行逻辑页地址匹配检查,从而导致节点检索效率下降,进而可能导致写性能的降低。
其中,如图3至图4所示,本发明公开了一种提升固态硬盘写性能的方法,包括以下步骤:
s1,接收主机下发的写命令,并解析为逻辑页地址为x的节点;
s2,对节点的逻辑页地址进行运算,找出待检索的节点链表;
s3,根据命中次数对检索链表上的节点进行冷热程度的排序,将命中次数多的节点排在链表前部位置,称之为热节点;将命中次数少的节点排在链表后部位置,称之为冷节点;
s4,在新排序后的节点检索链表中查找逻辑页地址与传入节点匹配的节点;若出现命中,则取出命中的节点,进行数据缓存地址重映射和新节点释放操作;若未出现命中,则将节点写入写缓存区域。
其中,所述s1中,所述接收主机下发的写命令为固件接收。
其中,所述s2中,所述对节点的逻辑页地址进行运算为对节点的逻辑页地址进行对n的取模运算。
其中,所述s3中,所述根据命中次数对检索链表上的节点进行冷热程度的排序为软件后台根据命中次数对检索链表上的节点进行冷热程度的排序。
进一步地,所述s4中,所述将节点写入写缓存区域包括:接收主机下发的写命令,解析为逻辑页地址为x的节点,写缓存区域内部共占用n个节点位置,对节点的逻辑页地址进行对n的取模运算,将该节点按照取模运算结果挂在相应的节点检索链表尾部。
本发明相比于原有的写缓存区域权重相等的节点命中检测,根据命中次数对节点检索链表上的节点进行冷热程度排序的方法,将命中次数多的节点排在链表前部位置,称之为热节点,将命中次数少的节点排在链表后部位置,称之为冷节点,从而在对新节点进行命中检测时能够有效增大命中检测概率,提升检测效率,进而有效提升写性能。
如图5所示,本发明还公开了一种提升固态硬盘写性能的系统,包括:接收解析单元10,运算单元20,排序单元30,及检索单元40;
所述接收解析单元10,用于接收主机下发的写命令,并解析为逻辑页地址为x的节点;
所述运算单元20,用于对节点的逻辑页地址进行运算,找出待检索的节点链表;
所述排序单元30,根据命中次数对检索链表上的节点进行冷热程度的排序,将命中次数多的节点排在链表前部位置,称之为热节点;将命中次数少的节点排在链表后部位置,称之为冷节点;
所述检索单元40,用于在新排序后的节点检索链表中查找逻辑页地址与传入节点匹配的节点;若出现命中,则取出命中的节点,进行数据缓存地址重映射和新节点释放操作;若未出现命中,则将节点写入写缓存区域。
其中,所述接收解析单元10中,所述接收主机下发的写命令为固件接收。
其中,所述运算单元20中,所述对节点的逻辑页地址进行运算为对节点的逻辑页地址进行对n的取模运算。
其中,所述排序单元30中,所述根据命中次数对检索链表上的节点进行冷热程度的排序为软件后台根据命中次数对检索链表上的节点进行冷热程度的排序。
进一步地,所述检索单元40中,所述将节点写入写缓存区域包括:接收主机下发的写命令,解析为逻辑页地址为x的节点,写缓存区域内部共占用n个节点位置,对节点的逻辑页地址进行对n的取模运算,将该节点按照取模运算结果挂在相应的节点检索链表尾部。
本发明根据命中次数对写缓存区域中的节点链表进行冷热程度排序,将命中次数多的节点排在检索链表前部,称之为热节点,将命中次数少的节点排在检索链表后部,称之为冷节点,在命中节点检索时,会先对热节点进行逻辑页地址的匹配,从而缩短命中检索时间,提高节点检索效率,进而达到提升固态硬盘写性能的目的,更好地满足需求。
上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。