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

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

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

|
Цитата(mantech @ Sep 12 2016, 11:47)  Т.е. предлагаете делать прослойку типа SmartDrv в старом мс-досе?? Да, что-то вроде, только более специализированной и заточенное под конкретную задачу. Цитата А вы в курсе, что при этом можно очень легко нарушить целостность файловой системы при сбое или отключении питания? Сколько было потрачено сил и убеждений в свое время, чтоб не жали на ресет по делу и без дела в старых компах... Хотя да, на древних винтах ускорение было заметным. Естественно в курсе, но FAT и так не является отказоустойчивой ФС, по определению. И состояние ФС не гарантируется при отключении питания во время выполнения операции записи. С этой точки зрения мое предложение не ухудшает характеристик получаемого результата. Цитата(jcxz @ Sep 12 2016, 13:38)  Вы с логикой дружите???  Я без понятия откуда Вы это взяли. Я с логикой вполне дружу. Взял я это из Вашего же сообщения в этой теме: Цитата(jcxz @ Sep 7 2016, 20:37)  И вообще - где все эти операции перемещения/перераспределения/...? В SD-карте? Вы уверены? Где блоки разного размера и выравнивание износа? Вы не путаете с какими-то другими типами flash-памяти? Из спецификации SD: .... Или Вы этого не писали? Цитата Ведь это Вы утверждаете наличие неких механизмов внутри SD, поэтому я и спрашиваю - есть документальные подтверждения или это только Ваши домыслы ничем не подкреплённые? Я давал подтверждения выше по теме. В ответ Вы мне написали, что: Цитата Но в спецификации это явно не указано! Т.е. - не указано что карта должна это делать. Какой-то конкретный производитель может конечно захотеть и реализовать внутри всё что угодно: и вести статистику использования блоков и даже перемещать самые популярные блоки не только по всему массиву блоков, но и в отдельную память, например FRAM и многое другое. Я же пытаюсь Вам объяснить, что спецификация физического уровня, на которую Вы ссылались, и не может специфицировать данный аспект реализации карт памяти. В связи с чем и поинтересовался, что может быть есть другая спецификация или раздел, где описываются требования к реализации внутренних структур и алгоритмов карты, т.к. я такой спецификации не знаю. Цитата А Вы пробовали? 1000 раз стёрли и на 1001-й раз получили отказ?  Пробовали не с картами памяти, с флешом типа NAND. Требования выравнивания износа при использовании NAND взялись не из воздуха, а из практической необходимости. О чем я Вам и пытаюсь уже несколько раз сказать. Цитата И исходя из чего же производитель назначает этот самый гарантийный срок? Вы считаете это как-то связано с числом циклов перезаписи??  Безусловно. И с механизмами, реализованными в носителях. В противном случае поток рекламаций сведёт на нет всю выручку. А крупные производители умеют считать деньги. К вопросу о надёжности поинтересуйтесь рекомендациями того же Micron'а относительно eMMC. Пару слайдов прикрепил к этому сообщению. Цитата Что именно Вы хотели этим сказать? Ровно то, что и сказал: Ваши слова не аргумент возможно огромного числа циклов перезаписи или огромного запаса надёжности, заложенного производителем "на всякий случай". Цитата Да - условия эксплуатации карт разные и могут меняться. А время жизни (число циклов) задано для наихудшей комбинации этих условий. В реальности же большинство карт эксплуатируются бОльшую часть времени как Вы сказали "на теплом столе". В таких условиях на этом самом "теплом столе" число циклов перезаписи может быть в разы больше минимального, заявленного изготовителем. Число циклов перезаписи, на сколько я понимаю физику процесса, определяется в большей степени деградацией ячейки памяти, которая происходит по нескольким причинам, в т.ч. и при стирании (наиболее сильно). Но нужно понимать, что к разрушению данных во флеше приводит даже чтение, что роднит его с DRAM, в некотором смысле.
Эскизы прикрепленных изображений
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
Sep 12 2016, 14:11
|
Гуру
     
Группа: Свой
Сообщений: 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 () {}, включили, поработала программа несколько суток и адье! - стёрлась! К деградации ведёт только стирание.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|