Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
скорость работы с SD-картой (запись)
Valentinus
Добавлено 23.09.2010 14:42
0
Сообщение: 1
Valentinus
4

Пункты: 2138
Регистрация: 23.01.2010
Пол: Мужчина
собственно наболевший сабж.

вопрос к знатокам: скорость запись на SD-карту упирается в время физического процесса записи, или все же играет какую-то роль файловая система?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 23.09.2010 16:15 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
вопрос к знатокам: скорость запись на SD-карту упирается в время физического процесса записи, или все же играет какую-то роль файловая система?

не знаток, но могу предположить что:
- на скорость физпроцесса записи влияет режим работы карточки (SPI, SD) и ширина шины в режиме SD (1 или 4 бита)
- на скорость физпроцесса записи влияет режим монтирования карточки - как мне помнится, карточку можно смонтировать в режим сквозной записи - данные для записи сразу пишутся на накопитель - чтобы не потерять данные при внезапном отключение накопителя. или в режим отложенной записи - данные пишутся в буфер памяти, а далее по мере заполнения и стратегии настроек системы в фоне пишутся на карточку..

где-то на форуме это уже обсуждалось..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Valentinus
Добавлено 23.09.2010 22:29 Редактировалось 23.09.2010 22:30 Сообщение: 3
Valentinus
4

Пункты: 2138
Регистрация: 23.01.2010
Пол: Мужчина
не-не-не.
берем совершенно конкретный случай- плата SK-AT91SAM9XE512-S3E например. там карточка подключена в режиме SD (и видимо шины 4 бита), монтируется раздел с ключем -oasync . По умолчанию карта форматирована в FAT

получаем некоторую скорость записи N Кб/сек

интересует: если сменить файловую систему карточки на YAFS2 или UBIFS - увеличится ли скорость записи?
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 23.09.2010 23:29 Сообщение: 4
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Попробуйте, но думаю, не особо увеличится.
Исходя из этих соображений: все карточки основаны на NAND флешках, в которых запись и чтение идет секторами (512 или 2048Б), а стирание блоками (128K), т.е. стоит отключить кеш как запись каждого сектора будет сопровождаться стиранием-перезаписью всего блока ...
Поэтому скорость записи и падает в десятки раз, при отключеных кешах.
Как проявит себя UBIFS на блочном устройстве (т.к. SD карточка имеет свой контроллер, который выполняет часть функций, которые должна брать на себя UBI - контроль битых блоков и случайный выбор блока для записи) а не на самой NAND флешке довольно интересно.
Полагаю, накладные расходы на саму ФС будут небольшими.
Кстати, следует отметить, что кроме ФС еще имеет значение (а в случае с дисками еще большее значение) планировщик записи, они были внедрены для меньшей аммортизации жестких дисков, насколько помню, их было штуки 3-4, но для флешевых дисков лучше было выбирать NOOP, т.к. они без особой надобности, хотя в последнее время замечал в BSP плат стояли включены другие планировщики (не знаю с чем связвно, может там чего нового внедрили) ...
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 24.09.2010 09:03 Редактировалось 24.09.2010 09:24 Сообщение: 5
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Цитата

Как проявит себя UBIFS на блочном устройстве ... а не на самой NAND флешке довольно интересно.


Ничего интересного - она там работать не будет как и yaffs и jffs
http://linux-mtd.infradead.org/doc/ubifs.html
Цитата

Big red note

One thing people have to understand when dealing with UBIFS is that UBIFS is very different to any traditional file system - it does not work on top of block devices (like hard drives, MMC/SD cards, USB flash drives, SSDs, etc).


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

PS помню ваши проблемы с реалтаймом - я бы рекомендовал попробовать RT-патчи, там есть одно интересное свойство - все обработчики прерываний работают в отдельных процессах ядра и им можно из юзерспейс назначать приоритеты как обычным процессам, например можно поставить наивысший приоритет обработчику mci, Как показывает практика система с этими патчами вполне жизнеспособна и стабильна а для atmel даже сведения кое какие есть https://rt.wiki.kernel.org/index.php/CONFIG_PREEMPT_RT_Patch о латентности, так что должно "взлететь" :)
Спуститься к концу Подняться к началу
Персональная информация
Valentinus
Добавлено 24.09.2010 10:19 Сообщение: 6
Valentinus
4

Пункты: 2138
Регистрация: 23.01.2010
Пол: Мужчина
Цитата
Цитата

Как проявит себя UBIFS на блочном устройстве ... а не на самой NAND флешке довольно интересно.


Ничего интересного - она там работать не будет как и yaffs и jffs
http://linux-mtd.infradead.org/doc/ubifs.html

UBIFS похоже таки- не будет, но в статье по ссылке сказано: JFFS2 file system works on top of MTD devices,
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 24.09.2010 10:31 Сообщение: 7
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Цитата

UBIFS похоже таки- не будет, но в статье по ссылке сказано: JFFS2 file system works on top of MTD devices,


Так я об этом и говорю - не будет, в том числе и jffs. Все эти фс работают только поверх MTD и не будут работать на блочных устройствах. Можно эмулировать блочное устройство на устройстве MTD а вам нужно наоборот :)
Спуститься к концу Подняться к началу
Персональная информация
Valentinus
Добавлено 24.09.2010 10:48 Сообщение: 8
Valentinus
4

Пункты: 2138
Регистрация: 23.01.2010
Пол: Мужчина
Цитата

PS помню ваши проблемы с реалтаймом - я бы рекомендовал попробовать RT-патчи, там есть одно интересное свойство - все обработчики прерываний работают в отдельных процессах ядра и им можно из юзерспейс назначать приоритеты как обычным процессам, например можно поставить наивысший приоритет обработчику mci, Как показывает практика система с этими патчами вполне жизнеспособна и стабильна а для atmel даже сведения кое какие есть https://rt.wiki.kernel.org/index.php/CONFIG_PREEMPT_RT_Patch о латентности, так что должно "взлететь" :)


да, полгода назад я тут у многих в печенках сидел :)

реалтаймом тут не поможешь. все упирается именно в скорость записи на SD - повышай потоку приоритет, не повышай - все равно.

с одной стороны сбор данных переложили на FPGA, но каналов много, частота оцифровки большая, итоговый поток данных 660Кб/сек . Вроде и успевает писаться, но что называется "на грани". Хотелось бы иметь запас. Вот и мозгую.

В принципе есть еще одна безумная идея - SD подключить к FPGA и запись тоже на FPGA переложить :) но это работа и время... которого не хватает :(
Спуститься к концу Подняться к началу
Персональная информация
Valentinus
Добавлено 24.09.2010 10:53 Редактировалось 24.09.2010 11:26 Сообщение: 9
Valentinus
4

Пункты: 2138
Регистрация: 23.01.2010
Пол: Мужчина
Цитата
Цитата

UBIFS похоже таки- не будет, но в статье по ссылке сказано: JFFS2 file system works on top of MTD devices,


Так я об этом и говорю - не будет, в том числе и jffs. Все эти фс работают только поверх MTD и не будут работать на блочных устройствах. Можно эмулировать блочное устройство на устройстве MTD а вам нужно наоборот :)

пардон , тупанул.

но вот в этом докладе:
http://tree.celinuxforum.org/CelfPubWiki/ELCEurope2008Presentations?action=AttachFile&do=get&target=flash-filesystems.pdf
идет сравнение разных ФС (в т.ч. YAFFS, UBIFS), и вроде разница есть. Хотя там кажется тестируют микруху NAND.
Спуститься к концу Подняться к началу
Персональная информация
Valentinus
Добавлено 24.09.2010 11:09 Редактировалось 24.09.2010 11:12 Сообщение: 10
Valentinus
4

Пункты: 2138
Регистрация: 23.01.2010
Пол: Мужчина
вообще: насколько я понимаю, работа с шиной SD-карты идет в драйвере тупо как с портом ввода-вывода (PA4-11)? то бишь все операции делаются как: установил биты, снял биты, и т.п.?
и все это делает АРМ, так?

а ведь в принципе это можно переложить на FPGA - во-первых и ЦП разгрузится, и во-вторых FPGA может более короткую временную диаграмму формировать, т.е. скорость повысить.

То есть скажем реализовать в SRAM у FPGA несколько управляющих регистров и буфер данных. И тогда проц просто копирует данные в буфер, записывает в регистр команду записи/чтения и через ожидаемое время выполнения операции почитывает регистр состояния (результата).
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux