Understanding Computer Bus Architecture and Performance
Introduction to the Concept of the Computer Bus
Computers require a large amount of information to be managed and processed. To facilitate the flow of this data between various components, specific paths are needed. These “paths” are called buses. They are internal circuitry of the motherboard that allows the sending of data between components. The bus largely defines the speed of the computer itself, because the faster the data is sent, the more operations can be performed per second.
A bus, in computing, is defined as the set of physical connections (cables, printed circuit boards, etc.) that can be shared by multiple hardware components to communicate with each other. This concept is sometimes referred to using the metaphor of an “information superhighway.”
In cases where only two hardware components communicate across the line, we typically refer to a hardware port (such as a serial port or parallel port).
Key Characteristics of a Computer Bus
A bus is primarily characterized by two factors: its width and its frequency.
Bus Width
Bus width refers to the amount of information transmitted simultaneously. This volume is expressed in bits and corresponds to the number of physical lines through which information is sent in parallel. For example, a 32-wire ribbon cable allows the transmission of 32 bits simultaneously. The term width is used to designate the number of bits that a bus can transmit at once.
Bus Frequency and Transfer Speed
Bus speed is defined by its frequency (expressed in Hertz or Hz), which is the number of data packets that can be sent or received per second. Each time data is sent or received, it is referred to as a cycle.
The maximum transfer speed of the bus (the amount of data transported per unit time) is calculated by multiplying its width by its frequency. For example, a bus with a width of 16 bits and a frequency of 133 MHz has the following transfer rate calculation:
16 * 133 * 10 6 = 2128 * 10 6 bit / s 2128 * 10 6 / 8 = 266 * 10 6 bytes / s 266 * 10 6 / 1024 = 259,765.625 KB / s 259,765.625 / 1024 = 253.677 MB / s
Frequency Multipliers and Dividers
Since the CPU is usually faster than the Front Side Bus (FSB), motherboards implement a frequency multiplier that indicates how fast (a multiple of the motherboard speed) the processor runs. Conversely, since Input/Output (I/O) buses are slower than the motherboard, a frequency divider (or crossover mechanism) is needed to indicate the operating speed of the I/O buses relative to the motherboard speed.
Classification of System Buses
A typical bus is composed of between 50 and 100 different physical lines. These lines are subdivided into three essential subsets, depending on the type of data they carry. These three types, taken together, are generically called the system bus:
- The Address Bus (also known as the memory bus): Carries memory addresses that the processor wants to access (read or write data). This is a unidirectional bus, transmitting addresses between the CPU and memory. The address bus runs in sync with the data bus. To determine the amount of memory directly accessible or addressable by the CPU, we must consider the number of lines or bits that make up the address bus. The greater the number of bits, the greater the range of addressable memory. Example: If the address bus is 10 bits, you can access 210 memory locations (1024 cells).
- The Data Bus: Transfers both instructions originating from the processor and those directed toward it. This is a bidirectional bus, facilitating the exchange of data between the CPU and other units.
- The Control Bus (sometimes called the command bus): Transports commands and synchronization signals from the control unit to different hardware components. This is a bidirectional bus as it also transmits hardware responses. The control bus governs the use and access to the data and address lines, ensuring that there are no collisions of information in the system.
