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

 
 
> Можно ли разогнать Temac Ethernet core?
Ar-han
сообщение Jan 10 2015, 13:36
Сообщение #1


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

Группа: Участник
Сообщений: 91
Регистрация: 12-09-11
Пользователь №: 67 135



Учусь укладывать видео-поток в UDP пакеты.

Отправка пакетов:
Железо Virtex-5, ML507
Процессор PowerPC 333 Мгц
Temac, GMII + LocalLink FIFO (4096 byte)
LWIP библиотеки.
Модифицированное приложение echo-сервера.
Длина пакета 1082 байта
cache D/I Enable

ld-script:
stack size: 0xA000
heap: 0xA000
все секции памяти в DDR


Приём:
На PC - windows.
на 100 Mbit канале и на 1000 Mbit, скорость почти не меняется 75-80 Mbit/sec

Пока что пролезает 18 кадров в сек, 640х480х12bit
Можно ли вытянуть больше скорость?


P.S.
Emac-lite даёт не более 54 Mbit/sec
И требует паузы между пакетами.

Что почитать?
Куда двигаться дальше?
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Jan 12 2015, 14:50
Сообщение #2


Гуру
******

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



там много чего настраивается, и длина очередей, и размеры буферов и количество и так далее... но это все больше для полноценного обмена с несколькими сокетами и так далее...
Странно что контрольная сумма железная не подняла скорость, у меня она существенно тормозила обмен при софтварном обсчете. Где-то у вас еще что-то застревает...

Вообще изначально LwIP у ксалинкса с большим числом перекопирований сделан, при работе с ДДР - это тоже здорово тормозить обмен, так как его буферы обычно в нем и лежат... Попробуйте кеши процу увеличить и добавить кеш обращений в кеш.

Go to the top of the page
 
+Quote Post
Ar-han
сообщение Jan 13 2015, 10:16
Сообщение #3


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

Группа: Участник
Сообщений: 91
Регистрация: 12-09-11
Пользователь №: 67 135



Цитата(Golikov A. @ Jan 12 2015, 17:50) *
Вообще изначально LwIP у ксалинкса с большим числом перекопирований сделан, при работе с ДДР - это тоже здорово тормозить обмен, так как его буферы обычно в нем и лежат... Попробуйте кеши процу увеличить и добавить кеш обращений в кеш.


Так и есть, сейчас UDP пакет заполняю данными из DDR, использую DDR как буфер.
У меня двупортовая BRAM - 512KByte, со стороны железа в один порт закидываю кадр, когда она полна, дергаю за ногу внешнего прерывания процессор. А через второй порт в процессоре, по флагу прерывания копирую кадр из BRAM, в DDR, с помощью memcpy(), а из DDR, по строкам передаю UDP пакетами.

Если просто в бесконечном цикле, один и тот же кадр отсылаю из DRR
Код
transfer_utxperf_data()
{
    ...
    
    for (zz = 0; zz < N_packets; zz++) // читаю кадр из DDR
    {
        memcpy(pbuf_to_be_sent->payload, pData_DDR + (zz*1040),1040);

        err = udp_send(pcb, pbuf_to_be_sent);

    }
}


То сниффер показывает скорость 350 Mbit в сек.
(Без ожидания прерывания и копирования кадра из BRAM в DDR)
Если в бесконечном цикле, без ожидания прерывания, но с копированием кадра 648*486 из BRAM в DDR, то скорость 250 Mbit в сек.

Копирование делаю, чтобы исключить одновременное чтение и запись в BRAM со стороны железа и процессора.
Код
main.c
...
    while (1)
    {
        if (is_ext_interrupt == 1) // Флаг внешнего прерывания
        {
            is_ext_interrupt = 0;

                memcpy(pData_DDR, pData_1, frame_size);

                    xemacif_input(netif);    // без неё нет отправки
                    transfer_utxperf_data(); // отправка UDP пакета
        }
    }

Пример отправки UDP пакетов взял из echo - сервера.
Не могу понять необходимость вызова функции чтения входного порта перед отправкой UDP пакета: xemacif_input(netif);
Без неё пакеты не отправляются.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ar-han   Можно ли разогнать Temac Ethernet core?   Jan 10 2015, 13:36
- - Golikov A.   подсчет контрольной суммы железный или софт? В лай...   Jan 10 2015, 19:04
- - ZASADA   проблема врядли в ядре Temac. делал на нем преобра...   Jan 10 2015, 19:12
|- - Corvus   Да нечего в TEMAC гнать. По своему опыту, на Spart...   Jan 11 2015, 08:58
|- - Ar-han   Цитата(Corvus @ Jan 11 2015, 11:58) Да не...   Jan 11 2015, 12:31
- - Koluchiy   Игрался как-то с ускорением TCP на NIOS. На первом...   Jan 13 2015, 15:03
- - Golikov A.   Есть мнение что без вызова этой функции у вас стэк...   Jan 13 2015, 15:29
|- - Ar-han   Цитата(Golikov A. @ Jan 13 2015, 18:29) в...   Jan 14 2015, 10:55
- - Golikov A.   ну вы шарком поглядите обмен с вашей платой. Вам ...   Jan 14 2015, 11:07
|- - Ar-han   Цитата(Golikov A. @ Jan 14 2015, 14:07) н...   Jan 14 2015, 21:28
- - Golikov A.   ЦитатаКажется, я никакого обмена не видел между UD...   Jan 15 2015, 07:42
|- - Corvus   Не надо перепиливать код и тем более менять частот...   Jan 15 2015, 08:36
|- - Ar-han   Цитата(Corvus @ Jan 15 2015, 11:36) Не на...   Jan 15 2015, 20:15
- - Golikov A.   А попробуйте послать все тоже самое с компа на ком...   Jan 16 2015, 07:26
|- - dmitry-tomsk   На Spartan-6 axi_ethernet какую скорость удалось п...   Jan 20 2015, 17:31
- - Golikov A.   спартан 6, микроблайз 100 МГц, с акси лайт шиной 5...   Jan 20 2015, 18:41
|- - dmitry-tomsk   Цитата(Golikov A. @ Jan 20 2015, 22:41) с...   Jan 21 2015, 18:55
|- - dmitry-tomsk   Цитата(Golikov A. @ Jan 20 2015, 21:41) с...   Jan 26 2015, 18:13
|- - Corvus   Вот 155 уже близко к пределу для такого конфига и ...   Jan 26 2015, 18:52
- - Golikov A.   да кеши микраблайза, на полную все что есть. Поско...   Jan 22 2015, 06:03
|- - dmitry-tomsk   Цитата(Golikov A. @ Jan 22 2015, 10:03) д...   Jan 22 2015, 06:38
- - Golikov A.   А никак, говорят учтите что если че вам потребуетс...   Jan 22 2015, 06:58
- - Golikov A.   ксалиноковский LwIP брал, как библиотека подрубает...   Jan 26 2015, 18:33
- - Golikov A.   размер пакетов еще влияет. Если жумбо фрейм подруб...   Jan 26 2015, 20:46


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

 


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


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