На рис. 3

Домашний компьютер № 9 (123) 2006 - pic_3.jpg

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

На рис. 4

Домашний компьютер № 9 (123) 2006 - pic_4.jpg

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

Если же мы каким-то образом ухитримся разместить на плавающем затворе некоторое количество зарядов — свободных электронов (на рис. 3 они показаны в виде красненьких кружочков), — то они будут экранировать действие управляющего электрода, и такой транзистор вообще перестанет проводить ток. Это состояние — «логический ноль» 8 . Поскольку затвор «плавает» в толще изолятора (двуокиси кремния, SiO2), то сообщенные ему однажды заряды в покое никуда деться не могут. И записанная таким образом информация может храниться десятилетиями (производители обычно давали гарантию 10 лет, но на практике это время значительно больше).

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

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

Теперь посмотрим, как осуществлялось в этой схеме стирание. В упомянутой UV-EPROM при облучении ультрафиолетом фотоны высокой энергии сообщали электронам на плавающем затворе достаточный импульс, чтобы они «прыгали» обратно на подложку самостоятельно, без каких-либо электрических воздействий. А Джордж Перлегос использовал «квантовый эффект туннелирования Фаулера-Нордхейма» (Fowler-Nordheim) в электрически стираемой памяти (EEPROM). За непонятным названием кроется довольно простое (но очень сложное с физической точки зрения), по сути, явление: при достаточно тонкой пленке изолятора (10 нм) электроны, если их слегка «подтолкнуть» не слишком высоким напряжением в нужном направлении, могут «просачиваться» через барьер, не перепрыгивая его. Процесс показан на рис. 4 (обратите внимание на знак напряжения на управляющем электроде).

Старые образцы EEPROM именно так и работали: запись производилась горячей инжекцией, а стирание — квантовым туннелированием. Оттого они были довольно сложны в эксплуатации; разработчики со стажем помнят, что первые микросхемы EEPROM требовали два, а то и три питающих напряжения, причем подавать их при записи и стирании требовалось в определенной последовательности. Мало того, цена таких чипов была почти запредельной — автор сам покупал в середине 1990-х полумегабитную (то есть 64-килобайтную) энергонезависимую память по $30 за микросхему. Не забудьте и про «битые» ячейки, возникновение которых в процессе эксплуатации приходилось все время отслеживать. Неудивительно, что разработчики предпочитали использовать более дешевую, удобную, скоростную и надежную статическую память (SRAM), пристраивая к ней резервное питание от литиевых батареек, которые к тому времени уже достаточно подешевели. На этой волне компания Dallas Semiconductor даже выпустила специальный тип NVRAM с батарейкой, встроенной прямо в микросхему.

Превращение EEPROM во Flash происходило по трем разным направлениям. Во-первых, усовершенствовалась конструкция самой ячейки. Для начала избавились от самой противной стадии — «горячей инжекции». Вместо нее при записи стали также использовать квантовое туннелирование, как и при стирании.

На рис. 5

Домашний компьютер № 9 (123) 2006 - pic_5.jpg

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

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

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

Регенерация памяти

Впервые принцип DRAM — хранение информации на конденсаторах с периодической регенерацией — применил еще Дж. Атанасов в своем первом компьютере ABC (1941 г.). А зачем вообще нужна регенерация? Дело в том, что ввиду микроскопических размеров конденсатора (и, соответственно, емкости) в ячейке DRAM записанная информация хранится всего лишь сотые доли секунды. Несмотря на использование высококачественных диэлектриков с огромным электрическим сопротивлением, заряд, состоящий в рядовом случае всего из нескольких сотен, максимум тысяч электронов, успеет утечь так быстро, что вы и глазом моргнуть не успеете.

В первых моделях IBM РС регенерация осуществлялась каждые 15 мкс по сигналу системного таймера. Естественно, в таком решении было много подводных камней — во-первых, регенерация всей памяти занимала много времени, в течение которого ПК был неработоспособен. Потому-то сигнал на регенерацию и подавался с такой большой частотой — каждый раз проверялась всего 1/256 памяти, так что полный цикл восстановления занимал около 3,8 мс. Во-вторых, такое решение потенциально опасно: любая зловредная программа спокойно могла остановить системный таймер, отчего компьютер уже через несколько миллисекунд впадал в полный ступор. Современные микросхемы DRAM занимаются восстановлением данных самостоятельно, да еще и так, чтобы не мешать основной задаче — процессам чтения/записи.

вернуться

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

вернуться

9 При условии использования схем коррекции ошибок, замедляющих работу памяти.