In computing, a bus is another name for a data highway. This communication system sends data between different senders and receivers within a computer or between computers on a network. The term bus can be used to describe all types of transfer mediums, from hardware data transports to software and communication protocols. As long as they transfer data, they can be called a bus. There are, of course, lots of different types, each with unique identifying characteristics.
Internal and External Buses
One of the main distinctions between different types of buses is whether or not they are internal or external. Internal buses are the ones within a computer. So, for example, all the buses that connect a CPU to RAM or to the GPU. There are thousands of possible connections and hundreds of active buses in a computer at any time.
Generally, this type of bus is fast and not depending on other operations in the computer – similar to how a delay on bus line 94A wouldn’t impede bus 26B from running on its route, buses connect two points and drop data between them. If it needs to travel further, it will utilize multiple buses to get where it needs to go.
External buses, on the other hand, or expansion buses, are made up of pathways that connect a computer to the outside – for example, to a peripheral like a printer. They are functionally the same in that they transmit data but are not an integral part of the computer and are also not permanent. If the printer is unplugged, the bus connecting to it becomes unusable. If that were to happen within a system, for example, with the buses connecting a CPU to an HDD, then, in the worst case, the computer wouldn’t work anymore (or at least, the hard drive wouldn’t).
Address and Memory buses
Another way to classify buses is by what they are for. Address buses are used to specify physical addresses. Rather than addressing ‘memory module X,’ they deliver data specifically to ‘bit XYZ on memory module J.’ The width of the bus determines how much memory it can address directly. Each bit does not have its bus here – but a 32-bit bus can handle 4GB of memory space. A 16GB memory module with 32-bit buses (an unlikely combination) would need four buses to address all of its space – and if one were to fail, a quarter of the memory would no longer be addressable.
A memory bus isn’t a type of bus but a specific one. It connects the computer’s main memory with the memory controller in a computer or computing system. This is an essential function that makes the memory module able to function. There are two parts, the address bus, and the data bus. These terms can also be used with other buses; unfortunately, the terminology isn’t exact.
Tip: The term RAM bus should be avoided. Around the time DDR SDRAM was introduced, a competing standard, Rambus, was pushed by a company of the same name. The bus connecting the RAM to the CPU should be referred to as the system bus or the memory bus. This can be broken down further to address or data bus if needed.
Parallel and Serial buses
Another key way to distinguish different types of buses is by the way they transmit data. Parallel buses transport multiple bits of data at the same time. The concept is similar to how a multi-lane highway allows more cars to drive on it simultaneously.
A serial bus only has one such ‘lane,’ though a lane may consist of a small number of individual electrical pins. Any traffic on that lane is sequential rather than parallel. At a glance, it may seem like that is a worse setup. In reality, however, serial buses are often faster since they can be clocked to higher speeds.
They are also cheaper and easier to implement while taking up less space. A parallel bus would need more pins on a connector, potentially even a bigger connector standard, depending on the complexity. With a high enough clock speed, a serial bus is far more efficient at transporting data back and forth.
In computing, a bus is a communication system. It covers communications systems internal to a single computer and inter-computer communication systems. The term bus refers to the hardware needed to communicate, such as electrical or optical connectivity. It also covers the software and protocols used to communicate over the hardware connections. The term is the modern replacement for the now essentially unused term “data highway.”