Форматирование CF карт: Статьи о Psion

Форматирование CF карт

Автор: Martin martin@pscience5.net

Введение

За то время, пока я пользовался Series 5, а теперь и 5mx, у меня появился опыт работы с различными картами компакт-флэш памяти (CF). Я начал с 15-мегабайтной карты, потом у меня была карта на 22,5 Мб (странный размер, но она досталась на халяву), затем - 48 Мб и вот недавно у меня появилась карта на 128 мб. В нынешние дни богатство качественного программного обеспечения для платформы EPOC привело к тому, что всегда находится еще одна программа, которую вы хотели бы втиснуть на свою машинку. Я счастливо жил с 48-мегабайтной карточкой, но искушение перед программой TomeRaider доказало эту мысль.

Устройства для чтения CF-карт

Форматирование CF карт: картинка #1 (7691 байт)Если вы ищете себе новую карточку большего объема, я бы порекомендовал приобрести еще и устройство для чтения CF-карт на вашем настольном компьютере. Оно подключается либо через порт USB, либо через параллельный порт через адаптер (при этом вы можете печатать на принтере, как обычно). Стоит не очень дорого (порядка 50 долларов), зато сильно облегчит вам жизнь, когда потребуется передача данных с CF-карты. Операция полного копирования моей 48 Мб карты через последовательный порт и PsiWin занимает полтора часа. То же самое при использовании устройства чтения карты занимает около 5 минут. Также устройство очень пригодится, если ваша цифровая фотокамера использует карту CF (не путайте с карточками Smart Media - хотя есть устройства, которые читают и CF, и SM карты) - быстрый перенос фотографий на компьютер гарантирован.

Форматирование CF карт: картинка #2 (7681 байт)Второй вариант (особенно если у вас есть еще и ноутбук) - использовать Compact Flash Adapter, который позволяет подключать CF-карту через разъем PCMCIA. Таким образом вы сможете подключать карту памяти к ноутбуку (или настольному компьютеру, если у него есть устройство для чтения карт PCMCIA) напрямую. Эти адаптеры стоят еще дешевле. В обоих случаях Windows определит карту как съемный диск и она появится в дереве "Мой компьютер", после чего ее можно будет использовать как еще один жесткий диск.

Кстати, если у вас уже есть цифровая камера, которая работает через порт USB и использует CF (например, камера Casio QV-300), то можно использовать и ее в качестве устройства для чтения/записи карт! Возможно, не всякая камера подойдет, но можно попробовать.

Техника форматирования

Когда я приобрел карту на 128 Мб, то она была уже изначально отформатирована. Я просто перенес с помощью устройства для чтения карт содержимое старой 48 Мб карты на настольный компьютер, а затем скопировал его на новую. Когда я вставил ее в Psion, то все сразу заработало. Однако через некоторое время я заметил, что некоторые приложения (особенно те, что пишут данные на диск D), работают очень медленно. Настолько медленно, что я стал сомневаться в преимуществах апгрейда...

Стандартный метод (т.е. единственный, который я знаю) - это то, что использует большинство пользователей для измерения скорости их CF карт на Psion. Это маленькая программа DiskBench. Она пишет файл в 1 кб в количестве 10 раз, а зачем считывает его 10 раз. Такие замеры производятся для дисков C и D. Полученные значения можно достаточно объективно использовать для сравнений - они дают вполне правильную информацию о производительности вашей карты на КПК. На сайте автора этой программы есть некоторые сравнительные данные, но на самом деле они бесполезны, так как нет информации о том, каким образом карта была отформатирована (хотя я предполагаю, что это было стандартное псионовское форматирование). После нескольких экспериментов я обнаружил, что формат карты очень сильно влияет на ее производительность - как на скорость работы, так и на форматированную емкость.

Форматирование CF карт: картинка #3 (4449 байт)
Типичный результат замера производительности

