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

存储器存取命令的双阈值受控调度的制作方法

2021-10-20 03:42:00 来源:中国专利 TAG: 存储器 阈值 受控 子系统 存取


1.本公开的实施例大体上涉及存储器子系统,且更确切地说,涉及存储器存取命令的双阈值受控调度。


背景技术:

2.存储器子系统可为存储系统,例如固态驱动器(ssd)或硬盘驱动器(hdd)。存储器子系统可为存储器模块,例如双列直插式存储器模块(dimm)、小型dimm(so

dimm)或非易失性双列直插式存储器模块(nvdimm)。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可为例如非易失性存储器组件和易失性存储器组件。一般来说,主机系统可使用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。
附图说明
3.根据下文给出的详细描述且根据本公开的各种实施例的随附图式将更加充分地理解本公开。
4.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。
5.图2为根据本公开的一些实施例的用于使用双阈值受控调度处理存储器命令的多层级队列结构的框图。
6.图3为根据本公开的一些实施例的用于使用双阈值受控调度处理存储器命令的实例方法的流程图。
7.图4为根据本公开的一些实施例的用于使用提升阈值准则处理存储器命令的实例方法的流程图。
8.图5为根据本公开的一些实施例的用于使用所执行的事务阈值准则处理存储器命令的实例方法的流程图。
9.图6为其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
10.本公开的各方面是针对存储器子系统中的存储器存取命令的双阈值受控调度。存储器子系统在下文中也称为“存储器装置”。存储器子系统的实例为经由外围互连件(例如,输入/输出总线、存储区域网络)耦合到中央处理单元(cpu)的存储装置。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器和硬盘驱动器(hdd)。存储器子系统的另一实例为经由存储器总线耦合到cpu的存储器模块。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so

