MCS9815
PCI to Dual Parallel Controller
Copyright © 2008-2012 ASIX Electronics Corporation. All rights reserved.
12.1.3 Claiming the transaction
When a device determines that it is the target of a transaction, it claims the transaction by asserting
nDEVSEL.
12.1.4 Data Phase(s)
The data phase of a transaction is the period during which a data object is transferred between the
initiator and the target. The number of data Bytes to be transferred during a data phase is determined by
the number of Command/Byte-Enable signals that are asserted by the initiator during the data phase.
Each data phase is at least one PCI clock period in duration. Both initiator and target must indicate that
they are ready to complete a data phase. If not, the data phase is extended by a wait state of one clock
period in duration. The initiator and the target indicate this by asserting nIRDY and nTRDY respectively
and the data transfer is completed at the rising edge of the next PCI clock.
12.1.5 Transaction Duration
The initiator, as stated earlier, gives only the starting address during the address phase. It does not tell
the number of data transfers in a burst transfer transaction.
The target will automatically generate the addresses for subsequent Data Phase transfers. The initiator
indicates the completion of a transaction by asserting nIRDY and de-asserting nFRAME during the last
data transfer phase. The transaction does not actually complete until the target has also asserted the
nTRDY signal and the last data transfer takes place. At this point the nTRDY and nDEVSEL are de-
asserted by the target.
12.1.6 Transaction Completion
When all of nIRDY, nTRDY, nDEVSEL, and nFRAME are in the inactive state (high state), the bus is in
idle state. The bus is then ready to be claimed by another Bus Master.
12.1.7 PCI Resource Allocation
PCI devices do not have “Hard-Wired” assignments for memory or I/O Ports like ISA devices do. PCI
devices use “Plug & Play” to obtain the required resources each time the system boots up. Each PCI
device can request up to six resource allocations. These can be blocks of memory (RAM) or blocks of I/O
Registers. The size of each resource block requested can also be specified, allowing great flexibility.
Each of these resource blocks is accessed by means of a Base-Address-Register (BAR). As the name
suggests, this is a pointer to the start of the resource. Individual registers are then addressed using
relative offsets from the Base-Address-Register contents. The important thing to note is: plugging the
same PCI card into different machines will not necessarily result in the same addresses being assigned
to it. For this reason, software (drivers, etc.) must always obtain the specific addresses for the device
from the PCI System.