Флэш-память і EEPROM

Стирати мікросхеми постійної пам'яті можна електричним способом. Однак цей процес вимагає значної витрати енергії, що виражається в необхідності додатка щодо високої напруги стирання (10-30 В) і тривалості імпульсу стирання більш десятка мікросекунд. Інтерфейс традиційних мікросхем EEPROM мав тимчасову діаграму режиму запису з великою тривалістю імпульсу, що не дозволяло безпосередньо використовувати сигнал запису системної шини. Крім того, перед записом інформації в осередок звичайно було потрібно попереднє стирання, теж задоволене тривале. Мікросхеми EEPROM щодо невеликого обсягу широко застосовуються як енергонезалежну пам'ять конфигурирования різних адаптерів. Сучасні мікросхеми EEPROM мають досить складну внутрішню структуру, у которую входить керуючий автомат. Це дозволяє спростити зовнішній інтерфейс, роблячи можливим безпосереднє підключення до мікропроцесорної шини або іншого інтерфейсу, і сховати специфічні (і не потрібні користувачеві) допоміжні операції типу стирання і верифікації. Мікросхеми EEPROM дозволяють зчитувати і перезаписувати (стирати) будь-яку комірку пам'яті, але перезапис вимагає досить багато часу.

Флэш-память по визначенню відноситься до класу EEPROM (електричне стирання), але в ній використовується особлива технологія побудови запам'ятовуючих осередків. Стирання у флэш-памяти виробляється відразу для цілої області осередків (блоками або цілком усієї мікросхеми). Це дозволяє істотно підвищити продуктивність у режимі запису (програмування). В флэш-памяти сполучаться висока щільність упакування (її осередку на 30 % менше осередків DRAM), енергонезалежне збереження, електричні стирання і запис, низький споживання, висока надійність і невелика вартість. Перші мікросхеми флэш-памяти були запропоновані фірмою Intel у 1988 році і з тих пір перетерпіли істотні зміни в архітектурі, інтерфейсі і напрузі живлення.

Кожен осередок флэш-памяти складається усього з одного уніполярного (польового) транзистора. Осередки організовані в матрицю; розрядність даних зовнішнього інтерфейсу — 8 або 16 біт (ряд мікросхем дозволяє переключати розрядність). Чисті (стерті) осередку містять одиницю у всіх бітах; при записі (програмуванні) потрібні біти обнуляются. Можливо наступне програмування і вже записаних осередків, але при цьому можна тільки обнулять одиничні біти і ніяк не навпаки. В одиничний стан осередку переводяться тільки при стиранні. Стирання виконується для всієї матриці осередків; стирання одиночного осередку неможливо. Читання флэш-памяти нічим не відрізняється від читання будь-якої іншої пам'яті — подається адреса осередку, і через якийсь час доступу (десятки — сотні наносекунд) на виході з'являються дані. Запис виглядає трохи складніше — для програмування кожного байта (слова) приходиться виконувати процедуру, що складається з операцій запису і зчитування, адресованих до мікросхеми флэш-памяти. Однак при цьому шинні цикли звертання до мікросхеми є нормальними для процесора, а не розтягнутими, як для EPROM і EEPROM. У такий спосіб у пристрої з флэш-памятью легко реалізується можливість перепрограмування без витягу мікросхем із пристрою. Більшість мікросхем флэш-памяти має такий же інтерфейс, як в асинхронної статичної пам'яті (SRAM), а при читанні він спрощується до інтерфейсу ROM/PROM/EPROM. Існують версії з інтерфейсом динамічної пам'яті, асинхронними і синхронним, а також і зі спеціальними інтерфейсами, у тому числі і 12С. Перші мікросхеми працювали тільки при напрузі живлення 5 В, а для програмування і стирання вимагали додаткового живлення VPP = +12 В. Потім з'явилися мікросхеми усього з одним живленням +5 В. Подальший розвиток технології дозволило знизити напруга живлення до 2,7-3,3 В и 1,65-2,2 В, a VPP — до 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 з більш зручним способом стирання й інтерфейсом програмування). Усі сучасні мікросхеми секторировани (розбиті на блоки, що окремо стираються,), так що залишається лише розподіл на симетричну і несиметричну архітектури.

У симетричній архітектурі (SA), як правило, пам'ять розбивається на блоки по 64 Кбайт; один із крайніх блоків (з найбільшою або самою маленькою адресою) може мати додаткові засоби захисту.

В асиметричній архітектурі один з 64-килобайтних блоків розбивається на 8 блоків по 8 Кбайт. Один із блоків має додаткові апаратні засоби захисту від модифікації і призначається для збереження життєво важливих даних, не змінюваних при запланованих модифікаціях інших рбластей. Ці мікросхеми спеціально призначені для збереження системного програмного забезпечення (BIOS), а привілейований блок (Boot Block) — для збереження мінімального завантажника, що дозволяє завантажити (наприклад, з дискети) і виконати утиліту програмування основного блоку флэш-памяти. У позначенні цих мікросхем присутня суфікс Т (Тор) або В (Bottom), що визначає положення завантажувального блоку або в старших, або в молодших адресах відповідно. Перші призначені для процесорів, що стартують зі старших адрес (у тому числі х86, Pentium), другі — для стартующих з нульової адреси, хоча можливі і протилежні варіанти, коли деякі біти шини адреси перед подачею на мікросхему пам'яті інвертуються. Старі мікросхеми ВВ малого обсягу мали небагато інший розподіл.

