PCI
More and more machines you find on the market today are being built only with some form of
PCI local buses. One
advantage that PCI
offers over VL-Bus is the higher performance, automatic configuration of
peripheral cards, and superior compatibility. A major drawback with the other
bus types (ISA, EISA,
MCA) is the I/O
bottleneck.
Local buses overcome this by accessing memory using the same signals
lines as the CPU.
As a result, they can operate at the full speed of the CPU as well as utilizing
the 32-bit data path. Therefore, I/O
performance is limited by the card and not the bus.
Although
PCI is referred to as a local bus,
it actually lies somewhere “above” the system bus. As a result it
is often referred to as a “mezzanine bus”
and has electronic “bridges” between the system bus and
the expansion bus.
As a result, the PCI
bus can support up to 5 PCI devices, whereas the VL-BUS can
only support two or three. In addition, the PCI
bus
can reach transfer speeds four times that of
EISA or MCA.
Despite PCI
being called a mezzanine bus,
it could replace either ISA,
EISA or MCA
buses. Although in most cases, PCI
is offered as a supplement to the existing bus
type. If you look at a motherboard with PCI
slots, you will see that they are completely separate from the other
slots. Whereas VLB slots are extensions of the existing slots.
Figure Comparison of ISA/EISA bus slots to PCI
PCI offers additional advantages over the
VLB as the VLB
cannot keep up with the speed of the faster CPUs, especially if there are multiple
VLB devices on the system. Because PCI
works together with the CPU
it is much more suited to
multi-tasking operating systems like UNIX.
Whereas the CPU
cannot work independently if a VLB
device
is running.
Like EISA
and MCA,
PCI
boards have configuration information built into the card. As
the computer is booting, the system can configure each card individually based
on system resources. This configuration is done “around” existing
ISA, EISA
and MCA
cards on your system.
To overcome a shortcoming PCI
has when transferring data, Intel (designer and chief proponent of PCI) has come
up with a PCI
specific chip sets, which allows data to be stored on the PCI controller,
freeing the CPU to do other work. Although this may delay the start of the
transfer, however once the data flow starts, it should continue uninterrupted.
A shortcoming of PCI, is that ISA
and EISA
cards can be
swapped for VLB
cards, without any major problems. This is not so for the PCI
cards. Significant
changes need to be made to both the kernel
and device drivers to account
for the differences.
When it first came out, a shortcoming of PCI
was the number of boards that are
available. The number
grew rapidly, and there are now more PCI
boards than ISA
boards
available. It is on its way to becoming a de facto standard if not de jure.
On the other hand, the PCI
bus
is not processor dependent. This allows
PCI to be installed in Pentium machines, as well as Alpha machines and other
architectures. You can therefore run the same SCSI
host
adapter (or whatever). Since it is 64-bits wide, both the Pentium
and Alphas are not slowed down (too much) by the bus.
For the most part, PCI devices are recognized when Linux fist starts up. You can display a list of all PCI devices by using the lspci.
Naturally you need to ensure the driver for the device in question is installed on you system, but common PCI devices should be available by default.