# Serial Attached SCSI

Serial Attached SCSI (SAS) ist eine Computerschnittstelle, die 2004 die Nachfolge der vorhergehenden parallelen SCSI-Schnittstelle antrat.

## Hintergrund

Der Vorläufer von SAS war die parallele SCSI-Schnittstelle, die mit ihrem letzten Standard Ultra-320 SCSI an physikalische Grenzen gestoßen war. Unter anderem darf bei einer parallelen Übertragung die Signallaufzeit auf den einzelnen Datenleitungen nicht zu sehr differieren, damit das langsamste und das schnellste Bit noch zum Bit-Abtast-Zeitpunkt ausgewertet werden können. Zur weiteren Steigerung der Datendurchsatzrate wurde daher eine neue, serielle Schnittstelle konzipiert. Da bereits einige Jahre vorher bei Desktop-PCs die serielle Schnittstelle Serial ATA (SATA) eingeführt wurde, lag es nahe, zur Verringerung von Entwicklungs- und Herstellungskosten den SCSI-Nachfolger mit einem zu SATA kompatiblen Modus zu versehen. Ultra-640 SCSI wurde zwar noch als paralleler Standard definiert, doch wurden keine solchen Geräte mehr gebaut.

## Technik

Auf der Bitübertragungsschicht arbeitet SAS seriell mit einer Symbolrate von 3 Gbit/s (SAS-1, 2004) bis 22,5 Gbit/s (SAS-4, 2017). Die vierte Generation mit 22,5 Gbit/s, etwas effizienterer Kodierung und integrierter Vorwärtsfehlerkorrektur ist 2017 erschienen. Bis einschließlich SAS-3 wird als Modulation auf der Sicherungsschicht wie bei SATA ein 8b10b-Code verwendet, d. h. 8 Bit Nutzdaten werden in 10 Kanalbits übertragen. Gegenüber SATA wird auf den Kabeln ein größerer Spannungshub (± 1,2 V) verwendet, um eine Reichweite von bis zu 6 m zu gewährleisten. Für SAS-4 wird eine 128b/150b-Kodierung verwendet. Dadurch entsprechen die genannten Übertragungsraten jeweils 300, 600, 1200 oder 2400 MB/s Nettodatendurchsatz.
SAS Generationen im Überblick :
| Gene- ration | Name | Symbolrate | Datendurchsatz (Netto) | Kodierung | Erscheinungs- jahr |
| SAS-1 | SAS | 03 Gbit/s | 0300 MB/s | 8b/10b | 2004 |
| SAS-2 | SAS 6G | 06 Gbit/s | 0600 MB/s | 8b/10b | 2009 |
| SAS-3 | SAS 12G | 12 Gbit/s | 1200 MB/s | 8b/10b | 2013 |
| SAS-4 | SAS 24G | 22,5 Gbit/s | 2400 MB/s | 128b/150b | 2017 |
| SAS-5 | SAS 48G | 45 Gbit/s | 4800 MB/s | 128b/150b | in Entwicklung |
Im Gegensatz zu seinem Vorgänger Parallel SCSI ist SAS eine Punkt-zu-Punkt-Verbindung. Zum einen entfallen dadurch die bei Parallel SCSI typischen Terminatoren, die dort eine Signalspiegelung an Kabelenden vermeiden. Zum anderen entfällt so die Notwendigkeit, den Laufwerken manuell SCSI-IDs (Adresse innerhalb des Busses) zu vergeben. Darüber hinaus besitzt jedes SAS-Gerät eine weltweit eindeutige ID, so dass ein Betriebssystem ein SAS-Gerät unabhängig von seiner Position innerhalb der SAS-Topologie sicher identifizieren kann.
Der SAS-Standard sieht weiter oben im Protokollstapel drei Protokolle vor, um Gerätekommunikation zu ermöglichen:
* SAS SCSI Protocol (SSP), die serielle Variante des SCSI-Protokolls. SAS-Endgeräte und SAS-Controller nutzen dieses, um miteinander zu kommunizieren.
* Serial ATA Tunneling Protocol (STP), das das SATA-Protokoll tunnelt. Dadurch ist es möglich, SATA-Laufwerke an SAS-Controllern einzusetzen.
* SAS Management Protocol (SMP), für das Management von Expandern.

### Expander

SAS ist nicht nur als Verbindungsprotokoll zwischen Controller und Endgeräten konzipiert, sondern erlaubt mit Hilfe sogenannter „Expander“ auch, eine Speicherdomäne aus SAS-Geräten aufzubauen. Diese Geräte haben eine ähnliche Funktion wie die aus der Netzwerkwelt bekannten Switches. Dabei wird zwischen zwei Expander-Typen unterschieden:
* Der Edge Expander bündelt theoretisch bis zu 128 Endgeräte (praktisch erhältlich bis zu 36) auf ein einzelnes SAS-Kabel. Indem dieses an den Controller angeschlossen wird, ist es möglich, wesentlich mehr Geräte an einem Controller zu betreiben als dieser Ports bietet. Es können bis zu zwei Edge Expander pro Controller benutzt werden.
* Reichen die durch Edge Expander erweiterten Möglichkeiten nicht aus, kommen Fanout Expander ins Spiel. Diese können zwischen Controller und Edge Expander gestellt werden und fächern dabei den einzelnen Controlleranschluss auf bis zu 128 auf (englisch fan out). Durch Einsatz beider Expander-Typen erhöht sich die theoretische Maximalanzahl an Endgeräten auf 128×128=16384 Laufwerke.