dimm)和非易失性双列直插式存储器模块(nvdimm)等。在一些实施例中,存储器子系统可为混合式存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供待存储在存储器子系统处的数据且可请求待从存储器子系统检索的数据。
11.存储器系统通常将从主机系统接收到的存储器命令分类为数个相应类别中的一
个,例如读取命令、写入命令、擦除命令等。将每一类别中的存储器命令指派到专门专用于所述特定类别的命令的队列。举例来说,可将所有读取命令路由到一个队列,可将所有写入命令路由到另一队列等。由于一次可执行来自队列中的仅一个的命令,因此存储器系统根据所定义的调度方案服务于各种队列。普及的常规调度方案包含轮循和加权轮循。在轮循调度中,存储器系统按顺序访问每一队列,在每次访问时执行来自所述队列的单一命令(尽管可跳过空队列)。举例来说,如果存在两个队列,那么存储器系统可执行来自第一队列的一个命令,接着执行来自第二队列的一个命令,接着再次执行来自第一队列的一个命令等。通过加权轮循调度,命令队列可分配某一更大量的带宽,使得每当访问队列时可执行两个或更多个命令的群组。举例来说,存储器系统可在切换到第二队列之前执行来自第一队列的五个命令,且接着在切换回到第一队列之前执行来自第二队列的五个命令。如同任何系统,减少时延(即,当接收存储器命令时与当完成存储器命令的执行时之间流逝的时间)为优选的。因而,通常选择命令调度方案来实现减少时延的目标。
12.取决于存储器系统中所使用的存储介质的类型的某些特性,上述调度方案可提供变化结果。举例来说,动态随机存取存储器(dram)装置具有大致相等的读取和写入时延。因而,任何特定读取命令的执行将花费与写入命令大致相同的时间量。然而,在与非(nand)类型快闪存储器的情况下,写入时延通常比读取时延高得多。另外,nand类型快闪存储器进一步支持擦除操作,所述擦除操作还可具有相对较长的相关联时延。因此,不同调度方案可为优选的。此外,非易失性存储器单元的交叉点阵列具有其自身的特定特性,所述特性包含非对称读取和写入时延计时(例如,用于读取的大约100纳秒和用于写入的大约10至20纳秒),其引发利用多层级并行度的限制,且因此使得难以优化交叉点系统的吞吐量。非易失性存储器单元的交叉点阵列可具有比基于快闪的存储器组件显著更小的数据单元大小,且因此可具有用于类似容量的存储器组件的显著更大数目的数据单元。非易失性存储器单元的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来进行位存储。另外,与多个基于快闪的存储器相比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。因此,这类存储器组件可进行“就地”数据替代。由于此存储器组件中的数据单元的数目较大,因此大量计算资源(例如,处理和存储器资源)用于检索、存储和分类与存储器组件相关联的各种计数值。另外,检索、存储和分类大量数据单元花费成比例地大量的时间,其对存储器子系统的时延有显著贡献。因此,不同调度方案可用于改进性能且减少时延。
13.本公开的各方面通过实施存储器子系统中的存储器存取命令的双阈值受控调度来解决以上和其它不足。在一个实施方案中,存储器子系统使用两个单独阈值(“双阈值”)将存储器命令的执行从数个单独队列(例如,读取命令队列和写入命令队列)调度到包含非易失性存储器单元的交叉点阵列的存储器组件。在一个实施方案中,第一阈值由关于相关联队列中的待决(即,尚未执行)命令的数目的提升阈值准则界定。第二阈值由所执行的事务阈值准则界定,所述所执行的事务阈值准则是关于自将执行授权给予相关联队列以来已执行的命令的数目。如本文中将更详细地描述,在一个实施方案中,两个阈值一起用于确定何时将执行授权从一个队列切换到另一队列(即,何时停止执行来自当前主动队列的命令和何时开始执行来自非主动队列的命令,由此使所述队列主动)。
14.在一个实施方案中,对于包含读取命令队列和写入命令队列的存储器子系统,定
序器可开始执行来自读取命令队列中的任一个的请求,或写入命令队列具有符合(例如,超出)对应提升阈值准则的数个待决命令。如果队列都不符合提升阈值准则,那么定序器可继续执行来自当前主动队列的命令(即,最近执行的命令来自所述队列)。每当执行来自主动队列的命令时,定序器可递增指示自将执行授权给予相关联队列以来已执行的命令的数目的计数器。如果定序器确定计数器的值符合(例如,满足或超出)对应所执行的事务阈值准则,那么定序器可将执行授权从当前主动队列切换到非主动队列且复位计数器的值。当执行命令并递增计数器时,定序器可继续监视每一队列中的待决命令的数目。如果在计数器的值符合用于主动队列的事务阈值准则之前的任何时间处,非主动队列中的待决命令的数目符合对应的提升阈值准则,那么定序器可将执行授权切换到非主动队列,即使尚未符合事务阈值准则。在将执行授权切换到另一队列之后,由此使非主动队列主动,定序器可执行来自所述队列的命令,且可应用对应的提升阈值准则和所执行的事务阈值准则以确定何时再次切换执行授权。
15.取决于实施方案,提升阈值准则对于各种队列可为相同或不同的,且所执行的事务阈值准则对于各种队列也可为相同或不同的。在一些实施方案中,提升阈值准则和所执行的事务阈值准则可配置为存储器子系统的特定特性。双阈值受控调度的使用允许定序器优化针对不同类型的工作负载的数据总线使用,由此减少存储器子系统中的总体时延。当来自主机系统的命令在读取与写入之间平衡时,执行事务阈值准则确保两个队列在适当的时间内得到服务。然而,当存在读取密集型工作负载时,提升阈值准则确保可促进和执行那些读取命令以便防止读取命令队列变满且防止来自主机的后续命令被拒绝。类似地,提升阈值准则促进写入密集型工作负载下的写入命令。实验结果展示,相比于使用常规调度方案的仅约60%的利用率,存储器命令的双阈值受控调度可在平衡的工作负载下实现存储器控制器物理介质之间的数据总线的大约80%的利用率。
16.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含介质,例如存储器组件112a至112n。存储器组件112a至112n可为易失性存储器组件、非易失性存储器组件或这类组件的组合。在一些实施例中,存储器子系统为存储系统。存储系统的实例为ssd。在一些实施例中,存储器子系统110为混合式存储器/存储子系统。一般来说,计算环境100可包含使用存储器子系统110的主机系统120。举例来说,主机系统120可将数据写入到存储器子系统110且从存储器子系统110读取数据。
17.主机系统120可为计算装置,例如桌上型计算机、膝上型计算机、网络服务器、移动装置或包含存储器和处理装置的这类计算装置。主机系统120可包含或耦合到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可经由物理主机接口耦合到存储器子系统110。如本文中所使用,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有中间组件),无论有线还是无线,包含例如电连接、光学连接、磁性连接等连接。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行连接的scsi(sas)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步使用nvm高速(nvme)接口来存取存储器组件112a至112n。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信
号的接口。
18.存储器组件112a至112n可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(nand)类型快闪存储器。存储器组件112a至112n中的每一个可包含一或多个存储器单元阵列,所述存储器单元例如单层级单元(slc)或多层级单元(mlc)(例如,三层级单元(tlc)或四层级单元(qlc))。在一些实施例中,特定存储器组件可包含存储器单元的slc部分和mlc部分。存储器单元中的每一个可存储由主机系统120使用的数据的一或多个位(例如数据块)。尽管描述了例如nand类型快闪存储器的非易失性存储器组件,但存储器组件112a至112n可基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件112a至112n可为但不限于随机存取存储器(ram)、只读存储器(rom)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、相变存储器(pcm)、磁随机存取存储器(mram)、或非(nor)快闪存储器、电可擦除可编程只读存储器(eeprom)和非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来执行位存储。另外,与多个基于快闪的存储器相比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,存储器组件112a至112n的存储器单元可分组为可指代用于存储数据的存储器组件的单元的存储器页或数据块。数据块可进一步分组成存储器组件112a至112n中的每一个上的一或多个平面,其中可同时对平面中的每一个执行操作。来自不同平面的对应数据块可以条带的形式彼此相关联,而非横跨多个平面。
19.存储器系统控制器115(在下文中称为“控制器”)可与存储器组件112a至112n通信以执行操作,例如在存储器组件112a至112n处读取数据、写入数据或擦除数据,以及其它这类操作。控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。控制器115可为微控制器、专用逻辑电路(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。控制器115可包含配置成执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明的实例中,控制器115的本地存储器119包含配置成存储指令的嵌入式存储器,所述指令用于进行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110可不包含控制器115,且可替代地依赖于(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供的)外部控制。
20.一般来说,控制器115可从主机系统120接收命令或操作,且可将命令或操作转换成指令或适当的命令,以实现对存储器组件112a至112n的所要存取。控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正(ecc)操作、加密操作、高速缓存操作,以及与存储器组件112a至112n相关联的逻辑块地址与物理块地址之间的地址转译。控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成命令指令以存取存储器组件112a至112n,以及将与存储器组件112a至112n相关联的响应转换成用于主机系统120的信息。
21.存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲(例如dram)和地址电路系统(例如,行解码器和列解码器),其可从控制器115接收地址且对地址进行解码以存取存储器组件112a至112n。
22.存储器子系统110包含定序器113,所述定序器113可用于使用两个单独的阈值针对存储器组件112a至112n中的一或多个调度从主机系统120接收且存储在多层级队列结构130中的存储器命令的执行。在一个实施方案中,第一阈值由关于相关联队列中的待决命令的数目的提升阈值准则界定。第二阈值由所执行的事务阈值准则界定,所述所执行的事务阈值准则是关于自将执行授权给予相关联队列以来已执行的命令的数目。在一个实施方案中,定序器113一起使用两个阈值以确定何时将执行授权从一个队列切换到另一队列。如果定序器113确定指示已从队列结构130中的某一队列执行的事务的数目的计数器的值符合(例如,满足或超出)对应所执行的事务阈值准则,那么定序器可将执行授权从当前主动队列切换到另一非主动队列且复位计数器的值。当执行命令并递增计数器时,定序器113可继续监视每一队列中的待决命令的数目。如果在计数器的值符合用于主动队列的所执行的事务阈值准则之前的任何时间处,非主动队列中的待决命令的数目符合对应的提升阈值准则,那么定序器113可将执行授权切换到非主动队列,即使尚未符合事务阈值准则。在将执行授权切换到另一队列之后,由此使非主动队列主动,定序器113可执行来自所述队列的命令,且可应用对应的提升阈值准则和所执行的事务阈值准则以确定何时再次切换执行授权。下文描述关于定序器113的操作的另外细节。
23.图2为根据本公开的一些实施例的用于使用双阈值受控调度处理存储器命令的多层级队列结构130的框图。在一个实施方案中,多层级队列结构130包含命令队列210、读取命令队列220和写入命令队列230。在其它实施方案中,多层级队列结构130可包含一些其它数目和/或布置的队列。多层级队列结构130中的队列中的每一个可包含按顺序保持的命令集合,使得入队(即,添加到)队列中的第一命令也为待从队列去队(即,去除)的第一命令。在其它实施方案中,可使用一些其它数据结构或结构,例如缓冲器等。在一个实施方案中,存储器组件112为包含数个单独分区242的单个存储器裸片。来自读取命令队列220或写入命令队列230的存储器命令可被引导到分区242中的任一个。在另一实施方案中,存储器组件112包含多个存储器裸片。在一个实施方案中,存储器子系统110包含用于每一存储器组件112或用于存储器组件的每一个别存储器裸片的单独的多层级队列结构130。
24.命令队列210从主机系统120或从存储器子系统110的某一其它组件接收主机命令212,且存储主机命令212直到可执行进一步处理。在一个实施方案中,定序器113识别命令队列210中的主机命令212中的每一个的命令类型。举例来说,通过检查特定主机命令212的结构且查找经界定命令类型字段中的指示值,定序器113可确定主机命令是读取命令还是写入命令。读取命令包含用以从存储器组件112的特定地址读取数据的指令,而写入命令包含用以将数据写入到存储器组件112的特定地址的指令。取决于命令类型,定序器113可将命令移动到读取命令队列220或写入命令队列230中的一个。因此,读取命令队列220包含数个读取命令222(即,主机命令212的第一子集),且写入命令队列230包含数个写入命令232(即,主机命令212的第二子集)。
25.在一个实施方案中,定序器113使用两个单独的阈值将存储器命令的执行从读取命令队列220和写入命令队列230调度到存储器组件112。在一个实施方案中,第一阈值由关
于相关联队列中的待决(即,尚未执行)命令的数目的提升阈值准则界定。第二阈值由所执行的事务阈值准则界定,所述所执行的事务阈值准则是关于自将执行授权260给予相关联队列以来已执行的命令的数目。在一个实施方案中,两个阈值一起用于确定何时将执行授权从一个队列切换到另一队列(即,何时停止执行来自当前主动队列的命令和何时开始执行来自另一队列的命令)。
26.在一个实施方案中,定序器113可开始执行来自读取命令队列220中的任一个的请求,或写入命令队列230具有符合(例如,超出)对应提升阈值准则的数个待决命令。如果队列都不符合提升阈值准则,那么定序器113可继续执行来自当前主动队列的命令(即,最近执行的命令来自所述队列)。出于解释的目的,可假设读取命令队列220为当前主动队列。每当执行来自读取命令队列220的读取命令222时,定序器113可递增指示自将执行授权260给予相关联队列以来已执行的命令的数目的计数器250。在一个实施方案中,执行授权260充当用以执行来自其当前相关联的队列的命令的权限。举例来说,执行授权可具有一或多个对应的状态位(例如,使用独热编码),所述状态位的值向定序器113指示读取命令队列220和写入命令队列230中的哪一个为当前主动的。在此实施方案中,第一值(例如2'b01)可指示写入命令队列230为主动的,而第二值(例如2'b10)可指示读取命令队列220为主动的。定序器113可根据本文中所描述的双阈值受控调度方案将执行授权260切换到另一队列(例如,通过修改状态位的值)。
27.如果定序器113确定计数器250的值符合(例如,满足或超出)对应所执行的事务阈值准则,那么定序器113可将执行授权260从读取命令队列220切换到先前非主动的写入命令队列230且开始执行写入命令232。定序器113还可复位计数器250的值。当执行来自读取命令队列220的读取命令222且递增计数器250时,定序器113可继续监视每一队列中的待决命令的数目。如果在计数器250的值符合用于读取命令队列220的事务阈值准则之前的任何时间处,写入命令队列230中的待决写入命令232的数目符合对应的提升阈值准则,那么定序器113可将执行授权260切换到写入命令队列230,即使尚未符合用于读取命令队列220的事务阈值准则。因此,响应于符合用于读取命令队列220的所执行的事务阈值准则或符合用于写入命令队列230的提升阈值准则中的任一个,定序器113可将执行授权260从读取命令队列220切换到写入命令队列230。在将执行授权260切换到写入命令队列230之后,定序器113可开始针对存储器组件112执行写入命令232。
28.当写入命令队列230为当前主动队列时,每当执行来自写入命令队列230的写入命令232时,定序器113可递增指示自将执行授权260给予相关联队列以来已执行的命令的数目的计数器250的值。在一个实施方案中,同一计数器250用于读取命令队列220和写入命令队列230。在其它实施方案中,读取命令队列220和写入命令队列230中的每一个可具有单独计数器。
29.如果定序器113确定计数器250的值符合(例如,满足或超出)对应所执行的事务阈值准则,那么定序器113可将执行授权260从写入命令队列230切换到读取命令队列220且再次执行读取命令232。定序器113还可复位计数器250的值。当执行来自写入命令队列230的写入命令232时,定序器113可继续监视每一队列中的待决命令的数目。如果在计数器250的值符合用于写入命令队列230的事务阈值准则之前的任何时间处,读取命令队列220中的待决读取命令222的数目符合对应的提升阈值准则,那么定序器113可将执行授权260切换到
读取命令队列220,即使尚未符合用于写入命令队列230的事务阈值准则。然而,如果主动队列(例如写入命令队列230)中的待决事务的数目也符合提升阈值准则,那么定序器113可维持对主动队列的执行授权260,直到所执行命令的数目符合所执行的事务阈值准则。
30.图3为根据本公开的一些实施例的用于使用双阈值受控调度处理存储器命令的实例方法的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的定序器113执行。尽管以特定序列或次序展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,并且一些过程可并行执行。另外,可在各种实施例中省略一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流程是可能的。
31.在操作310处,处理装置从主机系统120或从存储器子系统110的某一其它组件接收主机命令212。在操作315处,处理装置将主机命令212存储在命令队列210中。命令队列210可包含按顺序保持的主机命令212的集合,且实施用于管理主机命令212的先进先出(fifo)方案。在其它实施方案中,可使用一些其它数据结构或结构,例如缓冲器等。
32.在操作320处,处理装置确定主机命令212是否为读取命令222。在一个实施方案中,定序器113识别命令队列210中的主机命令212中的每一个的命令类型。举例来说,通过检查特定主机命令212的结构且查找经界定命令类型字段中的指示值,定序器113可确定主机命令是读取命令222还是写入命令232。取决于命令类型,定序器113可将命令移动到读取命令队列220或写入命令队列230中的一个。
33.如果其为读取命令222,那么在操作325处,处理装置将读取命令222移动到读取命令队列220。如果主机命令212不是读取命令且实际上为写入命令232,那么在操作330处,处理装置将写入命令232移动到写入命令队列230。因此,读取命令队列220包含数个读取命令222(即,主机命令212的第一子集),且写入命令队列230包含数个写入命令232(即,主机命令212的第二子集)。
34.在操作335处,处理装置使用双阈值受控调度执行来自读取命令队列220和写入命令队列230的命令。在一个实施方案中,第一阈值由关于相关联队列中的待决命令的数目的提升阈值准则界定。第二阈值由所执行的事务阈值准则界定,所述所执行的事务阈值准则是关于自将执行授权给予相关联队列以来已执行的命令的数目。在一个实施方案中,定序器113一起使用两个阈值以确定何时将执行授权260从一个队列切换到另一队列,如下文将关于图4和图5更详细地描述。
35.图4为根据本公开的一些实施例的用于使用提升阈值准则处理存储器命令的实例方法的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的定序器113执行。尽管以特定序列或次序展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,并且一些过程可并行执行。另外,可在各种实施例中省略一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流程是可能的。
36.在操作410处,处理装置确定读取命令队列220和写入命令队列230中的非主动队列中的待决命令的数目。主动队列可包含当前保持执行授权260且当前正在执行来自其的命令(或最近执行来自其的命令)的队列。相反地,非主动队列为另一队列,所述队列当前保持执行授权260且当前正在执行来自所述队列的命令(或最近执行来自所述队列的命令)。在一个实施方案中,定序器113查询非主动队列以确定有多少待决命令存储在所述队列中。数个待决命令可包含存储在队列中但尚未执行或调度以用于定序器113的执行的命令。在另一实施方案中,定序器113维持用于读取命令队列220和写入命令队列230中的每一个的计数器(与计数器250分离),所述计数器每当命令添加到所述队列时递增且每当执行来自所述队列的命令时递减。因此,这些计数器的值在任何时间点处都将表示对应队列中的待决命令的数目。
37.在操作415处,处理装置确定非主动队列中的待决命令的数目是否符合与非主动队列相关联的第一提升阈值准则。在一个实施方案中,定序器113可连续地或周期性地监视主动和非主动队列中的待决命令的数目。定序器113可将非主动队列中的待决命令的数目与第一提升阈值准则相比较以确定非主动队列中的待决命令的数目是否符合(例如,满足或超出)对应的提升阈值准则。取决于实施方案,第一提升准则可表达为待决命令的离散数目(例如,64命令)或表达为非主动队列的容量的分数或百分比(例如,50%满)。
38.如果符合第一提升阈值准则,那么在操作420处,处理装置确定读取命令队列220和写入命令队列230中的当前主动队列中的待决命令的数目。在一个实施方案中,定序器113查询主动队列以确定有多少待决命令存储在所述队列中。在另一实施方案中,定序器113检查与主动队列相关联的计数器,所述计数器的值表示主动队列中的待决命令的数目。
39.在操作425处,处理装置确定主动队列中的待决命令的数目是否符合与主动队列相关联的第二提升阈值准则。在一个实施方案中,定序器113可将主动队列中的待决命令的数目与第二提升阈值准则相比较以确定主动队列中的待决命令的数目是否符合(例如,满足或超出)对应的提升阈值准则。取决于实施方案,与主动队列相关联的第二提升阈值准则可与同非主动队列相关联的第一提升阈值准则相同或不同。
40.如果不符合第二提升阈值准则,那么在操作430处,处理装置将执行授权从主动队列切换到非主动队列。在将执行授权切换到非主动队列之后,由此使非主动队列主动,定序器可执行来自所述队列的命令且可返回到操作410并继续监视主动和非主动队列中的每一个中的待决命令的数目。如果非主动队列中的待决命令的数目不符合第一提升阈值准则或主动队列中的待决命令的数目确实符合第二提升阈值准则,那么在操作435处,处理装置维持对主动队列的执行授权260。
41.图5为根据本公开的一些实施例的用于使用所执行的事务阈值准则处理存储器命令的实例方法的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500由图1的定序器113执行。尽管以特定序列或次序展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,并且一些过程可并行执行。另外,可在各种实施例中省略一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流程是可能的。
42.在操作510处,处理装置执行来自多层级队列结构130中的第一队列的命令。定序器113可调度来自当前保持执行授权260的任何队列的存储器命令的执行。如果队列都不保存执行授权260,那么定序器113可选择待决命令的数目符合对应的提升阈值准则或具有较高数目的待决命令的队列。举例来说,在一个实施方案中,定序器113可调度来自读取命令队列220的读取命令222的执行。在操作515处,处理装置递增与读取命令队列220相关联的计数器250的值,所述值指示自读取命令队列220接收执行授权260以来已执行的读取命令222的数目。
43.在操作520处,处理装置确定已执行的读取命令222的数目(如由计数器250的值所指示)是否符合与读取命令队列220相关联的第一所执行的事务阈值准则。在一个实施方案中,定序器113可将已执行的读取命令222的数目与第一所执行的事务阈值准则相比较以确定所执行命令的数目是否符合(例如,满足或超出)对应所执行的事务阈值准则。取决于实施方案,第一所执行的事务准则可表达为所执行命令的离散数目(例如,16或32命令)或表达为所述队列的容量的分数或百分比(例如,容量的20%)。如果不符合第一所执行的事务阈值准则,那么处理装置返回到操作510且执行来自读取命令队列220的另一读取命令222。
44.如果符合第一所执行的事务阈值准则,那么在操作525处,处理装置将执行授权260从读取命令队列220切换到第二队列,例如写入命令队列230。在操作530处,处理装置执行来自写入命令队列230的写入命令232。在一个实施方案中,定序器113选择写入命令队列230中的最旧写入命令232。在操作545处,处理装置递增与写入命令队列230相关联的计数器250的值,所述值指示自写入命令队列230接收执行授权260以来已执行的写入命令232的数目。
45.在操作540处,处理装置确定已执行的写入命令232的数目(如由计数器250的值所指示)是否符合与写入命令队列230相关联的第二所执行的事务阈值准则。在一个实施方案中,定序器113可将已执行的写入命令232的数目与第二所执行的事务阈值准则相比较以确定所执行命令的数目是否符合(例如,满足或超出)对应所执行的事务阈值准则。取决于实施方案,与写入命令队列230相关联的第二所执行的事务阈值准则可与同读取命令队列220相关联的第一所执行的事务阈值准则相同或不同。如果不符合第二所执行的事务阈值准则,那么处理装置返回到操作530且执行来自写入命令队列230的另一写入命令232。
46.如果符合第二所执行的事务阈值准则,那么在操作545处,处理装置将执行授权260从写入命令队列230切换回到读取命令队列220且返回到框510以恢复执行来自读取命令队列220的读取命令222。如上文所描述,当执行来自读取命令队列220的读取命令222或执行来自写入命令队列230的写入命令232时,定序器113可继续监视每一队列中的待决命令的数目,如上文关于图4所描述。因此,响应于符合用于主动队列的所执行的事务阈值准则或符合用于非主动队列的提升阈值准则中的任一个(除非还符合用于主动队列的提升阈值准则),定序器113可将执行授权260从主动队列切换到非主动队列。
47.图6说明计算机系统600的实例机器,在所述实例机器内可执行用于使机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的定序器113的操作)。在替代性实施例中,机器可连接(例如联网)到lan、内联网、外
联网和/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端

