网络中的端到端流控制的制作方法

文档序号:6477782阅读:252来源:国知局
专利名称:网络中的端到端流控制的制作方法
第l/5页
网络中的端到端流控制
背景技术
夕卜设部件互连快运(Peripheral Component Interconnect Express(PCIe))计算机总线标准用于计算机扩展卡和图形卡。PCIe既是全双工的也是点对点的。PCIe是分层的协议并且具有物理层,数据链路层以及事物层。
在物理层中,任何两个PCIe设备之间的连接被称为链路。每个链^各由一个或多个通道组成。更多通道允许数据流通过链路的更高速率。
数据链路层提供事物层数据包(TLP)的排序。TLP由事物层生成。数据链路层使用应答(ACK)和否定应答(NAK)来保证TLP的递送。ACK和NAK由作为低层次数据包的数据链路层数据包(DLLP )传送。DLLP也用于功率管理功能。
PCIe使用链路层基于信用的流控制。在链路层基于信用的流控制中,信用基于接收从数据链路层进入事物层的数据的接收緩沖器中可用空间的量。链路上的每个设备将初始信用限制通告给链路另 一端上的设备。仅当发送TLP不会超过接收设备的当前信用限制时,设备才在链路上发送该TLP。当发送TLP时,发送的TLP将该TLP使用的信用的数量从当前信用限制中减去。当接收设备完成处理来自其接收緩冲器的TLP时,接收设备将信用的返回用信号通知发送设备。然后发送设备将返回的信用的数量添加到当前信用限制。用于计数信用的计数器是模的,并且模运算被用于确定当前信用限制。DLLP被用于在两个连接的设备之间
传送流控制信息。
当使用链路层基于信用的流控制时,只要没有碰到信用限制,信用返回的延迟不影响性能。


