Время доступа флэш память. Что такое чип памяти и как программировать микросхемы

Принципиально микросхемы памяти делятся на энергонезависимые, не теряющие информацию при выключении питания, и энергозависимые, содержимое которых при каждом включении считается неопределенным. Первые из них предназначены для хранения программ, констант, таблиц и других, не меняющихся или редко меняющихся данных, и называются ПЗУ (постоянные запоминающие устройства). Вторые предназначены для временного хранения данных, возникающих в процессе функционирования устройства, и называются ОЗУ (оперативные запоминающие устройства). В свою очередь, ПЗУ классифицируются по способу занесения информации и по способу ее стирания, если только такая возможность существует в данном классе ПЗУ. Самым дешевым способом записи является масочное программирование в процессе изготовления кристалла. Микросхемы ЗУ с <прошитой> информации - ROM (Read Only Memory) - невозможно перепрограммировать, и применяются они только при массовом производстве, большой серийности и гарантированной безошибочности заносимого текста. Следующая разновидность ПЗУ - PROM (Programmable Read Only Memory) - поставляется в <чистом> виде и предоставляет пользователю возможность самостоятельно, с помощью программатора, занести требуемое содержимое. Если этот процесс необратим, то такие микросхемы называются OTP (One Time Programmable) - однократно программируемые. Если существует возможность очистки содержимого с последующим занесением нового, то микросхемы называются EPROM (Erasable Programmable Read Only Memory). И, наконец, в зависимости от способа стирания они могут быть либо UV-EPROM, с ультрафиолетовым стиранием, либо EEPROM, с электрическим стиранием. Однако, сложившаяся за последние годы терминология чаще использует аббревиатуру EEPROM за определенной разновидностью памяти, которая, в каком-то смысле, может считаться энергонезависимым ОЗУ.
Собственно ПЗУ с электрическим стиранием принято называть Flash памятью. Отличия между ними достаточно велики. EEPROM допускает при записи произвольный доступ к ячейкам памяти, Flash память предполагает только страничный, то есть с разбивкой на сектора, доступ при стирании/записи. Переписать содержимое единственной ячейки памяти невозможно. При чтении принципиальной разницы между ними нет. Кроме того, программирование Flash памяти - это целый процесс, который требует дополнительных программных шагов для перевода микросхемы в режим программирования и контроля его окончания. В итоге, область применения Flash памяти - тексты программ, таблицы и другие данные, изменение которых или не предполагается вовсе, или допускается, но весьма редко. EEPROM память используется для текущего запоминания данных в процессе работы, при смене констант, настроек (например в телевизоре), с автоматическим их сохранением при выключении питания. В то же время Flash память обладает большей емкостью и меньшей ценой при пересчете на стоимость хранения одного байта информации.
Оперативная память (RAM - Random Access Memory) принципиально делится на два типа: статическая - SRAM и динамическая - DRAM. Первая, при наличии питающего напряжения, может сохранять записанную информацию как угодно долго без всяких обращений к ней. Запоминающей ячейкой является триггер. Вторая требует постоянной <регенерации>, то есть считывания и повторной записи в соответствующие ячейки. Это связано с физической основой хранения, которой в DRAM является конденсатор ничтожно малой емкости, включенный на пересечении строк и столбцов матрицы. Этим достигается сверхвысокая плотность упаковки и большая удельная информационная емкость микросхемы. Платой является необходимость периодически осуществлять цикл регенерации. Также приходится жертвовать энергопотреблением. Микросхемы DRAM применяются сегодня практически только в компьютерах и другой вычислительной технике.
Для нас больший интерес представляют микросхемы SRAM, которые, в свою очередь подразделяются на микромощные со сравнительно небольшим (55 - 120 нс) быстродействием и высокоскоростные (7 - 25 нс) со значительно большим энергопотреблением.
Существуют и другие разновидности ОЗУ, например «Zero-Power» со встроенной литиевой батареей или «Dual-Port» с отличной от обычных системой доступа к информации.


Основные параметры микросхем памяти:
  • информационная емкость. Cпособность хранить определенное число бит двоичной информации;
  • организация микросхем ЗУ. Она может быть различной при одном и том же объеме памяти. Например, 65 536 бит могут выглядеть как 4 096 х 16, или как 8 192 х 8, или в другом сочетании. Внутренняя организация запоминающей матрицы при этом остается неизменной, изменяется только внешний интерфейс и, соответственно, число внешних выводов;
  • время выборки. Bремя от подачи последнего из сигналов, разрешающих чтение до появления на выходе устойчивых данных;
  • потребляемая мощность. Как обычно, существует компромисс между потребляемой мощностью и быстродействием микросхемы;
  • напряжение питания. Общая тенденция к снижению напряжения питания привела к появлению микросхем ЗУ, работающих при 3,3, 2,5 и даже 1,8 вольт;
  • температурный диапазон. Коммерческий, индустриальный или расширенный.
К специфическим параметрам ЗУ относятся такие как: время хранения (часов, лет), число циклов перезаписи , время стирания и другие.

В заключение, необходимо отметить, что микросхемы EEPROM и Flash типов часто имеют последовательный внешний интерфейс обмена данными. Это значительно уменьшает скорость обмена, но, в тех применениях, где она не критична, позволяет экономить число внешних выводов микросхем, занимаемую на печатной плате площадь, число паек.

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

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

рис.1 Структура NOR рис.2 Структура NAND

В результате различия в организации структуры между памятью NOR и NAND находят свое отражение в их характеристиках. При работе со сравнительно большими массивами данных процессы записи/стирания в памяти NAND выполняются значительно быстрее памяти NOR. Поскольку 16 прилегающих друг другу ячеек памяти NAND соединены последовательно друг с другом без каких-либо контактных промежутков, достигается высокая площадь размещения ячеек на кристалле, что позволяет получить большую емкость при одинаковых технологических нормах. В основе программирования флэш-памяти NAND лежит процесс туннелирования электронов. А поскольку он используется как для программирования, так и для стирания, достигается низкое энергопотребление микросхемы памяти. Последовательная структура организации ячеек позволяет получить высокую степень масштабируемости, что делает NAND-флэш лидером в гонке наращивания объемов памяти. Ввиду того, что туннелирование электронов осуществляется через всю площадь канала ячейки, интенсивность захвата заряда на единицу площади у NAND-флэш ниже, чем в других технологиях флэш-памяти, в результате чего она имеет более высокое количество циклов программирования/стирания. Программирование и чтение выполняются посекторно или постранично, блоками по 512 байт, для эмуляции общераспространенного размера сектора дисковых накопителей.

Основные отличия в параметрах флэш-памяти, изготовленной по различным технологиям, приведены в таблице 1.

Таблица 1. Сравнительные характеристики модулей памяти на основе ячеек NAND и NOR

Параметр NAND NOR
Емкость ~ 1 Гбит (2 кристалла в корпусе) ~ 128 Мбит
Напряжение питания 2.7 – 3.6 В 2.3 – 3.6 В
Ввод/вывод х8 / х16 х8 / х16
Время доступа 50 нС (цикл последовательного доступа)
25 мкС (случайный доступ)
70 нС (30 пФ, 2.3 В)
65 нС (30 пФ, 2.7 В)
Скорость программирования (типовая) -
200 мкС / 512 байт
8 мкС / байт
4.1 мС / 512 байт
Скорость стирания (типовая) 2 мС / блок (16 кБ) 700 мС / блок
Совокупная скорость
программирования и стирания (типовая)
33.6 мС / 64 кБ 1.23 сек / блок (основной: 64 кБ)

Ведущим лидером в производстве NAND-флэш микросхем является фирма Hynix. Она производит несколько разновидностей микросхем памяти, различающихся по следующим ключевым параметрам:

  • емкость (256 Мбит, 512 Мбит и 1 Гбит);
  • ширина шины, 8 или 16 бит (х8, х16);
  • напряжение питания: от 2.7 до 3.6 В (3.3 В устройства) или от 1.7 до 1.95 В (1.8 В устройства);
  • размер страницы: в х8 устройствах (512 + 16 запасных) байт, в 16х – (256 + 8 запасных) слов;
  • размер блока: в х8 устройствах (16 К + 512 запасных) байт, в 16х – (8 К + 256 запасных) слов;
  • время доступа: случайный доступ 12 мкС, последовательный 50 нС;
  • время программирования страницы 200 мкС;

Все микросхемы NAND-флэш от Hynix характеризуются типичным временем стирания блока 2 мС, имеют аппаратную защиту данных при переходных процессах по питанию и позволяют выполнять 100000 циклов записи/стирания. Гарантированное время сохранности данных составляет 10 лет. Важной особенностью микросхем памяти Hynix является их повыводная совместимость вне зависимости от емкости. Это позволяет очень легко улучшать потребительские характеристики конечного изделия. В таблице 2 приведены базовые параметры всех микросхем NAND-флэш фирмы Hynix.

Таблица 2. Сравнительный перечень микросхем NAND-флэш фирмы Hynix

