Computer Bus
In computer architecture, a bus is a subsystem that transfers data or power between computer components inside a computer or between computers. Unlike a point-to-point connection, a bus can logically connect several peripherals over the same set of wires. Each bus defines its set of connectors to physically plug devices, cards or cables together.
Early computer buses were literally parallel electrical buses with multiple connections, but the term is now used for any physical arrangement that provides the same logical functionality as a parallel electrical bus. Modern computer buses can use both parallel and bit-serial connections, and can be wired in either a multidrop (electrical parallel) or daisy chain topology, or connected by switched hubs, as in the case of USB.
Description
At one time, "bus" meant an electrically parallel system, with electrical conductors similar or identical to the pins on the CPU. This is no longer the case, and modern systems are blurring the lines between buses and networks.
Buses can be parallel buses, which carry data words striped across multiple wires, or serial buses, which carry data in bit-serial form. The addition of extra power and control connections, differential drivers, and data connections in each direction usually means that most serial buses have more conductors than the minimum of two used in the I²C serial bus. As data rates increase, the problems of timing skew and crosstalk across parallel buses become more and more difficult to circumvent. One partial solution to this problem has been to double pump the bus. Often, a serial bus can actually be operated at higher overall data rates than a parallel bus, despite having fewer electrical connections, because a serial bus inherently has no timing skew or crosstalk. USB, FireWire, and Serial ATA are examples of this. Multidrop connections do not work well for fast serial buses, so most modern serial buses use daisy-chain or hub designs.
Most computers have both internal and external buses. An internal bus connects all the internal components of a computer to the motherboard (and thus, the CPU and internal memory). These types of buses are also referred to as a local bus, because they are intended to connect to local devices, not to those in other machines or external to the computer. An external bus connects external peripherals to the motherboard.
Network connections such as Ethernet are not generally regarded as buses, although the difference is largely conceptual rather than practical. The arrival of technologies such as InfiniBand and HyperTransport is further blurring the boundaries between networks and buses. Even the lines between internal and external are sometimes fuzzy, I²C can be used as both an internal bus, or an external bus (where it is known as ACCESS.bus), and InfiniBand is intended to replace both internal buses like PCI as well as external ones like Fibre Channel.
Modern trends in personal computers, especially laptops, have been moving towards eliminating all external connections except for modem jack, Cat5, USB, headphone jack, and optional VGA or FireWire.
Bus topology
In a network, the master scheduler controls the data traffic. If data is to be transferred the requesting computer sends a message to the scheduler, which puts the request into a queue. The message contains an identification code which is broadcast to all nodes of the network. The scheduler works out priorities and notifies the receiver as soon as the bus is available.
The identified node takes the message and performs the data transfer between the two computers. Having completed the data transfer the bus becomes free for the next request in the scheduler's queue.
Bus benefit: any computer can be accessed directly and message can be sent in a relatively simple and fast way. Disadvantage: needs a scheduler to assign frequencies and priorities to organize the traffic.
Examples of internal computer buses
Parallel
-
CAMAC for instrumentation systems
- Extended ISA or EISA
- Industry Standard Architecture or ISA
- Low Pin Count or LPC
- MicroChannel or MCA
- MBus
- Multibus for industrial systems
- NuBus or IEEE 1196
- Peripheral Component Interconnect or PCI
- S-100 bus or IEEE 696, used in the Altair and similar microcomputers
- SBus or IEEE 1496
- VESA Local Bus or VLB or VL-bus
- VMEbus, the VERSAmodule Eurocard bus
- STD Bus for 8- and 16-bit microprocessor systems
Serial
-
1-Wire
- HyperTransport
- I²C
- PCI Express or PCIe
- Serial Peripheral Interface Bus or SPI bus
Examples of external computer buses
Parallel
-
Advanced Technology Attachment or ATA (aka PATA, IDE, EIDE, ATAPI, etc.) disk/tape peripheral attachment bus
(the original ATA is parallel, but see also the recent development Serial ATA, below)
- Centronics parallel (generally connects single device, occasionally 2 daisy-chained)
- HIPPI HIgh Performance Parallel Interface
- IEEE-488 (aka GPIB, General-Purpose Instrumentation Bus, and HPIB, Hewlett-Packard Instrumentation Bus)
- PCMCIA, now known as PC card, much used in laptop computers and other portables, but fading with the introduction of USB and built-in network and modem connections.
- SCSI Small Computer System Interface, disk/tape peripheral attachment bus
Proprietary
Examples of internal/external computer buses
-
Futurebus
- InfiniBand
- QuickRing
- SCI