R 2.1: Framing and Sending DLLPs: Preparing Local Traffic for the PCIe Link

In our ongoing exploration of the PCIe Data Link Layer, we have established that Data Link Layer Packets (DLLPs) are lightweight messengers used strictly for local link management, such as the Ack/Nak protocol and flow control. But before these vital packets can actually be sent across the physical wire, they must be properly packaged and formatted so the receiving device knows exactly what it is looking at.

Here is a closer look at how framing symbols are applied to DLLPs before transmission, and how this process evolved from PCIe Gen1 to Gen3.

The Handoff to the Physical Layer

DLLPs originate directly within the Data Link Layer. However, to actually travel across the link, they must be passed down to the Physical Layer below.

Because data on a high-speed serial link is transmitted as a continuous stream of bits, the receiving Physical Layer needs a way to instantly recognize the exact boundaries of an incoming packet. To accomplish this, special “framing symbols” are added to the DLLP immediately before transmission. The specific type of framing used depends entirely on the PCIe generation and its underlying encoding scheme.

Framing in Gen1 and Gen2 (8b/10b Encoding)

In PCIe Gen1 and Gen2 modes, the system utilizes an 8b/10b encoding scheme. When this encoding is in use, the Physical Layer applies framing symbols to both ends of the DLLP before sending it.

To build the packet, the hardware does the following:

  • The Start: It adds a 1-byte Start of DLLP (SDP) control symbol to the very beginning of the packet.
  • The End: It adds a 1-byte End Good (END) control symbol to the tail end of the packet.

Once these boundaries are established, the Physical Layer encodes the bytes into 10-bit symbols for actual serial transmission.

Framing in Gen3 and Beyond (128b/130b Encoding)

When PCIe Gen3 was introduced, it shifted to a much more bandwidth-efficient 128b/130b encoding scheme. This shift fundamentally changed how DLLPs are framed, removing the need for a trailing end symbol.

When operating in Gen3 mode:

  • The Start: A 2-byte SDP Token is added to the front of the packet.
  • The End: There is no END symbol or token added to the tail end of the DLLP.

Maintaining the Golden Rule: Always 8 Bytes

The most important takeaway when looking at DLLP framing is that the total packet size is always fixed at exactly 8 bytes, regardless of the encoding scheme.

There is never a data payload attached. Whether the system relies on the 1-byte SDP and 1-byte END symbols of Gen1/Gen2, or the 2-byte SDP Token used in Gen3, the framing simply serves to pad the 6-byte core and CRC out to the required 8-byte footprint.

Summary Before a DLLP can manage link power or acknowledge a successful data transfer, it must be properly framed by the Physical Layer. By utilizing strict SDP and END boundaries in early generations, and optimized SDP Tokens in Gen3, PCIe ensures that receivers can continuously and instantly identify local link traffic without skipping a beat.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top