Принцип работы и устройство flash-памяти

В основе любой flash-памяти лежит кристалл кремния, на котором сформированы не совсем обычные полевые транзисторы. У такого транзистора есть два изолиро­ванных затвора: управляющий (control) и плавающий (floating). Последний спо­собен удерживать электроны, то есть заряд. В ячейке, как и у любого полевого транзистора, есть сток и исток (рис. 4.1). В процессе записи на управляющий затвор подается положительное напряжение и часть электронов, движущихся от стока к истоку, отклоняется к плавающему затвору. Некоторые из электронов преодоле­вают слой изолятора и проникают (диффундируют) в плавающий затвор. В нем они могут оставаться в течение многих лет.

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

Рис. 4.1. Ячейка flash-памяти

пороговое напряжение, которое нужно подать на сток для открытия транзистора. Для удаления информации на управляющий затвор кратковременно подается от­рицательное напряжение, и электроны с плавающего затвора диффундируют об­ратно на исток. Транзистор вновь переходит в состояние логической единицы и остается в нем, пока не будет произведена очередная запись. Примечательно, что во flash-памяти один транзистор хранит один бит информации — он и является ячейкой. Весь процесс «запоминания» основан на диффузии электронов в полу­проводнике. Отсюда следуют два не очень оптимистичных вывода.

? Время хранения заряда очень велико и измеряется годами, но все же ограниче­но. Законы термодинамики и диффузии гласят, что концентрация электронов в разных областях рано или поздно выровняется.

? По той же причине ограничено количество циклов записи-перезаписи: от ста тысяч до нескольких миллионов. Со временем неизбежно происходит деграда­ция самого материала и р-п-переходов. Например, карты Kingston Compact Flash рассчитаны на 300 ООО циклов перезаписи. Transcend Compact Flash — на

1 ООО ООО, а flash-диск Transcend 32 Gb USB - всего на 100 ООО.

Существуют две архитектуры flash-памяти. Они отличаются способом обращения к ячейкам и, соответственно, организацией внутренних проводников.

? Память NOR (ИЛИ-НЕ) позволяет обращаться к ячейкам по одной. К каждой ячейке подходит отдельный проводник. Адресное пространство NOR-памяти позволяет работать с отдельными байтами или словами (каждое слово содержит

2 байта). Такая архитектура накладывает серьезные ограничения на максималь­ный объем памяти на единице площади кристалла. Память NOR сегодня используется лишь в микросхемах BIOS и других ПЗУ малой емкости, например в сотовых телефонах.

? В памяти архитектуры NAND (И-НЕ) каждая ячейка оказывается на пересече­нии «линии бит» и «линии слов». Ячейки группируются в небольшие блоки по аналогии с кластером жесткого диска. И считывание, и запись осуществляются лишь целыми блоками или строками. Все современные съемные носители по­строены на памяти NAND.

Крупнейшими производителями NAND-чипов являются компании Intel, Micron Technology, Sony и Samsung. Ассортимент выпускаемых чипов довольно велик, а обновление его происходит несколько раз в год.

Контроллеры

Для управления чтением и записью служит контроллер памяти. В настоящее вре­мя контроллер всегда выполняется в виде отдельного элемента (это либо микро­схема одного из стандартных форм-факторов, либо бескорпусный чип, встраиваемый в карту памяти), хотя ведутся работы по интеграции контроллера непосредственно в кристалл flash-памяти.

Контроллеры разрабатываются и выпускаются под совершенно определенные микросхемы flash-памяти. Способ адресации ячеек конструктивно заложен в кон­троллере. Данные при записи в микросхему flash-памяти располагаются опреде­ленным способом, меняющимся от модели к модели. Производители эти тонкости держат в секрете и, по всей видимости, раскрывать не планируют. Очевидно, мик­ропрограмм контроллеров создается значительно больше, чем самих моделей кон­троллеров. Микропрограмма контроллера (прошивка) и таблица трансляции ад­ресов (транслятор) записываются в служебную область flash-памяти. Именно эту область контроллер начинает считывать сразу после подачи на него питания. Кро­ме собственно адресации ячеек, контроллер выполняет ряд других функций: функ­ции контроля bad-секторов, коррекции ошибок (ЕСС — error check and correct) и равномерности износа ячеек (wear leveling).