Обнаружилось, что независимо от размера карты существует пропорциональность между скоростью работы карты и ее форматированной емкостью. Важно обратить внимание, что имеется в виду именно форматированная емкость. Любая 16 Мб карта имеет 16 Мб "сырого" пространства для записи данных. Однако EPOC использует стандартную MS-DOS структуру формата CF карт (которая делает карты универсальными для пользования и обмена данными между устройствами для чтения карт, цифровыми камерами и т.д.).

Форматирование CF карт сродни форматированию жесткого диска. Оно образует некую сеть, которая хранит данные в ячейках, которые называются кластерами. Когда говорят об объеме диска, то имеется в виду не обычный, "сырой", объем, а именно объем в кластерах - а это число может сильно отличаться от заявленной вместимости. Кластер - это минимальная ячейка, минимальное количество данных, которое диск может хранить в виде куска. Как правило, чем больше размер диска, тем больше размер кластера.

Форматирование CF карт: картинка #4 (540 байт)В общем, размер кластера варьируется от 512 байт (на маленьких CF картах) до 128 кб на больших. Это важно знать, потому что, к примеру, если у вас есть 12 файлов по 1 кб каждый, а размер кластера 4 кб, то для их хранения потребуется 12 кластеров, то есть, 48 кб. Таким образом, у нас получается 48 кб - 12 кб = 36 кб потерянного места, а это целых 75%!

Возможно, вам это покажется крайней ситуацией, но на самом деле это не так. Программа Email хранит каждое письмо в отдельном маленьком файле (также и прикрепленные файлы), то же самое делает программа RMRNews. В любом случае, это могут быть 100 полученных сообщений и 50 посланных - и каждое из них хранится как маленький файл в кластере. А это могут быть сотни крошечных файлов... Представляете, сколько места тратится впустую?

Вы можете предположить, что хорошим средством для повышения емкости карты станет ее форматирование с минимальным размером кластера? Да, это так для маленьких (<16 Мб) карт. Однако с уменьшением объема кластера резко возрастает их количество. Но уже на средних картах (>20 Мб) это приводит к тому, что замедляется работа карты в плане записи на нее, а на больших (>48 Мб) использование минимального размера кластера вообще смертельно для их производительности. Следовательно, существует некоторый практичный предел того, насколько маленький кластер может быть на большой карте и насколько большим может быть кластер на маленькой карте.


Программа "Essential Disk Utilities"

"Все это очень хорошо," - скажете вы, - "но почему Psion не дает мне никаких возможностей по произвольному форматированию карты?" И будете правы. Однако сторонняя компания Atelier выпустила набор дисковых утилит для EPOC, которые называются Essential Disk Utilities (EDU). Одна из этих утилит, называющаяся SmartFormat, позволяет вам манипулировать настройками при форматировании карты. Документация, поставляемая с программой, очень скудна, поскольку не дает объяснения тому, что обозначают те или иные параметры (с другой стороны, это не значит, что вы что-то потеряете, купив и скачав эту программу). Тем не менее, вы можете манипулировать двумя очень важными параметрами: "Sectors per cluster" (размер кластера) и "File system" (файловая система). Файловая система позволяет вам выбирать между FAT12, которую использует Psion по умолчанию, и FAT16, которую используют многие системы, в том числе Windows.

Форматирование CF карт: картинка #5 (11230 байт)
Программа SmartFormat - расширенные настройки.

Полученные результаты

"Хорошо, итак, я знаю, как изменить формат CF карты, но что я могу ожидать и как определить, что является хорошим результатом?" Единственный способ найти правильный результат - это сделать серию тестов на картах различного объема. Я собрал некоторое количество данных, поэтому их я и представлю. Программа DiskBench 1.1 сообщает результаты времени считывания и записи информации. Таким образом, я сделал 4 таблицы для форматов FAT16 и FAT12: данные чтения и записи соответственно. Там, где настоящее имя производителя отличается от марки, под которой карта продается, в скобках я поместил название изготовителя карты. К примеру, карты под маркой Kodak на самом деле изготовлены компанией SanDisk.

