CN114003369A - 用于基于资源调度命令的系统和方法 - Google Patents
用于基于资源调度命令的系统和方法 Download PDFInfo
- Publication number
- CN114003369A CN114003369A CN202110849020.6A CN202110849020A CN114003369A CN 114003369 A CN114003369 A CN 114003369A CN 202110849020 A CN202110849020 A CN 202110849020A CN 114003369 A CN114003369 A CN 114003369A
- Authority
- CN
- China
- Prior art keywords
- resources
- queue
- pool
- command
- commands
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
- G06F9/4837—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种用于调度命令以由存储设备处理的系统和方法。从应用程序接收命令并将其存储在第一队列中。获得关于由所述存储设备管理的第一组资源的信息。基于关于所述第一组资源的所述信息,使第二组资源同步。将所述第二组资源分配到第一池和第二池中。确定所述第一池中的所述第二组资源的条件。基于对所述条件的第一确定,将所述第一池中的所述第二组资源中的一个分配给所述命令,并且基于对所述条件的第二确定,将所述第二池中的所述第二组资源中的一个分配给所述命令。
Description
相关申请的交叉引用
本申请要求2020年7月28日提交的名称为“RESOURCE-BASED SCHEDULI NG FORQOS IN SSDS”的美国临时申请号63/057,771的优先权和权益,该申请的全部内容通过引用并入本文。
技术领域
根据本公开的实施例的一个或多个方面涉及存储设备,并且更具体地涉及用于基于所述存储设备的硬件资源调度命令的系统和方法。
背景技术
主机计算设备可以提供命令(例如,读取和写入命令)以由存储设备处理。主机计算设备可以对命令的处理具有一定的服务质量(QoS)期望。然而,在某些情况下,可能没有足够的硬件资源来处理符合QoS要求的命令,从而导致抖动。
因此,需要一种用于调度命令以由存储设备处理的系统和方法,其考虑存储设备的硬件资源的可用性以解决QoS需求。
发明内容
本公开的实施例指向一种用于调度命令以由存储设备处理的方法。所述方法包括:接收来自应用程序的命令并存储在第一队列中;获得关于由存储设备管理的第一组资源的信息;基于关于第一组资源的信息,使第二组资源同步;将第二组资源分配到第一池和第二池中;确定第一池中的第二组资源的条件;基于对所述条件的第一确定,向所述命令分配第一池中的第二组资源中的一个;以及基于对所述条件的第二确定,向所述命令分配第二池中的第二组资源中的一个。基于分配第二组资源中的一个,将命令存储在与存储设备相关联的第二队列中以由存储设备处理。
根据一个实施例,命令包括来自在主机上运行的应用程序的数据操作,并且对命令的处理包括相对于非易失性存储介质执行数据操作。
根据一个实施例,关于第一组资源的信息包括第一组资源用于处理命令的可用性。
根据一个实施例,使第二组资源同步包括:确定标准的满足;基于标准的满足确定可用的第一组资源的数量;以及将可用的第二组资源的数量设置为等于可用的第一组资源的数量。
根据一个实施例,标准包括时间段的到期。
根据一个实施例,第一池由第一队列和第二队列共享,并且第二池为第一队列保留。
根据一个实施例,基于检测的标准动态地确定第二池。检测的标准可以包括第一队列的服务质量要求的标识。
根据一个实施例,用于调度命令以由存储设备处理的方法还包括:基于将命令存储在第二队列中,由存储设备分配第一组资源中的一个;由存储设备处理所述命令;以及基于对命令的处理的完成,解除分配第一组资源中的一个。
根据一个实施例,条件是第一池中的第二组资源的可用性。
本公开的实施例还指向一种用于调度命令以由存储设备处理的系统。所述系统包括处理器和存储器。所述存储器存储指令,所述指令在被执行时致使处理器进行以下操作:接收来自应用程序的命令并存储在第一队列中;获得关于由存储设备管理的第一组资源的信息;基于关于第一组资源的信息,使第二组资源同步;将第二组资源分配到第一池和第二池中;确定第一池中的第二组资源的条件;基于对所述条件的第一确定,向所述命令分配第一池中的第二组资源中的一个;以及基于对所述条件的第二确定,向所述命令分配第二池中的第二组资源中的一个,其中,基于分配第二组资源中的一个,将所述命令存储在与存储设备相关联的第二队列中以由存储设备处理。
参考以下详细描述、所附权利要求以及附图,本公开实施例的这些和其他特征、方面和优点将变得更好理解。当然,本发明的实际范围由所附权利要求限定。
附图说明
参考以下附图描述了本实施例的非限制性和非穷举性的实施例,其中,除非另外指明,否则贯穿各个视图,相同的附图标记指代相同的部分。
图1是根据当前技术机制的用于调度命令的系统的概念框图;
图2是根据一个实施例的用于基于资源调度命令的系统的框图;
图3是根据一个实施例的图2系统的各个抽象层的框图;
图4是根据一个实施例的用于调度第一队列和第二队列中的命令的图2的概念框图;并且
图5是根据一个实施例的用于基于资源调度存储在软件队列中的命令的过程的流程图。
具体实施方式
在下文中,将参考附图更详细地描述示例性实施例,其中相同的附图标记始终表示相同的元件。然而,本公开可以以各种不同的形式实施,并且不应该被解释为仅限于本文所示的实施例。相反,提供这些实施例作为示例以使得本公开将彻底且完整,并且将本公开的各方面和特征完全传达给本领域的技术人员。因此,可能不会描述对于本领域的普通技术人员完全理解本公开的各方面和特征而言不必要的过程、元件和技术。除非另有说明,否则在整个附图和书面描述中,相同的附图标记表示相同的元件,并且因此可不重复其描述。此外,在图中,为清楚起见,可能会放大和/或简化元件、层和区域的相对大小。
一般来说,存储设备可以具有有限数量的硬件资源,用于处理来自主机计算设备的命令。硬件资源可以是例如硬件队列和相关联的令牌,其可以用于调度命令以进行处理。硬件队列的大小和令牌的相关联数量可以是特定于实现的,并且可能取决于存储设备的性能和QoS要求。
与存储设备交互的设备驱动器可以将软件资源分配给要处理的命令。软件资源可以是例如软件队列和相关联的令牌。软件队列和相关联的令牌的深度可以是任意的,并且超过硬件队列及其相关联的令牌的深度。有时,这可能导致设备驱动器相比于存储设备中可用的硬件资源调度更多的命令。在这种情况下,由设备驱动器调度但无法消耗硬件资源的命令可能经历处理延迟,导致高抖动。
图1是根据当前技术机制的用于调度命令的系统的概念框图。系统包括设备驱动器100,其被配置为提交命令以由存储设备102处理。设备驱动器100可以包括各种软件队列104-108,其用于存储由主机处理设备的一个或多个应用程序提交的命令。例如,队列104(Q1)可以是配置为存储写入命令的深度写入队列,而队列106(Q2)可以是配置为存储读取命令的浅读取队列。命令可以消耗软件资源(例如,软件队列104-108和令牌110),以将命令传递到存储设备102以进行处理。
类似于设备驱动器100,存储设备102可以包括一个或多个硬件队列112-114,其被配置为存储由设备驱动器100提交的命令。例如,硬件队列112可以被配置为存储从Q1 104和Q2 106获取的命令。硬件队列112中的命令可以消耗硬件资源(例如,硬件令牌)116。具有指派的硬件资源116的命令可以被调度以由存储设备处理。
在设备驱动器中配置的各种软件队列104-108可以用于解决对于处理命令的QoS规定。例如,通过将写入和读取命令分成单独的队列104、106,并且通过采用诸如轮询(round robin)的调度算法,通常可以在可预测的时间窗口中对Q2中的读取命令进行服务。然而,在某些情况下,尽管Q2中的某些命令已排队并期望被处理,存储设备内的资源冲突可能阻止Q2中的命令按预期进行服务。
为了说明这一点,可以考虑一个实例,其中Q1 104具有排队的1000个写入命令,并且Q2 106具有排队的10个读取命令。为了本实例的目的,假定1000个写入命令消耗1000个软件令牌110,并且可以提交给存储设备以进行处理。然而,根据本实例,存储设备102仅具有待指派的768个硬件令牌116。因此,存储设备102从Q1 104获取多达768个写入命令以进行处理,导致所有768个硬件令牌116被消耗。假定写入命令已消耗了所有硬件令牌116,其中指派了软件令牌110的更多写入命令被留下待处理,则Q2中的读取命令可能不能在它们的预期时间窗口内进行处理。因此,可能不能满足Q2的QoS要求。
本公开的实施例指向一种用于基于资源调度命令的系统和方法,所述系统和方法考虑了存储设备的硬件资源对提交命令以进行处理的可用性。根据一个实施例,监视存储设备的硬件资源以与软件资源匹配/同步。一旦同步,就可以按期望将软件资源指派给命令。将软件资源指派给命令可以例如基于服务水平协议(SLA)中阐述的确定的QoS。尽管QoS用作可用于确定软件资源分配的标准的实例,但本领域技术人员应认识到还可以考虑其他标准,例如像用户偏好等等。
根据一个实施例,设备驱动器包括软件令牌管理器,所述软件令牌管理器被配置为识别硬件资源信息,并相应地更新软件资源信息。在一个实施例中,软件令牌管理器更新多个可用软件资源以匹配多个可用硬件资源。可以基于例如QoS期望为设备驱动器的一个或多个队列保留可用软件资源的特定部分。剩余软件资源可以是共享池的一部分。在一个实施例中,软件令牌管理器将来自共享池的软件令牌/资源指派给软件队列中的命令,以将命令提交给存储设备以进行处理。根据一个实施例,如果在共享池中没有要指派给队列中的命令的软件资源,则软件令牌管理器可以访问为队列保留的软件令牌,并且向命令指派保留的令牌中的一个。保留的令牌可以允许命令被及时处理以满足QoS要求。
图2是根据一个实施例的用于基于资源调度命令的系统的框图。系统可以包括主机计算设备200,其通过存储接口总线204耦合到存储设备202。存储设备202可以是非易失性存储设备,例如像,固态驱动器(SSD)、以太网SSD(eSSD)、通用串行总线(USB)驱动器、安全数字(SD)卡、嵌入式多媒体控制器(eMMC)、通用闪存(UFS)等。存储接口总线204可以是例如外围组件互连快速(PCIe)总线、以太网和CXL(计算快速链路)。在一个实施例中,主机计算设备200使用存储接口协议通过存储接口总线204向存储设备202传输数据并从所述存储设备接收数据。存储接口协议可以是例如非易失性存储器表达(NVMe)协议或使用队列来存储要处理的命令的任何其他类似协议。
在一个实施例中,主机计算设备200包括在主机计算设备200的应用程序层中运行的一个或多个应用程序206。一个或多个应用程序206可以是存储在主机存储器空间中以供处理器执行的软件应用程序。在一个实施例中,一个或多个应用程序206可以将命令发送到存储设备202以进行处理。例如,一个或多个应用程序可以发出用于从存储设备202读取数据的读取命令,用于将数据写入存储设备202的写入命令和/或其他输入/输出(I/O)请求。
在一个实施例中,主机计算设备200包括被配置为与存储设备202对接的设备驱动器208。在一个实施例中,设备驱动器208被实现为存储在主机存储器中并由处理器执行的软件指令。设备驱动器208可以包括一个或多个队列212a、212b(以下称为软件队列212)。软件队列212可以包括例如一个或多个提交队列和完成队列。提交队列可以被配置为存储由各种应用程序206提交的命令/请求。完成队列可以被配置为存储针对由存储设备202处理的命令/请求的完成消息。
一个或多个软件队列212(例如,提交队列)可以专用于存储来自主机计算设备200的某些类型的命令。例如,一个队列可以专用于存储来自应用程序的读取命令,而另一队列可以专用于存储写入命令。在一个实施例中,可以基于一个或多个SLA将某些QoS要求强加于软件队列212上。例如,可以期望在给定时间段内处理软件队列212中的一定数量的命令。不同的QoS要求可以与不同的软件队列212相关联。
设备驱动器208还可以包括被配置为管理软件资源的令牌管理器210,所述软件资源可能影响将要处理的命令的调度。软件资源可以是例如软件令牌和/或队列212。在一个实施例中,软件令牌管理器210被配置为基于来自存储设备202的信息确定软件令牌的可用性,并且将可用令牌指派给存储在软件队列212中的命令。软件令牌管理器210可以被配置为在每个控制器和/或令牌类型的基础上维护可用性信息。对于提交给队列的命令,当令牌在共享池中可用时,指派的令牌可以来自共享池,或者来自为队列保留的池。
在一个实施例中,存储设备202包括用于在主机计算设备200与设备控制子系统216之间进行对接的主机接口层(HIL)214。HIL 214可以包括但不限于一个或多个控制器218和一个或多个队列220a-220c(以下称为硬件队列220)。硬件队列220的深度可以例如取决于存储设备202的处理能力。在一个实施例中,可以为存储设备202的不同类型的处理维护不同的队列。例如,一个硬件队列可以存储用于由硬件加速引擎处理的命令,并且另一队列可以存储用于经由固件处理的命令。
可以经由一个或多个处理器实现控制器218,所述处理器例如像现场可编程门阵列(FPGA)或专用集成电路(ASIC)。一个或多个控制器218中的一个可以与一个或多个硬件队列220相关联。控制器218中的一个可以被配置为管理硬件资源并将所述硬件资源指派给提交以用于在软件队列212中处理的命令。硬件资源可以是例如硬件令牌和/或队列220。
在一个实施例中,一个或多个控制器218被配置为从软件队列212中的一个或多个获取I/O请求/命令,并且将获取的请求存储到对应于一个或多个控制器218的一个或多个硬件队列220中。在一些实施例中,请求可以由设备驱动器208获取并提交。
可以为硬件队列220中存储的命令指派硬件令牌以进行处理。在一个实施例中,可以取决于硬件队列220的类型和数量来维护并指派不同类型的硬件令牌。例如,可以将第一类型的硬件令牌指派给专用于由硬件加速引擎处理的第一硬件队列220a,而可以将第二类型的硬件令牌指派给专用于经由固件处理的第二硬件队列220b。
要指派给不同硬件队列220中的命令的可用硬件令牌的数量可以取决于队列中已经存在的命令的数量。在一个实施例中,令牌由控制器218基于硬件队列类型指派。在一个实施例中,在将命令存储在一个或多个硬件队列220中时,自动指派硬件令牌。可以调度已指派了硬件令牌的命令,以供设备控制子系统216处理。
在一个实施例中,设备控制子系统216与控制器218交互以执行应用程序206所请求的命令。设备控制子系统216可以包括但不限于一个或多个处理器222和一个或多个媒体接口224。一个或多个处理器222可以被配置为执行计算机可读指令,以用于处理去往和来自控制器218的命令,并用于管理存储设备202的操作。由一个或多个处理器222执行的计算机可读指令可以是例如固件代码。
在一个实例中,一个或多个处理器222可以被配置为与控制器218交互,以用于接收去往或来自NVM媒体226的写入或读取命令。一个或多个处理器222可以在媒体接口224上与NVM媒体226交互,以用于实现写入或读取动作。NVM媒体226可以包括一种或多种类型的非易失性存储器,例如像闪存。
在一个实施例中,存储设备202还包括内部存储器228,其用于在存储设备202的操作期间进行短期存储或临时存储。内部存储器228可以包括DRAM(动态随机存取存储器)、SRAM(静态随机存取存储器)和/或DTCM(数据紧密耦合存储器)。内部存储器228可以用于存储例如硬件队列220。
图3是根据一个实施例的图2系统的各个抽象层的框图。为了便于解释,将参考图2描述图3。主机计算设备200的抽象层可以包括应用程序层300和设备驱动器层302。应用程序层300可以被配置为基于由应用程序206发出的I/O请求生成命令。由应用程序层300生成的命令可以向用于与存储设备202通信的存储接口总线204的存储接口协议进行确认。
在一个实施例中,设备驱动器层302包括软件队列212和令牌管理器210。由应用程序层300生成的命令基于例如命令类型存储在设备驱动器208中的队列212中。软件令牌管理器210可以基于来自存储设备202的信息确定软件令牌的可用性,并且将可用令牌指派给存储在软件队列212中的命令。在指派了所有令牌的情况下,可能拒绝服务。在一个实施例中,可以允许命令在软件队列212中排队,但是如果不存在可用令牌,则可以不将该命令提交给硬件队列220以进行处理。
在一个实施例中,存储设备202包括可以包括各个子层的存储层304。各个子层可以包括主机接口层214以及用于与NVM媒体226对接的其他层,例如像闪存转换层306和闪存接口层308。NVM媒体226可以包括在存储层304中作为闪存媒体310。
图4是根据一个实施例的用于调度第一队列和第二队列中的命令的图2的概念框图。软件令牌管理器210可以管理关于可用软件令牌400的信息,包括关于共享池中的多个可用软件令牌的信息以及关于保留池中的多个可用软件令牌的信息。在一个实施例中,软件令牌管理器210针对由存储设备202中的各个控制器218的控制器管理的队列112维护令牌可用性信息。在存储设备202包括多个控制器218的情况下,软件令牌管理器210可以针对由多个控制器218管理的队列维护多组令牌可用性信息。
软件令牌管理器210还可以针对给定的一组可用令牌中不同类型的令牌维护可用性信息。例如,可以基于是由硬件加速引擎还是经由固件来处理命令来指派不同的令牌。软件令牌管理器210可以被配置为监视用于硬件加速处理的令牌和用于固件处理的令牌的可用性,并且基于可用性将适当类型的令牌指派给命令。
在一个实施例中,可以在保留池中为每个软件队列212保留一定数量的软件令牌。保留也可以基于不同的令牌类型。对于不同的队列和令牌类型,为软件队列保留的软件令牌的数量可以相同或不同。
在一个实施例中,可以基于一个或多个标准动态地确定为队列212保留的令牌的数量(应当理解为还包括令牌类型)。标准可以是例如使用统计和/或SLA要求。在一个实施例中,软件令牌管理器210被配置为识别队列212的SLA要求(例如,每秒所需的输入/输出、带宽等),并且基于SLA要求专用一部分可用软件令牌400。例如,如果队列的带宽要求是BW1,并且总可用带宽是BW,则保留令牌的数量可以基于BW1与BW的比率(BW1/BW)。
在一些实施例中,软件令牌管理器210被配置为收集与软件队列的使用有关的历史信息,包括使用的时间段、使用量、负责使用的应用程序等,并且基于历史信息动态地调整为队列保留的令牌的数量。以这种方式,当在队列212之一的使用率被预测为高的某个时间段到达时,软件令牌管理器210可以被配置为基于预测为队列保留更多令牌。
在又一些实施例中,软件令牌管理器210从各种应用程序206接收关于从应用程序206期望(例如,在下一毫秒中)的命令的数量和类型的信息。软件令牌管理器210可以基于所述信息动态地调整为受影响的队列保留的令牌的数量。例如,如果期望第一队列比第二队列被更充分地利用,则在给定时间段内为第一队列保留的令牌的数量可以成比例地高于为第二队列保留的令牌的数量。
在一个实例中,在给定的时间窗口,由软件令牌管理器210识别用于特定控制器218的可用软件令牌400的总数为768个令牌。可用软件令牌400的数量可以和与特定控制器218相关联的硬件令牌402的总数匹配。软件令牌管理器210可以被配置为在保留池中保留一定数量的可用软件令牌400。例如,可以将10%的可用令牌(77个令牌)分配给保留池,而将剩余691个令牌分配给共享池。在软件队列中的第一个212a(Q1)有691个命令存储在队列中并且软件队列中的第二个212b(Q2)有两个命令存储在队列中的情况下,软件令牌管理器210可以被配置为基于调度算法来调度Q1 212a中的命令以进行处理。所述调度算法诸如示例为轮询、加权轮询、固定优先级等调度算法。可以给Q1 212a中的命令分配共享池中的691个可用软件令牌,以用于允许将命令提交给相关联的硬件队列220a进行处理。提交给硬件队列220a的691个命令可能消耗来自可用硬件令牌池402中的691个硬件令牌。
接下来可以根据调度算法选择Q2 212b中的两个命令以进行处理。假定尚未释放指派给Q1 212a中的命令的691个令牌,则共享池中将没有更多令牌要指派给Q2 212b中的命令。然而,假定已经将77个令牌分配给了保留池,并且在各个软件队列212之间进行了划分,则将保留池中已经分配给Q2212b的软件令牌中的两个指派给Q2 212b中的两个命令。就这一点而言,即使在共享池中没有更多可用的软件令牌,Q2 212b中的两个命令仍可以被提交给对应的硬件队列220a以经由保留的软件令牌进行处理,允许维护调度的公平性。提交给硬件队列220a的两个命令可能消耗来自可用硬件令牌的两个令牌,致使可用硬件令牌402的总数减少到75。
在一个实施例中,将关于更新的硬件令牌的信息经由命令或经由应用程序编程接口(API)404暴露给软件令牌管理器210。然后,软件令牌管理器210可以使用所述信息来使其软件令牌400同步。关于更新的令牌的信息可以被周期性地(规则的或不规则的)推送到软件令牌管理器210,或者由软件令牌管理器从存储设备226中获取。例如,基于处理器222完成了对一个或多个命令的处理,控制器218可以使用中断信号向设备驱动器208提交完成消息,这进而可以解除分配/空出一个或多个对应的硬件令牌402。完成消息可以传输到软件令牌管理器210,和/或提交到一个或多个软件队列212的完成队列。当被提交给完成队列时,软件令牌管理器210可以被配置为从完成队列周期性地获取完成消息,并且相应地更新可用软件令牌400。例如,当软件令牌管理器210接收到与五个处理的命令相关联的一个或多个完成消息时,软件令牌管理器210可以将先前分配给命令的五个对应的软件令牌解除分配。
图5是根据一个实施例的用于基于资源调度存储在软件队列212中的命令的过程的流程图。应当理解,过程的步骤顺序不是固定的,而是可以改变为本领域技术人员公认的任何期望的顺序。为了便于解释,将参考图2描述图5。
过程开始,并且在块500处,软件令牌管理器210接收针对软件队列212之一中的命令的软件令牌的请求。在一些实施例中,命令在队列中的放置可以被认为是对软件令牌的请求。请求可以包括存储命令的队列的标识符以及令牌类型。
在块502处,软件令牌管理器210确定是否应该更新关于可用软件令牌的信息。可以在满足标准(例如像,时间段到期)时或在确定接收到请求时共享池和保留池中没有可用的软件令牌时,更新软件令牌。
如果要更新令牌可用性信息,则软件令牌管理器210获得关于可用硬件令牌的信息,并且使可用软件令牌同步以匹配可用硬件令牌。这可以包括例如从一个或多个控制器218接收用于接收更新信息的中断信号,或者向一个或多个完成队列查询关于由存储设备202完成的命令的信息。在一个实施例中,更新信息可以包括令牌类型信息,其用于允许软件令牌管理器210基于每个令牌类型来使多个可用软件令牌同步。
在块506处,软件令牌管理器210为每个队列和每个令牌类型保留一定数量的可用令牌。例如,假定可用令牌的总数是1000,则软件令牌管理器210可以将可用令牌的10%分配给队列中的第一个,并且将可用令牌的5%分配给队列中的第二个。百分比可以是静态的(例如,手动设置),或者是动态确定的。其他百分比也是可能的。保留令牌的数量可以例如基于队列的预期使用和/或队列类型,QoS预期等。
在块508处,将剩余的可用令牌分配为共享池中的共享令牌。
在块510处,做出关于共享池中的共享令牌是否满足条件的确定。条件可以是例如要分配给命令的共享令牌的可用性。如果答案为是,则在块512处将共享池中的可用令牌分配给命令。现在可以由控制器218提交/获取命令以进行处理,导致消耗硬件令牌。
在块514处,软件令牌管理器210将共享池中的可用软件令牌的数量减少一个。
再次参考块510,如果做出共享令牌不满足条件(例如,共享池中没有共享令牌)的确定,则在块516处,软件令牌管理器210确定是否有为队列和与命令相关联的令牌类型保留的任何令牌。如果答案为是,则在块518处将保留池中用于队列和令牌类型的可用令牌分配给命令。
在块520处,软件令牌管理器210将为队列和令牌类型保留的令牌的数量减少一个。
如果没有要指派给命令的共享或保留令牌,则所述命令可以保留在队列中而无需提供服务,直到软件令牌变得再次可用为止。
在一些实施例中,在一个或多个处理器中实现以上讨论的用于基于资源调度命令的系统和方法。术语处理器可以指一个或多个处理器和/或一个或多个处理核心。一个或多个处理器可以托管在单个设备中或分布在多个设备上(例如,在云系统上)。处理器可以包括例如专用集成电路(ASIC)、通用或专用中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)以及诸如现场可编程门阵列(FPGA)的可编程逻辑设备。如本文所使用的,在处理器中,每个功能由配置为执行该功能的硬件(即,硬接线的)来执行,或者由配置为执行存储在非暂态存储介质(例如内存)中的指令的更通用的硬件(诸如CPU)来执行。处理器可以在单个印刷电路板(PCB)上制造,或者分布在几个互连的PCB上。处理器可以包含其他处理电路;例如,处理电路可以包括在PCB上互连的两个处理电路,FPGA和CPU。
应理解,尽管在本文中术语“第一”、“第二”、“第三”等可用于描述各种元件、部件、区域、层和/或部分,但这些元件、部件、区域、层和/或部分应不受这些术语限制。这些术语仅用于将一个元件、部件、区域、层或部分与另一个元件、部件、区域、层或部分区分开来。因此,下面讨论的第一元件、部件、区域、层或部分可以被称为第二元件、部件、区域、层或部分,而不脱离本发明概念的精神和范围。
本文中使用的术语仅是为了描述特定实施例的目的,而不旨在限制本发明概念。如本文所用,术语“基本上”、“约”和类似术语用作近似术语而不是程度术语,并且旨在说明测量或计算值的固有偏差,这些偏差会被本领域普通技术人员识别出。
如本文所使用的,单数形式“一”和“一个”也旨在包括复数形式,除非上下文另有明确指示。还应理解,当在本说明书中使用时,术语“包括(comprise/comprising)”指定所陈述的特征、整体、步骤、操作、元件和/或部件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元件、部件和/或其组合的存在或添加。如此处所使用的,术语“和/或”包括一个或多个相关列出项目的任何和所有组合。在元件列表之后使用“至少一个”等表达时,会修改整个元件列表,而不会修改列表中的单个元件。此外,当描述本发明概念的实施例时,“可以”的使用是指“本公开的一个或多个实施例”。另外,术语“示例性”旨在指一个实例或说明。如本文所用,术语“使用(use/using/used)”可以分别被认为与术语“利用(utilize/utilizing/utilized)”同义。
应当理解,当元件或层被称为“在…上”、“连接到”、“联接到”或“邻近”另一个元件或层时,其可以直接“在…上”、“连接到”、“联接到”或“邻近”另一元件或层,或者可以存在一个或多个中间元件或层。相反,当元件或层被称为“直接在…上”、“直接连接到”、“直接联接到”或“直接邻近”另一元件或层时,不存在中间元件或层。
本文列举的任何数值范围旨在包括包含在列举范围内的相同数值精度的所有子范围。例如,“1.0至10.0”的范围旨在包括所列举最小值1.0和所列举最大值10.0之间(并且包括)的所有子范围,即,具有等于或大于1.0的最小值以及等于或小于10.0的最大值,例如像2.4至7.6。本文列举的任何最大数值限制旨在包括其中包含的所有较低数值限制,并且本说明书中列举的任何最小数值限制旨在包括其中包含的所有较高数值限制。
尽管本文已经具体描述和示出了用于基于资源调度命令的系统和方法的示例性实施例,但是许多修改和变型对于本领域技术人员将是显而易见的。因此,应理解,除了本文具体描述的以外,可以体现用于根据本公开的原理构造的用于基于资源调度命令的系统和方法。本公开也在所附权利要求及其等同物中定义。
Claims (20)
1.一种用于调度命令以由存储设备处理的方法,所述方法包括:
接收来自应用程序的命令并存储在第一队列中;
获得关于由所述存储设备管理的第一组资源的信息;
基于关于所述第一组资源的所述信息,使第二组资源同步;
将所述第二组资源分配到第一池和第二池中;
确定所述第一池中的所述第二组资源的条件;
基于对所述条件的第一确定,向所述命令分配所述第一池中的所述第二组资源中的一个;以及
基于对所述条件的第二确定,向所述命令分配所述第二池中的所述第二组资源中的一个,其中,基于所述分配所述第二组资源中的所述一个,将所述命令存储在与所述存储设备相关联的第二队列中以由所述存储设备处理。
2.如权利要求1所述的方法,其中所述命令包括来自在主机上运行的应用程序的数据操作,并且对所述命令的处理包括相对于非易失性存储介质执行所述数据操作。
3.如权利要求1所述的方法,其中关于所述第一组资源的所述信息包括所述第一组资源用于处理所述命令的可用性。
4.如权利要求1所述的方法,其中使所述第二组资源同步包括:
确定标准的满足;
基于所述标准的满足确定可用的第一组资源的数量;以及
将可用的第二组资源的数量设置为等于可用的第一组资源的数量。
5.如权利要求4所述的方法,其中所述标准包括时间段的到期。
6.如权利要求1所述的方法,其中所述第一池由所述第一队列和所述第二队列共享,并且所述第二池为所述第一队列保留。
7.如权利要求6所述的方法,其中基于检测的标准动态地确定所述第二池。
8.如权利要求7所述的方法,其中所述检测的标准包括所述第一队列的服务质量要求的标识。
9.如权利要求1所述的方法,还包括:
基于将所述命令存储在所述第二队列中,由所述存储设备分配所述第一组资源中的一个;
由所述存储设备处理所述命令;以及
基于对所述命令的所述处理的完成,解除分配所述第一组资源中的所述一个。
10.如权利要求1所述的方法,其中所述条件是所述第一池中的所述第二组资源的可用性。
11.一种用于调度命令以由存储设备处理的系统,所述系统包括:
处理器;和
存储器,其中所述存储器存储指令,所述指令在被执行时致使所述处理器用于:
接收来自应用程序的命令并存储在第一队列中;
获得关于由所述存储设备管理的第一组资源的信息;
基于关于所述第一组资源的所述信息,使第二组资源同步;
将所述第二组资源分配到第一池和第二池中;
确定所述第一池中的所述第二组资源的条件;
基于对所述条件的第一确定,向所述命令分配所述第一池中的所述第二组资源中的一个;以及
基于对所述条件的第二确定,向所述命令分配所述第二池中的所述第二组资源中的一个,其中,基于所述分配所述第二组资源中的所述一个,将所述命令存储在与所述存储设备相关联的第二队列中以由所述存储设备处理。
12.如权利要求11所述的系统,其中所述命令包括来自在主机上运行的应用程序的数据操作,并且对所述命令的处理包括相对于非易失性存储介质执行所述数据操作。
13.如权利要求11所述的系统,其中关于所述第一组资源的所述信息包括所述第一组资源用于处理所述命令的可用性。
14.如权利要求11所述的系统,其中致使所述处理器使所述第二组资源同步的所述指令包括致使所述处理器进行以下操作的指令:
确定标准的满足;
基于所述标准的满足确定可用的第一组资源的数量;以及
将可用的第二组资源的数量设置为等于可用的第一组资源的数量。
15.如权利要求14所述的系统,其中所述标准包括时间段的到期。
16.如权利要求11所述的系统,其中所述第一池由所述第一队列和第二队列共享,并且所述第二池为所述第一队列保留。
17.如权利要求16所述的系统,其中基于检测的标准动态地确定所述第二池。
18.如权利要求17所述的系统,其中所述检测的标准包括所述第一队列的服务质量要求的标识。
19.如权利要求11所述的系统,其中所述存储设备被配置为:
基于将所述命令存储在所述第二队列中,分配所述第一组资源中的一个;
处理所述命令;以及
基于对所述命令的所述处理的完成,传输用于解除分配所述第一组资源中的所述一个的信号。
20.如权利要求11所述的系统,其中所述条件是所述第一池中的所述第二组资源的可用性。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063057771P | 2020-07-28 | 2020-07-28 | |
US63/057,771 | 2020-07-28 | ||
US17/082,933 | 2020-10-28 | ||
US17/082,933 US11704058B2 (en) | 2020-07-28 | 2020-10-28 | Systems and methods for resource-based scheduling of commands |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114003369A true CN114003369A (zh) | 2022-02-01 |
Family
ID=75746503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110849020.6A Pending CN114003369A (zh) | 2020-07-28 | 2021-07-27 | 用于基于资源调度命令的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11704058B2 (zh) |
EP (1) | EP3945419A1 (zh) |
JP (1) | JP2022025055A (zh) |
KR (1) | KR20220014280A (zh) |
CN (1) | CN114003369A (zh) |
TW (1) | TW202205103A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210089225A1 (en) * | 2020-11-19 | 2021-03-25 | Intel Corporation | Adaptive device behavior based on available energy |
US20220350536A1 (en) * | 2021-04-28 | 2022-11-03 | Mediatek Inc. | Abort handling by host controller for storage device |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6333936B1 (en) | 1998-04-29 | 2001-12-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for allocating processing resources |
US6857020B1 (en) | 2000-11-20 | 2005-02-15 | International Business Machines Corporation | Apparatus, system, and method for managing quality-of-service-assured e-business service systems |
US8145785B1 (en) | 2004-02-13 | 2012-03-27 | Habanero Holdings, Inc. | Unused resource recognition in real time for provisioning and management of fabric-backplane enterprise servers |
US9397944B1 (en) | 2006-03-31 | 2016-07-19 | Teradici Corporation | Apparatus and method for dynamic communication scheduling of virtualized device traffic based on changing available bandwidth |
US9128883B2 (en) * | 2008-06-19 | 2015-09-08 | Commvault Systems, Inc | Data storage resource allocation by performing abbreviated resource checks based on relative chances of failure of the data storage resources to determine whether data storage requests would fail |
WO2009153620A1 (en) | 2008-06-19 | 2009-12-23 | Freescale Semiconductor, Inc. | A system, method and computer program product for scheduling a processing entity task |
JP4764915B2 (ja) | 2008-12-08 | 2011-09-07 | 株式会社日立製作所 | 性能管理システム、情報処理システム、及び性能管理システムにおける情報収集方法 |
US8037219B2 (en) | 2009-04-14 | 2011-10-11 | Lsi Corporation | System for handling parallel input/output threads with cache coherency in a multi-core based storage array |
US7970861B2 (en) * | 2009-11-18 | 2011-06-28 | Microsoft Corporation | Load balancing in a distributed computing environment |
US20210349749A1 (en) * | 2012-02-14 | 2021-11-11 | Aloke Guha | Systems and methods for dynamic provisioning of resources for virtualized |
US9396031B2 (en) | 2013-09-27 | 2016-07-19 | International Business Machines Corporation | Distributed UIMA cluster computing (DUCC) facility |
KR101699377B1 (ko) * | 2014-07-02 | 2017-01-26 | 삼성전자주식회사 | 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 |
US11467769B2 (en) | 2015-09-28 | 2022-10-11 | Sandisk Technologies Llc | Managed fetching and execution of commands from submission queues |
US9792051B2 (en) | 2016-02-24 | 2017-10-17 | Samsung Electronics Co., Ltd. | System and method of application aware efficient IO scheduler |
CN107306232B (zh) | 2016-04-22 | 2021-02-26 | 华为技术有限公司 | 网络设备、控制器、队列管理方法及流量管理芯片 |
US10146585B2 (en) * | 2016-09-07 | 2018-12-04 | Pure Storage, Inc. | Ensuring the fair utilization of system resources using workload based, time-independent scheduling |
KR20180057036A (ko) | 2016-11-21 | 2018-05-30 | 삼성전자주식회사 | 효율적인 리소스 관리를 위한 전자 장치 및 이의 방법 |
US10496563B2 (en) | 2017-04-07 | 2019-12-03 | Intel Corporation | Apparatus and method for dynamic provisioning, quality of service, and scheduling in a graphics processor |
US10541939B2 (en) | 2017-08-15 | 2020-01-21 | Google Llc | Systems and methods for provision of a guaranteed batch |
JP2019074995A (ja) | 2017-10-18 | 2019-05-16 | 富士ゼロックス株式会社 | 情報処理装置 |
CN116010312A (zh) * | 2018-01-18 | 2023-04-25 | 伊姆西Ip控股有限责任公司 | 用于管理输入/输出的方法、设备和计算机程序产品 |
US11409436B2 (en) * | 2018-08-08 | 2022-08-09 | Micron Technology, Inc. | Buffer management in memory systems for read and write requests |
US11163452B2 (en) | 2018-09-24 | 2021-11-02 | Elastic Flash Inc. | Workload based device access |
US11507430B2 (en) | 2018-09-27 | 2022-11-22 | Intel Corporation | Accelerated resource allocation techniques |
US10834009B2 (en) | 2019-03-18 | 2020-11-10 | Intel Corporation | Systems and methods for predictive scheduling and rate limiting |
US11669272B2 (en) | 2019-05-31 | 2023-06-06 | Micron Technology, Inc. | Predictive data transfer based on availability of media units in memory sub-systems |
US11748278B2 (en) | 2019-06-20 | 2023-09-05 | Intel Corporation | Multi-protocol support for transactions |
US11231963B2 (en) * | 2019-08-15 | 2022-01-25 | Intel Corporation | Methods and apparatus to enable out-of-order pipelined execution of static mapping of a workload |
US20200089537A1 (en) * | 2019-11-20 | 2020-03-19 | Intel Corporation | Apparatus and method for bandwidth allocation and quality of service management in a storage device shared by multiple tenants |
US11321257B2 (en) * | 2019-12-31 | 2022-05-03 | Micron Technology, Inc. | Quality of service control of logical devices for a memory sub-system |
US11436049B2 (en) * | 2020-04-17 | 2022-09-06 | Apple Inc. | Systems and methods to control bandwidth through shared transaction limits |
US20210349657A1 (en) * | 2020-05-08 | 2021-11-11 | Pure Storage, Inc. | Providing data management as-a-service |
US20210266253A1 (en) | 2021-04-23 | 2021-08-26 | Intel Corporation | Pooling of network processing resources |
-
2020
- 2020-10-28 US US17/082,933 patent/US11704058B2/en active Active
-
2021
- 2021-04-30 EP EP21171599.0A patent/EP3945419A1/en active Pending
- 2021-05-03 TW TW110115889A patent/TW202205103A/zh unknown
- 2021-05-25 KR KR1020210067120A patent/KR20220014280A/ko active Search and Examination
- 2021-07-27 CN CN202110849020.6A patent/CN114003369A/zh active Pending
- 2021-07-28 JP JP2021123001A patent/JP2022025055A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220035565A1 (en) | 2022-02-03 |
EP3945419A1 (en) | 2022-02-02 |
US11704058B2 (en) | 2023-07-18 |
JP2022025055A (ja) | 2022-02-09 |
TW202205103A (zh) | 2022-02-01 |
KR20220014280A (ko) | 2022-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9208116B2 (en) | Maintaining I/O priority and I/O sorting | |
CN107018091B (zh) | 资源请求的调度方法和装置 | |
CN109936604B (zh) | 一种资源调度方法、装置和系统 | |
US11620159B2 (en) | Systems and methods for I/O command scheduling based on multiple resource parameters | |
US20170177221A1 (en) | Dynamic core allocation for consistent performance in a non-preemptive scheduling environment | |
EP3251021B1 (en) | Memory network to prioritize processing of a memory access request | |
US10394606B2 (en) | Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy | |
US11411798B2 (en) | Distributed scheduler | |
CN109726005B (zh) | 用于管理资源的方法、服务器系统和计算机可读介质 | |
US11093352B2 (en) | Fault management in NVMe systems | |
CN107480078B (zh) | 一种总线带宽分配方法、装置及芯片 | |
CN114003369A (zh) | 用于基于资源调度命令的系统和方法 | |
US20170132040A1 (en) | Methods to apply iops and mbps limits independently using cross charging and global cost synchronization | |
US20180203733A1 (en) | Computer and control method for computer | |
US10705985B1 (en) | Integrated circuit with rate limiting | |
CN117078495A (zh) | 图形处理器的内存分配方法、装置、设备及存储介质 | |
US20220197700A1 (en) | Dynamic last level cache allocation for cloud real-time workloads | |
JP2013206041A (ja) | 通信システム及び負荷分散処理装置 | |
KR101915945B1 (ko) | 클러스터 시스템에서의 클라이언트 요청 처리 방법, 상기 클라이언트 요청에 따른 입출력 처리 방법 및 장치 | |
JP6364827B2 (ja) | 情報処理装置、及び、そのリソースアクセス方法、並びに、リソースアクセスプログラム | |
US20230141122A1 (en) | Scheduling storage tasks | |
US8566829B1 (en) | Cooperative multi-level scheduler for virtual engines | |
CN116136796A (zh) | 支持多主机的存储装置、其操作方法和存储系统 | |
Delgado Borda | Hybrid, Job-Aware, and Preemptive Datacenter Scheduling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |