Technical details The Serial Attached SCSI standard defines several
layers (in order from highest to lowest): application, transport, port, link, PHY and physical. Serial Attached SCSI comprises three transport protocols: • Serial SCSI Protocol (SSP) for command-level communication with SCSI devices. • Serial ATA Tunneling Protocol (STP) for command-level communication with SATA devices. • Serial Management Protocol (SMP) for managing the SAS fabric. For the Link and
PHY layers, SAS defines its own unique protocol. At the
physical layer, the SAS standard defines connectors and voltage levels. The physical characteristics of the SAS wiring and signaling are compatible with and have loosely tracked that of SATA up to the 6 Gbit/s rate, although SAS defines more rigorous physical signaling specifications as well as a wider allowable differential voltage swing intended to allow longer cabling. While SAS-1.0 and SAS-1.1 adopted the physical signaling characteristics of SATA at the 3 Gbit/s rate with
8b/10b encoding, SAS-2.0 development of a 6 Gbit/s physical rate led the development of an equivalent SATA speed. In 2013, 12 Gbit/s followed in the SAS-3 specification. SAS-4 is slated to introduce 22.5 Gbit/s signaling with a more efficient 128b/150b encoding scheme to realize a usable data rate of 2,400 MB/s while retaining compatibility with 6 and 12 Gbit/s. Additionally,
SCSI Express takes advantage of the
PCI Express infrastructure to directly connect SCSI devices over a more universal interface.
Architecture SAS architecture consists of six layers: • Physical layer: • defines electrical and physical characteristics • differential signaling transmission • Multiple connector types: •
SFF-8482 –
SATA compatible • Internal four-lane connectors: SFF-8484, SFF-8087, SFF-8643 • External four-lane connectors: SFF-8470, SFF-8088, SFF-8644 • PHY Layer: •
8b/10b data encoding (3, 6, and 12 Gbit/s) • 128b/150b SPL packet encoding (22.5 Gbit/s) (2 bit header, 128 bit payload, 20 bit
Reed-Solomon forward error correction) • Link initialization, speed negotiation and reset sequences • Link capabilities negotiation (SAS-2 onwards) • Link layer: • Insertion and deletion of primitives for clock-speed disparity matching • Primitive encoding •
Data scrambling for reduced
EMI • Establish and tear down native connections between SAS targets and initiators • Establish and tear down tunneled connections between SAS initiators and SATA targets connected to SAS expanders • Power management (proposed for SAS-2.1) • Port layer: • Combining multiple PHYs with the same addresses into wide ports • Transport layer: • Contains three transport protocols: • Serial SCSI Protocol (SSP): for command-level communication with SCSI devices • Serial ATA Tunneled Protocol (STP): for command-level communication with SATA devices • Serial Management Protocol (SMP): for managing the SAS fabric • Application layer
Topology An
initiator may connect directly to a
target via one or more
PHYs (such a connection is called a port whether it uses one or more PHYs, although the term
wide port is sometimes used for a multi-PHY connection).
SAS expanders The components known as
Serial Attached SCSI Expanders (SAS Expanders) facilitate communication between large numbers of SAS devices. Expanders contain two or more external expander-ports. Each expander device contains at least one SAS Management Protocol target port for management and may contain SAS devices itself. For example, an expander may include a Serial SCSI Protocol target port for access to a peripheral device. An expander is
not necessary to interface a SAS initiator and target but allows a single initiator to communicate with more SAS/SATA targets. A useful analogy: one can regard an expander as akin to a
network switch in a network, which connects multiple systems using a single switch port. SAS 1 defined two types of expander; however, the SAS-2.0 standard has dropped the distinction between the two, as it created unnecessary topological limitations with no realized benefit: • An
edge expander allows for communication with up to 255 SAS addresses, allowing the SAS initiator to communicate with these additional devices. Edge expanders can do direct table routing and subtractive routing. (For a brief discussion of these routing mechanisms, see below). Without a fanout expander, you can use at most two edge expanders in a delivery subsystem (because you connect the subtractive routing port of those edge expanders together, and you can not connect any more expanders). Fanout expanders solve this bottleneck. • A
fanout expander can connect up to 255 sets of edge expanders, known as an
edge expander device set, letting even more SAS devices be addressed. The subtractive routing port of each edge expanders connects to the phys of fanout expander. A fanout expander cannot do subtractive routing, it can only forward subtractive routing requests to the connected edge expanders. Direct routing allows a device to identify devices directly connected to it. Table routing identifies devices connected to the expanders connected to a device's own PHY. Subtractive routing is used when you are not able to find the devices in the sub-branch you belong to. This passes the request to a different branch altogether. Expanders exist to allow more complex interconnect topologies. Expanders assist in link-switching (as opposed to packet-switching) end-devices (initiators or targets). They may locate an end-device either directly (when the end-device is connected to it), via a routing table (a mapping of end-device IDs and the expander the link should be switched to downstream to route towards that ID), or when those methods fail, via subtractive routing: the link is routed to a single expander connected to a subtractive routing port. If there is no expander connected to a subtractive port, the end-device cannot be reached. Expanders with no PHYs configured as subtractive act as fanout expanders and can connect to any number of other expanders. Expanders with subtractive PHYs may only connect to two other expanders at a maximum, and in that case they must connect to one expander via a subtractive port and the other via a non-subtractive port. SAS-1.1 topologies built with expanders generally contain one root node in a SAS domain with the one exception case being topologies that contain two expanders connected via a subtractive-to-subtractive port. If it exists, the root node is the expander, which is not connected to another expander via a subtractive port. Therefore, if a fanout expander exists in the configuration, it must be the domain's root node. The root node contains routes for all end devices connected to the domain. Note that with the advent in SAS-2.0 of table-to-table routing and new rules for end-to-end zoning, more complex topologies built upon SAS-2.0 rules do not contain a single root node.
Connectors SAS connectors are much smaller than traditional parallel
SCSI connectors. Commonly, SAS-3 provides for point data transfer speeds up to 12 Gbit/s. Currently, SAS-4 is available with up to 24 Gbps; with SAS-5 under development, according to T10. The physical SAS connector comes in several different variants: == Nearline SAS ==