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

 
 
5 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Bus Master DMA для PCIe
doom13
сообщение Oct 8 2015, 19:17
Сообщение #1


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

Группа: Свой
Сообщений: 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?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
toshas
сообщение Oct 8 2015, 19:44
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 372
Регистрация: 14-02-06
Пользователь №: 14 339



Цитата(doom13 @ Oct 8 2015, 22:17) *
Кольцо дескрипторов ... выделяется в памяти ядра Linux.


Может в этом причина ? Посмотрите анализатором очередность транзакций на шине axi.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 8 2015, 19:53
Сообщение #3


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

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



Цитата(toshas @ Oct 8 2015, 22:44) *
Может в этом причина ? Посмотрите анализатором очередность транзакций на шине axi.

Тогда тормоза были бы только во время чтения очередного дескриптора (по завершению передачи пакета), а так DMA сбрасывает (часто) TREADY на AXI4-Stream в 0 во время передачи данных одного пакета (за дескриптором ему пока лезть не надо). Пакеты сделал максимального размера, который поддерживает генератор трафика (65536 слов * 64 бита).
Шину буду ковырять, но пока не успел.
Go to the top of the page
 
+Quote Post
toshas
сообщение Oct 9 2015, 04:27
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 372
Регистрация: 14-02-06
Пользователь №: 14 339



На сколько тактов сбрасывает ? Какими пачками идет вычитывание по axi ?
Посмотрите на готовность к передаче ядра pcie.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 9 2015, 12:14
Сообщение #5


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

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



На AXI4-Stream между FIFO и DMA картина следующая:
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
toshas
сообщение Oct 9 2015, 12:26
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 372
Регистрация: 14-02-06
Пользователь №: 14 339



А что дальше, между dma и pcie ?
Я к тому, что ядро pcie дробит пакеты по max payload size и затык может быть там, в не готовности ядра pcie принимать новые данные от dma.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 9 2015, 13:23
Сообщение #7


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

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



На AXI4 между DMA и AXI Interconnect вот такая штука (тут даже не пойму на какой из сигналов настроить триггер):

PS:
Триггер настроен на TLAST для AXI4-Stream (FIFO->DMA).

PSPS:
Тут, как понимаю, Slave (AXI Interconnect) выставил WREADY, а Master (DMA) ещё очень долго тупит. Получается, что все проблемы из-за DMA?
Или надо ещё смотреть и на BVALID?
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 10 2015, 10:34
Сообщение #8


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

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



Засинхронизировал триггер по начальному адресу буфера (0х0000_0004_0720_0000) на который ссылается первый дескриптор в кольце. На рисунке сечение DMA-AXI Interconnect, для AXI Interconnect-PCIe Bridge диаграмма такая же.
Нужна помощь в анализе, что тут работает неправильно (медленно) и получится ли ускорить?
Если всё правильно понимаю, то WVALID ждёт подтверждения записи BVALID для второго burst-a и только потом устанавливается в 1. Как-то можно повлиять на более быстрое появления BVALID и, как следствие, на WVALID?
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 10 2015, 14:13
Сообщение #9


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

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



Увеличил burst size для DMA до максимального 256, а вместе с этим увеличилось время от WLAST до BVALID. Что за ерунда?
Где тут увеличение производительности?
Время от WLAST до BVALID должно было остаться таким же, как и при значении burst 16??? Если нет, за счёт чего тут можно было получить увеличение производительности DMA???
Спасибо.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
toshas
сообщение Oct 10 2015, 19:22
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 372
Регистрация: 14-02-06
Пользователь №: 14 339



Можете в pcie-mm ядре встать анализатором на pipe интерфейс (tx и rx) ?
По pcie у вас только в теории пойдут пакеты 4кб, но в реальности они будут по 128, ну может 256 байт.
А на пакет (группу пакетов) необходимо дождаться ack от хоста и только потом разрешать перезаписывать буфер.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 10 2015, 19:34
Сообщение #11


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

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



Цитата(toshas @ Oct 10 2015, 22:22) *
Можете в pcie-mm ядре встать анализатором на pipe интерфейс (tx и rx) ?
По pcie у вас только в теории пойдут пакеты 4кб, но в реальности они будут по 128, ну может 256 байт.
А на пакет (группу пакетов) необходимо дождаться ack от хоста и только потом разрешать перезаписывать буфер.

