Expansion buses (sometimes called peripheral buses) are buses that have connectors that allow you to add expansion cards (peripherals) to a computer. There are different types of standard internal buses that are characterised by:
- their shape
- the number of connector pins
- the type of signals (frequency, data, etc.)
The original version of the ISA bus (Industry Standard Architecture) that appeared in 1981 with PC XT was an 8-bit bus with a clock speed of 4.77 MHz.
In 1984, with the appearance of PC AT (the Intel 286 processor), the bit was expanded into a 16-bit bus and the clock speed went from 6 to 8 MHz and finally to 8.33 MHz, offering a maximum transfer rate of 16 Mb/s (in practice only 8 Mb/s because one cycle out of every two was used for addressing).
The ISA bus permitted bus mastering, i.e. it enabled controllers connected directly to the bus to communicate directly with the other peripherals without going through the processor. One of the consequences of bus mastering is direct memory access (DMA). However, the ISA bus only allows hardware to address the first 16 megabytes of RAM.
Up until the end of the 1990s, almost all PC computers were equipped with the ISA bus, but it was progressively replaced by the PCI bus, which offered a better performance.
- 8-bit ISA Connector:
- 16-bit ISA Connector:
The MCA bus (Micro Channel Architecture) is an improved proprietary bus designed by IBM in 1987 to be used in their PS/2 line of computer. This 16 to 32-bit bus was incompatible with the ISA bus and could reach a throughput of 20 Mb/s.
The EISA bus (Extended Industry Standard Architecture) was developed in 1988 by a consortium of companies (AST, Compaq, Epson, Hewlett-Packard, NEC, Olivetti, Tandy, Wyse and Zenith) in order to compete with the MCA proprietary bus that was launched by IBM the previous year. The EISA bus used connectors that were the same size as the ISA connector but with 4 rows of contacts instead of 2, for 32-bit addressing.
The EISA connectors were deeper and the additional rows of contacts were placed below the rows of ISA contacts. Thus, it was possible to plug an ISA expansion board into an EISA connector. However, they did not plug as deep into the connector (because of the bezels) and thus only used the top rows (ISA) of contacts.
Traditional I/O buses, such as ISA, MCA our EISA buses, are directly connected to the main bus and there are forced to work at the same frequency. However, some I/O peripherals need a very low bandwidth while other need higher bandwidths. Therefore there are bottlenecks on the bus. In order to solve this problem, the "local bus" architecture offers to take advantage of the system bus, or front side bus (FSB), by interfacing directly with it.
In 1992, the VESA local bus (VLB) was developed by the VESA (Video Electronics Standard Association under the aegis of the company NEC) in order to offer a local bus dedicated to graphics systems. The VLB is a 16-bit ISA connector with an added 16-bit connector:
The VLB bus is a 32-bit bus initially intended to work a bandwidth of 33 MHz (the bandwidth of the first PC 486s at that time). The VESA local bus was used on the following 486 models (40 and 50 MHz, respectively) as well as on the very first Pentium processors, but it was quickly replaced by the PCI bus.