原文来自如下摘录: 请大家帮忙,谢谢。
TLP Data Payload
As shown in Figure 6.2, if a packet uses a data payload, it is appended to the end of the TLP header. Whether or not a TLP contains a data payload depends on the type of packet. If present, the data payload is DWordaligned for both the first and last DWord of data. DWord byte enables within the header indicate if “garbage” bytes are appended to either the beginning or ending of the payload to achieve this DWord alignment.
The Length field (bits[1:0] of byte 2 and all of byte 1 in the header) indicates the length of the data payload in DWords. This length value only identifies the length of the data payload and not of the entire TLP. The header and TLP digest lengths are not directly accounted for in this field (though they are in other header fields). A value of 00 0000 0001b in this location indicates a data payload that is one DWord long. A value of 00 0000 0010b indicates a two DWord value, and so on up to a maximum of 1024 DWords. The data payload for a TLP must not exceed the maximum allowable payload size, as defined in the device’s control register (and more specifically, the Max_Payload_Size field of that register). TLPs that use a data payload must have the value in the Length field match the actual amount of data contained in the payload. Receivers must check to verify this rule and, if violated, consider that TLP to be malformed and report the appropriate error. Additionally, requests must not specify an address and length combination that crosses a 4 kilobyte boundary. |