|
Bus Master DMA для PCIe |
|
|
|
Oct 8 2015, 19:17
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Приветствую. Собрал систему (см. рисунок) для передачи данных по PCIe. Ядро AXI Bridge for PCIe сконфигурировано в режиме x4, 64 bit, 250MHz, должно позволить прокачивать поток 16 Гбит/с. В качестве DMA используется ядро AXI DMA v7.1 в режиме Scatter-Gather. Кольцо дескрипторов и буферы данных выделяются в памяти ядра Linux. Ранее было сделано так, пропускная способность канала составляла ~6 Гбит/с. Тут опять упёрся в 6 Гбит/с, думал, что софт ограничивает производительность канала. Потом убрал вмешательство системы в работу DMA - инициализирую кольцо дескрипторов, запускаю DMA. DMA бросает данные пока не закончатся дескрипторы. Оценивая время обработки кольца дескрипторов и переданный объём данных, получаю чуть больше 6 Гбит/с. Вытянул сигналы AXI4-Stream между FIFO и DMA на ILA, вижу - FIFO держит TVALID всегда в 1, а DMA периодически (очень часто) сбрасывает TREADY в 0. Получается DMA является виновником ограничения скорости потока. В доке вычитал, что в тестах получали пропускную способность до ~70%, но это ~11,2 Гбит/с, меня бы устроило. Вопрос - как поднять производительность DMA? Как понимаю, AXI Interconnect и PCIe мост могут тормозить DMA?
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
Oct 16 2015, 14:33
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Цитата(doom13 @ Oct 16 2015, 14:33)  Если можно расскажите тут подробнее, что это (pipe) и как работает? Что можно почитать по данной теме? xapp1184 достаточно будет? Нее - в PIPE лезть не нужно - это интерфейс к MGT - toshas наверное имел ввиду шины s_axis_rq_* s_axis_rc_* на самой pcie корке которая внутри bridge Через эти шины TLP идут request/completion от bridge логики к pcie корке. Цепляете туда ChipScope - а еще лучше логер который будет Вам скидывать TLP header-ы и смотрите что куда тормозит. Конечно это сначало проще было бы на симе сделать. Тут либо сам bridge не заточен на макс thruput, ну или DMA например не успевает подкачивать дескрипторы. Можно попробовать разместить дескрипторы в памяти FPGA или выделить один большой непрерывный кусок физ памяти (>1MB) и все дескрипторы залинковать на него. И посмотреть изменится ли скорость или нет. Если не изменится - то тогда или пробовать на дугой мамке, или скорее всего bridge не заточен на макс thruput, ну или универсальная причина №3 - ХЗ  . Успехов! Rob.
|
|
|
|
Сообщений в этой теме
doom13 Bus Master DMA для PCIe Oct 8 2015, 19:17 toshas Цитата(doom13 @ Oct 8 2015, 22:17) Кольцо... Oct 8 2015, 19:44 doom13 Цитата(toshas @ Oct 8 2015, 22:44) Может ... Oct 8 2015, 19:53 toshas На сколько тактов сбрасывает ? Какими пачками идет... Oct 9 2015, 04:27 doom13 На AXI4-Stream между FIFO и DMA картина следующая: Oct 9 2015, 12:14 toshas А что дальше, между dma и pcie ?
Я к тому, что ядр... Oct 9 2015, 12:26 doom13 На AXI4 между DMA и AXI Interconnect вот такая шту... Oct 9 2015, 13:23 doom13 Засинхронизировал триггер по начальному адресу буф... Oct 10 2015, 10:34 doom13 Увеличил burst size для DMA до максимального 256, ... Oct 10 2015, 14:13 doom13 Цитата(toshas @ Oct 10 2015, 22:22) Может... Oct 10 2015, 19:34   doom13 Цитата(RobFPGA @ Oct 16 2015, 17:33) ... ... Oct 16 2015, 19:45 toshas Мне кажется pcie-mm всегда позиционировалось как у... Oct 10 2015, 20:34 doom13 Цитата(toshas @ Oct 10 2015, 23:34) Мне к... Oct 10 2015, 21:23  RobFPGA Приветствую!
Для начала неплохо бы убедится ч... Oct 11 2015, 12:20   doom13 Цитата(RobFPGA @ Oct 11 2015, 15:20) Для ... Oct 11 2015, 20:19   doom13 Цитата(RobFPGA @ Oct 11 2015, 15:20) ... ... Oct 12 2015, 09:08 toshas Под линуксом выполните "lspci -vv" и пос... Oct 12 2015, 09:43 doom13 Цитата(toshas @ Oct 12 2015, 12:43) Под л... Oct 12 2015, 10:41  RobFPGA Приветствую!
Цитата(doom13 @ Oct 12 2015... Oct 12 2015, 14:33   doom13 Цитата(RobFPGA @ Oct 12 2015, 17:33) Хи-x... Oct 12 2015, 15:36 toshas Попробуйте воткнуть плату в слот ближайший к проце... Oct 12 2015, 11:06 doom13 Цитата(toshas @ Oct 12 2015, 14:06) Попро... Oct 12 2015, 12:01  KPiter Нет ли в биосе Initialization at Gen1\Gen2... Oct 12 2015, 12:33   doom13 Цитата(KPiter @ Oct 12 2015, 15:33) Нет л... Oct 12 2015, 12:58    KPiter Не понял был ли испробован вариант: поставить Xili... Oct 12 2015, 13:19 doom13 Цитата(toshas @ Oct 12 2015, 14:06) Попро... Oct 12 2015, 13:40 gosu-art 1. посмотреть в биосе материнки настройки PCIe
У ... Oct 12 2015, 11:09 toshas Есть ли в биосе настройка pcie spread spectrum clo... Oct 12 2015, 13:57 doom13 Цитата(toshas @ Oct 12 2015, 16:57) Есть ... Oct 12 2015, 14:08 gosu-art Может пока отложить видеокарту и подключится к вст... Oct 12 2015, 14:15 doom13 На другом ПК (на котором и видео работает в режиме... Oct 13 2015, 15:04 toshas Интересно узнать какую скорость удастся достигнуть... Oct 13 2015, 16:59 doom13 Перебрали систему - плата запустилась на 5 GT/s. Н... Oct 14 2015, 14:51 krux burst 128 попробуйте.
в большинстве случаев PCIe P... Oct 14 2015, 15:08 doom13 Цитата(krux @ Oct 14 2015, 18:08) burst 1... Oct 15 2015, 07:23 doom13 На верхнем слоте PCIe получил пропускную способнос... Oct 15 2015, 18:16 toshas Нет я как раз предлагал посмотреть трафик в систем... Oct 16 2015, 17:14 RobFPGA Приветствую!
Цитата(toshas @ Oct 16 2015... Oct 16 2015, 17:55  doom13 Цитата(RobFPGA @ Oct 16 2015, 20:55) Так ... Dec 1 2015, 11:06 RobFPGA Приветствую!
BVALID формирует axi_bridge ког... Oct 16 2015, 21:25 RobFPGA Приветствую!
Как говорится "Даренному ко... Oct 18 2015, 20:21 doom13 Цитата(RobFPGA @ Oct 18 2015, 23:21)
А ч... Oct 19 2015, 06:42 RobFPGA Приветствую!
Цитата(doom13 @ Oct 19 2015... Oct 19 2015, 07:45 doom13 Цитата(RobFPGA @ Oct 19 2015, 10:45) Кодa... Oct 19 2015, 08:53  RobFPGA Приветствую!
Цитата(doom13 @ Oct 19 2015... Oct 19 2015, 09:01 doom13 Для AXI Interconnect эти параметры надо править:
К... Oct 19 2015, 10:10 RobFPGA Приветствую!
Увы это издержки "удобств... Oct 19 2015, 11:07 Dmitrij68 Цитата(RobFPGA @ Oct 19 2015, 14:07) Прив... Oct 29 2015, 08:03 Dmitrij68 Цитата(RobFPGA @ Oct 19 2015, 14:07) Прив... Oct 29 2015, 08:03 doom13 Сделал всё, как Вы советовали. Должно было увеличи... Oct 19 2015, 13:42 doom13 Уточню вопрос: достаточно ли последних двух осцилл... Oct 19 2015, 18:59 RobFPGA Приветствую!
А у Вас часом не включен Interru... Oct 19 2015, 19:35 doom13 Проверю конечно, но разрешал прерывание по заверше... Oct 19 2015, 19:59 doom13 Извиняюсь, ввёл в заблуждение. Рисунки из поста вы... Oct 20 2015, 07:09 RobFPGA Приветствую!
По картинкам видно что тормозит ... Oct 20 2015, 09:34 doom13 Цитата(RobFPGA @ Oct 20 2015, 12:34) По к... Oct 20 2015, 12:37 RobFPGA Приветствую!
"Ну, что же Вы, Иван Иваныч... Oct 20 2015, 12:42 doom13 Цитата(RobFPGA @ Oct 20 2015, 15:42)
Зап... Oct 20 2015, 14:40 doom13 Надо выбросить AXI Interconnect, что автоматом сге... Oct 29 2015, 08:09 doom13 Приветствую.
Новый вопрос по DMA. Сейчас делаю пер... Nov 30 2015, 12:03 RobFPGA Приветствую!
Дело не в том что для READ треб... Dec 1 2015, 13:45 doom13 Цитата(RobFPGA @ Dec 1 2015, 16:45) Дело ... Dec 1 2015, 14:16 doom13 Похоже, проблема либо в AXI Interconnect, либо в с... Dec 2 2015, 11:07
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|