SCSI buses run at a variety of different speeds. Generally, newer buses run faster than
older ones, reflecting the increased performance of newer hardware. In order to understand
SCSI bus speeds, we must first tackle some terminology issues (yet again, sorry)
There are several different ways that SCSI bus speeds are specified, which can lead to a
tremendous amount of confusion. The situation is particularly bad because base SCSI speeds
vary by powers of two, and the differences between the various ways of specifying SCSI bus
speeds also differ by powers of two!
These are the three ways that SCSI bus speeds are commonly quoted:
- Clock Speed: This refers strictly to the frequency of the clock
(strobe) used to control synchronous transfers of data on the SCSI bus. With current
technology this can be 5, 10, 20, 40 or 80 MHz.
- Transfer Rate: This refers to the number of times per second that data
is transferred across the interface. This is only the same as the clock speed of the bus
if single transition (conventional) clocking is used. Faster SCSI implementations now use double transition clocking, and this
means the transfer rate (in millions of transfers per second) will be double the clock
speed in MHz.
- Throughput: This number represents the theoretical maximum amount of
data that can be moved across the SCSI bus, and is measured in millions of bytes per
second (MB/s). On a narrow bus, throughput and transfer rate are the same, because each
transfer is of 8 bits (one byte). But for a wide bus, throughput is double transfer rate,
because each transfer is of 16 bits--two bytes.
Now that we understand all of that--we do understand it, right?
--we can
look at the various bus speeds used in the SCSI world and understand what they mean. The
table below shows all of the bus speeds used for parallel SCSI. (You may also find that
looking at the table makes more clear the relationship between clock speed, transfer rate
and throughput):
Standard-Defined
Bus Speed |
Common
Signaling Speed Name |
Clock
Speed (MHz) |
Clocking |
Transfer
Rate (Mtransfers/s) |
Throughput
(MB/s) |
Narrow (8-bit) |
Wide (16-bit) |
SCSI-1 |
"Regular" |
5 |
Single |
5 |
5 |
-- |
Fast |
"Fast" |
10 |
Single |
10 |
10 |
20 |
Fast-20 |
"Ultra" |
20 |
Single |
20 |
20 |
40 |
Fast-40 |
"Ultra2" |
40 |
Single |
40 |
40 |
80 |
Fast-80(DT) |
"Ultra3" or
"Ultra160" |
40 |
Double |
80 |
-- |
160 |
Fast-160(DT) |
"Ultra320" |
80 |
Double |
160 |
-- |
320 |
Note: The
"(DT)" in "Fast-80(DT)" and "Fast-160(DT)" represents the
fact that this suffix is sometimes attached to represent the use of double transition
clocking for those interfaces.
As you can see, the use of double transition clocking and wide buses means that the
numbers in the latest transfer modes do not refer to the actual speed of the bus at all.
The "160" in "Ultra160" represents the maximum throughput of such
devices, but the clock speed is "only" 40 MHz.
Finally, I must include my standard disclaimer: we are discussing interface
transfer rates here. These represent only the maximums that data can be transmitted across
the interface under theoretical conditions. The big numbers that are popularly discussed
ignore command overhead and other inefficiencies, so you will not actually get a full 160
MB/s on an Ultra160 interface. Also, remember that true performance will be limited by the
speed of the devices on the interface. Simply increasing the speed of the interface is not
enough to really improve performance unless the interface was already the limiting factor
(such as if multiple drives were saturating it). See here for more on this issue. Also
remember that the maximum throughput of any SCSI device will be limited by the throughput
of the host adapter's system bus interface.
Next: Bus Parity and Cyclic Redundancy Checking (CRC)