Вредоносное ПО (malware) - это назойливые или опасные программы,...
![Лучшие утилиты для удаления вирусов и вредоносных программ](https://i2.wp.com/webhelper.info/images/danger.jpg)
2017-05-25
Дата последнего изменения:
2018-10-10
В статье рассматриваются: Особенности применения микросхем NAND FLASH , методы разметки страниц и управления плохими блоками. Рекомендации по программированию на программаторах.
Если не вникать в тонкости технологий, то отличие микросхем NAND от других микросхем памяти заключается в следующем:
Есть еще несколько отличий, но первые две особенности являются ключевыми. Больше всего проблем доставляет наличие плохих блоков .
Более подробно об организации и структуре микросхем NAND можно прочитать в специальной литературе, мы же отметим, что:
По замыслу разработчиков NAND в основной области должны находятся сами данные , а в запасной (резервной) области - маркеры плохих блоков , контрольные суммы основной области, прочая служебная информация .
Если говорят о размере страницы микросхемы NAND 512 байт или 2К байт, то речь идет о размере основной области страницы, без учета запасной .
Еще раз напомним, что по замыслу разработчиков NAND микросхем в запасной области должны находится: маркеры плохих блоков , контрольные суммы основной области данных, прочая служебная информация.
Большинство разработчиков описывает только место расположения маркеров плохих блоков в поставляемых микросхемах. По остальным аспектам использования запасной области даются общие рекомендации и алгоритм вычисления ЕСС, обычно по Хэмингу. Samsung идут несколько дальше, разработав рекомендации с названием "Запасная область флэш-памяти NAND. Стандарт назначения " ("NAND Flash Spare Area. Assignment Standard", 27. April. 2005, Memory Division, Samsung Electronics Co., Ltd).
Итак, этот стандарт предполагает следующее использование запасной области:
Для микросхем с размером страницы 2048+64 бай т основная и запасная область страницы разбивается на 4 фрагмента (сектора) каждая:
Область | Размер (байт) | Фрагмент |
---|---|---|
Основная | 512 | Сектор 1 |
512 | Сектор 2 | |
512 | Сектор 3 | |
512 | Сектор 4 | |
Запасная | 16 | Сектор 1 |
16 | Сектор 2 | |
16 | Сектор 3 | |
16 | Сектор 4 |
Каждому фрагменту их основной области ставится в соответствие фрагмент запасной области .
Смещение (байт) | Размер (байт) | Назначение | Описание |
---|---|---|---|
Маркер плохого блока | |||
Зарезервировано | |||
Логический номер сектора | |||
Зарезервировано для номера сектора | |||
Зарезервировано | |||
ECC код для основной области страницы | |||
ECC код для логического номера сектора | |||
Зарезервировано |
Но это не единственный "стандарт" для распределения памяти страниц, только нам известны их несколько десятков, например:
Вы можете столкнуться с двумя вариантами образа для записи :
Те специалисты, которые занимаются ремонтом различной аппаратуры, чаще сталкиваются со вторым случаем. В таком случае часто бывает затруднительно определить использованный способ распределения запасной области и метод управления плохими блоками.
Единственное что более или менее стандартизовано, так это заводская маркировка плохих блоков .
Есть одна проблема: плохой блок можно стереть . Таким способом можно потерять информацию о плохих блоках микросхемы.
Однако, если микросхема уже работала в устройстве, далеко не всегда используется такая методика маркировки плохих блоков. Иногда даже информация о плохих блоках не хранится в памяти NAND. Но, чаще всего, если даже разработчик программного обеспечения устройства использует иную схему управления плохими блоками, заводскую разметку предпочитает не стирать.
Разработчики NAND микросхем предлагают использовать следующие схемы управления плохими блоками:
Также к методам управления плохими блоками иногда относят использование коррекции ошибок (ECC). Необходимо отметить, что использование коррекции одиночных ошибок не избавляет от множественных ошибок и все равно вынуждает использовать одну из приведенных выше схем. Кроме этого, большинство NAND микросхем имеют гарантировано бессбойную область, в которой не появляются плохие блоки. Бессбойная область, как правило, располагается в начале микросхемы.
Указанные методы управления плохими блоками хорошо описаны в технической документации производителей NAND и широко обсуждены в литературе по использованию NAND . Однако коротко напомним их суть:
Пропуск плохих блоков:
Если текущий блок оказался сбойным он пропускается и информация пишется в следующий свободный блок. Эта схема универсальна, проста в реализации, однако несколько проблематична для случаев, когда плохие блоки появляются в процессе эксплуатации. Для полноценной работы этой схемы логический номер блока должен хранится внутри блока (стандарт назначения запасной области от Самсунг, собственно это и предполагает). При работе по этой схеме контроллер должен где-то хранить таблицу соответствия логических номеров блоков их физическим номерам иначе доступ к памяти будет сильно замедлен.
Поэтому логическим развитием является схема использования запасной области
:
По этому методу весь объем памяти разбивается на две части: основная и резервная. При появлении сбойного блока в основной памяти он заменяется блоком из запасной памяти, а в таблице переназначения блоков делается соответствующая запись. Таблица переназначения хранится или в гарантировано бессбойном блоке или в нескольких экземплярах. Формат таблицы разный, хранится она в разных местах. Опять таки Самсунг описывает стандарт на формат и расположение таблицы, но ему мало кто следует.
Программатор ChipStar позволяет быстро сканировать микросхему NAND на наличие плохих блоков в соответствии с заводской маркировкой плохих блоков.
Выберите пункт меню "Микросхема|Искать плохие блоки ", микросхема будет проверена на наличие плохих блоков. Результат показан в виде таблицы.
Это действие необходимо выполнить только в том случае, если вы хотите просто просмотреть список плохих блоков. Во всех остальных случаях поиск плохих блоков выполняется автоматически, когда это необходимо.
При считывании образа микросхемы NAND программатор дополнительно сохраняет информацию о размере страницы и блока микросхемы. Информация сохраняется в отдельном файле. Так если вы считали и сохранили образ микросхемы в файле <имя_файла>.nbin программа создаст еще один файл: <имя_файла>.cfs . При открытии файла <имя_файла>.nbin файл <имя_файла>.cfs так же будет считан. В файле <имя_файла>.cfs записывается информация о размере страницы и блока микросхемы. После считывания микросхемы или открытия файла типа .nbin , производится фоновое сканирование образа на наличие плохих блоков исходя из информации о размере страницы и блока.
Параметры NAND и информацию о плохих блоках можно посмотреть в закладке "NAND " редактора программатора:
Двоичный образ NAND можно просматривать в закладке "Основная память ":
В режиме редактора NAND запасная область страницы выделяется более тусклым цветом , так же становятся доступны кнопки перемещения по страницам, блокам и быстрого перехода в начало запасной области текущей страницы. В строке статуса редактора кроме адреса курсора дополнительно отображается номер страницы и номер блока в которых находится курсор. Все это позволяет более удобно просмотреть содержимое микросхемы.
По умолчанию программатор не стирает плохие блоки, но если отключить опцию "Проверка и пропуск плохих блоков " плохие блоки могут быть стерты и разметка плохих блоков может быть потеряна. Отключать эту опцию нужно только в случае необходимости.
Пропускаются только плохие блоки помеченные в соответствии с заводской маркировкой. Если в устройстве используется иная маркировка плохих блоков, то они будут стерты, поскольку программное обеспечение программатора их не увидит. Для работы с нестандартными разметками плохих блоков программатор может использовать внешние плагины.
По умолчанию программатор игнорирует все плохие блоки при проверке, но если отключить опцию "Сканирование и пропуск плохих блоков " плохие блоки будут проверены что, естественно, приведет к ошибкам тестирования.
Запись образа NAND в микросхему несколько отличается от обычных FLASH микросхем. Прежде всего должны совпадать размеры страниц образа и целевой микросхемы. Если используется управление плохими блоками должны совпадать размеры блоков образа и микросхемы.
Программное обеспечение всех программаторов ChipStar поддерживает три метода управления плохими блоками встроенными средствами и неограниченное количество с помощью плагинов. Кроме того, можно задать количество записываемых блоков в начале микросхемы, что фактически является четвертым способом управления плохими блоками.
Простое копирование с игнорированием плохих блоков (плохие блоки пишутся так же, как нормальные).
Исходный образ | Микросхема (исходное состояние) |
Микросхема (результат) |
||
---|---|---|---|---|
Блок 0 хороший |
Блок чистый |
Блок 0 хороший |
||
Блок 1 плохой |
Блок чистый |
Блок 1 ложный |
||
Блок 2 хороший |
Блок чистый |
Блок 2 хороший |
||
Блок 3 хороший |
Блок плохой |
Блок 3 сбойный |
||
Блок 4 хороший |
Блок чистый |
Блок 4 хороший |
||
Граница записи | ||||
Блок 5 хороший |
Блок чистый |
Блок чистый |
Наиболее хорошо подходит для копирования микросхем NAND , не вникая в ее внутреннюю структуру, при условии, что записываемая микросхема не содержит плохих блоков . Если в исходном образе присутствовали плохие блоки , в итоге образуются ложные плохие блоки . Появление ложных плохих блоков не скажется на функционировании устройства. Однако, если микросхема уже содержит плохие блоки, при попытке записи в такую микросхему появятся сбойные блоки с непредсказуемыми последствиями. Совет: можно попытаться стереть микросхему полностью, включая плохие блоки, затем выполнить копирование. Если запись в плохой блок завершится успешно (такое часто бывает), ваше устройство будет функционировать правильно, в дальнейшем программное обеспечение устройства выявит плохой блок и заменит его хорошим в соответствии со своим алгоритмом работы.
Исходный образ | Микросхема
(исходное состояние) |
Микросхема (результат) |
||
---|---|---|---|---|
Блок 0 хороший |
Блок чистый |
Блок 0 хороший |
||
Блок 1 плохой |
Блок чистый |
Блок чистый |
||
Блок 2 хороший |
Блок чистый |
Блок 2 хороший |
||
Блок 3 хороший |
Блок плохой |
Блок плохой |
||
Блок 4 хороший |
Блок чистый |
Блок 4 хороший |
||
Граница записи | ||||
Блок 5 хороший |
Блок чистый |
Блок чистый |
При обходе плохих блоков не записываются плохие блоки из исходного образа и не пишется информация в плохие блоки микросхемы . Это не самая лучшая политика копирования, но она безопасна в отношении плохих блоков микросхемы: не теряется информация о плохих блоках микросхемы и не появляются ложные плохие блоки . В ряде случаев такая политика копирования может помочь восстановить работоспособность неизвестного устройства.
Исходный образ | Микросхема (исходное состояние) | Микросхема (результат) |
||
---|---|---|---|---|
Блок 0 хороший |
Блок чистый |
Блок 0 хороший |
||
Блок 1 плохой |
![]() ![]() |
Блок чистый |
Блок 2 хороший |
|
Блок 2 хороший |
Блок чистый |
Блок 3 хороший |
||
Блок 3 хороший |
Блок плохой |
Блок плохой |
||
Блок 4 хороший |
Блок чистый |
Блок 4 хороший |
||
Граница записи | ||||
Блок 5 хороший |
Блок чистый |
Блок чистый |
Запись с пропуском плохих блоков предполагает что в устройстве используется именно такой алгоритм управления плохими блоками, а не какой-либо другой. При этих условиях гарантировано правильное копирование информации.
Исходный образ | Микросхема (исходное состояние) |
Микросхема (результат) |
||
---|---|---|---|---|
Блок 0 хороший |
Блок чистый |
Блок 0 хороший |
||
Блок 2 хороший |
Блок чистый |
Блок 1 хороший |
||
Граница записи | ||||
Блок плохой |
Блок чистый |
Блок чистый |
||
Блок 3 хороший |
Блок плохой |
Блок плохой |
||
Блок 4 хороший |
Блок чистый |
Блок чистый |
||
Блок 5 хороший |
Блок |
Блок |
В большинстве современных NAND микросхем первые блоки (как минимум один) гарантированно не имеют сбоев. Во многих устройствах в начале микросхемы располагается код загрузчика и операционной системы устройства. Часто бывает достаточно копирования только этих областей.
В диалоге настроек режимов записи укажите записываемый размер в блоках.
Программное обеспечение программаторов ChipStar поддерживает любые алгоритмы управления плохими блоками NAND при помощи внешних плагинов. При наличии установленных плагинов описания дополнительных методов появляются в списке "Управление плохими блоками NAND ". Настроить параметры выбранного метода можно нажав кнопку "Внешний плагин ".
Использование кодов, исправляющих ошибки позволяет восстанавливать одиночные ошибки на странице NAND.
Могут быть использованы разные алгоритмы, восстанавливающие одиночные ошибке в секторе. В зависимости от алгоритма ECC , может быть восстановлено разное количество ошибок на сектор (512+16 байт). Под термином "одиночные " понимается ошибка только в одном бите данных. Для NAND с размером страницы 512+16 байт понятие "сектор " и "страница " совпадают. Для NAND с большим размером страниц программатор ChipStar использует схему разметки страницы на сектора, как описано . В установках записи или верификации можно указать, сколько ошибок на сектор может исправлять используемый в вашем устройстве алгоритм. Соответственно, микросхемы с допустимым количеством ошибок не будут забракованы, информация о количестве исправимых ошибок выводится в окне статистики:
Информацию о количестве допустимых ошибок на сектор для каждой конкретной микросхемы можно уточнить в документации на микросхему. Все вновь добавляемые микросхемы NAND вносятся в базу данных программатора с учетом количества допустимых ошибок.
При самостоятельном добавлении микросхем:
Для новых микросхем NAND производства Samsung значение допустимого количества ошибок на сектор закодировано в составе идентификатора микросхемы. Поэтому, для таких микросхем допустимое количество ошибок на сектор также будет установлено правильно.
При считывании содержимого микросхемы с целью его дальнейшего сохранения или копирования, одиночные ошибки не могут быть достоверно выявлены . Полученный образ может быть затем отдельно подвергнут анализу на ошибки путем вычисления проверочных кодов ECC внешним приложением, при условии, что точно известен используемый алгоритм и разметка страницы .
Программное обеспечение программатора ChipStar предлагает косвенный статистический способ выявления и устранения одиночных ошибок. Способ позволяет выявить только неустойчивые ошибки с не гарантированной достоверностью. Для выполнения чтения с выявлением ошибок нужно выбрать режим "Выборочное чтение " и на закладке "NAND" отметить флажок "Включить режим исправления ошибок "
Можно настроить количество повторов чтения для сравнения и общее количество повторов чтения при ошибке. Следует иметь в виду, что использование данного способа существо замедляет процесс чтения.
Статистический алгоритм выявления ошибок работает следующим образом:
Алгоритм хорошо работает в том случае, если вероятность ошибки в конкретном бите микросхемы меньше 0.5. При чтении микросхемы ведется подсчет "исправленных" ошибок и вероятности правильного чтения.
Все описанное выше больше касалось копирования NAND и записи по образцу микросхемы, однако часто бывает нужно записать исходный бинарный образ программы в чистую микросхему . Перед записью нужно преобразовать двоичный образ в образ NAND, добавив к каждой странице запасную область и правильно заполнив ее. Для этого откройте ваш двоичный файл, выберите пункт меню " ". Появится диалог:
Задайте режим преобразования в формат NAND: "Образ двоичный... ", укажите размер страницы и блока NAND или выберите необходимую микросхему. Выберите формат запасной области. Программатор поддерживает простое заполнение области значениями FF встроенными средствами и другие способы при помощи плагинов. Вместе с программатором поставляется плагин, реализующий назначения запасной области, рекомендованный Самсунг.
Если вам необходимо реализовать какой-либо иной вариант распределения - сообщите нам, и мы подготовим соответствующий плагин, либо вы можете реализовать необходимый плагин самостоятельно.
Если у вас есть образ NAND , считанный другим программатором или полученный из другого источника, его нужно преобразовать в формат, пригодный для записи программатором ChipStar .
Для этого выполните следующие действия:
Для успешной работы с микросхемами NAND FLASH (нанд флэш) необходимо, как минимум:
Иметь представление о структуре NAND FLASH (нанд флэш), существующих способах и алгоритмах использования информации хранимой в такой памяти.
Иметь программатор, который корректно поддерживает работу с памятью NAND Flash т.е. позволяет выбрать и реализовать необходимые параметры и алгоритмы обработки.
Программатор для NAND FLASH должен быть очень быстрым . Программирование или чтение микросхемы обьемом в несколько Гбит на обычном программаторе по времени занимает несколько часов. Очевидно, что для более или менее регулярного программирования NAND Flash нужен специализированный быстрый программатор, адаптированный для работы с мс. высокой плотности. На сегодняшний день, самый быстрый программатор Flash NAND - ChipProg-481.
При работе с NAND Flash программатор предоставляет широкий спектр возможностей по выбору/настройке способов и параметров программирования. Все параметры влияющие на алгоритм работы программатора с микросхемой, выводятся в окно "Редактор параметров микросхемы и алгоритма программирования". При необходимости, любой из этих параметров может быть изменен, с тем что бы выбранное действие (программирование, сравнение, чтение, стирание) - производилось по алгоритму необходимому пользователю программатора.
Окно "Редактор параметров микросхемы и алгоритма программирования" в интерфейсе программатора при программировании NAND Flash .
Большое количество настраиваемых параметров, формирующих алгоритм работы программатора NAND Flash продиктовано желанием предоставить универсальный инструмент, позволяющий пользователю максимально полно реализовать все особенности присущие структуре NAND Flash . Для облегчения жизни, программаторы ChipProg-481 предоставляют следующие возможности при выборе любой микросхемы NAND Flash :
Рассмотрим режимы и параметры программирования реализованные в программаторе.
1. Работа с плохими блoками .
Перед программированием NAND Flash можно/нужно выбрать один из способов работы с плохими блоками.
2. Использование области Spare Area.
Do Not Use |
Spare Area в микросхеме не используется. В микросхеме программируются страницы памяти без учета Spare Area. |
Spare Area используется как пользовательская память. В этом случае при программировании микросхемы информация из буфера помещается сначала в основную страницу микросхемы, а затем в дополнительную область Spare Area. В этом случае буфер программатора выглядит как непрерывный поток основных страниц микросхемы и пристыкованных к ним областей Spare Area. |
|
User Data with IB Info Forced |
Spare Area интерпретируется аналогично предыдущему случаю за исключением того, что маркеры плохих блoкoв прописываются вместо информации пользователя. |
3. Guard Solid Area
Режим использования специальной области без плохих блoкoв. Обычно такие области используются в качестве загрузчиков микропроцессоров. В этой области недопустимо использование плoxих блoкoв.
Опция используется совместно с параметрами:
В случае, если внутри заданного диапазона Solid Area попадется плохой блoк, программатор выдаст ошибку.
4. Не чувствительность к ошибкам сравнения.
Эта опция позволяет включить режим не чувствительности к ошибкам сравнения.
Обычно, эту опцию имеет смысл использовать, если в устройстве пользователя применяются алгоритмы контроля и коррекции ошибок (ECC). В этих случаях допускается наличия определенного количества ошибок на определенный размер массива данных. Эти параметры и указываются в параметрах алгоритма программирования NAND
Flash
:
5. Invalid Block Indication Option.
В этой опции выбирается информация, которая используется в качестве маркера плохих блоков. Допускается выбрать либо значение 00h, либо 0F0h.
a. Пользовательская область.
Пользовательская область - это область микросхемы, с которой работают процедуры Программирования, Чтения и Сравнения.
Процедуры Стирания и Контроля на чистоту работают со всем массивом микросхемы.
Пользователю необходимо установить параметры:
b. Область без ошибок.
Параметры режима Guard Solid Area.
c. Область размещения RBA.
d. Размер фрейма ECC .
e. Допустимое количество ошибок .
Карта плохих блоков создается в подслое Invalid Block Map. Карта блоков представляется как непрерывный массив бит. Хорошие блоки представляются значением 0, плохие блоки - 1.
Например, значение 02h по нулевому адресу говорит о том, что 0,2,3,4,5,6,7 блоки являются хорошими, 1-ый блок является плохим. Значение 01h по первому адресу говорит о том, что только 8-ой блок является плохим из группы блоков 8..15.
В качестве иллюстрации важности "зрячего" выбора режимов и параметров при программировании NAND Flash в программаторе, рассмотрим ситуацию, при которой у некоторых программистов возникают проблемы. Чаще всего, это замена NAND Flash в "устройстве", которое перестало работать. Стандартный подход - по аналогии с заменой обычной микросхемы памяти:
В случае, когда требуется программировать NAND Flash , не все так просто и однозначно.
Для получения микросхемы-копии, у которой прошивка NAND Flash идентична образцу, необходимо поступать следующим образом.
Подготовка к копированию.
Для копирования необходимы микросхема-оригинал и микросхема-копия (мс. в которую предполагается записать образ оригинала). Обязательные требования:
Чтобы определить, имеет ли микросхема-копия плохие блоки, необходимо установить микросхему в программатор, и в окне “Редактор параметров микросхемы” задать параметры микросхемы по умолчанию - кнопка "All Default".
Запускается процедура контроля на стертость (для экономии времени можно сразу же отменить эту процедуру, считывание карты плохих блоков осуществляется в самом начале). В окне "Программирование" интерфейса программатора, в поле “Информация об операциях” появляется информация о плохих блоках.
Копирование.
Перед копированием микросхемы NAND Flash в программаторе обязательно должны быть сделаны следующие настройки параметров в окне “Редактор параметров микросхемы”:
Invalid Block(IB) Management |
Do NOT USE |
Spare Area Usage |
User Data |
User Area – Number of Blocks |
Максимальное значение блоков в микросхеме |
В программатор устанавливается NAND Flash образец и считывается. Затем в программатор устанавливается микросхема-копия, стирается, записывается и сравнивается. В случае успешного прохождения всех трех процедур запрограммированная NAND Flash оказывается полной копией оригинала.
NAND Flash память * подразделяется на блоки (Block) памяти, которые в свою очередь делятся на страницы (Page). Страницы бывают большие (large page) и маленькие (small page). Размер страницы зависит от общего размера микросхемы. Для маленькой страницы обычно характерны микросхемы объемом от 128Kбит до 512Кбит. Микросхемы с большим размером страницы имеют объем от 256Кбит до 32Гбит и выше. Маленький размер страницы равен 512 байтам для микросхем с байтной организацией и 256 словам для микросхем со словной организаций шины данных. Большая страница имеет размер 2048 байт для байтных микросхем и 1024 для словных. В последнее время появляются микросхемы с еще большим размером страницы. Она уже составляет 4096 байт для байтных микросхем.
Структура памяти микросхем NAND Flash с малым размером страницы фирмы STMicroelectronics.
Структура памяти микросхем с большим размером страницы фирмы STMicroelectronics.
Характерной особенностью микросхем NAND Flash является наличие плохих (дефектных) блоков (Bad blocks) как в новых микросхемах, так и появление таких блоков в процессе эксплуатации. Для маркирования плохих блоков, а также для сохранения дополнительной служебной информации или кодов коррекции, в архитектуре NAND Flash в дополнении к каждой странице памяти данных предусмотрена добавочная область Spare area. Для микросхем с малой страницей эта область имеет размер 16 байт / 8 слов. Для микросхем с большой страницей - 64 байта / 32 слова.
Обычно производитель микросхем гарантирует количество плохих блоков, не превышающее определенного размера. Информация о плохих блоках поставляется производителем микросхем в определенном месте дополнительной области Spare Area.
Маркирование плохих блоков в микросхемах NAND Flash осуществляется записью обычно значения 0 по определенному адресу в области Spare Area нулевой страницы плохого блока. Маркеры плохих блоков лежат в определенных адресах области Spare Area.
Организация памяти |
Адрес маркеров плохих блоков в Spare Area |
Байтная организация, размер страницы - 512 байт. |
|
Словная организация, размер страницы - 256 слов. |
|
Байтная организация, размер страницы - 2048 байт и больше. |
|
Словная организация, размер страницы - 1024 слов и больше. |
Нужно иметь ввиду, что маркеры плохих блоков помещаются в обычные ячейки Flash памяти Spare Area, которые стираются при стирании всего блока памяти. Поэтому для сохранения информации о плохих блоках перед стиранием обязательно нужно сохранить эту информацию, а после стирания ее - восстановить.
В программаторах ChipProg при установке опции InvalidBlockManagement
в любое значение кроме Do Not Use
сохранение и восстановление информации о плохих блоках происходит автоматически.
Существует три наиболее распространенных способа обработки плохих блоков:
1. Пропуск плохих блоков .
Алгоритм пропуска плохих блоков заключается в том, что при записи в микросхему анализируется в какой блок осуществляется запись. В случае наличия плохого блока, запись в этот блок не осуществляется, плохой блок пропускается, запись осуществляется в блок следующий после плохого.
2. Резервирование блоков.
В этом методе память всей микрохемы делится на три области: User Block Area (UBA) - пользовательская область, Block Reservoir - резервная область, следуемая сразу за пользовательской областью, и таблицу соответствия плохих блоков хорошим (Reserved Block Area - RBA).
Алгоритм замены плохих блоков в этом методе таков: при выявлении плохого блока из области UBA блок переносится в область Block Reservoir, при этом в таблице RBA делается соответствующая запись замены блока.
Формат таблицы RBA:
2 байта В области RBA находятся две таблицы в двух блоках. Таблица во втором блоке используется как резервная на случай, если информация в первой окажется недостоверной. 3. Контроль и коррекция ошибок . Для увеличения достоверности данных могут использоваться алгоритмы контроля и коррекции ошибок (Error Checking and Correction - ECC). Эта дополнительная информация может помещаться в свободное пространство Spare Area. *) Примечание: NAND ~ Not AND - в булевой математике обозначает отрицание «И» |
Всем привет! Буквально на днях встретил своего давнишнего приятеля. Мы разговорились, и он, со словами «Смотри с каким телефоном я сейчас хожу!», продемонстрировал свою старенькую кнопочную Nokia. Выяснилось, что на его iPhone стала постоянно «слетать» прошивка - пришлось отдать смартфон в сервисный центр. Казалось бы, обычное дело...
Однако, для приятеля оказался необычным тот перечь работ, которые будет проводить сервис. Полная диагностика, обновление программного обеспечения (при необходимости) и другие «обычные штуки» - здесь все стандартно и понятно. Главный же вопрос вызвала вот такая фраза мастера - «скорей всего, надо перекатывать Nand Flash».
Я, конечно, в сервисе не показал что не понимаю о чем речь - дескать и так все знаю без вас. Вы главное - делайте. Но пришел домой и сразу полез «гуглить» - а что это вообще такое, Nand Flash? И на фига его куда-то катать внутри iPhone?
Посмеялись с ним, разошлись, а я подумал - почему бы не написать коротенькую заметку на эту тему? Много времени это не займет, а людям, которые столкнулись с той же проблемой что и мой знакомый, станет чуточку понятней, что вообще происходит с их смартфоном. Подумал - сделал. Поехали!:)
Это внутренняя память устройства. Да, да, то самое и которого очень часто не хватает владельцам iPhone на 16 GB.
Грубо говоря, Nand Flash в iPhone 7 32 GB это и есть те самые 32 GB внутренней памяти.
Расположена память на основной системной плате устройства и ни чем примечательным не выделяется - самый обычный чип.
Естественно, это никакая не флешка - нельзя разобрать iPhone, легко отсоединить Nand Flash, поставить другую и думать что все будет «ОК». Не будет. Хотя, стоит оговориться, что в некоторых случаях это все-таки возможно. Но об это чуть дальше. А пока переходим к неполадкам...
Вариантов не очень много, и все они, как правило «стандартные»:
Здесь особо и расписывать нечего - понятное дело, что если устройство бросать и заливать водой, то это скажется на его работоспособности.
Хотя, отдельно все-таки отмечу такой пункт, как заводской брак - такое тоже очень даже возможно. Я был свидетелем подобной ситуации - iPhone только что куплен, а работать толком не работает - перезагружается, при восстановлении показывает ошибки и вообще ведет себя странно. Отдали в сервис, как итог - брак Nand Flash памяти и последующая замена устройства.
Каких-то четких и определенных симптомов у этой неисправности нет (на экране не выскакивает надпись - у вашего устройства проблемы с памятью), поэтому обо всем этом можно догадаться только по косвенным признакам:
Кстати, об ошибках...
Самый верный способ борьбы с различными неполадками в работе устройства. Однако, если у iPhone существуют проблемы с Nand Flash памятью, то процесс восстановления может прерываться и сопровождаться следующими характерными ошибками:
Но, важно помнить вот о чем - iTunes устроен таким образом, что одна и та же цифра ошибки может иметь несколько причин.
Например, ошибка 4013 может сигнализировать как о проблемах с самой микросхемой, так и о неоригинальности использования провода для подключения к ПК.
Как видите, разброс очень большой - от простого провода, до очень сложного ремонта. Поэтому, использовать этот перечень ошибок для предварительного анализа ситуации можно, а вот слепо доверять - нельзя.
Возможно. Но, конечно же, не «в домашних условиях». Более того, далеко не все сервисные центры умеют проделывать эту операцию. Например, «в палатке на рынке» вам с большой долей вероятности помочь не смогут - там просто не будет необходимого оборудования. Да и навык, какой-никакой, должен быть.
В который раз отдельно замечу - если у вашего iPhone не закончился гарантийный срок (), то ничего выдумывать не нужно - . С большой долей вероятности вы получите взамен новое устройство.
Если с гарантией «пролет», а ремонт Nand Flash памяти все-таки необходим, то у сервисного центра есть два варианта исправления ситуации:
Кстати, если говорить про оборудование для прошивки Nand Flash, то подобные программаторы достаточно разнообразны, но одна вещь их все-таки объединяет - цена. Все они стоят приличных денег - далеко не каждый может позволить себе такую штуку.
Какой вывод можно сделать из всего этого? Проблемы с памятью iPhone - это достаточно серьезная поломка, которую очень тяжело исправить самостоятельно. Но и безнадежной ситуацию назвать нельзя. Главное - найти хороший сервисный центр с грамотными специалистами и необходимым оборудованием. И тогда iPhone еще долго будет радовать вас своей работой!
P.S. Да уж, короткой заметки не получилось:) Впрочем, что есть, то есть - не удалять же теперь. Да и информация полезная - кому-нибудь да пригодится. Согласны? Ставьте «лайки», жмите на кнопки социальных сетей - поддержите автора! Он старался, честно. Спасибо!
P.S.S. Остались какие-то вопросы? Есть чем дополнить статью или хочется рассказать свою историю? Для этого существуют комментарии - пишите смело!