服务器网络环境中的服务器或客户端机器的容量中进行操作。
48.机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够执行指定待由所述机器进行的动作的指令集(依序或以其它方式)的任何机器。此外,虽然说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述机器单独地或共同地执行指令的一(或多个)集合以执行本文中所论述的方法中的一或多种。
49.实例计算机系统600包含经由总线630彼此通信的处理装置602、主存储器604(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(sram)等)以及数据存储系统618。
50.处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更明确地说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置602配置成执行用于进行本文中所论述的操作和步骤的指令626。计算机系统600可进一步包含网络接口装置608以通过网络620通信。
51.数据存储系统618可包含机器可读存储介质624(也称为计算机可读介质),所述机器可读存储介质624上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任何一或多种的软件。指令626还可在其由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储介质。机器可读存储介质624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。
52.在一个实施例中,指令626包含用以实施对应于图1的定序器113的功能性的指令。尽管在实例实施例中机器可读存储介质624展示为单个介质,但应认为术语“机器可读存储介质”包含存储一或多个指令集的单个介质或多个介质。还应认为术语“机器可读存储介质”包含能够存储或编码供机器执行的指令集且使得机器执行本公开的方法中的一或多种的任何介质。因此,应认为术语“机器可读存储介质”包含但不限于固态存储器、光学介质和磁性介质。
53.已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里并且通常被认为是引起所要结果的操作的自洽序列。所述操作为要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。已经证明主要出于通用的原因,有时将这些信号称为位、值、元件、符号、字符、术语、数目等是方便的。
54.然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便标签。本公开可以指将计算机系统的寄存器和存储器内的表示为物理(电子)量的数
据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
55.本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这类计算机程序可存储在计算机可读存储介质中,所述计算机可读存储介质例如但不限于各自耦合到计算机系统总线的包含软盘、光盘、cd

rom和磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁性卡或光学卡的任何类型的磁盘或适合于存储电子指令的任何类型的介质。
56.本文中呈现的算法和显示器并非在本质上与任何特定计算机或其它设备有关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
57.本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读介质。机器可读介质包含用于以机器(例如计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如计算机可读)介质包含机器(例如计算机)可读存储介质,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储介质、光学存储介质、快闪存储器组件等。
58.在前述说明书中,已参考其具体实例实施例描述了本公开的实施例。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,说明书和图式应以说明性意义上而非限制性意义看待。
再多了解一些

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

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

相关文献