一种降低固态硬盘写入性能波动的方法技术

技术编号:32565765 阅读:33 留言:0更新日期:2022-03-09 16:51
一种降低固态硬盘写入性能波动的方法,属于固体硬盘存储领域,其特征在于:将固态硬盘缓存拆分为若干缓存资源片段作为最小管理单元;固态硬盘执行写入任务,根据写入速度及当前时间段内固态硬盘的运行状态计算下一个时间段内的写入速度,然后确定释放固态硬盘内部缓存资源片段的个数,最后根据已经释放的缓存资源片段的个数接收并处理主机下发的写入命令,充分考虑了在写入过程中包括NAND Flash资源空闲情况、垃圾回收操作占用情况以及映射表更新等内部操作对写入性能的影响,可以确保固态硬盘在不同内部工作模式中写入性能的稳定性以及确保在不同外部应用场景中写入性能的稳定性,充分考虑了固态硬盘运行过程中的各种情况,适用于各种应用场景。适用于各种应用场景。适用于各种应用场景。

【技术实现步骤摘要】
一种降低固态硬盘写入性能波动的方法


[0001]本专利技术属于固体硬盘存储领域,尤其涉及一种降低固态硬盘写入性能波动的方法。

技术介绍

[0002]固态硬盘(Solid State Disk,简称SSD)主要由控制器和NAND Flash组成,相比与传统的机械硬盘,固态硬盘具有性能好、功耗低、可靠性高等特点,在各个领域均得到广泛的应用。目前固态硬盘在实际使用过程中存在写入流程如图1所示,现有技术的写入性能波动严重的问题,尤其是当固态硬盘进入“垃圾回收”状态后,其内部既要处理主机写入的数据又要处理垃圾回收的任务,再加上处理各种映射表更新的任务,往往会出现固态硬盘无法及时处理主机写入的数据以及在处理主机写入数据时阻塞在等待NAND Flash IO资源空闲的情况,进而造成主机写入性能波动严重。写入性能波动一方面反映写入速度连续性不好,波动严重,另一方面表现在某些命令的响应时间过长。而写入性能波动对诸如雷达数据记录、视频数据记录、车载数据记录等需要持续数据记录的相关应用场景有很大的影响,通常会导致丢失某个时刻的关键数据或者严重拖慢整个的性能和相应时间。

技术实现思路

[0003]本专利技术针对固态硬盘在实际使用过程中性能波动严重的问题,提供一种降低固态硬盘写入性能波动的方法,使得固态硬盘在不同数据负载和不同的应用场景中都具有平稳的性能。
[0004]本专利技术所述降低固态硬盘写入性能波动的方法,将固态硬盘缓存拆分为若干缓存资源片段WriteUnit作为最小管理单元,缓存资源申请和释放的单位均为WriteUnit;固态硬盘执行写入任务,首先启用定时器,执行写入任务的每一个时间间隔为Δt;统计执行写入任务的当前时间段内的写入速度V
Current
,其次根据写入速度V
Current
及当前时间段内固态硬盘的运行状态计算下一个时间段内的写入速度V
Target
,然后根据V
Target
的值确定释放固态硬盘内部缓存资源片段WriteUnit的个数,最后根据已经释放的缓存资源片段WriteUnit的个数接收并处理主机下发的写入命令。
[0005]进一步,本专利技术所述降低固态硬盘写入性能波动的方法,所述下一个时间段内的写入速度V
Target
计算过程包括:1)计算速度变化的第一参考值V
REF01
;a)统计当前时间段内的Block变化情况,记为ΔBlock,ΔBlock=Block
Used

Block
Added
其中Block
Used
表示当前时间段内因执行写入命令消耗的NAND Flash的Block个数;Block
Added
表示当前时间段内因执行垃圾回收操作释放的NAND Flash的Block个数;b)统计当前时间段内的精确时间ΔT,由于在执行后台任务时存在阻塞在等待NAND Flash资源空闲(包括NAND Flash阵列和IO)情况存在,上述每一个时间间隔Δt是存
在一定误差,这里通过统计当前时间段内的精确时间ΔT来修正这一误差;其中ΔTick表示当前时间间隔内CPU经历的tick个数,CLK
CPU
表示CPU的频率;c)计算速度变化的第一参考值V
REF01
:其中WriteUnitPerBlock表示每个Block的size对应WriteUnit的个数;V
REF01
可以体现速度的变化趋势,当V
REF01
>0,表示消耗的数据块大于增加的数据块,也就意味着上一个时间间隔速度是有增长的趋势的,当前速度也应该保持这个趋势;反之,当V
REF01
<0,表示上一个时间间隔速度有减缓的趋势,当前速度也应该保持减缓的趋势。
[0006]2)计算速度变化的第二参考值V
REF02
;a)统计当前时间段可用的空闲Block数目,记为Block
Free
,b)计算当前空闲Block和触发垃圾回收条件的空闲Block阈值Block
GC
之间的差值,ΔBlock
Free
=Block
Free