Т.е. я не смогу раскачать DMA более полученных 6 Гбит/с? Нужно ставить Gen3 (сейчас стоит настройка для Gen 2) увеличивать размер шины данных до 128/256 бит? Только тогда можно будет превысить потолок в 6 Гбит/с?


Или, как вариант, выбрасывать DMA и мост и делать что-то своё для работы с голым ядром PCIe Gen3?
Go to the top of the page
 
+Quote Post
toshas
сообщение Oct 10 2015, 20:34
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 372
Регистрация: 14-02-06
Пользователь №: 14 339



Мне кажется pcie-mm всегда позиционировалось как удобное решение для микропроцессорной системы, не более того, при этом максимальной скорости он него никто и не требовал.
В чем точно происходит затык в вашем случае было бы интересно выяснить.
Однако для получения максимальных скоростей очень вероятно придется самому с нуля писать dma для голого ядра pcie.
Или посмотреть на работу dsmv.
Или купить решение от plda/nwlogic.
Или дождаться что же xilinx предложит как альтернативу (xdma). Стоимость может оказаться невысокой или вообще бесплатной.
Им нужно будет двигать свое решения для OpenCL, а для этого нужна цепь pcie-dma-mig(ddr). И xdma как раз призвано заполнить пробел.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 10 2015, 21:23
Сообщение #13


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

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



Цитата(toshas @ Oct 10 2015, 23:34) *
Мне кажется pcie-mm всегда позиционировалось как удобное решение для микропроцессорной системы, не более того, при этом максимальной скорости он него никто и не требовал.

А я думал это ядро и есть самое то, что Xilinx предлагает для работы с PCIe, а оно вот как оказывается sad.gif

Цитата(toshas @ Oct 10 2015, 23:34) *
Однако для получения максимальных скоростей очень вероятно придется самому с нуля писать dma для голого ядра pcie.
Или посмотреть на работу dsmv.

Вот с нуля делать и не хотелось. Разбираться с DS_DMA показалось очень сложным, решил на готовых ядрах собрать систему, счас надо думать, куда двигать дальше.

Цитата(toshas @ Oct 10 2015, 23:34) *
Или дождаться что же xilinx предложит как альтернативу (xdma). Стоимость может оказаться невысокой или вообще бесплатной.

Почти дождался - вчера слил, установил, посмотрел. Остался вопрос с мануалом на это чудо-ядро XDMA. Мне его давать не хотят, так что если кто помог бы с описанием ядра, был бы очень благодарен.


Цитата(toshas @ Oct 10 2015, 23:34) *
В чем точно происходит затык в вашем случае было бы интересно выяснить.

А может ли как-то система (драйвер) влиять на такую длительность появления BVALID? В ядре есть много способов выделения памяти, может я использую неправильный (пользуюсь kmalloc)?
Мне пока нужно выжать с системы 10 Гбит/с. Можно наверное настроить мост на работу с PCIe Gen 3, пропускная способность должна будет возрасти. Тут только придётся подбирать более навороченную систему для работы с платой, мой рабочий ПК подойдёт, а вот тот, что будем использовать в проекте???
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Oct 11 2015, 12:20
Сообщение #14


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

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



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

Для начала неплохо бы убедится что PCIe действительно работает в x4 Gen2, каков размер payload.

А правильнее было бы на модели в симуляторе посмотреть что и как работает, какова скорость передачи и что и как тормозит передачу. И уж если на модели скорость будет ОК то только тогда разбирается на рабочей системе сравнивая с моделью что не так.


Успехов! Rob.





Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 11 2015, 20:19
Сообщение #15


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

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



Цитата(RobFPGA @ Oct 11 2015, 15:20) *
Для начала неплохо бы убедится что PCIe действительно работает в x4 Gen2, каков размер payload.

Настройки для моста стоят именно такие (см. рисунок). По поводу payload не понял, что это, такой опции там нет. Есть ещё вкладка (второй рисунок) с опциями для моста (можно выбирать 2/4/8), но с ней не разбирался, надо глянуть, за что оно отвечает.

Цитата(RobFPGA @ Oct 11 2015, 15:20) *
А правильнее было бы на модели в симуляторе посмотреть что и как работает, какова скорость передачи и что и как тормозит передачу. И уж если на модели скорость будет ОК то только тогда разбирается на рабочей системе сравнивая с моделью что не так.

