Author: Yang Shuo,Hua Qing vision embedded college lecturer.
1. Concept of Bus
In computer systems, different subsystems must have interfaces to connect to each other. For example, the memory and processor need to communicate, and the processor and I/O devices also need to communicate. These tasks are completed by the bus. A bus is a shared communication link that uses a set of lines to connect multiple subsystems. Is a typical computer bus:
The two main advantages of the bus structure are high functions and low cost. By defining a connection scheme, you can easily add new devices. For example, you can easily expand the memory stick for your notebook or expand a hard disk. Peripheral devices can also be moved between computer systems using similar bus. In addition, because the same line is shared by multiple paths, the bus has good cost-effectiveness.
The main drawback of the bus is that it will produce a communication bottleneck, which may limit the maximum throughput of I/O. When I/O data transmission must pass through a single bus, the bandwidth of this bus limits the maximum throughput of I/O. How to design a bus system so that it can meet the requirements of the processor and accept a large number of I/O devices makes us face a major challenge.
2. control line and data line
A bus usually includes a set of control lines and a set of data lines. The control line is used to transmit request and validation signals and to indicate the information type on the data line. The data line of the bus transmits information between the source and destination. This information may include data, complex commands, or addresses. For example, if the disk needs to write data from the disk sector to the memory, the memory address and the actual data on the disk will be transmitted through the data line. The control bus indicates the types of information contained in the data line at every moment during transmission. Some buses use two signal lines to transmit data and addresses separately during one bus transmission. In either case, the control bus follows the bus protocol and specifies the content transmitted by the bus. Because the bus is shared, we also need a protocol to decide who to use.
Iii. processor-memory bus and I/O bus
For traditional PCs, the bus can be divided into processor-memory bus and I/O bus. The processor memory bus is short and the speed is usually high. In addition, the memory system maximizes the memory-processor bandwidth. In contrast to the I/O bus, it can be very long, can connect many types of devices, and often need to connect to a variety of devices with different data bandwidth. Generally, the I/O bus is not directly connected to the memory, but is connected to the memory through the processor-memory bus or backplane bus.
The I/O bus is used to expand machines and connect new peripherals. Mainstream I/O bus standards include 1394 and USB. They can connect various peripherals to desktops, from keyboards, cameras to disks.
For the early I/O bus:
4. Two bus communication methods: synchronous and asynchronous
Two basic methods of bus communication are synchronous and asynchronous. If the bus is synchronous, There is a clock and a fixed communication protocol related to the clock on the control line. For example, to enable the processor-memory bus to execute a read operation from the memory bus. We need a protocol that can transmit the address and read operation commands in the first clock cycle, and use the control line to specify the request type. Memory may be required to respond in the fifth clock cycle to provide data words.
Synchronization bus has two main disadvantages. First, each device on the bus must run at the same clock frequency. Second, due to Clock Deviation problems, fast synchronization bus, the length cannot be too large. The processor-memory bus is usually synchronous, because the communication distance between devices is short, the number is small, and preparation works at a fast clock frequency.
No clock is required for the asynchronous bus. Because no clock is required, the asynchronous bus can adapt to many different devices. The asynchronous bus can be extended without worrying about Clock Deviation or other synchronization problems. Both 1394 and USB are asynchronous buses. To coordinate the data transmission between the sender and receiver, the asynchronous bus uses the handshake protocol. The handshake protocol consists of a series of steps. Only when the sender and receiver reach an agreement can the next step be taken. This Protocol is implemented through an additional control line.