Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SD карта SD интерфейс
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
MiklPolikov
Нужно подключить к одному процессору несколько(предположительно 4) SD карты, причём заставить из работать параллельно, и за счёт этого выиграть в скорости(предположительно в 4 раза).
У процессора всего один интерфейс SD.
Перед тем как начинать копать, хочу получить комментарии и советы.

Мои мысли таковы :
После получения данных / запроса на чтение карта какое-то время "думает", т.е. процессор ждёт от неё ответа.
Это время ожидания можно потратить на то что бы отправить команду или данные в другую карту.
Интерфейс синхронный, и поэтому остановка тактирования карты означает остановку всего обмена командами и данными.
Таким образом, что бы работать с несколькими картами параллельно, можно "выбирать" нужную включением её тактирования.

Заранее спасибо всем кто поделится соображениями!

МП
aaarrr
Цитата(MiklPolikov @ Sep 4 2013, 16:34) *
Мои мысли таковы :
После получения данных / запроса на чтение карта какое-то время "думает", т.е. процессор ждёт от неё ответа.
Это время ожидания можно потратить на то что бы отправить команду или данные в другую карту.

"Думает" карта в произвольные моменты времени, а не только после команды. Так что использовать эти промежутки будет весьма затруднительно.
MiklPolikov
Цитата(aaarrr @ Sep 4 2013, 16:52) *
"Думает" карта в произвольные моменты времени, а не только после команды. Так что использовать эти промежутки будет весьма затруднительно.


Я работал с картой только по SPI , и в этом режиме карта "думает" исключительно после отправки сектора на запись / после отправки запроса на чтение.

Да для меня сейчас важнее другой вопрос : предположение о том что я смогу вот так запросто "выбирать" карточку подачей на неё тактирования верно ?
aaarrr
Цитата(MiklPolikov @ Sep 4 2013, 17:13) *
Я работал с картой только по SPI , и в этом режиме карта "думает" исключительно после отправки сектора на запись / после отправки запроса на чтение.

В SPI то же самое: дали команду на чтение/запись блока секторов, и получаете токены с паузами или без - в зависимости от настроения карты.

Цитата(MiklPolikov @ Sep 4 2013, 17:13) *
Да для меня сейчас важнее другой вопрос : предположение о том что я смогу вот так запросто "выбирать" карточку подачей на неё тактирования верно ?

Да, это так.
DASM
Комментарий тут простой. Надо 1) ПЛИС 2)СДРАМ . Смысла ускорять что-либо по SPI не вижу. Вам какие скорости нужны ? 4 карты дадут до 400 мбит (хорошие карты не SDXC, просто SDHC 10). Получаем простенький RAID и наслаждаемся. ( по SD интерфесу конечно же, 50 Мгц клока)
MiklPolikov
Цитата(DASM @ Sep 4 2013, 19:12) *
Комментарий тут простой. Надо 1) ПЛИС 2)СДРАМ . Смысла ускорять что-либо по SPI не вижу. Вам какие скорости нужны ? 4 карты дадут до 400 мбит (хорошие карты не SDXC, просто SDHC 10). Получаем простенький RAID и наслаждаемся. ( по SD интерфесу конечно же, 50 Мгц клока)


Можете разжевать мысль подробнее ?
ПЛИС обменивается данными с микроконтроллером не важно каким образом, а потом раскидывает эти данные по 4ём картам памяти ?
aaarrr
Цитата(MiklPolikov @ Sep 4 2013, 19:38) *
Можете разжевать мысль подробнее ?

Встречное предложение: можете пояснить, почему именно 4 SD-карты, а не SSD-диск, например?
DASM
Цитата(MiklPolikov @ Sep 4 2013, 19:38) *
Можете разжевать мысль подробнее ?
ПЛИС обменивается данными с микроконтроллером не важно каким образом, а потом раскидывает эти данные по 4ём картам памяти ?

Да, именно так мы и делаем. Обмен неважно как с контроллером, но у нас SD, немного разогнанный до 66 МГц. ПЛИС эмулирует (только базовые команды, чтобы контроллер сд вообще не заткнулся), забирает эти данные, с буферизацией, и кидает в карты паралелльно. Собирать их потом — другой вопрос, тоже ПЛИС. Вообще может SDXC глянете ? Быстрые они очень.

Цитата(MiklPolikov @ Sep 4 2013, 19:38) *
Можете разжевать мысль подробнее ?
ПЛИС обменивается данными с микроконтроллером не важно каким образом, а потом раскидывает эти данные по 4ём картам памяти ?

Да, именно так мы и делаем. Обмен неважно как с контроллером, но у нас SD, немного разогнанный до 66 МГц. ПЛИС эмулирует (только базовые команды, чтобы контроллер сд вообще не заткнулся), забирает эти данные, с буферизацией, и кидает в карты паралелльно. Собирать их потом — другой вопрос, тоже ПЛИС. Вообще может SDXC глянете ? Быстрые они очень.
MiklPolikov
Цитата(aaarrr @ Sep 4 2013, 20:02) *
Встречное предложение: можете пояснить, почему именно 4 SD-карты, а не SSD-диск, например?


Дело в том, что по габаритам помещаются только 4 карточки microSD

Цитата(DASM @ Sep 4 2013, 20:23) *
Да, именно так мы и делаем. Обмен неважно как с контроллером, но у нас SD, немного разогнанный до 66 МГц. ПЛИС эмулирует (только базовые команды, чтобы контроллер сд вообще не заткнулся), забирает эти данные, с буферизацией, и кидает в карты паралелльно. Собирать их потом — другой вопрос, тоже ПЛИС. Вообще может SDXC глянете ? Быстрые они очень.


Я начну с попытки сделать без ПЛИС, только на микроконтроллере.
На мой взгляд должно быть так : процессор тактирует карты по очереди, и смотрит что каждая ответит. Если готова работать работает с ней , если думает переходит к следующей.
Т.е. физический аналог многозадачной системы, роль задач выполняют карты памяти.
Лишь бы с этим включением-выключением тактирования всё так просто оказалось.
DASM
Я вас не понимаю. Какая вам нужна скорость ? Что вы намерены успеть на микроконтроллере, да еще и по SPI ? Огласите скорость и все будет понятно.
Одна карта пишет 10 мег в сек. По SD это надо уже 25 Мгц клока. По SPI - 100, что уже полный анрил. У вас их 4. Вы хотите добиться записи со скоростью 40 мегабайт в секунду ?
MiklPolikov
Цитата(DASM @ Sep 4 2013, 23:56) *
Вы хотите добиться записи со скоростью 40 мегабайт в секунду ?

Да
aaarrr
Цитата(MiklPolikov @ Sep 5 2013, 00:20) *
Да

Тогда SDHC не пройдет даже по скорости интерфейса, т.к. всего 4 x 50MHz. У eMMC 8 x 52 x DDR,
но не знаю, обещает ли кто 40МБайт/с на запись сейчас.
DASM
Почему не пройдет то на 4 карты?? 50 мгц х 4 х 4
blackfin
Цитата(aaarrr @ Sep 5 2013, 00:36) *
Тогда SDHC не пройдет даже по скорости интерфейса, т.к. всего 4 x 50MHz. У eMMC 8 x 52 x DDR,
но не знаю, обещает ли кто 40МБайт/с на запись сейчас.

EXCERIA
DASM
да обычные uhs sdxc из юлмарта под 70 дают

только там уже не просто сд интерфейс
alexPec
Цитата(MiklPolikov @ Sep 4 2013, 23:17) *
Я начну с попытки сделать без ПЛИС, только на микроконтроллере.


Цитата
Вы хотите добиться записи со скоростью 40 мегабайт в секунду ?


40 мбайт/с = 40*10 (со временем на старт и стоп считывания/записи байта по SPI - это я думаю еще оптимистично) = 400 МГц тактовый клок нужен. Пусть поделим поток на 4 карты - 100 МГц тактовый клок, при условии что ни такта у Вас не будет теряться между чтением/записью байтов НА ВСЕХ КАРТАХ, т.е. ни одна карта не должна "задумываться" ни на такт. Только при 100 МГц клоке и 4 картах получите Ваши 40 мбайт/сек. Если использовать не SPI, а 4-битный - 25МГц клок, но карточки также не должны задумываться. Сомневаюсь я, что какой-то МК или DSP потянет такое, да и карточку не задумывающуюся на 100 (25) МГц поискать еще.
Надо искать другое решение. Слушайте советы опытных, которые Вам написали.
DASM
Кстати откуда МК берет данные в таких количествах ? У меня DSP с 5-ти мегапикселей матрицы столько не набирает никак.
aaarrr
Господа, прочитайте внимательно первое сообщение ТС:
- У процессора есть SD-интерфейс. Не SPI.
- Интерфейс один, поэтому 40Мбайт/с в него не пролезут.
MiklPolikov
Цитата(DASM @ Sep 5 2013, 10:19) *
Кстати откуда МК берет данные в таких количествах ? У меня DSP с 5-ти мегапикселей матрицы столько не набирает никак.

Из USB HS
DASM
А какой прцессор (назвать эти микроконтроллером уже язык не поварачивается ) ? Тогда да, вешать на широкую его шину типа EMIF ПЛИСку, и писать на 4-ре карты одновременно. Не особо это и просто. Может лучше скоростную карту выберите ?
MiklPolikov
Цитата(DASM @ Sep 5 2013, 15:27) *
А какой прцессор (назвать эти микроконтроллером уже язык не поварачивается ) ? Тогда да, вешать на широкую его шину типа EMIF ПЛИСку, и писать на 4-ре карты одновременно. Не особо это и просто. Может лучше скоростную карту выберите ?

LPC4320
У меня по габаритам влезают только microSD
DASM
Тады ой. Такую скорость вы через ее SD канал не прокачаете
MiklPolikov
Цитата(DASM @ Sep 5 2013, 15:49) *
Тады ой. Такую скорость вы через ее SD канал не прокачаете

Объясните пожалуйста, почему ?
DASM
Во первых она одна. 40 мегабайт это надо 80 Мгц тактовой. Хорошо, допустим она это держит, и что дальше ? Карты у вас четыре ? Ну значит надо как я и говорил, ставить ПЛИС, буфер и чередовать. Вообще спор глухого со слепым. Скажите, как вы вообще все это видите иначе ? Тактировать карты 80 Мгц ?
MiklPolikov
Цитата(DASM @ Sep 5 2013, 22:04) *
Скажите, как вы вообще все это видите иначе ? Тактировать карты 80 Мгц ?

На сколько я понимаю, почти все карты microSD можно тактировать 80МГц. Я не прав ?
aaarrr
Цитата(MiklPolikov @ Sep 6 2013, 00:33) *
На сколько я понимаю, почти все карты microSD можно тактировать 80МГц. Я не прав ?

Не все можно тактировать даже 50МГц.
MiklPolikov
Коллеги,
большое спасибо за Вашу критику. Теперь я наступлю на меньшее количество грабель.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.