Технологической нормой при изготовлении микросхем памяти считается наличие в них в среднем до 2 % нерабочих ячеек. Со временем их количество может увели­чиваться, поэтому, как и в винчестерах, во flash-памяти предусмотрен резервный объем. Если появляется дефектный сектор, контроллер в процессе форматиро­вания или записи подменяет его адрес в таблице размещения файлов адресом сектора из резервной области. Коррекция осуществляется контроллером, но реа­лизуется на уровне файловой системы конкретного носителя.

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

Конструкция flash-диска USB

Несмотря на разнообразие корпусов, все flash-диски USB устроены одинаково. Если половинки корпуса соединены защелками, они обычно легко разъединяются. Водонепроницаемые или ультрамодные корпусы приходится вскрывать разру­шающими методами, например разрезать.

На плате внутри flash-диска USB (рис. 4.2) обязательно присутствуют две микро­схемы: чип памяти и контроллер. На обеих нанесена заводская маркировка. Иногда плата несет два чипа flash-памяти, которые работают в паре. Обвязка микросхем состоит из нескольких резисторов и диодов, стабилизатора питания и кварцевого резонатора. В последнее время стабилизатор все чаще встраивается непосред­ственно в контроллер и количество навесных элементов сокращается до минимума. Кроме того, на плате могут находиться светодиодный индикатор и миниатюрный переключатель для защиты от записи.

Рис. 4.2. Устройство flash-диска

Разъем USB припаян непосредственно к плате. Места пайки контактов во многих моделях являются довольно уязвимыми, поскольку на них приходится механиче­ская нагрузка при подключении и отключении устройства.

Виды и конструкция карт памяти

Многие компании время от времени предлагали пользователям разные конструк­ции карт памяти. За редкими исключениями все они несовместимы между собой по количеству и расположению контактов и электрическим характеристикам, Flash-карты бывают двух типов: с параллельным (parallel) и последовательным (serial) интерфейсом.

В табл. 4.1 перечислены 12 основных типов карт памяти, которые встречаются в настоящее время. Внутри каждого типа существуют свои дополнительные раз­новидности, с учетом которых можно говорить о существовании почти 40 видов карт.

Таблица 4.1. Типы карт памяти

Тип карты памяти

Габаритные размеры (мм)

Максимальная

конструктивная

емкость

Интерфейс

CompactFlash (CF)

42,8 X 36,4 X 3

128 Гбайт

Параллельный 50 контактов

Mini SD

20 X 21,5 X 1,4

4 Гбайт

Последовательный 9 контактов

MultiMedia Card (ММС)

24x32x 1,4

4 Гбайт

Последовательный 7 контактов

RS ММС

24x18x1,4

4 Гбайт

Последовательный 7 контактов

Highspeed ММС

24 X 32 X 1,4

4 Гбайт

Последовательный 13 контактов

Memory Stick

21,5x50x2,8

256 Мбайт

Последовательный 10 контактов

Memory Stick PRO

21,5x50x2,9

2Тбайт

Последовательный 10 контактов

Memory Stick Duo

21,5x31x2,8

2 Тбайт

Последовательный 10 контактов

SmartMedia (SSFDC)

45 X 37 X 0,76

128 Мбайт

Параллельный 22 контакта

xD-Picture Card

20 X 25 X 1,7

8 Гбайт

Параллельный 22 контакта

T-Flash

15X Их 1,0

4 Гбайт

Последовательный 8 контактов

Карты ММС могут работать в двух режимах: ММС (MultiMedia Card) и SPI (Serial Peripheral Interface). Режим SPI является частью протокола ММС и используется идя коммуникации с каналом SPI в микроконтроллерах компании Motorola и не­которых других производителей.

