Ein SSD-Controller, auch Prozessor genannt, umfasst die Elektronik, die die Flash-Speicherkomponenten mit den SSD-Eingabe-/Ausgabeschnittstellen verbindet. Der Controller ist ein eingebetteter Prozessor, der Software auf Firmware-Ebene ausführt. Die SSD-Firmware ist gerätespezifisch und kann in den meisten Fällen aktualisiert werden.
Ein SSD-Controller, auch Prozessor genannt, umfasst die Elektronik, die die Flash-Speicherkomponenten mit den SSD-Eingabe-/Ausgabeschnittstellen verbindet. Der Controller ist ein eingebetteter Prozessor, der Software auf Firmware-Ebene ausführt. Die SSD-Firmware ist gerätespezifisch und kann in den meisten Fällen aktualisiert werden.
Mainstream-SSD-Controller umfassen die folgenden elektrischen Elemente, die oft in einem einzigen integrierten Schaltkreis (IC) enthalten sind:
- Eingebetteter Prozessor – normalerweise ein 32-Bit-Mikrocontroller
- Elektrisch löschbares Daten-Firmware-ROM
- System-RAM
- Unterstützung für externen RAM – normalerweise DDR/DDR2 als SDRAM
- ECC-Schaltung (Error Correction Code).
- Flash-Komponentenschnittstelle – normalerweise eine Standardschnittstelle wie das Open NAND Flash Interface (ONFI)
- Elektrische Host-Schnittstelle – normalerweise SATA, USB, SAS oder eine Kombination davon
Obwohl die meisten SSD-Produkte auf dem Markt Standard-Flash-Komponenten verwenden, sind auch neue Flash-Komponenten verfügbar, die den ECC und in einigen Fällen die gesamte Controller-Funktion in die Flash-Chips selbst integrieren. In diesem Artikel konzentrieren wir uns auf die oben aufgeführten traditionellen Controller-Fraktionen.
Typische SSD-Controller-Elemente
In der folgenden Tabelle werden die einzelnen Elemente ausführlicher beschrieben.
Controller-Elemente
|
Beschreibung
|
Anwendungsbereich
|
Prozessor
|
16- oder 32-Bit-Embedded-Mikrocontroller, in den meisten Fällen in C programmiert und für die Ausführung auf der Ziel-CPU-Engine kompiliert.
|
Ausführung der Firmware für die Haupt-Flash-Anwendung sowie Diagnose (SMART), Wear Leveling (Garbage Collection/TRIM), Caching und Sicherheitsfunktionen.
|
Fehlerkorrektur (ECC)
|
Eine Hardwarefunktion, die jedem gespeicherten Byte Redundanzbits hinzufügt, um beim Auslesen Datenfehler zu erkennen und zu korrigieren.
|
Die Datenfehlererkennung und -korrektur erfolgt automatisch in der ECC-Hardware, um eine Datenzuverlässigkeitsfehlerrate in der Größenordnung von 1 Bit 10E-12 zu erreichen.
|
Blitzsteuerung
|
Enthält die Adressierung, den Datenbus und die Steuerung zur Verwaltung einer oder mehrerer Flash-Komponenten. Ein typischer SSD-Controller verwaltet bis zu 512 GB Flash.
|
Typischerweise die 8-Bit Open NAND Flash Interface (ONFI) für Standard-NAND-Flash.
Kann normalerweise bis zu 16 Flash-Komponenten steuern.
|
DRAM-Controller
|
Enthält die Adressierung, den Datenbus und die Steuerung zur Verwaltung einer oder mehrerer DRAM-Komponenten. Ein typischer SSD-Controller kann bis zu 256 MB DRAM verwalten.
|
Der DRAM wird hauptsächlich als Pufferspeicher verwendet, um den Datenfluss vom Flash-Array zur I/O-Schnittstelle anzupassen. Dieser Speicher kann auch als Datencache genutzt werden, um die Gesamtleistung zu verbessern. Dies erfordert eine Firmware-Programmierung
|
I/O-Schnittstelle (z. B. SATA)
|
Enthält die native elektrische Schnittstelle für einen bestimmten offenen Systemstandard wie SATA, USB oder SAS. Die Schnittstelle wird vom Controller-Firmware-Treiber gesteuert. Grundlegende Adressierung und Handshaking erfolgen in Hardware.
|
Einige Controller ermöglichen die Datenübertragung zwischen Schnittstellen wie USB und SATA, ohne dass der Controller in den Datenfluss eingreift.
|
Controller-Speicher
|
Besteht aus programmiertem Speicher (ROM) und Scratchpad/Puffer-RAM, die eng mit dem Prozessor verbunden sind. Dieser Speicher wird von der Steuerung zur Programmausführung und zum Speichern von Scratchpad-Werten verwendet. In einigen kostenbeschränkten Anwendungen fungiert der RAM als einziger Datenpuffer für die SSD.
|
Typischerweise sind es 32–64 KB ROM und 128–256 KB RAM.
|
Chip-Konfiguration
|
Legt Einstellungen für Typen und Geschwindigkeiten der verwendeten Speicherteile, Takteingänge, Diagnose-E/A und LED-Statusausgänge fest.
|
Variiert je nach Anbieter.
|
Allgemeine E / A.
|
Der Anwendung stehen allgemein programmierbare Pins zur Verfügung.
|
Normalerweise sind 4–16 Pins vorhanden.
|
Verpackung
|
|
281-Pin-BGA ist üblich
208-Pin-LQFP ist üblich
|
Häufig verwendete SSD-Controller
Zu den gängigen SSD-Controllern auf dem Markt (Stand Anfang 2010) gehören:
- Indilinx „Barefoot ECO“ IDX110MO1
- Indilinx „Barfuß“ IDX110M00
- Intel PC29AS21BA0
- JMicron JMF602
- JMicron JMF612
- Marvel 88SS9174-BJP2
- Samsung S3C29RBB01-YK40
- SandForce SF-1200
- SandForce SF-1500
- Toshiba T6UG1XBG
Systementwickler gehen bei der Auswahl eines Lieferanten und eines bestimmten Controllers für ihr Zielprodukt und ihre Zielmärkte eine Reihe von Kompromissen ein.
Zu den Kompromissen gehören:
- Programmatisch – Kosten, Zeitplan, Support, Garantie und Verfügbarkeit.
- Technisch – Leistung, Leistung, Paketoptionen, Funktionen, Skalierbarkeit und Flexibilität.
- Sonstiges – Gemeinsamkeit, Kompatibilität, Dokumentation, Entwicklungsunterstützung, Tests und Reputation.
Im Prozess der Controller-Auswahl führt der Systemdesigner auch die gleiche Analyse für die Flash-Teile und andere im Design benötigte Teile durch. Es handelt sich um einen iterativen Prozess, um die richtige Kombination von Lieferanten und Komponenten zu finden, um die Anforderungen für das jeweilige Produkt bestmöglich zu erfüllen.
Aufgrund proprietärer Bedenken sind nicht alle Controller-Designdaten über das Internet für die breite Öffentlichkeit verfügbar. Es gibt jedoch eine beträchtliche Menge an Anwendungsdetails, die für jeden der SSD-Controller auf dem Markt gelernt werden können, indem man ihre Verwendung in vorhandenen SSDs untersucht.
Rezensionen auf StorageReview.com und anderswo helfen dabei, die Vorteile jedes Controllers und seine Auswirkungen auf die SSD zu erkennen. Diese Kontextreferenzen sind wichtig, denn so wichtig der Controller für die Leistung einer SSD ist, kann die Leistung von SSDs zwischen zwei verschiedenen Anbietern variieren, auch wenn sie genau dieselbe SSD-Controller-Komponente verwenden.
Im Allgemeinen ist dieser Leistungsunterschied darauf zurückzuführen, dass die beiden Designs unterschiedliche Flash-Teile, eine unterschiedliche Anzahl von Flash-Teilen, eine unterschiedliche Menge an Cache-Pufferspeicher oder möglicherweise auf irgendeine Weise optimierte Firmware verwendeten. Der Punkt ist, dass der SDD-Controller nur ein Teil des gesamten SSD-Systemdesigns ist und obwohl er für die Leistung von entscheidender Bedeutung ist, ist er nicht der einzige Faktor, der bei einer SSD-Kaufentscheidung berücksichtigt werden muss.
Verwandte Anleitungen:
Gehe zurück zum SSD-Anleitung