棋子 · 1月9日

PCIe 6.0 :Virtual Channel 总结

1.VC 的基础概念

随着数据传输速率的不断提高以及应用场景的日益复杂,PCIe 需要更精细化的机制来管理和调度数据的传输,以满足不同类型数据(如实时性要求高的控制信息、大容量的数据文件等)的差异化需求。PCIe 虚拟通道(VC , Virtual Channels)应运而生,它是一种在物理 PCIe 链路基础上,通过逻辑划分创建出的多个独立的数据传输通道,每个 VC 拥有独立的缓存和流量控制等机制,不同的 VC 可以分配不同的业务数据使用。

2.VC 的现状

为了保证每个 VC 都能支持满带宽的数据传输,因此任意 VC 都需要足够的缓存和逻辑。为了减少资源的消耗,目前很多主流设备仅用了一个 VC。例如各类 GPU、智能网卡,以及各类服务内部的 PCIe 插槽。PCIe 协议允许将多个 TC(Traffic Class)映射到同一个 VC 上,仅使用一个 VC 的设备允许将不同的 TC 映射到 VC0 上。

3.VC 的规则

• PCIe Gen6 为了减少多 VC 的资源消耗,提供了一种 the Shared Flow Control 机制,允许所有使能的 VC 共享一套 Flow Control 机制。同时每个 VC 还可以拥有专用(dedicated FC credit )的流控信用量,跟 gen5/gen4/gen3/gen2/gen1 一致。

•  当 PCIe 设备支持多个 VC 时,VC0 的初始化是由硬件逻辑自动完成的,而不需要软件的参与。其他 VC 的使能需要系统软件参与配置。

• TC0 必须映射到 VC0,这是固定映射。非 0 TC 和非 0 VC 的映射关系是灵活可配置的。

image.png

4.VC 的结构图

PCIe Port 可以实现 1 到 8 个 VC。每个 VC 拥有一个唯一的 VC ID。同一个 port 的不同的 VC 的 VC ID 不能相同。同一条 link 的两端的 VC 数量匹配时,两个 port 对应 VC 的 VC ID 必须相同。

Image

Image

5.TC/VC 映射规则

TC0~TC7 必须映射到一个特定的 VC 上。例如 TC0/VC0 是固定映射关系,即 TC0 必须映射到 VC0。TC1~TC7 对 VC 的映射必须遵守如下规则:

一个 TC 或者多个 TC 可以映射到同一个 VC 上

一个 TC 不能映射到多个 VC 上

如果支持 UIO,则必须支持 VC3,在使用 UIO 之前必须使能 VC3。如果存在一个 VC 支持 UIO,则必须是 VC3,如果存在两个 VC 支持 UIO,则必须是 VC3 和 VC4

Image

Image

6.TC 和 VC 规则总结

所有的 PCIe 设备都必须支持 VC0 和 TC0

每个 VC 拥有独立的流控机制

不同 TC 的 TLP 之间没有 ordering 要求

属于不同 VC 的 TLP 之间没有 ordering 要求

Ingress port 收到一个 TLP,且其 TC 对应的 VC 没有使能,则此 TLP 会被当做畸形

Switch 转发 TLP 时,如果 Egress port 检测到其 TC 对应的 VC 没有使能,则此 TLP 会被 Egress port 当做畸形

Switch 的每个 port 都必须支持独立的 TC/VC 映射

7.VC 的使能

一旦系统软件完成了所有 VC 的使能,协议推荐系统软件将 Streamlined Virtual Channel Extended Capability Structure 中的 SVC Port Control Register 的 VC Enablement Completed 字段置 1 表示 VC 初始化完成

Image

Image

END

作者:IC小鸽
文章来源:IC小鸽

推荐阅读

更多 IC 设计干货请关注IC设计专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。

推荐阅读
关注数
20593
内容数
1313
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息