## What is a bus?

A bus is a type of system of communication that transfers data between the components inside a computer or between two or more computers. With multiple hardware connections, the earlier buses were parallel electrical wires but the term "bus" is now used for any type of physical arrangement which provides the same type of logical functions similar to the parallel electrical bus. Both parallel and bit connections are used by modern buses. They can be wired either electrical parallel or daisy chain topology or are connected by hubs which are switched same as in the case of Universal Serial Bus or USB.

## Types of buses

### Internal buses

The internal buses are also known as memory buses. The internal data bus, the front-side of the system bus helps in connecting all the internal components of a computer for instance, such as CPU (Central processing unit) and memory to the motherboard. These types of buses are referred to as local buses as they can also get connected to local devices. This type of bus is independent of the rest of the computer operations and is typically rather quick.

### External buses

The external buses or the expansion buses are made up of electronic pathways that connect with the external devices such as printers, etc., with the computer.

A physical address is specified using an address bus. When a DMA (Direct access media) enabled device or a processor device needs to read or write to a memory location so this bus specifies that memory location on the address bus. The amount of memory a system can address is only determined by the width of the address bus. For instance, a system with a 32-bit address bus can address ${2}^{32}$ memory locations. The addressable memory space is 4 GIB (gibibyte) if each memory location holds one byte.

## Memory bus

In computer systems, the bus which connects the main memory to the memory controller is called the memory bus. Buses like VMEbus (Versa Modular Eurocard bus) and S-100 bus are general-purpose buses that were used to reduce latency. The modern memory buses are designed to connect directly to DRAM (Dynamic random access random memory) chips and are designed by JEDEC (Joint electron device engineering council) which are chip standard buses.

## History

Including the IEEE (The institute of electrical and electronics engineers) bus architecture standards committee, several groups of people worked on various computer bus standards.

### First generation

Computer memory and peripherals were attached with bundles of wire which were early computer buses. Always almost there was only one bus for the memory and one or more separate types of buses for peripherals. With completely different timing and protocols, these were accessed by separate instructions. The use of interrupts was one of the first complications. By waiting in a loop for the peripheral to become ready, the early computers performed I/O. It was only a waste of time for the programs that had some other tasks to perform. It might take too long for the program to check again if the program attempted to perform those other tasks which would result in the loss of data. To interrupt the CPU the peripherals were arranged by the engineers. As the CPU can only execute code for one peripheral at a time, the interrupts had to be prioritized. To handle the input and output of a given bus, the high-end systems introduced the idea of channel controllers that were the small type of computers. The memory bus and the I/O bus can be combined into a unified system bus to provide modularity. Many of the system components were connected using a single mechanical and electrical system in this case or other, all of them are connected. The memory common to several CPUs was shared by the later computer programs. Access to the memory buses has to be prioritized as well. With the help of a daisy chain, the interrupts or bus access were prioritized. In physical or logical order the signals would naturally flow here by eliminating the need for complex scheduling.

### Second generation

Bus systems which are the second-generation type such as NuBus addressed some of these problems. Into two "worlds" the computer was typically separated that is the CPU and memory on one side and the other various devices on the other side. To be moved from the peripheral side a bus controller accepted data from the CPU side thus shifting the communication burden of protocol from the CPU itself. From the device bus or just "bus", this allowed the CPU and memory side to evolve separately. With no CPU intervention, the devices on the bus could talk to each other. It helps to lead to better real-world performance but also much more complex cards were required. Everyone on the bus had to talk at the same speed, which is the one quality that the newer systems shared with their earlier cousins. The CPUs and memory were continued to increase in speed much faster than the buses they talked to while the CPU was now isolated and could increase the speed. Then what a modern bus needed the result was that the bus speeds were now very much slower.

### Third generation

Including hyper transport and Infiniband, third-generation buses have been emerging into the market since 2001. They tend to be very flexible in terms of their physical connections, useful for internal buses as well as in connecting different types of machines. When trying to service different requests this can lead to complex problems. Then the original concept of buses, this third-generation buses seems to look like a network with a higher protocol overhead needed than early systems.

### Fourth generation

An open standard interconnect is the "compute express link" (CXL). It is for high-speed CPU-to-device and CPU-to-memory which are designed to accelerate the next-generation data center performance.

## Context and Applications

• Bachelors in Technology in Electrical Engineering
• Bachelors in Technology in Computer Science Engineering
• Masters in Technology in Electrical Engineering
• Masters in Technology in Computer Science Engineering

## Practice Problems

Question 1: What type of components are connected by the internal buses?

1. Internal components only
2. External components only
3. Both a or b
4. None of the above

Explanation: The internal buses are also known as a memory bus, internal data bus, front-side of system bus that helps in connecting all the internal components of a computer, for instance, CPU and memory to the motherboard.

Question 2: What is the other name of the internal bus?

2. Memory bus
3. Local bus
4. None of the above

Explanation: Internal buses are referred to as local buses as they can also get connected to local devices.

Question 3: What are external buses called?

2. Local bus
3. Expansion bus
4. None of the above

Explanation: The external buses or the expansion buses are made up of electronic pathways that connect with the external devices such as printers, etc., with the computer.

Question 4: Which of the following addresses is specified using an address bus?

4. None of the above

Question 5: Which bus is used to connect the main memory to the memory controller?

2. Memory bus
3. Data bus
4. None of the above

Explanation: In computer systems, the bus which connects the main memory to the memory controller is called the memory bus.

• Control bus
• External bus interface
• List of network buses

### Want more help with your electrical engineering homework?

We've got you covered with step-by-step solutions to millions of textbook problems, subject matter experts on standby 24/7 when you're stumped, and more.
Check out a sample electrical engineering Q&A solution here!

*Response times may vary by subject and question complexity. Median response time is 34 minutes for paid subscribers and may be longer for promotional offers.

### Search. Solve. Succeed!

Study smarter access to millions of step-by step textbook solutions, our Q&A library, and AI powered Math Solver. Plus, you get 30 questions to ask an expert each month.

Tagged in
EngineeringElectrical Engineering