Author: Bob
Sheffield
Intel Corporation
Serial
Attached SCSI (SAS) extends the SCSI roadmap well beyond the
limitations of parallel busses. Parallel SCSI has achieved
geometric improvement over the last 20 years by doubling the
bandwidth in each subsequent generation: from 8 MB/s (megabytes
per second) to 320MB/s over its lifetime. SAS’s link
rate of 3Gb/s (gigabits per second), delivers 300MB/s if accounting
for 8b/10b encoding. SAS is 20 MB/s slower than parallel SCSI
point to point, often creating confusion about which interface
is faster. This article evaluates three key features of SAS
which provide performance and scaling well beyond parallel
SCSI:
- Full
duplex - Switched
transport - Wide
ports
Full
Duplex
Full duplex
allows transfers to occur outbound and inbound simultaneously,
unlike parallel SCSI, which allows only uni-directional communication.
In the generic cases of READS and WRITES, a SCSI target can
only choose between sending READ command data or notifying
that it’s ready to WRITE data. By supporting full duplex,
SAS targets can accept READS and WRITES simultaneously, and
initiators can send multiple commands without waiting for
prior commands to complete. This support is particularly useful
in targets with large data caches running work loads that
yield high cache hit rates, yielding aggregate bandwidths
approaching the theoretical 600 MB/s.
Switched
transport
SAS expanders
are switching devices that establish connections between initiator
and target phys in the same SAS domain, unlike parallel SCSI,
which connects devices via a multi-drop cable. When several
devices (up to a maximum of 15) share the same cable, only
one pair, a target and an initiator, can exchange data at
a time. If two or more devices have data ready to transfer,
only one device transfers through an arbitration process,
delaying the transfers of others that are ready. The effective
throughput is limited to whatever a single target device can
support – well below the 320MB/s provided by the bus.
On the
other hand, an expander (or set of expander devices) can establish
more than one connection at a time, removing the single transfer
limit of parallel SCSI cables. The effective throughput scales
to however many simultaneous connections the expander can
support. Simultaneous connections are limited by both the
lesser of the number of phys on the target or host within
the SAS domain and by the buffering support within the expander.
For example, if there are four initiator phys and 12 target
phys, there can be a maximum of four concurrent connections.
In this example, combining expander support and full duplex
support, the maximum theoretical throughput is 2 (full duplex)
x 4 (number of concurrent connections) x 300 (bandwidth per
connection) MB/s or 2400 MB/s! Now we’re starting to
see the huge advantage SAS has over Ultra320 SCSI!
Wide
Ports
SAS protocol
allows any set of initiator phys or target phys to be part
of the same initiator port or target port called a wide port.
If initiator phys or target phys all report the same SAS address
and connect to a common device, then the group of phys constitute
a wide port. Initiator ports and target ports can establish
concurrent connections between them, as many as their ports
are wide, and so the aggregate bandwidth between any pair
of initiator and target ports is multiplied by the width of
those ports. This allows high-bandwidth target devices, like
RAID controllers, to stream data to the initiator devices
they serve at extremely high data rates, combining the aggregate
bandwidth of the physical disk drives constituting the RAID
array.
Conclusion
While
a superficial analysis comparing the basic SAS link rate to
Ultra320 SCSI transfer rate seems to indicate that Ultra320
SCSI is faster, SAS provides several capabilities that vastly
improve the performance of SCSI devices. Full duplex, switched
transport, and wide ports all provide ways of multi-fold increases
in bandwidth above what is provided point to point. SAS has
thus put SCSI on an even more compelling performance trajectory
than parallel SCSI for many SCSI generations to come.