nick_txd 0 29 августа, 2018 Опубликовано 29 августа, 2018 (изменено) · Жалоба Всем привет. Столкнулся с проблемой нехватки скорости передачи пакетов udp из nios по GbE. В одном из гайдов altera в качестве решения проблемы было предложено увеличить кэш инструкций и данных в ниос до максимальных (64Кб). После данной манипуляции скорость передачи выросла в 3 раза и достигла нужной, но передается теперь всегда один и тот же пакет (udp заголовок меняется, а пользовательские данные нет). Проект выглядит примерно так ADC -> fpga часть -> dual port on-chip memory-> nios -> ethernet. Собственно вопрос, с чем может быть связана проблема. Dma не успевает? Изменено 29 августа, 2018 пользователем Nick_TxD Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 29 августа, 2018 Опубликовано 29 августа, 2018 · Жалоба 2 Nick_TxD телепаты в отпуске, потому было бы неплохо для начала узнать что именно вы используете для отправки udp пакетов - LWIP, NicheStack, .. - и в какой именно конфигурации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nick_txd 0 29 августа, 2018 Опубликовано 29 августа, 2018 · Жалоба NicheStack. Что подразумевается под конфигурацией? Только начал заниматься ниосом Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 29 августа, 2018 Опубликовано 29 августа, 2018 · Жалоба Всем привет. Столкнулся с проблемой нехватки скорости передачи пакетов udp из nios по GbE. В одном из гайдов altera в качестве решения проблемы было предложено увеличить кэш инструкций и данных в ниос до максимальных (64Кб). После данной манипуляции скорость передачи выросла в 3 раза и достигла нужной, но передается теперь всегда один и тот же пакет (udp заголовок меняется, а пользовательские данные нет). Проект выглядит примерно так ADC -> fpga часть -> dual port on-chip memory-> nios -> ethernet. Собственно вопрос, с чем может быть связана проблема. Dma не успевает? Похоже, что весь пакет поместился в кэш данных, и всегда отправляется содержимое кэша, обращений к памяти не происходит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nick_txd 0 30 августа, 2018 Опубликовано 30 августа, 2018 · Жалоба doom13 Хмм, как этого избежать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 30 августа, 2018 Опубликовано 30 августа, 2018 · Жалоба ..Что подразумевается под конфигурацией? Его можно собрать по разному, с разным функционалом - что то включить, что то выключить, ключевые слова: BTREE_ROUTES, ... Касательно кеша - если у вас Nios2-f проц, то как вариант чтобы не переписывать код (нужно добавлять инвалидацию кэша) попробуйте сконфигурировать его без кэша данных. Если Nios2-е проц, то там кеша вобще нет и значит проблема в чём то другом. Детали ищите с помощью ключевого слова "alt_dcache_flush". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nick_txd 0 12 сентября, 2018 Опубликовано 12 сентября, 2018 · Жалоба Kuzmi4 Без кэша отправляются пакеты без повторов, но с пропусками. Судя по всему nios не может отправлять такое количество пакетов. Видимо стоит перейти к варианту с отправкой udp пакетов из fpga части, а прием управляющих tcp пакетов через nios. Может кто-то поделиться подобным решением, либо направить в нужную сторону? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Swup 0 12 сентября, 2018 Опубликовано 12 сентября, 2018 · Жалоба Просто режьте ваш стрим на пакеты, пакеты заворачиваете на проходе в udp. посмотрите вот на этот пример. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться