
Im
letzten Teil der Einführung in die SSD-Serie haben wir uns mit der Entstehungsgeschichte von Festplatten befasst. Im zweiten Teil werden die Schnittstellen der Interaktion mit Laufwerken beschrieben.
Die Kommunikation zwischen Prozessor und Peripheriegeräten erfolgt gemäß vordefinierter Konventionen, die als Schnittstellen bezeichnet werden. Diese Vereinbarungen regeln die physische und die Software-Ebene der Interaktion.
Schnittstelle - eine Reihe von Werkzeugen, Methoden und Regeln für die Interaktion zwischen Elementen des Systems.
Die physische Implementierung der Schnittstelle wirkt sich auf die folgenden Parameter aus:
- Bandbreite des Kommunikationskanals;
- maximale Anzahl gleichzeitig angeschlossener Geräte;
- die Anzahl der aufgetretenen Fehler.
Festplattenschnittstellen werden an
E / A-Ports erstellt . Dies ist das Gegenteil von
E / A über den Speicher und belegt keinen Platz im Adressraum des Prozessors.
Parallele und serielle Ports
Nach der Methode des Datenaustauschs werden Eingabe-Ausgabe-Ports in zwei Typen unterteilt:
- parallel;
- aufeinanderfolgend.
Wie der Name schon sagt, sendet die parallele Schnittstelle ein Maschinenwort, das aus mehreren Bits gleichzeitig besteht. Ein paralleler Anschluss ist der einfachste Weg, Daten auszutauschen, da keine komplexen Schaltungslösungen erforderlich sind. Im einfachsten Fall wird jedes Bit eines Maschinenworts auf einer eigenen Signalleitung gesendet, und zwei Dienstsignalleitungen werden zur Rückmeldung verwendet:
Daten sind bereit und
Daten werden empfangen .
Parallele Ports lassen sich auf den ersten Blick perfekt skalieren: mehr Signalleitungen - mehr Bits werden gleichzeitig übertragen und damit ein höherer Durchsatz. Aufgrund einer Zunahme der Anzahl von Signalleitungen kommt es dennoch zu Interferenzinteraktionen zwischen ihnen, die zu einer Verzerrung der übertragenen Nachrichten führen.
Serielle Ports sind das Gegenteil von parallel. Die Daten werden bitweise gesendet, wodurch sich die Gesamtzahl der Signalleitungen verringert, der E / A-Controller jedoch kompliziert wird. Die Sendersteuerung empfängt jeweils das Maschinenwort und muss jeweils ein Bit senden, und die Empfängersteuerung muss wiederum Bits empfangen und in derselben Reihenfolge speichern.
Eine kleine Anzahl von Signalleitungen ermöglicht es, die Frequenz der Nachrichtenübertragung ohne Störung zu erhöhen.
SCSI
Small Computer Systems Interface (SCSI) wurde 1978 eingeführt und ursprünglich entwickelt, um Geräte mit verschiedenen Profilen in ein einziges System zu integrieren. Die SCSI-1-Spezifikation sah den Anschluss von bis zu 8 Geräten (zusammen mit dem Controller) vor, z.
- Scanner
- Bandlaufwerke (Streamer);
- optische Laufwerke;
- Festplatten und andere Geräte.
SCSI hieß ursprünglich Shugart Associates System Interface (SASI), aber das Standardisierungskomitee hätte den Namen des Unternehmens nicht gebilligt, und nach einem Tag des Brainstormings erschien der Name Small Computer Systems Interface (SCSI). Der "Vater" von SCSI, Larry Boucher, implizierte, dass die Abkürzung "sexy" ausgesprochen würde, aber Dal Allan las "ssuzzy". Anschließend ist die Aussprache von "Erzählungen" fest in dieser Norm verankert.
In der SCSI-Terminologie werden verbundene Geräte in zwei Typen unterteilt:
Der Initiator sendet einen Befehl an das Zielgerät, das dann eine Antwort an den Initiator sendet. Die Initiatoren und Zielgeräte sind an einen gemeinsamen SCSI-Bus angeschlossen, dessen Durchsatz im SCSI-1-Standard 5 MB / s beträgt.
Die verwendete allgemeine Bustopologie weist eine Reihe von Einschränkungen auf:
- an den Busenden werden spezielle Geräte benötigt - Abschlusswiderstände;
- Die Busbandbreite wird von allen Geräten gemeinsam genutzt.
- Die maximale Anzahl gleichzeitig angeschlossener Geräte ist begrenzt.
Geräte am Bus werden durch eine eindeutige Nummer identifiziert, die als
SCSI-Ziel-ID bezeichnet wird . Jede SCSI-Einheit im System wird durch mindestens ein logisches Gerät dargestellt, dessen Adressierung anhand einer eindeutigen LUN (Logical Unit Number) innerhalb des physischen Geräts erfolgt.
Befehle in SCSI werden als Command Descriptor
Blocks (CDBs) gesendet, die aus dem Operationscode und den Befehlsparametern bestehen. Der Standard beschreibt mehr als 200 Teams, die in vier Kategorien unterteilt sind:
- Obligatorisch - muss vom Gerät unterstützt werden;
- Optional - kann implementiert werden;
- Herstellerspezifisch - Wird von einem bestimmten Hersteller verwendet.
- Veraltet - Veraltete Befehle.
Von den vielen Teams sind nur drei für Geräte obligatorisch:
- TEST UNIT READY - Gerätebereitschaftsprüfung;
- REQUEST SENSE - fordert den Fehlercode des vorherigen Befehls an;
- ANFRAGE - Fordern Sie die wichtigsten Merkmale des Geräts an.
Nach dem Empfang und der Verarbeitung des Befehls sendet das Zielgerät dem Initiator einen Statuscode, 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 16 sowie die Datenaustauschgeschwindigkeit auf dem Bus auf 640 MB / s. Da SCSI eine parallele Schnittstelle ist, war eine Zunahme der Datenaustauschfrequenz mit einer Abnahme der maximalen Kabellänge verbunden und führte zu Unannehmlichkeiten bei der Verwendung.
Beginnend mit dem Ultra-3-SCSI-Standard wurde die Unterstützung für "Hot-Plug" angezeigt - das Anschließen von Geräten bei eingeschaltetem Gerät.
Die erste bekannte SCSI-SSD ist die 1995 erschienene M-Systems FFD-350. Die Platte war teuer und nicht weit verbreitet.
Paralleles SCSI ist derzeit keine beliebte Schnittstelle zum Laden von Festplatten, aber der Befehlssatz wird in USB- und SAS-Schnittstellen nach wie vor häufig verwendet.
ATA / PATA
Die
ATA- Schnittstelle (Advanced Technology Attachment), auch als
PATA (Parallel ATA) bekannt, wurde 1986 von Western Digital entwickelt. Der Markenname des IDE-Standards (Integrated Drive Electronics - „im Laufwerk integrierte Elektronik“) betonte eine wichtige Neuerung: Der Laufwerkscontroller wurde nicht auf einer separaten Erweiterungskarte, sondern im Laufwerk eingebaut.
Die Entscheidung, die Steuerung im Laufwerk zu platzieren, löste mehrere Probleme gleichzeitig. Erstens verringerte sich der Abstand vom Laufwerk zum Controller, was sich positiv auf die Eigenschaften des Laufwerks auswirkte. Zweitens wurde der eingebaute Controller nur für einen bestimmten Laufwerkstyp "geschärft" und war dementsprechend billiger.
ATA verwendet wie SCSI eine parallele E / A-Methode, die sich auf die verwendeten Kabel auswirkt. Um Festplatten über die IDE-Schnittstelle anzuschließen, sind 40-adrige Kabel erforderlich, die auch als Schleifen bezeichnet werden. Spätere Spezifikationen verwenden 80-Kern-Schleifen, von denen mehr als die Hälfte geerdet sind, um Störungen bei hohen Frequenzen zu reduzieren.
Am ATA-Kabel befinden sich zwei bis vier Anschlüsse, von denen einer mit dem Motherboard und der Rest mit den Laufwerken verbunden ist. Wenn Sie zwei Geräte mit einer Schleife verbinden, muss eines als
Master und das andere als
Slave konfiguriert sein. Das dritte Gerät kann nur im schreibgeschützten Modus angeschlossen werden.
Die Jumperposition definiert die Rolle eines bestimmten Geräts. Die Begriffe Master und Slave in Bezug auf Geräte stimmen nicht ganz, da in Bezug auf die Steuerung alle angeschlossenen Geräte Slaves sind.
Eine besondere Innovation in ATA-3 ist die Einführung der
Selbstüberwachungs- ,
Analyse- und Berichterstellungstechnologie (SMART) . Fünf Unternehmen (IBM, Seagate, Quantum, Conner und Western Digital) haben sich zusammengeschlossen, um die Technologie zur Bewertung des Laufwerkszustands zu standardisieren.
Die Unterstützung für Solid-State-Laufwerke erfolgte mit der 1998 veröffentlichten vierten Version des Standards. Diese Version des Standards bot Datenaustauschraten von bis zu 33,3 MB / s.
Der Standard enthält strenge Anforderungen für ATA-Schleifen:
- die Schleife muss flach sein;
- Maximale Schlaufenlänge 45,7 cm.
Die kurze und breite Schleife war unangenehm und störte die Kühlung. Es wurde immer schwieriger, die Übertragungsfrequenz mit jeder neuen Version des Standards zu erhöhen, und ATA-7 löste das Problem radikal: Die parallele Schnittstelle wurde durch die 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 SATA-Versionierung begann mit einer.
SATA
Der Serial ATA (SATA) -Standard wurde am 7. Januar 2003 eingeführt und löste die Probleme seines Vorgängers durch die folgenden Änderungen:
- Die parallele Schnittstelle wird durch eine serielle ersetzt.
- breite 80-Kern-Schleife ersetzt durch 7-Kern;
- Die gemeinsame Bustopologie wurde durch eine Punkt-zu-Punkt-Verbindung ersetzt.
Trotz der Tatsache, dass der SATA 1.0-Standard (SATA / 150, 150 MB / s) etwas schneller war als der ATA-6 (UltraDMA / 130, 130 MB / s), bereitete der Übergang zu einer sequentiellen Methode des Datenaustauschs „den Boden auf die Zunahme vor“ Geschwindigkeiten.
Sechzehn Signalleitungen für die Datenübertragung im ATA wurden durch zwei verdrillte Paare ersetzt: eine für die Übertragung und eine für den Empfang. SATA-Anschlüsse sind widerstandsfähiger gegenüber mehrfachen Wiederverbindungen, und die SATA 1.0-Spezifikation ermöglicht Hot-Plug.
Einige Stifte der Laufwerke sind kürzer als alle anderen. Dies geschieht, um Hot Swap zu unterstützen. Während des Austauschvorgangs "verliert" das Gerät die Leitungen und "findet" sie in einer vorgegebenen Reihenfolge.
Etwas mehr als ein Jahr später, im April 2004, wurde die zweite Version der SATA-Spezifikation veröffentlicht. Neben einer Geschwindigkeit von bis zu 3 Gbit / s führte SATA 2.0 die NCQ-Technologie (
Native Command Queuing ) ein. Geräte mit NCQ-Unterstützung können die Ausführungsreihenfolge der empfangenen Befehle unabhängig voneinander organisieren, um eine maximale Leistung zu erzielen.
In den nächsten drei Jahren arbeitete die SATA-Arbeitsgruppe an der Verbesserung der vorhandenen Spezifikation, und in Version 2.6 wurden Slimline- und Micro-SATA-Kompaktsteckverbinder (uSATA) veröffentlicht. Diese Anschlüsse sind eine kleine Kopie des ursprünglichen SATA-Anschlusses und wurden für optische Laufwerke und kleine Festplatten in Laptops entwickelt.
Trotz der Tatsache, dass die Bandbreite der zweiten Generation von SATA für Festplatten ausreichend war, erforderten SSDs mehr. Im Mai 2009 wurde die dritte Version der SATA-Spezifikation mit einer erhöhten Bandbreite von bis zu 6 Gbit / s veröffentlicht.
Besonderes Augenmerk wurde auf SSDs in der SATA 3.1 Edition gelegt. Ein Mini-SATA-Anschluss (mSATA) wurde zum Anschließen von Solid-State-Laufwerken an Laptops hinzugefügt. 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 Connector konnte SATA 3.1 TRIM-Befehle mit Lese- und Schreibbefehlen in die Warteschlange stellen.
Der Befehl TRIM benachrichtigt die SSD über Datenblöcke, die keine Nutzdaten enthalten. Vor SATA 3.1 führte die Ausführung dieses Befehls zum Leeren von Caches und Unterbrechen von E / A-Vorgängen, gefolgt von der Ausführung des Befehls TRIM. Dieser Ansatz hat die Datenträgerleistung während Löschvorgängen beeinträchtigt.
Die SATA-Spezifikation konnte mit der rapiden Zunahme der Zugriffsgeschwindigkeit auf Solid-State-Laufwerke nicht Schritt halten, was 2013 zum Erscheinen eines Kompromisses mit dem Namen SATA Express im SATA 3.2-Standard führte. Anstatt die SATA-Bandbreite erneut zu verdoppeln, verwendeten die Entwickler den weit verbreiteten PCIe-Bus, dessen Geschwindigkeit 6 Gbit / s überschreitet. SATA Express-fähige Laufwerke haben einen eigenen Formfaktor namens M.2 erhalten.
SAS
Der konkurrierende SCSI-Standard mit ATA blieb ebenfalls nicht stehen und entwickelte sich bereits ein Jahr nach dem Erscheinen von Serial ATA im Jahr 2004 zu einer seriellen Schnittstelle. Der Name der neuen Schnittstelle lautet
Serial Attached SCSI (SAS).
Obwohl SAS den SCSI-Befehlssatz geerbt hat, waren die Änderungen erheblich:
- serielle Schnittstelle
- 29-adriges Netzkabel;
- Punkt-zu-Punkt-Verbindung
Die SCSI-Terminologie wurde ebenfalls vererbt. Die Steuerung wird weiterhin als Initiator bezeichnet, und die angeschlossenen Geräte sind das Ziel. Alle Zielgeräte und der Initiator bilden die SAS-Domäne. In 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.
Gemäß der Spezifikation überschreitet die maximale Anzahl gleichzeitig verbundener Geräte in der SAS-Domäne 16.000, und anstelle der SCSI-ID wird die WWN-ID (
World-Wide Name ) zur Adressierung verwendet.
WWN ist eine eindeutige Kennung mit einer Länge von 16 Byte, die der MAC-Adresse für SAS-Geräte entspricht.
Trotz der Ähnlichkeiten zwischen den SAS- und SATA-Anschlüssen sind diese Standards nicht vollständig kompatibel. Ein SATA-Laufwerk kann jedoch an den SAS-Anschluss angeschlossen werden, nicht jedoch umgekehrt. Die Kompatibilität zwischen SATA-Festplatten und der SAS-Domäne wird über das SATA-Tunneling-Protokoll (STP) bereitgestellt.
Die erste Version des SAS-1-Standards hat eine Bandbreite von 3 Gbit / s, und die modernste Version, SAS-4, hat diese Zahl um das Siebenfache verbessert: 22,5 Gbit / s.
PCIe
Peripheral Component Interconnect Express (PCI Express, PCIe) - eine im Jahr 2002 erschienene serielle Schnittstelle für die Datenübertragung. Die Entwicklung wurde von Intel gestartet und anschließend an eine spezielle Organisation - die PCI Special Interest Group - übertragen.
Die serielle PCIe-Schnittstelle war keine Ausnahme und wurde zu einer logischen Fortsetzung der parallelen PCI, die für den Anschluss von Erweiterungskarten ausgelegt ist.
PCI Express unterscheidet sich erheblich von SATA und SAS. Die PCIe-Schnittstelle verfügt über eine variable Anzahl von Leitungen. Die Anzahl der Zeilen entspricht den Zweierpotenzen und reicht von 1 bis 16.
Der Begriff "Leitung" in PCIe bedeutet keine bestimmte Signalleitung, sondern einen separaten Vollduplex-Kommunikationskanal, der aus den folgenden Signalleitungen besteht:
- empfang + und empfang-;
- Übertragung + und Übertragung-;
- vier Erdleiter.
Die Anzahl der PCIe-Leitungen wirkt sich direkt auf die maximale Bandbreite der Verbindung aus. Mit dem modernen PCI Express 4.0-Standard können Sie 1,9 GB / s auf einer einzelnen Leitung und 31,5 GB / s auf 16 Leitungen erreichen.
Der „Appetit“ von SSDs wächst sehr schnell. Sowohl SATA als auch SAS haben keine Zeit, ihre Bandbreite zu erhöhen, um mit SSDs Schritt zu halten, was zur Entstehung von SSDs mit PCIe-Verbindung führte.
Obwohl PCIe-Zusatzkarten eingeschraubt sind, unterstützt PCIe Hot-Swapping. Mit kurzen PRSNT-Pins (vorhanden - vorhanden) können Sie sicherstellen, dass die Karte vollständig in den Steckplatz eingesetzt ist.
Über PCIe angeschlossene SSDs werden von einem separaten Standard für die
Schnittstellen-Spezifikation des Host-Controllers für nichtflüchtige Speicher geregelt und sind in vielen Formfaktoren enthalten. Im nächsten Teil werden wir jedoch darauf eingehen.
Remote-Laufwerke
Beim Erstellen großer Data Warehouses wurden Protokolle benötigt, mit denen Sie Laufwerke außerhalb des Servers verbinden können. Die erste Lösung in diesem Bereich war
Internet SCSI (iSCSI), das 1998 von IBM und Cisco entwickelt wurde.
Die Idee von iSCSI ist einfach: SCSI-Befehle werden in TCP / IP-Pakete eingeschlossen und an das Netzwerk gesendet. Trotz der Remoteverbindung entsteht für Clients die Illusion, dass das Laufwerk lokal verbunden ist. Ein iSCSI-basiertes SAN (Storage Area Network) kann auf einer vorhandenen Netzwerkinfrastruktur aufgebaut werden. Durch die Verwendung von iSCSI werden die Kosten für die Organisation eines SAN erheblich gesenkt.
ISCSI verfügt über eine Premium-Option -
Fibre Channel Protocol (FCP). SAN mit FCP basiert auf dedizierten Glasfaserverbindungen. Dieser Ansatz erfordert zusätzliche optische Netzwerkausrüstung, unterscheidet sich jedoch in der Stabilität und im 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 das Senden von IP-Paketen auf dem SCSI-Bus ermöglicht: IP-over-SCSI .
Die meisten SAN-Protokolle verwenden den SCSI-Befehlssatz zum Verwalten von Laufwerken, es gibt jedoch Ausnahmen, z. B. einfaches
ATA über Ethernet (AoE). Das AoE-Protokoll sendet ATA-Befehle in Ethernet-Paketen, die Laufwerke werden jedoch im System als SCSI angezeigt.
Mit der Einführung von NVM Express-Laufwerken erfüllen iSCSI und FCP nicht mehr die schnell wachsenden Anforderungen von SSDs. Zwei Lösungen erschienen:
- Entfernen des PCI Express-Busses außerhalb des Servers;
- Erstellung des NVMe over Fabrics-Protokolls.
Das Entfernen des PCIe-Busses ist mit der Erstellung komplexer Vermittlungseinrichtungen verbunden, führt jedoch keine Änderungen am Protokoll durch.
NVMe over Fabrics ist eine gute Alternative zu iSCSI und FCP geworden. NVMe-oF verwendet Glasfaserverbindungen und den NVM Express-Befehlssatz.
DDR-T
Die Standards iSCSI und NVMe-oF lösen das Problem, Remote-Laufwerke als lokale Laufwerke anzuschließen, während Intel den umgekehrten Weg einschlug und das lokale Laufwerk so nah wie möglich an den Prozessor heranführte. Die Wahl fiel auf die DIMM-Steckplätze, in denen RAM angeschlossen ist. Die maximale Bandbreite des DDR4-Kanals beträgt 25 GB / s, was die Geschwindigkeit des PCIe-Busses deutlich übersteigt. So entstand die Intel® Optane ™ DC-SSD für persistenten Speicher.
Um das Laufwerk mit den DIMM-Steckplätzen zu verbinden, wurde das
DDR-T- Protokoll entwickelt, das physikalisch und elektrisch mit DDR4 kompatibel ist, jedoch einen speziellen Controller erfordert, der den Unterschied zwischen der Speicherleiste und dem Laufwerk erkennt. Die Zugriffsgeschwindigkeit auf das Laufwerk ist geringer als auf RAM, aber höher als auf NVMe.
DDR-T ist nur mit Intel® Cascade Lake oder neueren Prozessoren verfügbar.
Fazit
Fast alle Schnittstellen haben einen langen Weg von der seriellen zur parallelen Datenübertragung zurückgelegt. Die Geschwindigkeit von SSDs nimmt rasant zu: SSDs waren gestern eine Neuheit, aber heute ist NVMe keine Überraschung mehr.
In unserem Selectel Lab können Sie SSDs und NVMe-Laufwerke selbst testen.