图1示出根据本发明一实施例的PCI网络域。
图2是示出根据本发明 一实施例的利用链路层以及端到端的基于信用的流控制的緩冲器管理的使用的简化框图。
5图3是示出根据本发明 一 实施例的利用端到端的基于信用的流控制的緩沖器管理的实施的简化框图。
具体实施例方式
图1示出一 PCIe网络域,其包括由交换机10互连的网络节点11,网络节点12,网络节点13,网络节点14,网络节点15,网络节点16,网络节点17,以及管理节点18。这些网络节点中的一个或多个为主机节点,而这些网络节点中的一个或多个为输入/输出(I/O)节点。尽管示出七个网络节点连接到交换机10,这只是示例性的,交换机10的大小和网络节点的数量在PCIe网络域中可以变化很大,如本领域普通技术人员所知的。
线101代表网络节点11和交换机IO之间的数据链路。线102代表网络节点12和交换机10之间的数据链路。线103代表网络节点13和交换机10之间的数据链路。线104代表网络节点14和交换机10之间的数据链路。线105代表网络节点15和交换机10之间的数据链路。线106代表网络节点]6和交换机10之间的数据链路。线107代表网络节点17和交换机10之间的数据链路。线108代表管理节点18和交换机10之间的数据链路。
图2示出利用链路层以及端到端的基于信用的流控制的缓冲器管理的使用。图1中示出的每个网络节点实施具有物理层,数据链路层以及事物层的分层的协议。例如,网络节点14包括数据链路层21,如图1所示。网络节点14的描述是示范性的,图1所示的所有网络节点可以包括图2示出的功能性。
数据链路层21与緩冲器管理模块22通信。緩沖器管理模块22执行链路层基于信用的流控制。链路层表示的是控制两个网络设备之间在数据链路上的数据流的协议层。例如,交换机10 (图1所示)以及网络节点14都是在数据链路104上通信的网络设备。交换机10和网络节点14执行对于在数据链路104上流动的所有TLP的链路层流控制。
緩冲器管理22管理接收(RX)緩沖器24和发送(TX)緩沖器23。接收緩沖器24包括三个不同的存储器,用于接收三种不同类型的消息数据包。每个存储器例如实现为随机存取存储器(RAM)。三个存储器中的第一个接收邮递性(posted)消息数据包。三个存储器中的第二个
6接收非邮递性(non-posted)消息数据包。三个存储器中的第三个接收 完结(completion)。緩冲器管理22为三个存储器中的每一个执行基 于信用的流控制。
緩沖器管理22在链路层上执行基于信用的流控制。在链路层基于 信用的流控制中,信用基于接收从数据链路层进入事物层的数据的接收 緩冲器中可用空间的量。交换机IO和网络节点14相互通告初始信用限 制。仅当发送TLP不会超过交换机10的当前信用限制时,网络节点14 才在数据链路104上发送该TLP。当发送TLP时,网络节点14将该TLP 使用的信用的数量从交换机10的当前信用限制中减去。当网络节点14 完成处理来自接收緩冲器24的TLP时,网络节点14将信用的返回用信 号通知交换才几10。 DLLP ^皮用于在节点14和交换^几10之间传送流控制 信息。类似地,链路层基于信用的流控制在交换机IO和网络节点11到 17中的每一个之间^丸行。
緩沖器管理模块25执行端到端的基于信用的流控制。緩沖器管理 25管理接收(RX)緩冲器27和发送(TX)緩沖器26。接收緩沖器27 包括三个不同的存储器,用于接收三种不同类型的消息数据包。每个存 储器例如实现为随机存取存储器(RAM)。三个存储器中的第一个接收 邮递性消息数据包。三个存储器中的第二个接收非邮递性消息数据包。 三个存储器中的第三个接收完结。緩沖器管理25为三个存储器中的每 一个执行基于信用的流控制。
緩冲器管理25执行端到端的基于信用的流控制。端到端的基于信 用的流控制指的是为在网络端点之间的数据传输执行的基于信用的流 控制。例如,端点可以是网络节点或者具有多个1/0功能的网络节点内 的1/0功能。具有多个1/0功能的网络节点的示例是具有多个端口的网 络接口卡。当每个端口具有独立的网络控制器时,该网络控制器可以用 作节点内的1/0功能从而用作网络端点。例如,网络控制器可以是以太 网控制器或者根据另 一 网络协议操作的网络控制器。
尽管交换机IO是网络设备,交换机10不作为网络端点工作。因此, 交换机10不实施端到端的基于信用的流控制。
执行端到端的流控制防止网络被充满不能被卸载到网络构造之外 的流量。例如,端到端流控制由两部分构成(l)流控制初始化,以 及(2)流控制更新。流控制初始化在网络启动时在PCIe训练协议执行之后,并且在管理节点18建立了主机节点和I/O节点之间的绑定之后执行。对于每个绑定,网络节点发出流控制启动(FC-Initl )数据包直到该网络节点收到来自对应的网络节点的FC-Initl 1数据包。 一旦用于该绑定的FC_Initl数据包被收到,网络节点发出流控制启动(FC-Init2)数据包直到该网络节点收到来自对应的网络节点的FC-Initl 2数据包。在此点上每个网络节点准备好执行对于该绑定的端到端流控制。
流控制更新是对于端到端流控制的信用更新。例如,信用更新用于封装的事物层数据包(TLP)。信用更新作为邮递性消息数据包被发送。例如,信用更新基于消息数据包的有效载荷的大小。有效载荷包括每个数据包一个报头单元和每个数据包n个数据单元,其中"n"等于Roundup(长度/FC单元大小),其中"FC单元大小,,是4个双字(dword),并且其中"长度"是数据包中包括这些数据单元的部分的长度。
图3是示出緩冲器管理模块25的实施的简化框图。如箭头31所表示,接收模块35处理从接收緩冲器24 (图2中所示)的消息数据包的接收,并且将它们置于先进先出(FIFO)缓冲器36。
流控制/配置(FC/CFG)过滤器37用于识别配置信息和信用更新信息。信用限制信息发送到调节器43。配置信息例如管理节点18在网络配置期间发送的网络配置信息。过滤器37发送配置信息到网络配置(CONFIG )模块42。不包含配置信息或信用限制信息的消息数据包被过滤器37放入FIFO緩沖器38。
解封器39从FIFO緩冲器38接收消息数据包。解封器39剥去数据包报头,并且如箭头33所示,将消息数据包的剩余部分置于M緩冲器27 (图2所示)内的适当的存储器,这取决于该消息数据包是邮递性数据包、非邮递性数据包或是完结。
对于置于RX緩沖器27中的存储器内的每个消息数据包,信用限制(CL) FIFO 40存储包类型和包大小。当网络节点的设备内核处理来自RX緩冲器27内的存储器之一内的消息数据包时,该信息由解封器39发送到应答器41。应答器41接着根据处理的是哪种类型(邮递性、非邮递性、或是完结)的消息数据包,访问CL FIFO 40中的适当的FIF0,来确定包大小。接着应答器41创建信用更新数据包,该信用更新数据包被邮递到流控制优先级(FCP )存储器46。发送模块48接着将该信用更新数据包转发到TX緩沖器23 (图2中所示)中,如箭头32所示。
FCP存储器46用于发送信用更新数据包来避免活锁,因为信用更新 数据包是邮递性的TLP,因而如果通过TLP存储器47来发送它们可被封锁。
封装器44从TX緩沖器26 (图2所示)接收数据,如箭头34所示, 并添加报头以形成TLP包。TLP包被置于TLP存储器47。发送模块48 接着将信用更新数据包转发到TX緩冲器23 (图2所示),如箭头32所 表示。
在封装器44将TLP包置于TLP存储器47之前,封装器44检查以 确定该消息的端点有空间来接收该消息。这通过检查调节器43内存储 的信息以确定该端点的当前信用限制来实现。
对于网络节点14的每个绑定,调节器43跟踪三种消息类型中每一 个的信用限制。在配置时,网络节点14的每个绑定的信用限制由管理 节点18确定,并作为配置信息发送到网络配置模块42。对于每种消息 类型有独立的信用限制。在配置期间,网络配置模块42使用独立的配 置存储器45来发送配置消息。发送模块48将配置消息转发到TX缓沖 器23 (图2所示),如箭头32所表示。
调节器43从网络配置模块42获得初始信用限制。此后,每当封装 器44发送消息数据包以及每当网络节点14接收到信用更新信息,调节 器43更新信用限制。在调节器43内,用于计数信用的计数器是模的, 并且模运算被用于确定当前信用限制。
上述讨论仅公开和描述了本发明的示范性方法和实施例。如本领域 普通技术人员将理解的,在不偏离其精神或基本特征下,本发明可以以 其他特定形式来实施。因此,本发明的公开意图是示例性的,而不限制 本发明的范围,本发明的范围由所附权利要求来阐述。
9
权利要求
1.一种网络中的网络节点(11-17),该网络节点(11-17)包括第一接收缓冲器(24);第一缓冲器管理(22),其对于第一缓冲器管理(22)置于第一接收缓冲器(24)中的网络数据包执行链路层基于信用的流控制;第二接收缓冲器(27);以及第二缓冲器管理(25),其对于第二缓冲器管理(25)从第一接收缓冲器(24)接收并在将数据放到第二接收缓冲器(27)之前处理的网络数据包执行端到端的基于信用的流控制。
2. 如权利要求1所述的网络节点(11-17),其中网络根据外设部 件互连快运(PCIe)协议来运行。
3. 如权利要求1所述的网络节点(11-17),其中第二緩沖器管理 (25)包括解封器(39 ),在将消息数据包的其余部分放入第二接收緩沖器(27 ) 之前去除包报头;以及应答器(41),提供信用更新信息给网络上发送消息数据包给网络 节点(11-17)的端点。
4. 如权利要求1所述的网络节点(11-17),其中第二緩沖器管理 (25)包括封装器(44),其形成用于传送到网络上的端点的网络数据包;以及调节器(43),其指示封装器(44)形成的网络数据包的目的地网 络节点(11-17)是否有空间来接收该网络数据包。
5. 如权利要求1所述的网络节点(11-17),其中第二緩沖器管理 (25)包括封装器(44),其形成用于传送到网络上的端点的网络数据包;以及调节器(43),其指示封装器(44)形成的网络数据包的目的地网 络节点(11-17)是否有空间来接收该网络数据包,该调节器(43)跟 踪网络节点(11-17)到网络上的端点的每个绑定的信用限制。
6. 如权利要求1所述的网络节点(11-17),其中第二緩沖器管理(25)包括封装器(44),其形成用于传送到网络上的端点的网络数据包;以及调节器(43),其指示封装器(44)形成的网络数据包的目的地网 络节点(11-17)是否有空间来接收该网络数据包,该调节器(43)跟 踪网络节点(11-17)到网络上的端点的每个绑定的信用限制,其中调 节器(43)包括用于计数信用的计数器,该计数器是模的,并且调节器 (43)使用模运算来确定当前信用限制。
7. 如权利要求1所述的网络节点(11-17),其中第二緩冲器管理 (25)包括解封器(39),在将数据包的其余部分放入第二接收緩冲器(27) 之前去除包报头;应答器(41),提供信用更新信息给网络上发送消息数据包给网络 节点(11-17)的端点;封装器(44),其形成用于传送到网络上的端点的网络数据包;以及调节器(43),其指示封装器(44)形成的网络数据包的目的地网 络节点(11-17)是否有空间来接收该网络数据包。
8. 如权利要求1所述的网络节点(11-17),其中第二緩沖器管理 (25)包括解封器(39),在将数据包的其余部分放入第二接收緩沖器(27) 之前去除包々艮头;应答器(41),提供信用更新信息给网络上发送消息数据包给网络 节点(11-17 )的端点;以及信用限制存储器(40),其存储与解封器(39)处理的每个数据包 的包类型和包大小相关的信息,该信息由应答器(41)用于确定提供给 网络上的端点的信用更新信息。
9. 如权利要求1所述的网络节点(11-17),其中第二緩冲器管理 (25 )包括解封器(39),在将数据包的其余部分放入第二接收緩冲器(27) 之前去除包报头;应答器(41),提供信用更新信息给网络上发送消息数据包给网络节点(11-17)的端点;封装器(44),其形成用于传送到网络上的端点的网络数据包;调节器(43),其指示封装器(44)形成的网络数据包的目的地网络节点(11-17)是否有空间来接收该网络数据包,该调节器(43)跟踪网络节点(11-17)到网络上的端点的每个绑定的信用限制;网络配置模块(42),在网络配置时存储网络节点(11-17)到网络上的端点的每个绑定的初始信用限制,该网络配置模块(42)提供初始信用限制给调节器(43);以及过滤器(37 ),其去除第二緩冲器管理(25 )从第一接收緩沖器(24 )接收的网络数据包内的配置信息,并将该配置信息转发给网络配置模块(42 ),过滤器(37 )还从第二緩冲器管理(")从第一接收緩冲器(24 )接收的网络数据包去除信用更新信息,并将该信用更新信息转发到调节器(43)。
10. —种第一网络节点(11-17)提供对于在网络上传送的网络数据包的流控制的方法,该方法包括对于在第一网络节点(11-17)和链接到第一网络节点(11-17)的网络设备(1 0 )之间流动的网络数据包提供链路层基于信用的流控制;以及对于在网络节点(11—17)和网络上的笫二网络节点(11-n)之间流动的网络数据包提供端到端的基于信用的流控制,所述第二网络节点(11-17)不是链接到第一网络节点(11-17)的网络设备(IO)。
全文摘要
一种网络中的网络节点(11-17)包括第一接收缓冲器(24);第一缓冲器管理(22);第二接收缓冲器(27);以及第二缓冲器管理(25)。第一缓冲器管理(22)对于第一缓冲器管理(22)置于第一接收缓冲器(24)中的网络数据包执行链路层基于信用的流控制。第二缓冲器管理(25)对于第二缓冲器管理(25)从第一接收缓冲器(24)接收并在将数据放到第二接收缓冲器(27)之前处理的网络数据包执行端到端的基于信用的流控制。
文档编号G06F15/16GK101689171SQ200880023685
公开日2010年3月31日 申请日期2008年5月21日 优先权日2007年7月6日
发明者D·D·赖利, D·L·马修斯, H·E·布林克曼, H·V·诺尔登, J·X·丁, K·T·钱, P·布劳内尔 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1