Об"ем Тип Организаця Напряжение
питания
Диапазон
рабочих
температур*
Сккорость
(ns)
Корпус
256Mbit 32Mx8 1.8V C,E,I 50 TSOP/WSOP/FBGA
32Mx8 3.3V C,E,I 50 TSOP/WSOP/FBGA
16Mx16 1.8V C,E,I 50 TSOP/WSOP/FBGA
16Mx16 3.3V C,E,I 50 TSOP/WSOP/FBGA
512Mbit 64Mx8 1.8V C,E,I 50 TSOP/WSOP/FBGA
64Mx8 3.3V C,E,I 50 TSOP/WSOP/FBGA
32Mx16 1.8V C,E,I 50 TSOP/WSOP/FBGA
32Mx16 3.3V C,E,I 50 TSOP/WSOP/FBGA
1Gb 128Mx8 1.8V C,E,I 50 TSOP/WSOP/FBGA
128Mx8 1.8V C,E,I 50 TSOP/WSOP/FBGA
128Mx8 3.3V C,E,I 50 TSOP/WSOP/FBGA
128Mx8 3.3V C,E,I 50 TSOP/WSOP/FBGA
64Mx16 1.8V C,E,I 50 TSOP/WSOP/FBGA
64Mx16 1.8V C,E,I 50 TSOP/WSOP/FBGA
64Mx16 3.3V C,E,I 50 TSOP/WSOP/FBGA
64Mx16 3.3V C,E,I 50 TSOP/WSOP/FBGA

* - Диапазоны температур
C - Коммерческий диапазон рабочих температур 0...+70°C
E - Расширенный диапазон рабочих температур -25...+85°C
I - Индустриальный диапазон рабочих температур -40...+85°C

Более детально особенности микросхем памяти Hynix можно рассмотреть на примере кристаллов серии HY27xx(08/16)1G1M. На рис.3 показана внутренняя структура и назначение выводов этих приборов. Линии адреса мультиплексированы с линиями ввода/вывода данных на 8-ми или 16-ти разрядной шине ввода/вывода. Такой интерфейс уменьшает количество используемых выводов и делает возможным переход к микросхемам большей емкости без изменения печатной платы. Каждый блок может быть запрограммирован и стерт 100000 раз. Для увеличения жизненного цикла NAND-флэш устройств настоятельно рекомендуется применять код корректировки ошибок (ECC). Микросхемы имеют выход «чтение/занят» с открытым стоком, который может использоваться для идентификации активности контроллера PER (Program/Erase/Read). Поскольку выход сделан с открытым стоком, существует возможность подключать несколько таких выходов от разных микросхем памяти вместе через один «подтягивающий» резистор к положительному выводу источника питания.


Рис.3 Внутренняя организация микросхем NAND-флэш Hynix

Для оптимальной работы с дефектными блоками доступна команда «Copy Back». Если программирование какой-либо страницы оказалось неудачным, данные по этой команде могут быть записаны в другую страницу без их повторной отправки.

Микросхемы памяти Hynix доступны в следующих корпусах:

  • 48-TSOP1 (12x20x1.2 мм) – рис.4;
  • 48-WSOP1 (12х12х0.7 мм)
  • 63-FBGA (8.5х15х1.2 мм, 6х8 массив шаровых контактов, 0.8 мм шаг)


Рис.4 NAND-флэш Hynix

Массив памяти NAND-структуры организован в виде блоков, каждый из которых содержит 32 страницы. Массив раздел на две области: главную и запасную (рис.5). Главная область массива используется для хранения данных, в то время как запасная область обычно задействована для хранения кодов коррекции ошибок (ECC), программных флагов и идентификаторов негодных блоков (Bad Block) основной области. В устройствах х8 страницы в главной области разделены на две полустраницы по 256 байт каждая, плюс 16 байт запасной области. В устройствах х16 страницы разделены на главную область объемом 256 слов и запасную объемом 8 слов.


Рис.5 Организация массива NAND-памяти

NAND-флэш устройства со страницами 528 байт / 264 слова могут содержать негодные блоки, в которых может быть одна и более неработоспособных ячеек, надежность которых не гарантируется. Помимо этого, дополнительные негодные блоки могут появиться в ходе эксплуатации изделия. Информация о плохих блоках записывается в кристалл перед отправкой. Работа с такими блоками выполняется по процедуре, детально описанной в справочном руководстве по микросхемам памяти Hynix.

При работе с микросхемами памяти выполняются три основных действия: чтение (рис.6), запись (рис.7) и стирание (рис.8).

Процедура чтения данных


Рис.6 Диаграмма процедуры чтения

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

Чтение страницы выполняется после доступа в режиме случайного чтения, при котором содержимое страницы переносится в буфер страницы. О завершении переноса информирует высокий уровень на выход «Чтение/занят». Данные могут быть считаны последовательно (от выбранного адреса столбца до последнего столбца) по импульсу сигнала на Read Enable (RE).

Режим последовательного построчного чтения активен, если на входе Chip Enable (CE) остается низкий уровень, а по входу Read Enable поступают импульсы после прочтения последнего столбца страницы. В этом случае следующая страница автоматически загружается в буфер страниц и операция чтения продолжается. Операция последовательного построчного чтения может использоваться только в пределах блока. Если блок изменяется, должна быть выполнена новая команда чтения.

Процедура записи данных


Рис.7 Диаграмма процедуры записи

Стандартной процедурой записи данных является постраничная запись. Главная область массива памяти программируется страницами, однако допустимо программирование части страницы с необходимым количеством байт (от 1 до 528) или слов (от 1 до 264). Максимальное число последовательных записей частей одной и той же страницы составляет не более одной в главной области и не более двух в резервной области. После превышения этих значений необходимо выполнить команду стирания блока перед любой последующей операцией программирования этой страницы. Каждая операция программирования состоит из пяти шагов:

  1. Один цикл на шине необходим для настройки команды записи страницы.
  2. Четыре шинных цикла требуются для передачи адреса.
  3. Выдача данных на шину (до 528 байт / 264 слов) и загрузка в буфер страниц.
  4. Один цикл на шине необходим для выдачи команды подтверждения для старта контроллера PER.
  5. Выполнение контроллером PER записи данных в массив.

Процедура стирания блока


Рис.8 Диаграмма процедуры стирания

Операция стирания выполняется за один раз над одним блоком. В результате её работы все биты в указанном блоке устанавливаются в «1». Все предыдущие данные оказываются утерянными. Операция стирания состоит из трех шагов (рис.8):

  1. Один цикл шины необходим для установки команды стирания блока.
  2. Только три цикла шины нужны для задания адреса блока. Первый цикл (A0-A7) не требуется, поскольку верны только адреса с А14 по А26 (старшие адреса), А9-А13 игнорируются.
  3. Один цикл шины необходим для выдачи команды подтверждения для старта контроллера PER.

Помимо Hynix микросхемы NAND-памяти выпускаются еще несколькими производителями, среди которых весьма большую номенклатуру и объем продаж изделий имеет компания Samsung. Она производит две базовые линейки микросхем памяти NAND Flash и One NAND™. Модули памяти семейства One NAND™ представляют собой одиночный кристалл памяти со стандартным интерфейсом NOR-флэш, основанный на массиве ячеек NAND-флэш.

Ассортимент выпускаемых компанией Samsung изделий более широк, чем у Hynix. Представлены модули емкостью от 4 Мбит до 8 Гбит, работающие в коммерческом и индустриальном температурных диапазонах. Доступны как 8-ми, так и 16-разрядные модификации на разные диапазоны питающих напряжений: 1,65…1,95 В или 2,7…3,6 В. Выпускаемые Samsung изделия имеют развитые аппаратные возможности защиты данных: защиту от записи для BootRAM, защитный режим для Flash-массива и защиту от случайной записи при включении и выключении.

В остальном устройство микросхем памяти Hynix и изделий семейства NAND Flash от Samsung практически идентично. В этой ситуации предпочтительным для потребителя вариантом является продукция того производителя, рыночная стоимость изделий которого наиболее приемлема.

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

Таблица 3. Преимущества и недостатки использования NAND-флэш в твердотельных накопителях

Категория Содержимое
Возможности Преимущества Хранилище данных, которые могут быть переданы через USB
Малый размер, легкость создания портативных устройств
Нет ограничений в объеме памяти
Безопасное хранение данных, физически более надежное в сравнении в HDD
Поддержка функции «горячей» установки Plug&Play
Быстрая скорость передачи:
USB 1.1: максимум до 12 Мбод, USB 2.0: максимум 480 Мбод
Превосходная совместимость со стандартизованным USB интерфейсом
Возможность питания от USB порта (500 мА, 4,5…5,5 В)
Недостатки Необходимость в программном обеспечении в операционной системе хост-контроллера
Необходимость в использовании чипсета USB-хоста
Высокая стоимость в сравнении с HDD сравнимой емкости
Емкость продукта От 16 Мбит до 8 Гбит
Скорость передачи Запись До 13 Мб/с под USB 2.0 у карты CF от SanDisk
Чтение До 15 Мб/с под USB 2.0 у SanDisk
Применение ПК (настольные, переносные), DVC,PDA, сотовые телефоны и пр.
Ведущие производители, использующие флэш-память M-Systems, Lexar Media, SanDisk и др.
Ассоциации USB-IF (форум конструкторов USB), UTMA (ассоциация универсальной транспортабельной памяти)

В этой статье мы с Вами поговорим о том, что положено в основу создания и по какому принципу работает устройство флэш-памяти (не путайте с USB флэш-накопителями и картами памяти). Кроме этого, вы узнаете о ее преимуществах и недостатках перед другими типами ПЗУ (постоянно запоминающими устройствами) и познакомитесь с ассортиментом самых распространенных накопителей, которые содержат в себе флэш-память.

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

Флэш-память (flash memory) — относится к полупроводникам электрически перепрограммируемой памяти (EEPROM). Благодаря техническим решениям, не высокой стоимости, большому объему, низкому энергопотреблению, высокой скорости работы, компактности и механической прочности, флэш-память встраивают в цифровые портативные устройства и носители информации.

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

Тип ПЗУ Преимущества Недостатки
Жесткий диск Большой объем хранимой информации.

Высокая скорость работы.

Дешевизна хранения данных (в расчете на 1 Мбайт).

Большие габариты.

Чувствительность к вибрации.

Тепловыделение.

Оптический диск Удобство транспортировки.

Дешевизна хранения информации.

Возможность тиражирования.

Небольшой объем.

Нужно считывающее устройство.

Ограничения при операциях (чтение, запись).

Невысокая скорость работы.

Чувствительность к вибрации.

Флэш-память Высокая скорость доступа к данным.

Экономное энергопотребление.

Устойчивость к вибрациям.

Удобство подключения к компьютеру.

Компактные размеры.

Ограниченное количество циклов записи.

Сегодня никто не сомневается в том, что флэш-память будет продолжать укреплять свои позиции в информационных технологиях, особенно в линейке мобильных устройств (КПК, планшеты, смартфоны, плееры). На основе флэш-памяти работают самые востребованные и популярные и сменные карты памяти для электронных устройств (SD, MMC, miniSD…).

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

  • Compact Flash Type I (CF I)/Type II (CF II);
  • Memory Styck (MS Pro, MS Duo);
  • Secure Digital (SD);
  • miniSD;
  • xD-Picture Card (xD);
  • MultiMedia Card (MMC).
  • USB Flash Drive.

В одной из публикаций я писал о том , а о том как выбрать карту в формате SD (microSD, miniSD) .

Принцип работы флэш-памяти.

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

Во флэш-памяти производители используют два типа ячеек памяти MLC и SLC.

  • Флэш-память с MLC(Multi-level cell — многоуровневые ячейки памяти)ячейки более емкие и дешевые, но они с большим временем доступа и меньшим количеством циклов записи/стирания (около 10000).
  • Флэш-память, которая содержит в себе SLC (Single-level cell — одноуровневые ячейки памяти) ячейки имеет максимальное количество циклов записи/стирания(100000) и обладают меньшим временем доступа.

Изменение заряда (запись/стирание) выполняется приложением между затвором и истоком большого потенциала, чтобы напряженность электрического поля в тонком диэлектрике между каналом транзистора и карманом оказалась достаточна для возникновения туннельного эффекта. Для усиления эффекта тунеллирования электронов в карман при записи применяется небольшое ускорение электронов путем пропускания тока через канал полевого транзистора.

Принцип работы флеш-памяти основан на изменении и регистрации электрического заряда в изолированной области («карман») полупроводниковой структуры.

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

Теперь рассмотрим более подробно ячейки памяти с одним и двумя транзисторами…

Ячейка памяти с одним транзистором.

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

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

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

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

Так каким же образом в случае необходимости на плавающий затвор помещать заряд (записывать содержимое ячейки памяти) и удалять его оттуда (стирать содержимое ячейки памяти) когда это необходимо.

Поместить заряд на плавающий затвор (процесс записи) можно методом инжекции горячих электронов (CHE-Channel Hot Electrons) или методом туннелирования Фаулера-Нордхейма.

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

Чтобы удалить заряд с плавающего затвора (выполнить стирания ячейки памяти) на управляющий затвор подается высокое отрицательное напряжение (около 9 В), а на область истока подается положительное напряжение. Это приводит к тому, что электроны туннелируют из области плавающего затвора в область истока. Таким образом происходит квантовое туннелирование Фаулера — Нордхейма (Fowler — Nordheim).

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

Так как при создании массива памяти, каждая ячейка памяти (то есть транзистор) подключается к двум перпендикулярным шинам. Управляющие затворы подключаются к шине, которую называют линией слов (Word Line), а стоки соединяют с шиной, ее называют битовой линией (Bit Line). В следствии чего в схеме находится высокое напряжение и при записи методом инжекции горячих электронов все линии — слов, битов и истоков нужно разместить на большом расстоянии друг от друга. Это даст нужный уровень изоляции, но отразится на ограничении объема флэш-памяти.

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

Ячейка памяти с двумя транзисторами.

Двухтранзисторная ячейка памяти, это модифицированная однотранзисторная ячейка, в которой находится обычный КМОП-транзистор и транзистор с плавающим затвором. В этой структуре обычный транзистор выполняет роль изолятора транзистора с плавающим затвором от битовой линии.

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

Устройство флэш-памяти с архитектурой NOR.

Тип этой памяти является источником и неким толчком в развитии всей EEPROM. Ее архитектура была разработана компанией Intel в далеком 1988 году. Как было написано ранее, чтобы получить доступ к содержимому ячейки памяти (инициализировать ячейку), нужно подать напряжение на управляющий затвор.

Поэтому разработчики компании все управляющие затворы подсоединили к линии управления, которая называется линией слов (Word Line). Анализ информации ячейки памяти выполняется по уровню сигнала на стоке транзистора. Поэтому разработчики все стоки транзисторов подсоединили к линии, которая называется линией битов (Bit Line).

Архитектура NOR получила название благодаря логической операции ИЛИ — НЕ (в переводе с английского NOR). Принцип логической операции NOR заключается в том, что она над несколькими операндами (данные, аргумент операции…) дает единичное значение, когда все операнды равны нулю, и нулевое значение во всех остальных операциях.

В нашем случае под операндами подразумевается значение ячеек памяти, а значит в данной архитектуре единичное значение на битовой линии будет наблюдается только в том случае, когда значение всех ячеек, которые подключены к битовой линии, будут равны нулю (все транзисторы закрыты).

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


Структура шести ячеек NOR Flash

Флеш-память с архитектурой NOR как правило используют в устройствах для хранения программного кода. Это могут быть телефоны, КПК, BIOS системных плат…

Устройство флэш-памяти с архитектурой NAND.

Данный тип памяти был разработан компанией Toshiba. Эти микросхемы благодаря своей архитектуре применяют в маленьких накопителях, которые получили имя NAND (логическая операция И-НЕ). При выполнении операция NAND дает значение нуль только, когда все операнды равны нулю, и единичное значение во всех других случаях.

Как было написано ранее, нулевое значение это открытое состояние транзистора. В следствии этого в архитектуре NAND подразумевается, что битовая линия имеет нулевое значение в том случае, когда все подключенные к ней транзисторы открыты, и значение один, когда хотя бы один из транзисторов закрыт. Такую архитектуру можно построить, если подсоединить транзисторы с битовой линией не по одному (так построено в архитектуре NOR) , а последовательными сериями (столбец из последовательно включенных ячеек).

Данная архитектура по сравнению с NOR хорошо масштабируется потому, что разрешает компактно разместить транзисторы на схеме. Кроме этого архитектура NAND производит запись путем туннелирования Фаулера — Нордхейма, а это разрешает реализовать быструю запись нежели в структуре NOR. Чтобы увеличить скорость чтения, в микросхемы NAND встраивают внутренний кэш.

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


Структура одного столбца NAND Flash

В последнее время ходят слухи о том, что компания Unity Semiconductor разрабатывает флэш-память нового поколения, которая будет построена на технологии CMOx. Предполагается, что новая память придет на смену флеш-памяти типа NAND и преодолеет ее ограничения, которые в памяти NAND обусловлены архитектурой транзисторных структур. К преимуществам CMOx относят более высокую плотность и скорость записи, а также более привлекательную стоимость. В числе областей применения новой памяти значатся SSD и мобильные устройства. Ну, что же правда это или нет покажет время.

Чтобы более детально донести до Вас всю необходимую информацию я разместил видео ролик по теме.

P.S. Объяснить простым языком технический материал людям которые не представляют как построена архитектура компьютера… очень сложно, но я надеюсь у меня это получилось. Для полной и достоверной информации в этой статье я частично использовал учебную литературу. Надеюсь эта статья была для вас полезной и познавательной. Пока!

Микросхемы флеш-памяти eeprom серии 25xxx широко применяются в микроэлектронике. В частности, в современных телевизорах и материнских платах в 25xxx хранится прошивка биоса. Перепрошивка 25xxx осуществляется по интерфейсу SPI, в чем и заключается отличие этих микросхем от флеш-памяти семейства 24xxx, которые шьются по i2c(квадратная шина).

Соответственно, для чтения/стирания/записи 25xxx нужен SPI-программатор. Одним из самых дешевых вариантов программаторов для этой цели является USBasp, который стоит смешные деньги- с доставкой всего около 2$ на ебее. В свое время я купил себе такой для программирования микроконтроллеров. Теперь мне понадобилось прошить не микроконтроллер, а SPI-флеш и решено было им воспользоваться.

Забегая вперед скажу, что прошивка от Tifa работает, микросхемы 25xxx шьются. Кстати, кроме 25xxx, модифицированный программатор рассчитан на работу с 24xxx и Microwire.

1. Перепрошивка USBasp

Сначала нужно замкнуть контакты J2:

Лично я не просто замкнул, а впаял в контакты переключатель:

При замкнутых контактах J2 (это у меня переключатель в положении вправо) USBasp переходит в режим готовности к перепрошивке.

Сам себя USBap перепрошить не может, поэтому нужен еще один программатор. USBasp как бы оказывается в положении хирурга, который не может сам себе вырезать аппендикс и просит друга помочь. Для перепрошивки USBasp я использовал самодельный программатор AVR910 , но для одного раза можно по-быстрому за пару минут спаять программатор «5 проводков» , который состоит всего-лишь из одного разъема LPT и 5 резисторов.

Подключаем программатор к USBasp:



Теперь идем на форум альтернативной прошивки от Tifa, в самом верхнем посте находим и качаем архив с последней прошивкой и ПО.

Находим там файл mega8.hex, это и есть альтернативная прошивка для USBasp.

Запускаем CodeVisionAvr (я использую версию 2.0.5), выставляем настройки программатора: Settings-> Programmer.

Устанавливаем настройки записи: Tools->Chip programmer. Выбираем чип Atmega8L, именно такой стоит на USBasp. Фьюзы не выставляем- те, что надо, уже прошиты в чипе. Остальные настройки оставляем по умолчанию.

Стираем старую программу USBasp: Program-> Erase chip.

Открываем файл прошивки mega8.hex: File-> Load flash.

Перепрошиваем USBasp: Program-> Flash.

Если прошла запись и не выдало сообщение об ошибке, значит альтернативная прошивка благополучно прошита в USBasp. Теперь USBasp может не только шить AVR-микроконтроллеры, как раньше, но еще и работать с флеш-памятью. Размыкаем контакты J2, что бы USBasp снова перешел в режим программатора.

Теперь проверим, видит ли Windows 7 x86 этот программатор. Вставляем USBasp в USB и… система пишет «USBasp не удалось найти драйвер». Понятно, нужно установить драйвер. Но драйверов в скачанном на форуме нет, их нужно скачать на родном сайте USBasp , оригинальные драйвера подходят и для модифицированного программатора. Скачали, установили, Win7 увидела программатор, все ок. Впрочем, я программирую микроэлектронику на ноутбуке с WinXP, она тоже после установки драйверов видит программатор.

2. Площадка для подключения USBasp к микросхеме 25xxx DIP

Теперь нужно подготовить площадку для программирования 25xxx. Я это сделал на макетной плате по такой схеме:

3. Прошивка микросхем 25xxx через USBasp

Для прошивки 25xxx через модифицированный USBasp используется программа AsProgrammer, которая тоже есть в .

Для примера, поработаем с микросхемой Winbond 25×40. Запускаем AsProgrammer, ставим режим работы SPI и выбираем тип микросхемы: Микросхема-> SPI-> Winbond->…

… и видим, что W25X40 в списке нет. Что же, тогда заполним параметры микросхемы вручную. Находим мануал на Winbond 25X40 и там на странице 4 видим такие параметры:

Эти параметры вносим сюда:

Подключаем USBasp к компьютеру и микросхеме Winbond 25×40:

С помощью кнопок «прочитать», «записать», «стереть», проверяем работу программатора:

Только нужно учесть, что перед тем, как что-то записать в микросхему, сначала нужно выставить: Настройки-> Проверка записи, что бы после записи прошивки в микросхему была выполнена проверка на соответствие того, что писали тому, что в итоге записали. Это немаловажная вещь, потому что если прошивку делать не на очищенный чип, в него запишется чёрт-те что. Поэтому сначала нужно стереть микросхему, а затем только проводить ее запись.

