реклама на сайте
подробности

 
 
> microSD задержки при обмене, есть ли способы борьбы ?
MiklPolikov
сообщение Sep 5 2016, 21:50
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



На microSD карту пишется поток данных. Поток непрерывный, буфера RAM нет, карта периодически останавливает обмен на доли секунды.
Интерфейс SDIO 48МГц , на карте FAT32 , библиотека для работы c FAT FATFS.

Вопрос:
Можно ли избавится от задержек в обмене ? Может быть, в современных картах появились какие-то хитрые настройки для этого ? Может быть, есть карты со встроенным буфером RAM ?

Заранее спасибо !





--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
makc
сообщение Sep 7 2016, 19:52
Сообщение #2


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



По-моему Вы путаете уровни, т.к. спецификация задает параметры карт, видимые для внешнего мира. В т.ч. логическую организацию и систему команд. Но делать из этого вывод о физической структуре и методах работы внутренних алгоритмов карты в корне неверно, т.к. это более низкий уровень, скрытый за упомянутой системой команд.

Число циклов перезаписи современных MLC/TLC NAND Вы знаете, почему же карты живут несколько дольше?
Вот статья 2003 года, отчасти подтверждающая мои слова про наличие механизмов выравнивания износа.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 8 2016, 07:00
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(makc @ Sep 8 2016, 01:52) *
По-моему Вы путаете уровни, т.к. спецификация задает параметры карт, видимые для внешнего мира. В т.ч. логическую организацию и систему команд. Но делать из этого вывод о физической структуре и методах работы внутренних алгоритмов карты в корне неверно, т.к. это более низкий уровень, скрытый за упомянутой системой команд.

Да я допускаю что внутри там может быть более сложная организация. Я и писал что возможно там есть буферизация потока записываемых блоков (о чём косвенно свидетельствует алгоритм работы команды многоблочной записи).
Но в спецификации это явно не указано! Т.е. - не указано что карта должна это делать. Какой-то конкретный производитель может конечно захотеть и реализовать внутри всё что угодно: и вести статистику использования блоков и даже перемещать самые популярные блоки не только по всему массиву блоков, но и в отдельную память, например FRAM и многое другое.
Но только - зачем ему оно надо? Тратить ресурсы на более сложную разработку, тратить лишние вентили на весь этот механизм, может их лучше потратить на доп. ячейки флешь и сделать бОльшую ёмкость?
Ведь главная цель изготовителя - извлечение прибыли и уменьшение издержек. И если оно не требуется спецификацией, то может кто так и будет делать, то такие карты ТСу ещё найти надо.

Цитата(makc @ Sep 8 2016, 01:52) *
Число циклов перезаписи современных MLC/TLC NAND Вы знаете, почему же карты живут несколько дольше?

И что? Число циклов перезаписи не говорит, что по достижении этого значения, блок сразу откажет. Это минимальное число стираний которое блок должен выдержать, а в реале может в разы больше выдержать.
Вот я сейчас разбираюсь с регенерацией SDRAM. Так вот провожу испытания - выключаю регенерацию и измеряю сколько данные продержатся без регенерации. По даташиту регенерацию надо выполнять не реже чем раз в 64мсек, т.е. хранение данных без регенерации более 64мсек не гарантировано.
А в реале (заполняю всю SDRAM 32МБ псевдослучайными значениями и через заданное время проверяю всю целиком) разрушение данных наблюдаю только после отключения регенерации на 3-4 сек и более.
Если на 1 сек отключить регенерацию, то данные 100%-но сохраняются.
Go to the top of the page
 
+Quote Post
IlyaSergeev
сообщение Sep 8 2016, 08:40
Сообщение #4





Группа: Участник
Сообщений: 9
Регистрация: 29-11-14
Пользователь №: 83 894



Некоторое время назад выкладывал мини-отчет по производительности записи на SD в непрофильной теме:
http://electronix.ru/forum/index.php?showt...32833&st=31
Краткий вывод - от задержек в десятки и даже сотни мс не избавиться, но при правильной организации структуры памяти можно радикально уменьшить их количество.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Sep 12 2016, 08:22
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(IlyaSergeev @ Sep 8 2016, 11:40) *
Некоторое время назад выкладывал мини-отчет по производительности записи на SD в непрофильной теме:
http://electronix.ru/forum/index.php?showt...32833&st=31


IlyaSergeev, большое спасибо ! Выравнивание адреса на 0x8000 заметно улучшило дело ! . Но редкие нерегулярные задержки 400мс при использовании FATFS остались.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
makc
сообщение Sep 12 2016, 08:33
Сообщение #6


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(MiklPolikov @ Sep 12 2016, 11:22) *
IlyaSergeev, большое спасибо ! Выравнивание адреса на 0x8000 заметно улучшило дело ! . Но редкие нерегулярные задержки 400мс при использовании FATFS остались.


