PCIE协议-2-事务层规范-Virtual Channel (VC) Mechanism

news2024/12/26 11:12:07

2.5 虚拟通道(VC)机制

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

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

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

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

  • 请求者只能生成带有TC0标签的请求。(请注意,如果请求者使用除TC0之外的TC标签发起请求,那么这些请求可能会被实现扩展VC能力并应用TC过滤的链路另一侧的组件视为格式错误。)
  • 完成者必须接受带有非TC0标签的请求,并且必须保留TC标签。也就是说,它生成的任何完成事务都必须具有与请求标签相同的TC标签。

  • Switch必须将所有TC映射到VC0,并且必须转发所有事务,而不管TC标签是什么。

包含能够生成非TC0标签请求的功能的设备必须实现适当的VC(虚拟通道)或MFVC(多功能虚拟通道)能力结构(如适用),即使它只支持默认的VC。示例功能类型包括端点和根端口。这是为了能够启用超出默认配置的TC到VC的映射。它必须根据VC和MFVC能力结构的软件编程遵循TC/VC映射规则。

图2-45阐述了虚拟通道的概念。从概念上讲,通过VC流动的流量在传输端被复用到一个共同的物理链路资源上,并在接收端被解复用到单独的VC路径上。

在交换机内部,每个虚拟通道都需要专用的物理资源。图2-46从概念上展示了交换机内(如图2-45所示)支持上游方向流量流动所需的VC资源。

多功能设备(MFD)可以实现类似于交换机中的一部分虚拟通道资源,目的是为了管理来自不同功能到设备上游出口端口的上游请求的服务质量(Quality of Service,QoS)。

 2.5.1 虚拟通道识别(VC ID)

PCI Express端口可以支持1到8个虚拟通道 - 每个端口独立配置/管理,因此允许实现根据使用模型特定要求变化每个端口支持的虚拟通道数量。 这些虚拟通道使用VC ID机制唯一标识。

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

所有支持超过VC0的端口必须根据第7.9.1节的定义至少提供一个VC能力结构。多功能设备(MFD)允许实现第7.9.2节中定义的MFVC(多功能虚拟通道)能力结构。对于仅支持默认TC0/VC0配置的端口,提供这些扩展结构是可选的。配置软件负责为链路的两侧端口配置匹配数量的VC。这是通过扫描层次结构并使用与支持多于默认VC0的端口相关联的VC或MFVC能力寄存器来完成的,以建立链路的VC数量。在端口内分配VC ID到VC硬件资源的规则如下:

  • VC ID分配必须在每个端口内唯一 - 相同的VC ID不能分配给同一端口内的不同VC硬件资源。
  • VC ID分配必须在链路两侧的两个端口上相同(在VC数量及其ID方面匹配)。

如果MFD实现了MFVC能力结构,其VC硬件资源与其功能(Functions)的任何VC能力结构相关联的VC硬件资源是不同的。VC ID的唯一性要求(上述第一点)对MFVC和任何VC能力结构仍然单独适用。此外,VC ID跨链路匹配要求(上述第二点)适用于MFVC能力结构,但不适用于功能(Functions)的VC能力结构。

  • VC ID 0被分配并固定给默认VC。

2.5.2 TC到VC映射

每个支持的流量类别(Traffic Class)都必须映射到一个虚拟通道上。TC0到VC0的映射是固定的。除了TC0之外的TC到VC的映射是系统软件特定的。然而,映射算法必须遵守以下规则:

  • 一个或多个TC可以映射到一个VC上。
  • 任何端口或端点功能上,一个TC不能映射到多个VC上。
  • 链路两侧的端口上TC/VC映射必须相同。

表2-41提供了TC到VC映射的示例。

图2-47提供了在几种不同链路配置中TC(流量类别)到VC(虚拟通道)映射的图形说明。有关TC/VC的额外考虑,请参考第6.3节。

