Pci Local Bus: Peripheral Component Interconnect (PCI)
Pci Local Bus: Peripheral Component Interconnect (PCI)
A typical PCI card
Address phase
At the same time, initiator identifiers target device and the type of transaction
The initiator assert the FRAME# signal
Every PCI target device latch the address and decode it
Intro to PCI Bus Operation
Data Phase
Number of data bytes to be transformed is determined by the
number of Command/Byte Enable signals asserted by initiator
Both of initiator and target must t ready to complete data phase
IRDY# and TRDY# used
Transaction Duration
By asserting FRAME# at start of address phase and remain until
the final data phase
Intro to PCI Bus Operation
Transaction completion and return of bus to idle state
By deasserting the FRAME# but asserting IRDY#
When the last data transfer has completed the initiator returns
the PCI bus to idle state by deasserting IRDY#
PCI Signals
- Clock and Reset
Transaction Control
1. Initiator Signals
2. Target Signals
3. Configuration Signals
Address and Data Signals
Arbitration Signals
Error Signals
PCI Lines
Clock and Reset
CLK
— PCI input clock
— All signals sampled on rising edge
— 33MHz is really 33.33333MHz (30ns clk. period)
— The clock is allowed to vary from 0 to 33 MHz
– The frequency can change “on the fly”
– Because of this, no PLLs are allowed
RST#
— Asynchronous reset
— PCI device must tri-state all I/Os during reset
Transaction Control
Target Signals
TRDY# – I/O
— “T-Ready”
— When the target asserts this signal, it tells the
initiator that it is ready to send or receive data
STOP# – I/O
— Used by target to indicate that it needs to
terminate the
transaction
Transaction Control
Target Signals
DEVSEL# – I/O
— Device select
— Part of PCI’s distributed address decoding
– Each target is responsible for decoding the address
associated with each transaction
– When a target recognizes its address, it asserts
DEVSEL# to claim the corresponding transaction
Transaction Control
Initiator Signals
FRAME# – I/O
— Signals the start and end of a transaction
IRDY# – I/O
— “I-Ready”
— Assertion by initiator indicates that it is ready to
send receive data
Transaction Control
Configuration Signals
Uses the same signals as the target, plus . . .
IDSEL – I
— “ID-Sel”
— Individual device select for configuration – one
unique IDSEL line per agent
— Solves the “chicken-and-egg” problem
– Allows the system host to configure agents before
these agents know the PCI addresses to which they
must respond
Address and Data Signals
AD[31:0] – I/O
— 32-bit address/data bus
— PCI is little endian (lowest numeric index is LSB)
C/BE#[3:0] – I/O
— 4-bit command/byte enable bus
— Defines the PCI command during address phase
— Indicates byte enable during data phases
– Each bit corresponds to a “byte-lane” in AD[31:0] – for
example,C/BE#[0] is the byte enable for AD[7:0]
Address and Data Signals
PAR – I/O
— Parity bit
— Used to verify correct transmittal of address/data
and command/byte-enable
— The XOR of AD[31:0], C/BE#[3:0], and PAR
should return zero (even parity)
– In other words, the number of 1’s across these 37
signals should be even
Arbitration Signals
For initiators only!
REQ# – O
— Asserted by initiator to request bus ownership
— Point-to-point connection to arbiter – each initiator has its
own REQ# line
GNT# – I
— Asserted by system arbiter to grant bus ownership to the
initiator
— Point-to-point connection from arbiter – each initiator has
its own GNT# line
Error Signals
PERR# – I/O
— Indicates that a data parity error has occurred
— An agent that can report parity errors can have its
PERR# turned off during PCI configuration
SERR# – I/O
— Indicates a serious system error has occurred
– Example: Address parity error
— May invoke NMI (non-maskable interrupt, i.e., a
restart) in some systems
Basic Bus Operations
Terms
Doubleword
Quadword
Burst transaction