Einführung in SSD. Teil 2. Schnittstelle

Einführung in SSD. Teil 2. Schnittstelle

В letzter Teil Im Zyklus „Einführung in SSD“ sprachen wir über die Entstehungsgeschichte von Festplatten. Im zweiten Teil geht es um die Schnittstellen zur Interaktion mit Laufwerken.

Die Kommunikation zwischen dem Prozessor und den Peripheriegeräten erfolgt nach vordefinierten Konventionen, die als Schnittstellen bezeichnet werden. Diese Vereinbarungen regeln die physische und softwaremäßige Ebene der Interaktion.

Schnittstelle – eine Reihe von Mitteln, Methoden und Regeln der Interaktion zwischen Elementen des Systems.

Die physische Implementierung einer Schnittstelle beeinflusst die folgenden Parameter:

  • Durchsatz des Kommunikationskanals;
  • die maximale Anzahl gleichzeitig angeschlossener Geräte;
  • die Anzahl der auftretenden Fehler.

Festplattenschnittstellen sind aufgebaut I/O-PortsDies ist das Gegenteil von Speicher-E/A und belegt keinen Platz im Adressraum des Prozessors.

Parallele und serielle Schnittstellen

Je nach Datenaustauschmethode werden I/O-Ports in zwei Typen unterteilt:

  • parallel;
  • konsistent.

Wie der Name schon sagt, sendet der Parallelport jeweils ein Maschinenwort, das aus mehreren Bits besteht. Ein paralleler Port ist die einfachste Möglichkeit, Daten auszutauschen, da keine komplexen Schaltungslösungen erforderlich sind. Im einfachsten Fall wird jedes Bit des Maschinenworts auf einer eigenen Signalleitung gesendet und für die Rückmeldung werden zwei Servicesignalleitungen verwendet: Daten bereit и Daten akzeptiert.

Einführung in SSD. Teil 2. Schnittstelle
Parallele Ports lassen sich auf den ersten Blick gut skalieren: mehr Signalleitungen – mehr Bits werden gleichzeitig übertragen und damit ein höherer Durchsatz. Aufgrund der zunehmenden Anzahl von Signalleitungen kommt es jedoch zu Interferenzen zwischen diesen, was zu einer Verzerrung der übertragenen Nachrichten führt.

Serielle Anschlüsse sind das Gegenteil von parallelen. Daten werden jeweils bitweise gesendet, was die Gesamtzahl der Signalleitungen reduziert, den I/O-Controller jedoch komplizierter macht. Der Sender-Controller empfängt jeweils das Maschinenwort und muss jeweils ein Bit senden, und der Empfänger-Controller wiederum muss die Bits empfangen und in derselben Reihenfolge speichern.

Einführung in SSD. Teil 2. Schnittstelle
Mit einer geringen Anzahl von Signalleitungen können Sie die Frequenz der Nachrichtenübertragung störungsfrei erhöhen.

SCSI

Einführung in SSD. Teil 2. Schnittstelle
Small Computer Systems Interface (SCSI) erschien bereits 1978 und war ursprünglich dazu gedacht, Geräte mit unterschiedlichen Profilen in einem einzigen System zu kombinieren. Die SCSI-1-Spezifikation sah den Anschluss von bis zu 8 Geräten (zusammen mit dem Controller) vor, wie zum Beispiel:

  • Scanner;
  • Bandlaufwerke (Streamer);
  • optische Laufwerke;
  • Festplatten und andere Geräte.

SCSI hieß ursprünglich Shugart Associates System Interface (SASI), aber das Normungsgremium lehnte einen Namen nach dem Unternehmen ab, und nach einem Tag des Brainstormings war der Name Small Computer Systems Interface (SCSI) geboren. Der „Vater“ von SCSI, Larry Boucher, wollte, dass das Akronym „sexy“ ausgesprochen wird, aber Dal Allan lesen Sie „sсuzzy“ („erzählen“). Anschließend wurde die Aussprache von „tell“ fest in diesem Standard verankert.

In der SCSI-Terminologie werden angeschlossene Geräte in zwei Typen unterteilt:

  • Initiatoren;
  • Zielgeräte.

Der Initiator sendet einen Befehl an das Zielgerät, das dann eine Antwort an den Initiator sendet. Die Initiatoren und Ziele sind an einen gemeinsamen SCSI-Bus angeschlossen, der im SCSI-1-Standard eine Bandbreite von 5 MB/s aufweist.

Die verwendete „Common Bus“-Topologie bringt eine Reihe von Einschränkungen mit sich:

  • an den Enden des Busses sind spezielle Geräte erforderlich – Abschlusswiderstände;
  • Die Busbandbreite wird von allen Geräten gemeinsam genutzt.
  • Die maximale Anzahl gleichzeitig angeschlossener Geräte ist begrenzt.

Einführung in SSD. Teil 2. Schnittstelle

Geräte am Bus werden durch eine eindeutige Nummer identifiziert SCSI-Ziel-ID. Jede SCSI-Einheit im System wird durch mindestens ein logisches Gerät repräsentiert, das über eine eindeutige Nummer innerhalb des physischen Geräts adressiert wird. Nummer der logischen Einheit (LUN).

Einführung in SSD. Teil 2. Schnittstelle
Befehle in SCSI werden im Formular gesendet Befehlsbeschreibungsblöcke (Command Descriptor Block, CDB), bestehend aus einem Operationscode und Befehlsparametern. Der Standard beschreibt mehr als 200 Befehle, unterteilt in vier Kategorien:

  • Verpflichtend — muss vom Gerät unterstützt werden;
  • Optional - kann implementiert werden;
  • Herstellerspezifisch - von einem bestimmten Hersteller verwendet;
  • Überholt - veraltete Befehle.

Von den vielen Befehlen sind nur drei für Geräte obligatorisch:

  • TESTGERÄT BEREIT — Überprüfung der Bereitschaft des Geräts;
  • SINN ANFORDERN – fordert den Fehlercode des vorherigen Befehls an;
  • ANFRAGE — Fordern Sie die Hauptmerkmale des Geräts an.

Nach Empfang und Verarbeitung des Befehls sendet das Zielgerät einen Statuscode an den Initiator, der das Ergebnis der Ausführung beschreibt.

Eine weitere Verbesserung von SCSI (SCSI-2- und Ultra-SCSI-Spezifikationen) erweiterte die Liste der verwendeten Befehle und erhöhte die Anzahl der angeschlossenen Geräte auf bis zu 16 sowie die Datenaustauschrate auf dem Bus auf bis zu 640 MB/s. Da es sich bei SCSI um eine parallele Schnittstelle handelt, war eine Erhöhung der Datenaustauschfrequenz mit einer Verringerung der maximalen Kabellänge verbunden und führte zu Unannehmlichkeiten bei der Verwendung.

Ab dem Ultra-3-SCSI-Standard gibt es Unterstützung für „Hot-Plugging“ – das Anschließen von Geräten bei eingeschaltetem Strom.

Die erste bekannte SCSI-SSD war die M-Systems FFD-350, die 1995 auf den Markt kam. Die CD war teuer und wurde nicht weit verbreitet.

Derzeit ist Parallel SCSI keine beliebte Festplattenschnittstelle, aber der Befehlssatz wird immer noch aktiv in USB- und SAS-Schnittstellen verwendet.

ATA/PATA

Einführung in SSD. Teil 2. Schnittstelle
Schnittstelle ATA (Advanced Technology Attachment), auch bekannt als PATA (Parallel ATA) wurde 1986 von Western Digital entwickelt. Der Marketingname für den IDE-Standard (dt. Integrated Drive Electronics – „in das Laufwerk eingebaute Elektronik“) betonte eine wichtige Neuerung: Der Antriebscontroller war in das Laufwerk integriert und nicht auf einer separaten Erweiterungsplatine.

Die Entscheidung, den Controller im Laufwerk zu platzieren, löste gleich mehrere Probleme. Erstens hat sich der Abstand vom Laufwerk zum Controller verringert, was sich positiv auf die Leistung des Laufwerks auswirkt. Zweitens wurde der eingebaute Controller nur für eine bestimmte Antriebsart „geschärft“ und war dementsprechend günstiger.

Einführung in SSD. Teil 2. Schnittstelle
ATA verwendet wie SCSI eine parallele I/O-Methode, die sich in den verwendeten Kabeln widerspiegelt. Für den Anschluss von Laufwerken über die IDE-Schnittstelle sind 40-adrige Kabel, auch Flachkabel genannt, erforderlich. Neuere Spezifikationen verwenden Stichleitungen mit 80 Drähten, von denen mehr als die Hälfte Erdschleifen sind, um Störungen bei hohen Frequenzen zu reduzieren.

Das ATA-Kabel verfügt über zwei bis vier Anschlüsse, von denen einer mit dem Motherboard und der Rest mit den Laufwerken verbunden ist. Beim Anschluss zweier Geräte in einer Schleife muss eines davon als konfiguriert sein Master, und der zweite als Sklave. Das dritte Gerät kann nur im Lesemodus angeschlossen werden.

Einführung in SSD. Teil 2. Schnittstelle
Die Position des Jumpers bestimmt die Rolle eines bestimmten Geräts. Die Begriffe Master und Slave in Bezug auf Geräte sind nicht ganz korrekt, da in Bezug auf die Steuerung alle angeschlossenen Geräte Slaves sind.

Eine besondere Neuerung bei ATA-3 ist das Erscheinungsbild Selbstüberwachung, Analyse- und Reporting-Technologie (SMART). Fünf Unternehmen (IBM, Seagate, Quantum, Conner und Western Digital) haben sich zusammengeschlossen und die Technologie zur Bewertung des Laufwerkszustands standardisiert.

Unterstützung für Solid-State-Laufwerke gibt es seit Version 1998 des Standards, die 33.3 veröffentlicht wurde. Diese Version des Standards ermöglichte Datenübertragungsraten von bis zu XNUMX MB/s.

Der Standard stellt strenge Anforderungen an ATA-Kabel:

  • die Wolke muss flach sein;
  • maximale Zuglänge 18 Zoll (45.7 Zentimeter).

Der kurze und breite Zug war unbequem und beeinträchtigte die Kühlung. Mit jeder weiteren Version des Standards wurde es immer schwieriger, die Übertragungsfrequenz zu erhöhen, und ATA-7 löste das Problem radikal: Die parallele Schnittstelle wurde durch eine serielle ersetzt. Danach erhielt ATA das Wort Parallel und wurde als PATA bekannt, und die siebte Version des Standards erhielt einen anderen Namen – Serial ATA. Die Nummerierung der SATA-Version begann bei eins.

SATA

Einführung in SSD. Teil 2. Schnittstelle
Der Serial ATA (SATA)-Standard wurde am 7. Januar 2003 eingeführt und behebt die Probleme seines Vorgängers mit folgenden Änderungen:

  • paralleler Port durch seriellen ersetzt;
  • breites 80-adriges Kabel durch 7-adriges ersetzt;
  • Die „Common Bus“-Topologie wurde durch eine „Point-to-Point“-Verbindung ersetzt.

Obwohl SATA 1.0 (SATA/150, 150 MB/s) geringfügig schneller war als ATA-6 (UltraDMA/130, 130 MB/s), war die Umstellung auf serielle Kommunikation „der Grundstein für Geschwindigkeiten“.

Sechzehn Signalleitungen für die Datenübertragung in ATA wurden durch zwei verdrillte Paare ersetzt: eine für die Übertragung, die zweite für den Empfang. SATA-Anschlüsse sind widerstandsfähiger gegen mehrfaches erneutes Anschließen, und die SATA 1.0-Spezifikation ermöglicht Hot-Plugging.

Einige Stifte an den Laufwerken sind kürzer als alle anderen. Dies geschieht zur Unterstützung von „Hot Swap“ (Hot Swap). Während des Austauschvorgangs „verliert“ und „findet“ das Gerät die Leitungen in einer vorgegebenen Reihenfolge.

Etwas mehr als ein Jahr später, im April 2004, wurde die zweite Version der SATA-Spezifikation veröffentlicht. Neben der Beschleunigung auf bis zu 3 Gbit/s führte die SATA 2.0-Technologie ein Native Befehlswarteschlange (NCQ). Geräte mit NCQ-Unterstützung sind in der Lage, die Ausführungsreihenfolge eingehender Befehle selbstständig zu organisieren, um maximale Leistung zu erzielen.

Einführung in SSD. Teil 2. Schnittstelle
In den nächsten drei Jahren arbeitete die SATA-Arbeitsgruppe an der Verbesserung der bestehenden Spezifikation und führte in Version 2.6 kompakte Slimline- und Micro-SATA-Anschlüsse (uSATA) ein. Diese Anschlüsse sind eine kleinere Version des ursprünglichen SATA-Anschlusses und wurden für optische Laufwerke und kleine Laufwerke in Laptops entwickelt.

Während SATA der zweiten Generation über genügend Bandbreite für Festplatten verfügte, erforderten SSDs mehr. Im Mai 2009 wurde die dritte Version der SATA-Spezifikation mit erhöhter Bandbreite auf 6 Gbit/s veröffentlicht.

Einführung in SSD. Teil 2. Schnittstelle
Besonderes Augenmerk wurde bei der SATA 3.1 Edition auf Solid State Drives gelegt. Es ist ein Mini-SATA-Anschluss (mSATA) erschienen, der für den Anschluss von Solid-State-Laufwerken in Laptops konzipiert ist. Im Gegensatz zu Slimline und uSATA sah der neue Anschluss wie ein PCIe Mini aus, obwohl er elektrisch nicht mit PCIe kompatibel war. Zusätzlich zum neuen Anschluss verfügte SATA 3.1 über die Möglichkeit, TRIM-Befehle mit Lese- und Schreibbefehlen in die Warteschlange zu stellen.

Der TRIM-Befehl benachrichtigt die SSD über Datenblöcke, die keine Nutzlast enthalten. Vor SATA 3.1 leerte dieser Befehl Caches und unterbrach E/A-Vorgänge, gefolgt von einem TRIM-Befehl. Dieser Ansatz beeinträchtigte die Festplattenleistung während Löschvorgängen.

Die SATA-Spezifikation konnte mit dem rasanten Wachstum der Zugriffsgeschwindigkeiten für SSDs nicht Schritt halten, was 2013 zu einem Kompromiss namens SATA Express im SATA 3.2-Standard führte. Statt die Bandbreite von SATA noch einmal zu verdoppeln, haben die Entwickler auf den weit verbreiteten PCIe-Bus zurückgegriffen, dessen Geschwindigkeit über 6 Gbit/s liegt. Laufwerke mit SATA Express-Unterstützung haben einen eigenen Formfaktor namens M.2 erhalten.

SAS

Einführung in SSD. Teil 2. Schnittstelle
Auch der mit ATA „konkurrierende“ SCSI-Standard stand nicht still und wurde nur ein Jahr nach dem Erscheinen von Serial ATA, im Jahr 2004, als serielle Schnittstelle wiedergeboren. Der Name der neuen Schnittstelle ist Seriell angeschlossenes SCSI (SAS).

Obwohl SAS den SCSI-Befehlssatz geerbt hat, waren die Änderungen erheblich:

  • serielle Schnittstelle;
  • 29-adriges Kabel mit Netzteil;
  • Punkt-zu-Punkt-Verbindung

Auch die SCSI-Terminologie wurde übernommen. Der Controller wird weiterhin als Initiator bezeichnet und die angeschlossenen Geräte werden als Ziel bezeichnet. Alle Zielgeräte und der Initiator bilden eine SAS-Domäne. Bei SAS hängt die Verbindungsbandbreite nicht von der Anzahl der Geräte in der Domäne ab, da jedes Gerät seinen eigenen dedizierten Kanal verwendet.

Die maximale Anzahl gleichzeitig verbundener Geräte in einer SAS-Domäne liegt laut Spezifikation bei über 16, und anstelle einer SCSI-ID wird eine Kennung zur Adressierung verwendet Weltweiter Name (WWN).

WWN ist eine eindeutige Kennung mit einer Länge von 16 Byte, ähnlich der MAC-Adresse für SAS-Geräte.

Einführung in SSD. Teil 2. Schnittstelle
Trotz der Ähnlichkeiten zwischen SAS- und SATA-Anschlüssen sind diese Standards nicht vollständig kompatibel. Allerdings kann ein SATA-Laufwerk an einen SAS-Anschluss angeschlossen werden, nicht jedoch umgekehrt. Die Kompatibilität zwischen SATA-Laufwerken und der SAS-Domäne wird mithilfe des SATA Tunneling Protocol (STP) sichergestellt.

Die erste Version des SAS-1-Standards hat eine Bandbreite von 3 Gbit/s, und die modernste Version, SAS-4, hat diesen Wert um das Siebenfache verbessert: 7 Gbit/s.

PCIe

Einführung in SSD. Teil 2. Schnittstelle
Peripheral Component Interconnect Express (PCI Express, PCIe) ist eine serielle Schnittstelle zur Datenübertragung, die im Jahr 2002 erschien. Die Entwicklung wurde von Intel begonnen und anschließend an eine spezielle Organisation übertragen – die PCI Special Interest Group.

Die serielle PCIe-Schnittstelle bildete da keine Ausnahme und wurde zur logischen Fortsetzung der parallelen PCI, die für den Anschluss von Erweiterungskarten konzipiert ist.

PCI Express unterscheidet sich erheblich von SATA und SAS. Die PCIe-Schnittstelle verfügt über eine variable Anzahl an Lanes. Die Anzahl der Zeilen entspricht Zweierpotenzen und liegt zwischen 1 und 16.

Der Begriff „Lane“ bezieht sich in PCIe nicht auf eine bestimmte Signalspur, sondern auf eine separate Vollduplex-Kommunikationsverbindung, die aus den folgenden Signalspuren besteht:

  • empfangen+ und empfangen-;
  • Übertragung+ und Übertragung-;
  • vier Erdungskabel.

Die Anzahl der PCIe-Lanes wirkt sich direkt auf die maximale Bandbreite der Verbindung aus. Mit dem aktuellen PCI Express 4.0-Standard können Sie 1.9 GB/s auf einer einzelnen Leitung und 31.5 GB/s bei Verwendung von 16 Leitungen erreichen.

Einführung in SSD. Teil 2. Schnittstelle
Der „Appetit“ auf Solid-State-Laufwerke nimmt sehr schnell zu. Sowohl SATA als auch SAS konnten ihre Bandbreite nicht erhöhen, um mit SSDs Schritt zu halten, was zur Einführung von SSDs mit PCIe-Anbindung geführt hat.

Obwohl PCIe-Erweiterungskarten verschraubt sind, ist PCIe Hot-Swap-fähig. Kurze Pins PRSNT (englisch present – ​​present) stellen sicher, dass die Karte vollständig im Steckplatz installiert ist.

Über PCIe angeschlossene Solid-State-Laufwerke unterliegen einem separaten Standard Spezifikation der Host-Controller-Schnittstelle für nichtflüchtigen Speicher und sind in verschiedenen Formfaktoren verkörpert, aber wir werden im nächsten Teil darüber sprechen.

Remote-Laufwerke

Bei der Erstellung großer Data Warehouses bestand ein Bedarf an Protokollen, die den Anschluss von Laufwerken ermöglichen, die sich außerhalb des Servers befinden. Die erste Lösung in diesem Bereich war Internet-SCSI (iSCSI), 1998 von IBM und Cisco entwickelt.

