PCIe学习之《理解TLP的基本结构》

发布时间:2026/9/10 18:53:48

PCIe学习之《理解TLP的基本结构》 PCIe学习之《理解TLP的基本结构》理解TLP的组成帧头Header 数据载荷Data Payload Digest可选理解帧头各字段含义Fmt[1:0]字段表示帧头大小以及是否包含数据载荷00b 3DW 头部无数据01b 4DW 头部无数据10b 3DW 头部有数据11b 4DW头部有数据。Type[4:0]字段Type 字段与 Fmt[1:0] 字段一起使用以指定事务类型、头部大小以及是否存在数据载荷。具体表示事务类型见附表。TC流量类别TC用于为TLP分配优先级支持8个等级TC0到TC7数值越大优先级越高绝大多数设备默认使用TC0。系统会为高优先级TC如TC7分配独立的VC缓冲区确保其优先被处理。正确使用TC可避免重要数据如视频流被海量普通数据阻塞。TDTLP 摘要字段存在设置为 1 时该 TLP 包含可选的 1 DW TLP 摘要字段其中包含 ECRC 值。所有接收端必须使用此位检查摘要字段的存在。TD1 但无摘要字段的 TLP 被处理为畸形 TLP。如果设备支持 ECRC 检查且 TD1则必须执行 ECRC 检查。如果设备不支持 ECRC 检查可选则必须忽略摘要。EP中毒数据EP 0数据有效。EP 1数据无效。事务仍会正常完成但接收方应忽略数据。此机制常用于错误处理。Attr属性Bit 5 Relaxed Ordering (宽松排序)当 0 时严格排序如同在单车道上按序行驶所有TLP数据包必须严格按照发出的顺序到达前一个未完成后一个就不能超车。这会拖慢传输速度尤其在大数据量时。当 1 时宽松排序允许“超车”。在高速公路上如果目的地不同不同数据流允许后面的车TLP超过前面的车。这能大幅提高总线利用率和吞吐量是PCIE高速传输的关键。Bit 4 No Snoop (禁止侦听)当 0 时默认需要侦听当CPU要读取数据时会先检查缓存Cache 里是否已有副本即“Snoop侦听”过程。这会产生额外开销但在需要保证数据一致性时是必需的。当 1 时禁止侦听明确告诉系统“别查缓存了直接从内存拿数据”这跳过了缓存检查让数据传输“飞”起来但不保证CPU缓存与内存数据完全同步。Length [9:0]TLP 数据载荷传输大小以 DW 为单位。最大传输大小为 10 位2^10 1024DW4KB。编码0000000001b 1DW … 1111111111b 1023DW0000000000b 1024DW。Last DW和First DW字节使能TLP包传输的最小单位是4字节DW如果一次传输不满足四字节整数倍时就需要用到Last DW和First DW字段用来屏蔽掉4字节中多余的字节以保证传输字节的任意性。例如我要通过一个TLP包传输27字节的数据此时不满足4字节的整数倍可以设置First DW1100b使第一个DW的后两个字节有效设置 Last DW0001b使最后一个DW的第一个字节有效。中间的24字节刚好6个DW。理解数据载荷可选字段。0-1024 DW 载荷可进一步使用字节使能来获得字节地址和字节传输大小分辨率。理解Digest可选可选字段。如果存在始终为 1 DW 大小。用于端到端 CRCECRC和数据中毒。理解3DW Header和4DW Header的区别32位 vs 64位地址寻址注意3DW 头部和 4DW 头部之间的区别在于起始地址字段的位置和大小3DW 头部32 位寻址地址位 31:2 在 Bytes 8-11 中Bytes 12-15 不使用。4DW 头部64 位寻址地址位 31:2 在 Bytes 12-15 中地址位 63:32 在 Bytes 8-11 中。其他头部字段相同。列出TLP的四种事务类型Memory、IO、Configuration、Message地址空间事务类型用途内存Memory读、写向/从系统内存映射中的某个位置传输数据。协议还支持锁定内存读事务。IO读、写向/从系统 IO 映射中的某个位置传输数据。PCI Express IO 地址分配给传统设备。原生 PCI Express 设备不允许使用 IO 寻址。配置Configuration读、写向/从 PCI Express 设备配置空间中的某个位置传输数据。与 PCI 一样配置用于发现设备能力、编程即插即用功能并使用 4KB PCI Express 配置空间检查状态。消息Message基线、厂商特定提供带内消息传递和事件报告不消耗内存或 IO 地址资源。这些事务的处理方式与 posted 写事务相同。
延伸阅读

