一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

控制命令完成速率的系统和方法与流程

2022-02-25 23:34:38 来源:中国专利 TAG:


1.本公开的实施例涉及一种在存储器系统中处理命令的方案。


背景技术:

2.计算机环境范例已经转变为可以随时随地使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用迅速增加。这些便携式电子装置通常使用具有存储器装置的存储器系统,即数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
3.因为使用存储器装置的存储器系统没有移动部件,所以它们具有优异的稳定性、耐久性、高信息访问速度和低功耗。具有这种优点的存储器系统的示例包括通用串行总线(usb)存储器装置、具有诸如通用闪存(ufs)的各种接口的存储卡以及固态驱动器(ssd)。存储器系统从主机接收与存储器装置相关联的命令,并且在存储器装置上处理命令。


技术实现要素:

4.本发明的各方面包括一种基于吞吐量积分来控制命令随时间的完成通知率的系统和方法。
5.在一个方面,一种数据处理系统包括主机以及存储器系统,该存储器系统包括控制器和存储器装置。控制器从主机接收待在存储器装置上处理的命令请求;处理命令请求;基于吞吐量积分、设置的最大积分以及多个完成通知的数量,确定与命令请求相关联的多个完成通知之中的、待在第一时间间隔内传输到主机的第一数量的完成通知;以及在第一时间间隔内,将第一数量的完成通知传输到主机,并且在第一时间间隔之后的第二时间间隔内,将多个完成通知之中的第二数量的完成通知传输到主机。
6.在另一个方面,一种操作数据处理系统的方法,该数据处理系统包括主机以及存储器系统,该存储器系统包括控制器和存储器装置。该方法包括:从主机接收待在存储器装置上处理的命令请求;处理命令请求;基于吞吐量积分、设置的最大积分以及多个完成通知的数量,确定与命令请求相关联的多个完成通知之中的、待在第一时间间隔内传输到主机的第一数量的完成通知;以及在第一时间间隔内,将第一数量的完成通知传输到主机,并且在第一时间间隔后的第二时间间隔内,将多个完成通知之中的第二数量的完成通知传输到主机。
7.通过以下描述,本发明的其它方面将变得显而易见。
附图说明
8.图1是示出根据本发明的实施例的数据处理系统的示图。
9.图2示出根据本发明的实施例的主机与存储器系统之间的操作流程。
10.图3示出根据本发明的实施例的具有完成速率控制组件的存储器系统中命令延迟和队列占用的影响。
11.图4示出根据本发明的实施例的完成速率控制组件的操作。
12.图5是示出根据本发明的实施例的完成速率控制组件的示图。
13.图6是示出根据本发明的实施例的包括组完成速率控制组件的控制器的示图。
14.图7是示出根据本发明的实施例的组完成速率控制组件的示图。
15.图8是示出根据本发明的实施例的命令处理操作的流程图。
具体实施方式
16.下面参照附图更详细地描述各个实施例。然而,本发明可以以不同的形式实现,因此不应被解释为限于本文中阐述的实施例。相反,提供这些实施例使得本公开是彻底和完全的,并将本发明的范围充分地传达给本领域技术人员。此外,本文中对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这样的短语的不同参考不一定针对相同的实施例。在整个公开中,相同的附图标记在本发明的附图和实施例中指代相同的部分。
17.本发明可以以多种方式来实施,包括作为进程;设备;系统;在计算机可读存储介质上实现的计算机程序产品;和/或处理器,例如适于运行联接到处理器的存储器上存储的和/或由该存储器提供的指令的处理器。在本说明书中,这些实施方案或本发明可以采用的任何其它形式可以被称为技术。通常,可以在本发明的范围内改变所公开的进程的步骤的顺序。除非另有说明,否则被描述为适于执行任务的诸如处理器或存储器的组件可以被实施为临时被配置为在给定时间执行任务的通用组件或被制造为执行该任务的特定组件。如本文中所使用的,术语“处理器”等是指一个或多个装置、电路和/或适于处理诸如计算机程序指令的数据的处理内核。
18.以下连同示出本发明的各方面的附图提供了对本发明的实施例的详细描述。结合这些实施例描述了本发明,但是本发明不限于任何实施例。本发明的范围仅受权利要求限制。本发明涵盖权利要求的范围内的许多替代、修改和等同形式。下面的描述中阐述了许多具体细节,以便提供对本发明的全面理解。提供这些细节仅出于示例的目的;可以根据权利要求,在没有这些具体细节中的一些或全部的情况下实践本发明。为了清楚起见,并未详细描述与本发明有关的技术领域中已知的技术材料,以免不必要地模糊本发明。
19.通常,存储器系统(例如,企业ssd)的性能指标包括每秒兆字节(mb/s)或每秒输入和输出(io)操作(iop)的吞吐量,以及诸如平均或约多九延迟曲线(multi-nines latency profile)的延迟。多九延迟曲线代表在这种九部分中的最坏的命令完成时间(例如,99%、99.9%),这一般被称为服务质量(qos)测量。
20.对于企业ssd,重要的是,以mb/s和iop两者为单位的吞吐量指标随时间的推移而一致地保持在已知范围内。在一个已知的定义中,对于随时间收集的固定数量的吞吐量测量样本,吞吐量的一致性被定义为{throughput
worst at n-nines
/throughput
average
}。当n=3时,throughput
worst at n-nines
代表第99.9最坏吞吐量值。throughput
average
代表所有吞吐量样本的平均值。当n=3时,可以使用4kb wr qos
n-nine
来代表整个4kb块大小写入命令延迟中的、第99.9最坏的4kb块大小写入命令延迟。典型地,qos中的n覆盖2、3、4、...、9中的一个。
21.存储器系统可以包括可操作地并联联接的存储器装置,诸如nand闪速存储器。由于并行架构,存储器装置的命令处理完成(例如,与读取命令或写入命令相关联的数据读取
操作或数据写入操作)经常是突发性质的。这意为在某个时间段内完成的命令明显多于在任何其它时间段内完成的命令。在这种情况下,存储器系统的性能指标不一致。因此,期望提供一种能够提供一致的性能指标(即,吞吐量或延迟)的方案,该方案基于吞吐量积分来控制命令随时间的完成通知率。以下,术语“cbrc”表示基于积分的速率控制。根据实施例,作为指标,存储器系统(例如,ssd)到主机的输出实现了随时间推移而保持一致的吞吐量以及高度的qos延迟。
22.图1是示出根据本发明的实施例的数据处理系统的示图。
23.参照图1,数据处理系统可以包括主机5、控制器100和存储器装置200。控制器100和存储器装置200可以配置存储器系统10。例如,控制器100和存储器装置200可以包括本文中未示出的存储器系统10的各个组件。在示出的实施例中,存储器系统10可以利用高速非易失性存储器(nvme)ssd来实施,并且存储器装置200可以利用多个并联的存储器来实施,例如,利用并联的k个nand闪速存储器461至469来实施。nand闪速存储器(例如,nand管芯)461至469通过一个或多个通道联接到控制器100。虽然以下在nvme ssd的背境下描述了本发明的各特征和各方面,但是本领域技术人员将理解的是,本发明也可以应用于其它类型的ssd和其它存储器系统。
24.主机5可以经由预定义的io命令队列结构与存储器系统10交换命令请求和完成。例如,主机5包括被配对为io命令队列的提交队列(sq)52和完成队列(cq)54。根据诸如控制器100中的cpu内核的数量、操作系统(os)和存储装置(即,存储器装置)io配置的配置,主机5可以包括sq和cq对。提交队列52可以存储与存储器装置200的操作相关联的、被提交给控制器100的命令请求。完成队列54可以从控制器100接收命令请求的完成通知,即指示各个命令请求已经完成的数据条目,并存储接收到的完成通知。因此,当相应的完成数据放入完成队列54中时,主机5识别命令请求中的每一个的完成。响应于完成数据被传递到完成队列54,主机5将新的命令放入提交队列52中,以保持预定数量的命令,供存储器系统10处理。
25.控制器100可以包括主机接口(i/f)140、存储器接口(i/f)150、命令处理组件410和完成速率控制组件420。这些组件410、420可以利用控制组件的内部组件(例如,软件(sw))来实施。可选地,这些组件410、420可以利用硬件(hw)组件来实施。尽管在图1中未示出,但是控制器100和存储器装置200可以包括存储器系统10的各个其它组件。
26.主机接口140可以从主机5接收命令请求。例如,命令请求可以与对存储器装置200的操作(例如,读取操作、写入操作或擦除操作)相关联。命令处理组件410可以处理命令请求,以对存储器装置200执行命令请求。在命令请求完成之后,控制器100需要将与命令请求的完成相关联的多个完成传输到主机5。
27.图2示出根据本发明的实施例的主机5与存储器系统(例如,nvme ssd)10之间的操作流程。
28.参照图2,主机5可以在sq 52中最多放入与sq 52的队列深度相对应的预定数量的命令。在识别出sq 52中的命令的数量增加之后,ssd 10从sq 52提取命令,并且将所提取的命令放入前端(即,主机接口(i/f)侧)命令高速缓存或缓冲器和/或后端(即,nand i/f侧)命令队列。根据命令(例如,写入命令)的特性,可以在完成对nand管芯200的nand i/f侧处理之前,向主机5传输命令完成。
29.通常,主机5的处理时间比ssd 10的处理时间快,并且sq 52的占用水平应保持在
由队列深度定义的最大水平。然而,如图3的(620a)所示,由于ssd的突发性内部完成(即,命令的运行),sq占用水平可能意外下降。例如,如图3的(610a)所示,当完成突发性操作时,例如完成对管芯的多个页面的一组写入命令时,sq占用率在时间间隔ti期间下降至其最低水平。这种突然下降对ssd 10的命令延迟产生了负面影响,如图3的(610a)所示。换句话说,图3示出在时间间隔ti内的完成数量(即,(#compl'n)/ti)和ssd 10的命令延迟变化太大。
30.实施例提供了一种方案,如图3的(620b)所示,该方案能够通过在不牺牲目标吞吐量的情况下随时间重新分配突发性完成,而使占用水平尽可能平坦(或扩散)。因此,如图3的(610b)所示,实施例最小化或减小了命令延迟的变化。
31.重新参照图1,完成速率控制组件420可以控制向主机5发出突发性操作的完成通知的速率,以保证随时间推移而保持一致。在图4的示出示例中,当存在与命令请求相关联的多个突发性完成(710)时,完成速率控制组件420可以针对多个突发操作随时间扩散传递完成通知。作为示例,在没有任何限制的情况下,完成速率控制组件420在多个时间间隔(例如,两个时间间隔ti(i)、ti(i 1))内扩散多个完成通知。根据多个完成的数量和目标吞吐量,通知扩散的时间间隔的数量可以大于2。为此,完成速率控制组件420可以确定待在第一时间间隔ti(i)内传输的第一数量的完成通知和待在第二时间间隔ti(i 1)内传输的第二数量的完成通知。此后,完成速率控制组件420可以将在第一时间间隔ti(i)内的第一数量的完成通知传输到主机5,并将在第一时间间隔ti(i)之后的第二时间间隔ti(i 1)内的第二数量的完成通知传输到主机5。
32.在一些实施例中,完成速率控制组件420可以基于吞吐量积分来控制向主机5通知多个完成中的每一个的速率。完成速率控制组件420可以执行算法以控制每个预定时间间隔(ti,单位为秒)内的完成通知的数量(io中的cmpl
t
),即基于积分的速率控制(cbrc)算法。最终,完成通知的平均传输率(或每秒io或iop的吞吐量)应保持为cmpl
t
×
t/ti(iop)。类似地,如果优选固定的cmpl
t
,则可以调整ti以实现预期的传输率。
33.在每个ti处,当多个命令完成时,完成速率控制组件420可以将与特定积分credit=cmpl
t
=credit
t
相对应的完成通知传输到主机5。在相对较长的时间段,即在比ti长的时间段内,根据目标吞吐量动态地调整credit
t
。在每个ti处,如果没有命令完成的通知提供到主机5,则完成速率控制组件420可以将待在下一个时间间隔使用的积分确定为等式:credit=2
×
creditti。
34.重新参照图2,每个命令在缓冲器和队列中经历多个缓冲阶段,直到该命令被运行并且排队以通知完成。在多个队列阶段中,最后的阶段包括速率计量队列(rmq),对于rmq,基于积分credit
t
来执行cbrc算法。cbrc算法类似于高速公路匝道计量系统,该系统用于在交通繁忙时限制进入高速公路的交通(或车辆)以避免交通拥堵。间隔ti类似于绿灯定义的间隔,每个间隔代表固定的持续时间。积分credit
t
是在间隔ti内待发送到主机的完成通知的数量。当在特定时间间隔内没有通知发送到主机时,则可以将该时间段内允许发送的通知数量记入下一个时间间隔,以补偿先前时间间隔内的吞吐量不足,从而保持整体吞吐量。
35.在一些实施例中,可以针对不同的工作负载保持多个rmq。例如,多个rmq包括读取命令的rmq和写入命令的rmq。为了更好地控制,读取rmq和写入rmq中的每一个中的命令可以被分为随机命令的rmq和顺序命令的rmq,或者根据块大小而包括组rmq。每个rmq可以具有自己的参数以实现不同的目标吞吐量水平。
36.图5是示出根据本发明的实施例的完成速率控制组件420的示图。
37.参照图5,完成速率控制组件420可以包括速率计量队列(rmq)422、积分管理器424和交换机426。尽管在图5中未示出,但是完成速率控制组件420可以包括提供用于速率控制的时间间隔(ti)的计时器。速率计量队列422可以存储(或排队)与已处理的命令请求相关联的多个完成。交换机426可以将针对多个完成之中的一个或多个完成的吞吐量积分的请求发送到积分管理器424。当存在足够的积分时,积分管理器424可以许可交换机426的积分请求。在接收到许可之后,交换机426可以将速率计量队列422中的相应完成通知传输到主机5。
38.积分管理器424可以管理吞吐量积分,并且基于吞吐量积分来确定是否许可来自交换机426的积分请求。可以基于以下列表中列出的积分控制配置来管理吞吐量积分:列表1至列表3
39.列表1:
[0040][0041]
参照列表1,如果在当前时间间隔rmq 422中没有完成条目,则积分管理器424将下一个时间间隔的吞吐量积分确定为当前时间间隔的吞吐量积分与设置的积分的总和(credit=credit credit
t
)。如果在当前时间间隔rmq 422中存在完成条目,则积分管理器424确定完成的第一数量,该第一数量对应于当前吞吐量积分(credit)、设置的最大积分(creditmax_t)和rmq 422中的完成通知(#compl entries in rmq)的数量中的最低值。因此,交换机426将第一数量的完成传输到主机5(send#compl to host)。进一步地,积分管理器424通过从当前时间间隔的吞吐量积分与设置的积分的总和中减去所传输的完成通知的数量,来确定下一个时间间隔的吞吐量积分(credit=credit

(#cmds compl) credit
t
)。此外,积分管理器424更新多个完成通知占用rmq 422的时间的平均量(update rmq_occupancy_average)。在图3的(620b)所示的示例中,突发性完成的吞吐量积分可以被确定为(credit=3
×
credit),而正常完成的吞吐量积分可以被确定为(credit=1)。列表1的操作可以在每个时间间隔ti处执行。
[0042]
列表2:
[0043][0044]
参照列表2,积分管理器424将rmq 422中的多个完成通知的平均占用时间(rmq_occupancy_average)与设置的目标上限占用时间(rmq_occupancy_target_upper)或设置的目标下限占用时间(rmq_occupancy_target_lower)进行比较。如果平均占用时间(rmq_occupancy_average)大于设置的目标上限占用时间(rmq_occupancy_target_upper),则积分管理器424确定将增加吞吐量以增加设置的积分(credit
t
)。如果平均占用时间(rmq_occupancy_average)小于设置的目标下限占用时间(rmq_occupancy_target_lower),则积分管理器424确定将减小吞吐量以减小设置的积分(credit
t
)。列表2的操作可以在每个调整时间间隔t
ai
(其中t
ai
大于ti)处执行。
[0045]
列表3:
[0046][0047]
参照列表3,积分管理器424响应于指示需要增加吞吐量的每个事件,确定将增加吞吐量以增加设置的积分(credit
t
)。积分管理器424响应于指示需要减小吞吐量的每个事件,确定将减小吞吐量以减小设置的积分(credit
t
--
)。
[0048]
图6是示出根据本发明的实施例的包括组完成速率控制组件420a的控制器100的示图。组完成速率控制组件420a替换图1的完成速率控制组件420。
[0049]
参照图6,组完成速率控制组件420a可以包括多个完成速率控制组件。每个完成速率控制组件可以提供相应的延迟(或吞吐量)特性,因此组完成速率控制组件420a可以提供不同的延迟特性。换句话说,每个完成速率控制组件可以根据相应的完成速率控制组件的延迟特性,将经延迟的完成通知提供到主机5的完成队列。
[0050]
图7是示出根据本发明的实施例的组完成速率控制组件420a的示图。
[0051]
参照图7,组完成速率控制组件420a可以利用串联在多个层(例如,n个层layer0至layer(n-1))中的多个完成速率控制组件(例如,cbrc组件)来实施。每层可以包括m个cbrc组件。在示出的示例中,第一层layer0中的两个cbrc组件(cbrc[0][0]、cbrc[0][1])由第二层layer1中的cbrc组件(cbrc[1][0])共享。每个cbrc组件可以接收完成通知,并且基于相应的吞吐量积分处理这些通知,以输出经延迟的完成通知。
[0052]
图8是示出根据本发明的实施例的命令处理操作800的流程图。命令处理操作800可以由图1中的控制器100的组件410和420执行。
[0053]
参照图8,在步骤810,控制器100可以从主机接收待在存储器装置上处理的命令请求。在步骤820,控制器100可以处理命令请求。
[0054]
在步骤830,控制器100可以基于吞吐量积分,确定与命令请求相关联的多个完成通知之中的、待在第一时间间隔内传输的第一数量的完成通知。在一些实施例中,完成通知的第一数量被确定为吞吐量积分、设置的最大积分和多个完成通知的数量之中的最低值。
[0055]
在一些实施例中,基于命令请求的处理、第一数量的完成通知和第二数量的完成通知的传输,将吞吐量积分调整设置的积分量。例如,响应于命令请求的处理,使吞吐量积分增加设置的积分量。又例如,响应于第一数量的完成通知和第二数量的完成通知中的每一个的传输,使吞吐量积分减小设置的积分量。
[0056]
在一些实施例中,基于多个完成通知的平均占用时间来调整设置的积分。例如,当平均占用时间大于设置的目标上限占用率时,增加设置的积分。又例如,当平均占用时间小于设置的目标下限占用率时,减小设置的积分。
[0057]
在一些实施例中,响应于吞吐量增加事件而增加设置的积分,并且响应于吞吐量减小事件而减小设置的积分。
[0058]
在步骤840,控制器100可以将在第一时间间隔内的第一数量的完成通知传输到主机,并将在第一时间间隔之后的第二时间间隔内的第二数量的完成通知传输到主机。
[0059]
如上所述,实施例提供了一种基于吞吐量积分来控制命令随时间的完成通知率的方案,并因此提供了一致的性能指标(即,吞吐量或延迟)。
[0060]
尽管出于清楚和理解的目的已经详细地示出和描述了前述实施例,但是本发明不限于所提供的细节。如本领域技术人员根据前述公开内容将理解的,存在许多实施本发明的替代方式。因此,所公开的实施例是说明性的,而非限制性的。本发明旨在涵盖落入权利要求范围内的所有修改方案和替代方案。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献