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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Gigabit Ethernet IP
robix
сообщение Mar 5 2011, 10:11
Сообщение #1


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

Группа: Свой
Сообщений: 126
Регистрация: 15-08-06
Из: Москва
Пользователь №: 19 556



Всем привет!
Есть задача реализовать Гигабитный ethernet на Cyclone III или IV.
Есть желание все это сделать на NIOS II. Вопросы:
1. кто нибудь пробовал на стандартных IP-корах езернета достигать 500 мбит в передаче?
2. каким образом езернет можно сопрягать с NIOS, не будет ли больших задержек!?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Mar 5 2011, 11:39
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(robix @ Mar 5 2011, 16:11) *
1. кто нибудь пробовал на стандартных IP-корах езернета достигать 500 мбит в передаче?

да, с использованием аппаратного ускорения UDP это вполне реально. у меня было порядка 600 в системе с ниосом практически без оптимизаций.
Цитата
2. каким образом езернет можно сопрягать с NIOS, не будет ли больших задержек!?

в примерах посмотрите, можно на alterawiki.com. корка интегрируется в SOPC. у нее 1 интерфейс Avalon-MM для доступа к регистрам и 2 Avalon-ST (на прием и передачу). Avalon-ST подключаются к SGDMA. Большие задержки это сколько? В любом случае, это определяется главным образом контроллером прерываний, можно поставить внешний VIC.
Go to the top of the page
 
+Quote Post
robix
сообщение Mar 12 2011, 07:45
Сообщение #3


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

Группа: Свой
Сообщений: 126
Регистрация: 15-08-06
Из: Москва
Пользователь №: 19 556



А можно точнее, что значит почти без оптимизаций? И где этот ускоритель UDP - в настройках тристате я его не нашел!?
То есть куда мне смотреть, что бы выжать это 600?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Mar 12 2011, 08:18
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(robix @ Mar 12 2011, 13:45) *
А можно точнее, что значит почти без оптимизаций?

это значит, что компоненты брались стандартные. софт я тоже выкладывал в теме про ниос и езернет, к нему добавляется еще пара функций для пересылки пакетов по UDP.
из софтовых оптимизаций - включение конфигурации "Release".
Цитата
И где этот ускоритель UDP - в настройках тристате я его не нашел!?

я брал отсюда
http://www.alterawiki.com/wiki/Nios_II_UDP_Offload_Example
Go to the top of the page
 
+Quote Post
bark
сообщение Mar 14 2011, 11:20
Сообщение #5


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

Группа: Свой
Сообщений: 131
Регистрация: 16-11-09
Из: Украина Юг
Пользователь №: 53 659



я достиг 982Mbit/s при выдаче UDP потока с девборды на комп.
проверка целостности данных по счетчки внутри пакетов.

без ниоса. всё руками.


--------------------
Работаю 20ns в сутки.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Mar 14 2011, 12:34
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(bark @ Mar 14 2011, 17:20) *
без ниоса. всё руками.

это понятно. у системы с ниосом плюс в другом - можно сделать софтовый TCP и аппаратный UDP. иногда такое решение удобнее (гибче).
Go to the top of the page
 
+Quote Post
bark
сообщение Mar 14 2011, 12:45
Сообщение #7


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

Группа: Свой
Сообщений: 131
Регистрация: 16-11-09
Из: Украина Юг
Пользователь №: 53 659



Цитата(vadimuzzz @ Mar 14 2011, 14:34) *
это понятно. у системы с ниосом плюс в другом - можно сделать софтовый TCP и аппаратный UDP. иногда такое решение удобнее (гибче).


да.. поэтому есть желание сесть разобраться в ниосе. )


--------------------
Работаю 20ns в сутки.
Go to the top of the page
 
+Quote Post
robix
сообщение Mar 14 2011, 17:25
Сообщение #8


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

Группа: Свой
Сообщений: 126
Регистрация: 15-08-06
Из: Москва
Пользователь №: 19 556



Уважаемые коллеги, можно ли такое устройство " 982Mbit/s при выдаче UDP"
использовать с NIOS? Как его вообще можно использовать без NIOS если необходимо принимать команды с компьютера и обрабатывать их в плис, если нужно коммутировать потоки на гигабитный эзернет с разных входных блоков...
Неужели это все можно запрограммировать на verilog в разумные сроки? Я имею ввиду прикладной контроллер управления. Небось нужно убить кучу времени на отладку!? К тому же, одно дело автоматом генерить пакеты и другое дело загружать данные из другого блока, не упадет ли скорость передачи в этом случае!?
Go to the top of the page
 
+Quote Post
bark
сообщение Mar 15 2011, 07:38
Сообщение #9


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

Группа: Свой
Сообщений: 131
Регистрация: 16-11-09
Из: Украина Юг
Пользователь №: 53 659



Цитата(robix @ Mar 14 2011, 19:25) *
Уважаемые коллеги, можно ли такое устройство " 982Mbit/s при выдаче UDP"
использовать с NIOS? Как его вообще можно использовать без NIOS если необходимо принимать команды с компьютера и обрабатывать их в плис, если нужно коммутировать потоки на гигабитный эзернет с разных входных блоков...
Неужели это все можно запрограммировать на verilog в разумные сроки? Я имею ввиду прикладной контроллер управления. Небось нужно убить кучу времени на отладку!? К тому же, одно дело автоматом генерить пакеты и другое дело загружать данные из другого блока, не упадет ли скорость передачи в этом случае!?


я начал работу с сетью во второй половине января. Тогда корки MACa ещё в глаза не видел, а о сетевый протоколах имел общее представление.
Avalon-ST и Avalon-MM в глаза не видел.
И вообще с девбордой впервые работал, так что нового было много.
в середине февраля у меня железяка уже работала с ARP и ICMP. Ещё через неделю заработал запрос/ответ по UDP.
сейчас уже есть система команд, управление внутренними регистрами, несколько портов для запросов и блок обработки приема/передачи данных с пакетами JUMBO до 7K. с расчетом чексумм.
удалённо доступны все параметры MAC/PHY. можно менять физический адрес, IP, задавать порты прослушки и выдачи.

UDP весьма прост. поэтому принимать и обрабатывать его проблем нет.
Вот с TCP уже сложнее. поэтому с ним лучше сразу браться за ниос.

по поводу можно ли всё это с НИОС... раз говорят что UDP можно аппаратно формировать - то вероятно можно.

Сообщение отредактировал bark - Mar 15 2011, 08:14


--------------------
Работаю 20ns в сутки.
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Mar 15 2011, 07:58
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



NiosII не справится с UDP для сотен Mbit/s, это однозначно. Он своим софтом и три-четыре десятка Mbit/s тянет с трудом при внешнем аппаратном акселераторе для контрольных сумм.
Оптимальное решение для сотен Mbit/s здесь уже озвучено: слабые потоки TCP обрабатывать софтом на NiosII, а мощные потоки выдавать аппаратным UDP.
Только надо организовать мультиплексор для доступа к Ethernet между аппаратным UDP и NiosII, с приоритетом у NiosII (или нескольких NiosII).


Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Mar 15 2011, 08:15
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(Serhiy_UA @ Mar 15 2011, 13:58) *
NiosII не справится с UDP для сотен Mbit/s, это однозначно.

ниос тут ни при чем, его работа - сконфигурировать DMA и рулить прерываниями. готовые компоненты для SOPC есть, можно систему готовую за день поднять. ниос, раздающий 600 Мбит на пакетах 1024 байт - пройденный этап. если бы мне надо было больше, я бы пооптимизировал, там все прозрачно
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Mar 15 2011, 09:13
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(vadimuzzz @ Mar 15 2011, 12:15) *
ниос тут ни при чем, его работа - сконфигурировать DMA и рулить прерываниями. готовые компоненты для SOPC есть, можно систему готовую за день поднять. ниос, раздающий 600 Мбит на пакетах 1024 байт - пройденный этап. если бы мне надо было больше, я бы пооптимизировал, там все прозрачно

У меня NiosII был сконфигурирован без DMA. Согласен, с DMA будет гораздо быстрее.
Но здесь еще пара аспектов по структуре:
1.Если используется готовый контроллер то DMA подходит, а если PHY то лучше синтезировать автомат UDP. Так ли?
2.При работе с DMA нужно работать с несколькими блоками памяти. Из одних выдавать по DMA, а в других тем временем подготавливать данные в соответствии со структурой текущего пакета. В автомате UDP для PHY это все можно делать конвейером, как бы на проходе. Какие были решения?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Mar 15 2011, 09:29
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(Serhiy_UA @ Mar 15 2011, 15:13) *
1.Если используется готовый контроллер то DMA подходит, а если PHY то лучше синтезировать автомат UDP. Так ли?

а разницы в общем-то нет, работа в любом случае с DMA идет. главное минимизировать работу процессора по перекидыванию данных из одной области памяти в другую. собственно, автомат UDP, что я выше приводил, как раз по этому принципу работает. процессор дает движку DMA дескриптор с данными для передачи (фактически, указатель на область в памяти), а автомат добавляет адреса, порты и прочую муть. потом отсылает данные и кидает процу прерывание - готов, мол.
Цитата
2.При работе с DMA нужно работать с несколькими блоками памяти. Из одних выдавать по DMA, а в других тем временем подготавливать данные в соответствии со структурой текущего пакета. В автомате UDP для PHY это все можно делать конвейером, как бы на проходе. Какие были решения?

допустим, 2 блока памяти - в отдельно взятый момент времени один находится под управлением DMA, второй у процессора. пока DMA отправляет пакет, у проца есть время на подготовку следующего. если система спроектирована правильно, то процессор почти ничего с данными не делает и гарантированно успеет подготовить следующий пакет. если же проц нагружен, например вычислениями, то естественно скорости не получить, значит надо выносить вычисления в логику. другой источник лагов - убогий "родной" контроллер прерываний, лечится внешним. авалон - штука гибкая и масштабируемая, плата за это - оверхед по ресурсам.
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Mar 15 2011, 09:58
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Спасибо, vadimuzzz, за соображения, они интересны...

Цитата(vadimuzzz @ Mar 15 2011, 12:29) *
другой источник лагов - убогий "родной" контроллер прерываний, лечится внешним. авалон - штука гибкая и масштабируемая, плата за это - оверхед по ресурсам.

"Родной" контроллер прерываний NiosII уже здесь обсуждали (осуждали), а о внешнем, ни разу не слышал. Если не обращать внимание на ресурсы, то, что это за вещь, какой получен выигрыш, есть ли цифры?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Mar 15 2011, 10:14
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(Serhiy_UA @ Mar 15 2011, 15:58) *
Если не обращать внимание на ресурсы, то, что это за вещь, какой получен выигрыш, есть ли цифры?

латентность по сравнению со штатным (у того может до сотни тактов доходить) сильно меньше - единицы тактов.
http://www.altera.com/literature/hb/nios2/..._controller.pdf
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th May 2024 - 18:15
Рейтинг@Mail.ru


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