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

存储器命令的基于信用的调度的制作方法

2022-02-20 13:50:27 来源:中国专利 TAG:


1.本公开大体上涉及存储器命令的调度,且更具体来说,涉及存储器命令的基于信用的调度。


背景技术:

2.存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可以是例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统将数据存储在存储器装置处且从存储器装置检索数据。


技术实现要素:

3.在一个方面中,本公开涉及一种方法,其包括:由存储器子系统接收多个存储器请求流,其中每一存储器请求流与源相关联;确定所述多个存储器请求流中的每一个的带宽分配,其中每一带宽分配表示所述存储器子系统相对于由所述存储器子系统管理的存储器组件的总带宽的一部分;基于来自所述多个存储器请求流的每一存储器请求流的所述带宽分配将来自由所述存储器子系统管理的总信用集合的信用集合指派给每一存储器请求流;和从所述存储器子系统的存储器命令队列确定存储器命令以用于发布,其中所述存储器命令队列中的每一存储器命令与所述多个存储器请求流中的存储器请求流相关联,且所述确定所述存储器命令是基于指派给每一存储器请求流的所述信用,使得向与具有较高数目的所指派信用的存储器请求流相关联的存储器命令给予高于与具有较低数目的所指派信用的存储器请求流相关联的存储器命令的发布优先级。
4.在另一方面中,本公开涉及一种非暂时性计算机可读存储介质,其包括指令,所述指令在由处理装置执行时使得所述处理装置:接收多个存储器请求流,其中每一存储器请求流与源相关联;确定所述多个存储器请求流中的每一个的带宽分配,其中每一带宽分配表示存储器子系统相对于由所述存储器子系统管理的存储器组件的总带宽的一部分;基于来自所述多个存储器请求流的每一存储器请求流的所述带宽分配将来自由所述存储器子系统管理的总信用集合的信用集合指派给每一存储器请求流;和从所述存储器子系统的存储器命令队列确定存储器命令以用于发布,其中所述存储器命令队列中的每一存储器命令与所述多个存储器请求流中的存储器请求流相关联,且所述确定所述存储器命令是基于指派给每一存储器请求流的所述信用,使得向与具有较高数目的所指派信用的存储器请求流相关联的存储器命令给予高于与具有较低数目的所指派信用的存储器请求流相关联的存储器命令的发布优先级。
5.在又一方面中,本公开涉及一种系统,其包括:存储器组件;和处理装置,其与所述存储器组件以操作方式耦合,所述处理装置用以:基于来自多个存储器请求流的每一存储器请求流的带宽分配将来自由所述存储器子系统管理的总信用集合的信用集合指派给所述多个存储器请求流中的每一个,其中每一带宽分配表示存储器子系统相对于由所述存储器子系统管理的存储器组件的总带宽的一部分;和从所述存储器子系统的存储器命令队列
确定存储器命令以用于发布,其中所述存储器命令队列中的每一存储器命令与所述多个存储器请求流中的存储器请求流相关联,且所述确定所述存储器命令是基于指派给每一存储器请求流的所述信用,使得向与具有较高数目的所指派信用的存储器请求流相关联的存储器命令给予高于与具有较低数目的所指派信用的存储器请求流相关联的存储器命令的发布优先级。
附图说明
6.根据下文提供的详细描述且根据本公开的各种实施例的附图将更加充分地理解本公开。然而,附图不应视为将本公开限制于特定实施例,而是仅用于解释和理解。
7.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。
8.图2a和2b展示根据本公开的一些实施例的基于指派给存储器请求流的信用来调度存储器命令的发布的实例方法的流程图。
9.图3展示根据本公开的一些实施例的指派给每一流/流识别符的带宽分配。
10.图4展示根据本公开的一些实施例的基于带宽分配指派给每一流/流识别符的信用。
11.图5展示根据本公开的一些实施例的基于指派给每一流/流识别符的信用按优先级次序表排序的流/流识别符。
12.图6展示根据本公开的一些实施例的存储与不同流/流识别符相关联的待决存储器命令的存储器队列。
13.图7展示根据本公开的一些实施例的用于存储与流/流识别符相关联的已授予信用的存储器命令的存储器命令授予阵列。
14.图8是根据本公开的一些实施例的基于指派给存储器请求流的信用来调度存储器命令的发布的另一实例方法的流程图。
15.图9是可在其中操作本公开的实施例的实例计算机系统的框图。
具体实施方式
16.本公开的方面是针对调度用于在存储器子系统中发布的存储器命令的基于信用的方法。存储器子系统的实例是经由存储器总线连接到中央处理单元(cpu)的存储器模块。存储器子系统可以是存储装置、存储器模块,或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个存储器装置的存储器子系统。存储器装置可包含例如非易失性存储器装置(例如,nand)。下文结合图1更详细地描述其它类型的存储器装置(包含易失性存储器装置)。主机系统可提供将存储在存储器子系统处的数据且可请求将从存储器子系统检索的数据。
17.存储器子系统具有对对应存储器装置可在固定周期(有时称为峰值带宽)中经由数据总线递送的数据量的上限。对于涉及具有不同优先级的不同业务源(有时称为流)的存储器子系统的一些使用模型,存储器子系统可允许这些不同源基于其相应优先级来竞争可用存储器带宽。特定来说,基于所述源的优先级,将可用存储器带宽的不同比例分配给来自每一源的存储器业务。举例来说,计算系统可管理运行过程集合,包含涉及实时银行交易的一个过程和更新文字处理效用的另一过程。假设两个过程时间共享同一处理器(其利用单
个存储器子系统),那么可能需要来自过程的存储器请求/命令,即服务于待从管理软件更新的过程给予高于存储器请求/命令的优先级的银行交易。即,银行交易具有实时、财务含义,而微小延迟更新软件可能没有主要问题。然而,为了在存在待决银行交易时限制与用于完全更新软件的过程相关的存储器请求的处理不是可行解决方案,因为软件更新可能永远不准许在这种策略下执行。替代方案是修改计算系统中的过程调度器以优先排序银行交易过程的存储器请求,但这一方法存在一些缺点。举例来说,过程调度器的修改需要修改计算系统的操作系统,这是复杂的且有时不准许。此外,给定当今计算系统中的存储器阶层的复杂性,一旦由操作系统作出的关于存储器请求调度的决策最终传播通过高速缓存阶层且到达存储器子系统,则所述决策可能对存储器请求处理的排序仅具有间接影响。
18.本公开的方面通过实施选择用于发布的存储器命令的基于信用的方法来解决以上和其它不足。特定来说,存储器子系统针对正由存储器子系统处理的存储器命令/请求的每一流从存储器子系统的峰值带宽确定带宽分配。举例来说,带宽分配可表示指派给每一流的峰值带宽的百分比或比率。另外,基于用于每一存储器请求流的优先级来确定这些带宽分配。举例来说,在以上实例中,来自银行过程的存储器请求流将具有较高优先级且因此与来自软件更新过程的存储器请求流相比具有更高带宽分配。基于所确定的带宽分配,存储器子系统从由存储器子系统管理的预定数目的信用将信用指派给每一存储器请求流。举例来说,存储器子系统可将信用指派给与分配给每一流的带宽成比例的每一存储器请求流,同时确保向每一存储器请求流指派至少一个信用。当确定发布来自命令队列的哪些存储器命令以用于履行时,存储器子系统对与具有较高数目的所指派信用的流相关联的存储器命令进行优先级排序。另外,存储器子系统跟踪针对每一存储器请求流发布的存储器命令的数目,使得仅向每一流分派等于信用的初始所指派数目的存储器命令的发布,直到所有其它流已达到其信用分配为止。因此,以上方法为存储器子系统提供简化的技术以管理与正由存储器子系统处理的存储器请求的每一流相关联的存储器命令的发布,其考虑与每一流相关联的优先级且不完全限制较低优先级流的处理以有利于较高优先级流。本文中将提供关于此方法的另外细节。
19.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含介质,如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或这类的组合。
20.存储器子系统110可以是存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储器(ufs)驱动器、安全数字(sd)卡和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so-dimm)和各种类型的非易失性双列直插式存储器模块(nvdimm)。
21.计算系统100可以是计算装置,如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(iot)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的这种计算装置。
22.计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系
统110的主机系统120的一个实例。如本文所使用,“耦合到”或“与
……
耦合”通常是指组件之间的连接,所述组件可以是间接通信连接或直接通信连接(例如,无介入组件),不管有线或无线,包含如电、光学、磁性等的连接。
23.主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,nvdimm控制器),和存储协议控制器(例如,pcie控制器、sata控制器)。主机系统120使用存储器子系统110(例如)将数据写入到存储器子系统110且从存储器子系统110读取数据。
24.主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行附接scsi(sas)、小型计算机系统接口(scsi)、双数据速率(ddr)存储器总线、双列直插式存储器模块(dimm)接口(例如,支持双数据速率(ddr)的dimm套接接口)、开放nand快闪接口(onfi)、双数据速率(ddr)、低功率双数据速率(lpddr),或任何其它接口。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1说明作为实例的存储器子系统110。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
25.存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是(但不限于)随机存取存储器(ram),如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
26.非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(nand)类型快闪存储器和就地写入存储器,如三维交叉点(“3d交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来进行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand类型快闪存储器包含例如二维nand(2d nand)和三维nand(3d nand)。
27.虽然描述了非易失性存储器装置,如nand型存储器(例如,2d nand、3d nand)和3d交叉点非易失性存储器单元阵列,但存储器装置130可基于任何其它类型的非易失性存储器,如只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻性随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)快闪存储器,以及电可擦除可编程只读存储器(eeprom)。
28.存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以进行操作,如在存储器装置130处读取数据、写入数据或擦除数据和其它这类操作(例如,响应于由控制器115在命令总线上调度的命令)。存储器子系统控制器115可包含硬件,如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。硬件可包含具有专用(即,硬译码)逻
辑的数字电路系统以进行本文中所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等),或另一合适的处理器。
29.存储器子系统控制器115可包含处理装置117(处理器),其配置成执行存储于本地存储器119中的指令。在所说明的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其配置成存储指令以用于进行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
30.在一些实施例中,本地存储器119可包含存储器寄存器,其存储存储器指针、所提取数据等。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,且可替代地依赖于外部控制(例如,由外部主机提供,或由与存储器子系统110分离的处理器或控制器提供)。
31.一般来说,存储器子系统控制器115可从主机系统120接收命令或操作且可将所述命令或操作转换成指令或适当的命令,以实现对存储器装置130和/或存储器装置140的所需存取。存储器子系统控制器115可负责其它操作,如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(lba)、名字空间)与物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成命令指令以存取存储器装置130和/或存储器装置140,以及将与存储器装置130和/或存储器装置140相关联的响应转换成用于主机系统120的信息。
32.存储器子系统110还可以包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,dram)和可从存储器子系统控制器115接收地址且解码所述地址以存取存储器装置130的地址电路系统(例如,行解码器和列解码器)
33.在一些实施例中,存储器装置130包含本地介质控制器135,其结合存储器子系统控制器115操作以在存储器装置130的一或多个存储器单元上执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130进行介质管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行介质管理的原始存储器装置。受管理存储器装置的实例是受管理nand(mnand)装置。
34.存储器子系统110包含命令选择逻辑142,其可使用指派给存储器命令的流/源的信用来调度用于发布的存储器命令。在一些实施例中,控制器115包含命令选择逻辑142的至少一部分。举例来说,控制器115可包含配置成执行存储在本地存储器119中的指令以用于进行本文中所描述的操作的处理器117(处理装置)。在一些实施例中,命令选择逻辑142是主机系统110、应用程序或操作系统的部分。
35.命令选择逻辑142可使用指派给存储器命令的流/源的信用来调度用于发布的存储器命令。下文描述关于命令选择逻辑142的操作的另外细节。
36.图2a和2b展示根据本公开的一些实施例的基于指派给流/流识别符的信用来调度存储器命令的发布的实例方法200的流程图。方法200可由处理逻辑进行,所述处理逻辑可
包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200由图1的命令选择逻辑142进行。虽然以特定顺序或次序展示,但除非另外规定,否则所述过程/操作的次序可修改。因此,应理解所说明实施例仅作为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,可在各种实施例中省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流程是可能的。
37.如图2a中所展示,方法200在操作202处开始。在操作202处,处理装置将带宽分配集合(例如,百分比或比率)指派给正由存储器装置的处理装置处理的存储器请求/命令的每一流。举例来说,存储器子系统110可从主机系统120内的多个源或从用于存储器装置130的主机系统120集合接收存储器请求。举例来说,主机系统120可管理五个过程,所述过程各自产生用于传输到存储器子系统110的单独的存储器请求集合。存储器请求可包含读取请求(例如,从由存储器子系统110管理的存储器装置130读取数据的请求)或写入请求(例如,将数据写入到存储器装置130的请求)。来自每一源的每一存储器请求集合可称为存储器请求流,且可由流识别符识别。流识别符可包含于每一对应存储器请求中,或可以其它方式与存储器请求相关联。
38.虽然描述为来源于不同源的每一存储器请求流,但在一些实施例中,单个源可与多个存储器请求流相关联。举例来说,在主机系统120上操作的网页浏览器可与网页浏览存储器请求流(即,涉及通过网页浏览器检索网页的存储器请求)和递送存储器请求流(即,涉及通过网页浏览器流式传输视频的存储器请求)相关联。由于存储器请求流与具有不同重要性/优先级的不同目的或活动相关联,因此存储器子系统110可单独地处理每一存储器请求流。
39.虽然描述为存储器请求流的源在存储器子系统110外部,但在一些实施例中,一或多个存储器请求流的源可在存储器子系统110内。举例来说,存储器子系统可在内部产生对填充和/或逐出/清洁操作的存储器请求。因此,存储器请求流可在存储器子系统110内或存储器子系统110外部产生。
40.图3展示根据一个实施例的带宽分配表300。如所展示,带宽分配表300包含对应于四个流识别符302的四个条目。如上文所提及,每一流识别符302对应于不同存储器请求流/集合且可对应于不同源。举例来说,具有值“0”的流识别符302可对应于产生对银行交易的存储器请求或以其它方式与对银行交易的存储器请求相关联的银行过程,具有值“1”的流识别符302可对应于产生对回合制游戏(turn-based game)的存储器请求或以其它方式与对回合制游戏的存储器请求相关联的游戏过程,具有值“2”的流识别符302可对应于产生对视频流的存储器请求或以其它方式与对视频流的存储器请求相关联的流式传输视频过程,且具有值“3”的流识别符302可对应于产生对加载网页的存储器请求或以其它方式与对加载网页的存储器请求相关联的网页浏览器过程。这些过程和对应存储器请求流中的每一个可与不同优先级级别相关联。举例来说,银行过程可与最高优先级级别相关联,而流式传输视频过程、游戏过程和网页浏览器过程与顺次更低优先级级别相关联,使得网页浏览器具有最低级别优先级。在一些实施例中,两个或更多个过程和对应存储器请求流可具有相同优先级级别。
41.基于相关联的优先级级别,存储器子系统110将带宽分配百分比或比率指派给每
一过程和对应存储器请求流。这些带宽分配304表示由存储器子系统110(例如,存储器装置130)管理的存储器子系统110和/或存储器装置的峰值带宽的一部分。举例来说,图3展示每一流识别符302的带宽分配304。当所有流竞争可用带宽时,每一带宽分配304指示保留用于与给定流识别符302相关联的存储器请求的存储器子系统110的可用带宽的部分。如图3中所展示,向具有值“0”的流识别符302指派50%的带宽分配304,向具有值“1”的流识别符302指派10%的带宽分配304,向具有值“2”的流识别符302指派35%的带宽分配304,且向具有值“3”的流识别符302指派5%的带宽分配304。图3中所表示的流和带宽分配是实例和其它选项或可能的。然而,出于解释方法200的目的,下文将使用带宽分配表300。
42.在操作204处,处理装置基于带宽分配304集合将信用指派给每一存储器请求流。举例来说,存储器子系统110可根据所确定的带宽分配304将信用指派给带宽分配表300的每一流识别符302。举例来说,存储器子系统110可维持可分配/指派给流/流识别符302的预定数目的信用,且所述预定数目的信用可与存储器子系统110和/或由存储器子系统110管理的存储器装置的峰值带宽相关联。举例来说,每一信用可表示峰值带宽的1%、5%等。
43.根据在操作202处确定的带宽分配304,将预定数目的信用指派给流/流识别符302(即,与带宽分配成比例地指派有限数目的信用)。举例来说,存储器子系统110可维持十个信用(即,预定数目的信用为十个信用)。如图4中所展示,使用图3中所展示的带宽分配表300,向具有值“0”的流识别符302指派五个信用402(对应于50%带宽分配304),向具有值“1”的流识别符302指派一个信用402(对应于10%带宽分配304),向具有值“2”的流识别符302指派三个信用402(对应于35%带宽分配304),且向具有值“3”的流识别符302指派一个信用402(对应于5%带宽分配304)。即,存储器子系统110将信用402指派给每一流/流识别符302直到预定数目的可用信用402(例如,图4的实例中的十个信用402)且根据其带宽分配304,同时确保向每一流/流识别符302指派至少一个信用402,如图4的信用表400中所展示。图4中所表示的流/流识别符302和信用402是实例且其它选项是可能的。然而,出于解释方法200的目的,下文将使用信用表400。
44.在操作206处,处理装置将信用表400中的流识别符302按最多到最少所指派信用402的次序排序以形成优先级次序表。因此,遵循排序,优先级次序表中的第一/顶部流识别符302具有最多信用402或针对优先级次序表中的最多信用402而绑定。举例来说,图5展示在存储器子系统110在操作206处进行排序之后基于图4的信用402指派的优先级次序表500。如所展示,具有值“0”的流识别符302是第一/顶部流识别符302。
45.如上文所描述,存储器子系统从主机系统120接收存储器请求或以其它方式由存储器子系统110产生(例如,对填充和/或逐出/清洁操作的内部产生的存储器请求)。这些存储器请求中的每一个可与流识别符302相关联。存储器子系统110(例如,存储器子系统110的前端)产生用于这些存储器请求中的每一个的一或多个列命令,且可能产生对应于存储器装置中的位置(例如,存储器装置130的存储器组)的行命令。特定来说,行与列的组合用以识别存储器装置中的特定位置。基于存储器请求产生存取行中的数据的列命令,且如果对应行尚未打开/激活,那么产生行命令。由于存储器子系统110每时间周期仅可发布有限数目个存储器命令(即,存储器装置130和/或存储器子系统110具有有限峰值带宽),因此存储器子系统110选择性地确定要发布哪些存储器命令以维持优先级级别和带宽分配304。特定来说,如上文所提及,根据对应带宽分配304向每一流/流识别符302指派数个信用402。存
储器子系统110至少部分地基于指派给流/流识别符302的这些信用402来选择用于发布的命令。特定来说,处理装置更有可能选择与流识别符302相关联的列命令,所述流识别符302具有比与具有相对更低数目的信用402的流识别符302相关联的列命令更高数目的信用402。举例来说,展示于图5中的具有值“0”的流识别符302在这一实例中具有最多所指派信用402,且因此,存储器子系统110比与任何其它流识别符302相关联的列命令更有可能发布相关联列命令。
46.在操作208处,处理装置选择优先级次序表500中的第一/顶部流识别符302(即,与最多信用402相关联的流识别符302)作为当前流识别符302。举例来说,在展示于图5中的实例优先级次序表500中,在操作208处,处理装置将选择具有值“0”的流识别符302作为当前流识别符302。
47.在操作210处,处理装置基于存储器子系统110的页/行策略确定存储器装置130的任何存储器组中的任何行是否需要关闭。举例来说,存储器子系统110可在确定何时关闭存储器组中的行时使用关闭页策略或打开页策略。特定来说,存储器子系统110可维持存储存储器命令(包含列命令和行命令)的命令队列,而这些存储器命令等待发布/履行。行命令激活/打开开放行中的对应行和列命令存取数据。因此,当列命令正尝试存取的行尚未打开时,有时在发布列命令之前需要行命令。通过关闭页策略,当存储器子系统110中(即,命令队列中)没有待决列命令与行相关联时,所述行关闭(即,对所述行进行预充电操作以关闭所述行)。通过打开页策略,当行已打开持续阈值时间周期时关闭所述行。举例来说,当在发布与行相关联的最后列命令之后所述行已打开持续阈值时间周期(例如,5微秒)时,对存储器装置的存储器组中的行进行预充电操作。在这一实例中,在发布与所述行相关联的最后待决列命令之后等待阈值时间周期允许可在所述行关闭之前针对所述行产生其它列命令的可能性。即,激活行是相对冗长的过程,且当存在响应于与所述行相关联的新列命令而重新打开所述行的即时需要时,关闭所述行可能过早。然而,不管成本如何,关闭存储器组中的行都允许在需要时在存储器组中打开其它行。即,存储器组可仅允许在任何给定时间打开单个行。因此,关闭一行允许存储器组在需要时准许打开另一行。
48.在一些实施例中,处理装置可基于除页策略之外或代替页策略的刷新策略来确定行需要关闭。特定来说,存储器子系统110可在易失性存储器装置(如dram装置(例如,存储器装置140))上操作。这些类型的存储器装置是基于电容器的,其随时间放电。为了确保保留存储在这些存储器装置中的数据,进行刷新操作以重写所述数据,这复位相关联电容器的充电电平。然而,为了执行刷新操作,需要关闭相关联组中的所有行。因此,除潜在地其它因素之外,处理装置还可确定在操作210处每刷新策略关闭行集合。
49.在处理装置在操作210处确定需要关闭行之后,方法200移动到操作212。在操作212处,处理装置产生和发布待关闭的行的预充电命令。在操作212之后,方法200移动到操作214。
50.在操作214处,处理装置等待(1)下一调度循环(即,处理装置可发布命令的下一时间周期(例如,存储器子系统110的时钟周期))、(2)需要关闭或刷新的另一行,或(3)当不存在待决命令时,发布另一命令。在操作214之后,方法200返回到操作208。
51.返回到操作210,在处理装置确定不需要关闭行之后,方法200移动到操作216。在操作216处,处理装置确定存储器组是否需要进行刷新操作。特定来说,如上文所提及,由存
储器子系统110管理的存储器装置可以是随时间放电的易失性存储器。每一类型的易失性存储器的放电时间不同,使得第一类型的易失性存储器可具有第一放电时间周期,在此之后需要进行刷新操作以确保保留存储在存储器装置中的数据,而第二类型的易失性存储器可具有第二放电时间周期,所述第二放电时间周期可不同于第一放电时间周期。存储器子系统110可确定需要在经过与行相关联的放电时间周期后进行刷新操作。虽然相对于行的刷新来描述,但在一些实施例中,相对于整个存储器组(例如,行集合)、两个或更多个存储器组(例如,多个行集合)、存储器等级(例如,存储器组集合)或两个或更多个存储器等级(例如,多个存储器组集合)进行刷新操作。在处理装置确定需要针对行的刷新操作后,方法200移动到操作218。
52.在操作218处,处理装置产生和发布刷新命令以使得可进行刷新操作。如上文所提及,刷新可用于行、存储器组或存储器等级。在操作218之后,方法200移动到操作214。
53.返回到操作216,在处理装置确定不需要针对行的刷新操作后,方法200移动到操作220。在操作220处,处理装置确定是否(1)存在用于当前流识别符302的任何待决存储器命令,和(2)存在用于当前流识别符302的任何剩余信用402。特定来说,处理装置可检查优先级次序表500以确定与当前流识别符302相关联的数个信用402和命令队列以确定是否存在与当前流识别符302相关联的任何待决命令。图6展示根据一个实施例的命令队列600。如所展示,命令队列600包含存储器命令602和相关联流识别符302。因此,存储器子系统110可检查命令队列600以确定是否存在用于当前流识别符302的任何待决存储器命令602。响应于确定不存在用于当前流识别符302的待决存储器命令602或不存在用于当前流识别符302的任何剩余信用402,方法200移动到操作222。
54.在操作222处,处理装置选择优先级次序表500中的下一流识别符302作为当前流识别符302。即,由于不存在用于当前流识别符302的待决存储器命令602和/或不存在针对当前流识别符302使用的信用402,因此方法200移动到下一最高优先级流识别符302。在操作222之后,方法200返回到操作220。
55.返回到操作220,在处理装置确定存在用于当前流识别符302的待决存储器命令602且存在用于当前流识别符302的剩余信用402之后,方法200移动到操作224。在操作224处,处理装置确定与当前流识别符302相关联的待决存储器命令602是否是由处理装置管理的存储器装置中的行的最老列命令。特定来说,为了强制执行适当命令相依性(例如,以确保在后续读取之前进行写入),存储器子系统110按其年龄次序处理存储器命令602(即,在每一行上的较年轻存储器命令602之前处理较老存储器命令602)。虽然存储器子系统110可在更细粒度级别强制执行存储器命令602相依性(例如,根据存储器命令602相对于行与列的组合的年龄来处理所述存储器命令602),但每行强制执行存储器命令602相依性可简化实施方案。响应于处理装置确定当前流识别符302不与作为行的最老列命令的列命令相关联,方法200移动到操作222。相反,响应于处理装置确定当前流识别符302与作为行的最老命令的列命令相关联,方法200移动到操作226。
56.在操作226处,处理装置确定是否可在命令队列600中识别待决存储器命令602,所述待决存储器命令602(1)是a)已授予信用(如下文将描述),或b)与当前流识别符302相关联的待决列命令,或(2)是对应于其中当前流识别符302具有作为用于所述行的最老列命令的待决列命令(称为列命令cc)的行的待决行命令。如上文所提及,存储器子系统110可产生
行命令以在预期试图从所述行存取数据的待决列命令时打开/激活行。由于经由行命令激活行需要相对较长时间量来完成,因此存储器子系统110在预期对应列命令的发布时激活行,但将信用发布给即将发布的列命令。当处理装置无法如上文所概述而识别存储器命令602时,方法200移动到操作214。
57.相反,当处理装置可如上文所概述而识别存储器命令602时,方法200移动到操作228。在操作228处,处理装置如操作226中所概述而选择最早识别的存储器命令602(列命令或行命令)作为所选存储器命令602(称为存储器命令(mc))。举例来说,使用图6的其中存储器命令602根据其减小的年龄来编号(例如,存储器命令0是最老存储器命令602且存储器命令3是最年轻存储器命令602)的命令队列600,当存储器命令0是与当前流识别符302相关联的待决列命令且存储器命令3是对应于其中当前流识别符302具有作为用于所述行的最老列命令的待决列命令cc的行的待决行命令时,存储器子系统110选择存储器命令0作为所选存储器命令mc。
58.在操作230处,处理装置确定所选存储器命令mc是否是行命令。当处理装置确定所选存储器命令mc是行命令时,方法200移动到操作232。
59.在操作232处,处理装置将当前流识别符302设定为用于在操作226处所识别的列命令cc的流识别符302。举例来说,当在操作228处存储器子系统110选择存储器命令0(其是对列命令3正尝试存取的行的行命令)时,存储器子系统110将当前流识别符302设定为“0”,其对应于用于存储器命令3的流识别符302。
60.在操作234处,处理装置授予存储器命令mc来自分配给当前流识别符302的信用402集合的信用402,使得准许发布存储器命令mc。举例来说,将来自分配给当前流识别符302的信用402集合的信用402授予存储器命令mc可包含将存储器命令mc添加到与当前流识别符302相关联的存储器命令602的阵列。举例来说,图7展示与具有值“0”的流识别符302相关联的存储器命令授予阵列700。如所展示,阵列700包含存储器命令0,其在操作234处添加。由于阵列700包含单个存储器命令602,因此已使用来自分配给流/流识别符302的五个信用402的仅单个信用。
61.在操作236处,处理装置发布存储器命令mc。举例来说,存储器子系统110可发布存储器命令mc。发布存储器命令可包含(1)当存储器命令是列命令时从存储器装置的一部分读取数据或将数据写入到存储器装置的一部分,或(2)当存储器命令mc是行命令时激活行。
62.返回到操作230,当所选存储器命令mc不是行命令(例如,所选存储器命令是列命令)时,方法200移动到操作238。在操作238处,处理装置将当前流识别符302设定为用于在操作226处所识别的存储器命令mc的流识别符302。举例来说,当在操作228处存储器子系统110选择存储器命令0(其是列命令)时,存储器子系统110将当前流识别符302设定为“0”,其对应于用于存储器命令0的流识别符302。
63.在操作240处,处理装置授予存储器命令mc来自分配给当前流识别符302的信用402集合的信用402,使得准许发布存储器命令mc。可以与操作234类似的方式进行操作240。
64.在操作242处,处理装置确定当前流识别符302是否具有剩余信用402。举例来说,当使用存储器命令授予阵列700跟踪针对每一流识别符302授予给存储器命令602的信用402时,存储器子系统110可通过将与当前流识别符302相关联的存储器命令授予阵列700中的条目的数目(即,存储器命令授予阵列700的大小)与分配给当前流识别符302的信用402
的初始数目相比较而确定当前流识别符302是否具有剩余信用402。当与当前流识别符302相关联的存储器命令授予阵列700中的条目的数目等于分配给当前流识别符302的信用402的数目时,处理装置确定当前流识别符不具有剩余的信用402,且方法200移动到操作244。
65.在操作244处,处理装置将当前流识别符302移动到优先级次序表400的最后/后方。特定来说,由于当前流识别符302不具有用于授予存储器命令602的更多信用402,因此流识别符302在优先级次序表400中移动到最后优先级。
66.在操作246处,处理装置清除与当前流识别符302相关联的所有信用402授予。举例来说,当使用存储器命令授予阵列700来跟踪授予给存储器命令602的信用402时,存储器子系统110可通过清除/排空与当前流识别符302相关联的存储器命令授予阵列700(例如,去除存储器命令授予阵列700中的所有条目,使得存储器命令授予阵列700为空)来清除信用402授予。
67.在操作246之后或处理装置在操作242处确定当前流识别符302已剩余信用402后,方法200移动到操作236。
68.现转而参考图8,展示根据本公开的一些实施例的用于基于指派给流/流识别符的信用来调度存储器命令的发布的实例方法800的流程图。方法800可由处理逻辑进行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法800由图1的命令选择逻辑142进行。虽然以特定顺序或次序展示,但除非另外规定,否则所述过程/操作的次序可修改。因此,应理解所说明实施例仅作为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,可在各种实施例中省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流程是可能的。
69.如图8中所展示,方法800在操作802处开始。在操作802处,处理装置接收多个存储器请求流,且每一存储器请求流与源相关联。举例来说,如上文所描述,存储器子系统110可从主机系统120内的多个源或从用于存储器装置130的主机系统120集合接收存储器请求。举例来说,主机系统120可管理五个过程,所述过程各自产生用于传输到存储器子系统110的单独的存储器请求集合,且来自每一源的每一存储器请求集合可称为存储器请求流且可由流识别符识别。
70.在操作804处,处理装置确定多个存储器请求流中的每一个的带宽分配304。在这一配置中,每一带宽分配304表示相对于由存储器子系统110管理的存储器组件的存储器子系统110的总带宽的一部分,且每一带宽分配304基于每一存储器请求流的对应源来指示对应存储器请求流相对于多个存储器请求流中的其它存储器请求流的优先级级别。举例来说,带宽分配表300包含对应于四个流识别符302和四个对应存储器请求流的四个条目。如上文所提及,每一流识别符302对应于不同存储器请求流/集合且可对应于不同源。由于具有值“0”的流识别符302具有最大分配,因此对应流在其它流/流识别符302上具有最高优先级。
71.在操作806处,处理装置基于来自多个存储器请求流的每一存储器请求流的带宽分配304将来自由存储器子系统110管理的总信用402集合的信用402集合指派给每一存储器请求流。即,存储器子系统110将信用402指派给每一流/流识别符302直到预定数目的可用信用402(例如,图4的实例中的十个信用402)且根据其带宽分配304,同时确保向每一流/
流识别符302指派至少一个信用402,如图4的信用表400中所展示。
72.在操作808处,处理装置从存储器子系统110的存储器命令队列700确定存储器命令以用于发布。在这一配置中,存储器命令队列700中的每一存储器命令与多个存储器请求流中的存储器请求流相关联,且确定存储器命令是基于指派给每一存储器请求流的信用402,使得向与具有较高数目的所指派信用的存储器请求流相关联的存储器命令给予高于与具有较低数目的所指派信用402的存储器请求流相关联的存储器命令的发布优先级。
73.图9说明计算机系统900的实例机器,在所述计算机系统900内可执行用于使得机器进行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统900可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于进行控制器的操作(例如,执行操作系统以进行对应于图1的命令选择逻辑142的操作)。在替代性实施例中,机器可连接(例如,联网)到lan、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
74.机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂巢式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行指令集(或多个指令集)以进行本文中所论述的方法中的任何一或多种。
75.实例计算机系统900包含处理装置902、主存储器904(例如,只读存储器(rom)、快闪存储器、如同步dram(sdram)或rambus dram(rdram)的动态随机存取存储器(dram))、静态存储器906(例如,快闪存储器、静态随机存取存储器(sram)等),和数据存储系统918,其经由总线930彼此通信。
76.处理装置902表示一或多个通用处理装置,如微处理器、中央处理单元或其类似物。更特定来说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置902也可以是一或多个专用处理装置,如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器或其类似物。处理装置902配置成执行用于进行本文中所论述的操作和步骤的指令926。计算机系统900可进一步包含网络接口装置908以通过网络920通信。
77.数据存储系统918可包含机器可读存储介质924(也称为计算机可读介质),在其上存储有一或多个指令926集或体现本文中所描述的方法或功能中的任何一或多种的软件。指令926还可在其由计算机系统900执行期间完全或至少部分地驻存在主存储器904内和/或处理装置902内,主存储器904和处理装置902也构成机器可读存储介质。机器可读存储介质924、数据存储系统918和/或主存储器904可对应于图1的存储器子系统110。
78.在一个实施例中,指令926包含用以实施对应于命令选择逻辑(例如,图1的命令选择逻辑142)的功能性的指令。尽管在实例实施例中机器可读存储介质924展示为单个介质,但应认为术语“机器可读存储介质”包含存储一或多个指令集的单个介质或多个介质。还应认为术语“机器可读存储介质”包含能够存储或编码供机器执行的指令集且使得机器进行
本公开的方法中的任何一或多种的任何介质。因此,应认为术语“机器可读存储介质”包含但不限于固态存储器、光学介质和磁性介质。
79.已关于计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其它技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量呈能够存储、组合、比较和以其它方式操纵的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目或其类似物是方便的。
80.然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便标签。本公开可指操纵计算机系统的寄存器和存储器内的表示为物理(电子)量的数据且将所述数据变换成计算机系统存储器或寄存器或其它这种信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
81.本公开还涉及用于进行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。举例来说,计算机系统或另一数据处理系统(如控制器115)可响应于其处理器执行存储器或其它非暂时性机器可读存储介质中所含的计算机程序(例如,指令序列)而执行计算机实施的方法200和800。这种计算机程序可存储在计算机可读存储介质中,例如但不限于任何类型的盘,包含软盘、光盘、cd-rom和磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的介质,其各自连接到计算机系统总线。
82.本文中呈现的算法和显示本质上并不与任何特定计算机或另一设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构造用以进行所述方法更加专用的设备是方便的。将如下文描述中所阐述而表现用于各种这些系统的结构。此外,不参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示。
83.本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读介质。机器可读介质包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)介质包含机器(例如,计算机)可读存储介质,如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储介质、光学存储介质、快闪存储器组件等。
84.在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中所阐述的本公开的实施例的更广精神和范围的情况下对其进行各种修改。因此,应在说明性意义上而非限制性意义上看待本说明书和附图。
再多了解一些

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

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

相关文献