Не совсем представляю, как это всё проверять в симуляторе. Завтра думаю проверить как быстро DMA будет бросать данные в память FPGA, но тут наверное всё будет работать быстрее.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 12 2015, 09:08
Сообщение #16


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

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



Цитата(RobFPGA @ Oct 11 2015, 15:20) *
... каков размер payload.

Нашёл Maximum Payload Size (MPS) up to 256 Bytes, это значит любой пакет будет бить по 256 байт?
Go to the top of the page
 
+Quote Post
toshas
сообщение Oct 12 2015, 09:43
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 372
Регистрация: 14-02-06
Пользователь №: 14 339



Под линуксом выполните "lspci -vv" и посмотрите с какими параметрами ядро сконфигурировано, а с какими система разрешила работать.
Как сказано выше, в том что линк прошел на gen2 тоже неплохо бы убедиться.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 12 2015, 10:41
Сообщение #18


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

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



Цитата(toshas @ Oct 12 2015, 12:43) *
Под линуксом выполните "lspci -vv" и посмотрите с какими параметрами ядро сконфигурировано, а с какими система разрешила работать.

Слот в котором стоит плата поддерживает Gen 3, ядро настроено на Gen 2, почему Gen 2 должен не установиться?

Нашёл, надо было вводить команду с правами суперпользователя, получил следующее:
Цитата
07:00.0 Multimedia controller: Xilinx Corporation Device 7024
Subsystem: Xilinx Corporation Device 0007
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 31
Region 0: Memory at f7100000 (64-bit, non-prefetchable) [size=128K]
Capabilities: [80] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000feeff00c Data: 4182
Capabilities: [c0] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
MaxPayload 128 bytes, MaxReadReq 512 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
LnkCap: Port #0, Speed 5GT/s, Width x4, ASPM not supported, Exit Latency L0s unlimited, L1 unlimited
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Range B, TimeoutDis+, LTR-, OBFF Not Supported
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Capabilities: [100 v2] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
Kernel driver in use: htg_v7_g3

Получается что работает как Gen 1?

PS: Как его загнать в 5 GT/s?
Go to the top of the page
 
+Quote Post
toshas
сообщение Oct 12 2015, 11:06
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 372
Регистрация: 14-02-06
Пользователь №: 14 339



Попробуйте воткнуть плату в слот ближайший к процессору.
Go to the top of the page
 
+Quote Post
gosu-art
сообщение Oct 12 2015, 11:09
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939



1. посмотреть в биосе материнки настройки PCIe
У меня,например, на линк х4 слота определяется слотом видеокарты. Т.е. на каком линке заработала видюха на таком все остальное будет работать
2. попробовать воткнуть непосредственно в слот видюхи
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 12 2015, 12:01
Сообщение #21


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

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



Цитата(toshas @ Oct 12 2015, 14:06) *
Попробуйте воткнуть плату в слот ближайший к процессору.

Спасибо, сейчас попробую.
Цитата(gosu-art @ Oct 12 2015, 14:09) *
2. попробовать воткнуть непосредственно в слот видюхи

Это и будет ближайший слот к процессору.
Цитата(gosu-art @ Oct 12 2015, 14:09) *
1. посмотреть в биосе материнки настройки PCIe
У меня,например, на линк х4 слота определяется слотом видеокарты. Т.е. на каком линке заработала видюха на таком все остальное будет работать

Видюха Quadro 600 работает почему-то на 2.5 GT/s x16, может с этим как-то связано?

Ещё вопрос: при старте системы прошивки в FPGA нету, заливаю прошивку в RAM, перезагружаю систему, может проблема быть в этом? Может необходимо, чтоб FPGA запускалась с флэша при старте системы за определённое (небольшое) время?
Go to the top of the page
 
+Quote Post
KPiter
сообщение Oct 12 2015, 12:33
Сообщение #22


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 22-09-06
Из: NN
Пользователь №: 20 592



Нет ли в биосе Initialization at Gen1\Gen2\Gen3? свежий ли биос?
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 12 2015, 12:58
Сообщение #23


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

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



Цитата(KPiter @ Oct 12 2015, 15:33) *
Нет ли в биосе Initialization at Gen1\Gen2\Gen3?

Что-то похожее есть только для слота видеокарты, но стоит настройка авто, попытка изменить не дала результата (видеокарта продолжила работу в Gen 1).

Цитата(KPiter @ Oct 12 2015, 15:33) *
свежий ли биос?

Тот, что был с компом при покупке. Наверное старый.
Go to the top of the page
 
+Quote Post
KPiter
сообщение Oct 12 2015, 13:19
Сообщение #24


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 22-09-06
Из: NN
Пользователь №: 20 592



Не понял был ли испробован вариант: поставить Xilinx в слот видюхи. смысл оставить только xilinx на pcie шине
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 12 2015, 13:40
Сообщение #25


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

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



Цитата(toshas @ Oct 12 2015, 14:06) *
Попробуйте воткнуть плату в слот ближайший к процессору.

Цитата(gosu-art @ Oct 12 2015, 14:09) *
2. попробовать воткнуть непосредственно в слот видюхи

Цитата(KPiter @ Oct 12 2015, 16:19) *
Не понял был ли испробован вариант: поставить Xilinx в слот видюхи. смысл оставить только xilinx на pcie шине

Поменял местами видеокарту и плату с FPGA. Теперь система вообще не видит плату (нет в списке PCI устройств). Ранее с настройкой AXI to PCIe моста для Gen 1 работало при таком расположении устройств.
Go to the top of the page
 
+Quote Post
toshas
сообщение Oct 12 2015, 13:57
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 372
Регистрация: 14-02-06
Пользователь №: 14 339



Есть ли в биосе настройка pcie spread spectrum clock (ssc)? Попробуйте ее изменить.
Что у вас за платформа ?
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 12 2015, 14:08
Сообщение #27


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

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



Цитата(toshas @ Oct 12 2015, 16:57) *
Есть ли в биосе настройка pcie spread spectrum clock (ssc)? Попробуйте ее изменить.

Проверю.
Цитата(toshas @ Oct 12 2015, 16:57) *
Что у вас за платформа ?

Проц: i7-3770K
Материнка: GA-Z77P-D3
Видео: Quadro 600
Ещё стоит сетевая карта в слоте PCIe x1


Go to the top of the page
 
+Quote Post
gosu-art
сообщение Oct 12 2015, 14:15
Сообщение #28


Знающий
****

Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939



Может пока отложить видеокарту и подключится к встроенной графике?
UPD: Сетевуху тоже можно пока выкинуть rolleyes.gif скорее всего она тоже на х1. Если это все подключено к свичу то он может поставить линки на х1 (ориентируясь на самое медленное устройство). Я уже на cPCI serial с этой фигней сталкивался))
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Oct 12 2015, 14:33
Сообщение #29


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

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



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

Цитата(doom13 @ Oct 12 2015, 13:41) *
Слот в котором стоит плата поддерживает Gen 3, ядро настроено на Gen 2, почему Gen 2 должен не установиться?
....
Получается что работает как Gen 1?
PS: Как его загнать в 5 GT/s?

Хи-xи - так бы еще долго "разгоняли" DMA sm.gif

А плата у Вас покупная или самопальная ?

Удачи! Rob.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 12 2015, 15:36
Сообщение #30


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

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



Цитата(RobFPGA @ Oct 12 2015, 17:33) *
Хи-xи - так бы еще долго "разгоняли" DMA sm.gif

Мне тоже смешно стало, а главное - осталось настроить/поменять комп и система ОБЯЗАНА заработать, а то думал скоро линчевать начнут


Цитата(gosu-art @ Oct 12 2015, 17:15) *
Может пока отложить видеокарту и подключится к встроенной графике?
UPD: Сетевуху тоже можно пока выкинуть rolleyes.gif скорее всего она тоже на х1. Если это все подключено к свичу то он может поставить линки на х1 (ориентируясь на самое медленное устройство). Я уже на cPCI serial с этой фигней сталкивался))

Встроенной нету, есть выход HDMI, но я под него моник не найду. Сейчас выкину и сетевуху. Самое интересное - у двух товарищей такая же система, видюха работает на 5 GT/s.
Уже сравнили версию биоса - один в один.



Цитата(RobFPGA @ Oct 12 2015, 17:33) *
А плата у Вас покупная или самопальная ?

Покупная, вот такая (X690T)
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 13 2015, 15:04
Сообщение #31


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

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



На другом ПК (на котором и видео работает в режиме 5 GT/s) моя плата запустилась в режиме Gen 2, только надо было её прошить во флэш и передёрнуть питание ПК. Работу DMA пока не проверил, но, думаю, всё будет ОК. С моей системой какая-то беда, держит линк только в режиме 2.5 GT/s, хотя всё железо одинаковое.
Go to the top of the page
 
+Quote Post
toshas
сообщение Oct 13 2015, 16:59
Сообщение #32


Местный
***

Группа: Свой
Сообщений: 372
Регистрация: 14-02-06
Пользователь №: 14 339



Интересно узнать какую скорость удастся достигнуть.
+ по возможности выкладывайте проект в копилку форума.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 14 2015, 14:51
Сообщение #33


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

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



Перебрали систему - плата запустилась на 5 GT/s. Но результат не столь значителен - всего-то удалось получить 8.5 - 8.7 Gbit/s. Тут размер бурст для DMA имеет значение: для burst 16 получаю где-то 7.2 Gbit/s, для burst 256 - 8.5 Gbit/s.
В тестовых точках картина осталать прежней - очень много времени проходит между WLAST и BVALID.
Go to the top of the page
 
+Quote Post
krux
сообщение Oct 14 2015, 15:08
Сообщение #34


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

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



burst 128 попробуйте.
в большинстве случаев PCIe Payload size выставляется по дефолту 128.
т.е. вы одним барстом впишетесь в размер одного пакета PCIe.


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 15 2015, 07:23
Сообщение #35


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

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



Цитата(krux @ Oct 14 2015, 18:08) *
burst 128 попробуйте.
в большинстве случаев PCIe Payload size выставляется по дефолту 128.
т.е. вы одним барстом впишетесь в размер одного пакета PCIe.

Спасибо, попробовал. Но получаю те же 8.5 - 8.7 Gbit/s, что и для burst 256.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 15 2015, 18:16
Сообщение #36


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

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



На верхнем слоте PCIe получил пропускную способность моей системы в 9.3 Gbit/s. Проверял ещё на одном ПК, дало такой же результат.
Если сравнивать с резутьтатами для примера Xilinx (xapp1052), то и неплохо, но до максимума в 16 Gbit/s ещё очень далеко.


Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 16 2015, 11:33
Сообщение #37


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

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



Цитата(toshas @ Oct 10 2015, 22:22) *
Можете в pcie-mm ядре встать анализатором на pipe интерфейс (tx и rx) ?

Если можно расскажите тут подробнее, что это (pipe) и как работает? Что можно почитать по данной теме?
xapp1184 достаточно будет?
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Oct 16 2015, 14:33
Сообщение #38


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

Группа: Свой
Сообщений: 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 - ХЗ sm.gif.

Успехов! Rob.
Go to the top of the page
 
+Quote Post
toshas
сообщение Oct 16 2015, 17:14
Сообщение #39


Местный
***

Группа: Свой
Сообщений: 372
Регистрация: 14-02-06
Пользователь №: 14 339



Нет я как раз предлагал посмотреть трафик в системе (какие пакеты проходят mgt).
Но в принципе не важно с какой стороны начинать разбираться.
По факту надо отследить всю цепочку:
MGT -1.(txdata/rxdata)- PCIE -2.(ll/s_axi) - MMcore -3.(axi)- DMA -4.(axi)- source
Так можно найти, кто причина простоя, но может оказаться, что это просто следствие накладных расходов цепочки такой длины.
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Oct 16 2015, 17:55
Сообщение #40


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

Группа: Свой
Сообщений: 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 это труба дело sm.gif . DLP layer, K-коды, AK-и NAK-и постоянно туда сюда снуют. ужас! wacko.gif
Проще сначала на TLP layer посмотреть. Так как операция WRITE на PCIE не требует completion то тут или в bridge для PCIe настройки буферов зажаты или потери времени на чтение/update дескрипторов велики. Все же CDMA разрабатывался для внутреннего употребления а не для PCIe.

Я вот свою железку симулирую - так latency на чтение дескриптора из памяти ~500 нс (x8 gen2) и это при PIPE симуляции и без задержек на стороне модели RC.

Успехов! Rob.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 16 2015, 19:45
Сообщение #41


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

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



Цитата(RobFPGA @ Oct 16 2015, 17:33) *
... ну или DMA например не успевает подкачивать дескрипторы.
Можно попробовать разместить дескрипторы в памяти FPGA или выделить один большой непрерывный кусок физ памяти (>1MB) и все дескрипторы залинковать на него. И посмотреть изменится ли скорость или нет.
Если не изменится - то тогда или пробовать на дугой мамке ...

Цитата(RobFPGA @ Oct 16 2015, 20:55) *
... или потери времени на чтение/update дескрипторов велики. Все же CDMA разрабатывался для внутреннего употребления а не для PCIe.

Судя по диаграммам, которые приводил выше (затык после каждого второго burst-a и длительность пропорциональна размеру burst-a), проблема не в размещении дескрипторов в Kernel space memory. Пока использую 32 дескриптора, память под них выделяется в непрерывном куске физической памяти с помощью kmalloc.

Цитата(toshas @ Oct 16 2015, 20:14) *
Нет я как раз предлагал посмотреть трафик в системе (какие пакеты проходят mgt).
Но в принципе не важно с какой стороны начинать разбираться.
По факту надо отследить всю цепочку:
MGT -1.(txdata/rxdata)- PCIE -2.(ll/s_axi) - MMcore -3.(axi)- DMA -4.(axi)- source
Так можно найти, кто причина простоя, но может оказаться, что это просто следствие накладных расходов цепочки такой длины.

Сегодня пытался проследить, кто является источником BVALID, но один из модулей зашифрован и связь теряется. Дальше куча линий с другими названиями и куда смотреть пока не разобрался.
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Oct 16 2015, 21:25
Сообщение #42


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

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



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

BVALID формирует axi_bridge когда видит что очередной AXI пакет полностью и окончательно отправился к праотцам (передан на RC).
Повторюсь - так как для MEM_WRITE на PCIe не требуется completion со сторонв RC то это событие для bridge (окончание отправки пакета)
скорее всего происходит в момент записи последней порции payloda в виде TLP пакета по шине s_axis_rq_* в PCIe корку. При этом пакет TLP сначала попадает во внутренний буфер PCIe корки а затем уж передается в RC, при условии что RC готов принят этих беженцев (есть место в приемных буферах)
Если на стороне RC нет свободных буферов для приема и внутренний дворик корки тоже заполнен то корка снимает s_axis_rq_ready.
Так что подключившись s_axis_rq_* можно посмотреть - есть ли там паузы или это bridge тупит.

Успехов! Rob.
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Oct 18 2015, 20:21
Сообщение #43


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

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



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

Как говорится "Даренному коню в зубы .." а надо заглядывать даже в зад sm.gif Прогнали бы на симуляции все сразу стало бы понятно.

По умолчанию CDMA настроен на глубину очереди запросов адреса=4 (при этом реально выдается 4+2=6 запросов) ну а а потом CDMA шлангует пока не получит ответ/подтверждение. Поменять это безобразие в красивой формочке при конфигурировании CDMA нельзя sad.gif Только через зад коня - ручками
Код
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 sad.gif

Успехов! Rob.

P.S. Ни одно животное не пострадало. Все эксперименты проводились на виртуальной лошади с "заездами" на идеальной трассе (PIPE sim. , BFM RC без задержек); biggrin.gif

Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 19 2015, 06:42
Сообщение #44


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

Группа: Свой
Сообщений: 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.

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Oct 19 2015, 07:45
Сообщение #45


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

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



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

Цитата(doom13 @ Oct 19 2015, 09:42) *
А что если у меня используется DMA v7.1 в режиме S2MM (CDMA был в начале)?

Думаю что тоже самое - так как CDMA это AXI DMA сконфигурированный в позе 69 через loop-back fifo.
И так и есть - правда тут придется резать бедную лошадь и ковыряется в потрохах - исходниках
Код
axi_dma.vhd
...
-- DataMover outstanding address request fifo depth
constant DM_ADDR_PIPE_DEPTH         : integer := 4;
...


Цитата(doom13 @ Oct 19 2015, 09:42) *
Если на рисунке тот параметр, о котором шла речь, то там 8.

Нет это как раз и есть "бубенцы" а я имел ввиду - axi_interconect/axi_crosbar которые стоят МЕЖДУ DMA и PCIe. Вы же как то объединяете шины DMA M_AXI и M_AXI_SG для подключения к одой шине S_AXI в PCIe bidge?

Успехов! Rob.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 19 2015, 08:53
Сообщение #46


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

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



Цитата(RobFPGA @ Oct 19 2015, 10:45) *
Код
axi_dma.vhd
...
-- DataMover outstanding address request fifo depth
constant DM_ADDR_PIPE_DEPTH         : integer := 4;
...

