PCIe体系结构导读--第9章 流量控制

来源:互联网 发布:怎么查询端口号 server 编辑:程序博客网 时间:2024/06/08 08:24

[转载]PCIe体系结构导读--第9章 流量控制

 (2011-03-10 09:26:42)
转载
标签: 

转载

 
原文地址:PCIe体系结构导读--第9章 流量控制

流量控制(Flow Control)的概念起源于网络通信。一个复杂的网络系统由各类设备(如交换机,路由器,核心网),与这些设备之间的连接通路组成。从数据传输的角度上看,整个网络中具有两类资源,一个是数据通路,另一个是数据缓冲。

数据通路是网络上最珍贵的资源,直接决定了数据链路可能的最大带宽;而数据缓冲是另外一个重要的资源。当一个网络上的设备从一点传送到另外一点时,需要通过网络上的若干节点才能最终到达目的地。在这些网络节点中含有缓冲区,暂存在这个节点中没有处理完毕的报文。网络设备使用这些数据缓冲,可以搭建数据传送的传送流水线,从而提高数据传送性能。最初在网络设备中只为一条链路提供了一个缓冲区,如91 所示。

 

[转载]PCIe体系结构导读--第9章 <wbr>流量控制

9 1 基于单数据通路的数据传递

 

当网络设备使用单数据通路进行数据传递时,如果在该通路中正在传递两个数据报文,分别是AB。其中数据报文B需要经过Node1~5才能到达最终的目的地,而数据报文B在经过Node 3时发现由于Node 3正在向Node 4发送一个数据报文A

从而数据报文B到达Node 3后,由于Node 4的接收缓存被数据报文A占用,而无法继续传递。此时虽然在整个数据通路中,Node 4Node 5之间的通路是空闲的,但是报文B还是无法通过Node 34,因为在Node 4中只有一个数据缓冲,而这个数据缓冲正在被报文A使用。

使用这种数据传送规则会因为一个节点的数据缓冲被占用,而影响了后继报文的数据传递。为了解决这个问题,在现代网络节点中设置了多个虚通路VC,不同的数据报文可以使用不同的通路进行传递。从而有效解决了单数据通路带来的问题,基于多通路的数据传递如92 所示。

 

[转载]PCIe体系结构导读--第9章 <wbr>流量控制

9 2 基于双数据通路的数据传递

如上图所示,所谓多通路是指在每一个节点内设置两个以上的缓存,上例中设置了两个缓存,报文A经过Node 1~5时使用缓存2进行缓存,然后再进行数据传递,而报文B使用缓存1进行缓存。因此虽然报文A因为某种原因不能继续传递,也只是将报文阻塞在缓存2中,而不影响报文B的数据传递。

所谓VC是指缓存到缓存之间的传递通路。如92 所示的例子中含有两个VC,分别是VC1VC2。其中VC1对应节点间缓存 1到缓存 1的数据传递,而VC2对应缓存2到缓存2的数据传递。VC间的数据传递,如Node 1的缓存1/2Node 2的缓存1/2,都要使用实际的物理链路“链路1”,这也是将VC称为“虚”通路的主要原因。

在一个实际的系统中,虚通路的使用需要遵循一定的规则。如在PCIe总线中,将不同的数据报文根据TC分为8类,并约定这些TC报文可以使用哪些VC进行数据传递。在PCIe总线中使用TC/VC的映射表,决定TCVC的对应关系。

PCIe总线规定同一类型的TC报文只能与一条VC对应,当然从理论上讲,不同的TC报文可以与不同的VC对应,也可以实现一种自适应的算法根据实际情况实现TC报文和VC的对应关系。只是使用这种方法需要付出额外的硬件代价,效果也不一定明显。

下文以92 所示的数据传递为例,进一步对此说明相同类型的报文使用不同VC的情况。如果报文AB属于相同种类的报文,但是报文A使用VC1,而报文B使用VC2。首先报文A传递到Node 4后被阻塞。而报文B使用的VC和报文A使用的VC不同,报文B最终也会到达Node 4

由于报文A和报文B属于相同类型的报文,Node 4阻塞报文B的概率非常大,因为Node 4已经阻塞了报文A。阻塞报文A的理由在很大概率上也会对报文B适用。此时两个虚通路都被同一种类型的报文阻塞,其他报文将无法通过。因此在实际应用中,相同类型的数据报文多使用同一个VC进行数据传递,而在PCIe总线中,一个TC只能对应一个VC

目前多通路技术的应用已经普遍应用到网络传输中,虚通路是一种防止节点拥塞的有效方法。但是在网络传送中,还存在一种不可避免的拥塞现象,即某一条链路或者某个节点是整个系统的瓶颈。

我们假设92 Node 4将报文转发到Node 5的速度低于Node 3发送报文的速度。在这种情况下,Node 4将成为整个传送路径上的瓶颈,无论Node 4中的缓存12有多大,总会被填满,从而造成节点拥塞。

当缓存填满后,如果Node 3继续向Node 4发送报文时,Node 4将丢弃这些报文,之后Node 3将会择时重发这个报文,而Node 4仍然会继续丢弃这个报文,这种重复丢弃的行为将极大降低网络带宽的利用率,而且Node 3也将会成为网络中新的瓶颈,从而引发连锁反应,造成整个网络的拥塞。为了避免这类事件发生,网络中的各个组成部件需要对数据传送进行一定的流量控制,合理地接收和发送报文。

如上文所述,在网络中有两类资源,一个是数据通路,另一个是数据缓冲。而流量控制的作用是合理地管理这两类资源,使这些资源能够被有效利用。
]
0 0