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

 
 
> 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
5 страниц V  < 1 2 3 4 > »   
Start new topic
Ответов (15 - 29)
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

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

 


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


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