Ошибки чтения SSD коррекция ECC

Ошибки чтения SSD коррекция ECC

Технология памяти Flash-NAND неизбежно приводит к возникновению ошибок. Отдельные ячейки памяти изнашиваются и начинают неправильно считываться. Это не влияет на нормальную работу SSD, поскольку эти ошибки можно исправлять на постоянной основе с использованием соответствующих внутренних механизмов исправления. Для защиты данных от такого рода искажений используется код исправления ошибок ECC . При записи данных контроллер делит блок данных на несколько фрагментов и добавляет к каждому фрагменту избыточную информацию, что позволяет обнаруживать и исправлять возможные ошибки. Чем сильнее код ECC, тем больше таких ошибок он может исправить, а также может защитить больше секторов.

Защита кодами и проверка корректности данных при нормальной работе — задача контроллера диска, но при восстановлении данных из образов распаянных микросхем памяти, а во многих случаях изображений, считанных в технологическом режиме, необходимо выполнять эту процедуру вручную. Для этого необходимо установить параметры используемых кодов.

Форматы страниц памяти

Основной единицей чтения из флэш-памяти является страница. Обычно размер страницы соответствует 4, 8, 16 или даже 32 секторам для пользовательских данных и связанной с ними избыточной информации. Эта избыточная информация хранит коды коррекции ECC, маркеры блоков и другую служебную информацию. Обычно каждая страница делится на несколько диапазонов, содержащих как пользовательские данные, так и служебную информацию, в том числе, среди прочего. коды коррекции для защиты этого диапазона данных.

Каждая страница на одном диске имеет одинаковый формат. Для успешного восстановления данных с SSD необходимо определить, какие байты на странице содержат данные пользователя, а какие — служебную информацию.