存储控制方法、装置及电子设备与流程
未命名
09-29
阅读:54
评论:0

1.本技术涉及数据存储技术,特别涉及存储控制方法、装置及电子设备。
背景技术:
2.nand,一种flash存储介质,广泛应用于固态硬盘(ssd:solid state disk)等存储系统。在整个nand生命周期中,随着nand磨损的增加,nand的操作时序特性会发生较大的变化,特别是nand的擦除操作(erase)时间、编程操作(program)时间等参数。而这些参数的变化会影响nand中用于存储控制的flash传输层(ftl:flash translation layer)调度算法、flash控制器(controller)算法,进而会影响nand的存储。
技术实现要素:
3.本技术提供了存储控制方法、装置及电子设备,以实现动态优化存储系统的性能。
4.本技术实施例提供了一种存储控制方法,该方法包括:
5.监测存储系统中被划分的各虚拟块vblock对应的擦除操作erase耗时、编程操作program耗时;任一vblock包括至少一个物理block,任一vblock对应的erase耗时是基于该vblock中各物理block被执行擦除操作的耗时确定,任一vblock对应的program耗时是基于该vblock中各物理block被执行编程操作的耗时确定;
6.依据已监测到的vblock对应的erase耗时,调控存储系统中write buffer的write buffer释放速度,以在释放write buffer时按照所述write buffer释放速度释放待释放的write buffer;所述write buffer是指被分配给写命令write的buffer;
7.依据已监测到的vblock对应的erase耗时、program耗时,调控所述存储系统中各vblock对应的微码策略;所述微码策略至少包括:erase微码策略和program微码策略;所述微码策略被用于通过erase微码策略来调控对应的vblock中物理block待被执行的擦除操作,以及通过program微码策略来调控对应的vblock中物理block待被执行的编程操作。
8.本技术实施例提供了一种存储控制装置,该装置包括:
9.监测单元,用于监测存储系统中被划分的各虚拟块vblock对应的擦除操作erase耗时、编程操作program耗时;任一vblock包括至少一个物理block,任一vblock对应的erase耗时是基于该vblock中各物理block被执行擦除操作的耗时确定,任一vblock对应的program耗时是基于该vblock中各物理block被执行编程操作的耗时确定;
10.调控单元,用于依据已监测到的vblock对应的erase耗时,调控存储系统中write buffer的write buffer释放速度,以在释放write buffer时按照所述write buffer释放速度释放待释放的write buffer;所述write buffer是指被分配给写命令write的buffer;以及,
11.依据已监测到的vblock对应的erase耗时、program耗时,调控所述存储系统中各vblock对应的微码策略;所述微码策略至少包括:erase微码策略和program微码策略;所述微码策略被用于通过erase微码策略来调控对应的vblock中物理block待被执行的擦除操
作,以及通过program微码策略来调控对应的vblock中物理block待被执行的编程操作。
12.本技术实施例提供了一种电子设备,电子设备包括:处理器和存储器;
13.其中,所述存储器,用于存储机器可执行指令;
14.所述处理器,用于读取并执行所述存储器存储的机器可执行指令,以实现如上所述的方法。
15.由以上技术方案可以看出,本技术中,通过在线动态调控存储系统中write buffer的write buffer释放速度和存储系统中各vblock对应的微码策略,以便动态优化存储系统的性能,保证存储系统在整个生命周期都能达到较优的性能。
附图说明
16.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
17.图1为本技术实施例提供的方法流程图;
18.图2为本技术实施例提供的应用结构示意图;
19.图3为本技术实施例提供的另一应用结构示意图;
20.图4为本技术实施例提供的状态-擦除操作耗时/编程操作耗时示意图;
21.图5为本技术实施例提供的步骤101实现流程图;
22.图6为本技术实施例提供的步骤102实现流程图;
23.图7为本技术实施例提供的步骤103实现流程图;
24.图8为本技术实施例提供的装置结构图;
25.图9为本技术实施例提供的电子设备结构图。
具体实施方式
26.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
27.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
28.为了使本领域技术人员更好地理解本技术实施例提供的技术方案,并使本技术实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本技术实施例中技术方案作进一步详细的说明。
29.参见图1,图1为本技术实施例提供的方法流程图。作为一个实施例,该流程可应用于管理单元。可选地,这里的管理单元可通过硬件实现。
30.作为一个实施例,上述管理单元可部署在存储系统,其和存储系统中的cpu、以及存储介质通过系统总线比如ax总线连接。图2举例示出了该连接结构。
31.作为另一个实施例,上述管理单元还可独立于存储系统,比如可集成在独立于存储系统的电子设备,电子设备与存储系统相互通信,图3举例示出了该连接结构。
32.如图1所示,该流程可包括以下步骤:
33.步骤101,监测存储系统中被划分的各虚拟块(vblock)对应的擦除操作(erase)耗时、编程操作(program)耗时。
34.在本实施例中,vblock指存储系统被允许的最小并发执行单元。例如,存储系统以条带block(多个物理block组成一个条带block)为单位执行存储命令比如读命令(read)、写命令(write)、擦除操作、编程操作等,则vblock即为一个条带block。
35.在本实施例中,可通过对存储系统中的所有vblock的状态进行监测,来获得各vblock对应的擦除操作耗时、编程操作耗时。在本实施例中,各vblock对应的擦除操作耗时、编程操作耗时主要受上述状态的影响,这里“状态”主要指program/erase循环次数(pe:program/erase cycle)和存储系统比如nand质量(不同物理block的质量可能不同,有强弱之分)影响,图4举例示出该影响。
36.在本实施例中,vblock对应的erase耗时是基于该vblock中各物理block被执行擦除操作的耗时确定;vblock对应的program耗时是基于该vblock中各物理block被执行编程操作的耗时确定。下文会举例描述如何监测vblock对应的erase耗时、program耗时,这里暂不赘述。
37.在本实施例中,监测存储系统中vblock的状态可在每次有vblock执行erase或program时,即可更新erase或program的耗时;或者,当vblock发生变化时,例如vblock上的某个物理block变为坏块后,根据坏块映射算法将另一个好的物理block补充到该vblock中,需要更新该vblock的状态,在后续该vblock执行erase或program时,即可更新erase或program的耗时。
38.步骤102,依据已监测到的vblock对应的erase耗时,调控存储系统中write buffer的write buffer释放速度,以在释放write buffer时按照write buffer释放速度释放待释放的write buffer;所述write buffer是指被分配给写命令write的buffer。
39.在具体应用中,对于写命令(也即主机写命令host write)而言,充足的write buffer(被分配给写命令的buffer)有利于使存储系统获得更好的延时性能。基于此,本步骤102对write buffer释放速度进行动态控制,以防止write buffer耗尽,提升延时性能。
40.具体地,在本实施例中,在对write buffer释放速度进行动态控制时,需要考虑erase耗时的影响,尤其是当erase耗时较长时,nand资源被erase占住,write buffer资源无法及时恢复,则需要降低write buffer的释放速度。因此,erase耗时是write buffer释放速度的一个影响因素。比如,erase耗时为10ms,则write buffer的释放速度要保证至少10ms内write buffer不会耗尽。下文会通过一个具体实施例描述如何依据已监测到的vblock对应的erase耗时,调控存储系统中write buffer的write buffer释放速度,这里暂不赘述。
41.步骤103,依据已监测到的vblock对应的erase耗时、program耗时,调控存储系统中各vblock对应的微码策略;微码策略至少包括:erase微码策略和program微码策略;微码策略被用于通过erase微码策略来调控对应的vblock中物理block待被执行的擦除操作,以及通过program微码策略来调控对应的vblock中物理block待被执行的编程操作。
42.在本实施例中,flash控制器可以通过控制erase和program的暂停正在执行的命令的机制(suspend)/重启某个被暂停的命令的机制(resume)来调控存储系统比如nand存
储器件的性能。suspend/resume在具体实现时,可采用算法将一个耗时较长的操作(如erase)分割为多个耗时相对较短的子操作,这些子操作之间可以执行相比该子操作更加紧急的命令,从而降低了紧急命令的时延。
43.可选地,上述算法可通过“微码”即微指令实现。对于待被分割的操作比如erase,基于其被设定的延时指标,需要设计合适的微码控制suspend/resume操作的时间点。该微码中可包含时间参数,该时间参数与erase耗时和program耗时相关。比如,若erase耗时为10ms,为保证延时性能,通过微码suspend功能将该erase切分为5个子命令,每个子命令执行2ms;若erase耗时为11ms,为保证延时性能,通过微码suspend功能将该erase切分为6个子命令,前5段每段2ms,最后一段1ms。依次类推,不再一一举例。
44.基于此,如步骤103描述,本步骤103需要依据已监测到的vblock对应的erase耗时、program耗时,调控存储系统中各vblock对应的微码策略。下文会举例描述如何实现,这里不再赘述。
45.至此,完成图1所示流程。
46.通过图1所示流程可以看出,本实施例中,通过在线动态调控存储系统中write buffer的write buffer释放速度和存储系统中各vblock对应的微码策略,以便动态优化存储系统的性能,保证存储系统在整个生命周期都能达到较优的性能。
47.下面对上述步骤101进行描述:
48.作为一个实施例,上述步骤101在具体实现时有多种实现方式,图5举例示出了步骤101的其中一个实现方式:
49.参见图5,图5为本技术实施例提供的步骤101的一个实施方式流程图。如图5所示,该流程可包括以下步骤:
50.步骤501,针对每一vblock,获得该vblock中各物理block的erase耗时、program耗时。
51.作为一个实施例,获得该vblock中各物理block的erase耗时、program耗时有很多实现方式,比如,预先构建erase耗时与物理block状态(pe、物理block强弱程度)之间的函数关系即erase耗时函数:t
erase
=f1(block_state);以及,预先构建program耗时与物理block状态(pe、物理block强弱程度)之间的函数关系即program耗时函数:t
program
=f2(block_state)。在构建完成的情况下,只需要监测vblock中每一物理block的pe次数(物理block的pe次数是指物理block被执行擦除操作的次数),将该pe次数输入预先构建的上述erase耗时函数,得到该物理block的erase耗时。同样,将上述pe次数输入预先构建的上述program耗时函数,得到该物理block的program耗时。
52.再比如,也可不构建上述erase耗时函数和program耗时函数,而是直接在运行过程中统计物理block被执行erase和program的实际耗时。比如,针对每一物理block,依据该物理block在指定历史时间段内被执行擦除操作的实际耗时确定该物理block的erase耗时,以及,依据该物理block在指定历史时间段内被执行编程操作的实际耗时确定该物理block的program耗时。
53.步骤502,从该vblock中各物理block的erase耗时中选择其中一个erase耗时,将该选择出的erase耗时作为该vblock对应的erase耗时;从该vblock中各物理block的program耗时中选择其中一个program耗时,将该选择出的program耗时作为该vblock对应
的program耗时。
54.可选地,本实施例中,任一vblock对应的erase耗时是该vblock中各物理block的erase耗时中取值最大的erase耗时;同样,任一vblock对应的program耗时是该vblock中各物理block的program耗时中取值最大的program耗时。
55.至此,完成图5所示流程。
56.通过图5所示流程,实现了步骤101中如何监测存储系统中被划分的各虚拟块vblock对应的擦除操作erase耗时、编程操作program耗时。
57.下面对步骤102中如何依据已监测到的vblock对应的erase耗时,调控存储系统中write buffer的write buffer释放速度进行描述:
58.参见图6,图6为本技术实施例提供的步骤102实现流程图。如图6所示,该流程可包括:
59.步骤601,获得目标erase耗时;所述目标erase耗时是指已监测到的各vblock对应的erase耗时中取值最大的erase耗时(其考虑到所有vblock的状态,有更大的灵活性),或者是目标vblock对应的erase耗时;所述目标vblock包含当前执行擦除操作的物理vblock。
60.步骤602,依据目标erase耗时、以及当前待释放的write buffer的数量,调控存储系统中write buffer的write buffer释放速度。
61.作为一个实施例,本步骤602中,依据目标erase耗时、以及当前待释放的write buffer的数量,调控存储系统中write buffer的write buffer释放速度可包括:
62.按照下式调控存储系统中write buffer的write buffer释放速度:
63.v=write_buffer_cnt/t;其中,v表示调控后的write buffer释放速度,write_buffer_cnt表示当前待释放的write buffer的数量,t表示目标erase耗时。
64.通过调整write buffer释放速度,能够保证在释放write buffer时,保证t时间内write buffer不会耗尽。
65.至此,完成图6所示流程。
66.通过图6所示流程实现了步骤102中如何依据已监测到的vblock对应的erase耗时,调控存储系统中write buffer的write buffer释放速度。
67.下面对步骤103中如何依据已监测到的vblock对应的erase耗时、program耗时,调控所述存储系统中各vblock对应的微码策略进行描述:
68.参见图7,图7为本技术实施例提供的步骤103实现流程图。如图7所示,该流程可包括以下步骤:
69.步骤701,计算第一erase耗时和第二erase耗时的erase耗时差;第一erase耗时是指已监测到的各vblock对应的erase耗时中取值最大的erase耗时,第二erase耗时是指已监测到的各vblock对应的erase耗时中取值最小的erase耗时。
70.步骤702,计算第一program耗时和第二program耗时的program耗时差;所述第一program耗时是指已监测到的各vblock对应的program耗时中取值最大的program耗时,所述第二program耗时是指已监测到的各vblock对应的program耗时中取值最小的program耗时。
71.步骤703,依据所述erase耗时差和所述program耗时差,调控所述存储系统中各vblock对应的微码策略。
72.作为一个实施例,本步骤703中依据所述erase耗时差和所述program耗时差,调控所述存储系统中各vblock对应的微码策略可包括:
73.若所述erase耗时差小于设定erase耗时阈值,则按照预设的不显著增加erase微码策略的原则,增加erase微码策略并新配置给至少一个vblock;否则,按照预设的允许配置erase微码策略的最大数量,增加erase微码策略并新配置给至少一个vblock;所述erase微码策略至少包括擦除操作的暂停suspend策略和重启resume策略;
74.若所述program耗时差小于设定program耗时阈值,则按照预设的不显著增加program微码策略的原则,增加program微码策略并新配置给至少一个vblock;否则,按照预设的允许配置program微码策略的最大数量,增加program微码策略并新配置给至少一个vblock;所述program微码策略至少包括编程操作的suspend策略和resume策略。
75.在上面描述中,预设的不显著增加erase微码策略其可根据实际需求设置,对应地,不显著增加erase微码策略的原则下增加erase微码策略也可实际需求设置,比如,总时长为10ms的erase在不显著增加erase微码策略的原则下可能会增加如下多种erase微码策略,例如分成四个子操作,每个子操作为3ms(也即erase微码策略3+3+2+2),或者分成四个子操作,前三个子操作为3ms,最后一个子操作为1m(也即erase微码策略3+3+3+1),等等,本实施例并不具体限定。
76.同样,上述允许配置erase微码策略的最大数量也根据实际需求设置,比如微码策略最多有n个,在此前提下,如果当前erase微码策略的数量小于n,则可进一步补充erase微码策略,比如上述的erase微码策略3+3+3+1等等,本实施例并不具体限定。program微码策略类似erase微码策略,不再赘述。
77.至此,完成图7所示流程。
78.通过图7所示流程实现了如何依据已监测到的vblock对应的erase耗时、program耗时,调控所述存储系统中各vblock对应的微码策略。
79.以上对本技术实施例提供的方法进行了描述,下面对本技术实施例提供的装置进行描述:
80.参见图8,图8为本技术实施例提供的装置结构图。该装置包括:
81.监测单元,用于监测存储系统中被划分的各虚拟块vblock对应的擦除操作erase耗时、编程操作program耗时;任一vblock包括至少一个物理block,任一vblock对应的erase耗时是基于该vblock中各物理block被执行擦除操作的耗时确定,任一vblock对应的program耗时是基于该vblock中各物理block被执行编程操作的耗时确定;
82.调控单元,用于依据已监测到的vblock对应的erase耗时,调控存储系统中write buffer的write buffer释放速度,以在释放write buffer时按照所述write buffer释放速度释放待释放的write buffer;所述write buffer是指被分配给写命令write的buffer;以及,
83.依据已监测到的vblock对应的erase耗时、program耗时,调控所述存储系统中各vblock对应的微码策略;所述微码策略至少包括:erase微码策略和program微码策略;所述微码策略被用于通过erase微码策略来调控对应的vblock中物理block待被执行的擦除操作,以及通过program微码策略来调控对应的vblock中物理block待被执行的编程操作。
84.可选地,监测存储系统中被划分的各虚拟块vblock对应的擦除操作erase耗时、编
程操作program耗时包括:
85.针对每一vblock,获得该vblock中各物理block的erase耗时、program耗时;从该vblock中各物理block的erase耗时中选择其中一个erase耗时,将该选择出的erase耗时作为该vblock对应的erase耗时;从该vblock中各物理block的program耗时中选择其中一个program耗时,将该选择出的program耗时作为该vblock对应的program耗时。
86.可选地,所述获得该vblock中各物理block的erase耗时、program耗时包括:针对每一物理block,获得该物理block的pe次数;物理block的pe次数是指物理block被执行擦除操作的次数;将所述pe次数输入预先构建的erase耗时函数,得到该物理block的erase耗时;将所述pe次数输入预先构建的program耗时函数,得到该物理block的program耗时;或者,针对每一物理block,依据该物理block在指定历史时间段内被执行擦除操作的实际耗时确定该物理block的erase耗时,以及,依据该物理block在指定历史时间段内被执行编程操作的实际耗时确定该物理block的program耗时。
87.可选地,任一vblock对应的erase耗时是该vblock中各物理block的erase耗时中取值最大的erase耗时;任一vblock对应的program耗时是该vblock中各物理block的program耗时中取值最大的program耗时。
88.可选地,依据已监测到的vblock对应的erase耗时,调控存储系统中write buffer的write buffer释放速度包括:获得目标erase耗时;所述目标erase耗时是指已监测到的各vblock对应的erase耗时中取值最大的erase耗时,或者是目标vblock对应的erase耗时;所述目标vblock包含当前执行擦除操作的物理vblock;依据目标erase耗时、以及当前待释放的write buffer的数量,调控存储系统中write buffer的write buffer释放速度。
89.可选地,所述依据目标erase耗时、以及当前待释放的write buffer的数量,调控存储系统中write buffer的write buffer释放速度包括:按照下式调控存储系统中write buffer的write buffer释放速度:v=write_buffer_cnt/t;其中,v表示调控后的write buffer释放速度,write_buffer_cnt表示当前待释放的write buffer的数量,t表示目标erase耗时。
90.可选地,所述依据已监测到的vblock对应的erase耗时、program耗时,调控所述存储系统中各vblock对应的微码策略包括:计算第一erase耗时和第二erase耗时的erase耗时差;所述第一erase耗时是指已监测到的各vblock对应的erase耗时中取值最大的erase耗时,所述第二erase耗时是指已监测到的各vblock对应的erase耗时中取值最小的erase耗时;计算第一program耗时和第二program耗时的program耗时差;所述第一program耗时是指已监测到的各vblock对应的program耗时中取值最大的program耗时,所述第二program耗时是指已监测到的各vblock对应的program耗时中取值最小的program耗时;依据所述erase耗时差和所述program耗时差,调控所述存储系统中各vblock对应的微码策略。
91.可选地,依据所述erase耗时差和所述program耗时差,调控所述存储系统中各vblock对应的微码策略包括:若所述erase耗时差小于设定erase耗时阈值,则按照预设的不显著增加erase微码策略的原则,增加erase微码策略并新配置给至少一个vblock;否则,按照预设的允许配置erase微码策略的最大数量,增加erase微码策略并新配置给至少一个vblock;所述erase微码策略至少包括擦除操作的暂停suspend策略和重启resume策略;若
所述program耗时差小于设定program耗时阈值,则按照预设的不显著增加program微码策略的原则,增加program微码策略并新配置给至少一个vblock;否则,按照预设的允许配置program微码策略的最大数量,增加program微码策略并新配置给至少一个vblock;所述program微码策略至少包括编程操作的suspend策略和resume策略。
92.可选地,所述装置应用于所述存储系统新部署的管理单元;所述管理单元和所述存储系统中的cpu、以及存储介质通过系统总线连接;或者,所述装置独立于所述存储系统,所述装置与所述存储系统相互通信。
93.基于与上述方法同样的申请构思,本技术还提供了图8所示装置的硬件结构图,具体如图9所示,该电子设备包括:处理器和机器可读存储介质;
94.其中,所述机器可读存储介质,用于存储机器可执行指令;
95.所述处理器,用于读取并执行所述机器可读存储介质存储的机器可执行指令,实现本技术上述示例公开的方法。
96.本技术实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本技术上述示例公开的方法。
97.示例性的,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radom access memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
98.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机处理单元或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
99.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
100.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
101.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
102.而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设
备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
103.这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
104.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
技术特征:
1.一种存储控制方法,其特征在于,该方法包括:监测存储系统中被划分的各虚拟块vblock对应的擦除操作erase耗时、编程操作program耗时;任一vblock包括至少一个物理block,任一vblock对应的erase耗时是基于该vblock中各物理block被执行擦除操作的耗时确定,任一vblock对应的program耗时是基于该vblock中各物理block被执行编程操作的耗时确定;依据已监测到的vblock对应的erase耗时,调控存储系统中write buffer的write buffer释放速度,以在释放write buffer时按照所述write buffer释放速度释放待释放的write buffer;所述write buffer是指被分配给写命令write的buffer;依据已监测到的vblock对应的erase耗时、program耗时,调控所述存储系统中各vblock对应的微码策略;所述微码策略至少包括:erase微码策略和program微码策略;所述微码策略被用于通过erase微码策略来调控对应的vblock中物理block待被执行的擦除操作,以及通过program微码策略来调控对应的vblock中物理block待被执行的编程操作。2.根据权利要求1所述的方法,其特征在于,监测存储系统中被划分的各虚拟块vblock对应的擦除操作erase耗时、编程操作program耗时包括:针对每一vblock,获得该vblock中各物理block的erase耗时、program耗时;从该vblock中各物理block的erase耗时中选择其中一个erase耗时,将该选择出的erase耗时作为该vblock对应的erase耗时;从该vblock中各物理block的program耗时中选择其中一个program耗时,将该选择出的program耗时作为该vblock对应的program耗时。3.根据权利要求2所述的方法,其特征在于,所述获得该vblock中各物理block的erase耗时、program耗时包括:针对每一物理block,获得该物理block的pe次数;物理block的pe次数是指物理block被执行擦除操作的次数;将所述pe次数输入预先构建的erase耗时函数,得到该物理block的erase耗时;将所述pe次数输入预先构建的program耗时函数,得到该物理block的program耗时;或者,针对每一物理block,依据该物理block在指定历史时间段内被执行擦除操作的实际耗时确定该物理block的erase耗时,以及,依据该物理block在指定历史时间段内被执行编程操作的实际耗时确定该物理block的program耗时。4.根据权利要求2或3所述的方法,其特征在于,任一vblock对应的erase耗时是该vblock中各物理block的erase耗时中取值最大的erase耗时;任一vblock对应的program耗时是该vblock中各物理block的program耗时中取值最大的program耗时。5.根据权利要求1所述的方法,其特征在于,依据已监测到的vblock对应的erase耗时,调控存储系统中write buffer的write buffer释放速度包括:获得目标erase耗时;所述目标erase耗时是指已监测到的各vblock对应的erase耗时中取值最大的erase耗时,或者是目标vblock对应的erase耗时;所述目标vblock包含当前执行擦除操作的物理vblock;依据目标erase耗时、以及当前待释放的write buffer的数量,调控存储系统中write buffer的write buffer释放速度。
6.根据权利要求5所述的方法,其特征在于,所述依据目标erase耗时、以及当前待释放的write buffer的数量,调控存储系统中write buffer的write buffer释放速度包括:按照下式调控存储系统中write buffer的write buffer释放速度:v=write_buffer_cnt/t;其中,v表示调控后的write buffer释放速度,write_buffer_cnt表示当前待释放的write buffer的数量,t表示目标erase耗时。7.根据权利要求1所述的方法,其特征在于,所述依据已监测到的vblock对应的erase耗时、program耗时,调控所述存储系统中各vblock对应的微码策略包括:计算第一erase耗时和第二erase耗时的erase耗时差;所述第一erase耗时是指已监测到的各vblock对应的erase耗时中取值最大的erase耗时,所述第二erase耗时是指已监测到的各vblock对应的erase耗时中取值最小的erase耗时;计算第一program耗时和第二program耗时的program耗时差;所述第一program耗时是指已监测到的各vblock对应的program耗时中取值最大的program耗时,所述第二program耗时是指已监测到的各vblock对应的program耗时中取值最小的program耗时;依据所述erase耗时差和所述program耗时差,调控所述存储系统中各vblock对应的微码策略。8.根据权利要求7所述的方法,其特征在于,依据所述erase耗时差和所述program耗时差,调控所述存储系统中各vblock对应的微码策略包括:若所述erase耗时差小于设定erase耗时阈值,则按照预设的不显著增加erase微码策略的原则,增加erase微码策略并新配置给至少一个vblock;否则,按照预设的允许配置erase微码策略的最大数量,增加erase微码策略并新配置给至少一个vblock;所述erase微码策略至少包括擦除操作的暂停suspend策略和重启resume策略;若所述program耗时差小于设定program耗时阈值,则按照预设的不显著增加program微码策略的原则,增加program微码策略并新配置给至少一个vblock;否则,按照预设的允许配置program微码策略的最大数量,增加program微码策略并新配置给至少一个vblock;所述program微码策略至少包括编程操作的suspend策略和resume策略。9.根据权利要求1至8任一所述的方法,其特征在于,该方法应用于所述存储系统新部署的管理单元;所述管理单元和所述存储系统中的cpu、以及存储介质通过系统总线连接;或者,该方法应用于独立于所述存储系统的电子设备,所述电子设备与所述存储系统相互通信。10.一种存储控制装置,其特征在于,该装置包括:监测单元,用于监测存储系统中被划分的各虚拟块vblock对应的擦除操作erase耗时、编程操作program耗时;任一vblock包括至少一个物理block,任一vblock对应的erase耗时是基于该vblock中各物理block被执行擦除操作的耗时确定,任一vblock对应的program耗时是基于该vblock中各物理block被执行编程操作的耗时确定;调控单元,用于依据已监测到的vblock对应的erase耗时,调控存储系统中write buffer的write buffer释放速度,以在释放write buffer时按照所述write buffer释放速度释放待释放的write buffer;所述write buffer是指被分配给写命令write的buffer;以及,
依据已监测到的vblock对应的erase耗时、program耗时,调控所述存储系统中各vblock对应的微码策略;所述微码策略至少包括:erase微码策略和program微码策略;所述微码策略被用于通过erase微码策略来调控对应的vblock中物理block待被执行的擦除操作,以及通过program微码策略来调控对应的vblock中物理block待被执行的编程操作。11.根据权利要求10所述的装置,其特征在于,监测存储系统中被划分的各虚拟块vblock对应的擦除操作erase耗时、编程操作program耗时包括:针对每一vblock,获得该vblock中各物理block的erase耗时、program耗时;从该vblock中各物理block的erase耗时中选择其中一个erase耗时,将该选择出的erase耗时作为该vblock对应的erase耗时;从该vblock中各物理block的program耗时中选择其中一个program耗时,将该选择出的program耗时作为该vblock对应的program耗时;所述获得该vblock中各物理block的erase耗时、program耗时包括:针对每一物理block,获得该物理block的pe次数;物理block的pe次数是指物理block被执行擦除操作的次数;将所述pe次数输入预先构建的erase耗时函数,得到该物理block的erase耗时;将所述pe次数输入预先构建的program耗时函数,得到该物理block的program耗时;或者,针对每一物理block,依据该物理block在指定历史时间段内被执行擦除操作的实际耗时确定该物理block的erase耗时,以及,依据该物理block在指定历史时间段内被执行编程操作的实际耗时确定该物理block的program耗时;任一vblock对应的erase耗时是该vblock中各物理block的erase耗时中取值最大的erase耗时;任一vblock对应的program耗时是该vblock中各物理block的program耗时中取值最大的program耗时;依据已监测到的vblock对应的erase耗时,调控存储系统中write buffer的write buffer释放速度包括:获得目标erase耗时;所述目标erase耗时是指已监测到的各vblock对应的erase耗时中取值最大的erase耗时,或者是目标vblock对应的erase耗时;所述目标vblock包含当前执行擦除操作的物理vblock;依据目标erase耗时、以及当前待释放的write buffer的数量,调控存储系统中write buffer的write buffer释放速度;所述依据目标erase耗时、以及当前待释放的write buffer的数量,调控存储系统中write buffer的write buffer释放速度包括:按照下式调控存储系统中write buffer的write buffer释放速度:v=write_buffer_cnt/t;其中,v表示调控后的write buffer释放速度,write_buffer_cnt表示当前待释放的write buffer的数量,t表示目标erase耗时;所述依据已监测到的vblock对应的erase耗时、program耗时,调控所述存储系统中各vblock对应的微码策略包括:计算第一erase耗时和第二erase耗时的erase耗时差;所述第一erase耗时是指已监测到的各vblock对应的erase耗时中取值最大的erase耗时,所述第二erase耗时是指已监测到的各vblock对应的erase耗时中取值最小的erase耗时;计算第一program耗时和第二program耗时的program耗时差;所述第一program耗时是指已监测到的各vblock对应的program耗时中取值最大的program耗时,所述第二program耗时是指已监测到的各vblock对应的program耗时中取值最小的program耗时;依据所述erase耗时差和所述program耗时差,调控所述存储系统中各vblock对应的微码策略;依据所述erase耗时差和所述program耗时差,调控所述存储系统中各vblock对应的微码策略包括:若所述erase耗时差小于设定erase耗时阈值,则按照预设的不显著增加erase
微码策略的原则,增加erase微码策略并新配置给至少一个vblock;否则,按照预设的允许配置erase微码策略的最大数量,增加erase微码策略并新配置给至少一个vblock;所述erase微码策略至少包括擦除操作的暂停suspend策略和重启resume策略;若所述program耗时差小于设定program耗时阈值,则按照预设的不显著增加program微码策略的原则,增加program微码策略并新配置给至少一个vblock;否则,按照预设的允许配置program微码策略的最大数量,增加program微码策略并新配置给至少一个vblock;所述program微码策略至少包括编程操作的suspend策略和resume策略;所述装置应用于所述存储系统新部署的管理单元;所述管理单元和所述存储系统中的cpu、以及存储介质通过系统总线连接;或者,所述装置独立于所述存储系统,所述装置与所述存储系统相互通信。12.一种电子设备,其特征在于,电子设备包括:处理器和机器可读存储介质;其中,所述机器可读存储介质,用于存储机器可执行指令;所述处理器,用于读取并执行所述机器可读存储介质存储的机器可执行指令,以实现如权利要求1至9任一项所述的方法。
技术总结
本申请提供了存储控制方法、装置及电子设备。本申请实施例通过在线动态调控存储系统中write buffer的write buffer释放速度和存储系统中各vblock对应的微码策略,以便动态优化存储系统的性能,保证存储系统在整个生命周期都能达到较优的性能。都能达到较优的性能。都能达到较优的性能。
技术研发人员:冯星 霍文捷 刘璨 万婷 张航
受保护的技术使用者:杭州海康存储科技有限公司
技术研发日:2023.06.30
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/