Спасибо, стало понятнее. Посмотрев спецификацию на Avalon MM думал, что запись данных в PIO вызовет паузы, поскольку в шине отдельные каналы на чтение и запись, данные записываются в буфер и потребуется переключить канал на запись в PIO, но квартус оказался хитрее.
Да, объем данных, читаемых подряд, был равен 8кБайт. С увеличением размера читаемых данных, я думаю скорость на чтение вырастет. Проблема только в ограниченном объеме памяти в ПЛИС. Я хотел попробовать работу с 32 блоками (16кБайт), но это потребовало бы модификацию командного уровня. В результате мне стало жалко 4 BRAM на прием, 4 BRAM на передачу и своего времени (Размер одного BRAM в ПЛИС Zynq равен 4кБайт). От идеи я отказался.
Подряд по несколько блоков.
При чтении тут мультиплексор выбора команды. Код команды определен в SDPackage.vhd
При записи тут мультиплексор выбора команды. Код команды определен в SDPackage.vhd
Создали стандарта все равно немного жадные. В бесплатной документации нет временных диаграммы работы по шине SPI, на которые удобно ориентироваться при разработке.
Картинка
Сейчас обнаружил, что вышла новая версия спецификации. Карты размером от 2 Тб до 128 Тб включительно вынесли из группы SDXC и создали для них новую группу SDUC (Ultra Capacity SD Memory Card). Карты SDUC режим SPI не поддерживают. Видимо чтобы не тащить протокол, которым мало кто будет пользоваться.
Пока таких планов нет. В случае необходимости реализации SDIO, я бы лучше обратил внимание на eMMC. У eMMC есть возможность установки на плату с помощью припаивания, а не с помощью разъема.
С другой стороны, возникает ситуация, когда какой-то пакет забивает передающий канал. Ядро опустит флаг «tx_ready», и никакие другие пакеты пройти не смогут. Моя позиция в том, чтобы отслеживать выходы Flow Control и не допускать подобных заторов.
Спорная ситуация. Я не читал полностью спецификацию PCI-Express, но у меня сложилось мнение, что пока устройство не получит подтверждение на какой-то пакет, оно будет слать его вечно. И отслеживая выводы Flow Control, чего Вы добьетесь? Зная, что на DLL уровне осталось место под пару пакетов, прекратите формирование пакетов на TLP уровне? Так для этих целей и есть флаг tx_ready.
Аппаратные ядра PCI Express ПЛИС V-й серии фирмы Intel представлены в двух вариантах исполнения: с интерфейсом Avalon-MM и интерфейсом Avalon-ST. Последний, хотя и требует от разработчика больше усилий, позволяет получить наибольшую пропускную способность
Бегло посмотрел спецификацию по интерфейсам. Avalon-MM похож на AXI4, Avalon-ST похож на AXI4-Stream. В MM есть поддержка burst транзакций, пропускную способность должен обеспечивать. Его использование для взаимодействия с ядром PCI-Expess выглядит избыточным, поскольку весь обмен осуществляется пакетами, и формирование адресов для данных неуместно.
Спасибо за статью. В целом, после работы с ядрами от Xilinx, все знакомо. За что зацепился взгляд:
Во-первых, длина запросов ограничена одним двойным словом (DWORD).
Это не так. Спецификация (данные из спецификации на ревизию 3.0) указывает, что количество DW в TLP может быть от 1 до 1024. Драйвер AHCI от Microsoft для Windows 7 (версию драйвера не помню за давностью лет) умеет посылать в PIO режиме запросы размером в 2 DW.
Первая группа особенностей связана со способами, которые позволяют сконфигурировать ПЛИС в течение 100 мс по требованиям PCIe.
Отсчет времени ведется от того момента, когда все напряжения питания выйдут на стабильный уровень. При работе с большими ПЛИС достаточно жесткий критерий.
Напоследок, разработчикам настоятельно рекомендуется использовать информацию о доступных кредитах для исходящих пакетов
Из ядра есть выводы с DLL, которые показывают наличие свободных буферов у устройства-партнера (Flow Control)?
Однако доступные ПЛИС имеют HARDWARE контроллер только для PCIe v3.0 x8; Реализации SOFT IP Core есть, но очень дорогие. Но выход есть.
ПЛИС Virtex 7 VX330T имеет два контроллера PCI Express v3.0 x8; Очевидным решением является размещение коммутатора, который имеет на стороне разъёма x16 и две шины x8 которые подключены к ПЛИС.
Каким образом происходит конкурирование устройства в таком режиме? Ведь когда LTSSM = Configuration, Endpoint должен сообщить свою шину шины, а как я понимаю, ширина шины у HARDWARE контроллера может быть не больше 8?
Еще: Не пользуйтесь телефоном для написания смс/чтения новостей/других действий, когда держите телефон перед собой, если идёте по улице или в ином общественном месте
Надоели уже люди — зомби.
Да, как это не прискорбно, но бОльшая часть смартфонов с экраном 4 дюйма именно с такими аккумуляторами. Озадачившись недавно подбором телефона с диагональю 4 дюйма, и аккумулятором >= 2000мА, я обнаружил только 3 модели с адекватными ценами: DEXP Ixion X 4, Fly IQ4401, Highscreen WinWin. У первого мне не нравится корпус, у второго экран, а у третьего, после прочтения топика на 4pda, обнаружился неприятная особенность разговорного динамика. Итого: ничего путного я не нашел…
Хотелось бы видеть следующее в версии для компа:
— Возможность убрать кнопку + с экспресс — панели
— Пересортировать главное меню
— Прикрутить привычный диалог сохранения файлов
— При использовании мышиных жестов выводить картинку с подсказками
— Плавная прокрутка
— Возможность настройки шрифтов
Пока же приходится держать 2 браузера: опера 12.17 и опера 31, на случай, если в 12.17 что-то не работает.
При чтении тут мультиплексор выбора команды. Код команды определен в SDPackage.vhd
При записи тут мультиплексор выбора команды. Код команды определен в SDPackage.vhd
AXI4 или AXI-Stream? Сколько скорость получилась?
Сейчас обнаружил, что вышла новая версия спецификации. Карты размером от 2 Тб до 128 Тб включительно вынесли из группы SDXC и создали для них новую группу SDUC (Ultra Capacity SD Memory Card). Карты SDUC режим SPI не поддерживают. Видимо чтобы не тащить протокол, которым мало кто будет пользоваться.
Пока таких планов нет. В случае необходимости реализации SDIO, я бы лучше обратил внимание на eMMC. У eMMC есть возможность установки на плату с помощью припаивания, а не с помощью разъема.
Бегло посмотрел спецификацию по интерфейсам. Avalon-MM похож на AXI4, Avalon-ST похож на AXI4-Stream. В MM есть поддержка burst транзакций, пропускную способность должен обеспечивать. Его использование для взаимодействия с ядром PCI-Expess выглядит избыточным, поскольку весь обмен осуществляется пакетами, и формирование адресов для данных неуместно.
Это не так. Спецификация (данные из спецификации на ревизию 3.0) указывает, что количество DW в TLP может быть от 1 до 1024. Драйвер AHCI от Microsoft для Windows 7 (версию драйвера не помню за давностью лет) умеет посылать в PIO режиме запросы размером в 2 DW.
Отсчет времени ведется от того момента, когда все напряжения питания выйдут на стабильный уровень. При работе с большими ПЛИС достаточно жесткий критерий.
Из ядра есть выводы с DLL, которые показывают наличие свободных буферов у устройства-партнера (Flow Control)?
Открыть в новой вкладке.
Каким образом происходит конкурирование устройства в таком режиме? Ведь когда LTSSM = Configuration, Endpoint должен сообщить свою шину шины, а как я понимаю, ширина шины у HARDWARE контроллера может быть не больше 8?
rutracker.org/forum/viewtopic.php?t=4204390
rutracker.org/forum/viewtopic.php?t=4824458
Не пользуйтесь телефоном для написания смс/чтения новостей/других действий, когда держите телефон перед собой, если идёте по улице или в ином общественном месте
Надоели уже люди — зомби.
Да, как это не прискорбно, но бОльшая часть смартфонов с экраном 4 дюйма именно с такими аккумуляторами. Озадачившись недавно подбором телефона с диагональю 4 дюйма, и аккумулятором >= 2000мА, я обнаружил только 3 модели с адекватными ценами: DEXP Ixion X 4, Fly IQ4401, Highscreen WinWin. У первого мне не нравится корпус, у второго экран, а у третьего, после прочтения топика на 4pda, обнаружился неприятная особенность разговорного динамика. Итого: ничего путного я не нашел…
Перенос DIY выглядит по крайней мере логичным, но остальное — нет.
НЛОhabrahabr и всех разгонит…— Возможность убрать кнопку + с экспресс — панели
— Пересортировать главное меню
— Прикрутить привычный диалог сохранения файлов
— При использовании мышиных жестов выводить картинку с подсказками
— Плавная прокрутка
— Возможность настройки шрифтов
Пока же приходится держать 2 браузера: опера 12.17 и опера 31, на случай, если в 12.17 что-то не работает.