Lecture 12: Buses

Buses


Buses are designed to connect more than two devices together in a system. Devices may include the CPU, main memory, and I/O devices. They consist of three types of signals:

Data

Address

Control

In addition to these signals, there may be utility lines defined as part of the bus to supply power and ground to the devices connected to it.

General purpose buses include the VME, FutureBus, Multibus, SCSI, etc. and are designed to facilitate connecting a wide range of devices to a machine with high bandwidth and low latency, relative to cost. The versatility of these buses limit their performance to some extent, however.

Most buses are backplane devices -- that is, the physical implementation is a circuit board with parallel connectors into which other boards are plugged perpendicularly.

Some buses, such as SCSI, are cable based -- devices in separate chassis are connected together by cables that carry the bus signals.

Another variation is the front-plane bus in which ribbon cable connects circuit boards mounted in a chassis (usually in addition to a backplane bus) -- an example is the MaxBus digital video bus, or the Apple/CSPI QuickRing multiprocessor interconnect.

Buses generally are distinguished into two control mechanisms: synchronous and asynchronous.

Most general purpose bus designs are asynchronous because asynchrony is more flexible in accomodating a wider range of devices. Asynchronous bus designs also adapt more readily to technological advances.

In a synchronous bus design, there is an assumption of a basic clock rate and increasing that rate can cause older devices to fail to operate properly. In an asynchronous design, older devices may simply reduce performance.

However, an asynchronous protocol is usually more complex, requiring both more hardware and more overhead for each transaction. Synchronous buses can operate with lower latency and higher bandwidth for a given number of signals.

Thus, synchronous buses are usually developed for applications in which maximum performance is required and the usage is constrained to devices with a narrow range of timing characteristics.

From this we can deduce that the two types of buses have different applications for which they are best.



Modern systems often employ both types of buses. The CPU connects to a synchronous memory bus containing the cache, main memory, and a bus adapter. In some cases, the CPU and Cache are connected by a dedicated synchronous link, and the cache controller connects to the memory bus.



The advantage of this approach is that the path from the CPU to memory can have the optimum performance, and this is the path that most affects overall performance. The bus adapter provides a connection to an asynchronous bus that is constrained to matching the characteristics of the synchronous bus.

Usually, in such architectures, the synchronous bus is a custom design that is found only on the CPU board itself, and possibly on memory expansion daughter cards, although systems have been designed in the past with such buses on custom backplanes to facilitate memory expansion. In many such applications, the synchronous control scheme is even further simplified by the fact that there are only two potential bus masters.

Arbitration

On a typical I/O bus, however, there may be multiple potential masters and there is a need to arbitrate between simultaneous requests to use the bus. The arbitration can be either central or distributed.

In the central scheme, it is assumed that there is just one device (usually the CPU card) that has the arbitration hardware. The central arbiter can determine priorities and can force termination of a transaction if necessary. Central arbitration is simpler and lower in cost for a uniprocessor system. It does not work as well for a symmetric multiprocessor design unless the arbiter is independent of the CPUs.

In the distributed scheme, every potential master carries some hardware for arbitration and all potential masters compete equally for the bus. The arbitration scheme is often based on some preassigned priorities for the devices, but these can be changed.

Daisychaining is a hybrid of central and distributed arbitration. Devices request the bus by passing a signal to their neighbors who are closer to the central arbiter. If a closer device also requests the bus, then the request from the more distant device is blocked. The central arbiter then just has to grant the bus to the closest device requesting it. The priority scheme is fixed by the device's physical position on the bus, and cannot be changed in software. Daisychaining is also susceptible to faults

Sometimes, multiple request and grant lines are used with daisychaining to enable requests from devices to bypass a closer device, and thereby implement a restricted software-controllable priority scheme.

Transfer modes

Buses may also support multiple transfer modes. For example, a block transfer that begins with the start address and then sends a sequence of data values can occur faster because the arbitration and address portion of the protocol take place just once for the block.

