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

控制器及其操作方法与流程

2022-12-09 23:14:10 来源:中国专利 TAG:

控制器及其操作方法
1.相关申请的交叉引用
2.本技术要求于2021年6月9日提交的申请号为10-2021-0074697的韩国专利申请的优先权,该韩国专利申请的公开内容通过引用整体并入本文。
技术领域
3.本公开的各个实施例涉及一种控制器及其操作方法。


背景技术:

4.计算机环境范例已经转变为能够随时随地使用计算系统的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统以存储数据。存储器系统可以用作便携式电子装置的主存储器装置或辅助存储器装置。
5.由于存储器系统不具有移动部件,因此它们提供诸如出色的稳定性和耐用性、较高的信息访问速度和较低的功耗的优点。具有这种优点的存储器系统的示例包括通用串行总线(usb)存储器装置、具有各种接口的存储卡以及固态驱动器(ssd)。


技术实现要素:

6.本公开的各个实施例涉及一种能够在保持存储器系统的i/o性能的同时执行内部操作的控制器以及该控制器的操作方法。
7.根据本公开的实施例,一种控制存储器装置的控制器包括:主机接口,适用于:在基于主机与控制器之间输入/输出的数据确定的数据吞吐量低于当前工作负载模式下所需的最大吞吐量时,确定剩余资源指数并且输出任务调度指令;以及处理器,适用于:响应于任务调度指令,基于剩余资源指数和各个内部任务的资源消耗指数,选择多个内部任务中的至少一个,并且在执行输入/输出任务的同时执行所选择的内部任务。
8.处理器可以通过以下方式来选择至少一个内部任务:确定多个内部任务之中的每个的资源消耗指数等于或小于剩余资源指数的内部任务候选,并且在内部任务候选之中选择在当前工作负载模式下具有最高优先级的内部任务作为至少一个内部任务。
9.处理器可以通过以下方式来选择至少一个内部任务:基于所选择的内部任务的资源消耗指数来改变剩余资源指数,并且当改变后的剩余资源指数大于“0”时,在内部任务候选之中选择另一内部任务作为至少一个内部任务。
10.处理器可以进一步适用于:当多个内部任务之中不存在每个的资源消耗指数等于或小于剩余资源指数的内部任务时,向主机接口提供完成响应。
11.主机接口可以进一步适用于:当处理器执行所选择的内部任务时监测数据吞吐量,并且当数据吞吐量保持不变时,向处理器提供用于重复进行选择的任务调度指令。
12.主机接口可以进一步适用于:当处理器执行所选择的内部任务时监测数据吞吐量,并且当数据吞吐量减少时,向处理器提供任务取消指令。处理器可以进一步适用于:响
应于任务取消指令而取消最新选择的内部任务。
13.主机接口可以进一步适用于:当检测到当前工作负载模式改变时,向处理器提供任务重置指令。处理器可以进一步适用于:响应于任务重置指令而取消所有选择的内部任务。
14.控制器可以进一步包括存储器,该存储器适用于:存储多个内部任务中的每一个的资源消耗指数和针对每个工作负载模式的多个内部任务中的每一个的优先级。
15.主机接口可以基于数据吞吐量和最大吞吐量的比率来确定剩余资源指数。
16.主机接口可以基于每个单位时间量输入/输出的数据量来确定数据吞吐量。
17.根据本公开的实施例,一种控制存储器装置的控制器的操作方法,包括:基于在主机与控制器之间输入/输出的数据来确定数据吞吐量;当所确定的数据吞吐量低于当前工作负载模式下所需的最大吞吐量时,确定剩余资源指数;基于剩余资源指数和各个内部任务的资源消耗指数来选择多个内部任务中的至少一个;并且在执行输入/输出任务的同时执行所选择的内部任务。
18.选择至少一个内部任务可以包括:确定多个内部任务之中的每个的资源消耗指数等于或小于剩余资源指数的内部任务候选,并且在内部任务候选之中选择在当前工作负载模式下具有最高优先级的内部任务作为至少一个内部任务。
19.选择至少一个内部任务进一步可以包括:基于所选择的内部任务的资源消耗指数来改变剩余资源指数,并且当改变后的剩余资源指数大于“0”时,在内部任务候选之中选择另一内部任务作为至少一个内部任务。
20.执行选择直到在多个内部任务之中不存在每个的资源消耗指数等于或小于剩余资源指数的内部任务。
21.该操作方法可以进一步包括:当执行所选择的内部任务时监测数据吞吐量;并且当数据吞吐量保持不变时,重复选择至少一个内部任务。
22.该操作方法可以进一步包括:当执行所选择的内部任务时,监测数据吞吐量;当数据吞吐量减少时,取消最新选择的内部任务。
23.该操作方法可以进一步包括:当检测到当前工作负载模式改变时,取消所有选择的内部任务。
24.该操作方法可以进一步包括:在存储器中存储多个内部任务中的每一个的资源消耗指数和针对每个工作负载模式的多个内部任务中的每一个的优先级。
25.基于数据吞吐量与最大吞吐量的比率来确定剩余资源指数。
26.基于每个单位时间量输入/输出的数据量来确定数据吞吐量。
27.根据本公开的实施例,一种控制器的操作方法,包括:根据数据吞吐量测量为输入/输出(io)任务分配的io资源,该io资源属于有限的总资源;在执行io任务的同时,在总资源的剩余资源的预算内根据优先级来选择一个或多个内部任务;并且在执行io任务的同时,通过将剩余资源的至少一部分分配给所选择的内部任务中的每一个来执行所选择的内部任务。io任务是控制存储器装置执行数据io操作,并且内部任务是控制存储器装置执行内部操作。
附图说明
28.图1是示意性地示出根据本公开的实施例的包括存储器系统的数据处理系统的示例的示图。
29.图2是示出根据本公开的实施例的控制器的示图。
30.图3是详细示出根据本公开的实施例的控制器的操作的示图。
31.图4是示出根据本公开的实施例的内部任务表的示例的示图。
32.图5a和图5b是示出根据本公开的实施例的主机接口与处理器之间的事务的示图。
33.图6是示出根据本公开的实施例的处理器的操作的示图。
具体实施方式
34.在下文中,将参照附图详细描述本公开的各个实施例。
35.然而,本公开不限于下面公开的实施例,并且可以以各种其它形式实施。提供所公开的实施例是为了使本公开完整并且使本领域技术人员能够充分理解本公开的范围。
36.图1是示出根据本发明的实施例的数据处理系统100的框图。
37.参照图1,数据处理系统100可以包括可操作地联接到存储器系统110的主机102。
38.主机102可以包括诸如移动电话、mp3播放器和膝上型计算机的各种便携式电子装置中的任意一种,或包括诸如台式计算机、游戏机、电视(tv)和投影仪的各种非便携式电子装置中的任意一种。
39.主机102可以包括至少一个操作系统(os),该os可以管理和控制主机102的全部功能和操作,并且提供主机102与使用数据处理系统100或存储器系统110的用户之间的操作。os可以支持与用户的使用、目的和用途相对应的功能和操作。例如,根据主机102的移动性,os可以被划分为通用os和移动os。根据用户的环境,通用os可以被划分为个人os和企业os。
40.存储器系统110可以响应于主机102的请求来为主机102存储数据。存储器系统110的非限制性示例可以包括固态驱动器(ssd)、多媒体卡(mmc)、安全数字(sd)卡、通用串行总线(usb)装置、通用闪速存储(ufs)装置、紧凑型闪存(cf)卡、智能媒体卡(smc)、个人计算机存储卡国际协会(pcmcia)卡和记忆棒。mmc可以包括嵌入式mmc(emmc)、缩小尺寸的mmc(rs-mmc)和微型mmc等。sd卡可以包括迷你sd卡和微型sd卡。
41.存储器系统110可以由各种类型的存储装置实现。此类存储装置的示例可以包括但不限于诸如动态随机存取存储器(dram)和静态ram(sram)的易失性存储器装置,以及诸如以下的非易失性存储器装置:只读存储器(rom)、掩模rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、铁电ram(fram)、相变ram(pram)、磁阻式ram(mram)、电阻式ram(rram或reram)和闪速存储器。闪速存储器可以具有3维(3d)堆叠结构。
42.存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以为主机102存储数据,并且控制器130可以控制到存储器装置150中的数据存储。
43.控制器130和存储器装置150可以集成到单个半导体装置中。例如,控制器130和存储器装置150可以集成为一个半导体装置以构成固态驱动器(ssd)。当存储器系统110用作ssd时,可以提高连接到存储器系统110的主机102的操作速度。另外,控制器130和存储器装置150可以集成为一个半导体装置以构成存储卡。例如,控制器130和存储器装置150可以构
成诸如以下的存储卡:个人计算机存储卡国际协会(pcmcia)卡,紧凑型闪存(cf)卡,智能媒体(sm)卡,记忆棒,包括缩小尺寸的mmc(rs-mmc)和微型mmc的多媒体卡(mmc),包括迷你sd卡、微型sd卡和sdhc卡的安全数字(sd)卡,或通用闪存(ufs)装置。
44.存储器系统110的非限制性应用示例可以包括:计算机、超级移动pc(umpc)、工作站、上网本、个人数字助理(pda)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(pmp)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(dmb)播放器、3维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储器装置、能够在无线环境中传输/接收信息的装置、构成家庭网络的各种电子装置中的一种、构成计算机网络的各种电子装置中的一种、构成远程信息处理网络的各种电子装置中的一种、射频识别(rfid)装置或构成计算系统的各种组件中的一种。
45.存储器装置150可以是非易失性存储器装置,并且即使不供电也可以保留其中存储的数据。存储器装置150可以通过编程操作来存储主机102提供的数据,并且通过读取操作来向主机102提供其中存储的数据。存储器装置150可以包括多个存储块152、154、156
……
,多个存储块中的每一个可以包括多个页面,并且多个页面中的每一个可以包括联接到字线的多个存储器单元。在实施例中,存储器装置150可以是闪速存储器。闪速存储器可以具有3维(3d)堆叠结构。
46.存储器装置150可以包括多个存储块,多个存储块可以包括存储1位数据的单层单元(slc)存储块和/或存储多位数据的多层单元(mlc)存储块。slc存储块可以包括通过在一个存储器单元中存储一位数据的存储器单元实现的多个页面。slc存储块可以具有较快的数据操作性能和较高的耐用性。另一方面,mlc存储块可以包括通过在一个存储器单元中存储多位数据,例如两位或更多位的数据的存储器单元实现的多个页面。mlc存储块可以具有比slc存储块更大的数据存储空间。换言之,mlc存储块可以高度集成。
47.控制器130可以响应于主机102的请求而控制存储器装置150。例如,控制器130可以向主机102提供从存储器装置150中读取的数据,并且将从主机102提供的数据存储在存储器装置150中。对于该操作,控制器130可以控制存储器装置150的诸如读取操作、编程操作和擦除操作的数据输入/输出(io)操作。在下文中,由控制器130执行以控制存储器装置150的数据io操作的操作被称为io任务。
48.控制器130可以执行用于管理存储器系统110的各种内部任务。例如,内部任务可以包括诸如垃圾收集(gc)操作、损耗均衡(wl)操作、映射刷新操作和坏块管理操作的后台任务。
49.控制器130可以通过使用内部资源来执行io任务和内部任务。当以存储器系统110中定义的预定最大吞吐量执行数据io操作时,控制器130的大部分内部资源可以用于执行io任务。
50.在一些情况下,可以以比预定最大吞吐量更低的吞吐量执行数据io操作。例如,可以根据主机102如何设置存储器系统110的命令队列的队列深度,以比预定最大吞吐量更低的吞吐量执行数据io操作。队列深度可以指可以在命令队列中排队的命令的最大数量。当以比最大吞吐量更低的吞吐量执行数据io操作时,内部资源可以额外针对内部任务保持可用。
51.根据实施例,控制器130可以通过在执行io任务的同时使用剩余内部资源执行内部任务来有效地利用内部资源。
52.控制器130可以监测由于存储器系统110的数据io操作而产生的数据吞吐量,并且分析工作负载模式。工作负载模式可以包括诸如读取模式和写入模式的数据io的类型以及诸如顺序模式和随机模式的数据属性。当由于当前数据io操作而产生的数据吞吐量低于当前工作负载模式下所需的最大吞吐量时,控制器130可以基于由于当前数据io操作而产生的数据吞吐量和当前工作负载模式下所需的最大吞吐量来确定控制器130的剩余内部资源。在执行io任务的同时,控制器130可以通过使用剩余内部资源来额外地执行内部任务。具体地,控制器130可以从可以使用剩余内部资源执行的内部任务之中选择在当前工作负载模式下具有最高优先级的内部任务,并且额外地执行所选择的内部任务。
53.参照图2至图6详细描述根据本实施例的控制器130。
54.图2是示出根据本公开的实施例的控制器130的示图。
55.图2的控制器130可以对应于参照图1描述的控制器130。控制器130可以包括全部经由内部总线可操作地联接的主机接口(i/f)132、处理器134、错误校正码(ecc)组件138、存储器接口(i/f)142和存储器144。
56.主机i/f 132可以被配置为处理主机102的命令和数据,并且可以通过诸如以下的各种通信标准或接口中的一个或多个来与主机102通信:通用串行总线(usb)、多媒体卡(mmc)、高速外围组件互连(pci-e或pcie)、小型计算机系统接口(scsi)、串列scsi(sas)、串行高级技术附件(sata)、并行高级技术附件(pata)、增强型小型磁盘接口(esdi)和电子集成驱动器(ide)。
57.主机i/f 132可以驱动被称为主机接口层(hil)的固件以与主机交换数据。
58.ecc组件138可以检测并校正从存储器装置150读取的数据中包含的错误。换言之,ecc组件138可以通过在ecc编码过程中使用的ecc值对从存储器装置150读取的数据执行错误校正解码过程。根据错误校正解码过程的结果,ecc组件138可以输出信号,例如错误校正成功/失败信号。当错误位的数量大于可校正的错误位的阈值时,ecc组件138可以不校正错误位,并且可以输出错误校正失败信号。
59.ecc组件138可以通过诸如以下的编码调制来执行错误校正:低密度奇偶校验(ldpc)码、博斯-查德胡里-霍昆格姆(bose-chaudhri-hocquenghem,bch)码、涡轮码、里德-所罗门(reed-solomon)码、卷积码、递归系统码(rsc)、网格编码调制(tcm)和分组编码调制(bcm)。然而,ecc组件138不限于任何特定结构。ecc组件138可以包括用于错误校正的所有电路、模块、系统或装置。
60.存储器i/f 142可以用作用于将控制器130和存储器装置150接口连接的存储器/存储接口,使得控制器130响应于来自主机102的请求而控制存储器装置150。当存储器装置150是闪速存储器或者具体地是nand闪速存储器时,存储器i/f 142可以生成针对存储器装置150的控制信号并且在处理器134的控制下处理待提供给存储器装置150的数据。存储器i/f 142可以充当用于处理控制器130与存储器装置150之间的命令和数据的接口(例如,nand闪存接口)。具体地,存储器i/f 142可以支持控制器130与存储器装置150之间的数据传送。
61.存储器i/f 142可以驱动被称为闪存接口层(fil)的固件以与存储器装置150交换
数据。
62.存储器144可以用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可以响应于来自主机102的请求而控制存储器装置150执行读取操作、编程操作和擦除操作。控制器130可以向主机102提供从存储器装置150读取的数据,并且可以将从主机102提供的数据存储到存储器装置150中。存储器144可以存储控制器130和存储器装置150执行这些操作所需的数据。
63.存储器144可以通过易失性存储器来实施。例如,存储器144通过静态随机存取存储器(sram)或动态随机存取存储器(dram)来实施。存储器144可以设置在控制器130之内或控制器130之外。图2示出设置在控制器130内部的存储器144。在实施例中,存储器144可以被实现为外部易失性存储器装置,并且存储器144可以具有用于将数据输入到控制器130和从控制器130输出数据的存储器接口。
64.如上所述,存储器144可以存储执行主机与存储器装置150之间的数据写入/读取操作所需的数据和在执行数据写入/读取操作时的数据。为了存储这些数据,存储器144可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
65.处理器134可以控制存储器系统110的全部操作。处理器134可以驱动固件以控制存储器系统110的全部操作。固件可以称为闪存转换层(ftl)。而且,处理器134可以被实现为微处理器或中央处理单元(cpu)。
66.处理器134可以驱动闪存转换层(ftl)并且执行与从主机102接收的请求相对应的数据io操作。例如,处理器134可以响应于来自主机102的写入请求而控制存储器装置150的写入操作,并且响应于来自主机102的读取请求来控制存储器装置150的读取操作。
67.而且,控制器130可以通过处理器134对存储器装置150执行后台操作,该处理器134被实现为微处理器或中央处理单元(cpu)。
68.图3是详细示出根据本公开的实施例的控制器130的操作的示图。
69.图3示出控制器130的组件之中的主机接口(i/f)132、处理器134和存储器144。主机i/f 132、处理器134和存储器144对应于参照图2描述的那些。
70.主机i/f 132可以包括吞吐量监测器322和工作负载模式分析器324。
71.吞吐量监测器322可以监测由于存储器系统110的数据io操作而产生的数据吞吐量。例如,吞吐量监测器322可以监测从主机102输入的写入数据量和输出到主机102的读取数据量。吞吐量监测器322可以基于每单位时间量的写入数据量和每单位时间量的读取数据量来确定由于数据io操作而产生的数据吞吐量。
72.工作负载模式分析器324可以基于吞吐量监测器322监测到的写入数据量和读取数据量来确定工作负载模式。工作负载模式的类型可以包括顺序读取模式、顺序写入模式、随机读取模式和随机写入模式。存储器系统110所需的最大吞吐量可以根据工作负载模式而变化。
73.工作负载模式分析器324可以确定从吞吐量监测器322获得的由于当前数据io操作而产生的数据吞吐量是否低于当前工作负载模式下所需的最大吞吐量。当由于当前数据io操作而产生的数据吞吐量低于当前工作负载模式下所需的最大吞吐量时,控制器130中可以剩余内部资源。控制器130可以使用剩余内部资源来执行内部任务。
74.工作负载模式分析器324可以确定控制器130的剩余资源指数。剩余资源指数是可以粗略表示控制器130的剩余内部资源的指数,剩余资源指数可以基于由于当前数据io操作而产生的数据吞吐量和当前工作负载模式下所需的最大吞吐量来确定。例如,当由于当前数据io操作而产生的数据吞吐量对应于当前工作负载模式下所需的最大吞吐量的70%时,可以剩余与控制器130的总内部资源的大约30%相对应的内部资源。控制器130的内部资源总量可以表示为预定常数,例如“10”。当由于当前数据io操作而产生的数据吞吐量对应于当前工作负载模式下所需的最大吞吐量的70%时,可以确定剩余资源指数为与“10”的30%相对应的“3”。
75.根据实施方案,吞吐量监测器322可以被实施为控制器芯片上的硬件,并且工作负载模式分析器324可以被实施为加载到存储器144中并且在主机i/f 132中驱动的固件。然而,本公开不限于此。
76.处理器134可以包括任务调度器342。任务调度器342可以基于工作负载模式的改变和由于数据io操作而产生的数据吞吐量的改变来选择要在执行io任务的同时执行的内部任务,或者取消所选择的内部任务。例如,任务调度器342可以从工作负载模式分析器324获得关于当前工作负载模式和剩余内部资源的信息。任务调度器342可以确定额外地执行可以使用剩余内部资源执行的内部任务之中的在当前工作负载模式下具有高优先级的内部任务。
77.被实施为固件的任务调度器342可以加载到存储器144中并且在处理器134中驱动,但本公开不限于此。
78.存储器144可以存储内部任务表362。控制器130可以执行各种类型的内部任务。内部任务表362可以包括针对每个内部任务的资源消耗指数和优先级。内部任务的资源消耗指数是可以粗略地表示在控制器130执行内部任务时内部任务预期消耗的内部资源量的指数。内部任务表362可以存储在存储器装置150中,并且在存储器系统110启动时加载到存储器144中。
79.图4是示出根据本公开的实施例的内部任务表362的示例的示图。
80.内部任务表362的行表示各个内部任务task1到task6。内部任务表362的列表示资源消耗指数和针对内部任务task1到task6的根据每个工作负载模式(“seq.read”、“seq.write”、“rnd.read”和“rnd.write”)的优先级(“高”、“中”和“低”)。
81.内部任务的资源消耗指数可以基于在执行该内部任务时针对该内部任务预计消耗的内部资源量来确定。当控制器130的内部资源总量为“10”并且在执行特定内部任务时针对该特定内部任务预计消耗内部资源总量的20%时,可以确定特定内部任务的资源消耗指数为与“10”的20%相对应的“2”。
82.任务调度器342可以基于剩余资源指数和每个内部任务的资源消耗指数来选择待额外地执行的内部任务。例如,当剩余资源指数为“3”时,可以选择资源消耗指数为“3”或更少的内部任务中的至少一个。
83.当存在资源消耗指数小于或等于当前剩余资源指数的若干内部任务时,可以首先选择优先级更高的内部任务。在图4中,针对每个工作负载模式的每个内部任务的优先级被指示为“高”、“中”和“低”中的一个。每个内部任务的优先级可以根据工作负载模式而变化。针对每个工作负载模式的每个内部任务的优先级可以根据策略预先确定。
84.作为第一示例,当工作负载模式是随机写入模式(“rnd.write”)时,垃圾收集任务可以具有最高优先级。在执行随机写入操作的同时,作为处于擦除状态的存储块的空闲块的数量可能会减少。当在执行随机写入模式下的io任务的同时额外地执行垃圾收集任务时,可以缓解空闲块数量的减少。当空闲块数量的减少得到缓解时,可以防止由于在执行写入操作的同时过度执行垃圾收集任务而导致写入操作的吞吐量降低。
85.作为第二示例,当工作负载模式是顺序读取模式(“seq.read”)或随机读取模式(“rnd.read”)时,读取回收任务可以具有最高优先级。为了保持存储块中存储的数据的可靠性,读取回收任务可以包括用于在将数据加载到存储器144中的同时校正数据的错误并且将经错误校正的数据编程到另一个存储块中的子任务。当在执行读取操作的同时执行读取回收任务时,可以保持待读取的数据的可靠性。
86.作为第三示例,当工作负载模式是顺序写入模式(“seq.write”)时,迁移任务可以具有最高优先级。控制器130可以优先将从主机102接收的写入数据编程到存储器装置150的slc存储块中,然后将经编程的写入数据迁移并编程到mlc存储块中,以向主机102提供较高的顺序写入性能。迁移任务可以包括将经编程的写入数据迁移并编程到mlc存储块中的操作。当控制器130具有剩余内部资源时,控制器130可以在执行顺序写入操作的同时执行迁移任务。
87.根据实施例,当由于当前数据io操作而产生的数据吞吐量低于当前工作负载模式下所需的最大吞吐量时,控制器130可以通过使用控制器130的剩余内部资源来与io任务一起额外地执行内部任务。例如,控制器130可以额外地执行内部任务,该内部任务可以在控制器130的剩余内部资源下执行并且在当前工作负载模式下具有最高优先级。
88.在下文中,参照图5a、图5b和图6详细描述了由控制器130选择要在执行io任务的同时额外地执行的内部任务的方法。
89.图5a是示出根据本公开的实施例的主机i/f 132与处理器134之间的用于执行任务调度的事务的示图。
90.在操作s502中,主机i/f 132可以检测由于当前数据io操作而产生的数据吞吐量低于当前工作负载模式下所需的最大吞吐量的状态。
91.在操作s504中,主机i/f 132可以基于由于当前数据io操作而产生的数据吞吐量和当前工作负载模式下所需的最大吞吐量来确定剩余资源指数。
92.在操作s506中,主机i/f 132可以向处理器134提供任务调度指令。任务调度指令可以指代指示处理器134选择要在执行当前io任务的同时额外地执行的内部任务的命令。主机i/f 132可以向处理器134提供剩余资源指数和工作负载模式信息以及任务调度指令。
93.在操作s508中,处理器134可以响应于任务调度指令,在执行当前io任务的同时选择待执行的内部任务。处理器134可以从待由控制器130执行的各种类型的内部任务之中选择一个或多个内部任务。下面参照图6描述处理器134选择内部任务的方法的示例。
94.当完成内部任务的选择时,在操作s510中,处理器134可以向主机i/f 132提供响应并且在执行io任务的同时执行所选择的内部任务。
95.响应于该响应,当处理器134执行所选择的内部任务以及io任务时,主机i/f 132可以监测处理器134的性能。当即使控制器130执行选择的内部任务以及io任务控制器130仍然具有剩余内部资源时,可以保持由于数据io操作而产生的数据吞吐量。操作s512、
s514、s516和s518表示当保持由于数据io操作而产生的数据吞吐量时的操作。
96.在操作s512中,主机i/f 132可以检测在执行所选择的内部任务的同时保持由于数据io操作而产生的数据吞吐量的状态。当由于数据io操作而产生的数据吞吐量仍然保持不变时,控制器130中仍然会剩余内部资源。当控制器130可以使用剩余内部资源执行更进一步的内部任务时,可以更有效地使用控制器130的资源。
97.在操作s514中,主机i/f 132可以向处理器134提供任务调度指令以指示处理器134进一步添加内部任务。
98.在操作s516中,响应于任务调度指令,处理器134可以进一步添加待在执行当前io任务的同时执行的内部任务。
99.在操作s518中,处理器134可以向主机i/f 132提供对任务调度指令的响应。
100.主机i/f 132可以响应于该响应而监测由于存储器系统110的数据io操作而产生的数据吞吐量。
101.当控制器130过度使用内部资源来执行内部任务时,用于io任务的内部资源会减少,并且由于数据io操作而产生的数据吞吐量会下降。操作s520、s522、s524和s526表示在数据io操作产生的数据吞吐量下降时的操作。
102.在操作s520中,主机i/f 132可以检测在添加内部任务之后由于数据io操作而产生的数据吞吐量下降的状态。当数据io性能下降时,控制器130可以通过取消所添加的内部任务来恢复由于数据io操作而产生的数据吞吐量。
103.在操作s522中,主机i/f 132可以向处理器134提供任务取消指令。
104.在操作s524中,处理器134可以响应于任务取消指令而取消最新添加的内部任务。当取消至少一些内部任务时,控制器130的资源消耗会减少,从而可以恢复由于数据io操作而产生的数据吞吐量。
105.在操作s526中,处理器134可以向主机i/f 132提供对任务取消指令的响应。
106.根据从主机102提供的命令,数据io的类型和数据属性可以变化,并且工作负载模式可以改变。随着工作负载模式的改变,在改变后的工作负载模式下所需的最大吞吐量也可以改变,并且内部任务的优先级也可以改变。因此,当即使工作负载模式发生改变也继续执行现有的内部任务时,存储器系统110的性能也可能劣化。当工作负载模式改变时,控制器130可以重置任务调度。
107.图5b是示出根据本公开的实施例的主机i/f 132与处理器134之间的用于重置任务调度的事务的示图。
108.在操作s528中,主机i/f 132可以检测工作负载模式改变。
109.在操作s530中,主机i/f 132可以向处理器134提供任务重置指令。
110.在操作s532中,响应于任务重置指令,处理器134可以取消在操作s508和s516中添加的所有内部任务。
111.在操作s534中,处理器134可以向主机i/f 132提供对任务重置指令的响应。
112.在取消所有添加的内部任务的状态下,当由于当前数据io操作而产生的数据吞吐量低于改变后的工作负载模式下所需的最大吞吐量时,控制器130中可以剩余内部资源。当由于当前数据io操作而产生的数据吞吐量低于当前工作负载模式下所需的最大吞吐量时,控制器130可以从图5a的操作s502开始再次执行操作。
113.在下文中,参照图6描述根据实施例的由处理器134选择待添加的内部任务的方法。
114.图6是示出根据本公开的实施例的处理器134的操作的示图。
115.在操作s602中,处理器134可以从主机i/f 132接收任务调度指令、剩余资源指数和工作负载模式信息。操作s602可以对应于图5a的操作s506或s514。
116.在操作s604中,处理器134可以确定是否存在可以添加的内部任务候选。例如,处理器134可以将内部任务表362的各个内部任务之中的每个的资源消耗指数等于或小于剩余资源指数的一个或多个内部任务确定为内部任务候选。
117.当不存在内部任务候选(即,在操作s604中为“否”)时,在操作s612中,处理器134可以在不选择内部任务的情况下向主机i/f 132提供完成响应。操作s612可以对应于图5a的操作s510或s518。
118.当存在一个或多个内部任务候选(即,在操作s604中为“是”)时,在操作s606中,处理器134可以在内部任务候选之中选择具有最高优先级的内部任务。
119.在操作s608中,处理器134可以基于所添加的内部任务中的每一个的资源消耗指数来更新剩余资源指数。例如,当剩余资源指数为“3”并且所选择的内部任务的资源消耗指数为“2”时,可以将剩余资源指数更新为通过将剩余资源指数减去资源消耗指数而得到的“1”。
120.在操作s610中,处理器134可以确定控制器130中是否仍然剩余内部资源。例如,处理器134可以确定剩余资源指数是否大于预定值,例如“0”。
121.当控制器130中留有剩余内部资源(即,在操作s610中为“是”)时,处理器134可以通过再次执行操作s604来进一步选择内部任务。
122.当控制器130中未留有剩余内部资源(即,在操作s610中为“否”)时,处理器134可以在操作s612中向主机i/f 132提供完成响应。
123.根据实施例,当由于数据io操作而产生的数据吞吐量低于当前工作负载模式下所需的最大吞吐量时,控制器130可以确定剩余资源指数,并且基于剩余资源指数、多个内部任务的资源消耗指数以及针对每个工作负载模式的内部任务的优先级来选择多个内部任务之中的至少一个。
124.控制器130可以通过在执行io任务的同时进一步执行所选择的内部任务来有效地使用内部资源。另外,当执行所选择的内部任务时,可以提高存储器系统110的可靠性或寿命,并且可以保持由于数据io操作而产生的数据吞吐量。
125.根据本公开的实施例,可以提供可以在保持存储器系统的i/o性能的同时执行内部操作的控制器及其操作方法。
126.虽然已经参考具体实施例描述了根据实施例的控制器及其操作方法,但是这些仅仅是示例,并且本公开不限于此,并且根据本说明书中公开的基本构思应当被解释为具有最广的范围。本领域技术人员可以通过组合和替换所公开的实施例来实施未详细说明的实施例,但是这些也不脱离本公开的范围。另外,本领域技术人员可以容易地改变或修改基于本说明书所公开的实施例,并且显而易见的是,这些改变或修改也落入本公开的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献