Такой параметр нахожу, он у меня почему-то 1, попробую задать 8.

Цитата(RobFPGA @ Oct 18 2015, 23:21) *
... вроде бы соответствующие параметры c_s_axi_num_read/c_s_axi_num_write расположенны слишком глубоко ...

Такие параметры поиском могу найти только в папках с файлами для PCIe моста (xml - файл задаёт параметры для gui ядра) и они там 8.
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Oct 19 2015, 09:01
Сообщение #47


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

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



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

Цитата(doom13 @ Oct 19 2015, 11:53) *
Такой параметр нахожу, он у меня почему-то 1, попробую задать 8.

Такие параметры поиском могу найти только в папках с файлами для PCIe моста (xml - файл задаёт параметры для gui ядра) и они там 8.


Не трогайте пока PCIe bridge - настройте DMA и axi_interconect-ы

Успехов! Rob.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 19 2015, 10:10
Сообщение #48


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

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



Для AXI Interconnect эти параметры надо править:
Код
parameter [C_NUM_SLAVE_SLOTS*32-1:0] C_S_AXI_WRITE_ACCEPTANCE         = 32'H00000002,
                       // Maximum number of active write transactions that each SI
                       // slot can accept. (Valid only for SAMD)
                       // Format: C_NUM_SLAVE_SLOTS{Bit32};
                       // Range: 1-32.
parameter [C_NUM_SLAVE_SLOTS*32-1:0] C_S_AXI_READ_ACCEPTANCE          = 32'H00000002,
                       // Maximum number of active read transactions that each SI
                       // slot can accept. (Valid only for SAMD)
                       // Format: C_NUM_SLAVE_SLOTS{Bit32};
                       // Range: 1-32.

???
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Oct 19 2015, 11:07
Сообщение #49


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

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



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

Увы это издержки "удобств" когда за Вас работает неизвестный индийский Раджа.
В форме кофигурирования interconecta таких параметров нет - но можно раскрыть блок interconecta ПОСЛЕ diagram validation найти там axi_crossbar
и в нем уже - поставив ручной режим - изменить нужные параметры. Ну или сразу нарисовать правильный xbar из примитивов axi_crossbar, axi_dwidth_converter, axi_clock_converter, ... не надеясь на телепатические способности Раджи.

Успехов! Rob.

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 19 2015, 13:42
Сообщение #50


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

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



Сделал всё, как Вы советовали. Должно было увеличить скорость передачи, но почему-то осталось по-прежнему.
Рисунок первый, то как работало ранее, использую burst 256. По рисунку видно, что период двух burst-ов примерно 1400 тактов.
Рисунок второй, то как работает сейчас (с параметром constant DM_ADDR_PIPE_DEPTH : integer := 8; и crossbar-om c Read/Write Acceptance 8) Тут два burst-a передаются за 800 тактов.
На осцил вывожу сигнал прерывания по обработке дескриптора, его период в обоих случаях одинаковый??? По данным ILA производительность возрасла, на деле осталась прежней, как так???
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 19 2015, 18:59
Сообщение #51


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

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



Уточню вопрос: достаточно ли последних двух осциллограмм, чтобы сказать, что производительность DMA (пропускная способность шины) во втором случае больше?
Проверил ещё раз правильность работы всей системы (переключение дескрипторов, остановку DMA при использовании всех дескрипторов, восстановление передачи при обновлении дескрипторов), не могу понять, как время передачи пакета (65536х8 байт) в обоих случаях может быть одинаковым.
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Oct 19 2015, 19:35
Сообщение #52


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

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



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

А у Вас часом не включен Interrupt Delay Time Out. ? PG021.pdf LogiCORE IP AXI DMA v7.1 page 17
В этом случае прерывание происходит не сразу а с задержкой заданной таймером - вот и получаете "неизменное" время передачи wink.gif

Успехов! Rob.


Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 19 2015, 19:59
Сообщение #53


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

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



Проверю конечно, но разрешал прерывание по завершению обработки буфера или ошибке.
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 20 2015, 07:09
Сообщение #54


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

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



