PCI Frequently Asked Questions list

By OS/2 Forum Austria, Patrick Duffy (1996-05-26)

What's PCI?
PCI, or Peripheral Component Interconnect is, briefly, a new way of interconnecting the peripherals (cards you plug into the motherboard) with both the system memory and the CPU. It was designed from the start to alleviate many of the headaches that installation of a new card into an ISA bus-based computer would cause (IRQ conflicts, address conflicts, etc.). All PCI standards are set by a committe to ensure wide industry support. Some of its major features:


 * a) Multiple busmasters on the same bus. (Several SCSI controllers running at the same time, for example.)
 * b) Auto-configuring. All components which plug into the PCI bus will be configured by the BIOS, making jumpers for this unnecessary.
 * c) IRQ sharing. The PCI bus is able to share a single interrupt between cards.
 * d) High bus bandwidth. The PCI bus runs at a maximum rate of 33 MHz (66 MHz in PCI 2.1 -- see later) and is capable of transferring 32 bits (4 bytes) per clock cycle, for a maximum throughput of 132 (264 in PCI 2.1) MB/sec (though bus latency times usually lower this to significantly less than maximum in real implementations).
 * e) Multiple functions on one card. The PCI specification allows for up to 8 functions (video, sound...) on a single card.

The PCI bus works with two different types of cards: 3.3 volt and 5 volt. These two different types of cards cannot be accidentally plugged into the wrong slot, as the "keys" for the cards are on opposite ends of the slot (most currently shipping motherboards have 5 volt connectors). Of course the 3.3 volt and 5 volt cards won't work in the same slot, with the single exception of cards which can operate with either voltage (this is covered in the PCI spec). An interesting trivia note is that the connectors used for PCI cards are the same as those used for MCA.

The PCI bus is also limited to a maximum of four slots per bus (for technical reasons); if more PCI slots are desired then a PCI - PCI bridge must be used, in the same way that PCI is bridged to other buses now. Of those four slots, two must be able to accommodate a busmastering device, and the busmaster-enabled slots must be labelled somehow either on the board itself or in the manual for the board.

As a final note, not all PCI implementations are created equally. Some PCI chipsets, for instance, do not support an (optional) feature called "byte merging", in which writes to sequential memory addresses are merged into one PCI-to-memory operation. (This will cause the bus to have to actually wait for a 60 MHz Pentium CPU to catch up.) Some motherboards (like the Intel boards, for example) will also automatically configure the PCI bus for you, eliminating the need to fiddle with any jumpers of any kind. (Others, like some of the oler Asus boards, do not support this to my knowledge.)

a) tbe ISA bus?

 * Right from the start, it should be apparent both that the PCI bus is not compatible with ISA (even the expansion slots for the two buses are different), and that technically PCI is much more advanced than ISA. The ISA bus runs at a slower speed (8 MHz on most systems, though on many PCI/ISA systems with enhanced ISA timing the bus may be run at 10 or 11 MHz), does not allow for multiple busmasters (only one may be on the bus at any one time) and, because of the DMA controller it uses, will not allow peripherals which employ DMA to directly address memory above 16 MB. ISA will auto-configure (with the latest BIOSes installed), but will not share interrupts. The ISA bus will support a maximum real-world data transfer rate of about 5 MB/sec (16 MB/sec is the theoretical maximum; burst transfer rates may approach about half of this), and uses a 16 bit data path.
 * The ISA bus, in spite of its technical inferiority to PCI, still has a place in PC architecture, however; certainly you don't need PCI-type bandwidth for 16 bit/44.1 kHz digital audio, and serial ports are hardly taxing. For that matter, neither are 900+ Kb/s CD-Rom and tape drives or ethernet 10Base-x. However, use of these in combination with several other cards on the same (ISA) bus (video, disk I/O, etc.) will severely limit performance on most systems.

The EISA bus?

 * The EISA bus is an attempt to extend ISA to a 32-bit bus which allows for proper busmastering. While having the resulting advantage of compatibility with the large number of ISA-based cards in existence, this causes it to be slower than it could be, as it transfers 32 bits per clock cycle but runs at 8 MHz (for a theoretical maximum of 32 MB/sec). The EISA bus also does not autoconfigure (I do not know if this has changed in the latest revisions as it has with ISA), though it is capable of sharing interrupts. EISA never really caught on, and appears to be fading in popularity.

