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

|
Приветствую! Как говорится "Даренному коню в зубы .." а надо заглядывать даже в зад  Прогнали бы на симуляции все сразу стало бы понятно. По умолчанию CDMA настроен на глубину очереди запросов адреса=4 (при этом реально выдается 4+2=6 запросов) ну а а потом CDMA шлангует пока не получит ответ/подтверждение. Поменять это безобразие в красивой формочке при конфигурировании CDMA нельзя  Только через зад коня - ручками Код set_property CONFIG.C_WRITE_ADDR_PIPE_DEPTH 8 [get_bd_cells i_axi_cdma] set_property CONFIG.C_READ_ADDR_PIPE_DEPTH 8 [get_bd_cells i_axi_cdma] Но один конь карету не помчит - также надо во всех crossbar-ах по пути следования кареты выставить постовых - значение READ_ACCEPTANCE, WRITE_ACCEPTANCE на >=8 (а то по умолчанию там стоит 2 - даже не лошадь - дохлая кляча получается ). Ну и бубенцы на хомут - значения больше 8 ставить смысла нет так как bridge больше 8 запросов в очередь не принимает, а вроде бы соответствующие параметры c_s_axi_num_read/c_s_axi_num_write расположенны слишком глубоко в зад.. read_only Успехов! Rob. P.S. Ни одно животное не пострадало. Все эксперименты проводились на виртуальной лошади с "заездами" на идеальной трассе (PIPE sim. , BFM RC без задержек);
|
|
|
|
|
Oct 19 2015, 06:42
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(RobFPGA @ Oct 18 2015, 23:21)  А что если у меня используется DMA v7.1 в режиме S2MM (CDMA был в начале)? Цитата(RobFPGA @ Oct 18 2015, 23:21)  ... также надо во всех crossbar-ах по пути следования кареты выставить постовых - значение READ_ACCEPTANCE, WRITE_ACCEPTANCE на >=8 (а то по умолчанию там стоит 2 ... Если на рисунке тот параметр, о котором шла речь, то там 8.
Эскизы прикрепленных изображений
|
|
|
|
Сообщений в этой теме
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 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 Приветствую!
Цитата(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
|
|
|