FATFS написан неэффективно и чуть что лезет писать в FAT, причём пишет совсем понемногу. Поэтому для оптимизации доступа имеет смысл сделать промежуточный слой доступа к носителю (типа кэша), который будет накапливать эти модификации и потом редко записывать единым блоком. И, кстати, стоит обратить внимание на то, как FatFS сконфигурирован. Надеюсь у Вас _FS_TINY == 0 ?


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 12 2016, 13:47
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(makc @ Sep 12 2016, 14:33) *
(типа кэша), который будет накапливать эти модификации и потом редко записывать единым блоком. И, кстати, стоит обратить внимание на то, как FatFS сконфигурирован. Надеюсь у Вас _FS_TINY == 0 ?

У ТСа нет ОЗУ даже для буферизации основного потока, не то что ещё и FAT. Ведь в этом-то и вся проблема. Если-б ОЗУ было - проблемы и не было-бы: выкинуть вообще любую файловую систему и писать просто поток блоков на SD через буфер.

Цитата(mantech @ Sep 12 2016, 14:47) *
Т.е. предлагаете делать прослойку типа SmartDrv в старом мс-досе?? А вы в курсе, что при этом можно очень легко нарушить целостность файловой системы при сбое или отключении питания? Сколько было потрачено сил и убеждений в свое время, чтоб не жали на ресет по делу и без дела в старых компах... Хотя да, на древних винтах ускорение было заметным.

Эти "прослойки" есть и на современных компах. Иначе - операции с мелкими файлами на SD становятся оооооочень затратны по времени. Да и на МК при интенсивных модификациях файлов, кеширование очень полезно.
А чтобы не слетали файловые системы - тут разработчик, на этапе проработки идеологии всей системы в целом, должен голову включить и подумать как этого добиться (или супервизиром питания, дающим запас времени после сигнала аварии питания; или дополнительной non-volatile памятью, в которую ПО будет делать журналирование любых критических операций с файловой системой; или ещё какими другими методами).
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Sep 12 2016, 13:51
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(jcxz @ Sep 12 2016, 16:47) *
Если-б ОЗУ было - проблемы и не было

Если б были ОЗУ в небольших корпусах с каким-то примитивным интерфейсом. А то они все с параллельной шиной, из-за чего у микросхемы и процессора много ног т.е. либо огромные корпуса, либо BGA. Габариты критичны, а BGA дорого


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Sep 12 2016, 14:25
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(MiklPolikov @ Sep 12 2016, 17:51) *
Если б были ОЗУ в небольших корпусах с каким-то примитивным интерфейсом. А то они все с параллельной шиной, из-за чего у микросхемы и процессора много ног т.е. либо огромные корпуса, либо BGA. Габариты критичны, а BGA дорого


Можно пойти другим путём:
1. Например 4х проводный интерфейс у меня пишет быстрей однопроводного.
2. Взять контроллер с большей внутренней памятью.

