Mindshare Intro To Pipe Spec
Mindshare Intro To Pipe Spec
MindShare, Inc.
Dave Dzatko
March 2004
Introduction4
PIPE Architecture..4
MAC Architecture.6
PHY/MAC Interface..7
PCS Architecture...9
PMA Architecture12
PIPE Functionality and Features..13
PIPE Signal Organization14
PIPE PLL.15
Transmitter Sub-block.16
Receiver Sub-block.16
PIPE Signal Descriptions18
PIPE Summary20
PIPE Architecture
The PIPE architecture block diagram is shown in Figure 1. As mentioned earlier,
the Data Link Layer (DLL) logic interfaces with the MAC, although the spec
doesnt define this interface or any others except the one between the PHY and
the MAC. All the other interconnects are understood to be implementation
specific. The interface between the MAC and the PCS (Physical Coding Sublayer) is a dual simplex, parallel bus called the PHY/MAC interface. The PCS and
PMA (Physical Media Attachment Layer) interface is not defined by the spec.
The functionality of the PCS and PMA are described conceptually in the PIPE
and PCI Express specifications but, again, no specific implementations are
implied. The PMA contains the high-speed analog and digital circuitry that
connects to the PCI Express link via differential transmitters and receivers. The
PIPE spec notes that there is overlap between it and the PCI Express spec, and
states that in case of any conflict between them, the PCI Express spec takes
precedence.
1
http://www.pciexpressdevnet.org/apps/org/workgroup/devnetgf/pipe/
http://www.mindshare.com/knowledge/pciexpress_overview.html
3
http://www.pcisig.com/home
2
TO
DLL
MAC
(Media
Access
Layer)
PHY/
MAC
PCS
(Physical
Coding
Sub-layer)
PMA
(Physical
Media
Attachment
Layer)
RX
TX
PIPE SPEC
PCI-E PHY SPEC
Figure 1. PIPE Architecture
MAC Architecture
The MAC contains many of the PCI Express logical Physical Layer circuits (such
as the Link Training and Status State Machine (LTSSM), data scrambling, 8b/10b
encoding, and byte striping), and functions as the bridge between the DLL and the
PHY/MAC interface.
MAC
(Media
Access
Layer)
TO
DLL
PHY/
MAC
PCS
(Physical
Coding
Sub-layer)
Implementation
Specific
(Not Specified)
Figure 2. MAC Architecture
4
PHY/MAC Interface
The PHY/MAC interface is the major normative area of the PIPE spec, as shown
in Figure 3. The pins that make up the interface and their functionality are
described in the spec, and timing diagrams are provided to show the synchronous
timing relationships, but no detailed timing parameters for the signals are given.
Instead, the spec provides a description of implementation-specific timings that a
vendor of a PIPE-compliant PHY macrocell or discrete chip must specify. Much
of the functionality of the PHY/MAC Interface is described in the spec using
timing diagrams, which are not repeated here.
MAC
(Media
Access
Layer)
TxData (8 or 16)
TxDataK (1 or 2)
Command (7)
PCS
(Physical
Coding
Sub-layer)
RxData (8 or 16)
RxDataK (1 or 2)
Status (6)
PCLK
The PHY/MAC Interface also includes a 6-bit status bus for communication of
PHY status from the PCS to the MAC. The status bus has codes and signals that
indicate conditions including:
The PHY has obtained symbol lock
The received data is valid
The PHY has completed various PM state transitions
The PHY has detected that a receiver is attached
The PHY has detected an Electrical Idle state on the Link
There are 8 additional status and error codes defined
The PHY includes a clock output called PCLK which is used to synchronize data
transfers across the parallel PHY/MAC Interface. If the parallel interface is 16
bits wide, then PCLK runs at 125 MHz, but if the interface is 8 bits wide, then the
PCLK runs at 250 MHz so as to maintain the data rate with respect to the serial
link.
PCS Architecture
The Physical Coding Sub-layer (PCS), although part of the Logical Sub-block of
the PHY, is included within a PIPE-compliant discrete device or macrocell. The
PCS supports the PHY side of the standard PHY/MAC Interface as well as an
implementation-specific interface between it and the Physical Media Attachment
Layer (PMA). No specifications are provided in the PIPE document for this
interface.
The clock reference input (CLK) is used by the PHY to generate the internal bit
rate clocks for transmitting and receiving PCI Express data. Specifications for this
implementation-specific clock, which will be used internally to generate the bitrate clock for the PHY transmitter and receiver as well as the PCLK for the
PHY/MAC interface, must be provided by PIPE-compliant PHY vendors. Spread
spectrum modulation that matches the system reference clock modulation is
permitted for this signal.
The 8B/10B logic required by PCI Express resides in the PCS. The input to the
8B/10B encoder is the data or control character from the PHY/MAC Interface, the
value of the current running disparity, and the TxDataK signal that is needed
because the encoding for a data character is different from that of a control
character.
The PCS also contains the elastic buffer used to compensate for the slight
variations in frequency between the transmitters clock and the clock used by the
receiver to process the incoming data.
Implementation
Specific
(Not Specified)
PMA Architecture
The Physical Media Attachment (PMA) Layer implements the high-speed analog
and digital circuitry for PCI Express signaling, including the differential drivers
and receivers for each lane of a link. Although the data is serially transmitted over
the link, the connection from the PCS to the PMA is a ten bit wide,
implementation-specific parallel interface. The high-speed serialization and deserialization logic (SERDES), needed to create the serial data stream of PCI
Express, resides in the PMA.
7
PMA
(Physical
Media
Attachment
Layer)
RX
One Lane
of the Link
TX
PHY/
MAC
PCS
(Physical
Coding
Sub-layer)
PMA
(Physical
Media
Attachment
Layer)
RX
TX
PLL
PCLK
TxData (8 or 16)
Transmitter
Sub-block
TxDataK (1 or 2)
TX+, TX-
Command (7)
Status (6)
RxData (8 or 16)
RxDataK (1 or 2)
Receiver
Sub-block
RX+, RX-
PIPE PLL
The PLL generates the PCLK used in synchronizing the parallel PHY/MAC
Interface based on the CLK input. The PCLK frequency is 125 MHz for 16-bit
implementations and 250 MHz for 8-bit implementations. The PLL will produce a
250 MHz clock used as an input to the 8B/10B encoder and decoder and the
elastic buffer. The PLL will produce a 2.5 GHz clock that is used as an input to
the SERDES and the clock recovery circuitry.
CLK
PLL
(Phase
Lock
Loop)
PCLK
250 MHz
2.5 GHz
10
250 MHz
2.5 GHz
TX+
Optional
16 to 8
8B/10B 10
Encode
Parallel 1
To
Serial
Differential
Driver
TX-
TxCompliance TxDataK
Loopback
From Receiver
TxElecIdle
11
http://www.mindshare.com/classroom/pciexpress/elastic_buffer_implem.pdf
12
RxValid
RxStatus
RxDataK
Clock
Recovery
Comma
Detect
Rx
Status
RxData
(8 or 16)
10
RX+
RX-
2.5 GHz
1
Differential
Receiver
Data
Recovery
10
Serial
To
Parallel
Elastic
Buffer
8B/10B
Decode
Optional
8 to 16
PCLK
250 MHz
Loopback
To Transmitter
PCS
(Physical
Coding
Sub-layer)
PMA
(Physical
Media
Attachment
Layer)
13
TxData (8 or 16)
TxDataK (1 or 2)
TxDetectRx/
Loopback
TxElecIdle
Description
This input to the PCS is used to generate the high speed (2.5 GHz) transmit and receive
clocks and PCLK from the PLL. Specifications for this signal are implementation specific,
and must be supplied by the PHY implementer. This signal may use spread spectrum
modulation.
These signals make up the parallel data bus from the MAC to the PCS. If implemented as a
16-bit interface then two character of data are transferred per clock. The first character is
transmitted on bits [7:0] of the parallel bus, and the second character, if there is a 16-bit
interface, is on bits [15:8] of the parallel bus.
These signal(s) indicate the type of characters on the TxData bus. Bit 0 is for the lower byte
on bits [7:0] of the parallel bus and Bit 1 is for the upper byte on bits [15:8] of the parallel
bus. A zero indicates a data character; while a one indicates a control character.
This signal indicates to the PHY to begin the receiver detect process or to begin external
loopback as described in the PCI Express Specification. Like many PIPE signals, the
meaning of this signal depends on which power state the PHY is in. When in the P1 state,
this signal informs the PHY to do a receiver detect, but when in the P0 state, this signal
informs the device to go into the loopback mode as quickly as possible.
When this signal is asserted (active high), it tells the PHY to put the Tx outputs into the
electrical idle state. This is true for all power states. When this signal is deasserted, valid
data from the TxData and TxDataK signals should be transmitted in the P0 state. If the PHY
is in the P2 state, a beacon should be transmitted, if the TxElecIdle signal is deasserted. In
the P0s and P1 states, the TxElecIdle signal must be asserted. The use of this signal is also
affected by the PHY power state, since there are some states in which the transmitter must
be electrically idle. See section 6.14 of the PIPE spec for more detail.
TxCompliance
When asserted, this ordinarily forces he current running disparity (CRD) to negative. As the
name implies, this is useful in conjunction with the transmission of the compliance pattern
to generate test data. It is also used in a multi-lane implementation to turn off any lanes that
are not going to be used, as in a x4 link that must operate as a x1. When both
TxCompliance and TxElecIdle are asserted, that informs the affected lane to turn off and
conserve as much power as possible.
RxPolarity
When asserted active high, this signal tells the PHY to do a polarity inversion on the
received data.
Reset#
When asserted, this active low input to the PHY puts the transmitter and receiver in the
default state
Powerdown[1:0]
These inputs put the transceiver into one of four power states:
1. P0 normal operational mode
2. P0s PCLK remains on, but Rx conserves power; entered when Rx detects
electrical idle. Corresponds to link state L0s.
3. P1 PCLK remains on, both Rx and Tx are in electrical idle. Corresponds to link
state L1.
4. P2 PCLK is off, PHY should minimize power consumption now, since it must
operate within the limits of Vaux. Corresponds to link state L2.
See section 6.3 of the PIPE spec for more details on PHY power management.
RxData (8 or 16)
These signals make up the parallel data bus from the PCS to the MAC. If implemented as a
16-bit interface, two symbols of data are transferred per clock. The first symbol received on
the PCI Express data lines is on bits [7:0] of the parallel bus. The second symbol received
on the PCI Express data lines is on bits [15:8] of the parallel bus.
14
These signal(s) are the Data#/Control indicator(s) for the received symbols on the RxData
bus. Bit 0 is for the lower byte on bits [7:0] of the parallel bus and Bit 1 is for the upper byte
on bits [15:8] of the parallel bus. A zero indicates a byte of data; a one indicates a byte of
control.
RxValid
This signal qualifies the data on the RxData and RxDataK signals. When this signal is
asserted, the data on the receiver data bus is valid and the PHY has achieved symbol lock.
PhyStatus
RxElecIdle
Indicates that the PCI Express receiver pins have detected an Electrical Idle state on the
Link.
RxStatus[2:0]
Delivers receiver status and error codes for the received data and receiver detect status from
the PHY to the MAC, noting such things as SKP symbol added or removed, disparity error,
elastic buffer overflow or underflow, 8b/10b decode error, etc.
PCLK
This clock synchronizes the parallel interface between the PHY and the MAC. The
frequency is 125 MHz for 16-bit data and 250 MHz for 8-bit data. Spread spectrum
modulation is allowed on this clock.
TX+, TX-
RX+, RX-
15