В слот для карты SD (Secure Digital) можно вставить карту ММС (MultiMedia Card), но не наоборот. В контроллер карты SD заложено аппаратное шифрование данных, а сама память снабжена специальной областью, в которой хранится ключ шифрования. Сделано это для того, чтобы препятствовать нелегальному копиро­ванию музыкальных записей, для хранения и продажи которых и задумывался такой носитель. На карте сделан переключатель защиты от записи (write protection switch).

Карты CompactFlash (CF) легко можно вставить в разъем PCMCIA Туре II. Несмотря на то что у PCMCIA 68 контактов, а у CF — только 50, конструкция карт CompactFlash обеспечивает полную совместимость и обладает всеми функциональ­ными возможностями формата PCMCIA-AT А.

Все карты памяти Memory Stick (стандарт корпорации Sony) относительно совмес­тимы между собой. Стандартом теоретически предусмотрен объем карты памяти до 2 Тбайт, хотя в реальности емкость достигает единиц гигабайт.

Карты SmartMedia практически вышли из употребления, их можно встретить только в очень старых цифровых камерах. Примечательно, что это был единственный стан­дарт, в котором контроллер находился не внутри карты, а в устройстве считывания.

Конструкция карт памяти неразборная — это непригодное для ремонта устройство. Бескорпусные микросхемы вместе с выводами залиты в компаунд и все вместе спрессованы в пластиковую оболочку. Добраться до кристалла можно лишь путем вскрытия устройства, но при этом почти неизбежно повреждение проводников.

Устройства считывания

Для считывания flash-диска USB достаточно обычного порта USB: компьютер видит подобные устройства как стандартный съемный диск благодаря их контрол­леру. Контроллеры всех карт памяти обращены к компьютеру последовательными или параллельными интерфейсами — контактами на карте. Для каждого из этих интерфейсов нужен соответствующий переходник — дополнительный контроллер, согласующий данный интерфейс со стандартным портом USB.

Кард-ридер — устройство, состоящее из одного или нескольких подобных контрол­леров, преобразователя питания и разъемов для разных карт памяти (рис. 4.3). Питание осуществляется от источника +5 В через кабель USB.

Рис. 4.3. Кард-ридер

Чаще всего встречаются «комбайны», рассчитанные на несколько типов карт: от 6 до 40. Слотов в кард-ридере гораздо меньше, так как каждое гнездо использу­ется для нескольких типов карт, близких по размерам и расположению контактов. По своим характеристикам разные модели практически равноценны, а различа­ются, главным образом, количеством поддерживаемых типов карт и конструк­цией.

Логическая организация

Прежде чем перейти к файловым системам flash-накопителей, нужно вспомнить об архитектуре NAND. В этой часто используемой памяти и чтение, и запись, и уда­ление информации происходят лишь блоками.

На жестких и гибких дисках величина блока составляет 512 байтов, не считая 59 служебных байтов, которые видны только контроллеру винчестера. Все файло­вые системы создавались именно с учетом этих значений. Проблема в том, что во flash-памяти величина блока стирания, за редким исключением, не совпадает с величиной стандартного дискового сектора в 512 байтов и обычно составляет 4,8 и даже 64 Кбайт. С другой стороны, для обеспечения совместимости блок чте­ния/записи должен совпадать с величиной дискового сектора.

Для этого блок стирания разбивается на несколько блоков чтения/записи с разме­ром 512 байтов. На практике блок чуть больше: кроме 512 байтов для данных, в нем еще есть «хвост» (Tail) длиной 16 байтов для служебной информации о самом блоке. Физически расположение и количество блоков чтения/записи ничем не ограничены. Единственное ограничение — блок чтения/записи не должен пересе­кать границу блока стирания, так как он не может принадлежать двум разным блокам стирания.

