ЖАНРЫ

Журнал "Компьютерра" N733
Шрифт:

Современная память (кроме SRAMStatic RAM - статическое ОЗУ, набор триггерных ячеек, могущих находиться в состоянии 0 или 1. Очень быстрая, но громоздкая по устройству и оттого дорогая разновидность оперативной памяти.]) хранит информацию в виде зарядов, и дабы сделать этот процесс энергонезависимым, нужно было решить проблему их утечки. Быстрая утечка зарядов в DRAM обусловлена наличием транзистора, который состоит вовсе не из изолятора, а из хоть и полу-, но проводника, так что даже в запертом виде имеет конечные токи утечки. В соединении с неизбежно маленькой емкостью самого конденсатора это и приводит к быстрому разряду. В идеале следовало бы конденсатор изолировать полностью, но как тогда перезаряжать его при записи информации?

Разгрыз этот орешек вышеупомянутый Дон Фрохман. На рис. 3 показано устройство элементарной ячейки, которая лежит в основе всех современных типов flash-памяти. Если исключить из нее то, что обозначено как "плавающий затвор", мы получим самый обычный полевой транзистор - точно такой же, как тот, что входит в ячейку DRAM на рис. 2. Если подать на управляющий затвор положительное напряжение, транзистор откроется, и через него потечет ток (это считается состоянием "логической 1"). На рис. 3 слева и изображен случай, когда плавающий затвор не оказывает никакого влияния на работу ячейки - например, такое состояние характерно для чистой EEPROM, в которую еще ни разу ничего не записывали.

Если же мы каким-то образом ухитримся разместить на плавающем затворе некоторое количество зарядов - свободных электронов (красненькие кружочки на рис. 3 справа), - то они будут экранировать действие управляющего электрода, и транзистор вообще перестанет проводить ток. Это состояние "логического 0"[Строго говоря, в NAND-чипах (о которых далее) логика обязана быть обратной - если в обычной EPROM запрограммированную ячейку нельзя открыть подачей считывающего напряжения, то NAND нельзя запереть снятием напряжения. Поэтому, в частности, чистая NAND-память выдает все нули, а не единицы, как EPROM и flash-память типа NOR.]. Плавающий затвор потому так и называется, что он "плавает" в толще изолятора (двуокиси кремния), а значит, сообщенные ему однажды заряды в покое никуда деваться не могут. И записанная таким образом информация может храниться десятилетиями.

Осталось всего ничего - придумать, как размещать заряды на изолированном от внешних влияний плавающем затворе. И не только размещать - ведь иногда память и стирать приходится, потому должен существовать способ извлекать данные оттуда. В первых образцах EPROM (UV-EPROM - тех самых, которые стирались ультрафиолетом) слой окисла между плавающим затвором и подложкой был толстым (если, конечно, величину 50 нм можно охарактеризовать словом "толстый"), и при записи на управляющий затвор подавали довольно высокое положительное напряжение - до 40 В, а на сток транзистора - небольшое положительное. При этом электроны, двигавшиеся от истока к стоку, настолько ускорялись полем управляющего электрода, что перепрыгивали барьер в виде изолятора между подложкой и плавающим затвором. Такой процесс называется еще "инжекцией горячих электронов".

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

В электрически стираемой памяти Джордж Перлегос использовал "квантовый эффект туннелирования Фаулера-Нордхейма". За этим непонятным названием кроется довольно простое по сути (но очень сложное с физической точки зрения) явление: при достаточно тонкой пленке изолятора (ее толщину пришлось уменьшить с 50 до 10 нм) электроны, если их слегка подтолкнуть подачей не слишком высокого напряжения в нужном направлении, могут просачиваться через барьер, не перепрыгивая его. В EEPROM образца 1980-х запись производилась "горячей инжекцией", а стирание - "квантовым туннелированием". Оттого микросхемы эти были довольно сложны в эксплуатации - разработчики со стажем помнят, что первые микросхемы EEPROM требовали два, а то и три питающих напряжения, причем подавать их при записи и стирании требовалось в определенной последовательности.

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

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

И наконец, третье, чуть ли не самое главное усовершенствование заключалось в изменении организации доступа к ячейкам на кристалле, вследствие чего этот тип памяти и заслужил наименование flash, то есть "молния".

Flash - значит быстрый

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

Разработчики во главе с упомянутым Фуджио Масуокой решили, что раз потребление при записи удалось снизить, то можно записывать ячейки не индивидуально, а целыми блоками - и тем быстрее, чем крупнее блок. В этой схеме некий массив данных готовится заранее (помещается в специальный временный буфер SRAM, который обычно имеется на том же кристалле, что и основная память), затем все нужные ячейки разом стираются, и разом же в них записывается информация из буфера. Недостатком этого метода стала необходимость перезаписи целого блока, даже если нужно изменить только один бит в одной-единственной ячейке. Но на практике это не вырастает в проблему - основные задачи, которые выполняет энергонезависимая память в современном мире, как раз и заключаются в записи сразу огромных массивов потоковым методом. Вот такая разновидность EEPROM и получила название "flash" - за многократно выросшую скорость записи информации, которая стала сравнима со скоростью чтения.

NAND и NOR

NAND и NOR - англоязычный эквивалент логических функций "И-НЕ" и "ИЛИ-НЕ". Пришедшие из схемотехники, эти термины описывают два разных принципа логического соединения ячеек - отсюда существенная разница и в устройстве, и в функционировании модулей памяти. Первая микросхема flash-памяти, выведенная на рынок компанией Intel в 1988 году (емкостью 32 Кбайт, примерно по $20 за штуку), имела организацию NOR (рис. 4 слева). Все ранние типы EPROM тоже имели подобную структуру. Здесь все просто, как и в DRAM: ячейки в строках матрицы соединены управляющими затворами ("линии слов"), а в столбцах - считывающими линиями, которые здесь носят наименование "линии бит".

В 1989 году Toshiba вывела на рынок первую flash-память NAND-разновидности. Ее структура показана на рис. 4 справа и, как видите, значительно отличается от NOR. Ячейки здесь хоть и содержат все тот же транзистор с плавающим затвором, построены иначе. С точки зрения производства, NAND проще и занимает заметно меньше места, чем NOR. Транзисторов-ячеек в каждой конструкции NAND может быть от 16 до 32 штук, но обычно их объединяют в блоки по 256 или 512 байт, которые читаются и записываются только целиком (512 байт - обычная величина сектора на жестком диске). Иногда блоки имеют нестандартную емкость - например, 264 байта ("лишние" 8 байт могут использоваться для хранения контрольной суммы, с целью повышения надежности операций чтения). Блоки могут объединяться и в большие образования - страницы.

Поделиться с друзьями: