Файлы DLL

Где находится nand. Ошибки iTunes, указывающие на неисправность Nand Flash

Где находится nand. Ошибки iTunes, указывающие на неисправность Nand Flash

Для успешной работы с микросхемами NAND FLASH (нанд флэш) необходимо, как минимум:

    Иметь представление о структуре NAND FLASH (нанд флэш), существующих способах и алгоритмах использования информации хранимой в такой памяти.

    Иметь программатор, который корректно поддерживает работу с памятью NAND Flash т.е. позволяет выбрать и реализовать необходимые параметры и алгоритмы обработки.

Программатор для NAND FLASH должен быть очень быстрым . Программирование или чтение микросхемы обьемом в несколько Гбит на обычном программаторе по времени занимает несколько часов. Очевидно, что для более или менее регулярного программирования NAND Flash нужен специализированный быстрый программатор, адаптированный для работы с мс. высокой плотности. На сегодняшний день, самый быстрый программатор Flash NAND - ChipProg-481.

Программирование NAND FLASH на программаторах ChipProg

При работе с NAND Flash программатор предоставляет широкий спектр возможностей по выбору/настройке способов и параметров программирования. Все параметры влияющие на алгоритм работы программатора с микросхемой, выводятся в окно "Редактор параметров микросхемы и алгоритма программирования". При необходимости, любой из этих параметров может быть изменен, с тем что бы выбранное действие (программирование, сравнение, чтение, стирание) - производилось по алгоритму необходимому пользователю программатора.

Окно "Редактор параметров микросхемы и алгоритма программирования" в интерфейсе программатора при программировании NAND Flash .

Большое количество настраиваемых параметров, формирующих алгоритм работы программатора NAND Flash продиктовано желанием предоставить универсальный инструмент, позволяющий пользователю максимально полно реализовать все особенности присущие структуре NAND Flash . Для облегчения жизни, программаторы ChipProg-481 предоставляют следующие возможности при выборе любой микросхемы NAND Flash :

  • Все параметры принимают значения заданные в предшествующем сеансе (сессии) программирования выбранной NAND Flash . (количество сохраненных сессий неограниченно).
  • Все параметры принимают значения заданные для данной NAND Flash в рамках "проекта" (количество "проектов" неограниченно)
  • Все параметры автоматически принимают необходимые значения после запуска "скрипта". "Скрипты" пишутся на встроенном в оболочку программатора C подобном языке.
  • Все (или выборочно) параметры принимают значения по умолчанию.
  • Значения всех параметров доступны для редактирования в графическом интерфейсе программатора.

Рассмотрим режимы и параметры программирования реализованные в программаторе.

Режимы программирования.

  1. Invalid Block Management
  2. Spare Area Usage
  3. Guard Solid Area
  4. Tolerant Verify Feature
  5. Invalid Block Indication Option

1. Работа с плохими блoками .

Перед программированием NAND Flash можно/нужно выбрать один из способов работы с плохими блоками.

2. Использование области Spare Area.

Do Not Use

Spare Area в микросхеме не используется. В микросхеме программируются страницы памяти без учета Spare Area.

User Data

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 - Start Block - начальный блoк области без плoxих блoкoв.
  • - количество блoкoв в этой области.

В случае, если внутри заданного диапазона Solid Area попадется плохой блoк, программатор выдаст ошибку.

4. Не чувствительность к ошибкам сравнения.

Эта опция позволяет включить режим не чувствительности к ошибкам сравнения.
Обычно, эту опцию имеет смысл использовать, если в устройстве пользователя применяются алгоритмы контроля и коррекции ошибок (ECC). В этих случаях допускается наличия определенного количества ошибок на определенный размер массива данных. Эти параметры и указываются в параметрах алгоритма программирования NAND Flash :

  • ECC Frame size (bytes) - размер массива данных.
  • Acceptable number of errors - допустимое количество однобитных ошибок.

5. Invalid Block Indication Option.

В этой опции выбирается информация, которая используется в качестве маркера плохих блоков. Допускается выбрать либо значение 00h, либо 0F0h.

  • IB Indication Value ~ 00 или F0

Параметры программирования.

  1. User Area
  2. Solid Area
  3. RBA Area
  4. ECC Frame size
  5. Acceptable number of errors

a. Пользовательская область.

Пользовательская область - это область микросхемы, с которой работают процедуры Программирования, Чтения и Сравнения.
Процедуры Стирания и Контроля на чистоту работают со всем массивом микросхемы.

Пользователю необходимо установить параметры:

  • User Area - Start Block - начальный блoк пользовательской области.
  • User Area - Number of Blocks - количество блoков в пользовательской области.

b. Область без ошибок.

Параметры режима Guard Solid Area.

  • Solid Area - Start Block - начальный блoк области без плoхих блоков.
  • Solid Area - Number of Blocks - количество блоков в этой области.

c. Область размещения RBA.

  • RBA Area - Start Block - начальный блок таблицы RBA.
  • RBA Area - Number of Blocks - количество блоков в таблице RBA.

d. Размер фрейма ECC .

  • ECC Frame Size - параметр определяющий размер массива данных, в котором допускаются однобитные ошибки.

e. Допустимое количество ошибок .

  • Acceptable number of errors - параметр определяет количество однобитных ошибок, допустимых в массиве, размер, которого определяется параметром ECC Frame size.

Карта плохих блоков

Карта плохих блоков создается в подслое Invalid Block Map. Карта блоков представляется как непрерывный массив бит. Хорошие блоки представляются значением 0, плохие блоки - 1.

Например, значение 02h по нулевому адресу говорит о том, что 0,2,3,4,5,6,7 блоки являются хорошими, 1-ый блок является плохим. Значение 01h по первому адресу говорит о том, что только 8-ой блок является плохим из группы блоков 8..15.

Копирование NAND Flash

В качестве иллюстрации важности "зрячего" выбора режимов и параметров при программировании NAND Flash в программаторе, рассмотрим ситуацию, при которой у некоторых программистов возникают проблемы. Чаще всего, это замена NAND Flash в "устройстве", которое перестало работать. Стандартный подход - по аналогии с заменой обычной микросхемы памяти:

  1. Получить прошивку работающей микросхемы. Как правило, для этого считывается содержимое из микросхемы-оригинала.
  2. Прошить новую аналогичную микросхему.
  3. Сравнить содержание запрограммированной мс. с прошивкой "оригинала". Если сравнение прошло, микросхема - копия готова.

В случае, когда требуется программировать NAND Flash , не все так просто и однозначно.

  1. Прошивка Nand Flash , полученная при считывании программатором из "оригинала" - существенным образом зависит от установленных в программаторе режимов и параметров.
  2. Для того что бы корректно запрограммировать новую NAND Flash и получить полную копию, необходимо перед программированием установить в программаторе режимы и параметры соответствующие прошивке "оригинала". При этом, необходимо учитывать возможность существования плохих блоков.

Для получения микросхемы-копии, у которой прошивка NAND Flash идентична образцу, необходимо поступать следующим образом.

Подготовка к копированию.

Для копирования необходимы микросхема-оригинал и микросхема-копия (мс. в которую предполагается записать образ оригинала). Обязательные требования:

  1. Обе микросхемы NAND Flash и оригинал и копия должны быть одного типа.
  2. Микросхема-копия не должна иметь плохих блоков.

Чтобы определить, имеет ли микросхема-копия плохие блоки, необходимо установить микросхему в программатор, и в окне “Редактор параметров микросхемы” задать параметры микросхемы по умолчанию - кнопка "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.

NAND Flash память * подразделяется на блоки (Block) памяти, которые в свою очередь делятся на страницы (Page). Страницы бывают большие (large page) и маленькие (small page). Размер страницы зависит от общего размера микросхемы. Для маленькой страницы обычно характерны микросхемы объемом от 128Kбит до 512Кбит. Микросхемы с большим размером страницы имеют объем от 256Кбит до 32Гбит и выше. Маленький размер страницы равен 512 байтам для микросхем с байтной организацией и 256 словам для микросхем со словной организаций шины данных. Большая страница имеет размер 2048 байт для байтных микросхем и 1024 для словных. В последнее время появляются микросхемы с еще большим размером страницы. Она уже составляет 4096 байт для байтных микросхем.

Структура памяти микросхем NAND Flash с малым размером страницы фирмы STMicroelectronics.

Структура памяти микросхем с большим размером страницы фирмы STMicroelectronics.

Плохие блоки NAND Flash

Характерной особенностью микросхем 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. Skip Bad Blocks (Пропуск плохих блоков. )
  2. Reserved Block Area (Резервирование блоков)
  3. Error Checking and Correction (Контроль и коррекция ошибок. )

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 - в булевой математике обозначает отрицание «И»

В 1989 году состоялся анонс Nand Flash памяти, данная разработка была представлена компанией Toshiba на International Solid-State Circuits Conference. До этого существовали только разработки NOR памяти, основными недостатками которой были: скорость работы и большая площадь чипа. Основным отличием NAND Flash от Nor Flash являются особенности адресации, если в NOR Flash можно адресовать произвольную ячейку, то в NAND Flash применена страничная адресация (обычно размер страницы 528, 2112, 4224, 4304, 4320, 8576 байт).

На сегодня существует масса устройств, где используются микросхемы NAND Flash в том числе и в различных носителях информации, таких как SSD накопители, USB Flash, различные Flash card (MMC, RS-MMC, MMCmicro, SD, miniSD, MicroSD, SDHC, CF, xD, SmartMedia, Memory Stick и т.д.)

Принципиально носители информации на NAND Flash из себя представляют микроконтроллер, который обеспечивает работу с микросхемами памяти, а также работу с различными устройствами по заданному стандартами интерфейсу. В большинстве устройств это выглядит как небольшая плата, на которой размещены одна или несколько микросхем NAND Flash памяти в конструктивном исполнении TSOP-48, short TSOP-48 или TLGA-52 и микроконтроллер. Миниатюрные устройства, как правило выполнены в виде одного чипа в который интегрированы как микросхема Nand Flash, так и микроконтроллер.

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

Для равномерного износа NAND Flash практически во всех контроллерах организованно разделение адресного пространства на логические банки, которые в свою очередь разделяются на блоки (состоящие из нескольких страниц памяти), обычно на 256-2048 блоков. Контроллером ведется учет количества записей в каждый из блоков. Для того чтобы данные пользователя можно было свободно перемещать внутри банка, для этого имеется логическая нумерация блоков т.е. на практике при чтении микросхемы в дамп видим картину что данные пользователя в виде достаточно крупных блоков (16кб – 4Мб) хаотично перемешаны. Порядок работы с пользовательскими данными отражен в трансляторе в виде таблицы в которой указан порядок построения блоков для того чтобы получить упорядоченное логическое пространство.

Для увеличения операций чтения/записи производители контроллеров реализуют функции распараллеливания данных, то есть прямая аналогия с RAID массивом уровня 0 (stripe), только немного более сложная реализация. На практике это выглядит либо в виде внутриблочного распараллеливания (интерлива), на более мелкие подблоки (как правило от 1 байта, до 16Кб), также симметричное распараллеливание (страйп) между физическим банками микросхемы NAND Flash и между несколькими микросхемами.

Стоит понимать, что при таком принципе работы, транслятор накопителя – постоянно изменяющаяся таблица, практически при каждой записи в NAND Flash. Исходя из принципа работы с NAND Flash – чтение блока в буфер, внесение изменений и запись блока на место, очевидно, что наиболее опасны для данных являются незавершенные операции записи; например, когда происходит запись измененного транслятора. В результате необдуманного обращения с накопителями: внезапного извлечения их из USB разъема или из разъема кардридера во время записи, чревато разрушением служебных данных, в частности таблицы трансляции.

При разрушение служебных данных, накопитель не может функционировать или в некоторых случаях функционирует неверно. Извлечение данных программными средствами, как правило, не представляется возможным по многим причинам. Одно из решений – это выпаивание микросхем NAND Flash с последующим чтением на соответствующем считывателе (программаторе). Учитывая, что оригинальный транслятор отсутствует, либо поврежден, предстоит работа по разбору дампа извлеченного из микросхемы NAND Flash. Многие, наверное, обратили внимание на кажущийся странным размер страниц памяти в NAND Flash. Это объясняется тем, что в каждой странице, кроме данных пользователя имеются служебные данные обычно это представлено в виде 512/16; 2048/64; 4096/128; 4096/208 (существуют и значительно более сложные варианты организации данные/служебка). В служебных данных присутствую различные маркеры (маркер, номера блока в логическом банке; маркер ротации блока; ECC; и т.п.) Восстановление пользовательских данных сводится к устранению распараллеливания данных внутри блоков, между банков и между микросхемами памяти для получения цельных блоков. Если есть необходимость, то устраняются внутриблочные ротации, ренумерации и т.п. Дальнейшая задача, состоит в поблочной сборке. Для того чтобы ее осуществить необходимо четко уяснить количество логических банков, количество блоков в каждом логическом банке, количество используемых блоков в каждом банке (задействованы не все) местонахождение маркера в служебных данных, алгоритм нумерации. И только потом производить сбор блоков в конечный файл-образ из которого можно будет произвести чтение пользовательских данных. В процессе сбора подстерегают подводные камни в виде нескольких блоков-претендентов на одну позицию в конечный файл-образ. После решение данного круга задач, получаем файл-образ с пользовательской информацией.

В случаях, когда данные не играют никакой роли, но есть желание восстановить работоспособность самого накопителя, то лучшие вариант коррекции проблем со служебными данными – это выполнение процедуры форматирования фирменной утилитой с сайта производителя накопителя. Многие утилиты фактически переписывают всю служебную информацию, создают чистый транслятор, и выполняют процедуру форматирования с созданием новой файловой системы. Если же производитель не удосужился выложить Recovery-утилиту, тогда выход в виде поиска утилит форматирования накопителей на NAND Flash «по контроллеру», единственно, что покажется сложным пользователю – это обилие производителей контроллеров и сложности с идентификацией последнего.

Павел Янчарский

Перепечатка материалов разрешена только с указанием активной ссылки на оригинал статьи

Современному человеку нравится быть мобильным и иметь при себе различные высокотехнологичные гаджеты (англ. gadget - устройство), облегчающие жизнь, да что там скрывать, делающие ее более насыщенной и интересной. И появились-то они всего за 10-15 лет! Миниатюрные, легкие, удобные, цифровые… Всего этого гаджеты достигли благодаря новым микропроцессорным технологиям, но все же больший вклад был сделан одной замечательной технологией хранения данных, о которой сегодня мы и будем говорить. Итак, флэш-память.

Бытует мнение, что название FLASH применительно к типу памяти переводится как «вспышка». На самом деле это не совсем так. Одна из версий его появления говорит о том, что впервые в 1989-90 году компания Toshiba употребила слово Flash в контексте «быстрый, мгновенный» при описании своих новых микросхем. Вообще, изобретателем считается Intel, представившая в 1988 году флэш-память с архитектурой NOR. Годом позже Toshiba разработала архитектуру NAND, которая и сегодня используется наряду с той же NOR в микросхемах флэш. Собственно, сейчас можно сказать, что это два различных вида памяти, имеющие в чем-то схожую технологию производства. В этой статье мы попытаемся понять их устройство, принцип работы, а также рассмотрим различные варианты практического использования.

NOR

С помощью нее осуществляется преобразование входных напряжений в выходные, соответствующие «0» и «1». Они необходимы, потому что для чтения/записи данных в ячейке памяти используются различные напряжения. Схема ячейки приведена на рисунке ниже.

Она характерна для большинства флэш-чипов и представляет из себя транзистор с двумя изолированными затворами: управляющим (control) и плавающим (floating). Важной особенностью последнего является способность удерживать электроны, то есть заряд. Также в ячейке имеются так называемые «сток» и «исток». При программировании между ними, вследствие воздействия положительного поля на управляющем затворе, создается канал - поток электронов. Некоторые из электронов, благодаря наличию большей энергии, преодолевают слой изолятора и попадают на плавающий затвор. На нем они могут храниться в течение нескольких лет. Определенный диапазон количества электронов (заряда) на плавающем затворе соответствует логической единице, а все, что больше его, - нулю. При чтении эти состояния распознаются путем измерения порогового напряжения транзистора. Для стирания информации на управляющий затвор подается высокое отрицательное напряжение, и электроны с плавающего затвора переходят (туннелируют) на исток. В технологиях различных производителей этот принцип работы может отличаться по способу подачи тока и чтению данных из ячейки. Хочу также обратить ваше внимание на то, что в структуре флэш-памяти для хранения 1 бита информации задействуется только один элемент (транзистор), в то время как в энергозависимых типах памяти для этого требуется несколько транзисторов и конденсатор. Это позволяет существенно уменьшить размеры выпускаемых микросхем, упростить технологический процесс, а, следовательно, и снизить себестоимость. Но и один бит далеко не предел: Intel уже выпускает память StrataFlash , каждая ячейка которой может хранить по 2 бита информации. Кроме того, существуют пробные образцы, с 4-х и даже 9-битными ячейками! В такой памяти используются технология многоуровневых ячеек. Они имеют обычную структуру, а отличие заключается в том, что заряд их делится на несколько уровней, каждому из которых в соответствие ставится определенная комбинация бит. Теоретически прочитать/записать можно и более 4-х бит, однако, на практике возникают проблемы с устранением шумов и с постепенной утечкой электронов при продолжительном хранении. Вообще, у существующих сегодня микросхем памяти для ячеек характерно время хранения информации, измеряемое годами и число циклов чтения/записи - от 100 тысяч до нескольких миллионов. Из недостатков, в частности, у флэш-памяти с архитектурой NOR стоит отметить плохую масштабируемость: нельзя уменьшать площадь чипов путем уменьшения размеров транзисторов. Эта ситуация связана со способом организации матрицы ячеек: в NOR архитектуре к каждому транзистору надо подвести индивидуальный контакт. Гораздо лучше в этом плане обстоят дела у флэш-памяти с архитектурой NAND.

NAND

Устройство и принцип работы ячеек у нее такой же, как и у NOR. Хотя, кроме логики, все-таки есть еще одно важное отличие - архитектура размещения ячеек и их контактов. В отличие от вышеописанного случая, здесь имеется контактная матрица, в пересечениях строк и столбцов которой располагаются транзисторы. Это сравнимо с пассивной матрицей в дисплеях:) (а NOR - с активной TFT). В случае с памятью такая организация несколько лучше - площадь микросхемы можно значительно уменьшить за счет размеров ячеек. Недостатки (куда уж без них) заключаются в более низкой по сравнению с NOR скорости работы в операциях побайтового произвольного доступа.

Существуют еще и такие архитектуры как: DiNOR (Mitsubishi), superAND (Hitachi) и пр. Принципиально нового ничего они не представляют, а лишь комбинируют лучшие свойства NAND и NOR.

И все же, как бы там ни было, NOR и NAND на сегодняшний день выпускаются на равных и практически не конкурируют между собой, потому как в силу своих качеств находят применение в разных областях хранения данных. Об этом и пойдет далее речь…

Где нужна память…

Сфера применения какого-либо типа флэш-памяти зависит в первую очередь от его скоростных показателей и надежности хранения информации. Адресное пространство NOR-памяти позволяет работать с отдельными байтами или словами (2 байта). В NAND ячейки группируются в небольшие блоки (по аналогии с кластером жесткого диска). Из этого следует, что при последовательном чтении и записи преимущество по скорости будет у NAND. Однако с другой стороны NAND значительно проигрывает в операциях с произвольным доступом и не позволяет напрямую работать с байтами информации. К примеру, для изменения одного байта требуется:

  1. считать в буфер блок информации, в котором он находится
  2. в буфере изменить нужный байт
  3. записать блок с измененным байтом обратно

Если еще ко времени выполнения перечисленных операций прибавить задержки на выборку блока и на доступ, то получим отнюдь неконкурентоспособные с NOR показатели (отмечу, что именно для случая побайтовой записи). Другое дело последовательная запись/чтение - здесь NAND наоборот показывает значительно более высокие скоростные характеристики. Поэтому, а также из-за возможностей увеличения объема памяти без увеличения размеров микросхемы, NAND-флэш нашел применение в качестве хранителя больших объемов информации и для ее переноса. Наиболее распространенные сейчас устройства, основанные на этом типе памяти, это флэшдрайвы и карты памяти. Что касается NOR-флэша, то чипы с такой организацией используются в качестве хранителей программного кода (BIOS, RAM карманных компьютеров, мобилок и т. п.), иногда реализовываются в виде интегрированных решений (ОЗУ, ПЗУ и процессор на одной мини-плате, а то и в одном чипе). Удачный пример такого использования - проект Gumstix: одноплатный компьютер размером с пластинку жвачки. Именно NOR-чипы обеспечивают требуемый для таких случаев уровень надежности хранения информации и более гибкие возможности по работе с ней. Объем NOR-флэш обычно измеряется единицами мегабайт и редко переваливает за десятки.

И будет флэш…

Безусловно, флэш - перспективная технология. Однако, несмотря на высокие темпы роста объемов производства, устройства хранения данных, основанные на ней, еще достаточно дороги, чтобы конкурировать с жесткими дисками для настольных систем или ноутбуков. В основном, сейчас сфера господства флэш-памяти ограничивается мобильными устройствами. Как вы понимаете, этот сегмент информационных технологий не так уж и мал. Кроме того, со слов производителей, на нем экспансия флэш не остановится. Итак, какие же основные тенденции развития имеют место в этой области.

Во-первых, как уже упоминалось выше, большое внимание уделяется интегрированным решениям. Причем проекты вроде Gumstix лишь промежуточные этапы на пути к реализации всех функций в одной микросхеме.

Пока что, так называемые on-chip (single-chip) системы представляют собой комбинации в одном чипе флэш-памяти с контроллером, процессором, SDRAM или же со специальным ПО. Так, например, Intel StrataFlash в сочетании с ПО Persistent Storage Manager (PSM) дает возможность использовать объем памяти одновременно как для хранения данных, так и для выполнения программного кода. PSM по сути дела является файловой системой, поддерживающейся ОС Windows CE 2.1 и выше. Все это направлено на снижение количества компонентов и уменьшение габаритов мобильных устройств с увеличением их функциональности и производительности. Не менее интересна и актуальна разработка компании Renesas - флэш-память типа superAND с встроенными функциями управления. До этого момента они реализовывались отдельно в контроллере, а теперь интегрированы прямо в чип. Это функции контроля бэд-секторов, коррекции ошибок (ECC - error check and correct), равномерности износа ячеек (wear leveling). Поскольку в тех или иных вариациях они присутствуют в большинстве других брендовых прошивок внешних контроллеров, давайте вкратце их рассмотрим. Начнем с бэд-секторов. Да, во флэш-памяти они тоже встречаются: уже с конвейера сходят чипы, имеющие в среднем до 2% нерабочих ячеек - это обычная технологическая норма. Но со временем их количество может увеличиваться (окружающую среду в этом винить особо не стоит - электромагнитное, физическое (тряска и т. п.) влияние флэш-чипу не страшно). Поэтому, как и в жестких дисках, во флэш-памяти предусмотрен резервный объем. Если появляется плохой сектор, функция контроля подменяет его адрес в таблице размещения файлов адресом сектора из резервной области.


Собственно, выявлением бэдов занимается алгоритм ECC - он сравнивает записываемую информацию с реально записанной. Также в связи с ограниченным ресурсом ячеек (порядка нескольких миллионов циклов чтения/записи для каждой) важно наличие функции учета равномерности износа. Приведу такой редкий, но встречающийся случай: брелок с 32 Мбайт, из которых 30 Мбайт заняты, а на свободное место постоянно что-то записывается и удаляется. Получается, что одни ячейки простаивают, а другие интенсивно исчерпывают свой ресурс. Чтобы такого не было, в фирменных устройствах свободное пространство условно разбивается на участки, для каждого из которых осуществляется контроль и учет количества операций записи.

Еще более сложные конфигурации класса «все-в-одном» сейчас широко представлены такими компаниями как, например, Intel, Samsung, Hitachi и др. Их изделия представляют собой многофункциональные устройства, реализованные в одной лишь микросхеме (стандартно в ней имеется процессор, флэш-память и SDRAM). Ориентированы они на применение в мобильных устройствах, где важна высокая производительность при минимальных размерах и низком энергопотреблении. К таким относятся: PDA, смартфоны, телефоны для сетей 3G. Приведу пример подобных разработок - чип от Samsung, объединяющий в себе ARM-процессор (203 МГц), 256 Мбайт NAND памяти и 256 SDRAM. Он совместим с распространенными ОС: Windows CE, Palm OS, Symbian, Linux и имеет поддержку USB. Таким образом на его основе возможно создание многофункциональных мобильных устройств с низким энергопотреблением, способных работать с видео, звуком, голосом и прочими ресурсоемкими приложениями.