2.5.3 VC和TC规则

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

  • 所有设备必须支持通用输入/输出流量类别,即TC0,并且必须实现默认的VC0。
  • 每个虚拟通道(VC)都有独立的流量控制。
  • 不同TC之间不需要排序关系。
  • 不同VC之间不需要排序关系。
  • 交换机的点对点能力适用于交换机支持的所有虚拟通道。
  • 多功能设备(MFD)在不同功能之间的点对点能力适用于MFD支持的所有虚拟通道。
  • 具有未映射到入口端口的任何已启用虚拟通道(VC)的流量类别(TC)的事务被视为畸形事务层数据包(TLP)由接收设备处理。
  • 对于交换机,具有未映射到目标出口端口的任何已启用VC的TC的事务被视为畸形TLP。
  • 对于根端口,具有未映射到目标根复合体(RCRB)的任何已启用VC的TC的事务被视为畸形TLP。
  • 对于具有多功能虚拟通道(MFVC)能力结构的多功能设备(MFD),任何具有未映射到MFVC能力结构中的已启用VC的TC的事务被视为畸形TLP。
  • 交换机必须支持每个端口独立的TC/VC映射配置。
  • 根复合体必须支持每个RCRB、相关根端口和任何RCiEPs独立的TC/VC映射配置。
  • 更多关于VC和TC机制的细节,包括配置、映射和仲裁,请参阅第6.3节。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1679211.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

异步I/O库-libuv介绍

1.简介 libuv是一个跨平台的支持事件驱动的异步I/O的库,使开发者可以以非阻塞的方式执行文件I/O操作、网络通信、子进程管理等。 libuv的主要特点包括: 事件循环:libuv有一个基于事件循环的模型,它不断地轮询事件,并…

VC++ 6.0开发文件重复整理工具开发

开发背景:手机上的文件越来越多,想要备份下文件结果文件太多杂乱无章且重复文件冗余存储造成存储空间滥发,所以决定开发一个小工具来整理重复文件。由于本人电脑运行慢,选择VC6.0作为开发IDE,操作虽然麻烦点&#xff0…

【记录】docker笔记(五):Docker网络-Network Namespace

Docker 网络理论基础 要了解docker网络,先了解如下基础概念。 Network Namespace Docker 网络的底层原理是 Linux 的 Network Namespace ,所以对于 Linux Network Namespace 的理解对 Docker 网络底层原理的理解非常重要。 简介 Network Name…

java技术:nacos

目录 一、docker安装 1、创建一个nacos 2、复制配置信息出来(方便修改配置文件) 3、删除nacos 4、修改配置文件(主要是一下几个) 6、创建数据库 nacos 7、重启nacos mysql 一、docker安装 1、创建一个nacos docker run …

添砖Java之路(其七)——static

目录 static: 1.被类的所有对象所共享(和c有点像) 2.多了一种调用方法,可以通过类名调用 3.随着类的加载而加载,是优先于对象的存在。 工具类: 为什么主类的方法要加static: 理解 public static void main&#…

你还在手动加好友?试试这款神器,释放双手自动添加!

你还在手动添加微信好友吗?尤其是在忙碌的时候,手动加好友不仅费时又很容易出错。试试这个自动添加好友神器——个微管理系统,释放你的双手,轻松拓展好友列表! 1、多号同时登录在线 系统支持多个微信号同时登录在线&…

USB-OTG:1、OTG原理介绍

目录 🍅点击这里查看所有博文 随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记…

运维别卷系列 - 云原生监控平台 之 05.prometheus alertManager 实践

文章目录 [toc]Alertmanager 简介Alertmanager 实现的核心概念GroupingInhibitionSilencesClient behaviorHigh Availability Alertmanager 配置文件globaltemplatesrouteinhibit_rulesreceivers Alertmanager 部署创建 cm创建 svc创建 stsPrometheus 配置告警Prometheus 配置文…

010.理解异步性

异步消息传递是响应式系统的一个关键特性。但到底是什么异步性,为什么它对响应式应用程序如此重要?我们的人生注定在许多异步任务中。你可能没有意识到,但你的日常活动如果它们本质上不是异步的,那就太烦人了。要理解什么是异步,…

