注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

路雷米的博客

人生最难的就是在热爱和生计之间做选择, 愿每个人这一生 既对得起梦想又担得责任

 
 
 

日志

 
 

VC和端口仲裁  

2015-03-28 19:29:39|  分类: PCI-PCIE |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在Switch中存在多个端口,其中来自不同Ingress端口的报文可以发向同一个Egress端口,因此Switch必须要解决端口仲裁和路由选径的问题。所谓端口仲裁指来自不同Ingress端口的报文到达同一个Egress端口的报文通过顺序,端口仲裁机制如图4?11所示。

VC和端口仲裁 - 路雷米 - 路雷米的博客
在一个Switch中设有仲裁器,该仲裁器规定了数据报文通过Switch的规则。

在PCIe总线中存在两种仲裁机制,分别是基于VC和基于端口的仲裁机制。

端口仲裁机制主要针对RC和Switch,当多个Ingress端口需要向同一个Egress端口发送数据报文时需要进行端口仲裁

具体地讲,在PCIe体系结构中有三个端口,需要进行端口仲裁。

  • Switch的Egress端口。当EP A和EP B同时访问EP C,D或者DDR-SDRAM时,需要通过Switch的Egress端口C。此时Switch需要进行端口仲裁确定是EP A的数据报文还是EP B的数据报文优先通过Egress端口C。
  • 多端口RC的Egress端口。当RC的端口1和端口3同时访问Endpoint C时,RC的端口2需要进行端口仲裁,决定来自RC哪个端口的数据可以率先通过。
  • RC通往主存储器的端口。当RC的端口1、端口2和端口3同时访问DDR控制器时,这些数据报文将通过RC的Egress端口4,此时需要进行端口仲裁。

在PCIe体系结构中,链路的端口仲裁需要根据每一个VC独立设置,而且可以使用不同的算法进行端口仲裁。

下文以图4?11中,Switch的两个Ingress端口A和B向Egress端口C发送数据报文为例,简要说明端口仲裁和VC仲裁的使用方法,其过程如图4?12所示。

VC和端口仲裁 - 路雷米 - 路雷米的博客

基于VC的仲裁是指发向同一个端口的数据报文,根据使用的VC而进行仲裁的方式。如上图所示,当来自端口B和端口A数据报文(分别使用VC0和VC1通路)在到达端口C之前,需要首先进行端口仲裁后,才能进行VC仲裁。PCIe总线规定了3种VC仲裁方式, 分别为Strict Priority,RR(Round Robin)和WRR(Weighted Round Robin)算法。

当使用Strict Priority仲裁方式时,发向VC7的数据报文具有最高的优先级,而发向VC0的数据报文优先级最低。PCIe总线允许对Switch或者RC的部分VC采用Strict Priority方式进行仲裁,而对其他VC采用RR和WRR算法,如VC7~4采用Strict Priority方式,而采用其他方式处理VC3~0。

使用RR方式时,所有VC具有相同的优先级,所有VC轮流使用PCIe链路。WRR方式与RR算法类似,但是可以对每一个VC进行加权处理,采用这种方式可以适当提高VC7的优先权,而将VC0的优先权适当降低。

我们假定Ingress端口A和Ingress B向Egress端口C进行数据传递时,使用两个VC通路,分别是VC0和VC1。其中标签为TC0~3的数据报文使用VC0传送,而标签为TC4~7数据报文使用VC1传送。

而数据报文在离开Egress端口C时,需要首先进行端口仲裁,之后再通过VC仲裁,决定哪个报文优先传送。数据报文从Ingress A/B端口发送到Egress C端口时,将按照以下步骤进行处理。

(1) 首先到达Ingress A/B端口的数据报文,将根据该端口的TC/VC映射表[8]决定使用该端口的哪个VC通道。如图4?12所示,假设发向端口A的数据报文使用TC0~TC3,而发向端口B的数据报文使用TC0~TC7,这些数据报文在端口A中仅使用了VC0通道,而在端口B中使用了VC0和VC1两个通道。

(2) 数据报文在端口中传递时,将通过路由部件(Routing Logic),将报文发送到合适的端口。如图4?12所示,端口C可以接收来自端口A或者B的数据报文。

(3) 当数据报文到达端口C时,首先需要经过TC/VC映射表,确定在端口C中使用哪个VC通路接收不同类型的数据报文。

(4) 对于端口C,其VC0通道可能会被来自端口A的数据报文使用,也可能会被来自端口B的数据报文使用。因此在PCIe的Switch中必须设置一个端口仲裁器,决定来自不同数据端口的数据报文如何使用VC通路。

(5) 数据报文通过端口仲裁后,获得VC通路的使用权之后,还需要经过Switch中的VC仲裁器,将数据报文发送到实际的物理链路中。

PCIe总线规定,系统设计者可以使用以下三种方式进行端口仲裁。

(1) Hardware-fixed仲裁策略。如在系统设计时,采用固化的RR仲裁方法。这种方法的硬件实现原理较为简单,此时系统软件不能对端口仲裁器进行配置。

(2) WRR仲裁策略,即加权的RR仲裁策略。

(3) Time-Based WRR仲裁策略,基于时间片的WRR仲裁策略,PCIe总线可以将一个时间段分为若干个时间片(Phase),每个端口占用其中的一个时间片,并根据端口使用这些时间片的多少对端口进行加权的一种方法。使用WRR和Time-Based WRR仲裁策略,可以在某种程度上提高PCIe总线的QoS。

PCIe设备的Capability寄存器规定了端口仲裁使用的算法。有些PCIe设备并没有提供多种端口仲裁算法,可能也并不含有Capability寄存器。此时该PCIe设备使用Hardware-fixed仲裁策略。

  评论这张
 
阅读(323)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018