Другим направлением совершенствования флэш является уменьшение энергопотребления и размеров с одновременным увеличением объема и быстродействия памяти. В большей степени это касается микросхем с NOR архитектурой, поскольку с развитием мобильных компьютеров, поддерживающих работу в беспроводных сетях, именно NOR-флэш, благодаря небольшим размерам и малому энергопотреблению, станет универсальным решением для хранения и выполнения программного кода. В скором времени в серийное производство будут запущены 512 Мбит чипы NOR той же Renesas. Напряжение питания их составит 3,3 В (напомню, хранить информацию они могут и без подачи тока), а скорость в операциях записи - 4 Мбайт/сек. В то же время Intel уже представляет свою разработку StrataFlash Wireless Memory System (LV18/LV30) - универсальную систему флэш-памяти для беспроводных технологий. Объем ее памяти может достигать 1 Гбит, а рабочее напряжение равно 1.8 В. Технология изготовления чипов - 0,13 нм, в планах переход на 0,09 нм техпроцесс. Среди инноваций данной компании также стоит отметить организацию пакетного режима работы с NOR-памятью. Он позволяет считывать информацию не по одному байту, а блоками - по 16 байт: с использованием 66 МГц шины данных скорость обмена информацией с процессором достигает 92 Мбит/с!

Что ж, как видите, технология развивается стремительно. Вполне возможно, что к моменту выхода статьи появится еще что-нибудь новенькое. Так что, если что - не взыщите:) Надеюсь, материал был вам интересен.

Существует два основных типа Flash-памяти: NOR и NAND. Каждый из них имеет свои преимущества и недостатки, которые и определяют области использования каждой технологии. Их основные характеристики представлены в таблице.

NOR Flash Memory

Память NOR, названная так в честь особой разметки данных (Not OR – логическое Не-ИЛИ), является высокоскоростной памятью Flash. Память NOR предоставляет возможность высокоскоростного, случайного доступа к информации, и обладает способностью записывать и считывать данные в определенном месте без необходимости обращаться к памяти последовательно. В отличие от NAND памяти, память NOR позволяет обращаться к данным размером до одного байта. Технология NOR выигрывает в ситуациях, когда данные случайным образом записываются или читаются. Поэтому NOR чаще всего встраивают в сотовые телефоны (для хранения операционной системы) и планшеты, а также используется в компьютерах для хранения BIOS.

NAND Flash Memory

NAND память была изобретена после NOR, и также названа в честь особой разметки данных (Not AND – логическое Не-И). NAND память записывает и считывает данные с высокой скоростью, в режиме последовательного чтения, упорядочивая данные в небольшие блоки (страницы). Память NAND может считывать и записывать информацию постранично, однако не может обращаться к конкретному байту, как NOR. Поэтому NAND обычно используют в твердотельных накопителях (), аудио и видео проигрывателях, телевизионных приставках, цифровых камеры, мобильных телефонах (для хранения пользовательской информации) и других устройствах, в которых данные, как правило, записываются последовательно.

Например, большинство цифровых камер используют память на основе технологии NAND, так как изображения снимаются и записываются последовательно. Технология NAND является более эффективной еще и при чтении, так как она способна передавать целые страницы данных очень быстро. Как последовательная память, NAND идеальна для хранения данных. Цена на

Что такое флеш-память? | Флеш-память (на англ. Flash Memory ) или флеш-накопитель - вид твердотельной полупроводниковой энергонезависимой и перезаписываемой памяти.

Данный вид памяти может быть прочитан большое количество раз в пределах срока хранения информации, обычно от 10 до 100 лет. Но производить запись в память можно лишь ограниченное число раз (обычно в районе миллиона циклов). В основном в мире распространена флеш память, выдерживающая около ста тысяч циклов перезаписи и это гораздо больше, чем способна выдержать обычная дискета или диск CD-RW.
В отличие от накопителей на жестких дисках (HDD), флеш-память не содержит подвижных механических частей, и поэтому считается более надёжным и компактным видом носителя информации.
Так, благодаря своей компактности, относительной дешевизне и очень низкому энергопотреблению, флеш-накопители широко применяется в цифровом портативном оборудовании – в видео- и фотокамерах, в диктофонах, в MP3-плеерах, в КПК, в мобильных телефонах, смартфонах и коммуникаторах. Более того, данный вид памяти применяется для хранения встроенного ПО в различном оборудовании (модемы, мини-АТС, сканеры, принтеры, маршрутизаторы).
В последнее время широкое распространение получили флеш-накопители с USB входом (обычно говорят «флешка», USB-диск), вытеснившие дискеты и CD-диски.
В наше время основным недостатком устройств на базе флеш-накопителей, является очень высокое соотношение цена-объём, намного превышающий в сравнении с жесткими дисками в 2–5 раз. Поэтому объёмы флеш-дисков не очень велики, но в этих направлениях ведутся работы. Удешевляя технологический процесс и под действием конкуренции, уже многие фирмы заявили о выпуске SSD-дисков объёмом 512 ГБ и более. Например, в феврале 2011 года компания OCZ Technology предложила PCI-Express SSD-накопитель ёмкостью 1,2 ТБ, и позоляющий производить 10 млн. циклов на запись.
Современные SSD-накопители разрабатываются на базе многоканальных контроллеров, обеспечивающих параллельное чтение или запись сразу из нескольких микропроцессоров флеш-памяти. В следствие этого уровень производительности увеличился во столько раз, что ограничивающим фактором стала пропускная способность интерфейса SATA II.

КАК РАБОТАЕТ ФЛЕШ-ПАМЯТЬ

Флеш-накопитель сохраняет данные в массиве состоящий из транзисторов с плавающим затвором, называемые ячейками (на англ. cell). В обычных устройствах с одноуровневыми ячейками (на англ. single-level cell), любая из них может "запомнить" только один бит данных. Но некоторые более новые чипы с многоуровневыми ячейками (на англ. multi-level cell или triple-level cell) могут "запомнить" больше одного бита. В последнем случае на плавающем затворе транзистора может используется разный электрический заряд.