Благодаря прошивке от Tifa дешевый китайский программатор USBasp теперь умеет работать с микросхемами flash-памяти eeprom 25xxx. Теоретически еще может работать c 24xxx и Microwire, но я проверил только работу с 25xxx.

UPD1:
Оказывается, такую же прошивку можно записать и в программатор AVR910. Тогда он тоже будет работать с flash-памятью 25xxx:

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

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

Итак, сердцем многих устройств памяти является полевой транзистор с плавающим затвором. Гениальнейшее изобретение 70-х годов 20-го века. Его отличие от обычных полевых транзисторов заключается в том, что между затвором и каналом, прямо в диэлектрике, расположен еще один проводник – который и называют плавающим затвором. Вот как все это выглядит:

На рисунке мы видим привычные нам сток-исток-затвор, а также расположенный в диэлектрике дополнительный проводник. Давайте разберемся как же это устройство работает.

Создадим между стоком и истоком разность потенциалов и подадим положительный потенциал на затвор. Что тогда произойдет? Правильно, через полевой транзистор, от стока к истоку потечет ток. Причем величина тока достаточно велика для того, чтобы “пробить” диэлектрик. В результате этого пробоя часть электронов попадет на плавающий затвор. Отрицательно заряженный плавающий затвор создает электрическое поле, которое начинает препятствовать протеканию тока в канале, в результате чего транзистор закрывается. И если отключить питание транзистора, электроны с плавающего затвора никуда не денутся и его заряд останется неизменным на долгие годы.

Но, конечно же, есть способ разрядить плавающий затвор. Для этого надо всего лишь подать на “основной” затвор напряжение противоположного знака, которое и “сгонит” все электроны, в результате чего плавающий затвор останется не заряженным.

Собственно так и происходит хранение информации – если на затворе есть отрицательный заряд, то такое состояние считается логической единицей, а если заряда нет – то это логический ноль.

С сохранением информации разобрались, осталось понять как нам считать информацию из транзистора с плавающим затвором. А все очень просто. При наличии заряда на плавающем затворе его электрическое поле препятствует протеканию тока стока. Допустим при отсутствии заряда мы могли подавать на “основной” затвор напряжение +5В, и при этом в цепи стока начинал протекать ток. При заряженном плавающем затворе такое напряжение не сможет заставить ток течь, поскольку электрическое поле плавающего затвора будет ему мешать. В этом случае ток потечет только при напряжении +10В (к примеру =)). Таким образом, мы получаем два пороговых значения напряжения. И, подав, к примеру +7.5В мы сможем по наличию или отсутствию тока стока сделать вывод о наличии или отсутствии заряда на плавающем затворе. Вот таким образом и происходит считывание сохраненной информации.

Как все это связано с Flash-памятью? А очень просто – полевой транзистор с плавающим затвором является минимальной ячейкой памяти, способной сохранить один бит информации. И любая микросхема памяти состоит из огромного количества расположенных определенным образом транзисторов. И вот теперь пришло время рассмотреть основные типы Flash-памяти. А именно я бы хотел обсудить NOR и NAND память.

Оба этих типа памяти построены на основе транзисторов с плавающим затвором, которым мы сегодня уделили немало времени) А принципиальное отличие состоит в том, каким образом соединены эти транзисторы.

Конструкция NOR использует двумерную таблицу проводников. Проводники называют линией битов и линией слов. Все стоки транзисторов подключаются к линии битов, а все затворы к линии слов. Рассмотрим пример для лучшего понимания.

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

С NAND все несколько сложнее. Если возвращаться к аналогии с массивом, то ячейки NAND-памяти представляют собой трехмерный массив. То есть к каждой линии битов подключен не один, а сразу несколько транзисторов, что в итоге приводит к уменьшению количества проводников и увеличению компактности. Это как раз и является одним из главных преимуществ NAND-памяти. Но как же нам считать состояние определенного транзистора при такой структуре? Для понимания процесса рассмотрим схему:

Как видно из схемы, одна линия битов соответствует нескольким ячейкам. И важной особенностью является следующее: если хотя бы один из транзисторов закрыт, то на линии битов будет высокое напряжение. Вот смотрите:

Действительно, низкий уровень на линии битов будет только тогда, когда вся цепочка транзисторов окажется открытой (вспоминаем курс, посвященный полевым транзисторам 😉).

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

Такая вот получилась статейка сегодня) Разобрались мы с принципом работы и основными типами Flash, а также с устройством и принципом работы NAND и NOR-памяти. Надеюсь, что статья окажется полезной и понятной, до скорых встреч!