|
ARM9 и SD карта - скорость доступа |
|
|
|
Oct 28 2008, 12:22
|
Участник

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

|
День добрый! если у кого есть опыт, был бы весьма признателен за ответ на следующий вопрос:
утрированно задача следующая - есть необходимость считывать с SD карты данные из разных файлов, причём относительно мелкими порциями (килобайт по 16). Т.е допустим на карте 1000 файлов, необходимо открыть их все и последовательно считывать, из первого файла 16 кило, из второго 16 кило итд, и так по кругу, складывая это в буфера в озу.
Так вот в разрезе этой задачи интересуют оценки сверху по времени на следующие операции -
1 - переключение чтения с одного файла на другой (получается переключение с одногосеткора на другой, для нанд флэши эти данные есть, но ведь в карте свой контроллер)
2 - время открытия файла, если это FAT
А если файлов не 1000 а 64 допустим?
чтение будет требоваться, примерно 3-6 мегабайт в секунду...
Сорри за расплывчатое объяснение, необходимо понять стоит ли покупть отладочную плату для опытов в принципе - или затея изначально не решаемая.
По АРМ-ам - смотрю в сторону атмелов SAM9X или NXP (по перефирии подкупает новая серия 3130, но отладочные платы видимо будут ещё не скоро...), у них есть SDIO - тюе можно получить (видимо) вменяемую скорость...
Спасибо!
|
|
|
|
|
 |
Ответов
|
Oct 28 2008, 20:30
|
Участник

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

|
Я уже понял что для оптимизации лучше все данные "слить" в один файл исключив фрагментацию итп, и после этого просто переходить на нужнный сектор для чтения нужных данных, это вполне реализуемо. Единственное что мне нужно - чтоб карта читалась под Win на обычном компе, пусть даже она содержит один большой файл =)
Т.е задача сводится к чтению со случайного места в одном, ну или в нескольких файлах.
При этом мне необходимо только чтение, никакой записи.
Если для карт существуют какие-то градации "качества" (я читал про подобные для SDHC), то тоже могу вполне ограничиться использованием только карт "класса АБС и выше".
Всё что мне нужно, быть у веренным что в данных условиях я могу заложиться на время доступа меньше допустим к примеру 10-ти милисекунд, т.е какого-то ограниченного времени, ну и конечно хотелось бы минимального =)
|
|
|
|
|
Oct 29 2008, 09:11
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Скорость доступа к отдельному произвольному сектору карты на 90% зависит от самой карты. При чтении по одному сектору на "правильном" контроллере (который держит тактовую при обмене в пределах 20-25МГц или даже выше для новых карт) основное время - это ожидание готовности карты после посылки ей команды чтения - за это время контроллер карты найдет внутри сектор, выполнит все необходимые внутренние процедуры ремаппинга и коррекции и будет готов отдавать данные по шине контроллеру. Так вот, это характерное время составляет порядка 1 миллисекунды. Время самого обмена данными сектора - пренебрежимо мало - 512*8 - 4Кбита - 1К циклов на 4-х битной шине - при 25МГц - всего 40мкс. И если читать по одному сектору "вразброс" то получим скорость - порядка 512*1K (1000 циклов по 1мс) - всего 512Килобайт. Эта скорость может быть чуть выше или чуть ниже - в-основном зависит от карты, но на двух десятках проверенных мной карт, включая самые новые SDHC, не поднималась выше 2Мбайт/сек. Другое дело, что контроллер карт очень сильно оптимизирован на операции с последовательными секторами -тут уже скорость может существенно быть выше - при чтении по 32 сектора мне удавалось на SD подняться и до 8Мбайт/сек. Если используется файловая система - то, скорее всего, читать можно будет именно кластерами по нескольку секторов за одну операцию, и оптимизацией контроллера под групповые операции вполне можно воспользоваться.
P.S. Вот результаты испытаний на S2410 - аппаратный контроллер MMC/SD - частота тактирования шины MMC/SD 16.625МГц (и дело было в 2006 - карты были не особо новые)
MMC SD Теоретическая пропускная способность (max): 2.08MBps 8.31 MBps
Результаты практических испытаний Чтение по одному 512-байтному блоку: 0.83 MBps 1.79 MBps Чтение группами по 8 512-байтных блоков: 1.40 MBps 5.41 MBps Чтение группами по 12 512-байтных блоков: 1.54 MBps 5.70 MBps Чтение группами по 16 512-байтных блоков: 1.60 MBps 5.81 MBps Чтение группами по 120 512-байтных блоков: 1.87 MBps 7.78 MBps
Запись по одному 512-байтному блоку: 0.19 MBps 0.42 MBps Запись группами по 12 512-байтных блоков: 0.40 MBps 1.69 MBps
|
|
|
|
Сообщений в этой теме
Serg_D ARM9 и SD карта - скорость доступа Oct 28 2008, 12:22 KAlex Цитата(Serg_D @ Oct 28 2008, 16:22) 1 - п... Oct 28 2008, 13:45 zksystem Цитата(Serg_D @ Oct 28 2008, 15:22) утрир... Oct 28 2008, 14:08 Serg_D спасибо за ответы.
на самом деле больше всего инте... Oct 28 2008, 14:30 sergeeff Думается мне, что держать "открытыми" 10... Oct 28 2008, 16:59 AlexandrY Можно одновременно не открывать все файлы. А откры... Oct 28 2008, 19:08  zltigo Цитата(AlexandrY @ Oct 28 2008, 22:08) Дл... Oct 28 2008, 19:19   sergeeff Цитата(zltigo @ Oct 28 2008, 23:19) Совер... Oct 28 2008, 20:27 Dron_Gus Такой обьем можно и в ОЗУ кешировать. Если выберет... Oct 29 2008, 09:53 Wano Ну раз разговор зашёл про SD,не стал создавать тем... Oct 29 2008, 14:24  sergeeff Цитата(Wano @ Oct 29 2008, 18:24) Ну раз ... Oct 29 2008, 17:02  zhz Цитата(Wano @ Oct 29 2008, 16:24) Если пр... Oct 29 2008, 17:16   KonstantinT Цитата(zhz @ Oct 29 2008, 20:16) В FatFS ... Oct 30 2008, 05:31 sensor_ua Прошу помочь растолковать
4.6.2.1 Read
For a Stan... Nov 1 2008, 21:43 AlexandrY Кстати, вот идейка:
Проверил скорость работы NAND... Nov 1 2008, 21:47 zltigo Цитата(AlexandrY @ Nov 2 2008, 00:47) Мак... Nov 1 2008, 22:54  AlexandrY Так, турбировал NAND. Неплохо держит до 43 МГц при... Nov 3 2008, 18:56   zltigo Цитата(AlexandrY @ Nov 3 2008, 21:56) SDH... Nov 3 2008, 19:09   AlexandrY Отчет по времени выполнения файловых операций чтен... Nov 5 2008, 20:21 Serg_D Вопрос попутный - я правильно понимаю что если исп... Nov 4 2008, 20:51 aaarrr Цитата(Serg_D @ Nov 4 2008, 23:51) Вопрос... Nov 4 2008, 22:27 Serg_D спасибо!
однако открытие до 60 милисекунд если... Nov 5 2008, 23:18 AlexandrY Быстрая многозадачная FAT штука достаточно сложная... Nov 6 2008, 14:14 Serg_D т.е то что вы сейчас реализовали - это примерно ра... Nov 6 2008, 14:42 AlexandrY Более того - с 10-и гигабайтного файла!
Еще по... Nov 6 2008, 17:03
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|