Флэш-память по определению относится к классу EEPROM (электрическое стирание), но использует особую технологию построения запоминающих ячеек. Стирание во флэш-памяти производится сразу для целой области ячеек (блоками или полностью всей микросхемы). Это позволило существенно повысить производительность в режиме записи (программирования). Флэш-память обладает сочетанием высокой плотности упаковки (ее ячейки на 30 % меньше ячеек DRAM), энергонезависимого хранения, электрического стирания и записи, низкого потребления, высокой надежности и невысокой стоимости. Первые микросхемы флэш-памяти были предложены фирмой Intel в 1988 году и с тех пор претерпели существенные изменения по архитектуре, интерфейсу и напряжению питания.
Каждая ячейка флэш-памяти состоит всего из одного униполярного (полевого) транзистора. Ячейки организованы в матрицу; разрядность данных внешнего интерфейса — 8 или 16 бит (ряд микросхем имеет переключаемую разрядность). Чистые (стертые) ячейки содержат единицу во всех битах; при записи (программировании) нужные биты обнуляются. Возможно последующее программирование и уже записанных ячеек, но при этом можно только обнулять единичные биты, но не наоборот. В единичное состояние ячейки переводятся только при стирании. Стирание выполняется для всей матрицы ячеек; стирание одиночной ячейки невозможно. Чтение флэш-памяти ничем не отличается от чтения любой другой памяти — подается адрес ячейки, и через некоторое время доступа (десятки-сотни не) на выходе появляются данные. Запись выглядит несколько сложнее — для программирования каждого байта (слова) приходится выполнять процедуру, состоящую из операций записи и считывания, адресованных к микросхеме флэш-памяти. Однако при этом шинные циклы обращения к микросхеме являются нормальными для процессора, а не растянутыми, как для EPROM и EEPROM. Таким образом, в устройстве с флэш-памятью легко реализуется возможность перепрограммирования без извлечения микросхем из устройства. Большинство микросхем флэш-памяти имеют интерфейс, аналогичный асинхронной статической памяти (SRAM), а при чтении он упрощается до интерфейса ROM/PROM/EPROM. Существуют версии с интерфейсом динамической памяти, асинхронным и синхронным, а также и со специальными интерфейсами, в том числе и I²С. Первые микросхемы работали только при напряжении питания 5 В, а для программирования и стирания требовали дополнительное питание V PP= +12 В. Затем появились микросхемы всего с одним напряжением питания +5 В. Дальнейшее развитие технологии позволило снизить напряжение питания до 2,7–3,3 В и 1,65-2,2 В, a V PP— до 5, 3,3, 2,7 и даже 1,65 В. В производстве микросхем используется технологические процессы с разрешением 0,3, 0,22, 0,18 мкм (чем мельче ячейки, тем они экономичнее). Микросхемы первых выпусков (1990 г.) имели гарантированное число циклов стирания-программирования 10 000, современные — 100 000.
Флэш-память имеет время доступа при чтении 35-200 нс. Стирание информации (поблочное или во всей микросхеме) у микросхем середины 90-х годов занимает 1–2 секунды, программирование (запись) байта — порядка 10 мкс. У современных микросхем время стирания и записи заметно сократилось. Процедура записи от поколения к поколению упрощается (см. ниже). От ошибочного стирания (записи) применяются различные методы программной и аппаратной защиты. Программной защитой является ключевая последовательность команд, нарушение которой не позволяет начать операции стирания и записи. Аппаратная защита не позволяет выполнять стирание и запись, если на определенные входы не поданы требуемые уровни напряжения. Аппаратная защита может защищать как весь массив целиком, так и отдельные блоки.
По организации массива в плане стирания групп ячеек различают следующие архитектуры:
♦ Bulk Erase (BE) — все ячейки памяти образуют единый массив; запись возможна в произвольную ячейку; стирание возможно только для всего объема сразу;
♦ Boot Block (BB) — массив разделен на несколько блоков разного размера, стираемых независимо, причем один из блоков имеет дополнительные средства защиты от стирания и записи;
♦ Flash File — массив разделен на несколько равноправных независимо стираемых блоков обычно одинакового размера, что позволяет их называть микросхемами с симметричной архитектурой (Symmetrical Architecture, SA).
Организация BE применялась только в микросхемах первого поколения, ее недостатки вполне очевидны (получается просто аналог EEPROM с более удобным способом стирания и интерфейсом программирования). Все современные микросхемы секторированы (разбиты на отдельно стираемые блоки), так что остается лишь деление на симметричную и несимметричную архитектуру.
Читать дальше