首页/新闻资讯/正文详情

pcie 数据链路层和物理链路层、事务层的关系

发布时间:2026/9/24 17:45:48 来源:云帆数科 栏目:资讯中心
pcie 数据链路层和物理链路层、事务层的关系
pcie 3.0规范翻译数据链路层负责将事务层提供的 TLPTransaction Layer Packets事务层数据包可靠地跨越 PCI Express 链路传输到对端组件的事务层。数据链路层提供的服务包括数据交换接收来自发送端事务层用于传输的 TLP并将其传递给发送端物理层接收从物理层通过链路收到的 TLP并将其传递给接收端事务层错误检测与重传TLP 序列号和 LCRC链路循环冗余校验的生成为数据链路层重传存储已发送的 TLP对 TLP 和数据链路层数据包DLLP进行数据完整性检查正向和负向确认 DLLPAck/Nak用于错误报告和日志机制的错误指示链路确认超时重放机制初始化与电源管理跟踪链路状态并将活跃/复位/断开状态告知事务层数据链路层数据包DLLP用于链路管理功能包括 TLP 确认、电源管理以及流控信息的交换在链路上两个直接相连组件的数据链路层之间传输DLLP 以点对点方式在一条链路上的两个组件之间发送。而 TLP 则从一个组件路由到另一个组件可能经过一个或多个中间组件。DLLP 和 TLP 的数据完整性检查通过每个跨链路发送的数据包中包含的 CRC 来完成。DLLP 使用 16 位 CRC而 TLP其长度可能远大于 DLLP使用 32 位 LCRC。此外TLP 还包含一个序列号用于检测一个或多个完整 TLP 丢失的情况。CRC 校验失败的已接收 DLLP 将被丢弃。使用 DLLP 的机制可能会因这种信息丢失而遭受性能损失但它们具备自修复能力即后续的 DLLP 将取代任何丢失的信息。数据完整性检查LCRC 和序列号失败或在从一个组件传输到另一个组件过程中丢失的 TLP将由发送端重新发送。发送端会存储所有已发送 TLP 的副本在需要时重新发送这些副本并且仅在收到来自对端组件的无误接收正向确认后才清除这些副本。如果在指定时间内未收到正向确认发送端将自动开始重传。接收端可以使用负向确认请求立即重传。对于事务层而言数据链路层表现为一个具有可变延迟的信息通道。在任何一条给定的链路上所有输入到发送端数据链路层图 3-1 中的 1 和 3的 TLP都会在稍后以相同的顺序出现在接收端数据链路层图 3-1 中的 2 和 4的输出端如图 3-1 所示。延迟取决于多种因素包括流水线延迟、链路的宽度和工作频率、跨链路的电信号传输以及由数据链路层重传引起的延迟。由于这些延迟的存在发送端数据链路层1 和 3可以向发送端事务层施加反压backpressure而接收端数据链路层2 和 4则向接收端事务层通知有效信息的存在与否。关键术语注释TLPTransaction Layer Packet事务层数据包PCIe 中承载业务数据的核心载体。DLLPData Link Layer Packet数据链路层数据包用于链路管理确认、流控、电源管理仅在本地链路点对点传输不被路由。LCRCLink CRC链路循环冗余校验32 位 CRC用于单跳链路的 TLP 完整性校验每经过一个 Switch 重新计算。Sequence Number序列号数据链路层为每个 TLP 分配的序号用于检测 TLP 丢失和乱序。Ack/Nak正向/负向确认 DLLP接收端通过 Ack 确认无误接收通过 Nak 请求立即重传。Backpressure反压当发送端数据链路层缓冲区满或链路拥塞时向上层事务层传递的暂停发送信号。进入L0 后 如何进行数据链路层的连接物理层 LTSSM 进入 L0 只是路修好了数据链路层还需要完成一系列握手和初始化才能宣告可以通车了。这个过程由DLCMSMData Link Control and Management State Machine状态机负责三种核心状态States原文定义了 DLCMSM 的三种状态这构成了数据链路层连接建立的生命周期DL_Inactive非激活状态原文Physical Layer reporting Link is non-operational or nothing is connected to the Port解读这是默认/复位状态。意味着物理层告诉数据链路层“链路还没通或者根本没有插线。”此时数据链路层处于休眠/关闭状态不处理任何 TLP。DL_Init初始化状态原文Physical Layer reporting Link is operational, initialize Flow Control for the default Virtual Channel解读这就是我们刚才讨论的“连接建立”阶段。当物理层 LTSSM 成功进入 L0reporting Link is operational时数据链路层就会跳转到这里。在此状态下它会立刻对默认的虚拟通道VC0进行流控Flow Control的初始化交换。DL_Active激活状态原文Normal operation mode解读流控初始化完成后正式进入正常工作模式。开始正常收发 TLP、发送/接收 Ack/Nak DLLP、处理重传等。二、 两种对外输出状态Status Outputs数据链路层内部的状态机流转最终会抽象成两个信号通知给上层的“事务层”和下层的“物理层”告诉它们当前链路是否可用DL_Down链路断开原文The Data Link Layer is not communicating with the component on the other side of the Link.解读对应DL_Inactive状态。事务层收到这个信号就知道不要发数据过来了。DL_Up链路连接原文The Data Link Layer is communicating with the component on the other side of the Link.解读对应DL_Init完成后进入的DL_Active状态。事务层收到这个信号就知道“路通了”可以开始发业务数据TLP了。总结你贴出的这段规范清晰地勾勒出了 PCIe 物理层LTSSM和数据链路层DLCMSM的完美配合物理层先把路修好LTSSM 进入 L0然后告诉数据链路层“Link is operational”。数据链路层收到通知从DL_Inactive跳到DL_Init去初始化流控最后跳到DL_Active并对外输出DL_Up。事务层看到DL_Up开始发车。总结三层分工明确如果把 PCIe 链路比作一条高速公路的开通物理层LTSSM负责修路、铺沥青、划线进入 L0。数据链路层DLCMSM负责安装红绿灯、测试信号灯是否正常进入 DL_Active输出DL_Up。事务层它不修路也不装红绿灯。它只是停在起点的一辆卡车司机。当它看到绿灯亮起DL_Up并且自己已经加满了油初始化流控 Credit它才会开始踩油门发送 TLP。PCIe 协议栈的数据链路层DLCMSM 状态机、TLP 序列号管理、ACK/NAK 重传、流控信用初始化全部由硬件 IP 核Root Complex / Endpoint 控制器内部实现。LINUX内核不干预 LTSSM 状态跳转或 DLCMSM 的DL_Init/DL_Active迁移。我的理解数据链路层建立连接后pcie RC 对 EP 进行枚举通过读写 BAR 寄存器探测大小并在系统内存地址空间中为其分配一段物理地址作为映射入口建立 BAR 映射。后续当主机需要与 EP 交互时事务层将数据打包并将 BAR 映射地址作为目标地址封装进 TLP大卡车通过链路发送给 EPEP 收到后解析地址将数据卸入其内部对应的物理存储空间中。

