Serial Attached SCSI (SAS) ist eine neue Speichertechnologie, die die Leistung und Skalierbarkeit herkömmlicher SCSI-Technologie verbessert und gleichzeitig Zuverlässigkeit der Enterprise-Klasse bietet. SAS-Entwickler machten einen großen Schritt in Richtung der Bereitstellung von SAS-basierten Produkten, als die SCSI Trade Association im März 2004 ihr erstes Interoperabilitäts-Plugfest abschloss.

SAS hat sich schnell von Laborprototypen in ein „frühes Silizium“-Stadium bewegt, weil seine Designer die Menge an neuer Technologie in der Spezifikation bewusst begrenzt haben. Seine physische Schicht wird von Serial ATA genutzt; und die SAS-Verbindungsschicht leiht sich großzügig von Fibre Channel für Codierung, Adressierung und Transport.

SAS wurde von Anfang an für transaktionsorientierte Hochleistungsspeicheranwendungen entwickelt. Beides auf Antriebsebene; Neben der Ebene der Protokollarchitektur bietet die SAS-Technologie integrierte Funktionen zur Minimierung von Bitfehlern auf der Bitübertragungsschicht; und Protokollfehler auf den höheren Schichten.

Wie bei jeder neuen Speichertechnologie muss SAS jedoch auch Zuverlässigkeit auf dem neuesten Stand der Technik bieten, um erfolgreich zu sein. Die meisten SAS-Entwickler sind sich einig, dass die Fehlerbehandlungslogik einer sorgfältigen Validierung bedarf, bevor SAS ein breites Spektrum an unternehmenstauglichen Anwendungen erfüllen kann.

Zuverlässigkeit der physikalischen Schicht

Zuverlässigkeit für SAS beginnt auf der Signalebene. SAS enthält eine fest definierte Empfängerspezifikation, die Augenmasken von 75 ps Skew zwischen Rx – und Rx + erfordert. Dadurch können SAS-Empfänger Signaldämpfung und Intersymbolinterferenz (ISI) besser tolerieren, die mit PCB-Rolloff und Nebensprechen innerhalb der seriellen Hochgeschwindigkeitsleitungen verbunden sind. Die SAS-Spezifikation beschreibt die folgenden Signalpegeleigenschaften:

Abschnitt 5 gibt an, dass Empfänger in der Lage sein müssen, einen Gesamt-Jitter von 0.65 UI (deterministisch + zufällig) zu tolerieren. Direkte Prüfverfahren unter Verwendung von Hochgeschwindigkeits-Digitaloszilloskopen wie dem LeCroy SDA6000 werden üblicherweise verwendet, um diesen Konformitätspunkt zu überprüfen. Weitere Informationen zum Testen der physikalischen Schicht für SAS finden Sie unter Website des InterOperability Laboratory der University of New Hampshire: http://www.iol.unh.edu/

Link-Layer-Validierung

Die SAS-Verbindungsschicht ist für die Übertragung, den Empfang und die Bestätigung von Frames verantwortlich. Zu Beginn der Tests für SAS-Silizium-Prototypen der 1. Generation gibt es eine lange Liste von Datenintegrität, Fehlerbehandlung und Interoperabilitätsmerkmalen auf der Verbindungsschicht, die validiert werden müssen. Tools wie der SASTracer/Trainer von CATC wurden entwickelt, um die Funktionsvalidierung der Verbindungsschicht zu vereinfachen.

CRC-Fehlerprüfung

Bei SAS werden alle Adress-, SSP-, STP/SATA-Frames durch eine zyklische Redundanzprüfung (CRC) geschützt, bei der es sich um eine spezielle Prüfsumme handelt, die sicherstellt, dass sich die empfangenen Daten nicht von den gesendeten Daten unterscheiden. Der CRC belegt die letzten 32 Bits des Rahmens, der dem EOF-Grundelement vorausgeht. Nachfolgend finden Sie ein Beispieltestskript zur Überprüfung der Fehlerbehandlung auf der SAS-Verbindungsschicht durch Senden eines INQUIRY-Befehls mit einem fehlerhaften CRC:

CATC SASTrainer bietet die Möglichkeit, gültige oder ungültige CRCs explizit in der Verkehrsgenerierungsdatei festzulegen. Das obige Beispielskript wurde entwickelt, um eine Verbindung zum Laufwerk zu öffnen, gefolgt von einem Befehl mit einem ungültigen CRC. Unter Verwendung des SASTracer/Trainer kann dieses Skript an das SAS-Zielgerät übertragen und die Antwort zur Analyse aufgezeichnet werden. Das Gerät sollte innerhalb von 1 ms mit NAK (negative Quittung) antworten, um den CRC-Fehler an den Sender zu melden.

Das Analysesystem SASTracer von CATC kann den Austausch aufzeichnen und die ordnungsgemäße Behandlung von CRC-Fehlern überprüfen

Überprüfen des ACK/NAK-Zeitüberschreitungsverhaltens Die Überprüfung, ob das zu testende Gerät korrekt auf ACK-Zeitüberschreitungsbedingungen reagiert, ist ein wichtiger Aspekt der Fehlerbehebung. Beispielsweise könnte das folgende Verfahren zum Validieren des Timeout-Verhaltens verwendet werden. Wenn das DUT ein Zielgerät ist, stellen Sie das SASTrainer-Skript auf den Initiator-Emulationsmodus ein. Der Tester tauscht OOB-Signale aus und erzielt eine Doppelwort-Synchronisation mit dem DUT. Der Tester öffnet dann eine Verbindung und überträgt einen READ-10 SSP-Rahmen. Wenn das DUT die Daten zurücksendet, wird der SASTrainer so eingestellt, dass er den Rahmen nicht bestätigt. Verwenden Sie den SASTracer zum Aufzeichnen des Austauschs und verifizieren Sie, dass das DUT DONE (ACK/NAK TIMEOUT) sendet, was anzeigt, dass es einen SSP-Frame gesendet hat, aber das entsprechende ACK oder NAK nicht innerhalb von 1 ms empfangen hat.

Mit Tools wie SASTracer/Trainer können Anbieter von benutzerdefinierten Testskripten profitieren, mit denen sie ihr Geräteverhalten auf Konformität mit der SAS-Spezifikation vorab testen können. Bleiben Sie dran für Teil II – Validierung der SAS Connection Management Compliance.