Извиняюсь, ввёл в заблуждение. Рисунки из поста выше для разных условий работы системы, первый, похоже, когда система работала в Gen1.
Счас всё перепроверил, получается присвоение параметру DM_ADDR_PIPE_DEPTH значения 8; и параметрам crossbar-а Read/Write Acceptance значения 8 не увеличило пропускную способность системы (о чём и свидетельствовал постоянный период прерывания). Первый рисунок - система с дефолтными параметрами, второй - система с параметрами настроенными "ручками". Тут видно, что за одно время передаётся одинаковое количество данных (число burst-ов).
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Oct 20 2015, 09:34
Сообщение #55


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

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



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

По картинкам видно что тормозит именно DMА такое впечатление что на входе у него не хватает данных.
Задержек со стороны PCIe тут не видно.


Успехов! Rob.


Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 20 2015, 12:37
Сообщение #56


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

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



Цитата(RobFPGA @ Oct 20 2015, 12:34) *
По картинкам видно что тормозит именно DMА такое впечатление что на входе у него не хватает данных.
Задержек со стороны PCIe тут не видно.

Да, спасибо, вот я ... . Можете смеяться, генератор трафика работает на 156.25 MHz (моделирует приём 10G Ethernet, далее фифо с переходом на 250 MHz, DMA забирает данные из FIFO), для него 9.3 Gbit/s почти потолок. Когда была проблема с работой ядра в Gen1 я его проверял, чтоб там ничего не тормозило, а тут что-то позабыл.
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Oct 20 2015, 12:42
Сообщение #57


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

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



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

"Ну, что же Вы, Иван Иваныч..." biggrin.gif

Удачи! Rob
Go to the top of the page
 
+Quote Post
doom13
сообщение Oct 20 2015, 14:40
Сообщение #58


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

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



Цитата(RobFPGA @ Oct 20 2015, 15:42) *

Запустил генератор трафика на 250 MHz, с Вашими советами показало 13.56 Gbit/s. Спасибо, помогли. Если оставить AXI Interconnect в режиме auto и параметр DM_ADDR_PIPE_DEPTH для DMA со стандартным значением 1, получаю примерно тех же 9.3 Gbit/s.
Руками набросать свой interconnect - это ещё нормально, но вот вручную править файлы, которые нагенерил IP Integrator, чтоб оно заработало нормально, - "ваще опа".
Go to the top of the page
 
+Quote Post
Dmitrij68
сообщение Oct 29 2015, 08:03
Сообщение #59


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 10-01-06
Пользователь №: 13 025



Цитата(RobFPGA @ Oct 19 2015, 14:07) *
Приветствую!

Увы это издержки "удобств" когда за Вас работает неизвестный индийский Раджа.
В форме кофигурирования interconecta таких параметров нет - но можно раскрыть блок interconecta ПОСЛЕ diagram validation найти там axi_crossbar
и в нем уже - поставив ручной режим - изменить нужные параметры. Ну или сразу нарисовать правильный xbar из примитивов axi_crossbar, axi_dwidth_converter, axi_clock_converter, ... не надеясь на телепатические способности Раджи.

Успехов! Rob.

Прикрепленное изображение


Почему у меня отсутствует кнопка ОК? Могу отредактировать но не могу применить? И куда Вы добавляете set_property? В xdc или в свойства корки. В свойства корки есть только удалить, а добавить нет. Версия 2015.1 и 2015.3.
Go to the top of the page
 
+Quote Post
Dmitrij68
сообщение Oct 29 2015, 08:03
Сообщение #60


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 10-01-06
Пользователь №: 13 025



Цитата(RobFPGA @ Oct 19 2015, 14:07) *
Приветствую!

Увы это издержки "удобств" когда за Вас работает неизвестный индийский Раджа.
В форме кофигурирования interconecta таких параметров нет - но можно раскрыть блок interconecta ПОСЛЕ diagram validation найти там axi_crossbar
и в нем уже - поставив ручной режим - изменить нужные параметры. Ну или сразу нарисовать правильный xbar из примитивов axi_crossbar, axi_dwidth_converter, axi_clock_converter, ... не надеясь на телепатические способности Раджи.

Успехов! Rob.

Прикрепленное изображение


Почему у меня отсутствует кнопка ОК? Могу отредактировать но не могу применить? И куда Вы добавляете set_property? В xdc или в свойства корки. В свойства корки есть только удалить, а добавить нет. Версия 2015.1 и 2015.3.
Go to the top of the page
 
+Quote Post
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   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 1st August 2025 - 20:39
Рейтинг@Mail.ru


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