# Computer bus - What is it?

October 2017

## Definition

A bus, in computing, is a set of physical connections (cables, printed circuits, etc.) which can be shared by multiple hardware components in order to communicate with one another.

The purpose of buses is to reduce the number of "pathways" needed for communication between the components, by carrying out all communications over a single data channel. This is why the metaphor of a "data highway" is sometimes used.

If only two hardware components communicate over the line, it is called a hardware port (such as a [contents/415-serial-port-and-parallel-port serial port] or parallel port).

## Characteristics

A bus is characterised by the amount of information that can be transmitted at once. This amount, expressed in bits, corresponds to the number of physical lines over which data is sent simultaneously. A 32-wire ribbon cable can transmit 32 bits in parallel. The term "width" is used to refer to the number of bits that a bus can transmit at once.

Additionally, the bus speed is also defined by its frequency (expressed in Hertz), the number of data packets sent or received per second. Each time that data is sent or received is called a cycle.

This way, it is possible to find the maximum transfer speed of the bus, the amount of data which it can transport per unit of time, by multiplying its width by its frequency. A bus with a width of 16 bits and a frequency of 133 MHz, therefore, has a transfer speed equal to:

`16 * 133.106 = 2128*106 bit/s, or 2128*106/8 = 266*106 bytes/s or 266*106 /1000 = 266*103 KB/s or 259.7*103 /1000 = 266 MB/s`

## Architecture

In reality, each bus is generally constituted of 50 to 100 distinct physical lines, divided into three subassemblies:

• The address bus (sometimes called the memory bus) transports memory addresses which the processor wants to access in order to read or write data. It is a unidirectional bus.
• The data bus transfers instructions coming from or going to the processor. It is a bidirectional bus.
• The control bus (or command bus) transports orders and synchonisation signals coming from the control unit and travelling to all other hardware components. It is a bidirectional bus, as it also transmits response signals from the hardware.

## The primary buses

There are generally two buses within a computer:

• the internal bus (sometimes called the front-side bus, or FSB for short). The internal bus allows the processor to communicate with the system's central memory (the RAM).
• the expansion bus (sometimes called the input/output bus) allows various motherboard components (USB, serial, and [contents/415-serial-port-and-parallel-port parallel ports], cards inserted in PCI connectors, hard drives, CD-ROM and CD-RW drives, etc.) to communicate with one another. However, it is mainly used to add new devices using what are called expansion slots connected to the input/outpur bus.

## Chipset

A chipset is the component which routes data between the computer's buses, so that all the components which make up the computer can communicate with each other. The chipset originally was made up of a large number of electronic chips, hence the name. It generally has two components:

• The NorthBridge (also called the memory controller) is in charge of controlling transfers between the processor and the RAM, which is way it is located physically near the processor. It is sometimes called the GMCH, forr Graphic and Memory Controller Hub.
• The SouthBridge (also called the input/output controller or expansion controller) handles communications between peripheral devices. It is also called the ICH (I/O Controller Hub). The tem bridge is generally used to designate a component which connects two buses.

It is interesting to note that, in order to communicate, two buses must have the same width. The explains why RAM modules sometimes have to be installed in pairs (for example, early Pentium chips, whose processor buses were 64-bit, required two memory modules each 32 bits wide).

Here is a table which gives the specifications for the most commonly used buses:

StandardBus width (bits)Bus speed (MHz)Bandwidth (MB/sec)
ISA 8-bit88.37.9
ISA 16-bit168.315.9
EISA328.331.8
VLB3233127.2
PCI 32-bit3233127.2
PCI 64-bit 2.16466508.6
AGP3266254.3
AGP (x2 Mode)3266x2528
AGP (x4 Mode)3266x41056
AGP (x8 Mode)3266x82112
ATA33163333
ATA1001650100
ATA1331666133
Serial ATA (S-ATA)1180
Serial ATA II (S-ATA2)2380
USB11.5
USB 2.0160
FireWire1100
FireWire 21200
SCSI-184.775
SCSI-2 - Fast81010
SCSI-2 - Wide161020
SCSI-2 - Fast Wide 32 bits321040
SCSI-3 - Ultra82020
SCSI-3 - Ultra Wide162040
SCSI-3 - Ultra 284040
SCSI-3 - Ultra 2 Wide164080
SCSI-3 - Ultra 160 (Ultra 3)1680160
SCSI-3 - Ultra 320 (Ultra 4)1680 DDR320
SCSI-3 - Ultra 640 (Ultra 5)1680 QDR640

## Related

Qué es un bus informático
Was ist ein Informatik-Bus?
Qu'est-ce qu'un bus informatique ?
Che cos'è un computer BUS