CN108292242A - 对服务质量执行成比例带宽分配的方法 - Google Patents
对服务质量执行成比例带宽分配的方法 Download PDFInfo
- Publication number
- CN108292242A CN108292242A CN201680066075.7A CN201680066075A CN108292242A CN 108292242 A CN108292242 A CN 108292242A CN 201680066075 A CN201680066075 A CN 201680066075A CN 108292242 A CN108292242 A CN 108292242A
- Authority
- CN
- China
- Prior art keywords
- request
- rate
- saturation
- bandwidth
- memory
- 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
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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
系统及方法涉及用于存取共享存储器的带宽的分散式分配。控制对所述共享存储器的存取的存储器控制器从多个请求代理装置接收对用于存取所述共享存储器的带宽的请求。所述存储器控制器包含饱和度监测器以确定用于存取所述共享存储器的所述带宽的饱和度等级。在每一请求代理装置处的请求速率控管器基于所述饱和度等级及分配给所述请求代理装置的比例带宽份额而确定所述请求代理装置的目标请求速率,所述比例带宽份额是基于所述请求代理装置的服务质量QoS类别。
Description
对相关申请案的交叉参考
本专利申请案要求于2015年11月23日申请的题为“对服务质量执行成比例带宽分配的方法(A METHOD TO ENFORCE PROPORTIONAL BANDWIDTH ALLOCATIONS FOR QUALITYOF SERVICE)”的第62/258,826号美国临时申请案的权利,所述申请案被让与给其受让人且其全文以引用的方式明确地并入本文中。
技术领域
所公开的方面涉及处理系统中的资源分配。更具体来说,示范性方面涉及处理系统中的带宽分配的分散式管理。
背景技术
一些处理系统可包含在各种消费型装置(例如,处理元件)之间共享的共享资源,例如共享存储器。随着技术的进步,集成于处理系统中的消费型装置的数目倾向于增加。然而,此倾向也增加对共享资源的竞争与冲突。难以(例如)在各种消费型装置间分配共享存储器的存储器带宽,同时也为所有所述消费型装置保证预期服务质量(QoS)或其它性能度量。
常规带宽分配机制在向各种消费型装置分配可用存储器带宽中倾向于保守,其着眼于避免所要存储器带宽不可用于时序关键或带宽敏感应用的情形。然而,此些保守方法可能造成未充分利用可用带宽。因此,所属领域中需要对可用存储器带宽的改进分配。
发明内容
本发明的示范性方面涉及与用于存取共享存储器的带宽的分散式分配有关的系统及方法。控制对共享存储器的存取的存储器控制器从多个请求代理装置接收对用于存取共享存储器的带宽的请求。所述存储器控制器包含饱和度监测器以确定用于存取所述共享存储器的带宽的饱和度等级。每一请求代理装置处的请求速率控管器基于所述饱和度等级及分配给所述请求代理装置的比例带宽份额而确定所述请求代理装置处的目标请求速率,所述比例份额是基于所述请求代理装置的服务质量(QoS)类别。
举例来说,示范性方面涉及一种用于带宽的分散式分配的方法,所述方法包括:通过多个请求代理装置请求用于存取共享存储器的带宽;在用于控制对所述共享存储器的存取的存储器控制器中确定用于存取所述共享存储器的所述带宽的饱和度等级;及基于所述饱和度等级及比例带宽份额而确定每一请求代理装置处的目标请求速率,所述比例带宽份额是基于所述请求代理装置的服务质量(QoS)类别而分配给所述请求代理装置。
另一示范性方面涉及一种设备,其包括:共享存储器;多个请求代理装置,其经配置以请求对所述共享存储器的存取;及存储器控制器,其经配置以控制对所述共享存储器的存取,其中所述存储器控制器包括饱和度监测器,所述饱和度监测器经配置以确定用于存取所述共享存储器的带宽的饱和度等级。所述设备还包括请求速率控管器,所述请求速率控管器经配置以基于所述饱和度等级及比例带宽份额而确定每一请求代理装置处的目标请求速率,所述比例带宽份额是基于所述请求代理装置的服务质量(QoS)类别而分配给所述请求代理装置。
另一示范性方面涉及一种设备,其包括:请求装置,其请求用于存取共享存储器的带宽;控制装置,其用于控制对所述共享存储器的存取,包括用于确定用于所述存取共享存储器的所述带宽的饱和度等级的装置;及确定装置,其用于基于所述饱和度等级及比例带宽份额而确定每一请求装置处的目标请求速率,所述比例带宽份额是基于所述请求装置的服务质量(QoS)类别而分配给请求代理装置的装置。
又一示范性方面涉及一种非暂时性计算机可读存储媒体,其包括在由处理器执行时使所述处理器执行用于带宽的分散式分配的操作的程序代码,所述非暂时性计算机可读存储媒体包括:用于通过多个请求代理装置请求用于存取共享存储器的带宽的程序代码;用于在用于控制对所述共享存储器的存取的存储器控制器处确定用于存取所述共享存储器的带宽的饱和度等级的程序代码;及用于基于所述饱和度等级及比例带宽份额而确定每一请求代理装置处的目标请求速率的程序代码,所述比例带宽份额是基于所述请求代理装置的服务质量(QoS)类别而分配给所述请求代理装置。
附图说明
附图经呈现以辅助描述本发明的方面且经提供以仅用于说明所述方面而非对其进行限制。
图1说明根据本发明的方面的一个示范性成比例带宽分配系统中的一个分配。
图2A到B说明根据本发明的方面的成比例带宽分配中的示范性多阶段压制实施中的逻辑流程。
图2C展示用于图2B的初始化阶段块中的示范性操作的伪码算法。
图3A到B分别展示用于图2A到B的快速压制阶段块中的示范性操作的伪码算法。
图4A到B分别展示用于图3A到B的指数减小过程中的示范性操作的伪码算法。
图5A到B分别展示用于图2A到B的快速恢复阶段块中的示范性操作的伪码算法。
图6A到B分别展示用于图5A到B的迭代搜索过程中的示范性操作的伪码算法。
图7A到B分别展示用于图2A到B的主动增加阶段块中的示范性操作的伪码算法。
图8A到B分别展示用于图7A到B的速率增加过程中的示范性操作的伪码算法。
图9A到B分别展示用于图7A到B的速率回复过程中的示范性操作的伪码算法。
图10A到B分别展示用于图2A到B的复位确认阶段块中的示范性操作的伪码算法。
图11展示根据本发明的方面的成比例带宽分配中的多阶段压制过程中的事件的时序模拟。
图12展示根据本发明的方面的成比例带宽分配系统中的示范性请求速率控管器。
图13说明根据本发明的方面的一个示范性成比例带宽分配系统中的共享二阶高速缓存存储器分配的一个配置。
图14说明根据本发明的方面的示范性带宽分配方法。
图15说明可有利地使用本发明的一或多个方面的示范性无线装置。
具体实施方式
本发明的方面公开于有关于本发明的特定方面的以下描述及相关图式中。可在不脱离本发明的范围的情况下设想替代方面。另外,将不详细描述或将省略本发明的熟知元件以免混淆本发明的相关细节。
本文中使用词“示范性”来意谓“充当实例、例项或说明”。本文中被描述为“示范性”的任何方面未必解释为比其它方面优选或有利。同样地,术语“本发明的方面”并不要求本发明的所有方面包含所论述的特征、优点或操作模式。
本文中所使用的术语仅是出于描述特定方面的目的且并不打算限制本发明的方面。如本文中所使用,除非上下文另有清晰指示,否则单数形式“一”及“所述”打算也包含复数形式。将进一步理解,术语“包括(comprises/comprising)”、“包含(includes及/或including)”在本文中使用时指定所述特征、整体、步骤、操作、元件及/或组件的存在,但不排除一或多个其它特征、整体、步骤、操作、元件、组件及/或其群组的存在或添加。
此外,依据待由(例如)计算装置的元件执行的动作的顺序描述许多方面。将认识到,本文中所描述的各种动作可通过特定电路(例如,专用集成电路(ASIC))、通过用一或多个处理器执行的程序指令或通过两者的组合而执行。另外,可认为本文中所描述的此些动作序列完全体现于任何形式的计算机可读存储媒体内,所述计算机可读存储媒体中存储有在执行时将引起相关联处理器执行本文中所描述的功能性的计算机指令的对应集合。因此,本发明的各种方面可以数种不同形式体现,预期所有形式均在所主张标的物的范围内。此外,对于本文中所描述的方面中的每一者,任何此些方面的对应形式可在本文中被描述为(例如)“经配置以”执行所描述动作的“逻辑”。
本发明的示范性方面涉及处理系统,其包括至少一个共享资源,例如共享存储器,其在所述共享资源的两个或大于两个消费型装置或请求代理装置之间共享。在一个实例中,所述请求代理装置可为处理器、高速缓存存储器或可存取共享存储器的其它代理装置。请求可被转递到存储器控制器,所述存储器控制器控制对共享存储器的存取。在一些情况下,所述请求代理装置也可被称为产生请求或将请求转递到存储器控制器的源。所述请求代理装置可分组成若干类别,其中每一类别与服务质量(QoS)相关联。
根据示范性方面,用于共享存储器的带宽可按总带宽的比例份额为单位分配给每一QoS类别,使得用于每一QoS类别的带宽足以至少满足那个QoS类别的QoS度量。参数βi被称为QoS类别的“比例份额权重”(换句话说,比例份额权重指示基于代理装置所属的类别的相应QoS而指派给代理装置的带宽的比例份额),其中“i”索引识别请求代理装置所属的QoS类别。对应于每一类别的比例份额权重βi,也针对每一类别定义参数αi,其中对于由“i”识别的QoS类别,αi被称为所述QoS类别的“比例份额步幅(stride)”。在示范性方面中,QoS类别的比例份额步幅αi是所述QoS类别的比例份额权重βi的倒数。QoS类别的比例份额步幅αi表示服务来自QoS类别的请求的相对成本。
当过量带宽可用时,可基于QoS类别的相应比例份额参数αi或βi对一或多个QoS类别再次按比例分派过量带宽。成比例带宽分散的示范性方面经设计以保证每一类别的QoS,同时避免未充分利用过量带宽的问题。
在一个方面中,饱和度监测器可与用于共享资源或共享存储器的存储器控制器相关联。所述饱和度监测器可经配置以输出饱和信号,所述饱和信号指示一或多个饱和度等级。所述饱和度等级可提供在给定时间间隔期间待服务的未处理请求的数目的指示,且可以各种方式测量,包含(例如)基于等待由存储器控制器调度以存取共享存储器的传入队列中的请求的数目的计数、由于缺乏带宽而被否决存取或被拒绝调度以存取共享资源的请求的数目等。所述给定间隔可被称为时段(epoch),且可(例如)以时间单位(例如,微秒)或时脉循环数目进行测量。所述时段的长度可为应用特定的。所述饱和度监测器可输出在一或多个电平中的一者下的饱和信号,(例如)以指示共享资源的未饱和状态及例如低、中等或高饱和状态的一或多个等级。
在每一请求代理装置处,提供控管器,以基于饱和信号调整从代理装置产生请求的速率。所述控管器实施控管器算法,所述控管器算法在如下意义上是跨越代理装置而分散:在每一时段内,每一控管器重新计算其对应请求代理装置的目标请求速率,而不必与其它请求代理装置的其它控管器通信。在示范性方面中,每一控管器可基于对时段边界及饱和信号的了解而计算其相应请求代理装置的目标请求速率,而无需与其它请求代理装置通信。
现参看图1,展示根据示范性方面配置的示范性处理系统100。处理系统100可具有一或多个处理器,其中两个处理器代表性地说明为处理器102a到102b。处理器102a到102b可具有一或多个阶层的高速缓存存储器,包含私用高速缓存存储器,其中展示用于相应处理器102a到102b的私用高速缓存存储器104a到104b(例如,1阶或“L1”高速缓存存储器)。虽然私用高速缓存存储器104a到104b可与其它高速缓存存储器(包含共享高速缓存存储器(未图示))通信,但在所说明实例中,私用高速缓存存储器104a到104b展示为与存储器控制器106通信。存储器控制器106可管理对存储器112的存取,其中存储器112可为共享资源。存储器112可为如所属领域中已知的硬盘机或主存储器,且可位于芯片外,即,集成在与集成图1中所展示的处理系统100的剩余部分(包含(例如)处理器102a到102b、私用高速缓存存储器104a到104b及存储器控制器106)的裸片或芯片不同的裸片或芯片上,但各种替代实施是可能的。
每当处理器102a到102b分别向私用高速缓存存储器104a到104b请求数据且相应私用高速缓存存储器104a到104b中存在未命中时,私用高速缓存存储器104a到104b将向存储器控制器106转递所述请求以从存储器112提取所请求数据(例如,在请求为读取请求的实例中)。从存储器控制器106的观点,来自私用高速缓存存储器104a到104b的请求也被称为传入存储器请求。由于存储器112可位于芯片外,或甚至在芯片上实施方案中,可涉及用于传送数据的长导线/互连件,因此到存储器112的接口(例如,接口114)可具有带宽限制,其可限制在任何给定时间可被服务的传入存储器请求的数目。存储器控制器106可实施队列机制(未具体展示),所述队列机制用于在传入存储器请求被服务之前将所述传入存储器请求排入队列。如果所述队列机制为满的或饱和的,那么可按下文所描述的一或多种方式拒绝一些传入存储器请求。
存储器控制器106经展示为包含饱和度监测器108,其中饱和度监测器108经配置以确定饱和度等级。所述饱和度等级可用各种方式确定。在一个实例中,饱和度可基于来自私用高速缓存存储器104a到104b的由于不被接受用于服务而拒绝或发送回到请求源的传入存储器请求的数目的计数。在另一实例中,所述饱和度等级可基于由于用于存取存储器112的带宽不可用而未经调度以存取存储器112的未处理请求的计数或数目。举例来说,所述饱和度等级可基于由存储器控制器106(未明确展示)维持的溢出队列的占用程度,其中所述溢出队列可维持由于用于存取存储器112的带宽不可用而无法被立即调度(例如,而非被拒绝及发送回到请求源)以存取存储器112的请求。无关于确定饱和度等级的特定方式,在每一时段结束时的计数(例如,拒绝的计数或溢出队列的占用度)可与经预先指定阈值比较。如果所述计数大于或等于所述阈值,那么饱和度监测器108可产生饱和信号(在图1中展示为“SAT”)以指示饱和。如果所述计数小于所述阈值,那么所述SAT信号可通过饱和度监测器108撤销确证或设定到不饱和状态,以指示不存在饱和。在一些方面中,所述饱和信号也可按展示不同等级的饱和度(例如,低、中等或高饱和度)的方式产生,例如,通过使用2位饱和信号SAT[1:0](未具体展示),其中产生适当饱和度值可基于所述计数与指示所述不同饱和度等级的两个或大于两个阈值的比较。
继续参看图1,私用高速缓存存储器104a到104b经展示为包含相关联的请求速率控管器110a到110b。请求速率控管器110a到110b经配置以基于由饱和度监测器108产生的饱和信号SAT连同其它因素而执行带宽分配。尽管饱和信号SAT经展示为经由图1中用参考数字116指明的总线直接提供到请求速率控管器110a到110b,但将理解,此不可暗示用于此目的的专用总线,其中在一些情况下,总线116可与用参考数字118指明的接口组合或作为所述接口的一部分,所述接口用于私用高速缓存存储器104a到104b与存储器控制器106之间的通信(例如,用于在存储器控制器106处接收传入存储器请求及将所请求数据供应到私用高速缓存存储器104a到104b)。请求速率控管器110a到110b可经配置以确定相应私用高速缓存存储器104a到104b的目标请求速率。所述目标请求速率可为私用高速缓存存储器104a到104b可产生存储器请求的速率,其中所述目标请求速率可基于相关联的比例份额参数(例如,比例份额权重βi或相关联的比例份额步幅αi,其是基于特定实施方案),所述参数是基于其相关联的QoS类别(例如,基于对应处理器102a到102b的QoS类别)而指派给私用高速缓存存储器104a到104b。
就比例份额权重βi而言,每一请求代理装置的比例带宽份额是通过指派给所述请求代理装置的带宽份额权重除以指派给多个请求代理装置中的每一者的带宽份额权重的总和而提供。举例来说,每一QoS类别(或对应地,属于相应QoS类别的代理装置,例如,对于私用高速缓存存储器104a到104b,基于其相应QoS类别)的比例份额可依据QoS类别或对应代理装置的经指派带宽份额权重除以所有相应经指派带宽份额权重的总和而表达,其可如以下等式(1)中所展示而表示,
其中分母表示所有QoS类别的带宽份额权重的总和。
应注意,可通过使用比例份额步幅αi替代比例份额权重βi而从等式1简化比例份额的计算。此可通过以下认识而理解:由于αi为βi的倒数,因此αi可表达为整数,其意谓在执行阶段期间或在运作中可避免除法(或乘以分率)来确定服务请求的成本。因此,就比例份额步幅αi而言,每一请求代理装置的比例带宽份额是通过指派给所述请求代理装置的带宽份额步幅乘以指派给所述多个请求代理装置中的每一者的带宽份额步幅的总和而提供。
无关于用以计算相应比例份额的特定机制,请求速率控管器110a到110b可经配置以根据目标请求速率而提升或压制私用高速缓存存储器104a到104b产生存储器请求的速率。在实例中,请求速率控管器110a到110b可经配置以通过包括彼此步调一致的多个阶段(例如,四个阶段)的过程调整目标请求速率,其中所述目标请求速率可基于阶段而变化。此些阶段之间的转变及对相应目标请求速率的对应调整可按时间间隔(例如,时段边界)发生。步调一致地执行可允许请求速率控管器110a到110b快速地达到平衡,使得所有私用高速缓存存储器104a到104b的请求速率与对应带宽份额成比例,此可引起高效的存储器带宽利用。在基于饱和信号SAT及请求速率控管器110a到110b的速率调整的示范性实施方案中,不需要额外同步器。
现参看图2A到2B,说明关于上文所论述的多个阶段之间的转变的过程200及250的流程图。过程200及250为类似的,且图2A的过程200涉及用于使用比例份额权重βi计算目标速率(例如,以请求/循环为单位)的算法,而图2B的过程250表示用于使用比例份额步幅αi计算目标速率(为整数单位)的倒数(归因于αi与βi之间的反比关系)的算法。下文关于图3A到10A而展示及描述可用以实施图2A中所展示的过程200的块202到210的示范性算法。由于目标速率的倒数可用整数单位表示,因此图3B到10B中的对应算法展示可用以实施图2B中所展示的过程250的块252到260的实例算法。由于使用图3B到10B中的目标速率的倒数的表示中所使用的整数单位,因此图3B到10B的算法的实施方案相比于其在图3A到10A中的对应物算法的实施方案可较简单。
如图2A中所展示,过程200可在块202处通过初始化处理系统中的所有请求速率控管器110a到110b(例如,图1的请求速率控管器110a到110b)而开始。块202中的初始化可涉及设定所有请求速率控管器110a到110b以在比例份额权重βi的情况下产生最大目标请求速率,所述最大目标请求速率被称为“RateMAX”(且对应地,索引“N”可经初始化为“1”),或在比例份额步幅αi的情况下产生最小周期,所述最小周期被称为periodMIN,其也可经初始化为1。图2B的过程250中的初始化块252在初始化条件方面可与图2C所展示类似,差异在于,关于步幅,目标是如图2C所展示的StrideMin,而非RateMax。
在图2A中,在块202处的初始化后,过程200可继续进行到块204,所述块包括被称为“快速压制”阶段的第一阶段。在块204中,设定控管器110的新目标速率,其中也建立快速压制阶段中的目标速率的上限及下限。在实例中,请求速率控管器110a到110b中的每一者的目标速率可经复位为最大目标速率RateMAX,且接着所述目标速率可随着若干次迭代而减小直到来自饱和度监测器108的饱和信号SAT指示存储器控制器106中不存在饱和。为了在块204中的快速压制阶段期间维持包括相应请求速率控管器110a到110b的私用高速缓存存储器104a到104b间的带宽分配的比例份额,请求速率控管器110a到110b中的每一者可基于其对应经指派βi值而按比例调整其相应目标速率,且所述目标速率可按随不同迭代而以指数方式减小的步长来减小。举例来说,减小的量值可根据以下等式(2)得出:
(等效地,就步幅而言,等式2可表示为等式(2'):
Stride=N*αi--等式(2'))
在一个方面中,请求速率控管器110a到110b中的每一者所获得的其新目标速率的上限及下限可为目标速率的迭代减小中的最后两个目标速率。作为说明,假定块204中的快速压制阶段的第n次迭代导致存储器控制器106不饱和,那么在先前第(n-1)次迭代处的目标速率可经设定为上限,且在第n次迭代处的目标速率可经设定为下限。块204的快速压制阶段中的实例操作描述于图3A到4A中,且块254的对应物快速压制阶段中的实例操作描述于图3B到4B中。
一旦在块204中建立上限及下限,过程200即可继续进行到块206,所述块包括被称为“快速恢复”阶段的第二阶段。在所述快速恢复阶段中,由请求速率控管器110a到110b中的每一者产生的目标速率(例如)使用二进制搜索过程而被快速改进为属于上限及下限内的目标速率,且具有来自饱和度监测器108的饱和信号SAT不指示饱和时的最高值。所述二进制搜索过程可在每次迭代时基于前一次迭代是否导致(或去除)存储器控制器106的饱和而在一个方向上(即,向上或向下)改变目标速率。就此而言,如果前一次迭代导致存储器控制器106的饱和,那么可应用以下的一对等式(3),且如果前一次迭代导致存储器控制器106的不饱和状态,那么可应用以下等式(4):
PrevRate=Rate;且Rate=Rate-(PrevRate-Rate)--等式(3)
Rate=0.5*(Rate+PrevRate)--等式(4)
(等效地,当如图6B的算法650中所展示使用步幅而非速率时,提供对应物等式(3')及(4'))。
在一个方面中,在块206处的操作可为封闭端,即,在执行二进制搜索中的特定数目“S”次(例如,5次)迭代之后,请求速率控管器110a到110b可退出快速恢复阶段。下文参看图5A到6A更详细地描述在206处快速恢复阶段中的操作的实例,且在对应物图5B到6B中展示图2B的块256处的实例操作。
参看图2A,在于206处的快速恢复操作应用改进新目标速率的第S次迭代后,请求速率控管器110a到110b中的每一者将具有如下目标速率:对于当前系统条件,在私用高速缓存存储器104a到104b间恰当地分摊系统带宽(例如,存储器控制器106的带宽,所述存储器控制器控制图1中的接口114及存储器112的带宽)。然而,系统条件可改变。举例来说,例如其它处理器(图1中不可见)的私用高速缓存存储器的额外代理装置可经由存储器控制器106竞争对共享存储器112的存取。替代地或另外,处理器102a到102b中的一者或两者或其相应私用高速缓存存储器104a到104b可被指派给具有新QoS值的新QoS类别。
因此,在一个方面中,在于206处的快速恢复操作改进控管器110a到110b的目标速率后,过程200可继续进行到块208,所述块包括也可被称为“主动增加”阶段的第三阶段。在所述主动增加阶段中,请求速率控管器110a到110b可试图确定是否更多存储器带宽已变得可用。就此而言,所述主动增加阶段可包含在请求速率控管器110a到110b中的每一者处目标速率的逐步增加,其可经重复直到来自饱和度监测器108的饱和信号SAT指示存储器控制器106的饱和。逐步增加的每次迭代可扩增步阶的量值。举例来说,步阶的量值可按指数方式增加,如由以下等式(5)所定义,其中N是迭代次数,以N=1开始
Rate=Rate+(βi*N)--等式(5)
(或等效地,就步幅而言,可使用等式(5'):
Stride=Stride-αi*N-等式(5'))
参看图7A到9A更详细地描述在208处主动增加阶段中的操作的实例。在图2B中,块258及259经展示为图2A的块208的对应物。更详细来说,所述主动增加阶段经分离成两个阶段:块258的线性增加的主动增加阶段,及块259的以指数方式增加的超主动增加阶段。对应地,图7B到9B为图2B的两个块258及259提供更多细节。
参看图2A,在一些情况下,请求速率控管器110a到110b可经配置使得响应于在块208处的主动增加操作产生指示饱和的饱和信号SAT的第一种情况,过程200可立即继续进行到204处的快速压制操作。
然而,在一个方面中,为提供增加的稳定性,过程200可首先继续进行到包括被称为“复位确认”阶段的第四阶段的块210,以确认引起从块208中的主动增加阶段退出的饱和信号SAT可能是归因于条件的实质性改变,而非突发或其它暂态事件。换句话说,块210中的复位确认阶段中的操作可提供对饱和信号SAT为非暂态的检核,且如果经确认,即,如果在块210中饱和信号SAT为非暂态的检核经确定为真,那么过程200遵循“是”路径进行到被称为“复位”阶段的块212,且接着返回块204中的快速压制阶段中的操作。在一个方面中,块208中的主动增加阶段操作也可经配置以在退出到块210中的复位确认阶段操作时将目标速率步降一个增量。一个实例步降可根据以下等式(6)得出:
Rate=PrevRate-βi--等式(6)
(等效地,就步幅而言,等式(6')适用:
Stride=PrevStride+αi-等式(6'))
在一个方面中,如果在块210处复位确认阶段中的操作指示引起从块208中的主动增加阶段操作退出的饱和信号SAT是归因于突发或其它暂态事件,那么过程200可返回到块208中的主动增加操作。在块260处的对应复位确认阶段展示于图2B及图10B中。
图3A到B分别展示用于可实施图2A的块204及图2B的块254中的快速压制阶段的实例操作的伪码算法300及350。图4A到B分别展示可实施包含于伪码算法300及350中的标示为“ExponentialDecrease”的指数减小过程的伪码算法400及450。伪码算法300在下文将被称为“快速压制阶段算法300”,且伪码算法400被称为“指数减小算法400”,且将在下文予以更详细说明,同时记住类似解释适用于对应物伪码算法350及450。
参看图3A及4A,快速压制阶段算法300中的实例操作可在302处开始,其中条件分支操作是基于来自图1的饱和度监测器108的SAT。如果SAT指示存储器控制器106饱和,那么伪码算法300可跳到指数减小算法400以减小目标速率。参看图4A,指数减小算法400可在402处将PrevRate设定为Rate,接着在404处可根据等式(2)减小目标速率,继续进行到406且将N乘以2,且接着继续进行到408且返回到快速压制阶段算法300。快速压制阶段算法300可重复上述回圈,在每次迭代时将N加倍,直到在302处的条件分支接收到在指示共享存储器控制器106不再饱和的电平下的SAT。快速压制阶段算法300接着可继续进行到304,其中其将N设定为0,接着继续进行到306,其中其转变到图2A的块206中的快速恢复阶段。
图5A到B展示用于可实施图2A的块206及图2B的块256中的快速恢复阶段的实例操作的伪码算法500及550。图6A到B分别展示可实施包含于伪码算法500及550中的标示为“BinarySearchStep”的二进制搜索过程的伪码算法600及650。伪码算法500在下文将被称为“快速恢复阶段算法500”,且伪码算法600将被称为“二进制搜索步进算法600”,且将在下文予以更详细说明,同时记住类似解释适用于对应物伪码算法550及650。
参看图5A及6A,快速恢复阶段算法500中的实例操作可在502处通过跳到二进制搜索步进算法600而开始,其将N递增1。在从二进制搜索步进算法600返回后,在504处的操作可测试N是否等于S,其中“S”是快速恢复阶段算法500经配置以重复的迭代的特定次数。如上文所描述,一个实例“S”可为5。关于二进制搜索步进算法600,实例操作可在602处的条件分支处开始,且接着到604处的步降操作或606处的步增操作,此取决于SAT是否指示存储器控制器106为饱和。如果SAT指示存储器控制器106饱和,那么二进制搜索步进算法600可继续进行到604处的步降操作604,其根据等式(3)减小目标速率。二进制搜索步进算法600接着可继续进行到608以将N递增1,且接着继续进行到610以返回到快速恢复阶段算法600。
如果在602处,SAT指示存储器控制器106不饱和,那么二进制搜索步进算法600可继续进行到606处的步增操作606,其根据等式(4)增加目标速率。二进制搜索步进算法600接着可继续进行到608,其中其可将N递增1,接着在610处可返回到快速恢复阶段算法600。在于504处检测到N已达到S后,快速恢复阶段算法500可继续进行到506,以将N初始化为整数1,且将PrevRate设定为Rate的最后一次迭代值,且接着跳到图2A的块208中的主动增加阶段。
图7A到B分别展示用于可实施图2A的块208及图2B的块258及259中的主动增加阶段的实例操作的伪码算法700及750。图8A展示可实施包含于伪码算法700中的标示为“ExponentialIncrease”的目标速率增加过程的伪码算法800。图8B展示可实施包含于伪码算法750中与线性增加及指数增加相关的目标步幅设定过程的伪码算法850。图9A到B分别展示可实施也包含于伪码算法700及750中的标示为“RateRollBack”的速率回复过程的伪码算法900及950。伪码算法700在下文将被称为“主动增加阶段算法700”,伪码算法800将被称为“指数增加算法800”,且伪码算法900将被称为“速率回复过程算法900”,且将在下文予以更详细说明,同时记住类似解释适用于对应物伪码算法750、850及950。
参看图7A、8A及9A,主动增加阶段算法700中的实例操作可在702处,在702处的条件退出分支处开始,所述条件分支在SAT指示存储器控制器106饱和后引起退出到图2A的块210中的复位确认阶段。假定在702的饱和尚未发生的第一种情况下,主动增加阶段算法700可从702继续进行到指数增加算法800。
参看图8A,指数增加算法800中的操作可在802处将PrevRate设定为Rate,接着继续进行到804以根据等式(5)增加目标速率,接着在806处将N的值加倍。指数增加算法800接着可在808处返回到主动增加阶段算法700中的702。从702到指数增加算法800及返回到702的回圈可继续直到SAT指示存储器控制件106饱和。作为响应,主动增加阶段算法700接着可继续进行到704,其中其可使用速率回复过程算法900来减小目标速率且继续进行到图2的块210中的确认复位阶段。参看图9A,速率回复过程算法900可(例如)根据等式(6)减小目标速率。
图10A到B分别展示用于可实施图2A的块210及图2B的块260中的确认复位阶段的实例操作的伪码算法1000及1050。伪码算法1000在下文将被称为“确认复位阶段算法1000”且在下文予以更详细解释,同时记住伪码算法1050是类似的。参看图10A,确认复位阶段算法1000中的操作可在1002处开始,其中N可经复位为1。连同图2A、3A、4A及7A一起参看图10A,将理解,整数“1”是用于进入确认复位阶段算法1000可退出的两个过程点中的任一者的恰当开始值N。
参看图10A,在于1002处将N设定为整数1之后,确认复位阶段算法1000可继续进行到1004,以基于来自饱和度监测器108的饱和信号SAT而确定确认复位阶段算法1000退出到块202中的快速压制阶段(例如,根据图3A、4A所实施),抑或退出到块208中的主动增加阶段(例如,根据图7A、8A及9A所实施)。更特定来说,如果在1004处,SAT指示未饱和,那么引起在702处终止且从主动增加阶段算法700退出的SAT的可能原因可为暂态条件,无法确保图2A的过程200的重复。因此,确认复位阶段算法1000可继续进行到1006且返回到主动增加阶段算法700。将理解,早先在702处将N复位为整数1会将主动增加阶段算法700返回到其增加目标速率的开始状态。
参看图10A,如果在1004处的SAT指示存储器控制器106的饱和,那么导致在702处从主动增加阶段算法700退出的饱和信号SAT的可能原因是存储器负载(例如,存取存储器控制器106的另一私用高速缓存存储器)的实质改变或QoS值的重新指派。因此,确认复位阶段算法1000可继续进行到1008,其中操作可将目标速率复位为RateMAX(或在伪码算法1050的情况下,将步幅复位到StrideMin)且接着继续进行到指数减小算法400且接着返回到快速压制阶段算法300。
图11展示根据本发明的方面的成比例带宽分配中的多阶段压制过程中的事件的时序模拟。水平轴表示时段中所标记的时间。垂直轴表示目标速率。将理解,β表示不同请求速率控管器110处的βi。将参看图1及2A到B描述事件。水平或时间轴上所指示的饱和信号“SAT”表示来自饱和度监测器108的指示饱和度的值SAT。在时段边界处不存在SAT表示来自饱和度监测器的SAT指示不饱和。
参看图11,在时段边界1102之前,所有请求速率控管器110的目标速率经设定到RateMAX(或对应地,设定到StrideMin)且N经初始化为1。在时段边界1102处,所有请求速率控管器110转变到块202中的快速压制阶段。请求速率控管器110a到110b保持在块202中的快速压制阶段中所持续之间隔被标示为1104,且将被称为“快速压制阶段1104”。将参看图3A及4A描述快速压制阶段1104内的实例操作。饱和信号SAT在时段边界1102处不存在,但如图4A中的项目406所展示,N(其经初始化为“1”)经加倍使得N=2。在于下一时段边界(未经单独标示)处接收SAT 1106后,请求速率控管器110a到110b减小其相应目标速率,其中N=2,如在图4A处的伪码操作404所展示。因此,目标速率经减小到RateMAX/2*β。N也经再次加倍,使得N=4。在下一时段边界(未经单独标示)处接收SAT 1108,且作为响应,请求速率控管器110a到110b根据等式(2)减小其相应目标速率,其中N=4。因此,目标速率经减小到RateMAX/4*β。
在时段边界1110处,SAT不存在。如图3A中的304及306所展示的结果为所有请求速率控管器110将N重新初始化为“0”,且转变到块204处的快速恢复阶段操作。请求速率控管器110保持在快速恢复阶段中所持续之间隔在图11上被标示为1112,且将被称为“快速恢复阶段1112”。将参看图5A及6A描述快速恢复阶段1112内的实例操作。由于在转变到快速恢复阶段1112时SAT不存在,因此第一次迭代可将目标速率上加一个步阶,如在图6A处的伪码操作602及606所展示。伪码操作606将目标速率增加到与RateMAX/2*β之间的中间值。伪码操作608将N递增到“1”。在于下一时段边界(未经单独标示)处接收到SAT 1114后,请求速率控管器110a到110b根据图6A的伪码操作604减小其相应目标速率。
参看图11,在时段边界1116处,假定在图5A的项目504处的迭代计数器达到“S”。因此,如图5A处的伪码操作506所展示,N经重新初始化为“1”,PrevRate经设定等于Rate且请求速率控管器110a到110b转变到块208处的主动增加阶段操作。在时段边界1116之后请求速率控管器110a到110b保持在主动增加阶段操作中所持续的间隔被称为“主动增加阶段1118”。将参看图7A、8A及9A描述主动增加阶段1118内的实例操作。在时段边界1116处,主动增加阶段1118中的第一次迭代通过图8A的伪码操作804或如由等式(5)所定义增加目标速率。在时段边界1120处,第二次迭代再次通过图8A的804处的伪码操作增加目标速率。在时段边界1122处,第三次迭代再次通过图8A的伪码操作804增加目标速率。
在时段边界1124处,SAT出现且作为响应,请求速率控管器110转变到图2A的块210中的复位确认操作。所述转变可包含目标速率的步降,如在图7A的伪码操作704处所展示。在时段边界1124之后请求速率控管器110保持在图2A的210处的复位确定阶段操作中所持续的间隔将被称为“复位确认阶段1126”。在时段边界1128处,SAT不存在,此意谓引起转变到复位确认阶段1126的SAT可能是暂态或突发事件。因此,作为响应,请求速率控管器110转变回到图2A的208处的主动增加操作。
时段边界1128之后请求速率控管器110a到110b再次保持在块208处的主动增加阶段操作中所持续的间隔被称为“主动增加阶段1130”。将再次参看图7A、8A及9A描述主动增加阶段1130内的实例操作。当请求速率控管器110转变到主动增加阶段1128时,主动增加阶段1130中的第一次迭代通过图8A的伪码操作804增加目标速率,如由等式(5)所定义。在时段边界1132处,由于SAT不存在,因此第二次迭代再次通过图8A的伪码操作804增加目标速率。
在时段边界1134处,SAT出现且作为响应,请求速率控管器110再次转变到图2A的复位确认操作210。所述转变可包含目标速率的步降,如在图7A的伪码操作704处所展示。在时段边界1134之后请求速率控管器110a到110b保持在块210处的复位确认阶段操作中所持续的间隔将被称为“复位确认阶段1136”。在时段边界1138处,接收SAT,此意谓引起转变到复位确认阶段1126的SAT可能为系统条件的改变。因此,请求速率控管器110a到110b转变到在块202处的快速压制操作。
参看图1,请求速率控管器110a到110b可通过实时地散布私用高速缓存存储器104a到104b的未命中(及存储器控制器106的对应存取)而执行目标速率。为实现速率R,请求速率控管器110a到110b可经配置以限制私用高速缓存存储器104a到104b,使得每一私用高速缓存存储器每W/Rate个循环平均发出一个未命中。请求速率控管器110a到110b可经配置以跟踪允许发出未命中所在的下一循环Cnext。所述配置可包含在当前时间Cnow小于Cnext的情况下防止私用高速缓存存储器104a到104b将未命中发出到存储器控制器106。请求速率控管器110a到110b可进一步使得一旦发出未命中,Cnext即可经更新到Cnext+(W/Rate)。将理解,在给定时段内,W/Rate为常数。因此,可使用单一加法器来实施速率执行逻辑。
将理解,在一个时段内,速率受控制的高速缓存存储器(例如,私用高速缓存存储器102)可针对不活动的短暂周期给予“信用”,这是因为Cnext是严格可加的。因此,如果私用高速缓存存储器104a到104b经历不活动周期使得Cnow>>Cnext,那么可允许那个私用高速缓存存储器104a到104b发出请求突发而在Cnext赶上时不进行任何压制。请求速率控管器110a到110b可经配置使得,在每一时段结束时,Cnext可经设定等于Cnow。在另一实施方案中,请求速率控管器110a到110b可经配置使得在每一时段边界结束时,调整C_Next可通过N*(Stride与PrevStride的差)而调整,此使得其表达为如同先前N(例如,16)个请求以新步幅/速率而非旧步幅/速率发出。此些特征可提供来自先前时段的任何建置信用不溢出到新时段中的确定性。
图12展示可形成私用高速缓存存储器104a到104b中的每一者(在此视图中用参考标示“104”指明)及其对应请求速率控管器110a到110b(在此视图中用参考标示“110”指明)的逻辑的一个分配的示意性框图1200。如上文所描述,请求速率控管器110可经配置以提供在给定所指派的共享参数βi的情况下确定私用高速缓存存储器104可将请求发出到存储器控制器106的目标速率的功能,且提供根据所述目标速率对私用高速缓存存储器104的压制。参看图12,提供请求速率控管器110的实例逻辑可包含阶段状态寄存器1202或等效及算法逻辑1204。在一个方面中,阶段状态寄存器1202可经配置以指示请求速率控管器110的在参看图2到10中所描述的四个阶段当中的当前阶段。阶段状态寄存器1202及算法逻辑1204可经配置以提供基于QoS及指派给请求速率控管器110的βi而确定目标速率的功能。
在一些方面中,可提供调速器1206以允许经执行的目标速率的减弱。所述减弱允许每一请求代理装置或类别在所述请求代理装置不发送请求时的空闲周期期间建置某种形式的信用。所述请求代理装置稍后(例如,在未来时间窗中)可使用累积的减弱以产生将仍然满足目标速率的业务突发或存取请求。以此方式,可允许请求代理装置发出多个突发,此可造成性能改进。调速器1206可通过确定与目标请求速率成反比的时间窗或时间周期内的带宽使用率而执行所述目标请求速率。来自先前时间周期的未使用累积带宽可在当前时间周期中使用以允许一或多个请求的突发,即使所述突发使当前时间周期中的请求速率超过目标请求速率也如此。
在一些方面中,调速器1206可经配置以根据那个目标请求速率而提供对私用高速缓存存储器102的压制,如上文所论述。在一个方面中,算法逻辑1204可经配置以从饱和度监测器108接收SAT,且执行参看图2到10所描述的四个阶段过程中的每一者以及产生目标速率作为输出。在一个方面中,算法逻辑1204可经配置以接收复位信号以将所有请求速率控管器110的阶段对准。
参看图12,调速器1206可包含加法器1208及未命中启用器逻辑1210。加法器1208可经配置以从算法逻辑1204接收目标速率(在图12中标示为“Rate”)且执行加法使得一旦发出未命中,Cnext即可经更新到Cnext+(W/Rate),(或就步幅而言,经更新到Cnext+Stride)。未命中启用器逻辑1210可经配置以在当前时间Cnow小于Cnext的情况下防止私用高速缓存存储器104将未命中发出到存储器控制器106。
图12的逻辑可包含高速缓存存储器控制器1212及高速缓存存储器数据存储器1214。高速缓存存储器数据存储器1214可为根据用于高速缓存存储器数据存储器的已知的常规技术,因此省略进一步的详细描述。高速缓存存储器控制器1212(除由调速器1206压制外)可为根据用于控制高速缓存存储器的已知的常规技术,且因此省略进一步的详细描述。
图13展示根据本发明的方面的一个示范性分配中的成比例带宽分配系统1300的一个配置,包含共享的二阶高速缓存存储器1302(例如,2阶或“L2”高速缓存存储器)。
参看图13,速率受控管组件(即,私用高速缓存存储器104a到104b)将请求发送到共享高速缓存存储器1302。因此,在一个方面中,可包含提供以下情况的特征:由请求速率控管器110a到110b确定的目标速率翻译成在存储器控制器106处的相同带宽份额。根据所述方面的特征可调整目标速率以解决来自私用高速缓存存储器104a到104b的归因于共享高速缓存存储器1302中的命中而未到达存储器控制器106的存取。因此,用于私用高速缓存存储器104a到104b的目标速率可通过在共享高速缓存存储器1302处滤出来自私用高速缓存存储器104的未命中而获得,使得存储器控制器106从共享高速缓存存储器1302接收经滤出未命中,且在私用高速缓存存储器104a到104b处的目标速率可基于经滤出未命中而经相应地调整。
举例来说,在一个方面中,可提供按比例调整特征,其经配置以针对由处理器102a到102b产生的请求而以介于私用高速缓存存储器104a到104b的未命中速率与共享高速缓存存储器1302的未命中速率之间的比率对目标速率进行按比例调整。所述比率可表达如下:
令Mp,i为第i(例如,对于私用高速缓存存储器104a,i=1,且对于私用高速缓存存储器104b,i=2)个私用高速缓存存储器104a到104b中的请求的未命中速率。
令Ms,j为共享高速缓存存储器1302中来自第i个处理器102a到102b请求的请求的未命中速率。由请求速率控管器110a到110b执行的最终目标速率可表示为:
在一个方面中,速率可表达为在固定时间窗内发出的请求的数目,所述时间窗可被任意称为“W”。在一个方面中,W可经设定为当存储器控制器106的带宽饱和时存储器请求的潜时。因此,饱和RateMAX可等于来自私用高速缓存存储器104a到104b的同时未处理的请求的最大数目。如相关技术中已知的数目可等于未命中状态保持寄存器(MSHR)(在图1中并非单独可见)的数目。
参看图13,在使用步幅而非等式(7)中的基于速率的计算的替代实施方案中,对于离开私用高速缓存存储器104a到104b的所有请求,Cnext可经调整为Cnext=Cnext+Stride。如果随后确定所述请求由共享高速缓存存储器1304服务,那么调整Cnext=Cnext+Stride的任何相关联处罚可反转。类似地,对于从共享高速缓存存储器1304到存储器112的任何写回(例如,发生于一列在共享高速缓存存储器1304中经替换时),当从存储器112接收到响应即确定所述请求引起写回发生时,Cnext可经调整为Cnext=Cnext+Stride。以此方式进行Cnext调整的效应等效于长时间运行内的等式(7)的按比例调整且被称为共享高速缓存存储器滤出。此外,通过使用步幅而非速率,可避免使用上文所论述的W项。
因此,将了解,示范性方面包含用于执行本文中所公开的过程、功能及/或算法的各种方法。举例来说,图14说明用于带宽的分散式分配的方法1400。
块1402包括通过多个请求代理装置(例如,私用高速缓存存储器104a到104b)请求用于存取共享存储器(例如,存储器112)的带宽。
块1404包括在用于控制对共享存储器的存取的存储器控制器(例如,存储器控制器106)中确定用于存取共享存储器的带宽的饱和度等级(饱和信号SAT)(例如,基于由于用于存取共享存储器的带宽不可用而未经调度以存取共享存储器的未处理请求的数目的计数)。
块1406包括基于所述饱和度等级及比例带宽份额而确定每一请求代理装置处(例如,在请求速率控管器110a到110b处)的目标请求速率,所述比例带宽份额是基于所述请求代理装置的服务质量(QoS)类别而分配给所述请求代理装置。举例来说,所述饱和度等级可指示未饱和状态、低饱和度、中等饱和度或高饱和度中的一者。在一些方面中,每一请求代理装置的比例带宽份额是通过指派给请求代理装置的带宽份额权重除以指派给多个请求代理装置中的每一者的带宽份额权重的总和而提供,而在一些方面中,每一请求代理装置的比例带宽份额是通过指派给请求代理装置的带宽份额步幅乘以指派给多个请求代理装置中的每一者的带宽份额步幅的总和而提供。此外,方法400也可包括压制来自请求代理装置的存取共享存储器的请求的发出,以在请求代理装置处执行目标请求速率,且饱和度等级可在时段边界处确定,如上文所论述。
图15说明可有利地使用本发明的一或多个方面的计算装置1500。现参看图15,计算装置1500包含处理器,例如耦合到私用高速缓存存储器104及存储器控制器106的处理器102a到102b(在此视图中展示为处理器102),所述私用高速缓存存储器104包括请求速率控管器110,所述存储器控制器106包括饱和度监测器108,如先前所论述。存储器控制器106可耦合到存储器112,也经展示。
图15还展示显示控制器1526,所述显示控制器耦合到处理器102及显示器1528。图15还以虚线展示一些可选的块,例如耦合到处理器1502的编码器/解码器(CODEC)1534(例如,音频及/或语音CODEC),其中扬声器1536及麦克风1538耦合到CODEC1534;及耦合到处理器102且还耦合到无线天线1542的无线控制器1540。在特定方面中,处理器102、显示控制器1526、存储器112及CODEC 1034(在存在情况下)以及无线控制器1540可包含于系统级封装或系统单芯片装置1522中。
在特定方面中,输入装置1530及电力供应器1544可耦合到系统单芯片装置1522。此外,在特定方面中,如图15中所说明,显示器1528、输入装置1530、扬声器1536、麦克风1538、无线天线1542及电力供应器1544在系统单芯片装置1522外部。然而,显示器1528、输入装置1530、扬声器1536、麦克风1538、无线天线1542及电力供应器1544中的每一者可耦合到系统单芯片装置1522的组件,例如接口或控制器。
将理解,根据示范性方面且如图14中所展示的成比例带宽分配可由计算装置1500执行。还应注意,尽管图15描绘计算装置,但处理器102及存储器112也可集成到机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理(PDA)、固定位置数据单元、计算机、膝上型计算机、平板计算机、服务器、移动电话或其它类似装置中。
所属领域的技术人员将了解,可使用多种不同技艺与技术中的任一者来表示信息及信号。举例来说,可由电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合表示遍及以上描述可能参考的数据、指令、命令、信息、信号、位、符号及码片。
此外,所属领域的技术人员将了解,结合本文中所公开的方面而描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的此可互换性,各种说明性组件、块、模块、电路及步骤已在上文大体按其功能性加以描述。将此功能性实施为硬件抑或软件取决于强加于整个系统上的特定应用及设计限制。所属领域的技术人员可针对每一特定应用以变化方式实施所描述功能性,但此些实施决策不应被解译为导致脱离本发明的范围。
结合本文中所公开的方面而描述的方法、序列及/或算法可直接在硬件中、在由处理器执行的软件模块中或在两者的组合中体现。软件模块可驻留于RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸式碟片、CD-ROM,或所属领域中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息且将信息写入到存储媒体。在替代例中,存储媒体可集成到处理器。
因此,本发明的一个方面可包含计算机可读媒体,所述计算机可读媒体体现一种用于处理系统中的共享存储器的带宽分配的方法。因此,本发明不限于所说明的实例,且用于执行本文中所描述的功能性的任何装置包含于本发明的方面中。
虽然前述公开内容展示本发明的说明性方面,但应注意,在不脱离如由所附权利要求书所界定的本发明的范围的情况下,可在本文中作出各种改变及修改。无需按任何特定次序执行根据本文中所描述的本发明的方面的方法请求项的功能、步骤及/或动作。此外,尽管可以单数形式描述或主张本发明的元件,但除非明确地陈述对单数形式的限制,否则预期到复数形式。
Claims (30)
1.一种用于带宽的分散式分配的方法,所述方法包括:
通过多个请求代理装置请求用于存取共享存储器的带宽;
在用于控制对所述共享存储器的存取的存储器控制器中确定用于存取所述共享存储器的所述带宽的饱和度等级;及
基于所述饱和度等级及比例带宽份额而确定每一请求代理装置处的目标请求速率,所述比例带宽份额是基于所述请求代理装置的服务质量QoS类别而分配给所述请求代理装置。
2.根据权利要求1所述的方法,其包括在实施于所述存储器控制器中的饱和度监测器处确定所述饱和度等级,其中所述饱和度等级是基于由于用于存取所述共享存储器的所述带宽不可用而未经调度以存取所述共享存储器的未处理请求的数目的计数。
3.根据权利要求2所述的方法,其中所述饱和度等级指示未饱和状态、低饱和度、中等饱和度或高饱和度中的一者。
4.根据权利要求1所述的方法,其包括在实施于请求代理装置中的请求速率控管器处确定所述请求代理装置的所述目标请求速率。
5.根据权利要求4所述的方法,其进一步包括基于从所述饱和度等级确定的方向将所述目标请求速率增加或减小到新目标请求速率,
确定新目标请求速率的上限及下限,
将所述新目标请求速率改进至少一个步阶,所述至少一个步阶是在至少部分基于所述饱和度等级的方向上,及
如果所述饱和度等级超过阈值,那么在确认所述饱和度等级满足非暂态的检核后,初始化所述目标请求速率。
6.根据权利要求5所述的方法,其进一步包括:
将每一请求代理装置处的所述目标请求速率调整为所述新目标请求速率。
7.根据权利要求6所述的方法,其进一步包括:
如果所述饱和度等级不满足在所述新目标请求速率下非暂态的检核,那么增加或减小所述目标请求速率直到所述饱和度等级超过阈值。
8.根据权利要求7所述的方法,其进一步包括:
如果所述饱和度等级满足在所述新目标请求速率下非暂态的检核,那么在同步化锁定步骤中,初始化所述目标请求速率及将所述目标请求速率调整为每一请求代理装置处的所述新目标速率。
9.根据权利要求1所述的方法,其中每一请求代理装置的所述比例带宽份额是通过指派给所述请求代理装置的带宽份额权重除以指派给所述多个请求代理装置中的每一者的带宽份额权重的总和而提供。
10.根据权利要求1的方法,其中每一请求代理装置的所述比例带宽份额是通过指派给所述请求代理装置的带宽份额步幅乘以指派给所述多个请求代理装置中的每一者的带宽份额步幅的总和而提供。
11.根据权利要求1所述的方法,其中所述请求代理装置为私用高速缓存存储器,每一私用高速缓存存储器从对应处理单元接收存取所述共享存储器的请求。
12.根据权利要求11所述的方法,其进一步包括:
在共享高速缓存存储器处滤出来自所述私用高速缓存存储器的未命中;
在所述存储器控制器处从所述共享高速缓存存储器接收经滤出未命中;
基于所述经滤出未命中调整所述私用高速缓存存储器处的所述目标请求速率。
13.根据权利要求1所述的方法,其进一步包括压制来自请求代理装置的存取所述共享存储器的请求的发出,以在所述请求代理装置处执行所述目标请求速率。
14.根据权利要求1所述的方法,其包括确定时段边界处的所述饱和度等级。
15.根据权利要求1所述的方法,其进一步包括在调速器中确定在先前时间周期中分配给请求代理装置的未使用带宽,及允许所述请求代理装置在当前时间周期期间具有高于所述目标请求速率的请求速率,所述较高请求速率是基于所述未使用带宽。
16.根据权利要求15所述的方法,其中所述先前时间周期及所述当前时间周期与所述目标请求速率成反比。
17.一种设备,其包括:
共享存储器;
多个请求代理装置,其经配置以请求对所述共享存储器的存取;
存储器控制器,其经配置以控制对所述共享存储器的存取,其中所述存储器控制器包括饱和度监测器,所述饱和度监测器经配置以确定用于存取所述共享存储器的带宽的饱和度等级;及
请求速率控管器,其经配置以基于所述饱和度等级及比例带宽份额而确定每一请求代理装置处的目标请求速率,所述比例带宽份额是基于所述请求代理装置的服务质量QoS类别而分配给所述请求代理装置。
18.根据权利要求17所述的设备,其中所述饱和度监测器经配置以基于由于用于存取所述共享存储器的所述带宽不可用而未经调度以存取所述共享存储器的未处理请求的数目的计数而确定所述饱和度等级。
19.根据权利要求18所述的设备,其中所述饱和度等级指示未饱和状态、低饱和度、中等饱和度或高饱和度中的一者。
20.根据权利要求17所述的设备,其中每一请求代理装置的所述比例带宽份额是通过指派给所述请求代理装置的带宽份额权重除以指派给所述多个请求代理装置中的每一者的带宽份额权重的总和而提供。
21.根据权利要求17所述的设备,其中每一请求代理装置的所述比例带宽份额是通过指派给所述请求代理装置的带宽份额步幅乘以指派给所述多个请求代理装置中的每一者的带宽份额步幅的总和而提供。
22.根据权利要求17所述的设备,其中所述请求代理装置为私用高速缓存存储器,每一私用高速缓存存储器经配置以从对应处理单元接收存取所述共享存储器的请求。
23.根据权利要求17所述的设备,其中所述请求速率控管器经配置以压制来自所述对应请求代理装置的存取所述共享存储器的请求的发出,以在所述对应请求代理装置处执行所述目标速率。
24.根据权利要求17所述的设备,其中所述饱和度监测器经配置以确定在时段边界处的所述饱和度等级。
25.根据权利要求17所述的设备,其集成到装置中,所述装置是选自由以下各者组成的群:机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、通信装置、个人数字助理PDA、固定位置数据单元、服务器及计算机。
26.一种设备,其包括:
请求装置,其请求用于存取共享存储器的带宽;
控制装置,其用于控制对所述共享存储器的存取,所述控制装置包括用于确定用于存取所述共享存储器的所述带宽的饱和度等级的装置;及
确定装置,其用于基于所述饱和度等级及比例带宽份额而确定每一请求装置处的目标请求速率,所述比例带宽份额是基于所述请求装置的服务质量QoS类别而分配给所述请求代理装置的装置。
27.根据权利要求26所述的设备,其中所述饱和度等级是基于由于用于存取所述共享存储器的所述带宽不可用而未经调度以存取所述共享存储器的未处理请求的数目的计数。
28.根据权利要求26所述的设备,其中所述饱和度等级指示未饱和状态、低饱和度、中等饱和度或高饱和度中的一者。
29.一种非暂时性计算机可读存储媒体,其包括在由处理器执行时使所述处理器执行用于带宽的分散式分配的操作,所述非暂时性计算机可读存储媒体包括:
用于通过多个请求代理装置请求用于存取共享存储器的带宽的程序代码;
用于在用于控制对所述共享存储器的存取的存储器控制器处确定用于存取所述共享存储器的所述带宽的饱和度等级的程序代码;及
用于基于所述饱和度等级及比例带宽份额而确定每一请求代理装置处的目标请求速率的程序代码,所述比例带宽份额是基于所述请求代理装置的服务质量QoS类别而分配给所述请求代理装置。
30.根据权利要求29所述的非暂时性计算机可读存储媒体,其进一步包括用于压制来自所述对应请求代理装置的对所述共享存储器的请求的发出的程序代码。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562258826P | 2015-11-23 | 2015-11-23 | |
US62/258,826 | 2015-11-23 | ||
US15/192,988 US20170147249A1 (en) | 2015-11-23 | 2016-06-24 | Method to enforce proportional bandwidth allocations for quality of service |
US15/192,988 | 2016-06-24 | ||
PCT/US2016/060933 WO2017091347A1 (en) | 2015-11-23 | 2016-11-08 | A method to enforce proportional bandwidth allocations for quality of service |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108292242A true CN108292242A (zh) | 2018-07-17 |
Family
ID=58721604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680066075.7A Pending CN108292242A (zh) | 2015-11-23 | 2016-11-08 | 对服务质量执行成比例带宽分配的方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US20170147249A1 (zh) |
EP (1) | EP3380936A1 (zh) |
JP (1) | JP2019501447A (zh) |
KR (1) | KR20180088811A (zh) |
CN (1) | CN108292242A (zh) |
AU (1) | AU2016359128A1 (zh) |
BR (1) | BR112018010525A2 (zh) |
TW (1) | TW201729116A (zh) |
WO (1) | WO2017091347A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113826086A (zh) * | 2019-05-22 | 2021-12-21 | 高通股份有限公司 | 用于外围组件互连快速设备的基于带宽的功率管理 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180365070A1 (en) * | 2017-06-16 | 2018-12-20 | International Business Machines Corporation | Dynamic throttling of broadcasts in a tiered multi-node symmetric multiprocessing computer system |
US10397062B2 (en) | 2017-08-10 | 2019-08-27 | Red Hat, Inc. | Cross layer signaling for network resource scaling |
FR3082029B1 (fr) * | 2018-06-05 | 2020-07-10 | Thales | Controleur de partage de ressources d'une plate-forme informatique et procede associe de partage des ressources |
US11451669B1 (en) * | 2021-02-26 | 2022-09-20 | The Toronto-Dominion Bank | Method and system for providing access to a node of a shared resource |
US20220309005A1 (en) * | 2021-03-27 | 2022-09-29 | Intel Corporation | Memory bandwidth control in a core |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040230675A1 (en) * | 2003-05-15 | 2004-11-18 | International Business Machines Corporation | System and method for adaptive admission control and resource management for service time guarantees |
US20100106816A1 (en) * | 2008-10-28 | 2010-04-29 | Vmware, Inc. | Quality of service management |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6959374B2 (en) * | 2003-01-29 | 2005-10-25 | Sun Microsystems, Inc. | System including a memory controller configured to perform pre-fetch operations including dynamic pre-fetch control |
US8429282B1 (en) * | 2011-03-22 | 2013-04-23 | Amazon Technologies, Inc. | System and method for avoiding system overload by maintaining an ideal request rate |
US9513950B2 (en) * | 2012-07-25 | 2016-12-06 | Vmware, Inc. | Dynamic resource configuration based on context |
DE102015115582A1 (de) * | 2014-10-22 | 2016-04-28 | Imagination Technologies Limited | Vorrichtung und Verfahren zum Drosseln des Hardwarevorauslesens |
US20160284021A1 (en) * | 2015-03-27 | 2016-09-29 | Andrew Herdrich | Systems, Apparatuses, and Methods for Resource Bandwidth Enforcement |
-
2016
- 2016-06-24 US US15/192,988 patent/US20170147249A1/en not_active Abandoned
- 2016-11-08 CN CN201680066075.7A patent/CN108292242A/zh active Pending
- 2016-11-08 EP EP16798884.9A patent/EP3380936A1/en not_active Withdrawn
- 2016-11-08 BR BR112018010525A patent/BR112018010525A2/pt not_active Application Discontinuation
- 2016-11-08 KR KR1020187014288A patent/KR20180088811A/ko unknown
- 2016-11-08 AU AU2016359128A patent/AU2016359128A1/en not_active Abandoned
- 2016-11-08 JP JP2018525752A patent/JP2019501447A/ja active Pending
- 2016-11-08 WO PCT/US2016/060933 patent/WO2017091347A1/en active Application Filing
- 2016-11-22 TW TW105138178A patent/TW201729116A/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040230675A1 (en) * | 2003-05-15 | 2004-11-18 | International Business Machines Corporation | System and method for adaptive admission control and resource management for service time guarantees |
US20100106816A1 (en) * | 2008-10-28 | 2010-04-29 | Vmware, Inc. | Quality of service management |
Non-Patent Citations (2)
Title |
---|
KYLE J. NESBIT等: "Fair Queuing Memory Systems", 《IEEE》 * |
RAVI IYER等: "QoS policies and architecture for cache/memory in CMP platforms", 《ACM SIGMETRICS PERFORMANCE EVALUATION REVIEW》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113826086A (zh) * | 2019-05-22 | 2021-12-21 | 高通股份有限公司 | 用于外围组件互连快速设备的基于带宽的功率管理 |
Also Published As
Publication number | Publication date |
---|---|
BR112018010525A2 (pt) | 2018-11-13 |
AU2016359128A1 (en) | 2018-04-26 |
JP2019501447A (ja) | 2019-01-17 |
KR20180088811A (ko) | 2018-08-07 |
US20170147249A1 (en) | 2017-05-25 |
TW201729116A (zh) | 2017-08-16 |
WO2017091347A1 (en) | 2017-06-01 |
EP3380936A1 (en) | 2018-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108292242A (zh) | 对服务质量执行成比例带宽分配的方法 | |
US7856501B2 (en) | Network traffic prioritization | |
JP2020173778A (ja) | リソースの割り当て方法、装置、電子設備、コンピュータ可読媒体およびコンピュータプログラム | |
CN106878415B (zh) | 数据消费的负载均衡方法及装置 | |
CN109299144A (zh) | 一种数据处理方法、装置、系统及应用服务器 | |
CN110233866B (zh) | 一种负载均衡方法及负载均衡器 | |
CN108269109A (zh) | 一种广告排期投放量均衡方法及装置 | |
CN106572181A (zh) | 基于集群文件系统的对象存储接口负载均衡方法和系统 | |
CN111135586B (zh) | 游戏匹配方法、游戏匹配装置、存储介质与电子设备 | |
Dinaki et al. | Boosted metaheuristic algorithms for QoE-aware server selection in multiplayer cloud gaming | |
CN112260962B (zh) | 一种带宽控制方法及装置 | |
CN112866985B (zh) | 流量控制方法、资源下载方法、装置、设备和存储介质 | |
CN107027176B (zh) | 一种资源调度的方法及装置 | |
CN111124672A (zh) | 基于Redis集群的数据分配的方法及相关设备 | |
CN109688421A (zh) | 请求消息处理方法、装置及系统、服务器、存储介质 | |
CN109634741A (zh) | 资源分配方法及装置 | |
CN105493604B (zh) | 一种网络侧设备及调度方法 | |
CN111787268B (zh) | 音频信号的处理方法、装置、电子设备及存储介质 | |
CN113760496A (zh) | 一种容器调度方法和调度器 | |
CN113254211B (zh) | 缓存分配方法、装置、电子设备及存储介质 | |
CN110366035A (zh) | 帧率控制方法、装置、计算机设备和计算机可读存储介质 | |
CN109741055A (zh) | 黑名单调用方法、装置、服务器及存储介质 | |
CN113645324B (zh) | 一种基于队列的ip分配方法及系统 | |
JP2022528254A (ja) | ブロックチェーンネットワークを利用して取引コストを減らしながらも公正な抽選を行う方法及び装置 | |
CN117138354A (zh) | 多人游戏对局中跨服务器组队方法及系统 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180717 |