NOR ФЛЕШ-ПАМЯТЬ (NOR FLASH MEMORY)

В основе данного типа флеш-памяти лежит алгоритм ИЛИ-НЕ (на англ. NOR), так как в транзисторе с плавающим затвором слишком малое напряжение на затворе обозначает единицу.
Данный тип транзистора состоит из двух затворов: плавающего и управляющего. Первый затвор полностью изолирован и имеет возможность удерживать электроны до десяти лет. Ячейка также состоит из стока и истока. При подаче напряжения на управляющий затвор образуется электрическое поле и возникает так называемый туннельный эффект. Большая часть электронов переносится (туннелирует) через слой изолятора и проникает на плавающий затвор. Заряд на плавающем затворе транзистора изменяет «ширину» сток-исток и проводимость канала, что используется при чтении.
Запись и чтение ячеек очень сильно различаются в энергопотреблении: так, флеш-накопители потребляют больше тока при записи, чем при чтении (потребляется очень мало энергии).
Для удаления (стирания) данных на управляющий затвор подаётся достаточно высокое отрицательное напряжение, что приводит к обратному эффекту (электроны с плавающего затвора с помощью туннельного эффекта переходят на исток).
В NOR-архитектуре существует необходимость подводить к каждому транзистору контакт, что сильно увеличивает размеры процессора. Эта проблема решается с помощью новой NAND-архитектуры.

NAND ФЛЕШ-ПАМЯТЬ (NAND FLASH MEMORY)

В основе NAND-архитектуры лежит И-НЕ алгоритм (на англ. NAND). Принцип работы аналогичен NOR-типу, и отличается только расположением ячеек и их контактов. Уже нет необходимости подводить контакт к каждой ячейке памяти, так что стоимость и размер NAND-процессора значительно меньше. За счет этой архитектуры, запись и стирание происходят заметно быстрее. Однако эта технология не позволяет обращаться к произвольной области или ячейке, как в NOR.
Для достижения максимальной плотности и емкости, флеш-накопитель, изготовленный по технологии NAND, использует элементы с минимальными размерами. Поэтому, в отличие от NOR-накопителя допускается наличие сбойных ячеек (которые блокируются и не должны быть использованы в дальнейшем), что заметно усложняет работу с такой флеш-памятью. Более того, сегменты памяти в NAND снабжаются функцией CRC для проверки их целостности.
В настоящее время NOR и NAND-архитектуры существуют параллельно и никак не конкурируют друг с другом, поскольку у них разная область применения. NOR используется для простого хранения данных малого объема, NAND - для хранения данных большого размера.

ИСТОРИЯ ФЛЕШ-НАКОПИТЕЛЕЙ

Впервые флеш-память была изобретена в 1984 году инженером Фудзио Масуокой (Fujio Masuoka) работающего в то время в компании Toshiba. Название «flash» было придумано его коллегой Фудзио, Сёдзи Ариидзуми (Shoji Ariizumi), так как процесс стирания данных из памяти напомнил ему фотовспышку (на англ. flash). Фудзио представил свою разработку на Международном семинаре по электронным устройствам (International Electron Devices Meeting), в Сан-Франциско, в Калифорнии. Компанию Intel заинтересовало данное изобретение и через четыре года в 1988 году она выпустила первый коммерческий флеш-процессор NOR-типа.
NAND-архитектура флеш-памяти была анонсирована спустя год компанией Toshiba в 1989 году на Международной конференции построения твердотельных схем (International Solid-State Circuits Conference). У NAND-чипа была больше скорость записи и меньше площадь схемы.
В конце 2010 года, лидерами по производству флеш-накопителей являются Samsung (32% рынка) и Toshiba (17% рынка).
Стандартизацией процессоров флеш-памяти NAND-архитектуры занимается группа ONFI (NAND Flash Interface Working Group). Настоящим стандартом считается спецификация ONFI 1.0, выпущенная 28 декабря 2006 года. Стандартизацию ONFI при производстве NAND-процессоров поддерживают такие компании, как Samsung, Toshiba, Intel, Hynix и др.

ХАРАКТЕРИСТИКИ ФЛЕШ-НАКОПИТЕЛЕЙ

В настоящее время объём флеш-накопителей измеряется от килобайт до сотен гигабайт.

В 2005 году две компании Toshiba и SanDisk представили NAND-процессоры общим объёмом 1 Гб, использующие технологию многоуровневых ячеек (транзистор может хранить несколько бит данных, используя различный электрический заряд на плавающем затворе).

В сентябре 2006 года компания Samsung представила 4-гигабайтный чип, изготовленный по 40-нм технологическому процессу.

В конце 2007 года Samsung известила о создании первого в мире NAND-чипа, использующего технологию многоуровневых ячеек, выполненного уже по 30-нм технологическому процессу с ёмкостью накопителя 8 Гб.

В декабре 2009 года, компания Toshiba заявила, что 64 Гб NAND-чип уже поставляется заказчикам и массовый выпуск начался в первом квартале 2010 года.