Some bus designs also multiplex the address and data lines. There are two instances where this is useful -- reducing cost, and increasing bandwidth.

A very low cost bus might always transfer an address and then the data over the same lines. Thus the two transfers cannot be overlapped in time, and buffering of the address is required at each end, but the bus itself can have half the number of wires. To reduce cost even further, the width of the bus can be reduced so that the address and data are transmitted in pieces. This can be taken to the limit of a single signal path with the control protocol embedded (a traditional serial data link).

On the other hand, increased bandwidth can be the goal in multiplexing address and data. For example, in a block transfer, following the initial address, the address and data lines might both be employed to transfer twice as much data per cycle.

One problem with multiplexing the address lines with data values, is that they must then pass though an extra set of steering logic gates that direct the signals to the appropriate places at each end of the transmission. This both increases bus latency and the cost of the bus interface.

Another transfer mode that is found on high performance buses is a split transfer, which is usually associated with a read. Because memory latency may be high, the bus can be tied up for several cycles while waiting for the data to return from a read request. In a split cycle, the read is requested and then the bus is released. Other transactions can then use the bus. When the value has been fetched, a memory controller becomes a bus master and transfers the data to the requester.

Often in a split transfer system, the memory controller is designed to buffer multiple requests, so that reads may be pipelined over the bus. The split transfer is especially useful in multiprocessor systems. The overall result is to increase the effective bandwidth of the bus by the factor L/T where L is the memory latency and T is the bus cycle time.

Here are some examples of workstation buses
                           VME           FutureBus     Multibus II   S bus         
Bus width                  128           96            96                          
Address/Data multiplexed   No            Yes           Yes                         
Data width                 16/32/64      32/64/128     32            32            
Transfer                   Single/Block  Single/Block  Single/Block  Single/Block  
Masters                    Multiple      Multiple      Multiple      Multiple      
Split transfer             No            Optional      Optional                    
Clocking                   Asynch.       Asynch.       Synch.        16 - 25 MHz.  
Bandwidth, single word,    25 MB/S       37 MB/S       20 MB/S       33 MB/S       
no latency                                                                         
Bandwidth, single word,    12.9 MB/S     15.5 MB/S     10 MB/S                     
150 ns latency                                                                     
Bandwidth, infinite        27.9 MB/S     95.2 MB/S     40 MB/S       89 MB/S       
block, no latency                                                                  
Bandwidthe, infinite       13.6 MB/S     20.8 MB/S     13.3 MB/S                   
block, 150 ns latency                                                              
Maximum devices            21            20            21                          
Maximum length             0.5 m         0.5 m         0.5 m                       
Standard number            IEEE 1014     IEEE 896.1    ANSI/IEEE                   
                                                       1296                        
Here are some peripheral buses
                           SCSI          SCSI-2        IDE           IPI           
Bus width                  50            Varies        40                          
Address/Data multiplexed   Yes           Yes           N/A                         
Data width                 8             8/16/32       16            16            
Transfer                   Single/Block  Single/Block  Block                       
Masters                    Multiple      Multiple      Single        Single        
Split transfer             Optional      Optional      No                          
Clocking                   Both          Both          Asynch        Asynch        
Bandwidth, single word,    5 MB Synch,   5 - 40 MB/S                 25 MB/S       
no latency                 1.5 MB Asyn   Synch.                                    
Bandwidth, single word,    5 MB Synch                                              
150 ns latency             1.5 MB Asyn                                             
Bandwidth, infinite        5 MB Synch                                25 MB/S       
block, no latency          1.5 MB Asyn                                             
Bandwidthe, infinite       5 MB Synch                                              
block, 150 ns latency      1.5 MB Asyn                                             
Maximum devices            7             7             2 (Disk                     
                                                       only)                       
