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

 
 
> 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
mantech
сообщение Sep 12 2016, 08:47
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



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


Т.е. предлагаете делать прослойку типа SmartDrv в старом мс-досе?? А вы в курсе, что при этом можно очень легко нарушить целостность файловой системы при сбое или отключении питания? Сколько было потрачено сил и убеждений в свое время, чтоб не жали на ресет по делу и без дела в старых компах... Хотя да, на древних винтах ускорение было заметным.
Go to the top of the page
 
+Quote Post
makc
сообщение Sep 12 2016, 11:17
Сообщение #8


Гуру
******

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



Цитата(mantech @ Sep 12 2016, 11:47) *
Т.е. предлагаете делать прослойку типа SmartDrv в старом мс-досе??


Да, что-то вроде, только более специализированной и заточенное под конкретную задачу.

Цитата
А вы в курсе, что при этом можно очень легко нарушить целостность файловой системы при сбое или отключении питания? Сколько было потрачено сил и убеждений в свое время, чтоб не жали на ресет по делу и без дела в старых компах... Хотя да, на древних винтах ускорение было заметным.


Естественно в курсе, но FAT и так не является отказоустойчивой ФС, по определению. И состояние ФС не гарантируется при отключении питания во время выполнения операции записи. С этой точки зрения мое предложение не ухудшает характеристик получаемого результата.


Цитата(jcxz @ Sep 12 2016, 13:38) *
Вы с логикой дружите??? wacko.gif Я без понятия откуда Вы это взяли.


Я с логикой вполне дружу. Взял я это из Вашего же сообщения в этой теме:
Цитата(jcxz @ Sep 7 2016, 20:37) *
И вообще - где все эти операции перемещения/перераспределения/...? В SD-карте? Вы уверены? Где блоки разного размера и выравнивание износа? Вы не путаете с какими-то другими типами flash-памяти?
Из спецификации SD:
....


Или Вы этого не писали?

Цитата
Ведь это Вы утверждаете наличие неких механизмов внутри SD, поэтому я и спрашиваю - есть документальные подтверждения или это только Ваши
домыслы ничем не подкреплённые?


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


Я же пытаюсь Вам объяснить, что спецификация физического уровня, на которую Вы ссылались, и не может специфицировать данный аспект реализации карт памяти. В связи с чем и поинтересовался, что может быть есть другая спецификация или раздел, где описываются требования к реализации внутренних структур и алгоритмов карты, т.к. я такой спецификации не знаю.

Цитата
А Вы пробовали? 1000 раз стёрли и на 1001-й раз получили отказ? wink.gif


Пробовали не с картами памяти, с флешом типа NAND. Требования выравнивания износа при использовании NAND взялись не из воздуха, а из практической необходимости. О чем я Вам и пытаюсь уже несколько раз сказать.

Цитата
И исходя из чего же производитель назначает этот самый гарантийный срок? Вы считаете это как-то связано с числом циклов перезаписи?? biggrin.gif


Безусловно. И с механизмами, реализованными в носителях. В противном случае поток рекламаций сведёт на нет всю выручку. А крупные производители умеют считать деньги.

К вопросу о надёжности поинтересуйтесь рекомендациями того же Micron'а относительно eMMC. Пару слайдов прикрепил к этому сообщению.

Цитата
Что именно Вы хотели этим сказать?


Ровно то, что и сказал: Ваши слова не аргумент возможно огромного числа циклов перезаписи или огромного запаса надёжности, заложенного производителем "на всякий случай".

Цитата
Да - условия эксплуатации карт разные и могут меняться. А время жизни (число циклов) задано для наихудшей комбинации этих условий. В реальности же большинство карт эксплуатируются бОльшую часть времени как Вы сказали "на теплом столе". В таких условиях на этом самом "теплом столе" число циклов перезаписи может быть в разы больше минимального, заявленного изготовителем.


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




Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 


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


Гуру
******

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



Цитата(makc @ Sep 12 2016, 17:17) *
Я же пытаюсь Вам объяснить, что спецификация физического уровня, на которую Вы ссылались, и не может специфицировать данный аспект реализации карт памяти. В связи с чем и поинтересовался, что может быть есть другая спецификация или раздел, где описываются требования к реализации внутренних структур и алгоритмов карты, т.к. я такой спецификации не знаю.

Я тоже такой не знаю, у меня только есть:
1. SD Specifications. Part 1. Physical Layer. Simplified Specification. Version 3.01. May 18, 2010
2. SD Specifications. Part A2. SD Host Controller Simplified Specification. Version 2.00. February 8, 2007
3. SD Specifications. Part E1. SDIO Simplified Specification. Version 2.00. February 8, 2007
И я там не находил ничего, подтверждающего наличие внутри SD механизмов перераспределения износа. Хотя может что и пропустил, так как не изучал от корки до корки.

Цитата(makc @ Sep 12 2016, 17:17) *
Пробовали не с картами памяти, с флешом типа NAND. Требования выравнивания износа при использовании NAND взялись не из воздуха, а из практической необходимости. О чем я Вам и пытаюсь уже несколько раз сказать.

Требования эти может выполнять например ПО системы, куда подключена SD. Т.е. - прослойка между например FatFS и интерфейсом SDIO/SPI карты. А не контроллер SD-карты, который останется "тупым". Нужно более эффективное использование SD при интенсивных модификациях - вносите соотв. драйвер в ваше firmware. А для подавляющего большинства применений SD-карт это не нужно и не нужно производителям париться добавляя эту мало кому нужную функцию в контроллер SD, тратя на это ресурсы SD-карты.

Цитата(makc @ Sep 12 2016, 17:17) *
Но нужно понимать, что к разрушению данных во флеше приводит даже чтение, что роднит его с DRAM, в некотором смысле.

Да ну!!? А как же тогда работают например флеши программ микроконтроллеров, из которых код может читаться на скоростях около 20-30МГц???
Это что-ж - написали коротенький цикл while () {}, включили, поработала программа несколько суток и адье! - стёрлась! biggrin.gif
К деградации ведёт только стирание.
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
||- - 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   Цитата(makc @ Sep 12 2016, 14:33) (типа к...   Sep 12 2016, 13:47
|- - MiklPolikov   Цитата(jcxz @ Sep 12 2016, 16:47) Если-б ...   Sep 12 2016, 13:51
|- - _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
|- - _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


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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 05:09
Рейтинг@Mail.ru


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