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

 
 
5 страниц V  « < 3 4 5  
Reply to this topicStart new topic
> Bus Master DMA для PCIe
doom13
сообщение Oct 29 2015, 08:09
Сообщение #61


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

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Надо выбросить AXI Interconnect, что автоматом сгенерировал IP Integrator, собрать свой из тех же ядер и можно будет менять параметры.
Go to the top of the page
 
+Quote Post
doom13
сообщение Nov 30 2015, 12:03
Сообщение #62


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

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Приветствую.
Новый вопрос по DMA. Сейчас делаю передачу данных ПК -> FPGA (параметры для DMA и AXI Interconnect-a, как советовали выше). На базе генератора трафика сделал loopback для DMA (MM2S -> S2MM). Получаю скорость передачи примерно в два раза меньше (около 7.5 Гбит/с) чем мог выдать DMA в режиме S2MM.
Для возможности подключения разных источников трафика на интерфейс DMA S_AXIS_S2MM сделал мультиплексор AXI-Stream (могу включать loopback для DMA или передавать данные от генератора трафика). Получаю низкую скорости передачи при использовании режима loopback для DMA - MM2S канал тормозит передачу.
Вопрос, как это устранить?

Рисунок 1 - режим loopback для DMA, данные передаются ПК -> FPGA -> ПК.
Рисунок 2 - данные передаются только в направлении ПК.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
doom13
сообщение Dec 1 2015, 11:06
Сообщение #63


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

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(RobFPGA @ Oct 16 2015, 20:55) *
Так как операция WRITE на PCIE не требует completion...

Можно ли объяснить снижение скорости при чтении тем, что READ на PCIe требует completion? Если да, то во сколько раз они могут отличаться? Получаю скорость записи (FPGA -> PC) примерно в 1.8 раза больше чем скорость чтения (PC -> FPGA).
Ниже рисунки:
1 - DMA перебрасывает данные из ПК в FPGA (+ они же обратно FPGA -> PC, интерфейс DMA S2MM не показан);
2 - DMA перебрасывает данные из FPGA в ПК (однонаправленная передача FPGA -> PC).
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Dec 1 2015, 13:45
Сообщение #64


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

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



Приветствую!

Дело не в том что для READ требуются completion а в глубине очереди на запросы чтения.
Если глубина маленькая то возникают паузы на ожидания окончания предыдущих запросов перед посылкой следующего запроса.

Надо иметь еще ввиду что AXI интерконнект может "блокировать" запросы на чтение/запись если они идут в одно периферийное устройство - тое-есть исполнятся они будут в порядке прихода а не полностью параллельно.

Успехов! Rob.

Go to the top of the page
 
+Quote Post
doom13
сообщение Dec 1 2015, 14:16
Сообщение #65


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

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(RobFPGA @ Dec 1 2015, 16:45) *
Дело не в том что для READ требуются completion а в глубине очереди на запросы чтения.
Если глубина маленькая то возникают паузы на ожидания окончания предыдущих запросов перед посылкой следующего запроса.

Надо иметь еще ввиду что AXI интерконнект может "блокировать" запросы на чтение/запись если они идут в одно периферийное устройство - тое-есть исполнятся они будут в порядке прихода а не полностью параллельно.

Спасибо, счас это всё обдумаю, пока хочу ещё спросить: для рисунка 1 (сообщение #63) , где идёт передача PC -> FPGA данные передаются ещё и в обратном направленни FPGA -> PC (на диаграмму их не добавил). Т.е. получается на S_AXIS_RQ_* в данном случае поступает больше транзакций (от MM2S и от S2MM, на чтение и на запись) чем когда однонаправленная передача данных от генератора трафика (рисунок 2, сообщение #63). Стоит ли искать проблему в этом?

Цитата(RobFPGA @ Dec 1 2015, 16:45) *
Надо иметь еще ввиду что AXI интерконнект может "блокировать" запросы на чтение/запись если они идут в одно периферийное устройство - тое-есть исполнятся они будут в порядке прихода а не полностью параллельно.

Об этом не подумал, цепочка DMA -> Interconnect -> AXI_PCIe на рисунке, т.е. если включаю loopback (см рисунок), то ещё и DMA M_AXI_MM2S и M_AXI_S2MM (+ M_AXI_SG) будут делить время доступа к PCIe??! Похоже, надо сделать заглушку для M_AXIS_MM2S, чтобы отдельно проверить скорость для DMA M_AXI_MM2S?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
doom13
сообщение Dec 2 2015, 11:07
Сообщение #66


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

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Похоже, проблема либо в AXI Interconnect, либо в самом ядре AXI bridge for PCIe.
Получены следующие результаты:
1) Работает только DMA S2MM - данные передаются со скоростью ~13.5 Gbit/s.
2) Работает только DMA MM2S - данные передаются со скоростью ~10.8 Gbit/s.
3) Режим LOOPBACK (ПК -> FPGA -> ПК) - данные передаются со скоростью ~7.5 Gbit/s (в каждом направлении).

4) Попробовал реализовать независимые генераторы и передачу данных (один генератор в FPGA, второй - приложение в user space ). Пока работает один из них, скорости соответствуют полученным в пунктах 1) и 2) , если разрешить работу обоих одновременно, то DMA S2MM передаёт данные с той же скоростью (~13.5 Gbit/s), скорость передачи данных DMA MM2S падает до ~1.3 Gbit/s.
Go to the top of the page
 
+Quote Post

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

 


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


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