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

 
 
5 страниц V  < 1 2 3 4 5 >  
Reply to this topicStart new topic
> microSD задержки при обмене, есть ли способы борьбы ?
MiklPolikov
сообщение Sep 12 2016, 08:44
Сообщение #31


Гуру
******

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



Цитата(makc @ Sep 12 2016, 11:33) *
Надеюсь у Вас _FS_TINY == 0 ?

Да. Из описания следует, что _FS_TINY == 1 уменьшает используемый FATFS буфер


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


Гуру
******

Группа: Участник
Сообщений: 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
jcxz
сообщение Sep 12 2016, 10:38
Сообщение #33


Гуру
******

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



Цитата(makc @ Sep 12 2016, 14:08) *
Дайте, пожалуйста, ссылку, какую спецификацию Вы имеете в виду. Дело в том, что ранее Вы приводили ссылки на текст Part 1 (Physical Layer Specification) и на мой взгляд совершенно очевидно, что внутренняя структура хранения данных карты лежит за пределами того, что описывается этой спецификацией. Поэтому я и хочу понять, в какой части спецификации SD, по Вашему мнению, задаются методы, алгоритмы и структуры внутренних данных карты.

Вы с логикой дружите??? wacko.gif Я без понятия откуда Вы это взяли.
Ведь это Вы утверждаете наличие неких механизмов внутри SD, поэтому я и спрашиваю - есть документальные подтверждения или это только Ваши домыслы ничем не подкреплённые?

Цитата(makc @ Sep 12 2016, 14:08) *
Вы пробовали или только предполагаете работу блоков памяти после заданного числа циклов стирания?
Второй вопрос: поставьте себя на место производителя карт памяти или флешек - исходя из чего Вы будете назначать гарантийный срок?

А Вы пробовали? 1000 раз стёрли и на 1001-й раз получили отказ? wink.gif
И исходя из чего же производитель назначает этот самый гарантийный срок? Вы считаете это как-то связано с числом циклов перезаписи?? biggrin.gif
Вот специально скачал доку на microSDHC от kingston с: http://www.kingston.com/ru/flash/microsd_cards/sdc4
В ней утверждается:
Цитата
Чем бы вы не занимались, вы всегда можете рассчитывать на
карты памяти microSDHC компании Kingston. Все карты проходят
100-процентное тестирование и имеют пожизненную гарантию.

Т.е. - если следовать Вашей логике и производитель назначает гарантийный срок исходя из числа циклов перезаписи, то берём заявленную скорость передачи 4МБ/сек умножаем её на среднюю продолжительность жизни среднего человека и получаем, что в течение гарантийного срока карта выдержит поистине гигантское число циклов перезаписи (при условии эксплуатации в режиме непрерывной записи)! sm.gif
Все эти пожизненные и прочие гарантии - всего-лишь маркетинговый ход.

Цитата(makc @ Sep 12 2016, 14:08) *
Прекрасный эксперимент, который говорит лишь о том, что в отдельной точке мирового пространства при имеющихся в ней физических условиях Вы наблюдали описанную картину. В то время как память имеет весьма широкий диапазон рабочих температур и напряжений питания, что означает необходимость обеспечения надёжной работы во всем диапазоне заданных производителем условий. Попробуйте на досуге, проведите эксперимент во всех возможных условиях, а не только на теплом столе. И если при всех этих условиях после отключённой на 1 сек регенерации данных так же 100%-но будут сохраняться, готов буду дальше обсуждать этот вопрос в таком контексте. В противном я не могу считать Ваши слова сколь-либо ценным аргументом.

Что именно Вы хотели этим сказать?
Да - условия эксплуатации карт разные и могут меняться. А время жизни (число циклов) задано для наихудшей комбинации этих условий. В реальности же большинство карт эксплуатируются бОльшую часть времени как Вы сказали "на теплом столе". В таких условиях на этом самом "теплом столе" число циклов перезаписи может быть в разы больше минимального, заявленного изготовителем.
Вот именно это я и хотел сказать своей аналогией с SDRAM: 64мсек производителем заданы для наихудших условий эксплуатации, поэтому в моём же случае при комнатной температуре и стабильном питании вдали от крайних значений, получаются на порядки лучшие показатели. И именно поэтому:
Цитата(makc @ Sep 8 2016, 01:52) *
карты живут несколько дольше?
Go to the top of the page
 