Первая таблица показывает время записи в системе FAT16 при различных размерах кластера. Как видите, скорость каждой карты варьируется в зависимости от размера кластера, и, как правило, уменьшается вместе с размером карты. По моему опыту, я обнаружил, что скорость записи в районе 5-6 секунд (как показывает DiskBench) вполне соответсвует скорости записи данных при обычном ежедневном использовании и в плане используемой форматированной емкости. Значения, которые я рекомендую для каждой карты, я выделил оранжевым цветом.
Запись FAT16
Секторов на кластер
128 Мб PCI (Hitachi)64 Мб SanDisk48 Мб Kingston32 Мб Simple Tech.20 Мб SanDisk16 Мб Kodak (SanDisk)8 Мб Kodak (SanDisk)4 Мб Kodak (SanDisk)
110.9412.6510.1511.349.117.355.316.14
410.988.836.924.965.734.243.825.17
87.466.805.293.885.203.843.604.90
165.645.824.943.344.883.633.464.95
324.855.344.023.094.713.513.38X
644.104.693.502.744.223.15XX
Запись FAT16 в зависимости от размера кластера. Ячейки, помеченные 'X', означают, что SmartFormat отказался форматировать карту с такими параметрами. Видимо, из-за того, что существует предел максимального объема кластера на маленьких картах.

