Шрифт:
Все карты памяти Memory Stick (стандарт корпорации Sony) относительно совместимы между собой. Стандартом теоретически предусмотрен объем карты памяти до 2 Тбайт, хотя в реальности емкость достигает единиц гигабайт.
Карты SmartMedia практически не используются, но их можно встретить в очень старых фотоаппаратах, хотя это был единственный стандарт, в котором контроллер находился не внутри карты, а в устройстве считывания.
Конструкция карт памяти неразборная – это непригодное для ремонта устройство. Бескорпусные микросхемы вместе с выводами залиты в компаунд и все вместе спрессованы в пластиковую оболочку. Добраться до кристалла можно лишь путем вскрытия устройства, но при этом почти неизбежно повреждение проводников.
Устройства считывания
Для считывания flash-диска USB достаточно обычного порта USB: подобные устройства благодаря своему контроллеру видятся компьютером как стандартный съемный диск. Контроллеры всех карт памяти обращены вовне последовательными или параллельными интерфейсами – контактами на карте. Для каждого из этих интерфейсов нужен соответствующий переходник – дополнительный контроллер, согласующий этот интерфейс со стандартным портом USB.
Кард-ридер – устройство, состоящее из одного или нескольких подобных контроллеров, преобразователя питания и разъемов для разных карт памяти (рис. 4.3). Питание осуществляется от источника +5 В через кабель USB.
Чаще всего встречаются «комбайны», рассчитанные на несколько типов карт: от 6 до 40. Слотов в кард-ридере гораздо меньше, так как каждый слот используется для нескольких типов карт, близких по размерам и расположению контактов. По своим характеристикам они практически равноценны, а отличаются, главным образом, числом поддерживаемых типов карт и конструкцией.
Логическая организация
Прежде чем перейти к файловым системам 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 и без таких усилий.