CN102334103A - 具有对于多个虚拟服务器间的共享资源分配的软件控制的微处理器 - Google Patents

具有对于多个虚拟服务器间的共享资源分配的软件控制的微处理器 Download PDF

Info

Publication number
CN102334103A
CN102334103A CN2010800093152A CN201080009315A CN102334103A CN 102334103 A CN102334103 A CN 102334103A CN 2010800093152 A CN2010800093152 A CN 2010800093152A CN 201080009315 A CN201080009315 A CN 201080009315A CN 102334103 A CN102334103 A CN 102334103A
Authority
CN
China
Prior art keywords
shared resource
request
priority
pending
response
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.)
Granted
Application number
CN2010800093152A
Other languages
English (en)
Other versions
CN102334103B (zh
Inventor
T·小赫勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN102334103A publication Critical patent/CN102334103A/zh
Application granted granted Critical
Publication of CN102334103B publication Critical patent/CN102334103B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

一种用于控制共享资源的分配的系统、方法及计算机程序产品。该系统包括下一请求优先权模块,其连接至共享资源且连接至由请求者标识符标识的多个请求者。该下一请求优先权模块包括:待决请求机制,其对针对该共享资源的待决请求进行优先权排序;记录机制,其记录与对于该共享资源的先前授予相关联的请求者标识符;及下一请求优先权逻辑。该下一请求优先权逻辑访问下一待决请求以判定是否应向下一待决请求授予对于该共享资源的优先权。该判定响应于所记录的请求者标识符且响应于该下一请求者标识符。响应于判定应向该下一待决请求授予对于该共享资源的优先权而向该下一待决请求授予对于该共享资源的优先权。响应于该授予而记录该下一请求者标识符。

Description

具有对于多个虚拟服务器间的共享资源分配的软件控制的微处理器
技术领域
本发明大体上涉及计算环境内的处理,且更具体而言涉及在计算环境中分配共享资源。
背景技术
整体计算机系统性能受计算机结构的主要元素中的每一个影响,所述主要元素包括:(一个或多个)处理器的性能/结构、(一个或多个)任何存储器高速缓存、(一个或多个)输出/输出(I/O)子系统、(一个或多个)存储器控制功能的效率、(一个或多个)主存储器装置,及(一个或多个)互连接口的类型及结构。
本产业持续地投入广泛研究及开发努力以产生改良及/或创新的解决方案,从而通过改良系统/子系统设计及/或结构来最大化整体计算机系统性能及密度。高可用性系统呈现了与整体系统可靠性相关的进一步挑战,这是由于消费者期望:新的计算机系统除了提供额外的功能、增加的性能、增加的存储、较低操作成本等之外,将在平均故障间隔时间(mean-time-between-failure,MTBF)方面显著超越现有系统。其他常见的消费者要求进一步加重了计算机系统设计挑战,且包括诸如以下的项目:容易升级及减少的系统环境影响(例如,空间、电力及冷却)。
当前微处理器具有许多处理器,每一处理器运行许多执行线程。举例而言,当前微处理器可具有八个处理器,每一处理器具有四个线程,其中利用管理程序(hypervisor)软件来管理多个虚拟处理器。预测在未来被执行的同时线程的数目将增加,且微处理器将可能具有同时运行的数十个线程。
微处理器具有由在管理程序控制下的多个虚拟处理器共享的许多硬件资源。这些共享资源包括:物理处理器,高速缓存,在多个高速缓存间提供高速缓存一致性的互连网络,存储控制器,输入/输出(I/O)控制器等。当前微处理器硬件设计依赖于管理程序软件,其与每一物理处理器中的硬件定时器结合以确保虚拟处理器接收物理硬件资源的公平份额。在当前设计中,虚拟处理器依赖于管理程序以按以下方式将虚拟进程分派至物理处理器上:将为每一处理器提供诸如高速缓存访问和存储控制器访问的“下游”共享资源的公平份额。
发明内容
本发明的一例示性实施例包括一种用于控制共享资源的分配的系统。该系统包括一下一请求优先权模块,其连接至一共享资源且连接至由请求者标识符标识的多个请求者。该下一请求优先权模块包括一待决请求机制、一记录机制及下一请求优先权逻辑。该待决请求机制对来自这些请求者中的一个或多个的对该共享资源的一个或多个待决请求按照优先权排序。每一待决请求包括一相关联的请求者标识符。将这些待决请求中的一个指定为具有一相关联的下一请求者标识符的下一待决请求。该记录机制记录与被授予对于该共享资源的优先权的先前请求相关联的请求者标识符。该下一请求优先权逻辑访问该下一待决请求及该下一请求者标识符,且判定是否应向该下一待决请求授予对于该共享资源的优先权。该判定是响应于所记录的请求者标识符且响应于该下一请求者标识符进行的。响应于判定应向该下一待决请求授予对于该共享资源的优先权而向该下一待决请求授予对于该共享资源的优先权。响应于该授予而记录该下一请求者标识符。
另一例示性实施例包括一种用于控制共享资源的分配的方法。该方法包括接收对访问一共享资源的一请求。该请求是接收自执行于一处理器上的一请求者。该接收是在连接至该处理器及该共享资源的一下一请求优先权模块处进行的。判定对于该共享资源的指定数目的最近优先权授予中的任一个是否是对于该请求者的。如果对于该共享资源的该指定数目的最近优先权授予中无任何一个是对于该请求者的,则将该请求授予至该共享资源。如果判定对于该共享资源的该指定数目的最近优先权授予中的任一个是对于该请求者的,则判定对该共享资源的一个或多个其他请求是否为待决的。如果对该共享资源的其他请求为待决的,则判定是否应向这些其他请求中的一个授予对于该共享资源的优先权。
另一例示性实施例包括一种用于控制共享资源的分配的计算机程序产品。该计算机程序产品包括一有形存储媒体,其可由一处理电路读取且存储用于由该处理电路执行以执行一方法的指令。该方法包括接收访问一共享资源的一请求。该请求是接收自执行于一处理器上的一请求者。该接收是在连接至该处理器及该共享资源的一下一请求优先权模块处进行的。判定对该共享资源的指定数目的最近优先权授予中的任一个是否是对于该请求者的。如果对该共享资源的该指定数目的最近优先权授予中无任何一个是对于该请求者的,则将该请求授予至该共享资源。如果判定对该共享资源的该指定数目的最近优先权授予中的任一个是对于该请求者的,则判定对该共享资源中的一个或多个其他请求是否为待决的。如果无任何对该共享资源的其他请求为待决的,则将该请求授予至该共享资源。如果对该共享资源的其他请求为待决的,则判定是否应向这些其他请求中的一个授予对于该共享资源的优先权。
附图说明
现在将通过参照以下附图且仅作为示例描述本发明的优选实施例,在附图中,
图1描绘可由本发明的例示性实施例实施的具有若干处理器及共享系统资源的计算系统;
图2描绘可由本发明的例示性实施例实施的虚拟服务器控制逻辑硬件;
图3A描绘现有技术的存储控制器;
图3B描绘可由本发明的例示性实施例实施的存储控制器;
图4描绘可由本发明的例示性实施例实施的用于选择待发送至共享系统资源的下一请求的一般流程图;以及
图5描绘可由本发明的例示性实施例实施的计算机程序产品。
具体实施方式
本发明的例示性实施例在共享资源的入口处提供硬件控制,其限制可专用于单个虚拟服务器或虚拟服务器组的请求的数目。
在当前微处理器硬件设计中,具有许多虚拟处理器的单个虚拟服务器可产生对微处理器核心外部的共享硬件资源的大量需求。这些需求可能足够大,从而对当前在同一硬件系统上运行的其他虚拟服务器产生性能影响。在过去,管理程序或任何类似软件系统相对较容易监视虚拟服务器的进展且限制分派在损害其他虚拟处理器的情况下而向前运行的虚拟处理器。当每个虚拟服务器存在更多线程并且单个微处理器芯片上的物理处理器核心(在本文中也称作核心处理器或处理器)的数目从当前一至八个增长至甚至更大数目时,管理程序较难进行监视。
另外,用不良高速缓存行为运行工作负载的虚拟服务器或意欲中断物理服务器的操作(以及其他可能结果)的恶意病毒程序可能产生对系统资源的过量需求。
本发明的例示性实施例允许管理程序或其他控制程序对可由虚拟服务器或由虚拟服务器组消耗的硬件资源设定限制。本发明的例示性提供限制可由单个虚拟服务器消耗的资源的最大份额的能力。这些限制可由管理程序或另一控制程序设定。在一例示性实施例中,将一虚拟服务器标识符(VSID)指派给在管理程序的控制下的每一独特虚拟服务器。将VSID与离开处理器且试图使用系统中的微处理器芯片上或其他芯片或接口上的共享资源的任何请求一起发送。硬件及/或软件控制防止任何单个虚拟服务器或虚拟服务器组占据超过特定百分比的硬件资源。
图1描绘可由一例示性实施例实施的多处理器计算系统的一部分。每一核心处理器100经由专门接口110、140及下一请求优先权模块120连接至一个或多个共享资源150。在本发明的一例示性实施例中,以软件来实施下一请求优先权模块120。在本发明的一例示性实施例中,下一请求优先权模块120为位于核心处理器100与共享资源150之间的系统控制逻辑(SCL)的一部分。SCL提供多个微处理器核心间以及这些核心与其他系统组件(诸如,存储器、数据高速缓存、I/O控制器、专门加速器、数据压缩引擎等)之间的物理互连。利用集中式交换结构的当代计算系统可具有实施于专用于交换功能的一个或多个芯片上的SCL。这些交换芯片接着连接至微处理器芯片及存储器芯片阵列以及系统的其他组件。利用分布式交换结构的计算系统可将SCL的一部分实施于微处理器芯片中的每一个上。在此状况下,微处理器芯片彼此直接连接,且用于这些连接的接口受SCL控制。SCL工作以控制源微处理器核心与共享系统资源之间的请求流。SCL也控制数据的返回流。
在集中式交换状况或分布式交换状况中的任一个的情况下,除了在当前系统中所见的SCL的典型位置以外,使用本发明的实施例的计算系统也可将SCL的一部分置于最靠近共享资源的点(例如,在存储器DRAM上)。本发明的其他例示性实施例可将SCL的一部分置于共享通信接口的任一端处,诸如,驱动一在其他方面为标准存储器接口的存储控制器逻辑处。SCL的部分在特定计算系统设计中的放置将取决于大量因素,包括(但不限于)可用逻辑空间、电力消耗及设计复杂性。由于许多当前设计含有多线程处理器,因此在例示性实施例中,关键共享资源也可与核心位于同一微处理器芯片上,且因此SCL的一部分也可位于该微处理器芯片上。其他例示性实施例可将该逻辑置于逻辑的共享管通的开始处,该共享管通通向诸如SRAM或eDRAM数据高速缓存的共享资源。
图1中所描绘的系统中的一个核心处理器100b经由接口110b连接至下一请求优先权模块120a。同一核心处理器100b也经由另一专用接口110c连接至下一请求优先权模块120b。由下一请求优先权模块120控制对共享资源150的访问。
图1中所描绘的下一请求优先权模块120包括虚拟服务器控制逻辑121及下一请求优先权逻辑122。在下文中参照图2描述虚拟服务器控制逻辑121的一例示性实施例。在下文中参照图4描述下一请求优先权逻辑122的一例示性实施例。
本发明的一例示性实施例使用若干IBM P6微处理器,每一IBM P6微处理器具有四个处理核心。本发明的例示性实施例可用于具有任何数目的微处理器芯片的系统上。另外,例示性实施例可用任何类型的微处理器(含有任何数目的核心处理器)来实施。此外,例示性实施例可结合微处理器来使用,这些微处理器支持若干多线程实现中的任一个。
如图1中所描绘的,为系统中的核心处理器100中的每一个提供一VSID寄存器160。可由执行于核心处理器100上的软件来对VSID寄存器160进行写入。本发明的例示性实施例使用一管理程序来实行此任务。在预期多线程为活跃的的且个别线程可被指派同时运行来自多个虚拟服务器的软件的系统中,可为每一线程提供一VSID寄存器160。在本发明的例示性实施例中,管理程序为其控制的每一虚拟服务器选择一VSID。当将一虚拟服务器分派至物理处理器(例如,核心处理器100)上时,将VSID写入到用于该核心处理器100的VSID寄存器160中。
VSID寄存器160的内容包括有命令、地址及数据,其经由接口110向共享资源150传送。接口110可类似于当前请求接口,诸如,用于与当代存储控制器连接的接口。VSID信息与现有技术的命令、地址及数据信息的组合由核心处理器100下游的逻辑使用,以控制对共享资源150的访问。本发明的例示性实施例使用下一请求优先权模块120来控制对在具有核心处理器100a-100c的微处理器芯片外部(即,并非位于微处理器芯片上)的共享资源150的访问。其他实施例可使用类似硬件及方法来控制对位于微处理器芯片内部的资源(诸如,片上存储控制器、片上I/O控制器、片上数据高速缓存或任何其他片上资源)的访问。
在本发明的例示性实施例中,VSID对于管理程序当前正于计算系统上托管的每一虚拟服务器为独特的。本发明的其他实施例可使用独特VSID的散列或完整VSID的位的简单子集。本发明的一项例示性实施例仅使用VSID的两个最低阶位以便减少将VSID添加至请求信息所需的硬件开销,该请求信息必须自核心处理器100传送至共享资源150。VSID的子集的使用降低了将请求槽(request slot)分配到虚拟服务器的准确度,但仍将能够防止运行于计算系统上的大多数虚拟服务器的不可预测的性能。
如本文所使用的,VSID为请求者标识符的一示例,可利用请求者标识符以将一请求者(例如,虚拟服务器)与对共享资源(例如,存储器)的请求相关联。如对本领域技术人员显然的,在其他实施例中,可利用其他请求者标识符。
核心处理器100与共享资源150之间的互连在图1中显示为点对点总线110、140的集合。本发明的其他例示性实施例可利用任何其他类型的互连,诸如,共享总线、全纵横制开关(full crossbar switch)或一系列互连开关,以及许多其他配置。
图2描绘可由本发明的例示性实施例利用的虚拟服务器控制逻辑121。图2中所描绘的虚拟服务器控制逻辑121包括一组寄存器220,其构成用于存储对共享资源150的待决请求的请求队列。寄存器220也含有用于每一请求的请求者标识符(例如,VSID)。请求者标识符将请求与请求者(例如,执行于核心处理器100上的虚拟服务器)相关联。请求队列是排序的(例如,基于每一请求已处于该队列中多长时间、在该队列中的时间及与请求者相关联的优先权的组合等),且当共享资源150可用于处理新请求时,将这些请求中的一个指定为将被评估以便处理的下一请求。寄存器220含有已经由接口110中的一个自核心处理器100到达的待决请求。本发明的例示性实施例允许四个请求保持待决;其他实施例可使用任何数目的额外(或更少的)寄存器用于此功能。保持于该队列中的请求的数目也可使用可编程深度来设计。
本发明的例示性实施例也包括由多个寄存器230构成的先前请求者队列。本发明的例示性实施例使用四位置深的先进先出缓冲器来实施先前请求者队列,以保持将被授予对于共享资源150的优先权的最后四个请求的VSID。可使用任何其他深度的缓冲器。也可使用可编程深度来设计该缓冲器。在例示性实施例中,该深度由管理程序或由任何其他合适的监督器软件或由合适的硬件算法来设定。在例示性实施例中,缓冲器的深度是在系统的初始通电序列(initial power-on sequence)期间设定的,且然后在未来时间由管理程序进行更改。
图2中所描绘的请求队列220为可由本发明的例示性实施例实施的待决请求机制的示例。本发明的例示性实施例可利用以硬件及/或软件实施待决请求机制的其他方式。举例而言,待决请求机制可被设计为有利于特定VSID。可保证受益的VSID对共享资源的特定比例(例如,百分的二十五)的使用。
类似地,图2中所描绘的先前请求者队列230为可由本发明的例示性实施例实施的记录机制的示例。本发明的例示性实施例可利用以硬件及/或软件实施记录机制的其他方式。举例而言,可将这些记录实施为计数器的集合,计数器在每次向具有特定VSID的请求授予接下来使用共享资源的优先权时递增。每一计数器可被指派VSID的一范围。应理解,可以使用待决请求机制与记录机制的广泛范围的组合来实施本发明。使用记录机制的状态连同待决请求机制的状态的任何合适逻辑可用以判定待发送至共享资源的下一请求。
本发明的例示性实施例将一存储器用作共享资源150。图3A中的来自美国专利第7,320,047号的存储器系统300为现有技术的存储器系统的一示例,其可与本发明的例示性实施例一起使用。存储器系统300包括一存储控制器310、多个点到点链路320a-320n、多个存储器子系统330a-330c,以及接口375上的多个存储器子系统端口378a-378n。在图3A中将存储器子系统330a的更详细描述示为存储器子系统340。存储器子系统340包括安置于存储器子系统340上的缓冲器装置350及多个存储器装置360。缓冲器装置350经由通道370耦接至多个存储器器件360。
图3B中所描绘的存储器系统300B描绘可与图3A中描绘的现有技术的存储器系统一起实施的例示性实施例。类似于图3A,图3B描绘了一存储器系统300B,其包括一存储控制器310B、多个点到点链路320aB-320nB、多个存储器子系统330aB-330cB,及接口375B上的多个存储器子系统端口378aB-378nB。在图3B中将存储器子系统330aB的更详细描述示为存储器子系统340B。存储器子系统340B包括安置于存储器子系统340B上的缓冲器装置350B及多个存储器装置360B。缓冲器装置350B经由通道370B耦接至多个存储器装置360B。图3B中描绘的存储控制器310B也包括在图3B中示为组件390B的下一请求优先权逻辑120、130。所描绘的例示性实施例将下一请求优先权模块390B定位于存储控制器310B中,但应理解也可将其定位于存储器缓冲器装置350B中或存储器装置360B中。例示性实施例并不限于在存储器系统中使用,因为任何其他共享资源可以类似方式来控制。
图4描绘可由本发明的例示性实施例实施的用于选择待发送至共享系统资源150的下一请求的一般化流程图。图4说明实施于下一请求优先权逻辑122中的功能,下一请求优先权逻辑122管理虚拟服务器控制逻辑121及请求接口140。在块410,下一请求优先权逻辑122检查请求队列中的下一项。如上文所描述的,在本发明的一例示性实施例中,下一项为请求队列中的最旧项。在块420,判定与下一项相关联的请求者标识符是否匹配先前请求者队列中的项中的任一个。在图4中所描绘的例示性实施例中,先前请求者队列由四位置深的先进先出缓冲器来实施,该缓冲器含有被授予对于共享资源的优先权的最后四个请求者的请求者标识符。在此示例中,四为最近优先权授予的指定数目,在其他实施例中,实施其他指定数目。
如果在块420判定请求者标识符匹配先前请求者队列中的请求者标识符中的任一个,则处理在块450处继续,在块450中判定该下一请求是否为请求队列中的最后请求。在此状况下,应向请求者授予对于共享资源150的优先权,因为没有其他请求者正在等待共享资源150;在块460,向该请求者授予对于共享资源150的优先权。在替代例示性实施例中,当请求队列中仅存在一个请求且其相关联的请求者标识符已在先前请求者队列中找到时,采取一不同动作。在此替代例示性实施例中,没有优先权被给予下一请求且在下一周期中没有请求被发送至共享资源150。当用于该请求的服务时间相比共享资源150可同时处理的请求的数目较长时,这可能是需要的。
如果在块450判定下一请求并非该请求队列中的最后请求,则将该队列中的另一请求指定为下一请求(例如,基于其为下一最旧请求,或一些其他优先权方案),且处理在块410继续。
如果在块420判定请求者标识符不匹配先前请求者队列中的请求者标识符中的任一个,则处理在块430处继续。在块430,向该下一请求授予对于共享资源150的优先权。在块440,将与该下一请求相关联的请求者标识符添加至先前请求者队列。在本发明的一例示性实施例中,新的请求者标识符替换先前请求者队列中的最旧项。被授予优先权的请求变为待经由接口140发送至共享资源150的下一请求。
图4描绘了可由例示性实施例实施的一个处理流程,且其他处理流程可由本发明的替代例示性实施例来实施。举例而言,在本发明的另一例示性实施例中,通过将一请求者标识符指派给一个或多个虚拟服务器且通过选择将多少先前请求者标识符存储于先前请求者队列(或其他记录机制),来实施使来自一个或多个特定虚拟服务器的请求优于所有其他虚拟服务器的请求的优先权功能。在一项示例中,一特定虚拟服务器可被保证用于在许多CPU间共享的存储控制器的至少百分之十的请求槽。
在本发明的另一例示性实施例中,使用在功能上类似于VSID(请求者标识符的一示例)的请求标签,但是由不同层的软件产生的。一例示性实施例使用由管理程序产生的VSID,然而,任何个别操作系统均可产生标识在该操作系统上运行的个别工作单元的一组进程ID(PID)。这些PID为可实施的另一类型的请求者标识符,且可在分派期间将其作为VSID直接写入至相同硬件寄存器。
在另一例示性实施例中,硬件被设计为拦截操作系统改变CPU的VSID的尝试,且然后将对CPU的控制传递至管理程序。在此状况下,管理程序将使用任何数目的算法以判定VSID硬件寄存器应设定为何值。
技术效果及益处包括物理计算机服务器在运行大量虚拟服务器时提供可靠的高性能等级的能力。服务器允许管理程序或另一控制程序对可由虚拟服务器或由虚拟服务器组消耗的硬件资源设定限制。这提供了限制可由单个虚拟服务器消耗的资源的最大份额的能力,且可引起处理器的性能增加。
本文所使用的术语仅为了描述特定实施例,且并不意欲限制本发明。在本文中使用时,单数形式“一”及“该”意欲也包括复数形式,除非上下文清楚地指示不是这样。应进一步理解,术语“包含”和/或“包括”在本说明书中使用时指定所述特征、整体、步骤、操作、要素及/或组件的存在,但不排除一个或多个其他特征、整体、步骤、操作、组件、要素及/或组件的存在或添加。
以下权利要求中的相应结构、材料、动作以及所有装置或步骤加功能组件的等价物意欲包括任何用于结合如具体所要求保护的其他所要求保护组件来执行功能的结构、材料或动作。已出于说明及描述目的呈现了本发明的描述,但该描述并不意欲为穷尽的或将本发明限于所揭示的形式。许多修改及变化对于本领域的普通技术人员是显而易见的。选择并描述了实施例以便最佳地解释本发明的原理及实际应用,且使本领域的其他普通技术人员能够理解本发明的适合于所考虑的特定用途的具有各种修改的各种实施例。
如本领域的技术人员所了解的,本发明的实施例可体现为一系统、方法或计算机程序产品。因此,本发明的实施例可采用完全硬件实施例、完全软件实施例(包括固件、常驻软件、微码等)或组合软件与硬件方面的实施例的形式,这些软件和硬件方面在本文中皆可通称为“电路”、“模块”或“系统”。此外,本发明的实施例可采用体现于任何有形表现介质中的一计算机程序产品的形式,该有形表现介质具有体现于该介质中的计算机可用程序代码。可利用一个或多个计算机可用或计算机可读介质的任何组合。计算机可用或计算机可读介质可为例如(但不限于)电子、磁、光、电磁、红外线或半导体系统、装置、器件或传播介质。计算机可读介质的更具体示例(非穷尽列表)将包括以下各项:具有一个或多个导线的电连接、便携型计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携型光盘只读存储器(CDROM)、光存储装置、传输介质(诸如,支持因特网或内部网的传输介质),或磁存储装置。应注意,计算机可用或计算机可读介质甚至可为程序被打印于上面的纸张或另一合适介质,因为该程序可经由(例如)对纸张或其他介质的光学扫描来以电子方式捕获,接着经编译、解译或以合适方式另外处理(如果有必要),且接着存储于计算机存储器中。在此文件的背景下,一计算机可用或计算机可读介质可为可含有、存储、传达、传播或传送由指令执行系统、装置或器件使用或与指令执行系统、装置或器件结合使用的程序的任何介质。计算机可用介质可包括一传播的数据信号,其具有在基频中或作为一载波的部分体现于其中的计算机可用程序代码。可使用任何适当的介质(包括但不限于无线、有线线路、光纤、RF等)来传输计算机可用程序代码。
可以一种或多种编程语言的任何组合撰写用于执行本发明的操作的计算机程序代码,该一种或多种编程语言包括诸如Java、Smalltalk、C++或其类似者的面向对象的编程语言及诸如“C”编程语言或类似编程语言的传统过程性编程语言。程序代码可完全在使用者的计算机上执行,部分地在使用者的计算机上执行,作为独立软件包执行,部分地在使用者的计算机上执行且部分地在远程计算机上执行,或完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可经由任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至使用者的计算机,或可(例如,使用因特网服务提供者,经由因特网)连接至外部计算机。
下面参考根据本发明的实施例的方法、装置(系统)及计算机程序产品的流程图及/或方块图来描述本发明。将理解,可由计算机程序指令来实施流程图及/或方块图中的每一块及这些流程图及/或方块图中的块的组合。可将这些计算机程序指令提供至通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生一机器,以使得经由该计算机或其他可编程数据处理装置的处理器执行的指令建立用于实施该或该些流程图及/或方块图块中所指定的功能/动作的装置。这些计算机程序指令也可存储在一计算机可读介质中,其可指导计算机或其他可编程数据处理装置以特定方式起作用,以使得存储在该计算机可读介质中的指令产生一制品,其包括实施该或该些流程图及/或方块图块中所指定的功能/动作的指令装置。
这些计算机程序指令也可加载至计算机或其他可编程数据处理装置上以使一系列操作步骤在该计算机或其他可编程装置上实行以产生一计算机实施过程,使得在该计算机或其他可编程装置上执行的指令提供用于实施该或该些流程图及/或方块图块中所指定的功能/动作的过程。
如上所述,实施例可以体现为计算机实施的过程及用于实践这些过程的装置的形式。在例示性实施例中,本发明体现为在一个或多个网络组件上执行的计算机程序码。实施例包括如图5中所描绘的在一计算机可用介质502上的计算机程序产品500,该计算机可用介质具有含有体现于作为制品的有形介质中的指令的计算机程序代码逻辑504。计算机可用介质502的例示性制品可包括软盘、CD-ROM、硬盘驱动器、通用串行总线(USB)快闪驱动器或任何其他计算机可读存储介质,其中当将计算机程序代码逻辑504加载至计算机中且由计算机执行时,计算机成为用于实践本发明的装置。实施例包括计算机程序代码逻辑504,例如,不管其是否存储于存储介质中,加载至计算机中及/或由计算机执行,或经由某传输介质(诸如,经由电线或电缆、经由光纤、或经由电磁辐射)传输,其中当将计算机程序代码逻辑504加载至计算机中且由计算机执行时,该计算机成为用于实践本发明的装置。当实施于一通用微处理器上时,计算机程序代码逻辑504片段配置该微处理器以建立特定逻辑电路。
诸图中的流程图及方块图说明根据本发明的各种实施例的系统、方法及计算机程序产品的可能实现的架构、功能及操作。就此而言,在流程图或方块图中的每一块可代表程序代码的模块、段或部分,其包含用于实施指定逻辑功能的一个或多个可执行指令。也应注意,在一些替代实施中,块中所述的功能可不以图中所指出的次序发生。举例而言,取决于所涉及的功能,相继示出的两个块实际上可大体上同时执行,或这些块有时可以相反次序执行。也应注意,方块图及/或流程图中的每一块及方块图及/或流程图中的块的组合可通过实行指定功能或动作的基于硬件的专用系统实施,或通过专用硬件与计算机指令的组合来实施。

Claims (20)

1.一种用于控制共享资源的分配的系统,该系统包括:
下一请求优先权模块,其连接至共享资源且连接至由请求者标识符标识的多个请求者,该下一请求优先权模块包括:
待决请求机制,其将来自这些请求者中的一个或多个的对该共享资源的一个或多个待决请求按照优先权排序,每一待决请求包括相关联的请求者标识符,且这些待决请求中的一个被指定为具有相关联的下一请求者标识符的下一待决请求;
记录机制,其记录与被授予对于该共享资源的优先权的先前请求相关联的请求者标识符;以及
下一请求优先权逻辑,其访问该下一待决请求及该下一请求者标识符,判定是否应向该下一待决请求授予对于该共享资源的优先权,该判定响应于所记录的请求者标识符且响应于该下一请求者标识符,响应于判定应向该下一待决请求授予对于该共享资源的优先权而向该下一待决请求授予对于该共享资源的优先权,且响应于该授予而记录该下一请求者标识符。
2.如权利要求1的系统,其中响应于该下一待决请求为唯一待决请求而判定应向该下一待决请求授予对于该共享资源的优先权。
3.如权利要求1的系统,其中该下一请求优先权逻辑进一步响应于判定不应向该下一待决请求授予对于该共享资源的优先权而指定一其他待决请求及相关联的请求者标识符作为下一待决请求及下一请求者标识符。
4.如权利要求1的系统,其中记录对于该共享资源的指定数目的最近优先权授予的请求标识符。
5.如权利要求1的系统,其中响应于该下一请求者标识符不匹配所记录的请求者标识符而判定应向该下一待决请求授予对于该共享资源的优先权。
6.如权利要求1的系统,其中该请求者为虚拟服务器。
7.如权利要求1的系统,其中该请求者为虚拟服务器组。
8.如权利要求1的系统,其中该共享资源为存储器,且该下一请求优先权模块位于存储控制器中。
9.如权利要求1的系统,其中该下一请求优先权逻辑进一步响应于向该下一请求授予对于该共享资源的优先权而将该下一请求传输至该共享资源。
10.如权利要求1的系统,其中该下一请求优先权模块是由系统控制逻辑SCL实施的。
11.一种用于控制共享资源的分配的方法,该方法包括:
接收访问共享资源的请求,该请求接收自执行于处理器上的请求者,该接收是在连接至该处理器且连接至该共享资源的下一请求优先权模块处进行的;
判定对于该共享资源的指定数目的最近优先权授予中的任一个是否是对于该请求者的;
响应于判定对于该共享资源的该指定数目的最近优先权授予中没有任何一个是对于该请求者的而向该请求授予对于该共享资源的优先权;以及
响应于判定对于该共享资源的该指定数目的最近优先权授予中的任一个是对于该请求者的而执行以下操作:
判定对该共享资源的一个或多个其他请求是否为待决的;以及
响应于判定对该共享资源的一个或多个其他请求为待决的而判定是否应向这些其他请求中的一个授予对于该共享资源的优先权。
12.如权利要求11的方法,进一步包括响应于判定对该共享资源的其他请求并非为待决的而向该请求授予对于该共享资源的优先权。
13.如权利要求11的方法,其中该下一请求优先权模块是由SCL实施的。
14.如权利要求11的方法,进一步包括响应于向该请求授予对于该共享资源的优先权而将该请求传输至该共享资源。
15.一种用于控制共享资源的分配的计算机程序产品,该计算机程序产品包括:
有形存储介质,其可由一处理电路读取且存储用于由该处理电路执行以实行一方法的指令,该方法包括:
接收对访问共享资源的请求,该请求接收自执行于处理器上的请求者,该接收是在连接至该处理器且连接至该共享资源的下一请求优先权模块处进行的;
判定对于该共享资源的指定数目的最近优先权授予中的任一个是否是对于该请求者的;
响应于判定对于该共享资源的该指定数目的最近优先权授予中无任何一个是对于该请求者的而向该请求授予对于该共享资源的优先权;及
响应于判定对于该共享资源的该指定数目的最近优先权授予中的任一个是对于该请求者的而执行以下操作:
判定对该共享资源中的一个或多个其他请求是否为待决的;
响应于判定对该共享资源的其他请求并非为待决的而向该请求授予对于该共享资源的优先权;以及
响应于判定对该共享资源的一个或多个其他请求为待决的而判定是否应向这些其他请求中的一个授予对于该共享资源的优先权。
16.如权利要求15的计算机程序产品,其中该请求者为虚拟服务器。
17.如权利要求15的计算机程序产品,其中该请求者为虚拟服务器组。
18.如权利要求15的计算机程序产品,其中该方法进一步包括响应于判定对该共享资源的其他请求并非为待决的而向该请求授予对于该共享资源的优先权。
19.如权利要求15的计算机程序产品,其中该方法进一步包括响应于向该请求授予对于该共享资源的优先权而将该请求传输至该共享资源。
20.如权利要求15的计算机程序产品,其中该下一请求优先权模块是由SCL实施的。
CN201080009315.2A 2009-02-25 2010-02-18 具有对于多个虚拟服务器间的共享资源分配的软件控制的微处理器 Expired - Fee Related CN102334103B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/392,665 2009-02-25
US12/392,665 US8676976B2 (en) 2009-02-25 2009-02-25 Microprocessor with software control over allocation of shared resources among multiple virtual servers
PCT/EP2010/052076 WO2010097331A2 (en) 2009-02-25 2010-02-18 Microprocessor with software control over allocation of shared resources among multiple virtual servers

Publications (2)

Publication Number Publication Date
CN102334103A true CN102334103A (zh) 2012-01-25
CN102334103B CN102334103B (zh) 2014-05-21

Family

ID=42631868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080009315.2A Expired - Fee Related CN102334103B (zh) 2009-02-25 2010-02-18 具有对于多个虚拟服务器间的共享资源分配的软件控制的微处理器

Country Status (7)

Country Link
US (2) US8676976B2 (zh)
EP (1) EP2401677A2 (zh)
JP (1) JP5536807B2 (zh)
KR (1) KR101455899B1 (zh)
CN (1) CN102334103B (zh)
TW (1) TWI459297B (zh)
WO (1) WO2010097331A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015165298A1 (zh) * 2014-04-30 2015-11-05 华为技术有限公司 计算机,控制设备和数据处理方法
CN111722933A (zh) * 2019-03-19 2020-09-29 国际商业机器公司 分布式进程之间的死锁解决

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027354B1 (en) * 2009-04-29 2011-09-27 Cisco Technology, Inc. Network consolidation for virtualized servers
CN103748862A (zh) * 2011-06-28 2014-04-23 诺基亚公司 情境提取
US10187452B2 (en) 2012-08-23 2019-01-22 TidalScale, Inc. Hierarchical dynamic scheduling
US9075789B2 (en) * 2012-12-11 2015-07-07 General Dynamics C4 Systems, Inc. Methods and apparatus for interleaving priorities of a plurality of virtual processors
US9515899B2 (en) * 2012-12-19 2016-12-06 Veritas Technologies Llc Providing optimized quality of service to prioritized virtual machines and applications based on quality of shared resources
US9396007B2 (en) * 2013-03-22 2016-07-19 Facebook, Inc. Cache management in a multi-threaded environment
US9692706B2 (en) 2013-04-15 2017-06-27 International Business Machines Corporation Virtual enhanced transmission selection (VETS) for lossless ethernet
US9223574B2 (en) * 2014-03-27 2015-12-29 International Business Machines Corporation Start virtual execution instruction for dispatching multiple threads in a computer
WO2017209876A1 (en) 2016-05-31 2017-12-07 Brocade Communications Systems, Inc. Buffer manager
US10579421B2 (en) 2016-08-29 2020-03-03 TidalScale, Inc. Dynamic scheduling of virtual processors in a distributed system
US20180131633A1 (en) * 2016-11-08 2018-05-10 Alibaba Group Holding Limited Capacity management of cabinet-scale resource pools
US10705872B2 (en) 2016-12-08 2020-07-07 International Business Machines Corporation Predictive virtual server scheduling and optimization of dynamic consumable resources to achieve priority-based workload performance objectives
US10394604B2 (en) * 2017-03-15 2019-08-27 Samsung Electronics Co., Ltd. Method for using local BMC to allocate shared GPU resources inside NVMe over fabrics system
US11113101B2 (en) * 2017-06-05 2021-09-07 Marvell Asia Pte, Ltd. Method and apparatus for scheduling arbitration among a plurality of service requestors
US10579274B2 (en) 2017-06-27 2020-03-03 TidalScale, Inc. Hierarchical stalling strategies for handling stalling events in a virtualized environment
US10817347B2 (en) 2017-08-31 2020-10-27 TidalScale, Inc. Entanglement of pages and guest threads
CN110297710B (zh) * 2018-03-23 2022-05-10 畅想科技有限公司 用于多资源仲裁的公共优先级信息
JP7141905B2 (ja) * 2018-10-12 2022-09-26 株式会社日立産機システム コントロール装置及びコントロール方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1016957A2 (en) * 1994-04-04 2000-07-05 Hyundai Electronics America Method of managing resources shared by multiple processing units
US20020178282A1 (en) * 2001-01-30 2002-11-28 Nomadix, Inc. Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network
US20070294450A1 (en) * 2006-06-14 2007-12-20 Honeywell International Inc. System and method for user-configurable resource arbitration in a process control system
CN101164051A (zh) * 2005-03-01 2008-04-16 高通股份有限公司 总线访问仲裁方案

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61167647A (ja) * 1985-01-19 1986-07-29 Sumitomo Chem Co Ltd 第一菊酸エステルのラセミ化方法
TW346574B (en) * 1997-05-09 1998-12-01 Ind Tech Res Inst Method and apparatus for selecting non-blocking multiple interrupt requests in a multi-processor system
US6647508B2 (en) 1997-11-04 2003-11-11 Hewlett-Packard Development Company, L.P. Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation
US6754206B1 (en) * 1997-12-04 2004-06-22 Alcatel Usa Sourcing, L.P. Distributed telecommunications switching system and method
US6233645B1 (en) 1998-11-02 2001-05-15 Compaq Computer Corporation Dynamically disabling speculative prefetch when high priority demand fetch opportunity use is high
US7010642B2 (en) 2000-01-05 2006-03-07 Rambus Inc. System featuring a controller device and a memory module that includes an integrated circuit buffer device and a plurality of integrated circuit memory devices
JP4018900B2 (ja) 2001-11-22 2007-12-05 株式会社日立製作所 仮想計算機システム及びプログラム
US8005979B2 (en) 2002-10-28 2011-08-23 Oracle America, Inc. System and method for uniquely identifying processes and entities in clusters
US7394808B2 (en) * 2004-05-24 2008-07-01 Nortel Networks Limited Method and apparatus for implementing scheduling algorithms in a network element
US7356631B2 (en) * 2005-01-21 2008-04-08 Himax Technologies, Inc. Apparatus and method for scheduling requests to source device in a memory access system
US7779424B2 (en) 2005-03-02 2010-08-17 Hewlett-Packard Development Company, L.P. System and method for attributing to a corresponding virtual machine CPU usage of an isolated driver domain in which a shared resource's device driver resides
US20060206891A1 (en) 2005-03-10 2006-09-14 International Business Machines Corporation System and method of maintaining strict hardware affinity in a virtualized logical partitioned (LPAR) multiprocessor system while allowing one processor to donate excess processor cycles to other partitions when warranted
US8255912B2 (en) * 2005-04-13 2012-08-28 Qualcomm Incorporated Techniques for setting events in a multi-threaded system
GB0519981D0 (en) * 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
JP5031538B2 (ja) 2007-06-21 2012-09-19 株式会社日立製作所 データ分配方法、データ分配プログラム、及び並列データベースシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1016957A2 (en) * 1994-04-04 2000-07-05 Hyundai Electronics America Method of managing resources shared by multiple processing units
US20020178282A1 (en) * 2001-01-30 2002-11-28 Nomadix, Inc. Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network
CN101164051A (zh) * 2005-03-01 2008-04-16 高通股份有限公司 总线访问仲裁方案
US20070294450A1 (en) * 2006-06-14 2007-12-20 Honeywell International Inc. System and method for user-configurable resource arbitration in a process control system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015165298A1 (zh) * 2014-04-30 2015-11-05 华为技术有限公司 计算机,控制设备和数据处理方法
CN105094983A (zh) * 2014-04-30 2015-11-25 华为技术有限公司 计算机,控制设备和数据处理方法
US10572309B2 (en) 2014-04-30 2020-02-25 Huawei Technologies Co., Ltd. Computer system, and method for processing multiple application programs
CN105094983B (zh) * 2014-04-30 2020-04-28 华为技术有限公司 计算机,控制设备和数据处理方法
CN111666148A (zh) * 2014-04-30 2020-09-15 华为技术有限公司 计算机,控制设备和数据处理方法
CN111722933A (zh) * 2019-03-19 2020-09-29 国际商业机器公司 分布式进程之间的死锁解决
CN111722933B (zh) * 2019-03-19 2024-05-24 国际商业机器公司 分布式进程之间的死锁解决

Also Published As

Publication number Publication date
US20100217868A1 (en) 2010-08-26
JP2012518825A (ja) 2012-08-16
US20120271952A1 (en) 2012-10-25
WO2010097331A3 (en) 2010-11-18
CN102334103B (zh) 2014-05-21
KR101455899B1 (ko) 2014-11-03
TWI459297B (zh) 2014-11-01
JP5536807B2 (ja) 2014-07-02
WO2010097331A2 (en) 2010-09-02
EP2401677A2 (en) 2012-01-04
KR20110118810A (ko) 2011-11-01
US8788672B2 (en) 2014-07-22
US8676976B2 (en) 2014-03-18
TW201040840A (en) 2010-11-16

Similar Documents

Publication Publication Date Title
CN102334103B (zh) 具有对于多个虚拟服务器间的共享资源分配的软件控制的微处理器
Mutlu et al. Research problems and opportunities in memory systems
US9183063B2 (en) Power-constrained compiler code generation and scheduling of work in a heterogeneous processing system
US9281026B2 (en) Parallel processing computer systems with reduced power consumption and methods for providing the same
JP6294586B2 (ja) 命令スレッドを組み合わせた実行の管理システムおよび管理方法
CN1894662B (zh) 作为用于执行引导码的ram的处理器缓存存储器
US8145723B2 (en) Complex remote update programming idiom accelerator
US11886750B2 (en) Analytics, algorithm architecture, and data processing system and method
US8997071B2 (en) Optimized division of work among processors in a heterogeneous processing system
CN102483718A (zh) 虚拟化环境中的高速缓存分区
TWI221250B (en) Multi-processor system
CN107729267B (zh) 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构
US20100174886A1 (en) Multi-Core Processing Utilizing Prioritized Interrupts for Optimization
JP2015517712A (ja) 動的に構築可能なコンピュータシステム
US8490071B2 (en) Shared prefetching to reduce execution skew in multi-threaded systems
Teich et al. Run-time enforcement of non-functional application requirements in heterogeneous many-core systems
EP3588313B1 (en) Non-volatile memory aware caching policies
Govindarajan et al. Design and performance evaluation of a multithreaded architecture
Yu et al. Stateful large language model serving with pensieve
JP2013534670A (ja) 複数の論理コアを備えるマイクロプロセッサにおけるアプリケーション実行再開時のメモリアクセス最適化方法および該方法を実行するコンピュータプログラム
US8886917B1 (en) Switching to core executing OS like codes upon system call reading greater than predetermined amount of data
Ausavarungnirun et al. High-Performance and Energy-Effcient Memory Scheduler Design for Heterogeneous Systems
Franz et al. Memory efficient multi-swarm PSO algorithm in OpenCL on an APU
Martin et al. Token coherence: low-latency coherence on unordered interconnects
CN102346684B (zh) 将虚拟高速缓存拓扑结构展示给客操作系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140521

Termination date: 20210218

CF01 Termination of patent right due to non-payment of annual fee