Dr.Alex
Nov 17 2014, 10:37
Наблюдаю следующее::
Есть карта микросд 10-ого класса.
При клоке sdio 24 МГц не удаётся писать быстрее чем ~20 мегабит в секунду, хотя затыков в своём железе я не вижу,
при клоке 48 та же программа пишет примерно в 2 раза быстрее,
и наконец при клоке 104 пишу около 78 Мб/с, ну то есть можно сказать 10-й класс достигнут.
Что же получается?? Внутренние тайминги флешки задаются внешним клоком, а не каким-то внутренним референсом??
Правильно ли это?? Может ли такое быть??
Но тогда чтобы достигнуть максимальной скорости записи мне что же, разгонять клок до 208 Мгц?? (максимум по стандарту) хотя по скорости интерфейса достаточно всего 50 МГц чтобы прокачивать 200 Мб/с?!
Golikov A.
Nov 17 2014, 12:19
ножка CLK - это клок карты, а не клоковый сигнал от линии SPI.
Именно поэтому после подачи некоторых команд, надо продолжать клочить карту до получения ответа. Зачем в карту ставить, генератор, PLL, потом ее синхронизовать с входными данными, если пока вы ее не спрашиваете, она ничего не делает...
Я так думаю...
Ну коль это клок, то чем он выше, тем быстрее работаем, тут тоже вроде не должно быть вопросов...
Dr.Alex
Nov 17 2014, 13:15
Ну во-первых речь совершенно не о SPI, а о сдио.
Во-вторых, если я не ошибаюсь, в SPI клок всё равно ОДИН, а значит в первую очередь это именно клок ИНТЕРФЕЙСА.
Логику я объяснил:: нелогично, когда интерфейс позволяет качать 200 Мбит/с, хотя карточка пишет только 40, а чтобы она писала 80, нужно разогнать интерфейс до 400-800???
Так что жду мнений опытных моряков.
doom13
Nov 17 2014, 14:16
В моём случае используется eMMC-память шина работает в режиме 8х, но отличия, как понимаю, должны бать небольшие. Согласно даташиту на мою eMMC (думаю в Вашем случае должно быть что-то аналогичное):
Цитата
The host is allowed to shut down the clock of a “busy” card. The card will complete the programming operation regardless of the host clock.
Получаем, контроллер памяти (карты) должен иметь своё внутреннее тактирование, сигнал CLK для SD-карты - всего лишь тактирование интерфейса.
При инициализации карты определяется скорость, которую "потянет" карта, и исходя из этого настраиваем частоту тактирования интерфейса.
Dr.Alex
Nov 17 2014, 14:27
Цитата(doom13 @ Nov 17 2014, 18:16)

Получаем, контроллер памяти (карты) должен иметь своё внутреннее тактирование, сигнал CLK для SD-карты - всего лишь тактирование интерфейса.
Ну то есть вы подтверждаете мою уверенность, что скорость записи НЕ должна зависеть от скорости клока, поданного на карточку.
Однако как же объяснить то, что я вижу.. :-о :-о
doom13
Nov 17 2014, 14:41
Цитата(Dr.Alex @ Nov 17 2014, 17:27)

Ну то есть вы подтверждаете мою уверенность, что скорость записи НЕ должна зависеть от скорости клока, поданного на карточку.
Однако как же объяснить то, что я вижу.. :-о :-о
Не читал, кто такой SDIO, как понимаю, что-то очень похожее на мой случай (могу работать в режимах шины данных 1х, 4х, 8х). Если данные в Вашем случае передаются в режиме 1х, то очень похоже на правду. Тогда, пока скорость шины не достигла максимальной скорости записи (внутренней скорости записи NAND flash) поддерживаемой контроллером памяти, будем наблюдать увеличение скорости записи (внешней, скорости записи данных в буфер контроллера памяти). Как-то так
Dr.Alex
Nov 17 2014, 15:11
Цитата(doom13 @ Nov 17 2014, 18:41)

Если данные в Вашем случае передаются в режиме 1х, то очень похоже на правду.
Это было бы слишком просто.. :-о
Кстати, кто знает, почему SPEED_CLASS в статусе она (SDHC) выдаёт "0"? Может такое быть?
Golikov A.
Nov 17 2014, 15:17
не знаю как у моряков
и не знаю похоже ли еще какие памяти друг на друга
я книгу читаю, в полной спецификации SD карты написано
It is an obvious requirement that the clock must be running for the card to output data or
response tokens. After the last SD Memory Card bus transaction, the host is required, to provide
8 (eight) clock cycles for the card to complete the operation before shutting down the clock.
также 5 пин называется клоком от хоста, и только в SDI режиме SCLK. Но с требованием клочить...
Есть другое объяснение, что у карты есть свой клок внутри. Но интерфейсная часть как асинхронная к внутреннему клоку может выполнять набор каких то действий то есть после того как вы передали данные, внутренний буфер еще 8 тактов куда то передается пока не дойдет до внутренних патрашков карты. И вот этот процесс явно клоко зависим, Непонятно может ли он так кардинально влиять...
doom13
Nov 17 2014, 15:28
Цитата(Golikov A. @ Nov 17 2014, 18:17)

Но для записи данных в NAND эти клоки (клоки интерфейса) уже не нужны (были нужны пока заполняли внутренний буфер), а используются внутренние клоки контроллера памяти.
Dr.Alex
Nov 17 2014, 15:35
Фффу блин, надо ж так облажацо! Действительно, переключал карту в 4х моде, а затем в другом месте обратно в 1х моде.... Лашара хлопчатобумажная.. :-о
doom13
Nov 17 2014, 15:42
Цитата(Golikov A. @ Nov 17 2014, 18:17)

Да, если Вы прочитаете пунк следующий за тем, что приводили из SD Specifications, то найдёте цитату приведённйю мной выше (правда, из JESD84-A441 на eMMC-карту/память), все карточки и их интерфейсы очень похожи
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.