13.07.2015 Views

PCI Express Base Specification v1.0 - 2002.pdf

PCI Express Base Specification v1.0 - 2002.pdf

PCI Express Base Specification v1.0 - 2002.pdf

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>PCI</strong> EXPRESS BASE SPECIFICATION, REV. 1.06.3.3.3. PM_PME MessagesPM_PME messages are posted Transaction Layer Packets (TLPs) that inform the powermanagement software which agent within the <strong>PCI</strong> <strong>Express</strong> Hierarchy requests a PM statechange. PM_PME messages, like all other Power Management system messages must usethe general purpose Transfer Class, TC #0.PM_PME messages are always routed in the direction of the Root Complex. To send aPM_PME message on its upstream Link, a device must transition the Link to the L0 state (ifthe Link was not is that state already). Unless otherwise noted, the device will keep the Linkin the L0 state following the transmission of a PM_PME message.6.3.3.3.1. PM_PME “Backpressure” Deadlock AvoidanceA <strong>PCI</strong> <strong>Express</strong> Root Complex is typically implemented with local buffering to temporarilystore a finite number of PM_PME messages that could potentially be simultaneouslypropagating through the <strong>PCI</strong> <strong>Express</strong> Hierarchy at any given time. Given a limited numberof PM_PME messages that can be stored within the Root Complex, there can bebackpressure applied to the upstream directed posted queue in the event that the capacity ofthis temporary PM_PME message buffer is exceeded.Deadlock can occur according to the following example scenario:• Incoming PM_PME messages fill the Root Complex’s temporary storage to its fullcapacity while there are additional PM_PME messages still in the Hierarchy makingtheir way upstream.• Root Complex, on behalf of system software, issues split configuration read requesttargeting one of the PME requester’s PMCSR (e.g., reading its PME_Status bit).• The corresponding split completion Packet is required, as per producer/consumerordering rules, to push all previously posted PM_PME messages out ahead of it,which in this case are PM_PME messages that have no place to go.• PME service routine cannot make progress, PM_PME message storage situationdoes not improve.• Deadlock occurs.Precluding potential deadlocks requires the Root Complex to always enable forward progressunder these circumstances. This must be done by accepting any PM_PME messages thatposted queue flow control credits allow for, and discarding any PM_PME messages thatcreate an overflow condition. This required behavior ensures that no deadlock will occur inthese cases, however PM_PME messages will be discarded and hence lost in the process.To ensure that no PM_PME messages are lost permanently, all agents that are capable ofgenerating PM_PME must implement a PME Service Timeout mechanism to ensure thattheir PME requests are serviced in a reasonable amount of time.If after 100 ms (+ 50% / - 5%), the PME_Status bit of a requesting agent has not yet beencleared, the PME Service Timeout mechanism expires triggering the PME requesting agent311

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!