当前位置: 代码迷 >> 综合 >> PCIe posted vs non-posted transactions
  详细解决方案

PCIe posted vs non-posted transactions

热度:66   发布时间:2024-01-12 03:23:34.0

I’ve been reading about PCIe and tended to forget about what thedifferences were between posted and non-postedtransactions.  So, I’m writing it here to help meremember what they are.  And, having to search forthis kind of information is faster than having to pull out theinformation from the spec.  Maybe, it will helpyou, the reader, also.

Non-Posted transactions are ones where therequester expects to receive a completion Transaction Layer Packet(TLP) from the device completing the request.  TheTLP completion packet can be returned at a later time and doesn’thave to be returned right away.  The TLP confirmsthat the completer received the request.  For readrequests, completions include read data.  If thecompleter was unable to return read data successfully, a completionpacket is return containing an error status.  Forwrite requests, the completion returns a completion packet withoutdata indicating that it has received the writerequest.  As with read completions, the writecompletion may contain an error status if the write did notcomplete successfully.

Posted transactions are ones where therequester does not expect to and will not receive a completionTransaction Layer Packet (TLP).  If the writecompleter encounters an error, the requester willnot know about it.  But, it is possible for thewrite completer to generate an error message notification to theRoot Complex.

Requests that are considered posted transactions are:

  • Memory Writes
  • Messages

Requests that are non-posted transactions are:

  • Memory Reads
  • Memory Read Lock
  • I/O Reads
  • I/O Writes
  • Configuration Reads (both Type 0 and Type 1)
  • Configuration Writes (both Type 0 and Type 1)



PCI Express employs packets to accomplish data transfers between devices. A root complex can communicate with an endpoint. An endpoint can communicate with a root complex. An endpoint can communicate with another endpoint. Communication involves the transmission and reception of packets called Transaction Layer packets (TLPs).

PCI Express transactions can be grouped into four categories:

1) memory, 2) IO, 3) configuration, and 4) message transactions. Memory, IO and configuration transactions are supported in PCI and PCI-X architectures, but the message transaction is new to PCI Express. Transactions are defined as a series of one or more packet transmissions required to complete an information transfer between a requester and a completer. Table 2-1 is a more detailed list of transactions. These transactions can be categorized into non-posted transactions and posted transactions.

Table 2-1. PCI Express Non-Posted and Posted Transactions

Transaction Type

Non-Posted or Posted

Memory Read

Non-Posted

Memory Write

Posted

Memory Read Lock

Non-Posted

IO Read

Non-Posted

IO Write

Non-Posted

Configuration Read (Type 0 and Type 1)

Non-Posted

Configuration Write (Type 0 and Type 1)

Non-Posted

Message

Posted

For Non-posted transactions, a requester transmits a TLP request packet to a completer. At a later time, the completer returns a TLP completion packet back to the requester. Non-posted transactions are handled as split transactions similar to the PCI-X split transaction model described on page 37 in Chapter 1. The purpose of the completion TLP is to confirm to the requester that the completer has received the request TLP. In addition, non-posted read transactions contain data in the completion TLP. Non-Posted write transactions contain data in the write request TLP.

For Posted transactions, a requester transmits a TLP request packet to a completer. The completer however does NOT return a completion TLP back to the requester. Posted transactions are optimized for best performance in completing the transaction at the expense of the requester not having knowledge of successful reception of the request by the completer. Posted transactions may or may not contain data in the request TLP.

Adapted from <PCI Express System Architecture>


  相关解决方案