Friday, May 21, 2010

PCIe introduction - part2


2.  
Device Layers


Three categories of packets are defined,
each one is associated with one of the three device layers. Associated with the
Transaction Layer is the Transaction Layer Packet (TLP). Associated with the
Data Link Layer is the Data Link Layer Packet (DLLP). Associated with the
Physical Layer is the Physical Layer Packet (PLP).

2.1  
TLP Packet Assembly



TLP Origin and Destination




TLP Assembly

2.2  
Flow Control



2.3  
Traffic Classes (TCs) and
Virtual Channels (VCs)


TC
is a TLP header field
transmitted within the packet
unmodified end-to-end through the fabric. Local application software and system
software based on performance requirements decides what TC label a TLP uses. VCs are physical buffers that provide a
means to support multiple independent logical data flows over the physical Link
via the use of transmit and receiver virtual channel buffers.

PCI Express devices may implement up to 8
VC buffers (VC0-VC7). The TC field is a 3-bit field that allows differentiation
of traffic into 8 traffic classes (TC0-TC7).

2.4  
Data Link Layer Contribution to
TLPs and DLLPs


The Data Link Layer concatenates a 12-bit
sequence ID and 32-bit LCRC field to an outbound TLP that arrives from the
Transaction Layer. The sequence ID is used to associate a copy of the outbound
TLP stored in the replay buffer with a received ACK/NAK DLLP inbound from a
neighboring remote device. The ACK/NAK DLLP confirms arrival of the outbound
TLP in the remote device.


There are three major types of DLLPs: Ack/Nak, Power Management (several variants), and Flow Control. Each DLLP is 8
bytes
, including a Start Of DLLP (SDP) byte, 2-byte CRC(using all 4 bytes
of the DLLP), and an End Of Packet (END) byte in addition to the 4 byte DLLP
core (which includes the type field and any
required attributes). In addition, the specification defines a vendor-specific
DLLP.

A DLLP DW(double word?) core is a 4 byte packet. The 8-bit DLLP Type field indicates various categories of DLLPs. These
include: ACK, NAK, Power Management related DLLPs (PM_Enter_L1, PM_Enter_L23,
PM_Active_State_Request_L1, PM_Request_Ack) and Flow Control related DLLPs
(InitFC1-P, InitFC1-NP, InitFC1-Cpl, InitFC2-P, InitFC2-NP, InitFC2-Cpl,
UpdateFC-P, UpdateFC-NP, UpdateFC-Cpl). Received DLLPs which fail the CRC check
are discarded. The loss of information from discarding a DLLP is self repairing
such that a successive DLLP will supersede any information lost. ACK and NAK
DLLPs contain a 12-bit(?) sequence ID
field
(shown as Misc. field) used by the device to associate an inbound
ACK/NAK DLLP with a stored copy of a TLP in the replay buffer.

2.5  
Non-Posted Transaction Showing
ACK-NAK Protocol (RD only for NP?)



Requester/Switch will keep its req TLP till
corresponding ACK DLLP is received from Switch/Completer respectively. And
Completer/Switch will keep its CplD TLP till corresponding ACK DLLP is received
from Requester/Switch respectively.

2.6  
Posted Transaction Showing
ACK-NAK Protocol (WR only for Posted?)







No comments: