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

用于存储器装置中的多个功能的服务质量的制作方法

2022-07-10 20:25:53 来源:中国专利 TAG:


1.本公开大体上涉及一种存储器系统,且更确切地说,涉及将服务质量等级分配到存储器装置中的多个功能。


背景技术:

2.存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可以是例如非易失性存储器组件和易失性存储器组件。一般来说,主机系统可以利用存储器子系统将数据存储在存储器组件处且从存储器组件检索数据。
附图说明
3.根据下文给出的实施方式且根据本公开的各种实施例的附图将更加充分地理解本公开。
4.图1示出根据本公开的一些实施例的用于将服务质量等级分配到存储器装置中的多个功能的实例计算环境。
5.图2示出根据本公开的一些实施例的用于服务质量(qos)等级管理的存储器子系统110中的功能权重和操作权重分配。
6.图3示出根据本公开的一些实施例的支持qos等级管理的编程/擦除(p/e)暂停/恢复策略时间线的实例。
7.图4为根据本公开的一些实施例的支持存储器子系统中的qos等级管理的分配功能权重和操作权重的实例方法的流程图。
8.图5为根据本公开的一些实施例的支持存储器子系统中的qos等级管理的i/o操作的执行循环的实例方法的流程图。
9.图6为根据本公开的一些实施例的支持存储器子系统中的qos等级管理的暂停和恢复策略的实例方法的流程图。
10.图7为根据本公开的一些实施例的支持存储器子系统中的qos等级管理的分配功能权重的实例方法的流程图。
11.图8为本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
12.本公开的各方面涉及将服务质量等级分配到存储器子系统的存储器装置中的多个功能。存储器子系统可以是存储装置、存储器模块或存储装置和存储器模块的混合。下文结合图1描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统,所述一或多个存储器组件例如存储数据的存储器装置。主机系统可提供待存储于存储器子系统处的数据,且可请求待从存储器子系统检索的数据。
13.服务器体系结构的演变和多核处理器的可用性促使服务器设计发生重大变化。最值得注意的是,运行单一操作系统(os)的服务器已被多租户服务器所取代,其中许多“所有
者”(例如,在虚拟机(vm)、容器或微服务中运行的来宾操作系统)共享同一物理服务器平台,而不知道彼此的存在。
14.将输入/输出(i/o)装置连接到每一vm可能会出现问题,并且会占用大量资源,因此,已经发展了特殊的体系结构,以简化连接过程并最大限度地提高性能。某些常规存储器子系统使用单根输入/输出虚拟化(sr-iov)规范。sr-iov是一种规范,允许出于可管理性和性能原因在各种硬件功能之间隔离外围组件互连(pci)高速(pcie)资源,同时也允许在虚拟环境中共享单个物理pcie装置。sr-iov将不同的虚拟功能(vf)提供到物理服务器机器上的不同的虚拟组件(例如,网络适配器)。sr-iov还允许虚拟环境中的不同的虚拟机共享单个pcie硬件接口。替代地,可以通过称为“多pf”的多个并行物理功能提供等效功能。多pf体系结构将每一物理功能(pf)映射到vm。一个物理功能允许枚举多个物理功能,然后虚拟机监控程序可以将这些物理功能分配给一或多个虚拟机。这些解决方案既需要负责枚举和资源分配的主机os,也需要负责常规数据流的在虚拟机上运行的一组来宾os。主机os可以了解这些功能,并识别要添加到主机os的特殊功能。另外,大多数虚拟机监控程序环境不支持sr-iov,这使得所述解决方案不适用于许多情况。此外,在许多情况下,每个vm可以具有服务等级协议(sla),其定义一定等级的服务,包含待提供的质量、可用性、责任等。在某些情形中,当预期每一vf和/或pf提供相同服务质量等级时,符合存储器子系统的sla可具有挑战性。
15.本公开的各方面通过具有存储器子系统来解决上述和其它缺陷,所述存储器子系统提供了一种机制,使得每一功能(vf和/或pf)可在不同服务质量(qos)等级下提供,以满足系统sla的条件。当在使用基于nand的存储器和类似装置的存储器子系统中提供此类qos等级时,需要解决某些考虑因素。例如,nand写入(编程)速度慢且异步并且会干扰传入的系统io,这可能影响qos。另外,在nand装置上,作为耗损均衡操作的一部分,数据通常四处移动,且与传入数据的冲突通常是不可预测的。此外,存储器子系统可执行某些后台操作(例如,垃圾收集、媒体扫描、耗损均衡),这些操作可能以不可预测的程度影响i/o。nand擦除和编程操作都是高影响操作,因为它们在激活时会锁定整个裸片,而且速度非常慢(例如,比读取速度慢10倍至30倍),因此影响此类裸片的io可能会大大延迟。此外,nand擦除和编程操作具有暂停/恢复能力,但将影响所有其它io。因此,可利用方案来对各种功能以及每一功能的不同类型的i/o和后台操作进行优先级排序,以便支持存储器子系统的可预测qos。
16.在一个实施方案中,存储器子系统限定表示分配到存储器子系统中的每一功能的服务质量等级的功能权重。存储器子系统可进一步限定用于读取类型操作的特定操作权重和用于在功能处接收到的写入类型操作的不同操作权重,使得可将不同qos能力分配到读取与写入操作。存储器子系统还可限定用于编程/擦除(p/e)暂停和恢复操作的策略,所述操作并入有p/e操作的操作权重以及等待操作(即,待执行的后续操作)的操作权重,如本文下文中更详细地阐释。
17.将服务质量等级分配到本文所描述的多个功能技术允许存储器子系统通过提供功能权重、操作权重和暂停/恢复策略特征而将不同服务质量(qos)等级提供到存储器子系统的每一功能(vf或pf)。分配到每一功能的功能权重的使用允许来自每一功能的较可预测qos等级,因为每一功能可具有基于其功能权重的可预测处理时间。由于存储器子系统可将每一功能的时延调整为关于其功能权重(例如,功能权重越高,其平均时延越短),每一功能
的功能权重还可提供功能的更确定性的时延。此外,通过将操作权重分配到每一i/o操作类型,存储器子系统可使快速i/o操作(例如,读取操作)优先于缓慢i/o操作(例如,写入操作),使得快速操作不会由于大量冗长操作的执行而被过度延迟。此外,在计算出的延迟时间之后暂停冗长操作以便执行快速i/o操作的能力可针对i/o操作的执行时间提供后台操作(擦除、垃圾收集、耗损均衡等)的更可预测的影响。以此方式,可基于存储器子系统的暂停/擦除策略来减少且进一步预测由于执行后台操作而导致的可能影响i/o操作的显著延迟,所述暂停/擦除策略可限定在后台操作正执行的情况下如何处置到达存储器装置的i/o操作。在下文关于图1至7提供这些技术的额外细节。
18.图1示出了根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或其组合。
19.存储器子系统110可以是存储装置、存储器模块或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储装置(ufs)驱动器和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so-dimm)和非易失性双列直插式存储器模块(nvdimm)。
20.计算环境100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120使用存储器子系统110例如以将数据写入到存储器子系统110且从存储器子系统110读取数据。如本文所用,“耦合到”一般是指组件之间的连接,所述连接可以是间接通信连接或直接通信连接(例如,无中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等连接。
21.主机系统120可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、嵌入式计算机(例如,包含在车辆、工业设备或联网的商业装置中的计算机),或包含存储器和处理装置的此类计算装置。主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行附接的scsi(sas)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)接口来存取存储器组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。
22.存储器装置可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以但不限于是随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
23.非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(nand)型快闪存储器和就地写入存储器,例如三维交叉点(“3d交叉点”)存储器。3d交叉点存储器装置是可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变而执行位存储的非易失性存储器单元的交叉点阵列。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元
进行编程。
24.存储器装置130中的每一个可包含一或多个存储器单元阵列,例如单层级单元(slc)、多层级单元(mlc)、三层级单元(tlc)或四层级单元(qlc)。在一些实施例中,特定存储器组件可包含存储器单元的slc部分,以及mlc部分、tlc部分或qlc部分。存储器单元中的每一个可存储供主机系统120使用的一或多位数据。此外,存储器装置130的存储器单元可分组以形成页,所述页可指用于存储数据的存储器组件的单元。在一些类型的存储器(例如,nand)的情况下,页可分组以形成块。一些类型的存储器(例如3d交叉点)可对跨裸片和通道的页进行分组以形成管理单元(mu)。
25.虽然描述了例如nand类型快闪存储器和3d交叉点的非易失性存储器组件,但是存储器装置130可以基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、磁性随机存取存储器(mram)、或非(nor)快闪存储器、电可擦除可编程只读存储器(eeprom)。
26.存储器子系统控制器115可以与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。硬件可包含具有专用(即,硬编码)逻辑的数字电路系统以执行本文所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。
27.存储器子系统控制器115可包含配置成执行存储于本地存储器119中的指令的处理器(处理装置)117。在所示出的实例中,存储器子系统控制器115的本地存储器119包含配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作,包含处置存储器子系统110与主机系统120之间的通信的各种过程、操作、逻辑流程和例程。
28.在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已示出为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110可不包含存储器子系统控制器115,而是可替代地依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
29.一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换为指令或适当命令以实现对存储器装置130的期望存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作和在逻辑块地址与物理块地址之间的与存储器装置130相关联的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换成命令指令以存取存储器装置130以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
30.存储器子系统110还可包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存器或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址,且对地址进行解码以存取存储器装置130。
31.在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。在一些实施例中,存储器装置130可以是受管理存储器装置,其为与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行存储器管理的原始存储器装置。受管理存储器装置的实例为受管理nand(mnand)装置。
32.存储器子系统110包含qos等级管理模块113,所述qos等级管理模块可用于将qos等级分配到存储器子系统中的每一功能。在某些实施方案中,qos等级管理模块113可将表示与功能相关联的qos等级的对应功能权重分配到由存储器子系统提供的多个功能中的每一功能。在一个实施方案中,功能权重可以是关于存储器装置的平均时延的值,使得例如给定功能可以比存储器装置的平均时延短的时延提供(因此提供高qos等级)。在另一实例中,另一功能的功能权重可指示可以比存储器装置的平均时延高的延时率提供的另一功能(因此提供低qos等级)。在某些实施方案中,与功能相关联的服务质量等级可经由参数来配置和调整,所述参数包含在功能处接收到的每秒输入/输出操作(iops)和专用于功能的处理量。存储器子系统可配置这些参数,由此通过对每一参数设定最小(即,“备用”)和最大(即,“限制”)来修改qos等级。
33.qos等级管理模块113可接着基于分配到功能的对应功能权重以及分配到在功能处接收到的操作中的每一i/o操作类型的操作权重来提供每一功能。在实施方案中,qos等级管理模块113可将第一操作权重分配到功能的读取类型操作,且将第二操作权重分配到功能的写入类型操作。接着可将功能权重和操作权重一起使用以确定每一时间单位可执行的每一类型的操作的数目。举例来说,分配到给定功能的功能权重可转换成每一时间单位可执行的i/o操作的数目。操作的数目可为在功能处接收到的i/o操作的子集。另外,第一操作权重可指示可将多少个操作分配到读取类型操作,且第二操作权重可指示可将多少个操作分配到写入类型操作。
34.当选择操作以用于执行时,qos等级管理模块113通过根据操作的操作权重执行暂停/恢复策略而进一步支持分配到操作的qos等级(例如,呈操作权重的形式)。在一些实施方案中,当在存储器装置处接收到用于执行的读取操作时,qos等级管理模块113可检查存储器装置当前是否正执行写入操作。如果是,那么qos等级管理模块113可在所计算的与读取操作的操作权重和写入操作的操作权重成比例的延迟时间段之后暂停写入操作。读取操作的操作权重与写入操作的操作权重的比率越高,延迟时间段就可越长。在延迟时间段过去之后,qos等级管理模块113可执行读取操作,且随后在读取操作完成时恢复写入操作。下文描述关于qos等级管理模块113的操作的其它细节。
35.图2示出根据本公开的一些实施例的用于服务质量等级管理的存储器子系统110中的功能权重和操作权重分配。存储器子系统110可提供多个虚拟和物理功能f 210-230以用于存取存储器装置130。在某些实施方案中,存储器子系统110提供多个功能以便在虚拟化环境中服务多个虚拟机(vm),其中每一vm利用一或多个功能来存取存储器装置130。功能f 210-230可从主机计算系统接收i/o操作(例如,读取操作、写入操作)以用于存取存储器装置130。由于来自各种功能的所有这些i/o操作需要存取存储器装置130,且由于功能所分配到的qos等级可由存储器子系统110改变,因此对于存取存储器装置130,每一功能的优先级可具有与其qos等级一致的不同优先级。每一功能的优先级可由功能权重211-231表示。
此外,对于给定功能,每一操作类型(例如,读取操作类型、写入操作类型)对于存取存储器装置130可具有不同优先级,其可表达为读取权重216-236及写入权重218-238。
36.存储器子系统110可将表示与功能相关联的服务质量等级的对应功能权重分配到每一功能210-230。举例来说,f 210可被分配到功能权重211,f 220可被分配到功能权重221,且f 230可被分配到功能权重231。在一个实施方案中,功能权重可为关于存储器装置130的平均时延的值。存储器装置130的平均时延可指已接收到i/o操作的时间与已完成i/o操作的执行的时间之间的平均持续时间。在实施方案中,可使用计时器来计算平均时延,所述计时器用于测量在一个时间单位(例如,一秒)中提供的读取操作的时间,和在同一时间单位中提供的写入操作的时间。接着可将存储器装置130的平均读取时延计算为读取操作的所测量时间的平均值。存储器装置130的平均写入时延可被计算为写入操作的所测量时间的平均值。还可根据平均读取时延和平均写入时延确定存储器装置130的总平均时延。
37.在给定存储器装置130的平均时延的情况下,可相对于存储器装置130的平均时延确定功能权重211-231。在一个实施方案中,功能权重可为0到1000之间的值。0可指示最短的可能时延,且1000可指示比存储器装置130的平均时延长10倍。0与1000之间的中间值可指示存储器装置130的平均时延的对应百分比。举例来说,如果功能权重211等于50,那么其指示f 210所提供的时延应为存储器装置130的平均时延的二分之一(即,0.5倍平均时延),由此提供高于平均qos等级的等级。另一方面,如果功能权重221等于500,那么其指示f 220所提供的时延应为存储器装置130的平均时延的五倍(即,5倍平均时延),由此提供低于平均qos等级的等级。在某些实施方案中,可将功能权重转换成可在给定执行循环中执行的功能处接收到的i/o操作的数目。在说明性实例中,如果存储器装置130能够在执行循环期间处理12个操作,那么可根据每一功能的权重相对于其它功能的权重在功能当中划分12个操作。因此,如果功能权重211为50,那么功能权重221为500,且功能权重231为150,那么在每一执行循环期间可将每循环12个操作分配为8个操作用于功能f 210、3个操作用于f 220且1个操作用于f 230。存储器子系统110可接着基于每一类型的操作权重而确定分配到每一功能的操作分别可为读取类型操作和写入类型操作的数目。
38.读取权重216-236可确定在相应功能处接收到的读取操作的优先级相对于在同一功能处接收到的对应写入操作的优先级。操作类型的优先级可促进功能的较可预测qos,因为其可允许使快速操作优先于例如费时操作,这可进一步消除不同类型的操作的随机处理次序。在说明性实例中,如果读取权重216为3且写入权重为1,那么遵循以上实例,如果每一执行循环中f 210分配到8个操作,那么可分别在读取操作与写入操作之间以3:1的比例分配8个操作。因此,可将8个操作分配为读取类型操作的6个操作和写入类型操作的2个操作。在实施方案中,可从读取队列212中检索6个读取操作,且可从写入队列214中检索两个写入操作。
39.读取队列212-232是用于存储在功能210-230处接收到的读取操作的操作队列。写入队列214-234是用于存储在功能210到230处接收到的写入操作的操作队列。虽然读取队列212-232和写入队列214-234展示为每功能一个读取队列和一个写入队列,但每一功能可具有用于存储在功能处接收到的i/o操作的其自身的一或多个读取队列和一或多个写入队列。i/o操作根据操作类型(例如,读取与写入)存储在给定队列中。i/o操作可存储于队列中直至在一或多个执行循环期间检索到其以用于执行为止。在执行循环期间,可根据功能读
取权重216-236和功能权重211-231从功能210-230的读取队列212-232检索读取操作。类似地,可根据功能写入权重218-238和功能权重211-231从功能210-230的写入队列214-234检索写入操作。举例来说,如果f 220的功能权重221为3、读取权重226为2且写入权重228为1,那么当处理来自功能230的i/o操作时,存储器子系统110可从读取队列226检索2个读取操作且从写入队列228检索1个写入操作。在一些实施方案中,如果写入队列228不含有i/o操作,那么存储器子系统110可从读取队列226检索所有3个操作(如果可用)。类似地,如果读取队列226不含有i/o操作,那么存储器子系统110可从写入队列228检索所有3个操作以用于处理(如果可用)。
40.图3示出根据本公开的一些实施例的支持qos等级管理的编程/擦除(p/e)暂停/恢复策略时间线的实例。p/e暂停/恢复策略可使特定类型的i/o操作优先于另一操作类型的当前执行操作,如下文所解释。当选择操作以用于执行时,存储器子系统110可通过根据操作的操作权重执行暂停和恢复策略而进一步支持分配到操作的qos等级(例如,呈操作权重的形式)。
41.在框310处,可在时间t0处在存储器装置130处执行写入操作。写入操作可具有指示写入操作的优先级的经分配写入权重。在一些实施方案中,写入权重可随写入操作的操作权重与接收到写入操作的功能处的功能权重而变。在其它实施方案中,写入权重可随分配到写入类型操作的服务质量等级(例如,分配到写入类型操作的某一带宽值)而变。在框312处,读取操作可在时间t1处到达存储器装置130。读取操作可具有指示读取操作的优先级的经分配读取权重。在实施方案中,读取权重可随读取操作的操作权重与接收到读取操作的功能处的功能权重而变。在其它实施方案中,读取权重可随分配到读取类型操作的服务质量等级(例如,分配到读取类型操作的某一带宽值)而变。
42.在一些实施方案中,当在正执行写入操作时在存储器装置130处接收读取操作时,存储器子系统110可在所计算的延迟时间320之后暂停写入操作,以便执行读取操作。完成此操作以使得快速读取操作能够执行而不必等待冗长的写入操作完全完成执行,如上文所解释。
43.延迟时间320对应于即将进行的读取操作的操作权重和进行中的写入操作的操作权重,使得读取操作的操作权重与写入操作的操作权重的比率越高,延迟时间段就可越长。延迟时间320可提供一种方式来执行高优先级读取操作,同时允许写入操作随着更多读取操作的进行而以最小数目的暂停/恢复中断完成。此外,延迟时间320可被定义为预定时间段tr的增量。tr可定义为存储器装置130的平均读取时间(例如,100毫秒)。举例来说,如果写入操作的操作权重限定为200且读取操作的操作权重为50,那么读取权重与写入权重的比率为1:4,这意味着延迟时间320可为1/4(四分之一)个tr。另一方面,如果写入操作的操作权重为300而非200,那么比率为1/6,这意味着与读取操作相比,写入操作的优先级甚至更低,那么读取操作可在执行之前等待仅1/6(六分之一)个tr,以此类推。
44.在延迟时间段过去之后,在框314处,存储器子系统110在t2处暂停写入操作。当暂停操作完成时,存储器子系统110可在框316处通过允许在t3处存取存储器装置的操作130而执行读取操作。随后,当读取操作完成时,存储器子系统可在框318处恢复暂停写入操作。在实施方案中,当在存储器装置130处执行后台操作(例如,擦除)且读取操作到达存储器装置130以供执行时,本文中所解释的暂停/恢复策略还可适用。
45.图4为根据本公开的一些实施例的支持存储器子系统中的qos等级管理的分配功能权重和操作权重的实例方法的流程图。方法400可由可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法400由图1的qos等级管理模块113执行。尽管以特定顺序或次序展示,但除非另外规定,否则可修改过程的次序。因此,所示出的实施例应仅理解为实例,且所示出的过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。
46.在操作410处,处理逻辑提供用于存取存储器装置130的多个功能。多个功能从主机计算系统接收i/o操作以用于处理,如本文中在上文更详细地解释。多个功能可为可接收存储器装置130的读取操作和写入操作的虚拟功能和/或物理功能。在操作420处,处理逻辑可将对应功能权重分配到多个功能中的每一功能。如上文所解释,功能权重可表示与功能相关联的服务质量等级,且可为关于存储器装置130的平均时延的值。
47.在操作430处,处理逻辑可基于分配到功能的对应功能权重而选择提供多个功能中的功能。在某些实施方案中,可将功能权重转换成可在执行循环期间从每一功能提供的i/o操作的数目,如上文所解释。在操作440处,处理逻辑可将第一操作权重分配到功能的第一i/o操作类型,且将第二操作权重分配到第一功能的第二i/o操作类型。举例来说,第一i/o操作类型可为读取类型操作,且第一操作权重可为读取权重。类似地,第二i/o操作类型可为写入类型操作,且第二操作权重可为写入权重。
48.在操作450处,处理逻辑根据第一操作权重选择功能的第一i/o操作类型的第一数目个操作,且根据第二操作权重选择第一功能的第二i/o操作类型的第二数目个操作以用于执行。在一些实施方案中,可从与功能相关联的第一队列选择第一数目个操作,且可从与功能相关联的第二队列选择第二数目个操作,如本文中在上文更详细地解释。
49.图5为根据本公开的一些实施例的支持存储器子系统中的qos等级管理的i/o操作的执行循环的实例方法的流程图。方法500可由可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法500由图1的qos等级管理模块113执行。尽管以特定顺序或次序展示,但除非另外规定,否则可修改过程的次序。因此,所示出的实施例应仅理解为实例,且所示出的过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。
50.在操作510处,处理逻辑开始加权轮循选择方案以选择用于执行的i/o操作。常规选择方案包含轮循和加权轮循。在轮循选择中,存储器子系统按顺序访问每一队列,在每次访问时执行来自所述队列的单一命令(但可跳过空队列)。举例来说,如果存在两个队列,那么存储器系统可执行来自第一队列的一个命令,接着执行来自第二队列的一个命令,接着再次执行来自第一队列的一个命令,以此类推。通过加权轮循选择,与另一命令队列相比,一个命令队列可分配到某一更大量的带宽,使得每当访问具有高权重的命令队列时可执行两个或更多个命令群组。举例来说,存储器系统可在切换到第二队列之前执行来自第一队列的五个命令,且接着在切换回到第一队列之前执行来自第二队列的两个命令。
51.在操作520处,处理装置通过根据功能权重执行在功能处接收到的i/o操作来选择提供存储器装置多功能中的功能。在一些实施方案中,功能权重可为关于存储器装置130的平均时延的值,如本文中在上文更详细地解释。在某些实施方案中,可将功能权重转换成可在给定执行循环中执行的功能的i/o操作的数目。因此,在操作530处,处理逻辑基于功能权重确定分配到功能的操作的数目。
52.在操作540处,处理逻辑可基于读取操作权重和分配到功能的操作的数目而从与功能相关联的读取队列检索读取操作的数目。在操作550处,处理逻辑可基于写入操作权重和分配到功能的操作的数目而从与功能相关联的写入队列检索写入操作的数目。在某些实施方案中,写入操作权重可为关于存储器装置的平均时延的值(例如,由分配到写入类型操作的服务质量等级确定)。类似地,读取操作权重可为关于存储器装置的平均时延的值(例如,由分配到读取类型操作的服务质量等级确定)。
53.在某些实施方案中,如果读取队列不含有i/o操作,那么处理装置可从写入队列检索分配到功能的所有i/o操作以用于处理(如果可用)。类似地,如果写入队列不含有i/o操作,那么处理装置可从读取队列检索分配到功能的所有i/o操作以用于处理(如果可用)。
54.处理逻辑继续循环遍历存储器子系统的多个功能中的每一功能以根据每一功能的功能权重执行来自每一功能的i/o操作。因此,在操作555处,做出关于是否已提供所有功能的决策。在操作560处,如果已提供所有功能,那么处理逻辑可退出加权轮循算法,这是因为已选择当前执行循环的所有i/o操作。另一方面,如果处理逻辑确定一些功能尚未提供,那么处理逻辑可循环回到操作520以选择在下一功能处接收的i/o操作以供执行。
55.图6为根据本公开的一些实施例的支持存储器子系统中的qos等级管理的暂停和恢复策略的实例方法的流程图。方法600可由可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法600由图1的qos等级管理模块113执行。尽管以特定顺序或次序展示,但除非另外规定,否则可修改过程的次序。因此,所示出的实施例应仅理解为实例,且所示出的过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。
56.在操作610处,处理逻辑接收第一i/o操作类型的第一操作以用于在存储器装置130处执行。在实施方案中,第一操作类型可为读取类型操作。如上文所解释,第一类型操作可具有指示操作的优先级的经分配操作权重。在操作620处,处理逻辑确定是否在存储器装置130处执行第二i/o操作类型的第二操作。第二i/o操作类型可为写入类型操作。第二类型操作可具有指示操作的优先级的经分配操作权重。
57.如果处理逻辑确定当前不存在正处理的i/o操作,那么处理逻辑可在操作650处执行第一i/o操作。另一方面,如果处理逻辑确定存在正在存储器装置130处执行的第二i/o操作类型的第二操作,那么处理逻辑可在操作625处评估阈值条件,以便确定是否暂停第二操作。在一些实施方案中,处理逻辑可确定当前正执行的第二操作是否已达到某一阈值以下的执行百分比(例如,完成度小于90%),处理逻辑可决定第二操作应被暂停以执行第一操作。在其它实施方案中,处理逻辑可确定第二操作的剩余执行时间长于第一操作的执行时间,处理逻辑可决定应暂停第二操作。
58.在操作644处,处理逻辑可确定可暂停第二操作,且可使第一操作在执行之前等待延迟时间段。如上文所解释,延迟时间段对应于即将进行的第一操作的操作权重和进行中的第二操作的操作权重,使得第一操作的操作权重与第二操作的操作权重的比率越高,延迟时间段就可越长。延迟时间段可定义为预定时间段tr(例如,存储器装置130的平均读取时间)的增量。
59.在延迟时间段过去之后,在操作646处,处理逻辑可暂停第二操作以便使存储器装置130能够执行另一操作。当暂停操作完成时,在操作648处,处理逻辑可通过允许进行存取存储器装置130的操作来执行第一操作。随后,当第一操作完成时,在660处,处理逻辑可恢复暂停的第二操作。
60.在操作632处,如果处理逻辑确定尚未符合阈值条件,那么处理逻辑可决定是否应允许第二操作完成其执行。在一个实施方案中,阈值准则可为第二操作的执行完成度小于90%。在其它实施方案中,阈值准则可为第二操作的剩余执行时间长于第一操作的执行时间。处理逻辑可随后使第一操作等待直到第二操作完全执行为止。在操作650处,当第二操作完成其执行时,处理逻辑可执行第一操作。在此情况下,已避免暂停/恢复策略,这是因为第二操作接近完成,中断其对于总体系统性能可能不是有益的。图7为根据本公开的一些实施例的分配功能权重且支持存储器子系统中的qos等级管理的实例方法的流程图。方法700可由可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法700由图1的qos等级管理模块113执行。尽管以特定顺序或次序展示,但除非另外规定,否则可修改过程的次序。因此,所示出的实施例应仅理解为实例,且所示出的过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。
61.在操作710处,处理逻辑提供用于存取存储器装置130的多个功能。多个功能从主机计算系统接收i/o操作以用于处理,如本文中在上文更详细地解释。多个功能可为可接收存储器装置130的读取操作和写入操作的虚拟功能和/或物理功能。在操作720处,处理逻辑可确定多个功能中的每一功能的服务质量等级。在实施方案中,功能的服务质量等级可确定功能可接收到的服务等级,以便符合存储器子系统的服务等级协议的条件(例如,存储器子系统的质量、可用性、责任等)。
62.在操作730处,处理逻辑可将对应功能权重分配到多个功能中的每一功能。如上文所解释,功能权重可表示与功能相关联的服务质量等级,且可为关于存储器装置130的平均时延的值。
63.在操作740处,处理逻辑可选择用于在存储器装置130处执行的i/o操作的集合。在一些实施方案中,处理逻辑可根据每一功能的功能权重来选择在存储器装置130的功能处接收到的i/o操作的子集。举例来说,处理逻辑可选择在存储器装置130的多个功能中的每一功能处接收到的i/o操作的数目。根据每一功能的对应功能权重确定在每一功能处所选择的i/o操作的数目,以便满足每一功能的服务质量等级,如本文中在上文更详细地解释。
64.在操作750处,处理逻辑在存储器装置130的下一执行循环处执行i/o操作的选定子集,如本文中在上文更详细地解释。在某些实施方案中,可根据图6的方法600执行i/o操作的子集。图8示出计算机系统800的实例机器,在所述机器中可执行指令集以用于使机器
执行本文中所论述的方法中的任何一或多种。在一些实施例中,计算机系统800可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,运行操作系统以执行对应于图1的qos等级管理模块113的操作)。在替代性实施例中,机器可连接(例如,联网)到lan、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
65.机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定待由机器采取的动作的指令集的任何机器。此外,虽然示出了单个机器,但还应认为术语“机器”包含单独地或共同地执行(一或多个)指令集以执行本文所论述的方法中的任何一或多种的机器的任何集合。
66.实例计算机系统800包含经由总线830彼此通信的处理装置802、主存储器804(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器806(例如,快闪存储器、静态随机存取存储器(sram)等)以及数据存储系统818。
67.处理装置802表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更确切地说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器或实施指令集的组合的处理器。处理装置802还可以是一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器或类似者。处理装置802配置成执行指令826以用于执行本文所论述的操作和步骤。计算机系统800可进一步包含网络接口装置808以在网络820上通信。
68.数据存储系统818可包含机器可读存储媒体824(也称为计算机可读媒体),所述机器可读存储媒体上存储有一或多个指令集826或体现本文所描述的方法或功能中的任何一或多个的软件。指令826还可在由计算机系统800执行其期间完全或至少部分地驻存于主存储器804内和/或处理装置802内,主存储器804和处理装置802还构成机器可读存储媒体。机器可读存储媒体824、数据存储系统818和/或主存储器804可对应于图1的存储器子系统110。
69.在一个实施例中,指令826包含用于实施对应于图1的qos等级管理模块113的功能的指令。虽然在实例实施例中将机器可读存储媒体824展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储由机器执行的一组指令或对其进行编码且使机器执行本公开的方法中的任何一或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
70.已就对计算机存储器内的数据位的操作的算法和符号表示而言呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域其它技术人员的方式。算法在本文中且一般被认为是产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操控的那些操作。这些量通常但未必呈能
够被存储、组合、比较和以其它方式操控的电信号或磁信号的形式。主要出于常用的原因,已证明将这些信号称为位、值、元素、符号、字符、术语、编号或类似者有时是方便的。
71.然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便标记。本公开可涉及将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操控且变换成类似地表示为计算机系统的存储器或寄存器或其它此类信息存储系统内的物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
72.本公开还涉及一种用于执行本文中的操作的设备。此设备可出于预期目的而专门构建,或其可包含由存储于计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储于计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、cd-rom和磁性光盘)、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
73.本文中呈现的算法和显示本质上并不与任何特定计算机或其它设备相关。各种通用系统可根据本文中的教示与程序一起使用,或其可以证明构造更专用的设备来执行方法是方便的。将如下文描述中所阐述的那样呈现用于各种这些系统的结构。另外,并不参考任何特定编程语言来描述本公开的实施例。应了解,可使用多种编程语言来实施如本文所描述的本公开的教示。
74.本公开可提供为计算机程序产品或软件,所述计算机程序产品或软件可包含其上存储有可用以对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于存储呈机器(例如,计算机)可读形式的信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
75.在前述说明书中,已参考本公开具体实例实施例描述了本公开的实施例。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开实施例的更广精神和范围的情况下对本公开进行各种修改。因此,说明书和图式应被视为说明性的而非限制性的。
再多了解一些

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

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

相关文献