Vacuum-tube based computers had modular construction, but individual functions for peripheral devices filled a cabinet, not just a printed circuit board. Processor, memory and I/O cards became feasible with the development of
integrated circuits. Expansion cards make processor systems adaptable to the needs of the user by making it possible to connect various types of devices, including I/O, additional memory, and optional features (such as a
floating point unit) to the central processor. Minicomputers, starting with the
PDP-8, were made of multiple cards communicating through, and powered by, a passive
backplane. The first commercial
microcomputer to feature expansion slots was the
Micral N, in 1973. The first company to establish a
de facto standard was Altair with the
Altair 8800, developed 1974–1975, which later became a multi-manufacturer standard, the
S-100 bus. Many of these computers were also passive backplane designs, where all elements of the computer, (processor, memory, and I/O) plugged into a card cage which passively distributed signals and power between the cards. Proprietary
bus implementations for systems such as the
Apple II co-existed with multi-manufacturer standards.
IBM PC and descendants IBM introduced what would retroactively be called the
Industry Standard Architecture (ISA) bus with the IBM PC in 1981. At that time, the technology was called the
PC bus. The
IBM XT, introduced in 1983, used the same bus (with slight exception). The 8-bit PC and XT bus was extended with the introduction of the IBM AT in 1984. This used a second connector for extending the address and data bus over the XT, but was backward compatible; 8-bit cards were still usable in the AT 16-bit slots. Industry Standard Architecture (ISA) became the designation for the IBM AT bus after other types were developed. Users of the ISA bus had to have in-depth knowledge of the hardware they were adding to properly connect the devices, since memory addresses, I/O port addresses, and DMA channels had to be configured by switches or jumpers on the card to match the settings in driver software. IBM's
MCA bus, developed for the PS/2 in 1987, was a competitor to ISA, also their design, but fell out of favor due to the ISA's industry-wide acceptance and IBM's licensing of MCA. EISA, the 32-bit extended version of ISA championed by
Compaq, was used on some PC motherboards until 1997, when Microsoft declared it a "legacy" subsystem in the
PC 97 industry white-paper. Proprietary local buses (q.v. Compaq) and then the
VESA Local Bus Standard, were late 1980s expansion buses that were tied but not exclusive to the 80386 and 80486
CPU bus. The
PC/104 bus is an
embedded bus that copies the ISA bus. Intel launched their
PCI bus chipsets along with the
P5-based
Pentium CPUs in 1993. The
PCI bus was introduced in 1991 as a replacement for ISA. The standard (now at version 3.0) is found on PC motherboards to this day. The PCI standard supports bus bridging: as many as ten daisy-chained PCI buses have been tested.
CardBus, using the
PCMCIA connector, is a PCI format that attaches peripherals to the Host PCI Bus via PCI to PCI Bridge. Cardbus is being supplanted by
ExpressCard format.
Intel introduced the
AGP bus in 1997 as a dedicated video acceleration solution. AGP devices are logically attached to the PCI bus over a PCI-to-PCI bridge. Though termed a bus, AGP usually supports only a single card at a time (
Legacy BIOS support issues). From 2005
PCI Express has been replacing both PCI and AGP. This standard, approved in 2004, implements the logical PCI protocol over a serial communication interface. PC/104(-Plus) or
Mini PCI are often added for expansion on small form factor boards such as
Mini-ITX. For their
1000 EX and
1000 HX models, Tandy Computer designed the PLUS expansion interface, an adaptation of the XT-bus supporting cards of a smaller form factor. Because it is electrically compatible with the XT bus (a.k.a. 8-bit ISA or XT-ISA), a passive adapter can be made to connect XT cards to a PLUS expansion connector. Another feature of PLUS cards is that they are stackable. Another bus that offered stackable expansion modules was the "sidecar" bus used by the IBM
PCjr. This may have been electrically comparable to the XT bus; it most certainly had some similarities since both essentially exposed the 8088 CPU's address and data buses, with some buffering and latching, the addition of
interrupts and
DMA provided by Intel add-on chips, and a few system
fault detection lines (Power Good, Memory Check, I/O Channel Check). Again, PCjr sidecars are not technically expansion cards, but expansion modules, with the only difference being that the sidecar is an expansion card enclosed in a plastic box (with holes exposing the connectors).
External expansion buses Laptops are generally unable to accept most expansion cards intended for desktop computers. Consequently, several compact expansion standards were developed. The original
PC Card expansion card standard is essentially a compact version of the ISA bus. The
CardBus expansion card standard is an evolution of the PC card standard to make it into a compact version of the PCI bus. The original
ExpressCard standard acts like it is either a USB 2.0 peripheral or a PCI Express 1.x x1 device. ExpressCard 2.0 adds SuperSpeed USB as another type of interface the card can use. Unfortunately, CardBus and ExpressCard are vulnerable to
DMA attack unless the laptop has an IOMMU that is configured to thwart these attacks. One notable exception to the above is the inclusion of a single internal slot for a special reduced size version of the desktop standard. The most well known examples are
Mini-PCI or
Mini PCIe. Such slots were usually intended for a specific purpose such as offering "built-in" wireless networking or upgrading the system at production with a discrete GPU.
Other families Most other computer lines, including those from
Apple Inc.,
Tandy,
Commodore,
Amiga, and
Atari, Inc., offered their own expansion buses. The
Amiga used
Zorro II. Apple used a proprietary system with seven 50-pin-slots for
Apple II peripheral cards, then later used both variations on
Processor Direct Slot and
NuBus for its Macintosh series until 1995, when they switched to a PCI Bus. Generally speaking, most PCI expansion cards will function on any
CPU platform which incorporates PCI bus hardware provided there is a software driver for that type. PCI video cards and any other cards that contain their own
BIOS or other ROM are problematic, although video cards conforming to VESA Standards may be used for secondary monitors. DEC Alpha, IBM PowerPC, and NEC MIPS workstations used PCI bus connectors. Both Zorro II and NuBus were
plug and play, requiring no hardware configuration by the user. Other computer buses were used for industrial control, instruments, and scientific systems. One specific example is HP-IB (or Hewlett Packard Interface Bus) which was ultimately standardized as
IEEE-488 (aka GPIB). Some well-known historical standards include
VMEbus,
STD Bus,
SBus (specific to Sun's SPARCStations), and numerous others.
Video game consoles Many other
video game consoles such as the
Nintendo Entertainment System and the
Sega Genesis included expansion buses in some form; In the case of at least the Genesis, the expansion bus was proprietary. In fact, the cartridge slots of many cartridge-based consoles (not counting the
Atari 2600) would qualify as expansion buses, as they exposed both read and write capabilities of the system's internal bus. However, the expansion modules attached to these interfaces, though functionally the same as expansion cards, are not technically expansion cards, due to their physical form. ==Applications==