Document: PCI Frequently Asked Questions list Maintainer: Patrick Duffy, duffy@theory.chem.ubc.ca Last Revision Date: August 19, 1995 Archived at: ftp.netcom.com, in directory /pub/ab/abe/ CompuServe (GO BENCHMARK) Web pages: http://warp.eecs.berkeley.edu/os2/workbench/work.htm This document may be distributed freely, provided it is distributed in its entirety and is unmodified. This is the PCI Frequently asked Questions list. It is designed to provide a beginning guide to what is turning out to be the dominant bus standard among PCs. It attempts to answer all of the following questions: 1) What's PCI? 2) How does the PCI bus compare with: a) ISA b) EISA c) VL d) MCA 3) What are the features of the various PCI revisions? a) 2.0 b) 2.1 4) How can I obtain more information about the PCI specification? a) How to obtain the PCI specification b) How to obtain more general information 5) I've heard that many new PCI chipsets support EDO RAM. What is EDO RAM and how will it benefit me? 6) I would like my new Pentium system to use parity RAM. Which chipsets will make use of parity RAM? 7) I'm upgrading from an ISA/VL/EISA system: a) What will still work in my new system? b) What do I not need to replace? c) What should I consider replacing? d) When using a PCI motherboard, if i don't replace my sound and I/O card won't it slow down the PCI board? e) What types of motherboards will work best? f) How much faster will my new system be? ------------------------------------------------------------------------ 1) 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. Many 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 board, for example) will also automatically configure the PCI bus for you, eliminating the need to fiddle with any jumpers of any kind. (Others, like the Asus boards, do not support this to my knowledge.) ------------------------------------------------------------------------ 2) How does the PCI bus compare with: 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 also not auto-configure, and 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. b) 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, though it is capable of sharing interrupts. EISA never really caught on, and appears to be fading in popularity. c) 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. d) 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 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. ------------------------------------------------------------------------ 3) What are the features of the various PCI revisions? a) 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). b) 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 chipset). It includes the following changes from PCI 2.0: - backwards compatible with PCI 2.0 If 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 ------------------------------------------------------------------------ 4) How can I obtain more information about the PCI specification? a) 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 specification. b) 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 ------------------------------------------------------------------------ 5) 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 while preparing for the next read operation. 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. ------------------------------------------------------------------------ 6) 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. None of these chipsets has built-in IDE, however, so that you may wind up with a system with a defective on-board IDE controller. Check with your system vendor to ensure this does not happen. ------------------------------------------------------------------------ 7) I'm upgrading from an ISA/VL/EISA system: a) 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. b) 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. c) What should I consider replacing? If you have a busmastering ISA SCSI controller, replace it with a PCI-equivalent one. Not only will it be faster, 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. d) 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. e) 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.) f) 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. ------------------------------------------------------------------------ That's what I know as best I know how to say it. E-Mail me with suggestions/corrections and I'll post again. -- Patrick Duffy, duffy@theory.chem.ubc.ca -- I am Homer of Borg. Resistance is fu-- mmmmm... donuts...