Serial Attached SCSI


In computing, Serial Attached SCSI is a point-to-point serial protocol that moves data to and from computer-storage devices such as hard disk drives, solid-state drives and tape drives. SAS replaces the older Parallel SCSI bus technology that first appeared in the mid-1980s. SAS, like its predecessor, uses the standard SCSI command set. SAS offers optional compatibility with Serial ATA, versions 2 and later. This allows the connection of SATA drives to most SAS backplanes or controllers. The reverse, connecting SAS drives to SATA backplanes, is not possible.
The T10 technical committee of the International Committee for Information Technology Standards develops and maintains the SAS protocol; the SCSI Trade Association promotes the technology.

Introduction

A typical Serial Attached SCSI system consists of the following basic components:
  1. An initiator: a device that originates device-service and task-management requests for processing by a target device and receives responses for the same requests from other target devices. Initiators may be provided as an on-board component on the motherboard or as an add-on host bus adapter.
  2. A target: a device containing logical units and target ports that receives device service and task management requests for processing and sends responses for the same requests to initiator devices. A target device could be a hard disk drive or a disk array system.
  3. A service delivery subsystem: the part of an I/O system that transmits information between an initiator and a target. Typically cables connecting an initiator and target with or without expanders and backplanes constitute a service delivery subsystem.
  4. Expanders: devices that form part of a service delivery subsystem and facilitate communication between SAS devices. Expanders facilitate the connection of multiple SAS End devices to a single initiator port.

    History

  • SAS-1: 3.0 Gbit/s, introduced in 2004
  • SAS-2: 6.0 Gbit/s, available since February 2009
  • SAS-3: 12.0 Gbit/s, available since March 2013
  • SAS-4: 22.5 Gbit/s, standard completed in 2017
  • SAS-5: Enhancements to SAS-4 with additional connector definitions to align with new form factors and to improve signal integrity, development started in May 2018

    Identification and addressing

A SAS Domain is the SAS version of a SCSI domain—it consists of a set of SAS devices that communicate with one another by means of a service delivery subsystem. Each SAS port in a SAS domain has a SCSI port identifier that identifies the port uniquely within the SAS domain, the World Wide Name. It is assigned by the device manufacturer, like an Ethernet device's MAC address, and is typically worldwide unique as well. SAS devices use these port identifiers to address communications to each other.
In addition, every SAS device has a SCSI device name, which identifies the SAS device uniquely in the world. One does not often see these device names because the port identifiers tend to identify the device sufficiently.
For comparison, in parallel SCSI, the SCSI ID is the port identifier and device name. In Fibre Channel, the port identifier is a WWPN and the device name is a WWNN.
In SAS, both SCSI port identifiers and SCSI device names take the form of a SAS address, which is a 64 bit value, normally in the NAA IEEE Registered format. People sometimes refer to a SCSI port identifier as the SAS address of a device, out of confusion. People sometimes call a SAS address a World Wide Name or WWN, because it is essentially the same thing as a WWN in Fibre Channel. For a SAS expander device, the SCSI port identifier and SCSI device name are the same SAS address.

Comparison with parallel SCSI

  • The SAS "bus" operates point-to-point while the SCSI bus is multidrop. Each SAS device is connected by a dedicated link to the initiator, unless an expander is used. If one initiator is connected to one target, there is no opportunity for contention; with parallel SCSI, even this situation could cause contention.
  • SAS has no termination issues and does not require terminator packs like parallel SCSI.
  • SAS eliminates clock skew.
  • SAS allows up to 65,535 devices through the use of expanders, while Parallel SCSI has a limit of 8 or 16 devices on a single channel.
  • SAS allows a higher transfer speed than most parallel SCSI standards. SAS achieves these speeds on each initiator-target connection, hence getting higher throughput, whereas parallel SCSI shares the speed across the entire multidrop bus.
  • SAS devices feature dual ports, allowing for redundant backplanes or multipath I/O; this feature is usually referred to as the dual-domain SAS.
  • SAS controllers may connect to SATA devices, either directly connected using native SATA protocol or through SAS expanders using Serial ATA Tunneling Protocol.
  • Both SAS and parallel SCSI use the SCSI command set.

    Comparison with SATA

There is little physical difference between SAS and SATA.
  • SAS protocol provides for multiple initiators in a SAS domain, while SATA has no analogous provision.
  • Most SAS drives provide tagged command queuing, while most newer SATA drives provide native command queuing.
  • SATA uses a command set that is based on the parallel ATA command set and then extended beyond that set to include features like native command queuing, hot-plugging, and TRIM. SAS uses the SCSI command set, which includes a wider range of features like error recovery, reservations and block reclamation. Basic ATA has commands only for direct-access storage. However SCSI commands may be tunneled through ATAPI for devices such as CD/DVD drives.
  • SAS hardware allows multipath I/O to devices while SATA does not. Per specification, SATA 2.0 makes use of port multipliers to achieve port expansion, and some port multiplier manufacturers have implemented multipath I/O using port multiplier hardware.
  • SATA is marketed as a general-purpose successor to parallel ATA and common in the consumer market, whereas the more-expensive SAS targets critical server applications.
  • SAS error-recovery and error-reporting uses SCSI commands, which have more functionality than the ATA SMART commands used by SATA drives.
  • SAS uses higher signaling voltages than SATA. The higher voltage offers the ability to use SAS in server backplanes.
  • Because of its higher signaling voltages, SAS can use cables up to long, whereas SATA has a cable-length limit of or for eSATA.
  • SAS is full duplex, whereas SATA is half duplex. The SAS transport layer can transmit data at the full speed of the link in both directions at once, so a SCSI command executing over the link can transfer data to and from the device simultaneously. However, because SCSI commands that can do that are rare, and a SAS link must be dedicated to an individual command at a time, this is generally not an advantage with a single device.

    Characteristics

Technical details

The Serial Attached SCSI standard defines several layers : application, transport, port, link, PHY and physical. Serial Attached SCSI comprises three transport protocols:
  • Serial SCSI Protocol for command-level communication with SCSI devices.
  • Serial ATA Tunneling Protocol for command-level communication with SATA devices.
  • Serial Management Protocol 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
  • * 128b/150b SPL packet encoding
  • * Link initialization, speed negotiation and reset sequences
  • * Link capabilities negotiation
  • 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
  • Port layer:
  • * Combining multiple PHYs with the same addresses into wide ports
  • Transport layer:
  • * Contains three transport protocols:
  • ** Serial SCSI Protocol : for command-level communication with SCSI devices
  • ** Serial ATA Tunneled Protocol : for command-level communication with SATA devices
  • ** Serial Management Protocol : for managing the SAS fabric
  • Application layer

    Topology

An initiator may connect directly to a target via one or more PHYs.