Кстати карта имеет право осуществлять запись доли секунды. У моей, согласно даташиту - 250мС. Поэтому я, для надёжности, всегда использую внутренний буфер более чем на четверть секунды.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MiklPolikov   microSD задержки при обмене   Sep 5 2016, 21:50
- - aaarrr   Нет, никак нельзя избавиться. Или организуйте буфе...   Sep 5 2016, 22:08
|- - MiklPolikov   Цитата(aaarrr @ Sep 6 2016, 01:08) Нет, н...   Sep 5 2016, 22:21
|- - aaarrr   Цитата(MiklPolikov @ Sep 6 2016, 01:21) Н...   Sep 5 2016, 22:31
- - Сега   Наблюдал такое на STM32. Решилось переходом на DMA...   Sep 5 2016, 22:26
- - makc   Скорость записи может зависеть от того, как карта ...   Sep 6 2016, 04:31
|- - jcxz   Цитата(makc @ Sep 6 2016, 10:31) Скорость...   Sep 7 2016, 10:21
|- - makc   Цитата(jcxz @ Sep 7 2016, 13:13) Как бы о...   Sep 7 2016, 10:22
|- - jcxz   Цитата(makc @ Sep 7 2016, 16:22) Представ...   Sep 7 2016, 11:02
|- - makc   Цитата(jcxz @ Sep 7 2016, 14:02) И что из...   Sep 7 2016, 12:03
|- - jcxz   Цитата(makc @ Sep 7 2016, 18:03) При этом...   Sep 7 2016, 17:37
- - AlexandrY   Цитата(MiklPolikov @ Sep 6 2016, 00:50) В...   Sep 6 2016, 06:16
- - aaarrr   Цитата(makc @ Sep 6 2016, 07:31) Скорость...   Sep 6 2016, 07:14
|- - AlexandrY   Цитата(aaarrr @ Sep 6 2016, 10:14) Да ну,...   Sep 6 2016, 07:20
|- - aaarrr   Цитата(AlexandrY @ Sep 6 2016, 10:20) В с...   Sep 6 2016, 07:35
|- - AlexandrY   Цитата(aaarrr @ Sep 6 2016, 10:35) На одн...   Sep 6 2016, 08:49
|- - mantech   Цитата(AlexandrY @ Sep 6 2016, 11:49) Зна...   Sep 6 2016, 11:46
- - adnega   Цитата(MiklPolikov @ Sep 6 2016, 01:21) Н...   Sep 6 2016, 12:28
|- - MiklPolikov   Цитата(makc @ Sep 12 2016, 11:33) Надеюсь...   Sep 12 2016, 08:44
|- - mantech   Цитата(makc @ Sep 12 2016, 11:33) FATFS н...   Sep 12 2016, 08:47
||- - makc   Цитата(mantech @ Sep 12 2016, 11:47) Т.е....   Sep 12 2016, 11:17
||- - jcxz   Цитата(makc @ Sep 12 2016, 17:17) Я же пы...   Sep 12 2016, 14:11
||- - makc   Цитата(jcxz @ Sep 12 2016, 17:11) Да ну...   Sep 12 2016, 16:09
||- - jcxz   Цитата(makc @ Sep 12 2016, 22:09) И тем н...   Sep 12 2016, 17:07
||- - makc   Цитата(jcxz @ Sep 12 2016, 20:07) Скажу, ...   Sep 12 2016, 17:23
|- - _4afc_   Цитата(jcxz @ Sep 8 2016, 11:00) Какой-то...   Sep 12 2016, 14:18
||- - jcxz   Цитата(_4afc_ @ Sep 12 2016, 20:18) Приве...   Sep 12 2016, 14:37
|- - jcxz   Цитата(MiklPolikov @ Sep 12 2016, 19:51) ...   Sep 12 2016, 14:24
- - Alex11   Чтобы минимизировать задержки при длительной запис...   Sep 8 2016, 16:43
|- - MiklPolikov   Показалась интересной мысль про то что карта трати...   Sep 8 2016, 19:40
|- - aaarrr   Цитата(MiklPolikov @ Sep 8 2016, 22:40) С...   Sep 8 2016, 19:51
|- - MiklPolikov   Цитата(aaarrr @ Sep 8 2016, 22:51) А врем...   Sep 8 2016, 21:01
|- - jcxz   Цитата(aaarrr @ Sep 9 2016, 01:51) А врем...   Sep 12 2016, 04:50
|- - makc   Цитата(jcxz @ Sep 12 2016, 07:50) Ещё раз...   Sep 12 2016, 08:08
|- - jcxz   Цитата(makc @ Sep 12 2016, 14:08) Дайте, ...   Sep 12 2016, 10:38
- - jorikdima   многократно тема поднималась тут. Сам сталкивался,...   Sep 8 2016, 20:01
- - makc   Их есть, например, Serial SRAM and Serial NVSRAM ...   Sep 12 2016, 14:05
|- - MiklPolikov   Цитата(makc @ Sep 12 2016, 17:05) Их есть...   Sep 12 2016, 14:19
||- - _4afc_   Цитата(MiklPolikov @ Sep 12 2016, 18:19) ...   Sep 12 2016, 23:06
||- - MiklPolikov   Цитата(_4afc_ @ Sep 13 2016, 02:06) не зн...   Sep 12 2016, 23:17
|||- - _4afc_   Цитата(MiklPolikov @ Sep 13 2016, 03:17) ...   Sep 12 2016, 23:33
|||- - MiklPolikov   Цитата(_4afc_ @ Sep 13 2016, 02:33) Вы же...   Sep 12 2016, 23:44
|||- - _4afc_   Цитата(MiklPolikov @ Sep 13 2016, 03:44) ...   Sep 13 2016, 00:23
|||- - MiklPolikov   Цитата(_4afc_ @ Sep 13 2016, 03:23) вопро...   Sep 13 2016, 00:59
|||- - _4afc_   Цитата(MiklPolikov @ Sep 13 2016, 04:59) ...   Sep 13 2016, 01:29
||- - jcxz   Цитата(_4afc_ @ Sep 13 2016, 05:06) Если ...   Sep 13 2016, 04:59
|- - mantech   Цитата(makc @ Sep 12 2016, 17:05) Их есть...   Sep 12 2016, 17:00
|- - jcxz   Цитата(makc @ Sep 12 2016, 20:05) Но тут ...   Sep 12 2016, 17:49
- - makc   FRAM по надежности (числу циклов перезаписи) ...   Sep 12 2016, 18:11
- - jcxz   Цитата(makc @ Sep 13 2016, 00:11) FRAM по...   Sep 13 2016, 04:29
- - makc   Цитата(jcxz @ Sep 13 2016, 07:29) Что зна...   Sep 13 2016, 04:41
- - _4afc_   Цитата(jcxz @ Sep 13 2016, 08:29) Задержк...   Sep 13 2016, 06:43
- - mantech   Цитата(jcxz @ Sep 13 2016, 07:29) Да и то...   Sep 13 2016, 10:20
- - jcxz   Цитата(mantech @ Sep 13 2016, 16:20) Сорр...   Sep 13 2016, 11:47


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th June 2025 - 12:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01508 секунд с 7
ELECTRONIX ©2004-2016