用于利用自适应路由来控制资源利用的机制的制作方法_3

文档序号:9493964阅读:来源:国知局
应性的输出端口。同时(或在操作604之后),路由逻辑150可在操作606处(例如,持续地)更新关于在近邻路由器(例如,接近另一逻辑150的逻辑150,其中接近指示经由一个或多个其他逻辑150的通信能力)中检测到的任何拥塞的信息。基于此信息,路由逻辑150在操作608选择关于两个可能的输出端口的适当的信息并对照可配置参数(例如,UPPER,PERFVC (较高性能VC)、UPPER_CREDIT (较高信用值)、L0ffER_PERFVC (较低性能VC)、以及L0WER_CREDIT(较低信用值))比较它们。可通过(例如,同时地)更新用于潜在输出端口的每一个的拥塞标志寄存器来概括此例程。此外,选择功能负责基于在先前步骤期间更新的拥塞标志寄存器以及输出端口处可用的VC的类型来选择最方便的输出端口。一旦路由功能完成,可在交换机处更新分组上下文,并且分组继续进行竞争跟随交换机流水线的适当的输出端口。
[0053]进一步地,路由算法负责提供一组输出端口(基于路由算法),该一组输出端口在节点之间提供死锁自由度和完全连通性。例如,在由路由算法所提供的两个可能的输出端口之间,output_port_0被指定为向路由功能提供确定性的端口。当处理完全自适应路由时,此端口是提供逃逸路由的端口。另一方面,output_port_l被视为自适应选项,且此端口提供带有变得自适应的能力的路由功能。在某些情况下,output_port_0可以是存在的唯一选项(即,当只向一个维度路由时),而在某些其他情况下,output_p0rt_0和output_port_l两者都可以存在。在后一种情况下,选择功能负责基于从其他节点收集到的关于流量状况的信息,只选择所有可能的选项之中的一个选项。
[0054]—个路由器实施例依赖于实现内容感知的自适应节制(CAAT)机制以执行选择功能的路由框架。具体而言,在一个实施例中,一个完全自适应路由算法将自适应输出端口的使用约束到已经使用了逃逸VC的那些消息。另外,当拥塞出现在当前节点上时,CAAT机制约束自适应性的使用。如此,在拥塞过程中,大多数流量遵循逃逸路径(确定性路线),从而避免拥塞跨整个网络的快速分散,以及当网络稳定时性能的不愉快的减弱。
[0055]图7示出了根据一实施例的用于检查拥塞的方法的流程图。更具体而言,图7所示出的方法可以被用来执行图6的操作606。对于路由逻辑150中的每一个输出端口,一个周期接一个周期地,重复此方法。例如,同时,每个周期都更新有关在近邻路由器中可用的性能VC的数量(#perfVCs)和共享信用的数量(#ShCred)的新信息。进一步,为了检测拥塞,CAAT 依赖于下列可配置参数 UPPER_PERFVC、UPPER_CREDIT、LOWER_PERFVC,以及 L0WER_CREDITο
[0056]在操作702中,拥塞标志(“congest1n_flag”)被复位(例如,到0,或另一个值,这取决于实现)。一些实施例使用两组可配置阈值。每一组都包括若干个空闲性能VC(UPPER_PERFVC和 L0WER_PERFVC)和空闲共享信用(UPPER_CREDIT 和 L0WER_CREDIT)。例如,下阈值可以被设置为2个性能VC和2个空闲共享信用,而上阈值可以被设置为5个性能VC和5个空闲共享信用。利用此方法,显然,较低的参数(L0WER_PERFVC,L0ffER_CREDIT)的值越大,路由算法的行为变得越确定。
[0057]对于路由逻辑150上的每一个输出端口,如果在操作704中端口上的资源大于上阈值(例如,在性能VC的数量(#perfYCs)大于高性能VC (UPPER_PERFVC)并且共享信用的数量(#ShCred)大于高信用值(UPPER_CREDIT)的情况下),则在操作706中清除状态比特(例如,congest1n_flag(拥塞_标志))。如果在操作708中,端口上的资源等于或小于下阈值(例如,在性能VC的数量(#perfVCs)小于或等于低性能VC (L0WER_PERFVC)或共享信用的数量(#ShCred)小于或等于下信用值(L0WER_CREDIT)的情况下),则在操作710中,状态比特(例如,congest1n_flag)被设置为指示输出端口处于拥塞中。在操作712中,返回状态比特(例如,congest1n_flag)。完全自适应路由算法通过确保参数L0WER_PERFVC比0大,来确保死锁自由度。这又确保输出端口 1决不会阻止逃逸路由(路由VC)。
[0058]在图8的下一流程图中示出了路由逻辑150中的选择功能(例如,图6的操作608)。图8的方法检查在输出端口 1(例如,其是指提供自适应性的输出端口)中是否有拥塞存在,如果检测到,返回确定性的端口作为获胜者,废弃路线上的任何可能的自适应性。因此,基于拥塞标志的值、路由算法,以及在输出端口中可用的VC的类型(例如,优先权被给予性能VC)。
[0059]更具体而言,在操作802中,输出端口 1被设置为有效(valid),其拥塞标志被清除。操作804检测输出端口 1处的拥塞标志的值。如果在操作806存在拥塞,则在操作808,清除输出端口 1有效性比特/标志;否则,如果在操作810中输出端口 1有效,在操作812中,返回输出端口 1。如果输出端口 1在操作810中被判断为无效,则在操作812中返回输出端口 0而不是输出端口 1。
[0060]相应地,此处所描述的CAAT机制在利用完全自适应路由来缩短分组等待时间变化方面非常有效。具体而言,当使用带维度次序路由的完全自适应路由算法作为逃逸路由时,CAAT机制可以有效地降低平均分组等待时间的标准偏差的变化,而同时在网络处于拥塞中时将吞吐量维持在可接受的水平。因此,CAAT允许基于网络的拥塞状况来审慎地在确定性和自适应路由之间切换。
[0061]图9示出了计算系统900的实施例的框图。图1的代理102中的一个或多个可以包括计算系统900的一个或多个组件。系统900的各种组件也可包括如图9所示的路由逻辑150。然而,可以在系统900中的多个位置,包括或排除所示出的那些,提供逻辑150。计算系统900可包括耦合到互连网络(或总线)904的一个或多个中央处理单元(CPU) 902 (可以统称为“处理器902”)。处理器902可以是任何类型的处理器,诸如通用处理器、网络处理器(可以处理通过计算机网络905传递的数据),等等(包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC))。此外,处理器902还可以具有单核或多核设计。带有多核设计的处理器902可以将不同类型的处理器核集成在同一个集成电路(1C)管芯上。带有多核设计的处理器902还可以实现为对称的或不对称的多处理器。
[0062]处理器902可包括一个或多个高速缓存,在各实施例中,这些高速缓存可以是专用的和/或被共享。一般而言,高速缓存存储对应于存储在别处或较早的计算出的原始数据的数据。为降低存储器访问延迟,一旦数据被存储在高速缓存中,可以通过访问缓存的副本而并非预取或重新计算原始数据,来进行未来的使用。高速缓存可以是任何类型的高速缓存,诸如1级(L1)高速缓存、2级(L2)高速缓存、3级(L3)、中级高速缓存、末级高速缓存(LLC),等等,用于存储被系统900的一个或多个组件使用的电子数据(例如,包括指令)。另外,这样的高速缓存可以位于各种位置(例如,在此处所讨论的计算系统的其他组件内,包括图1,2,9或10的系统)。
[0063]芯片组906可以另外耦合到互连网络904。进一步,芯片组906可包括图形存储器控制中枢(GMCH)908。GMCH 908可包括耦合到存储器912的存储器控制器910。存储器912可以存储数据,例如,包括由处理器902,或与计算系统900的组件进行通信的任何其他设备执行的指令序列。在本发明的一个实施例中,存储器912还可包括一个或多个易失性存储器设备,诸如随机存取存储器(RAM)、动态RAM (DRAM)、同步DRAM (SDRAM)、静态RAM(同步RAM),等等。还可以使用非易失性存储器,诸如硬盘。额外的设备可以耦合到互连网络904,诸如多个处理器和/或多个系统存储器。
[0064]GMCH 908还可以包括耦合到显示设备916的图形接口 914 (例如,在一个实施例中,通过图形加速器)。在一个实施例中,图形接口 914可以通过加速图形端口(AGP)耦合到显示设备916。在本发明的一个实施例中,显示设备916 (诸如平板显示器)可以耦合到图形接口 914,通过,例如,将存储在存储设备(诸如视频存储器或系统存储器(例如,存储器912))中的图像的数字表示转换为被显示器916解释和显示的显示信号的信号转换器。
[0065]如图9所示,中枢接口 918可以将GMCH 908耦合到输入/输出控制中枢(ICH)920。ICH 920可以提供到耦合到计算系统900的输入/输出(I/O)设备的接口。ICH 920可以通过外围桥接器(或控制器)924,诸如可以与PCIe规范兼容的外围组件互连(PCI)桥接器,通用串行总线(USB)控制器,等等,耦合到总线922。桥接器924可以在处理器902和外围设备之间提供数据路径。可以使用其他类型的拓扑。此外,多个总线还可以耦合到ICH920,例如,通过多个桥接器或控制器。进一步,总线922可以包括其他类型的总线系统和配置。此外,耦合到ICH 920的其他外围设备可包括,在本发明的各实施例中,集成驱动器电子电路(IDE)或小型计算机系统接口(SCSI)硬盘驱
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1