### Leitungsbündelung und Dual Porting

SAS-Festplatten haben üblicherweise zwei SAS-Anschlüsse. Diese können entweder zur Leistungssteigerung gebündelt werden, so dass sie zusammen bis zu 24 GBit/s übertragen können (dritte Generation). Oder man setzt sie zum Dual Porting ein, das es erlaubt, die beiden Ports der Festplatte an unterschiedlichen Host-Adaptern anzuschließen. Damit sind redundante Architekturen einfach zu realisieren. Bereits auf dem Intel Developer Forum im Februar 2004 demonstrierte Seagate eine 2,5-Zoll-SAS-Festplatte im Dual-Porting-Betrieb. Bei der Demonstration griffen zwei unabhängige Systeme auf die verwendete Festplatte zu, die jeweils einen Video-Stream von dieser Platte abspielten.

## Stecker und Kabel

SAS übernimmt die SATA-Steckverbindungen in leicht abgeänderter Form: Die Buchsen sind mit einem Steg zwischen Daten- und Stromanschluss versehen, die Stecker entsprechend mit einem Keil. Dadurch können keine SATA-Kabel in SAS-Geräte gesteckt werden, wohl aber SAS-Kabel in SATA-Geräte. Diese Eigenschaft wurde aufgrund der geplanten Abwärtskompatibilität zu SATA bewusst entwickelt.
Im Laufe der Zeit haben sich verschiedene Steckertypen etabliert, die in mehreren SFF-Standards spezifiziert sind:
| Name | andere Namen | extern/ intern | Anzahl Verbinder | Geräte | Bemerkungen |
| SFF-8482 | | intern | 007 | 01 | Für interne Verbindungen, kompatibel zu SATA-Laufwerken. Das Bild zeigt die laufwerksseitige Buchse. |
| SFF-8484 | | intern | 032 (19) | 04 (2) | Für zwei- oder vierkanalige interne Verbindungen. |
| SFF-8485 | | | | | Definiert SGPIO (Erweiterung von SFF 8484), ein serielles Protokoll. Beispielsweise für LED-Anzeigen verwendet. |
| SFF-8470 | InfiniBand-Stecker | extern | 032 | 04 | Für vierkanalige externe Verbindungen, auch bei InfiniBand in Anwendung. Wird auch als interner Stecker verwendet. |
| SFF-8087 | intern mini-SAS, intern mSAS, iPASS (Supermicro) | intern | 036 | 04 | Molex-Stecker, für vierkanalige interne Verbindungen. Wesentlich kleiner als SFF 8484, auch für 12 Gbit/s. |
| SFF-8088 | extern mini-SAS, extern mSAS | extern | 026 | 04 | Molex-Stecker, für vierkanalige externe Verbindungen, auch für 12 Gbit/s. Die Anzahl/Position der Rillen am Stecker kann sich unterscheiden, um die Steckerrichtung festzulegen („IN“ oder „OUT“). Stecker mit drei Rillen können für IN und OUT verwendet werden. |
| SFF-8643 | intern mini-SAS HD | intern | 036 | 04 | Stecker für vierkanalige interne Verbindungen, auch für 12 Gbit/s, auch vom Controller zu Laufwerken als Fan-Out. Nochmals kleiner als SFF-8087. |
| SFF-8644 | extern mini-SAS HD | extern | | 04 | Stecker für vierkanalige, externe Verbindungen, auch für 12 Gbit/s |
| SFF-8654 | intern slim-SAS | intern | 38 | 4 | Stecker für interne SAS-Verbindung. Wird z. B. von Lenovo / IBM auf Server-Mainboard verwendet. |

## Vergleich zwischen SAS und SATA

| Schnittstelle | SAS (SAS-3, dritte Generation) | SATA (Serial ATA 6,0 Gbit/s, SATA Revision 3.x) |
| Übertragungsrate je Port | 12 GHz Symbolrate ≙ 1200 MB/s Brutto-Datenrate | 6 GHz Symbolrate ≙ 600 MB/s Brutto-Datenrate |
| Leitungscode | 8b10b-Code | 8b10b-Code |
| Spannungshub (Tx/Rx) | 800–1600 mV / 275–1600 mV | 600–900 mV / 325–900 mV |
| Impedanz | 100 Ω | 100 Ω |
| Verbindungsart | vollduplex | halbduplex (vollduplex nicht unterstützt) |
| Leitungsbündelung | Port Aggregation | nein |
| Dual Channel | bei Festplatte/SSD 2× 12 GHz Symbolrate ≙ 2400 MB/s Brutto-Datenrate | nein |
| Anschlusstechnik | Multi-Initiator | Single-Host oder Multilane |
* Festplattenanschluss Unterseite
* Festplattenanschluss Oberseite
* SAS-Backplane
* SFF-8484-Steckverbinder