Although SAS (Serial Attached SCSI) still uses SCSI commands to interact with devices, it is a serial interconnection system between SCSI devices that are the successors of parallel SCSI.
What is SAS (Serial Attached SCSI)?
This interface increases speed and allows for quick disconnection and disconnection. It is compatible with Serial ATA (SATA), and devices can communicate using protocols.
History
The organization behind the development of the SAS specification is the SCSI Trade Association.
Founded in 1996 to promote parallel SCSI use and knowledge, it is a California-based non-profit organization.
The first version appeared at the end of 2003. Reaching 3Gb/s bandwidth, the SAS 300 significantly increased the previous Ultra 320Mb/s SCSI speed.
One of the main features is that it increases the transfer speed by increasing the number of connected devices; that is, it can manage a fixed transfer rate for each connected device and end the limitation of the 16 devices available in SCSI. It is estimated that this technology will gradually replace the predecessor of SCSI.
The connector is the same as in the SATA interface and allows the use of these hard drives for applications that require less speed, saving costs.
Therefore, SAS controllers can use SATA disks, but not vice versa, as the SATA controller does not recognize SAS disks.
SAS Disk Communication Protocols
SSP (Serial SCSI Protocol)
Allows SCSI commands to be moved between SCSI devices.
STP (Serial ATA Tunneled Protocol)
Allows ATA commands to be moved across multiple SATA devices.
STP (Serial Management Protocol)
Allows migration of domain management functions.
SAS devices can function as Initiators (controllers), Target (peripherals), or Target/Initiators, sometimes as controllers and sometimes peripherals, and can support one or more transport protocols (SSP, STP, SMP).
SAS Domain
The SAS domain is a system of devices that communicate through an interconnection subsystem. In short, it is a series of physical connections that connect an Initiator SAS with the Target SAS and a series of physical connections and extenders that connect more than two devices.
SATA Targets can be part of the domain as long as they are connected to the extenders that support the STP protocol.
Initiators who want to communicate with the SATA targets in the domain can only do this using the STP protocol, meaning that only controllers that support the SATA protocol cannot be used in domains, only in SATA domains.
Extenders that support STP act as a bridge between both protocols (STP and SATA), thereby becoming the bridge between the domain and one or more SATA domains.
Allowing SATA devices to connect to the domain enables simultaneous access to ATA peripherals to be shared by several STP Launchers that cannot be made in normal, parallel, or serial (SATA) ATA domains.
Physical Level
The physical connections (Phys) of each of the point-to-point connections in the interconnection subsystem are known as physical connections and consist of 2 pairs of differential signals, allowing one pair to transmit information in both directions simultaneously to transmit in one direction and one pair.
The devices are electrically connected to a physical connection via a transceiver called PHY. Devices may have one or more Phys.
The current standard transmission rates are 1.5 Gbps and 3 Gbps, equivalent to the physical connection speeds of 150 and 300 MB/s, respectively.
The information is transmitted in the NRZ code, and the maximum allowable differential voltage value in the receiver is +/- 800 mV.
Phys can support different roles and different protocols (SSP, SMP, STP), but they can only use one role and one protocol per connection.
SAS Disk Cables and Connectors
The interface of these discs supports four types of connections:
1) External Connections with Cable
External devices (Initiators, Targets, and Expanders) use a 25-pin connector that connects to cables with four physical connections (4×4 pins) and ground signals (9 pins).
External SASs contain conductors for one, two, three, or four physical connections. Also, their cables and connectors do not have power contacts or LEDs.
2) Direct Internal Links
Internal Targets always use a 29-pin connector with two physical connections (4 signal pins and three grounds for each connection), power (12V, 5V, 3.3V, and 14 pins total for ground), and LEDs (1 pin).
Connector panels always use a 29-pin connector to provide a direct connection to the Target. Initiators and internal expanders can also use the 29-pin connector to connect directly to the Target.
SATA devices can be connected directly to a connector panel or a 29-pin connector extender because the 22-pin connector of the SATA device is physically compatible with the 29-pin connector using power pins and primary physical devices.
The LED signal from its connector matches the reserved pin in the power segment of the SATA connector.
3) Internal Connections with Single Port Cable
Single-port internal cables use a 29-pin connector on the Target side but contain only conductors for power, LEDs, and primary physical connection. These cables release the secondary physical connection of the Target.
On the other hand, Initiators and internal expanders that allow wired connections have the same 7-pin connectors as the signal connector of a SATA controller.
The physical connecting conductors of the internal cable terminate on the opposite side of the Target in a 7-pin connector similar to that used on the SATA signal cable.
This cable allows the primary physical connection to be connected to the Initiator or internal extender from the internal Target SAS and also to connect the SATA device to the internal extender.
4) Internal Connections with Dual Port Cable
Internal dual-port cables use a 29-pin connector on the Target side and contain conductors for power, LEDs, and both physical connections.
The conductors of each physical connection in its internal cable terminate on the opposite side of the Target in a 7-pin connector similar to that used on the SATA signal cable.
This cable allows two physical connections of the internal Target SAS to be connected to the two ports of the internal Initiators or expanders.
Although the secondary physical link connector is not connected anywhere, it can also be used to connect a SATA device to the extender.
When using 24-meter solid conductor shielded biaxial cable and quality passive components, the cable length can be up to 8 meters.
Phy Level
Phy level 8b10b identifies encoding and OOB signals.
8b10b Encoding
It is widely used in serial transmission at speeds up to Gbps and above.
Used by Fiber Channel (1 and 2 Gbps), then used by Gigabit Ethernet (1 Gbps) and SAS and SATA (1.5 and 3 Gbps), FireWire 800 (800 Mbps) and InfiniBand (2.5 Gb/s).
Coding has the following functions:
It ensures that there is sufficient passage on the line so that the receiver can save the clock and thus receive the bit stream properly.
It dramatically increases the probability of detecting single and multiple errors that may occur during transmission.
Allows the transmitting of special characters containing a pattern that is easily recognizable by the receiver, which will enable it to align the words in the bitstream it receives.
The 8b10b encoding consists of replacing each octet (8-bit) with 10-bit code before transmission. Only 512 is used to encode all possible data characters (2 ^ 8 = 256 in total) from all possible 10-bit codes (total 2 ^ 10 = 1024) and a few more codes to encode a control character string.
Out of Band (OOB) Signals
OOB (Out of Band) signals are low-speed signal patterns that are not visible during transmission and are used only during physical start. These consist of loops of predefined rest time and transmission of specific primitives (ALIGN).
The transmission of the essential elements is used only to produce an envelope, so the receiver distinguishes the different OOB signals by the length of the rest interval between the transmissions of the Basic elements.
SATA defines two OOB tokens named COMINIT/COMRESET and COMWAKE, and SAS defines a new token named COMSAS. This connection is used at startup to identify itself as a SAS device and to verify whether the other device is SAS or SATA.
Link-Level
The link level defines the use of different primitives for each type of connection, all questions about establishing and closing connections, and some other details about error detection code (CRC) data scrambling. It also dissipates the energy that is emitted when repeating strings are transmitted.
There are two unique frames called address frames at the stages of address frames and connection initiation definition and connection requests.
- SOAF (Start Of Address Frame)
- EOAF (End Of Address Frame)
IDENTIFY contains information about the type of device, the protocols it supports, SSP, STP, SMP, and the port or address of the extender device and PHY that sends the frame.
OPEN defines the protocol to be used in the connection between SSP, STP, and SMP. Suppose the request starts from a Starter or Target. In that case, the speed supporting all physical connections on the path supports an optional tag assigned by the Starter to the SSP and STP connections, as well as the addresses of the source and destination ports.
Transportation Level
The transfer level creates the frames to be transmitted and controls the content of the received frames. Only frames accepted at the link level are imported.
SSP Connections
The following frameworks are used in SSP connections:
- Data Frame.
- Prepared Weft.
- Command Chart.
- Response Chart.
- Mission Plan.
STP Connections
In STP connections, the SATA protocol is encapsulated together with the connection control frames. This mechanism is called SATA Tunnel:
When a SATA Destination sends a SATA frame to the extender to which it is connected, the extender opens an STP link to an extender to the Initiator STP or Initiator STP. The STP connection is established only for this SATA framework, so the extender closes the STP connection.
When an STP Initiator wants to send a frame, it opens an STP connection with the extender to which it is connected. The expander connected to the target SATA opens a SATA connection to the Target only for this frame, so the expander closes the SATA connection at the end.
SMP Connections
As for SMP connections, only two frame types are used:
- SMP_REQUEST is dispatched, specifying the function requested by the source function (Initiator SMP).
- SMP_RESPONSE is sent by the target device (Target SMP) with the information requested in the request.
Advantages
By combining the performance and reliability of the serial interface with existing SCSI environments, it provides more freedom to storage solutions without losing the traditional foundation where business storage is established by providing the following features:
- Accelerates storage performance compared to parallel SCSI technology.
- It ensures the integrity of the data.
- Protects IT investments.
- It provides flexibility in the design of systems with SATA disk drives in a single bay.