评价决策类-层次分析法

师从江北 问题引出 归一化处理:指标的数组[a b c]归一化处理得到[a/(abc),b/(abc),c/(abc)] 因为每个指标的重要性不同,所以要加上一个权重 如何科学的确定权重,就要用到层次分析法(AHP) 模型原理 建立递阶层次结构模…

利用一下Chat-GPT写两段处理字符串的简单样例ABAP程序。这样可以大大提高工作效率。Chat-GPT的能力真是让人震撼。

我让Caht-GPT写两段ABAP 程序,第一段程序要求如下: 判读字符串里面是否含有特殊字符,这里说的特殊字符不包括键盘上能够输入的字符,如果有这样的特殊字符则输出来。 DATA: lv_string TYPE string VALUE 你的字符串,lv_result TYP…

数据结构——二叉树知识点详解!

引言:本篇博客将详细介绍到数据结构中的又一位大将——二叉树。它也是我们目前学到的第一个非线性的数据结构。并且本章将学到的概念居多,希望大家可以理解并牢记。 更多有关C语言和数据结构知识详解可前往个人主页:计信猫 目录 一&#xff0…

node.js的Express框架的介绍 与 安装详细教程

一、Express框架介绍 (1)Express定义: Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。 使用 Express 可以快速地搭建一个完整功能的网站。 &#xff08…

微信小程序快速开发-基础内容(内容真的又多又干货)

目录 实现横向布局效果 实现滚动效果 实现轮播图效果 实现文本长按选中复制效果 渲染 HTML 标签 按钮组件的使用效果 图片组件的使用效果 Mustache 语法 动态绑定内容(定义变量,渲染变量) 动态绑定属性(将属性定义为变量…

2024年中国国际厨卫家居展览会(上海KIB厨卫展)

中国国际厨卫家居博览会(KIB)由中国五金制品协会、中国国际贸易促进委员会轻工行业分会、北京奥维云网大数据科技股份有限公司主办。从最初的“中国国际橱柜、厨房卫浴产品与技术博览会(CIKB)”,到2001年与中国国际五金展&#xf…

LSTM与GAN创新结合!模型性能起飞,准确率超98%

今天来聊一个深度学习领域非常具有创新性的研究方向:LSTM结合GAN。 LSTM擅长处理和记忆长期的时间依赖关系,而GAN可以学习复杂的数据分布并生成逼真的数据样本。通过充分结合两者的优势,我们可以增强模型对复杂数据的处理能力,提…

scanf读取标准输入

内容 scanf函数的原理 多种数据类型混合输入 常用的数据输入/输出函数 程序员可以给程序输入数据,程序处理后会返回一个输出。C语言通过函数库读取标准输入,然后通过对应函数处理将结果打印到屏幕上,printf函数可以将结果打印到屏幕上。下…

英语学习笔记14——What color‘s your ... ?

What color’s your … ? 你的 …… 是什么颜色的? 词汇 Vocabulary case n. 箱子【封闭的】 相关:box n. 箱子【开口的】    bookcase n. 书架 补充:case n. 案件,案例 口语:It’s a small case.    小意思&…

稚晖君独家撰文:具身智能即将为通用机器人补全最后一块拼图

具身智能新纪元。 *本文为稚晖君独家供稿,「甲子光年」经智元机器人授权发布。稚晖君本名彭志辉,先后任职OPPO、华为,现为智元机器人CTO、首席架构师。 在ChatGPT之后,又一个大模型概念火了——具身智能(Embodied AI)。 在学术界,图灵奖得主、上海期智研究院院长姚期…

【数据结构】堆(超详细)

文章目录 前言堆的概念及结构堆的实现堆的向下调整算法(建小堆为例)堆的向上调整算法(建小堆为例)堆的初始化销毁堆堆的插入堆的删除(规定删堆顶的数据)取堆顶元素判断堆是否为空获取堆的个数 完整代码(包括测试代码&a…