Nepedia
Back to Discover
Advanced Reader
💻

Bus (computing)

technology Maturity 7-9 Next article →

In computer architecture, a bus is a communication system designed to transfer data between components.

Computer system bus
Computer system bus

It acts as a shared physical pathway for information. This pathway consists of hardware like wires or optical fibers. It also includes software known as communication protocols. These protocols are sets of rules that manage data exchange. They ensure that multiple devices do not conflict when transmitting. By following these rules, the system maintains an orderly flow of information.

Buses are categorized by their specific roles within a system. A system bus, also called an internal or memory bus, connects the CPU to the memory. Expansion buses, or peripheral buses, allow the system to connect additional devices. For example, PCI Express (PCIe) provides high-speed internal connections. Meanwhile, the Universal Serial Bus (USB) connects external devices. Some buses also provide power to the connected hardware. This power-delivery feature distinguishes a bus from a network like Ethernet.

PCIExpress
PCIExpress

One critical component is the address bus. This bus specifies a physical address when a processor needs to read or write memory. The data itself is sent on a separate data bus. The width of the address bus determines the total addressable memory space. For instance, a 32-bit address bus can reach 4,294,967,296 unique memory locations. If each location holds one byte, the space is about 4 gigabytes. This width is a vital measurement of a system's capacity.

To reduce costs, engineers often use address multiplexing. Early processors used one dedicated wire for every single bit of address width. A 16-bit bus required 16 physical wires. As buses grew wider, this became too expensive in terms of chip pins. Multiplexing solves this by sending the address in two equal parts. In a 32-bit system, 16 lines send the first half of the address. This is immediately followed by the second half in a different cycle. Control signals called row-address strobe (RAS) and column-address strobe (CAS) manage this timing.

Buses can also be classified by how they transmit data. Parallel buses carry data words simultaneously across multiple wires. However, high speeds cause problems like timing skew and electromagnetic interference. Timing skew occurs when bits do not arrive at the same time. Serial buses send data one bit at a time in a stream. Serial buses often achieve higher data rates than parallel ones. They avoid crosstalk and timing skew because they use fewer electrical connections. Examples include USB, FireWire, and Serial ATA.

Modern computing has seen a major shift toward serial communication. This transition was supported by Moore's law. This law allowed for serializer/deserializer circuits to be built into integrated circuits. These circuits convert parallel data into serial streams and back again. The speed of a bus is measured in Hertz (Hz). It determines how many clock cycles occur per second. A Single Data Rate (SDR) bus performs one transfer per cycle. A Double Data Rate (DDR) bus performs two transfers per cycle.

Data transfer speed is also known as bandwidth. You can calculate the data rate by multiplying bits per cycle, frequency, and transfers per cycle. Some buses like PCIe use advanced encoding called PAM4. This method groups two bits into symbols to increase speed without raising frequency. Other systems use encoding like 128/130b for error correction. This can make the effective transfer rate slightly lower than the raw speed. These complex methods ensure that data remains accurate during high-speed travel.

Historically, the development of buses has been a collaborative effort. Groups like the IEEE Bus Architecture Standards Committee helped create standards. Early computer buses were simple bundles of wire called digit trunks. These were often separate for memory and peripherals. To improve efficiency, engineers developed interrupts. An interrupt allows a peripheral to signal the CPU for attention. In 1958, IBM introduced channel controllers on the IBM 709. These acted as small, dedicated computers to handle bus operations. This reduced the load on the main CPU and improved performance.

664 words

Where will your curiosity go next?

Keep exploring at your chosen reading level.

🖼️ Images & Media (2)
File:PCIExpress.jpg
PCIExpress.jpg
File:Computer system bus.svg
Computer system bus.svg
More to explore

What is Nepedia?

A free, ad-free encyclopedia for children. Every article is written at five reading levels, so the same page works for a five-year-old and a fifteen-year-old — use the level switcher above to see this one change. No account needed to read.