PCIe专题学习——3.1(数据链路层DLLP结构及类型)

本文深入解析PCIe数据链路层的DLLP,介绍了DLLP与TLP的区别,其固定6字节的结构,包括DLLP类型、属性和CRC。重点讲解了Ack/Nak、powerManagement、Flowcontrol和用户自定义类型的格式,并预告了电源管理部分的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transaction layer), 数据链路层(Data link layer)和物理层(Physical layer)。

一:数据链路层DLLP结构及类型

上篇文章数据链路层概述中提到DLLP不同于TLP,是产生于数据链路层,中止于数据链路层,DLLP并不是有TLP加上Sequence和LCRC组成的,具有单独的格式,我们本文就主要介绍一下DLLP的结构与类型;

先看一张图,在数据链路层中TLP和DLLP的样式如下:

在数据链路层中,TLP要加上前缀Sequence ID和后缀LCRC,如上图,而DLLP在数据链路层产生,包含的信息有DLLP Type,Attribute Field以及CRC;

需要指出的是,DLLP里面的CRC为16位,与TLP的后缀ECRC(32位)不同,不要混淆了;

一个DLLP的大小是固定的,为6Bytes,如下图,第一个Byte为DLLP Type,第二到四个Bytes是与DLLP类型相关的属性参数,最后两个Bytes是CRC区域,如下图:

 DLLP的类型大致分为四类:Ack/Nak,power Management,Flow control以及用户自定义;

Ack/Nak DLLP格式:

Power Management DLLP格式:

  • 0010 0000b = PM_Enter_L1

  • 0010 0001b = PM_Enter_L23

  • 0010 0011b = PM_Active_State_Request_L1

  • 0010 0100b = PM_Request_Ack

 Ps: 电源管理部分的详细内容在后续章节介绍。

Flow Control DLLP格式:

 用户自定义DLLP格式:

附录:DLLP详细列表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值