Maximum length             25 m          25 m          18 in.                      
Standard number            ANSI          ANSI          ANSI          ANSI X3.129   
                           X3.131-1986   X3.131-199X   X3T9.2/90-14                
                                                       3                           
Here are some Non-PC-Clone PC buses
                           Micro         PCI           Nubus         
                           Channel                                   
Bus width                  140/182       124/188       96            
Address/Data multiplexed   16/32/no/24   Yes           Yes           
                           32/64//yes                                
Data width                 16/32         32/64         32            
Transfer                   Single/Block  Single/Block  Single/Block  
Masters                    Multiple      Multiple      Muliple       
                                                       (restricted)  
Split transfer                           No            No            
Clocking                   Asynch.       33 MHz.       10 MHz        
Bandwidth, single word,    20 MB/S       33 MB/S                     
no latency                                                           
Bandwidth, single word,                                              
150 ns latency                                                       
Bandwidth, infinite        75 MB/S       111 MB/S                    
block, no latency                                                    
Bandwidthe, infinite                                                 
block, 150 ns latency                                                
Maximum devices                                                      
Maximum length                                                       
Standard number                                        ANSI          
                                                       1196-1987     
Here are some multiprocessor server bus examples
                           HP Summit     SGI           Sun XDBus     
                                         Challenge                   
Bus width                                                            
Address/Data multiplexed                                             
Data width                 128           256           144           
Transfer                   Single/Block  Single/Block  Single/Block  
Masters                    Multiple      Multiple      Multiple      
Split transfer                                                       
Clocking                   60 MHz.       48 MHz        66 MHz.       
Bandwidth, single word,                                              
no latency                                                           
Bandwidth, single word,                                              
150 ns latency                                                       
Bandwidth, infinite        960 MB/S      1200 MB/S     1056 MB/S     
block, no latency                                                    
Bandwidthe, infinite                                                 
block, 150 ns latency                                                
Maximum devices                                                      
Maximum length                                                       
Standard number                                                      
Here, for comparison, are the IBM-PC clone buses
                           ISA-8         ISA-16        EISA          VESA          
Bus width                  62            98            98/100        116           
Address/Data multiplexed   20/no         24/no         24/32/no                    
Data width                 8             16            16/32         32            
Transfer                   Single/Block  Single/Block  Single/Block  Single/Block  
Masters                    Single        Single        Single        Multiple      
Split transfer                                                                     
Clocking                   4.77 MHz.     8.33 MHz      8.33 MHz.     Asynch.       
Bandwidth, single word,    33 MB/S       20 MB/S       33 MB/S       25 MB/S       
no latency                                                                         
Bandwidth, single word,                                                            
150 ns latency                                                                     
Bandwidth, infinite                                                                
block, no latency                                                                  
Bandwidthe, infinite                                                               
block, 150 ns latency                                                              
Maximum devices                                                                    
Maximum length                                                                     
Standard number                                                                    
In addition to the logical specification, each bus has a physical and electrical specification that defines the types and possibly the positions of the connectors, the signal levels (i.e. maximum, minimum, and rising and falling transition voltages), required drive capacity of the devices, impedance of the signal paths on the bus, signal timing (rise, fall, and hold times of signals), allowable noise, and the power limitations of devices that draw their power from the utility lines of the bus.

Futurebus is a defined standard, whereas the other buses are adopted from working systems. It has not caught on in spite of a great deal of publicity, largely because it obsoletes a very large installed base of VME compatible devices and systems, while offering only a limited improvement in performance. It also requires the development of new bus controller chips and new connectors, both of which are more expensive than their counterparts in the well-established VME market. In addition, the VME standard is continuing to evolve in an upward-compatible manner that increases its performance. It is thus likely to remain the most popular backplane bus for some time to come.



© Copyright 1995, 1996 Charles C. Weems Jr. All rights reserved.
Back to Chip Weems' home page.
Back to courses index page.
Back to Computer Science Department home page.