Fork me on GitHub
侧边栏

PCIe扫盲——DLLP(数据链路层包)详解

首先说明一下,在本次连载的博文中,DLLP一般指的是由发送端的数据链路层发送,接收端的数据链路层接收的数据包,其和事务层(Transaction Layer)一般没有什么关系。本文将要介绍的DLLP指的正是这样的数据包,其一般用于Ack/Nak机制、功耗管理、Flow Control(流量控制)和一些厂商自定义用途等。示意图如下:

image

DLLP的格式是固定的,一共有8个字节,包括Framing(SDP & END)。和TLP不一样的地方是,DLLP并未携带任何路由信息,原因很简单,因为DLLP只在相邻的两个设备的数据链路层之间通信,根本不需要路由。并且DLLP一般也不需要和事务层交换信息。

注:前面文章中介绍的Flow Control、Ack/Nak等都是针对TLP,并不会对DLLP产生影响。但是这些功能正是借助DLLP才得以实现的。

DLLP的一般格式如下图所示:

image

DLLP的类型与目标应用如下表所示:

image

其中,用于Ack/Nak的DLLP的格式如下:
image
image

用于功耗管理(Power Management)的DLLP的格式如下:

image

image

用于Flow Control的DLLP的格式如下:

image

image

厂商自定义的DLLP的格式如下:

image

posted @ 2025-07-24 16:58  yooooooo  阅读(109)  评论(0)    收藏  举报