Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Организация и программирование флэш-памяти Intel
По организации и программированию можно выделить три поколения флэш-памяти Intel. Микросхемы первого поколения (28F256, 28F512, 28F010, 28F020) представляют собой единый массив памяти, стираемый целиком (bulk erase). Для выполнения стирания и записи микросхемы имеют внутренний регистр команд и управляющий автомат WSM (Write State Machine). Стирание и программирование флэш-памяти возможны только при подаче на вход VPP напряжения 12 В по командам, записываемым во внутренний регистр в шинном цикле записи по сигналу WE#. Выполнение команд инициируется записью кодов команд во внутренний регистр, для чего процессор должен выполнить команду записи в память по адресу, принадлежащему области программируемой микросхемы флэш-памяти. На микросхему при этом должны прийти сигналы СЕ# (выбор) и WE# (запись). Последующие обращения к этой области как по записи (W), так и по чтению (R) должны соответствовать исполняемой команде (табл. 7.25). В шинном цикле записи адрес (если он требуется для данной команды) фиксируется по спаду сигнала WE#, фиксация данных выполнения команды происходит по фронту WE#. Большинство команд подается безадресно (по любому адресу, принадлежащему данной микросхеме); команда верификации стирания и второй цикл команды программирования подаются по адресу требуемой ячейки. Результаты стирания и программирования считываются по адресу конкретной интересующей ячейки. Ниже описано назначение команд. ♦ Read Memory — команда чтения данных, переводящая микросхему в режим чтения, совместимый по интерфейсу с EPROM. ♦ Read ID — команда чтения идентификаторов. В последующих шинных цик 292________________________________ Глава 7.. Интерфейсы электронной памяти
1 Здесь X обозначает несущественный адрес, M_Id и D_Id — идентификаторы производителя и устройства, EA — адрес ячейки, в которой контролируется стирание, EVD — данные, считанные при верификации стирания (должны быть FFh), РА и PD — адрес и данные программируемой ячейки, PVD — данные, считанные при верификации программирования. ♦ Set-up Erase/Erase — подготовка и собственно стирание. Внутренний цикл ♦ Erase Verify — верификация стирания. Отличается от обычного считывания тем, что проверяемая ячейка ставится в более жесткие условия считывания для повышения достоверности контроля стирания. Между шинными циклами команды верификации должна быть пауза не менее 6 мкс. Алгоритм быстрого стирания (Quick-Erase) предусматривает предварительное обнуление всех ячеек (командами программирования) и выполнение команды стирания, сопровождаемой верификацией. Команды верификации последовательно выполняются для каждой ячейки микросхемы. Если результат считывания отличается от FFh, производится повторное стирание (длительностью 10 мс), и последующая верификация может начинаться с первой ранее не стертой ячейки. Если количество повторов стирания превышает 3 000, фиксируется ошибка стирания и микросхема признается негодной. Алгоритм позволяет выполнить полное стирание микросхемы менее чем за секунду. ♦ Set-up Program/Program — подготовка и собственно программирование. 7.3. Энергонезависимая память_________________________________________ 293 ♦ Program Verify— верификация программирования (аналогично верификации стирания), обычно следующая после команды программирования. Между шинными циклами команды верификации должна быть пауза не менее 6 икс. Алгоритм быстрого программирования (Quick-Pulse Programming) предусматривает формирование внутреннего цикла программирования длительностью 10 мкс с последующей верификацией. В случае несовпадения результата выполняется повторное программирование (до 25 раз для каждой ячейки), а если и это не ♦ Reset — команда сброса, прерывающая команду программирования или стирания. Эта команда не меняет содержимое памяти; после нее требуется подача другой действительной команды. По включении питания внутренний регистр команд обнуляется, что соответствует команде чтения, и микросхема работает как обычная микросхема PROM или EPROM. Это позволяет устанавливать микросхемы флэш-памяти вместо EPROM аналогичной емкости. При подаче на вход VPP низкого напряжения (0-6, 5 В) стирание и программирование невозможны, и микросхема ведет себя как обычная EPROM. Микросхемы второго поколения секторированы — ячейки группируются в блоки, допускающие независимое стирание (асимметричное разбиение — Boot Block и симметричное — Flash File). Длительная операция стирания одного блока может прерываться для считывания данных других блоков, что значительно повышает гибкость и производительность устройства. Микросхемы имеют более сложный внутренний управляющий автомат и в них введен регистр состояния, что позволяет разгрузить внешний процессор и программу от забот по отслеживанию длительности операций программирования и стирания, а также упростить эти процедуры. В отличие от микросхем первого поколения, в шинном цикле записи адрес и данные фиксируются по положительному перепаду WE#. Низкий уровень дополнительного управляющего сигнала RP# (в первых версиях обозначался как PWD#) предназначен для перевода микросхемы в режим с минимальным потреблением. В этом режиме модификация содержимого памяти невозможна. Соединение этого вывода в нормальном режиме (когда не требуется перезапись Boot-блока) с системным сигналом RESET* предохраняет микросхему от выполнения ложных команд, которые могут появиться в процессе подачи питания. Внутренние операции стирания и программирования выполняются после посылки соответствующих кодов во внутренний регистр команд. Команды приведены в табл. 7.26. Как и в первом поколении, этот регистр для большинства команд безадресный, но команды программирования и стирания посылаются по требуемому адресу ячейки (блока). Отработка операций внутренним управляющим автоматом отображается соответствующими битами регистра состояния SR (Status Register), по значению которых внешняя программа может получить информацию о результате выполнения и возможности посылки следующих команд. Чтение 294______________________________ Глава 7. Интерфейсы электронной памяти регистра SR выполняется по специальной команде; есть и команда его очистки. Назначение бит регистра состояния описано ниже. ♦ SR. 7 — WSMS (Write State Machine Status) — состояние управляющего автомата: • 0 — Busy (занят операцией стирания или программирования); • 1 — Ready (свободен). ♦ SR.6—ESS (Erase Suspend Status) — состояние операции стирания: • 0 — стирание завершено или выполняется; • 1 — стирание приостановлено. ♦ SR. 5 — ES (Erase Status) — результат стирания блока: • 0 — блок стерт успешно; • 1 — ошибка стирания. ♦ SR. 4 — PS (Program Status) — результат программирования байта: • 0 — байт записан успешно; • 1 — ошибка записи. ♦ SR.3 — VPPS (VpP Status) — состояние VPP во время программирования или стирания: • 0 — напряжение было в норме; • 1 — зафиксировано понижение напряжения, и операция прервана. ♦ S R [ 2: 0 ] — зарезервированы. Таблица 7.26. Команды микросхем флэш-памяти Intel второго поколения
1 Здесь X обозначает несущественный адрес, M_Id и D_Id — идентификаторы производителя и устрой 2 Альтернативный код команды программирования; доступен для микросхем емкостью 2, 4 и 8 Мбит. 7.3. Энергонезависимая память______ - ________________________________ 295 Ниже описано назначение команд. ♦ Read Array/Reset — чтение массива памяти (перевод в режим, совместимый ♦ Read ID — чтение идентификаторов производителя и устройства. ♦ Read Status Register — чтение регистра состояния. ♦ Clear Status Register — сброс регистра состояния. ♦ Erase Setup/Erase Conf i rm — подготовка и стирание блока. В отличие от ♦ Erase Suspend/Erase Resume — приостановка/продолжение стирания. Опе ♦ Program Setup/Program — подготовка и программирование ячейки. Эта команда выполняется аналогично подготовке и выполнению стирания, но не может быть приостановлена. Команда выполняет сразу и программирование, и верификацию. Команды стирания блока и программирования можно подавать, только когда управляющий автомат свободен (бит SR. 7=1). Во время этих операций микросхема следит за уровнем напряжения VPP, и, если оно понижается до порога VPPLK) этот факт регистрируется в регистре состояния и операция прерывается. Также операция прерывается при понижении напряжения питания Vcc до 2, 5 В. При считывании регистра состояния его мгновенное значение фиксируется по спаду сигнала СЕ# или ОЕ# (самого позднего из них в шинном цикле считывания). Программирование и стирание Boot-блока отличаются от операций с другими блоками тем, что для них требуется подача высокого потенциала VHH (не ТТЛ, а +12 В) на вход PWD# перед выдачей команды стирания или программирования и удержание его до успешного завершения операции. Альтернативный способ — подача такого же потенциала, но на вход ОЕ# на время пар шинных циклов записи команд стирания или программирования. Попытка программирования Boot-блока без выполнения этих условий не удается, а в регистре состояния одновременно 296________________________________ Глава 7. Интерфейсы электронной памяти устанавливаются единичные значения бит ES и PS, что индицирует попытку модификации защищенного блока. Микросхемы Flash-file организованы в виде набора одинаковых блоков, равноправных (симметричных) по защите (Symmetrical Architecture, SA), Защита от модификации для 28F008SA может осуществляться только для всей микросхемы подачей низкого напряжения на вход VPP. По интерфейсу и командам микросхемы совпадают с микросхемами Boot Block (исключая специфику Boot-блока). Архитектура микросхем 28F016SA существенно изменена, что значительно повышает производительность программирования (до 28, 6 Мбайт/с в пакетном режиме) и обеспечивает поблочную защиту. Микросхема имеет два буфера данных для записи по 256 Кбайт. Флэш-память организована как 32 блока по 64 Кбайт, допускающих однобайтное или двухбайтное обращение. С каждым блоком связан собственный 8-битный регистр состояния блока BSRx (Block Status Register). Адреса регистров смещены относительно начального адреса блока на 2 или 1 для режимов обращения х8 или х! 6 соответственно. Назначение бит BSR описано ниже. ♦ BSR. 7 — BS (Block Status) — состояние блока: • 1 — готов; • 0 — занят. ♦ B5R. 6 — BLS (Block-Lock Status) — состояние защиты блока: • 1 — программирование и стирание запрещены; • 0 — блок не защищен. ♦ BSR.5 — BOS (Block Operation Status) — состояние операции с блоком: • 1 — операция завершена безуспешно; • 0 — операция успешно завершена или выполняется. ♦ BSR. 4 — BOAS (Block Operation Abort Status) — состояние отмены операции с блоком: • 1 — операция отменена; • 0 — операция не отменялась. ♦ BSR. 3 — QS (Queue Status) — состояние очереди: • 1 — очередь заполнена; • 0 — очередь доступна. ♦ BSR. 2 -VPPS(VPP Status)- состояние VPP: • 1 — обнаружен низкий уровень, операция прервана; • 0 — VPP в норме. ♦ BSR[1: 0] —зарезервированы. 7.3. Энергонезависимая память__________________________________ 297 Глобальный регистр состояния GSR (Global Status Register) несет информацию о состоянии микросхемы в целом. К GSR можно обращаться по адресу, смещенному относительно начального адреса любого блока на 4 или 2 для режимов обращения х8 или х! 6 соответственно. Назначение бит GSR описано ниже. ♦ GSR.7—W5MS (Write State Machine Status) — состояние автомата записи (и завершенности внутренних операций): • 1 — занят; • 0 — свободен. ♦ GSR.6 — 055 (Operation Suspend Status) — состояние приостановки операции: • 1 — операция приостановлена; • 0 — операция выполняется или завершена. ♦ G5R. 5 — DOS (Device Operation Status) — состояние операции (копирует бит регистра состояния текущего блока): • 1 — операция завершена неудачно; • 0 — операция успешно завершена или выполняется. ♦ G5R. 4 — DSS (Device Sleep Status) — состояние ожидания: • 1 — ожидание (Sleep); • 0 — нормальный режим. ♦ GSR.3 — QS (Queue Status) — состояние очереди: • 1 — очередь заполнена; • 0 — очередь доступна. ♦ GSR. 2 — PBAS (Page Buffer Available Status) — состояние буферов записи: • 1 — есть свободный буфер; • 0 — нет свободного буфера. ♦ GSR. 1 — PBS (Page Buffer Status) — состояние выбранного буфера записи: • 1 — выбранный буфер свободен; • 0 — буфер занят операцией с WSM. ♦ GSR.0— PBSS (Page Buffer Select Status) — номер выбранного буфера: • 1 — выбран буфер 1; • 0 — выбран буфер 0. Для сохранения программной совместимости имеется безадресный регистр CSR (Compatible Status Register), полностью совпадающий с регистром состояния 28F008SA и микросхем с архитектурой Boot Block. Все команды этих микросхем доступны. Введены новые команды (табл. 7.27), обеспечивающие расширение функций. Ниже перечислены дополнительные возможности микросхем. 298________________________________ Глава 7. Интерфейсы электронной памяти ♦ Буферированное страничное программирование. Кроме обычного побайтного ♦ Двухбайтное программирование при 8-битном использовании. ♦ Поддержка очереди команд позволяет при наличии свободного места в очере ♦ Автоматическая запись из буфера во флэш-массив во время стирания другого ♦ Стирание всех незащищенных блоков может выполняться одной командой. ♦ Программирование использования сигнала RY/BY*. Возможно разрешение ♦ Перевод микросхемы в режим ожидания (Sleep) с пониженным потреблением В этом режиме возможно считывание состояния и получение команд. Таблица 7.27. Дополнительные команды микросхем 28F016SA
7.3. Энергонезависимая память
300________________________________ Глава 7. Интерфейсы электронной памяти Таблица 7.27 (продолжение) 1 BA - Block Address — адрес блокг, РВА - Page Buffer Address — адрес внутри буфера, RA - Extended 2 AD - Array Data — данные из массива, PBD - Page Buffer Data — данные буфера, WD (L, H) - Write 3 WC (L, H) - Word Count (Low, High) — счетчик слов. WCL-0 соответствует записи одного слова. Для буфера 256 байт WCH-0. BC (L, H) - Byte Count (Low, High) - счетчик байт. WCL-0 соответствует записи одного байта. Для буфера 256 байт WCH-0. Микросхема 28F032SA представляет собой два параллельно соединенных кристалла 28F016SA в одном корпусе. Входы СЕ# одного из них соединены с выводами СЕО# и СЕ1 #, второго — с СЕО# и СЕ2#. Третье поколение — современные микросхемы, выполненные по технологии SmartVoltage, допускают стирание и программирование при напряжении VPP как 12 В, так и 5 В. В последнем случае эти операции занимают больше времени. Кроме того, операции чтения возможны при пониженном (3, 3 и даже 2, 7 В) напряжении питания Vcc, при этом снижается потребление, но увеличивается время доступа. Для управления защитой данных введен логический сигнал WP# (Write Protect). При его высоком уровне программирование и стирание защищенных блоков выполняются так же, как и остальных. При низком уровне WP# модификация защищенных блоков возможна только при наличии высокого (12 В) напряжения на входе RP#. Для полной защиты от стирания и программирования на вход VPP должен подаваться низкий логический уровень (или О В), а не 5 В, как у микросхем с программированием напряжением 12 В. Настройка (оптимизация потребления и быстродействия) происходит по уровню напряжения на выводе Vcc по включении питания, переход на другое значение должен производиться через выключение питания.
|