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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• введена поддержка списка прав доступа. flash-диска в Windows Vista SP1

Насколько скоро эта файловая система станет нормой для «флэшек», покажет время. Видимо, это произойдет не раньше, чем все перейдут на ОС Windows Vista.

Данный текст является ознакомительным фрагментом.