Two Types of Local Link Traffic
Local traffic occurs between the transmit interface of one device and the receive interface of its neighbor for the purpose of managing the link itself. This traffic is never forwarded or flow controlled; when sent, it must be accepted. Local traffic is further classified as Ordered Sets exchanged between the Physical Layers of two devices on a link or Data Link Layer packets (DLLPs) exchanged between the Data Link Layers of the two devices.
Ordered Sets
These are sent by each physical layer transmitter to the physical layer of the corresponding receiver to initiate link training, compensate for clock tolerance, or transition a link to and from the Electrical Idle state. As indicated in Table 3-1 on page 109, there are five types of Ordered Sets.
Each ordered set is constructed of 10-bit control (K) symbols that are created within the physical layer. These symbols have a common name as well as a alph-numeric code that defines the 10 bits pattern of 1s and 0s, of which they are comprised. For example, the SKP (Skip) symbol has a 10-bit value represented as K28.0.
Figure 3-2 on page 110 illustrates the transmission of Ordered Sets. Note that each ordered set is fixed in size, consisting of 4 or 16 characters. Again, the receiver is required to consume them as they are sent. Note that the COM control symbol (K28.5) is used to indicate the start of any ordered set.
Figure 3-2. PCI Express Link Local Traffic: Ordered Sets
Refer to the “8b/10b Encoding” on page 419 for a thorough discussion of Ordered Sets.
Table 3-1. Ordered Set Types
Ordered Set Type |
Symbols |
Purpose |
---|---|---|
Fast Training Sequence (FTS) |
COM, 3 FTS |
Quick synchronization of bit stream when leaving L0s power state. |
Training Sequence One (TS1) |
COM, Lane ID, 14 more |
Used in link training, to align and synchronize the incoming bit stream at startup, convey reset, other functions. |
Training Sequence Two (TS2) |
COM, Lane ID, 14 more |
See TS1. |
Electrical Idle (IDLE) |
COM, 3 IDL |
Indicates that link should be brought to a lower power state (L0s, L1, L2). |
Skip |
COM, 3 SKP |
Inserted periodically to compensate for clock tolerances. |
Data Link Layer Packets (DLLPs)
The other type of local traffic sent by a device transmit interface to the corresponding receiver of the device attached to it are Data Link Layer Packets (DLLPs). These are also used in link management, although they are sourced at the device Data Link Layer rather that the Physical Layer. The main functions of DLLPs are to facilitate Link Power Management, TLP Flow Control, and the acknowledgement of successful TLP delivery across the link.
Table 3-2. Data Link Layer Packet (DLLP) Types
DLLP |
Purpose |
---|---|
Acknowledge (Ack) |
Receiver Data Link Layer sends Ack to indicate that no CRC or other errors have been encountered in received TLP(s). Transmitter retains copy of TLPs until Ack'd |
No Acknowledge (Nak) |
Receiver Data Link Layer sends Nak to indicate that a TLP was received with a CRC or other error. All TLPs remaining in the transmitter's Retry Buffer must be resent, in the original order. |
PM_Enter_L1; PM_Enter_L23 |
Following a software configuration space access to cause a device power management event, a downstream device requests entry to link L1 or Level 2-3 state |
PM_Active_State_Req_L1 |
Downstream device autonomously requests L1 Active State |
PM_Request_Ack |
Upstream device acknowledges transition to L1 State |
Vendor-Specific DLLP |
Reserved for vendor-specific purposes |
InitFC1-P InitFC1-NP InitFC1-Cpl |
Flow Control Initialization Type One DLLP awarding posted (P), nonposted (NP), or completion (Cpl) flow control credits. |
InitFC2-P InitFC2-NP InitFC2-Cpl |
Flow Control Initialization Type Two DLLP confirming award of InitFC1 posted (P), nonposted (NP), or completion (Cpl) flow control credits. |
UpdateFC-P UpdateFC-NP UpdateFC-Cpl |
Flow Control Credit Update DLLP awarding posted (P), nonposted (NP), or completion (Cpl) flow control credits. |
As described in Table 3-2 on page 111 and shown in Figure 3-3 on page 112, there are three major types of DLLPs: Ack/Nak, Power Management (several variants), and Flow Control. In addition, a vendor-specific DLLP is permitted in the specification. Each DLLP is 8 bytes, including a Start Of DLLP (SDP) byte, 2-byte CRC, and an End Of Packet (END) byte in addition to the 4 byte DLLP core (which includes the type field and any required attributes).
Figure 3-3. PCI Express Link Local Traffic: DLLPs
Note that unlike Ordered Sets, DLLPs always carry a 16-bit CRC which is verified by the receiver before carrying out the required operation. If an error is detected by the receiver of a DLLP, it is dropped. Even though DLLPs are not acknowledged, time-out mechanisms built into the specification permit recovery from dropped DLLPs due to CRC errors.
Refer to “Data Link Layer Packets” on page 198 for a thorough discussion of Data Link Layer packets.