Введение
Eще совсем недавно мы радовались тому, как растет скорость карт памяти: 40Х, 66Х, 80Х. Потом как-то незаметно промелькнули 133Х и 150Х, а сейчас уже можно без проблем пойти в магазин и купить CompactFlash карты 266Х и даже 300Х. А ведь это, как нетрудно пересчитать, 40 и 45 мегабайт в секунду, что вполне сравнимо со скоростями жестких дисков. И вот уже пришло время поднять такой вопрос, как быстродействие интерфейса, по которому наш компьютер общается с картой памяти. Кто-то использует карту в сочетании с карт-ридером в качестве мобильного накопителя для ношения с собой рабочих файлов, фильмов, музыки и так далее (благо, объемы карт выросли до 16 ГБ), кому-то нужна оперативность при работе с большим объемом фотографий (а фотографии в формате RAW с современных цифровых зеркальных камер занимают весьма много места), а кто-то и вовсе использует устройства на flash-памяти как основные накопители – последнее чаще встречается на небольших серверах и промышленных компьютерах. И если первые две категории потребителей вынуждены довольствоваться внешними интерфейсами, то у тех, кто использует карты памяти CompactFlash в качестве замены для жестких дисков, есть альтернатива в виде ATA – CompactFlash переходника. И таких, выбравших себе бесшумный накопитель с великолепной устойчивостью к вибрациям и малым временем доступа на чтение, в последнее время все больше, поскольку скорости карт и их объем уже позволяют без проблем устанавливать на них операционные системы и пользовательское ПО.
При использовании карт CompactFlash в нашем распоряжении есть четыре варианта организации работы в качестве накопителя для компьютера: через USB или FireWire карт-ридер, через установленный в PCMCIA адаптер, или же непосредственным подключением к материнской плате через ATA – CompactFlash переходник. И если третий вариант подходит в основном для владельцев ноутбуков и является малораспространенным, то про остальные есть смысл поговорить особо.
Дело в том, что помимо физического интерфейса, нам важен и режим передачи данных между компьютером и картой. Последний на текущий момент стандарт CompactFlash 4.1 , скачать который вы можете с
сайта CompactFlash Association, описывает все доступные варианты. Для обеспечения совместимости со стандартами, карты памяти CompactFlash могут функционировать в одном из трех режимов: PC Card I/O (полное соответствие стандарту PC Card), True IDE (совместимость со стандартом ATA 4) и Memory Card. Во всех трех режимах карта может передавать данные по шине по одному из протоколов PIO: поддерживаются режимы передачи от PIO 0 до PIO 6. Наиболее часто используемыми в современных картах являются режимы PIO 4, со скоростью передачи данных 16,7 МБ/с, и PIO 6, обеспечивающий скорость до 25 МБ/с. Также, для карт регламентируется использование режимов Multiword DMA 0…4 с максимальной скоростью до 33 МБ/с. Но нам наиболее интересна поддержка режимов Ultra DMA 0…6, обеспечивающих максимальные возможные скорости, доходящие в случае UDMA 6 до 133 МБ/с. К сожалению, какие именно режимы будет поддерживать конкретная карта, зависит исключительно от ее производителя, сумевшего или не сумевшего реализовать поддержку соответствующих режимов передачи данных в контроллере карты.
Но на самой карте все не заканчивается, поскольку необходимо, чтобы не только карта, но и, конечно же, контроллер поддерживал необходимые режимы. Так, в большинстве случаев при ATA-подключении нам недоступны режимы PIO 5, 6 и Multiword DMA 3, 4. А при подключении через карт-ридер все зависит от чипа, на котором он построен: подавляющее большинство существующих на сегодня моделей поддерживают лишь PIO-режимы передачи данных, и только очень немногие предлагают UDMA-режимы. Естественно, что USB или FireWire интерфейс карт-ридера также накладывает свои ограничения на скорость передачи данных, поэтому весьма привлекательным вариантом для нас является использование ATA – CompactFlash переходника, поскольку в таком случае не происходит дополнительных преобразований данных для адаптации их к принципиально другому интерфейсу передачи (как уже говорилось выше, карты CompactFlash имеют "врожденную" совместимость со стандартом ATA-4).
Однако, это все теория, а нам интересна практика. Поэтому мы решили сравнить все три доступных вида подключения, взяв по одному представителю каждого вида: ATA – CompactFlash переходник, USB и FireWire карт-ридеры.
ATA – CompactFlash переходник
Поскольку при разработке стандарта CompactFlash основной целью было сохранение всех достоинств ATA Flash, то существующие уже более двадцати лет карты памяти данного типа полностью совместимы также и со стандартом PCMCIA, и обеспечивают эмуляцию жесткого диска. Попросту говоря, переходник ATA – CompactFlash не требует каких-либо микросхем: необходимо лишь обеспечить соединение соответствующих сигнальных линий разъемов ATA и CompactFlash, да подать на карту питание. Одним из подобных устройств мы и решили воспользоваться:
Схемотехника переходника действительно очень проста: перед нами небольшая плата, на которой есть стандартный четырехпиновый разъем питания, стандартные разъемы IDE и CompactFlash, два конденсатора, джампер, переключающий режимы "Master/Slave", да некоторое количество дорожек. Все хорошо, вот только выполнен переходник по
схеме, представленной компанией Sandisk еще в 1997 году, когда карты не обладали поддержкой UDMA. Соответственно, подключение через такой переходник даст нам довольно скромную скорость и значительную нагрузку на процессор, что нас никак не устраивает. К счастью, необходимая для активации UDMA модернизация переходника проста и не вызовет значительных проблем у людей, умеющих работать паяльником. Все, что нужно сделать – это соединить между собой 21-й контакт IDE (сигнал DMAREQ) c 43-м контактом разъема CompactFlash, и 29-й контакт IDE (сигнал DMACK) с 44-м контактом разъема CompactFlash. Мы это проделали припаиванием двух проводков, соединяющих соответствующие контакты (если вы соберетесь повторить наши действия – тщательно следите за нумерацией контактов, и помните, что неправильной распайкой можно вывести из строя как карту памяти, так и материнскую плату вашего компьютера).
К сожалению, даже после проведенной модернизации переходника процесс подключения прошел не идеально. Подключив к южному мосту ICH-7R материнской платы переходник с картой, заведомо обладающей поддержкой UDMA 4, мы с удивлением обнаружили, что нам доступно лишь PIO, а сама карта определилась как внешнее устройство, а не как локальный диск.
Пропускной способности этого режима, не превышающей 16,7 МБ/с, было явно для нас недостаточно, и мы начали искать пути решения проблемы. Решение нашлось, хотя и не очень красивое: мы попросту подключили ATA – CompactFlash переходник через контроллер Promise SATA II TX2Plus.
Такое подключение обеспечило нам желаемое UDMA 4, и, соответственно, скорость передачи данных до 66 МБ/с.
Методика тестирования
Для тестирования мы использовали следующие программы:
FC-Test версии 1.0;
FC-Test версии 2.0;
IOMeter версии 2003.02.15.
Мы используем две версии программы FC-Test, чтобы обеспечить плавный переход для читателя на новую версию теста и одновременно предоставить возможность сравнения результатов новых накопителей с протестированными нами ранее.
Для тестов использовалась платформа следующей конфигурации:
Intel Pentium 4 2.8ГГц;
512МБ DDR 2 533МГц;
ASUS P5WD Premium;
Samsung SP0411N в качестве системного диска;
Windows XP Professional SP2.
Для сравнения с переходником CF-ATA мы выбрали самые быстрые из доступных нам карт-ридеров – новые USB и FireWire модели серии Extreme компании Sandisk. Подробный обзор и результаты сравнительного тестирования данных карт-ридеров вы можете прочитать
в одной из наших предыдущих статей. Модель с интерфейсом FireWire построена на контроллере
OXFW912, обеспечивающем все режимы работы с картой, вплоть до UDMA 6. Карт-ридер с USB-подключением построен на одном из чипов компании
Genesys Logic и обеспечивает режимы вплоть до PIO 6, но, к сожалению, не поддерживает UDMA. Однако надо отметить, что нам пока вообще не встречалось карт-ридеров на чипе
xSil 251 – единственном на текущий момент, способном обеспечить режим UDMA 4 в USB-моделях. Естественно, что мы взяли самую быструю из доступных нам на текущий момент карт – Sandisk Extreme IV, соответствующую четвертой версии стандарта CompactFlash (а следовательно, теоретически, поддерживающую UDMA 4 во всех режимах подключения) и, по заявлениям производителя, обеспечивающую скорости записи и чтения до 40 МБ/с. Поскольку наш обзор посвящен не сравнению карт-ридеров, а, фактически, сравнению интерфейсов, по которым компьютер может взаимодействовать с картами CompactFlash, то в дальнейшем я буду в тексте статьи упоминать не модели карт-ридеров, а только интерфейсы.
IOMeter: Sequential Read & Write
Как обычно, начнем мы с результатов синтетического тестирования в программе IOMeter.
Сравним показатели, полученные при изучении последовательного чтения и записи блоков с размерами от 512 байт до 1 МБ, для каждого устройства.
Сравнение графиков чтения более чем наглядно показывает различия интерфейсов. FireWire и USB демонстрируют примерно равную скорость на малых блоках, но при увеличении их размеров FireWire набирает скорость значительно быстрее, нежели USB, и в результате разница между ними достигает почти двух раз. Интерфейс ATA сразу уходит в отрыв: на блоках размером вплоть до 16 КБ его превосходство в скорости составляет более 10 МБ/с, и лишь на больших блоках отрыв снижается до 4 МБ/с – впрочем, здесь уже сказывается ограничение скорости, накладываемое самой картой памяти.
Расстановка сил в целом сохранилась, хотя отдельные изменения все же есть. Графики чтения FireWire и ATA проходят гораздо ближе друг к другу, но на малых блоках ATA – CompactFlash переходник по-прежнему сохраняет преимущество в 5 МБ/с. Зато на блоках больших размеров внешний карт-ридер умудряется даже несколько выйти вперед. Модель с USB снова не может сравниться по скорости с конкурентами, изрядно отставая от них и выходя на максимальную скорость в 18 МБ/с на блоках 64 КБ и больше.
Учитывая определенное влияние, оказываемое нашим не совсем стандартным подключением адаптера через контроллер Promise, а не напрямую к северному мосту, в целом можно сказать, что по итогам этого теста ATA-интерфейс показывает примерно равные с FireWire результаты на блоках большого размера, но определенно быстрее работает с блоками меньшего размера. А ведь именно скорость работы с мелкими блоками актуальна для тех, кто собирается использовать карты в качестве замены жестким дискам, поскольку размер кластеров файловой системы находится в пределах от 4 до 16 КБ.
IOMeter: Random Read & Write
Перейдем к оценке результатов, полученных при выполнении операций произвольного чтения и записи. Для того, чтобы оценить скорость произвольного чтения и записи, мы измеряли время, затрачиваемое устройствами на эти действия. Размер блоков данных в этом случае менялся от 0,5 до 32768 КБ.
На блоках размером до 128 КБ включительно какой-либо разницы не наблюдается. Лишь при увеличении размеров блока до нескольких мегабайт становится заметно, что ATA-интерфейс несколько быстрее, чем FireWire, а USB традиционно отстает. Учитывая, что при повседневных действиях с накопителями мы используем блоки малых размеров, можно сказать, что скорость выполнения операций произвольной записи одинакова.
При чтении картина изменилась, но не принципиально. По-прежнему на малых блоках скорости операций практически равны. Заметим лишь, что при работе с блоками размером больше одного мегабайта ATA и FireWire идут практически вровень, а вот USB ощутимо проигрывает.
IOMeter: Average Access Read & Write Time
Завершают синтетическое тестирование в IOMeter измерения среднего времени доступа при выполнении накопителями операций случайного чтения или записи секторов. Итоговые значения вычисляются на основе десятиминутного теста на чтение или запись блоков данных по 512 байт, при глубине очереди исходящих запросов, равной единице.
Время доступа на запись примерно равно для всех трех интерфейсов и составляет около 30 мс. А вот время доступа на чтение меньше на два порядка и составляет треть миллисекунды для ATA и FireWire и две трети для USB. Сравните это с временами доступа современных жестких дисков, превышающих десяток миллисекунд, и вы поймете, откуда "растут ноги" у недавно появившейся технологии Windows Vista Ready Boost.
В сочетании со ставшей уже весьма значительной скоростью, великолепной устойчивостью к вибрационным воздействиям и небольшим энергопотреблением, столь малые времена доступа flash-накопителей и стали основным поводом для того, чтобы многие задумались, а некоторые начали использовать карты памяти в качестве системных накопителей, особенно в промышленных и носимых устройствах.
FC-Test 1.0
Перейдем от чистой синтетики IOMeter к более приближенному к практике FC-Test. Во время работы программы осуществляется запись и чтение наборов файлов определенного размера и количества, сопровождающиеся измерением времени, необходимого на выполнение данных операций. Полученные результаты позволяют нам вычислить скорость работы накопителей и сделать выводы о ее зависимости от объема и количества файлов в тестовых паттернах. В нашем случае используются три набора файлов. В паттерны входят файлы, отличающиеся размером – 1, 10 и 100 Мб, а также их количеством – соответственно, сто, десять и один файл. Как показывает наша практика, объема файла 100 МБ обычно бывает достаточным для того, чтобы выявить максимальное быстродействие накопителей на флэш-памяти, и его последующее увеличение не приводит к принципиальному изменению результатов.
Рассмотрим, пожалуй, самые важные результаты, то есть полученные значения скоростей записи.
Результаты несколько удивляют. Если превосходство FireWire над USB в два раза легко было предсказать из синтетических тестов, то показанные ATA – CompactFlash переходником результаты в рамки логики не укладываются. Такое впечатление, что кто-то отключил UDMA-режим и оставил нас наедине с PIO 4 или Multiword DMA. Честно говоря, мы грешим на наше своеобразное подключение переходника через котроллер Promise и, соответственно, объясняем столь невысокие результаты влиянием драйверов Promise. Тем не менее, отметим, что с увеличением размера записываемого файла растет и скорость записи, доходя до 30 МБ/с в случае работы со 100 МБ файлом на FireWire карт-ридере
А вот при чтении все выглядит именно так, как и можно было предполагать. FireWire и ATA идут, что называется, "нога в ногу" и независимо от размеров файла показывают почти равные результаты, хотя переходник несколько вырывается вперед... Судя по всему, UDMA 4 действительно работает как в переходнике, так и в карт-ридере с интерфейсом IEEE 1394.
FC-Test 2.0
Ну и в завершение рассмотрим результаты, полученные во второй версии теста FС-Test, но по методике, полностью совпадающей с использованной при тестировании первой версией теста.
Скорости снизились, а вот закономерности остались. Все также необъяснимо ATA проигрывает FireWire и по-прежнему очень медленно работает USB.
А вот на чтении в этом тесте мы имеем практически идеальную картину: на всех размерах читаемых файлов скорости CF-ATA и FireWire совпадают настолько, что разницу результатов можно считать погрешностью измерений, при этом оба интерфейса ограничены лишь скоростью карты. А вот не способный обеспечить UDMA-режим доступа к данным USB карт-ридер отстает более чем в два раза.
Подведение итогов
По результатам тестов явно видно, что возможностей карт-ридеров с USB-интерфейсом без поддержки UDMA режимов передачи данных уже явно недостаточно для современных карт. А ведь именно ими заполнен современный рынок. Впрочем, ситуация с USB-устройствами может и измениться, если появятся карт-ридеры на чипе xSil 251. FireWire карт-ридеры на сегодня показывают равную с ATA – CompactFlash переходниками скорость при работе с большими файлами, но интерфейс все же накладывает определенные ограничения, и при работе с блоками малых размеров FireWire оказывается лишь на втором месте, заметно отставая от лидера. UDMA 4, обеспечиваемый ATA – CompactFlash переходником и FireWire карт-ридером – вот то, что необходимо для работы на полной скорости.
Впрочем, как показала наша практика, с ATA – CompactFlash переходниками тоже не все просто. Есть проблемы как с самими устройствами, зачастую не полностью реализующими доступные возможности, так и с драйверами материнских плат. Возможно, мы еще вернемся к этому вопросу, но пока рекомендуем Вам обращать самое пристальное внимание на то, полностью ли разведены сигналы на плате вашего переходника и предоставляют ли ему драйвера материнской платы необходимые скоростные режимы передачи данных.
Впрочем, мы приближаемся к еще одному проблемному вопросу, а именно – ограничениям, накладываемым самими скоростными возможностями интерфейсов. Напомню, что для FireWire и USB максимальная скорость передачи данных составляет соответственно 400 Мбит/с и 480 Мбит/с (50 и 60 МБ/с, соответственно). То есть достаточно еще немного (менее чем в два раза) увеличить скорость работы карт, и пропускной способности интерфейсов будет уже недостаточно. А ведь из практики использования внешних накопителей на жестких дисках нам известно, что реальные значения скоростей передачи информации у них значительно ниже теоретических, а значит, "запаса прочности" по скорости у этих интерфейсов практически не осталось. У ATA-подключения запас больше, однако очевидно, что в не очень далеком будущем перестанет хватать возможностей и этого интерфейса – не говоря уж о том, что он и сам по себе отходит в прошлое, исчезая с материнских плат. Тупик? Нисколько: 17 июля 2007 года CompactFlash объявила о формировании рабочей группы, задачей которой будет разработка спецификаций для CompactFlash с SATA-подключением. С учетом такого расширения этого стандарта, как eSATA, есть шансы, что и при использовании внешних карт-ридеров можно будет полностью реализовать возможности высокоскоростных карт CompactFlash.