Intel
®
81341 and 81342—Address Translation Unit (PCI Express)
Intel
®
81341 and 81342 I/O Processors
Developer’s Manual
December 2007
246
Order Number: 315037-002US
3.3.1.3
Inbound Memory Read Transaction
An inbound read transaction is initiated by a PCI Express requester and is targeted at
either local memory or a memory-mapped register space. The read transaction is
propagated through the inbound non posted queue (INPQ) and read data is returned
through outbound completion data and header queues (OCPLHQ, OCPLDQ).
In PCI Express, all read transactions are processed as split transactions. The ATUs PCI
Express interface accepts the read transaction and forwards the read request through
to the internal bus and returns the read data to the PCI Express Link. Data flow for an
inbound read transaction is summarized in the following statements:
• The ATU accepts the read transaction when the PCI address is within one of the
inbound translation windows defined by ATU Inbound Base Address Register,
Inbound Upper Base Address Register, and Inbound Limit Register.
• When the transaction crosses a 1KB aligned boundary it is fragmented into smaller
requests that do not cross the aligned boundary before it is issued on the internal
bus. Since PCI Express transactions cannot cross a 4KB boundary, a single read
request is broken into at most 4 1KB transactions.
• When sufficient space exists in OCPLDQ, request internal bus and issue request.
• Save the completion header information in the OCLUT.
• ATUE can handle a maximum of 4 outstanding internal bus requests at one time.
• All internal bus read requests result in split completions. The completion data is
queued in the Outbound Completion Data Queue.
• A zero length read (memory read request of 1 DW with no bytes enabled) has no
side-effects.
• Once a completion transaction has started, it continues until one of the following is
true:
— The length is satisfied.
— An internal bus Master Abort or Target Abort was detected. The ATU generates
a Completion TLP with a Completer Abort status to inform the requester about
the abnormal condition. The INPHQ for this transaction is flushed. Refer to
.
The data flow for an inbound read transaction on the internal bus is summarized in the
following statements:
• The ATU internal bus master interface requests the internal bus when a PCI address
appears in an INPHQ and transaction ordering has been satisfied. The ATU takes
advantage of the information provided by the Relaxed Ordering Attribute bit.
• Once the internal bus is granted, the internal bus master interface drives the
translated address onto the bus. When a Retry is signaled, the request is repeated.
When a master abort occurs, transaction is considered complete and an
unsupported request Completion is loaded into OCPLHQ for return to the PCI
Express requester (request is flushed once the completion has been posted to the
OCPLHQ).
• Once the translated address is on the bus and the transaction has been claimed,
the internal bus target starts returning data using a split response. Read data is
continuously received by the OCPLDQ until one of the following is true:
— The full byte count requested by the ATU read request is received. The internal
bus completer’s initiator interface performs an initiator completion in this case.
— A partial byte count requested by the ATU read request is received. The
completer’s internal bus initiator interface performs an initiator completion in
this case. Also, the completer reacquires the internal bus to deliver the
remaining read data byte count to the ATU.