Intel
®
81341 and 81342 I/O Processors
December 2007
Developer’s Manual
Order Number: 315037-002US
239
Address Translation Unit (PCI Express)—Intel
®
81341 and 81342
3.3
ATU Address Translation
The ATU allows PCI Express requesters to initiate transactions to the 81341 and 81342
internal bus and allows the Intel XScale
®
processor to initiate transactions in the PCI
Express domain.
The ATU implements an address windowing scheme to determine which addresses to
claim and translate to the destination bus.
• The address windowing mechanism for inbound translation is described in
3.3.1.1, “Inbound Address Translation” on page 242
.
• The address windowing mechanism for outbound translation is described in
3.3.2, “Outbound Transactions” on page 249
Section 3.3.3, “Outbound Write
.
The ATU has the ability to accept up to eight inbound PCI Express Non Posted Read
(memory read, configuration read, and I/O read) transactions, one inbound Non Posted
Write (configuration write and I/O write) transaction, and16 inbound PCI Express
Posted (memory write and message) transactions simultaneously.
As a PCI Express end point, the ATU must advertise infinite credits for Completion
Headers and Completion Data. As a requester the ATU never requests more read data
than it has room for in its Inbound Completion queues (ICPLHQ and ICPLDQ).
Also, the ATU has the ability to accept up to eight outbound Non Posted (internal bus
read, configuration, and I/O) transactions and four outbound Posted (internal bus write
and message) transactions simultaneously.
Of the 8 outbound Non Posted transactions, 4 is actively requesting data while the
other 4 remains pending until one of the earlier active transactions is completed. Each
active outbound read request may be fragmented into sub-requests based on the
MAX_READ_REQUEST_SIZE parameter programmed in the
Register - PE_DCTL” on page 348
. The fragmentation may result in as many as 8 sub-
requests per active read transaction. The ATU tracks a maximum of 32 outstanding non
posted transactions at once. Completions for these sub-requests can return out of
order on the PCI Express interface but they are returned in order on the internal bus.
Outbound memory writes and completions may be fragmented into smaller
transactions based on the setting of the MAX_PAYLOAD_SIZE in the
Device Control Register - PE_DCTL” on page 348
Outbound completions obeys the minimum fragmentation limit of 128Bytes.
Refer to
and
for details of the ATU queue architecture.
As a master on the internal bus, the ATU never requests more read data than it has
room for in the Outbound Completion queues (OCPLHQ and OCPLDQ).
Inbound memory writes are fragmented on 1KB address aligned boundaries before
issuing on the internal bus. Since the maximum payload size supported by the PCI
Express interface is 512 Bytes each transactions are fragmented into a maximum of
two internal bus transactions. Additionally, write combining does not occur.
Inbound completions are attempted on the internal bus with the same payload size as
was received from PCI Express. In most instances the PCI Express completion size is
64B or 128B. The PCI express completions may be combined into larger completion
transactions on the internal bus.
Inbound memory read requests are fragmented into 1KB aligned sub-requests.
Completions for these sub-requests can be received out of order on the internal bus
and is returned in order on the PCI Express interface.