|
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, 17:55
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Цитата(toshas @ Oct 16 2015, 20:14)  Нет я как раз предлагал посмотреть трафик в системе (какие пакеты проходят mgt). Но в принципе не важно с какой стороны начинать разбираться. По факту надо отследить всю цепочку: MGT -1.(txdata/rxdata)- PCIE -2.(ll/s_axi) - MMcore -3.(axi)- DMA -4.(axi)- source Так можно найти, кто причина простоя, но может оказаться, что это просто следствие накладных расходов цепочки такой длины. Ой - разбирается на уровне PIPE это труба дело  . DLP layer, K-коды, AK-и NAK-и постоянно туда сюда снуют. ужас! Проще сначала на TLP layer посмотреть. Так как операция WRITE на PCIE не требует completion то тут или в bridge для PCIe настройки буферов зажаты или потери времени на чтение/update дескрипторов велики. Все же CDMA разрабатывался для внутреннего употребления а не для PCIe. Я вот свою железку симулирую - так latency на чтение дескриптора из памяти ~500 нс (x8 gen2) и это при PIPE симуляции и без задержек на стороне модели RC. Успехов! Rob.
|
|
|
|
|
Dec 1 2015, 11:06
|
Профессионал
    
Группа: Свой
Сообщений: 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).
Эскизы прикрепленных изображений
|
|
|
|
Сообщений в этой теме
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 toshas Можете в pcie-mm ядре встать анализатором на pipe ... Oct 10 2015, 19:22 doom13 Цитата(toshas @ Oct 10 2015, 22:22) Может... Oct 10 2015, 19:34 doom13 Цитата(toshas @ Oct 10 2015, 22:22) Может... Oct 16 2015, 11:33  RobFPGA Приветствую!
Цитата(doom13 @ Oct 16 2015... Oct 16 2015, 14:33   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 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
|
|
|