16 июня 2010 года Toshiba представила первый в истории 128 Гб процессор, состоящий из шестнадцати модулей по 8 Гб.
Для повышения объёма флеш-памяти, в устройствах часто применяется комплексный массив, состоящий из нескольких процессоров.

В апреле 2011 года компании Intel и Micron представили MLC NAND флэш-чип емкостью 8 Гбайт, произведенного по 20-нм технологическому процессу. Самый первый 20-нм NAND процессор имеет площадь 118 мм, что на 35-40% меньше, чем у доступных в настоящее время 25-нм чипов на 8 Гбайт. Серийное производство данного чипа начнется в конце 2011 года.

ВИДЫ И ТИПЫ КАРТ ПАМЯТИ И ФЛЕШ-НАКОПИТЕЛЕЙ

CF (на англ. Compact Flash ): один из старейших стандартов типов памяти. Первая CF флеш-карта была произведена корпорацией SanDisk еще в 1994 году. Данный формат памяти очень распространён и в наше время. Чаще всего он применяется в профессиональном видео- и фото-оборудовании, так как ввиду своих больших размеров (43х36х3,3 мм) слот для Compact Flash физически проблематично установить в мобильные телефоны или MP3-плееры. Кроме того, ни одна карта не может похвастаться такими скоростями, объемами и надежностью. Максимальный объём Compact Flash уже достиг размера в 128 Гбайт, а скорость копирования данных увеличена до 120 Мбайт/с.

MMC (на англ. Multimedia Card ): карта в формате MMC имеет небольшой размер - 24х32х1,4 мм. Разработана совместно компаниями SanDisk и Siemens. MMC содержит контроллер памяти и обладает высокой совместимостью с устройствами самого различного типа. В большинстве случаев карты MMC поддерживаются устройствами со слотом SD.

RS-MMC (на англ. Reduced Size Multimedia Card ): карта памяти, которая вдвое меньше по длине стандартной карты MMC. Её размеры составляют 24х18х1,4 мм, а вес - порядка 6 гр., все остальные характеристики и параметры не отличаются от MMC. Для обеспечения совместимости со стандартом MMC при использовании карт RS-MMC нужен адаптер.

DV-RS-MMC (на англ. Dual Voltage Reduced Size Multimedia Card ): карты памяти DV-RS-MMC с двойным питанием (1,8 и 3,3 В) отличаются пониженным энергопотреблением, что позволит работать мобильному телефону немного дольше. Размеры карты совпадают с размерами RS-MMC, 24х18х1,4 мм.

MMCmicro : миниатюрная карта памяти для мобильных устройств с размерами 14х12х1,1 мм. Для обеспечения совместимости со стандартным слотом MMC необходимо использовать специальный переходник.

SD Card (на англ. Secure Digital Card ): поддерживается фирмами SanDisk, Panasonic и Toshiba. Стандарт SD является дальнейшим развитием стандарта MMC. По размерам и характеристикам карты SD очень похожи на MMC, только чуть толще (32х24х2,1 мм). Основное отличие от MMC - технология защиты авторских прав: карта имеет криптозащиту от несанкционированного копирования, повышенную защиту информации от случайного стирания или разрушения и механический переключатель защиты от записи. Несмотря на родство стандартов, карты SD нельзя использовать в устройствах со слотом MMC.

SDHC (на англ. SD High Capacity , SD высокой ёмкости ): Старые карты SD (SD 1.0, SD 1.1) и новые SDHC (SD 2.0) и устройства их чтения различаются ограничением на максимальную ёмкость носителя, 4 Гб для SD и 32 Гб для SDHC. Устройства чтения SDHC обратно совместимы с SD, то есть SD-карта будет без проблем прочитана в устройстве чтения SDHC, но в устройстве SD карта SDHC не будет читаться вовсе. Оба варианта могут быть представлены в любом из трёх форматов физических размеров (стандартный, mini и micro).

miniSD (на англ. Mini Secure Digital Card ): От стандартных карт Secure Digital отличаются меньшими размерами 21,5х20х1,4 мм. Для обеспечения работы карты в устройствах, оснащённых обычным SD-слотом, используется адаптер.

microSD (на англ. Micro Secure Digital Card ): в 2011 году являются самыми компактными съёмными устройствами флеш-памяти (11х15х1 мм). Используются, в первую очередь, в мобильных телефонах, коммуникаторах и т. п., так как, благодаря своей компактности, позволяют существенно расширить память устройства, не увеличивая при этом его размеры. Переключатель защиты от записи вынесен на адаптер microSD-SD. Максимальный объём карты microSDHC, выпущенной SanDisk в 2010 году, равен 32 Гб.

Memory Stick Duo : данный стандарт памяти разрабатывался и поддерживается компанией Sony. Корпус достаточно прочный. На данный момент - это самая дорогая память из всех представленных. Memory Stick Duo был разработан на базе широко распространённого стандарта Memory Stick от той же Sony, отличается малыми размерами (20х31х1,6 мм).

Memory Stick Micro (M2) : данный формат является конкурентом формата microSD (по размеру), сохраняя преимущества карт памяти Sony.

xD-Picture Card : карта используются в цифровых фотоаппаратах фирм Olympus, Fujifilm и некоторых других.