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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> ARM9 и SD карта - скорость доступа
sensor_ua
сообщение Nov 1 2008, 21:43
Сообщение #16


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

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Прошу помочь растолковать
4.6.2.1 Read
For a Standard Capacity SD Memory Card, the times after which a timeout condition for read operations
occurs are (card independent) either 100 times longer than the typical access times for these
operations given below or 100 ms (the lower of the two). The read access time is defined as the sum
of the two times given by the CSD parameters TAAC and NSAC (see Chapter 5.3). In the case of a
single read operation, these card parameters define the typical delay between the end bit of the read
command and the start bit of the data block. In the case of a multiple-read operation, they also define
the typical delay between the end bit of a data block and the start bit of next data block.
A High Capacity SD Memory Card indicates TAAC and NSAC as fixed values. The host should use 100
ms timeout (minimum) for single and multiple read operations rather than using TAAC and NSAC.
4.6.2.2 Write
For a Standard Capacity SD Memory Card, the times after which a timeout condition for write operations
occurs are (card independent) either 100 times longer than the typical program times for these
operations given below or 250 ms (the lower of the two). The R2W_FACTOR field in the CSD is used
to calculate the typical block program time obtained by multiplying the read access time by this factor. It
applies to all write commands (e.g. SET(CLR)_WRITE_PROTECT, PROGRAM_CSD and the block
write commands).
A High Capacity SD Memory Card indicates R2W_FACTOR as a fixed value.
Maximum length of busy is defined as 250 ms for all write operations. The host should use 250 ms
timeout (minimum) for single and multiple write operations rather than using R2W_FACTOR.
4.6.2.3 Erase
If the card supports parameters for erase timeout calculation in the SD Status, the host should use them
to determine erase timeout (see Chapter 4.10.2). If the card does not support these parameters, erase
timeout can be estimated by block write delay.
The duration of an erase command can be estimated by the number of write blocks (WRITE_BL) to be
erased multiplied by 250 ms.

из упрощенной спецификации SDHC - Simplified_Physical_Layer_Spec.pdf

особенно интересует, действительно ли при записи расчитывать на время занятости 250 мс (!!!)


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Nov 1 2008, 21:47
Сообщение #17


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Кстати, вот идейка:

Проверил скорость работы NAND FLASH MT29F2G08AACWP (256 MByte, 5$ на DigiKey) на ARM9
Чтение происходит с очень стабильной соростью - 8.48 MByte/s
Использовался режим чтения с кэшированием в NAND.
Так файлы можно переписать на NAND и получить очень предсказуемую скорость считывания.

Максимальная скорость считывания c SD карты 60X Apacer была около 5 Mbyte/s
Карта работала в 4-х битном режиме на 26 МГц (дал оверклокинга)
Так что байки насчет 8 MByte/s с SD карт оставим на совести сочинителя.


Цитата(Serg_D @ Oct 28 2008, 16:52) *
День добрый!
если у кого есть опыт, был бы весьма признателен за ответ на следующий вопрос:

утрированно задача следующая -
есть необходимость считывать с SD карты данные из разных файлов, причём относительно мелкими порциями (килобайт по 16). Т.е допустим на карте 1000 файлов, необходимо открыть их все и последовательно считывать,
из первого файла 16 кило, из второго 16 кило итд, и так по кругу, складывая это в буфера в озу.

Так вот в разрезе этой задачи интересуют оценки сверху по времени на следующие операции -

1 - переключение чтения с одного файла на другой (получается переключение с одногосеткора на другой, для нанд флэши эти данные есть, но ведь в карте свой контроллер)

2 - время открытия файла, если это FAT

А если файлов не 1000 а 64 допустим?

чтение будет требоваться, примерно 3-6 мегабайт в секунду...

Сорри за расплывчатое объяснение, необходимо понять стоит ли покупть отладочную плату для опытов в принципе - или затея изначально не решаемая.

По АРМ-ам - смотрю в сторону атмелов SAM9X или NXP (по перефирии подкупает новая серия 3130, но отладочные платы видимо будут ещё не скоро...), у них есть SDIO - тюе можно получить (видимо) вменяемую скорость...

Спасибо!
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 1 2008, 22:54
Сообщение #18


Гуру
******

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



Цитата(AlexandrY @ Nov 2 2008, 00:47) *
Максимальная скорость считывания c SD карты 60X Apacer была около 5 Mbyte/s

Экстремально дешовая карточка с действительно мало к чему обязывающими "60X" или другими "X"
Цитата
Так что байки насчет 8 MByte/s с SD карт оставим на совести сочинителя.

А слабо было попробовать карточки отмаркированные не абстрактными и непонятно к чему обязывающими наклейщика этикеток "Apacer" письменами 60X, а маркированые официально, как SDHC Class 2/4/6/8 ? Причем встречал для любителей X карточку SDHC Class 6 дополнительно маркированную, как 133X


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Nov 3 2008, 18:56
Сообщение #19


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Так, турбировал NAND. Неплохо держит до 43 МГц при штатных 33 МГц

Скорость чтения при этом 13.2 MByte/s.

Apacer 60X действительно мутная штука. Для двух карт с одинаково написанными 60X был разный параметр SD data_read_access_time1 из области Card-Specific Data register (CSD)
У одной 0.02 у другой 0.005.
Тема не закрыта. Насчет быстродействия непосредственно FAT на этих картах сообщу позже.

SDHC проверить не смогу ибо у меня интерфейс SDIO специфицирован на 25 МГц. Т.е. на нем самая быстрая карта не потянет больше 12.5 Mbyte/s в пределе.

Вот USB HS флеши можно попробывать. Но это когда поднимется соответствующая тема biggrin.gif


Цитата(zltigo @ Nov 2 2008, 03:24) *
Экстремально дешовая карточка с действительно мало к чему обязывающими "60X" или другими "X"

А слабо было попробовать карточки отмаркированные не абстрактными и непонятно к чему обязывающими наклейщика этикеток "Apacer" письменами 60X, а маркированые официально, как SDHC Class 2/4/6/8 ? Причем встречал для любителей X карточку SDHC Class 6 дополнительно маркированную, как 133X
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 3 2008, 19:09
Сообщение #20


Гуру
******

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



Цитата(AlexandrY @ Nov 3 2008, 21:56) *
SDHC проверить не смогу ибо у меня интерфейс SDIO специфицирован на 25 МГц. Т.е. на нем самая быстрая карта не потянет больше 12.5 Mbyte/s в пределе.

Тем не менее это много больше, нежели 5Mbyte/s в которую уперлась НЕ SDHC карточка неведомого производителя с наклейкой от Apacer.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Serg_D
сообщение Nov 4 2008, 20:51
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 3-12-04
Пользователь №: 1 307



Вопрос попутный - я правильно понимаю что если использовать CompactFlash карты, то с предсказуемостью чтения (да и со скоростью) будет по-лучше?

Правда отладочные платки ARM9 и CF сейчас не в ходу смотрю, нашел только тион, но циррус по перефирии не подходит...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 4 2008, 22:27
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Serg_D @ Nov 4 2008, 23:51) *
Вопрос попутный - я правильно понимаю что если использовать CompactFlash карты, то с предсказуемостью чтения (да и со скоростью) будет по-лучше?

Нет.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Nov 5 2008, 20:21
Сообщение #23


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Отчет по времени выполнения файловых операций чтения на SD картах здесь:

http://aly.ogmis.lt/OpenProjects/ARMUltima...ote4/FSTest.htm
Go to the top of the page
 
+Quote Post
Serg_D
сообщение Nov 5 2008, 23:18
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 3-12-04
Пользователь №: 1 307



спасибо!
однако открытие до 60 милисекунд если я на ночь глядя ничего не напутал...

Сообщение отредактировал Serg_D - Nov 5 2008, 23:29
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Nov 6 2008, 14:14
Сообщение #25


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Быстрая многозадачная FAT штука достаточно сложная с хитрым кэшированием.

Еще немного турбировал, подрегулировал буфера и несколько улучшил результаты.
Теперь файловая система требует RAM-а для буферов больше мегабайта, но я реализовал вашу идею насчет одновременно открыть 1000 файлов.

Результаты смотрите в том же файле по ссылке.
Оказалось не так опасно как предпологал.
Система не валится.
Даже оказалось что уже открытые файлы в среднем читаются несколько быстрее чем в обычной последовательности.
Но среднее время открытия при открытии всех файлов сразу замедляется как и предпологал.

Кажущееся неоправданно большим время закрытия объясняется тем, что система делает много проверок на валидность, доступ из других задач, освобождений блокируемого многозадачного heap-а и блокировок. Тоже самое можно наблюдать в Windows при работе с файлами на SD.

Короче, предсказуемость и скорость чтения достаточны и ваша первоначальная идея вполне может быть реализована, и моя тоже biggrin.gif



Цитата(Serg_D @ Nov 6 2008, 03:48) *
спасибо!
однако открытие до 60 милисекунд если я на ночь глядя ничего не напутал...
Go to the top of the page
 
+Quote Post
Serg_D
сообщение Nov 6 2008, 14:42
Сообщение #26


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 3-12-04
Пользователь №: 1 307



т.е то что вы сейчас реализовали - это примерно равносильно тому чтоб читать из одного, допустим гигабайтного файла в случайном порядке с разных мест?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Nov 6 2008, 17:03
Сообщение #27


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Более того - с 10-и гигабайтного файла!
Еще поддать только RAM-а мега на два и можно открывать и 2-е и 3-и тысячи файлов.
Поскольку на старт операции чтения открытого файла не было замечено влияния количества открытых файлов.
Впрочем в отчете достаточно статистики чтобы вы сами могли найти корреляции и их доверительные оценки.


Цитата(Serg_D @ Nov 6 2008, 19:12) *
т.е то что вы сейчас реализовали - это примерно равносильно тому чтоб читать из одного, допустим гигабайтного файла в случайном порядке с разных мест?
Go to the top of the page
 
+Quote Post

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

 


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


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