一种提高SSDQOS的IO闪避方法技术

技术编号:35924615 阅读:17 留言:0更新日期:2022-12-10 11:14
本发明专利技术公开一种提高SSD QOS的IO闪避方法,本方法将Nand不同特性引起的管理操作拆分为基本操作,基本操作包括读操作、写操作、擦除操作、虚读操作,将基本操作的读操作、写操作、擦除操作、虚读操作以及主机的读、写操作分别建立不同的请求队列,基本操作与主机的读写操作共同向调度单元提交请求,经过调度单元处理后输出到执行队列;从执行队列取出待执行队列请求并执行,执行完成对执行队列活跃IO数量进行减一操作。本发明专利技术使NAND管理命令与主机IO进行时间空间上的错行,达到减少IO latency,提高SSD QOS的目的。QOS的目的。QOS的目的。

【技术实现步骤摘要】
一种提高SSD QOS的IO闪避方法


[0001]本专利技术涉及闪存存储控制领域,具体是一种提高SSD QOS的IO闪避方法。

技术介绍

[0002]在SSD中使用的NAND FLASH存储介质因为其结构工艺等原因其有多种特性,如读干扰(read disturb)、数据驻留(data retension)、写干扰(prog disturb)、首次读(first read)等,这些特性需要固件对NAND进行定期或者条件触发的管理操作,如果这些对NAND的管理操作与主机下发的IO操作落在相同的lun上,就会增大主机的IO延迟,从而使SSD的QOS恶化。
[0003]QOS(quality of service)是指服务质量,对于SSD来说是IOPS及IO latency等的一个综合考量。

技术实现思路

[0004]本专利技术要解决的技术问题是提供一种提高SSD QOS的IO闪避方法,使NAND管理命令与主机IO进行时间空间上的错行,达到减少IO latency,提高SSD QOS的目的。
[0005]为了解决所述技术问题,本专利技术采用的技术方案是:一种提高SSD QOS的IO闪避方法,包括以下步骤:
[0006]S01)、将Nand不同特性引起的管理操作拆分为基本操作,基本操作包括读操作、写操作、擦除操作、虚读操作,将基本操作的读操作、写操作、擦除操作、虚读操作以及主机的读、写操作分别建立不同的请求队列,基本操作与主机的读写操作共同向调度单元提交请求,经过调度单元处理后输出到执行队列;
[0007]S02)、从执行队列取出待执行队列请求并执行,执行完成对执行队列活跃IO数量进行减一操作。
[0008]进一步的,请求到达调度单元后的处理为:
[0009]S31)、某类请求到达;
[0010]S32)、检查该类请求所属的请求队列是否为空;
[0011]S33)、如果为空,则查找最小P标签值,遍历其他活跃队列并对其他活跃队列的最新P标签进行校正,校正公式为:P
jr

=P
jr

(min P
tag

t)(1),P
jr
表示第j个请求队列的第r个请求的原来P标签值,P
jr

表示第j个请求队列的第r个请求的校正后的P标签值,P
tag
表示P标签值,t表示当前时间,对第j个请求队列的第r个请求从原来的P标签值减去最小P标签值与当前时间的差值,之后对该笔请求按照公式1进行tag赋值;
[0012]S34)、如果不为空,则对该笔请求直接按照以下公式进行tag赋值:
[0013]Rir=max{Ri

1r+1/ri,t},
[0014]Lir=max{Li

1r+1/li,t},
[0015]Pir=max{Pi

1r+1/wi,t},
[0016]其中Rir、Lir、Pir分别表示第i个请求队列的第r个请求的预留资源标签、权重标
签、上限标签,Ri

1r、Li

1r、Pi

1r分别表示第i

1个请求队列的第r个请求的预留资源标签、权重标签、上限标签,预留资源标签、权重标签、上限标签均是时间标签,ri、li、wi表示预留资源标签、权重标签、上限标签对应的时间间隔,t表示当前时间;
[0017]S35)、如果需要执行的IO大于或者等于执行队列深度,直接返回,反之则进行下一步;
[0018]S36)、判断是否有R标签值小于当前时间,如果有,则将R标签值最小的一笔请求加入执行队列,否则进行下一步;
[0019]S37)、如果有L标签值小于当前时间,再判断执行队列是否为空,再判断该请求的通道执行队列是否为满,如果不满则选取最小的P标签值请求加入执行队列并进行下一步,如果没有L标签值小于当前时间则直接返回;
[0020]S38)、对P标签相同来源的队列的R标签值进行更新,前移一个R时间间隔;
[0021]S39)、对执行队列数量进行加一操作。
[0022]进一步的,根据发生Nand管理操作的比例与主机读写操作之间的比例确定预留资源标签、上限标签以及权重标签,根据Nand处理不同类型IO的能力以及各项不同操作耗时确定ri、li、wi。
[0023]进一步的,执行队列按照通道进行区分。
[0024]本专利技术的有益效果:本专利技术设置上限标签确保某一类IO不会无限度的使用资源导致其他类型IO获取不到资源,预留资源标签确保该类命令在不长的时间内被执行,设置权重标签可以使不同类型命令排布更加均匀,根据标签值执行命令,确保快要超时的命令尽快执行,减少长尾产生。综合而言,本方法减少NAND管理命令与主机IO命令冲突,在不增加NAND错误发生的情况下,减少了IO长尾的产生,提升了服务质量和用户体验。
附图说明
[0025]图1为本专利技术的原理框图;
[0026]图2为请求到达后的处理流程图;
[0027]图3为根据标签进行调度的流程图;
[0028]图4为IO执行的流程图。
具体实施方式
[0029]下面结合附图和具体实施例对本专利技术做进一步的说明。
[0030]实施例1
[0031]本实施例公开一种提高SSD QOS的IO闪避方法,本方法使NAND管理命令与主机IO进行时间空间上的错行,达到减少IO latency,提高SSD QOS的目的。
[0032]Nand特性包括读干扰、数据驻留和刷新,下面对各特性进行详细介绍。
[0033]读干扰(read disturb)是指读取某个页(page)时会对该页(page)所在块的其他页控制级施加正电压,导致分布电压左移,读取错误比特数增加,该特性处理需要对块的读取次数进行计数,当达到阈值时,将该块的数据搬移到其他块上,新写入的块将重新进行读计数。该特性处理对应的Nand操作为Nand的读写擦。
[0034]数据驻留(data retention)是指Nand的数据保持能力,数据随着时间的增长,数
据会发生不可纠正的错误,而且块(BLOCK)的擦除次数越大,数据驻留能力会越弱,时间越长错误比特数越多,当错误比特数多到LDPC纠错算法不能纠正的时候就会影响到数据安全,所以固件需要巡检Nand块,检查数据写入时长,当时长达到阈值有LDPC纠错失败的风险时需要将该块的数据搬移到其他块上,新写入的块将重新计时。该特性处理对应的Nand操作为Nand的读写擦。
[0035]刷新(refresh)是指对nand进行的虚读(dummy读)操作,该操作不需要传输数据,旨在解决nand编程之后第一次读错误比特数比较多的情况,SSD固件需要定期对所有Nand块进行虚读(dummy读)。
[0036]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种提高SSD QOS的IO闪避方法,其特征在于:包括以下步骤:S01)、将Nand不同特性引起的管理操作拆分为基本操作,基本操作包括读操作、写操作、擦除操作、虚读操作,将基本操作的读操作、写操作、擦除操作、虚读操作以及主机的读、写操作分别建立不同的请求队列,基本操作与主机的读写操作共同向调度单元提交请求,经过调度单元处理后输出到执行队列;S02)、从执行队列取出待执行队列请求并执行,执行完成对执行队列活跃IO数量进行减一操作。2.根据权利要求1所述的提高SSD QOS的IO闪避方法,其特征在于:请求到达调度单元后的处理为:S31)、某类请求到达;S32)、检查该类请求所属的请求队列是否为空;S33)、如果为空,则查找最小P标签值,标签P记录资源上限时间戳,遍历其他活跃队列并对其他活跃队列的最新P标签进行校正,校正公式为:P
jr

=P
jr

(minP
tag

t)
ꢀꢀꢀ
(1),P
jr
表示第j个请求队列的第r个请求的原来P标签值,P
jr

表示第j个请求队列的第r个请求的校正后的P标签值,P
tag
表示P标签值,t表示当前时间,对第j个请求队列的第r个请求从原来的P标签值减去最小P标签值与当前时间的差值,之后对该笔请求按照公式1进行tag赋值;S34)、如果不为空,则对该笔请求直接按照以下公式进行tag赋值:Rir=max{Ri

1r+1/ri,...

【专利技术属性】
技术研发人员:郭泰高美洲孙大朋刘忞斋
申请(专利权)人:山东华芯半导体有限公司
类型:发明
国别省市:

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

1