This blog provides information/ideas about PCI Express Data Link Layer.

We changed!Check out our new look!

Monday, August 18, 2008

RETRIES

The transmitter cannot assume that a transaction has been properly re­ceived until it gets a proper acknowledgement back from the receiver. If the receiver sends back a Nak (for something like a had sequence num­ber or LCRC), or fails to send back an Ack in an appropriate amount of time, the transmitter needs to retry all unacknowledged TLPs. To accom­plish this, the transmitter implements a Data Link Layer retry buffer.


All copies of transmitted TLPs must be stored in the Data Link Layer retry buffer. Once the transmitter receives an appropriate acknowledge­ment back, it purges the appropriate TLPs from its retry buffer. It also updates its acknowledgement sequence number counter.


TLPs may be retried for two reasons,

First, it is retried if the receiver sends back a Nak DLLP indicating some sort of transmission error.

The second reason for a retry deals with a replay timer, which helps ensure that forward progress is being made. The transmitter side of the Data Link Layer needs to implement a replay timer that counts the time since the last Ack or Nak DLLP was received. This timer runs anytime there is an outstanding TLP and is reset every time an Ack or Nak DLLP is received. When no TLPs are outstanding, the timer should reset and hold so that it does not unnecessarily cause a time-out. The replay timer limit depends upon the link width and maximum payload size. The larger the maximum payload size and the narrower the link width, the longer the replay timer can run before timing out (since each packet requires more time to transmit). If the replay timer times out, the Data Link Layer reports an error condition.


If either of these events occurs-either a Nak reception or a replay timer expiration-the transmitter's Data Link Layer begins a retry. The Data Link Layer increments a replay number counter. This is a 2-hit
counter that keeps track of the number of times the retry buffer has been retransmitted. If the replay counter rolls over from 1 lb to 00b (that is, this is the fourth retry attempt) the Data Link Layer indicates an error condition that requires the Physical Layer to retrain the link. The Data Link Layer resets its replay counter every time it successfully receives an acknowledgement, so the retrain procedure only occurs if are try attempt continuously fails. In other words, four unsuccessful attempt s at a single retry create this error. Four unsuccessful retry attempts across numerous packets with numerous intermediate acknowledgements do not.

No comments:

DISCLAMIER

Verilog Course Team does not warrant or assume any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed. No warranty of any kind, implied, expressed or statutory, including to fitness for a particular purpose and freedom from computer virus, is given with respect to the contents of this blog or its hyper links to other Internet resources. Reference in this blog to any specific commercial products, processes, or services, or the use of any trade, firm or corporation name is for the information, and does not constitute endorsement, recommendation, or favoring.