Chapter 7: Quality of Service

张开发
2026/4/16 14:19:48 15 分钟阅读

分享文章

Chapter 7: Quality of Service
Chapter 7: Quality of Service书籍: PCI Express Technology 3.0 (MindShare Press, 2012)页码: Book Pages 277-300 | PDF Pages 336-365学习日期: 2026-04-13本章概要本章介绍 PCIe 的 QoS (Quality of Service) 机制包括 Traffic Class (TC)、Virtual Channel (VC)、VC 仲裁、端口仲裁、QoS 配置以及等时同步 (Isochronous) 传输。7.1 QoS 概述什么是 QoS?QoS 确保不同类型的流量获得不同的服务质量带宽保证: 确保关键流量有足够带宽延迟保证: 确保关键流量的延迟可预测优先级: 高优先级流量优先处理PCIe QoS 机制机制作用Traffic Class (TC)标识流量优先级 (0-7)Virtual Channel (VC)流量逻辑隔离VC Arbitration决定哪个 VC 的包优先发送Port Arbitration决定哪个端口的包优先发送7.2 Traffic Class (TC)TC 定义8 个 Traffic Classes(TC 0-7)TC 字段在 TLP Header 中 (3 bits)相同 TC 的包必须遵守排序规则不同 TC 的包没有排序关系TC 到 VC 的映射一个或多个 TC 可以映射到同一个 VC映射关系在每个端口独立配置推荐: 每个 TC 映射到独立 VC 以获得最佳 QoS为什么需要 TC?允许软件标记不同流量为不同优先级视频、音频等实时流量需要高优先级背景流量可以低优先级7.3 Virtual Channels (VC)VC 概念每个 VC 是独立的逻辑通道每个 VC 有独立的Flow Control 缓冲区排序队列仲裁优先级VC 数量所有设备必须支持VC0其他 VC (VC1-VC7) 可选链路两端协商启用的 VC 数量VC 仲裁当多个 VC 有包等待发送时VC 仲裁决定优先级仲裁方式说明Strict Priority高优先级 VC 总是优先Round Robin (RR)轮流发送Time-Based WRR (TBWRR)基于时间的加权轮询VC 仲裁表设备支持可编程的 VC 仲裁表允许软件配置优先级。7.4 Port ArbitrationPort Arbitration 定义当同一个 Ingress Port 的多个 VC 都有包要发送到同一个 Egress Port 时需要 Port Arbitration。Port Arbitration 类型类型说明Hardware Default固定的默认策略Round Robin所有 VC 轮流Time-Based WRR基于时间加权Weighted Round Robin基于权重7.5 QoS 配置流程软件配置步骤1. 发现设备能力:设备支持多少个 VC?支持哪些仲裁方式?2. 为流量分配 TC:视频流量 → TC 7 (最高)音频流量 → TC 6普通数据 → TC 03. 配置 TC 到 VC 映射:TC 7 → VC7TC 6 → VC6…4. 配置 VC 仲裁:高优先级 VC 使用 Strict Priority5. 配置 Port Arbitration:使用 TBWRR 确保带宽分配7.6 Isochronous (等时同步) 传输等时传输需求视频/音频流: 需要稳定的带宽和延迟可预测的间隔: 数据包必须以固定间隔发送无阻塞: 缓冲区必须足够大以避免反压Isochronous Contract软件Isochronous Broker与 PCIe Fabric 之间的协议确认路径支持等时流量分配必要的带宽配置所有中间设备的 QoS 参数Isochronous 端点要求实现多个 VCVC 仲裁使用 Strict Priority流控缓冲区足够大FC Update 快速返回以避免停顿Isochronous Switch 要求TC/VC 映射必须匹配链路两端VC 仲裁使用 Strict Priority (等时出口)Port 仲裁使用 TBWRR7.7 Producer/Consumer 模型基本排序规则PCIe 排序规则(同一 TC 内):Posted Write → Posted Write (可乱序)Posted Write → Non-Posted Read (OK)Read → Read (可乱序)Read → Write (可乱序)Completion → Completion (可乱序)Relaxed Ordering (RO)RO 1: 允许后续 Posted Write 越过前面的 Posted Write打破严格排序提高性能注意: 需要软件确保没有依赖关系Write Merging多个对同一地址的写可以合并RO 1 时更容易合并需要软件确保安全7.8 ID-Based Ordering (IDO)问题传统排序不考虑请求者 ID可能导致性能问题。IDO 解决方案允许来自不同 Requester 的包乱序来自相同 Requester 的包保持顺序减少不必要的等待使用场景不同设备访问共享资源一个设备的事务不应被另一个不相关设备阻塞7.9 Deadlock Avoidance潜在死锁多个 VC 的严格排序可能导致死锁VC A 等待 VC BVC B 等待 VC A避免方法VC 缓冲区分组 (Posted/Non-Posted/Completion)ID-Based Ordering软件正确配置优先级7.10 带宽和延迟管理带宽分配问题多个高优先级流量可能超额订阅带宽TBWRR确保每个流量获得预定份额延迟问题交换机缓冲区大小影响延迟等时流量需要可预测的延迟Snoop 事务可能影响延迟Root Complex SnoopingRoot Complex 对内存访问进行 Snoop高优先级 VC 可以配置 “Reject Snoop” 以减少延迟关键知识点速记TC (Traffic Class): 0-7标识流量优先级VC (Virtual Channel): 逻辑隔离通道每个 VC 独立流控和排序相同 TC 必须遵守排序规则不同 TC 无排序关系VC 仲裁: 决定多个 VC 之间的优先级 (Strict/RR/TBWRR)Port 仲裁: 决定同一端口多个 VC 的带宽分配Isochronous: 等时同步传输保证带宽和延迟Isochronous Broker: OS 级软件管理端到端等时合同Relaxed Ordering: RO1 允许乱序提高性能IDO: 基于 ID 的排序减少不必要的等待TC/VC 映射: 每个端口独立配置思考题为什么不同 TC 的包没有排序关系这个设计对性能有什么影响Strict Priority 仲裁可能导致什么问题如何避免Isochronous 传输相比 Best-Effort 传输需要哪些额外支持为什么等时流量的 Flow Control 缓冲区必须更大Relaxed Ordering 什么时候可以安全使用什么时候不能使用笔记结束

更多文章