In computer architecture, a bus is a subsystem that transfers data between computer components inside a computer or between computers. In Computer engineering, computer architecture is the conceptual design and fundamental operational structure of a Computer system A computer is a Machine that manipulates data according to a list of instructions. Unlike a point-to-point connection, a bus can logically connect several peripherals over the same set of wires. In telecommunications a link is the communications channel that connects two or more communicating devices A logic gate performs a logical operation on one or more logic inputs and produces a single logic output For an account of the words periphery and peripheral as they are used in biology sociology politics computer hardware and other fields see the Each bus defines its set of connectors to physically plug devices, cards or cables together.
Early computer buses were literally parallel electrical buses with multiple connections, but the term is now used for any physical arrangement that provides the same logical functionality as a parallel electrical bus. An electrical bus (sometimes spelled incorrectly as buss) is a physical electrical interface where many devices share the same electric connection Modern computer buses can use both parallel and bit-serial connections, and can be wired in either a multidrop (electrical parallel) or daisy chain topology, or connected by switched hubs, as in the case of USB. A multidrop bus (MDB is a Computer bus in which all components are connected to the same set of electrical wires
Contents |
Early computer buses were bundles of wire that attached memory and peripherals. A computer is a Machine that manipulates data according to a list of instructions. Computer data storage, often called storage or memory, refers to Computer components devices and recording media that retain digital They were named after electrical buses, or busbars. An electrical bus (sometimes spelled incorrectly as buss) is a physical electrical interface where many devices share the same electric connection Almost always, there was one bus for memory, and another for peripherals, and these were accessed by separate instructions, with completely different timings and protocols.
One of the first complications was the use of interrupts. In Computing, an interrupt is an asynchronous signal from hardware indicating the need for attention or a synchronous event in software indicating the need for a change Early computers performed I/O by waiting in a loop for the peripheral to become ready. In Computing, input/output, or I/O, refers to the communication between an Information processing system (such as a Computer) and the outside This was a waste of time for programs that had other tasks to do. Also, if the program attempted to perform those other tasks, it might take too long for the program to check again, resulting in loss of data. Engineers thus arranged for the peripherals to interrupt the CPU. The interrupts had to be prioritized, because the CPU can only execute code for one peripheral at a time, and some devices are more time-critical than others.
Some time after this, some computers began to share memory among several CPUs. On these computers, access to the bus had to be prioritized, as well.
The classic, simple way to prioritize interrupts or bus access was with a daisy chain.
DEC noted that having two buses seemed wasteful and expensive for mass-produced minicomputers, and mapped peripherals into the memory bus, so that the devices appeared to be memory locations. Digital Equipment Corporation was a pioneering American company in the Computer industry A minicomputer (colloquially mini) is a class of multi-user Computers that lies in the middle range of the computing spectrum in between the largest Multi-user
Early microcomputer bus systems were essentially a passive backplane connected directly or through buffer amplifiers to the pins of the CPU. microcomputer is a Computer with a Microprocessor as its Central processing unit. A backplane (or "backplane system" is a circuit board (usually a Printed circuit board) that connects several connectors in parallel to each other so Memory and other devices would be added to the bus using the same address and data pins as the CPU itself used, connected in parallel. Communication was controlled by the CPU, which had read and written data from the devices as if they are blocks of memory, using the same instructions, all timed by a central clock controlling the speed of the CPU. Still, devices interrupted the CPU by signaling on separate CPU pins. In Computing, an interrupt is an asynchronous signal from hardware indicating the need for attention or a synchronous event in software indicating the need for a change For instance, a disk drive controller would signal the CPU that new data was ready to be read, at which point the CPU would move the data by reading the "memory location" that corresponded to the disk drive. Disk storage is a general category of a Computer storage mechanisms in which data is recorded on planar round and rotating surfaces ( disks, discs, or Almost all early microcomputers were built in this fashion, starting with the S-100 bus in the Altair. The S-100 bus, IEEE696 -1983 (withdrawn, was an early Computer bus designed in 1974 as a part of the Altair 8800, generally considered today The MITS Altair 8800 was a Microcomputer design from 1975 based on the Intel 8080 CPU and sold as a mail-order kit through advertisements in
In some instances, most notably in the IBM PC, although similar physical architecture is employed, instructions to access peripherals (in and out) and memory (mov and others) have not been made uniform at all, and still generate distinct CPU signals, that could be used to implement a separate I/O bus.
These simple bus systems had a serious drawback when used for general-purpose computers. All the equipment on the bus has to talk at the same speed, as it shares a single clock.
Increasing the speed of the CPU becomes harder, because the speed of all the devices must increase as well. This often led to odd situation where very fast CPUs had to "slow down" in order to talk to other devices in the computer. While acceptable in embedded systems, this problem was not tolerated for long in general-purpose, user-expandable computers. An embedded system is a special-purpose Computer system designed to perform one or a few dedicated functions often with Real-time computing constraints
Such bus systems are also difficult to configure when constructed from common off-the-shelf equipment. Typically each added expansion card requires many jumpers in order to set memory addresses, I/O addresses, interrupt priorities, and interrupt numbers. An expansion card (also expansion board, adapter card or accessory card) in Computing is a Printed circuit board that can be inserted In Electronics and particularly Computing, a jumper is a short length of conductor used to close a break in or bypass part of an Electrical circuit.
"Second generation" bus systems like NuBus addressed some of these problems. NuBus is a 32-bit parallel Computer bus, originally developed at MIT as a part of the NuMachine Workstation They typically separated the computer into two "worlds", the CPU and memory on one side, and the various devices on the other, with a bus controller in between. This allowed the CPU to increase in speed without affecting the bus. This also moved much of the burden for moving the data out of the CPU and into the cards and controller, so devices on the bus could talk to each other with no CPU intervention. This led to much better "real world" performance, but also required the cards to be much more complex. These buses also often addressed speed issues by being "bigger" in terms of the size of the data path, moving from 8-bit parallel buses in the first generation, to 16 or 32-bit in the second, as well as adding software setup (now standardised as Plug-n-play) to supplant or replace the jumpers. A parallel port is a type of interface found on Computers ( personal and otherwise for connecting various peripherals Plug-and-play is a computer feature that allows the addition of a new device normally a Peripheral, without requiring reconfiguration or manual installation of Device
However these newer systems shared one quality with their earlier cousins, in that everyone on the bus had to talk at the same speed. While the CPU was now isolated and could increase speed without fear, CPUs and memory continued to increase in speed much faster than the buses they talked to. The result was that the bus speeds were now very much slower than what a modern system needed, and the machines were left starved for data. A particularly common example of this problem was that video cards quickly outran even the newer bus systems like PCI, and computers began to include AGP just to drive the video card. A video card, also known as a graphics accelerator card, display adapter, or graphics card, is a hardware component whose function is to The Peripheral Component Interconnect, or PCI Standard (commonly PCI) specifies a Computer bus for attaching peripheral devices to a Computer By 2004 AGP was outgrown again by high-end video cards and is being replaced with the new PCI Express bus. Not to be confused with PCI-X, a different bus architecture Peripheral Component Interconnect Express, officially abbreviated as PCI-E
An increasing number of external devices started employing their own bus systems as well. When disk drives were first introduced, they would be added to the machine with a card plugged into the bus, which is why computers have so many slots on the bus. But through the 1980s and 1990s, new systems like SCSI and IDE were introduced to serve this need, leaving most slots in modern systems empty. AT Attachment with Packet Interface ( ATA/ATAPI) is a standard interface used to connect storage devices such as Hard disks Solid-state Today there are likely to be about five different buses in the typical machine, supporting various devices.
"Third generation" buses are now in the process of coming to market, including HyperTransport and InfiniBand. InfiniBand is a Switched fabric communications link primarily used in High-performance computing. They also tend to be very flexible in terms of their physical connections, allowing them to be used both as internal buses, as well as connecting different machines together. This can lead to complex problems when trying to service different requests, so much of the work on these systems concerns software design, as opposed to the hardware itself. In general, these third generation buses tend to look more like a network than the original concept of a bus, with a higher protocol overhead needed than early systems, while also allowing multiple devices to use the bus at once. A computer network is a group of interconnected Computers. Networks may be classified according to a wide variety of characteristics
Buses such as Wishbone have been developed by the open source hardware movement in an attempt to further remove legal/patenting constraints from computer design. The Wishbone Bus is an Open source hardware Computer bus intended to let the parts of an Integrated circuit communicate with each other Open source hardware refers to computer and electronic hardware that is designed in the same fashion as free and open-source Software.
At one time, "bus" meant an electrically parallel system, with electrical conductors similar or identical to the pins on the CPU. This is no longer the case, and modern systems are blurring the lines between buses and networks.
Buses can be parallel buses, which carry data words in parallel on multiple wires, or serial buses, which carry data in bit-serial form. In Telecommunication and Computer science, parallel communication is a method of sending several data signals simultaneously over a communication link (comprising In Telecommunication and Computer science, serial communication is the process of sending data one Bit at one time sequentially over a Communication The addition of extra power and control connections, differential drivers, and data connections in each direction usually means that most serial buses have more conductors than the minimum of one used in the 1-Wire serial bus. As data rates increase, the problems of timing skew, power consumption, electromagnetic interference and crosstalk across parallel buses become more and more difficult to circumvent. In circuit design In circuit design clock skew (sometimes timing skew) is a phenomenon in Synchronous circuits in which the clock signal (sent from the In Electronics, the term crosstalk ( XT) refers to any phenomenon by which a signal transmitted on one circuit or channel of a Transmission system One partial solution to this problem has been to double pump the bus. In Computing, a Computer bus operating with double data rate transfers data on both the rising and falling edges of the Clock signal. Often, a serial bus can actually be operated at higher overall data rates than a parallel bus, despite having fewer electrical connections, because a serial bus inherently has no timing skew or crosstalk. USB, FireWire, and Serial ATA are examples of this. The IEEE 1394 interface is a serial bus Interface standard for high-speed communications and Isochronous real-time data transfer frequently Multidrop connections do not work well for fast serial buses, so most modern serial buses use daisy-chain or hub designs. A multidrop bus (MDB is a Computer bus in which all components are connected to the same set of electrical wires
Most computers have both internal and external buses. An internal bus connects all the internal components of a computer to the motherboard (and thus, the CPU and internal memory). Computer data storage, often called storage or memory, refers to Computer components devices and recording media that retain digital These types of buses are also referred to as a local bus, because they are intended to connect to local devices, not to those in other machines or external to the computer. In Computer science, a local bus is a Computer bus that connects directly or almost directly from the CPU to one or more slots on the Expansion bus An external bus connects external peripherals to the motherboard.
Network connections such as Ethernet are not generally regarded as buses, although the difference is largely conceptual rather than practical. A computer network is a group of interconnected Computers. Networks may be classified according to a wide variety of characteristics Ethernet is a family of frame -based Computer networking technologies for Local area networks (LANs The arrival of technologies such as InfiniBand and HyperTransport is further blurring the boundaries between networks and buses. InfiniBand is a Switched fabric communications link primarily used in High-performance computing. Even the lines between internal and external are sometimes fuzzy, I²C can be used as both an internal bus, or an external bus (where it is known as ACCESS.bus), and InfiniBand is intended to replace both internal buses like PCI as well as external ones like Fibre Channel. I²C ( Inter-Integrated Circuit) is a multi-master serial Computer bus invented by Philips that is used to attach low-speed peripherals ACCESSbus (or Ab) is a peripheral-interconnect Computer bus developed by Philips in the early 1990s The Peripheral Component Interconnect, or PCI Standard (commonly PCI) specifies a Computer bus for attaching peripheral devices to a Computer Fibre Channel, or FC, is a Gigabit -speed network technology primarily used for Storage networking.
In a network, the master scheduler controls the data traffic. If data is to be transferred the requesting computer sends a message to the scheduler, which puts the request into a queue. The message contains an identification code which is broadcast to all nodes of the network. The scheduler works out priorities and notifies the receiver as soon as the bus is available.
The identified node takes the message and performs the data transfer between the two computers. Having completed the data transfer the bus becomes free for the next request in the scheduler's queue.
Bus benefit: any computer can be accessed directly and messages can be sent in a relatively simple and fast way. Disadvantage: needs a scheduler to assign frequencies and priorities to organize the traffic.
See also: Bus network. A bus network topology is a network architecture in which a set of clients are connected via a shared communications line called a bus.