| Bus | Signal/Timing | Bus design | Protocol | |||||||||||||||
| ISA Industrial Standard Architecture |
Non-return to zero (NRZ) level based Separate clock line for timing.
5 volt. 4.7 MHz, 8 MHz, 10 MHz 20 MB/s data transfer possible. |
Parallel bus
Extended (most) CPU pins out to devices.
24 address, 16 data, various control Clock line provides direct clocking Power and ground lines. |
Devices expected to respond on clock edge. Devices unable to respond in time, such as memory, may exert a wait, which stalls CPU. Or a device may 'disconnect' from bus and use the interrupt lines to request attention when ready to respond to assigned task. Bus mastering is supported. Does not support burst mode, each read or write treated as an atomic task. |
|||||||||||||||
|
GPIB General purpose interface bus |
Non-return to zero (NRZ) level based
Control/handshaking signals pull-up or pull-down. 1 MB/s (legacy) 8 MB/s (modern implementations). |
8 multiplexed address/data. 8 handshaking lines for bus control. ATN - attention, signals if 'data' is control or data data. :) IFC - interface clear, reset bus. SRQ - service request, (interrupt) Serial polling supported. Alterntatively, each device assigned a specific bit on the data bus to flag that it made the request. Ground lines for signals but no device power. No clock. |
No clock, all bus interactions controlled by handshaking. Devices use data lines for any device level control/status communication. User is bus master. This technically means bus mastering is supported.
A device can be a :
talker - sends data There can be only one of each but a device may be both a talker and initiator, a listener and initiator, or just one of these three. Only one task can be performed at a time. It must be terminated in some way before another task begun. Because there is no clock, these are maximum possible speeds. Burst mode supported Once a device is selected and activated, data transfer is performed until data transferred or error condition occurs. |
|||||||||||||||
| PCI Peripheral Component Interconnect |
Non-return to zero (NRZ) level based. 5 volt signal. Reflected-wave switching. No clock signal. 33 MHz (expansion bus slots) 133 MB/s transfer (burst mode). It is possible to directly wire a device via a dedicated bus directly to the controller, in which case much higher throughput is possible. Common practice with video controllers. |
32-bit address/data lines. Multiplexes address/data/interrupts/device control 4-bit command/data mask lines. 4 interrupt lines (current versions use message signaled interrupts transmitted on data lines. Each interface has its own arbitration request/grant lines. 5 volt signaling. Some additional control lines Uses a 16 bit ID (BDF) to recognize devices :
But buses can be daisy chained (rare). |
Bus mastering supported. Transaction based. Initializes a transaction by providing a device target address and a 4-bit control command. Followed by 0 or more byte transfers. May use command/mask lines to narrow and/or select which 8 bits of 32 bit bus carries data. Only one transaction can be performed at a time over a bus. A transaction may complete, error out, or be suspended, but cannot be interleaved among different devices on a bus. The PCI controller may talk to multiple buses at the same time as long as they are not daisy chained. Burst mode supported. Transfer of up to 4 bytes at a time. Maximum burst size limited by resources of sender and receiver. |
|||||||||||||||
| PCIe Peripheral Component Interconnect Express |
Non-return to zero (NRZ) level based differential signaling.
PCIe 1.0, 2.0 uses 8b/10b RLL PCIe 1.0 - 2.5 GT/s ~ 250 MB/s per lane. PCIe 2.0 - 5.0 GT/s ~ 500 MB/s per lane. PCIe 3.0 - 8.0 GT/s ~ 984.6 MB/s per lane. PCIe 4.0 - 16.0 GT/s ~ 1969 MB/s per lane. These are ideal transfers. They are dependent on the device's response time, the size of the transfer. |
Paired lines using differential signaling to transmit data in serial
form. Two pair of lines transmitting data in opposite directions makes up a lane. All device address/data/control transferred over lanes. An interface has at least 1 lane but may have up to 32 lanes. A byte of data is serialized and transmitted over a single lane. But a series of bytes may be interleaved over several lanes if available Each device interface is dedicated and assigned its own bus ID, buses are not shared. Optional reference clock pair provide, but use not required.
|
PCIe maintains the PCI protocol. Its function is to packetize and serialize
and data (address, data, control) for transmission over dedicated connection. A packet can contain 0 (control) to 64 bytes of data. It is encapsulated in a transaction layer packet which in turn is placed into a data-link layer packet. Data-link layer packets contain device addressing, sequencing (for lane usage), data, and error check (LCLC) information. Used by PCI controllers router to route to correct bus/device successfully. Transaction layer packets contain portions of the transaction being performed. This allows the controller to interleave/perform multiple transaction at the same time. Because each bus is unique to a device, not conflicts.
Burst mode supported.
Transfer of 1 to 32 bytes of data at a time based on available lanes. |
|||||||||||||||
| USB Universal serial bus |
Pair of power lines also provided. Enough power drive electronic and some
minimal mechanical devices. Uses NRZI and differential signaling. USB 1 & 2 :
Half-duplex, transmits only in one direction at a time. USB 2 : -10 mV to -10 mV low signal, 360 mV to 440 mV high signal. USB 3. :
Extra pair of data lines, Full-duplex can transmit in both directions. USB 1(1.1)
|
Packetized serial transmission of data. Assumes point to point connections, but hubs can interface with multiple devices and route packets.
|
Transaction based. All transactions initiated by the controller. i.e bus mastering is NOT supported. Uses frames consisting of one or more packets. A frame is a particular task or transaction,
Low, full speed frames(task) must run to completion. USB 2 and up support burst mode. (according to USB.org)
Low speed (USB 1.1) : 8 bytes/packet |
|||||||||||||||
| SATA Serial ATA |
NRZ, Non-return to zero
Differential signaling
8b/10b encoding.
Unassigned 10b patterns used for control status communication between end
points.
|
Separate power connection, provides several voltage levels. 7 line shielded data cable.
|
Transaction based. Implements the ATA (AT attachement) protocol over a serial interface. A drive cannot initiate a transaction. i.e bus mastering NOT supported. Packet based communication between endpoints called a File information structure (FIS). Supports Native command queueing, which allows controller to rearrrange disk access requests for best performance. Burst mode supported.
|