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.