更多相关文章

2026/9/7 0:21:01

2026API聚合平台横评:企业级生产环境实测,这六个维度决定胜负

企业将大语言模型嵌入核心流程之际, 直接对各家厂商官方接口而言, 成了难以言说的痛点, 此痛点包含协议碎片、价格模糊以及稳定性不可控等情况。于是, 聚合 API 中转平台就成了无法绕开的中间层。然而, 市面上的平台良莠不齐, 究竟哪一个能够经受住生产环境的考验呢? 在二零二…

2026/9/10 18:49:07

医疗知识图谱问答系统实战:Python+Neo4j实现KBQA

简介:这是一份面向课程设计与知识图谱入门学习的医疗知识图谱问答系统Python工程,适合希望快速搭建轻量级问答Demo的开发者。项目包含设计报告Word、完整源码、医疗数据与运行截图,围绕“构建医疗知识图谱—实现简单对话系统”展开&#xff0…

2026/9/10 18:49:07

MySQL异步复制架构实战与避坑指南

1. MySQL高可用架构的核心价值与挑战 MySQL作为最流行的开源关系型数据库,其高可用架构一直是企业级应用的核心需求。传统异步复制方案虽然看似简单,但在实际生产环境中却暗藏诸多陷阱。我经历过三次因为异步复制配置不当导致的线上事故后,决…

2026/9/10 18:49:07

离线元强化学习:从静态数据到快速任务适应的关键技术解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/10 18:49:07

AI时代下的人类特质保留与生存策略

1. 项目概述:当技术成为日常的生存实验三年前在旧金山湾区的一次科技沙龙上,有位神经科学家展示了一组令人不安的数据:普通上班族平均每天要与AI进行87次交互,从起床的智能闹钟到通勤的导航推荐,这个数字在2032年的今天…

2026/9/10 18:49:07

星舰仿真系统开发:多物理场耦合与高精度建模实践

1. 项目背景与核心价值去年参与某航天科研机构的仿真系统开发时,我第一次接触到星舰这类超重型运载火箭的仿真需求。与常规火箭不同,星舰两级完全可重复使用的特性,给仿真系统带来了前所未有的挑战——不仅要模拟发射阶段的复杂动力学过程&am…

2026/9/10 18:44:06

列表推导式 vs 生成器表达式,一次说透内存与性能差异

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/10 16:39:38

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/10 11:16:38

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 0:00:55

目录对比去重实战:用哈希算法精准清理重复文件

我电脑里现在还有一块换了三次机的“数据墓地”硬盘,里面存着2016年以前所有旧笔记本的完整备份。平时不觉得有什么,直到前阵子想把它整理归档,发现同一个安装包、同一批照片、同一份论文草稿,在几个不同的备份目录里反复出现。更…

2026/9/10 0:00:55

Leaflet离线地图完整Demo合集:内网部署与坐标纠偏实战

简介:这是一份面向Web GIS开发者的LeafLet离线地图示例合集,帮助开发者快速掌握离线地图从搭建到交互的完整流程。压缩包共723个文件,大小14.06MB,以319个js脚本、175个html页面和29个css样式文件为主体,配合png/svg图…

2026/9/10 0:00:55

MATLAB读取Rinex 3.02观测文件:多系统GNSS数据解析实战

简介:基于MATLAB开发的Rinex3.02版观测文件(o文件)读取代码包,面向卫星定位导航方向的学习者与研究人员,用于解决新版观测文件的数据解析、历元提取与时间转换问题。压缩包共4个文件,包含两个m脚本、一个19…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/10 15:49:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码