虚拟通道(VC)机制

虚拟通道(VC)机制支持在整个结构中承载使用TC标签区分的流量。vc的基础是独立的结构资源(队列/缓冲区和相关的控制逻辑)。这些资源被用来在具有完全独立的流控制的不同VC之间跨链路移动信息。这对于解决流控制引起的阻塞问题至关重要,其中单个流量可能为系统中的所有流量创建瓶颈。

TC流量通过将具有特定TC标签的数据包映射到相应的vc而与vc相关联。VC和多功能虚拟通道(MFVC)机制允许灵活地将TC映射到VC上。在最简单的形式中,TC可以一对一地映射到VC。为了权衡性能和成本,PCI Express提供了将多个TC映射到单个VC的功能

当一个或多个TC与由虚拟通道识别(VC ID)指定的物理VC资源关联时,就会建立一个虚拟通道。这个过程由配置软件控制,

 支持默认的TC0/VC0以外的TC和VC是可选的。TC0与VC0的关联是固定的,即“硬连线”,必须得到所有组件的支持。因此,基线TC/VC设置不需要任何特定于VC的硬件或软件配置。为了确保互操作性,不实现可选虚拟通道能力结构或多功能虚拟通道能力结构的组件必须遵守以下规则:

•请求者必须只生成带有TC0标签的请求。(请注意,如果请求者发起的请求带有TC0以外的TC标签,则该请求可能会被链路另一端实现扩展VC功能并应用TC过滤的组件视为畸形请求。)

•Completer必须接受带有TC0以外的TC标签的请求,并且必须保留TC标签。也就是说,它生成的任何Completion必须具有与请求的标签相同的TC标签。

•SW必须将所有TC映射到VC0,并且无论TC标签如何,都必须转发所有事务。

 包含能够生成带有TC标签而不是TC0的请求的功能的设备必须实现合适的VC或MFVC能力结构(如适用),即使它只支持默认的VC。功能类型为“EP”和“Root Ports”。这是在缺省配置之外启用TC映射所必需的。它必须根据VC和MFVC能力结构的软件编程遵循TC/VC映射规则。

虚拟通道的概念如图2-45所示。从概念上讲,流经VC的流量在发送端被多路复用到一个公共的物理链路资源上,在接收端被解路复用到单独的VC路径上

在交换机内部,每个虚拟通道都需要专用的物理设备,如图2-46所示

虚拟通道标识(VC ID)

PCI Express Ports可以支持1到8个虚拟通道——每个端口都是独立配置/管理的,因此允许实现根据特定于使用模型的需求来改变每个端口支持的VC数量。

这些VC是使用VC ID机制唯一标识的。

请注意,虽然数据链路层协议(DLLPs)包含用于流量控制计算的VC ID信息,但事务层包(TLPs)则不包含。为了流量控制计算的目的,将TLPs与VC ID关联是在链路的每个端口使用TC到VC映射完成的

端口内VC硬件资源的VC ID分配规则如下:

每个端口的VC ID分配必须是唯一的—相同的VC ID不能分配给同一端口内的不同VC硬件资源。

•链路两端的两个端口的VC ID分配必须相同(在VC数量和VC ID方面匹配)。

•如果一个MFD实现了一个MFVC能力结构,那么它的VC硬件资源与与它的功能的任何VC能力结构相关联的VC硬件资源是不同的。VC ID惟一性要求(上面的第一个项目)仍然单独适用于MFVC和任何VC Capability结构。此外,VC ID交叉链接匹配要求(上面第二个项目)适用于MFVC Capability结构,而不适用于该功能的VC Capability结构。

VC ID 0被分配并固定为默认的VC

TC到VC映射

支持的每个Traffic Class(流量类)都必须映射到一个VC(虚拟通道)。TC0到VC0的映射关系是固定的

TC0以外的tc的映射是特定于系统软件的。但是,映射算法必须遵循以下规则:

•一个或多个TC可以映射到一个VC。

•一个TC不能在任何Port或Endpoint Function中映射给多个vc。

•TC/VC映射必须是相同的端口两端的链路。

TC到VC的映射示例如表

图2-47给出了几种不同Link配置下TC到VC的映射示意图。

VC和TC规则

以下是与TC/VC机制相关的关键规则总结:

•所有设备必须支持通用I/O流量分类,即TC0,并且必须实现默认的VC0。

•每个虚拟通道(VC)都有独立的流量控制。

•不同TC之间不需要排序关系。

•不同VC之间不需要排序关系。

•Switch的点对点功能适用于交换机支持的所有虚拟通道。

•MFD在不同功能之间的对等能力适用于MFD支持的所有虚拟通道。

•与未映射到入口端口中任何启用VC的TC的事务被接收设备视为畸形TLPs。

•对于Switch,与未映射到目标出口端口中任何已启用的VC的TC的事务被视为畸形TLPs。

•对于根端口,与TC的事务如果没有映射到目标RCRB中任何已启用的VC则被视为畸形的TLPs。

•对于具有MFVC能力结构的mfd,任何未映射到MFVC能力结构中启用的VC的TC事务都被视为畸形TLP。

Switch必须支持每个端口独立的TC/VC映射配置。

•根复合体必须支持每个RCRB、关联的根端口和任何rciep的独立TC/VC映射配置。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部