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

存储器子系统中根据选定调度排序的命令调度的制作方法

2022-11-23 10:52:31 来源:中国专利 TAG:


1.本公开大体上涉及命令调度,且更确切地说,涉及存储器子系统中根据选定调度排序的命令调度。


背景技术:

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


技术实现要素:

3.根据本公开的一方面,提供一种方法。所述方法包括:确定一组命令的多个调度排序,其中调度排序识别存储器子系统控制器向存储器装置发布所述一组命令中的每一命令的次序;计算所述多个调度排序的多个得分,其中所述多个得分中的得分包含根据所述调度排序的所述一组命令的执行性能的量度;基于所述多个得分从所述调度排序选择调度排序;及根据所述调度排序将命令发布到所述存储器装置。
4.根据本公开的另一方面,提供一种非暂时性计算机可读存储媒体。所述非暂时性计算机可读存储媒体包括指令,所述指令在由处理装置执行时使所述处理装置进行以下操作:确定一组命令的多个调度排序,其中调度排序识别存储器子系统控制器向存储器装置发布所述一组命令中的每一命令的次序;计算所述多个调度排序的多个得分,其中所述多个得分中的得分包含根据所述调度排序的所述一组命令的执行性能的量度;基于所述多个得分从所述调度排序选择调度排序;及根据所述调度排序将命令发布到所述存储器装置。
5.根据本公开的又一方面,提供一种系统。所述系统包括:多个存储器装置;及处理装置,其以操作方式与所述多个存储器装置耦合以进行以下操作:确定一组命令的多个调度排序,其中调度排序识别存储器子系统控制器向存储器装置发布所述一组命令中的每一命令的次序,基于所述存储器装置的当前状态和所述一组命令的命令属性而计算所述多个调度排序的多个得分,其中所述多个得分中的得分包含根据所述调度排序的所述一组命令的执行性能的量度,基于所述多个得分从所述调度排序选择调度排序,及根据所述调度排序将命令发布到所述存储器装置。
附图说明
6.根据下文提供的详细描述和本公开的各种实施例的附图将更加全面地理解本公开。然而,附图不应视为将本公开限制于特定实施例,而是仅用于解释和理解。
7.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
8.图2a说明根据本公开的一些实施例的一组命令的可能排列的实例产生的框图。
9.图2b说明根据本公开的一些实施例的命令序列的所有可能排列的子集的实例确定的框图。
10.图2c说明根据本公开的一些实施例的用于根据性能度量的所有可能排列的子集的调度排序的实例确定的框图。
11.图2d说明根据本公开的一些实施例的调度排序的实例选择的框图。
12.图3a为根据本公开的一些实施例的用以调度存储器装置中的命令的实例方法300的流程图。
13.图3b为根据本公开的一些实施例的用以调度命令的实例方法350的流程图。
14.图4为根据本公开的一些实施例的用以根据选定调度排序在存储器子系统中调度命令的另一实例方法的流程图。
15.图5为其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
16.本公开的各方面是针对存储器子系统中根据选定调度排序的命令调度。存储器子系统可为存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如存储数据的存储器装置)的存储器子系统。主机系统可提供要存储在存储器子系统处的数据,且可请求要从存储器子系统检索的数据。
17.存储器装置可为非易失性存储器装置。非易失性存储器装置为一或多个裸片的封装。非易失性存储器装置的一个实例为与非(nand)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。封装中的裸片可分配给一或多个信道以用于与存储器子系统控制器通信。每一裸片可由一或多个平面组成。平面可分组为逻辑单元(lun)。对于一些类型的非易失性存储器装置(例如,nand存储器装置),每一平面由一组物理块组成,所述物理块是用于存储数据的存储器单元的群组。单元是存储信息的电子电路。
18.取决于单元类型,单元可存储二进制信息的一或多个位,且具有与所存储的位数相关的各种逻辑状态。逻辑状态可由诸如“0”和“1”之类的二进制值或此类值的组合表示。存在各种类型的单元,例如单层级单元(slc)、多层级单元(mlc)、三层级单元(tlc)和四层级单元(qlc)。举例来说,slc可存储一个信息位且具有两种逻辑状态。
19.存储器子系统控制器接收来自主机系统的请求且将命令发布到一或多个存储器装置以对这些请求作出响应。在一些实施例中,存储器子系统控制器将与请求相关联的命令添加到命令队列。在一些实施例中,存储器子系统控制器可包含多个命令队列,且每一命令队列与信道相关联。与来自主机的请求相关联的命令包含将在其中存取数据的存储器中的位置的识别。在一些实施例中,可用等级的识别符、组的识别符、行的识别符和列的识别符中的一或多个识别符来识别位置。命令可被称为列命令,因为其识别存储器装置中的列(也被称为位线)。存储器子系统控制器选择用以发布到存储器装置的命令。由于各种因素,选择要发布的下一命令是非常重要的问题。举例来说,当存储器子系统控制器选择命令时,此选择可需要激活存储器装置中的行(也被称为字线)。在存储器子系统中,行的激活可阻止存取同一组中的其它行的所有其它命令。到一个组的行命令与到另一组的行命令之间所需的时间(其对服务后续命令的时间具有影响)为存储器子系统控制器在调度命令时需要考虑的时序约束的实例。
20.可基于简单策略或规则执行命令的调度。基于根据存储器子系统的过去行为的试
探法确定简单策略和规则。举例来说,存储器子系统控制器可使用先就绪先来先服务(fr fcfs)调度算法。frfcfs将可立即执行的命令(例如,来自已经激活的行的读取命令)优先于无法立即执行的命令(例如,取决于命令队列中的另一命令的命令,或来自尚未激活的行的读取命令等)。fr fcfs可实现存储器子系统控制器与存储器装置之间的总线的良好利用(即,减少在命令的执行期间总线保持空闲的时间)。然而,fr fcfs未能保证最优总线利用。此外,fr fcfs不考虑存储器子系统的其它性能度量(例如,读取时延、能量消耗等)以用于调度命令,且可对其具有不良影响。举例来说,在试图改进总线利用的过程中,基于fr fcfs操作的存储器子系统控制器可使用显著增加一些命令的读取时延的命令的调度排序,这对于使用存储器子系统的一些应用程序来说可为至关重要且不可接受的。
21.本公开的各方面通过改进存储器子系统控制器中的命令的调度来解决以上和其它不足。通过从一组命令的多个可能的调度排序选择调度排序来改进命令的调度。在一些实施例中,根据性能度量中的一者或组合执行调度排序的选择。性能度量可为读取时延度量、总线带宽度量和/或电力消耗度量。本文中所描述的实施例使得存储器子系统能够根据调度排序调度一组命令,所述调度排序一致地提供最佳性能且根据性能度量中的一或多者改进存储器子系统的性能。以此方式,在给定信息(例如,存储器装置的状态)可供存储器子系统使用的情况下,存储器子系统可基于所述度量而作出命令选择的最佳可能决策。在一些实施例中,代替选择要调度的下一最佳命令,存储器子系统选择要调度的最佳命令序列(包含多于一个命令)。这使得存储器子系统能够在命令序列的持续时间内且不针对仅单个命令改进其性能。在一些实施例中,存储器子系统可用于计算调度排序的所有可能排列的子集的得分且从此子集中选择调度排序,而不是计算所有可能排列的得分且执行来自排列的选择。从子集而不是整个一组排列中选择调度排序显著地改进存储器子系统在选择改进性能度量的调度排序时的效率。
22.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或此类的组合。
23.存储器子系统110可为存储装置、存储器模块或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器、安全数字(sd)卡,及硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so-dimm),及各种类型的非易失性双列直插式存储器模块(nvdimm)。
24.计算系统100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(iot)的装置、嵌入式计算机(例如,运载工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
25.计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文所使用,“耦合到”或“与

耦合”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等连接。
26.主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,nvdimm控制器),以及存储协议控制器(例如,pcie控制器、sata控制器)。主机系统120使用存储器子系统110例如将数据写入到存储器子系统110以及从存储器子系统110读取数据。
27.主机系统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可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
28.存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为但不限于随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
29.非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(nand)型快闪存储器和就地写入存储器,例如三维交叉点(“3d交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器形成对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand型快闪存储器包含例如二维nand(2dnand)和三维nand(3d nand)。
30.虽然描述了非易失性存储器装置,如nand型存储器(例如,2d nand、3d nand)和3d交叉点非易失性存储器单元阵列,但存储器装置130可基于任何其它类型的非易失性存储器,如只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻性随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)快闪存储器,以及电可擦除可编程只读存储器(eeprom)。
31.存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行操作,如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作(例如,响应于由控制器115在命令总线上调度的命令)。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路以执行本文中所描述的操作。存储器子系统控制器115可为微控制器、专用逻辑电路(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等),或另一合适的处理器。
32.存储器子系统控制器115可包含处理装置117(处理器),其经配置以执行存储于本地存储器119中的指令。在所说明的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其经配置以存储指令以用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
33.在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,且可替代地依赖于外部控制(例如,由外部主机提供,或由与存储器子系统110分离的处理器或控制器提供)。
34.一般来说,存储器子系统控制器115可从主机系统120接收命令或操作且可将所述命令或操作转换成指令或适当的命令,以实现对存储器装置130和/或存储器装置140的所需存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作,以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(lba)、名字空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路,以经由物理主机接口与主机系统120通信。主机接口电路可将从主机系统接收到的命令转换成命令指令以存取存储器装置130和/或存储器装置140,以及将与存储器装置130和/或存储器装置140相关联的响应转换成用于主机系统120的信息。
35.存储器子系统110还可包含未说明的额外电路或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,dram)和可从存储器子系统控制器115接收地址且对所述地址进行解码以存取存储器装置130的地址电路(例如,行解码器和列解码器)。
36.在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130为受管理存储器装置,其为与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例为受管理nand(mnand)装置。
37.存储器子系统110包含可根据选定调度排序在存储器子系统中调度命令的调度器113。在一些实施例中,控制器115包含调度器113的至少一部分。举例来说,控制器115可包含处理器117(处理装置),其经配置以执行存储于本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,调度器113为主机系统120、应用程序或操作系统的一部分。
38.存储器子系统控制器115(也被称为控制器115)从主机系统120接收用于存取存储器装置的一或多个请求。控制器115可用于响应于请求而发布一组命令。调度器113可用于选择一组命令的调度次序。控制器115根据选定调度排序将这些命令发布到存储器装置,例如存储器装置130/140。因此,调度排序识别控制器115向存储器装置发布命令序列中的每一命令的次序。命令序列的调度排序可不同于从主机系统120接收其相关联请求的次序。在一些实施例中,调度器113可用于确定一组命令的多个调度排序。调度器113计算调度排序中的每一者的得分。调度排序的得分包含根据调度排序的一组命令的执行性能的量度。基
于所计算的得分,调度器113从调度排序选择调度排序。控制器115根据调度排序将命令发布到存储器装置。下文描述关于调度器113的操作的其它细节。
39.图2a说明根据本公开的一些实施例的一组命令的可能排列的实例产生的框图。虽然参考命令c0、c1、c2和c3的序列以及命令属性121描述调度器113的操作,但此仅旨在为非限制性实例,且可由调度器113处理序列的其它实例(例如,不同数目的命令、一组不同的命令属性等)。
40.存储器子系统110从主机系统120接收用于存取存储器装置的请求。在一些实施例中,控制器115将请求分解或转换为命令。在一些实施例中,命令为列命令。举例来说,响应于接收到请求,控制器115将命令c0、c1、c2、c3的序列存储于命令队列中。根据从主机系统120接收其相关联请求的次序存储命令c0、c1、c2和c3。控制器115存储用于命令序列的命令属性121。命令属性121包含关于每一命令的各种数据。举例来说,属性可包含指示从主机系统120接收命令的次序的命令队列条目索引202。在本文中呈现的实例中,命令属性包含用于相应命令c0、c1、c2和c3的索引0、1、2和3。命令属性121进一步包含指示命令是读取命令还是写入命令的命令类型204。命令属性121还包含从中读取数据/数据被写入到的存储器装置中的位置的识别。举例来说,位置的识别可包含识别存储器装置中的命令的等级的等级识别符206、识别存储器装置中的命令的组的组识别符208、识别存储器装置中的命令的行的行识别符210,以及识别存储器装置中的命令的列的列识别符212。控制器115可将命令属性121存储于本地存储器(例如,本地存储器119)中。控制器115可用于基于命令属性且基于存储器装置的状态而决定接下来从命令c0、c1、c2、c3的序列中选择哪一命令以用于发布。
41.调度器113确定用于命令序列的一组调度排序231。此集合包含命令序列的所有可能排列。举例来说,对于具有四个命令的命令序列,调度排序存在二十四种可能排列。在一些实施例中,集合231存储于本地存储器119中。
42.在一些实施例中,在从集合231选择调度排序之前,调度器可用于修整调度排序以减少要执行选择的调度排序的数目。图2b说明根据本公开的一些实施例的命令序列的所有可能排列的子集的实例确定的框图。图2c说明根据本公开的一些实施例的用于根据性能度量的所有可能排列的子集的调度排序的实例确定的框图。
43.在一个实施例中,调度器113基于预定义规则确定一组调度排序231的子集232。在一些实施例中,预定义规则与性能度量无关。举例来说,预定义规则可包含按从主机系统120接收其相关联请求的次序向同一行发布命令的规则。预定义规则使调度器113修整无序地将列命令发布到同一行的任何调度排序。在图2a的所说明的实例中,命令c2和c3是类型为“读取”的列命令,且共享相同等级1、相同组2和相同行1。在产生列命令c2的请求之后,从主机系统120接收产生列命令c3的请求。根据上文所描述的规则,可由调度器113修整在c2之前发布命令c3的任何调度排序(so)。调度器113保持来自集合231的调度排序的剩余子集232。图2b包含由调度器根据预定义规则执行的选择产生的子集232。根据预定义规则,移除以下调度排序且调度器113不再考虑后续操作:id为1的so(c0、c1、c3、c2),id为4-5的so,id为7的so,id为10-11的so,以及id为18-23的so。调度排序的数目从二十四减少到十二。在一些实施例中,为保持来自集合231的调度排序,调度器113将标记设置为预定值。当调度排序的标记设置为预定值(例如,1)时,调度器113使用so执行后续操作(例如,计算so的得分,且
在基于其相关联得分对so进行排序时考虑so)。当清除标记(例如,设置为与预定值不同的另一值(例如,0))时,调度器113将在后续操作中忽略所述so。
44.减少调度器在选择用于命令序列的so时所考虑的so的数目提高了调度器的效率,并且降低了用于对来自主机系统120的请求作出响应的存储器子系统的处理成本。预定义规则的使用使得调度器113能够快速地移除次优的so。在一些实施例中,可将一或多个修整核心添加到存储器控制器115的架构,以用于从命令序列的所有可能排列中修整/滤出此类so。修整核心可用于确定so是否满足一或多个预定义规则,且当so满足规则时在本地存储器中为so设置标记。修整核心包含处理逻辑,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。
45.另外或替代地,调度器113可用于将一或多个命令添加到命令序列,且考虑一组组合的命令的调度排序。在一些实施例中,命令c0、c1、c2和c3中的一或多者的发布可引起额外命令的发布。举例来说,为了将命令发布到尚未激活的行的列,存储器控制器115需要在发布列命令之前发布激活所述行的命令。在这些实施例中,当确定命令c0、c1、c2和c3的序列/集合的so时,调度器113可确定发布所述so所需的额外行命令。
46.行命令的产生取决于so中的命令的次序。在调度过程期间,组的行可能已被激活或去激活。此外,一旦激活用于其对应组中的所述列命令的行,存储器控制器115就可仅发布列命令,例如c0。因此,当列的行不是活动的时,存储器控制器115需要发布激活(act)命令,例如act c0,以在发布列命令c0之前激活行。激活是行存取命令,因为其打开组的行。激活命令与到组地址寄存器(选择当前组)和行地址寄存器(选择所需行)的输入配对。在发布预充电(pre)命令之前,活动行保持打开状态。相比之下,当命令的行已经活动时,存储器控制器115不需要在发布列命令之前发布用以激活行的额外命令。在图2a-b的所说明的实例中,c2和c3为等级1的组2的行1中的列命令,其为活动的,如存储器装置220的状态中所指示;而列命令c1和c0具有等级0的组3中的非活动行2和0。在一些实施例中,当由存储器控制器115发布的最后命令用于激活行时,存储器控制器在将激活命令发布到同一组的另一行之前将pre命令发布到所述行。当存储器控制器的最新行命令是行的预充电时,存储器控制器仅需要在将列命令发布到此其它行之前将激活发布到同一组的另一行。因此,基于c0、c1、c2和c3的命令属性121和存储器装置220的状态(其中等级1的组2中的行1是活动的且其它行是非活动的),调度器113发布额外命令,包含用以激活等级0的组3中的行0的act c0,用以激活等级0的组3中的行2的act c1,用以去激活等级0的组3中的行0的pre c0,以及用以去激活等级0的组3中的行2的pre c1。
47.在一些实施例中,存储器装置220的状态包含哪些行在存储器装置中处于活动状态的指示。调度器113从子集232产生调度排序的集合233。集合233的调度排序包含基于存储器装置的状态而添加到命令序列的命令。举例来说,act c1、c1、pre c1、act c0、c0、pre c0、c2、c3为包含额外命令的调度排序。集合233的产生包含产生用于来自so 233的子集的调度排序的行命令。在一些实施例中,在集合233的产生期间,存储器控制器115进一步跟踪将针对命令序列向每一组发布的最后行命令(例如,precharge或activate),且使用此信息产生包含针对所述命令序列的额外命令(pre或act)的so。
48.在一个实施例中,调度排序的集合233的产生包含产生用于来自子集232的so中的
每一者的一组so 233a-n。将描述id为6的so(“c1、c0、c2、c3”)的操作,然而,针对来自子集232的so中的每一者执行类似操作,从而产生组合集合233。对于来自子集232的给定so,例如id为6的so,so的此集合(例如,集合233a)的产生包含:1)从与so中的命令相关联的组产生每一组的命令列表,其中命令列表包含列命令和行命令,其中列命令是按其在so中出现的次序发布到组的列命令,且行命令是按所述次序向所述组发布列命令所需的行命令,以及2)基于组的额外命令产生so的排列,所述排列遵循id为6的so中的命令的次序。举例来说,调度器113产生id为6的so,且针对此so产生act c1、act c0、pre c0和pre c1,且产生包含一组组合的命令{act c1、act c0、pre c0、pre c1、c0、c1、c2和c3}的可能排列的排列233m,其中集合233m中的所有排列都遵循具有id的so(即,c1、c0、c2、c3)中识别的列命令的次序。换句话说,在233m的所有so中,c1在c0之前发布,c0在c2之前发布,且c2在c3之前发布。
49.在一个实施例中,为了产生集合233m,调度器按id为6的so中的次序遍历列命令。对于每一列命令(c1、c0、c2或c3),调度器113检查由列命令存取的行和组以及针对所述组跟踪的最后行命令。当在列命令之前的命令序列中不存在对列命令的组发布的行命令时,最后行命令为控制器向所述组的存储器装置发布的最后行命令。当在列命令之前的命令序列中存在对列命令的组发布的行命令时,最后行命令为当发布命令序列时将由控制器发布的行命令。用于组的最后行命令和命令序列由调度器113跟踪。当最后行命令为用于列命令的行的激活时,也就是说,指示所述列命令的行处于活动状态(和/或将由列命令之前的命令激活),并且调度器113不需要针对此命令添加行命令。当向列命令的组发布的最后行命令为预充电时,也就是说,指示所述列命令的行正/将处于非活动状态,并且调度器113针对所述组中的行产生激活命令。当所述组中的最后行命令为用于列命令的行之外的行的激活时,也就是说,指示在列命令的组中激活不同行,且在激活列命令的行之前将去激活此行。在此情况下,调度器113产生用于其它行的预充电命令和用于列命令的激活行命令。
50.一旦针对so识别额外命令,调度器113就从so 232产生针对so的一组组合的命令的有效排列。在一些实施例中,有效排列包含满足用于存储器装置的组的行激活规则的命令序列(行命令和列命令)。行激活规则可包含在存取所述行中的列之前激活组中的行。在一个实施例中,行激活规则包含在激活组的另一行之前去激活组的行。在一些实施例中,来自so 232的so的一组组合的命令的有效排列是组合的命令的序列,其中列命令满足so中所呈现的次序。举例来说,“act c1、act c0、c1、c0、pre c0、pre c1、c2、c3”235c为满足id为6的so(“c1、c0、c2、c3”)的次序的排列,而“act c1、act c0、c0、c1、pre c0、pre c1、c2、c3”为不满足所述次序且不包含于子集233m中的排列。
51.在一些实施例中,当产生集合233时,调度器113可基于取决于一或多个性能度量的一或多个规则而进一步减少so的数目。在一些实施例中,规则取决于以下各者中的一或多者:总线带宽度量、读取时延度量和/或能量消耗最小化。在一个实施例中,规则被定义为舍弃任何so,所述so根据所识别的性能度量在根据所述so执行命令时会降低存储器子系统的性能。图2c说明根据本公开的一些实施例的根据性能度量的命令的子集的实例确定的框图。图2c说明调度器113从子集233m产生的so集合122a、122b或122c中的三个不同场景a、b和c,以用于减少在后续操作中要考虑的so的数目。根据不同性能度量,调度器113确定来自集合233m的子集122a、子集122b和子集122c。虽然相对于so 233m描述子集的确定,但是对
来自集合233的子集233a-n中的每一者执行类似操作,以产生调度器113要得分的so,即子集122a、子集122b或子集122c。
52.在场景a中,调度器113选择so以优化用于总线利用。在场景a中,调度器113确定其在总线利用方面是最优的,以循环用于c1和c0两者的行(即,发布act、列命令和pre),同时在那些行循环内交错列命令c2和c3。调度器113可通过从满足以下规则的so 233m中选择so来作出此确定:so使得控制器115在非活动行的激活与预充电之间发布活动行的至少一个列命令。举例来说,当so使得控制器115在针对c0或c1的激活与预充电之间发布c2,且在针对c0或c1的激活与预充电之间发布c3时,调度器113认为来自so 233m的so在总线利用方面是最优的。如果so不满足此规则,则调度器113舍弃所述so。规则使得控制器115通过在这些循环中交错命令c2和c3来利用命令的act c1、c1、pre c1子序列与命令的act c0、c0、pre c0子序列之间的空闲时间。如果控制器115在这些子序列中的一者期间不发布c2和c3,则利用存储器控制器与存储器装置之间的数据总线是浪费的机会。因此,在总线利用方面,此类序列不是最优的,并且被调度器113舍弃。在场景a的实例中,规则使得调度器113舍弃so 234a、234c和234d且保持so 234b和234e。虽然so 233m包含一组五个so 234a-e,但此集合可包含未说明的额外so。虽然so 122a包含由调度器113选择的一组两个so 234b和234b,但额外so可由调度器113保持。
53.在场景b中,so选择的规则取决于读取时延度量。在场景b中,调度器113确定其在读取时延方面是最优的,以使控制器115接收到读取请求的时刻与控制器115发送回所述请求的响应的时刻之间所经过的时间最小化。在一些实施例中,为了优化读取时延的调度,控制器记录控制器接收到读取请求的时间,且调度器跟踪与读取请求相关联的命令的估计时间,以及在请求的所记录接收时间与在根据so发布命令时从存储器装置接收对命令的响应的估计时间之间的估计持续时间。调度器113 1)舍弃来自集合233m的任何序列,所述序列含有针对具有超过确定阈值的估计持续时间的请求的读取命令,且2)在估计持续时间不超过阈值的情况下保持so。调度器113基于发布so的读取命令所需的时间以及针对所述命令从存储器装置接收读取数据所花费的时间来计算命令的估计持续时间。根据so发布读取命令所需的时间取决于命令(例如,trrd、trcd等)之间的最小间隔时间。在场景b中,调度器可估计读取命令c2和c3的持续时间。在一个实施例中,基于so中的这些命令的次序,调度器113可针对来自集合233m的每一so确定读取命令c2的估计持续时间和读取命令c3的估计持续时间。当命令c2和c3中的任一者的估计持续时间大于预定阈值时,调度器113舍弃来自集合233m的任何so。在一个非限制性实例中,调度器113可保持so 234e且舍弃234a-d。来自集合233m的额外so可基于c2和c3的估计读取时延而保持。
54.在场景c中,规则取决于能量消耗度量。在场景c中,调度器113确定,在能量消耗方面,一旦已经针对行发布所有命令,就立即去激活所述行是最优的。调度器113可通过选择尽可能早地去激活行的so来减少存储器子系统的能量消耗。在低性能的移动系统中可以使用以下规则。考虑到先前实例,调度器113舍弃so 234b和234e,且保持so 234a和234c-d。虽然本文中的实施例已通过调度器基于单个性能度量(例如,总线利用、读取时延或能量消耗)选择so 122a、122b或122c的子集进行描述,但在其它实施例中,调度器113可基于多个性能度量来选择so的子集。
55.当调度器133已选择so 122a、122b或122c的子集时,调度器计算来自所述子集的
调度排序中的每一者的得分且基于所述得分选择用于将命令发布到存储器装置的选定so。图2d说明根据本公开的一些实施例的基于得分的调度排序的实例选择的框图。将参考so 122a来描述图2d的实施例,然而,此仅旨在为示例性的,且可针对其它集合(例如,122b-c、233或231)执行类似操作。调度器113确定so 122a中的每一者的得分。调度排序的得分包含根据调度排序的一组命令的执行性能的量度。在一些实施例中,可将一或多个调度核心添加到存储器控制器115的架构以用于计算得分。调度核心包含处理逻辑,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,调度核心中的每一者都分配有一个so。调度器核心可用于计算所分配的so的得分且将所述so的得分存储于存储器(例如,存储器控制器的本地存储器119)中。
56.在一个实施例中,调度排序的得分可包含检索命令序列中的所有命令(例如,对于c0、c1、c2和c3)的所有数据所需的时间的估计。在一些实施例中,时间的估计是基于序列的命令之间所需的最小时间。举例来说,调度器113计算检索所有数据所需的时间,方法是求和所有命令的最小时间间隔,直到发布最后列命令,且将数据总线对于所述列命令变为空闲所花费的时间添加到所述总和。控制器可确定序列的两个命令之间所需的最小时间(也被称为最小时间间隔),作为给定类型的存储器装置的控制器已知的时序参数(例如,行到行延迟(trrd)、ras到cas延迟(trcd)等)的函数。数据总线变为空闲的时间为由存储器装置指定的固定时间。数据总线变为空闲的时间是基于cl/cwl(命令发布时与数据总线分别针对读取命令或写入命令开始时之间的时间)、命令的数据传送大小、数据总线宽度和跨越总线的数据传送的速率。检索所有数据所需的时间的减少指示带宽的改进,且因此指示在总线利用度量方面的改进。当调度器113可用于根据总线利用度量选择so时,调度器113选择具有最低得分(即,具有存取序列的所有命令的数据所需的较短时间)的so。在一个实例中,基于所计算的得分,调度器113从调度排序122a选择调度排序234e。
57.在另一实例中,调度器113可用于选择在另一度量方面得分最佳的so,例如读取时延(即,读取请求到达时与控制器115发送其对所述读取请求的响应之间的时间)。控制器针对从主机系统接收的每一读取请求记录此请求的接收时间且将此时间与所述请求的读取命令相关联。调度器113确定每一so的平均读取时延且选择具有最低读取时延的so。调度器113根据so确定每一读取命令的估计持续时间。控制器可至少部分地基于两个命令(例如,trrd、trcd等)之间的最小时间间隔来估计持续时间。调度器113通过将序列中所有读取请求的持续时间相加除以这些读取请求的数目来确定so的平均读取时延。在一些实施例中,当确定平均读取时延时,调度器113考虑控制器中所有读取命令的读取时延,而不仅仅是考虑对特定组的读取时延。替代地或另外,调度器可考虑最大读取时延。根据所述so,调度器将针对so的最大读取时延确定为来自所有读取请求的持续时间的最大持续时间。在一些实施例中,当最大读取时延和/或平均读取时延满足阈值时,调度器113可从so选择so。在一些实施例中,当平均读取时延小于其它so的所有平均读取时延时,调度器可选择so。在一些实施例中,当最大读取时延小于其它so的所有最大读取时延时,调度器可选择so。在一些实施例中,当平均读取时延小于其它so的所有平均读取时延且最大读取时延小于预定阈值时,调度器可选择so。在一些实施例中,调度器113可选择平均读取时延比未能满足最大读取时延阈值的so更差的so。调度器113可通过舍弃其最大读取时延超过阈值的任何so来强制执
行此类要求。
58.在一些实施例中,可将一或多个排序器核心添加到存储器控制器115的架构以用于根据得分对so进行排序且基于排序得分选择so。排序器核心包含处理逻辑,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,排序器核心对所确定的so进行排序。当排序完成时,存储器控制器可从得分最高的so选择第一命令以供发布。
59.在选择so 234e后,存储器控制器115根据调度排序将命令发布到存储器装置。在一些实施例中,命令来自响应于来自主机系统的请求而产生的一组命令。替代地,命令可为由存储器控制器115基于存储器装置的状态针对来自一组命令的命令产生的行命令。举例来说,存储器控制器115将命令act c0发布到存储器装置,随后发布act c1和命令c1等。当发布命令时,存储器控制器115可进一步用于跟踪组的最新行命令(例如,act c0、act c1、pre c1、pre c0)且更新存储器装置的状态。
60.图3a-b为根据本公开的一些实施例的用以调度存储器装置中的命令的实例方法300和350的流程图。方法300和350可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300和350由图1的控制器115执行。在一些实施例中,方法300和350的一些或全部操作由图1的调度器113执行。虽然以特定顺序或次序来展示,但是除非另外指定,否则可修改过程的次序。因此,所说明的实施例应理解为仅作为实例,且所说明的过程可以不同次序执行,并且一些过程可并行执行。另外,可以在各种实施例中省略一或多个过程。因此,并非在每一实施例中需要所有过程。其它过程流程是可能的。在一些实施例中,当来自主机系统120的新请求到达时,存储器控制器115执行这些操作。另外或替代地,当向存储器装置发布命令时,存储器控制器115可执行这些操作。每当来自主机的新请求到达和/或向存储器装置发布命令时,可重复方法300和350。
61.在一些实施例中,存储器控制器115可在两种模式中的一者下操作,即其中始终使用默认排序的操作模式和其中基于得分执行调度排序的选择的另一操作模式。可在存储器子系统的初始配置操作期间设置存储器控制器115的操作模式。默认调度排序为可由存储器控制器115用于调度序列的命令的so,而不管得分如何。默认调度排序满足用于执行一组命令的与默认调度排序的得分无关的一或多个规则。举例来说,默认调度排序可为先就绪先来先服务(fr fcfs),其取决于用于发布命令的简单规则和策略。在其它实施例中,存储器控制器115可在单个操作模式下操作,其中至少部分地基于得分执行调度排序的选择,且在无方法300的操作305和310的情况下执行方法350的操作。
62.在操作305处,处理装置确定是否选择默认调度排序,而不管so的得分如何。在一些实施例中,确定是否选择默认调度排序可基于针对存储器控制器115设置的操作模式。当控制器115经设置以在其中始终使用默认排序的操作模式下操作时,操作流程移动到操作310。替代地,当控制器115经设置以在其中基于得分执行so的选择的操作模式下操作时,操作流程移动到操作350。
63.在操作310处,处理装置根据默认调度排序将命令发布到存储器装置。举例来说,处理装置可根据fr fcfs发布命令。在一些实施例中,命令来自响应于来自主机系统的请求
而产生的一组命令。替代地,命令可为由存储器控制器115基于存储器装置的状态针对来自一组命令的命令产生的行命令。
64.图3b为根据本公开的一些实施例的用以调度命令的实例方法350的流程图。在操作315处,处理装置确定命令序列(例如,序列c0、c1、c2和c3)的调度排序的集合231。在一些实施例中,命令序列包含响应于从主机系统120接收到对应请求而存储于存储器控制器115的命令队列中的列命令。在一些实施例中,处理装置存储命令的命令属性121。集合231包含命令序列c0、c1、c2和c3的命令的所有可能排列。处理装置确定集合231,如上文所描述。
65.在操作320处,处理装置基于预定义规则确定用于命令序列(例如,集合231)的命令的所有可能排列的子集232。在一些实施例中,预定义规则与性能度量无关。在一些实施例中,处理装置可确定子集232,如上文所描述。操作320是可选的且可在一些实施例中被跳过。
66.在操作325处,处理装置从所有可能排列的子集232产生调度排序的集合233。集合233的调度排序(例如,234a)包含基于存储器装置220的状态而添加到命令序列的命令。额外命令可包含用于激活或去激活来自命令序列的一或多个列命令的行的一或多个命令。处理装置基于存储器装置的状态产生集合233。在一些实施例中,处理装置基于针对命令组所跟踪的最后行命令而针对来自子集232的命令产生额外命令。在一些实施例中,处理装置可产生集合233,如上文所描述。在一些实施例中,当执行操作320时,对子集232执行操作325。替代地,当跳过操作320时,对调度排序的集合231执行操作325而不是对此集合的子集执行所述操作。虽然在一些实施例中,处理装置通过产生额外命令且产生一组组合的命令的排列而产生不同于子集232的集合233,但在其它实施例中,处理装置产生与子集232相同的集合233,因为不需要额外命令(例如,所有存取行被激活)。
67.在操作330处,处理装置基于取决于一或多个性能度量的一或多个规则而确定调度排序的集合233的子集(例如,子集122a)。在一些实施例中,规则取决于以下各者:总线带宽度量、读取时延度量和/或能量消耗度量。举例来说,预定义规则可包含按从主机系统120接收其相关联请求的次序向组的同一行发布命令的规则。预定义规则使得调度器113从请求的接收次序修整将无序地向组的同一行发布列命令的任何调度排序。在一些实施例中,处理装置确定集合233的子集(例如,122a),如上文所描述。
68.在操作335处,处理装置计算调度排序的子集的得分,例如so 122a。子集122a与一组命令(例如,命令c0、c1、c2、c3)相关联。调度排序的得分包含根据调度排序的一组命令的执行性能的量度。在一个实施例中,调度排序的得分可包含检索命令序列中的所有命令(例如,对于c0、c1、c2和c3)的所有数据所需的时间的估计。在一些实施例中,处理装置计算默认调度排序的得分。在一些实施例中,默认调度排序可为调度排序的子集的部分,即,默认调度排序在操作315-220期间可能已由调度器113选择。在其它实施例中,默认调度排序可不包含在so的子集中,因为其在那些操作期间可能尚未由调度器113选择。
69.在操作340处,处理装置基于得分从调度排序的子集选择调度排序。在一个实施例中,调度排序的选择包含从多个得分中确定满足存储器子系统的性能标准的得分。性能标准包含读取时延标准、总线带宽标准和电力消耗标准中的一者(单独地或组合地)。读取时延是用于将响应发送到从主机系统120接收的请求的存储器子系统的时延。总线带宽涉及将存储器控制器与存储器装置连接的总线的带宽。电力消耗涉及存储器装置的电力(或能
量)消耗。
70.当调度器113可用于根据总线利用度量选择so时,调度器113选择具有最低得分(即,具有存取序列的所有命令的数据所需的较短时间)的so。另外或替代地,调度器113可用于选择在读取时延方面得分最佳的so。读取时延的得分可以指示从主机系统接收到读取请求时与估计控制器115针对所述读取请求发送其响应时之间的时间。在一些实施例中,调度器113可基于so的平均读取时延选择so。替代地或另外,调度器113可基于最大读取时延选择so。在一些实施例中,当平均读取时延小于其它so的所有平均读取时延时,调度器可选择so。在一些实施例中,当最大读取时延满足阈值时,调度器113可从so选择so。在一些实施例中,当最大读取时延小于其它so的所有最大读取时延时,调度器可选择so。在一些实施例中,当平均读取时延小于其它so的所有平均读取时延且最大读取时延小于预定阈值时,调度器可选择so。在一些实施例中,调度器113可选择平均读取时延与未能满足最大读取时延阈值的so相比最差的so。调度器113可通过舍弃其最大读取时延超过阈值的任何so且基于其平均读取时延从剩余so中选择so来强制执行此类要求。
71.在操作345处,处理装置根据选定调度排序将命令发布到存储器装置。在一些实施例中,命令来自响应于来自主机系统的请求而产生的一组命令。替代地,命令可为由存储器控制器115基于存储器装置的状态针对来自一组命令的命令产生的行命令。在一些实施例中,执行发布命令,如上文所描述。在一些实施例中,当发布命令时,处理装置更新存储器装置的状态。另外或替代地,当发布命令时,处理装置跟踪组的最新行命令。
72.在一些实施例中,处理装置可基于满足阈值的时间间隔而确定是否选择默认调度排序,同时执行操作315-340中的一或多者。在一些实施例中,处理装置可跟踪用于确定多个so的得分的时间间隔。举例来说,当处理装置开始执行操作315时,处理装置可启动计时器。当计时器超过时间阈值(即,基于得分确定so花费较长时间段)时,处理装置确定要选择默认调度排序。替代地,当计时器不超过时间阈值(即,基于得分选择so可在时间阈值内执行)时,处理装置继续执行操作315-340,直到选择so(操作340)或时间间隔超过时间阈值。
73.当处理装置确定要选择默认调度排序时,操作移动到图3a的操作310(未说明操作340与310之间的连接)。替代地,当处理装置确定不选择默认调度排序时,操作移动到操作345。在一些实施例中,一旦选择so(例如,基于得分或默认so),处理装置就继续基于选定so发布命令,直到从主机系统接收到新请求。另外或替代地,每当向存储器装置发布命令时,处理装置可重复方法350的一些或全部操作。
74.图4为根据本公开的一些实施例的用以根据选定调度排序调度存储器子系统中的命令的另一实例方法400的流程图。
75.在操作405处,处理装置确定一组命令的调度排序。来自so的调度排序识别存储器子系统控制器(例如,存储器控制器115)向存储器装置(例如,存储器装置140)发布一组命令中的每一命令的次序。响应于从主机系统(例如,主机系统120)接收的请求而确定一组命令。在一些实施例中,至少部分地根据一组命令的属性执行确定调度排序。确定调度排序可基于命令的所有可能排列的子集。举例来说,处理装置计算so 122a、122b或122c的得分。所有可能排列的子集可基于一或多个规则而确定,所述一或多个规则依赖于和/或独立于性能度量中的一者或组合。性能度量可包含读取时延度量、总线利用度量和/或电力消耗度量。在一些实施例中,调度排序可基于用于一组命令的命令的所有可能排列。在一些实施例
中,确定一组命令的调度排序是响应于处理装置从主机系统接收新请求或响应于处理装置向存储器装置发布命令。在一些实施例中,执行确定调度排序,如上文所描述。
76.在操作410处,处理装置计算一组命令的多个调度排序的得分。在一些实施例中,计算得分是基于存储器装置的当前状态(例如,状态220)以及一组命令的命令属性,例如命令属性121。在一些实施例中,执行计算得分,如上文所描述。
77.在操作415处,处理装置基于得分从调度排序选择调度排序。在一些实施例中,选择调度排序包含从得分中确定满足包含存储器装置的存储器子系统的性能标准的得分。性能标准包含读取时延标准、总线带宽标准和电力消耗标准中的一者或组合。在一些实施例中,执行选择调度排序,如上文所描述。
78.在操作420处,处理装置根据选定调度排序将命令发布到存储器装置。在一些实施例中,命令来自响应于来自主机系统的请求而产生的一组命令。替代地,命令可为由存储器控制器115基于存储器装置的状态针对来自一组命令的命令产生的行命令。在一些实施例中,执行将命令发布到存储器装置,如上文所描述。
79.图5说明计算机系统500的实例机器,在所述实例机器内可执行用于使所述机器执行本文中所论述的方法中的任何一或多种的一组指令。在一些实施例中,计算机系统500可对应于包含、耦合到或使用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,以执行操作系统来执行对应于图1的调度器113的操作)的主机系统(例如,图1的主机系统120)。在替代实施例中,机器可连接(例如联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中进行操作。
80.机器可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行将由所述机器采取的指定动作的一组指令的任何机器。此外,虽然说明单个机器,但应认为术语“机器”还包含机器的任何集合,所述机器单独地或共同地执行一组(或多组)指令以执行本文中所论述的方法中的任何一或多种。
81.实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram)(例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器506(例如,快闪存储器、静态随机存取存储器(sram)等),及数据存储系统518,它们经由总线530彼此通信。
82.处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等等。更具体地说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502还可以是一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等等。处理装置502经配置以执行指令526以用于执行本文中所论述的操作和步骤。计算机系统500可进一步包含用以经由网络520通信的网络接口装置508。
83.数据存储系统518可包含机器可读存储媒体524(也被称为计算机可读媒体),所述机器可读存储媒体上存储有一或多个指令集526或体现本文中所描述的方法或功能中的任
何一或多者的软件。指令526还可在其由计算机系统500执行期间完全或至少部分地驻存在主存储器504内和/或处理装置502内,主存储器504和处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518和/或主存储器504可对应于图1的存储器子系统110。
84.在一个实施例中,指令526包含实施对应于调度器(例如,图1的调度器113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体524展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的一组指令且使机器执行本公开的方法中的任何一个或多个的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
85.已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其他技术人员的方式。本文的算法通常是指产生所需结果的操作的自洽序列。操作为要求对物理量进行物理控制的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数字等有时是便利的。
86.然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅为应用于这些量的方便标签。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)量的数据为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
87.本公开还涉及用于执行本文的操作的设备。此设备可以出于既定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。举例来说,计算机系统或其它数据处理系统(例如,控制器115)可响应于其处理器执行存储器或其它非暂时性机器可读存储媒体中所含的计算机程序(例如,指令序列)而执行计算机实施方法300、350和400。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、cd-rom和磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
88.本文中所呈现的算法和显示本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造更专用的设备来执行方法是方便的。将如下文描述中所示呈现用于各种这些系统的结构。另外,不参考任何特定编程语言描述本公开。将了解,可使用各种编程语言来实施如本文中所描述的本公开的教示。
89.本公开可以提供为计算机程序产品或软件,其可以包含在其上存储有可以用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
90.在前述说明书中,本公开的实施例已经参考其具体实例实施例进行描述。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的
情况下对本发明进行各种修改。因此,说明书和图式应被视为说明性的而非限制性的。
再多了解一些

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

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

相关文献