Вы спросите, почему я выбрал именно эти значения, а не самые быстрые. Потому что применение больших кластеров очень сильно уменьшает полезную емкость карты. Стандартных программ для определения влияния размера кластера на полезную емкость карты не существует. Поэтому в данном случае я применял свой метод, просто смотря на то, сколько свободного места остается на карте (по сообщению Psion'а) после того, как все свои данные я копировал обратно на карту.
Примечание: я не имею в виду то число, которое КПК сообщает в качестве пространства карты, доступного для хранения данных. Я имею в виду тот объем, который остается на диске после того, как на него будут записаны данные. Понятно, что это зависит от конкретных файлов, но если вы будете использовать одни и те же, то получите весьма достоверную информацию о том, какой из форматов занимает больше места.

Хотя это субъективный и ненаучный метод измерения полезной емкости, я все равно считаю, что он дает неплохую оценку. На своем КПК я активно использую программы Email и RMRNews - обе они генерируют множество мелких файлов на карте. Это очень длительный тест и поэтому я проводил его только на своей 128 Мб карте. Результаты я выделил розовым цветом. Для FAT16 и 16 секторов на кластер мой Psion сообщил, что на карте остается свободным 40.3 Мб. А вот для FAT16 и 32 секторов на кластер это было всего лишь 17.2 Мб с теми же самыми файлами"данных! Таким образом, мы имеем огромный прирост полезной емкости при относительно небольшом уменьшении скорости.

Затем я произвел такие же тесты с FAT12 и вот какие результаты получились.
Запись FAT12
Секторов на кластер
128 Мб PCI (Hitachi)64 Мб SanDisk48 Мб Kingston32 Мб Simple Tech.20 Мб SanDisk16 Мб Kodak (SanDisk)8 Мб Kodak (SanDisk)4 Мб Kodak (SanDisk)
19.1810.728.579.247.796.454.906.11
410.948.856.874.435.774.203.734.94
86.746.254.903.654.973.683.535.01
165.185.584.233.224.773.483.454.93
324.535.193.903.024.743.253.47X
643.974.513.472.724.243.09XX
Запись FAT12 в зависимости от размера кластера.

На первый взгляд, скорость немного выше, чем у тех же самых форматов FAT16. Однако это сильно "компенсируется" в худшую сторону большой потерей полезной емкости. Я провел только один тест полезной емкости, используя те же самые файлы данных, что и в предыдущей таблице (здесь результаты также помечены розовым цветом). Мой КПК сообщил о всего 13.1 Мб оставшегося места против 40.3 Мб, которые остались после форматирования в FAT16 с тем же самым размером кластера! Если мне нужна более высокая скорость, то лучший выбор это FAT16 + 32 сектора на кластер.

Кстати, по умолчанию Psion использует свой собственный формат FAT12 + 64 сектора на кластер (показано синим цветом) - и это очень плохо, если у вас CF карта большого объема!

Чтобы завершить обзор, я также приведу и скорости чтения данных на FAT16 и FAT12. На самом деле, это достаточно интересные цифры, так как они показывают реальную физическую скорость работы карты (поскольку на них не влияет ни формат FAT, ни размер кластера). Также можно объяснить и то, почему в тестах на запись моя 4 Мб карта оказалась медленее, чем ее 8 Мб соседка. Я подозреваю, что она просто была сделана при использовании более медленных чипов памяти - возможно, более старая карта.

Чтение FAT16
Секторов на кластер
128 Мб PCI (Hitachi)64 Мб SanDisk48 Мб Kingston32 Мб Simple Tech.20 Мб SanDisk16 Мб Kodak (SanDisk)8 Мб Kodak (SanDisk)4 Мб Kodak (SanDisk)
10.820.860.940.980.820.870.891.03
40.820.850.940.970.810.860.871.02
80.810.840.940.960.800.850.871.01
160.810.840.940.960.800.860.871.02
320.810.840.940.960.800.860.87X
640.810.830.940.960.800.86XX
Чтение FAT16 в зависимости от размера кластера.

Чтение FAT12
Секторов на кластер
128 Мб PCI (Hitachi)64 Мб SanDisk48 Мб Kingston32 Мб Simple Tech.20 Мб SanDisk16 Мб Kodak (SanDisk)8 Мб Kodak (SanDisk)4 Мб Kodak (SanDisk)
10.820.850.950.980.830.870.891.03
40.810.840.940.970.810.850.881.02
80.820.840.940.960.810.850.871.02
160.810.840.940.960.800.850.871.02
320.810.840.940.960.800.860.86X
640.810.840.940.960.800.85XX
Чтение FAT12 в зависимости от размера кластера.

Разница в скоростях чтения также объясняет и тот эффект, который я заметил поначалу: когда я впервые вставил новую 128 Мб карту, она показалась мне очень медленной - за исключением того момента, когда возникает окошко файла/директории в стандартном диалоговом окне при сохранении или открытии файла. Я предположил, что карта неправильно отформатирована (при этом замедлилась скорость операции), но скорость работы диалога файл/директория зависит только от скорости чтения карты - которая даже немного выше, чем у предыдущей 48 Мб карты.

Вот так. Если у вас есть комментарии или идеи (а, возможно, набор тестовых результатов для карт навроде 192 Мб, 96 Мб) - пишите.

Послесловие от MyPsion.Ru
Описанная выше программа EDU - это коммерческий продукт. Хотя, у половины народа он есть и совсем забесплатно, потому что наши люди - добрые ;). Если у вас нет возможности достать EDU, то можно отформатировать карту в PCMCIA-адаптере для PC командой FORMAT, имеющейся в версии Windows 95 OSR/2 (нужна именно эта версия!), у которой есть недокументированный параметр, устанавливающие количество секторов на кластер. Это команда
FORMAT F: /Z:nn
где F: - имя диска (карты), nn - число секторов на кластер. То есть, если вы хотите отформатировать карту по 4 сектора на кластер, то дайте команду FORMAT F: /Z:4
Не забывайте также, что при форматировании теряются все данные! Заблаговременно сделайте backup.

Дата статьи: 1 декабря 2000 г
Источник:http://www.pscience5.net/Hints_Tips/Compact_Flash.htm

« Назад в каталог | Обсудить в конференции »
[На главную] [Обновления] [Новости] [Клуб] [Обзоры программ] [Советы] [Обзоры железа] [SIBO] [Конференция] [Статьи] [Базы] [Ссылки] [Поиск]