Altera HyperTransport MegaCore Function User Manual
Page 45

Chapter 3: Specifications
3–19
HyperTransport MegaCore Function Specification
© November 2009
Altera Corporation
HyperTransport MegaCore Function User Guide
Preliminary
Rx Buffer Ordering
The circular Rx buffers allow the local-side application to read packets in the order in
which they were received from the link. This implementation satisfies the HT
specification ordering requirements within the same virtual channel and between the
different channels.
If a response or non-posted packet with the
PassPW
bit reset is received, the HT
specification requires that the packet not be processed until after the preceding posted
packet is processed. The response and non-posted buffers are designed to enforce this
requirement. For example, if a response packet with
PassPW
bit reset is received, the
MegaCore function cannot read that packet from the response buffer until all
preceeding posted packets are read from the Rx posted buffers. In this case,
RxRDav
is
not asserted, and if the user interface asserts
RxREna
,
RxRVal
is deasserted to
indicate invalid data until the preceeding posted packets are read from the posted
buffer.
If
PassPW
is set on a received non-posted or response packet, the packets can be read
out of the Rx buffers as soon as they are head of queue in their virtual channel,
independent of any posted requests that may have arrived earlier.
1
If a response packet with the
PassPW
bit set is received after another response packet
with the
PassPW
bit reset, you cannot read the packet with the
PassPW
bit set until
the previous one with the
PassPW
bit reset is read from the buffer. The same is true for
non-posted packets.
shows the Rx buffer ordering rules implemented by the HyperTransport
MegaCore function.
Table 3–6. Rx Buffer Ordering
Row Pass Column
Posted Request
Non-Posted Request
Response
Request
Type
PassPW
Specification
MegaCore
Function
Specification
MegaCore
Function
Specification
MegaCore
Function
Posted
1
Yes/No
No
Yes
Yes
Yes
Yes
0
No
Non-posted
1
Yes/No
Yes
Yes/No
No
Yes/No
Yes
0
No
No
Response
1
Yes/No
Yes
Yes
Yes/No
No
0
No
No
Notes to
(1) This column indicates the requirements as specified by the HyperTransport I/O Link Specification Revision 1.03.
No—The row request type may not pass the column request type.
Yes—The row request type must be allowed to pass the column request type to avoid deadlock conditions.
Yes/No—The row request type may pass the column request type but there is no requirement to do so.
(2) A “Yes” indicates that the MegaCore function allows the row to pass the column if the user application asserts the row
Ena_i
before the column
Ena_i
.