|
|
  |
Не лезет в память, как это исправить? |
|
|
|
Oct 19 2015, 10:30
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (jcxz @ Oct 19 2015, 13:10)  Я уже посчитал какой размер буфера нужен для устойчивости к такой задержке. Да. QUOTE У ТС в 10 раз больше. и при этом у него ещё и потери..... Причем, напомню, что ТС начал разговор не задержек и не с потерь, а с дивного утверждения, что ему буфера нужны вообще для того, что-бы РЕЖЕ ПИСАТЬ, типа каких-то "сбоев" меньше.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Oct 19 2015, 10:46
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(jcxz @ Oct 19 2015, 13:24)  Если такая задержка появляется постоянно, значит это карта с ну очень мееееееееееееееееееееееееееееедленной потоковой скоростью записи. Настолько медленная, что таких не существет  Просто чуть выше была ссылка на некий документ, который регламентирует макс. длительность операции записи. Прочитали и возрадовались, но вроде бы этот документ не говорит, как часто происходит вот эта аномально долгая операция. Кстати, потоковая скорость записи - она же усредняется по некоторому достаточно большому промежутку времени. И высокая скорость записи не противоречит возможности появления двух подряд операций записи по 250 мс, к примеру. А почему бы и нет? Мы же не знаем, какой именно алгоритм они туда заложили. Выходит, официальный документ не гарантирует спокойной жизни. Приходится полагаться на свидетельства бывалых товарищей и прочие вести с полей.
|
|
|
|
|
Oct 19 2015, 10:57
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(scifi @ Oct 19 2015, 16:46)  Кстати, потоковая скорость записи - она же усредняется по некоторому достаточно большому промежутку времени. И высокая скорость записи не противоречит возможности появления двух подряд операций записи по 250 мс, к примеру. А почему бы и нет? Мы же не знаем, какой именно алгоритм они туда заложили. Выходит, официальный документ не гарантирует спокойной жизни. Приходится полагаться на свидетельства бывалых товарищей и прочие вести с полей. Как я понимаю - никаких поисков блоков контроллер карты не производит. Если имеется в виду обычная запись на карту без ФС в непрерывную последовательную цепочку секторов, то длительные задержки (операции стирания) будут появляться среди коротких задержек (операций записи) с периодичностью равной отношению размера блока стирания к размеру блока записи (см. CSD). Все эти счётчики износа - это что-то из более высокоуровневнего ПО (либо из SSD), контроллеры SD-карты, имхо, такое не реализуют. Да, ещё насколько помню, карты умеют делать групповую запись, накапливая некоторое кол-во секторов во внутреннем буфере и потом записывая скопом. Здесь тоже может быть некоторая неравномерность задержек. Но всё равно - потоковая скорость записи при непрерывной линейной записи секторов, должна быть константой на некотором интервале усреднения.
|
|
|
|
|
Oct 19 2015, 11:11
|
Частый гость
 
Группа: Участник
Сообщений: 190
Регистрация: 7-11-07
Из: С-Петербург
Пользователь №: 32 134

|
Цитата(jcxz @ Oct 19 2015, 13:57)  Как я понимаю - никаких поисков блоков контроллер карты не производит. Если имеется в виду обычная запись на карту без ФС в непрерывную последовательную цепочку секторов, то длительные задержки (операции стирания) будут появляться среди коротких задержек (операций записи) с периодичностью равной отношению размера блока стирания к размеру блока записи (см. CSD). Все эти счётчики износа - это что-то из более высокоуровневнего ПО (либо из SSD), контроллеры SD-карты, имхо, такое не реализуют. Вроде всё с точностью до наоборот. Современные карты (SDXC) требуют extFAT, потому как "wear leveling" не производят.
|
|
|
|
|
Oct 19 2015, 15:05
|
Частый гость
 
Группа: Участник
Сообщений: 190
Регистрация: 7-11-07
Из: С-Петербург
Пользователь №: 32 134

|
Цитата(jcxz @ Oct 19 2015, 17:38)  Приведите соответствующий раздел спецификации SD, где указано что она это делает. Вот здесь привести документ или цитату не могу. Честно скажу, информация косвенная. Основана на предупреждении с упаковки новой карточки SDXC, где было сказано использовать FAT32 недопустимо, только extFAT. extFAT создана для FLASH носителей требующих выранивание износа и т.п. Тогда как SDSC/SDHC прекрасно обходились FAT16/32.
|
|
|
|
|
Oct 19 2015, 15:28
|

Профессионал
    
Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143

|
Цитата(jcxz @ Oct 19 2015, 16:38)  Приведите соответствующий раздел спецификации SD, где указано что она это делает. The controller in Delkin’s Industrial SLC microSD cards implements an efficient bad block management algorithm to detect the factory-produced bad blocks and manage any bad blocks that appear with use. http://delkinoem.com/oem-engineering-specs...icroSD-Spec.pdf
--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
|
|
|
|
|
Oct 19 2015, 17:29
|
Частый гость
 
Группа: Участник
Сообщений: 190
Регистрация: 7-11-07
Из: С-Петербург
Пользователь №: 32 134

|
Цитата(Alex11 @ Oct 19 2015, 21:14)  Для борьбы с ним найден единственный разумный способ - при стирании файлов карточке нужно сказать, что место этого файла свободно. (Команда Erase на карту) Свежие версии файловых систем под Linux (fat и ext4) это поддерживают, и в сочетании с правильным указанием параметров при создании разделов и монтировании (выравнивание разделов и элементов файловой системы на 16 МБ) это приводит к отсутствию больших задержек при записи даже при большой скорости. Спасибо, весьма полезная информация. А про выравнивание по 16Мб - это откуда?
|
|
|
|
|
Oct 19 2015, 17:44
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (Alex11 @ Oct 19 2015, 20:14)  Для борьбы с ним найден единственный разумный способ - при стирании файлов карточке нужно сказать, что место этого файла свободно. (Команда Erase на карту) А чего было "искать"? Естественно, что нужно flash стирать перед использованием, тогда не придется делать этого в процессе записи. Естественно, что при использовании классических файловых систем и сооответсвенно "форматировании" это не делается, ибо либо ничего не делается, либо при полном форматировании заполняется тестовым паттерном.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Oct 19 2015, 21:26
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Цитата Да, ещё насколько помню, карты умеют делать групповую запись Групповая запись экономит время, но ещё лучше перед командой групповой записи выдать команду с информацией о размере планируемой записи. Цитату не приведу, у себя пока блочную запись не использую. При записи на карту потока 48 кГц-моно-16 бит заметные задержки (выражающиеся в росте количества буферов, ожидающих записи на карту) иногда происходят, как и у других участников, на время до секунды-полутора, при использовании 96 килобайт буферов потерь данных из-за пропусков практически не происходит (но бывает). Карты на малые объёмы (2/4 GB) меньше страдают задержками. Интерфейс (4 бит или MMC/SPI) не влияет.
Сообщение отредактировал Genadi Zawidowski - Oct 19 2015, 21:29
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|