Die Idee hinter dem iSCSI-Protokoll ist einfach: SCSI-Befehle werden in TCP/IP-Pakete „verpackt“ und an das Netzwerk gesendet. Trotz der Remote-Verbindung wird den Clients die Illusion vermittelt, dass das Laufwerk lokal verbunden ist. Ein iSCSI-basiertes Storage Area Network (SAN) kann auf der vorhandenen Netzwerkinfrastruktur aufgebaut werden. Der Einsatz von iSCSI reduziert die Kosten für die Organisation eines SAN erheblich.

iSCSI hat eine „Premium“-Option – Fibre Channel-Protokoll (FCP). SAN mit FCP basiert auf dedizierten Glasfaser-Kommunikationsleitungen. Dieser Ansatz erfordert zusätzliche optische Netzwerkausrüstung, ist jedoch stabil und bietet einen hohen Durchsatz.

Es gibt viele Protokolle zum Senden von SCSI-Befehlen über Computernetzwerke. Es gibt jedoch nur einen Standard, der das gegenteilige Problem löst und es Ihnen ermöglicht, IP-Pakete über den SCSI-Bus zu senden – IP über SCSI.

Die meisten SAN-Protokolle verwenden den SCSI-Befehlssatz zum Verwalten von Laufwerken, es gibt jedoch Ausnahmen, wie z. B. das einfache ATA über Ethernet (AOE). Das AoE-Protokoll sendet ATA-Befehle in Ethernet-Paketen, aber die Laufwerke werden im System als SCSI angezeigt.

Mit dem Aufkommen von NVM-Express-Laufwerken erfüllen die Protokolle iSCSI und FCP nicht mehr die schnell wachsenden Anforderungen von SSDs. Es entstanden zwei Lösungen:

  • Entfernung des PCI-Express-Busses außerhalb des Servers;
  • Erstellung des NVMe over Fabrics-Protokolls.

Durch das Entfernen des PCIe-Busses entsteht komplexe Switching-Hardware, das Protokoll wird jedoch nicht verändert.

Das NVMe over Fabrics-Protokoll hat sich zu einer guten Alternative zu iSCSI und FCP entwickelt. NVMe-oF nutzt eine Glasfaserverbindung und den NVM Express-Befehlssatz.

DDR-T

Einführung in SSD. Teil 2. Schnittstelle
Die Standards iSCSI und NVMe-oF lösen das Problem, Remote-Laufwerke als lokale zu verbinden, während Intel den umgekehrten Weg ging und das lokale Laufwerk so nah wie möglich an den Prozessor brachte. Die Wahl fiel auf die DIMM-Slots, in die der RAM gesteckt wird. Die maximale DDR4-Bandbreite beträgt 25 GB/s und ist damit deutlich schneller als der PCIe-Bus. So entstand die Intel® Optane™ DC Persistent Memory SSD.

Es wurde ein Protokoll erfunden, um ein Laufwerk mit DIMM-Steckplätzen zu verbinden DDR-T, physisch und elektrisch kompatibel mit DDR4, erfordert jedoch einen speziellen Controller, der den Unterschied zwischen einem Speicherriegel und einem Laufwerk erkennt. Die Zugriffsgeschwindigkeit auf das Laufwerk ist geringer als auf RAM, aber höher als auf NVMe.

DDR-T ist nur mit Prozessoren der Intel® Cascade Lake-Generation oder höher verfügbar.

Abschluss

Fast alle Schnittstellen haben einen langen Weg von der seriellen zur parallelen Datenübertragung zurückgelegt. SSD-Geschwindigkeiten schießen in die Höhe, gestern waren SSDs eine Kuriosität und heute ist NVMe keine Überraschung mehr.

In unserem Labor Selectel Lab Sie können SSD- und NVMe-Laufwerke selbst testen.

An der Umfrage können nur registrierte Benutzer teilnehmen. Einloggenbitte.

Werden NVMe-Laufwerke in naher Zukunft klassische SSDs ersetzen?

  • 55.5%Ja100

  • 44.4%Nr. 80

180 Benutzer haben abgestimmt. 28 Benutzer enthielten sich der Stimme.

Source: habr.com

Kommentar hinzufügen