vak: (Default)
[personal profile] vak
Занимаясь микроконтроллерами, периодически провожу тестирование карточек памяти SD и SDHC на предмет максимальной скорости.  Последняя новинка в моей коллекции - карточка Lexar Professional 400x 8 GB SDHC - оказалась чемпионом среди SDHC.  Быстрее неё только Kodak High Performance SD 512 Mb и безымянная microSD 2Gb (предположительно Wintec).  Тут хитрость в том, что современные карточки оптимизируются производителем для работы в четырёхбитном режиме (4-битная шина данных) и большими блоками - сектора по 32 кбайта.  А микроконтроллер общается с карточкой через последовательный порт SPI, то есть в однобитном режиме.  И размер блока обычно гораздо меньше.

Скорость чтения/записи, кбайт/сек, измеренная утилитой dd в RetroBSD:
Lexar SDHC 8Gb - 1107/386.
Kodak SD 512 Mb - 1205/853.
Безымянная microSD 2Gb - 1107/465.

Карточки Kodak SD, кстати, всё еще есть в продаже на Амазоне и Ebay.

Date: 2012-05-06 14:24 (UTC)
From: [identity profile] amarao-san.livejournal.com
Ох, с dd, и вообще, с линейным чтением, тут такая бодяга... Я играюсь с high performance (условно говоря, скорости за гигабайт/с), и dd, к сожалению, не является эталоном скорости... Хотя бы потому, что запросы посылает последовательно, то есть создаёт bottleneck для устройств, способных обслуживать больше одного запроса за раз.

Date: 2012-05-07 06:19 (UTC)
From: [identity profile] dadv.livejournal.com
Что-то мешает запускать несколько dd параллельно для проверки?

Date: 2012-05-07 07:26 (UTC)
From: [identity profile] amarao-san.livejournal.com
.... так что в итоге мы получаем просто обычный fio в режиме read с заданной многопоточностью. Да, именно так и тестирую.

Date: 2012-05-08 01:06 (UTC)
From: [identity profile] amarao-san.livejournal.com
В смысле? Очереди вообще нет?

ЗЫ Даже если железка не умеет очереди, 2 конкурентных запроса дают большую производительность, чем один, из-за того. что пока один в юзерспейсе ковыряется, второй обслуживается.