Ускорение на твердой основе
Ускорение на твердой основе
Автор: Юрий Ревич
Flash-память - из тех самых инноваций, что вписались в нашу действительность легко и непринужденно, и при этом совершенно незаметно. Мобильная связь, КПК, MP3-плееры, цифровые камеры - каждый имел счастье почувствовать на собственной шкуре, как все это возникало, развивалось и входило в повседневную жизнь.
Рынок энергонезависимой памяти в настоящее время растет примерно на 30% в год, и одна из самых интересных сторон этого процесса - борьба за место под солнцем между обычными (магнитными) жесткими дисками (Hard Disk) и твердотельными накопителями (Solid State Disk, SSD). SSD возникли более десяти лет назад и предназначались в основном для военно-промышленных нужд - мало кто другой мог себе позволить накопитель по цене 10-20 баксов за мегабайт. Да и преимущества SSD тогда сводились в основном к собственно "твердотельности" - отсутствие движущихся частей делало их невосприимчивыми к ударам и надежнее в экстремальных условиях (например, к воздействию пыли и повышенной температуры). Вместе с тем первые SSD имели ограниченный срок службы (количество циклов перезаписи не превышало 10-100 тысяч) и были устрашающе медлительными. Если помните, скорость передачи данных в карточках памяти еще лет пять-шесть назад составляла величину порядка единиц мегабайт в секунду (особенно медленно осуществлялась запись), а диски ведь делаются на основе тех же чипов.
Но сейчас все резко изменилось - 2007 год можно назвать годом SSD, когда производители ринулись наперебой предлагать все более емкие и дешевые модели. SSD все еще заметно дороже обычных, но лиха беда начало - особенно они полюбились производителям ноутбуков, где важна не только надежность: диски там маленькие и при тех же скоростях вращения обеспечивают заметно меньшую скорость обмена данными. В популярнейшем и притом дешевом Asus Eee PC вообще нет магнитного накопителя.
Заметим, что в Vista среди прочего рекламируется повышение быстродействия путем размещения свопа на flash-карточке (правда, ощутить ускорение, кажется, никому не удалось, однако звучит здорово). Но это странно: вообще-то скоростные преимущества flash-памяти неочевидны. Берем наугад одну из передовых flash-карточек на рынке, SanDisk CompactFlash Extreme IV, выясняем, что она выпускается емкостью не более 8 Гбайт (а средняя цена ее, по Яндекс.Маркету, - 7 тысяч рублей, совсем недешево). И при этом карта имеет скорость чтения/записи всего 40 Мбайт/с (при 60-90 Мбайт/с, характерных для современных магнитных дисков), достигнутых на самом деле довольно натужным способом: увеличением числа параллельных потоков информации. Карточки и других типов обязаны ускорением тому же принципу: так, разница между классическими и современными MMC (или SD, которые есть просто развитие ММС) заключается в количестве линий передачи данных: у ММС Plus или Mobile на шесть контактов больше, и всего может быть до восьми одновременно работающих каналов перекачки данных. Если один канал, как у "классической" ММС, работает со скоростью около 3 Мбайт/с, то восемь каналов как раз и дадут 20 Мбайт/с, характерных для современных карт.
Так что, технологии совсем не изменились и нас кругом обманывают? Давайте разберемся, и начнем с того, что рассмотрим некоторые принципы работы flash-памяти.
История вопроса
В 1967 году в незабвенной Bell Labs, инкубаторе множества современных IT-технологий, был построен первый образец EPROM[Erasable Programmable ROM - стираемая/программируемая память "только для чтения". По-русски СППЗУ (стираемое программируемое постоянное запоминающее устройство).] - энергонезависимой памяти, которую можно было неоднократно перепрограммировать (стирая информацию рентгеном). Первые микросхемы энергонезависимой памяти, пригодные для практического применения, появились в 1971 году в стенах лабораторий Intel, которая тогда еще и не мечтала ни о каких процессорах, а позиционировала себя именно как производитель чипов памяти. Первый коммерческий образец EPROM (чип 1701 и его немного усовершенствованный вариант 1702) стирался ультрафиолетом через специальное окошко и потому получил название UV-EPROM (УФ ППЗУ, рис. 1).

В 1974 году в Intel пришел некто Джордж Перлегос (George Perlegos), грек по происхождению и будущий основатель компании Atmel. Под его руководством была разработана микросхема EEPROM[Electrically Erasable Programmable ROM - электрически стираемое программируемое ПЗУ, ЭСППЗУ.] (кодовое название 2816) - чисто электрически перепрограммируемое ПЗУ, прообраз сегодняшней flash-памяти. Основой и EPROM, и EEPROM стал транзистор с плавающим затвором, изобретенный в той же Intel Доном Фрохманом (Don Frohman). И в дальнейшем, несмотря на смены технологических эпох, принцип устройства ячейки энергонезависимой памяти остался неизменным - какой бы способ стирания и записи ни использовался.
Сам термин "flash-память" придумал в июне 1984 года некто Шоджи Аризуми (Shoji Ariizumi), сотрудник корпорации Toshiba, уже после того, как его руководитель доктор Фуджио Масуока (Fujio Masuoka) послал сообщение о новом, изобретенном им типе энергонезависимой памяти на конференцию разработчиков электронных приборов IEDM в Сан-Франциско. Так гласит официальная история, однако на рынок flash-память вывела не Toshiba, а Intel, и только спустя четыре года, в 1988 году, - слишком велики оказались трудности внедрения в производство.
Как оно устроено
Чтобы лучше понять принцип работы EEPROM, начнем с самого простого - ячейки обычной DRAM[Dynamic RAM - динамическая память "с произвольным доступом", динамическое ОЗУ, оперативное запоминающее устройство.] (рис. 2), схема которой состоит из одного транзистора и одного конденсатора. Последний на схеме выглядит маленьким, но на самом деле занимает места раза в четыре больше транзистора, только в основном вглубь кристалла. Потому ячейки DRAM можно сделать очень малой площади, а значит, во множестве упаковать их в один кристалл, не теряя быстродействия.

