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 写事务相同。

相关新闻

如何利用Cool Request实现3倍API开发效率:IntelliJ IDEA中的智能调试革命

如何利用Cool Request实现3倍API开发效率:IntelliJ IDEA中的智能调试革命

如何利用Cool Request实现3倍API开发效率:IntelliJ IDEA中的智能调试革命 【免费下载链接】cool-request IDEA API、Java Method debug tools 项目地址: https://gitcode.com/gh_mirrors/co/cool-request 在Java后端开发领域,API调试和测试一直是…

2026/7/24 21:18:19 阅读更多 →
轮式人形机器人能用来做什么?

轮式人形机器人能用来做什么?

“稳不稳?贵不贵?多久能回本?坏了好修吗?会不会撞到我工人?”每次见客户,他们都把同样的问题甩在桌上,像五把匕首,刀刀见血。我理解。你被PPT机器人骗了太多次——那些在展馆里走两步…

2026/7/24 21:18:19 阅读更多 →
Keyboard Chatter Blocker:智能解决机械键盘连击问题的终极指南

Keyboard Chatter Blocker:智能解决机械键盘连击问题的终极指南

Keyboard Chatter Blocker:智能解决机械键盘连击问题的终极指南 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker 你是否曾因机…

2026/7/24 21:18:19 阅读更多 →

最新新闻

HarmonyOS7 TextInput 表单校验别拖到提交时:错误要贴着字段走

HarmonyOS7 TextInput 表单校验别拖到提交时:错误要贴着字段走

文章目录前言为什么这个问题经常被写乱字段状态怎么拆先把页面目标想清楚完整 ArkTS 示例把关键代码一段段拆开什么时候提示错误新手最容易踩的坑放进真实项目还要补什么写在最后前言 登录表单如果所有错误都等到提交时再提示,用户会一次看到一堆红字,还…

2026/7/24 21:29:22 阅读更多 →
HarmonyOS7 LongPressGesture 做编辑模式:长按只负责开门

HarmonyOS7 LongPressGesture 做编辑模式:长按只负责开门

文章目录前言为什么这个问题经常被写乱先把模式讲清楚先把页面目标想清楚完整 ArkTS 示例把关键代码一段段拆开交互细节新手最容易踩的坑放进真实项目还要补什么写在最后前言 长按进入编辑模式很常见,桌面图标、图片列表、频道管理都能用到。但这里最容易写乱的不是…

2026/7/24 21:29:22 阅读更多 →
ArcGIS Pro 从入门到实战基础篇(64):捕捉

ArcGIS Pro 从入门到实战基础篇(64):捕捉

编辑要素时,鼠标落点是否准确会直接影响几何质量,“捕捉”版块可以把光标吸附到符合条件的顶点、边或交点。 数据从哪来 工欲善其事,必先利其器,在学习 ArcGIS Pro 的各项功能之前,准备好合适的练习数据至关重要&…

2026/7/24 21:29:22 阅读更多 →
Diablo Edit2终极指南:如何5分钟内打造完美暗黑2角色,节省90%刷怪时间?

Diablo Edit2终极指南:如何5分钟内打造完美暗黑2角色,节省90%刷怪时间?

Diablo Edit2终极指南:如何5分钟内打造完美暗黑2角色,节省90%刷怪时间? 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否厌倦了在暗黑破坏神2中花费数小时…

2026/7/24 21:29:22 阅读更多 →
如何快速掌握微信好友自动化添加工具:实战配置与优化指南

如何快速掌握微信好友自动化添加工具:实战配置与优化指南

如何快速掌握微信好友自动化添加工具:实战配置与优化指南 【免费下载链接】auto_add_wechat_friends_py 微信添加好友 批量发送添加请求 脚本 python 项目地址: https://gitcode.com/gh_mirrors/au/auto_add_wechat_friends_py 微信好友自动化添加工具auto_a…

2026/7/24 21:29:22 阅读更多 →
终极指南:如何3分钟解锁QQ音乐加密文件,实现跨平台自由播放

终极指南:如何3分钟解锁QQ音乐加密文件,实现跨平台自由播放

终极指南:如何3分钟解锁QQ音乐加密文件,实现跨平台自由播放 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾经下载了心爱的QQ音乐&#xff…

2026/7/24 21:28:22 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