Королев В. Д. Колисниченко Д. Н. Горячев Д. П. Прокди Р. Г.
при содействии авторско-редакторской группы ПРОКДИ
Компьютер на флешке
Работающие Windows, Linux, Офис и 150 самых полезных программ у вас в кармане
(книга + DVD со всеми программами, дистрибутивами, видеокурсом!)
Часть I.
Флешка на 100%. Основы грамотного и эффективного пользования flash-дисками
Глава 1
Флешка: что это такое, особенности использования, любопытные факты
1.1. Как это все начиналось
Несмотря на то, что флешки, в нашем сегодняшнем понимании, появились достаточно недавно, сама технология, лежащая в основе этих миниатюрных устройств хранения данных, увидела свет еще в 1984 г. в стенах компании Toshiba. Надо признаться, что Toshiba вообще является родоначальником многих передовых технологий, в частности компакт-дисков нового поколения HD DVD. Но если технологию HD DVD постигла печальная участь (на рынке победила альтернативная технология Blue Ray от компании Sony), то в случае со флешками мы наблюдаем прямо противоположную картину. Эти штуковины встречаются практически на каждом шагу и имеются практически у каждого человека, мало-мальски пользующегося электронной техникой. Помимо обычного карманного носителя информации не стоит забывать о роли «электронной фотопленки», которую флешки играют в цифровых фото- и видеокамерах (частично). Короче, все движется к тому, что вскоре накопители данных на основе флеш-технологии будут преобладать на рынке. Уже сейчас выпускаются флешки объемом 32 и 64 Гб. А то ли еще будет…
В далеком же 1984 г. японский дядька по имени Фуджио Масуоко (Fujio Masuoka) показал своему коллеге новую технологию. История не сохранила имени коллеги, но известно, что ему процесс быстрого стирания ячеек напомнил работу вспышки фотоаппарата. Отсюда и пошло название новой технологии, ведь flash — это в переводе с англ. «вспышка».
1.2. Как это все работает
Как это происходит технически
Эволюционно флеш-память представляет собой разновидность EEPROM (Electrically Erasable Read Only Memory), то есть энергонезависимого ПЗУ с электронным стиранием. EEPROM функционирует на основе логики, построенной на КМОП-элементах (комплементарных структурах «металл-оксид-полупроводник», или Complementary Metal Oxide Semiconductor, CMOS). К сожалению, при стирании содержимого КМОП-памяти нужно подводить к ее электронным ячейкам достаточно высокое напряжение, поэтому этот процесс занимает достаточно много времени. В отличие от «прародительницы», во флеш-микросхемах информация удаляется иначе — целыми блоками — и это происходит намного быстрее [1].
Первичными ячейками таких чипов являются полевые транзисторы с двумя изолированными затворами: управляющим и плавающим. Под воздействием управляющего создается канал для движения заряженных частиц от истока к стоку, причем некоторые электроны, обладающие большой энергией, преодолевают сопротивление изолятора и попадают на плавающий затвор. Этот процесс называется инжекцией.
Формируется скрытый, или «захороненный», заряд, который может сохраняться на плавающем затворе в течение нескольких лет. С целью кодирования информации малое количество заряда на затворе принимается равным логической единице, а большее — нулю.
При стирании на управляющий затвор подается высокое отрицательное напряжение. Тогда электроны с плавающего затвора «стекают» на сток (туннелируют).
Рис. 1.1. Запись и стирание данных во флеш-памяти
В то время как в обычной энергозависимой памяти для хранения каждого бита данных нужно задействовать несколько транзисторов и конденсатор, во флеш-памяти обходятся лишь одним. Это дает возможность сильно уменьшить размеры микросхем, упростить технологию их производства и снизить цену изделия.
Флеш-память может быть реализована на электронных логических элементах двух типов: ранее весьма распространенных NOR (с прямым доступом), а также более дешевых NAND, которые стали широко использовать в последние годы (доступ к последним осуществляется через 8-битную шину данных и адресов, имеющую отдельные командные каналы).
Рис. 1.2. По форме флешки бывают самые разные
В чипах памяти на основе логики NOR (Not OR, отрицание «или») каждая ячейка (полевой транзистор) подключена к трем независимым каналам: линии бит, линии слов и источнику заряда. Для выборки нужно подать напряжение на линию слов, подключенную к затвору. Если при этом заряд, «захороненный» в плавающем затворе, достаточно высок, создается препятствие движению электронов между истоком и стоком. Соответственно, разность потенциалов между ними остается значительной. При логической трактовке эта ситуация признается равной нулю, противоположная — равной единице.
Микроэлектроника на основе NOR имеет большой размер ячеек, обеспечивает высокие скорости перезаписи и короткое время доступа. Каждая микросхема этого типа может хранить от 64 Кбит до 8 Мбит данных. Основная проблема состоит в том, что ее сложно наращивать для достижения более высокой емкости, так как нельзя уменьшить размеры каждого из транзисторов — виной тому сам способ организации матрицы ячеек: к каждой из них нужно подвести отдельный изолированный контактный электрод.
Микросхемы NAND (Not AND, отрицание «и») обладают более высокой надежностью и емкостью, малыми размерами блоков и ячеек. Полевые транзисторы подключаются к линиям бит последовательно, группами.
Если они включены (открыты), то соответствующие проводники заземляются; разность потенциалов между ними и линиями слов исчезает. Правда, поскольку падение напряжения происходит сразу на многих транзисторах, считывание информации затрудняется. Но вследствие того, что обращение происходит одновременно к целой группе ячеек, увеличивается скорость чтения.
Рис. 1.3. Стандартная форма флешек
На практике организация NAND-памяти подразумевает, что к ее ячейкам можно адресоваться лишь последовательно. Для компенсации временных задержек, вызванных «групповым» характером операции, используется внутренний кэш адекватной емкости. При записи в транзисторах архитектуры NAND используется туннельная инжекция электронов, а при стирании — их туннельное высвобождение. Это позволяет уменьшить энергопотребление. Емкость микросхем составляет от 500 Кбит до 8 Мбит.
В микросхемах флеш-памяти обоих типов логические элементы объединяются в блоки (по 128 Кбит в NOR и 8 Кбит в NAND). В NAND-чипах ячейки предварительно группируются в «страницы» размером по 256 или 512 байт. В каждой из них по 16 байт отводится под служебную область, где хранятся метаданные и коды коррекции ошибок.
В новой флеш-памяти NOR StrataFlash, разработанной Intel, используются многоуровневые ячейки (MLC, Multi-Level Cell), каждая из которых может хранить по 2 или 4 бит. Для этого заряд условно делится на несколько логически значимых уровней, каждому из которых соответствует определенная комбинация значений булевой логики («истина»/«ложь», т.е. 1/0). Теоретически можно прочитать и записать до 6–8 бит, но на практике при столь большом числе уровней возникают проблемы с паразитными шумами и утечкой заряда при длительном хранении.
Одновременно с Intel компания AMD, известная на заре своего развития именно как производитель флеш-памяти, разработала новую технологию MicroBit для реализации в чипах архитектуры NAND, благодаря которой емкость ячеек можно увеличить вдвое. Решение, по сути дела, простое: плавающий затвор ячейки (полевого транзистора), хранящей заряд, физически делится на два независимых друг от друга элемента конструкции. Таким образом, вместо одной ячейки хранения память имеет дело сразу с двумя.
Особенности использования флешек
По сравнению с обычным жестким диском флешки имеют несколько принципиальных отличий. Для начала стоит отметить, что запись на флешку возможна только на предварительно стертые (зачищенные) ячейки. В случае же с жестким диском вполне обычна перезапись данных, когда одни данные записываются поверх других. Думаю, ни для кого не секрет, что когда вы удаляете какой-либо файл, он по-прежнему остается на жестком диске, просто информация о нем стирается из таблицы файловой системы, и он становится как бы невидимым. Отсюда и существование так называемых программ-восстановителей удаленных файлов. Они просто возвращают запись в таблицу файловой системы.
Из-за необходимости предварительной зачистки (стирания) ячеек, для флешек существует некоторая путаница с порциями данных: битом, байтом, блоком чтения/записи и областью стирания. Байт — минимальная величина записанной информации; а блок — минимальное количество байт, которые можно прочесть из памяти за один цикл обращения. Область стирания есть совокупность ячеек, содержимое которых стирается за одну операцию. Минимальной же единицей хранения информации на жестком диске является сектор. Так вот, порции данных флешки (блоки, область стирания), как правило, не совпадают по размеру с сектором жесткого диска. Во избежание несовместимости операционная система реализует как бы виртуальные сектора для флешек, которые фактически формируются блоками чтения/записи, на которые в частности разбивается и область стирания.