Для чтения данных с такой ячейки на линию строк подается высокий уровень, транзистор открывается, и заряд, накопленный конденсатором ячейки, поступает на вход усилителя, установленного на выходе столбца. Отсутствие заряда на обкладках соответствует логическому нулю на выходе, а наличие - логической единице. Обратите внимание, что такая операция откроет все транзисторы выбранной строки и данные окажутся на выходе усилителей по всем столбцам сразу. Естественно, при этом все подключенные конденсаторы немедленно разрядятся (если они были заряжены), отчего процедура чтения из памяти обязана заканчиваться регенерацией данных - не реже, чем каждые 10-15 мс. Регенерация ОЗУ в первых IBM PC и заключалась в осуществлении "фиктивной" операции чтения данных, затем эту функцию возложили на схемы, встроенные в сам модуль памяти.
Современная память (кроме 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 байт могут использоваться для хранения контрольной суммы, с целью повышения надежности операций чтения). Блоки могут объединяться и в большие образования - страницы.
Все это сразу указывает на основное назначение NAND-технологии - для построения систем хранения файлов. В последнее время даже Intel, стойко придерживавшаяся линии на усовершенствование NOR-разновидности, сдалась и совместно с Micron занялась разработкой карт на основе NAND-чипов. NAND сейчас доминирует в области скоростных и емких карт памяти, но и NOR в некоторых областях живет и здравствует (она незаменима, если требуется быстрое выборочное чтение, а акты перезаписи сравнительно редки - во flash-BIOS, SIM-картах, встроенной памяти программ микроконтроллеров и тому подобных применениях).
Дальше, выше, быстрее
Со времен Фуджио Масуоки принципиальная придумка в области технологий была только одна: разработчики воспользовались тем, что в ячейке информация хранится, по сути, в аналоговой форме - в виде некоторого количества электронов (кстати, всего лишь около тысячи штук). Если поделить это количество на несколько градаций и строго дозировать электроны при записи, то в одной ячейке можно хранить не один, как в классической схеме, а сразу много бит информации. Так появились многоуровневые ячейки (multi-level cells, MLC). И хотя схемотехника и изготовление такой flash-памяти гораздо сложнее, но выигрыш очевиден - плотность упаковки возрастает многократно. Кроме того, можно применить так называемую многочиповую упаковку (multi-chip packages, MCP), в чем особенно преуспела Samsung.
Но конечного пользователя, кроме емкости устройств, очень волнует скорость чтения/записи. Собственно, оставаясь в рамках классической компоновки, даже для наиболее быстрой в плане чтения NOR-разновидности невозможно достичь скоростей, превышающих 10-20 Мбайт/с (при этом запись будет осуществляться куда медленнее). С ужесточением технологических норм (а сейчас flash-память делают уже по 60-нанометровой технологии) скорость может еще вырасти, но сами понимаете, это не принципиальный выход. Эти скорости, конечно, приближают flash к уровню жестких дисков и приемлемы для записи объемов информации сегодняшних гаджетов (завтра, ясное дело, уже будет не хватать), но для того, чтобы заменить жесткие диски, и тем более обогнать их по производительности, этого решительно недостаточно.
Потому производители и собственно чипов памяти, и конечных продуктов идут на все новые и новые ухищрения - увеличение числа параллельных каналов передачи данных только одно из них. Другое направление повышения скорости обмена - технология OneNAND фирмы Samsung. Объединив на кристалле flash-память типа NAND (притом упакованную по технологии MCP) с буфером на основе высокоскоростной SRAM и добавив некие логические схемы, компания добилась беспрецедентной скорости чтения: 108 Мбайт/с. Скорость записи, впрочем, на порядок ниже и, по разным источникам, составляет от 9,3 до 10 Мбайт/с - что тоже очень здорово (примерно в шестьдесят раз быстрее классической NOR), но все же далеко от идеала. Дабы повысить скорость записи, приходится снабжать карты и flash-диски большими объемами буферной SRAM и специальными контроллерами, управляющими всем этим процессом.
Современные SSD в среднем сравнялись по быстродействию с магнитными дисками (типовые скорости обмена - 60-100 Мбайт/с), и хотя карты памяти и USB-накопители все еще отстают от самых передовых конструкций жестких дисков с интерфейсами SATA и SAS, у твердотельных накопителей есть одно огромное преимущество, которое и позволяет, например, Microsoft говорить об увеличении быстродействия в Vista с дополнительной flash-карточкой. Время доступа к произвольному месту массива у магнитных дисков зависит от поворотливости головок и за последние пятнадцать лет снизилось всего лишь вдвое - типичная величина составляет 8 мс. А у flash-дисков типичное время доступа равно 0,1 мс. Как следствие - у flash-устройств, особенно специализированных, типа SSD, минимальная, максимальная и средняя скорость чтения, в отличие от обычных дисков, практически не отличаются. Потому flash-диски гораздо быстрее традиционных при выборочном чтении, что действительно ускоряет работу, особенно при дефрагментированных данных - в частности, и при взаимодействии со своп-файлом.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
2.3. Ускорение загрузки Windows
2.3. Ускорение загрузки Windows Основные методы повышения скорости загрузкиХотя Windows Vista имеет специальные средства для оптимизации и ускорения процесса загрузки, от момента включения компьютера и до появления Рабочего стола обычно проходит несколько десятков секунд. Как же
8.3. Ускорение работы Windows Vista
8.3. Ускорение работы Windows Vista Отключение и настройка визуальных эффектовЕсли в работе компьютера для вас в первую очередь важна производительность, а внешний вид окон не имеет особого значения, тогда можно выбрать классическую тему рабочего стола и отключить все
9.5.2. Ускорение сайта
9.5.2. Ускорение сайта Сервис squid может ускорить работу определенного сайта, функционируя как httpd-акселератор. Для этого необходимо указать, как минимум, три параметра: адрес форсируемого сервера, который надо кэшировать, его порт и атрибуты сервера, который надо ускорять.
Ускорение HTTP-обмена
Ускорение HTTP-обмена Работа World Wide Web в основном базируется на использовании протокола HTTP (Hypertext Transfer Protocol — протокол передачи гипертекстовой информации). По сути, в ядре Linux реализован простой сервер HTTP, который включается при установке опции Kernel HTTPd Acceleration. Для настройки и
1.2.7. Ускорение запуска Fedora
1.2.7. Ускорение запуска Fedora В подразделе 1.2.5 мы отключили ненужные программы, которые запускались автоматически при запуске оболочки GNOME. Понятно, что каждая такая программа замедляет вход в GNOME. Но такие программы - это еще не самое страшное. После установки Fedora в системе по
Глава 24 Ускорение и оптимизация системы
Глава 24 Ускорение и оптимизация системы 24.1. Расширение возможностей Панели задач24.2. Изменение фона страницы входа в систему24.3. Ускорение загрузки системы для многоядерных процессоров24.4. Настройка папки Компьютер24.5. Отображение пустых дисков24.6. Папка по умолчанию в
Ускорение файловой системы
Ускорение файловой системы Можно ускорить действие файловой системы, (если позволяет оперативная память) увеличив параметр типа DWORD °IoPageLockLimit° от заданных по умолчанию 512 КБ до 4 МБ и более в разделе HKLMSYSTEMCurrentControlSetControlSession ManagerMemory ManagementЭтот параметр представляет
Получение твердой копии рисунка
Получение твердой копии рисунка Распечатка чертежа – последний этап при работе с рисунком. Перед выводом рисунка на печать необходимо его скомпоновать, то есть определить, какие виды должны быть вычерчены. Работа над рисунком ведется на разных этапах либо в
Получение твердой копии рисунка
Получение твердой копии рисунка Распечатка чертежа – последний этап при работе с рисунком. Перед выводом рисунка на печать необходимо его скомпоновать, то есть определить, какие виды должны быть вычерчены. Работа над рисунком ведется на разных этапах либо в
Получение твердой копии рисунка
Получение твердой копии рисунка Распечатка чертежа – последний этап при работе с рисунком. Перед выводом рисунка на печать необходимо его скомпоновать, то есть определить, какие виды должны быть вычерчены. Работа над рисунком ведется на разных этапах либо в
15.6. Существенное ускорение OpenOffice.org
15.6. Существенное ускорение OpenOffice.org Этот совет пригодится владельцам не только слабых компьютеров, но и современных мощных ПК — OpenOffice.org будет запускаться так, что вы даже не успеете заметить индикатор запуска.Выполните команду Сервис | Параметры и перейдите в раздел
Получение твердой копии рисунка
Получение твердой копии рисунка Перед выводом рисунка на плоттер можно предварительно просмотреть, как он будет размещаться на листе бумаги. Для этого используется команда предварительного просмотра PREVIEW, вызываемая из падающего меню File ? Plot Preview или щелчком на
Ускорение перерисовки графических объектов
Ускорение перерисовки графических объектов Для обеспечения быстрой перерисовки используется следующий прием: в начале программы вызывается LockDrawingObjects, а при необходимости перерисовать весь экран – специальная процедура RedrawObjects. Отключается режим вызовом
Ускорение отображения фрагментов фона
Ускорение отображения фрагментов фона Как говорилось выше, фон может содержать векторную графику, нарисованную средствами самого Flash. Также фон может включать экземпляры — графические или клипы. Вот о клипах (в смысле, экземплярах образцов-клипов), используемых для