Bus PCIe transaction layer

Before introducing the transaction layer, first a quick look at the communication mechanism of PCIe bus. Suppose a device to be operated to read data to another device, the first device (referred to Requester) Request requires a transmission to another device, then another device (referred Completer) by Completion Packet return data or error message. In the PCIe Spec, defines four types of requests (Request): Memory, IO, Configuration and Messages. Among them, the first three are inherited from the PCI / PCI-X bus, the fourth Messages PCIe is a new type of increase . Details in the following table:

We can see from the table, only are Posted Memory Write and Message type , others are Non-Posted types. After the so-called Non-posted, is to send a package containing Requester Request must be answered include Completion of a package, considered the end of the transmission, otherwise they will be waiting. The so-called Posted, is to ask Requester does not require Completer responds by sending packets containing Completion is, of course, do not need to wait . Obviously, Posted on the type of operation bus utilization (efficiency) is much higher than Non-Posted type.

So why Non-Posted and Posted divided into two types of it? For Memory Writes, the requirements of high efficiency, so the use Posted manner. However, this does not mean completely without operator-Posted Completer responds, can be still further Completer --Ack / response mechanism Nak mechanism (implemented at the data link layer).

PCIe TLP packet of a total of the following types:

 TLP传输的示意图如下图所示:

TLP在整个PCIe包结构的位置如以下两张图所示:(第一张为发送端,第二张为接收端)

其中,TLP包的结构图如下图所示:

 

图中的TLP Digest即ECRC(End-to-End CRC),是可选项。此外,TLP的长度(包括其中的Header、Data和ECRC)是以DW(双字,即四个字节)为单位。

Guess you like

Origin www.cnblogs.com/YINBin/p/11018459.html