Block
GC
c)计算速度变化的第二参考值V
REF02
:其中N1和N2为预先设定的参数;V
REF02
的意义在于当ΔBlock
Free
值大于0,则表明垃圾回收的效率可以满足当前写入的速度要求,速度可以适当增加;如果ΔBlock
Free
值小于0,则表明GC的效率已经无法满足写入时速度的要求,需要降低写入的速度。
[0007]3)计算下一个时间段内的写入速度V
Target
:V
Target
=V
Current
+w1*V
REF01
+w2*V
REF02
其中w1和w2为预先设定的参数;4)计算下一个时间段内的速度最大值V
MaxNext1
,避免因垃圾回收不及时导致没有及时释放缓存资源;5)计算下一个时间段内的速度最大值V
MaxNext2
,以确保当前时间段内的数据可及时写入NAND Flash并且对应的地址映射完成更新同步完成;6)确定下一个时间段的速度值V
Target
值的范围不能超过V
MaxNext1
和V
MaxNext2
的值,即需满足下式:V
Target
≤min{V
MaxNext1
,V
MaxNext2
};7)根据当前时间段的速度值V
Current
对步骤3)计算得到的V
Target
值做平滑处理;a)参考当前时间段内的速度值V
Current
,下一个时间段内的速度值V
Target
为:V
Target
=μ*V
Current
+ν*V
Target
其中μ和v为给定值,且μ+v=1;b)将下一个时间段内的速度与上一个时间段内的速度波动控制在限定范围内,确
保最终的下一个时间段内的速度值V
Target
满足以下条件:其中σ为给定值;确定的V
Target
值需满足条件包括6)和7)限定的条件,如果不满足,需要取边界值;通过V
Target
推算出释放固态硬盘内部缓存资源个数WriteUnit
Free
:WriteUnit
Free
=V
Target
*Δt最后根据缓存资源释放的个数按需释放缓存资源给下一个时间间隔的写入命令使用。通过以上7个步骤计算得到的下一个时间间隔的速度V
...

【技术保护点】

【技术特征摘要】
1.一种降低固态硬盘写入性能波动的方法,其特征在于:将固态硬盘缓存拆分为若干缓存资源片段WriteUnit作为最小管理单元,缓存资源申请和释放的单位均为WriteUnit;固态硬盘执行写入任务,首先启用定时器,执行写入任务的每一个时间间隔为Δt;统计执行写入任务的当前时间段内的写入速度V
Current
,其次根据写入速度V
Current
及当前时间段内固态硬盘的运行状态计算下一个时间段内的写入速度V
Target
,然后根据V
Target
的值确定释放固态硬盘内部缓存资源片段WriteUnit的个数,最后根据已经释放的缓存资源片段WriteUnit的个数接收并处理主机下发的写入命令。2.根据权利要求1所述降低固态硬盘写入性能波动的方法,其特征在于:所述下一个时间段内的写入速度V
Target
计算过程包括:1)计算速度变化的第一参考值V
REF01
;a)统计当前时间段内的Block变化情况,记为ΔBlock,ΔBlock=Block
Used

Block
Added
其中Block
Used
表示当前时间段内因执行写入命令消耗的NAND Flash的Block个数;Block
Added
表示当前时间段内因执行垃圾回收操作释放的NAND Flash的Block个数;b)统计当前时间段内的精确时间ΔT:其中ΔTick表示当前时间间隔内CPU经历的tick个数,CLK
CPU
表示CPU的频率;c)计算速度变化的第一参考值V
REF01
:其中WriteUnitPerBlock表示每个Block的size对应WriteUnit的个数;2)计算速度变化的第二参考值V
REF02
;a)统计当前时间段可用的空闲Block数目,记为Block
Free
,b)计算当前空闲Block和触发垃圾回收条件的空闲Block阈值Block
GC
之间的差值,ΔBlock
Free
=Block
Free

Block
GC
c)计算速度变化的第二参考值V
REF02
:其中N1和N2为预先设定的参数;3)计算下一个时间段内的写入速度V
Target
:V
Target
=V
Current
+w1*V
REF01
+w2*V
REF02
其中w1和w2为预先设定的参数;4)计算下一个时间段内的速度最大值V
MaxNext1
;5)计算下一个时间段内的速度最大值V

【专利技术属性】
技术研发人员:杨柱李帅唐伟王腾腾王剑立付伟龙吉镇东董璊孙元春
申请(专利权)人:尧云科技西安有限公司
类型:发明
国别省市:

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

1