|
microSD задержки при обмене, есть ли способы борьбы ? |
|
|
|
 |
Ответов
|
Sep 7 2016, 19:52
|

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

|
По-моему Вы путаете уровни, т.к. спецификация задает параметры карт, видимые для внешнего мира. В т.ч. логическую организацию и систему команд. Но делать из этого вывод о физической структуре и методах работы внутренних алгоритмов карты в корне неверно, т.к. это более низкий уровень, скрытый за упомянутой системой команд. Число циклов перезаписи современных MLC/TLC NAND Вы знаете, почему же карты живут несколько дольше? Вот статья 2003 года, отчасти подтверждающая мои слова про наличие механизмов выравнивания износа.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
Sep 8 2016, 07:00
|
Гуру
     
Группа: Свой
Сообщений: 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%-но сохраняются.
|
|
|
|
|
Sep 8 2016, 08:40
|
Группа: Участник
Сообщений: 9
Регистрация: 29-11-14
Пользователь №: 83 894

|
Некоторое время назад выкладывал мини-отчет по производительности записи на SD в непрофильной теме: http://electronix.ru/forum/index.php?showt...32833&st=31Краткий вывод - от задержек в десятки и даже сотни мс не избавиться, но при правильной организации структуры памяти можно радикально уменьшить их количество.
|
|
|
|
|
Sep 12 2016, 08:33
|

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

|
Цитата(MiklPolikov @ Sep 12 2016, 11:22)  IlyaSergeev, большое спасибо ! Выравнивание адреса на 0x8000 заметно улучшило дело ! . Но редкие нерегулярные задержки 400мс при использовании FATFS остались. FATFS написан неэффективно и чуть что лезет писать в FAT, причём пишет совсем понемногу. Поэтому для оптимизации доступа имеет смысл сделать промежуточный слой доступа к носителю (типа кэша), который будет накапливать эти модификации и потом редко записывать единым блоком. И, кстати, стоит обратить внимание на то, как FatFS сконфигурирован. Надеюсь у Вас _FS_TINY == 0 ?
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
Sep 12 2016, 13:47
|
Гуру
     
Группа: Свой
Сообщений: 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 памятью, в которую ПО будет делать журналирование любых критических операций с файловой системой; или ещё какими другими методами).
|
|
|
|
|
Sep 12 2016, 14:18
|

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

|
Цитата(jcxz @ Sep 8 2016, 11:00)  Какой-то конкретный производитель может конечно захотеть и реализовать внутри всё что угодно: и вести статистику использования блоков и даже перемещать самые популярные блоки не только по всему массиву блоков, но и в отдельную память, например FRAM и многое другое. Но только - зачем ему оно надо? Тратить ресурсы на более сложную разработку, тратить лишние вентили на весь этот механизм, может их лучше потратить на доп. ячейки флешь и сделать бОльшую ёмкость? Приведу пример про конкретный чип на основе родственника SDcard - eMMC: Цитата In addition to the mass-storage-specific flash memory chip, SanDisk eMMC includes an intelligent controller, which manages interface protocols, data storage and retrieval, error correction code (ECC) algorithms, defect handling and diagnostics, power management, wear leveling, and clock control. Цитата(jcxz @ Sep 12 2016, 08:50)  Ещё раз: Где в спецификации SD говорится, что карта что-то там внутри себя переписывает???? Дайте ссылку. Приведу пример из стандарта 84-A441 на eMMC: Цитата Terms and definitions: Copies: Copies of erase group(s) or copies of write groups shall be defined as copies of data that are generated by the deviec controller during internal device controller operations. These can include (but are not limited to) copies generated during error handling, wear-leveling or garbage collection. Copies does not refer to write block data, at a specific address. This overwritten data may still remain in the memory array but is no longer accessible by the host. If this data must be secure trimmed, it is the host application’s responsibility to mark this data for secure trim prior to the overwrite event. Ну и при вызове Trim: Цитата Since the minimum size for an erase operation is an erase group and a write group is smaller than an erase group. The trim operation implies that write blocks in an erase group that are not marked for erase must be copied to another location before the erase is applied. Вообще ничего волшебного в Trim нет, просто он позволяет посекторно флушить память. Другое дело непонятно, можно ли на MLC вообще не вызывать TRIM, ERASE или ACMD23? Протестировал тут стирание группы в моей eMMC через CMD35,CMD36,CMD38: при стирании 2/20МБ - то 30мс, то 2 секунды, в не зависимости от длины и наличия данных.
|
|
|
|
Сообщений в этой теме
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        jcxz Цитата(_4afc_ @ Sep 12 2016, 20:18) Приве... Sep 12 2016, 14:37       jcxz Цитата(MiklPolikov @ Sep 12 2016, 19:51) ... Sep 12 2016, 14:24       _4afc_ Цитата(MiklPolikov @ Sep 12 2016, 17:51) ... Sep 12 2016, 14:25 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|