tbe VL bus?

 * The VL bus was designed to overcome the speed limitations of the ISA bus. It talks both directly to the CPU and the memory, and typically runs at the external clock rate of the CPU (up to a maximum of 40 MHz, though there are many boards which run at 50 MHz, strictly a violation of the VL spec's). As it is a 32-bit bus, the high speeds at which it runs can make for some very fast data transfers.
 * The VL bus has its limitations, however. For one, it truly is a "local bus", meaning that it talks directly to memory and to the CPU with no intervention from any bus arbitrators. Because of this, there is the possibility that one bad card could cause serious damage to the system. Also because of the local nature of the bus, busmastering on the VL bus causes the CPU to be blocked from accessing RAM while the busmaster is talking to it. VL is limited to two or three slots per bus for power-consumption reasons.
 * The VL bus, because it is simply an extension of the ISA bus, also does not support autoconfiguring or IRQ sharing.
 * One additional problem not often mentioned is the physical length of the card connectors. They are quite long and, as a result, flexing the motherboard (as may occur when, say, an older case is moved) may cause the VL part of the card to become partially unseated, no matter how well clamped in it is at the ISA end.

the MCA bus?

 * The MCA bus has very similar capabilities to the PCI bus. That is, it supports IRQ sharing, multiple busmasters, etc., just as does PCI. However, MCA does not autoconfigure in the same way that PCI does (it must be done via a reference disk). The MCA bus used on PS/2s typically runs at 10 MHz, and supports transfer rates of 32 bits/clock cycle (maximum) for a theoretical maximum rate of 40 MB/sec. The maximum possible data transfer rate for MCA is 160 MB/sec, though running the bus at this speed would break compatibility with older cards.
 * MCA can be made to run as fast (or faster) than the PCI bus in some cases as it has certain features which PCI does not. Most notable among these features is "streaming", whereby the 32-bit address bus is used to carry data as well as the 32 bit data bus (PCI has only one 32-bit bus used for both addresses and data and so cannot stream). In addition, the MCA bus may accommodate more slots in a single bus than PCI; up to 10 may be present, so that a bridge to another bus is generally not necessary. MCA also apparently has lower latency times than does PCI; apparently PCI slave (non-busmastering) accesses have longer latency times than do equivalent accesses on MCA.

2.0
Revision 2.0 of the PCI standard is currently implemented in older-generation motherboards (for example, those using the Neptune and Saturn chipsets). It has all the features and limitations discussed in question (1).

2.1
Revision 2.1 of the PCI standard is now widely available in the new generation of shipping motherboards (for example, those which employ the Intel Triton II chipset). It includes the following changes from PCI 2.0:
 * backwards compatible with PCI 2.0If a PCI 2.1-compliant card and a PCI 2.0-compliant card are on the same bus, the PCI bus will be run at 33 MHz instead of 66.
 * 66 MHz (maximum) bus speeds
 * Apparently also there are 64-bit extensions defined in PCI 2.1. There are as yet, however, no PC implementations which support them.
 * PCI to PCI bridges, which will allow for more than three or four PCI slots per motherboard. In addition, some PCI cards (such as the Adaptec 3940 twin-channel SCSI controller) exploit this bridging capability to obtain multiple SCSI channels in a single PCI slot.

How to obtain the PCI specification
The most direct way is to call Intel, at (800) 433-5177. This will allow you to join the PCI special interest group, and to obtain a copy of the latest PCI specifications. You can also write to them:PO BOX 14070 Portland, OR 97214They sell the following PCI specification manuals:      PCI spec (general) PCI bios spec PCI multimedia guide (motion video) PCI bridge spec PCI mobile design guide (laptops)

How to obtain more general information
If you don't need the whole specification but would still like a little more information about PCI, I've found the following documents (available from Intel FaxBACK, (800) 628-2283) to be useful and relatively concise summaries. The numbers beside the titles are the document numbers you'll need to order the associated articles: 7048: PCI and VL-bus:  What are the Differences? 7056: PC Basics:  Bus Standards Explained (ISA, EISA, VL/VESA, PCI) 7108: PCI:  Technical Description 7157: PCI Fundamentals

I've heard that many new PCI chipsets support EDO RAM. What is EDO RAM and how will it benefit me?
The EDO in the name "EDO RAM" is an acronym for "Extended Data Out". This means that the RAM can output data for longer periods of time than conventional DRAM. It does this by holding data on the outputs of the DRAM even while the next address to be read is being prepared. As a result, there is an approximately 20 ns overlap between one read and the next.The fact that EDO RAM can output data for a longer period than conventional RAM has several immediate consequences. The one of most concern to OS/2 users is an artifact of OS/2's multitasking ability. When OS/2 switches between tasks, it must load the mew task into memory. Quite obviously, the faster it can do that, the faster the task-switching will be, and the smoother the system will seem.

I would like my new Pentium system to use parity RAM. Which chipsets will make use of parity RAM?
The Triton chipset does NOT use parity RAM (although some systems will still accept parity RAM in the SIMM sockets without using it). The SIS chipset, the Mercury chipset, and the Neptune chipset all are capable of taking and using parity RAM, and the Triton II (430HX) chipset will use parity and ECC RAM as well. Of these chipsets, only Triton II has built-in IDE, so it may be in your best interest to make sure that your motherboard has good outboard IDE controller if no IDE services are present on the PCI chipset itself. Check with your system vendor if you're in doubt.

How fast is the PCI bus running in my system?
The speed of the PCI bus is, in general, governed by three things: your processor speed, the chipset your motherboard uses, and the PCI peripherals you have plugged in to your PCI bus.First, the processor speed: Different processors have different external clock rates (as you may well know). A table of these is shown below. I've limited my discussions to Intel Pentium CPUs, but the same general comments apply to all CPUs. Processor           External clock speed -   P5-75                        50 MHz P5-60, 90,150,180           60 MHz P5-66,100,133,166,200       66 MHz - The PCI bus speed is (in all cases of which I know) determined by taking the external clock speed of the CPU and dividing it by some number. The number used depends on two things:Most PCI chipsets determine the PCI bus speed by taking the external clock speed of the CPU and dividing it by two. Therefore, the PCI bus would run at the following rates given the following CPUs:   Processor             PCI bus clock speed -   P5-75                        25 MHz P5-60, 90,150,180           30 MHz P5-66,100,133,166,200       33 MHz - However, some new chipsets (like Orion for the Pentium Pro and Triton II for the Pentium) can run the PCI bus as fast as 66 MHz at the same rate as the external CPU clock speed.This does not happen automatically, though. In order to obtain the enhanced bus speeds, both the PCI bus itself and all PCI peripherals attached to that PCI bus must be capable of running at that rate. First, if the motherboard itself does not support 66 MHz speeds (and 66 MHz is an option in PCI 2.1, not a requirement), it does not matter if you have all 66 MHz-capable cards in your system; the bus will be run at whatever maximum the board will accommodate. If the motherboard is capable of 66 MHz bus speeds, and if you have even one peripheral attached to the bus which is not capable of accommodating 66 MHz bus speeds, the chipset will run the bus at a maximum of 33 MHz (the 2.0 specification). I know of no current 66 MHz-compliant peripherals or motherboards, and I suspect that when they do appear, they will be expensive; 66 MHz bus timings make for difficult motherboard and peripheral design. Count on 33 MHz maximum bus speeds to be the real-world norm for a while yet.

What will still work in my new system?
Assuming the cards you used in your old system were all of reasonable quality and sound implementation, all of what you had before should still work now. "Should" is the operative word here; if you're unsure, ask to try the card in the new system. Of course, if you have a VL card, you'll need a VL slot on your new PCI board into which you can plug it. The same goes for ISA and EISA cards as well.

What do I not need to replace?
There are no PCI sound cards, so you definitely do not need to look into replacements for any that you might have. In general as well, because of their low bandwidth, I/O cards can be re-used (serial/parallel/game), as can I/O cards dedicated to low-bandwidth peripherals such as CD-ROM and MO drives.

What should I consider replacing?
If you have a busmastering ISA SCSI controller, replace it with a PCI-equivalent one. Not only will it allow for faster data transfers, it will also make moot the problems which ISA has with 16 MB memory limitations and busmastering controllers. You will also get proper busmastering (i.e. the CPU can access memory while the cards do), and just in general better performance. The upgrade need not be expensive either; PCI SCSI controllers based on the NCR chip (see the PCI SCSI controller list) are available for less than $100.ISA-based video cards are also a prime candidate for replacement. The higher bandwidth of PCI will allow for faster screen draws when running at high colour depth, and you won't need to worry about setting or unsetting memory apertures or any of that.

When using a PCI motherboard, if i don't replace my sound and I/O card won't it slow down the PCI board?
No it won't. The sound and I/O cards are on the ISA bus (in general), and so will have no effect on the PCI bus. In addition, components on the ISA (and PCI) bus operate independently, so that a slow serial port (for example) will not slow down the hard disk controller. The only instance in which performance might be adversely affected is if the system must wait for a serial port or sound card operation to finish before it may proceed with another task. As OS/2 is multitasking, however, this is extremely unlikely to occur.

What types of motherboards will work best?
All different types of motherboards (those with bridges to ISA/EISA/VL slots) can be made to work well, and many do. Generally PCI/ISA motherboards are all well-implemented, as are PCI/EISA. The problem comes, however, when dealing with PCI/VL boards. Many of these let the VL bus talk to the CPU, and then bridge the PCI bus to the VL bus. Doing so causes a performance hit on the PCI bus. If you must have a PCI/VL motherboard, ensure that the CPU is bridged directly to the PCI bus, and that any VL buses are bridged to the PCI bus. (Only one of which I know, the Asus AVP4, implements VL in this manner.)

How much faster will my new system be?
Ironically enough, unless you've bottlenecked your system (by using fast hard drives and/or high-resolution video) probably not very. Given, though, that most people today do run at 1024x768, and typical new fast hard drives are running at 4 MB+/sec, the standalone user could see a jump in performance that way.The real people to benefit, however, will be the people who run servers. ISA/EISA/VL just don't cut it in servers (for various reasons), and PCI-based replacements will go a long way to solving their bandwidth problems.