+Quote Post
makc
сообщение Sep 12 2016, 11:17
Сообщение #34


Гуру
******

Группа: Админы
Сообщений: 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, 13:47
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #36


Гуру
******

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



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

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


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


Гуру
******

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



Их есть, например, Serial SRAM and Serial NVSRAM
Но тут перед Вами встанет другая проблема: накладные расходы из-за примитивного интерфейса будут, возможно, больше выигрыша из-за дополнительной памяти. Так что параллельная шина, большие корпуса и т.п. За все нужно платить.


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


Гуру
******

Группа: Свой
Сообщений: 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
_4afc_
сообщение Sep 12 2016, 14:18
Сообщение #39


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

Группа: Свой
Сообщений: 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 секунды, в не зависимости от длины и наличия данных.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Sep 12 2016, 14:19
Сообщение #40


Гуру
******

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



Цитата(makc @ Sep 12 2016, 17:05) *
Их есть, например, Serial SRAM and Serial NVSRAM

Да, видел их. Они маленькие, всего 128КБайт. А мне, при потоке 1МБайт/с и пропусках 0.5с нужно раз в 5 больше.


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


Гуру
******

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



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

Так такие чипы есть. На I2C и на SPI:
а) FRAM (например FM25V20A); есть даже МК с FRAM-памятью (вместо FLASH), например - MSP430FR5739;
б) nonvolatile-SRAM http://www.cypress.com/products/nonvolatil...0-bottom_side-8 (это ОЗУ + FLASH, куда автоматом скидыватся содержимое ОЗУ при аварии питания);
в) и просто ОЗУ есть, только размер вроде небольшой у них.

Цитата(MiklPolikov @ Sep 12 2016, 20:19) *
Да, видел их. Они маленькие, всего 128КБайт. А мне, при потоке 1МБайт/с и пропусках 0.5с нужно раз в 5 больше.

Вы внимательнее посмотрите на сайте Cypress:
FM25V20A - 256кБ;
CY15B104Q - 512кБ.
И что-то подобное было у других вендоров.
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Sep 12 2016, 14:25
Сообщение #42


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

Группа: Свой
Сообщений: 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
jcxz
сообщение Sep 12 2016, 14:37
Сообщение #43


Гуру
******

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



Цитата(_4afc_ @ Sep 12 2016, 20:18) *
Приведу пример из стандарта 84-A441 на eMMC:
...
Протестировал тут стирание группы в моей eMMC через CMD35,CMD36,CMD38: при стирании 2/20МБ - то 30мс, то 2 секунды, в не зависимости от длины и наличия данных.

Хорошо, возможно в каких-то новых картах выравнивание износа есть. Это не противоречит основной спецификации SD.
Только ТСу толку от этого 0. А если эти 2 сек из-за именно выравнивания износа - так только вред один - задержки записи ещё больше могут быть, и как-то ему такие карты отсеивать надо. Или всё устройство переделывать надо, отказавшись от SD или поставив доп. ОЗУ или пересмотрев алгоритм записи.
Go to the top of the page
 
+Quote Post
makc
сообщение Sep 12 2016, 16:09
Сообщение #44


Гуру
******

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



Цитата(jcxz @ Sep 12 2016, 17:11) *
Да ну!!? А как же тогда работают например флеши программ микроконтроллеров, из которых код может читаться на скоростях около 20-30МГц???
Это что-ж - написали коротенький цикл while () {}, включили, поработала программа несколько суток и адье! - стёрлась! biggrin.gif
К деградации ведёт только стирание.


И тем не менее это так: https://en.m.wikipedia.org/wiki/Flash_memory#Read_disturb

Что теперь скажете?


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


Гуру
******

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



Цитата(makc @ Sep 12 2016, 17:05) *
Их есть, например, Serial SRAM and Serial NVSRAM
Но тут перед Вами встанет другая проблема: накладные расходы из-за примитивного интерфейса будут, возможно, больше выигрыша из-за дополнительной памяти. Так что параллельная шина, большие корпуса и т.п. За все нужно платить.


Из всего этого выбираю проц с достаточным набортным ОЗУ.

Сообщение отредактировал mantech - Sep 12 2016, 17:00
Go to the top of the page
 
+Quote Post

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

 


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


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