Professional Documents
Culture Documents
PCI Definition
PCI stands for Peripheral Component Interconnect. The PCI Local Bus Standard was
introduced by Intel Corporation in 1993. PCI is an I/O bus. I/O busses are used to
connect various types of Input/Output devices in a computer system. I/O busses can
have many different types of devices connected to them and can provide different
bandwidth to the different devices. Since 1993 use of the PCI Local Bus Standard has
become very widespread. Nearly all modern PCs and Macintosh computers utilize the
PCI local bus standard. PCI is an aging standard and it's replacement, PCI Express, is
scheduled for release in 2003. Despite this fact, the huge base of devices currently
designed to use the PCI Local Bus Standard ensures that PCI will be implemented in
most personal computer systems for years to come
PCI Purpose
The purpose of the PCI local bus standard is to provide a means of transferring data
between devices in a computer.
Typically, the processor is connected at one end of these wires. Memory may also be
attached via the bus.
The wires are split into several functional groups such as:
_ Address: Specifies the peripheral and register within the peripheral that is
being accessed.
_ Data: The information being transferred to or from the peripheral
_ Control: Signals that effect the data transfer operation. It is the control signals
and how they are manipulated that embody the bus protocol.
Beyond basic data transfer, busses typically incorporate advanced features such as:
_ Interrupts
_ DMA
_ Power distribution
• What makes the PCI bus one of the fastest I/O bus used today?
• Three features make this possible:
– Burst Mode: allows multiple sets of data to be sent (Kozierok, 2001a)
– Full Bus Mastering: the ability of devices on the PCI bus to perform transfers
directly (Kozierok, 2001c)
– High Bandwidth Options: allows for increased speed of the PCI (Kozierok,
2001a)
Plug and Play
• Requirements for full implementation:
– Plug and Play BIOS
– Extended System Configuration Data (ESCD)
– Plug and Play operating system
• Tasks it automates:
– Interrupt Requests (IRQ)
– Direct Memory Access (DMA)
– Memory Addresses
– Input/Output (I/O) Configuration
Interrupts
Devices are required to follow a protocol so that the interrupt lines can be shared.
The PCI bus includes four interrupt lines, all of which are available to each device.
However, they are not wired in parallel as are the other PCI bus lines. The positions of the
interrupt lines rotate between slots, so what appears to one device as the INTA# line is
INTB# to the next and INTC# to the one after that. Single-function devices use their
INTA# for interrupt signaling, so the device load is spread fairly evenly across the four
available interrupt lines. This alleviates a common problem with sharing interrupts.
PCI bridges (between two PCI buses) map the four interrupt traces on each of their
sides in varying ways. Some bridges use a fixed mapping, and in others it is configurable.
In the general case, software cannot determine which interrupt line a device's INTA# pin is
connected to across a bridge. The mapping of PCI interrupt lines onto system interrupt
lines, through the PCI host bridge, is similarly implementation-dependent. The result is that
it can be impossible to determine how a PCI device's interrupts will appear to software.
Platform-specific BIOS code is meant to know this, and set a field in each device's
configuration space indicating which IRQ it is connected to, but this process is not reliable.
PCI interrupt lines are level-triggered. This was chosen over edge-triggering in
order to gain an advantage when servicing a shared interrupt line, and for robustness: edge
triggered interrupts are easy to miss.
PCI Express does not have physical interrupt lines at all. It uses message-signaled
interrupts exclusively.