Випускають і комбіновані мікросхеми: наприклад, MT28C3214P2FL являє собою комбінацію флэш-памяти 2М х 16 і SRAM 256K х 16.

По організації матриці осередків розрізняють архітектури NOR і NAND. У традиційній архітектурі NOR транзистори на одному проводі поєднуються своїми стоками паралельно, як би утворити логічний елемент ИЛИ-НІ (Not OR, NOR). Ця архітектура забезпечує високу швидкодію довільного зчитування, що дозволяє виконувати програми прямо з флэш-памяти (не копіюючи в ОЗУ) без утрати продуктивності. Для сучасної пам'яті NOR характерний обсяг 16-256 Мбит (технологія 120 або 90 нм) і час доступу 70-90 не. Інтерфейс аналогічний SRAM, причому як асинхронної, так і синхронної (пакетної) пам'яті.

У перших мікросхемах флэш-памяти кожен осередок (всего один транзистор) призначалася для збереження одного біта інформації (1 — стерта, 0 — «прошита»). Пізніше з'явилася технологія збереження двох битов в одному осередку — завдяки удосконалюванню технології удався надійно розрізняти 4 стану осередку, що і потрібно для збереження двох битов. Два біти в осередку зберігає пам'ять Intel StrataFlash, ємність однієї такої мікросхеми вже досяг 256 Мбайт.

Флэш-память постійно розвивається в плані як підвищення ємності і зниження споживання, так і розширення можливостей і підвищення продуктивності. Так, наприклад, у ряді мікросхем AMD мається можливість читання одночасно з записом інших блоків (читання під час стирання став можливим ще з другого покоління флэш-памяти).

Випускалася і синхронна флэш-память з інтерфейсом SDRAM (і навіть зі співпадаючим упакуванням у корпуси), наприклад, MT28S4M16LC (2001 р., частота до 66 МГц) — 1М х 16 х 4 банки. Така пам'ять зручна для збереження ПО, що виконується прямо на місці (без копіювання в ОЗУ) у комп'ютерах, що вбудовуються. У 2005 році інформацію про нові мікросхеми такої пам'яті авторові в Мережі знайти не удалося.

Мікросхеми флэш-памяти із симетричною архітектурою випускаються і з інтерфейсом DRAM (динамічної пам'яті) — з мультиплексированной шиною адреси, стробируемой сигналами RAS# і CAS#. Вони призначені для застосування в модулях SIMM або DIMM, встановлюваних у гнізда мікросхем звичайної динамічної пам'яті. У такий спосіб реалізуються, наприклад, модулі PostScript для лазерних принтерів і будь-які резидентние програмні модулі. Ці модулі, природно, не будуть визначатися системою як основна пам'ять — на спробу звичайного запису і зчитування, що починається в тесті POST при визначенні встановленої пам'яті, вони відповідять досить своєрідно. Також вони не будуть сприйматися і як модулі додаткової системи BIOS, оскільки займуть не підходящі для цього фізичні адреси. Використовувати ці модулі можна тільки за допомогою спеціального драйвера, що «пояснить» чипсету, якому діапазонові адрес простору пам'яті відповідають сигнали вибірки банків флэш-памяти. Оскільки інтерфейс модулів SIMM і DIMM не припускає сигналів захисту запису, системного скидання і додаткового живлення +12 В, усі питання, зв'язані з програмуванням і захистом, вирішуються додатковими елементами, установлюваними на модулях. При використанні 16-бітних мікросхем такі модулі безпосередньо не забезпечують незалежну побайтную запис, але вона може забезпечуватися програмно, маскированием (записом OFFh) байтів, що немодифікуються.

Для збереження BIOS з'явилися мікросхеми флэш-памяти з інтерфейсом LPC, називані хабами (firmware hub).

Для деяких сфер застосування потрібні спеціальні заходи для блокування зміни інформації користувачем. Так, Intel у деякі мікросхеми вводить однократно записувані (One-Time-Programmable, OTP) регістри. Один 64-бітний регістр містить унікальний заводський номер, іншої може програмуватися користувачем (виготовлювачем пристрою) тільки один раз.

Фірма Intel випускає мікросхеми «Wireless Flash Memory» — за назвою, що інтригує, (беспроводная флэш-память) ховається, звичайно ж, звичайний електричний інтерфейс (із проводами). Вони орієнтовані на застосування в засобах беспроводной зв'язку (стільникові телефони з доступом в Інтернет): живлення — 1,85 В, наявність регістрів ОТР для захисту від шахрайства і т.п.

Флэш-память з інтерфейсом PCMCIA (PC Card) оптимизирована для побудови зовнішньої пам'яті мініатюрних ПК. Модуль флэш-памяти у форматі PC Card має інтерфейс дисків IDE (ATA) як на рівні електричних сигналів, так і по системі команд. Крім власне мікросхем нагромаджувача цей модуль звичайно містить керуючу мікросхему програмувальної логіки. Флэш-память у стандарті PC Card логічно є пристроєм зовнішньої пам'яті. Її не слід плутати зі схожої по виду пам'яттю у форматі Credit Card, що є оперативною і вставляється в спеціальний (не PCMCIA) слот комп'ютера. Зовнішню пам'ять, на відміну від оперативної, у принципі, можна вставляти і виймати без перезавантаження ОС.