The original IBM PC had few input and
output functions implemented on the motherboard. Only the keyboard had a
connector on the motherboard. Every other input or output device resided on a
plug-in expansion board connected to the expansion bus. The expansion bus had
eight connectors/slots for such boards. These slots were identical; you could
plug any device into any slot.
A telephone modem that fits into the
original 8-bit expansion bus.
The original expansion bus had a 20-bit
address bus and an 8-bit data bus to match the 8088 CPU that drove the IBM PC.
When the PC-AT was developed, it had a new expansion bus with a 24-bit address
bus and a 16-bit data bus to match the 80286 CPU. The 16-bit AT bus was
backward-compatible with the 8-bit expansion bus. The connectors were simply
made longer to accommodate the extra connectors. 8-bit or 16-bit expansion
boards could be plugged into the slots.
A sound card that fits into
the original 16-bit AT bus.
EISA
Early high-performance
motherboards for the 80386 CPU had an expanded version of the AT bus called the
Enhanced Industry Standard Architecture (EISA) bus. This had a 32-bit address
bus and a 32-bit data bus to match the 80386 CPU. The EISA slots had two rows of
connectors to maintain backward compatibility with the original expansion bus
and the AT bus. 8-bit and 16-bit cards connect only with the top row of
connectors. 32-bit EISA cards had two rows of connectors to match the two rows
of the slots. Around the time the EISA bus was developed, the original expansion
bus was back-named to the 8-bit ISA (Industry Standard Architecture) bus, and
the AT bus was back-named to the 16-bit ISA bus.
An EISA card
showing the two rows of connectors.
The ISA and EISA buses operated at a
maximum clock speed of 8 MHz. This became a serious bottleneck as the CPU
reached speeds of 32 MHz with the 80386. Newer architectures were developed to
address this problem.
MCA
IBM developed a new bus architecture for
its PS/2 line of computers called Micro-Channel Architecture (MCA). This was a
32-bit bus that ran at 10 MHz with a throughput of up to 66 Mbps. IBM charged
high license fees for the MCA bus, so it was not widely adopted.
VLB
The Video Electronics Standards Association (VESA) answered the bus speed
problem with the VESA Local Bus architecture (VLB). This was reminiscent of the
AT bus as an extension of the PC bus. The local bus connection was an extension
of the AT bus connection.
A motherboard with three VLB slots. Each
VLB card plugs into both the brown slot and the black slot that aligns with it.
The VLB card connected to both the ISA bus and the local bus.
A VLB
card (a multi-I/O card as described below). Notice the two sets of edge
connectors for the two slots.
PCI
PCI is the oldest expansion bus
architecture still in common use.
A Mini-ITX motherboard with a
single 32-bit, 5V PCI slot (circled).
PCI is a 32-bit bus designed for
Intel's family of Pentium CPUs. Like previous bus architectures, all slots of
the same voltage and bus width are identical, so that you can plug any compatible PCI
card into any slot. For example, if your computer has several 5V 32-bit slots,
it doesn't matter which slot you plug a 5V 32-bit device into.
Various PCI slots
The most common PCI slot is the 5V 32-bit slot.
However, others were available but uncommon. The slots were keyed, so you could
not plug in an incorrect card. Some PCI cards were universal, being compatible
with either 5V or 3.3V slots, and 32-bit PCI cards would usually operate in a
64-bit PCI slot. The 64-bit PCI slot was also known as PCI-X. This is not to be
confused with PCI Express.
AGP
The Accelerated Graphics Port (AGP)
was a complete redesign of the PCI architecture designed for video cards. The
AGP port was a separate 'bus' from PCI, so graphics cards didn't have to compete
with other PCI devices.
Two PCI slots (bottom) and an AGP slot
(top).
An AGP card. Notice the two rows of connectors in the inset.
PCI-Express
In 2004, AGP and PCI were replaced by PCI-Express
(abbreviated PCIe). Despite the name, PCIe is an entirely new bus design
unrelated to PCI, although the concept is similar and is a serial bus rather
than parallel. PCIe introduces 'lanes' to transfer data through the bus, with a
maximum of 32 lanes available. A lane can simultaneously transport 8-bit 'byte'
packets in both directions.
PCI slot (bottom) and four PCIe
slots, x4, x16, x1, and x16, top to bottom.
Devices on the PCIe bus can
take a maximum of 32 lanes. However, the most common maximum is 16 lanes (the
x16 slot), and all devices take at least one lane (the x1 slot), with the
in-between slots using powers of 2 (the more lanes a PCIe device uses, the
faster its' connection is). x32 slots exist but are generally not on
motherboards meant for home use. The speed of each lane varies according to the
revision of PCIe, with 1.0 having a maximum of 250 MB/s, 2.0 a maximum of 500
MB/s, 3.0 a maximum of 985 MB/s, and 4.0 a proposed 1969 GB/s (PCIe 4.0
specifications have not yet been released as of January 2013).
As a
serial bus, PCIe supports one device on each endpoint of each connection;
however, switches can be deployed to allow multiple devices on one endpoint. The
serial configuration also eliminates the problem of Timing Skew, where bits
arrive at different times on a parallel bus, requiring a waiting period for all
bits to arrive. This allows frequencies into the gigahertz range.
PCIe
cards run at 3.3 or 12 volts, depending on the card type. Regular cards have a
maximum of 25 watts of power draw (or 10 watts for low-profile cards), but
graphics cards can draw up to 75 watts on PCIe 1.0. PCIe 2.1 increased the
maximum power output of an x16 slot to 150 watts so that more graphics cards
could be run from the port alone. However, most high-end graphics cards still
use power connectors from the power supply in 6-pin (75 watts) and 8-pin (150
watts) designs, up to a maximum of 300 watts.
PCIe's signals are
self-clocking. This is done by embedding synchronization information in the
signal and means that the signal can be decoded without a separate clock signal
or need for other synchronization.
Mini PCIe (MiniCard)
A variant
on PCIe for use in mobile devices utilizing an x1 slot (though with a different
connector), allowing many different kinds of devices to be connected using only
one adapter. Some SSDs and HDDs for laptops use a Mini PCIe port but are
electrically SATA (see hard disks) due to the Mini PCIe port being cheaper to
implement and smaller.
mSATA
Mini-SATA is not electronically related to PCI but is historically related.
It is a serial ATA (SATA) interface for internal solid-state drives with a small
footprint. It uses the same socket as the PCIe-Mini connector but is
electronically incompatible. The M.2 specification superseded Mini-SATA.
An
mSATA SSD
M.2
M.2 (pronounced
M dot two) is a development of the Mini PCIe specification. It is used for
several device types but commonly for solid-state drives in notebook computers
and some desktop systems. For SSDs, it is a replacement for mSATA.
An M.2 solid-state drive with a type M
connector.
There are several incompatible M.2 specifications with
associated sockets. Therefore, technicians must be sure to match devices to the
correct socket. The available socket types are A, B, E, and M, with other types
reserved for future use. Some modules are keyed to fit either type B or Type M
sockets.