          Document:  PCI Frequently Asked Questions list
        Maintainer:  Patrick Duffy, duffy@theory.chem.ubc.ca
Last Revision Date:  May 29, 1995
       Archived at:  ftp.netcom.com, in directory /pub/ab/abe/
         Web pages:  http://warp.eecs.berkeley.edu/os2/workbench/work.htm

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'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) What types of motherboards will work best?
   e) 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
      (see later) and is capable of transferring 32 bits (4 bytes) per
      clock cycle, for a maximum throughput of 132 MB/sec (though bus
      latency times usually lower this to significantly less than
      maximum in real implementations).  The 64 bit variant of the PCI
      bus will do 264 MB/sec.

   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 it blows the ISA bus
      right out of the water.  The ISA bus runs at a slower speed (8
      MHz), does not allow for multiple busmasters and, because of the
      DMA controller it uses, will not allow peripherals which emply 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 data transfer rate of about 5 MB/sec, and uses a
      16 bit data path.

      This does not mean that the ISA bus is useless, however; certainly
      you don't need PCI-type bandwidth for 16 bit/44.1 kHz digital
      audio, and serial ports are hardly taxing.  However, use of these
      in combination with several other cards (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).  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 arbitraters.  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.

   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 the currently available
      version in all shipping motherboards.  It has all the features and
      limitations discussed in question (1).

   b) 2.1

      Revision 2.1 of the PCI standard has been announced, and is
      supported in 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:

      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
   before requiring a refresh of its data (dynamic RAM requires that it
   be refreshed to ensure validity of data every few clock cycles).

   The fact that EDO RAM does not require refreshes as often as
   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 more
   smoothly OS/2 will multitask.

   Because EDO RAM can output data for longer periods of time than
   conventional RAM, OS/2 will be able to switch between tasks much more
   quickly and so will be perceived to run more quickly on a system
   which uses EDO RAM.

------------------------------------------------------------------------

6) 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) 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.)

   e) 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.
