ECC-Engine
NAND-Flashspeicher müssen dafür sorgen, dass die Integrität der Daten während der Übertragung vom Host-PC auf den NAND-Speicher erhalten bleibt. Dies erfolgt über den Flash-Controller. Daten, die vom Host auf die Karte übertragen werden, bevor sie letztendlich auf den NAND-Flashspeicher geschrieben werden, bezeichnet man auch oft als „Daten in Transit“. Flash-Controller verfügen über eine integrierte Technik zur Fehlerkorrektur (ECC genannt, was für Error Correction Code steht), mit der die große Mehrheit von Fehlern erkannt und korrigiert wird, die Daten auf dieser Route behindern können. Flashspeicherchips enthalten zusammen mit jedem geschriebenen Datenblock zusätzliche Fehlerkorrekturinformationen. Diese Informationen ermöglichen es dem Flash-Controller, Fehler gleichzeitig mit dem Lesen eines Datenblocks zu korrigieren. NAND-Flashspeicher stoßen im Normalbetrieb, genau wie Festplatten, auf Bit-Fehler, die sie mit ihren ECC-Daten während des Transfers korrigieren. Wenn ein NAND-Gerät in einem Datenblock eine übermäßig hohe Anzahl Fehler aufweist, wird dieser Block als fehlerhafter Block, „Bad Block“, gekennzeichnet, in den Ruhezustand versetzt und dann durch einen freien Block ersetzt. Während dieses Prozesses werden die Daten bei Bedarf mit ECC korrigiert. Die Verwendung von freien Blöcken verlängert die Nutzungsdauer und Langlebigkeit von SSDs.