用于管理多个互连ip块中的通信的方法和系统的制作方法

文档序号:6627306阅读:112来源:国知局
用于管理多个互连ip块中的通信的方法和系统的制作方法
【专利摘要】一种用于管理多个互连IP块中的通信的方法和系统。传送IP块可以向共享接收队列传送针对第一IP块的消息。可以基于分配给每个传送IP块的接收信用来控制共享接收队列处的消息的接收。可以动态地管理针对每个传送IP块的接收信用的分配使得可以至少部分地基于与每个传送IP块相关联的消息业务量和/或与每个传送IP块相关联的优先级来针对每个传送IP块动态地调整接收信用的分配。
【专利说明】用于管理多个互连…块中的通信的方法和系统

【技术领域】
[0001]本发明通常涉及包括多个互联处理块(即,节点)的计算系统中的数据处理,并且特别地涉及处理器架构以及其中包含的通信架构。

【背景技术】
[0002]片上网络(勵^是一种新颖的集成电路架构,其将基于网络的架构应用于单个芯片以创建独一的处理单元。典型的勵包括经由该网络彼此耦合的多个集成处理器(工?)块。一般来说,勵处理单元将作业的不同部分分发(即,分配)给一个或多个I?块的不同硬件线程以便由勵处理单元中的一个或多个I?块来执行,其中分发一般包括在勵〇的一个或多个I?块之间传送包括一个或多个数据字的数据分组(即,消息)。在标准计算机系统中的I?块的数量预期会提升的情况下,高效地处理工作负荷分发和消息通信已经变得要求越来越高。
[0003]此外,在作业处理的过程中,通常由于工作负荷的任务的指引而在I?块之间传递数据,其中I?块可以从一个或多个传送I?块接收数据。从一个I?块传递到另一个I?块的数据通常存储在与接收I?块相关联的缓冲器中。随着多个I?块潜在地向单个I?块传送,在传统的系统中,如果缓冲存储器对于接收I?块来说不足,则可能出现死锁、活锁和存储匮乏问题。在一些传统的系统中,一旦用于I?块的缓冲器存满,则接收I?块可以丢弃传送的数据分组(即,未能存储接收到的数据分组为了解决这些问题,传统的系统通常建造过多的缓冲器,使得每个I?块与超出硬件/软件需要的缓冲器空间相关联。虽然建造过多缓冲器可以解决与分发处理系统的通信相关联的一些问题,但是在I?块的数量预期会提升的情况下,在顯¢:配置中专用于缓冲器的增加的空间量变成了愈发浪费的解决方案。
[0004]对于在包括多个互连的集成处理器块的计算系统中传递数据消息的方式,本领域中存在持续的需要。


【发明内容】

[0005]通过基于分配给向第一 I?块传送的I?块的接收信用来控制在共享接收缓冲器处对针对第一 I?块的消息的接收,本发明解决了与现有技术相关联的这些和其他问题。根据本发明的实施例,接收信用对应于可以在给定时间段内在共享接收缓冲器处从特定传送I?块接收的消息的数量。每个传送I?块被分配的接收信用的数量会限制该传送I?块在给定时间段内可以向共享接收队列发送针对第一 I?块的消息的数量。此外,动态地管理每个传送I?块的接收信用的分配,使得在共享接收缓冲器处接收的针对第一 I?块的消息不会超过分配给该第一 I?块的存储容量。
[0006]第一 I?块(即,接收I?块)动态地管理接收信用的分配,从而限制在给定时间段内在共享接收缓冲器处接收的针对第一 I?块的消息的数量。从而,接收信用的分配会限制每个I?块可以向共享接收缓冲器传送的针对第一 I?块的消息的数量、以及可以向共享接收缓冲器传送的针对第一 I?块的消息的总数量。因此,根据本发明的一些实施例,基于分配给传送I?块的对应于接收I?块的接收信用的数量,可以在给定时间段中可向特定接收I?块发送的消息的数量方面限制传送I?块。
[0007]表征本发明的这些及其他优点和特征在附加于此并形成本文的另外部分的权利要求书中被阐述。然而,为了更好地理解本发明、其优点以及通过其使用获得的目的,应当参考附图以及其中描述了本发明的示例性实施例的所附描述内容。

【专利附图】

【附图说明】
[0008]图1是包括根据本发明实施例的有助于数据处理的示例性计算机的示例性自动化计算机器的框图。
[0009]图2是在图1的计算机中实现的示例性勵的框图。
[0010]图3是更详细地示出来自图2的顯的节点的示例性实现的框图。
[0011]图4是示出来自图2的顯的I?块的示例性实现的框图。
[0012]图5是示出图4的多个互连I?块耦合到可以并入图2的勵中的共享接收队列的示例性实现的框图。
[0013]图6是示出可以被执行以控制图5的共享接收队列处的消息接收的操作序列的流程图。
[0014]图7八4是示出为了由传送I?块将消息传递到图5的共享接收队列以便由接收I?块进行处理,在不同时刻分配接收信用的示例的框图。
[0015]应理解的是,附图不一定依比例,而是呈现说明本发明实施例的基本原理的各种优选特征的略微简化的表示。在此公开的根据本发明实施例的特定特征,包括例如各种示出的组件的特定尺寸、方向、位置、操作序列和形状,将部分地由特定的期望应用、用途和/或环境来确定。示出的实施例的某些特征相对于其他特征而言可能已被放大或变形,以便于可视化以及清楚的理解。

【具体实施方式】
[0016]本发明的实施例提供了用于控制从一个或多个传送I?块到接收I?块的共享接收缓冲器的数据通信的电路配置和方法。根据本发明的实施例,基于分配给向第一 I?块传送消息的I?块的接收信用,来控制在共享接收缓冲器处对针对第一 I?块的消息的接收。分配的接收信用会限制每个传送I?块在给定时间段内针对第一 I?块可以向共享接收缓冲器发送的消息数目。此外,动态地管理针对每个传送I?块的接收信用的分配,使得可以至少部分地基于负荷和/或优先级来回收、重新分配接收信用、和/或分配附加的接收信用。由于在共享接收队列中针对第一 I?块的消息被处理和/或与接收信用相关联的给定时限期满,传送I?块可以接收与共享接收缓冲器中针对第一 I?块的可用存储空间相对应的更多接收信用。
[0017]在根据本发明的一些实施例中,共享接收队列可以包括针对每个传送I?块的信用计数器,并且该计数器可以响应于接收到来自该传送I?块的消息而被递增。因此,本发明的实施例可以确定针对每个传送I?块的分配的接收信用的使用速率。在此类实施例中,动态地管理针对传送I?块的接收信用的分配可以包括:至少部分地基于使用速率调整针对一个或多个传送I?块的接收信用的分配。例如,如果传送I?块在给定时间的一半时间中使用了全部分配的接收信用,则可以向该传送I?块分配附加的接收信用。作为另一示例,如果传送I?块仅使用了分配给它的接收信用的一半,则可以回收一个或多个分配的接收信用。
[0018]一般来说,共享接收队列对向第一 I?块传送的每个I?块分配非零数目的接收信用。分配给每个传送I?块的接收信用的数量(即,数目)可以至少部分地基于与每个传送I?块相关联的优先级。此外,分配给每个传送I?块的接收信用的数量可以至少部分地基于每个传送I?块对分配的接收信用的使用速率,该速率通常对应于每个传送I?块向共享接收缓冲器发送针对第一 I?块的消息的速率。而且,分配给传送I?块的接收信用的总数量至少部分地基于与第一 I?块相关联的共享接收队列的存储容量。
[0019]与接收信用相关联的给定时间(即,可以使用该接收信用的时间窗口)可以至少部分地基于系统的往返时延。此往返时延对应于传送I?块可以将消息传递到共享接收队列并从那里接收到响应的时间。此外,给定时间可以是系统可配置的,其中可以配置给定时间使得传送I?块不会“饿死”执行需要发送消息的任务的其他传送I?块。例如,给定时间可以至少部分地基于每个传送I?块为了向第一 I?块发送消息而可以等待的最大时间量。
[0020]此外,本发明的实施例动态地管理接收信用的分配使得分配给每个传送I?块的接收信用可以至少部分地基于使用(例如,传送I?块发送消息/使用分配的接收信用的速率)和/或优先级而被调整。接收信用分配的动态管理会促进共享接收队列的细粒度控制以及对消息通信业务量变化的低响应时间。例如,如果传送I?块结束一任务的处理,则该传送I?块可以停止向共享接收队列发送针对第一 I?块的消息。基于传送I?块不向共享接收队列发送消息,传送I?块的使用将指示:该传送I?块已经停止向共享接收队列发送针对第一 I?块的消息。响应于对传送的使用的减少,可以回收分配的接收信用。而且,可以将回收的接收信用分配给另一传送I?块。因此,如此示例中所说明的,可以动态地管理针对每个传送I?块的接收信用的分配,使得响应于消息业务量变化而调整接收信用的分配。类似地,可以动态地管理针对每个传送I?块的接收信用的分配,使得至少部分地基于与每个传送I?块相关联的优先级来调整接收信用的分配。
[0021]硬件和软件环塏
[0022]现在转向附图,其中在几个视图中相同的数字始终表示相同的部分,图1示出包括根据本发明实施例的有助于数据处理的示例性计算机10的示例性自动化计算机器。图1的计算机10包括:至少一个计算机处理器12或“0^”;以及随机存取存储器14( “狀1”〉,其通过高速存储器总线16和总线适配器18连接到处理器12以及连接到计算机10的其它组件。
[0023]在麵14中存储的是应用程序20,用于执行特定数据处理任务(诸如文字处理、电子表格、数据库操作、视频游戏、股市模拟、原子量子过程模拟或其他用户级应用)的用户级计算机程序指令的模块。麵14中还存储操作系统22。与本发明实施例结合使用的操作系统包括冊IX11、[化狀11、微软视窗X?11、八IX11、181公司的15/0311、以及本领域技术人员将想到的其他那些。图1的示例中的操作系统22和应用20在狀114中示出,但是这样的软件的许多组件通常也被存储在非易失性存储器中,例如存储在磁盘驱动器24上。
[0024]如在下面将变得更加明显的那样,根据本发明的实施例可以在片上网络(从^)集成电路设备或芯片内实现,并且因此,计算机10被示出包括两个示例性顯:视频适配器26和协处理器28。勵(:视频适配器26可以可替换地被称为图形适配器,并且是为针对显示器设备30(诸如显示屏或计算机监视器)的图形输出特别设计的1/0适配器的示例。勵视频适配器26通过高速视频总线32、总线适配器18以及前端总线34(其也是高速总线)连接到处理器12。勵协处理器28通过总线适配器18以及前端总线34和36 (其也是高速总线)连接到处理器12。图1的勵协处理器例如可以被优化以在主处理器12的指示下加速特定数据处理任务。
[0025]图1的示例性勵视频适配器26和勵0协处理器28各自包括一个勵0,该勵0包括集成处理器(“〗?”)块、路由器、存储器通信控制器以及网络接口控制器,其细节将在下面结合图2-3更详细地讨论。勵视频适配器和勵协处理器各自针对程序而被优化,所述程序使用并行处理并且还需要对共享存储器的快速随机存取。然而,得益于本公开的本领域普通技术人员应理解的是,本发明还可以在除了顯¢:设备和设备架构之外的设备和设备架构之中实现。本发明因此并不局限于勵设备内的实现。
[0026]图1的计算机10包括通过扩展总线40和总线适配器18耦合到处理器12和计算机10的其它组件的磁盘驱动器适配器38。磁盘驱动器适配器38将非易失性数据存储装置以磁盘驱动器24的形式连接到计算机10,并且可以例如使用集成驱动器电子(“瓜⑴’)适配器、小型计算机系统接口(“…乂”)适配器、以及本领域技术人员将想到的其他那些适配器来实现。非易失性计算机存储器还可以被实现为光盘驱动器、电可擦除可编程只读存储器(所谓的“现?1?01”或“闪存”存储器)、狀1驱动器等,如本领域技术人员将想到的那样。
[0027]计算机10还包括一个或多个输入/输出(“1/0,适配器42,其例如通过用于控制针对显示器设备(诸如计算机显示屏)的输出以及来自用户输入设备44(诸如键盘和鼠标)的用户输入的软件驱动器和计算机硬件来实现面向用户的输入/输出。此外,计算机10包括用于与其他计算机48进行数据通信以及用于与数据通信网络50进行数据通信的通信适配器46。此类数据通信可以依次地通过83-232连接、通过诸如通用串行总线(只”)之类的外部总线、通过诸如I?数据通信网络之类的数据通信网络以及本领域技术人员将想到的其他方式来实现。通信适配器实现硬件级的数据通信,通过该硬件级的数据通信,一个计算机直接地或者通过数据通信网络向另一个计算机发送数据通信。适合于在计算机10中使用的通信适配器的示例包括用于有线拨号通信的调制解调器、用于有线数据通信网络通信的以太网(1222 802.3)适配器、以及用于无线数据通信网络通信的802.11适配器。
[0028]为了进一步解释,图2阐明了根据本发明实施例的示例顯102的功能框图。图2中的勵在“芯片”100上(即,在集成电路上)实现。勵(:102包括集成处理器(“〗?”)块104、路由器110、存储器通信控制器106以及网络接口控制器108,它们组合在一起成为互连节点。每个I?块104通过存储器通信控制器106和网络接口控制器108适配到路由器110。每个存储器通信控制器控制I?块与存储器之间的通信,并且每个网络接口控制器108控制通过路由器110的I?块间的通信。
[0029]在勵(:102中,每个I?块代表同步或异步逻辑设计的可重复使用的单元,其被用作勵内的用于数据处理的构建块。术语“I?块”有时被扩展为“知识产权块”,其将I?块有效地指定为由一方拥有的设计,该设计是一方的知识产权从而将被授权给半导体电路的其他用户或设计者。然而,在本发明的范围内,不要求使I?块受到任何特定的所有权,因此该术语在本说明书中总是被扩展为“集成处理器块”。如在此所说明的那样,I?块是逻辑、单元或芯片布局设计的可重复使用的单元,其可以是或者可以不是知识产权的对象。I?块是能够被形成为……芯片设计或者??以逻辑设计的逻辑核心。
[0030]通过类比描述I?块的一种方式是,I?块对于勵设计,相当于库对于计算机编程、或者离散集成电路组件对于印刷电路板设计。在根据本发明的实施例的中,I?块可以被实现为通用门网表(阴加!'化8社6 =61:1181:),实现为完全的专用或通用微处理器,或者以本领域技术人员能想到的其他方式实现。类似于用于高级程序应用的汇编码列表,网表是I?块的逻辑功能的布尔代数表示(门,标准单元例如,勵还可以用诸如^61*1108或犯01^之类的硬件描述语言中描述的可合成形式来实现。除了网表和可合成实现之外,^00还可以用较低级别的物理描述来递送。诸如等之类的模拟I?块元件可以以诸如⑶311之类的晶体管布局格式分布。I?块的数字元件有时也以布局格式提供。也应当理解,I?块以及根据本发明实现的其他逻辑电路可以以计算机数据文件(例如,逻辑定义程序码)的形式分布,该计算机数据文件以不同的细节等级定义实现这类逻辑的电路布置的功能和/或布局。因此,尽管本发明具有用全功能集成电路设备、使用这样的设备的数据处理系统、以及其他有形的物理硬件电路实现的电路布置,并且在下文中将在该电路布置的上下文中来描述,但是得益于本公开的本领域普通技术人员可以理解,本发明还可以在程序产品内实现,并且不管用来分发程序产品的计算机可读存储介质的特定类型如何,本发明都同样地适用。计算机可读存储介质的示例包括但不限于物理的、可记录类型的介质,诸如易失性和非易失性存储器装置、软盘、硬盘驱动器、和070 (等等)。
[0031]图2的示例中的每个I?块104通过存储器通信控制器106适配到路由器110。每个存储器通信控制器是适于在I?块和存储器之间提供数据通信的同步和异步逻辑电路的集合。I?块和存储器之间的此类通信的示例包括存储器加载指令和存储器存储指令。在下面参考图3更详细地描述存储器通信控制器106。每个I?块104还通过网络接口控制器108适配到路由器110,网络接口控制器108控制I?块104之间的通过路由器110的通信。I?块之间的通信的示例包括在并行应用中以及在流水线应用中在I?块之间的承载数据和用于处理数据的指令的消息。在下面也参考图3更详细地描述网络接口控制器108。
[0032]路由器110以及其间的相应链路118实现勵0的网络操作。链路118可以是在连接所有路由器的物理的并行线路总线(七代13118)上实现的分组结构。即,每个链路可以在足够宽从而同时容纳整个数据交换分组(包括所有报头信息和有效载荷数据)的线路总线上被实现。如果分组结构包括64字节,例如包括八字节报头和56字节有效载荷数据,那么与每条链路相对的线路总线为64字节宽,512条线路。此外,每条链路可以是双向的,使得如果链路分组结构包括64字节,则在每个路由器与其在网络中的每个邻居之间的线路总线实际包含1024条线路。在这样的实现中,消息可以包括多于一个分组,但是每个分组将精确地匹配到线路总线的宽度上。在备选方案中,链路可以在仅仅足够宽从而容纳分组的一部分的线路总线上实现,使得分组被分解成多个节拍社),例如使得如果链路被实现为16字节宽度、或者128条线路,则64字节分组可以被分解成四个节拍。应理解的是,基于实际物理限制以及期望的性能特性,不同的实现可以使用不同的总线宽度。如果路由器与线路总线的每个部分之间的连接被称为一个端口,那么每个路由器包括五个端口,对应于网络上的数据传输的四个方向中的每个方向有一个端口,第五个端口用于通过存储器通信控制器和网络接口控制器将路由器适配到特定的I?块。
[0033]每个存储器通信控制器106控制I?块和存储器之间的通信。存储器可以包括片外主狀1 112、通过存储器通信控制器106直接连接到I?块的存储器114、作为I?块被实现的片上存储器116、以及片上高速缓存。在勵102中,例如片上存储器114、116中的任一个可以实现为片上高速缓存存储器。所有这些形式的存储器可以布置在相同的地址空间(物理地址或虚拟地址)中,甚至对于直接附接到I?块的存储器也是如此。因此,存储器寻址消息相对于I?块可以是完全双向的,这是因为这类存储器可以直接从网络上任何地方的任意I?块寻址。I?块上的存储器116可以从该I?块或勵中的任意其他I?块寻址。直接附接到存储器通信控制器的存储器114可以由通过该存储器通信控制器适配到网络的I?块来寻址,并且也可以从勵中任何地方的任意其他I?块来寻址。
[0034]^00 102包括两个存储器管理单元(“丽口”) 120、122,示出根据本发明实施例的用于勵的两个备选存储器结构。^ 120被实现在I?块内,允许I?块内的处理器在虚拟存储器中操作,同时允许勵的整个剩余架构在物理存储器地址空间中操作。丽^ 122在片外实现,通过数据通信端口 124被连接到该勵0。端口 124包括:在勵0和丽^之间传导信号所需的引脚和其它互连;以及足够的智能从而将消息分组从勵分组格式转换为外部丽1122所需的总线格式。丽^的外部位置意味着40(:的所有I?块中的所有处理器可以在虚拟存储器地址空间中操作,向片外存储器的物理地址的所有转换由片外丽^ 122处理。
[0035]除了通过丽^ 120、122的使用而示出的两个存储器架构之外,数据通信端口 126还示出能够在本发明实施例中采用的、在顯中有用的第三存储器架构。端口 126提供顯102的I?块104和片外存储器112之间的直接连接。由于在处理路径中没有丽口,该架构提供由勵的所有I?块对物理地址空间的利用。在双向地共享该地址空间时,利用被引导通过直接连接到端口 126的I?块的存储器寻址消息,^00的所有I?块可以访问地址空间中的存储器(包括加载和存储)。端口 126包括:在^00和片外存储器112之间传导信号所需的引脚和其它互连;以及充分的智能从而将消息分组从勵¢:分组格式转换为片外存储器112所需的总线格式。
[0036]在图2的示例中,将I?块之一指派为主接口处理器128。主接口处理器128提供^00和可以在其中安装该勵的主计算机10之间的接口,并且还向勵上的其它I?块提供数据处理服务,包括例如接收并在的I?块之间调度来自主计算机的数据处理请求。勵例如可以在较大型的计算机10上实施视频图形适配器26或协处理器28,如上面参考图1所述。在图2的示例中,主接口处理器128通过数据通信接口 130连接到该较大型的主计算机。端口 130包括:在勵和主计算机之间传导信号所需的引脚和其它互连;以及充分的智能从而将消息分组从顯¢:转换为主计算机10所需的总线格式。在图1的计算机中的勵协处理器的示例中,这样的端口将提供勵协处理器28的链路结构与前端总线36所需的协议之间的数据通信格式转换,其中前端总线36位于勵协处理器28和总线适配器18之间。
[0037]图3接下来示出功能框图,其更详细地示出勵102中的I?块104、存储器通信控制器106、网络接口控制器108和路由器110内实现的组件,它们共同地以132示出并且可以被称为节点或硬件线程。I?块104包括计算机处理器134和1/0功能136。在此示例中,计算机存储器由I?块104中的随机存取存储器(“狀11138的区段来表示。如上面参考图2所描述的那样,存储器可以占用物理地址空间的区段,每个I?块上的物理地址空间区段的内容可从该勵(:中的任何I?块寻址和访问。每个I?块中的处理器1311/0功能136以及存储器138将I?块有效地实现为通用可编程微型计算机。然而,如上面所解释的那样,在本发明的范围内,I?块通常代表被用作顯内的用于数据处理的构建块的同步或异步逻辑的可重复使用的单元。因此,虽然将I?块实现为通用可编程微型计算机是有助于解释目的的一般实施例,但是并非对本发明进行限制。
[0038]在图3的勵102中,每个存储器通信控制器106包括多个存储器通信执行引擎140。每个存储器通信执行引擎140能够执行来自I?块104的存储器通信指令,包括网络和I?块104之间的双向存储器通信指令流141、142、144。存储器通信控制器执行的存储器通信指令不仅可以源自于通过特定存储器通信控制器适配到路由器的I?块,而且也可以源自于勵102中的任何地方的任何I?块104。即,^00中的任何I?块可以生成存储器通信指令,并将此存储器通信指令通过勵的路由器传送给与另一 I?块相关联的另一存储器通信控制器以用于执行该存储器通信指令。此类存储器通信指令例如可以包括转换旁视缓冲器100^881(16 1311打一!")控制指令、高速缓存控制指令、屏障指令11181:1-1101:1011)以及存储器加载和存储指令。
[0039]每个存储器通信执行引擎140能够单独地并且与其他存储器通信执行引擎并行地执行完整的存储器通信指令。存储器通信执行引擎实现针对存储器通信指令的并发吞吐量进行优化的可缩放存储器事务处理器。存储器通信控制器106支持多个存储器通信执行引擎140,这些存储器通信执行引擎140全部并发地运行以用于多个存储器通信指令的同时执行。新的存储器通信指令由存储器通信控制器106分配给存储器通信引擎140,并且存储器通信执行引擎140可以同时接受多个响应事件。在此示例中,所有存储器通信执行引擎140是相同的。因此,缩放可由存储器通信控制器106同时处理的存储器通信指令的数量是通过缩放存储器通信执行引擎140的数量来实现的。
[0040]在图3的勵102中,每个网络接口控制器108能够将通信指令从命令格式转换成网络分组格式以用于通过路由器110在I?块104之间传送。通信指令可以由I?块104或由存储器通信控制器106公式化为命令格式,并以命令格式被提供给网络接口控制器108。该命令格式可以是符合I?块104和存储器通信控制器106的架构寄存器文件(¢11-01111:601:111-81丨丨16)的原生格式。网络分组格式通常是通过网络的路由器110进行传输所需的格式。每个这样的消息由一个或多个网络分组组成。网络接口控制器中从命令格式转换为分组格式的这种通信指令的示例包括I?块和存储器之间的存储器加载指令和存储器存储指令。这样的通信指令还可以包括在I?块之间发送消息的通信指令,所述消息在并行应用中和在流水线应用中在I?块之间携带数据和用于处理数据的指令。
[0041]在图3的勵102中,每个I?块能够通过该I?块的存储器通信控制器发送去往和来自存储器的基于存储器地址的通信,然后还通过它的网络接口控制器向网络发送去往和来自存储器的基于存储器地址的通信。基于存储器地址的通信是存储器存取指令(例如加载指令或存储指令),其由I?块的存储器通信控制器的存储器通信执行引擎执行。这样的基于存储器地址的通信通常起源于I?块,被公式化为命令格式,并且被移交给存储器通信控制器用于执行。
[0042]许多基于存储器地址的通信与消息业务量一起被执行,因为要被访问的任何存储器可能位于物理存储器地址空间中的任何地方,片上或片外,直接附接到勵中的任何存储器通信控制器,或者通过顯¢:的任何I?块被最终访问,而无论哪个I?块发起了任何特定的基于存储器地址的通信。因此,在勵102中,与消息业务量一起执行的所有基于存储器地址的通信从存储器通信控制器传递到相关联的网络接口控制器,以便从命令格式转换为分组格式并在消息中通过网络进行传输。在转换到分组格式的过程中,网络接口控制器还依赖于基于存储器地址的通信所要访问的存储器地址来识别分组的网络地址。基于存储器地址的消息利用存储器地址来寻址。每个存储器地址被网络接口控制器映射到一个网络地址,通常是负责某一范围的物理存储器地址的存储器通信控制器的网络位置。存储器通信控制器106的网络位置自然也是该存储器通信控制器的相关联的路由器110、网络接口控制器108和I?块104的网络位置。为了通过勵0的路由器传送基于存储器地址的通信,每个网络接口控制器内的指令转换逻辑150能够将存储器地址转换成网络地址。
[0043]在接收到来自网络的路由器110的消息业务量时,每个网络接口控制器108检查每个分组以获得存储器指令。包含存储器指令的每个分组被传递给与接收网络接口控制器相关联的存储器通信控制器106,其在将分组的剩余有效载荷发送到I?块进行进一步处理之前执行该存储器指令。以这样的方式,在I?块开始执行消息中的取决于特定存储器内容的指令之前,存储器内容总是被准备好以支持I?块的数据处理。
[0044]在图3的勵102中,每个I?块104能够绕过它的存储器通信控制器106、并通过该I?块的网络接口控制器108将I?块间的网络寻址通信146直接发送到网络。网络寻址通信是由网络地址导向到另一 I?块的消息。此类消息传送流水线应用中的工作数据、8110应用中在I?块之间进行单一程序处理的多个数据、等等,如本领域技术人员将想到的那样。这样的消息与基于存储器地址的通信的不同之处在于:这些消息从一开始就由始发I?块进行网络寻址,其中始发I?块知晓该消息通过的路由器要被引导到的网络地址。此类网络寻址通信由I?块通过1/0功能136以命令格式直接传递到该I?块的网络接口控制器,然后由网络接口控制器转换成分组格式并通过勵¢:的路由器传送给另一 I?块。此类网络寻址通信146是双向的,取决于这些网络寻址通信在任意特定应用中的使用而潜在地去往以及来自勵的每个I?块。然而,每个网络接口控制器能够向相关联的路由器发送和从相关联的路由器接收此类通信,并且每个网络接口控制器能够向相关联的I?块直接发送和从相关联的I?块直接接收此类通信,而绕过相关联的存储器通信控制器106。
[0045]图3的示例中的每个网络接口控制器108还能够实现网络上的虚拟信道,从而通过类型来表征网络分组。每个网络接口控制器108包括虚拟信道实现逻辑148,其在将分组形式的指令移交给路由器110以用于在勵上传输之前,按类型将每个通信指令进行分类并在网络分组格式的字段中记录指令的类型。通信指令类型的示例包括:1?块间的基于网络地址的消息、请求消息、对请求消息的响应、指向高速缓存的无效消息、存储器加载和存储消息、以及对存储器加载消息的响应、等等。
[0046]图3的示例中的每个路由器110包括路由逻辑152、虚拟信道控制逻辑154、以及虚拟信道缓冲器156。路由逻辑通常被实现为同步和异步逻辑的网络,其实现由路由器110、链路118以及路由器之间的总线线路等形成的网络中的用于数据通信的数据通信协议栈。路由逻辑152包括这样的功能,本领域技术人员读者可能在片外网络中将所述功能与路由表相关联,在至少一些实施例中路由表被认为对于使用在勵0中而言太慢且繁琐。被实现为同步和异步逻辑的网络的路由逻辑可以配置成与单时钟周期一样快速地做出路由决定。在此示例中,路由逻辑通过选择用于转发路由器中接收到的每个分组的端口来对分组进行路由。每个分组包含该分组将被路由到的网络地址。
[0047]在上面描述基于存储器地址的通信时,每个存储器地址被描述为由网络接口控制器映射到网络地址,即存储器通信控制器的网络位置。存储器通信控制器106的网络位置自然也是该存储器通信控制器的相关联的路由器110、网络接口控制器108和I?块104的网络位置。因此,在I?块间或基于网络地址的通信中,对于应用级数据处理而言同样典型的是,将网络地址视为由勵的路由器、链路和总线线路形成的网络内的I?块的位置。图2示出:此类网络的一种组织形式是行和列的网格,其中每个网络地址可以例如被实现为网格中的相关联的路由器、I?块、存储器通信控制器和网络接口控制器的每个集合的唯一标识符、或者网格中的每个这样的集合的X、7坐标。
[0048]在图3的勵102中,每个路由器110实现两个或更多虚拟通信信道,其中每个虚拟通信信道由一种通信类型来表征。通信指令类型并且因此虚拟信道类型包括上面提及的那些:1?块间的基于网络地址的消息、请求消息、对请求消息的响应、指向高速缓存的无效消息、存储器加载和存储消息、以及对存储器加载消息的响应、等等。在虚拟信道的支持下,图3的示例中的每个路由器110还包括虚拟信道控制逻辑154和虚拟信道缓冲器156。虚拟信道控制逻辑154检查每个接收到的分组以获得该分组的被指派的通信类型、并将每个分组放置到用于该通信类型的出站虚拟信道缓冲器中以通过端口传输到勵的相邻路由器。
[0049]每个虚拟信道缓冲器156具有有限存储空间。当在短时间段内接收到许多分组时,虚拟信道缓冲器会填满,使得无法在缓冲器中放入更多分组。在其他协议中,到达其缓冲器被填满的虚拟信道的分组将被丢弃。然而,在此示例中,每个虚拟信道缓冲器156利用总线线路的控制信号被使能从而通过虚拟信道控制逻辑建议周围的路由器暂停虚拟信道中的传输,即暂停传输特定通信类型的分组。当一个虚拟信道被这样暂停时,所有其他虚拟信道不受影响,并且能够继续满负荷运行。控制信号沿线路一直往回通过每个路由器到达每个路由器的相关联的网络接口控制器108。每个网络接口控制器被配置成在接收到这样的信号时拒绝从其相关联的存储器通信控制器106或者从其相关联的I?块104接受被暂停的虚拟信道的通信指令。以这样的方式,虚拟信道的暂停影响实现该虚拟信道的所有硬件,一直往回直到始发I?块。
[0050]暂停虚拟信道中的分组传输的一个效果是:不会有分组被丢弃。当路由器遭遇在某些不可靠协议(例如互联网协议)中分组可能被丢弃的情形时,图3的示例中的路由器可以通过它们的虚拟信道缓冲器156和它们的虚拟信道控制逻辑154暂停虚拟信道中的所有分组传输,直到缓冲器空间再一次可用为止,从而消除任何丢弃分组的需求。因此,图3的顯可以利用极瘦的硬件层实现高度可靠的网络通信协议。
[0051]图3的示例勵还可以配置成保持片上和片外存储器高速缓存之间的高速缓存一致性。每个顯可以支持多个高速缓存,每个高速缓存对同一底层存储器地址空间操作。例如,高速缓存可以由I?块、由存储器通信控制器、或者由勵外部的高速缓存控制器来控制。图2的示例中的片上存储器114、116中的任一个也可以被实现为片上高速缓存,并且在本发明的范围内,高速缓存存储器也可以在片外实现。
[0052]图3中示出的每个路由器110包括五个端口,四个端口 158八-0通过总线线路118连接到其他路由器,并且第五个端口 160通过网络接口控制器108和存储器通信控制器106将每个路由器连接到其相关联的I?块104。如从图2和3中的说明中能够看出的那样,顯102的路由器110和链路118形成具有连接每个路由器中的垂直和水平端口的垂直和水平链路的网格网络。在图3的说明中,例如端口 158八、158(:和160被称为垂直端口,并且端口1588和1580被称为水平端口。
[0053]图4接下来以另一种方式示出根据本发明的I?块104的一个示例性实现,其被实现为划分成指令单元(1⑴162、执行单元〈X⑴164和辅助执行单元0X1)166的处理元件。在示出的实现中,I口 162包括接收来自11指令高速缓存册)170的指令的多个指令缓冲器168。每个指令缓冲器168专用于多个(例如四个)对称多线程(311)硬件线程中的一个。有效至真实地址转换单兀1:1-8118181:1011 111111:) 172 1?合到10^112 170,并被用来将来自多个线程获取定序器174的指令获取请求转换为用于从较低阶存储器获取指令的真实地址。每个线程获取定序器174专用于特定的硬件线程,并被用来确保要被相关线程执行的指令被取到中,以用于调度到适当的执行单元。也如图4所示,取到指令缓冲器168中的指令还可以被分支预测逻辑176监视,该分支预测逻辑向每个线程获取定序器174提供线索,以最小化由执行线程中的分支引起的指令高速缓存不命中。
[0054]III 162还包括依赖性/发布((161)611(161107/188116)逻辑块178,其专用于每个硬件线程、并且被配置成解析依赖性并控制从指令缓冲器168到乂仍64的指令的发布。此外,在示出的实施例中,在八XI 166中提供单独的依赖性/发布逻辑180,由此使得各个单独的指令能够被不同的线程并发地发布到X口 164和八XI 166。在替换实施例中,逻辑180可以被布置在几162中,或者可以整个被省略,使得逻辑178将指令发布到八XI 166。
[0055]XI 164被实现为定点执行单元,包括一组耦合到定点逻辑184、分支逻辑186和加载/存储逻辑188的通用寄存器(⑶幻182。加载/存储逻辑188耦合到11数据高速缓存(况…册)190,其中有效至真实地址转换由亚狀I逻辑192提供。XI 164可以配置为实际地实现任何指令集,例如32位或64位?0冊1~??:指令集的全部或一部分。
[0056]^ 166作为辅助执行单元来运行,其包括专用依赖性/发布逻辑180、以及一个或多个执行块194。^ 166可以包括任何数量的执行块,并且可以实际地实现任何类型的执行单元(例如浮点单元)、或者一个或多个专门执行单元(例如加密/解密单元、协处理器、向量处理单元、图形处理单元、XII处理单元等)。在示出的实施例中,八XII 166包括对XI 164的高速辅助接口,例如以便支持八X[架构状态(虹也丨丨6(^6(1 “社一)和邪架构状态之间的直接移动。
[0057]与I?块104的通信可以按照上面结合图2讨论的方式、通过耦合到勵0 102的网络接口控制器108来进行管理。基于地址的通信(例如用来访问12高速缓存存储器)可以与基于消息的通信一起提供。例如,每个I?块104可以包括专用的收件箱和/或发件箱,以便处理I?块之间的节点间通信。
[0058]本发明的实施例可以在上面结合图1-4所述的硬件和软件环境内实现。然而,得益于本公开的本领域普通技术人员可以理解,本发明可以在很多种不同环境中实现,并且可以对上述硬件和软件实施例进行其他修改,而不偏离本发明的精神和范围。因此,本发明不限于这里公开的特定硬件和软件环境。
[0059]共享接收队列接收信用分配
[0060]现在转向图5,此图提供了在图2的勵中可以被配置的多个互连I?块104的框图。如图所示,互连I?块104可以连接到通信总线202和共享接收队列204。一般来说,共享接收队列204可以接收针对一个或多个I?块104以由此进行处理的消息。而且,共享接收队列204通常包括为在该共享接收队列204处接收消息的每个I?块保留的存储容量。一般来说,在共享接收队列204处针对每个I?块的存储容量可以基于在共享接收队列204中针对特定I?块可以存储的消息数量。此外,共享接收队列204可以包括计数器逻辑206,其被配置成响应于在共享接收队列处接收到针对接收I?块的消息,更新针对每个传送I?块的计数器。而且,根据本发明的一些实施例,I?块104可以配置在一个或多个集成电路设备上。例如,I?块104可以被配置在使用勵架构的芯片配置上的系统中,和/或被配置在多个互连的集成电路上。
[0061]图6提供了示出可以由根据本发明实施例的共享接收队列执行以控制共享接收队列处对针对I?块的消息的接收的操作序列的流程图250。在上电重置$0? (框252)处,共享接收队列对处理向第一 I?块传送消息的任务的所有I?块确定接收信用分配(框254)。在一些实施例中,每个传送I?块可以被分配等量的接收信用,并且可以基于来自每个传送I?块的消息业务量,随时间调整分配。在一些实施例中,接收信用的分配可以至少部分地基于与每个传送I?块相关联的优先级,使得相比于处理具有较低相关联的优先级的一个或多个任务的传送I?块,处理具有较高相关联的优先级的一个或多个任务的传送I?块可以被分配更高数量的接收信用。
[0062]而且,分配给传送I?块的接收信用的总量至少部分地基于共享接收队列的针对第一 I?块的存储容量。例如,如果每个接收信用对应于一个消息,并且共享接收队列对于给定时间段可以针对第一 I?块存储三十二个消息,则共享接收队列可以为传送I?块分配最大三十二个总接收信用。虽然分配给传送I?块的分配的接收信用的总数量至少部分地基于存储容量,但是不一定分配接收信用的最大数量。在一些实施例中,共享接收队列可以分配比最大数量小的接收信用,使得附加的接收信用可以被保留作为备用。附加的接收信用可以响应于针对第一 I?块的消息业务量而被分配。例如,如果特定的传送I?块正在以高速率发送消息(即,具有高使用速率),则共享接收队列可以分配一个或多个附加的接收信用给该特定的传送I?块。
[0063]共享接收队列向传送I?块发送分配的接收信用(框256),并且在共享接收队列处监视针对第一 I?块的消息业务量(框258〉。在一些实施例中,共享接收队列针对每个传送I?块维护一个计数器,并且共享接收队列对于在给定的时间段期间从传送I?块接收到的针对第一 I?块的每个消息更新计数器(例如,递增或递减当消息被第一 I?块处理时,将接收信用返回给传送I?块。当返回接收信用时,附加的信用可以被分配给一个或多个传送I?块和/或比先前分配的信用更少的信用可以被分配给一个或多个传送I?块。因此,至少部分地基于针对每个传送I?块的消息业务量,共享接收队列可以调整针对每个传送I?块的接收信用的分配(框260)。如果将要基于消息业务量调整一个或多个传送I?块处的接收信用的分配(框260的“是”分支),则共享接收队列可以向一个或多个I?块传送消息以回收接收信用、分配附加的接收信用、和/或将从另一传送I?块回收的接收信用进行重新分配(框262)。
[0064]现在转向图7八4,这些图提供了示出本发明的实施例执行的接收信用分配的动态管理的示例框图。在此示例中,第一 I?块302(也被标为“I?块厂’)与共享接收队列304的32个接收队列条目相关联。三个传送I?块30631 (也分别被标为“I?块2”、“1?块3”和“I?块4,正在处理使得针对第一 I?块302的消息被发送到共享接收队列304的任务。共享接收队列304包括针对每个传送I?块306^1-0的计数器308。
[0065]如图7八所示,每个传送I?块3063-(3被分配4个接收信用以用于向共享接收队列304发送针对第一 I?块的消息。在此示例中,每个接收信用对应于在共享接收队列304处可以接收的一个消息。这样在图7八中示出的示例中,每个传送I?块30631可以针对第一I?块302向共享接收队列304发送4个消息。因此,在此示例中,少于最大数量(即,32个接收令牌)的接收信用数量已被分配给传送I?块30631。具体地,在共享接收队列304处与第一 I?块302相关联的存储容量是32个消息,然而仅仅12个接收信用已被分配给传送I?块30631。在此示例中,20个接收信用被保留作为备用。图7八的示例分配示出了可以在上电恢复$0? (即,处理启动)时发生的接收信用的分配,其中消息业务量是未知的,直到传送I?块306^1-0开始发送消息。在此示例中,共享接收队列304向每个传送I?块306^(3分配了等量的接收信用。
[0066]计数器308指示每个传送I?块30631的消息业务量,即已被传送给共享接收队列304的针对第一 I?块302的消息数量。如图所示,在此示例中,根据I?块2的计数器30811?块23063传送了 4个消息给共享接收队列304。类似地,I?块3传送了 4个消息,并且I?块4传送了 2个消息。因此,根据计数器308,I?块23063和I?块33066使用了全部分配的接收信用,这可以指示:附加的接收信用可以分配给这些I?块306^306匕I?块4306(3使用的接收信用比分配的少,这可以指示:可以从I?块4306。回收一个或多个接收信用。
[0067]在图78中,传送I?块30631的接收信用的分配由共享接收队列304动态地管理,以便至少部分地基于消息业务量调整图7八的分配。由于在图7八中,I?块23063和I?块33066使用了全部分配的接收信用,所以附加的接收信用已被分配给I?块23063和I?块3306匕在此示例中,I?块306^3066已被分配10个接收信用。相反,在图7八中I?块43060没有使用全部分配的接收信用,所以I?块4306。的分配已被减少至3个接收信用。根据计数器308,使用调整后的接收信用的分配的消息业务量指示:1?块23063使用了 10个分配的接收信用,I?块33066使用了 10个分配的接收信用中的8个,而I?块4306(3使用了 3个分配的接收信用中的2个。因此,在此示例中,消息业务量指示:1?块23063可以被分配附加的接收信用,I?块33066和I?块4306。可以让一个或多个接收信用被回收。
[0068]图7(:示出基于图78中示出的消息业务量,针对传送I?块3063-(3的接收信用的分配。在此示例中,共享接收队列304已经进一步调整了接收信用分配使得I?块23063被分配15个接收信用,I?块33066被分配9个接收信用,且I?块4306。被分配2个接收信用。基于计数器308指示的消息业务量,I?块2和I?块3使用了比分配的接收信用更少的接收信用,而I?块4使用了分配的接收信用的数量。
[0069]图7代中提供的示例示出了可以由本发明实施例执行的接收信用分配的动态管理。在此示例中,响应于每个传送I?块3063-0的消息业务量来调整接收信用的分配。此夕卜,如图所示,分配给传送I?块30631的接收信用的总数量至少部分地基于与共享接收队列304相关联的存储限制。该示例示出:通过基于分配给每个传送I?块的接收信用的分配而限制每个传送I?块可以向共享接收队列发送的消息的数量,本发明的实施例可以控制在共享接收队列处的消息的接收。
[0070]此外,通过控制共享接收队列处的消息的接收,本发明的实施例被配置成接收可以传送到共享接收队列的每个消息,即,基于接收信用的分配,共享接收队列处的存储空间可用于根据接收信用的分配而传送到共享接收队列的所有消息。这样,本发明的实施例限制了消息的发送/接收从而确保发送的消息不会由于共享接收队列处的存储空间的缺乏而被丢弃。此外,本发明的实施例可以限制消息的发送/接收从而在不过度构建共享接收队列的存储空间的情况下确保消息的存储空间。而且,一些处理系统可能会要求所有消息被接收和存储(即,不被丢弃)以便适当地起作用,并且本发明的实施例可以并入其中以确保所有处理块间的通信被接收和存储(即,不被丢弃)。
[0071]虽然图7代中提供的示例示出了在?01?时向所有传送I?块分配相等数量之后调整接收信用、并基于消息业务量动态地管理接收信用的分配,但是本发明不限于此。在一些实施例中,接收信用的分配可以至少部分地基于与一个或多个传送I?块相关联的优先级。此外,虽然示例示出了所有传送I?块持续传送,但是本领域技术人员应当认识到的是,传送I?块可以在不同时刻开始、停止以及恢复传输。本发明的实施例监视消息业务量的变化、并且可以响应于消息业务量的此类变化(包括例如空闲的传送I?块开始发送消息,高使用速率的传送I?块停止发送消息,新的传送I?块开始发送消息,等等)而调整接收信用分配。
[0072]此外,与每个接收信用相关联的给定时间通常基于在共享接收队列处接收到消息和接收信用被返还给传送I?块之间的时间量,其中这样的时间量可以被称为延迟窗口。通常,当相应的消息从共享接收队列中被删除以用于由第一 I?块进行处理时,接收信用在使用后被返还给传送I?块。因此,在本发明的实施例中,消息的接收、消息的处理以及接收信用的分配是连续/正在进行的过程。因此,虽然图7代中提供的示例提供了接收信用的分配的静态表示,但是本发明不限于此。一般来说,共享接收队列持续地监视与传送I?块相关联的消息业务量和/或优先级,并且本发明的实施例在至少部分地基于每个传送I?块的消息业务量和/或与每个I?块相关联的优先级而持续地动态地调整接收信用的分配。
[0073]类似地,虽然说明书已经描述了在共享接收队列处控制针对第一 I?块的消息的接收,一般来说,每个I?块将通常持续地传送和接收消息,并且共享接收缓冲器将控制针对与之相关联的所有I?块的消息的接收。因此,虽然在图7八4中的示例对于接收来自一小组传送I?块的消息的单个I?块示出接收信用分配的管理,但是本发明不限于此。一般来说,用高数量(例如,数百、数千等)线程配置的分布式处理系统可以根据本发明的实施例控制在高数量的I?块之间传送的高数量消息的通信。
[0074]虽然通过各种实施例和示例的描述已经示出了本发明,并且虽然已经相当详细地描述了这些实施例,但是 申请人:不意欲将所附权利要求的范围局限或以任何其他方式限制到这样的细节。例如,任何流程图的块可以重新排序、顺序地处理和丨或并发地处理而不偏离本发明的范围。此外,任何流程图可以包括比根据本发明的实施例示出的块更多或更少的块。
[0075]附加的优点和修改对于本领域技术人员而言是明显的。因此,本发明在其更宽泛的方面不限于特定的细节、代表性的装置和方法、以及示出和描述的说明性示例。特别地,上述流程图的任何块可以被删除,增强,与另一个块同时进行,被组合,或者可以根据本发明的原理以其他方式被变更。因此,可以偏离这样的细节而不偏离 申请人:的总的发明构思的精神或范围。
【权利要求】
1.一种用于管理多个互连的IP块中的通信的方法,所述方法包括: 基于分配给每个传送IP块的接收信用,控制在第一 IP块的共享接收缓冲器处对从传送IP块传送的消息的接收;以及 动态地管理针对每个传送IP块的接收信用的分配。
2.如权利要求1所述的方法,其中动态地管理针对群组中的每个IP块的接收信用的分配的步骤至少部分地基于与每个传送IP块相关联的优先级。
3.如权利要求2所述的方法,其中动态地管理针对群组中的每个IP块的接收信用的分配的步骤包括: 将来自具有低优先级的传送IP块的至少一个接收信用重新分配给具有高优先级的传送IP块。
4.如权利要求1所述的方法,其中每个接收信用与在给定的时间段中在所述共享接收缓冲器处能够接收的消息的数量相对应。
5.如权利要求4所述的方法,其中动态地管理针对每个传送IP块的接收信用的分配的步骤至少部分地基于分配的接收信用在所述给定的时间段中的使用。
6.如权利要求4所述的方法,其中所述共享接收缓冲器具有固定的存储容量,以及动态地管理针对每个传送IP块的接收信用的分配的步骤至少部分地基于所述固定的存储容量,使得在给定的时间段中在所述共享接收缓冲器处能够接收的消息的数量对应于所述固定的存储容量。
7.如权利要求4所述的方法,其中动态地管理针对每个传送IP块的接收信用的分配的步骤至少部分地基于每个传送IP块在所述给定的时间段中对分配的接收信用的使用速率。
8.如权利要求1所述的方法,还包括: 响应于特定的传送IP块在给定的时间段内未使用全部分配的IP块,从所述特定的传送IP块回收至少一个分配的接收信用。
9.如权利要求1所述的方法,还包括: 响应于特定的传送IP块在给定的时间段内使用了全部分配的IP块,将至少一个附加的接收信用分配给所述特定的传送IP块。
10.如权利要求1所述的方法,其中动态地管理针对每个传送IP块的接收信用的分配的步骤包括: 响应于接收到来自传送IP块的消息,更新共享接收队列的与所述传送IP块相关联的计数器。
11.如权利要求10所述的方法,还包括: 分析与所述传送IP块相关联的所述计数器,以确定所述传送IP块对分配的接收信用的使用速率。
12.如权利要求11所述的方法,其中每个接收信用与在给定的时间段中能够向所述共享接收队列传送的消息相对应,所述方法还包括: 至少部分地基于所述传送IP块在所述给定的时间段中对分配的接收信用的使用速率,将至少一个附加的接收信用分配给所述传送IP块。
13.一种用于管理多个互连的IP块中的通信的系统,包括: 多个互连的IP块,其包括第一 IP块和配置成传送针对所述第一 IP块的消息的传送IP块;以及 共享接收队列,其包括耦合到所述互连的IP块的存储器,并且被配置成基于分配给每个传送IP块的接收信用来控制针对所述第一 IP块的消息的接收,以及动态地管理针对每个传送块的接收信用的分配。
14.如权利要求13所述的系统,其中所述共享接收队列被配置成至少部分地基于与每个传送IP块相关联的优先级,动态地管理针对每个传送块的接收信用的分配。
15.如权利要求14所述的系统,其中所述共享接收队列被配置成通过将来自具有低优先级的传送IP块的至少一个接收信用重新分配给具有高优先级的传送IP块,动态地管理针对每个传送块的接收信用的分配。
16.如权利要求13所述的系统,其中每个接收信用与在给定的时间段中在所述共享接收缓冲器处能够接收的消息的数量相对应。
17.如权利要求16所述的系统,其中所述共享接收队列被配置成至少部分地基于分配的接收信用在所述给定的时间段中的使用,动态地管理针对每个传送块的接收信用的分配。
18.如权利要求16所述的系统,其中所述共享接收队列的所述存储器具有固定的存储容量,以及所述共享接收队列被配置成至少部分地基于所述固定的存储容量来动态地管理针对每个传送块的接收信用的分配,使得在给定的时间段中在所述共享缓冲器处能够接收的消息的数量对应于所述固定的存储容量。
19.如权利要求13所述的系统,其中所述共享接收队列被配置成至少部分地基于每个传送IP块向所述共享接收队列传送消息的速率来动态地管理针对每个传送块的接收信用的分配。
20.如权利要求13所述的系统,其中所述共享接收队列包括:计数器逻辑,其配置成针对每个传送IP块维护一个计数器、以及响应于接收到来自每个传送IP块的消息而更新针对该传送IP块的所述计数器。
21.一种集成电路设备,包括如权利要求13至权利要求20中任一项所述的系统。
【文档编号】G06F13/14GK104461954SQ201410474825
【公开日】2015年3月25日 申请日期:2014年9月17日 优先权日:2013年9月18日
【发明者】J·D·布朗, R·A·希勒 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1