CN101784989A - 在逻辑分区之间分配网络适配器资源 - Google Patents

在逻辑分区之间分配网络适配器资源 Download PDF

Info

Publication number
CN101784989A
CN101784989A CN200880104201A CN200880104201A CN101784989A CN 101784989 A CN101784989 A CN 101784989A CN 200880104201 A CN200880104201 A CN 200880104201A CN 200880104201 A CN200880104201 A CN 200880104201A CN 101784989 A CN101784989 A CN 101784989A
Authority
CN
China
Prior art keywords
priority
request
resource
resources
subregion
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
CN200880104201A
Other languages
English (en)
Other versions
CN101784989B (zh
Inventor
蒂莫西·J·席姆克
肖恩·M·兰贝思
李·A·森德尔巴赫
埃伦·M·鲍曼
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 CN101784989A publication Critical patent/CN101784989A/zh
Application granted granted Critical
Publication of CN101784989B publication Critical patent/CN101784989B/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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

在一实施例中,网络适配器具有被多路复用到具有缺省队列的多个逻辑端口的物理端口。该网络适配器还具有:其他队列,其可被分配到任何逻辑端口;以及资源,其将元组映射到队列。所述元组从经由该物理端口接收的分组中的数据取得。该网络适配器基于该接收的元组与所述资源,确定哪个队列应当接收分组。如果该接收的元组符合资源,则该网络适配器将该分组存储到该相对应的队列;否则,该网络适配器将该分组存储到由该分组所指定的该逻辑端口的缺省队列。响应于从请求分区接收到分配请求,如果没有资源为空闲,则已经分配给所选择的分区的资源被选择用于预占。然后,所选择的资源被分配给该请求分区。

Description

在逻辑分区之间分配网络适配器资源
技术领域
本发明的实施例一般涉及在逻辑分区的计算机中的多个分区之间分配网络适配器的资源。
背景技术
1948年的EDVAC计算机***的发展经常被引述为计算机纪元的开端。自此之后,计算机***已经发展成为极端精密的装置。计算机***典型地包括硬件(如半导体、电路板等)及软件(如计算机程序)的组合。随着半导体工艺及计算机架构的发展将计算机硬件的性能推往更高时,已经开发出更加精密的计算机软件来利用硬件的较高性能的好处,造成比仅仅几年前强大得多的现今的计算机***。在计算机技术中一种发展为并行处理的开发,即并行执行多个任务。
一些计算机软件及硬件技术已经被开发来实施渐增的并行处理。从硬件的角度而言,计算机越来越依赖多个微处理器来提供增大的工作负荷能力。从软件的角度而言,已经开发出多线程操作***及内核,其可允许计算机程序同时在多个线程中执行,使得实质上可同时执行多个任务。此外,一些计算机实施了逻辑分区的观念,其中,单个物理计算机被允许在本质上类似于被称为逻辑分区的多个独立的虚拟计算机而操作,在该物理计算机中的各种资源(例如处理器、存储器、适配器及输入/输出装置)经由分区管理器或超级管理器(hypervisor)来在多个逻辑分区之间分配。每个逻辑分区执行独立的操作***,并且,从用户及在该逻辑分区中执行的软件应用的角度来看,作为完全独立的计算机而操作。
因为每个逻辑分区本质上对于该计算机的有限资源而与其他逻辑分区相竞争,并且,每个逻辑分区的需求可随时间改变,所以,在逻辑分区的***中的一个挑战为动态地分配资源给所述分区,使得所述分区共享该计算机***的有限资源。经常由多个分区共享的一个资源为网络适配器。网络适配器连接该计算机***(及共享它的所述分区)到网络,使得所述分区可与其他也连接至该网络的***通信。典型地,网络适配器经由各自具有网络地址的一个或多个物理端口连接至该网络。该网络适配器经由其物理端口发送数据分组到该网络,并且,如果分组指定其物理端口地址,则自该网络接收所述数据分组。
因为许多逻辑分区经常为激活,所以,许多不同的会话在给定网络适配器上也同时激活。期望该网络适配器对进入的分组业务量(traffic)进行分类(sort),使得可以降低所需要的对所述分组的超级管理器处理,且所述分组被直接路由到等待它们的分区中的应用。因为每个分区通常至少暂时性地需要网络连接性,但每个分区不一定总是需要物理端口的完整带宽,因此分区经常共享物理端口。此共享由该网络适配器实施,其多路复用一个(或多个)物理端口到多个逻辑端口,其每一个被分配到单个分区。因此,每个逻辑分区被分配逻辑网络适配器及逻辑端口,且每个逻辑分区使用其逻辑网络适配器及逻辑端口,正如同其将是专属的独立运作物理网络适配器及物理端口。
使用所述逻辑端口将分组路由到它们的目标分区,这有时候经由队列对(QP)来实施。每个逻辑端口被给定或指定(assign)一个队列对(发送队列及接收队列),其作为进入分组的缺省队列对。当该网络适配器自该网络接收分组时,该适配器执行该目标逻辑端口地址的查询,并基于该逻辑端口地址路由所述进入分组到适当的队列对。
一些网络适配器还提供被称为“每连接排队(per connection queuing)”的机制,以加速所述分组的解码及分类。该网络适配器分配附加队列对,其上可由该网络适配器放置进入分组。映射表可便于此路由。在该映射表中所包括的为“元组(tuple)”、以及与该元组相关联的分组要被传递到哪个队列队的指示。元组为各种网络及目的地地址的组合,其唯一地识别会话。该元组的使用允许该网络适配器将所述分组自动地分类到不同的队列对,其接着允许分区立即开始处理,而不是首先需要冗长的预处理(其可能很长)来分类所述进入分组。问题在于:该网络适配器仅支持该映射表中的固定数目的记录(资源),且这些资源必须在所述逻辑分区间共享。
用于共享所述资源的一种现行技术为可用资源到所述分区的专用固定分配。此技术的缺点在于:经常,许多的资源将不会被使用,例如,因为给定分区当前并未被激活而空闲,或相对较不繁忙,使得该分区并不需要其资源的完全分配。然而,其他分区可能更繁忙,并且,如果仅空闲资源可被分配给它们,则可使用那些空闲资源来加速它们重要的工作。
第二种现今技术尝试监视所述分区对资源的使用,并随着所述分区的需要改变,来重新指定所述资源。此技术具有数个缺点。首先,其需要实时地(或至少适时地)监视所述资源的当前使用。其次,期望的使用(例如,分区会期望比其当前的资源分配更多)也需要被确定,其会需要与每个分区进行通信。第三,问题会随着瞬时的资源需求而发生,其中会存在充分的等待时间,使得所述资源需要将在有能力影响所述资源分配的变化之前再次改变。第四,难以确定被指定给不同分区的所述资源的相对值。最后,确定如何最有效率地分配所述资源会难以实现,这是因为,不同的分区会具有不同的目标及不同的优先级。例如,一个分区可能期望减少等待时间,而另一个分区可能期望增加吞吐量。作为另一示例,一个分区可能使用该资源来执行很重要的工作,而另一分区执行较不重要的工作或,仅因为其资源可用,所以使用该资源,并且,该资源在不同的分区中可能会有更好的用处。
发明内容
根据第一方面,提供了一种方法,其包括:从第一请求分区接收第一分配请求,其中该第一分配请求包括元组及队列的标识符;从多个资源之中选择所选择的资源,其中所选择的资源被分配到选择的分区;以及分配所选择的资源到该第一请求分区,其中该分配还包括:将该元组至该队列的映射存储到所选择的资源中。
根据第二方面,提供了一种编码有指令的存储介质,其中所述指令在被执行时包括:从第一请求分区接收第一分配请求,其中该第一分配请求包括元组及队列的标识符;决定多个资源的全部均被分配;响应于该决定,从所述多个资源之中选择所选择的资源,其中所选择的资源被分配到选择的分区;以及分配所选择的资源到该第一请求分区,其中该分配还包括:将该元组至该队列的映射存储到所选择的资源中。
根据第三方面,提供了一种计算机,其包括:处理器;存储器,其以通信方式连接至该处理器,其中该存储器编码指令,其中所述指令在由该处理器执行时包括从第一请求分区接收第一分配请求,其中该第一分配请求包括元组及队列的标识符,决定多个资源的全部均被分配,响应于该决定,从所述多个资源之中选择所选择的资源,其中所选择的资源被分配到选择的分区;以及网络适配器,其以通信方式连接至该处理器,其中该网络适配器包括逻辑和所述多个资源,且其中该逻辑通过将该元组到该第队列的映射存储到所选择的资源中,以分配所选择的资源到该第一请求分区。
可以计算机软件的方式实现本发明。
优选地,提供增进的技术,其在所有分区中更有效率地利用该网络适配器的可用资源。
提供了一种方法、装置、***及存储介质。在实施例中,从请求分区接收第一分配请求。该第一分配请求包括元组、队列的标识符、及第一优先级。响应于接收到该第一分配请求,如果没有资源为空闲,则选择已经以第二优先级而分配给所选择的分区的资源。然后所选择的资源被分配给该请求分区。该分配包括将该元组对该队列的映射存储到所选择的资源中。在实施例中,通过确定该分配请求的第一优先级高于至所选择的分区的分配的第二优先级,并通过确定与以第二优先级分配给其他分区的资源的百分比相比、所选择的分区被分配有其以第二优先级被分配的资源的最高百分比,来选择该资源,其中第二优先级为所分配的资源的最低优先级。在另一实施例中,通过确定第一优先级低于或等于当前被分配的所有资源的优先级,并通过确定该请求分区具有比所选择的分区的以第二优先级分配的资源的上限的百分比小的、以第一优先级分配的资源的上限的百分比,来选择该资源,其中第二优先级等于第一优先级。依此方式,在实施例中,资源更有效地被分配给分区,这增加分组处理的性能。
附图说明
现在,将仅通过示例的方式并参照附图来描述本发明的优选实施例。
图1绘出了用于实施本发明的实施例的示例***的高级框图。
图2绘出了根据本发明的实施例的示例网络适配器的框图。
图3绘出了根据本发明的实施例的示例分区的框图。
图4绘出了根据本发明的实施例的配置请求的示例数据结构的框图。
图5绘出了根据本发明的实施例的资源限制的示例数据结构的框图。
图6绘出了根据本发明的实施例的配置数据的示例数据结构的框图。
图7绘出了根据本发明的实施例的配置及激活请求的示例处理的流程图。
图8绘出了根据本发明的实施例的分配请求的示例处理的流程图。
图9绘出了根据本发明的实施例的用于确定是否分配的资源应该被预占的示例处理的流程图。
图10绘出了根据本发明的实施例的用于预占资源的分配的示例处理的流程图。
图11绘出了根据本发明的实施例的用于解除分配(deallocate)资源的示例处理的流程图。
图12绘出了根据本发明的实施例的用于接收分组的示例处理的流程图。
图13绘出了根据本发明的实施例的解除激活(deactivate)分区的示例处理的流程图。
图14绘出了根据本发明的实施例的处理保存的分配请求的示例处理的流程图。
但是,可注意到,附图仅例示本发明的示例实施例,因此其不应视为本发明的范畴的限制,因为本发明可允许其他同等有效的实施例。
具体实施方式
在一实施例中,网络适配器具有被多路复用到多个逻辑端口的物理端口。每个逻辑端口具有缺省队列。该网络适配器还具有可被分配给任何逻辑端口的附加队列。该网络适配器具有元组与队列之间的映射(也被称为资源)表。由在所述分组的字段中的数据的组合得到所述元组。该网络适配器基于分组中的元组与在该表中的所述资源,确定该缺省队列或另一队列是否应接收该分组。如果从该进入分组得到的元组符合于(match)该表中的元组,则该网络适配器路由该分组到该元组的相对应指定的队列;否则,该网络适配器路由该分组到由该分组所指定的该逻辑端口的缺省队列。分区通过发送分配请求到超级管理器来请求所述队列及所述元组的资源的分配。如果没有资源为空闲或未被分配,则已经分配的资源被选择,且其分配被预占,使得所选择的资源可被分配给请求分区。依此方式,在一实施例中,资源被更有效地分配给分区,这增加分组处理的性能。
参照所述图,其中类似的编号代表所有图中类似的部件,图1绘出了根据本发明的一实施例的、经由网络130连接至硬件管理控制台计算机***132及客户端计算机***135的服务器计算机***100的高级框图。此处所使用的术语“客户端”及“服务器”仅为了方便起见,而在各个实施例中,在一个环境中作为客户端操作的计算机***在另一个环境中可作为服务器操作,反之亦然。在一实施例中,计算机***100、132及135的硬件组件可从纽约Armonk的国际商用机器公司可得到的
Figure GPA00001035106200061
System i5计算机***所实施。(IBM是国际商用机器公司在美国和其它国家中的注册商标。)但是,本领域的技术人员将可了解到本发明的实施例的机制及装置可同等地应用到任何适当的计算***。
计算机***100的主要组件包括一个或多个处理器101、主存储器102、终端接口111、存储接口112、I/O(输入/输出)装置接口113、及网络适配器114,其所有均直接或间接通信式地耦接,用于经由存储器总线103、I/O总线104及I/O总线接口单元105的组件间通信。
计算机***100包括一个或多个通用可编程中央处理单元(CPU)101A、101B、101C及101D,在此处皆称之为处理器101。在一实施例中,计算机***100包括典型为相对大的***的多重处理器(multiple processors);但是,在另一实施例中,计算机***100可替换地为单个CPU***。每个处理器101执行存储在主存储器102中的指令,并可包括一级或多级的板载高速缓存器。
主存储器102为随机存取半导体存储器,用于存储或编码数据及程序。在另一实施例中,主存储器102表示计算机***100的整个虚拟存储器,并还可包括耦接到计算机***100或经由网络130连接的其他计算机***的虚拟存储器。主存储器102在概念上为单个单片实体,但在其他实施例中,主存储器102是更加复杂的配置,例如高速缓存器及其他存储器装置的层级架构。例如,存储器可存在于多级的高速缓存器中,且这些高速缓存器还可由功能来区分,使得一个高速缓存器保存指令,而另一个保存非指令数据,其由该处理器或多个处理器使用。存储器还可分布及关联于不同的CPU或CPU的集合,如多种所谓的非一致存储器存取(NUMA)计算机架构的任何一个中所知的。
主存储器102存储或编码分区150-1与150-2、超级管理器152、资源限制154及配置数据156。虽然分区150-1与150-2,超级管理器152、资源限制154及配置数据156被图解成包括在计算机***100中的存储器102内,但在其他实施例中,它们中的某些或全部可在不同的计算机***上,并可被远程访问(例如经由网络130)。计算机***100可使用虚拟寻址机制,其可允许计算机***100的程序如同它们仅有权访问大的单个存储实体那样工作,而非对多个较小的存储实体访问。因此,尽管分区150-1与150-2、超级管理器152、资源限制154及配置数据156被图解成包括在主存储器102内,但这些组件不必要全部完全同时包括在同一存储装置中。另外,虽然分区150-1与150-2、超级管理器152、资源限制154及配置数据156被图解为独立的实体,但在其他实施例中,它们中的一些、它们中的一些的部分、或所有均可封装在一起。
分区150-1与150-2另外在下面参照图3而描述。超级管理器152激活分区150-1与150-2,并响应于来自硬件管理控制台132的请求,使用资源限制154及配置数据156分配资源到分区150-1与150-2。资源限制154另外在下面参照图5而描述。配置数据156另外在下面参照图6而描述。
在一实施例中,超级管理器152包括:能够在处理器101上执行的指令、或能够由在处理器101上执行的指令所解译的语句,以进行另外在下面参照图7、8、9、10、11、12、13和14所述的功能。在另一实施例中,超级管理器152经由逻辑门、以及取代基于处理器的***或除了基于处理器的***之外的其他硬件装置而在硬件中实施。
存储器总线103提供数据通信路径来在处理器101、主存储器102及I/O总线接口单元105之间传送数据。I/O总线接口单元105还耦接至***I/O总线104,用于传送数据到各种I/O单元及从各种I/O单元传送数据。I/O总线接口单元105通过***I/O总线104,与也被称为I/O处理器(IOP)或I/O适配器(IOA)的多个I/O接口单元111、112、113及114通信。***I/O总线104可以是例如工业标准PCI(***组件接口)总线,或任何其他适合的总线技术。
I/O接口单元支持与多种存储器及I/O装置的通信。例如,终端接口单元111支持附加一个或多个用户终端121,其可包括用户输出装置(例如视频显示设备、扬声器、及/或电视机)及用户输入设备(例如键盘、鼠标、小键盘、触摸板、轨迹球、按钮、光笔或其他指向装置)。
存储接口单元112支持附接一个或多个直接存取存储装置(DASD)125、126及127(它们典型地是旋转磁盘驱动器存储装置,然而它们还可以是其他装置,包括被配置为对主机呈现为单个大的存储装置的磁盘驱动器阵列)。主存储器102的内容视需要可以被存储在直接存取存储装置125、126及127,并从直接存取存储装置125、126及127取出。
I/O装置接口113提供到各种其他输入/输出装置或例如打印机或传真机的其他种类的装置中的任何一个的接口。网络适配器114提供从计算机***100到其他数字装置及计算机***132和135的一个或多个通信路径;这些路径可包括例如一个或多个网络130。
虽然存储器总线103在图1中显示为提供所述处理器101、主存储器102及I/O总线接口105之间的直接通信路径的相对简单的单个总线结构,但是,事实上,存储器总线103可包括多个不同总线或通信路径,其可被布置成多种形式中任何一种,例如在层级式、星型或网状配置中的点对点链接、多级总线、并行及冗余路径,或任何其他适当类型的配置。此外,尽管I/O总线接口105及I/O总线104显示为单个个别的单元,但计算机***100事实上可包括多个I/O总线接口单元105及/或多个I/O总线104。尽管示出了多个I/O接口单元(其将***I/O总线104与走向多个I/O装置的多个通信路径分开),但在其他实施例中,某些或所有的I/O装置直接连接至一个或多个***I/O总线。
在各个实施例中,计算机***100可以是多用户“主机型”计算机***、单个用户***、或服务器或类似的装置,其具有很少或无直接用户接口,但接收来自其他计算机***(客户端)的请求。在其他实施例中,计算机***100可实施成个人计算机、便携式计算机、膝上型或笔记本电脑、PDA(个人数字助理)、平板型计算机、口袋型计算机、电话、寻呼机、汽车、电话会议***、家用电器或任何其他适当种类的电子装置。
网络130可以是任何适当的网络或网络的组合,并可支持任何适当的协议,其可适于至/来自计算机***100、硬件管理控制台132及客户端计算机***135的数据及/或代码的通信。在各个实施例中,网络130可表示存储装置或存储装置的组合,其直接或间接地连接至计算机***100。在实施例中,网络130可支持Infiniband架构。在另一实施例中,网络130可支持无线通信。在另一实施例中,网络130可支持硬接线通信,例如电话线或电缆。在另一实施例中,网络130可支持以太网IEEE(电子和电气工程师协会)802.3规范。在另一实施例中,网络130可以是因特网,并可支持IP(因特网协议)。
在另一实施例中,网络130可以是局域网(LAN)或广域网(WAN)。在另一实施例中,网络130可以是热点服务提供商网络。在另一实施例中,网络130可以是内联网。在另一实施例中,网络130可以是GPRS(通用分组无线电服务)网络。在另一实施例中,网络130可以是FRS(家庭无线电服务)网络。在另一实施例中,网络130可以是任何适当的蜂窝式数据网络或基于蜂窝的无线电网络技术。在另一实施例中,网络130可以是IEEE 802.11B无线网络。在另外一个实施例中,网络130可以是任何适当网络或网络的组合。虽然显示了一个网络130,但在其他实施例中,可以出现任何数目的网络(相同或不同种类的)。客户端计算机***135可包括先前在上文被描述为被包括在服务器计算机***100中的某些或所有的硬件组件。客户端计算机***135经由网络130及网络适配器114发送数据分组到分区150-1与150-2。在多个实施例中,所述数据分组可包括视频、音频、文字、图形、图像、帧、页面、代码、程序或任何其他适当的数据。
硬件管理控制台132可包括先前在上文被描述为被包括在服务器计算机***100中的某些或所有硬件组件。具体地,硬件管理控制台132包括连接至I/O装置192及处理器194的存储器190。存储器190包括配置管理器198及配置请求199。在另一实施例中,配置管理器198及配置请求199可以存储在服务器计算机***100的存储器102中,且配置管理器190可在处理器101上执行。配置管理器198发送配置请求199到服务器计算机***100。配置请求199在下面参照图4另做说明。
在一实施例中,配置管理器198包括能够在处理器194上执行的指令、或能够由在处理器194上执行的指令所解译的语句,以进行另外在下面参照图7及图13所述的功能。在另一实施例中,配置管理器198经由逻辑门、以及替代或除了基于处理器的***之外的其他硬件装置而在硬件中实施。
应了解到,图1意图以高级方式描述服务器计算机***100、网络130、硬件管理控制台132及客户端计算机***135的代表性的主要组件,个别组件可比图1所示要更加复杂,可出现不同于图1中所示的组件的组件、或图1中所示的组件之外的组件,并且这些组件的数目、种类及配置可以改变。此处揭示具有这种额外复杂性或额外变化的几个特定示例;可了解到,这些仅为了示例,并非必要仅为这些变化。
图1所示的多种软件组件及实施本发明各个实施例可以用多种方式实施,包括使用多种计算机软件应用、例程、组件、程序、对象、模块、数据结构等,并在下文中被称为“计算机程序”或简称为“程序”。所述计算机程序典型地包括一个或多个指令,其在不同时间驻留于服务器计算机***100及/或硬件管理控制台132中的多种存储器及存储装置中,且当由服务器计算机***100及/或硬件管理控制台132中的一个或多个处理器所读取及执行时,使得服务器计算机***100及/或硬件管理控制台132执行用以执行包括本发明的一实施例的多种方面的步骤或组件所必要的步骤。
此外,尽管本发明的实施例已经并在下文中将在全功能型计算机***的上下文中描述,但本发明的各个实施例能够以多种形式的程序产品来分发,且本发明可同等地应用,而无关于用于实际进行该分发的信号承载介质的特定类型。定义此实施例的功能的程序可经由可操作地或通信式地连接(直接或间接地)到一个或多个处理器(例如处理器101及194)的多种有形信号承载介质而被传递到服务器计算机***100及/或硬件管理控制台132。该信号承载介质可包括但不限于:
(1)永久存储在不可覆写存储介质(例如附接到计算机***、或在计算机***内的只读存储器装置,诸如,可由CD-ROM驱动器读取的CD-ROM)上的信息;
(2)存储在可覆写存储介质(例如,硬盘驱动器(例如DASD 125、126或127)、主存储器102或190、CD-RW或磁盘)上的可改变信息;或者
(3)通过通信介质(例如,通过计算机或电话网络,例如网络130)传递到服务器计算机***100及/或硬件管理控制台132的信息。
当编码有、或承载指示(direct)本发明的功能的计算机可读取的及可执行的指令时,这些有形的信号承载介质表示本发明的实施例。
本发明的实施例也可被提供(deliver)作为与客户公司、非营利性组织、政府单位、内部组织结构等服务约定的一部分。这些实施例的方面可包括配置用以执行的计算机***、以及利用实施了此处所述的某些或所有方法的计算装置(例如,计算机可读代码、硬件及网页服务)。这些实施例的方面也可包括分析该客户公司、创建响应于该分析的建议、产生用以实施所述建议的部分的计算机可读取代码、将该计算机可读取代码结合为现有的处理、计算机***和计算基础结构、计量此处所述的方法及***的使用、分配费用给用户、以及向用户开出使用这些方法及***的账单。
此外,以下所述的各种程序可基于它们实施在本发明的特定实施例中的应用来识别。但是,下述的任何特定程序术语表仅为了方便而使用,因此本发明的实施例不应该限于仅用于由这些术语表所识别的及/或所暗示的任何特定应用中。
图1所示的示例性环境并非要限制本发明。实际上,可使用其他可替换的硬件及/或软件环境,而不背离本发明的范畴。
图2描绘了根据本发明的实施例的示例网络适配器114的框图。网络适配器114包括(连接至)队列对210-1、210-2、210-10、210-11、210-12、210-13、210-14及210-15。适配器114还包括(连接至)逻辑端口205-1、205-2及205-10。网络适配器114还包括(连接至)资源数据215、逻辑220及物理端口225。逻辑220连接至物理端口225、资源数据215、逻辑端口205-1、205-2及205-10、及队列对210-1、210-2、210-10、210-11、210-12、210-13、210-14及210-15。
在各个实施例中,队列对210-1、210-2、210-10、210-11、210-12、210-13、210-14及210-15、逻辑端口205-1、205-2及205-10、以及资源数据215可经由存储器位置及/或寄存器来实施。逻辑220包括可由逻辑门、模块、电路、芯片或其他硬件组件所实施的硬件。在其他实施例中,逻辑220可由存储在存储器中并在处理器上执行的微代码、指令、或语句所实施。
物理端口225提供网络适配器114与其他形成网络130的一部分的计算机或装置之间的物理接口。物理端口225为插头或电缆连接的插座或其他设备部分。在电气上,构成该插座的几个导体提供了网络适配器114与网络130的装置之间的信号传输。在各个实施例中,物理端口225可经由公端口(具有突出针脚)或母端口(具有设计成接收电缆的该突出针脚的插座)来实施。在各个实施例中,物理端口225可具有多种形状,例如圆形、长方形、正方形、梯形或任何其他适当的形状。在各个实施例中,物理端口225可以是串行端口或并行端口。串行端口经由单个电线对(例如,接地及+/-)一次发送及接收一个比特。并行端口在几组电线上同时发送及接收多个比特。
在物理端口225连接至网络130之后,网络适配器114典型地需要“握手(handshaking)”,其是与当两台传真机进行连接时发生的协商类似的概念,其中传送种类、传输速度及其他必要的信息甚至在数据被发送之前被共享。在一实施例中,物理端口225为可热插拔的,这意味着物理端口225可当网络适配器114已经被启电(接收电力)时被***或连接至网络130。在一实施例中,物理端口225提供即插即用功能,这意味着:网络适配器114的逻辑220被设计为使得一完成热插拔,网络适配器114与所连接的装置就自动开始握手。在一实施例中,特殊软件(称为驱动程序)必须被加载到网络适配器114中,以允许特定装置的通信(正确信号)。
物理端口225具有相关联的物理网络地址。物理端口225自网络130接收那些包括物理端口225的物理网络地址的分组。然后,逻辑220发送或路由该分组到在该分组中被指定了逻辑网络地址的逻辑端口。因此,逻辑220多路复用单个物理端口225以创建多个逻辑端口205-1、205-2及205-10。在一实施例中,逻辑端口205-1、205-2及205-10为逻辑以太网端口,且其每一个具有不同的以太网MAC(介质访问控制)地址。每个分区(操作***或应用)是其特定逻辑端口的唯一拥有者,并具有对其特定逻辑端口的专用访问权。然后,该分区(操作***实例或应用)自关联于由该分区所拥有的该逻辑端口的该队列对取得该分组。被该分区取得该分组的队列对可以是关联于该逻辑端口的缺省队列对(210-1、210-2或210-10)、或逻辑220暂时地经由资源数据215指定到该逻辑端口的另一个队列对(210-11、210-12、210-13、210-14或210-15)。
队列对210-1、210-2、210-10、210-11、210-12、210-13、210-14及210-15为通信链接的逻辑端点。队列对是基于存储器的抽象概念,其中经由应用与装置之间的直接存储器对存储器的传输来实现通信。队列对包括工作请求(WR)的发送及接收队列。在另一实施例中,该队列对架构并非必要,且发送队列及接收队列可独立地封装。每个工作请求包括该消息交易所必要的数据,其包括到注册的缓冲器的指针,以在网络适配器114与网络130之间接收/传送数据。
在一实施例中,该队列对模型具有两种类别的消息交易:发送-接收及远程DMA(直接存储器访问)。为了进行传输,在分区150-1或150-2中的该应用或操作***构造工作请求,并将其记入(post)到被分配到该分区及该逻辑端口的队列对。该记入方法将该工作请求加入到适当的队列对,并向网络适配器114中的逻辑220通知未决操作。在该发送-接收示例中,该目标分区预先记入接收工作请求,其识别将放置进入数据的存储器区域。该源分区记入发送工作请求,其识别要发送的数据。在该源分区上的每个发送操作消耗在该目标分区上的接收工作请求。在此方案中,在该分区中的每个应用或操作***管理其本身的缓冲器空间,且该消息交易的任一端均不具有关于该对等点的注册的缓冲器的明确信息。相反地,远程DMA消息识别该源及目标缓冲器两者。数据可直接写入到远程地址空间或从远程地址空间读取,而不牵涉该目标分区。
资源数据215包括示例记录230、232、234、236及237。在一实施例中,资源数据215具有固定大小及最大数目的记录,使得资源数据215的搜索可以足够快地完成来配合于来自网络130的分组的进入流。在资源数据215中条目或记录(例如,记录230、232、234、236及237)为在逻辑分区150-1与150-2间分配的所述资源。每个记录230、232、234、236及237包括资源标识符字段238、相关联的元组字段240、及相关联的目的地队列对标识符字段242。资源标识符字段238识别该记录或资源。元组字段240包括作为一些分组的属性的数据,并且在各个实施例中,其可包括来自一些接收到或预期会接收到的分组的字段或所述分组的字段的组合的数据。在各个实施例中,元组240可包括发送该分组的源计算机***135的网络(例如IP或因特网协议地址)、所述分组的目的地的网络地址(例如IP或因特网协议地址)(如物理端口225的网络地址)、TCP/UDP(传输控制协议/用户数据报协议)源端口、TCP/UDP目的地端口、用于传输该分组的传输协议、或逻辑端口标识符,其识别作为所述分组的目的地的逻辑端口205-1、205-2或205-10。
目的地队列对标识符字段242识别要接收由元组240识别的分组的队列对。因此,在资源数据215中的每个记录(资源)表示在元组字段240中的数据与在目的地队列对字段242中的数据之间的映射或关联。如果自该接收分组取得的元组符合在资源数据215中的记录(资源)中的元组240,则逻辑220路由、发送或存储该分组到关联于在该记录(资源)中的该元组240的相对应指定的目的地队列对242。例如,如果自该接收分组取得的元组为“元组B”,则逻辑220确定“元组B”在记录232的元组字段240中指定,而“队列对E”在记录232中的相对应的目的地队列对标识符字段242中指定,所以,逻辑220路由、发送或存储该接收分组到队列对E 210-12。
如果自该进入分组取得的元组并不符合在资源数据215中的任何记录(资源)中任何元组240,则逻辑220路由、发送或存储该分组到关联于(或指定于)在该分组中指定的该逻辑端口的该缺省队列对。例如,队列对210-1为指定到逻辑端口205-1的缺省队列对;队列对210-2为指定到逻辑端口205-2的缺省队列对;而队列对210-10为指定到逻辑端口205-10的缺省队列对。因此,例如,如果自该接收分组取得的元组为“元组F”,则逻辑220确定“元组F”并未在资源数据215中的任何记录(资源)的元组字段240中被指定,所以,逻辑220路由、发送或存储该接收分组到队列对210-1、210-2或210-10,其是被指定到由该接收分组指定的该逻辑端口的缺省队列对。
图3绘出了根据本发明的实施例的示例分区150的框图。示例分区150一般表示分区150-1及150-2。分区150包括操作***305、分配请求310及应用315。
操作***305包括能够在处理器101上执行的指令、或能够由在处理器101上执行的指令所解译的语句。操作***305以与非分区的计算机的操作***更为相同的方式控制分区150的主要操作。操作***305执行分区150的基本任务,例如辨识来自终端121的键盘的输入,并发送输出到终端121的显示屏幕。操作***305还可开启及关闭文件或数据对象,并从存储装置125、126及127读取数据,及写入数据到存储装置125、126及127,并控制外设,例如盘驱动器及打印机。
操作***305还可支持多用户、多处理、多任务及多线程操作。在多用户操作中,操作***305可允许两个或更多的用户在不同终端121同时(并发地)执行应用315。在多处理操作中,操作***305可支持在一个以上处理器101上运行应用315。在多处理操作中,操作***305可以支持在多于一个的处理器101上运行应用315。在多任务操作中,操作***305可支持同时执行多个应用315。在多线程操作中,操作***305可支持单个应用的不同部分或不同实例来同时执行。在一实施例中,操作***305可使用驻留于内核之上的从国际商用机器公司可得到的
Figure GPA00001035106200141
操作***来实施。在各个实施例中,不同分区的操作***可为相同,或它们中某些或所有可以不同。(i5/OS是国际商用机器公司在美国、其它国家中的商标、或注册商标、或两者。)
应用315可以是用户应用、第三方应用或OEM(原始设备制造)应用。在各个实施例中,应用315包括能够在处理器101上执行的指令、或能够由在处理器101上执行的指令所解译的语句。
分配请求310包括元组字段320、队列对标识符字段322、优先级字段324、次优先级字段326、及请求分区标识符字段328。元组字段320识别分组或一组分组,其中,对于所述分组,请求分区150期望增加那些分组的处理性能,并请求超级管理器152通过分配网络适配器114中的资源到请求分区150用于那些分组的处理来增加该处理性能。队列对标识符字段322识别被分配给发送分配请求310的分区150的队列对。
优先级字段324识别与此分区或其他分区可发送的其他分配请求相比的、分配请求310的相对优先级。如果优先级字段324指定高优先级资源,则超级管理器152必须分配该资源到该分区,即使超级管理器152必须预占、解除分配、或从另一个分区(其分配具有较低优先级)取走该资源,也是如此。次优先级字段326识别与此分区可发送的具有相同优先级324的其他分配请求相比的、分配请求310的相对次优先级。次优先级字段326的内容用于确定在分区内的资源分配,并允许分区150在该相同分区150内的具有相同优先级级别324的其本身的分配请求之间划分优先级。每个分区独立地决定要使用什么准则来设置此次优先级326。请求分区标识符字段328识别发送分配请求310的此分区150。
分区150的操作***305或应用315响应于确定由元组320识别的分组需要增加它们处理的速度,发送分配请求310到超级管理器152,以便提供较佳的性能。
图4绘出了根据本发明的实施例的配置请求199的示例数据结构的框图。配置管理器198发送配置请求199到超级管理器152,以便控制或限制超级管理器152响应于分配请求310分配到分区150的资源的数目。
配置请求199包括分区标识符字段402、高优先级资源上限字段404、中优先级资源上限字段406、及低优先级资源上限字段408。分区标识符字段402识别配置请求199的限制404、406及408应用到或被指向(direct)的分区150。
高优先级资源上限字段404指定配置管理器198允许超级管理器152分配给由分区标识符字段402识别的分区150的、具有高的相对优先级(最高优先级)的资源的上限或最高数目。如果该分区经由发送指定高的优先级324的分配请求310而请求该高优先级资源的分配,则高优先级资源是必须被分配到该分区的资源。在图4所示的示例数据中,配置请求199指定由分区标识符402识别的该分区仅被允许分配由上限404指定的最多一个高优先级资源。
中优先级资源上限字段406指定配置管理器198允许超级管理器152分配到由分区标识符字段402识别的分区150的、具有中级相对优先级的资源的上限或最高数目。该中优先级比该高优先级低,或是较不重要。在图4所示的示例数据中,配置请求199指定由分区标识符402识别的该分区仅被允许分配由上限406指定的最多五个中优先级资源。
低优先级资源上限字段408指定配置管理器198允许超级管理器152分配到由分区标识符字段402识别的分区150的、具有低相对优先级的资源的上限或最高数目。该低优先级为最低优先级,并低于该中优先级,但在其他实施例中,可使用具有任何适当定义及相对重要性的任何数目的优先级。在图4所示的示例数据中,配置请求199指定由分区标识符402识别的该分区仅被允许分配由上限408指定的最多八个低优先级资源。
图5描绘了根据本发明的实施例的资源限制154的示例数据结构的框图。如果配置请求199符合准则,则超级管理器152将来自超级管理器152从配置管理器198接收的配置请求199的数据加入到资源限制154(对于多种分区),如下面参照图7而进一步描述的。
资源限制154包括示例记录505及510,其每一个包括分区标识符字段515、相关联的高优先级资源数目上限字段520、相关联的中优先级资源数目上限字段525、以及相关联的低优先级资源数目上限字段530。
分区标识符字段515识别关联于各个记录的分区150。
高优先级资源数目上限字段520指定具有配置管理器198允许超级管理器152分配到由分区标识符字段515识别的分区150的、具有高相对优先级的资源的上限或最高数目。
中优先级资源数目上限字段525指定配置管理器198允许超级管理器152分配到由分区标识符字段515识别的分区150的、具有中相对优先级的资源的上限或最高数目。
低优先级资源数目上限字段530指定配置管理器198允许超级管理器152分配到由分区标识符字段515识别的分区150的、具有低相对优先级的资源的上限或最高数目。
图6绘出了根据本发明的实施例的配置数据156的示例性数据结构的框图。配置数据156包括分配的资源602及保存的分配请求604。分配的资源602表示网络适配器114中已经分配给分区150或为空闲的资源。分配的资源602包括示例记录606、608、610、612、614、616、618及620,其每一个包括资源标识符字段630、分区标识符字段632、优先级字段634及次优先级字段636。
资源标识符字段630识别网络适配器114中的资源。分区标识符字段632识别响应于分配请求310而由资源标识符字段630识别的资源被分配到的分区150。也就是说,由分区标识符字段632识别的分区150拥有,并具有对由资源标识符字段630识别的资源的排他使用,且不允许其他分区来使用或存取该资源。优先级字段634识别与至相同或不同分区的其他资源的所有其他分配相比的、至请求分区632的资源630的分配的相对优先级或重要性。优先级字段634依据请求资源630的分配的分配请求310的优先级324设置。次优先级字段636指示与至相同分区632的其他资源的所有其他分配相比的、至请求分区632的资源630的分配的相对优先级或重要性。次优先级字段636的内容依据请求其分配的分配请求310的次优先级326设置。次优先级字段636的内容用于确定单个分区632内的资源分配,并允许分区632在该相同分区632内的具有相同优先级级别634的请求之间划分优先级。每个分区独立地决定要使用什么准则来设置此次优先级636。
保存的分配请求604包括示例记录650及652,其每一个包括元组字段660、队列对标识符662、优先级字段664、次优先级字段666及请求分区标识符字段668。每个记录650及652表示超级管理器152暂时不能完成的分配请求,或表示由另一个较高优先级分配请求所预占的分配。因此,保存的分配请求604表示对当前并未完成的分配的请求。
元组字段660识别分组或一组分组,其中对于所述分组,请求分区668期望增加那些分组的处理性能,并请求超级管理器152通过分配网络适配器114中的资源到分区668用于处理该分组来增加处理性能。队列对标识符字段662识别被请求分配给发送分配请求310的分区668的队列对。
优先级字段664识别与此分区或其他分区可发送的其他分配请求相比的、该记录的分配请求的相对优先级。次优先级字段666识别与此请求分区668可发送的其他分配请求相比的、分配请求的相对次优先级。次优先级字段666的内容用于确定在分区内的资源分配,并允许分区在相同分区内的具有相同优先级级别664的请求之间划分优先级。每个分区独立地确定要使用什么准则来设置此次优先级666。请求分区标识符字段668识别发送该分配请求的分区150。
图7绘出了根据本发明的实施例的配置及激活请求的示例性处理的流程图。控制开始于块700。控制然后继续到块705,其中配置管理器198发送配置请求199到计算机***100,且超级管理器152接收配置请求199。配置管理器198可以响应于经由I/O装置192的用户接口选择或基于程序准则来发送配置请求199。响应于接收配置请求199,超级管理器152从配置数据156的分配的资源602读取记录606、608、610、612、614、616、618及620。
在一实施例中,超级管理器152接收配置请求199,同时,由分区标识符字段402识别的分区150处于未激活。如果超级管理器152接收配置请求199而该分区为激活,则超级管理器152拒绝配置请求199或者不应用配置请求199的改变到资源限制154,直到下次该分区为未激活为止。但是,在另一实施例中,超级管理器152可随时动态地接收及应用配置请求199。
然后,控制继续到块710,其中配置管理器198发送激活请求到计算机***100的超级管理器152。配置管理器198可以响应于经由I/O装置192的用户接口选择或响应于要满足的程序准则,来发送该激活请求。该激活请求指定要被激活的分区。超级管理器152从配置管理器198接收该激活请求,且作为响应,超级管理器152激活由该激活请求指定的分区150。激活该分区包括:分配存储器及一个或多个处理器到所指定的分区150,启动在至少一个处理器101上执行的操作***305,分配队列对到分区150,且可选地开始在至少一个处理器101上执行的分区150的一个或多个应用315。超级管理器152向该分区通知其分配的队列对的标识符。
然后,控制继续到块715,其中(响应于接收配置请求199及/或响应于接收该激活请求),超级管理器152确定配置请求199中的高优先级资源上限404、加上所有分区的资源限制154中的所有高优先级资源上限520的总和是否小于或等于资源数据215中的资源的总数(记录的总数或最大数目)。资源数据215中的记录的总数或最大数目表示网络适配器114中的可分配资源的总数或最大数目。
如果在块715处的确定为真,则配置请求199中的高优先级资源上限404、加上所有分区的资源限制154中的所有高优先级资源上限520的总和小于或等于资源数据215中的资源的总数(网络适配器114中的可分配资源的总数),于是控制继续到块720,其中超级管理器152利用来自配置请求199的数据,加入记录到资源限制154。也就是说,超级管理器152将来自配置请求199的分区标识符402复制到资源限制154中的新记录中的分区标识符515,将来自配置请求199的高优先级资源上限404复制到资源限制154中的新记录中的高优先级资源上限520,将来自配置请求199的中优先级资源上限406复制到资源限制154中的新记录中的中优先级资源上限525,及将来自配置请求199的低优先级资源上限408复制到资源限制154中的新记录中的低优先级资源上限530。
然后控制继续进行到块799,其中图7的逻辑返回。
如果在块715处的确定为假,则高优先级资源上限404、加上所有高优先级资源上限520的总和大于资源数据215中的资源的总数(记录的数目),所以控制继续进行到块730,其中超级管理器152返回错误到配置管理器198,因为网络适配器114并不具有足够的资源来满足该高优先级配置请求。块730的错误通知指示该分区激活的失败,并非配置数据156的设置的失败。换言之,资源限制154反映所有当前激活及运行中的分区,并且,如果一分区的配置请求199在剩余可用的资源限制内符合,则仅允许该分区开始(仅被激活)。然后控制继续进行到块799,其中图7的逻辑返回。
图8描绘了根据本发明的实施例的分配请求的示例处理的流程图。控制开始于块800。然后,控制进行到块805,其中请求分区150(在请求分区150内的操作***305或应用315)构造及发送分配请求310到超级管理器152。请求分区150响应于确定对分组或一组分组的处理需要性能加速或增加,构造及发送分配请求310。分配请求310识别:队列对322,其被分配到该分区(先前在块710处由超级管理器152所分配的);元组320,其识别该分区期望加速的分组;该分区期望分配的资源的优先级324;与分配到此分区150的其他资源相比的、分区150指定的资源的次优先级326;以及请求分区150的分区标识符328。超级管理器152从由请求分区标识符字段328识别的请求分区150接收分配请求310。
然后,控制进行到块810,其中响应于接收分配请求310,超级管理器152确定已经以所请求的优先级324分配(到发送分配请求310的分区328)的资源的数目是否等于分区328在优先级324的上限(对应于优先级324的520、525或530)。超级管理器152通过计数(确定其数目)所分配的资源602中的、具有符合于分区标识符328的分区标识符632且具有符合优先级324的优先级634的所有记录,来做出块810的确定。然后,超级管理器152在资源限制154中找到具有符合分区标识符328的分区标识符515的记录。
然后,超级管理器152在资源限制154的所找到的记录中选择关联于优先级324的字段(520、525或530)。例如,如果优先级324为高,则超级管理器152选择在找到的记录中的高优先级上限字段520;如果优先级324为中,则超级管理器152选择在找到的记录中的中优先级资源上限字段525;及如果优先级324为低,则超级管理器152选择在找到的记录中的低优先级资源上限字段530。然后,超级管理器152比较在资源限制154中所找到的记录中的所选择的字段(520、525或530)内的值、与分配的资源602中的记录的数目的计数。如果它们相同,则块810的确定为真;否则该确定为假。
如果在块810处的确定为真,则已经以请求的优先级324分配(到发送分配请求310的分区328)的资源的数目等于在优先级324的分区328的上限(520、525或530),于是控制继续进行到块815,其中超级管理器152返回错误到发送分配请求310的分区,这是因为,该分区已经被以该优先级级别324而分配了其资源的限制。然后,控制继续进行到块899,其中,图8的逻辑返回。
如果在块810处的确定为假,则已经以请求的优先级324分配(到发送分配请求310的分区328)的资源的数目不等于在优先级324的分区328的上限(取决于优先级324的520、525或530),于是通过请求分区150的额外资源的分配请求将由超级管理器152考虑,于是控制继续进行到块820,其中超级管理器152确定空闲资源(尚未被分配到任何分区的资源)是否存在于分配的资源602中。超级管理器152通过在分配的资源602中搜索未被分配到任何分区的记录(例如,通过搜索其分区标识符632指示个别的资源630并未被分配到任何分区或为空闲的记录),来做出块820的确定。在图6的示例中,记录616、618及620指示它们各自的资源630“资源F”、“资源G”及“资源H”为空闲,这意味着它们未被分配给任何分区。
如果在块820处的确定为真,则空闲资源存在于网络适配器114中,于是控制继续进行到块825,其中超级管理器152将在分配请求310中接收的元组320及队列对322的标识符、以及所找到的空闲资源630的标识符发送到网络适配器114。网络适配器114的逻辑220接收元组320及队列对标识符322,并且,在资源数据215中的记录中,将它们分别存储在元组240及目的地队列对标识符242中。网络适配器114的逻辑220还创建该记录的、符合于所找到的空闲资源630的标识符的资源标识符,并将资源标识符238存储在该记录中。通过将资源标识符238、元组240及队列对标识符242存储在资源数据215中的记录中,网络适配器114将由该记录所表示的该资源分配到拥有由队列对标识符242所识别的队列对的该分区(该请求分区)。因此,该元组到该队列对的映射被存储到所选择的资源中。超级管理器152设置分配的资源602中的分区标识符字段632来指示该资源不再空闲、且现在被分配到该请求分区。然后,控制继续进行到块899,其中,图8的逻辑返回。
如果在块820处的确定为假,则空闲资源并不存在于网络适配器114中,且网络适配器114中的所有资源当前被分配到分区,于是控制继续进行到块830,其中超级管理器152确定是否存在其分配(到此或其他分区)可被预占(改变)的所选择的资源,如下面参照图9进一步说明的。
如果在块830处的确定为真,则存在其分配可被预占的、所选择的资源,于是控制继续进行到块835,其中超级管理器152预占所选择的资源的分配,并分配所选择的资源到该请求分区,如下面参照图10进一步说明的那样。然后,控制继续进行到块899,其中,图8的逻辑返回。
如果在块830处的确定为假,则其分配可被预占的、所选择的资源并不存在,于是控制继续进行到块840,其中超级管理器152将请求310保存到保存的请求604,而不分配任何资源到该请求分区,并且,将暂时失败返回到由请求分区标识符328所识别的分区150。然后,控制继续进行到块899,其中,图8的逻辑返回。
图9描绘了根据本发明的实施例的用于确定分配的资源是否应被预占的示例处理的流程图。控制开始于块900。然后,控制继续进行到块905,其中超级管理器152确定分区请求310的优先级324是否高于(更重要于)被分配到另一个分区(不同于请求分区328)的资源的优先级634(使得该资源要预先被分配的该请求的优先级)。如果在块905处的确定为真,则当前分配请求的优先级324高于(较高于或更重要于)使得该资源被分配到另一个分区的先前分配请求的优先级634(如在分配的资源602中的记录所指示的,其中,分区标识符632不同于请求分区标识符328),于是控制继续进行到块910,其中超级管理器152选择在分配的资源602内的所有记录中的所有优先级中最低的优先级级别634。使用图6的示例,在分配的资源602中的最低优先级为中优先级级别,如记录612及614中所指示的,其低于记录606、608及610的高优先级级别。
然后,控制继续进行到块915,其中超级管理器152选择分区632,其接收其分配的资源630在所选择的优先级级别的最高百分比。使用图6的示例数据,分区B接收其分配的资源的50%在中优先级级别,因为分区B具有在中优先级级别的一个分配的资源(如记录614中所指示的)、以及在高优先级级别的一个分配的资源(如记录610中所指示的)。相反地,分区A接收其总体的分配的资源的33%(跨越所有优先级级别)在中优先级级别,因为分区A具有在中优先级级别的一个分配的资源(如记录612中所指示的)、以及在高优先级级别的两个分配的资源(记录606及608)。因此,分区B接收其总共分配的资源中在中优先级级别的最大百分比,因为50%大于33%。
再次参照图9,然后,控制继续进行到块920,其中,超级管理器152选择与被分配到所选择的分区632的其他资源相比、具有最低次优先级636的被分配到所选择的分区632的资源630。然后,控制继续进行到块999,其中图9的逻辑返回真,并将所选择的资源返回到图9的逻辑的调用方。
如果在块905处的确定为假,则分配请求310的优先级324并不大于(非高于或更重要于)分配到另一分区的资源的优先级634(由分配的资源602中的记录所指示,其中分区标识符632不同于请求分区标识符328),且该分配请求的优先级低于或等于所有当前分配的资源的优先级,于是,控制随后继续进行到块925,其中超级管理器152确定请求分区328是否具有比以优先级634分配给所选择的分区的资源的上限(525或530)的百分比小的、以优先级324所分配的资源的其上限(525或530)的百分比,其中优先级634及324为等同、相等或相同。
如果在块925处的确定为真,则请求分区328具有比以相同优先级634(与优先级324相同的优先级)分配给所选择的分区的资源的上限(525或530)的百分比小的、以优先级324分配的资源的其上限(525或530)的百分比,于是控制继续进行到块930,其中超级管理器152选择具有最低次优先级636的、分配给所选择的分区的资源。然后,控制继续进行到块999,其中图9的逻辑返回真及所选择的资源到图9的逻辑的调用方。
如果在块925处的确定为假,则请求分区328具有大于或等于在相同优先级634(与优先级324相同的优先级)的被分配给所有其他分区的资源的上限(525或530)的百分比的、在优先级324的分配资源的其上限(525或530)的百分比,于是控制继续进行到块935,其中超级管理器152确定请求分区328先前是否已分配了所分配的资源602中的、具有低于分配请求310的次优先级326的次优先级636的资源。
如果在块935处的确定为真,则请求分区328先前分配了所分配的资源602中的、具有低于分配请求310的次优先级326的次优先级636的资源,于是控制继续进行到块940,其中超级管理器152选择这样的资源,其已经被分配(先前经由先前分配请求而被分配)到发送具有最低次优先级636的请求的请求分区328。然后,控制继续进行到块999,其中图9的逻辑返回真,并返回所选择的资源到图9的逻辑的调用方,其中该调用方为图8的逻辑。
如果在块935处的确定为假,则请求分区328先前并未分配所分配的资源602中的、具有低于分配请求310的次优先级326的次优先级636的资源,于是控制继续进行到块998,其中图9的逻辑返回假(指示先前分配的资源并未被允许被预占)到图9的调用方,其中该调用方为图8的逻辑。图10绘出了根据本发明的实施例的用于预占资源的分配的示例处理的流程图。在一实施例中,先前分配的资源的预占包括:将在资源数据215中的记录(资源)所提供的映射从第一元组及第一目的地队列对的第一映射(第一关联)改变为第二元组及第二目的地队列对的第二映射(第二关联)。在各个实施例中,第一目的地队列对及第二目的地队列对可以是相同或不同的队列对。
控制开始于块1000。然后,控制继续进行到块1005,其中超级管理器152发送删除请求到网络适配器114。该删除请求包括作为被预占的资源的、所选择的资源的资源标识符。如先前在上面参考图8的块830及图9的逻辑所述那样,选择所选择的资源。
然后,控制继续进行到块1010,其中网络适配器114从超级管理器152接收该删除请求,并从资源数据215删除由该接收的资源标识符所识别(其资源标识符238符合该删除请求的资源标识符)的记录(或从该记录中删除在元组240中的数据、及目的地队列对标识符242)。然后,控制继续进行到块1015,其中超级管理器152将被预占的资源记录(其资源标识符630符合该删除请求的资源标识符的记录)从分配的资源602移动到保存的请求604,其解除分配所选择的资源。
然后,控制继续进行到块1020,其中超级管理器152发送加入请求到网络适配器114,其中,该加入请求包括被预占的资源的资源标识符、在分配请求310中指定的元组320、及在分配请求310中指定的目的地队列对标识符322。然后,控制继续进行到块1025,其中网络适配器114接收该加入请求,并将新记录加入或存储到资源数据215,其将被预占的资源的资源标识符存储到资源标识符238,将在分配请求310中指定的元组320存储到元组240,并将在分配请求310中指定的目的地队列对标识符322存储到目的地队列对标识符242,其用于将由资源标识符238所识别的该资源(该记录)分配到拥有由目的地队列对标识符242所识别的该目的地队列对的请求分区。因此,该元组至该队列对的映射被存储到所选择的资源中。然后,控制继续进行到块1099,其中,图10的逻辑返回。
图11绘出了根据本发明的实施例的用于解除分配资源的示例处理的流程图。控制开始于块1100。然后,控制继续进行到块1105,其中分区150请求超级管理器152来释放或解除分配资源(其先前被请求分配到该分区),因为该分区不再需要使用该资源的分组的加速性能。该请求包括该资源的资源标识符、元组、及/或该请求分区的标识符。然后,控制继续进行到块1107,其中超级管理器152确定由该释放资源请求所指定的该资源是否在分配的资源602中被指定。
如果在块1107处的确定为真,则由该释放资源请求指定的该资源在分配的资源602中,这意味着该资源被分配,于是控制继续进行到块1110,其中超级管理器152从分配的资源602移除具有符合该解除分配请求的所请求的资源标识符的资源标识符630的记录,或在该记录中设置分区标识符632以指示由资源标识符630所识别的该资源为自由、空闲、解除分配、或当前未分配给任何分区。然后,控制继续进行到块1115,其中超级管理器152发送删除请求到网络适配器114。该删除请求指定在该解除分配请求中被指定的资源标识符。然后,控制继续进行到块1120,其中网络适配器114接收该删除请求,并从资源数据215删除包括符合由该删除请求指定的该资源标识符的资源标识符238的记录。该资源现在被解除分配。
然后,控制继续进行到块1125,其中超级管理器152确定保存的分配请求604是否包括至少一个保存的请求。如果在块1125处的确定为真,则保存的分配请求604包括期望资源分配的保存的请求,于是控制继续进行到块1130,其中超级管理器152找到保存的请求,并分配用于其的资源,如下面参照图14进一步所述的那样。然后,控制继续进行到块1199,其中,图11的逻辑返回。
如果在块1125处的确定为假,则保存的分配请求604并不包括保存的请求,于是控制继续进行到块1199,其中,图11的逻辑返回。
如果在块1107处的确定为假,则由该释放(解除分配)资源请求所指定的资源并不在分配的资源602中,于是控制继续进行到块1135,其中超级管理器152在保存的请求604中找到具有符合由该解除分配请求所指定的元组及请求分区标识符的元组660及分区标识符668的记录,并从保存的请求604移除该找到记录。然后,控制继续进行到块1199,其中,图11的逻辑返回。
图12绘出了根据本发明的实施例的用于从该网络接收分组的示例处理的流程图。控制开始于块1200。然后,控制继续进行到块1205,其中网络适配器114中的物理端口225从网络130接收数据分组。接收的数据分组包括符合物理端口225的网络地址的物理端口地址。
然后,控制继续进行到块1210,其中网络适配器114中的逻辑220从接收分组中读取元组,或从在所接收的分组中的数据的组合创建元组。然后,控制继续进行到块1215,其中逻辑220向资源数据215搜索符合在该分组中的或从该分组创建的元组的元组240。然后,控制进行到块1220,其中逻辑220确定是否找到资源数据215中的符合在该分组中的或从该分组创建的元组的元组240。
如果在块1220处的确定为真,则逻辑220在资源数据215中找到具有符合于在该分组中的元组的元组240的记录(资源),这意味着对于该分组的元组而分配了资源,于是控制继续进行到块1225,其中逻辑220从关联于所找到的元组240的资源数据记录中读取目的地队列对标识符242。然后,控制继续进行到块1230,其中逻辑220发送该分组到由所找到的记录(资源)中的目的地队列对标识符242所识别的该队列对(将该分组存储在该队列对中)。
然后,控制继续进行到块1235,其中被分配了该资源的分区632(所分配的资源602中的具有符合对于接收的元组240的资源标识符238的资源标识符630的记录中的分区632)从由目的地队列对标识符242识别的该队列对取得该分组。然后,控制继续进行到块1236,其中在由分区标识符632所识别的分区150中的操作***305(或其他代码)将该分组路由到目标应用315及/或目标应用315的会话,其被分配了由目的地队列对标识符242所识别的队列对。然后,控制继续进行到块1299,其中,图12的逻辑返回。
如果在块1220处的确定为假,则逻辑220并未在资源数据215中找到符合所该接收分组中(或从其创建)的元组的元组240,因此该接收分组的元组尚未被分配资源,于是控制继续进行到块1240,其中逻辑220将所接收的分组发送(存储)到关联于或指定到由该接收分组所指定的该逻辑端口的缺省队列对。
然后,控制继续进行到块1245,其中超级管理器152确定作为该分组的目标目的地的分区,并通知该分区。响应于该通知,该分区(操作***305)从该缺省队列取得该分组。然后,控制继续进行到块1250,其中在由分区标识符632所识别的分区150中的操作***305(或其他码)读取该分组,从该分组中的数据确定目标应用315及/或目标应用315的会话,并将该分组路由到所确定的目标应用。在一实施例中,操作***305读取该分组的TCP/IP堆栈,以便确定该目标应用。然后,控制继续进行到块1299,其中,图12的逻辑返回。
在一实施例中,块1250的处理比块1236的处理慢,因为块1250的处理需要通过审查(interrogate)该接收的分组中的数据来确定该目标应用及/或会话,所以本发明的一实施例(由块1225、1230、1235及1236的处理所示的)通过利用选择性分配资源到元组240至目的地队列对标识符242的映射,提供较佳的性能。
图13绘出了根据本发明的一实施例的用于解除激活分区的示例处理的流程图。控制开始于块1300。然后,控制继续进行到块1305,其中超级管理器152接收来自配置管理器198的解除激活请求,且作为响应,解除激活分区150。超级管理器152可以例如通过停止在处理器101上的操作***305与应用315的执行,并通过解除激活被分配到分区150的资源,来解除激活分区150。
控制继续进行到块1307,其中超级管理器152通过例如将指定所解除激活的分区的记录的分区标识符字段632改变为指示由相应资源字段630所识别的资源为空闲、或当前未被分配到任何分区,将分配的资源602中的分配到解除激活的分区的所有资源改变为指示该资源为空闲、自由或解除分配。然后,控制继续进行到块1310,其中超级管理器152从保存的请求604移除对于该解除激活的分区的所有资源请求。例如,超级管理器152在保存的分区604中找到在请求分区标识符字段668中指定该解除激活的分区的所有记录,并从保存的分配请求604中移除那些找到的记录。
然后,控制继续进行到块1315,其中超级管理器152从资源限制154移除该解除激活的分区的所有限制。例如,超级管理器152在资源限制154中找到在分区标识符字段515中指定该解除激活的分区的所有记录,并从资源限制154中移除那些找到的记录。
然后,控制继续进行到块1317,其中超级管理器152发送删除请求到网络适配器114,其指定分配到该解除激活的分区的所有资源。然后,控制继续进行到块1320,其中网络适配器114接收该删除请求,并从资源数据215删除其资源标识符238符合在分配的资源602中的具有符合该解除激活的分区的分区标识符632的记录中的资源标识符630的记录。然后,控制继续进行到块1325,其中超级管理器152确定分配的资源602是否具有空闲资源,且保存的分配请求604是否包括至少一个保存的请求(具有至少一个记录)。
如果在块1325处的确定为真,则分配的资源602具有空闲资源,且保存的分配请求604包括至少一个存储的请求,于是控制继续进行到块1330,其中超级管理器152通过找到保存的请求并为其分配资源,来处理该保存的请求,如在下面参照图14而进一步所述的。然后,控制继续进行到块1325,如前所述。
如果在块1325处的确定为假,则分配的资源602并不具有空闲资源,或保存的分配请求604并不包括保存的请求,于是控制继续进行到块1399,其中,图13的逻辑返回。
图14描绘了根据本发明的实施例的用于处理保存的分配请求的示例处理的流程图。控制开始于块1400。然后,控制继续进行到块1405,其中超级管理器152选择保存的请求604中的最高优先级级别664。(在图6的示例中,在保存的分配请求604中的所有请求的最高优先级级别为“中”,如记录650中所示,其高于记录652的“低”优先级)。
然后,控制继续进行到块1410,其中超级管理器152选择分区668,其具有以所选择的最高优先级级别所分配的资源的其上限(取决于所选择的优先级级别,为520、525或530)的最低百分比。在图5及图6的示例中,分区A及分区B均具有以中优先级级别分配的一个资源,如在记录612及614中所示;且分区A的中优先级资源525的上限为“5”,如在记录505中所示;而分区B的中优先级资源525的上限为“2”,如在记录510中所示。因此,分区A的所分配的中优先级资源其上限的百分比为20%(1/5*100),而分区B的所分配的中优先级资源其上限的百分比为50%(1/2*100),所以分区A具有由中优先级请求分配的资源上限的最低百分比,因为20%<50%。
然后,控制继续进行到块1415,其中超级管理器152选择具有最高次优先级666的保存的请求(其由选择的分区668所启动)。然后,控制继续进行到块1420,其中超级管理器152发送加入请求到网络适配器114,其中,该加入请求包括空闲资源的资源标识符、所选择的保存的请求的元组660、及所选择的保存的请求的目的地队列对标识符662。
然后,控制继续进行到块1425,其中网络适配器114接收该加入请求,并将新记录加入到资源数据215,其中该新记录包括该加入请求中所指定的资源标识符238、元组240和目的地队列对标识符242。然后,控制继续进行到块1430,其中超级管理器152通过从保存的请求604中移除所选择的保存的请求,并通过将该资源从所保存的请求加入到分配的资源602,来更新配置数据156,其中该资源包括该资源标识符、该分区标识符、该优先级及该次优先级。然后控制继续进行到块1499,其中,图14的逻辑返回。
在先前对本发明的示例性实施例的详细说明中,对附图进行参照(其中类似的编号代表类似的组件),其形成该详细说明的一部分,且其中,通过例示可实施本发明的特定示例性实施例所示。这些实施例以充分的细节来描述,使得本领域的技术人员可以实施本发明,但其他实施例可被利用,且可在不背离本发明的范畴的情况下进行逻辑、机械、电气及其他改变。在先前说明中,提出许多特定细节,以提供对于本发明的实施例的完整了解。但是,本发明可不利用这些特定细节来实施。在其他实例中,熟知的电路、结构及技术并未详细显示,以便不会混淆本发明。
在本说明中使用的词语“实施例”的不同实例并不必须指相同的实施例,但它们可以指相同的实施例。此处所例示或描述的任何数据及数据结构仅为示例,且在其他实施例中,可以使用不同的数据量、数据类别、字段、字段的数目及类别,字段名称、行的数目及类别、记录、条目或数据的组织。此外,任何数据可与逻辑结合,使得独立数据结构并不是必须的。因此,先前的详细说明并非以限制性来看待,且本发明的范畴仅由所附的权利要求所定义。

Claims (35)

1.一种方法,包括:
从第一请求分区接收第一分配请求,其中,该第一分配请求包括元组、以及队列的标识符;
从多个资源之中选择所选择的资源,其中,所选择的资源被分配到所选择的分区;及
将所选择的资源分配到该第一请求分区,其中,所述分配还包括:将该元组至该队列的映射存储到所选择的资源中。
2.如权利要求1所述的方法,其中,该第一分配请求还包括第一优先级,其中,所选择的分区发送包括第二优先级的第二分配请求,且其中,所述选择还包括:
确定该第一优先级高于该第二优先级;及
确定与以该第二优先级分配到多个分区中的其他分区的资源的百分比相比,所选择的分区被分配了其以该第二优先级被分配的资源的最大百分比。
3.如权利要求2所述的方法,其中所述选择还包括:
选择该第二优先级,作为向所述多个资源指定的最低优先级。
4.如权利要求3所述的方法,其中,所述选择还包括:
选择具有被分配到该所选择的分区的所述资源中的最低次优先级的所选择的资源。
5.如权利要求1所述的方法,其中,该第一分配请求还包括第一优先级,其中,所选择的分区发送包括第二优先级的第二分配请求,且其中,所述选择还包括:
确定该第一优先级低于或等于当前被分配的所述多个资源的全部的优先级;及
确定与所选择的分区在该第二优先级相比,该第一请求分区具有在该第一优先级的所述多个资源的数目的其上限的更低的百分比,其中该第一优先级与该第二优先级相等。
6.如权利要求5所述的方法,其中,所述选择还包括:
选择具有向被分配到该所选择的分区的资源指定的最低次优先级的所选择的资源。
7.如权利要求1所述的方法,其中,该第一分配请求还包括第一优先级,且其中,所述选择还包括:
确定该第一优先级低于或等于当前被分配的所述多个资源的全部的优先级;
确定与所有其它分区在该第一优先级的其上限相比,该第一请求分区具有以该第一优先级分配的所述多个资源的数目的其上限的更高的百分比;及
选择与已经被分配到该第一请求分区的所述资源相比、具有最低次优先级的所选择的资源。
8.如任何前述权利要求所述的方法,还包括:
从网络接收分组;
确定该分组中的数据符合该元组;及
将该分组存储在由该映射指定的队列中。
9.如任何前述权利要求所述的方法,还包括:
从该第一请求分区接收解除分配请求;
从多个保存的请求之中选择第一保存的请求,其中,先前从第二请求分区接收该第一保存的请求,并当所述多个资源的全部被分配且不能够被预占时,保存该第一保存的请求;及
将所选择的资源分配到该第二请求分区。
10.如权利要求9所述的方法,其中,选择该第一保存的请求还包括:
选择所述多个保存的请求的最高优先级;
选择第二选择的分区,其具有以该最高优先级分配的所述多个资源的其上限的最低百分比;及
选择由具有最高次优先级的该第二选择的分区发送的该第一保存的请求。
11.如任何前述权利要求所述的方法,还包括:
设置该请求分区被允许以该第一优先级分配的、所述多个资源的数目的上限。
12.如任何前述权利要求所述的方法,还包括步骤:
决定多个资源的全部均被分配,且其中,所述从多个资源之中选择所选择的资源的步骤响应于所述决定。
13.一种编码有指令的存储介质,其中,所述指令在被执行时包括:
从第一请求分区接收第一分配请求,其中该第一分配请求包括元组、以及队列的标识符;
决定多个资源的全部均被分配;
响应于所述决定,从所述多个资源之中选择所选择的资源,其中,所选择的资源被分配到所选择的分区;及
将所选择的资源分配到该第一请求分区,其中,所述分配还包括:将该元组至该队列的映射存储到所选择的资源中。
14.如权利要求13所述的存储介质,其中,该第一分配请求还包括第一优先级,其中,所选择的分区发送包括第二优先级的第二分配请求,且其中,所述选择还包括:
确定该第一优先级高于该第二优先级;及
确定与以该第二优先级分配到多个分区中的其他分区的资源的百分比相比,所选择的分区被分配了其以该第二优先级被分配的资源的最大百分比。
15.如权利要求14所述的存储介质,其中所述选择还包括:
选择该第二优先级,作为所述多个资源的最低优先级。
16.如权利要求15所述的存储介质,其中所述选择还包括:
选择具有被分配到该所选择的分区的所述资源的最低次优先级的所选择的资源。
17.如权利要求13所述的存储介质,其中,该第一分配请求还包括第一优先级,其中,所选择的分区发送包括第二优先级的第二分配请求,且其中,所述选择还包括:
确定该第一优先级低于或等于当前被分配的所述多个资源的全部的优先级;及
确定与所选择的分区在该第二优先级相比,该第一请求分区具有在该第一优先级的所述多个资源的数目的其上限的更低的百分比,其中该第一优先级与该第二优先级相等。
18.如权利要求17所述的存储介质,其中所述选择还包括:
选择具有向被分配到该所选择的分区的资源指定的最低次优先级的所选择的资源。
19.如权利要求13所述的存储介质,其中,该第一分配请求还包括第一优先级,且其中,所述选择还包括:
确定该第一优先级低于或等于当前被分配的所述多个资源的全部的优先级;
确定与所有其它分区在该第一优先级的其上限相比,该第一请求分区具有以该第一优先级分配的所述多个资源的数目的其上限的更高的百分比;及
选择与已经被分配到该第一请求分区的所述资源相比、具有最低次优先级的所选择的资源。
20.如权利要求13至19中的任一个所述的存储介质,还包括:
从网络接收分组;
确定该分组中的数据符合该元组;及
将该分组存储在由该映射指定的队列中。
21.如权利要求13至20中的任一个所述的存储介质,还包括:
从该第一请求分区接收解除分配请求;
从多个保存的请求之中选择第一保存的请求,其中,先前从第二请求分区接收该第一保存的请求,并当所述多个资源的全部被分配且不能够被预占时,保存该第一保存的请求;及
将所选择的资源分配到该第二请求分区。
22.如权利要求21所述的存储介质,其中,选择该第一保存的请求还包括:
选择所述多个保存的请求的最高优先级;
选择第二选择的分区,其具有以该最高优先级分配的所述多个资源的其上限的最低百分比;及
选择由具有最高次优先级的该第二选择的分区发送的该第一保存的请求。
23.如权利要求13至22中的任一个所述的存储介质,还包括:
设置该请求分区被允许以多个优先级分配的、所述多个资源的数目的上限。
24.一种计算机,包括:
处理器;
存储器,其以通信方式连接至该处理器,其中,该存储器编码指令,其中所述指令在由该处理器执行时包括:
从第一请求分区接收第一分配请求,其中该第一分配请求包括元组、以及队列的标识符;
决定多个资源的全部均被分配,响应于所述决定,从所述多个资源之中选择所选择的资源,其中,所选择的资源被分配到所选择的分区;及
网络适配器,其以通信方式连接至该处理器,其中该网络适配器包括逻辑和所述多个资源,且其中,该逻辑通过将该元组至该队列的映射存储到所选择的资源中,来将所选择的资源分配到该第一请求分区。
25.如权利要求24所述的计算机,其中,该第一分配请求还包括第一优先级,其中,所选择的分区发送包括第二优先级的第二分配请求,且其中,所述选择还包括:
确定该第一优先级高于该第二优先级;及
确定与以该第二优先级分配到多个分区中的其他分区的资源的百分比相比,所选择的分区被分配了其以该第二优先级被分配的资源的最大百分比。
26.如权利要求25所述的计算机,其中,所述选择还包括:
选择该第二优先级,作为所述多个资源的最低优先级。
27.如权利要求26所述的计算机,其中,所述选择还包括:
选择具有被分配到该所选择的分区的所述资源的最低次优先级的所选择的资源。
28.如权利要求24所述的计算机,其中,该第一分配请求还包括第一优先级,其中,所选择的分区发送包括第二优先级的第二分配请求,且其中,所述选择还包括:
确定该第一优先级低于或等于当前被分配的所述多个资源的全部的优先级;及
确定与所选择的分区在该第二优先级相比,该第一请求分区具有在该第一优先级的所述多个资源的数目的其上限的更低的百分比,其中该第一优先级与该第二优先级相等。
29.如权利要求28所述的计算机,其中,所述选择还包括:
选择具有向被分配到该所选择的分区的资源指定的最低次优先级的所选择的资源。
30.如权利要求24所述的计算机,其中,该第一分配请求还包括第一优先级,且其中,所述选择还包括:
确定该第一优先级低于或等于当前被分配的所述多个资源的全部的优先级;
确定与所有其它分区在该第一优先级的其上限相比,该第一请求分区具有以该第一优先级分配的所述多个资源的数目的其上限的更高的百分比;及
选择与已经被分配到该第一请求分区的所述资源相比、具有最低次优先级的所选择的资源。
31.如权利要求24至30中的任一个所述的计算机,其中,该逻辑还包括:从网络接收分组,如果在该分组中的数据符合该元组,则将该分组存储在由该映射所指定的该第一队列中,且如果该分组中的该数据并不符合该元组,则将该分组存储在与由该分组指定的逻辑端口关联的缺省队列中。
32.如权利要求24至31中的任一个所述的计算机,其中,所述指令还包括:
从该第一请求分区接收解除分配请求;
从多个保存的请求之中选择第一保存的请求,其中,先前从第二请求分区接收该第一保存的请求,并当所述多个资源的全部被分配且不能够被预占时,保存该第一保存的请求;及
其中,该逻辑还将所选择的资源分配到该第二请求分区。
33.如权利要求32所述的计算机,其中,选择该第一保存的请求还包括:
选择所述多个保存的请求的最高优先级;
选择第二选择的分区,其具有以最高优先级分配的所述多个资源的其上限的最低百分比;及
选择由具有最高次优先级的该第二选择的分区发送的该第一保存的请求。
34.如权利要求24至33中的任一个所述的计算机,其中所述指令还包括:
设置该请求分区被允许以多个优先级分配的、所述多个资源的数目的多个上限。
35.一种计算机程序,包括程序代码部件,其被适配为当在计算机上运行所述程序时,执行权利要求1至12中的任一个所述的方法。
CN2008801042019A 2007-08-24 2008-08-21 在逻辑分区之间分配网络适配器资源的方法和*** Expired - Fee Related CN101784989B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/844,434 2007-08-24
US11/844,434 US20090055831A1 (en) 2007-08-24 2007-08-24 Allocating Network Adapter Resources Among Logical Partitions
PCT/EP2008/060919 WO2009027300A2 (en) 2007-08-24 2008-08-21 Allocating network adapter resources among logical partitions

Publications (2)

Publication Number Publication Date
CN101784989A true CN101784989A (zh) 2010-07-21
CN101784989B CN101784989B (zh) 2013-08-14

Family

ID=40332877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008801042019A Expired - Fee Related CN101784989B (zh) 2007-08-24 2008-08-21 在逻辑分区之间分配网络适配器资源的方法和***

Country Status (10)

Country Link
US (1) US20090055831A1 (zh)
EP (1) EP2191371A2 (zh)
JP (1) JP5159884B2 (zh)
KR (1) KR101159448B1 (zh)
CN (1) CN101784989B (zh)
BR (1) BRPI0815270A2 (zh)
CA (1) CA2697155C (zh)
IL (1) IL204237B (zh)
TW (1) TWI430102B (zh)
WO (1) WO2009027300A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103164284A (zh) * 2011-08-08 2013-06-19 Arm有限公司 支持不同优先级事务请求的集成电路中的处理资源分配
CN105830408A (zh) * 2013-12-20 2016-08-03 瑞典爱立信有限公司 脑裂情况期间的资源的分配
CN113950814A (zh) * 2019-06-04 2022-01-18 微软技术许可有限责任公司 通过端口复用的多点会议会话

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7586936B2 (en) * 2005-04-01 2009-09-08 International Business Machines Corporation Host Ethernet adapter for networking offload in server environment
US8719831B2 (en) * 2009-06-18 2014-05-06 Microsoft Corporation Dynamically change allocation of resources to schedulers based on feedback and policies from the schedulers and availability of the resources
US8446824B2 (en) * 2009-12-17 2013-05-21 Intel Corporation NUMA-aware scaling for network devices
KR20110094764A (ko) * 2010-02-17 2011-08-24 삼성전자주식회사 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법
US8589941B2 (en) * 2010-04-23 2013-11-19 International Business Machines Corporation Resource affinity via dynamic reconfiguration for multi-queue network adapters
US8468551B2 (en) * 2010-06-30 2013-06-18 International Business Machines Corporation Hypervisor-based data transfer
US9721215B2 (en) * 2010-06-30 2017-08-01 International Business Machines Corporation Enhanced management of a web conferencing server
US9411517B2 (en) * 2010-08-30 2016-08-09 Vmware, Inc. System software interfaces for space-optimized block devices
US9055003B2 (en) 2011-03-03 2015-06-09 International Business Machines Corporation Regulating network bandwidth in a virtualized environment
KR101859188B1 (ko) 2011-09-26 2018-06-29 삼성전자주식회사 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법
US9311122B2 (en) * 2012-03-26 2016-04-12 Oracle International Corporation System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment
US9432304B2 (en) 2012-03-26 2016-08-30 Oracle International Corporation System and method for supporting live migration of virtual machines based on an extended host channel adaptor (HCA) model
WO2013184121A1 (en) * 2012-06-07 2013-12-12 Hewlett-Packard Development Company, L.P. Multi-tenant network provisioning
US9104453B2 (en) 2012-06-21 2015-08-11 International Business Machines Corporation Determining placement fitness for partitions under a hypervisor
CN103516536B (zh) * 2012-06-26 2017-02-22 重庆新媒农信科技有限公司 基于线程数量限制的服务器业务请求并行处理方法及***
US20140007097A1 (en) * 2012-06-29 2014-01-02 Brocade Communications Systems, Inc. Dynamic resource allocation for virtual machines
US10581763B2 (en) 2012-09-21 2020-03-03 Avago Technologies International Sales Pte. Limited High availability application messaging layer
US9967106B2 (en) 2012-09-24 2018-05-08 Brocade Communications Systems LLC Role based multicast messaging infrastructure
GB2506195A (en) * 2012-09-25 2014-03-26 Ibm Managing a virtual computer resource
US20140105037A1 (en) 2012-10-15 2014-04-17 Natarajan Manthiramoorthy Determining Transmission Parameters for Transmitting Beacon Framers
US9052932B2 (en) * 2012-12-17 2015-06-09 International Business Machines Corporation Hybrid virtual machine configuration management
US9497281B2 (en) * 2013-04-06 2016-11-15 Citrix Systems, Inc. Systems and methods to cache packet steering decisions for a cluster of load balancers
WO2015087111A1 (en) * 2013-12-12 2015-06-18 Freescale Semiconductor, Inc. Communication system, methods and apparatus for inter-partition communication
WO2015112614A1 (en) 2014-01-21 2015-07-30 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US10951655B2 (en) * 2014-09-26 2021-03-16 Oracle International Corporation System and method for dynamic reconfiguration in a multitenant application server environment
US9619349B2 (en) 2014-10-14 2017-04-11 Brocade Communications Systems, Inc. Biasing active-standby determination
US9942132B2 (en) * 2015-08-18 2018-04-10 International Business Machines Corporation Assigning communication paths among computing devices utilizing a multi-path communication protocol
WO2018133035A1 (zh) * 2017-01-20 2018-07-26 华为技术有限公司 用于转发数据包的方法、网卡、主机设备和计算机***
CN106911831B (zh) * 2017-02-09 2019-09-20 青岛海信移动通信技术股份有限公司 一种终端的麦克风的数据处理方法和具有麦克风的终端
US11134297B2 (en) * 2017-12-13 2021-09-28 Texas Instruments Incorporated Video input port
JP6558817B1 (ja) * 2018-05-18 2019-08-14 Necプラットフォームズ株式会社 通信装置、通信装置の制御方法、及び、プログラム
US11609845B2 (en) * 2019-05-28 2023-03-21 Oracle International Corporation Configurable memory device connected to a microprocessor
CN111031140A (zh) * 2019-12-20 2020-04-17 支付宝(杭州)信息技术有限公司 资源结算方法及装置、电子设备、存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1256039B1 (en) * 1999-09-28 2004-11-24 International Business Machines Corporation Workload management in a computing environment
US6587938B1 (en) * 1999-09-28 2003-07-01 International Business Machines Corporation Method, system and program products for managing central processing unit resources of a computing environment
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
US6988139B1 (en) * 2002-04-26 2006-01-17 Microsoft Corporation Distributed computing of a job corresponding to a plurality of predefined tasks
US7299468B2 (en) * 2003-04-29 2007-11-20 International Business Machines Corporation Management of virtual machines to utilize shared resources
US7188198B2 (en) * 2003-09-11 2007-03-06 International Business Machines Corporation Method for implementing dynamic virtual lane buffer reconfiguration
WO2005029280A2 (en) * 2003-09-19 2005-03-31 Netezza Corporation Performing sequence analysis as a multipart plan storing intermediate results as a relation
US8098676B2 (en) * 2004-08-12 2012-01-17 Intel Corporation Techniques to utilize queues for network interface devices
US7835380B1 (en) * 2004-10-19 2010-11-16 Broadcom Corporation Multi-port network interface device with shared processing resources
US7797707B2 (en) * 2005-03-02 2010-09-14 Hewlett-Packard Development Company, L.P. System and method for attributing to a corresponding virtual machine CPU usage of a domain in which a shared resource's device driver resides
US7586936B2 (en) * 2005-04-01 2009-09-08 International Business Machines Corporation Host Ethernet adapter for networking offload in server environment
US7697536B2 (en) * 2005-04-01 2010-04-13 International Business Machines Corporation Network communications for operating system partitions
US7493515B2 (en) * 2005-09-30 2009-02-17 International Business Machines Corporation Assigning a processor to a logical partition

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103164284A (zh) * 2011-08-08 2013-06-19 Arm有限公司 支持不同优先级事务请求的集成电路中的处理资源分配
CN103164284B (zh) * 2011-08-08 2017-06-20 Arm有限公司 用于不同优先级事务请求的处理资源分配的集成电路
CN105830408A (zh) * 2013-12-20 2016-08-03 瑞典爱立信有限公司 脑裂情况期间的资源的分配
CN105830408B (zh) * 2013-12-20 2020-01-07 瑞典爱立信有限公司 脑裂情况期间的资源的分配
US10924450B2 (en) 2013-12-20 2021-02-16 Telefonaktiebolaget Lm Ericsson (Publ) Allocation of resources during split brain conditions
CN113950814A (zh) * 2019-06-04 2022-01-18 微软技术许可有限责任公司 通过端口复用的多点会议会话
CN113950814B (zh) * 2019-06-04 2023-09-26 微软技术许可有限责任公司 通过端口复用的多点会议会话

Also Published As

Publication number Publication date
IL204237B (en) 2018-08-30
IL204237A0 (en) 2011-07-31
KR20100066458A (ko) 2010-06-17
WO2009027300A3 (en) 2009-04-16
US20090055831A1 (en) 2009-02-26
CN101784989B (zh) 2013-08-14
BRPI0815270A2 (pt) 2015-08-25
TW200915084A (en) 2009-04-01
EP2191371A2 (en) 2010-06-02
KR101159448B1 (ko) 2012-07-13
CA2697155C (en) 2017-11-07
JP5159884B2 (ja) 2013-03-13
TWI430102B (zh) 2014-03-11
CA2697155A1 (en) 2009-03-05
WO2009027300A2 (en) 2009-03-05
JP2010537297A (ja) 2010-12-02

Similar Documents

Publication Publication Date Title
CN101784989B (zh) 在逻辑分区之间分配网络适配器资源的方法和***
US11385934B2 (en) Configurable logic platform with reconfigurable processing circuitry
US11010198B2 (en) Data processing system having a hardware acceleration plane and a software plane
CN100543689C (zh) 用于在分区的计算机中推荐移动资源的***和方法
US20160306668A1 (en) Implementing a Service Using Plural Acceleration Components
CN1604057A (zh) 硬件实施通道适配器资源的逻辑分区的方法和***
EP3283974A1 (en) Systems and methods for executing software threads using soft processors
US20070288938A1 (en) Sharing data between partitions in a partitionable system
CN101311915A (zh) 用于动态重分派虚拟通道资源的方法和***
CN112714164A (zh) 一种物联网***及其任务调度方法
EP3301626A1 (en) Method, device, and system
US7591011B1 (en) Assigning higher priority to transactions based on subscription level
US20060085573A1 (en) Multi-context selection with PCI express to support hardware partitioning
CN110868364B (zh) 一种带宽隔离装置及方法
CN109257227A (zh) 数据传输中的偶联管理方法、装置及***
US10749913B2 (en) Techniques for multiply-connected messaging endpoints
WO2013168427A1 (ja) バス制御装置、バス制御システム、およびネットワークインタフェース
CN117421122A (zh) 一种数据传输方法、一种网卡和一种cpu

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130814