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

 
 
> Буфер для PCI Express
doom13
сообщение Sep 2 2015, 05:59
Сообщение #1


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

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



Приветствую.
Собираю систему для передачи данных от 10G Ethernet по PCIe в ПК (см. рисунок).
Приёмник MAC-уровня для 10G Ethernet пока моделирую Traffic Generator-ом. Прерывание от S2MM FIFO заводится в ПК и обрабатывается драйвером.
Использовал DC FIFO (для перехода между clock domains, Ethernet тактируется 156.25 МГц, PCIe - 250 МГц) и S2MM FIFO (для преобразования AXI4-Stream в AXI4).
S2MM FIFO генерирует прерывание либо по достижению определённого уровня заполнения, либо по приёму очередного пакета данных.
Traffic Generator управляется MicroBlaze (пока, для отладки) и может генерировать пакет 1024*64bit в цикле или постоянно.
Если использую прерывание по заполнению уровня (1024 позиции фифо), то приходится ставить большую задержку между запусками Traffic Generator-а, чтобы
CDMA успевал выгребать данные до накопления новых 1024 позиций, иначе передача фифо забивается и прерывание больше не срабатывает.
Тогда попробовал использовать прерывание по приёму пакета и забирать максимальное число данных кратное 1024 позициям фифо.
Тут Traffic Generator может работать в непрерывном режиме (CDMA постоянно забирает данные), но есть ощущение, что при заполнении фифо Traffic Generator может некоторое
время ожидать следующей передачи.
Вопросы:
1) Правильно ли реализую сам буфер, возможно есть более удобное решение?
2) Как выбрать размер FIFO и размер разовой передачи CDMA с учётом разных скоростей работы FIFO на запись/чтение и времени, требуемого для обработки прерывания и запуска CDMA драйвером?

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
doom13
сообщение Sep 28 2015, 07:05
Сообщение #2


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

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



Возник вопрос, в какой памяти должна размещаться таблица дескрипторов для DMA? Можно разместить в памяти FPGA, а можно - в памяти системы. Что посоветуете?
Спасибо.
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Sep 28 2015, 12:23
Сообщение #3


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

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



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

Цитата(doom13 @ Sep 3 2015, 09:46) *
Что если вместо MM ядра CDMA попытаться использовать ядро Зачи(v7.1) в режиме SgDMA S2MM и зациклить ему цепочку дескрипторов?
Т.е. выбрасываем из системы (см. рисунок) S2MM FIFO и CDMA, ставим DMA, и DMA будет принимать поток AXI4-Stream и сразу складывать в буферы в ПК выделяемые драйвером устройства. Потеря данных будет только если user space application не успевает вычитывать данные из буферов драйвера, т.е. если все буферы заполнены идёт перезапись. Подойдёт ли такой вариант?


Для Ethernet это как раз более правильное решение чем CDMA. Проще структура пересылок данных. К тому же можно взять за основу его драйвер. Однако на входе DMA нужно FIFO для буферизации коротких затыков на PCIe шине.

Дескрипторы проще размещать в системной памяти. Опят же со стороны драйвера проще и быстрее их (дескрипторы ) обрабатывать.
Смотрите доки на DMA - как работать с кольцом дескрипторов. Там все продуманно - затирки данных не будет в худшем случае просто потеря новых данных.

Успехов! Rob.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- doom13   Буфер для PCI Express   Sep 2 2015, 05:59
- - krux   тупое S2MM fifo вам на 10G не поможет. скорости не...   Sep 2 2015, 06:07
|- - doom13   Цитата(krux @ Sep 2 2015, 09:07) посмотри...   Sep 2 2015, 06:19
- - krux   ЦитатаА что не так с FIFO? формально, с FIFO всё н...   Sep 2 2015, 08:52
|- - doom13   Цитата(krux @ Sep 2 2015, 11:52) формальн...   Sep 2 2015, 09:28
- - krux   ЦитатаМануал на Intel 82599 10 GbE Controller прос...   Sep 2 2015, 16:51
|- - doom13   Цитата(krux @ Sep 2 2015, 19:51) в реальн...   Sep 3 2015, 06:46
- - krux   1 таблица дескрипторов - это 128 буферов, на 128 S...   Sep 3 2015, 08:32
|- - doom13   Цитата(RobFPGA @ Sep 28 2015, 15:23) Для ...   Sep 28 2015, 13:00
- - RobFPGA   Приветствую! Для начала почитайте LogiCORE IP...   Sep 28 2015, 14:23
|- - doom13   Цитата(RobFPGA @ Sep 28 2015, 17:23) Для ...   Sep 28 2015, 15:07
|- - RobFPGA   Приветствую! Цитата(doom13 @ Sep 28 2015...   Sep 28 2015, 15:47
|- - doom13   Цитата(RobFPGA @ Sep 28 2015, 18:47) Что...   Sep 28 2015, 16:08
|- - doom13   Цитата(RobFPGA @ Sep 28 2015, 18:47) Ну а...   Sep 28 2015, 18:54
- - Golikov A.   с 2 таблицами проще, что софт сможет монопольно не...   Sep 29 2015, 06:16
|- - RobFPGA   Приветствую! Цитата(Golikov A. @ Sep 29 ...   Sep 29 2015, 07:10
- - doom13   Столкнулся с тем, что ядро Linux не хочет выделять...   Sep 30 2015, 14:28
|- - RobFPGA   Приветствую! Цитата(doom13 @ Sep 30 2015...   Sep 30 2015, 16:03
|- - doom13   Цитата(RobFPGA @ Sep 30 2015, 19:03) При...   Sep 30 2015, 16:34
|- - RobFPGA   Приветствую. Цитата(doom13 @ Sep 30 2015, 19...   Sep 30 2015, 16:42
- - krux   ЦитатаКак понимаю, чтоб DMA мог работать по цепочк...   Sep 30 2015, 17:27
- - doom13   Хорошо. Поясните мне вот это: AXI to PCIe Bridge и...   Sep 30 2015, 19:56
|- - RobFPGA   Приветствую! Цитата(doom13 @ Sep 30 2015...   Sep 30 2015, 20:06
- - doom13   Получается, для системной памяти Aperture - это ра...   Sep 30 2015, 20:44
|- - RobFPGA   Приветствую! Цитата(doom13 @ Sep 30 2015...   Sep 30 2015, 21:13
|- - doom13   Цитата(RobFPGA @ Oct 1 2015, 00:13) Ноль ...   Oct 1 2015, 09:25
- - doom13   Нашёл, dmidecode показывает всю системную информац...   Oct 1 2015, 18:44
- - doom13   Для ядра AXI Bridge for PCIe Gen 3 есть такая зако...   Oct 2 2015, 13:31
|- - RobFPGA   Приветствую! Цитата(doom13 @ Oct 2 2015,...   Oct 2 2015, 14:49
- - doom13   Что-то я вообще запутался, как оно работает. А как...   Oct 2 2015, 16:07
- - krux   ЦитатаЧто-то я вообще запутался, как оно работает....   Oct 2 2015, 17:56
- - doom13   Цитата(krux @ Oct 2 2015, 20:56) зависит ...   Oct 2 2015, 19:52
- - RobFPGA   Приветствую! Цитата(doom13 @ Oct 2 2015,...   Oct 2 2015, 21:03
- - doom13   Цитата(RobFPGA @ Oct 3 2015, 00:03) Поэто...   Oct 3 2015, 08:29
- - doom13   Цитата(RobFPGA @ Oct 3 2015, 00:03) Цита...   Oct 6 2015, 08:59


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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