PCIe学习笔记(23)

虚拟通道(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映射配置。

  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PCIE-DMA是一种基于PCIe接口的直接内存访问技术,能够实现高速数据传输。在我的学习笔记中,我详细记录了与PCIE-DMA相关的知识和学习心得。 首先,我了解到PCIE-DMA技术的基本原理和作用。PCIE-DMA可以通过PCIe总线直接访问系统内存中的数据,而不需要过多的CPU干预,提高数据传输的速度和效率。这种技术在需要大量数据传输的场景下非常有效,比如高性能计算、数据采集等。 其次,我深入学习PCIE-DMA的工作原理。PCIE-DMA的核心是DMA控制器,它负责管理和控制数据传输的流程。当设备需要读写内存中的数据时,它通过DMA控制器发送请求,然后DMA控制器生成一个事务,将数据直接传输到或从内存中。这样就大大减少了CPU的参与,提高了数据传输的效率。 另外,我还学习PCIE-DMA的配置和编程方法。PCIE-DMA的配置主要包括硬件配置和软件配置两个部分。硬件配置通常涉及到DMA控制器和PCIe接口的初始化和配置,软件配置则需要编写驱动程序来驱动DMA控制器和处理数据传输过程中的事件和异常。这部分内容对于我来说还比较新颖,需要更多的实践和实践。 最后,我总结了PCIE-DMA的应用场景和发展前景。PCIE-DMA在高性能计算、数据采集等领域具有广阔的应用前景。随着数据量的不断增加和传输速度的要求越来越高,PCIE-DMA技术的需求也将越来越大。因此,对于我来说,学习掌握PCIE-DMA技术非常有价值。 通过学习和记录PCIE-DMA的相关知识和经验,我对这项技术有了更深入的理解和掌握。希望将来能通过应用PCIE-DMA技术解决实际问题,为科研和工程项目的顺利进行做出贡献。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值