相关推荐

TEKLYNX CENTRAL软件
TEKLYNX CENTRAL软件

TEKLYNX CENTRAL 一体化标签解决方案集中管理整个标签流程集中式标签管理解决方案可以处理标签设计、审批、打印和报告,从而帮助组织满足复杂的标签要求。TEKLYNX CENTRAL 既能够管理供应链标签,又能与 ERP 和其他业务系统集成,因此可以帮您提… · 2026/9/24 17:45:48

2026年最好考又实用的证书推荐:这8个高含金量证书,零基础也能轻松拿下
2026年最好考又实用的证书推荐:这8个高含金量证书,零基础也能轻松拿下

很多人问我:“到底什么证书最好考?”其实这个问题背后藏着更真实的需求——想花最少的时间,考一个对未来有帮助的证书。毕竟,证书不是目的,工作是目的,涨薪才是目的。今天这篇文章,我结合2026年… · 2026/9/24 17:45:42

一种基于格的密钥封装机制研究与实现大数据专业毕业设计深度学习图像识别
一种基于格的密钥封装机制研究与实现大数据专业毕业设计深度学习图像识别

✅源码获取: 🍅--------------------【点击左上方头像,在置顶文章上方的wx】联系我们-----------------🍅 ✌网站介绍:✌10年项目辅导经验、专注于计算机技术领域学生项目实战辅导。 ✌服务范围:大数据、机… · 2026/9/24 17:45:42

基于Python的车辆类型识别系统:CNN与OpenCV实战指南
基于Python的车辆类型识别系统:CNN与OpenCV实战指南

简介:这是一套面向高校学生的车辆类型自动识别系统完整项目源码,适合作为计算机视觉方向的毕业设计参考,也可用于交通监控、停车场管理等场景的入门实践。项目以Python为开发语言,结合OpenCV与TensorFlow、Keras构建卷积神经网络模… · 2026/9/24 22:04:26

扫码看展:展览策划中的二维码展品讲解系统全攻略
扫码看展:展览策划中的二维码展品讲解系统全攻略

做展览策划这些年,有一件事一直让我很头疼:展签。一张小小的卡片挂在画作旁边,写作者、年代、材质、尺寸,顶多再多几十个字介绍创作背景。观众站在展品前,要么低头读展签,要么抬头看画,两件事很… · 2026/9/24 22:04:26

Minecraft Java版安装本质是JVM环境配置工程
Minecraft Java版安装本质是JVM环境配置工程

1. 这不是普通软件安装:为什么《我的世界》Java版的安装本质是一次JVM环境工程 “我的世界Java版下载安装教程”——看到这个标题,很多人第一反应是点开视频、照着步骤点下一步就行。但我在做MC服务器运维和Mod开发这十年里,反复被新手问到&… · 2026/9/24 22:04:26

WEEX提醒:从1300万港元假App案看,如何辨别真假平台
WEEX提醒:从1300万港元假App案看,如何辨别真假平台

一个名为“WEEX”的App,和官方平台,到底是不是一回事? 最近香港警方披露的一宗数字资产诈骗案,再次把这个问题摆到了台面上。据《星岛头条》报道,一名七旬男子通过WhatsApp收到自称“投资专家”的陌生消息,… · 2026/9/24 22:03:55

Canvas 2D手搓搜打撤游戏:从架构到实战的完整指南
Canvas 2D手搓搜打撤游戏:从架构到实战的完整指南

1. 为什么我放弃了游戏引擎,选择 Canvas 2D 手搓搜打撤1.1 从一次“杀鸡用牛刀”的折腾说起去年年底《逃离鸭科夫》这类搜打撤玩法火起来的时候,我正处在对 Unity 又爱又恨的阶段。爱的是它确实省事,物理、动画、粒子、寻路全都给你打包好了&… · 2026/9/24 22:03:49

AI工作流为什么需要微信入口?个人微信API接口在智能应用中的新场景
AI工作流为什么需要微信入口?个人微信API接口在智能应用中的新场景

做AI工作流的团队常陷入一个误区:把精力全放在模型能力和工具链上,对前端入口只挑"技术先进"的渠道——网页Chat、Slack、飞书机器人。结果工作流跑得再顺,用户参与率依然低,因为用户根本不在这些渠道上活跃。微信作为工… · 2026/9/24 22:03:48

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码