Блоки чтения/записи делятся на три типа: действительные, недействительные и дефектные. Блоки, которые содержат записанные данные и принадлежат какому-либо файлу, являются действительными. Использованные блоки с устаревшей информацией считаются недействительными и подлежат очистке. Категорию де­фектных составляют блоки, не поддающиеся записи и стиранию.

Еще одна особенность flash-памяти состоит в том, что запись информации возмож­на только на предварительно очищенное от предыдущей информации пространст­во. Когда необходимо записать информацию, микропрограмма контроллера долж­на решить, какие недействительные блоки нужно перед этим стереть. В большей части микропрограмм вопрос удаления недействительных блоков решается про­стейшим способом: как только определенная часть емкости flash-диска оказывает­ся заполнена информацией, автоматически запускается механизм очистки недей­ствительных блоков.

Для увеличения срока службы памяти используется технология управления изно­сом (wear-leveling control), которая продлевает жизненный цикл кристалла памя­ти за счет равномерного распределения циклов записи/стирания блоков памяти. Побочный эффект — выход из строя одного блока памяти — не сказывается на работе остальных блоков памяти того же кристалла. Неподвижные блоки принад­лежат файлам, которые долго или вообще никогда не изменялись и не перемеща­лись. Наличие неподвижных блоков данных приводит к тому, что оставшаяся часть ячеек подвергается усиленному износу и быстрее расходует свой ресурс. Микро­программа учитывает такие блоки и по мере необходимости перемещает их содер­жимое в другие ячейки.

Файловые системы flash-дисков и карт памяти, на первый взгляд, хорошо знакомы пользователям по жестким и гибким дискам. Это FAT16, реже FAT32: именно так предлагает отформатировать диск операционная система Windows. Стандартными средствами Windows ХР и Windows 7 диск можно отформатировать и в систему NTFS! Для этого нужно предварительно зайти в Диспетчер устройств и в окне свойств подключенного flash-диска на вкладке Политика выбрать значение Оптимизация для быстрого выполнения. Специальные программы от производителей, например HP USB Disk Storage Format Tool, позволяют форматировать flash-диски в NTFS и без таких усилий.

Однако внешнее сходство файловых систем твердотельных накопителей и обыч­ных винчестеров обманчиво. Файловая система flash-памяти (Flash File System, FFS) лишь эмулирует обычный дисковый накопитель и состоит из блоков управ­ления и блока инициализации. На самом деле об истинном расположении и адре­сации блоков памяти знает только контроллер flash-диска или карты памяти.

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

Некоторые фотоаппараты работают только с файловой системой RAW Способ записи фотографий на носитель с такой файловой системой, а также особенности форматирования самой карты зависят от модели аппарата и даже прошивки той или иной модели. Этот формат не стандартизирован и имеет много разновидностей. Обычно данные с таких карт могут восстановить лишь сервисные программы от изготовителя фотокамеры, а в качестве кард-ридера желательно использовать сам фотоаппарат.

Рис. 4.4. Окно форматирования flash-диска в Windows Vista SPl

Нововведением является файловая система exFAT (Extended FAT — расширенная FAT). Поддержка этой специально разработанной для flash-дисков файловой системы впервые появилась в Windows Embedded СЕ 6.0. С exFAT работают Windows Vista Service Pack 1 и Windows 7 (рис. 4.4).

Назначение новой файловой системы — постепен­ная замена FAT и FAT32 на flash-накопителях. В ней заложены некоторые черты, которые ранее были присущи только файловой системе NTFS:

? преодолено ограничение в размере файла в 4 Гбайт: теоретически лимит составляет 2^ байтов (16 эксабайтов);

? улучшено распределение свободного места за счет введения битовой карты свободного мес­та, что уменьшает фрагментацию диска;

? снят лимит на количество файлов в одной директории;

? введена поддержка списка прав доступа.

Насколько скоро эта файловая система станет нормой для flash-накопителей, по­кажет время. Видимо, это произойдет не раньше, чем на операционную систему Windows 7 перейдет подавляющее большинство пользователей.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий